KR101161193B1 - 파일 다운로드 및 스트리밍 시스템 - Google Patents
파일 다운로드 및 스트리밍 시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/32—Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0065—Serial concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/02—Amplitude-modulated carrier systems, e.g. using on-off keying; Single sideband or vestigial sideband modulation
- H04L27/06—Demodulator circuits; Receiver circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single 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이라는 명칭으로 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, N 및 A)을 구비할 수 있다. 파라미터들(T 및 Z)은 16 비트의 무부호 정수들(unsigned integers)이고, N 및 A는 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 | 등-길이 비트 스트링들(X 및 Y)에 대해, X와 Y에 대한 비트식의 배타적-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, Z 및 N)과 함수 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, Z 및 N)의 유도를 위한 권장 사항들을 제공한다. 이러한 권장 사항은 다음의 입력 파라미터들에 기초한다.
F 바이트 단위의 파일 사이즈
W 바이트 단위의 서브-블록 사이즈에 대한 목표치
P A의 배수인 것으로 가정되는, 바이트 단위의 최대 패킷 페이로드 사이즈
A 바이트 단위의 심볼 정렬 팩터
K MAX 매 소스 블록당 소스 심볼들의 최대 수
K MIN 매 소스 블록당 심볼들의 수에 대한 최소 목표치
G MAX 매 패킷당 심볼들의 최대 목표 수
상기 입력들에 기초해, 전송 파라미터들(T, Z 및 N)은 다음과 같이 계산된다.
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}
앞서 유도된 G 및 N의 값들은 하한들로서 간주되어야 한다. 이 값들을, 예를 들어, 2의 가장 근접한 거듭제곱으로 증가시키는 것이 바람직할 수도 있다. 특히, 상기 알고리즘은, 심볼 사이즈 T가 최대 패킷 사이즈 P를 분할한다는 것을 보장하지 않으므로, 정확히 P 사이즈의 패킷들을 사용하는 것이 불가능할 수도 있다. 대신에, G가 P/A를 분할하는 값으로 선택되면, 심볼 사이즈 T는 P의 약수일 것이고 사이즈 P의 패킷들이 사용될 수 있다.
입력 파라미터들(W, A, K MIN 및 G MAX)을 위한 권고 설정들은 다음과 같다.
W = 256KB A = 4 K MIN = 1024 G MAX= 10
B.3.4.2 일례들
상기 알고리즘은, W, A, K MIN 및 G 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의 실제 값에 대한 안내로서 간주되어야 한다. T가 P로 분할된다는 것을 보장하는 것이 유리할 수 있거나, (소스 블록에서의 소스 심볼들의 최대 수가 K MAX를 초과하지만 않는다면) 완전 사이즈 복구 심볼들이 손실된 소스 패킷들의 끝에서 부분적인 소스 심볼들을 복원하는데 사용될 경우의 낭비를 최소화하기 위해 T의 값을 더 작게 설정하는 것이 유리할 수도 있다. 또한, T의 선택은 소스 패킷 사이즈 분포에 의존할 수 있는데, 예를 들어, 모든 소스 패킷들이 동일한 사이즈라면, T의 배수인 복구 패킷의 실제 페이로드 사이즈 P'을, 각각의 소스 패킷이 소스 블록에서 차지하는 바이트 수와 동일하도록(또는 그보다 몇 바이트들이 많도록), T를 선택하는 것이 바람직하다.
입력 파라미터들(A, K MIN 및 G MAX)을 위해 권장되는 설정들은 다음과 같다.
A = 4 K MIN = 1024 G MAX = 10
B.4.4.2 일례들
상기 알고리즘은, A, K MIN 및 G 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 심볼들을 구비한다. S 및 H의 값들은 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]의 값들인 것으로 정의된다.
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개 출력 심볼들을 발생시키는 코드를 위한 발생기 행렬 G는 GF(2)에 관한 NxK 행렬인데, 각 로우는 출력 심볼들 중 하나에 대응되고 각 컬럼은 입력 심볼들 중 하나에 대응되며, 여기에서, i번째 출력 심볼은, 컬럼이 로우 i에 0이 아닌 엔트리를 포함하는 입력 심볼들의 합과 같다.
그에 따라, L개의 중간 심볼들이 다음과 같이 계산될 수 있다.
C는 L개 중간 심볼들(C[0], C[1], ..., C[L-1])의 컬럼 벡터를 지시한다고 한다.
D는 K개 소스 심볼들(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 H는 H x H 단위 행렬이라고 한다.
0 SxH는 S 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 LDPC|I S|Z SxH와 같다.
A의 후속의 H개 로우들은 G Half|I 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간의 정수이다.
인코딩 심볼 발생기는, 다음의 알고리즘에 따라, 단일 인코딩 심볼을 출력으로서 발생시킨다.
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)이다.
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에서 설명된 소스 심볼 트리플들은, 각각의 소스 심볼을 제공하기 위해 가산되는 중간 심볼들의 수 및 세트를 지시한다.
N ≥ K가 소스 블록을 위해 수신되는 인코딩 심볼들의 수라고 하고, M = S+H+N이라고 한다. 다음의 M x L 비트 행렬 A는 디코딩될 소스 블록을 위해 디코더로 전달되는 정보로부터 유도될 수 있다. C는 L개 중간 심볼들의 컬럼 벡터라고 하고, D는 수신자에게 공지되어 있는 값들을 가진 M개 심볼들의 컬럼 벡터라고 하면, 여기에서, M개 심볼들 중 처음의 S+H개 심볼들은 LDPC 및 Half 심볼들에 대응되는 0-값의 심볼들(이들은 LDPC 및 Half 심볼들 자체가 아니라 LDPC 및 Half 심볼들을 위한 점검 심볼들이다)이고, M개 심볼들 중 나머지 N개 심볼들은 소스 블록을 위해 수신된 인코딩 심볼들이다. 그에 따라, A는 AㆍC = D를 충족시키는 비트 행렬인데, 여기에서, ㆍ는 GF[2]에 대한 행렬 곱을 지시한다. 특히, 인덱스 j에 대응되는 중간 심볼들이 LDPC, Half 또는 인코딩에서의 인덱스 i에 대응되는 인코딩 심볼로 배타적-OR되거나, 인덱스 i가 LDPC 또는 Half 심볼에 대응되고 인덱스 j가 동일한 LDPC 또는 Half 심볼에 대응되면, A[i,j] =1이다. 다른 i 및 j 모두에 대해, A[i,j] = 0이다.
소스 블록 디코딩은 공지의 A 및 D로부터 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개 로우들의 파기 이후에 A는 L 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일 때, 즉, V 및 V 상부의 모두 0들의 부행렬(all zeroes submatrix)이 사라지고, A가 I, 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개 로우들은 파기된다. 이 페이즈 이후에, A는 L개의 로우들 및 L개의 컬럼들을 가진다.
B.6.2.4 제 3 페이즈
제 2 페이즈 이후에, A를 L 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개 컬럼들을 제로화한다.
이 페이즈 이후에, A는 L 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 값들을 위한 시스테메틱 인덱스들의 리스트이다. 값들의 순서는 판독 순서, 즉, 첫번째 라인의 첫번째 숫자에서 첫번째 라인의 마지막 숫자를 거쳐, 두번째 라인의 첫번째 숫자가 수반되는 식이다.
Appendix B.1 테이블 V
0
를 위한 값들
이 값들은 섹션 B.5.4.1의 상기 애플리케이션에서 설명된 테이블 V0를 위한 값들의 예시적 세트를 표현한다. 각각의 엔트리는 10진수 표현의 32-비트 정수이다. 값들의 순서는 제 1 컬럼의 상단에서 제 1 컬럼의 하단을 거쳐, 제 2 컬럼의 상단이 수반되는 식이다.
Appendix B.2 테이블
V
1
을 위한 값들
이 값들은 섹션 B.5.4.1의 상기 애플리케이션에서 설명된 테이블 V1을 위한 값들의 예시적 세트를 표현한다. 각각의 엔트리는 10진수 표현의 32-비트 정수이다. 값들의 순서는 제 1 컬럼의 상단에서 제 1 컬럼의 하단을 거쳐, 제 2 컬럼의 상단이 수반되는 식이다.
Claims (15)
- 통신 채널을 통해 소스로부터 목적지로 전송하기 위한 데이터를 인코딩하는 방법으로서,상기 전송하기 위한 데이터는 입력 심볼들의 순서화된 세트에 의해 나타내질 수 있고,상기 데이터 인코딩 방법은,상기 입력 심볼들의 순서화된 세트로부터 복수개의 리던던트 (redundant) 심볼들을 발생시키는 단계로서, 상기 복수개의 리던던트 심볼들 중 각각의 리던던트 심볼은 상기 입력 심볼들의 순서화된 세트 중 하나 이상의 입력 심볼들을 이용하여 산출되는, 상기 복수개의 리던던트 심볼들을 발생시키는 단계; 및상기 입력 심볼들과 상기 리던던트 심볼들을 포함하는 심볼들의 조합 세트로부터 복수개의 출력 심볼들을 발생시키는 단계로서, 가능한 출력 심볼들의 수는 상기 심볼들의 조합 세트에서의 심볼들의 수보다 훨씬 크며, 상기 심볼들의 조합 세트에서의 하나 보다는 많지만 전부는 아닌 심볼들로부터 하나 이상의 출력 심볼이 발생되는, 상기 복수개의 출력 심볼들을 발생시키는 단계를 포함하고,상기 복수개의 리던던트 심볼들의 발생은, 리던던트 심볼들 간의 낮은 공통의 멤버쉽을 보장하는 결정적 프로세스 (deterministic process) 를 이용하여 실시되며,2개의 리던던트 심볼들 간의 공통의 멤버쉽은 리던던트 심볼들 둘다가 의존하는 입력 심볼들의 세트이며, 리던던트 심볼들 둘다가 의존하는 입력 심볼들의 수가 상기 결정적 프로세스에 의해 주어지는 임계치 미만일 경우에 2개의 리던던트 심볼들 간의 낮은 공통의 멤버쉽이 존재하고,각각의 입력 심볼에 대해, 상기 입력 심볼에 의존하는 리던던트 심볼들의 미리정해진 수가 있는, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 복수개의 출력 심볼들을 상기 통신 채널을 통해 전송하는 단계를 더 포함하는, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 복수개의 출력 심볼들을 저장 매체에 저장하는 단계를 더 포함하는, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 복수개의 리던던트 심볼들은 LDPC (Low Density Parity Check) 코드에 따라 발생되는, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 출력 심볼들은, 상기 입력 심볼들의 순서화된 세트가 임의의 미리정해진 수 (N개) 의 출력 심볼들로부터 재생될 수 있도록, 존재하며,N은 입력 심볼들의 수보다 약간 더 큰, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 출력 심볼들은, 상기 입력 심볼들의 순서화된 세트가 N개의 출력 심볼들로부터 재생될 수 있는 미리정해진 확률이 있도록, 존재하며,N은 적어도 입력 심볼들의 수만큼 큰, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 출력 심볼들은, 상기 입력 심볼들의 순서화된 세트의 G개가 출력 심볼들의 K개로부터 재생될 수 있도록, 존재하며,K는 입력 심볼들의 수이며, G는 K 보다 작은, 데이터 인코딩 방법.
- 제 1 항에 있어서,최대 G개의 입력 심볼들이 임의 갯수의 출력 심볼들로부터 재생될 수 있고,상기 G는 상기 입력 심볼들의 순서화된 세트에서의 입력 심볼들의 수보다 작은, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 복수개의 리던던트 심볼들을 발생시키는 단계는, 각각의 리던던트 심볼에 대해,분배에 따라 t개의 상이한 입력 심볼들을 결정하는 단계; 및상기 t개의 상이한 입력 심볼들의 XOR로서 각각의 리던던트 심볼을 계산하는 단계를 포함하는, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 복수개의 출력 심볼들을 통신 채널을 통해 전송하는 단계를 더 포함하고,상기 복수개의 출력 심볼들을 발생시키는 단계는 상기 복수개의 출력 심볼들을 전송하는 단계와 실질적으로 동시에 수행되는, 데이터 인코딩 방법.
- 제 1 항에 있어서,상기 복수개의 리던던트 심볼들은 정적 심볼들, 해밍 심볼들 및 패딩 심볼들을 포함하고,상기 심볼들의 수의 합은 소수(prime number)가 되도록 선택되는, 데이터 인코딩 방법.
- 제 1 항에 있어서,임의의 2개의 상이한 리던던트 심볼들에 대해, 이들 2개의 상이한 리던던트 심볼들 각각이 의존하는 입력 심볼들의 세트들이 최대 6개의 입력 심볼들을 공통으로 갖도록, 미리정의된 상기 임계치는 6 인, 데이터 인코딩 방법.
- 제 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개) 의 리던던트 심볼들로서 출력하는 단계를 포함하는, 데이터 인코딩 방법.
- 제 13 항에 있어서,S는, S ≥ ceil(0.01?K)+X 인 최소의 소수 정수이며,X는, X?(X-1) ≥ 2?K 인 최소 양의 정수인, 데이터 인코딩 방법.
- 제 1 항에 있어서,각각의 입력 심볼에 대해, 상기 입력 심볼에 의존하는 리던던트 심볼들의 상기 미리정해진 수가 3인, 데이터 인코딩 방법.
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)
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)
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 |
-
2005
- 2005-05-09 EP EP05747947A patent/EP1743431A4/en not_active Withdrawn
- 2005-05-09 CN CN201310014760.3A patent/CN103124182B/zh active Active
- 2005-05-09 KR KR1020117024580A patent/KR101205758B1/ko active IP Right Grant
- 2005-05-09 EP EP10002379A patent/EP2202888A1/en not_active Ceased
- 2005-05-09 KR KR1020067009106A patent/KR101161193B1/ko active IP Right Grant
- 2005-05-09 CN CN2005800010267A patent/CN101019326B/zh active Active
- 2005-05-09 JP JP2007511719A patent/JP4971144B2/ja active Active
- 2005-05-09 US US11/125,818 patent/US7418651B2/en active Active
- 2005-05-09 WO PCT/US2005/016334 patent/WO2005112250A2/en active Application Filing
-
2008
- 2008-08-25 US US12/197,993 patent/US9136878B2/en active Active
-
2012
- 2012-01-05 JP JP2012000796A patent/JP5485302B2/ja active Active
- 2012-02-29 US US13/408,944 patent/US9236887B2/en active Active
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 |