KR101161193B1 - 파일 다운로드 및 스트리밍 시스템 - Google Patents

파일 다운로드 및 스트리밍 시스템 Download PDF

Info

Publication number
KR101161193B1
KR101161193B1 KR1020067009106A KR20067009106A KR101161193B1 KR 101161193 B1 KR101161193 B1 KR 101161193B1 KR 1020067009106 A KR1020067009106 A KR 1020067009106A KR 20067009106 A KR20067009106 A KR 20067009106A KR 101161193 B1 KR101161193 B1 KR 101161193B1
Authority
KR
South Korea
Prior art keywords
symbols
input
symbol
redundant
output
Prior art date
Application number
KR1020067009106A
Other languages
English (en)
Other versions
KR20070008520A (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 KR20070008520A publication Critical patent/KR20070008520A/ko
Application granted granted Critical
Publication of KR101161193B1 publication Critical patent/KR101161193B1/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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • 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/0041Arrangements at the transmitter end
    • 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/0045Arrangements at the receiver end
    • 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/0057Block codes
    • 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/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/02Amplitude-modulated carrier systems, e.g. using on-off keying; Single sideband or vestigial sideband modulation
    • H04L27/06Demodulator circuits; Receiver circuits
    • 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Digital Transmission Methods That Use Modulated Carrier Waves (AREA)

Abstract

통신 채널을 통해 소스로부터 목적지로 전송하기 위해 데이터를 인코딩하는 방법이 제공된다. 본 방법은 입력 심볼들의 순서화된 세트에 대해 작용하며 입력 심볼들로부터 복수개의 리던던트 심볼들을 발생시키는 단계를 포함한다. 또한, 본 방법은 입력 심볼들과 리던던트 심볼들을 포함하는 심볼들의 조합 세트로부터 복수개의 출력 심볼들을 발생시키는 단계도 포함하는데, 이 경우, 가능한 출력 심볼들의 수는 심볼들의 조합 세트에서의 심볼들의 수보다 훨씬 크고, 심볼들의 조합 세트에서의 하나 이상이지만 전부는 아닌 심볼들로부터, 그리고 입력 심볼들의 순서화된 세트가 임의의 소정 갯수 출력 심볼들로부터 원하는 정확도로 재생될 수 있도록, 하나 이상의 출력 심볼들이 발생된다. 복수개의 리던던트 심볼들은, 제1 입력 심볼을 사용해서 계산되는 정적 심볼들의 제1 세트가 제1 입력 심볼과는 구별되는 제2 입력 심볼을 사용해서 계산되는 정적 심볼들의 제2 세트와 낮은 공통의 멤버쉽을 갖도록, 전송될 입력 심볼들의 순서화된 세트로부터 결정적 프로세스로 발생된다.
통신 채널, 인코딩, 디코딩, 입력 심볼, 리던던트 심볼, 출력 심볼

Description

파일 다운로드 및 스트리밍 시스템 {FILE DOWNLOAD AND STREAMING SYSTEM}
관련 출원들의 상호-참조
본 출원은, 모든 목적을 위해, 이 명세서에서 완전히 설명되는 바와 같이, 여기에 참조로써 포함되어 있는, FILE DOWNLOAD AND STREAMING SYSTEM이라는 명칭으로 2004년 5월 7일에 출원된, 계류 중인 미국 가특허출원 제 60/569,127호로부터의 우선권을 주장한다.
본 발명은 통신 시스템들에서 데이터를 인코딩하고 디코딩하는 것에 관한 것으로서, 보다 구체적으로는, 전달된 데이터에서의 에러들 및 갭들을 설명하기 위해 데이터를 인코딩하고 디코딩하는 통신 시스템들에 관한 것이다. 실시예들에서, 데이터는 브로드캐스트 및/또는 멀티캐스트 무선 네트워크들을 통해 수신기들로 전송된다.
통신 채널을 통한 송신자(sender)와 수신자(recipient)간의 파일들 및 스트림들의 전송은 많은 문헌의 주제가 되어 왔다. 바람직하게도, 수신자는, 송신자에 의해 채널을 통해 전송되는 데이터의 정확한 사본을 어느 정도의 확실성을 가지고 수신하고자 한다. 채널이 (물리적으로 실현 가능한 거의 모든 시스템들을 커버하는) 완벽한 충실도(perfect fidelity)를 갖지 않을 경우, 관심사는 전송시에 손실되거나 왜곡된 데이터를 처리하는 방법이다. 대개는 손실된 데이터(이레이져(erasure)들)가 손상된 데이터(에러들)보다 다루기가 좀더 쉬운데, 수신자가, 언제 손상된 데이터가 잘못 수신된 데이터인지를 항상 분간할 수 있는 것은 아니기 때문이다. 이레이져들 및/또는 에러들을 정정하기 위해 다수의 에러-정정 코드들이 개발되어 왔다. 통상적으로, 사용되는 특정 코드는, 데이터가 전송 중인 채널의 비충실도들 및 전송 중인 데이터의 특징에 관한 소정 정보에 기초해 선택된다. 예를 들어, 채널이 긴 충실도 주기들을 갖는 것으로 공지되어 있을 경우, 그러한 애플리케이션을 위해서는 버스트 에러 코드(burst error code)가 가장 적합할 수 있다. 빈번하지 않은 단기 에러들만이 예상될 경우에는, 간이 패리티 코드(simple parity code)가 최선일 수 있다.
전송기(transmitter)와 수신기가 통신을 위해 필요한 연산력과 전력 모두를 가지며 전송기와 수신기간의 채널이 비교적 에러가 없는 통신을 허용하기에 충분할 정도로 순수할 경우, 데이터 전송은 간단하다. 채널이 불리한 환경에 있거나 전송기 및/또는 수신기가 한정된 능력을 가질 경우, 데이터 전송 문제는 좀더 어려워진다.
한가지 해결책은 FEC(forward error correcting) 기술들을 사용하는 것인데, 이 경우, 데이터는 전송기에서, 수신기가 전송 이레이져들 및 에러들로부터 복원할 수 있도록, 코딩된다. 가능하다면, 수신기로부터 전송기로의 역방향 채널(reverse channel)이, 수신기로 하여금 에러들에 관해 전송기로 통신할 수 있게 하는데, 전송기는 그에 따라 그것의 전송 프로세스를 조정할 수 있다. 그러나, 대개는, 역방향 채널이 이용 불가능하거나 실현 불가능하다. 예를 들어, 전송기가 대다수 수신기들로 전송 중일 경우, 그러한 모든 수신기들로부터의 역방향 채널들을 전송기가 핸들링할 수 없을 수도 있다. 그 결과, 통신 프로토콜들은 대부분 역방향 채널없이 설계되어야 하고, 그에 따라, 전송기는, 그러한 채널 조건들에 대한 완전한 검토없이, 광범위하게 변하는 채널 조건들을 다루어야 할 수도 있다.
수신기들이 휴대용이거나 이동형일 수 있는 저전력의 작은 장치들이어야 하며 데이터를 높은 대역폭들에서 수신해야 할 경우, 전송기들과 수신기들간의 데이터 전송 문제는 좀더 어려워질 수 있다. 예를 들어, 수신기들이 그들의 연산력, 메모리 사이즈, 이용 가능한 전력, 안테나 사이즈, 장치 사이즈 및 다른 설계 제한 사항들에서 제약받는 경우, 정적인 전송기로부터의 파일들 또는 스트림들을 다수의 또는 불확정 갯수의 휴대용 또는 이동형 수신기로 전달하기 위한 무선 네트워크는 브로드캐스트 또는 멀티캐스트로서 설정될 수 있다.
이러한 시스템에서, 다루어져야 할 고려사항들로는 적은 또는 무 역방향 채널, 한정된 메모리, 한정된 연산 주기들, 이동성 및 타이밍을 갖는 것을 들 수 있다. 바람직하게는, 본 설계가 데이터를 잠재적인 다수 수신기들로 전달하는데 필요한 전송 시간량을 최소화해야 하는데, 여기에서, 개개 수신기들은 예측할 수 없는 시점들에서 턴온 및 턴오프될 수 있고, 범위내로 그리고 범위 밖으로 이동할 수 있으며, 링크 에러들, 셀 변화들, 더 낮은 우선 순위의 파일 또는 스트림 패킷들이 일시적으로 누락될 것을 강제하는 셀들에서의 정체 등으로 인한 손실들을 발생시킬 수 있다.
데이터 전송을 위해 패킷 프로토콜이 사용될 경우, 패킷 네트워크를 통해 전송될 데이터의 파일, 스트림 또는 다른 블록은 동일 사이즈의 입력 심볼들로 분할되고 입력 심볼들은 연속적인 패킷들에 배치된다. 입력 심볼의 "사이즈"는, 입력 심볼이 실제로 비트 스트림으로 분할되는지에 관계없이, 비트로 측정될 수 있는데, 여기에서, 입력 심볼이 2M개 심볼들의 영문자로부터 선택될 경우, 입력 심볼은 M개 비트들의 사이즈를 가진다. 이러한 패킷-기반 통신 시스템에서는, 패킷 지향형 코딩 방식이 적합할 수 있다. 네트워크에서의 이레이져들에도 불구하고, 파일 전송이, 의도된 수신자로 하여금 원래 파일의 정확한 사본을 복원할 수 있게 한다면, 그 파일 전송은 신뢰할 수 있다고 한다. 네트워크에서의 이레이져들에도 불구하고, 스트림 전송이, 의도된 수신자로 하여금 시기적절한 방식으로 스트림 각 부분의 정확한 사본을 복원할 수 있게 한다면, 그 스트림 전송은 신뢰할 수 있다고 한다. 파일 또는 스트림의 일부분들이 복원 불가능하거나, 스트리밍의 경우, 스트림의 일부분들이 시기적절한 방식으로 복원 불가능하다는 점에서, 파일 전송 및 스트림 전송 모두가 어느 정도 신뢰할 수 없을 수도 있다. 패킷 손실은 흔히 발생하는데, 단발성 정체는, 입력 패킷들을 누락할 것을 라우터에 강제하는 라우터에서의 버퍼링 메커니즘을 통해 그것의 용량을 달성하기 때문이다. 전송 동안의 이레이져들에 대한 보호가 많은 연구의 주제가 되어 왔다.
파일 또는 스트림의 입력 심볼들로부터 임의 갯수의 출력 심볼 발생을 허용하기 위해 체인 리액션 코드들을 사용하는 것이 공지되어 있다. 이것은, 정보 중복 방식이 아닌, 정보 추가 방식으로 출력 심볼들을 발생시키는 것을 포함하여, 다수 용도들을 갖는데, 여기에서, 정보 중복 방식은, 수신기가 이미 인지하고 있는 데이터를 되풀이하는 추가 데이터를 수신기가 수신하는 경우이다. 체인 리액션 코드들을 발생시키고, 사용하며, 연산하기 위한 신규한 기술들이, 예를 들어, Luby에게 허가된 "Information Additive Code Generator and Decoder for Communication Systems"라는 명칭의 미국특허 제 6,307,487호("Luby I"), "Information Additive Group Code Generator and Decoder for Communication Systems"라는 명칭으로 Luby 등에게 허가된 미국특허 제 6,320,520호(이하 "Luby II"라고 함), 및 2003년 3월 27일 "Multi-Stage Code Generator and Decoder for Communication Systems"라는 명칭으로 공개된 Shokrollahi 등에 대한 미국특허 출원공개 제 2003/0058958호("Shokrollahi"라고 함)에 설명되어 있다. 허용되는 범위에서, 그들의 전체 개시들이 참조로써 여기에 포함되어 있다.
체인 리액션 인코더에 의해 발생되는 출력 심볼들의 일 특성은, 충분한 출력 심볼들이 수신되기만 하면, 수신기가 원래 파일 또는 원래 스트림의 블록을 복원할 수 있다는 것이다. 구체적으로, 높은 확률로 원래의 K 입력 심볼들을 복원하기 위해, 수신기는 대략 K+A개 출력 심볼들이 필요하다. A/K 비를 "상대적 수신 오버헤드(relative reception overhead)"라고 한다. 상대적 수신 오버헤드는 입력 심볼들의 수(K) 및 디코더의 신뢰도에 의존한다. 예를 들어, 구체적 일 실시예에서, K가 60,000일 경우, 5%의 상대적 수신 오버헤드는, 디코더가 적어도 1-10-8의 확률로 입력 파일 또는 스트림의 블록을 성공적으로 디코딩한다는 것을 보장하고, K가 10,000일 경우에는, 15%의 상대적 수신 오버헤드가 디코더의 동일한 성공 확률을 보장한다. 일 실시예에서, 체인 리액션 코드들의 상대적 수신 오버헤드는 (13*sqrt(K)+200)/K로서 계산될 수 있는데, 여기에서, sqrt(K)는 입력 심볼들의 수(K)에 대한 제곱근이다. 이 실시예에서, 체인 리액션 코드들의 상대적 수신 오버헤드는 K의 작은 값들에 대해 더 커지는 경향이 있다.
Luby I, Luby II 및 Shokrollahi는 본 발명에 따른 소정 실시예들에서 이용될 수 있는 시스템들 및 방법들에 대한 내용들을 제공한다. 그러나, 이러한 시스템들 및 방법들이 본 발명의 요구 사항인 것은 아니며, 다수의 다른 변경들, 변형들, 또는 대안들이 사용될 수도 있다는 것을 알 수 있을 것이다.
Shokrollahi에서 설명되고 "Raptor" 코드들이라는 상표명으로 Digital Fountain, Inc.에 의해 개발된 것들과 같은, "MSCR"(multi-stage chain reaction) 코드들을 사용하는 것도 공지되어 있다. MSCR 코드들은, 예를 들어, 소스 파일 또는 소스 스트림으로부터 입력 심볼들을 수신하고, 그로부터 중간 심볼들을 발생시키며, 체인 리액션 코드들을 사용해 중간 심볼들을 인코딩하는 인코더에서 사용된다. 좀더 구체적으로는, 전송될 입력 심볼들의 순서화된 세트로부터 복수개의 리던던트 (redundant) 심볼들이 발생된다. 입력 심볼들 및 리던던트 심볼들을 포함하는 심볼들의 조합 세트로부터 복수개의 출력 심볼들이 발생되는데, 이 경우, 가능한 출력 심볼들의 수는 심볼들의 조합 세트에서의 심볼들의 수보다 훨씬 크고, 심볼들의 조합 세트에서의 하나 이상의 심볼로부터 그러나 심볼들의 조합 세트에서의 모든 심볼들은 아닌 심볼들로부터, 그리고 입력 심볼들의 순서화된 세트가 소정 임의 갯수(N)의 출력 심볼들로부터 원하는 정확도로 재생될 수 있도록, 하나 이상의 출력 심볼이 발생된다.
일부 애플리케이션들을 위해서는, 코드들의 다른 변형들이 좀더 적합하거나 바람직할 수도 있다.
본 발명의 일 실시예에 따르면, 통신 채널을 통해 소스로부터 목적지로 전송하기 위해 데이터를 인코딩하는 방법이 제공된다. 본 방법은 입력 심볼들의 순서화된 세트에 대해 작용하며 입력 심볼들로부터 복수개의 리던던트 심볼들을 발생시키는 단계를 포함한다. 또한, 본 방법은 입력 심볼들 및 리던던트 심볼들을 포함하는 심볼들의 조합 세트로부터 복수개의 출력 심볼들을 발생시키는 단계도 포함하는데, 이 경우, 가능한 출력 심볼들의 수는 심볼들의 조합 세트에서의 심볼들의 수보다 훨씬 크고, 심볼들의 조합 세트에서의 하나 이상의 심볼로부터 그러나 심볼들의 조합 세트에서의 모든 심볼들은 아닌 심볼들로부터, 그리고 입력 심볼들의 순서화된 세트가 소정 임의 갯수(N)의 출력 심볼들로부터 원하는 정확도로 재생될 수 있도록, 하나 이상의 출력 심볼이 발생된다. 복수개의 리던던트 심볼들은, 제1 입력 심볼을 사용해서 계산되는 정적 심볼들의 제1 세트가 제1 입력 심볼과는 구별되는 제2 입력 심볼을 사용해서 계산되는 정적 심볼들의 제2 세트와는 낮은 공통의 멤버쉽을 갖도록, 결정적 프로세스(deterministic process)에서 전송될 입력 심볼들의 순서화된 세트로부터 발생된다.
본 발명의 다른 실시예에 따르면, 통신 채널을 통해 소스로부터 전송되는 데이터를 수신하기 위한 시스템이 유사한 기술들을 사용해 제공된다. 본 시스템은 통신 채널을 통해 전송되는 출력 심볼들을 수신하기 위해 통신 채널에 커플링되어 있는 수신 모듈을 구비하는데, 이 경우, 각각의 출력 심볼은 입력 심볼들과 리던던트 심볼들의 조합 세트에서의 하나 이상의 심볼로부터 발생되고, 하나 이상의 출력 심볼은 조합 세트에서의 하나 이상의 심볼로부터 그러나 조합 세트의 모든 심볼들은 아닌 심볼들로부터 발생되며, 가능한 출력 심볼들의 수는 조합 세트에서의 심볼들의 수보다 훨씬 크고, 입력 심볼들은 입력 심볼들의 순서화된 세트로부터 유래하며, 리던던트 심볼들은 입력 심볼들로부터 발생되고, 복수개의 리던던트 심볼들은, 제1 입력 심볼을 사용해서 계산되는 정적 심볼들의 제1 세트가 제1 입력 심볼과는 구별되는 제2 입력 심볼을 사용해서 계산되는 정적 심볼들의 제2 세트와 낮은 공통 멤버쉽을 갖도록, 결정적 프로세스에서 전송될 입력 심볼들의 순서화된 세트로부터 발생된다.
본 발명의 또 다른 실시예에 따르면, 반송파로 구현되는 컴퓨터 데이터 신호가 제공된다.
본 발명에 의해 다수의 이점들이 실현된다. 예를 들어, 구체적 일 실시예에서는, 채널을 통해 전송하기 위한 데이터를 인코딩하는 연산 비용이 감소된다. 특정한 다른 실시예에서는, 이러한 데이터를 디코딩하는 연산 비용이 감소된다. 실시예에 따라, 이러한 이점들 중 하나 이상이 실현될 수 있다. 다음에서는, 이들 및 다른 이점들이 본 명세서 전체에 걸쳐 좀더 상세하게 그리고 좀더 구체적으로 제공된다.
여기에 개시되어 있는 발명들의 특징 및 이점들에 대한 추가적 이해는 명세서 및 첨부 도면들의 나머지 부분들을 참조하여 실현될 수 있다.
도 1은 본 발명의 일 실시예에 따른 통신 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 인코더의 블록도이다.
도 3은 본 발명의 일 실시예에 따라 리던던트 심볼들을 발생시키는 방법의 간략화된 블록도이다.
도 4는 본 발명의 일 실시예에 따른 정적 인코더의 기본적 연산에 대한 간략화된 블록도이다.
도 5는 본 발명의 일 실시예에 따른 동적 인코더의 간략화된 블록도이다.
도 6은 본 발명의 일 실시예에 따른 동적 인코더의 기본적 연산에 대한 간략화된 블록도이다.
도 7은 본 발명의 일 실시예에 따른 정적 인코더의 간략화된 블록도이다.
도 8은 본 발명의 일 실시예에 따른 정적 인코더의 기본적 연산에 대한 간략화된 블록도이다.
도 9는 정적 인코더의 구체적 일 실시예에 따라 인코딩 파라미터들을 계산하기 위한 방법의 간략화된 도면이다.
도 10은 본 발명의 다른 실시예에 따른 정적 인코더의 간략화된 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 디코더의 간략화된 블록도이다.
도 12는 본 발명의 일 실시예에 따른 디코더의 연산에 대한 간략화된 흐름도이다.
도 13은 본 발명의 다른 실시예에 따른 디코더의 연산에 대한 간략화된 흐름도이다.
도 14는 본 발명의 또 다른 실시예에 따른 디코더의 연산에 대한 간략화된 흐름도이다.
도 15는 본 발명의 일 실시예에 따른 동적 디코더의 간략화된 블록도이다.
도 16은 본 발명의 일 실시예에 따른 정적 디코더의 간략화된 블록도이다.
도 17은 서브-심볼 매핑들로부터의 소스 심볼을 도시한다.
도 18은 다양한 파일 사이즈들을 위한 파일 다운로드 파라미터들의 가능한 설정들을 도시한다.
도 19는 다양한 소스 블록 사이즈들을 위한 스트리밍 파라미터들의 가능한 설정들을 도시한다.
도 20은 소스와 중간 심볼들간의 관계를 표현하는 행렬 형태를 도시한다.
도 21은 차수 발생기(degree generator)를 위한 차수 분포를 도시한다.
도 22는 디코딩에 사용될 수 있는 행렬 A의 형태를 도시한다.
상세한 설명에는 3개의 부록들이 수반되는데, Appendix A는 시스테메틱 (systematic) 인덱스들(J(K))을 위한 예시적 값들을 포함하고, Appendix B.1은 테이블 V0를 위한 예시적 값들을 포함하며, Appendix B.2는 테이블 V1를 위한 예시적 값들을 포함한다.
여기에서 설명되는 구체적 실시예들에서는, "다중-스테이지 코딩"으로서 지 시되는 코딩 방식이 설명되는데, Shokrollahi에서 그것의 실시예들이 제공된다.
다중-스테이지 인코딩은, 여기에서 설명되는 바와 같이, 데이터를 복수개 스테이지들에서 인코딩한다. 항상은 아니지만, 통상적으로, 제 1 스테이지는 데이터에 소정량의 리던던시(redundancy)를 부가한다. 그 다음, 제 2 스테이지는 체인 리액션 코드 등을 사용해 원래 데이터 및 인코딩의 제 1 스테이지에 의해 계산된 리던던트 심볼들로부터 출력 심볼들을 발생시킨다. 본 발명의 구체적 일 실시예에서는, 수신된 데이터가, 체인 리액션 프로세스를 사용해 먼저 디코딩된다. 그 프로세스가 원래 데이터를 완전하게 복원하는데 실패하면, 제 2의 디코딩 단계가 적용될 수 있다.
다중-스테이지 인코딩의 실시예들에서는, 인코딩의 제 1 스테이지 동안 입력 파일 또는 스트림의 블록으로부터 리던던트 심볼들이 발생된다. 이러한 실시예들에서, 인코딩의 제 2 스테이지에서는, 입력 파일 또는 스트림의 블록과 리던던트 심볼들의 조합으로부터 출력 심볼들이 발생된다. 이러한 실시예들 중 일부에서는, 출력 심볼들이 필요에 따라 발생될 수 있다. 제 2 스테이지가 체인 리액션 인코딩을 구비하는 실시예들에서, 각각의 출력 심볼은 다른 출력 심볼들이 발생되는 방식과 무관하게 발생될 수 있다. 일단 발생되고 나면, 이들 출력 심볼들은 패킷들로 배치되어 그들의 목적지로 전송될 수 있는데, 각각의 패킷은 하나 이상의 출력 심볼들을 포함한다. 대신에 또는 더불어 비-패킷화 전송 기술들이 사용될 수도 있다.
여기에서 사용되는 바와 같이, "파일"이라는 용어는 하나 이상의 소스들에 저장되어 있으며 하나 이상의 목적지들에 하나의 단위로서 전달될 임의의 데이터를 의미한다. 따라서, 문서, 이미지, 및 파일 서버 또는 컴퓨터 저장 장치로부터의 파일 모두는 전달될 수 있는 "파일들"의 일례들이다. 파일들은 (하드 디스크상에 저장되어 있는 1메가바이트 이미지와 같은) 공지 사이즈이거나 (스트리밍 소스의 출력으로부터 취해지는 파일과 같은) 미공지 사이즈일 수 있다. 어느 쪽이든, 파일은 입력 심볼들의 시퀀스인데, 각각의 입력 심볼은 파일에서의 위치 및 값을 가진다.
여기에서 사용되는 바와 같이, "스트림"이라는 용어는 하나 이상의 소스들에 저장되어 있거나 하나 이상의 소스들에서 발생되며 각 시점에서 특정 속도로 그것이 발생된 순서대로 하나 이상의 목적지로 전달되는 임의의 데이터를 의미한다. 스트림들은 고정 속도 또는 가변 속도일 수 있다. 따라서, MPEG 비디오 스트림, AMR 오디오 스트림, 및 원격 장치를 제어하는데 사용되는 데이터 스트림 모두는 전달될 수 있는 "스트림들"의 일례들이다. 각 시점에서의 스트림 속도는 (4 메가바이트/초와 같이) 공지이거나 (각 시점에서의 속도가 미리 공지되어 있지 않은 가변 속도 스트림과 같이) 미공지일 수 있다. 어느 쪽이든, 스트림은 입력 심볼들의 시퀀스이고, 각각의 입력 심볼은 스트림에서의 위치 및 값을 가진다.
전송은 파일 또는 스트림을 전달하기 위해 채널을 통해 하나 이상의 송신자들로부터 하나 이상의 수신자들에게로 데이터를 전송하는 프로세스이다. 송신자를 때로는 인코더라고도 한다. 하나의 송신자가 완전한 채널에 의해 임의 갯수의 수신자들에게 접속되어 있다면, 모든 데이터가 정확하게 수신될 것이므로, 수신 데이터는 입력 파일 또는 스트림의 정확한 사본일 수 있다. 여기에서는, 대부분의 실제 채널들을 위한 경우에서와 같이, 채널이 불완전하다고 가정한다. 다수의 채널 결함들 중에서, 관심있는 2가지 결함들은 데이터 이레이져 및 (데이터 이레이져의 특수한 경우로서 취급될 수 있는) 데이터 불완전성이다. 데이터 이레이져는, 채널이 데이터를 잃거나 누락할 때 발생한다. 데이터 불완전성은, 데이터 중 일부가 이미 통과되었을 때까지 수신자가 데이터 수신을 시작하지 않거나, 전송이 종료되기 전에 수신자가 데이터 수신을 중단하거나, 수신자가 전송되는 데이터의 일부만을 수신하기로 결정하거나, 그리고/또는 수신자가 간헐적으로 데이터 수신을 중단하고 다시 시작할 때 발생한다. 데이터 불완전성의 일례로서, 이동 중인 위성 송신자는 입력 파일 또는 스트림을 표현하는 데이터를 전송 중이고, 수신자가 범위내로 들어오기 전에, 전송을 시작할 수 있다. 수신자가 범위내로 들어오고 나면, 수신자가 (그것이 데이터를 수신하고 있지 않은 시간 동안) 그것의 위성 안테나에 범위로 이동해 온 다른 위성에 의해 전송되고 있는 동일한 입력 파일 또는 스트림에 관한 데이터 수신을 시작할 것을 재지시할 수 있는 시점에서, 위성이 범위를 벗어날 때까지, 데이터가 수신될 수 있다. 이 설명을 판독하는 것을 통해 알 수 있어야 하는 바와 같이, 수신자가 전체 시간 동안 범위내에 있었지만 수신자가 데이터 수신을 시작한 시점까지의 모든 데이터를 채널이 잃어버린 것처럼 수신자가 데이터 불완전성을 취급할 수 있으므로(그리고 수신자는 동일한 문제점들을 가지고 있으므로), 데이터 불완전성은 데이터 이레이져의 특수한 경우이다. 또한, 통신 시스템 설계에서 널리 공지되어 있는 바와 같이, 검출 가능한 에러들은 검출 가능한 에러들을 가진 모든 데이터 블록들 또는 심볼들을 단순히 누락하는 것에 의해 이레이져들과 등가인 것으로 간주될 수 있다.
일부 통신 시스템들에서, 수신자는 다수 송신자들에 의해 또는 다중 접속들을 사용 중인 일 송신자에 의해 발생된 데이터를 수신한다. 예를 들어, 다운로드를 가속하기 위해, 수신자는 동일 파일에 관한 데이터를 전송하기 위한 하나 이상의 송신자에 동시에 접속할 수 있다. 다른 예로서, 멀티캐스트 전송에서는, 수신자들을 송신자에게 접속시키는 채널의 대역폭과 집합 전송 속도를 매칭하기 위해, 다수의 멀티캐스트 데이터 스트림들이, 수신자들이 이러한 스트림들 중 하나 이상에 접속하는 것을 허용하도록 전송될 수도 있다. 이러한 모든 경우들에서, 관심은, 전송 속도들이 상이한 스트림들에 대해 크게 상이한 경우 및 손실의 임의 패턴들이 존재하는 경우라 하더라도, 전송되는 데이터 모두가 수신자에 대해 독립적으로 사용되는 것, 즉, 다수의 소스 데이터가 스트림들 사이에서 중복되지 않는다는 것을 보장하는 것이다.
일반적으로, 통신 채널은 데이터 전송을 위해 송신자와 수신자를 접속하는 채널이다. 통신 채널은, 채널이 데이터를 획득함에 따라, 송신자로부터의 데이터를 수신자로 이동시키는 실시간 채널일 수 있거나, 통신 채널은 송신자로부터 수신자로의 그것의 전이에서 데이터 중 일부 또는 전부를 저장하는 저장 채널일 수도 있다. 후자의 일례는 디스크 저장 장치 또는 다른 저장 장치이다. 그러한 일례에서, 데이터를 발생시키는 프로그램 또는 장치는, 저장 장치로 데이터를 전송 중인 송신자로서 간주될 수 있다. 수신자는, 저장 장치로부터 데이터를 판독하는 프로그램 또는 장치이다. 송신자가 저장 장치상의 데이터를 취하기 위해 사용하는 메커니즘들, 저장 장치 자체 및 수신자가 저장 장치로부터 데이터를 취하기 위해 사용하는 메커니즘들이 집합적으로 채널을 형성한다. 그러한 메커니즘들 또는 저장 장치가 데이터를 놓칠 수 있는 기회가 존재한다면, 그것이 통신 채널에서의 데이터 이레이져로서 취급될 것이다.
송신자와 수신자가, 심볼들이 이레이져될 수 있는 통신 채널에 의해 분리될 경우, 입력 파일 또는 스트림의 정확한 사본을 전송하는 것이 아니라, 대신에, 이레이져들의 복원을 지원하는 (입력 파일 또는 스트림 자체의 전부 또는 일부분들을 포함할 수 있는) 입력 파일 또는 스트림으로부터 발생되는 데이터를 전송하는 것이 바람직할 수 있다. 인코더는 그러한 태스크를 처리하는 회로, 장치, 모듈 또는 코드 세그먼트이다. 인코더의 연산을 검토하는 일 방법은 인코더가 입력 심볼들로부터 출력 심볼들을 발생시키는 것인데, 이 경우, 입력 심볼 값들의 시퀀스는 입력 파일 또는 스트림의 블록을 표현한다. 따라서, 각각의 입력 심볼은 입력 파일 또는 스트림의 블록에서의 위치 및 값을 가진다. 디코더는, 수신자에 의해 수신되는 출력 심볼들로부터 입력 심볼들을 재구성하는 회로, 장치, 모듈 또는 코드 세그먼트이다. 다중-스테이지 코딩에서, 인코더 및 디코더는, 각각 상이한 태스크를 수행하는 서브-모듈들로 세분된다.
다중-스테이지 코딩 시스템들의 실시예들에서, 인코더 및 디코더는, 각각 상이한 태스크를 수행하는 서브-모듈들로 세분될 수 있다. 예를 들어, 일부 실시예들에서, 인코더는 여기에서 정적 인코더 및 동적 인코더라고 하는 것을 구비한다. 여기에서 사용되는 바와 같이, "정적 인코더"는 한 세트의 입력 심볼들로부터 다수의 리던던트 심볼들을 발생시키는 인코더인데, 이 경우, 리던던트 심볼들의 수는 인코딩 이전에 판정된다. 정적 인코딩 코드들의 예들로는 리드-솔로몬(Reed-Solomon) 코드들, 토네이도(Tornado) 코드들, 해밍(Hamming) 코드들, LDPC(Low Density Parity Check) 코드들 등을 들 수 있다. "정적 디코더"라는 용어는 여기에서, 정적 인코더에 의해 인코딩된 데이터를 디코딩할 수 있는 디코더를 언급하는데 사용된다.
여기에서 사용되는 바와 같이, "동적 인코더"는, 한 세트의 입력 심볼들로부터 출력 심볼들을 발생시키는 인코더인데, 이 경우, 가능한 출력 심볼들의 수는 입력 심볼들의 수보다 더 큰 차수들의 규모이고, 발생될 출력 심볼들의 수가 고정일 필요는 없다. 동적 인코더의 일례는, Luby I 및 Luby II에서 설명된 인코더들과 같은, 체인 리액션 인코더이다. "동적 디코더"라는 용어는 여기에서, 동적 인코더에 의해 인코딩된 데이터를 디코딩할 수 있는 디코더를 언급하는데 사용된다.
다중-스테이지 코딩의 실시예들이 임의의 특정 유형 입력 심볼로 한정될 필요는 없다. 통상적으로, 입력 심볼들을 위한 값들은 소정의 양의 정수 M에 대한 2M개 심볼들의 영문자로부터 선택된다. 이러한 경우들에서, 입력 심볼은 입력 파일 또는 스트림으로부터의 M개 비트들의 데이터 시퀀스로써 표현될 수 있다. M의 값은 대개, 예를 들어, 애플리케이션의 용도들, 통신 채널, 및/또는 출력 심볼들의 사이즈에 기초해 판정된다. 추가적으로, 출력 심볼의 사이즈는 대개 애플리케이션, 채널, 및/또는 입력 심볼들의 사이즈에 기초해 판정된다. 일부 경우들에서, 출력 심볼 값들과 입력 심볼 값들이 동일 사이즈라면(즉, 동일한 수의 비트들로써 표현될 수 있거나 동일한 영문자로부터 선택된다면), 코딩 프로세스는 단순화될 수 있다. 그런 경우라면, 출력 심볼 값 사이즈가 한정될 때 입력 심볼 값 사이즈가 한정된다. 예를 들어, 출력 심볼들을 한정된 사이즈의 패킷들로 패킷화하는 것이 바람직할 수 있다. 출력 심볼들과 연관된 키에 관한 일부 데이터가 수신기에서 그 키를 복원하기 위해 전송되어야 한다면, 출력 심볼은 출력 심볼 값과 키에 관한 데이터를 하나의 패킷으로 수용하기에 충분할 정도로 작은 것이 바람직할 것이다.
일례로서, 입력 파일이 수 메가바이트 파일이라면, 입력 파일은 수천, 수만, 또는 수십만 입력 심볼들로 분해될 수도 있는데, 각각의 입력 심볼은 수천, 수백 또는 단지 수 바이트들을 인코딩한다. 다른 일례로서, 패킷-기반 인터넷 채널의 경우, 1024 바이트 사이즈의 페이로드를 갖춘 패킷이 적합할 수도 있다(일 바이트는 8비트이다). 이 예에서, 각각의 패킷이 하나의 출력 심볼 및 8 바이트의 보조 정보를 포함한다고 가정하면, 8128 비트((1024-8)*8)의 출력 심볼 사이즈가 적합할 것이다. 따라서, 입력 심볼 사이즈는 M=(1024-8)*8 또는 8128 비트로서 선택될 수 있다. 다른 일례로서, 일부 위성 시스템들은 MPEG 패킷 표준을 사용하는데, 이 경우, 각 패킷의 페이로드는 188 바이트들을 구비한다. 그러한 예에서, 각 패킷이 하나의 출력 심볼 및 4 바이트의 보조 정보를 포함한다고 가정하면, 1472 비트((188-4)*8)의 출력 심볼 사이즈가 적합할 것이다. 따라서, 입력 심볼 사이즈는 M=(188-4)*8 또는 1472 비트로서 선택될 수 있다. 다중-스테이지 코딩을 사용 중인 범용의 통신 시스템에서, 입력 심볼 사이즈(즉, M, 입력 심볼에 의해 인코딩되는 비트들의 수)와 같은, 애플리케이션-특정 파라미터들은 애플리케이션에 의해 설정되는 변수들일 수도 있다.
다른 일례로서, 가변 사이즈의 소스 패킷들을 사용해 송신되는 스트림의 경우, 각각의 소스 패킷이 소스 패킷보다 기껏해야 약간 더 큰 합계 사이즈를 가진 입력 심볼들의 진정수(integral number)로써 커버될 수 있도록 하기 위해, 심볼 사이즈는 다소 작게 선택될 수도 있다.
각각의 출력 심볼은 값을 가진다. 다음에서 살펴볼 바람직한 일 실시예에서, 각각의 출력 심볼은 그것의 "키"라고 하는 식별자와도 연관된다. 바람직하게도, 각 출력 심볼의 키는, 수신자가 하나의 출력 심볼을 다른 출력 심볼들과 구별할 수 있도록 하기 위해, 수신자에 의해 쉽게 판정될 수 있다. 바람직하게도, 출력 심볼의 키는 여타 출력 심볼들의 키들과 구별된다. 종래 기술에서 논의된 키잉(keying)의 다양한 형태들이 존재한다. 예를 들어, Luby I은 본 발명의 실시예들에서 이용될 수 있는 키잉의 다양한 형태들을 설명한다.
다중-스테이지 코딩은, 데이터 이레이져에 대한 예상이 존재하는 경우 또는, 전송이 시작되고 종료될 때, 수신자가 정확하게 수신을 시작하고 종료하지 않을 경우에 특히 유용하다. 후자의 조건을 여기에서는 "데이터 불완전성"이라고 한다. 이레이져 이벤트들과 관련하여, 다중-스테이지 코딩은 Luby I에서 설명된 체인 리액션 코딩의 이점들 중 많은 것을 공유한다. 특히, 다중-스테이지 출력 심볼들은 부가적 정보이므로, 임의의 적당한 수의 패킷들이 사용되어 입력 파일 또는 스트림을 소정의 정확도로 복원할 수 있다. 이러한 조건들이, 다중-스테이지 코딩이 사용될 경우의 통신 프로세스에 부정적인 영향을 미치지는 않는데, 다중-스테이지 코딩으로써 발생되는 출력 심볼들이 부가적 정보이기 때문이다. 예를 들어, 데이터 이레이져를 발생시키는 잡음의 버스트로 인해 100개의 패킷들이 손실되면, 버스트 이후에 이레이져된 패킷들의 손실을 대체하기 위해 여분의 100개 패킷들이 선택될 수 있다. 전송기가 전송을 시작했을 때 수신기가 전송기에 튜닝되지 않았기 때문에, 수천개의 패킷들이 손실되었다면, 수신기는 임의의 다른 전송 주기로부터 또는 심지어 다른 전송기로부터 그러한 수천개 패킷들을 단순히 선택할 수 있다. 다중-스테이지 코딩의 경우, 수신기는 임의의 특정 세트 패킷들을 선택하도록 한정되지 않으므로, 수신기는 일 전송기로부터 일부 패킷들을 수신하고, 다른 전송기로 스위칭하며, 일부 패킷들을 잃고, 소정 전송의 시작 또는 끝을 놓치고도 여전히 입력 파일 또는 스트림의 블록을 복원할 수 있다. 수신기-전송기 조정없이도 전송에 참여하고 전송을 그만 둘 수 있는 능력은 통신 프로세스를 단순화하는데 도움이 된다.
일부 실시예들에서, 다중-스테이지 코딩을 사용해 파일 또는 스트림을 전송하는 단계는 입력 파일 또는 스트림의 블록으로부터 입력 심볼들을 발생시키거나, 형성하거나, 추출하는 단계, 리던던트 심볼들을 계산하는 단계, 입력 및 리던던트 심볼들을 하나 이상의 출력 심볼들로 인코딩하는 단계로서, 각각의 출력 심볼이 여타 출력 심볼들과는 무관하게 그것의 키에 기초해 발생되는, 단계, 및 출력 심볼들을 채널을 통해 하나 이상의 수신자들에게로 전송하는 단계를 포함한다. 추가적으로, 일부 실시예들에서는, 다중-스테이지 코딩을 사용해 입력 파일 또는 스트림의 블록에 대한 사본을 수신하는 단계(및 재구성하는 단계)는 하나 이상의 데이터 스트림들로부터 출력 심볼들의 소정 세트 또는 서브세트를 수신하는 단계 및 수신된 출력 심볼들의 값들 및 키들로부터 입력 심볼들을 디코딩하는 단계를 포함할 수 있다.
여기에서 설명되는 적합한 FEC 이레이져 코드들은 상기한 어려움들을 극복하는데 사용될 수 있으며 멀티미디어 브로드캐스팅과 멀티캐스팅 시스템들 및 서비스들을 포함하는 다수의 분야들에서 사용될 것이다. 이하에서 "다중-스테이지 체인 리액션 코드"라고 하는 FEC 이레이져 코드는 이러한 시스템들 및 서비스들에 대한 현재와 미래의 요구 사항들 중 다수를 충족시키는 특성들을 가진다.
다중-스테이지 체인 리액션 코드들의 기본적인 일부 특성들은, 임의의 패킷 손실 조건들을 위해 그리고 임의의 관련 사이즈 소스 파일들 또는 임의의 관련 속도 스트림들의 전달을 위해, (a) 개별적인 각 수신기 장치("RD")의 수신 오버헤드가 최소화되고; (b) 소스 파일들을 임의 갯수의 RD들로 전달하는데 필요한 총 전송 시간이 최소화될 수 있으며; (c) 임의 갯수의 RD들로 전달되는 스트림의 품질이, 전송 스케줄들의 적합한 선택을 통해, 입력 심볼들의 수와 관련하여 송신되는 출력 심볼들의 수에 대해 최대화될 수 있다는 것이다. RD들은 핸드헬드 장치들이거나, 차량에 장착되거나, 휴대용이거나(즉, 통상적으로는 아니지만 사용 중일 경우에는 이동 가능하거나) 한 장소에 고정될 수 있다.
디코딩을 위해 필요한 작업 메모리의 양은 낮으며 여전히 상기 특성들을 제공할 수 있고, 인코딩 및 디코딩을 위해 필요한 계산량은 최소이다. 이 명세서에서는, 구현이 간단하고 용이한 다중-스테이지 체인 리액션 코드들의 소정 변형들에 대한 설명을 제공한다.
다중-스테이지 체인 리액션 코드들은 원천 코드들(fountain codes)인데, 다시 말해, 각각이 소스 파일 또는 스트림의 블록을 복원하는데 동등하게 유용한 고유한 인코딩 심볼들을 포함하는, 필요한 만큼의 인코딩 패킷들이 연속적으로 발생될 수 있다. 원천 코드들을 사용하는 것에는 다른 유형들의 FEC 코드들에 비해 많은 이점들이 존재한다. 일 이점은, 패킷 손실 조건들 및 RD 이용 가능성과 무관하게, 원천 코드들은, 소스 파일 또는 스트림의 블록을 재구성하기 위해 각각의 RD가 수신해야 하는 인코딩 패킷들의 수를 최소화한다는 것이다. 엄격한 패킷 손실 조건들하에서도 이것이 적용되고, 예를 들어, 모바일 RD들이 간헐적으로 턴온되거나 장기의 파일 다운로드 세션에 걸쳐 이용 가능할 경우에도 적용된다.
다른 이점은, 전송이 진행되는 동안 얼마나 많은 인코딩 패킷들을 연속적으로 발생시켜야 하는지를 판정하고, 정확하게 필요한 만큼의 인코딩 패킷들을 발생시키는 능력이다. 예를 들어, RD들이 소스 파일 또는 스트림의 블록을 복원하기에 충분한 인코딩 패킷들을 수신했는지 그렇지 않은지를 지시하는 RD들로부터의 피드백이 존재한다면, 이것이 유용할 수 있다. 패킷 손실 조건들이 예상보다 덜 심각하면, 전송은 빨리 종결될 수 있다. 패킷 손실 조건들이 예상보다 더 심각하거나 RD들이 예상보다 빈번하게 이용 불가능할 경우, 전송은 심리스하게(seamlessly) 연장될 수 있다.
다른 이점은 역다중화(inverse multiplexing)할 수 있는 능력이다. 역다중화는, RD가 독립적인 송신자들에서 발생되어 수신된 인코딩 패킷들을 소스 파일 또는 스트림의 블록을 재구성하기 위해 조합할 수 있는 경우이다. 상이한 송신자들로부터 인코딩 패킷들을 수신하는 것을 참조하여, 역다중화의 실질적인 일 용도가 후술된다.
미래의 패킷 손실, RD 이용 가능성 및 애플리케이션 조건들을 예측하기 힘들 경우, 예측 불가능한 조건들하에서도 가능한 유연하게 적용될 수 있는 FEC 솔루션을 선택하는 것이 중요하다. 다중-스테이지 체인 리액션 코드들은 다른 유형들의 FEC 코드들에 의해서는 매칭될 수 없는 유연성 정도를 제공한다.
이제는 도면들을 참조하여, 본 발명의 양태들을 설명할 것이다.
시스템 개요
도 1은 다중-스테이지 코딩을 사용하는 통신 시스템(100)의 블록도이다. 통신 시스템(100)에서는, 입력 파일(101) 또는 입력 스트림(105)이 입력 심볼 발생기(110)에 제공된다. 입력 심볼 발생기(110)는 입력 파일 또는 스트림으로부터 하나 이상의 입력 심볼들의 시퀀스(IS(0), IS(1), IS(2), ...)를 발생시키는데, 각각의 입력 심볼은 값 및 (도 1에서 괄호 안의 정수로서 지시되는) 위치를 가진다. 상술된 바와 같이, 입력 심볼들을 위해 가능한 값들, 즉, 그것의 영문자는 통상적으로 2M개 심볼들의 영문자이므로, 각각의 입력 심볼은 입력 파일 또는 스트림의 M개 비트들을 코딩한다. M의 값은 일반적으로 통신 시스템(100)의 용도에 의해 판정되지만, 범용 시스템은 입력 심볼 발생기(110)를 위한 심볼 사이즈 입력을 포함할 수 있으므로, M은 용도에 따라 변경될 수 있다. 입력 심볼 발생기(110)의 출력은 인코더(115)에 제공된다.
정적 키 발생기(130)는 정적 키들의 스트림(S0, S1, ...)을 발생시킨다. 발생되는 정적 키들의 수는 일반적으로 한정되며 인코더(115)의 특정 실시예에 의존한다. 정적 키들의 발생은 후속적으로 부연될 것이다. 동적 키 발생기(120)는 인코더(115)에 의해 발생될 각각의 출력 심볼을 위한 동적 키를 발생시킨다. 각각의 동적 키는, 동일한 입력 파일 또는 스트림의 블록에 대한 대부분의 동적 키들의 큰 부분이 고유하도록 발생된다. 예를 들어, Luby I은 사용될 수 있는 키 발생기들의 실시예들을 설명한다. 동적 키 발생기(120) 및 정적 키 발생기(130)의 출력들은 인코더(115)에 제공된다.
동적 키 발생기(120)에 의해 제공되는 각각의 키(I)로부터 그리고 입력 심볼 발생기에 의해 제공되는 입력 심볼들로부터, 인코더(115)는 값 B(I)를 가진 출력 심볼을 발생시킨다. 인코더(115)의 연산은 상세히 후술될 것이다. 각 출력 심볼의 값은 그것의 키에, 입력 심볼들 중 하나 이상의 소정 함수에, 그리고 어쩌면 입력 심볼들로부터 계산된 하나 이상의 리던던트 심볼들에 기초해 발생된다. 특정한 출력 심볼을 발생시키는 입력 심볼들과 리던던트 심볼들의 집합을 여기에서는 출력 심볼의 "연관 심볼들" 또는 단순히 그것의 "연관들"이라고 한다. 함수("값 함수;value function")과 연관들의 선택은 상세히 후술되는 프로세스에 따라 수행된다. 항상은 아니지만 통상적으로, M은 입력 심볼들 및 출력 심볼들에 대해 동일한데, 다시 말해, 이들 모두는 동일한 수의 비트들을 코딩한다.
일부 실시예들에서, 입력 심볼들의 수(K)는 인코더(115)에 의해 연관들을 선택하는데 사용된다. 입력이 스트리밍 파일인 경우와 같이, K가 미리 공지되어 있지 않다면, K는 단지 추정치일 수 있다. 또한, 값 K는, 인코더(115)에 의해, 입력 심볼들 및 인코더(115)에 의해 발생되는 임의의 중간 심볼들을 위한 저장 공간을 할당하는데도 사용될 수 있다.
인코더(115)는 전송 모듈(140)에 출력 심볼들을 제공한다. 또한, 전송 모듈(140)에는 동적 키 발생기(120)로부터 이러한 출력 심볼 각각의 키가 제공된다. 전송 모듈(140)은 출력 심볼들을 전송하고, 사용되는 키잉 방법에 따라, 전송 모듈(140)은 전송되는 출력 심볼들의 키들에 관한 일부 데이터를 채널(145)을 통해 수신 모듈(150)로 전송할 수 있다. 채널(145)은 이레이져 채널인 것으로 가정되지만, 그것이 통신 시스템(100)의 적합한 연산을 위한 요구 사항인 것은 아니다. 전송 모듈(140)이 출력 심볼들 및 그들의 키들에 관한 임의의 필요 데이터를 채널(145)로 전송하도록 적응되고 수신 모듈(150)이 채널(145)로부터 심볼들 및 어쩌면 그들의 키들에 관한 일부 데이터를 수신하도록 적응되어 있기만 하다면, 모듈들(140, 145 및 150)은 임의의 적합한 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 물리적 매체들, 또는 이들의 임의 조합일 수 있다. K의 값은, 연관들을 판정하는데 사용된다면, 채널(145)을 통해 송신될 수 있거나, 인코더(115)와 디코더(155)의 동의에 의해 미리 설정될 수 있다.
상술된 바와 같이, 채널(145)은, 인터넷을 통한 경로, TV 전송기로부터 TV 수신기로의 브로드캐스트 링크 또는 일 포인트에서 다른 포인트로의 전화 접속과 같은, 실시간 채널일 수 있거나, CD-ROM, 디스크 드라이브, 웹 사이트 등과 같은, 저장 채널일 수 있다. 채널(145)은 심지어, 한 사람이 퍼스널 컴퓨터로부터 전화선을 통해 ISP(Internet Service Provider)로 전송한 입력 파일이 웹 서버에 저장 된 다음 인터넷을 통해 수신자에게로 전송되는 경우에 형성되는 채널과 같은, 실시간 채널과 저장 채널의 조합일 수도 있다.
채널(145)은 이레이져 채널인 것으로 가정되기 때문에, 통신 시스템(100)은 수신 모듈(150)을 빠져 나오는 출력 심볼들과 전송 모듈(140)로 진입하는 출력 심볼들간의 일-대-일 대응 관계를 가정하지는 않는다. 실제로, 채널(145)이 패킷 네트워크를 구비할 경우, 통신 시스템(100)은 심지어, 임의의 2 이상의 패킷들에 대한 상대적 순서가 채널(145)을 통한 전이에서 보존된다고 가정할 수 없을 수도 있다. 따라서, 출력 심볼들의 키는 상술된 키잉 방식들 중 하나 이상을 사용해 판정되며, 반드시, 출력 심볼들이 수신 모듈(150)을 빠져 나오는 순서에 의해 판정될 필요는 없다.
수신 모듈(150)은 디코더(155)에 출력 심볼들을 제공하고, 수신 모듈(150)이 이러한 출력 심볼들의 키들에 관해 수신하는 모든 데이터는 동적 키 재생기(160)로 제공된다. 동적 키 재생기(160)는 수신된 출력 심볼들에 대한 동적 키들을 재생하고 이러한 동적 키들을 디코더(155)에 제공한다. 정적 키 발생기(130)는 정적 키들(S0, S1, ...)을 재생하고 그들을 디코더(155)에 제공한다. 정적 키 발생기는 인코딩 및 디코딩 프로세스 동안 모두에 사용되는 난수 발생기(135)로의 액세스를 가진다. 이것은, 난수들이 이러한 장치에서 발생된다면, 동일한 물리 장치로의 액세스 형태이거나 동일한 거동을 실현하기 위한 난수들의 발생을 위한 동일한 알고리즘으로의 액세스 형태일 수 있다. 디코더(155)는 동적 키 재생기(160) 및 정적 키 발생기(130)에 의해 제공되는 키들을 대응되는 출력 심볼들과 함께 사용하여 입력 심볼들(다시 IS(0), IS(1), IS(2), ...)을 복원한다. 디코더(155)는 복원된 입력 심볼들을 입력 파일 리어셈블러(reassembler;165)에 제공하는데, 입력 파일 리어셈블러(165)는 입력 파일(101) 또는 입력 스트림(105)의 사본(170)을 발생시킨다.
인코더
도 2는 도 1에 나타낸 인코더(115)에 대한 구체적 일 실시예의 블록도이다. 인코더(115)는 정적 인코더(210), 동적 인코더(220), 및 리던던시 계산기(230)를 구비한다. 정적 인코더(210)는 다음의 입력들: a) 입력 심볼 발생기(110)에 의해 제공되며 입력 심볼 버퍼(205)에 저장되는 원래의 입력 심볼들(IS(0), IS(1), ..., IS(K-1)); b) 원래의 입력 심볼들의 수(K); c) 정적 키 발생기(130)에 의해 제공되는 정적 키들(S0, S1, ...); 및 d) 리던던트 심볼들의 수(R)를 수신한다. 이러한 입력들의 수신시에, 정적 인코더(205)는, 후술되는 바와 같이, R개의 리던던트 심볼들(RE(0), RE(1), ..., RE(R-1))을 계산한다. 항상은 아니지만 통상적으로, 리던던트 심볼들은 입력 심볼들과 동일 사이즈를 가진다. 구체적 일 실시예에서, 정적 인코더(210)에 의해 발생되는 리던던트 심볼들은 입력 심볼 버퍼(205)에 저장된다. 입력 심볼 버퍼(205)는 단지 논리적인 것일 수도 있는데, 다시 말해, 파일 또는 스트림의 블록은 한 장소에 물리적으로 저장될 수 있고 심볼 버퍼(205)내에서의 입력 심볼들의 위치들은 단지 원래 파일 또는 스트림 블록내의 이들 심볼들에 대한 위치들의 개명들(renamings)일 수도 있다.
동적 인코더는 입력 심볼들 및 리던던트 심볼들을 수신하고, 다음에서 부연되는 바와 같이, 출력 심볼들을 발생시킨다. 리던던트 심볼들이 입력 심볼 버퍼(205)에 저장되는 일 실시예에서, 동적 인코더(220)는 입력 심볼 버퍼(205)로부터 입력 심볼들 및 리던던트 심볼들을 수신한다.
리던던시 계산기(230)는 입력 심볼들의 수(K)로부터 리던던트 심볼들의 수(R)를 계산한다. 이 계산은 다음에서 부연된다.
정적 인코더의 개요
정적 인코더(210)의 일반적 연산이 도 3 및 도 4를 참조하여 제시된다. 도 3은 정적으로 인코딩하는 방법의 일 실시예를 도시하는 간략화된 흐름도이다. 단계 305에서는, 얼마나 많은 리던던트 심볼들이 발생되었는지를 추적하는 변수 j가 0으로 설정된다. 다음으로, 단계 310에서는, 제 1 리던던트 심볼(RE(0))이 입력 심볼들(IS(0), ..., IS(K-1)) 중 적어도 일부의 함수 F0로서 계산된다. 다음으로, 단계 315에서는, 변수 j가 증분된다. 다음으로, 단계 320에서는, 리던던트 심볼들 모두가 발생되었는지의 여부(즉, j가 R-1보다 큰지)가 테스트된다. 예라면, 흐름은 종료된다. 그렇지 않으면, 흐름은 단계 325로 진행한다. 단계 325에서는, RE(j)가 입력 심볼들(IS(0), ..., IS(K-1))과 앞서 발생된 리던던트 심볼들(RE(0), ..., RE(j-1))의 함수 Fj로서 계산되는데, 여기에서, Fj가 모든 입력 심볼들 또는 모든 리던던트 심볼들에 의존하는 함수일 필요는 없다. 단계들(315, 320, 및 325)은, R개의 리던던트 심볼들이 계산될 때까지 반복된다.
다시 도 1 및 도 2를 참조하면, 일부 실시예들에서, 정적 인코더(210)는 정적 키 발생기(130)로부터 하나 이상의 정적 키들(S0, S1, ...)을 수신한다. 이러한 실시예들에서, 정적 인코더(210)는 정적 키들을 사용해 함수들(F0, F1, ... Fj-1) 중 일부 또는 전부를 판정한다. 예를 들어, 정적 키(S0)는 함수(F0)을 판정하는데 사용될 수 있고, 정적 키(S1)는 함수(F1)을 판정하는데 사용될 수 있는 등이다. 또는, 정적 키들(S0, S1, ...) 중 하나 이상이 함수(F0)을 판정하는데 사용될 수 있고, 정적 키들(S0, S1, ...) 중 하나 이상이 함수(F1)을 판정하는데 사용될 수 있는 등이다. 다른 실시예들에서는, 정적 키들이 불필요하므로, 정적 키 발생기(130)는 불필요하다.
이제 도 2 및 도 3을 참조하면, 일부 실시예들에서, 정적 인코더(210)에 의해 발생되는 리던던트 심볼들은 입력 심볼 버퍼(205)에 저장될 수 있다. 도 4는 정적 인코더(210)의 일 실시예에 대한 연산의 간략화된 도시이다. 구체적으로, 정적 인코더(210)는, 입력 심볼 버퍼(205)로부터 수신되는, 입력 심볼들(IS(0), ..., IS(K-l), RE(0), ..., RE(j-1))의 함수(Fj)로서 리던던트 심볼(RE(j))을 발생시키고 그것을 다시 입력 심볼 버퍼(205)에 저장한다. 함수들(F0, F1, ..., FR-1)의 정확한 형태는 특정 애플리케이션에 의존한다. 항상은 아니지만 통상적으로, 함수들(F0, F1, ..., FR-1)은 그들의 대응되는 인수들 중 일부 또는 전부에 대한 배타적 OR(exclusive OR)를 포함한다. 상술된 바와 같이, 이러한 함수들은 도 1의 정적 키 발생기(130)에 의해 발생되는 정적 키들을 실제로 이용할 수도 그렇지 않을 수도 있다. 예를 들어, 후술되는 구체적 일 실시예에서, 처음의 몇 개 함수들은 해밍 코드를 구현하며 정적 키들(S0, S1, ...)을 전혀 사용하지 않는 반면, 나머지 함수들은 LDPC(Low-Density Parity-Check) 코드를 구현하며 정적 키들을 명시적으로 사용한다.
다중-스테이지 인코더의 개요
다시 도 2를 참조하면, 동적 인코더(220)는 입력 심볼들(IS(0), ..., IS(K-1))과 리던던트 심볼들(RE(0),...,RE(R-1)) 및 그것이 발생시킬 각각의 출력 심볼을 위한 키(I)를 수신한다. 원래의 입력 심볼들과 리던던트 심볼들을 구비하는 집합을 이하에서는 "동적 입력 심볼들"의 집합이라고 할 것이다. 도 5는, 가중치 선택기(510), 연관기(515), 값 함수 선택기(520) 및 계산기(525)를 포함하는, 동적 인코더에 대한 일 실시예의 간략화된 블록도이다. 도 5에 나타낸 바와 같이, (K+R)개의 동적 입력 심볼들이 동적 심볼 버퍼(505)에 저장된다. 실제로, 동적 인코더(500)는 도 6에 도시된 동작, 즉, 선택된 입력 심볼들의 소정 값 함수로서 출력 심볼 값(B(I))을 발생시키기 위한 동작을 수행한다.
도 7은 본 발명에 따른 정적 인코더의 구체적 일 실시예에 대한 간략화된 블록도이다. 정적 인코더(600)는 파라미터 계산기(605), 해밍 인코더(610), 및 LDPC(low-density-parity-check) 인코더(620)를 구비한다. 해밍 인코더(610)는 입력 심볼 버퍼(625)로부터의 입력 심볼들(IS(0), ..., IS(K-1)), 입력 심볼들의 수(K), 및 파라미터 D를 수신하도록 커플링되어 있다. 그에 응답하여, 해밍 인코더(610)는 해밍 코드에 따라 (D+1)개의 리던던트 심볼들(HA(0), HA(1), ..., HA(D))을 발생시킨다.
도 8은, 도 7에 나타낸 정적 인코더를 이용하는 본 발명의 일 실시예에 대한 연산을 도시한다.
도 9는, 상술된 바와 같이, 파라미터 D 및 E를 계산하는, 도 7의 파라미터 계산기(605)와 같은, 파라미터 계산기의 일 실시예를 도시하는 간략화된 흐름도이다. 먼저, 단계 705에서는, 파라미터 D가 1로 초기화된다. 다음으로, 단계 710에서는, 2D - D - 1이 K 미만인지가 판정된다. 아니오라면, 흐름은 단계 730으로 진행한다. 예라면, 흐름은, 파라미터 D가 증분되는 단계 720으로 진행한다. 다음으로, 흐름은 다시 단계 710으로 진행한다. 일단 D가 판정되고 나면, 단계 730에서는, 파라미터 E가 R - D - 1로서 계산된다.
도 10은, 이제 설명될, 본 발명의 일 실시예에 따른 인코더의 간략화된 흐름도이다. 먼저, 단계 805에서는, 변수 i가 0으로 초기화된다. 변수 i는 이미 발생된 리던던트 심볼들의 수를 추적한다. 단계 810에서는, 숫자 t가 K/2 이상의 최소의 홀수 정수로서 계산된다. 단계 815에서는, K, t, 및 정적 키(Si)에 기초해, 값들(P1, P2, ..., Pt)이 발생된다. 값들(P1, P2, ..., Pt)은, 리던던트 심볼을 발생시키는데 사용될 입력 심볼들의 위치들을 지시한다. 특정한 일 실시예에서는, 도 5의 연관기(515)와 같은 연관기가 P1, P2, ..., Pt를 발생시키는데 사용된다. 특히, 값 t는 W(I) 입력으로서 제공될 수 있고, 값 K는 K+R 입력으로서 제공될 수 있으며, 정적 키 Si는 키 I 입력으로서 제공될 수 있다. t의 상이한 다수 값들이 유사한 코딩 효과들을 발생시킬 것이므로, 이러한 특정 선택은 일례일 뿐이라는 것에 주목해야 한다. 단계 820에서는, RE(i)의 값이 값들(IS(P1), IS(P2), ..., IS(Pt))의 XOR로서 계산된다. 단계 825에서는, 변수 i가 후속의 리던던트 심볼 계산을 준비하기 위해 1만큼 증분되고, 단계 830에서는, 모든 리던던트 심볼들이 계산되었는지가 판정된다. 아니오라면, 흐름은 단계 815로 복귀한다.
도 11은 본 발명에 따른 디코더의 일 실시예를 도시하는 간략화된 블록도이다. 디코더(900)는, 예를 들어, 도 1의 디코더(155)를 구현하는데 사용될 수 있다.
디코더(900)는 동적 디코더(905) 및 정적 디코더(910)를 구비한다. 동적 디코더(905)에 의해 복원되는 입력 심볼들과 리던던트 심볼들은 재구성 버퍼(915)에 저장된다. 동적 디코딩의 완료시에, 정적 디코더(910)는, 존재한다면, 동적 디코더(905)에 의해 복원되지 않은 임의의 입력 심볼들의 복원을 시도한다. 특히, 정적 디코더(910)는 재구성 버퍼(915)로부터 입력 심볼들과 리던던트 심볼들을 수신한다.
도 12는 본 발명에 따른 디코딩 방법의 일 실시예를 도시하는 간략화된 흐름도이다. 단계 1005에서는, Q개의 출력 심볼들이 디코더에 의해 수신된다. Q의 값은 입력 심볼들의 수 및 사용되는 특정의 동적 인코더에 의존할 수 있다. 또한, Q의 값은, 디코더가 입력 심볼들을 복원할 수 있는 원하는 정확도에도 의존할 수 있다. 예를 들어, 디코더가 입력 심볼들 모두를 높은 확률로 복원할 수 있는 것이 바람직하다면, Q는 입력 심볼들의 수보다 크게 선택되어야 한다. 특히, 일부 애플리케이션들에서는, 입력 심볼들의 수가 클 경우, Q는 원래 입력 심볼들의 수보다 3% 미만으로 클 수 있다. 다른 애플리케이션들에서, 입력 심볼들의 수가 작을 경우, Q는 입력 심볼들의 수보다 적어도 10% 이상 클 수 있다. 구체적으로, Q는 입력 심볼들의 수(K) + 수(A)로서 선택될 수 있는데, 여기에서, A는, 디코더가 입력 심볼들 모두를 높은 확률로 재생할 수 있다는 것을 보장하도록 선택된다. 수 A의 판정은 더 상세히 후술된다. 디코더가 (때때로 또는 항상) 입력 심볼들 모두를 디코딩할 수는 없다는 것을 수용할 수 있다면, Q는 K+A 미만이거나, K와 동일하거나, 심지어 K 미만일 수도 있다. 명백하게, 전체 코딩 시스템의 일 목표는 종종, 원하는 정확도와 관련하여 디코딩 프로세스의 성공에 대한 양호한 확률 보장들을 유지하면서, Q를 가능한 많이 감소시키는 것일 것이다.
단계 1010에서는, 동적 디코더(905)가 수신된 Q개의 출력 심볼들로부터 입력 심볼들과 리던던트 심볼들을 재생한다. 단계들(1005 및 1010)이 실질적으로 동시에 수행될 수도 있다는 것을 알 수 있을 것이다. 예를 들어, 동적 디코더(905)는, 디코더가 Q개의 입력 심볼들을 수신하기 전에, 입력 심볼들과 리던던트 심볼들의 재생을 시작할 수도 있다.
동적 디코더(905)가 Q개의 출력 심볼들을 프로세싱하고 나면, 입력 심볼들이 원하는 정확도로 복원되었는지가 판정된다. 원하는 정확도는, 예를 들어, 모든 입력 심볼들, 모든 입력 심볼들 미만의 소정 갯수, 백분율 등일 수 있다. 예라면, 흐름은 종료한다. 아니오라면, 흐름은 단계 1020으로 진행한다. 단계 1020에서는, 정적 디코더(910)가, 동적 디코더(905)가 복원할 수 없었던 임의의 입력 심볼들의 복원을 시도한다. 정적 인코더(910)가 동적 인코더(905)에 의해 복원된 입력 심볼들과 리던던트 심볼들을 프로세싱하고 나면, 흐름은 종료한다.
도 13은 본 발명에 따른 디코딩 방법의 다른 실시예를 도시하는 간략화된 흐름도이다. 이 실시예는 도 11을 참조하여 설명된 실시예와 유사하며, 단계들(1005, 1010, 1015, 및 1025)을 공통으로 포함한다. 그러나, 단계 1025 이후에, 흐름은, 입력 심볼들이 원하는 정확도로 복원되었는지가 판정되는 단계 1030으로 진행한다. 예라면, 흐름은 종료한다. 아니오라면, 흐름은 단계 1035로 진행한다. 단계 1035에서는, 하나 이상의 추가적 출력 심볼들이 수신된다. 그 다음, 흐름은 다시 단계 1010으로 진행하므로, 동적 디코더(905) 및/또는 정적 디코더(910)는 복원되지 않은 나머지 입력 심볼들의 복원을 시도할 수 있다.
도 14는 본 발명에 따른 디코딩 방법의 또 다른 실시예를 도시하는 간략화된 흐름도이다. 단계 1055에서는, 디코더에 의해 출력 심볼들이 수신되고, 단계 1060에서는, 동적 디코더(905)가 수신된 출력 심볼들로부터 입력 심볼들과 리던던트 심볼들을 재생한다. 다음으로, 단계 1065에서는, 동적 디코딩이 종료되어야 하는지가 판정된다. 이 판정은 프로세싱된 출력 심볼들의 수, 복원된 입력 심볼들의 수, 추가적 입력 심볼들이 복원되고 있는 현재의 속도, 출력 심볼들을 프로세싱하는데 소요된 시간 등 중 하나 이상에 기초할 수 있다.
단계 1065에서, 동적 디코딩이 중단되지 않아야 한다고 판정되면, 흐름은 다시 단계 1055로 진행한다. 그러나, 단계 1065에서, 동적 디코딩을 종료하기로 판정하면, 흐름은 단계 1070으로 진행한다. 단계 1070에서는, 입력 심볼들이 원하는 정확도로 복원되었는지가 판정된다. 예라면, 흐름은 종료한다. 아니오라면, 흐름은 단계 1075로 진행한다. 단계 1075에서, 정적 디코더(910)는, 동적 디코더(905)가 복원할 수 없었던 임의의 입력 심볼들의 복원을 시도한다. 정적 인코더(910)가 동적 인코더(905)에 의해 복원된 입력 심볼들과 리던던트 심볼들을 프로세싱한 후, 흐름은 종료한다.
도 15는 본 발명에 따른 동적 디코더의 일 실시예를 나타낸다. 동적 디코더(1100)는 도 5에 나타낸 동적 인코더(500)의 컴포넌트들과 유사한 컴포넌트들을 포함한다. 디코더(1100)는 Luby I 및 Luby II에서 설명된 체인 리액션 디코더들의 실시예들과 유사하다. 동적 디코더(1100)는 가중치 선택기(510), 연관기(515), 값 함수 선택기(520), 출력 심볼 버퍼(1105), 경감기(reducer;1115), 재구성기(1120) 및 재구성 버퍼(1125)를 구비한다.
도 16은 정적 디코더의 일 실시예를 도시하는 간략화된 블록도이다. 이 실시예는, 데이터가 도 7을 참조하여 설명된 바와 같은 정적 인코더로써 인코딩되는 경우에 사용될 수 있다. 정적 디코더(1200)는 LDPC 디코더(1205) 및 해밍 디코더(1210)를 구비한다. LDPC 디코더(1205)는 재구성 버퍼(1215)로부터 입력 심볼들과 리던던트 심볼들을 수신하고, 동적 디코더의 디코딩 단계 이후에, 재구성 버퍼(1215)의 복원되지 않은 심볼들에 대한 재구성을 시도한다. 일부 실시예들에서, 재구성 버퍼(1215)는 재구성 버퍼(1125;도 5)이다.
LDPC 디코더들 및 해밍 디코더들의 다수 변형들이 당업자들에게 공지되어 있으며, 본 발명에 따른 다양한 실시예들에서 이용될 수 있다. 특정한 일 실시예에서, 해밍 디코더는 가우시안 소거 알고리즘을 사용해 구현된다. 가우시안 소거 알고리즘들의 다수 변형들이 당업자들에게 공지되어 있으며, 본 발명에 따른 다양한 실시예들에서 이용될 수 있다.
변경예들
상술된 다중-스테이지 체인 리액션 코드들은 시스테메틱 코드들이 아닌데, 다시 말해, 소스 블록의 원래의 소스 심볼들 모두가 송신되는 인코딩 심볼들에 속할 필요는 없다. 그러나, 시스테메틱 FEC 코드들이 파일 다운로드 시스템 또는 서비스를 위해 유용하며, 스트리밍 시스템 또는 서비스를 위해서는 아주 중요하다. 다음의 구현에서 설명되는 바와 같이, 변경된 코드는 체계화될 수 있으며 여전히 원천 코드 및 설명된 다른 특성들을 보유할 수 있다.
다중-스테이지 코드들을 사용해 다양한 추가 서비스들을 설계하기가 용이한 한가지 이유는, 송신자들간의 조정없이, 다수 송신자들로부터 수신된 인코딩 심볼들을 조합하여 소스 파일 또는 스트림을 재구성할 수 있다는 것이다. 유일한 요구 사항은, 송신자들이 키들의 상이한 세트들을 사용해 그들이 코드에 대한 인코딩 패킷들로 송신하는 인코딩 심볼들을 발생시켜야 한다는 것이다. 이것을 실현하기 위한 방법들은, 이러한 각 송신자에 의해 사용될 키 공간의 상이한 범위들을 지정하는 단계 또는 각 송신자에서 무작위로 키들을 발생시키는 단계를 포함한다.
이러한 능력에 대한 사용의 일례로서, 파일 다운로드 세션으로부터 소스 파일을 재구성하기에 충분한 인코딩 패킷들을 수신하지 않은 다중-스테이지 체인 리액션 코드들로 하여금 보충 송신자로부터, 예를 들어, HTTP 세션을 통해 추가적 인코딩 패킷들이 송신될 것을 요청할 수 있게 하는 추가 서비스를 파일 다운로드 서비스에 제공하는 경우를 고려한다. 보충 송신자는 소스 파일로부터 인코딩 심볼들을 발생시키며, 예를 들어, HTTP를 사용해 인코딩 심볼들을 송신하고, 이러한 인코딩 심볼들 모두는 파일 다운로드 세션으로부터 수신된 것들과 조합되어 소스 파일을 복원할 수 있다. 이러한 접근 방법을 사용하는 것에 의해, 상이한 송신자들은 송신자들간의 조정없이 점진적 소스 파일 전달 서비스들을 제공할 수 있고, 각각의 개개 수신자가 각각의 소스 파일을 복원하기 위해 최소 갯수의 인코딩 패킷들만을 수신하면 된다는 것을 보장한다.
다중-스테이지 코드들에 대한 다양한 스테이지들의 구현들
FEC 방식 정의
이러한 기술들을 사용하는 패킷은 SBN(Source Block Number;패킷내의 인코딩 심볼들이 관련되는 소스 블록을 위한 16 비트 정수 식별자) 및 ESI(Encoding Symbol ID;패킷내의 인코딩 심볼들을 위한 16 비트 정수 식별자)를 구비하는 4개 옥텟들의 FEC 페이로드 ID와 같은 헤더 정보로써 표현될 수 있다. SBN 및 ESI에 대한 적합한 일 해석이 다음의 섹션 B에서 정의된다. FEC 오브젝트 전송 정보는 FEC 인코딩 ID, 전송 길이(F) 및 다음에서 정의되는 파라미터들(T, Z, NA)을 구비할 수 있다. 파라미터들(TZ)은 16 비트의 무부호 정수들(unsigned integers)이고, NA는 8 비트의 무부호 정수들이다.
MBMS 순방향 에러 정정을 위한 FEC 인코딩 방식이 다음 섹션들에서 정의된다. 그것은 2개의 상이한 FEC 페이로드 ID 포맷들을 정의하는데, 하나는 FEC 소스 패킷들을 위한 것이고 또 하나는 FEC 복구 패킷들(FEC repair packets)을 위한 것이지만, 비시스테메틱 코드들을 위한 변경들도 가능하다.
소스 FEC 페이로드 ID는 SBN(Source Block Number;패킷내의 인코딩 심볼들이 관련되는 소스 블록을 위한 16 비트 정수 식별자) 및 ESI(Encoding Symbol ID;패킷내의 인코딩 심볼들을 위한 16 비트 정수 식별자)를 구비할 수 있는 한편, 복구 FEC 페이로드 ID는 SBN(Source Block Number;패킷내의 복구 심볼들이 관련되는 소스 블록을 위한 16 비트 정수 식별자), ESI(Encoding Symbol ID;패킷내의 복구 심볼들을 위한 16 비트 정수 식별자), 및 SBL(Source Block Length;소스 블록의 소스 심볼들 수를 표현하는 16 비트)을 구비할 수 있다. SBN, ESI 및 SBL의 해석은 다음에서 정의된다.
FEC 오브젝트 전송 정보는 FEC 인코딩 ID, 심볼 단위의 최대의 소스 블록 길이, 및 바이트 단위의 심볼 사이즈를 구비할 수 있다. 심볼 사이즈 및 최대의 소스 블록 길이는 심볼 사이즈(T;인코딩 심볼의 사이즈를 바이트 단위로 표현하는 16 비트) 및 최대의 소스 블록 길이(소스 블록의 최대 길이를 심볼 단위로 표현하는 16 비트)의 4 옥텟 필드(four octet field)를 구비할 수 있다.
다음 섹션들은 시스테메틱 MSCR 순방향 에러 정정 코드 및 MBMS에 대한 그것의 적용과 다른 용도들을 특정한다. MSCR은 원천 코드인데, 다시 말해, 필요한 만큼의 인코딩 심볼들이 블록의 소스 심볼들로부터 인코더에 의해 연속적으로 발생될 수 있다. 디코더는 소스 심볼들의 수보다 약간 더 많은 인코딩 심볼들의 임의 세트로부터 소스 블록을 복원할 수 있다. 이 명세서에서 설명되는 코드는 시스테메틱 코드인데, 다시 말해, 원래의 소스 심볼들 뿐만 아니라 다수의 복구 심볼들도 미변경 상태로 송신자로부터 수신자로 송신된다.
B. 1 심볼들 및 약어들의 정의들
B.I.I 정의들
이 명세서의 목적들을 위해, 다음의 용어들 및 정의들이 적용된다.
소스 블록: MSCR 인코딩 목적들을 위해 함께 고려되는 K개 소스 심볼들의 블록.
소스 심볼: 인코딩 프로세스 동안에 사용되는 데이터의 최소 단위. 소스 블록내의 모든 소스 심볼들은 동일 사이즈를 가진다.
인코딩 심볼: 데이터 패킷에 포함되어 있는 심볼. 인코딩 심볼들은 소스 심볼들 및 복구 심볼들을 구비한다. 소스 블록으로부터 발생되는 복구 심볼들은 그 소스 블록의 소스 심볼들과 동일 사이즈를 가진다.
시스테메틱 코드: 소스 심볼들이 소스 블록을 위해 송신되는 인코딩 심볼들의 일부로서 포함되어 있는 코드.
복구 심볼: 소스 블록을 위해 송신되는, 소스 심볼들이 아닌 인코딩 심볼들. 복구 심볼들은 소스 심볼들에 기초해 발생된다.
중간 심볼들: 역 인코딩 프로세스를 사용해 소스 심볼들로부터 발생되는 심볼들. 그 다음, 복구 심볼들은 중간 심볼들로부터 직접적으로 발생된다. 인코딩 심볼들은 중간 심볼들을 포함하지 않는데, 다시 말해, 중간 심볼들은 데이터 패킷들에 포함되지 않는다.
심볼: 데이터의 단위. 심볼의 바이트 단위 사이즈가 심볼 사이즈로서 공지된다.
인코딩 심볼 그룹: 소스 심볼들에 대한 관계가 하나의 인코딩 심볼 ID로부터 유도될 수 있는, 함께 송신되는, 다시 말해, 동일한 패킷내의 인코딩 심볼들의 그룹.
인코딩 심볼 ID(ESI): 인코딩 심볼 그룹의 심볼들과 소스 심볼들간의 관계를 정의하는 정보.
인코딩 패킷: 인코딩 심볼들을 포함하는 데이터 패킷들.
서브-블록: 소스 블록은 간혹, 각각이 작업 메모리에서 디코딩되기에 충분할 정도로 작은 서브-블록들로 분해된다. 각각이 각 서브-블록으로부터의 하나의 서브-심볼로 이루어져 있는 K개 소스 심볼들을 구비하는 소스 블록의 경우, 각각의 서브-블록은 K개 서브-심볼들을 구비한다.
서브-심볼: 심볼의 일부. 각각의 소스 심볼은 소스 블록에 존재하는 서브-블록들 수만큼의 서브-심볼들로 이루어져 있다.
소스 패킷: 소스 심볼들을 포함하는 데이터 패킷들.
복구 패킷: 복구 심볼들을 포함하는 데이터 패킷들.
B.1.2. 심볼들
i, j, x, h, a, b, d, v, m 양의 정수들을 표현한다
ceil(x) x 이상의 최소 양의 정수를 지시한다
choose(i,j) i개 오브젝트들 중에서 j개 오브젝트들이 반복없이 선택될 수 있는 방법들의 수를 지시한다
floor(x) x 이하의 최대 양의 정수를 지시한다
i%j i 모듈로 j를 지시한다
X^Y 등-길이 비트 스트링들(XY)에 대해, XY에 대한 비트식의 배타적-OR를 지시한다
A 심볼 정렬 파라미터를 지시한다. 심볼 및 서브-심볼 사이즈들은 A의 배수들로 제한된다.
A T 행렬 A의 전치 행렬을 지시한다
A -1 행렬 A의 역행렬을 지시한다
K 단일 소스 블록에서의 심볼들의 수를 지시한다
KMAX 하나의 소스 블록에 존재할 수 있는 소스 심볼들의 최대 수를 지시한다. 8192로 설정된다.
L 단일 소스 블록을 위한 선행-코딩 심볼들의 수를 지시한다
S 단일 소스 블록을 위한 LDPC 심볼들의 수를 지시한다
H 단일 소스 블록을 위한 Half 심볼들의 수를 지시한다
C 중간 심볼들의 어레이(C[0], C[1], C[2], ..., C[L-1])를 지시한다
C' 소스 심볼들의 어레이(C'[0], C'[1], C'[2], ..., C'[K-1])를 지시한다
X 음이 아닌 정수 값
V0,V1 4-바이트 정수들의 2개 어레이들(V0[0], V0[1], ..., V0[255] 및 V1[0], V1[1], ..., V1[255])
Rand[X,i,m] 의사-난수 발생기
Deg[v] 차수 발생기
LTEnc[K,C,(d,a,b)] LT 인코딩 심볼 발생기
Trip[K,X] 트리플 발생기 함수
G 인코딩 심볼 그룹내의 심볼들의 수
N 소스 블록내의 서브-블록들의 수
T 바이트 단위의 심볼 사이즈. 소스 블록이 서브-블록들로 분할된다면, T=T'ㆍN이다.
T' 바이트 단위의 서브-심볼 사이즈. 소스 블록이 서브-블록들로 분할되지 않는다면, T'은 상관이 없다.
F 파일 다운로드를 위한, 바이트 단위의 파일 사이즈
I 바이트 단위의 서브-블록 사이즈
P 파일 다운로드의 경우, 파일 다운로드 전송 파라미터들의 바람직한 유도에 사용되는, 바이트 단위의 각 패킷의 페이로드 사이즈. 스트리밍의 경우, 스트리밍 전송 파라미터들의 바람직한 유도에 사용되는, 바이트 단위의 각 복구 패킷의 페이로드 사이즈.
Q Q=65521, 즉, Q는 216보다 작은 최대 소수(the largest prime)이다
Z 파일 다운로드를 위한, 소스 블록들의 수
J(K) K와 연관된 시스테메틱 인덱스
G 임의의 발생기 행렬을 지시한다
I S SxS의 단위 행렬을 지시한다
O SxH SxH의 영 행렬을 지시한다
B.1.3 약어들
ESI Encoding Symbol ID
LDPC Low Density Parity Check
LT Luby Transform
SBN Source Block Number
SBL (심볼 단위의) Source Block Length
B.2. 개요
MSCR 순방향 에러 정정 코드는 MBMS 파일 전달 및 MBMS 스트리밍 애플리케이션들 모두에 적용될 수 있다. 이러한 애플리케이션들 각각에 특징적인 MSCR 코드 태양들은 이 명세서의 섹션들(B.3 및 B.4)에서 논의된다.
시스테메틱 MSCR 코드의 컴포넌트는 섹션 B.5에서 설명되는 기본적 인코더이다. 첫번째, 중간 심볼들에 대한 지식이 소스 심볼들을 재구성하기에 충분하도록, 원래의 소스 심볼들로부터 한 세트의 중간 심볼들에 대한 값들을 유도하는 방법이 설명된다. 두번째, 인코더는, 각각이 다수의 중간 심볼들에 대한 배타적 OR인 복구 심볼들을 발생시킨다. 인코딩 심볼들은 소스 및 복구 심볼들의 조합이다. 복구 심볼들은, 중간 심볼들과 그에 따른 소스 심볼들이 인코딩 심볼들의 충분히 큰 임의 세트로부터 복원될 수 있는 방식으로 발생된다.
이 명세서는 시스테메틱 MSCR 코드 인코더를 정의한다. 다수의 가능한 디코딩 알고리즘들이 이용될 수 있다. 섹션 B.6에서는 효율적인 디코딩 알고리즘이 제공된다.
중간 및 복구 심볼들의 구성은 섹션 B.5에서 설명된 의사-난수 발생기에 부분적으로 기초한다. 이 발생기는, 송신자와 수신자 모두에 이용될 수 있는 512개 난수들의 고정 세트에 기초한다. 숫자들의 예시적 세트가 Appendix B.1에 제공되어 있다.
마지막으로, 중간 심볼들의 소스 심볼들로부터의 구성은 "시스테메틱 인덱스"에 의해 통제된다. 시스테메틱 인덱스를 위한 값들의 예시적 세트가 4개 소스 심볼들에서 KMAX = 8192개 소스 심볼들까지의 소스 블록 사이즈들을 위한 Appendix A에 표시되어 있다.
B.3. 파일 다운로드
B.3.1. 소스 블록 구성
B.3.1.1. 일반 원칙
MSCR 인코더를 소스 파일에 적용하기 위해, 파일은, 소스 블록들로서 공지되어 있는, Z≥1개 블록들로 분해될 수 있다. MSCR 인코더는 각각의 소스 블록에 독립적으로 적용된다. 각각의 소스 블록은 고유한 정수 SBN(Source Block Number)에 의해 식별되는데, 제 1 소스 블록은 SBN 0을 가지며, 두번째는 SBN 1을 갖는 식이다. 각각의 소스 블록은 각각이 T 바이트 사이즈의 K개 소스 심볼들로 분할된다. 각각의 소스 심볼은 고유한 정수 ESI(Encoding Symbol Identifier)에 의해 식별되는데, 소스 블록의 제 1 소스 심볼은 ESI 0을 가지며, 두번째는 ESI 1을 갖는 식이다.
K개 소스 심볼들을 가진 각각의 소스 블록은 N≥1개 서브-블록들로 분할되는데, 서브-블록들은 작업 메모리에서 디코딩되기에 충분할 정도로 작다. 각각의 서브-블록은 사이즈 T'K개 서브-심볼들로 분할된다.
K의 값이 파일의 소스 블록 각각에 대해 동일할 필요는 없으며, T'의 값이 소스 블록의 서브-블록 각각에 대해 동일할 필요는 없다는 것에 주의한다. 그러나, 심볼 사이즈 T는 파일의 모든 소스 블록들에 대해 동일하고 심볼들의 수 K는 소스 블록의 모든 서브-블록에 대해 동일하다. 파일에 대한 소스 블록들 및 서브-블록들로의 정확한 분할은 B.3.1.2에서 후술된다.
도 17은 2차원 어레이로 배열되어 있는 예시적 소스 블록을 나타내는데, 여기에서, 각 엔트리는 T'-바이트 서브-심볼이고, 각 로우는 서브-블록이며 각 컬럼은 소스 심볼이다. 이 예에서, T'의 값은 모든 서브-블록에 대해 동일하다. 각각의 서브-심볼 엔트리에 표시된 수는 소스 블록내에서의 그들의 원래 순서를 지시한다. 예를 들어, K로 넘버링된 서브-심볼은 소스 블록의 T'ㆍK 내지 T'ㆍ(K+1)-1 바이트를 포함한다. 다음으로, 소스 심볼 i는, i, K+i, 2ㆍK+i, ..., (N-1)ㆍK+i로 넘버링된 소스 블록의 서브-심볼들에 대응되는, 서브-블록들 각각으로부터의 i번째 서브-심볼에 대한 접합(concatenation)이다.
B.3.1.2 소스 블록 및 서브-블록 분할
소스 블록과 서브-블록들의 구성은 5개의 입력 파라미터들(F, A, T, ZN)과 함수 Partition[]에 기초해 판정된다. 5개 입력 파라미터들은 다음과 같이 정의된다.
F 바이트 단위의 파일 사이즈
A 바이트 단위의 심볼 정렬 파라미터
T A의 배수여야 하는, 바이트 단위의 심볼 사이즈
Z 소스 블록들의 수
N 각 소스 블록에서의 서브-블록들의 수
이들 파라미터들은, ceil(ceil(F/T)/Z)≤K MAX 이도록 설정되어야 한다. 이들 파라미터들의 유도를 위한 권고 사항들이 섹션 B.3.4에서 제공된다.
함수 Partition[]은 한 쌍의 정수들(I, J)을 입력으로서 취하고 4개의 정수들(I L , I S , J L , J S )을 출력으로 유도한다. 구체적으로, Partition[I, J]의 값은 4개 정수들(I L , I S , J L , J S )의 시퀀스인데, 여기에서, I L = ceil(I/J), I S = floor(I/J), J L = I - I S ㆍJ, 그리고 J S = J - J L 이다. Partition[]은 사이즈 0의 블록을 J개의 근사적으로 동일한 사이즈의 블록들로 분할하기 위한 파라미터들을 유도한다. 구체적으로, 길이 I L J L 개 블록들 및 길이 I S J S 개 블록들을 유도한다.
소스 파일은 다음과 같이 소스 블록들 및 서브-블록들로 분할될 수도 있다.
K t = ceil(F/T)
(K L , K S , Z L , Z S ) = Partition[K t , Z]
(T L , T S , N S , N S ) = Partition[T/A, N]
그 다음, 파일은 Z = Z L + Z S 개의 연속적인 소스 블록들로 분할될 수 있는데, 처음의 Z L 개 소스 블록들은 각각 K L ㆍT 바이트의 길이를 가지며 나머지 Z S 개 소스 블록들은 각각 K S ㆍT 바이트의 길이를 가진다.
K t ㆍT > F라면, 인코딩 목적들을 위해, 마지막 심볼은 끝이 K t ㆍT - F개 0 바이트들로써 패딩될 수도 있다.
다음으로, 각각의 소스 블록은 N = N L + N S 개의 연속적인 서브-블록들로 분할될 수 있는데, 처음의 N L 개 서브-블록들은 각각 T L ㆍA 사이즈의 연속적인 K개 서브-심볼들을 구비하고, 나머지 N S 개의 서브-블록들은 각각 T S ㆍA 사이즈의 연속적인 K개 서브-심볼들을 구비한다. 심볼 정렬 파라미터 A는, 서브-심볼들이 항상 A 바이트의 배수라는 것을 보장한다.
마지막으로, 소스 블록의 m번째 심볼은 N개의 서브-블록들 각각으로부터의 m번째 서브-심볼 접합을 구비한다.
B.3.2. 인코딩 패킷 구성
B.3.2.1. 일반 원칙
각각의 인코딩 패킷은 다음의 정보를 포함한다.
SBN(Source Block Number)
ESI(Encoding Symbol ID)
인코딩 심볼(들)
각각의 소스 블록은 다른 것들과 무관하게 인코딩된다. 소스 블록들은 0에서부터 연속적으로 넘버링된다.
0에서 K-1까지의 ESI 값들은 소스 심볼들을 식별한다. K로부터 그 이후의 ESI들은 복구 심볼들을 식별한다.
B.3.2.2 인코딩 패킷 구성
각각의 인코딩 패킷은 전체적으로 소스 심볼들로 이루어지거나(소스 패킷) 전체적으로 복구 심볼들로 이루어지는 것(복구 패킷)이 바람직하다. 패킷은 동일한 소스 블록으로부터의 임의 갯수의 심볼들을 포함할 수 있다. 패킷의 마지막 심볼이 FEC 인코딩 목적들을 위해 추가된 패딩 바이트들을 포함할 경우, 이들 바이트가 패킷에 포함될 필요는 없다. 그렇지 않다면, 전체 심볼들만이 포함될 수도 있다.
각각의 소스 패킷으로 전달되는 인코딩 심볼 ID(ESI)(X)는 그 패킷에서 전달되는 제 1 소스 심볼의 ESI이다. 패킷에서의 후속적인 소스 심볼들은 순차적 순서로 X+1에서 X+G-1의 ESI들을 갖는데, 여기에서, G는 패킷에서의 심볼들의 수이다.
마찬가지로, 복구 패킷으로 배치되는 인코딩 심볼 ID(ESI)(X)는 복구 패킷에서의 제 1의 복구 심볼에 대한 ESI이고, 패킷에서의 후속적인 복구 심볼들은 순차적 순서로 X+1 에서 X+G-1의 ESI들을 갖는데, 여기에서, G는 패킷에서의 심볼들의 수이다.
수신기가 복구 패킷들의 총 수를 알고 있을 필요는 없다는 것에 주의한다. ESI X를 가진 복구 패킷에 배치되는 복구 심볼들을 위한 G개의 복구 심볼 트리플들((d[O], a[0], b[O]), ..., (d[G-1], a[G-l], b[G-1]))은 B.5.3.4에서 정의된 트리플 발생기를 사용해 다음과 같이 계산된다.
i = 0, ..., G-1 각각에 대해
(d[i], a[i], b[i]) = Trip[K,X+i]
ESI X를 가진 복구 패킷에 배치될 복구 심볼들은 복구 심볼 트리플들에 기초해, 섹션 B.5.3에서 설명되는 바와 같이, 중간 심볼들 C 및 LT 인코더(LTenc[K, C,(d[i], a[i], b[i])])를 사용해 계산된다.
B.3.3. 전송
이 섹션은 MSCR 인코더/디코더와 파일 전달을 위해 MSCR 순방향 에러 정정을 이용하는 임의의 전송 프로토콜간의 정보 교환을 설명한다.
파일 전달을 위한 MSCR 인코더 및 디코더는 전송 프로토콜로부터 다음의 정보: 바이트 단위의 파일 사이즈 F, 심볼 정렬 파라미터 A, A의 배수인, 바이트 단위의 심볼 사이즈 T, 소스 블록들의 수 Z, 각 소스 블록에서의 서브-블록들의 수 N을 요청한다. 파일 전달을 위한 MSCR 인코더는 부가적으로 인코딩될 F 바이트의 파일을 요청한다.
MSCR 인코더는 전송 프로토콜에, 각 패킷에 대해, SBN, ESI 및 인코딩 심볼(들)을 구비하는 인코딩 패킷 정보를 공급한다. 전송 프로토콜은 이 정보를 투명하게(transparently) MSCR 디코더로 전달할 수 있다.
B.3.4. (정보를 제공하는) 권장 파라미터들
B.3.4.1 파라미터 유도 알고리즘
이 섹션은 4개 전송 파라미터들(A, T, ZN)의 유도를 위한 권장 사항들을 제공한다. 이러한 권장 사항은 다음의 입력 파라미터들에 기초한다.
F 바이트 단위의 파일 사이즈
W 바이트 단위의 서브-블록 사이즈에 대한 목표치
P A의 배수인 것으로 가정되는, 바이트 단위의 최대 패킷 페이로드 사이즈
A 바이트 단위의 심볼 정렬 팩터
K MAX 매 소스 블록당 소스 심볼들의 최대 수
K MIN 매 소스 블록당 심볼들의 수에 대한 최소 목표치
G MAX 매 패킷당 심볼들의 최대 목표 수
상기 입력들에 기초해, 전송 파라미터들(T, ZN)은 다음과 같이 계산된다.
G = min{ceil(PㆍK MIN/F), P/A, G MAX} - 매 패킷당 심볼들의 대략적인 수
T = floor(P/(AㆍG))ㆍA
K t = ceil(F/T) - 파일에서의 심볼들의 총 수
Z = ceil(K t/K MAX)
N = min{ceil(ceil(K t /Z)ㆍT/W), T/A}
앞서 유도된 GN의 값들은 하한들로서 간주되어야 한다. 이 값들을, 예를 들어, 2의 가장 근접한 거듭제곱으로 증가시키는 것이 바람직할 수도 있다. 특히, 상기 알고리즘은, 심볼 사이즈 T가 최대 패킷 사이즈 P를 분할한다는 것을 보장하지 않으므로, 정확히 P 사이즈의 패킷들을 사용하는 것이 불가능할 수도 있다. 대신에, GP/A를 분할하는 값으로 선택되면, 심볼 사이즈 TP의 약수일 것이고 사이즈 P의 패킷들이 사용될 수 있다.
입력 파라미터들(W, A, K MING MAX)을 위한 권고 설정들은 다음과 같다.
W = 256KB A = 4 K MIN = 1024 G MAX= 10
B.3.4.2 일례들
상기 알고리즘은, W, A, K MING MAX를 위한 권고 값들 및 P = 512를 가정할 때, 도 18에 나타낸 바와 같은 전송 파라미터들을 초래한다.
B.4. 스트리밍
B.4.1. 소스 블록 구성
소스 블록은, 예를 들어, 이 명세서에서 정의된 바와 같은, 시스테메틱 MSCR 순방향 에러 정정 코드를 이용하는 전송 프로토콜에 의해 구성된다. 소스 블록 구성 및 복구 심볼 구성에 사용될 심볼 사이즈 T가 전송 프로토콜에 의해 제공된다. 파라미터 T는, 임의 소스 블록에서의 소스 심볼들 수가 기껏해야 K MAX이도록 설정될 수도 있다.
권장되는 파라미터들은 섹션 B.4.4에서 제시된다.
B.4.2. 인코딩 패킷 구성
B.4.3.에서 설명되는 바와 같이, 각각의 복구 패킷은 SBN, ESI, SBL 및 복구 심볼(들)을 포함한다. 복구 패킷내에 포함되어 있는 복구 심볼들의 수는 패킷 길이로부터 계산된다. 복구 패킷들에 배치되는 ESI 값들 및 복구 심볼들을 발생시키는데 사용되는 복구 심볼 트리플들은 섹션 B.3.2.2에서 설명된 바와 같이 계산된다.
B.4.3. 전송
이 섹션은 MSCR 인코더/디코더와 스트리밍을 위해 MSCR 순방향 에러 정정을 이용하는 임의의 전송 프로토콜간의 정보 교환을 설명한다. 스트리밍을 위한 MSCR 인코더는 각각의 소스 블록을 위해 전송 프로토콜로부터 다음의 정보: 바이트 단위의 심볼 사이즈 T, 소스 블록에서의 심볼들의 수 K, SBN(Source Block Number) 및 인코딩될 KㆍT 바이트의 소스 심볼들을 사용할 수 있다. MSCR 인코더는 전송 프로토콜에, 각각의 복구 패킷에 대해, SBN, ESI, SBL 및 복구 심볼(들)을 구비하는 인코딩 패킷 정보를 공급한다. 전송 프로토콜은 이 정보를 투명하게 MSCR 디코더로 전달할 수도 있다.
B.4.4. 권장 파라미터들
B.4.4.1 파라미터 유도 알고리즘
이 섹션은 전송 파라미터 T의 유도를 위한 권장 사항들을 제공한다. 이러한 권장 사항은 다음의 입력 파라미터들에 기초한다.
B 바이트 단위의 최대 소스 블록 사이즈
P A의 배수인, 바이트 단위의 최대의 복구 패킷 페이로드 사이즈
A 바이트 단위의 심볼 정렬 팩터
K MAX 매 소스 블록당 소스 심볼들의 최대 수
K MIN 매 소스 블록당 심볼들의 수에 대한 최소 목표치
G MAX 매 복구 패킷당 심볼들의 최대 목표 수
이러한 입력들에 대한 요구 사항은 ceil(B/P)≤K MAX이다. 상기 입력들에 기초해, 전송 파라미터 T는 다음과 같이 계산된다.
G = min{ceil(PㆍK MIN/B), P/A, G MAX} - 매 패킷당 심볼들의 대략적인 수라고 한다.
T = floor(P/(AㆍG))ㆍA이다.
앞서 유도된 T의 값은 사용되는 T의 실제 값에 대한 안내로서 간주되어야 한다. TP로 분할된다는 것을 보장하는 것이 유리할 수 있거나, (소스 블록에서의 소스 심볼들의 최대 수가 K MAX를 초과하지만 않는다면) 완전 사이즈 복구 심볼들이 손실된 소스 패킷들의 끝에서 부분적인 소스 심볼들을 복원하는데 사용될 경우의 낭비를 최소화하기 위해 T의 값을 더 작게 설정하는 것이 유리할 수도 있다. 또한, T의 선택은 소스 패킷 사이즈 분포에 의존할 수 있는데, 예를 들어, 모든 소스 패킷들이 동일한 사이즈라면, T의 배수인 복구 패킷의 실제 페이로드 사이즈 P'을, 각각의 소스 패킷이 소스 블록에서 차지하는 바이트 수와 동일하도록(또는 그보다 몇 바이트들이 많도록), T를 선택하는 것이 바람직하다.
입력 파라미터들(A, K MING MAX)을 위해 권장되는 설정들은 다음과 같다.
A = 4 K MIN = 1024 G MAX = 10
B.4.4.2 일례들
상기 알고리즘은, A, K MING MAX를 위해 권장되는 값들 및 P = 512를 가정할 때, 도 19에 나타낸 바와 같은 전송 파라미터들을 초래한다.
B.5. 시스테메틱 MSCR 인코더
B.5.1. 인코딩 개요
시스테메틱 MSCR 인코더는 K개 소스 심볼들을 구비하는 소스 블록으로부터 복구 심볼들을 발생시키는데 사용된다.
심볼들은 인코딩 및 디코딩 프로세스의 기본적인 데이터 단위들이다. 각각의 소스 블록(서브-블록)에 대해, 모든 심볼들(서브-심볼들)은 동일 사이즈이다. 인코딩 및 디코딩 모두를 위해 심볼들(서브-심볼들)에 대해 수행되는 원자 연산(atomic operation)은 배타적-OR 연산이다.
C'[0], ..., C'[K-1]은 K개 소스 심볼들을 지시한다고 한다.
C[0], ..., C[L-1]은 L개의 중간 심볼들을 지시한다고 한다.
인코딩의 제 1 단계는 K개 소스 심볼들로부터 L > K개의 중간 심볼들을 발생시키는 것이다. 이 단계에서, K개 소스 트리플들((d[0], a[0],b[O]), ..., (d[K-1], a[K- 1], b[K-1]))이 섹션 B.5.4.4에서 설명된 Trip[]을 사용해 발생된다. K개 소스 트리플들은 K개 소스 심볼들과 연관된 다음, 역 인코딩 프로세스를 사용해 소스 심볼들로부터 L개의 중간 심볼들(C[0], ..., C[L-1])을 판정하는데 사용된다. 이 프로세스는 MSCR 디코딩 프로세스에 의해 실현될 수 있다.
소정의 "선행-코딩 관계들(pre-coding relationships)"이 L개의 중간 심볼들내에서 유지되어야 한다. 섹션 B.5.2는 이러한 관계들 및 소스 심볼들로부터 중간 심볼들이 발생되는 방법을 설명한다.
일단 중간 심볼들이 발생되고 나면, 복구 심볼들이 발생되고 하나 이상의 복구 심볼들은 그룹으로서 하나의 데이터 패킷으로 배치된다. 각각의 복구 심볼 그룹은 ESI(Encoding Symbol ID) 및 인코딩 심볼들의 수 G와 연관된다. ESI는, 이번에도 섹션 B.5.4.4에 설명된 Trip[]을 사용해, 각각의 복구 심볼에 대해, 3개 정수들(d, a, b)의 트리플을 발생시키는데 사용된다. 이것은 섹션 B.5.4에서 설명된 발생기들을 사용해 섹션들(B.3 및 B.4)에서 설명된 바와 같이 수행된다. 다음으로, 각각의 (d,a,b)-트리플은 섹션 B.5.4.3에서 설명된 LTEnc[K, C[0], ..., C[L-1], (d,a,b)] 발생기를 사용해 중간 심볼들로부터 대응되는 복구 심볼을 발생시키는데 사용된다.
B.5.2. 제 1 인코딩 단계: 중간 심볼 발생
B.5.2.1 일반 원칙
제 1 인코딩 단계는 소스 심볼들(C'[0], ..., C'[K-1])로부터 L개의 중간 심볼들(C[0], ..., C[L-1])을 발생시키기 위한 선행-코딩 단계이다. 중간 심볼들은 다음과 같은 제한 사항들의 2개 세트들에 의해 고유하게 정의된다.
1. 중간 심볼들은 소스 심볼 트리플들의 세트에 의해 소스 심볼들에 관련된다. 소스 심볼 트리플들의 발생은 섹션 B.5.4.4에서 설명된 Trip[]을 사용해 섹션 B.5.2.2에서 정의된다.
2. 중간 심볼들 자체내에 한 세트의 선행-코딩 관계들이 보유된다. 이들은 섹션 B.5.2.3에서 정의된다.
다음으로, L개 중간 심볼들의 발생이 섹션 5.2.4에서 정의된다.
B.5.2.2 소스 심볼 트리플들
K개 소스 심볼들 각각은 트리플((d[i], a[i], b[i]);0 ≤ i < K))과 연관된다. 소스 심볼 트리플들은 섹션 B.5.4.4에서 정의된 트리플 발생기를 사용해 다음과 같이 판정된다.
각각의 i에 대해(0 ≤ i < K)
(d[i], a[i], b[i]) = Trip[K,i]
B.5.2.3 선행-코딩 관계들
L개 중간 심볼들간의 선행-코딩 관계들은 마지막 L-K개 중간 심볼들을 처음의 K개 중간 심볼들의 관점에서 표현하는 것에 의해 정의된다.
마지막 L-K개 중간 심볼들(C[K], ..., C[L-1])은 S개의 LDPC 심볼들 및 H개의 Half 심볼들을 구비한다. SH의 값들은 K로부터 후술되는 바와 같이 판정된다. 그에 따라, L = K+S+H이다.
X Xㆍ(X-1) = 2ㆍK인 최소 양의 정수
S S ≥ ceil(0.01ㆍK) + X인 최소의 소수 정수
H choose(H,ceil(H/2)) ≥ K+S인 최소 정수
H' = ceil(H/2)L = K+S+H
C[0], ..., C[K-1] 처음의 K개 중간 심볼들 지시
C[K], ..., C[K+S-1] 0으로 초기화된, S개의 LDPC 심볼들 지시
C[K+S], ..., C[L-1] 0으로 초기화된, H개의 Half 심볼들 지시
S개의 LDPC 심볼들은 다음의 프로세스 끝에서 C[K], ..., C[K+S-1]의 값들인 것으로 정의된다.
Figure 112006032752447-pct00001
H개의 Half 심볼들은 다음과 같이 정의된다.
모든 양의 정수 i에 대해, g[i] = i^(floor(i/2))
주: g[i]는 각 요소가 선행 요소와 하나의 비트 위치에서 차이가 나는 Gray 시퀀스이다.
g[j,k]는, 요소들이 그들의 2진 표현에서 정확히 k개의 0이 아닌 비트들을 갖는 g[i] 시퀀스의 j(j=0, 1, 2, ...)번째 요소이다.
다음으로, Half 심볼들은 다음의 프로세스 이후에 C[K+S], ..., C[L-1]의 값들로서 정의된다.
For h = 0, ..., H-1 do
For j = 0, ..., K+S-1 do
If bit h of g[j,H] is equal to 1 then C[h+K+S]=C[h+K+S]^C[j]
B.5.2.4 중간 심볼들
B.5.2.4.1 정의
K개 소스 심볼들(C'[O], C'[1], ...,C'[K-1])이 주어지면, L개의 중간 심볼들(C[0], C[1], ..., C[L-1])은 다음 조건들을 충족시키는 고유하게 정의된 심볼 값들이다.
1. K개 소스 심볼들(C'[0], C'[l], ..., C'[K-1])은 K 제약들을 충족시킨다.
모든 i(0 ≤ i < K)에 대해, C'[i] ≡ LTEnc[K, (C[0], ..., C[L-1]), (d[i], a[i], b[i])]
2. L개 중간 심볼들(C[0], C[1], ..., C[L-1])은 B.5.2.3에서 정의된 선행-코딩 관계들을 충족시킨다.
B.5.2.4.2 중간 심볼들의 계산
이 하위 섹션은 B.5.2.4.1에서의 제약들을 충족시키는 L개 중간 심볼들(C[0], C[1], ..., C[L-1])의 계산을 위한 가능한 방법을 설명한다.
K개 입력 심볼들로부터 N개 출력 심볼들을 발생시키는 코드를 위한 발생기 행렬 GGF(2)에 관한 NxK 행렬인데, 각 로우는 출력 심볼들 중 하나에 대응되고 각 컬럼은 입력 심볼들 중 하나에 대응되며, 여기에서, i번째 출력 심볼은, 컬럼이 로우 i에 0이 아닌 엔트리를 포함하는 입력 심볼들의 합과 같다.
그에 따라, L개의 중간 심볼들이 다음과 같이 계산될 수 있다.
CL개 중간 심볼들(C[0], C[1], ..., C[L-1])의 컬럼 벡터를 지시한다고 한다.
DK개 소스 심볼들(C'[0], C'[1], ..., C'[K-1])이 수반되는 S+H개의 0 심볼들을 구비하는 컬럼 벡터를 지시한다고 한다.
다음으로, 상기 제약들은 다음과 같이 GF(2)에 관한 LxL 행렬 A를 정의한다.
AㆍC = D
행렬 A는 다음과 같이 구성될 수 있다.
G LDPC는 LDPC 심볼들의 S x K 발생기 행렬이라고 한다. 따라서,
G LDPCㆍ(C[0], ..., C[K-1])T = (C[K], ..., C[K+S-1])T이다.
G Half는 Half 심볼들의 H x (K+S) 발생기 행렬이라고 한다. 따라서,
G Halfㆍ(C[0], ..., C[S+K-1])T = (C[K+S], ..., C[K+S+H-1])T이다.
I S S x S 단위 행렬이라고 한다.
I HH x H 단위 행렬이라고 한다.
0 SxHS x H의 영 행렬이라고 한다.
GLT는 LT 인코더에 의해 발생되는 인코딩 심볼들의 K x L 발생기 행렬이라고 한다. 따라서,
G LTㆍ(C[0], ..., C[L-1])T = (C'[0], C'[1], ..., C'[K-1])T이고,
다시 말해, LTEnc[K, (C[O], ..., C[L-1]), (d[i], a[i], b[i])]를 발생시키기 위해 XOR되는 심볼들에 C[i]가 포함되어 있을 경우에만, G LTi,j = 1이다.
그에 따라,
A의 처음의 S개 로우들은 G LDPCI SZ SxH와 같다.
A의 후속의 H개 로우들은 G HalfI H와 같다.
A의 나머지 K개 로우들은 G LT와 같다.
행렬 A가 도 20에 도시되어 있다. 다음으로, 중간 심볼들은 다음과 같이 계산될 수 있다.
C = A -1 ㆍD
소스 트리플들은, 임의의 K에 대해, 행렬 A가 완전 랭크(full rank)를 가지며 그에 따라 역전 가능하도록, 발생된다. 이 계산은 K개 소스 심볼들(C'[O], C'[1], ..., C'[K-1])에 MSCR 디코딩 프로세스를 적용하여 L개의 중간 심볼들(C[0], C[1], ..., C[L-1])을 발생시키는 것에 의해 실현될 수 있다.
소스 심볼들로부터 중간 심볼들을 효율적으로 발생시키기 위해서는, 섹션 B.6에서 설명된 바와 같은 효율적 디코더 구현이 사용될 것이 권고된다. 소스 심볼 트리플들은 그러한 알고리즘을 사용해 소스 심볼들의 효율적 디코딩을 용이하게 하도록 설계된다.
B.5.3. 제 2의 인코딩 단계: LT 인코딩
제 2의 인코딩 단계에서는, 섹션 B.5.4에서 정의된 발생기 LTEnc[K, (C[0], C[1], ..., C[L-1]), (d, a, b)]를 섹션들(B.3.2.2 및 B.4.2)에 따른 트리플((d, a, b) = Trip[K,X])을 사용해 L개의 중간 심볼들(C[0], C[1], ..., C[L-1])에 적용하는 것에 의해, ESI X를 가진 복구 심볼이 발생된다.
B.5.4. 발생기들
B.5.4.1 난수 발생기
난수 발생기 Rand[X, i, m]은 다음과 같이 정의되는데, 여기에서, X는 음이 아닌 정수이고, i는 음이 아닌 정수이며, m은 양의 정수이고, 발생되는 값은 0과 m-1 사이의 정수이다. V0 및 V1은 각각 256개 엔트리들의 어레이들인데, 각각의 엔트리는 4-바이트의 무부호 정수이다. 섹션 B.7에서 이들 어레이들이 제공된다.
그에 따라,
Rand[X, i, m] = (V0[(X+i)%256]^V1[(floor(X/256)+i)%256])%m이다.
B.5.4.2 차수 발생기
차수 발생기 Deg[v]는 다음과 같이 정의되는데, 여기에서, v는 0 이상이며 220 = 1048576 미만인 정수이다.
도 21에서, f[j-1]≤ v < f[j]인 인덱스 j를 찾는다.
Deg[v] = d[j]
B.5.4.3 LT 인코딩 심볼 발생기
인코딩 심볼 발생기 LTEnc[K, (C[0], C[1], ..., C[L-1]), (d, a, b)]는 다음의 입력들을 취한다.
K는 소스 블록(서브-블록)을 위한 소스 심볼들(또는 서브-심볼들)의 수이다. L은 섹션 B.5.2에서 설명된 바와 같이 K로부터 유도된다고 하고 L'은 L 이상의 최소의 소수 정수라고 한다.
(C[0], C[1], ..., C[L-1])는 섹션 B.5.2에서 설명된 바와 같이 발생되는 L개 중간 심볼들(서브-심볼들)의 어레이이다.
(d, a, b)는 섹션 B.5.3.4에서 정의된 트리플 발생기를 사용해 판정되는 소스 트리플인데, d는 인코딩 심볼 차수를 지시하는 정수이고, a는 1과 (L'-1도 포함하는) L'-1간의 정수이며, b는 0과 (L'-1도 포함하는) L'-1간의 정수이다.
인코딩 심볼 발생기는, 다음의 알고리즘에 따라, 단일 인코딩 심볼을 출력으로서 발생시킨다.
Figure 112006032752447-pct00002
B.5.4.4 트리플 발생기
트리플 발생기 Trip[K,X]는 다음의 입력들을 취한다.
K 소스 심볼들의 수
X 인코딩 심볼 ID
L은 섹션 B.5.2에서 설명된 바와 같이 K로부터 판정된다고 한다.
L'은 L 이상의 최소 소수라고 한다.
Q = 65521, 216보다 작은 최대 소수라고 한다.
J(K)는, Appendix A에서 정의된 바와 같이, K와 연관된 시스테메틱 인덱스라고 한다.
트리플 발생기의 출력은 다음과 같이 판정되는 트리플들 (d, a, b)이다.
Figure 112006032752447-pct00003
7. b = Rand[Y, 2, L']
B.6 FEC 디코더 구현들
B.6.1 일반 원칙
이 섹션은 이 명세서에서 설명되는 MSCR 코드들을 위한 효율적인 디코딩 알고리즘을 설명한다. 수신된 인코딩 심볼 각각은 중간 심볼들간의 등식 값으로 간주될 수 있다는 것에 주의한다. 중간 심볼들간의 이러한 동시 등식들(simultaneous equations) 및 그들간의 공지의 선행-코딩 관계들로부터, 동시 등식들을 해결하기 위한 임의 알고리즘은 중간 심볼들 및 그에 따른 소스 심볼들을 성공적으로 디코딩할 수 있다. 그러나, 선택된 알고리즘은 디코딩의 계산 효율성에 큰 영향을 미친다.
B.6.2 소스 블록들의 디코딩
B.6.2.1 일반 원칙
디코더는, 심볼 사이즈 T 및 소스 블록에서의 심볼들의 수 K를 포함하여, 그것이 디코딩할 소스 블록의 구조를 알고 있다고 가정한다.
섹션 B.5에서 설명된 알고리즘들로부터, MSCR 디코더는 선행-코딩 심볼들의 총 수 L = K+S+H를 계산할 수 있고 디코딩될 소스 블록으로부터 선행-코딩 심볼들이 어떻게 발생되었는지를 판정할 수 있다. 이 설명에서는, 디코딩될 소스 블록을 위해 수신된 인코딩 심볼들이 디코더로 전달된다고 가정한다. 또한, 각각의 인코딩 심볼에 대해, 그것의 배타적-OR가 인코딩 심볼과 동일한 중간 심볼들의 수 및 세트가 디코더로 전달된다고 가정한다. 소스 심볼들의 경우, 섹션 B.5.2.2에서 설명된 소스 심볼 트리플들은, 각각의 소스 심볼을 제공하기 위해 가산되는 중간 심볼들의 수 및 세트를 지시한다.
NK가 소스 블록을 위해 수신되는 인코딩 심볼들의 수라고 하고, M = S+H+N이라고 한다. 다음의 M x L 비트 행렬 A는 디코딩될 소스 블록을 위해 디코더로 전달되는 정보로부터 유도될 수 있다. CL개 중간 심볼들의 컬럼 벡터라고 하고, D는 수신자에게 공지되어 있는 값들을 가진 M개 심볼들의 컬럼 벡터라고 하면, 여기에서, M개 심볼들 중 처음의 S+H개 심볼들은 LDPC 및 Half 심볼들에 대응되는 0-값의 심볼들(이들은 LDPC 및 Half 심볼들 자체가 아니라 LDPC 및 Half 심볼들을 위한 점검 심볼들이다)이고, M개 심볼들 중 나머지 N개 심볼들은 소스 블록을 위해 수신된 인코딩 심볼들이다. 그에 따라, A는 AC = D를 충족시키는 비트 행렬인데, 여기에서, ㆍ는 GF[2]에 대한 행렬 곱을 지시한다. 특히, 인덱스 j에 대응되는 중간 심볼들이 LDPC, Half 또는 인코딩에서의 인덱스 i에 대응되는 인코딩 심볼로 배타적-OR되거나, 인덱스 i가 LDPC 또는 Half 심볼에 대응되고 인덱스 j가 동일한 LDPC 또는 Half 심볼에 대응되면, A[i,j] =1이다. 다른 i j 모두에 대해, A[i,j] = 0이다.
소스 블록 디코딩은 공지의 AD로부터 C를 디코딩하는 것과 같다. GF[2]에 대한 A의 랭크가 L일 경우에만 C가 디코딩될 수 있다는 것이 명백하다. 일단 C가 디코딩되고 나면, 누락 소스 심볼들은, 소스 심볼 트리플들을 사용해 각각의 누락 소스 심볼을 획득하기 위해 배타적-OR되는 중간 심볼들의 수 및 세트를 판정하는 것에 의해 획득될 수 있다.
C를 디코딩할 때의 제 1 단계는 디코딩 스케줄을 형성하는 것이다. 이 단계에서, A는 (로우 연산들 및 로우와 컬럼 재배열들을 사용하는) 가우스 소거를 사용한 후 M-L개 로우들을 파기하는 것에 의해, L x L 단위 행렬로 변환된다. 디코딩 스케줄은 가우스 소거 프로세스 동안의 로우 연산들 및 로우와 컬럼 재-배열들의 시퀀스를 구비하며, D가 아니라 A에만 의존한다. D로부터 C의 디코딩은 디코딩 스케줄의 형성과 동시에 발생하거나, 디코딩이 디코딩 스케줄에 기초해 나중에 발생할 수도 있다.
C의 디코딩 스케줄과 디코딩간의 대응 관계는 다음과 같다. 처음에는, c[0] = 0, c[1] = 1, ..., c[L-1] = L-1이라 하고 d[0] = 0, d[1] = 1, ..., d[M-1] = M-1이라고 한다.
- 디코딩 스케줄에서 A의 로우가 로우 i'으로 배타적-OR될 때마다, 디코딩 프로세스에서는, 심볼 D[d[i]]가 심볼 D[d[i']]으로 배타적-OR된다.
- 디코딩 스케줄에서 로우 i가 로우 i'과 교환될 때마다, 디코딩 프로세스에서는, d[i]의 값이 d[i']의 값과 교환된다.
- 디코딩 스케줄에서 컬럼 j가 컬럼 j'과 교환될 때마다, 디코딩 프로세스에 서는, c[j]의 값이 c[j']의 값과 교환된다.
이러한 대응 관계로부터, 소스 블록의 디코딩에서의 심볼들에 대한 배타적-OR들의 총 수는 가우스 소거에서의 (교환들이 아닌) 로우 연산들의 수라는 것이 명백하다. 가우스 소거 및 마지막 M - L개 로우들의 파기 이후에 AL x L 단위 행렬이므로, 성공적 디코딩의 끝에서, L개 심볼들(D[d[0]], D[d[1]], ..., D[d[L-1]])은 L개 심볼들(C[c[0]], C[c[1]], ..., C[c[L-1]])의 값들이라는 것이 명백하다.
디코딩 스케줄을 형성하기 위해 가우스 소거가 수행되는 순서가 디코딩의 성공 여부와는 무관하다. 그러나, 디코딩 속도는 가우스 소거가 수행되는 순서에 크게 의존한다. (또한, 여기에서 설명하지는 않았지만, A의 스파스(sparse) 표현을 유지하는 것도 중요하다.) 이 섹션의 나머지는, 가우스 소거가 비교적 효율적으로 수행될 수 있는 순서를 설명한다.
B.6.2.2 제 1 페이즈(First Phase)
가우스 소거의 제 1 페이즈에서, 행렬 A는 부행렬들로 개념적으로 분할된다. 부행렬 사이즈들은, 0으로 초기화되어 있는 음이 아닌 정수들(i 및 u)에 의해 파라미터화된다. A의 부행렬들은 다음과 같다.
(1) 처음의 i개 로우들과 처음의 i개 컬럼들의 교차(intersection)에 의해 정의되는 부행렬 I. 이것은 제 1 페이즈의 각 단계 끝에서의 단위 행렬이다.
(2) 처음의 i개 로우들과 처음의 i개 컬럼들 및 마지막 u개 컬럼들을 제외한 모두의 교차에 의해 정의되는 부행렬. 이 부행렬의 모든 엔트리들은 0이다.
(3) 처음의 i개 컬럼들과 처음의 i개 로우들을 제외한 로우들의 교차에 의해 정의되는 부행렬. 이 부행렬의 모든 엔트리들은 0이다.
(4) 모든 로우들과 마지막 u개 컬럼들의 교차에 의해 정의되는 부행렬 U.
(5) 처음의 i개 컬럼들 및 마지막 u개 컬럼들을 제외한 컬럼들과 처음의 i개 로우들을 제외한 로우들의 교차에 의해 형성되는 부행렬 V.
도 22는 A의 부행렬들을 도시한다. 제 1 페이즈의 시작시에, V = A이다. 각각의 단계에서, A의 로우가 선택된다. V의 구조에 의해 정의되는 다음의 그래프는 A의 어떤 로우가 선택되는지를 판정하는데 사용된다. V를 교차하는 컬럼들이 그래프의 노드들이고, 정확히 2개의 1들을 가진 V의 로우들이 2개 1들의 위치들에서의 2개 컬럼들(노드들)을 교차하는 그래프의 에지들이다. 이 그래프의 컴포넌트는, 그래프의 노드들/에지들의 각 쌍간에 경로가 존재하는 노드들(컬럼들) 및 에지들(로우들)의 최대 세트이다. 컴포넌트의 사이즈는 컴포넌트에서의 노드들(컬럼들)의 수이다.
제 1 페이즈에는 기껏해야 L개 단계들이 존재한다. 이 페이즈는, i + u = L일 때, 즉, VV 상부의 모두 0들의 부행렬(all zeroes submatrix)이 사라지고, AI, I 하부의 모두 0들의 부행렬, 및 U를 구비할 때, 성공적으로 종료한다. 이 페이즈는, V가 사라지기 전의 소정 단계에서, 그 단계에서 선택하기 위한 V에 0이 아닌 로우가 존재하지 않는다면, 디코딩에 실패한 페이즈로 종료한다. 각 단계에서, A의 로우는 다음과 같이 선택된다.
V의 모든 엔트리들이 0이라면, 로우가 선택되지 않으며 디코딩은 실패한다.
r을, A의 하나 이상의 로우가 V에서 정확히 r개의 1들을 갖는 최소 정수라고 한다.
r ≠ 2라면, 이러한 모든 로우들 중에서 V에 정확히 r개의 1들을 가진 최소 원래 차수의 로우를 선택한다.
r = 2라면, X에 의해 정의되는 그래프에서의 최대 사이즈 컴포넌트의 일부인, V에 정확히 2개의 1들을 가진 임의의 로우를 선택한다.
이 단계에서 로우가 선택된 후, V와 교차하는 A의 제 1 로우는, 선택된 로우가 V와 교차하는 제 1 로우이도록, 선택된 로우와 교환된다. A의 컬럼들 중에서 V와 교차하는 A의 컬럼들은, 선택된 로우에서의 r개의 1들 중 하나가 V의 제 1 컬럼에 나타나고 나머지 r-1개의 1들이 V의 마지막 r-1개 컬럼들에 나타나도록 재정렬된다. 다음으로, 선택된 로우는, V의 제 1 컬럼에 1을 가진, 선택된 로우 하부의 A의 나머지 로우들 모두로 배타적-OR된다. 마지막으로, i는 1만큼 증분되고 u는 r-1만큼 증분되어, 단계가 종결된다.
B.6.2.3 제 2 페이즈
부행렬 U는 처음의 i개 로우들(U upper) 및 나머지 M-i개 로우들(U lower)로 더 분할된다. 제 2 페이즈의 가우스 소거는 U lower에 대해 수행되어 그것의 랭크가 u 미만(디코딩 실패)인지 또는 그것을 처음의 u개 로우들이 단위 행렬인 행렬로 변환할 것(제 2 페이즈의 성공)인지를 판정한다. 이러한 u x u 단위 행렬을 I u라고 한다. U lower - I u와 교차하는 A의 M - L개 로우들은 파기된다. 이 페이즈 이후에, AL개의 로우들 및 L개의 컬럼들을 가진다.
B.6.2.4 제 3 페이즈
제 2 페이즈 이후에, AL x L 단위 행렬로 변환하는 것을 종료하기 위해 제로화되어야 할 A의 유일한 부분은 U upper이다. 부행렬 U upper의 로우들의 수 i는 일반적으로 U upper의 컬럼들의 수보다 훨씬 크다. U upper를 효율적으로 제로화하기 위해, 제 3 페이즈에서는 I u에 기초해 다음의 선행 계산 행렬 U'이 계산된 다음, U'이 제 4 페이즈에서 U upper를 제로화하는데 사용된다. I u의 u개 로우들은 각각 8개 로우들의 ceil(u/8) 그룹들로 분할된다. 다음으로는, 8개 로우들의 각 그룹에 대해, 8개 로우들의 0이 아닌 모든 조합들이 계산되어, 28 - 1 = 255개 로우들을 초래한다(이것은 매 그룹마다 로우들의 28-8-1 = 247회의 배타적-OR들로써 수행되는데, I u에 나타나는 해밍 가중치 1의 조합들이 재계산될 필요는 없기 때문이다). 따라서, 획득되는 선행 계산 행렬 U'은 ceil(u/8)ㆍ255개 로우들 및 u개 컬럼들을 가진다. U'이 외견상 행렬 A의 일부는 아니지만, 제 4 페이즈에서 U upper를 제로화하는데 사용된다는 것에 주의한다.
B.6.2.5 제 4 페이즈
A의 처음의 i개 로우들 각각에 대해, 이 로우에 대한 U upper 부행렬에서의 8개 컬럼들의 각 그룹의 경우, U upper의 8개 컬럼 엔트리들의 세트가 모두 0은 아니라면, 8개 컬럼들의 패턴과 매칭되는 선행 계산 행렬 U'의 로우가 그 로우로 배타적-OR됨 으로써, U'의 일 로우를 그 로우로 배타적-OR하는 비용으로 로우의 8개 컬럼들을 제로화한다.
이 페이즈 이후에, AL x L의 단위 행렬이고 완전한 디코딩 스케줄이 성공적으로 형성된다. 그 다음, 공지의 인코딩 심볼들을 배타적-OR하는 단계를 구비하는 대응되는 디코딩이 실행되어 디코딩 스케줄에 기초한 중간 심볼들을 복원할 수 있다.
모든 소스 심볼들과 연관된 트리플들은 B.5.2.2에 따라 계산된다. 수신된 소스 심볼들을 위한 트리플들이 디코딩에 사용된다. 누락 소스 심볼들을 위한 트리플들은, 어떤 중간 심볼들이 누락 소스 심볼들을 복원하기 위해 배타적-OR되어야 하는지를 판정하는데 사용된다.
일부 다중-스테이지 코드들의 일부 특성들
상술된 대부분의 일례들에서, 입력 및 출력 심볼들은 동일한 비트 수를 위해 98을 인코딩하고 각각의 출력 심볼은 일 패킷에 배치된다(패킷은 전체적으로 수신되거나 전체적으로 손실되는 전송 단위이다). 일부 실시예들에서, 통신 시스템은, 각 패킷이 수 개의 출력 심볼들을 포함하도록 변경된다. 그 다음, 출력 심볼 값의 사이즈는, 다수 팩터들에 기초해, 파일 또는 스트림의 블록들을 입력 심볼들로 초기 분할하는 단계에서 입력 심볼 값들의 사이즈에 의해 판정되는 사이즈로 설정된다. 디코딩 프로세스는, 각각의 패킷이 수신될 때, 출력 심볼들이 번치로(in bunches) 도달한다는 점을 제외하면, 실질적으로 차이가 없다.
입력 심볼과 출력 심볼 사이즈들의 설정은 일반적으로 파일 또는 스트림의 블록 사이즈 및 출력 심볼들이 전송될 통신 시스템에 의해 지시된다. 예를 들어, 통신 시스템이 데이터의 비트들을 소정 사이즈의 패킷들로 그룹화하거나 다른 방법들로 비트들을 그룹화한다면, 심볼 사이즈들의 설계는 패킷 또는 그룹화 사이즈로 시작한다. 거기에서부터, 설계자는, 몇 개의 출력 심볼들이 하나의 패킷 또는 그룹으로 전달될 것인지를 판정할 것이고, 그것이 출력 심볼 사이즈를 판정한다. 간략화를 위해, 설계자는 입력 심볼 사이즈를 출력 심볼 사이즈와 동일하게 설정하겠지만, 입력 데이터가 상이한 입력 심볼 사이즈를 좀더 편리하게 한다면, 그것이 사용될 수도 있다.
상술된 인코딩 프로세스는 원래 파일 또는 스트림의 블록에 기초해 출력 심볼들을 포함하는 패킷들의 스트림을 발생시킨다. 스트림의 출력 심볼 각각은 다른 출력 심볼들과 무관하게 발생되고, 생성될 수 있는 출력 심볼들의 수에 하한이나 상한은 존재하지 않는다. 키가 각각의 출력 심볼과 연관된다. 그 키 및 입력 파일 또는 스트림 블록의 소정 내용들이 출력 심볼의 값을 판정한다. 연속적으로 발생되는 출력 심볼들이 연속적인 키들을 가질 필요는 없으며, 일부 애플리케이션들에서는, 키들의 시퀀스를 랜덤하게 발생시키거나 시퀀스를 의사-랜덤하게 발생시키는 것이 바람직할 것이다.
다중-스테이지 디코딩은, 원래 파일 또는 스트림 블록이 동일-사이즈의 K개 입력 심볼들로 분할될 수 있고 각각의 출력 심볼 값이 입력 심볼 값과 같은 길이를 가진다면, 파일 또는 블록이 평균적으로 K+A개 출력 심볼들로부터 아주 높은 확률로 복원될 수 있다는 특성을 갖는데, 여기에서, A는 K에 비해 작다. 예를 들어, 앞서 소개된 가중치 분포들에 대해, K가 19,681보다 크다면, A의 값이 α*K를 초과할 확률은 기껏해야 10-12이고, 임의의 K 값에 대해서는 A의 값이 α*K를 초과할 확률이 기껏해야 10-10이다. 특정한 출력 심볼들이 랜덤한 순서로 또는 의사-랜덤한 순서로 발생되고 특정한 출력 심볼들의 전송에서의 손실이 랜덤한 것으로 가정되므로, 입력 파일 또는 블록을 복원하는데 필요한 출력 심볼들의 실제 수에는 소정의 작은 편차가 존재한다. 일부 경우들에서, K+A개 패킷들의 특정 집합이 전체 입력 파일 또는 블록을 디코딩하기에 충분하지 않을 경우, 수신기가 출력 패킷들의 하나 이상의 소스들로부터 더 많은 패킷들을 모을 수 있다면, 입력 파일 또는 블록은 여전히 복원 가능하다.
출력 심볼들의 수는 I의 분해에 의해서만 한정되기 때문에, K+A보다 훨씬 더 많은 출력 심볼들이 발생될 수 있다. 예를 들어, I가 32-비트 수라면, 40억개의 상이한 출력 심볼들이 발생될 수 있는 한편, 파일 또는 스트림 블록은 K=50,000개 입력 심볼들을 포함할 수 있다. 일부 애플리케이션들에서는, 그러한 40억개 출력 심볼들 중 일부만이 발생되고 전송될 수 있으며, (입력 심볼 사이즈가 출력 심볼 사이즈와 동일하다고 가정하면) 입력 파일 또는 스트림 블록이, 가능한 출력 심볼들 중 아주 작은 부분으로써 그리고 입력 파일 또는 블록이 K개보다 약간 더 많은 출력 심볼들로써 복원될 수 있는 우수한 확률로써 복원될 수 있다는 것이 거의 확실하다.
일부 애플리케이션들에서는, 입력 심볼들 모두를 디코딩할 수 없거나 입력 심볼들 모두를 디코딩할 수 있다는 것이 허용될 수 있지만, 비교적 확률이 낮다. 이러한 애플리케이션들에서는, 수신기가 K+A개 출력 심볼들을 수신한 후에 입력 심볼들 모두의 디코딩 시도를 중단할 수 있다. 또는, 수신기가 K+A개 미만의 출력 심볼들을 수신한 후에 출력 심볼들의 수신을 중단할 수 있다. 일부 애플리케이션들에서는, 심지어 수신기가 K개 이하의 출력 심볼들만을 수신할 수도 있다. 따라서, 본 발명의 일부 실시예들에서는, 원하는 정확도(desired degree of accuracy)가 모든 입력 심볼들의 완전한 복원일 필요는 없다는 것을 알 수 있을 것이다.
또한, 불완전한 복원이 수용 가능한 일부 애플리케이션들에서는, 입력 심볼들 모두가 복원될 수 없도록 데이터가 인코딩되거나, 입력 심볼들의 완전한 복원은 입력 심볼들의 수보다 더 많은 출력 심볼들을 요하도록 데이터가 인코딩될 수 있다. 이러한 인코딩은 일반적으로, 계산 비용을 덜 요할 것이므로, 인코딩의 계산 비용을 감소시키기 위해 허용 가능한 방법일 수 있다.
상술된 도면들에서의 다양한 기능 블록들이 하드웨어 및/또는 소프트웨어의 조합으로써 구현될 수 있으며, 특정 구현들에서는, 블록들 중 일부에 대한 기능의 일부 또는 전부가 조합될 수 있다는 것을 알 수 있을 것이다. 마찬가지로, 여기에서 설명되는 다양한 방법들이 하드웨어 및/또는 소프트웨어의 조합으로써 구현될 수도 있다는 것을 알 수 있을 것이다.
상기 설명은 예시적인 것이며 제한적인 것이 아니다. 당업자들에게는, 이 명세서의 검토시에, 본 발명의 다수 변형들이 명백할 것이다. 따라서, 본 발명의 범위는 상기 설명에 대한 참조로써 판정되는 것이 아니라, 첨부된 청구항들 및 그 들의 등가물들에 대한 완전한 범위를 참조하여 판정되어야 한다.
Appendix A. 시스테메틱 인덱스들(J(K))을 위한 값들
K의 각 값에 대해, 시스테메틱 인덱스 J(K)는, 소스 심볼 트리플들((d[0], a[0], b[0]), ..., (d[L-1], a[L-1], b[L-1]))의 세트가, L개의 중간 심볼들이 고유하게 정의된다는, 즉, 섹션 B.5.2.4.2의 행렬 A가 완전 랭크를 가지므로 변환 가능하다는 특성을 갖도록 설계된다. 다음은 (4와 8192도 포함하여) 4와 8192 사이의 K 값들을 위한 시스테메틱 인덱스들의 리스트이다. 값들의 순서는 판독 순서, 즉, 첫번째 라인의 첫번째 숫자에서 첫번째 라인의 마지막 숫자를 거쳐, 두번째 라인의 첫번째 숫자가 수반되는 식이다.
Figure 112006032752447-pct00004
Figure 112006032752447-pct00005
Figure 112006032752447-pct00006
Figure 112006032752447-pct00007
Figure 112006032752447-pct00008
Figure 112006032752447-pct00009
Figure 112006032752447-pct00010
Figure 112006032752447-pct00011
Figure 112006032752447-pct00012
Appendix B.1 테이블 V 0 를 위한 값들
이 값들은 섹션 B.5.4.1의 상기 애플리케이션에서 설명된 테이블 V0를 위한 값들의 예시적 세트를 표현한다. 각각의 엔트리는 10진수 표현의 32-비트 정수이다. 값들의 순서는 제 1 컬럼의 상단에서 제 1 컬럼의 하단을 거쳐, 제 2 컬럼의 상단이 수반되는 식이다.
Figure 112006032752447-pct00013
Appendix B.2 테이블 V 1 을 위한 값들
이 값들은 섹션 B.5.4.1의 상기 애플리케이션에서 설명된 테이블 V1을 위한 값들의 예시적 세트를 표현한다. 각각의 엔트리는 10진수 표현의 32-비트 정수이다. 값들의 순서는 제 1 컬럼의 상단에서 제 1 컬럼의 하단을 거쳐, 제 2 컬럼의 상단이 수반되는 식이다.
Figure 112006032752447-pct00014

Claims (15)

  1. 통신 채널을 통해 소스로부터 목적지로 전송하기 위한 데이터를 인코딩하는 방법으로서,
    상기 전송하기 위한 데이터는 입력 심볼들의 순서화된 세트에 의해 나타내질 수 있고,
    상기 데이터 인코딩 방법은,
    상기 입력 심볼들의 순서화된 세트로부터 복수개의 리던던트 (redundant) 심볼들을 발생시키는 단계로서, 상기 복수개의 리던던트 심볼들 중 각각의 리던던트 심볼은 상기 입력 심볼들의 순서화된 세트 중 하나 이상의 입력 심볼들을 이용하여 산출되는, 상기 복수개의 리던던트 심볼들을 발생시키는 단계; 및
    상기 입력 심볼들과 상기 리던던트 심볼들을 포함하는 심볼들의 조합 세트로부터 복수개의 출력 심볼들을 발생시키는 단계로서, 가능한 출력 심볼들의 수는 상기 심볼들의 조합 세트에서의 심볼들의 수보다 훨씬 크며, 상기 심볼들의 조합 세트에서의 하나 보다는 많지만 전부는 아닌 심볼들로부터 하나 이상의 출력 심볼이 발생되는, 상기 복수개의 출력 심볼들을 발생시키는 단계를 포함하고,
    상기 복수개의 리던던트 심볼들의 발생은, 리던던트 심볼들 간의 낮은 공통의 멤버쉽을 보장하는 결정적 프로세스 (deterministic process) 를 이용하여 실시되며,
    2개의 리던던트 심볼들 간의 공통의 멤버쉽은 리던던트 심볼들 둘다가 의존하는 입력 심볼들의 세트이며, 리던던트 심볼들 둘다가 의존하는 입력 심볼들의 수가 상기 결정적 프로세스에 의해 주어지는 임계치 미만일 경우에 2개의 리던던트 심볼들 간의 낮은 공통의 멤버쉽이 존재하고,
    각각의 입력 심볼에 대해, 상기 입력 심볼에 의존하는 리던던트 심볼들의 미리정해진 수가 있는, 데이터 인코딩 방법.
  2. 제 1 항에 있어서,
    상기 복수개의 출력 심볼들을 상기 통신 채널을 통해 전송하는 단계를 더 포함하는, 데이터 인코딩 방법.
  3. 제 1 항에 있어서,
    상기 복수개의 출력 심볼들을 저장 매체에 저장하는 단계를 더 포함하는, 데이터 인코딩 방법.
  4. 제 1 항에 있어서,
    상기 복수개의 리던던트 심볼들은 LDPC (Low Density Parity Check) 코드에 따라 발생되는, 데이터 인코딩 방법.
  5. 제 1 항에 있어서,
    상기 출력 심볼들은, 상기 입력 심볼들의 순서화된 세트가 임의의 미리정해진 수 (N개) 의 출력 심볼들로부터 재생될 수 있도록, 존재하며,
    N은 입력 심볼들의 수보다 약간 더 큰, 데이터 인코딩 방법.
  6. 제 1 항에 있어서,
    상기 출력 심볼들은, 상기 입력 심볼들의 순서화된 세트가 N개의 출력 심볼들로부터 재생될 수 있는 미리정해진 확률이 있도록, 존재하며,
    N은 적어도 입력 심볼들의 수만큼 큰, 데이터 인코딩 방법.
  7. 제 1 항에 있어서,
    상기 출력 심볼들은, 상기 입력 심볼들의 순서화된 세트의 G개가 출력 심볼들의 K개로부터 재생될 수 있도록, 존재하며,
    K는 입력 심볼들의 수이며, G는 K 보다 작은, 데이터 인코딩 방법.
  8. 제 1 항에 있어서,
    최대 G개의 입력 심볼들이 임의 갯수의 출력 심볼들로부터 재생될 수 있고,
    상기 G는 상기 입력 심볼들의 순서화된 세트에서의 입력 심볼들의 수보다 작은, 데이터 인코딩 방법.
  9. 제 1 항에 있어서,
    상기 복수개의 리던던트 심볼들을 발생시키는 단계는, 각각의 리던던트 심볼에 대해,
    분배에 따라 t개의 상이한 입력 심볼들을 결정하는 단계; 및
    상기 t개의 상이한 입력 심볼들의 XOR로서 각각의 리던던트 심볼을 계산하는 단계를 포함하는, 데이터 인코딩 방법.
  10. 제 1 항에 있어서,
    상기 복수개의 출력 심볼들을 통신 채널을 통해 전송하는 단계를 더 포함하고,
    상기 복수개의 출력 심볼들을 발생시키는 단계는 상기 복수개의 출력 심볼들을 전송하는 단계와 실질적으로 동시에 수행되는, 데이터 인코딩 방법.
  11. 제 1 항에 있어서,
    상기 복수개의 리던던트 심볼들은 정적 심볼들, 해밍 심볼들 및 패딩 심볼들을 포함하고,
    상기 심볼들의 수의 합은 소수(prime number)가 되도록 선택되는, 데이터 인코딩 방법.
  12. 제 1 항에 있어서,
    임의의 2개의 상이한 리던던트 심볼들에 대해, 이들 2개의 상이한 리던던트 심볼들 각각이 의존하는 입력 심볼들의 세트들이 최대 6개의 입력 심볼들을 공통으로 갖도록, 미리정의된 상기 임계치는 6 인, 데이터 인코딩 방법.
  13. 제 1 항에 있어서,
    상기 입력 심볼들의 순서화된 세트 중 하나 이상의 입력 심볼들을 이용하여 상기 복수개의 리던던트 심볼들을 발생시키는 단계는,
    어레이 C[K], ..., C[K+S-1] 를, 각각의 어레이 요소가 알려진 값이 되도록 초기화하는 단계로서, K는 입력 심볼들의 수이며, S는 발생되는 리던던트 심볼들의 수이며, C[0], ..., C[K-1]은 K개의 입력 심볼들에 대응하는, 상기 초기화 단계;
    카운터 i=0에 대해, 하기 단계들
    (1) a = 1 + (floor(i/S) % (S-1))
    (2) b = i % S
    (3) C[K + b] = C[K + b] ^ C[i]
    (4) b = (b + a) % S
    (5) C[K + b] = C[K + b] ^ C[i]
    (6) b = (b + a) % S
    (7) C[K + b] = C[K + b] ^ C[i]
    을 수행하는 단계로서, a 및 b는 중간 변수들이고, "%"는 모듈로 (modulo) 연산을 나타내고, floor() 는 함수의 인수 (argument) 보다 작은 최고 정수 값을 나타내는 함수이고, "^"은 비트식 XOR 연산을 나타내는, 상기 수행하는 단계;
    1에서부터 K-1까지의 카운터 i의 각각의 값에 대해, 상기 단계들을 반복하는 단계; 및
    적어도 결과로서 획득되는 어레이 C[K], ..., C[K+S-1] 를 상기 복수개 (S개) 의 리던던트 심볼들로서 출력하는 단계를 포함하는, 데이터 인코딩 방법.
  14. 제 13 항에 있어서,
    S는, S ≥ ceil(0.01?K)+X 인 최소의 소수 정수이며,
    X는, X?(X-1) ≥ 2?K 인 최소 양의 정수인, 데이터 인코딩 방법.
  15. 제 1 항에 있어서,
    각각의 입력 심볼에 대해, 상기 입력 심볼에 의존하는 리던던트 심볼들의 상기 미리정해진 수가 3인, 데이터 인코딩 방법.
KR1020067009106A 2004-05-07 2005-05-09 파일 다운로드 및 스트리밍 시스템 KR101161193B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56912704P 2004-05-07 2004-05-07
US60/569,127 2004-05-07
PCT/US2005/016334 WO2005112250A2 (en) 2004-05-07 2005-05-09 File download and streaming system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020117024580A Division KR101205758B1 (ko) 2004-05-07 2005-05-09 파일 다운로드 및 스트리밍 시스템

Publications (2)

Publication Number Publication Date
KR20070008520A KR20070008520A (ko) 2007-01-17
KR101161193B1 true KR101161193B1 (ko) 2012-07-02

Family

ID=35394825

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020117024580A KR101205758B1 (ko) 2004-05-07 2005-05-09 파일 다운로드 및 스트리밍 시스템
KR1020067009106A KR101161193B1 (ko) 2004-05-07 2005-05-09 파일 다운로드 및 스트리밍 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020117024580A KR101205758B1 (ko) 2004-05-07 2005-05-09 파일 다운로드 및 스트리밍 시스템

Country Status (6)

Country Link
US (3) US7418651B2 (ko)
EP (2) EP1743431A4 (ko)
JP (2) JP4971144B2 (ko)
KR (2) KR101205758B1 (ko)
CN (2) CN103124182B (ko)
WO (1) WO2005112250A2 (ko)

Families Citing this family (87)

* 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
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2348640B1 (en) 2002-10-05 2020-07-15 QUALCOMM Incorporated Systematic encoding of chain reaction codes
KR101170629B1 (ko) 2003-10-06 2012-08-02 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러 정정 다중-스테이지 코드 생성기 및 디코더
EP1743431A4 (en) 2004-05-07 2007-05-02 Digital Fountain Inc SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES
US20070242955A1 (en) * 2004-06-01 2007-10-18 The Penn State Research Foundation Optical Wireless Communications Using Ultra Short Light Pulses and Pulse Shaping
US7721184B2 (en) * 2004-08-11 2010-05-18 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
US7533324B2 (en) * 2004-09-22 2009-05-12 Kencast, Inc. System, method and apparatus for FEC encoding and decoding
US7739580B1 (en) * 2005-02-17 2010-06-15 Kencast, Inc. System, method and apparatus for reducing blockage losses on information distribution networks
EP1867163B1 (en) * 2005-02-23 2017-07-12 Cisco Technology, Inc. Fast channel change with conditional return to multicasting
US8140699B2 (en) * 2005-02-23 2012-03-20 Cisco Technology, Inc. Switching a client from unicasting to multicasting by simultaneously providing unicast and multicast streams to the client
US8223643B1 (en) 2005-09-06 2012-07-17 Kencast, Inc. Method for packet-level FEC encoding a stream of source packets using shifted interleaving
EP1985022B1 (en) * 2006-02-08 2011-06-08 Thomson Licensing Decoding of raptor codes
US8713195B2 (en) 2006-02-10 2014-04-29 Cisco Technology, Inc. Method and system for streaming digital video content to a client in a digital video network
EP1980074A4 (en) * 2006-02-13 2012-12-19 Digital Fountain Inc CONTINUOUS CONTINUOUS CONTINUOUS TRANSMISSION WITH CONCURRENT FLUX AGGREGATION FOR CONTINUOUS CONTROL CALCULATION
CN101686107B (zh) 2006-02-13 2014-08-13 数字方敦股份有限公司 使用可变fec开销和保护周期的流送和缓冲
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
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
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
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
WO2008003094A2 (en) 2006-06-29 2008-01-03 Digital Fountain, Inc. Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes
US8943401B2 (en) * 2006-09-29 2015-01-27 Yahoo! Inc. Script-based content-embedding code generation in digital media benefit attachment mechanism
US8707139B2 (en) 2006-10-18 2014-04-22 Kencast, Inc. Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US9521186B2 (en) 2007-09-13 2016-12-13 International Business Machines Corporation Method and system for file transfer over a messaging infrastructure
TWI357245B (en) 2007-12-31 2012-01-21 Ind Tech Res Inst System and method for downloading real-time intera
US8418034B2 (en) 2008-02-08 2013-04-09 Kencast, Inc. Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
US20090254794A1 (en) * 2008-04-04 2009-10-08 Nxp B.V. Method for efficient packet framing in a communication network
KR101367886B1 (ko) * 2008-05-07 2014-02-26 디지털 파운튼, 인크. 브로드캐스트 채널 상에서의 고속 채널 재핑 및 고품질 스트리밍 보호
US9100153B2 (en) * 2008-09-25 2015-08-04 The Royal Institution For The Advancement Of Learning/Mcgill University Methods and systems for improving iterative signal processing
US8090689B1 (en) 2008-09-30 2012-01-03 Emc Corporation Efficient data recovery
US8812455B1 (en) 2008-09-30 2014-08-19 Emc Corporation Efficient data backup
US8347388B1 (en) 2008-09-30 2013-01-01 Emc Corporation System and method for orchestrating services
TWI363501B (en) * 2008-12-23 2012-05-01 Ind Tech Res Inst Method and apparatus for data package in broadcast networks
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9015564B2 (en) 2009-08-19 2015-04-21 Qualcomm Incorporated Content delivery system with allocation of source data and repair data among HTTP servers
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
FR2949632B1 (fr) * 2009-08-28 2012-05-18 Commissariat Energie Atomique Procede d'egalisation de la taille des paquets de donnees par blocs d'un flux multimedia
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
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9136981B2 (en) * 2010-03-03 2015-09-15 Qualcomm Incorporated Block aggregation of objects in a communication system
US8627073B2 (en) * 2010-03-24 2014-01-07 GM Global Technology Operations LLC Adaptive certificate distribution mechanism in vehicular networks using forward error correcting codes
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
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
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US8578241B2 (en) * 2011-10-10 2013-11-05 Lsi Corporation Systems and methods for parity sharing data processing
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
CN104067594A (zh) 2011-11-01 2014-09-24 高通股份有限公司 在http服务器之间分配源数据和修复数据的内容传送系统
US9723063B2 (en) 2011-11-28 2017-08-01 Vuclip (Singapore) Pte. Ltd. Method of determining transport parameters for efficient data transport across a network
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9646020B2 (en) * 2012-05-02 2017-05-09 Microsoft Technology Licensing, Llc Integrated format conversion during disk upload
KR101983032B1 (ko) * 2012-05-07 2019-05-30 삼성전자주식회사 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
TWI485992B (zh) * 2012-08-31 2015-05-21 Ind Tech Res Inst 猛禽碼之編碼加速裝置與方法
JP2014068295A (ja) * 2012-09-27 2014-04-17 Kddi Corp 無線環境に適したマルチキャストデータを配信する配信サーバ、システム及びプログラム
WO2014065734A1 (en) * 2012-10-26 2014-05-01 Telefonaktiebolaget L M Ericsson (Publ) METHODS AND ARRANGEMENT FOR HANDLING FILE REPAIR DURING MBMS OR eMBMS DELIVERY
US9294227B2 (en) * 2013-01-29 2016-03-22 Qualcomm Incorporated LT staircase FEC code
US9119144B2 (en) * 2013-02-25 2015-08-25 Qualcomm Incorporated Method and apparatus for generation of balanced weight preamble sequences
CN104079369A (zh) 2013-03-28 2014-10-01 株式会社日立制作所 服务器、数据缓存方法、使用该服务器的通信系统及方法
KR102093731B1 (ko) * 2013-10-22 2020-03-26 삼성전자주식회사 오류 정정 부호를 사용하는 통신 시스템에서 패킷 송수신 기법
TWI523465B (zh) * 2013-12-24 2016-02-21 財團法人工業技術研究院 檔案傳輸系統和方法
TWI519143B (zh) 2013-12-30 2016-01-21 財團法人工業技術研究院 通訊系統、其方法與其接收端
KR20150084632A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
US9596218B1 (en) 2014-03-03 2017-03-14 Google Inc. Methods and systems of encrypting messages using rateless codes
US9455750B2 (en) * 2014-07-28 2016-09-27 Qualcomm Incorporated Source block size selection
US9590657B2 (en) 2015-02-06 2017-03-07 Alcatel-Lucent Usa Inc. Low power low-density parity-check decoding
US9935654B2 (en) * 2015-02-06 2018-04-03 Alcatel-Lucent Usa Inc. Low power low-density parity-check decoding
US10903858B2 (en) 2015-05-27 2021-01-26 Quantum Corporation Dynamically variable error correcting code (ECC) system with hybrid rateless reed-solomon ECCs
US10826539B2 (en) 2016-05-11 2020-11-03 Idac Holdings, Inc. Method and system for advanced outer coding
CN106357693B (zh) * 2016-11-09 2020-06-09 深圳市云之讯网络技术有限公司 实时媒体流丢包补偿方法
EP3457601B1 (en) * 2017-09-13 2019-12-25 Siemens Aktiengesellschaft A method for sending digital data over a number of channels
US10771191B2 (en) * 2018-03-09 2020-09-08 Kencast, Inc. System for highly reliable file delivery of using continuous FEC encoding/decoding
US11083961B2 (en) * 2018-12-21 2021-08-10 Universal City Studios Llc Scalable interactive video systems and methods
CN110278054B (zh) * 2019-04-30 2021-11-16 创新先进技术有限公司 一种配网方法和装置
US10785098B1 (en) 2019-04-30 2020-09-22 Alibaba Group Holding Limited Network configuration using multicast address modulation

Family Cites Families (552)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US560738A (en) * 1896-05-26 Overhead traveling crane
US3909721A (en) 1972-01-31 1975-09-30 Signatron Signal processing system
US4365338A (en) 1980-06-27 1982-12-21 Harris Corporation Technique for high rate digital transmission over a dynamic dispersive channel
US4965825A (en) * 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4589112A (en) 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US4901319A (en) * 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
GB8815978D0 (en) 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US5421031A (en) * 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US7594250B2 (en) 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
US5701582A (en) 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US5329369A (en) 1990-06-01 1994-07-12 Thomson Consumer Electronics, Inc. Asymmetric picture compression
US5455823A (en) * 1990-11-06 1995-10-03 Radio Satellite Corporation Integrated communications terminal
US5164963A (en) 1990-11-07 1992-11-17 At&T Bell Laboratories Coding for digital transmission
US5465318A (en) 1991-03-28 1995-11-07 Kurzweil Applied Intelligence, Inc. Method for generating a speech recognition model for a non-vocabulary utterance
US5379297A (en) * 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
EP0543070A1 (en) * 1991-11-21 1993-05-26 International Business Machines Corporation Coding system and method using quaternary codes
US5371532A (en) 1992-05-15 1994-12-06 Bell Communications Research, Inc. Communications architecture and method for distributing information services
US5425050A (en) 1992-10-23 1995-06-13 Massachusetts Institute Of Technology Television transmission system using spread spectrum and orthogonal frequency-division multiplex
US5372532A (en) 1993-01-26 1994-12-13 Robertson, Jr.; George W. Swivel head cap connector
EP0613249A1 (en) 1993-02-12 1994-08-31 Altera Corporation Custom look-up table with reduced number of architecture bits
DE4316297C1 (de) 1993-05-14 1994-04-07 Fraunhofer Ges Forschung Frequenzanalyseverfahren
AU665716B2 (en) 1993-07-05 1996-01-11 Mitsubishi Denki Kabushiki Kaisha A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame
US5590405A (en) 1993-10-29 1996-12-31 Lucent Technologies Inc. Communication technique employing variable information transmission
JP2576776B2 (ja) 1993-11-10 1997-01-29 日本電気株式会社 パケット伝送方法・パケット伝送装置
US5517508A (en) * 1994-01-26 1996-05-14 Sony Corporation Method and apparatus for detection and error correction of packetized digital data
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
US5566208A (en) 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5432787A (en) * 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
US5757415A (en) * 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5802394A (en) 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
US5568614A (en) 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US5659614A (en) 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5617541A (en) 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
JP3614907B2 (ja) 1994-12-28 2005-01-26 株式会社東芝 データ再送制御方法及びデータ再送制御システム
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 가나이 쓰도무 디지탈방송신호의 수신장치와 수신 및 기록재생장치
US6011590A (en) * 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
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 ディジタル変調回路と変調方法、ディジタル復調回路と復調方法
EP0933768A4 (en) 1997-05-19 2000-10-04 Sanyo Electric Co DIGITAL MODULATION AND DEMODULATION
JP4110593B2 (ja) 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
US6128649A (en) 1997-06-02 2000-10-03 Nortel Networks Limited Dynamic selection of media streams for display
US6081907A (en) 1997-06-09 2000-06-27 Microsoft Corporation Data delivery system and method for delivering data and redundant information over a unidirectional network
US5917852A (en) 1997-06-11 1999-06-29 L-3 Communications Corporation Data scrambling system and method and communications system incorporating same
KR100240869B1 (ko) 1997-06-25 2000-01-15 윤종용 이중 다이버서티 시스템을 위한 데이터 전송 방법
US5933056A (en) 1997-07-15 1999-08-03 Exar Corporation Single pole current mode common-mode feedback circuit
US6175944B1 (en) * 1997-07-15 2001-01-16 Lucent Technologies Inc. Methods and apparatus for packetizing data for transmission through an erasure broadcast channel
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
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6081918A (en) 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
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
JP2002510947A (ja) 1998-04-02 2002-04-09 サーノフ コーポレイション 圧縮ビデオ・データのバースト状データ伝送
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
KR100778647B1 (ko) 1998-09-04 2007-11-22 에이티 앤드 티 코포레이션 다중-안테나 장치내의 결합된 채널 코딩 및 공간-블록 코딩
US6415326B1 (en) 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive 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
US7157314B2 (en) 1998-11-16 2007-01-02 Sandisk Corporation 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
ES2185244T3 (es) 1998-12-03 2003-04-16 Fraunhofer Ges Forschung Aparato y procedimiento para transmitir informacion y aparato y procedimiento para recibir informacion.
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6229827B1 (en) * 1998-12-04 2001-05-08 Cidra Corporation Compression-tuned bragg grating and laser
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
JP3256517B2 (ja) 1999-04-06 2002-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 符号化回路、回路、パリティ生成方法及び記憶媒体
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
US6535920B1 (en) * 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
US6804202B1 (en) 1999-04-08 2004-10-12 Lg Information And Communications, Ltd. Radio protocol for mobile communication system and method
US7885340B2 (en) 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
MY130203A (en) 1999-05-06 2007-06-29 Sony Corp Methods and apparatus for data processing, methods and apparatus for data reproducing and recording media
KR100416996B1 (ko) * 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
AU5140200A (en) 1999-05-26 2000-12-18 Enounce, Incorporated Method and apparatus for controlling time-scale modification during multi-media broadcasts
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
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
JP3451221B2 (ja) 1999-07-22 2003-09-29 日本無線株式会社 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
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
JP2001094625A (ja) 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
DE60033011T2 (de) 1999-09-27 2007-08-09 Koninklijke Philips Electronics N.V. Aufteilung einer datei zur emulation eines datenstroms
US20050160272A1 (en) 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US6523147B1 (en) * 1999-11-11 2003-02-18 Ibiquity Digital Corporation Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6678855B1 (en) * 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6798791B1 (en) 1999-12-16 2004-09-28 Agere Systems Inc Cluster frame synchronization scheme for a satellite digital audio radio system
US6487692B1 (en) 1999-12-21 2002-11-26 Lsi Logic Corporation Reed-Solomon decoder
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
IL140504A0 (en) 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
WO2001057667A1 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Data streaming
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
CA2429827C (en) 2000-12-15 2009-08-25 British Telecommunications Public Limited Company 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
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
KR100931915B1 (ko) 2002-01-23 2009-12-15 노키아 코포레이션 비디오 코딩시 이미지 프레임들의 그루핑
CN1625880B (zh) * 2002-01-30 2010-08-11 Nxp股份有限公司 在具有可变带宽的网络上流式传输多媒体数据
AU2003211057A1 (en) 2002-02-15 2003-09-09 Digital Fountain, Inc. System and method for reliably communicating the content of a live data stream
JP4126928B2 (ja) 2002-02-28 2008-07-30 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム
JP4116470B2 (ja) 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
FR2837332A1 (fr) 2002-03-15 2003-09-19 Thomson Licensing Sa Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants
AU2003221958B2 (en) * 2002-04-15 2008-03-06 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 松下電器産業株式会社 データ受信装置及びデータ配信システム
KR100693200B1 (ko) 2002-04-25 2007-03-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
ES2445116T3 (es) 2002-06-11 2014-02-28 Digital Fountain, Inc. Descodificación de códigos de reacción en cadena por inactivación
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
WO2003105484A1 (en) 2002-06-11 2003-12-18 Telefonaktiebolaget L M 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 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
MXPA05000558A (es) 2002-07-16 2005-04-19 Nokia Corp Metodo de acceso aleatorio y renovacion gradual de imagen en codificacion de video.
WO2004019521A1 (ja) 2002-07-31 2004-03-04 Sharp Kabushiki Kaisha データ通信装置、その間欠通信方法、その方法を記載するプログラム、及びそのプログラムを記録する記録媒体
JP2004070712A (ja) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
US7620111B2 (en) 2002-08-13 2009-11-17 Nokia Corporation Symbol interleaving
US6985459B2 (en) * 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
CN100393012C (zh) * 2002-09-09 2008-06-04 西南交通大学 在混合自动重发请求系统中并行冗余发送与并行合并接收分组数据的方法
WO2004030273A1 (ja) 2002-09-27 2004-04-08 Fujitsu Limited データ配信方法、システム、伝送方法及びプログラム
JP3534742B1 (ja) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
EP2348640B1 (en) 2002-10-05 2020-07-15 QUALCOMM Incorporated Systematic encoding 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
US8320301B2 (en) 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
US7289451B2 (en) 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
US7328394B2 (en) 2002-10-30 2008-02-05 Koninklijke Philips Electronics N.V. Adaptative forward error control scheme
JP2004165922A (ja) 2002-11-12 2004-06-10 Sony Corp 情報処理装置および方法、並びにプログラム
GB0226872D0 (en) 2002-11-18 2002-12-24 British Telecomm Video transmission
EP1563689B1 (en) 2002-11-18 2008-10-01 British Telecommunications Public Limited Company Transmission of video
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 サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
WO2004109538A1 (en) 2003-06-07 2004-12-16 Samsung Electronics Co. Ltd. Apparatus and method for organization and interpretation of multimedia data on a recording medium
KR101003413B1 (ko) 2003-06-12 2010-12-23 엘지전자 주식회사 이동통신 단말기의 전송데이터 압축/해제 방법
US7603689B2 (en) 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
RU2265960C2 (ru) 2003-06-16 2005-12-10 Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" Способ передачи информации с использованием адаптивного перемежения
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050004997A1 (en) 2003-07-01 2005-01-06 Nokia Corporation Progressive downloading of timed multimedia content
US8149939B2 (en) 2003-07-07 2012-04-03 Samsung Electronics Co., Ltd. System of robust DTV signal transmissions that legacy DTV receivers will disregard
US7254754B2 (en) 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
KR100532450B1 (ko) 2003-07-16 2005-11-30 삼성전자주식회사 에러에 대해 강인한 특성을 가지는 데이터 기록 방법,이에 적합한 데이터 재생 방법, 그리고 이에 적합한 장치들
US20050028067A1 (en) * 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
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
IL157886A0 (en) 2003-09-11 2009-02-11 Bamboo Mediacasting Ltd Secure multicast transmission
IL157885A0 (en) 2003-09-11 2004-03-28 Bamboo Mediacasting Ltd Iterative forward error correction
JP4183586B2 (ja) 2003-09-12 2008-11-19 三洋電機株式会社 映像表示装置
EP1665567A4 (en) 2003-09-15 2010-08-25 Directv Group Inc METHOD AND SYSTEM FOR ADAPTIVELY TRANSCODING AND TRANSRATING IN A VIDEO NETWORK
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
ATE337643T1 (de) 2003-09-30 2006-09-15 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
KR101170629B1 (ko) * 2003-10-06 2012-08-02 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러 정정 다중-스테이지 코드 생성기 및 디코더
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
KR101103443B1 (ko) * 2003-10-14 2012-01-09 파나소닉 주식회사 데이터 컨버터
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
EP1706946A4 (en) 2003-12-01 2006-10-18 Digital Fountain Inc PROCESSING DATA AGAINST ERASURES USING SUB-SYMBOL 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
KR100586883B1 (ko) 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
KR100596705B1 (ko) 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
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
JP2007531199A (ja) 2004-03-30 2007-11-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ディスクベースのマルチメディアコンテンツのための改良されたトリックモード実行をサポートするシステムおよび方法
TW200534875A (en) 2004-04-23 2005-11-01 Lonza Ag Personal care compositions and concentrates for making the same
FR2869744A1 (fr) 2004-04-29 2005-11-04 Thomson Licensing Sa Methode de transmission de paquets de donnees numeriques et appareil implementant la methode
EP1743431A4 (en) 2004-05-07 2007-05-02 Digital Fountain Inc SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES
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
US7139660B2 (en) 2004-07-14 2006-11-21 General Motors Corporation System and method for changing motor vehicle personalization settings
US8112531B2 (en) 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US8544043B2 (en) 2004-07-21 2013-09-24 Qualcomm Incorporated Methods and apparatus for providing content information to content servers
US7409626B1 (en) 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
US7376150B2 (en) 2004-07-30 2008-05-20 Nokia Corporation Point-to-point repair response mechanism for point-to-multipoint transmission systems
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
US7721184B2 (en) 2004-08-11 2010-05-18 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システムにおけるチャンネル切り替えの方法及び装置
JP5425397B2 (ja) 2004-12-02 2014-02-26 トムソン ライセンシング 適応型前方誤り訂正を行う装置及び方法
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 株式会社第一興商 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する方法と受信装置
JP2008530835A (ja) 2005-02-08 2008-08-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) パケット交換ネットワーク上のオンデマンドマルチチャネルストリーミングセッション
US7925097B2 (en) 2005-02-18 2011-04-12 Sanyo Electric Co., Ltd. Image display method, image coding apparatus, and image decoding apparatus
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
EP1856911A4 (en) 2005-03-07 2010-02-24 Ericsson Telefon Ab L M SWITCHING MULTIMEDIA CHANNELS
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
US7418649B2 (en) 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
US7219289B2 (en) 2005-03-15 2007-05-15 Tandberg Data Corporation Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same
US7450064B2 (en) 2005-03-22 2008-11-11 Qualcomm, Incorporated Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system
JP4487028B2 (ja) 2005-03-31 2010-06-23 ブラザー工業株式会社 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム
US7715842B2 (en) 2005-04-09 2010-05-11 Lg Electronics Inc. Supporting handover of mobile terminal
EP1869891A4 (en) 2005-04-13 2014-06-11 CODING, STORAGE AND SIGNALING OF SCALABILITY INFORMATION
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7961700B2 (en) 2005-04-28 2011-06-14 Qualcomm Incorporated Multi-carrier operation in data transmission systems
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
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
MX2007014744A (es) 2005-05-24 2008-02-14 Nokia Corp Metodo y aparatos para transmision/recepcion jerarquica en transmision digital.
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
US8879635B2 (en) * 2005-09-27 2014-11-04 Qualcomm Incorporated Methods and device for data alignment with time domain boundary
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 华为技术有限公司 分组网络中多媒体实时传输的唇同步方法及其装置
EP2375749B1 (en) 2005-10-11 2016-11-23 Nokia Technologies Oy System and method for efficient scalable stream adaptation
US7720096B2 (en) 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
EP1946563A2 (en) 2005-10-19 2008-07-23 Thomson Licensing Multi-view video coding using scalable video coding
JP4727401B2 (ja) 2005-12-02 2011-07-20 日本電信電話株式会社 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法
FR2894421B1 (fr) 2005-12-07 2008-01-18 Canon Kk Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
KR100759823B1 (ko) 2005-12-08 2007-09-18 한국전자통신연구원 제로 복귀 신호 발생 장치 및 그 방법
JP4456064B2 (ja) 2005-12-21 2010-04-28 日本電信電話株式会社 パケット送信装置、受信装置、システム、およびプログラム
US20070157267A1 (en) 2005-12-30 2007-07-05 Intel Corporation Techniques to improve time seek operations
WO2007078253A2 (en) 2006-01-05 2007-07-12 Telefonaktiebolaget Lm Ericsson (Publ) Media container file management
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
WO2007080502A2 (en) 2006-01-11 2007-07-19 Nokia Corporation Backward-compatible aggregation of pictures in scalable video coding
JP5192393B2 (ja) 2006-01-12 2013-05-08 エルジー エレクトロニクス インコーポレイティド 多視点ビデオの処理
WO2007086654A1 (en) 2006-01-25 2007-08-02 Lg Electronics Inc. Digital broadcasting system and method of processing data
US7262719B2 (en) 2006-01-30 2007-08-28 International Business Machines Corporation Fast data stream decoding using apriori information
RU2290768C1 (ru) 2006-01-30 2006-12-27 Общество с ограниченной ответственностью "Трафиклэнд" Система медиавещания в инфраструктуре оператора мобильной связи
GB0602314D0 (en) 2006-02-06 2006-03-15 Ericsson Telefon Ab L M Transporting packets
US8990153B2 (en) 2006-02-07 2015-03-24 Dot Hill Systems Corporation Pull data replication model
EP1985022B1 (en) * 2006-02-08 2011-06-08 Thomson Licensing Decoding of raptor codes
CN101686107B (zh) 2006-02-13 2014-08-13 数字方敦股份有限公司 使用可变fec开销和保护周期的流送和缓冲
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
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US7525993B2 (en) 2006-05-24 2009-04-28 Newport Media, Inc. Robust transmission system and method for mobile television applications
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
TWM302355U (en) * 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
US20100211690A1 (en) 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
JP2008011404A (ja) 2006-06-30 2008-01-17 Toshiba Corp コンテンツ処理装置及びコンテンツ処理方法
JP4392004B2 (ja) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術
EP2302869A3 (en) 2006-07-20 2013-05-22 SanDisk Technologies Inc. An improved audio visual player apparatus and system and method of content distribution using the same
US7711797B1 (en) 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
US8209736B2 (en) * 2006-08-23 2012-06-26 Mediatek Inc. Systems and methods for managing television (TV) signals
US20080066136A1 (en) 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
EP2055107B1 (en) 2006-08-24 2013-05-15 Nokia Corporation Hint of tracks relationships for multi-stream media files in multiple description coding MDC.
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
EP2084928B1 (en) 2006-10-30 2017-08-23 LG Electronics Inc. Method of performing random access in a wireless communication system
JP2008118221A (ja) 2006-10-31 2008-05-22 Toshiba Corp 復号装置及び復号方法
WO2008054100A1 (en) 2006-11-01 2008-05-08 Electronics And Telecommunications Research Institute Method and apparatus for decoding metadata used for playing stereoscopic contents
UA93118C2 (ru) 2006-11-14 2011-01-10 Квелкомм Инкорпорейтед Системы и способы для переключения каналов
US8027328B2 (en) 2006-12-26 2011-09-27 Alcatel Lucent Header compression in a wireless communication network
CN103561278B (zh) 2007-01-05 2017-04-12 索尼克知识产权股份有限公司 包含连续播放的视频分配系统
US20080168516A1 (en) 2007-01-08 2008-07-10 Christopher Lance Flick Facilitating Random Access In Streaming Content
WO2008084348A1 (en) 2007-01-09 2008-07-17 Nokia Corporation Method for supporting file versioning in mbms file repair
US20080172430A1 (en) 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
CA2656144A1 (en) 2007-01-11 2008-07-17 Panasonic Corporation Method for trick playing on streamed and encrypted multimedia
EP3484123A1 (en) 2007-01-12 2019-05-15 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
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
US20080192818A1 (en) 2007-02-09 2008-08-14 Dipietro Donald Vincent Systems and methods for securing media
US20080232357A1 (en) 2007-03-19 2008-09-25 Legend Silicon Corp. Ls digital fountain code
JP4838191B2 (ja) 2007-05-08 2011-12-14 シャープ株式会社 ファイル再生装置、ファイル再生方法、ファイル再生を実行させるプログラム及びそのプログラムを記録した記録媒体
JP2008283571A (ja) 2007-05-11 2008-11-20 Ntt Docomo Inc コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
WO2008140261A2 (en) 2007-05-14 2008-11-20 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
KR101494028B1 (ko) 2007-05-16 2015-02-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
JP5363473B2 (ja) 2007-06-20 2013-12-11 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 改善されたメディア・セッション管理の方法と装置
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
US9237101B2 (en) * 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8233532B2 (en) 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
US8346959B2 (en) 2007-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Client-controlled adaptive streaming
EP2046044B1 (en) 2007-10-01 2017-01-18 Cabot Communications Ltd A method and apparatus for streaming digital media content and a communication system
EP2181541B1 (en) * 2007-10-09 2018-12-05 Samsung Electronics Co., Ltd. Apparatus and method for generating mac pdu in a mobile communication system
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8635360B2 (en) * 2007-10-19 2014-01-21 Google Inc. Media playback point seeking using data range requests
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
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
WO2009128642A2 (en) 2008-04-14 2009-10-22 Lg Electronics Inc. Method and apparatus for performing random access procedures
WO2009127961A1 (en) * 2008-04-16 2009-10-22 Nokia Corporation Decoding order recovery in session multiplexing
US8855199B2 (en) * 2008-04-21 2014-10-07 Nokia Corporation Method and device for video coding and decoding
EP2272191A4 (en) * 2008-04-28 2014-11-26 Apple Inc METHOD AND DEVICE FOR PRODUCING CANDIDATE LISTS FOR A UPLINK V-MIMO SYSTEM
KR101367886B1 (ko) 2008-05-07 2014-02-26 디지털 파운튼, 인크. 브로드캐스트 채널 상에서의 고속 채널 재핑 및 고품질 스트리밍 보호
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
US8737421B2 (en) 2008-09-04 2014-05-27 Apple Inc. MAC packet data unit construction for wireless systems
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
US20100169458A1 (en) 2008-12-31 2010-07-01 David Biderman Real-Time or Near Real-Time Streaming
US8743906B2 (en) 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
JP5877065B2 (ja) 2009-01-26 2016-03-02 トムソン ライセンシングThomson Licensing ビデオ符号化のためのフレーム・パッキング
EP2392144A1 (en) 2009-01-29 2011-12-07 Dolby Laboratories Licensing Corporation Methods and devices for sub-sampling and interleaving multiple images, eg stereoscopic
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
US8909806B2 (en) 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations
CN102804785A (zh) 2009-04-13 2012-11-28 瑞尔D股份有限公司 编码、解码和发布增强分辨率的立体视频
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
US20120151302A1 (en) 2010-12-10 2012-06-14 Qualcomm Incorporated Broadcast multimedia storage and access using page maps when asymmetric memory is used
US9288010B2 (en) * 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9438861B2 (en) * 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
BR112012011581A2 (pt) 2009-11-04 2017-09-19 Huawei Tech Co Ltd sistema e método para streaming de conteúdo de mídia
KR101786051B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
KR101786050B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
CN101729857A (zh) 2009-11-24 2010-06-09 中兴通讯股份有限公司 一种接入视频服务的方法及视频播放系统
EP2510669A4 (en) 2009-12-11 2013-09-18 Nokia Corp DEVICE AND METHODS FOR DESCRIBING SYNCHRONIZATION REPRESENTATIONS IN CONTINUOUSLY TRANSMITTED MULTIMEDIA FILES
JP5824465B2 (ja) 2010-02-19 2015-11-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Httpストリーミングにおける適応のための方法と装置
US9185153B2 (en) 2010-02-19 2015-11-10 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for representation switching in HTTP streaming
JP5071495B2 (ja) 2010-03-04 2012-11-14 ウシオ電機株式会社 光源装置
KR101202196B1 (ko) * 2010-03-11 2012-11-20 한국전자통신연구원 Mimo 시스템에서 데이터를 송수신하는 방법 및 장치
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
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US9596447B2 (en) * 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
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
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US20120208580A1 (en) 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery

Also Published As

Publication number Publication date
CN103124182A (zh) 2013-05-29
US7418651B2 (en) 2008-08-26
US20090031199A1 (en) 2009-01-29
CN101019326B (zh) 2013-02-27
US9136878B2 (en) 2015-09-15
JP5485302B2 (ja) 2014-05-07
KR101205758B1 (ko) 2012-12-03
JP2012114929A (ja) 2012-06-14
US20050257106A1 (en) 2005-11-17
US20130067295A1 (en) 2013-03-14
KR20070008520A (ko) 2007-01-17
EP2202888A1 (en) 2010-06-30
US9236887B2 (en) 2016-01-12
WO2005112250A2 (en) 2005-11-24
CN103124182B (zh) 2017-05-10
KR20110122226A (ko) 2011-11-09
EP1743431A2 (en) 2007-01-17
CN101019326A (zh) 2007-08-15
EP1743431A4 (en) 2007-05-02
JP4971144B2 (ja) 2012-07-11
WO2005112250A3 (en) 2006-10-26
JP2007536834A (ja) 2007-12-13

Similar Documents

Publication Publication Date Title
KR101161193B1 (ko) 파일 다운로드 및 스트리밍 시스템
US9270414B2 (en) Multiple-field based code generator and decoder for communications systems
US7721184B2 (en) Method and apparatus for fast encoding of data symbols according to half-weight codes
US9236976B2 (en) Multi stage code generator and decoder for communication systems
EP2290826B1 (en) Lost packet recovery method for packet transmission protocols

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 8