KR20010098863A - 디멀티플렉서 - Google Patents

디멀티플렉서 Download PDF

Info

Publication number
KR20010098863A
KR20010098863A KR1020010022302A KR20010022302A KR20010098863A KR 20010098863 A KR20010098863 A KR 20010098863A KR 1020010022302 A KR1020010022302 A KR 1020010022302A KR 20010022302 A KR20010022302 A KR 20010022302A KR 20010098863 A KR20010098863 A KR 20010098863A
Authority
KR
South Korea
Prior art keywords
data
unit
packets
packet
demultiplexer
Prior art date
Application number
KR1020010022302A
Other languages
English (en)
Inventor
나베사꼬히데끼
야기오사무
Original Assignee
이데이 노부유끼
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이데이 노부유끼, 소니 가부시끼 가이샤 filed Critical 이데이 노부유끼
Publication of KR20010098863A publication Critical patent/KR20010098863A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440209Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display for formatting on an optical medium, e.g. DVD

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Television Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

서로 다른 타입의 다중화 포맷을 조작할 수 있고, 전체 사이즈 및 그 회로 배열의 비용을 최소화할 수 있는 디멀티플렉서가 제공된다.
명령 메모리(111)로부터 순차 독출되는 마이크로-코드에 응답하여 그 성분들을 제어하는 제어 신호들을 생성하는 제어부(113)가 배열된다. 수신된 데이터의 패킷들은 시프트 레지스터(102)에 저장되고, 그 헤더들은 연산부(104)에서 해석되기 전 원하는 때에 일군의 레지스터(103)에 기입된다. 상기 패킷들의 출력선은 출력선 결정부(105)에 의해 헤더의 패킷 ID로부터 결정된다. 분리부(106)는, 연산부(104)의 출력 및 출력선 결정 결과를 조사하여, 시프트 레지스터(102)의 데이터 출력으로부터 원하는 패킷들을 분리하여, 이들을 결정된 출력선으로 전송한다. 또한, 상기 수신된 패킷 데이터에서 타이밍 데이터가 추출되어 시스템 클럭을 제어하는 클럭 제어부(114)로 전송된다. 명령 메모리(111)로부터 독출되는 마이크로-코드들을 변조하는 것에 의해 서로 다른 타입의 다중화 포맷들이 조작되기 때문에, 회로 배열의 전체 사이즈 및 비용이 성공적으로 저감될 것이다.

Description

디멀티플렉서{DEMULTIPLEXER}
본 발명은 특정 멀티플렉싱 방법에 의해 멀티플렉스된 상이한 타입들의 패킷들을 갖는 입력 디지털 데이터(의 비트 스트림)로부터 소정의 패킷들을 분리시킬 수 있는 디멀티플렉서에 관한 것이다. 더 구체적으로, 본 발명은 마이크로-코드들이 저장되어 있는 명령 메모리를 구비하여, 명령 메모리로부터 순차적으로 판독된 마이크로-코드들에 응답하여 각 부품들의 액션을 제어하기 위한 디멀티플렉서에 관한 것이다. 그러므로, 디멀티플렉서는 명령 메모리로부터 판독되는 마이크로-코드들을 변경함으로써 상이한 타입의 멀티플렉싱 포맷을 핸들링함에 따라, 그 회로의 전체 사이즈와 전체 비용을 감소시킨다.
일반적으로, 방송용이나 저장 매체에 대한 비디오, 오디오, 텍스트, 및 디지털 데이터로 된 다른 콘텐츠는 비트들의 스트림의 형태로 전송 및 저장되기 전에 인코드되고 패킷들이나 팩들(packs)로 그룹핑되어 멀티플렉스된다. 수신된 데이터의 패킷들에 있어서 인코딩 포맷은 동일하지만 멀티플렉싱 포맷이 상이한 경우, 수신기는 상이한 타입들의 멀티플렉싱 포맷들에 대한 복수개의 디멀티플렉서들을 구비하여야 한다.
예를 들어, DVB(Digital Video Broadcasting), DSS(Digital SatelliteSystem), 및 DVD(Digital Versatile Disc)는 멀티플렉싱 포맷이 서로 상이하다.
도 19는 DVB 스트림 내의 DVB 패킷의 공통적인 구조를 나타낸다. DVB 패킷은, 4바이트의 헤더, 가변 길이의 어댑테이션 필드, 가변 길이의 페이로드 (데이터 필드)를 포함하고, 그 총 길이는 188바이트이다. 잘 아는 바와 같이, 페이로드(payload)는 재분할되어 할당된 PES 패킷들 뿐만 아니라 MPEG2 시스템에 의해 결정된 섹션들의 형태로 각종 PSI(Program Specific Information) 테이블을 포함한다. DVB 패킷은 어댑테이션 필드나 또는 페이로드 중의 하나로 구성될 수도 있다. 헤더는 패킷 식별을 위한 PID(Packet Identification) 데이터를 포함하고, 어댑테이션 필드는 타이밍 정보인 PCR(Program Clock Reference)을 포함한다.
도 20은 DVB 패킷 내의 헤더의 콘텐츠를 나타낸다. Sync_byte는 0x47이다. transport_error_indicator가 1이면, 그것은 패킷이 에러를 포함함을 지시한다. payload_unit_start_indicator가 1이면, 그것은 패킷 내의 페이로드가 PES 또는 PSI 헤더로 마킹되었음을 지시한다. transport_scrambling_control이 00이면, 그것은 패킷이 스크램블되지 않았음을 지시한다. 여기서, 하위 비트가 1이면, 그것은 패킷이 페이로드를 포함함을 지시한다. Continuity_counter는 동일한 PID 데이터를 갖는 하나 이상의 패킷들이 연달아 배열되지 않았는가를 검사하기 위해 제공된다.
도 21은 어댑테이션 필드의 주요 콘텐츠를 나타낸다. adaptation_field_length는 어댑테이션 필드의 길이를 지시한다. adaptation_field_control이 10이면, 0xB7 (=183)이 설정된다. PCR_flag가 1이면,그것은 어댑테이션 필드가 타이밍 정보인 PCR 데이터를 포함함을 지시한다.
도 22는 DSS 비트 스트림 내의 DSS 비트 패킷의 공통적인 구조를 나타낸다. DSS 패킷은 2바이트의 프리픽스와 128바이트의 전송 블록을 포함하고, 그 총 길이는 130바이트이다. 프리픽스는 패킷 식별을 위한 SCID(Service Channel Identification) 데이터를 포함하고, 전송 블록은 타이밍 정보를 포함한다.
도 23은 DSS 패킷 내의 프리픽스의 주요 콘텐츠를 나타낸다. Packet Framing은 각 패킷에서 번갈아 0 또는 1로 조정된다. 패킷이 스크램블된 경우, Control Flag는 0이다. 그렇지 않다면, 1이다. 도 24는 프리픽스 다음의 1바이트의 CC 필드와 HD 필드를 나타낸다. Continuity Counter는 동일한 SCID를 갖는 하나 이상의 패킷들이 연달아 배열되지 않았는가의 여부를 검사하기 위해 제공된다. Header Designator는 비디오 어플리케이션 패킷의 타입을 지시하기 위해 제공된다.
예를 들어, 패킷이 Auxiliary Data 패킷이면, Header Designator는 0000이다. 이와 함께, Continuity Counter는 0000이다. 도 25는 이 경우 CC 필드와 HD 필드 이후의 2바이트를 나타낸다. Current Field Flag가 1이면, 그것은 Auxiliary Data Packet이 유효함을 나타낸다. Aux Field ID는 Auxiliary Data Packet 내에 포함된 것이 무엇인지를 지시한다. 그것이 000000이면, Auxiliary Data Packet은 타이밍 정보인 5바이트의 RTS(Reference Time Stamp) 데이터를 포함한다. 그것이 000011인 경우, 이 패킷은 RTS 데이터 및 Encryption Control Word Packet을 포함한다.
도 26은 DVD 비트 스트림 내의 DVD 팩의 공통적인 구조를 나타낸다. DVD 팩은 가변 길이의 팩 헤더와, 가변 길이의 시스템 헤더와, 가변 길이의 PES 헤더를 포함하고, 그 총 길이는 가변적이다. PES 헤더는 패킷 ID인 스트림 ID를 포함하고, 팩 헤더는 타이밍 정보인 SCR(System_Clock_Reference) 데이터를 포함한다.
도 27은 PES 헤더의 주요 콘텐츠를 나타낸다. PES_start_code_prefix는 항상 0x000001이며, 이는 PES 헤더의 시작을 나타낸다. PES_packet_length는 연이은 PES 패킷의 길이를 지시한다. PES_header_data_length는 stream_ID를 뒤따르는 optional PES header의 길이를 지시한다.
도 28은 DVD 팩 헤더의 주요 콘텐츠를 나타낸다. pack_start_code는 0x000001BA이다. system_clock_Reference_base와 system_clock_Reference_extension은 타이밍 정보이다. 시스템 헤더는 첫번째 팩의 팩 헤더에 뒤따른다. 도 29는 시스템 헤더의 주요 콘텐츠를 나타낸다.
멀티플렉싱 포맷들이 상이하기 때문에, 스트림들의 구조, 헤더들의 콘텐츠, 및 다른 설정들은 균일하지 않게 된다. 이에 따라, 헤더의 분석과 페이로드 전송은 멀티플렉싱 포맷에 따라 변경되어야 한다.
도 30은 상이한 타입들의 멀티플렉스된 패킷들을 갖는 입력 디지털 데이터의 비트 스트림으로부터 소정의 패킷들을 분리시키도록 설계된 디멀티플렉서(200)의 구조를 나타낸다.
디멀티플렉서(200)는 비트 스트림 STM을 수신하기 위한 입력 단자(201)와, 시퀀서를 사용하여 비트 스트림 STM 내에 포함된 각 패킷 또는 팩의 헤더를 분석하기 위한 헤더 해석부(202)와, 각 패킷을 출력하는 출력선을 결정하기 위한 출력선결정부(203)와, 헤더 해석부(202)에 의해 비트 스트림 STM으로부터 추출된 타이밍 정보로 시스템 클럭을 제어하기 위한 클럭 제어부(204)를 포함한다.
출력선 결정부(203)는 내장된 메모리 (도시되지 않음)를 갖는데, 거기에는 비트 스트림 STM으로부터 추출될 패킷들을 식별하기 위해 패킷 ID 데이터가 등록되어 있다. 패킷 ID는 외부 CPU로부터 호스트 인터페이스(205)를 통해 수신될 수 있다. 헤더 해석부(202)에 의해, 패킷으로부터 추출된 패킷 ID가 내장 메모리에 저장된 패킷 ID와 매칭하는 것이 발견되면, 출력선 결정부(203)는 저장된 패킷 ID에 의해 식별된 출력선을 추출된 패킷 ID를 갖는 패킷의 출력선으로서 결정한다.
디멀티플렉서(200)는 또한 출력선이 정해진 패킷들을 비트 스트림 STM으로부터 분리시키고 이들을 출력선으로 전송하는 분리부(206)를 포함한다. 분리부(206)는 출력선들로서 출력 단자들(207a, 207b, 207c)의 세트 등에 접속될 수 있다.
비트 스트림 STM이 DVB 포맷인 경우, 도 30에 도시된 디멀티플렉서(200)는 도 31의 순서도에 나타낸 패킷 처리 프로시져를 수행한다.
프로시져는 단계 ST11에서 DVB 패킷을 수신하는 것으로 시작하여, 단계 ST12에서 패킷 내의 동기 바이트인 sync_byte를 검출한다. 단계 ST13에서, 헤더는 transport_error_indicator,transport_scrambling_control,adaptation_field_control 등이 검사되고, 이들이 임의의 에러를 포함하는 지의 여부가 검사된다. 에러를 포함하지 않는다면, 단계 ST14로 진행한다.
단계 ST14에서, 헤더 내의 PID 데이터가 출력선 결정부(203)의 내장 메모리 내에 저장된 PID 데이터와 동일한 지가 검사된다. 헤더 내의 PID 데이터가 상기저장된 것과 동일한 경우, 헤더 내의 연속성 지표 continuity_counter가 단계 ST15에서 패킷들의 연속성이 설정되었는 지의 여부에 대해 검사된다. 패킷들의 연속성이 설정된 경우, 프로시져는 단계 ST16으로 진행한다.
단계 ST16에서, 타이밍 데이터인 PCR 데이터가 포함되어 있는 지의 여부가 검사된다. 타이밍 정보가 포함되었다면, 프로시져는 단계 ST17로 진행한다. 단계 ST17에서, 타이밍 정보가 패킷으로부터 추출되어 시스템 클럭 제어부(204)에 전송된다. 프로시져는 그 다음 단계 ST18로 진행한다. 타이밍 정보가 발견되지 않았다면, 프로시져는 단계 ST18로 분기된다. 단계 ST18에서, 패킷 내의 페이로드는, 후속의 DVB 패킷에 대해 프로시져를 반복하기 전에, 헤더의 PID에 의해 결정된 출력선으로 전송된다.
단계 ST13에서 헤더가 에러를 포함한 것으로 발견될 때, 단계 ST14에서 헤더의 PID 데이터가 식별되지 않을 때. 단계 ST15에서 연속성이 발견되지 않을 때는, 그 다음 DVB 패킷에 대해 프로시져를 반복하기 전에, 단계 ST19에서 이 패킷은 폐기된다.
비트 스트림 STM이 DSS 포맷인 경우, 도 30에 도시된 디멀티플렉서(200)는 도 32의 순서도에 나타낸 프로시져를 수행한다.
프로시져는 단계 ST21에서 DSS 패킷을 수신하는 것으로 시작하여, 단계 ST22에서 패킷 내의 동기 신호를 검출한다. 단계 ST23에서, 프리픽스가 (control_flag 등에) 에러 비트들이 있는 지가 검사된다. 에러가 발견되지 않았다면, 단계 ST24로 진행한다.
단계 ST24에서, 프리픽스 내의 SCID 데이터가 출력선 결정부(203)의 내장 메모리 내에 저장된 SCID 데이터와 동일한 지의 여부가 검사된다. 프리픽스 내의 SCID 데이터가 상기 저장된 것과 동일한 경우, 프리픽스 내의 continuity_counter가 단계 ST25에서 패킷들의 연속임이 설정되었는 지의 여부에 대해 검사된다. 패킷들의 연속으로 설정된 경우, 프로시져는 단계 ST26으로 진행한다.
단계 ST26에서, 타이밍 데이터인 RTS(Reference Time Stamp) 데이터가 포함되어 있는 지의 여부가 검사된다. 타이밍 정보가 포함되었다면, 프로시져는 단계 ST27로 진행한다. 단계 ST27에서, 타이밍 정보가 패킷으로부터 추출되어 시스템 클럭 제어부(204)에 전송된다. 프로시져는 그 다음 단계 ST28로 진행한다. 타이밍 정보가 발견되지 않았다면, 프로시져는 단계 ST28로 분기된다. 단계 ST28에서, 패킷 내의 전송 블록은, 후속의 DSS 패킷에 대해 프로시져를 반복하기 전에, 프리픽스의 SCID 데이터에 의해 결정된 출력선으로 전송된다.
단계 ST23에서 프리픽스가 에러를 포함한 것으로 발견될 때, 단계 ST24에서 SCID 데이터가 식별되지 않을 때. 단계 ST25에서 연속성이 발견되지 않을 때는, 그 다음 패킷에 대해 프로시져를 반복하기 전에, 단계 ST29에서 이 패킷은 폐기된다.
비트 스트림 STM이 DVD 포맷인 경우, 도 30에 도시된 디멀티플렉서(200)는 도 33의 순서도에 나타낸 프로시져를 수행한다.
프로시져는 단계 ST31에서 DVD 팩을 수신하는 것으로 시작하여, 단계 ST32에서 패킷 내의 시작 코드인 pack_start_code를 검출한다. 단계 ST33에서, 타이밍 정보인 SCR 데이터가 팩 헤더로부터 추출되고, 시스템 클럭 제어부(204)에 전송된다. 그런 다음 프로시져는 단계 ST34로 진행한다.
단계 ST34에서, 팩이 첫번째 팩인지의 여부가 검사된다. 그러한 경우, 시스템 헤더는 단계 ST35에서 해당 출력선으로 전송되고, 그런 다음 프로시져는 단계 ST35으로 진행한다. 만일 첫번째 팩이 아니라면, 프로시져는 단계 ST36으로 분기된다.
단계 ST36에서, 각 PES 패킷이 추출되어, 그 다음 팩에 대해 프로시져를 반복하기 전에, 헤더 내의 Stream ID에 의해 결정된 출력선으로 전송된다.
상술한 바와 같이, 비트 스트림의 구조 및 각 헤더의 분석 프로세스가 상이한 서로 다른 멀티플렉싱 포맷들의 신호들을 핸들링하기 위해, 대응하는 개수의 디멀티플렉서들(200)이 필요하다. 따라서, 상이한 타입들의 멀티플렉싱 포맷들을 핸들링하기 위해 전용 회로들을 배치한 하드웨어 회로 구조는 전체 사이즈가 증가히게 되고 제조 비용도 증가하게 된다.
그러므로, 본 발명의 목적은 상이한 타입들의 멀티플렉싱 포맷을 핸들링할 수 있으며 전체 회로 구조의 사이즈 및 비용을 절감시킬 수 있는 디멀티플렉서를 제공하는 것이다.
소정의 방식으로 멀티플렉스된 상이한 포맷의 패킷들을 갖는 입력 디지털 데이터로부터 소정의 패킷들을 분리시켜 출력하기 위한 디멀티플렉서는, 입력 디지털 데이터를 수신하기 위한 데이터 입력부와; 데이터 입력부에서 수신된 입력 디지털 데이터를 저장하고 전송하기 위한 제1 기억부(하나의 시프트 레지스터); 제1 기억부에 저장된 입력 디지털 데이터로부터 패킷들의 헤더들을 추출하여 저장하기 위한 제2 기억부(일 군의 시프트 레지스터); 제2 기억부에 저장된 패킷들의 헤더들을 분석하기 위한 연산부; 제2 기억부에 저장된 패킷들의 헤더들에 포함된 패킷 식별자로부터 패킷들의 출력선을 결정하기 위한 출력선 결정부; 연산부의 연산 동작의 결과 및 출력선 결정부의 출력에 응답하여 제1 기억부에 저장된 입력 디지털 데이터로부터 소정의 패킷들을 분리시키기 위한 분리부; 각 멀티플렉싱 포맷 마다의 제어 동작을 선택하기 위해 제공된 마이크로-코드들을 저장하기 위한 명령 메모리; 명령 메모리에 저장된 마이크로-코드의 실행 어드레스를 검출하기 위한 카운터; 카운터에 의해 결정된 실행 어드레스에 의해 명령 메모리로부터 판독된 마이크로-코드로 각 부품의 동작을 제어하기 위한 제어부; 제1 기억부에 저장된 입력 디지털 데이터로부터 타이밍 데이터를 추출하고 그 타이밍 데이터로 시스템 클럭을 제어하기 위한 시스템 클럭 카운터를 포함한다.
이 실시예에 있어서, 명령 메모리에는 마이크로-코드들의 기억부가 구비된다. 마이크로-코드들은 명령 메모리로부터 순차적으로 판독되어, 입력 디지털 데이터로부터 소정의 패킷들을 분리시키고 이들을 해당 출력선들에 전송하기 위한 각 부품의 동작을 제어하는 데에 사용된다. 이에 따라, 상이한 타입들의 멀티플렉싱 포맷들은 명령 메모리로부터 대응하는 마이크로-코드를 판독함으로써 핸들링될 수 있어서, 디멀티플렉서의 회로 구조의 감소 및 비용의 절감을 달성하는 데에 기여한다.
도 1은 제1 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 2는 제2 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 3은 연상 메모리의 구조를 도시하는 도면.
도 4는 제3 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 5는 제4 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 6은 제5 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 7은 제6 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 8은 제7 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 9는 비트 조작 전용부의 처리 동작을 도시하는 도면.
도 10은 제8 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 11은 제9 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 12는 시프트 레지스터의 시프트 동작을 도시하는 도면.
도 13은 제10 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 14는 바이트의 번호 부여 동작을 도시하는 도면.
도 15는 제11 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 16은 제12 실시예의 디멀티플레서의 구성을 도시하는 블럭도.
도 17은 제13 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 18은 제14 실시예의 디멀티플렉서의 구성을 도시하는 블럭도.
도 19는 DBV 패킷의 구조를 도시하는 도면.
도 20은 DBV 패킷의 헤더의 주요 내용을 도시하는 도면.
도 21은 어댑테이션 필드의 주요 내용을 도시하는 도면.
도 22는 DSS 패킷의 구조를 도시하는 도면.
도 23은 DSS 패킷의 프리픽스의 주요 내용을 도시하는 도면.
도 24는 DSS 패킷의 프리픽스에 후속하는 1 바이트의 CC/HD 필드의 구조를 도시하는 도면.
도 25는 CC/HD 필드에 후속하는 보조(auxiliary) 데이터 패킷의 2 바이트 구조를 도시하는 블럭도.
도 26은 DVD 팩의 구조를 도시하는 도면.
도 27은 PES 헤더의 주요 내용을 도시하는 도면.
도 28은 DVD 팩 헤더의 주요 내용을 도시하는 도면.
도 29는 시스템 헤더의 주요 내용을 도시하는 도면.
도 30은 종래의 디멀티플렉서의 구성을 도시하는 블럭도.
도 31은 DVB 패킷을 처리하는 과정을 도시하는 순서도.
도 32는 DSS 패킷을 처리하는 과정을 도시하는 순서도.
도 33은 DVD 패킷을 처리하는 과정을 도시하는 순서도.
<도면의 주요 부분에 대한 부호의 설명>
100A ~ 100H, 100J ~ 100N, 100P : 디멀티플렉서
101 : 입력 단자
102 : 시프트 레지스터
103 : 일 군의 레지스터
104 : 연산부
105 : 출력선 결정부
106, 106A ~ 106D : 분리부
107a ~ 107c : 출력 단자
108 : 버스
111 : 명령 메모리
112 : 카운터
113 : 제어부
114 : 시스템 클럭 제어부
115 : 호스트 인터페이스
116 : 레지스터
117 : 연속성 검출부
118 : 비트 조작 전용부
119 : 입력 버퍼
120a ~ 120c : FIFO 메모리
121 : 어드레스 디코더
122 : 매체 처리부
123 : 출력용 버퍼 메모리
첨부 도면을 참조하여 본 발명의 실시예들을 설명한다.
설명의 편리를 위해, 다른 특별한 사항이 없다면, DVB 패킷의 헤더, DSS 패킷의 프리픽스, 및 DVD 팩의 헤더는 이하 헤더로서 참조된다. 또한, DVB 패킷의 패킷 식별자 PID, DSS 패킷의 패킷 식별자 SCID, 및 DVD 팩의 PES 패킷의 패킷 식별자 스트림 ID는 패킷 ID로서 참조된다. DVB 패킷의 타이밍 데이터 PCR, DSS 패킷의 타이밍 데이터 RTS, 및 DVD 팩의 타이밍 데이터 SCR은 타이밍 데이터로서 참조된다. DVB 패킷의 페이로드, DSS 패킷의 트랜스포트 블럭, 및 DVD 팩의 PES 패킷은 페이로드로서 참조된다.
도 1은 본 발명의 제1 실시예에 따른 디멀티플렉서(100A)의 구성을 도시한다. 디멀티플렉서(100A)는, 다양한 타입의 패킷들이 다중화되어 있는 입력 디지털 데이터의 비트 스트림으로부터 소정의 패킷을 분리하여 출력하도록 구성된다. 디멀티플렉서(100A)는 DVB 스트림, DSS 스트림, 및 DVD 스트림을 포함하는 다양한 다중화 데이터를 처리할 수 있다.
디멀티플렉서(100A)는, 비트 스트림 STM을 수신하기 위한 입력 단자(101), 입력 단자(101)로부터 수신된 비트 스트림 STM을 저장하고 난 후 전송하기 위한 시프트 레지스터(102), 시프트 레지스터(102)에 저장된 비트 스트림으로부터 헤더를 추출하여 저장하기 위한 일 군의 레지스터(103), 일 군의 레지스터(103)에 저장된 헤더들을 해석하기 위한 연산부(104), 일 군의 레지스터(103)에 저장된 헤더들 각각에 포함되어 있는 패킷 ID와 함께 마킹된 패킷의 출력선을 결정하기 위한 출력선 결정부(105)를 포함한다.
또한, 디멀티플렉서(100A)는, 연산부(104)의 결과와 출력선 결정부(105)의 결과에 따라 시프트 레지스터(102)로부터 수신된 비트 스트림 STM으로부터 소정의 페이로드를 분리하여 출력선으로 전송하도록 배치된 분리부(106)를 포함한다. 예를 들면, 분리부(106)는 한 셋트의 출력 단자들(107a, 107b, 107c 등)에 접속된다. 시프트 레지스터(102), 일 군의 레지스터(103), 연산부(104), 출력선 결정부(105), 및 분리부(106)는 버스(108)와 접속된다.
또한, 디멀티플렉서(100A)는, 상이한 타입의 다중화 방식에 소정의 제어 방법을 지정하기 위한 마이크로-코드들을 저장하기 위한 명령 메모리(111), 명령 메모리(111)에 저장된 각각의 마이크로-코드의 실행 어드레스를 획득하기 위한 카운터(112), 카운터(112)로부터의 실행 어드레스 데이터를 사용하여 명령 메모리(111)로부터 순차적으로 판독되는 마이크로-코드에 따라 각 구성 소자의 동작을 제어하기 위한 제어부(113), 시프트 레지스터(102)에 저장된 비트 스트림 STM으로부터 타이밍 데이터를 추출하고, 추출된 타이밍 데이터를 사용하여 시스템 클럭의 동작을 제어하기 위한 시스템 클럭 제어부(114)를 포함한다.
지금부터는, 도 1에 도시된 디멀티플렉서(100A)의 동작을 설명한다. 디멀티플렉서(100A)에 있어서, 비트 스트림 STM의 다중화 포맷에 대응하는 마이크로-코드는, 명령 메모리(111)로부터 순차적으로 판독되고, 각 구성 소자의 동작을 제어하는 제어부(113)에 의해, 분리부(6)가 비트 스트림 STM으로부터 소정의 패킷들을 분리하여 선정된 출력선으로 전송하게 하는 데 사용된다.
DVB 포맷의 비트 스트림 STM의 경우에 대하여 설명을 계속한다.
입력 단자(101)에서 수신된 비트 스트림 STM은, 명령 메모리(111)로부터 수신된 마이크로-코드로부터 제어부(113)에 의해 생성된 제어 신호의 동작에 의해, 시프트 레지스터(102)에 저장되고 시프트된다. 시프트 레지스터(102)에 저장된 비트 스트림 STM의 패킷들의 헤더들은 필요한 경우 일 군의 레지스터(103)으로 전송된다. 일 군의 레지스터(103)에 저장된 패킷들의 헤더들은 제어부(113)로부터의 제어 신호에 대응하여 연산부(104)에 의해 해석된다. 해석 프로세스는 패킷 내에서의 에러 판정과 연속성 검출을 포함한다.
제어부(113)로부터 제어 신호를 수신한 때에는, 출력선 결정부(105)가, 일 군의 레지스터(103)에 저장된 패킷들의 헤더들 내의 PID 데이터와, 내장 메모리에 저장된 기준 PID 데이터를 비교하여, 패킷들의 출력선을 판정한다. 분리부(106)는, 연산부(104)에서의 에러 판정, 연속성 검출의 결과, 및 출력선 결정부(105)의 출력을 사용하여, 관련 패킷들의 페이로드들을 출력선으로 전송한다.
시프트 레지스터(102)에 저장된 비트 스트림 STM에 포함된 타이밍 정보의 PCR 데이터는 시스템 클럭을 제어하기 위한 시스템 클럭 제어부(114)로 전송된다.
비트 스트림 STM이 DVB 포맷으로 되어 있는 경우, 본 실시예의 디멀티플렉서(100A)는 도 31의 순서도의 프로세스와 동일하게 수행될 수 있다.
비트 스트림 STM이 DSS 포맷인 경우의 동작을 설명한다.
입력 단자(101)에서 수신된 비트 스트림 STM은, 명령 메모리(111)로부터 수신된 마이크로-코드로부터 제어부(113)에 의해 생성된 제어 신호의 동작에 의해, 시프트 레지스터(102)에 저장되고 시프트된다. 시프트 레지스터(102)에 저장된 비트 스트림 STM의 패킷들의 프리픽스들(DVB 패킷들의 헤더와 동일함)은 소정의 시점에서 일 군의 레지스터(103)으로 전송된다. 일 군의 레지스터(103)에 저장된 패킷들의 헤더들은 제어부(113)로부터의 제어 신호에 대응하여 연산부(104)에 의해 해석된다. 해석 프로세스는 패킷 내에서의 에러 판정과 연속성 검출을 포함한다.
제어부(113)로부터 제어 신호를 수신한 때에는, 출력선 결정부(105)가, 일 군의 레지스터(103)에 저장된 패킷들의 프리픽스들 내의 SCID 데이터와, 내장 메모리에 저장된 기준 SCID 데이터를 비교하여, 패킷들의 출력선을 판정한다. 분리부(106)는, 연산부(104)의 에러 판정, 연속성 검출의 결과, 및 출력선 결정부(105)의 출력을 사용하여, 관련 패킷들의 트랜스포트 블럭들을 분리하고 출력선으로 전송한다.
시프트 레지스터(102)에 저장된 비트 스트림 STM에 포함된 타이밍 정보의 RTS 데이터는 시스템 클럭을 제어하기 위한 시스템 클럭 제어부(114)로 전송된다.
비트 스트림 STM이 DSS 포맷인 경우에, 본 실시예의 디멀티플렉서(100A)는 도 32의 순서도의 프로세스와 동일하게 수행될 수 있다.
비트 스트림 STM이 DVD 포맷인 경우의 동작을 설명한다.
입력 단자(101)에서 수신된 비트 스트림 STM은, 명령 메모리(111)에 수신된 마이크로-코드로부터 제어부(113)에 의해 생성된 제어 신호의 동작에 의해, 시프트 레지스터(102)에 저장되고 시프트된다. 시프트 레지스터(102)에 저장된 비트 스트림 STM의 PES 패킷들의 헤더들(DVB 패킷들의 헤더들과 동일함)과 팩들의 헤더들은 필요한 경우에 일 군의 레지스터(103)으로 전송된다. 일 군의 레지스터(103)에 저장된 헤더들은 제어부(113)로부터의 제어 신호에 대응하는 연산부(104)에 의해 해석된다. 해석 프로세스는 에러 판정 등을 포함한다.
제어부(113)로부터 제어 신호를 수신한 때에는, 출력선 결정부(105)가, 일 군의 레지스터(103)에 저장된 PES 패킷들의 스트림 ID 데이터와, 내장 메모리에 저장된 기준 스트림 ID와 비교하여, 패킷들의 출력선을 판정한다. 분리부(106)는, 연산부(104)의 에러 판정 결과와 출력선 결정부(105)의 출력을 사용하여, PES 패킷을 분리하여 출력선으로 전송한다.
시프트 레지스터(102)에 저장된 비트 스트림 STM의 팩 헤더에 포함된 타이밍 정보의 SCR 데이터는 시스템 클럭을 제어하기 위한 시스템 클럭 제어부(114)로 전송된다.
비트 스트림 STM이 DVD 포맷인 경우에, 본 실시예의 디멀티플렉서(100A)는 도 33의 순서도의 프로세스와 동일하게 수행될 수 있다.
도 1에 도시된 디멀티플렉서(100A)에는 마이크로-코드들을 저장하기 위한 명령 메모리(111)가 제공된다. 각 구성 소자들의 동작이 명령 메모리(111)로부터 순차적으로 판독된 마이크로-코드들에 의해 제어되므로, 소정의 패킷들은 입력 단자(101)에서 수신된 비트 스트림 STM으로부터 용이하게 분리되어 대응하는 출력선으로 전송될 수 있다. 이는, 명령 메모리(111)로부터 판독된 마이크로-코드들을 변경함으로써, 상이한 타입의 다중화 신호를 처리하는 것을 가능하게 하므로, 그 결과, 회로의 전체적인 크기를 줄이고 비용을 절감하는 데 기여한다.
도 2는 본 발명의 제2 실시예에 따른 디멀티플렉서(100B)의 구성을 도시한다. 디멀티플렉서(100B)는 연상 메모리(CAM)에 의해 구현된 출력선 결정부(105)를 구비한다. 그 외의 구성 소자들은 도 1에 도시된 디멀티플렉서(100A)와 동일하다.
도 3은 출력선 결정부(105)로서 제공되는 연상 메모리의 구성을 도시한다. 본 실시예에 있어서, 연상 메모리에서는, 출력선과 연속성을 검출하기 위한 이전의 연속성 카운트를 판독하기 위해 각 헤더의 패킷 ID가 검색된다.
도 4는 본 발명의 제3 실시예에 따른 디멀티플렉서(100C)의 구성을 도시한다. 디멀티플렉서(100C)는 호스트 인터페이스(115)를 통해 외부 CPU에 의해 기록될 수 있는 내장 메모리에 배치된 출력선 결정부(105)를 구비한다. 그 외의 구성 소자는 도 1에 도시된 디멀티플렉서(100A)와 동일하다.
본 실시예에 있어서, 비트 스트림 STM의 패킷의 세부 데이터는 외부 CPU에 전송된다. 패킷의 세부 데이터를 해석하는 경우, 외부 CPU는 출력선 결정부(105)의 내장 메모리에 저장된 데이터를 재기록할 수 있다.
도 5는 본 발명의 제4 실시예에 따른 디멀티플렉서(100D)의 구성을 도시한다. 디멀티플렉서(100D)는, 각 패킷의 길이를 제어하기 위한 카운터로서의 역할을 하는 특정한 레지스터(116)를 구비한다. 그 외의 구성 소자는 도 1에 도시된 디멀티플렉서(100A)와 동일하다.
DVB 및 DSS 포맷은 각각 각 패킷에 188 바이트 및 130 바이트를 고정적으로 포함한다. 헤더의 길이보다 짧은 패킷의 길이가 레지스터(116)에 기록되면, 상이한 길이의 페이로드 또는 트랜스포트 블럭이 출력될 수 있다. DVD 패킷 내의 PES 패킷의 길이가 선정되고 레지스터(116)에 기록되므로, 상이한 길이의 페이로드 또는 트랜스포트 블럭이 출력될 수 있다.
도 6은 본 발명에 따른 제5 실시예에 따른 디멀티플렉서(100E)의 구성을 도시한다. 디멀티플렉서(100E)는 산술 논리 유닛(ALU)에 의해 구현된 연산부(104)를 구비한다. 그 외의 구성 소자는 도 1에 도시된 디멀티플렉서(100A)와 동일하다. 임의의 에러의 판정과 연속성의 검출을 위해, 가산, 감산, 논리 합, 및 논리 곱에 대한 명령이 출력된다. 임의의 에러의 판정과 연속성의 검출은 산술 논리 유닛에 의해 수행될 수 있다.
도 7은 본 발명의 제6 실시예에 따른 디멀티플렉서(100F)의 구성을 도시한다. 디멀티플렉서(100F)는 패킷들 간의 연속성을 검출하기 위한 연속성 검출부(117)를 구비한다. 그 외의 구성 소자는 도 6에 도시된 디멀티플렉서(100E)와 동일하다. 연속성 검출부(117)는 연속성, 불연속성, 및 동일성을 동시에 판단할 수 있다.
도 8은 본 발명의 제7 실시예에 따른 디멀티플렉서(100G)의 구성을 도시한다. 이 디멀티플렉서(100G)는 비트를 조작을 수행하기 위한 비트 조작 전용부(118)를 구비한다. 그 외의 구성 소자는 도 6에 도시된 디멀티플렉서(100E)와 동일하다.
헤더 해석은, 일반적으로, 헤더의 특정 부분이 선택되어 에러 판정이 수행된다. 비트 조작 전용부(118)는 이러한 데이터의 특정 부분을 선택하는 동작을 수행한다. 도 9에 도시된 바와 같이, 레지스터 A에 저장된 8 비트의 데이터로부터 상위 4 내지 6 비트 (최하위 비트는 0으로 함)가 선택되면, 01110000의 마스킹이 사용될 수 있다. 비트의 배열에 있어서, 시프트 동작이 이용될 수 있다. 비트 조작 전용부(119)는 단일 사이클에서 이러한 동작들을 수행할 수 있다.
도 10은 본 발명의 제8 실시예에 따른 디멀티플렉서(100H)의 구성을 도시한다. 디멀티플렉서(100H)는 산술 논리 유닛(ALU)에 의해 구현된 연산부(104), 패킷들 간의 연속성을 검출하기 위한 연속성 검출부(117), 및 비트 조작을 수행하기 위한 비트 조작 전용부(118)를 구비한다. 그 외의 구성 소자는 도 1에 도시된 디멀티플렉서(100A)와 동일하다.
도 11은 본 발명의 제9 실시예에 따른 디멀티플렉서(100J)의 구성을 도시한 도면이다. 디멀티플렉서(100J)는 입력 단자(101)와 시프트 레지스터(102) 사이에 접속된 입력 버퍼(119)를 가지는데, 이 입력 버퍼(119)는 입력 단자(101)에서 수신된 비트 스트림 STM을 일시적으로 저장하기 위한 것이다. 그 밖의 다른 구성 요소들은 도 1에 도시된 디멀티플렉서(100A)의 구성 요소들과 동일하다.
입력 버퍼(119)에서, 판독 동작은 내부 클럭 신호의 타이밍에 의해 수행되며, 기록 동작은, 입력 단자(101)에서 수신된 비트 스트림 STM의 전송 속도와 동기된 외부 클럭 신호의 타이밍에 의해 수행된다. 이로 인해, 내부 클럭 신호 및 외부 클럭 신호가 서로 타이밍이 맞게 된다.
예를 들면, 디지털 위성 방송용 DSS 패킷 및 DVB 패킷은 실질적으로 공기중에서 인터셉트된다. 새로운 데이터가 수신되기 전에 시프트 레지스터(102)가 시프트 동작을 행할 경우, 도 12에 나타낸 원치 않는 데이터(해칭으로 나타냄)가 전송될 수도 있다. 이를 보상하기 위해, 입력 버퍼(119)로부터의 데이터 판독과 동기하여 시프트 레지스터(102)의 시프트 동작이 수행된다. 이로 인해 시프트 레지스터(102)가 원치 않는 데이터를 전송하는 것을 방지하게 될 것이다.
도 13은 본 발명의 제10 실시예에 따른 디멀티플렉서(100K)의 구성을 도시한 도면이다. 디멀티플렉서(100K)는, 도 1의 디멀티플렉서(100A)의 분리부(106)를 대신하는 엔디안(endian) 변경 기능을 갖는 분리부(106A)를 구비한다. 그 밖의 다른 구성 요소들은 도 1에 도시된 디멀티플렉서(100A)의 구성요소와 동일하다.
한 단어의 바이트의 넘버링(numbering)은 도 14에 도시된 바와 같이 두 개의 주 방법, 즉 왼쪽에서 오른쪽으로 각 바이트의 수를 증가시키기 위한 Big Endian 모드와, 오른쪽에서 왼쪽으로 각 바이트의 수를 증가시키기 위한 Little Endian 모드로 분류된다. 디코더에서 사용되는 엔디안 모드는, 디코딩 전에 비디오 또는 오디오 데이터의 비트 스트림이 처리될 때 다른 모드로 변경되어야 한다. 분리부(106A)는 디코더에서의 넘버링에 따라 엔디안 모드를 변경할 수 있다.
도 15는 본 발명의 제11 실시예에 따른 디멀티플렉서(100L)의 구성을 도시한 도면이다. 전술한 다른 실시예에서, 분리부(106)에 의해 분리된 페이로드는, 출력선 결정부(105)에 의해 판정된 대응하는 출력 단자(107a, 107b, 107c) 등으로 전송된다. 출력 단자에서 수신된 각 비디오 또는 오디오 비트 스트림은 전용 디코더로 전송되어서 디코딩될 수도 있다.
도 15에 도시된 본 실시예의 디멀티플렉서(100L)는, 출력 버퍼 메모리로 동작하는 FIFO 메모리(120a, 120b, 120c) 등의 구성도 포함한다. 원하는 페이로드는 시프트 레지스터(102)로부터 수신된 비트 스트림 STM으로부터 분리부(106B)에 의해분리되며, 출력선 결정부(105)에 의해 결정된 출력선에 할당되는 대응하는 FIFO 메모리에 저장된다. 그 후 FIFO 메모리에 저장된 페이로드의 데이터는 단일 매체 처리부(122)에 수신되어 디코딩된다.
동작을 위해, 분리부(106B)는, 출력선을 나타내는 관련 포트 어드레스를 어드레스 디코더(121)에 전송하며, 어드레스 디코더(121)는 인에이블 신호를 생성하여 지정된 FIFO 메모리로 전달한다. 이로 인해, 출력선 결정부(105)에 의해 결정된 출력선으로 할당된 FIFO 메모리가 분리부(106B)에 의해 분리된 페이로드를 저장할 수 있게 된다.
도 16은 본 발명의 제12 실시예에 따른 디멀티플렉서(100M)의 구성을 도시한 도면이다. 도 15에 도시된 디멀티플렉서(100L)는 출력 버퍼 메모리의 구성을 포함하는 반면에, 본 실시예의 디멀티플렉서(100M)는 반도체 메모리, 하드 디스크 드라이브 등에 의해 구현되는 단일 출력 버퍼 메모리(123)를 구비한다. 출력 버퍼 메모리(123)는 메모리 영역(123a, 123b, 123c) 등의 구성을 포함한다. 원하는 페이로드는 시프트 레지스터(102)로부터 수신된 비트 스트림 STM으로부터 분리부(106C)에 의해 분리되어, 출력선 결정부(105)에 의해 결정된 출력선에 할당된 대응 메모리 영역 내에 저장된다. 그 후 출력 버퍼 메모리(123)에 저장된 비디오 또는 오디오 데이터는 단일 매체 처리부(122)에서 디코딩된다.
본 실시예에서, 출력 버퍼 메모리(123)는 페이로드 뿐만 아니라 분리부(106C)로부터의 메모리 어드레스 데이터도 수신한다. 메모리 어드레스 데이터로 인해, 분리부(106C)로부터 수신된 페이로드가, 출력선 결정부(105)에 의해 결정된 출력선에 할당된 대응 메모리 영역 내에 저장될 수 있게 된다.
도 17은 본 발명의 제13 실시예에 따른 디멀티플렉서(100N)의 구성을 도시한 도면이다. 디멀티플렉서(100N)는, 외부 CPU로부터 호스트 인터페이스(115)를 통해 마이크로-코드를 수신하기 위한 명령 메모리(111)를 구비한다. 그 밖의 다른 구성 요소는 도 1에 도시된 디멀티플렉서(100A)의 구성 요소와 동일하다.
명령 메모리(111)는 서로 다른 유형의 멀티플렉싱 포맷에 할당된 모든 마이크로-코드를 저장할 수도 있다. 그러나, 명령 메모리(111)는 크기 및 제조 비용을 증가시키는 반면에, 재기록 기능이 없으므로, 다용도면에서 바람직하지 못하다. 본 실시예의 디멀티플렉서(100N)는, 멀티플렉싱 포맷이 변경될 때마다, 대응 마이크로-코드가 외부 CPU로부터 명령 메모리(111)에 다운로드될 수 있게 해준다. 예를 들면, 멀티플렉싱 포맷이 사용자에 의해 DVD 포맷에서 DVB 포맷으로 변경되면, DVB 포맷에 대한 마이크로-코드가 호스트 인터페이스(115)를 통해 외부 CPU로부터 명령 메모리(111)에 다운로드된다.
도 18은 본 발명의 제14 실시예에 따른 디멀티플렉서(100P)의 구성을 도시한 도면이다.
디멀티플렉서(100P)는, 도 2에 도시된 디멀티플렉서(100B)의 연상 메모리(CAM)와 유사한 연상 메모리(CAM)에 의해 구현되는 출력선 결정부(105)을 구비한다. 이에 따라, 연상 메모리가 헤더 내의 패킷 ID에 의해 액세스됨에 따라, 이에 포함된 선행 연속 카운트 데이터가 출력선과의 연속성 검사를 위해 픽업될 수 있게 된다.
도 4에 도시된 디멀티플렉서(100C)와 유사한 디멀티플렉서(100P)로 인해, 출력선 결정부(105)의 내장 메모리가 외부 CPU로부터 호스트 인터페이스(115)를 통해 재기록될 수 있게 된다. 따라서, 외부 CPU가, 비트 스트림 STM을 구성하는 비트 스트림 내의 패킷의 상세 정보를 수신 및 분석함에 따라, 이 외부 CPU의 출력선 결정부(105)의 내장 메모리에 콘텐츠를 재기록할 수 있게 된다.
디멀티플렉서(100P)는, 도 5에 도시된 디멀티플렉서(100D)의 것과 유사한, 각 패킷의 길이를 관리하기 위한 카운터로서 동작하는 레지스터(116)와, 도 7에 도시된 디멀티플렉서(100F)의 것과 유사한, 패킷간의 연속성을 검출하기 위한 연속성 검출기(117)와, 도 6에 도시된 디멀티플렉서(100E)의 것과 유사한, 연산 논리 장치(ALU)에 의해 구현되는 연산부(104)을 포함한다.
도 8에 도시된 디멀티플렉서(100G)와 유사한 디멀티플렉서(100P)는 비트를 조작하기 위한 비트 조작 유닛(118)도 포함한다. 이 비트 조작 유닛(118)으로 인해, 헤더 내의 임의의 원하는 부분이, 에러 검사를 위해 연산부(104)에서 검사되기 전에 용이하게 추출될 수 있게 된다.
도 11에 도시된 디멀티플렉서(100J)와 유사한 디멀티플렉서(100P)는, 입력 단자(101)와 시프트 레지스터(102) 사이에 연결되어 입력 단자(101)에서 수신된 비트 스트림 STM을 일시적으로 저장하기 위한 입력 버퍼(119)도 포함한다. 입력 버퍼(119)에서, 판독 동작은 내부 클럭 신호의 타이밍으로 수행되며, 기록 동작은, 입력 단자(101)에서 수신된 비트 스트림 STM의 전송 속도와 동기하는 외부 클럭 신호의 타이밍으로 수행된다. 비트 스트림 STM을 수신하는 입력 버퍼(119)의 타이밍에서, 입력 버퍼(119)로부터의 데이터 판독이 수행되고 시프트 레지스터(102)가 시프트되며, 이에 따라 원치 않는 데이터가 시프트 레지스터(102)를 통해 전송되는 것을 방지할 수 있게 된다.
도 13에 도시된 디멀티플렉서(100K)와 유사한 디멀티플렉서(100P)는 엔디안 변경 기능을갖는 분리부(106D)도 또한 포함한다. 분리부(106D)는, 비디오 또는 오디오 데이터의 비트 스트림을 디코딩하기 위한 디코더의 넘버링 방법에 따라 엔디안을 변경할 수 있다.
도 15에 도시된 디멀티플렉서(100L)와 유사한 디멀티플렉서(100P)는, 다수의 출력 버퍼 메모리로서 출력 버퍼 메모리로 동작하는 FIFO 메모리(120a, 120b, 120c) 등의 구성도 포함한다. 원하는 페이로드는, 시프트 레지스터(102)로부터 수신된 비트 스트림 STM으로부터 분리부(106D)에 의해 분리되어, 출력선 결정부(105)에 의해 결정된 출력선에 할당된 대응 FIFO 메모리에 저장된다. 그 후, FIFO 메모리에 저장된 페이로드의 비디오 또는 오디오 데이터는 단일 매체 처리부(122)에 수신되어 디코딩된다.
도 17에 도시된 디멀티플렉서(100N)와 유사한 디멀티플렉서(100P)로 인해, 외부 CPU로부터 호스트 인터페이스(115)를 통해 수신된 마이크로-코드가 명령 메모리(111) 내에 기록될 수 있게 된다. 따라서, 멀티플렉싱 포맷이 변경될 때마다, 대응 마이크로-코드가 외부 CPU로부터 명령 메모리(111)로 다운로드된다. 이에 따라, 명령 메모리(111)의 메모리 용량의 증가로 인한 비용 상승이 방지되고, 상이한 유형의 멀티플렉싱 포맷이 동일하게 처리될 수 있게 된다.
전술한 실시예에서, 명령 메모리(111)로부터 판독된 마이크로-코드는, 한 번에 하나 이상의 구성 요소를 작동시키기 위한 제어 신호(명령)를 생성하는 데에 사용된다. 보다 구체적으로는, 명령은 시퀀셜이 아니라 병렬로 수행된다.
예를 들면, 도 17에 도시된 디멀티플렉서(100N)에서 시퀀셜 명령의 사용에 의해 DVB 패킷을 처리하는 절차는 이하와 같은 단계를 포함한다.
(1) 수신된 데이터를 시프트 레지스터에 등록하는 단계(시프트 명령);
(2) 수신된 데이터가 "47"인지 여부를 조사하는 단계(비교 명령);
(3) 단계 (2)에서 "예"로 판정된 경우 단계(4)로 진행하며 "아니오"로 판정된 경우 단계 (1)로 돌아가는 단계(분기 명령);
(4) 다른 데이터를 등록하는 단계(시프트 명령);
(5) 에러에 대한 "transport_error_indicator"를 검사하는 단계(비교 명령);
(6) 단계 (5)에서 "예"로 판정된 경우 데이터를 폐기하며, "아니오"로 판정된 경우 단계 (7)로 진행하는 단계(분기 명령);
(7) "payload_unit_start_indicator"를 다운로드하는 단계(로드 명령);
(8) 또 다른 데이터를 등록하는 단계(시프트 명령);
(9) PID 데이터를 다운로드하는 단계(로드 명령);
(10) 등록을 위한 PID 데이터를 검사하는 단계(PID 비교 명령);
(11) 패킷 길이의 나머지로 카운터를 설정하는 단계(로드 명령);
(12) 단계 (10)에서 "예'로 판정한 경우, 단계 (13)으로 진행하며, "아니오"로 판정한 경우 데이터를 폐기하는 단계(분기 명령);
(13) 또 다른 데이터를 등록하는 단계(시프트 명령);
(14) 패킷 길이로부터 1을 감산하는 단계(감산 명령);
(15) 스크램블링을 위한 "transport_scrambling_control"를 조사하는 단계(비교 명령);
(16) 단계 (15)에서 스크램블링으로 판정된 경우, 데이터를 폐기하고 스크램블링으로 판정되지 않은 경우 단계 (17)로 진행하는 단계(분기 명령);
(17) "adaptation_field_control"를 다운로드하는 단계(로드 명령);
(18) 단계 (17)에서 "00"을 찾은 경우 데이터를 폐기하고 "00"을 찾지 못한 경우 단계 (19)로 진행하는 단계(분기 명령);
(19) "continuity_counter"를 다운로드하는 단계(로드 명령);
(20) 선행하는 "continuity_counter"와 비교하는 단계(연속성 조사 명령);
(21) 단계 (20)에서 연속성이 없는 것으로 판정된 경우 데이터를 폐기하고 연속성을 찾은 경우 단계 (22)로 진행하는 단계(분기 명령); 및
(22) 이하의 단계를 실행하는 단계.
한편, 이하에는 도 17에 도시된 디멀티플렉서(100N)에서의 병렬 명령의 사용에 의해 DVB 패킷을 처리하는 절차를 나타낸다.
(1) 수신된 데이터를 시프트 레지스터에 등록하는 단계(시프트 명령);
(2) 다른 데이터를 등록하면서, 선행하는 데이터가 "47"인지 여부를 조사하여 "예"일 경우 단계 (3)으로 진행하고 "아니오"일 경우 단계 (2)를 반복하는 단계(시프트 명령 및 비교/분기 명령);
(3) 에러 검사를 위한 "transport_error_indicator"를 조사하여 에러일 경우 데이터를 폐기하고 그렇지 않을 경우 단계 (4)로 진행하는 단계(비교/분기 명령);
(4) 또 다른 데이터를 등록하고 "payload_unit_start_indicator"를 다운로드하는 단계(시프트 명령 및 로드 명령);
(5) PID 데이터를 다운로드하는 단계(로드 명령);
(6) PID 데이터를 조사하면서, 패킷 데이터의 나머지로 카운터를 설정하는 단계(PID 비교 명령 및 로드 명령);
(7) 또 다른 데이터를 등록하면서, 패킷 길이로부터 1을 감산하고 단계 (6)에서 "예"로 판정된 경우 단계 (8)로 진행하고, "아니오"로 판정된 경우 데이터를 폐기하는 단계(시프트 명령, 감산 명령 및 분기 명령);
(8) "transport_scrambling_control"를 조사하고 스크램블링으로 판정된 경우 데이터를 폐기하고 그렇지 않은 경우 단계 (9)로 진행하는 단계(분기 명령);
(9) "adaptation_field_control"를 다운로드하는 단계(로드 명령);
(10) 단계 (9)에서 "00"을 찾은 경우 데이터를 폐기하고 "00"을 찾지 못한 경우 단계 (11)로 진행하는 단계(분기 명령);
(11) "continuity_counter"를 다운로드하는 단계(로드 명령);
(12) 선행하는 "continuity_counter"와 비교하는 단계(연속성 조사 명령);
(13) 또 다른 데이터를 등록하고, 패킷 길이에서 1을 감산하고, 단계 (12)에서 연속성이 없는 것으로 판정한 경우 데이터를 폐기하고, 연속성을 찾은 경우 단계 (14)로 진행하는 단계(시프트 명령, 감산 명령, 및 분기 명령); 및
(14) 이하의 단계를 실행하는 단계.
명령이 병렬로 전송되기 때문에, 실행 단계 수가 현저하게 감소될 수 있다. 이로 인해, 디멀티플렉싱 처리가 고속으로 수행될 수 있을 뿐만 아니라, 더 작은 명령 메모리(111) 영역 내에 마이크로-코드가 저장될 수 있게 된다. 따라서, 명령 메모리(111)의 크기가 감소될 수 있으며, 하드웨어 구성의 전반적인 비용이 최소화될 것이다.
본 발명에 따르면, 마이크로-코드의 저장을 위해 명령 메모리가 제공된다. 마이크로-코드는 명령 메모리로부터 순서대로 판독되어 각 구성요소의 동작을 제어하는 데에 사용된다. 이에 따라, 명령 메모리로부터 판독된 마이크로-코드를 변경함으로써 서로 다른 유형의 멀티플렉싱 포맷이 조정될 수 있으며, 이에 따라 디멀티플렉서의 회로 구성의 감소 및 비용 절감을 행할 수 있게 된다.

Claims (14)

  1. 소정의 방식으로 다중화된 서로 다른 포맷의 패킷들을 갖는 입력 디지털 데이터로부터 소망하는 패킷들을 출력용으로 분리하는 디멀티플렉서에 있어서,
    상기 입력 디지털 데이터를 수신하는 데이터 입력부;
    상기 데이터 입력부에 수신된 상기 입력 디지털 데이터를 기억 및 전송하는 제1 기억부(하나의 시프트 레지스터);
    상기 제1 기억부에 기억된 상기 입력 디지털 데이터로부트 패킷들의 헤더를 추출 및 기억하는 제2 기억부(일 군의 레지스터);
    상기 제2 기억부에 기억되는 상기 패킷들의 헤더를 해석하는 연산부;
    상기 제2 기억부에 기억되는 상기 패킷들의 헤더에 포함되는 패킷 식별자로부터 상기 패킷들의 출력선(出力先; output destination)을 결정하는 출력선 결정부;
    상기 연산부의 연산 결과 및 상기 출력선 결정부의 결정 결과에 응답하도록 배치되어, 상기 제1 기억부에서 수신된 상기 입력 디지털 데이터로부터 소망하는 패킷들을 분리하는 분리부;
    각각의 다중화 포맷에서의 제어 동작을 선택하기 위해 제공되는 마이크로-코드들을 기억하는 명령 메모리;
    상기 명령 메모리에 기억되는 상기 마이크로-코드의 실행 어드레스를 결정하는 카운터;
    상기 카운터에 의해 결정된 실행 어드레스에 의해 상기 명령 메모리에서 독출되는 상기 마이크로-코드에 의해 상기 각 부의 동작을 제어하는 제어부; 및
    상기 제1 기억부에 기억되는 상기 입력 디지털 데이터에서 타이밍 데이터를 추출하고, 상기 타이밍 데이터에 의해 시스템 클럭을 제어하는 시스템 클럭 제어부
    를 포함하는 것을 특징으로 하는 디멀티플렉서.
  2. 제1항에 있어서,
    상기 출력선 결정부는 연상 메모리(contents addressable memory)인 것을 특징으로 하는 디멀티플렉서.
  3. 제1항에 있어서,
    상기 출력선 결정부의 내장 메모리에 상기 출력선을 결정하는 데이터를 기록하는 데이터 기록 수단을 더 포함하는 것을 특징으로 하는 디멀티플렉서.
  4. 제1항에 있어서,
    상기 제2 기억부는 상기 입력 디지털 데이터에 다중화된 각 패킷의 길이를 관리하는 카운터로서 동작하는 레지스터를 포함하는 것을 특징으로 하는 디멀티플렉서.
  5. 제1항에 있어서,
    상기 연산부는 산술 논리 유닛(arithmetic logic unit)인 것을 특징으로 하는 디멀티플렉서.
  6. 제1항에 있어서,
    상기 연산부는 상기 입력 디지털 데이터내의 패킷들 사이 연속성을 검출하는 전용 회로를 포함하는 것을 특징으로 하는 디멀티플렉서.
  7. 제1항에 있어서,
    상기 연산부는 상기 입력 디지털 데이터내의 각 패킷의 헤더에 비트 조작 처리를 수행하여 상기 제2 기억부에 기억하는 전용 회로를 포함하는 것을 특징으로 하는 디멀티플렉서.
  8. 제1항에 있어서,
    상기 제어부는 상기 명령 메모리에서 독출되는 마이크로-코드로부터 하나 또는 복수의 부분을 동시에 동작시키는 제어 신호를 생성하는 것을 특징으로 하는 디멀티플렉서.
  9. 제1항에 있어서,
    상기 데이터 입력부는 상기 입력 디지털 데이터를 임시로 저장하는 입력 버퍼를 포함하는 것을 특징으로 하는 디멀티플렉서.
  10. 제9항에 있어서,
    상기 입력 버퍼는 상기 입력 버퍼에 싱기 입력 디지털 데이터가 수신될 때, 상기 제1 기억부의 시프트 동작과 동기하여 데이터를 독출하는 것을 특징으로 하는 디멀티플렉서.
  11. 제1항에 있어서,
    상기 출력선은 상기 분리부에 의해 분리되는 패킷들을 기억하는 복수의 메모리를 포함하는 것을 특징으로 하는 디멀티플렉서.
  12. 제1항에 있어서,
    상기 출력선은 상기 분리부에 의해 분리되는 패킷들을 각각 기억하는 기억 영역 어레이를 구비하는 단일의 버퍼 메모리인 것을 특징으로 하는 디멀티플렉서.
  13. 제1항에 있어서,
    상기 분리부는 바이트 엔디안(byte endian) 변경 수단을 포함하는 것을 특징으로 하는 디멀티플렉서.
  14. 제1항에 있어서,
    상기 명령 메모리에 상기 마이크로-코드를 기록하는 데이터 기록 수단을 더포함하는 것을 특징으로 하는 디멀티플렉서.
KR1020010022302A 2000-04-25 2001-04-25 디멀티플렉서 KR20010098863A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000124795A JP2001308921A (ja) 2000-04-25 2000-04-25 デマルチプレクサ
JP2000-124795 2000-04-25

Publications (1)

Publication Number Publication Date
KR20010098863A true KR20010098863A (ko) 2001-11-08

Family

ID=18634872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010022302A KR20010098863A (ko) 2000-04-25 2001-04-25 디멀티플렉서

Country Status (4)

Country Link
US (1) US6961338B2 (ko)
EP (1) EP1158783A2 (ko)
JP (1) JP2001308921A (ko)
KR (1) KR20010098863A (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149971A1 (en) * 2002-02-04 2003-08-07 Coaxmedia, Inc. Method for transmitting frames with both data and a polling request
KR100460774B1 (ko) * 2002-10-10 2004-12-09 매그나칩 반도체 유한회사 어드레스 서브샘플링 장치 및 그 방법과 이미지센서 및이미지센서의 어드레스 서브샘플링 방법
US7499469B2 (en) * 2003-01-13 2009-03-03 Broadcom Corporation Method and system for generating digital video broadcast (DVB) transport stream from direct satellite system (DSS) transport stream
JP2005128888A (ja) * 2003-10-24 2005-05-19 Hitachi Ltd コマンド処理装置及びコマンド処理装置の制御方法
US8199781B2 (en) 2004-12-14 2012-06-12 Samsung Electronics Co., Ltd Device and method for demultiplexing received transport stream in digital broadcasting receiver
JP5072578B2 (ja) * 2007-12-21 2012-11-14 キヤノン株式会社 ヘッド素子基板、記録ヘッド、及び記録装置
KR20090099734A (ko) * 2008-03-18 2009-09-23 삼성전자주식회사 스트림 기반의 인터페이스 시스템 및 그 제어 방법
DE102008050988A1 (de) * 2008-09-01 2010-03-04 Gerd Reime Identifikationselement mit einem optischen Transponder
JP5474522B2 (ja) * 2009-01-14 2014-04-16 ギガフォトン株式会社 極端紫外光源システム
JP6738687B2 (ja) * 2016-08-25 2020-08-12 株式会社ディスコ パッケージウエーハの加工方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365519A (en) * 1991-03-05 1994-11-15 Hitachi, Ltd. ATM switch1ng system connectable to I/O links having different transmission rates
US5299320A (en) * 1990-09-03 1994-03-29 Matsushita Electric Industrial Co., Ltd. Program control type vector processor for executing a vector pipeline operation for a series of vector data which is in accordance with a vector pipeline
DE69230510T2 (de) * 1991-03-28 2000-09-14 Hughes Electronics Corp Bidirektionaler und programmierbarer E/A-Treiber
DE69229324T2 (de) * 1991-10-29 2000-02-24 Advanced Micro Devices Inc Arithmetik-Logik-Einheit
MA23381A1 (fr) * 1993-12-03 1995-07-01 Scientific Atlanta Architecture de recepteurs de donnees multi-services
EP0680179B1 (en) * 1994-04-28 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Multicasting apparatus
JPH07321815A (ja) * 1994-05-24 1995-12-08 Nec Corp 共有バッファ型atmスイッチおよびその同報制御方法
US5602920A (en) * 1995-05-31 1997-02-11 Zenith Electronics Corporation Combined DCAM and transport demultiplexer
US5761453A (en) * 1995-12-07 1998-06-02 Apple Computer, Inc. Method and system for increasing the throughput of serial data in a computer system
FR2743245B1 (fr) * 1995-12-29 1998-01-23 Thomson Multimedia Sa Dispositif de demultiplexage
US5950222A (en) * 1996-03-14 1999-09-07 Sanyo Electric Co., Ltd. Microcomputer using a non-volatile memory
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
US6414726B1 (en) * 1996-11-01 2002-07-02 Texas Instruments Incorporated Device for identifying packets of digital data and a receiver for digital television signals equipped with such a device
KR100232164B1 (ko) * 1997-02-05 1999-12-01 구자홍 트랜스포트 스트림의 다중.분리장치
JP3356203B2 (ja) * 1997-06-09 2002-12-16 日本電気株式会社 Mpeg2トランスポートストリーム分離方法と回路
US6097721A (en) * 1997-08-04 2000-08-01 Next Level Communications Method and apparatus for identifying signals for a set of communication devices in a signal stream having signals for a number of different sets of communication devices
US6275507B1 (en) * 1997-09-26 2001-08-14 International Business Machines Corporation Transport demultiplexor for an MPEG-2 compliant data stream
JP3094973B2 (ja) * 1997-11-06 2000-10-03 日本電気株式会社 信号同期検出回路
US6115356A (en) * 1997-12-18 2000-09-05 Advanced Micro Devices, Inc. Apparatus and method for generating flow control frames in a workgroup switch based on traffic contribution from a network switch port
JP3872196B2 (ja) * 1998-01-09 2007-01-24 株式会社ルネサステクノロジ マイクロコンピュータ
US6463059B1 (en) * 1998-12-04 2002-10-08 Koninklijke Philips Electronics N.V. Direct memory access execution engine with indirect addressing of circular queues in addition to direct memory addressing
US6362990B1 (en) * 1999-09-10 2002-03-26 Sibercore Technologies Three port content addressable memory device and methods for implementing the same
US6728255B1 (en) * 1999-10-29 2004-04-27 Advanced Micro Devices, Inc. Apparatus and method for storing min terms in a network switch port memory for identifying data packet types in a real time
US6778533B1 (en) * 2000-01-24 2004-08-17 Ati Technologies, Inc. Method and system for accessing packetized elementary stream data
US6768716B1 (en) * 2000-04-10 2004-07-27 International Business Machines Corporation Load balancing system, apparatus and method

Also Published As

Publication number Publication date
JP2001308921A (ja) 2001-11-02
US20020003816A1 (en) 2002-01-10
EP1158783A2 (en) 2001-11-28
US6961338B2 (en) 2005-11-01

Similar Documents

Publication Publication Date Title
JP3641336B2 (ja) データ分離装置
US6654389B1 (en) System and method for searching patterns in real-time over a shared media
KR100555658B1 (ko) 스트림 디코드 장치
KR20010098863A (ko) 디멀티플렉서
EP0905983A2 (en) Data match detecting apparatus, and data selecting apparatus
KR100513907B1 (ko) 복수의 상호 관련된 오브젝트들의 주기적 전송방법
KR100390841B1 (ko) 피아이디 검출을 고속화하기 위한 피아이디 저장 및 비교장치 및 방법
US6584069B1 (en) Packet filtering apparatus that applies a plurality of filtering conditions including different comparison criteria to a single packet
US7590117B2 (en) Multichannel processor
JP4750730B2 (ja) データ解析装置、及びデータ解析方法
US20070223538A1 (en) System and method for using generic comparators with firmware interface to assist video/audio decoders in achieving frame sync
US6868096B1 (en) Data multiplexing apparatus having single external memory
US6792006B1 (en) Data multiplexing device multiplexing transport stream generated from encoded data
US8135046B2 (en) Method and apparatus for demultiplexing, merging, and duplicating packetized elementary stream/program stream/elementary stream data
KR20050081416A (ko) 디지털 티브이의 시스템 복호화 장치
US8571053B2 (en) Method and system for architecture of a fast programmable transport demultiplexer using double buffered approach
US8264960B2 (en) Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine
JP3564145B2 (ja) 符号化信号再生装置
JP2005045775A (ja) データ一致検出装置、データ一致検出方法、データ選別装置
EP1241873A1 (en) Storage of digital data
US20060268942A1 (en) Method and apparatus for demultiplexing, merging, and duplicating packetized elementary stream/program stream/elementary stream data
JP3916615B2 (ja) 多重符号化信号再生装置
US20070248318A1 (en) System and method for flexible mapping of AV vs record channels in a programmable transport demultiplexer/PVR engine
US6788711B1 (en) Demultiplexer
US8098657B2 (en) System and method for providing data commonality in a programmable transport demultiplexer engine

Legal Events

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