KR101004573B1 - 순방향 에러 정정 코드 디코딩을 위한 시스템 및 방법 - Google Patents
순방향 에러 정정 코드 디코딩을 위한 시스템 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3723—Decoding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence 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) 도착에 포함된 정보를 사용하여, 순방향 에러 정정 코드들의 디코더들의 성능을 향상시킬 수 있는 시스템들 및 방법들이 개시되었다. 개시된 실시예들의 시스템들 및 방법들은 일반적으로, 연속적 비트들 혹은 정보 프레임들의 디코딩에서 상태 정보를 유지하는 디코더들에 적용가능하다. 늦은 패킷에 포함된 정보가 원래 정시에 도착했고 통상적 방식으로 디코딩되었다면 디코더가 가졌을 상태와 재계산된 상태가 정확히 같으므로, 본 출원서에 개시된 시스템들 및 방법들은 디코더의 성능(즉, 비트 에러 레이트)을 향상시킬 수 있다. 사실상, 늦은 패킷 도착에 후속하는 디코더 상태의 업데이트는 디코더의 상태에 늦은 패킷 삭제 효과의 파급을 적시에 종료한다.
패킷 디코딩 시스템, 순방향 에러 정정 디코더, 늦은 패킷, 플레이아웃 시간, 비트/프레임 버퍼, 디코더 상태 버퍼, 컨볼루션 에러 정정 코드, 비터비 디코더, 패킷 수신 버퍼
Description
패킷 네트워크들에서, 예를 들어, 음성, 비디오, 및 오디오와 같은, 비실시간 데이터 신호들과 실시간 데이터 신호들은, 패킷화되어 패킷 네트워크를 통해 전송되기 전에 에러 정정 코드들로 인코딩될 수 있다. 이것은 다양한 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)
- 패킷 디코딩 시스템에 있어서,순방향 에러 정정 디코더(forward error correcting decoder)로서, 순방향 에러 정정 코드로 코딩된 정보를 포함하는 수신된 패킷들을 디코딩하고, 상기 수신된 패킷들에 의해 포함된 상기 정보의 디코딩에 후속하는 상기 순방향 에러 정정 디코더의 일련의 상태들을 나타내는 상태 정보를 유지하도록 구성된 순방향 에러 정정 디코더; 및미리 정의된 플레이아웃(playout) 시간에 후속하여 상기 패킷 디코딩 시스템에 도착하는 늦은 패킷(late packet)에 포함되는 정보에 적어도 부분적으로 기초되는 상기 순방향 에러 정정 디코더의 상기 상태 정보를 업데이트하도록 구성되는 늦은-패킷-도착 프로세싱부를 포함하고,상기 늦은-패킷-도착 프로세싱부는,(i) 상기 순방향 에러 정정 디코더에 제공된 상기 정보의 최근 이력(history)을 저장하도록 구성되는 비트/프레임 버퍼;(ⅱ) 상기 늦은 패킷의 도착에 응답하여 상기 비트/프레임 버퍼를 업데이트하도록 구성되는 비트/프레임-버퍼 업데이트부;(ⅲ) 상기 순방향 에러 정정 디코더의 상태들의 최근 이력을 저장하도록 구성되는 디코더 상태 버퍼; 및(ⅳ) 상기 비트/프레임 버퍼의 상기 업데이트된 정보에 적어도 부분적으로 기초하여 상기 순방향 에러 정정 디코더의 과거 상태들을 재귀적으로(recursively) 재계산함으로써 상기 디코더 상태 버퍼를 업데이트하도록 구성되는 디코더-상태-버퍼 업데이트부를 포함하고,상기 비트/프레임 버퍼의 상기 업데이트된 정보는 상기 늦은 패킷에 포함된 정보에 적어도 부분적으로 기초하는, 패킷 디코딩 시스템.
- 삭제
- 제 1 항에 있어서, 상기 비트/프레임 버퍼 업데이트부는, 상기 늦은 패킷의 상기 정보가 대응하는 적어도 하나의 시간 시기(time epoch)를 결정하고, 해당 시간 시기들에 대응하는 상기 비트/프레임 버퍼에 임의로 존재하는 엔트리들을, 상기 늦은 패킷의 상기 대응하는 정보로 대체하도록 구성되는, 패킷 디코딩 시스템.
- 삭제
- 삭제
- 제 1 항에 있어서, 상기 순방향 에러 정정 디코더는 컨볼루션(convolutional) 에러 정정 코드들로 인코딩된 정보를 디코딩하도록 구성되는 비터비 디코더인, 패킷 디코딩 시스템.
- 제 1 항에 있어서, 상기 순방향 에러 정정 디코더에 제공되기 전에 수신된 패킷들을 수신하여 버퍼링하도록 구성되는 패킷 수신 버퍼를 더 포함하는 패킷 디코딩 시스템.
- 순방향 에러 정정 코드를 사용하여 코딩된 복수의 수신된 패킷들에 포함되는 정보를 디코딩하는 단계;상기 복수의 수신된 패킷들 각각에 포함된 상기 정보의 디코딩에 후속하는 일련의 상태들을 나타내는 상태 정보를 유지하는 단계;상기 순방향 에러 정정 코드를 사용하여 코딩된 정보를 포함하고, 또한 미리 정의된 플레이아웃 시간에 후속하여 도착하는 늦은 패킷을 수신하는 단계; 및상기 늦은 패킷에 포함된 상기 정보에 적어도 부분적으로 기초하여 상기 상태 정보를 업데이트하는 단계를 포함하고,상기 상태 정보 업데이트 단계는,상기 늦은 패킷에 포함된 상기 정보에 적어도 부분적으로 기초하여 비트/프레임 버퍼를 업데이트하는 단계와,상기 비트/프레임 버퍼의 상기 업데이트된 정보에 적어도 부분적으로 기초하여 디코더의 과거 상태 정보를 재귀적으로 재계산함으로써, 디코더 상태 버퍼를 업데이트하는 단계를 포함하며,상기 비트/프레임 버퍼는 디코딩된 상기 정보의 최근 이력을 홀드(hold)하고, 상기 디코더 상태 버퍼는 상기 상태 정보의 최근 이력을 홀드하는, 방법.
- 삭제
- 제 8 항에 있어서, 상기 비트/프레임 버퍼의 업데이트 단계는, 상기 늦은 패킷의 상기 정보에 대응하는 시간 시기들을 결정하는 단계, 및 해당 시간 시기들에 대응하는 상기 비트/프레임 버퍼에 임의로 존재하는 엔트리들을, 상기 늦은 패킷의 상기 대응하는 정보로 대체하는 단계를 포함하는, 방법.
- 삭제
- 삭제
- 제 8 항에 있어서, 상기 순방향 에러 정정 코드는 컨볼루션 에러 정정 코드인, 방법.
- 제 8 항에 있어서, 상기 복수의 수신된 패킷들에 포함된 상기 정보가 디코딩되기 전에 상기 복수의 수신된 패킷들을 버퍼링하는 단계를 더 포함하는 방법.
- 삭제
- 패킷 디코딩 시스템에 있어서,순방향 에러 정정 디코더로서, 순방향 에러 정정 코드로 코딩되는 정보를 포함하는 수신된 패킷들을 디코딩하고, 상기 수신된 패킷들에 의해 포함된 상기 정보의 디코딩에 후속하는 상기 순방향 에러 정정 디코더의 일련의 상태들을 나타내는 상태 정보를 유지하도록 구성되는 순방향 에러 정정 디코더;상기 순방향 에러 정정 디코더에 제공된 상기 정보의 최근 이력을 저장하도록 구성되는 비트/프레임 버퍼;상기 순방향 에러 정정 디코더의 상태들의 최근 이력을 저장하도록 구성되는 디코더 상태 버퍼;미리 정의된 플레이아웃 시간에 후속하여 상기 패킷 디코딩 시스템에 도착하고, 늦은 패킷 정보를 포함하는 늦은 패킷의 도착에 응답하여, 상기 비트/프레임 버퍼를 업데이트하도록 구성되는 비트/프레임-버퍼 업데이트부;상기 비트/프레임 버퍼의 상기 업데이트된 정보에 적어도 부분적으로 기초하여 상기 순방향 에러 정정 디코더의 과거 상태들을 재귀적으로 재계산함으로써 상기 디코더 상태 버퍼를 업데이트하도록 구성되는 디코더-상태-버퍼 업데이트부; 및상기 디코더 상태 버퍼의 상기 업데이트된 정보 및 상기 비트/프레임 버퍼의 상기 업데이트된 정보에 적어도 부분적으로 기초하여 상기 순방향 에러 정정 디코더의 상기 상태 정보를 업데이트하도록 구성되는 디코더-상태 업데이트부를 포함하는, 패킷 디코딩 시스템.
- 제 16 항에 있어서, 상기 비트/프레임-버퍼 업데이트부는, 상기 늦은 패킷의 상기 늦은 패킷 정보가 대응하는 시간 시기들을 결정하고, 해당 시간 시기들에 대응하는 상기 비트/프레임 버퍼에 임의로 존재하는 엔트리들을, 상기 늦은 패킷 정보로 대체하도록 구성되는, 패킷 디코딩 시스템.
- 삭제
- 제 16 항에 있어서, 상기 순방향 에러 정정 디코더는 컨볼루션 에러 정정 코드들로 인코딩된 정보를 디코딩하도록 구성되는 비터비 디코더인, 패킷 디코딩 시스템.
- 제 16 항에 있어서, 상기 순방향 에러 정정 디코더에 제공되기 전에, 패킷들을 수신하고, 수신된 패킷들을 버퍼링하도록 구성되는 패킷 수신 버퍼를 더 포함하는 패킷 디코딩 시스템.
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)
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)
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 |
-
2005
- 2005-05-13 US US11/128,986 patent/US7447983B2/en active Active
-
2006
- 2006-05-11 CA CA2607088A patent/CA2607088C/en not_active Expired - Fee Related
- 2006-05-11 CN CN2006800165417A patent/CN101176263B/zh not_active Expired - Fee Related
- 2006-05-11 WO PCT/US2006/018215 patent/WO2006124504A2/en active Application Filing
- 2006-05-11 EP EP06770218.3A patent/EP1880472B1/en not_active Not-in-force
- 2006-05-11 JP JP2008511354A patent/JP5065254B2/ja not_active Expired - Fee Related
- 2006-05-11 KR KR1020077026393A patent/KR101004573B1/ko not_active IP Right Cessation
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 |