KR101004573B1 - 순방향 에러 정정 코드 디코딩을 위한 시스템 및 방법 - Google Patents

순방향 에러 정정 코드 디코딩을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101004573B1
KR101004573B1 KR1020077026393A KR20077026393A KR101004573B1 KR 101004573 B1 KR101004573 B1 KR 101004573B1 KR 1020077026393 A KR1020077026393 A KR 1020077026393A KR 20077026393 A KR20077026393 A KR 20077026393A KR 101004573 B1 KR101004573 B1 KR 101004573B1
Authority
KR
South Korea
Prior art keywords
decoder
information
packet
error correction
bit
Prior art date
Application number
KR1020077026393A
Other languages
English (en)
Other versions
KR20080004603A (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 KR20080004603A publication Critical patent/KR20080004603A/ko
Application granted granted Critical
Publication of KR101004573B1 publication Critical patent/KR101004573B1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • 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/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

디코더의 상태를 업데이트(혹은 재계산)하기 위해 늦은 패킷(late packet) 도착에 포함된 정보를 사용하여, 순방향 에러 정정 코드들의 디코더들의 성능을 향상시킬 수 있는 시스템들 및 방법들이 개시되었다. 개시된 실시예들의 시스템들 및 방법들은 일반적으로, 연속적 비트들 혹은 정보 프레임들의 디코딩에서 상태 정보를 유지하는 디코더들에 적용가능하다. 늦은 패킷에 포함된 정보가 원래 정시에 도착했고 통상적 방식으로 디코딩되었다면 디코더가 가졌을 상태와 재계산된 상태가 정확히 같으므로, 본 출원서에 개시된 시스템들 및 방법들은 디코더의 성능(즉, 비트 에러 레이트)을 향상시킬 수 있다. 사실상, 늦은 패킷 도착에 후속하는 디코더 상태의 업데이트는 디코더의 상태에 늦은 패킷 삭제 효과의 파급을 적시에 종료한다.
Figure R1020077026393
패킷 디코딩 시스템, 순방향 에러 정정 디코더, 늦은 패킷, 플레이아웃 시간, 비트/프레임 버퍼, 디코더 상태 버퍼, 컨볼루션 에러 정정 코드, 비터비 디코더, 패킷 수신 버퍼

Description

순방향 에러 정정 코드 디코딩을 위한 시스템 및 방법{Systems and methods for decoding forward error correcting codes}
패킷 네트워크들에서, 예를 들어, 음성, 비디오, 및 오디오와 같은, 비실시간 데이터 신호들과 실시간 데이터 신호들은, 패킷화되어 패킷 네트워크를 통해 전송되기 전에 에러 정정 코드들로 인코딩될 수 있다. 이것은 다양한 FEC(forward error correction) 스킴들을 통해 성취될 수 있다. 일반적으로, FEC 스킴들은 전송될 신호(혹은 메시지)에 충분한 리던던시(redundancy)를 도입하여, 전송 중에 유실되거나 혹은 손상된 패킷들이 수신기에서 재구성될 수 있도록 한다. 환언하면, FEC의 목적은, 채널을 통해 전송되고 있는 데이터로 어떤 조심스럽게 고안된 용장 정보를 추가하여 채널의 능력을 향상시키는 것이다. 에러 정정 코드들로써 신호들의 인코딩은, 실시간 신호들인 경우, 패킷 유실, 패킷 삭제, 비트 에러, 그리고 또한 패킷 지연에 대해 전송된 신호를 보호할 수 있다.
에러 정정 코드로 인코딩되어 패킷화된 전송의 수신 측에서, 도착하는 패킷들은 통상 먼저 패킷-수신 버퍼(또는 '플레이아웃(playout)' 버퍼)에 위치된다. '파이프라인(pipelined)' 프로세스에 따르면, 버퍼링된 패킷들이 상기 버퍼로부터 주기적으로 판독되고(혹은 '플레이-아웃됨'), 비트들 혹은 프레임들이 패킷 페이로드들(payloads)로부터 추출되어, 패킷화 전에 송신 측에 적용될 인코딩 방법에 대응하는 디코딩 방법을 사용하여, 상기 비트들 혹은 프레임들이 디코딩되고, 상기 디코딩된 디지털 신호는 수신 개체(디바이스, 프로세스, 혹은 사람)로 플레이-아웃된다. 버퍼가 이미 꽉 찼을 때, 혹은, 실시간 신호들의 경우, 스케쥴링된(혹은 요구된) 플레이아웃 시간이 경과한 후, 패킷-수신 버퍼에 도착하는 패킷들은 버려질 것이다. 늦은 패킷들(late packets)의 폐기는 상기 늦은 패킷들에 포함된 비트들 혹은 프레임들의 유실(혹은 삭제)을 유발시킨다. 상기 늦은 패킷들의 폐기는, 임의 패킷 유실, 패킷 삭제, 혹은 패킷 네트워크에서 이미 발생되었을 수 있는 패킷 손상에 추가적인 것이다.
삭제되거나 유실된 비트들 혹은 프레임들은 디코더에 지시될 것이고, 수신된 비트들 혹은 프레임들에 적용되는 디코딩 방법은 삭제되거나, 유실되거나, 혹은 손상된 비트들과 프레임들을 정정할 것이다. 그러나, FEC방법들이 적절하더라도, 디코딩 프로세스에서 에러들이 여전히 발생한다. 그러므로, 순방향 에러 정정 코드들의 성능(즉, 비트 에러 레이트)을 향상시키기 위한 시스템들과 방법들이 여전히 필요하다.
본 출원서는 치수 조정을 위해 미도시된 첨부 도면들을 참조한다.
도 1은 패킷들의 수신과, 에러 정정 코드로 인코딩된 정보 비트들 혹은 프레임들을 디코딩하는 종래 기술을 나타낸다.
도 2는 본 발명의 일 실시예에 따라 구현된 디코딩 기술의 일례의 상위 수준 블럭도를 나타낸다.
도 3은 에러 정정 코드의 디코딩에서 늦은 패킷 도착에 포함된 정보를 사용하여 본 발명의 일 실시예에 따라 구현될 수 있는 디코딩 기술의 더욱 상세한 일례를 나타낸다.
이하, 본 발명에 따른 바람직한 실시예들이, 본 발명의 일부, 전부는 아니지만, 가능한 실시예들이 도시된, 첨부 도면들을 참조하여 설명될 것이다. 실제로, 본 발명(들)은 다수의 상이한 형태들로 구현될 수 있고, 본 출원서에 기재된 실시예들에 제한되는 것으로서 해석되어서는 안 된다; 그 대신, 이들 실시예들은, 본 개시가 적용가능한 법적 요구사항들을 만족시키도록 제공된다. 도면 전반에 걸쳐 유사 참조부호들은 유사 요소들을 참조한다.
본 발명에 따라 구현된 일 실시예에서, 디코더의 상태를 업데이트(혹은 재계산)하기 위해 늦은 패킷 도착에 포함되는 정보를 사용하여 순방향 에러 정정 코드들의 디코더들의 성능을 향상시키기 위한 방법 및 시스템이 개시된다. 본 발명에 따른 실시예들의 방법 및 시스템이 또한 다른 에러 정정 코드들을 채택할 수 있지만, 이하 예제로서 공지된 에러 정정 코드는 컨볼루션(convolutional) 에러 정정 코드를 참조한다. 이하 설명되는 것처럼, 방법 및 시스템은 일반적으로 연속적 비트들 혹은 정보 프레임들의 디코딩에서 상태 정보를 유지하는 디코더들에게 적용가능하다. 상기 방법 및 시스템이 또한 다른 유형들의 디코더들을 채택할 수 있지만, 상태 정보를 관리하는 한 가지 잘 공지된 디코더는 비터비(Viterbi) 알고리즘에 따라 동작한다. 재계산되는 상태가, 늦은 패킷에 포함된 정보가 원래 정시에 도착했고 통상적 방식으로 디코딩되었다면 디코더가 가졌을 정확히 그 상태에 있으므로, 상기 방법 및 시스템은 일반적으로 디코더의 성능(즉, 비트 에러 레이트)을 향상시킨다. 사실상, 늦은 패킷 도착에 후속하는 디코더 상태의 업데이트는 디코더 상태에 늦은 패킷 삭제의 효과의 파급을 적시에 종료시킨다.
이하 더 상세히 설명된 상기 방법 및 시스템이 패킷-수신 버퍼에 의해 선행되는 디코더에 관련되어 제공된다. 패킷-수신 버퍼의 크기(패킷들로)가 0, 1, 혹은 그 이상일 수 있슴을 주목하라. 그러므로, 설명된 방법 및 시스템이 또한, 수신 버퍼가 없어서, 도착하는 비트들 혹은 프레임들이 바로 도착 패킷들로부터 추출되어 파이프라인 프로세스에서 디코딩되는 경우를 포함한다.
패킷들을 수신하고 에러 정정 코드로 인코딩된 정보 비트들/프레임들을 디코딩하는 통상적 기술이 도 1에 도시되었다. 도 1에, 네트워크로부터 도착하는 패킷들은 통상적으로 패킷 수신 버퍼에 먼저 배치된다. 꽉 찬(full) 버퍼에 도착하는 패킷들은 폐기된다(즉, 삭제되고, 블럭킹됨). 스케쥴링되거나 혹은 요구된 플레이아웃 시간 후에 도착하는, 패킷, 즉, 늦은 패킷들도 또한 폐기된다. 수신 버퍼(12)에 홀딩되고 있는 패킷들은 패킷-플레이아웃 스케쥴에 따라 플레이아웃된다. 일반적으로 알려진 바와 같이, 플레이아웃 스케쥴링은, 네트워크 지연에서 변동에도 불구하고, 전송된 신호(개별적으로 수신된 패킷들에 포함된)를 계속 플레이 아웃하기 위해 전송의 수신 측에서 사용될 수 있다. 지연 변동(또한 지연 지터(jitter)로서 알려짐)의 존재로, 수신 측에서의 플레이 아웃 스킴은 패킷 네트워크들에서 유실과 지연 사이의 타협점(trade-off)에 크게 영향을 미칠 수 있다. 그러므로, 패킷 수신 버퍼(12)는 통상적으로 디코딩된 신호, x(k)를 출력하기 전에 지연 지터를 흡수하도록 채택되고, 여기서, k는 이산 시간 시기(discrete time epoch)를 나타낸다. 스케쥴링된(혹은 요구된) 플레이아웃 기한보다 더 늦게 도착하는 임의 패킷은 폐기되어야 하고 결과적으로 유실된다. 더 늦은 기한을 스케쥴링하는 것이 더 많은 패킷들을 플레잉하고 더 적은 유실율의 가능성을 증가시키지만, 그것은 더 높은 버퍼링 지연의 대가를 치르는 것이다.
패킷이 플레이 아웃될 때, 정보 비트들/프레임들 f(k)는 패킷으로부터 추출되고, 정보 비트들/프레임들은 에러 정정 디코더(14)에 의해 한 번에 일 비트 혹은 프레임씩(일부 구현들에서는, 비트들과 프레임들이 그룹들로 디코딩될 수 있슴) 디코딩된다. 디코더(14)의 출력은 디코딩된 출력 신호 x(k)이다. 패킷이 플레이 아웃되어야 할 때 패킷 버퍼(12)가 비어 있거나(고갈), 또는 하나 이상의 패킷들이, 예를 들어, 늦은 도착의 결과로서, 패킷 버퍼의 패킷들의 시간 시퀀스로부터 유실되면, 디코더로의 정보의 연속적 비트/프레임 스트림을 유지하기 위해, 비트/프레임 삭제 지시자들이 통상 수신된 비트/프레임 스트림에 삽입될 것임을 주목하라.
더 형식적으로, f(k)가 k번째 정보 비트 혹은 프레임(즉, 이산 시간 시기 k에 도착하는 비트 혹은 프레임)이면, k번째 시간 간격에 대응하는 디코딩된 출력 신호는 x(k)이고, 여기서, x(k) = D(f(k), S(k-1)), D(.)는 에러 정정 디코딩 연산자이고, S(k-1)는 이전 정보 프레임 f(k-1)을 디코딩한 후 에러 정정 디코더(14)의 상태이다. f(k)를 디코딩한 후 디코더(14)의 상태는 S(k)이다. 비트의 경우, f(k)가 1, 0, 혹은 지시된 삭제에 대응할 수 있슴을 주목하라. 프레임의 경우, f(k)는 비트들의 프레임 혹은 지시된 프레임 삭제에 대응할 수 있다.
상술된 바와 같이, 에러 정정 코드로 인코딩된 정보 비트들/프레임들을 수신하고 디코딩하는 종래 기술은 늦은 도착 패킷들에 기인하여 유실되는 단점을 갖는다. 버퍼링 지연을 증가시키지 않고 이 유실을 적어도 부분적으로 개선하기 위해, 도 2는 본 발명의 일 실시예에 따라 구현되는 디코딩 기술의 일례의 상위 수준(high level) 블럭도를 도시한다. 더 구체적으로, 도 2는, 에러 정정 코드의 디코딩에서 늦은 패킷 도착에 포함된 정보를 사용하는 디코딩 기술을 나타낸다. 도 1의 종래 디코딩 기술에서, 늦은 패킷 도착은 단순히 폐기된다(또는 삭제됨). 그러나, 도 2에 도시된 실시예에서, 늦은 패킷 도착은 늦은 패킷 도착 프로세싱부(26)로 전달된다. 이하 상세히 설명되는 바와 같이, 늦은 패킷 도착에 포함된 정보는 에러 정정 디코더(24)의 상태를 업데이트(혹은 재계산)하기 위해 늦은 패킷 도착 프로세싱부(26)에 의해 사용될 수 있다. 도 3의 예제에 의해 도시되는 것처럼, 늦은 패킷 도착 프로세싱부(26)와 그 구성요소들은, 디코더 내의 메모리에 저장되어, 예를 들어, 제어기, 마이크로프로세서, 혹은 다른 컴퓨팅 디바이스와 같은, 디코더의 프로세싱 소자에 의해 검색되어 실행되는 소프트웨어로 구성될 수 있다. 대안적으로, 늦은 도착 프로세싱부(26)와 그것의 구성 요소들은, 당업자라면 인식할 수 있을 것처럼, 하드웨어, 혹은, 펌웨어, 혹은 소프트웨어, 하드웨어, 및 펌웨어의 임의 조합으로 구성될 수 있다.
도 3은, 순방향 에러 정정 코드의 디코딩에서 늦은 패킷 도착에 포함되는 정보를 사용하여, 본 발명의 일 실시예에 따라 구현될 수 있는 디코딩 기술의 더욱 상세한 일 실시예를 도시한다. 도 3에서, 네트워크로부터 도착하는 패킷들은, 이들 패킷들이 스케쥴링된(혹은 요구된) 플레이아웃 시간을 경과하여 도착하지 않는 한, 또는 패킷 수신 버퍼가 꽉 차지 않는 한, 패킷 수신 버퍼(22)에 먼저 위치된다. 패킷 수신 버퍼(22)가 꽉 찼으면, 도착 패킷은 단순히 폐기되거나 블럭킹될 수 있다. 도 1에서처럼, 패킷 수신 버퍼(22)의 패킷들은 패킷-플레이아웃 스케쥴에 따라 플레이아웃된다. 패킷이 플레이 아웃될 때, 정보 비트들/프레임들은 패킷으로부터 추출되어, 정보 비트들/프레임들이 에러 정정 디코더(24)에 의해 한 번에 일 비트/프레임씩(또는, 일부 구현들에서는, 비트들/프레임들의 그룹으로) 디코딩된다. 디코더(24)의 출력은 디코딩된 출력 신호 x(k)이고, 여기서, x(k) = D(f(k). S(k-1))이다. 패킷이 플레이 아웃되어야 할 때 패킷 버퍼(22)가 비어 있으면(고갈), 삭제 비트들/프레임들은 디코더(24)로 연속 정보 스트림을 유지하기 위해 삽입될 수 있다.
도 1에 도시된 종래 기술과는 달리, 도 3에 도시된 실시예는, 늦은 패킷이 도착할 때 실행될 수 있는 추가 단계들의 세트의 구현을 돕는 늦은 패킷 도착 프로세싱부(26)를 포함한다. 도 1의 종래 기술에서, 늦은 패킷은 단순히 폐기된다(혹은 삭제됨). 그러나, 도 3의 실시예에서, 늦은 패킷 도착의 비트/프레임 정보는 다음 목적들로 사용될 수 있다: (i) 단계(29)에서 지시된 것처럼 보조 비트/프레임 버퍼(28)를 업데이트하기 위해, (ii) 단계(31)에서 지시된 것처럼, 보조 디코더 상태 버퍼(30)를 업데이트하기 위해, 및 (iii) 단계(33)에서 지시된 것처럼, 에러 정정 디코더 상태 S(k)를 업데이트하기 위해. 비트/프레임 버퍼(28)는, 패킷 버퍼가 고갈되었을 때 삽입될 수 있는 비트/프레임 삭제 지시들을 포함하는, 최근 M-1 입력 비트들/프레임들을 홀딩한다. 환언하면, 비트/프레임 버퍼(28)는, 에러 정정 디코더(24)에 제공된 비트들/프레임들의 최근 이력을 홀드한다. 비트들/프레임들이 에러 정정 디코더(24)에 제공됨과 같이, 비트들/프레임들은 또한 비트/프레임 버퍼(28)로 복사된다. 그러므로, 시간 k에서 비트/프레임 버퍼(28)의 상태는 비트들/프레임들의 세트, A(k) = {f(k), f(k-1),..., f(k-M)}이 되도록 정의될 수 있다. 디코더 상태 버퍼(30)는 에러 정정 디코더(24)의 최근 M 상태들을 홀드한다. 환언하면, 디코더 상태 버퍼(30)는 디코더 상태들의 최근 이력을 홀드한다. 디코더(24)의 상태가 연속 비트들/프레임들의 디코딩에서 변화됨에 따라, 디코더의 각 새로운 상태도 또한 디코더 상태 버퍼(30)에 복사된다. 그러므로, 시간 k에서 디코더 상태 버퍼(30)의 상태는, 디코더 상태들의 세트, B(k) = (S(k), S(k-1),...,S(k-M-1))이 되도록 정의될 수 있다.
늦은 패킷이 도착할 때, 늦은 패킷 도착 프로세싱부(26)는 일반적으로, 늦은 패킷의 비트들/프레임들이 비트/프레임 버퍼를 업데이트하는 단계(29) 동안 대응하는 시간 시기를 먼저 결정한다. 이것은 늦은 패킷의 헤더 필드(들)에 포함된 시퀀스 번호 및/또는 시간도장(timestamp) 정보로부터 결정될 수 있다. 늦은 패킷의 비트들/프레임들의 세트 g(.)는 {g(e), g(e+1),...,g(e+n-1)}에 의해 주어지고, 여기서 n은 늦은 패킷에서 비트들/프레임들의 수이고, e는 늦은 패킷에서 제1 비트/프레임의 시간 시기이다. 비트/프레임 버퍼 A(k)(28)는 늦은 패킷에서와 동일한 시간 시기들에 대응하는 A(k)의 비트(들)/프레임(들)을 교체하여 업데이팅된다. 예를 들어, f(e)가 A(k)에 있으면, f(e)는 g(e)에 의해 교체될 수 있고, f(e+1)이 A(k)에 있으면, f(e+1)는 g(e+1)에 의해 교체될 수 있고, f(e+n-1)이 A(k)에 있으면, f(e+n-1)는 g(e+n-1)에 의해 교체될 수 있다. 상술된 바와 같이, 삭제 비트들/프레임들은 디코더(24)로의 연속 정보 스트림을 유지하기 위해 늦은 도착 패킷 대신에 비트/프레임 버퍼 A(k)에 초기에 삽입될 수 있다. 그렇게 해서, f(i)가 A(k)에 있고, g(i)가 늦은 패킷에 포함되면, f(i)는 삭제를 위한 장소 홀더로서 기본적으로 동작되는 지시된 비트/프레임 삭제이다. 늦은 도착 패킷을 포함하기 위한 업데이트에 후속하여, 비트/프레임 버퍼(28)의 컨텐트들은 A*(k) = {f*(k), f*(k-1), ..., f*(k-M)}로서 정의될 수 있다.
비트/프레임 버퍼(28)를 업데이트한 후, 디코더 상태 버퍼(30)는, 업데이트된 비트/프레임 버퍼 A*(k)를 고려하여 과거 디코더 상태들을 재귀적으로(recursively) 재계산(업데이트)하여 업데이트한다. 이 관점에서, f(j)를, 비트/프레임 버퍼(28)의 업데이트에서 g(j)에 의해 교체된 A(k)의 가장 빠른 비트/프레임이라 가정하자. 그 후, 디코더 상태 버퍼(30)는, S*(j) = D(f*(j), S(j-1))로서 S(j)를 재계산하고, S*(j+1) = D(f*(j+1),S*(j))로서 S(j+1)를 재계산하는 등에 의해, S(k)가 S*(k) = D(f*(k), S*(k-1))로서 재계산될 때까지, 재귀적으로 업데이트된다. 최종적으로, 디코더(24) 자체의 현재 상태는 재계산된(업데이트된) 상태 S*(k)로 설정하여 업데이트된다. 그러므로, 디코더의 재계산 상태가, 늦은 패킷에 포함된 정보가 원래 정시에 도착해서 통상적 방식으로 디코딩되었다면 디코더가 가졌을 동일한 상태이므로, 적어도 비트 에러 레이트와 관련하여, 디코더(24)의 성능이 향상될 수 있다. 늦은 패킷 수신시, 디코더의 상태를 업데이트하여, 본 발명에 따른 바람직한 실시예들의 방법 및 시스템은 디코더의 상태에 늦은 패킷 삭제의 악 영향의 파급을 적시에 종료할 수 있다.
이미 상술된 바와 같이, 늦은 패킷 도착에 포함된 정보를 사용하는 본 발명에 따라 구현된 실시예들은, 연속적 비트들/프레임들의 디코딩에서 상태 정보를 유지하는 에러 정정 디코더들과 사용될 수 있다. 일례는 컨볼루션 에러 정정 코드들을 위한 비터비 디코더이다. 그러나, 디코더가 연속적 비트들/프레임들의 디코딩에서 상태 정보를 유지하는 한, 본 발명의 실시예들은 임의 특정 에러 정정 코딩 스킴 혹은 디코딩 스킴에 이들의 적용성이 제한되지는 않는다. 예를 들어, 컨볼루션 터보 코드들을 위한 디코더들과 같은, 본 발명의 실시예들의 방법 및 시스템이 적용될 수 있는 그런 디코더들의 다수의 다른 예제들이 존재한다. 본 출원서에 설명된 실시예들 및 예제들은 또한, 미래에 발명될 것이고 연속적 비트들/프레임들의 디코딩에 상태 정보를 유지하는 임의 새로운 에러 정정 디코더들에도 적용될 수 있다.
선행된 명세서에서, 본 발명은 특정 실시예들을 참조하여 설명되었다. 그러나, 후속하는 청구범위에 기재된 것처럼 본 발명의 광의의 취지 및 범위로부터 벗어나지 않고 다양한 수정 및 변경이 되어질 수 있슴이 명백할 것이다. 따라서, 명세서 및 도면들은 제한적이기보다는 설명적인 것으로서 간주되어져야 한다.

Claims (20)

  1. 패킷 디코딩 시스템에 있어서,
    순방향 에러 정정 디코더(forward error correcting decoder)로서, 순방향 에러 정정 코드로 코딩된 정보를 포함하는 수신된 패킷들을 디코딩하고, 상기 수신된 패킷들에 의해 포함된 상기 정보의 디코딩에 후속하는 상기 순방향 에러 정정 디코더의 일련의 상태들을 나타내는 상태 정보를 유지하도록 구성된 순방향 에러 정정 디코더; 및
    미리 정의된 플레이아웃(playout) 시간에 후속하여 상기 패킷 디코딩 시스템에 도착하는 늦은 패킷(late packet)에 포함되는 정보에 적어도 부분적으로 기초되는 상기 순방향 에러 정정 디코더의 상기 상태 정보를 업데이트하도록 구성되는 늦은-패킷-도착 프로세싱부를 포함하고,
    상기 늦은-패킷-도착 프로세싱부는,
    (i) 상기 순방향 에러 정정 디코더에 제공된 상기 정보의 최근 이력(history)을 저장하도록 구성되는 비트/프레임 버퍼;
    (ⅱ) 상기 늦은 패킷의 도착에 응답하여 상기 비트/프레임 버퍼를 업데이트하도록 구성되는 비트/프레임-버퍼 업데이트부;
    (ⅲ) 상기 순방향 에러 정정 디코더의 상태들의 최근 이력을 저장하도록 구성되는 디코더 상태 버퍼; 및
    (ⅳ) 상기 비트/프레임 버퍼의 상기 업데이트된 정보에 적어도 부분적으로 기초하여 상기 순방향 에러 정정 디코더의 과거 상태들을 재귀적으로(recursively) 재계산함으로써 상기 디코더 상태 버퍼를 업데이트하도록 구성되는 디코더-상태-버퍼 업데이트부를 포함하고,
    상기 비트/프레임 버퍼의 상기 업데이트된 정보는 상기 늦은 패킷에 포함된 정보에 적어도 부분적으로 기초하는, 패킷 디코딩 시스템.
  2. 삭제
  3. 제 1 항에 있어서, 상기 비트/프레임 버퍼 업데이트부는, 상기 늦은 패킷의 상기 정보가 대응하는 적어도 하나의 시간 시기(time epoch)를 결정하고, 해당 시간 시기들에 대응하는 상기 비트/프레임 버퍼에 임의로 존재하는 엔트리들을, 상기 늦은 패킷의 상기 대응하는 정보로 대체하도록 구성되는, 패킷 디코딩 시스템.
  4. 삭제
  5. 삭제
  6. 제 1 항에 있어서, 상기 순방향 에러 정정 디코더는 컨볼루션(convolutional) 에러 정정 코드들로 인코딩된 정보를 디코딩하도록 구성되는 비터비 디코더인, 패킷 디코딩 시스템.
  7. 제 1 항에 있어서, 상기 순방향 에러 정정 디코더에 제공되기 전에 수신된 패킷들을 수신하여 버퍼링하도록 구성되는 패킷 수신 버퍼를 더 포함하는 패킷 디코딩 시스템.
  8. 순방향 에러 정정 코드를 사용하여 코딩된 복수의 수신된 패킷들에 포함되는 정보를 디코딩하는 단계;
    상기 복수의 수신된 패킷들 각각에 포함된 상기 정보의 디코딩에 후속하는 일련의 상태들을 나타내는 상태 정보를 유지하는 단계;
    상기 순방향 에러 정정 코드를 사용하여 코딩된 정보를 포함하고, 또한 미리 정의된 플레이아웃 시간에 후속하여 도착하는 늦은 패킷을 수신하는 단계; 및
    상기 늦은 패킷에 포함된 상기 정보에 적어도 부분적으로 기초하여 상기 상태 정보를 업데이트하는 단계를 포함하고,
    상기 상태 정보 업데이트 단계는,
    상기 늦은 패킷에 포함된 상기 정보에 적어도 부분적으로 기초하여 비트/프레임 버퍼를 업데이트하는 단계와,
    상기 비트/프레임 버퍼의 상기 업데이트된 정보에 적어도 부분적으로 기초하여 디코더의 과거 상태 정보를 재귀적으로 재계산함으로써, 디코더 상태 버퍼를 업데이트하는 단계를 포함하며,
    상기 비트/프레임 버퍼는 디코딩된 상기 정보의 최근 이력을 홀드(hold)하고, 상기 디코더 상태 버퍼는 상기 상태 정보의 최근 이력을 홀드하는, 방법.
  9. 삭제
  10. 제 8 항에 있어서, 상기 비트/프레임 버퍼의 업데이트 단계는, 상기 늦은 패킷의 상기 정보에 대응하는 시간 시기들을 결정하는 단계, 및 해당 시간 시기들에 대응하는 상기 비트/프레임 버퍼에 임의로 존재하는 엔트리들을, 상기 늦은 패킷의 상기 대응하는 정보로 대체하는 단계를 포함하는, 방법.
  11. 삭제
  12. 삭제
  13. 제 8 항에 있어서, 상기 순방향 에러 정정 코드는 컨볼루션 에러 정정 코드인, 방법.
  14. 제 8 항에 있어서, 상기 복수의 수신된 패킷들에 포함된 상기 정보가 디코딩되기 전에 상기 복수의 수신된 패킷들을 버퍼링하는 단계를 더 포함하는 방법.
  15. 삭제
  16. 패킷 디코딩 시스템에 있어서,
    순방향 에러 정정 디코더로서, 순방향 에러 정정 코드로 코딩되는 정보를 포함하는 수신된 패킷들을 디코딩하고, 상기 수신된 패킷들에 의해 포함된 상기 정보의 디코딩에 후속하는 상기 순방향 에러 정정 디코더의 일련의 상태들을 나타내는 상태 정보를 유지하도록 구성되는 순방향 에러 정정 디코더;
    상기 순방향 에러 정정 디코더에 제공된 상기 정보의 최근 이력을 저장하도록 구성되는 비트/프레임 버퍼;
    상기 순방향 에러 정정 디코더의 상태들의 최근 이력을 저장하도록 구성되는 디코더 상태 버퍼;
    미리 정의된 플레이아웃 시간에 후속하여 상기 패킷 디코딩 시스템에 도착하고, 늦은 패킷 정보를 포함하는 늦은 패킷의 도착에 응답하여, 상기 비트/프레임 버퍼를 업데이트하도록 구성되는 비트/프레임-버퍼 업데이트부;
    상기 비트/프레임 버퍼의 상기 업데이트된 정보에 적어도 부분적으로 기초하여 상기 순방향 에러 정정 디코더의 과거 상태들을 재귀적으로 재계산함으로써 상기 디코더 상태 버퍼를 업데이트하도록 구성되는 디코더-상태-버퍼 업데이트부; 및
    상기 디코더 상태 버퍼의 상기 업데이트된 정보 및 상기 비트/프레임 버퍼의 상기 업데이트된 정보에 적어도 부분적으로 기초하여 상기 순방향 에러 정정 디코더의 상기 상태 정보를 업데이트하도록 구성되는 디코더-상태 업데이트부를 포함하는, 패킷 디코딩 시스템.
  17. 제 16 항에 있어서, 상기 비트/프레임-버퍼 업데이트부는, 상기 늦은 패킷의 상기 늦은 패킷 정보가 대응하는 시간 시기들을 결정하고, 해당 시간 시기들에 대응하는 상기 비트/프레임 버퍼에 임의로 존재하는 엔트리들을, 상기 늦은 패킷 정보로 대체하도록 구성되는, 패킷 디코딩 시스템.
  18. 삭제
  19. 제 16 항에 있어서, 상기 순방향 에러 정정 디코더는 컨볼루션 에러 정정 코드들로 인코딩된 정보를 디코딩하도록 구성되는 비터비 디코더인, 패킷 디코딩 시스템.
  20. 제 16 항에 있어서, 상기 순방향 에러 정정 디코더에 제공되기 전에, 패킷들을 수신하고, 수신된 패킷들을 버퍼링하도록 구성되는 패킷 수신 버퍼를 더 포함하는 패킷 디코딩 시스템.
KR1020077026393A 2005-05-13 2006-05-11 순방향 에러 정정 코드 디코딩을 위한 시스템 및 방법 KR101004573B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/128,986 US7447983B2 (en) 2005-05-13 2005-05-13 Systems and methods for decoding forward error correcting codes
US11/128,986 2005-05-13

Publications (2)

Publication Number Publication Date
KR20080004603A KR20080004603A (ko) 2008-01-09
KR101004573B1 true KR101004573B1 (ko) 2010-12-30

Family

ID=37420632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077026393A KR101004573B1 (ko) 2005-05-13 2006-05-11 순방향 에러 정정 코드 디코딩을 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US7447983B2 (ko)
EP (1) EP1880472B1 (ko)
JP (1) JP5065254B2 (ko)
KR (1) KR101004573B1 (ko)
CN (1) CN101176263B (ko)
CA (1) CA2607088C (ko)
WO (1) WO2006124504A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783482B2 (en) * 2004-09-24 2010-08-24 Alcatel-Lucent Usa Inc. Method and apparatus for enhancing voice intelligibility in voice-over-IP network applications with late arriving packets
US7924711B2 (en) * 2004-10-20 2011-04-12 Qualcomm Incorporated Method and apparatus to adaptively manage end-to-end voice over internet protocol (VolP) media latency
JP4983435B2 (ja) * 2007-06-27 2012-07-25 富士通株式会社 パケット通信品質計測装置及び方法
US9184874B2 (en) * 2008-03-31 2015-11-10 Qualcomm Incorporated Storing log likelihood ratios in interleaved form to reduce hardware memory
US8059687B2 (en) 2008-12-16 2011-11-15 Intel Corporation Algorithm for managing data loss in software demodulators
US8543893B2 (en) * 2009-09-02 2013-09-24 Agere Systems Llc Receiver for error-protected packet-based frame
KR101917174B1 (ko) * 2012-02-24 2018-11-09 삼성전자주식회사 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치
US9537779B2 (en) * 2013-10-11 2017-01-03 Huawei Technologies Co., Ltd. System and method for real-time traffic delivery
US20150169406A1 (en) * 2013-12-16 2015-06-18 Sandisk Technologies Inc. Decoding techniques for a data storage device
US9553608B2 (en) 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
CN105187156B (zh) * 2015-06-12 2018-06-08 北京理工大学 一种前向纠错码处理器
US9448887B1 (en) * 2015-08-22 2016-09-20 Weka.IO Ltd. Distributed erasure coded virtual file system
US10037761B1 (en) * 2017-06-05 2018-07-31 Intel IP Corporation Audio decoder state update for packet loss concealment
CN107294544B (zh) * 2017-06-27 2020-09-01 唯思泰瑞(北京)信息科技有限公司 卷积码的前向纠错方法、装置及译码器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4726019A (en) * 1986-02-28 1988-02-16 American Telephone And Telegraph Company, At&T Bell Laboratories Digital encoder and decoder synchronization in the presence of late arriving packets
JPH07221789A (ja) * 1994-01-27 1995-08-18 Hitachi Ltd 連続データ伝送方法および連続データ伝送システム
CN1100396C (zh) * 1995-05-22 2003-01-29 Ntt移动通信网株式会社 语音解码器
JPH1198188A (ja) * 1997-09-22 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> パケット損失特性算出システムおよびそれを備えたパケット通信網
US6366959B1 (en) * 1997-10-01 2002-04-02 3Com Corporation Method and apparatus for real time communication system buffer size and error correction coding selection
FI109385B (fi) * 1999-04-01 2002-07-15 Nokia Corp Menetelmä ja laitteet digitaaliseen datasiirtoon
US7058568B1 (en) * 2000-01-18 2006-06-06 Cisco Technology, Inc. Voice quality improvement for voip connections on low loss network
US6757654B1 (en) * 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
US7746953B1 (en) * 2000-09-12 2010-06-29 Alcatel-Lucent Usa Inc. Method and apparatus for asynchronous incremental redundancy transmission in a communication system
US6952407B2 (en) * 2001-02-22 2005-10-04 Snowshore Networks, Inc. Minimizing latency with content-based adaptive buffering
US7362770B2 (en) * 2002-09-06 2008-04-22 Lsi Logic Corporation Method and apparatus for using and combining sub-frame processing and adaptive jitter-buffers for improved voice quality in voice-over-packet networks
US7447978B2 (en) * 2004-11-16 2008-11-04 Nokia Corporation Buffering packets of a media stream
US9385843B2 (en) * 2004-12-22 2016-07-05 Qualcomm Incorporated Method and apparatus for using multiple modulation schemes for a single packet
EP1836854B1 (en) * 2005-01-10 2009-01-28 NTT DoCoMo Inc. Apparatus for predictively encoding a sequence of frames

Also Published As

Publication number Publication date
CA2607088A1 (en) 2006-11-23
EP1880472A2 (en) 2008-01-23
WO2006124504A3 (en) 2007-11-22
CA2607088C (en) 2012-01-03
EP1880472B1 (en) 2013-05-01
US7447983B2 (en) 2008-11-04
CN101176263A (zh) 2008-05-07
KR20080004603A (ko) 2008-01-09
EP1880472A4 (en) 2010-07-21
US20060259849A1 (en) 2006-11-16
CN101176263B (zh) 2012-06-13
WO2006124504A2 (en) 2006-11-23
JP2008541627A (ja) 2008-11-20
JP5065254B2 (ja) 2012-10-31

Similar Documents

Publication Publication Date Title
KR101004573B1 (ko) 순방향 에러 정정 코드 디코딩을 위한 시스템 및 방법
US8855145B2 (en) Jitter buffer
US9246644B2 (en) Jitter buffer
US8555146B2 (en) FEC streaming with aggregation of concurrent streams for FEC computation
JP5847577B2 (ja) より低いレベルのパケット構造から導かれる記号識別子を用いた放送チャネル上の高品質ストリーム保護
US8356232B2 (en) Method and apparatus for encoding and decoding data
US11424861B2 (en) System and technique for sliding window network coding-based packet generation
US8948213B2 (en) Jitter buffer
JP2009273123A (ja) 待ち行列ベースのデータ検出および復号のシステムおよび方法
JP3701956B2 (ja) パケット中継装置及びその方法と、パケット受信装置及びその方法と、パケット中継プログラム及びそのプログラムを記録した記録媒体と、パケット受信プログラム及びそのプログラムを記録した記録媒体
WO2008042586A2 (en) Method and apparatus for encoding and decoding data
US7020821B2 (en) Redundant packet telecommunication network system using minimum hamming distances to construct a final estimate of a original codeword
CN110535554B (zh) 一种数据块的编译码方法及装置
JPH1118086A (ja) 画像通信方法および装置
US20080130678A1 (en) Method And Devices For Providing Protection In Packet Switched Communication Networks
JPH05335973A (ja) ビタビ復号器及び畳み込み符号の復号器
KR20190043060A (ko) 멀티미디어 통신 시스템에서 응용 계층 순방향 오류 정정 방식을 사용하여 미디어 데이터를 송수신하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee