KR102081467B1 - 송신기에 관련된 정보를 이용하는 오류 복구 방법 및 장치 - Google Patents

송신기에 관련된 정보를 이용하는 오류 복구 방법 및 장치 Download PDF

Info

Publication number
KR102081467B1
KR102081467B1 KR1020147035509A KR20147035509A KR102081467B1 KR 102081467 B1 KR102081467 B1 KR 102081467B1 KR 1020147035509 A KR1020147035509 A KR 1020147035509A KR 20147035509 A KR20147035509 A KR 20147035509A KR 102081467 B1 KR102081467 B1 KR 102081467B1
Authority
KR
South Korea
Prior art keywords
data
bit
data bits
candidate
transmitter
Prior art date
Application number
KR1020147035509A
Other languages
English (en)
Other versions
KR20150021523A (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 KR20150021523A publication Critical patent/KR20150021523A/ko
Application granted granted Critical
Publication of KR102081467B1 publication Critical patent/KR102081467B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0055MAP-decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

손실 통신 채널을 통해 송신기로부터 수신기에 송신되는 부호화된 데이터 비트들을 처리하는 방법으로서, 상기 방법은, 상기 통신 채널을 통해 상기 부호화된 데이터 비트들을 수신하는 단계―상기 부호화된 데이터 비트들은 중복 데이터 유닛들을 포함함―; 상기 부호화된 데이터 비트들을 오류 정정 디코더에서 복호하는 단계―손실된 데이터의 복구는 상기 중복 데이터 유닛들 중 적어도 하나를 이용해서 상기 오류 정정 디코더에서 수행됨―; 적어도 하나의 데이터 비트가, 상기 적어도 하나의 데이터 비트에 대한 복수의 후보 비트값을 탐색하는 상기 디코더로 인해, 복구될 수 없는지의 여부를 판정하는 단계; 상기 송신기에 관련된 정보를 수신하는 단계; 상기 송신기에 관련된 정보를 이용해서 상기 적어도 하나의 데이터 비트에 대한 후보 비트값들 중 적어도 하나를 배제하기 위해 상기 복수의 후보 비트값을 분석하는 단계; 및 상기 분석에 기초하여 상기 적어도 하나의 데이터 비트를 리졸빙하는 단계를 포함한다.

Description

송신기에 관련된 정보를 이용하는 오류 복구 방법 및 장치{METHOD AND APPARATUS FOR ERROR RECOVERY USING INFORMATION RELATED TO THE TRANSMITTER}
데이터 스트림이 통신 채널을 통해 송신기로부터 수신기로 송신되는 많은 상황들이 있다. 통신 채널은 다수의 서로 다른 가능한 네트워크 중 하나(또는 그 이상)에 존재할 수 있다. 예컨대, 통신 채널은 인터넷에 또는 모바일 전기통신 네트워크와 같은 무선 네트워크에 존재할 수 있다. 데이터 스트림 내의 데이터는 통신 채널을 통한 송신을 위해 데이터 패킷들로 분할될 수 있다. 데이터를 데이터 패킷들로 분할하는 프로토콜(예컨대, 데이터 패킷들의 헤더 형태, 및 그 밖의 상기와 같은 구현 상세들)은, 데이터가 송신되게 되는 통신 채널의 성질, 예컨대 데이터 패킷이 송신되게 되는 네트워크의 유형에 의존할 수 있다. 데이터는 송신기로부터의 송신에 앞서 인코더에 의해 부호화되고, 수신기에서의 수신 이후에 디코더에 의해 복호될 수 있다.
이상적인 시스템에서는, 통신 채널이 무손실(lossless)이기 때문에, 송신기로부터 통신 채널을 통해 송신된 모든 데이터 패킷은 수신기에서 수신된다. 그러나, 실제 물리 시스템에서는, 통신 채널이 손실 채널일 수 있으며, 이는 송신된 데이터 패킷들 중 일부가 통신 채널 상에서 손실되게 되어 수신기에서 수신되지 않게 됨을 의미한다. 이것은 유해할 수 있다. 손실된 데이터 패킷들 중 적어도 일부에 대한 복구를 돕기 위해 수신기에서 정정 기법(correction scheme)들이 사용될 수 있다.
예로서, 순방향 오류 정정(FEC; forward error correction)이 통신 채널에서의 패킷 손실을 방지하는데 사용될 수 있는 정정 기법의 하나이다.
이 요약은 하기의 발명을 실시하기 위한 구체적인 내용에서 더 기술하는 개념들의 선택을 간략화된 형태로 소개하기 위해 제공된다. 이 요약은 청구된 요지의 핵심적인 특징들 또는 본질적인 특징들을 밝히려는 것이 아니며, 청구된 요지의 범위를 제한하는데 사용되게 하려는 것도 아니다.
본 발명의 실시예들은 수신기에서 부호화된 데이터 비트들을 처리하는 방법을 제공하고, 상기 부호화된 데이터 비트들은 네트워크를 통해 확립된 손실 통신 채널을 통해 송신기로부터 수신기로 송신된다. 통신 채널을 통해 수신되는 부호화된 데이터 비트들은 중복(redundant) 데이터 유닛들을 포함한다. 오류 정정 디코더에서, 상기 부호화된 데이터 비트들이 복호되고, 중복 데이터 유닛들 중 적어도 하나를 이용해서 오류 정정 디코더에서 손실 데이터의 복구가 수행된다. 상기 방법은, 적어도 하나의 데이터 비트에 대하여 복수의 후보 비트값을 탐색하는 디코더로 인해 적어도 하나의 데이터 비트가 복구될 수 없는지의 여부를 판정하는 단계 및 상기 송신기에 관련된 정보를 수신하는 단계를 포함한다. 복수의 후보 비트값은 상기 송신기에 관련된 정보를 이용해서 적어도 하나의 데이터 비트에 대한 후보 비트값들 중 적어도 하나를 배제하도록 분석되고, 상기 적어도 하나의 데이터 비트는 상기 분석에 기초하여 리졸빙(resolving)된다.
본 발명의 이해를 돕는 한편, 본 발명이 어떻게 실행될 수 있는지를 보여주기 위해, 이제 하기의 도면들을 예로서 참조하게 된다:
도 1a는 FEC 데이터 유닛이 어떻게 생성될 수 있는지의 제 1 예를 예시하고;
도 1b는 FEC 데이터 유닛이 어떻게 생성될 수 있는지의 제 2 예를 예시하고;
도 1c는 FEC 데이터 유닛이 어떻게 생성될 수 있는지의 제 3 예를 예시하고;
도 2는 통신 시스템에서 데이터 패킷들의 송신을 도시하는 타임 차트이고;
도 3은 통신 시스템을 도시하고;
도 4는 통신 시스템에서 송신되는 전형적인 데이터 스트림을 나타내고;
도 5는 데이터 비트들을 분해하는 프로세스의 플로 차트이고;
도 6은 수신기에서의 개략적인 프로세서를 나타내고;
도 7은 송신기에서의 개략적인 프로세서를 나타낸다.
이제, 본 발명의 바람직한 실시예들이 단지 예로서만 기술되게 된다.
FEC는 애플리케이션(예컨대, 오디오 또는 비디오) 디코더에 의해 보여지는 것처럼 통신 채널에서의 손실에 비해서는 손실을 줄이지만, 손실된 모든 오리지널 패킷의 복구를 보장하지는 못한다.
인터넷과 같은 공중 통신망을 통한 데이터 전송 규모는 급증하고 있다. 그래서, 신뢰도 있는 데이터 송신을 보장하기 위해 오류 정정 메커니즘들이 더욱 중요해지고 있다.
FEC 복호 동안에는, 특정 비트값 또는 비트 시퀀스값에 대하여 복수의 후보 옵션이 존재하는지를 판정하는 FEC 디코더로 인해 손실된 패킷의 정확한 비트값 또는 비트 시퀀스값에 대하여 불확실성이 생길 수 있다.
본 발명자들은, 후보 패킷들의 내용을 평가함으로써 복구 프로세스의 몇몇 불확실성(즉, 비트 또는 비트들의 시퀀스가 하나 이상의 값을 취할 수 있을 경우)이 해결되어서, 통신 채널에서의 패킷 손실에 비해, 애플리케이션 디코더에 의해 보여지는 패킷 손실을 더욱 줄일 수 있다는 점을 알았다.
FEC는, 오리지널 데이터 유닛들에 더하여 중복 정정 데이터(FEC 데이터 유닛들로서)를 생성하고, 통신 채널을 통해 송신되는 데이터 스트림 내의 FEC 데이터 유닛들을 포함한다. 오리지널 및 중복 FEC 데이터를 송신하는 FEC 기법을 계통적 FEC 기법이라고 부른다. 오리지널 데이터를 송신하지 않는 FEC 기법을 비-계통적 기법이라고 부른다. 후자의 경우, 송신된 총 데이터량은 여전히 오리지널 데이터량보다 많아서, 중복을 제공한다. 간략화를 위해, 다만 일반성을 회손함이 없이, 본원에서는 계통적 FEC 기법들에 대하여 다룬다. 중복 FEC 데이터 유닛들은, 데이터 스트림 내의 데이터 패킷들과 별개로, 그들 자신의 패킷들에 놓일 수 있다. 대안으로서, 또는 부가적으로, FEC 데이터 유닛들은 데이터 스트림 내의 오리지널 데이터 패킷들에 첨부(또는 "편승(piggybacked)")될 수 있다. 간략화를 위해, 다만 일반성을 회손함이 없이, 본원에서는 별개의 오리지널 및 FEC 패킷들에 대하여 다룬다. 통신 채널에서 오리지널 데이터 패킷들 중 일부가 손실될 경우에, 성공적으로 도달된 FEC 데이터 유닛들 및 성공적으로 도달된 데이터 패킷들은 손실된 데이터 패킷들(그중 적어도 일부)을 복구하는데 사용될 수 있다. 즉, FEC는, 통신 채널에서의 실제 패킷 손실에 비해, 수신기의 디코더에 의해 보여지는 패킷 손실을 줄인다.
도 1a, 도 1b 및 도 1c는 FEC 데이터 유닛이 어떻게 생성될 수 있는지의 3가지 예를 예시한다.
도 1a에 예시된 바와 같이, FEC 데이터 유닛(104)은 데이터 스트림의 오리지널 데이터 패킷(102)의 정확한 사본(exact copy)으로서 생성될 수 있다. 데이터 패킷(102) 및 FEC 데이터 유닛(104)을 모두 데이터 스트림에 포함함으로써, 데이터 패킷(102) 내의 데이터가 두 번 송신된다. 따라서, 송신 중에 데이터 패킷(102)이 손실되어도, FEC 데이터 유닛(104)이 성공적으로 수신되는 경우에는, 데이터 패킷(102) 내의 데이터가 수신기에서 (FEC 데이터 유닛(104)을 이용해서) 성공적으로 복구될 수 있다.
도 1b에 예시된 바와 같이, 모듈(108)은 낮은 비트 레이트(bit rate)로 부호화된 오리지널 데이터 패킷(106)의 사본인 FEC 데이터 유닛(110)을 생성하는데 사용될 수 있다. 송신 중에 데이터 패킷(106)이 손실되어도, FEC 데이터 유닛(110)이 성공적으로 수신되는 경우에는, 데이터 패킷(106) 내의 데이터가 FEC 데이터 유닛(110)에 의거하여 수신기에서 적어도 부분적으로 복구될 수 있다. 데이터 패킷들(102 및 106)이 동일한 크기(예컨대, 동일한 비트수)를 가지면, FEC 데이터 유닛(110)은 FEC 데이터 유닛(104)보다 크기가 작을 것(예컨대, 보다 적은 비트)이라는 점에 유의해야 한다. 따라서, FEC 데이터 유닛(110)이 데이터 패킷(106)을 복구하는 것보다, FEC 데이터 유닛(104)이 데이터 패킷(102)을 복구하는 것이 더 유용할 수도 있지만, FEC 데이터 유닛(110)은 데이터 스트림에 대하여 통신 채널 상에서 가용 비트 레이트를 FEC 데이터 유닛(104)이 사용하는 것에 비하여 덜 사용하기 때문에, 도 1b에 도시된 바와 같이 FEC 데이터 유닛들을 생성하는 것이 유리할 수 있다.
도 1c에 예시된 바와 같이, 혼합 모듈(118)은 복수의 오리지널 데이터 패킷, 예컨대, 데이터 패킷들(112, 114 및 116)로부터 FEC 데이터 유닛(120)을 생성하는데 사용될 수 있다. 예컨대, 혼합 모듈(118)은 3개의 데이터 패킷(112, 114 및 116)에 적용된 XOR 함수의 비트마다의 결과를 판정해서 FEC 데이터 유닛(120)을 생성할 수 있다. 다른 해법에 있어서는, 데이터 패킷들(112, 114 및 116)은 갈르와체(Galois field GF(28)) 연산을 이용해서 바이트마다 결합되어 FEC 데이터 유닛(120)을 생성한다. 이런 의미에서, FEC 데이터 유닛(120)은 오리지널 데이터 패킷들(112, 114 및 116)을 결합 또는 혼합한 결과이다. 송신 중에 데이터 패킷들(112, 114 및 116) 중 하나가 손실되어도, 나머지 2개의 데이터 패킷 및 FEC 데이터 유닛(120)이 성공적으로 수신되는 경우에는, 손실된 데이터 패킷 내의 데이터가 수신기에서 (나머지 2개의 데이터 패킷 및 FEC 데이터 유닛(120)을 이용해서) 성공적으로 복구될 수 있다.
따라서, FEC 데이터 유닛들이 서로 다른 다양한 방식으로 생성될 수 있음을 알 수 있다. 서로 다른 FEC 기법들은 FEC 데이터 유닛들이 생성되게 하는 서로 다른 방식들을 기술한다. FEC 기법은, 생성되는 FEC 데이터 유닛들의 수; 어떤 데이터 패킷들이 FEC 데이터 유닛들의 생성에 사용되는지; FEC 데이터 유닛들이 어떻게 송신되는지(예컨대, 별개의 패킷들로서 또는 FEC 데이터 유닛들을 데이터 패킷들에 첨부함으로써); 및 FEC 데이터 유닛들이 데이터 스트림 내의 어디에 놓이는지와 같은 FEC 데이터 유닛들의 생성에 관련된 인자들을 기술할 수 있다. FEC 기법의 손실-복구 성능은 손실된 데이터 패킷들을 수신기에서 FEC 데이터 유닛들을 이용해서 복구하는 FEC 기법의 능력을 기술한다.
일반적으로, 데이터 스트림 내에서 FEC 데이터 유닛들의 수가 증가할수록, FEC 기법의 손실-복구 성능이 향상된다. 그러나, 데이터 스트림 내에서 FEC 데이터 유닛들의 수를 증가시키려면, 비트 레이트 효율을 희생해야 한다.
FEC 기법의 손실-복구 성능은 주로 FEC 오버헤드(overhead) 및 FEC 뎁스(depth)에 의존한다.
FEC 오버헤드는 오리지널 데이터량에 관한 중복 데이터량(예컨대, 오리지널 패킷들의 수에 관한 FEC 패킷들의 수)을 기술한다. 일반적으로, 오버헤드가 높을수록 FEC 기법의 손실-복구 성능이 향상된다. 반면에, 오버헤드를 높이려면, 비트 레이트 효율을 희생해야 한다. 오리지널 데이터의 부호화 비트 레이트가 변화없이 유지되면, 중복이 증가하여 총 비트 레이트의 증가가 초래된다. 대안으로서, 총 비트 레이트를 제한하면, 중복이 증가해도, 오리지널 데이터의 부호화 비트 레이트의 희생이 줄어든다.
FEC 뎁스는, FEC 데이터 유닛에 의해 보호(즉, 결합)될 수 있는 가장 오래된 데이터 패킷과 최신 데이터 패킷(이들 데이터 패킷 모두를 포함) 사이의 디스플레이스먼트(displacement)를 기술한다. 다시 말해, FEC 뎁스는 FEC 데이터 유닛에 결합될 수 있는 오리지널 데이터패킷들의 최대 수를 기술한다. 뎁스가 클수록 FEC 데이터 유닛들에 대한 데이터 패킷들의 서로 다른 결합들의 가능성이 높아지기 때문에, 예컨대 가변적인 채널 상태들에 대하여 FEC 기법의 활용도가 높아진다. 단적인 예로서, FEC 데이터 유닛이 하나의 오리지널 데이터 패킷의 사본이어야 하는 것으로 제한되는 경우에는, 뎁스가 클수록 오리지널 데이터 패킷 및 그 사본(FEC 데이터 유닛)의 적시의 분리 가능성이 커진다. 이는, 오리지널 데이터 패킷 및 사본(FEC 데이터 유닛)이 모두 통신 채널 상에서 순식간에 손실될 가능성을 최소화하기 때문에, 버스티(bursty) 패킷-손실 상태에 있어서 유리하다.
FEC 뎁스는 통신에 있어서의 딜레이에 관련된다. FEC 데이터 유닛은 미리-생성된 오리지널 데이터 패킷들을 결합하기 때문에, FEC를 이용해도 송신기에서 추가적인 알고리즘 딜레이가 야기되지 않는다. 그러나, 손실된 데이터 패킷을 수신기에서 복원하기 위해서는, FEC 데이터 유닛이 베이스가 되는 데이터 패킷들보다 나중에 생성 및 송신되기 때문에, 수신기에서 딜레이를 상정해둔다. 이는 도 2에 도시된 타임 차트에서 확인할 수 있다. 도 2는 데이터 스트림의 3개의 데이터 패킷(202, 204 및 206)이 FEC 데이터 유닛(208)을 생성하는데 사용되고 있는 상황을 도시한다. FEC 데이터 유닛은, 3개의 데이터 패킷(202, 204 및 206)이 모두 생성될 때까지는 생성될 수 없다. 따라서, 데이터 패킷들(202 및 204)은, 송신기에서 FEC 데이터 유닛(208)이 생성되기 전에, 송신기로부터 송신되게 된다. 따라서, FEC 데이터 유닛(208)이 송신될 수 있는 가장 빠른 시기는 데이터 패킷(206) 직후이다. 이러한 전개가 도 2에 도시된다. 데이터 패킷들 및 FEC 데이터 유닛의 송신은 약간의 시간이 걸린다. 도 2는 네트워크 상에서 손실 통신 채널을 통한 송신 중의 데이터 패킷(202)의 손실(210)을 나타내고 있다. 그러나, 데이터 패킷들(204 및 206) 및 FEC 데이터 유닛(208)은 모두 성공적으로 수신기에서 수신된다. 데이터 패킷들(204 및 206) 및 FEC 데이터 유닛(208)은 손실된 데이터 패킷(202)을 수신기에서 복구하는데 사용될 수 있다. 그러나, 손실된 데이터 패킷(202)은, 데이터 패킷들(204 및 206) 및 FEC 데이터 유닛(208)의 3개 모두가 수신기에서 수신되어 있을 때까지는 복구될 수 없다. 따라서, 도 2에 도시된 바와 같이, 데이터 패킷(202)이 수신기에서 수신되어 있어야 하는 시간(손실되지 않았을 경우)과 그 데이터 패킷이 FEC 데이터 유닛(208)을 이용해서 복구될 수 있는 시간 사이에는 데이터 패킷(202)의 FEC 복구에 필요한 딜레이가 존재한다. 데이터 스트림에 대한 딜레이 요건이 충족되지 않으면, 손실된 데이터 패킷(202)은 FEC 데이터 유닛(208)의 도달 전에는 수신기에서 복호 가능하지 않은 것으로서 밝혀지게 된다. 이는 필시 FEC 기법의 성능을 현저하게 떨어뜨리게 될 것이다.
그러나, 이 딜레이는 FEC에 의해 수신기에서 반드시 추가적인 딜레이로서 도입될 필요는 없다. 예컨대, 필요한 딜레이가 이미 수신기에서 존재할 수 있다. 수신기에서의 딜레이가 가능한 한가지 이유는 지터 버퍼(jitter buffer)가 존재하기 때문이며, 지터 버퍼는 패킷 도달 시간에 있어서의 불규칙 변동(지터)을 완화하기 위해 데이터 스트림에 딜레이를 도입한다.
주어진 채널 상태, FEC 오버헤드, 및 FEC 뎁스에 대해서, FEC 데이터 유닛들을 형성하기 위한 오리지널 데이터 패킷들의 최적의 결합/혼합의 선택은 선택된 손실-복구 성능 기준을 최적화함으로써 추진될 수 있다. 종종 다수의 FEC 패킷들이 최적화 윈도 내부에서 공동으로 최적화된다.
손실-복구 성능 기준의 예들은 다음과 같다:
(i) 복구될 수 있는 손실의 수;
(ii) 합 ∑pi, 여기서 pi 는 i번째 데이터 패킷의 비-복구 확률이다. 상기 합은 최적화 윈도 내부에 오리지널 데이터 패킷들을 포함한다;
(iii) 합 ∑(pi)2. 마찬가지로, 상기 합은 최적화 윈도 내부에 오리지널 데이터 패킷들을 포함한다. 비-복구 확률들을 적산하면, 더 높은 비-복구 확률들(즉, 이상치들)이 더욱 가중된다; 또한
(iv) 합 ∑wipi, 여기서 wi 는 i번째 데이터 패킷의 비-복구 확률에 적용된 가중치이다. 가중치는 서로 다른 데이터 패킷들의 손실에 대한 서로 다른 중요도 또는 민감도 레벨을 기술한다. 마찬가지로, 상기 합은 최적화 윈도 내부에 오리지널 패킷들을 포함한다. 상기와 같은 가중된 성능 기준을 이용하는 FEC 기법들은, 서로 다른 데이터 패킷들에 제공된 보호가 상이하기 때문에, 소스-의존적 FEC(source-dependent FEC) 또는 불균일-오류-보호 FEC(uneven-error-protection FEC)라고 한다. 이로 인해, 데이터 스트림의 보다 중요한 데이터 패킷들에 보다 높은 레벨의 보호가 제공된다(예컨대, 특정 애플리케이션 또는 유저로부터의 데이터 패킷들 또는 중요도가 보다 높은 데이터 패킷들, 예컨대 서로 다른 오디오 데이터 패킷들 및 서로 다른 비디오 데이터 패킷들이 FEC 기법에 의해 서로 다른 레벨의 보호를 그들에게 제공했을 수도 있다). 이렇게 해서, 데이터 패킷들이 FEC 기법에 있어서 서로 다른 레벨의 우선도를 가질 수 있다.
이제, 도 3을 참조하여 통신 시스템(300)을 기술한다. 통신 시스템(300)은 송신기(302), 네트워크(308) 및 수신기(310)를 포함한다. 송신기(302)는 데이터를 처리하는 프로세서(304), 네트워크(308)를 통한 데이터의 송신(및 수신)을 위한 네트워크 인터페이스(307), 및 데이터를 저장하는 메모리(306)를 포함한다. 프로세서(304)는 송신기(302)에서 하드웨어로 또는 소프트웨어로 구현될 수 있다. 유사하게, 수신기(310)는 데이터를 처리하는 프로세서(312), 네트워크(308)를 통한 데이터의 수신(및 데이터의 송신)을 위한 네트워크 인터페이스(309), 및 데이터를 저장하는 메모리(314)를 포함한다. 프로세서(312)는 수신기(310)에서 하드웨어로 또는 소프트웨어로 구현될 수 있다.
데이터 스트림은 통신 채널에서 네트워크(308)를 통해 수신기(310)에 송신될 수 있다. 통신 채널에서 네트워크를 통해 데이터 스트림을 송신하는 방법들은 본 기술분야에 공지되어 있으므로, 여기서는 상세히 기술하지 않는다. 이후, 수신기(310)는 수신된 데이터 패킷들을 (예컨대, 프로세서(312)를 이용하여) 처리해서 데이터를 검색할 수 있다. 이 처리는 데이터 스트림으로부터 데이터를 복원 및 복호하는 것을 수반할 수 있다. 데이터는 수신기에서 메모리(314)에 저장되거나, 또는 수신기(310)로부터 예컨대, 유저에게 출력될 수 있다. 데이터 스트림 내의 데이터는 송신기(302)의 유저와 수신기(310)의 유저 사이의 실시간 통신 이벤트(예컨대, 음성 통화 또는 화상 통화)에 관련될 수 있다. 대안으로서, 데이터 스트림 내의 데이터는 송신기(302)와 수신기(310) 사이의 파일 전송과 같은 데이터 전송에 관련될 수 있다. 데이터 스트림 내의 데이터는 임의의 다른 적절한 유형의 데이터일 수 있다.
네트워크(308)는 송신기(302)와 수신기(310) 사이에 통신 채널을 제공하는 능력을 갖는 임의의 적절한 네트워크일 수 있다. 네트워크(308)는 패킷-기반의 네트워크일 수 있다. 네트워크(308)는 와이드 에어리어 네트워크(Wide Area Network (WAN)) 또는 로컬 에어리어 네트워크(Local Area Network (LAN))일 수 있다. 예로서, 네트워크(308)는 인트라넷, 인터넷 또는 모바일 전화 네트워크와 같은 전화통신 네트워크일 수 있다. 송신기(302) 및 수신기(310)는 제각기 네트워크(308)를 통해 데이터 스트림을 송신 및 수신하는 임의의 적절한 장치 또는 디바이스로 구현될 수 있다. 예컨대, 송신기(302) 및 수신기(310)는 네트워크(308)에 접속하는 능력을 갖는 퍼스널 컴퓨터 또는 전화기와 같은 유저 디바이스로서, 또는 네트워크에 있어서의 서버 노드와 같은 다른 디바이스로서 구현될 수 있다.
도 4는 통신 시스템(300)에서 송신기(302)로부터 수신기(310)로 송신되는 전형적인 데이터 스트림(402)을 도시한다. 데이터 스트림(402)은 도 4에서 1 내지 8로 표시된 8개의 데이터 패킷을 포함한다. 도 4에는 명료화를 위해 8개의 데이터 패킷만이 도시되어 있지만, 데이터 스트림은 8개 이상의 데이터 패킷을 포함할 수 있다. 도 4에 도시된 바와 같이, 데이터 스트림은 FEC 데이터 유닛들("FEC"로 표시됨)을 또한 포함한다. 도 4에 있어서는, FEC 데이터 유닛들이 데이터 스트림 내의 데이터 패킷들과는 별개의 패킷들로서 도시된다. 그러나, FEC 데이터 유닛들은 데이터 패킷들에 첨부(또는 "편승")될 수 있다. FEC 데이터 유닛들이 데이터 패킷들에 첨부되는 경우에는, FEC 데이터 유닛들은 패킷 헤드들과 같은 그들 자신의 패킷 포맷팅(formatting)을 필요로 하지 않기 때문에, FEC 데이터 유닛들에 필요한 데이터 스트림 내의 상기와 같은 데이터량이 약간 감소될 수 있다. 그러나, FEC 데이터 유닛들을 데이터 패킷들에 첨부한다는 것은, 데이터 패킷이 손실되면 그 손실된 데이터 패킷에 첨부된 FEC 데이터 유닛도 손실된다는 것을 의미한다. 데이터 패킷에 첨부된 FEC 데이터 유닛은 그것이 첨부되어 있는 데이터 패킷 이외의 다른 데이터 패킷들을 보호한다. 상술한 바와 같이, 비-계통적 기법에 있어서는, FEC 데이터만이 전송될 수 있다, 즉, 데이터 스트림의 오리지널 데이터 패킷들은 전송되지 않는다.
상술한 바와 같이(예컨대, 도 1a 내지 도 1c 관련), FEC 데이터 유닛들은 데이터 스트림의 데이터 패킷 세트에 기초하여 생성된다. 이 세트는 하나 이상의 데이터 패킷을 포함할 수 있다. FEC 데이터 유닛은, 예컨대 오리지널 데이터 패킷의 정확한 사본(도 1a에 예시된 바와 같음), 또는 낮은 비트 레이트로 부호화된 오리지널 데이터 패킷의 사본(도 1b에 예시된 바와 같음), 또는 오리지널 데이터 패킷들의 결합/혼합(도 1c에 예시된 바와 같음)일 수 있다. 일 해법에 있어서, 데이터 패킷들은 (0 XOR 0) = (1 XOR 1 ) = 0 및 (0 XOR 1 ) = (1 XOR 0) = 1 로서 규정된 비트에 관한 XOR 연산을 이용해서 비트마다 결합된다. 다른 해법에 있어서, 데이터 패킷들은 갈르와체(Galois field GF(28)) 연산을 이용해서 바이트마다 결합된다. FEC 데이터 유닛들은 2개 이상의 데이터 패킷을 결합해서 생성될 수 있다.
네트워크(308)를 통한 통신 채널은 손실 채널이며, 이는 데이터 스트림 내의 데이터 비트들 중 일부가 송신기(302)로부터 수신기(310)로의 송신 도중에 손실되게 됨을 의미한다. FEC 데이터 유닛들은 송신 도중에 손실되는 데이터 비트들을 복구하기 위해 수신기(310)에서 사용될 수 있다. "손실된 오리지널 데이터(lost original data)"라는 용어는 송신 도중에 손실되는 데이터 비트들 뿐만 아니라 송신 도중에 복구할 수 없을 정도로 손상되는 데이터 비트들도 포함한다.
상술한 바와 같이, FEC 복호 중에, 손실된 패킷의 정확한 비트값 또는 비트 시퀀스값에 대하여 불확실성이 생길 수 있다. 이는, 3개의 패킷이 송신되는 예: 즉 오리지널 패킷들(x1 및 x2)과, 2개의 오리지널 패킷의 혼합인 FEC 패킷(f1 = mix(x1, x2), 여기서 혼합은 논리 비트 XOR 함수의 기초함)이 송신되는 예를 고려해서 더 설명된다.
패킷 x1 이 손실되고, 패킷들 x2 및 f1 이 수신되는 경우에는, 패킷 x1 은 패킷들 x2 및 f1 의 혼합(비트에 관한 XOR 연산)에 의해 복구될 수 있다. 예컨대, x2 에서 특정 위치에서의 비트가 1이고, f1 에서 동일 위치에서의 비트가 0인 경우에는, x1 에서 동일 위치에서의 비트는 (1 XOR 0) = 1 로서 복구된다.
한편, 오리지널 패킷들 x1 및 x2 가 모두 손실되고 FEC 패킷 f1 만이 수신되는 경우에는, 패킷들 x1 및 x2 는 FEC 디코더에 의해 복구될 수 없다. 예컨대, f1 에서 특정 위치에서의 비트가 0인 경우에, x1 및 x2 에서 동일 위치에서의 비트들이 모두 0이거나 또는 모두 1이면 불확실성이 남는다. 즉, f1 에서 비트 0은 (0 XOR 0) 또는 (1 XOR 1 )에 의해 구해졌다고 할 수 있다.
이제, 이들 불확실성을 해결하는 프로세스를 도 5를 참조해서 살펴본다. 도 5에 도시된 단계들은 수신기(310)의 프로세서(312)에서 수행된다.
단계 S502에서, 수신기(310)는 부호화된 데이터 비트들을 네트워크(308)를 통해 확립된 손실 통신 채널을 거쳐 송신기(302)로부터 수신한다.
단계 S504에서, 수신기(310)는 송신기(302)에 관련된 정보를 수신한다. 송신기에 관련된 정보는 프로세서(304)에 의해 송신 대상 데이터의 처리 중에 데이터 스트림의 패킷들에 삽입된 부호화된 파라미터값들로 표현될 수 있다. 이로써, 부호화된 파라미터값들은 수신기(310)에서 수신되고 송신기(302)에 관련된 정보를 추출하기 위해 수신기에서 프로세서(312)에 의해 복호된다. 대안으로서, 송신기에 관련된 정보는 데이터 스트림과는 별개로 송신기(302)로부터 네트워크(308)를 통해 수신기(310)에 송신될 수 있다. 송신기(302)에 관련된 정보가 네트워크(308)를 통해 송신되지 않고 수신기(310)에서 수신될 수 있다는 것, 예컨대 송신기(302)에 관련된 정보가 유저에 의해 수신기(310)에서 직접적으로 입력될 수 있다는 것을 인식할 것이다.
일례에 있어서, 오리지널 패킷들은 소스 인코더(예컨대, 오디오 또는 비디오 인코더)에 의한 소스(예컨대, 오디오 또는 비디오)의 부호화 및 최종 비트 스트림들의 패킷화(packetizing)에 의해 생성된다. 따라서, 후보 비트 스트림들을 분석하는 한편, 소스에 대한 가용 지식, 및/또는 부호화 프로세스, 및/또는 패킷화 프로세스를 이용해서, 불확실성들을 잠재적으로 해결할 수 있다. 이 예에서, 송신기에 관련된 정보는 소스 정보(오디오/비디오), 소스 인코더 이름, 소스 인코더 모드, 부호화 비트 레이트, 및 패킷화 프로토콜을 포함할 수 있다.
단계 S506에서, 프로세서(312)는 수신된 부호화 데이터 비트들에 대한 FEC 복호를 수행한다. 상술한 바와 같이, 단계 S506에서의 FEC 복호는 복구 프로세스에서의 불확실성(즉, 비트 또는 비트들의 시퀀스가 하나 이상의 값을 취할 수 있을 경우)에 기인한 손실된 모든 오리지널 비트들의 복구를 보장하지 않는다. 따라서, 단계 S508에서, 프로세서(312)는 단계 S506에서의 FEC 복호 이후에 불확실성이 어느 정도 잔존하고 있는지의 여부를 판정한다. 즉, 단계 S508에서, 프로세서(312)는 단계 S506에서의 FEC 복호에 이어 손실된 모든 비트들이 복구 가능했었는지의 여부를 판정한다. 프로세서(312)는, 각각의 비트가 불확실성을 갖고 있는지의 여부를 검사함으로써, 판정 단계를 수행할 수 있다.
단계 S508에서, 프로세서(312)가 손실된 모든 비트들이 단계 S506에서의 FEC 복호 도중에 복구되었다고 판정하면, 프로세스는 단계 S512로 진행한다. 단계 S512에서, 애플리케이션 디코더에 의해 복호될 오리지널 비트 및 복구된 비트는 프로세서(312)에서의 애플리케이션 디코더에 전송된다. 복호된 데이터는 수신기에서 메모리(314)에 저장되거나, 또는 수신기(310)로부터, 예컨대 유저에게 출력될 수 있다.
다시, 단계 S508을 참조하면, 단계 S508에서 프로세서(312)가, 손실된 모든 비트들이 정확한 비트값에 대한 불확실성에 기인하여 단계 S506에서의 FEC 복호 도중에 복구되지 않았다고 판정하면, 프로세스는 단계 S510으로 진행한다.
단계 S510에서, 프로세서(312)는 정확한 비트값 또는 비트 시퀀스값에 대한 불확실성을 해결한다. 단계 S510은 하나 이상의 손실된 비트값에 대한 후보 옵션들을 분석하는 것을 수반한다. 이 분석은 단계 S504에서 수신된 송신기(302)에 관련된 정보를 이용해서 프로세서(312)에서 수행된다.
몇몇 경우들에 있어서는, 개개의 비트들을 검토함으로써 개개의 비트값들에 대한 불확실성을 해결하는 것이 가능할 것이다. 다른 경우들에 있어서는, 프로세스는 비트 시퀀스값들의 공동 분석에 의존하게 된다.
분석은 오리지널 패킷들이 모두 불규칙한 것이 아니라 특정한 규칙들에 따라 생성된다는 사실에 의존한다. 이들 규칙을 고려하면, 정해진 FEC 패킷 비트값(또는 비트 시퀀스값)으로 될 수 있는 몇몇 오리지널 패킷 비트값들(또는 비트 시퀀스값들)은 불가능한 것으로서 또는 낮은 확률을 갖는 것으로서 여겨질 수 있기 때문에, 후보 옵션들로서 배제된다.
단계 S510에서의 후보 옵션들의 분석은 서로 다른 다양한 방식으로 수행될 수 있다.
예컨대, 단계 S510에서의 후보 옵션들의 분석은 무효한 후보 비트 시퀀스값들을 식별하는 것을 포함할 수 있다.
대안으로서 또는 부가적으로, 단계 S510에서의 후보 옵션들의 분석은 무효한 또는 낮은 확률의 후보 파라미터값들을 식별하는 것을 포함할 수 있으며: 이는 예컨대 파라미터값들의 주변 확률 분포의 지식에 기초할 수 있으며, 대안으로서 또는 부가적으로 서로 다른 파라미터들 사이의 상관관계에 기초할 수 있다. 주변 확률 분포 및 파라미터들 사이의 상관관계는 모두 성공적으로 수신/복구된 비트들을 이용해서 실시간으로 사전-저장 및/또는 갱신될 수 있다.
대안으로서 또는 선택적으로, 단계 S510에서의 후보 옵션들의 분석은 최종 복호 신호의 품질 저하를 최소화하는 것을 포함할 수 있다. 이 분석은, 후보 옵션들 중 하나 이상이 애플리케이션 디코더에서의 후속 복호에 이어 품질이 저하되게 되는지를 식별하는 것을 포함한다. 이는 수신기(310)에서 신호 분석기 또는 품질 평가기를 가동함으로써 수행될 수 있다.
단계 S510에서의 후보 옵션들의 분석이 상술한 방법들의 임의의 조합을 포함할 수 있음을 인식할 것이다.
단계 S510에서, 손실된 오리지널 데이터에 대하여 실행 불가능한 옵션들인 후보 옵션들(비트값들 또는 비트 시퀀스값들)은 폐기될 수 있으며, 손실된 오리지널 데이터의 복구 프로세스에서 정확한 비트값 또는 비트 시퀀스값에 대한 불확실성은 잔여 후보 옵션들(폐기되지 않은 것들)을 이용해서 해결될 수 있다.
몇몇 경우들에 있어서는, 통신 채널에서 손실된 오리지널 패킷들의 비트 스트림들 전체를 리졸빙하는 것은 불가능할 것이다. 그러나, 많은 애플리케이션들에 있어서 적어도 일부(예컨대, 비트 스트림들의 시작부분들)를 리졸빙하는 것이 유용한데, 그 이유는 이것이 유용한 정보/파라미터들의 복호를 가능하게 하기 때문이다. 단순한 예시로서, 이들 파라미터는 스피치(speech)/오디오 프레임, 또는 비디오 프레임의 제 1 마크로 블록들을 기술하는 직관적으로 중요한 파라미터들일 수 있다.
몇몇 경우들에 있어서는 애플리케이션 디코더를 가동하지 않고 비트 스트림 분석을 수행하는 것으로 충분할 수 있지만, 많은 상황들에 있어서는 후보 비트 시퀀스들에 대하여 애플리케이션 디코더를 가동해서 후보 복호된 파라미터값들을 평가하는 것에 의해 주된 이점을 얻을 수 있다.
이제, 도 6을 참조하여 비트 스트림 분석을 보다 상세히 기술한다. 도 6은 수신기(310)에서의 프로세서(312)의 개략적인 전형이다. 프로세서(312)의 요소들 각각은 하드웨어로 또는 소프트웨어로 구현될 수 있다.
송신기(302)로부터 데이터 스트림을 수신할 때, 수신기(310)에서의 오류 정정 디코더(602)(즉, FEC 디코더)가 데이터 스트림을 수신한다.
손실된 모든 비트들이 복구 가능하면(단계 S508에서 판정), 수신기(310)에서 수신한 데이터 비트들 및 복구된 비트들은 라인(605)을 통해 제 1 스위칭 수단(612)에 공급된다. 제 1 스위칭 수단(612)은 수신기(310)에서 수신한 데이터 비트들 및 복구된 비트들을 복호 대상 애플리케이션 디코더(607)에 공급하도록 제어 가능하다. 복호되면, 애플리케이션 디코더(607)는 복호된 비트들을 제 2 스위칭 수단(622)을 통해 라인(618) 상으로 출력하도록 배치된다. 복호된 비트들은 수신기(310)에서 메모리(314)에 저장되거나, 또는 수신기(310)로부터, 예컨대 유저에게 출력될 수 있다.
손실된 모든 비트들이 복구 가능하지 않으면(단계 S508에서 판정), 수신기(310)에서 수신한 데이터 비트들 및 복구 불능 비트들은 라인(603)을 통해 비트 스트림 분석기(608)에 공급된다.
비트 스트림 분석기(608)는 일차 복구 블록(604) 및 이차 복구 블록(614)을 포함한다. 일차 복구 블록(604)은 라인(603)을 통해 하나 이상의 복구 불능 비트를 가진 데이터 비트들을 수신하도록 배치된다. 일차 복구 블록(604)은 또한, 소스에 대한 가용 지식, 및/또는 부호화 프로세스, 및/또는 패킷화 프로세스, 및/또는 오리지널 패킷들을 송신기(302)에서 어떻게 생성하는지에 대한 규칙들을 포함할 수 있는 라인(606)을 통해 송신기에 관련된 정보(φ로 표시됨)를 수신하도록 배치된다.
일차 복구 블록(604)은 송신기에 관련된 정보(φ)를 이용해서 FEC 디코더로부터 출력된 하나 이상의 복구 불능 비트(라인(603)을 통해 수신됨)의 불확실성을 해결하려고 작동된다. 즉, 일차 복구 블록(604)은 송신기에 관련된 정보(φ)를 이용해서 무효한 비트 스트림들을 식별하기 위해 비트 스트림 분석을 이용해서 불확실성을 해결한다.
몇몇 경우들에 있어서는, 일차 복구 블록(604)이 하나 이상의 복구 불능 비트의 불확실성을 모두 해결할 수 있게 된다. 즉, 일차 복구 블록(604)은 단계 S510을 수행할 수 있다(도 5에 도시됨). 이러한 전개에 있어서, 일차 복구 블록(604)은 데이터(리졸빙된 비트들을 포함)를 라인(615)을 통해 제 1 스위칭 수단(612)에 공급하도록 배치된다. 제 1 스위칭 수단은 데이터(리졸빙된 비트들을 포함)를 애플리케이션 디코더(607)에 공급하도록 제어 가능하다.
몇몇 경우들에 있어서는, 일차 복구 블록(604)이 라인(603)을 통해 수신된 하나 이상의 복구 불능 비트의 불확실성을 모두 해결할 수는 없게 된다. 즉, 복수의 후보 비트값이 데이터 내의 적어도 하나의 비트에 대하여 여전히 남아 있게 된다. 이러한 전개에 있어서, 일차 복구 블록(604)은 복수의 후보 비트 시퀀스를 라인(613)을 통해 이차 복구 블록(614)에 공급하도록 배치된다.
이차 복구 블록(614)은 복수의 후보 비트 시퀀스를 저장하도록 배치되는 제 1 데이터 저장소(610)를 포함한다. 이차 복구 블록(614)은 애플리케이션 디코더(607)에 의해 미리 복호된 비트들로부터의 복호 결과들을 저장하도록 배치되는 제 2 데이터 저장소(611)를 포함한다. 프로세서(312)는 애플리케이션 디코더(607)에 의해 미리 복호된 비트들을 라인(616)을 통해 이차 복구 블록(614)에 공급하기 위해 제 2 스위칭 수단(622)을 제어하도록 배치된다.
이차 복구 블록(614)은 후보 비트 시퀀스들 각각을 라인(625)을 통해 제 1 스위칭 수단(612)에 공급하도록 배치된다. 제 1 스위칭 수단은 후보 비트 시퀀스들을 애플리케이션 디코더(607)에 공급하도록 제어 가능하다. 애플리케이션 디코더는 후보 비트 시퀀스들을 복호해서 복호된 후보 결과들을 출력하도록 배치된다. 애플리케이션 디코더(607)로부터 출력된 복호된 후보 결과들은 제 2 스위칭 수단(622)을 거쳐 라인(616)을 통해 이차 복구 블록(614)에 공급된다. 복호된 후보 결과들에 관한 불확실성으로 인해, 프로세서(312)는, 애플리케이션 디코더(607)로부터 출력된 복호된 후보 결과들이 수신기(310)에서 메모리(314)에 저장되지 않게, 또는 수신기(310)로부터, 예컨대 유저에게 출력되지 않게 라인(618) 상에 출력되지 않도록 제 2 스위칭 수단(622)을 제어한다.
이차 복구 블록(614)은, 라인(606)을 통해 수신된 송신기에 관련된 정보(φ)를 이용하는 한편, 제 2 데이터 저장소(611)에 저장되는 복호 결과들을 분석함으로써 복호된 후보 결과들을 배제하려고 작동된다.
분명치 않은 오리지널 패킷들(그들의 비트 스트림들 및 부호화된 파라미터들)이 종종 서로 상관된다는 사실에 의해 상기 분석이 용이해질 수 있다. 또한, 분명치 않은 패킷들은 종종 앞서 복호된 오리지널 패킷들과 상관된다.
몇몇 경우들에 있어서, 이러한 분석에 기초하여, 이차 복구 블록(614)은 하나의 복호된 후보 결과를 제외한 전부를 배제할 수 있게 된다. 즉, 이차 복구 블록(614)은 단계 S510(도 5에 도시됨)을 수행하기 위해 복구 블록(604)에 더하여 동작한다. 이러한 전개에 있어서, 이차 복구 블록(614)은 복호된 후보 결과를 라인(617) 상에 출력하도록 배치된다. 라인(617) 상에 출력된 복호된 비트들은 수신기(310)에서의 메모리(314)에 저장되거나, 또는 수신기(310)로부터, 예컨대 유저에게 출력될 수 있다.
상술한 비트 스트림 분석에 있어서, 제 1 스위칭 수단(612)은 라인들(605, 615 및 625)에 대한 3개의 입력 접속부를 갖는다는 것은 명백할 것이다. 비트 스트림 분석 도중에, 제 1 스위칭 수단(612)은 그 3개의 입력부 중 하나를 통해 데이터를 수신하도록 배치되고, 수신된 데이터를 애플리케이션 디코더(607)에 공급하도록 제어 가능하다. 즉, 제 1 스위칭 수단(612)은: (i) 수신기(310)에서 수신된 데이터 비트들 및 오류 정정 디코더(602)에 의해 복구된 라인(605) 상의 비트들, (ii) 수신기(310)에서 수신된 비트들 및 일차 복구 블록(604)에 의해 리졸빙된 라인(615) 상의 비트들, 및 (iii) 라인(625) 상의 후보 비트 시퀀스들 중 하나를 수신하게 된다. 제 1 스위칭 수단(612)이 그 3개의 입력부 중 하나를 통해 수신하는 데이터는 오류 정정 디코더(602)에서의 손실된 비트들의 복구의 성공, 및 FEC 디코더로부터 출력된 하나 이상의 복구 불능 비트의 불확실성을 해결하는 일차 복구 블록(604)의 성공에 의존한다.
프로세서(312)의 아키텍처가 후보 옵션들의 분석(도 5의 단계 S510에서)이 어떻게 수행되는지에 의존하게 된다는 점 또한 명백할 것이다. 예컨대, 후보 옵션들의 분석만이 무효한 후보 비트 시퀀스값들을 식별하는 것(일차 복구 블록(604)에 의해 수행됨)을 포함하는 경우에는, 이차 복구 블록(614)은 필요하지 않을 수 있다. 유사하게, 후보 옵션들의 분석만이 무효한 또는 낮은 확률의 복호된 후보 파라미터값들을 식별하는 것(이차 복구 블록(614)에 의해 수행됨)을 포함하는 경우에는, 일차 복구 블록(604)은 필요하지 않을 수 있다. 이 경우에는, 이차 복구 블록(614)은 데이터 비트들을 오류 정정 디코더(602)로부터 출력된 하나 이상의 복구 불능 비트와 함께 수신하도록 배치되게 되고, 하나 이상의 복구 불능 비트의 불확실성을 해결하는 프로세스에서 애플리케이션 디코더에 공급되는 후보 비트 시퀀스들을 결정하게 된다.
본 발명의 일실시예에 있어서, 송신기(302)는 FEC 복호 이후의 불확실성들을 해결하는 수신기(310)의 능력을 인식하고 있다. 송신기(302)에서의 FEC 인코더는 수신기(310)가 FEC 복호 이후의 불확실성들을 해결하는 능력을 갖는다는 지식으로 최적화될 수 있다. 이는 도 7을 참조로 더 상세히 논의된다.
도 7은 송신기(302)에서의 프로세서(304)의 개략적인 전형이다. 간략화를 위해, 프로세서(304)는 FEC 인코더(703)를 갖는 것으로서 도시되어 있으며, 프로세서가 도 7에 도시되지 않은 데이터의 송신에 사용되는 추가의 모듈들을 포함할 수 있음을 인식할 것이다. FEC 인코더(703)는 소스 인코더(도 7에는 도시되지 않음)로부터 출력된 부호화된 정보(부호화된 데이터 비트들)를 라인(701)을 통해 수신하도록 배치된다. 소스 인코더는, 예컨대 오디오 또는 비디오 인코더일 수 있다. FEC 인코더(703)는 또한 수신기에 관련된 정보(β)를 라인(705)을 통해 수신하는 한편, 네트워크(308)를 통한 송신을 위해 부호화된 데이터를 라인(707) 상에 출력하도록 배치된다. 동작시에, FEC 인코더(703)는 라인(701)을 통해 수신된 정보를 부호화한다. 즉, FEC 인코더(703)는 라인(705)을 통해 수신된 수신기에 관련된 정보(β)에 기초하여 최적화되는 정정 기법에 따라 중복을 부가함으로써 소스-부호화 정보를 보호하려고 한다.
본 발명의 일 실시예에 있어서, FEC 최적화는 오프라인 "트레이닝(training)"을 가동함으로써 수행될 수 있다. 즉, FEC 데이터를 생성하기 위한 여러 서로 다른 방식들이 존재할 것이라는 점을 인식할 것이고, 예컨대 도 1c는 3개의 오리지널 데이터 패킷으로부터 생성된 FEC 데이터 유닛(120)을 도시하고 있지만, 임의의 개수의 오리지널 데이터 패킷이 결합되어 FEC 데이터 유닛을 생성할 수 있기 때문에 큰 최적화 스페이스가 존재한다. 오프라인 시뮬레이션을 가동함으로써, 특정 조치에 따라 최고의 성능을 부여하도록 최적화되는 FEC 기법을 결정하는 것이 가능하다. 개념을 예시하기 위한 단순한 예로서, 이 조치는 시뮬레이션 결과들, 즉 송신기로부터 송신된 패킷들의 수, 수신기에서 수신된 패킷들의 수, FEC 디코더에 의해 복구된 패킷들의 수 및 FEC 복호 이후의 불확실성을 해결함으로써 추가로 복구된 패킷들의 수(이 추가의 처리가 수신기에서 적용되는 경우)를 분석하는 것에 의해 계산될 수 있는 패킷 손실일 수 있다. 비디오 데이터가 네트워크를 가로질러 송신되게 되는 경우에는, 상기 조치는 비디오 품질의 레벨일 수 있다. 비디오 품질 평가 기술은 본 기술분야에 잘 알려져 있기 때문에 여기서는 논의되지 않는다.
이들 시뮬레이션은 통신 채널의 다중 실현에 대한 각각의 가능한 FEC 기법의(즉, FEC 데이터 유닛들이 어떻게 생성될 수 있는지에 대한 각각의 치환의) 성능을 판정하는 것을 포함할 수 있으며, 예컨대 시뮬레이션들은 다양한 정도의 패킷 손실에 영향을 받는 채널의 시뮬레이션 작업시에 각각의 가능한 FEC 기법의 성능을 판정하는 것을 포함할 수 있다.
오프라인 "트레이닝"은, 수신기(312)가 FEC 디코더(602)만을 포함하는 경우에, 및 수신기(312)가 FEC 디코더를 포함하는 한편, FEC 복호(도 6에 도시된 요소들을 가짐) 이후의 잔존 불확실성을 해결할 수 있는 경우에 시뮬레이션들을 가동하는 것을 포함할 수 있다. 수신기(312)가 FEC 디코더(602)만을 포함하는 경우의 전개에 최고의 성능을 제공하는 FEC 기법은, 수신기(312)가 FEC 디코더를 포함하고 FEC 복호 이후의 잔존 불확실성을 해결할 수 있는 경우의 전개에 최고의 성능을 제공하는 FEC 기법과는 상이할 수 있음을 인식할 것이다.
FEC 인코더(703)는 FEC 복호 이후의 불확실성을 다수의 서로 다른 방식들로 해결하는 수신기의 능력을 판정할 수 있다. 일례에 있어서, FEC 인코더(703)는 네트워크(308)를 통한 호(call)들 및 다른 통신 세션에서의 송신기의 접속을 허용하는 송신기에서 실행되는 통신 클라이언트 소프트웨어(통신 시스템(300)과 연계된 소프트웨어 제공자에 의해 제공됨)에 의해 구현된다. FEC 인코더(703)를 구현하는 통신 클라이언트 소프트웨어를 제공하는 동일 소프트웨어 제공자에 의해 제공되는, 통신 클라이언트 소프트웨어를 수신기에서 실행함으로써 FEC 복호(및 FEC 복호 이후의 잔존 불확실성의 해결)가 수행되는 경우에는, FEC 인코더(703)는 수신기에서 실행되는 통신 클라이언트 소프트웨어의 버전 번호를 판독하는 것에 의해 FEC 복호 이후의 불확실성을 해결하는 수신기의 능력을 판정할 수 있다. 다른 예에 있어서, FEC 인코더(703)는 수신기(310)로부터 네트워크를 통해 송신기(302)에 피드백되는 데이터에 의해 FEC 복호 이후의 불확실성을 해결하는 수신기의 능력을 통지받을 수 있다. 또 다른 예에 있어서, FEC 인코더(703)는 이 정보를 FEC 인코더(703)에 수동으로 공급하는 유저에 의해 FEC 복호 이후의 불확실성을 해결하는 수신기의 능력을 판정할 수 있다. 라인(705)을 통해 수신된 수신기에 관련된 정보(β)는 FEC 복호를 수행하고 FEC 복호 이후의 불확실성을 해결하는 수신기의 능력을 나타내는 정보를 포함한다.
수신기가 FEC 복호 이후의 불확실성을 해결하는 능력을 갖고 있는지의 여부를 FEC 인코더(703)가 판정하면, FEC 인코더(703)는 수신기의 능력들에 대하여 최적화된 FEC 기법을 선택할 수 있다.
본 발명이 바람직한 실시예들을 참조로 특정하게 도시 및 기재되어 있지만, 당업자라면, 첨부의 특허청구범위에 의해 규정된 바와 같이 본 발명의 범위로부터 일탈함이 없이, 형태 및 세부사항에 있어서의 다양한 변경이 이루어질 수 있음을 이해할 것이다.
상술한 바람직한 실시예들에 있어서는 FEC 데이터가 사용된다. 대안적인 실시예들에 있어서는, 수신기에서 정정 데이터를 이용해서 정정 데이터가 손실된 패킷의 데이터 스트림 유닛들을 복구되게 하는 것이라면, FEC 데이터를 대신해서 다른 유형들의 정정 데이터가 사용될 수 있다.
상기 예들은 비트에 관한 XOR 혼합의 경우에 후보 비트값들의 스페이스가 어떻게 형성되는지를 예시한다. 유사하게, 후보 비트 스트림들은 다른 혼합 방식들에 대하여 형성된다. 예컨대, 갈르와체(Galois field GF(28))의 경우에는, 후보 비트 스트림들이 바이트마다 형성된다.
상기 예들은 2개의 오리지널 패킷의 혼합을 나타내는 하나의 FEC 패킷에서의 잔존 불확실성을 예시한다. 유사하게, 불확실성들은 많은 수의 FEC 패킷들 및 FEC 패킷들에서 혼합되는 많은 수의 오리지널 패킷들에 대하여 공동으로 해결될 수 있다.
본 발명의 제 1 실시예에 따르면, 수신기에서 부호화된 데이터 비트들을 처리하는 방법이 제공되고, 상기 부호화된 데이터 비트들은 네트워크를 통해 확립된 손실 통신 채널을 통해 송신기로부터 수신기에 송신되고, 상기 방법은, 통신 채널을 통해 부호화된 데이터 비트들을 수신하는 단계―상기 부호화된 데이터 비트들은 중복 데이터 유닛들을 포함함―; 부호화된 데이터 비트들을 오류 정정 디코더에서 복호하는 단계―손실된 데이터의 복구는 중복 데이터 유닛들 중 적어도 하나를 이용해서 오류 정정 디코더에서 수행됨―; 적어도 하나의 데이터 비트가, 적어도 하나의 데이터 비트에 대한 복수의 후보 비트값을 탐색하는 디코더로 인해, 복구될 수 없는지의 여부를 판정하는 단계; 상기 송신기에 관련된 정보를 네트워크를 통해 수신하는 단계; 상기 송신기에 관련된 정보를 이용해서 적어도 하나의 데이터 비트에 대한 후보 비트값들 중 적어도 하나를 배제하기 위해 복수의 후보 비트값을 분석하는 단계; 및 상기 분석에 기초하여 적어도 하나의 데이터 비트를 리졸빙하는 단계를 포함한다.
상기 송신기에 관련된 정보는 네트워크를 통해 수신될 수 있다.
상기 복호하는 단계가 데이터 비트들의 시퀀스들에 대하여 동작하고 각각의 데이터 비트에 대한 복수의 후보 비트값을 탐색할 때, 상기 방법은 상기 송신기에 관련된 정보를 이용해서 시퀀스 내의 각 비트에 대한 복수의 후보 비트값을 분석해서 상기 시퀀스에 대하여 가장 개연성 있는 후보 비트값들을 판정하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 송신기에 관련된 정보는: 부호화되기에 앞서 데이터 비트들의 소스에 대한 정보; 부호화된 데이터 비트들을 부호화하는데 사용된 부호화 프로세스에 대한 정보; 부호화된 데이터 비트들을 패킷화하는데 사용된 패킷화 프로세스에 대한 정보; 및 부호화된 데이터 비트들을 생성함에 있어서 송신기로 이어지는 소정의 규칙들에 대한 정보 중 적어도 하나를 포함한다.
상기 분석하는 단계는, 적어도 하나의 데이터 비트에 대한 복수의 후보 비트값들 중 하나 이상이 후속 복호 단계에 이어 품질이 저하하게 되는지의 여부를 식별하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 분석하는 단계는, 애플리케이션 디코더를 이용해서 후보 비트값들을 복호하여 후보 복호 결과를 생성하는 단계, 및 상기 송신기에 관련된 정보를 이용해서 후보 복호 결과에 기초하여 무효한 또는 낮은 확률의 후보 비트값들을 배제하는 단계를 포함한다.
상기 방법은, 애플리케이션 디코더가 복구된 또는 리졸빙된 데이터 비트들을 복호해서 복호된 데이터 비트들을 생성하는 단계; 및 무효한 또는 낮은 확률의 후보 복호 결과들을 배제하는데 사용하기 위해 복호된 데이터 비트들을 저장하는 단계를 더 포함할 수 있다.
상기 방법은, 후보 비트값들이 상기 송신기에 관련된 정보를 이용해서 리졸빙될 수 없을 때, 후보 비트값들을 애플리케이션 디코더에 선택적으로 공급해서 후보 비트값들을 복호하는 단계를 더 포함할 수 있다.
후보 복호 결과는 오리지널 데이터 유닛의 파라미터를 나타낼 수 있고, 상기 분석하는 단계는, 파라미터값들의 주변 확률 분포의 지식 및 서로 다른 파라미터값들 사이의 상관관계 중 적어도 하나에 기초하여 파라미터에 대하여 무효한 또는 낮은 확률의 값들을 나타내는 후보 복호 결과들을 배제하는 단계를 포함할 수 있다.
오류 정정 디코더는 순방향 오류 정정 기법을 수행할 수 있다.
수신기에서 수신된 부호화된 데이터 비트들은 계통적 정정 기법에 따라 오리지널 데이터 유닛들을 더 포함할 수 있다.
수신기에서 수신된 부호화된 데이터 비트들이 계통적 정정 기법에 따라 오리지널 데이터 유닛들을 더 포함할 때, 부호화된 데이터 비트들은, 하기의 방식들 중 하나에서, 즉 i) 오리지널 데이터 유닛들의 정확한 사본으로서; 또는 ii) 오리지널 데이터 유닛들보다 낮은 비트 레이트로 송신기에서 부호화된 오리지널 데이터 유닛들의 사본으로서; 또는 iii) 복수의 오리지널 데이터 유닛들을 결합함으로써, 오리지널 데이터 유닛들로부터 생성된 중복 데이터 유닛들을 포함할 수 있다.
복수의 오리지널 데이터 유닛들을 결합하는 것에 의해 중복 데이터 유닛들이 오리지널 데이터 유닛들로부터 생성되었을 때, 오리지널 데이터 유닛들은 비트에 관한 XOR 연산을 이용해서 비트마다 또는 갈르와체(Galois field GF(28)) 연산을 이용해서 바이트마다 결합될 수 있다.
수신기에서 수신된 중복 데이터 유닛들은 오리지널 데이터 및 비-계통적 정정 기법에 따른 중복 데이터를 나타낼 수 있다.
네트워크는 패킷 기반의 네트워크일 수 있다.
본 발명의 제 2 실시예에 따르면, 부호화된 데이터 비트들을 처리하는 수신기가 제공되고, 상기 부호화된 데이터 비트들은 네트워크를 통해 확립된 손실 통신 채널을 통해 송신기로부터 수신기에 송신되고, 상기 수신기는, 통신 채널을 통해 부호화된 데이터 비트들을 수신하는 수신 수단―상기 부호화된 데이터 비트들은 중복 데이터 유닛들을 포함함―; 부호화된 데이터 비트들을 복호하는 오류 정정 디코더―손실된 데이터의 복구는 중복 데이터 유닛들 중 적어도 하나를 이용해서 오류 정정 디코더에서 수행됨―; 적어도 하나의 데이터 비트가, 적어도 하나의 데이터 비트에 대한 복수의 후보 비트값을 탐색하는 상기 디코더로 인해, 복구될 수 없는지의 여부를 판정하는 판정 수단; 상기 송신기에 관련된 정보를 수신하는 수신 수단; 상기 송신기에 관련된 정보를 이용해서 적어도 하나의 데이터 비트에 대한 후보 비트값들 중 적어도 하나를 배제하기 위해 복수의 후보 비트값을 분석하는 분석 수단; 및 상기 분석에 기초하여 적어도 하나의 데이터 비트를 리졸빙하는 리졸빙 수단을 포함한다.
수신기는 복구된 또는 리졸빙된 데이터 비트들을 복호해서 복호된 결과들을 생성하도록 구성된 애플리케이션 디코더를 더 포함할 수 있으며, 후보 비트값들을 복호해서 분석 수단 및 리졸빙 수단용의 후보 복호 결과들을 생성하도록 선택적으로 동작할 수 있다.
수신기는 후보 비트값들을 애플리케이션 디코더에 공급하는 스위칭 수단을 더 포함할 수 있다.
애플리케이션 디코더는 음성 디코더 또는 비디오 디코더일 수 있다.
본 발명의 제 3 실시예에 따르면, 부호화된 데이터 비트들을 수신기에서 처리하는 방법이 제공되고, 상기 부호화된 데이터 비트들은 네트워크를 통해 확립된 손실 통신 채널을 통해 송신기로부터 수신기에 송신되고, 상기 방법은, 통신 채널을 통해 부호화된 데이터 비트들을 수신하는 단계―상기 부호화된 데이터 비트들은 패킷들 및 중복 데이터 유닛들에 내포됨―; 부호화된 데이터 비트들을 오류 정정 디코더에서 복호하는 단계―손실된 패킷들의 복구는 중복 데이터 유닛들 중 적어도 하나 및 적어도 하나의 다른 패킷을 이용해서 오류 정정 디코더에서 수행됨―; 적어도 하나의 손실된 패킷이, 손실된 패킷 내의 적어도 하나의 데이터 비트에 대한 복수의 후보 비트값을 탐색하는 디코더로 인해, 복구될 수 없는지의 여부를 판정하는 단계; 상기 송신기에 관련된 정보를 통신 채널을 통해 수신하는 단계; 상기 송신기에 관련된 정보를 이용해서 적어도 하나의 데이터 비트에 대한 후보 비트값들 중 적어도 하나를 배제하기 위해 복수의 후보 비트값을 분석하는 단계; 및 상기 분석에 기초하여 적어도 하나의 손실된 패킷의 하나 이상의 데이터 비트를 리졸빙하는 단계를 포함한다.
본 발명의 제 4 실시예에 따르면, 네트워크를 통해 확립된 손실 통신 채널을 통해 송신기로부터 수신기에의 송신을 위해 송신기에서 데이터 비트들을 처리하는 방법이 제공되고, 상기 방법은, 소스 인코더로부터의 데이터 비트들을 오류 정정 인코더에서 수신하는 단계; 오류 정정 인코더에서 데이터 비트들을 부호화하고, 부호화된 데이터 비트들을 출력하는 단계―상기 부호화된 데이터 비트들은 정정 기법에 따라 패킷들 및 중복 데이터 유닛들에 내포됨―; 및 수신기에 관련된 정보를 오류 정정 인코더에서 수신하는 단계를 포함하고, 상기 정보는, 수신기가, 부호화된 데이터 비트들을 복호하는 오류 정정 디코더를 포함―손실된 데이터의 복구는 중복 데이터 유닛들 중 적어도 하나를 이용해서 오류 정정 디코더에서 수행됨―하고, 또한, 수신기가, 적어도 하나의 데이터 비트에 대한 복수의 후보 비트값을 탐색하는 디코더로 인해 적어도 하나의 데이터 비트가 복구될 수 없는지의 여부를 판정하고; 상기 송신기에 관련된 정보를 수신하고; 상기 송신기에 관련된 정보를 이용해서 적어도 하나의 데이터 비트에 대한 후보 비트값들 중 적어도 하나를 배제하기 위해 복수의 후보 비트값을 분석하고; 또한 상기 분석에 기초하여 적어도 하나의 데이터 비트를 리졸빙―오류 정정 인코더에 의해 사용된 정정 기법은 수신기에 관련된 정보에 기초하여 최적화됨―하도록, 배치된다는 지표를 포함한다.
본 발명의 제 5 실시예에 따르면, 네트워크를 통해 확립된 손실 통신 채널을 통해 송신기로부터 수신기에의 송신을 위해 데이터 비트들을 처리하는 송신기가 제공되고, 상기 송신기는, 소스 인코더로부터 데이터 비트들을 수신하고 부호화된 데이터 비트들을 출력하도록 배치된 오류 정정 인코더를 포함하고, 부호화된 데이터 비트들은 정정 기법에 따라 패킷들 및 중복 데이터 유닛들에 내포되고, 오류 정정 인코더는 수신기에 관련된 정보를 수신하는 수신 수단을 포함하고, 상기 정보는, 수신기가, 부호화된 데이터 비트들을 복호하는 오류 정정 디코더를 포함―손실된 데이터의 복구는 중복 데이터 유닛들 중 적어도 하나를 이용해서 오류 정정 디코더에서 수행됨―하고, 또한, 수신기가, 적어도 하나의 데이터 비트에 대한 복수의 후보 비트값을 탐색하는 디코더로 인해 적어도 하나의 데이터 비트가 복구될 수 없는지의 여부를 판정하고; 상기 송신기에 관련된 정보를 수신하고; 상기 송신기에 관련된 정보를 이용해서 적어도 하나의 데이터 비트에 대한 후보 비트값들 중 적어도 하나를 배제하기 위해 복수의 후보 비트값을 분석하고; 또한 상기 분석에 기초하여 적어도 하나의 데이터 비트를 리졸빙―오류 정정 인코더에 의해 사용된 정정 기법은 수신기에 관련된 정보에 기초하여 최적화됨―하도록, 배치된다는 지표를 포함한다.
본 발명의 제 6 실시예에 따르면, 상술한 수신기 및 송신기를 포함하는 통신 시스템이 제공된다.

Claims (20)

  1. 네트워크를 통해 수립된 손실 통신 채널(lossy communication channel)을 통해 송신기로부터 수신기로 전송된 부호화된 데이터 비트를 상기 수신기에서 처리하는 방법으로서,
    상기 손실 통신 채널을 통해 상기 부호화된 데이터 비트를 수신하는 단계―상기 부호화된 데이터 비트는 중복 데이터 유닛을 포함하고, 부호화된 데이터의 적어도 일부 오리지널 데이터는 상기 손실 통신 채널을 통한 전송 중에 손실된 데이터임―와,
    상기 수신된 부호화된 데이터 비트의 생성과 연관된 송신기 정보를 수신하는 단계―상기 송신기 정보는
    상기 부호화된 데이터 비트를 생성하는데 사용되는 인코더와 연관된 소스 인코더 이름,
    상기 부호화된 데이터 비트를 생성하는데 사용되는 상기 인코더와 연관된 소스 인코더 모드
    중 적어도 하나를 포함함―와,
    상기 부호화된 데이터 비트를 오류 정정 디코더에서 복호하는 단계와,
    상기 중복 데이터 유닛 중 적어도 하나에 적어도 부분적으로 기초하여, 상기 오류 정정 디코더에서 상기 손실된 데이터의 적어도 일부를 복구하는 단계와,
    상기 오류 정정 디코더가 상기 손실된 데이터의 적어도 하나의 복구 불가능한 데이터 비트에 대한 복수의 후보 비트값을 찾아내는 것에 적어도 부분적으로 기초하여, 상기 손실된 데이터의 적어도 하나의 데이터 비트가 상기 오류 정정 디코더에서 복구 불가능한 것으로 결정하는 단계와,
    상기 복수의 후보 비트 값 중의 비트 값 또는 비트 값의 시퀀스를 무효한 것으로 식별하도록 상기 부호화된 데이터 비트의 생성과 연관된 상기 수신된 송신기 정보를 사용하는 것에 적어도 부분적으로 기초하여, 상기 적어도 하나의 복구 불가능한 데이터 비트에 대한 상기 후보 비트값 중 적어도 하나를 배제하기 위해 상기 복수의 후보 비트값을 분석하는 단계와,
    상기 분석에 기초하여 상기 적어도 하나의 복구 불가능한 데이터 비트를 리졸빙(resolving)하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 수신된 부호화된 데이터 비트의 생성과 연관된 상기 송신기 정보는 상기 네트워크를 통해 수신되는
    방법.
  3. 제1항에 있어서,
    상기 오류 정정 디코더가 데이터 비트의 시퀀스 내의 각 데이터 비트에 대해 복수의 후보 비트값을 찾아내는 것에 응답하여, 상기 수신된 부호화된 데이터 비트의 생성과 연관된 상기 송신기 정보를 사용하는 것에 적어도 부분적으로 기초하여 상기 데이터 비트의 시퀀스 내의 각 비트에 대한 상기 복수의 후보 비트값을 분석하여 상기 시퀀스에 대한 가장 가능성 있는 후보 비트값을 결정하는 단계를 더 포함하는
    방법.
  4. 제1항에 있어서,
    상기 수신된 부호화된 데이터 비트의 생성과 연관된 상기 송신기 정보는
    부호화되기 전의 상기 데이터 비트의 소스에 대한 정보,
    상기 부호화된 데이터 비트를 패킷화하는데 사용된 패킷화 프로세스에 대한 정보, 및
    상기 부호화된 데이터 비트를 생성할 때 상기 송신기가 따르는 사전결정된 규칙에 대한 정보
    중 적어도 하나를 더 포함하는
    방법.
  5. 제1항에 있어서,
    상기 분석하는 단계는 상기 적어도 하나의 데이터 비트에 대한 상기 복수의 후보 비트값 중 하나 이상이 상기 부호화된 데이터 비트의 후속 복호 단계 후에 품질 저하를 야기하는지를 확인하는 단계를 더 포함하는
    방법.
  6. 제1항에 있어서,
    상기 분석하는 단계는 애플리케이션 디코더를 이용해서 상기 후보 비트값을 복호하여 후보 복호 결과(candidate decoded result)를 생성하는 단계를 더 포함하는
    방법.
  7. 제6항에 있어서,
    상기 애플리케이션 디코더를 이용하여, 복구된 또는 리졸빙된 데이터 비트를 복호해서 복호된 데이터 비트를 생성하는 단계와,
    무효의 또는 낮은 확률의 후보 복호 결과를 배제하는데 사용하기 위한 상기 복호된 데이터 비트를 저장하는 단계를 더 포함하는
    방법.
  8. 제6항에 있어서,
    후보 비트값이 상기 송신기 정보를 이용해서 리졸빙될 수 없을 경우, 후보 비트값을 상기 애플리케이션 디코더에 선택적으로 공급해서 상기 후보 비트값을 복호하는 단계를 더 포함하는
    방법.
  9. 제6항에 있어서,
    상기 후보 복호 결과는 오리지널 데이터 유닛과 연관된 프레임의 속성을 기술하는 적어도 하나의 파라미터를 포함하고,
    상기 분석하는 단계는 파라미터값의 주변 확률 분포(marginal probability distributions)에 대한 정보 및 서로 다른 파라미터값 간의 상관관계에 대한 정보 중 적어도 하나에 기초하여 상기 적어도 하나의 파라미터에 대하여 무효의 또는 낮은 확률의 값을 나타내는 후보 복호 결과를 배제하는 단계를 포함하는
    방법.
  10. 제1항에 있어서,
    상기 오류 정정 디코더는 순방향 오류 정정(FEC) 기법으로 복호하는 것과 연관된
    방법.
  11. 제1항에 있어서,
    상기 수신기에서 수신된 상기 부호화된 데이터 비트는 계통적 정정 기법에 따라 오리지널 데이터 유닛을 더 포함하는
    방법.
  12. 제11항에 있어서,
    상기 부호화된 데이터 비트는
    상기 오리지널 데이터 유닛의 정확한 사본으로서, 또는
    상기 오리지널 데이터 유닛보다 낮은 비트 레이트로 상기 송신기에서 부호화된 상기 오리지널 데이터 유닛의 사본으로서, 또는
    복수의 오리지널 데이터 유닛을 결합함으로써
    상기 오리지널 데이터 유닛으로부터 생성된 중복 데이터 유닛을 포함하는
    방법.
  13. 제12항에 있어서,
    상기 복수의 오리지널 데이터 유닛을 결합함으로써, 상기 오리지널 데이터 유닛은 비트식(bitwise) XOR 연산을 사용하여 비트 단위로 결합되거나, 또는 갈르와체(Galois field GF(28)) 연산을 사용하여 바이트 단위로 결합되는
    방법.
  14. 제1항에 있어서,
    상기 수신기에서 수신된 상기 중복 데이터 유닛은 비-계통적 정정 기법에 따라 오리지널 데이터 및 중복 데이터를 나타내는
    방법.
  15. 제1항에 있어서,
    상기 네트워크는 패킷 기반 네트워크인
    방법.
  16. 네트워크를 통해 수립된 손실 통신 채널을 통해 송신기로부터 수신기로 송신되는 부호화된 데이터 비트를 처리하는 상기 수신기로서,
    수신 모듈―상기 수신 모듈은
    상기 손실 통신 채널을 통해 상기 부호화된 데이터 비트―상기 부호화된 데이터 비트는 중복 데이터 유닛을 포함하고, 부호화된 데이터의 적어도 일부 오리지널 데이터는 상기 손실 통신 채널을 통한 전송 중에 손실된 데이터임―를 수신하고,
    상기 부호화된 데이터 비트의 생성과 연관된 송신기 정보―상기 송신기 정보는
    상기 부호화된 데이터 비트를 생성하는데 사용되는 인코더와 연관된 소스 인코더 이름, 및
    상기 부호화된 데이터 비트를 생성하는데 사용되는 상기 인코더와 연관된 소스 인코더 모드
    중 적어도 하나를 포함함―를 수신하도록 구성됨―와,
    오류 정정 디코더―상기 오류 정정 디코더는
    상기 부호화된 데이터 비트를 복호하고,
    상기 중복 데이터 유닛 중 적어도 하나에 적어도 부분적으로 기초하여, 상기 손실된 데이터의 비트의 적어도 일부를 복구하도록 구성됨―와,
    상기 오류 정정 디코더가 상기 손실된 데이터의 적어도 하나의 복구 불가능한 데이터 비트에 대한 복수의 후보 비트값을 찾아냄으로 인해 상기 손실된 데이터의 적어도 하나의 데이터 비트가 상기 오류 정정 디코더에 의해 복구 불가능한 것으로 결정하도록 구성된 결정 모듈과,
    상기 복수의 후보 비트 값 중의 비트 값 또는 비트 값의 시퀀스를 무효한 것으로 식별하도록 상기 부호화된 데이터 비트의 생성과 연관된 상기 송신기 정보를 사용하는 것에 적어도 부분적으로 기초하여, 상기 적어도 하나의 복구 불가능한 데이터 비트에 대한 상기 후보 비트값 중 적어도 하나를 배제하기 위해 상기 복수의 후보 비트값을 분석하도록 구성된 분석기 모듈과,
    상기 분석에 기초하여 상기 적어도 하나의 복구 불가능한 데이터 비트를 리졸빙하도록 구성된 리졸빙 모듈을 포함하는
    수신기.
  17. 제16항에 있어서,
    상기 수신기는 애플리케이션 디코더를 더 포함하되,
    상기 애플리케이션 디코더는
    복구된 또는 리졸빙된 데이터 비트를 복호해서 복호 결과를 생성하고,
    후보 비트값을 선택적으로 복호하여 상기 분석기 모듈 및 상기 리졸빙 모듈에 의해 사용될 후보 복호 결과를 생성하도록 구성된
    수신기.
  18. 제17항에 있어서,
    상기 수신기는 상기 후보 비트값을 상기 애플리케이션 디코더에 공급하도록 구성된 스위칭 모듈을 더 포함하는
    수신기.
  19. 제17항에 있어서,
    상기 애플리케이션 디코더는 음성 디코더 또는 비디오 디코더를 포함하는
    수신기.
  20. 시스템으로서,
    적어도 하나의 프로세서와,
    프로세서 실행가능 명령어를 포함하는 하나 이상의 컴퓨터 판독가능 저장 메모리 장치를 포함하되,
    상기 프로세서 실행가능 명령어는 상기 적어도 하나의 프로세서에 의해 실행되는 경우 상기 시스템으로 하여금 네트워크를 통해 수립된 손실 통신 채널을 통해 송신기로부터 수신기로 전송된 부호화된 데이터 비트를 상기 수신기에서 처리하는 방법을 수행하게 하고,
    상기 방법은
    상기 손실 통신 채널을 통해 상기 부호화된 데이터 비트를 수신하는 단계―상기 부호화된 데이터 비트는 패킷에 포함되고, 상기 부호화된 데이터 비트는 중복 데이터 유닛을 포함하고, 상기 패킷 내의 부호화된 데이터의 적어도 일부 오리지널 데이터는 상기 손실 통신 채널을 통한 전송 중에 손실된 패킷임―와,
    상기 부호화된 데이터 비트를 생성한 상기 송신기와 연관된 송신기 정보를 수신하는 단계―상기 송신기 정보는
    상기 부호화된 데이터 비트를 생성하는데 사용되는 인코더와 연관된 소스 인코더 이름, 및
    상기 부호화된 데이터 비트를 생성하는데 사용되는 상기 인코더와 연관된 소스 인코더 모드
    중 적어도 하나를 포함함―와,
    상기 부호화된 데이터 비트를 오류 정정 디코더에서 복호하는 단계와,
    상기 중복 데이터 유닛 중 적어도 하나 및 적어도 하나의 다른 패킷에 적어도 부분적으로 기초하여, 상기 오류 정정 디코더에서 상기 손실된 패킷의 적어도 일부를 복구하는 단계와,
    상기 오류 정정 디코더가 적어도 하나의 손실된 패킷 내의 적어도 하나의 데이터 비트에 대한 복수의 후보 비트값을 찾아냄으로 인해 상기 적어도 하나의 손실된 패킷이 상기 오류 정정 디코더에 의해 복구 불가능한 것으로 결정하는 단계와,
    상기 복수의 후보 비트 값 중의 비트 값 또는 비트 값의 시퀀스를 무효한 것으로 식별하도록 상기 송신기 정보를 사용하는 것에 적어도 부분적으로 기초하여, 적어도 하나의 복구 불가능한 데이터 비트에 대한 상기 후보 비트값 중 적어도 하나를 배제하기 위해 상기 복수의 후보 비트값을 분석하는 단계와,
    상기 분석에 기초하여 상기 적어도 하나의 손실된 패킷의 상기 적어도 하나의 복구 불가능한 데이터 비트를 리졸빙하는 단계를 포함하는
    시스템.
KR1020147035509A 2012-06-18 2013-06-13 송신기에 관련된 정보를 이용하는 오류 복구 방법 및 장치 KR102081467B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB1210779.3A GB201210779D0 (en) 2012-06-18 2012-06-18 Correction data
GB1210779.3 2012-06-18
US13/666,774 US9276606B2 (en) 2012-06-18 2012-11-01 Correction data
US13/666,774 2012-11-01
PCT/US2013/045748 WO2013192019A1 (en) 2012-06-18 2013-06-13 Method and apparatus for error recovery using information related to the transmitter

Publications (2)

Publication Number Publication Date
KR20150021523A KR20150021523A (ko) 2015-03-02
KR102081467B1 true KR102081467B1 (ko) 2020-02-25

Family

ID=46641094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147035509A KR102081467B1 (ko) 2012-06-18 2013-06-13 송신기에 관련된 정보를 이용하는 오류 복구 방법 및 장치

Country Status (7)

Country Link
US (1) US9276606B2 (ko)
EP (1) EP2850765B1 (ko)
JP (1) JP6305398B2 (ko)
KR (1) KR102081467B1 (ko)
CN (1) CN104541469B (ko)
GB (1) GB201210779D0 (ko)
WO (1) WO2013192019A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967056B1 (en) * 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
US9967306B1 (en) * 2016-09-08 2018-05-08 Sprint Spectrum L.P. Prioritized transmission of redundancy data for packetized voice communication
EP3672135B1 (en) * 2018-12-19 2022-08-24 Aptiv Technologies Limited Method and system for testing the quality of a signal transmission in a communication system
EP4228187B1 (en) 2022-02-15 2024-06-19 Aptiv Technologies AG Integrity tests for mixed analog digital systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005507569A (ja) 2001-02-16 2005-03-17 ヒューレット・パッカード・カンパニー 複数状態符号化および経路ダイバーシティを使用するビデオ通信方法およびシステム
JP2011503947A (ja) 2007-11-07 2011-01-27 トムソン ライセンシング Fec符号化及び復号化の方法及び装置
JP2012010066A (ja) 2010-06-24 2012-01-12 Sony Corp 送信機、受信機及び通信システム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870412A (en) 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6418549B1 (en) * 1998-10-30 2002-07-09 Merunetworks, Inc. Data transmission using arithmetic coding based continuous error detection
US6760742B1 (en) * 2000-02-18 2004-07-06 Texas Instruments Incorporated Multi-dimensional galois field multiplier
US20030219118A1 (en) * 2002-05-23 2003-11-27 Beverly Harlan T. Optimized multiplicative inverse
KR100777880B1 (ko) * 2002-06-21 2007-11-21 엘지노텔 주식회사 송신 노드 그룹화를 통한 단문 메시지 전송 방법
JP4340519B2 (ja) * 2003-11-04 2009-10-07 富士通株式会社 情報処理端末
US7609697B2 (en) * 2004-03-30 2009-10-27 Sony Corporation Optimizing IEEE 802.11 for TCP/IP data transfer
US7889654B2 (en) 2005-03-30 2011-02-15 At&T Intellectual Property Ii, L.P. Loss tolerant transmission control protocol
KR100843073B1 (ko) * 2005-06-10 2008-07-03 삼성전자주식회사 오류 정정 패킷을 이용한 전송률 제어 방법 및 이를 이용한통신 장치
US8462624B2 (en) * 2005-07-28 2013-06-11 Riverbed Technologies, Inc. Congestion management over lossy network connections
CN1992583A (zh) * 2005-12-29 2007-07-04 朗迅科技公司 用于使用二进制奇偶校验来重建丢失分组的方法
EP1809041A1 (en) * 2006-01-11 2007-07-18 Mitsubishi Electric Information Technology Centre Europe B.V. Error concealement for scalable video coding
JP2008187646A (ja) * 2007-01-31 2008-08-14 Mitsubishi Electric Corp パケット通信システム、送信端末及び受信端末
US7957307B2 (en) 2007-03-14 2011-06-07 Microsoft Corporation Reducing effects of packet loss in video transmissions
US7957423B2 (en) * 2008-01-02 2011-06-07 Cisco Technology, Inc. Packet error correction
US8259867B2 (en) 2008-01-04 2012-09-04 Qualcomm Incorporated Methods and systems for turbo decoding in a wireless communication system
US7940777B2 (en) 2008-02-26 2011-05-10 Cisco Technology, Inc. Loss-free packet networks
EP2129028B1 (en) * 2008-05-06 2012-10-17 Alcatel Lucent Recovery of transmission errorrs
ATE531153T1 (de) * 2008-05-06 2011-11-15 Alcatel Lucent Wiederherstellung von übertragungsfehlern
US8406342B2 (en) 2008-06-19 2013-03-26 Qualcomm Incorporated Methods and systems for improving frame decoding performance using known information
JP5408981B2 (ja) * 2008-12-09 2014-02-05 キヤノン株式会社 通信装置、及び通信方法、プログラム
JP5748471B2 (ja) * 2010-12-14 2015-07-15 キヤノン株式会社 配信装置、配信方法、プログラム
JP5677070B2 (ja) * 2010-12-14 2015-02-25 キヤノン株式会社 受信装置及び、受信装置による処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005507569A (ja) 2001-02-16 2005-03-17 ヒューレット・パッカード・カンパニー 複数状態符号化および経路ダイバーシティを使用するビデオ通信方法およびシステム
JP2011503947A (ja) 2007-11-07 2011-01-27 トムソン ライセンシング Fec符号化及び復号化の方法及び装置
JP2012010066A (ja) 2010-06-24 2012-01-12 Sony Corp 送信機、受信機及び通信システム

Also Published As

Publication number Publication date
US20130339824A1 (en) 2013-12-19
CN104541469B (zh) 2017-12-15
US9276606B2 (en) 2016-03-01
JP2015532020A (ja) 2015-11-05
KR20150021523A (ko) 2015-03-02
JP6305398B2 (ja) 2018-04-04
EP2850765B1 (en) 2018-05-16
WO2013192019A1 (en) 2013-12-27
GB201210779D0 (en) 2012-08-01
CN104541469A (zh) 2015-04-22
EP2850765A1 (en) 2015-03-25

Similar Documents

Publication Publication Date Title
US9166735B2 (en) Correction data
JP5675876B2 (ja) 連鎖的暗号化反応の系統的記号化および復号化
US8327233B2 (en) Method and device for transmitting and receiving data packets
US20170063497A1 (en) Method and apparatus for decoding packetized data
US20070165673A1 (en) Method for reconstructing lost packets using a binary parity check
JP2001144732A (ja) リアルタイム・マルチメディア通信用のパケット・ロス制御方法
KR102081467B1 (ko) 송신기에 관련된 정보를 이용하는 오류 복구 방법 및 장치
US20160028992A1 (en) Telecommunication end-point device data transmission controller
CA3069594C (en) Media content-based adaptive method, device and system for fec coding and decoding of systematic code, and medium
CN111082896A (zh) 一种数据传输方法及发送、接收装置
US10200155B2 (en) One-way data transmission apparatus, one-way data reception apparatus, and one-way data transmission/reception method using the same
US9667756B2 (en) Apparatus and method for transmitting/receiving data in communication system
WO2015178018A1 (ja) 端末、パケット復号方法、および、プログラムが記憶された記憶媒体
CN110572721B (zh) 视频传输方法和装置
US11489620B1 (en) Loss recovery using streaming codes in forward error correction
KR20200000090A (ko) 머신러닝을 이용하여 최적의 망품질에 따른 지능형 순방향 오류 정정 송수신 구현 방법
US20230106959A1 (en) Loss recovery using streaming codes in forward error correction
KR20160019778A (ko) 단말기가 데이터를 송수신하는 방법 및 그 단말기
US8638672B2 (en) Methods and apparatus for detecting errors in encoding and decoding of data
KR101801565B1 (ko) 통신 시스템에서 데이터 송수신 장치 및 방법
Khayam et al. Comparison of conventional and cross-layer multimedia transport schemes for wireless networks
KR20160064381A (ko) 압축바이너리클러스터생성 및전송을 통한 데이터전송오류 검증방법 및 그 장치
KR20150079399A (ko) 데이터 전송 디바이스 및 그 전송 방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant