KR100831186B1 - 스트림 데이터 프로세서 - Google Patents

스트림 데이터 프로세서 Download PDF

Info

Publication number
KR100831186B1
KR100831186B1 KR1020060106470A KR20060106470A KR100831186B1 KR 100831186 B1 KR100831186 B1 KR 100831186B1 KR 1020060106470 A KR1020060106470 A KR 1020060106470A KR 20060106470 A KR20060106470 A KR 20060106470A KR 100831186 B1 KR100831186 B1 KR 100831186B1
Authority
KR
South Korea
Prior art keywords
pes
data
packet
buffer
stream data
Prior art date
Application number
KR1020060106470A
Other languages
English (en)
Other versions
KR20070046761A (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 KR20070046761A publication Critical patent/KR20070046761A/ko
Application granted granted Critical
Publication of KR100831186B1 publication Critical patent/KR100831186B1/ko

Links

Images

Classifications

    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/762Media network packet handling at the source 
    • 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/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

스트림 데이터 프로세서는 PES 데이터를 저장하기 위한 PES 버퍼, PES 버퍼로부터 PES 데이터를 검색하고 PES 데이터를 디코딩하기 위한 디코더, PES 데이터의 PES 패킷의 패킷 경계를 검출하기 위한 경계 검출기, 및 스트림 데이터에 포함된 PES 패킷 헤더를 분석하기 위한 패킷 분석기를 포함한다. 패킷 분석기는 패킷 경계의 검출에 응답하여 패킷 헤더를 분석한다. 디코더는 경계 검출기에 의한 PES 패킷 경계의 검출에 응답하여 PES 버퍼로부터 PES 데이터를 검색하는 것을 중단한다. 또한, 인코더는 패킷 분석기에 의한 패킷 헤더의 분석 결과에 따라 PES 버퍼로부터 PES 데이터를 검색하는 것을 재개한다.
스트림 데이터 프로세서, PES 버퍼, 경계 검출기, 패킷 분석기

Description

스트림 데이터 프로세서{STREAM DATA PROCESSOR}
도 1 은 본 발명에 따른 스트림 데이터 프로세서를 도시한 기능 블록 다이어그램.
도 2 는 본 발명에 따른 스트림 데이터 프로세서의 구성예.
도 3 은 인터럽션 프로세스로서 패킷 분석의 동작을 설명하는 패턴 다이어그램.
도 4 는 본 발명에 따른 데이터 프로세서의 동작을 도시한 플로우차트.
도 5 는 본 발명에 따른 스트림 데이터 프로세서를 도시한 기능 블록 다이어그램.
도 6 은 본 발명에 따른 데이터 프로세서의 동작을 도시한 플로우차트.
도 7 은 본 발명에 따른 스트림 데이터 프로세서를 도시한 기능 블록 다이어그램.
도 8 은 종래 기술에 따른 스트림 데이터 프로세서를 도시한 기능 블록 다이어그램.
* 도면의 주요부분에 대한 부호의 설명 *
1, 2, 3: 스트림 데이터 프로세서
11, 24: PES 버퍼
12: 디코더
13: 데이터 리트리버
14: 디코딩 유닛
15, 25: 경계 검출기
16, 26: PES 카운터
17: 패킷 분석기
21: 인코더
22: 인코딩 유닛
23: 데이터 기입기
27: 패킷화기
101: 실행 유닛
102: 프로그램 카운터
103: 범용 레지스터
본 발명은 스트림 데이터를 패킷화하는 기술 및 패킷화된 스트림 데이터의 패킷을 분해하는 기술에 관한 것이다.
MPEG-2 프로그램 스트림 (PS) 은 인코딩된 오디오 또는 비디오 데이터로 구성된 패킷화된 기본 스트림 (ES; Elementary Streams) 인 복수의 PES (Packetized Elementary Stream) 를 다중화함으로써 형성된다. 유사하게, MPEG-1 PS 및 MPEG-2 전송 스트림 (TS) 은 패킷화된 스트림 데이터를 다중화함으로써 형성된다. 일반적으로, 동영상 스트림 데이터의 누산 또는 송신은, 패킷화되고 인코딩된 스트림 데이터로 수행된다.
MPEG-2 PS 를 인코딩 및 디코딩하기 위한 종래의 스트림 데이터 프로세서 (8) 의 구성이 도 8 에 도시된다. PES 버퍼 (811), 패킷 분해기 (812), ES 버퍼 (813), 및 디코더 (814) 는 PES 스트림 데이터 (이후, PES 데이터로 지칭) 를 입력하고 PES 데이터로부터 인코딩된 오디오 또는 비디오 데이터를 출력하는 기능을 가진다.
PES 버퍼 (811) 는 PES 데이터를 저장하는 버퍼 메모리이다. MPEG-2 PS 로부터 PES 패킷을 분리하기 위해 PES 패킷 디멀티플렉서 (DEMUX) 등에 의해 PES 버퍼 (811) 에의 데이터 기입이 실행된다. 패킷 분해기 (812) 는 PES 버퍼 (811) 로부터의 PES 데이터를 입력하고 입력 데이터로부터 PES 패킷 헤더 (이후 PES 헤더라 지칭) 를 제거함으로써 획득되는 ES 스트림 데이터 (이후, ES 데이터라 지칭) 를 ES 버퍼 (813) 에 출력한다. 패킷 분해기 (812) 는 PES 버퍼 (811) 로부터의 PES 데이터를 입력하고, PES 패킷의 개시를 검출하기 위해 PES 패킷의 개시 위치를 나타내는 개시 코드와 비교하도록 1 비트만큼 PES 데이터를 시프트시킨다. ES 버퍼 (813) 는 패킷 분해기 (812) 와 디코더 (814) 사이에 제공되며, 독립적으로 동작하고, ES 데이터를 저장하기 위한 버퍼 메모리이다. 디코더 (814) 는 ES 버퍼 (813) 로부터의 ES 데이터를 입력하여 ES 데이터를 디코딩하고 디코딩된 오디오 또는 비디오 데이터를 출력한다.
한편, 인코더 (821), ES 버퍼 (822), 패킷화기 (packetizer; 823), 및 PES 버퍼 (824) 는 오디오 또는 비디오 데이터를 입력하고 패킷화된 PES 데이터를 출력하기 위한 기능을 가진다. 인코더 (821) 는 오디오 또는 비디오 데이터를 입력 및 인코딩하고 ES 데이터로서 데이터를 ES 버퍼 (822) 에 저장한다. ES 버퍼 (822) 는 인코더 (821) 와 패킷화기 (823) 사이에 제공되며, 독립적으로 동작하고, ES 데이터를 저장하기 위한 버퍼 메모리이다. 패킷화기 (823) 는 ES 버퍼 (822) 로부터의 ES 데이터를 입력하고, PES 헤더를 PES 패킷의 경계에 삽입하여 PES 데이터를 발생시키며, 발생된 PES 데이터를 PES 버퍼 (824) 에 출력한다. PES 헤더를 삽입하는 위치는 헤더 삽입 위치를 정하기 위해 ES 데이터에 탑재된 특수 코드와 ES 버퍼 (822) 로부터 입력된 데이터를 매칭함으로써 결정된다. PES 버퍼 (824) 에 저장된 PES 데이터는 다른 PES 데이터와 다중화되고 MPEG-2 PS 로서 출력된다.
상술한 스트림 데이터 프로세서로 스트림 데이터를 효율적으로 패킷화하거나 패킷화된 스트림 데이터를 분해하는 기술이 제안되어 왔다 (예를 들어, 미심사된 일본 특허공개공보 평 11-317765호에 개시된 기술).
스트림 데이터를 인코딩 및 패킷화하는 패킷화 장치는 미심사된 일본 특허공개공보 평 11-317765호에 개시된다. 패킷화 장치는 인코딩 장치, 스트림 길이 계산 장치, 및 헤더 추가 장치를 포함한다. 인코딩 장치는 비디오 또는 오디오 데이터를 입력 및 인코딩하고 인코딩된 스트림 데이터를 출력한다. 또한, 인코 딩 장치는 패킷 헤더 삽입 위치를 나타내는 플래그 비트를 스트림 데이터에 부착한다. 스트림 길이 계산 장치는 인코딩된 스트림 데이터에 부착된 플래그 비트의 값으로부터 패킷 헤더 삽입 위치를 식별하고 플래그 비트의 간격으로부터 스트림 데이터 길이 (즉, 스트림 길이) 를 계산한다. 또한, 스트림 길이 계산 장치는 계산된 스트림 길이를 헤더 추가 장치에 출력하고 인코딩된 스트림 데이터에 부착된 플래그 비트를 기입 매체에 출력한다. 헤더 추가 장치는 기입 매체로부터 인코딩된 스트림 데이터를 판독하고, 패킷화된 스트림 데이터를 발생시키도록 플래그 비트에 의해 정해진 패킷 헤더 삽입 위치에 패킷 헤더를 삽입한다. 삽입될 패킷 헤더는 스트림 길이 계산 장치에 의해 계산된 스트림 길이를 참조하여 발생된다. 전술한 바와 같이, 미심사된 일본 특허공개공보 평 11-317765호에 개시된 패킷화 장치는 스트림 데이터에 부착된 플래그 비트를 출력하고 플래그 비트에 의해 헤더 삽입 위치를 식별한다. 이는 스트림 데이터에 탑재된 특수 코드를 검출하기 위한 매칭의 필요를 제거함으로써, 패킷화 프로세스를 단순화한다.
또한, 미심사된 일본 특허공개공보 제 2004-120632호는 PES 패킷 디멀티플렉서를 개시한다. PES 패킷 디멀티플렉서는 MPEG-2 PS 로부터 스트림을 디멀티플렉싱하는데 필요한 헤더 분석을 효율적으로 수행할 수 있게 한다. 상세하게는, 디멀티플렉서는 수신된 스트림 데이터를, 헤더의 개시 위치인 패킷의 개시 위치를 나타내는 개시 코드와 매칭시킨다. 헤더 길이, 패킷 길이, 및 스트림 ID 를 포함하는 정보를 획득하기 위해 패킷 헤더를 분석하는 것을 개시하지 않으면, 개시 코드를 검출한 이후에 특정 바이트의 데이터를 수신하는 것을 종료할 때까지 패킷 헤더 분석 프로세스는 지연된다. 이는 헤더를 포함한 메인 데이터가 버퍼에 저장되는 동안에 분석을 개시할 수 있도록 한다. 따라서, 버퍼에의 액세스 수를 감소시키고 분석 프로세스의 효율을 증진시킨다. PES 패킷을 포함하는 데이터가 패킷 헤더 분석에 의해 비디오 스트림으로 평가되는 경우, PES 패킷은 비디오 디코더의 PES 버퍼에 저장된다. PES 패킷이 오디오 스트림으로 평가되는 동안, PES 패킷은 오디오 디코더의 PES 버퍼에 저장된다.
스트림 데이터 프로세서 (8), 및 미심사된 일본 특허공개공보 평 11-317765호 및 제 2004-120632호에 개시된 장치들은 ES 데이터를 일시 저장하도록 패킷 분해기와 디코더 사이 또는 인코더와 패킷화기 사이에 (ES 버퍼 (813 및 822) 와 같은) 버퍼 메모리를 포함한다.
그러나, 패킷 분해기와 디코더 사이 또는 인코더와 패킷화기 사이에 버퍼 메모리를 제공하는 것은 메모리 액세스 수의 증가를 야기함으로써, 스트림 데이터 프로세서의 프로세싱 능력을 개선하는 것을 방해한다는 것이 발견되었다.
본 발명의 개요
본 발명의 일 양태에 의하면, 복수의 패킷에 의해 형성된 스트림 데이터를 저장하기 위한 버퍼, 버퍼로부터 스트림 데이터를 검색하고 스트림 데이터를 디코딩하기 위한 디코더, 스트림 데이터의 패킷 경계를 검출하기 위한 경계 검출기, 및 스트림 데이터에 포함된 패킷 헤더를 분석하기 위한 패킷 프로세서를 포함하는 스 트림 데이터 프로세서가 제공된다. 디코더는 경계 검출기에 의한 패킷 경계의 검출에 응답하여 버퍼로부터 스트림 데이터를 검색하는 것을 중단한다. 패킷 프로세서는 경계 검출기에 의한 패킷 경계의 검출에 응답하여 패킷 헤더를 분석한다. 또한, 디코더는 패킷 프로세서에 의한 패킷 헤더의 분석 결과에 따라 버퍼로부터의 스트림 데이터를 검색하는 것을 재개한다.
패킷화된 스트림 데이터가 MPEG-2 표준에 따른 PES 데이터인 경우에, PES 데이터를 연속하여 판독하고 PES 데이터를 직접 디코딩하며, PES 데이터로부터 PES 헤더를 분리하기 위한 패킷 분석 프로세스를 수행하도록 판독 데이터가 패킷 경계에 도달하는 경우에 디코딩될 PES 데이터를 검색하는 것을 중지하는 것이 가능하다. 패킷 분석 프로세스 이후에, PES 데이터는 연속하여 판독되어 직접 디코딩될 수 있다.
종래 기술과 달리, PES 헤더를 PES 데이터로부터 분리하기 위한 패킷 분해 프로세스 및 ES 데이터를 입수하기 위한 디코딩 프로세스를 분리하는 대신에, 본 발명에서는 2 개의 프로세스가 동시에 프로세싱되거나 통합될 수 있다. 이는 패킷 분해기 (812) 와 디코더 (814) 사이에 제공된 ES 버퍼 (813) 가 스트림 데이터를 일시 저장할 필요를 제거한다. ES 버퍼 (813) 에의 액세스도 필요하지 않음으로써, PES 데이터의 패킷 분해 및 디코딩 프로세스의 효율을 증진시킨다.
본 발명의 다른 양태에 의하면, 복수의 패킷에 의해 형성된 스트림 데이터를 저장하기 위한 버퍼, 버퍼로부터의 스트림 데이터를 검색 및 디코딩하는 프로세스를 정의하는 제 1 명령 프로그램 및 스트림 데이터에 포함된 패킷 헤더의 분석 프 로세스를 정의하는 제 2 명령 프로그램를 실행하기 위한 실행 유닛, 및 버퍼로부터 판독된 스트림 데이터의 패킷 경계를 검출하기 위한 경계 검출기를 포함하는 스트림 데이터 프로세서가 제공된다. 경계 검출기는 패킷 경계의 검출에 응답하여 실행 유닛에 인터럽션 요청을 발생시킨다. 실행 유닛은 인터럽션 요청에 응답하여 제 1 명령 프로그램에서 제 2 명령 프로그램으로 분기하고, 제 2 명령 프로그램을 완료한 이후에 패킷 헤더의 분석 프로세스의 결과에 따라 제 1 명령 프로그램을 재개한다.
종래 기술과 달리, PES 데이터로부터 PES 헤더를 분리하기 위한 패킷 분해 프로세스 및 ES 데이터를 입수하기 위한 디코딩 프로세스를 분리하는 대신에, 본 발명에서는 2 개의 프로세스가 동시에 프로세싱되거나 통합될 수 있다. 이는 패킷 분해 프로세스와 디코딩 프로세스 사이에 제공된 버퍼 메모리의 필요를 제거함으로써, PES 데이터의 패킷 분해 및 디코딩 프로세스의 효율을 증진시킨다.
본 발명의 또 다른 양태에 의하면, 복수의 패킷에 의해 형성된 스트림 데이터를 저장하기 위한 버퍼, 인코딩된 입력 신호를 갖는 스트림 데이터를 버퍼에 출력하기 위한 인코더, 스트림 데이터에 삽입될 패킷 헤더를 발생시키기 위한 패킷 프로세서, 및 스트림 데이터에서의 패킷 헤더의 삽입 위치를 검출하기 위한 경계 검출기를 포함하는 스트림 데이터 프로세서가 제공된다. 인코더는 패킷 헤더의 삽입 위치의 검출에 응답하여 스트림 데이터를 버퍼에 출력하는 것을 중단한다. 패킷 프로세서는 패킷 헤더의 삽입 위치의 검출에 응답하여 버퍼에 패킷 헤더를 출력한다. 또한, 인코더는 패킷 프로세서가 패킷 헤더를 출력하는 것을 완료한 이후에 버퍼에 스트림 데이터를 출력하는 것을 재개한다.
패킷화된 스트림 데이터가 MPEG-2 표준에 따른 PES 데이터인 경우에, 입력 신호를 ES 데이터로 연속하여 인코딩하고, ES 데이터를 PES 버퍼에 직접 출력하며, PES 버퍼에 PES 헤더를 기입하도록 출력 데이터가 패킷 경계에 도달하는 경우에 ES 데이터를 출력하는 것을 중단하는 것이 가능하다. PES 헤더 삽입 프로세스 이후에, ES 데이터는 직접 PES 버퍼에 연속하여 출력될 수 있다.
종래 기술과 달리, PES 데이터를 획득하기 위해 ES 데이터를 발생하기 위한 인코딩 프로세스 및 PES 헤더를 ES 데이터에 삽입하기 위한 패킷화 프로세스를 분리하는 대신에, 본 발명에서는 2 개의 프로세스가 동시에 프로세싱되거나 통합될 수 있다. 이는 인코더 (821) 와 패킷화기 (823) 사이에 제공된 ES 버퍼 (822) 가 스트림 데이터를 일시 저장할 필요를 제거한다. ES 버퍼 (822) 에의 액세스도 필요하지 않음으로써, PES 데이터를 발생시키기 위해 인코딩 및 패킷화 프로세스의 효율을 증진시킨다.
본 발명의 또 다른 양태에 의하면, 복수의 패킷에 의해 형성된 스트림 데이터를 저장하기 위한 버퍼, 인코딩된 입력 신호를 갖는 스트림 데이터를 버퍼에 출력하는 프로세스를 정의하는 제 1 명령 프로그램 및 패킷 헤더를 발생시키고 패킷 헤더를 스트림 데이터에 삽입하는 프로세스를 정의하는 제 2 명령 프로그램을 실행하기 위한 실행 유닛, 및 스트림 데이터에서의 패킷 헤더의 삽입 위치를 검출하기 위한 경계 검출기를 포함하는 스트림 데이터 프로세서가 제공된다. 경계 검출기는 패킷 헤더의 삽입 위치의 검출에 응답하여 실행 유닛에 인터럽션 요청을 발생 시킨다. 실행 유닛은 인터럽션 요청에 응답하여 제 1 명령 프로그램에서 제 2 명령 프로그램으로 분기하고, 제 2 명령 프로그램을 완료한 이후에 제 1 명령 프로그램을 재개한다.
종래 기술과 달리, PES 데이터를 획득하기 위해 ES 데이터를 발생하기 위한 인코딩 프로세스 및 ES 데이터에 PES 헤더를 삽입하는 패킷화 프로세스를 분리하는 대신에, 본 발명에서는 2 개의 프로세스가 동시에 프로세싱되거나 통합될 수 있다. 이는 인코딩 프로세스와 패킷화 프로세스 사이에 제공된 버퍼 메모리의 필요성을 제거함으로써, PES 데이터를 발생시키는 인코딩 및 패킷화 프로세스의 효율을 증진시킨다.
본 발명은 패킷화된 스트림 데이터를 분해 및 디코딩하거나 패킷화된 스트림 데이터를 발생하기 위해 인코딩 및 패킷화하는 경우에 버퍼 메모리 액세스로 인한 프로세싱 효율을 열화하는 것을 방지한다.
본 발명의 상기 및 다른 목적, 장점 및 특징은 첨부 도면에 따른 다음의 설명으로부터 명백해질 것이다.
바람직한 실시형태의 설명
이하, 본 발명을 예시적인 실시형태를 참조하여 설명한다. 당업자는 많은 다른 실시형태가 본 발명의 교시를 이용하여 달성될 수 있고, 본 발명은 설명적인 목적을 위해 예시된 실시형태에 제한되지 않는다는 것을 인식할 것이다.
도면에서, 동일한 성분은 적절히 생략된 상세한 설명과 동일한 참조부호에 의해 나타낸다. 이하 설명되는 실시형태는 MPEG-2 표준에 따른 PES 패킷을 분 해하기 위한 스트림 데이터 프로세서 및 본 발명이 적용된 PES 패킷을 발생시키기 위한 스트림 데이터 프로세서를 포함한다.
제 1 실시형태
도 1 은 이 실시형태의 스트림 데이터 프로세서 (1) 를 도시한 기능 블록 다이어그램이다. 스트림 데이터 프로세서 (1) 는 MPEG-2 PS 를 복수의 PES 데이터로 디멀티플렉싱하기 위한 PES 패킷 디멀티플렉서 (미도시) 로부터의 PES 데이터를 입력하고, PES 패킷을 분해 및 디코딩하며, 디코딩된 오디오 또는 비디오 데이터를 출력한다.
PES 버퍼 (11) 는 외부 PES 패킷 디멀티플렉서 등으로부터 입력된 PES 데이터를 저장하기 위한 버퍼 메모리이다. 디코더 (12) 는 데이터 리트리버 (13) 및 디코딩 유닛 (14) 을 포함한다. 데이터 리트리버 (13) 는 PES 버퍼 (11) 로부터의 PES 데이터를 연속하여 검색하고 검색된 PES 데이터를 디코딩 유닛 (14) 에 출력한다. 디코딩 유닛 (14) 은 MPEG-2 표준에 따라 데이터 리트리버 (13) 로부터 입력된 데이터를 디코딩하고 오디오 또는 비디오 데이터를 출력한다.
데이터 리트리버 (13) 는 ES 데이터인, PES 헤더 없는 PES 패킷의 페이로드 부분을 디코딩 유닛 (14) 에 출력할 필요가 있다. 따라서, 스트림 데이터 프로세서 (1) 는, 데이터 리트리버 (13) 가 PES 버퍼 (11) 로부터의 PES 데이터를 연속하여 판독하는 동안에 경계 검출기 (15) 에 의해 PES 패킷의 페이로드의 말단을 검출한다. 데이터 리트리버 (13) 는 검출에 응답하여 디코딩 유닛 (14) 에 PES 데이터를 출력하는 것을 중단한다. 따라서, 데이터 리트리버 (13) 는 PES 헤더 를 남기고 PES 패킷의 페이로드 부분만을 디코딩 유닛 (14) 에 출력할 수 있다.
먼저, 데이터 리트리버 (13) 는 PES 버퍼 (11) 로부터 획득된 PES 데이터의 데이터 길이에 대응하는 값에 대해 PES 카운터 (16) 의 값을 증가 또는 감소시킨다. 경계 검출기 (15) 는 PES 카운터 (16) 의 값을 모니터링한다. 경계 검출기 (15) 는 데이터 리트리버 (13) 로 하여금 PES 카운터 (16) 가 특정 값에 도달하는 경우에 PES 데이터를 판독하는 것을 중단하도록 지시한다.
상세하게는, PES 카운터 (16) 는 판독을 개시하기 위해, PES 패킷의 페이로드 길이에 대응하는 값을 저장한다. 이후, 데이터 리트리버 (13) 는, PES 패킷의 제 1 페이로드 데이터를 검색하는 것을 개시하는 때부터 PES 카운터 (16) 의 카운터 값을 감소시키는 것을 개시한다. 이 동작은, 데이터 리트리버 (13) 가 PES 패킷의 페이로드 부분을 판독하는 것을 완료하고, 0 이 되는 PES 카운터 (16) 의 카운터 값까지 패킷의 경계가 도달하였다고 결정하는 것을 가능하게 한다.
경계 검출기 (15) 는, 데이터 리트리버 (13) 가 PES 데이터를 판독하는 동안에 PES 패킷의 경계에 도달한다고 결정하는 경우에 패킷 분석기 (17) 로 하여금 패킷 분석을 수행하도록 지시한다.
패킷 분석기 (17) 는 PES 패킷 및 헤더 길이를 획득하기 위해 PES 헤더를 분석한다. 패킷 분석기 (17) 는, 데이터 리트리버 (13) 가 데이터 판독을 중단하는 위치부터 개시하여 PES 버퍼 (11) 로부터의 PES 데이터를 판독하고, 개시 코드와 데이터를 매칭함으로써 판독된 데이터가 PES 헤더라고 결정하며, 판독된 PES 헤더로부터 PES 패킷 길이 및 PES 헤더 길이와 관련된 정보를 획득한다. PTS (Presentation Time Stamp) 및 DTS (Decoding Time Stamp) 를 포함하는 다른 PES 헤더 정보는 이때 함께 획득될 수도 있다.
패킷 분석기 (17) 는 PES 패킷 길이 및 헤더 길이로부터 PES 패킷의 페이로드 사이즈를 계산하고, 계산된 값을 PES 카운터 (16) 에 설정한다. 패킷 분석기 (17) 는 데이터 리트리버 (13) 에 대해 데이터 리트리버 (13) 의 판독 어드레스를 업데이트하여 PES 패킷의 페이로드의 개시 위치로부터 판독을 재개한다. 예를 들어, 데이터 리트리버 (13) 의 판독 어드레스를 저장하기 위한 레지스터 (미도시) 의 값은 PES 헤더 길이에 대응하는 값에 대해 증가될 수 있다.
이후, 패킷 분석기 (17) 는 데이터 리트리버 (13) 에 통보하여 데이터를 판독하고 데이터를 디코딩 유닛 (14) 에 출력하는 것을 재개한다. 이는 데이터 리트리버 (13) 로 하여금 디코딩 유닛 (14) 에 ES 데이터만을 출력할 수 있게 한다.
도 1 에 도시된 스트림 데이터 프로세서 (1) 는 프로그램을 실행하는 프로세서를 가진 프로세서 시스템에 의해 형성될 수도 있다. 도 2 는 프로세서 시스템에 의해 형성된 스트림 데이터 프로세서 (1) 의 실시예를 도시한 도면이다. 실행 유닛 (101) 은 명령을 실행하는 ROM (104) 또는 RAM (105) 으로부터 명령을 인출하기 위한 프로세서이다. 프로그램 카운터 (102) 는 실행 유닛 (101) 에 의해 실행되는 명령의 어드레스를 저장한다. 프로그램 카운터 (102) 의 값은 실행 유닛 (101) 에 의해 업데이트된다. 프로그램 카운터 (102) 의 값은 명령이 연속하여 실행되는 동안에 명령 길이에 대응하는 값에 의해 업데이트된다. 그러나, 인터럽션이 발생하는 경우에, 프로그램 카운터 (102) 의 값은 인터럽션 명령에 의해 불연속적으로 업데이트된다.
범용 레지스터 (103) 는 실행 유닛 (101) 에서의 동작에 이용되는 레지스터 그룹이다. 도 2 에서, 범용 레지스터 (103) 의 일부는 PES 카운터 (16) 로서 이용된다. 또한, 도 2 에서, RAM (105) 의 일부는 PES 버퍼 (11) 로서 이용된다. 범용 레지스터 (13) 에 독점적인 레지스터는, 범용 레지스터 (103) 의 일부가 PES 카운터 (16) 에 할당되는 대신에, PES 카운터 (16) 가 예상외로 업데이트되는 것을 방지하도록 제공될 수도 있다.
실행 유닛 (101) 은, 인터럽션이 발생하지 않는 한, 데이터 리트리버 (13) 에 의한 PES 버퍼 (11) 로부터의 데이터 판독 프로세스에 대응하여, LOAD 명령을 연속하여 실행하기 위한 프로그램을 실행한다. LOAD 명령을 실행하는 동안, PES 카운터 (16) 의 값은 판독되는 데이터의 데이터 길이에 대해 감소한다. 경계 검출기 (15) 는 PES 카운터 (16) 의 값을 모니터링하고 그 값이 0 이 되는 경우에 인터럽션 요청을 실행 유닛 (101) 에 전송한다. 인터럽션 요청을 수신한 실행 유닛 (101) 은 패킷 분석기 (17) 에 의해 수행되는 패킷 분석을 실행하기 위한 프로그램으로 분기한다.
도 3 은 인터럽션 인자로서 패킷 경계의 검출로 데이터 검색 프로세스에서 패킷 분석 프로세스로의 실행 유닛 (101) 의 프로세스를 분기하는 인터럽션 프로세스를 도시한 개념도이다. 도 3 에 도시된 바와 같이, 경계 검출기 (15) 가 데이터 검색 프로세서에서 LOAD 명령을 연속하여 실행하는 동안에 패킷 경계 (경계 검출; 301) 를 검출하는 경우, 경계 검출기 (15) 는 인터럽션을 발생시킨다. 실행 유닛 (101) 은 인터럽션에 응답하여 데이터 검색 프로세스를 중단하고 패킷 분석 프로세스로 분기한다.
상술한 바와 같이 분기된 패킷 분해 프로세스에서, PES 개시 코드가 검출되어 PES 헤더의 개시 위치를 발견하고, PES 헤더 길이 및 PES 패킷 길이와 같은 PES 헤더 정보가 획득되며, PES 카운터 (16) 의 값이 PES 패킷의 페이로드 길이로 설정된다. 또한, 데이터 검색 프로세서로 복귀하는 경우에 LOAD 명령에 의해 참조되는 어드레스 레지스터의 값은 PES 헤더 길이에 대응하는 데이터 길이만큼 증가한다. 예를 들어, 패킷 분석 프로세서로 이동하기 전에 어드레스 레지스터의 값이 X 이고 개시 코드를 포함하는 패킷 헤더 길이가 64 비트라고 가정한다. 이 경우에, 어드레스 레지스터의 값은 X+64 로 업데이트된다. 패킷 분석 프로세스 이후에, 프로그램 카운터 (102) 및 상기 어드레스 레지스터를 제외한 범용 레지스터 (103) 의 값을 중단 이전의 값으로 복원하고 데이터 검색 프로세스로 복귀한다.
도 2 및 3 에서, 디코딩 유닛 (14) 의 프로세스는 설명의 편의를 위해 단순화한다. 디코딩 프로세스는 실행 유닛 (101) 에 의해 수행될 수도 있다. 다른 방법으로는, 디코딩용 하드웨어가 제공될 수도 있다.
도 3 에 도시된 바와 같이, 패킷 분석 프로세스는, 경계 검출기 (15) 에 의한 패킷 경계의 검출에 응답하여, 실행 유닛 (101) 에 인터럽션을 발생시키는 프로세서 시스템에 의해 형성된 스트림 데이터 프로세서 (1) 에 의한 인터럽션 프로세스로서 실행될 수 있다. 이는 실행 유닛 (101) 이 패킷 경계를 검출할 필요를 제거함으로써, 실행 유닛 (101) 의 로드를 감소시키고 데이터 검색 및 다른 프로세스의 효율을 증가시킨다.
도 4 는 PES 데이터를 검색하고 패킷을 분해하는 스트림 데이터 프로세서 (1) 의 프로세스를 도시한 플로우차트이다. PES 카운터 (16) 는 단계 S101 에서 초기화된다. 여기서 초기화란 경계 검출기 (15) 가 PES 패킷의 경계라고 결정하는 값으로 PES 카운터 (16) 의 값을 설정하는 것을 나타낸다. 이하 설명에서, 패킷 경계에 대응하는 PES 카운터 (16) 의 값은 0 이고, 카운터 값은 초기화에서 0 으로 설정된다. PES 데이터를 검색하는 초기에 헤더 분석기 (17) 가 PES 헤더를 인식할 필요가 있기 때문에, PES 카운터 (16) 는 초기화된다. PES 카운터 (16) 의 초기화에 의해, 이후 설명될 단계 S107 및 S108 은 개시 코드를 검출함으로써 PES 헤더를 발견하도록 무조건적으로 실행될 수 있다.
단계 S102 에서, 상술한 LOAD 명령 (이후 데이터 검색 명령으로 지칭) 과 같은 데이터 리트리버 (13) 의 프로세스를 실행하기 위한 명령이 발행되는지 여부를 판정한다. 데이터 검색 명령이 발행되는 경우에, 단계 S102 의 다음 단계가 실행된다.
단계 S103 에서, PES 카운터 (16) 의 값이 0 인지 여부가 평가된다. 이 평가는 경계 검출기 (15) 에 의한 프로세스에 대응한다. PES 카운터 (16) 가 0 이 아닌 것으로 평가되는 경우에, 단계 S104 내지 S106 이 실행된다.
단계 S104 에서, PES 데이터는 PES 버퍼 (11) 로부터 판독된다. PES 데이터는 1 비트 또는 바이트와 같은 일정 단위로 판독되어야 한다. 단계 S105 에서, PES 카운터 (16) 의 값은 판독되는 PES 데이터의 사이즈에 비례하여 감소된다. 단계 S106 에서, 데이터 검색 명령에 의해 특정되는 데이터 수에 대한 데이터가 판독되었는지 여부가 평가된다. 특정된 수에 대한 데이터가 PES 버퍼 (11) 로부터 판독되는 경우, 단계 S102 로 복귀한다. 데이터 판독이 완료되지 않은 경우에, 단계 S103 으로 복귀한다.
단계 S103 에서 PES 카운터 (16) 의 값이 0 이라고 평가되는 경우에, 단계 S107 내지 S110 이 실행된다. 이들 프로세스는 패킷 분석기 (17) 의 프로세스에 대응한다. 단계 S107 에서, PES 버퍼 (11) 로부터 판독된 데이터는 PES 패킷의 개시 위치를 나타내는 개시 코드와 매칭하도록 평가된다. 데이터가 개시 코드와 매칭하지 않는 경우, 다음 비트는 PES 버퍼 (11) 로부터 판독되고 (단계 S108) 개시 코드와의 매칭을 반복한다. 개시 코드가 검출되면, PES 헤더에 대응하는 데이터는 PES 버퍼 (11) 로부터 판독되고 PES 헤더 길이 및 패킷 길이를 포함하는 PES 헤더 정보가 획득된다 (단계 S109). 단계 S110 에서, 카운터 (16) 의 값은 PES 헤더 길이 및 패킷 길이에 따라 계산된 PES 패킷의 페이로드 길이만큼 업데이트된다. 이후, 단계 S103 으로 복귀한다.
후술할 바와 같이, 이 실시형태의 스트림 데이터 프로세서 (1) 는 PES 버퍼 (11) 로부터 PES 데이터를 연속하여 판독하고 PES 데이터를 디코딩 유닛 (14) 에 출력한다. 판독될 PES 데이터가 PES 헤더인 경우에, 디코딩 유닛 (14) 에의 출력은 중단되고 PES 헤더는 패킷 분석기 (17) 에 의해 분석된다. 이는 PES 헤더가 없는 PES 패킷의 페이로드 부분만으로 하여금 디코딩 유닛 (14) 에 출력될 수 있도록 한다.
즉, 스트림 데이터 프로세서 (1) 에서, 디코더 (12) 는 분석 프로세스에서 패킷 분석기 (17) 에 의해 획득된 페이로드 길이 정보를 이용하여 PES 데이터의 페이로드 부분을 판독 및 디코딩한다. 스트림 데이터 프로세서 (1) 는 헤더 분석기 (17) 에 의한 헤더 분석 프로세스와 디코더 (12) 에 의한 디코딩 프로세스를 결합하는 것을 특징으로 한다. 이는, 종래 스트림 데이터 프로세서 (8) 의 디코더 (814) 와 패킷 분해기 (812) 사이에 제공된 ES 버퍼 (813) 에서와 같이, 패킷 분해 프로세스 및 디코딩 프로세스를 분리하는데 필요한 버퍼 메모리의 필요를 제거한다. 따라서, 이 실시형태의 스트림 데이터 프로세서 (1) 는 ES 버퍼에의 메모리 액세스를 필요로 하지 않음으로써, PES 데이터의 패킷화 및 디크딩 프로세스의 효율을 개선시킨다.
스트림 데이터 프로세서 (1) 는 PES 패킷으로부터 계산된 PES 패킷의 페이로드 사이즈 및 PES 헤더에 포함된 헤더 길이를 저장한다. 스트림 데이터 프로세서 (1) 는 PES 버퍼 (11) 로부터 판독된 데이터가 1 패킷의 PES 데이터를 판독하는 데이터 리트리버 (13) 에 의해 PES 패킷의 경계에 도달하는지 여부를 평가할 수 있다. 즉, 스트림 데이터 프로세서 (1) 는 PES 헤더로부터 획득된 PES 패킷 길이 정보 및 데이터 리트리버 (13) 에 의해 판독된 데이터의 수에 따라 패킷 경계를 검출한다. 이는, PES 데이터를 검색하고 PES 헤더를 인식하는 프로세스 외에, 패킷 경계를 검출하는 PES 헤더를 나타내는 개시 코드와 매칭할 필요를 제거한다. 따라서, 패킷을 분해하는데 필요한 프로세스의 양은 감소될 수 있다.
제 2 실시형태
도 5 는 제 2 실시형태의 스트림 데이터 프로세서 (2) 를 도시한 기능 블록 다이어그램이다. 스트림 데이터 프로세서 (2) 는 오디오 또는 비디오 데이터를 입력 및 인코딩하고, 인코딩된 ES 데이터를 패킷화하며, PES 데이터를 출력한다.
인코더 (21) 는 인코딩 유닛 (22) 및 데이터 기입기 (23) 를 포함한다. 인코딩 유닛 (22) 은 비디오 또는 오디오 데이터를 입력하고 MPEG-2 표준에 따라 인코딩한다. 데이터 기입기 (23) 는 인코딩 유닛 (22) 에 의해 인코딩된 ES 데이터를 입력하고 1 비트 또는 바이트와 같은 일정 단위의 ES 데이터를 PES 버퍼 (24) 에 저장한다.
데이터 기입기 (23) 는 PES 버퍼 (24) 에 출력된 ES 데이터에 PES 헤더를 삽입하고 그 데이터를 PES 데이터로서 PES 버퍼 (24) 에 저장한다. 스트림 데이터 프로세서 (2) 는 경계 검출기 (25) 에 의해 타이밍을 검출하여 PES 버퍼 (24) 에 저장될 데이터에 PES 헤더를 삽입한다. 인코딩 유닛 (22) 에 의한 ES 데이터 출력 및 데이터 기입기 (23) 에 의한 PES 패킷 버퍼 (24) 에의 출력은 그 검출에 응답하여 중단된다.
데이터 기입기 (23) 는 인코딩 유닛 (22) 로부터 수신된 ES 데이터의 데이터 길이 또는 PES 버퍼 (24) 에 출력된 데이터 길이에 대응하는 값에 대해 PES 카운터 (26) 의 값을 감소 또는 증가시킨다. 경계 검출기 (25) 는 PES 카운터 (26) 의 값을 모니터링한다. PES 카운터 (26) 가 특정 값에 도달하면, 인코딩 유닛 (22) 및 데이터 기입기 (23) 는 프로세스를 중단한다.
상세하게는, 데이터 기입기 (23) 에 의해 PES 버퍼 (24) 에 출력된 PES 패킷의 페이로드 사이즈는 PES 카운터 (26) 에 저장된다. 이후, 데이터 기입기 (23) 는 데이터 기입기 (23) 가 ES 데이터를 기입하는 것을 개시하는 타이밍에 PES 카운터 (26) 의 값을 감소시키는 것을 개시하는데, 이것이 PES 패킷의 페이로드의 시작이다. 이는 PES 패킷의 페이로드 부분이 데이터 기입기 (23) 에 의해 기입되도록 완료되고, PES 헤더를 삽입하는 패킷 경계가 0 이 되는 PES 카운터 (26) 의 값까지 도달한다고 결정하는 것이 가능하도록 한다.
경계 검출기 (25) 는, 데이터 기입기 (23) 가 데이터를 기입하는 동안에 PES 패킷의 경계에 도달한다고 결정하는 경우에 패킷화기 (27) 로 하여금 PES 헤더를 삽입하도록 지시한다.
경계 검출기 (25) 에 의한 명령에 응답하여, 패킷화기 (27) 는 데이터 기입기 (23) 로 하여금 PES 헤더를 기입하도록 지시한다. PES 헤더에 포함된 PES 패킷 길이는 인코딩 유닛 (22) 에 의해 계산되거나 사용자-특정 값과 같은 특정된 값으로서 제공된다. DTS 및 PTS 와 같은 정보는 인코딩 유닛 (22) 에 의해 계산된다. 패킷화기 (27) 는 PES 카운터 (26) 에 PES 페이로드 사이즈를 설정한다.
패킷화기 (27) 는 인코딩 유닛 (22) 및 데이터 기입기 (23) 로 하여금 상술한 프로세스가 완료된 이후에 프로세싱을 재개하도록 지시한다.
도 6 은 스트림 데이터 프로세서 (2) 가 수행하는 패킷화 프로세스를 도시한 플로우차트이다. 단계 S201 에서, PES 카운터 (26) 는 초기화된다. 여기서 초기화란 경계 검출기 (25) 가 PES 패킷의 경계라고 평가하는 값으로 PES 카운터 (26) 가 설정되는 것을 나타낸다. 이하 설명에서, 패킷 경계에 대응하는 PES 카운터 (26) 의 값은 0 이고, 초기화에서 카운터 값은 0 으로 설정된다. 단계 S202 에서, 데이터 기입기 (23) 의 프로세스를 실행하기 위한 명령 (이후, 데이터 기입 명령이라 지칭) 이 발행되는지 여부를 판정한다. 데이터 기입 명령이 발행되는 경우에, 단계 S202 의 다음 단계가 실행된다.
단계 S203 에서, PES 카운터 (26) 의 값은 그 값이 0 인지 여부가 평가된다. 이러한 평가는 경계 검출기 (25) 에 의한 프로세서에 대응한다. PES 카운터 (26) 가 0 이 아니라고 평가되는 경우에, 단계 S204 내지 S206 이 실행된다.
단계 S204 에서, 데이터 기입기 (23) 는 인코딩 유닛 (22) 에 의해 발생되는 ES 데이터를 PES 버퍼 (24) 에 출력한다. ES 데이터는 1 비트 또는 바이트와 같은 일정 단위로 기입되어야 한다. 단계 S205 에서, PES 카운터 (26) 의 값은 PES 버퍼 (24) 에 저장된 데이터의 사이즈에 비례하여 감소한다. 단계 S206 에서, 데이터 기입 명령에 의해 특정되는 데이터 수에 대한 데이터가 기입되었는지 여부가 평가된다. 특정 수에 대한 데이터가 PES 버퍼 (24) 에 기입되는 경우, 단계 S202 로 복귀한다. 데이터 기입이 완료되지 않은 경우에, 단계 S203 으로 복귀한다.
PES 카운터 (26) 의 값이 단계 S203 에서 0 으로 평가되는 경우에, 단계 S207 내지 S208 이 실행된다. 이들 프로세스는 패킷화기 (27) 의 프로세스에 대응한다. 단계 S207 에서, PES 헤더는 PES 버퍼 (24) 에 출력된다. 단계 S208 에서, PES 카운터 (26) 의 값은 PES 패킷의 페이로드의 데이터 길이로 설정된 후, 단계 S203 으로 복귀한다.
이 실시형태의 스트림 데이터 프로세서 (2) 는 인코더 (21) 에 의해 인코딩된 ES 데이터를 연속하여 저장한다. 그러나, 스트림 데이터 프로세서 (2) 가 PES 버퍼 (24) 에 기입된 데이터 길이에 따라 PES 패킷을 삽입하는 타이밍을 결정하는 경우, 인코더 (21) 는 프로세스를 중단하고 패킷화기 (27) 는 PES 헤더를 PES 버퍼 (24) 에 저장한다.
인코딩 및 패킷화 프로세스를 결합하는 것은 종래 스트림 데이터 프로세서 (8) 에서 인코더 (821) 와 패킷화기 (823) 사이에 제공된 ES 버퍼 (822) 의 필요를 제거한다. 이는 메모리 액세스의 수를 감소시키고 PES 데이터를 발생시키기 위한 인코딩 및 패킷화의 효율을 증진시킨다.
스트림 데이터 프로세서 (2) 는 PES 패킷의 페이로드 사이즈를 저장한다. PES 헤더를 삽입하는 패킷 경계가 도달하는지 여부는 데이터 기입기 (23) 가 1 개의 패킷의 페이로드에 저장가능한 ES 데이터를 출력하거나 인코딩 유닛 (22) 이 1 개의 패킷의 페이로드에 저장가능한 ES 데이터를 발생하였다는 것을 검출함으로써 결정된다. 상세하게는, 스트림 데이터 프로세서 (2) 는 인코딩 유닛 (22) 등으로부터 획득된 PES 패킷 정보 및 데이터 기입기 (23) 에 의한 기입-데이터 길이에 따라 패킷 경계를 검출한다.
이는 패킷 경계를 검출하기 위해 ES 데이터에 포함된 특수 코드와 매칭하고 PES 헤더 삽입 위치를 발견할 필요를 제거함으로써, 패킷화에 필요한 프로세스의 양을 감소한다. 또한, 미심사된 일본 특허공개공보 평 11-317765호에 개시된 패킷화 장치에서와 같이 ES 데이터에 플래그 비트를 부착하는 것이 필요하지 않다. 따라서, 플래그 비트를 전송하는 비트 레이트는 상승하지 않고 플래그 비트를 저장하는 메모리 영역은 필요하지 않다.
또한, 스트림 데이터 프로세서 (2) 는 스트림 데이터 프로세서 (1) 에서와 같이 프로세서 시스템에 의해 형성될 수도 있다. 상세하게는, 경계 검출기 (25) 에 의한 패킷 경계의 검출에 응답하여, 실행 유닛 (101) 에서 인터럽션이 발생하여 인코딩 프로세스에 대한 인터럽션 프로세스로서 패킷화 프로세스를 수행한다. 이는 패킷 경계를 검출하는 실행 유닛 (101) 의 필요를 제거함으로써, 실행 유닛 (101) 의 로드를 감소시키고 데이터 기입을 포함하는 인코딩 프로세스의 효율을 증진시킨다.
도 7 은 이 실시형태의 스트림 데이터 프로세서 (3) 를 나타내는 기능 블록 다이어그램이다. 스트림 데이터 프로세서 (3) 는 제 1 실시형태의 스트림 데이터 프로세서 (1) 가 수행하는 PES 패킷의 경계를 검출하는 프로세스에 추가하여 또 다른 경계를 검출하는 프로세스를 수행한다. 도 7 은 또 다른 경계를 검출하는 일 예로서, 버퍼 경계를 검출하고 버퍼 관리를 수행하는 구성을 도시한 도면이다.
수개의 버퍼 관리 방법이 있다. 이후, 1 개의 PES 버퍼 (11) 로서 복수의 유한-길이 버퍼를 이용하도록 링크된 리스트를 이용하는 복수의 유한-길이 버퍼를 관리하는 방법을 설명한다. 링크된 리스트에서, 유한-길이 버퍼는 포인터에 의해 링크된다.
버퍼 카운터 (38) 는 최근 프로세싱된 유한-길이 버퍼의 잔류 데이터를 저장한다. 예를 들어, 프로세싱될 유한-길이 버퍼에 저장가능한 데이터의 최대 수로 버퍼 카운터 (38) 의 초기값을 특정함으로써 현재 유한-길이 버퍼의 말단은, 0 이 되는 버퍼 카운터 (38) 의 값만큼 말단에 도달한다고 평가될 수 있다. 따라서, 경계 검출기 (35) 는, 버퍼 카운터 (38) 가 0 이라고 검출하는 경우에 데이터 리트리버 (13) 의 프로세스를 중단하고, 버퍼 관리 유닛 (39) 으로 하여금 버퍼 관리를 수행하도록 지시한다.
버퍼 관리 유닛 (39) 은 말단에 도달한 유한-길이 버퍼를 액세스하고 포인터를 다음의 유한-길이 버퍼까지 판독한다. 포인터는 유한-길이 버퍼의 최종 데이터로서 저장된다. 포인터란 다음의 유한-길이 버퍼의 제 1 어드레스 및 저장가능한 데이터 사이즈를 나타낸다. 버퍼 관리 유닛 (39) 은 포인터 정보를 참조하고 다음의 유한-길이 버퍼에 저장가능한 데이터의 수를 버퍼 카운터 (38) 로 설정한다. 이후, 버퍼 관리 유닛 (39) 은 데이터 리트리버 (13) 에 통보하여 PES 데이터를 판독하는 것을 재개한다.
스트림 데이터 프로세서 (3) 는 상술한 스트림 데이트 프로세서 (1) 에서와 같이 프로세서 시스템에 의해 형성될 수도 있다. 버퍼 관리 유닛 (39) 의 프로세스는 패킷 분석 프로세스에서와 같이 데이터 검색 프로세스에 대한 인터럽션 프로세스로서 수행될 수 있다. 버퍼 관리 유닛 (39) 의 프로세스를 인터럽팅하는 인터럽션 요청 및 패킷 분석 프로세스를 인터럽핑하는 인터럽션 요청이 동시에 발생할 수도 있다는 것이 가능하다. 그러한 경우에, 공지의 다중의 인터럽션 기 술이 적용될 수도 있다. 상세하게는, 더 우선 순위를 갖는 프로세스를 우선시하기 위해 인터럽션이 제어될 수 있다. 이 실시형태에서, 버퍼 관리 유닛 (39) 의 프로세스는 패킷 분석 프로세스보다 우선시된다.
전술한 바와 같이, 복수의 다른 프로세스를 프로세싱하도록 프로세싱되는 데이터 수에 따라 패킷 분해 및 버퍼 관리와 같은 복수의 다른 프로세스가 실행될 필요가 있는 경우에, 스트림 데이터 프로세서 (3) 는 PES 데이터를 획득하는 것을 중단한다.
상기의 실시형태에서, PES 패킷의 경계 및 버퍼는 스트림 데이터의 경계로서 나타낸다. 그러나, 다른 데이터 위치는 경계 검출기에 의해 검출될 수도 있다. 1 비트 또는 바이트와 같은 일정 단위의 스트림 데이터를 프로세싱하는 동안에 프로세스의 수에 따라 다른 프로세스가 실행될 필요가 있는 경우에, 다른 프로세스로 이동할 데이터 위치는 경계 검출기에 의해 검출될 수도 있다.
상기 실시형태는 MPEG-2 PES 데이터를 프로세싱하기 위한 장치에 관한 것이다. 그러나, 본 발명은 이에 제한되지 않으며, 패킷화된 스트림 데이트를 프로세싱하는데 널리 효과적이다.
본 발명은 상기 실시형태에 제한되지 않는다는 것이 명백하고 본 발명의 범위 및 사상에서 벗어나지 않고 수정 및 변경될 수도 있다.
본 발명에 의하면, 패킷 분해기와 디코더 사이 또는 인코더와 패킷화기 사이에 버퍼 메모리를 제공할 필요를 제거함으로써, 스트림 데이터 프로세서의 프로세 싱 효율을 증진시킬 수 있다.

Claims (8)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 복수의 패킷에 의해 형성된 스트림 데이터를 저장하기 위한 버퍼;
    인코딩된 입력 신호를 갖는 스트림 데이터를 상기 버퍼에 출력하기 위한 인코더;
    상기 스트림 데이터에 삽입될 패킷 헤더를 발생시키기 위한 패킷 프로세서; 및
    상기 스트림 데이터에서의 상기 패킷 헤더의 삽입 위치를 검출하기 위한 경계 검출기를 포함하며,
    상기 인코더는 상기 패킷 헤더의 삽입 위치의 검출에 응답하여 상기 스트림 데이터를 상기 버퍼에 출력하는 것을 중단하고,
    상기 패킷 프로세서는 상기 패킷 헤더의 삽입 위치의 검출에 응답하여 상기 버퍼에 상기 패킷 헤더를 출력하며,
    상기 인코더는, 상기 패킷 프로세서가 상기 패킷 헤더를 출력하는 것을 완료 한 이후에 상기 스트림 데이터를 상기 버퍼에 출력하는 것을 재개하는, 스트림 데이터 프로세서.
  7. 제 6 항에 있어서,
    상기 패킷 프로세서는, 상기 인코더로부터 검색된 정보에 기초하여 상기 패킷 프로세서가 삽입하는 패킷 헤더에 의해 특정되는 1 개의 패킷에 포함되는 스트림 데이터의 데이터 길이를 결정하고,
    상기 인코더에 의해 상기 버퍼에 출력되는 상기 데이터 길이를 카운팅하고 카운트 값이 상기 패킷 프로세서에 의해 결정되는 상기 스트림 데이터의 상기 데이터 길이에 도달된 것을 평가함으로써, 상기 경계 검출기에 의한 상기 패킷 헤더의 상기 삽입 위치의 검출이 수행되는, 스트림 데이터 프로세서.
  8. 복수의 패킷에 의해 형성된 스트림 데이터를 저장하기 위한 버퍼;
    인코딩된 입력 신호를 갖는 스트림 데이터를 상기 버퍼에 출력하는 프로세스를 정의하는 제 1 명령 프로그램 및 패킷 헤더를 발생시키고 상기 패킷 헤더를 상기 스트림 데이터에 삽입하는 프로세스를 정의하는 제 2 명령 프로그램을 실행하기 위한 실행 유닛; 및
    상기 스트림 데이터에서의 상기 패킷 헤더의 삽입 위치를 검출하기 위한 경계 검출기를 포함하며,
    상기 경계 검출기는 상기 패킷 헤더의 삽입 위치의 검출에 응답하여 상기 실 행 유닛에 대한 인터럽션 요청을 발생시키고,
    상기 실행 유닛은, 상기 인터럽션 요청에 응답하여 상기 제 1 명령 프로그램에서 상기 제 2 명령 프로그램으로 분기하고 상기 제 2 명령 프로그램을 완료한 이후에 상기 제 1 명령 프로그램을 재개하는, 스트림 데이터 프로세서.
KR1020060106470A 2005-10-31 2006-10-31 스트림 데이터 프로세서 KR100831186B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005316484A JP2007124495A (ja) 2005-10-31 2005-10-31 ストリームデータ処理装置
JPJP-P-2005-00316484 2005-10-31

Publications (2)

Publication Number Publication Date
KR20070046761A KR20070046761A (ko) 2007-05-03
KR100831186B1 true KR100831186B1 (ko) 2008-05-22

Family

ID=37996201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060106470A KR100831186B1 (ko) 2005-10-31 2006-10-31 스트림 데이터 프로세서

Country Status (5)

Country Link
US (1) US20070097978A1 (ko)
JP (1) JP2007124495A (ko)
KR (1) KR100831186B1 (ko)
CN (1) CN1960335A (ko)
TW (1) TW200746722A (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8462855B2 (en) * 2007-09-26 2013-06-11 Intel Corporation Method and apparatus for stream parsing and picture location
JP2009260643A (ja) * 2008-04-16 2009-11-05 Nec Electronics Corp データストリーム解析装置、復号装置及びデータストリーム解析方法
CN101841699B (zh) * 2009-03-18 2012-06-27 晨星软件研发(深圳)有限公司 译码装置及其译码方法
KR102195069B1 (ko) * 2014-08-06 2020-12-24 삼성전자주식회사 패킷 송신기 및 이를 포함하는 인터페이스 장치
US9793919B1 (en) * 2016-12-08 2017-10-17 Advanced Micro Devices, Inc. Compression of frequent data values across narrow links
CN111684769B (zh) * 2017-11-06 2023-03-24 思想系统公司 包括基于表的动作的匹配处理单元的网络系统
CN107911714B (zh) * 2017-11-28 2019-11-26 北京数码视讯科技股份有限公司 码流拆分方法、装置和码流传输设备
EP3756088A4 (en) 2018-02-22 2021-12-01 Pensando Systems Inc. PROGRAMMABLE COMPUTER WITH I / O DEVICE INTERFACE
CN114339378A (zh) * 2021-12-23 2022-04-12 展讯通信(上海)有限公司 一种音视频码流的处理方法、装置和电子设备
CN116016397B (zh) * 2023-03-28 2023-05-30 湖南毂梁微电子有限公司 一种报文传输缓冲区快速检索方法和电路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000028928A (ko) * 1998-10-09 2000-05-25 모리시타 요이찌 비디오 신호 디코더 및 비디오 신호 디코더에서 메모리액세스를 감소시키는 방법
KR20030077869A (ko) * 2002-03-27 2003-10-04 주식회사 엘지이아이 오디오/비디오 립싱크를 위한 실시간 pes 디코딩 방법
US20040022313A1 (en) 2002-07-30 2004-02-05 Kim Eung Tae PVR-support video decoding system
US20040240863A1 (en) 2003-05-30 2004-12-02 Cannon Kabushiki Kaisha Video stream data recording apparatus

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6188703B1 (en) * 1997-08-01 2001-02-13 International Business Machines Corp. Multiplexer for multiple media streams
US6977941B2 (en) * 2000-11-08 2005-12-20 Hitachi, Ltd. Shared buffer type variable length packet switch
JP5048184B2 (ja) * 2001-01-26 2012-10-17 富士通株式会社 伝送レート監視装置および伝送レート監視方法
WO2003030165A2 (en) * 2001-09-27 2003-04-10 Matsushita Electric Industrial Co., Ltd. Transmission method, sending device and receiving device
AU2002328419A1 (en) * 2002-07-01 2004-01-19 Ipsquare Semiconductor circuit device, packet processing method, management system, management method, and packet processing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000028928A (ko) * 1998-10-09 2000-05-25 모리시타 요이찌 비디오 신호 디코더 및 비디오 신호 디코더에서 메모리액세스를 감소시키는 방법
KR20030077869A (ko) * 2002-03-27 2003-10-04 주식회사 엘지이아이 오디오/비디오 립싱크를 위한 실시간 pes 디코딩 방법
US20040022313A1 (en) 2002-07-30 2004-02-05 Kim Eung Tae PVR-support video decoding system
US20040240863A1 (en) 2003-05-30 2004-12-02 Cannon Kabushiki Kaisha Video stream data recording apparatus

Also Published As

Publication number Publication date
JP2007124495A (ja) 2007-05-17
US20070097978A1 (en) 2007-05-03
KR20070046761A (ko) 2007-05-03
TW200746722A (en) 2007-12-16
CN1960335A (zh) 2007-05-09

Similar Documents

Publication Publication Date Title
KR100831186B1 (ko) 스트림 데이터 프로세서
JP4049863B2 (ja) Mpeg2トランスポート・ストリーム・パケット・パーザ・システム
US6236432B1 (en) MPEG II system with PES decoder
EP0942603A2 (en) Video splicing apparatus and video splicing method
US20080240093A1 (en) Stream multiplexer/de-multiplexer
US20060013123A1 (en) Method and apparatus for processing transmission error in DMB system
EP0896479A2 (en) Synchronizing circuit and method for a video data decoder
US7940799B2 (en) Code conversion method and device thereof
US6687305B1 (en) Receiver, CPU and decoder for digital broadcast
US7602801B2 (en) Packet processing device and method
US20070223538A1 (en) System and method for using generic comparators with firmware interface to assist video/audio decoders in achieving frame sync
JP2007267371A (ja) データ解析装置、及びデータ解析方法
KR100296684B1 (ko) 오디오/비디오 압축 코드 데이타를 디코딩하기 위한 디코딩 방법 및 디코더
JP4136151B2 (ja) 符号化装置、方法及びコンピュータ読み取り可能な記憶媒体
USRE41179E1 (en) Device for extracting parameters for decoding a video data flow coded according to an MPEG standard
US8571053B2 (en) Method and system for architecture of a fast programmable transport demultiplexer using double buffered approach
US20090285236A1 (en) Start code detecting apparatus
KR100672528B1 (ko) 지상파 dmb용 오디오의 디코딩 방법
US8098657B2 (en) System and method for providing data commonality in a programmable transport demultiplexer engine
JP2008205681A (ja) ビットストリーム解析装置及びビットストリーム解析方法
JP4005370B2 (ja) パケットデータ蓄積装置
JP4392952B2 (ja) 符号化装置及び符号化方法
JPH10313281A (ja) データ分離回路
KR960028452A (ko) 엠피이지-2 역다중화기
GB2483342A (en) Reducing reference frame data store bandwidth requirements in video decoders

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee