KR20080008849A - Method and apparatus for receiving a broadcasting data in a dvb-h system - Google Patents

Method and apparatus for receiving a broadcasting data in a dvb-h system Download PDF

Info

Publication number
KR20080008849A
KR20080008849A KR1020060068638A KR20060068638A KR20080008849A KR 20080008849 A KR20080008849 A KR 20080008849A KR 1020060068638 A KR1020060068638 A KR 1020060068638A KR 20060068638 A KR20060068638 A KR 20060068638A KR 20080008849 A KR20080008849 A KR 20080008849A
Authority
KR
South Korea
Prior art keywords
burst
buffer
mpe
section
frame
Prior art date
Application number
KR1020060068638A
Other languages
Korean (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 삼성전자주식회사
Priority to KR1020060068638A priority Critical patent/KR20080008849A/en
Publication of KR20080008849A publication Critical patent/KR20080008849A/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64315DVB-H

Abstract

An apparatus and a method for receiving broadcasting data in a DVB-H system are provided to receive and decode a continuous burst in the receiver of the DVB-H system, thereby preventing time delay in switching a channel and providing a PIP(Picture In Picture) function. A method for receiving broadcasting data in a DVB-H(Digital Video Broadcasting-Handheld) system comprises the following steps of: allocating a predetermined domain of a frame buffer and an erasure buffer to a burst received from a wireless network and buffering the burst(2102,2104); performing Reed-Solomon decoding for the burst when the buffering of the burst is completed in the frame buffer(2106); releasing the domain of the erasure buffer allocated to the burst after performing the Reed-Solomon decoding(2108); outputting the burst through an interface after releasing the allocation of the erasure buffer to the burst(2110); and releasing the domain of the frame buffer allocated to the burst after completing the output of the burst through the interface(2112).

Description

디지털 비디오 방송 시스템에서 방송 데이터 수신 장치 및 방법{METHOD AND APPARATUS FOR RECEIVING A BROADCASTING DATA IN A DVB-H SYSTEM}Apparatus and method for receiving broadcast data in digital video broadcasting system {METHOD AND APPARATUS FOR RECEIVING A BROADCASTING DATA IN A DVB-H SYSTEM}

도 1은 일반적인 DVB-H 시스템에서 TS 패킷의 데이터 구조를 도시한 도면,1 is a diagram illustrating a data structure of a TS packet in a general DVB-H system.

도 2는 일반적인 DVB-H 시스템에서 송신기의 내부 구성을 도시한 블록 구성도,2 is a block diagram showing an internal configuration of a transmitter in a typical DVB-H system;

도 3은 본 발명이 적용되는 DVB-H 시스템에서 수신기의 내부 구성을 도시한 블록 구성도,3 is a block diagram showing an internal configuration of a receiver in a DVB-H system to which the present invention is applied;

도 4는 상기 도 3에 따른 MPE-FEC 프레임의 복호 방법을 개념적으로 도시한 순서도,4 is a flowchart conceptually illustrating a decoding method of an MPE-FEC frame according to FIG. 3;

도 5는 본 발명의 제1 실시 예에 따른 도 3의 MPE-FEC 프레임 복호 장치의 내부 구성을 도시한 블록 구성도,5 is a block diagram showing an internal configuration of the MPE-FEC frame decoding apparatus of FIG. 3 according to the first embodiment of the present invention;

도 6은 본 발명의 제1 실시 예에 따른 DVB-H 수신기에서 MPE-FEC 프레임의 복호 방법을 상세히 도시한 순서도,6 is a flowchart illustrating a method of decoding an MPE-FEC frame in a DVB-H receiver according to a first embodiment of the present invention;

도 7은 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기의 구성도,7 is a configuration diagram of an MPE-FEC decoder according to a second embodiment of the present invention;

도 8은 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기의 MPE PID 및 MPE 섹션 검출기의 동작 흐름도,8 is an operation flowchart of an MPE PID and an MPE section detector of an MPE-FEC decoder according to a second embodiment of the present invention;

도 9는 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기에서 프레임/이레이 져 버퍼 및 RS 복호기 제어기의 동작 흐름도,9 is a flowchart illustrating operations of a frame / eraser buffer and an RS decoder controller in an MPE-FEC decoder according to a second embodiment of the present invention;

도 10은 본 발명의 제2 실시 예에 따라 프레임/이레이져 버퍼 및 RS 복호기 제어기에 구비된 가로 줄(Row) 검색기의 구조를 도시한 도면,FIG. 10 is a diagram illustrating the structure of a horizontal row searcher provided in a frame / erase buffer and an RS decoder controller according to a second embodiment of the present invention; FIG.

도 11은 본 발명의 제2 실시 예에 따른 중간 버퍼를 도시한 도면,11 is a view illustrating an intermediate buffer according to a second embodiment of the present invention;

도 12a는 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기에서 한 버스트를 수신할 경우의 타이밍 도, 12A is a timing diagram when a burst is received in an MPE-FEC decoder according to a second embodiment of the present invention;

도 12b는 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기에서 연속되는 버스트들을 수신할 경우의 타이밍 도,12B is a timing diagram when receiving consecutive bursts in the MPE-FEC decoder according to the second embodiment of the present invention;

도 13은 본 발명의 제3 실시 예에 따른 MPE-FEC 복호화기의 구성도,13 is a configuration diagram of an MPE-FEC decoder according to a third embodiment of the present invention;

도 14는 본 발명의 제3 실시 예에 따른 주 제어 유닛의 상세 블록 구성도,14 is a detailed block diagram of a main control unit according to a third embodiment of the present invention;

도 15는 본 발명의 제3 실시 예에 따른 프레임/이레이져 버퍼의 세그먼트 분할 구조를 보여주는 도면,15 is a diagram illustrating a segmentation structure of a frame / erase buffer according to a third embodiment of the present invention;

도 16은 본 발명의 제3 실시 예에 따른 세그먼트 할당기가 프레임 버퍼와 이레이져 버퍼를 일정 크기의 세그먼트(Segment)로 분할한 구조를 보여주는 도면16 is a diagram illustrating a structure in which a segment allocator divides a frame buffer and an erasure buffer into segments having a predetermined size according to a third embodiment of the present invention;

도 17은 본 발명의 제3 실시 예에 따른 버퍼링 제어기의 동작 흐름도,17 is a flowchart illustrating operations of a buffering controller according to a third embodiment of the present invention;

도 18은 본 발명의 제3 실시 예에 따른 R-S 복호기 제어기의 동작 흐름도,18 is a flowchart illustrating an operation of an R-S decoder controller according to a third embodiment of the present invention;

도 19는 본 발명의 제3 실시 예에 따른 시리얼 출력 제어기의 동작 흐름도, 19 is a flowchart illustrating operations of a serial output controller according to a third embodiment of the present invention;

도 20은 본 발명의 제3 실시 예에 따른 MPE-FEC 복호화기의 타이밍도,20 is a timing diagram of an MPE-FEC decoder according to a third embodiment of the present invention;

도 21은 본 발명의 제3 실시 예에 따른 주 제어 유닛의 동작 흐름도.21 is a flowchart of operation of the main control unit according to the third embodiment of the present invention;

본 발명은 휴대 디지털 비디오 방송(Digtal Video Broadcasting-Handheld : DVB-H) 시스템에서 데이터를 수신하는 방법 및 장치에 대한 것으로서, 특히 DVB-H 시스템에서 다중 프로토콜 캡슐화-순방향 오류 정정(Multiprotocol Encapsulation-Forward Error Correction : MPE-FEC) 프레임을 복호화하기 위한 복호 방법 및 장치에 대한 것이다.The present invention relates to a method and apparatus for receiving data in a Digital Video Broadcasting-Handheld (DVB-H) system, and particularly to a multiprotocol encapsulation-forward error in a DVB-H system. Correction: MPE-FEC) Decoding method and apparatus for decoding a frame.

근래 음성(audio), 영상(video) 등의 데이터 압축기술과 통신 기술의 발달에 힘입어 고품질의 음성 및 영상 서비스를 고정 또는 이동 단말을 통해 어디서나 제공할 수 있는 디지털 방송이 실현되고 있다. 통상적으로 디지털 방송이라 함은 종래의 아날로그 방송을 대체하여 고화질과 CD 수준의 고음질 서비스를 사용자에게 제공하는 방송 서비스를 말한다. 이러한 디지털 방송은 지상파 방송과 위성 방송 이렇게 두 가지 형태로 발전하였다. 여기서 지상파 방송이라 함은 지상의 중계기를 통해 방송을 수신할 수 있는 서비스를 말한다. 반면에 위성 방송이라 함은 인공 위성을 중계기로 사용하여 디지털 방송을 수신하는 방식을 말한다.Recently, with the development of data compression technologies such as audio and video and communication technologies, digital broadcasting, which can provide high quality voice and video services anywhere through a fixed or mobile terminal, has been realized. In general, digital broadcasting refers to a broadcasting service that provides a high quality service and a high quality service of CD level to a user in place of a conventional analog broadcasting. Digital broadcasting has been developed in two forms, terrestrial broadcasting and satellite broadcasting. Here, terrestrial broadcasting refers to a service capable of receiving a broadcast through a terrestrial repeater. Satellite broadcasting, on the other hand, refers to a method of receiving digital broadcasting using an artificial satellite as a repeater.

이러한 디지털 방송 시스템의 예로는 디지털 오디오 방송(Digital Audio Broadcasting: DAB), 디지털 라디오 방송(Digital Radio Broadcasting: DRS), 디지털 오디오 라디오 시스템(Digtal Audio Radio System) 그리고, 오디오, 비디오, 데이터 서비스를 모두 포괄하는 이른바 디지털 멀티미디어 방송(Digital Multimedia Broadcasting : DMB) 시스템 등이 있다. 또한 유럽 지역의 디지털 오디오 방송 시스템인 Eureka 147(European Research Coordination Agency project-147) 시스템과 디지털 방송 규격의 하나인 DVB-T(Terrestrial) 시스템의 이동성, 휴대성을 강화한 DVB-H 시스템이 최근 주목받고 있다.Examples of such digital broadcasting systems include digital audio broadcasting (DAB), digital radio broadcasting (DRS), digital audio radio system, and audio, video, and data services. So-called digital multimedia broadcasting (DMB) systems. In addition, the DVB-H system, which enhances the mobility and portability of the European digital audio broadcasting system Eureka 147 (European Research Coordination Agency project-147) system and the DVB-T (Terrestrial) system, which is one of the digital broadcasting standards, has recently received attention. have.

상기 DVB-H 시스템의 물리 계층 규격은 기존의 DVB-T 시스템의 사양(spec)을 대부분 따르며 이동 중에도 안정적인 수신을 보장하기 위해 MPE-FEC와 같은 추가적인 오류 정정 부호화 기술을 지원함을 특징으로 한다. DVB-H 시스템에서 방송 데이터는 IP 데이터그램(datagram)으로 만들어지고, IP 데이터그램을 RS(Reed-Solomon) 부호화하여 MPE-FEC 프레임이 생성된다. 따라서 MPE-FEC 프레임은 IP 데이터그램이 실리는 MPE 섹션과, RS 부호화에 따른 패리티 데이터(parity data)가 실리는 MPE-FEC 섹션으로 구성된다. 그리고 MPE 섹션과 MPE-FEC 섹션은 DVB-H 시스템의 전송 단위인 TS(Transport Stream) 패킷의 페이로드(payload)에 실려 물리 계층을 통해 전송된다.The physical layer standard of the DVB-H system follows most of the specifications of the existing DVB-T system and is characterized by supporting an additional error correction coding technique such as MPE-FEC to ensure stable reception on the move. In the DVB-H system, broadcast data is generated as an IP datagram, and an MPE-FEC frame is generated by RS (Reed-Solomon) encoding of the IP datagram. Accordingly, the MPE-FEC frame includes an MPE section carrying an IP datagram and an MPE-FEC section carrying parity data according to RS encoding. The MPE section and the MPE-FEC section are carried in a payload of a transport stream (TS) packet, which is a transport unit of a DVB-H system, and transmitted through a physical layer.

도 1에서 참조번호 100은 방송 데이터가 실리는 IP 데이터 그램을 도시한 것이다. 상기 데이터 그램은 데이터가 전송되는 네트워크 종단의 주소가 포함된 패킷을 의미한다. 참조번호 102는 IP 데이터 그램(100)이 실리는 MPE 섹션 또는 IP 데이터 그램(100)들의 패리티 데이터가 실리는 MPE-FEC 섹션을 도시한 것이다. 참조번호 104는 MPE 섹션 또는 MPE-FEC 섹션(102)이 실리는 TS 패킷을 도시한 것이다. 여기서 하나의 TS 패킷(104)은 다수의 MPE 섹션 또는 MPE-FEC 섹션(102)을 포함하거나 하나의 MPE 섹션 또는 MPE-FEC 섹션(102)이 다수의 TS 패킷(104)을 통해 전송 될 수 있다.In FIG. 1, reference numeral 100 shows an IP datagram on which broadcast data is carried. The datagram refers to a packet including an address of a network end to which data is transmitted. Reference numeral 102 shows an MPE section carrying the IP datagram 100 or an MPE-FEC section carrying parity data of the IP datagrams 100. Reference numeral 104 shows a TS packet carrying an MPE section or an MPE-FEC section 102. Here, one TS packet 104 may include multiple MPE sections or MPE-FEC sections 102, or one MPE section or MPE-FEC sections 102 may be transmitted through multiple TS packets 104. .

상기 MPE-FEC 과정의 결과로써 IP 데이터그램들을 RS 부호화하여 MPE-FEC 프레임이 형성된다. 상기 MPE-FEC 프레임을 구성하는 데이터들은 섹션이라는 전송 단위로 재구성되며, IP 데이터그램(100)은 섹션 헤더(header)와 CRC(Cyclic Redundancy Check) 32비트가 추가되어 MPE 섹션으로 재구성되고 RS 부호화를 통해 생성된 패리티 데이터 또한, 섹션 헤더와 CRC 32비트가 추가되어 MPE-FEC 섹션으로 재구성된다. 섹션 헤더는 MPE-FEC 처리와, 타임 슬라이싱(time slicing)에 필요한 정보를 포함하고, 섹션의 앞 부분에 위치한다. CRC 32비트는 섹션의 뒷 부분에 위치한다. 이러한 섹션들은 최종적으로 TS 패킷(104)의 페이로드 부분에 실려서 물리 계층을 통해 전송된다.As a result of the MPE-FEC process, IP datagrams are RS encoded to form an MPE-FEC frame. Data constituting the MPE-FEC frame is reconstructed in a transmission unit called a section, and the IP datagram 100 is reconstructed into an MPE section by adding 32 bits of a section header and a cyclic redundancy check (CRC) to perform RS encoding. Parity data generated through the addition of the section header and CRC 32 bit is added to reconstruct the MPE-FEC section. The section header contains information required for MPE-FEC processing and time slicing, and is located at the beginning of the section. CRC 32 bits are located later in the section. These sections are finally carried in the payload portion of the TS packet 104 and transmitted over the physical layer.

이하에서는 도 2를 참조하여 MPE-FEC 프레임의 송신 과정을 설명하기로 한다.Hereinafter, a transmission process of an MPE-FEC frame will be described with reference to FIG. 2.

도 2는 일반적인 DVB-H 시스템에서 송신기의 내부 구성을 도시한 블록 구성도로서, 도 1에 도시된 DVB-H 시스템의 특징은 다수의 사용자에게 IP 데이터를 방송 데이터로 송출함과 아울러 방송 데이터의 오류 정정을 위해 RS 패리티 데이터를 함께 전송한다는 점이다.FIG. 2 is a block diagram illustrating an internal configuration of a transmitter in a general DVB-H system. The characteristic of the DVB-H system shown in FIG. 1 is to transmit IP data as broadcast data to a plurality of users, RS parity data is also sent for error correction.

도 2에서 MPE-FEC 부호화기(201)는 방송 데이터로 송신되는 IP 데이터그램을 섹션 단위로 전송하도록 IP 데이터그램이 포함된 MPE 섹션을 생성하고, 상기 MPE 섹션의 순방향 오류 정정(FEC)(Forward Error Correction)을 위한 패리티 데이터가 포함된 MPE-FEC 섹션을 생성한다. 상기 패리티 데이터는 잘 알려진 외부 부호화 기 술인 RS 부호화를 통해 생성된다. 상기 MPE-FEC 부호화기(201)의 출력은 타임 슬라이싱(time slicing) 처리기(203)로 전달되어 방송 데이터를 버스트로 전송하기 위한 시분할 처리가 이루어진다. 하나의 MPE-FEC 프레임은 하나의 버스트 구간을 통해 전송된다. 한편 타임 슬라이싱 처리를 거친 IP 데이터그램은 HP(High Priority) 스트림 처리를 거친 후, 변조차수(Modulation Order)와 계층적(Hierarchical) 혹은 비계층적(Non-Hierarchical)인 전송 모드에 따라 직/병렬 신호로 변환 처리될 수 있다.In FIG. 2, the MPE-FEC encoder 201 generates an MPE section including an IP datagram to transmit an IP datagram transmitted as broadcast data in section units, and forward error correction (FEC) of the MPE section. Create an MPE-FEC section containing parity data for correction. The parity data is generated through RS encoding, which is a well-known external encoding technique. The output of the MPE-FEC encoder 201 is delivered to a time slicing processor 203 to perform time division processing for transmitting broadcast data in bursts. One MPE-FEC frame is transmitted through one burst period. On the other hand, IP datagrams that have undergone time slicing are processed through HP (High Priority) streams, and then serialized / parallel according to the modulation order and the hierarchical or non-hierarchical transmission mode. The signal may be converted into a signal.

도 2에서 비트 인터리버(205)와 심볼 인터리버(207)는 전송 오류를 분산시키는 비트 단위의 인터리빙과 심볼 단위의 인터리빙을 각각 수행한다. 그리고 인터리빙된 신호는 심볼 매핑기(209)를 통해 QPSK, 16 QAM 혹은 64 QAM 등 정해진 변조 방식에 따라 심볼 매핑되어 IFFT(Inverse Fast Fourier Transform)(211)로 전달된다. 상기 IFFT(211)는 주파수 영역의 신호를 시간 영역의 신호로 변환하여 출력하고, IFFT 처리된 신호는 도시되지 않은 보호 구간 삽입기를 통해 보호 구간(Guard Interval)이 삽입되어 기저 대역의 OFDM 심볼 신호로 생성된다. 상기 OFDM 심볼은 디지털 기저 대역 필터에 의해 펄스 성형된 후 RF 변조기(213)를 통해 변조 과정을 거쳐서 최종적으로 안테나(215)를 통해 DVB-H 신호인 TS 패킷으로 전송된다.In FIG. 2, the bit interleaver 205 and the symbol interleaver 207 perform interleaving in units of bits and interleaving in units of symbols for distributing transmission errors, respectively. The interleaved signal is symbol-mapped through a symbol mapper 209 according to a predetermined modulation scheme such as QPSK, 16 QAM, or 64 QAM, and transferred to the inverse fast fourier transform (IFFT) 211. The IFFT 211 converts a signal in a frequency domain into a signal in a time domain, and outputs the IFFT processed signal into a baseband OFDM symbol signal by inserting a guard interval through a guard interval inserter (not shown). Is generated. The OFDM symbol is pulse-formed by the digital baseband filter, modulated by the RF modulator 213, and finally transmitted through the antenna 215 as a TS packet, which is a DVB-H signal.

한편 DVB-H 시스템의 수신기는 물리 계층을 통해 상기한 TS 패킷을 수신하여 방송 데이터가 포함된 IP 데이터그램을 복원하여야 한다. 따라서 TS 패킷으로부터 MPE 섹션과 MPE-FEC 섹션을 구분하여 추출하고, 추출된 데이터를 MPE-FEC 프레임으로 구성하여 IP 데이터그램을 복원하는 DVB-H 수신기의 MPE-FEC 복호 기술이 요구 된다. 그러나 현재 DVB-H 시스템의 송신 기술에 대한 구체적인 표준안은 마련된 상태이나 MPE-FEC 복호 기술과 같은 수신 기술에 대해서는 구체적인 방안이 마련되어 있지 않은 상태이다.Meanwhile, the receiver of the DVB-H system should restore the IP datagram including the broadcast data by receiving the TS packet through the physical layer. Therefore, a MPE-FEC decoding technique of a DVB-H receiver which extracts an MPE section and an MPE-FEC section from a TS packet and configures the extracted data into MPE-FEC frames to restore an IP datagram is required. However, at present, a specific standard for the transmission technology of the DVB-H system has been prepared, but no specific method has been prepared for the reception technology such as the MPE-FEC decoding technology.

본 발명은 DVB-H 시스템에서 TS 패킷을 수신하여 방송 데이터인 IP 데이터그램을 복원하는 MPE-FEC 프레임의 복호 방법 및 장치를 제공하는 것이다.The present invention provides a method and apparatus for decoding an MPE-FEC frame that receives a TS packet in a DVB-H system and restores an IP datagram as broadcast data.

본 발명은 DVB-H 시스템의 수신기에서 프레임 버퍼에 대한 R-S 복호 시간을 감소시키기 위한 방법 및 장치를 제공한다. The present invention provides a method and apparatus for reducing the R-S decoding time for a frame buffer in a receiver of a DVB-H system.

본 발명에 따른 디지털 방송 시스템의 수신기에서 다중 프로토콜 캡슐화 순방향 오류 정정(MPE-FEC) 프레임을 복호하기 위한 방법은, 무선 망으로부터 수신된 버스트에 대해 프레임 버퍼와 이레이져 버퍼에 미리 정해진 영역을 할당하여 버퍼링하는 과정과, 상기 프레임 버퍼에 상기 버스트의 버퍼링이 완료되면 상기 버스트에 대해 리드-솔로몬 복호를 수행하는 과정과, 상기 리드-솔로몬 복호 수행 후에 상기 버스트에 대해 할당된 상기 이레이져 버퍼의 영역을 해제하는 과정과, 상기 버스트에 대한 이레이져 버퍼의 영역의 할당이 해제된 후 상기 프레임 버퍼에 버퍼링된 버스트를 인터페이스를 통해 출력하는 과정과, 상기 인터페이스를 통해 상기 버스트의 출력이 완료된 후 상기 버스트에 대해 할당된 상기 프레임 버퍼의 영역을 해제하는 과정을 포함한다.A method for decoding a multi-protocol encapsulated forward error correction (MPE-FEC) frame in a receiver of a digital broadcasting system according to the present invention comprises assigning a predetermined area to a frame buffer and an erasure buffer for a burst received from a wireless network. Buffering, performing a read-solomon decoding on the burst when buffering of the burst is completed in the frame buffer, and an area of the erasure buffer allocated for the burst after performing the read-solomon decoding. Releasing a buffer, a buffer buffered in the frame buffer after the allocation of the erasure buffer region to the burst is released through an interface, and outputting the burst to the burst after the output of the burst is completed through the interface. Freeing the area of the frame buffer allocated for The.

본 발명에 따른 디지털 방송 시스템의 수신기에서 다중 프로토콜 캡슐화 순 방향 오류 정정(MPE-FEC) 프레임을 복호하기 위한 장치는, 무선 망으로부터 수신된 버스트의 섹션 데이터를 버퍼링하는 프레임 버퍼와, 상기 수신된 버스트의 신뢰성 정보를 버퍼링하는 이레이져 버퍼와, 상기 프레임 버퍼에 상기 버스트의 버퍼링이 완료되면 상기 버스트에 대해 리드-솔로몬 복호를 수행하는 리드-솔로몬 복호기와, 상기 프레임 버퍼에 미리 정해진 영역을 할당하여 상기 수신된 버스트를 버퍼링하게 제어하고, 상기 이레이져 버퍼에 미리 정해진 영역을 할당하여 상기 버스트의 신뢰성 정보를 버퍼링하게 제어하고, 상기 리드-솔로몬 복호가 완료된 후에 상기 버스트에 대해 할당된 상기 이레이져 버퍼의 영역을 해제하고, 상기 버스트에 대한 이레이져 버퍼의 영역의 할당이 해제된 후 상기 프레임 버퍼에 버퍼링된 버스트를 인터페이스를 통해 출력하고, 상기 인터페이스를 통해 상기 버스트의 출력이 완료된 후 상기 버스트에 대해 할당된 상기 프레임 버퍼의 영역을 해제하는 주 제어 유닛을 포함한다.An apparatus for decoding a multi-protocol encapsulated forward error correction (MPE-FEC) frame in a receiver of a digital broadcasting system according to the present invention includes a frame buffer for buffering section data of a burst received from a wireless network, and the received burst. An erasure buffer for buffering reliability information of the buffer, a reed-solomon decoder for performing Reed-Solomon decoding on the burst when the burst is completed in the frame buffer, and a predetermined area is allocated to the frame buffer. Control to buffer the received burst, allocate a predetermined area to the eraser buffer to buffer the reliability information of the burst, and after the Reed-Solomon decoding is completed, the buffer of the eraser allocated for the burst Releases the region and returns the eraser buffer for A main control unit for outputting a burst buffered in the frame buffer through an interface after the reverse allocation is released, and releasing the area of the frame buffer allocated for the burst after the output of the burst through the interface is completed; Include.

이하 본 발명의 실시 예를 첨부한 도면을 참조하여 상세히 설명하기로 하겠다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의해야 한다. 하기에서 구체적인 특정사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해 제공된 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the same components in the figures represent the same numerals wherever possible. Specific details are set forth below, which are provided to aid a more general understanding of the present invention. In describing the present invention, when it is determined that description of related known functions or configurations may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted.

도 3은 본 발명이 적용되는 DVB-H 시스템에서 수신기의 내부 구성을 도시한 블록 구성도이다.3 is a block diagram showing an internal configuration of a receiver in a DVB-H system to which the present invention is applied.

도 3에서 무선망으로부터 수신된 TS 패킷은 안테나(301)를 통해 RF 복조기(303)로 수신되고, RF 복조기(303)를 통해 주파수 하향 변환되고 디지털 신호로 변환된 TS 패킷의 OFDM 심볼들은 FFT(Fast Fourier Transform)(305)를 통해 주파수 영역의 신호로 변환된다. 심볼 디매핑기(307)는 수신 신호를 QPSK, 16 QAM 혹은 64 QAM 등 정해진 변조 방식에 대응되게 심볼 디매핑하고, 심볼 디인터리버(309)와 비트 디인터리버(311)는 심볼 단위의 디인터리빙과 비트 단위의 디인터리빙을 각각 수행하여 원래 신호로 복원한다. In FIG. 3, the TS packets received from the wireless network are received by the RF demodulator 303 through the antenna 301, and the OFDM symbols of the TS packets which are frequency down-converted and converted into digital signals through the RF demodulator 303 are FFT ( Fast Fourier Transform (305) is converted into a signal in the frequency domain. The symbol demapper 307 symbol demaps the received signal according to a predetermined modulation scheme such as QPSK, 16 QAM, or 64 QAM, and the symbol deinterleaver 309 and the bit deinterleaver 311 are deinterleaved in symbol units. Each bit is deinterleaved to restore the original signal.

그리고 도 3에서 MPE-FEC 복호화기(315)는 패킷 식별자(Packet Identifier : PID) 필터링을 수행하여 TS 패킷의 헤더 정보로부터 패킷 식별자(Packet Identifier : PID)가 검출되면, MPE 섹션이나 MPE-FEC 섹션이 수신된 것으로 간주하고, PID가 검출되지 않은 경우 TS 패킷으로부터 프로그램 특정 정보와 서비스 정보(Program Specific Information/Service Information : PSI/SI)(이하, "방송 서비스 정보")를 이용하여 타임 슬라이싱과 MPE-FEC 적용 여부 등 방송 수신과 관련된 서비스 정보를 수신한다. 한편 상기 방송 서비스 정보(PSI/SI)를 수신한 MPE-FEC 복호화기(315)는 수신된 TS 패킷으로부터 MPE-FEC 프레임을 구성하는 MPE 섹션의 IP 데이터그램과 MPE-FEC 섹션의 패리티 데이터를 구분하여 각각 내부 버퍼의 데이터 영역과 패리티 영역에 저장하고, RS 복호를 수행하여 원래 방송 데이터를 복원한다. 또한, 각각의 MPE 섹션과 MPE-FEC 섹션에 포함되어 전송되는 델타-t 정 보(700)를 추출하여 타임 슬라이싱 처리기(313)로 전송한다.In FIG. 3, if the packet identifier (PID) is detected from the header information of the TS packet by performing the packet identifier filtering, the MPE-FEC decoder 315 performs an MPE section or an MPE-FEC section. Is regarded as received, and if no PID is detected, time slicing and MPE are performed using program specific information and service information (PSI / SI) (hereinafter referred to as "broadcast service information") from the TS packet. -Receive service information related to broadcast reception such as whether FEC is applied or not. Meanwhile, the MPE-FEC decoder 315 receiving the broadcast service information (PSI / SI) distinguishes the IP datagram of the MPE section constituting the MPE-FEC frame from the received TS packet and the parity data of the MPE-FEC section. The data is stored in the data area and the parity area of the internal buffer, and RS decoding is performed to restore the original broadcast data. In addition, the delta-t information 700 included in each MPE section and the MPE-FEC section is extracted and transmitted to the time slicing processor 313.

그리고 타임 슬라이싱 처리기(313)는 미리 정해진 버스트 구간 마다 MPE-FEC 프레임이 포함된 TS 패킷을 수신하도록 전체 수신기 블록(300)들을 스위칭하는 동작을 반복한다. 여기서 상기 버스트 구간은 각 MPE 섹션과 MPE-FEC 섹션의 헤더에 포함되어 다음 버스트 구간의 시작 시간을 지시하는 델타(Delta) t 정보를 수신하여 확인할 수 있다.The time slicing processor 313 repeats the switching of the entire receiver blocks 300 to receive the TS packet including the MPE-FEC frame for each predetermined burst period. Here, the burst section may be included in the header of each MPE section and the MPE-FEC section to receive delta t information indicating the start time of the next burst section.

도 4는 상기 도 3에 따른 MPE-FEC 프레임의 복호 방법을 개념적으로 도시한 순서도로서, 도 4의 각 과정은 도 3의 MPE-FEC 복호화기(315)를 통해 수행된다.4 is a flowchart conceptually illustrating a decoding method of an MPE-FEC frame according to FIG. 3, and each process of FIG. 4 is performed by the MPE-FEC decoder 315 of FIG. 3.

도 4의 401 단계에서 MPE-FEC 복호화기(315)는 물리 계층 복조기로부터 전달된 TS 패킷에 대해 PID 필터링을 수행하여 MPE 섹션 또는 MPE-FEC 섹션이 실려있는 TS 패킷을 검출하고 이외의 패킷은 방송 서비스 정보(PSI/SI)가 포함된 패킷으로 간주하여 타임 슬라이싱과 MPE-FEC 적용 여부를 확인한다. 본 발명은 MPE-FEC 프레임의 복호 방법을 제안한 것이므로 이하 설명에서 MPE-FEC는 적용되는 것으로 간주한다. 상기 401 단계에서 방송 서비스 정보(PSI/SI)를 이용하여 MPE-FEC 복호화기(315)는 헤더 정보에 MPE-PID가 포함된 TS 패킷을 수신한 경우 그 페이로드에 실린 데이터를 MPE 섹션 또는 MPE-FEC 섹션으로 간주한다.In step 401 of FIG. 4, the MPE-FEC decoder 315 performs PID filtering on a TS packet transmitted from a physical layer demodulator to detect a TS packet including an MPE section or an MPE-FEC section and broadcast other packets. It is regarded as a packet including service information (PSI / SI) and checks whether time slicing and MPE-FEC are applied. Since the present invention proposes a decoding method of the MPE-FEC frame, the MPE-FEC is considered to be applied in the following description. When the MPE-FEC decoder 315 receives the TS packet including the MPE-PID in the header information in step 401 using the broadcast service information (PSI / SI), the MPE section or MPE Consider it a FEC section.

403 단계에서 MPE-FEC 복호화기(315)는 TS 패킷으로부터 추출된 섹션 데이터의 헤더 정보로부터 테이블 아이디(table_id)를 확인하여 상기 섹션 데이터가 IP 데이터그램을 포함한 MPE 섹션인지 IP 데이터그램의 패리티 데이터가 포함된 MPE-FEC 섹션인지 판단한다. 상기 403 단계에서 수신된 데이터가 MPE 섹션으로 확인된 경우 MPE-FEC 복호화기(315)는 405단계로 진행하여 내부 버퍼의 데이터 영역에 해당 MPE 섹션의 IP 데이터그램을 프레임 버퍼링한다. 반면 상기 403 단계에서 상기 수신된 데이터가 MPE 섹션이 아니라면, MPE-FEC 복호화기(315)는 407단계에서 MPE-FEC 섹션을 수신했는지 여부를 검사한다. 상기 407단계의 검사결과 상기 수신된 데이터가 MPE-FEC 섹션으로 확인된 경우 MPE-FEC 복호화기(315)는 409단계로 진행하여 내부 버퍼의 패리티 영역에 해당 MPE-FEC 섹션의 패리티 데이터를 프레임 버퍼링한다.In step 403, the MPE-FEC decoder 315 checks a table ID (table_id) from the header information of the section data extracted from the TS packet, so that the parity data of the IP datagram indicates whether the section data is an MPE section including the IP datagram. Determine if it is an included MPE-FEC section. If the data received in step 403 is identified as an MPE section, the MPE-FEC decoder 315 proceeds to step 405 and frame buffers the IP datagram of the MPE section in the data area of the internal buffer. On the other hand, if the received data is not the MPE section in step 403, the MPE-FEC decoder 315 checks whether the MPE-FEC section is received in step 407. If the received data is found to be the MPE-FEC section as a result of the check in step 407, the MPE-FEC decoder 315 proceeds to step 409 to frame buffer parity data of the corresponding MPE-FEC section in the parity region of the internal buffer. do.

이후 411 단계에서 MPE-FEC 복호화기(315)는 MPE-FEC 섹션의 헤더 정보로부터 리얼 타임 파라미터(real time parameter)를 확인하여 현재 수신된 MPE-FEC 섹션이 MPE-FEC 프레임을 구성하는 마지막 MPE-FEC 섹션인지 확인한다. 상기 411 단계의 확인 결과 마지막 MPE-FEC 섹션이 아닌 경우 MPE-FEC 복호화기(315)는 상기 403 단계로 진행하여 프레임을 구성하는 MPE 섹션 또는 MPE-FEC 섹션을 계속적으로 수신하여 프레임 버퍼링하는 동작을 반복하여 수행하고, 마지막 MPE-FEC 섹션으로 확인된 경우 내부 버퍼에 저장된 패리티 데이터를 이용하여 IP 데이터그램의 오류를 정정을 수행하는 RS 복호를 수행한다.Thereafter, in step 411, the MPE-FEC decoder 315 checks a real time parameter from the header information of the MPE-FEC section, so that the currently received MPE-FEC section forms the last MPE-FEC frame. Make sure it is an FEC section. If the check result of step 411 is not the last MPE-FEC section, the MPE-FEC decoder 315 proceeds to step 403 and continuously receives and buffers an MPE section or an MPE-FEC section constituting a frame. Repeatedly, if it is confirmed as the last MPE-FEC section, RS decoding is performed to correct an error of the IP datagram using parity data stored in an internal buffer.

그리고 415 단계에서 MPE-FEC 복호화기(315)는 오류가 정정된 IP 데이터그램을 상위 계층으로 출력하고, IP 데이터그램은 사용자의 단말을 통해 방송 데이터로 표시된다.In step 415, the MPE-FEC decoder 315 outputs an IP datagram in which an error is corrected to a higher layer, and the IP datagram is displayed as broadcast data through a user terminal.

도 5는 본 발명의 제1 실시 예에 따른 도 3의 MPE-FEC 프레임 복호 장치의 내부 구성을 도시한 블록 구성도로서, 이는 도 3의 MPE-FEC 복호화기(315)의 구성 을 나타낸 것이다.FIG. 5 is a block diagram showing the internal configuration of the MPE-FEC frame decoding apparatus of FIG. 3 according to the first embodiment of the present invention, which shows the configuration of the MPE-FEC decoder 315 of FIG.

도 5의 장치는 수신된 TS 패킷으로부터 추출된 MPE 섹션의 IP 데이터그램과 MPE-FEC 섹션의 패리티 데이터를 일시 저장하기 위한 버퍼(510)와, 상기 패리티 데이터를 이용하여 IP 데이터그램의 오류 정정을 수행하는 RS 복호기(Decoder)(530)와, 송신기로부터 물리 계층을 통해 전달된 방송 서비스 정보(PSI/SI) 정보를 분석하여 MPE-FEC의 적용 여부를 확인함은 물론 MPE 섹션과 MPE-FEC 섹션으로부터 상기 IP 데이터그램과 패리티 데이터를 각각 추출하여 상기 버퍼(510)에 저장시키고, 다음 버스트 구간이 시작되는 시점을 나타내는 델타 t 정보를 근거로 버스트 구간 타이머(570)가 후술할 최대 버스트 구간을 계수한 결과에 따라 R-S 복호를 수행할 시점을 제어하고, 상기 RS 복호기(530)를 통해 상기 IP 데이터그램을 RS 복호하는 전반적인 동작을 제어하는 제어기(550)를 구비하여 구성된다.The apparatus of FIG. 5 includes a buffer 510 for temporarily storing the IP datagram of the MPE section and the parity data of the MPE-FEC section extracted from the received TS packet, and correcting an error of the IP datagram using the parity data. It analyzes the RS decoder 530 and the broadcast service information (PSI / SI) transmitted from the transmitter through the physical layer to check whether the MPE-FEC is applied, as well as the MPE section and the MPE-FEC section. Extracts the IP datagram and the parity data from each other and stores the IP datagram and parity data in the buffer 510, and counts the maximum burst section to be described later by the burst section timer 570 based on delta t information indicating a time point at which the next burst section starts. A controller 550 for controlling a time point for performing RS decoding and controlling overall operation of RS decoding the IP datagram through the RS decoder 530; It is composed.

도 5에서 상기 버퍼(510)는 MPE 섹션과 MPE-FEC 섹션에 대한 CRC를 수행하기 위한 순환 버퍼(circular buffer)(511)와, MPE 섹션의 IP 데이터그램과 MPE-FEC 섹션의 패리티 데이터를 구분되게 저장하고 RS 복호가 수행되는 프레임 버퍼(frame buffer)(513)와, 상기 CRC 결과에 따른 신뢰성 정보를 마킹하기 위한 이레이져 버퍼(erasure buffer)(515)를 포함하여 구성된다.In FIG. 5, the buffer 510 distinguishes between a circular buffer 511 for performing CRC on an MPE section and an MPE-FEC section, and an IP datagram of an MPE section and parity data of an MPE-FEC section. And a frame buffer 513 for storing and performing RS decoding, and an erasure buffer 515 for marking reliability information according to the CRC result.

상기 제어기(550)는 TS 패킷이 수신된 경우 먼저 방송 서비스 정보(PSI/SI) 정보를 분석하여 MPE-FEC의 적용 여부를 확인한 후, 이후 수신되는 TS 패킷으로부터 헤더 정보를 제거한 MPE 섹션 또는 MPE-FEC 섹션을 상기 순환 버퍼(511)에 저장하여 CRC를 수행한다.When the controller 550 receives the TS packet, the controller 550 first analyzes broadcast service information (PSI / SI) information to determine whether the MPE-FEC is applied and then removes the header information from the received TS packet. A FEC section is stored in the circular buffer 511 to perform CRC.

상기 CRC 결과가 'GOOD'인 경우 제어기(550)는 해당 섹션 데이터의 헤더 정보를 확인하여 MPE 섹션의 페이로드(IP 데이터그램)는 프레임 버퍼(513)의 방송 데이터 테이블 영역에 저장하고, MPE-FEC 섹션의 페이로드(패리티 데이터)는 프레임 버퍼(513)의 R-S 데이터 테이블 영역에 저장한다. 또한 제어기(550)는 상기 CRC 결과에 따라 IP 데이터그램과 패리티 데이터의 정상 수신 여부를 상기 이레이져 버퍼(515)에 신뢰성 정보로 마킹하고, 상기 RS 복호기(530)를 통해 수신 오류가 발생된 IP 데이터그램을 패리티 데이터를 이용하여 RS 복호하고, 오류를 정정하여 상위 계층으로 출력한다.If the CRC result is 'GOOD', the controller 550 checks header information of the corresponding section data, and the payload (IP datagram) of the MPE section is stored in the broadcast data table area of the frame buffer 513, and the MPE- The payload (parity data) of the FEC section is stored in the RS data table area of the frame buffer 513. In addition, the controller 550 marks whether the IP datagram and the parity data are normally received according to the CRC result as reliability information in the erasure buffer 515, and the reception error is generated through the RS decoder 530. The RS is decoded using the parity data, and the error is corrected and output to the upper layer.

상기 제어기(550)는 상기 이레이져 버퍼(515)의 모든 영역에 신뢰성 정보가 마킹된 경우(즉, MPE-FEC 프레임의 모든 IP 데이터그램이 정상 수신된 경우) 상기 RS 복호 동작을 생략한다. The controller 550 omits the RS decoding operation when reliability information is marked on all regions of the erasure buffer 515 (that is, when all IP datagrams of the MPE-FEC frame are normally received).

또한, 도시되지 않은 타임 슬라이싱 처리기(313)의 제어부는 검출된 버스트 경계를 근거로 버스트 구간 타이머(570)가 버스트 구간 타이머를 계수하게 제어하고, 상기 버스트 구간 타이머(570)가 버스트 구간을 계수하면, 제어기(550)는 상기 R-S 복호를 수행하게 된다. 이때, 타임 슬라이싱 처리기(313)의 제어기는 상술한 리얼 타임 파라미터의 델타 t 정보를 근거로 다음 버스트 구간이 시작될 시점을 상기 버스트 구간 타이머(570)로 전송하며, 버스트 구간 타이머(570)는 상기 델타 t 정보를 근거로 미리 정해진 시간을 계수할 시점을 알 수 있게 된다.In addition, the controller of the time slicing processor 313 (not shown) controls the burst interval timer 570 to count the burst interval timer based on the detected burst boundary, and when the burst interval timer 570 counts the burst interval. The controller 550 performs the RS decoding. At this time, the controller of the time slicing processor 313 transmits to the burst interval timer 570 the start time of the next burst interval based on the delta t information of the real time parameter described above, and the burst interval timer 570 may transmit the delta. Based on the t information, it is possible to know when to count a predetermined time.

또한, 제어기(550)는 방송 서비스 정보에 포함된 최대 버스트 구간 정보(max_burst_duration)에 포함된 최대 버스트 구간을 상기 버스트 구간 타이 머(570)가 계수하였는지 여부를 주기적으로 측정함으로써, 버스트 구간이 종료되었는지를 알 수 있다. In addition, the controller 550 periodically measures whether the burst duration timer 570 counts the maximum burst duration included in the maximum burst duration information max_burst_duration included in the broadcast service information, thereby determining whether the burst duration has ended. It can be seen.

따라서, 제어기(550)는 상기 값을 근거로 RS 복호를 위해 RS 복호기를 제어할 시점이나, 수신된 IP 데이터그램을 상위 계층으로 전송하게 된다. Accordingly, the controller 550 transmits the received IP datagram to the upper layer at the time of controlling the RS decoder for RS decoding based on the value.

여기서, 최대 버스트 구간 정보는 DVB-H 시스템에서 타임 슬라이싱 방식으로 MPE-FEC 프레임을 전송할 시 전송되는 버스트 구간의 최대 크기를 의미하며, 상기 버스트 구간 타이머(570)는 이전 버스트 구간에 상기 타임 슬라이싱 처리기(313)의 제어기로부터 수신한 델타 t 정보가 지시하는 버스트 구간 시작 시점부터 최대 버스트 구간(max_burst_duration)을 계수한다.Here, the maximum burst duration information means the maximum size of the burst duration transmitted when the MPE-FEC frame is transmitted by the time slicing scheme in the DVB-H system, and the burst duration timer 570 is the time slicing processor in the previous burst duration. The maximum burst period max_burst_duration is counted from the burst period start time indicated by the delta t information received from the controller 313.

버스트 구간 타이머(Burst Duration Timer)(570)는 타임 슬라이싱 처리기(313)에 구비되어 있으며, DVB-H 시스템의 송신단에서 MPE-FEC 프레임을 송신하는 버스트 구간 동안만 동작하는 타이머이다. 즉, 상술한 바와 같이 버스트 구간 타이머(570)는 타임 슬라이싱 처리기(313)의 제어기의 제어에 의해 송신단에서 전송한 MPE-FEC 프레임의 수신이 시작됨과 동시에 버스트 구간을 계수(計數)(count)하며, 버스트 구간의 종료 시점을 MPE-FEC 복호화기(315)의 제어기(550)으로 알려줄 수도 있으며, 제어기(550)가 상기 버스트 구간 타이머(570)의 계수가 종료된 시점을 검사함으로써, 버스트 구간의 종료 시점을 알 수 있다. The burst duration timer 570 is provided in the time slicing processor 313 and is a timer that operates only during the burst period in which the transmitting end of the DVB-H system transmits the MPE-FEC frame. That is, as described above, the burst period timer 570 starts to receive the MPE-FEC frame transmitted from the transmitting end under the control of the controller of the time slicing processor 313 and simultaneously counts the burst period. The controller 550 of the MPE-FEC decoder 315 may be notified of the end time of the burst period, and the controller 550 examines the time point at which the count of the burst period timer 570 is terminated. Know when to end.

상기 버스트 구간 타이머(570)가 미리 정해진 시간을 계수하면, 제어기(550)는 이를 근거로 RS 복호할 시점, 또는 수신된 IP 데이터그램을 상위 계층으로 전송할 시점을 알 수 있다.When the burst duration timer 570 counts a predetermined time, the controller 550 may know when to decode the RS or when to transmit the received IP datagram to the higher layer based on the burst duration timer 570.

만일, 마지막 섹션이 제대로 수신되어 프레임 경계값 필드가 "1"로 설정되어 있다면, 제어기(550)는 프레임 버퍼(513)에 프레임 버퍼링이 종료됨과 동시에 R-S 복호기(530)로 하여금 RS 복호를 수행하게 제어하며, 그렇지 않은 경우에는 버스트 구간 타이머(570)가 버스트 구간의 시간을 계수하여 "0"을 출력하는 순간에 MPE-FEC 프레임의 수신이 완료되었다고 간주하여 RS 복호를 시작하게 RS 복호기(530)를 제어하거나, 수신된 MPE 섹션을 상위 계층으로 전송한다.If the last section is properly received and the frame boundary value field is set to '1', the controller 550 causes the RS decoder 530 to perform RS decoding at the same time that frame buffering is terminated in the frame buffer 513. If not, the RS decoder 530 starts the RS decoding by considering that the reception of the MPE-FEC frame is completed at the moment when the burst duration timer 570 counts the time of the burst duration and outputs "0". Control or transmit the received MPE section to a higher layer.

도 6a 내지 도 6b는 본 발명의 제1 실시 예에 따른 DVB-H 수신기에서 MPE-FEC 프레임의 복호 방법을 상세히 도시한 순서도이다.6A to 6B are flowcharts showing in detail a method of decoding an MPE-FEC frame in a DVB-H receiver according to a first embodiment of the present invention.

먼저, 600단계에서 도 5의 제어기(550)는 물리 계층으로부터 TS 패킷을 수신하고, 602단계에서 수신된 TS 패킷에 대해 PID 필터링을 수행한다. 상기 PID 필터링 결과 MPE 섹션 또는 MPE-FEC 섹션이 실려있는 TS 패킷의 MPE PID가 검출되지 않은 것으로 확인되면, 제어기(550)는 604단계에서 해당 TS 패킷을 방송 서비스 정보(PSI/SI)를 전달하는 패킷으로 간주하고, 그 방송 서비스 정보(PSI/SI)를 분석하여 타임 슬라이싱과 MPE-FEC의 적용 여부를 확인한다. 그리고, 제어기(550)는 상기 600단계로 진행하여 다음 TS 패킷을 수신하고, 수신된 TS 패킷으로부터 MPE-PID 가 검출된 경우 해당 TS 패킷을 MPE 섹션 또는 MPE-FEC 섹션이 실려있는 TS 패킷으로 간주하고, 606단계로 진행한다.First, in step 600, the controller 550 of FIG. 5 receives a TS packet from a physical layer, and performs PID filtering on the received TS packet in step 602. If the PID filtering result indicates that the MPE PID of the TS packet including the MPE section or the MPE-FEC section is not detected, the controller 550 transmits broadcast service information (PSI / SI) to the corresponding TS packet in step 604. The packet is regarded as a packet, and the broadcast service information (PSI / SI) is analyzed to determine whether time slicing and MPE-FEC are applied. In step 600, the controller 550 receives the next TS packet. When the MPE-PID is detected from the received TS packet, the controller 550 regards the TS packet as a TS packet including an MPE section or an MPE-FEC section. Proceed to step 606.

606단계에서 제어기(550)는 상기 604단계의 방송 서비스 정보(PSI/SI) 분석 결과를 이용하여 MPE-FEC가 적용되는 것으로 확인된 경우 TS 패킷으로부터 4 바이트 헤더 부분을 제거하고 184 바이트 페이로드 부분을 도 5의 순환 버퍼(511)에 바 이트 단위로 순차적으로 저장한다. 상기 순환 버퍼링(Circular buffering)의 목적은 현재 수신된 MPE 섹션 또는 MPE-FEC 섹션에 대해 CRC를 수행하고 IP 데이터그램 또는 패리티 데이터로 구성된 섹션의 페이로드가 프레임 버퍼(513)로 전달될 때까지 수신되는 데이터를 저장하는 것이다. 순환 버퍼(511)의 마지막 주소가 데이터로 채워지면 다음 저장 위치는 0번 주소가 된다.In step 606, the controller 550 removes the 4-byte header portion from the TS packet and determines the 184-byte payload portion when it is determined that MPE-FEC is applied using the analysis result of the broadcast service information (PSI / SI) in step 604. Are stored sequentially in byte units in the circular buffer 511 of FIG. The purpose of the circular buffering is to perform CRC on the currently received MPE section or MPE-FEC section and receive until the payload of the section consisting of IP datagram or parity data is delivered to the frame buffer 513. Is to store the data. When the last address of the circular buffer 511 is filled with data, the next storage location is address 0.

또한 상기 606 단계에서 제어기(550)는 TS 패킷의 페이로드로 전송되는 MPE 섹션 또는 MPE-FEC 섹션의 시작과 끝을 확인하고, 이 섹션들이 구성하는 MPE-FEC 프레임에 대해 RS 복호를 수행하기 위한 신뢰성 정보를 얻기 위하여 후술할 테이블 아이디(table_id)의 검출 시마다 CRC 검사를 수행한다. 이 과정을 섹션 검출(Section Detection)이라 칭하기로 한다. MPE 섹션 또는 MPE-FEC 섹션 전체는 예컨대, 32 비트의 CRC 데이터가 각 섹션의 끝 부분에 부가되어 전송된다. 본 발명에서 제어기(550)는 CRC 'GOOD'이 발생하면 CRC 'GOOD'을 발생시킨 검사 구간에 적어도 1개의 MPE 섹션 또는 MPE-FEC 섹션이 존재한다고 간주하고 그 섹션의 헤더 정보로부터 MPE-FEC 프레임 복호에 필요한 정보를 추출한다.In addition, in step 606, the controller 550 checks the start and end of the MPE section or the MPE-FEC section transmitted in the payload of the TS packet, and performs RS decoding on the MPE-FEC frames configured by the sections. In order to obtain reliability information, a CRC check is performed each time a table ID (table_id) to be described later is detected. This process will be referred to as section detection. The MPE section or the entire MPE-FEC section is transmitted, for example, with 32 bits of CRC data appended to the end of each section. In the present invention, when the CRC 'GOOD' occurs, the controller 550 considers that at least one MPE section or MPE-FEC section exists in the test section that generated the CRC 'GOOD' and the MPE-FEC frame from the header information of the section. Extract information needed for decoding.

하기 <표 1>은 MPE 섹션 또는 MPE-FEC 섹션으로부터 추출되는 헤더 정보 중 MPE-FEC 프레임의 복호 과정에서 요구되는 정보들을 나타낸 것이다.Table 1 below shows information required in a decoding process of an MPE-FEC frame among header information extracted from an MPE section or an MPE-FEC section.

헤더 정보Header information 내 용Contents table_idtable_id MPE 섹션 또는 MPE-FEC 섹션의 종류를 지시함 Indicates the type of MPE section or MPE-FEC section section_lengthsection_length 섹션의 4번째 바이트부터 CRC 32 비트가 포함된 섹션의 끝까지 바이트 단위의 섹션 길이를 나타냄 Indicates the section length in bytes from the fourth byte of the section to the end of the section containing CRC 32 bits. padding_columnspadding_columns MPE-FEC 프레임의 방송 데이터 테이블 영역에서 제로 패딩된 컬럼의 개수를 나타냄(0~190 사이의 값을 가짐)  Indicates the number of zero-padded columns in the broadcast data table area of the MPE-FEC frame (has a value between 0 and 190) table_boundarytable_boundary 현재 섹션이 MPE-FEC 프레임의 방송 데이터 테이블 영역 또는 R-S 데이터 테이블 영역에서 마지막 섹션임을 지시함('1'로 설정된 경우) Indicates that the current section is the last section in the broadcast data table area or R-S data table area of the MPE-FEC frame (when set to '1'). addressaddress MPE-FEC 프레임의 각 영역에서 현재 수신된 섹션의 페이로드의 첫 번째 바이트가 차지하는 바이트 위치를 나타냄 Indicates the byte position occupied by the first byte of the payload of the currently received section in each region of the MPE-FEC frame.

상기 제어기(550)는 상기와 같은 CRC 검사를 수행하도록 적어도 하나의 CRC 검사기(도시되지 않음)를 구비한다. 상기 제어기(550)는 바람직하게 CRC 검사가 'GOOD'이 나올 때까지 테이블 아이디(table_id)의 검출 시마다 새로운 CRC 검사기를 할당하여 다중의 CRC 검사를 수행할 수 있다. 제어기(550)는 상기 606 단계에서 검출된 섹션 데이터의 헤더 정보를 추출한 후, CRC 'GOOD'을 발생시킨 CRC 검사기의 CRC 검사 구간과, 상기 <표 1>의 헤더 정보 중 섹션 길이(section_length)를 비교하여 섹션 길이와 CRC 검사 구간이 일치되는 경우 정상적으로 수신된 섹션임을 최종 확인하며, 이 동작은 섹션 검출을 보다 정확히 수행하기 위한 것으로 선택적으로 수행하는 것이 가능하다.The controller 550 includes at least one CRC checker (not shown) to perform such a CRC check. The controller 550 may assign a new CRC checker every time a table ID (table_id) is detected until the CRC check is 'GOOD', thereby performing multiple CRC checks. After extracting the header information of the section data detected in step 606, the controller 550 extracts a CRC test section of the CRC checker that generates the CRC 'GOOD' and a section length (section_length) of the header information of the <Table 1>. In comparison, when the section length and the CRC test interval coincide with each other, the terminal finally confirms that the received section is normal. This operation is to perform section detection more accurately and may be selectively performed.

상기 606 단계에 따라 섹션 검출이 완료되면, 제어기(550)는 608 단계에서 검출된 섹션의 헤더 정보로부터 상기 <표 1>의 테이블 아이디(table_id)를 판독하여 검출된 섹션이 MPE 섹션 또는 MPE-FEC 섹션 중 어느 섹션인지 확인한다. 상기 608 단계에서 MPE 섹션으로 확인된 경우 제어기(550)는 612단계로 진행하여 MPE 섹션으로부터 헤더 정보와 CRC 비트들을 제거한 후, 프레임 버퍼(513)의 방송 데이터 테이블 영역에 해당 MPE 섹션의 IP 데이터그램을 프레임 버퍼링한다. 그리고 상기 610 단계에서 프레임 버퍼링되는 IP 데이터그램은 CRC 검사를 거친 신뢰할 수 있는 데이터이므로 제어기(550)는 614 단계에서 해당 IP 데이터그램의 바이트들에 대한 신뢰성 정보를 이레이져 버퍼(515)에 마킹(Marking)한다.When section detection is completed according to step 606, the controller 550 reads the table ID table_id of Table 1 from the header information of the section detected in step 608, so that the detected section is an MPE section or an MPE-FEC. Check which section it is. If the MPE section is determined in step 608, the controller 550 removes the header information and the CRC bits from the MPE section in step 612, and then the IP datagram of the corresponding MPE section in the broadcast data table area of the frame buffer 513. Buffer the frame. Since the IP datagram frame-buffered in step 610 is reliable data that has undergone CRC checking, the controller 550 marks reliability information on bytes of the corresponding IP datagram in the erasure buffer 515 in step 614. Marking).

반면, 608단계에서 제어기(550)는 섹션의 헤더 정보로부터 상기 <표 1>의 테이블 아이디(table_id)를 조회하여 606단계에서 검출된 섹션이 MPE-FEC 섹션에 해당되는 경우 610단계로 진행하여 MPE-FEC 섹션의 헤더 정보로부터 패딩 컬럼수 정보(padding_columns)를 조회하여 방송 데이터 테이블 영역에 데이터 대신 '0'이 채워질 부분을 확인한다. 즉 MPE-FEC 프레임의 두 영역 중에서 방송 데이터 테이블 영역은 송신측에서 IP 데이터그램들로 모두 채워지지 않은 채 전송될 수 있다. 이러한 경우 채워지지 않은 방송 데이터 테이블 영역은 '0' 바이트로 대신 채워서(이하, "제로 패딩") RS 부호화되고, 실제 전송은 이루어지지 않는다.On the other hand, in step 608 the controller 550 inquires the table ID (table_id) of the <Table 1> from the header information of the section and if the section detected in step 606 corresponds to the MPE-FEC section proceeds to step 610 MPE The padding column number information (padding_columns) is queried from the header information of the -FEC section to identify a portion in which the '0' is filled in the broadcast data table region instead of the data. That is, the broadcast data table area of the two areas of the MPE-FEC frame may be transmitted without being filled with all IP datagrams at the transmitting side. In this case, the unfilled broadcast data table area is RS coded instead of filled with '0' bytes (hereinafter referred to as "zero padding"), and no actual transmission is performed.

따라서 수신측에서 MPE-FEC 프레임의 복호를 정확히 수행하려면 RS 복호를 수행하기 전에 전송되지 않은 패딩 컬럼 부분을 다시 제로 패딩해야 한다. 상기 제로 패딩된 부분은 컬럼 단위로 그 개수가 지시되며, 제어기(550)는 상기 패딩 컬럼수 정보(padding_columns)를 조회하여 제로 패딩을 수행한다. 이 정보는 헤더 정보 추출 과정 중에 알 수 있고 RS 복호가 수행되기 전에 해당되는 컬럼 수 만큼 제로 패딩이 이루어져야 한다. 이러한 과정을 패딩 컬렁 처리(Padding Column processing)(610)라 한다.Therefore, in order to correctly perform decoding of the MPE-FEC frame at the receiver, zero padding of a non-transmitted padding column portion must be performed before RS decoding. The number of zero padded portions is indicated in units of columns, and the controller 550 inquires the padding column number information padding_columns and performs zero padding. This information can be known during the header information extraction process, and zero padding must be performed for the corresponding number of columns before RS decoding is performed. This process is called padding column processing 610.

패딩 컬럼 처리(610)단계에서는 제어기(550)는 두 가지 경우로 구분되어 수행된다. 첫 번째는 송신측에서 전송한 마지막 MPE 섹션의 IP 데이터그램이 제대로 수신된 경우이고, 두 번째는 상기 마지막 MPE 섹션의 IP 데이터그램이 제대로 수신되지 않은 경우이다.In the padding column process 610, the controller 550 is divided into two cases. The first is a case where the IP datagram of the last MPE section transmitted by the sender is properly received, and the second is a case where the IP datagram of the last MPE section is not properly received.

상기 첫 번째 경우 제어기(550)는 마지막 MPE 섹션 이후부터 방송 데이터 테이블 영역의 나머지 영역을 제로 패딩하고, 대응되는 이레이져 버퍼(515)의 위치에 신뢰성 정보를 마킹한다. 반면 상기 두 번째 경우는 마지막 MPE 섹션이 제대로 수신되지 않아 제로 패딩을 정확히 어느 바이트부터 시작해야 하는지 알 수 없는 경우이므로 제어기(50)는 신뢰되지 못한 부분을 제외하고, 패딩 컬럼수 정보(padding_columns)가 지시하는 패딩 컬럼수에 해당하는 바이트들만을 제로 패딩하고, 제로 패딩된 부분을 신뢰성 정보로 마킹한다.In the first case, the controller 550 zero-pads the remaining area of the broadcast data table area after the last MPE section and marks reliability information at the position of the corresponding erasure buffer 515. On the other hand, in the second case, since the last MPE section is not properly received, it is not possible to know exactly which byte to start with zero padding. Thus, the controller 50 has no padding column information (padding_columns) except for an untrusted part. Only the bytes corresponding to the indicated padding column number are zero padded, and the zero padded portion is marked with reliability information.

한편 상기 614단계에 따라 이레이져 버퍼(515)에 신뢰성 정보를 마킹한 후, 제어기(550)는 616단계에서 수신된 MPE-FEC 섹션이 마지막 섹션인지 여부를 확인한다. 이때, 제어기(550)는 테이블 경계 정보(table_boundary)를 조회하여 해당 MPE-FEC 섹션이 R-S 데이터 테이블을 채우는 마지막 MPE-FEC 섹션인지 확인한다. 상기 MPE-FEC 섹션이 마지막 섹션이라면, 618단계에서 이레이져 버퍼(515)의 신뢰성 정보를 조회하여 수신된 방송 데이터 테이블(Application data table)내 모든 IP 데이터그램에 대해 신뢰성 정보가 마킹되어 있는 지 확인한다.Meanwhile, after marking reliability information on the erasure buffer 515 in step 614, the controller 550 checks whether the received MPE-FEC section is the last section in step 616. At this time, the controller 550 queries the table boundary information (table_boundary) to determine whether the corresponding MPE-FEC section is the last MPE-FEC section that fills the R-S data table. If the MPE-FEC section is the last section, in step 618, the reliability information of the erasure buffer 515 is inquired to check whether the reliability information is marked for all IP datagrams in the received application data table. do.

상기 618단계의 확인 결과 모든 IP 데이터그램에 대해 신뢰성 정보가 마킹되어 있는 경우는 방송 데이터 테이블 영역내 모든 IP 데이터그램이 정상적으로 수신된 경우로서 이 경우에 제어기(550)는 624단계로 진행하여 오류 정정을 위한 RS 복호를 생략하고, 프레임 버퍼(513)의 IP 데이터그램들을 그대로 상위 계층으로 출력한다. 반면 상기 618 단계의 확인 결과 방송 데이터 테이블 영역내 적어도 하나의 IP 데이터그램이라도 신뢰성 정보가 마킹되어 있지 않은 경우는 620단계로 진행하여 버스트 구간 타이머(570)가 미리 정해진 시간인 "0"을 계수하였는지를 검사한다. 상기 버스트 시작/종료 신호는 타임 슬라이싱 처리기(313) 또는 버스트 구간 타이머(570)에서 발생할 수도 있으며, 프레임/이레이져 버퍼 제어기(550b)가 입력받아 상술한 동작을 수행하게 된다. If the reliability information is marked for all IP datagrams as a result of the check in step 618, all IP datagrams in the broadcast data table area are normally received. In this case, the controller 550 proceeds to step 624 to correct errors. RS decoding is omitted, and IP datagrams of the frame buffer 513 are output to the upper layer as they are. On the other hand, if the reliability information is not marked even in at least one IP datagram in the broadcast data table region as a result of step 618, the process proceeds to step 620 to determine whether the burst duration timer 570 counts a predetermined time "0". Check it. The burst start / end signal may be generated by the time slicing processor 313 or the burst period timer 570, and the frame / erase buffer controller 550b is input to perform the above-described operation.

그리고, 상기 620단계에서 제어기(550)는 버스트 구간 타이머(570)가 미리 정해진 시간을 계수하였음을 검사하면, 622단계에서는 제어기(550)는 RS 복호기(530)을 통해 수신된 MPE 섹션을 R-S 복호한 후, 624단계로 진행하여 IP 데이터그램을 상위 계층으로 전송한다.If the controller 550 checks that the burst duration timer 570 has counted a predetermined time in step 620, the controller 550 RS decodes the MPE section received through the RS decoder 530 in step 622. In operation 624, the IP datagram is transmitted to the upper layer.

반면, 상기 620단계의 검사 결과 상기 버스트 구간 타이머(570)가 미리 정해진 시간을 계수하지 않았다면, 제어기(550)는 626단계로 진행하여 MPE 섹션의 끝이 TS 패킷의 끝과 일치되는지 확인한다. 상기 626단계의 확인 결과 MPE 섹션의 끝이 TS 패킷의 끝과 일치하는 경우 제어기(550)는 상기 600단계로 진행하여 다음 TS 패킷을 수신하고, 일치하지 않는 경우는 상기 606 단계로 진행하여 현재 수신된 TS 패킷으로부터 다음 MPE 섹션 또는 MPE-FEC 섹션을 검출한다.On the other hand, if the burst interval timer 570 does not count the predetermined time as a result of the check in step 620, the controller 550 proceeds to step 626 to check whether the end of the MPE section is consistent with the end of the TS packet. If the end of the MPE section coincides with the end of the TS packet as a result of step 626, the controller 550 proceeds to step 600 to receive the next TS packet, and if it does not match, proceeds to step 606 to receive the current. The next MPE section or MPE-FEC section from the detected TS packet.

상술한 바와 같은 DVB-H 시스템의 수신기는 물리 계층을 통해 수신된 TS 패킷으로부터 순수한 IP 데이터그램을 복원하기 위해서는 TS 패킷에서 섹션을 검출해내야 한다. 그리고 각 섹션의 페이로드들은 MPE-FEC 프레임으로 재구성되어야 하고 R-S 복호화 과정이 수행되면 IP 데이터그램으로 복원될 수 있다. 도 3내지 도 6에서 설명한 본 발명의 제1 실시 예에 따른 DVB-H 시스템의 수신기에서는 TS 패킷으로부터 MPE 또는 MPE-FEC 섹션을 검출해내고 검출한 섹션을 가지고 MPE-FEC 프레임 전체를 수신기가 재구성하는 일련의 과정에 대해 설명하였다. 그러나, 상술한 도 3내지 도 6에서 설명한 제1 실시 예에 따라 DVB-H 수신기를 구현하기 위해서는 중요한 몇 가지 사항들이 누락되었다.The receiver of the DVB-H system as described above must detect a section in the TS packet in order to recover the pure IP datagram from the TS packet received through the physical layer. The payloads of each section must be reconstructed into MPE-FEC frames and can be restored to an IP datagram when the R-S decoding process is performed. In the receiver of the DVB-H system according to the first embodiment of the present invention described with reference to FIGS. 3 to 6, the MPE or MPE-FEC section is detected from the TS packet, and the receiver reconstructs the entire MPE-FEC frame with the detected section. A series of procedures were described. However, in order to implement the DVB-H receiver according to the first embodiment described with reference to FIGS. 3 to 6, some important points are omitted.

먼저, 제1 실시 예에 따라 CRC 검사를 통해 검출된 섹션 및 패딩 컬럼 위치에서만 신뢰성 정보가 굿(good)으로 업데이트되고, 나머지 위치는 모두 배드(bad)로 간주되어 RS 복호 수행 시 이레이져(Erasure)로 처리된다. 이레이져가 정상적으로 입력되지 않는다면 RS 복호기(530)는 정상적으로 복호를 수행할 수 없게 된다. 따라서, 이레이져 버퍼(515)는 모두 비 신뢰성 정보(unreliable)로 초기화되어야 한다. 상술한 도 3내지 도 6에는 이러한 이레이져 버퍼(515)의 초기화 동작이 제1 실시 예에서는 기술되어 있지 않았다.First, reliability information is updated to good only at sections and padding column positions detected through CRC checking according to the first embodiment, and all remaining positions are considered bad and erased when performing RS decoding. ) If the eraser is not normally input, the RS decoder 530 cannot perform decoding normally. Thus, the erasure buffers 515 must all be initialized with unreliable information. 3 to 6 described above, the initialization operation of the erasure buffer 515 is not described in the first embodiment.

또한, 도 6에서 제어기(550)는 MPE-FEC 섹션을 수신한 경우, 매번 해당 섹션에 대한 프레임 버퍼링과 신뢰성 정보 마킹 수행 이전에 패딩 컬럼 처리를 수행한다. 패딩 컬럼 처리는 앞에서 언급한 바와 같이 패딩 컬럼에 대하여 "0"값을 프레임 버퍼링하고 신뢰성 정보를 마킹하는 것이다. 이러한 동작은 패딩 컬럼의 수에 따라 상당한 시간을 소요할 수 있다. 현재 MPE-FEC 섹션을 검출한 후에도 지속적으로 TS 패킷이 MPE-FEC 복호화기(315)로 입력되므로 상술한 도 3내지 도 6에 따른 본 발명의 제1 실시 예에 따른 DVB-H 수신기는 패킷 데이터를 처리하는 문제를 발생시키게 된다.In addition, in FIG. 6, when the controller 550 receives the MPE-FEC section, the controller 550 performs padding column processing before performing frame buffering and reliability information marking on the section each time. Padding column processing is to frame-buffer " 0 " values and mark reliability information for padding columns as mentioned above. This operation can take considerable time depending on the number of padding columns. Since the TS packet is continuously input to the MPE-FEC decoder 315 even after detecting the current MPE-FEC section, the DVB-H receiver according to the first embodiment of the present invention according to FIGS. It will cause problems to deal with.

또한, RS 복호는 row 단위로 수행된다. 그러나, 상술한 도 3내지 도 6에 도시된 것과 같은 본 발명의 제1 실시 예에 따른 DVB-H 수신기에서는 R-S 복호기(530)를 제어하고 결과를 어떻게 처리할 것인지에 대한 기술이 없었다.In addition, RS decoding is performed in row units. However, in the DVB-H receiver according to the first embodiment of the present invention as shown in FIGS. 3 to 6 described above, there is no description on how to control the R-S decoder 530 and process the result.

마지막으로 프레임 버퍼(513) 전체에 대해여 R-S 복호가 수행된 후에 IP 데이터그램을 출력해야 하나, 상술한 제1 실시 예에 따른 DVB-H 수신기에서는 어떠한 방법으로 IP 데이터그램을 출력하는지에 대한 기술이 없었다.Finally, the IP datagram should be output after RS decoding is performed on the entire frame buffer 513. However, the description of how the DVB-H receiver outputs the IP datagram according to the first embodiment. There was no.

따라서, 이하 본 발명의 제2 실시 예에서는 상술한 바와 같은 제1 실시 예에서의 문제점들을 보완한 DVB-H 수신기에서 MPE-FEC 복호화기의 블록 구성 및 방법 흐름도에 대해 설명하기로 한다.Accordingly, a second embodiment of the present invention will be described with respect to the block configuration and method flow diagram of the MPE-FEC decoder in the DVB-H receiver to compensate for the problems in the first embodiment as described above.

도 7은 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)의 구성도이다. 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)는 DVB-H 물리 계층 수신기(700)와 로컬 동기 시리얼 포트(Local Syncronous Serial Port)(702)에 접속된다.7 is a configuration diagram of an MPE-FEC decoder 315 according to a second embodiment of the present invention. The MPE-FEC decoder 315 according to the second embodiment of the present invention is connected to a DVB-H physical layer receiver 700 and a local syncronous serial port 702.

본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)의 제어기(550)는 MPE PID 및 MPE 섹션 검출기(550a)와 프레임/이레이져(Frame/Erasure) 버퍼 및 RS 복호기 제어기(550b)로 구성된다.The controller 550 of the MPE-FEC decoder 315 according to the second embodiment of the present invention includes an MPE PID and an MPE section detector 550a, a frame / eraser buffer, and an RS decoder controller 550b. It consists of.

MPE PID 및 MPE 섹션 검출기(550a)는 순환 버퍼(511)를 제어하며, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 프레임 버퍼(513)와 이레이져 버퍼(515), 그리고 RS 복호기(530)를 제어한다. The MPE PID and MPE section detector 550a controls the circular buffer 511, and the frame / eraser buffer and RS decoder controller 550b is the frame buffer 513 and eraser buffer 515, and the RS decoder 530. ).

기본적으로 본 발명의 제2 실시 예에 따라 MPE-FEC 복호기(315)가 수행하는 동작은 제1 실시 예와 비슷하다. 그러나 제2 실시 예에서는 제1 실시 예에 비해 추가로 IP 패킷 출력을 위해 Local SSP 블록(702) 및 시리얼 인터페이스(704)와 버스 인터페이스 제어기(710)가 추가되었다.Basically, according to the second embodiment of the present invention, the operation performed by the MPE-FEC decoder 315 is similar to that of the first embodiment. However, in the second embodiment, the Local SSP block 702, the serial interface 704, and the bus interface controller 710 are added to output the IP packet more than the first embodiment.

제2 실시 예에 따라 추가된 로컬 동기 시리얼 포트(702)는 IP 데이터그램을 serial 형태로 직접 어플리케이션 프로세서(도시되지 않음)으로 출력하고, 버스 인터페이스 제어기(710)는 IP 데이터그램을 APB(Advanced Peripheral Bus) 또는 AHB(Advanced High-performance Bus) 와 같은 버스(Bus)(706)를 통해 DVB-H 수신기 내의 프로세서(708)로 출력한다.The local synchronous serial port 702 added according to the second embodiment outputs the IP datagram in serial form directly to an application processor (not shown), and the bus interface controller 710 outputs the IP datagram in Advanced Peripheral (APB). Bus 706, such as Bus) or Advanced High-performance Bus (AHB), to the processor 708 in the DVB-H receiver.

본 발명의 제2 실시 예에 따른 DVB-H 수신기 내의 프로세서(708)로 IP 데이터그램을 출력하는 경우, 프레임/ 이레이져 버퍼 및 RS 복호기 제어기(550b)는 프로세서(708)가 한 버스트에 대한 MPE-FEC 프레임 복호의 종료 시점을 알 수 있도록 하기 위해 프로세서(708)로 인터럽트 신호를 발생한다.When outputting an IP datagram to a processor 708 in a DVB-H receiver according to a second embodiment of the present invention, the frame / eraser buffer and RS decoder controller 550b may cause the processor 708 to perform an MPE for one burst. Generate an interrupt signal to the processor 708 so that the end point of FEC frame decoding is known.

제2 실시 예에서 이레이져 버퍼(513)의 비신뢰성 정보(unreliable) 마킹 동작은 버퍼 초기화를 통해 수행된다. 즉, MPE PID 및 MPE 섹션 검출기(55a)로부터 검출된 섹션이 입력되면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 이레이져 버퍼(513)의 해당 위치에 신뢰성 정보(reliable)가 마킹되기 이전에, 해당 주소를 비신뢰성(unreliable)으로 초기화되어 있도록 한다.In the second embodiment, the unreliable marking operation of the erasure buffer 513 is performed through buffer initialization. That is, when a section detected from the MPE PID and the MPE section detector 55a is input, the frame / eraser buffer and the RS decoder controller 550b are marked with reliable information at a corresponding position of the erasure buffer 513. Previously, make sure that the address is initialized as unreliable.

초기화 동작은 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)가 섹션이 입력되는 시간 사이의 아이들 시간(idle time)에 수행한다. 이때 섹션 검출 시 수신된 TS 패킷으로부터 섹션 헤더 및 CRC는 제외한다.The initialization operation is performed at an idle time between the frame / erase buffer and the time when the RS decoder controller 550b enters the section. At this time, the section header and the CRC are excluded from the TS packet received when the section is detected.

따라서, 버스트 내 모든 데이터에 수신 오류가 없다고 해도 섹션 데이터는 버스트 내에서 연속적으로 출력되지 않으므로 섹션 입력에 대한 아이들 시간(idle time)은 반드시 존재한다. 본 발명의 프레임 이레이져 버퍼 및 RS 복호기 제어기(550b)는 상기 아이들 시간에 초기화 동작을 수행하여 RS 복호가 정상적으로 수행될 수 있도록 한다.Therefore, even if all data in the burst does not have a reception error, the section data is not continuously output in the burst, so there is an idle time for the section input. The frame erasure buffer and the RS decoder controller 550b of the present invention perform an initialization operation at the idle time so that RS decoding can be normally performed.

이레이져 버퍼(515)의 초기화 동작 개시 시점은 버스트의 첫 TS 패킷이 입력되는 시점으로 한다. 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 버스트 시작 신호에 의해 한 버스트에 대한 프레임 버퍼링 및 R-S 복호 동작을 개시한다.The initialization operation start time of the erasure buffer 515 is a time point at which the first TS packet of the burst is input. Frame / erase buffer and RS decoder controller 550b initiates frame buffering and R-S decoding operations for one burst by a burst start signal.

MPE PID 및 MPE 섹션 검출에 어느 정도의 시간 지연이 소요되므로, 버스트 시작 신호 이후 첫번째 섹션이 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)로 입력되기까지의 지연 시간동안에 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 이레이져 버퍼(515)를 초기화할 수 있다.Since some time delay is required for MPE PID and MPE section detection, the frame / erase buffer and RS during the delay from the burst start signal to the input of the first section into the frame / eraser buffer and RS decoder controller 550b. The decoder controller 550b can initialize the erasure buffer 515.

또한, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 프레임 버퍼(513)에 저장된 IP 데이터그램을 도시되지 않은 어플리케이션 프로세서로 전송하기위해 시리얼 인터페이스(704)를 사용할 것인지 여부를 검사한다. 상기 시리얼 인터페이스(704)를 통해 상기 어플리케이션 프로세서로 IP 데이터그램을 출력하기 위해 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 스위치(740)를 제어하여 프레임 버퍼(513)로부터 IP 데이터그램을 읽어 Local SSP(702)를 통해 시리얼 인터페이스로 전송한다. 이때 MPE-FEC 프레임 디코딩의 결과는 CPU(708)에서 처리될 수도 있고, 시리얼 인터페이스(704)를 통해 DVB-H 수신기 외부의 프로세서로 출력될 수도 있다. MPE-FEC 프레임 디코딩 결과를 CPU(708) 또는 시리얼 인터페이스(704)를 통해 외부의 프로세서로 전송할지 여부는 DVB-H 수신기를 어떻게 구성하느냐에 따라 달라지고, 그에 따라 제조회사와 같은 벤더에서 미리 레지스터로 셋팅하여 사용한다. 즉, 사용자(이동 단말 제조업자)가 미리 정하게 된다.The frame / erase buffer and RS decoder controller 550b also checks whether to use the serial interface 704 to send the IP datagram stored in the frame buffer 513 to an application processor (not shown). To output the IP datagram to the application processor via the serial interface 704, the frame / eraser buffer and RS decoder controller 550b controls the switch 740 to read the IP datagram from the frame buffer 513. The local SSP 702 transmits the serial interface. In this case, the result of the MPE-FEC frame decoding may be processed by the CPU 708 or output to a processor external to the DVB-H receiver through the serial interface 704. Whether the MPE-FEC frame decoding result is sent to an external processor via the CPU 708 or the serial interface 704 depends on how the DVB-H receiver is configured, and therefore from a vendor, such as a manufacturer, to register in advance. Set to use. That is, the user (mobile terminal manufacturer) decides in advance.

반면, 버스(706)를 통해 DVB-H 수신기의 프로세서(708)로 프레임 버퍼(513)에 저장된 IP 데이터그램을 전송할려면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 스위치(740)를 제어하여 프레임 버퍼(513)와 버스 인터페이스(710)을 연결시킨다. 그리고, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 프로세서(708)로 인터럽트 신호를 발생하여 프로세서(708)로 하여금 버스(706)를 통해 프레임 버퍼(513)로부터 IP 데이터그램을 읽어가도록 제어한다. 스위치(740)는 동작 중에 필요에 따라 연결이 수시로 바뀔 수 있으며, 모드 별로 고정되는 것은 아니다. 즉, 프레임 버퍼의 데이터는 time multiplexing 방법을 사용하여 시리얼 인터페이스(704)와 버스(710)로 동시에 출력될 수 있다.On the other hand, to transmit the IP datagram stored in the frame buffer 513 via the bus 706 to the processor 708 of the DVB-H receiver, the frame / eraser buffer and the RS decoder controller 550b may switch the switch 740. The control connects the frame buffer 513 and the bus interface 710. The frame / erase buffer and RS decoder controller 550b then generates an interrupt signal to the processor 708 to control the processor 708 to read the IP datagram from the frame buffer 513 via the bus 706. do. The switch 740 may change from time to time as necessary during operation, and is not fixed for each mode. That is, data of the frame buffer may be simultaneously output to the serial interface 704 and the bus 710 using a time multiplexing method.

프레임/이레이져 버퍼 및 R-S 복호기 제어기(550b)가 출력하는 MPE_FEC_done 인터럽트 신호는 CPU(708)로 한 버스트에 대한 MPE-FEC 프레임 디코딩이 종료되었음을 알려주고 동시에 데이터를 읽어갈 수 있다는 시점을 알려주는 역할을 수행한다. 그리고 타임 슬라이싱 처리기(313)내에는 버스트 구간 타이머(570)가 구비되어 있으며, 상기 MPE PID 및 MPE 섹션 검출기(550a)로부터 수신된 버스트 경계 정보를 근거로 MPE-FEC 복호기(315)의 동작을 제어한다. 즉, 프레임/이레이져 버퍼 및 R-S 복호기 제어기(550b)는 타임 슬라이싱 처리기(313)로부터 버스트 구간 종료 신호를 수신하면, 본 발명의 실시 예에 따라 이레이져 버퍼(515)의 신뢰성 정보 마킹 및 패딩 컬럼 처리를 수행하고, R-S 복호를 수행하기 위해 R-S 복호기(530)를 제어한다.The MPE_FEC_done interrupt signal, output from the frame / erasure buffer and RS decoder controller 550b, informs the CPU 708 that the decoding of the MPE-FEC frame for a burst has ended and indicates when data can be read at the same time. To perform. In addition, a burst interval timer 570 is provided in the time slicing processor 313 and controls the operation of the MPE-FEC decoder 315 based on the burst boundary information received from the MPE PID and the MPE section detector 550a. do. That is, when the frame / eraser buffer and the RS decoder controller 550b receives the burst period end signal from the time slicing processor 313, the reliability information marking and padding column of the erasure buffer 515 according to an embodiment of the present invention. The RS decoder 530 is controlled to perform processing and to perform RS decoding.

도 8은 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)의 MPE PID 및 MPE 섹션 검출기(550a)의 동작 흐름도이다.8 is a flowchart illustrating operations of the MPE PID and the MPE section detector 550a of the MPE-FEC decoder 315 according to the second embodiment of the present invention.

먼저, 800단계에서 MPE-PID 및 MPE 섹션 검출기(550a)로부터 버스트 구간 정보를 수신한 타임 슬라이싱 처리기(313)로부터 버스트 시작 신호가 출력되면, 802단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 DVB-H 물리 계층 수신기(700)로부터 TS 패킷을 수신하고, 804단계에서 수신된 TS 패킷에 대해 PID 필터링을 수행한다. 상기 PID 필터링 결과 MPE 섹션 또는 MPE-FEC 섹션이 실려있는 TS 패킷의 MPE PID가 검출되지 않은 것으로 확인되면, MPE PID 및 MPE 섹션 검출기(550a)는 806단계에서 해당 TS 패킷을 방송 서비스 정보(PSI/SI)를 전달하는 패킷으로 간주하고, 그 방송 서비스 정보(PSI/SI)를 분석하여 타임 슬라이싱과 MPE-FEC의 적용 여부를 확인한다. 그리고, MPE PID 및 MPE 섹션 검출기(550a)는 상기 802단계로 진행하여 다음 TS 패킷을 수신하고, 수신된 TS 패킷으로부터 MPE-PID 가 검출된 경우 해당 TS 패킷을 MPE 섹션 또는 MPE-FEC 섹션이 실려있는 TS 패킷으로 간주하고, 808단계로 진행한다.First, when the burst start signal is output from the time slicing processor 313 that receives the burst section information from the MPE-PID and the MPE section detector 550a in step 800, the MPE PID and the MPE section detector 550a output the DVB in step 802. In step 804, the TS packet is received from the physical layer receiver 700, and PID filtering is performed on the received TS packet. If it is determined that the MPE PID of the TS packet including the MPE section or the MPE-FEC section is not detected as the PID filtering result, the MPE PID and the MPE section detector 550a transmits the corresponding TS packet to the broadcast service information (PSI / It is regarded as a packet carrying SI, and the broadcast service information (PSI / SI) is analyzed to determine whether time slicing and MPE-FEC are applied. The MPE PID and MPE section detector 550a proceeds to step 802 to receive the next TS packet, and when the MPE-PID is detected from the received TS packet, the MPE PID or MPE-FEC section is loaded. The packet is regarded as a TS packet, and the flow proceeds to step 808.

808단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 상기 604단계의 방송 서비스 정보(PSI/SI) 분석 결과를 이용하여 MPE-FEC가 적용되는 것으로 확인된 경우 TS 패킷으로부터 4 바이트 헤더 부분을 제거하고 184 바이트 페이로드 부분을 도 5의 순환 버퍼(511)에 바이트 단위로 순차적으로 저장한다. In step 808, the MPE PID and MPE section detector 550a removes the 4-byte header part from the TS packet when it is determined that MPE-FEC is applied using the analysis result of the broadcast service information (PSI / SI) in step 604. The 184 byte payload portion is sequentially stored in the circular buffer 511 of FIG. 5 in units of bytes.

또한 상기 808단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 TS 패킷의 페이로드로 전송되는 MPE 섹션 또는 MPE-FEC 섹션의 시작과 끝을 확인하고, 이 섹션들이 구성하는 MPE-FEC 프레임에 대해 RS 복호를 수행하기 위한 신뢰성 정보를 얻기 위하여 후술할 테이블 아이디(table_id)의 검출 시마다 CRC 검사를 수행한다. 즉, 섹션 검출(Section Detection)과정을 수행한다.In addition, in step 808, the MPE PID and MPE section detector 550a checks the start and end of the MPE section or the MPE-FEC section transmitted in the payload of the TS packet, and RS for the MPE-FEC frame configured by these sections. In order to obtain reliability information for decoding, a CRC check is performed each time a table ID (table_id) to be described later is detected. That is, a section detection process is performed.

그리고 810단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 MPE 섹션 정보 및 데이터를 프레임/이레이져 버퍼 및 R-S 복호기 제어기(550b)로 출력한다. 812단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 타임 슬라이싱 처리기(313)의 버스트 구간 타이머(570)가 미리 정해진 시간인 "0"을 계수하였는지를 검사한다.In operation 810, the MPE PID and the MPE section detector 550a output MPE section information and data to the frame / eraser buffer and the R-S decoder controller 550b. In step 812, the MPE PID and MPE section detector 550a checks whether the burst duration timer 570 of the time slicing processor 313 has counted a predetermined time "0".

그리고, 상기 812단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 버스트 구간 타이머(570)가 미리 정해진 시간을 계수하였음을 검사하면, 814단계에서는 버스트 종료 신호를 프레임/이레이져 버퍼 및 R-S 디코더 제어기(550b)로 출력하며, 미리 정해진 시간을 계수하지 못하였다면, 816단계로 진행하여 MPE 섹션의 끝이 TS 패킷의 끝과 일치되는지 확인한다. 상기 816단계의 확인 결과 MPE 섹션의 끝이 TS 패킷의 끝과 일치하는 경우 MPE PID 및 MPE 섹션 검출기(550a)는 상기 802단계로 진행하여 다음 TS 패킷을 수신하고, 일치하지 않는 경우는 상기 808단계로 진행하여 현재 수신된 TS 패킷으로부터 다음 MPE 섹션 또는 MPE-FEC 섹션을 검출한다.In operation 812, when the MPE PID and the MPE section detector 550a check that the burst duration timer 570 has counted a predetermined time, in step 814, the MPE PID and MPE section detector 550a counts the burst end signal in the frame / eraser buffer and the RS decoder controller ( 550b), if the predetermined time is not counted, the process proceeds to step 816 and checks whether the end of the MPE section matches the end of the TS packet. If the end of the MPE section coincides with the end of the TS packet as a result of step 816, the MPE PID and the MPE section detector 550a proceed to step 802 to receive the next TS packet, and if it does not match, step 808. Proceed to detect the next MPE section or MPE-FEC section from the currently received TS packet.

도 9는 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)의 동작 흐름도이다.9 is a flowchart illustrating operations of a frame / erase buffer and an RS decoder controller 550b in the MPE-FEC decoder 315 according to the second embodiment of the present invention.

900단계에서 타임 슬라이싱 처리기(313)로부터 버스트 시작 신호를 입력받으면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 902단계로 진행하여 섹션이 입력되기 시작하였는지를 검사한다. 상기 902단계의 검사결과 섹션이 시작되었다면, 906단계로 진행하여 섹션 파라미터를 저장한다. 섹션 파라미터는 상기 <표 1>에 나타낸 내용들을 의미하며, 프레임/이레이져 버퍼 및 RS 디코더 제어기(550b)에 저장한다. When the burst start signal is received from the time slicing processor 313 in step 900, the frame / eraser buffer and the RS decoder controller 550b proceed to step 902 to check whether the section has started to be input. If the check result section of step 902 has been started, the flow proceeds to step 906 to store the section parameters. The section parameters mean the contents shown in Table 1, and are stored in the frame / erase buffer and the RS decoder controller 550b.

908단계에서 프레임/이레이져 버퍼 및 R-S 복호기 제어기(550b)는 MPE 섹션으로부터 헤더 정보와 CRC 비트들을 제거한 후, 프레임 버퍼(513)의 방송 데이터 테이블 영역에 해당 MPE 섹션의 IP 데이터그램을 프레임 버퍼링한다. 그리고 프레임 버퍼링되는 IP 데이터그램은 CRC 검사를 거친 신뢰할 수 있는 데이터이므로 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 해당 IP 데이터그램의 바이트들에 대한 신뢰성 정보를 이레이져 버퍼(515)에 마킹(Marking)한다.In step 908, the frame / erase buffer and RS decoder controller 550b removes the header information and the CRC bits from the MPE section, and then frame buffers the IP datagram of the corresponding MPE section in the broadcast data table region of the frame buffer 513. . Since the frame buffered IP datagram is CRC-tested reliable data, the frame / erase buffer and RS decoder controller 550b marks reliability information on the bytes of the corresponding IP datagram in the erasure buffer 515. (Marking)

910단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 마지막 MPE 섹션이 수신되었는지 검사하여 마지막 MPE 섹션이 수신되었다면, 912단계로 진행하여 마지막 주소를 저장한다.In step 910, the frame / erase buffer and the RS decoder controller 550b checks whether the last MPE section has been received, and if the last MPE section is received, proceeds to step 912 to store the last address.

반면, 상기 902단계의 검사결과 섹션이 시작되지 않는다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 904단계로 진행하여 이레이져 버퍼(515)에 신뢰성 정보를 초기화시킨다.On the other hand, if the check result section of step 902 does not start, the frame / eraser buffer and RS decoder controller 550b proceeds to step 904 to initialize reliability information in the eraser buffer 515.

버스트내에서 섹션 데이터는 지속적으로 입력되므로, 한 버스트에 대한 섹션 데이터가 모두 입력되기 전에 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 섹션 데이터를 버퍼링하고 신뢰성 정보를 마킹해야 한다. 일반적으로 한 섹션 종료 후 다음 섹션이 입력되기까지 시간 간격이 존재하는데, 본 발명의 제2 실시 예에 따른 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 그 시간 간격에 이레이져 버퍼(515)를 초기화 한다. 즉, 904단계에서 신뢰성 정보를 초기화하는 것은 이레이져 버퍼(515) 전체를 초기화시키는 것이 아니라 상기 섹션들이 수신되는 중간 시점마다 이레이져 버퍼(515)를 초기화시키는 것이다.Since section data is continuously input within the burst, the frame / eraser buffer and RS decoder controller 550b must buffer the section data and mark reliability information before all the section data for one burst is input. Generally, there is a time interval after the end of one section until the next section is input. The frame / eraser buffer and the RS decoder controller 550b according to the second embodiment of the present invention have an erasure buffer 515 at the time interval. Initialize That is, initializing the reliability information in step 904 does not initialize the entire eraser buffer 515, but initializes the eraser buffer 515 at every intermediate time point at which the sections are received.

그리고 상기 910단계의 검사결과 수신된 MPE 섹션이 마지막 MPE 섹션이 아니라면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 914단계에서 마지막 MPE-FEC 섹션이 수신되었는지 여부를 검사한다.If the MPE section received as a result of the check in step 910 is not the last MPE section, the frame / erase buffer and RS decoder controller 550b checks whether the last MPE-FEC section is received in step 914.

상기 914단계의 검사 결과 마지막 MPE-FEC 섹션이 수신되었다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 918단계로 진행하여 상기 904단계에서 이레이져 버퍼(515)의 초기화를 완료하지 못한 나머지 영역에 대해 신뢰성 정보 초기화를 수행한다.If the last MPE-FEC section is received as a result of the checking in step 914, the frame / erase buffer and RS decoder controller 550b proceeds to step 918 and fails to complete initialization of the erasure buffer 515 in step 904. Reliability information initialization is performed for the area.

반면, 상기 914단계의 검사결과 마지막 MPE-FEC 섹션이 수신되지 않았다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 916단계로 진행하여 버스트가 종료되었는지를 검사한다. 상기 916단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 마지막 MPE-FEC 섹션이 입력되거나, 타임 슬라이싱 처리기(313)에 의해 발생된 버스트 종료 신호가 입력되면, 버스트가 종료되었음을 알 수 있다.On the other hand, if the last MPE-FEC section has not been received as a result of the check in step 914, the frame / eraser buffer and RS decoder controller 550b proceeds to step 916 to check whether the burst has ended. In step 916, the frame / eraser buffer and the RS decoder controller 550b may recognize that the burst is terminated when the last MPE-FEC section is input or the burst end signal generated by the time slicing processor 313 is input. .

상기 916단계에서 버스트가 종료되었다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 918단계로 진행하여 상기 904단계에서 이레이져 버퍼(515)의 초기화를 완료하지 못한 나머지 영역에 대해 신뢰성 정보 초기화를 수행한다.If the burst is terminated in step 916, the frame / erase buffer and RS decoder controller 550b proceeds to step 918 and initializes reliability information for the remaining areas in which the initialization of the eraser buffer 515 is not completed in step 904. Do this.

상술한 바와 같이 918단계에서 버스트 구간동안의 섹션 데이터가 입력된 이후, 이레이져 버퍼(515)의 초기화가 종료되지 않았다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 상기 904단계에서 초기화하지 못한 나머지 영역에 대해 초기화를 수행하고, 920단계에서 도 6의 610단계에서와 같이 패딩 컬럼 처리를 수행하게 된다.As described above, if the initialization of the erasure buffer 515 is not finished after the section data for the burst period is input in operation 918, the frame / eraser buffer and the RS decoder controller 550b do not initialize in operation 904. Initialization is performed on the remaining remaining regions, and the padding column processing is performed in operation 920 as in operation 610 of FIG. 6.

920단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 패딩 컬럼 처리를 수행함으로서 패딩 컬럼 영역에 대한 "0" 데이터 버퍼링(제로 패딩) 및 신뢰성 정보 마킹 동작을 단 한번만 수행하며, 타이밍 문제를 피할 수 있다.In step 920, the frame / eraser buffer and the RS decoder controller 550b performs the padding column processing to perform the "0" data buffering (zero padding) and the reliability information marking operation on the padding column area only once, thereby preventing timing problems. Can be avoided.

이후에 922단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 디코딩할 가로 줄(row)을 검색한다. 상기 922단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)가 디코딩할 가로 줄을 검색하는 상세한 과정은 후술할 도 10을 참조하여 설명하기로 한다.Thereafter, in step 922, the frame / eraser buffer and RS decoder controller 550b searches for a horizontal row to decode. A detailed process of searching for a horizontal line to be decoded by the frame / erase buffer and the RS decoder controller 550b in step 922 will be described with reference to FIG. 10 to be described later.

924단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 이레이져 버퍼(515)에 저장된 데이터들의 모든 가로 줄(row)의 디코딩이 종료되었는지 검사한다. 상기 924단계에서는 디코딩을 수행하는 것이 아니라 922단계의 검색 결과를 갖고 모든 가로 줄의 대코딩 종료 여부만을 검사하는 것이다. In step 924, the frame / eraser buffer and RS decoder controller 550b checks whether the decoding of all horizontal rows of the data stored in the erasure buffer 515 is finished. In step 924, the decoding operation is not performed, and only the horizontal coding of all horizontal lines is checked with the search result of step 922.

상기 924단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 상기 검사 결과 모든 가로 줄(row)에 대해 디코딩이 종료되지 않았다면, 926단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 RS 복호기(530)로 하여금 프레임 버퍼(513)의 한 가로 줄(row)에 대하여 RS 복호를 수행하도록 제어한다. 상기 924단계와는 달리 926단계에서는 RS 복호기(530)를 구동하여 한 가로 줄에 대해 R-S 디코딩을 수행하는 것이다. In step 924, if the frame / eraser buffer and RS decoder controller 550b has not finished decoding for every horizontal row as a result of the checking, in step 926, the frame / eraser buffer and RS decoder controller 550b Control RS decoder 530 to perform RS decoding on one row of frame buffer 513. Unlike step 924, in step 926, the RS decoder 530 is driven to perform R-S decoding on one horizontal line.

926단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 RS 복호기(530)의 복호 결과인 에러가 발생한 주소(오류가 발생한 위치)와 에러 weight(오류 크기)를 저장한다.In step 926, the frame / erasure buffer and the RS decoder controller 550b store the error address (error occurrence position) and error weight (error size) which are the result of the decoding of the RS decoder 530.

928단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 상기 926단계의 RS 복호결과를 근거로 오류(error)를 수정할 필요가 있는지 검사하고, 오류를 수정할 필요가 있다면, 930단계로 진행하여 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 프레임 버퍼(513)에 저장된 값들을 정정한다.In step 928, the frame / erasure buffer and RS decoder controller 550b checks whether an error needs to be corrected based on the RS decoding result of step 926, and if necessary, proceeds to step 930. Frame / erase buffer and RS decoder controller 550b corrects the values stored in frame buffer 513.

반면, 상기 924단계의 결과 이레이져 버퍼(515)에 저장된 값들의 모든 가로 줄(row)에 대해 디코딩이 종료되었다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 932단계로 진행하여 도시되지 않은 어플리케이션 프로세서로 프레임 버퍼(513)에 저장된 IP 데이터그램을 출력하기 위해 시리얼 인터페이스(704)가 사용가능한지를 검사한다.On the other hand, if the decoding is finished for all horizontal rows of values stored in the erasure buffer 515 as a result of step 924, the frame / eraser buffer and the RS decoder controller 550b proceed to step 932 and are not shown. The serial interface 704 is available to output the IP datagram stored in the frame buffer 513 to the application processor.

상기 932단계의 검사 결과 시리얼 인터페이스(704)가 사용가능하다면, 934단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 스위치(740)을 제어하여 프레임 버퍼(513)에서 IP 데이터그램을 읽어 로컬 SSP(702)를 통해 상기 어플리케이션 프로세서로 전송한다.If the serial interface 704 is available in step 932, the frame / eraser buffer and RS decoder controller 550b controls the switch 740 to read the IP datagram from the frame buffer 513 in step 934. The local SSP 702 transmits the data to the application processor.

반면, 상기 932단계의 검사결과, 상기 시리얼 인터페이스(704)가 사용가능하지 않다면, 936단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 DVB-H 수신기의 프로세서(708)가 프레임 버퍼(513)의 IP 데이터그램을 읽어갈 수 있게 하기 위해 인터럽트 신호가 발생가능한지를 검사한다.On the other hand, if the serial interface 704 is not available as a result of the check in step 932, the frame / eraser buffer and the RS decoder controller 550b in step 936 indicate that the processor 708 of the DVB-H receiver receives a frame buffer ( In order to be able to read the IP datagram of 513, it is checked whether an interrupt signal can be generated.

상기 936단계의 검사결과 상기 인터럽트 신호가 발생가능하다면, 938단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 스위치(740)을 제어하여 프레임 버퍼(513)와 버스 인터페이스(710)를 연결시키고, 상기 프로세서(708)로 인터럽트 신호를 발생시킨다.If the interrupt signal can be generated in step 936, the frame / eraser buffer and RS decoder controller 550b controls the switch 740 to connect the frame buffer 513 and the bus interface 710 in step 938. The processor 708 generates an interrupt signal.

도 10은 본 발명의 제2 실시 예에 따라 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)에 구비된 가로 줄(row) 검색기의 구조를 도시한 것이다.10 illustrates a structure of a horizontal row searcher provided in the frame / erase buffer and the RS decoder controller 550b according to the second embodiment of the present invention.

일반적으로 R-S 복호기(530)는 각 가로 줄(row) 단위로 RS 디코딩을 수행하게 되는데, MPE-FEC를 위한 RS 복호기(530)는 (N=255, k=191, t=32)의 이레이져(erasure) 복호기로서 2V+P≤64(V:에러 개수, P: erasure 개수)를 만족하면 해당 가로 줄(row)을 복호할 수 있다. In general, the RS decoder 530 performs RS decoding in units of horizontal rows. The RS decoder 530 for MPE-FEC is an eraser of (N = 255, k = 191, t = 32). If an array decoder satisfies 2V + P ≦ 64 (V: number of errors, P: number of erasures), the corresponding row may be decoded.

원래 RS 복호기 뿐 아니라 비터비 복호기나 터보 복호기 등의 채널 복호기는 수신한 부호어(codeword) 데이터만을 갖고 자체적으로 오류를 정정하는 능력을 갖고 있다. RS 복호기의 오류 정정은 오류의 위치를 알아내는 과정, 오류의 크기를 알아내는 과정, 마지막으로 오류를 정정하는 과정으로 진행되며, 이레이져 RS 복호기는 RS 복호기의 변형된 형태로서 입력 데이터 중 특정 위치가 오류임을 알고 있는 경우, 오류 위치를 찾기 위한 정보를 오류 크기를 알아내는 과정에 사용할 수 있게 됨으로서 오류 정정 능력을 향상시킬 수 있다.Channel decoders such as Viterbi decoders and turbo decoders, as well as RS decoders, have the ability to correct errors on their own with only received codeword data. Error correction of the RS decoder proceeds to the process of locating the error, finding the magnitude of the error, and finally correcting the error. The erasure RS decoder is a modified form of the RS decoder. If we know that is an error, the information to find the error location can be used in the process of determining the error size, thereby improving the error correction capability.

즉, RS 복호기(530)는 프레임 버퍼(513)에 저장된 데이터 뿐 아니라 이레이저 정보도 사용할 수 있으므로 에러 정정 능력을 향상시키게 된다. RS 코드는 블록 코드의 한 종류이다. 블록 코드는 인코딩/디코딩 과정이 블록 단위로 이루어지는데, 이 블록의 크기가 N이고, 정보 데이터의 길이가 K이며, t는 오류 정정 능력이다. 즉, 이레이져(erasure)의 개수가 65개 이상이면 RS 복호기(530)의 정정 능력을 벗어나게 되므로, 디코딩을 수행할 필요가 없다. 이레이져(Erasure)는 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)가 이레이져 버퍼(515)의 내용을 읽어 알 수 있으므로, 모든 가로 줄(row)에 대하여 RS 디코딩을 수행하기 전에 이레이져 버퍼(515)의 각 가로 줄(row)에 대하여 이레이져의 개수를 세어 그 개수가 65개 이상이 되는 경우 해당 가로 줄(row)에 대한 RS 디코딩을 수행하지 않게 제어한다.That is, the RS decoder 530 can use not only data stored in the frame buffer 513 but also erasure information, thereby improving error correction capability. RS code is a kind of block code. In the block code, an encoding / decoding process is performed in units of blocks. The size of the block is N, the length of information data is K, and t is an error correction capability. That is, if the number of erasures is 65 or more, it is out of the correction capability of the RS decoder 530, so it is not necessary to perform decoding. Since the erasure of the frame / erase buffer and the RS decoder controller 550b reads the contents of the erasure buffer 515, the erasure buffer is erased before the RS decoding is performed on all horizontal rows. The number of erasures is counted for each horizontal row of 515, and if the number is 65 or more, control is performed not to perform RS decoding for the corresponding horizontal row.

일반적으로 systolic array 구조의 ME(Modified Euclidian) 알고리듬을 사용하는 RS 복호기(530)의 디코딩 시간은 3N + (N-K) + a = 4N-K+a 클럭 사이클 정도이다. 여기서, RS 코드는 블록 코드의 한 종류이며, 블록 코드는 인코딩/디코딩 과정이 블록 단위로 이루어진다. 이 블록의 크기가 N이며, 정보 데이터의 길이가 K이며, t는 오류 정정 능력을 나타낸다. Z한 가로 줄(row)에 대하여 이레이져 개수를 세는 시간은 N 클럭 사이클로 R-S 디코딩 시간인 4N-K+a 클럭 사이클에 비하여 짧은 시간이다. 그러나, 매 가로 줄(row)마다 각각 이레이져 개수를 세어 디코딩 여부를 결정하는 방법은, 모든 가로 줄(row)에 대해 검사 결과 이레이져 개수가 65개 미만이면 오히려 디코딩 시간의 증가를 유발한다. In general, the decoding time of the RS decoder 530 using a modified Euclidian (ME) algorithm having a systolic array structure is about 3N + (N-K) + a = 4N-K + a clock cycles. Here, the RS code is one kind of block code, and the block code is encoded / decoded in block units. The size of this block is N, the length of information data is K, and t represents error correction capability. The number of erasures for Z rows is shorter than 4N-K + a clock cycles, which are N clock cycles and R-S decoding time. However, the method of determining whether to decode by counting the number of erasers in each horizontal row, respectively, causes an increase in decoding time when the number of erasers is less than 65 for all horizontal rows.

따라서, 본 발명의 제2 실시 예에서는 디코딩 여부를 결정하는 시간을 줄이기 위하여 도 10에 도시되 것과 같은 가로 줄 검색기(1000)를 사용한다.Accordingly, the second embodiment of the present invention uses the horizontal line searcher 1000 as shown in FIG. 10 to reduce the time for deciding whether to decode or not.

이레이져 버퍼(515)는 i개의 가로 줄(1002)에 대한 데이터를 동시에 읽을 수 있도록 구성된다. 가로 줄 검색기(1000)가 가로 줄 검색 시에 이레이져 버퍼(515)에서 읽혀진 데이터는 i개의 카운터(counter)(1000a)로 입력된다. 해당 가로 줄(1002) 검색이 종료되면 i개의 카운터(1000a)는 i개의 가로 줄(1002)에 대한 이레이져 개수를 저장한다. 상기 이레이져 개수는 각각 i개의 비교기(1000b)로 입력되며, 비교기(1000b)는 상기 이레이져 개수가 65보다 작은 경우 RS 복호기(530)로 하여금 디코딩을 수행하게 제어하는 플래그(flag)(1000c)를 "1"로 셋팅한다. Eraser buffer 515 is configured to read data for i horizontal lines 1002 simultaneously. When the horizontal line searcher 1000 searches the horizontal line, the data read from the erasure buffer 515 is input to i counters 1000a. When the horizontal line 1002 search is completed, the i counters 1000a stores the number of erasers for the i horizontal lines 1002. The number of erasers is input to each of the i comparators 1000b, and the comparator 1000b controls a flag 1000c for causing the RS decoder 530 to perform decoding when the number of erasers is less than 65. Is set to "1".

프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 i개의 플래그(1000c)들 중 "1"로 셋팅된 것에서 가장 가로 줄(row) 인덱스가 작은 플래그를 선택하여, 선택된 플래그의 인덱스에 해당되는 가로 줄(row)에 대한 R-S 디코딩을 수행하게 RS 복호기(530)를 제어한다. 인덱스는 순서를 의미하며, 가로 줄 인덱스는 가로 줄 번호(순서)를 말하는 것이고 열 인덱스는 열 번호를 의미한다. 가로 줄 인덱스가 작은 것을 선택한다는 의미는 프레임 버퍼(513)(또는 이레이져 버퍼)(515)의 위 가로 줄부터 순차적으로 열 단위 디코딩을 한다것을 의미한다.The frame / erase buffer and RS decoder controller 550b selects a flag having the smallest horizontal row index from the set of “1” among i flags 1000c, so that the horizontal corresponding to the index of the selected flag is selected. RS decoder 530 is controlled to perform RS decoding for a row. The index means the order, the horizontal line index refers to the horizontal line number (order), and the column index refers to the column number. Selecting a smaller horizontal row index means column-wise decoding sequentially from the horizontal row above the frame buffer 513 (or erasure buffer) 515.

프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 RS 디코딩이 종료된 후에 해당 가로 줄에 대한 플래그를 다시 "0"으로 셋팅(리셋)한다. 가로 줄 검색은 i개의 플래그 값이 모두 "0"이고 이레이져 버퍼(515)에 남은 가로 줄이 있을 경우 수행된다. 본 발명의 제2 실시 예에 따른 행 검색 방법은 가로 줄 검색 시간을 제1 실시 예에 비해 N/i로 감소시킨다. i 값이 커질수록 가로 줄 검색에 소요되는 시간은 줄어드나 대신 하드웨어 크기가 증가하게 되므로, DVB-H 수신기의 성능 또는 크기와 같은 자원에 따라 적절한 i값을 선택하도록 한다.The frame / erase buffer and RS decoder controller 550b sets (resets) the flag for that horizontal line back to " 0 " after RS decoding is complete. The horizontal line search is performed when all i flag values are "0" and there are remaining horizontal lines in the eraser buffer 515. The row search method according to the second embodiment of the present invention reduces the horizontal line search time to N / i compared to the first embodiment. As the value of i increases, the time required for horizontal line searching decreases, but the hardware size increases. Therefore, an appropriate value of i is selected according to resources such as the performance or size of the DVB-H receiver.

프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 한 가로 줄(row)에 대한 RS 디코딩 이후에 디코딩 결과를 갖고 프레임 버퍼(513)에 저장된 값을 정정하게 된다. 제1 실시 예에서는 제어기(550)가 Nx8 크기의 중간 버퍼를 구비하고, RS 복호기(530)의 디코딩 결과 출력 시에 가로 줄(row)에 대한 데이터를 프레임 버퍼(513)으로부터 다시 읽어 RS 복호기(530)로부터 출력되는 error weight와 더하여 중간 버퍼에 저장한 후에, 디코딩 종료 후 오류 정정 가능하다고 결정되는 경우 상기 중간 버퍼에 저장된 값을 다시 프레임 버퍼(513)로 저장하는 방법을 사용한다.The frame / erase buffer and RS decoder controller 550b will correct the value stored in the frame buffer 513 with the decoding result after RS decoding for one horizontal row. In the first embodiment, the controller 550 includes an intermediate buffer of size Nx8, and reads data for a horizontal row from the frame buffer 513 again when the decoding result of the RS decoder 530 is output. After storing in the intermediate buffer in addition to the error weight output from the 530, if it is determined that error correction is possible after the end of decoding, a method of storing the value stored in the intermediate buffer back to the frame buffer 513 is used.

이러한 제1 실시 예에서는 상술한 중간 버퍼가 추가적으로 필요하며, 오류 정정 가능한 경우 한 가로 줄(row)에 대한 RS 디코딩 시간이 5N-K+a로 증가하게 된다.In this first embodiment, the above-described intermediate buffer is additionally required, and if error correction is possible, the RS decoding time for one horizontal row is increased to 5N-K + a.

본 발명의 제2 실시 예에 따른 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 제1 실시 예에서 사용하는 Nx8 크기의 중간 버퍼를 사용하는 대신, (N-K)x2x8 크기의 중간 버퍼를 사용한다. 상기 중간 버퍼는 R-S 복호기(530)에서 출력되는 error 주소와 error weight를 저장하는데 사용되며, N개의 weight 데이터를 모두 저장하는 대신 error가 발생한 위치의 error 주소와 error weight만을 저장한다. 상기 중간 버퍼는 후술할 도 11을 참조하여 설명하기로 한다.The frame / erase buffer and RS decoder controller 550b according to the second embodiment of the present invention uses an intermediate buffer of (NK) x2x8 size instead of using an Nx8 sized intermediate buffer used in the first embodiment. . The intermediate buffer is used to store the error address and error weight output from the R-S decoder 530. Instead of storing all N weight data, the intermediate buffer stores only the error address and the error weight of the location where the error occurred. The intermediate buffer will be described with reference to FIG. 11 to be described later.

도 11은 본 발명의 제2 실시 예에 따른 중간 버퍼(1102)를 도시한 것이다. 본 발명의 제2 실시 예에서는 물리적으로 분리된 중간 버퍼를 사용하는 대신 프레임 버퍼(513)의 세로 줄(column)을 255바이트에서 256바이트로 1바이트 늘려 프레임 버퍼(513)를 구성한다. 상기 프레임 버퍼(513)에서 늘어난 1바이트 크기의 마지막 열(column)(1100)을 중간 버퍼(1102)로 사용한다.11 illustrates an intermediate buffer 1102 according to a second embodiment of the present invention. In the second embodiment of the present invention, instead of using a physically separated intermediate buffer, the frame buffer 513 is configured by increasing the vertical column of the frame buffer 513 from 255 bytes to 256 bytes. The last column 1100 having a size of 1 byte increased in the frame buffer 513 is used as the intermediate buffer 1102.

RS 복호기(530)에서 출력되는 error 주소(오류 위치)와 error weight(오류 크기)를 저장하는 경우 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)가 프레임 버퍼(530)를 액세스(Access)할 필요가 없기 때문에, 중간 버퍼(1102)와 프레임 버퍼(513)가 물리적으로 동일한 메모리(memory)를 사용하는 것이 가능하다. 물리적으로 동일한 메모리를 사용하는 경우, 메모리의 글루 로직(glue logic)에 의한 면적 오버헤드(overhead)가 줄어들게 된다. 여기서 상기 글루 로직이란 메모리에서 실제 데이터를 저장하는 위치(RAM core)를 제외한, address decoder, I/O driver, sense amp, Clock/address buffer, 제어 블록 등을 의미한다.When storing the error address (error position) and error weight (error size) output from the RS decoder 530, the frame / eraser buffer and the RS decoder controller 550b need to access the frame buffer 530. Since the intermediate buffer 1102 and the frame buffer 513 use the same physical memory. If physically the same memory is used, the area overhead caused by the glue logic of the memory is reduced. Here, the glue logic refers to an address decoder, an I / O driver, a sense amp, a clock / address buffer, a control block, and the like except for a location (RAM core) for storing actual data in a memory.

본 발명의 제2 실시 예에서는 디코딩 종료 시 오류 정정 가능하다고 결정되면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)가 중간 버퍼(1102)에 저장된 error 주소가 지정하는 프레임 버퍼(513)의 세로 줄(column)로부터 데이터를 읽은 후 중간 버퍼에 저장된 error weight와 더하여 다시 프레임 버퍼(513)의 해당 열(column)에 오류 정정된 데이터를 저장한다. 오류 정정 동작에 걸리는 시간은 error의 개수에 비례하며 최대 3*(N-K) 클럭 사이클이 된다. 따라서, 한 가로 줄(row)에 대한 RS 디코딩 시간은 최대 4N-K+a+3(N-K) = 7N-4K+a 클럭 사이클이 된다. DVB-H의 MPE-FEC를 위한 RS 디코딩의 경우, 제1 실시 예에서 한 가로 줄(row)에 대한 R-S 디코딩 시간인 1084+a 클럭 사이클에서 최대 1021+a 클럭 사이클로 줄어들게 된다. 정정할 error의 개수가 적은 경우 이 시간은 더 줄어들게 될 것이다.According to the second embodiment of the present invention, if it is determined that error correction is possible at the end of decoding, the frame / erase buffer and the RS decoder controller 550b may determine the length of the frame buffer 513 designated by the error address stored in the intermediate buffer 1102. After reading data from the column, the error corrected data is stored in the corresponding column of the frame buffer 513 in addition to the error weight stored in the intermediate buffer. The time taken for the error correction operation is proportional to the number of errors and is a maximum of 3 * (N-K) clock cycles. Thus, the RS decoding time for one horizontal row is up to 4N-K + a + 3 (N-K) = 7N-4K + a clock cycles. In case of RS decoding for MPE-FEC of DVB-H, in the first embodiment, the R-S decoding time for one row is reduced from 1084 + a clock cycles to 1021 + a clock cycles. If the number of errors to correct is small, this time will be further reduced.

지금까지 상술한 바와 같이 DVB-H 수신기는 물리계층을 통해 수신된 TS packet으로부터 순수한 IP datagram을 복원하기 위해서는 TS packet에서 섹션을 검출해내야 한다. 그리고 각 섹션의 payload들은 MPE-FEC 프레임으로 재구성되어야 하고 RS 복호화 과정이 수행되면 IP datagram으로 복원될 수 있다. 본 발명의 제2 실시 예에서는 DVB-H 수신기에서 MPE-FEC 프레임을 재구성하여 복호화하는 방법 및 장치에 있어서 제1 실시 예에서의 문제점을 수정/보완하였다.As described above, the DVB-H receiver has to detect a section in the TS packet in order to recover the pure IP datagram from the TS packet received through the physical layer. And payloads of each section should be reconstructed into MPE-FEC frame and can be restored to IP datagram when RS decoding process is performed. In the second embodiment of the present invention, the method and apparatus for reconstructing and decoding an MPE-FEC frame in a DVB-H receiver have been corrected / supplemented.

사용자들의 편의성을 증대시키기 위해서는 DVB-H 수신기에서 채널 전환 시간 단축이나 PIP(Picture In Picture)기능을 제공해야 한다. 그러나 상술한 제2 실시 예에서 언급한 DVB-H 수신기는 채널 전환 시간 단축이나 PIP 기능을 제공하기 위한 연속 수신 모드나 Parallel Service를 지원할 수 없다. To increase user convenience, DVB-H receivers must provide shorter channel switching times or provide picture in picture (PIP) functionality. However, the DVB-H receiver mentioned in the above-described second embodiment cannot support a continuous reception mode or a parallel service for shortening a channel switching time or providing a PIP function.

왜냐하면, 제2 실시 예에 따른 DVB-H 수신기는 프레임/이레이져 버퍼 및 R-S 디코더 제어기(550b)가 하나의 유한 스테이트 머신(State Machine)으로 구현되어 있어서 섹션 데이터 입력에 따른 프레임/이레이져 버퍼링 동작, R-S 디코딩 동작, IP 데이터 그램 출력 동작을 순차적으로 수행한다. 이러한 구조의 DVB-H 수신기는 시간적으로 연속된 두 개의 버스트를 동시에 복조할 수 없기 때문에 두 개의 버스트에 해당하는 두 개의 방송 채널에 대한 PIP 동작도 제공할 수 없으며, 다수의 버스트를 복조하기 못함으로 인하여 채널 전환 시 지연 시간이 발생하게 된다.In the DVB-H receiver according to the second embodiment, the frame / erase buffer and the RS decoder controller 550b are implemented as one finite state machine, so the frame / erase buffering operation according to the section data input is performed. The RS decoding operation and the IP datagram output operation are sequentially performed. Since DVB-H receivers of this structure cannot demodulate two bursts in time at the same time, they cannot provide PIP operation for two broadcast channels corresponding to two bursts, and cannot demodulate multiple bursts. Therefore, delay time occurs when switching channels.

이와 같은 제2 실시 예에 따른 문제점을 도 12를 참조하여 설명하기로 한다.The problem according to the second embodiment will be described with reference to FIG. 12.

도 12a는 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)에서 한 버스트를 수신할 경우의 타이밍 도이며, 도 12b는 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)에서 연속되는 버스트들을 수신할 경우의 타이밍 도이다.12A is a timing diagram when a burst is received by the MPE-FEC decoder 315 according to the second embodiment of the present invention, and FIG. 12B is an MPE-FEC decoder according to the second embodiment of the present invention. 315 is a timing diagram when receiving consecutive bursts.

도 12a에서는 DVB-H 수신기가 N개의 버스트들 중 버스트 #1만을 수신하여 복조하는 것으로 가정하기로 한다. In FIG. 12A, it is assumed that the DVB-H receiver receives and demodulates only burst # 1 of N bursts.

참조번호 1202는 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 섹션 데이터가 입력받아 프레임 버퍼(513)에 버퍼링하는 시간을 나타내며, 참조번호 1204는 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)의 제어에 의해 R-S 디코더(530)가 상기 1202에서 버퍼링된 섹션 데이터들에 대해 R-S 디코딩을 수행하는 시간을 나타낸다. 참조번호 1206은 상기 1204에서 R-S 디코딩된 버스트 #1의 데이터를 시리얼 인터페이스(704)를 통해 출력하는 시간을 나타내며, 참조번호 1208은 상기 참조번호 1202내지 1206 동작을 수행하기 위해 프레임 버퍼(513)가 점유되는 시간을 나타낸다. Reference numeral 1202 denotes a time at which the frame / erase buffer and the RS decoder controller 530b receives the section data from the MPE PID and the MPE section detector 530a and buffers the frame data in the frame buffer 513. The time when the RS decoder 530 performs RS decoding on the section data buffered at 1202 by the erasure buffer and the control of the RS decoder controller 530b. Reference numeral 1206 denotes a time for outputting data of the burst # 1 RS decoded in 1204 through the serial interface 704, and reference numeral 1208 indicates that the frame buffer 513 is configured to perform operations 1202 to 1206. Indicates the time occupied.

도 12a에 도시된 바와 같이 본 발명의 실시 예에 따른 DVB-H 수신기에서는 하나의 채널을 수신하여 복조하는 것에 있어서는 문제가 없음을 알 수 있다. 그러나 도 12b에 도시된 바와 같이 다수의 버스트들을 수신하는 경우에는 하나의 버스트(또는 그 이상) 간격으로 건너뛴 순서(예컨대 버스트 #1, 버스트 #3, 버스트 #5..)대로 버스트를 복호할 수 있을 뿐 연속되는 버스트들에 대해서는 복호를 하지 못함을 보여주고 있다. As shown in FIG. 12A, it can be seen that the DVB-H receiver according to the embodiment of the present invention has no problem in receiving and demodulating one channel. However, when receiving multiple bursts, as shown in FIG. 12B, the bursts are decoded in the order of skipping at one burst (or more) interval (e.g., burst # 1, burst # 3, burst # 5 ..). It can be shown that it can not decode successive bursts.

참조번호 1250은 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 섹션 데이터가 입력받는 시간을 나타내며, 참조번호 1252는 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 상기 참조번호 1250에서 입력된 버스트를 프레임 버퍼(513)에 버퍼링하는 시간을 나타낸다.Reference numeral 1250 denotes a time at which the frame / erase buffer and RS decoder controller 530b receives section data from the MPE PID and MPE section detector 530a, and reference numeral 1252 denotes a frame / erase buffer and RS decoder controller ( 530b indicates a time for buffering the burst inputted at reference numeral 1250 in the frame buffer 513.

참조번호 1254는 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 상기 1252에서 버퍼링된 섹션 데이터들에 대해 R-S 디코딩을 수행하는 시간을 나타낸다. 참조번호 1256은 상기 1254에서 R-S 디코딩된 버스트 버스트의 데이터를 시리얼 인터페이스(704)를 통해 출력하는 시간을 나타내며, 참조번호 1258은 상기 참조번호 1250내지 1256 동작을 수행하기 위해 프레임 버퍼(513)가 점유되는 시간을 나타낸다. Reference numeral 1254 denotes a time when the frame / erase buffer and the RS decoder controller 530b perform R-S decoding on the section data buffered at 1252. Reference numeral 1256 denotes a time for outputting burst burst data decoded through the serial interface 704 at 1254, and reference numeral 1258 is occupied by the frame buffer 513 to perform operations 1250 to 1256. It shows time to become.

참조번호 1260인 구간은 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 버스트 #1을 입력받아 프레임 버퍼(513)에 버퍼링하는 시간이다. 참조번호 1262인 구간은 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 버스트 #2을 입력받지만 프레임 버퍼(513)는 버스트 #1의 처리를 위해 이미 할당되어 있으므로 버스트 #2은 버퍼링되어지지 않고 버려지게 된다. An interval denoted by reference numeral 1260 is a time when the frame / erase buffer and the RS decoder controller 530b receive burst # 1 from the MPE PID and the MPE section detector 530a and buffer the burst # 1 in the frame buffer 513. In section 1262, frame / erase buffer and RS decoder controller 530b receives burst # 2 from MPE PID and MPE section detector 530a but frame buffer 513 is already allocated for processing burst # 1. Burst # 2 is discarded without being buffered.

참조번호 1264는 1260구간에서 버퍼링된 버스트 #1에 대해 R-S 디코딩을 수행하는 구간이며, 참조번호 1266은 상기 1264에서 R-S 디코딩된 버스트 #1을 시리얼 인터페이스(704)로 출력하는 시간을 나타낸다. Reference numeral 1264 denotes an interval for performing R-S decoding on the buffered burst # 1 in section 1260, and reference numeral 1266 denotes a time for outputting the R-S decoded burst # 1 to the serial interface 704 in 1264.

참조번호 1268은 프레임 버퍼(513)가 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 버스트 #1을 수신하여 버퍼링하고, R-S 디코딩 후 시리얼 인터페이스(704)로 출력할 때까지 할당되는 시간이다. 즉, 참조번호 1284구간은 버스트 #1에게만 할당된 구간으로서 버스트 #2에 대한 버퍼링 및 R-S 디코딩이 되지 않는 구간이다.Reference numeral 1268 denotes a time allocated until the frame buffer 513 receives and buffers the frame / erase buffer and the RS decoder controller 530b after receiving burst # 1 and outputting the R-S decoding to the serial interface 704. That is, the section 1284 is a section allocated only to burst # 1, and is a section in which buffering and R-S decoding for burst # 2 are not performed.

참조번호 1270은 버스트 #1에 이어 버스트 #2를 건너뛴 버스트 #3이 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 입력되어 프레임 버퍼(513)에 버퍼링되는 시간을 나타낸다. 참조번호 1272는 앞서 상기 1262 시간에서 프레임 버퍼(513)에 버퍼링되었을 경우에 R-S 디코딩이 수행되는 시점이지만, 실제로는 일어나는 동작은 아니다. 따라서 점선으로 표시되었다.Reference numeral 1270 denotes that burst # 1, followed by burst # 3 skipping burst # 2, is inputted from the frame / erasure buffer and RS decoder controller 530b from the MPE PID and MPE section detector 530a to the frame buffer 513. Indicates the time to buffer. Reference numeral 1272 denotes a time point at which the R-S decoding is performed when the frame buffer 513 is buffered at the time 1262, but does not actually occur. Therefore, it is indicated by a dotted line.

참조번호 1274는 참조번호 1272 시간에서 버스트 #2이 R-S 디코딩되었을 경우에 시리얼 인터페이스(704)로 출력될 시점이지만 상기 1272구간에서 버스트 #2에 대한 R-S 디코딩이 수행되지 않았음으로 실제로 일어나는 동작이 아니며, 따라서 점선으로 표시되었다.Reference number 1274 is a time point to be output to the serial interface 704 when burst # 2 is RS decoded at time 1272, but the operation does not actually occur because RS decoding for burst # 2 has not been performed in the section 1272. , And therefore indicated by a dashed line.

참조번호 1276은 버스트 #3에 뒤이어 버스트 #4가 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 수신되는 시점이지만, 이미 프레임 버퍼(513)은 버스트 #3에 할당되어 있으므로 입력만 될 뿐 점선과 같이 버퍼링되지는 않게 된다. 즉, 버스트 #4의 데이터들도 손실하게 된다.1276 is the time when burst # 3 is followed by burst # 4 when the frame / erase buffer and RS decoder controller 530b is received from the MPE PID and MPE section detector 530a, but already the frame buffer 513 is burst #. Since it is assigned to 3, it is only input, not buffered like a dashed line. That is, the data of burst # 4 is also lost.

참조번호 1278은 상기 1270구간에서 버퍼링된 버스트 #3을 R-S 디코딩하는 시점이며, 참조번호 1280은 상기 R-S 디코딩된 버스트 #3을 시리얼 인터페이스(704)로 출력하는 시점을 나타낸다. 참조번호 1282는 프레임 버퍼(513)이 버스트 #3에 할당되었음을 보여준다.Reference numeral 1278 denotes a time point for R-S decoding burst # 3 buffered in the 1270 section, and reference numeral 1280 indicates a time point for outputting the R-S decoded burst # 3 to the serial interface 704. Reference numeral 1282 shows that frame buffer 513 is allocated to burst # 3.

즉, 참조번호 1286구간에서는 버스트 #3에 대해서만 버퍼링, R-S 디코딩, 시리얼 인터페이스(704)로의 출력이 발생될 뿐 버스트 #4에 대해서는 아무런 동작을 취할 수 없게 된다. 참조번호 1288구간은 버스트 #4가 상기 참조번호 1276구간에서 프레임 버퍼(513)에 버퍼링되었을 경우 R-S 디코딩과 시리얼 인터페이스(704)로 출력되는 시점이지만, 프레임 버퍼(513)에 버퍼링되지 못했음으로 실제 동작은 이루어지지 않는 구간이다.That is, in section 1286, buffering, R-S decoding, and output to the serial interface 704 are generated only for the burst # 3, and no operation can be performed for the burst # 4. The section 1288 is a time point when the burst # 4 is output to the RS decoding and the serial interface 704 when the burst # 4 is buffered in the frame buffer 513 in the section 1276. However, the burst operation is not buffered in the frame buffer 513. Is an unoccupied section.

상술한 바와 같이 본 발명의 제2 실시 예에 따르면 다수의 버스트들이 연속되어 수신될 경우에는 프레임/이레이져 버퍼 및 RS 복호기 제어기(530b)가 하나의 유한 스테이트 머신으로만 구성되었기 때문에 프레임 버퍼링, R-S 디코딩, 시리얼 출력 등을 각각 시간대별로 순서대로 동작할 수밖에 없었다.As described above, according to the second embodiment of the present invention, when a plurality of bursts are continuously received, the frame buffering, RS, because the frame / erase buffer and the RS decoder controller 530b are constituted by only one finite state machine. Decoding, serial output, etc. were forced to operate in order for each time zone.

따라서 동시에 수신된 여러 버스트들에 대해서는 동시에 다수의 버스트들을 처리하는 것이 어려웠다. 그로 인하여 두 개 채널에 대한 PIP 동작도 제공할 수 없으며, 채널 전환을 위한 연속 수신 모드 시 연속된 버스트에 대한 MPE-FEC 프레임 복호를 수행할 수 없고, 버스트 하나씩(또는 그 이상)건너뛴 순서대로 버스트를 디코딩할 수 있다. 그리고 제2 실시 예에 따른 DVB-H 수신기는 하나의 버스트에 두 개 이상의 PID를 할당하여 복수 채널의 방송 데이터를 실어 전송하는 병렬 서비스 케이스(Parallel Service Case)의 복호를 수행할 수 없다.Thus, for multiple bursts received at the same time, it was difficult to process multiple bursts at the same time. As a result, it cannot provide PIP operation for two channels, cannot perform MPE-FEC frame decoding for consecutive bursts in continuous reception mode for channel switching, and in order of skipping one burst (or more). Burst can be decoded. In addition, the DVB-H receiver according to the second embodiment may not decode a parallel service case in which two or more PIDs are allocated to one burst to carry and transmit broadcast data of a plurality of channels.

따라서 본 발명의 제3 실시 예에서는 DVB-H 수신기가 MPE-FEC 프레임을 복호하기 위한 새로운 실시 예를 기술하기로 한다. 제3 실시 예에서는 채널 전환 시간 감소를 위한 연속 수신 모드 및 PIP 모드를 위한 DVB-H 수신기에서 방송 데이터 복호 장치 및 방법과 병렬 서비스 경우의 복호를 수행할 수 있는 수신기 구조를 제안하기로 한다.Therefore, in the third embodiment of the present invention, a new embodiment for decoding the MPE-FEC frame by the DVB-H receiver will be described. In the third embodiment, a broadcast data decoding apparatus and method and a receiver structure capable of performing decoding in a parallel service case in a DVB-H receiver for a continuous reception mode for reducing channel switching time and a PIP mode will be proposed.

도 13은 본 발명의 제3 실시 예에 따른 MPE-FEC 복호화기(315)의 구성도이다. 먼저, 도 13을 설명하기에 앞서 도 7과 동일한 역할을 하는 블록들에 대해서는 도 7에서 사용한 것과 동일한 참조번호를 사용하였다.13 is a configuration diagram of an MPE-FEC decoder 315 according to a third embodiment of the present invention. First, prior to describing FIG. 13, the same reference numerals as used in FIG. 7 are used for blocks that play the same role as FIG. 7.

MPE-FEC 복호하기(315)의 제어기(1300)는 MPE PID 및 MPE 섹션 검출기(1300a)와 프레임/이레이져 버퍼 제어기, RS 복호기 제어기 및 시리얼 출력 제어기를 포함하는 주 제어 유닛(1300b)을 포함한다.Controller 1300 of MPE-FEC decoding 315 includes an MPE PID and MPE section detector 1300a and a main control unit 1300b that includes a frame / eraser buffer controller, an RS decoder controller, and a serial output controller. .

MPE PID 및 MPE 섹션 검출기(1300a)는 수신된 TS 패킷으로부터 추출된 MPE 섹션과 MPE-FEC 섹션에 대한 CRC를 수행하기 위해 순환버퍼(1314)를 제어한다. 제2 실시 예에서의 MPE PID 및 MPE 섹션 검출기(700)와는 달리 제3 실시 예에서의 MPE PID 및 MPE 섹션 검출기(1300a)는 병렬 서비스의 지원을 위해 복수개가 구비될 수 있으며, 각각의 MPE PID 및 MPE 섹션 검출기(1300a)는 적어도 두 개 이상의 연속되는 버스트의 섹션 데이터를 수신하여 각 버스트의 섹션 데이터를 주 제어 유닛(1300b)으로 출력한다. The MPE PID and MPE section detector 1300a controls the circulating buffer 1314 to perform CRC on the MPE and MPE-FEC sections extracted from the received TS packets. Unlike the MPE PID and MPE section detector 700 in the second embodiment, a plurality of MPE PID and MPE section detector 1300a in the third embodiment may be provided to support parallel services, and each MPE PID may be provided. And the MPE section detector 1300a receives section data of at least two consecutive bursts and outputs section data of each burst to the main control unit 1300b.

주 제어 유닛(1300b)은 프레임/이레이져 버퍼 제어기와 R-S 복호기 제어기, 시리얼 출력 제어기 각각을 유한 스테이트 머신으로 구현되어 있으며, 상기 주 제어 유닛(1300b)의 상세 구성은 후술할 도 14를 참조하여 상세히 설명하기로 한다. The main control unit 1300b is implemented with a finite state machine each of a frame / erasure buffer controller, an RS decoder controller, and a serial output controller. A detailed configuration of the main control unit 1300b will be described in detail with reference to FIG. Let's explain.

도 13에서는 MPE PID 및 MPE 섹션 검출기(1300a)가 버스트 #1과 버스트 #2를 모두 수신하여 CRC 검사 결과 'Good'이 발생한 버스트 #1 및 버스트 #2의 섹션 데이터들을 각각 주 제어 유닛(1300b)으로 출력하는 것을 보여주고 있다.In FIG. 13, the MPE PID and the MPE section detector 1300a receive both burst # 1 and burst # 2 and output the section data of burst # 1 and burst # 2 in which the CRC check resulted in 'Good', respectively, in the main control unit 1300b. Is showing the output.

주 제어 유닛(1300b)은 중재기 1(1302) 및 중재기 2(1304)를 통해 프레임 버퍼(1308)와 이레이져 버퍼(1310) 및 R-S 복호기(1312)를 제어한다. 중재기 1(1302)과 중재기 2(1304)는 주 제어 유닛(1300b)이 버퍼링 또는 R-S 디코딩, 시리얼 출력을 위해 읽기/쓰기 동작을 수행해야할 때 프레임 버퍼(1308)나 이레이져 버퍼(1310)에 접근하는 시간을 나누어 주는 역할을 수행한다. 또한 DVB-H 수신기의 프로세서인 CPU(1320)가 버스 인터페이스(1306)을 통해 프레임 버퍼(1308)로 접근할 때 주 제어 유닛(1300b)의 접근 타이밍과 충돌하지 않게 제어한다. The main control unit 1300b controls the frame buffer 1308, erasure buffer 1310, and R-S decoder 1312 via arbiter 1 1302 and arbiter 2 1304. Arbitrator 1 1302 and arbiter 2 1304 are frame buffer 1308 or erasure buffer 1310 when main control unit 1300b needs to perform read / write operations for buffering, RS decoding, or serial output. The role is to share the time of access. In addition, when the CPU 1320, which is a processor of the DVB-H receiver, approaches the frame buffer 1308 through the bus interface 1306, the CPU 1320 controls the collision of the access timing of the main control unit 1300b.

즉, 이와 같이 중재기(1302, 1304)가 프레임 버퍼(1308)와 이레이져 버퍼(1310)마다 각각 구비되어 있는 이유는 프레임 버퍼(1308), 이레이져 버퍼(1310)에 대한 접근이 주 제어 유닛(1300b)내의 복수의 제어기들과 CPU(1320)에 의해 이루어지기 때문에 이들의 접근을 제어해줄 필요가 있기 때문이다.That is, the reason why the arbiters 1302 and 1304 are provided for each of the frame buffer 1308 and the erasure buffer 1310 is that the access to the frame buffer 1308 and the erasure buffer 1310 is the main control unit. It is because it is made by a plurality of controllers and the CPU 1320 in (1300b) it is necessary to control their access.

프레임 버퍼(1308)는 수신된 두 개 또는 그 이상의 버스트들의 IP 데이터 그램과 패리티 데이터를 동시에 저장할 수 있도록 제2 실시 예에 비해 두 배의 크기를 갖고 있으며, IP 데이터 그램과 패리티 데이터를 버퍼링하는 과정은 도 7의 프레임 버퍼(513)의 동작에 상세히 기재되어 있다.The frame buffer 1308 has a size twice as large as that of the second embodiment to simultaneously store IP datagrams and parity data of two or more received bursts, and buffers the IP datagrams and the parity data. Is described in detail in the operation of frame buffer 513 in FIG.

이레이져 버퍼(1310)에는 주 제어 유닛(1300b)이 MPE PID 및 MPE 섹션 검출기(1300a)로부터 섹션 데이터를 입력받을 때, 주 제어 유닛(1300b)이 마킹(Marking)한 상기 섹션 데이터에 대한 신뢰성(Reliable) 정보가 저장된다. 이레이져 버퍼(1310)에 신뢰성 정보를 마킹하는 과정 및 초기화 동작은 도 7의 이레이져 버퍼(515)의 동작에 상세히 기재되어 있다.The erasure buffer 1310 includes the reliability of the section data marked by the main control unit 1300b when the main control unit 1300b receives section data from the MPE PID and the MPE section detector 1300a. Reliable) information is stored. The process of marking reliability information on the eraser buffer 1310 and the initialization operation are described in detail in the operation of the eraser buffer 515 of FIG. 7.

R-S 복호기(1312)는 주 제어 유닛(1300b)의 제어에 의해 프레임 버퍼(1308)에 버퍼링된 IP 데이터그램들에 패리티 데이터를 이용하여 R-S 복호를 수행하게 되며, R-S 복호기(1312)의 복호 시점 및 복호 동작은 도 5 및 도 7에 상세히 기재되어 있다.The RS decoder 1312 performs RS decoding using parity data on the IP datagrams buffered in the frame buffer 1308 by the control of the main control unit 1300b, and the decoding time of the RS decoder 1312 and The decoding operation is described in detail in FIGS. 5 and 7.

R-S 복호된 IP 데이터그램의 출력은 Local SSP(702) 및 시리얼 인터페이스 또는 Bus I/F(1306)를 통해 수행된다. Local SSP(702)와 Bus I/F(1306) 각각은 IP 데이터그램을 시리얼 형태로 직접 출력하거나, 버스(APB 또는 AHB)를 통해 DVB-H 수신기의 CPU(1320)로 출력할 수 있다. The output of the R-S decoded IP datagram is performed via the Local SSP 702 and the serial interface or Bus I / F 1306. Each of the Local SSP 702 and the Bus I / F 1306 may directly output an IP datagram in serial form or may output the IP datagram to the CPU 1320 of the DVB-H receiver via a bus (APB or AHB).

MPE-FEC_done 인터럽트 신호는 CPU(1320)로 한 버스트에 대한 MPE-FEC 프레임 디코딩이 종료되었다는 것을 알려주고 동시에 데이터를 읽어갈 수 있다는 시점을 알려주는 역할을 수행한다. The MPE-FEC_done interrupt signal informs the CPU 1320 that the decoding of the MPE-FEC frame for one burst has ended and indicates the point at which data can be read at the same time.

도 14는 본 발명의 제3 실시 예에 따른 주 제어 유닛(1300b)의 상세 블록 구성도이며, 도 15는 본 발명의 제3 실시 예에 따른 주 제어 유닛(1300b) 주변 블록들의 상세 구성도이다. 이하에서 도 14 및 도 15를 참조하여 본 발명의 제3 실시 예에 따른 DVB-H 수신기에서의 연속 수신 모드 및 PIP 모드로 동작하기 위해 연속되는 버스트를 복호하는 동작을 설명하기로 한다. 14 is a detailed block diagram of the main control unit 1300b according to the third embodiment of the present invention, and FIG. 15 is a detailed block diagram of blocks around the main control unit 1300b according to the third embodiment of the present invention. . Hereinafter, an operation of decoding successive bursts to operate in the continuous reception mode and the PIP mode in the DVB-H receiver according to the third embodiment of the present invention will be described with reference to FIGS. 14 and 15.

도 14를 참조하면, 본 발명의 제3 실시 예에 따른 주 제어 유닛(1300b)은 세그먼트 할당기(Segment Allocator)(1400), 두 개의 버퍼링 제어기(1402a, 1420b), R-S 큐(Queue)(1404), R-S 복호기 제어기(1406), 시리얼 출력 큐(Serial Output Queue : SOUT Queue)(1408), 시리얼 출력 제어기(1410)를 포함한다.Referring to FIG. 14, the main control unit 1300b according to the third embodiment of the present invention includes a segment allocator 1400, two buffering controllers 1402a and 1420b, and an RS queue 1404. ), An RS decoder controller 1406, a serial output queue (SOUT Queue) 1408, and a serial output controller 1410.

두 개의 버퍼링 제어기(1402a, 1402b)는 두 개의 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트 정보와 섹션 데이터(1450 ~ 1456)를 각각 입력받는다. 버퍼링 제어기 #1(1402a)은 버스트 #1에 대한 버퍼링 동작 및 신뢰성 마킹 동작을 수행하며, 버퍼링 제어기 #2(1402b)은 버스트 #2에 대한 버퍼링 동작 및 신뢰성 마킹 동작을 수행한다. Two buffering controllers 1402a and 1402b receive burst information and section data 1450 to 1456 from two MPE PID and MPE section detectors 1300a, respectively. Buffering controller # 1 1402a performs a buffering operation and a reliability marking operation on burst # 1, and buffering controller # 2 1402b performs a buffering operation and a reliability marking operation on burst # 2.

버퍼링 제어기(1402)의 동작 흐름은 아래의 도 16를 참조하여 설명하기로 한다. MPE PID 및 MPE 섹션 검출기(1300a)로부터 입력되는 버스트 정보(섹션 파라미터)(1450, 1454)에는 PID(Packet Identifier), MPE-FEC가 사용되었는지를 알려주는 MPE_FEC_EN 정보와 MPE-FEC 프레임 크기를 지시하는 가로 줄 개수 정보인 N_ROW(number of rows) 등이 있다.The operation flow of the buffering controller 1402 will be described with reference to FIG. 16 below. The burst information (section parameters) 1450 and 1454 input from the MPE PID and the MPE section detector 1300a include MPE_FEC_EN information indicating whether a PID (Packet Identifier) and MPE-FEC have been used and an MPE-FEC frame size. N_ROW (number of rows), which is horizontal row number information.

상기 "버스트 정보"는 상기 <표 1>에 표기하였던 헤더 내용들인 table_id, section_length, padding_columns, table_boundary, frame_boundary, address 이외에 PID, MPE_FEC_EN, N_ROW, Priority, handover 등을 더 포함하며, 각각의 정의는 아래 <표 2>와 같다.The "burst information" further includes PID, MPE_FEC_EN, N_ROW, Priority, handover, etc. in addition to table_id, section_length, padding_columns, table_boundary, frame_boundary, and address, which are shown in Table 1. Table 2>.

버스트 정보Burst Information 내용Contents table_idtable_id MPE section 또는 MPE-FEC section을 나타냄.Indicates MPE section or MPE-FEC section. section_lengthsection_length section의 4번째 byte부터 CRC32가 포함된 section의 끝까지 byte단위의 길이를 나타낸다.The length in bytes from the fourth byte of the section to the end of the section containing the CRC32. padding_columnspadding_columns MPE-FEC 프레임의 application data table 영역에서 총 zero padding된 column 수를 나타내고 0 ~ 190 값을 갖는다.It represents the total number of zero padding columns in the application data table area of the MPE-FEC frame and has a value from 0 to 190. table_boundarytable_boundary '1'로 설정되면 현재 section 이 MPE-FEC 프레임의 각 데이터 테이블 영역에서 마지막 section임을 표시한다.When set to '1', it indicates that the current section is the last section in each data table area of the MPE-FEC frame. frame_boundaryframe_boundary '1'로 설정되면 현재 section이 MPE-FEC 프레임의 마지막 section임을 표시한다.When set to '1', it indicates that the current section is the last section of the MPE-FEC frame. addressaddress 현재 section에 의하여 실려오는 section payload의 첫 번째 byte가 MPE-FEC 프레임 각 데이터 테이블 영역에서의 byte position을 나타낸다.The first byte of the section payload loaded by the current section indicates the byte position in each data table area of the MPE-FEC frame. PIDPID Packet Identifier, TS 패킷에 부여되는 ID번호로서 서비스(채널)을 구분하기 위해 사용된다.Packet Identifier, an ID number assigned to a TS packet, used to identify a service (channel). MPE_FEC_ENMPE_FEC_EN MPE-FEC 의 적용 여부를 나타냄.Indicates whether MPE-FEC is applied. N_ROWN_ROW Number of rows(0 : 256 rows, 1 :512 rows, 2 : 768 rows, 3 : 1024 rows)Number of rows (0: 256 rows, 1: 512 rows, 2: 768 rows, 3: 1024 rows) PriorityPriority PIP 또는 연속수신모드로 동작할 시, 현재 시청중인 채널에 대해 high priority를 부여할 수 있다.When operating in PIP or continuous reception mode, high priority can be given to the channel being watched. handoverhandover 다른 FA로 handover하는 경우, 서로 다른 채널임에도 같은 PID 번호를 사용하여 서로 구분할 수 없는 경우가 발생할 수 있는데, 이때 채널을 구분하기 위한 추가적인 수단으로 서 FA 전환여부인 handover를 사용하게 된다. In case of handover to different FA, it may be impossible to distinguish each other by using the same PID number even though they are different channels. At this time, a handover, which is a FA switching or not, is used as an additional means for distinguishing channels.

제1 및 제2 섹션 데이터(1452, 1456) 입력의 시작 시점에 제1 및 제2 버스트 정보(1450, 1454)를 입력받으면, 버퍼링 제어기(1402a, 1402b)는 필요한 크기의 프레임 버퍼와 이레이져 버퍼 영역을 할당받기 위해 세그먼트 할당기(Segment allocator)(1400)로 가로 줄 개수 정보(N_ROW)(1458, 1460) 값을 전송한다. 세그먼트 할당기(1400)는 수신한 가로 줄 개수 정보(N_ROW)(1458, 1460) 값에 해당하는 크기만큼 프레임 버퍼(1308)와 이레이져 버퍼(1310)의 영역을 할당하고 상기 가로 줄 개수 정보 만큼의 섹션 데이터를 저장하기 위해 할당된 프레임 버퍼(1308)영역의 주소 정보인 제1 및 제2 프레임 세그먼트(Frame segment)(1462a, 1462b)를 다시 버퍼링 제어기(1402)로 알려준다. 아울러 상기 가로 줄 개수 정보(1458, 1460) 값에 해당하는 크기만큼의 신뢰성 정보를 저장하기 위해 할당된 이레이져 버퍼(1310) 영역의 주소 정보인 제1 및 제2 이레이져 세그먼트(1464a, 1464b)도 함께 버퍼링 제어기(1402)로 전송한다.Upon receiving the first and second burst information 1450 and 1454 at the start point of inputting the first and second section data 1452 and 1456, the buffering controller 1402a and 1402b receives a frame buffer and an eraser buffer of a required size. In order to receive the area, the horizontal row number information (N_ROW) 1458 and 1460 are transmitted to the segment allocator 1400. The segment allocator 1400 allocates an area of the frame buffer 1308 and the erasure buffer 1310 by a size corresponding to the received horizontal line number information (N_ROW) 1458 and 1460 and sets the horizontal line number information. The first and second frame segments 1462a and 1462b, which are address information of the area of the frame buffer 1308 allocated to store the section data of the first data, are notified to the buffering controller 1402. In addition, the first and second eraser segments 1464a and 1464b which are address information of an area of the eraser buffer 1310 allocated to store reliability information corresponding to the size of the horizontal line number information 1458 and 1460. It is also sent to the buffering controller 1402 together.

버퍼링 제어기(1402)는 상기 제1 및 제2 프레임 세그먼트(1462a, 1462b)와 제1 및 제2 이레이져 세그먼트(1464a, 1464b)를 수신하면, 입력되는 제1 및 제2 섹션 데이터(1452, 1456)를 참조번호 1466과 같이 프레임 버퍼(1308)에 쓰고, 참조번호 1468과 같이 이레이져 데이터를 전송하여 이레이져 버퍼(1310)의 해당 위치를 "reliable"로 표기한다.When the buffering controller 1402 receives the first and second frame segments 1462a and 1462b and the first and second erasure segments 1464a and 1464b, the first and second section data 1452 and 1456 are input. ) Is written in the frame buffer 1308 as shown by reference numeral 1466, and the eraser data is transmitted as indicated by reference numeral 1468 to indicate the corresponding position of the erasure buffer 1310 as "reliable".

프레임 버퍼(1308)와 이레이져 버퍼(1310)에 각각 섹션 데이터 버퍼링과 이레이져 데이터의 버퍼링을 수행한 버퍼링 제어기(1402)는 R-S 큐(1404)로 버스트 #1과 버스트 #2에 대한 각각의 버스트 정보(1470a, 1470b)와 버퍼 주소 정보(1472a, 1472b)를 전송한다. 여기서 버퍼링 제어기(1402)가 R-S 큐(1402)로 전송하는 버스트 정보(1470a, 1470b)는 버스트의 PID, MPE_FEC_EN, N_ROW, HANDOVER, RS_ERASURE 정보들이며, 버퍼 주소 정보(1472a, 1472b)는 상기 세그먼트 할당기(1400)로부터 수신한 프레임 세그먼트, 이레이져 세그먼트 정보이다. The buffering controller 1402, which has performed section data buffering and erasure data buffering in the frame buffer 1308 and the eraser buffer 1310, respectively, is a respective burst for burst # 1 and burst # 2 to the RS queue 1404. Information 1470a and 1470b and buffer address information 1472a and 1472b are transmitted. The burst information 1470a and 1470b transmitted from the buffering controller 1402 to the RS queue 1402 are PIDs, MPE_FEC_EN, N_ROW, HANDOVER, and RS_ERASURE information of the burst, and buffer address information 1472a and 1472b are the segment allocator. Frame segment and erasure segment information received from 1400.

여기서 RS_ERASURE 정보는 이레이져 버퍼(1310) 중 MPE-FEC 영역에 대한 신뢰성 정보를 1열x63행x1비트의 레지스터 파일(1608)에 압축하여 저장하는 것으로, 상기 신뢰성 정보는 각 버스트마다 각각 유지되어야 하므로, 버퍼링 제어기(1402)는 수신된 섹션 데이터로부터 이를 구하여 R-S 큐(1404)를 통해 R-S 복호기 제어기(1406)로 전송하여 MPE-FEC R-S 복호에 사용될 수 있도록 한다.In this case, the RS_ERASURE information is obtained by compressing and storing reliability information of the MPE-FEC region of the erasure buffer 1310 in a register file 1608 of 1 column x 63 rows x 1 bit, and the reliability information must be maintained for each burst. The buffering controller 1402 obtains this from the received section data and transmits it to the RS decoder controller 1406 via the RS queue 1404 to be used for MPE-FEC RS decoding.

버퍼링 제어기(1402)가 버스트 데이터 입력의 종료를 판정하는 방법에는 세가지가 있다. 첫 번째 방법은 MPE PID 및 MPE 섹션 검출기(1300a)가 프레임 경계를 검출한 경우, 두 번째 방법은 타임 슬라이싱 처리기(313)가 최대 버스트 기간 초과를 알려주는 경우, 세 번째 방법은 섹션 주소가 감소하는 경우이다. 각각의 조건에 의해 한 버스트에 대한 섹션 데이터의 입력이 끝나면, 버퍼링 제어기(1402)는 해당 버스트에 대해 MPE PID 및 MPE섹션 검출기(1300a)로부터 입력받은 정보와 프레임 버퍼(1308) 및 이레이져 버퍼(1310) 내 영역의 주소 정보를 R-S 큐(1404)로 전송한다. There are three ways the buffering controller 1402 determines the end of burst data input. If the first method detects frame boundaries by the MPE PID and MPE section detector 1300a, and the second method indicates that the time slicing processor 313 indicates exceeding the maximum burst period, the third method reduces the section address. If it is. After inputting the section data for one burst by each condition, the buffering controller 1402 receives the information received from the MPE PID and the MPE section detector 1300a, the frame buffer 1308 and the erasure buffer (for the corresponding burst). 1310) transmit the address information of the region within the RS queue (1404).

R-S 큐(1404)는 상기 버퍼링 제어기(1402)로부터 입력받은 버스트 정보(1470a, 1470b)와 버퍼 주소 정보(1472a, 1472b)를 참조번호 1474와 같이 R-S 디코딩 제어기(1406)로 전송한다. R-S 복호기 제어기(1406)는 R-S 큐(1404)로부터 버스트 정보와 버퍼 주소 정보(1474)를 수신한 경우 프레임 버퍼(1308)에 버퍼링된 섹션 데이터들에 대한 오류 정정을 수행하기 위해 중재기1(1302)을 통해 제3 섹션 데이터(1476)를 가져오고 중재기2(1304)를 통해 제3 이레이져 데이터(1490)를 가져온다. 이때, 제3 섹션 데이터의 프레임 버퍼 내 위치는 R-S 큐(1404)에서 수신한 버퍼 주소 정보(1474)에서 구한다.The R-S queue 1404 transmits burst information 1470a and 1470b and buffer address information 1472a and 1472b received from the buffering controller 1402 to the R-S decoding controller 1406 as indicated by reference numeral 1474. When the RS decoder controller 1406 receives the burst information and the buffer address information 1474 from the RS queue 1404, the arbiter 1 1302 performs error correction on the section data buffered in the frame buffer 1308. Third section data 1476 is obtained, and third erasure data 1490 is obtained via Arbitrator 2 (1304). In this case, the position in the frame buffer of the third section data is obtained from the buffer address information 1474 received from the R-S queue 1404.

그리고, R-S 복호기 제어기(1406)는 상기 제3 섹션 데이터(1476)에 대한 R-S 디코딩을 수행하기 위해 R-S 복호기(1312)를 제어한다. R-S 복호기(1312)의 디코딩 결과 오류 정정이 가능하다면, R-S 복호기 제어기(1406)는 상기 제 3 섹션 데이터(1476)의 오류를 정정한 수정된 섹션 데이터(1478)를 중재기1(1302)을 통해 프레임 버퍼(1310)에 다시 버퍼링한다. 이와 같이 R-S 복호기 제어기(1406)가 이레이져 버퍼(1310)로부터 이레이져 데이터(1490)를 가져오는 이유는 신뢰성 정보가 마킹된 위치를 정확하게 지시하기위해 해당부분을 copy&paste하기 위해서이다. MPE-FEC를 위한 R-S 복호기(1312)는 일반적인 R-S 복호기가 아니라, 이레이져 R-S 복호기를 사용하기 때문에 R-S 복호기 제어기(1406)가 이레이져 정보를 이레이져 버퍼(1310)로부터 읽어 R-S 복호기(1312)에 제공해주어야 한다. 그렇지 않다면 R-S 복호를 수행함으로써 발생하는 성능의 이익이 없을 것이다.The R-S decoder controller 1406 controls the R-S decoder 1312 to perform R-S decoding on the third section data 1476. If the decoding result of the RS decoder 1312 is capable of error correction, the RS decoder controller 1406 sends the modified section data 1478, which corrects the error of the third section data 1476, through the arbitrator 11302. It buffers the frame buffer 1310 again. The reason why the R-S decoder controller 1406 fetches the erasure data 1490 from the erasure buffer 1310 is to copy & paste the corresponding part to accurately indicate the position where the reliability information is marked. Since the RS decoder 1312 for MPE-FEC uses an erasure RS decoder, not an ordinary RS decoder, the RS decoder controller 1406 reads erasure information from the eraser buffer 1310 to the RS decoder 1312. Must be provided. Otherwise there will be no performance benefit resulting from performing R-S decoding.

좀더 상세히 설명하면 상술한 도 10에서 이미 설명한 바와 같이 R-S 복호기(1312)는 각 가로 줄(row) 단위로 RS 디코딩을 수행하게 되는데, MPE-FEC를 위한 R-S 복호기(1312)는 (N=255, k=191, t=32)의 이레이져(erasure) 복호기로서 2V+P≤64(V:에러 개수, P: erasure 개수)를 만족하면 해당 가로 줄(row)을 복호할 수 있다. In more detail, as described above with reference to FIG. 10, the RS decoder 1312 performs RS decoding in units of horizontal rows, and the RS decoder 1312 for MPE-FEC (N = 255, If 2V + P≤64 (V: number of errors, P: number of erasures) is satisfied as an erasure decoder of k = 191 and t = 32, the corresponding row can be decoded.

원래 RS 복호기 뿐 아니라 비터비 복호기나 터보 복호기 등의 채널 복호기는 수신한 codeword 데이터만을 갖고 자체적으로 오류를 정정하는 능력을 갖고 있다. R-S 복호기의 오류 정정은 오류의 위치를 알아내는 과정, 오류의 크기를 알아내는 과정, 마지막으로 오류를 정정하는 과정으로 진행되며, 이레이져 R-S 복호기는 R-S 복호기의 변형된 형태로서 입력 데이터 중 특정 위치가 오류임을 알고 있는 경우, 오류 위치를 찾기 위한 정보를 오류 크기를 알아내는 과정에 사용할 수 있게 됨으로서 오류 정정 능력을 향상시킬 수 있다. 즉, R-S 복호기(1312)는 프레임 버퍼(1308)에 저장된 데이터 뿐 아니라 이레이저 정보도 사용할 수 있으므로 에러 정정 능력을 향상시키게 된다.In addition to RS decoders, channel decoders such as Viterbi decoders and turbo decoders have the ability to correct errors on their own with only the received codeword data. Error correction of the RS decoder proceeds to the process of locating the error, finding the magnitude of the error, and finally correcting the error. The erasure RS decoder is a modified form of the RS decoder. If we know that is an error, the information to find the error location can be used in the process of determining the error size, thereby improving the error correction capability. That is, the R-S decoder 1312 may use not only data stored in the frame buffer 1308 but also erasure information, thereby improving error correction capability.

그리고, R-S 복호기 제어기(1406)는 제6 버스트 정보(PID, MPE_FEC_EN, N_ROW)(1480)와 제 4 버퍼 주소 정보(프레임 세그먼트 정보, 이레이져 세그먼트 정보)(1482)를 시리얼 아웃 큐(1408)로 출력한다. R-S 복호기 제어기(1406)는, 후술할 시리얼 출력 제어기(1410)가 Local SSP(702)를 통하여 시리얼 출력을 동작할 때 전송하는 패킷의 헤더에 제6 버스트 정보(1480)를 실어 어플리케이션 프로세서로 전송하도록, 상기 제6 버스트 정보(1480)를 시리얼 아웃 큐(1408)로 전송한다. 이 정보는 어플리케이션 프로세서가 패킷을 수신하여 이후 처리를 수행하는 데에 사용된다. 시리얼 아웃 큐(1408)로 함께 전송되는 제4 버퍼 주소 정보(1482)는 시리얼 출력 제어기(1410)가 프레임 버퍼 내에서 제4 섹션 데이터(1484)의 올바른 위치를 계산하는 데에 사용된다. 시리얼 아웃 큐(1408)는 상기 제6 버스트 정보(1480)와 제4 버퍼 주소 정보(1482)를 참조번호 1486과 같이 시리얼 출력 제어기(1410)로 전송한다.The RS decoder controller 1406 converts the sixth burst information (PID, MPE_FEC_EN, N_ROW) 1480 and the fourth buffer address information (frame segment information, erasure segment information) 1462 into the serial out queue 1408. Output The RS decoder controller 1406 loads the sixth burst information 1480 into a header of a packet transmitted when the serial output controller 1410, which will be described later, operates the serial output through the Local SSP 702 and transmits it to the application processor. The sixth burst information 1480 is transmitted to the serial out queue 1408. This information is used by the application processor to receive the packet and perform further processing. The fourth buffer address information 1462 sent together to the serial out queue 1408 is used by the serial output controller 1410 to calculate the correct position of the fourth section data 1484 within the frame buffer. The serial out queue 1408 transmits the sixth burst information 1480 and the fourth buffer address information 1462 to the serial output controller 1410 as shown by reference numeral 1486.

R-S 복호기 제어기(1406)는 입력된 버스트들의 열에 대한 R-S 디코딩이 종료되어 버스트 정보(1480)와 버퍼 주소 정보(1482)를 시리얼 아웃 큐(1408)로 출력한 후에는 신뢰성 정보가 더 이상 필요하지 않으므로 세그먼트 할당기(1400)로 이레이져 세그먼트 할당 해제(1486)를 요청한다. 그리고 시리얼 출력 제어기(1410)는 한 버스트에 대한 전송이 모두 끝난 후에는 세그먼트 할당기(1400)로 프레임 세그먼트 할당의 해제(1488)를 요청한다. 또한 시리얼 출력 제어기(1410) 뿐만 아니라 버스 인터페이스(1306)을 통해 프레임 버퍼(1308)의 섹션 데이터들을 CPU(708)로 출력할 수도 있다. 그러나, 첨부된 도 14와 도 15에 도시된 바와 같이 프레임 버퍼(1308)와 이레이져 버퍼(1310)에는 버퍼링 제어기(1402), R-S 복호기 제어기(1406), 시리얼 출력 제어기(1410) 과 같은 유한 스테이트 머신 이외에도 버스 인터페이스 제어기 (1306)가 접속하여야 함으로 각 블록들이 동시에 접근하지 않도록 중재 역할을 수행하는 중재기들(1302, 130)과 연결된다. 즉 프레임 버퍼(1308) 및 이레이져 버퍼(1310)에 대한 읽기/쓰기 접근은 최종적으로 중재기(1302, 1304)들을 통해 수행된다. 이것은 프레임 버퍼(1308)와 이레이져 버퍼(1310)에 대한 접근이 복수개의 유한 스테이트 머신들인 제어기들(1402, 1406, 1410)에 의해 수행되기 때문이다. 중재기(1302, 1304)들이 각각의 제어기(1402, 1406, 1410)들에게 접근할 시간을 할당함으로써 각각의 제어기들(1402, 1406, 1410)의 접근을 제어할 수 있다.Since the RS decoder controller 1406 outputs the burst information 1480 and the buffer address information 1462 to the serial out queue 1408 after the RS decoding for the input string is finished, the reliability information is no longer needed. Eraser segment deallocation 1486 is requested to segment allocator 1400. After all transmissions for one burst are completed, the serial output controller 1410 requests the segment allocator 1400 to release the frame segment allocation 1488. It is also possible to output section data of the frame buffer 1308 to the CPU 708 via the bus interface 1306 as well as the serial output controller 1410. However, as shown in FIGS. 14 and 15, the frame buffer 1308 and the erasure buffer 1310 have a finite state such as a buffering controller 1402, an RS decoder controller 1406, and a serial output controller 1410. In addition to the machine, the bus interface controller 1306 must be connected so that it is connected to the arbiters 1302 and 130, which play an arbitration role so that each block is not accessed simultaneously. That is, read / write access to the frame buffer 1308 and erasure buffer 1310 is finally performed through the arbiters 1302 and 1304. This is because access to the frame buffer 1308 and erasure buffer 1310 is performed by the controllers 1402, 1406, 1410, which are a plurality of finite state machines. Arbitrators 1302, 1304 can control the access of each controller 1402, 1406, 1410 by allocating time to access each controller 1402, 1406, 1410.

또한 도 14와 도 15에 도시된 바와 같이 본 발명의 제3 실시 예에서는 세 종류의 제어기들(1402, 1406, 1410)은 시간적으로 각각 독립적으로 동작함으로써, MPE-FEC 복호화기(315)는 동시에 복수 개의 버스트들을 처리할 수 있다. 그리고 상기 세 종류의 제어기들(1402, 1406, 1410)들의 동작 속도가 각각 다르므로 각 제어기(1402, 1406, 1410)들 사이에는 R-S 큐(1404)와 SOUT 큐(1408)들을 구비하여 속도차이에 따라 발생될 수 있는 데이터 손실을 방지하였다.In addition, as shown in FIGS. 14 and 15, in the third embodiment of the present invention, the three types of controllers 1402, 1406, and 1410 operate independently of each other in time, such that the MPE-FEC decoder 315 simultaneously operates. Multiple bursts can be processed. Since the operating speeds of the three types of controllers 1402, 1406, and 1410 are different from each other, RS queues 1404 and SOUT queues 1408 are provided between the controllers 1402, 1406, and 1410. This prevents any data loss that may occur.

도 16은 본 발명의 제3 실시 예에 따른 세그먼트 할당기(1400)가 프레임 버퍼(1308)와 이레이져 버퍼(1310)를 일정 크기의 세그먼트(Segment)로 분할한 구조를 보여주는 도면이다. FIG. 16 illustrates a structure in which the segment allocator 1400 divides the frame buffer 1308 and the erasure buffer 1310 into segments having a predetermined size.

본 발명의 제3 실시 예에 따른 세그먼트 할당기(1400)는 버퍼링 제어기(1402)와 R-S 복호기 제어기(1406), 시리얼 출력 제어기(1410)들의 요청에 따라 프레임 버퍼(1308)와 이레이져 버퍼(1310)의 영역을 할당하기도 하고 해제하기도하는 역할을 수행한다. 도 16과 같이 본 발명의 제3 실시 예에서는 버퍼 메모리 영역의 효율적인 사용을 위해, 프레임 버퍼(1308)와 이레이져 버퍼(1310)는 일정 크기의 세그먼트로 나누어진다. The segment allocator 1400 according to the third exemplary embodiment of the present invention may request a frame buffer 1308 and an erasure buffer 1310 at the request of the buffering controller 1402, the RS decoder controller 1406, and the serial output controller 1410. It also allocates and releases the realm of). As shown in FIG. 16, in the third embodiment of the present invention, the frame buffer 1308 and the erasure buffer 1310 are divided into segments of a predetermined size for efficient use of the buffer memory area.

프레임 버퍼(1308)와 이레이져 버퍼(1310)의 한 세그먼트는 256열 x 64행의 크기를 갖는다. 프레임 버퍼(1308)는 바이트 단위로 처리되고 이레이져 버퍼(1310)는 비트 단위로 처리되므로, 프레임 버퍼(1308)의 한 개 세그먼트 크기는 256열 x 64행 x 1바이트(1600)가 되고, 이레이져 버퍼(1310)의 한 개 세그먼트 크기는 256열 x 64행 x 1비트(1602)가 된다. 프레임 버퍼(1308)의 크기는 한 개의 버스트를 위한 최대 크기 2Mb의 두 배인 4Mb이며, 따라서 프레임 버퍼(1308) 내에 32개의 세그먼트를 갖는다. 참조번호 1604가 세그먼트 할당기(1400)가 프레임 버퍼(1308)를 본 발명의 제3 실시 예에 따라 세그먼트 분할을 수행한 것을 보여주고 있다.One segment of frame buffer 1308 and erasure buffer 1310 is 256 columns x 64 rows in size. Since frame buffer 1308 is processed in bytes and erasure buffer 1310 is processed in bits, one segment size of frame buffer 1308 is 256 columns x 64 rows x 1 byte 1600. One segment size of the buffer buffer 1310 is 256 columns x 64 rows x 1 bit 1602. The size of frame buffer 1308 is 4Mb, which is twice the maximum size of 2Mb for one burst, thus having 32 segments in frame buffer 1308. Reference numeral 1604 shows that the segment allocator 1400 performs the segmentation of the frame buffer 1308 according to the third embodiment of the present invention.

DVB-H 표준에 따르면 N_ROW(가로 줄의 개수)의 값은 256,512,768,1024일 수 있다. 256 열 단위로 세그먼트 할당을 처리하는 것은, 256열이나 512열과 같이 작은 크기의 열을 갖는 버스트가 연속으로 수신될 때, 버퍼를 보다 효율적으로 사용할 수 있도록 한다. 그리고 참조번호 1606과 같이 본 발명의 제3 실시 예에서는 이레이져 버퍼(1310)를 위해서 한 버스트를 위한 최대 크기 0.25Mb만을 사용하였다. 이와 같이 본 발명의 제3 실시 예에서 이레이져 버퍼(1310)에서 한 버스트를 위한 최대 크기를 0.25Mb로 사용하는 이유는 본래, 이레이져 정보는 프레임 버퍼(1308) 내 데이터 1 바이트당 1비트가 필요하기 때문이다. 따라서, 프레임 버퍼(1308)의 크기가 2Mb에서 4Mb로 증가하였다면(연속수신모드 동작을 위해 제 2 실시예에서 제3 실시예로 확장할 경우) 이레이져 버퍼(1310)의 크기는 2Mb x 1/8 = 0.25Mb에서 4Mb x 1/8 = 0.5Mb로 증가하게 될 것이다. 그런데, MPE-FEC 섹션의 특성을 이용해 레지스터 파일(1608)을 사용하여 이레이져 버퍼(1310)의 크기를 원래 필요한 크기 대비 3/4로 줄이고 시리얼 출력 제어기(1410)가 이레이져 정보를 필요로 하지 않는 특성을 이용하여 추가로 이레이져 버퍼(1310)의 크기를 줄여서 당초 필요한 크기 0.5Mb 대비 절반인 0.25Mb만을 사용하여도 구현할 수 있게 된다.According to the DVB-H standard, the value of N_ROW (the number of horizontal rows) may be 256,512,768,1024. Processing segment allocation in 256-row units allows the buffer to be used more efficiently when bursts with smaller rows, such as 256 or 512 columns, are received in succession. In the third embodiment of the present invention, as shown by reference numeral 1606, only the maximum size 0.25Mb for one burst is used for the erasure buffer 1310. As such, in the third embodiment of the present invention, the reason why the maximum size for one burst is 0.25 Mb in the erasure buffer 1310 is essentially 1 bit per byte of data in the frame buffer 1308. Because it is necessary. Therefore, if the size of the frame buffer 1308 is increased from 2Mb to 4Mb (when extending from the second embodiment to the third embodiment for continuous reception mode operation), the size of the erasure buffer 1310 is 2Mb x 1 /. It will increase from 8 = 0.25 Mb to 4 Mb x 1/8 = 0.5 Mb. By using the properties of the MPE-FEC section, however, the register file 1608 is used to reduce the size of the erasure buffer 1310 to three quarters of its original size and the serial output controller 1410 does not need erasure information. By further reducing the size of the eraser buffer 1310 by using the characteristic, it is possible to implement even using only 0.25Mb, which is half of the original required 0.5Mb.

이레이져 버퍼(1310)를 위한 추가적인 메모리를 사용하지 않으면서 연속 수신 모드로 동작하기 위해서, 한 버스트에 대한 신뢰성 정보 중 최초 192행(세로 줄)에 대한 정보는 이레이져 버퍼 메모리(1606)에 저장하고 나머지 63행에 대한 정보는 별도의 1열(가로 줄 개수) x 63행(세로 줄 개수) 크기의 레지스터 파일(1608)에 저장한다. 참조번호 1608의 1열 크기의 저장장소에 신뢰성 정보의 저장이 가능한 것은 MPE-FEC 섹션의 길이가 모두 동일한 DVB-H 표준의 특성에 기인한다. 한 버스트에 대한 섹션들 중에서, 어플리케이션 데이터 영역(application data region)에 위치한 MPE 섹션들은 32~4096 바이트의 다양한 길이를 가질 수 있고 이런 이유로 각각의 바이트에 대해 신뢰성 정보의 저장 장소가 필요하다. 이와 대조적으로 R-S 데이터 영역(RS data region)에 위치한 MPE-FEC 섹션들은 모두 동일하게 N_ROW 만큼의 길이를 갖는다. 따라서, 한 섹션에 대한 신뢰성 정보는 모두 동일하고 한 행에 대한 신뢰성 정보를 한 비트만 사용하여 저장할 수 있다.  In order to operate in continuous receive mode without using additional memory for erasure buffer 1310, information about the first 192 rows (vertical lines) of reliability information for one burst is stored in erasure buffer memory 1606. Information about the remaining 63 rows is stored in a separate register file 1608 having a size of 1 column (horizontal lines) x 63 rows (vertical lines). The storage of reliability information in the one-sized storage area of reference 1608 is attributable to the characteristics of the DVB-H standard, which all have the same length of the MPE-FEC section. Among the sections for a burst, the MPE sections located in the application data region can have varying lengths of 32-4096 bytes, which is why storage of reliability information is needed for each byte. In contrast, all MPE-FEC sections located in an R-S data region have the same length as N_ROW. Therefore, the reliability information for one section is all the same, and the reliability information for one row can be stored using only one bit.

어플리케이션 데이터 영역은 최초 191행, R-S 데이터 영역은 최후 64행을 차치하고 있다. 본 발명에서는 64행 단위로 세그먼트를 처리하므로 최초 192행까지 이레이져 버퍼 메모리에 저장하고, 나머지 63행을 1열 크기의 압축된 저장장소에 저장한다. 이 방법을 사용함으로서 N_ROW가 256인 경우 버스트 당 한 세그먼트, N_ROW가 1024인 경우 버스트 당 4 세그먼트의 저장장소를 절약할 수 있다. The first application data area is 191 rows and the last R-S data area is 64 rows. In the present invention, since the segment is processed in units of 64 rows, the first 192 rows are stored in the erasure buffer memory, and the remaining 63 rows are stored in a compressed storage having a size of one column. By using this method, we can save one segment per burst when N_ROW is 256 and 4 segments per burst when N_ROW is 1024.

이렇게 절약된 이레이져 버퍼(1310)의 세그먼트들은 현재 버스트에 대한 RS 디코딩을 수행하는 시간 중에 다음 버스트의 섹션에 대한 신뢰성 정보를 저장하는 용도로 사용된다. 절약된 영역이 원래 버스트에 대한 영역의 1/4이므로, 버스트에 대한 RS 디코딩 시간이 버스트 전체 입력 시간의 1/4 이하인 경우 버퍼의 오버플로우 없이 연속 수신을 동작할 수 있다. 본 발명의 도 13에서의 참조번호 1308과 1310은 N_ROW가 1024인 MPE-FEC 프레임을 프레임 버퍼(1308)와 이레이져 버퍼(1310)에 각각 매핑하였을 경우의 실시 예로서, 열 및 행에 따른 세그먼트의 구분을 나타내는 구성도이다. 그리고, 도 16에서 참조번호 1604와 1606은 세그먼트가 실제 프레임 버퍼(1308) 및 이레이져 버퍼(1310) 메모리에 각각 세그먼트 번호 순서대로 배열되는 물리적인 구성도이다.The saved segments of the erasure buffer 1310 are used to store reliability information for the section of the next burst during the time of performing RS decoding on the current burst. Since the saved area is one quarter of the area for the original burst, continuous reception can be operated without overflowing the buffer if the RS decoding time for the burst is less than one quarter of the total input time of the burst. Reference numerals 1308 and 1310 of FIG. 13 of the present invention are an example of a case where an MPE-FEC frame having an N_ROW of 1024 is mapped to a frame buffer 1308 and an erasure buffer 1310, respectively. It is a block diagram which shows the division of. In FIG. 16, reference numerals 1604 and 1606 denote physical configurations in which segments are arranged in the order of segment numbers, respectively, in an actual frame buffer 1308 and erasure buffer 1310.

좀더 상세히 설명하면, 상술한 바와 같이 프레임 버퍼(1308)는 2Mb 크기의 2개의 램(RAM)으로 구성되며, 2Mb 크기의 각 램은 다시 256열 X 24행 크기의 영역으로 구분된다. 따라서 참조번호 1604에 도시된 바와 같이 프레임 버퍼(1308)를 구성하는 2Mb의 램들(1308a, 1308b)은 각각 32개의 세그먼트들 중 16개씩 나누어 할당하게 된다. 즉, 참조번호 1608의 영역은 32개의 세그먼트로 할당된 프레임 버퍼(1604)에서 첫 번째 세그먼트(1600)에 할당되게 된다. 16개의 세그먼트 즉 ,0 ~ 15 세그먼트와 16 ~ 31 세그먼트는 각각 2Mb 크기의 프레임 버퍼(1608)에 저장된 섹션 데이터들이 할당되는 세그먼트들이다. In more detail, as described above, the frame buffer 1308 is composed of two RAMs of 2 Mb, and each RAM of 2 Mb is divided into an area of 256 columns X 24 rows. Accordingly, as shown by reference numeral 1604, the 2Mb RAMs 1308a and 1308b constituting the frame buffer 1308 are allocated to each of 16 segments of 32 segments. That is, the area 1608 is allocated to the first segment 1600 in the frame buffer 1604 allocated to 32 segments. 16 segments, that is, 0 to 15 segments and 16 to 31 segments are segments to which section data stored in a frame buffer 1608 having a size of 2 Mb are allocated.

이레이져 버퍼(1606)에 버퍼링된 신뢰성 정보들 중 프레임 버퍼(1308)에 버퍼링된 섹션 데이터들에 대한 신뢰성 정보가 버퍼링된 참조번호 1310a 영역은 참조번호 1606와 같이 12개의 세그먼트 단위로 할당되게 된다. 그리고 참조번호 1310b의 R-S 데이터에 대한 신뢰성 정보가 마킹된 부분은 참조번호 1604와 1606과 같이 따로 메모리를 할당하지 않고 레지스터 파일(1608)에 저장할 수 있다. Among the reliability information buffered in the erasure buffer 1606, the region 1310a in which the reliability information of the section data buffered in the frame buffer 1308 is buffered is allocated in units of 12 segments as shown by reference numeral 1606. The portions marked with the reliability information on the R-S data of reference number 1310b may be stored in the register file 1608 without allocating a memory like reference numerals 1604 and 1606.

예컨대, 버스트 #1이 제일 처음 수신된 후 버스트 #2가 차례로 수신된다고 가정하기로 하자. 그렇다면, 버스트 #1의 섹션 데이터들의 신뢰성 정보들은 이레이져 버퍼(1606)의 0 ~ 11까지의 세그먼트에 할당되고, 상기 버스트 #1의 R-S 데이터의 신뢰성 정보들은 레지스터 파일(1608)에 저장되게 되고, 버스트 #1에 대해 R-S 디코딩이 수행되게 된다. 이때 현재 DVB-H 수신기는 연속 수신 모드이므로 버스트 #2도 연속해서 수신되게 된다. 따라서 버스트 #2의 섹션 데이터들의 신뢰성 정보들은 이레이져 버퍼(1606)의 12 ~ 15 세그먼트에 할당이 되게 되며, 버스트 #1의 R-S 디코딩이 종료되는 시점에 버스트 #1에 할당된 세그먼트 0 ~ 11이 해제되므로 상기 12 ~ 15 세그먼트 이후에 할당될 버스트 #2의 신뢰성 정보들은 상기 해제된 0 ~ 11 세그먼트에 할당되기 시작하게 된다. 따라서 본 발명의 제 3 실시 예에서는 연속 수신 모드에서도 연속되는 버스트들의 섹션 데이터 및 섹션 데이터들에 대한 신뢰성 정보도 손실되지 않고 버퍼링할 수 있으므로 연속되는 버스트들을 성공적으로 복호하여 사용자에게 제공할 수 있다.For example, assume that burst # 2 is received in sequence after burst # 1 is first received. If so, the reliability information of the section data of burst # 1 is allocated to segments 0 to 11 of erasure buffer 1606, and the reliability information of the RS data of burst # 1 is stored in register file 1608, RS decoding is performed on burst # 1. At this time, since the DVB-H receiver is in a continuous reception mode, burst # 2 is also continuously received. Therefore, reliability information of section data of burst # 2 is allocated to 12 to 15 segments of erasure buffer 1606, and segments 0 to 11 allocated to burst # 1 at the time when RS decoding of burst # 1 ends. Since the information is released, reliability information of burst # 2 to be allocated after the 12 to 15 segments starts to be allocated to the released 0 to 11 segments. Therefore, in the third embodiment of the present invention, even in the continuous reception mode, the section data of the continuous bursts and the reliability information about the section data can be buffered without being lost, so that the successive bursts can be successfully decoded and provided to the user.

도 17은 본 발명의 제3 실시 예에 따른 버퍼링 제어기(1402)의 동작 흐름도이다. 본 발명의 제3 실시 예에서 두 개의 버퍼링 제어기(1402a, 1402b)는 MPE PID 및 섹션 검출기(1300a) 두 개로부터 버스트 정보와 섹션 데이터를 입력받는다. 17 is a flowchart illustrating an operation of a buffering controller 1402 according to a third embodiment of the present invention. In the third embodiment of the present invention, two buffering controllers 1402a and 1402b receive burst information and section data from two MPE PIDs and two section detectors 1300a.

1700단계에서 버퍼링 제어기(1402)는 버스트 또는 섹션이 시작되었는지를 검사한다. 여기서 버스트가 시작되었는지 여부는 타임 슬라이싱 처리기(313)로부터 버스트 시작 신호를 입력여부에 따라 알 수 있으며, MPE PID 및 섹션 검출기(1300a)로부터 섹션이 입력될 경우에는 섹션이 시작된 것으로 판단한다.In step 1700, the buffering controller 1402 checks whether a burst or section has started. Here, whether or not the burst has been started may be determined according to whether or not the burst start signal is input from the time slicing processor 313. When the section is input from the MPE PID and the section detector 1300a, it is determined that the section has started.

상기 1700단계의 검사결과 버스트 또는 섹션이 시작되었다면, 버퍼링 제어기(1402)는 1702단계로 진행하여 섹션 파라미터인 제1 버스트 정보(1450)와 제2 버스트 정보(1454)를 저장한다. 1704단계에서 버퍼링 제어기(1402)는 상기 1702단계에서 저장한 섹션 파라미터의 가로 줄 개수(N_ROW)정보를 세그먼트 할당기(1400)로 전송하고, 그 크기만큼의 프레임 버퍼(1308) 및 이레이져 버퍼(1310)의 영역을 할당받게 된다. 즉 세그먼트 할당기(1400)는 상기 1704단계에서 수신한 N_ROW 값에 해당하는 크기만큼의 프레임 버퍼와 이레이져 버퍼의 영역을 할당하고 해당 영역의 주소 정보를 다시 버퍼링 제어기로 알려준다.If the burst or section has been started in operation 1700, the buffering controller 1402 proceeds to operation 1702 and stores the first burst information 1450 and the second burst information 1454, which are section parameters. In operation 1704, the buffering controller 1402 transmits the horizontal row number (N_ROW) information of the section parameter stored in operation 1702 to the segment allocator 1400, and the frame buffer 1308 and the erasure buffer corresponding to the size thereof. Area 1310). That is, the segment allocator 1400 allocates an area of a frame buffer and an erasure buffer corresponding to the N_ROW value received in step 1704, and informs the buffering controller of address information of the corresponding area.

1708단계에서 버퍼링 제어기(1402)는 상기 세그먼트 할당기(1400)로부터 할당받은 프레임 버퍼(1308) 영역의 주소에다 입력된 섹션 데이터(1466)를 버퍼링하고, 이레이져 버퍼(1310)에는 신뢰성 정보를 마킹한다.In step 1708, the buffering controller 1402 buffers the section data 1466 input to the address of the frame buffer 1308 area allocated from the segment allocator 1400, and marks reliability information in the erasure buffer 1310. do.

1710단계에서 버퍼링 제어기(1402)는 마지막 MPE 섹션이 입력되어 버스트 데이터의 입력이 종료되었는지를 검사한다. 이때 버퍼링 제어기(1402)가 버스트 데이터 입력의 종료를 판정하는 방법에는 세 가지가 있다. 먼저 MPE PID 및 MPE 섹션 검출기(1300a)가 프레임 경계를 검출한 경우와 타임 슬라이싱 처리기(313)가 최대 버스트 기간 초과를 알려주는 경우, 섹션 주소가 감소하는 경우이다.In step 1710, the buffering controller 1402 checks whether the last MPE section is input and the input of burst data is finished. At this time, there are three methods for the buffering controller 1402 to determine the termination of the burst data input. First, when the MPE PID and the MPE section detector 1300a detects a frame boundary, and when the time slicing processor 313 indicates that the maximum burst period is exceeded, the section address decreases.

상기 1710단계의 검사결과 각각의 조건에 의해 한 버스트에 대한 섹션 데이터의 입력이 끝나면, 버퍼링 제어기(1402)는 1716단계에서 섹션 데이터가 저장된 프레임 버퍼(1308)의 마지막 주소를 저장한다. 그리고 1722단계에서 버퍼링 제어기(1402)는 섹션 입력이 시작되었는지를 검사하고, 상기 1722단계의 검사결과 섹션이 시작되었다면, 버퍼링 제어기(1402)는 1724단계로 진행하여 섹션 파라미터를 저장한다. 그리고, 1726단계에서 버퍼링 제어기(1402)는 어드레스에 의해 버스트 경계인지 여부를 검사하고, 상기 1726단계의 검사결과 어드레스에 의한 버스트 경계라면, 버퍼링 제어기(1402)는 1720단계로 진행하여 이전 버스트 정보를 R-S 큐(1404)로 큐잉하고, 어드레스에 의한 버스트 경계가 아니라면, 1728단계로 진행한다. 그리고 1728단계에서 버퍼링 제어기(1402)는 다시 섹션 파라미터를 저장한다. After inputting section data for one burst under each condition as a result of the check in operation 1710, the buffering controller 1402 stores the last address of the frame buffer 1308 in which the section data is stored in step 1716. In operation 1722, the buffering controller 1402 checks whether a section input has been started. If the check result section of operation 1722 is started, the buffering controller 1402 proceeds to operation 1724 and stores a section parameter. In operation 1726, the buffering controller 1402 checks whether or not the burst boundary is determined by the address. If the buffering controller 1402 determines the burst boundary by the address, the buffering controller 1402 proceeds to operation 1720 to determine previous burst information. It queues to the RS queue 1404 and proceeds to step 1728 if it is not a burst boundary by address. In operation 1728, the buffering controller 1402 stores the section parameter again.

1726단계에서 버퍼링 제어기(1402)가 어드레스에 의해 버스트 경계인지를 검사하는 동작은 아래와 같은 이유로 인해 수행된다. In operation 1726, the operation of checking whether the buffering controller 1402 is a burst boundary by an address is performed for the following reasons.

DVB-H 수신기에서 버스트의 마지막 섹션이 오류 등의 이유로 검출되지 않는 경우, 버스트의 종료 신호인 frame_boundary가 발생하지 않는다. 버스트 종료 신호를 알 수 없다면 DVB-H 수신기는 현재 버스트("버스트 k")에 대한 MPE-FEC RS 복호가 진행되지 않은 상태에서 다음 버스트("버스트 k+1")의 내용이 현재 버스트 위에 오버라이트(overwrite)될 것이고, 결국 버스트 k의 값을 잃어버리게 된다. 따라서, 어드레스 증가 여부를 갖고 버스트의 경계를 판단하게 될 수 밖에 없다. 이 판단 여부에 따라 이후의 동작을 결정짓는 것이 1726 단계의 동작이다. 어드레스에 의한 버스트 경계가 검출되는 시점은 이미 버스트 k+1에 대한 첫 번째 섹션이 입력되기 시작하는 시점이다. 따라서, 버퍼링 제어기(1402)는 버스트 k에 대한 정보를 RS 큐(1404)에 넣고(1720단계), 버스트 k+1에 대한 첫 섹션의 파라미터를 저장한 후(1702단계), 버퍼링 동작을 진행하게 된다. 어드레스에 의한 버스트 경계가 아니라면, 여전히 버스트 k에 대한 섹션이 입력되는 것이다. 따라서, 버퍼링 제어기(1402)는 섹션 파라미터를 저장하고(1728단계), 버퍼링 동작을 수행하게 된다.In the DVB-H receiver, when the last section of the burst is not detected due to an error or the like, the end signal of the burst, frame_boundary, does not occur. If the burst end signal is unknown, the DVB-H receiver does not proceed with MPE-FEC RS decoding for the current burst ("burst k") and the contents of the next burst ("burst k + 1") are over the current burst. It will be overwritten and eventually the value of burst k will be lost. Therefore, it is inevitable to determine the boundary of the burst with the address increase. The operation in operation 1726 is to determine the subsequent operation according to the determination. The time when the burst boundary by address is detected is the time when the first section for burst k + 1 starts to be input. Accordingly, the buffering controller 1402 puts information about the burst k into the RS queue 1404 (step 1720), stores the parameters of the first section for the burst k + 1 (step 1702), and proceeds with the buffering operation. do. If it is not a burst boundary by address, then the section for burst k is still input. Accordingly, the buffering controller 1402 stores the section parameters (step 1728) and performs a buffering operation.

그리고 상기 1710단계에서 검사결과 마지막 MPE 섹션이 아니라면, 버퍼링 제어기(1402)는 1712단계로 진행하여 프레임 경계인지 여부를 검사한다. If the result of the check in step 1710 is not the last MPE section, the buffering controller 1402 proceeds to step 1712 and checks whether a frame boundary exists.

상기 1712단계의 검사결과 프레임 경계라면, 버퍼링 제어기(1402)는 1714단계로 진행하여 버스트 정보를 R-S 큐(1404)로 큐잉하고, 프레임 경계가 아니라면, 버퍼링 제어기(1402)는 1718단계로 진행하여 타임 슬라이싱 처리기(313)로부터 버스트 종료 신호가 입력되었는지 검사한다. 상기 1718단계의 검사결과 타임 슬라이싱 처리기(313)로부터 버스트 종료 신호를 입력받으면 버퍼링 제어기(1402)는 1714단계로 진행하여 해당 버스트에 대해 MPE PID 및 MPE 섹션 검출기(1300a)로부터 입력받은 정보와 프레임 버퍼(1308) 및 이레이져 버퍼(1310) 내 영역의 주소 정보를 R-S 큐(1408)에 밀어넣는다. If the result of the check in step 1712 is a frame boundary, the buffering controller 1402 proceeds to step 1714 to queue the burst information to the RS queue 1404, and if not, the buffering controller 1402 proceeds to step 1718 to time. It is checked whether the burst end signal is input from the slicing processor 313. In step 1718, when the burst end signal is received from the time slicing processor 313, the buffering controller 1402 proceeds to step 1714, and the information received from the MPE PID and the MPE section detector 1300a and the frame buffer for the burst. 1308 and address information of the region in erasure buffer 1310 are pushed into RS queue 1408.

도 18은 본 발명의 제3 실시 예에 따른 R-S 복호기 제어기(1406)의 동작 흐름도이다. 1800단계에서 R-S 복호기 제어기(1406)는 R-S 큐(1404)가 비었는지를 검사한다. 상기 1800단계의 검사결과 R-S 큐(1404)가 비어있지 않을 경우 1802단계로 진행하여 R-S 큐(1404)로부터 한 개의 버스트 정보를 꺼내어 버스트 정보에 따라 R-S 디코딩을 수행하게 된다. 18 is a flowchart illustrating an operation of the R-S decoder controller 1406 according to the third embodiment of the present invention. In step 1800, the R-S decoder controller 1406 checks whether the R-S queue 1404 is empty. If the R-S queue 1404 is not empty as a result of the check in step 1800, the process proceeds to step 1802 to extract one burst information from the R-S queue 1404 and perform R-S decoding according to the burst information.

1804단계에서 R-S 복호기 제어기(1406)는 실제적인 디코딩을 수행하기 전에 마지막 행 및 패딩 행 처리를 수행한다. 여기서 마지막 행 처리는 MPE PID 및 MPE 섹션 검출기(1300a)가 마지막 MPE 섹션을 검출했을 때 마지막 MPE 섹션의 끝부분이 위치한 행의 마지막 열에 대한 신뢰성 정보를 "reliable"로 표기하는 것이고, 패딩 행 처리는 MPE 섹션 중 정해진 수 만큼의 패딩 행에 대한 데이터를 "0"으로 신뢰성 정보를 "reliable"로 표기하는 것이다. 패딩 행 수는 MPE-FEC 섹션 검출 시에 알 수 있다.In step 1804, the R-S decoder controller 1406 performs last row and padding row processing before performing actual decoding. Here, the last row processing indicates that the MPE PID and MPE section detector 1300a indicates reliability information on the last column of the row where the end of the last MPE section is located when the last MPE section is detected. In the MPE section, data for a predetermined number of padding rows is expressed as "0" and reliability information is expressed as "reliable". The number of padding rows is known at the time of MPE-FEC section detection.

이러서 1806단계에서 R-S 복호기 제어기(1406)는 열 셋트 단위로 디코딩이 가능한 열을 검색하고, 1808단계에서 모든 열에 대해 디코딩이 종료되었는지를 검사한다.Thus, in step 1806, the R-S decoder controller 1406 searches for a decodable column in a column set unit, and checks whether decoding is completed for all columns in step 1808.

상기 1808단계의 검사결과 모든 열에 대해 디코딩이 종료되지 않았다면, R-S 복호기 제어기(1406)는 1810단계에서 한 열 단위로 R-S 디코딩을 수행하게 된다. 그리고 1812단계에서 R-S 복호기 제어기(1406)는 R-S 디코딩 후에 R-S 디코딩한 열에 대해 오류 정정이 필요한지 여부를 검사한다. 상기 1812단계의 검사결과 R-S 복호기 제어기(1406)는 오류 정정이 필요하다면, 1814단계로 진행하여 오류를 수정하고, 1816단계에서 열 셋트 단위로 신뢰성 정보를 초기화한다. 즉 상기 1810단계 내지 1816단계는 모든 열에 대한 디코딩이 종료될 때까지 반복 수행되게 된다. If the decoding is not completed for all columns as a result of the checking in step 1808, the R-S decoder controller 1406 performs R-S decoding in units of one row in step 1810. In operation 1812, the R-S decoder controller 1406 checks whether error correction is required for the R-S decoded string after the R-S decoding. In step 1812, if the error correction is necessary, the R-S decoder controller 1406 proceeds to step 1814 to correct the error, and in step 1816, the reliability information is initialized in units of ten sets. That is, steps 1810 to 1816 are repeatedly performed until decoding of all columns is completed.

상기 1808단계의 검사결과 해당 버스트의 모든 열에 대한 R-S 디코딩이 종료되었다면, R-S 복호기 제어기(1406)는 1818단계로 진행하여 버스트 정보와 프레임 버퍼(1308)의 주소 정보를 SOUT 큐(1408)로 전송한다. 그리고 R-S 디코딩이 종료된 이후에 신뢰성 정보는 필요하지 않으므로 R-S 복호기 제어기(1406)는 이레이져 버퍼(1310)의 주소 정보는 더 이상 제어기내에서 유지하지 않으며, 이에 따라 세그먼트 할당기(1400)에 이레이져 세그먼트 할당의 해제를 요청한다.If the RS decoding of all the columns of the corresponding burst is completed as a result of the check in step 1808, the RS decoder controller 1406 proceeds to step 1818 and transmits the burst information and the address information of the frame buffer 1308 to the SOUT queue 1408. . Since the reliability information is not needed after the RS decoding is completed, the RS decoder controller 1406 no longer maintains the address information of the erasure buffer 1310 in the controller, and thus the segment allocator 1400 Requests to release the segment segment.

도 19는 본 발명의 제3 실시 예에 따른 시리얼 출력 제어기(1410)의 동작 흐름도이다.19 is a flowchart illustrating the operation of the serial output controller 1410 according to the third embodiment of the present invention.

1900단계에서 시리얼 출력 제어기(1410)는 SOUT 큐(1408)가 비어있는지를 검사한다. 상기 1900단계의 검사결과 SOUT 큐(1408)가 비어있지 않다면, 1902단계로 진행하여 SOUT 큐(1408)로부터 한 개 버스트 정보를 꺼낸다(poping). 1904단계에서 시리얼 출력 제어기(1410)는 시리얼 인터페이스(1704)가 활성화(enable)되었는지를 검사한다. 여기서 시리얼 인터페이스(1704)가 활성화되었다는 의미는 시리얼 인터페이스(1704)를 통해 도시되지 않은 어플리케이션 프로세서로 데이터를 보내는 것으로 설정되었다는 의미와 동일한다.In step 1900, the serial output controller 1410 checks whether the SOUT queue 1408 is empty. In operation 1900, if the SOUT queue 1408 is not empty, the process proceeds to step 1902 to pop out one burst information from the SOUT queue 1408. In step 1904, the serial output controller 1410 checks whether the serial interface 1704 is enabled. Here, the meaning that the serial interface 1704 is activated is the same as the meaning that the serial interface 1704 is set to send data to an application processor (not shown) through the serial interface 1704.

상기 1904의 검사결과 시리얼 인터페이스(1704)가 활성화되었다면, 시리얼 출력 제어기(1410)는 1906단계로 진행하여 SOUT 큐(1408)로부터 꺼낸 버스트 정보를 가지고 패킷 헤더를 생성하여 1908단계에서 상기 생성된 패킷 헤더를 시리얼 인터페이스 블록(704)으로 출력한다.If the serial interface 1704 is activated as a result of the check in step 1904, the serial output controller 1410 proceeds to step 1906 to generate a packet header with the burst information taken out of the SOUT queue 1408 to generate the packet header in step 1908. Is output to the serial interface block 704.

그리고 시리얼 출력 제어기(1410)는 상기 생성된 패킷 헤더를 시리얼 인터페이스 블록(704)으로 전송하고 1910단계에서 프레임 버퍼(1308)로부터 데이터를 읽어 시리얼 인터페이스 블록(704)으로 전송함으로서 패킷 페이로드를 생성한다. The serial output controller 1410 generates the packet payload by transmitting the generated packet header to the serial interface block 704 and reading data from the frame buffer 1308 to the serial interface block 704 in step 1910. .

1912단계에서 시리얼 출력 제어기(1410)는 한 버스트의 출력이 종료되었는지를 검사하고, 한 버스트의 출력이 종료되었다면, 1916단계로 진행하여 한 패킷의 출력이 종료가 되었는지를 검사한다. 상기 1916단계의 검사결과 한 패킷 출력이 종료되지 않았다면, 1918단계로 진행하여 제로 패딩을 추가하여 전송한다. 상기 1912단계 내지 1918단계의 동작을 수행하는 이유는 버스트의 끝부분에서 정해진 패킷의 크기와 전송된 데이터의 크기가 맞지 않는 경우 정해진 패킷의 크기와 맞도록 '0'을 패딩하여 추가로 전송하기 위해서 필요한 동작이다. In step 1912, the serial output controller 1410 checks whether the output of one burst has ended. If the output of one burst has ended, the serial output controller 1410 proceeds to step 1916 to check whether the output of one packet is finished. If the output of one packet is not terminated as a result of the check in step 1916, the process proceeds to step 1918 and transmits by adding zero padding. The reason for performing the operations of steps 1912 to 1918 is that if the size of the packet and the size of the transmitted data do not match at the end of the burst, '0' is padded to match the size of the packet and then additionally transmitted. This is a necessary action.

상기 1912단계와 1914단계를 좀더 상세히 설명하면 아래와 같다.The steps 1912 and 1914 will be described in more detail below.

일반적으로 시리얼 출력 제어기(1410)가 어플리케이션 프로세서로 시리얼 전송 시, 한 버스트의 데이터를 모두 이어서 보내는 것은 매우 위험한 일이 될 수 있다. 어플리케이션 프로세서가 수신한 버스트의 데이터가 전송 동작상의 오류로 인해 한 비트 또는 한 바이트 또는 일정 단위로 밀리는 경우 영원히 복구가 불가능할 수 있다. 따라서, 버스트의 데이터를 일정 간격으로 자르고 버스트에 대한 정보(PID, handover, mpe_fec_en 등)를 헤더로 붙여서 전송하게 되는데 이 때의 전송 단위를 패킷이라 한다. 본 발명과는 무관한 내용이므로 패킷의 포맷 및 길이에 대한 상세한 설명은 기재하지 않기로 한다. 패킷의 길이는 MPE-FEC 프레임 구조에 맞는 적당한 길이를 사용할 수도 있으나, 일정한 길이의 전송 규격을 따르기도 한다. 후자의 경우 버스트의 데이터가 정확히 패킷 단위로 나누어 떨어 지지 않을 수도 있다. In general, when the serial output controller 1410 is serially transmitted to the application processor, it may be very dangerous to send all of the burst data afterwards. If the burst data received by the application processor is pushed by one bit, one byte, or some unit due to an error in the transmission operation, recovery may not be possible forever. Therefore, the burst data is cut at regular intervals, and the burst information (PID, handover, mpe_fec_en, etc.) is transmitted with a header. The transmission unit at this time is called a packet. Since the contents are irrelevant to the present invention, a detailed description of the format and length of the packet will not be described. The length of the packet may be an appropriate length for the MPE-FEC frame structure, but it may also follow a certain length of transmission specification. In the latter case, the data in the burst may not be correctly divided into packets.

이러한 경우에는 1916 단계의 동작을 통해 본 발명의 제3 실시 예에 따른 DVB-H 수신기는 패킷의 길이를 동일하게 유지하도록 버스트의 마지막 패킷에 대해 모자라는 데이터의 길이만큼 "0"을 붙여서 보내는 것이다. 1914 단계를 통해 본 발명의 제3 실시 예에서 DVB-H 수신기는 한 버스트에 대한 데이터의 출력이 계속되고 있는 시점에 일정한 길이의 패킷을 구분하고 매 패킷마다 헤더가 앞에 전송될 수 있도록(1908 단계) 한다.In this case, the DVB-H receiver according to the third embodiment of the present invention attaches " 0 " as much as the length of the missing data to the last packet of the burst to maintain the same packet length through the operation of step 1916. . According to a third embodiment of the present invention, in step 3914, the DVB-H receiver distinguishes packets of a predetermined length at a time point when output of data for a burst is continued (step 1908). ) do.

상기 1912단계의 검사 결과 한 버스트의 출력이 종료 되지 않았다면, 시리얼 출력 제어기(1410)는 1914단계로 진행하여 한 패킷의 출력이 종료되었는지를 검사한다.If the output of one burst is not terminated as a result of the checking of step 1912, the serial output controller 1410 proceeds to step 1914 and checks whether the output of one packet is terminated.

상기 1914단계의 검사결과 한 패킷의 출력이 종료되었다면, 시리얼 출력 제어기(1410)는 1908단계로 진행하고, 한 패킷의 출력이 종료되지 않았다면, 1910단계로 진행한다.If the output of one packet is terminated as a result of the check in step 1914, the serial output controller 1410 proceeds to step 1908.

그리고 1916단계의 검사결과 한 패킷 출력이 종료되었다면, 시리얼 출력 제어기(1410)는 1920단계로 진행하여 세그먼트 할당기(1400)로 세그먼트 할당의 해제를 요청하며, 1922단계와 1924단계와 같이 CPU(708)로 인터럽트를 발생시킬 수 있다.If the output of one packet is terminated in step 1916, the serial output controller 1410 proceeds to step 1920 and requests the segment allocator 1400 to release the segment allocation, and the CPU 708 as shown in steps 1922 and 1924. To generate an interrupt.

도 20은 본 발명의 제3 실시 예에 따른 MPE-FEC 복호화기(315)의 타이밍도이다.20 is a timing diagram of an MPE-FEC decoder 315 according to a third embodiment of the present invention.

프레임 버퍼(1308)와 이레이져 버퍼(1310)는 64 행 단위로 할당되므로 버스트에 대한 섹션 입력이 1/4 만큼 진행된 시점에 새로운 세그먼트 할당을 요구하게 된다. 프레임 버퍼 할당의 해제는 시리얼 인터페이스 출력이 진행되면서 64행 단위로 수행되고, 이레이져 버퍼 할당의 해제는 R-S 디코딩이 종료되는 시점에 수행된다. 상술한 내용을 도 20을 참조하여 상세히 설명하면 아래와 같다.Since the frame buffer 1308 and the erasure buffer 1310 are allocated in units of 64 rows, the new segment allocation is requested when the section input for the burst progresses by 1/4. The release of frame buffer allocation is performed in units of 64 lines as the serial interface output proceeds, and the release of erasure buffer allocation is performed at the end of R-S decoding. The above description will be described in detail with reference to FIG. 20 as follows.

참조번호 2000은 주 제어 유닛(1300b)이 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트 #1 ~ #4를 입력받는 시간을 나타내며, 참조번호 2002는 주 제어 유닛(1300b)이 상기 참조번호 2000에서 입력된 버스트를 프레임 버퍼(1308)에 버퍼링하는 시간을 나타낸다.Reference numeral 2000 denotes a time at which the main control unit 1300b receives the bursts # 1 to # 4 from the MPE PID and the MPE section detector 1300a, and reference numeral 2002 designates the main control unit 1300b to the reference numeral 2000. The time of buffering the input burst in the frame buffer 1308 is shown.

참조번호 2004는 주 제어 유닛(1300b)의 제어에 의해 R-S 복호기(1312)가 상기 참조번호 2002에서 버퍼링된 섹션 데이터들에 대해 R-S 디코딩을 수행하는 시간을 나타낸다. 참조번호 2006은 상기 참조번호 2004에서 R-S 디코딩된 버스트 #1 ~ 버스트 #4들을 시리얼 인터페이스(704)를 통해 출력하는 시간을 나타내며, 참조번호 2008은 상기 참조번호 2000 내지 2006 동작을 수행하기 위해 프레임 버퍼(1308)가 점유되는 시간을 나타낸다. 참조번호 2010은 버스트 #1 ~ 버스트 #4에 대한 신뢰성 정보를 마킹하기 위해 이레이져 버퍼(1310)가 할당되는 시간을 나타낸다.Reference numeral 2004 denotes a time for the R-S decoder 1312 to perform R-S decoding on the section data buffered at 2002 by the control of the main control unit 1300b. Reference numeral 2006 denotes a time for outputting burst # 1 to burst # 4 decoded by reference numeral 2004 through the serial interface 704, and reference numeral 2008 denotes a frame buffer for performing operations 2000 through 2006. 1308 represents the time occupied. Reference numeral 2010 denotes a time when the erasure buffer 1310 is allocated to mark reliability information for the bursts # 1 to # 4.

참조번호 2012는 프레임 버퍼(1308)의 주소 영역을 도시한 것으로 2개의 2Mb로 구분된다. 참조번호 2014는 이레이져 버퍼(1310)의 주소 영역을 도시한 것으로 0.5Mb 크기를 나타낸다.Reference numeral 2012 shows an address area of the frame buffer 1308 and is divided into two 2Mb. Reference numeral 2014 shows an address area of the erasure buffer 1310 and indicates a size of 0.5 Mb.

참조번호 2016, 2018, 2020, 2024는 프레임 버퍼(1308)와 이레이져 버퍼(1310)는 64행 단위로 할당됨으로 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트에 대한 섹션 입력이 1/4 씩 진행될 때마다 새로운 프레임 버퍼(1308)와 이레이져 버퍼(1310)에 새로운 세그먼트가 할당됨을 보여주고 있다.참조번호 2022에서는 버스트 #1의 입력이 종료됨과 동시에 주 제어 유닛(1300b)의 제어에 의해 R-S 복호기(1312)가 상기 버스트 #1에 대해 R-S 디코딩을 수행하는 시점이며, 동시에 버스트 #1에 연속되어 수신된 새로운 버스트 #2가 입력됨과 동시에 프레임 버퍼(1308)에 버스트 #2가 버퍼링되는 시점이기도 하다. 그리고 참조번호 2020 시점에 프레임 버퍼 할당(2008)은 신규로 이루어지는데 반해 이레이져 버퍼 할당(2010)은 없다. 마지막 1/4(63행)이 RS 이레이져 영역에 저장되므로, 버스트의 마지막 1/4에 대한 이레이져 버퍼의 신규 할당은 수행되지 않게 된다.Reference numerals 2016, 2018, 2020, and 2024 indicate that the frame buffer 1308 and the erasure buffer 1310 are allocated in units of 64 rows, so that the section input for the burst from the MPE PID and the MPE section detector 1300a is 1/4 in progress. Each time, a new segment is allocated to a new frame buffer 1308 and an erasure buffer 1310. In reference numeral 2022, the input of burst # 1 is terminated and the RS decoder is controlled by the main control unit 1300b. 1313 is a time point when RS decoding is performed on the burst # 1, and at the same time, a new burst # 2 received in succession to the burst # 1 is input, and a time point when the burst # 2 is buffered in the frame buffer 1308. . The frame buffer allocation 2008 is new at the time 2020, but there is no erasure buffer allocation 2010. Since the last quarter (row 63) is stored in the RS erasure area, no new allocation of the erasure buffer for the last quarter of the burst is performed.

참조번호 2024에서는 상기 버스트 #1에 대한 R-S 디코딩이 종료된 후 시리얼 인터페이스(704)를 통해 버스트 #1의 데이터가 출력되는 시점이며, 이와 동시에 버스트 #1에 대한 이레어져 버퍼(1310)의 할당은 해제된다. 또한 참조번호 2026과 같이 버스트 #1이 시리얼 I/F(704)를 통해 모두 출력될 때 까지는 프레임 버퍼(1308)에 버스트 #1이 할당되어있음을 볼 수 있다. 따라서 버스트 #1이 시리얼 I/F(704)로 모두 출력된 후에는 버스트 #1이 프레임 버퍼(1308)에서 할당 해제되며, 참조번호 2028에서와 같이 새로운 버스트 #3이 입력됨과 동시에 프레임 버퍼(1308)에 버스트 #1이 버퍼링되어 있던 영역에 버스트 #3이 버퍼링되게 된다. Reference numeral 2024 denotes a time point at which burst # 1 data is output through the serial interface 704 after RS decoding of the burst # 1 is completed, and at the same time, the allocation of the buffer 1310 to the burst # 1 is performed. Is released. Also, as shown by reference numeral 2026, burst # 1 is allocated to the frame buffer 1308 until burst # 1 is output through the serial I / F 704. Therefore, after burst # 1 is all output to serial I / F 704, burst # 1 is deallocated from frame buffer 1308, and as new burst # 3 is inputted, as shown at 2028, the frame buffer 1308 ), Burst # 3 is buffered in the area where burst # 1 was buffered.

참조번호 2030은 버스트 #2에 대한 R-S 디코딩이 완료된 시점으로서 이와 함께 이레이져 버퍼(1310)에서 버스트 #2에 대한 할당도 함께 해제된다. 참조번호 2032는 프레임 버퍼(1308)에 버퍼링되어 있던 버스트 #2가 시리얼 I/F(704)를 통해모두 출력된 시점으로 프레임 버퍼(108)에서 버스트 #2에 대한 영역이 할당 해제되는 시점이기도 하다. Reference numeral 2030 denotes a time point at which the R-S decoding for the burst # 2 is completed, and at the same time, the allocation of the burst # 2 in the erasure buffer 1310 is also released. Reference numeral 2032 denotes a time point at which burst # 2 buffered in the frame buffer 1308 is output through the serial I / F 704, and is also a time point in which the region for burst # 2 in the frame buffer 108 is deallocated. .

도 20과 같이 본 발명의 제3 실시 예에 따른 MPE-FEC 복호화기(315)는 버퍼 메모리를 효율적으로 할당/해제함으로써 N_ROW가 변하는 경우에도 연속 수신 모드로 동작할 수 있다.As shown in FIG. 20, the MPE-FEC decoder 315 according to the third embodiment of the present invention can operate in the continuous reception mode even when the N_ROW changes by efficiently allocating / releasing the buffer memory.

도 21은 본 발명의 제3 실시 예에 따른 주 제어 유닛(1300b)의 동작 흐름도이다. 21 is an operation flowchart of the main control unit 1300b according to the third embodiment of the present invention.

2100단계에서 주 제어 유닛(1300b)은 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트의 섹션 데이터들을 입력받는지 검사한다. 상기 2100단계의 검사결과 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트의 섹션 데이터를 입력받았다면, 주 제어 유닛(1300b)은 2102단계로 진행하여 입력된 버스트의 섹션 데이터들에 대해 프레임 버퍼(130) 세그먼트와 이레이져 버퍼(1310) 세그먼트를 할당한다.In operation 2100, the main control unit 1300b checks whether burst data from the MPE PID and the MPE section detector 1300a is received. If the test result of step 2100 receives the section data of the burst from the MPE PID and the MPE section detector 1300a, the main control unit 1300b proceeds to step 2102, and the frame buffer 130 for the section data of the burst is input. ) Segments and erasure buffer 1310 segments.

2104단계에서 주 제어 유닛(1300b)은 상기 2102단계에서 할당된 프레임 버퍼(1308) 세그먼트와 이레이져 버퍼(1310) 세그먼트에 따라 입력된 버스트를 버퍼링한다. 그리고, 2106단계로 진행하여 버퍼링된 버스트에 대해 R-S 복호를 수행한다. R-S 복호가 완료된 후 2108단계에서 주 제어 유닛(1300b)은 상기 R-S 복호가 완료된 버스트에 할당된 이레이져 버퍼(1310) 세그먼트 할당을 해제하고, 2110단계에서 상기 R-S 복호된 버스트를 시리얼 I/F(704)로 출력한다.In operation 2104, the main control unit 1300b buffers the input burst according to the frame buffer 1308 segment and the erasure buffer 1310 segment allocated in operation 2102. In operation 2106, the R-S decoding is performed on the buffered burst. After RS decoding is completed, in step 2108, the main control unit 1300b releases the allocation of the erasure buffer 1310 allocated to the burst in which the RS decoding is completed, and in step 2110, the RS decoded burst is assigned to the serial I / F ( 704).

상기 2110단계에서 시리얼 I/F(704)로 상기 R-S 복호된 버스트를 출력한 후에 주 제어 유닛(1300b)은 2112단계에서 상기 시리얼 I/F(704)로 출력된 버스트에 할당된 프레임 버퍼(1308) 세그먼트 할당을 해제한다.After outputting the RS decoded burst to the serial I / F 704 in step 2110, the main control unit 1300b assigns the frame buffer 1308 allocated to the burst output to the serial I / F 704 in step 2112. ) Deallocate the segment.

DVB-H 시스템의 수신기가 물리 계층을 통해 수신된 TS 패킷으로부터 IP 데이터그램을 복호하기 위해서는 TS 패킷으로부터 섹션 데이터를 검출해야 한다. 그리고 각 섹션의 페이로드들은 MPE-FEC 프레임으로 재구성되어야 하고 R-S 복호화 과정이 수행되면 IP 데이터 그램으로 복원될 수 있다. 상술한 바와 같이 본 발명의 제3 실시 예에 따른 DVB-H 수신기는 시간적으로 연속된 두 개의 버스트에 대한 처리를 이어서 수행할 수 있도록 하였다. DVB-H 수신기가 연속된 두 개의 버스트를 복호함으로써 DVB-H 수신기에서는 PIP 기능 및 병렬 서비스를 지원할 수 있도록 하며, 버스트를 연속적으로 저장함으로써 채널 전환 시간을 최소화 할 수 있도록 할 수 있다.In order for the receiver of the DVB-H system to decode the IP datagram from the TS packet received through the physical layer, it is necessary to detect section data from the TS packet. The payloads of each section must be reconstructed into MPE-FEC frames and can be restored to an IP datagram when the R-S decoding process is performed. As described above, the DVB-H receiver according to the third embodiment of the present invention can perform the processing on two consecutive bursts in time. The DVB-H receiver decodes two consecutive bursts, enabling the DVB-H receiver to support PIP functions and parallel services, and minimize the channel switching time by storing bursts consecutively.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구의 범위뿐만 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the appended claims, but also by the equivalents of the claims.

이상 설명한 바와 같이 본 발명에 의하면, DVB-H 시스템의 수신기에서 연속된 버스트를 수신하여 복호함으로써 채널 전환 시 시간 지연을 방지할 수 있으며 PIP 기능도 제공할 수 있다. As described above, according to the present invention, a continuous burst is received and decoded by a receiver of a DVB-H system, thereby preventing time delay during channel switching and providing a PIP function.

Claims (10)

디지털 방송 시스템의 수신기에서 다중 프로토콜 캡슐화 순방향 오류 정정(MPE-FEC) 프레임을 복호하기 위한 방법에 있어서,A method for decoding a multi-protocol encapsulated forward error correction (MPE-FEC) frame at a receiver of a digital broadcasting system, 무선 망으로부터 수신된 버스트에 대해 프레임 버퍼와 이레이져 버퍼에 미리 정해진 영역을 할당하여 버퍼링하는 과정과,Assigning and buffering a predetermined area to the frame buffer and the erasure buffer for the burst received from the wireless network; 상기 프레임 버퍼에 상기 버스트의 버퍼링이 완료되면 상기 버스트에 대해 리드-솔로몬 복호를 수행하는 과정과,Performing Reed-Solomon decoding on the burst when buffering of the burst is completed in the frame buffer; 상기 리드-솔로몬 복호 수행 후에 상기 버스트에 대해 할당된 상기 이레이져 버퍼의 영역을 해제하는 과정과,Releasing the region of the erasure buffer allocated for the burst after the Reed-Solomon decoding; 상기 버스트에 대한 이레이져 버퍼의 영역의 할당이 해제된 후 상기 프레임 버퍼에 버퍼링된 버스트를 인터페이스를 통해 출력하는 과정과,Outputting the burst buffered to the frame buffer through an interface after the allocation of the area of the erasure buffer to the burst is released; 상기 인터페이스를 통해 상기 버스트의 출력이 완료된 후 상기 버스트에 대해 할당된 상기 프레임 버퍼의 영역을 해제하는 과정을 포함함을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 방법.And releasing the area of the frame buffer allocated for the burst after the output of the burst is completed through the interface. 제1 항에 있어서,According to claim 1, 상기 무선 망으로부터 버스트가 수신될 때 프레임 버퍼와 이레이져 버퍼의 미리 정해진 영역을 할당하는 과정은,Allocating a predetermined area of a frame buffer and an erasure buffer when a burst is received from the wireless network, 상기 수신된 버스트의 크기 정보를 근거로 상기 프레임 버퍼에 버퍼링하기 위한 세그먼트를 할당받는 과정과,Receiving a segment for buffering the frame buffer based on the received burst size information; 상기 할당받은 세그먼트에 따라 상기 프레임 버퍼에 상기 버스트를 버퍼링하는 과정과,Buffering the burst in the frame buffer according to the allocated segment; 상기 버스트의 신뢰성 정보를 상기 이레이져 버퍼에 마킹하기 위해 상기 수신된 버스트의 신뢰성 정보를 마킹하기 위한 이레이져 버퍼 세그먼트를 할당받는 과정과,Allocating an erasure buffer segment for marking reliability information of the received burst to mark reliability information of the burst in the erasure buffer; 상기 할당된 이레이져 버퍼 세그먼트에 따라 상기 버스트의 신뢰성 정보를 상기 이레이져 버퍼에 마킹하는 과정을 포함함을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 방법.And marking reliability information of the burst in the erasure buffer according to the allocated erasure buffer segment. 제2 항에 있어서,The method of claim 2, 상기 프레임 버퍼는 한 버스트에 포함된 섹션 데이터들을 버퍼링할 수 있는 최대 크기의 두 배의 크기를 가짐을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 방법.The frame buffer has a size of twice the maximum size that can buffer the section data contained in one burst broadcast data receiving method in a digital video broadcasting system. 제1 항에 있어서,According to claim 1, 상기 프레임 버퍼에 상기 버스트의 버퍼링이 완료되면 상기 버스트에 대해 리드-솔로몬 복호를 수행하는 과정은,When buffering of the burst is completed in the frame buffer, a process of performing Reed-Solomon decoding on the burst may be performed. 상기 버퍼링된 버스트에서 열 셋트 단위로 디코딩할 열을 검색하는 과정과,Searching for a column to be decoded in units of a column set from the buffered burst; 상기 디코딩할 열 검색 후에 한 열 단위로 리드-솔로몬 복호를 수행하여 오류를 정정하는 과정과,Correcting an error by performing Reed-Solomon decoding on a column-by-column basis after searching for the column to be decoded; 상기 오류 정정 이후 상기 버스트에 대해 열 셋트 단위로 신뢰성 정보를 초기화하는 과정을 포함함을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 방법.And initializing the reliability information for each burst in the column set unit after the error correction. 디지털 방송 시스템의 수신기에서 다중 프로토콜 캡슐화 순방향 오류 정정(MPE-FEC) 프레임을 복호하기 위한 장치에 있어서,An apparatus for decoding a multi-protocol encapsulated forward error correction (MPE-FEC) frame in a receiver of a digital broadcasting system, 무선 망으로부터 수신된 버스트의 섹션 데이터를 버퍼링하는 프레임 버퍼와,A frame buffer for buffering section data of the burst received from the wireless network; 상기 수신된 버스트의 신뢰성 정보를 버퍼링하는 이레이져 버퍼와,An erasure buffer for buffering reliability information of the received burst; 상기 프레임 버퍼에 상기 버스트의 버퍼링이 완료되면 상기 버스트에 대해 리드-솔로몬 복호를 수행하는 리드-솔로몬 복호기와,A Reed-Solomon decoder which performs Reed-Solomon decoding on the burst when buffering of the burst is completed in the frame buffer; 상기 프레임 버퍼에 미리 정해진 영역을 할당하여 상기 수신된 버스트를 버퍼링하게 제어하고, 상기 이레이져 버퍼에 미리 정해진 영역을 할당하여 상기 버스트의 신뢰성 정보를 버퍼링하게 제어하고, 상기 리드-솔로몬 복호가 완료된 후에 상기 버스트에 대해 할당된 상기 이레이져 버퍼의 영역을 해제하고, 상기 버스트에 대한 이레이져 버퍼의 영역의 할당이 해제된 후 상기 프레임 버퍼에 버퍼링된 버스 트를 인터페이스를 통해 출력하고, 상기 인터페이스를 통해 상기 버스트의 출력이 완료된 후 상기 버스트에 대해 할당된 상기 프레임 버퍼의 영역을 해제하는 주 제어 유닛을 포함함을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 장치.Allocate a predetermined area to the frame buffer to control the received burst, and allocate a predetermined area to the erasure buffer to buffer the reliability information of the burst, and after the Reed-Solomon decoding is completed Releases an area of the erasure buffer allocated for the burst, outputs a burst buffered to the frame buffer through an interface after the area of the erasure buffer is released for the burst, and And a main control unit releasing an area of the frame buffer allocated for the burst after outputting of the burst. 제5 항에 있어서,The method of claim 5, 상기 주 제어 유닛이 상기 프레임 버퍼에 액세스할 때 액세스할 시간을 할당하여 주는 제1 중재기와,A first arbiter for allocating time for access when the main control unit accesses the frame buffer; 상기 주 제어 유닛이 상기 이레이져 버퍼에 액세스할 때 액세스할 시간을 할당하여 주는 제2 중재기를 더 포함함을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 장치.And a second arbiter for allocating time to be accessed when the main control unit accesses the erasure buffer. 제5 항에 있어서,The method of claim 5, 상기 주 제어 유닛은,The main control unit, 상기 프레임 버퍼에 상기 수신된 버스트의 섹션 데이터를 버퍼링하고, 상기 이레이져 버퍼에 상기 수신된 버스트의 신뢰성 정보를 버퍼링하는 버퍼링 제어기와,A buffering controller for buffering section data of the received burst in the frame buffer and buffering reliability information of the received burst in the erasure buffer; 상기 버퍼링 제어기에 의해 상기 프레임 버퍼에 상기 버스트의 버퍼링이 완 료되었다면, 상기 버스트에 대해 리드-솔로몬 복호를 수행하게 제어하는 리드-솔로몬 복호기 제어기와,A reed-solomon decoder controller which controls to perform Reed-Solomon decoding on the burst if the buffering is completed by the buffering controller in the frame buffer; 상기 리드-솔로몬 복호가 완료되었다면, 상기 프레임 버퍼에 버퍼링된 버스트를 시리얼 인터페이스를 통해 출력하는 시리얼 출력 제어기와,A serial output controller for outputting a burst buffered in the frame buffer through a serial interface when the Reed-Solomon decoding is completed; 상기 버퍼링 제어기의 요청에 의해 상기 프레임 버퍼에 상기 버스트를 버퍼링하기 위한 일정 영역과 상기 이레이져 버퍼에 상기 버스트의 신뢰성 정보를 버퍼링하기 위한 일정 영역을 할당하는 세그먼트 할당기를 포함함을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 장치.And a segment allocator for allocating a predetermined area for buffering the burst in the frame buffer and a predetermined area for buffering reliability information of the burst in the erasure buffer at the request of the buffering controller. Broadcast data receiving apparatus in a broadcasting system. 제7 항에 있어서,The method of claim 7, wherein 상기 버퍼링 제어기는,The buffering controller, 상기 수신된 버스트의 크기 정보를 수신 받아 상기 프레임 버퍼에 상기 버스트를 버퍼링하기 위해 상기 세그먼트 할당기로부터 상기 프레임 버퍼의 세그먼트를 할당받아 상기 할당받은 세그먼트에 따라 상기 프레임 버퍼에 상기 버스트의 섹션 데이터를 버퍼링하고, 상기 버스트의 신뢰성 정보를 버퍼링하기 위해 상기 세그먼트 할당기로부터 상기 이레이져 버퍼의 세그먼트를 할당받아 상기 할당받은 세그먼트에 따라 상기 이레이져 버퍼에 상기 신뢰성 정보를 버퍼링함을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 장치.Receives the size information of the received burst and allocates a segment of the frame buffer from the segment allocator to buffer the burst in the frame buffer and buffers the section data of the burst in the frame buffer according to the allocated segment. And allocating segments of the erasure buffer from the segment allocator to buffer the reliability information of the burst and buffering the reliability information in the eraser buffer according to the allocated segment. Broadcast data reception device. 제8 항에 있어서,The method of claim 8, 상기 프레임 버퍼는,The frame buffer, 한 버스트에 포함된 섹션 데이터를 버퍼링할 수 있는 최대 크기의 두 배 크기를 가짐을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 장치.Broadcast data receiving apparatus in a digital video broadcasting system, characterized in that it has a size twice the maximum size that can buffer the section data contained in one burst. 제5 항에 있어서,The method of claim 5, 상기 리드-솔로몬 복호기는,The Reed-Solomon decoder, 상기 프레임 버퍼에 버퍼링된 버스트에서 열 셋트 단위로 디코딩할 열을 검색하고, 상기 검색 후에 한 열 단위로 리드-솔로몬 복호를 수행하여 오류를 정정하고, 상기 오류 정정 이후에 상기 버스트에 대해 열 셋트 단위로 신뢰성 정보를 초기화함을 특징으로 하는 디지털 비디오 방송 시스템에서 방송 데이터 수신 장치.Search for a column to decode in a column set unit in the burst buffered in the frame buffer, correct the error by performing Reed-Solomon decoding on a column basis after the search, and correct the error in the column set unit for the burst after the error correction. Broadcast data receiving apparatus in a digital video broadcasting system, characterized in that for initializing the reliability information.
KR1020060068638A 2006-07-21 2006-07-21 Method and apparatus for receiving a broadcasting data in a dvb-h system KR20080008849A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060068638A KR20080008849A (en) 2006-07-21 2006-07-21 Method and apparatus for receiving a broadcasting data in a dvb-h system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060068638A KR20080008849A (en) 2006-07-21 2006-07-21 Method and apparatus for receiving a broadcasting data in a dvb-h system

Publications (1)

Publication Number Publication Date
KR20080008849A true KR20080008849A (en) 2008-01-24

Family

ID=39221594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060068638A KR20080008849A (en) 2006-07-21 2006-07-21 Method and apparatus for receiving a broadcasting data in a dvb-h system

Country Status (1)

Country Link
KR (1) KR20080008849A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356228B2 (en) 2007-10-05 2013-01-15 Samsung Electronics Co., Ltd Apparatus and method for reducing power consumption in a mobile communication system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356228B2 (en) 2007-10-05 2013-01-15 Samsung Electronics Co., Ltd Apparatus and method for reducing power consumption in a mobile communication system

Similar Documents

Publication Publication Date Title
KR100735276B1 (en) Method and apparatus for decoding a mpe-fec frame in a dvb-h system
KR100724891B1 (en) Device and method of multi-cyclic redundancy checking for acquiring section detection and reliability information in dvb-h system
KR100856525B1 (en) System and method for data transmission and reception
US8290059B2 (en) Method and apparatus for preserving deinterleaving erasure information of block interleaved coded signal
US20080282310A1 (en) Ip Datagram De-Encapsulation
US20070240027A1 (en) Forward Error Correction Decoders
WO2007140065A2 (en) Robust transmission system and method for mobile television applications
US7451378B2 (en) Method and apparatus for memory optimization in MPE-FEC system
KR101381476B1 (en) Method and apparatus for receiving a broadcasting service information in digital broadcasting system
KR20080084148A (en) Method and apparatus for decoding data in a receiver of digital broadcasting system
US7877663B2 (en) Forward error correction decoders
WO2007013026A2 (en) Apparatus and method for ip datagram and rs-parity encapsulation and de-encapsulation
KR100724890B1 (en) Frame boundary detection method and apparatus for reed-solomon decoding in a dvb-h receiver and method for decoding multi protocol encapsulation -forward error correction frame using the same
KR20070081907A (en) Method and apparatus for decoding a mpe-fec frame in a dvb-h system
KR20080008849A (en) Method and apparatus for receiving a broadcasting data in a dvb-h system
US7856587B2 (en) Memory reduction in DVB-H applications
WO2007082310A2 (en) Method and apparatus for memory optimization in mpe-fec system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application