KR20040028727A - 멀티포맷 트랜스포트 스트림 디코더 - Google Patents

멀티포맷 트랜스포트 스트림 디코더 Download PDF

Info

Publication number
KR20040028727A
KR20040028727A KR10-2003-7011770A KR20037011770A KR20040028727A KR 20040028727 A KR20040028727 A KR 20040028727A KR 20037011770 A KR20037011770 A KR 20037011770A KR 20040028727 A KR20040028727 A KR 20040028727A
Authority
KR
South Korea
Prior art keywords
packet data
data
packet
transport stream
processing
Prior art date
Application number
KR10-2003-7011770A
Other languages
English (en)
Other versions
KR100898690B1 (ko
Inventor
오카모토사토시
고토쇼이치
야마다미키히코
미조바타노리히코
Original Assignee
마쯔시다덴기산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마쯔시다덴기산교 가부시키가이샤 filed Critical 마쯔시다덴기산교 가부시키가이샤
Publication of KR20040028727A publication Critical patent/KR20040028727A/ko
Application granted granted Critical
Publication of KR100898690B1 publication Critical patent/KR100898690B1/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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1033Signalling gateways
    • H04L65/104Signalling gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • H04L65/103Media gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1106Call signalling protocols; H.323 and related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • H04N21/43853Multiplex stream processing, e.g. multiplex stream decrypting involving multiplex stream decryption
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

각각 다른 포맷의 제 1 트랜스포트 스트림에 대해 소망하는 처리를 실시하여 제 2 트랜스포트 스트림을 생성하는 멀티포맷 트랜스포트 스트림 디코더에 있어서, 처리요구 정보입력기(APR)는 처리대상 패킷 데이터(Pi)와 처리내용을 나타내는 처리요구정보(ScW)를 입력하고, 스트림 식별정보 부여기(TSRi)는 제 1 트랜스포트 스트림(TSi)에 스트림 식별정보(TSID)를 부여하고, 패킷 데이터 유지식별기(DBA)는 제 1 패킷 데이터(Pi)를 각각 유지하고, 또한 당해 제 1 패킷 데이터(Pi)의 스트림 식별정보(TSIDe) 및 패킷 데이터 식별정보(PIDe)를 처리요구정보(ScW)와 비교하여 처리대상인지를 판단하는 것을 특징으로 한다.

Description

멀티포맷 트랜스포트 스트림 디코더{MULTI-FORMAT TRANSPORT STREAM DECODER}
디지털 컨텐츠에 대해서 여러가지 처리나 편집을 실시하여 부차 이용하는 요구는 종래에는 방송국과 같은 컨텐츠 제작 또는 신호 분배원에만 가능했다. 그러나, 최근의 디지털 기술의 진보에 의해, 인프라 스트럭쳐로서의 디지털 신호분배 시스템의 질 및 양은 나날이 충실해지고 있다. 즉, 디지털 컨텐츠를 제공하는 트랜스포트 스트림의 충실, 사용자에 의한 처리에 필요한 하드웨어의 성능 상승, 및 그에 의한 비용의 감소에 의해, 종래에는 방송국 등의 시설에 의해서만 실시되고 있던 트랜스포트 스트림의 편집이나 트랜스포트 스트림을 구성하는 패킷 데이터의편집을 사용자측에서 즐기기 위한 환경조건이 좋아지고 있다.
그러나, 사용자측에서 디지털 컨텐츠마다 원하는 처리를 실시하기 위해서는 차례차례 입력되어 가는 트랜스포트 스트림을 구성하는 패킷 데이터의 각각에 대해서 실시간으로 선택하고, 또한 선택된 패킷 데이터에 대해서 대응하는 처리 또는 가공을 실시하기 위한 처리수단의 액세스를 허가하는 수단이 필요하다.
그와 같은 수단의 일례로서 도 41에 트랜스포트 스트림을 구성하는 패킷 데이터의 각각을 실시간으로 식별하여 선택적으로 추출하는 기능을 갖는 종래 실현되어 있는 장치를 도시한다. 동(同) 도면에 도시한 트랜스포트 스트림 디코더는 복수의 프로그램의 각각을 형성하는 패킷 데이터열로 구성되는 단일 트랜스포트 스트림으로부터 특정의 단일 프로그램을 구성하는 패킷 데이터군만을 추출하여 AV 디코더에 출력한다. 즉, 후술하는 바와 같이 동 트랜스포트 디코더에는 단일 트랜스포트 스트림을 구성하는 복수의 패킷 데이터 내에서 특정의 패킷 데이터만을 선택적으로 추출하는 수단이 설치되어 있다.
당해 트랜스포트 스트림 디코더(TDAc)는 외부의 트랜스포트 스트림원(도시하지 않음)으로부터 공급되는 트랜스포트 스트림(TS)을 수취하는 스트림 입력기(500C), 프로그램 패킷 필터(PCF), 메인 메모리 제어기(700C), 메인 메모리(900C) 및 트랜스포트 스트림 디코더(TDAc) 전체의 동작을 제어하는 TD제어기(TDCc)를 포함한다.
도 41로 돌아가, 트랜스포트 스트림 디코더(TDAc)의 구성요소의 각각에 대해서 설명한다. 스트림 입력기(500C)는 외부의 트랜스포트 스트림원(도시하지 않음)으로부터 입력되는 트랜스포트 스트림(TS)을 내부에 구비한 입력 버퍼에 일시적으로 유지하고, 전송단위(TSd)마다 프로그램 패킷 필터(PCF)에 전송한다.
프로그램 패킷 필터(PCF)는 스트림 입력기(500C)로부터 전송단위(TSd)마다 전송되어 오는 전체 프로그램 컨텐츠 패킷 데이터(Pc)의 각각에 부여되어 있는 패킷 식별자(PID)에 기초하여, 관리 패킷 데이터(PcA)만을 선택적으로 출력하는 패킷 필터(1100_00)와, 특정 프로그램의 프로그램 영상 컨텐츠 패킷 데이터(PcV)만을 선택적으로 출력하는 패킷 필터(1100_01)와, 당해 특정 프로그램의 프로그램 음성 컨텐츠 패킷 데이터(PcS)만을 선택적으로 출력하는 패킷 필터(1100_02) 중 적어도 3개를 갖는다. 또 입력된 트랜스포트 스트림(TS)에 포함되는 전체 패킷 데이터(P)로부터 추출된, 관리 패킷 데이터(PcA)와 특정 프로그램의 컨텐츠를 형성하는 프로그램 컨텐츠 패킷 데이터(Pc(PcV, PcA))를 아울러 선택 단일 프로그램 패킷 데이터열(Pes)이라고 총칭한다.
상기한 바와 같이 프로그램 패킷 필터(PCF)에 포함되는 관리 패킷 데이터(PcA)의 추출용, 프로그램 영상 컨텐츠 패킷 데이터(PcV)의 추출용 및 프로그램 음성 컨텐츠 패킷 데이터(PcS)의 추출용 3종류의 패킷 필터의 각각을 식별할 필요가 있는 경우에는 각각 관리 패킷 필터(1100_00), 영상 패킷 필터(1100_01) 및 음성 패킷 필터(1100_02)로 나타내고, 식별할 필요가 없는 경우 또는 그것을 총칭하는 경우에는 단순히 패킷 필터(1100)로 나타낸다.
프로그램 패킷 필터(PCF)에는 추출하는 하나의 프로그램을 구성하는 컨텐츠의 종류수(γ(γ는 자연수))에 따라서, 즉 추출해야 할 프로그램 컨텐츠 패킷 데이터(Pc)의 종류수에 상당하는 γ개의 패킷 필터(1100_01~1100_0γ)와, 트랜스포트 스트림(TS)로부터 관리 패킷 데이터(PcA)를 추출하는 1개의 관리 패킷 필터(1100_00)의 합계(γ+1)개의 관리 패킷 필터(1100_00~1100_0γ)가 설치되어 있다. 설명의 간편화를 위해 본 예에서는 관리 패킷 필터(1100_00), 영상 패킷 필터(1100_01), 음성 패킷 필터(1100_02)의 3종류만을 갖는 경우에 대해서 설명한다.
트랜스포트 스트림(TS)에 포함되는 복수의 프로그램을 구성하는 프로그램 컨텐츠 패킷 데이터(Pc) 중, 관리 패킷 데이터(PcA(PAT, PMTI, PMT2, PMT3)), 프로그램 1을 구성하는 프로그램 영상 컨텐츠 패킷 데이터(PcV(Pc101_1, Pc101-2, …)) 및 프로그램 음성 컨텐츠 패킷 데이터(PcS(Pc111_1, Pc111_2, …))는 각각 트랜스포트 스트림 디코더(TDAc)에 도착한 순서대로 영상 패킷 필터(1100_01) 및 음성 패킷 필터(1100_02)에 의해 추출된다.
그리고, 추출된 프로그램 컨텐츠 관리표(PAT), 프로그램 컨텐츠 패킷 데이터 관리표(PMT1, PMT2 및 PMT3)와, 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc111_1, Pc101_2, Pc111_2, …)는 트랜스포트 스트림 디코더(TDAc)에 도착한 순서대로, 선택 단일 프로그램 패킷 데이터열(Pes)로서 메인 메모리 제어기(700C)에 출력된다. 이와 같이, 프로그램 패킷 필터(PCF)는 입력되는 트랜스포트 스트림(TS)의 패킷 데이터의 각각을 실시간으로 식별하고 선택적으로 추출하는 기능을 갖는다.
메인 메모리 제어기(700C)는 프로그램 패킷 필터(PCF)로부터 입력되는 선택 단일 프로그램 패킷 데이터열(Pes)을 전송 단위(TSd)마다 일시적으로 유지하고, 또한 메인 메모리(900C)를 제어하여 메인 메모리(900C)의 각각 다른 소정의 영역에 관리 패킷 데이터(PcA), 단일 프로그램 영상 컨텐츠 패킷 데이터열(PssV) 및 단일 프로그램 음성 컨텐츠 패킷 데이터열(PssS)마다 메인 메모리(900C)의 소정의 영역에 저장시킨다.
즉, 메인 메모리(900C)는 메인 메모리 제어기(700C)를 경유하여 프로그램 패킷 필터(PCF)로부터 입력되는 선택 단일 프로그램 패킷 데이터열(Pes)에 포함되는 각 패킷 데이터(P)를, 관리 패킷 데이터(PcA), 프로그램 영상 컨텐츠 패킷 데이터(PcV) 및 프로그램 음성 컨텐츠 패킷 데이터(PcA) 중 어느 것으로 선별하여, 관리 패킷 데이터(PcA), 단일 프로그램 영상 컨텐츠 패킷 데이터열(PssV) 및 단일 프로그램 음성 컨텐츠 패킷 데이터열(PssS)로서 저장한다.
또한, 메인 메모리 제어기(700C)는 메인 메모리(900C)로부터 단일 프로그램 영상 컨텐츠 패킷 데이터열(PssV) 및 단일 프로그램 음성 컨텐츠 패킷 데이터열(PssS)을 판독하여 전송단위(TSd)마다 일시적으로 유지하고, 또한 단일 프로그램 패킷 데이터열(Pss)로서 AV디코더(2000C)로 대표되는 외부기기에 출력한다.
또한, 트랜스포트 스트림 디코더(TDAc)는 상기한 각 구성 요소의 동작 상태를 나타내는 상태 신호(SrWC)를 생성하여 TD제어기(TDCc)에 출력한다. TD제어기(TDCc)는 상태신호(SrWC)에 기초하여, 트랜스포트 스트림 디코더(TDAc)의 각 구성요소의 동작을 제어하는 제어신호(ScWC)를 생성하여 트랜스포트 스트림 디코더(TDAc)에 출력한다.
이와 같이 하여 TD제어기(TDCc)는 트랜스포트 스트림 디코더(TDAc)의 동작전체를 제어하고, 트랜스포트 스트림 디코더(TDAc)에 입력되는 단일 트랜스포트 스트림(TS)으로부터 단일 프로그램을 구성하는 프로그램 컨텐츠 패킷 데이터(Pc)만을 입력된 순서대로 추출하고, 단일 프로그램 패킷 데이터열(Pss)로서 AV디코더(2000C) 등의 외부기기에 출력시킨다. AV디코더(2000C)는 입력되는 단일 프로그램 패킷 데이터열(Pss)에 포함되는 프로그램 영상 컨텐츠 패킷 데이터(PcV) 및 프로그램 음성 컨텐츠 패킷 데이터(PcS)를 순서대로로 디코드하여 영상음성신호(Sav)를 생성하여 사용자의 시청에 제공한다.
도 43에 트랜스포트 스트림 디코더(TDAc)에 의해, 도 42에 도시한 패킷 구성을 갖는 단일한 트랜스포트 스트림(TS)에 포함되는 3개의 프로그램으로부터 하나의 프로그램의 프로그램 컨텐츠 패킷 데이터(Pc(프로그램 영상 컨텐츠 패킷 데이터(PcV) 및 프로그램 음성 컨텐츠 패킷 데이터(PcS)))와 관리 패킷 데이터(PcA(PAT, PMT))만이 추출되어 구성되는 선택 단일 프로그램 패킷 데이터열(Pes)의 일례를 나타낸다.
본 예에서는 프로그램 1을 구성하는 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc111_1, Pc101_2, Pc111_2, …,) 및 이들을 나타내는 프로그램 컨텐츠 관리표(PAT)와 프로그램 컨텐츠 패킷 데이터 관리표(PMT1)만이 추출되어 추출 패킷 데이터열(Pse)로서, 프로그램 패킷 필터(PCF)로부터 메인 메모리 제어기(700C)에 출력된다.
또한, 지정 프로그램 이외의 프로그램 2 및 프로그램 3을 나타내는 프로그램 컨텐츠 패킷 데이터 관리표(PMT2 및 PMT3)가 추출되는 일이 있다. 이와 같이 입력되는 트랜스포트 스트림(TS)에 연속적으로 배열된 패킷 데이터(P)로부터 소정의 프로그램에 대응하는 패킷 데이터(P)만이 이산적으로 추출된다.
도 44에, 메인 메모리(900c)에서의 선택 단일 프로그램 패킷 데이터열(Pes)에 포함되는 프로그램 컨텐츠 패킷 데이터(Pc)의 각각의 축적상태의 일례를 나타낸다. 메인 메모리(900C)는 프로그램 영상 컨텐츠 패킷 데이터(PcV)인 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc101_2, Pc101_3, Pc101_4, …)를 저장하는 영상 패킷 저장 영역A(video)와, 프로그램 음성 컨텐츠 패킷 데이터(PcS)인 프로그램 컨텐츠 패킷 데이터(Pc111_1, Pc111_2, Pc111_3, Pc111_4, …)를 저장하는 음성 패킷 저장 영역A(audio)를 갖는다.
또한, 관리 패킷 데이터(PcA)의 구성요소인 프로그램 컨텐츠 관리표(PAT)의 정보를 저장하는 PAT저장영역A(PAT), 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 정보를 저장하는 PMT 저장 영역A(PMTα)을 갖는다. 구체적으로 말하면, 프로그램 1의 프로그램 컨텐츠 패킷 데이터 관리표(PMT1)는 프로그램 컨텐츠 패킷 데이터 관리표(PMT) 저장 영역A(PMT1)에 저장된다.
프로그램 영상 컨텐츠 패킷 데이터(PcV)인 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc101_2, Pc101_3, Pc101_4, …)가, 영상 패킷 저장 영역A(video)내에 서로 빈틈없이 저장됨으로써 단일 프로그램 영상 컨텐츠 패킷 데이터열(PssV)이 형성된다. 마찬가지로, 프로그램 음성 컨텐츠 패킷 데이터(PcS)인 프로그램 컨텐츠 패킷 데이터(Pc111_1, Pc111_2, Pc111_3, Pc111_4, …)가 음성패킷 저장영역A(audio) 내에 서로 빈틈없이 저장됨으로써, 단일 프로그램 음성 컨텐츠패킷 데이터열(PssS)이 형성된다.
이와 같이, 메인 메모리(900C)내에 구성된 단일 프로그램 영상 컨텐츠 패킷 데이터열(PssV) 및 단일 프로그램 음성 컨텐츠 패킷 데이터열(PssS)이 메인 메모리 제어기(700C)에 의해, 도 45에 예시한 바와 같은 단일 프로그램 패킷 데이터열(Pss)로서 판독되어, AV디코더(2000C)에 출력된다.
또한, 트랜스포트 스트림에 대해서는 공지의 지식으로 추측되지만, 본 명세서에서의 트랜스포트에 대해서 도 42를 참조하여 이하에 설명한다. 트랜스포트 스트림 디코더(TDAc)에 입력되는 단일한 트랜스포트 스트림(TS)에 대해서 설명한다. 트랜스포트 스트림(TS)은 도 42에서 각각이 하나의 테두리로서 표시되어 있는 복수의 패킷 데이터(P)로 구성된다. 이들 패킷 데이터(P)에는 각각에 고유의 패킷 식별자(Packet ID(PID))가 부여되어 각각의 식별에 제공된다. 또한, 이들 패킷 데이터(P)는 트랜스포트 스트림(TS)에 고유로 정해진 포맷으로 구성되어 있다.
이들의 패킷 데이터(P)는 α종류(α는 2이상의 정수)의 프로그램마다 그 컨텐츠를 형성하는 복수의 프로그램 컨텐츠 패킷 데이터(Pc)와, 프로그램마다 이들 프로그램 컨텐츠 패킷 데이터(Pc)의 패킷 식별자(PID)를 기술한 프로그램 컨텐츠 패킷 데이터 관리표(Program Map Table(PMT))와, 프로그램마다 대응하는 프로그램 컨텐츠 패킷 데이터 관리표(PMT)를 기술한 프로그램 컨텐츠 관리표(Program Association Table(PAT)) 등으로 분류된다.
이들 프로그램 컨텐츠 패킷 데이터(Pc)를 관리하는 정보를 갖는 프로그램 컨텐츠 관리표(PAT) 및 프로그램 컨텐츠 패킷 데이터 관리표(PMT)를, 관리 패킷 데이터(PcA)라 총칭한다. 또한, 도 42에서는 적어도 3개의 다른 프로그램 1, 프로그램 2 및 프로그램 3을 제공하는 경우(α≥3)의 트랜스포트 스트림(TS)의 구성이 예시되어 있다.
프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc101_2, …)는 프로그램 1의 영상 데이터이고, 프로그램 컨텐츠 패킷 데이터(Pc111_1, Pc111_2, …)는 프로그램 1의 음성 데이터이다. 마찬가지로, 프로그램 컨텐츠 패킷 데이터(Pc201_1, Pc201_2, …)는 프로그램 2의 영상 데이터이고, 프로그램 컨텐츠 패킷 데이터(Pc211_1, Pc211_2, …)는 프로그램 2의 음성 데이터이다.
또한, 프로그램 컨텐츠 패킷 데이터(Pc301_1, Pc301_2, …)는 프로그램 3의 영상 데이터이고, 프로그램 컨텐츠 패킷 데이터(Pc311_1, Pc311_2, …)는 프로그램 3의 음성 데이터이다. 상기한 바와 같이 영상 데이터를 갖는 프로그램 컨텐츠 패킷 데이터(Pc)를 프로그램 영상 컨텐츠 패킷 데이터(PcV)와, 음성 데이터를 갖는 프로그램 컨텐츠 패킷 데이터(Pc)를 프로그램 음성 컨텐츠 패킷 데이터(PcS)라고 각각 총칭한다.
또한, 제공할 수 있는 프로그램수(α)는 3으로 한정되지 않는 것은 물론이고, 제공하는 프로그램수에 대응하는 필요한 만큼의 프로그램 컨텐츠 패킷 데이터(Pc)가 트랜스포트 스트림(TS)에 포함된다. 또한, 프로그램 내용에 따라서는 영상이나 음성 이외의 정보(예를 들어, 문자정보)에 대응하는 프로그램 컨텐츠 패킷 데이터(Pc)도 포함되는 것도 동일하다.
더욱 상술하면, 트랜스포트 스트림(TS)은 프로그램 컨텐츠 패킷 데이터(Pc)간에 전송경로 및 처리상의 요인으로부터 정해진 빈도로 프로그램 컨텐츠 관리표(PAT)와 프로그램 컨텐츠 패킷 데이터 관리표(PMT)가 배열되어 구성된다. 도 42에서, 프로그램 1, 2 및 3의 전 3종류의 프로그램을 형성하는 복수의 프로그램 컨텐츠 패킷 데이터(Pc) 내에서 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc111_1, Pc201_1, Pc211_1, Pc301_1 및 Pc311_1) 전에, 프로그램 마다의 프로그램 컨텐츠 패킷 데이터(Pc)의 패킷 식별자(PID)를 기재한 프로그램 컨텐츠 패킷 데이터 관리표(PMT1, PMT2 및 PMT3)와 이들의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 각각의 패킷 식별자(PID)에 대응하는 프로그램을 나타내는 프로그램 컨텐츠 관리표(PAT)로 이루어진 관리 패킷 데이터(PcA)가 배치되어 있다.
또한, 본 명세서에서 동일한 부재나 신호는 공통의 숫자 또는 알파벳으로 구성되는 부호를 식별자로 붙여 표현하고, 동일한 부재나 신호여도 각각 식별자를 요하는 경우에는 당해 식별자에 추가로 숫자 또는 알파벳에 의한 접미사를 붙여 각각의 식별자로서 표현하는 것으로 한다. 따라서, 동일 부재 또는 신호에 있어서 각각 식별을 필요로 하지 않는 경우에는 식별자에 접미사를 붙이지 않고 표시하는 것으로 한다. 구체적으로 말하면, 프로그램 컨텐츠 패킷 데이터(Pc101)는 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc101_2, …Pc101_β(β는 임의의 자연수))의 총칭이다. 상기한 프로그램 컨텐츠 패킷 데이터(Pc111, Pc201, Pc211, Pc301 및 Pc401)에 대해서도 동일하다.
프로그램 컨텐츠 관리표(PAT)에는 상기 트랜스포트 스트림(TS)에 포함되는 전체 프로그램의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)가기술되어 있다. 즉, 프로그램 1의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 100이고, 프로그램 2의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 200이고, 프로그램 3의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 300이고, …, 프로그램 α의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 α00이라고 기술되어 있다.
또한, 프로그램 컨텐츠 패킷 데이터(Pc101_2, Pc111_2, Pc201_2, Pc211_2, PC301_2 및 Pc311_2)의 앞에는, 상기한 프로그램 컨텐츠 패킷 데이터 관리표(PMT1, PMT2 및 PMT3)와 프로그램 컨텐츠 관리표(PAT)로 이루어진 관리 패킷 데이터(PcA)가 다시 배치되어 있다. 또한, 트랜스포트 스트림(TS)이 4이상의 프로그램을 포함하는 (α≥4)의 경우에는 도 42에는 명시되어 있지 않지만, 관리패킷 데이터(PcA)에는 프로그램 컨텐츠 패킷데이터 관리표(PMT4~PMTα)가 포함되고, 트랜스포트 스트림(TS)에는 각각의 프로그램에 대응하는 프로그램 컨텐츠 패킷 데이터(Pc)가 포함되는 것은 물론이다.
트랜스포트 스트림(TS)에 포함되는 패킷 데이터(P)의 종류에 따라서, 관리 패킷 데이터(PcA)의 배치 빈도는 크게 다르다. 또한, 관리 패킷 데이터(PcA)는 반드시, 도 42에 예시한 바와 같이 패킷 데이터(P)의 한 덩어리로서 배치되는 것이라고는 한정되지 않는다. 경우에 따라서는, 관리패킷 데이터(PcA)의 구성단위인 프로그램 컨텐츠 관리표(PAT), 프로그램 컨텐츠 패킷 데이터 관리표(PMT) 및 프로그램 컨텐츠 패킷 데이터(Pc)의 각각의 사이 이외의 패킷 데이터(P)가 난입하여 배치되는 일도 있다.
상기와 같이 구성된 종래의 트랜스포트 스트림 디코더는 입력되는 트랜스포트 스트림이 단일한 경우, 당해 트랜스포트 스트림으로부터 동시에 단일한 프로그램만을 재생하여 사용자에게 제시하는 용도에 대해서는 충분하다. 왜냐하면, AV디코더는 입력되는 단일한 프로그램을 구성하는 단일 프로그램 패킷 데이터열(Pss)에 포함되는 패킷 데이터(P)를 입력되는 순서대로 디코드하면 좋기 때문이다.
또한, 이들의 패킷 데이터(P)는 모두, 입력되는 단일한 트랜스포트 스트림에 고유의 포맷으로 구성되어 있으므로, 동일한 포맷에 기초하여 디코드하면 좋다. 그러나, 상기한 트랜스포트 스트림 디코더에서는 이하에 크게 나누어지는 3종류의 프로그램의 재생형태에서, 재생한 프로그램을 동시에 사용자에게 제시할지의 여부에 관계없이 대응할 수 없다.
(재생형태 1)
단일한 트랜스포트 스트림만의 입력을 허가하는, 즉 스트림 입력기가 하나만 준비되는 경우로, 당해 트랜스포트 스트림으로부터 동시에 복수의 프로그램을 재생하는 경우.
(재생형태 2)
복수의 트랜스포트 스트림의 입력을 허가하는, 즉 입력되는 트랜스포트 스트림은 각각에 고유로 정해진 포맷에서 생성된 패킷 데이터로 구성되는 경우. 본 생성형태에서는 동시에 입력되는 트랜스포트 스트림이 복수인지 단수인지에 관계없이 이하에 분류하는 6종류의 재생형태로 세분된다.
재생형태 2-1: 복수의 트랜스포트 스트림의 각각으로부터 단일한 프로그램만을 재생하는 경우.
재생형태 2-2: 복수의 트랜스포트 스트림의 각각으로부터 동시에 복수의 프로그램을 재생하는 경우.
재생형태 2-3: 복수의 트랜스포트 스트림의 특정의 하나로부터 단일 프로그램만을 재생하는 경우.
재생형태 2-4: 복수의 트랜스포트 스트림의 특정의 하나로부터 동시에 복수의 프로그램을 재생하는 경우.
재생형태 2-5: 복수의 트랜스포트 스트림의 특정의 몇 개로부터 동시에 복수의 프로그램을 재생하는 경우.
재생형태 2-6: 복수의 트랜스포트 스트림의 특정의 몇 개로부터 단일한 프로그램만을 재생하는 경우.
(재생형태 3)
트랜스포트 스트림으로부터 추출된 선택 단일 프로그램 패킷 데이터열(Pes)에 포함되는 패킷데이터(P(Pc, PAT, PMT))의 단위에서의 데이터 처리를 필요로 하는 경우. 이 경우의 데이터 처리라는 것은 프로그램 컨텐츠 패킷 데이터(Pc), 프로그램 컨텐츠 관리표(PAT), 또는 프로그램 컨텐츠 패킷 데이터 관리표(PMT) 그 자체를 가공하거나, 패킷 데이터(P)마다 개별적으로 소정의 처리를 실시하는 경우 등이 포함된다.
이하에, 상기한 각 재생형태마다 종래의 트랜스포트 스트림 디코더를 적용할 수 없는 이유에 대해서 구체적으로 설명한다.
재생형태 1에서는 단일한 트랜스포트 스트림(TS)으로부터 동시에 재생되는 복수의 프로그램 중, 사용자가 원하는 특정의 프로그램을 사용자가 원하는 방법으로 제시할 필요가 있다. 이 경우, 적어도 선택 단일 프로그램 패킷 데이터열(Pes) 또는 단일 프로그램 패킷 데이터열(Pss)에 혼재하는 프로그램 컨텐츠 패킷 데이터(Pc)의 각각과 대응하는 프로그램과의 관계가 식별, 또한 관리되고, 상기 식별관리결과를 정보로서 이용할 수 있도록 준비되어 있지 않으면 안된다.
종래의 트랜스포트 스트림 디코더에서도 복수의 프로그램의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)를 추출하는 것은 상기한 바와 같이 가능하므로 단일한 트랜스포트 스트림(TS)에 어떠한 프로그램의 프로그램 컨텐츠 패킷 데이터(Pc)가 포함되어 있는지를 알 수 있다. 그러나, 프로그램 패킷 필터(PCF)에 입력되는 복수의 프로그램 컨텐츠 패킷 데이터(Pc)를 특정의 하나의 프로그램을 구성하는 프로그램 컨텐츠 패킷 데이터(Pc)의 패킷 식별자(PID)라는 항목만으로 단순하게 필터링하여 출력하고 있으므로, 당해 특정의 프로그램 이외의 프로그램에 각각 대응하는 프로그램 컨텐츠 패킷 데이터(Pc)는 선택 단일 프로그램 패킷 데이터열(Pes)내에는 존재하지 않는다. 당연히, 프로그램 컨텐츠 패킷 데이터(Pc)의 각각과 대응하는 프로그램과 식별관리결과의 정보는 획득되지 않는다.
재생형태 2에서는 트랜스포트 스트림마다 정해진 포맷으로 생성된 패킷 데이터로 구성되는 복수의 트랜스포트 스트림(TS)이 동시에 입력될 수 있다. 즉, 복수의 스트림 입력기의 각각에는 종류, 방식, 또는 서플라이어 등으로 대표되는 포맷이 다른 ε종류의 트랜스포트 스트림(TS1~TSε)이 공급된다.
이와 같은 상태에서 복수의 트랜스포트 스트림(TS1~TSε)의 각각으로부터 단일한 프로그램만을 재생하는 재생형태 2-1, 복수의 트랜스포트 스트림(TS1~TSε)의 특정의 하나로부터 단일한 프로그램만을 재생하는 재생형태 2-3 및 복수의 트랜스포트 스트림(TS1~TSε)의 특정의 몇 개로부터 단일한 프로그램만을 재생하는 재생형태 2-6 중 어느 것에서도, 재생되는 프로그램이 속하는 트랜스포트 스트림(TS)의 구별과, 선택단일 프로그램 패킷 데이터열(Pes) 또는 단일 프로그램 패킷 데이터열(Pss)에서의 프로그램 컨텐츠 패킷 데이터(Pc)와 트랜스포트 스트림(TS)의 관계의 식별과, 또한 식별된 트랜스포트 스트림(TS)마다의 패킷 데이터의 포맷의 식별이 필요하다. 그러나, 종래의 트랜스포트 스트림 디코더에 그와 같은 구별이나 식별을 할 수 없는 것은 상기한 바와 같다.
또, 복수의 트랜스포트 스트림(TS1~TSε)의 각각으로부터 동시에 복수의 프로그램을 재생하는 재생형태 2-2, 복수의 트랜스포트 스트림(TS1~TSε)의 특정의 하나로부터 동시에 복수의 프로그램을 재생하는 재생형태 2-4 및 복수의 트랜스포트 스트림(TS1~TSε)의 특정의 몇개로부터 동시에 복수의 프로그램을 재생하는 재생형태 2-5 중 어느 것에서도, 재생된 복수의 프로그램 내 유닛의 원하는 프로그램을 제시하기 위해서는 트랜스포트 스트림(TS1~TSε) 및 프로그램에 관하여 선택 단일 프로그램 패킷 데이터열(Pes)에 포함되는 전체 패킷 데이터(P)간의 관계 및 식별정보가 필요하다. 또한, 다른 트랜스포트 스트림(TS)을 구성하는 패킷 데이터(P(각각 다른 포맷으로 구성되어 있다))를 차례로, 상기 패킷 데이터(P)의 포맷에 따른 패턴으로 디코드할 필요가 있다. 그러나, 종래의 트랜스포트 스트림디코더에 그와 같은 식별을 할 수 없는 것은 상기한 바와 같다.
재생형태 3에 관해서는 트랜스포트 스트림(TS)에 포함되는 프로그램에 대응하는 패킷 데이터(P(Pc, PAT, PMT))의 각각에, 사용자의 요구에 따른 다른 처리를 실시하는 경우가 있다. 예를 들어, 어느 프로그램은 사용자에게 제시하기 위해 대응하는 프로그램 컨텐츠 패킷 데이터(Pc)를 단순하게 순서대로 출력하고, AV데이터(2000C)에 디코드시켜 모니터에 출력시킨다. 다른 프로그램은 외부의 기억장치에 기억시키기 위해, 그 기억장치 및 주변기기의 전송조건에 따라서 대응하는 프로그램 컨텐츠 패킷 데이터(Pc)를 포함한 새로운 트랜스포트 스트림(TSr)(도시하지 않음)을 구성하여 출력한다.
이 경우, 요구되는 전송조건에 따라서, 프로그램 컨텐츠 패킷 데이터(Pc)를 관리하여 새로운 트랜스포트 스트림(TSr)을 생성하기 위해서는 상기한 식별관리정보가 필요하다. 또한, 필요에 따라서 패킷 데이터(P) 그 자체에 가공을 실시하는 경우에도 대상이 되는 패킷 데이터(P)를 특정하고, 가공후의 패킷 데이터(P)를 올바르게 취급하기 위해서 상기한 식별관리정보가 필요하다. 이들의 조건은 처리할 패킷 데이터(P)의 포맷에 따라 전환할 필요가 있다. 그러나, 종래의 트랜스포트 스트림 디코더에 그와 같은 식별을 할 수 없는 것은 상기한 바와 같다.
상기한 바와 같이, 종래의 트랜스포트 스트림 디코더는 단일한 트랜스포트 스트림으로부터 단일한 프로그램을 재생하는 용도로는 적합하지 않다. 그러나, 단일한 트랜스포트 스트림에 포함되는 복수의 프로그램의 프로그램 컨텐츠 패킷 데이터(Pc)를 프로그램마다 식별할 수 없다. 또한, 단일한 트랜스포트 스트림이어도,패킷 디코더 처리장치에 입력될 수 있는 복수의 트랜스포트 스트림(TS1~TSε) 중 어느 것이 입력되어 있는지 알 수 없고, 또한 현재 입력되어 있는 트랜스포트 스트림(TS)을 구성하는 패킷 데이터의 포맷을 알 수 없으므로, 패킷 데이터에 대해서 원하는 처리를 실시할 수 없다.
복수의 트랜스포트 스트림이 입력될 때에는 프로그램 마다 프로그램 컨텐츠 패킷 데이터(Pc)를 식별할 수 없는 것에 더하여, 또한 트랜스포트 스트림의 구별, 트랜스포트 스트림과 재생하는 프로그램의 프로그램 컨텐츠 패킷 데이터의 관계를 인식할 수 없다. 또한, 입력되어 있는 트랜스포트 스트림을 구성하는 패킷 데이터의 포맷을 알 수 없으므로, 패킷 데이터에 대해서 원하는 처리를 실시할 수 없다.
이와 같이, 종래의 트랜스포트 스트림 디코더에서는 입력되는 트랜스포트 스트림이 단일 또는 복수별로 한정되지 않고, 복수의 프로그램을 재생 또는 패킷 데이터에 대해서 원하는 처리를 실시하는 용도로는 사용할 수 없다. 또, 복수의 트랜스포트 스트림이 입력되는 경우에는 단일한 프로그램을 재생하는 용도에도 사용할 수 없다.
또한, 상기한 어떤 재생형태에서도, 단일 및 복수별로 한정되지 않고, 입력되는 트랜스포트 스트림(TS)으로부터 재생되는 복수의 프로그램의 각각의 컨텐츠에 따른 처리를 실시하기 위해서는 패킷 필터마다 패킷 데이터의 포맷에 적응한 처리를 실시하는 장치에 대응하는 인터페이스를 설치할 필요가 있다. 그 때문에 장치 규모의 거대화, 구조의 복잡화, 처리 부하의 증대, 사양 또는 요구처리의 변경에 대응불가, 더 나아가서는 비용의 증대라는 여러 문제를 초래한다.
본 발명은 상기의 문제를 감안하여, 입력되는 트랜스포트 스트림마다 다른 포맷으로 생성된 패킷 데이터의 각각을 소정의 처리대상인지를 실시간으로 식별하고, 처리대상인 경우에는 당해 패킷 데이터의 포맷에 적합한 처리를 실시하는 멀티포맷 패킷 데이터 처리장치를 제공하는 것을 목적으로 한다.
본 발명은 각각 다른 포맷으로 생성된 복수의 트랜스포트 스트림을 입력으로 하고, 당해 입력된 복수의 트랜스포트 스트림에 원하는 처리를 실시하여 새로운 트랜스포트 스트림을 생성하는 멀티포맷 트랜스포트 스트림 디코더에 관한 것이다. 더욱 상술하면, 본 발명은 차례차례 입력되는 다른 포맷의 트랜스포트 스트림을 구성하는 패킷 디코더가 처리대상인지의 여부를 실시간으로 식별하고, 처리대상인 경우에는 당해 패킷 데이터에 고유의 포맷에 따라 원하는 처리를 실시하는 멀티포맷 트랜스포트 스트림 디코더에 관한 것이다.
도 1은 본 발명의 실시형태에 관한, 멀티포맷 패킷 데이터의 구조를 도시하는 블럭도,
도 2는 도 1에 도시한 제어기 주변의 주요부 상세도,
도 3은 도 1에 도시한 버퍼셀 할당정보 저장기 및 패킷 버퍼의 상세한 내용을 도시한 설명도,
도 4는 도 3에 도시한 축적완료 버퍼셀 번호 메모리의 상세한 내용을 도시한 설명도,
도 5는 도 4에 도시한 축적완료 버퍼셀 번호 메모리의 변형예를 도시한 설명도,
도 6은 도 1에 도시한 멀티포맷 트랜스포트 스트림 디코더에서의 여러가지의 신호를 나타내는 파형도,
도 7은 도 1에 도시한 멀티포맷 트랜스포트 스트림 디코더의 주된 동작을 도시한 플로우차트,
도 8은 도 7에 도시한 트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P) 축적 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 9는 도 7에 도시한 트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P)에 요구처리 실행 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 10은 도 9에 도시한 멀티포맷 패킷 데이터 처리 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 11은 도 10에 도시한 패킷 버퍼 확인 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 12는 도 10에 도시한 패킷 데이터 필터링 제어 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 13은 도 10에 도시한 액세스 대상 패킷 데이터에 대응하는 처리요구 테이블 취득 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 14는 도 13에 도시한 액세스 대상 패킷 데이터에 대응하는 처리요구 테이블 취득 서브루틴의 변형예에서의 상세한 동작을 도시한 플로우차트,
도 15는 도 10에 도시한 디스크램블 제어 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 16은 도 10에 도시한 패킷 패턴 선별제어 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 17은 도 16에 도시한 패킷 패턴 선별제어 서브루틴의 변형예에서의 상세한 동작을 도시한 플로우차트,
도 18은 도 10에 도시한 메인 메모리 제어 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 19는 도 10에 도시한 스트림 출력 제어 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 20은 도 19에 도시한 제 1 스트림 출력설정 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 21은 도 19에 도시한 제 2 스트림 출력설정 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 22는 도 19에 도시한 스트림 출력 제어 서브루틴에서의 상세한 동작을 도시한 플로우차트,
도 23은 본 발명에서의 패킷 데이터에 대한 처리의 설명도,
도 24는 본 발명에서의 패킷 데이터에 대한 처리의 설명도,
도 25는 본 발명에서의 버퍼셀의 최소용량의 설명도,
도 26은 관리 바이트 BM의 구성을 도시한 설명도,
도 27은 보조 데이터의 구성을 도시한 설명도,
도 28은 제어 테이블의 구성을 도시한 설명도,
도 29는 엔트리 테이블의 구성을 도시한 설명도,
도 30은 엔트리 테이블의 설명도,
도 31은 처리 요구 테이블(Pdt)의 구성을 도시한 설명도,
도 32는 디스크램블 판정 매개변수의 상호관계를 도시한 설명도,
도 33은 제어기와 패킷 해석기 사이에서 교환되는 신호의 내용을 도시한 설명도,
도 34는 DMA 버스 조정기와 메인 메모리 제어기의 사이에서 교환되는 신호의 내용을 도시한 설명도,
도 35는 제어기와 스트림 출력기 사이에서 교환되는 신호의 내용을 도시한 설명도,
도 36은 도 1에 도시한 멀티포맷 트랜스포트 스트림 디코더에 입력되는 2개의 트랜스포트 스트림의 패킷 구성을 도시한 모식도,
도 37은 도 1에 도시한 멀티포맷 트랜스포트 스트림 디코더에서, 도 36에 도시한 2개의 입력 트랜스포트 스트림으로부터 특정의 컨텐츠 패킷 데이터를 처리하는 모습을 도시한 설명도,
도 38은 도 37에 도시한 처리에서 도 1에 도시한 메인 메모리에 축적되는 컨텐츠 패킷 데이터를 도시한 설명도,
도 39는 도 38에 도시한 메인 메모리로부터 출력되는 복수 TS 복수 프로그램 패킷 데이터열의 구성을 도시한 설명도,
도 40은 도 1에 도시한 멀티포맷 트랜스포트 스트림 디코더에 입력되는 ITU-T권고 H.220.0으로 규정되는 2개의 입력 트랜스포트 스트림의 구성을 도시한 설명도,
도 41은 단일한 트랜스포트 스트림으로부터 복수의 프로그램 컨텐츠 패킷 데이터 데이터의 출력에 제공할 수 있는 것으로 생각되는, 종래의 주로 하드웨어에 의해 실현되는 트랜스포트 스트림 디코더의 구성을 도시한 블럭도,
도 42는 도 41에 도시한 종래의 트랜스포트 스트림 디코더에 입력되는 트랜스포트 스트림의 구성을 도시한 설명도,
도 43은 도 41에 도시한 종래의 트랜스포트 스트림 디코더에 의한, 단일한 트랜스포트 스트림으로부터 추출하여 구성되는 선택 단일 프로그램 패킷 데이터 데이터열의 설명도,
도 44는 도 41에 도시한 메인 메모리에 선택 단일 프로그램 패킷 데이터 데이터열이 축적되는 상태를 도시한 모식도 및
도 45는 도 41에 도시한 메인 메모리에 입출력되는 단일 프로그램 패킷 데이터 데이터열의 구성을 도시한 설명도이다.
본 발명은 상기와 같은 목적을 달성하기 위해, 이하에 설명한 바와 같은 특징을 갖고 있다.
본 발명의 제 1 국면은 미리 정해진 복수의 포맷 중 어느 하나에 기초하여 생성되고, 또한 각각을 식별하는 패킷 데이터 식별정보가 부여된 연속하는 복수의 제 1 패킷 데이터에 의해 구성되는 제 1 트랜스포트 스트림 중 적어도 하나를 입력으로 하고, 상기 제 1 패킷 데이터에 대하여 선택적으로 사용자가 원하는 처리를 실시하여 제 2 트랜스포트 스트림을 생성하는 멀티포맷 트랜스포트 스트림 디코더에 있어서,
복수 제 1 패킷 데이터의 각각에 대해서 미리 규정되는 적어도 하나의 처리 시퀀스를 저장하는 패킷 데이터 처리 시퀀스 저장기와,
제 1 패킷 데이터 내에서 사용자가 원하는 처리의 대상이 되는 것과, 처리 시퀀스 내에서 원하는 처리에 대응하는 것을 나타내는 처리 요구 정보를 입력하는 처리요구정보 입력기와,
제 1 트랜스포트 스트림에 정해진 포맷을 나타내는 트랜스포트 스트림 식별정보를 부여하는 트랜스포트 스트림 식별정보 부여기와,
제 1 패킷 데이터를 각각에 차례차례 유지하고, 또한 유지된 제 1 패킷 데이터로부터 트랜스포트 스트림 식별정보 및 패킷 데이터 식별정보를 추출하는 패킷 데이터 유지 식별기, 및
추출된 트랜스포트 스트림 식별정보 및 패킷 데이터 식별정보가, 처리요구정보를 비교하여 유지되어 있는 제 1 패킷 데이터가 미리 원하는 처리의 대상인지의 여부를 나타내는 처리대상 판단신호를 생성하는 처리대상 패킷 데이터 데이터 선정기를 구비한다.
상기와 같이 제 1 국면에서는 입력되는 트랜스포트 스트림에 대해서, 각각에 고유의 포맷에 기초하여 적정하게 디코드할 수 있다.
본 발명의 제 2 국면은 제 1 국면에서 처리요구정보는 제 1 패킷 데이터 내에서 사용자가 원하는 처리의 대상인 것을 나타내는 대상 패킷 데이터 식별정보와, 처리의 대상인 제 1 패킷 데이터에 대응하는 대상 트랜스포트 스트림 식별정보와, 처리의 대상인 제 1 패킷 데이터에 대해서 미리 규정된 처리 시퀀스 내에서 처리에 대응하는 처리 시퀀스 정보를 포함하는 것을 특징으로 한다.
본 발명의 제 3 국면은 제 2 국면에서 처리대상 패킷 데이터 데이터 선정기는, 추출된 트랜스포트 스트림 식별정보 및 패킷 데이터 식별정보가 각각 대상 트랜스포트 스트림 식별정보 및 대상 패킷 데이터 식별정보 및 처리의 대상인 제 1 패킷 데이터와 일치한 경우에만 유지되어 있는 제 1 패킷 데이터를 원하는 처리인 것을 나타내는 처리대상 판단신호를 생성하는 것을 특징으로 한다.
본 발명의 제 4 국면은 제 3 국면에서 패킷 데이터 유지 식별기는
제 1 패킷 데이터의 각각을, 입력되어 오는 순서대로 소정 시간만큼 유지하는 제 1 패킷 데이터 유지기,
제 1 패킷 데이터 유지기에 저장되어 있는 제 1 패킷 데이터에 처리 시퀀스 처리를 실시했을 때 발생한 중간 생성물을 저장하기 위한 제 2 패킷 데이터 유지기 및
제 1 패킷 데이터에 처리 시퀀스 처리를 실시했을 때 발생하는 최종 생성물을 저장하기 위한 제 3 패킷 데이터 유지기를 구비한다.
제 5 국면은 제 4 국면에서 처리대상 판단신호가 유지되어 있는 제 1 패킷 데이터가 미리 규정된 처리의 대상이 아닌 것을 나타내는 경우에는 제 1 패킷 데이터 유지기는 다른 제 1 패킷 데이터의 저장을 위해 해방되는 것을 특징으로 한다.
본 발명의 제 6 국면은 제 5 국면에서 처리대상 판단신호가 유지되어 있는 제 1 패킷 데이터가 미리 규정된 처리의 대상인 것을 나타내는 경우에는, 유지되어 있는 제 1 패킷 데이터에 처리 시퀀스 정보에 기초하여 처리를 실시하는 데이터 처리기를 추가로 포함한다.
본 발명을 보다 상세하게 설명하기 위해, 첨부 도면에 따라서 이것을 설명한다.
도 1에 본 발명의 실시형태예에 관한 멀티포맷 트랜스포트 스트림 디코더(TD)를 도시한다. 멀티포맷 트랜스포트 스트림 디코더(TD)는 외부의 트랜스포트 스트림원(도시하지 않음)으로부터 패킷 단위로 공급되는 복수(ε(ε≥2))의 트랜스포트 스트림(TS1~TSε)을 개별적으로 수취하는 스트림 입력기(TSR1~TSRε), 데이터 버퍼링 장치(DBA), 타이머(600), 메인 메모리 제어기(700), 메인 메모리(900), TD제어기(TDC) 및 부차 처리 요구 입력기(APR)를 포함한다.
도 1에 기초하여 본 발명의 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력된 트랜스포트 스트림의 흐름의 개략에 대해서 설명한다. 또한, 본원의 복잡한 구성요소의 상세한 내용에 대해서는 본 실시예의 최후의 부분에서 설명하기로 한다. 제 1 스트림 입력기(TSR_1)~제 ε스트림 입력기(TSR_ε)는 각각 외부의 트랜스포트 스트림원(도시하지 않음)으로부터 패킷 단위로 공급되는 트랜스포트 스트림(TS1~TSε)에 각각을 개별적으로 식별하기 위한 ID인 트랜스포트 스트림 식별자(TSID)를 부여한다. 이 때, 스트림 입력기(TSR_ε)는 입력되는 트랜스포트 스트림 중의 패킷의 크기 등의 포맷을 식별한다.
트랜스포트 스트림 식별자(TSID)는 입력되는 복수(1~ε) 중 임의의 트랜스포트 스트림(TS)을 i(1≤i≤ε)로서 나타낸다. 이 생각에 기초하여, 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 임의의 트랜스포트 스트림(TS)을 제 i 트랜스포트 스트림 식별자(TSi)로서 나타내는 것으로 한다.
그리고 스트림 입력기(TSR)는 트랜스포트 스트림 식별자(TSID)가 부여된 트랜스포트 스트림(TS)을 내부에 구비한 입력 버퍼에 일시적으로 유지하고, 각각을 소정의 전송단위(TSd1)~전송단위(TSdε)마다 데이터 버퍼링 장치(DBA)에 전송한다.
TD제어기(TDC)는 멀티포맷 트랜스포트 스트림 디코더(TD) 전체의 동작을 제어한다.
데이터 버퍼링 장치(DBA)는 패킷 버퍼링 조정기(PBA), 패킷 선택기(400), 스트림 출력 관리기(500), 중간처리용 버퍼셀 사용 메모리(530), 패킷 해석기(1000), 스트림 출력기(1300) 및 제어기(PBAC)를 포함한다. 패킷 버퍼링 조정기(PBA)는 스트림 입력기(TSR)로부터 전송단위(TSd)마다 입력되는 트랜스포트 스트림(TS)을 패킷 데이터(P)의 단위로 식별하여 버퍼링한다. 패킷 선택기(400)는 버퍼링되어 있는 패킷 데이터(P)가 원하는 패킷 데이터(P)인지를 판단한다.
패킷 버퍼링 조정기(PBA)는 DMA 버스 조정기(210), TSd입력 개시 검출기(220), 버퍼셀 할당기(230), 버퍼셀 할당 정보 저장기(240), 쓰기부분 버퍼셀 지정기(250), 패킷 버퍼 제어기(260), 패킷 버퍼(270), 축적완료 버퍼셀 번호 메모리 제어기(280), 축적완료 버퍼셀 번호 메모리(290), 에러 플랙 설정기(295) 및 패킷 액세스기(300)를 포함한다.
DMA 버스 조정기(210)는 입력되는 트랜스포트 스트림(TS)의 수(ε)와 동일한 만큼의 입력 포트군을 갖는다. 이와 같이, 입력되는 트랜스포트 스트림(TS)마다 입력 포트군을 구비함으로써, 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 제 i 트랜스포트 스트림(TSi)을 개별적으로 식별할 수 있다.
또한, DMA버스 조정기(210)는 입력되는 트랜스포트 스트림(TS)의 수(ε)에맞추어 준비되는 스트림 입력기(TSR1~TSRε) 마다 데이터 유효신호(Sde1~Sdeε)를 출력하는 출력포트가 준비된다.
DMA버스 조정기(210)는 제 i 스트림 입력기(TSRi)로부터 입력되는 제 i 패킷선두 검출신호(Spsi) 및 제 i 리퀘스트 신호(Srqi)에 기초하여 제 i의 패킷 선두 검출신호(Spsi)를 TSd 입력개시 검출기(220)에 출력한다.
TSd입력개시 검출기(220)는 패킷선두 검출신호(Sps) 및 전송단위(TSd)에 기초하여, 패킷 데이터(P)마다 전송단위(TSd)의 입력이 개시된 것을 검출하고, 또한 입력이 개시된 전송단위(TSd)를 패킷 버퍼 제어기(260)에 공급한다.
패킷 버퍼 제어기(260)는 쓰기 요구 신호(Swd)에 응답하여 TSd 입력개시 검출기(220)로부터 공급되는 전송단위(TSdi)를 패킷 버퍼(270)가 할당된 버퍼셀에 쓴다.
패킷 액세스기(300)는 패킷 버퍼 제어기(260) 및 DMA 버스 조정기(210)를 경유하여 패킷 버퍼(270)의 버퍼셀에 저장된 직후의 패킷 데이터(P)에 선택적으로 액세스하고, 판독, 참조 또는 편집 등의 처리를 실시한 후에 DMA 버스 조정기(210) 및 패킷 버퍼 제어기(260)를 경유하여 원래의 패킷 데이터(P)를 덮어쓰기 갱신하거나 한다.
데이터 버퍼링 장치(DBA)는 처리대상 패킷 데이터(P)에 대하여 상기와 같은 원하는 처리를 실시한 후에 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)로서 메인 메모리 제어기(700)에 출력한다.
메인 메모리(900)는 데이터 버퍼링 장치(DBA)로부터 출력되는 제 1 트랜스포트 스트림(TS1)~제 ε트랜스포트 스트림(TSε)으로부터 추출된 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)을 저장하고, 또한 AV 디코더로 대표되는 외부기기(도시하지 않음)에 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)로서 출력한다.
메인 메모리 제어기(700)는 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm) 및 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)을 전송 단위(TSd)마다 일시적으로 유지한다. 메인 메모리 제어기(700)는 또한, 메인 메모리(900)의 동작을 제어하고, 일시적으로 유지하는 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)을 전송단위(TSd)마다 메인 메모리(900)에 출력하고, 또한 메인 메모리(900)를 제어하여 그 내부에 복수 TS 복수 프로그램 영상 컨텐츠 패킷 데이터열(PmsmV) 및 복수 TS 복수 프로그램 음성 컨텐츠 패킷 데이터열(PmsmS)을 형성시킨다.
다음에, 도 2 및 3을 참조하여 상기한 버퍼셀 할당 정보 저장기(240), 패킷버퍼(270) 및 축적완료 버퍼셀 번호 메모리(290)의 관계에 대해서 간단하게 설명한다. 도 2에 도시한 바와 같이, 패킷 버퍼(270)는 크게 나누어 m(m은 2ε이상의 정수)개의 1차 버퍼셀(Bc_I1~Bc_Im)과, n(n은 m/2 보다 큰 정수)개의 2차 버퍼셀(Bc_M1~BC_Mn)과, 하나 이상의 3차 버퍼셀(Bc_O)을 포함한다.
이것은 입력되는 트랜스포트 스트림(TS)마다 패킷 데이터(P)의 축적용과 축적된 패킷 데이터(P)의 판독용으로 다른 1차 버퍼셀(Bc_I)이 하나는 필요하기 때문이다. 또한, 제 1 트랜스포트 스트림(TS1)과 제 2 트랜스포트 스트림(TS2)의 2개(ε=2)의 트랜스포트 스트림(TS)이 입력되는 경우에는, 1차 버퍼셀(Bc_I)의 개수(m)는 4(2×2) 이상의 정수이다.
또, 2차 버퍼셀(Bc_M)은 1차 버퍼셀(Bc_I)의 판독용에 대응하여 설치하면 좋으므로, 필요수(n)는 m/2 이상의 정수가 된다. 또한, 3차 버퍼셀(Bc_0)은 하나의 패킷 데이터(P)에 대한 처리과정의 중간 데이터를 집적하여 완성시킨 후에 출력하면 좋으므로 하나 이상이면 좋다.
1차 버퍼셀(Bc_I1~Bc_Im)은 각각, TSd 입력개시 검출기(220) 및 패킷 버퍼 제어기(260)를 경유하여 전송단위(TSd)로 입력되는 패킷 데이터(P)를 제 1 소정 시간(T1)만큼 저장하고, 저장한 패킷 데이터(P)에 대한 처리를 접수한다. 패킷 버퍼 제어기(260)에 의해 1차 버퍼셀(Bc_I)에 저장된 패킷 데이터(P)의 패킷 식별자(PID) 및 트랜스포트 스트림 식별자(TSID)가 추출 패킷 식별정보(PIDe) 및 추출 트랜스포트 스트림 식별자(TSIDe)로서 판독된다.
또한, 1차 버퍼셀(Bc_I)은 디스크램블기(1100) 및 섹션 데이터 선별기(1200)의 처리시에 판독된다. 그리고, 1차 버퍼셀(Bc_I)에 저장되어 있는 패킷 데이터(P) 내에서 스크램블되고 있는 피스크램블 데이터(Dsdi)는 디스크램블기(1100)에 출력된다. 또한, 1차 버퍼셀(Bc_I)에 저장되어 있는 패킷 데이터(P)가 섹션 데이터인 경우에는 요선별 섹션 데이터(Ssdi2)가 섹션 데이터 선별기(1200)에 출력된다.
디스크램블기(1100)는 1차 버퍼셀(Bc_I)로부터 입력되는 피스크램블 데이터(Dsdi)를 디스크램블하여 피디스크램블 데이터(Dsdo)를 생성한다. 섹션 데이터 선별기(1200)는 1차 버퍼셀(Bc_I)로부터 입력되는 요선별 섹션 데이터(Ssdi2)를 섹션 데이터 선별하여 피선별 패킷 데이터(Ssdo)를 생성한다.
2차 버퍼셀(Bc_M)은 디스크램블기(1100)에 접속되고, 피디스크램블 데이터(Dsdo)를 제 2 소정 시간(T2(T2<T1))만큼 저장한다. 또한, 섹션 데이터 선별기(1200)는 2차 버퍼셀(Bc_M)에 접속되고, 저장되어 있는 피디스크램블 데이터(Dsdo) 내의 디스크램블된 실제 데이터를 요선별 섹션 데이터(Ssdi1)로서 판독하고, 섹션 데이터 선별하여 피선별 패킷 데이터(Ssdo)를 생성한다.
3차 버퍼셀(Bc_0)은 섹션 데이터 선별기(1200)에 접속되고, 요선별 섹션 데이터(Ssdi1) 또는 요선별 섹션 데이터(Ssdi2) 중 어느 것인가로부터 생성된 피선별 패킷 데이터(Ssdo)를 제 3 소정시간(T3(T3<T2))만큼 저장한다.
버퍼셀(Bc)의 각각은 소정 크기의 데이터를 일시적으로 축적하는, 즉 버퍼링할 수 있다. 이 때문에 필요한 버퍼셀(Bc)의 용량을 최저 버퍼용량(MBU)이라고 한다. 최저 버퍼용량(MBU)은 패킷 데이터(P)를 구성하는 패킷 데이터(P)의 데이터 사이즈에 따라서 적절하게 설정된다. 최저 버퍼용량(MBU)을 패킷 사이즈에 비해 작게 설정하면, 프로그램 컨텐츠 패킷 데이터(Pc)의 추출을 보다 세밀하게 제어할 수 있지만, DMA 버스 조정기(210)에서의 입출력 조정빈도가 커지고, 그 때문에 제어공정수의 증대를 초래하여 처리효율이 나빠진다.
한편, 최저버퍼용량(MBU)을 패킷 사이즈에 비해 크게, 예를 들어 수배 정도로 설정하면, 하나의 버퍼셀(Bc)에 복수의 패킷 데이터(P)를 저장하는 것도 가능해진다. 그러나, 이 경우에는 하나의 버퍼셀(Bc)에 저장되어 있는 복수의 패킷 데이터(P)를 구별할 수 없으므로, 패킷 데이터(P) 단위에서의 제어, 또는 액세스를 할수 없다. 따라서, 최저버퍼용량(MBU)은 트랜스포트 스트림 디코더의 내부처리속도, 패킷 데이터(P)의 입력레이트, 패킷 사이즈 및 패킷 데이터(P)로의 액세스 빈도에 기초하여 적절하게 설정되어야 하는 것이다.
또한, 본 예에서는 최저 버퍼용량(MBU)은 1패킷 데이터(P)를 저장할 수 있도록 정해져 있고, 구체적으로는 188바이트로 하고 있다. 또한, 필요에 따라서 패킷 데이터(P)를 식별 또는 관리하기 위한 소정의 바이트수를 갖는 보조 데이터를 1패킷 데이터(P)에 추가하여 저장할 수 있도록 해도 좋다. 그러나, 필요에 따라서 상기한 바와 같이 패킷 사이즈에 비해 작게 설정, 즉 하나의 패킷을 복수의 버퍼셀(Bc)에 분할하여 저장하도록 해도 좋다.
또한, 최저 버퍼 용량(MBU)은 분할의 유무에 관계없이 저장하는 데이터에 관리정보에 상당하는 관리바이트를 채운 것이 된다. 관리정보에는 적어도 저장하는 분할/비분할 데이터가 입력되는 복수의 트랜스포트 스트림(TS) 중 어느 것에 속하는지를 나타내는 트랜스포트 스트림 식별정보를 포함한다.
또한, 패킷을 분할하여 저장하는 경우에는 최저 버퍼 용량(MBU)은 패킷 데이터(P)의 분할후의 데이터의 최대 사이즈로 분할정보와 트랜스포트 스트림 패킷 식별정보를 포함하는 관리 데이터 사이즈의 합이 된다. 이 경우, 버퍼셀(Bc)의 개수(N)의 최소값인 버퍼셀 최소개수(Nmin)는 2ε에 분할수(D)를 곱한 것(버퍼셀 최소개수(Nmin)는 2εD)이 된다.
또한, 다른 패킷 데이터(P)간의 입력레이트의 차이에 대해서 설명한다. 즉, 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 복수(ε)의 트랜스포트스트림(TS1~TSε)의 각각에 포함되는 패킷 데이터(P)의 입력 레이트는 트랜스포트 스트림(TSi)마다 다른 것이 많다. 이제, 2개(ε=2)의 트랜스포트 스트림(TS1 및 TS2)이 입력되는 경우를 예로 들어 설명한다. 제 1 트랜스포트 스트림(TS1)의 프로그램 1의 프로그램 컨텐츠 패킷 데이터(Pc101 및 Pc111)와, 제 2 트랜스포트 스트림(TS2)의 제 4 프로그램 컨텐츠 패킷 데이터(Pc401 및 Pc411)를 버퍼링하는 경우에, 프로그램 컨텐츠 패킷 데이터(Pc401)의 입력레이트가 프로그램 컨텐츠 패킷 데이터(Pc101)의 입력레이트에 비해 압도적으로 큰 경우를 생각한다.
이 경우, 프로그램 컨텐츠 패킷 데이터(Pc101와 Pc401)가 동시에 멀티포맷 트랜스포트 스트림 디코더(TD)에 도착했다고 해도, DMA버스 조정기(210r) 조정되고, 한편(예를 들어 프로그램 컨텐츠 패킷 데이터(Pc101))의 버퍼링이 다른쪽(예를 들어, 프로그램 컨텐츠 패킷 데이터(Pc401)) 보다 먼저 시작한다. 그리고, 프로그램 컨텐츠 패킷 데이터(Pc101)의 버퍼링의 개시에 이어서 프로그램 컨텐츠 패킷 데이터(Pc401)의 버퍼링이 개시된다. 그러나, 프로그램 컨텐츠 패킷 데이터(Pc401)의 입력레이트는 프로그램 컨텐츠 패킷 데이터(Pc101)의 입력레이트에 비해 압도적으로 크므로, 프로그램 컨텐츠 패킷 데이터(Pc401)의 버퍼링 도중에서, 프로그램 컨텐츠 패킷 데이터(Pc101)의 입력이 완료되어 버린다.
이와 같은 사태에 대응하기 위해, 프로그램 컨텐츠 패킷 데이터(Pc101)의 버퍼링 중에, 나중에 입력되는 높은 레이트의 프로그램 컨텐츠 패킷 데이터(Pc411)의 버퍼링하기 위해 버퍼셀(Bc)을 준비할 필요가 있다. 이 경우의 버퍼셀 최소 개수(Nmin)는 입력되는 트랜스포트 스트림(TS)의 프로그램 컨텐츠 패킷 데이터(Pc)의 입력레이트에 기초하여 결정되지만, 최저 버퍼 용량(MBU)을 일정하게 하면, 버퍼셀 최소 개수(Nmin)는 일반적으로 입력 트랜스포트 스트림(TS)의 수에 비례한다.
또한, 본 예에서는 최저 버퍼 용량(MBU)은 1패킷 데이터(P)에 소정의 관리 데이터를 부가한 것을 저장할 수 있도록 정하고 있고, 구체적으로는 188바이트의 1패킷 데이터(P)에 4바이트의 관리 데이터를 부가한 것을 저장할 수 있도록 192바이트로 하고 있다. 또, 4바이트의 관리 데이터에는 상기한 트랜스포트 스트림 식별정보와 함께, 당해 패킷 데이터(P)의 도착 시간을 나타내는 타임 스탬프 정보도 포함되어 있다. 이에 대해서는 나중에 도 16을 참조하여 설명한다.
또한, 1차 버퍼셀(Bc_I), 2차 버퍼셀(Bc_M) 및 3차 버퍼셀(Bc_0)에 저장되는 데이터에 대해서, 도 3, 도 24, 도 25, 도 26 및 도 27을 참조하여 설명한다. 도 25에서는 제 1 트랜스포트 스트림(TS1)의 패킷 데이터(P1)는 제 1 포맷(FMT1)으로 구성되고, 제 2 트랜스포트 스트림(TS2)의 패킷 데이터(P2)는 제 2 포맷(FMR2)으로 구성되어 있는 경우가 예시되어 있다.
즉, 제 1 포맷(FMT1)으로 구성되어 있는 패킷 데이터(P1(TS1))는 선두부터 소성 관리 바이트(BMh), 보조 데이터(AXD), 실제 데이터(PDB) 및 처리관리 바이트(BMp)의 순서대로 배열 구성되어 있다. 소성 관리 바이트(BMh), 보조 데이터(AXD), 실제 데이터(PDB) 및 처리 관리 바이트(BMp)의 바이트 사이즈를 각각, M, N1, R1 및 M으로 하면, 이와 같은 패킷 데이터(P1(TS1: FMT1))를 저장하기 위해 버퍼셀(Bc)에 요구되는 최소용량(MBU)은 2M+N1+R1이 된다.
마찬가지로, 제 2 포맷(FMT2)으로 구성되어 있는 패킷 데이터(P2(TS2))는 선두부터 소성 관리 바이트(BMh), 실제 데이터(PDB) 및 처리 관리 바이트(BMp)의 순서대로 배열 구성되어 있다. 소성 관리 바이트(BMh), 보조 데이터(AXD), 실제 데이터(PDB) 및 처리 관리 바이트(BMp)의 바이트 사이즈를 각각 M, R2 및 M으로 하면, 이와 같은 패킷 데이터(P2(TS2: FMT2))를 저장하기 위해, 버퍼셀(Bc)에 요구되는 최소용량(MBU)은 2M+R2가 된다.
도 2로 돌아가, 홀수번의 1차 버퍼셀(Bc_I)에는 제 1 포맷(FMT1)의 패킷 데이터(P)가 저장되고, 짝수번째의 1차 버퍼셀(Bc_I)에는 제 2의 제 포맷(FMT2)(섹션 데이터)의 패킷 데이터(P)가 저장되는 경우를 예로 들어 설명한다. 홀수번의 1차 버퍼셀(Bc_I)에는 처리관리 바이트(BMp), 보조 데이터(AXD), 실제 데이터(PD1) 및 소성 관리 바이트(BMh)의 순서대로 저장된다. 짝수번의 1차 버퍼셀(Bc_I)에는 처리 관리 바이트(BMp), 실제 데이터(PD2) 및 소성 관리 바이트(BMh)의 순서대로 저장된다.
홀수번의 1차 버퍼셀(Bc_I)에 저장되어 있는 보조 데이터(AXD)와 실제 데이터(PD)가 제 1 스트림(Pho1)으로서 스트림 출력기(1300)로부터 출력된다. 짝수번의 1차 버퍼셀(Bc_I)에 저장되어 있는 실제 데이터(PD)가 제 2 스트림(Pho2)으로서 스트림 출력기(1300)로부터 출력된다.
또한, 홀수번의 1차 버퍼셀(Bc_I)로부터 처리 관리 바이트(BMp)와 보조 데이터(AXD)와 실제 데이터(PD)가 피스크램블 데이터(Dsdi)로서 디스크램블기(1100)에 출력된다. 디스크램블기(1100)는 피스크램블 데이터(Dsdi)의 보조 데이터(AXD)와 실제 데이터(PD)를 디스크램블하여 피디스크램블 보조 데이터(AXD’)를 생성한다.그리고, 처리 관리 바이트(BMp)와 피디스크램블 보조 데이터(AXD’)와 피디스크램블 실제 데이터(PD’)를 피디스크램블 데이터(Dsdo)로서 2차 버퍼셀(Bc_M)에 출력된다.
2차 버퍼셀(Bc_M)에서는 피디스크램블 데이터(Dsdo)가 처리관리 바이트(BMp), 피디스크램블 보조 데이터(AXD’) 및 피디스크램블 실제 데이터(PD’)의 순서대로 저장된다. 그리고, 2차 버퍼셀(Bc_M)로부터 처리 관리 바이트(BMp), 피디스크램블 보조 데이터(AXD’) 및 피디스크램블 실제 데이터(PD’)가 요선별 섹션 데이터(Ssdi1)으로서 섹션 데이터 선별기(1200)에 출력된다.
섹션 데이터 선별기(1200)는 요선별 섹션 데이터(Ssdi1)를 선별하여 피선별 실제 데이터(PD″)를 생성하여 3차 버퍼셀(Bc_0)로 출력한다.
짝수번의 1차 버퍼셀(Bc_I)로부터 처리관리 바이트(BMp)와 보조데이터(AXD)와 실제 데이터(PD)가 요선별 섹션 데이터(Ssdi2)로서 섹션 데이터 선별기(1200)에 출력된다. 섹션 데이터 선별기(1200)는 요선별 섹션 데이터(Ssdi2)를 선별하고, 피선별 실제 데이터(PD″)를 생성하여 피선별 패킷 데이터(Ssdo)로서 3차 버퍼셀(Bc_0)에 출력한다.
이와 같이 하여, 패킷 데이터(P)의 포맷에 따라서 처리된 피선별 실제 데이터(PD″)가 3차 버퍼셀(Bc_0)에 저장된다.
버퍼셀 할당 정보저장기(240)는 패킷 버퍼(270)의 1차 버퍼셀(Bc_I1~Bc_Im)의 각각에 대응하는 1차 버퍼셀 할당 정보 영역(AI1~AIm)과, 2차 버퍼셀(Bc_M1~Bc_Mn)의 각각에 대응하는 2차 버퍼셀 할당 정보 영역(AM1~AMn)을 갖는다. 버퍼셀 할당 정보 저장기(240)는 버퍼셀 할당기(230)로부터 공급되는 1차 버퍼셀 할당 정보(Iba)에 기초하여, 할당된 1차 버퍼셀(Bc_I)에 대응하는 1차 버퍼셀 할당 정보 영역(AI)에 할당의 유무를 나타내는 할당 식별 데이터를 쓴다. 즉, 버퍼셀 할당 정보 저장기(240)에는 패킷 버퍼(270)의 1차 버퍼셀(Bc_I1에서 Bc_Im)과 같은 수의 1차 버퍼셀 할당 정보 영역(AI1~AIm)이 준비된다.
마찬가지로, 버퍼셀 할당정보 저장기(240)는 중간처리용 버퍼셀 사용 메모리(530)로부터 공급되는 2차 버퍼셀 할당 정보(mrp)에 기초하여, 할당된 2차 버퍼셀(Bc_M)에 대응하는 2차 버퍼셀 할당 정보 영역(AM)에 할당의 유무를 나타낸 할당 식별 데이터를 쓴다. 즉, 버퍼셀 할당 정보 저장기(240)에는 패킷 버퍼(270)의 2차 버퍼셀(Bc_M1~Bc_Mn)과 같은 수의 2차 버퍼셀 할당 정보 영역(AM1~AMn)이 준비된다.
예를 들어, 할당 식별 데이터는 1과 0의 이치 데이터이고 초기값은 0이다. 그리고, 1차 버퍼셀(Bc_I1)이 할당되는 경우에는 1차 버퍼셀(Bc_I1)에 대응하는 1차 버퍼셀 할당 정보영역(AI1)에는 예를 들어 1이 쓰여진다. 한편, 1차 버퍼셀(Bc_I1)에 쓰여진 데이터가 판독된 후에, 제어기(PBAC)로부터 출력되는 제어신호(Sc)에 기초하여 1차 버퍼셀 할당정보 영역(AI1)에 0이 쓰여지고, 1차 버퍼셀(Bc_I1)은 해방된다. 이것은 2차 버퍼셀(Bc_M)에 관해서도 동일하다.
이와 같이 하여 패킷 버퍼(270)의 각 1차 버퍼셀(Bc_I1~Bc_Im) 각각의 할당상황이 1차 버퍼셀 할당 정보 영역(AI1~AIm)에서의 값의 집합으로 표현되고, 할당 1차 버퍼셀 정보(Iab)로서 버퍼셀 할당기(230)에 공급된다. 마찬가지로, 2차 버퍼셀(Bc_M1~Bc_Mn) 각각의 할당 상황이 2차 버퍼셀 할당 정보 영역(AM1~AMn)에서의 값의 집합으로 표현되고, 할당 2차 버퍼셀 정보(mwp)로서 중간처리용 버퍼셀 사용 메모리(530)에 공급된다.
다음에, 도 7을 참조하여 상기한 멀티포맷 트랜스포트 스트림 디코더(TD)의 주된 동작에 대해서 상세하게 설명한다. 멀티포맷 트랜스포트 스트림 디코더(TD)는 전원이 투입되어 그 동작을 개시한다.
우선, 단계(#100)의 「초기화 서브루틴」에서 축적완료 버퍼셀 번호 메모리(290)의 라이트 포인터(WP) 및 리드 포인터(RP)의 값이 모두 0으로 리셋을 포함하여 장치의 초기화가 실시된다. 그리고, 처리는 다음의 단계(#200)로 나아간다.
단계(#200)의 「트랜스포트 스트림(TS1~TSε)의 제공 프로그램 및 가능 처리 제시」서브루틴에서 TD제어기(TDC)의 메인 메모리(900)의 PAT저장 영역(Ar(PAT)) 및 PMT 저장영역(Ar(PMT))에 트랜스포트 스트림(TS1~TSε)마다 개별적으로 저장되어 있는 프로그램 컨텐츠 관리표(PAT1~PATε) 및 프로그램 컨텐츠 패킷 데이터 관리표(PMT1~PMTε)에 기초하여, 신호 분배되는 프로그램과, 멀티포맷 트랜스포트 스트림 디코더(TD)가 사용자에게 제공할 수 있는 처리기능을 나타내는 프로그램 내용 제시신호(Sp)를 생성하고, 부차 처리 요구 입력기(APR)에 출력한다.
부차 처리 요구 입력기(APR)는 프로그램 내용 제시신호(Sp)에 기초하여, 디스플레이 등의 적당한 표시수단을 사용측 신호분배 프로그램과 제공 처리 기능을 사용자에게 일람 제시한다. 사용자는 부차 처리 요구 입력기(APR)를 조작하여 제시된 프로그램과 처리기능 중에서 원하는 프로그램과 처리기능을 선택한다.
단계(#300)의 「트랜스포트 스트림(TS1~TSε)에 대한 처리 요구 검출」 서브루틴에서, 부차 처리요구 입력기(APR)는 프로그램 내용 제시신호(Sp)에 기초하여, 복수의 트랜스포트 스트림(TS1~TSε)에 대한 사용자의 처리요구를 검출하고, 처리요구신호(Se)를 생성하여 TD제어기(TDC)에 출력한다.
단계(#400)의 「트랜스포트 스트림(TS1~TSε)에 대한 처리 내용 결정」 서브루틴에서, TD제어기(TDC)는 처리 요구 신호(Se)에 기초하여, 멀티포맷 트랜스포트 스트림 디코더(TD)측에서 실시할 구체적인 처리내용을 결정한다. 구체적으로는 TD제어기(TDC)는 부차 처리 요구 입력기(APR)로부터 입력된 처리 요구 신호(Se)에 기초하여, 처리대상이 되는 프로그램, 프로그램에 대한 처리방법 및 처리에 필요한 디바이스 등의 수단의 정보로 대표되는 처리 내용 정보를 생성한다.
단계(#500)의 「처리대상 패킷 데이터 식별정보 패킷 식별자(PIDd) 및 트랜스포트 스트림 식별자(TSIDd) 생성」 서브루틴에서는 TD제어기(TDC)는 단계(#400)에서 결정된 처리 내용 정보에 기초하여 처리해야 할 패킷 데이터(P)를 나타내는 처리대상 패킷 데이터 식별정보 패킷 식별자(PIDd)와, 처리해야 할 패킷 데이터(P)의 각각이 속하는 트랜스포트 스트림(TSε)을 나타내는 대상 트랜스포트 스트림 식별정보(TSIDd)를 생성하고, 패킷 선택기(400)에 출력한다.
단계(#600)의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P)축적」 서브루틴에서 멀티포맷 트랜스포트 스트림 디코더(TD)에 차례차례 입력되는 ε개의 트랜스포트 스트림(TS1~TSε)에 포함되는 패킷 데이터(P1~Pε)의 데이터 버퍼링장치(DBA)로의 버퍼링이 개시된다. 또한, 패킷 데이터(Pi)는 데이터 버퍼링 장치(DBA)의 1차 버퍼셀(Bc_I)의 각각에, 패킷 데이터(P/n) 단위(n은 자연수)로 저장된다. 본 단계에서의 처리에 대해서는 후에 도 8을 참조하여 상술한다. 소정수의 패킷 데이터(P)의 축적이 완료된 시점에서, 다음 단계(#700)의 처리가 개시된다. 바꿔 말하면, 데이터 버퍼링 장치(DBA)의 복수의 1차 버퍼셀(Bc_I) 중, 소정수의 버퍼셀(Bc)의 각각에 패킷 데이터(P)가 축적된 상태에서 단계(#700)의 처리가 개시된다.
단계(#700)의 「트랜스포트 스트림(TS1~TSε)의 처리대상 패킷 데이터(P)선택」 서브루틴에서 데이터 버퍼링 장치(DBA)의 1차 버퍼셀(Bc_I)에 순서대로 저장되는 패킷 데이터(P) 중에서 처리대상인 것이 선택된다. 구체적으로는 하나의 1차 버퍼셀(Bc_I)에 저장되어 있는 패킷 데이터(P)가 단계(#400)에서 특정된 패킷 데이터(P)인지를, 단계(#500)에서 결정된 패킷 식별자(PID(처리대상 패킷 데이터 식별정보(PiDd))를 갖는지를 판단함으로써 처리대상 패킷 데이터(P)로서의 선택이 이루어진다.
단계(#8000)의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P)에 요구처리실행」 서브루틴에서 단계(#700)에서 선택된 패킷 데이터(P)에 대해서 단계(#400)에서 결정된 내용의 사용자 요구처리가 실행된다. 본 실시형태에서는 1차 버퍼셀(Bc_I)에 차례로 저장되는 복수의 트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P1~Pε) 중에서, 단계(#700)에서 선택된 특정 프로그램의 프로그램 컨텐츠 패킷 데이터(P)만을 추출하여 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm(Pem1,Pem2))이 추출되는 예가 도시되어 있지만, 이것에 대해서는 후에 도 26을 참조하여 상술한다. 또한, 요구처리가 특정의 프로그램을 구성하는 프로그램 컨텐츠 패킷 데이터(Pc)의 선택추출에 한정되지 않고, 여러가지 디지털 처리의 적용이 가능한 것은 물론이다.
#900의 「트랜스포트 스트림(TS1~TSε)의 처리후 패킷 데이터(P)축적」서브루틴에 있어서, 단계(#8000)에서 추출된 선택 복수 프로그램 패킷 데이터열(Pemm)이 메인 메모리 제어기(700)에 출력되고, 복수 프로그램 패킷 데이터열(Pmsm)이 생성된다.
또한, 상기한 바와 같이 단계(#600)는 주로 하드웨어에 의한 수동적인 처리이고, 단계(#700~#900)는 주로 소프트웨어에 의한 능동적인 처리이다. 따라서, 단계(#600)와 단계(#700~#900)는 바람직하게는 병행처리로서 구성된다. 그를 위해서는 단계(#700)에서의 대상처리 패킷 데이터(P) 선택 서브루틴을 개시하기 전에, 단계(#600)에서 적정한 수만큼의 1차 버퍼셀(Bc_I)에 패킷 데이터(P)가 축적되어 있는 것이 바람직하다. 이에 대해서는 후에 도 8을 참조하여 설명한다.
그러나, 본 도면에서는 단계(#600, #700, #8000 및 #900)를 일련의 반복 처리로서의 구성을 도시하고 있다. 이와 같은 구성에서의 동작에 대해 간단하게 설명한다. 단계(#600)의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P) 축적」 서브루틴을 처음으로 실시하는 경우에는 소정수의 버퍼셀(Bc)에 패킷 데이터(P)가 축적되는 것을 기다린 후에, 단계(#700, #8000 및 #900)의 처리를 연속적으로 실행한다. 그리고, 2회째 이후의 단계(#600)에서는 소정수가 아니라 하나의 1차 버퍼셀(Bc_1)에 패킷 데이터(P)가 저장된 후에 단계(#700~#900)의 처리가 실행된다.
다음에, 도 9에 도시한 플로우차트를 참조하여 상기한 단계(#800)에서의 데이터 버퍼링 장치(DBA)에 의한 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P)에 요구 처리 실행」의 상세한 내용에 대해서 설명한다. 또한, 본 도면에서는 도 7에 관해서 설명한 바와 같이 단계(#600)와 단계(#700~#900)를 병행 처리로 하는 경우에도, 연속처리로 하는 경우에도 적용할 수 있는 구성을 나타낸다.
우선, 단계(S802)에서 TD제어기(TDC)는 축적완료 버퍼셀 번호 메모리(290)로부터, 라이트 포인터(WP) 및 리드 포인터(RP)의 각각의 값을 판독한다. 라이트 포인터(WP)는 차례차례 입력되어 오는 제 i 트랜스포트 스트림(TSi)의 패킷 데이터(Pi)를 쓰는 1차 버퍼셀(Bc_I)를 택일적으로 나타내는 매개변수이고, 리드 포인터(RP)는 데이터를 판독하는 대상인 1차 버퍼셀(Bc_I)을 나타내는 매개변수이다. 그리고, 처리는 다음의 단계(S804)로 나아간다.
단계(S804)에서 TD제어기(TDC)에 의해 단계(S802)에서 판독된 라이트 포인터(WP)와 리드 포인터(RP)의 값이 동일한지 여부가 판단된다. 동일한 경우에는 예, 즉 멀티포맷 트랜스포트 스트림 디코더(TD)에, 트랜스포트 스트림(TS1~TSε)까지의 입력이 저장되어 있지 않다고 판단되어, 처리는 상기한 단계(S804)로 되돌아간다. 이것은 버퍼셀 중에 완전한 형태로 저장되어 있지 않은 패킷 데이터(P)에 대한 액세스를 방지하기 위함이다.
한편, 단계(S804)에서 동일하지 않은 경우에는 아니오, 즉 처리할 패킷셀이 존재한다고 판단된다. 이것은 패킷 데이터(P)를 완전한 형태로 저장되어 있는 1차버퍼셀(Bc_I)이 있는 것을 의미한다. 바꿔 말하면, 당해 패킷 데이터(P)는 사용자의 요구에 대한 처리 대상 후보인 패킷 데이터(P)가 적어도 하나는 패킷 버퍼(270)에 축적되어 있는 것을 의미한다. 그리고, 처리는 다음 단계(S806)로 진행된다.
단계(S806)에서 저장되어 있는 패킷 데이터(P)(이 시점에서는 처리대상후보)가 실제로 처리대상인지 여부를 조사하기 위해 액세스하는 1차 버퍼셀(Bc_I)을 결정한다. 구체적으로는 TD 제어기(TDC)는 리드 포인터(RP)가 나타내는 버퍼셀 지정영역(Rcm)으로부터 버퍼셀 번호(Nbcn)를 판독한다. 그리고, 처리는 다음 단계(S810)로 진행한다.
상기한 바와 같이 단계(S804 및 S806)를 구성함으로써 단계(#600)와 단계(#700~#900)를 병행 처리하는 경우에도, 연속처리로 하는 경우에도 적용할 수 있다. 즉, 병행처리로 한 경우, 패킷 버퍼(270)에 적당수의 패킷 데이터(P)가 축적되어 있지 않을(최악에 어떤 1차 버퍼셀(Bc_I)에도 패킷 데이터(P)가 완전히 저장되어 있지 않을) 때, 사용자가 요구한 처리를 실행하고자 하는 사태를 회피할 수 있다. 또한, 연속처리로 하는 경우에는 상기한 바와 같이 단계(#600)와 단계(#700)의 개시시간에 차이를 두고 소정수의 1차 버퍼셀(Bc_I)의 축적완료를 보증하지만, 트랜스포트 스트림(TS)의 전송경로상의 이유 등에 의해 패킷 데이터(P)의 축적에 이상이 발생한 경우에도 언더플로에 의한 처리이상을 방지할 수 있다.
단계(S810)에서 리드 포인터(RP)가 나타내는 플랙 저장영역(Fc)으로부터 저장되어 있는 에러 플랙값이 판독된다. 그리고, 처리는 다음 단계(S812)로 나아간다.
단계(S812)에서 판독된 에러 플랙값에 기초하여, 에러 플랙이 온인지의 여부가 판단된다. 예, 즉 처리대상후보인 패킷 데이터(P)는 에러를 포함하고 있다고 판단되는 경우에는 처리는 상기한 단계(#8000, S818 및 S820)를 우회하고, 단계(S822)로 나아가며, 상기 1차 버퍼셀(Bc_I)은 이후 입력되어 오는 패킷 데이터(P)의 버퍼링 때문에 해방된다.
한편, 단계(S812)에서 아니오, 즉 처리대상후보인 패킷 데이터(P)는 에러를 포함하고 있지 않다고 판단되는 경우에는, 처리는 상기한 단계(#8000, S818 및 S820)를 거쳐 단계(S822)로 진행된다. 즉, 상기한 단계(#400R)에서 결정된 처리를 실행하고(#8000), 처리가 끝난 패킷 데이터(P)를 데이터 버퍼링 장치(DBA3)로부터 출력(S820)한 후에, 당해 버퍼셀(Bc)을 해방(S822)한다.
단계(#8000)에서 처리대상으로 하는 제 i 트랜스포트 스트림(TSi)마다 고유의 포맷으로 구성된 패킷 데이터(Pi)에 대해서 사용자가 원하는 처리가 실시된다. 그리고, 처리는 다음 단계(S818)로 진행된다. 또한, 본 서브루틴에서의 처리에 대해서는 후에 도 10을 참조하여 설명한다.
단계(S818)에서는 상기한 단계(#8000)를 거쳐, 사용자의 요구에 따라서 적절하게 처리된 패킷 데이터(P)가 3차 버퍼셀(Bc_0)로부터 전송단위(TSd)마다 판독되고, 패킷 버퍼 제어기(260)를 경유하여 DMA 버스 조정기(210)로 전송이 개시된다. 그리고, 처리는 다음의 단계(S820)로 진행된다.
단계(S820)에서 TD 제어기(TDC)에 의해 단계(S800)에서 개시된 전송단위(TSd)마다 그 비트수를 카운트함으로써 DMA버스 조정기(210)로의 데이터전송이 완료되었는지 여부가 반복하여 판단된다. 또한, 데이터 전송이 완료된 시점에서 처리는 다음 단계(S822)로 진행된다. 이와 같이 하여 상기한 단계(S802~S820)를 거쳐 사용자의 요구처리를 하나의 패킷 데이터(P)에 대하여 완료한다. 그리고, 처리는 다음 단계(S822)로 진행한다.
한편, 상기한 단계(S810)에서 아니오, 즉 현재 액세스중의 패킷 데이터(P)는 상기한 사용자의 요구에 기초한 처리의 대상이 아니라고 판단되는 경우에는 처리는 상기한 단계(#8000, S818 및 S820)를 우회하여 직접 단계(S822)로 진행된다. 그리고, 처리대상인 패킷 데이터(P)만을 선택하고 단계(#8000)에서 사용자의 요구에 기초한 처리를 실시하고 단계(S818 및 S820)를 거쳐, 단계(#8000)의 처리결과 얻어지는 패킷 데이터(P)를 데이터 버퍼링 장치(DBA)의 외부에 출력한다.
단계(S822)에서 TD제어기(TDC)는 리드 포인터(RP)가 나타내는 버퍼셀 번호(Nbcn)에 상당하는 1차 버퍼셀(Bc_I)을 해방한다. 구체적으로는 상기한 단계(S806)에서 판독된 버퍼셀 번호(Nbcn)에 대응하는 1차 버퍼셀 할당정보영역(AIn)에 쓰여져 있는 할당 식별 데이터를 할당없이 고쳐 쓴다. 그리고, 처리는 다음 단계(S824)로 진행된다.
단계(S824)에서 TD제어기(TDC)는 리드 포인터(RP)가 나타내는 그래프 저장영역(Fc)의 에러 플랙값을 로우로 함으로써 에러 플랙을 리셋(오프)한다. 그리고, 처리는 상기한 단계(S802)로 되돌아간다.
상기한 바와 같이 차례차례 입력되는 복수의 트랜스포트 스트림(TS1~TSε)에 포함되는 복수의 프로그램에 대해서 사용자가 선택적으로 원하는 처리를 실시하기위해서는 다른 트랜스포트 스트림(TS)에 포함되는 모든 패킷 데이터(P)의 내에서 대응하는 패킷 데이터(P)에만 선택적으로 처리를 실시한다. 그러나, 다른 트랜스포트 스트림(TS)에서는 패킷 데이터(P)의 입력레이트가 다르거나 동일한 패킷 식별자(PID)를 갖는 패킷 데이터(P)가 존재하거나 복수의 패킷 데이터(P)가 동일하게 입력된다.
그래서, 본 실시형태에서는 입력되는 복수의 트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P)의 각각에 트랜스포트 스트림 식별자(TSID)와, 타임 스탬프(St)를 부여함으로서 패킷 데이터(P) 중 하나씩을 패킷 식별자(PID)와의 조합에 의해 확실하게 식별하는 것을 가능하게 한다. 그리고, 라이트 포인터(WP)에 의해 각각에 식별 가능해진 복수의 트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P)의 각각을 입력되어 오는 순서대로, 소정의 시간, 소정의 1차 버퍼셀(Bc_I)에 가둔다는 과정을 관리한다. 그리고, 리드 포인터(RP)에 의해 가둔 패킷 데이터(P)가 처리대상인지를 식별하고, 처리대상인 경우에는 처리를 실시한 후에 출력한다는 과정을 관리한다.
즉, 2차 버퍼셀(Bc_M)을 처리 작업 공간으로서 이용하여 1차 버퍼셀(Bc_I)에 가둔 패킷 데이터(P)에 처리를 실시하고, 3차 버퍼셀(Bc_0)내에서 패킷 데이터(P)의 처리 생성물로부터 패킷 데이터에 재구성하고, 그리고 재구성된 패킷 데이터를 패킷 버퍼(270)의 외부에 출력한다. 이들의 작업에 대해서는 후에 도 10~도 19를 참조하여 설명한다.
또한, 트랜스포트 스트림(TS)에 에러가 포함되는 경우에는 패킷 데이터(P)의 버퍼링 후의 처리가 파탄을 초래하거나, 멀티포맷 트랜스포트 스트림 디코더(TD)전체의 동작 효율의 저하를 초래한다. 그래서, 본 실시형태에서는 데이터 에러를 포함하는 패킷 데이터(P)를 저장한 1차 버퍼셀(Bc_I)을 소프트웨어적으로 관리 및 해방함으로써 이와 같은 불합리함을 방지한다. 상기 일련의 동작을 하드웨어와 소프트웨어의 하이브리드한 구성에 의해 제어보증하는 것이다.
또한, 상기한 바와 같이 입력되는 복수의 트랜스포트 스트림(TS1~TSε)은 각각에 고유의 패킷 식별자(PID)가 부여되어 있는 패킷 데이터(P)로 구성된다. 이와 같은 트랜스포트 스트림(TS)에 관해서는 본 발명에 관한 멀티포맷 트랜스포트 스트림 디코더(TD)에 의해 트랜스포트 스트림(TS)을 구성하는 모든 패킷 데이터(P)에 대해서 개별적으로 다른 처리를 실시할 수 있는 것은 상기한 바와 같다.
그러나, 입력되는 복수의 트랜스포트 스트림(TS1~TSε)은 도 40을 참조하여 설명한, ITU-T권고 H.220.0으로 대표되는 트랜스포트 스트림(TS)과 같이 패킷 데이터 그룹마다 고유의 패킷 식별자(PID)가 부여되는 경우에도 적용할 수 있다. 그와 같은 트랜스포트 스트림에 관해서는 TD제어기(TDC)에서 생성되는 처리대상 패킷 데이터 식별정보 패킷 식별자(PIDd)도, 1차 버퍼셀(Bc_I) 저장되어 있는 패킷 데이터(P)로부터 판독되는 추출버퍼 패킷 식별정보(PIDe)도 모두 패킷 데이터 그룹을 나타내고 있다. 단, 상기한 패킷 선택기(400)에 의해 매칭하고 있다고 판정된 경우에는 매치한 패킷 식별자(PID)를 갖는 패킷 데이터 그룹에 속하는 모든 패킷 데이터(P) 내에서 동일한 트랜스포트 스트림(TS)에 속하는 것에 대해서만 동일한 처리가 실시된다.
이것은 상기한 바와 같이 도 36에 도시한 패킷 구성을 갖는 트랜스포트 스트림(TS)의 모든 패킷 데이터(P)의 패킷 식별자(PID)의 상위의 적당한 자릿수에 속하는 트랜스포트 스트림(TS)을 지정함으로써, 트랜스포트 스트림(TS)마다 지정된 자릿수의 패킷 식별자(PID)가 동일한 패킷 데이터(P)를 그룹으로 하고, 그룹마다 고유의 처리를 실시하는 것과 실질적으로 동일하다.
다음에 도 10을 참조하여 상기한 #8000의 멀티포맷 패킷 데이터 처리 서브루틴의 상세한 내용에 대해서 설명한다. 본 서브루틴에서는 우선, 단계(#8200)의 「패킷 버퍼 저장확인」서브루틴이 실행된다.
단계(#8200)에서는 패킷 데이터(Pi)가 스트림 입력기로부터 패킷 단위로 패킷 데이터가 패킷 데이터셀에 축적이 완료될 때까지 대기한다. 축적이 종료되면 축적된 버퍼셀(Bc)로부터 선두의 관리 바이트를 판독한다. 그리고, 처리는 다음 단계(#8300)의 「포맷 해석」 서브루틴으로 진행된다.
단계(#8300)에서는 단계(#8200)에서 추출한 관리 바이트내의 포맷 식별자(FID)를 판정한다. 해당하는 포맷이 존재하면 해당 포맷의 처리로 진행한다. 여기에서는 포맷 3이 해당된 것으로 한다. 그리고, 처리는 다음 단계(#8400)의 「패킷 데이터링 제어」서브루틴으로 진행한다.
단계(#8400)에서 상기한 단계(#8200 및 #8300)의 처리의 결과에 기초하여, 저장한 패킷 데이터를 취득할지 파기할지를 선별(필터링)한다. 해당하는 패킷 버퍼셀에 저장된 패킷 데이터로부터 패킷 식별자(PID)를 추출한다. 또한, 관리 바이트 중의 트랜스포트 스트림 식별자(TSID)를 추출한다. 상기 트랜스포트 스트림 식별자(TSID)와 패킷 식별자(PID)를 패킷 선택기(400)에 설정하고, 패킷 선택기(400)의 패킷 데이터 필터를 기동한다.
또한, 상기 트랜스포트 스트림 식별자(TSID)와 패킷 식별자(PID)를 정리하여 패킷 선택의 비교 패턴으로 하는 것은 멀티스트림의 다른 스트림 입력기로부터의 입력에서, 다른 용도로 패킷 식별자를 할당하고 있는 경우에 패킷 식별자만으로 필터링하면 취득하지 않는 것도 취득하는 것도 있으므로, 스트림 입력기(Tr)로부터의 입력에 대응하여 패킷 선택을 실시하도록 하기 위함이다.
예를 들어, 예: 북미 지상파 디지털 방송(MPEG-TS)에서는 패킷 식별자(PID=000)는 PAT(Program Association Table)이다. PAT는 방송을 수신/디코드하는 데에 필요한 패킷 식별자(PID)를 명기한 테이블맵(PMT)이 있는 패킷 식별자를 명기한 데이터가 있는 섹션이다.
또한, 북미 위성 디지털 방송(DirecTV)에서는 패킷 식별자(SCID)=000는 Null패킷이다. Null은 방송의 비트레이트의 조정 등에 메워 넣어지는 패킷이고, 정보는 존재하지 않는다(TD에서는 파기되는 패킷). 미국에서의 상용에서 지상파 디지털/위성 디지털을 동시 수신할 때, 멀티포맷 트랜스포트 스트림 디코더(TD)에서 트랜스포트 스트림 식별자(TSID=0)로부터 북미 지상파/트랜스포트 스트림 식별자(TSID=1)로부터 북미 위성을 접속하여 수신했을 때 PAT를 취득하기 위해 패킷 식별자=000만으로 패킷 선택을 실시하면 불필요한 북미 위성의 NULL패킷까지 취득해 버린다. 이것을 피하기 위해 (트랜스포트 스트림 식별자(TSID/PID)=(0/000)의 패턴으로 패킷 선택을 실시한다.)
이 때문에, 제어기(PBAC)는 패킷 선택의 결과를 리드하고, 패킷 선택하는 것으로서 설정한 패턴과 일치했는지의 여부를 판단한다. 그리고, 처리는 다음의 단계(#8500)의 「액세스 대상 패킷에 대응하는 처리 요구 테이블 해석」 서브루틴으로 진행한다.
단계(#8500)에 있어서, 단계(#8400)에서 FMT1의 패킷 선택기(400)에서 비교 일치한 패킷을 취득하고, 처리요구에 따른 처리를 실시하기 위한 전준비를 실시한다. 패킷 선택기(400)에서 비교 일치한 경우, 설정 필터 패턴에 대응하여 TD 제어기(TDC)로부터 설정된 처리요구 테이블(Pdt)을 판독하다. 상기 처리요구 테이블(Pdt)은 설정 필터 패턴마다 준비되어 있다. 제어기(PBAC)에서는 일치한 설정 패턴용의 처리요구 테이블(Pdt)을 판독하다. 이 이후의 처리는 상기 취출한 처리요구 테이블(Pdt)에서의 각 매개변수값에 기초하여 실시된다. 그리고, 처리는 다음의 단계(#8600)의 「디스크램블 제어」 서브루틴으로 진행한다.
단계(#8600)에서는 제어기(PBAC)가 패킷 데이터의 스크램블 정보를 나타내는 데이터인 TSC(Transport Scramble Controller: 〔규격명을 명기〕)를 추출하고, #500_FMT에서 판독한 처리요구 테이블(Pdt)의 매개변수를 해석하고, 디스크램블 처리를 실시할지를 판단한다. 패킷 데이터에 스크램블이 걸려 있고(TSC에서 판단), 또한 처리요구 테이블(Pdt)에서 디스트램블을 실시하는 설정(매개변수(4))과 매개변수(7) 중 어느 것이 「실행」)의 경우에 디스크램블기(1100)에서 디스크램블 처리를 기동한다. 그 이외의 경우에는 디스크램블 제어기를 기동시키지 않고, 처리는 다음 단계(#8700)의 「패킷 데이터 패턴 선별제어」 서브루틴으로 진행한다.
단계(#8700)에서는 패킷 데이터 패턴 선별을 실시하는 섹션데이터선별기(1200)를 제어한다. 섹션 데이터 선별기(1200)는 제어기(PBAC)로부터 전송된 패킷 데이터가 TD제어기(TDC)로부터 설정된 설정 패턴과 일치하는지를 비교(필터링)하고, 그 설정 패턴과 일치한 데이터만을 취득하는 처리를 실시한다. 섹션 데이터 선별기(1200)로부터의 필터링의 결과를 제어기(PBAC)가 판독하고, 결과에 따라서 일치한 데이터의 사이즈를 해석하고, 그 데이터 사이즈분의 취득 데이터 정보를 유지하고, 다음 메인 메모리(900)에 출력하기 위한 메인 메모리 제어로 진행한다. 또한, 섹션 데이터 선별기(1200)에서 취득한 결과에 대해서, 제어기(PBAC)만으로 부가 데이터를 추가하는 것도 가능하다. 이 경우에는 섹션 데이터 선별기(1200)에서 취득한 데이터 사이즈에 제어기(PBAC)가 부가하는 부가 데이터 사이즈분을 가산하여 유지한다. 그리고, 처리는 다음 단계(#8800)의 「메인 메모리 제어」 서브루틴으로 진행한다.
단계(#8800)에서는 최종의 메인 메모리(900)에 출력하기 위한 메인 메모리 제어기(700)의 제어를 실시한다. 상기한 바와 같이 #8700의 「패킷 데이터 패턴 선별제어(Q:「서비스 정보 선출제어」에서는?)」서브 루틴까지의 처리에서 최종적 메인 메모리(900)에 출력하는 데이터가 작성된다. 동시에 제어기(PBAC)는 이 시점까지에서 메인 메모리(900)에 출력하는 데이터 사이즈, 데이터가 저장되어 있는 패킷 버퍼의 어드레스를 관리하고 있다. 또한, 제어기(PBAC)는 처리요구 테이블(Pdt)의 메인 메모리 출력정보(매개변수 5)에 있는 출력 채널을 메인 메모리 제어기(700)에 통지하고, 이들의 출력 데이터를 메인 메모리 제어기(700)에 전송한다. 메인 메모리 제어기(700)는 상기 정보를 기초로 지정한 출력 채널에 출력 데이터를 메인 메모리(900)에 저장해 간다. 그리고, 처리는 다음의 단계(#8900)의 「스트림 출력제어」 서브루틴으로 진행한다.
단계(#8900)에서는 멀티포맷 트랜스포트 스트림 디코더(TD)로부터 메인 메모리(900)와는 다른 경로로부터 패킷 데이터의 출력의 제어가 실시된다. 즉, 본 발명에 관한 멀티포맷 트랜스포트 스트림 디코더(TD)에서는 멀티스트림/포맷 처리가 가능하고, 또한 멀티 스트림 출력도 가능하다. 스트림 출력기(1300)는 단계(#8800)에서 메인 메모리(900)에 저장하는 것과 동시에 다른 경로로부터 패킷 데이터를 출력하기 위한 출력수단으로서 설치되어 있다.
여기에서는 상기 스트림 출력기(1300)를 제어하여 메인 메모리 출력과 동시에 다른 경로로부터 스트림 출력하는 제어를 실시한다. 제어기(PBAC)는 처리요구 테이블(Pdt)의 스트림 출력정보(매개변수 6)에 의해 스트림 출력할지를 판단한다.
스트림 출력 정보가 액티브하게 스트림출력하는 경우는 스트림출력하는 패킷 데이터를 스트림 출력기(1300)로 전송한다. 스트림 출력기(1300)로 전송하는 데이터는 시간 정보를 포함한 관리 바이트도 포함하여 전송한다.
스트림 출력기(1300)는 제어기(PBAC)로부터의 패킷 데이터를 수취하고, 비로소 관리바이트의 시간 정보(ATS)를 설정한다. TD제어기(TDC)로부터 설정된 스트림출력 지연값을 동시에 설정하고, 현재 시간(타이머값)이 ATS+스트림출력 지연값에 도달한 시점에서 패킷 데이터를 외부 경로로 출력한다. 이 때, 관리 바이트는 판단 기준에만 사용되고, 실제 패킷 데이터만이 출력된다.
제어기(PBAC)는 스트림 출력기(1300)에서의 스트림 출력이 끝나는 것을 관리하고, 종료한 것을 판단하면 할당되어 있는 패킷 버퍼셀을 개방하여, 다음 입력패킷 데이터에 재할당이 가능한 상태로 해둔다.
이상에 의해 1개의 패킷 데이터가 1개의 패킷 버퍼셀의 할당되고나서의 일련의 흐름이고, 이 일련의 처리가 종료되면 다시 단계(#8300)에서 다음 패킷 버퍼셀에 대해 처리가 실시된다.
여기서는 단계(#8300)에서 단계(#8900)까지의 흐름을 설명했지만, 단계(#8300)에서 단계(#8900)까지의 처리를 실시하고 있는 시간 내에서도 입력 스트림은 수신된 순간에 패킷 버퍼셀에 차례차례 도착순으로 저장된다.
다음에 도 11를 참조하여 상기한 단계(#8200)에서의 「패킷 버퍼 확인」서브루틴의 상세한 내용에 대해 설명한다.
본 서브루틴이 개시되면 우선 단계(S8202)에서 제어부 자체가 갖는 제어기(PBAC)용 제어 테이블(C1t), 제어용으로서 사용하는 스테이터스 신호를 초기화하고, 전 패킷에서 사용한 정보를 일단 클리어한다. 그리고, 처리는 다음 단계(S8204)로 진행한다.
단계(S8204)에서는 쓰기부분 버퍼셀 지정기(250)로부터 라이트 포인터(WP) 및 리드 포인터(RP)를 판독한다. 그리고, 판독된 라이트 포인터(WP)와 리드 포인터(RP)가 동일한지 여부가 판단된다. 동일하다고 판단되는 경우는 처리는 단계(S9206)로 진행한다. 한편, WP와 RP가 동일하지 않은 경우에는 처리는 단계(S8208)로 진행한다.
단계(S8206)에서는 제 i 스트림입력기(TSRi)로부터 입력되는 패킷 데이터(i)의 패킷 버퍼(270)로의 전송이 완료되기까지 대기한다. 이는 라이트 포인터(WP)는 패킷 버퍼에 패킷이 저장되면 하드웨어에 의해 1증가되기 때문에 라이트 포인터(WP)와 리드 포인터(RP)가 동일한 경우에는 제어기(PBAC)에서 처리하는 대상의 패킷이 존재하지 않는다. 이 때문에 패킷 버퍼에 패킷 데이터가 저장되는 것을 기다리는 것이다. 그리고, 처리는 다음 단계(S8208)로 진행한다.
단계(S8208)에서는 이미 상기한 단계(S8204) 또는 단계(S8206)를 거쳐 처리 대상 후보의 패킷 데이터를 저장하고 있는 것이 확인되고 있는 버퍼셀(Bc)을 특정한다. 즉, 버퍼셀 할당 정보 저장기(240)로부터 1차 버퍼셀 할당 정보(Iba)를 판독한다. 1차 버퍼셀 할당 정보(Iba)는 현재 RP가 나타내는 버퍼셀 번호(Nbc)이다. 이 처리에 의해 제어기(PBAC)가 처리하는 버퍼셀(Bc)을 안다. 그리고, 처리는 다음 단계(S8210)로 진행한다.
단계(S8210)에서 리드 포인터(RP)를 1증가한다. 리드 포인터(RP)는 소프트웨어로 제어한다. 즉, 단계(S8208)에서 특정된 처리 대상 패킷 버퍼셀을 검지받았기 때문에 다음 패킷 입력 완료 시점의 버퍼셀 번호(Nbc)를 저장할 수 있는 상태로 하는 것이다. 그리고, 처리는 다음 단계(S8212)로 진행한다.
단계(S8212)에서 축적 완료 버퍼셀 번호 메모리(290)로부터 할당된 버퍼셀 번호(Nbc)가 판독된다. 이에 의해 축적 완료 버퍼셀 번호 메모리(290)에 유지되어 있는, 단계(S8210)에서 할당된 버퍼셀(Bc)에 축적이 완료되어 있는 패킷 데이터의 축적 결과를 아는 것이다. 그리고, 처리는 다음 단계(S8214)로 진행한다.
단계(S8214)에서, 단계(S8212)에서 판독한 버퍼셀 번호(Nbc)를 패킷 처리에필요한 제어 테이블(Clt)에 보존한다. 제어 테이블(Clt)의 매개변수를 도 28에 도시한다. 버퍼셀 번호(Nbc)는 제어 테이블(Clt)의 매개변수(PMc6)(입력 TSP용 버퍼셀)에 보존한다. 그리고, 처리는 다음 단계(S8216)로 진행한다.
단계(S8216)에서, 단계(S8212)에 판독된, 축적된 패킷 버퍼셀에 있는 관리 바이트를 추출한다. 그리고, 처리는 다음 단계(S8218)로 진행한다.
단계(S8218)에서, 단계(S8216)에서 판독된 관리 바이트의 정보 중, FID값을 제어 테이블(Clt)의 매개변수(PMc9)(포맷 식별자)에 보존한다. 그리고, 본 「패킷 버퍼 저장 확인」서브루틴의 처리를 종료한다.
스트림 입력기(TSR)는 TD제어기(TDC)로부터 입력 스트림(TS)의 포맷, 제 1∼제 ε스트림 입력기(TSR1∼TSRε)의 접속을 지정한 후, 스트림의 공급을 개시한다. 이 때 TD제어기(TDC)에 의해 멀티포맷 트랜스포트 스트림 디코더(TD)의 동작이 개시한 시점에서 타이머(600)에 의해 시간을 카운트한다. 스트림의 공급이 개시되어, 도 1의 버퍼셀 할당기(230)에 의해 버퍼셀(Bc)을 할당하고, 패킷입력이 개시된 시점의 타이머(600)의 값(시간 정보)을 관리 바이트(BM)의 패킷 도착 시간 정보(ATS)에 부가한다.
마찬가지로 TD제어기(TDC)로부터 설정된 포맷값을 포맷식별자(FID)에 제 1∼제 ε스트림 입력기(TSR1∼TSRε)의 접속을 지정하여 접속한 제 i 스트림 입력기(TSRi)의 번호(i)를 멀티스트림 식별자 트랜스포트 스트림 식별자(TSID)에 부가하여 소성관리 바이트(BMh)를 구성한다.
스트림 출력 설정 정보(HSOUT)는 패킷 데이터의 입력 시점에서는 정보는 저장되어 있지 않다. 이 관리바이트 후에 실제 데이터(PD)에 지정된 패킷 버퍼셀에 실제 데이터(PD)를 차례차례 저장한다.
또, 상기에서는 실제 데이터(PD) 전에 관리바이트를 부가했지만, 도 23 및 도 24에 도시한 실제 데이터(PD) 후에 관리바이트를 부가하는 경우도 생각할 수 있다. 이 경우, 포맷 식별자(FID) 및 트랜스포트 스트림 식별자(TSID)를 부가하는 수단은 상기의 경우와 동일하다. 패킷 도착 시간 정보(ATS)는 도 1의 버퍼셀 할당기(230)에 의해 버퍼셀(Bc)의 할당이 결정되고, 지정 버퍼셀(Bc)에 지정 사이즈의 패킷 데이터의 저장이 종료된 시점의 타이머(600)의 값(시간 정보)이 부가되어 생성된다. 이후의 처리는 이 부가한 관리 바이트 정보를 이용하여 처리를 실시한다.
상기한 단계(#8200)에서의 「패킷 버퍼 확인」서브루틴에서 얻어진 포맷 식별자(FID)에 의해 다음 단계(#8300)의 「포맷 해석」서브루틴이 실행되고, 입력되는 트랜스포트 스트림(TS) 각각에 고유 포맷에 대응하는 포맷 처리가 인식된다.
계속해서 도 12를 참조하여 단계(#8400)의 「패킷 데이터 필터링」서브루틴의 상세한 내용에 대해 설명한다. 상기한 단계(#8300)에서의 「포맷 해석」으로 얻어진 포맷 식별자(FID)에 따라서 포맷 처리가 결정된다. 여기서는 그 1개의 포맷에 대한 처리에 대해 설명하지만, 트랜스포트 스트림(TS)마다 미리 정해진 포맷에 따라서 동일하게 처리되는 것은 물론이다.
비로소, 단계(S8402)에서 패킷 데이터 중 에러정보가 추출된다. 예를 들면 MPEG의 경우는 TEI(Transport Error Indicator)가 에러 정보에 상당한다. 그리고, 처리는 다음 단계(S8404)로 진행한다.
단계(S8404)에서 상기 단계(S8216)에서 추출된 관리바이트(BM)의 트랜스포트스트림 식별자(TSID)를 제어 테이블(Clt)의 매개변수(PMc8)에 보존한다. 그리고, 처리는 다음 단계(S8406)로 진행한다.
S8406에서, 단계(S8402)에서 추출된 에러 정보에 기초하여 처리 중인 패킷 데이터가 에러인지 여부를 판정한다. 스트림이 정상 스트림인 경우는 처리는 다음 단계(S8408)로 진행한다. 한편, 처리 중인 패킷 데이터가 에러 패킷인 경우에는 처리는 단계(S8418)로 진행한다.
단계(S8408)에서, 패킷 데이터내의 패킷 식별자(PID)를 추출한다. 이 패킷 식별자(PDID)와 상기한 단계(S8404)에서 보존된 트랜스포트 스트림 식별자(TSID)를 패킷 선택기(400)에 설정하여 패킷 선택처리를 기동시킨다. 그리고, 처리는 다음 단계(S8410)로 진행한다.
단계(S8410)에서, 패킷 선택기(400)는 단계(S8408)의 패킷 선택 처리 기동에 따라서 패킷 선택 처리를 개시한다. 패킷 선택기(400)는 TD제어기(TDC)에 의해 설정된 취득하는 패킷의 정보와 처리 중인 패킷의 트랜스포트 스트림 식별자(TSID)/패킷 식별자(PID)를 비교(필터링)한다. 즉, 처리 대상 트랜스포트 스트림 식별자(TSIDd)와 추출 트랜스포트 스트림 식별자(TSIDe)를 비교하고, 처리 대상 패킷 데이터 식별 정보(PIDd)와 추출 버퍼 패킷 식별 정보(PIDe)를 비교한다. 제어기(PBAC)는 패킷 선택기(400)의 패킷 선택(필터링) 처리가 종료하기까지 대기한다. 패킷 선택기(400)는 패킷선택 처리가 완료되면 제어부에 패킷선택 처리가 완료된 것을 통지한다. 그리고 처리는 다음 단계(S8412)로 진행한다.
단계(S8412)에서 상기한 단계(S8410)에서의 패킷 선택 완료를 인식 후, 패킷 선택의 결과를 패킷 선택기(400)로부터 판독한다. 그리고, 단계(S8410)에서의 조합 결과가 일치하는지 여부가 판단된다. 조합 결과가 일치한 경우에는 처리는 다음 단계(S8414)로 진행한다. 한편 조합 결과가 불일치한 경우, 처리는 후술하는 단계(S8416)로 진행한다.
단계(S8414)에서, 단계(S8412)에서의 패킷 선택의 결과 판정에 의해 비교 일치한 설정 패턴의 정보(이하: 엔트리라고 함)를 제어 테이블(Clt)의 매개변수(PMc4)에 보존한다. 그리고, 본 서브루틴의 처리를 종료한다.
한편, 단계(S8416)에서, 상기한 S8414에서 비교 불일치라는 판정에 따라서 제어 테이블(Clt)의 매개변수(PMc1)(패킷정보)를 1(패킷 선택 불일치)로 갱신한다. 이 루틴에 도달한 경우, 처리 패킷은 불필요한 패킷인 것을 나타내며, 이후의 패킷 처리는 이용하지 않는다. 따라서, 본 서브루틴을 종료하고, 처리는 상기한 단계(#8500, #8600, #8800)의 서브루틴을 스킵하여 단계(#8900)의 「스트림 출력 제어」서브루틴의 후술하는 「패킷 셀 개방」으로 진행한다.
또, 단계(S8418)에서는 상기한 단계(S8406)에서의 에러 패킷이라는 판정에 따라서 제어 테이블(Clt)의 매개변수(PMc)(패킷정보)를 2(입력 스트림 에러)로 갱신한다. 상기한 스트림(S8416)의 패킷 선택 결과 불일치인 경우와 마찬가지로, 이 루틴에 도달한 경우, 처리 패킷은 불필요한 패킷인 것을 나타내며, 이후의 패킷 처리는 이용하지 않는다. 이 때문에 본 서브루틴을 종료하고, 처리는 #900의 「패킷셀 개방」으로 진행한다.
다음에 도 13을 참조하여 #8500의 「액세스 대상 패킷 데이터에 대응하는 처리 요구 테이블 취득」서브루틴에 대해 상세히 설명한다. 상기한 단계(#8400)의 「패킷 데이터 필터링 제어」서브루틴과 마찬가지로 본 서브루틴에서도 단계(#8300)의 「포맷 해석」서브루틴으로 얻어진 포맷 식별자(FID)에 따라서 트랜스포트 스트림(TS)의 포맷마다 처리요구 테이블은 설정된다. 또, 이하에 1개의 포맷을 예시하여 설명하지만, 각 포맷마다 이하에 설명하는 처리를 적응할 수 있는 것은 물론이다. 또, 본 서브루틴 처리는 상기한 단계(#8400)의 「패킷 데이터 필터링 제어」서브루틴의 패킷 선택 처리에서 취득해야 할 패킷 데이터라고 판정된 경우만 실행되는 것은 이미 설명한 바와 같다.
본 서브루틴의 처리에 대해 구체적으로 설명하기 전에, 우선 도 28(제어 테이블 구성) 및 도 31(처리 요구 테이블)을 참조하여 제어 테이블(Clt) 및 처리요구 테이블(Pdt)에 대해 설명한다. 단계(#8400)의 패킷의 취득은 TD제어기(TDC)로부터 설정되는 패킷 식별자(PIDd)와 입력 패킷 데이터의 패킷 식별자(PIDe)를 비교(필터링)하는 것으로 판정되는 것은 이미 설명했다. 도 1의 멀티포맷 트랜스포트 스트림 디코더(TD)에서는 마찬가지로 TD제어기(TDC)에서 설정되는 처리 요구 테이블(Pdt)에 의해 취득한 패킷의 처리를 결정한다. 즉 TD제어기(TDC)는 취득 패킷의 패킷 식별자(PIDe)와 취득 패킷에 대한 처리요구 테이블(Pdt)을 함께 설정한다.
도 31에 처리 요구 테이블(Pdt)의 일례를 나타낸다. 또, 처리요구 테이블(Pdt)은 제어신호(ScW)에 포함되고, 패킷 버퍼링 조정기(PBAc)에 공급되는정보이다. 처리 요구 테이블(Pdt)에는 주로 디스크램블, 메인 메모리 출력, 스트림 출력을 실시할지의 지정 및 각 처리에 필요한 정보가 기재되어 있다.
처리 요구 테이블(Pdt)은 7개의 매개변수(PMp1, PMp2, PMp3, PMp4, PMp5, PMp6 및 PMp7)를 포함한다. 매개변수(PMp1)는 0 또는 1의 값으로 나타내어지고, 처리 요구 테이블(Pdt)의 사용 정보에 대응한다. 즉, 매개변수(PMp1)가 0은 처리요구 테이블(Pdt)이 무효인 것을 나타내고, 매개변수(PMp1)가 1은 처리 요구 테이블(Pdt)이 유효한 것을 나타낸다.
매개변수(PMp2)는 메인 메모리(900)에 출력하는 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)의 형식을 지정하는 출력형식 정보에 대응한다.
매개변수(PMp3)는 예를 들면 O∼P로 디스크램블 키가 저장되어 있는 번호를 나타내는 디스크램블 정보에 대응한다.
매개변수(PMp4)는 0 또는 1의 값으로 나타내어지고, 디스크램블 이네이블 정보에 대응한다. 매개변수(PMp4)가 0은 디스크램블이 미실행인 것을 나타내며, 매개변수(PMp4)가 1은 디스크램블이 실행되어 있는 것을 나타낸다.
매개변수(PMp5)는 0∼CHN(CHN은 임의의 자연수)으로 나타내어지는 메인 메모리 출력 정보에 대응한다. 0∼CHN은 메인 메모리(900)로 출력할 때의 채널번호를 나타낸다.
매개변수(PMp6)는 0 또는 1의 값으로 나타내어지고, 스트림 출력 정보에 대응한다. 매개변수(PMp6)가 0은 스트림 출력에 대해 처리 요구 테이블(Pdt)이 무효인 것을 나타낸다. 매개변수(PMp6)가 1은 처리 요구 테이블(Pdt)이 스트림 출력에대해 유효인 것을 나타낸다.
매개변수(PMp7)는 0 또는 1의 값으로 나타내어지고, 스트림 출력 디스크램블 이네이블 정보에 대응한다. 매개변수(PMp7)가 0은 스트림 출력 시 디스크램블을 실시하지 않는 것을 나타낸다. 매개변수(PMp7)가 1은 스트림 출력 시 디스크램블을 실시하는 것을 나타낸다. 이와 같이 하여 처리 요구 테이블(Pdt)에는 트랜스포트 스트림(TS)마다 사용자의 요구에 따라서 처리해야 할 정보가 기재되어 있다.
다음에 도 28에 제어 테이블(Clt)의 일례를 나타낸다. 또, 제어 테이블(Clt)은 복수의 신호에 기초하여 제어기(PBAC)에 의해 생성되는 정보이다. 제어 테이블(Clt)은 10의 매개변수(PMc1, PMc2, PMc3, PMdc, PMc5, PMc6, PMc7, PMc8, PMc9 및 PMc10)를 포함한다.
매개변수(PMd1)는 0, 1 또는 2의 값으로 나타내어지고, 패킷 데이터 정보에 대응한다. 즉, 매개변수(PMc1)가 0은 패킷 데이터가 정상인 것을 나타낸다. 매개변수(PMc1)가 1은 패킷 데이터 선택 불일치, 즉 버퍼셀(Bc)에 저장되어 있는 패킷 데이터는 처리대상이 아닌 것을 나타낸다. 매개변수(PMc1)가 2는 입력 스트림 에러를 나타낸다.
매개변수(PMc2)는 0 또는 1로 나타내어지고, 스크램블 정보에 대응한다. 매개변수(PMc2)가 0은 패킷 데이터는 스크램블되어 있지 않은 것을 나타낸다. 매개변수(PMc2)가 1은 패킷 데이터는 스크램블되어 있는 것을 나타낸다.
매개변수(PMc3)는 0 또는 1로 나타내어지고, 디스크램블 정보에 대응한다. 매개변수(PMc3)가 0은 디스크램블이 미실행인 것을 나타낸다. 매개변수(PMc3)가 1은 디스크램블 실행되어 있는(?) 것을 나타낸다.
매개변수(PMc4)는 0 또는 1의 값으로 나타내어지고, 스트림 출력 디스크램블 정보에 대응한다. 매개변수(PMc4)가 0은 디스크램블이 미실행인 것을 나타내고, 매개변수(PMc4)가 1은 디스크론블이 실행되어 있는 것을 나타낸다.
매개변수(PMc5)는 0∼N-1(N은 임의의 자연수)의 값으로 나타내어지는 패킷 조합 결과(엔트리) 정보에 대응한다. 0∼N-1의 각각은 조합 결과를 나타내는 엔트리의 번호를 나타낸다.
매개변수(PMc6)는 0∼M(M은 임의의 자연수)의 값으로 나타내어지고, 입력 TSP 필요 버퍼셀 정보에 대응한다. 0∼M의 각각은 입력된 패킷 데이터를 저장한 버퍼셀(Bc)의 버퍼셀 번호(Nbc)를 나타낸다.
매개변수(PMc7)는 0∼M(M은 임의의 자연수)의 값으로 나타내어지고, 디스크램블 TSP용 버퍼셀 정보에 대응한다. 0∼M의 각각은 디스크램블된 패킷 데이터를 저장한 버퍼셀(Bc)의 버퍼셀 번호(Nbc)를 나타낸다.
매개변수(PMc8)는 1∼ε의 값으로 나타내어지고, 스트림 입력기(TSR1∼ε)의 각각을 나타내는 스트림 식별자(TSID)에 대응한다.
매개변수(PMc9)는 1∼L(L은 임의의 자연수)의 값으로 나타내어지고, 트랜스포트 스트림(TS)마다 정해진 소정의 포맷을 나타내는 포맷 식별자(FID)에 대응한다.
매개변수(PMc10)는 해당 패킷 데이터에 대한 처리요구 일람을 기재한 처리 요구 테이블(Pdt)을 나타낸다. 이와 같이 하여 제어 테이블(Clt)에는 처리 대상인패킷 데이터에 대한 제어 정보가 기재된다.
도 13에 도시한 바와 같이, 단계(#8500)의 실행이 개시되면 우선 단계(S8502)에서 상기 패킷 선택 처리에서 취득된 패킷 데이터에 일치한 엔트리에 대응하는 처리 요구 테이블(Pdt)이 제어신호(ScW)로부터 판독된다. 즉, 제어 테이블(Clt)의 매개변수(PMc10)에 기재되어 있는 처리 요구 테이블(Pdt)이 판독된다. 그리고, 처리는 다음 단계(S8504)로 진행한다.
단계(S8504)에서 판독된 처리 요구 테이블(Pdt)의 매개변수(PMc1∼PMc7)의 값을 제어 테이블(Clt)의 매개변수(PMc1∼PMc10)의 대응하는 것에 부가하여 제어테이블(Clt)을 생성한다. 이는 TD제어기(TDC)가 설정하는 처리 요구 테이블(Pdt)을 판독하는 것만으로도 대응할 수 있다. 그러나, TD제어기(TDC)는 동적으로 이 처리 요구 테이블(Pdt)을 갱신하는 것이 가능하고, 또 멀티포맷 트랜스포트 스트림 디코더(TD)는 패킷 취득 설정시의 테이블의 정보로 처리할 필요가 있기 때문에 제어 테이블(Clt)에서 관리를 실시한다. 그리고, 처리는 다음 단계(S8506)로 진행한다.
단계(S8506)에서는 단계(S8502)에서 취득한 처리 요구 테이블(Pdt)의 매개변수(PMp6)(스트림 출력 정보)의 값을 처리 관리 바이트(BMp)의 스트림 출력 요구 정보(HSOUT)로 설정한다. 이는 후단의 스트림 출력 처리(#8900)에서 스트림 출력기(1300)가 이 처리 관리 바이트(BMp)에 기초하여 스트림 출력을 판단하기 때문이다. 그리고, 처리는 다음 단계(S8510)로 진행한다.
단계(S8510)에서, 단계(S8502)에서 취득한 처리 요구 테이블(Pdt)의 테이블 사용 정보(PMp1)에 의해 취득한 처리 요구 테이블(Pdt)의 정보가 유효인지를 판단한다. 처리 요구 테이블(Pdt)이 유효인 경우, 처리 요구 테이블(Pdt)의 취득은 종료하고, 본 서브루틴을 종료한다. 한편, 처리 요구 테이블(Pdt)이 무효인 경우는 처리는 단계(S8512)로 진행한다.
단계(S8512)에서, 제어 테이블(Clt)의 패킷정보(PMc1)의 값을 2(패킷 선택 불일치)로 갱신한다. 즉, 처리요구 테이블(Pdt)이 무효인 경우에는 입력되는 패킷 데이터가 에러라고 관리한다.
이상이 단계(#8500)의 「액세스 대상 패킷 데이터에 대응하는 처리 요구 테이블 취득」서브루틴의 상세한 내용이다. 또, 도 2에 도시한 바와 같이 관리 바이트(BM)가 실제 데이터(PD)의 선두에 부가했을 때의 처리에 대해 설명했지만, 도 23 및 도 24에 도시한 바와 같은 관리 바이트(BM)가 실제 데이터(PD)의 뒤에 부가된 경우에도 동일한 멀티포맷 트랜스포트 스트림 디코더(TD)를 적용할 수 있는 것을 도 14에 도시한 플로우차트를 참조하여 설명한다.
관리 바이트(BM)가 실제 데이터(PD)의 뒤에 부가되는 경우에는 도 14에 도시한 바와 같이 패킷 데이터의 실제 데이터(PD)의 선두에 부가되는 경우(도 13)의 플로우차트에 있어서, 단계(S8506)와 단계(S8510) 사이에 단계(S8508)의 처리가 새롭게 마련된다. 즉, 상기한 단계(S8508)에서는 처리 관리 바이트(BMp) 중의 스트림 출력 요구 정보(HSOUT)를 갱신했다. 그러나, 관리 바이트(BM)가 실제 데이터(PD) 뒤에 부가되는 경우는 도 23 및 도 24에 도시한 바와 같이 스트림 출력 요구 정보(HSOUT)를 설정한 소성 관리 바이트(BMh)를 버퍼셀(Bc)의 선두에 처리 관리 바이트(BMp)로서 쓴다. 이에 의해 이후의 처리는 동일하게 처리하는 것이 가능해진다.
계속해서, 도 15, 도 28, 도 31, 도 32 및 도 33을 참조하여 상기한 단계(#8600)의 「디스크램블 제어」서브루틴의 상세한 내용에 대해 설명한다. 상기한 단계(#8400) 및 단계(#8500)에서 액세스 대상 패킷 데이터를 선택하고, 처리 패킷 데이터에 대한 처리 내용을 기재한 처리 요구 테이블(Pdt)이 취득되면 본 서브루틴이 개시된다.
우선, 단계(S9602)에서 처리 대상의 패킷 데이터의 스크램블 판정 필드가 추출된다. 트랜스포트 스트림(TS)이 MPEG에 기초한 경우, TSC(Transport Scramble Control)가 스크램블 판정 필드에 적합하다. 이 스크램블 판정 필드에 의해 액세스 대상 패킷 데이터에 대한 스크램블의 유무를 알 수 있다. 그리고, 처리는 다음 단계(S8604)로 진행한다.
단계(S8604)에서 상기한 단계(#8500)에서 취득된 처리 요구 테이블(Pdt)의 디스크램블 이네이블(매개변수(PMp4)), 스트림 출력 디스크램블 이네이블(매개변수(PMp7))을 판독한다. 그리고, 처리는 다음 단계(S8606)로 진행한다.
단계(S8606)에서, 단계(S8602)에서 판독한 스크램블 판정 필드와, 단계(S8604)에서 판독한 디스크램블 이네이블(PMp4) 및 스트림 출력 디스크램블 이네이블(PMp7)에 기초하여 스크램블 처리를 실행할지 여부가 판단된다. 우선 스크램블 판정 필드에서 패킷 데이터에 스크램블이 걸려 있지 않다고 판단할 수 있는 경우, 처리는 S8610C로 진행한다. 스크램블 판정 필드에서 패킷 데이터에 스크램블이 걸려 있다고 판단할 수 있는 경우에는 처리는 단계(S8608)로 진행한다.
단계(S8608)에서, 단계(S8604)에서 판독된 디스크램블 이네이블(매개변수 4) 및 스트림 출력 디스크램블 이네이블(매개변수 7)로 디스크램블 처리를 실행할지를 판단한다. 즉, 매개변수(PMp4) 및 매개변수(PMp7)의 적어도 어느 하나의 값이 1이면 디스크램블을 실행한다고 판단된다. 그리고, 처리는 단계(S8610B)로 진행한다. 한편, 매개변수(PMp4) 및 매개변수(PMp7)의 값이 모두 1이 아니면 디스크램블을 실행하지 않는다고 판단된다. 그리고 처리는 단계(S8610A)로 진행한다.
단계(S8610A)에서 상기한 단계(S8608)의 디스크램블을 실행하지 않는다는 판단에 기초하여 제어 테이블(Clt)의 스크램블 정보(PMc2), 디스크램블 정보(PMc3) 및 스트림 출력 디스크램블 정보(PMc4)의 값이 설정된다. 그리고, 본 서브루틴의 처리를 종료한다.
단계(S8610C)에서는 상기한 단계(S8606)에서의 패킷 데이터가 스크램블되어 있지 않다는 판단에 기초하여 제어 테이블(Clt)의 스크램블 정보(PMc2), 디스크램블 정보(PMc3) 및 스트림 출력 디스크램블 정보(PMc4)의 값이 설정된다. 그리고, 본 서브루틴의 처리를 종료한다.
단계(S8610B)에서는 상기한 단계(S8608)에서의 디스크램블을 실행한다는 판단에 기초하여 제어 테이블(Clt)의 스크램블 정보(PMc2), 디스크램블 정보(PMc3) 및 스트림 출력 디스크램블 정보(PMc4)의 값이 설정된다. 그리고, 처리는 다음 단계(S8612)로 진행한다.
도 32를 참조하여 디스크램블 실행 여부 판정에 대해 설명한다. 상기 도면에 있어서, 좌측에서 스크램블 판정 필드란, 매개변수(PMp4)란, 매개변수(PMp7)란, 디스크램블 실행란, 매개변수(PMc2)란, 매개변수(PMc3)란, 매개변수(PMc4)란 및 바꿔쓰기 스크램블 판정 필드란이 설치되어 있다. 또, 매개변수(PMp4, PMp7)는 처리 요구 테이블(Pdt)을 구성하는 매개변수이고, 매개변수(PMc2, PMc3, PMc4)는 제어 테이블(Clt)을 구성하는 매개변수인 것은 상기한 바와 같다.
스크램블 판정 필드란의 값은 피스크램블 데이터(Dsdi)로부터 추출된다. 매개변수(PMp4) 및 매개변수(PMp7)는 제어신호(ScW)에 포함되는 처리요구 테이블(Pdt)로부터 추출된다. 디스크램블 실행란은 스크램블 판정 필드란, 매개변수(PMp4)란 및 매개변수(PMp7)란의 값에 기초하여 미실행/실행 중 어느 하나가 저장된다.
매개변수(PMc2)는 스크램블 판정 필드 및 매개변수(PMp4)의 값에 기초하여 0(스크램블 없음) 또는 1(스크램블) 중 어느 하나가 설정된다.
매개변수(PMc3)는 매개변수(PMp4) 및 디스크램블 실행의 값에 기초하여 0(디스크램블 미실행) 또는 1(디스크램블 실행) 중 어느 하나가 설정된다.
매개변수(PMc4)는 매개변수(PMp7) 및 디스크램블 실행 값에 기초하여 0(디스크램블 미실행) 또는 1(스크램블 실행) 중 어느 하나가 설정된다.
바꿔쓰기 스크램블 판정 필드는 스크램블 판정 필드 및 매개변수(PMp4)의 값에 기초하여 0(바꿔쓰기) 또는 1(바꿔쓰지 않기) 중 어느 하나가 설정된다.
상기한 단계(S8606, S8608)에서 설정된 정보에 기초하여 도 32에 나타낸 관계에 기초하여 제어 테이블(Clt)의 스크램블 정보(PMc2), 디스크램블 정보(PMc3)및 스트림 출력 디스크램블 정보(PMc4)가 설정된다.
단계(S8612)에서 패킷 데이터 내의 스크램블 판정 필드의 값을 바꿔쓰기한다. 여기서는 스크램블 있음을 스크램블 없음으로 변경하도록 바꿔쓴다. 그리고, 처리는 다음 단계(S8614)로 진행한다.
단계(S8614)에서 패킷 버퍼의 중간 처리용 버퍼셀 이네이블이 판독된다. 이 중간 처리용 버퍼셀 이네이블은 중간 처리용 버퍼셀 이네이블이 이네이블인 경우, 이네이블에 해당하는 패킷 버퍼셀이 사용 중인 것을 나타낸다. 그리고, 처리는 다음 단계(S8616)로 진행한다.
단계(S8616)에서 단계(S8614)에서 판독된 중간 처리용 버퍼셀 이네이블에 의해 미사용 버퍼셀(Bc)이 있는지 여부가 판정된다. 미사용 패킷 셀(Bc)이 없는 경우는 이 부분에서 사용 가능한 버퍼셀이 생기기까지 대기한다. 그리고, 처리는 다음 단계(S8618)로 진행한다.
단계(S8618)에서 단계(S8616)에서 미사용이라고 판정된 버퍼셀(Bc)로부터 디스크램블 처리의 출력 데이터를 저장하는 중간처리용 버퍼셀(Bc_M)을 결정한다. 해당하는 중간 처리용 버퍼셀(Bc_M)에 대응하는 중간처리용 버퍼셀 이네이블을 이네이블한다. 이에 의해 중간처리용 버퍼셀(Bc_M)이 사용 중인 것을 나타내고, 디스에이블 외의 처리에서 해당하는 중간 처리용 버퍼셀(Bc_M)이 사용되는 것을 방지한다. 그리고, 처리는 다음 단계(S8620)로 진행한다.
단계(S8620)에서 상기한 단계(S8618)에서 할당된 중간 처리용 버퍼셀(Bc_M)의 버퍼셀 번호(Nbc)를 제어 테이블(Clt)의 디스크램블 패킷 데이터용 버퍼셀정보(PMc7)로 설정한다. 그리고, 처리는 다음 단계(S8622)로 진행한다.
단계(S8622)에서 해당 패킷 데이터(P)가 저장되어 있는 버퍼셀(Bc)로부터 단계(S8618)에서 할당된 중간 처리용 버퍼셀(Bc_M)에 디스크램블 전송 후의 데이터를 전송한다. 실제로 스크램블 있음의 패킷 데이터(P)에 있어서, 스크램블이 걸려 있지 않은 부분(주로 헤더 부분)과 스크램블이 걸려 있는 부분(주로 페이로드라고 불리우는 실제 데이터(PD) 부분)이 존재한다. 여기서는 스크램블이 걸리지 않는 헤더 부분을 패킷 버퍼(Bc)로부터 중간 처리용 버퍼셀(Bc_M)로 데이터를 전송(복사)한다. 이 때문에, 전송원 어드레스, 전송처 어드레스 및 전송 바이트수가 설정된 후에 전송이 개시된다. 그리고, 처리는 다음 단계(S8624)로 진행한다(전후에서 버퍼셀((Bc_I, Bc_M, Bc_O)의 정의를 해 두는 도 2 참조)
단계(S8624)에서 단계(S8622)에서 전송을 개시한 스크램블이 걸리지 않는 부분의 전송이 종료하는 것을 기다린다. 그리고, 처리는 다음 단계(S8626)로 진행한다.
단계(S8626)에서 스크램블이 걸려 있는 대상 데이터 부분의 디스크램블 처리를 실시한다. 디스크램블 처리는 도 1의 디스크램블기(1100)가 실시한다. 이하에 도 33을 참조하여 디스크램블기(1100)에 의한 디스크램블 처리에 필요한 설정에 대해 설명한다.
도 10에 도시한 바와 같이 비로소 처리 패킷의 처리 요구 테이블(Pdt)의 디스크램블 정보(PMp3)를 판독한다. 디스크램블 정보에는 TD제어기(TDC)에서 설정한 디스크램블용 키가 저장되어 있는 장소가 나타내어져 있다. 그리고, 처리는 다음단계(S8628)로 진행한다.
단계(S8628)에서 상기한 단계(S8626)에서 판독된 디스크램블 정보에 해당하는 키 데이터가 디스크램블기(1100)의 디스크램블 키에 설정된다. 그리고, 처리는 다음 단계(S8630)로 진행한다.
단계(S8630)에서 해당 패킷 데이터(P)의 디스크램블기(1100)의 패킷 버퍼 판독 어드레스, 패킷 버퍼 판독 전송 사이즈, 패킷 버퍼 쓰기 개시 어드레스 및 패킷 버퍼 쓰기 전송 사이즈가 설정된다. 또, 도 33에 예시하는 바와 같이 디스크램블 키, 패킷 버퍼 판독 어드레스, 패킷 버퍼 판독 전송 사이즈, 패킷 버퍼 쓰기 개시 어드레스 및 패킷 버퍼 쓰기 전송 사이즈는 디스크램블 지시 제어 데이터(Dcr1)로서 제어기(PBAC)로부터 패킷 해석기(1000)의 디스크램블기(1100)에 공급된다. 그리고, 디스크램블 대상 데이터의 전송 디스크램블기(1100)로 개시된다. 처리는 다음 단계(S8632)로 진행한다.
단계(S8632)에서 디스크램블기(1100)에 전송되는 스크램블 데이터의 디스크램블이 개시된다. 그리고, 처리는 다음 단계(S8634)로 진행한다.
단계(S8632)에서 디스크램블기(1100)에 의한 스크램블 데이터의 디스크램블 처리의 종료를 기다린다. 디스크램블 처리가 종료하면 디스크램블기(1100)는 디스크램블 종료 통지 데이터(Dcrlo)로서 전송 종료 통지를 발행한다. 이에 의해 제어기(PBAC)는 디스크램블 처리가 종료되었다고 판단할 수 있다. 디스크램블 처리가 종료된 시점에서 단계(#8600)에서의 모든 처리가 종료된다. 또, 디스크램블이 종료된 시점에서는 도 2에 도시한 바와 같이 중간 처리용 패킷 버퍼셀(_M1)에 전송원에서 부가되어 있던 관리 바이트(BM)와 디스크램블된 패킷 데이터(1´)가 저장된다.
다음에 도 16, 도 33 [섹션 식별기로의 입력 정보·출력정보], 도 28 [제어 테이블 구성], 도 31 [처리 요구 테이블 구성]를 참조하여 단계(#8700)의 「패킷 패턴 선별처리의 상세한 내용에 대해 설명한다. 단계(#8600)의 「디스크램블 제어」서브루틴의 처리 후, 디스크램블 처리된 패킷 데이터에 대해, 섹션 데이터 선별기(1200)에 의한 패킷 패턴 선별처리를 실시한다. 이 섹션 데이터 선별기(1200)에서는 주로 설정된 패턴과 패킷 데이터를 비교하고, 패킷의 취사(필터링을 실시함). 섹션 데이터 선별기(1200)에서는 규격에 있는 섹션 데이터 이외에도 트랜스포트 스트림 패킷 데이터, PES 패킷, 엘리먼트리 스트림 등의 규격에 적응할 수 있는 것은 물론이다. 여기서는 일례로서 섹션데이터를 섹션데이터 선별기(1200)에 의해 패킷패턴 선별하는 방법을 설명한다.
우선, 단계(S8702)에서 제어 테이블(Clt)이 판독된다. 그리고, 처리는 다음 단계(S8704)로 진행한다.
다음에 단계(#8400)의 「패킷 데이터 필터링」서브루틴에서 취득된 패킷 식별자(PID)에 기초하여 필터링한 엔트리를 추출한다. 즉, 단계(#8400)에서 제어 테이블(Clt)에 보존된 엔트리를 판독한다. 다음에 엔트리에 대응하는 엔트리 테이블(TE)을 판독한다.
또, 도 6에 엔트리 테이블(TE)의 구성을 나타낸다. 엔트리 테이블(TE)은 디스크램블 종료 통지 데이터(Dcrlo)에 기초하여 제어기(PBAC)에서 생성되는 정보이다. 엔트리 테이블(TE)에는 1패킷 이상에 걸친 데이터에 대해 필터링을 실시하는 경우의 패킷 단위에서의 완결/계속 상태를 나타내는 스테이터스와, 패킷을 초과하여 계속되는 경우에 나머지 계속되는 바이트수의 정보가 기재되어 있다.
엔트리 테이블(TE)은 2개의 매개변수(PMe1, PMe2)를 포함한다. 매개변수(PMe1)는 0 또는 1의 값으로 나타내어지고, 스테이터스 정보에 대응한다. 즉, 매개변수(PMe1)가 0은 당해 데이터는 1패킷으로 완료되어 있고, 당해 패킷 데이터 후에 아직 데이터는 없는 것을 나타낸다.
매개변수(PMe2)는 매개변수(PMe1)가 1(계속 있음)인 경우의 나머지 렝스를 나타낸다. 도 7에 도시한 바와 같이 제어기(PBAC)는 소정 수(M)의 엔트리 테이블(TE)을 관리한다.
단계(S8704)에서 제어기(PBAC)는 해당하는 엔트리의 엔트리 테이블(TE)내의 스테이터스값을 판독한다. 그리고, 처리는 다음 단계(S8706)로 진행한다.
단계(S8706)에서 단계(S8702)에서 판독한 제어 테이블(Clt)의 패킷 정보(매개변수(PMc1))에 기초하여 패킷 데이터의 상태를 판단한다. 매개변수(PMc)가 0이 아닌, 즉 버퍼셀(Bc)에 축적되어 있는 패킷 데이터는 처리 대상이 아닌(매개변수(PMc1)=1, 패킷 선택 불일치) 경우, 또는 축적되어 있는 패킷 데이터에 에러가 있는(매개변수(PMc1)=2, 입력 스트림 에러) 경우에는 섹션 선별을 실시하지 않는다. 이 경우, 처리는 단계(#8900)의 「스트림 출력 제어」서브루틴으로 진행하여 전혀 처리하지 않고 해당하는 버퍼셀(Bc)을 개방한다. 이 처리에 의해 패킷이 파기되어 아무 것도 출력되지 않는다. 한편, 패킷이 정상(매개변수(PMc)=0)인 경우에는 처리는 다음 단계(S8708)로 진행한다.
단계(S8708)에서 섹션 필터 선별기(1100)에 전송하는 데이터의 선두 어드레스가 산출된다. 그리고, 처리는 다음 단계(S8710)로 진행한다.
단계(S8710)에서 처리 요구 테이블(Pdt)이 판독되어, 출력 형식 정보(매개변수(PMp2))가 추출된다. 이에 의해 대상 패킷 데이터에 고유로 정해진 패킷 포맷이 특정된다. 본 명세서에서는 섹션 출력에 지정된 것을 예로 이후의 처리를 설명한다. 그리고, 처리는 다음 단계(S8712)로 진행한다.
단계(S8712)에서, 단계(S8702)에서 판독된 제어 테이블(Clt)의 스크램블 정보(매개변수(PMc2))에 기초하여 처리 대상 후보의 패킷 데이터가 스크램블 상태인지 여부가 판단된다. 스크램블 상태(PMc2=1:스크램블 있음)라고 판단되는 경우는 처리는 단계(#8900)의 「스트림 출력 제어」서브루틴으로 진행하여, 처리 대상 후보의 패킷 데이터에 대해 전혀 처리하지 않고 해당하는 버퍼셀(Bc)을 개방한다. 이 처리에 의해 버퍼셀(Bc)에 저장되어 있는 대상 후보의 패킷 데이터(P)는 파기되고 스크램블 데이터는 출력되지 않는다.
한편, 단계(S8712)에서, 처리 대상 후보의 패킷 데이터는 스크램블이 걸려 있지 않은 상태(PMc2=0:스크램블 없음)라고 판단되는 경우, 처리는 단계(S8714)로 진행한다. 또, 여기서는 스크램블 데이터를 출력하지 않는 예를 나타내고 있지만, 스크램블 데이터도 출력하고 싶은 경우에는 이 단계(S8712)를 스킵하여 단계(S8714)로 진행하도록 구성하는 것으로, 도 1에 도시한 멀티포맷 트랜스포트 스트림 디코더(TD)의 아키텍쳐를 변경하지 않고 용이하게 실현할 수 있다.
단계(S8714)에서 엔트리 테이블(TE)의 매개변수(PMe1)에 기초하여 처리 대상 패킷 데이터의 스테이터스, 즉 계속이 있는지 여부가 판단될 수 있다. 계속이 있다(PMe1=1)고 판단되는 경우에는 처리 대상 후보 패킷 데이터의 정보를 판독하고나서 후속 패킷 데이터로 필터처리를 실시할 필요가 있다. 이 때문에 처리는 단계(S8740)로 진행한다.
한편, 단계(S8714)에서 이 패킷 데이터가 섹션패턴의 개시(Pme1=0)라고 판단되는 경우에는 당해 처리 대상 패킷 데이터에서 섹션 필터 패턴 선별을 실시한다. 이 때문에 처리는 다음 단계(S8716)로 진행한다.
단계(S876)에서, 처리 대상 후보의 패킷 데이터가 섹션 패턴의 개시일 때의 처리가 실시된다. 우선 패킷 데이터의 섹션 데이터의 길이를 나타내는 섹션 렝스 필드(MPEG)의 경우는 단계(Section_length)가 추출된다. 그리고 처리는 다음 단계(S8718)로 진행한다.
단계(S8718)에서, 단계(S8716)에서 추출된 섹션데이터 길이를 섹션 데이터 선별기(1200)에 입력하는 섹션 데이터 길이 필드 정보로 설정한다. 그리고, 처리는 다음 단계(S8720)로 진행한다.
도 33에 섹션데이터 선별기(1200)로의 입력정보·출력정보를 나타낸다. 제어기(PBAC)는 단계(S8704)에서 판독한 스테이터스(PMe1), 단계(S8708)에서 산출된 전송 데이터의 전송 어드레스, 전송 사이즈 및 전송처 어드레스가 단계(S8718)에서 섹션 선별 지시 제어데이터(Scrl)로서 설정된다. 전송처 어드레스는 도 2에 도시한 출력용 영역인 3차 버퍼셀(Bc_O)의 선두 어드레스를 설정한다. 설정이 종료되면 추가로 전송 기동 명령을 섹션 선별 지시 제어 데이터(Scr1)에 포함하여 섹션 데이터 선별기(1200)로 출력한다.
단계(S8720)에서 단계(S8718)에서 출력된 섹션 선별 지시 제어 데이터(Scr1)에 기초하여 섹션 데이터 선별기(1200)가 기동된다. 그리고, 처리시 다음 단계(S8722)로 진행한다.
단계(S8722)에서 섹션 데이터 선별기(1200)의 선별 처리가 종료하기까지 대기한다. 도 33에 도시한 바와 같이 섹션 데이터 선별기(1200)는 필터링 결과(MPe1), 필터링 통과 데이터 사이즈, 나머지 렝스수 및 전송 종료 통지로 이루어진 출력 섹션 선별 지시 제어 데이터(Scrlo)를 생성하여 제어기(PBAC)에 출력한다. 이 전송 종료 통지에 기초하여 섹션 데이터 선별기(1200)의 선별 처리가 종료된 것을 검출한다. 그리고, 처리는 다음 단계(S8724)로 진행한다.
단계(S8724)에서 섹션 데이터 선별기(1200)에서 선별한 선별 결과가 판독된다. 섹션 데이터 선별기(1200)에서 출력되는 출력 섹션 선별 종료신호(Scrlo)로부터 섹션 선별 결과인 필터링 후의 스테이터스, 필터링 통과 데이터 사이즈, 나머지 렝스 길이의 정보가 판독된다. 그리고, 처리는 다음 단계(S8726)로 진행한다.
단계(S8726)에서, 단계(S8724)에서 판독된 필터링 후의 스테이터스(섹션 선별 종료신호(Scrlo))에 기초하여 상기 처리 대상 후보 패킷 데이터인 섹션 데이터의 완결/계속 상태가 판단된다. 계속되고 있다(스테이터스=1)고 판단되는 경우, 처리는 단계(S8750)로 진행한다. 한편, 섹션데이터는 완결되어 있다(스테이터스=0)고 판단되는 경우 처리는 단계(S8728)로 진행한다.
단계(S8728)에서, 단계(S8726)에서의 섹션 데이터 선별 후 패킷 데이터가 완결되었다는 판단에 기초하여 엔트리 테이블(TE)의 스테이터스를 계속 없음(PMel=0)으로 갱신한다. 또, 나머지 렝스수를 0(PMe2=0)으로 갱신한다. 그리고 섹션 데이터 선별 후의 패킷 데이터가 완결된 경우의 본 서브루틴의 처리를 종료한다.
단계(S8740)에서는 단계(S8714)에서 계속되고 있다고 판단된 섹션 데이터의 처리가 실행된다. 즉, 엔트리 테이블(TE)의 스테이터스가 계속 있음(PMe1=1)을 나타내는 경우, 엔트리 테이블(TE)의 나머지 렝스수(PMe2)가 판독된다. 그리고, 처리는 단계(S8742)로 진행한다.
단계(S8742)에서, 이미 판독한 스테이터스(PMe1)를 도 33에 도시한 출력 섹션 선별 종료신호(Scrlo)의 스테이터스 정보로 설정하고, 나머지 렝스수(PMe2)를 마찬가지로 출력 섹션 선별 종료신호(Scrlo)의 섹션 데이터 길이 필드 정보로 설정하여 출력된다. 그리고, 처리는 상기한 단계(S8720)로 복귀하여, 이미 설명한 바와 같이 섹션 선별 지시 제어 데이터(Scrl) 신호를 설정하고, 섹션 데이터 선별기(1200)를 기동시킨다.
한편, 단계(S8750)에서, 단계(S8726)에서 섹션 데이터 선별 후에 패킷 데이터가 계속되고 있다고 판단된 경우의 처리가 실행된다. 즉, 도 33에 도시한 바와 같이 출력 섹션 선별 종료 신호(Scrlo)의 나머지 렝스수를 엔트리 테이블(TE)의 나머지 렝스수(PMe2)로 갱신한다. 그리고, 처리는 다음 단계(S8752)로 진행한다.
단계(S8752)에서, 도 33에 도시한 출력 섹션 선별 종료 신호(Scrlo)의 필터링 후의 스테이터스를 엔트리 테이블(TE)의 스테이터스로 갱신한다. 이 경우에는계속 있음(PMe1=1)으로 갱신된다. 이렇게 하여 테이블을 갱신하는 것으로 다음에 이 계속되는 섹션 데이터를 처리할 때 계속된 패킷 데이터라고 판단할 수 있다. 그리고 본 서브루틴을 종료한다.
이상과 같이 단계(#8700)의 「섹션 데이터 패턴 선별」서브루틴이 실행된 결과, 출력용 영역인 3차 버퍼셀(Bc_O)에 출력하는 데이터가 축적되어 있다.
다음에 포맷(3)의 패킷 셀보다 데이터 사이즈가 큰 패킷 데이터의 처리에 대해 도 2 및 도 17을 이용하여 설명한다.
본 발명의 트랜스포트 디코더에서는 패킷 셀보다 입력 데이터의 패킷 데이터가 큰 경우에는 패킷 셀의 최대 버퍼 용량 이하의 데이터 사이즈로 분할하여 1개의 패킷에 대해 복수의 패킷 셀에 저장한다.
포맷(3)의 패킷 데이터 사이즈를 K로 하면 K/N가 최대 버퍼셀 용량 이하이면 처리가 가능해진다. 또, N은 분할수를 나타낸다.
TD제어기는 이와 같은 K/N의 데이터 사이즈를 설정한다. 여기서는 구체적으로 K=480, 최대 데이터 용량=192, N=3일 때의 예를 나타내지만, 이 예 이외에도 패킷 데이터를 분할하여 상기 제한을 만족하면 동일하게 처리할 수 있다.
TD제어기가 160의 데이터사이즈를 설정하면 스트림 입력기는 480바이트 중, 160바이트가 입력된 시점에서 관리 바이트를 부가하고, 164바이트 단위로 패킷 버퍼 제어기는 패킷셀에 저장 종료 신호를 통지한다. 다음 161바이트째에서 320바이트의 입력, 321바이트째에서 480바이트의 입력으로도 동일한 처리를 실시하여 패킷셀에 저장된다. 다음에 이와 같이 저장된 분할 패킷 데이터의 처리에 대해 도 17을 이용하여 설명한다.
단계(S8750)에서, 상기 분할 패킷 데이터마다의 패킷셀에 저장한 데이터단위가 되는 선두데이터를 패킷 버퍼셀(O) 영역의 선두 어드레스로 쓴다. 이는 후단의 AV데이터로, 이 160바이트 단위로 데이터의 구획을 통지하는 것으로 AV디코드 처리의 처리 개시를 나타내는 신호를 동시에 통지한다. 이 선두데이터의 쓰기가 종료되면 단계(S8752)로 진행한다.
계속해서 단계(S8752)에서 저장된 패킷셀에서 해당하는 분할데이터를 패킷 버퍼셀(O) 영역의 상기 단계(S8750)에서 쓴 선두데이터의 다음 어드레스로 전송한다. 전송을 개시하면 단계(S8754)로 진행한다.
단계(S8754)에서는 단계(S8752)로 전송한 분할패킷 데이터 전송의 완료를 기다린다. 전송이 완료되면 해당 패킷의 처리를 종료한다.
이 단계(S8754)가 종료된 시점에서의 패킷 버퍼셀(O)영역에서는 도 2와 같이 선두데이터와 해당하는 160바이트의 분할 데이터가 저장된 상태가 된다. 이를 도착순으로 처리하는 것으로 원래의 패킷 데이터에 대해 분할 경계를 나타내는 선두데이터를 삽입하여 후단의 AV데이터에 출력한다. 또, 여기서는 특정 AV디코더의 인터페이스에 대응한 처리를 나타냈지만 다른 AV디코더와 같이 입력한 데이터를 그대로 출력하는 경우에는 단계(S8750)의 처리를 생략하는 것으로 입력 데이터를 출력하는 것에도 용이하게 대응할 수 있는 것은 물론이다.
계속해서 도 18을 참조하여 단계(#8800)의 「메인 메모리제어」서브루틴에 대해 상세히 설명한다. 또, 본 서브루틴은 도 2에 있는 모든 포맷에 공통된 처리이다. 또, 이상의 설명은 입력된 패킷이 패킷 해석기(270)에서 준비된 버퍼 중에서의 종단을 관리바이트(BMh)로 확인하고 있기 때문에 입력 패킷이 버퍼보다도 작으면 그 크기에 관계없이 처리할 수 있다.
단계(S8802)에서 제어테이블(Clt)의 처리 요구 테이블(Pdt(PMc10))을 판독한다. 그리고 처리는 다음 단계(S8804)로 진행한다.
단계(S8804)에서 단계(S8802)에서 판독된 처리요구 테이블(Pdt)로부터 메인 메모리 출력 정보(PMp5)를 판독한다. 이 메인 메모리 출력정보에는 메인 메모리(900)에 출력되는 유한 출력 채널이 설정되어 있고, 각 출력 채널에는 스타트 어드레스(SP), 엔드 어드레스(EP)로 파티셔닝되어 있다. 또, 각 채널에는 라이트 포인터(WPc), 리드 포인터(RPc)를 갖는다. 이 스타트어드레스(SP), 엔드어드레스(EP), 라이트 포인터(WPc)의 초기값 및 리드 포인터(RPc)의 초기값은 TD제어기(TDC)에 의해 설정된다. 그리고, 처리는 다음 단계(S8808)로 진행한다.
단계(S8808)에서, 해당하는 출력 채널의 사용 여부가 판단된다. 즉, 해당하는 출력 채널이 사용 허가는 TD제어기(TDC)에 의해 지시된다. 제어기(PBAC)는 해당 출력 채널이 사용 가능한지(전송이 허가되어 있는지)를 판정한다. 처리 요구 테이블(Pdt)로 지정한 출력 채널을 TD제어기(TDC)가 출력 허가하지 않은 경우는 제어기(PBAC)는 전송을 실시하지 않는다. 이 경우는 #900의 스트림출력 제어플로우로 진행되어 전혀 처리하지 않고 해당하는 패킷 버퍼셀을 개방한다. 이 처리에 의해 도 2에 도시한 출력용 영역(패킷셀(O))에 데이터가 저장되어 있어도 패킷이 파기되어 전혀 출력하지 않는다. 한편, 허가되어 있는 경우에는 처리는 단계(S8810)로 진행한다.
단계(S8810)에서, 단계(S8804)에서 설정된 메인 메모리 출력용 채널에 대해 TD제어기(TDC)가 설정하는 스타트 어드레스(SP)가 판독된다. 그리고, 처리는 다음 단계(S8812)로 진행한다.
단계(S8812)에서, 단계(S8804)에서 설정된 메인 메모리 출력용 채널에 대해 TD제어기(TDC)가 설정하는 엔드어드레스(EP)가 판독된다. 그리고, 처리는 다음 단계(S8814)로 진행한다.
단계(S8814)에서, 단계(S8810)에서 판독된 SP를 도 35에 도시한 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)의 저장 개시 어드레스(시작어드레스(SP))로 설정한다. 그리고, 처리는 다음 단계(S8816)로 진행한다.
단계(S8816)에서, 단계(S8812)에서 판독된 엔드어드레스(EP)를 도 35에 도시한 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)의 저장 종료 어드레스(엔드어드레스(EP))로 설정한다. 그리고, 처리는 다음 단계(S8818)로 진행한다.
단계(S8818)에서, 단계(S8804)의 메인 메모리 출력용 채널에 대해 TD제어기(TDC)가 설정하는 기록 어드레스(라이트 포인터(WPc))를 판독한다. 그리고 처리는 다음 단계(S8820)로 진행한다.
단계(S8820)에서, 단계(S8804)의 메인 메모리 출력용 채널에 대해 TD제어기(TDC)가 설정하는 메모리 출력용 채널에 대해 TD제어기(TDC)가 설정하는 판독 어드레스(리드 포인터(RPc))를 판독한다. 그리고, 처리는 다음 단계(S8822)로 진행한다.
단계(S8822)에서, 도 35에 도시한 선택 복수 TS복수 프로그램 패킷 데이터열(Pemm)의 나머지 설정을 판독한다. 나머지 설정은 패킷 버퍼 전송 개시 어드레스와 패킷 전송 사이즈이다. 패킷 버퍼 전송 개시 어드레스로서 도 2에 도시한 출력용 영역(패킷 셀_O)의 선두 어드레스가 설정된다. 패킷 전송 사이즈는 상기한 섹션 데이터 선별기(1200)를 통과한 데이터사이즈이다. 따라서, 도 33에 도시한 출력 섹션 선별 종료 신호(Scrlo)의 필터링 통과 데이터사이즈를 판독하여 패킷 전송 사이즈가 설정된다. 이상의 설정 후, 전송 기동 명령을 발행하여, 메인 메모리 제어기(700)가 기동된다. 그리고, 처리는 다음 단계(S8824)로 진행한다.
단계(S8824)에서, 단계(S8822)에서 기동된 메인 메모리 제어기(700)의 처리가 종료하기까지 대기한다. 제어기(PBAC)는 메인 메모리 제어기(700)의 처리 종료를 도 35에 도시한 출력신호(Pctrlo)의 전송 종료 통지에 기초하여 검출한다. 그리고, 처리는 다음 단계(S8826)로 진행한다.
단계(S8826)에서, 메인 메모리 제어기(700)에 의한 전송 제어 후에 오버플로우가 발생하고 있는지 여부를 도 35에 도시한 출력신호(Pctrlo)의 오버플로우 정보에 기초하여 판단된다. 오버플로우를 일으키는 상태는 패킷 데이터를 전송하여 라이트 포인터(WPc)가 진행한 경우에 리드 포인터(RPc)를 추월하는 경우이다. 오버플로우가 일어나고 있는 경우, 처리는 단계(S8834)로 진행한다. 정상으로 전송이 완료되어 있는(오버플로우 정보로 오버플로우 없음) 경우, 처리는 단계(S8828)로 진행한다.
단계(S8828)에서, 도 35에 도시한 출력신호(Pctrlo)의 전송 후 기록 어드레스(라이트 포인터(WPc))가 판독된다. 그리고, 처리는 다음 단계(S8830)로 진행한다.
단계(S8830)에서, 단계(S8828)에서 판독한 전송 후 기록 어드레스(라이트 포인터(WPc))로 해당 출력 채널의 라이트 포인터(WPc)가 갱신된다. 이에 의해 라이트 포인터(WPc)가 진행되고, 메인 메모리(900)에 데이터가 축적되어 있는 것을 TD제어기(TDC)로 알리는 것이 가능해진다. 그리고, 처리는 다음 단계(S8832)로 진행한다.
그리고, 단계(S8832)에서 메인 메모리(900)에 전송이 완료된 것이 상태 신호(SrW)에 의해 통지되어 본 서브루틴의 처리가 종료된다.
단계(S8834)에서, 단계(S8826)에서의 오버플로우의 상태라는 판단에 응답하여 메인 메모리(900)에 오버플로우가 된 것이 상태 신호(SrW)에 의해 통지되어 본 서브루틴의 처리를 종료한다.
계속해서 도 1, 도 19, 도 35, 도 28, 도 31을 참조하여 상기한 단계(#8900)의 「스트림 출력 제어」서브루틴에 대해 상세히 설명한다. 또, 스트림 출력 제어도 메인 메모리 제어 처리와 마찬가지로 도 2에 도시한 모든 포맷에 공통된 처리이다. 스트림 출력 처리에서는 이제까지 설명한 처리와 같이 필요 패킷 데이터의 버퍼셀(Bc)간의 전송 처리와는 별도로 이미 저장된 버퍼셀(Bc)로부터 스트림 출력기(1300)에 데이터가 출력된다. 즉, 이 메인 메모리(900)로의 출력과 스트림출력은 동시 처리로 진행한다.
본 발명의 멀티포맷 트랜스포트 스트림 디코더(TD)는 멀티스트림 입력 대응이다. 마찬가지로 스트림 출력에 관해서도 멀티스트림을 출력하는 것이 가능하다. 여기서는 2개의 트랜스포트 스트림(TS1, TS2)의 멀티스트림 출력하는 방법에 대해 설명한다.
우선, 단계(S8902)에서 제어 테이블(Clt)이 판독된다. 그리고, 처리는 다음 단계(S8904)로 진행한다.
단계(S8904)에서, S8902에서 판독한 제어 테이블(Clt)의 패킷 정보(PMc1)에 기초하여 현재 버퍼셀(Bc)에 저장되어 있는 패킷 데이터가 스트림 출력 대상인지 여부가 판단된다. 패킷 식별자(PID)에 의한 패킷 데이터 선택으로 불일치인 경우(패킷 데이터 정보=1)나 입력 스트림 에러의 경우, 처리는 단계(S8958)로 진행하여 버퍼셀(Bc)의 개방 처리로 이행한다.
한편, 단계(S8904)에서, 패킷 데이터가 정상인 경우(패킷 데이터 정보=0)라고 판단되는 경우, 처리는 단계(#10000)의 「제 1 스트림 출력 설정」서브루틴으로 진행한다. 또, 단계(#10000)의 처리에 대해 도 20을 참조하여 후술하지만, 단계(#10000)의 내부에서 처리가 분기하여 단계(#11000)의 「제 2 스트림출력 설정」서브루틴이 실행된다. 그리고, 단계(#10000) 및 단계(#11000)의 각각의 실행 후에 처리는 다음 단계(#13000)의 「스트림 출력 제어」서브루틴으로 진행하여 스트림 출력이 실행된다. 이후 도 21을 참조하여 상술하지만 단계(#11000)의 내부에서 처리가 분기하여 상기한 단계(S8958)로 진행한다.
본 예에서는 메인 메모리(900)에 출력한 것과 동일한 패킷 데이터를 스트림출력(도 1의 Pho1 및 Pho2)하는 경우의 처리를 나타내고 있다. 그러나, 출력 스트림을 수취하는 회로에서 패킷 데이터의 판단이 가능한 경우는 입력 스트림을 그대로 스트림 출력기(1300)로부터 출력하는 용도도 생각할 수 있다. 이와 같은 용도에 적응하는 경우에는 본 단계(S8904)를 생략하는 것으로 전체 패킷 데이터 출력에 대응할 수 있다.
도 20을 참조하여 단계(#10000)의 「제 1 스트림 출력 설정」서브루틴에 대해 상세히 설명한다. 상기한 단계(S8904)에서, 패킷 데이터가 정상이라고 판단된 경우에는 본 서브루틴이 개시된다.
우선 단계(S10006)에서, 제 1 스트림 출력(도 1Pho1)의 스트림 출력 설정이 판독된다. 그리고, 처리는 다음 단계(S10008)로 진행한다. 또, 스트림 출력기(1300)는 TD제어기(TDC)가 설정할 수 있는 스트림출력 설정에 기초하여 동작한다. 스트림 출력 설정에는 스트림 출력 정보와 스트림 식별자의 2개의 설정이 있다. 스트림 출력 정보라는 것은 스트림 출력 처리의 스트림출력을 실시할지 여부의 정보이다. 스트림 식별자라는 것은 제 1∼제 ε스트림입력기(TSR1∼TSRε)의 어떤 스트림 데이터(TSi)를 스트림 출력기(1300)에 출력할지를 규정하는 정보이고, 상기한 대상 트랜스포트스트림 식별 정보(TSIDd)이다.
단계(S10008)에서, 단계(S10006)에서 판독된 스트림 출력 정보가 취출된다. 그리고, 처리는 다음 단계(S10010)로 진행된다.
단계(S10010)에서, 단계(S10008)에서 취출된 TD제어기(TDC)로 설정된 스트림 출력 정보에서, 고속 출력의 실행이 설정되어 있는지 여부가 판단된다. 고속출력이 설정되어 있는(스트림 출력정보=1) 경우, 처리는 단계(S10012)로 진행한다. 한편, 고속출력이 설정되어 있지 않은(스트림 출력정보=0) 경우, 처리는 단계(#11000)의 「제 2 스트림 출력 설정」서브루틴으로 진행한다.
단계(S10012)에서, 단계(S10006)에서 판독된 스트림 식별자(TSIDd)가 취출된다. 그리고, 처리는 다음 단계(S10014)로 진행한다.
단계(S10014)에서, 단계(S10002)에서 판독한 제어 테이블(Clt)의 추출 트랜스포트 스트림 식별자(TSIDe)가 판독된다. 그리고, 처리는 다음 단계(S10016)로 진행한다.
단계(S10016)에서, 단계(S10006)에서 취출된 대상 트랜스포트 스트림 식별 정보(TSIDd)와, 단계(S10012)에서 취출된 추출 트랜스포트 스트림 식별자(TSIDe)가 일치하는지 여부가 판단된다. 일치라고 판단되는 경우는 처리는 스트림을 출력하기 위한 단계(S10018)로 진행한다. 불일치라고 판단되는 경우는 스트림은 스트림 출력기(1300)에 출력되지 않고, 처리는 단계(S10036)의 「제 2 스트림출력설정」서브루틴으로 진행한다.
단계(S10018)에서, 제어 테이블(Clt)의 버퍼셀 번호(PMc6)가 판독된다. 제어기(PBAC)에서 버퍼셀 번호는 스크램블 정보(PMc2), 스트림출력 디스크램블 정보(PMc4), 입력 패킷 데이터용 버퍼셀 정보(PMc6), 디스크램블 패킷 데이터용 버퍼셀 정보(PMc7)에 기초하여 판단된다. 그리고, 처리는 다음 단계(S10020)로 진행한다.
단계(S10020)에서 단계(S10018)에서 결정된 버퍼셀 번호가 출력순 버퍼셀 번호 메모리(520)에 기록된다. 그리고, 처리는 다음 단계(S10022)로 진행한다.
단계(S10022)에서, 출력순 버퍼셀 번호 메모리 제어기(510)의 라이트 포인터(WPc)가 1만큼 증가된다. 이 처리에 의해 라이트 포인터(WPc)와 리드 포인터(RPc)를 관리하는 것으로 스트림출력이 적정하게 실시된다. 리드 포인터(RPc)는 스트림 출력기(1300)가 해당하는 라이트 포인터(WPc)에 있는 패킷 데이터의 출력이 끝나면 리드 포인터(RPc)가 1만큼 증가된다. 이와 같이 하여 제 1 스트림출력 설정이 완료된다. 그리고, 처리는 단계(S10026)로 진행하여 제 2 스트림 출력의 판정이 개시된다.
도 21을 참조하여 단계(#11000)의 「제 2 스트림출력 설정」서브루틴에 대해 상세히 설명한다. 본 서브루틴의 단계(S10026)∼단계(S10042)의 처리는 각각 단계(#10000)의 「제 1 스트림출력 설정」서브루틴의 단계(S10006)∼(S10022)에 대응한다. 차이는 본 단계는 제 2 스트림으로서 고속 출력에 대응하고 있는 점이다. 이 때문에 도 21에서는 단계(S1026)∼단계(S10042)의 각각에 있어서, 제 2 스트림의 변화에 고속 출력이라고 표기되어 있다. 따라서 각 단계의 처리에 대한 설명을 생략한다.
단, 단계(S11032) 및 단계(S11036)에서 모두 No라고 판단된 경우, 처리는 단계(#1100)로 진행한다. 이와 같이 「제 2 스트림출력 설정」서브루틴 후에 동일한 내용의 「제 i 스트림출력 설정」서브루틴을 차례로 추가하여 설치하는 것에 의해 임의의 수의 스트림출력을 실시할 수 있다.
계속해서 도 22를 참조하여 단계(#12000)의 「스트림출력 제어」서브루틴에 대해 상세히 설명한다. 상기한 바와 같이 단계(#10000) 또는 단계(#1100)의 처리가 종료되면 본 단계의 처리가 개시된다.
우선, 단계(S12046)에서 해당 버퍼셀(Bc)의 전송 설정을 실시한다. 도 35에 도시한 전송 개시 어드레스 또는 전송 바이트수는 단계(S10014) 또는 단계(S11034)에서 판단한 버퍼셀(Bc)번호의 선두 어드레스가 지정된다. 저장되어 있는 패킷 데이터의 전송 바이트수는 트랜스포트 스트림 식별 정보(TSIDe)를 제어기(PBAC)에 의해 관리되어 있는 포맷 정보와 조합된 포맷에 기초하여 설정된다. 설정 후, 스트림 출력의 전송 기동 명령이 발행되어 스트림 출력을 위한 데이터 전송이 개시된다. 그리도, 처리는 다음 단계(S12048)로 진행된다.
단계(S12048)에서, 리드 포인터(RPc)에 기초하여 제 1 스트림의 패킷 데이터의 버퍼셀에서 스트림 출력기(1300)로의 전송이 종료되어 있는지 여부가 판단된다. 즉, 리드 포인터(RPc)가 스트림 출력기(1300)에 의해 진행되면 전송 종료라고 판단된다. 전송 종료라고 판단되는 경우에는 처리는 다음 단계(S12050)로 진행한다. 한편, 전송 종료라고 판단되지 않는 경우는 전송 종료라고 판단되기까지 대기하지 않고 처리는 단계(S12052)로 진행한다.
단계(S12050)에서, 단계(S12048)에 의한 제 1 스트림의 패킷 데이터의 전송 종료라는 판단에 따라서 해당 버퍼셀이 개방된다. 그리고, 처리는 다음 단계(S12052)로 진행한다.
단계(S12052)에서, 상기 단계(S12048)와 마찬가지로 리드 포인터(RPc)에 기초하여 제 2 스트림의 패킷 데이터의 버퍼셀에서 스트림 출력기(1300)로의 전송이 종료되어 있는지 여부가 판단된다. 종료라고 판단되면 처리는 다음 단계(S12054)로 진행한다.
단계(S12054)에서, 단계(S12054)와 마찬가지로 해당 버퍼셀이 개방된다. 그리고, 본 서브루틴의 처리를 종료한다.
한편, 단계(S12052)에서, 전송 종료라고 판단되지 않는 경우에는 처리는 본 서브루틴의 처리를 종료한다.
이하에 도 36, 도 37, 도 38, 도 39 및 도 40을 참조하여 상기한 멀티포맷 트랜스포트 스트림 디코더(TD)의 기본 개념에 대해 설명한다. 본 실시형태에서는 복수의 트랜스포트 스트림(TS1∼TSε)에 포함되는 복수의 프로그램의 컨텐츠 데이터를 선택적으로, 트랜스포트 스트림(TS)에 고유 포맷에 따라서 가공하는 용도로 이용된다.
도 36에 본 발명에 따른 멀티포맷 트랜스포트 스트림 디코더에 입력되는, 각각이 복수의 프로그램의 컨텐츠를 제공하는 2개(ε=2)의 트랜스포트 스트림(TS1, TS2)의 구성에 대해 설명한다. 상기 도면에는 적어도 3개의 다른 프로그램 1, 프로그램 2, 프로그램 3, …, 프로그램(α1)을 제공하는 제 1 트랜스포트 스트림(TS1)의 구성예와, 적어도 6개의 다른 프로그램 1, 프로그램 2, 프로그램 3, 프로그램 4, 프로그램 5, 프로그램 6, …, 프로그램(α2)을 제공하는 제 2 트랜스포트 스트림(TS2)의 구성예가 도시되어 있다.
또, 제 2 트랜스포트 스트림(TS2)의 프로그램 1, 프로그램 2 및 프로그램 3은 트랜스포트 스트림(TS1)의 프로그램 1, 프로그램 2 및 프로그램 3과는 기본적으로 다른 것이지만 동일해도 좋다. 또, 제 2 트랜스포트 스트림(TS2)의 프로그램1, 프로그램 2 및 프로그램 3은 지면의 사정상 도시되어 있지 않다.
상기 도면에 있어서도, 도 42를 참조하여 설명한 바와 같이, 트랜스포트 스트림(TS)을 구성하는 패킷 데이터(P)의 각각이 1개의 테두리로서 표시되어 있다. 각각의 패킷 데이터(P)에는 각각 고유의 패킷 식별자(PID)가 부여된다.
이와 같이, 본 발명에 따른 멀티포맷 트랜스포트 스트림 디코더에 입력되는 복수의 트랜스포트 스트림(TS)의 각각에는 동일한 프로그램 번호를 갖는 프로그램이 중시되어 존재한다. 또, 패킷 데이터(P)에는 트랜스포트 스트림(TS)마다 패킷 식별자(PID)가 부여되기 때문에 복수의 트랜스포트 스트림(TS)의 각각에는 동일한 패킷 식별자(PID)를 갖는 패킷 데이터(P)가 중시되어 존재한다.
제 1 트랜스포트 스트림(TS1)에서, 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc101_2, …)는 프로그램 1을 구성하는 영상데이터이고, 프로그램 컨텐츠 패킷 데이터(Pc111_1, Pc111_2, …)는 프로그램 1을 구성하는 음성 데이터이다. 마찬가지로 프로그램 컨텐츠 패킷 데이터(Pc201_1, Pc201_2, …)는 프로그램 2의 영상데이터고, 프로그램 컨텐츠 패킷 데이터(Pc211_1, Pc211_2, …)는 프로그램 2의 음성데이터이다. 또, 프로그램 컨텐츠 패킷 데이터(Pc301_1, Pc301_2, …)는 프로그램 3의 영상데이터고, 프로그램 컨텐츠 패킷 데이터(Pc311_1, Pc311_2, …)는 프로그램 3의 영상데이터이다.
제 2 트랜스포트 스트림(TS2)에 있어서, 프로그램 컨텐츠 패킷 데이터(Pc401_1, Pc401_2, …)는 프로그램 4의 영상데이터이고, 프로그램 컨텐츠 패킷 데이터(Pc411_1, Pc411_2, …)는 프로그램 4의 음성데이터이다. 마찬가지로프로그램 컨텐츠 패킷 데이터(Pc501_1, Pc501_2, …)는 프로그램 5의 영상데이터이고, 프로그램 컨텐츠 패킷 데이터(Pc511_1, Pc511_2, …)는 프로그램 5의 음성데이터이다. 또, 프로그램 컨텐츠 패킷 데이터(Pc601_1, Pc601_2, …)는 프로그램 6의 영상데이터이고, 프로그램 컨텐츠 패킷 데이터(Pc611_1, Pc611_2, …)는 프로그램 6의 음성 데이터이다.
또, 입력되는 트랜스포트 스트림(TS)은 3이상이라도 좋고, 각 트랜스포트 스트림(TS)을 제공할 수 있는 프로그램 수는 3이상이라도 좋은 것은 물론이다. 또, 트랜스포트 스트림(TS)에는 제공하는 프로그램 수에 따라서 대응하는 프로그램 컨텐츠 패킷 데이터(Pc)가 포함된다. 프로그램의 내용에 따라서는 영상이나 음성 이외의 데이터(예를 들면, 문자정보)에 대응하는 프로그램 컨텐츠 패킷 데이터(Pc))도 포함되는 것도 동일하다.
또, 제 1 트랜스포트 스트림(TS1) 및 제 2 트랜스포트 스트림(TS2)에 있어서도 프로그램 컨텐츠 패킷 데이터(Pc) 사이에 전송경로 및 처리상의 요인으로 정해지는 빈도로 프로그램 컨텐츠 관리표(PAT)와 프로그램 컨텐츠데이터 관리표(PMT)가 배열되어 구성된다.
제 1 트랜스포트 스트림(TS1)에 관해서는 프로그램 1, 2 및 3의 프로그램 컨텐츠 내에서 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc111_1, Pc201_1, Pc211_1, Pc301_1, Pc311_1) 전체 프로그램 컨텐츠의 패킷식별자(PID)를 기록한 프로그램 컨텐츠 패킷 데이터 관리표(PMT1, PMT2, PMT3)와, 이것들의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 각각 패킷 식별자(PID)와 대응 프로그램을 나타내는 프로그램컨텐츠 관리표(PAT)가 배치되어 있다.
프로그램 컨텐츠 관리표(PAT)에는 프로그램 1의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷식별자(PID)는 100이고, 프로그램 2의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 200이고, 프로그램 3의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 300이고, …, 프로그램(α1)의 프로그램 컨텐츠패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 α1 00이라고 기술되어 있다.
제 2 트랜스포트 스트림(TS2)에 관해서는 프로그램(4, 5, 6)의 전체 3종류의 프로그램 컨텐츠내에서 프로그램 컨텐츠 패킷 데이터(Pc401_1, Pc411_1, Pc501_1, Pc511_1, Pc601_1, Pc611_1) 전에 전체 프로그램 컨텐츠의 패킷 식별자(PID)를 기록한 프로그램 컨텐츠 패킷 데이터 관리표(PMT1, PMT2, PMT3)와, 이것들의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 각각의 패킷 식별자(PID)와 대응 프로그램을 나타내는 프로그램 컨텐츠 관리표(PAT)가 배치되어 있다.
프로그램 컨텐츠 관리표(PAT)에는 프로그램 4의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 400이고, 프로그램 5의 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 500이고, 프로그램 6의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 패킷 식별자(PID)는 600이고, …, 프로그램(α2)의 프로그램 컨텐츠 패킷 데이터 관리표(PMT)는 α2 00이라고 기술되어 있다.
또, 트랜스포트 스트림(TS)에 포함되는 패킷 데이터(P)의 종류에 따라서 그 도착 빈도는 크게 다르므로 프로그램 컨텐츠 관리표(PAT), 프로그램 컨텐츠 패킷데이터 관리표(PMT), 프로그램 컨텐츠 패킷 데이터(Pc) 및 그 외의 패킷이 동일한 트랜스포트 스트림(TS)의 내부에서 뒤섞여 배치되어 있는 것도 있는 것은 단일 트랜스포트 스트림(TS)이 입력되는 경우와 동일하다.
또, 도 36에 있어서는 묘화 상의 관계에 의해 제 1 트랜스포트 스트림(TS1)과 제 2 트랜스포트 스트림(TS2)이 패킷 단위로 동기되어 있는 것처럼 보이지만 대체적으로 동기하고 있지 않다. 따라서, 제 1 트랜스포트 스트림(TS1)의 프로그램 컨텐츠 패킷 데이터(Pc)와, 제 2 트랜스포트 스트림(TS2)의 프로그램 컨텐츠 패킷 데이터(Pc)가 멀티포맷 트랜스포트 스트림 디코더(TD)에 동시에 입력되는 경우도 그렇지 않은 경우도 있다. 또, 제 1 트랜스포트 스트림(TS1) 및 제 2 트랜스포트 스트림(TS2)을 구성하는 패킷 데이터(P)는 각각 트랜스포트 스트림(TS)마다 고유 포맷으로 생성되어 있기 때문에 트랜스포트 스트림(TS)이 다르면 패킷 데이터(P)의 사이즈도 다른 것도 많다.
도 37에 본 발명에 따른 멀티포맷 트랜스포트 스트림 디코더에 의해 도 36에 도시한 패킷 구성을 갖는 제 1 트랜스포트 스트림(TS1)에서 제 1 선택 복수 프로그램 패킷 데이터열(Pem1)을 추출하고, 제 2 트랜스포트 스트림(TS2)에서 제 2 선택 복수 프로그램 패킷 데이터열(Pem2)을 추출하는 상태를 나타낸다. 본 예에서는 제 1 선택 복수 프로그램 패킷 데이터열(Pem1)은 프로그램 1 및 프로그램 2의 패킷 데이터(P)를 포함하고, 제 2 선택 복수 프로그램 패킷 데이터열(Pem2)은 프로그램 3 및 프로그램 4의 패킷 데이터(P)를 포함한다.
바꿔 말하면, 제 1 트랜스포트 스트림(TS1)의 프로그램 1 및 프로그램 2를구성하는 패킷 데이터(P)의 각각에 원하는 처리를 실시한 후에 제 1 선택 복수 프로그램 패킷 데이터열(Pem1)로서 추출하고, 마찬가지로 제 2 트랜스포트 스트림(TS2)의 프로그램 3 및 프로그램 4를 구성하는 패킷 데이터(P)의 각각에 원하는 처리를 실시한 후에 제 2 선택 복수 프로그램 패킷 데이터열(Pem2)로서 추출한다. 그리고, 제 1 선택 복수 프로그램 패킷 데이터열(Pem1) 및 제 2 선택 복수 프로그램 패킷 데이터열(Pem2)이 혼합되어 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)로서 메인 메모리 제어기(700)에 출력된다.
메인 메모리 제어기(700)는 입력된 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)에 포함되는 복수의 트랜스포트 스트림(TS)에 속하는 프로그램 컨텐츠 패킷 데이터(Pc)를 조정하여 메인 메모리(900)에 출력한다. 결과, 메인 메모리(900)의 내부에서 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)이 형성된다. 이것은 트랜스포트 스트림(TS)에 포함되는 패킷 데이터(P)는 트랜스포트 스트림(TS)이 다르면 그 패킷 데이터 사이즈, 전송레이트 및 도착 타이밍 등이 다르기 때문에, 다른 트랜스포트 스트림(TS)에 포함되는 패킷 데이터(P)가 동시에 입력되는 것이 있기 때문이다.
또, 도 36 및 도 37에 나타내는 예에서는 트랜스포트 스트림(TS)마다 다른 프로그램 번호를 갖는 프로그램이 추출되므로 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)에 있어서, 프로그램 번호나 패킷 식별자(PID)가 중시하는 패킷 데이터(P)가 존재하지 않는 것처럼 보인다. 그러나, 제 1 트랜스포트 스트림(TS1)과 제 2 트랜스포트 스트림(TS2)으로 같은 프로그램 번호의 프로그램을 추출할 경우는선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)에 있어서 동일 프로그램 번호를 갖는 다른 프로그램 컨텐츠 패킷 데이터(Pc)가 존재한다. 또, 패킷 식별자(PID)에 관해서는 프로그램 번호와는 관계없이 트랜스포트 스트림(TS)마다 고유로 그 패킷 데이터(P)에 부여되므로, 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)에 있어서 동일한 패킷 식별자(PID)를 갖는 다른 패킷 데이터(P)가 존재한다.
또, 지정 프로그램 이외의 트랜스포트 스트림(TS1)의 프로그램 3을 나타내는 프로그램 컨텐츠 패킷 데이터 관리표(PMT3)나 제 2 트랜스포트 스트림(TS2)의 프로그램 6의 프로그램 컨텐츠 패킷 데이터 관리표(PMT6)가 추출되는 것도 있다. 이와 같이 입력되는 트랜스포트 스트림(TS)에 연속적으로 배열된 패킷 데이터(P)에서 소정 복수의 프로그램에 대응하는 패킷 데이터(P)만이 이산적으로 추출되고, 또 멀티포맷 트랜스포트 스트림 디코더(TD)에 도착한 순번으로 출력된다.
도 38에 외부에 설치된 프론트 엔드부를 통해 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력된 트랜스포트 스트림(TS1, TS2)에서 추출된 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)에 포함되는 패킷 데이터(P)의 각각의 메인 메모리(900)의 축적 상태의 일례를 나타낸다. 또, 상기 도면에 있어서, 멀티포맷 트랜스포트 스트림 디코더(TD)에 있어서, 메인 메모리(900) 이외의 구성요소는 TD’로 표시되어 있다.
메인 메모리(900)는 복수 TS 복수 프로그램 영상 컨텐츠 패킷 데이터열(PmsmV)을 구성하는 프로그램 컨텐츠 패킷 데이터((Pc101_1, Pc401_1, Pc201_1, Pc501_1, …)를 저장하는 영상 패킷 저장 영역 A(video)과, 복수 TS 복수프로그램 음성 컨텐츠 패킷 데이터열(PmsmS)을 구성하는 프로그램 컨텐츠 패킷 데이터(Pc111_1, Pc411_1, Pc211_1, Pc511_1, …)를 저장하는 음성 패킷 저장 영역(A(audio))을 갖는다.
메인 메모리(900)는 또 프로그램 컨텐츠 관리표(PAT)의 정보 및 프로그램 컨텐츠 패킷 데이터 관리표(PMT)를 저장하는 PAT저장영역((Ar)(PAT))을 갖는다. 그러나, 메인 메모리(900)의 PAT저장 영역((A)(PAT))과는 다르고, PAT 저장 영역((Ar)(PAT))에는 입력되는 트랜스포트 스트림(TS1∼TSε)의 각각에 전용으로 저장하기 위해 세분화되어 있다. 이와 같은 구성에 있어서, 메임메모리(900)는 트랜스포트 스트림(TS)마다 선별하여 프로그램 컨텐츠 관리표(PAT)를 저장하는 PAT 저장 영역(Ar(PAT))과, 프로그램 컨텐츠 패킷 데이터 관리표(PMT)의 정보를 트랜스포트 스트림(TS)마다 선별하여 저장하는 PMT 저장 영역(Ar(PMT))을 갖는다.
또, PMT 저장 영역(Ar(PMT))은 트랜스포트 스트림(TS)에 포함되어 있는 프로그램 컨텐츠 패킷 데이터 관리표(PMT)(프로그램)의 종류(α)만큼 준비되는 것은 물론이다. 이와 같이 구성하는 것에 의해 입력되는 트랜스포트 스트림(TS)마다 판독한 관리 패킷 데이터(PcA)를 식별하여 관리할 수 있기 때문에 앞으로 신호 분배되는 프로그램에 관한 정보를 트랜스포트 스트림(TS)마다 용이하게 알 수 있다.
프로그램 영상 컨텐츠 패킷 데이터(PcV)인 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc401_1, Pc201_1, Pc501_1, …)가 영상 패킷 저장영역A(Video)내에 서로 틈없이 저장되는 것에 의해 프로그램 영상 컨텐츠 패킷 데이터(PcV)(복수 TS 복수 프로그램 영상 컨텐츠 패킷 데이터열(PmsmV)가 형성된다. 마찬가지로 프로그램 음성 컨텐츠 패킷 데이터(PcS)인 프로그램 컨텐츠 패킷 데이터(Pc111_1, Pc411_1, Pc2111_1, Pc511_1, …)이 음성 패킷 저장 영역(A(audio))내에 서로 틈없이 저장되는 것에 의해 프로그램 음성 컨텐츠 패킷 데이터(PcS(복수 TS 복수 프로그램 음성 컨텐츠 패킷 데이터열(PmsmS))가 형성된다.
도 39에 선택 복수 TS 복수 프로그램 패킷 데이터열(Pemm)로 생성되는 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)의 구성의 일례를 나타낸다. 본 예에서는 제 1 트랜스포트 스트림(TS1)의 프로그램 1의 프로그램 영상 컨텐츠 패킷 데이터(PcV)인 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc101_2, …)와, 프로그램 2의 프로그램 영상 컨텐츠 패킷 데이터(PcV)인 프로그램 컨텐츠 패킷 데이터(Pc) 프로그램(201_1, Pc201_2, …)이 추출된다. 그리고, 제 2 트랜스포트 스트림(TS2)의 프로그램 4의 프로그램 영상 컨텐츠 패킷 데이터(PcV)인 프로그램 컨텐츠 패킷 데이터(Pc401_1, Pc401_2, …)와, 프로그램 5의 프로그램 영상 컨텐츠 패킷 데이터(PcV)인 프로그램 컨텐츠 패킷 데이터(Pc501_1, Pc501_2, …)가 추출되고, 예를 들면 프로그램 컨텐츠 패킷 데이터(Pc101_1, Pc401_1, Pc201_1, Pc501_1, Pc101_2, Pc401_2, Pc201_2, Pc501_2, …)의 순번으로 복수 TS 복수 프로그램 영상 컨텐츠 패킷 데이터열(PmsmV)로서 메인 메모리(900)에 출력된다.
마찬가지로, 제 1 트랜스포트 스트림(TS1)의 프로그램 1 및 프로그램 2의 프로그램 음성 컨텐츠 패킷 데이터(PcS)인 프로그램 컨텐츠 패킷 데이터(Pc111_1, Pc111_2, …)와 프로그램 컨텐츠 패킷 데이터(Pc211_1, Pc211_2, …)가 추출되고, 또 트랜스포트 스트림(TS2)의 프로그램 3 및 프로그램 4의 프로그램 음성 컨텐츠패킷 데이터(PcS)인 프로그램 컨텐츠 패킷 데이터(Pc411_1, Pc411_2, …)와 프로그램 컨텐츠 패킷 데이터(Pc511_1, Pc511_2, …)가 추출되어, 프로그램 컨텐츠 패킷 데이터(Pc111_1, Pc411_1, Pc211_1, Pc511_1, Pc111_2, Pc411_2, Pc211_2, Pc511_2, …)의 순번으로 복수 TS 복수 프로그램 음성 컨텐츠 패킷 데이터열(PmsmS)음성 스트림으로서 메인 메모리(900)에 출력된다.
지금까지 각각 고유 패킷 식별자(PID)를 갖는 패킷 데이터(P)로 구성 트랜스포트 스트림(TS)의 경우에 대해 설명햇다. 그러나, ITU=T 권고 H.220.0로 대표되는 트랜스포트 스트림(TS)은 그것을 구성하는 모든 패킷 데이터(P)의 각각에 고유 패킷 식별자(PID)가 부여되어 있지 않다. 그 트랜스포트 스트림(TS)을 구성하는 패킷 데이터(P)의 내용마다 분류되는 이른바 패킷 데이터 그룹마다 고유 패킷 식별자(PID)가 부여된다.
도 40에 그와 같은 패킷 데이터 그룹마다 패킷 식별자(PID)가 부여된 2개의 트랜스포트 스트림(TS1, TS2)의 패킷 구성을 예시한다. 도 36에 도시한 예와 마찬가지로 도 40에서도 적어도 3개의 다른 프로그램 1, 프로그램 2, 프로그램 3, …, 프로그램α1를 제공하는 제 1 트랜스포트 스트림(TS1)의 구성예와, 적어도 6개의 다른 프로그램 1, 프로그램 2, 프로그램 3, 프로그램 4, 프로그램 5, 프로그램 6, …, 프로그램α2를 제공하는 제 2 트랜스포트스트림(TS2)의 구성예가 도시되어 있다.
제 1 트랜스포트 스트림(TS1)에 있어서, 프로그램 1의 영상 데이터는 프로그램 컨텐츠 패킷 데이터(Pc101)라고 규정되고, 음성 데이터는 프로그램 컨텐츠 패킷데이터(Pc111)라고 규정된다. 프로그램 2의 영상데이터는 프로그램 컨텐츠 패킷 데이터(Pc201)라고 규정되고, 음성데이터는 프로그램 컨텐츠 패킷 데이터(Pc211)라고 규정된다. 프로그램 3의 영상데이터는 프로그램 컨텐츠 패킷 데이터(Pc301)라고 규정되고, 음성데이터는 프로그램 컨텐츠 패킷 데이터(Pc311)라고 규정된다.
제 2 트랜스포트 스트림(TS2)에 관해서도 제 1 트랜스포트 스트림(TS1)과 마찬가지로 프로그램 4의 영상데이터는 프로그램 컨텐츠 패킷 데이터(Pc401)라고 규정되고, 음성 데이터는 프로그램 컨텐츠 패킷 데이터(Pc411)라고 규정된다. 프로그램 5의 영상 데이터는 프로그램 컨텐츠 패킷 데이터(Pc401)라고 규정되고, 음성 데이터는 프로그램 컨텐츠 패킷 데이터(pc511)라고 규정된다. 프로그램 6의 영상데이터는 프로그램 컨텐츠 패킷 데이터(Pc601)라고 규정되고, 음성데이터는 프로그램 컨텐츠 패킷 데이터(Pc611)라고 규정된다.
이와 같이, 트랜스포트 스트림(TS)을 구성하는 모든 패킷 데이터(P)의 각각에 고유 패킷 식별자(PID)가 부여되는 것이 아니라, 그 패킷 데이터(P)의 종류마다 고유 패킷 식별자(PID)가 부여되는 것을 제외하고는 도 40에 도시한 트랜스포트 스트림(TS)도 도 36을 참조하여 설명한 트랜스포트 스트림(TS)과 마찬가지로 구성된다.
이와 같은 패킷 구성을 갖는 복수의 트랜스포트 스트림(TS1∼TSε)에 상기한 멀티포맷 트랜스포트 스트림 디코더(TD)를 적응한 경우의 동작에 대해 설명한다. 패킷 데이터(P)의 내용마다 분류되는 패킷 데이터 그룹마다 고유 패킷 식별자(PID)가 부여되는 것은 도 36에 도시한 트랜스포트 스트림(TS)의 패킷 데이터(P)의 패킷식별자(PID)의 상위 3행만을 지시하는 것과 실질적으로 동일하다. 즉, 본원에서도 제 1 트랜스포트 스트림(TS1)에서 프로그램 컨텐츠 패킷 데이터(Pc101)와 프로그램 컨텐츠 패킷 데이터(Pc201)를 추출하고, 또 제 2 트랜스포트 스트림(TS2)에서 프로그램 컨텐츠 패킷 데이터(Pc401)와 프로그램 컨텐츠 패킷 데이터(Pc501)를 추출하는 것에 의해 도 38에 도시한 프로그램 영상 컨텐츠 패킷 데이터(PcV)와 실질적으로 동일한 프로그램 영상 컨텐츠 패킷 데이터를 생성할 수 있다.
마찬가지로 패킷 식별자(PID)가 201인 모든 패킷 데이터(P)는 프로그램 2의 영상데이터인 프로그램 컨텐츠 패킷 데이터(Pc201)라고 규정된다. 패킷 식별자(PID)가 211인 모든 패킷 데이터(P)는 프로그램 2의 음성 데이터인 프로그램 컨텐츠 패킷 데이터(Pc211)로 규정된다.
또, 패킷 식별자(PID)가 301인 모든 패킷 데이터(P)는 프로그램 3의 영상 데이터인 프로그램 컨텐츠 패킷 데이터(Pc301)로 규정된다. 패킷 식별자(PID)가 311인 모든 패킷 데이터(P)는 프로그램 3의 음성데이터인 프로그램 컨텐츠 패킷 데이터(Pc311)라고 규정된다.
이와 같이, 트랜스포트 스트림(TS)을 구성하는 모든 패킷 데이터(P)의 각각에 고유 패킷 식별자(PID)가 부여되는 것이 아니라, 그 패킷 데이터(P)의 종류마다 고유 패킷 식별자(PID)가 부여되는 것을 제외하고는 본 도면에 나타내는 트랜스포트 스트림(TS)도 도 36을 참조하여 설명한 트랜스포트 스트림(TS)과 마찬가지로 구성된다. 또, 원칙으로서 동일 패킷 식별자(PID)를 갖는 복수의 패킷 데이터(P)는 스트림 작성시에 있어서, 그 제시하는 순번으로 배열된다. 그 결과, 수신측에서는차례로 입력되는 트랜스포트 스트림(TS)의 모든 패킷 데이터(P)의 각각에 대해 패킷 식별자(PID)마다 수신한 순번으로 소정 처리를 실시하는 것에 의해 정보를 추출할 수 있다.
이와 같은 패킷 구성을 갖는 트랜스포트 스트림(TS)에 상기한 본 발명의 실시형태에 따른 멀티포맷 트랜스포트 스트림 디코더(TD)를 적응한 경우의 동작에 대해 설명한다. 패킷 데이터(P)의 내용마다 분류되는 패킷 데이터 그룹마다 고유 패킷 식별자(PID)가 부여되는 것은 도 36에 도시한 트랜스포트 스트림(TS)에 패킷 데이터(P)의 패킷 식별자(PID)의 상위 3행만을 지시하는 것과 실질적으로 동일하다. 즉, 본 예에서도 프로그램 컨텐츠 패킷 데이터(Pc101)와 프로그램 컨텐츠 패킷 데이터(Pc201)를 추출하는 것에 의해 도 38에 도시한 프로그램 영상 컨텐츠 패킷 데이터(PcV)와 실질적으로 동일한 패킷 구성의 복수 프로그램 영상 컨텐츠 패킷 데이터열을 생성할 수 있다. 마찬가지로 프로그램 컨텐츠 패킷 데이터(Pc111)와 패킷 데이터(P211)를 추출하는 것에 의해 도 38에 도시한 프로그램 음성 컨텐츠 패킷 데이터(PcS)와 실질적으로 동일한 패킷 구성의 복수 프로그램 음성 컨텐츠 패킷 데이터열을 생성할 수 있다.
또, 제 1 트랜스포트 스트림(TS1)을 구성하는 패킷 데이터는 제 1 트랜스포트 스트림(TS1)에 고유로 정해진 포맷으로 생성되어 있다. 마찬가지로 도 2의 트랜스포트 스트림(TS2)을 구성하는 패킷 데이터는 제 2 트랜스포트 스트림(TS2)에 고유로 정해진 포맷으로 생성되어 있다. 이에 대해서는 이후 도 5를 참조하여 설명한다.
이는 상기한 바와 같이 제 1 트랜스포트 스트림(TS1)을 구성하는 패킷 데이터와 제 2 트랜스포트 스트림(TS2)을 구성하는 패킷 데이터는 각각의 트랜스포트 스트림에 고유의 포맷으로 구성되어 있다. 이 때문에 제 1 트랜스포트 스트림(TS1)을 구성하는 패킷 데이터와 제 2 트랜스포트 스트림(TS2)을 구성하는 패킷 데이터에서는 그 사이즈가 다른 경우가 있다. 또, 제 1 트랜스포트 스트림(TS1)과 제 2 트랜스포트 스트림(TS2)에 있어서, 그 패킷 사이즈가 동일한 경우에도 각각의 패킷 데이터가 멀티포맷 트랜스포트 스트림 디코더(TD)에 동시핵에 도착한다고는 한정되지 않기 때문이다.
즉, 트랜스포트 스트림(TS)이 다르면 늦게 도착한 패킷 데이터(P)가 먼저 도착한 패킷 데이터(P)를 추월하여 메인 메모리(900)에 출력되게 된다. 이와 같은 경우, 도착한 순번으로 혼합선택 복수 프로그램 패킷 데이터열(Pems)로서 출력하는 것에 의해 메인 메모리(900) 중에 바르게 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)을 형성하는 것은 불가능하다. 따라서, 이와 같은 사태에서도 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)에 있어서, 다른 트랜스포트 스트림(TS)으로부터 추출된 패킷 데이터(P)를 바르게 재생할 수 있도록, 트랜스포트 스트림(TS)에 있어서의 패킷 데이터(P)의 시계열 정보가 필수이다.
이와 같이 메인 메모리(900) 내에 구성된 복수 TS 복수 프로그램 영상 컨텐츠 패킷 데이터열(PmsmV) 및 복수 TS 복수 프로그램 음성 컨텐츠 패킷 데이터열(PmsmS)이 메인 메모리 제어기(700)에 의해, 도 38에 나타낸 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)로서 판독되어 멀티포맷 트랜스포트 스트림디코더(TD)의 외부로 출력된다.
그래서 본 실시형태에서는 차례차례 입력되어 오는 트랜스포트 스트림(TS)을 구성하는 전체 패킷 데이터(P)를 각각 버퍼링하고, 또한 각각 버퍼링되어 있는 패킷 데이터(P)를 식별하여 동 패킷 데이터(P)가 사용자가 소망하는 처리대상인지를 판단하고, 동 패킷 데이터(P)에 대한 액세스 및 처리를 실시간 제어하는 데이터 버퍼링 기능을 구비한다. 또 실시간 처리시간 내에서의 액세스 또는 가공시간을 보증하기 위해, 대상 패킷 데이터를 버퍼셀 내에 소정 시간만큼 확보하는 것을 소프트웨어 제어로 보증하고, 그 이외의 수동적 처리에 대해서는 하드웨어 제어에게 맡긴다. 결과, 패킷 데이터(P) 단위에서의 보다 유연한 식별관리를 가능하게 하고, 식별된 패킷 데이터(P)에 대해 고유의 포맷마다 적절하게 처리를 실시하는 후행정에 대한 처리 타이밍 조정도 용이한 멀티포맷 트랜스포트 스트림 디코더를 제공하는 것이다.
도 1로 되돌아가 멀티포맷 트랜스포트 스트림 디코더(TD)의 구성요소의 각각에 대해 상세하게 설명한다. 제 1 스트림 입력기(TSR_1)~제 ε스트림 입력기(TSR_ε)는 각각 외부의 트랜스포트 스트림원(도시하지 않음)에서 패킷 단위로 공급되는 트랜스포트 스트림(TS1~TSε)에 각각을 개별로 식별하기 위한 ID인 트랜스포트 스트림 식별자(TSID)를 부여한다.
타이머(600)는 멀티포맷 트랜스포트 스트림 디코더(TD)의 기동과 함께 시계를 개시하고, 각 패킷 데이터(P)가 도착한 시간정보(TT)를 스트림 출력기(1300) 및 스트림 입력기(TSR)에 출력한다.
트랜스포트 스트림 식별자(TSID)는 입력된 복수(1~ε)중 임의의 트랜스포트 스트림(TS)을 i(1≤i≤ε)로서 나타낸다. 이 사고에 기초하여 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력된 임의의 트랜스포트 스트림(TS)을 제 i 트랜스포트 스트림 식별자(TSi)로서 나타낸 것으로 한다.
또 제 i 트랜스포트 스트림(TSi)이 트랜스포트 스트림(TS)으로서는 동일한 포맷이어도 그것을 구성하는 패킷 데이터(P)의 포맷이 다른 경우가 있고, 그 때문에 또 패킷 데이터(P)의 포맷을 포맷 식별자(FID)에 의해 관리하는데, 이것에 대해서는 나중에 도 28을 참조하여 상세하게 설명한다.
그리고 스트림 입력기(TSR)는 트랜스포트 스트림 식별자(TSID)가 부여된 트랜스포트 스트림(TS)을 내부에 구비한 입력 버퍼에 일시적으로 유지하고 각각을 소정의 전송단위(TSd1)~전송단위(TSdε)마다 데이터 버퍼링 장치(DBA)에 전송한다. 또 제 1 스트림 입력기(TSR1r)~제 ε스트림 입력기(TSRε)는 각각 입력되어 오는 제 1 트랜스포트 스트림(TS1)~제 ε트랜스포트 스트림(TSε)에 데이터 에러가 있는 경우에는 그것을 검출하여 제 1 에러신호(E1)~제 ε에러신호(Eε)를 데이터 버퍼링 장치(DBA) 내의 에러 플랙 설정기(295)에 출력한다. 또 전송단위(TSd1~TSdε)의 사이즈는 데이터 버퍼링 장치(DBA)에 있어서의 조정부하 및 전송효율을 고려하여 적절하게 정해진다.
데이터 버퍼링 장치(DBA)는 제 1 스트림 입력기(TSR1)~제 ε스트림 입력기(TSRε)에서 공급되는 전송단위(TSd1~TSDε)의 제 1 트랜스포트 스트림(TS1)~제 ε트랜스포트 스트림(TSε)을 패킷 데이터(P) 단위로 관리축적하여처리대상 패킷 데이터(P)에 대해 소망하는 처리를 실시한 후에 선택복수 TS 복수 프로그램 패킷 데이터열(Pemm)로서 메인 메모리 제어기(700)에 출력한다.
메인 메모리(900)는 데이터 버퍼링 장치(DBA)에서 출력되는 제 1 트랜스포트 스트림(TS1)~제 ε트랜스포트 스트림(TSε)에서 추출된 선택복수 TS 복수 프로그램 패킷 데이터열(Pemm)을 저장하고, 또한 AV디코더로 대표되는 외부기기(도시하지 않음)에 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)로서 출력한다.
메인 메모리 제어기(700)는 선택복수 TS 복수 프로그램 패킷 데이터열(Pemm) 및 복수 TS 복수 프로그램 패킷 데이터열(Pmsm)을 전송단위(TSd)마다 일시적으로 유지한다. 메인 메모리 제어기(700)는 또 메인 메모리(900)의 동작을 제어하고, 일시적으로 유지하는 선택복수 TS 복수 프로그램 패킷 데이터열(Pemm)을 전송단위(TSd)마다 메인 메모리(900)에 출력하고, 또한 메인 메모리(900)를 제어하여 그 내부에 복수 TS 복수 프로그램 영상 컨텐츠 패킷 데이터열(PmsmV) 및 복수 TS 복수 프로그램 음성 컨텐츠 패킷 데이터열(PmsmS)을 형성시킨다.
TD 제어기(TDC)는 미리 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력된 트랜스포트 스트림(TS)의 종류마다의 데이터 구조정보를 저장하고 있다. 그리고 TD제어기(TDC)는 실제로 입력된 트랜스포트 스트림(TS)의 데이터 구조를 나타내는 트랜스포트 스트림 구조신호(Sts)를 생성하고, 스트림 입력기(TSR)에 출력하는 것에 의해 스트림 입력기(TSR)를 입력된 트랜스포트 스트림(TS)에 따라 적정하게 동작하도록 제어한다. 이 경우 사용자가 부차처리요구 입력기(APR) 등을 이용하여 TD제어기(TDC)에 저장되어 있는 구조정보를 지시해도 좋다.
트랜스포트 스트림(TS)의 데이터 구조정보를 미리 TD제어기(TDC)에 저장해 두는 대신에, 사용자가 부차 처리요구 입력기(APR) 등을 이용하여 실제로 입력되는 트랜스포트 스트림(TS)의 구조정보를 TD제어기(TDC)에 지시하도록 해도 좋다. 또 실제로 입력되는 트랜스포트 스트림(TS)을 읽어들여 그 데이터 구조를 검출하도록 멀티포맷 트랜스포트 스트림 디코더(TD)를 구성해도 좋다.
TD 제어기(TDC)는 멀티포맷 트랜스포트 스트림 디코더(TD) 전체의 동작을 제어한다. 또 멀티포맷 트랜스포트 스트림 디코더(TD)는 상기한 각 구성요소의 동작상태를 나타내는 상태신호(SrW)를 생성하여 TD제어기(TDC)에 출력한다. TD제어기(TDC)는 상태신호(SrW)에 기초하여 멀티포맷 트랜스포트 스트림 디코더(TD)의 각 구성요소의 동작을 제어하는 제어신호(ScW)를 생성하고 멀티포맷 트랜스포트 스트림 디코더(TD)를 제어한다. 또 상태신호(SrW) 및 제어신호(ScW)의 생성 및 멀티포맷 트랜스포트 스트림 디코더(TD)의 제어는 공지된 기술이기 때문에 설명을 생략한다.
데이터 버퍼링 장치(DBA)는 패킷 버퍼링 조정기(PBA), 패킷 선택기(400), 스트림 출력관리기(500), 중간처리용 버퍼셀 사용메모리(530), 패킷 해석기(1000), 스트림 출력기(1300) 및 제어기(PBAC)를 포함한다. 패킷 버퍼링 조정기(PBA)는 스트림 입력기(TSR)에서 전송단위(TSd)마다 입력되는 트랜스포트 스트림(TS)을 패킷 데이터(P)의 단위로 식별하여 버퍼링한다. 패킷 선택기(400)는 버퍼링되고 있는 패킷 데이터(P)가 소망하는 패킷 데이터(P)인지를 판단한다.
중간처리용 버퍼셀 사용메모리(530)는 후술하는 2차 버퍼셀 할당정보(mrp)에기초하여 패킷 버퍼(270)의 1차 버퍼셀(Bc_I)에서 판독된 후에 디스크램블된 피스크램블 데이터(Dsdi)의 저장에 공급하는 2차 버퍼셀(Bc_M)을 할당한다. 그리고 할당한 2차 버퍼셀(Bc_M)을 나타내는 할당 2차 버퍼셀 정보(mwp)로서 버퍼셀 할당정보 저장기(240)에 출력한다. 또 패킷 버퍼(270)에 대해서는 나중에 도 3, 도 4 및 도 5를 참조설명한다.
도 2를 참조하여 주로 스트림 출력관리기(500), 패킷 해석기(1000) 및 스트림 출력기(1300)에 대해 설명한다. 패킷 해석기(1000)는 디스크램블기(1100)와 섹션 데이터 선별기(1200)를 포함한다. 디스크램블기(1100)는 제어기(PBAC)에서 입력되는 디스크램블 지시제어 데이터(Dcrl)에 기초하여 DMA 버스 조정기(210)에서 입력되는 피스크램블 데이터(Dsdi)를 디스크램블하고, 피디스크램블 데이터(Dsdo)와 함께 디스크램블 종료 통지 데이터(Dcrlo)를 생성한다. 피디스크램블 데이터(Dsdo)는 DMA 버스 조정기(210)에 입력되고, 디스크램블 종료 통지 데이터(Dcrlo)는 제어기(PBAC)에 입력된다.
섹션 데이터 선별기(1200)는 DMA 버스 조정기(210)에서 입력되는 요선별 섹션 데이터(Ssdi)를 섹션 선별하여 피선별 패킷 데이터(Ssdo)를 생성한다. 피선별 패킷 데이터(Ssdo)는 DMA 버스 조정기(210)에 출력된다. 섹션 데이터 선별기(1200)는 또 제어기(PBAC)에서 입력된 섹션선별 지시제어 데이터(Scrl)를 선별하여 섹션선별 종료신호(Scrlo)를 생성한다. 섹션선별 종료신호(Scrlo)는 제어기(PBAC)에 입력된다.
스트림 출력 관리기(500)는 출력순 버퍼셀 번호 메모리 제어기(510)와 출력순 버퍼셀 번호 메모리(520)를 포함한다. 출력순 퍼버셀 번호 메모리 제어기(510)는 패킷 버퍼 제어기(260)에 접속되고, 상호 스트림 출력관리신호(Shf)를 교환하고, 또한 스트림 출력 버퍼셀 결정신호(Hrp)를 생성한다. 출력순 버퍼셀 번호 메모리(520)는 출력순 버퍼셀 번호 메모리 제어기(510)에서 입력되는 스트림 출력 버퍼셀 결정신호(Hrp)에 기초하여 패킷 버퍼(270)의 스트림 출력에 사용하는 버퍼셀 번호를 관리한다.
스트림 출력기(1300)는 타이머(600)에서 입력되는 시간정보(TT)와, 제어기(PBAC)에서 입력되는 스트림 출력 지시제어 데이터(Hcrl)에 기초하여 DMA 버스 조정기(210)에서 입력되는 스트림 출력 데이터(Hsdi)를 제 1 스트림(Pho1) 및 제 2 스트림(Pho2) 출력한다.
패킷 버퍼링 조정기(PBA)는 DMA 버스 조정기(210), TSd 입력개시 검출기(220), 버퍼셀 할당기(230), 버퍼셀 할당정보 저장기(240), 쓰기부분 버퍼셀 지정기(250), 패킷 버퍼 제어기(260), 패킷 버퍼(270), 축적완료 버퍼셀 번호 메모리 제어기(280), 축적완료 버퍼셀 번호 메모리(290), 에러플랙 설정기(295) 및 패킷 액세스기(300)를 포함한다.
DMA 버스 조정기(210)는 제 1 스트림 입력기(TSR1)에서 출력되는 제 1 패킷 선두검출신호(Sps1), 제 1 리퀘스트 신호(Srq1) 및 제 1 전송단위(TSd1)에서의 입력을 받는 제 1 입력포트군을 가진다. 마찬가지로 제 ε스트림 입력기(TSRε)에서 출력되는 제 ε패킷 선두검출신호(Spsε), 제 ε리퀘스트 신호(Srqε) 및 제 ε전송단위(TSdε)에서의 입력을 받는 제 ε입력포트군을 가진다. 즉, DMA 버스 조정기(210)는 입력되는 트랜스포트 스트림(TS)의 수(ε)와 같은만큼의 입력포트군을 가진다. 이와 같이 입력되는 트랜스포트 스트림(TS)마다 입력포트군을 구비하는 것에 의해 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 제 i 트랜스포트 스트림(TSi)을 개별로 식별할 수 있다.
또 DMA 버스 조정기(210)는 제 1 스트림 입력기(TSR1)에 제 1 데이터 유효신호(Sde1)를 출력하는 제 1 출력포트를 가진다. 마찬가지로 DMA 버스 조정기(210)는 제 ε스트림 입력기(TSRε)에 제 ε데이터 유효신호(Sdeε)를 출력하는 제 ε출력포트를 가진다. 즉 DMA 버스 조정기(210)는 입력되는 트랜스포트 스트림(TS)의 수(ε)에 따라 준비되는 스트림 입력기(TSR1~TSRε)마다 데이터 유효신호(Sde1~Sdeε)를 출력하는 출력포트가 준비된다.
DMA 버스 조정기(210)는 주로 제 1 스트림 입력기(TSR1)~제 ε스트림 입력기(TSRε)와 패킷 버퍼 제어기(260)와의 사이에서의 제 1 트랜스포트 스트림(TS1)~제 ε트랜스포트 스트림(TSε)의 전송단위(TSd1~TSdε)에서의 입출력을 조정한다. 즉 DMA 버스 조정기(210)는 제 i 스트림 입력기(TSRi)에서 입력되는 제 i 패킷 선두검출신호(Spsi) 및 제 i 리퀘스트 신호(Srqi)에 기초하여 제 i 패킷 선두검출신호(Spsi)를 TSd 입력개시 검출기(220)에 출력한다. 제 i 스트림 입력기(TSRi)는 DMA 버스 조정기(210)에서 입력되는 제 i 데이터 유효신호(Sdei)에 응답하여 제 i 전송단위(TSdi)를 공급한다. 또 DMA버스 조정기(210)는 패킷 버퍼 제어기(260)에서 입력되는 선택복수 프로그램 패킷 데이터열(Pem)을 메인 메모리 제어기(700)에 출력한다.
TSd 입력개시 검출기(220)는 패킷 선두검출신호(Sps) 및 전송단위(TSd)에 기초하여 패킷 데이터(P)마다 전송단위(TSd)의 입력이 개시된 것을 검출하고, 또한 입력이 개시된 전송단위(TSd)를 패킷 버퍼 제어기(260)에 공급한다. 또 TSd 입력개시 검출기(220)는 입력이 개시된 패킷 데이터(P)를 저장하기 위해 패킷 버퍼(270)의 버퍼셀(Bc) 하나를 할당을 요구하는 버퍼셀 요구신호(Sba)를 생성하고 버퍼셀 할당기(230)에 출력한다. 그리고 버퍼셀(Bc)이 할당되면, TSd 입력개시 검출기(220)는 그 할당되어 버퍼셀에 대해 프로그램 컨텐츠 패킷 데이터(Pc)의 쓰기를 개시할 수 있는 상태인 것을 나타내는 쓰기 허가신호(Sw)를 생성하여 쓰기부분 버퍼셀 지정기(250)에 출력한다.
버퍼셀 할당기(230)는 버퍼셀 요구신호(Sba)에 응답하여 후술하는 할당 1차 버퍼셀 정보(Iab)에 기초하여 입력이 개시된 패킷 데이터(P)의 저장에 공급하는 버퍼셀을 할당한다. 그리고 할당한 버퍼셀을 나타내는 1차 버퍼셀 할당정보(Iba)를 생성하여 버퍼셀 할당정보 저장기(240)에 출력한다.
버퍼셀 할당 정보 저장기(240)는 버퍼셀 할당기(230)에서 입력되는 1차 버퍼셀 할당정보(Iba)를 저장한다. 또 버퍼셀 할당 정보 저장기(240)는 동 1차 버퍼셀 할당정보(Iba)를 쓰기부분 버퍼셀 지정기(250) 및 축적완료 버퍼셀 번호 메모리 제어기(280)에 공급한다. 또 버퍼셀 할당 정보 저장기(240)는 1차 버퍼셀 할당정보(Iba)에 기초하여 패킷 버퍼(270)를 구성하는 각 버퍼셀(Bc)의 할당상황을 나타내는 할당 1차 버퍼셀 정보(Iab)를 생성하여 버퍼셀 할당기(230)에 피드백한다.
쓰기부분 버퍼셀 지정기(250)는 TSd 입력개시 검출기(220)에서 입력되는 쓰기허가신호(Sw)에 응답하여 버퍼셀 할당정보 저장기(240)에서 입력되는 1차 버퍼셀 할당정보(Iba)로 나타내는, 할당된 버퍼셀에 대한 전송단위(TSd)의 쓰기를 지시하는 쓰기요구신호(Swd)를 생성하고 패킷 버퍼 제어기(260)에 출력한다.
패킷 버퍼 제어기(260)는 쓰기요구신호(Swd)에 응답하여 TSd입력개시 검출기(220)에서 공급되는 전송단위(TSdi)를 패킷 버퍼(270)가 할당된 버퍼셀에 쓴다. 이 때 DMA 버스 조정기(210)는 TSRi1에서의 데이터인 것을 패킷 버퍼 제어기(260)에 통지한다. 즉 TSd에는 후에 설명하지만, 미리 그것이 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 복수(ε)의 트랜스포트 스트림(TS1~TSε)의 어느 트랜스포트 스트림(TSi)의 데이터인지를 나타내는 표시가 부가되어 있고, 패킷 버퍼 제어기(260)는 버퍼셀 중의 축적된 데이터에 부가된 이들 정보와, DMA 버스 조정기(210)에서 통지된 정보를 비교하여 바른 트랜스포트 스트림의 정보를 구별하면서 축적한다.
또 패킷 버퍼 제어기(260)는 할당된 버퍼셀에 쓴 데이터의 바이트수를 카운트하는 것에 의해 1패킷 데이터(P)분의 전송단위(TSdi)가 쓰여진 것을 검출하고, DMA 버스 조정기(210)에서의 1패킷 데이터(P)의 데이터 전송이 종료한 것을 나타내는 전송완료신호(Stf)를 생성하고, 축적완료 버퍼셀 번호 메모리 제어기(280)에 출력한다. 또 입력되는 트랜스포트 스트림(TSi)의 1패킷 데이터(Pi)의 데이터 사이즈를 포함하는 소정의 포맷 정보는 미리 멀티포맷 트랜스포트 스트림 디코더(TD)에 저장되어 있는 데이터 구조정보에 포함되어 있는 것은 상기한 바와 같다.
축적완료 버퍼셀 번호 메모리 제어기(280)는 버퍼셀 할당정보 저장기(240)에서 입력된 1차 버퍼셀 할당정보(Iba)와 패킷 버퍼 제어기(260)에서 입력된 전송완료신호(Stf)에 기초하여 1패킷 데이터(P)가 쓰여진 버퍼셀을 나타내는 버퍼셀 번호신호(Sbn)와, 버퍼셀 번호(Nbc)를 쓰는 기억영역을 나타내는 라이트 포인터(WP)를 하나 진행하는 라이트 포인트 갱신신호(Swp)를 생성하고 축적완료 버퍼셀 번호 메모리(290)에 출력한다.
에러플랙 설정기(295)는 제 1 스트림 입력기(TSR1)~제 2 스트림 입력기(TSRε)에서 입력되는 제 1 에러신호(E1)~제 ε에러신호(Eε)와, 패킷 버퍼 제어기(260)에서 입력되는 전송종료신호(Stf)에 기초하여 에러플랙 메모리(290EF)의 에러플랙 영역(Fc)에 데이터 에러를 포함하는 패킷 데이터(P)를 저장한 버퍼셀(Bcm)을 나타내는 에러플랙을 세운 에러플랙신호(Fe)를 생성하고 축적완료 버퍼셀 번호 메모리(290)에 출력한다.
즉 라이트 포인터(WP)가 나타낸 버퍼셀 지정영역(Rcm)에 버퍼셀 번호신호(Sbn)가 나타내는 버퍼셀 번호(Nbc)를 기록하고, 또한 라이트 포인터(WP)가 나타내는 플랙 저장영역(Fcm)에 에러플랙신호(Fe)가 나타내는 플랙값을 기술한다. 그 후, 라이트 포인터(WP)의 위치를 하나 진행하고, 버퍼셀 번호(Nbc)를 기록한 버퍼셀 지정영역(Rcm)의 다음 영역과, 플랙값을 기입한 플랙저장영역(Fcm)의 다음 영역을 동시에 지시시킨다.
축적완료 버퍼셀 번호 메모리(290)에 있어서, 버퍼셀 번호(Nbcn)를 기입해야 할 버퍼셀 지정영역(Rcm)과, 에러 플랙신호(Fe)에 기초하여 플랙값을 써야 할 플랙저장영역(Fcm)은 동일 라이트 포인터(WP)에 의해 지시된다. 그리고 기입되어 있는 버퍼셀 번호(Nbcn)를 판독해야 할 버퍼셀 지정영역(Rcm)과, 플랙값을 판독해야 할 플랙저장영역(Fcm)은 동일 리드 포인터(RP)에 의해 지시된다. 리드 포인터(RP)는 제어기(PBAC)에서 출력되는 제어신호(Sc)에 기초하여 진행된다.
또 본 실시형태에 있어서는 축적완료 버퍼셀 번호 메모리(290)는 후에 도 3을 참조하여 설명한 바와 같이, 바람직하게는 링 메모리로 구성되기 때문에, 이와 같이 버퍼셀에 쓰기를 종료할 때마다 라이트 포인터(WP)를 하나씩 진행하는 것에 의해, 축적완료 버퍼셀 번호 메모리(290)의 기억영역에 기억되어 있는 버퍼셀 번호(Nbc)를 적정하게 갱신할 수 있다.
또 패킷 액세스기(300)는 패킷 버퍼 제어기(260) 및 DMA버스 조정기(210)를 경유하여 패킷 버퍼(270)의 버퍼셀에 저장된 직후의 패킷 데이터(P)에 선택적으로 액세스하고 판독하여 참조, 또는 편집 등의 처리를 실시한 후에 DMA 버스 조정기(210) 및 패킷 버퍼 제어기(260)를 경유하여 원래의 패킷 데이터(P)를 덮어쓰기 갱신하거나 한다.
이 때문에 패킷 버퍼 제어기(260)는 후술하는 리드 포인터(RP)가 지시하는 버퍼셀에 저장되어 있는 패킷 데이터(P)의 패킷 식별자(PID)를 읽고 버퍼 패킷 식별정보(PIDe)를 추출하고, 또한 DMA 버스 조정기(210)에 출력한다.
또 패킷 버퍼링 조정기(PBA)는 상기한 각 구성요소의 동작상태를 나타내는 상태신호(Sr)를 생성하고 제어기(PBAC)에 출력한다. 제어기(PBAC)는 상태신호(Sr)에 기초하여 패킷 버퍼링 조정기(PBA)의 각 구성요소의 동작을 제어하는제어신호(Sc)를 생성하고 패킷 버퍼링 조정기(PBA)에 출력한다. 또 상태신호(Sr) 및 제어신호(Sc1)가 생성하는 제어기(PBAC)의 제어는 공지된 기술이기 때문에 설명을 생략한다.
패킷 버퍼링 조정기(PBA)는 제 1 스트림 입력기(TSR1)에서 전송단위(TSd1)로 입력되는 트랜스포트 스트림(TS1)~제 ε스트림 입력기(TSRε)에서 전송단위(TSD2)로 입력되는 트랜스포트 스트림(TSi)을 패킷, 즉 패킷 데이터(P)의 단위로 식별관리하여 버퍼링한다. 제어기(PBAC)는 패킷 버퍼링 조정기(PBA)의 동작을 제어한다.
또 본 발명에서는 트랜스포트 스트림(TS)에 포함되는 패킷 데이터(P)를 개별로 버퍼셀(Bc)에 저장하고, 또한 저장한 패킷 데이터(P)의 내용을 식별하고 당해 패킷 데이터(P)에 대한 액세스 및 처리를 가능하게 하며, 또 당해 패킷 데이터(P)를 그 포맷에 따라 소망하는 처리를 실시할 수 있다.
다음에 도 2 및 도 3을 참조하여 상기한 버퍼셀 할당정보 저장기(240), 패킷 버퍼(270) 및 축적완료 버퍼셀 번호 메모리(290)의 관계에 대해 간단하게 설명한다. 도 2에 나타낸 바와 같이 패킷 버퍼(270)는 대별하여 m(m은 2ε이상의 정수)개의 1차 버퍼셀(Bc_I1~Bc_Im)과, n(n은 m/2보다 큰 정수)개의 2차 버퍼셀(Bc_M1~Bc_Mn)과, 하나 이상의 3차 버퍼셀(Bc_O)을 포함한다.
이는 입력되는 트랜스포트 스트림(TS)마다 패킷 데이터(P)의 축적용과 축적한 패킷 데이터(P)의 판독용으로 다른 1차 버퍼셀(Bc_I)이 하나는 필요하기 때문이다. 또 제 1 트랜스포트 스트림(TS1)과 제 2 트랜스포트 스트림(TS2)과의 2개(ε=2)의 트랜스포트 스트림(TS)이 입력되는 경우에는 1차 버퍼셀(Bc_I)의개수(m)는 4(2×2) 이상의 정수이다.
또 2차 버퍼셀(Bc_M)은 1차 버퍼셀(Bc_I)의 판독용에 대응하여 설치하면 좋기 때문에 필요수(n)는 m/2 이상의 정수가 된다. 또 3차 버퍼셀(Bc_0)은 하나의 패킷 데이터(P)에 대한 처리과정의 중간 데이터를 집적하여 완성시킨 후에 출력하면 좋기 때문에 하나 이상이면 좋다.
1차 버퍼셀(Bc_I1~Bc_Im)은 각각 TSd 입력개시 검출기(220) 및 패킷 버퍼 제어기(260)를 경유하여 전송단위(TSd)로 입력되는 패킷 데이터(P)를 제 1 소정시간(T1)만큼 저장하고, 저장한 패킷 데이터(P)에 대한 처리를 접수한다. 패킷 버퍼 제어기(260)에 의해 1차 버퍼셀(Bc_I)에 저장된 패킷 데이터(P)의 패킷 식별자(PID) 및 트랜스포트 스트림 식별자(TSID)가 추출 패킷 식별정보(PIDe) 및 추출 트랜스포트 스트림 식별자(TSIDe)로서 판독된다.
또 1차 버퍼셀(Bc_I)은 디스크램블기(1100) 및 섹션 데이터 선별기(1200)에 접속되어 있다. 그리고 1차 버퍼셀(Bc_I)에 저장되어 있는 패킷 데이터(P) 내에서 스크램블되어 있는 피스크램블 데이터(Dsdi)를 디스크램블기(1100)에 출력한다. 또 1차 버퍼셀(Bc_I)에 저장되어 있는 패킷 데이터(P)가 섹션 데이터인 경우는 요선별 섹션 데이터(Ssdi2)가 섹션 데이터 선별기(1200)에 출력된다.
디스크램블기(1100)는 1차 버퍼셀(Bc_I)에서 입력되는 피스크램블 데이터(Dsdi)를 디스크램블하여 피디스크램블 데이터(Dsdo)를 생성한다. 섹션 데이터 선별기(1200)는 1차 버퍼셀(Bc_I)에서 입력되는 요선별 섹션 데이터(Ssdi2)를 섹션 데이터 선별하여 피선별 패킷 데이터(Ssdo)를 생성한다.
2차 버퍼셀(Bc_M)은 디스크램블기(1100)에 접속되고, 피디스크램블 데이터(Dsdo)를 제 2 소정시간(T2(T2<T1))만큼 저장한다. 또 섹션 데이터 선별기(1200)는 2차 버퍼셀(Bc_M)에 접속되어 저장하고 있는 피디스크램블 데이터(Dsdo) 내의 디스크램블된 실제 데이터를 요선별 섹션 데이터(Ssdi1)로서 판독하고 섹션 데이터 선별하여 피선별 패킷 데이터(Ssdo)를 생성한다.
3차 버퍼셀(Bc_0)은 섹션 데이터 선별기(1200)에 접속되고 요선별 섹션 데이터(Ssdi1) 또는 요선별 섹션 데이터(Ssdi2)의 어느 하나로부터 생성된 피선별 패킷 데이터(Ssdo)를 제 3 소정시간(T3(T3<T2))만큼 저장한다.
버퍼셀(Bc)의 각각은 소정 사이즈의 데이터를 일시적으로 저장하는, 즉 버퍼링할 수 있다. 그 때문에 필요한 버퍼셀(Bc)의 용량을 최저 버퍼용량(MBU)이라 한다. 최저 버퍼용량(MBU)은 패킷 데이터(P)를 구성하는 패킷 데이터(P)의 데이터 사이즈에 따라 적절히 설정된다. 최저 버퍼용량(MBU)을 패킷 사이즈에 비해 작게 설정하면 프로그램 컨텐츠 패킷 데이터(Pc)의 추출을 보다 세밀하게 제어할 수 있지만, DMA버스 조정기(210)에 있어서의 입출력 조정빈도가 커지고, 그 때문에 제어공정수의 증대를 초래하고 처리효율이 나빠진다.
한편, 최저 버퍼용량(MBU)을 패킷 사이즈에 비해 크게, 예를 들면 수배정도로 설정하면, 하나의 버퍼셀(Bc)에 복수의 패킷 데이터(P)를 저장하는 것도 가능하게 된다. 그러나 이 경우는 하나의 버퍼셀(Bc)에 저장되어 있는 복수의 패킷 데이터(P)를 구별할 수 없기 때문에 패킷 데이터(P) 단위에서의 제어, 또는 액세스를 할 수 없다. 따라서 최저 버퍼용량(MBU)은 트랜스포트 스트림 디코더의 내부 처리속도, 패킷 데이터(P)의 입력 레이트, 패킷 사이즈 및 패킷 데이터(P)로의 액세스 빈도에 기초하여 적절하게 설정되어야 할 것이다.
또 본 예에 있어서는 최저 버퍼용량(MBU)은 1패킷 데이터(P)를 저장할 수 있도록 정했고, 구체적으로는 188바이트로 하고 있다. 또 필요에 따라 패킷 데이터(P)를 식별 또는 관리하기 위한 소정의 바이트수를 갖는 보조 데이터를 1패킷 데이터(P)에 추가하여 저장할 수 있도록 해도 좋다. 그러나 필요에 따라 상기한 바와 같이 패킷 사이즈에 비해 작게 설정, 즉 하나의 패킷을 복수의 버퍼셀(Bc)로 분할하여 저장하도록 해도 좋다.
또 최저 버퍼용량(MBU)은 분할의 유무에 관계없이 저장하는 데이터에 관리정보에 상당하는 관리 바이트를 채운 것이 된다. 관리정보에는 적어도 저장하는 분할/비분할 데이터가 입력되는 복수의 트랜스포트 스트림(TS)의 어디에 속하는지를 나타내는 트랜스포트 스트림 식별정보를 포함한다.
또 패킷을 분할하여 저장하는 경우에는 최저 버퍼용량(MBU)은 패킷 데이터(P)의 분할 후의 데이터의 최대 사이즈에 분할정보와 트랜스포트 스트림 패킷 식별정보를 포함하는 관리 데이터 사이즈의 합이 된다. 이 경우, 버퍼셀(Bc)의 개수(N)의 최소값인 버퍼셀 최소개수(Nmin)는 2ε로 분할수(D)를 곱한 것(버퍼셀 최소개수(Nmin)는 2εD)이 된다.
또 다른 패킷 데이터(P)간의 입력 레이트의 차이에 대해 서술한다. 즉 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 복수(ε)의 트랜스포트 스트림(TS1~TSε)의 각각에 포함되는 패킷 데이터(P)의 입력 레이트는 트랜스포트스트림(TSi)마다 다른 것이 많다. 지금 2개(ε=2)의 트랜스포트 스트림(TS1 및 TS2)이 입력되는 경우를 예로 설명한다. 제 1 트랜스포트 스트림(TS1)의 프로그램 1의 프로그램 컨텐츠 패킷 데이터(Pc101 및 Pc111)와, 제 2 트랜스포트 스트림(TS2)의 제 4 프로그램 컨텐츠 패킷 데이터(Pc401 및 Pc411)를 버퍼링하는 경우에 프로그램 컨텐츠 패킷 데이터(Pc401)의 입력 레이트가 프로그램 컨텐츠 패킷 데이터(Pc101)의 입력 레이트에 비해 압도적으로 큰 경우를 생각한다.
이 경우 프로그램 컨텐츠 패킷 데이터(Pc101와 Pc401)가 동시에 멀티포맷 트랜스포트 스트림 디코더(TD)에 도착했다 해도, DMA 버스 조정기(210r) 조정되고, 한편(예를 들면 프로그램 컨텐츠 패킷 데이터(Pc101))의 버퍼링이 다른쪽(예를 들면 프로그램 컨텐츠 패킷 데이터(Pc401))보다 먼저 시작한다. 그리고 프로그램 컨텐츠 패킷 데이터(Pc101)의 버퍼링의 개시에 이어서 프로그램 컨텐츠 패킷 데이터(Pc401)의 버퍼링이 개시된다. 그러나 프로그램 컨텐츠 패킷 데이터(Pc401)의 입력 레이트는 프로그램 컨텐츠 패킷 데이터(Pc101)의 입력 레이트에 비해 압도적으로 크기 때문에, 프로그램 컨텐츠 패킷 데이터(Pc401)의 버퍼링 도중에 프로그램 컨텐츠 패킷 데이터(Pc101)의 입력이 완료되어 버린다.
이와 같은 사태에 대응하도록 프로그램 컨텐츠 패킷 데이터(Pc101)의 버퍼링 중에 나중에 입력되는 높은 레이트의 프로그램 컨텐츠 패킷 데이터(Pc411)가 버퍼링하기 위해 버퍼셀(Bc)을 준비할 필요가 있다. 이 경우의 버퍼셀 최소개수(Nmin)는 입력되는 트랜스포트 스트림(TS)의 프로그램 컨텐츠 패킷 데이터(Pc)의 입력 레이트에 기초하여 결정되는데, 최저 버퍼용량(MBU)을 일정하게 하면, 버퍼셀 최소개수(Nmin)는 일반적으로 입력 트랜스포트 스트림(TS)의 수에 비례하여 입력 트랜스포트 스트림 간에 입력 레이트가 현저하게 다른 프로그램 컨텐츠 패킷 데이터(Pc)의 수에 따른 분량만큼 증가한다.
또 본 예에 있어서는 최저 버퍼용량(MBU)은 1패킷 데이터(P)에 소정의 관리 데이터를 부가한 것을 저장할 수 있도록 정해져 있고, 구체적으로는 188바이트의 1패킷 데이터(P)에 4바이트의 관리 데이터를 부가한 것을 저장할 수 있도록 192바이트로 하고 있다. 또 4바이트의 관리 데이터에는 상기한 트랜스포트 스트림 식별정보와 함께, 당해 패킷 데이터(P)의 도착시간을 나타내는 타임 스탬프 정보도 포함되어 있다. 이것에 대해서는 나중에 도 16을 참조하여 설명한다.
또 1차 버퍼셀(Bc_I), 2차 버퍼셀(Bc_M) 및 3차 버퍼셀(Bc_0)에 저장된 데이터에 대해 도 3, 도 24, 도 25, 도 26 및 도 27을 참조하여 설명한다. 도 25에 있어서는 제 1 트랜스포트 스트림(TS1)의 패킷 데이터(P1)는 제 1 포맷(FMT1)으로 구성되고, 제 2 트랜스포트 스트림(TS2)의 패킷 데이터(P2)는 제 2 포맷(FMT2)으로 구성되어 있는 경우가 예시되어 있다.
즉, 제 1 포맷(FMT1)으로 구성되어 있는 패킷 데이터(P1(TS1))는 선두에서 소성관리 바이트(BMh), 보조 데이터(AXD), 실제 데이터(PDB) 및 처리관리 바이트(BMp)의 순서대로 배열구성되어 있다. 소성 관리 바이트(BMh), 보조 데이터(AXD), 실제 데이터(PDB) 및 처리관리 바이트(BMp)의 바이트 사이즈를 각각 M, N1, R1 및 M으로 하면, 이와 같은 패킷 데이터(P1(TS1:FMT1))를 저장하기 위해 버퍼셀(Bc)에 요구되는 최소용량(MBU)은 2M+N1+R1이 된다.
마찬가지로 제 2 포맷(FMT2)으로 구성되어 있는 패킷 데이터(P2(TS2))는 선두에서 소성관리 바이트(BMh), 실제 데이터(PDB) 및 처리관리 바이트(BMp)의 순서대로 배열구성되어 있다. 소성관리 바이트(BMh), 보조 데이터(AXD), 실제 데이터(PDB) 및 처리관리 바이트(BMp)의 바이트 사이즈를 각각 M, R2 및 M으로 하면, 이와 같은 패킷 데이터(P2(TS2:FMT2))를 저장하기 위해 버퍼셀(Bc)에 요구되는 최소용량(MBU)은 2M+R2가 된다.
도 26 및 도 27을 참조하여 관리 바이트(BM)의 구성에 대해 설명한다. 도 26에 나타낸 바와 같이, 관리 바이트(BM)에는 소성관리 바이트(BMh)와 처리관리 바이트(BMp)의 2종류가 있다. 소성관리 바이트(BMh)는 패킷 도착시간정보(ATS(Arrival Time Stamp)), 포맷 식별자(FID(Format IDefication)), 멀티스트림 식별자 트랜스포트 스트림 식별자(TSID(TS Idefication)) 및 스트림 출력요구 정보저장영역(HSOUTR(HiSpeed OUTput Region))을 포함한다.
패킷 도착시간정보(ATS), 포맷 식별자(FID) 및 멀티스트림 식별자 트랜스포트 스트림 식별자(TSID)는 스트림 입력기(TSR)에 의해 부가된다. 본 발명에 관련된 멀티포맷 트랜스포트 스트림 디코더(TD)는 멀티스트림 및 멀티포맷의 패킷 데이터 제어를 실행하기 위해 버퍼셀(Bc)에 패킷 데이터(P)를 저장할 때에 제어기(PBAC)가 패킷 처리를 하기 위해 필요한 정보를 실제 데이터(PD)에 부가하여 저장하는 것이 가능하다.
도 27에 나타낸 바와 같이, 보조 데이터(AXD)는 보조 데이터 정보(VALID), 스트림 출력 I/F용 시간정보(HSTS(HiSpeed Time Stamp)) 및 스트림 에러정보(ERR)를 포함한다. 보조 데이터(AXD)는 스트림 출력부 스트림 출력기(1300)에서 출력한 데이터를 받는 기기와의 접속 I/F규격에 기초한 처리를 실행할 경우에 필요하게 되는 정보이다.
보조 데이터 정보(VALID)는 현재의 보조 데이터(AXD)가 수취측 기기에서 사용할 수 있는지의 여부를 나타내는 정보이고, 보조 데이터(AXD)가 유효시에 Active하게 한다. 스트림 출력 I/F용 시간정보(HSTS)는 27㎒계의 시간정보이고, 관리 바이트(BM)의 패킷 도착시간정보(ATS)에 기초하여 제어기(PBAC)에 의해 생성된다. 스트림 에러 정보(ERR)는 스트림 출력한 해당 스트림이 에러 스트림인지의 여부를 나타내는 정보이고, 에러 스트림시에 Active하게 한다.
도 2에 돌아가서 홀수번의 1차 버퍼셀(Bc_I)에는 제 1 포맷(FMT1)의 패킷 데이터(P)가 저장되고, 짝수번의 1차 버퍼셀(Bc_I)에는 제 2 포맷(FMT2)(섹션 데이터)의 패킷 데이터(P)가 저장되는 경우를 예로 설명한다. 홀수번의 1차 버퍼셀(Bc_I)에는 처리관리 바이트(BMp), 보조 데이터(AXD), 실제 데이터(PD1) 및 소성관리 바이트(BMh)의 순서대로 저장된다. 짝수번의 1차 버퍼셀(Bc_I)에는 처리관리 바이트(BMp), 실제 데이터(PD2) 및 소성관리 바이트(BMh)의 순서대로 저장된다.
홀수번의 1차 버퍼셀(Bc_I)에 저장되어 있는 보조 데이터(AXD)와 실제 데이터(PD)가 제 1 스트림(Pho1)으로서 스트림 출력기(1300)에서 출력된다. 짝수번의 1차 버퍼셀(Bc_I)에 저장되어 있는 실제 데이터(PD)가 제 2 스트림(Pho2)으로서 스트림 출력기(1300)에서 출력된다.
또 홀수번의 1차 버퍼셀(Bc_I)에서 처리관리 바이트(BMp)와 보조 데이터(AXD)와 실제 데이터(PD)가 피스크램블 데이터(Dsdi)로서 디스크램블기(1100)에 출력된다. 디스크램블기(1100)는 피스크램블 데이터(Dsdi)의 보조 데이터(AXD)와 실제 데이터(PD)를 디스크램블하여 피디스크램블 보조 데이터(AXD')를 생성한다. 그리고 처리관리 바이트(BMp)와 피디스크램블 보조 데이터(AXD')와 피디스크램블 실제 데이터(PD')를 피디스크램블 데이터(Dsdo)로서 2차 버퍼셀(Bc_M)에 출력된다.
2차 버퍼셀(Bc_M)에 있어서는 피디스크램블 데이터(Dsdo)가 처리관리 바이트(BMp), 피디스크램블 보조 데이터(AXD') 및 피디스크램블 실제 데이터(PD')의 순서대로 저장된다. 그리고 2차 버퍼셀(Bc_M)에서 처리관리 바이트(BMp), 피디스크램블 보조데이터(AXD') 및 피디스크램블 실제 데이터(PD')가 요선별 섹션 데이터(Ssdi1)로서 섹션 데이터 선별기(1200)에 출력된다.
섹션 데이터 선별기(1200)는 요선별 섹션 데이터(Ssdi1)를 선별하여 피선별 실제 데이터(PD")를 생성하고 3차 버퍼셀(Bc_0)에 출력한다.
짝수번의 1차 버퍼셀(Bc_I)에서 처리관리 바이트(BMp)와 보조 데이터(AXD)와 실제 데이터(PD)가 요선별 섹션 데이터(Ssdi2)로서 섹션 데이터 선별기(1200)에 출력된다. 섹션 데이터 선별기(1200)는 요선별 섹션 데이터(Ssdi2)를 선별하여 피선별 실제 데이터(PD")를 생성하고 피선별 패킷 데이터(Ssod)로서 3차 버퍼셀(Bc_0)에 출력한다.
이와 같이 하여 패킷 데이터(P)의 포맷에 따라 처리된 피선별 실제데이터(PD")가 3차 버퍼셀(Bc_0)에 저장된다.
버퍼셀 할당정보 저장기(240)는 패킷 버퍼(270)의 1차 버퍼셀(Bc_I1~Bc_Im)의 각각에 대응하는 1차 버퍼셀 할당정보영역(AI1~AIm)과, 2차 버퍼셀(Bc_M1~Bc_Mn)의 각각에 대응하는 2차 버퍼셀 할당정보영역(AM1~AMn)을 갖는다. 버퍼셀 할당정보 저장기(240)는 버퍼셀 할당기(230)에서 공급되는 1차 버퍼셀 할당정보(Iba)에 기초하여 할당된 1차 버퍼셀(Bc_I)에 대응하는 1차 버퍼셀 할당정보영역(AI)에 할당 유무를 나타내는 할당식별 데이터를 쓴다. 즉 버퍼셀 할당정보 저장기(240)에는 패킷 버퍼(270)의 1차 버퍼셀(Bc_I1)에서 Bc_Im과 동수의 1차 버퍼셀 할당정보영역(AI1~AIm)이 준비된다.
마찬가지로 버퍼셀 할당정보 저장기(240)는 중간처리용 버퍼셀 사용메모리(530)에서 공급되는 2차 버퍼셀 할당정보(mrp)에 기초하여 할당된 2차 버퍼셀(Bc_M)에 대응하는 2차 버퍼셀 할당정보영역(AM)에 할당 유무를 나타내는 할당식별 데이터를 쓴다. 즉 버퍼셀 할당정보 저장기(240)에는 패킷 버퍼(270)의 2차 버퍼셀(Bc_M1~Bc_Mn)과 동수의 2차 버퍼셀 할당정보영역(AM1~AMn)이 준비된다.
예를 들면, 할당식별 데이터는 1과 0의 이치(二値, binary) 데이터이고, 초기값은 0이다. 그리고 1차 버퍼셀(Bc_I1)이 할당되는 경우에는 1차 버퍼셀(Bc_I1)에 대응하는 1차 버퍼셀 할당정보영역(AI1)에는 예를 들면 1이 쓰여진다. 한편, 1차 버퍼셀(Bc_I1)에 쓰여진 데이터가 판독된 후에 제어기(PBAC)에서 출력되는 제어신호(Sc)에 기초하여 1차 버퍼셀 할당정보영역(AI1)에 0이 쓰여지고, 1차 버퍼셀(Bc_I1)은 해방된다. 이것은 2차 버퍼셀(Bc_M)에 관해서도 마찬가지이다.
이와 같이 하여 패킷 버퍼(270)의 각 1차 버퍼셀(Bc_I1~Bc_Im) 각각의 할당상황이 1차 버퍼셀 할당정보영역(AI1~AIm)에 있어서의 값의 집합으로 표현되고, 할당 1차 버퍼셀 정보(Iab)로서 버퍼셀 할당기(230)에 공급된다. 마찬가지로 2차 버퍼셀(Bc_M1~Bc_Mn) 각각의 할당상황이 2차 버퍼셀 할당정보영역(AM1~AMn)에 있어서의 값의 집합으로 표현되고 할당 2차 버퍼셀 정보(mwp)로서 중간처리용 버퍼셀 사용메모리(530)에 공급된다.
도 3에 나타낸 바와 같이, 축적완료 버퍼셀 번호 메모리(290)는 버퍼셀 번호 메모리(290BCN)와 에러 플랙 메모리(290EF)를 포함한다. 버퍼셀 번호 메모리(290BCN)는 패킷 버퍼(270)의 1차 버퍼셀(Bc_I1~Bc_Im)의 특정 하나를 나타내는 버퍼셀 번호(NbcN)를 저장하는 버퍼셀 지정영역(Rc(Rc1~RcM))을 가진다. 또 M은 2이상 또한 N 이하의 자연수이다. 축적완료 버퍼셀 번호 메모리(290)는 바람직하게는 링 메모리로 구성되고 버퍼셀 지정영역(Rc1~RcM)이 연속적이면서 또한 순환적으로 기록된다. 결과, 버퍼셀 할당정보 저장기(240)의 경우와 달리, 버퍼셀 할당정보 저장기(240)의 1차 버퍼셀(Bc_I1~Bc_Im)과 같은 수만큼 준비할 필요는 없고, M개의 버퍼셀 지정영역(Rc1~RcM)을 준비하면 좋다.
버퍼셀 번호(Nbcn)를 기입해야 할 버퍼셀 지정영역(Rcm(m은 1 이상 M 이하의 자연수))은 라이트 포인터(WP)에 의해 지시된다. 그리고 기입되어 있는 버퍼셀 번호(Nbcn)를 판독해야 할 버퍼셀 지정영역(Rcm)은 리드 포인터(RP)에 의해 지시된다. 라이트 포인터(WP)는 리드 포인터(RP)가 나타내는 위치보다 1차나 동일 버퍼셀 지정영역(Rcm)을 나타낸다. 라이트 포인터(WP)는 상기한 바와 같이 축적완료버퍼셀 번호 메모리 제어기(280)에서 출력되는 라이트 포인트 갱신신호(Swp)에 기초하여 진행되는데, 리드 포인터(RP)는 제어기(PBAC)에서 출력되는 제어신호(Sc)에 기초하여 진행된다.
라이트 포인터(WP)가 리드 포인터(RP)의 위치보다 하나 진행되어 있는 경우는 리드 포인터(RP)가 나타내는 버퍼셀 지정영역(Rcm)에 나타내고 있는 버퍼셀(Bcn)은 데이터 저장이 끝나서 판독가능한 상태인 것을 의미하고 있다. 라이트 포인터(WP)와 리드 포인터(RP)가 같은 위치를 나타내고 있는 경우는 데이터가 판독가능인 상태에 있는 버퍼셀(Bcn)은 없는 것을 의미하고 있다.
에러 플랙 메모리(290EF)는 버퍼셀 번호 메모리(290BCN)의 버퍼셀 지정영역(Rc1~RcM)의 각각에 대응하는 플랙 저장영역(Fc(Fc1~FcM))을 가진다. 에러 플랙 메모리(290EF)는 기본적으로는 축적완료 버퍼셀 번호 메모리(290)와 마찬가지로 바람직하게는 링 메모리로 구성되고 에러 플랙 설정기(295)에서 입력되는 에러 플랙 신호(Fe)에 기초하여 플랙 저장영역(Fc1~FcM)에 플랙값이 연속적이면서 또한 순환적으로 기록된다.
도 4에 축적완료 버퍼셀 번호 메모리(290)의 변형예에 대해 설명한다. 본 변형예에 있어서의 축적완료 버퍼셀 번호 메모리(290R)는 간단하게 말하면 버퍼셀 번호 메모리(290BCN)의 버퍼셀 지정영역(Rc)과 에러 플랙 메모리(290EF)의 플랙 저장영역(Fc)이 일체화되어 버퍼셀 속성 저장영역(Rcp(Rcp1~RcpM))이 구성되어 있다. 그리고 버퍼셀 번호 신호(Sbn)와 에러 플랙신호(Fe)가 일체적으로 결합되고 각각의 버퍼셀(Bc)의 데이터 저장상황을 나타내는 속성 데이터(Pbc)로서 버퍼셀 속성저장영역(Rcp)에 기록된다. 또 이와 같이 1차 버퍼셀(Bc_I)의 상태를 1종류의 데이터에 의해 관리하는 것에 의해 1차 버퍼셀(Bc_I)의 획득 및 해방처리의 보다 한층 효율화를 꾀할 수 있다.
다음에 도 5에 나타낸 파형도를 참조하여, 2개(ε=2)의 트랜스포트 스트림(TS1 및 TS2)이 입력되는 경우를 예로 들어, 제 1 스트림 입력기(TSR1) 및 제 2 스트림 입력기(TSR2), DMA 버스 조정기(210) 및 패킷 버퍼 제어기(260)의 동작에 대해 간단하게 설명한다. 제 1 스트림 입력기(TSR1)에는 130바이트의 데이터로 구성되는 패킷 데이터(P1)가 1바이트씩 소정의 주파수를 갖는 제 1 입력전송 클록(Ck1)에 동기하여 입력된다. 마찬가지로 제 2 스트림 입력기(TSR2)에는 188바이트의 데이터로 구성되는 패킷 데이터(P2)로 구성되는 제 2 트랜스포트 스트림(TS2)이 1바이트씩, 소정의 주파수를 갖는 제 2 입력전송 클록(Ck2)에 동기하여 입력된다. 또 패킷 데이터(P)의 동기를 취하기 위한 동기 바이트(Bsync)는 제 2 트랜스포트 스트림(TS2)에 있어서는 그 패킷 데이터(P2)의 선두에 포함되지만, 제 1 트랜스포트 스트림(TS1)에 있어서는 패킷 데이터(P1)에는 포함되어 있지 않다.
본 예에 있어서는 제 1 입력전송 클록(Ck1)과 제 2 입력전송 클록(Ck2)은 동일한 경우가 나타나 있다. 그러나 입력전송 클록(Ck)의 주파수는 입력되는 트랜스포트 스트림(TS)마다 정해져 있다. 따라서 제 1 입력전송 클록(Ck1)과 제 2 입력전송 클록(Ck2)의 주파수가 다른 경우가 있는 것은 말할 것도 없다. 스트림 입력기(TSR)에는 트랜스포트 스트림(TS)이 1비트 단위로 입력되는 경우도 있지만, 처리내용은 입력데이터 단위에 관계없이 기본적으로 동일하기 때문에, 이하에 1바이트단위로 입력되는 경우에 대해서만 설명한다. 또 상기 도면에 있어서는 제 2 트랜스포트 스트림(TS2)에 데이터 에러가 검출되는 한편, 제 1 트랜스포트 스트림(TS1)에는 데이터 에러가 검출되지 않는 경우가 예시되어 있다.
제 1 스트림 입력기(TSR1)는 패킷 데이터(P1)마다 최초의 1바이트의 동기 데이터를 검출한 시점에서 패킷 데이터(P1)의 패킷 선두를 검출한다. 그리고 패킷 선두를 검출할 때마다, 제 1 패킷 선두검출신호(Sps1)를 생성하여 DMA 버스 조정기(210)에 출력한다.
제 1 스트림 입력기(TSR1)는 또 패킷 선두를 검출한 시점에서 시간정보(TT)에 기초하여 패킷 데이터(P1)가 도착한 시각을 나타내는 타임 스탬프(St)와 그 패킷 데이터(P1)가 제 1 트랜스포트 스트림(TS1)인 것을 나타내는 트랜스포트 스트림 식별자(TSID(1))를 생성한다. 또 트랜스포트 스트림 식별자(TSID)는 바꿔 말하면, 그 트랜스포트 스트림(TS)이 DMA 버스 조정기(210)의 제 1 입력포트군에 입력되어 있는 것을 나타내고, 또 제 1 스트림 입력기(TSR1)에서 입력되어 있는 것을 나타낸다.
또 타임 스탬프(St)는 하나의 트랜스포트 스트림(TS)에 대해 1차 버퍼셀(Bc_I)이 할당된 시점의 시간정보(TT)는 버퍼셀(Bc)의 선두에 저장된다. 또 설정된 사이즈의 패킷 데이터가 할당한 1차 버퍼셀(Bc_I)에 저장종료한 시점의 시간(TT)은 당해 1차 버퍼셀(Bc_I)에 있어서 저장된 패킷 데이터(P)의 최후미에 저장된다.
또 타임 스탬프(St)의 바이트수는 멀티포맷 트랜스포트 스트림 디코더(TD)에있어서의 처리정밀도에 따라 임의로 결정할 수 있지만, 본 예에 있어서는 바람직하게는 3바이트로 표현한다. 또 트랜스포트 스트림 식별자(TSID)의 바이트수는 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 모든 트랜스포트 스트림(TS)을 식별하는데 충분하면 좋기 때문에 본 예에 있어서는 1바이트로 표현한다. 제 1 스트림 입력기(TSR1)는 타임 스탬프(St)와 트랜스포트 스트림 식별자(TSID)를 합해서 관리정보(IM)를 생성하고, 입력되는 패킷 데이터(P1)의 선두에 부가하여 제 1 전송단위(TSd1)를 생성한다.
제 2 스트림 입력기(TSR2)도 제 1 스트림 입력기(TSR1)와 마찬가지로 패킷 데이터(P2)마다 최초의 1바이트의 동기 데이터를 검출한 시점에서 패킷 데이터(P2)의 패킷 선두를 검출한다. 그리고 패킷 선두를 검출할 때마다, 제 2 패킷 선두검출신호(Sps2)를 생성하여 DMA 버스 조정기(210)에 출력한다.
제 2 스트림 입력기(TSR2)는 또 패킷 선두를 검출한 시점에서 패킷 데이터(P2)가 도착한 시각을 나타내는 타임 스탬프(St)와 그 패킷 데이터(P2)가 제 2 트랜스포트 스트림(TS2)인 것을 나타내는 트랜스포트 스트림 식별자(TSID(2))를 생성한다. 또 트랜스포트 스트림 식별자(TSID)는 바꿔 말하면 그 트랜스포트 스트림(TS)이 DMA버스 조정기(210)의 제 2 입력포트군에 입력되어 있는 것을 나타내고, 또 제 2 스트림 입력기(TSR2)에서 입력되어 있는 것을 나타낸다. 제 2 스트림 입력기(TSR2)는 타임 스탬프(St)와 트랜스포트 스트림 식별자(TSID)를 합해서 관리정보(IM)를 생성하고, 입력되는 패킷 데이터(P2)의 선두에 부가하여 제 2 전송단위(TSd2)를 생성한다.
이와 같이 관리정보(IM)로서 타임 스탬프(St) 및 트랜스포트 스트림 식별자(TSID)를 패킷 데이터(P)에 부여하는 것에 의해, 각각 다른 트랜스포트 스트림(TS)에 포함되는 패킷 데이터(P)를 바르게 식별하는 것이 가능하게 된다. 또 상기한 바와 같이 다른 패킷 데이터(P)간에서의 입력 레이트의 차이에 기인하는, 나중에 도착한 패킷 데이터(P)가 앞에 도착한 패킷 데이터(P)가 입력을 완료하기 전에 입력을 완료해 버리는, 소위 추월하여 패킷이 생긴 경우에도 관리정보(IM)에 기초하여 그들 패킷을 입력한 순서대로 바르게 처리할 수 있다.
제 1 스트림 입력기(TSR1)는 또 패킷 선두에서 세어 8바이트마다 DMA 버스 조정기(210)에 대해 제 1 전송단위(TSd1)의 입력을 접수하도록 요구하는 제 1 리퀘스트 신호(Srq1)를 생성하고 DMA 버스 조정기(210)에 출력한다. 바꿔 말하면 제 1 전송단위(TSd1)는 8바이트이고, 각 패킷(188바이트)에 대해 8바이트마다 제 1 전송단위(Tsd1) 전송을 위한 제 1 리퀘스트 신호(Srq1)가 출력된다.
즉 제 1 트랜스포트 스트림(TS1)의 패킷 데이터(P1)의 선두를 검출한 시점에서 3바이트의 타임 스탬프(St)와 1바이트의 트랜스포트 스트림 식별자(TSID)로 이루어진 합계 4바이트의 관리정보(IM)가 생성되기 때문에, 선두에서 4바이트가 입력된 시점에서 제 1 스트림 입력기(TSR1)는 제 1 리퀘스트 신호(Srq1)를 생성한다. 또 5바이트째 이후에 대해서는 8바이트마다 제 1 리퀘스트 신호(Srq1)가 생성된다. 즉 각 패킷 데이터(P)의 1번째에 출력되는 전송단위(TSd)의 최초 4바이트는 멀티포맷 트랜스포트 스트림 디코더(TD)에 의해 생성된 관리정보(IM)로서, 트랜스포트 스트림(TS)의 패킷 데이터(P) 그 자체는 아니다.
또 복수의 트랜스포트 스트림(TS1~TSε)의 각각을 식별할 필요가 있는 경우에는 타임 스탬프(Sti), 트랜스포트 스트림 식별자(TSIDi) 및 관리정보(IMi)로 표시하는 것으로 한다. i는 스트림 입력기(TSR1~TSRε)의 어느 것에 입력되는 트랜스포트 스트림(TS)인지를 나타내는 자연수(1≤i≤ε)이다. 구체적으로는 제 1 트랜스포트 스트림(TS1)에 관해서는 제 1 패킷 선두검출신호(Sps1), 제 1 리퀘스트 신호(Srq1), 제 1 데이터 유효신호(Sde1), 제 1 전송단위(TSd1), 타임 스탬프(St1), 트랜스포트 스트림 식별자(TSID1) 및 제 1 스트림 입력기(TSR1)로 표현한다.
마찬가지로 제 2 트랜스포트 스트림(TS2)에 관해서는 제 2 패킷 선두검출신호(Sps2), 제 2 리퀘스트 신호(Srq2), 제 2 데이터 유효신호(Sde2), 제 2 전송단위(TSd2), 타임 스탬프(St2), 제 2 패킷 선두검출신호(Sps2), 트랜스포트 스트림 식별자(TSID2) 및 스트림 입력기(TSR2)로 표현한다. 단 패킷 데이터(P2)의 최초 제 2 전송단위(TSd2)에는 패킷 데이터(P1)의 최초 제 1 전송단위(TSd1)와 달리 동기 바이트(Bsync)가 포함되어 있다.
즉 제 2 트랜스포트 스트림(TS2)의 패킷 데이터(P2)의 선두인 동기 바이트(Bsync)를 검출한 시점에서 3바이트의 타임 스탬프(St)와 1바이트의 트랜스포트 스트림 식별자(TSID)로 이루어진 합계 4바이트의 관리정보(IM)가 생성되기 때문에, 선두의 동기 바이트(Bsync)로부터 4바이트가 입력된 시점에서 제 2 스트림 입력기(TSR2)는 제 2 리퀘스트 신호(Srq2)를 생성한다. 또 5바이트째 이후에 대해서는 8바이트마다 제 2 리퀘스트 신호(Srq2)가 생성된다.
DMA 버스 조정기(210)는 제 1 리퀘스트 신호(Srq1)에 응답하여 그 입출력을 조정하고 제 1 스트림 입력기(TSR1)에서의 제 1 전송단위(TSd1)의 입력 준비를 마무리한다. 그리고 준비가 마무리된 시점(제 1 리퀘스트 신호(Srq1)보다 시간(Ta) 후)에 제 1 데이터 유효신호(Sde1)를 생성하고 제 1 스트림 입력기(TSR1)에 출력한다. 이 시간(Ta)은 데이터 버퍼링 장치(DBA)를 포함한 내부 처리시간에 기인하여 자연히 결정된 것이고, 데이터 버퍼링 장치(DBA)의 상태에 따라 약간의 변동이 허용된다.
도 1을 참조하여 설명한 바와 같이, 제 1 스트림 입력기(TSR1)는 제 1 데이터 유효신호(Sde1)에 응답하여 내부의 버퍼에 축적되어 있는 패킷 데이터(P1)의 데이터를 8바이트씩 제 1 전송단위(TSd1)로 하여 DMA 버스 조정기(210)에 출력한다.
제 1 스트림 입력기(TSR1)와 DMA 버스 조정기(210)에 관해 설명한 것과 같은 방법으로, 제 2 스트림 입력기(TSR2)는 제 2 패킷 선두검출신호(Sps2) 및 제 2 리퀘스트 신호(Srq2)를 생성하고 DMA 버스 조정기(210)에 출력한다. DMA 버스 조정기(210)는 제 2 리퀘스트 신호(Srq2)에 응답하여 제 2 데이터 유효신호(Sde2)를 제 2 스트림 입력기(TSR2)에 출력한다.
제 2 스트림 입력기(TSR2)는 제 2 전송단위(TSd2)를 생성하고, 또한 제 2 데이터 유효신호(Sde2)에 응답하여 생성한 제 2 전송단위(TSd2)를 DMA 버스 조정기(210)에 출력한다.
DMA 버스 조정기(210)는 제 1 스트림 입력기(TSR1) 및 제 2 스트림 입력기(TSR2)에서 입력된 제 1 패킷 선두검출신호(Sps1), 제 2 패킷선두검출신호(Sps2), 제 1 전송단위(TSd1) 및 제 2 전송단위(TSd2)를 TSd 입력개시검출기(220)에 출력한다.
TSd 입력개시 검출기(220)는 DMA 버스 조정기(210)에서 입력되는 제 1 패킷 선두검출신호(Sps1) 및 제 1 전송단위(TSd1)에 기초하여 패킷 데이터(P1)마다 제 1 전송단위(TSd1)의 입력이 개시된 것을 검출하고, 또한 제 1 전송단위(TSd1)를 패킷 버퍼 제어기(260)에 공급한다.
마찬가지로 TSd 입력개시 검출기(220)는 DMA 버스 조정기(210)에서 입력되는 제 2 패킷 선두검출신호(Sps2) 및 제 2 전송단위(TSd2)에 기초하여 패킷 데이터(P2)마다 제 2 전송단위(TSd2)의 입력이 개시된 것을 검출하고, 또한 제 2 전송단위(TSd2)를 패킷 버퍼 제어기(260)에 공급한다.
상기한 바와 같이, TSd 입력개시 검출기(220)는 제 1 전송단위(TSd1) 또는 제 2 전송단위(TSd2)의 입력개시를 검출할 때마다 현재 입력이 개시된 패킷 데이터(P)를 저장하기 위해 패킷 버퍼(270)의 1차 버퍼셀(Bc_I1~Bc_Im)의 하나의 할당을 요구하는 버퍼셀 요구신호(Sba)를 생성하고 버퍼셀 할당기(230)에 출력한다. 또 할당된 버퍼셀에 대한 쓰기를 개시할 수 있는 상태인 것을 나타내는 쓰기허가신호(Sw)를 생성하고 쓰기부분 버퍼셀 지정기(250)에 출력한다.
패킷 버퍼 제어기(260)는 DMA 버스 조정기(210) 및 TSd 입력개시 검출기(220)를 경유하여 입력되는 제 1 전송단위(TSd1) 및 제 2 전송단위(TSd2)를 쓰기부분 버퍼셀 지정기(250)에서 입력되는 쓰기요구신호(Swd)에 기초하여 패킷 버퍼(270)가 할당된 버퍼셀(Bc)에 쓴다. 그리고 1패킷 데이터(P)분의 제 1전송단위(TSd1) 또는 제 2 전송단위(TSd2)를 쓴 시점에서 전송종료신호(Stf)를 생성하고 축적완료 버퍼셀 번호 메모리 제어기(280)에 출력한다.
상기한 바와 같이, 할당된 1차 버퍼셀(Bc_I)에 패킷 데이터(P)의 쓰기가 개시된 후에 예를 들면 제 11 바이트째에 제 1 트랜스포트 스트림(TS1)에 데이터가 에러가 있는 경우에 스트림 입력기(TSR1)는 제 1 에러신호(E1)를 생성하고 에러 플랙 설정기(295)에 출력한다.
에러 플랙 설정기(295)는 제 1 에러신호(E1)를 수령한 시점에서 하이상태가 되고 전송종료신호(Stf)를 수령한 시점에서 로상태가 되는 이치신호인 제 1 래치에러신호(LE1)를 생성한다. 마찬가지로 에러 플랙 설정기(295)는 제 2 에러신호(E2)를 수령한 시점에서 하이상태가 되고 전송종료신호(Stf)를 수령한 시점에서 로상태가 되는 이치신호인 제 2 래치에러신호(LE2)를 생성한다. 이들 제 1 래치에러신호(LE1) 및 제 2 래치에러신호(LE2)는 에러 플랙 신호(Fe)로서 축적완료 버퍼셀 번호 메모리(290)에 출력된다.
도 5에 나타낸 예에 있어서는 130바이트의 패킷 데이터(P1(TS1))와 188바이트의 패킷 데이터(P2(TS2))가 동시에 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력된 경우, 사이즈가 작은 패킷 데이터(P1)의 전송이 패킷 데이터(P2)보다 앞서 종료되어 버린다. 결과, 제 2 트랜스포트 스트림(TS2)의 최초 패킷 데이터(P2)의 전송이 계속되는 동안에 제 1 트랜스포트 스트림(TS1)의 다음 패킷 데이터(P1)가 멀티포맷 트랜스포트 스트림 디코더(TD)에 도착하여, 소위 패킷 데이터의 추월이 생긴다.
또 이 추월은 패킷 데이터의 사이즈가 같아도 입력전송 클록(Ck)의 주파수가 다른 경우에도 생긴다. 또 입력전송 클록(Ck)의 주파수차가 충분히 많으면 사이즈가 큰 쪽의 패킷 데이터가 사이즈가 작은 패킷 데이터를 추월하는 일도 있을 수 있다.
다음에 도 7을 참조하여 상기한 멀티포맷 트랜스포트 스트림 디코더(TD)의 주된 동작에 대해 상세하게 설명한다. 멀티포맷 트랜스포트 스트림 디코더(TD)는 전원이 투입되고 그 동작을 개시한다.
우선 단계(#100)의 「초기화 서브루틴」에 있어서 축적완료 버퍼셀 번호 메모리(290)에 라이트 포인터(WP) 및 리드 포인터(RP)의 값이 모두 0에 리셋을 포함하여 장치의 초기화가 실행된다. 그리고 처리는 다음 단계(#200)로 나아간다.
단계(#200)의 「트랜스포트 스트림(TS1~TSε)의 제공 프로그램 및 가능처리지시」 서브루틴에 있어서, TD제어기(TDC)의 메인 메모리(900)의 PAT저장영역(Ar(PAT)) 및 PMT 저장영역(Ar(PMT))에 트랜스포트 스트림(TS1~TSε)마다 개별로 저장되어 있는 프로그램 컨텐츠 관리표(PAT1~PATε) 및 프로그램 컨텐츠 패킷 데이터 관리표(PMT1~PMTε)에 기초하여 신호분배되는 프로그램과, 멀티포맷 트랜스포트 스트림 디코더(TD)가 사용자에게 제공할 수 있는 처리기능을 나타내는 프로그램 내용 제시신호(Sp)를 생성하고 부차 처리요구 입력기(APR)에 출력한다.
부차 처리요구 입력기(APR)는 프로그램 내용 제시신호(Sp)에 기초하여 디스플레이 등의 적당한 표시수단을 사용측 신호분배 프로그램과 처리기능을 사용자에게 일람표시한다. 사용자는 부차 처리요구 입력기(APR)를 조작하여 제시된 프로그램과 처리기능 내에서 소망하는 프로그램과 처리기능을 선택한다.
단계(#300)의 「트랜스포트 스트림(TS1~TSε)에 대한 처리요구검출」 서브루틴에 있어서, 부차 처리요구 입력기(APR)는 프로그램 내용제시신호(Sp)에 기초하여 복수의 트랜스포트 스트림(TS1~TSε)에 대한 사용자의 처리요구를 검출하고 처리요구신호(Se)를 생성하여 TD제어기(TDC)에 출력한다.
단계(#400)의 「트랜스포트 스트림(TS1~TSε)에 대한 처리내용결정」 서브루틴에 있어서, TD 제어기(TDC)는 처리요구신호(Se)에 기초하여 멀티포맷 트랜스포트 스트림 디코더(TD)쪽에서 실행해야 할 구체적인 처리내용을 결정한다. 구체적으로는 TD제어기(TDC)는 부차 처리요구입력기(APR)로부터 입력된 처리요구신호(Se)에 기초하여 처리대상이 되는 프로그램, 프로그램에 대한 처리방법 및 처리에 요하는 디바이스 등의 수단의 정보로 대표되는 처리내용정보를 생성한다. 처리내용정보를 생성한다.
단계(#500)의 「처리대상 패킷 데이터 식별정보 패킷 식별자(PIDd) 및 트랜스포트 스트림 식별자(TSIDd) 생성」서브루틴에 있어서는 TD제어기(TDC)는 단계(#400)에서 결정된 처리내용정보에 기초하여 처리해야 할 패킷 데이터(P)를 나타내는 처리대상 패킷 데이터 식별정보 패킷 식별자(PIDd)와, 처리해야 할 패킷 데이터(P)의 각각이 속하는 트랜스포트 스트림(TSε)을 나타내는 대상 트랜스포트 스트림 식별정보(TSIDd)를 생성하고 패킷 선택기(400)에 출력한다.
단계(#600)의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P) 축적」서브루틴에 있어서, 멀티포맷 트랜스포트 스트림 디코더(TD)에 차례차례 입력되는 ε개의 트랜스포트 스트림(TS1~TSε)에 포함되는 패킷 데이터(P1~Pε)의 데이터 버퍼링 장치(DBA)로의 버퍼링이 개시된다. 또 패킷 데이터(Pi)는 데이터 버퍼링 장치(DBA)의 1차 버퍼셀(Bc_I)의 각각에 패킷 데이터(P/n)단위(n은 자연수)로 저장된다. 본 단계에 있어서의 처리에 대해서는 나중에 도 8을 참조하여 상술한다. 소정수의 패킷 데이터(P)의 축적이 완료된 시점에서 다음 단계(#700)의 처리가 개시된다. 바꿔 말하면 데이터 버퍼링 장치(DBA)의 복수의 1차 버퍼셀(Bc_I) 내, 소정수의 버퍼셀(Bc)의 각각에 패킷 데이터(P)가 축적된 상태에서 단계(#700)의 처리가 개시된다.
단계(#700)의 「트랜스포트 스트림(TS1~TSε)의 처리대상 패킷 데이터(P) 선택」 서브루틴에 있어서, 데이터 버퍼링 장치(DBA)의 1차 버퍼셀(Bc_I)에 순차 저장되는 패킷 데이터(P) 중에서 처리대상의 것이 선택된다. 구체적으로는 하나의 1차 버퍼셀(Bc_I)에 저장되어 있는 패킷 데이터(P)가 단계(#400)에서 특정된 패킷 데이터(P)인지를, 단계(#500)에서 결정된 패킷 식별자(PID)(처리대상 패킷 데이터 식별정보(PIDd))를 갖는지를 판단하는 것에 의해, 처리대상 패킷 데이터(P)로서의 선택이 실행된다.
단계(#8000)의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P)에 요구처리실행」서브루틴에 있어서, 단계(#700)에서 선택된 패킷 데이터(P)에 대해 단계(#400)에서 결정된 내용의 사용자 요구처리가 실행된다. 본 실시형태에 있어서는 1차 버퍼셀(Bc_I)에 순차 저장되는 복수의 트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P1~Pε) 중에서 단계(#700)에서 선택된 특정 프로그램의 프로그램 컨텐츠 패킷 데이터(P)만을 추출하고 선택복수 TS 복수 프로그램 패킷 데이터열(Pemm(Pem1, Pem2))이 추출되는 예가 나타나 있는데, 이것에 대해서는 나중에 도 26을 참조하여 상술한다. 또 요구처리가 특정 프로그램을 구성하는 프로그램 컨텐츠 패킷 데이터(Pc)의 선택추출에 한정하지 않고 다양한 디지털 처리의 적용이 가능한 것은 말할 것도 없다.
#900의 「트랜스포트 스트림(TS1~TSε)의 처리후 패킷 데이터(P) 축적」서브루틴에 있어서, 단계(#8000)에서 추출된 선택복수 프로그램 패킷 데이터열(Pemm)이 메인 메모리 제어기(700)에 출력되고 복수 프로그램 패킷 데이터열(Pmsm)이 생성된다.
또 상기한 바와 같이 단계(#600)는 주로 하드웨어에 의한 수동적인 처리이고, 단계(#700~#900)는 주로 소프트웨어에 의한 능동적인 처리이다. 따라서 단계(#600)와 단계(#700~#900)는 바람직하게는 병행처리로서 구성된다. 그 때문에 단계(#700)에 있어서의 대상처리 패킷 데이터(P)선택 서브루틴을 개시하기 전에 단계(#600)에서 적정한 수만큼의 1차 버퍼셀(Bc_I)에 패킷 데이터(P)가 축적되어 있는 것이 요망된다. 이에 대해서는 나중에 도 8을 참조하여 설명한다.
그러나 본 도면에 있어서는 단계(#600, #700, #8000 및 #900)를 일련의 반복처리로서의 구성을 나타내고 있다. 이와 같은 구성에 있어서의 동작에 대해 간단하게 설명한다. 단계(#600)의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P) 축적」서브루틴을 처음 실행하는 경우는 소정수의 버퍼셀(Bc)에 패킷 데이터(P)가 축적되는 것을 기다린 후에 단계(#700, #8000 및 #900)의 처리를 연속적으로 실행한다. 그리고 2회째 이후의 단계(#600)에 있어서는 소정수가 아니라 하나의 1차 버퍼셀(Bc_I)에 패킷 데이터(P)가 저장된 후에 단계(#700~#900)의 처리가 실행된다.
이 경우의 소정수란 데이터 버퍼링 장치(DBA)의 일련의 동작속도로부터 결정되는 소프트웨어에 의한 단계(#700~#900)의 처리에 대해 허용 밖의 언더플로 또는 오버플로를 일으키지 않도록 정해진다. 따라서 소정수의 최소값은 1이다. 실제로는 소정수의 1차 버퍼셀(Bc_I)에 패킷 데이터(P)가 축적된 것의 보증은 단계(#600)가 개시되고 나서 단계(#700)가 개시되기까지의 시간으로 관리된다.
도 37에 상기한 단계(#700)의 「트랜스포트 스트림(TS1~TSε)의 처리대상 패킷 데이터(P) 선택」서브루틴과 단계(#8000)의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P)에 대한 요구처리실행」 서브루틴의 관계를 모식적으로 나타낸다. 멀티포맷 트랜스포트 스트림 디코더(TD)에 차례차례 입력되는 트랜스포트 스트림(TS)의 패킷 데이터(P) 전부에 대해 단계(#700)에서 개별로 처리대상인지가 판단된다. 그리고 처리대상이라고 판단된 패킷 데이터(P)(도 37에서, 굵은 선 화살표로 표시)에 대해서만 단계(#8000)에서 사용자의 요구에 기초한 처리가 실시된다.
상기한 바와 같이, 본 실시형태에서는 사용자의 요구에 기초한 처리는 제 1 트랜스포트 스트림(TS1)에서 프로그램 1 및 프로그램 2를 추출하여 소망하는 처리를 실시하고, 제 2 트랜스포트 스트림(TS2)에서 프로그램 4 및 프로그램 5를 추출하여 소망하는 처리를 실시하는 것이다. 따라서 단계(#700)에 있어서는 1차 버퍼셀(Bc_I)에 저장된 전체 패킷 데이터(P) 내에서 제 1 트랜스포트 스트림(TS1)에 관해서는 트랜스포트 스트림 식별자(TSID(1))와 100번대 및 200번대의 패킷 식별자(PID)를 갖는 프로그램 컨텐츠 패킷 데이터(Pc)와, 관리 패킷 데이터(PcA)만이 선택된다.
마찬가지로 제 2 트랜스포트 스트림(TS2)에 관해서는 트랜스포트 스트림 식별자(TSID(2))와 400번대 및 500번대의 패킷 식별자(PID)를 갖는 프로그램 컨텐츠 패킷 데이터(Pc)와, 관리 패킷 데이터(PcA)만이 선택된다. 그리고 선택된 프로그램 컨텐츠 패킷 데이터(Pc) 및 관래 패킷 데이터(PcA)가 단계(#8000)에서 1차 버퍼셀(Bc_I), 2차 버퍼셀(Bc_M) 및 3차 버퍼셀(Bc_0)을 이용하여 소망하는 처리가 실시된 후에 버퍼셀(Bc)(3차 버퍼셀(Bc_0))에서 데이터 버퍼링 장치(DBA)의 외부로 선택복수 TS 복수 프로그램 패킷 데이터열(Pemm)로서 출력된다.
또 단계(#8000)에서 사용자의 요구처리가 특정 프로그램의 프로그램 컨텐츠 패킷 데이터(Pc)의 가공이면, 상기한 예에 있어서는 선택된 관리 패킷 데이터(PcA) 및 프로그램 컨텐츠 패킷 데이터(Pc) 내에서 특정 프로그램을 형성하는 프로그램 컨텐츠 패킷 데이터(Pc)에만 가공이 실시되게 된다. 이에 대해서는 나중에 도 10, 도 11, 도 12, 도 13, 도 14, 도 15, 도 16, 도 17 및 도 18을 참조하여 상술한다.
다음에 도 8을 참조하여 상기한 단계(#600)의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P) 축적」서브루틴에 있어서의 동작에 대해 상세하게 설명한다. 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 트랜스포트 스트림(TS1~TSε)의 각각에 대응하여 단계(S602, S604, S606, S608, S610, S612 및 S614)가 1세트씩준비된다. 즉 단계(S602_1~602_ε), 단계(S604_1~S604_ε), 단계(S606_1~S606_ε), 단계(S608_1~S608_ε), 단계(S610_1~S610_ε), 단계(S612_1~S612_ε) 및 단계(S614_1~S614_ε)가 존재한다.
멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 제 1 트랜스포트 스트림(TS1)~제 ε트랜스포트 스트림(TSε)을 대표하여 제 i 트랜스포트 스트림 식별자(TSi)에 관한 동작에 대해 설명한다. 또 도 8에는 i가 1인 경우와 i가 ε인 경우에 대해서만 구체적으로 표시되어 있다.
우선 단계(S602_i)에서, 외부의 트랜스포트 스트림 공급원에서 제 i 트랜스포트 스트림(TSi)이 스트림 입력기(TSRi)에 입력된다. 그리고 처리는 다음 단계(S604_i)로 나아간다.
단계(S604_i)에서, 제 i 스트림 입력기(TSRi)는 입력된 제 i 트랜스포트 스트림(TSi)의 패킷 선두를 검출한다. 구체적으로는 제 i 스트림 입력기(TSRi)는 TD제어기(TDC)로부터 입력된 트랜스포트 스트림 구조신호(Sts)에 기초하여 입력되어 오는 제 i 트랜스포트 스트림(TSi)의 구조에 기초하여, 입력되어 오는 패킷 데이터(P)의 선두를 검출한다. 그리고 처리는 다음 단계(S606_1)로 나아간다.
단계(S606_1)에서, 제 i 스트림 입력기(TSRi)는 입력되어 오는 제 i 트랜스포트 스트림(TSi)에 데이터 에러가 포함되어 있지 않은지의 검출을 개시한다. 또 본 단계에서 개시한 데이터 에러 검출은 후술하는 단계(S644)에서 종료되기까지 다른 단계(S612_i~S640)에 있어서의 처리에 평행하여 계속 실행되고 데이터 에러가 검출된 시점에서 데이터 에러를 갖는 트랜스포트 스트림(TS)을 나타내는에러신호(Ei')(1≤i'≤ε에서 i'는 i와 동일해도 좋다)를 생성하여 출력한다. 그리고 처리는 단계(S608_i)와 단계(S610_i)로 분기된다.
단계(S608_i)에서 제 i 스트림 입력기(TSRi)는 제 i 패킷 선두검출신호(Spsi)를 생성한다. 그리고 처리는 후술하는 단계(S622)로 나아간다.
한편 단계(S610_i)에서는 제 i 스트림 입력기(TSRi)는 제 i 트랜스포트 스트림(TSi)의 선두 바이트를 검출한 시간에 기초하여 타임 스탬프(Sti)를 생성하고 DMA 버스 조정기(210)의 입력 포트군에 관련된 트랜스포트 스트림 식별자(TSIDi)를 생성하고, 그리고 관리정보(IMi)를 생성한다. 그리고 처리는 다음 단계(S612_i)로 나아간다다.
단계(S612_i)에서, 제 i 스트림 입력기(TSRi)는 패킷 선두 이후의 패킷 데이터를 내장 입력버퍼에 축적한다. 제 i 전송단위(TSdi)분의 축적이 완료되면, 처리는 다음 단계(S614_i)로 나아간다. 또 제 i 스트림 입력기(TSRi)에 내장 입력 버퍼 용량은 입력 패킷 데이터를 저장하는데 실패하는 일이 없도록, 입력 스트림의 전송 레이트 등에 의해 적정하게 정해지지 않으면 안 된다. 적어도 제 i 전송단위(TSdi)보다 클 필요가 있는 것은 말할 것도 없다.
단계(S614_i)에서 제 i 스트림 입력기(TSRi)는 제 i 리퀘스트 신호(Srqi)를 DMA 버스 조정기(210)에 출력한다. 그리고 처리는 다음 단계(S616)로 나아간다.
이와 같이 하여 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 모든 트랜스포트 스트림(TS1~TSε)(1≤i≤ε)의 각각에 대해 상기한 S604_i, S606_i, S610_i, S612_i 및 S614_i를 1세트로 하는 처리가 평행하게 실행된다. 결과, 모든트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P1~Pε)가 멀티포맷 트랜스포트 스트림 디코더(TD)에 도착한 시점에서 버퍼링 대상이 된다.
그리고 단계(S616)에서 DMA 버스 조정기(210)는 제 1 리퀘스트 신호(Srq1)~제 ε리퀘스트 신호(Srqε)의 각각에 기초하여 제 1 스트림 입력기(TSR1)~제 ε스트림 입력기(TSRε)의 각각에서의 제 1 패킷 데이터(P1)~제 ε트랜스포트 스트림(TSε) 각각의 전송단위(TSd)에서의 입력에 대비하여 조정을 실행한다. 그리고 제 1 전송단위(TSd1)~제 ε전송단위(TSdε) 내의 어느 하나의 입력을 허가한다. 그리고 처리는 다음 단계(S618)로 나아간다.
단계(S618)에서 DMA 버스 조정기(210)는 단계(S616)에 있어서의 조정의 결과, 제 i 전송단위(TSdi)의 입력을 허가하는 제 i 데이터 유효신호(Sdei)를 제 i 스트림 입력기(TSRi)에 출력한다. 그리고 처리는 다음 단계(S620)로 나아간다.
단계(S620)에서, 단계(S618)에서 출력된 제 i 데이터 유효신호(Sdei)에 따라 제 i 스트림 입력기(TSRi)에서 제 i 전송단위(TSdi)의 DMA 버스 조정기(210)로의 전송이 개시된다. 또 제 i 전송단위(TSdi)는 DMA 버스 조정기(210)를 경유하여 TSd 입력개시 검출기(220)에 출력된다. 그리고 처리는 다음 단계(S622)로 진행된다.
단계(S622)에서 TSd입력개시 검출기(220)는 단계(S608_i)에서 입력이 개시된 제 i 패킷 선두검출신호(Spsi)에 기초하여 제 i 전송단위(Tsdi)의 입력이 개시된 것을 검출한다. TSd입력개시 검출기(220)는 상기한 단계(S618)에서 출력되고 있는 제 i 데이터 유효신호(Sdei)에 기초하여 1패킷 데이터(P)분의 데이터가 제 i 전송단위(TSdi)에서 복수회에 걸쳐 입력되어 오는 최초의 데이터를 검출한 시점에서 제 i 전송단위(TSdi)의 입력개시를 검출한다.
즉 제 1 데이터 유효신호(Sde1)가 출력되고 있는 상태에서는 제 1 전송단위(TSd1)의 입력개시를 검출하고, 제 2 데이터 유효신호(Sde2)가 출력된 상태에서는 제 2 전송단위(TSd2)의 입력개시를 검출한다. TSd 입력개시 검출기(220)는 단계(S616)의 조정 결과, 제 i 패킷 선두검출신호(Spsi)가 입력된 후에 전송단위(TSd)가 처음으로 입력된 시점에서 제 i 스트림 입력기(TSRi)에서 입력되어 오는 패킷 선두의 입력개시를 검출한다. 그리고 처리는 다음 단계(S624)로 나아간다.
단계(S624)에서 TSd 입력개시 검출기(220)는 버퍼셀 요구신호(Sba)를 생성하여 버퍼셀 할당기(230)에 출력하고, 또한 쓰기 허가신호(Sw)를 생성하여 쓰기부분 버퍼셀 지정기(250)에 출력한다. 그리고 처리는 다음 단계(S626)로 나아간다.
단계(S626)에서 버퍼셀 할당기(230)는 버퍼셀 할당정보 저장기(240)에서 공급되는 할당 1차 버퍼셀 정보(Iab)에 기초하여 단계(S612_i)에서 전송이 개시된 전송단위(TSd)의 쓰기에 공급되는 버퍼셀(Bc)을 할당한다. 그리고 처리는 다음 단계(S628)로 나아간다.
단계(S628)에서 버퍼셀 할당기(230)는 단계(S612_i)에서의 할당된 1차 버퍼셀(Bc_I)을 나타내는 1차 버퍼셀 할당정보(Iba)를 생성하고 버퍼셀 할당정보 저장기(240)에 출력한다. 그리고 처리는 다음 단계(S630)로 나아간다.
단계(S630)에서 버퍼셀 할당정보 저장기(240)는 1차 버퍼셀 할당정보(Iba)에 기초하여 할당 1차 버퍼셀 정보(Iab)를 생성하고 저장한다. 그리고 처리는 다음단계(S632)로 나아간다.
단계(S632)에서 버퍼셀 할당정보 저장기(240)는 버퍼셀 할당기(230)에서 입력된 1차 버퍼셀 할당정보(Iba)를 쓰기부분 버퍼셀 지정기(250) 및 축적완료 버퍼셀 번호 메모리 제어기(280)에 출력한다. 그리고 처리는 다음 단계(S634)로 나아간다.
단계(S634)에서 TSd 입력개시 검출기(220)는 패킷 버퍼(270)의 1차 버퍼셀(Bc_I)로의 전송단위(TSdi)의 쓰기를 허가하는 쓰기허가신호(Sw)를 생성하고 쓰기부분 버퍼셀 지정기(250)에 출력한다. 그리고 처리는 다음 단계(S636)로 나아간다.
단계(S636)에서 쓰기부분 버퍼셀 지정기(250)는 쓰기허가신호(Sw)에 응답하여 1차 버퍼셀 할당정보(Iba)가 지시하는 할당된 1차 버퍼셀(Bc_I)에 대한 쓰기(축적)를 요구하는 쓰기요구신호(Swd)를 생성하고 패킷 버퍼 제어기(260)에 출력한다. 그리고 처리는 다음 단계(S638)로 나아간다.
단계(S638)에서 패킷 버퍼 제어기(260)는 TSd 입력개시 검출기(220)에서 경유하여 공급되는 전송단위(TSdi)를 쓰기요구신호(Swd)(1차 버퍼셀 할당정보(Iba)) 및 단계(S616)의 조정 결과가 지시하는 1차 버퍼셀(Bc_I)로의 패킷 데이터(P)의 전송단위(TSdi)에서의 쓰기(축적)를 실행한다. 그리고 처리는 다음 단계(S640)로 나아간다.
단계(S640)에서 전송단위(TSdi)마다 제 i 스트림 입력기(TSRi)에서 DMA 버스 조정기(210)에 제 i 리퀘스트 신호(Srqi)가 출력된다(단계(S614_i)). DMA 버스 조정기(210)는 제 i 리퀘스트 신호(Srqi)에 응답하여 조정을 실행하고(단계(S616)), 제 i 데이터 유효신호(Sdei)를 대응하는 제 i 스트림 입력기(TSRi)에 출력(단계(S618))한다. 제 i 스트림 입력기(TSRi)는 제 i 데이터 유효신호(Sdei)에 응답하여 패킷 데이터(P)의 다음 제 i 전송단위(TSdi)의 전송을 개시한다. 이들 일련의 동작이 입력되는 트랜스포트 스트림(TS1~TSε)의 각각에 대해 반복된다.
이 동안 패킷 버퍼 제어기(260)는 1차 버퍼셀(Bc_I)에 쓰여지는 데이터의 바이트수를 제 i 전송단위(TSdi)를 i의 값이 다를(다른 트랜스포트 스트림) 때마다 카운트하고 각각 1패킷 데이터(P)분의 전송단위(TSdi)의 버퍼셀로의 축적이 종료된 것을 검출한다(S640). 지금 제 1 트랜스포트 스트림(TS1)~제 ε트랜스포트 스트림(TSε)에 관한 동작을 제 i 트랜스포트 스트림(TSi)에 대표하여 설명했는데, 상기한 바와 같이 멀티포맷 트랜스포트 스트림 디코더(TD)에는 복수(다른 트랜스포트 스트림 식별자(TSID))의 트랜스포트 스트림(TS)이 동시에 입력된다.
따라서 i의 값이 다른 복수의 전송단위(TSdi)를 동시에 각각의 1차 버퍼셀(Bc_I)에 저장할 필요가 있다. 따라서 단계(S640)에서는 그와 같은 각각의 1차 버퍼셀(Bc_I)에 있어서의 전송단위(TSdi)의 축적완료를 검출하는 것이다.
또 전송종료신호(Stf)를 생성하고 축적완료 버퍼셀 번호 메모리 제어기(280)에 출력한다. 카운트수는 TD제어기(TDC)에 미리 저장되어 있는 트랜스포트 스트림 구조정보가 나타내는 트랜스포트 스트림(TS)의 패킷 데이터(P)의 데이터 사이즈에 의해 구할 수 있다. 그리고 처리는 다음 단계(S642)로 나아간다.
단계(S642)에서 에러 플랙 설정기(295)는 패킷 버퍼 제어기(260)에서 출력되는 전송종료신호(Stf)에 응답하여 상기한 단계(S606_i~S640) 사이에 제 1 스트림 입력기(TSR1)~제 ε스트림 입력기(TSRε)의 어느 하나로부터 출력되는 에러 신호(Ei'(1≤i'≤ε이고, i'는 i와 동일해도, 동일하지 않아도 좋다))에 기초하여 라이트 포인터(WP)가 나타나 있는 플랙 저장영역(Fcm)에 에러 플랙값을 쓴다. 즉 단계(S606_i~S640) 사이에 1차 버퍼셀(Bc_I)에 저장중인 패킷 데이터(P)에 데이터 에러가 검출되는 경우에는 전송종료신호(Stf)가 입력된 시점에서 플랙 저장영역(Fcn)에 에러 플랙 ON에 상당하는 값이 쓰여진다.
한편 단계(S606_i~S640) 동안에 데이터 에러가 검출되는 일 없이, 패킷 데이터(P)가 1차 버퍼셀(Bc_I)에 저장된 경우에는 단계(S644)에서 전송종료신호(Stf)가 입력된 시점에서 플랙 저장영역(Fcn)에 에러 플랙 OFF에 상당하는 값이 쓰여진다. 또 플랙 저장영역(Fc)의 초기값을 에러 플랙 OFF로 설정하면 단계(S644)에서 플랙 저장영역(Fcn)에는 아무것도 쓰여지지 않는다. 이 경우 에러 플랙 ON이 쓰여진 플랙 저장영역(Fc)의 리셋에 대해서는 나중에 도 9를 참조하여 설명한다. 그리고 처리는 다음 단계(S644)에 진행된다.
단계(S644)에서, 단계(S606_i)에서 개시된 제 i 스트림 입력기(TSRi)에 의한 제 i 트랜스포트 스트림(TS)의 데이터 에러 검출을 종료한다. 그리고 처리는 다음 단계(S646)로 나아간다.
단계(S646)에서 축적완료 버퍼셀 번호 메모리 제어기(280)는 전송종료신호(Stf)와 1차 버퍼셀 할당정보(Iba)에 기초하여 1패킷 데이터(P) 데이터의 축적을 완료한 1차 버퍼셀(Bc_I)을 나타내는 버퍼셀 번호신호(Sbn)를 생성한다. 즉 버퍼셀 번호신호(Sbn)는 전송종료신호(Stf)가 입력되었을 때에 1차 버퍼셀 할당정보(Iba)가 나타내는 1차 버퍼셀(Bc_I)의 버퍼셀 번호(Nbc)에 상당한다. 그리고 처리는 다음 단계(S648)로 나아간다.
단계(S648)에서 축적완료 버퍼셀 번호 메모리(290)는 버퍼셀 번호신호(Sbn)가 나타내는 버퍼셀 번호(Nbc)를 라이트 포인트(WP)가 나타낸 영역에 기록한다. 마찬가지로 축적완료 버퍼셀 번호 메모리(290)는 에러 플랙 신호(Fe)가 나타낸 플랙 저장영역(Fcn)에 에러 플랙값을 쓴다. 그리고 처리는 다음 단계(S650)로 나아간다.
단계(S650)에서 축적완료 버퍼셀 번호 메모리 제어기(280)는 라이트 포인트 갱신신호(Swp)를 축적완료 버퍼셀 번호 메모리(290)에 출력하여 축적완료 버퍼셀 번호 메모리 제어기(280)의 라이트 포인터(WP)를 하나 진행한다. 그리고 본 단계(#600)에 있어서의 「트랜스포트 스트림(TS1~TSε)의 패킷 데이터(P) 축적」 서브루틴을 종료한다.
상기한 단계에 의해 단계(#600)에서 멀티포맷 트랜스포트 스트림 디코더(TD)에 입력되는 복수의 트랜스포트 스트림(TS1~TSε)의 각각에 포함되는 패킷 데이터(P)의 각각의 트랜스포트 스트림(TS)과의 종속관계 및 다른 트랜스포트 스트림(TS)과의 시간관계의 정보를 유지한 상태에서 시퀀셜하면서 리얼 타임으로 버퍼링할 수 있다.
또 본 단계(S644)에 있어서의 에러 플랙값의 쓰기에 대해 도 6에 나타낸 파형도를 참조하여 각 구성요소의 동작을 보다 구체적으로 설명한다. 도 6에 나타낸예에서는 제 2 트랜스포트 스트림(TS2)의 최초 패킷 데이터(P)의 제 2 바이트째에서 제 2 번째 패킷 데이터(P)의 제 3 바이트째까지의 기간이 상기한 단계(S606_i)에서 단계(S640)까지의 기간에 상당한다. 그리고 제 2 스트림 입력기(TSR1)가 최초 패킷 데이터(P2)의 제 11 바이트째에 데이터 에러를 검출하고 에러신호(E2(I'=2))를 에러 플랙 설정기(295)에 출력한다. 조정기간(Ta)은 변동되기 때문에 상기한 기간은 각각 패킷 선두검출신호(Sps)~전송종료신호(Stf)의 발생범위 내에서 변동하는 것은 말할 것도 없다.
에러 플랙 설정기(295)는 에러 신호(E)를 래치하여 래치 에러신호(LE)를 생성하고 그리고 유지한다. 그리고 전송종료신호(Stf)가 입력된 시점에서 래치에러신호(LE) 및 전송종료신호(Stf)가 모두 하이이면 축적완료 버퍼셀 번호 메모리(290)의 플랙 저장영역(Fc)에 플랙 ON을 쓰는 에러 플랙 신호(Fe)를 생성한다.
한편 입력된 트랜스포트 스트림(TS)에 데이터 에러가 검출되지 않은 경우에는 전송종료신호(Stf)가 입력된 시점에서 래치 에러신호(LE)는 로이기 때문에 축적완료 버퍼셀 번호 메모리(290ra)의 플랙 저장영역(Fc)에 플랙 ON을 쓰는 에러 플랙신호(Fe)는 생성되지 않는다.
이와 같이 하여 동시에 입력되는 임의의 수의 트랜스포트 스트림(TS)의 어느 하나에 데이터 에러가 포함되어 있는 경우에도 패킷 버퍼(270)의 1차 버퍼셀(Bc_I)에 저장되는 패킷 데이터(P)의 단위로 데이터 에러의 유무를 식별관리할 수 있다. 결과, 입력되는 트랜스포트 스트림(TS)에 포함되어 있는 데이터 에러의 부분을 버린다거나 또는 다시 취득하여 트랜스포트 스트림(TS)이 전송하는 정보를 바르게 획득할 수 있다.
또 전송종료신호(Stf)에 응답하여 축적완료 버퍼셀 번호 메모리(290)의 플랙 저장영역(Fc)에 에러 플랙값의 쓰기를 실행하는 것은 본 실시형태와 같이 복수의 트랜스포트 스트림(TS1~TSε)이 동시에 입력되는 경우이다. 그 이유는 상기한 바와 같이 다른 트랜스포트 스트림(TS)에 있어서의 패킷 데이터(P)의 입력 레이트차에 의해 뒤에서 도착한 패킷 데이터(P)의 버퍼링이 앞에 도착한 패킷 데이터(P)의 버퍼링보다 빨리 종료될 때에, 실제로는 앞에 도착한 패킷에 데이터 에러를 검출한 것에 뒤에서 도착하여 앞서 버퍼링을 종료한 패킷을 저장한 1차 버퍼셀(Bc_I)에 대응하는 플랙 저장영역(Fc)에 에러 플랙 ON으로 오기입되는 것을 방지하기 위해서이다.
이상과 같이 본 발명은 각각이 복수종류의 패킷 데이터로 구성되는 복수 채널의 프로그램 컨텐츠가 다중화된 트랜스포트 스트림이 복수 입력되는 트랜스포트 스트림 디코더에 있어서, 임의의 트랜스포트 스트림으로부터 임의의 패킷 데이터를 선택적으로 추출할 수 있다. 결과, 트랜스포트 스트림에 대해 사용자가 소망하는 효과를 얻기 위한 처리를 패킷 데이터 단위로 실시하는 것을 가능하게 하는 인터페이스를 제공할 수 있는 것이다.

Claims (6)

  1. 미리 정해진 복수의 포맷의 어느 하나에 기초하여 생성되고, 또 각각을 식별하는 패킷 데이터 식별정보가 부여된 연속하는 복수의 제 1 패킷 데이터에 의해 구성되는 제 1 트랜스포트 스트림의 적어도 하나를 입력하고, 상기 제 1 패킷 데이터에 대해 선택적으로 사용자가 소망하는 처리를 실시하여 제 2 트랜스포트 스트림을 생성하는 멀티포맷 트랜스포트 스트림 디코더에 있어서,
    상기 복수의 제 1 패킷 데이터의 각각에 대해 미리 규정된 적어도 하나의 처리 시퀀스를 저장하는 패킷 데이터 처리 시퀀스 저장수단과,
    상기 제 1 패킷 데이터 내에서 상기 사용자가 소망하는 처리의 대상이 되는 것과, 상기 처리 시퀀스 내에서 상기 소망하는 처리에 대응하는 것을 나타내는 처리요구정보를 입력하는 처리요구정보 입력수단과,
    상기 제 1 트랜스포트 스트림에 정해진 포맷을 나타내는 트랜스포트 스트림 식별정보를 부여하는 트랜스포트 스트림 식별정보 부여수단과,
    상기 제 1 패킷 데이터를 각각에 차례차례 유지하고, 또 상기 유지된 제 1 패킷 데이터로부터 상기 트랜스포트 스트림 식별정보 및 상기 패킷 데이터 식별정보를 추출하는 패킷 데이터 유지식별수단과,
    상기 추출된 트랜스포트 스트림 식별정보 및 상기 패킷 데이터 식별정보가 상기 처리요구정보를 비교하고, 상기 유지되고 있는 제 1 패킷 데이터가 미리 상기 소망하는 처리의 대상인지의 여부를 나타내는 처리대상 판단신호를 생성하는 처리대상 패킷 데이터 데이터 선정수단을 구비하는 것을 특징으로 하는 멀티포맷 트랜스포트 스트림 디코더.
  2. 제 1 항에 있어서,
    상기 처리요구정보는 상기 제 1 패킷 데이터 내에서 상기 사용자가 소망하는 처리의 대상인 것을 나타내는 대상 패킷 데이터 식별정보와, 상기 처리의 대상인 제 1 패킷 데이터에 대응하는 대상 트랜스포트 스트림 식별정보와, 상기 처리의 대상인 제 1 패킷 데이터에 대해 미리 규정된 처리 시퀀스 내에서 처리에 대응하는 처리 시퀀스 정보를 포함하는 것을 특징으로 하는 멀티포맷 트랜스포트 스트림 디코더.
  3. 제 2 항에 있어서,
    상기 처리대상 패킷 데이터 데이터 선정수단은 상기 추출된 트랜스포트 스트림 식별정보 및 상기 패킷 데이터 식별정보가 각각 상기 대상 트랜스포트 스트림 식별정보 및 대상 패킷 데이터 식별정보 및 상기 처리의 대상인 제 1 패킷 데이터와 일치한 경우에만 상기 유지되고 있는 제 1 패킷 데이터를 상기 소망하는 처리인 것을 나타내는 처리대상 판단신호를 생성하는 것을 특징으로 하는 멀티포맷 트랜스포트 스트림 디코더.
  4. 제 3 항에 있어서,
    상기 패킷 데이터 유지식별수단은
    상기 제 1 패킷 데이터의 각각을 입력되어 오는 순서대로 소정 시간만큼 유지하는 제 1 패킷 데이터 유지수단과,
    상기 제 1 패킷 데이터 유지수단에 저장되어 있는 제 1 패킷 데이터에 상기 처리 시퀀스 처리를 실시한 때에 생기는 중간생성물을 저장하기 위한 제 2 패킷 데이터 유지수단과,
    상기 제 1 패킷 데이터에 상기 처리 시퀀스 처리를 실시한 때에 생기는 최종생성물을 저장하기 위한 제 3 패킷 데이터 유지수단을 구비하는 것을 특징으로 하는 멀티포맷 트랜스포트 스트림 디코더.
  5. 제 4 항에 있어서,
    상기 처리대상 판단신호가 상기 유지되고 있는 제 1 패킷 데이터가 미리 규정된 처리의 대상이 아닌 것을 나타내는 경우는 상기 제 1 패킷 데이터 유지수단은 다른 제 1 패킷 데이터의 저장을 위해 해방되는 것을 특징으로 하는 멀티포맷 트랜스포트 스트림 디코더.
  6. 제 4 항에 있어서,
    상기 처리대상 판단신호가 상기 유지되고 있는 제 1 패킷 데이터가 미리 규정된 처리의 대상인 것을 나타내는 경우는 상기 유지되고 있는 제 1 패킷 데이터에 상기 처리 시퀀스 정보에 기초하여 처리를 실시하는 데이터 처리수단을 추가로 포함하는 것을 특징으로 하는 멀티포맷 트랜스포트 스트림 디코더.
KR20037011770A 2001-09-14 2002-09-10 멀티포맷 트랜스포트 스트림 디코더 KR100898690B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001280375A JP4416361B2 (ja) 2001-09-14 2001-09-14 マルチフォーマットトランスポートストリームデコーダ
JPJP-P-2001-00280375 2001-09-14
PCT/JP2002/009211 WO2003026254A1 (fr) 2001-09-14 2002-09-10 Decodeur de flux de transport a formats multiples

Publications (2)

Publication Number Publication Date
KR20040028727A true KR20040028727A (ko) 2004-04-03
KR100898690B1 KR100898690B1 (ko) 2009-05-22

Family

ID=19104385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20037011770A KR100898690B1 (ko) 2001-09-14 2002-09-10 멀티포맷 트랜스포트 스트림 디코더

Country Status (6)

Country Link
US (1) US7280566B2 (ko)
EP (1) EP1365560A4 (ko)
JP (1) JP4416361B2 (ko)
KR (1) KR100898690B1 (ko)
CN (1) CN1625884A (ko)
WO (1) WO2003026254A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100736618B1 (ko) * 2005-10-10 2007-07-09 엘지전자 주식회사 Tsid 검출 방법

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003319339A (ja) * 2002-04-24 2003-11-07 Pioneer Electronic Corp 情報記録媒体、情報記録装置及び方法、情報再生装置及び方法、情報記録再生装置及び方法、記録又は再生制御用のコンピュータプログラム、並びに制御信号を含むデータ構造
US20040179485A1 (en) * 2003-03-12 2004-09-16 Terrier Carl M. Method of transmitting and receiving two-way serial digital signals in a wireless network utilizing a simplified baseband processor
US7561590B1 (en) * 2003-05-05 2009-07-14 Marvell International Ltd. Network switch having virtual input queues for flow control
US7334132B1 (en) * 2003-06-27 2008-02-19 Zoran Corporation Flexible and scalable architecture for transport processing
US7349428B2 (en) * 2003-06-30 2008-03-25 Broadcom Corporation Data alignment of the packetized elementary streams in the coded data buffer for dual decode
US20060198319A1 (en) * 2005-02-01 2006-09-07 Schondelmayer Adam H Network diagnostic systems and methods for aggregated links
US20060200711A1 (en) * 2005-02-01 2006-09-07 Schondelmayer Adam H Network diagnostic systems and methods for processing network messages
US20060198312A1 (en) * 2005-02-01 2006-09-07 Schondelmayer Adam H Network diagnostic systems and methods for altering the format and bandwidth of network messages
US20060198318A1 (en) * 2005-02-01 2006-09-07 Schondelmayer Adam H Network diagnostic systems and methods for statistical triggering
US20080075103A1 (en) * 2005-05-20 2008-03-27 Finisar Corporation Diagnostic device
US20070211696A1 (en) * 2006-03-13 2007-09-13 Finisar Corporation Method of generating network traffic
US8107822B2 (en) 2005-05-20 2012-01-31 Finisar Corporation Protocols for out-of-band communication
US20070211697A1 (en) * 2006-03-13 2007-09-13 Finisar Corporation Method of analyzing network with generated traffic
US20060264178A1 (en) * 2005-05-20 2006-11-23 Noble Gayle L Wireless diagnostic systems
US20070260728A1 (en) * 2006-05-08 2007-11-08 Finisar Corporation Systems and methods for generating network diagnostic statistics
US20070038880A1 (en) * 2005-08-15 2007-02-15 Noble Gayle L Network diagnostic systems and methods for accessing storage devices
US7899057B2 (en) * 2006-04-28 2011-03-01 Jds Uniphase Corporation Systems for ordering network packets
KR100724980B1 (ko) * 2005-06-28 2007-06-04 삼성전자주식회사 위성 dmb와 지상파 dmb를 동시에 수신할 수 있는듀얼 모드 dmb 단말기
US20070002871A1 (en) * 2005-06-30 2007-01-04 Nokia Corporation Padding time-slice frames with useful data
KR101215615B1 (ko) * 2006-01-10 2012-12-26 삼성전자주식회사 동일 채널 내에서 서로 다른 코덱을 이용하여 부호화된 비디오 및 오디오 데이터 스트림의 재생을 위한 코덱 변경 방법 및 장치
DE102006012449A1 (de) * 2006-03-17 2007-09-20 Benq Mobile Gmbh & Co. Ohg Verfahren zum Dekodieren eines Datenstroms und Empfänger
JP4864499B2 (ja) * 2006-03-20 2012-02-01 株式会社東芝 局間伝送システム、送信装置、受信装置、及び局間伝送方法
KR101419287B1 (ko) * 2006-07-07 2014-07-14 삼성전자주식회사 Ipdc 서비스를 제공하는 장치 및 방법 및 ipdc서비스를 처리하는 장치 및 방법
US8213333B2 (en) 2006-07-12 2012-07-03 Chip Greel Identifying and resolving problems in wireless device configurations
US8526821B2 (en) * 2006-12-29 2013-09-03 Finisar Corporation Transceivers for testing networks and adapting to device changes
KR100901124B1 (ko) * 2007-02-27 2009-06-08 삼성전자주식회사 디지털 멀티미디어 방송의 전계 판단 방법 및 이를이용하는 휴대 단말기
GB2466651A (en) * 2008-12-31 2010-07-07 St Microelectronics Security co-processor architecture for decrypting packet streams
GB0823702D0 (en) 2008-12-31 2009-02-04 St Microelectronics Res & Dev Processing packet streams
JP2010232861A (ja) * 2009-03-26 2010-10-14 Sony Corp 情報処理装置、音声信号処理方法、およびプログラム
KR20100124966A (ko) * 2009-05-20 2010-11-30 삼성전자주식회사 복수의 형식을 가지는 디지털 방송 송수신 방법 및 장치
CN104094608B (zh) * 2012-02-07 2018-10-26 索尼公司 发送设备、发送方法、接收设备、接收方法、计算机可读存储介质和电子装置
US20150229432A1 (en) * 2012-05-09 2015-08-13 Stephen Shellhammer Full-duplex ethernet communications over coaxial links using time-division duplexing
JP5970957B2 (ja) * 2012-05-18 2016-08-17 ソニー株式会社 送信装置、送信方法、受信装置、受信方法、プログラムおよび電子機器
KR101908377B1 (ko) * 2016-09-27 2018-10-17 한국전력공사 계량데이터 관리 시스템 및 컴퓨터 판독가능 기록 매체

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159447A (en) * 1991-05-23 1992-10-27 At&T Bell Laboratories Buffer control for variable bit-rate channel
JP3128058B2 (ja) 1996-03-05 2001-01-29 日本電信電話株式会社 プロトコル処理装置
JP3787411B2 (ja) 1997-05-15 2006-06-21 キヤノン株式会社 情報処理装置及び方法並びに情報処理プログラムが記録されたコンピュータ可読記録媒体
JP3965539B2 (ja) 1998-04-23 2007-08-29 ソニー株式会社 デジタル画像復号装置及び方法、並びに記録媒体
JP3573977B2 (ja) 1998-11-05 2004-10-06 株式会社東芝 通信装置及び通信方法
JP2000209557A (ja) 1999-01-08 2000-07-28 Nec Corp トランスポ―トストリ―ム切り替え装置及びトランスポ―トストリ―ム切り替え方法
JP2000209521A (ja) 1999-01-14 2000-07-28 Matsushita Electric Ind Co Ltd 複数番組表示処理装置
EP1081949A4 (en) * 1999-02-25 2004-11-24 Matsushita Electric Ind Co Ltd NONLINEAR EDITING DEVICE AND NONLINEAR EDITING PROCESS
JP4256546B2 (ja) 1999-08-24 2009-04-22 パナソニック株式会社 ストリーム多重分離装置
JP4374107B2 (ja) 1999-10-01 2009-12-02 パナソニック株式会社 Ts多重化送信装置および受信装置並びに伝送システム
KR100749070B1 (ko) * 2000-07-14 2007-08-13 삼성전자주식회사 트랜스포트스트림을 역다중화하는 장치
JP2002320180A (ja) 2001-04-24 2002-10-31 Alpine Electronics Inc 車載用ディジタル放送受信装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100736618B1 (ko) * 2005-10-10 2007-07-09 엘지전자 주식회사 Tsid 검출 방법

Also Published As

Publication number Publication date
CN1625884A (zh) 2005-06-08
JP4416361B2 (ja) 2010-02-17
EP1365560A4 (en) 2010-06-23
JP2003087323A (ja) 2003-03-20
KR100898690B1 (ko) 2009-05-22
EP1365560A1 (en) 2003-11-26
US20040076194A1 (en) 2004-04-22
US7280566B2 (en) 2007-10-09
WO2003026254A1 (fr) 2003-03-27
EP1365560A8 (en) 2004-07-14

Similar Documents

Publication Publication Date Title
KR100898690B1 (ko) 멀티포맷 트랜스포트 스트림 디코더
US5742361A (en) Data demultiplexer
KR100226528B1 (ko) 다중화 압축화상/음성데이타의 복호장치
US6661808B2 (en) Remultiplexing apparatus
US20070253509A1 (en) Data transfer device
US20050152546A1 (en) Digital video broadcasting receiver
JPH1169249A (ja) 情報表示制御方法、情報送信方法、情報表示装置及び記録媒体
EP1703733B1 (en) System for processing of television data streams and method for processing of television data streams
EP1374482B1 (en) Packet data processing apparatus
US7489685B2 (en) Digital broadcast receiving apparatus
CN105979289A (zh) 一种视频的生成、播放方法和装置
JP3382021B2 (ja) 番組探索装置および方式
US7415014B2 (en) Method and system for co-relating transport packets on different channels using a packet prioritization scheme
US8223966B2 (en) Multiple stream decrypting and decoding systems and related methods thereof
US20020031330A1 (en) Storage and reproduction system, transport stream storage method, and transport stream reproduction method
JP2003524992A (ja) コンテンツ記述情報と接続情報とを提供する方法
CN101151897A (zh) 在数字广播接收机中处理数据的设备和方法
EP2852169B1 (en) A multi-programme transport stream common interface controller
US20040150746A1 (en) Program selecting apparatus
JP2004112316A (ja) デジタル放送信号送出処理装置
EP3206390B1 (en) Recording device
JPH10290207A (ja) 多重化データ分離装置
JP4788081B2 (ja) パケットデータ出力装置
JPH1070710A (ja) 多重化装置及び多重化方法
JP2007288811A (ja) ディジタル放送受信装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130419

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140421

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160418

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180418

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee