KR20010089278A - 패킷 전송 프로토콜용의 손상된 패킷을 복구하는 방법 - Google Patents

패킷 전송 프로토콜용의 손상된 패킷을 복구하는 방법 Download PDF

Info

Publication number
KR20010089278A
KR20010089278A KR1020017003774A KR20017003774A KR20010089278A KR 20010089278 A KR20010089278 A KR 20010089278A KR 1020017003774 A KR1020017003774 A KR 1020017003774A KR 20017003774 A KR20017003774 A KR 20017003774A KR 20010089278 A KR20010089278 A KR 20010089278A
Authority
KR
South Korea
Prior art keywords
output
symbol
input
symbols
key
Prior art date
Application number
KR1020017003774A
Other languages
English (en)
Other versions
KR100598662B1 (ko
Inventor
루비마이클지
Original Assignee
추후보정
디지털 파운튼
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 추후보정, 디지털 파운튼 filed Critical 추후보정
Publication of KR20010089278A publication Critical patent/KR20010089278A/ko
Application granted granted Critical
Publication of KR100598662B1 publication Critical patent/KR100598662B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1836Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with heterogeneous network architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Circuits Of Receivers In General (AREA)
  • Communication Control (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Detection And Correction Of Errors (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

손상된 전송 패킷은 패리티 기호를 사용하여 복구되고 있다. 엔코더는 데이터의 입력 파일을 사용하고, 키 I는 예를 들어 전체 전송 패킷을 구성할 수 있는 출력 기호를 제공하기 위해 상기 입력 파일 내의 입력 기호의 수보다 많은 키 알파벳으로부터 선택된다. 키 I를 갖는 출력 기호는, 발생될 출력 기호에 대해 중량 W(I)를 결정하고, 키 I의 함수에 따라 상기 출력 기호와 결합된 출력 기호의 수 W(I)를 선택하며, 입력 기호를 블록으로 분류함이 없이 소거가 복구될 수 있도록 선택된 W(I) 입력 기호의 소정의 함수 값 F(I)로부터 출력 기호 값 B(I)를 발생시키는 것에 의해 생성된다. 엔코더는 다중 출력 기호를 생성하기 위해 반복적으로 호출될 수 있다. 출력 기호는 일반적으로 서로 독립적이고, 필요한 경우에는 한정되지 않은 수(I의 해상도를 받아야 함)가 발생될 수 있다. 디코더는 발생된 출력 기호 중의 일부 또는 모든 출력 기호를 수신한다. 입력 파일을 복호하는데 필요한 출력 기호의 수는, 입력 기호 및 출력 기호가 동일한 데이터 비트 수를 표시하는 것으로 가정하면, 그 입력 파일을 포함하는 입력 기호의 수와 동일하거나 또는 다소 크게 된다.

Description

패킷 전송 프로토콜용의 손상된 패킷을 복구하는 방법{LOST PACKET RECOVERY METHOD FOR PACKET TRANSMISSION PROTOCOLS}
통신 채널을 통해서 송신기와 수신기 간의 파일의 전송은 많은 연구 또는 학술 보고서의 주제가 되고 있다. 바람직하게, 수신기는 확신을 가지고 있는 일부 레벨로 송신기에 의해 채널을 통해서 전송된 데이터의 정확한 사본(copy)을 수신하는 것을 희망한다. 통신 채널이 물리적으로 실현 가능한 대부분의 모든 시스템을 커버하는 완전한 충실도를 가지고 있지 않은 경우에는, 전송시에 데이터가 손상되거나 또는 잘못 전달(誤傳)되는 것을 어떻게 처리할지의 여부가 주요 관심사가 되고 있다. 잘못 전달된 데이터가 오류 내에서 수신된 데이터인 경우, 수신기가 이러한 잘못 전달된 데이터를 항상 구별할 수 없기 때문에, 손상된 데이터(소거)는 종종 잘못 전달된 데이터(오류)의 경우보다 처리가 보다 용이하다. 소거("소거부호(erasure codes)"라고 칭함) 및/또는 오류["오류 정정 부호(error-correcting codes)" 또는 "ECC"]를 정정하기 위해서 많은 오류 정정 부호들이 개발되고 있다. 통상적으로, 사용되는 특정 부호는 데이터가 전송되고 이 데이터의 특성이 전송되는 채널의 인피델러티(infidelity)에 관한 일부의 정보에 기초하여 선택되고 있다. 예를 들어, 채널이 긴 기간의 인피델러티를 갖는 것으로 공지된 경우에는, 버스트 오류 부호가 그 적용을 위해서 가장 적합할 수 있다. 짧은 기간의 인피델러티인 경우, 때때로 이러한 오류는 간단한 패리티 부호가 가장 적합한 것으로 예상되고 있다.
통신 채널을 통한 다중 송신기 및/또는 다중 수신기간의 파일 전송도 많은 연구 또는 학술 보고서의 주제가 되고 있다. 통상적으로, 다중 송신기로부터의 파일 전송은 이 송신기로 하여금 중복된 노력을 최소화하기 위해서 상기 다중 송신기들 사이에서 조정이 필요하게 된다. 통상적인 다중 송신기 시스템에 있어서, 하나의 파일을 수신기로 송신하는 경우, 송신기에 의해 데이터를 전송하거나 전송중일 때 상기 다중 송신기들이 조정되지 않은 경우에는 파일의 세그먼트를 정확히 송신하지 않고서는 수신기가 많은 무익한 이중의 세그먼트를 수신할 가능성이 있다. 이와 유사하게, 서로 다른 수신기들이 서로 상이한 지점에서 송신기로부터의 전송을 정확히 결합하는 경우, 송신기로부터 송신된 데이터를 수신기에 의해 수신하는 모든 데이터들이 유용한 데이터임을 보장하도록 하는 것이 하나의 관심사가 되고 있다. 예를 들어, 송신기는 동일한 파일에 대한 데이터를 연속적으로 전송하는 것으로 가정한다. 송신기가 원래의 파일의 세그먼트를 정확히 송신하고 일부 세그먼트가 손상된 경우에는 파일 내의 각 세그먼트의 하나의 사본을 수신하기 전에 수신기가 많은 무익한 이중의 세그먼트를 수신할 가능성이 있다.
부호의 선택시에 다른 고려 사항으로는 전송을 위해 사용되는 프로토콜이다. "인터넷(Internet)"(이하, 머리글자로서 "I"라고 칭함)으로서 공지된 네트워크의 광역 인터넷워크(global Internetwork)의 경우, 패킷 프로토콜(packet Protocol)은 데이터 전송을 위해 사용되고 있다. 그 프로코콜은 인터넷 프로토콜(Internet Protocol) 또는 간단히 "IP"라고 칭한다. 데이터 파일 또는 데이터의 다른 블록이 IP 네트워크를 통해 전송되는 경우, 그것은 동일 크기의 입력 기호로 분할되고, 입력 기호는 연속적인 패킷 내에 배치된다. 패킷에 기초해서 존재하면, 패킷 지향식 부호화 체계가 적합할 수 있다. 입력 기호의 "크기"는 비트 내에서 측정될 수 있는데, 입력 기호가 존재하는지의 여부는 실제로 비트 스트림으로 분할되고, 입력 기호가 2M기호의 알파벳으로부터 선택될 때 M 비트의 크기를 갖는다.
전송 제어 프로토콜("TCP")은 수령 통지 메카니즘(acknowledgement mechanism)을 갖는 공통의 사용시에 포인트 투 포인트[point-to-point; 2 지점간 단말용 기구(PTP)] 패킷 제어 구조이다. TCP는 1 대 1 통신용으로 적합하고, 송신기 및 수신기의 양자는 전송이 발생될 때에 그 전송과 일치하여 수신되며, 송신기에 부합하여 수신기가 사용될 수 있다. 그러나, TCP는 종종 1 대 다중 통신 및 다중 대 다중 통신용으로는 적합하지 않으며, 또한 송신기 및 수신기는 이들이 데이터를 송신하거나 또는 수신할 때 및 데이터를 송신하거나 또는 수신하는 장소를 독립적으로 결정한다.
TCP를 사용하면, 송신기는 정열된 패킷을 송신하고, 수신기는 각 패킷의 수신을 통지한다. 패킷이 손상되면, 송신기로 어떠한 수령 통지도 송신할 수 없으며, 송신기는 패킷을 다시 송신할 수 있다. 패킷 손상은 소정의 번호를 갖는다. 인터넷 상에서, 그 용량에 도달하기 위해 노선(router) 내의 버퍼링 기구에서 산발성 밀집을 초래하기 때문에 패킷 손상이 종종 발생하며, 패킷의 입력을 중지시키게 된다. TCP/IP와 같은 프로토콜로서, 수령 통지의 결함에 응답하거나 또는 수신기로부터의 명백한 요구에 응답하여 손상된 패킷을 다시 송신할 수 있기 때문에, 상기 수령 통지의 활용예는 전체적인 고장이 없이 패킷만을 손상시킬 수 있다. 어느 하나의 방식으로도, 수령 통지 프로토콜은 수신기로부터 송신기로의 이면 채널(back channel)을 필요로 한다.
비록 수령 통지에 기초한 프로토콜이 일반적으로 다수의 용도로 적합하고, 또한 실제로 현재 인터넷을 통해서 폭넓게 사용되고 있을지라도, 이러한 프로토콜들은 비효율적이고, 때때로 특정의 응용 분야에 대해서는 완전하게 수행할 수 없는 경우가 있다. 특히, 수령 통지에 기초한 프로토콜은 높은 대기 시간, 높은 패킷 손상 비율, 비조정된 수신기 결합 및 분리 및/또는 과도한 비대칭적 대역폭에 따라서 네트워크 내에서의 실행 동작이 불량하다. 높은 대기 시간은 수령 통지가 수신기로부터 이동해서 송신기로 복귀하는 데에 긴 시간이 걸린다. 또한, 높은 대기 시간은 재전송이 과도하게 길기 전에 전체적인 시간 내에서 발생될 수 있다. 높은 패킷 손상 비율도 동일한 패킷의 다양한 재전송이 도달에 실패할 수 있는 문제를 초래할 수 있고, 최종적으로 하나 또는 최종적으로 몇 개의 불운한 패킷을 얻기 위해서 긴지연을 초래한다.
"비조정된 수신기 결합 및 분리"는 각 수신기가 자체적인 판단력에 의해 진행하는 전송 세션을 결합 및 분리할 수 있는 환경을 의미한다. 이러한 환경은 인터넷, "비디오 온 서비스(video on demand)"와 같은 차세대 서비스 및 장래의 네트워크 공급자에 의해 서비스 제공될 기타의 서비스에 대해서 통상적인 것이다. 통상의 시스템에 있어서, 만일 수신기가 송신기의 조정없이 진행하는 전송을 결합 및 분리하면, 수신기는 서로 상이한 수신기에 의해 감지된 서로 상이하게 폭넓게 손상된 패턴으로 다수의 패킷 손상을 감지할 수 있다.
비대칭적 대역폭은 수신기로부터 송신기로의 반전 데이터 경로(이면 채널)가 순방향 경로보다 이용 가능성이 적고 보다 고비용인 경우의 상황을 의미한다. 이러한 비대칭적 대역폭은 종종 패킷을 통지하기 위해서 수신기에 대해서 과도하게 지연되고 및/또는 비용이 많이 소요될 수 있으며, 때때로 수령 통지는 지연이 다시 나타날 수 있다.
또한, 수령 통지에 기초한 프로토콜은 하나의 송신기가 다중 사용자에게 파일을 동시에 전송하는 방송을 위해 일정 비율로 정해지지는 않는다. 예컨대, 송신기는 위성 채널을 통해 다중 수신기로 파일을 전송하는 것을 가정한다. 파일의 확실한 전송을 위해 수령 통지 데이터(양 또는 음의 값 중 하나)에 의존하는 프로토콜은 각 수신기로부터 송신기로의 이면 채널을 필요로 하고, 이것은 설치를 위해 엄청난 비용이 소용될 수 있다. 또한, 이것은 수신기에서 송신되는 수령 통지의 모든 데이터를 적절히 처리할 수 있는 복잡하고 강력한 송신기를 필요로 한다. 서로다른 수신기가 상이한 세트의 패킷을 손상시키면, 다른 수신기에 의해서 무익한 이중 패킷의 수신을 초래하는 소수의 수신기에 의해서만 패킷의 전송을 누락시키는 다른 결점도 있다. 수령 통지에 기초한 통신 시스템 내에서 적절히 처리할 수 없는 또 다른 상황은 수신기가 비동기적으로 세션의 수신을 개시할 수 있는 경우, 즉 수신기가 전송 세션의 중간부에서 데이터의 수신을 개시할 수 있는 경우이다.
다수의 복잡한 설계에 있어서는 다중 방송 및 방송용 TCP/IP와 같은 수령 통지에 기초한 설계의 성능을 향상시키는 것이 제안되고 있다. 그러나, 각종의 이유에 의해서, 현 시점에서 명확하게 채택되고 있는 설계는 아무것도 없다. 일 예로서, 수령 통지에 기초한 프로토콜은 하나의 수신기가 저지구 주회 궤도("LEO")의 위성 통신 네트워크와 같은 다중 송신기로부터 정보를 얻는 경우에 일정한 비율에 따라 정해지지는 않는다. LEO 네트워크에 있어서, LEO 위성은 그 궤도로 인하여 상공을 신속하게 통과하여, 수신기가 짧은 시간 동안 임의의 특정 위성으로부터 보이는 곳에서만 존재하게 된다. 이에 적합한 네트워크를 구성하기 위해서, LEO 네트워크는 많은 위성을 포함하고, 수신기는 하나의 위성이 지평선 아래로 진행하고 다른 위성이 지평선 위로 상승함에 따라서 위성들 사이에서 간섭되지 않는다. 수령 통지에 기초한 프로토콜이 신뢰성을 확보하기 위해서 사용되는 경우, 복잡한 핸드 오프(hand-off) 프로토콜은 수신기가 하나의 위성으로부터 패킷을 수신하여 다른 위성으로 그 패킷의 수신을 통지함으로서 적합한 위성으로 복귀하는 수령 통지를 조정하기 위해서 필요할 수 있다.
수령 통지에 기초한 프로토콜에 대한 대체 방법으로서 실제로 종종 사용되는것은 캐루젤(carousel)에 기초한 프로토콜이 사용되고 있다. 캐루젤 프로토콜은 입력 파일을 동일한 길이의 입력 기호로 분할하고, 각 입력 기호를 패킷 내에 배치하며, 모든 패킷을 통해 연속적으로 순환해서 전송한다. 이 캐루젤 프로토콜에 있어서는 수신기가 하나의 패킷이라도 누락되면, 수신기는 이 누락된 패킷을 수신할 기회를 갖기 전에 전체적인 다른 사이클을 대기해야만 하는 주요한 단점이 있다. 다른 대체 방법에 있어서는 캐루젤에 기초한 프로토콜이 많은 양의 무익한 이중 데이터의 수신을 초래할 수 있다. 예컨대, 수신기가 캐루젤의 개시 시점에서 패킷을 수신하면, 잠시동안 수신을 정지시키고, 캐루젤의 개시 시점에서 다시 패킷의 수신을 시작하여, 다수의 무익한 이중의 패킷을 수신한다.
전술한 문제들을 해결하기 위해서 제안되고 있는 한 가지 해결 방법으로는 수령 통지에 기초한 프로토콜의 사용을 방지하고, 그 대신에 리드 솔로몬 부호(Reed-Solomon Code)와 같은 소거 부호를 사용하여, 신뢰성을 증가시키는 방법이 있다. 각종 소거 부호의 하나의 특성은 파일이 수신기에 대해 패킷으로 송신되는 입력 기호로 분할될 때, 일반적으로 패킷이 도달되는 것과 무관하게 충분히 많은 패킷이 수신되면 수신기로 하여금 전체적인 파일을 재구성하도록 복호화할 수 있도록 하는 것이다. 이와 같은 특성은 패킷이 손상되더라도 파일을 복구할 수 있기 때문에, 패킷 레벨에서 수령 통지를 위한 필요성을 제거한다. 그러나, 많은 소거 부호에 의한 해결 방법은 수령 통지에 기초한 프로토콜의 문제를 해결할 수 없거나 또는 새로운 문제를 일으킬 수 있다.
많은 소거 부호에 있어서의 하나의 문제점으로는 동작을 위해 과도한 전력소비 및 메모리를 필요로 한다. 소비 전력의 사용에 다소 효율적이고 메모리가 토네이도 부호화(tornado coding) 체계인 통신 용도로서 하나의 부호화 체계가 최근 개발되고 있다. 토네이도 부호는 입력 파일이 K 입력 기호로 표시되고 N 출력 기호(여기서, N의 값은 부호화 처리를 개시하기 전에 고정된다)를 결정하기 위해 사용되는 리드 솔로몬 부호와 유사하다. 토네이도 부호에 의한 부호화는 N 토네이도 출력 기호를 생성하는데 필요한 산술 연산의 평균 횟수가 N 배(어셈블리 부호 연산의 10과 거의 비슷하여 N 배)에 비례하고 전체 파일을 복호하는데 필요한 산술 연산의 전체 횟수도 N 배에 비례함으로써 리드 솔로몬 부호에 의해 부호화하는 것 보다도 일반적으로 더 빠르다.
토네이도 부호는 리드 솔로몬 부호를 능가하여 속도면에서 이점이 있지만, 여거 가지의 단점도 있다. 먼저, 출력 기호(N)의 수는 부호화 처리에 앞서 결정되어야 한다. 이것은 패킷의 손실 비율이 과대 평가되면 비능률적이 되고, 패킷의 손실 비율이 과소 평가되면 고장을 일으킬 수 있다. 이것은 토네이도 디코더가 복호화하여 원래의 파일을 복원하기 위해서 특정 수의 출력 기호[특히, K + A 패킷(여기서, A는 K보다 작다)]를 필요로 하기 때문이며, 만일 손실된 패킷의 수가 N - (K + A)보다 크면 원래의 파일은 복원될 수 없게 된다. 이러한 제한은 N이 적어도 실제의 패킷 손실에 의해 K + A보다 크게 선택되기만 하면 많은 통신 문제점들에 대해서 일반적으로 수용 가능하지만, 이것은 패킷 손실의 사전 추정을 필요로 한다.
토네이도 부호에 있어서는 그래프 구조 상의 일부의 방식으로 일치시키기 위해서 엔코더 및 디코더를 필요로 하는 또 다른 단점이 있다. 토네이도 부호는 이그래프가 구성되는 디코더에서 사전 처리단을 필요로 하고, 그 처리는 실질적으로 복호화를 지연시킨다. 또한, 사용되는 각 파일 크기에 대해 새로운 그래프가 생성될 필요가 있도록 파일 크기에 대해 그래프가 특정된다. 또, 토네이도 부호에 의해 필요하게 되는 그래프는 구성하는 데에 복잡하고, 최상의 성능을 얻기 위해서 서로 상이한 크기의 파일에 대한 매개 변수의 상이한 통상의 설정이 필요하다. 이들 그래프는 상당한 크기이고, 송신기 및 수신기의 양자 모두에서 데이터를 저장하기 위해 대용량의 메모리를 필요로 한다.
또한, 토네이도 부호는 고정된 그래프 및 입력 파일에 대하여 동일한 출력 기호 값을 정확히 발생시킨다. 이들 출력 기호는 K의 원래의 입력 기호와 N - K의 용장성 기호로 구성된다. 또, N은 1.5 또는 2 배의 K와 같이 K의 최소 배수인 경우에만 실시될 수 있다. 따라서, 하나 이상의 송신기로부터 동일한 그래프를 사용하는 동일한 입력 파일로부터 생성된 출력 기호를 얻는 수신기가 다수의 무익한 이중 출력 기호를 수신할 가능성이 매우 크다. 이와 같은 가능성의 이유는, N 출력 기호가 시간에 앞서 고정되고, 그 기호가 송신되는 각 시간에 맞추어 각 송신기로부터 동일한 N 출력 기호가 송신되며, 동일한 N 출력 기호가 수신기에 의해 수신되기 때문이다. 예컨대, N = 1500, K = 1000을 가정하면, 수신기는 위성이 지평선 상에서 급강하하기 전에 하나의 위성으로부터 900 개의 기호를 수신한다. 위성이 조정되지 않고 정확히 동기되지 않으면, 다음 위성으로부터 수신기에 의해 수신된 토네이도 부호 기호는 다음 위성이 동일한 N 기호를 송신하기 때문에 부가되지 않을 수 있고, 상기 N 기호는 입력 파일을 복구하는데 필요한 100 개의 새로운 기호를 수신하기 전에 이미 수신된 900 개의 기호의 대부분의 사본을 수신기 내에서 수신할 가능성이 있다.
따라서, 송신기 또는 수신기에서 실행을 위해 과도한 소비 전력 또는 메모리를 필요로 하지 않는 간단한 소거 부호의 필요성이 제기되고 있고, 본 발명에 의하면 송신기와 수신기 사이에서 반드시 조정을 필요로 하지 않고 하나 이상의 송신기 및/또는 하나 이상의 수신기를 갖는 시스템 내에서 파일을 효율적으로 분배하는 데에 사용될 수 있다.
본 발명은 통신 시스템에서 데이터를 부호화(encoding) 및 복호화(decoding)하는 방법에 관한 것으로, 보다 구체적으로는 통신 데이터의 오류(errors) 및 간극(gaps)을 고려하여 데이터를 부호화 및 복호화하여 하나 이상의 데이터 공급원(source)으로부터 송출되는 통신 데이터를 효율적으로 이용하기 위한 통신 시스템에 관한 것이다.
도 1은 본 발명의 일 실시예에 따른 통신 시스템을 도시하는 블록도이다.
도 2는 도 1의 엔코더를 보다 상세히 도시하는 블록도이다.
도 3은 출력 기호가 관련된 입력 기호의 세트로부터 발생될 수 있는 방법을 예시하는 도면이다.
도 4는 도 1에 도시된 통신 시스템에 사용될 수 있는 기본 디코더의 블록도이다.
도 5는 또 다른 디코더의 블록도이다.
도 6은 출력 기호의 세트로부터 입력 기호를 복구하기 위해 도 5에 도시된 디코더와 같은 디코더에 의해 사용될 수 있는 처리 과정의 플로우챠트이다.
도 7은 수신된 출력 기호를 구성하기 위해 도 5에 도시된 수신 구조체와 같은 수신 구조체에 의해 사용될 수 있는 처리 과정의 플로우챠트이다.
도 8a는 수신된 출력 기호를 처리하기 위해 도 5에 도시된 복구 프로세서와 같은 복구 프로세서에 의해 사용될 수 있는 처리 과정의 플로우챠트이다.
도 8b 및 도 8c는 도 8a의 처리 과정의 변화 부분의 플로우챠트로서, 도 8b는 지연된 처리 과정을 포함한 복구 처리에서 실행되는 단계를 도시하며, 도 8c는 그 지연된 처리 과정을 도시하는 도면이다.
도 9는 도 2의 결합기를 보다 상세히 도시하는 블록도이다.
도 10은 입력 기호와 출력 기호와의 결합 관계를 신속하게 결정하기 위해 도 9에 도시된 결합기와 같은 결합기에 의해 사용될 수 있는 하나의 처리 과정의 플로우챠트이다.
도 11은 도 2의 중량 선택기를 보다 상세히 도시하는 블록도이다.
도 12는 소정의 출력 기호에 대한 중량을 결정하기 위해 도 11에 도시된 중량 선택기와 같은 중량 선택기에 의해 사용될 수 있는 처리 과정의 플로우챠트이다.
도 13은 특히 유효하지 않은 디코더에 대한 복호화 처리 과정의 플로우챠트이다.
도 14는 보다 유효한 디코더의 블록도이다.
도 15는 도 12 및 도 13을 참조하여 개시된 복호화 처리보다 효율적으로 복호화하기 위해 도 14의 디코더를 사용하여 실행될 수 있는 복호화 처리 과정의 플로우챠트이다.
도 16은 도 15의 복호화 처리를 위해 문서 및 수신된 출력 기호의 일예를 예시하는 도면이다.
도 17은 도 15에 도시된 복호화 처리 중에 디코더 테이블의 내용을 예시하는 도면이다.
도 18은 도 15에 도시된 복호화 처리 중에 사용될 수 있는 중량 선별 테이블의 내용을 예시하는 도면이다.
도 19는 도 15에 도시된 복호화 처리 중에 형성될 수 있는 실행 목록을 예시하는 도면이다.
도 20은 이상적인 분포를 위해 복구된 입력 기호의 수 대 복호화 가능한 세트의 크기를 나타내는 형태로 복구 처리의 진행 과정을 예시하는 도면이다.
도 21은 강한 중량 분포를 위해 복구된 입력 기호의 수 대 복호화 가능한 세트의 크기를 나타내는 형태로 복구 처리의 진행 과정을 예시하는 도면이다.
도 22는 이전의 도면에 예시된 엔코더 및 디코더를 사용하여 하나의 송신기와 하나의 수신기간의 포인트 투 포인트(point-to-point; 2 지점간 단말용 기구)통신 시스템을 예시하는 도면이다.
도 23은 이전의 도면에 예시된 엔코더 및 디코더를 사용하여 하나의 송신기와 다중 수신기(도면에는 하나의 수신기만 도시됨)간의 방송 통신 시스템을 예시하는 도면이다.
도 24는 하나의 수신기가 통상 독립된 다중 송신기로부터 출력 기호를 수신하는 본 발명의 일 실시예에 따른 통신 시스템을 예시하는 도면이다.
도 25는 하나의 수신기 및/또는 하나의 송신기만이 사용되는 경우보다 적은 시간 내에 입력 파일을 수신하기 위해서 가능한 독립된 다중 수신기가 통상 독립된 다중 송신기로부터 출력 기호를 수신하는 본 발명의 일 실시예에 따른 통신 시스템을 예시하는 도면이다.
부록 A는 중량 배분을 실행하기 위한 소스 부호 일람표를 나타내고 있다.
본 발명에 따른 통신 시스템의 일 실시예에 있어서, 데이터의 입력 파일을 이용하는 엔코더와, 출력 기호를 생성하는 키를 포함하고, 상기 입력 파일은 일력 알파벳으로부터 각각 선택되는 정렬된 복수 개의 입력 기호이며, 상기 키는 키 알파벳으로부터 선택되고, 출력 기호는 출력 알파벳으로부터 선택된다. 키 I를 갖는 출력 기호는 생성될 출력 기호에 대한 중량[W(I)](여기에서, 중량(W)은 복수 개의 키를 통해 적어도 2 개의 값들 사이에서 변화하는 양의 정수임)을 결정하고, I의 함수에 따라서 출력 기호와 관련된 입력 기호의 W(I)를 선택하며, 상기 선택된 W(I) 입력 기호의 소정의 값 함수[F(I)]로부터 출력 기호의 값[B(I)]을 생성함으로써 발생된다. 상기 엔코더는 한번 이상 호출될 수 있고, 다른 키를 갖는 각 시간 및 이러한 각 시간은 출력 기호를 제공한다. 출력 기호는 일반적으로 서로 독립적이고, 필요하면 한정되지 않은 번호(I의 해상도를 받아야 함)가 발생될 수 있다.
본 발명에 따른 디코더에 있어서, 수신기에 의해 수신된 출력 기호는 송신기로부터 송신된 출력 기호이고, 상기 송신기는 입력 파일의 부호화에 기초한 출력 기호를 발생시킨다. 출력 기호가 전송 중에 손실될 수 있기 때문에, 디코더는 송신된 출력 기호의 임의의 부분을 수신하는 경우에만 적절히 동작시킨다. 입력 파일을 복호하는데 필요한 출력 기호의 수는, 입력 기호 및 출력 기호가 동일한 데이터 비트 수를 표시하는 것으로 가정하면, 그 입력 파일을 포함하는 입력 기호의 수와 동일하거나 또는 다소 크게 된다.
본 발명에 따른 하나의 복호화 처리에 있어서, 각각의 수신된 출력 기호에 대해서는 1) 수신된 출력 기호의 키 I를 식별하는 단계; 2) 출력 기호에 대해 수신된 출력 기호 값 B(I)를 식별하는 단계; 3) 출력 기호의 중량 W(I)를 결정하는 단계; 4) 출력 기호와 관련된 입력 기호의 중량 W(I)에 대한 위치를 결정하는 단계; 5) 중량 W(I) 및 관련된 입력 기호의 위치를 따라서 출력 기호 테이블 내에 B(I)를 저장하는 단계에 의해 실행된다. 중량 1의 미사용된 많은 출력 기호가 존재하지 않을 때까지 이하의 처리를 반복해서 수행한다. 즉, 1) 1의 중량을 가지며 "써서 낡은(used up)" 출력 기호로서 표시되지 않은 각 저장된 출력 기호에 대해서, 키 I에 기초해서 출력 기호와 관련된 유일하게 잔류하는 복구되지 않는 입력 기호의 위치 J를 계산하고, 2) 그 출력 기호로부터 입력 기호 J에 대한 값을 계산하며, 3) 입력 기호 J를 갖는 관련된 출력 기호 테이블 내에서 출력 기호를 식별하고, 4) 입력 기호 J와 독립적이 되도록 식별된 출력 기호에 대한 값 B를 재계산하며, 5) 식별된 출력 기호의 중량을 1 씩 감소시키고, 6) 입력 기호 J를 복구하는 것으로서 표시하며 키 I를 갖는 출력 기호를 써서 낡은 것으로 표시하는 동작을 반복 수행한다. 이러한 처리 과정은 정렬된 세트의 입력 기호가 복구될 때까지, 즉 전체 입력 파일이 완전하게 복구될 때까지 반복해서 수행된다.
본 발명의 하나의 이점은, 송신기가 임의의 소정의 입력 파일에 대해 효율적으로 한정되지 않은 세트의 출력 기호를 송신할 수 있기 때문에, 수신기가 임의의 소정의 전송 지점에서 수신을 개시할 필요가 없고, 출력 기호의 세트 번호가 발생된 후에 송신기를 중지시킬 필요가 없는 이점이 있다. 그 대신에 수신기는 수신이 준비되었을 때, 그리고 수신을 할 수 있을 때마다 수신을 개시할 수 있고, 랜덤 패턴 내에서 패킷이 손실될 수 있으며, 수신된 대부분의 데이터가 "정보 부가" 데이터, 즉 이미 사용 가능한 정보가 이중 정보이기 보다 복구 처리에 도움을 주는 데이터인 양호한 가능성을 갖는 것이 정지된다. 독립적으로 발생된(종종 랜덤하게 관련되지 않은) 데이터 스트림이, 다중 소스 발생 및 수신이 가능하도록 다수의 이점이 유도되는 정보 부가 방법 내에서 부호화되는 사실에 의해 견고함 및 조정되지 않은 결합 및 분리를 소거한다.
본원 명세서에 개시된 본 발명의 추가의 특성 및 이점은 첨부된 도면을 참조하여 이하의 상세한 설명으로부터 보다 명확히 이해할 수 있을 것이다.
본원 명세서에 개시된 실시예에서는, "연쇄 반응 부호화(chain reaction coding)"로서 나타낸 부호화 체계(coding scheme)가 설명되어 있고, 이 설명에서 사용되는 각종 용어의 의미 및 범위의 설명에 의해 진행된다.
연쇄 반응 부호화에 의해, 출력 기호는 필요에 따라 입력 파일로부터 송신기에 의해 생성된다. 각 출력 기호는 다른 출력 기호가 생성되는 방법과 상관없이 생성될 수 있다. 임의의 시점에서, 송신기는 출력 기호를 생성하는 것을 중지시킬 수 있고, 송신기가 출력 기호를 생성하는 것을 중지시키거나 또는 그 생성을 다시 개시할 때 임의적으로 제한할 필요는 없다. 한번 생성되면, 각 패킷에 하나 이상의출력 기호가 포함됨에 따라서, 이들 출력 기호들이 각 패킷 내부에 배치되어, 그들 목적지로 송신될 수 있다.
본원 명세서에서 사용되는 바와 같이, "파일"이라고 하는 용어는 하나 이상의 소스에 저장되어, 하나의 유닛으로서 하나 이상의 목적지로 전달될 수 있는 임의의 데이터를 의미한다. 따라서, 문서, 이미지 및 파일 서버 또는 컴퓨터 기억 장치로부터의 파일은 전달될 수 있는 "파일"의 모든 예이다. 파일은 공지된 크기(하드 디스크 상에 저장된 1 메가바이트(MB) 이미지 등)일 수 있거나 또는 공지되지 않은 크기(스트리밍 소스의 출력으로부터 취할 수 있는 파일 등)일 수 있다. 어느 경우에도, 파일은 입력 기호의 시퀀스이고, 각 입력 기호는 파일의 위치 및 값을 가지고 있다.
전송은 파일을 전달하기 위해서 채널을 통해 하나 이상의 송신기로부터 하나 이상의 수신기로 데이터를 전송하는 처리이다. 하나의 송신기가 완전한 채널에 의해 임의의 수의 수신기에 접속되면, 그 수신된 데이터는 모든 데이터가 정확히 수신됨에 따라서 입력 파일의 정확한 사본이 될 수 있다. 여기에서, 가장 실질적인 채널에 대한 경우에 있을 때 그 채널을 완전하지 않은 것으로 가정하거나 또는 일부 시스템에 대한 경우에 있을 때 데이터가 하나 이상의 송신기로부터 전송되어 오는 것으로 가정한다. 많은 채널 결함 중에서, 관심이 되고 있는 2 가지 결함은 데이터 소거 및 데이터 불완전(데이터 소거의 특정 경우로서 취급될 수 있는 것)이다. 데이터 불완전은 수신기가 전송 종료 전에 데이터의 수신을 정지시키거나 또는 수신기가 데이터의 수신을 간헐적으로 정지시키고 다시 데이터의 수신을 개시하는것에 의해 일부의 데이터가 이미 통과되고 있을 때까지 수신기가 데이터의 수신을 개시하지 않는 경우에 발생한다. 불완전 데이터의 일례로서, 이동 위성 송신기가 입력 파일을 표시하는 데이터를 전송할 수 있고, 수신기가 도달 거리 내에 유지되기 전에 전송을 개시할 수 있다. 수신기가 도달 거리 내에 유지되면, 수신기가 위성 접시형 안테나를 재지향시킬 수 있는 지점(데이터를 수신할 수 없는 시간 동안)에서 도달 거리 이내로 이동된 다른 위성에 의해 전송되고 있는 동일 입력 파일과 관련된 데이터의 수신을 개시하기 위해서, 위성이 도달 거리 외부로 이동될 때까지 데이터를 수신할 수 있다. 이와 같은 설명으로부터 명백히 알 수 있는 바와 같이, 수신기가 전체 시간의 도달 거리 내에 있지만 수신기가 데이터 수신을 개시하는 지점까지의 모든 데이터가 채널 내에서 손실되는 경우와 같이 상기 수신기가 데이터 불완전함(및 수신기가 동일한 문제를 갖는 상태)을 처리할 수 있기 때문에, 데이터 불완전은 데이터 소거와 같은 특정의 경우이다. 또한, 통신 시스템 설계시에 알 수 있는 바와 같이, 검출 가능한 오류는 이 검출 가능한 오류를 갖는 모든 데이터 블록 또는 기호를 간단히 중지시키는 것에 의한 소거와 등가일 수 있다.
일부 통신 시스템에 있어서, 수신기는 다중 송신기에 의해 발생되거나 또는 다중 접속을 사용하는 하나의 송신기에 의해 발생된 데이터를 수신한다. 예를 들어, 다운로드의 속도를 증가시키기 위해서, 수신기는 동일한 파일과 관련된 데이터를 전송하기 위해 하나 이상의 송신기에 동시에 접속될 수 있다. 다른 예로서, 송신기에 접속하는 채널의 대역폭과 전체 전송 속도를 정합하기 위해 이들 하나 이상의 스트림에 수신기를 접속 가능하도록 다중 방송 전송, 다중 방송 데이터 스트림이 전송될 수 있다. 이와 같은 모든 경우에, 전송 속도가 서로 상이한른 스트림에 대해 크게 상이하고 손실이 있는 임의의 패턴이 존재하는 경우에도, 전송된 모든 데이터가 수신기와 독립적으로 사용되는, 즉 다중 소스 데이터가 스트림들 중에서 용장성이 없는 것을 보장하는 것이 고려되고 있다.
일반적으로, 전송은 송신기와 수신기를 접속하는 채널을 통해서 송신기로부터 수신기로 데이터를 이동시키는 동작이다. 채널은 실시간 채널일 수 있으며, 상기 채널은 데이터를 얻기 위해 송신기로부터 수신기로 데이터를 이동시기거나 또는 송신기로부터 수신기로의 이동중에 일부 데이터 또는 모든 데이터를 저장시킬 수 있다. 후자의 예는 디스크 기억 소자 또는 기타의 다른 기억 소자이다. 그 예로서, 데이터를 발생시키는 프로그램 또는 소자는 송신기를 경유해서 기억 소자로 데이터를 전송할 수 있다. 수신기는 기억 소자로부터 데이터를 판독하는 프로그램 또는 소자이다. 송신기가 데이터를 기억 소자 상에서 구하기 위해 사용되는 메카니즘, 상기 기억 소자 자체 및 수신기가 데이터를 기억 소자로부터 구하기 위해 사용되는 메카니즘은 채널로부터 공동으로 형성된다. 만일 이들 메카니즘 또는 기억 소자가 데이터를 손상시킬 가능성이 있다면, 채널 내에서 데이터 소거로서 처리될 수 있다.
송신기 및 수신기가 데이터 소거 채널에 의해 분리되면, 입력 파일의 정확한 사본을 전송할 수 없는 것이 바람직하지만, 그 대신에 소거의 복구에 도움을 주는 입력 파일로부터 생성된 데이터를 전송한다. 엔코더는 작업을 처리하는 회로, 소자, 모듈 또는 부호 세그먼트이다. 엔코더의 동작을 조사하는 한 가지 방법은 엔코더가 입력 기호로부터 출력 기호를 발생시키는 방법이고, 입력 기호 값의 시퀀스는 입력 파일을 나타낸다. 따라서, 각 입력 기호는 입력 파일 내의 위치 및 값을 가질 수 있다. 디코더는 입력 기호를 수신기에 의해 수신된 출력 기호로부터 재구성하는 회로, 소자, 모듈 또는 부호 세그먼트이다.
연쇄 반응 부호화는 입력 기호의 임의의 특정 형태로 제한하는 것은 아니지만, 입력 기호의 형태는 이 분야에 의해 종종 지시된다. 통상적으로, 입력 기호에 대한 값은 일부 양의 정수 M에 대한 2M기호의 알파벳으로부터 선택된다. 이 경우에, 입력 기호는 입력 파일로부터 M 비트의 데이터 시퀀스에 의해 표시될 수 있다. M의 값은 이 용도의 사용 및 채널에 기초하여 종종 결정된다. 예컨대, 패킷에 기초한 인터넷 채널에 대하여, 1024 바이트 크기(1 바이트는 8 비트)의 페이로드를 갖는 패킷이 적절할 수 있다. 이 예에서, 각 패킷은 하나의 출력 기호 및 8 바이트의 보조 정보를 포함하는 것을 가정하면, M = (1024 - 8)·8 또는 8128 비트의 입력 기호 크기가 적합할 수 있다. 다른 예에서, 일부 위성 시스템은 각 패킷의 페이로드가 188 바이트를 포함하는 MPEG 패킷 규격을 사용한다. 그 예에서, 각 패킷이 하나의 출력 기호 및 4 바이트의 보조 정보를 포함하는 것을 가정하면, M = (188 - 4)·8 또는 1472 비트의 입력 기호 크기가 적당할 수 있다. 연쇄 반응 부호화를 사용하는 다용도의 통신 시스템에 있어서, 입력 기호 크기(즉, M: 입력 기호에 의해 부호화된 비트 수를 나타냄)와 같은 특수 용도의 매개 변수는 그 용도에 따라 가변적으로 설정될 수 있다.
각 출력 기호는 일정한 값을 갖는다. 하나의 양호한 실시예에서는 이하에 설명하는 사항이 고려되고 있는데, 각 출력 기호는 "키"라고 칭하는 식별자를 가지고 있다. 바람직하게, 각 출력 기호의 키는 수신기가 하나의 출력 기호를 다른 출력 기호로부터 구별할 수 있도록 수신기에 의해 용이하게 결정할 수 있다. 바람직하게, 출력 기호의 키는 다른 모든 출력 기호의 키와는 상이하다. 또한, 수신된 출력 기호의 키를 결정하기 위해서, 가능한 적은 데이터가 수신기에 의한 수신 순서에 따라 전송시에 포함되는 것이 바람직하다.
간단한 형태의 키 입력(keying)에 있어서, 엔코더에 의해 발생된 연속 출력 기호에 대한 키의 시퀀스는 연속적인 정수의 시퀀스이다. 이 경우에, 각 키는 "시퀀스 번호"라고 칭한다. 각각의 전송 패킷 내에 하나의 출력 기호 값이 존재하는 경우에는, 시퀀스 번호가 패킷 내에 포함될 수 있다. 시퀀스 수가 최소 수의 바이트(예컨대, 4 바이트)와 통상 일치할 수 있기 때문에, 일부 시스템 내의 출력 기호 값에 따라 시퀀스 수가 포함되는 것이 경제적이다. 예를 들어, 1024 바이트의 UDP 인터넷 패킷을 각각 사용하여 시퀀스 수에 대한 각 패킷 내에 4 바이트를 할당하는 것은 0.4%의 작은 오버헤드에서만 발생한다.
다른 시스템에 있어서, 1 매 이상의 데이터로부터 키를 형성하는 것이 바람직하다. 예컨대, 하나 이상의 송신기로부터의 동일 입력 파일에서 발생된 하나 이상의 데이터 스트림을 수신하는 수신기를 포함하는 시스템이 고려되고, 전송된 데이터는 하나의 출력 기호를 각각 포함하는 패킷의 스트림이다. 이와 같은 모든 스트림이 동일한 세트의 시퀀스 번호를 키로서 사용하면, 수신기가 동일한 시퀀스 번호를 가진 출력 기호를 수신할 가능성이 있다. 동일한 키를 갖는 출력 기호 또는동일한 시퀀스 번호를 갖는 경우에 있어서 입력 파일에 대한 동일한 정보를 포함하기 때문에, 수신기에 의해 이중의 데이터의 무익한 수신을 초래하게 된다. 따라서, 그와 같은 상황에서, 키의 내부에는 시퀀스 번호로 쌍을 이루는 유일한 스트림 식별자를 포함하는 것이 바람직하다.
예컨대, UDP 인터넷 패킷의 스트림에 대해서, 데이터 스트림의 유일한 식별자는 송신기의 IP 어드레스 및 패킷을 전송하기 위해 송신기가 사용되는 포트 번호를 포함할 수 있다. 송신기의 IP 어드레스 및 스트림의 포트 번호가 각 UDP 패킷의 헤더의 일 부분이기 때문에, 이들 키의 부분이 수신기에 사용 가능하게 하는 것을 보장하기 위해서 각 패킷 내에서는 추가의 공간을 필요로 하지 않는다. 송신기는 대응하는 출력 기호와 함께 각 패킷의 내부로 시퀀스 번호만을 삽입할 필요가 있고, 수신기는 시퀀스 번호 및 패킷 헤더로부터 수신된 출력 기호의 전체 키를 재구성할 수 있다. 다른 예로서, IP 다중 방송 패킷의 스트림에 대해서, 데이터 스트림의 유일한 식별자는 IP 다중 방송 어드레스를 포함할 수 있다. IP 다중 방송 어드레스가 각 IP 다중 방송 패킷의 헤더의 일 부분이기 때문에, 이러한 상황에 적용되는 UDP 패킷을 주목할 필요가 있다.
출력 기호의 위치에 의한 키 입력은 그 입력이 가능할 때가 바람직하다. 위치 키 입력은 CD-ROM(Compact Disk Read-Only-Memory)과 같은 기억 장치로부터 출력 기호를 판독하기 위해 동작할 수 있는데, 출력 기호의 키는 CD-ROM 상의 그들의 위치(즉, 트랙, 펄스 섹터, 섹터 내의 펄스 위치 등)이다. 위치 키 입력은 ATM(비동기식 전송 모드) 등의 회로에 기초한 전송 시스템을 위해 동작할 수도 있는데,정렬된 데이터 셀은 타이트한 타이밍 구속하에서 전송된다. 이와 같은 형태의 키 입력으로, 수신기는 키를 명백히 전송하는데 필요한 공간이 없이 출력 기호의 키를 다시 구성할 수 있다. 물론, 위치 키 입력은 그와 같은 위치 정보가 사용 가능하고 신뢰 가능하도록 할 필요가 있다.
위치에 따라서 키 입력은 다른 키 입력 방법과 조합될 수도 있다. 예컨대, 각 패킷이 하나 이상의 출력 기호를 포함하는 패킷 전송 시스템을 고려한다. 이 경우에, 출력 기호의 키는 유일한 스트림 식별자, 시퀀스 번호 및 패킷 내의 출력 기호의 위치로부터 구성될 수 있다. 데이터 소거가 일반적으로 전체 패킷의 손실이 발생되기 때문에, 수신기는 일반적으로 전체 패킷을 수신한다. 이 경우에, 수신기는 패킷(이 패킷에는 유일한 스트림 식별자를 포함한다)의 헤더, 패킷 내의 시퀀스 번호 및 패킷 내의 출력 기호의 위치로부터 출력 기호의 키를 다시 구성할 수 있다.
일부 시스템 내에서 바람직한 키 입력의 다른 형태는 랜덤 키 입력이다. 이들 시스템에 있어서, 랜덤(또는 의사 랜덤) 번호가 발생되면, 각 출력 기호에 대한 키로서 사용되고, 출력 기호로서 명백히 전송된다. 랜덤 키 입력의 하나의 특성은 상이한 물리적 위치(가능한 키의 범위가 충분히 긴 것으로 가정한다)에서 상이한 송신기에 의해 발생된 키에 대해서 조차도, 동일한 값을 갖는 키의 부분이 작게 될 가능성이 있는 것이다. 이러한 키 입력의 형태는 그 실행의 간소화로 인하여 일부 시스템에서 다른 형태에 걸쳐서 이점을 가질 수 있다.
전술한 바와 같이, 연쇄 반응 부호화는 데이터 소거의 기대값이 존재하거나전송이 개시 및 종료될 때 수신기가 수신을 정확히 개시 및 종료할 수 없는 것에 유용하다. 후자의 조건은 본원 명세서에서 "데이터 불완전"이라고 칭한다. 이들 조건은 연쇄 반응 부호화가 사용될 때, 그 연쇄 반응 부호화 데이터가 정보 부가물이 있도록 크게 독립적으로 수신되기 때문에 통신 처리에 악영향을 주지는 않는다. 출력 기호의 가장 랜덤한 보정이 본원 명세서에 개시된 연쇄 반응 부호화 시스템에 대한 경우가 있는 크게 정보 부가되는데 충분히 독립적인 경우에, 임의의 적절한 수의 패킷은 입력 파일을 복구시키기 위해 사용될 수 있다. 100 개의 패킷이 데이터 소거를 야기시키는 노이즈의 버스트에 의해 손실되는 경우, 소거된 패킷의 손실을 대체하기 위해 버스트 후에 별도의 100 개의 패킷을 픽업할 수 있다. 전송을 개시할 때 수신기가 송신기의 내부에서 조정되지 않기 때문에 1000 개의 패킷이 손실되는 경우, 수신기는 송신의 임의의 다른 기간 또는 다른 송신기로부터 이들 1000 개의 패킷을 정확히 픽업할 수 있게 된다. 연쇄 반응 부호화에 따라서, 수신기는 임의의 특정 세트의 패킷을 픽업하기 위해서 한정되지 않으며, 그에 따라서 하나의 송신기로부터 일부 패킷을 수신하여, 다른 송신기로 전환하며, 일부 패킷이 손실되고, 주어진 전송의 개시 또는 종료를 생략하며, 입력 파일의 복구를 정지시킬 수 있다. 수신기와 송신기의 조정없이 전송을 결합 및 분리시키기 위한 능력은 통신 처리를 크게 단순화시킨다.
기본적인 실행
연쇄 반응 부호화를 사용하여 파일을 전송하는 방법은, 입력 파일로부터 입력 기호를 발생하는 단계, 형성하는 단계 또는 추출하는 단계, 입력 기호를 하나이상의 출력 기호로 부호화하는 단계, 및 출력 기호를 채널을 통해 하나 이상의 수신기로 전송하는 단계를 포함하며, 각 출력 기호는 다른 모든 출력 기호의 키에 기초하여 독립적으로 발생시킨다. 연쇄 반응 부호화를 사용하여 입력 파일의 사본을 수신(및 재구성)하는 방법은, 하나 이상의 데이터 스트림으로부터 출력 기호의 일부 세트 또는 서브세트를 수신하는 단계, 및 수신된 출력 기호의 값 및 키로부터 입력 기호를 복호화하는 단계를 포함한다.
전술한 바와 같이, 디코더는 하나 이상의 출력 기호의 값 및 이미 복구된 다른 입력 기호의 값에 대한 정보로부터 가능한 입력 기호를 복구시킬 수 있다. 따라서, 상기 디코더는 일부 출력 기호로부터 일부 입력 기호를 복구할 수 있고, 이것은 디코더가 이들 복호화된 입력 기호 및 이전에 수신된 출력 기호 등으로부터 다른 입력 기호를 차례로 복호 가능하며, 그에 따라서 수신기에서 재구성되는 파일의 입력 기호의 복구의 "연쇄 반응"을 발생시킨다.
본 발명의 특징은 이하에서 첨부된 도면을 참조하여 상세히 설명할 것이다.
도 1은 연쇄 반응 부호화를 사용하는 통신 시스템(100)의 블록도이다. 통신 시스템(100)에서는 입력 파일(101) 또는 입력 파일 스트림(105)을 입력 기호 발생기(110)로 제공한다. 입력 기호 발생기(110)는 입력 파일 또는 스트림으로부터 하나 이상의 입력 기호[IS(0), IS(1), IS(2), ‥‥]의 시퀀스를 발생시키는데, 각 입력 기호는 도 1에서 괄호속에 넣어진 정수로서 표시된 값 및 위치를 갖는다. 전술한 바와 같이, 입력 기호에 대해 가능한 값(즉, 그 알파벳)은 각 입력 기호가 입력 파일의 M 비트에 대해 부호화하도록 통상 2M기호의 알파벳이다. M의 값은 통신 시스템의 사용에 의해 일반적으로 결정되지만, 다용도 시스템은 M이 사용중에 변화될 수 있도록 입력 기호 발생기(110)에 대해 입력되는 기호 크기를 포함할 수 있다. 입력 기호 발생기(110)의 출력은 엔코더(115)로 공급된다.
키 발생기(120)는 엔코더(115)에 의해 생성될 각 출력 기호를 위한 키를 발생시킨다. 각 키는 이전에 설명된 방법 또는 동일한 입력 파일을 위해 생성된 키의 큰 부분이 유일하게 되는 것을 보장하는 임의의 비교 가능한 방법 중 하나에 따라서 생성되는데, 이들 방법은 키 발생기 또는 다른 키 발생기에 의해 생성된다. 예컨대, 키 발생기(120)는 각 키를 제공하기 위해서 카운터(125)의 출력, 스트림 식별자(130)의 출력 및/또는 난수 발생기(135)의 출력의 조합을 사용할 수 있다. 키 발생기(120)의 출력은 엔코더(115)로 공급된다.
키 발생기(120)에 의해 공급된 각 키 I로부터 엔코더(115)는 입력 기호 발생기에 의해 제공된 입력 기호로부터 값 B(I)인 출력 기호를 발생시킨다. 각 출력 기호의 값은 그 키 및 하나 이상의 입력 기호의 일부 부분에 기초하여 생성되고, 본원 명세서에서는 출력 기호의 "결합된 입력 기호" 또는 그들의 "결합"이라고 칭한다. 함수("값 함수")의 선택 및 그 결합은 이하에서 상세히 설명하는 처리에 따라 실행된다. 통상적으로, 항상이라고는 할 수 없지만, M은 입력 기호 및 출력 기호에 대해 동일, 즉 동일한 비트 번호에 대한 양자의 부호 모두에 대해 동일하다.
일부의 실시예에 있어서, 입력 기호의 번호 K는 그 결합을 선택하기 위해 엔코더에 의해 사용된다. 만일 K가 입력이 스트리밍 파일(streaming file)인 경우와 같이 사전에 공지되지 않은 경우, K는 정확히 평가될 수 있다. K 값은 입력 기호에대한 저장을 할당하기 위해 엔코더(115)에 의해 사용될 수도 있다.
엔코더(115)는 전송 모듈(140)로 출력 기호를 공급한다. 전송 모듈(140)은 키 발생기(120)로부터 각 출력 기호의 키를 공급할 수도 있다. 전송 모듈(140)은 출력 기호를 전송하고, 사용된 키 입력 방법에 의존하며, 전송 모듈(140)은 전송된 출력 기호의 키에 관한 일부 데이터를 채널(145)에 걸쳐서 수신 모듈(150)로 전송할 수 있다. 채널(145)은 소거 채널인 것으로 가정하고 있지만, 통신 시스템(100)의 고유 동작을 위한 필요 조건은 아니다.
모듈(140, 145, 150)은, 전송 모듈(140)이 출력 기호 및 그들 키에 대해 필요한 임의의 데이터를 채널(145)로 송신하는 데 적합하고, 수신 모듈(150)이 출력 기호 및 그들 키에 대해 잠재적으로 일부 데이터를 채널(145)로부터 수신하는 데 적합하기만 하다면, 임의의 적합한 하드웨어 구성, 소프트웨어 구성, 물리적 매체, 또는 이들의 임의의 조합품이 될 수 있다. 결합을 결정하기 위해 사용되는 경우, K의 값은 채널(145)을 통해 송신될 있거나 또는 엔코더(115) 및 디코더(155)의 일치에 의해 시간에 앞서 설정될 수 있다.
전술한 바와 같이, 채널(145)은 텔레비젼 송신기로부터 텔레비젼 수신기로의 인터넷 또는 방송 연결 또는 한 지점에서 다른 지점으로의 전화 접속을 통한 경로와 같은 실시간 채널이 될 수 있거나, 또는 채널(145)은 CD-ROM, 디스크 드라이브, 웹 사이트 등과 같은 기억 채널이 될 수 있다. 채널(145)은 사용자가 퍼스널 컴퓨터로부터 전화선을 통하여 인터넷 서비스 공급자(ISP)에게로 입력 파일을 송신할 때 형성되는 채널과 같은 실시간 채널 및 저장 채널의 조합에 의해 이루어질 수도있고, 상기 입력 파일은 웹 서버 상에 저장되고 인터넷을 통해 수신기로 연속적으로 송신된다.
채널(145)이 소거 채널로 가정되기 때문에, 통신 시스템(100)은 수신 모듈(150)을 빠져 나오는 출력 기호와 전송 모듈(140)로 진행하는 출력 기호의 사이에서 1대 1 통신을 가정할 수는 없다. 실제로, 채널(145)이 패킷 네트워크를 포함하는 경우, 통신 시스템(100)은 채널(145)을 통한 전송시에 임의의 2 이상의 패킷의 상대 순서가 유지되는 것을 가정할 수는 없다. 따라서, 출력 기호의 키는 전술한 하나 이상의 키 입력 체계를 사용하여 결정되고, 그 출력 기호가 수신 모듈(150)을 빠져 나오는 순서에 의해 반드시 결정되지는 않는다.
수신 모듈(150)은 출력 기호를 디코더(155)로 공급하고, 임의의 데이터 수신 모듈(150)은 키 재발생기(160)로 공급되는 출력 기호의 키에 대한 정보를 수신한다. 키 재발생기(160)는 수신된 출력 기호에 대한 키를 재발생시키고 이들 키를 디코더(155)로 공급한다. 디코더(155)는 입력 기호[IS(0), IS(1), IS(2), ‥‥]를 복구시키기 위해서 대응하는 출력 기호와 함께 키 재발생기(160)에 의해 공급된 키를 사용한다. 디코더(155)는 복구된 입력 기호를 입력 파일(101) 또는 입력 파일 스트림(105)의 사본(170)을 발생시키는 입력 파일 리어셈블러(165)로 공급한다.
기본적인 엔코더
도 2는 도 1에 도시된 엔코더(115)의 일 실시예의 블록도이다. 도 2의 블록도는 이 도 2에 도시된 엔코더에 의해 실행되는 일부의 처리 과정의 논리적 등가물을 나타내는 도면인 도 3을 참조하여 본원 명세서에서 설명한다.
엔코더(115)에는 입력 기호와 발생될 각 출력 기호에 대한 키가 공급된다. 도시된 바와 같이, K 입력 기호는 입력 기호 버퍼(205) 내에 저장된다. 키 I[도 1에 도시된 키 발생기(120)에 의해 제공된다]는 값 함수 선택기(210), 중량 선택기(215) 및 결합기(220)로 입력된다. 입력 기호 K의 번호도 이들 3 개의 구성 소자(210, 215, 220)로 제공된다. 계산기(225)는 값 함수 선택기(210), 중량 선택기(215) 및 결합기(220) 및 입력 기호 버퍼(205)로부터의 출력을 수신하기 위해 결합되고, 출력 기호 값에 대한 출력을 갖는다. 도 2에 도시된 소자에 대해 다른 등가의 장치가 사용될 수 있고, 본 발명에 따른 엔코더의 일예임을 이해할 수 있을 것이다.
그 동작에 있어서, K 입력 기호는 수신되어 입력 기호 버퍼(205)에 저장된다. 전술한 바와 같이, 각 입력 기호는 위치(즉, 입력 파일의 원래의 위치) 및 값을 갖는다. 입력 기호는 저장된 입력 기호의 위치가 결정될 수 있는 한 각각의 순서대로 입력 기호 버퍼(205) 내에 저장될 필요는 없다.
키 I 및 입력 기호 K의 번호를 사용하여, 중량 선택기(215)는 키 I를 갖는 출력 기호와 결합될 입력 기호의 중량 번호 W(I)를 결정한다. 키 I, 중량 W(I) 및 입력 기호 K의 번호를 사용하여, 결합기(220)는 출력 기호와 결합된 입력 기호의 위치의 목록 AL(I)를 결정한다. 결합기(220)가 시간에 앞서 중량 W(I)를 알 수 없이 목록 AL(I)를 발생시킬 수 있다. 목록 AL(I)가 발생되면, 중량 W(I)는 목록 AL(I)에 다수개 결합될 수 있기 때문에 용이하게 결정될 수 있다.
키 I, 중량 W(I) 및 목록 AL(I)이 공지되면, 출력 기호의 값 B(I)는 값 함수F(I)에 기초하여 계산기(225)에 의해 계산된다. 적절한 값 함수의 하나의 특성은 AL(I)에 결합하기 위한 값이 출력 기호 값 B(I) 및 AL(I)에 결합하는 다른 W(I)-1에 대한 값으로부터 결정될 수 있는 것이다. 이 특성을 충족시킬 수 있는 것이 용이하게 계산되고 용이하게 반전될 수 있기 때문에, 이 단계에 사용되는 하나의 바람직한 값 함수는 XOR 값 함수이다. 그러나, 다른 적절한 값 함수가 전술한 값 함수 대신에 사용될 수도 있다.
만일 다른 값 함수가 사용되면, 값 함수 선택기(210)는 키 I 및 입력 기호 K로부터 값 함수 F(I)를 결정한다. 하나의 변형예로서, 값 함수 F(I)는 모든 I에 대해 동일한 값 함수 F이다. 그 변형예에서는 값 함수 선택기(210)가 필요하지 않으며, 계산기(225)는 값 함수 F로 구성될 수 있다. 예를 들어, 값 함수는 모든 키 I에 대해 XOR이 될 수 있고, 출력 기호 값은 그들 모든 결합의 값의 XOR(배타적 논리합; exclusive OR)이 될 수 있다.
각 키 I에 대해서, 중량 선택기(215)는 키 I 및 입력 기호 K로부터 중량 W(I)를 결정한다. 하나의 변형예에 있어서, 중량 선택기(215)는 먼저 랜덤 관찰 번호를 생성하기 위해 키 I를 사용하여 W(I)를 선택하고, 중량 선택기(215) 내에 저장된 분포 테이블 내의 W(I)의 값을 조사하기 위해 이 번호를 사용한다. 이와 같은 분포 테이블이 형성되어 근접될 수 있는 방법과 관련해서는 이하에서 보다 상세한 설명한다. 중량 선택기(215)가 W(I)를 결정하면, 이 값을 결합기(220) 및 계산기(225)로 제공한다.
결합기(220)는 현재의 출력 기호와 결합된 W(I) 입력 기호의 위치의 목록AL(I)을 결정한다. I의 값, W(I)의 값 및 K(사용 가능한 경우)의 값에 기초하여 그 결합이 이루어진다. 결합기(220)에 의해 AL(I)을 결정하면, AL(I)은 계산기(225)로 제공된다. 목록 AL(I), 중량 W(I) 및 값 함수 선택기(210) 또는 사전 선택된 값 함수 F에 의해 제공된 값 함수 F(I)를 사용하여, 계산기(225)는 입력 기호 버퍼(205)에서 AL(I)에 의해 참조되는 W(I) 입력 기호에 근접하여 현재의 출력 기호에 대해 값 B(I)를 계산한다. AL(I)를 계산하기 위한 절차의 일예를 이하에서 설명하고 있지만, 이 절차 대신에 다른 적절한 절차가 사용될 수도 있다. 바람직하게, 그 절차는 소정의 출력 기호에 대한 결합으로서 선택될 가능성이 있는 각 입력 기호를 제공하고, 디코더가 그것에 사용 가능한 AL(I)를 이미 갖지 않는 경우에 디코더가 반복될 수 있는 방식으로 선택을 실행한다.
엔코더(115)는 B(I)를 출력한다. 엔코더(115)는 도 3에 예시된 동작을 실행하는데, 즉 선택된 입력 기호의 일부 값 함수로서 출력 기호 값 B(I)를 발생시킨다. 도시된 예에서, 값 함수는 XOR이고, 출력 기호의 중량 W(I)는 3이며, 결합된 입력 기호는 위치 0, 2 및 3에 배치되고, 각각의 값 IS(0), IS(2) 및 IS(3)를 갖는다. 따라서, 출력 기호는 키 I의 값에 대해서 다음과 같이 계산된다.
B(I) = IS(0) XOR IS(2) XOR IS(3)
발생된 출력 기호는 전술한 바와 같이 송신 및 수신된다. 본원 명세서에서는, 일부 출력 기호가 순서를 벗어나서 손실되거나 또는 얻을 수 있거나, 또는 하나 이상의 엔코더에 의해 발생되는 것을 가정한다. 그러나, 그들 키의 표시로 수신되고, 일부가 그들 값 B(I)를 보장하도록 수신된 출력 기호는 정확하다. 도 1에 도시된 바와 같이, 이들 수신된 출력 기호는 키 재발생기(160)에 의해 그 표시로부터 재구성된 대응하는 키와 함께 수신된 출력 기호는 디코더(155)로 입력된다.
입력 기호(즉, 그 크기)로 부호화된 비트 M의 번호는 그 응용 분야에 의존한다. 출력 기호의 크기도 그 응용 분야에 따라 좌우되지만, 채널에도 좌우될 수 있다. 예컨대, 통상의 입력 파일은 다중 메가바이트 파일인 경우, 입력 파일은 각 입력 기호가 수 바이트, 수십 바이트, 수백 바이트 또는 수천 바이트를 부호화함에 따라서 수천, 수만, 수십만 입력 파일로 나누어질 수 있다.
일부의 경우에 있어서, 부호화 처리는 출력 기호의 값 및 입력 기호의 값이 동일한 크기(즉, 동일 수의 비트로 표시 가능하거나 동일한 알파벳으로부터 선택됨)라면 간소화될 수 있다. 만일 그와 같은 경우라면, 입력 기호 값의 크기는 패킷 내에 출력 기호가 배치되는 것이 바람직할 때 및 각 출력 기호가 제한된 크기의 패킷으로 조립되어야 하는 경우와 같이 그 출력 기호 값의 크기가 제한되는 경우에는 그 입력 기호 값 크기를 제한한다. 키에 대한 일부 데이터가 수신기에서 키를 복구하기 위해서 송신될 수 있는 경우, 출력 기호는 하나의 패킷 내의 키에 대한 값 및 데이터를 수용하는데 충분히 적은 것이 바람직할 수 있다.
전술한 바와 같이, 비록 입력 기호의 위치가 다수의 실시예에 있어서 통상적으로 연속적일지라도, 각 키들은 연속적으로 이격된다. 예컨대, 입력 파일이 60,000 개의 입력 기호로 분할되면, 각 입력 기호에 대한 위치는 0∼59,999 개의 범위에 있게 되고, 전술한 실시예 중 하나에서 각각의 키는 무작위 32 비트 수로서 독립적으로 선택될 수 있으며, 송신기가 중지될 때까지 출력 기호가 연속적으로 발생되어 송신될 수 있다. 본원 명세서에 도시된 바와 같이, 연쇄 반응 부호화는 그 출력 기호를 출력 시퀀스 내에서 취할 수 있는 것과 무관하게 출력 기호의 충분하게 큰 보정(60,000 + 약간의 증가량 A)으로부터 60,000 개의 기호 입력 파일이 재구성될 수 있다.
기본적인 디코더
도 4는 도 2에 도시된 엔코더(115)와 공통의 많은 부품을 갖는 디코더(155)의 일 실시예를 상세하게 도시하는 도면이다. 디코더(155)는 값 함수 선택기(210), 중량 선택기(215), 결합기(220), 출력 기호 버퍼(405), 저감기(415), 재구성기(420) 및 재구성 버퍼(425)를 포함한다. 전술한 엔코더에서의 설명과 같이, 값 함수 선택기(210) 및 값 함수의 설명을 저장하기 위해 할당된 출력 기호 버퍼(405) 내의 공간은 선택 사항이고, 값 함수가 모든 출력 기호에 대해 동일한 경우에는 사용될 수 없다. 재구성 버퍼(425)의 다수의 엔트리는 일부 입력 기호가 재구성된 것으로 도시되어 있고, 나머지 입력 기호에 대해서는 아직 알려지지 않은 기호이다. 예컨대, 도 4에서 위치 0, 2, 5 및 6에서의 입력 기호는 복구되어 있고, 위치 1, 3, 4에서의 입력 기호는 아직 복구되어 있지 않은 것이다.
동작 설명에 있어서, 키 I 및 값 B(I)로서 수신된 각 출력 기호에 대해서, 디코더(155)는 이하와 같이 실행된다. 키 I는 값 함수 선택기(210), 중량 선택기(215) 및 결합기(220)로 제공된다. K 및 키 I를 사용해서, 중량 선택기(215)는 중량 W(I)를 결정한다. K, 키 I 및 W(I)를 사용해서, 결합기(220)는 출력 기호와 결합된 입력 기호의 W(I) 위치의 목록 AL(I)를 제공한다. 선택적으로, K 및 I를사용해서, 값 함수 선택기(210)는 값 함수 F(I)를 선택한다. 이어서, I, B(I), W(I), AL(I) 및 선택적으로 F(I)는 출력 기호 버퍼(405)의 열 내에 저장된다. 값 함수 선택기(210), 중량 선택기(215) 및 결합기(220)는 엔코더(115)에 대해 설명된 바와 같이 디코더(155)에 대해서도 동일한 동작을 수행한다. 특히, 도 5에서 값 함수 선택기(210), 중량 선택기(215) 및 결합기(220)에 의해 제공된 값 함수 F(I), 중량 W(I) 및 목록 AL(I)은 도 4에 도시된 대응하는 부품에서와 같이 동일한 키 I에 대해서 동일하다. 만일 K 값이 입력 파일로부터 입력 파일로 변화되면, 메시지 헤더 내에 입력 파일을 내장시키는 등의 종래의 방법에 의해 엔코더로부터 디코더로 통신을 수행할 수 있다.
재구성기(420)는 중량 1[즉, W(I) = 1] 및 목록 AL(I)의 위치가 1이 되는 곳을 저장된 출력 기호를 관찰하기 위해 출력 기호 버퍼(405)를 주사한다. 이들 기호는 "복호 가능한 세트"의 번호로서 본원 명세서에서 언급된다. 전술한 특성을 갖는 값 함수에 대해, 중량 1의 출력 기호는 입력 기호의 값이 그 출력 기호로부터 결정될 수 있기 때문에 상기 복호 가능한 세트 내에 존재한다. 물론, 입력 기호가 중량 1을 갖는 것 이외의 조건하에서 복호화될 수 있도록 값 함수가 사용되면, 그 조건은 출력 기호가 상기 복호 가능한 세트 내에 있는지의 여부를 결정하기 위해 사용될 수 있다. 보다 명확히 하기 위해서, 본원 명세서에서 설명된 실시예는 복호 가능한 세트가 중량 1인 출력 기호이고, 다른 값 함수의 복호 가능한 조건에 대한 이들 실시예의 확장이 상세한 설명으로부터 자명한 것으로 가정한다.
재구성기(420)가 복호 가능한 세트 내에 있는 출력 기호를 인지하고 선택적으로 값 함수 F(I)가 AL(I) 내에 목록된 입력 기호를 재구성하기 위해 사용되면, 재구성된 입력 기호는 그 입력 기호에 대해 적절한 위치에서 재구성 버퍼(425)의 내부에 배치된다. 표시된 입력 기호가 이미 재구성된 상태이면, 재구성기(420)는 새롭게 재구성된 입력 기호를 누락하고 기존의 재구성된 입력 기호를 오버라이트하거나 또는 이들 2 가지 입력 기호를 비교하여 서로 상이하면 오류를 발행한다. 값 함수가 모든 값을 결합하는 XOR이면, 입력 기호 값은 출력 기호의 값을 단순화시킨다. 따라서, 재구성기(420)는 입력 기호를 재구성하지만, 복호 가능한 세트 내의 출력 기호로부터만 재구성한다. 복호 가능한 세트로부터의 출력 기호가 입력 기호를 재구성하기 위해 사용되면, 출력 기호 버퍼(405) 내의 공간을 절약하기 위해 삭제될 수 있다. "써서 낡은" 출력 기호를 삭제하는 것은 재구성기(420)가 그 출력 기호를 연속적으로 되돌아오지 않는 것을 소거한다.
초기에, 재구성기(420)는 적어도 하나의 출력 기호가 복호 가능한 세트의 요소인 것을 수신할 때까지 대기한다. 하나의 출력 기호가 사용되면, 복호 가능한 세트는 일부 다른 출력 기호가 하나의 재구성된 입력 기호 및 하나의 다른 입력 기호만의 함수가 될 수 있는 사실을 제외하고 다시 비어 있는 상태가 될 수 있다. 따라서, 복호 가능한 세트의 요소로부터 하나의 입력 기호를 재구성하는 것은 다른 출력 기호를 상기 복호 가능한 세트에 부가시킬 수 있다. 그들을 복호 가능한 세트에 부가하기 위해 출력 기호를 저감하는 처리 과정은 저감기(415)에 의해 실행된다.
저감기(415)는 출력 기호 버퍼(405)를 주사하여, 입력 기호의 목록 위치인 목록 AL(I)를 갖는 출력 기호를 인지하기 위한 재구성 버퍼(425)는 복구된다. 저감기(415)가 그와 같은 "저감할 수 있는" 출력 기호를 키 I에 의해 인지하면, 저감기(415)는 위치 R에서 복구된 입력 기호의 값 IS(R)을 구하여, B(I), W(I) 및 AL(I)를 다음과 같이 변경한다.
B(I)는 B(I) XOR IS(R)로 설정한다.
W(I)는 W(I) - 1로 설정한다.
AL(I)는 R을 제외하고 AL(I)로 설정한다.
전술한 식에서, 값 함수가 모든 결합 값의 XOR인 것을 가정한다. XOR은 그 자신을 역으로 하고, 만일 역이 아니고 다른 값 함수가 출력 기호를 계산하기 위해 원래대로 사용되면, 그 값 함수의 역은 저감기(415)에 의해 여기에서 사용될 수 있다. 명백히 알 수 있는 바와 같이, 하나 이상의 결합을 위한 값이 공지되면, 전술한 방정식의 등가물은 임의의 공지되지 않은 결합 값에만 의존하는 B(I)를 구성하기 위해 계산될 수 있다[따라서, W(I) 및 L(I)를 조정한다].
저감기(415)의 동작은 출력 기호 버퍼(405) 내의 출력 기호의 중량을 저감한다. 출력 기호의 중량이 1(또는 다른 복호 가능한 조건이 다른 값 함수에 대해 발생한다)로 저감될 때, 재구성기(420)에 의해 동작될 수 있는 복호 가능한 세트의 요소가 된다. 사실상, 충분한 수의 출력 기호가 수신되면, 저감기(415) 및 재구성기(420)는 연쇄 반응 복호화를 작성하는데, 상기 재구성기(420)는 보다 많은 입력 기호를 복구하기 위해 복호 가능한 세트를 복호시키며, 저감기(415)는 입력 파일로부터 모든 입력 기호가 복구될 때까지 복호 가능한 세트 등에 부가되도록 보다 많은 출력 기호를 저감하기 위해 생생하게 복구된 입력 기호를 사용한다.
도 4에 도시된 디코더는 메모리 저장, 계산 사이클 또는 전송 시간에 대한 많은 고려가 없이 간단한 방법으로 입력 기호를 재구성한다. 상기 디코더 메모리, 복호화 시간 또는 전송 시간(이 시간은 수신되는 출력 기호의 수를 제한한다)이 제한되면, 디코더는 이 제한된 리소스를 사용해서 최적화할 수 있다.
보다 효율적인 디코더
도 5는 보다 효율적인 디코더(500)의 실행의 양호한 실시예를 상세히 설명하는 도면이다. 여기에서, 값 함수는 XOR로 가정한다. 이와 유시한 실시예를 XOR 이외의 다른 값 함수에 대해서도 적용한다. 도 5를 참조하면, 디코더(500)는 출력 기호 데이터 구조(505)[이하, OSDS(505)라고 칭한다], 입력 기호 데이터 구조(510)[이하, ISDS(510)라고 칭한다], 복호 가능한 세트 스택(515)[이하, DSS(515)라고 칭한다], 수신 구조체(520) 및 복구 프로세서(525)를 포함한다.
OSDS(505)는 출력 기호에 대한 정보를 저장하는 테이블로서, 여기에서 OSDS(505)의 열 R은 수신되는 R 번째 출력 기호에 대한 정보를 저장한다. 변수 R은 수신된 출력 기호의 번호의 트랙을 유지하고, 0으로 초기화된다. OSDS(505)는 각각의 열에 대해서 행으로 구성되어 도시된 키(KEY), 값(VALUE), 중량(WEIGHT) 및 XOR POS의 난(欄)을 저장한다. KEY 난은 출력 기호의 키를 저장한다. VALUE 난은 처리 과정 중에 갱신되는 출력 기호 값을 저장한다. 입력 기호를 복구하기 위해 궁극적으로 사용되는 모든 출력 기호는 복구된 입력 기호 값으로 변경된 VALUE를 궁극적으로 갖는다. WEIGHT 난은 출력 기호의 초기 중량을 저장한다. 출력 기호의 WEIGHT는 1이 될 때까지 시간에 걸쳐서 저감되고, 입력 기호를 복구시키기 위해 사용될수 있다. XOR POS 난은 출력 기호의 결합의 모든 위치의 XOR을 초기에 저장한다. 출력 기호의 WEIGHT가 1이 되면, 출력 기호의 XOR POS는 하나의 잔류 결합의 위치가 된다.
ISDS(510)는 입력 기호에 대한 정보를 저장하는 테이블로서, 여기에서 열 P는 위치 P에서 입력 기호에 대한 정보를 저장한다. 각각의 열에 대해서, ISDS(510)에는 입력 기호를 복구하기 위해 사용되는 출력 기호의 OSDS(505) 내에 궁극적으로 열 번호가 되는 REC ROW 난, 모든 값을 "no"로 초기화하고 입력 기호가 복구되는지의 여부를 표시하는 REC IND 난, 및 RL 난을 저장한다. 입력 기호가 복구되면, 입력 기호의 REC IND는 "yes"로 변경된다. RL 행은 "비어 있는 목록" 값으로 초기화된다. 출력 기호가 결합으로서 입력 기호를 갖는 것을 수신함에 따라 출력 기호의 OSDS(505) 내의 열 번호는 입력 기호에 대한 RL 목록에 부가된다.
DSS(515)는 복호 가능한 세트에 관한 정보를 저장하는 스택이다. 변수 S는 복호 가능한 세트의 크기의 트랙을 유지하며, 0으로 초기화된다. DSS(515)에서, 행 OUT ROW는 출력 기호의 OSDS(505) 내의 열 번호를 저장하고, 행 IN POS는 복구 가능한 입력 기호의 ISDS(510) 내의 위치를 저장한다.
일 실시예에 있어서, 디코더(500)는 이하의 설명 및 그 처리의 설명 내에 부가적으로 나타낸 도 6의 대응하는 단계로서 도 6의 플로우챠트에 도시된 바와 같이 동작한다. 먼저, ISDS(510)는 전술한 바와 같이 초기화되고, R 및 S는 모두 0으로 초기화된다(단계 605). 새로운 출력 값[즉, 키 I 및 출력 기호 값 B(I)]이 수신(단계 610)되면, OSDS(505) 내에서 KEY(R)는 I로 설정되고, VALUE(R)는 B(I)로 설정된다(단계 615). 이어서, 수신 구조체(520)는 OSDS(505)의 열 R에 저장된 키 I로 수신된 출력 기호를 처리하도록 호출된다(단계 620). 이 단계는 도 7의 플로우챠트에 도시된 바와 같이, ISDS(510) 내에 저장된 정보를 적당히 사용하여 정보를 OSDS(505) 및 DSS(515)에 부가하는 단계를 포함한다. 이어서, R은 다음 출력 기호가 OSDS(505)의 다음 열에 저장되도록 1 씩 증가시킨다(단계 625). 다음에, 복구 프로세서(525)는 복호 가능한 세트 내에서 출력 기호를 처리하기 위해서 호출되어, 복호 가능한 세트로 새로운 출력 기호를 부가시킨다(단계 630). 이 단계는 DSS(515) 내에 저장된 복호 가능한 세트에 부가하고 이 복호 가능한 세트로부터 삭제하는 단계와, 도 8a 및/또는 도 8b의 플로우챠트에 도시된 바와 같이, ISDS(510) 및 OSDS(505)의 일부분을 사용하여 변경하는 단계를 포함한다. 디코더(500)는 복구되는 입력 기호의 번호의 트랙을 유지하고, 이 번호가 K에 도달(즉, 모든 입력 기호가 복구되면)될 때, 디코더(500)는 성공적으로 종료하고, 그렇지 않으면, 단계 635 및 640에 도시된 바와 같이 다음 출력 기호를 수신하기 위해 단계 610으로 복귀된다.
수신 구조체(520)의 동작을 설명하는 플로우챠트를 도 9 내지 도12를 참조하여 도 7에 도시하고 있다. 값 B(I) 및 키 I를 갖는 출력 기호가 도달되면, 수신 구조체(520)는 도 7을 참조하여 이하의 동작을 실행한다. I 및 K로부터 중량 W(I)를 계산(단계 705)하고, I, W(I) 및 K로부터 결합 위치의 목록 AL(I)를 계산(단계 710)한다. 도 11 및 도 12는 W(I)의 일 계산의 세부를 도시하고, 도 9 및 도 10은 AL(I)의 일 계산의 세부를 도시하고 있다.
도 7을 다시 참조하면, XL(I)의 값은 AL(I) 내의 모든 위치의 XOR로서 계산(단계 715)된다. 다음에, 목록 AL(I) 상의 각 위치 P에 대해서, 입력 기호 P가 복구되지 않으면, 즉 ISDS(510)에서 REC IND(P) = "no"이면, ISDS(510)내의 목록 RL(P)에 R이 부가되고, 그렇지는 않고 입력 기호 P가 복구되면, 즉 ISDS(510)에서 REC IND(P) = "yes"이면, W(I)는 1씩 감소되고, XL(I)는 XL(I) XOR P로 리셋(단계 720)된다. 다음에, XOR POS(R)은 XL(I)로 설정되고 WEIGHT(R)이 OSDS(505)에서 W(I)로 설정(단계 725)된다. 다음에, WEIGHT(R)이 1인지의 여부를 비교(단계 730)한다. 만일 WEIGHT(R)이 1이면, 복호 가능한 세트에 출력 기호를 부가하는데, 즉 OUT ROW(S)가 R로 설정되고, IN POS(S)가 DSS(515)에서 XOR POS(R)로 설정되며, S의 값은 1씩 증가(단계 735)된다. 최종적으로 수신 구조체(520)를 복귀시킨다(단계 740).
복구 프로세서(525)의 하나의 동작을 설명하는 플로우챠트를 도 9 내지 도12를 참조하여 도 8a에 도시하고 있다. 그 동작에 있어서, 복구 프로세서(525)는 먼저 복호 가능한 세트가 비어있는 상태, 즉 S = 0 인지의 여부를 확인(단계 805)하고, 만일 S = 0인 경우라면, 즉시 복귀시킨다(단계 810). 만일 복호 가능한 세트가 비어 있지 않은 경우라면, S는 1씩 감소시키고(단계 815), 출력 기호의 행 번호 R' 및 결합된 입력 기호의 위치 P는 DSS(515)로부터 로딩된다. 위치 P에서의 입력 기호가 이미 복구되면, 즉 REC IND(P) = "yes"이면, 복구 프로세서(525)는 이러한 복호 가능한 세트 소자의 처리를 중지시키고, 다음 처리를 위해 연속해서 수행된다. 그렇지 않으면, OSDS(505) 내의 행 번호 R'에 저장된 출력 기호는 ISDS(510) 내의위치 P에서 입력 기호를 복구시키기 위해 사용되며, 이것은 REC IND(P)를 "yes"로 설정하고 REC ROW(P)를 ISDS(510)에서 R'로 설정하는 것으로서 표시한다(단계 830). 다음에, OSDS(505)로부터 출력 기호의 원래의 키 KEY(R')는 원래의 중량 W(I) 및 키의 결합의 원래의 목록 AL(I)를 계산하기 위해서(단계 840, 845) I로 로딩된다(단계 835).
도 8a를 참조하면, 위치 P에서 입력 기호의 복구된 값은 출력 기호의 XOR로서 계산되고, 입력 기호를 배제한 출력 기호를 모두 결합한다. 이것은 P와는 다른 AL(I)상의 모든 위치 P'를 고려함으로써 계산된다. ISDS(510)에서 REC ROW(P')가 위치 P'의 입력 기호에 대해 복구된 값의 행 번호를 저장하고, OSDS(505)에서 VALUE[(REC ROW(P')]는 이 복구된 값인 것에 주목한다. 이러한 계산은 도 8a의 단계 850에 도시하고 있고, 위치 P내의 입력 기호에 대한 복구된 값은 이러한 계산 목적으로 VALUE(R') = VALUE[(REC ROW(P)] 내에 저장된다.
도 8a에 도시된 처리의 변형예를 도 8b에 도시한다. 각 출력 기호에 대해 단계 830, 835, 840, 845 및 850을 실행하는 대신에 도 8b를 처리하는 것으로서, R' 및 P의 값은 추후의 처리(단계 865)를 위한 실행 스케줄 내에 저장될 수 있다. 지연 실행 처리의 실시예를 도 8c에 도시한다. 이 변형예에 있어서, 도 6에 도시된 플로우챠트는 단계 605에서 E를 0으로 초기화하는 것에 의해 변경된다. 실행 스케줄의 지연 처리는 수신된 기호가 전체 파일을 복호하는데 충분한 것을 디코더에 의해 결정한 이후, 예컨대 단계 640에서 모든 입력 기호가 복구 가능한 것이 공지된 후에 발생될 수 있다. 일부의 경우, 특히 입력 기호가 큰 경우에, 상기 실행 스케줄의 실행은 입력 파일, 즉 그 입력 파일의 일부가 수신기에서 필요로 될 때까지 지연될 수 있다.
다른 변형예, 즉 도 8a 또는 도 8b중 어느 하나에 있어서, 단계 855에서 하나의 결합으로서 입력 기호 P를 가진 출력 기호는 입력 기호가 복구되는 것을 반영하기 위해 변경된다. OSDS(505)에서 이들 출력 기호의 행 번호는 RL(P)에 저장되어 있다. RL(P) 내의 각 행 번호 R"에 대해서, WEIGHT(R")는 1 씩 감소되고, P는 OSDS(505)의 행 R" 내의 출력 기호의 결합으로서 위치 P의 입력 기호의 제거를 반영하기 위해 XOR POS(R")로 배타적 논리합된다. OSDS(505)의 행 R" 내의 출력 기호가 중량 1이 되도록 변경, 즉 WEIGHT(R") = 1이 되면, 이 출력 기호는 OUT ROW(S)가 R"로, IN POS(S)가 XOR POS(R")로 설정하는 것에 의해 복호 가능한 세트로 부가되고, S를 1 씩 증가시킨다. 최종적으로, 목록 RL(P) 상의 출력 기호의 행 번호를 저장하기 위해 사용된 공간은 자유 공간으로 복귀시키고(단계 860), 단계 805에서 처리를 연속적으로 수행한다.
결합기 실행
출력 기호 키로부터 결합된 입력 기호로의 매핑[즉, 중량 W(I) 및 키 I에 대한 결합 위치의 목록 AL(I)의 결정]은 다양한 형태를 취할 수 있다. W(I)는 동일 키 I에 대한 엔코더 및 디코더의 양자 모두에 의해 동일한 값이 되도록 선택(각각의 송신기 및 수신기 내에서)될 수 있다. 이와 유사하게, AL(I)는 동일 키 I에 대한 엔코더 및 디코더의 양자 모두에 의해 동일한 위치의 목록을 포함하도록 선택될 수 있다. 결합기는 I로부터 AL(I), 통상 W(I) 및 K를 계산 또는 발생하기 위한 목적이다.
하나의 실시예에 있어서, W(I) 및 AL(I)는 무작위 처리를 모방하기 위해 설계된 방법으로 결정된다. 엔코더 및 디코더가 동일한 키에 대하여 동일한 결과를 제공하는 조건을 충족하기 위하여, 의사 랜덤 시퀀스는 키에 의해 공급되는 엔코더 및 디코더의 양자 모두에 의해 발생될 수 있다. 의사 랜덤 시퀀스의 대신에, 정확한 랜덤 시퀀스는 W(I) 및/또는 AL(I)의 발생을 위해 사용될 수 있지만, 유용한 것에 대하여 W(I) 및 AL(I)를 발생하기 위해 사용되는 랜덤 시퀀스는 수신기로 통신될 필요가 있다.
도 4에 도시된 디코더에 있어서, 출력 기호 버퍼(405)는 결합 위치의 각 출력 기호의 목록에 대한 저장[즉, AL(I)로서 명칭이 붙여진 열 내에 저장]을 필요로 한다. 도 5에 도시된 보다 유효한 디코더는 결합 목록이 필요하다면, 예컨대 도 9 및 도 10에 도시된 바와 같이 재계산되기 때문에 이러한 저장을 필요로 하지 않는다. 이러한 계산을 필요에 따라서 신속하게 행할 수 있을 경우에만 저장을 세이브하기 위해 각 시간 동안 결합 목록의 재계산시에 이점이 있다.
결합기(220)의 양호한 실시예를 도 9에 도시하고 있고, 도 10에 도시된 처리 과정에 따라서 동작한다. 이 결합기는 엔코더 뿐만 아니라 디코더에서도 사용될 수 있다. 엔코더에서 AL(I)에 대한 메모리 저장이 다수의 경우와 관련되지 않을지라도, 그 엔코더가 시간에서 하나의 AL(I) 이상으로 통상 저장할 필요가 없기 때문에, 동일한 처리에 있어서 AL(I)에 대한 값이 양자의 배치시에 동일한 것을 보장하도록 상기 엔코더 및 디코더의 양자 모두에 사용될 수 있다.
결합기(220)에 대한 입력은 키 I, 입력 기호 K의 번호 및 중량 W(I)이다. 그 출력은 키 I를 갖는 출력 기호의 결합의 W(I) 위치의 목록 AL(I)이다. 도 9에 도시된 바와 같이, 결합기(220)는 무작위 비트의 테이블 ASSOC RBITS(905)와, 계산기 ASSOC CALC(910)을 포함한다. 특정 AL(I)가 발생되기 전에, 입력 파일의 크기는 입력 기호의 번호를 프라임하도록 조정된다. 따라서, 입력 파일이 K 입력 기호로 개시되면, K보다 크거나 또는 동일한 가장 작은 프라임 번호 P가 식별된다. 만일 P가 K보다 크면, P-K 블랭크(예컨대, 0으로 설정) 입력 기호는 입력 파일에 부가되고, K는 P로 리셋된다. 이 변형된 입력 파일에 대해, 결합 위치의 목록 AL(I)는 도 9 및 도 10에 도시된 바와 같이 계산된다.
이 실시예에 있어서, ASSOC CALC(910)는 이하의 설명 및 도 10에 도시된 바와 같이 동작한다. 제1 단계는 X가 최소 1 최대 K-1이고, Y가 최소 0 최대 K-1인 특성을 갖는 2 개의 정수 값 X 및 Y를 생성하기 위해서, 키 I, 입력 기호 K의 번호 및 무작위 비트 테이블 ASSOC RBITS(905)를 사용하는 것이다. 바람직하게, X 및 Y는 각각의 범위 내에 독립적이고 균일하게 분포된다. 다음에, W(I) 엔트리를 갖는 어레이 Ⅴ[]는 그 요소가 계산됨에 따라서 AL(I)의 저장을 위해 초기화된다(단계 1010). Ⅴ[]가 하나의 목록을 위해 임시 기억되기 때문에, 출력 기호 버퍼(405)(도 4 참조)의 AL(I) 열보다 적은 메모리를 점유할 수 있다. Ⅴ[0][이것은 목록 AL(I)의 제1 요소임]는 Y로 설정된다(단계 1015). 다음에, J의 모든 값이 1에서 개시하고 W(I)-1에서 종료하는 것에 대해서, V[J]의 값은 단계 1020 내지 1050에 도시된 바와 같이 (V[J-1] + X) mod K로 설정된다. K가 프라임이고 W(I)가 최대 K이기 때문에, 모든 V[]의 값은 유일한 값일 수 있다. 도시된 바와 같이, "mod K" 동작은 간단하게 비교되어 동작을 감산할 수 있다(단계 1035 및 1040). 따라서, 소정의 출력 기호의 결합 위치의 목록을 제공하는 방법은 매우 효과적이다.
전술한 계산 AL(I) 방법의 하나의 이점은 W(I)를 선택하기 위한 양호한 절차로 결합될 때 복호화 알고리즘이 최소 수신 오버헤드에 의해 높은 확률로서 동작하는 것(즉, 입력 기호 및 출력 기호가 동일한 길이임을 가정하여, K 출력 기호보다 다소 큰 경우에만 수신한 후에 입력 파일이 복구된다)이 가능하도록 그 결합 위치 상의 분포 내의 충분한 변화를 제공하는 것이다.
중량 선택기 실행
엔코더/디코더의 실행 및 효율은 중량 분호에 좌우되고, 일부 분포는 다른 것보다 양호하다. 중량 선택의 동작 특징은 일부 중요한 중량 분포의 설명에 후속해서 이하에서 논의되고 있다. 도 11의 블록도 및 도 12의 플로우챠트는 본 발명의 기술적 사상을 예시하기 위해 사용된다.
도 11에 도시된 바와 같이, 중량 선택기는 2 개의 처리단 WT INIT(1105) 및 WT CALC(1110)와, 2개의 테이블 WT RBITS(1115) 및 WT DISTRIB(1120)를 포함한다. 처리단 WT INIT(1105)는 제1 키가 테이블 WT DISTRIB(1120)를 초기화시키기 위해 통과되는 경우에만 인용된다. 테이블 WT DISTRIB(1120)의 설계는 시스템의 중요한 특징이고, 이하에서 보다 상세히 논의된다. 처리단 WT CALC(1110)는 키 I에 기초하여 중량 W(I)를 제공하기 위해 각 호출에 따라 인용된다. 도 12의 플로우챠트에 도시된 바와 같이, 처리단 WT CALC(1110)는 무작위 번호 R을 발생시키기 위해 키 및테이블 WT RBITS에 저장된 무작위 비트를 사용한다. 테이블 WT DISTRIB(1120) 내의 행 번호 L을 선택하기 위해서 R의 값이 사용된다.
도 11에 도시된 바와 같이, WT DISTRIB(1120)의 RANGE 열 내의 엔트리는 MAX VAL 값으로 종료하는 양의 정수의 증가 시퀀스이다. R에 대해 가능한 값의 세트는 0과 MAX VAL-1 사이의 정수이다. 양호한 특성은 R이 가능한 범위의 값 내의 임의의 값이 되는 것이 동일하게 적합한 것이다. L의 값은 L이 RANGE(L-1) ≤R < RANGE(L)을 만족하는 것을 인지할 때까지 RANGE 열을 조사하는 것에 의해 결정된다(단계 1210). L이 인지되면, W(I)의 값은 WT(L)로 설정되고, 이것은 복귀된 중량이다(단계 1215, 1220). 도 11에서 도시된 테이블의 예에 대해서, 만일 R이 38,500과 동일하면, L은 4로 인지되고, 그에 따라서 W(I)는 WT(4) = 8로 설정된다.
중량 선택기 및 결합기를 실행하는 다른 변형예는 의사 랜덤식으로 I를 발생시키고, W(I) 및 AL(I)를 I로부터 직접 발생시킨다. 명백히 알 수 있는 바와 같이, W(I)가 AL(I) 내의 결합 번호와 동일하기 때문에, W(I)는 AL(I)를 조사함으로써 결정될 수 있다. W(I)를 발생하는 다수의 다른 방법이 WT DISTRIB에 의해 정의된 분포를 갖는 W(I) 값의 세트를 발생시키기 위해 전술한 시스템과 등가인 것을 본 발명의 설명으로부터 명확히 이해할 수 있을 것이다.
다른 디코더
이와 같은 설명을 판독함에 따라서, 본 발명의 수신기는 전술한 실시예보다 더욱 효율적으로 동작할 수 있음을 당업자라면 이해할 수 있을 것이다. 예컨대, 수신기는 버퍼링된 패킷이고, 패킷 그룹이 도달되자마자 그 복구 규칙으로만 적용하면 보다 효율적이 될 수 있다. 이러한 변형예는 실질적으로 필요한 동작의 실행시에 소비되는 시간 소비를 저감하고, 문맥의 전환에 의해 오버헤드를 저감한다. 특히, 적어도 K 출력 기호(동일한 크기의 입력 기호 및 출력 기호를 가정한다)가 K 패킷(패킷당 하나의 기호를 가정한다)에 도달되기 전에 디코더가 K 입력 기호의 원래의 파일을 복구하는 것을 희망하지 않기 때문에, 복호화 처리를 개시하기 전에 적어도 K 패킷을 도달할 때까지 대기시키는 이점이 있다.
도 13은 전술한 특징을 포함하며, 도 6의 디코더에 의해 사용되는 처리 과정의 변형예인 복호화 처리 과정의 상이한 방법을 도시하는 도면이다. 2 가지 방법간의 주요 차이점은 도 13에 도시된 방법이 단계 1315에 도시된 바와 같이 배치(batch) 내에 출력 기호를 수신하는 점에 있다. 제1 배치의 크기는 K + A로 설정되는데, 여기서 A는 입력 기호 K의 번호의 작은 부분이다(단계 1310). 출력 기호의 제1 배치가 수신된 후에, 복구 프로세서(520)를 사용(단계 1350)하여 혼합된 출력 기호를 처리하고 복호 가능한 세트를 처리하여 감소된 중량 1의 출력 기호로부터 입력 기호를 복구하도록 및 수신 구조체(520)(단계 1340)를 사용하기 전에 출력 기호는 처리된다. 모든 K 입력 기호의 복구가 K + A 출력 기호의 제1 배치를 사용하여 실현되지 않는 경우, G 출력 기호의 추가의 배치는 수신되고, 모든 입력 기호가 복구될 때까지 처리된다.
가능한 많은 디코더의 보조 데이터 구조에 대해 요구되는 기억 소자를 최소화하는 이점이 있다. 이미 전술한 바와 같이, 각 출력 기호에 대한 결합 목록에 대한 기억 소자는 결합기(220)가 필요한 목록을 신속하게 계산하기 위해 사용될 수있기 때문에, 필요하지는 않는다. 아직 복구되지 않은 입력 기호의 각각에 대해서 기억 소자가 필요한 다른 기억 소자에 의해 출력 기호의 OSDS(505) 내의 행 번호는 도 5의 테이블 ISDS(510) 내의 RL 열에 도시된 목록에 대한 공간을 결합함으로서 입력 기호를 갖는다. 도 8의 단계 855에서 이미 설명한 바와 같이, 이와 같은 기억 소자의 사용에 의해 소정의 입력 기호가 재구성될 때 출력 기호가 저감할 수 있음을 신속하게 식별할 수 있다. 이 과정을 효과적으로 실행하지 않으면, 이들 목록에 필요한 기억 소자는 모든 입력 기호를 복구하기 위해 사용된 모든 출력 기호의 전체 결합수에 비례할 수 있다.
사전 분류 디코더
이하, 도 14 및 도 15를 참조하여, 디코더의 보다 양호한 실시예에 대하여 설명한다. 도 14는 도 8b에서 설명된 바와 같이 형성된 실행 스케줄을 저장하기 위해 사용된 테이블인 중량 선별(WEIGHT SORT)(1405) 및 실행 목록(EXECUTION LIST)(1420)을 부가한 점을 제외하면 도 5에 도시된 것과 동일한 디코더를 포함하는 부품을 도시하고 있다. 테이블 중량 선별은 중량을 증가시키기 위해 수신되어 선별된 출력 기호의 OSDS(505) 내의 행 번호의 배치를 저장하기 위해 사용된다. WT VAL 열은 중량을 저장하기 위해 사용되고, ROW LIST 열은 OSDS(505) 내의 출력 기호의 행 번호를 저장하기 위해 사용된다. 일반적으로, 중량 WT VAL(L)을 갖는 모든 출력 기호의 행 번호는 ROW LIST(L) 내에 저장된다. 이 테이블은 도 15의 단계 1520에 도시된 바와 같이 중량을 증가시키기 위하여 출력 기호의 배치를 처리하기 위해 사용된다. 낮은 중량 출력 기호는 입력 기호를 복구하는 데에 연산적으로 적은 세기를 가지며, 그들의 대부분의 결합이 이미 복구될 수 있는 것에 따라서 보다 큰 중량 출력 기호가 될 수 있는 가능성이 있으며 , 그에 따라서, 링크 저장 공간 상으로 실질적으로 세이브(디코더는 복구된 입력 링크에 의해 사용된 공간을 복구시킬 수 있고, 처리되는 출력 기호는 아직 복구되지 않은 소수의 결합을 가질 수 있다)된다.
중량을 증가시키기 위하여 적절한 크기의 배치 내의 출력 기호를 처리하는 것은 메모리의 필요 조건 뿐만 아니라 처리 조건을 낮출 수 있다.
도 15에 도시된 바와 같이, K 출력 기호(도면에서는 K + A 출력 기호로 나타냄)보다 다소 큰 것이 임의의 처리를 개시하기 전에 도달하는 것이 가능하게 된다(단계 1515). 여기에서, 패킷당 하나의 출력 기호, 동일한 크기의 입력 기호와 출력 기호 및 입력 파일 내의 K 입력 기호를 가정한다. 초기에, 디코더가 어떻게 해서든 K + A 출력 기호보다 낮은 출력 파일로부터 입력 파일을 복구 가능한 것을 예상할 수 없기 때문에, 디코더는 K + A 출력 기호의 수신에 대해 간단하게 대기시키며, K 출력 기호보다 낮은 출력 기호로부터 임의의 입력 파일을 가능한 복구시킬 수 없다. 실제로, 5·√K 는 A에 대해 양호한 값이 될 수 있음을 알 수 있다.
수신된 출력 기호의 OSDS(505) 내의 행 번호는 도 15의 단계 1515에 도시된 바와 같이, 중량을 증가시키기 위해서 도 14의 테이블 중량 선별(1405) 내에 저장된다. 만일 T가 1과 T 사이의 L의 값에 대해 가능한 출력 기호 중량의 번호이면, 목록 ROW LIST(L)는 중량 WT VAL(L)의 모든 수신된 출력 기호를 포함하는데, 여기에서 1 = WT VAL(1) < WT VAL(2) < WT VAL(3) < ‥‥ < WT VAL(T)이고, WT VAL(T)는 임의의 출력 기호의 최대 중량이다. 이어서, 도 15에 도시된 디코더 동작의 나머지는 출력 기호가 단계 1520에 도시된 바와 같이 중량을 증가시키기 위하여 처리되는 점을 제외하고 도 13에 도시된 디코더와 정확하게 동일하다.
통상적으로, K + A 출력 기호는 모든 입력 기호를 복구시키는 데에 충분할 수 있다. 그러나, 일부 세트의 K + A 패킷에 대해서는 모든 입력 기호를 복구시키는 데에 충분하기 않을 수 있다. 그와 같은 경우에, G 추가의 패킷의 배치가 수신되고, 모든 입력 기호가 복구될 때까지 처리된다. G에 대한 양호한 설정은 √K 이다.
도 16 내지 도 19는 도 15에 설명된 처리 과정의 실시예의 스냅숏(snapshort)을 도시하고 있다. 이 실시예에 있어서, 6 개의 출력 기호는 도 16에서 화살표로 표시된 라인에 의해 도시된 바와 같이 표시된 결합에 따라 수신되고 있다. 초기에, 값 A, D, ABDF, C, EF 및 AB[여기서, "" 동작은 XOR(배타작 논리합) 동작을 의미한다]을 갖는 출력 기호는 도 17에 도시된 바와 같이 OSDS(505) 내에 수신되어 저장된다. OSDS(505) 내의 행 번호는 도 18에 도시된 바와 같이, 출력 기호의 중량에 대응하는 행의 ROW LIST에 저장된다. 중량 1의 출력 기호는 OSDS(505)의 행 0, 행 1 및 행 3 내에 존재한다. 따라서, 중량 WT VAL(0) = 1의 출력 기호에 대응하는 ROW LIST(0)는 도 18에 도시된 바와 같이 행 번호 0, 1 및 3을 포함한다. 이와 유사하게, ROW LIST(0)는 4와 5를 포함하고, ROW LIST(3)은 2를 포함한다.
이러한 처리의 점에서, 먼저 중량을 증가시키기 위하여 5 개의 출력 기호가처리되고 있고, OSDS(505)의 행 2의 6 개의 출력 기호는 수신 구조체(520)에 의해 처리되며, 이러한 6 개의 출력 기호는 복구 프로세서(525)에 의해 처리되고 있다. 행 0, 1, 3 및 5 내의 출력 기호는 각각의 위치 0, 3, 2 및 1에 궁극적으로 복구 입력 기호로 스케줄하는데 이미 부가되고 있다. OSDS(505)의 행 4 내의 출력 기호는 아직 복구되지 않은 위치 4 및 5에서 2 개가 결합되고, 그에 따라서 OSDS(505)의 위치 4 및 5로부터 OSDS(505)의 행 4로 복귀하는 링크가 존재한다. OSDS(505)의 행 2 내의 출력 기호는 위치 0, 1, 3 및 5 내에 4 개가 결합되어 있다. 위치 0, 1 및 3 내의 3 개의 결합은 복구됨에 따라서 이미 표시되어 있고, 따라서 그들이 행 2로 복귀하는 링크가 존재하지 않는다(출력 기호의 중량이 복구 프로세서(525)가 실행되자마자 위치 4 및 5의 나머지 입력 기호의 복구를 트리거할 수 있는 4로부터 1로 저감될 수 있다). 위치 5 에서의 결합은 복구되지 않으며, 그에 따라서 수신 구조체(520)는 0SDS(505) 내의 위치 5로부터 OSDS(505)의 행 2 로 링크가 부가된다. 이것은 도 17에 모두 도시되고 있다. 따라서, 이러한 처리 점에서, 입력 기호로부터 출력 기호로 복귀하는 전체 3 개의 링크만이 사용시에 결합되고 있다. 이것은 모든 입력 기호로부터 그 입력 기호를 결합하는 모든 출력 기호로 링크를 사용하는 간단한 실행으로 호의적으로 비교한다. 이 실시예에서, 이와 같은 링크를 가능한 11 개가 존재한다.
일반적으로, 도 13에 설명된 처리 과정을 통해서 도 14 및 도 15에 설명된 처리 과정을 사용하면 링크에 대한 저장 공간의 절약을 크게 저감하는데, 예컨대 입력 파일의 수가 50,000 개 이면 공간 내의 절약은 통상 링크 공간 내에서 10 내지 15의 비율로 저감한다. 이러한 저감을 위한 이유는 보다 작은 중량 출력 기호가 처리의 개시에서 그 종료시까지 입력 기호를 복구하기 위한 가능성이 보다 크며, 보다 무거운 중량 출력 기호는 처리의 종료시에서 그 개시시까지 출력 기호를 복구시키기 위한 가능성이 보다 크게 된다. 따라서, 중량을 증가시키기 위하여 출력 기호를 처리하는 것을 감지할 수 있다. 도 13을 통해서 도 14 및 도 15에 개시된 처리의 추가의 이점은 복호화 동작이 통상 30% 내지 40% 정도 고속이다. 이것은 보다 작은 중량 출력 기호가 보다 무거운 중량 출력 기호(보다 작은 중량 출력 기호가 먼저 고려되기 때문에)보다 입력 기호를 복구시키는데 사용될 가능성이 크기 때문이고, 특정 입력 기호를 복구시키는 비용은 그것을 복구시키는데 사용된 출력 기호의 중량에 좌우된다.
중량 분포를 선택
입력 파일이 가능한 한 적은 출력 기호로서 충분히 재구성될 수 있도록 부호화 처리의 설계시에 최적화하는 데에 중요하다. 이러한 설계의 최적화에 의하면, 전송 시간 및 대역폭이 비용이 많이 들거나 제한되는 것에 대해서 유용하고, 또한 입력 파일이 추가의 출력 기호를 위한 대기 시간이 없이 신속하게 복호해야만 하는 것에 대해서 유용하다. 통상적으로, 입력 파일을 재구성하는데 필요한 충분한 수의 출력 기호는 원래의 입력 파일 내의 입력 기호의 수보다 다소 크다(동일한 크기의 입력 기호 및 출력 기호를 가정할 때). 입력 파일 내에 있는 비트수보다 적은 수의 비트가 수신되면, 임의의 입력 파일을 복구시킬 수 없는 것을 도시할 수 있다. 따라서, 완전한 부호화 체계는 입력 파일로서 동일한 수의 비트를 부호화하는 임의의세트의 출력 기호로부터 입력 파일의 복구를 가능하게 할 수 있고, 부호화 효율의 하나의 측정은 예상 조건하에서 별도의 비트를 필요로 한다.
도 5에 도시된 디코더에 있어서, 디코더가 K 출력 기호를 정확하게 수신한 후에, 복구 프로세서(525)가 최종적으로 알려되지 않은 입력 기호를 복구시킬 때 최대 효율을 얻는다. K 출력 기호보다 많은 출력 기호가 모든 입력 기호가 복구될 수 있는 시간에 대해 디코더에 의해 수신되면, 수신되는 출력 기호는 입력 파일의 복구를 위해 필요하지 않거나 또는 그 입력 파일의 복구를 위해 사용된다. 최대 효율성이 양호하지만, 입력 파일의 복구를 위한 목적은 재구성을 완성하기 전에 DSS(515)가 비어있는 상태가 될 수 있는 위험성에 의해 경감될 수 있다. 즉, 최대 효율성에서 복호 가능한 세트의 크기가 재구성 목적으로서 정확히 0으로 맞추면 G 출력 기호의 추가의 세트가 필요하지 않도록 K + A 출력 기호를 사용하는 재구성의 종료 전에 복호 가능한 세트의 크기를 0으로 맞출 수 있는 가능성이 작게 되도록 부호화/복호화가 배치될 수 있다.
도 20에는 이러한 사항들이 예시되고 있다. 도 20은 디코더가 이하에서 설명하는 이상적인 분포를 위해 K + A 출력 기호에 의해 동작하는 재구성된 입력 기호의 수 대 복호화 가능한 세트의 크기를 나타내는 형태로 복구 처리의 과정을 예시하는 도면이다. 이 실시예에서, A = 0, 즉 모든 K 입력 기호를 복호하기 위해 수신된 출력 기호의 수는 가능한 최소 수이다(입력 기호 및 출력 기호는 동일한 크기로 가정한다). 당업자라면 이 도면에서 중량 및 결합을 결정하기 위한 임의의 소정의 함수를 변화시킬 수 있음을 이해할 수 있고, 특정 출력 기호가 수신되는 것에 좌우되어 변화될 수도 있다. 도면 중에서, 복호 가능한 세트 크기의 예상 크기는 최초에는 1로 설정되고, 복구 처리하는 동안 내내 1로 유지시킨다. 따라서, 예상 동작에 있어서, 다음 입력 기호를 복구시키는데 사용될 수 있는 복호 가능한 세트 내에서 1 출력 기호를 항상 유지시킨다. 도 20은 이상적인 분포의 실제 동작의 일예를 도시한다. 이와 같은 실제의 실행에 있어서 복호 가능한 세트가 복구를 완성하기 전에 비어있는 상태에 있음에 주목한다. 이와 같은 이상적인 분포의 실제 동작이 통상적인 경우, 즉 이상적인 분포에 대해서 모든 입력 기호가 복구되기 전에 무작위 변동은 복호 가능한 세트를 거의 언제나 비어 있는 상태가 되고, 이것은 이하에 설명하는 바와 같이 보다 강한 분포가 필요로 되는 이유이다.
복호 가능한 세트 요소의 수를 제한함으로써 효율성이 개선되고, 이것은 XOR 값 함수의 경우에 하나의 결합된 입력 기호를 갖지만, 그 결합으로 이미 재구성된 입력 기호를 갖는다. 이것은 W(i)를 생성하기 위한 함수의 적합한 선택에 의해 달성될 수 있다.
따라서, 임의의 소망하는 정도의 확실성이 있는 입력 파일을 충분한 출력 기호를 수신함으로써 완전하게 복구할 가능성이 있기는 하지만, 일부 작은 값 A에 대한 K + A 출력 기호(입력 기호 및 출력 기호에 대해 동일한 크기를 가정할 때)만큼의 소수의 출력 기호로 완전한 입력 파일을 포함한 K 입력 기호를 복구하는 높은 확률이 있도록 연쇄 반응 부호화 통신 시스템을 설계하는 것이 바람직하다. A에 대한 최소값은 0이고, 리드 솔로몬 부호화와 같은 일부 부호화 체계 내에서 실현될 수 있지만, A에 대한 일부 작은 비제로 값을 수용하여 개선된 통신 시스템을 얻을수 있다.
A의 작은 값은 출력 기호에 대한 중량 분포, 즉 모든 I에 걸쳐서 W(I)의 분포와, 상기 출력 기호에 걸친 결합 분포, 즉 모든 I에 걸쳐서 AL(I)의 분포를 결정하는 적절한 분포를 사용함으로써 연쇄 반응 부호화 내에서 실현될 수 있다. 복호화 처리가 중량 분포 및 결합 선택의 분포와 무관하게 적용될 수 있기는 하지만, 바람직한 실시예가 중량 분포 및 거의 최적의 실행을 위해 명확하게 선택된 결합 선택에 따른 분포르 사용할 수 있는 것이 강조될 수 있다. 사실상, 많은 분포는 선택된 분포 내에서의 작은 변화가 실행시의 작은 변화만으로도 유도될 수 있는 것과 같이 실행될 수 있다.
이하에서는 하나의 양호한 실시예의 분포를 결정하는 방법과 관련해서 설명할 것이다. 사용되는 실제의 중량 분포는 이상적인 수학적 분포에 기초하고 있다. 이 이상적인 중량 분포에 있어서, 중량 W(I)는 "이상적" 확률 분포에 따라서 선택된다. 가장 작은 중량은 1이고, 가장 큰 중량은 K(여기서, K는 입력 기호의 수임)이다. 이상적인 분포에서, i의 값과 동일한 중량은 이하의 확률 p에 의해 선택된다.
i = 1의 경우: p = 1/K.
i = 2, ‥‥, K의 경우: p = 1/(i(i-1)).
중량 W(I)가 선택되면, W(I) 결합된 입력 기호의 목록 AL(I)는 독립적으로 선택되고, 모든 선택된 결합이 서로 다르게 구성하는 랜덤(필요하다면, 의사 랜덤식으로)식으로 균일하게 된다. 따라서, 제1 결합은 K 입력 기호 중에서 랜덤하게선택되고, 각각은 선택되는 1/K의 확률을 갖는다. 제2 결합(W > 1인 경우)은 나머지 K-1 기호 중에서 랜덤하게 선택된다. 위에서 도시된 중량 확률 분포는 시스템이 예상된 것과 정확하게 동작하는 경우 정확하게 K 출력 기호는 복호하는데 충분하며 모든 입력 기호를 복구할 수 있는 특성을 갖는다. 이와 같은 이상적인 분포에 대한 예상된 동작은 도 20에 실선으로 나타내고 있다. 그러나, 중량 및 결합의 선택의 랜덤 특성 및 출력 기호의 임의의 세트가 복호화 처리시에 사용되기 때문에, 그 처리는 그 방식으로 항상 동작하지 않을 수 있다. 이상적인 분포에 대한 실제의 동작의 예는 도 20에 점선으로 나타내고 있다. 그러므로, 이상적인 중량 분포는 실제로 다소 변경될 수 있다.
일반적으로, 소정의 설정을 위한 최상의 매개 변수는 컴퓨터 시뮬레이션에 의해 조사될 수 있다. 그러나, 이상적인 중량 분포 상의 간단한 변화는 유효 선택 사항이다. 이러한 간단한 변화 내에서, K + A 출력 기호가 처리되기 전에 비어있는 복호 가능한 세트의 가능성을 감소시키기 위해서, 중량 1의 출력 기호 및 높은 중량 출력 기호의 확률을 증가시킴으로써, 이상적인 중량 분포는 다소 변형된다. 중량 1의 출력 기호의 별도의 공급은 복구 처리가 입력 기호의 복구의 종료 시점에근접할 때까지 그 처리가 중량 1 출력 기호(즉, 비어있는 복호 가능한 세트)로부터 실행될 수 있는 가능성을 감소시킨다. 높은 중량 출력 기호의 별도의 공급은 각각의 아직 복구되지 않은 입력 기호에 대해 유일한 유지 결합으로서 이벽 기호를 가질 수 있는 적어도 하나의 출력 기호가 존재할 수 있는 복구 처리의 종료 시점 부근에 있는 가능성을 증가시킨다.
특히, 변경된 중량 분포는 다음과 같다.
i = 1의 경우: p = n·R1/K.
i = 2, ‥‥, (K/R2-1)의 경우: p = n/(i(i-1)(1-iR2/K)).
i = K/R2, ‥‥, K의 경우: p = n·HW(i).
여기에서, K는 입력 기호의 수이고, R1 및 R2는 동조 가능한 매개 변수이며, n은 p값의 모든 합이 1이 되도록 사용되는 표준화 계수이다.
HW(i) 및 R1 및 R2에 대한 샘플 값의 계산은 부록 A에서 상세히 나타내고 있다. 이 부록 A에서, C++ 기호인 nStartRippleSize, nRippleTargetSize 및 nSegment는 전술한 식에서 각각 R1, R2 및 K와 대응한다.
이러한 변형된 분포는 중량 1의 보다 많은 출력 기호가 있는 이상적인 수학적 중량 분포와 유사하며, 그에 따라서 보다 많은 중량 및 분포가 일정한 비율로 재설정된다. 변형된 분포로 나타낸 바와 같이, R1은 중량 1 출력 기호의 초기 부분을 결정함과 동시에 중량 1 출력 기호의 증가된 확률의 배수를 결정하며, R2는 "보다 높은" 중량과 "그렇게 높지 않은" 중량 사이의 경계를 결정한다.
R1 및 R2에 대해 양호한 선택은 일반적으로 K에 좌우되며, 경험적으로 결정될 수 있다. 예컨대, R1은 K의 제곱근의 1.4배와 동일하다. 따라서, K = 4000에 대해서 R1 = 89 및 R2 = 18로 설정되면 잘 행할 수 있고, K가 64000일 때, R1 = 354 및 R2 = 34로 설정되면 잘 행할 수 있다. R1 및 R2의 보다 상세한 계산은 부록 A에 도시되고 있다. 도 21은 이와 같은 분포의 예상 동작이 실제의 실행 상태하에서 상기 예상 동작으로부터의 랜덤 변동을 모든 입력 기호가 복구되기 전에 복호 가능한세트를 비어있는 상태로 할 가능성이 있도록 복구 처리를 통하여 적당하게 큰 복호 가능한 세트를 중지시킬 수 있는 상태를 도시하고 있다.
비록 전술한 재구성 처리가 토네이도 부호에 사용되는 것과 유사할지라도, 매우 상이한 효과를 갖는 부호를 구성하기 위해서 서로 상이한 처리가 사용된다. 특히, 전술한 바와 같이, 연쇄 반응 부호화하는데 필요한 메모리는 토네이도 부호의 경우보다 크게 작고, 여러가지 상황에서 연쇄 반응 부호의 사용상 용이성은 일부 속도에 대한 가능한 비용에서 토네이토 부호의 경우보다 훨씬 초과한다. 이와 같은 처리의 기초가 되는 수학적인 세부 사항에 대해서는 이하에서 상세히 설명하고 있다.
일부 연쇄 반응 부호의 특성
채널을 통해 발생되어 전송되는 출력 기호의 수는, 키가 입력 기호와의 1대 1 대응이 필요하지 않고 I의 다수의 상이한 값이 입력 기호의 일부 비율로 제한되지 않기 때문에, 다른 부호 체계로서 연쇄 반응 부호화로 한정되지는 않는다. 따라서, 비록 입력 파일이 재구성되기 전에 복호 가능한 세트가 비어있는 상태라고 하더라도, 중량 1의 적어도 하나 이상의 출력 기호를 얻기 위해 필요하게 됨에 따라서 디코더가 보다 많은 출력 기호로서 증가시킬 수 있기 때문에, 복호화 처리를 실패할 수 없게 될 수 있는 가능성이 있다. 중량 1의 출력 기호가 수신되는 경우에는, 복호 가능한 세트를 상주시키고, 연쇄 반응 효과에 의해 출력 기호가 입력 기호를 재구성하기 위해 차례로 사용될 수 있도록 사전에 수신된 출력 기호의 저감을 중량 1로 낮출 수 있다.
전술한 대부분의 싱시예에 있어서, 입력 기호 및 출력 기호는 동일한 수의 비트에 대해 부호화하고, 각 출력 기호는 하나의 패킷(패킷은 완전히 수신되거나 완전히 손실되는 전송 유닛이다)내에 배치된다. 몇 몇 실시예에 있어서, 통신 시스템은 각 패킷이 각종 출력 기호를 포함하도록 변형된다. 출력 기호값의 크기는 다수의 비율에 따라서 입력 파일을 초기 기호로 초기 분할시에 입력 기호 값의 크기에 의해 크기가 결정되도록 설정된다. 복호화 처리는 각각의 패킷이 수신됨에 따라서 출력 기호가 일단 내에 도달될 수 있는 점을 제외하고는 실질적으로 불변인 상태로 유지할 수 있다.
입력 기호 및 출력 기호의 크기 설정은 통상 파일의 크기에 의해 통상 유도되고, 통신 시스템에 의해서 출력 기호의 전송이 이루어진다. 예를 들어, 통신 시스템이 테이터의 비트를 규정된 크기의 패킷으로 분류하거나 다른 방식으로 분류하면, 기호 크기의 설계는 패킷 또는 분류 크기로 개시한다. 이것에 의해, 설계자는 많은 출력 기호를 어떻게 하나의 패킷 또는 그룹 내에서 실행시킬지에 대한 방법을 결정하고, 또한 출력 기호의 크기를 결정한다. 설명의 편의상, 설계자는 출력 기호의 크기와 동일한 입력 기호의 크기를 설정할 수 있지만, 입력 기호가 보다 편리하게 서로 다른 입력 기호를 구성할 수 있다면, 그 방법이 사용될 수 있다.
입력 기호의 수 K가 오버헤드의 수신을 최소로 유지시키기 위해 충분히 크도록 입력 기호의 크기를 그 입력 기호의 크기를 결정하는 다른 비율로서 선택된다. 예컨대, K = 10,000은 적당한 변동에 의해 5%∼10%의 평균 수신 오버헤드로 유도되고, K = 80,000은 매우 작은 변동에 의해 1%∼2%의 평균 수신 오버헤드로 유도된다. 이 예와 같이, K = 80,000에서 1,000,000회의 시험을 포함하는 하나의 실험에 있어서, 수신 오버헤드는 4%를 초과하지는 않는다.
전술한 부호화 처리는 원래의 파일에 기초하여 출력 기호를 포함한 패킷의 스트림을 제공한다. 출력 기호는 파일의 부호화된 형태를 유지하거나 또는 부호화된 파일을 보다 간결하게 유지한다. 스트림 내의 각 출력 기호는 모든 출력 기호를 독립적으로 발생되고, 작성될 수 있는 다수의 출력 기호 상의 하부 또는 상부 경계가 존재하지 않는다. 키는 각 출력 기호와 결합된다. 그 키와 입력 파일의 일부 내용은 출력 기호의 값을 결정한다. 연속적으로 발생된 출력 기호는 연속적인 키를 가질 필요가 없고, 몇 몇 응용예에서 키의 시퀀스를 랜덤하게 발생시키거나 또는 그 시퀀스를 의사 랜덤식으로 발생시키는 것이 바람직할 수 있다.
연쇄 반응 복호화는 원래의 파일이 동일한 크기의 입력 기호 K로 분할될 수 있고 각 출력 기호의 값이 입력 기호 값과 동일한 길이가 되면, 파일은 평균적으로 K + A 출력 기호(여기에서, A는 K에 비해 작다)로부터 복구될 수 있는 특성을 갖는다. 예컨대, K = 10,000에 대해 500이 될 수 있다. 특정 출력 기호가 랜덤 또는 의사 랜덤 순서로 발생되고 전송시의 특정 출력 기호의 손실이 임의적이기 때문에, 입력 파일을 복구하는데 필요한 실제의 출력 기호의 수에는 약간의 작은 변화가 존재한다. K + A 패킷의 특정 보정이 전체 입력 파일을 복호하는데 충분하지 않은 일부의 경우에, 수신기가 하나 이상의 출력 패킷의 소스로부터 보다 많은 패킷을 입수할 수 있다면, 입력 파일은 여전히 복구 가능하게 된다.
다수의 출력 기호가 I의 분할에 의해서만 제한되기 때문에, K + A 이상의 출력 기호가 생성될 가능성이 있다. 예컨대, I를 32 비트 수로 하면, 40억의 상이한 출력 기호가 생성될 수 있는데, 여기에서, 파일은 K = 50,000 개의 입력 기호로 구성될 수 있다. 실제로, 이러한 40억의 출력 기호 중의 적은 수만이 생성되어 전송될 수 있는 경우에는, 입력 파일이 가능한 출력 기호 중의 매우 적은 부분으로 복구될 수 있는 확실성 및 입력 파일이 K 출력 기호(입력 기호의 크기가 출력 기호의 크기와 동일한 것으로 가정할 때)보다 다소 많은 출력 기호로 복구될 수 있는 우수한 확률에 근접하게 된다.
각 출력 기호를 제공하는데 필요한 연산 동작의 평균 횟수는 로그 K에 비례하고, 입력 파일을 복호하여 복구하는데 필요한 연산 동작의 전체 횟수는 K 로그 K에 비례한다. 전술한 바와 같이, 유효한 복호화 처리에는 입력 파일을 저장하는데 필요한 메모리보다 다소 많은(통상 약 15% 이상) 메모리만 사용하는 것이 존재한다. 전술한 동작의 횟수는 사전에 공지된 부호화 기술과 비교해서 그 동작 횟수 및 기억 소자의 큰 저감을 도시한다.
예컨대, 리드 솔로몬 부호는 통신 분야에 있어서 표준 부호이다. 리드 솔로몬 부호에 의해 입력 파일은 연쇄 반응 부호화에 의해 K 입력 기호로 분할되지만, 리드 솔로몬 부호 내의 K 입력 기호는 N 출력 기호(여기서, N는 부호화 처리를 개시하기 전에 통상 고정됨)로 부호화된다. 이것은 미확정된 수의 출력 기호에 대해서 가능한 본 발명과 대비한다.
미확정된 수의 출력 기호를 갖는 하나의 이점은, 불량된 채널에 의하거나 또는 일부 출력 기호가 이미 통과된 후에 수신을 개시하는 것에 의해 수신기가 예상된 것보다 많은 출력 기호를 누락시킨 경우에, 수신기는 적은 길이동안 수신할 수 있으며, 보다 많은 출력 기호를 픽업할 수 있는 점에 있다. 다른 이점은 수신기가 다중 엔코더로부터 제공되는 출력 기호를 수집할 수 있기 때문에 각 엔코더는 K 출력 기호의 작은 부분에만 제공할 수 있고, 하나의 엔코더로부터 다수의 기호가 많은 엔코더가 출력 기호에 의해 수신기를 제공하는 것에 좌우된다.
리드 솔로몬 부호는 부호화 및 복호화의 양자 모두에 대해 연쇄 반응 부호보다 실질적으로 많은 시간을 필요로 한다. 예컨대, 리드 솔로몬 부호에 의해 각 출력 기호를 제공하는데 필요한 다수의 연산 동작은 K에 비례한다. 리드 솔로몬 부호를 복호화하는데 필요한 다수의 연산 동작은 출력 기호가 수신기에 도달하는 것에 의해 좌우되지만, 일반적으로 이와 같은 다수의 동작은 K2에 비례한다. 그러므로, 실제로, K 및 N의 수용 가능한 값은 수십에서 가능한 작은 수백에 이르기까지 거의 비슷하게 매우 작다. 예컨대, 교차 인터리브 리드 솔로몬 부호는 콤팩트 디스크(CD) 및 CD-ROM 등에 사용된다. CD의 경우, 하나의 규격 부호는 K = 24 및 N = 28을 사용하고, 다른 규격 부호는 K = 28 및 N = 32를 사용한다. CD-ROM의 경우, 하나의 규격 부호는 K = 24 및 N = 26을 사용하고, 다른 규격 부호는 K = 43 및 N = 45를 사용한다. MPEG 파일(MPEG는 비디오 및 오디오 스트림에 대한 파일 포맷임)의 위성 전송용으로 사용되는 표준 리드 솔로몬 부호는 K = 188 및 N = 204를 사용하는데, 일반적으로 이들의 큰 값은 전문가용 하드웨어를 필요로 한다.
리드 솔로몬 부호의 고속 실행은 cK log K 시간 내에 부호화가 가능하고c'K(log K)2시간 내에 복호화가 가능한 것이 존재하도록 알려져 있으나, c 및 c'은 이들 실행을 K의 매우 큰 값의 모든 값(즉, 효율적인 크로스오버 점이 수백 또는 수만 내의 K의 값인 경우에 대해)에 대한 리드 솔로몬 부호의 다른 실행보다 천천히 실행되는 금지 가능하게 큰 상수이다. 따라서, K의 값이 크로스오버 점 이하에 대해서, 리드 솔로몬 부호의 다른 실행은 보다 고속이다. 비록 고속 실행이 전술한 크로스오버 점 이상의 K의 값에서의 다른 실행보다 고속일지라도, 고속 실행은 연쇄 반응 부호보다 크기 순서로 K의 값에서 지연된다.
이와 같은 속도 제한으로 인하여, K 및 N 중의 작은 값만이 리드 솔로몬 부호에 대해 일반적으로 실행 가능하다. 연속해서, 큰 파일 상에서 이들 부호를 사용하는 것은 파일들이 많은 서브파일로 분할되는 것이 필요하고, 각 서브파일은 독립적으로 부호화된다. 이와 같은 분할은 전송시의 패킷 손실에 대해서 이를 보호하기 위해서 부호의 효율성을 감소시킨다.
리드 솔로몬 부호의 하나의 특징은 임의의 K와 상이한 출력 기호가 입력 파일을 복호하기 위해 수신기에 의해 사용될 수 있는 점에 있다. 적어도 K 출력 기호가 임의의 입력 파일을 복호하기 위해서 필요하게 될 가능성이 있고, 그에 따라 K가 입력 파일을 복호하는데 필요한 최대 수의 출력 기호이기 때문에, 이와 관련해서 리드 솔로몬 부호가 최적이다. 이에 비하여, 연쇄 반응 부호화는 K + A 패킷(여기서, A는 적합하게 선택된 K에 비해 작다)을 일반적으로 필요로 한다. 전술한 네트워크 분야에 있어서, 추가의 기호 A를 가능한 필요로 하는 단점은 속도의 장점 및 보다 큰 파일을 이음매가 없이 처리하기 위한 능력에 의해 크게 보호된다.
기본적인 통신 시스템의 변화
이하, 단일 채널용의 본 발명에 따른 통신 시스템의 실시예와 관련해서 상세히 설명한다. 본 실시예의 구성 소자는 하나 이상의 채널을 효율적으로 사용하기 위해서 확장될 수 있다.
도 22 및 도 23은 도 1에 도시된 통신 시스템과 같은 통신 시스템을 통합하는 2 개의 컴퓨터 사이의 시스템을 도시하고 있다. 제1 실시예(도 22)는 입력 파일(2210)을 네트워크(2230)를 통해서 수신기 컴퓨터(2220)로 전송하는 송신기 컴퓨터(2200)를 포함하고 있다. 제2 실시예(도 23)는 입력 파일(2310)을 무선 채널(2330)을 통해서 수신기 컴퓨터(2320)로 전송하는 송신기 컴퓨터(2300)를 포함하고 있다. 무선 채널(2230)의 대신에, 인터넷 전용선과 같은 다른 물리적 통신 매체가 사용될 수도 있다. 무선 채널(2230)은 무선 통신로, 페이저 링크, 위성 링크, 적외선 링크 등이 사용될 수도 있다. 도 23에 도시된 구성은 하나의 송신기가 입력 파일을 많은 수신기로 송신할 때, 수신기가 많은 송신기로부터 입력 파일을 얻을 때, 또는 많은 수신기가 많은 송신기로부터 입력 파일을 얻을 때와 같이 무선 매체 또는 비무선 매체로도 사용될 수도 있다.
전술한 설명으로부터 자명한 바와 같이, 전술한 연쇄 반응 부호화 체계는 양호한 특성을 갖는 패킷화된 데이터의 스트림과 같이 컴퓨터 네트워크, 인터넷, 이동 무선 네트워크 또는 위성 네트워크 등의 손실이 있는 전송 매체를 통해 파일을 전송하기 위해 사용될 수 있다. 그와 같은 양호한 특성 중 하나는 복호화국(decoding agent)이 스트림으로부터 임의의 세트의 충분하게 많은 패킷을수신하자마자 원래의 파일을 매우 신속하게 재구성할 수 있는 이점이 있다. 또한, 연쇄 반응 부호화는 하나의 송신국(transmitting agent)이 다중 방송 또는 방송 설정시에 파일을 다중 수신국(multiple receiving agent)으로 송신할 때와 같이 많은 국(agent)이 사용되는 상황하에서 유용한 이점이 있다.
또한, 연쇄 반응 부호화 체계는 다중 송신국이 동일한 파일을 다중 수신국으로 송신하는 상황하에서도 유용한 이점이 있다. 이것은 네트워크 기간 시설의 집중화 실패에 대한 조밀도를 개선하는 것이 가능하고, 수신국이 수신 패킷으로부터 하나의 송신국에서 다른 송신국으로의 이음메가 없이 변동 가능하며, 또한 수신국이 하나 이상의 송신국으로부터 동시에 파일을 수신하여 이 파일들을 고속으로 다운로드하는 것을 가능하게 한다.
하나의 특징에 있어서, 전술한 연쇄 반응 부호화 처리는 송신의 각 부품이 송신된 파일의 이미지를 내장한 홀로그래픽 이미지의 디지털 등가물을 실행한다. 파일이 메가바이트(MB) 파일이면, 사용자는 임의의 MB의 데이터(일부 별도의 오버헤드를 가산함) 가치를 구하기 위해 송신된 스트림으로 정확히 분기시킬 수 있고, 그 MB로부터 원래의 MB 파일을 복호시킬 수 있다.
연쇄 반응 부호화가 송신된 스트림으로부터의 데이터의 무작위 선택에 의해 동작하기 때문에, 다운로드는 지정되거나 또는 항상 일치할 필요는 없다. 연쇄 반응 부호화에 의해 비디오 온 요구의 이점을 고려한다. 특정 비디오는 수신기와 송신기간의 조정없이 특정 채널 상의 연속 스트림으로서 방송될 수 있다. 수신기는 관심이 있는 비디오에 대한 방송 채널로 간단히 조정하여, 송신이 개시될 때를 계산함이 없이 또는 방송의 손실 부분의 사본을 얻기 위한 방법이 필요 없이도 원래의 비디오를 재구성하기 위한 충분한 데이터를 캡처링할 수 있다.
이러한 기술적 개념들을 도 24 및 도 25에서 예시하고 있다. 도 24는 하나의 수신기(2402)가 3 개의 채널(2406)을 통해서 3 개의 송신기(2404)(각각 A, B, C로 표시함)로부터 데이터를 수신하는 장치를 도시하고 있다. 이 장치는 수신기에 대해 사용 가능한 대역폭을 3 개 한조로 사용될 수 있고, 임의의 하나의 송신기로부터 전체 파일을 얻기 위해서 충분히 길지 않은 송신기도 사용 가능하도록 처리할 수도 있다. 도면에 도시된 바와 같이, 각 송신기(2404)는 각 스트림 값 S()를 송신한다. 각 스트림 값 S()는 전술한 바와 같이 출력 기호 B(I) 및 키 I로 나타낸다. 예컨대, 값 S(A, nA)는 송신기(2404(A))에서 발생된 출력 기호의 시퀀스 내의 "nA"번째 출력 기호 및 "nA"번째 키이다. 하나의 송신기로부터의 키의 시퀀스는 송신기가 이중의 노력을 들일 필요가 없도록 다른 송신기로부터의 키의 시퀀스와 상이한 것이 바람직하다. 이것은 스트림 값 S()의 시퀀스가 송신기의 함수인 사실로서 도 24에 예시되고 있다.
송신기(2404)는 이중의 노력을 들이지 않기 위해서 동기화 또는 조정될 필요가 없는 것에 주목한다. 실제로, 조정이 필요없이 각 송신기는 그 시퀀스(즉, nA≠ nB≠ nC) 내의 서로 다른 위치에 배치될 수 있다. 별도의 출력 기호 G의 몇개의 다발로 이루어질 수 있는 K + A 출력 기호의 무작위 선택이 입력 파일을 복구시키기 위해 사용될 수 있기 때문에, 이중의 노력을 들이는 대신에 비조정된 전송이 부가될 수 있다.
이러한 "정보 부가물"은 도 25에 다시 예시되고 있다. 도 25에서, 하나의 입력 파일(2502)의 사본은 복수 개의 송신기(2504)(도면 상에는 2 개의 송신기만 도시함)로 공급된다. 송신기(2504)는 채널(2506)을 통해 수신기(2508)로 입력 파일(2502)의 콘텐츠(contents)로부터 발생된 출력 기호를 독립적으로 송신한다. 각 송신기가 기호 발생을 위해 상이한 세트의 키를 사용하면, 스트림은 독립적이고, 이중이라기 보다 부가물(즉, 입력 기호를 복구시키기 위해 사용된 정보 풀에 부가되는 것)이 될 가능성이 있다. 도면에 도시된 2 개의 송신기의 각각은 수신기의 디코더가 전체 입력 파일을 복구시키기 전에 (K + A)/2 출력 기호만을 전송하는 것이 필요할 수 있다.
2 개의 수신기 및 2 개의 송신기를 사용하여, 수신 장치(2510)에 의해 수신된 정보의 전체량은 하나의 채널(206)을 통해 사용 가능한 정보를 4 배만큼이 될 수 있다. 정보의 량은 만일 예를 들어 송신기가 양쪽의 수신기로 동일한 데이터를 방송하면 단일 채널 정보를 4 배 이하로 할 수 있다. 그 경우, 수신 장치(2510)에서의 정보의 량은 만일 데이터가 임의의 채널 내에서 손실되는 경우, 적어도 2 배, 종종 그 이상이 된다. 비록 송신기가 하나의 신호만을 방송하지만 수신기가 서로 다른 배수로 관찰되더라도, 각 송신기로 들을 수 있는 하나 이상의 수신기를 갖는 이점을 얻을 수 있는 점에 주목한다. 도 25에서 수신 장치(2510)는 도 1에 도시된 수신기(150), 디코더(155), 키 재발생기(160) 및 입력 파일 리어셈블러(165)의 기능과 유사한 기능을 실행한다.
몇 몇 실시예에 있어서, 입력 파일(2502)은 연산 장치가 하나의 송신기에 대해서 하나의 출력을 제공할 수 있고 다른 송신기에 대해서 다른 출력을 제공할 수 있도록 2 개의 엔코더를 갖는 하나의 연산 장치 내에서 부호화된다. 이들 실시예의 다른 변형예는 본 발명의 상세한 설명으로부터 명백히 이해할 수 있을 것이다.
본원 명세서에 설명된 부호화 장치 및 방법은 다른 통신 상황에도 적용될 수 있으며, 인터넷과 같은 통신 네트워크로만 제한하고자 하는 것이 아님을 당업자라면 명확히 이해할 수 있을 것이다. 예컨대, 콤팩트 디스크 기술은 스크래치된 디스크의 문제를 다루기 위해 소거 및 오류 정정 부호를 사용할 수도 있고, 디스크 상에 정보의 저장시에 연쇄 반응 부호의 사용에 의해서도 이점을 가질 수 있다. 또 다른 실시예로서, 위성 시스템은 전송을 위한 전력의 필요 조건을 타협하기 위해 소거 부호를 사용할 수 있고, 전력 소비를 저감함으로써 많은 오류에 대해서 다용도로 사용 가능하며, 그 응용 분야에서 연쇄 반응 부호화가 유용할 수 있다. 또한, 정보 기억의 신뢰성을 위해 소거 부호가 RAID(독립된 디스크의 용장성 어레이) 시스템을 개발하기 위해서 사용될 수 있다. 따라서, 본 발명은 전술한 실시예에서 설명된 바와 같이 잠재적으로 손실이 있거나 오류가 있는 데이터의 문제를 처리하기 위해 부호(code)가 사용되는 다른 분야에 있어서 유용성을 제공할 수 있다.
본 발명의 몇 몇 양호한 실시예에 있어서, 전술한 통신 처리를 실시하기 위한 명령 세트(또는 소프트웨어)는 가능한 손실이 있는 통신 매체를 통하여 통신하는 2 이상의 다용도의 연산 장치를 제공할 수 있다. 다수의 장치는 하나의 송신기 및 하나의 수신기로부터 임의의 수의 송신 및/또는 수신 장치까지의 영역이 될 수있다. 장치를 접속하는 통신 매체는 유선, 광학, 무선 등이 될 수 있다. 전술한 통신 시스템은 상세한 설명으로부터 자명한 바와 같이 다용도로 사용될 수 있다.
비록 본 발명이 특정 실시예를 참조하여 설명하고 있지만, 본원 명세서에 기재된 사항으로 한정하는 것은 아니다. 본 발명은 이 기술 분야에 통상의 지식을 가진자라면 첨부된 특허 청구의 범위에서 명시된 바와 같은 본 발명의 기술적 사상 또는 범위에서 벗어나지 않는 범위 내에서 여러 가지의 변형 및 수정이 가능함을 이해할 수 있을 것이다.
부록 A. 소스 부호 일람표

Claims (26)

  1. 입력 알파벳으로부터 선택되는 복수 개의 입력 기호를 구비한 입력 파일을 출력 기호의 세트로부터 원상태로 복구 가능하도록 출력 알파벳 및 출력 기호로부터 선택되는 출력 기호를 발생하는 방법에 있어서,
    키 알파벳으로부터 키를 선택하고, 상기 키 알파벳 내의 가능한 키의 수가 입력 파일 내의 입력 기호의 수보다 더 큰 출력 기호용 키 I를 구하는 단계와;
    키 I의 소정의 함수에 따라 상기 출력 기호용 목록 AL(I)를 계산하는 단계를 포함하는데, 상기 AL(I)는 상기 출력 기호와 결합된 W(I) 결합 입력 기호의 표시이고, 중량 W는 적어도 2 개의 값들 사이에서 변화하며 적어도 하나의 I의 값에 대해 1보다 큰 양의 정수이며;
    출력 기호의 값 B(I)를 AL(I)로 표시된 상기 결합된 입력 기호의 소정의 함수로부터 발생시키는 단계
    를 포함하는 것을 특징으로 하는 출력 기호의 발생 방법.
  2. 제1항에 있어서, 상기 키 I를 구하는 단계는 랜덤 함수 또는 의사 랜덤 함수에 따라 키 I를 계산하는 단계를 포함하는 것인 출력 기호의 발생 방법.
  3. 제1항에 있어서, 상기 목록 AL(I)를 계산하는 단계는 키 I의 랜덤 함수 또는 의사 랜덤 함수에 따라 W(I)를 계산하는 단계를 포함하는 것인 출력 기호의 발생방법.
  4. 제1항에 있어서, 상기 목록 AL(I)를 계산하는 단계는 키 I의 랜덤 함수 또는 의사 랜덤 함수에 따라 AL(I)를 계산하는 단계를 포함하는 것인 출력 기호의 발생 방법.
  5. 제1항에 있어서, 상기 목록 AL(I)를 계산하는 단계는,
    키 I의 소정의 함수 및 적어도 2 개의 양의 정수(적어도 하나는 1보다 큰 정수임) 이상인 확률 분포에 따라 중량 W(I)를 계산하는 단계와,
    목록 AL(I)용의 목록 엔트리를 계산하는 단계와,
    W(I) 목록 엔트리가 계산될 때까지 목록 AL(I)용의 목록 엔트리를 계산하는 단계를 반복하는 단계를 포함하는 것인 출력 기호의 발생 방법.
  6. 제5항에 있어서, 상기 중량 W(I)를 계산하는 단계는 W가 키 알파벳을 통해 소정의 분포에 근접하도록 W(I)를 결정하는 단계를 포함하는 것인 출력 기호의 발생 방법.
  7. 제6항에 있어서, 상기 소정의 분포는 균일한 분포인 것인 출력 기호의 발생 방법.
  8. 제6항에 있어서, 상기 소정의 분포는 벨 곡선(bell curve) 분포인 것인 출력 기호의 발생 방법.
  9. 제6항에 있어서, 상기 소정의 분포는, W=1일 때 1/K(여기서, K는 입력 파일 내의 입력 기호의 수임)의 확률을 가지며, W=i일 때 1/i(i-1)(여기서, i = 2,‥‥, K 임)의 확률 분포를 갖는 것인 출력 기호의 발생 방법.
  10. 제6항에 있어서, 상기 소정의 분포는,
    소정의 조정 가능한 매개 변수 R1, R2 및 K는 입력 파일 내의 입력 기호의 수이고, 중량 W=1일 때 R1/K에 비례하는 확률을 가지며, 중량 W=2 에서 중량 W=K/R2 까지의 범위의 낮은 중량 급의 중량일 때 1/(W(W-1)(1-W·R2/K))에 비례하는 확률을 가지며, 중량 W=K/R2 에서 중량 W=K 까지의 범위의 높은 중량 급의 중량일 때 선택된 확률 분포를 갖는 것인 출력 기호의 발생 방법.
  11. 제1항에 있어서, AL(I)로 표시된 상기 결합된 입력 기호의 소정의 함수는 상기 AL(I)로 표시된 입력 기호의 배타적 논리합(XOR)인 것인 출력 기호의 발생 방법.
  12. 제1항에 있어서, 상기 입력 알파벳 및 출력 알파벳은 동일한 알파벳인 것인 출력 기호의 발생 방법.
  13. 제1항에 있어서, 상기 입력 알파벳은 2Mi기호를 포함하고, 각 입력 기호는 Mi 비트를 부호화하며, 상기 출력 알파벳은 2Mo기호를 포함하고, 각 출력 기호는 Mo 비트를 부호화하는 것인 출력 기호의 발생 방법.
  14. 제1항에 있어서, 각각의 연속 키 I는 이전의 키보다 큰 것인 출력 기호의 발생 방법.
  15. 제1항에 기재된 출력 기호의 발생 방법에 따라서 복수 개의 출력 기호를 각각 부호화하는 방법에 있어서,
    발생될 각각의 출력 기호용 키 I를 발생하는 단계와;
    데이터 소거 채널을 통해 전송될 출력 시퀀스로서 상기 발생된 각각의 출력 기호를 출력하는 단계
    를 포함하는 것을 특징으로 하는 출력 기호의 부호화 방법.
  16. 제15항에 있어서, 각각의 키 I는 선택된 다른 키와 독립적으로 선택되는 것인 출력 기호의 부호화 방법.
  17. 제1항에 있어서, 상기 목록 AL(I)를 계산하는 단계는,
    입력 파일 내의 입력 기호의 번호 K 및 중량 W(I)를 적어도 근접하게 식별하는 단계와,
    K보다 크거나 같은 가장 작은 프라임 번호 P를 결정하는 단계와,
    P가 K보다 크면, 상기 입력 파일을 P-K 패딩 입력 기호로 적어도 논리적으로 패딩하는 단계와,
    1 ≤X < P 인 제1 정수 X 및 0 ≤Y < P 인 제2 정수 Y를 발생하는 단계와,
    1 에서 W(I) 까지의 각각의 J에 대해서 AL(I) 내의 J번째 엔트리를 ((Y+(J-1)·X) mod P)로 설정하는 단계를 포함하는 것인 출력 기호의 발생 방법.
  18. 제17항에 있어서, 각각의 J에 대해서 AL(I) 내의 J번째 엔트리를 설정하는 단계는,
    어레이 V 내의 제1 엔트리 V[J=0]를 Y로 설정하는 단계와,
    1 에서 W(I)-1 까지의 각각의 J에 대해서 어레이 V 내의 J 번째 엔트리 V[J]를 (V(J-1)+X) mod P)로 설정하는 단계와,
    목록 AL(I)로서 상기 어레이 V를 사용하는 단계를 포함하는 것인 출력 기호의 발생 방법.
  19. 패킷 통신 채널을 통해 소스로부터 목적지로 데이터를 전송하는 방법에 있어서,
    a) 입력 알파벳으로부터 선택되고 데이터 내의 위치를 각각 갖는 입력 기호의 정렬된 세트로서 전송될 데이터를 배열하는 단계와;
    b) 출력 알파벳으로부터 각각 선택되는 복수 개의 출력 기호를 발생하는 단계를 포함하는데,
    상기 복수 개의 출력 기호의 각 출력 기호는, 1) 키 알파벳으로부터 출력 기호가 발생되는 키 I를 선택하는 단계와, 2) 키 I의 함수로서 중량 W(I)를 결정[여기서, 중량 W는 적어도 2 개의 값들 사이 및 상기 키 알파벳 상에서 변화하며 상기 키 알파벳 내의 적어도 일부의 키 I의 값에 대해 1보다 큰 양의 정수임]하는 단계와, 3) 키 I의 함수에 따라 상기 입력 기호의 W(I)를 선택함으로써 상기 출력 기호와 결합된 W(I) 입력 기호의 목록 AL(I)를 형성하는 단계, 및 4) 상기 결합된 W(I) 입력 기호의 소정의 함수 값으로부터 출력 기호의 값 B(I)를 계산하는 단계에 의해 발생되며;
    c) 상기 복수 개의 출력 기호 중 적어도 하나를 복수 개의 패킷의 각각으로 패킷화하는 단계와;
    d) 상기 패킷 통신 채널을 통해서 복수 개의 패킷을 전송하는 단계와;
    e) 목적지에서 상기 복수 개의 패킷 중의 적어도 일부를 수신하는 단계와;
    f) 상기 수신된 복수 개의 패킷으로부터 데이터를 복호화하는 단계
    를 포함하는 것을 특징으로 하는 데이터의 전송 방법.
  20. 제19항에 있어서, 상기 데이터를 복호화하는 단계는,
    1) ??) 상기 출력 기호에 대한 키 I를 결정하는 단계, ??) 상기 출력 기호에대한 중량 W(I)를 결정하는 단계, 및 ??) 상기 출력 기호에 대해 W(I) 결합된 입력 기호를 결정하는 단계에 의해 각각의 수신된 출력 기호를 처리하는 단계와,
    2) 임의의 입력 기호를 복호하기 위해 충분한 정보가 수신되었는지의 여부를 결정하는 단계와,
    3) 상기 수신된 정보로부터 복호될 수 있는 입력 기호를 복호화하는 단계를 포함하는 것인 데이터의 전송 방법.
  21. 제20항에 있어서, 상기 키 I를 결정하는 단계는 패킷 통신 채널을 통해서 수신된 패킷 내에 공급되는 데이터로부터 키 I를 적어도 부분적으로 결정하는 단계를 포함하는 것인 데이터의 전송 방법.
  22. 제20항에 있어서, 상기 복호화하는 단계는,
    수신된 출력 기호를 중량에 따라 선별하는 단계와,
    높은 중량 기호 전에 처리되는 낮은 중량 기호에 의해 출력 기호를 처리하는 단계를 포함하는 것인 데이터의 전송 방법.
  23. 제19항에 있어서, 상기 데이터를 복호화하는 단계는,
    1) ??) 상기 출력 기호에 대한 중량 W(I)를 결정하는 단계, ??) 상기 출력 기호에 대해 W(I) 결합된 입력 기호를 결정하는 단계, 및 ??) 상기 W(I)에 따른 출력 기호 테이블 내의 출력 기호의 값 B(I)와 상기 출력 기호에 대한 W(I) 결합의위치를 저장하는 단계에 의해 각각의 수신된 출력 기호를 처리하는 단계와,
    2) 추가의 출력 기호를 수신하여, 전술한 1)의 단계(수신된 출력 기호를 처리하는 단계) 및 후속 단계에 따라 처리하는 단계와,
    3) 중량 1을 가지며 출력 기호가 다 사용하지 않은 것으로 표시되지 않은 각각의 출력 기호 OS1에 대해서, ??) OS1에 대응하는 입력 기호 위치에 대한 입력 기호를 계산하는 단계, ??) 상기 출력 기호 테이블에 결합된 출력 기호를 식별[상기 결합된 출력 기호는 전술한 ??)의 단계에서 처리된 입력 기호의 함수인 출력 기호임]하는 단계, ??) 전술한 ??)의 단계에서 처리된 입력 기호와 독립적으로 결합된 출력 기호를 재계산하는 단계, ??) 전술한 ??)의 단계에서 재계산된 상기 출력 기호의 중량을 1씩 감소시키는 단계, 및 ??) 출력 기호가 다 사용된 것으로 OS1을 표시하는 단계를 실행하는 단계와,
    4) 상기 입력 기호의 정렬된 세트가 목적지에서 복구될 때까지 전술한 1) 내지 3)의 단계를 반복 처리하는 단계를 포함하는 것인 데이터의 전송 방법.
  24. 제23항에 있어서, 상기 OS1을 표시하는 단계는 출력 기호를 다 사용하기 위해 중량을 0으로 설정하는 단계를 포함하는 것인 데이터의 전송 방법.
  25. 제23항에 있어서, 상기 OS1을 표시하는 단계는 상기 출력 기호 테이블로부터 출력 기호를 다 사용하는 것을 제거하는 단계를 포함하는 것인 데이터의 전송 방법.
  26. 제19항에 있어서, 상기 패킷화하는 단계는 복수 개의 출력 기호를 각각의 패킷으로 패킷화하는 단계이고,
    상기 데이터의 전송 방법은, 상기 출력 기호에 대한 키의 일 부분으로서 패킷 내의 출력 기호의 위치를 사용하는 단계를 더 포함하는 것인 데이터의 전송 방법.
KR1020017003774A 1998-09-23 1999-09-17 패킷 전송 프로토콜용의 손상된 패킷을 복구하는 방법 KR100598662B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10147398P 1998-09-23 1998-09-23
US60/101,473 1998-09-23
US09/246,015 1999-02-05
US09/246,015 US6307487B1 (en) 1998-09-23 1999-02-05 Information additive code generator and decoder for communication systems

Publications (2)

Publication Number Publication Date
KR20010089278A true KR20010089278A (ko) 2001-09-29
KR100598662B1 KR100598662B1 (ko) 2006-07-13

Family

ID=26798300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017003774A KR100598662B1 (ko) 1998-09-23 1999-09-17 패킷 전송 프로토콜용의 손상된 패킷을 복구하는 방법

Country Status (14)

Country Link
US (7) US6307487B1 (ko)
EP (4) EP2136473B1 (ko)
JP (2) JP3976163B2 (ko)
KR (1) KR100598662B1 (ko)
AT (2) ATE441251T1 (ko)
AU (1) AU767140B2 (ko)
CA (1) CA2345237C (ko)
DE (2) DE69904621T2 (ko)
DK (1) DK2136473T3 (ko)
ES (2) ES2401177T3 (ko)
HK (2) HK1038995B (ko)
IL (1) IL140705A0 (ko)
PT (1) PT2136473E (ko)
WO (1) WO2000018017A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10911013B2 (en) 2018-07-05 2021-02-02 Comcast Cable Communications, Llc Dynamic audio normalization process

Families Citing this family (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
DE19860531C1 (de) * 1998-12-30 2000-08-10 Univ Muenchen Tech Verfahren zur Übertragung codierter digitaler Signale
FR2799592B1 (fr) * 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
US7062648B2 (en) * 2000-02-18 2006-06-13 Avamar Technologies, Inc. System and method for redundant array network storage
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US7194504B2 (en) * 2000-02-18 2007-03-20 Avamar Technologies, Inc. System and method for representing and maintaining redundant data sets utilizing DNA transmission and transcription techniques
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US8335994B2 (en) * 2000-02-25 2012-12-18 Salmon Alagnak Llc Method and apparatus for providing content to a computing device
US8131867B1 (en) 2000-06-01 2012-03-06 Qualcomm Incorporated Dynamic layer congestion control for multicast transport
US6772217B1 (en) * 2000-08-23 2004-08-03 International Business Machines Corporation Internet backbone bandwidth enhancement by initiating an additional data stream when individual bandwidth are approximately equal to the backbone limit
US6486803B1 (en) * 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US6411223B1 (en) * 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US6810398B2 (en) * 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
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
US7095729B2 (en) * 2000-12-22 2006-08-22 Intel Corporation Method for multimedia communication over packet channels
US7277950B1 (en) * 2000-12-29 2007-10-02 Swarmcast, Inc. Packet transfer mechanism over a peer to peer network
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
US20030055915A1 (en) * 2001-09-14 2003-03-20 Ngo Kin Cuc Method and apparatus for transmitting data over a network
JP3808769B2 (ja) * 2001-12-27 2006-08-16 三菱電機株式会社 Ldpc符号用検査行列生成方法
WO2003073621A1 (fr) * 2002-02-28 2003-09-04 Mitsubishi Denki Kabushiki Kaisha Procede de generation de matrices d'inspection de code ldpc et dispositif de generation de matrices d'inspection
US6677864B2 (en) 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2278718B1 (en) * 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
JP4120461B2 (ja) * 2002-07-12 2008-07-16 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
EP2355360B1 (en) 2002-10-05 2020-08-05 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
US7032166B2 (en) 2002-12-03 2006-04-18 Massachusetts Institute Of Technology Method and apparatus for protecting data
WO2006033652A1 (en) * 2003-02-14 2006-03-30 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
JP4337375B2 (ja) * 2003-03-14 2009-09-30 株式会社デンソー 情報配信サーバ、受信端末、情報配信システム、予約端末、および予約サーバ
US20040199669A1 (en) * 2003-04-04 2004-10-07 Riggs Nicholas Dale Apparatus and method for efficiently and securely transferring files over a communications network
US7367514B2 (en) 2003-07-03 2008-05-06 Hand Held Products, Inc. Reprogramming system including reprogramming symbol
EP2722995B1 (en) 2003-10-06 2023-04-19 QUALCOMM Incorporated Soft-Decision Decoding of Multi-Stage Chain Reaction Codes
KR101035219B1 (ko) 2003-10-08 2011-05-18 디지털 파운튼, 인크. Fec-기반 신뢰도 제어 프로토콜
US7266716B2 (en) * 2003-10-23 2007-09-04 Hewlett-Packard Development Company, L.P. Method and recovery of data using erasure coded data from stripe blocks
US7458003B2 (en) * 2003-12-01 2008-11-25 Qualcomm Incorporated Low-complexity, capacity-achieving code for communication systems
EP1706946A4 (en) * 2003-12-01 2006-10-18 Digital Fountain Inc PROCESSING DATA AGAINST ERASURES USING SUB-SYMBOL CODES
US7912159B2 (en) * 2004-01-26 2011-03-22 Hewlett-Packard Development Company, L.P. Enhanced denoising system
JP4506185B2 (ja) * 2004-02-06 2010-07-21 ソニー株式会社 受信装置および方法、並びにプログラム
FR2867925B1 (fr) * 2004-03-22 2006-05-19 Canon Kk Codage de canal adapte aux erreurs rafale
US7240236B2 (en) * 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
WO2005112250A2 (en) * 2004-05-07 2005-11-24 Digital Fountain, Inc. File download and streaming system
US7546342B2 (en) * 2004-05-14 2009-06-09 Microsoft Corporation Distributed hosting of web content using partial replication
US7203871B2 (en) * 2004-06-03 2007-04-10 Cisco Technology, Inc. Arrangement in a network node for secure storage and retrieval of encoded data distributed among multiple network nodes
US20060037037A1 (en) * 2004-06-14 2006-02-16 Tony Miranz System and method for providing virtual video on demand
DE102004063950B4 (de) * 2004-08-07 2009-02-19 Tropf, Hermann Kanalcodiervorrichtung
WO2006020826A2 (en) * 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP2008511233A (ja) * 2004-08-27 2008-04-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マルチメディアコンテンツの配信方法
US7533324B2 (en) * 2004-09-22 2009-05-12 Kencast, Inc. System, method and apparatus for FEC encoding and decoding
US7594154B2 (en) 2004-11-17 2009-09-22 Ramakrishna Vedantham Encoding and decoding modules with forward error correction
KR100703271B1 (ko) * 2004-11-23 2007-04-03 삼성전자주식회사 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치
US8270901B2 (en) * 2004-12-17 2012-09-18 Martin E. Hellman Dropout-resistant media broadcasting system
US7865917B2 (en) * 2004-12-17 2011-01-04 Martin E Hellman Security enhanced tiered subscription broadcast system
US8627354B2 (en) 2004-12-17 2014-01-07 Martin E. Hellman Tiered subscription broadcast system
US7474631B2 (en) * 2005-01-13 2009-01-06 International Business Machines Corporation On-demand group communication services with quality of service (QoS) guarantees
US7739580B1 (en) 2005-02-17 2010-06-15 Kencast, Inc. System, method and apparatus for reducing blockage losses on information distribution networks
US7191215B2 (en) * 2005-03-09 2007-03-13 Marquee, Inc. Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines
US8904463B2 (en) 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US9176955B2 (en) 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US7698451B2 (en) 2005-03-09 2010-04-13 Vudu, Inc. Method and apparatus for instant playback of a movie title
US20090025046A1 (en) * 2005-03-09 2009-01-22 Wond, Llc Hybrid architecture for media services
US7937379B2 (en) 2005-03-09 2011-05-03 Vudu, Inc. Fragmentation of a file for instant access
US20080022343A1 (en) * 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US8219635B2 (en) 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US20090019468A1 (en) * 2005-03-09 2009-01-15 Vvond, Llc Access control of media services over an open network
US8122324B2 (en) 2005-03-31 2012-02-21 Mitsubishi Electric Corporation Error correction coding apparatus
JP4814315B2 (ja) * 2005-05-04 2011-11-16 シーメンス エンタープライズ コミュニケーションズ ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コンパニー コマンディートゲゼルシャフト 訂正記号に割り当てられたインデックスを求める方法および装置
US20060265511A1 (en) * 2005-05-20 2006-11-23 Riggs Nicholas D Apparatus and method for efficiently and securely transferring files over a communications network
US7676735B2 (en) * 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
US8099511B1 (en) 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
US7840178B2 (en) * 2005-07-12 2010-11-23 Martin E. Hellman FM broadcast system competitive with satellite radio
US8223643B1 (en) 2005-09-06 2012-07-17 Kencast, Inc. Method for packet-level FEC encoding a stream of source packets using shifted interleaving
WO2007029449A1 (ja) * 2005-09-07 2007-03-15 Nec Corporation データ伝送システム
JP4546387B2 (ja) * 2005-11-17 2010-09-15 富士通株式会社 バックアップシステム、方法及びプログラム
US20070133691A1 (en) * 2005-11-29 2007-06-14 Docomo Communications Laboratories Usa, Inc. Method and apparatus for layered rateless coding
US7613979B1 (en) * 2005-12-07 2009-11-03 Sony Computer Entertainment Inc. Network communication protocol for large scale distribution of streaming content
US7596673B2 (en) * 2005-12-08 2009-09-29 Sony Corporation Failure tolerant data storage
KR100922960B1 (ko) * 2005-12-27 2009-10-22 삼성전자주식회사 다중 안테나들을 이용하는 무선 통신 시스템에서 전송 효율증대를 위한 신호 송수신 방법 및 그 시스템
JP4718340B2 (ja) * 2006-02-02 2011-07-06 富士通株式会社 ストレージシステム、制御方法及びプログラム
US7480848B2 (en) * 2006-02-10 2009-01-20 The Directv Group, Inc. Methods and apparatus to select tornado error correction parameters
KR101292851B1 (ko) 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
US8065582B2 (en) * 2006-02-13 2011-11-22 Digital Fountain, Inc. FEC streaming with aggregation of concurrent streams for FEC computation
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
JP4808054B2 (ja) * 2006-03-17 2011-11-02 富士通株式会社 データ転送方法及び,これを適用する通信システム及びプログラム
JP4696008B2 (ja) * 2006-03-20 2011-06-08 富士通株式会社 Ip送信装置およびip送信方法
US7979771B2 (en) * 2006-04-04 2011-07-12 Permabit Technology Corporation Erasure coding technique for scalable and fault tolerant storage system
EP3336707A1 (en) 2006-05-05 2018-06-20 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US7971129B2 (en) * 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US20070276951A1 (en) * 2006-05-25 2007-11-29 Nicholas Dale Riggs Apparatus and method for efficiently and securely transferring files over a communications network
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
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
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
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
US7760699B1 (en) 2006-08-05 2010-07-20 Sandeep Malik System and method for efficient transmission of electronic information
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
US7924761B1 (en) 2006-09-28 2011-04-12 Rockwell Collins, Inc. Method and apparatus for multihop network FEC encoding
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
US8117514B2 (en) 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
WO2008073144A1 (en) 2006-12-14 2008-06-19 Thomson Licensing Rateless encoding in communication systems
EP2103024B1 (en) * 2006-12-14 2018-04-25 Thomson Licensing Modulation indication method for communication systems
CN101558593A (zh) * 2006-12-14 2009-10-14 汤姆逊许可证公司 通信系统的带自适应调制的arq
WO2008073103A1 (en) * 2006-12-14 2008-06-19 Thomson Licensing Rateless codes decoding method for communication systems
JP5153784B2 (ja) * 2006-12-14 2013-02-27 トムソン ライセンシング 通信システムにおける連結符号化/復号
US7839851B2 (en) * 2006-12-22 2010-11-23 Ntt Docomo, Inc. Method and apparatus for opportunistic multicasting with coded scheduling in wireless networks
TW200828328A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Method of improving accessing reliability of flash memory
WO2008082572A1 (en) * 2006-12-29 2008-07-10 Interdigital Technology Corporation Method and apparatus for transmitting and receiving multimedia broadcast multicast services via a dedicated downlink carrier
RU2009130391A (ru) * 2007-01-08 2011-02-20 Интердиджитал Текнолоджи Корпорейшн (Us) Способ и устройство для мультивещания с информацией обратной связи
US20080205229A1 (en) * 2007-02-26 2008-08-28 Yung-Chih Li Method of identifying optical disc
US7949778B2 (en) * 2007-03-27 2011-05-24 Kencast, Inc. Systems, methods, apparatus and computer program products for providing packet-level FEC with higher throughput using user datagram protocol (UDP)
CN101296055B (zh) * 2007-04-29 2013-01-09 华为技术有限公司 数据包收发方法及装置
JP4487211B2 (ja) * 2007-06-01 2010-06-23 カシオ計算機株式会社 接続制御装置及び、ネットワーク接続制御プログラム
US20090161797A1 (en) * 2007-06-08 2009-06-25 Cowles Philip R Satellite detection of automatic identification system signals
US7876865B2 (en) * 2007-06-08 2011-01-25 COM DEV International Ltd System and method for decoding automatic identification system signals
US8635309B2 (en) 2007-08-09 2014-01-21 Hand Held Products, Inc. Methods and apparatus to change a feature set on data collection devices
RU2010114256A (ru) 2007-09-12 2011-10-20 Диджитал Фаунтин, Инк. (Us) Формирование и передача исходной идентификационной информации для обеспечения надежного обмена данными
EP2066038A1 (en) 2007-11-30 2009-06-03 Deutsche Telekom AG Method and system for constructing and decoding rateless codes with partial information
US8442070B1 (en) * 2008-02-01 2013-05-14 Hobnob, Inc. Fractional threshold encoding and aggregation
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
EP2288991B8 (en) * 2008-05-05 2018-02-28 Amplidata NV Method of storing a data set in a distributed storage system, distributed storage system and computer program product for use with said method
RU2010150108A (ru) * 2008-05-07 2012-06-20 Диджитал Фаунтин, Инк. (Us) Быстрое переключение канала и защита потоковой передачи высокого качества по широковещательному каналу
KR101590633B1 (ko) * 2008-11-11 2016-02-02 삼성전자주식회사 슬라이스 단위로 분할된 동영상을 처리하는 동영상 부호화/복호화장치 및 동영상 부호화/복호화방법
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US20100263007A1 (en) * 2009-04-09 2010-10-14 Jinyun Zhang Method and Apparatus for Increasing Quality of IPTV Transmission
US9298722B2 (en) 2009-07-16 2016-03-29 Novell, Inc. Optimal sequential (de)compression of digital data
KR20110011357A (ko) * 2009-07-28 2011-02-08 삼성전자주식회사 비트의 순서를 변경한 데이터의 부호화, 복호화 방법 및 장치
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery 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
US8136018B2 (en) * 2009-08-24 2012-03-13 Sony Computer Entertainment Inc. Network communication protocol for large scale distribution of streaming content
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
US8780788B2 (en) 2009-09-25 2014-07-15 Com Dev International Ltd. Systems and methods for decoding automatic identification system signals
US9136981B2 (en) 2010-03-03 2015-09-15 Qualcomm Incorporated Block aggregation of objects in a communication system
US8782734B2 (en) * 2010-03-10 2014-07-15 Novell, Inc. Semantic controls on data storage and access
KR101615384B1 (ko) * 2010-04-05 2016-04-25 삼성전자주식회사 통신 시스템에서의 채널 부호화 장치 및 방법
US8832103B2 (en) 2010-04-13 2014-09-09 Novell, Inc. Relevancy filter for new data based on underlying files
CN101826940A (zh) * 2010-04-19 2010-09-08 中兴通讯股份有限公司 一种对喷泉码中预译码集优化的方法和系统
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US9331774B2 (en) 2010-06-09 2016-05-03 Exactearth Ltd. Systems and methods for segmenting a satellite field of view for detecting radio frequency signals
WO2011160256A1 (en) 2010-06-24 2011-12-29 Metrologic Instruments, Inc. Distinctive notice for different symbology information
US9589164B2 (en) 2010-06-24 2017-03-07 Metrologic Instruments, Inc. Distinctive notice for different symbology information
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
KR101005927B1 (ko) * 2010-07-05 2011-01-07 펜타시큐리티시스템 주식회사 웹 어플리케이션 공격 탐지 방법
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US20120047201A1 (en) 2010-08-20 2012-02-23 Nikhil Jain Apparatus and method of acquiring or distributing content
US8517269B2 (en) 2010-11-09 2013-08-27 Hand Held Products, Inc. Using a user'S application to configure user scanner
US8693501B2 (en) 2010-11-23 2014-04-08 The Chinese University Of Hong Kong Subset coding for communication systems
US9088888B2 (en) * 2010-12-10 2015-07-21 Mitsubishi Electric Research Laboratories, Inc. Secure wireless communication using rate-adaptive codes
EP2993585B1 (en) 2010-12-27 2017-06-28 Amplidata NV Distributed object storage system comprising performance optimizations
JP2012151849A (ja) 2011-01-19 2012-08-09 Nhn Business Platform Corp P2p基盤のストリーミングサービスのデータストリームをパケット化するシステムおよび方法
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
US20170201271A9 (en) * 2011-06-21 2017-07-13 Centre National D'etudes Spatiales Method for encoding data in bursts
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
KR101933465B1 (ko) 2011-10-13 2019-01-11 삼성전자주식회사 이동 통신 시스템에서 패킷 송수신 장치 및 방법
KR101591238B1 (ko) 2011-11-01 2016-02-18 퀄컴 인코포레이티드 Http 서버들 사이의 소스 데이터 및 리페어 데이터의 할당에 의한 컨텐츠 전달 시스템
US9130750B2 (en) * 2011-12-16 2015-09-08 Hughes Network Systems, Llc System and method for efficient retransmission over a satelline network
US9287897B2 (en) * 2012-01-30 2016-03-15 Broadcom Corporation Systematic rate-independent Reed-Solomon erasure codes
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9015567B2 (en) 2012-04-12 2015-04-21 Com Dev International Ltd. Methods and systems for consistency checking and anomaly detection in automatic identification system signal data
US8608053B2 (en) 2012-04-30 2013-12-17 Honeywell International Inc. Mobile communication terminal configured to display multi-symbol decodable indicia
EP2847973B1 (en) * 2012-05-03 2016-11-16 Telefonaktiebolaget LM Ericsson (publ) Centralized key management in embms
US9413494B2 (en) 2013-01-17 2016-08-09 Qualcomm Incorporated FEC-based reliable transport control protocols for multipath streaming
US9311640B2 (en) 2014-02-11 2016-04-12 Digimarc Corporation Methods and arrangements for smartphone payments and transactions
US10511331B2 (en) * 2013-08-16 2019-12-17 Nippon Telegraph And Telephone Corporation Channel decoding method and channel decoding device
EP2863566B1 (en) 2013-10-18 2020-09-02 Université de Nantes Method and apparatus for reconstructing a data block
TWI523465B (zh) * 2013-12-24 2016-02-21 財團法人工業技術研究院 檔案傳輸系統和方法
US9596218B1 (en) * 2014-03-03 2017-03-14 Google Inc. Methods and systems of encrypting messages using rateless codes
US10412151B2 (en) 2015-01-26 2019-09-10 Huawei Technologies Co., Ltd. Method and system for on-demand file repair
US10903858B2 (en) 2015-05-27 2021-01-26 Quantum Corporation Dynamically variable error correcting code (ECC) system with hybrid rateless reed-solomon ECCs
US10009152B2 (en) * 2016-03-04 2018-06-26 Huawei Technologies Co., Ltd. System and method for rate-less multiple access
US10089189B2 (en) 2016-04-15 2018-10-02 Motorola Solutions, Inc. Devices and methods for receiving a data file in a communication system
TWI602409B (zh) 2016-08-15 2017-10-11 國立交通大學 資料傳輸方法與系統
WO2019010524A1 (en) * 2017-07-10 2019-01-17 The University Of Sydney METHOD AND APPARATUS FOR IMAGING A SCENE
US10417127B2 (en) * 2017-07-13 2019-09-17 International Business Machines Corporation Selective downstream cache processing for data access
US10476524B2 (en) 2017-11-27 2019-11-12 Goke Us Research Laboratory Method and apparatus for efficient data decoding
US10419026B2 (en) 2017-11-27 2019-09-17 Goke Us Research Laboratory Method and apparatus for efficient data decoding
US10771191B2 (en) 2018-03-09 2020-09-08 Kencast, Inc. System for highly reliable file delivery of using continuous FEC encoding/decoding

Family Cites Families (550)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3909721A (en) * 1972-01-31 1975-09-30 Signatron Signal processing system
US4365338A (en) * 1980-06-27 1982-12-21 Harris Corporation Technique for high rate digital transmission over a dynamic dispersive channel
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4589112A (en) * 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US4901319A (en) 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
GB8815978D0 (en) 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
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
FR2720503B1 (fr) * 1994-05-26 1996-06-21 Commissariat Energie Atomique Système de caractérisation thermomécanique de matériaux utilisant un dispositif de chauffage rapide par induction.
US5757415A (en) 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5802394A (en) 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
US5568614A (en) 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US5659614A (en) 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5617541A (en) * 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
JP3614907B2 (ja) 1994-12-28 2005-01-26 株式会社東芝 データ再送制御方法及びデータ再送制御システム
US6079042A (en) 1995-04-27 2000-06-20 The Trustees Of The Stevens Institute Of Technology High integrity transport for time critical multimedia networking applications
US5835165A (en) 1995-06-07 1998-11-10 Lsi Logic Corporation Reduction of false locking code words in concatenated decoders
US5805825A (en) 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services
US6079041A (en) 1995-08-04 2000-06-20 Sanyo Electric Co., Ltd. Digital modulation circuit and digital demodulation circuit
US5754563A (en) 1995-09-11 1998-05-19 Ecc Technologies, Inc. Byte-parallel system for implementing reed-solomon error-correcting codes
KR0170298B1 (ko) 1995-10-10 1999-04-15 김광호 디지탈 비디오 테이프의 기록 방법
US5751336A (en) 1995-10-12 1998-05-12 International Business Machines Corporation Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems
JP3305183B2 (ja) 1996-01-12 2002-07-22 株式会社東芝 ディジタル放送受信端末装置
US6012159A (en) 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
US5852565A (en) 1996-01-30 1998-12-22 Demografx Temporal and resolution layering in advanced television
US5936659A (en) 1996-01-31 1999-08-10 Telcordia Technologies, Inc. Method for video delivery using pyramid broadcasting
US5903775A (en) 1996-06-06 1999-05-11 International Business Machines Corporation Method for the sequential transmission of compressed video information at varying data rates
US5745504A (en) 1996-06-25 1998-04-28 Telefonaktiebolaget Lm Ericsson Bit error resilient variable length code
US5940863A (en) 1996-07-26 1999-08-17 Zenith Electronics Corporation Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators
US5936949A (en) 1996-09-05 1999-08-10 Netro Corporation Wireless ATM metropolitan area network
KR100261706B1 (ko) 1996-12-17 2000-07-15 가나이 쓰도무 디지탈방송신호의 수신장치와 수신 및 기록재생장치
US6011590A (en) 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
US6044485A (en) * 1997-01-03 2000-03-28 Ericsson Inc. Transmitter method and transmission system using adaptive coding based on channel characteristics
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
EP0854650A3 (en) 1997-01-17 2001-05-02 NOKIA TECHNOLOGY GmbH Method for addressing a service in digital video broadcasting
US5983383A (en) 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
US5946357A (en) 1997-01-17 1999-08-31 Telefonaktiebolaget L M Ericsson Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal
US6014706A (en) 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
KR20000075982A (ko) 1997-03-07 2000-12-26 다카노 야스아키 디지탈 방송 수신기 및 디스플레이 장치
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
EP0933768A4 (en) 1997-05-19 2000-10-04 Sanyo Electric Co DIGITAL MODULATION AND DEMODULATION
JP4110593B2 (ja) * 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
JPH1141211A (ja) 1997-05-19 1999-02-12 Sanyo Electric Co Ltd ディジタル変調回路と変調方法、ディジタル復調回路と復調方法
US6128649A (en) 1997-06-02 2000-10-03 Nortel Networks Limited Dynamic selection of media streams for display
US6081907A (en) 1997-06-09 2000-06-27 Microsoft Corporation Data delivery system and method for delivering data and redundant information over a unidirectional network
US5917852A (en) 1997-06-11 1999-06-29 L-3 Communications Corporation Data scrambling system and method and communications system incorporating same
KR100240869B1 (ko) 1997-06-25 2000-01-15 윤종용 이중 다이버서티 시스템을 위한 데이터 전송 방법
US6175944B1 (en) 1997-07-15 2001-01-16 Lucent Technologies Inc. Methods and apparatus for packetizing data for transmission through an erasure broadcast channel
US5933056A (en) * 1997-07-15 1999-08-03 Exar Corporation Single pole current mode common-mode feedback circuit
US6047069A (en) 1997-07-17 2000-04-04 Hewlett-Packard Company Method and apparatus for preserving error correction capabilities during data encryption/decryption
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6178536B1 (en) 1997-08-14 2001-01-23 International Business Machines Corporation Coding scheme for file backup and systems based thereon
FR2767940A1 (fr) 1997-08-29 1999-02-26 Canon Kk Procedes et dispositifs de codage et de decodage et appareils les mettant en oeuvre
EP0903955A1 (en) 1997-09-04 1999-03-24 STMicroelectronics S.r.l. Modular architecture PET decoder for ATM networks
US6088330A (en) 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6272658B1 (en) 1997-10-27 2001-08-07 Kencast, Inc. Method and system for reliable broadcasting of data files and streams
US6081918A (en) 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6163870A (en) 1997-11-06 2000-12-19 Compaq Computer Corporation Message encoding with irregular graphing
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
JP3472115B2 (ja) 1997-11-25 2003-12-02 Kddi株式会社 マルチチャンネルを用いるビデオデータ伝送方法及びその装置
US5870412A (en) 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6243846B1 (en) 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US6849803B1 (en) * 1998-01-15 2005-02-01 Arlington Industries, Inc. Electrical connector
US6097320A (en) * 1998-01-20 2000-08-01 Silicon Systems, Inc. Encoder/decoder system with suppressed error propagation
US6226301B1 (en) 1998-02-19 2001-05-01 Nokia Mobile Phones Ltd Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system
US6141788A (en) 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks
US6278716B1 (en) 1998-03-23 2001-08-21 University Of Massachusetts Multicast with proactive forward error correction
US6459811B1 (en) 1998-04-02 2002-10-01 Sarnoff Corporation Bursty data transmission of compressed video data
US6185265B1 (en) 1998-04-07 2001-02-06 Worldspace Management Corp. System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload
US6067646A (en) 1998-04-17 2000-05-23 Ameritech Corporation Method and system for adaptive interleaving
US6018359A (en) 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6445717B1 (en) 1998-05-01 2002-09-03 Niwot Networks, Inc. System for recovering lost information in a data stream
US6421387B1 (en) 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6937618B1 (en) * 1998-05-20 2005-08-30 Sony Corporation Separating device and method and signal receiving device and method
US6333926B1 (en) 1998-08-11 2001-12-25 Nortel Networks Limited Multiple user CDMA basestation modem
BR9913277A (pt) 1998-09-04 2001-09-25 At & T Corp Codificação de bloco-espaço e codificação de canal combinado em um arranjo de multi-antenas
US6415326B1 (en) 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
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
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
US6704370B1 (en) 1998-10-09 2004-03-09 Nortel Networks Limited Interleaving methodology and apparatus for CDMA
IT1303735B1 (it) 1998-11-11 2001-02-23 Falorni Italia Farmaceutici S Acidi ialuronici reticolati e loro usi medici.
US6408128B1 (en) 1998-11-12 2002-06-18 Max Abecassis Replaying with supplementary information a segment of a video
US6483736B2 (en) 1998-11-16 2002-11-19 Matrix Semiconductor, Inc. Vertically stacked field programmable nonvolatile memory and method of fabrication
JP2000151426A (ja) 1998-11-17 2000-05-30 Toshiba Corp インターリーブ・デインターリーブ回路
US6166544A (en) 1998-11-25 2000-12-26 General Electric Company MR imaging system with interactive image contrast control
US6876623B1 (en) * 1998-12-02 2005-04-05 Agere Systems Inc. Tuning scheme for code division multiplex broadcasting system
AU1966699A (en) 1998-12-03 2000-07-03 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and method for transmitting information and apparatus and method for receiving information
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6496980B1 (en) 1998-12-07 2002-12-17 Intel Corporation Method of providing replay on demand for streaming digital multimedia
US6223324B1 (en) * 1999-01-05 2001-04-24 Agere Systems Guardian Corp. Multiple program unequal error protection for digital audio broadcasting and other applications
JP3926499B2 (ja) 1999-01-22 2007-06-06 株式会社日立国際電気 畳み込み符号軟判定復号方式の受信装置
US6618451B1 (en) 1999-02-13 2003-09-09 Altocom Inc Efficient reduced state maximum likelihood sequence estimator
US6041001A (en) 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
WO2000052600A1 (fr) 1999-03-03 2000-09-08 Sony Corporation Emetteur, recepteur, systeme d'emetteur/recepteur, procede de transmission et procede de reception
US6785323B1 (en) 1999-11-22 2004-08-31 Ipr Licensing, Inc. Variable rate coding for forward link
US6466698B1 (en) 1999-03-25 2002-10-15 The United States Of America As Represented By The Secretary Of The Navy Efficient embedded image and video compression system using lifted wavelets
US6535920B1 (en) 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
US6609223B1 (en) 1999-04-06 2003-08-19 Kencast, Inc. Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter
JP3256517B2 (ja) 1999-04-06 2002-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 符号化回路、回路、パリティ生成方法及び記憶媒体
US6804202B1 (en) 1999-04-08 2004-10-12 Lg Information And Communications, Ltd. Radio protocol for mobile communication system and method
US7885340B2 (en) 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
DE60028120T2 (de) 1999-05-06 2006-12-28 Sony Corp. Datenverarbeitungsverfahren und -gerät, Datenwiedergabeverfahren und -gerät, Datenaufzeichnungsmedien
KR100416996B1 (ko) * 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
US6229824B1 (en) 1999-05-26 2001-05-08 Xm Satellite Radio Inc. Method and apparatus for concatenated convolutional endcoding and interleaving
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
AU5140200A (en) 1999-05-26 2000-12-18 Enounce, Incorporated Method and apparatus for controlling time-scale modification during multi-media broadcasts
JP2000353969A (ja) 1999-06-11 2000-12-19 Sony Corp デジタル音声放送の受信機
US6577599B1 (en) 1999-06-30 2003-06-10 Sun Microsystems, Inc. Small-scale reliable multicasting
IL141800A0 (en) * 1999-07-06 2002-03-10 Samsung Electronics Co Ltd Rate matching device and method for a data communication system
US6643332B1 (en) 1999-07-09 2003-11-04 Lsi Logic Corporation Method and apparatus for multi-level coding of digital signals
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
JP3451221B2 (ja) 1999-07-22 2003-09-29 日本無線株式会社 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体
US6453440B1 (en) 1999-08-04 2002-09-17 Sun Microsystems, Inc. System and method for detecting double-bit errors and for correcting errors due to component failures
JP2001060934A (ja) 1999-08-20 2001-03-06 Matsushita Electric Ind Co Ltd Ofdm通信装置
US6430233B1 (en) * 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
JP4284774B2 (ja) 1999-09-07 2009-06-24 ソニー株式会社 送信装置、受信装置、通信システム、送信方法及び通信方法
WO2001024474A1 (en) 1999-09-27 2001-04-05 Koninklijke Philips Electronics N.V. Partitioning of file for emulating streaming
JP2001094625A (ja) 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
US7529806B1 (en) 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
US20050160272A1 (en) 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US6523147B1 (en) 1999-11-11 2003-02-18 Ibiquity Digital Corporation Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system
US6678855B1 (en) 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6798791B1 (en) 1999-12-16 2004-09-28 Agere Systems Inc Cluster frame synchronization scheme for a satellite digital audio radio system
US6487692B1 (en) 1999-12-21 2002-11-26 Lsi Logic Corporation Reed-Solomon decoder
US6965636B1 (en) 2000-02-01 2005-11-15 2Wire, Inc. System and method for block error correction in packet-based digital communications
US20020009137A1 (en) * 2000-02-01 2002-01-24 Nelson John E. Three-dimensional video broadcasting system
IL140504A0 (en) 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
WO2001058130A2 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Coding method
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 情報データ伝送システムとその送信装置及び受信装置
AU2001244007A1 (en) 2000-03-31 2001-10-15 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
DE60121930T2 (de) 2000-04-08 2007-07-26 Sun Microsystems, Inc., Santa Clara Methode zum streamen einer einzelnen medienspur zu mehreren 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
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US6694476B1 (en) 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
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
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
US6486803B1 (en) 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
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
ATE464740T1 (de) 2000-12-15 2010-04-15 British Telecomm Übertagung von ton- und/oder bildmaterial
JP4087706B2 (ja) 2000-12-15 2008-05-21 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー オーディオおよび、またはビデオマテリアルの送信および受信
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
US8595340B2 (en) 2001-01-18 2013-11-26 Yahoo! Inc. Method and system for managing digital content, including streaming media
DE10103387A1 (de) 2001-01-26 2002-08-01 Thorsten Nordhoff Windkraftanlage mit einer Einrichtung zur Hindernisbefeuerung bzw. Nachtkennzeichnung
FI118830B (fi) 2001-02-08 2008-03-31 Nokia Corp Tietovirran toisto
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
KR100464360B1 (ko) 2001-03-30 2005-01-03 삼성전자주식회사 고속 패킷 데이터 전송 이동통신시스템에서 패킷 데이터채널에 대한 효율적인 에너지 분배 장치 및 방법
US20020143953A1 (en) 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US6785836B2 (en) 2001-04-11 2004-08-31 Broadcom Corporation In-place data transformation for fault-tolerant disk storage systems
US6820221B2 (en) 2001-04-13 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for detecting process and network failures in a distributed system
US7010052B2 (en) 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
US7035468B2 (en) * 2001-04-20 2006-04-25 Front Porch Digital Inc. Methods and apparatus for archiving, indexing and accessing audio and video data
TWI246841B (en) 2001-04-22 2006-01-01 Koninkl Philips Electronics Nv Digital transmission system and method for transmitting digital signals
US20020191116A1 (en) 2001-04-24 2002-12-19 Damien Kessler System and data format for providing seamless stream switching in a digital video recorder
US6497479B1 (en) 2001-04-27 2002-12-24 Hewlett-Packard Company Higher organic inks with good reliability and drytime
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6745364B2 (en) * 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
JP2003018568A (ja) 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd 再生システム、サーバ装置及び再生装置
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US6928603B1 (en) 2001-07-19 2005-08-09 Adaptix, Inc. System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system
US6961890B2 (en) 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7110412B2 (en) 2001-09-18 2006-09-19 Sbc Technology Resources, Inc. Method and system to transport high-quality video signals
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
US6990624B2 (en) 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
US7480703B2 (en) 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7363354B2 (en) 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
US7003712B2 (en) 2001-11-29 2006-02-21 Emin Martinian Apparatus and method for adaptive, multimode decoding
JP2003174489A (ja) 2001-12-05 2003-06-20 Ntt Docomo Inc ストリーミング配信装置、ストリーミング配信方法
FI114527B (fi) 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
KR100931915B1 (ko) 2002-01-23 2009-12-15 노키아 코포레이션 비디오 코딩시 이미지 프레임들의 그루핑
WO2003065683A1 (en) 2002-01-30 2003-08-07 Koninklijke Philips Electronics N.V. Streaming multimedia data over a network having a variable bandwidth
AU2003211057A1 (en) 2002-02-15 2003-09-09 Digital Fountain, Inc. System and method for reliably communicating the content of a live data stream
JP4126928B2 (ja) 2002-02-28 2008-07-30 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム
JP4116470B2 (ja) 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
FR2837332A1 (fr) 2002-03-15 2003-09-19 Thomson Licensing Sa Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants
WO2003090391A1 (en) * 2002-04-15 2003-10-30 Nokia Corporation Rlp logical layer of a communication station
US6677864B2 (en) 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
JP3689063B2 (ja) 2002-04-19 2005-08-31 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP3629008B2 (ja) 2002-04-19 2005-03-16 松下電器産業株式会社 データ受信装置及びデータ配信システム
WO2003092305A1 (en) 2002-04-25 2003-11-06 Sharp Kabushiki Kaisha Image encodder, image decoder, record medium, and image recorder
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7200388B2 (en) 2002-05-31 2007-04-03 Nokia Corporation Fragmented delivery of multimedia
US9240810B2 (en) * 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
AU2002368007A1 (en) 2002-06-11 2003-12-22 Telefonaktiebolaget Lm Ericsson (Publ) Generation of mixed media streams
EP2278718B1 (en) 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
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 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
CA2492751C (en) 2002-07-16 2012-06-12 Nokia Corporation A method for random access and gradual picture refresh in video coding
CN1685639A (zh) 2002-07-31 2005-10-19 夏普株式会社 数据通信装置、其间歇通信方法、记载该方法的计算机程序及记录该计算机程序的记录介质
JP2004070712A (ja) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
DK1529389T3 (en) 2002-08-13 2016-05-30 Nokia Technologies Oy Symbol Interleaving
US6985459B2 (en) * 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
WO2004030273A1 (ja) 2002-09-27 2004-04-08 Fujitsu Limited データ配信方法、システム、伝送方法及びプログラム
JP3534742B1 (ja) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
EP2355360B1 (en) * 2002-10-05 2020-08-05 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
JP2004135013A (ja) 2002-10-10 2004-04-30 Matsushita Electric Ind Co Ltd 伝送装置及び伝送方法
FI116816B (fi) 2002-10-14 2006-02-28 Nokia Corp Median suoratoisto
US8320301B2 (en) * 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
US7289451B2 (en) * 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
JP4460455B2 (ja) 2002-10-30 2010-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 適応的順方向誤り制御スキーム
JP2004165922A (ja) 2002-11-12 2004-06-10 Sony Corp 情報処理装置および方法、並びにプログラム
KR101044213B1 (ko) 2002-11-18 2011-06-29 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 비디오 전송 방법
GB0226872D0 (en) 2002-11-18 2002-12-24 British Telecomm Video transmission
KR100502609B1 (ko) 2002-11-21 2005-07-20 한국전자통신연구원 Ldpc 코드를 이용한 부호화기 및 부호화 방법
US7086718B2 (en) 2002-11-23 2006-08-08 Silverbrook Research Pty Ltd Thermal ink jet printhead with high nozzle areal density
JP2004192140A (ja) 2002-12-09 2004-07-08 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP2004193992A (ja) 2002-12-11 2004-07-08 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
US8135073B2 (en) * 2002-12-19 2012-03-13 Trident Microsystems (Far East) Ltd Enhancing video images depending on prior image enhancements
US7164882B2 (en) * 2002-12-24 2007-01-16 Poltorak Alexander I Apparatus and method for facilitating a purchase using information provided on a media playing device
US7293222B2 (en) 2003-01-29 2007-11-06 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
US7408486B2 (en) 2003-04-21 2008-08-05 Qbit Corporation System and method for using a microlet-based modem
JP2004343701A (ja) 2003-04-21 2004-12-02 Matsushita Electric Ind Co Ltd データ受信再生装置、データ受信再生方法及びデータ受信再生処理プログラム
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 サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20060177019A1 (en) 2003-06-07 2006-08-10 Vladimir Portnykh 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
CN1871804B (zh) 2003-08-21 2010-09-01 高通股份有限公司 广播/多播内容的外部编码方法及其相关装置
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 三洋電機株式会社 映像表示装置
WO2005029237A2 (en) 2003-09-15 2005-03-31 Digital Networks North America, Inc. Method and system for adaptive transcoding and transrating in a video network
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
EP1521373B1 (en) 2003-09-30 2006-08-23 Telefonaktiebolaget LM Ericsson (publ) In-place data deinterleaving
US7559004B1 (en) 2003-10-01 2009-07-07 Sandisk Corporation Dynamic redundant area configuration in a non-volatile memory system
EP2722995B1 (en) 2003-10-06 2023-04-19 QUALCOMM Incorporated Soft-Decision Decoding of Multi-Stage Chain Reaction Codes
US7614071B2 (en) * 2003-10-10 2009-11-03 Microsoft Corporation Architecture for distributed sending of media data
US7516232B2 (en) * 2003-10-10 2009-04-07 Microsoft Corporation Media organization for distributed sending of media data
CN100555213C (zh) 2003-10-14 2009-10-28 松下电器产业株式会社 数据转换器
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
KR100596705B1 (ko) 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
KR100586883B1 (ko) 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
US7609653B2 (en) 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
US20050207392A1 (en) 2004-03-19 2005-09-22 Telefonaktiebolaget Lm Ericsson (Publ) Higher layer packet framing using RLP
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
JP4433287B2 (ja) 2004-03-25 2010-03-17 ソニー株式会社 受信装置および方法、並びにプログラム
US8842175B2 (en) 2004-03-26 2014-09-23 Broadcom Corporation Anticipatory video signal reception and processing
US20050216472A1 (en) 2004-03-29 2005-09-29 David Leon Efficient multicast/broadcast distribution of formatted data
JP2007531199A (ja) 2004-03-30 2007-11-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ディスクベースのマルチメディアコンテンツのための改良されたトリックモード実行をサポートするシステムおよび方法
TW200534875A (en) 2004-04-23 2005-11-01 Lonza Ag Personal care compositions and concentrates for making the same
FR2869744A1 (fr) 2004-04-29 2005-11-04 Thomson Licensing Sa Methode de transmission de paquets de donnees numeriques et appareil implementant la methode
US7633970B2 (en) 2004-05-07 2009-12-15 Agere Systems Inc. MAC header compression for use with frame aggregation
WO2005112250A2 (en) 2004-05-07 2005-11-24 Digital Fountain, Inc. File download and streaming system
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
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7376150B2 (en) 2004-07-30 2008-05-20 Nokia Corporation Point-to-point repair response mechanism for point-to-multipoint transmission systems
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
WO2006020826A2 (en) 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP4405875B2 (ja) 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
JP2006074335A (ja) 2004-09-01 2006-03-16 Nippon Telegr & Teleph Corp <Ntt> 伝送方法、伝送システム及び伝送装置
JP4576936B2 (ja) 2004-09-02 2010-11-10 ソニー株式会社 情報処理装置、情報記録媒体、コンテンツ管理システム、およびデータ処理方法、並びにコンピュータ・プログラム
JP2006115104A (ja) 2004-10-13 2006-04-27 Daiichikosho Co Ltd 高能率符号化された時系列情報をパケット化してリアルタイム・ストリーミング送信し受信再生する方法および装置
US7529984B2 (en) * 2004-11-16 2009-05-05 Infineon Technologies Ag Seamless change of depth of a general convolutional interleaver during transmission without loss of data
US7751324B2 (en) 2004-11-19 2010-07-06 Nokia Corporation Packet stream arrangement in multimedia transmission
BRPI0518304A2 (pt) 2004-11-22 2008-11-11 Thomson Res Funding Corp mÉtodo e aparelho para mudar canal em sistema dsl
JP5425397B2 (ja) * 2004-12-02 2014-02-26 トムソン ライセンシング 適応型前方誤り訂正を行う装置及び方法
KR20060065482A (ko) 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
JP2006174032A (ja) 2004-12-15 2006-06-29 Sanyo Electric Co Ltd 画像データ伝送システム、画像データ受信装置及び画像データ送信装置
JP2006174045A (ja) 2004-12-15 2006-06-29 Ntt Communications Kk 画像配信装置、プログラム及び方法
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
WO2006096104A1 (en) 2005-03-07 2006-09-14 Telefonaktiebolaget Lm Ericsson (Publ) Multimedia channel switching
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
US7219289B2 (en) 2005-03-15 2007-05-15 Tandberg Data Corporation Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same
US7418649B2 (en) 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
US7450064B2 (en) 2005-03-22 2008-11-11 Qualcomm, Incorporated Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system
JP4487028B2 (ja) 2005-03-31 2010-06-23 ブラザー工業株式会社 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム
US7715842B2 (en) 2005-04-09 2010-05-11 Lg Electronics Inc. Supporting handover of mobile terminal
MX2007012564A (es) 2005-04-13 2007-11-15 Nokia Corp Codificacion, almacenamiento y senalizacion de informacion de escalabilidad.
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US7961700B2 (en) * 2005-04-28 2011-06-14 Qualcomm Incorporated Multi-carrier operation in data transmission systems
JP2006319743A (ja) 2005-05-13 2006-11-24 Toshiba Corp 受信装置
US8228994B2 (en) 2005-05-20 2012-07-24 Microsoft Corporation Multi-view video coding based on temporal and view decomposition
EP1884063A1 (en) 2005-05-24 2008-02-06 Nokia Corporation Method and apparatuses for hierarchical transmission/reception in digital broadcast
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
EP1755248B1 (en) 2005-08-19 2011-06-22 Hewlett-Packard Development Company, L.P. Indication of lost segments across layer boundaries
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
US9113147B2 (en) 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
US20070078876A1 (en) 2005-09-30 2007-04-05 Yahoo! Inc. Generating a stream of media data containing portions of media files using location tags
US7720062B2 (en) 2005-10-05 2010-05-18 Lg Electronics Inc. Method of processing traffic information and digital broadcasting system
US7164370B1 (en) 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
JP4950206B2 (ja) 2005-10-11 2012-06-13 ノキア コーポレイション 効率的なスケーラブルストリーム適応のためのシステム及び方法
CN100442858C (zh) 2005-10-11 2008-12-10 华为技术有限公司 分组网络中多媒体实时传输的唇同步方法及其装置
US7720096B2 (en) 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
JP5587552B2 (ja) 2005-10-19 2014-09-10 トムソン ライセンシング スケーラブル映像符号化を用いた多視点映像符号化
JP4727401B2 (ja) 2005-12-02 2011-07-20 日本電信電話株式会社 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法
FR2894421B1 (fr) 2005-12-07 2008-01-18 Canon Kk Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
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
EP2421265B1 (en) 2006-01-05 2013-10-02 Telefonaktiebolaget LM Ericsson (PUBL) Generation of media container files
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
US8767818B2 (en) 2006-01-11 2014-07-01 Nokia Corporation Backward-compatible aggregation of pictures in scalable video coding
KR100934677B1 (ko) 2006-01-12 2009-12-31 엘지전자 주식회사 다시점 비디오의 처리
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
KR101292851B1 (ko) 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 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
WO2007127741A2 (en) * 2006-04-24 2007-11-08 Sun Microsystems, Inc. Media server system
US7640353B2 (en) 2006-04-27 2009-12-29 Microsoft Corporation Guided random seek support for media streaming
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US7525993B2 (en) 2006-05-24 2009-04-28 Newport Media, Inc. Robust transmission system and method for mobile television applications
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
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
TWM302355U (en) 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
JP2008011404A (ja) 2006-06-30 2008-01-17 Toshiba Corp コンテンツ処理装置及びコンテンツ処理方法
JP4392004B2 (ja) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術
EP2044528A4 (en) 2006-07-20 2013-03-06 Sandisk Technologies Inc CONTENT DISTRIBUTION SYSTEM
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
KR101021831B1 (ko) 2006-08-24 2011-03-17 노키아 코포레이션 미디어 파일에서 트랙 관계를 표시하는 시스템 및 방법
US20080066136A1 (en) 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
WO2008054112A2 (en) 2006-10-30 2008-05-08 Lg Electronics Inc. Methods of performing random access in a wireless communication system
JP2008118221A (ja) * 2006-10-31 2008-05-22 Toshiba Corp 復号装置及び復号方法
WO2008054100A1 (en) 2006-11-01 2008-05-08 Electronics And Telecommunications Research Institute Method and apparatus for decoding metadata used for playing stereoscopic contents
BRPI0718629A2 (pt) * 2006-11-14 2013-11-26 Qualcomm Inc Sistema e métodos para comutação de canal.
US8027328B2 (en) 2006-12-26 2011-09-27 Alcatel Lucent Header compression in a wireless communication network
EP2122482B1 (en) 2007-01-05 2018-11-14 Sonic IP, Inc. Video distribution system including progressive playback
US20080168516A1 (en) 2007-01-08 2008-07-10 Christopher Lance Flick Facilitating Random Access In Streaming Content
CN101669323A (zh) 2007-01-09 2010-03-10 诺基亚公司 用于在mbms文件修复中支持文件版本控制的方法
US20080172430A1 (en) * 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
CA2656144A1 (en) * 2007-01-11 2008-07-17 Panasonic Corporation Method for trick playing on streamed and encrypted multimedia
CN101543018B (zh) 2007-01-12 2012-12-26 庆熙大学校产学协力团 网络提取层单元的分组格式、使用该格式的视频编解码算法和装置以及使用该格式进行IPv6标签交换的QoS控制算法和装置
KR20080066408A (ko) 2007-01-12 2008-07-16 삼성전자주식회사 3차원 영상 처리 장치 및 방법
US8135071B2 (en) * 2007-01-16 2012-03-13 Cisco Technology, Inc. Breakpoint determining for hybrid variable length coding using relationship to neighboring blocks
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 コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
US8275002B2 (en) 2007-05-14 2012-09-25 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
CN101933235B (zh) 2007-05-16 2014-12-17 汤姆森特许公司 编码和解码信号的装置和方法
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 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 改善されたメディア・セッション管理の方法と装置
CN101690229A (zh) 2007-06-26 2010-03-31 诺基亚公司 用于指示时间层切换点的系统和方法
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
RU2010114256A (ru) 2007-09-12 2011-10-20 Диджитал Фаунтин, Инк. (Us) Формирование и передача исходной идентификационной информации для обеспечения надежного обмена данными
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
KR101446359B1 (ko) * 2007-10-09 2014-10-01 삼성전자주식회사 이동 통신 시스템에서 맥 프로토콜 데이터 유닛의 생성과 분리 장치 및 방법
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
WO2009054907A2 (en) 2007-10-19 2009-04-30 Swarmcast, 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
ATE546795T1 (de) 2007-11-23 2012-03-15 Media Patents Sl Ein prozess für die on-line-verteilung des audiovisuellen inhalts mit reklameanzeigen, reklameanzeigenmanagementssystem, digitalrechtmanagementsystem und audiovisuellem contentspieler versehen mit besagten systemen
WO2009075766A2 (en) 2007-12-05 2009-06-18 Swarmcast, 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
WO2009130561A1 (en) 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
RU2010150108A (ru) 2008-05-07 2012-06-20 Диджитал Фаунтин, Инк. (Us) Быстрое переключение канала и защита потоковой передачи высокого качества по широковещательному каналу
US7979570B2 (en) 2008-05-12 2011-07-12 Swarmcast, Inc. Live media delivery over a packet-based computer network
JP5022301B2 (ja) 2008-05-19 2012-09-12 株式会社エヌ・ティ・ティ・ドコモ プロキシサーバおよび通信中継プログラム、並びに通信中継方法
CN101287107B (zh) 2008-05-29 2010-10-13 腾讯科技(深圳)有限公司 媒体文件的点播方法、系统和设备
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US20100011274A1 (en) * 2008-06-12 2010-01-14 Qualcomm Incorporated Hypothetical fec decoder and signalling for decoding control
US8775566B2 (en) 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
US8387150B2 (en) 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US8468426B2 (en) 2008-07-02 2013-06-18 Apple Inc. Multimedia-aware quality-of-service and error correction provisioning
US8539092B2 (en) 2008-07-09 2013-09-17 Apple Inc. Video streaming using multiple channels
US20100153578A1 (en) 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming
US8638796B2 (en) * 2008-08-22 2014-01-28 Cisco Technology, Inc. Re-ordering segments of a large number of segmented service flows
KR101019634B1 (ko) 2008-09-04 2011-03-07 에스케이 텔레콤주식회사 미디어 전송 시스템 및 방법
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8370520B2 (en) * 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US8743906B2 (en) * 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
WO2010085361A2 (en) 2009-01-26 2010-07-29 Thomson Licensing Frame packing for video coding
CN104780384B (zh) 2009-01-29 2018-01-16 杜比实验室特许公司 解码视频帧的序列的方法、编码多视图帧的序列的方法
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
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
KR20120015443A (ko) 2009-04-13 2012-02-21 리얼디 인크. 향상된 해상도의 스테레오스코픽 비디오의 엔코딩, 디코딩 및 배포
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
BR112012004798B1 (pt) * 2009-09-02 2021-09-21 Apple Inc Construção de unidade de dados de pacote de mac para sistemas sem fio
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
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 コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US8677005B2 (en) 2009-11-04 2014-03-18 Futurewei Technologies, Inc. System and method for media content streaming
KR101786050B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
KR101786051B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
CN101729857A (zh) 2009-11-24 2010-06-09 中兴通讯股份有限公司 一种接入视频服务的方法及视频播放系统
US8510375B2 (en) 2009-12-11 2013-08-13 Nokia Corporation Apparatus and methods for time mapping media segments in streaming media files
RU2690755C2 (ru) 2010-02-19 2019-06-05 Телефонактиеболагет Л М Эрикссон (Пабл) Способ и устройство для переключения воспроизведений в потоковой передаче по протоколу передачи гипертекста
KR101709903B1 (ko) 2010-02-19 2017-02-23 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 적응화를 위한 방법 및 장치
JP5071495B2 (ja) 2010-03-04 2012-11-14 ウシオ電機株式会社 光源装置
KR101202196B1 (ko) * 2010-03-11 2012-11-20 한국전자통신연구원 Mimo 시스템에서 데이터를 송수신하는 방법 및 장치
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US9497290B2 (en) 2010-06-14 2016-11-15 Blackberry Limited Media presentation description delta file for HTTP streaming
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US9596447B2 (en) * 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
KR101737325B1 (ko) * 2010-08-19 2017-05-22 삼성전자주식회사 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치
US8615023B2 (en) 2010-10-27 2013-12-24 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US20120208580A1 (en) 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10911013B2 (en) 2018-07-05 2021-02-02 Comcast Cable Communications, Llc Dynamic audio normalization process
US11558022B2 (en) 2018-07-05 2023-01-17 Comcast Cable Communications, Llc Dynamic audio normalization process
US11955940B2 (en) 2018-07-05 2024-04-09 Comcast Cable Communications, Llc Dynamic audio normalization process

Also Published As

Publication number Publication date
EP1241795A2 (en) 2002-09-18
WO2000018017A9 (en) 2001-12-20
US20040021588A1 (en) 2004-02-05
ATE230175T1 (de) 2003-01-15
DE69941342D1 (de) 2009-10-08
US20010019310A1 (en) 2001-09-06
HK1038995B (zh) 2003-06-13
US20020190878A1 (en) 2002-12-19
AU6253699A (en) 2000-04-10
US7057534B2 (en) 2006-06-06
EP2136473A3 (en) 2010-10-27
CA2345237C (en) 2008-07-15
PT2136473E (pt) 2013-03-25
US6307487B1 (en) 2001-10-23
JP2005117633A (ja) 2005-04-28
KR100598662B1 (ko) 2006-07-13
EP2290826A2 (en) 2011-03-02
CA2345237A1 (en) 2000-03-30
US7812743B2 (en) 2010-10-12
IL140705A0 (en) 2002-02-10
DE69904621T2 (de) 2003-09-25
US20080180284A1 (en) 2008-07-31
EP2136473A2 (en) 2009-12-23
EP2290826A3 (en) 2011-04-06
US6614366B2 (en) 2003-09-02
HK1038995A1 (en) 2002-04-04
EP2290826B1 (en) 2012-11-07
EP1116335B1 (en) 2002-12-18
US7233264B2 (en) 2007-06-19
ES2399220T3 (es) 2013-03-26
EP2136473B1 (en) 2013-01-16
EP1241795A3 (en) 2003-05-21
US20060087456A1 (en) 2006-04-27
DK2136473T3 (da) 2013-03-18
US9246633B2 (en) 2016-01-26
ATE441251T1 (de) 2009-09-15
JP3976163B2 (ja) 2007-09-12
JP3809957B2 (ja) 2006-08-16
ES2401177T3 (es) 2013-04-17
DE69904621D1 (de) 2003-01-30
US20080034273A1 (en) 2008-02-07
EP1116335A1 (en) 2001-07-18
EP1241795B1 (en) 2009-08-26
AU767140B2 (en) 2003-10-30
WO2000018017A1 (en) 2000-03-30
JP2003501848A (ja) 2003-01-14
US6373406B2 (en) 2002-04-16
HK1139525A1 (en) 2010-09-17

Similar Documents

Publication Publication Date Title
KR100598662B1 (ko) 패킷 전송 프로토콜용의 손상된 패킷을 복구하는 방법
EP1214793B1 (en) Group chain reaction encoder with variable number of associated input data for each output group code
JP5485302B2 (ja) ファイルダウンロードおよびストリーミングのシステム
KR20050059238A (ko) 연쇄 반응 코드의 체계적 인코딩 및 디코딩

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130628

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 14