KR101129260B1 - 신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신 - Google Patents

신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신 Download PDF

Info

Publication number
KR101129260B1
KR101129260B1 KR1020107007913A KR20107007913A KR101129260B1 KR 101129260 B1 KR101129260 B1 KR 101129260B1 KR 1020107007913 A KR1020107007913 A KR 1020107007913A KR 20107007913 A KR20107007913 A KR 20107007913A KR 101129260 B1 KR101129260 B1 KR 101129260B1
Authority
KR
South Korea
Prior art keywords
source
data
identification data
source identification
packets
Prior art date
Application number
KR1020107007913A
Other languages
English (en)
Other versions
KR20100055528A (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 KR20100055528A publication Critical patent/KR20100055528A/ko
Application granted granted Critical
Publication of KR101129260B1 publication Critical patent/KR101129260B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1841Resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • 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/0072Error control for data other than payload data, e.g. control data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint

Abstract

소스 패킷 스트림으로부터 소스 식별 정보를 생성하여 소수 식별 정보를 소스로부터 목적지로 통신 채널을 통해 신뢰성 있게 송신하는 방법이 제공된다. 상기 방법은 소스 패킷들의 세트 상에서 동작하고, 송신될 각각의 소스 패킷에 대한 소스 식별 정보가 연관된 소스 블록의 모든 또는 대부분의 다른 소스 패킷들의 소스 식별 정보를 사용하여 도출되어 전달된다. 상기 방법은 소스 식별 정보를 전달하기 위해 요구된 네트워크 대역폭를 최소화하는 기술들 및 네트워크 손상들을 극복하는 기술들을 포함한다. FEC 기술들, 재송신 기술들, 또는 FEC 기술들 및 재송신 기술들의 조합들과 결합될 때, 본 명세서에 기술된 상기 방법들은 수신기들이 손실된 소스 패킷들을 복구할 수 있게 하면서, 동시에 원래의 소스 패킷들이 변경되지 않음을 보장하고 그리하여 레거시 수신기들에 대한 역 호환성(backwards compatibility)을 보장한다.

Description

신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신{GENERATING AND COMMUNICATING SOURCE IDENTIFICATION INFORMATION TO ENABLE RELIABLE COMMUNICATIONS}
우선권
본원은 35 U.S.C. 119(e)에 의거 2007년 9월 12일 출원된 미국 출원 제60/971,884호 및 2008년 8월 29일 출원된 미국 가출원 제61/093,277호의 이익을 주장하며, 상기 출원들의 정규 출원(non-provisional)이다. 이러한 모든 출원들은 전체가 모든 목적들을 위하여 참조에 의해 편입된다.
교차-참조 문헌
이하의 참조물들은 본 명세서에 포함되어 모든 목적들을 위하여 참조에 의해 편입된다:
Luby에게 발행된 미국 특허 제6,307,487호 "Information Additive Code Generator and Decoder for Communication Systems"(이하 "Luby Ⅰ");
Luby 등의 미국 특허 제7,418,651호, "File Download and Streaming System"(이하, "Luby Ⅱ");
Shokrollahi 등에게 발행된 미국 특허 제7,068,729호, "Multi-Stage Code Generator and Decoder for Communication Systems"(이하, "Shokrollahi Ⅰ");
Luby 등의 2006년 2월 16일 공개된 미국 공개 특허 출원 제2006/0036930호, "Method and Apparatus for Fast Encoding of Data Symbols According to Half-Weight Codes"; 및
Shokrollahi 등에게 발행된 미국 특허 제6,856,263호, "Systems and Processes for Decoding Chain Reaction Codes Through Inactivation"(이하, "Shokrollahi Ⅱ")
Watson 등의 2007년 12월 27일 공개된 미국 공개 특허 출원 제2007/0300127호, "Code Generator and Decoder for Communications Systems Operating Using Hybrid Codes to Allow for Multiple Efficient Users of the Communications Systems"(이하, "Watson")
Jens Rasmussen 등에게 발행된 2007년 7월 24일자 미국 특허 제7,249,291호 "System and Method for Reliably Communicating the Content of a Live Data Stream"(이하, "Rasmussen")
본 발명은 통신 시스템들에서 데이터를 인코딩하고 디코딩하는 것에 관한 것이고, 보다 상세하게 통신들에서의 에러들 및 갭(gap)들을 규명하기 위하여 데이터를 인코딩하고 디코딩하는 통신 시스템들에 관한 것이다.
통신 채널 상의 전송기 및 수신기 사이의 파일들 및 스트림들의 송신은 많은 문헌의 주제가 되어 왔다. 바람직하게, 수신기는 소정 레벨의 확실성(certainty)으로 전송기에 의해 채널 상에서 송신된 데이터의 정확한 사본을 수신하기를 원한다. 채널이 가장 물리적으로 신뢰성 있는 시스템들을 특성화하는 완벽한 충실도(fidelity)를 갖지 않는 경우, 한 가지 관심사는 송신에서 손실되거나 손상된 데이터를 어떻게 다루는가에 관한 것이다. 손실된 데이터(소거들)는 흔히 손상된 데이터(에러들)에 비해 다루기가 더 용이한데, 그 이유는 수신기가 송신된 데이터가 손상되었을 때를 항상 인지할 수는 없기 때문이다.
다수의 에러-정정 코드들이 소거들 및/또는 에러들을 정정하기 위해 개발되어 왔다. 전형적으로, 사용된 특정 코드는 데이터가 송신되고 있는 채널의 불충실도(infidelity)들에 관한 소정 정보, 및 송신되고 있는 데이터의 속성에 기초하여 선택된다. 예를 들어, 상기 채널이 장기간들의 불충실도를 갖는 것으로 알려진 경우, 버스트 에러 코드(burst error code)가 그러한 적용에 대해 가장 적합할 수 있다. 단지 짧은, 드문 에러들만이 예상되는 경우에는, 단순한 패리티 코드(parity code)가 최적일 수 있다.
신뢰성 있는 데이터 전달을 제공하기 위하여 통상적으로 사용되는 또 다른 기술은 데이터 재송신의 사용이다. 예를 들어, 잘 알려진 TCP/IP 프로토콜은 데이터의 신뢰성 있는 전달을 보장하기 위하여 손실된 또는 소실 패킷들의 패킷 재송신을 사용한다. 또 다른 예는 HTTP 프로토콜이고, 상기 HTTP 프로토콜은 TCP/IP의 최상부 상에 구축되고 신뢰성 있는 데이터 전달을 제공하기 위하여 TCP/IP 프로토콜의 신뢰성을 사용한다. RTP 프로토콜 같은 재송신을 사용하는 다른 프로토콜들의 개선물들이 또한 수신기들에서 손실된 또는 소실 패킷들을 대처하는 방식으로서 제안되어 왔다.
스트리밍 애플리케이션들의 개선을 위해 제안된 또 다른 기술은 하나의 채널에서의 스트림에 대한 최초 데이터를 수신기로 전송하고 그 다음 제 2 채널에서의 주요 데이터 스트림을 수신기로 전송하는 것으로 전이하는 것이다. 예를 들어, Rasmussen은 그러한 방법을 제안한다. 또 다른 예로서, 최초 데이터는 수신기가 비디오 또는 멀티-미디어 스트림의 재생(play-out)을 재빨리 시작하기에 충분한 데이터를 갖고 있음을 보장하기 위하여 유니캐스트 접속을 통해 수신기로 전송될 수 있다.
본 명세서에서 사용되는 바와 같이, "통신"은 하나의 장소에서 다른 장소로 송신되는 데이터 또는 하나의 시점에서 저장되어 다른 시점에서 사용되는 데이터와같이, 공간 및/또는 시간을 통한 데이터 송신을 지칭한다. 채널은 전송기와 수신기를 분리하는 것이다. 공간에서의 채널들은 전송기와 수신기 사이의 와이어들, 네트워크들, 파이버들, 무선 매체들 등일 수 있다. 시간에서의 채널들은 데이터 저장 장치들일 수 있다. 실현될 수 있는 채널들에서, 전송기에 의해 전송되거나 저장된 데이터가 수신기에 의해 수신되거나 판독될 때 상이한 넌제로 가능성(nonzero chance)이 종종 존재하고, 그러한 차이들은 채널에 도입된 에러들로 인한 것일 수 있다.
데이터 송신은 송신기 및 수신기가 통신에 필요한 모든 계산 파워 및 전기적 파워를 가질 때 단도직입적(straightforward)이고, 송신기와 수신기 사이의 채널은 비교적 에러가 없는 통신들을 대비하기에 충분히 신뢰성이 있다. 데이터 송신은 상기 채널이 악화된 환경에 있을 때, 또는 송신기 및/또는 수신기가 제한된 능력을 가질 때 더 어렵게 된다. 특정 애플리케이션들에서, 차단되지 않는(uninterrupted) 무에러(error-free) 통신이 긴 시간 기간들에 대해 요구된다. 예를 들어, 디지털 텔레비젼 시스템들에서, 송신들이 한 번에 많은 시간(hour)들의 기간들 동안 무에러로 수신될 것이라는 점이 예상된다. 이러한 경우들에서, 데이터 송신의 문제는 심지어 비교적 낮은 에러 레벨들의 조건들에서조차 어렵다.
데이터 통신이 어려운 또 다른 시나리오는 단일 전송이 광범위하게 상이한 데이터 손실 조건들을 경험할 수 있는 다수의 수신기들로 지향되는 경우이다. 부가하여, 하나의 주어진 수신기에 의해 경험하는 조건들은 광범위로 가변될 수 있거나 시간에 걸쳐 비교적 일정할 수 있다.
데이터 손실(에러들 및/또는 소거들)을 다루는 한 가지 해결책은 순방향 에러 정정(forward error correcting; FEC) 기술들의 사용이고, 데이터는 수신기가 송신 소거들 및 에러들을 정정할 수 있는 방식으로 송신기에서 코딩된다. 실행가능한 경우, 수신기로부터 송신기로의 역방향 채널은 수신기가 이러한 에러들에 관한 정보를 송신기로 중계(relay)하는 것을 가능하게 하고, 송신기는 그 다음 그에 따라 그것의 송신 프로세스를 조정할 수 있다. 그러나, 빈번히 역방향 채널은 이용가능하거나 실행가능하지 않던지, 아니면 단지 제한된 용량으로만 이용가능하다. 예를 들어, 송신기가 다수의 수신기들로 송신하고 있는 경우들에서, 송신기는 모든 수신기들로부터의 역방항 채널들을 유지할 수 없을 수 있다. 또 다른 예에서, 통신 채널은 저장 매체일 수 있다.
예를 들어, 데이터는 시간을 통해 순방향으로 시간순으로 송신될 수 있고, 인과관계(causality)는 에러들이 일어나기 전에 에러들을 바로잡을(fix) 수 있는 역방향 채널을 배제한다. 그 결과, 통신 프로토콜들은 흔히 역방향 채널 없이 또는 제한된 용량의 역방향 채널을 갖도록 설계되어야 하고, 그와 같이 송신기는 그러한 채널 조건들에 대한 사전 지식없이 폭넓게 가변하는 채널 조건들을 다루어야 할 수 있다. 하나의 예는 브로드캐스트 또는 멀티캐스트 채널이고, 이 경우 역방향 통신은 제공되지 않거나 제공된다면 매우 제한되거나 비싸다. 그러한 상황이 관련된 또 다른 예는 저장 애플리케이션이고, 이 경우 데이터는 FEC를 사용하여 인코딩되어 저장되고, 그 다음 이후의 시점에서 데이터는 아마도 FEC 디코딩을 사용하여 복구된다.
또 다른 해결책은 어떠한 패킷들이 수신되지 않는지에 대해 이해하여 그 다음 그러한 소실 패킷들을 재송신하기 위하여 전송기에 요청들을 전송하는 수신기에 기초한 재송신에 기초한다. 어떠한 패킷들이 소실되었는지에 대한 식별은 흔히 패킷들 내에서 수행된 시퀀스 번호들에 기초한다. 그러한 프로토콜들의 예들은 재송신을 가진 TCP/IP, NORM, RTP 등을 포함한다.
또 다른 해결책은 FEC 및 재송신의 조합에 기초한다. 이러한 경우에, FEC는 순향적으로(proactively) 전송될 수 있고, 그 다음 예를 들어, 수신기가 FEC 디코더에 의해 복구될 수 있는 것보다 더 많이 손실한 경우에만, 원래의 소스 패킷들을 복구하기 위해 FEC 디코더로 충분한 패킷들을 제공하기 위하여 패킷들의 재송신 또는 부가적인 FEC 패킷들의 송신을 요청한다. 또 다른 예로서, 어떠한 FEC도 처음에 전송될 수 없고, 단지 소실 패킷들이 있는 경우에만, 수신기는 원래의 소스 패킷들을 복구하기 위해 사용될 수 있는 FEC 패킷들일 수 있는 부가 패킷들을 요청할 것이다. 예를 들어, 이것은 멀티캐스트를 경유하여 원래의 소스 스트림을 전송하고 그 다음 요청된 패킷들이 또한 동일한 스트림으로 또는 상이한 멀티캐스트 스트림으로 전송된 경우의 관심있는 해결책일 수 있다. 예를 들어, 상이한 수신기들은 상이한 개수들의 패킷들을 손실할 수 있고, 그 다음 요청된 패킷들을 전송하는 전송기는 예를 들어, 모든 수신기들이 개별적인 패킷 손실 패턴들에 독립하여 원래의 소스를 복구하도록 허용할 모든 수신기들에 의해 요청된 최대 개수의 FEC 패킷들을 전송할 수 있다.
손실될 수 있는 채널 상의 데이터 전송에 사용된 패킷 프로토콜의 경우에, 패킷 네트워크에 걸쳐 전송될 데이터의 패킷들, 파일, 스트림 또는 다른 블록은 소스 심볼들(모두 동일한 크기로 이루어질 수 있거나 블록 크기 또는 다른 인자들에 따라 크기가 변화할 수 있음)로 분할된다. 인코딩 심볼들은 FEC 코드를 사용하여 소스 심볼들로부터 생성되고, 인코딩 심볼들은 패킷들로 배치되어 전송된다. 심볼의 "크기"는 심볼이 실제로 비트 스트림으로 분해되든 그렇지 않든, 비트들로 측정될 수 있고, 여기서 심볼은 상기 심볼이 2M개의 심볼들의 알파벳으로부터 선택될 때 M 비트들의 크기를 갖는다. 그러한 패킷-기반 통신 시스템에서, 패킷-지향 소거 FEC 코딩 방식이 적합할 수 있다.
파일 송신은 그것이 네트워크에 걸쳐 송신된 데이터의 소거들 및/또는 다른 손상에도 불구하고 의도된 수신자로 하여금 원래 파일의 정확한 사본(copy)을 복구할 수 있게 한다면 신뢰성 있는 것으로 불린다. 스트림 송신은 그것이 네트워크 내부의 소거 및/또는 손상에도 불구하고 의도된 수신자로 하여금 적시에 스트림의 각각의 부분에 대한 정확한 사본을 복구할 수 있게 한다면 신뢰성 있는 것으로 불린다. 대신에 파일 또는 스트림의 소정 부분들이 복구될 수 없는 견지에서 파일 송신 및 스트림 송신 양쪽은 모두 완전히 신뢰성 있는 것은 아닐 수 있으나 다소 신뢰성이 있을 수 있거나, 스트리밍에 대해서는, 스트림의 소정 부분들이 복구되나 적시에 복구되지 않을 수 있다. 흔히 소정의 제한 조건들에 따라 가능한 높은 신뢰성을 제공하는 것이 목표이고, 이 경우 제한들의 예들은 스트리밍 애플리케이션들에 대한 적시 전달, 또는 해결책이 동작할 것으로 예상되는 네트워크 조건들의 타입일 수 있다.
패킷 손실은 산발적인 혼잡이 라우터에서의 버퍼링 메커니즘이 그것의 용량에 도달하게 하기 때문에 흔히 일어난다. 패킷 손실의 다른 원인들은 약한 신호, 간헐적인 신호 및 잡음 간섭을 포함하고, 여기서 손상된 패킷들은 폐기된다. 전달 동안의 소거들에 대한 보호는 많은 연구의 주제가 되어 왔다.
단일 송신이 하나보다 많은 수의 수신기로 지향되고 상이한 수신기들이 폭넓게 상이한 조건들을 경험하는 시스템에서, 송신들은 종종 송신기와 임의의 수신기 사이의 조건들의 소정 세트에 대해 구성되고, 더 열악한 조건들에 있는 임의의 수신기들은 송신을 신뢰성 있게 수신할 수 없다.
그러한 시나리오들에서 손실된 패킷들의 우수한 복구를 제공하는 소거 코드들이 알려져 있다. 예를 들어, 리드-솔로몬(Reed-Solomon) 코드들이 잘 알려져 있고 이러한 목적에 적응될 수 있다. 그러나, 리드-솔로몬 코드들의 알려진 단점은 그것들의 비교적 높은 계산 복잡도이다. LT™ 연쇄 반응 코드(chain reaction code)들 및 Raptor™ 다단 연쇄 반응(multi-stage chain reaction; "MSCR") 코드들을 포함한 연쇄 반응 코드들은 손실된 패킷들의 우수한 복구를 제공하고, 가변하는 채널 조건들에 많이 적응가능하다. 예를 들어, 연쇄 반응 코드들의 양상들을 기술하는 Luby Ⅰ, 및 다단 연쇄 반응 코드들의 양상들을 기술하는 Shokrollahi Ⅰ를 참조하라. 여기서, 용어 "연쇄 반응 코드"는 달리 표시되지 않는다면 연쇄 반응 코드들 또는 다단 연쇄 반응 코드들을 포함하는 것으로 이해되어야 한다.
재송신 프로토콜들은 또한 손실된 패킷들을 복구할 양호한 방법인 것으로 알려져 있다. TCP/IP, NORM, UDP 및 RTP 기반 재송신 프로토콜들은 그러한 재송신 프로토콜들의 모든 예들이다. 부가하여, 소거 코드 프로토콜들 및 재송신 프로토콜들의 조합을 사용하는 것은 손실된 패킷들을 복구하기 위해 매우 유용할 수 있다. 재송신 프로토콜들은 수신기가 수신기로 전송될 특정 패킷들 또는 패킷들의 번호들을 요청하고, 전송기가 응답하여 해당 수신기로, 또는 수신기들의 그룹들로 특정 패킷들 또는 패킷들의 번호들을 전송할 수 있는 경우의 임의의 프로토콜을 포함한다.
소정의 통신 시스템들은 동일한 스트림 내의 다른 소스 패킷들에 대한 소스 패킷의 위치 또는 시퀀스를 식별하기 위해 사용가능한 정보를 포함하는, RTP와 같은 전송 프로토콜들을 사용한다. 각각의 패킷에 대하여 시퀀스 정보를 제공함으로써, 수신기는 네트워크 오더(network order)의 범위 밖에서 수신된 패킷들을 검출하여 정정할 수 있다. 수신기는 또한 패킷들이 손실된 때를 검출할 수 있고, DVB-IPI(예를 들어, Watson에서의 설명들을 참조)의 애플리케이션 계층 FEC 기술들과 같은 애플리케이션 계층 FEC 기술들과 조합될 때, 수신기는 손실된 패킷들을 복구할 수 있고 효과적으로 네트워크 신뢰성 결함들을 가릴 수 있다. DVB 세부사항들은 DVB-IPI 표준에 대한 참조물: "DVB BlueBook A086r4 (03/07)/ETSI Technical Specification 102 034 v1.3.1"로부터 알려져 있고, 상기 참조물은 URL: http://www.dvb.org/technology/standards/a086r4.dTS102034.V1.3.1.pdf에서 이용가능하다.
다수의 전개된 통신 시스템들은 어떠한 형태의 타이밍 또는 시퀀스 정보도 포함하지 않는 전송 레벨 프로토콜(transport level protocol)들을 사용한다. 예를 들어, "로(raw) UDP" 상에서 MPEG2 전송 스트림 패킷들을 전달하는 것은 IPTV 네트워크들에서 통상적인 관행이다. 수신기에 이용가능한 유일한 시퀀스 정보는 오디오 및 비디오 기본 스트림에 임베딩되고, 그것은 액세스하기 어렵거나 신뢰성이 없을 수 있고, 일반적으로 전송 레벨에서 이용가능하지 않다. 결과적으로, 수신기로 하여금 패킷이 네트워크 오더의 범위 밖에서 수신된 때를 인식하거나 소실 패킷들을 식별하게 허용하는 로 UDP 스트림들을 가진 전송 레벨에서의 어떠한 고유의 메커니즘도 존재하지 않는다. 애플리케이션 계층 FEC(application layer FEC; "AL-FEC")와 같은 잘 알려진 메커니즘들이 손실된 패킷들을 효과적으로 복구하기 위해 사용될 수 있는 반면, 소스 스트림 패킷들 상의 전송 레벨 시퀀스 정보의 부재는 그러한 복구 기술들의 직접 적용가능성을 제한한다. 이러한 동일한 이슈들이 재송신 해결책들 및 재송신 및 AL-FEC 해결책들의 조합에 적용된다. 그리하여, 이것은 소정의 기존 접근법들에서의 일반적인 문제점이다.
소정의 통신 시스템들에서의 또 다른 문제점은 상기 부분들이 상호 관련된다는 것이다. 소정의 경우들에서, 디플로이먼트(deployment) 이후에 통신 시스템의 신뢰성을 증가시키는 것이 필수적이거나 바람직할 수 있다. 그러나, 네트워크 신뢰성에서의 개선이 필요할 수 있는 반면, 네트워크에서의 모든 수신 장치들을 한 번에 또는 모든 면에서(at all) 대체하거나 업그레이드하는 것은 전형적으로 실행가능하지 않다. 예를 들어, 네트워크 신뢰성의 저하, 증가된 트래픽 부하, 네트워크에서의 팽창들 및/또는 변화들 등으로 인하여 실제 네트워크 패킷 손실은 처음에 계획된 것보다 더 높다는 점이 판명될 수 있고 서비스 요구조건들의 품질은 경쟁적인 서비스들에 부합하기 위해 증가되어야 할 수 있으나, 새로운 수신기들을 한 번에 통신 시스템의 모든 노드들에 나가게(get out) 하거나 또는 시간에 걸쳐 그것들을 분배하여 새로운 수신기들이 도달할 때까지 소정의 수신국들을 못쓰게(out of commission) 하는 것은 비현실적일 수 있다.
레거시 장치(legacy device)들이 업그레이드되거나 새로운 수신기들에 의해 사용된, AL-FEC 또는 재송신 또는 AL-FEC 및 재송신의 조합과 같은 프로토콜 개선들에 의해 영향받지 않음을 보장하기 위하여, 동일한 전송 레벨 프로토콜을 사용하여 소스 패킷들을 계속하여 전달하는 것이 필요하다. 부가하여, 레거시 장치로 전달된 소스 패킷들이 버스트 손실(burst loss)에 더 민감하게 되지 않음을 보장하기 위하여, 동일한 소스 패킷 타이밍 분포 또는 패킷-간 타이밍을 유지하는 것이 필요하다. 소정의 통신 시스템들에서, 소스 블록 내의 소스 패킷들은 리페어 패킷(repair packet)들이 연관된 소스 패킷들 이후에 즉시 전달되게 하는 더 작은 패킷-간 갭으로 송신될 수 있고; 그러한 기술들은 소스 스트림의 버스트 손실로의 노출을 증가시킬 것이고 따라서 레거시 장치에 대한 전송 유효성을 저하시킬 것이다.
최저 비용으로 최적의 가능한 서비스를 전달하기 위하여, 통신 시스템들은 충돌하는 자원 제한들을 동시에 밸런싱하여야 한다. 네트워크 대역폭은 임계적인 자원 제한이다. 송신 및 수신 장치들은 신뢰성 있는 서비스를 지원함에 있어 네트워크 대역폭의 효과적인 사용을 가능하게 하여야 한다. 수신 장치들 상의 이용가능한 CPU 프로세싱은 전형적으로 심각한 제한이고, 이는 임의의 전송 신뢰성 향상 방법이 단지 적당한 양의 계산 노력만을 요구하여야 함을 의미한다. 부가하여, 최종 사용자가 시스템 반응성의 감소를 인지하지 못하도록, 특히 스트리밍 매체들로, 신뢰성 있는 전송 방법들과 연관된 증가된 대기시간(latency)을 제한하는 것이 또한 종종 필요하다.
본 발명의 일 실시예에 따르면, 소스 스트림으로부터 소스 식별 데이터 또는 정보로서 지칭되는 소스 식별 정보 또는 데이터를 생성하는 방법이 기술된다. 상기 방법은 원래의 소스 스트림 상에서 동작하여, 소스 패킷들의 위치를 다른 소스 패킷들에 대해 식별하기 위하여, 그리고 손실된 또는 손상된 소스 패킷들을 식별하기 위하여 수신 장치에 의해 사용될 수 있는 비교적 컴팩트한 소스 식별 정보 또는 데이터를 생성할 수 있다. 소스 식별 정보 또는 데이터 생성 방법들은 소스 패킷 식별의 컴팩트한 표현을 야기할 수 있고, 이것은 소스 패킷들의 블록에 대한 소스 식별 정보가 비교적 작은 양의 네트워크 대역폭을 사용하여 전달될 수 있게 한다. 소스 식별 정보를 도출하는 것의 계산 부하는 작다.
소스 식별 데이터는 손실된 또는 손상된 소스 패킷들의 복구를 가능하게 하기 위해 순방향 에러 정정("FEC") 기술들과 조합될 수 있다. 소스 식별 데이터는 또한 손실된 또는 손상된 소스 패킷들의 복구를 가능하게 하기 위하여 재송신 기술들과 조합되거나, FEC 기술들 및 재송신 기술들의 조합과 조합될 수 있다. 소스 식별 데이터는 또한 소정의 전송된 패킷들이 손실되거나, 손상되거나 재배열될 때조차, 수신기에서 소스 패킷들의 시퀀스가 어떤 순서로 전송기로부터 수신기로 전송되는지를 식별하는 기술로 사용될 수 있다.
본 발명의 또 다른 실시예에서, 소스 패킷들의 아이덴티티(identity) 또는 상대적 위치가 수신기 장치에서 결정될 수 있고, 그 연장으로서 수신된 소스 패킷의 부재가 도출될 수 있도록 소스 식별 데이터의 신뢰성 있는 전달을 가능하게 하는 방법 및 장치가 제공될 수 있다. 소스 식별의 신뢰성 있는 전달을 제공하기 위하여, 소스 식별을 운반하는 패킷들은 버스트 손실 또는 주기적 손실 패턴들에의 노출을 최소화하는 방식으로 송신될 수 있다. 소스 식별 데이터가 소스 패킷 콘텐트로부터 도출되기 때문에, 2 이상의 패킷들은 동일한 소스 식별 데이터를 공유하고, 이러한 방법들의 변형예들은 수신기에서의 그러한 소스 식별 충돌들을 방어할 수 있다.
본 발명의 또 다른 실시예에 따르면, 통신 채널 상에서 데이터를 송신하는 방법이 제공되고, 상기 방법은 원래의 미변경된 소스 스트림을 송신하는 단계, 및 원래의 미변경된 소스 스트림에서 손실되거나 손상된 패킷들을 효과적으로 복구하기 위하여 사용될 수 있는 부가적인 스트림들로서 FEC 리페어 데이터 및 소스 식별 데이터를 송신하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따르면, 통신 채널 상에서 데이터를 송신하는 방법이 제공되고, 상기 방법은 원래의 미변경된 소스 스트림을 송신하는 단계, 및 수신된 데이터로부터 어떤 데이터가 소실되거나 손상되었는지를 식별하여 재송신을 요청하기 위해 사용될 수 있는 부가적인 스트림들로서 소스 식별 데이터를 송신하는 단계를 포함한다. 이러한 실시예의 추가 개선예에서, 재송신된 데이터는 또한 소스 식별 정보를 사용하여 식별된다. 이러한 실시에의 추가 개선예에서, 순서가 뒤바뀐 데이터 수신이 식별되고 소스 식별 정보를 사용하여 재배열된다. 추가 개선예에서, 소스 식별 정보는 FEC를 사용하여 원래의 미변경된 소스 스트림에서의 손실되거나 손상된 데이터를 복구하기 위해 사용되고 어떤 데이터가 원래의 소스 스트림으로부터 소실되거나 손상되었는지를 식별하기 위해 그리고 소실 또는 손상된 데이터의 재송신, 또는 미변경된 소스 스트림에서의 데이터를 복구하기 위해 사용될 수 있는 부가적인 리페어 데이터의 송신을 요청하기 위해 사용된다. 이러한 실시예의 추가 개선예에서, 제 1 리페어 스트림은 원래의 미변경된 소스 스트림과 함께 송신된다. 이러한 실시예의 추가 개선예에서, 제 2 리페어 스트림이 재송신에 대한 임의의 요청들에 응답하여 송신된다. 이러한 실시예의 추가 개선예에서, 여러 다양한 스트림들 중 하나 이상이 캐싱(cache)된다.
본 발명의 또 다른 실시예에 따르면, 소스 식별 정보는 해당 소스 패킷들이 데이터의 미변경된 소스 스트림 내에서 어떤 데이터 블록과 연관되는지를 식별한다. 이러한 경우에, 각각의 미변경된 소스 패킷에 대한 고유한 식별자는 생성되지 못할 수도 있고, 즉, 소스 식별 정보는 소스 패킷이 연관된 데이터의 블록을 식별하기 위해 사용될 수 있으나, 일 블록 내부의 소스 패킷들을 서로 구별하지 못할 수 있다.
본 발명의 또 다른 실시예에 따르면, 통신 채널 상에서 송신된 데이터를 수신하는 방법이 제공되고, 상기 방법은: (1) 비-FEC 인에이블링된 수신기(non-FEC enabled receiver)에 대하여, 또는 0개 이상의 FEC 인에이블링된 수신기들에 대하여, 원래의 미변경된 소스 스트림을 수신하는 단계; (2) 하나 이상의 FEC 인에이블링된 수신기들에 대하여, 원래의 미변경된 소스 스트림 및 FEC 리페어 데이터 및 소스 식별 데이터의 부가적인 스트림들 중 일부 또는 전부를 수신하여 이것을 원래의 소스 스트림으로부터 손실된 패킷들을 효과적으로 복구하기 위하여 사용하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따르면, 통신 채널 상에서 송신된 데이터를 수신하는 방법이 제공되고, 상기 방법은: (1) 비-재송신 인에이블링된 수신기에 대하여, 또는 0개 이상의 재송신 인에이블링된 수신기들에 대하여, 원래의 미변경된 소스 스트림을 수신하는 단계; (2) 하나 이상의 재송신 인에이블링된 수신기들에 대하여, 원래의 미변경된 소스 스트림 및 재송신 리페어 데이터 및 소스 식별 데이터의 부가적인 스트림들 중 일부 또는 전부를 수신하여 이것을 원래의 소스 스트림으로부터 손실된 패킷들을 효과적으로 복구하기 위하여 사용하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따르면, 통신 채널 상에서 송신된 데이터를 수신하는 방법이 제공되고, 상기 방법은: (1) 비-FEC 및 비-재송신 인에이블링된 수신기에 대하여, 또는 0개 이상의 FEC 및 재송신 인에이블링된 수신기들에 대하여, 원래의 미변경된 소스 스트림을 수신하는 단계; (2) 하나 이상의 FEC 및 재송신 인에이블링된 수신기들에 대하여, 원래의 미변경된 소스 스트림 및 FEC 및 재송신 리페어 데이터 및 소스 식별 데이터의 부가적인 스트림들 중 일부 또는 전부를 수신하여 이것을 원래의 소스 스트림으로부터 손실된 패킷들을 효과적으로 복구하기 위하여 사용하는 단계를 포함한다.
본 발명의 또 다른 실시예들에 따르면, 통신 채널 상에서 송신된 데이터를 수신하는 방법이 제공되고, 상기 방법은: (1) FEC 인에이블링된 또는 재송신 인에이블링된 수신기에 대하여, 수신되고 있는 특정 스트림이 이용가능한 연관된 FEC 리페어 데이터 또는 재송신 데이터를 갖는지 여부를 결정하는 단계; (2) FEC 리페어 데이터 또는 재송신 데이터가 이용가능하다면, 필요할 때 FEC 및 재송신 리페어 데이터의 부가적인 스트림들 중 일부 또는 전부를 수신하고, 소스 식별 데이터를 수신하여 이것을 원래의 소스 스트림으로부터 손실된 패킷들을 효과적으로 복구하기 위하여 사용하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따르면, 통신 채널 상에서 데이터를 송신하는 방법이 제공되고, 상기 방법은 원래의 미변경된 소스 스트림을 송신하는 단계, 및 원래의 미변경된 소스 스트림에서 손실된 패킷들을 효과적으로 복구하기 위하여 사용될 수 있는 관련 데이터의 부가적인 스트림들을 송신하는 단계를 포함한다.
본 명세서를 검토 후 당업자들에서 명백한 바와 같이, 본 명세서에 기술된 방법들은 자연스럽게 전술한 것의 많은 변형예들로 확장될 수 있고, FEC 리페어 데이터의 다수 계층들을 전송하는 단계, 소스 스트림을 하나의 IP 어드레스로, 부가적인 스트림들을 다른 IP 어드레스들로 전송하는 단계, 재송신 데이터를 개별적으로 수신기들로 전송하는 단계, 동일한 재송신 데이터를 브로드캐스트 또는 멀티캐스트를 통해 다수의 수신기들로 전송하는 단계, FEC 리페어 데이터 및 재송신 데이터의 조합을 수신기들로 전송하는 단계, FEC 리페어 데이터를 수신기들의 한 세트로 전송하는 단계 및 재송신을 수신기들의 제 2 세트로 전송하는 단계, 모든 스트림들을 상이한 포트 번호들을 사용함으로써 구별되는 동일한 IP 어드레스로 전송하는 단계, 스트림들의 일부를 단지 수신기들의 특정 부분들로만 전송하고 다른 부분들에는 전송하지 않는 단계 등을 포함한다.
본 명세서에서 기술된 실시예들의 속성 및 이점들의 더 나은 이해가 명세서의 나머지 부분들을 참조하여 실현될 수 있다.
도 1은 FEC 리페어 기술들과 결합하여 사용된 본 명세서에서 기술된 소스 식별 기술들 중 하나 이상을 생성하고 사용할 수 있는 통신 시스템의 블록 다이어그램이다.
도 2는 레거시 셋-톱 박스들 및 FEC-인에이블링된 셋-톱 박스들 양자 모두를 지원하는 통신 시스템의 블록 다이어그램이다.
도 3은 리페어가 특정 스트림에 대해 이용가능한지 여부를 결정하는 FEC-인에이블링된 수신기의 상태 다이어그램이다.
도 4는 가능한 FEC-인에이블링된 수신기에 대한 흐름도이다.
도 5a는 소스 식별 데이터 방법들 중 하나의 일 예를 보여주는 흐름도이다.
도 5b는 소스 식별 데이터 방법들 중 하나의 일 예를 보여주는 블록 다이어그램이다.
도 6a는 소정의 소스 식별 데이터의 형성의 일 예를 보여주는 블록 다이어그램이다.
도 6b는 수신기가 미변경된 수신된 소스 패킷들에 대한 식별 정보를 계산하기 위해 소스 식별 데이터를 어떻게 사용할 수 있는지를 보여주는 흐름도이다.
도 7은 소정의 소스 식별 데이터의 형성의 일 예를 보여주는 블록 다이어그램이다.
도 8a는 소스 식별 데이터의 형성의 추가 세부사항들 중 일부의 예를 보여주는 블록 다이어그램이다.
도 8b는 가능한 소스 식별 데이터 포맷의 일 예를 보여주는 블록 다이어그램이다.
도 9는 소스 식별 데이터의 형성에서 소스 블록 경계들 및 이웃 소스 블록들과의 중첩의 일 예를 보여주는 블록 다이어그램이다.
도 10은 또 다른 가능한 소스 식별 데이터 포맷의 일 예를 보여주는 블록 다이어그램이다.
도 11a는 동일한 값으로 해싱하는 2개의 동일한 패킷들의 일 예를 보여주는 블록 다이어그램이다.
도 11b는 동일한 패킷들을 취급할 수 있는 시퀀스-대-위치 맵핑을 보여주는 블록 다이어그램이다.
도 12는 비-동일 패킷들이 동일한 값으로 해싱하는 일 예를 보여주는 블록 다이어그램이다.
도 13은 소스 식별 데이터가 어떻게 FEC-보호될 수 있는지를 보여주는 블록 다이어그램이다.
도 14는 FEC 리페어 심볼들이 어떻게 미변경된 소스 패킷들로부터 생성될 수 있는지를 보여주는 블록 다이어그램이다.
도 15는 FEC 리페어 데이터 및 소스 식별 데이터 양자 모두를 포함하는 패킷들에 대한 가능한 포맷을 보여주는 블록 다이어그램이다.
도 16은 일 패킷에 운반된 소스 식별 데이터로부터 소스 식별 정보의 가능한 부분 재구성을 보여주는 블록 다이어그램이다.
도 17은 수신기가 수신된 소스 데이터를 프로세싱하기 위해 소스 식별 정보를 어떻게 사용할 수 있는지의 일 예를 보여주는 흐름도이다.
도 18은 2개의 소스 블록들에 이르는 수신기에서의 수신 일시중지(time-out) 동안의 손실된 패킷들을 보여주는 블록 다이어그램이다.
도 19는 소스 블록에서 조기에 일어나는 수신기에서의 수신 일시중지 동안의 손실된 패킷들을 보여주는 블록 다이어그램이다.
도 20은 수신기에서의 수신 동안의 소스 블록 내에서의 지연된 패킷들을 보여주는 블록 다이어그램이다.
도 21은 수신기에서의 수신 동안의 소스 블록들 간의 지연된 패킷들을 보여주는 블록 다이어그램이다.
도 22는 확장된 블록 너머 횡단하는 수신기에서의 수신 동안의 지연된 패킷들을 보여주는 블록 다이어그램이다.
도 23은 확장된 블록 내에서 수신기에서의 복제 패킷 수신을 보여주는 블록 다이어그램이다.
도 24는 확장된 블록 너머 수신기에서의 복제 패킷 수신을 보여주는 블록 다이어그램이다.
도 25는 FEC 리페어 데이터 및 소스 식별 데이터를 가진 스트림들의 보호의 소정의 예시적인 결과들을 보여주는 표이다.
도 26은 FEC 리페어 데이터 및 소스 식별 데이터 및 재송신 리페어 데이터를 가진 스트림을 보호하는 것의 일 예를 보여주는 블록 다이어그램이다.
본 명세서에서 개시된 본 발명의 속성 및 이점들의 추가 이해가 명세서의 나머지 부분들 및 첨부 도면들을 참조하여 실현될 수 있다.
본 명세서에서 기술된 여러 다양한 기능 블록들은 하드웨어 및/또는 소프트웨어의 조합에 의해 구현될 수 있고, 특정 구현예들에서 소정 블록들의 기능들 중 일부 또는 전부가 조합될 수 있음이 이해되어야 한다. 유사하게, 본 명세서에서 기술된 여러 다양한 방법들이 하드웨어 및/또는 소프트웨어의 조합에 의해 구현될 수 있음이 또한 이해되어야 한다. 그리하여, "우리는 그 다음 단계 X를 행한다"로서 기술될 수 있는 계산 단계가 수행되는 경우, 그러한 기재들은 전형적으로 통신 프로세스의 일부로서 그러한 단계들을 수행하고 인간 또는 수동 상호작용을 수반하지 않는 전자 하드웨어 및/또는 소프트웨어, 또는 이와 유사한 것을 포함한다.
본 명세서에서 기술된 소정의 실시예들에서, 인코딩될 데이터는 "소스 블록들"로 분할되고, 각각의 블록은 "소스 패킷들"로서 알려진, 데이터의 다수 패킷들을 포함하고, 일 블록 내 소스 패킷들의 개수는 아마도 블록들 사이에서 가변한다. 각각의 소스 블록에 대하여, 다수의 "FEC 리페어" 패킷들이 인코더에 의해 생성되고, 그 개수는 아마도 블록들 사이에서 가변한다. "소스 패킷들" 및 "FEC 리페어", (또는 "리페어") 패킷들은 개수 면에서 소스 패킷들의 개수보다 크거나 동일한 소스 및 리페어 패킷들의 조합을 수신하는 수신기가 모든 소스 패킷들을 복구하는 것에 대한 소정의 비-제로 확률을 갖는 특성을 갖는다.
소스 식별 데이터 타입들 및 사용들
본 명세서의 소정의 실시예들에서, 소스 식별 데이터는 다른 소스 심볼들에 대한 소스 심볼들(패킷들로 또는 다른 전송 유닛들로 전송될 수 있음, 이하에서 보다 일반적으로 소스 데이터 유닛들로서 지칭됨)의 위치, 및 손실된 소스 심볼들의 위치들이 수신 장치에서 식별될 수 있게 하는 데이터를 지칭할 수 있다. 본 명세서에서 사용되는 바와 같이, 소스 심볼 맵(Source Symbol Map) 또는 소스 시스템 맵(Source System Map)(양자 모두 "SSM"으로서 지칭될 수 있음)은 소스 식별 데이터 또는 정보의 일 형태이다. 본 명세서의 목적들을 위하여, 소스 심볼 맵 및 소스 시스템 맵은 소스 식별 데이터와 상호교환적으로 사용된다. 본 명세서의 소정의 실시예들에서, 소스 식별 데이터는 수신된 패킷들과 손실된 패킷들 양자 모두의 위치들을 포함하여 다른 패킷들에 대한 패킷들의 스트림에서의 전송된 패킷들의 위치들이 수신 장치에서 식별될 수 있게 하는 데이터를 지칭할 수 있다. 본 명세서의 소정의 실시예들에서, 소스 식별 데이터는 수신기로부터의 재송신을 위하여 요청된 패킷들 또는 심볼들 또는 데이터의 다른 유닛들을 식별하기 위하여 전송기에서 사용되는 데이터를 지칭할 수 있다. 소스 식별 데이터는 소스 및 리페어 심볼들 또는 패킷들의 조합으로부터 손실된 심볼들 또는 패킷들 또는 다른 유닛들을 복구하기 위하여 수신기에서 사용될 수 있다. 소스 식별 데이터는 그들의 재송신을 요청하기 위하여 어떤 심볼들 또는 패킷들 또는 다른 데이터 유닛들이 손실되었는지를 식별하기 위해 사용될 수 있다. 소스 식별 데이터는 또한 수신기에서 다른 패킷들 또는 심볼들에 대한 패킷들 또는 심볼들의 원래의 전송 순서를 결정하기 위하여 사용될 수 있다. 소스 식별 데이터는 단일 부분으로서 간주되거나, 서브-부분들로 분할되거나, 하나의 스트림으로서 고려될 수 있는 반면, 소스 식별 데이터의 단일 부분, 서브-부분들 또는 스트림은 소스 데이터 유닛들의 전부 또는 부분들을 식별하기 위해 사용될 수 있고, 예를 들어, 소스 식별 데이터의 일 부분은 소스 블록 내에서 그러한 소스 데이터 유닛들을 식별하기 위해 사용될 수 있다. 당업자가 인식하듯이, 본 명세서에서 열거되지 않았으나, 본 명세서에 개시된 방법들 및 프로세스들을 사용하여 쉽게 추측될 수 있는 소스 식별 데이터의 다수의 다른 가능한 사용들이 존재한다. 소스 식별 데이터의 가능한 다른 타입들 및 사용들은 이하를 포함하나, 이에 제한되는 것은 아니다.
(1) 알려진 소스 데이터 유닛들에 대한 식별 라벨들을 결정하는 방법 - 소스 식별 데이터로부터 각각의 알려진 소스 데이터 유닛에 대한 짧은 식별 라벨을 결정할 능력. 한 가지 예시적인 사용은 라벨들과 연관된 소스 데이터 유닛들이 전송기로부터 수신기로 송신될 수 있도록 수신기가 수신된 소스 데이터 유닛들에 대한 라벨들을 전송기로 전송할 수 있다는 것이다. 이러한 방법의 변형예는 식별 라벨들이 가능한 소스 데이터 유닛들, 예를 들어, 특정 소스 블록에 속하는 그러한 소스 데이터 유닛들, 또는 특정된 시간 기간 내에 전송된 그러한 소스 데이터 유닛들의 제한된 세트에 대하여 결정될 수 있게 한다.
(2) 모든 소스 데이터 유닛들에 대한 식별 라벨들을 결정하는 방법 - 소스 데이터 유닛이 알려져 있든 알려져 있지 않든 소스 식별 데이터로부터 모든 소스 데이터 유닛들에 대한 짧은 식별 라벨을 결정할 능력. 한 가지 예시적인 사용은 수신된 라벨들과 연관된 소스 데이터 유닛들이 전송기로부터 수신기로 송신될 수 있도록 수신기가 소실된 소스 데이터 유닛들의 라벨들을 전송기로 전송할 수 있다는 것이다. 이러한 방법의 변형예는 식별 라벨들이 가능한 소스 데이터 유닛들, 예를 들어, 특정 소스 블록에 속하는 그러한 소스 데이터 유닛들, 또는 특정된 시간 기간 내에 전송된 그러한 소스 데이터 유닛들의 제한된 세트에 대하여 결정될 수 있게 한다.
(3) 포지셔닝 결정 방법 - 알려진 그리고 알려지지 않은 소스 데이터 유닛들에 대하여, 모든 소스 데이터 유닛들의 배열(ordering)에 관하여 각각의 소스 데이터 유닛에 대한 위치를 결정할 능력, 여기서 상기 배열은 소스 식별 데이터에 의해 결정되나 데이터 유닛들의 전송 순서와 상이하거나 스트림 또는 파일 내의 소스 데이터 유닛들의 순서와 상이할 수 있다. 한 가지 예시적인 사용은 전송기 및 수신기가 FEC 인코딩 및 FEC 디코딩을 위한 소스 블록 내에서 어디에 소스 데이터 유닛들을 배치할지를 결정하기 위하여 이러한 정보를 사용할 수 있다는 것이다. 이러한 방법의 변형예는 위치들이 가능한 소스 데이터 유닛들, 예를 들어, 특정 소스 블록에 속하는 그러한 소스 데이터 유닛들, 또는 특정된 시간 기간 내에 전송된 그러한 소스 데이터 유닛들의 제한된 세트에 대해 결정될 수 있게 한다.
(4) 시퀀싱 결정 방법 - 소스 식별 데이터로부터, 알려진 그리고 알려지지 않은 데이터 유닛들에 대하여, 모든 소스 데이터 유닛들의 전송 배열 시퀀스 또는 소스-결정된 배열 시퀀스(예컨대, 파일에서의 소스 데이터 유닛들의 순서, 또는 오디오-비디오 스트림에서의 데이터의 순서)에 대하여 각각의 소스 데이터 유닛의 위치를 결정할 능력. 한 가지 예시적인 사용은 수신기가 어떤 순서로 데이터 유닛들을 애플리케이션으로 전달할지, 예를 들어, 어떤 순서로 파일에 데이터 유닛들을 기록할지, 또는 어떤 순서로 미디어 스트림에 대한 데이터 유닛들을 미디어 플레이어로 전송할지를 결정하기 위해 이러한 배열을 사용할 수 있다. 이러한 방법의 변형예는 위치들이 가능한 소스 데이터 유닛들, 예를 들어, 특정 소스 블록에 속하는 그러한 소스 데이터 유닛들, 또는 특정된 시간 기간 내에 전송된 그러한 소스 데이터 유닛들의 제한된 세트에 대해 결정될 수 있게 한다.
포지셔닝 결정 방법이 FEC 방법과 결합하여 사용될 때, 소스 블록 내 소스 심볼들의 배열은 포지셔닝 결정 방법으로부터의 위치들에 따를 수 있고, 이러한 경우에 소스 식별 방법은 FEC 인코딩 및 디코딩 방법들이 어떻게 동작하는지와 상호작용할 수 있다. 반면, 시퀀싱 결정 방법이 FEC 방법과 결합하여 사용될 때, 소스 블록 내 소스 심볼들의 배열은 시퀀싱에 따를 수 있고, 시퀀싱은 일반적으로 시퀀싱 결정 방법에 의해 지시되지 않기 때문에, 이러한 경우에 소스 식별 방법은 대체로 FEC 인코딩 및 디코딩 방법들이 어떻게 동작하는지에 독립적일 수 있다. 소정의 경우들에서, 포지셔닝 결정 방법 및 시퀀싱 결정 방법의 조합인 소스 식별 방법이 사용될 수 있고, 예를 들어, 소스 블록 내 소스 심볼들의 위치들을 결정하기 위해 사용되는 소정의 최초 소스 식별 데이터가 존재할 수 있고, 그 다음 FEC 디코딩은 소스 심볼들의 위치들에 따라 소스 심볼들을 복구하기 위해 수행되며, 그 다음 애플리케이션으로의 전달을 위한 복구된 소스 심볼들의 시퀀싱을 결정하기 위해 사용되는 소스 블록의 일부인 소정의 부가적인 소스 식별 데이터가 존재할 수 있다.
포지셔닝 결정 방법이 재송신 방법과 결합하여 사용될 때, 수신기에 의해 재송신을 위해 요청되는 소스 패킷들은 그들의 위치들에 의해 식별될 수 있고, 예를 들어, 수신기는 재송신을 위해 요청된 소스 패킷의 위치를 전송기로 전송할 수 있다. 이러한 경우들에서, 시퀀싱 순서는 위치 순서와 상이할 수 있기 때문에, 전송기는 재송신된 패킷들의 시퀀스 오더에 따라 재송신된 패킷들을 전송할 수 있고, 수신기는 손실되지 않은 소스 패킷들의 수신의 원래 순서 및 재송신된 소스 패킷들의 수신의 순서에 기초하여 시퀀싱을 결정할 수 있다. 시퀀싱 결정 방법이 재송신 방법과 결합하여 사용될 때, 수신기에 의해 재송신을 위해 요청되는 소스 패킷들은 그들의 시퀀싱에 의해 식별될 수 있고, 예를 들어, 수신기는 재송신을 위해 요청된 소스 패킷의 시퀀스 번호를 전송기에 전송할 수 있다. 소정의 경우들에서, 포지셔닝 결정 방법 및 시퀀싱 결정 방법의 조합인 소스 식별 방법이 사용될 수 있고, 예를 들어, 소스 패킷들의 원래 송신 동안에 전송된 소스 블록 내 위치들을 결정하기 위해 사용되는 소정의 최초 소스 식별 데이터가 존재할 수 있고, 애플리케이션으로의 전달을 위한 소스 패킷들의 시퀀싱을 결정하기 위해 사용된 재송신 동안에 전송된 소정의 부가적인 소스 식별 데이터, 예를 들어, 재송신 소스 패킷들의 시퀀스 번호들이 존재할 수 있다.
당업자가 인식하듯이, 전술한 것의 많은 변형예들이 존재한다. 예를 들어, 소스 식별 방법들은 FEC 방법들 및 재송신 방법들의 조합들과 결합하여 사용될 수 있고, 상기 경우에 재송신을 위한 요청들은 특정 소스 패킷들에 대한 것, 특정 리페어 패킷들에 대한 것, 또는 특정 리페어 패킷들에 대한 것 대신에 리페어 패킷들의 특정된 번호에 대한 것일 수 있다.
FEC 방법과 결합하여 소스 식별 방법을 사용하는 것의 예
도 1은 FEC 리페어 방법들과 결합하여 사용된 본 명세서에서 기술된 소스 식별 기술들을 생성하고 사용할 수 있는 통신 시스템의 블록 다이어그램이다.
통신 시스템(100)에서, 입력 스트림 또는 파일(110)은 소스 식별 생성기(120)에 제공된다. 소스 식별 생성기(120)는 패킷들 또는 심볼들의 스트림 내의 소스 패킷들 또는 심볼들의 상대적 위치들에 대한 정보를 포함하는 소스 식별 데이터를 생성한다. 모든 소스 심볼들 또는 패킷들은 전형적으로 통신 시스템(100)의 사용에 의해 결정되는 동일한 크기를 가질 수 있거나, 또는 심볼 크기 또는 패킷 크기는 사용자마다 변화하거나 스트림 내에서 가변될 수 있다. 소스 식별 데이터의 생성은 소스 심볼 크기 또는 패킷 크기에 독립적일 수 있다.
입력 스트림 또는 파일(110)은 FEC 인코더(130)에 제공될 수 있다. 소정의 실시예들에서, FEC 인코더(130)는 조직적인 FEC 인코딩(systematic FEC encoding)을 수행하고, 조직적인 FEC 인코딩은 하나 이상의 입력 소스 심볼들 및 그들의 위치들에 기초하여 FEC 리페어 심볼들을 생성하며 종종 이러한 FEC 리페어 심볼들을 송신을 위하여 리페어 패킷들에 둔다.
통신 채널들 상에서 송신을 위하여 사용되는 입력 스트림 또는 파일(110)로부터 구성되는 소스 패킷들이 존재할 수 있고, 이러한 소스 패킷들의 구성이 소스 심볼 크기와 독립적일 수 있다는 것은 주목할만한 가치가 있다. 소스 패킷들과 소스 심볼들 간의 일-대-일 맵핑이 존재할 수도 있고 존재하지 않을 수도 있다. 소스 패킷들은 가변 길이로 이루어질 수도 있고 가변 길이로 이루어지지 않을 수도 있다.
입력 스트림 또는 파일(110)로부터의 소스 패킷들, 소스 식별 생성기(120)로부터의 소스 식별 데이터 및 FEC 인코더(130)로부터의 FEC 리페어 심볼들이 송신 모듈(140)에 제공된다. 송신 모듈(140)은 소스 식별 데이터 및 FEC 리페어 심볼들을 패킷들로 채널(145)에 전송할 수 있고; 소스 식별 데이터 및 FEC 리페어 심볼들은 이러한 프로세스 동안에 패킷들로 결합되거나 결합되지 않을 수 있다. 이러한 패킷들은 소스 패킷들과 함께 채널(145) 상에서 송신된다.
채널(145)은 소거 채널일 수 있으나, 그것이 통신 시스템(100)의 적당한 동작들에 대한 요구사항인 것은 아니다. 전형적으로, 원래의 소스 패킷들은 다른 패킷들과 논리적으로 별개인 데이터 스트림으로서 전송된다. 논리적으로 별개인 데이터 스트림들의 예들은 상이한 멀티캐스트 그룹들 상에서 전송된 스트림들, 또는 상이한 포트들로 전송된 스트림들을 포함하나, 이에 제한되는 것은 아니다. 채널(145)로 전송된 데이터 스트림들은 수신 모듈들(150 및 155)에 의해 수신될 수 있다. 수신 모듈(150)은 FEC 디코더와 함께 동작하도록 의도된 반면, 수신 모듈(155)은 FEC 디코딩을 포함하지 않을 수 있는 레거시 장치이다. 통신 시스템(100)은 레거시 수신 모듈(155)이 단지 소스 패킷들만을 수신하거나, 패킷들의 결합을 수신하나 소스 패킷들이 아닌 패킷들은 필터링하여 제거(filter out)하도록 설계될 수 있다.
레거시 수신 모듈(155)은 채널(145)로부터의 소스 패킷들을 인식하고 다루도록 인에이블링될 수 있다. 만약 임의의 리페어 패킷들 또는 소스 식별 데이터가 도달하면, 그것들은 논리적으로 별개인 스트림 상에 있을 수 있고 레거시 수신 모듈(155)에 의해 무시될 수 있다(조용히 폐기됨). 수신된 스트림(185)은 레거시 수신 모듈(155)로부터 생성된다.
수신 모듈(150)은 소스 패킷들로부터 소스 식별 데이터, 리페어 심볼들을 논리적으로 구별할 수 있다. 소스 패킷들 및 소스 식별 데이터가 소스 식별 해석기(160)에 제공되고, 소스 식별 해석기(160)로부터 소스 패킷들에 운반된 소스 심볼들을 식별하는 소스 심볼 ID들이 식별될 수 있다. 수신된 소스 심볼 값들 및 그들의 위치들 간의 관계를 제공하는 소스 식별 데이터가 FEC 디코더(170)로 전송된다.
부가하여, FEC 디코더(170)는 또한 입력으로서 FEC 리페어 심볼들 및 소스 패킷들을 취하고, FEC 리페어 심볼들 및 소스 패킷들은 양자 모두 수신 모듈(150)로부터 제공된다. FEC 디코더(170)는 소실된 소스 패킷들이 있다면 소실된 소스 패킷들을 복구하려고 시도한다. 수신된 소스 패킷들은 FEC 디코더(170)로부터의 임의의 복구된 소실된 소스 패킷들과 함께 필요하다면 복구된 스트림 또는 파일(180)을 생성하기 위해 다시 어셈블리된다. 복구된 입력 스트림 또는 파일(180)로서 전송된 소스 패킷들은 정확히, 또는 대략적으로, 그들이 입력 스트림(110)으로부터 전송되었던 원래의 순서대로 전송될 수 있다.
통신 시스템(100)의 많은 변형예들이 존재한다. 예를 들어, FEC 인코더(130)는 사용되지 않을 수 있거나, FEC 인코더(130)는, 손실된 또는 소실된 패킷들의 재송신을 위한 요청을 수신하여 그러한 패킷들을 소스 식별 데이터에 기초하여 재송신하는 재송신기 발신 모듈로 대체될 수 있다. 또 다른 예로서, FEC 디코더(170)는 사용되지 않을 수 있거나, FEC 디코더(170)는, 소스 식별 데이터에 기초하여 어떤 패킷들 또는 심볼들이 손실 또는 소실되었는지를 결정하고 그러한 소실된 패킷들 또는 심볼들에 대한 요청들을 전송하고, 재전송된 패킷들 또는 심볼들의 수신 시, 그것들을 적절한 순서로 배치하여 복구된 스트림(180)으로서 전달하는 재송신기 수신 모듈로 대체될 수 있다. 또 다른 예로서, FEC 인코더(130) 및 FEC 디코더(170)는 사용되지 않을 수 있고, 대신에, 소스 식별 정보에 기초하여 잘못-배열된 수신된 소스 패킷들을 재정렬하기 위하여 패킷-재정렬기가 FEC 디코더(170) 대신에 사용될 수 있다. 또 다른 예로서, FEC 인코더(130) 및 FEC 디코더(170)는 FEC 리페어 및 재송신 로직 및 방법들 모두의 처리를 포함하도록 개선될 수 있다. 또 다른 예로서, 소스 식별 데이터의 소정 부분들은 수신기로 직접 전송될 수 있는 반면, 소스 식별 데이터의 다른 부분들은 FEC 복구 프로세스의 일부로서 복구될 수 있다.
통신 시스템(100)은 스트림들, 파일들 또는 다른 데이터 타입들의 전달을 위해 사용될 수 있다.
심리스 (seamless) 업그레이드 경로들
통신 시스템의 완전한 업그레이드가 왜 연장된 시간 기간이 걸릴 수 있는지에 대한 여러 다양한 이유들이 존재한다. 예를 들어, 그것은 오래된 시스템들이 계산 자원들 또는 메모리에서의 제한들로 인하여 업그레이드된 시스템을 지원할 능력을 가질 수 없는 경우일 수 있다. 또 다른 예로서, 소정의 장치들은 그것들이 업그레이드될 수 없는 특성을 갖도록 설계되고, 그리하여 업그레이드는 단지 상기 장치가 업그레이드가 이미 설치된 신규 장치로 대체될 때에만 일어날 수 있다. 다른 경우들에서, 이론적으로 업그레이드가 가능할지라도, 수백만 개의 장치들 상에서 원격으로 업그레이드 소프트웨어를 설치하고 그러한 업그레이드가 정확히 동작하고 있음을 확인하며 설치 동안의 문제들을 조정하는 것 등의 비용 때문에, 매우 많은 수의 장치들을 업그레이드 하는 것이 실제로 너무 비용이 많이 들거나 위험할 수 있다. 부가하여, 설치된 매우 많은 개수의 장치들이 존재하고 그것들이 모두 시스템이 다시 동작 중이기 전에 업그레이드되어야 한다면, 완전히 업그레이드하는 데 며칠 또는 몇 달이 걸릴 수 있는, 수천, 수만 또는 심지어 수백만의 수신기들을 갖는 IPTV 서비스의 대형 동작 디플로이먼트(operational deployment)를 갖는 경우일 때처럼 업그레이드 동안 시스템을 중단하는 것은 실제로 가능하지 않을 수 있다.
그러한 경우들에, 심리스 업그레이드 경로는 매우 바람직하나 종종 달성하기 어렵다.
이전에 FEC를 사용하지 않았던 시스템 내 스트리밍 데이터의 FEC 보호의 전개에 대하여, 잘 알려진 잠재적인 심리스 업그레이드 경로가 존재한다. 이것이 행해지는 방법은 원래의 소스 스트림이 전송되는 방식으로 FEC의 애플리케이션을 설계하는 것이고, 그 다음 부가적인 FEC 리페어 데이터는 훨씬 더 높은 품질 스트림 플레이아웃(playout)을 지원하기 위해 업그레이드된 수신기들에 의해 사용될 수 있는 논리적으로 별개의 스트림으로 전송되는 반면, 동일한 시점에서 아직 업그레이드되지 않은 오래된 수신기들은 단순히 FEC 리페어 데이터를 무시하고 여전히 데이터의 원래의 소스 스트림을 사용하여 이전과 같이 동작할 수 있다. 이러한 심리스 업그레이드 경로의 가능성은 조직적인 FEC 코드들이 애플리케이션들을 스트리밍하는데 바람직한 일차적인 이유들 중 하나이다. 조직적인 FEC 코드는 원래 소스 데이터가 FEC 인코딩된 데이터의 일부로서 포함되어 전송되는 속성을 갖고, 이러한 맥락에서 생성되어 전송된 부가적인 FEC 데이터는 FEC 리페어 데이터로 불린다.
이러한 심리스 업그레이드 경로에 대한 장애물은 FEC 리페어 데이터 및 FEC 리페어 데이터를 생성한 원래의 소스 데이터 스트림 간의 연관이 수신기들에서 결정되어야 한다는 것이다. 특히, 다수의 FEC 방식들에 대하여, 원래의 소스 데이터 스트림을 포함하는 소스 심볼들 또는 패킷들은 소스 심볼 식별자들 또는 패킷 식별자들에 의해 식별 및/또는 시퀀싱될 수 있고, 소스 심볼 식별자들 또는 패킷 식별자들은 수신된 FEC 리페어 데이터로부터 소실된 또는 손실된 소스 데이터를 복구하기 위하여 FEC 디코더에 의해 사용될 수 있다. 그러나, 다수의 스트리밍 시스템들에서, 그러한 소스 심볼 또는 패킷 식별자들은 포함되지 않거나, 단지 부분적으로 포함되거나, 완전히 신뢰성이 있는 것은 아니거나, 또는 원래의 소스 스트림에서 액세스하기 어렵다. 소스 패킷 식별자 및/또는 시퀀서로서 사용될 수 있는 각각의 소스 패킷에서의 시퀀스 정보를 원래부터 자체적으로 포함하는, RTP와 같은 전송 프로토콜들이 존재하는 반면, 다수의 전개된 통신 시스템들은 이러한 프로토콜들을 이용하지 않고, 그 결과 어떠한 타이밍 또는 시퀀스 정보도 원래의 소스 패킷들에 포함되거나 전송 계층에서 액세스가능하지 않다. 한 가지 예로서, IPTV 디플로이먼트들은 종종 MPEG2 TS를 운반하는 UDP 패킷들을 사용하고, 이러한 디플로이먼트들에서, 식별자들은 종종 전송 레벨에서 쉽게 액세스 가능하거나 이용가능하지 않다. 부가하여, 원래의 소스 스트림에서의 심볼들 및 패킷들에 식별 데이터를 부가하는 것은 여러 다양한 이유들로 가능하지 않다. 이러한 이유들 가운데, 기존에 동원된 장치들은 원래의 소스 스트림이 임의의 방식으로 변경된다면 동작하지 않거나, 기존의 통신 프로토콜은 변경되지 않는 것이 바람직하거나 여러 다양한 다른 이유들로 변경되는 것이 불가능하기 때문이라는 이유가 있다. 이러한 상황들에서, 전술한 단순한 심리스 업그레이드 경로는 가능하지 않고, 다른 방법들 및 프로세스들이 필요하다.
이러한 시스템들에서의 레거시 장치들과의 호환성을 유지하기 위하여, 그리고 원래부터 자체적으로 패킷 또는 심볼 또는 데이터 시퀀싱 또는 식별 정보를 포함하지 않는 통신 시스템들의 사용을 허용하기 위하여, 본 명세서에서 도입된 방법들은 논리적으로 별개의 스트림으로 소스 패킷 시퀀스 또는 식별자 정보를 전송하는 방법들을 개시하고, 그 결과 능력있는 수신기는 FEC 리페어 데이터와 함께 이러한 정보를 수집하여 소거되거나 손실되거나 소실되거나 또는 손상된 소스 패킷들 또는 심볼들을 복구할 수 있다. 소스 식별 데이터는 일 실시예에서 개괄된 바와 같이, 이러한 정보를 포착하여 표현할 수 있다. 소정의 실시예들에서, 비록 절대적으로 요구되는 것은 아니지만, 이러한 식별자 또는 시퀀스 정보는 FEC 리페어 데이터가 전송된 채널들 중 하나에서 전송된다.
도 2는 FEC 방법들을 지원하는 장치 및 FEC 방법들을 지원하지 않는 장치의 혼합을 사용하고 있는 통신 시스템(200)에 대한 심리스 업그레이드 경로의 일 예를 보여준다. 헤드엔드 장치(Headend)(210)는 원래의 소스 데이터를 포함하는 원래 프로그램, 및 FEC 리페어 데이터 및 소스 식별 데이터를 포함하는 프로그램에 대한 리페어 양자 모두를 생성하여 코어 네트워크(220)로 전송한다. 코어 네트워크(220)는 원래 프로그램을 액세스 네트워크들(230(1),230(2))로 전송하고, FEC를 지원하지 않는 레거시 셋-톱 박스(set-top box; STB)들(240(1), 240(2))이 존재하는 액세스 네트워크(230(1))로 리페어 프로그램을 전송하지 않고, FEC 방법들을 지원하는 STB들(250(1), 250(2))이 존재하는 액세스 네트워크(230(2))로 리페어 프로그램을 전송한다. 레거시 STB(240(1)가 리페어 프로그램을 수신하나 단지 원래 프로그램만을 사용하는 변형예들, 코어 네트워크와 액세스 네트워크 간의 구분이 존재하는 않는 변형예들, 원래 프로그램 및 리페어 프로그램이 하나의 논리 스트림으로서 전송되는 변형예들, 재송신 방법들이 FEC 방법들 대신에, 또는 FEC 방법들과 조합하여 지원되는 변형예들, 셋-톱 박스들이 다른 타입들의 수신 장치들인 변형예들, 소정의 수신 장치들이 소스 식별 데이터 방법들을 지원하지 않고 소정의 수신 장치들이 FEC 방법들과 결합하여 소스 식별 데이터 방법들을 지원하며 다른 수신 장치들은 재송신 방법들과 결합하여 소스 식별 방법들을 지원하고 다른 수신 장치들은 재송신 방법들 및 FEC 방법들 양자 모두와 결합하여 소스 식별 방법들을 지원하며 다른 수신 장치들은 데이터 재배열 방법들과 결합하여 소스 식별 방법들을 지원하는 변형예들, 다수의 전송 장치들이 존재하는 변형예들, 프로그램에 대한 리페어에 대한 전송 및/또는 생성 장치가 논리적으로 아니면 물리적으로 원래 프로그램에 대한 전송 및/또는 생성 장치와 상이한 변형예들, 전송 장치들이 적어도 때때로 수신 장치들이거나 그 역인 변형예들, 소스 식별 데이터 방법들이 예를 들어, 데이터 재배열 방법들을 지원하기 위해 FEC 방법들 또는 재송신 방법들이 아닌 이유들로 지원되는 변형예들을 포함한 통신 시스템(200)의 다수의 변형예들이 존재한다.
소스 식별 방법들 및 연관된 복구 방법들(예컨대, FEC 방법들 및 재송신 방법들)을 지원하는 통신 시스템들은 그러한 방법들을 지원하지 않는 통신 시스템과 비교하여 시그널링 및 데이터 전달의 관점에서 가능한 차이점들을 거의 갖지 않는 것이 바람직하다. 예를 들어, 어떠한 특별한 사전-시그널링(pre-signaling)도 특정 스트림이 소스 식별 방법들 및 연관된 방법들을 지원하는지 여부를 나타내도록 요구되지 않는 것이 바람직한데, 여기서 사전-시그널링은 예를 들어, 전자 프로그램 가이드 또는 그것의 균등물을 포함할 수 있다. 예를 들어, 여러 다양한 이유들로, 동시에 또는 상이한 시점들에서, 데이터의 소정 스트림들은 소스 식별 방법들 및 연관된 복구 방법들을 지원할 수 있고 다른 스트림들은 그렇지 않을 수 있다. 예를 들어, 그것은 처음에는 아무런 스트림들도 소스 식별 방법들을 지원하지 않고 시간이 흐름에 따라 점점 더 많은 스트림들이 소스 식별 방법들을 지원하다가 결국에는 모든 스트림들이 소스 식별 방법들을 지원하는 경우일 수 있다. 스트림들이 소스 식별 방법들을 지원하는지 아닌지 여부를 시그널링할 필요가 없는 것, 예를 들어, 전자 프로그래밍 가이드에, 상기 가이드에 열거된 각각의 스트림이 소스 식별 방법들을 지원하는지 여부를 포함할 필요가 없는 것이 매우 바람직할 수 있다.
도 3은 소스 식별 방법들 및 FEC 방법들을 지원하는 수신 장치에서 로직으로서 사용될 수 있는 가능한 상태 다이어그램(300)의 일 예를 보여주고, 여기서, 어떠한 사전-시그널링도 특정 스트림이 소스 식별 방법들 및 FEC 방법들을 사용하는지 여부를 나타내기 위해 필요하지 않다. 상태 다이어그램(300)에서, 수신기는 처음 스트림에 합류할 때 레거시 상태(310)에서 시작하고, 즉, 수신기는 처음에 전송되고 있는 스트림이 소스 식별 방법들 및 FEC 방법들을 사용하지 않는다고 간주한다. 그럼에도 불구하고, 레거시 상태(310)에서, 수신기는 계속하여 현재 스트림에 대한 패킷들의 수신을 모니터링하고, 만약 소스 식별 데이터(또는 FEC 리페어 데이터)가 수신된다면, 수신기는 상태 다이어그램에서 SI 언-싱크(Un-Sync) 상태(320)로 이동한다. 제 1 소스 식별 데이터(또는 FEC 리페어 데이터)가 소스 식별 방법들 및 FEC 방법들을 사용하는 스트림에 대하여 수신기에 도달하기 전에 소정의 시간, 예를 들어, 100 ms가 있을 수 있고, 이것은 SI 언-싱크 상태(320)으로 이동하는 것에 소정의 대기시간을 도입한다. 수신기가 일단 SI 언-싱크 상태(320)에 있으면, 수신기는 계속하여 그것이 이용가능하다면 FEC 리페어 데이터, 및 수신기가 수신된 소실 소스 패킷들 또는 심볼들의 상대적인 배열을 식별 및/또는 결정하기 위해 소스 식별 데이터를 해석하기 위해 사용하려고 시도하는 소스 식별 데이터 양자 모두를 수신한다. 만약 수신기가 현재의 소스 식별 데이터를 해석할 수 있다면, 수신기는 SI 싱크 상태(330)로 이동한다. SI 싱크 상태(330)에서 수신기는 수신된 소실 소스 패킷들 또는 심볼들의 상대적인 배열을 식별 및/또는 결정하기 위해 소스 식별 데이터의 해석을 사용할 수 있고, 차례로 이것을 데이터의 원래의 소스 스트림의 부분들을 복구하기 위해 수신된 FEC 리페어 데이터를 사용하기 위하여 사용할 수 있다. 만약 수신기가 SI 싱크 상태(310)에 있고 더 이상 현재의 소스 식별 데이터를 해석할 수 없다면, 수신기는 현재의 소스 식별 데이터가 다시 해석될 수 있을 때까지 SI 언-싱크 상태(320)로 이동한다. 소스 데이터가 소스 블록으로 조직되고 소스 식별 데이터가 소스 블록 당 조직된다면, SI 싱크 상태(310)와 SI 언-싱크 상태(320) 간의 이동에 있어 대기시간의 양은 대략 보호 기간, 즉, 스트림으로부터 데이터의 소스 블록 상에서 수신하는데 걸리는 시간의 기간 정도일 수 있다.
상태 다이어그램(300)의 다수의 변형예들이 존재한다. 예를 들어, 재송신 방법들은 FEC 방법들을 대신하여, 또는 FEC 방법들과 결합하여 사용될 수 있다. 또 다른 예로서, 재배열 방법들은 FEC 방법들 대신에 사용될 수 있다. 또 다른 예로서, 다른 데이터가 예를 들어, FEC 리페어 또는 재송신 방법들이 사용되고 있는지 여부, 또는 무슨 타입의 FEC 코드가 사용되고 있는지, 또는 무슨 타입의 재송신 방법들이 상기 시스템에 대하여 사용 중인지를 나타내기 위하여 소스 식별 데이터에 부가하여 운반될 수 있다.
도 4는 소스 식별 방법들 및 FEC 방법들을 지원하는 수신 장치 내에서 사용될 수 있는 프로세스 흐름도의 일 예를 제공한다. 단계(420)에서, 프로세스는 패킷들의 수신을 모니터링하고, 패킷이 수신될 때 프로세스는 단계(430)로 이동한다. 단계(430)에서, 프로세스는 SI 싱크 상태가 현재 상태(도 3의 SI 싱크(330)에 있는 것에 대응함)인지 여부를 알아보도록 체크한다. 만약 SI 싱크가 단계(430)에서 현재의 상태라면, 프로세스는 단계(440)로 이동한다. 단계(440)에서, 프로세스는 수신된 패킷을 소스 식별 데이터에 기초하여 적절한 소스 블록과 연관시키고, 프로세스는 단계(450)로 진행한다. 단계(450)에서, 프로세스는 현재의 소스 블록을 FEC 디코딩할 시간인지 여부를 알아보도록 체크하고, 만약 그렇다면, 프로세스는 단계(460)로 이동하여 현재의 소스 블록을 FEC 디코딩하기 위해 수신된 소스 및 리페어 패킷들, 및 리페어 패킷들을 소스 패킷들에 관련시키는 연관된 소스 식별 데이터를 사용하며, 그 다음 단계(470)에서 현재의 소스 블록이 (예를 들어, 수신 장치 상의 미디어 플레이어로) 출력되고, 다음의 소스 블록은 현재의 소스 블록이 되며, 프로세싱은 단계(420)로 가서 계속된다. 만약 SI 싱크가 단계(430)에서 현재의 상태가 아니라면, 프로세스는 단계(480)로 이동한다. 단계(480)에서, 수신된 패킷이 소스 패킷이라면 수신된 패킷은 (예를 들어, 미디어 플레이어 장치로) 출력되고, 그렇지 않으면 폐기되며, 프로세싱은 단계(420)로 되돌아간다.
다수의 세부사항들은 도 4에 도시되지 않았다. 예를 들어, 도 4는 소스 패킷과 리페어 패킷 간의 연관 및 패킷들의 순서를 결정하기 위해 사용되는, 그리고 단계(430)에서 SI 싱크 상태의 지위를 결정하기 위해 사용되는 소스 식별 데이터의 수신을 보여주지 않는다. 도 4에 도시된 프로세스의 다수의 변형예들이 존재한다. 예를 들어, 단계(420)에서 다수의 패킷들은 단계(430)로 진행하기 이전에 수신될 수 있다.
패킷들과 심볼들 간의 관계
순방향 소거 정정 코드들은 종종 고정된 알파벳으로부터 선택된 심볼들 상에서 동작한다. 예를 들어, 심볼들은 심볼들과 M 이진 숫자(digit)들의 스트링들 간의 자명한 맵핑이 존재하는 경우에 크기 2M의 알파벳으로부터 선택될 수 있다. 그러한 심볼들은 이하에서 M 비트들의 크기를 갖는 것으로서 언급된다. 데이터는 종종 패킷들의 형태로 통신 채널을 통해 전송된다. 소정의 경우들에, 심볼들과 패킷들 간의 일-대-일 맵핑이 존재한다. 다른 경우들에, 예를 들어, Luby Ⅱ에 기술된 것들을 포함하여, 패킷들은 심볼들보다 더 클 수 있고, 패킷은 여러 심볼들을 포함한다. 부가적으로, 심볼들 및 패킷들은 동일한 데이터를 포함할 수 있으나, 비트 순서 및 배치는 상이할 수 있거나, 추가적인 정보, 예를 들어, 패킷 길이에 대한 이진 표현이 패킷 내에 명시적으로 포함되지 않은 FEC 심볼들 내에 배치될 수 있다. 동등하게, 데이터, 예를 들어, FEC 코드에 의해 보호될 필요가 없는 데이터는 FEC 심볼들에 존재하지 않는 패킷들에 존재할 수 있는데, 그 이유는 그것이 사용되지 않거나 매 패킷에서 동일한 값을 갖는 필드들을 포함하거나, 그것이 다른 방식들로 복구될 수 있기 때문이다.
재송신 방법들은 또한 심볼들에 기초할 수 있고, 여기서, 심볼은 바이트 또는 데이터의 소정의 큰 유닛일 수 있다. 예를 들어, 수신기는 파일로부터 또는 재전송될 데이터의 스트림으로부터 특정 바이트 범위를 요구할 수 있다.
소스 블록들과 심볼들 간의 관계
다수의 순방향 에러 정정 코드들은 소스 블록들로서 알려진 소스 심볼들의 이산 집합들 상에서 동작한다. 예를 들어, 소스 블록은 파일의 모든 소스 심볼들, 또는 스트리밍 서비스의 시간에서의 특정 프래그먼트의 모든 소스 심볼들을 포함할 수 있다.
각각의 소스 심볼은 그것이 속하는 소스 블록 내에 고유한 식별을 제공받는다. 이러한 식별은 종종 소스 패킷 데이터의 부분이 아니지만, FEC 디코딩 프로세스에 사용되는 정보의 피스(piece)이다.
재송신 방법들은 또한 소스 블록들에 기초할 수 있고, 재배열 방법들 또한 소스 블록들에 기초할 수 있다. 예를 들어, 소스 블록은 편리하게 수신기 메모리에 맞는 크기로 이루어질 수 있고, 예를 들어, 메모리로 도입되거나 메모리로부터 디스크로 기록된 데이터의 블록을 식별하는 것이 편리할 수 있다. 또 다른 예로서, 소스 블록은 특정 시간 기간에 걸쳐 전송된 데이터의 양에 대응하는 크기로 이루어질 수 있고, 예를 들어, 데이터가 어떤 소스 블록에 속하는지에 기초하여 다른 시간 기간 대비 하나의 시간 기간 동안에 전송된 데이터를 구별하는 것이 편리할 수 있다.
본 명세서에서 기술된 방법들의 다수의 실시예들에서, 소스 블록들이 사용된다. 당업자에게, 소스 블록들은 본 방법들의 본질적인 요소는 아니고 소스 블록들을 사용하지 않는 방법들의 변형예들이 존재함이 인식되어야 한다.
수신기들
수신기가 FEC 리페어 데이터를 이용하기 위하여, 수신기는 종종 소스 식별 데이터를 획득할 수 있어야 하고, 소스 식별 데이터는 FEC 리페어 데이터와 동일한 채널로 전달되거나 전달되지 않을 수 있다. 전송기들 및 수신기들이 소스 식별 데이터를 표현하는데 있어 동일한 프로토콜을 사용하는 것이 통상 필수적이다. 그러한 프로토콜의 예는 특정 실시예들에 주어진다. 수신기는 소스 블록들 내의 수신된 소스 패킷들의 위치들 및 소실 패킷들의 위치들을 식별하기 위하여 소스 식별 데이터를 사용한다. 그 다음, FEC 리페어 데이터는 가능하다면 이러한 소실 패킷들을 복구하기 위해 사용된다.
업그레이드 프로세스 동안에, 레거시 수신기는 소스 식별 정보 및 FEC 리페어 데이터가 수신된다면 이들 양자 모두를 무시할 수 있다. 그것은 업그레이드 이전과 같이 소스 패킷들을 수신하고, 업그레이드되고 있을 때까지 사전-업그레이드(pre-upgrade) 레벨에서 계속하여 작동할 것이다.
소스 식별 방법들
소스 식별 데이터를 표현하고 전달할 다수의 방법들이 존재한다. 일반적으로, 대역폭 오버헤드, CPU 부하, 및 서비스 품질(QoS) 간의 트레이드-오프가 존재한다.
소스 식별 방법의 사용들은 전송될 모든 소스 심볼들 또는 소스 패킷들 또는 다른 소스 데이터 유닛들 중에서, 예를 들어, 파일 또는 스트림에 대해 전송될 모든 소스 데이터 중에서 구분, 식별 또는 배열할 능력을 포함한다. 예를 들어, 재배열, 구분 또는 식별의 양이 단지 전송기와 수신기 사이의 이동 중(in flight)인 소스 데이터의 최대 양을 초과하여야 하는 경우의 데이터의 스트림에 대하여, 다른 소스 데이터 유닛들에 근접해 있는(예를 들어, 전송 순서에 있어, 또는 시간의 작은 윈도우 내에 전송된) 소스 데이터 유닛들이 구분, 식별, 또는 배열되어야 하도록 소스 식별 방법들이 적용될 수 있는 다른 경우들이 존재한다. 이러한 경우들에서, 소스 데이터 유닛들을 다수의 소스 블록들로 분할하는 소스 식별 방법들 또는 그들의 균등물이, 이것을 행하기 위한 방법들이 본 명세서 내에서 이후에 기재되는 바와 같이, 적절할 수 있다. 소스 식별 방법들에 의해 사용된 소스 블록 구조는 FEC 또는 재송신 방법들이 사용되는 경우, FEC 또는 재송신 방법들에 의해 사용된 소스 블록 구조와 일치할 수도 있고 일치하지 않을 수도 있다.
이하에서 설명되는 다수의 소스 식별 방법들이 그들의 기술(description)들에 있어 해시 함수(hash function)들을 사용한다. 해시 함수들의 기능들 중 하나는 구별되는 긴 스트링들이 구별되는 짧은 스트링들에 맵핑되는 방식으로 긴 스트링들을 훨씬 더 짧은 스트링들로 맵핑하는 것이다. 동등하게, 해시 함수들은 값들을 값들에 맵핑할 수 있다. 본 명세서에서 기술된 방법들의 목적들을 위해 사용될 수 있는 다수의 가능한 해시 함수들이 존재하고, 예를 들어, 공개물 "Pairwise Independence and Derandomization", Mike Luby 및 Avi Wigderson, Foundations and Trends in Theoretical Computer Science, Volume 1, Issue 4, 2005, Print ISSN 1551-305X, Online ISSN 1551-3068에 기재된 해시 함수들(이하 "Hash Functions")이 사용될 수 있다. 예를 들어, 해시 함수들이 특정 입력 상에서 어떻게 계산되는지를 결정하는 비트 시퀀스들을 표현함으로써, 또는 해시 함수들의 패밀리로부터 해시 함수들의 작은 리스트를 선택하고 이러한 리스트 안으로의 인덱스에 의해 해시 함수를 표현함으로써, 해시 함수들의 리스트를 표현할 다수의 방법들이 존재하고, 이들 중 소정의 것은 "Hash Functions"에 기재되어 있다. 가능한 해시 함수 패밀리의 한 가지 예는 양의 정수들 (a, b)에 의해 기술될 수 있고, 여기서 a 및 b는 0과 양의 정수 값 P 사이의 값에 이르고, 여기서 쌍 (a, b)에 의해 결정된 해시 함수는 입력 X를 (a*X + b) 모듈로(modulo) P에 맵핑한다. 이러한 예에서, 값들(a, b)의 쌍은 P가 (a, b)에 의해 고정 또는 결정된다면, (a, b)에 의해 결정된 해시 함수의 선택을 나타내도록 사용될 수 있거나, 대안적으로 P가 (a, b)에 의해 결정되지 않는다면 트리플 (a, b, P)에 의해 결정된 해시 함수의 선택을 나타내도록 사용될 수 있다. 해시 함수의 범위에서의 값들의 수는 소수(prime number)인 것으로 제한되지 않고, 값들의 수를 임의의 양수가 되도록 하는 본 명세서에 기술된 방법들과 유사한 해싱을 위한 널리-알려진 방법들이 존재한다. 해시 함수들의 이러한 동일한 패밀리(또는 해시 함수들의 임의의 패밀리)로부터 선택된 해시 함수를 나타내는 또 다른 방법은 값들의 트리플들 (a1, b1, P1), (a2, b2, P2), ...., (ai, bi, Pi)의 미리 결정된 리스트에 대한 것이고, 여기서, 인덱스 j는 (aj, bj, Pj)에 의해 결정된 해시 함수의 선택을 나타내도록 사용될 수 있다.
제 1 소스 식별 방법의 기술은 이하와 같다. 전송될 소스 데이터를 포함하는 K개의 상이한 소스 데이터 유닛들(예를 들어, 소스 패킷들 또는 심볼들)이 존재한다고 가정한다. 모든 K개의 소스 데이터 유닛들이 별개의 값들을 갖는다고 가정한다. H는 K개의 소스 데이터 유닛들을 K개의 L-비트-벡터들, v(0), v(1),..., v(k-1)로 맵핑하는 해시 함수이다. 만약 H가 랜덤 해시 함수이면, K개의 L-비트-벡터들 중 2개가 동일한 값에 맵핑될 확률은 대략 K^2/(2^(L+1))이고, 여기서 "^"는 지수함수이다. 그리하여, K개의 L-비트-벡터들이 적어도 1-eps의 확률로 구별됨을 보장하기 위하여, L의 값은 대략 2*log(K)+log(1/eps)이어야 하고, 여기서 log는 로그의 밑 2 연산자이다. 제 1 예로서, 만약 K = 1000 = 1e3 및 eps = 1e-6이면, L은 대략 40 비트들 또는 5 바이트들이어야 하고, 여기서 "1e3"는 10^3= 1000의 과학적인 지수 표현이다. 제 2 예로서, 만약 K = 1e6 및 eps = 1e-12라면, L은 대략 80 비트들 또는 10 바이트들이어야 한다. 전송기 및 수신기가 동일한 해시 함수 H를 계산할 수 있음을 가정하여, 소스 식별 데이터는 단순히 소스 데이터 유닛들의 순서에서 연쇄된, K개의 L-비트 벡터들의 연속일 수 있다. 전송기는 K개의 L-비트 벡터들을 생성하기 위하여 해시 함수 H를 각각의 소스 데이터 유닛들에 적용함으로써 K개의 소스 데이터 유닛들로부터 소스 식별 데이터를 계산할 수 있다. 소스 데이터 유닛을 수신할 때, 수신기는 대응하는 L-비트 벡터 값을 계산하기 위하여 소스 데이터 유닛에 H를 적용할 수 있고, 그 다음 소스 식별 데이터로부터 수신기는 K개의 소스 데이터 유닛들 중에 수신된 소스 데이터 유닛을 구분, 식별 및 배열할 수 있다. 즉, 이것은 시퀀싱 결정 방법의 일 예이다. 상술한 제 1 예에서, 소스 식별 데이터는 크기가 5,000 바이트이고, 상술한 제 2 예에서, 소스 식별 데이터는 크기가 10,000,000 바이트들이다. 이들 양자 모두는 특정 애플리케이션들에 대하여 크기 면에서 금지될 수도 있다. 소스 식별 데이터의 소정 사용들, 예를 들어, 소정의 재송신 방법들에 대하여, 훨씬 더 짧은 소스 식별 데이터가 수신기에서 소스 데이터 유닛을 식별하고 요청하는데 충분할 수 있다. 예를 들어, NACK 기반 재송신 방법에서, 수신기로 통신된 소스 식별 데이터는 해시 함수 H의 기술일 수 있고, 수신기는 각각의 수신된 소스 데이터 유닛 상에서 해시 함수 H를 계산하여 전송기로 수신된 소스 데이터 유닛들이 맵핑된 L-비트 벡터들을 전송할 수 있다. 이러한 경우에, 전송기는 어떤 L-비트 벡터들이 수신되는지에 기초하여 어떤 소스 데이터 유닛들이 수신기에 의해 수신되지 않았는지를 결정할 수 있다. 즉, 이것은 공지된 소스 데이터 유닛들에 대한 식별 라벨들 결정 방법의 일 예이다. 그리하여, 전송기와 수신기가 어떤 해시 함수 H가 사용되어야 할지를 사전-확립하였음을 가정하여, 수신기로 통신된 소스 식별 데이터의 양은 명시적으로 심지어 제로일 수 있다. 그러나, 이러한 경우에, 소스 데이터 유닛 라벨들의 형태로 이루어진 데이터의 상당한 양은 소실 소스 데이터 유닛들의 재송신을 요청하기 위하여 수신기로부터 송신기로 통신될 수 있다.
전술한 소스 식별 방법의 변형예는 해시 함수 H가 K개의 소스 데이터 유닛들을 별개의 벡터들에 맵핑할 때까지 전송기가 해시 함수들의 패밀리로부터 새로운 해시 함수 H를 반복적으로 선택하여 H를 K개의 소스 데이터 유닛들에 적용하게 하는 것이다. L = 2*log(K)는 H가 K개의 소스 데이터 유닛들을 적어도 1/2의 확률로 별개의 벡터들에 맵핑하기에 충분함을 주목한다. 그리하여, log(1/eps) 랜덤 해시 함수들의 리스트로부터, 적어도 1-eps의 확률로 K개의 소스 데이터 유닛들을 별개의 벡터들에 맵핑할 적어도 하나의 해시 함수가 존재한다. 이러한 경우에, 소스 식별 데이터는 전송기에 의해 선택된 해시 함수 H의 인덱스, K의 값 및 K개의 L-비트 벡터들의 연쇄일 수 있다. 수신기는 사용할 해시 함수 H의 인덱스 및 K의 값을 결정하기 위해 소스 식별 데이터를 사용할 수 있고, 수신 시, 소스 데이터 유닛은 K개의 소스 데이터 유닛들 중에서 소스 데이터 유닛을 구분하거나 식별하거나 또는 배열하는 L-비트 벡터를 결정하기 위하여 해당 소스 데이터 유닛에 H를 적용할 수 있다. 즉, 이것은 시퀀싱 결정 방법의 일 예이다. 만약 K = 1,000이라면, 소스 식별 데이터는 해시 함수, K의 값 및 1,000 20-비트 벡터들, 또는 대략 2500 바이트를 식별할 20 비트이고, 만약 K = 1,000,000이라면, 소스 식별 데이터는 해시 함수, K의 값 및 1,000,000 40-비트 벡터들, 또는 대략 5,000,000 바이트를 식별할 40 비트이다.
소스 식별 데이터 방법의 제 3 변형예는 이하와 같다. 전송기는 이하와 같이 소스 식별 데이터를 계산할 수 있다. 제 1 해시 함수 H는 예를 들어, 전술한 제 1 또는 제 2 소스 식별 데이터 방법을 사용하여 K개의 소스 데이터 유닛들을 K개의 별개의 L-비트 벡터들 u(1), u(2), ..., u(K)로 맵핑하도록 선택된다. S1 = {0, 1, ..., K-1}를 설정하자. 상이한 변형예들에서, S1의 크기는 K보다 더 크거나 작을 수 있으나, 특정 실시예들에서 K는 S1의 크기에 대한 양호한 선택일 수 있음을 주목한다. L-비트를 S1에 맵핑하는 해시 함수 H1를 선택하자. u(1), u(2), ... u(k)를 S1에 맵핑하기 위해 H1를 사용하자. 어떠한 j도 존재하지 않으면, u(j)가 H1에 대하여 u(i)와 동일한 값으로 맵핑되도록, 벡터 u(i)는 H1에 대하여 고유하게 맵핑되는 것으로 언급되고, 그렇지 않으면, u(i)는 H1에 대하여 충돌을 경험하는 것으로 언급된다. u(1), u(2), ...., u(K) 중 임계값 미만이 H1에 대하여 고유하게 맵핑된다면, H1에 대하여 고유하게 맵핑되는 u(1), u(2),..., u(K)의 개수가 적어도 임계치일 때까지 새로운 해시 함수 H1를 선택하여 전술한 프로세스를 반복한다. 임의의 i에 대하여, u(i)가 랜덤으로 균일하게 선택된 해시 함수 H1에 대하여 고유하게 맵핑될 확률은 대략 1/e이고, 여기서, e = 2.718281828459045이고, 그리하여, 비록 다른 임계치들이 K의 값에 따라 적절할 수 있지만, K/e는 임계치의 합리적인 선택이고, 예를 들어, K가 제로로 접근함에 따라, 임계치는 K에 접근하거나 도달한다. 일단 적절한 H1이 결정되면, K-비트 벡터 V1을 K개의 제로 비트들로 초기화한다. u(i)이 H1에 대하여 위치 j로 고유하게 맵핑되도록 하는 i가 존재하는 매 위치 j에 대하여, V1의 j번째 비트를 1로 설정한다.
u1(1), ...., u1(K1)는 H1에 대하여 충돌들을 경험하는 K개의 벡터들 중에서 K1개의 벡터들이다. S2 = {0, ...., K1-1}로 설정하고 L-비트 벡터들을 S2로 맵핑하는 해시 함수 H2를 선택한다. u1(1), ...., u1(K1)를 S2로 맵핑하기 위해 H2를 사용하자. 만약 u1(1), ...., u1(K1) 중 임계치 미만이 H2에 대하여 고유하게 맵핑되면, H2에 대하여 고유하게 맵핑되는 u1(1), ...., u1(K1)의 개수가 적어도 임계치일 때까지 새로운 해시 함수 H2를 선택하여 전술한 프로세스를 반복하고, 여기서 임계값은 K1에 의존할 수 있다. K-비트 벡터 V2을 K개의 제로 비트들로 초기화한다. u(i)이 H2에 대하여 위치 j로 고유하게 맵핑되도록 하는 i가 존재하는 매 위치 j에 대하여, V2의 j번째 비트를 1로 설정한다.
전술한 프로세스는 모든 u(1), u(2),...., u(K)가 해시 함수에 대하여 고유하게 맵핑될 때까지 부가적인 해시 함수들 H3, ..., Hh로 반복될 수 있다. 특히, Hh는 uh-1(1), uh-1(2),....,uh- 1(Kh)를 고유하게 맵핑하고, 여기서, uh-1(1), uh-1(2),....,uh-1(Kh)는 H1, ..., Hh -1에 대하여 충돌들을 경험하는 K개의 벡터들 중에서 Kh개의 벡터들이다.
소스 식별 데이터 방법의 제 3 변형예에 대한 단계들이 도 5a에서 개괄된다. K개의 소스 패킷들(501)을 별개의 벡터들 u(1), u(2),..., u(K)로 맵핑하는 해시 함수 H가 선택된다(502). 그 다음, 해시 함수는 이전의 해시 함수에 의해 아직 고유하게 맵핑되지 않은 K개의 벡터들의 서브세트 상에서 동작하도록 선택된다(503)(제 1 해시 함수에 대하여, 상기 서브세트는 K개의 벡터들의 전체 세트임). 그 다음 선택된 해시 함수는 K개의 벡터들의 서브세트를 해싱하도록 사용된다(504). 이러한 해싱 동안에, 정보는 동작된 패킷들의 인덱스들, 해시 함수들 및 결과 값들, 및 잠재적인 충돌들을 주목하여 레코딩된다(506). 일 실시예에서, 이러한 데이터는 비트 벡터로 레코딩된다. 그 다음, 해시 함수의 출력은 임의의 충돌들이 일어났는지 여부를 결정하기 위하여 분석될 수 있다(505). 만약 충돌들이 존재한다면, 상기 프로세스는 상이한 해시 함수로 반복된다. 만약 아무런 충돌도 존재하지 않는다면, 레코딩된 정보(506)는 소스 심볼 맵을 형성(507)하기 위해 사용될 수 있다.
소스 식별 데이터 또는 동등하게 소스 심볼 맵은 해시 함수 H의 인덱스, K의 값, 부가적인 해시 함수들의 개수 h, 해시 함수들 H1, ..., Hh의 인덱스들, K1,..., Kh-1의 값들, 및 비트-벡터들 V1, ..., Vh의 연쇄일 수 있다. 소스 데이터 유닛의 위치는 이하와 같이 결정될 수 있다. L-비트 라벨 u를 생성하기 위하여 해시 함수 H를 소스 데이터 유닛에 적용하자. u가 H1에 대하여 고유하게 맵핑되도록 하는 제 1 i가 존재할 때가지 연속적으로 H1, ..., Hh를 u에 적용하고, Hi가 u를 맵핑시키는 위치에 j를 둔다. 소스 데이터 유닛의 위치는 1로 설정된 V1, ...Vi-1에서의 총 비트들의 개수, 더하기 제 1 j 비트들 내에서 1로 설정된 Vi에서의 비트들의 개수이다. 소스 데이터 유닛들 및 그들의 위치들의 배열을 결정하기 위한 이러한 방법은 포지셔닝 결정 방법을 가능하게 하는 소스 식별 방법의 일 예이고, 즉, 소스 데이터 유닛들의 위치들은 소스 식별 데이터에 기초하여 결정되나, 상기 위치들이 반드시 소스 데이터 유닛들의 전송 위치들인 것은 아니다. 만약 K = 1000 이고 임계치 K/e가 사용되면, 소스 식별 데이터는 해시 함수들 및 2700 비트들, 또는 대략 350 바이트들을 수반하는 K의 값들, K1, K2, ..., Kh -1을 식별하기 위해 필요한 비트들이다. 만약 K = 1,000,000이면, 소스 식별 데이터는 대략 340,000 바이트들이다. 당업자가 인식하듯이, 가능한 이런 변형예의 다수의 대안예들 및 최적예들이 존재하고, 예를 들어, 값들, K1, K2, ..., Kh -1의 시퀀스는 상이하게 선택될 수 있고, 임계치들도 상이하게 선택될 수 있고, 비트-벡터들 V1, ...Vh는 엔트리 당 다수 비트들 또는 엔트리 당 가변 개수의 비트들일 수 있고, 항상 그것의 모든 비트들이 1 등으로 설정되는 경우라면 최종 벡터 Vh는 생략될 수 있다.
도 5b는 방금 기술된 소스 식별 데이터 방법의 제 3 변형예에 대한 예시이다. 도 5b의 예에서, 소스 식별 데이터가 생성되어야 하는 8개의 데이터 유닛들(510(1),...,510(8))이 존재한다. 8개의 데이터 유닛들(510)의 콘텐츠를 8개의 L-비트 해시 값들(520)의 세트로 해싱하는 제 1 해시 함수 H가 선택되고, 여기서, H는 만약 8개의 데이터 유닛 콘텐츠들(510)이 별개이면, 그러한 것이 8개의 L-비트 해시 값들(520)이 되도록 선택되고, 이러한 예에서, 8개의 L-비트 해시 값들(520)은 각각 A, B, C, D, E, F, G 및 H로 표기된다. 하나보다 많은 수의 후보 해시 함수가 모든 소스 데이터 유닛들을 고유한 해시 값들로 맵핑하는 적합한 해시 함수 H가 선택되기 전에 선택될 수도 있다. 또한, 소정의 실시예에서, 이러한 최초 해시 함수를 적용하는 것은 건너뛸 수 있고, 아래의 프로세스 개요들은 해시 값들(520) 상에서보다 오히려 소스 데이터 유닛들(510) 상에서 직접 동작함으로써 프로세싱될 수 있다.
도 5b를 참조하면, L-비트 해시 값들(520) 각각을 0 내지 7 사이에 이르는 해시 값에 맵핑하는 제 2 해시 함수 H1이 선택되고, 여기서, H1에 의해 정의된 맵은 해시 값들(520)로부터 해시 값들(530)로 화살표들에 의해 표시된다. 충분한 해시 값들(520)을 고유한 해시 값들(530)로 맵핑하도록 적합한 해시 함수 H1가 선택되기 전에 하나보다 많은 수의 후보 해시 함수가 선택될 수도 있고, 이러한 예에서 임계치는 해시 값들(520) 중 적어도 4개가 고유한 해시 값들(530)에 맵핑되도록 할 수 있다. 비트-벡터 V1(540)에서, 비트 j에 대한 1의 값은 해시 값 j(530)로 맵핑되는 고유한 해시 값(520)이 존재함을 나타내고, 비트 j에 대한 0의 값은 0개 또는 2개 이상의 해시 값들(520)이 해시 값 j(530)에 맵핑됨을 나타낸다. 이러한 예에서, V1의 제 1 비트는 0으로 설정되는데, 그 이유는 H1 하에서 어떠한 해시 값(520)도 값 0(530)으로 맵핑되지 않기 때문이고, V1의 제 2 비트가 0으로 설정되는데, 그 이유는 H1 하에서 해시 값들 B 및 C(520)가 모두 값 1(530)로 맵핑되기 때문이며, V1의 제 3 비트는 0으로 설정되는데, 그 이유는 H1 하에서 어떠한 해시 값(520)도 값 2(530)로 맵핑되지 않기 때문이고, V1의 제 4 비트는 1로 설정되는데, 그 이유는 H1 하에서 해시 값 A(520)가 값 3(530)으로 고유하게 맵핑되기 때문이고, V1의 제 5 비트는 1로 설정되는데, 그 이유는 H1 하에서 해시 값 G(520)가 값 4(530)로 고유하게 맵핑되기 때문이고, V1의 제 6 비트는 1로 설정되는데, 그 이유는 H1 하에서 해시 값 D(520)가 값 5(530)로 고유하게 맵핑되기 때문이고, V1의 제 7 비트는 0으로 설정되는데, 그 이유는 H1 하에서 해시 값들 E 및 H 양자 모두(520)가 값 6(530)으로 맵핑되기 때문이고, V1의 제 8 비트는 1로 설정되는데, 그 이유는 H1 하에서 해시 값 F(520)가 값 7(530)로 고유하게 맵핑되기 때문이다. 이러한 예에서, 해시 값들 B, C, E 및 H(520)는 고유 값들로 맵핑되지 않고, 그리하여 이러한 4개의 해시 값들(520)은 또 다른 해시 함수 H2를 사용하여 4개의 값들 0 내지 3(550)으로 맵핑되어야 하고, 충돌 비트-벡터 V2(560)를 야기한다. 이러한 예에서, 해시 값들 E 및 H(520)은 H2에 의해 고유하게 맵핑되는 반면, 해시 값들 B 및 C(520)는 H2 맵핑 하에서 충돌하고, 그리하여 2개의 해시 값들 B 및 C(520)는 또 다른 해시 함수 H3를 사용하여 2개의 값들 0 내지 1(570)로 맵핑되어야 하고, 충돌 비트-벡터 V2(580)를 야기하며, 이러한 예에서 모든 나머지 값들은 H3에 의해 고유하게 맵핑되고, 그리하여 H3는 소스 식별 데이터를 완료하기 위해 필요한 최종 해시 함수이다. 이러한 예에서 소스 식별 데이터는 값 h=3, 값들 K=8, K1=4, K2=2, 해시 함수들의 표현 H, H1, H2, H3 및 비트 벡터들 V1, V2, V3를 포함한다.
도 5b에 도시된 예에서, 충돌 비트 벡터들 V1, V2 및 V3의 바로 좌측의 인덱스들은 이러한 소스 식별 데이터에 의해 결정된 소스 데이터 유닛들의 위치들을 나타내고, 즉, 위치 0은 시퀀스 번호 0을 가진 패킷에 대응하고, 위치 1은 시퀀스 번호 6을 가진 패킷에 대응하고, 위치 2는 시퀀스 번호 3을 가진 패킷에 대응하고, 위치 3은 시퀀스 번호 5를 가진 패킷에 대응하고, 위치 4는 시퀀스 번호 7을 가진 패킷에 대응하고, 위치 5는 시퀀스 번호 4를 가진 패킷에 대응하고, 위치 6은 시퀀스 번호 2를 가진 패킷에 대응하고, 위치 7은 시퀀스 번호 1을 가진 패킷에 대응한다. 이러한 소스 식별 데이터로부터, 클라이언트는 8개의 소스 패킷들 중 임의의 수신된 또는 소실된 소스 패킷들의 위치들을 용이하게 계산할 수 있다. 그리하여, 예를 들어, 위치들은 FEC 인코딩 및 디코딩 목적들을 위하여 소스 블록 내의 소스 패킷들을 배열하기 위해 사용될 수 있고, 그리하여 소스 식별 데이터는 소스 데이터 유닛들의 FEC 인코딩 및 디코딩에 충분하다. 또 다른 예로서, 수신기는 모든 수신된 소스 데이터 유닛들의 위치들을 계산할 수 있고, 이로부터 소실된 소스 데이터 유닛들의 위치들을 결정할 수 있다. 수신기는 어떤 소스 데이터 유닛들이 그들의 위치들을 통해 요청되고 있는지를 식별하여 소실된 소스 데이터 유닛들에 대한 요청들을 전송할 수 있고, 전송기는 요청된 위치들에 기초하여 응답으로 어떤 소스 데이터 유닛들을 전송할지를 결정할 수 있다. 이러한 제 3 변형예는 포지셔닝 결정 방법을 가능하게 하는 소스 식별 방법의 예이다.
제 4 변형예로서, 제 3 변형예의 소스 식별 데이터는 K개의 소스 데이터 유닛들의 시퀀싱(예를 들어, 이들의 시퀀싱은 원래의 소스 데이터에 대응하거나 또 다른 예로서 소스 데이터 전송 순서에 대응함)과 제 3 변형예에 대하여 앞서 기술된 이들의 대응하는 위치들 간의 맵핑을 포함하도록 확대될 수 있다. 예를 들어, 부가적인 시퀀싱 데이터는 K개의 시퀀스 번호들의 배열된 리스트 SEQ = <seq0, seq1,...,seqK-1>을 포함할 수 있고, 여기서, seqj는 위치 j를 갖는 데이터 유닛의 시퀀스 번호이다. 그리하여 이러한 부가적인 시퀀싱 데이터는 시퀀스 맵핑에 대한 위치를 포함할 수 있다.
이러한 제 4 변형예에 대한 소스 식별 데이터의 예는 도 6a에 도시되고, 도 6a는 도 5b에 도시된 예의 확대이다. 도 5b의 예에 대하여, K=8 및 h=3이다. 도 6a에 도시된 바와 같이, h-값은 3(610)이고, K-값들은 K=8, K1=4, K2=2(620), 4개의 해시 함수들은 H, H1, H2, H3(630)이고, 각각의 크기들 8, 4, 2의 비트 벡터들 V1, V2, V3은 (640)에 연쇄되어 도시되고, K=8 시퀀스 번호들을 포함하는 부가적인 시퀀싱 데이터는 (650)에 도시된다. 이러한 경우에, 해시 함수들에 따라 위치 0으로 맵핑된 소스 데이터 유닛은 시퀀스 번호 0을 가진 소스 데이터 유닛이고, 위치 1로 맵핑된 소스 데이터 유닛은 시퀀스 번호 6을 갖고, 위치 2로 맵핑된 소스 데이터 유닛은 시퀀스 번호 3을 갖고, 위치 3으로 맵핑된 소스 데이터 유닛은 시퀀스 번호 5를 갖고, 위치 4로 맵핑된 소스 데이터 유닛은 시퀀스 번호 7을 갖고, 위치 5로 맵핑된 소스 데이터 유닛은 시퀀스 번호 4를 갖고, 위치 6으로 맵핑된 소스 데이터 유닛은 시퀀스 번호 2를 갖고, 위치 7로 맵핑된 소스 데이터 유닛은 시퀀스 번호 1을 갖는다.
이러한 제 4 변형예에 대하여, 소스 식별 데이터는 K개의 소스 데이터 유닛들의 순서를 구분, 식별 및 결정하는데 충분하고, 즉, 이것은 시퀀싱 결정 방법을 가능하게 하는 소스 식별 방법의 일 예이다. 이러한 제 4 변형예에 대한 소스 식별 데이터의 부가적인 크기는 제 3 변형예에서의 소스 식별 데이터의 크기를 넘는 K*log(K)이다. 예를 들어, K = 1,000이면, 제 3 변형예의 소스 식별 데이터의 크기를 넘는 부가적인 소스 식별 데이터 크기는 1250 바이트이고, K = 1,000,000이면, 부가적인 크기는 2,500,000 바이트이다. 이러한 제 4 변형예의 소정의 구현들에 있어서, 제 3 변형예에 대응하는 소스 식별 데이터의 부분은 소스 데이터 유닛들의 위치들을 결정하는 것을 가능하게 하는 수신기로 전송될 수 있고, 이것은 소스 블록(소스 블록 내의 소스 데이터 유닛들의 배열은 그것들의 위치들에 따름)을 FEC 디코딩하기 위해 사용될 수 있으며, 소스 데이터 유닛들의 시퀀싱을 결정하는 것을 가능하게 하는 소스 식별 데이터의 부가적인 부분은 FEC 디코딩 방법들을 사용하여 복구될 수 있는 소스 블록 내에 포함된다. 예를 들어, 도 6a 및 도 6b를 참조하여, h-값(610), K-값들(620), 해시 함수 기술들(630) 및 비트-벡터들(640)은 소스 블록에서의 소스 데이터 유닛들의 위치들을 결정하기 위하여 수신기로 통신되는 소스 식별 데이터를 포함할 수 있다. 소스 식별 데이터는 소스 심볼 맵(601)의 형태로 이루어질 수 있다. 소스 심볼 맵에 포함된 정보는 위치-대-시퀀스 맵핑(650)을 포함하지 않는 것을 제외하고 도 6a에 개괄된 데이터를 추출하기 위해 파싱(602)될 수 있다. (이것은 또한 603에 도시된다.) 그 다음 소스 심볼 맵은 수신된 소스 데이터 유닛들 상에서, 다수의 해시 계산들 및 충돌 해결들을 수반하는(605) 포지셔닝 결정 방법에 사용될 수 있다. 일 실시예에서, 수신된 소스 데이터 유닛들은 소스 패킷들의 형태로 이루어질 수 있다(604). 수신된 심볼들은 FEC 디코더로 공급(607)되기 이전에 유효성 확인(validate)되고 포지셔닝 정보와 연관될 수 있다(606). 위치-대-시퀀스 맵핑 데이터(650)는 FEC 디코딩 이후에 이용가능한 소스 블록에 포함되고 복구된 소스 데이터 유닛들의 시퀀싱을 결정(608)하기 위해 사용된 소스 식별 데이터를 포함할 수 있다. 도 7은 다수 개의 소스 데이터 유닛들(510(1-8))을 포함하는 소스 블록에 포함된 위치-대-시퀀스 맵핑 데이터(650)의 일 예를 보여준다. 도 7에서, 위치-대-시퀀스 맵핑 데이터(650)는 소스 블록에 포함된 소스 데이터 유닛들(510(1-8))의 말단에 추가되고, 여기서 소스 블록 내 소스 데이터 유닛들의 순서는 위치 정보에 의해 결정된다.
또 다른 변형예로서, 소스 식별 데이터는 각각의 소스 데이터 유닛의 크기를 포함하도록 더 확대될 수 있다. 이러한 변형예는 일반적으로, 모든 소스 데이터 유닛이 동일하거나 거의 동일한 크기라면 사용되지 않는다. 이러한 변형예는 가변 크기 소스 데이터 유닛들의 위치들이 보다 정확히 결정될 수 있게 한다.
도 8a는 도 5b의 예시와 유사한 소스 식별 데이터의 또 다른 실시예에 대한 예이다. 도 5b에 도시된 예와 도 8a에 도시된 예 간의 한 가지 차이점은 도 8a의 비트-벡터들이 단지 하나보다는 2개 비트들의 정보를 포함한다는 것이다. 이러한 여분 정보는 주어진 레벨에서 해싱 동작을 위하여 임의의 충돌들 또는 충돌들의 결여에 대한 더 많은 세부사항들을 통신하기 위해 사용될 수 있다. 예를 들어, 도 8a에서, "11"은 해싱된 값들 중 어떠한 것도 비트-벡터의 특정 위치로 맵핑되지 않았음을 나타내기 위해 사용되고; "00"은 비트 벡터의 특정 위치가 고유한 소스 패킷으로 맵핑됨을 나타내기 위하여 사용되며, "10"은 하나보다 많은 수의 소스 패킷이 특정 위치로 맵핑됨을 나타내기 위해 사용된다. 당업자는 다른 유사한 방식들이 이와 같은 정보를 통신하기 위해 사용될 수 있음을 인식할 것이다.
도 8b는 데이터 구조(810)로 포맷팅된 소스 식별 정보의 일 예를 도시한다. 그 다음 데이터 구조는 여러 다양한 방식들로 사용될 수 있다. 당업자는 소스 식별 정보에 대한 다수의 가능한 포맷들이 존재함을 인식할 것이다. 소스 식별 정보를 조직하기 위해 사용된 임의의 데이터 구조가 각각의 패킷으로 삽입되거나, 수신기로 송신된 선택적으로 FEC 보호될 다수의 패킷들에 걸쳐 확산될 수 있다.
도 8b에 도시된 데이터 구조(810) 실시예에서, 도시된 필드들의 각각의 대략적인 크기가 바이트들로 필드 아래에 열거된다. 필드들의 크기는 데이터 구조의 상이한 실시예들 사이에서 가변될 수 있다. 도 8b에서, G는 패킷 당 심볼들의 개수를 나타낸다. 만약 G가 0과 같다면, 이것은 가변 길이 패킷들이 존재함을 나타낸다. H는 소스 식별 정보를 형성하기 위해 사용된 모듈로 해시 시도들의 횟수를 표현한다. F는 최초 해시 함수 인덱스이다. Check는 소스 블록의 검사합계(checksum)이다. B는 해시 위치 맵 비트 할당이다. L은 해싱의 각각의 반복에 대한 해시 충돌 벡터 길이들이다. 도 8b에서, L은 첫 번째 2 레벨들에 대하여 각각 2 바이트이고, 그 이후에 각각 1 바이트이다. V는 실제의 해시 충돌 벡터들을 저장한다. M은 해시 위치 맵을 저장한다. 도 8b에서, 각각의 값은 B 비트들을 취한다. B1은 단지 G=0인 경우에만 적용가능한 선택적 필드이다. B1은 가변 패킷 심볼 번호에 대한 비트 할당을 저장한다. M1은 단지 G=0인 경우에만 적용가능한 또 다른 선택적 필드이다. M1은 패킷들로 심볼들의 개수를 저장한다.
도 8b는 또한 도 8a로부터의 데이터를 사용하여 이러한 일반적 포맷의 일 예(820)를 도시한다.
수신기가 소스 식별 데이터를 사용하는 방식
프로토콜은 전송기들과 수신기들 사이에서 해싱된 패킷들 {K, K1, ..., Kn}의 개수, 충돌 벡터들 {V, V1, ..., Vn} 및 해시 함수들 {H, H1, ..., Hn}을 통신하고, 여기서, Hn은 어떠한 충돌도 야기하지 않는다. 즉, Vn은 모두 0이다. 부가하여, 우리는 또한 모든 K개의 소스 패킷들 및 벡터들 {V, V1, ..., Vn} 내의 그들의 대응하는 해싱된 위치 간의 맵핑, 및 각각의 소스 패킷 내 심볼들의 개수를 통신한다.
수신기가 어떻게 수신된 소스 데이터에 대한 시퀀스 번호를 결정할 수 있는가에 대한 방식의 일 예로서, 수신기가 도 5b에 도시된 예에 따라 제 5 소스 데이터 유닛(510(5))을 수신한다고 가정한다. 수신기는 해시 값 E(520)를 획득하기 위하여 H를 이러한 소스 데이터 유닛에 적용한다. 수신기는 6(530)을 획득하기 위해 H1을 E(520)에 적용한다. 위치 6에서의 V1은 0(540)과 같기 때문에, 수신기는 H1에 대하여 소정의 다른 해시 값(520)에 대한 E(520)의 충돌이 존재함을 결정하고, 그리하여 3(550)을 획득하기 위하여 H2를 E(520)에 적용한다. 위치 3에서의 V2는 1(560)과 같기 때문에, 수신기는 E(520)가 H2에 대하여 고유하게 맵핑됨을 결정한다. 수신기는, V1에서의 1의 개수를 카운팅하고 그것을 V2에서의 1의 개수에 합산까지 하나, 5와 같은, 그리하여, 제 5 소스 데이터 유닛의 위치가 5인, V2의 위치 3에서의 1을 포함시키지 않음으로써, 해시 함수들에 의해 결정된 이러한 소스 데이터 유닛의 위치를 결정할 수 있다. 도 6a를 참조하면, 수신기는, 4와 같은, 그리하여 제 4 데이터 유닛의 시퀀스 번호가 4인, 위치-대-시퀀스 맵핑(650)의 위치 5를 들여다 봄으로써 제 5 소스 데이터 유닛의 시퀀스 번호를 결정할 수 있다. 각각의 수신된 소스 데이터 유닛에 대한 유사한 프로세스들을 사용함으로써, 수신기는 각각의 수신된 소스 데이터 유닛의 시퀀스 번호를 결정할 수 있고, 시퀀스 번호들은 0에서 시작하여 K-1까지 진행하면서 연속적이고, 이것은 수신기로 하여금 모든 소실된 소스 데이터 유닛들의 시퀀스 번호들을 결정할 수 있게 한다.
한 가지 잠재적인 어려움은 소스 패킷들을 그들 스스로 해당 정보를 포함할 수 없기 때문에 소스 식별 데이터가 전체 소스 데이터 대신에 한 부분을 식별하기 위해 사용될 때의 특정 소스 블록의 식별이고, 소스 블록 경계의 결정 및 통신을 위한 기존의 동기화 프로토콜이 존재하지 못할 수 있다. 한 가지 가능한 해결책은 관심 있는 소스 블록보다 더 넓은 범위의 소스 패킷들에 대해 전술한 소스 식별 통신 프로토콜을 사용하는 것이고, 즉, 생성된 소스 식별 데이터는 이전의 그리고 다음의 소스 블록과 중첩될 수 있다. 이러한 해결책의 예는 도 9에 예시된다. 소스 블록 경계는 관련된 소스 패킷들의 전체 범위 내에서 그것의 상대적 위치에 대하여 시그널링되고 통신될 수 있다. 중첩 범위가 더 넓어질수록, 이러한 프로토콜은 가외의 대역폭 오버헤드 및 CPU 부하를 대가로 더 강건(robust)해진다.
도 10은 도 8b에 도시된 예와 유사한 일 실시예의 예를 도시하나, 여기서 소스 식별 데이터의 구조는 기준으로부터의 오프셋을 표현하는 새로운 필드 "O"를 포함하도록 변형되었다. 도 9에 예시된 바와 같이, 기준으로부터의 오프셋은 소스 블록들 사이에서 생성된 소스 식별 데이터에서의 중첩의 양을 결정할 수 있다. 이러한 오프셋은 각각, 소스 블록의 시작 및 끝 양쪽 모두에서 다른 인접 소스 블록들과 소스 데이터 유닛들의 중첩을 결정하기 위해 사용될 수 있다. 이러한 오프셋 범위(인접한 소스 블록들 아래) 내에서 수신된 임의의 패킷들은 이러한 소스 식별 데이터에 의해 커버된 소스 블록 내에서의 소스 데이터 유닛들의 시퀀싱 및 포지셔닝을 결정하는 것에 대하여 폐기될 수 있다. (이러한 폐기된 패킷들이 속하는 인접한 소스 블록들을 커버하는 다른 소스 식별 데이터는 이러한 패킷들이 이러한 다른 인접한 소스 블록들 내에서 어떻게 시퀀싱되거나 포지셔닝되는지를 다룰 수 있다.)
또 다른 잠재적인 문제점은 단일 소스 블록 내의 2개 이상의 소스 패킷들이 동일할 수도 있다는 것이다. 이러한 동일한 패킷들은 항상 패킷들에 적용된 해시 함수와 무관하게 해시 충돌을 가질 것이다. 해시 위치 맵에서, 패킷 시퀀스들 양자 모두는 동일한 해시 위치에 맵핑될 것이다. 이것은 도 11a에 도시된다.
어떤 소스 패킷들이 동일한지를 나타내고 이러한 정보 피스를 수신 장치에 통신하는 방법이 구상될 수 있다. 그리하여 이러한 방법은 단지 모든 것이 서로 상이한 소스 패킷들을 다루는 수신기에 대하여 상기 문제점을 줄이고, 이러한 경우에 전술한 프로토콜이 적용될 수 있다. 우리의 통신 목적을 위하여, 2개의 패킷들이 동일하고 이들이 해시 함수에서 임의의 다른 상이한 패킷들과 충돌하지 않음을 가정하여, 동일한 패킷들로부터 야기된 충돌은 충돌 비트에 마킹되지 않는다. 동일한 출력 값은 동일한 소스 패킷들의 존재를 의미한다. 그러한 방법의 예는 이하와 같다. 도 6a에 도시된 바와 같은 위치-대-시퀀스 맵핑, 예를 들어, (650)을 사용하는 것 대신에, 시퀀스-대-위치 맵핑을 이용하자. 그 다음 자신의 시퀀스 번호와 독립적인 각각의 동일한 패킷은 동일한 위치로 맵핑되고, 각각의 동일한 패킷에 대하여, 시퀀스-대-위치 맵은 그것이 맵핑되는 동일한 위치를 그것의 시퀀스 번호에 열거할 수 있다. 예를 들어, 도 5b에 도시된 동일한 해시 값들(520)인, 도시된 H(1120)로부터의 대응하는 해시 값들을 갖는 도 11b에 도시된 바와 같이 9개의 소스 데이터 유닛들(1110)이 존재함을 가정하자. 이러한 해시 값들(1120)에 의해 결정된 포지셔닝은 도 5b에 도시된 것과 동일하다고 가정하자. 그 다음, 시퀀스-대-포지셔닝 맵핑(1130)은 시퀀스 번호들 4 및 8을 가진 동일한 소스 데이터 유닛들이 양자 모두 위치 5의 소스 데이터 유닛에 맵핑됨을 보여준다. 이러한 방법을 사용할 때, 소스 식별 데이터의 부분으로서 시퀀스 내 소스 데이터 유닛들의 개수 및 고유한 소스 데이터 유닛들의 개수, 예를 들어, 도 11b의 예에서 9 및 8을 나타내는 것이 유용할 수 있다.
또 다른 잠재적인 문제점은 모든 이용가능한 해시 함수가 패킷들에 적용된 이후에 상이한 패킷들이 여전히 충돌할 드문 경우들이 존재할 수 있다는 것이다. 이것은 제한된 해시 함수 선택 풀(pool)로 인하여, 또는 충돌을 해결하기 위해 할당된 불충분한 시간 양으로 인하여 일어날 수 있다. 이러한 경우들에서, 최종 충돌 비트 벡터는 "최종 충돌"에 대해 마킹된 하나 이상의 비트들을 가질 것이다. 수신기는 해시 충돌이 해결될 수 없는 패킷들을 단순히 폐기할 것이다. 이러한 잠재적인 해결책은 도 12에 도시된다.
소스 데이터를 식별하기 위해 소스 시스템 맵들을 사용하는 것은 다수의 이점들을 제공한다. 예를 들어, 소스 시스템 맵들은 크기 면에서 알맞게 효율적인데, 그 이유는 그것들이 한 200까지 이르는 K의 소정 값들에 대해 기술된 소정의 실시예들에 대해 각각의 소스 패킷에 대하여 대략 부가적인 4 내지 12 비트의 데이터만을 요구하기 때문이다. 또한, 다중 해시 함수는 CPU 부하를 감소시키는데 도움이 된다. 낮은 복잡도의 해시 함수들이 우선 동작되고, 그 다음 더 높은 복잡도의 해시 함수들이 이후에 많은 더 적은 개수의 패킷들 상에서 동작한다. 또 다른 이점은 어떠한 부가적인 방법도 해시 충돌을 해결하기 위해 요구되지 않는다는 것이다. 또한, 소스 시스템 맵들은 해시 함수 설계 또는 대체에 유연성이 있다.
소스 식별 데이터의 신뢰성 있는 송신
네트워크 구성에 따라, 소스 식별 데이터는 단일 채널의 FEC 리페어 데이터와 결합될 수 있거나, 또는 독립적으로 송신될 수 있다. 이러한 정보의 피스는 패킷 회복 및/또는 재배열 프로세스에 결정적이 수 있기 때문에, 소스 식별 데이터 상에 순방향 소거 정정 기술들을 적용하는 것이 선호된다. 소스 식별 데이터 상에 적용된 FEC는 원래의 소스 스트림 상의 FEC 코드와의 어떠한 관계도 지닐 필요가 없다. 그것은 동일한 FEC 코드일 수도 있고, 아닐 수도 있으며, 그것은 조직적(systematic)일 수도 있고 아닐 수도 있다. 부가하여, 이러한 소스 식별 데이터 패킷들(및 그들의 FEC 리페어 부분)의 송신을 확산하는 것은 그러한 송신이 버스트 소거(burst erasure)에 더 탄력적이기 때문에 유리할 수 있다. 또 다른 기술은 대역폭 오버헤드를 더 줄이기 위하여, 가능하다면, 원래의 소스 스트림으로부터 생성된 FEC 리페어 데이터와 소스 식별 데이터의 전부 또는 부분들을 조합하는 것이다. 소스 식별 데이터가 원래 데이터의 FEC 리페어 데이터로 사용되지 않는 경우, 소스 식별 데이터를 FEC 보호하는 것이 여전히 바람직하다.
일 실시예에서, 소스 심볼 맵은 FEC 데이터(예컨대, 연쇄 반응 코드를 사용하여 생성된 데이터)와 함께 송신될 수 있다. 그 결과, 수신기는 2개의 스트림 ? 변경되지 않은 소스 데이터를 가진 하나의 스트림 및 원래 스트림(연쇄 반응 리페어 데이터)에 대한 FEC 데이터 및 소스 심볼 맵 데이터를 가진 제 2 스트림 ?을 수신할 수 있다. 소스 심볼 맵 데이터는 또한 차례로 자신 고유의 FEC 데이터를 가질 수 있다.
도 13은 소스 심볼 맵으로부터 FEC 리페어 데이터를 생성하는 방법의 일 예를 보여준다. 도 13에서, 소스 심볼 맵은 먼저 적절한 FEC 보호 방식(1320)에 대한 입력으로서 사용되는 다수의 프래그먼트들(1310)로 분할된다. FEC 보호 방식은 원래의 소스 심볼 맵과 함께 송신될 수 있는 리페어 데이터(1330)의 세트를 생성한다. 일 실시예에서, 시퀀스 번호들은 소스 심볼 맵(1310) 및 리페어 데이터(1330)에 적용되고, 그 결과 J개의 소스 심볼 맵 프래그먼트들이 존재한다면, 소스 심볼 맵 프래그먼트들은 0 내지 J-1에 이르는 시퀀스 번호들을 할당받고, 리페어 데이터는 J로 시작하여 J로부터 상향하여 진행하는 시퀀스 번호들에 할당된다.
도 14는 소스 패킷들로부터 생성되고 있는 리페어 심볼들의 예시이다. 일 실시예에서, 리페어 심볼들은 연쇄 반응 코드를 사용하여 생성된다. 도 14에 참조된 바와 같이, 소스 패킷들은 다수의 소스 심볼들을 포함할 수 있고, 소스 패킷은 각각 상이한 개수의 심볼들을 포함할 수 있다.
도 15는 일 실시예에서의 리페어 패킷 정보의 구조를 도시하고, 여기서 리페어 패킷은 FEC 데이터 및 소스 식별 데이터 양자 모두를 포함한다. 도 15에 도시된 실시예에서, 소스 식별 데이터는 소스 심볼 맵의 형태로 이루어진다. 도 15에서, R은 패킷에서의 FEC 리페어 심볼들의 개수를 나타낸다. 드문 경우에, 만약 패킷에 아무런 리페어 심볼들도 존재하지 않는다면, R은 0일 수 있다. SBN은 이러한 패킷에 의해 보호되는 소스 블록 번호를 나타낸다. 도 15에 도시된 실시예에서, SBN은 0-4095 범위에 이를 수 있다. PP는 FEC 방식에 의해 제공된 보호 기간이다. 도 15에 도시된 실시예에서, PP는 10 ms의 유닛들에 있다. SBN 및 PP는 양자 모두 스트림의 동기화를 개선하기 위해 사용될 수 있다. ESI는 패킷 내 제 1 FEC 리페어 심볼의 인코딩 심볼 ID이다. K는 소스 블록 내 소스 심볼들의 개수이다. J는 SSM 프래그먼트 시퀀스 번호이다. X는 원래 SSM 프래그먼트들의 개수이다. 동일한 패킷 내의 연속적인 FEC 리페어 심볼들은 연속적인 인코딩 심볼 ID들을 갖는다. SSM 프래그먼트는 원래의 소스 식별 데이터 또는 원래의 소스 식별 데이터 프래그먼트에 대한 FEC 리페어 데이터를 포함할 수 있다.
도 16은 소스 시스템 맵이 도 15에 도시된 데이터 구조로부터의 필드들을 사용하여 어떻게 재구성될 수 있는지를 보여주는 한 가지 예시적인 실시예를 도시한다. 도 16에서, 리페어 패킷(1610)으로부터의 필드들 J, X, 및 SSM 프래그먼트는 어떤 SSM 데이터가 일 실시예에서 원래의 소스 데이터를 보호하는 FEC 리페어 패킷들에 운반될 수 있는지를 보여주도록 확대된다.
도 17은 어떻게 수신기가 수신기에 의해 수신된 소스 심볼들에 적용하기 위해 소스 심볼 맵을 사용할 수 있는지를 예시하는 흐름도이다. SSM 정보는 수신된 소스 패킷들(1710)에 적용된다(1720). 만약 수신기가 소스 패킷에 대한 고유의 위치를 식별할 수 없다면, 또는 프로세스가 임의의 이유로 무효인 결과를 출력한다면(1730), 예를 들어, 소스 패킷은 이러한 소스 블록의 위치들 또는 시퀀스 번호들의 유효 범위 내에 있지 않고, 소스 패킷은 이러한 소스 블록으로부터 폐기될 수 있다(1740). 만약 맵핑이 성공적이라면, 소스 심볼 위치들 및/또는 시퀀싱이 소스 심볼 맵으로부터 추출될 수 있고(1750) 소스 심볼들과 연관될 수 있다. 그 다음 소스 심볼들은 소스 블록의 복구와 같은 추가 프로세싱을 위하여 연쇄 반응 디코더와 같은 FEC 디코더 상에 전달될 수 있다(1760).
송신 에러 처리
다수의 실시예들에서, 인코더로부터 디코더로 송신된 데이터 스트림들은 일련의 패킷들로 네트워크 상에서 송신된다. 그러한 다수의 네트워크들에서, 패킷들의 송신에 일어날 수 있는 다수의 잠재 에러들이 존재한다. 패킷들이 손실될 수 있고, 패킷들 전달은 지연될 수 있으며, 패킷들은 송신 동안에 복제될 수 있고 디코더는 상이한 시점들에서 동일한 패킷들을 수신할 수 있다. 소정의 실시예들에서, 디코더는 시간-제한들을 겪고, 일정 시간 기간 이후에 주어진 소스 블록의 디코딩을 일시 중지할 수 있다. 그러나, 그런 네트워크의 속성은 관련 소스 블록이 이미 일시중지된 이후에 수신기로 전달되고 있는 패킷들을 야기할 수 있다. 이하는 수신기가 어떻게 여러 다양한 패킷 에러들을 취급할 수 있는지에 대한 소정 예시들이다. 이하의 예시들 중 어떠한 것도 여러 다양한 에러들이 어떻게 수신기에 의해 처리될 수 있는지에 대한 총망라한 리스트를 제공하는 것으로 의도되지 않는다.
도 18은 패킷 수신 일시 중지를 예시하고, 여기서 손실된 패킷들은 2개의 블록들에 이른다. 만약 소스 패킷들이 잘못된 블록과 연관될 수 있는 것이 가능하다면, 양쪽 블록들 모두 애플리케이션으로 플러싱(flush)될 수 있다. 본 명세서에서 사용되는 바와 같이, 플러싱은 그러한 블록들을 디코딩하려는 어떠한 시도도 이루어지지 않고; 소스 패킷들이 그대로 반환됨을 의미할 수 있다. 대안적으로, 플러싱은 소스 패킷들이 단순히 폐기됨을 의미할 수 있다. 블록 N+2에 대한 동작은 보통의 수신 및 디코딩으로 복귀할 것이다. 때때로 일시 중지는 2개보다 많은 수의 블록들에 이르는 손실된 패킷들과 연관될 수 있다. 그러한 경우들에, 중간의(in between) 소스 패킷들은 일시적인 블록에 저장될 수 있고, 그 다음 궁극적으로 애플리케이션으로 플러싱될 수 있다.
도 19는 소스 블록에서의 조기 버스트 손실을 예시한다. 블록 N에 속하는 패킷들은 애플리케이션으로 플러싱된다. 블록 N+1 상에서의 동작은 보통의 수신 및 디코딩으로 진행할 수 있다.
도 20 및 도 21은 동일한 블록 내에서 또는 확장된 블록 내에서 수신된, 지연된 패킷들을 예시한다. 양쪽 상황들에서, 지연된 패킷들은 어떠한 특별한 처리 없이 블록 N 내에서 정확히 식별될 수 있다. 수신 및 디코딩 동작들은 소스 블록 N에 대해 그리고 N 이후의 소스 블록들에 대해 보통과 같이 진행된다.
도 22는 확장된 블록 너머 횡단하는 지연된 패킷을 예시한다. 블록 N은 통상시와 같이 디코딩될 것이다. 블록 N+1에 대하여, 지연된 패킷에 어떠한 일이 일어날 수 있는지에 대하여 가능한 3가지 시나리오가 존재한다. 제 1 가능성은 지연된 패킷이 무효인 것으로 간주되는 것이다. 예를 들어, 패킷은 SSM에 포함된 임의의 패킷 ID로 정확히 해싱되지 못할 수도 있다. 이러한 경우에, 패킷은 폐기되고 블록 N+1은 보통과 같이 디코딩될 것이다. 제 2 가능성은 지연된 패킷이 블록 N+1 상에서 SSM에 따라 패킷 ID를 할당받으나, 이러한 할당된 패킷 ID가 블록 N+1에 대해 수신된 또 다른 패킷의 ID와 일치한다는 것이다. 이러한 시나리오에서, 블록 N+1을 디코딩할 어떠한 시도도 이루어지지 않고 블록 N+1은 애플리케이션으로 플러싱된다. 제 3 가능성은 지연된 패킷이 블록 N+1 상의 SSM에 따라 패킷 ID를 할당받고 블록 N+1의 어떠한 다른 패킷도 이러한 패킷 ID를 취하지 않는다는 것이다. 이러한 시나리오에서, 디코딩은 블록 N+1 상에서 시도되고 복구된 블록의 검사합계는 이러한 디코딩 시도를 무효화하기 위해 의존된다. 무효화는 블록 N+1에 대한 수신된 소스 패킷들만을 적용하는 것으로의 복귀를 야기한다.
도 23a/23b는 확장된 블록 내에 수신된 복제된 패킷을 도시한다. 양쪽 상황들에서, 복제된 패킷들은 블록 N 내에서 정확히 식별될 수 있다. 수신 및 디코딩 동작들은 보통과 같이 용이하게 진행될 수 있다.
도 24는 확장된 블록 너머 횡단하여 수신된, 복제된 패킷을 도시한다. 블록 N은 통상과 같이 디코딩될 것이다. 블록 N+1에 대하여, 복제된 패킷에 어떤 일이 일어날 수 있을지에 대한 3가지 가능한 시나리오들이 존재한다. 제 1 가능성은 복제된 패킷이 무효인 것으로 간주되는 것이다. 예를 들어, 패킷은 SSM에 포함된 임의의 패킷 ID로 정확히 해싱되지 못할 수 있다. 이러한 경우에, 패킷은 폐기되고 블록 N+1은 보통과 같이 디코딩될 것이다. 제 2 가능성은 블록 N+1 상에서 SSM에 따라 복제된 패킷에 패킷 ID가 할당되나, 이러한 할당된 패킷 ID가 블록 N+1에 대해 수신된 또 다른 패킷의 ID와 일치하는 것이다. 이러한 시나리오에서, 블록 N+1을 디코딩할 어떠한 시도도 이루어지지 않고 블록 N+1은 애플리케이션으로 플러싱된다. 제 3 가능성은 블록 N+1 상에서 SSM에 따라 복제된 패킷에 패킷 ID가 할당되고 블록 N+1의 어떠한 다른 패킷도 이러한 패킷 ID를 취하지 않는다는 것이다. 이러한 시나리오에서, 블록 N+1 상에서 디코딩이 시도되고, 복구된 블록의 검사합계는 이러한 디코딩 시도를 무효화하기 위해 의존된다. 무효화는 블록 N+1에 대하여 단지 수신된 소스 패킷들을 애플리케이션으로 복귀시키는 결과를 야기한다.
케이스 스터디들
이하는 상이한 시스템들 상의 전술된 방법들의 특성들을 보여주는 다수의 케이스 스터디들이다. 이들은 스트리밍 애플리케이션들의 케이스 스터디들이고, 여기서 FEC 코드는 원래 스트림을 보호하기 위해 FEC 리페어 패킷들을 부가하도록 사용되고, 각각의 SSM은 전체 데이터 스트림의 작은 부분을 커버한다. 이러한 모든 케이스 스터디들에서,
● 각각의 소스 데이터 패킷은 7 MPEG-2 TS 유닛들을 나르고, 여기서 각각의 MPEG-2 TS 유닛은 188 바이트이다.
● 심볼 크기는 각각의 소스 패킷이 하나의 심볼이 되도록 1320 바이트들이 되게 선택된다. 각각의 리페어 패킷은 하나의 FEC 리페어 심볼 및 SSM의 전부 또는 부분들과 같은 다른 데이터를 나른다.
● SSM은 전체가 각각의 FEC 리페어 패킷에서 운반되거나, FEC 리페어 패킷들 내에서 부분들로 운반된다.
● 각각의 SSM은 FEC 보호가 적용될 데이터의 하나의 소스 블록을 커버하고, 각각의 SSM은 인접 소스 블록들로부터 패킷들을 필터링하여 제거하기 위하여 인접 소스 블록들에 대한 소정의 중첩 정보를 나른다.
● 각각의 경우에, 1500 바이트의 최대 패킷 크기는 네트워크 상에서 패킷들을 전송할 때 패킷 분할(packet fragmentation)을 회피하기 위하여 요구된다.
이러한 경우에, 2개의 값이 도출된다: PSSM 및 PFEC. PSSM은 소스 블록이 SSM 데이터를 복구하기에 충분하지 않은 패킷들이 도달할 확률인 반면, PFEC는 이상적인 FEC 코드를 가정하여 소스 블록이 소스 블록을 복구하기에 충분하지 않은 패킷들이 도달할 확률이다. 이러한 확률들은 각각의 경우에 대해 언급된 손실 조건들 하에서 랜덤 및 독립적인 패킷 손실을 가정하여 계산된다.
케이스 스터디 1
- 소스 데이터 스트림 레이트는 4 Mbps이다.
- 소스 커버리지 기간(= 보호 기간): 125 ms
- 손실 조건들: 0.1%
- 도출된 파라미터들:
?소스 블록 내 패킷들의 개수 = 48
?리페어 패킷들의 개수 = 3
- SSM 고려사항들:
? SSM에 대해 사용된 패킷들의 개수(각각의 말단 상의 5 패킷 중첩) = 58
? 해시 함수들의 개수 = 5
? 해시 충돌 벡터 할당 ≒ 20 바이트
? 해시 위치 맵 할당 ≤ 58 바이트
? SSM 길이는 100 바이트 미만이고, 그리하여 전체 SSM은 각각의 FEC 리페어 패킷에 운반될 수 있다.
- 실패율:
? PSSM = (0.1%)3 = 10-9
? PFEC = 2.4*10-7
케이스 스터디 2
- 소스 데이터 스트림 레이트는 4 Mbps이다.
- 소스 커버리지 기간(= 보호 기간): 250 ms
- 손실 조건들: 0.7%
- 도출된 파라미터들:
?소스 블록 내 패킷들의 개수 = 95
?리페어 패킷들의 개수 = 9
- SSM 고려사항들:
? SSM에 대해 사용된 패킷들의 개수(각각의 말단 상의 10 중첩 패킷) = 115
? 해시 함수들의 개수 = 5
? 해시 충돌 벡터 할당 ≒ 40 바이트
? 해시 위치 맵 할당 ≒ 114 바이트
? 전체 SSM 길이 ≒ 168 바이트
? SSM은 2개의 세그먼트들로 분할된다.
? FEC 보호는 또 다른 9-2=7개의 리페어 SSM 세그먼트들을 생성하기 위해 사용된다.
? 각각의 FEC 리페어 패킷은 하나의 SSM 세그먼트를 운반한다.
- 실패율:
? PSSM = 5.156 * 10-17
? PFEC = 4.052 * 10-9
케이스 스터디 3
- 소스 데이터 스트림 레이트는 6 Mbps이다.
- 소스 커버리지 기간(= 보호 기간): 500 ms
- 손실 조건들: 0.7%
- 도출된 파라미터들:
?소스 블록 내 패킷들의 개수 = 285
?리페어 패킷들의 개수 = 25
- SSM 고려사항들:
? SSM에 대해 사용된 패킷들의 개수(각각의 말단 상의 30 중첩 패킷) = 345
? 해시 함수들의 개수 = 7
? 해시 충돌 벡터 할당 ≒ 120 바이트
? 해시 위치 맵 할당 ≒ 400 바이트
? 전체 SSM 길이 ≒ 538 바이트
? SSM은 5개의 세그먼트들로 분할된다.
? FEC 보호는 또 다른 25-5=20개의 리페어 SSM 세그먼트들을 생성하기 위해 사용된다.
? 각각의 FEC 리페어 패킷은 하나의 SSM 세그먼트를 운반한다.
- 실패율:
? PSSM = 6.879 * 10-42
? PFEC = 1.887 * 10-15
도 25는 0.7% 손실 조건들 하에서 보호 기간들 및 보호 양들을 가변시키기 위한 4 Mbps 스트림에 대한 실패율 차트이다. 이러한 데이터로부터 도출될 수 있는 결론은 불완전한 SSM으로 인한 디코딩 실패의 확률은 FEC 수신된 심볼들의 불충분한 개수로 인한 것보다 휠씬 더 적다는 것이다.
다중 스트림 /재송신 실시예
도 26은 데이터를 셋-톱 박스로 전송하기 위해 스트림들의 혼합을 사용하고 있는 통신 시스템(2600)의 일 예를 보여준다. 헤드엔드 장치(2610)는 소스 스트림에 원래의 소스 데이터를 포함하는 원래 프로그램, 및 FEC 리페어 데이터 및/또는 소스 식별 데이터를 포함할 수 있는 프로그램에 대한 2개의 별개 리페어 스트림들을 네트워크(2620)로 전송한다. 네트워크(2620)는 원래 프로그램을 중간 서버(2630)로 전송한다. 이러한 중간 서버(2630)는 소스 스트림, 및 리페어 스트림들 중 하나를 네트워크(2650)로 전송한다. 네트워크(2650)는 네트워크(2620)와 동일하거나, 또한 별개의 네트워크일 수 있다. 그 다음, 임의의 경우에, 네트워크(2650)는 상기 소스 스트림 및 상기 하나의 리페어 스트림을 하나 이상의 STB들(2640)로 전송한다. STB들 중 임의의 것에 의해 수신된 데이터가 소스 데이터를 형성하기에 불충분한 경우에, STB들은 재송신 스트림을 요청할 수 있다. 이러한 요청은 제 1 리페어 스트림과 구별되는 제 2 리페어 스트림을 전송함으로써 재송신을 위한 요청에 응답할 수 있는 중간 서버들(2630)로 전송된다. 소정의 실시예들에서, 제 2 리페어 스트림으로부터의 패킷들은 중간 서버들 상에서 캐싱된다. 소정의 실시예들에서, 중간 서버들(2630)은 STB로 이미 전송되지 않은 리페어 데이터를 캐싱하였다. 소정의 실시예들에서, 중간 서버들(2630)은 소스 스트림의 보호 기간에 기초하여 리페어 데이터를 캐싱한다. 소정의 실시예들에서, 소스 또는 리페어 스트림들의 캐싱은 시스템/네트워크 내 다른 위치들에서 일어날 수 있다. 소정의 실시예들에서, STB들은 특정 개수의 리페어 패킷들과 같이, 그것의 재송신 요청에서 특정 양의 리페어 데이터를 요청할 수 있다. 소정의 실시예들에서, STB들은 STB들이 수신한 소스 식별 데이터에 기초하여 리페어 데이터(소스 데이터 또는 FEC 리페어 데이터)를 요청할 수 있다. 소정의 실시예들에서, 최초에 소스 데이터 및/또는 리페어 데이터를 수신한 STB들은 먼저, 유니캐스트 스트림(들)로 중간 서버들에서 캐싱된 데이터를 수신하고, 그 다음 중간 서버는 STB들로 전송된 스트림(들)을 멀티-캐스트 스트림(들)로 전환(transition)한다. 소스 스트림 및 리페어 스트림들이 하나의 논리 스트림으로서 전송되는 변형예들, 셋톱-박스들이 다른 타입들의 수신 장치들인 변형예들, 소정의 수신 장치들이 소스 식별 데이터 방법들을 지원하지 않고 소정의 수신 장치들이 FEC 방법들과 결합하여 소스 식별 데이터 방법들을 지원하고 다른 수신 장치들이 재송신 방법들과 결합하여 소스 식별 데이터 방법들을 지원하며 다른 수신 장치들이 재송신 방법들과 FEC 방법들 양자 모두와 결합하여 소스 식별 방법들을 지원하며 다른 수신 장치들이 데이터 재배열 방법들과 결합하여 소스 식별 방법들을 지원하는 변형예들, 다수의 전송 장치들이 존재하는 변형예들, 프로그램에 대한 리페어를 위한 전송 및/또는 생성 장치가 논리적으로 또는 물리적으로 원래 프로그램에 대한 전송 및/또는 생성 장치와 상이한 변형예들, 전송 장치들이 적어도 때때로 수신 장치들이거나 그 역인 변형예들, 예를 들어, 소스 식별 데이터 방법들이 데이터 재배열 방법들을 지원하기 위해 FEC 방법들 또는 재송신 방법들이 아닌 이유들로 지원되는 변형예들을 포함한 통신 시스템(2600)의 다수의 변형예들이 존재한다.
DVB-T/DVB-H 실시예
소스 데이터를 포함하는 데이터 스트림과 별개인 데이터 스트림으로 송신된 소스 식별 데이터는 여러 다양한 시스템들에 적용될 수 있다. 예를 들어, 부록 A는 FEC 보호 및 소스 식별 데이터가 DVB-T 브로드캐스트 네트워크와 같은 네트워크 상에서 운반되는 제 1 데이터 스트림 상에서 송신될 수 있는 반면, 원래 소스 데이터가 동일한 네트워크 상에서 송신된 제 2 데이터 스트림 상에서 송신될 수 있는 시스템을 개시한다. 부록 A는 모든 목적들을 위하여 본 명세서에 편입된다. 다른 실시예들에서, FEC 보호 및 소스 식별 데이터는 DVB-H 브로드캐스트 네트워크와 같은 네트워크 상에서 운반되는 제 1 데이터 스트림 상에서 송신될 수 있는 반면, 원래 소스 데이터는 DVB-T 네트워크와 같은 또 다른 네트워크를 가로질러 송신된 제 2 데이터 스트림 상에서 송신될 수 있다.
DVB-T 네트워크들 및 설정들은 고정된 위치 수신기들로 송신되도록 설계된 반면, DVB-T 네트워크들의 사용이 다른 타입들의 수신기들, 예를 들어, 이동 수신기들 또는 더 악화된 위치들에 있는 고정된 위치 수신기들로 확장하는 것에 대한 큰 이점들이 존재한다. 이러한 신규한 수신기들의 타입들에 대하여, 기존의 DVB-T 네트워크들 상에 존재하는 에러-조건들은 종종 고 품질 스트리밍 비디오와 같은 관련 애플리케이션들을 지원하기에 너무 어렵다. 본 명세서에 기재된 방법들을 사용하여, 이러한 네트워크들의 사용은 이러한 네트워크들을 사용하지 않으면 지원하기에 너무 어려운 애플리케이션들을 지원하기 위해 이러한 새로운 수신기들로 확장될 수 있다. 이러한 방법들을 적용하기 위해 어떠한 네트워크 업그레이드들도 요구되지 않거나, 이러한 새로운 수신기들을 지원하기 위해 기존의 수신기들을 업그레이드할 요구조건이 존재하지 않는다. 본 명세서에 기술된 방법들을 사용하여, 네트워크 조건들이 기존의 수신기들에 대한 것보다 새로운 수신기들에 대해 훨씬 더 악화될지라도, 새로운 수신기들은 원래의 변경되지 않은 데이터 스트림들을 수신할 수 있을 것이고, 부가하여, 기존의 수신기들과 동일한 품질에서 비디오 스트림들을 복구 및 플레이-아웃하기 위하여 이러한 원래의 데이터 스트림들과 연관된 소스 식별 데이터 및 FEC 리페어 데이터를 수신할 수 있을 것이다.
본 명세서를 숙지한 당업자들에게 명백한 바와 같이, 수신기에서 하나보다 많은 수의 송신된 코드로부터의 데이터는 상기 데이터가 각각의 코드들과 연관된 절차들에 따라 독립적으로 프로세싱된 경우보다 더 큰 에러 정정을 제공하는 방식으로 결합될 수 있는 속성을 유지하면서, 본 명세서에 기술된 방법들은 당연히 상이한 FEC 코드들을 지원하도록 확장될 수 있다.
전술한 설명은 예시 및 설명을 목적으로 제시되었다. 그것은 본 발명을 총망라하거나 본 발명을 개시된 정확한 형태로 제한하고자 의도된 것이 아니라, 자명하게 다수의 변형예들 및 변경예들은 전술한 교시의 관점에서 가능하다. 전술한 실시예들은 본 발명의 원리들 및 그것의 실용적인 적용을 가장 잘 설명하고 그에 의해 당업자들이 본 발명을 고려된 특정 사용에 적합한 여러 다양한 실시예들로 그리고 여러 다양한 변형예들로 가장 잘 활용할 수 있도록 하기 위하여 선택되었다. 본 발명의 범위는 본 명세서에 첨부된 청구항들에 의해 정의됨이 의도된다.

Claims (33)

  1. 소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법으로서,
    상기 소스 데이터는 K개의 소스 데이터 유닛들로 분할되었고, K는 1보다 더 크며, 상기 소스 식별 데이터는 다른 소스 데이터 유닛들에 대한 소스 데이터 유닛들의 위치를 식별하기 위해 그리고 손실되거나 손상된 소스 데이터 유닛들을 식별하기 위해 사용될 수 있으며,
    상기 방법은:
    상기 K개의 소스 데이터 유닛들로부터 소스 식별 데이터를 생성하는 단계;
    제 1 데이터 스트림을 수신기로 송신하는 단계 ? 상기 제 1 데이터 스트림은 상기 소스 데이터 유닛들의 세트를 포함함 ?; 및
    제 2 데이터 스트림을 상기 수신기로 송신하는 단계 ? 상기 제 2 데이터 스트림은 상기 소스 식별 데이터를 포함함 ?;
    를 포함하고, 상기 소스 식별 데이터는 상기 제 1 데이터 스트림 및 상기 제 2 데이터 스트림의 수신자로 하여금 상기 소스 식별 데이터를 생성하기 위해 사용된 상기 K개의 소스 데이터 유닛들에 대한 식별 라벨들을 결정할 수 있게 하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 소스 식별 데이터는 상기 제 1 데이터 스트림 및 상기 제 2 데이터 스트림의 수신자로 하여금 임의의 소스 데이터 유닛에 대한 식별 라벨들을 결정할 수 있게 하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  4. 제1항에 있어서,
    상기 소스 식별 데이터는 상기 제 1 데이터 스트림 및 상기 제 2 데이터 스트림의 수신자로 하여금 모든 상기 소스 데이터 유닛들의 배열(ordering)에 대하여 주어진 소스 데이터 유닛의 위치를 결정할 수 있게 하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  5. 제1항에 있어서,
    상기 소스 식별 데이터는 상기 제 1 데이터 스트림 및 상기 제 2 데이터 스트림의 수신자로 하여금 모든 상기 소스 데이터 유닛들의 소스-결정된 배열(order) 시퀀스에 대하여 주어진 소스 데이터 유닛의 위치를 결정할 수 있게 하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  6. 제1항에 있어서,
    상기 제 2 데이터 스트림은 상기 소스 데이터 유닛들에 대한 리페어 데이터를 더 포함하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  7. 제1항에 있어서,
    상기 제 2 데이터 스트림은 상기 소스 식별 데이터에 대한 리페어 데이터를 더 포함하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  8. 제1항에 있어서,
    상기 제 1 데이터 스트림은 DVB-T를 경유하여 송신되고, 상기 제 2 데이터 스트림은 DVB-H를 경유하여 송신되는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  9. 제1항에 있어서,
    부가적인 데이터를 위하여 상기 수신기로부터의 요청을 수신하는 단계; 및
    상기 수신기로 제 3 데이터 스트림을 송신하는 단계;
    를 더 포함하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  10. 제9항에 있어서,
    상기 제 3 데이터 스트림은 제 2 세트 소스 데이터 유닛들을 포함하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  11. 제9항에 있어서,
    상기 제 3 데이터 스트림은 상기 소스 데이터 유닛들에 대한 리페어 데이터를 포함하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  12. 제1항에 있어서,
    상기 K개의 소스 데이터 유닛들로부터 소스 식별 데이터를 생성하는 단계는:
    각각의 상기 K개의 소스 데이터 유닛들로부터 배열된 세트 S를 형성하는 단계;
    ⅰ) S의 각각의 요소에 해시 함수, Hi를 적용하는 단계 ? Hi는 가능한 L개의 해시 출력들 중 하나에 S의 요소들을 맵핑하고, Hi는 S의 요소들 중 적어도 X를 고유의 해시 출력에 맵핑함 ?;
    ⅱ) 상기 L개의 해시 출력들에 대응하는 벡터를 형성하는 단계 ? 상기 벡터는 상기 L개의 해시 출력들 중 어떤 것이 충돌들을 경험하는지 그리고 상기 L개의 해시 출력들 중 어떤 것이 S의 요소에 고유하게 맵핑되는지를 표시함 ?;
    ⅲ) 고유한 해시 출력에 맵핑되지 않는 상기 S의 요소들을 포함하는 세트, Si를 형성하는 단계;
    ⅳ) Si가 빈 세트가 될 때까지, 또는 반복들의 최대 횟수가 실행되었을 때까지, 단계들 ⅰ-ⅲ를 반복하는 단계 ? 단계들 ⅰ-ⅲ의 각각의 반복에 대하여, Si는 S로서 사용되고, 각각의 반복에 대하여 Hi는 단계들 ⅰ-ⅲ의 이전의 반복 동안 사용된 해시 함수와 상이한 해시 함수이며, 각각의 반복에 대하여 L 및 X의 값들이 변화할 수 있음 ?; 및
    단계들 ⅰ-ⅲ의 각각의 반복 동안 형성된 상기 벡터들로부터 소스 식별 데이터를 생성하는 단계;
    를 포함하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  13. 제12항에 있어서,
    상기 벡터는 S에서 각각 고유하게 맵핑된 S의 요소의 위치를 더 표시하고, 상기 방법은:
    단계들 ⅰ-ⅲ의 각각의 반복 동안에 형성된 상기 벡터들에 의해 표시된 바와 같이 S의 고유하게 맵핑된 요소들의 위치로부터 위치-대-시퀀스 맵핑을 생성하는 단계;
    를 더 포함하는,
    소스 데이터에 대한 소스 식별 데이터를 생성 및 송신하기 위한 방법.
  14. 제1항의 방법을 수행하기 위한 코드를 포함하는 컴퓨터 판독가능 매체.
  15. 프로세서 및 상기 프로세서에 결합되는 제 14항의 컴퓨터 판독가능 매체를 포함하는 송신기.
  16. 소스 식별 데이터를 수신하고 상기 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법으로서,
    상기 소스 데이터는 K개의 소스 데이터 유닛들로 분할되었고, K는 1보다 더 크며, 상기 소스 식별 데이터는 다른 소스 데이터 유닛들에 대한 소스 데이터 유닛들의 위치를 식별하기 위해 그리고 손실되거나 손상된 소스 데이터 유닛들을 식별하기 위해 사용될 수 있으며,
    상기 방법은:
    제 1 데이터 스트림으로부터 복수 개의 소스 데이터 유닛들을 수신하는 단계;
    제 2 데이터 스트림으로부터 소스 식별 데이터를 수신하는 단계;
    상기 소스 식별 데이터를 상기 복수 개의 소스 데이터 유닛들과 연관시키는 단계; 및
    상기 수신된 복수 개의 소스 데이터 유닛들에 대한 식별 라벨들을 결정하는 단계
    를 포함하는, 소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  17. 삭제
  18. 제16항에 있어서,
    상기 수신된 복수 개의 소스 데이터 유닛들의 요소가 아닌 임의의 소스 데이터 유닛들에 대한 식별 라벨들을 결정하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  19. 제16항에 있어서,
    모든 상기 소스 데이터 유닛들의 배열에 대하여 상기 복수 개의 소스 데이터 유닛들에서의 소스 데이터 유닛에 대한 위치를 결정하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  20. 제16항에 있어서,
    모든 상기 소스 데이터 유닛들의 소스-결정된 배열 시퀀스에 대하여 상기 복수 개의 소스 데이터 유닛들에서의 소스 데이터 유닛에 대한 위치를 결정하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  21. 제16항에 있어서,
    상기 제 2 데이터 스트림으로부터 상기 복수 개의 소스 데이터 유닛들에 대한 리페어 데이터를 수신하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  22. 제16항에 있어서,
    상기 제 2 데이터 스트림으로부터 상기 소스 식별 데이터에 대한 리페어 데이터를 수신하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  23. 제16항에 있어서,
    상기 제 1 데이터 스트림은 DVB-T를 경유하여 수신되고, 상기 제 2 데이터 스트림은 DVB-H를 경유하여 수신되는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  24. 제16항에 있어서,
    상기 K개의 소스 데이터 유닛들 중 어느 것도 수신되지 않았는지 여부를 결정하기 위해 상기 소스 식별 데이터 및 상기 복수 개의 소스 데이터 유닛들을 분석하는 단계; 및
    상기 K개의 소스 데이터 유닛들 중 어느 것도 수신되지 않은 경우, 부가적인 데이터를 요청하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  25. 제24항에 있어서,
    제 3 데이터 스트림으로부터 상기 부가적인 데이터를 수신하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  26. 제16항에 있어서,
    상기 소스 식별 데이터를 상기 복수 개의 소스 데이터 유닛들과 연관시키는 단계는:
    각각의 상기 복수 개의 소스 데이터 유닛들로부터 세트 S를 형성하는 단계;
    ⅰ) S의 각각의 요소와 연관된 해싱된 출력을 획득하기 위하여 S의 각각의 요소에 해시 함수, Hi를 적용하는 단계 ? Hi는 상기 S의 각각의 요소들을 가능한 L개의 해시 출력들 중 하나에 맵핑함 ?
    ⅱ) 상기 해싱된 출력들 중 어느 것이 상기 해싱된 출력과 연관된 소스 데이터 유닛을 고유하게 식별하는지 결정하는 단계;
    ⅲ) 해싱된 출력이 고유하게 소스 데이터 유닛을 식별한다고 결정되는 경우, S로부터 상기 고유하게 식별된 소스 데이터 유닛을 제거하고, 상기 소스 식별 데이터로부터의 식별 데이터의 적절한 세트를 상기 고유하게 식별된 소스 데이터 유닛과 연관시키는 단계; 및
    ⅳ) 상기 해싱된 출력 중 하나가 고유하지 않음이 결정되는 경우, S가 빈 세트가 될 때까지, 또는 반복들의 최대 횟수가 실행되었을 때까지, 단계들 ⅰ-ⅲ를 반복하는 단계 ? 각각의 반복에 대하여, Hi는 잠재적으로 상이한 값의 L을 가진 단계들 ⅰ-ⅲ의 이전의 반복 동안 사용된 해시 함수와 상이한 해시 함수임 ?;
    를 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  27. 제26항에 있어서,
    단계들 ⅰ-ⅳ의 각각의 반복에 대해 적용된 상기 Hi는 상기 소스 식별 데이터로부터 결정되는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  28. 제26항에 있어서,
    상기 해싱된 출력들 중 어느 것이 상기 해싱된 출력과 연관된 소스 데이터 유닛을 고유하게 식별하는지 결정하는 단계는:
    각각의 해싱된 출력을 상기 소스 식별 데이터로부터의 벡터와 비교하는 단계;
    를 포함하고,
    상기 벡터는 상기 가능한 L개의 해시 출력들에 대응하고, 상기 벡터는 상기 L개의 해시 출력들 중 어떤 것이 충돌들을 경험하는지, 그리고 상기 L개의 해시 출력들 중 어떤 것이 S의 요소에 고유하게 맵핑되는지를 표시하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  29. 제28항에 있어서,
    상기 소스 식별 데이터는 위치-대-시퀀스 맵핑을 포함하고, 상기 소스 식별 데이터로부터의 식별 데이터의 적절한 세트를 상기 고유하게 식별된 소스 데이터 유닛과 연관시키는 단계는 상기 위치-대-시퀀스 맵핑으로부터의 위치 정보를 상기 고유하게 식별된 소스 데이터 유닛에 연관시키는 단계를 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  30. 제26항에 있어서,
    소스 데이터 유닛이 상기 소스 식별 데이터로부터의 식별 데이터의 적절한 세트와 연관되는 경우, 상기 소스 데이터 유닛을 디코더로 전달하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  31. 제26항에 있어서,
    소스 데이터 유닛이 상기 소스 식별 데이터로부터의 식별 데이터의 적절한 세트와 연관되지 않는 경우, 상기 소스 데이터 유닛을 폐기하는 단계;
    를 더 포함하는,
    소스 식별 데이터를 수신하고 소스 식별 데이터를 소스 데이터와 연관시키기 위한 방법.
  32. 제16항의 방법을 수행하기 위한 코드를 포함하는 컴퓨터 판독가능 매체.
  33. 프로세서 및 상기 프로세서에 결합되는 제32항의 컴퓨터 판독가능 매체를 포함하는 수신기.
KR1020107007913A 2007-09-12 2008-09-12 신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신 KR101129260B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US97188407P 2007-09-12 2007-09-12
US60/971,884 2007-09-12
US9327708P 2008-08-29 2008-08-29
US61/093,277 2008-08-29
PCT/US2008/076299 WO2009036378A1 (en) 2007-09-12 2008-09-12 Generating and communicating source identification information to enable reliable communications

Publications (2)

Publication Number Publication Date
KR20100055528A KR20100055528A (ko) 2010-05-26
KR101129260B1 true KR101129260B1 (ko) 2012-03-27

Family

ID=40431803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107007913A KR101129260B1 (ko) 2007-09-12 2008-09-12 신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신

Country Status (12)

Country Link
US (1) US9237101B2 (ko)
EP (1) EP2203836A4 (ko)
JP (1) JP5027305B2 (ko)
KR (1) KR101129260B1 (ko)
CN (1) CN101802797B (ko)
AU (1) AU2008298602A1 (ko)
BR (1) BRPI0816680A2 (ko)
CA (1) CA2697764A1 (ko)
HK (1) HK1145217A1 (ko)
MX (1) MX2010002829A (ko)
RU (1) RU2010114256A (ko)
WO (1) WO2009036378A1 (ko)

Families Citing this family (67)

* 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
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) * 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2278718B1 (en) * 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
EP2355360B1 (en) 2002-10-05 2020-08-05 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
US7139960B2 (en) 2003-10-06 2006-11-21 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
EP2202888A1 (en) * 2004-05-07 2010-06-30 Digital Fountain, Inc. File download and streaming system
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
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US9386064B2 (en) * 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9178535B2 (en) * 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9209934B2 (en) * 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) * 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US8332896B2 (en) 2007-07-05 2012-12-11 Coherent Logix, Incorporated Transmission of multimedia streams to mobile devices with cross stream association
CN101802797B (zh) 2007-09-12 2013-07-17 数字方敦股份有限公司 生成和传达源标识信息以实现可靠的通信
KR101367886B1 (ko) * 2008-05-07 2014-02-26 디지털 파운튼, 인크. 브로드캐스트 채널 상에서의 고속 채널 재핑 및 고품질 스트리밍 보호
US8649276B2 (en) * 2008-07-31 2014-02-11 Microsoft Corporation Content transfer
US8103718B2 (en) * 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes
US8645801B2 (en) * 2008-08-21 2014-02-04 Alcatel Lucent Delivery method for internet protocol television (IPTV)
ATE549860T1 (de) * 2009-01-13 2012-03-15 Alcatel Lucent Espana S A Verfahren und vorrichtung zur zuverlässigkeitssicherstellung während der übertragung von fernsehdaten in einem internetprotokoll basierendem fernsehsystem
US9281847B2 (en) * 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
JP2010213150A (ja) * 2009-03-12 2010-09-24 Nec Corp 送信装置、大容量ファイル配信システム、同システムにおけるファィル再送制御方法、再送制御プログラム
CN101902315B (zh) * 2009-06-01 2013-04-17 华为技术有限公司 基于前向纠错的重传方法、设备和通信系统
US8732746B2 (en) 2009-06-01 2014-05-20 Fourthwall Media, Inc. System for and method of targeting broadcast messages
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
EP2309668A1 (en) 2009-10-09 2011-04-13 Thomson Licensing A digital receiver and corresponding digital transmission system server
US9136981B2 (en) * 2010-03-03 2015-09-15 Qualcomm Incorporated Block aggregation of objects in a communication system
US8489948B2 (en) * 2010-04-02 2013-07-16 Nokia Corporation Methods and apparatuses for facilitating error correction
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
JP5529177B2 (ja) 2011-01-19 2014-06-25 ネイバー ビジネス プラットフォーム コーポレーション P2p基盤のストリーミングサービスでバッファリングを行うシステムおよび方法、並びにクライアントでバッファリングを処理するアプリケーションを配布するシステム
US20120208580A1 (en) * 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US9270299B2 (en) * 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US10169119B1 (en) * 2011-08-28 2019-01-01 Ross Daniel Snyder Method and apparatus for improving reliability of digital communications
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
FR2989241B1 (fr) * 2012-04-05 2018-01-26 Easybroadcast Procede de diffusion d'un contenu dans un reseau informatique.
KR101961736B1 (ko) * 2012-04-23 2019-03-25 삼성전자 주식회사 통신 시스템에서 패킷 송수신 장치 및 방법
US8904024B2 (en) * 2012-08-03 2014-12-02 Ittiam Systems (P) Ltd System and method for low delay fast update for video streaming
JP6135078B2 (ja) * 2012-09-14 2017-05-31 富士通株式会社 到達確認メッセージについての情報処理方法及び情報処理装置
US10015486B2 (en) * 2012-10-26 2018-07-03 Intel Corporation Enhanced video decoding with application layer forward error correction
US20150031289A1 (en) * 2013-07-26 2015-01-29 Rajiv Agarwal Autonomous discovery and control of devices via an overlay communication channel
JP5662533B1 (ja) * 2013-08-28 2015-01-28 日本電信電話株式会社 送信装置、受信装置、およびコンピュータプログラム
JP6576827B2 (ja) * 2013-10-31 2019-09-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America パケット送信方法、コンテンツ再生方法、パケット送信システム及び端末
US9661657B2 (en) 2013-11-27 2017-05-23 Intel Corporation TCP traffic adaptation in wireless systems
JP5728069B1 (ja) * 2013-12-11 2015-06-03 日本電信電話株式会社 前方誤り訂正情報生成装置、前方誤り訂正装置、前方誤り訂正情報生成方法、前方誤り訂正方法、前方誤り訂正情報生成プログラム、および前方誤り訂正プログラム
KR20150084632A (ko) 2014-01-13 2015-07-22 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
WO2015105404A1 (ko) * 2014-01-13 2015-07-16 삼성전자 주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
MX362782B (es) * 2014-01-28 2019-02-08 Sa Photonics Inc Retransmisión de datos por sistema de comunicación óptica por espacio libre atmosférico.
KR102208814B1 (ko) * 2014-03-28 2021-01-28 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
US9559805B2 (en) * 2014-11-03 2017-01-31 Cisco Technology, Inc. Self-describing error correction of consolidated media content
JP5938086B2 (ja) * 2014-11-13 2016-06-22 日本電信電話株式会社 受信装置、受信装置の動作方法およびコンピュータプログラム
US9949168B2 (en) * 2015-09-24 2018-04-17 Qualcomm Incorporated Reliable data channel over periodic discovery messages
US9673937B2 (en) * 2015-10-12 2017-06-06 International Business Machines Corporation Adaptive network communication protocols
US9825801B1 (en) 2016-07-22 2017-11-21 Spotify Ab Systems and methods for using seektables to stream media items
US10909122B2 (en) * 2018-11-09 2021-02-02 International Business Machines Corporation Using modified blockchain concepts to guarantee no tuple loss and/or no tuple corruption
US11658776B2 (en) * 2019-11-08 2023-05-23 Semiconductor Components Industries, Llc Feedback and retransmission format of HARQ protocol

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153468A1 (en) * 2003-01-31 2004-08-05 Toni Paila Datacast file transmission with meta-data retention

Family Cites Families (551)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3909721A (en) 1972-01-31 1975-09-30 Signatron Signal processing system
US4365338A (en) 1980-06-27 1982-12-21 Harris Corporation Technique for high rate digital transmission over a dynamic dispersive channel
US4965825A (en) * 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4589112A (en) * 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US4901319A (en) * 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
GB8815978D0 (en) 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US7594250B2 (en) 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
US5421031A (en) * 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US5701582A (en) 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US5329369A (en) 1990-06-01 1994-07-12 Thomson Consumer Electronics, Inc. Asymmetric picture compression
US5455823A (en) 1990-11-06 1995-10-03 Radio Satellite Corporation Integrated communications terminal
US5164963A (en) 1990-11-07 1992-11-17 At&T Bell Laboratories Coding for digital transmission
US5465318A (en) 1991-03-28 1995-11-07 Kurzweil Applied Intelligence, Inc. Method for generating a speech recognition model for a non-vocabulary utterance
US5379297A (en) * 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
EP0543070A1 (en) 1991-11-21 1993-05-26 International Business Machines Corporation Coding system and method using quaternary codes
US5371532A (en) 1992-05-15 1994-12-06 Bell Communications Research, Inc. Communications architecture and method for distributing information services
US5425050A (en) 1992-10-23 1995-06-13 Massachusetts Institute Of Technology Television transmission system using spread spectrum and orthogonal frequency-division multiplex
US5372532A (en) 1993-01-26 1994-12-13 Robertson, Jr.; George W. Swivel head cap connector
EP0613249A1 (en) 1993-02-12 1994-08-31 Altera Corporation Custom look-up table with reduced number of architecture bits
DE4316297C1 (de) 1993-05-14 1994-04-07 Fraunhofer Ges Forschung Frequenzanalyseverfahren
AU665716B2 (en) 1993-07-05 1996-01-11 Mitsubishi Denki Kabushiki Kaisha A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame
US5590405A (en) 1993-10-29 1996-12-31 Lucent Technologies Inc. Communication technique employing variable information transmission
JP2576776B2 (ja) * 1993-11-10 1997-01-29 日本電気株式会社 パケット伝送方法・パケット伝送装置
US5517508A (en) * 1994-01-26 1996-05-14 Sony Corporation Method and apparatus for detection and error correction of packetized digital data
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
US5566208A (en) 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5432787A (en) 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
US5757415A (en) * 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5802394A (en) 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
US5568614A (en) 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US5659614A (en) 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5617541A (en) * 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
JP3614907B2 (ja) 1994-12-28 2005-01-26 株式会社東芝 データ再送制御方法及びデータ再送制御システム
CA2219379A1 (en) 1995-04-27 1996-10-31 Cadathur V. Chakravarthy 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
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
US6044485A (en) * 1997-01-03 2000-03-28 Ericsson Inc. Transmitter method and transmission system using adaptive coding based on channel characteristics
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
WO1998039927A1 (en) 1997-03-07 1998-09-11 Sanyo Electric Co., Ltd. Digital broadcast receiver and display
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
DE19716011A1 (de) 1997-04-17 1998-10-22 Abb Research Ltd Verfahren und Vorrichtung zur Informationsübertragung über Stromversorgungsleitungen
US6226259B1 (en) * 1997-04-29 2001-05-01 Canon Kabushiki Kaisha Device and method for transmitting information device and method for processing information
US5970098A (en) 1997-05-02 1999-10-19 Globespan Technologies, Inc. Multilevel encoder
US5844636A (en) 1997-05-13 1998-12-01 Hughes Electronics Corporation Method and apparatus for receiving and recording digital packet data
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 윤종용 이중 다이버서티 시스템을 위한 데이터 전송 방법
US5933056A (en) 1997-07-15 1999-08-03 Exar Corporation Single pole current mode common-mode feedback circuit
US6175944B1 (en) * 1997-07-15 2001-01-16 Lucent Technologies Inc. Methods and apparatus for packetizing data for transmission through an erasure broadcast channel
US6047069A (en) 1997-07-17 2000-04-04 Hewlett-Packard Company Method and apparatus for preserving error correction capabilities during data encryption/decryption
US6904110B2 (en) * 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6178536B1 (en) * 1997-08-14 2001-01-23 International Business Machines Corporation Coding scheme for file backup and systems based thereon
FR2767940A1 (fr) * 1997-08-29 1999-02-26 Canon Kk Procedes et dispositifs de codage et de decodage et appareils les mettant en oeuvre
EP0903955A1 (en) 1997-09-04 1999-03-24 STMicroelectronics S.r.l. Modular architecture PET decoder for ATM networks
US6088330A (en) 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6272658B1 (en) 1997-10-27 2001-08-07 Kencast, Inc. Method and system for reliable broadcasting of data files and streams
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
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
US6195777B1 (en) * 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6081918A (en) 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
JP3472115B2 (ja) 1997-11-25 2003-12-02 Kddi株式会社 マルチチャンネルを用いるビデオデータ伝送方法及びその装置
US6243846B1 (en) 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6849803B1 (en) * 1998-01-15 2005-02-01 Arlington Industries, Inc. Electrical connector
US6097320A (en) 1998-01-20 2000-08-01 Silicon Systems, Inc. Encoder/decoder system with suppressed error propagation
US6226301B1 (en) 1998-02-19 2001-05-01 Nokia Mobile Phones Ltd Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system
US6141788A (en) 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks
US6278716B1 (en) 1998-03-23 2001-08-21 University Of Massachusetts Multicast with proactive forward error correction
EP1075762A1 (en) 1998-04-02 2001-02-14 Sarnoff Corporation Bursty data transmission of compressed video data
US6185265B1 (en) * 1998-04-07 2001-02-06 Worldspace Management Corp. System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload
US6067646A (en) * 1998-04-17 2000-05-23 Ameritech Corporation Method and system for adaptive interleaving
US6018359A (en) * 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6445717B1 (en) 1998-05-01 2002-09-03 Niwot Networks, Inc. System for recovering lost information in a data stream
US6421387B1 (en) 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6937618B1 (en) 1998-05-20 2005-08-30 Sony Corporation Separating device and method and signal receiving device and method
US6333926B1 (en) 1998-08-11 2001-12-25 Nortel Networks Limited Multiple user CDMA basestation modem
CN1342354A (zh) 1998-09-04 2002-03-27 美国电报电话公司 在一种多天线装置中组合信道编码和空间一分块编码
US6415326B1 (en) 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US7243285B2 (en) 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
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
ES2185244T3 (es) 1998-12-03 2003-04-16 Fraunhofer Ges Forschung Aparato y procedimiento para transmitir informacion y aparato y procedimiento para recibir informacion.
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
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
KR20010043284A (ko) 1999-03-03 2001-05-25 이데이 노부유끼 송신 장치, 수신 장치, 송수신 시스템, 송신 방법 및 수신방법
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
MY130203A (en) 1999-05-06 2007-06-29 Sony Corp Methods and apparatus for data processing, methods and apparatus for data reproducing and recording media
KR100416996B1 (ko) 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
US6229824B1 (en) * 1999-05-26 2001-05-08 Xm Satellite Radio Inc. Method and apparatus for concatenated convolutional endcoding and interleaving
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
JP3451221B2 (ja) 1999-07-22 2003-09-29 日本無線株式会社 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
US6453440B1 (en) 1999-08-04 2002-09-17 Sun Microsystems, Inc. System and method for detecting double-bit errors and for correcting errors due to component failures
JP2001060934A (ja) 1999-08-20 2001-03-06 Matsushita Electric Ind Co Ltd Ofdm通信装置
US6430233B1 (en) 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
JP4284774B2 (ja) * 1999-09-07 2009-06-24 ソニー株式会社 送信装置、受信装置、通信システム、送信方法及び通信方法
US7529806B1 (en) 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
JP2003510734A (ja) 1999-09-27 2003-03-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ストリーミングのエミュレート用ファイル分割
JP2001094625A (ja) 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
US20050160272A1 (en) 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US6523147B1 (en) * 1999-11-11 2003-02-18 Ibiquity Digital Corporation Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system
US6678855B1 (en) * 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6798791B1 (en) 1999-12-16 2004-09-28 Agere Systems Inc Cluster frame synchronization scheme for a satellite digital audio radio system
US6487692B1 (en) 1999-12-21 2002-11-26 Lsi Logic Corporation Reed-Solomon decoder
US20020009137A1 (en) 2000-02-01 2002-01-24 Nelson John E. Three-dimensional video broadcasting system
US6965636B1 (en) 2000-02-01 2005-11-15 2Wire, Inc. System and method for block error correction in packet-based digital communications
US7304990B2 (en) 2000-02-03 2007-12-04 Bandwiz Inc. Method of encoding and transmitting data over a communication medium through division and segmentation
IL140504A0 (en) 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
WO2001058130A2 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Coding method
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
JP2001274776A (ja) 2000-03-24 2001-10-05 Toshiba Corp 情報データ伝送システムとその送信装置及び受信装置
US6510177B1 (en) 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
US6851086B2 (en) * 2000-03-31 2005-02-01 Ted Szymanski Transmitter, receiver, and coding scheme to increase data rate and decrease bit error rate of an optical data link
US6473010B1 (en) 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US8572646B2 (en) * 2000-04-07 2013-10-29 Visible World Inc. System and method for simultaneous broadcast for personalized messages
US7073191B2 (en) 2000-04-08 2006-07-04 Sun Microsystems, Inc Streaming a single media track to multiple clients
US6631172B1 (en) 2000-05-01 2003-10-07 Lucent Technologies Inc. Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels
US6742154B1 (en) * 2000-05-25 2004-05-25 Ciena Corporation Forward error correction codes for digital optical network optimization
US6694476B1 (en) * 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
GB2366159B (en) 2000-08-10 2003-10-08 Mitel Corp Combination reed-solomon and turbo coding
US6834342B2 (en) 2000-08-16 2004-12-21 Eecad, Inc. Method and system for secure communication over unstable public connections
KR100447162B1 (ko) 2000-08-19 2004-09-04 엘지전자 주식회사 래디오 링크 콘트롤(rlc)에서 프로토콜 데이터 유닛(pdu) 정보의 길이 지시자(li) 처리방법
JP2002073625A (ja) 2000-08-24 2002-03-12 Nippon Hoso Kyokai <Nhk> 放送番組に同期した情報提供の方法、サーバ及び媒体
US7340664B2 (en) 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
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
US7031257B1 (en) 2000-09-22 2006-04-18 Lucent Technologies Inc. Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol
US7490344B2 (en) 2000-09-29 2009-02-10 Visible World, Inc. System and method for seamless switching
US6411223B1 (en) 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US7613183B1 (en) * 2000-10-31 2009-11-03 Foundry Networks, Inc. System and method for router data aggregation and delivery
US6694478B1 (en) 2000-11-07 2004-02-17 Agere Systems Inc. Low delay channel codes for correcting bursts of lost packets
US6732325B1 (en) * 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
US20020133247A1 (en) 2000-11-11 2002-09-19 Smith Robert D. System and method for seamlessly switching between media streams
US7072971B2 (en) 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
US7240358B2 (en) 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
KR100908954B1 (ko) 2000-12-15 2009-07-22 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 오디오 또는 비디오 자료의 전송방법 및 장치
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
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6745364B2 (en) * 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
JP2003018568A (ja) 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd 再生システム、サーバ装置及び再生装置
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US6928603B1 (en) 2001-07-19 2005-08-09 Adaptix, Inc. System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7110412B2 (en) 2001-09-18 2006-09-19 Sbc Technology Resources, Inc. Method and system to transport high-quality video signals
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
US6990624B2 (en) 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
US7480703B2 (en) 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7363354B2 (en) 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
US7003712B2 (en) * 2001-11-29 2006-02-21 Emin Martinian Apparatus and method for adaptive, multimode decoding
JP2003174489A (ja) 2001-12-05 2003-06-20 Ntt Docomo Inc ストリーミング配信装置、ストリーミング配信方法
FI114527B (fi) 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
EP1670259A3 (en) 2002-01-23 2010-03-03 Nokia Corporation Grouping of image frames in video coding
EP1472847A1 (en) * 2002-01-30 2004-11-03 Koninklijke Philips Electronics N.V. Streaming multimedia data over a network having a variable bandwidth
US7249291B2 (en) * 2002-02-15 2007-07-24 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
EP1495566A4 (en) 2002-04-15 2005-07-20 Nokia Corp RLP LOGIC LAYER OF A COMMUNICATION STATION
US6677864B2 (en) * 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
JP3689063B2 (ja) 2002-04-19 2005-08-31 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP3629008B2 (ja) 2002-04-19 2005-03-16 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP4134027B2 (ja) 2002-04-25 2008-08-13 シャープ株式会社 画像符号化装置、画像復号装置、及び画像記録装置
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7200388B2 (en) 2002-05-31 2007-04-03 Nokia Corporation Fragmented delivery of multimedia
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2278718B1 (en) * 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
AU2002368007A1 (en) * 2002-06-11 2003-12-22 Telefonaktiebolaget Lm Ericsson (Publ) Generation of mixed media streams
US6956875B2 (en) 2002-06-19 2005-10-18 Atlinks Usa, Inc. Technique for communicating variable bit rate data over a constant bit rate link
JP4154569B2 (ja) 2002-07-10 2008-09-24 日本電気株式会社 画像圧縮伸長装置
JP4120461B2 (ja) 2002-07-12 2008-07-16 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
AU2003251964A1 (en) 2002-07-16 2004-02-02 Nokia Corporation A method for random access and gradual picture refresh in video coding
WO2004019521A1 (ja) 2002-07-31 2004-03-04 Sharp Kabushiki Kaisha データ通信装置、その間欠通信方法、その方法を記載するプログラム、及びそのプログラムを記録する記録媒体
JP2004070712A (ja) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
EP1529389B1 (en) 2002-08-13 2016-03-16 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
US7289451B2 (en) 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
US8320301B2 (en) 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
EP1559229A1 (en) 2002-10-30 2005-08-03 Koninklijke Philips Electronics N.V. Adaptative forward error control scheme
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
US7756002B2 (en) 2003-01-30 2010-07-13 Texas Instruments Incorporated Time-frequency interleaved orthogonal frequency division multiplexing ultra wide band physical layer
US7525994B2 (en) * 2003-01-30 2009-04-28 Avaya Inc. Packet data flow identification for multiplexing
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
US20050013274A1 (en) * 2003-03-05 2005-01-20 Harri Pekonen System and method for data transmission and reception
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エンコード装置
US7277697B2 (en) 2003-05-23 2007-10-02 Adesh Desai Method and system for establishing a teleconference over a telephony network
JP2004362099A (ja) 2003-06-03 2004-12-24 Sony Corp サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
MXPA05013237A (es) 2003-06-07 2006-03-09 Samsung Electronics Co Ltd Aparato y metodo para la organizacion e interpretacion de datos multimedia en un medio de grabacion.
KR101003413B1 (ko) 2003-06-12 2010-12-23 엘지전자 주식회사 이동통신 단말기의 전송데이터 압축/해제 방법
US7603689B2 (en) 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
RU2265960C2 (ru) 2003-06-16 2005-12-10 Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" Способ передачи информации с использованием адаптивного перемежения
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050004997A1 (en) 2003-07-01 2005-01-06 Nokia Corporation Progressive downloading of timed multimedia content
US8149939B2 (en) 2003-07-07 2012-04-03 Samsung Electronics Co., Ltd. System of robust DTV signal transmissions that legacy DTV receivers will disregard
US7254754B2 (en) 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
KR100532450B1 (ko) 2003-07-16 2005-11-30 삼성전자주식회사 에러에 대해 강인한 특성을 가지는 데이터 기록 방법,이에 적합한 데이터 재생 방법, 그리고 이에 적합한 장치들
US20050028067A1 (en) * 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
US8694869B2 (en) 2003-08-21 2014-04-08 QUALCIMM Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
CN1864359B (zh) 2003-08-21 2012-04-18 高通股份有限公司 用于广播和组播内容跨小区边界和/或不同传送方案之间的无缝传送的方法和相关装置
IL157885A0 (en) * 2003-09-11 2004-03-28 Bamboo Mediacasting Ltd Iterative forward error correction
IL157886A0 (en) * 2003-09-11 2009-02-11 Bamboo Mediacasting Ltd Secure multicast transmission
JP4183586B2 (ja) 2003-09-12 2008-11-19 三洋電機株式会社 映像表示装置
EP2426940A1 (en) 2003-09-15 2012-03-07 The DirecTV Group, Inc. Method and system for adaptive transcoding and transrating in a video network
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
ATE337643T1 (de) 2003-09-30 2006-09-15 Ericsson Telefon Ab L M In-place entschachtelung von daten
US7559004B1 (en) 2003-10-01 2009-07-07 Sandisk Corporation Dynamic redundant area configuration in a non-volatile memory system
US7139960B2 (en) 2003-10-06 2006-11-21 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
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
ATE479142T1 (de) * 2003-10-14 2010-09-15 Panasonic Corp Datenumsetzer
US7650036B2 (en) * 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
US7168030B2 (en) * 2003-10-17 2007-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Turbo code decoder with parity information update
EP1528808A3 (en) 2003-10-27 2008-03-26 Matsushita Electric Industrial Co., Ltd. Apparatus for receiving a broadcast signal
JP2005136546A (ja) 2003-10-29 2005-05-26 Sony Corp 送信装置および方法、記録媒体、並びにプログラム
DE602004011445T2 (de) 2003-11-03 2009-01-15 Broadcom Corp., Irvine FEC-Dekodierung mit dynamischen Parametern
US20050102371A1 (en) * 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
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
WO2005094020A1 (en) 2004-03-19 2005-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Higher layer packet framing using rlp
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
JP4433287B2 (ja) 2004-03-25 2010-03-17 ソニー株式会社 受信装置および方法、並びにプログラム
US8842175B2 (en) 2004-03-26 2014-09-23 Broadcom Corporation Anticipatory video signal reception and processing
US20050216472A1 (en) 2004-03-29 2005-09-29 David Leon Efficient multicast/broadcast distribution of formatted data
US20080243918A1 (en) 2004-03-30 2008-10-02 Koninklijke Philips Electronic, N.V. System and Method For Supporting Improved Trick Mode Performance For Disc Based Multimedia Content
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
EP2202888A1 (en) 2004-05-07 2010-06-30 Digital Fountain, Inc. File download and streaming system
US7633970B2 (en) * 2004-05-07 2009-12-15 Agere Systems Inc. MAC header compression for use with frame aggregation
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
US20060037057A1 (en) * 2004-05-24 2006-02-16 Sharp Laboratories Of America, Inc. Method and system of enabling trick play modes using HTTP GET
US8331445B2 (en) * 2004-06-01 2012-12-11 Qualcomm Incorporated Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques
US20070110074A1 (en) * 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US7139660B2 (en) 2004-07-14 2006-11-21 General Motors Corporation System and method for changing motor vehicle personalization settings
US8112531B2 (en) 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US8544043B2 (en) 2004-07-21 2013-09-24 Qualcomm Incorporated Methods and apparatus for providing content information to content servers
US7409626B1 (en) 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
US7376150B2 (en) * 2004-07-30 2008-05-20 Nokia Corporation Point-to-point repair response mechanism for point-to-multipoint transmission systems
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
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
WO2006060036A1 (en) 2004-12-02 2006-06-08 Thomson Licensing Adaptive forward error correction
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 株式会社第一興商 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する方法と受信装置
CN101116306A (zh) 2005-02-08 2008-01-30 艾利森电话股份有限公司 在分组交换网络上的按需多频道流会话
US7925097B2 (en) 2005-02-18 2011-04-12 Sanyo Electric Co., Ltd. Image display method, image coding apparatus, and image decoding apparatus
US7822139B2 (en) 2005-03-02 2010-10-26 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence
EP1856911A4 (en) 2005-03-07 2010-02-24 Ericsson Telefon Ab L M SWITCHING MULTIMEDIA CHANNELS
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
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
JP2008536420A (ja) 2005-04-13 2008-09-04 ノキア コーポレイション スケーラビリティ情報の符号化、格納およびシグナリング
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7961700B2 (en) 2005-04-28 2011-06-14 Qualcomm Incorporated Multi-carrier operation in data transmission systems
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
JP2006319743A (ja) 2005-05-13 2006-11-24 Toshiba Corp 受信装置
US8228994B2 (en) 2005-05-20 2012-07-24 Microsoft Corporation Multi-view video coding based on temporal and view decomposition
WO2006125850A1 (en) * 2005-05-24 2006-11-30 Nokia Corporation Method and apparatuses for hierarchical transmission/reception in digital broadcast
US7676735B2 (en) 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
US7644335B2 (en) * 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
JP2007013436A (ja) 2005-06-29 2007-01-18 Toshiba Corp 符号化ストリーム再生装置
JP2007013675A (ja) 2005-06-30 2007-01-18 Sanyo Electric Co Ltd ストリーミング配信システム及びサーバ
US20070006274A1 (en) 2005-06-30 2007-01-04 Toni Paila Transmission and reception of session packets
US7725593B2 (en) 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
EP1755248B1 (en) 2005-08-19 2011-06-22 Hewlett-Packard Development Company, L.P. Indication of lost segments across layer boundaries
CN101053249B (zh) * 2005-09-09 2011-02-16 松下电器产业株式会社 图像处理方法、图像存储方法、图像处理装置及文件格式
US7924913B2 (en) 2005-09-15 2011-04-12 Microsoft Corporation Non-realtime data transcoding of multimedia content
US20070067480A1 (en) 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US9113147B2 (en) * 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
US20070078876A1 (en) * 2005-09-30 2007-04-05 Yahoo! Inc. Generating a stream of media data containing portions of media files using location tags
CA2562212C (en) * 2005-10-05 2012-07-10 Lg Electronics Inc. Method of processing traffic information and digital broadcast 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
MY147530A (en) 2005-10-11 2012-12-31 Nokia Corp System and method for efficient scalable stream adaptation
CN100442858C (zh) * 2005-10-11 2008-12-10 华为技术有限公司 分组网络中多媒体实时传输的唇同步方法及其装置
US7720096B2 (en) 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
WO2007047736A2 (en) 2005-10-19 2007-04-26 Thomson Licensing Multi-view video coding using scalable video coding
JP4727401B2 (ja) 2005-12-02 2011-07-20 日本電信電話株式会社 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法
FR2894421B1 (fr) 2005-12-07 2008-01-18 Canon Kk Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
KR100759823B1 (ko) 2005-12-08 2007-09-18 한국전자통신연구원 제로 복귀 신호 발생 장치 및 그 방법
JP4456064B2 (ja) 2005-12-21 2010-04-28 日本電信電話株式会社 パケット送信装置、受信装置、システム、およびプログラム
US20070157267A1 (en) 2005-12-30 2007-07-05 Intel Corporation Techniques to improve time seek operations
PL1969856T3 (pl) 2006-01-05 2013-01-31 Ericsson Telefon Ab L M Zarządzanie plikiem zasobnika medialnego
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
MY148628A (en) 2006-01-11 2013-05-15 Nokia Corp Backward-compatible aggregation of pictures in scalable video coding
JP5199124B2 (ja) 2006-01-12 2013-05-15 エルジー エレクトロニクス インコーポレイティド 多視点ビデオの処理
WO2007086654A1 (en) * 2006-01-25 2007-08-02 Lg Electronics Inc. Digital broadcasting system and method of processing data
RU2290768C1 (ru) 2006-01-30 2006-12-27 Общество с ограниченной ответственностью "Трафиклэнд" Система медиавещания в инфраструктуре оператора мобильной связи
US7262719B2 (en) 2006-01-30 2007-08-28 International Business Machines Corporation Fast data stream decoding using apriori information
GB0602314D0 (en) 2006-02-06 2006-03-15 Ericsson Telefon Ab L M Transporting packets
US20110087792A2 (en) 2006-02-07 2011-04-14 Dot Hill Systems Corporation Data replication method and apparatus
JP5237119B2 (ja) * 2006-02-08 2013-07-17 トムソン ライセンシング ラプターコードをデコードする方法及び装置
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
US20090100496A1 (en) * 2006-04-24 2009-04-16 Andreas Bechtolsheim Media server system
US7640353B2 (en) 2006-04-27 2009-12-29 Microsoft Corporation Guided random seek support for media streaming
US7971129B2 (en) * 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US7525993B2 (en) 2006-05-24 2009-04-28 Newport Media, Inc. Robust transmission system and method for mobile television applications
TWM302355U (en) 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
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
US20100211690A1 (en) 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
JP2008011404A (ja) 2006-06-30 2008-01-17 Toshiba Corp コンテンツ処理装置及びコンテンツ処理方法
JP4392004B2 (ja) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術
EP2302869A3 (en) 2006-07-20 2013-05-22 SanDisk Technologies Inc. An improved audio visual player apparatus and system and method of content distribution using the same
US7711797B1 (en) 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
US8209736B2 (en) * 2006-08-23 2012-06-26 Mediatek Inc. Systems and methods for managing television (TV) signals
US20080066136A1 (en) 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
CN101518087B (zh) 2006-08-24 2013-05-01 诺基亚公司 用于指示媒体文件中轨道关系的系统和方法
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
EP2095641A2 (en) 2006-11-14 2009-09-02 QUALCOMM Incorporated Systems and methods for channel switching
US8027328B2 (en) 2006-12-26 2011-09-27 Alcatel Lucent Header compression in a wireless communication network
EP3901779B1 (en) 2007-01-05 2022-10-26 DivX, LLC 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차원 영상 처리 장치 및 방법
US7949195B2 (en) 2007-01-16 2011-05-24 Cisco Technology, Inc. Per block breakpoint determining for hybrid variable length coding
US7721003B2 (en) 2007-02-02 2010-05-18 International Business Machines Corporation System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client
US7805456B2 (en) 2007-02-05 2010-09-28 Microsoft Corporation Query pattern to enable type flow of element types
US20080192818A1 (en) 2007-02-09 2008-08-14 Dipietro Donald Vincent Systems and methods for securing media
US20080232357A1 (en) 2007-03-19 2008-09-25 Legend Silicon Corp. Ls digital fountain code
JP4838191B2 (ja) 2007-05-08 2011-12-14 シャープ株式会社 ファイル再生装置、ファイル再生方法、ファイル再生を実行させるプログラム及びそのプログラムを記録した記録媒体
JP2008283571A (ja) 2007-05-11 2008-11-20 Ntt Docomo Inc コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
WO2008140261A2 (en) 2007-05-14 2008-11-20 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
CA2686557A1 (en) 2007-05-16 2008-11-27 Thomson Licensing Apparatus and method for encoding and decoding signals
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
EP2393301A1 (en) 2007-06-11 2011-12-07 Samsung Electronics Co., Ltd. Method and apparatus for generating header information of stereoscopic image
CN101690118B (zh) 2007-06-20 2013-08-28 艾利森电话股份有限公司 用于改进的媒体会话管理的方法和设备
KR20100030648A (ko) * 2007-06-26 2010-03-18 노키아 코포레이션 시간 레이어 스위칭 포인트들을 표시하는 시스템 및 방법
US7917702B2 (en) 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
JP2009027598A (ja) 2007-07-23 2009-02-05 Hitachi Ltd 映像配信サーバおよび映像配信方法
US8327403B1 (en) 2007-09-07 2012-12-04 United Video Properties, Inc. Systems and methods for providing remote program ordering on a user device via a web server
CN101802797B (zh) 2007-09-12 2013-07-17 数字方敦股份有限公司 生成和传达源标识信息以实现可靠的通信
US8233532B2 (en) 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
US8346959B2 (en) 2007-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Client-controlled adaptive streaming
EP2046044B1 (en) 2007-10-01 2017-01-18 Cabot Communications Ltd A method and apparatus for streaming digital media content and a communication system
EP2181541B1 (en) * 2007-10-09 2018-12-05 Samsung Electronics Co., Ltd. Apparatus and method for generating mac pdu in a mobile communication system
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8635360B2 (en) * 2007-10-19 2014-01-21 Google Inc. Media playback point seeking using data range requests
US20090125636A1 (en) * 2007-11-13 2009-05-14 Qiong Li Payload allocation methods for scalable multimedia servers
EP2215595B1 (en) 2007-11-23 2012-02-22 Media Patents S.L. A process for the on-line distribution of audiovisual contents with advertisements, advertisement management system, digital rights management system and audiovisual content player provided with said systems
US8543720B2 (en) 2007-12-05 2013-09-24 Google Inc. Dynamic bit rate scaling
TWI355168B (en) 2007-12-07 2011-12-21 Univ Nat Chiao Tung Application classification method in network traff
JP5385598B2 (ja) 2007-12-17 2014-01-08 キヤノン株式会社 画像処理装置及び画像管理サーバ装置及びそれらの制御方法及びプログラム
US9313245B2 (en) 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
KR101506217B1 (ko) 2008-01-31 2015-03-26 삼성전자주식회사 스테레오스코픽 영상의 부분 데이터 구간 재생을 위한스테레오스코픽 영상 데이터스트림 생성 방법과 장치, 및스테레오스코픽 영상의 부분 데이터 구간 재생 방법과 장치
EP2086237B1 (en) 2008-02-04 2012-06-27 Alcatel Lucent Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions
US8151174B2 (en) 2008-02-13 2012-04-03 Sunrise IP, LLC Block modulus coding (BMC) systems and methods for block coding with non-binary modulus
US20090219985A1 (en) 2008-02-28 2009-09-03 Vasanth Swaminathan Systems and Methods for Processing Multiple Projections of Video Data in a Single Video File
US7984097B2 (en) 2008-03-18 2011-07-19 Media Patents, S.L. Methods for transmitting multimedia files and advertisements
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US20090257508A1 (en) 2008-04-10 2009-10-15 Gaurav Aggarwal Method and system for enabling video trick modes
EP2263341B1 (en) 2008-04-14 2018-09-19 Amazon Technologies, Inc. Method and apparatus for performing random access procedures
US20100049865A1 (en) 2008-04-16 2010-02-25 Nokia Corporation Decoding Order Recovery in Session Multiplexing
US8855199B2 (en) * 2008-04-21 2014-10-07 Nokia Corporation Method and device for video coding and decoding
KR101367886B1 (ko) 2008-05-07 2014-02-26 디지털 파운튼, 인크. 브로드캐스트 채널 상에서의 고속 채널 재핑 및 고품질 스트리밍 보호
WO2009140208A2 (en) 2008-05-12 2009-11-19 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 腾讯科技(深圳)有限公司 媒体文件的点播方法、系统和设备
US7860996B2 (en) 2008-05-30 2010-12-28 Microsoft Corporation Media streaming with seamless ad insertion
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
US8099473B2 (en) 2008-12-31 2012-01-17 Apple Inc. Variant streams 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
CN104768032B (zh) 2009-01-26 2018-06-01 汤姆森特许公司 用于视频解码的装置
US9025670B2 (en) 2009-01-29 2015-05-05 Dolby Laboratories Licensing Corporation Methods and devices for sub-sampling and interleaving multiple images, EG stereoscopic
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
US8909806B2 (en) 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations
WO2010120804A1 (en) 2009-04-13 2010-10-21 Reald Inc. Encoding, decoding, and distributing enhanced resolution stereoscopic video
US9807468B2 (en) 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching
WO2011009205A1 (en) 2009-07-22 2011-01-27 Jigsee 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
KR101598317B1 (ko) 2009-09-02 2016-02-26 애플 인크. 무선 시스템들의 mac 패킷 데이터 유닛 구성
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 コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
CN107911332B (zh) * 2009-11-04 2021-01-08 阿莫泰克有限公司 媒体内容流播的方法、系统和计算机可读介质
KR101786051B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
KR101786050B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
CN101729857A (zh) 2009-11-24 2010-06-09 中兴通讯股份有限公司 一种接入视频服务的方法及视频播放系统
CA2783592A1 (en) 2009-12-11 2011-06-16 Nokia Corporation Apparatus and methods for describing and timing representations in streaming media files
KR101709903B1 (ko) 2010-02-19 2017-02-23 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 적응화를 위한 방법 및 장치
CN102763396B (zh) 2010-02-19 2016-05-25 瑞典爱立信有限公司 用于在http流传输中进行表示切换的方法和装置
JP5071495B2 (ja) 2010-03-04 2012-11-14 ウシオ電機株式会社 光源装置
DE112011100869T5 (de) * 2010-03-11 2012-12-20 Electronics And Telecommunications Research Institute Verfahren und Vorrichtung zum Senden/Empfangen von Daten in einem MIMO-System
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US9497290B2 (en) 2010-06-14 2016-11-15 Blackberry Limited Media presentation description delta file for HTTP streaming
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9596447B2 (en) * 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes 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
US20120208580A1 (en) 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153468A1 (en) * 2003-01-31 2004-08-05 Toni Paila Datacast file transmission with meta-data retention

Also Published As

Publication number Publication date
CN101802797A (zh) 2010-08-11
KR20100055528A (ko) 2010-05-26
EP2203836A4 (en) 2014-11-05
BRPI0816680A2 (pt) 2015-03-17
JP5027305B2 (ja) 2012-09-19
WO2009036378A1 (en) 2009-03-19
EP2203836A1 (en) 2010-07-07
JP2010539816A (ja) 2010-12-16
AU2008298602A1 (en) 2009-03-19
MX2010002829A (es) 2010-04-01
CA2697764A1 (en) 2009-03-19
US20090067551A1 (en) 2009-03-12
US9237101B2 (en) 2016-01-12
RU2010114256A (ru) 2011-10-20
CN101802797B (zh) 2013-07-17
HK1145217A1 (en) 2011-04-08

Similar Documents

Publication Publication Date Title
KR101129260B1 (ko) 신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신
US7971129B2 (en) Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US8990663B2 (en) Method to support forward error correction for real-time audio and video data over internet protocol networks
KR100554062B1 (ko) 패킷 채널을 통한 멀티미디어 통신 방법
US7889707B2 (en) Method and system for unequal error protection with block codes for wireless transmission
TWI501579B (zh) 使用透過單播系統接收之增量冗餘以在廣播系統中接收資料的接收器與接收方法
KR102133930B1 (ko) 데이터 패킷 송수신 장치 및 방법
JP5442816B2 (ja) 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
KR101367886B1 (ko) 브로드캐스트 채널 상에서의 고속 채널 재핑 및 고품질 스트리밍 보호
US20060150055A1 (en) Adaptive information delivery system using FEC feedback
US8555146B2 (en) FEC streaming with aggregation of concurrent streams for FEC computation
JP2010246120A (ja) ホームネットワークにおいてインターネットプロトコルテレビを使用して通信するための装置及び方法
KR20110097917A (ko) 온 디멘드 에러 제어
Sachs et al. Hybrid ARQ for robust video streaming over wireless LANs
Adamson et al. Taxonomy of coding techniques for efficient network communications
Nazir et al. Unequal error protection for data partitioned H. 264/AVC video broadcasting
JP3730977B2 (ja) データ伝送方法およびデータ処理方法
Arslan et al. Optimization of generalized LT codes for progressive image transfer
JP2013085293A (ja) インターネットプロトコルネットワークでのリアルタイムのオーディオ及びビデオデータの前方誤り訂正をサポートする方法
KR20150051395A (ko) 소거회복코드 기반의 멀티 블록 데이터 무선 네트워크 전송 시스템

Legal Events

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

Payment date: 20150227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee