KR20060004198A - 이동통신 시스템에서 블록 디인터리버 버퍼의 운용 방법및 장치 - Google Patents

이동통신 시스템에서 블록 디인터리버 버퍼의 운용 방법및 장치 Download PDF

Info

Publication number
KR20060004198A
KR20060004198A KR1020040053213A KR20040053213A KR20060004198A KR 20060004198 A KR20060004198 A KR 20060004198A KR 1020040053213 A KR1020040053213 A KR 1020040053213A KR 20040053213 A KR20040053213 A KR 20040053213A KR 20060004198 A KR20060004198 A KR 20060004198A
Authority
KR
South Korea
Prior art keywords
buffer
deinterleaver
frames
data
size
Prior art date
Application number
KR1020040053213A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020040053213A priority Critical patent/KR20060004198A/ko
Priority to US11/176,193 priority patent/US20060013342A1/en
Publication of KR20060004198A publication Critical patent/KR20060004198A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B14/00Transmission systems not characterised by the medium used for transmission
    • H04B14/02Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation
    • H04B14/04Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • 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
    • H03M13/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/2707Simple row-column interleaver, i.e. pure block interleaving
    • 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
    • H03M13/2782Interleaver implementations, which reduce the amount of required interleaving memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • 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/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

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)

Abstract

본 발명은, 디인터리버를 포함하는 이동통신 시스템에서, 상기 디인터리버의 버퍼를 하나의 디인터리버 테이블을 사용하여 운용하기 위한 방법에 있어서, 상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하는 과정과, 소정의 크기로 인터리빙된 데이터를 수신하여 상기 데이터의 프레임들을 순서대로 상기 디인터리버의 버퍼에 저장하는 과정과, 상기 디인터리버의 버퍼에 저장된 데이터의 프레임들을 디인터리빙하는 과정과, 상기 디인터리버 버퍼의 서브 버퍼별로 복호한 후 상기 복호한 프레임들을 각각 호스트로 올린 후 상기 프레임들이 올려짐에 따라 비워진 각 버퍼들에 새로운 프레임들을 저장하는 과정을 포함하는 것을 특징으로 한다.
CDMA 1x Rev. D, 블록 인터리버, 디인터리버, RS 복호, 디인터리버 버퍼.

Description

이동통신 시스템에서 블록 디인터리버 버퍼의 운용 방법 및 장치{METHOD AND DEVICE FOR MANAGEMENT BUFFER OF BLOCK DEINTERLEAVER IN MOBILE COMMUNICATION SYSTEM}
도 1은 이동통신 시스템에서 외부 부호화를 도시한 도면,
도 2는 이동통신 시스템에서 디인터리버의 버퍼의 구조를 도시한 도면,
도 3은 본 발명의 바람직한 실시예에 따른 이동통신 시스템에서 64개의 프레임을 나타내는 인덱스를 도시한 도면,
도 4는 본 발명의 바람직한 제1실시예에 따른 이동통신 시스템에서 버퍼에 저장된 데이터를 디인터리빙 하는 일 예를 도시한 도면,
도 5는 본 발명의 바람직한 제1실시예에 따른 이동통신 시스템에서 버퍼에 저장된 데이터를 디인터리빙하는 다른 예를 도시한 도면,
도 6은 본 발명의 바람직한 제1실시예에 따른 디인터리버 버퍼의 운용 동작을 도시한 흐름도,
도 7은 본 발명의 바람직한 제1실시예에 따라 디인터리버에 의한 버퍼 주소 테이블 변환을 도시한 도면,
도 8 및 도 9는 본 발명의 바람직한 실시예들에 따라 삼각형 변환 방법에 사 용되는 C 코드의 일 예들을 도시한 도면,
도 10은 본 발명의 바람직한 제2실시예에 따른 방송서비스 시스템의 디인터리버에서 62개 프레임 크기로 구성된 버퍼의 일예를 도시한 도면,
도 11은 본 발명의 바람직한 제2실시예에 따라 디이터리버 버퍼의 운용 동작을 도시한 흐름도.
본 발명은 블록 인터리버/디인터리버를 사용하는 시스템에 관한 것으로서, 특히 수신단의 디인터리버에 필요로 하는 버퍼를 운용하기 위한 방법 및 장치에 관한 것이다.
일반적으로 이동통신 시스템에서 단말기와 수신기는 무선 링크를 통해 무선 통신을 수행하는데, 이러한 무선 링크의 특성중의 하나는 버스트 에러가 발생하는 빈도가 유선 통화방식보다 매우 높다는 것이다. 이를 위해 단말기 및 기지국의 송신/수신단에는 블록 인터리버/디인터리버를 사용하여 버스트 에러를 랜덤 에러화하기 위해 데이터를 연속적이 아닌 특정패턴으로 순서를 바꿔서 송/수신한다. 이러한 블록 인터리버/디인터리버는 버퍼로 구성되며, 입력 방향은 세로 방향으로 쓰여지며, 출력은 가로 방향으로 이루어진다.
한편, 이동통신 시스템은 음성 위주의 시스템에서 고속 데이터 서비스를 위 한 시스템으로 발전하였으며, 이러한 시스템의 일예로 동기방식의 코드분할다중접속(CDMA) 이동통신 방식 규격인 CDMA2000 1x로 발전하게 되었다. 또한 CDMA2000 1x은 음성 및 고속의 패킷 데이터 서비스뿐만 아니라 다양한 멀티미디어/방송 서비스를 제공할 수 있게 되었다.
CDMA2000 1x Rev. D는 멀티/방송 서비스(BCMCS)를 제공하는 이동통신 방식 규격으로서, 첨부된 도 1에 도시된 바와 같이, 외부 부호 버퍼를 사용하여 외부 부호화를 수행하게 된다.
상기 도 1을 참조하면, 입력되는 채널 비트의 수는 RS 부호화 율에 따라 각각 100320/109440/118560/127680 비트가 1.28초 동안 역다중화기(DEMUX)(10)에 들어온다,
상기 역다중화기(10)에는 4개의 서브 버퍼(sub-buffer)(20a, 20b, 20c, 20d)의 각각에 연결된 외부 부호화기(30a, 30b, 30c, 30d)와, 외부 부호화된 정보들을 다시 다중화하는 다중화기(MUX)(40)가 연결되어 있다. 여기서 외부 부호화된 정보들은 상기 다중화기(40)를 거쳐 내부 부호화기(50)를 거치게 된다.
도 2는 이동통신 시스템에서 디인터리버의 버퍼의 구조를 도시한 도면이다.
도 2를 참조하면, 각 서브 버퍼(20a, 20b, 20c, 20d)는 16프레임으로 구성되며, 이중 k 프레임 정보에 의해 만들어진 프레임이고, 나머지 16-k 프레임은 RS 부호에 의해 생성된 패리티 프레임이다. 이때, BCMCS에서 k∈{11, 12, 13, 14}로 정의된다.
역다중화기(10)로 입력되는 채널 비트들은 차례로 도 3에 도시된 맨 왼쪽 버 퍼 블록에서 위에서부터 차례로 정보(information) 프레임들에 저장된다. 이후의 64프레임의 데이터들은 내부 부호화되기 위해서 도 3에 도시된 맨 오른쪽 버퍼 블록에서 각 서브 버퍼(20a, 20b, 20c, 20d)의 첫 번째 프레임, 두 번째 프레임 등의 순서로 전송된다. 이러한 동작을 구체적으로 설명하면 다음과 같다.
수신단에는 64 프레임의 데이터가 모두 수신되어 내부 복호기를 통해 각각 내부 복호(inner decoding)한 후 복호된 데이터를 버퍼에 모두 저장하고, 4개의 서브 버퍼별로 RS 복호를 수행하여 데이터의 오류를 정정한다. 그런 다음 상기 도 3에 도시된 맨 왼쪽의 버퍼 블록에서 서브 버퍼들에 순서대로 각 서브 버퍼내의 정보 프레임들을 차례로 출력 버퍼에 저장한다. 그러면 호스트는 출력 버퍼의 데이터를 읽어 간다. 이에 따라 비워진 버퍼에는 차례대로 수신된 데이터들을 저장한다. 여기서 64프레임의 데이터가 모두 수신되면, 1번으로 다시 돌아간다.
그런데 상기 동작을 수행하려면 방송 서비스(BCMCS) 수신단의 디인터리버는 송신단 인터리버 버퍼의 크기에 출력 버퍼를 추가한 만큼의 버퍼 크기를 필요로 한다. 또한, 디인터리버 버퍼에서 출력 버퍼로 데이터가 임시로 저장된 후에 호스트가 데이터를 출력 버퍼에서 읽어가는 구조로 되어있기 때문에 데이터의 복사 작업을 필요로 하게 된다.
한편, 상기 도 2에 도시된 바와 같이, 수신단은 각 서브 버퍼별로 RS 부호화가 되어 있으므로, 64개의 서브 버퍼 모두가 채워지기 전에 RS 복호가 가능하다. 이러한 수신단으로 60 프레임이 수신되면, 서브 버퍼 0(sub-buffer 0)가 모두 채워졌으므로 이 서브 버퍼에 대한 RS 복호는 가능하게 된다. 이와 같이 서브버퍼 1(sub-buffer 1)은 61 프레임이 수신될 때, 서브 버퍼 2(sub-buffer 2)는 62 프레임이 수신될 때 RS 복호가 가능하다. 이러한 특성을 이용하면, 64 프레임이 모두 채워지기 전에 RS 복호가 일부 수행될 수 있으며, 각 복호 과정 후 바로 호스트에게 데이터를 전달 할 수 있도록 서브 버퍼의 데이터를 출력 버퍼로 옮길 수 있다. 그런데 이러한 특성은 수신단의 디인터러비 버퍼의 크기를 줄이게 하며, 상기와 같은 구조는 모든 데이터가 디인터리버에 쌓이기 전에 복호가 가능한 복호기 구조에 적용될 수 있다. 따라서 복호가 수행된 데이터는 호스트가 데이터를 읽는 시간을 확보하기 위해 출력버퍼를 사용하게 되며, 이는 데이터의 복사과정을 필요로 하게 된다. 그러나, 디인터리버 버퍼의 크기를 필요로 하는 크기보다 하나 더 크게 해서 버퍼를 운용하면 출력 버퍼를 필요로 하지 않는다. 즉, 출력 버퍼를 디인터리버 버퍼내에 둠으로써 불필요한 데이터의 복사과정을 제거할 필요가 있다.
따라서, 본 발명의 목적은 송신단에서 블록 인터리버가 사용되었을 때, 블록 인터리버 크기보다 작은 크기로 디인터리버 버퍼 구성하여 디인터리버의 버퍼를 효율적으로 운용하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 호스트가 복호된 데이터를 읽는 시간을 확보하기 위한 출력버퍼를 디인터리버 버퍼 내에 둠으로써 불필요한 데이터의 복사과정을 생략하기 위한 디인터리버의 버퍼 운용 방벙 및 장치를 제공함에 있다.
상기 이러한 본 발명의 목적들을 달성하기 위한 방법은, 이동통신 시스템에 서, 디인터리버의 버퍼를 하나의 디인터리버 테이블을 사용하여 운용하기 위한 방법으로서, 상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하는 과정과, 소정의 크기로 인터리빙된 데이터를 수신하여 상기 데이터의 프레임들을 순서대로 상기 디인터리버의 버퍼에 저장하는 과정과, 상기 디인터리버의 버퍼에 저장된 데이터의 프레임들을 디인터리빙하는 과정과, 상기 디인터리버 버퍼의 서브 버퍼별로 복호한 후 상기 복호한 프레임들을 각각 호스트로 올린 후 상기 프레임들이 올려짐에 따라 비워진 각 버퍼들에 새로운 프레임들을 저장하는 과정을 포함하는 것을 특징으로 한다.
그리고 본 발명의 목적들을 달성하기 위한 다른 방법은, 이동통신 시스템에서, 디인터리버의 버퍼를 하나의 디인터리버 테이블을 사용하여 운용하기 위한 방법으로서, 상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하는 과정과, 소정의 크기로 인터리빙된 데이터를 수신하여 상기 데이터의 프레임들을 순서대로 상기 디인터리버의 버퍼에 저장하는 과정과, 상기 디인터리버의 버퍼에 저장된 데이터의 프레임들을 디인터리빙하는 과정과, 상기 디인터리버 버퍼의 서브 버퍼별로 복호하는 과정과, 상기 매 프레임마다 하나의 버퍼 인덱스의 위치의 복호된 프레임을 호스트로 올릴 준비를 하고, 다른 버퍼 인덱스 위치의 복호된 프레임을 호스트로 올린 후 상기 다른 버퍼 인덱스의 위치의 복호된 프레임이 올려짐에 따라 비워진 버퍼 인덱스 위치에 새로운 프레임을 저장하는 과정을 포함하는 것을 특징으로 한다.
그리고 본 발명의 목적들을 달성하기 위한 또 다른 방법은, 이동통신 시스템 에서, 디인터리버의 버퍼를 두개의 디인터리버 테이블을 사용하여 운용하기 위한 방법으로서, 상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하는 과정과, 소정의 크기로 인터리빙된 홀 수번째 데이터를 수신하여 상기 수신된 홀 수번째 데이터의 프레임들을 순서대로 제1인터리버 테이블 상의 상기 디인터리버의 버퍼에 저장하는 과정과, 소정의 크기로 인터리빙된 짝수 번째 데이터를 수신하여 상기 수신된 짝수 번째 데이터의 프레임들을 순서대로 제2인터리버 테이블 상의 상기 인터리버의 버퍼에 저장하는 과정과, 상기 디인터리버의 버퍼들에 저장된 데이터의 프레임들을 디인터리빙하는 과정과, 상기 디인터리버 버퍼들의 서브 버퍼별로 복호하는 과정과, 상기 매 프레임마다 하나의 버퍼 인덱스 위치의 복호된 프레임을 호스트로 올릴 준비를 하고, 다른 버퍼 인덱스 위치의 복호된 프레임을 호스트로 올린 후 상기 다른 버퍼 인덱스의 위치의 복호된 프레임이 올려짐에 따라 비워진 버퍼 인덱스 위치에 새로운 프레임을 저장하는 과정과, 나머지 버퍼 영역에서 다른 테이블로부터 비워진 버퍼 인덱스를 알아내어 자신의 버퍼의 위치에 기록하고, 상기 기록된 위치를 자신의 테이블로 저장하는 과정을 포함하는 것을 특징으로 한다.
한편, 본 발명의 목적들을 달성하기 위한 장치는, 이동통신 시스템에서, 디인터리버의 버퍼를 운용하기 위한 장치로서, 상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하고, 소정의 크기로 인터리빙된 데이터를 수신하여 상기 데이터의 프레임들을 순서대로 상기 디인터리버의 버퍼에 저장하고, 상기 디인터리버의 버퍼에 저장된 데이터의 프레임들을 디인터리빙하는 디인터리버 와, 상기 디인터리버 버퍼의 서브 버퍼별로 복호하는 복호기를 포함하며, 상기 디인터리버는 상기 복호한 프레임들을 각각 호스트로 올린 후 상기 프레임들이 올려짐에 따라 비워진 각 버퍼들에 새로운 프레임들을 저장함을 특징으로 한다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
후술되는 본 발명은 동기방식의 CDMA 이동통신 방식규격인 cdma2000 1x Rev. D 에서 사용되는 물리채널규격에 관련된 분야로서 방송/멀티캐스트 서비스(broadcast and multicast service, BCMCS)에 사용되는 리드-솔로몬 (Reed-Solomon 이하, RS라 약칭함) 부호의 버퍼에 적용되면 RS 복호 후 임시로 데이터를 저장하는 출력 버퍼(output buffer)를 디인터리버 버퍼 내에 두어 불필요한 데이터의 복사 작업을 없앰으로써 수신단의 효율을 개선하고자 한다. 또한 이러한 기술은 동기방식 CDMA 시스템인 cdma2000 1x Rev. D에만 국한되지 안으며, 또 다른 동기방식 CDMA 시스템인 HRPD Rev. A 의 BCMCS와 같이 유사한 형태의 버퍼를 지닌 시스템에 대해서 일반적으로 적용이 가능함에 유의하여야 한다.
또한, 본 발명의 바람직한 실시예는 한 개의 디인터리버 테이블을 사용하는 방법과, 두 개의 디인터리버 테이블을 사용하는 방법으로 구분된다. 이러한 방법들 에서 우선, 한 개의 디인터리버 테이블을 사용하는 방법을 2가지 동작으로 나누어 설명하기로 하며, 그 첫 번째는 출력 버퍼를 고려하지 않은 61 프레임 크기의 디인터리버 버퍼 동작이고, 두 번째는 출력 버퍼를 고려하여 62 프레임 크기의 디인터리버 버퍼 동작을 첨부된 도면을 참조하여 설명하기로 한다.
도 3은 본 발명의 바람직한 실시예에 따른 이동통신 시스템에서 64개의 프레임을 나타내는 인덱스를 도시한 도면이고, 도 4는 본 발명의 바람직한 제1실시예에 따른 이동통신 시스템에서 버퍼에 저장된 데이터를 디인터리빙하는 일 예를 도시한 도면이다.
상기 도 3 및 도 4를 참조하면, 방송서비스 시스템에서 실제 61개의 버퍼를 사용하여 디인터리버 버퍼를 구성하며, 'Buffer_Addr[]'은 실제 61 프레임 크기의 버퍼를 나타내는 값이다. 예를 들어, 인덱스가 14(index =14)이고, 버퍼 어드레스가 52(Buffer_Addr[14]=52)라고 하면, 이는 15번째 수신 프레임이 실제 디인터리버 버퍼의 53번째 위치에 저장되어 있음을 의미한다.
상기 도 4의 (A)와 같이 버퍼 인덱스에 따라 차례로 데이터가 버퍼에 저장되면, 저장된 데이터를 RS 복호하기 위해 (B)에 도시된 바와 같이 디인터리빙을 한다. 이러한 디인터리빙 후 RS 복호기는 인덱스 0 ~ 인덱스 15에 저장된 프레임들을 복호한다. 첫 번째 RS 복호 동작을 수행하기 위해서는 총 61개의 버퍼만이 필요로 한다.
이와 같이 복호 과정이 수행되면, 인덱스 0 프레임은 호스트로 올려지게 되어 버퍼 하나가 비워지며, 이에 따라 62번째 수신 프레임은 이 비워진 버퍼에 채워 지게 된다. 이러한 동작은 도 4의 (B)에서 맨 왼쪽 점선으로 표시된다.
이후 2번째 서브 버퍼의 RS 복호가 수행되고, 같은 형태로 63, 64 번째 프레임이 수신되면서 RS 복호 동작을 수행한다. 이에 따라 매 프레임마다 하나의 버퍼가 비워지게 되고, 그 비워진 위치에 새로운 프레임 데이터가 저장되는 과정을 반복하게 되어 수신 버퍼가 채워지게 된다. 이러한 과정을 통해 수신 버퍼가 채워진 상태는 도 4의 (C)에 도시된 바와 같다. 이후에 이루어지는 동작은 상기와 같은 원리로 이루어지며, 도 4의 (D)에 도시된 바와 같이 디인터리빙되며, 마찬가지로 이후 동작은 같은 원리로 반복된다.
이와 같이 61개 크기의 버퍼를 사용하여 64 프레임 크기로 인터리빙된 신호를 복호해 낼 수 있다. 그러나 만일 호스트가 데이터를 읽는데 시간이 필요하여 데이터를 임시로 저장하는 출력 버퍼를 필요로 할 경우, 복호된 데이터는 바로 호스트로 전달되는 것이 아니라, 상기 출력 버퍼를 거쳐서 전달된다. 이때, 매 프레임마다 데이터는 출력 버퍼로 복사된다. 이와 같은 출력 버퍼로의 복사 동작은 62개 프레임 크기의 버퍼 운용을 통해 피할 수 있다. 즉, 출력 버퍼를 디인터리버 버퍼 안으로 포함시킨다. 하기에서는 62개 프레임 크기의 버퍼 운용 방법에 대해 도면을 참조하여 설명하기로 한다.
도 5는 본 발명의 바람직한 제1실시예에 따른 이동통신 시스템에서 버퍼에 저장된 데이터를 디인터리빙하는 다른 예를 도시한 도면이다.
상기 도 5의 (A)에 도시된 바와 같이 차례로 데이터가 버퍼에 저장되면, 저장된 데이터를 RS 복호하기 위해, 도 5의 (B)에 도시된 바와 같이 디인터리빙을 한 다. 디인터리빙을 수행한 후 RS 복호기는 인덱스 0 ~ 인덱스 15에 저장된 프레임들을 복호한다. 이러한 첫 번째 RS 복호 동작을 수행하기 위해서는 총 61개의 버퍼만이 필요하다.
상기 복호 과정을 수행한 후, 인덱스 0의 프레임은 호스트로 올려지게 되어 버퍼 하나가 비워진다. 그러나 복호된 0 번째 프레임 데이터가 호스트에 의해 모두 읽힐 때까지의 시간을 보장하기 위해 도 5의 (B)와 같이 인덱스 0이 호스트에 의해 읽히는 동안 62번째 수신 프레임은 62번째 실제 버퍼에 저장된다 (Buffer_Addr[61]=61). 이후, 2번째 서브 버퍼의 RS 복호가 수행되고, 63번째 수신 프레임은 비워진 인덱스 0 버퍼에 채워지게 된다. 이러한 동작은 도 5의 (B)에서 맨 왼쪽 점선과 같이 나타낼 수 있다.
상기와 같은 형태로 64번째 프레임이 수신되면 RS 복호 동작을 수행한다. 매 프레임 마다 하나의 버퍼는 호스트에 의해 읽혀질 준비를 하고(출력 버퍼 역할), 또 다른 하나의 버퍼가 비워지고, 상기 비워진 위치에 새로운 프레임데이터가 저장되는 과정을 반복한다. 이에 따라 도 5의 (C)에 도시된 바와 같이 수신 버퍼가 채워지게 된다. 여기서 상기 도 6에 도시된 (B)와 (D)를 연결하는 화살표는 (C)에서 (D)로 디인터리빙 후 남아 있는 버퍼의 주소를 나타낸다.
이후 동작은 같은 원리로 이루어지며, 도 5의 (D)에 도시된 바와 같이 디인터리빙된다. 마찬가지로 이후 동작은 상기와 같은 원리로 반복된다.
이와 같은 디인터리버 버퍼의 동작에 대해 첨부된 흐름도를 참조하여 설명하면 다음과 같다.
도 6은 본 발명의 바람직한 제1실시예에 따른 디인터리버 버퍼의 동작을 나타낸 흐름도이다.
601단계에서 디인터리버는 초기화를 수행한다. 603단계에서 디인터리버는 호스트가 읽어야 버퍼 주소(FRM_R_ADR)를 상기 도 5에 도시된 바와 같은 버퍼 어드레스(Buffer_Addr[])로 설정하고 (FRM_R_ADR=ADR[R_IDX]), 데이터가 버퍼에 입력되어야 할 버퍼 주소(FRM_W_ADR)를 1프레임 크기의 시간 지연을 위한 저장 장소(old_R_ADR)로 설정한다.
그런 다음 605단계에서 프레임 카운터(FRM_CNT)가 60인지를 확인한다. 이때 프레임 카운터가 60이면, 607단계에서 디인터리버 함수(Deinterleaver())를 설정한 후, 609단계에서 16번째의 버퍼의 주소(ADR[15])를 데이터 버퍼에 입력되어야 할 버퍼 주소(FRM_W_ADR)로 설정한다.
반면, 605단계에서 프레임 카운터가 60이 아니면, 611단계에서 프레임 카운터가 61인지를 확인한다. 만약, 61이면 713단계에서 32번째 버퍼의 주소(ADR[31])를 데이터가 버퍼에 입력되어야 할 버퍼 주소로 설정하고, 그렇지 않은 경우 615단계에서 프레임 카운터가 62인지를 확인한다. 만약, 프레임 카운터가 62인 경우 디인터리버는 48번째 버퍼의 주소(ADR[47])를 데이터가 버퍼에 입력되어야 할 주소로 설정한다. 그렇지 않은 경우에는 619단계에서 디인터리버는 프레임 카운터에 대한 버퍼의 주소를 데이터가 버퍼에 입력되어야 할 주소로 설정한다. 이와 같이 디인터리버는 상기 609단계, 613단계, 671단계, 619단계를 수행한 후 621단계로 진행한다.
621단계에서 디인터리버는 1프레임 크기의 시간 지연을 위한 저장 장소(old_R_ADR)을 호스트가 읽어야 할 버퍼의 주소(FRM_R_ADR)로 설정한다. 그런 다음 623단계에서 프레임 카운터 및 호스트가 읽어야 할 데이터 프레임 인덱스(R_IDX)를 "FRM_CNT=(FRM_CNT+1)%64), R_IDX=(R_IDX+1)%64"에 따라 설정한 후 603단계로 진행한다.
그러면 상술한 바와 같이 동작하는 디인터리버에 의한 버퍼 주소 테이블의 변환에 대해 설명하기로 한다.
도 7은 본 발명의 바람직한 제1실시예에 따라 디인터리버에 의한 버퍼 주소 테이블 변환을 도시한 도면이다.
상기 디인터리버는 하기 <수학식 1>과 같이 나타낼 수 있다.
Figure 112004030282058-PAT00001
상기 <수학식 1>에서 i는 위치 변환 전의 인덱스를 나타내고, g는 위치 변환 후의 인덱스를 나타낸다.
상기 도 7을 참조하면, (A)는 데이터가 버퍼에 저장된 상태를 나타낸 것이고, (B)는 버퍼에 저장된 데이터를 디인터리빙한 상태를 나타낸 것이다. 이렇게 (A)에서 (B)로 디인터리빙되는 위치를 변환하는 과정은 도 7의 (C)와 같이 도시된다. 여기서 0, 21, 42, 63 위치는 테이블 변환 전후에도 변하지 않는 위치를 나타낸다. 즉, 하기 <수학식 2>의 조건을 만족하는 위치들이다.
Figure 112004030282058-PAT00002
상기 <수학식 2>의 조건 외의 위치들은 상기 도 7의 (C)와 같이 삼각형의 형태로 위치를 변환한다. 예를 들어 도 7의 (A)의 "2"는 3행 1열의 위치에서 변환 후, 도 7 (B)의 1행 3열의 위치로 옮겨진다. 이러한 방법으로 "2→32→8→ 2" 와 같이 위치의 변환이 이루어진다. 이러한 변환 동작은 도 7 (C)의 긴 점선으로 표현된 삼각형 모양을 이룬다. 상기 <수학식 2>를 만족하는 상기 도 7에 도시된 바와 같이 검게 표시된 0, 21, 42, 63 위치를 제외한 60개의 위치 모두에서 삼각형 위치의 모양 변환을 이루어, 60/3 = 20 개의 삼각형 변환 형태를 이룬다. 이러한 삼각형 위치 변환 방법에 의한 디인터리버 구현은 첨부된 도 9의 C코드와 같다.
상기 도 8에 도시된 바와 같은 소스 코드에서 "if(now<next && present<before)"는 삼각형의 변환의 중복을 막기 위한 것이다. 예를 들어 "2→ 32→8→2" 와 같은 위치 변환은 한 번만 이루어 져야 하는데, 만일, "2" 위치에서 "2→32→8→2" 변환이 이루어 진 후, "32" 위치에서 "32→8→2→32" 라는 변환과 "8" 위치에서 "8→2→32→8" 의 변환이 또 다시 이루어 지면, 원하는 변환을 얻을 수 없게 된다. 따라서 "32→8→2→32" 와 "8→2→32→8" 와 같은 중복 변환을 막기 위해 "if (now<next && present<before)"을 둔다.
이와 같은 이유로 47 이후에서는 변환과정이 없기 때문에 전체 반복 루프는 47 이하까지만 되도록 "for(i=0: i<=47; i++)"과 같이 된다. 이러한 중복을 막기 위해 매번 next와 before 를 계산하지 않기 위해, "if(now<next && present<before)"를 통과하는 i위치를 기억하여 이 위치에서만 for문을 돌리도록 설정할 수 있다. BCMCS 경우 if 문을 통과하는 i 는 하기 <수학식 3>과 같이 나타낼 수 있다.
Figure 112004030282058-PAT00003
상기 <수학식 3>을 이용하여 구현한 인터리버에 대한 C코드는 첨부된 도 9에 도시된 바와 같다. 상기 C코드는 "next" 와 "before"의 계산을 하지 않음으로써 보다 효율적으로 인터리버를 구현할 수 있는 방법이다. 상기 도 10에 도시된 바와 같은 shuffle[]은 1bit array로 상기 <수학식 3>의 위치는 '1' 로 그 외의 위치는 '0' 으로 저장하고 있다. 그러므로 상기 도 8에 도시된 바와 같은 i 에 대해서만 위치 변경 연산을 취함으로써 동일한 결과를 얻을 수 있다.
상술한 바와 같은 본 발명의 제1실시예에서는 하나의 디인터리버 테이블을 사용하는 경우의 버퍼 운용 방법을 설명하였으나, 후술되는 본 발명의 제2실시예에서는 두개의 디인터리버 테이블을 사용하는 경우의 버퍼 운용 방법을 설명하기로 한다.
우선, 편의상 4개의 서브 버퍼로 이루어진 64 프레임의 버퍼 단위를 슈퍼 프레임이라 지칭한다. 그리고 2개의 테이블을 각각 테이블-A, 테이블-B라 칭한다. 디인터리버 테이블 2개는 각각 짝수 번째 입력 슈퍼 프레임과 홀수 번째 슈퍼 프레임 의 테이블로 이용된다. 예를 들어 n 번째 슈퍼 프레임에 디인터리버 테이블-A 가 사용되었다면, n+1 번째 슈퍼 프레임의 디인터리버 동작에는 테이블-B 가 사용된다.
도 10은 본 발명의 바람직한 제2실시예에 따른 방송서비스 시스템의 디인터리버에서 62개 프레임 크기로 구성된 버퍼의 일예를 도시한 도면이다. 여기서 (A) 및 (C)는 Buffer_Addr_A[]의 버퍼링 상태를 나타내고, (B) 및 (D)는 Buffer_Addr_B[]의 디코딩 상태를 나타낸다.
상기 도 10을 참조하면, 버퍼 테이블은 Buffer_Addr_A[] 와 Buffer_Addr_B[]가 교대로 사용된다. 각 프레임이 수신단에 들어올 때, 디인터리빙 동작을 수행하면서 Buffer_Addr_x[]를 구성한다. 즉, 첫번째 프레임은 상기 도 4에 도시된 바와 같은 Index 0에, 두번째 프레임은 16 위치에, 세번째 프레임은 32 위치에 저장한다. 이를 수학식으로 표현하면 하기 <수학식 4>와 같이 나타낼 수 있다.
Figure 112004030282058-PAT00004
상기 <수학식 4>를 이용하여 상기 도 10에 도시된 바와 같이 프레임 데이터 테이블을 구성하면, 첫번째 서브 버퍼는 Index = 0~15 인 버퍼를 그대로 복호하면 된다. 같은 방법으로, 두번째, 세번째, 네번째 서브 버퍼의 디코딩은 각각 Index = 16~31, 32~47, 48~63 의 버퍼를 각각 그대로 복호한다. 도 10에서 Index 47 과 63은 점선으로 된 화살표와 같이 각각 자신의 테이블의 Index 0 와 4 의 버퍼가 비워 졌을 때 이 버퍼에 각기 데이터를 저장함을 보인다. 그 밖의 영역에서는 도 10에 도시된 바와 같이 자신의 테이블이 아닌 서로 다른 테이블로부터 비워진 버퍼 영역을 알아내어 그 위치에 기록하고, 자신의 버퍼에 쓰여진 위치를 자신의 테이블로 저장한다. 이러한 동작을 첨부된 도 11에 도시된 바와 같은 흐름도를 참조하여 설명하기로 한다.
1101단계에서 디인터리버는 초기화를 수행한다. 그런 다음 1103단계에서 디인터리버는 데이터가 버퍼에 입력되어야 할 버퍼 주소(FRM_R_ADR)을 버퍼의 주소(Buffer_Addr_A[])로 설정한다.(FRM_R_ADR=ADR[TBL_IDX][R_IDX]) 그리고 데이터가 버퍼에 입력되어야 할 버퍼 주소(FRM_W_ADR)을 1프레임 크기의 시간 지연을 위한 저장 주소(old_R_ADR)로 설정한다.
1105단계에서 디인터리버는 프레임 카운터(FRM_CNT)값이 62(또는 63)인지를 확인한다. 이러한 조건에 만족하는 경우, 1106단계에서 디인터리버는 버퍼링 테이블 인덱스(W_TBL_IDX)를 디코딩 테이블 인덱스로 설정한 후 1109단계로 진행한다. 반면, 그렇지 않은 경우, 1107단계에서 디인터리버는 버퍼링 테이블 인덱스(W_TBL_IDX)를 (TBL_IDX+1)%2에 따라 설정한다.
1109단계에서 디인터리버는 버퍼링 테이블에 적는 프레임 인덱스(W_IDX)를 "
Figure 112004030282058-PAT00005
"에 따라 설정하고, 버퍼의 주소(ADR[W_TBL_IDX][W_IDX])는 데이터가 버퍼에 입력되어야 할 버퍼 주소(FRM_W_ADR)로 설정한다.
1111단계에서 디인터리버는 1프레임 코기의 시간 지연을 위한 저장 주소 (old_R_ADR)을 호스트가 읽어야 할 버퍼의 주소(FRM_R_ADR)로 설정한다. 그런 다음 1113단계에서 디인터리버는 프레임 카운터를 "(FRM_CNT+1)%64"에 따라 설정하고, 호스트가 읽어야 할 데이터 프레임 인덱스(R_IDX)를 "R_IDX =(R_IDX+1)%64"로 설정한다.
그런 다음 1115단계에서 프레임 카운터가 0인지를 확인하여 0인 경우, 디인터리버는 디코딩 테이블 인덱스(TBL_IDX)를 "(TBL_IDX+1)%2"에 따라 설정한 후 1103단계로 진행한다. 반면, 0인 아닌 경우, 디인터리버는 1103단계로 진행한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 발명청구의 범위뿐 만 아니라 이 발명청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 송신단에서 블록 인터리버가 사용되었을 때, 수신단의 블록 인터리버 크기보다 작은 크기로 디인터리버 버퍼를 구성함으로써 디인터리버 버퍼를 효율적으로 운용할 수 있으며, 호스트가 복호된 데이터를 읽는 시간을 확보하기 위한 출력버퍼를 디인터리버 버퍼 내에 둠으로써 불필요한 데이터의 복사과정을 생략시켜 줌으로써 필요한 메모리의 크기를 줄일 수 있고, 단말의 전력 소모를 감소할 수 있는 효과가 있다.

Claims (12)

  1. 이동통신 시스템에서, 디인터리버의 버퍼를 하나의 디인터리버 테이블을 사용하여 운용하기 위한 방법에 있어서,
    상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하는 과정과,
    소정의 크기로 인터리빙된 데이터를 수신하여 상기 데이터의 프레임들을 순서대로 상기 디인터리버의 버퍼에 저장하는 과정과,
    상기 디인터리버의 버퍼에 저장된 데이터의 프레임들을 디인터리빙하는 과정과,
    상기 디인터리버 버퍼의 서브 버퍼별로 복호한 후 상기 복호한 프레임들을 각각 호스트로 올린 후 상기 프레임들이 올려짐에 따라 비워진 각 버퍼들에 새로운 프레임들을 저장하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  2. 제1항에 있어서,
    상기 디인터리버의 버퍼는 4개의 상기 서브 버퍼로 구분되고, 64 프레임 크기로 인터리빙된 상기 데이터를 복호하기 위해 상기 호스트로 올려지는 데이터의 시간을 고려하지 않는 61 프레임 크기를 사용하여 구성된 버퍼임을 특징으로 하는 상기 방법.
  3. 제1항에 있어서, 상기 디인터리빙 과정은,
    삼각형 위치 변환 방법에 따라 상기 디이터리버 테이블 상의 상기 버퍼의 인덱스들의 위치를 변환함으로써 이루어짐을 특징으로 하는 상기 방법.
  4. 이동통신 시스템에서, 디인터리버의 버퍼를 하나의 디인터리버 테이블을 사용하여 운용하기 위한 방법에 있어서,
    상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하는 과정과,
    소정의 크기로 인터리빙된 데이터를 수신하여 상기 데이터의 프레임들을 순서대로 상기 디인터리버의 버퍼에 저장하는 과정과,
    상기 디인터리버의 버퍼에 저장된 데이터의 프레임들을 디인터리빙하는 과정과,
    상기 디인터리버 버퍼의 서브 버퍼별로 복호하는 과정과,
    상기 매 프레임마다 하나의 버퍼 인덱스의 위치의 복호된 프레임을 호스트로 올릴 준비를 하고, 다른 버퍼 인덱스 위치의 복호된 프레임을 호스트로 올린 후 상기 다른 버퍼 인덱스의 위치의 복호된 프레임이 올려짐에 따라 비워진 버퍼 인덱스 위치에 새로운 프레임을 저장하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  5. 제4항에 있어서,
    상기 디인터리버의 버퍼는 4개의 상기 서브 버퍼로 구분되고, 64 프레임 크기로 인터리빙된 상기 데이터를 복호하기 위해 상기 호스트로 올려지는 데이터의 시간을 고려한 62 프레임 크기를 사용하여 구성된 버퍼임을 특징으로 하는 상기 방법.
  6. 제4항에 있어서, 상기 디인터리빙 과정은,
    삼각형 위치 변환 방법에 따라 상기 디이터리버 테이블 상의 상기 버퍼의 인덱스들의 위치를 변환함으로써 이루어짐을 특징으로 하는 상기 방법.
  7. 이동통신 시스템에서, 디인터리버의 버퍼를 두개의 디인터리버 테이블을 사용하여 운용하기 위한 방법에 있어서,
    상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하는 과정과,
    소정의 크기로 인터리빙된 홀 수번째 데이터를 수신하여 상기 수신된 홀 수번째 데이터의 프레임들을 순서대로 제1인터리버 테이블 상의 상기 디인터리버의 버퍼에 저장하는 과정과,
    소정의 크기로 인터리빙된 짝수 번째 데이터를 수신하여 상기 수신된 짝수 번째 데이터의 프레임들을 순서대로 제2인터리버 테이블 상의 상기 인터리버의 버퍼에 저장하는 과정과,
    상기 디인터리버의 버퍼들에 저장된 데이터의 프레임들을 디인터리빙하는 과정과,
    상기 디인터리버 버퍼들의 서브 버퍼별로 복호하는 과정과,
    상기 매 프레임마다 하나의 버퍼 인덱스 위치의 복호된 프레임을 호스트로 올릴 준비를 하고, 다른 버퍼 인덱스 위치의 복호된 프레임을 호스트로 올린 후 상기 다른 버퍼 인덱스의 위치의 복호된 프레임이 올려짐에 따라 비워진 버퍼 인덱스 위치에 새로운 프레임을 저장하는 과정과,
    나머지 버퍼 영역에서 다른 테이블로부터 비워진 버퍼 인덱스를 알아내어 자신의 버퍼의 위치에 기록하고, 상기 기록된 위치를 자신의 테이블로 저장하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  8. 제7항에 있어서,
    상기 디인터리버의 버퍼는 4개의 상기 서브 버퍼로 구분되고, 64 프레임 크기로 인터리빙된 상기 데이터를 복호하기 위해 상기 호스트로 올려지는 데이터의 시간을 고려한 62 프레임 크기를 사용하여 구성된 버퍼임을 특징으로 하는 상기 방법.
  9. 제7항에 있어서, 상기 디인터리빙 과정은,
    삼각형 위치 변환 방법에 따라 상기 디이터리버 테이블 상의 상기 버퍼의 인덱스들의 위치를 변환함으로써 이루어짐을 특징으로 하는 상기 방법.
  10. 이동통신 시스템에서, 디인터리버의 버퍼를 운용하기 위한 장치에 있어서,
    상기 블록 인터리버 크기보다 작은 크기로 상기 디인터리버의 버퍼를 구성하고, 소정의 크기로 인터리빙된 데이터를 수신하여 상기 데이터의 프레임들을 순서대로 상기 디인터리버의 버퍼에 저장하고, 상기 디인터리버의 버퍼에 저장된 데이터의 프레임들을 디인터리빙하는 디인터리버와,
    상기 디인터리버 버퍼의 서브 버퍼별로 복호하는 복호기를 포함하며,
    상기 디인터리버는 상기 복호한 프레임들을 각각 호스트로 올린 후 상기 프레임들이 올려짐에 따라 비워진 각 버퍼들에 새로운 프레임들을 저장함을 특징으로 하는 상기 장치.
  11. 제10항에 있어서,
    상기 디인터리버의 버퍼는 4개의 상기 서브 버퍼로 구분되고, 64 프레임 크기로 인터리빙된 상기 데이터를 복호하기 위해 상기 호스트로 올려지는 데이터의 시간을 고려하지 않는 61 또는 62 프레임 크기를 사용하여 구성된 버퍼임을 특징으로 하는 상기 장치.
  12. 제10항에 있어서,
    상기 디인터리버는 삼각형 위치 변환 방법에 따라 상기 디이터리버 테이블 상의 상기 버퍼의 인덱스들의 위치를 변환함으로써 디인터리빙함을 특징으로 하는 상기 장치.
KR1020040053213A 2004-07-08 2004-07-08 이동통신 시스템에서 블록 디인터리버 버퍼의 운용 방법및 장치 KR20060004198A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040053213A KR20060004198A (ko) 2004-07-08 2004-07-08 이동통신 시스템에서 블록 디인터리버 버퍼의 운용 방법및 장치
US11/176,193 US20060013342A1 (en) 2004-07-08 2005-07-08 Method and apparatus for managing buffer for block deinterleaver in a mobile communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040053213A KR20060004198A (ko) 2004-07-08 2004-07-08 이동통신 시스템에서 블록 디인터리버 버퍼의 운용 방법및 장치

Publications (1)

Publication Number Publication Date
KR20060004198A true KR20060004198A (ko) 2006-01-12

Family

ID=35599403

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040053213A KR20060004198A (ko) 2004-07-08 2004-07-08 이동통신 시스템에서 블록 디인터리버 버퍼의 운용 방법및 장치

Country Status (2)

Country Link
US (1) US20060013342A1 (ko)
KR (1) KR20060004198A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4848983B2 (ja) * 2007-03-22 2011-12-28 カシオ計算機株式会社 画像記憶装置、画像記憶制御プログラム及び画像記憶方法
US8284873B2 (en) * 2009-04-07 2012-10-09 Mediatek Inc. Wireless communication receiver having de-interlever and related signal processing method thereof
US8681679B2 (en) * 2009-12-21 2014-03-25 Lg Electronics Inc. Transmitting system and method for transmitting digital broadcast signal
US20130191696A1 (en) 2012-01-19 2013-07-25 Ciena Corporation Parity frame
US20150358117A1 (en) * 2014-06-09 2015-12-10 Intel IP Corporation Interleaver for multiuser transmission
TWI617138B (zh) * 2016-01-26 2018-03-01 晨星半導體股份有限公司 時間解交錯電路與方法
CN107038122A (zh) * 2016-02-04 2017-08-11 晨星半导体股份有限公司 时间解交错电路与方法
US10201026B1 (en) 2016-06-30 2019-02-05 Acacia Communications, Inc. Forward error correction systems and methods
US10505676B1 (en) 2018-08-10 2019-12-10 Acacia Communications, Inc. System, method, and apparatus for interleaving data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI98023C (fi) * 1995-05-09 1997-03-25 Nokia Telecommunications Oy Liukuvaan ikkunaan perustuva datavuonohjaus, joka käyttää säädettävää ikkunakokoa
US5898710A (en) * 1995-06-06 1999-04-27 Globespan Technologies, Inc. Implied interleaving, a family of systematic interleavers and deinterleavers
EP1367728A1 (en) * 1999-05-19 2003-12-03 Samsung Electronics Co., Ltd. Turbo interleaving aparatus and method
US6625763B1 (en) * 2000-07-05 2003-09-23 3G.Com, Inc. Block interleaver and de-interleaver with buffer to reduce power consumption
US6785862B1 (en) * 2001-08-14 2004-08-31 Mindspeed Technologies, Inc. Convolutional interleaver employing an efficient memory scheme
KR100518295B1 (ko) * 2003-03-14 2005-10-04 삼성전자주식회사 디지털 통신 시스템의 디인터리빙장치 및 그의디인터리빙방법
US7257760B2 (en) * 2003-11-25 2007-08-14 Roland Reinhard Rick Early decoding of a control channel in a wireless communication system
GB2419788B (en) * 2004-11-01 2007-10-31 Toshiba Res Europ Ltd Interleaver and de-interleaver systems

Also Published As

Publication number Publication date
US20060013342A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
US8069387B2 (en) Turbo coding having combined turbo de-padding and rate matching de-padding
US9118353B2 (en) System and method for communicating with low density parity check codes
JP4955150B2 (ja) 高並列map復号器
US8347196B2 (en) Computationally efficient convolutional coding with rate-matching
US20060013342A1 (en) Method and apparatus for managing buffer for block deinterleaver in a mobile communication system
US20060227815A1 (en) Parallel turbo decoders with multiplexed output
KR100754077B1 (ko) 코딩된 저장 심벌 및 부가적인 정보를 사용하여 입력데이터 비트 시퀀스를 인터리빙하는 인터리버 및 방법
JP2000068862A (ja) 誤り訂正符号化装置
KR20060125947A (ko) 저밀도채리티체크 채널 디코딩 방법 및 장치
KR20070010704A (ko) 인터리빙 방법 및 그 장치
CN100488057C (zh) 数字信号的优化交织
KR100341560B1 (ko) 확산 스펙트럼 통신 시스템에서 콘볼루션 코드화된 신호를 인터리빙하는 방법
JP4166742B2 (ja) 無線通信装置およびそのインタリーブ方法ならびにデインタリーブ方法
KR20030044065A (ko) 전송오류에 대항하여 최적 비트 보호를 제공하기 위한방법 및 장치
US7102549B1 (en) Method and apparatus for programmable codeword encoding and decoding using truncated codewords
EP1396125A1 (en) System and method for de-interleaving data in a wireless receiver
US8650464B1 (en) Symmetric diagonal interleaving and encoding/decoding circuit and method
KR100944923B1 (ko) 개선된 멀티미디어 디코더를 위한 방법 및 장치
JP3628013B2 (ja) 信号送信装置および符号化装置
KR100651567B1 (ko) 내부 메모리와 외부 메모리를 이용한 디인터리빙 장치 및 방법
JP4002452B2 (ja) 記憶装置および記憶方法
JP2002533013A (ja) フレーム内に構造化された情報の伝送符号化乃至復号化用の方法及び装置
KR100555958B1 (ko) 2차원 리드-솔로몬 코드의 오류정정 부호화/복호화 방법
US6687870B1 (en) Method and apparatus for interleaving for information transmission or storage applications
KR100845829B1 (ko) 터보 디코더 및 디코딩 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid