KR100268406B1 - Method for rearranging a decoding data of lattice decoder for fa standard 8 vbs - Google Patents
Method for rearranging a decoding data of lattice decoder for fa standard 8 vbs Download PDFInfo
- Publication number
- KR100268406B1 KR100268406B1 KR1019970023794A KR19970023794A KR100268406B1 KR 100268406 B1 KR100268406 B1 KR 100268406B1 KR 1019970023794 A KR1019970023794 A KR 1019970023794A KR 19970023794 A KR19970023794 A KR 19970023794A KR 100268406 B1 KR100268406 B1 KR 100268406B1
- Authority
- KR
- South Korea
- Prior art keywords
- decoded data
- data
- decoder
- stored
- rearranging
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/015—High-definition television systems
Abstract
Description
본 발명은 미국 HDTV(HIGH DEFINITION TELEVISION : 고화질 텔레비젼 : 이하 HDTV라 한다.) 방식 중, GA(GRAND ALLIANCE)에 의해 지상 방송용으로 제안된 디지탈 전송 규격을 수신하는 시스템에 있어서, GA 규격 8 VSB(VESTIGIAL SIDEBAND, 잔류측대역 : 이하 VSB라 한다.)용 격자보호기의 출력데이타 및 클럭레이트 배열에 관한 것으로, 특히 격자보호기의 출력단에 4세그먼트 분량인 828바이트 용량의 단일포트 램을 설치하여, 심볼 클럭 레이트로 복호 데이타를 상기 램에 저장한 후, 상기 저장된 복호 데이타를 읽어 낼 때에는 바이트 클럭 레이트로 읽어내므로써, 심볼 클럭 단위의 복호 데이타를 바이트 클럭 단위로 변환함과 동시에, 상기 데이타 독출시 그 읽어내는 주소의 순서를 제어하므로 인해 복호데이타를 재배열시키기 위한 것이다.The present invention provides a GA standard 8 VSB (VESTIGIAL) in a system for receiving a digital transmission standard proposed for terrestrial broadcasting by GA (GRAND ALLIANCE) in the US HDTV (High Definition TELEVISION) method. SIDEBAND, Residual Side Band (hereinafter referred to as VSB). The output data and clock rate arrangement of the lattice protector. In particular, a four-segment 828-byte single port RAM is installed at the output of the lattice protector. When the decoded data is stored in the RAM, the decoded data is read at the byte clock rate, so that the decoded data in the symbol clock unit is converted into the byte clock unit and read out when the data is read. This is to rearrange the decoding data because it controls the order of the addresses.
주지하다시피, HDTV는 고화질, 대화면화 추구로 기존 칼라TV에 비해 해상도는 2배이상, 정보량은 5배 정도이며 30인치 이상의 화면크기와 기존 TV에 비해 10정도의 색상 재현성 및, CD(COMPATC DISC)에 상응하는 하이파이(HIFI) 음질을 구현할수 있는 TV이다.As is well known, HDTV is more than twice the resolution and 5 times the amount of information compared to existing color TVs due to the pursuit of high-definition and large screens.It has a screen size of 30 inches or more and about 10 times the color reproducibility and CD (COMPATC DISC). It is a TV that can realize HIFI quality equivalent to).
이하, HDTV에 있어서, GA 8 VSB 수신 시스템의 순방향오류정정기(FORWARD CORRECTION DECODER)에 사용되는 격자보호기에 대해 상세히 설명하면 다음과 같다.Hereinafter, a grid protector used in a forward error corrector of a
먼저, 간단한 비터비(VITERBI) 복호 알고리즘을, 부호화율(CODE RATE) R=1/2, 구속장(CONSTRAINT LENGTH) K=3, 생성다항식(GENERATING POLYNOMIAL)이First, we have a simple VITERBI decoding algorithm, CODE RATE R = 1/2, CONSTRAINT LENGTH K = 3, and GENERATING POLYNOMIAL.
G1 = 1 + X + X2 G1 = 1 + X + X 2
G2 = 1 + X2 G2 = 1 + X 2
인 길쌈부호화기의 예를 이용하여 설명하면 다음과 같다.The following description will be made using an example of a convolutional encoder.
상기, 길쌈부호화기는, 도 1에서 도시되는 바와 같이, 2비트 쉬프트레지스터(101)와, 모듈로(MODULO)-2 덧셈을 실행하는 2개의 덧셈기(102)로 구성된다. 또한, 복호기의 출력 G1, G2는 쉬프트레지스터(101)의 내용인 상태(STATE)와 입력(103)에 의해 결정되는데, 도 2는 상기 출력을 시간에 따라 나타낸 격자도(TRELLIS DIAGRAM)이다.The convolutional encoder is composed of a two-
도 2의 격자도에 있어서 각점은 쉬프트레지스터(101)가 가질 수 있는 각 상태를 나타내며, 실선의 가지(BRANCH)는 입력이 "0"일 때의 천이(TRANSION)를, 점선의 가지는 입력이 "1"일 때의 천이를 각각 나타낸다. 또한, 각 가지에 표시된 숫자는 그가지의 천이가 일어났을 때 출력되는 G1, G2의 값을 나타낸 것으로, 도면에서 도시되는 바와 같이, 각 상태에는 2개의 경로(PATH)가 합쳐지게 된다.In the lattice diagram of FIG. 2, each point represents each state that the
비터비 복호 알고리즘은 상기 2개의 경로중 가능성이 있는 경로만을 선택하고 가능성이 없는 경로는 버리는 최우복호법(MAXIMUM LIKELIHOOD DECODING)을 기본으로 하는데, 상기와 같이 선택되어진 경로를 생존자경로(SURVIVOR PATH)라고 하며, 각 상태는 정해진 길이(DECISION DEPTH, 또는 TRUNCATION DEPTH) 만큼의 생존자 경로에 대한 정보를 유지한다.The Viterbi decoding algorithm is based on the MAXIMUM LIKELIHOOD DECODING, which selects only the probable paths of the two paths and discards the probable paths. The path selected as above is called a survivor path. Each state maintains information about survivor paths of a given length (DECISION DEPTH, or TRUNCATION DEPTH).
또한, 복호는 각 상태가 유지하고 있는 생존자경로중 가장 가능성이 있는 생존자경로를 선택하여 역추적(TRACEBACK)함으로써 이루어진다.Decoding is also performed by selecting the most likely survivor path among the survivor paths maintained by each state and tracebacking it.
한편, 비터비(VITERBI) 알고리즘에 근거한 격자복호기는, 도 3에서 도시되는 바와 같이, 수신된 입력부호와 각 가지의 참고 값과의 유사성(BRANCH METRIC)을 계산하는 브랜치 메트릭 연산장치(202)와; 각 상태에서의 생존자경로를 선택하고 생존자경로의 상태값(STATE METRIC)을 연산하는 ACS(ADD-COMPARE-SELECT)연산장치(203)와; 상기 ACS연산장치(203)에서 출력되는 상태값을 저장하는 상태값 저장장치(STATE METRIC MEMORY)(205)와; 각 상태의 생존자경로에 대한 정보를 저장하는 경로저장장치(PATH MEMORY)(207)와; 각 상태의 생존자경로중 가장 가능성이 있는 생존자경로를 검출하는 최대유사값 검출장치(MAXIMUM LIKELIHOOD VALUE DETECTION)(206)와; 상기 ACS연산장치(203)의 연산 결과로부터 최대유사값을 감하는 정규화 연산장치(204)와; 상기 경로저장장치(207)를 제어하여 역추적을 실행하는 역추적장치(TRACEBACK UNIT)(208)로 구성되어, 복호를 실행하게 된다.On the other hand, the grid decoder based on the Viterbi algorithm, as shown in Figure 3, the branch
도면중 미설명 부호 (201), (209)는 입력단과 출력단을 각각 나타낸 것이다.In the drawings,
또한, GA 8 VSB 모드에서는 NTSC 동일 채널 간섭(CO-CHANNEL INTER-FERENCE)에 대비하여 송시기 측에서 12 심볼 세그먼트 인터리빙(12-SYMBOL INTRA-SEGMENT INTERLEAVING)을 채용하고 있다.In addition, in the
도 4는 GA 8 VSB 모드에서 사용하는 격자부호 인터리버(TRELLIS CODE INTERLEAVER)의 구조를 나타낸 것이며, 도 5는 격자부호 인터리버의 출력을 나타낸 것으로, 격자부호 인터리버의 동작을 설명하면 다음과 같다.FIG. 4 illustrates a structure of a trellis coded interleaver used in the
먼저, 길쌈 인터리버(CONVOLUTIONAL INTERLEAVER)로 부터 출력되는 바이트 단위의 데이타는 12개의 길쌈부호화기 각각에 의해 바이트 단위로 처리된다. 이때, 각 바이트 단위 데이타는 하나의 부호화기를 통하여 4 심볼의 부호화된 데이타를 생성하며, 길쌈부호화기에 입력되는 심볼 데이타는 최상위비트부터 2비트씩 입력된다.First, the byte data output from the CONVOLUTIONAL INTERLEAVER is processed in byte units by each of the 12 convolutional encoders. In this case, each byte unit data generates 4 symbols of encoded data through one encoder, and symbol data input to the convolutional encoder is input by 2 bits from the most significant bit.
또한, 각 바이트 단위의 데이타는 하나의 길쌈부호화기를 통하여 부호화되므로 12개의 길쌈부호화기를 통하여 부호화 되기 위해서는 12배수의 바이트 단위 데이타가 필요하다. 다시말해, 하나의 세그먼트는 828 심볼, 즉, 207 바이트의 데이타로 구성되어 있는 것으로, 상기 12개의 길쌈부호화기에 대응되는 12의 배수가 아니므로 바이트 데이타의 심볼 데이타로의 변환은 4 세그먼트(828 = 12 × 69 바이트)단위로 이루어진다. 따라서, 도 6에서와 같이, 0번 세그먼트에 있어서 필드내의 첫번째 바이트 데이타의 첫번째 심볼(7, 6)은 #0 부호화기를 통하여 부호화 되며, 두번째 바이트의 첫번째 심볼(7, 6)은 #1 부호화기를 통해 부호화 되고, 12번째 바이트의 첫번째 심볼(7, 6)은 #11 부호화기를 통해 부호화 된다.In addition, since data of each byte unit is encoded through one convolutional encoder, twelve times of byte unit data are required to be encoded through twelve convolutional encoders. In other words, one segment is composed of 828 symbols, that is, 207 bytes of data, and is not a multiple of 12 corresponding to the 12 convolutional encoders. 12 × 69 bytes). Thus, as shown in FIG. 6, in
마찬가지로, 0번 세그먼트 내 첫번째 바이트의 두번째 심볼(5, 4)은 #0 부호화기를 통하여 부호화 되고, 두번째 바이트의 두번째 심볼(5, 4)은 #1 부호화기로 입력되는 방식으로 바이트 단위의 각 데이타는 심볼단위로 부호화 된다.Similarly, the second symbol (5, 4) of the first byte in
한편, 세그먼트 동기신호구간에서, 동기신호구간에 해당되는 4개의 부호화기는, 심볼 데이타가 입력되지 않기 때문에 부호화된 심볼 데이타를 출력하지 않는다. 따라서, 도 5에서 도시되는 바와 같이, 각 필드의 첫번째 세그먼트에서는 #0 부호화기부터 #11 부호화기까지의 정상적인 순서로 부호화된 심볼 데이타가 출력되나, 두번째 세그먼트에서는 #4 부호화기부터 #11 부호화기까지의 심볼 데이타가 먼저 출력된 후 #0 부호화기부터 #3 부호화기까지의 부호화된 심볼 데이타가 출력된다. 또한, 세번째 세그먼트에서는 #8 부호화기부터 #11 부호화기까지의 심볼 데이타가 먼저 출력된 후 #0 부호화기부터 #7 부호화기까지의 부호화된 심볼 데이타가 출력된다.On the other hand, in the segment synchronization signal section, four encoders corresponding to the synchronization signal section do not output encoded symbol data because no symbol data is input. Accordingly, as shown in FIG. 5, symbol data encoded in a normal order from the # 0 encoder to the # 11 encoder is output in the first segment of each field, whereas the symbol data from the # 4 encoder to the # 11 encoder is output in the second segment. Is output first, and then coded symbol data from the # 0 encoder to the # 3 encoder are output. In the third segment, symbol data from the # 8 encoder to the # 11 encoder is output first, and then coded symbol data from the # 0 encoder to the # 7 encoder are output.
이러한 3세그먼트 패턴이 필드내에 반복되어 데이타 세그먼트 동기신호가 삽입된 후의 데이타 심볼은 12 심볼의 거리가 떨어지게 된다.This three-segment pattern is repeated in the field so that the data symbols after the data segment synchronization signal is inserted are separated by 12 symbols.
도 6은 바이트-심볼 변환 및 격자부호화기의 다중화 순서를 나타낸 것이다.6 shows a multiplexing order of byte-symbol conversion and lattice coder.
한편, 도 7은 격자부호 디인터리버(TRELLIS CODE DE-INTERLEAVER)를 나타낸 것으로, 각각의 격자복호기(TRELLIS DECODER)는 도 3에서와 같은 구조로 이루어져 동일한 기능을 수행한다.7 illustrates a trellis coded deinterleaver, and each trellis decoder performs the same function as shown in FIG. 3.
또한, 각각의 격자복호기는 심볼 클럭으로 동작하며, 결정깊이(DECISION DEPTH) L 만큼의 심볼 데이타를 수신한 후 매 12클럭마다 2비트의 복호 데이타를 출력한다. 그러므로 매 48클럭마다 격자부호 디인터리버는 12바이트의 복호 데이타를 심볼 클럭 단위로 출력한다. 즉, 매 48 클럭마다 마지막 12 클럭 동안에 12 바이트의 복호 데이타를 출력한다.In addition, each lattice decoder operates as a symbol clock, and outputs two bits of decoded data every 12 clocks after receiving symbol data of DECISION DEPTH L. Therefore, every 48 clocks, the grid deinterleaver outputs 12 bytes of decoded data in symbol clock units. That is, every 48 clocks output 12 bytes of decoded data during the last 12 clocks.
격자부호 디인터리버의 출력에 연결되는 길쌈 디인터리버(CONVOLUTIONAL DE-INTERLEAVER)는 바이트 클럭(심볼 클럭 × 4)단위로 동작하기 때문에 격자복호 데이타의 클럭 레이트 변환이 필요하게 된다.The CONVOLUTIONAL DE-INTERLEAVER, which is connected to the output of the lattice code deinterleaver, operates in the unit of byte clock (symbol clock x 4), and thus the clock rate conversion of the grid decoded data is required.
이하, 상기 격자부호 디인터리버의 동작에 대해 설명하면 다음과 같다.Hereinafter, the operation of the grid code deinterleaver will be described.
먼저, GA 8 VSB 수신 시스템을 통해 수신된 필드내의 첫번째 세그먼트의 심볼 데이타는 #0 격자복호기로, 두번째 심볼 데이타는 #1 격자복호기로, 12번째 심볼 데이타는 #11 격자복호기로 입력되는 방식으로 복호된다. 즉, (1, 13, 25,...), (2, 14,26,...), ... (12, 24, 36,...)의 12 그룹으로 나뉘어 처리된다.First, the symbol data of the first segment in the field received through the
또한, 세그먼트 동기신호구간에서, 입력순서에 해당하는 4개의 격자복호기에는 데이타가 입력되지 않기 때문에 격자복호기의 출력은 정상적인 복호와 관계없는 부적당한 데이타(INVALID DATA)가 출력되며, 세그먼트 동기신호구간에 해당하는 4개의 격자복호기에는 각각 12 클럭 뒤의 심볼 데이타가 입력되어 복호된다.In addition, since no data is input to the four grid decoders corresponding to the input sequence in the segment synchronization signal section, the output of the grid decoder outputs invalid data (INVALID DATA) irrelevant to normal decoding. Each of the four grid decoders receives and decodes
따라서, 도 6에서 도시되는 바와 같이, 0 번 세그먼트의 마지막 심볼 데이타는 #11 격자복호기에 입력되어 복호되나, 1번 세그먼트의 첫번째 심볼 데이타는 #0 격자복호기가 아닌 #4 격자복호기에 입력되어 복호된다. 즉, 1번 세그먼트내에서 격자복호기 기준으로 복호순서는 (#4, #5,... #0,... #3)이 되는데, 이는, 0번 세그먼트의 마지막 심볼 데이타와 1번 세그먼트의 첫번째 심볼 데이타 사이에는 4심볼 클럭 분량의 세그먼트 동기신호가 삽입되기 때문이다.Therefore, as shown in FIG. 6, the last symbol data of
마찬가지로, 2번 세그먼트에서는 격자복호기 기준으로 (#8, #9,... #0,..., #7)의 순서로, 3번 세그먼트에서는 다시 (#0,#1,..., #11)의 순서로 복호를 실행한다.Similarly, in
한편, 도 7의 격자부호 디인터리버를 구성하는 각 격자복호기에서 역추적 사양을 결정하는 결정깊이(DECISION DEPTH) L이 L=22일때의 복호 데이타이 포멧은 도 8과 같다. 즉, 1세그먼트 832 심볼은 208 바이트이며, 데이타 세그먼트 동기 신호는 1바이트, 데이타는 207 바이트로 구성된다.On the other hand, the format of the decoded data when the DECISION DEPTH L for determining the backtracking specification L is 22 in each lattice decoder constituting the lattice code deinterleaver shown in FIG. That is, one segment 832 symbol is 208 bytes, the data segment synchronizing signal is one byte, and the data is 207 bytes.
또한, 송신측에서의 길쌈부호화가 4세그먼트 데이타 828 바이트 단위로 이루어지므로 복호 데이타 포멧 또한 도 8에서와 같이 4세그먼트 단위로 반복된다.In addition, since the convolutional encoding on the transmitting side is performed in units of 828 bytes of 4-segment data, the decoding data format is also repeated in units of 4 segments as shown in FIG.
도 8에 있어서 각 숫자는 세그먼트내의 바이트 단위 위치를 표시하며, 그 위치에서 부터 심볼 클럭 단위로 12클럭(3 바이트 클럭) 동안, 도 7에 나타낸 12개의 격자복호기로부터 12바이트의 복호 데이타가 출력된다. 즉, 0번 세그먼트에서의 복호 데이타는 바이트 위치로 (4, 5, 6), (16, 17, 18),... (196, 197, 198)에서 각각 12바이트의 복호 데이타를 심볼 클럭으로 출력한다.In Fig. 8, each number represents a byte position in the segment, and from the position, 12 bytes of decoded data are output from the 12 lattice decoders shown in Fig. 7 for 12 clocks (3 byte clocks) in symbol clock units. . That is, the decoded data in
또한, 도 8에 있어서 구간-1은 각 세그먼트에서 복호 데이타 출력 타이밍이 3 × L 보다 작은 구간으로, 복호 데이타의 재배열을 필요로 하는 구간을 나타낸 것이다. 이는, 상술한 바와 같이, 송신측에서의 세그먼트내 인터리빙에 의한 결과로서, 12바이트의 데이타를 4바이트 단위로 구분하여 각각 0, 1, 2로 명명할때, 구간-1에서 (1, 2, 0), (1, 2, 0),...의 순서로 복호되기 때문인 것으로, 이로 인해, 송신측의 데이타 순서와 어긋나게 된다.In FIG. 8, section-1 is a section in which the decoded data output timing is less than 3 x L in each segment, and shows a section requiring rearrangement of the decoded data. As described above, this is a result of intra-segment interleaving on the transmitting side. When 12-byte data is divided into 4 byte units and named as 0, 1, and 2, respectively, in interval-1 (1, 2, 0) This is because the data is decoded in the order of (1, 2, 0), ..., which is out of order of the data on the transmitting side.
한편, 구간-2는 각 세그먼트에서 복호 데이타의 출력 타이밍이 3 × L 보다 큰 구간으로 이 구간에서는 송신측의 데이타순서와 일치하게 된다.On the other hand, the section-2 is a section in which the output timing of the decoded data in each segment is larger than 3 x L, and this section corresponds to the data order on the transmitting side.
그러므로, 도 7의 격자부호 디인터리버의 출력을 구대로 길쌈디인터리버로 입력하여 처리하게 되면 송신측의 원 영상 및 음성 데이타를 복원할 수 없는 문제점이 발생한다.Therefore, when the output of the lattice code deinterleaver of FIG. 7 is input to the convolutional deinterleaver and processed, the original video and audio data of the transmitter cannot be restored.
본 발명의 목적은, 상기와 같은 종래의 문제점을 해소하기 위한 것으로, 특히, 격자복호기의 출력단에 4세그먼트 분량인 828바이트 용량의 단일포트 램을 설치하여, 심볼 클럭 레이트로 복호 데이타를 상기 램에 저장한 후, 상기 저장된 복호데이타를 읽어 낼 때에는 바이트 클럭 레이트로 읽어내므로써, 심볼 클럭 단위의 복호 데이타를 바이트 클럭 단위로 변환함과 동시에, 상기 데이타 독출시 그 읽어내는 주소의 순서를 제어하므로 인해 복호 데이타를 재배열시킬 수 있는 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"을 제공하는 데 있다.SUMMARY OF THE INVENTION An object of the present invention is to solve the above-mentioned conventional problems. In particular, a 4-port single-port RAM having a 4-segment capacity is provided at the output of the grid decoder, and decoded data is stored in the RAM at a symbol clock rate. After reading, the stored decoded data is read out at the byte clock rate, thereby converting the decoded data in the symbol clock unit into the byte clock unit and controlling the order of the read address when the data is read out. The present invention provides a method for rearranging decoded data of a lattice decoder for high-definition television that can rearrange decoded data.
상기와 같은 목적을 달성하기 위하여 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의, 구성1은 GA 8VSB 수신 시스템에 있어서, 격자복호기의 출력단에 4세그먼트 분량과 동일한 용량의 단일 포트 램을 다수개 설치하여, 격자복호기의 복호 데이타 출력을 4세그먼트 단위로 상기 램의 상위메모리에 저장한 후, 다음 4세그먼트의 복호 데이타를 상기 램의 하위메모리에 저장하면서 기 저장된 상위 메모리로부터 데이타를 독출하여, 매 4세그먼트 단위 마다 상기 각 램의 메모리에 대한 저장과 독출 동작을 수행하므로 인해, 심볼 클럭 단위의 복호 데이타를 바이트 클럭 단위의 복호 데이타로 변환함과 동시에 복호데이타를 재배열함을 그 방법적 구성상의 특징으로 한다.In order to achieve the above object,
또한, 상기 격자복호기의 복호 데이타 출력을 상기 램에 저장할 경우에는, 쓰기 주소를 생성함에 있어, 각 세그먼트에서의 복호 데이타 출력 시점을 나타내는 바이트 계수기 값에 모듈로-12의 심볼 계수기 값을 합산하여 12바이트의 복호 데이타를 저장함을 특징으로 한다.When the decoded data output of the lattice decoder is stored in the RAM, in generating a write address, the modulo-12 symbol counter value is added to the byte counter value indicating the time of output of the decoded data in each segment. It is characterized by storing decoded data of bytes.
또한, 상기 격자복호기의 복호 데이타 재배열은, 상기 램에 복호 데이타를 저장할 경우에는 재배열 없이 저장하였다가, 상기 저장된 복호 데이타를 독출할 때 재배열함을 특징으로 한다.The decoded data rearrangement of the lattice decoder may be stored without rearrangement when the decoded data is stored in the RAM, and then rearranged when the stored decoded data is read.
한편, 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의, 구성 2는, GA 8VSB 수신 시스템에 있어서, 격자복호기의 출력단에 4세그먼트 분량과 동일한 용량의 단일 포트 램을 하나 설치한 후, 바이트 클럭의 한주기를 2분주하여 첫 반주기 동안에는 저장된 데이타를 독출하며, 다음의 반주기 동안에는 복호 데이타 출력을 저장하는 동작을 수행하므로 인해, 심볼 클럭 단위의 복호 데이타를 바이트 클럭 단위의 복호 데이타로 변환함과 동시에 복호 데이타를 재배열함을 그 방법적 구성상의 특징으로 한다.On the other hand,
또한, 상기 격자복호기의 복호 데이타 출력을 상기 램에 저장할 경우에는, 쓰기 주소를 생성함에 있어, 각 세그먼트에서의 복호 데이타 출력 시점을 나타내는 바이트 계수기 값에 모듈로-12의 심볼 계수기 값을 합산하여 12바이트의 복호 데이타를 저장함을 특징으로 한다.When the decoded data output of the lattice decoder is stored in the RAM, in generating a write address, the modulo-12 symbol counter value is added to the byte counter value indicating the time of output of the decoded data in each segment. It is characterized by storing decoded data of bytes.
또한, 상기 모듈로-12의 심볼 계수기값 변환은, 모듈로-12의 심볼 계수기 값에 2를 곱하여, 심볼 클럭을 인버팅(INVERTING)한 값을 더한 후, 그 중 하위 4비트만을 상기 메모리의 쓰기 주소에 사용하도록 함을 특징으로 한다.The modulo-12 symbol counter value conversion may be performed by multiplying the modulo-12 symbol counter value by 2 to add an inverting symbol clock to the lower 4 bits of the memory. It is used to write address.
또한, 상기 격자복호기의 복호 데이타 재배열은, 상기 램에 복호 데이타를 저장할 경우에는 재배열 없이 저장하였다가, 상기 저장된 복호 데이타를 독출할 때 재배열함을 특징으로 한다.The decoded data rearrangement of the lattice decoder may be stored without rearrangement when the decoded data is stored in the RAM, and then rearranged when the stored decoded data is read.
이러한 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 구성1과 구성2는, 격자복호기에서 4세그먼트 단위로 출력되는 복호 데이타와 동일한 용량(828바이트)을 갖는 단일 포트 램을 1개, 또는 2개 사용하여, 상기 격자복호기에서 출력되는 복호 데이타를 재배열하면서 저장하였다가 출력하거나, 또는 재배열 없이 저장하였다가 출력시 이를 재배열하므로 인해, 복호 데이타를 재배열하고, 심볼 클럭 단위의 복호 데이타를 바이트 클럭 단위로 변환하므로 인해, 격자 부호 디인터리버의 출력 바이트 데이타 순서와, 송신기 측의 격자 부호 인터리버로 입력되는 바이트 데이타의 순서를 일치시킬 수 있게 되는 것이다.
제1도는 길쌈부호기의 구성예를 나타낸 도면.1 is a diagram showing an example of the configuration of a weaving encoder.
제2도는 제1도의 구성에 따른 격자도를 나타낸 도면.2 is a diagram showing a lattice diagram according to the configuration of FIG.
제3도는 비터비 복호기의 구성을 나타낸 블럭도.3 is a block diagram showing the configuration of a Viterbi decoder.
제4도는 격자 부호 인터리버의 구성을 나타낸 도면.4 is a diagram showing a configuration of a lattice code interleaver.
제5도는 격자 부호 인터리버의 출력 데이타 열을 나타낸 도면.5 is a diagram showing an output data string of the lattice code interleaver.
제6도는 바이트-심볼 변환 및 격자부호화기의 다중화 순서를 나타낸 도면.6 is a diagram illustrating a multiplexing order of byte-symbol conversion and lattice coder.
제7도는 격자 부호 디인터리버의 구성을 나타낸 도면.7 is a diagram showing the configuration of a lattice code deinterleaver.
제8도는 바이트 계수기 기준의 복호 데이타 포맷을 나타낸 도면.8 shows a decoded data format based on a byte counter.
제9도는 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 구성1에 따른 실시예1의 구성을 나타낸 도면.9 is a diagram showing the configuration of
제10도는 바이트 계수기와 심볼 계수기 및 쓰기 유효 구간과의 관계를 나타낸 타이밍도.10 is a timing diagram showing a relationship between a byte counter, a symbol counter, and a write validity interval.
제11도는 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 구성2에 따른 실시예2의 구성을 나타낸 도면.FIG. 11 is a diagram showing a configuration of
제12도는 쓰기 주소 생성을 위한 모듈로-12 심볼 계수기 값의 변환 관계를 나타낸 도면.12 is a diagram illustrating a conversion relationship between modulo-12 symbol counter values for write address generation.
〈도면의 주요부분에 대한 부호의 설명〉<Explanation of symbols for main parts of drawing>
307, 308, 406 : 단일 포트 램 309, 405 : 멀티플렉서307, 308, 406:
이하, 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 구성1과 구성2의 기술적 사상에 따른 실시예를 들어, 그 구성 및 동작을 첨부된 도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, an embodiment according to the technical idea of the
[실시예 1]Example 1
실시예1은 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 기술적 사상에 따른 구성1에 대한 실시예로써, 도 9에서 도시되는 바와 같이, 격자복호기의 출력단에 828 바이트 용량의 단일포트 램을 2개(307, 308) 사용하여 클럭 레이트를 변환함과 동시에 복호 데이타를 재배열하는 방법을 나타낸 것이다.
도 9에 있어서, 제어 _2(304) 및 제어_3(306)은 각각 상위 메모리(307)와 하위 메모리(308)의 읽기 쓰기 제어신호로서 사용되며, 제어_1(301)은 멀티플렉서(309)를 제어하여, 각 메모리(307, 308)로 부터의 출력중 읽기 모드로 동작하고 있는 메모리의 출력을 선택하는 데, 상기 각 메모리의 읽고 쓰기 모드는 항상 상반된다.In Fig. 9, the control _2 304 and the control _3 306 are used as read and write control signals of the
즉, 상위 메모리(307)에 데이타를 쓰고 있는 동안에는 하위 메모리(308)는 읽기 모드로 동작하고 있으며, 그 반대의 경우도 마찬가지이다.In other words, while writing data to the
또한, 각 메모리의 모드는 828 바이트 분량의 4세그먼트 단위로 전환된다. 클럭 레이트 변환과 복호 데이타의 재배열은 복호 데이타 828 바이트를 상위 메모리(307)에 일단 저장한 후, 하위 메모리(308)에 다음 복호 데이타 828 바이트를 저장하는 동안에 상위 메모리(307)로 부터 데이타를 읽어내면서 실행된다.In addition, the mode of each memory is switched in units of 4 segments of 828 bytes. The clock rate conversion and the rearrangement of the decoded data store the data from the
도면중 미설명부호 (302)는 주소_1, (303)은 데이타, (305)는 주소_2의 입력단을 각각 나타내며, (310)은 출력단을 나타낸 것이다.In the figure, reference numeral 302 denotes an address_1, 303 denotes data, 305 denotes an input terminal of address_2, and 310 denotes an output terminal.
한편, 메모리로부터 데이타를 읽어 낼 때에는 상기 구간 I("0" : 구간_1, "1" : 구간_2)에 따라 읽기 주소 생성을 달리한다. 즉, 구간_1에서는 복호 데이타 순서의 재배열을 고려해서 읽기 주소를 생성하며, 구간_2에서는 쓰여진 대로 읽어내면 된다.On the other hand, when reading data from the memory, the generation of a read address differs according to the section I ("0": section_1, "1": section_2). That is, in section_1, a read address is generated in consideration of the rearrangement of the decoded data order, and in section_2, the read address is read as written.
이하, 메모리의 읽기 및 쓰기 주소 생성 방식에 대해 설명하면 다음과 같다.Hereinafter, the memory read and write address generation method will be described.
여기서, 주소 RD_addr의 생성은 바이트 클럭(심볼 클럭 × 4)단위로 증가하는 계수기 CB를 이용한다. 즉, 구간_1을 12바이트로 분할하고, 매 12 바이트를 4바이트 단위로 분할하여 모드 M(=0, 1, 2)를 지정한다.Here, the generation of the address RD_addr uses the counter C B which increases in the unit of byte clock (symbol clock x 4). That is, the interval M_1 is divided into 12 bytes and every 12 bytes are divided into 4 byte units to designate the mode M (= 0, 1, 2).
따라서, 각 구간에서의 읽기 주소는 아래와 같다.Therefore, the read address in each section is as follows.
RD_addr = CB+ I'{P × 4 - P' × 8}, --------[1]RD_addr = C B + I '{P × 4-P' × 8}, -------- [1]
I' = not(I), P' = not(P),I '= not (I), P' = not (P),
P = "1", (M + 1)%3≠0P = "1", (M + 1)% 3 ≠ 0
= "0", (M + 1)%3 = 0= "0", (M + 1)% 3 = 0
또한, 격자복호기의 복호 데이타는 심볼 클럭 단위로 12바이트씩 연속적으로 출력되며, 각 세그먼트에 따른 복호 데이타의 출력시점은 제 8도에서 나타낸 바와 같다.Decoded data of the lattice decoder is continuously output by 12 bytes in symbol clock units, and the output time of the decoded data according to each segment is as shown in FIG.
도 10은 바이트 계수기 CB와, 유효 쓰기 구간 WR_en 및, 심볼 계수기 CS와의 관계를 나타낸 것으로, 상기 심볼 계수기로는 모듈로_12 계수기를 사용한다.FIG. 10 shows the relationship between the byte counter C B , the effective write interval WR_en, and the symbol counter C S. The modulo_12 counter is used as the symbol counter.
또한, 쓰기 주소 WR_addr은 식[2]에서 나타낸 바와 같이, 각 유효 쓰기 구간에서의 첫번째 바이트 계수기 값 CA에 심볼계수기 값을 더한 값과 같다.The write address WR_addr is equal to the sum of the symbol count value and the first byte counter value C A in each valid write interval, as shown in equation [2].
WR_addr = CA+ CS----------[2]WR_addr = C A + C S ---------- [2]
도 8에 나타낸 값은 각 세그먼트에서 쓰기 주소 생성을 위한 CA를 나타낸 것이다.The value shown in FIG. 8 represents C A for generating a write address in each segment.
이상에서 살펴본 바와 같이, 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 기술적 사상에 따른 구성1의 실시예1은, 격자복호기에서 4세그먼트 단위로 출력되는 복호 데이타와 동일한 용량인 828 바이트를 갖는 단일 포트램을 2개 사용하여, 상기 격자복호기에서 출력되는 복호 데이타를 재배열하면서 저장하였다가 출력하거나, 또는 재배열 없이 저장하였다가 출력시 이를 재배열하므로 인해, 복호 데이타를 재배열하게 되는 것이며, 또한, 심볼 클럭 단위의 복호 데이타를 바이트 클럭 단위로 변환하므로써, 격자 부호 디인터리버의 출력 바이트 데이타 순서와, 송신기 측의 격자 부호 인터리버로 입력되는 바이트 데이타의 순서를 일치시킬 수 있게 되는 것이다.As described above,
[실시예 2]Example 2
본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 기술적 사상에 따른 구성2의 실시예 2는, 도 11에서 도시되는 바와 같이, 격자복호기의 복호 데이타 출력단에 상기 복호 데이타와 동일한 용량을 갖는 828 바이트의 단일 포트 램(406)1개를 사용한 것으로, 바이트 클럭의 한주기를 2분주하여 첫번째 반주기 동안은 상기 램(406)에 저장된 데이타를 읽어내고, 다음 반주기 동안에는 복호 데이타의 출력을 저장하도록 한 것이다.According to the technical idea of the present invention "method of rearranging the decoded data of a high-definition TV grid decoder", the second embodiment of the
먼저, 메모리의 읽고 쓰기 제어는 바이트 클럭을 양분하여 사용하며, 첫 반주기 동안에는 읽기 모드로, 다음 반주기 동안에는 쓰기 모드로 동작한다.First, read and write control of the memory is divided into byte clocks, and the read mode is operated in the read mode during the first half cycle and in the write mode during the next half cycle.
도 11에서, 제어_1(404)은 바이트 클럭으로부터 생성되며, 주소_1(401)과 주소_2(402)의 선택과 램(406)의 메모리모드 제어에 사용된다. 또한, 상기 주소_1(401)은 상기 메모리의 쓰기 주소로, 주소_2(402)는 메모리의 읽기 주소로 사용된다. 읽기 주소는 상기의 식[1]과 동일하게 생성되며, 쓰기 주소는 상기의 식[2]를 변환하여 생성한다.In FIG. 11, control_1 404 is generated from the byte clock and used for selection of addresses_1401 and _2402 and memory mode control of
도면중 미설명부호(403)은 데이타 입력단을, (407)은 출력단을 각각 나타내며, (405)는 멀티플렉서를 나타낸 것이다.In the figure, reference numeral 403 denotes a data input terminal, 407 denotes an output terminal, and 405 denotes a multiplexer.
또한, 매 세그먼트에서의 복호 데이타의 출력 타이밍은 도 8과 동일하므로 쓰기 주소는 식[2]와 유사한 형태로 다음 식[3]과 같다.In addition, since the output timing of the decoded data in each segment is the same as that shown in Fig. 8, the write address is similar to that of Equation [2].
WR_addr = CA+ CS*---------[3]WR_addr = C A + C S * --------- [3]
CS* = LSB4(CS× 2 + s_clk'),C S * = LSB 4 (C S × 2 + s_clk '),
bv-1bv-2...b0= LSBV(bn-1bn-2...bvbv-1bv-2...bo)b v-1 b v-2 ... b 0 = LSB V (b n-1 b n-2 ... b v b v-1 b v-2 ... b o )
s_clk' = not(s_clk).s_clk '= not (s_clk).
여기서, 식[3]의 CA값은 식[2]의 CA와 동일하며, 식[3]의 CS* 값은 식[2]의 CS값을 컨벌루션(CONVOLUTION)한 것이다.Here, the C A value of the formula [3] is the same as the C A of the formula [2], and the C S * value of the formula [3] is the convolution of the C S value of the formula [2].
한편, 도 7의 격자 부호 디인터리버의 출력은, 심볼 클럭으로 12클럭(3바이트클럭)동안 12바이트의 복호 데이타를 출력하므로, 식[2]에 보여진 대로 심볼 클럭 단위로 메모리의 쓰기 주소를 생성하여 12바이트의 복호 데이타를 메모리에 저장할수 있게 된다.On the other hand, since the output of the grid code deinterleaver of Fig. 7
또한, 본 실시예2에서는 바이트 클럭의 반주기(2 심볼 클럭) 동안에는 읽기 모드로 사용되므로, 6 심볼 클럭 동안에 12바이트의 복호 데이타를 메모리(36)에 저장해야 하는 것으로, 도 12는 심볼 클럭과 심볼 계수기 CS와 CS*의 관계를 나타낸 것이다.In addition, in the second embodiment, since the data is used in the read mode during the half cycle of the byte clock (2 symbol clocks), 12 bytes of decoded data must be stored in the
이상에서 살펴본 바와 같이, 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 기술적 사상에 따른 구성2의 실시예2는, 격자복호기에서 4세그먼트 단위로 출력되는 복호 데이타와 동일한 용량을 갖는 단일 포트 램을 1개 사용하여,그 바이트의 클럭주기를 2분주하여, 상기 격자복호기에서 출력되는 복호 데이타를 재배열하면서 저장하였다가 출력하거나, 또는 재배열 없이 저장하였다가 출력시 이를 재배열하므로 인해, 복호 데이타를 재배열하고, 심볼 클럭 단위의 복호 데이타를 바이트 클럭 단위로 변환하므로 인해, 격자 부호 디인터리버의 출력 바이트 데이타 순서와, 송신기 측의 격자 부호 인터리버로 입력되는 바이트 데이타의 순서를 일치시킬 수 있게 되는 것이다.As described above,
이는, 본 발명의 기술적 사상에 따른 구성1의 실시예1이, 2개의 828 바이트 용량의 단일 포트 램을 사용하므로 인해 오류정정 ASIC 구현시 칩 면적을 증대시켜 단일칩으로의 구현을 어렵게 하는데 비해, 바이트 클럭을 2분주하여 읽고 쓰기를 반복하며, 쓰기 주소 생성 방식을 변환하므로 인해, 메모리 사용량을 절반으로 줄일 수 있다는 차이점이 있다.This is because, while
이상에서 살펴본 바와 같이 본 발명 "고화질 TV용 격자복호기의 복호 데이타 재배열 방법"의 구성1과 구성2는, 격자복호기에서 4세그먼트 단위로 출력되는 복호 데이타와 동일한 용량(828바이트)을 갖는 단일 포트 램을 1개, 또는 2개 사용하여,상기 격자복호기에서 출력되는 복호 데이타를 재배열하면서 저장하였다가 출력하거나, 또는 재배열 없이 저장하였다가 출력시 이를 재배열하므로 인해, 복호 데이타를 재배열할 수 있는 효과가 있는 것이며, 또한, 심볼 클럭 단위의 복호 데이타를 바이트 클럭 단위로 변환하므로 인해, 격자 부호 디인터리버의 출력바이트 데이타 순서와, 송신기 측의 격자 부호인터리버로 입력되는 바이트 데이타의 순서를 일치시킬 수 있는 효과가 있는 것이다.As described above, the
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970023794A KR100268406B1 (en) | 1997-06-10 | 1997-06-10 | Method for rearranging a decoding data of lattice decoder for fa standard 8 vbs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970023794A KR100268406B1 (en) | 1997-06-10 | 1997-06-10 | Method for rearranging a decoding data of lattice decoder for fa standard 8 vbs |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990000725A KR19990000725A (en) | 1999-01-15 |
KR100268406B1 true KR100268406B1 (en) | 2000-10-16 |
Family
ID=19509030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970023794A KR100268406B1 (en) | 1997-06-10 | 1997-06-10 | Method for rearranging a decoding data of lattice decoder for fa standard 8 vbs |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100268406B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100340222B1 (en) * | 2000-05-22 | 2002-06-12 | 주민 | Method and apparatus for decoding multi-level tcm signal |
-
1997
- 1997-06-10 KR KR1019970023794A patent/KR100268406B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990000725A (en) | 1999-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4284125B2 (en) | Continuous code decoder and method for recirculating parity bits | |
CA2230005C (en) | Tcm decoder of high definition television receiver and decoding method | |
KR100811184B1 (en) | Outer encoder, and, method thereof | |
KR20020094427A (en) | Digital vestigial sideband transmit system | |
JP2000209106A (en) | Realization by minimum amount of memory of high-speed viterbi decoder | |
US7289569B2 (en) | HDTV trellis decoder architecture | |
US6035428A (en) | Apparatus for deinterleaving and output-processing decoded data in a trellis decoder | |
CA2212098C (en) | Trellis decoder of a dtv | |
KR100268406B1 (en) | Method for rearranging a decoding data of lattice decoder for fa standard 8 vbs | |
KR100249046B1 (en) | Device for retrace in trellis decoder | |
US6031876A (en) | Trellis decoder for ATSC 8VSB | |
KR100230912B1 (en) | Error data removing unit and its method by decoding delay of hdtv | |
KR100273092B1 (en) | Device for rearrangement of decoding data | |
JPH0832632A (en) | Transmission system and its device | |
US8370726B2 (en) | Soft output viterbi decoder architecture | |
JP3347682B2 (en) | Error correction circuit | |
KR100258234B1 (en) | Trellis code modulation | |
JP2003032228A (en) | Error correction circuit and error correcting method | |
KR19980075613A (en) | The path metric network device of the trellis decoder | |
JP2007150686A (en) | Turbo decoder and communication system therewith | |
KR980012969A (en) | Traceback device of Viterbi decoder | |
GB2330994A (en) | Traceback processor for use in trellis decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050621 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |