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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/643—Communication protocols
- H04N21/64315—DVB-H
Abstract
Description
도 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,
상기 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
이하에서는 도 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-
도 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
한편 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
그리고 도 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-
그리고 타임 슬라이싱 처리기(313)는 미리 정해진 버스트 구간 마다 MPE-FEC 프레임이 포함된 TS 패킷을 수신하도록 전체 수신기 블록(300)들을 스위칭하는 동작을 반복한다. 여기서 상기 버스트 구간은 각 MPE 섹션과 MPE-FEC 섹션의 헤더에 포함되어 다음 버스트 구간의 시작 시간을 지시하는 델타(Delta) t 정보를 수신하여 확인할 수 있다.The
도 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-
도 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
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
이후 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
그리고 415 단계에서 MPE-FEC 복호화기(315)는 오류가 정정된 IP 데이터그램을 상위 계층으로 출력하고, IP 데이터그램은 사용자의 단말을 통해 방송 데이터로 표시된다.In
도 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-
도 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
도 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
상기 제어기(550)는 TS 패킷이 수신된 경우 먼저 방송 서비스 정보(PSI/SI) 정보를 분석하여 MPE-FEC의 적용 여부를 확인한 후, 이후 수신되는 TS 패킷으로부터 헤더 정보를 제거한 MPE 섹션 또는 MPE-FEC 섹션을 상기 순환 버퍼(511)에 저장하여 CRC를 수행한다.When the
상기 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
상기 제어기(550)는 상기 이레이져 버퍼(515)의 모든 영역에 신뢰성 정보가 마킹된 경우(즉, MPE-FEC 프레임의 모든 IP 데이터그램이 정상 수신된 경우) 상기 RS 복호 동작을 생략한다. The
또한, 도시되지 않은 타임 슬라이싱 처리기(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
또한, 제어기(550)는 방송 서비스 정보에 포함된 최대 버스트 구간 정보(max_burst_duration)에 포함된 최대 버스트 구간을 상기 버스트 구간 타이 머(570)가 계수하였는지 여부를 주기적으로 측정함으로써, 버스트 구간이 종료되었는지를 알 수 있다. In addition, the
따라서, 제어기(550)는 상기 값을 근거로 RS 복호를 위해 RS 복호기를 제어할 시점이나, 수신된 IP 데이터그램을 상위 계층으로 전송하게 된다. Accordingly, the
여기서, 최대 버스트 구간 정보는 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)는 타임 슬라이싱 처리기(313)에 구비되어 있으며, DVB-H 시스템의 송신단에서 MPE-FEC 프레임을 송신하는 버스트 구간 동안만 동작하는 타이머이다. 즉, 상술한 바와 같이 버스트 구간 타이머(570)는 타임 슬라이싱 처리기(313)의 제어기의 제어에 의해 송신단에서 전송한 MPE-FEC 프레임의 수신이 시작됨과 동시에 버스트 구간을 계수(計數)(count)하며, 버스트 구간의 종료 시점을 MPE-FEC 복호화기(315)의 제어기(550)으로 알려줄 수도 있으며, 제어기(550)가 상기 버스트 구간 타이머(570)의 계수가 종료된 시점을 검사함으로써, 버스트 구간의 종료 시점을 알 수 있다. The
상기 버스트 구간 타이머(570)가 미리 정해진 시간을 계수하면, 제어기(550)는 이를 근거로 RS 복호할 시점, 또는 수신된 IP 데이터그램을 상위 계층으로 전송할 시점을 알 수 있다.When the
만일, 마지막 섹션이 제대로 수신되어 프레임 경계값 필드가 "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
도 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
606단계에서 제어기(550)는 상기 604단계의 방송 서비스 정보(PSI/SI) 분석 결과를 이용하여 MPE-FEC가 적용되는 것으로 확인된 경우 TS 패킷으로부터 4 바이트 헤더 부분을 제거하고 184 바이트 페이로드 부분을 도 5의 순환 버퍼(511)에 바 이트 단위로 순차적으로 저장한다. 상기 순환 버퍼링(Circular buffering)의 목적은 현재 수신된 MPE 섹션 또는 MPE-FEC 섹션에 대해 CRC를 수행하고 IP 데이터그램 또는 패리티 데이터로 구성된 섹션의 페이로드가 프레임 버퍼(513)로 전달될 때까지 수신되는 데이터를 저장하는 것이다. 순환 버퍼(511)의 마지막 주소가 데이터로 채워지면 다음 저장 위치는 0번 주소가 된다.In
또한 상기 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
하기 <표 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.
상기 제어기(550)는 상기와 같은 CRC 검사를 수행하도록 적어도 하나의 CRC 검사기(도시되지 않음)를 구비한다. 상기 제어기(550)는 바람직하게 CRC 검사가 'GOOD'이 나올 때까지 테이블 아이디(table_id)의 검출 시마다 새로운 CRC 검사기를 할당하여 다중의 CRC 검사를 수행할 수 있다. 제어기(550)는 상기 606 단계에서 검출된 섹션 데이터의 헤더 정보를 추출한 후, CRC 'GOOD'을 발생시킨 CRC 검사기의 CRC 검사 구간과, 상기 <표 1>의 헤더 정보 중 섹션 길이(section_length)를 비교하여 섹션 길이와 CRC 검사 구간이 일치되는 경우 정상적으로 수신된 섹션임을 최종 확인하며, 이 동작은 섹션 검출을 보다 정확히 수행하기 위한 것으로 선택적으로 수행하는 것이 가능하다.The
상기 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
반면, 608단계에서 제어기(550)는 섹션의 헤더 정보로부터 상기 <표 1>의 테이블 아이디(table_id)를 조회하여 606단계에서 검출된 섹션이 MPE-FEC 섹션에 해당되는 경우 610단계로 진행하여 MPE-FEC 섹션의 헤더 정보로부터 패딩 컬럼수 정보(padding_columns)를 조회하여 방송 데이터 테이블 영역에 데이터 대신 '0'이 채워질 부분을 확인한다. 즉 MPE-FEC 프레임의 두 영역 중에서 방송 데이터 테이블 영역은 송신측에서 IP 데이터그램들로 모두 채워지지 않은 채 전송될 수 있다. 이러한 경우 채워지지 않은 방송 데이터 테이블 영역은 '0' 바이트로 대신 채워서(이하, "제로 패딩") RS 부호화되고, 실제 전송은 이루어지지 않는다.On the other hand, in
따라서 수신측에서 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
패딩 컬럼 처리(610)단계에서는 제어기(550)는 두 가지 경우로 구분되어 수행된다. 첫 번째는 송신측에서 전송한 마지막 MPE 섹션의 IP 데이터그램이 제대로 수신된 경우이고, 두 번째는 상기 마지막 MPE 섹션의 IP 데이터그램이 제대로 수신되지 않은 경우이다.In the
상기 첫 번째 경우 제어기(550)는 마지막 MPE 섹션 이후부터 방송 데이터 테이블 영역의 나머지 영역을 제로 패딩하고, 대응되는 이레이져 버퍼(515)의 위치에 신뢰성 정보를 마킹한다. 반면 상기 두 번째 경우는 마지막 MPE 섹션이 제대로 수신되지 않아 제로 패딩을 정확히 어느 바이트부터 시작해야 하는지 알 수 없는 경우이므로 제어기(50)는 신뢰되지 못한 부분을 제외하고, 패딩 컬럼수 정보(padding_columns)가 지시하는 패딩 컬럼수에 해당하는 바이트들만을 제로 패딩하고, 제로 패딩된 부분을 신뢰성 정보로 마킹한다.In the first case, the
한편 상기 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
상기 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
그리고, 상기 620단계에서 제어기(550)는 버스트 구간 타이머(570)가 미리 정해진 시간을 계수하였음을 검사하면, 622단계에서는 제어기(550)는 RS 복호기(530)을 통해 수신된 MPE 섹션을 R-S 복호한 후, 624단계로 진행하여 IP 데이터그램을 상위 계층으로 전송한다.If the
반면, 상기 620단계의 검사 결과 상기 버스트 구간 타이머(570)가 미리 정해진 시간을 계수하지 않았다면, 제어기(550)는 626단계로 진행하여 MPE 섹션의 끝이 TS 패킷의 끝과 일치되는지 확인한다. 상기 626단계의 확인 결과 MPE 섹션의 끝이 TS 패킷의 끝과 일치하는 경우 제어기(550)는 상기 600단계로 진행하여 다음 TS 패킷을 수신하고, 일치하지 않는 경우는 상기 606 단계로 진행하여 현재 수신된 TS 패킷으로부터 다음 MPE 섹션 또는 MPE-FEC 섹션을 검출한다.On the other hand, if the
상술한 바와 같은 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
또한, 도 6에서 제어기(550)는 MPE-FEC 섹션을 수신한 경우, 매번 해당 섹션에 대한 프레임 버퍼링과 신뢰성 정보 마킹 수행 이전에 패딩 컬럼 처리를 수행한다. 패딩 컬럼 처리는 앞에서 언급한 바와 같이 패딩 컬럼에 대하여 "0"값을 프레임 버퍼링하고 신뢰성 정보를 마킹하는 것이다. 이러한 동작은 패딩 컬럼의 수에 따라 상당한 시간을 소요할 수 있다. 현재 MPE-FEC 섹션을 검출한 후에도 지속적으로 TS 패킷이 MPE-FEC 복호화기(315)로 입력되므로 상술한 도 3내지 도 6에 따른 본 발명의 제1 실시 예에 따른 DVB-H 수신기는 패킷 데이터를 처리하는 문제를 발생시키게 된다.In addition, in FIG. 6, when the
또한, 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
마지막으로 프레임 버퍼(513) 전체에 대해여 R-S 복호가 수행된 후에 IP 데이터그램을 출력해야 하나, 상술한 제1 실시 예에 따른 DVB-H 수신기에서는 어떠한 방법으로 IP 데이터그램을 출력하는지에 대한 기술이 없었다.Finally, the IP datagram should be output after RS decoding is performed on the
따라서, 이하 본 발명의 제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-
본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)의 제어기(550)는 MPE PID 및 MPE 섹션 검출기(550a)와 프레임/이레이져(Frame/Erasure) 버퍼 및 RS 복호기 제어기(550b)로 구성된다.The
MPE PID 및 MPE 섹션 검출기(550a)는 순환 버퍼(511)를 제어하며, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 프레임 버퍼(513)와 이레이져 버퍼(515), 그리고 RS 복호기(530)를 제어한다. The MPE PID and
기본적으로 본 발명의 제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-
제2 실시 예에 따라 추가된 로컬 동기 시리얼 포트(702)는 IP 데이터그램을 serial 형태로 직접 어플리케이션 프로세서(도시되지 않음)으로 출력하고, 버스 인터페이스 제어기(710)는 IP 데이터그램을 APB(Advanced Peripheral Bus) 또는 AHB(Advanced High-performance Bus) 와 같은 버스(Bus)(706)를 통해 DVB-H 수신기 내의 프로세서(708)로 출력한다.The local synchronous
본 발명의 제2 실시 예에 따른 DVB-H 수신기 내의 프로세서(708)로 IP 데이터그램을 출력하는 경우, 프레임/ 이레이져 버퍼 및 RS 복호기 제어기(550b)는 프로세서(708)가 한 버스트에 대한 MPE-FEC 프레임 복호의 종료 시점을 알 수 있도록 하기 위해 프로세서(708)로 인터럽트 신호를 발생한다.When outputting an IP datagram to a
제2 실시 예에서 이레이져 버퍼(513)의 비신뢰성 정보(unreliable) 마킹 동작은 버퍼 초기화를 통해 수행된다. 즉, MPE PID 및 MPE 섹션 검출기(55a)로부터 검출된 섹션이 입력되면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 이레이져 버퍼(513)의 해당 위치에 신뢰성 정보(reliable)가 마킹되기 이전에, 해당 주소를 비신뢰성(unreliable)으로 초기화되어 있도록 한다.In the second embodiment, the unreliable marking operation of the
초기화 동작은 프레임/이레이져 버퍼 및 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
따라서, 버스트 내 모든 데이터에 수신 오류가 없다고 해도 섹션 데이터는 버스트 내에서 연속적으로 출력되지 않으므로 섹션 입력에 대한 아이들 시간(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
이레이져 버퍼(515)의 초기화 동작 개시 시점은 버스트의 첫 TS 패킷이 입력되는 시점으로 한다. 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 버스트 시작 신호에 의해 한 버스트에 대한 프레임 버퍼링 및 R-S 복호 동작을 개시한다.The initialization operation start time of the
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 복호기 제어기(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
반면, 버스(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
프레임/이레이져 버퍼 및 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
도 8은 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)의 MPE PID 및 MPE 섹션 검출기(550a)의 동작 흐름도이다.8 is a flowchart illustrating operations of the MPE PID and the
먼저, 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
808단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 상기 604단계의 방송 서비스 정보(PSI/SI) 분석 결과를 이용하여 MPE-FEC가 적용되는 것으로 확인된 경우 TS 패킷으로부터 4 바이트 헤더 부분을 제거하고 184 바이트 페이로드 부분을 도 5의 순환 버퍼(511)에 바이트 단위로 순차적으로 저장한다. In
또한 상기 808단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 TS 패킷의 페이로드로 전송되는 MPE 섹션 또는 MPE-FEC 섹션의 시작과 끝을 확인하고, 이 섹션들이 구성하는 MPE-FEC 프레임에 대해 RS 복호를 수행하기 위한 신뢰성 정보를 얻기 위하여 후술할 테이블 아이디(table_id)의 검출 시마다 CRC 검사를 수행한다. 즉, 섹션 검출(Section Detection)과정을 수행한다.In addition, in
그리고 810단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 MPE 섹션 정보 및 데이터를 프레임/이레이져 버퍼 및 R-S 복호기 제어기(550b)로 출력한다. 812단계에서 MPE PID 및 MPE 섹션 검출기(550a)는 타임 슬라이싱 처리기(313)의 버스트 구간 타이머(570)가 미리 정해진 시간인 "0"을 계수하였는지를 검사한다.In
그리고, 상기 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
도 9는 본 발명의 제2 실시 예에 따른 MPE-FEC 복호화기(315)에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)의 동작 흐름도이다.9 is a flowchart illustrating operations of a frame / erase buffer and an
900단계에서 타임 슬라이싱 처리기(313)로부터 버스트 시작 신호를 입력받으면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 902단계로 진행하여 섹션이 입력되기 시작하였는지를 검사한다. 상기 902단계의 검사결과 섹션이 시작되었다면, 906단계로 진행하여 섹션 파라미터를 저장한다. 섹션 파라미터는 상기 <표 1>에 나타낸 내용들을 의미하며, 프레임/이레이져 버퍼 및 RS 디코더 제어기(550b)에 저장한다. When the burst start signal is received from the
908단계에서 프레임/이레이져 버퍼 및 R-S 복호기 제어기(550b)는 MPE 섹션으로부터 헤더 정보와 CRC 비트들을 제거한 후, 프레임 버퍼(513)의 방송 데이터 테이블 영역에 해당 MPE 섹션의 IP 데이터그램을 프레임 버퍼링한다. 그리고 프레임 버퍼링되는 IP 데이터그램은 CRC 검사를 거친 신뢰할 수 있는 데이터이므로 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 해당 IP 데이터그램의 바이트들에 대한 신뢰성 정보를 이레이져 버퍼(515)에 마킹(Marking)한다.In
910단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 마지막 MPE 섹션이 수신되었는지 검사하여 마지막 MPE 섹션이 수신되었다면, 912단계로 진행하여 마지막 주소를 저장한다.In
반면, 상기 902단계의 검사결과 섹션이 시작되지 않는다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 904단계로 진행하여 이레이져 버퍼(515)에 신뢰성 정보를 초기화시킨다.On the other hand, if the check result section of
버스트내에서 섹션 데이터는 지속적으로 입력되므로, 한 버스트에 대한 섹션 데이터가 모두 입력되기 전에 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 섹션 데이터를 버퍼링하고 신뢰성 정보를 마킹해야 한다. 일반적으로 한 섹션 종료 후 다음 섹션이 입력되기까지 시간 간격이 존재하는데, 본 발명의 제2 실시 예에 따른 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 그 시간 간격에 이레이져 버퍼(515)를 초기화 한다. 즉, 904단계에서 신뢰성 정보를 초기화하는 것은 이레이져 버퍼(515) 전체를 초기화시키는 것이 아니라 상기 섹션들이 수신되는 중간 시점마다 이레이져 버퍼(515)를 초기화시키는 것이다.Since section data is continuously input within the burst, the frame / eraser buffer and
그리고 상기 910단계의 검사결과 수신된 MPE 섹션이 마지막 MPE 섹션이 아니라면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 914단계에서 마지막 MPE-FEC 섹션이 수신되었는지 여부를 검사한다.If the MPE section received as a result of the check in
상기 914단계의 검사 결과 마지막 MPE-FEC 섹션이 수신되었다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 918단계로 진행하여 상기 904단계에서 이레이져 버퍼(515)의 초기화를 완료하지 못한 나머지 영역에 대해 신뢰성 정보 초기화를 수행한다.If the last MPE-FEC section is received as a result of the checking in
반면, 상기 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
상기 916단계에서 버스트가 종료되었다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 918단계로 진행하여 상기 904단계에서 이레이져 버퍼(515)의 초기화를 완료하지 못한 나머지 영역에 대해 신뢰성 정보 초기화를 수행한다.If the burst is terminated in
상술한 바와 같이 918단계에서 버스트 구간동안의 섹션 데이터가 입력된 이후, 이레이져 버퍼(515)의 초기화가 종료되지 않았다면, 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 상기 904단계에서 초기화하지 못한 나머지 영역에 대해 초기화를 수행하고, 920단계에서 도 6의 610단계에서와 같이 패딩 컬럼 처리를 수행하게 된다.As described above, if the initialization of the
920단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 패딩 컬럼 처리를 수행함으로서 패딩 컬럼 영역에 대한 "0" 데이터 버퍼링(제로 패딩) 및 신뢰성 정보 마킹 동작을 단 한번만 수행하며, 타이밍 문제를 피할 수 있다.In
이후에 922단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 디코딩할 가로 줄(row)을 검색한다. 상기 922단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)가 디코딩할 가로 줄을 검색하는 상세한 과정은 후술할 도 10을 참조하여 설명하기로 한다.Thereafter, in
924단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 이레이져 버퍼(515)에 저장된 데이터들의 모든 가로 줄(row)의 디코딩이 종료되었는지 검사한다. 상기 924단계에서는 디코딩을 수행하는 것이 아니라 922단계의 검색 결과를 갖고 모든 가로 줄의 대코딩 종료 여부만을 검사하는 것이다. In
상기 924단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 상기 검사 결과 모든 가로 줄(row)에 대해 디코딩이 종료되지 않았다면, 926단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 RS 복호기(530)로 하여금 프레임 버퍼(513)의 한 가로 줄(row)에 대하여 RS 복호를 수행하도록 제어한다. 상기 924단계와는 달리 926단계에서는 RS 복호기(530)를 구동하여 한 가로 줄에 대해 R-S 디코딩을 수행하는 것이다. In
926단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 RS 복호기(530)의 복호 결과인 에러가 발생한 주소(오류가 발생한 위치)와 에러 weight(오류 크기)를 저장한다.In
928단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 상기 926단계의 RS 복호결과를 근거로 오류(error)를 수정할 필요가 있는지 검사하고, 오류를 수정할 필요가 있다면, 930단계로 진행하여 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 프레임 버퍼(513)에 저장된 값들을 정정한다.In
반면, 상기 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
상기 932단계의 검사 결과 시리얼 인터페이스(704)가 사용가능하다면, 934단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 스위치(740)을 제어하여 프레임 버퍼(513)에서 IP 데이터그램을 읽어 로컬 SSP(702)를 통해 상기 어플리케이션 프로세서로 전송한다.If the
반면, 상기 932단계의 검사결과, 상기 시리얼 인터페이스(704)가 사용가능하지 않다면, 936단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 DVB-H 수신기의 프로세서(708)가 프레임 버퍼(513)의 IP 데이터그램을 읽어갈 수 있게 하기 위해 인터럽트 신호가 발생가능한지를 검사한다.On the other hand, if the
상기 936단계의 검사결과 상기 인터럽트 신호가 발생가능하다면, 938단계에서 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 스위치(740)을 제어하여 프레임 버퍼(513)와 버스 인터페이스(710)를 연결시키고, 상기 프로세서(708)로 인터럽트 신호를 발생시킨다.If the interrupt signal can be generated in
도 10은 본 발명의 제2 실시 예에 따라 프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)에 구비된 가로 줄(row) 검색기의 구조를 도시한 것이다.10 illustrates a structure of a horizontal row searcher provided in the frame / erase buffer and the
일반적으로 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 복호기 뿐 아니라 비터비 복호기나 터보 복호기 등의 채널 복호기는 수신한 부호어(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
일반적으로 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
따라서, 본 발명의 제2 실시 예에서는 디코딩 여부를 결정하는 시간을 줄이기 위하여 도 10에 도시되 것과 같은 가로 줄 검색기(1000)를 사용한다.Accordingly, the second embodiment of the present invention uses the
이레이져 버퍼(515)는 i개의 가로 줄(1002)에 대한 데이터를 동시에 읽을 수 있도록 구성된다. 가로 줄 검색기(1000)가 가로 줄 검색 시에 이레이져 버퍼(515)에서 읽혀진 데이터는 i개의 카운터(counter)(1000a)로 입력된다. 해당 가로 줄(1002) 검색이 종료되면 i개의 카운터(1000a)는 i개의 가로 줄(1002)에 대한 이레이져 개수를 저장한다. 상기 이레이져 개수는 각각 i개의 비교기(1000b)로 입력되며, 비교기(1000b)는 상기 이레이져 개수가 65보다 작은 경우 RS 복호기(530)로 하여금 디코딩을 수행하게 제어하는 플래그(flag)(1000c)를 "1"로 셋팅한다.
프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 i개의 플래그(1000c)들 중 "1"로 셋팅된 것에서 가장 가로 줄(row) 인덱스가 작은 플래그를 선택하여, 선택된 플래그의 인덱스에 해당되는 가로 줄(row)에 대한 R-S 디코딩을 수행하게 RS 복호기(530)를 제어한다. 인덱스는 순서를 의미하며, 가로 줄 인덱스는 가로 줄 번호(순서)를 말하는 것이고 열 인덱스는 열 번호를 의미한다. 가로 줄 인덱스가 작은 것을 선택한다는 의미는 프레임 버퍼(513)(또는 이레이져 버퍼)(515)의 위 가로 줄부터 순차적으로 열 단위 디코딩을 한다것을 의미한다.The frame / erase buffer and
프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 RS 디코딩이 종료된 후에 해당 가로 줄에 대한 플래그를 다시 "0"으로 셋팅(리셋)한다. 가로 줄 검색은 i개의 플래그 값이 모두 "0"이고 이레이져 버퍼(515)에 남은 가로 줄이 있을 경우 수행된다. 본 발명의 제2 실시 예에 따른 행 검색 방법은 가로 줄 검색 시간을 제1 실시 예에 비해 N/i로 감소시킨다. i 값이 커질수록 가로 줄 검색에 소요되는 시간은 줄어드나 대신 하드웨어 크기가 증가하게 되므로, DVB-H 수신기의 성능 또는 크기와 같은 자원에 따라 적절한 i값을 선택하도록 한다.The frame / erase buffer and
프레임/이레이져 버퍼 및 RS 복호기 제어기(550b)는 한 가로 줄(row)에 대한 RS 디코딩 이후에 디코딩 결과를 갖고 프레임 버퍼(513)에 저장된 값을 정정하게 된다. 제1 실시 예에서는 제어기(550)가 Nx8 크기의 중간 버퍼를 구비하고, RS 복호기(530)의 디코딩 결과 출력 시에 가로 줄(row)에 대한 데이터를 프레임 버퍼(513)으로부터 다시 읽어 RS 복호기(530)로부터 출력되는 error weight와 더하여 중간 버퍼에 저장한 후에, 디코딩 종료 후 오류 정정 가능하다고 결정되는 경우 상기 중간 버퍼에 저장된 값을 다시 프레임 버퍼(513)로 저장하는 방법을 사용한다.The frame / erase buffer and
이러한 제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
도 11은 본 발명의 제2 실시 예에 따른 중간 버퍼(1102)를 도시한 것이다. 본 발명의 제2 실시 예에서는 물리적으로 분리된 중간 버퍼를 사용하는 대신 프레임 버퍼(513)의 세로 줄(column)을 255바이트에서 256바이트로 1바이트 늘려 프레임 버퍼(513)를 구성한다. 상기 프레임 버퍼(513)에서 늘어난 1바이트 크기의 마지막 열(column)(1100)을 중간 버퍼(1102)로 사용한다.11 illustrates an
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
본 발명의 제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
지금까지 상술한 바와 같이 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
이와 같은 제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-
도 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
도 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
참조번호 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.
참조번호 1260인 구간은 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 버스트 #1을 입력받아 프레임 버퍼(513)에 버퍼링하는 시간이다. 참조번호 1262인 구간은 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 버스트 #2을 입력받지만 프레임 버퍼(513)는 버스트 #1의 처리를 위해 이미 할당되어 있으므로 버스트 #2은 버퍼링되어지지 않고 버려지게 된다. An interval denoted by
참조번호 1264는 1260구간에서 버퍼링된 버스트 #1에 대해 R-S 디코딩을 수행하는 구간이며, 참조번호 1266은 상기 1264에서 R-S 디코딩된 버스트 #1을 시리얼 인터페이스(704)로 출력하는 시간을 나타낸다. Reference numeral 1264 denotes an interval for performing R-S decoding on the
참조번호 1268은 프레임 버퍼(513)가 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 버스트 #1을 수신하여 버퍼링하고, R-S 디코딩 후 시리얼 인터페이스(704)로 출력할 때까지 할당되는 시간이다. 즉, 참조번호 1284구간은 버스트 #1에게만 할당된 구간으로서 버스트 #2에 대한 버퍼링 및 R-S 디코딩이 되지 않는 구간이다.Reference numeral 1268 denotes a time allocated until the
참조번호 1270은 버스트 #1에 이어 버스트 #2를 건너뛴 버스트 #3이 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 입력되어 프레임 버퍼(513)에 버퍼링되는 시간을 나타낸다. 참조번호 1272는 앞서 상기 1262 시간에서 프레임 버퍼(513)에 버퍼링되었을 경우에 R-S 디코딩이 수행되는 시점이지만, 실제로는 일어나는 동작은 아니다. 따라서 점선으로 표시되었다.
참조번호 1274는 참조번호 1272 시간에서 버스트 #2이 R-S 디코딩되었을 경우에 시리얼 인터페이스(704)로 출력될 시점이지만 상기 1272구간에서 버스트 #2에 대한 R-S 디코딩이 수행되지 않았음으로 실제로 일어나는 동작이 아니며, 따라서 점선으로 표시되었다.Reference number 1274 is a time point to be output to the
참조번호 1276은 버스트 #3에 뒤이어 버스트 #4가 프레임/이레이져 버퍼 및 RS 디코더 제어기(530b)가 MPE PID 및 MPE 섹션 검출기(530a)로부터 수신되는 시점이지만, 이미 프레임 버퍼(513)은 버스트 #3에 할당되어 있으므로 입력만 될 뿐 점선과 같이 버퍼링되지는 않게 된다. 즉, 버스트 #4의 데이터들도 손실하게 된다.1276 is the time when
참조번호 1278은 상기 1270구간에서 버퍼링된 버스트 #3을 R-S 디코딩하는 시점이며, 참조번호 1280은 상기 R-S 디코딩된 버스트 #3을 시리얼 인터페이스(704)로 출력하는 시점을 나타낸다. 참조번호 1282는 프레임 버퍼(513)이 버스트 #3에 할당되었음을 보여준다.Reference numeral 1278 denotes a time point for R-S
즉, 참조번호 1286구간에서는 버스트 #3에 대해서만 버퍼링, R-S 디코딩, 시리얼 인터페이스(704)로의 출력이 발생될 뿐 버스트 #4에 대해서는 아무런 동작을 취할 수 없게 된다. 참조번호 1288구간은 버스트 #4가 상기 참조번호 1276구간에서 프레임 버퍼(513)에 버퍼링되었을 경우 R-S 디코딩과 시리얼 인터페이스(704)로 출력되는 시점이지만, 프레임 버퍼(513)에 버퍼링되지 못했음으로 실제 동작은 이루어지지 않는 구간이다.That is, in
상술한 바와 같이 본 발명의 제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-
MPE-FEC 복호하기(315)의 제어기(1300)는 MPE PID 및 MPE 섹션 검출기(1300a)와 프레임/이레이져 버퍼 제어기, RS 복호기 제어기 및 시리얼 출력 제어기를 포함하는 주 제어 유닛(1300b)을 포함한다.
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
주 제어 유닛(1300b)은 프레임/이레이져 버퍼 제어기와 R-S 복호기 제어기, 시리얼 출력 제어기 각각을 유한 스테이트 머신으로 구현되어 있으며, 상기 주 제어 유닛(1300b)의 상세 구성은 후술할 도 14를 참조하여 상세히 설명하기로 한다. The
도 13에서는 MPE PID 및 MPE 섹션 검출기(1300a)가 버스트 #1과 버스트 #2를 모두 수신하여 CRC 검사 결과 'Good'이 발생한 버스트 #1 및 버스트 #2의 섹션 데이터들을 각각 주 제어 유닛(1300b)으로 출력하는 것을 보여주고 있다.In FIG. 13, the MPE PID and the
주 제어 유닛(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
즉, 이와 같이 중재기(1302, 1304)가 프레임 버퍼(1308)와 이레이져 버퍼(1310)마다 각각 구비되어 있는 이유는 프레임 버퍼(1308), 이레이져 버퍼(1310)에 대한 접근이 주 제어 유닛(1300b)내의 복수의 제어기들과 CPU(1320)에 의해 이루어지기 때문에 이들의 접근을 제어해줄 필요가 있기 때문이다.That is, the reason why the
프레임 버퍼(1308)는 수신된 두 개 또는 그 이상의 버스트들의 IP 데이터 그램과 패리티 데이터를 동시에 저장할 수 있도록 제2 실시 예에 비해 두 배의 크기를 갖고 있으며, IP 데이터 그램과 패리티 데이터를 버퍼링하는 과정은 도 7의 프레임 버퍼(513)의 동작에 상세히 기재되어 있다.The
이레이져 버퍼(1310)에는 주 제어 유닛(1300b)이 MPE PID 및 MPE 섹션 검출기(1300a)로부터 섹션 데이터를 입력받을 때, 주 제어 유닛(1300b)이 마킹(Marking)한 상기 섹션 데이터에 대한 신뢰성(Reliable) 정보가 저장된다. 이레이져 버퍼(1310)에 신뢰성 정보를 마킹하는 과정 및 초기화 동작은 도 7의 이레이져 버퍼(515)의 동작에 상세히 기재되어 있다.The
R-S 복호기(1312)는 주 제어 유닛(1300b)의 제어에 의해 프레임 버퍼(1308)에 버퍼링된 IP 데이터그램들에 패리티 데이터를 이용하여 R-S 복호를 수행하게 되며, R-S 복호기(1312)의 복호 시점 및 복호 동작은 도 5 및 도 7에 상세히 기재되어 있다.The
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
MPE-FEC_done 인터럽트 신호는 CPU(1320)로 한 버스트에 대한 MPE-FEC 프레임 디코딩이 종료되었다는 것을 알려주고 동시에 데이터를 읽어갈 수 있다는 시점을 알려주는 역할을 수행한다. The MPE-FEC_done interrupt signal informs the
도 14는 본 발명의 제3 실시 예에 따른 주 제어 유닛(1300b)의 상세 블록 구성도이며, 도 15는 본 발명의 제3 실시 예에 따른 주 제어 유닛(1300b) 주변 블록들의 상세 구성도이다. 이하에서 도 14 및 도 15를 참조하여 본 발명의 제3 실시 예에 따른 DVB-H 수신기에서의 연속 수신 모드 및 PIP 모드로 동작하기 위해 연속되는 버스트를 복호하는 동작을 설명하기로 한다. 14 is a detailed block diagram of the
도 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
두 개의 버퍼링 제어기(1402a, 1402b)는 두 개의 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트 정보와 섹션 데이터(1450 ~ 1456)를 각각 입력받는다. 버퍼링 제어기 #1(1402a)은 버스트 #1에 대한 버퍼링 동작 및 신뢰성 마킹 동작을 수행하며, 버퍼링 제어기 #2(1402b)은 버스트 #2에 대한 버퍼링 동작 및 신뢰성 마킹 동작을 수행한다. Two
버퍼링 제어기(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
상기 "버스트 정보"는 상기 <표 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>.
제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
버퍼링 제어기(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
프레임 버퍼(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
여기서 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
버퍼링 제어기(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
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 복호기 제어기(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
좀더 상세히 설명하면 상술한 도 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 복호기 뿐 아니라 비터비 복호기나 터보 복호기 등의 채널 복호기는 수신한 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 복호기 제어기(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
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
또한 도 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
도 16은 본 발명의 제3 실시 예에 따른 세그먼트 할당기(1400)가 프레임 버퍼(1308)와 이레이져 버퍼(1310)를 일정 크기의 세그먼트(Segment)로 분할한 구조를 보여주는 도면이다. FIG. 16 illustrates a structure in which the segment allocator 1400 divides the
본 발명의 제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
프레임 버퍼(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
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
이레이져 버퍼(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
어플리케이션 데이터 영역은 최초 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
좀더 상세히 설명하면, 상술한 바와 같이 프레임 버퍼(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
이레이져 버퍼(1606)에 버퍼링된 신뢰성 정보들 중 프레임 버퍼(1308)에 버퍼링된 섹션 데이터들에 대한 신뢰성 정보가 버퍼링된 참조번호 1310a 영역은 참조번호 1606와 같이 12개의 세그먼트 단위로 할당되게 된다. 그리고 참조번호 1310b의 R-S 데이터에 대한 신뢰성 정보가 마킹된 부분은 참조번호 1604와 1606과 같이 따로 메모리를 할당하지 않고 레지스터 파일(1608)에 저장할 수 있다. Among the reliability information buffered in the
예컨대, 버스트 #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
도 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
1700단계에서 버퍼링 제어기(1402)는 버스트 또는 섹션이 시작되었는지를 검사한다. 여기서 버스트가 시작되었는지 여부는 타임 슬라이싱 처리기(313)로부터 버스트 시작 신호를 입력여부에 따라 알 수 있으며, MPE PID 및 섹션 검출기(1300a)로부터 섹션이 입력될 경우에는 섹션이 시작된 것으로 판단한다.In
상기 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
1708단계에서 버퍼링 제어기(1402)는 상기 세그먼트 할당기(1400)로부터 할당받은 프레임 버퍼(1308) 영역의 주소에다 입력된 섹션 데이터(1466)를 버퍼링하고, 이레이져 버퍼(1310)에는 신뢰성 정보를 마킹한다.In
1710단계에서 버퍼링 제어기(1402)는 마지막 MPE 섹션이 입력되어 버스트 데이터의 입력이 종료되었는지를 검사한다. 이때 버퍼링 제어기(1402)가 버스트 데이터 입력의 종료를 판정하는 방법에는 세 가지가 있다. 먼저 MPE PID 및 MPE 섹션 검출기(1300a)가 프레임 경계를 검출한 경우와 타임 슬라이싱 처리기(313)가 최대 버스트 기간 초과를 알려주는 경우, 섹션 주소가 감소하는 경우이다.In
상기 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
1726단계에서 버퍼링 제어기(1402)가 어드레스에 의해 버스트 경계인지를 검사하는 동작은 아래와 같은 이유로 인해 수행된다. In
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
그리고 상기 1710단계에서 검사결과 마지막 MPE 섹션이 아니라면, 버퍼링 제어기(1402)는 1712단계로 진행하여 프레임 경계인지 여부를 검사한다. If the result of the check in
상기 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
도 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
1804단계에서 R-S 복호기 제어기(1406)는 실제적인 디코딩을 수행하기 전에 마지막 행 및 패딩 행 처리를 수행한다. 여기서 마지막 행 처리는 MPE PID 및 MPE 섹션 검출기(1300a)가 마지막 MPE 섹션을 검출했을 때 마지막 MPE 섹션의 끝부분이 위치한 행의 마지막 열에 대한 신뢰성 정보를 "reliable"로 표기하는 것이고, 패딩 행 처리는 MPE 섹션 중 정해진 수 만큼의 패딩 행에 대한 데이터를 "0"으로 신뢰성 정보를 "reliable"로 표기하는 것이다. 패딩 행 수는 MPE-FEC 섹션 검출 시에 알 수 있다.In
이러서 1806단계에서 R-S 복호기 제어기(1406)는 열 셋트 단위로 디코딩이 가능한 열을 검색하고, 1808단계에서 모든 열에 대해 디코딩이 종료되었는지를 검사한다.Thus, in
상기 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
상기 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
도 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
상기 1904의 검사결과 시리얼 인터페이스(1704)가 활성화되었다면, 시리얼 출력 제어기(1410)는 1906단계로 진행하여 SOUT 큐(1408)로부터 꺼낸 버스트 정보를 가지고 패킷 헤더를 생성하여 1908단계에서 상기 생성된 패킷 헤더를 시리얼 인터페이스 블록(704)으로 출력한다.If the
그리고 시리얼 출력 제어기(1410)는 상기 생성된 패킷 헤더를 시리얼 인터페이스 블록(704)으로 전송하고 1910단계에서 프레임 버퍼(1308)로부터 데이터를 읽어 시리얼 인터페이스 블록(704)으로 전송함으로서 패킷 페이로드를 생성한다. The serial output controller 1410 generates the packet payload by transmitting the generated packet header to the
1912단계에서 시리얼 출력 제어기(1410)는 한 버스트의 출력이 종료되었는지를 검사하고, 한 버스트의 출력이 종료되었다면, 1916단계로 진행하여 한 패킷의 출력이 종료가 되었는지를 검사한다. 상기 1916단계의 검사결과 한 패킷 출력이 종료되지 않았다면, 1918단계로 진행하여 제로 패딩을 추가하여 전송한다. 상기 1912단계 내지 1918단계의 동작을 수행하는 이유는 버스트의 끝부분에서 정해진 패킷의 크기와 전송된 데이터의 크기가 맞지 않는 경우 정해진 패킷의 크기와 맞도록 '0'을 패딩하여 추가로 전송하기 위해서 필요한 동작이다. In
상기 1912단계와 1914단계를 좀더 상세히 설명하면 아래와 같다.The
일반적으로 시리얼 출력 제어기(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
상기 1912단계의 검사 결과 한 버스트의 출력이 종료 되지 않았다면, 시리얼 출력 제어기(1410)는 1914단계로 진행하여 한 패킷의 출력이 종료되었는지를 검사한다.If the output of one burst is not terminated as a result of the checking of
상기 1914단계의 검사결과 한 패킷의 출력이 종료되었다면, 시리얼 출력 제어기(1410)는 1908단계로 진행하고, 한 패킷의 출력이 종료되지 않았다면, 1910단계로 진행한다.If the output of one packet is terminated as a result of the check in
그리고 1916단계의 검사결과 한 패킷 출력이 종료되었다면, 시리얼 출력 제어기(1410)는 1920단계로 진행하여 세그먼트 할당기(1400)로 세그먼트 할당의 해제를 요청하며, 1922단계와 1924단계와 같이 CPU(708)로 인터럽트를 발생시킬 수 있다.If the output of one packet is terminated in
도 20은 본 발명의 제3 실시 예에 따른 MPE-FEC 복호화기(315)의 타이밍도이다.20 is a timing diagram of an MPE-
프레임 버퍼(1308)와 이레이져 버퍼(1310)는 64 행 단위로 할당되므로 버스트에 대한 섹션 입력이 1/4 만큼 진행된 시점에 새로운 세그먼트 할당을 요구하게 된다. 프레임 버퍼 할당의 해제는 시리얼 인터페이스 출력이 진행되면서 64행 단위로 수행되고, 이레이져 버퍼 할당의 해제는 R-S 디코딩이 종료되는 시점에 수행된다. 상술한 내용을 도 20을 참조하여 상세히 설명하면 아래와 같다.Since the
참조번호 2000은 주 제어 유닛(1300b)이 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트 #1 ~ #4를 입력받는 시간을 나타내며, 참조번호 2002는 주 제어 유닛(1300b)이 상기 참조번호 2000에서 입력된 버스트를 프레임 버퍼(1308)에 버퍼링하는 시간을 나타낸다.Reference numeral 2000 denotes a time at which the
참조번호 2004는 주 제어 유닛(1300b)의 제어에 의해 R-S 복호기(1312)가 상기 참조번호 2002에서 버퍼링된 섹션 데이터들에 대해 R-S 디코딩을 수행하는 시간을 나타낸다. 참조번호 2006은 상기 참조번호 2004에서 R-S 디코딩된 버스트 #1 ~ 버스트 #4들을 시리얼 인터페이스(704)를 통해 출력하는 시간을 나타내며, 참조번호 2008은 상기 참조번호 2000 내지 2006 동작을 수행하기 위해 프레임 버퍼(1308)가 점유되는 시간을 나타낸다. 참조번호 2010은 버스트 #1 ~ 버스트 #4에 대한 신뢰성 정보를 마킹하기 위해 이레이져 버퍼(1310)가 할당되는 시간을 나타낸다.
참조번호 2012는 프레임 버퍼(1308)의 주소 영역을 도시한 것으로 2개의 2Mb로 구분된다. 참조번호 2014는 이레이져 버퍼(1310)의 주소 영역을 도시한 것으로 0.5Mb 크기를 나타낸다.
참조번호 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에 대한 이레이져 버퍼의 신규 할당은 수행되지 않게 된다.
참조번호 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이 버퍼링되게 된다.
참조번호 2030은 버스트 #2에 대한 R-S 디코딩이 완료된 시점으로서 이와 함께 이레이져 버퍼(1310)에서 버스트 #2에 대한 할당도 함께 해제된다. 참조번호 2032는 프레임 버퍼(1308)에 버퍼링되어 있던 버스트 #2가 시리얼 I/F(704)를 통해모두 출력된 시점으로 프레임 버퍼(108)에서 버스트 #2에 대한 영역이 할당 해제되는 시점이기도 하다.
도 20과 같이 본 발명의 제3 실시 예에 따른 MPE-FEC 복호화기(315)는 버퍼 메모리를 효율적으로 할당/해제함으로써 N_ROW가 변하는 경우에도 연속 수신 모드로 동작할 수 있다.As shown in FIG. 20, the MPE-
도 21은 본 발명의 제3 실시 예에 따른 주 제어 유닛(1300b)의 동작 흐름도이다. 21 is an operation flowchart of the
2100단계에서 주 제어 유닛(1300b)은 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트의 섹션 데이터들을 입력받는지 검사한다. 상기 2100단계의 검사결과 MPE PID 및 MPE 섹션 검출기(1300a)로부터 버스트의 섹션 데이터를 입력받았다면, 주 제어 유닛(1300b)은 2102단계로 진행하여 입력된 버스트의 섹션 데이터들에 대해 프레임 버퍼(130) 세그먼트와 이레이져 버퍼(1310) 세그먼트를 할당한다.In
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
상기 2110단계에서 시리얼 I/F(704)로 상기 R-S 복호된 버스트를 출력한 후에 주 제어 유닛(1300b)은 2112단계에서 상기 시리얼 I/F(704)로 출력된 버스트에 할당된 프레임 버퍼(1308) 세그먼트 할당을 해제한다.After outputting the RS decoded burst to the serial I /
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)
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)
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 |
-
2006
- 2006-07-21 KR KR1020060068638A patent/KR20080008849A/en not_active Application Discontinuation
Cited By (1)
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 |