KR20160106150A - 완벽 스플라이싱을 위한 인코딩된 오디오의 전송 스트림에의 삽입 - Google Patents

완벽 스플라이싱을 위한 인코딩된 오디오의 전송 스트림에의 삽입 Download PDF

Info

Publication number
KR20160106150A
KR20160106150A KR1020167021533A KR20167021533A KR20160106150A KR 20160106150 A KR20160106150 A KR 20160106150A KR 1020167021533 A KR1020167021533 A KR 1020167021533A KR 20167021533 A KR20167021533 A KR 20167021533A KR 20160106150 A KR20160106150 A KR 20160106150A
Authority
KR
South Korea
Prior art keywords
transport stream
program
frame
video
splicing
Prior art date
Application number
KR1020167021533A
Other languages
English (en)
Other versions
KR101861941B1 (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 KR20160106150A publication Critical patent/KR20160106150A/ko
Application granted granted Critical
Publication of KR101861941B1 publication Critical patent/KR101861941B1/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/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6112Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving terrestrial transmission, e.g. DVB-T
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/233Processing of audio elementary streams
    • 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/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • 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
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • 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
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • 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
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6143Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a satellite
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6168Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving cable transmission, e.g. using a cable modem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6175Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6181Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6187Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a telephone network, e.g. POTS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/6473Monitoring network processes errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64776Control signals issued by the network directed to the server or the client directed to the server for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

전송 스트림이 적어도 하나의 완벽 스플라이싱 특성을 갖도록, 그리고/또는 전송 스트림이 적어도 하나의 오디오/비디오 프로그램을 나타내고 프로그램이 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터를 포함하도록 전송 스트림(예컨대, MPEG-2 전송 스트림)을 발생시키는 방법이 개시된다. 다른 양태는 이러한 전송 스트림을 스플라이싱하는 방법, 본 발명의 방법의 임의의 실시예를 수행하도록 구성된 오디오/비디오 처리 유닛(예컨대, 스플라이서), 및 본 발명의 방법의 임의의 실시예에 따라 발생되는 전송 스트림의 적어도 하나의 세그먼트를 저장하는 버퍼 메모리를 포함하는 오디오/비디오 처리 유닛이다.

Description

완벽 스플라이싱을 위한 인코딩된 오디오의 전송 스트림에의 삽입{EMBEDDING ENCODED AUDIO INTO TRANSPORT STREAM FOR PERFECT SPLICING}
관련 출원의 상호 참조
본 출원은 2014년 2월 10일자로 출원된 미국 가특허 출원 제61/938,067호의 출원일의 이익을 주장한다.
기술분야
본 발명은 오디오 및 비디오 신호 처리에 관한 것으로서, 보다 상세하게는, 비디오 데이터 및 인코딩된 오디오 데이터 그리고 임의로 전송 스트림에 의해 충족되는 적어도 하나의 스플라이싱 특성을 나타내는 메타데이터도 포함하는 전송 스트림(비트스트림)의 발생 및 스플라이싱에 관한 것이다. 본 발명의 일부 실시예는 AC-4라고 알려진 포맷의 인코딩된 오디오 데이터를 포함하는, MPEG-2 전송 스트림 포맷을 갖는 전송 스트림을 발생시키거나 스플라이싱한다.
MPEG-2 전송 스트림 포맷은 비디오 데이터, 인코딩된 오디오 데이터, 및 관련 데이터의 전송 및 저장을 위한 표준 포맷이다. MPEG-2 전송 스트림 포맷은 MPEG-2 Part 1, Systems(ISO/IEC standard 13818-1 또는 ITU-T Rec. H.222.0)라고 알려진 표준에 명시되어 있다. MPEG-2 전송 스트림은 패킷화된 기본 스트림(elementary stream)을 캡슐화하고 있는 명시된 컨테이너 포맷(container format)을 갖는다.
MPEG-2 전송 스트림은 오디오 및 비디오 콘텐츠를, 예를 들어, DVB(Digital Video Broadcasting) 또는 ATSC(Advanced Television Systems Committee) TV 방송의 형태로, 방송하는 데 흔히 사용된다. 2개의 MPEG-2 전송 스트림 사이에 스플라이싱을 구현하는 것이 종종 바람직하다.
본 발명이 MPEG-2 전송 스트림 포맷을 갖는 전송 스트림의 발생 및/또는 스플라이싱으로 제한되지 않지만, 전형적인 실시예는 MPEG-2 전송 스트림을 발생시키고 그리고/또는 스플라이싱하는 방법 및 시스템이다. 다른 포맷을 갖는 전송 스트림이, 각각의 이러한 스트림이 본원에 기술되는 특정의 특성을 충족시키는 비디오 데이터의 프레임(I-프레임을 포함함) 및 인코딩된 오디오 데이터의 프레임(I-프레임을 포함함)을 포함하면, 본 발명의 다른 실시예에 따라 발생되고 그리고/또는 스플라이싱될 수 있다. 본 발명의 한 부류의 전형적인 실시예에 따라 발생되고 그리고/또는 스플라이싱되는 전송 스트림은 또한 전송 스트림에 의해 충족되는 적어도 하나의 스플라이싱 특성을 나타내는 메타데이터도 포함할 수 있다.
MPEG-2 전송 스트림은 패킷으로 된 기본 스트림(예컨대, 비디오 인코더로부터 출력되는 비디오 데이터의 기본 스트림, 및 오디오 인코더로부터 출력되는 인코딩된 오디오 데이터의 적어도 하나의 대응하는 기본 스트림)을 담고 있다(즉, 기본 스트림을 나타내는 데이터를 포함한다). 각각의 기본 스트림은 기본 스트림으로부터의 순차적 데이터 바이트를 PES(packetized elementary stream: 패킷화된 기본 스트림) 패킷 헤더를 갖는 PES 패킷에 캡슐화하는 것에 의해 패킷화된다. 전형적으로, (비디오 인코더 및 오디오 인코더로부터 출력되는) 기본 스트림 데이터는 PES 패킷으로서 패킷화되고, PES 패킷은 이어서 TS(Transport Stream: 전송 스트림) 패킷 내에 캡슐화되며, TS 패킷은 이어서 전송 스트림을 형성하기 위해 다중화된다. 전형적으로, 각각의 PES 패킷은 TS 패킷 시퀀스 내에 캡슐화된다.
MPEG-2 전송 스트림은 하나 이상의 오디오/비디오 프로그램을 나타낼 수 있다. 각각의 단일 프로그램은 고유의 ID(identification) 값(PID)를 갖는 PMT(Program Map Table: 프로그램 맵 테이블)에 의해 기술되고, 그 프로그램과 연관된 기본 스트림(들)은 PMT에 열거된 PID를 갖는다. 예를 들어, 전송 스트림이 3 개의 텔레비전 프로그램 - 각각의 프로그램은 상이한 텔레비전 채널에 대응함 - 을 나타낼 수 있다. 이 예에서, 각각의 프로그램(채널)은 하나의 비디오 기본 스트림 및 다수의(예컨대, 하나의 또는 2개의) 인코딩된 오디오 기본 스트림, 그리고 임의의 필요한 메타데이터로 이루어져 있을 수 있다. 특정의 프로그램(채널)을 디코딩하고자 하는 수신기는 프로그램과 연관된 PID를 갖는 각각의 기본 스트림의 페이로드를 디코딩해야만 한다.
MPEG-2 전송 스트림은 PSI(Program Specific Information: 프로그램 관련 정보)를 포함하고, PSI는 전형적으로 4 개의 PSI 테이블 - PAT(program association table: 프로그램 연관 테이블), 각각의 프로그램에 대한 PMT(program map table), CAT(conditional access table: 조건부 액세스 테이블), 및 NIT(network information table: 네트워크 정보 테이블) - 을 나타내는 데이터를 포함한다. 프로그램 연관 테이블은 전송 스트림이 나타내는(전송 스트림에 포함되는) 모든 프로그램을 열거하고, 프로그램들 각각은 그의 PMT(program map table)에 대한 PID의 연관된 값을 갖는다. 프로그램에 대한 PMT는 프로그램의 각각의 기본 스트림을 열거하고, 프로그램에 관한 다른 정보를 나타내는 데이터를 포함한다.
MPEG-2 전송 스트림은 전송 스트림의 프로그램의 개별적인 기본 스트림들(예컨대, 비디오 스트림 및 인코딩된 오디오 스트림)의 동기화를 달성하기 위해 사용되는 PTS(presentation time stamp: 제시 타임 스탬프) 값을 포함한다. PTS 값은 프로그램의 전체 기준 시각(overall clock reference) - 이것도 역시 전송 스트림에서 전송됨 - 에 관련된 단위로 주어진다. (PES 패킷이 나타내는) 오디오 또는 비디오 프레임을 포함하는 모든 TS 패킷은 동일한 PTS 타임 스탬프 값을 갖는다.
전형적인 전송 스트림(예컨대, MPEG-2 전송 스트림)은 인코딩된 오디오 데이터(전형적으로, 오디오 콘텐츠의 하나 이상의 채널을 나타내는 압축된 오디오 데이터), 비디오 데이터, 및 인코딩된 오디오(또는 인코딩된 오디오 및 비디오) 콘텐츠의 적어도 하나의 특성을 나타내는 메타데이터를 포함한다. 본 발명이 AC-4 포맷에 따라 인코딩된 오디오 데이터("AC-4 인코딩된 오디오 데이터")인 오디오 콘텐츠를 갖는 전송 스트림의 발생으로 제한되지 않지만, 전형적인 실시예는 AC-4 인코딩된 오디오 데이터를 포함하는 전송 스트림(예컨대, MPEG-2 전송 스트림)을 발생시키고 그리고/또는 스플라이싱하는 방법 및 시스템이다.
오디오 데이터를 인코딩하기 위한 AC-4 포맷은 공지되어 있으며, 2014년 4월에 "ETSI TS 103 190 V1.1.1 (2014-04), Digital Audio Compression (AC-4) Standard"라는 제목의 문서에서 발표되었다.
MPEG-2 전송 스트림은 오디오 및 비디오 콘텐츠를, 예를 들어, DVB(Digital Video Broadcasting) 또는 ATSC(Advanced Television Systems Committee) TV 방송의 형태로, 방송하는 데 흔히 사용된다. 때때로, 2개의 MPEG-2(또는 다른) 전송 스트림 사이에 스플라이싱을 구현하는 것이 바람직하다. 예를 들어, 송신기가 제1 전송 스트림의 2개의 세그먼트 사이에 광고(예컨대, 다른 스트림의 세그먼트)를 삽입하기 위해 제1 전송 스트림에서 스플라이싱을 구현하는 것이 바람직할 수 있다. 전송 스트림 스플라이서(transport stream splicer)라고 알려진, 종래의 시스템이 이러한 스플라이싱을 수행하기 위해 이용 가능하다. 종래의 스플라이서의 고도화(sophistication)가 다양하고, 종래의 전송 스트림은 보통, 스플라이서가 그 전송 스트림에 대해 스플라이싱을 수행하기 위해 그 전송 스트림에 포함된 모든 코덱을 알고 이해할 수 있을 것이라는(즉, 그의 비디오 및 인코딩된 오디오 콘텐츠와, 메타데이터를 파싱할 수 있을 것이라는) 가정 하에, 발생된다. 이것은 스플라이싱의 구현에 대해 많은 오류 여지를 남겨 두고, (전송 스트림을 발생시키기 위해 다중화를 수행하는) 먹서(muxer)와 스플라이서 사이의 상호운용성에 대한 많은 문제를 야기한다.
종래에는 스트림이 나타내는 각각의 프로그램에 대한 이용 가능한 스플라이스 지점(원하는 방식으로 스플라이싱할 기회가 있는 특정 시각, 예컨대, 특정 시각 코드 - 그 직전에 (또는 그 직후에) 원하는 방식으로 스플라이싱할 기회가 있음 - 를 갖는 샘플 또는 패킷)을 구체적으로 식별해주는 메타데이터를 MPEG-2 전송 스트림에 포함시킨다. 이러한 메타데이터가 인코딩 프로세스 동안 전송 스트림에 삽입되어야만 한다. 그렇지만, 전송 스트림에서 특정의 이용 가능한 스플라이스 지점을 식별하고 표시할 필요가 없게 하는 것에 의해 전송 스트림(예컨대, MPEG-2 전송 스트림)을 발생시키는 방법(및 시스템)의 복잡도를 감소시키는 것이 바람직할 것이다. 본 발명의 전형적인 실시예에 따르면, 전송 스트림에서 특정의 이용 가능한 스플라이스 지점을 식별하고 표시할 필요 없이 그리고 각종의 능력 중 임의의 것을 갖는 스플라이서(아주 제한된 능력을 갖는 간단한 스플라이서를 포함함)가, 전송 스트림들 중 임의의 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정할 필요 없이, 그 결과 얻어진 스플라이싱된 스트림에서 오디오/비디오 동기화("A/V" 동기)가 유지되도록 보장하는 방식으로 전송 스트림을 스플라이싱할 수 있도록 전송 스트림이 발생된다.
일부 종래의 오디오 코덱은 인코딩된 오디오 데이터를 포함하는 프로그램을 스플라이싱할 때 완벽한 A/V 동기의 유지를 지원하는 포맷으로 오디오를 인코딩한다. 그렇지만, (이러한 인코딩된 오디오 또는 다른 포맷으로 인코딩된 오디오를 포함하는) 전송 스트림을 스플라이싱하는 것이 필요할 때, 스플라이싱의 실행 동안 (전송 스트림이 나타내는) 오디오 기본 스트림을 손상시키기 쉽기 때문에, 각각의 전송 스트림을 준비하고 각각의 스플라이싱을 실행하는 데 추가로 주의를 기울일 필요가 있다. 후단에 있는 먹서(각각의 전송 스트림을 발생시키기 위해 다중화를 수행함)와 스플라이서는 양호한 스플라이싱을 발생시키기 위해 암시적으로 협력하고, 먹서는 어떤 방식으로 다중화하며 스플라이서는 전송 스트림이 특정의 특성을 가질 것으로 예상한다. 본 발명의 전형적인 실시예는 (심지어 아주 간단한 스플라이서에 의한) 전송 스트림의 스플라이싱을 돕는 (전송 스트림의) 특징 세트를 정의하고, 전형적으로 또한 이러한 특징 세트를 스플라이서로 전달하는 메타데이터를 전송 스트림에 포함시킨다.
제1 부류의 실시예에서, 본 발명은 전송 스트림(예컨대, MPEG-2 전송 스트림)을 발생시키는 방법으로서, 이 방법은, 전송 스트림이 적어도 하나의 완벽 스플라이싱 특성(perfect splicing property)(즉, 이하에서 정의되는 "필수적인" 완벽 스플라이싱 특성)을 갖도록(그리고 임의로 또한 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖도록), 인코딩된 오디오 데이터(때때로 본원에서 "CA"라고 지칭됨) 및 비디오 데이터를 전송 스트림에 패키징하는(즉, 포함시키는) 단계를 포함한다. 이와 관련하여, "완벽 스플라이싱 특성"은 본원에서 정의되는 완벽 스플라이싱 특성들 중 하나를 가리키고, "필수적인" 완벽 스플라이싱 특성은 스플라이서에 의한 전송 스트림의 어떤 인코딩된 오디오 기본 스트림의 수정도 필요없이 전송 스트림을 스플라이싱할 때 오디오/비디오 동기화("A/V" 동기)가 유지되도록 보장한다. 제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 적어도 하나의 오디오/비디오 프로그램("프로그램")을 나타내고, (그에 의해 나타낸 각각의 프로그램에 대해) (적어도 하나의 비디오 기본 스트림을 결정하는) 비디오 데이터의 프레임들 및 (적어도 하나의 오디오 기본 스트림을 결정하는) 대응하는 인코딩된 오디오 데이터의 프레임들을 포함한다. 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하고, 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함한다.
본원에서, "I-프레임"은 그 자체 내로부터의 정보만을 사용하여 인코딩된 독립적으로 디코딩 가능한 프레임을 나타낸다. 이와 달리, 종래의 "P-프레임" 또는 예측 인코딩된 프레임(predictively encoded frame)은 I-프레임이 아니다. 어떤 비디오 및 오디오 코덱 포맷에서, 이러한 독립적으로 디코딩 가능한 프레임은 "I-프레임"으로서 공식적으로 정의되지 않는다(또는 종래에 "I-프레임"으로서 지칭되지 않음). 그렇지만, 이러한 코덱에 따라 발생되는 독립적으로 디코딩 가능한 프레임이 그럼에도 불구하고 본원에서(청구항에서를 포함함) "I-프레임"이라고 지칭된다. 어떤 코덱에서는, 모든 비디오 프레임 및/또는 모든 오디오 프레임이 독립적으로 디코딩 가능하고, 따라서 각각의 이러한 프레임이 본원에서 "I-프레임"이라고 지칭될 것이다.
제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 적어도 하기의 완벽 스플라이싱 특성(본원에서 때때로 "필수적인" 완벽 스플라이싱 특성이라고 지칭됨)을 갖는다:
전송 스트림이 나타내는 각각의 프로그램에 대해, 프로그램의 비디오 기본 스트림 및 인코딩된 오디오 기본 스트림에 대해 동일한 프레임 레이트(즉, 전송 스트림의 각각의 프로그램에 대해, 프로그램의 각각의 비디오 기본 스트림이 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 프로그램의 각각의 비디오 프레임에 대해, 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있음); 및
I-프레임 동기화(즉, 전송 스트림의 각각의 프로그램에 대해, 프로그램의 비디오 기본 스트림에서의 각각의 비디오 I-프레임에 대해, 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임(즉, 비디오 I-프레임과 동기화된 적어도 하나의 오디오 I-프레임)이 있도록 비디오 및 오디오 인코딩이 동기화됨).
제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 하나의 프로그램 또는 2개 이상의 프로그램을 나타낼 수 있다. 각각의 프로그램은 비디오 기본 스트림을 결정하는 (I-프레임을 포함하는) 비디오 데이터의 프레임, 및 적어도 하나의 오디오 기본 스트림을 결정하는 (I-프레임을 포함하는) 대응하는 인코딩된 오디오 데이터의 프레임을 포함한다. 제1 부류에서의 일 실시예에 따라 발생되는 각각의 전송 스트림은, 전송 스트림이 나타내는 각각의 프로그램에 대해, 프로그램을 나타내는 전송 스트림의 데이터가 완벽 스플라이싱 특성을 갖는다는 의미에서, 필수적인 완벽 스플라이싱 특성(예컨대, 필수적인 완벽 스플라이싱 특성)을 갖는(즉, 충족시키는) 것으로 말해진다.
제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 하기의 특성을 갖는다:
1. 스플라이서에 의한 전송 스트림의 어떤 인코딩된 오디오 기본 스트림의 수정도 없이, 임의의 전송 스트림 스플라이서를 사용하여 전송 스트림을 스플라이싱할 때 완벽한 A/V 동기가 유지될 수 있고;
2. 전송 스트림의 인코딩된 오디오 콘텐츠를 손상시키거나 A/V 동기를 교란시키는 일 없이, 전송 스트림의 스플라이싱(심지어 낮은 고도화를 갖는 스플라이서에 의한 전송 스트림의 간단한 스플라이싱)이 가능하다.
앞서 정의된 필수적인 완벽 스플라이싱 특성(비디오 및 인코딩된 오디오에 대한 동일한 프레임 레이트, 및 I-프레임 동기화)에 부가하여, 제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 적어도 하나의 부가의 완벽 스플라이싱 특성(예컨대, 이하에서 기술되는 완벽 스플라이싱 특성들 중 하나 이상)을 가질 수 있다. 적어도 하나의 이러한 부가의 완벽 스플라이싱 특성을 충족시키는 전송 스트림을 발생시키는 옵션은 전송 스트림 제작자(transport stream creator)(예컨대, 네트워크 운영자)가 어느 완벽 스플라이싱 특성 또는 특성들이 충족되어야 하는지를 선택할 수 있게 한다. 보다 많은 완벽 스플라이싱 특성을 충족시키는 것은 전형적으로 전송 스트림 발생에 대한 보다 많은 오버헤드를 필요로 하지만, 보다 간단한 스플라이서 구현을 가능하게 한다. 보다 적은 완벽 스플라이싱 특성을 갖도록 전송 스트림을 발생시키는 것은 전형적으로 보다 간단한 전송 스트림 발생을 가능하게 하지만 보다 복잡한 스플라이서 구현을 필요로 한다. 전형적으로, 전송 스트림 발생기는, 특정의 사용 모드를 어쩔 수 없이 수락하기보다는, 전송 스트림 발생의 복잡도와 스플라이서 구현 복잡도 사이의 원하는 절충을 달성하기 위해 (본 발명의 실시예에 따라) 보다 많거나 보다 적은 수의 완벽 스플라이싱 특성을 충족시키는 전송 스트림을 발생시킬지를 자유롭게 선택한다. 전송 스트림이 특정의 완벽 스플라이싱 특성을 충족시키는 것이 바람직하거나 필요한지는 전송 스트림을 스플라이싱하는 데 사용하기 위해 생각되는 스플라이서(또는 스플라이서들)의 특징에 의존한다. 아주 정교한 스플라이서는 전형적으로 보다 적은 완벽 스플라이싱 특성을 필요로 할 것인 반면, 아주 간단한 스플라이서는 보다 많은 완벽 스플라이싱 특성을 갖는 전송 스트림을 필요로 할 수 있다.
제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림이 필수적인 완벽 스플라이싱 특성을 충족시키기 때문에, 스플라이서는 전송 스트림의 임의의 프로그램의 어떤 오디오 기본 스트림도 수정함이 없이 전송 스트림을 매끄럽게 스플라이싱할 수 있다. 그렇지만, 스플라이서는 매끄러운 스플라이싱을 수행하기 위해 전송 스트림의 재다중화(re-multiplexing) 또는 다른 수정을 수행할 필요가 있을 수 있다(예컨대, 스플라이싱된 전송 스트림을 발생시키기 위해, 오디오 기본 스트림을 포함하는 패킷 시퀀스가 전송 스트림의 다른 패킷들과 재다중화될 필요가 있을 수 있다). 스플라이서는 또한 스플라이싱된 전송 스트림을 수신하는 수신기(예컨대, 후단의 디코더)의 버퍼의 언더플로우(underflow) 또는 오버플로우(overflow)를 방지하는 방식으로 (스플라이싱된 전송 스트림을 발생시키기 위해) 스플라이싱을 수행할 필요가 있을 수 있다. (앞서 정의된 필수적인 완벽 스플라이싱 특성에 부가하여) 하나 이상의 부가의 완벽 스플라이싱 특성을 갖게 스플라이싱되도록 각각의 전송 스트림을 발생시키는 것에 의해 스플라이서의 작업이 단순화될 수 있다. 이와 같이, 일부 실시예에서, 본 발명은 필수적인 완벽 스플라이싱 특성을 충족시키는 그리고 또한 이하의 부가의 완벽 스플라이싱 특성들 중 적어도 하나를 충족시키는 전송 스트림(예컨대, MPEG-2 전송 스트림)을 발생시키는 방법이다:
1. A/V I-프레임의 PES 정렬. 전송 스트림의 각각의 프로그램에 대해, 프로그램의 비디오 기본 스트림에서의 각각의 비디오 I-프레임이 프로그램의 인코딩된 오디오 I-프레임과 PES 패킷 정렬되어 있다면(즉, 인코딩된 오디오 I-프레임의 첫 번째 바이트가 새로운 PES 패킷의 시작에 있고, 비디오 I-프레임의 첫 번째 바이트가 새로운 PES 패킷의 시작에 있으면), 전송 스트림이 이 특성을 갖는다. 프로그램의 후속하는 인코딩된 오디오 프레임은, 다음의 정합하는 I-프레임의 시작 때까지, PES 패킷 정렬될 필요가 없다;
2. A/V I-프레임 쌍 PTS 값 일치. 전송 스트림의 각각의 프로그램에 대해, 각각의 비디오 I-프레임에 대해, (필수적인 완벽 스플라이싱 특성의 I-프레임 동기화 요건에 규정된 바와 같이, 여기서 하나의 상기 비디오 I-프레임 및 비디오 I-프레임과 정합하는 오디오 I-프레임을 포함하는 각각의 I-프레임 쌍이 본원에서 때때로 "A/V I-프레임 쌍"이라고 지칭됨) 적어도 하나의 정합하는 오디오 I-프레임이 있고, 각각의 A/V I-프레임 쌍의 I-프레임들이 일치하는(예컨대, 동일한) PTS(presentation time stamp) 값을 갖는다면, 전송 스트림이 이 특성을 갖는다;
3. 고정 하이퍼프레임 비트 레이트(constant hyperframe bitrate). 본원에서, "하이퍼프레임(hyperframe)"이라는 용어는 (전송 스트림의 프로그램의) A/V I-프레임 쌍의 오디오 I-프레임으로 시작하고 (프로그램의) 다음 A/V I-프레임 쌍 직전의 오디오 프레임으로 끝나는 오디오 프레임 시퀀스를 가리킨다. 전송 스트림의 각각의 프로그램에 대해, 모든 하이퍼프레임에 대한 평균 비트 레이트가 일정하면, 전송 스트림은 "고정 하이퍼프레임 비트 레이트" 완벽 스플라이싱 특성을 갖는다. 유의할 점은, CBR(constant bit rate: 고정 비트 레이트)가 "고정 하이퍼프레임 비트 레이트" 특성의 특수한 경우라는 것과, "고정 하이퍼프레임 비트 레이트" 특성이 똑같은 인코딩된 오디오 비트 레이트를 갖는 스트림들이 함께 스플라이싱될 때 스플라이싱 이후 수신기 버퍼(들)가 오버플로우 또는 언더플로우하지 않도록 보장해준다는 것이다;
4. 전송 스트림에서의 데이터 정렬. 전송 스트림의 각각의 프로그램에 대해, A/V I-프레임 쌍 및 다음 A/V I-프레임 쌍까지 후속하는 A/V 프레임들을 포함하는 A/V 프레임 시퀀스가 함께 송신되도록 전송 스트림 내에 다중화되면(즉, 전송 스트림의 단일의 연속적인 세그먼트에 있도록 시간 다중화되면), 전송 스트림은 "전송 스트림에서의 데이터 정렬" 완벽 스플라이싱 특성을 갖는다;
5. 전송 스트림에서의 보호 대역. 전송 스트림의 각각의 프로그램에 대해, 프로그램의 각각의 A/V I-프레임 쌍에 대해, 상기 A/V I-프레임 쌍의 비디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되기 전에 상기 A/V I-프레임 쌍의 인코딩된 오디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되지 않으면, 전송 스트림은 "전송 스트림에서의 보호 대역" 완벽 스플라이싱 특성을 갖는다. 또한, 프로그램의 각각의 A/V I-프레임 쌍 직전에 있는 오디오 프레임에 대해, A/V I-프레임 쌍에 선행하는 마지막 비디오 데이터 전송 스트림 패킷의 송신 이전에 상기 오디오 프레임에 대한 모든 오디오 데이터 전송 스트림 패킷이 송신된다. 이러한 보호 대역의 중요한 이점은 어디에서 스플라이싱할지를 결정하기 위해 비디오만을 쳐다보도록 구현되는 전송 스트림 스플라이서가 어떤 오디오 프레임도 결코 손상시키지 않도록 보장하는 것이다; 그리고
6. 전송 스트림에 표시된 스플라이스 지점. 전송 스트림이 전송 스트림에서의 (예컨대, ISO/IEC 13818-1의 부록 A에 기술된 바와 같이) 적당한 스플라이스 지점을 명시적으로 나타내는 메타데이터를 포함하고 메타데이터가 적당한 A/V I-프레임 쌍 직전에 있는 스플라이스 지점만을 나타내면, 전송 스트림은 "전송 스트림에 표시된 스플라이스 지점" 완벽 스플라이싱 특성을 갖는다. 이러한 표시된 스플라이스 지점은 전송 스트림에서의 잠재적인 매끄러운 스플라이스 지점이다. 임의로, 비디오의 포맷은 매끄러운 스플라이스 지점에 대한 추가 요건을 암시할 수 있고(예컨대, 전송 스트림을 발생시키는 데 사용되는 비디오 인코딩의 포맷에 따라, 모든 비디오 I-프레임이 매끄러운 스플라이스 지점으로서 적당한 것은 아닐 수 있음), 메타데이터는 (적당한 스플라이스 지점으로서) 적당한 A/V I-프레임 쌍 직전에 있고 이러한 추가 요건도 충족시키는 스플라이스 지점만을 나타낸다.
전형적으로, 제6 부가의 완벽 스플라이싱 특성("전송 스트림에 표시된 스플라이스 지점")을 가지는 전송 스트림은 또한 제1 내지 제5 부가의 완벽 스플라이싱 특성 각각을 갖고, 제5 부가의 완벽 스플라이싱 특성("전송 스트림에서의 보호 대역")을 가지는 전송 스트림은 또한 제1 내지 제4 부가의 완벽 스플라이싱 특성 각각을 가지며, 제4 부가의 완벽 스플라이싱 특성("전송 스트림에서의 데이터 정렬")을 가지는 전송 스트림은 또한 제1 내지 제3 부가의 완벽 스플라이싱 특성 각각을 갖고, 제3 부가의 완벽 스플라이싱 특성("고정 하이퍼프레임 비트 레이트")을 가지는 전송 스트림은 또한 제1 및 제2 부가의 완벽 스플라이싱 특성 각각을 가지며, 제2 부가의 완벽 스플라이싱 특성("A/V I-프레임 쌍 PTS 값 일치")을 가지는 전송 스트림은 또한 제1 부가의 완벽 스플라이싱 특성을 갖는다.
제1 부류의 실시예에서의 일부 실시예에 따라 발생되는 전송 스트림(예컨대, MPEG-2 전송 스트림)은 전송 스트림(또는 전송 스트림이 나타내는 프로그램)이 적어도 하나의 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터("스플라이싱 메타데이터")(예컨대, 전송 스트림 또는 프로그램이 필수적인 완벽 스플라이싱 특성 및 부가의 완벽 스플라이싱 특성들 각각을 갖는지를 나타내는 메타데이터)를 포함한다.
제2 부류의 실시예에서, 본 발명은, 적어도 하나의 오디오/비디오 프로그램("프로그램")을 나타내고 프로그램이 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터("스플라이싱 메타데이터")(예컨대, 프로그램이 필수적인 완벽 스플라이싱 특성 및/또는 적어도 하나의 다른 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터)를 포함하는, 전송 스트림(예컨대, MPEG-2 전송 스트림)을 발생시키는 방법이다. 전송 스트림이 적어도 2개의 프로그램을 나타내면, 스플라이싱 메타데이터는 프로그램들 각각이 완벽 스플라이싱 특성을 갖는지(예컨대, 프로그램들 중 각각의 개별 프로그램이 완벽 스플라이싱 특성을 갖는지 여부)를 나타낼 수 있다. 스플라이싱 메타데이터는 전송 스트림이 나타내는 모든 프로그램을 일괄하여 나타낼 수 있거나(즉, 그에 관한 것임)(그리고 따라서 전송 스트림 자체가 완벽 스플라이싱 특성을 갖는지를 나타낼 수 있음), 전송 스트림이 나타내는 각각의 개별 프로그램(또는 모든 프로그램들의 부분집합)을 특정하여 나타낼 수 있다.
제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림의 스플라이싱 메타데이터는 전송 스트림이 나타내는 적어도 하나의 프로그램(예컨대, 각각의 프로그램)이 "필수적인" 완벽 스플라이싱 특성(제1 부류의 실시예를 참조하여 앞서 정의됨)을 갖는지 그리고/또는 전송 스트림이 나타내는 적어도 하나의 프로그램이 (제1 부류의 실시예를 참조하여 앞서 정의된 임의의 유형들 중) 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖는지를 나타낼 수 있다.
제2 부류의 실시예를 참조하면, 전송 스트림이 나타내는 프로그램이 완벽 스플라이싱 특성을 "갖는다"(즉, 충족시킨다)는 표현은 프로그램을 나타내는 전송 스트림의 데이터(예컨대, 프로그램의 적어도 하나의 비디오 기본 스트림을 결정하는, 비디오 데이터의 I-프레임들을 포함하는, 비디오 데이터의 프레임들 및 프로그램의 적어도 하나의 오디오 기본 스트림을 결정하는, 인코딩된 오디오 데이터의 I-프레임들을 포함하는, 인코딩된 오디오 데이터의 프레임들)가 완벽 스플라이싱 특성을 갖는다는 것을 가리킨다(예컨대, 적어도 하나의 다른 프로그램을 나타내는 전송 스트림의 다른 데이터는 완벽 스플라이싱 특성을 갖지 않을 수 있음).
제2 부류에서의 전형적인 실시예에 따라 발생되는 전송 스트림은 (전송 스트림이 나타내는 각각의 프로그램에 대해) (프로그램에 대한 적어도 하나의 비디오 기본 스트림을 결정하는) 비디오 데이터의 프레임들 및 (프로그램에 대한 적어도 하나의 오디오 기본 스트림을 결정하는) 인코딩된 오디오 데이터의 프레임들을 포함한다. 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하고, 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함한다.
전송 스트림의 프로그램을 나타내는 (제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림에서의) 데이터는 앞서 정의된 필수적인 완벽 스플라이싱 특성을 가질 수 있고, 또한 앞서 기술된 부가의 완벽 스플라이싱 특성들 중 하나 이상을 가질 수 있다. 적어도 하나의 이러한 부가의 완벽 스플라이싱 특성을 충족시키는 (프로그램을 나타내는) 데이터를 발생시키는 옵션은 전송 스트림 제작자가 어느 완벽 스플라이싱 특성 또는 특성들이 충족되어야 하는지를 선택할 수 있게 한다. 보다 많은 완벽 스플라이싱 특성을 충족시키는 것은 전형적으로 전송 스트림 발생에 대한 보다 많은 오버헤드를 필요로 하지만, 보다 간단한 스플라이서 구현을 가능하게 한다.
(전송 스트림이 나타내는 프로그램이 적어도 하나의 완벽 스플라이싱 특성 각각을 충족시키는지를 나타내는) 스플라이싱 메타데이터를 전송 스트림에 포함시키는 것은 스플라이서가 프로그램의 기본 스트림을 나타내는 (전송 스트림의) 데이터가 예상된 방식으로 스플라이싱(및 다른 방식으로 처리)될 수 있는지를 결정하기 위해 전송 스트림으로부터 이러한 메타데이터를 파싱할 수 있게 하고, 전송 스트림(또는 프로그램의 기본 스트림을 나타내는 전송 스트림의 데이터)이 그 스플라이서에 의해 지원되는 것에 부합하지 않으면(예컨대, 완벽 스플라이싱 특성의 전체 집합 미만을 가지면(여기서 전체 집합은 스플라이서가 완벽 스플라이싱이도록 보장되는 스플라이싱을 수행하기 위해 필요함)) 운영자에게 경고를 발행할 수 있게 한다.
적어도 2개의 프로그램을 나타낼 제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 프로그램들 각각에 대한 스플라이싱 메타데이터를 포함할 수 있다. 각각의 프로그램에 대한 스플라이싱 메타데이터는 프로그램이 적어도 하나의 완벽 스플라이싱 특성을 충족시키는지를 나타낼 수 있다. 예를 들어, 스플라이싱 메타데이터는 프로그램이 본원에서 정의되는 필수적인 완벽 스플라이싱 특성 및 6 개의 부가의 완벽 스플라이싱 특성 각각을 충족시키는지를 나타낼 수 있다.
살펴본 바와 같이, 전송 스트림은 다수의 프로그램을 나타낼 수 있다. 각각의 프로그램은 다수의 기본 스트림(예컨대, 비디오 기본 스트림, 및 하나 이상의 인코딩된 오디오 기본 스트림)을 포함할 수 있다. 전형적으로, 각각의 기본 스트림은 기본 스트림을 특징지우거나 다른 방식으로 그에 관련된 정보를 포함하는 연관된 기술자(descriptor)(때때로 본원에서 "기본 스트림 기술자(elementary stream descriptor)"라고 지칭됨)를 갖는다. 각각의 기본 스트림의 기술자를 분석하는 것에 의해, 스플라이서는 전송 스트림(또는 그의 프로그램)이 스플라이싱을 구현하기 위해 스플라이서가 필요로 하는 특성을 갖는지를 결정할 수 있다(그리고 적어도 하나의 예상된 특성이 충족되지 않는 것으로 결정할 때 경고 또는 오류를 임의로 발행할 수 있다). 본 발명의 전형적인 실시예에 따른 전송 스트림에 포함되는 스플라이싱 메타데이터는 전송 스트림의 기본 스트림 기술자에 포함될 수 있다(그리고 기본 스트림을 포함하는 프로그램의 각각의 완벽 스플라이싱 특성을 나타낼 수 있다). 대안적으로, 스플라이싱 메타데이터가 전송 스트림의 다른 부분(세그먼트)에 포함될 수 있다(그리고 전송 스트림의 모든 프로그램을 일괄하여 나타내거나, 전송 스트림의 각각의 프로그램을 개별적으로 나타낼 수 있다).
전형적인 실시예에서, 전송 스트림은 전송 스트림의 각각의 프로그램에 대한 스플라이싱 메타데이터를 포함하고, 각각의 프로그램에 대한 스플라이싱 메타데이터는 프로그램의 기본 스트림(들)에 의해 충족되는 각각의 완벽 스플라이싱 특성을 나타내며, 전송 스트림이 나타내는 각각의 프로그램의 기본 스트림(들)은 상이한 완벽 스플라이싱 특성 세트를 충족시킬 수 있다(또는 충족시키지 못할 수 있다). 예를 들어, 제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 하나의 비디오 기본 스트림 및 2개의 오디오 기본 스트림을 갖는 프로그램을 포함할 수 있다(즉, 프로그램을 나타내는 데이터를 포함할 수 있다). 이 예에서, 프로그램을 결정하는 전송 스트림의 데이터는 완벽 스플라이싱 특성을 가질 수 있고, 전송 스트림은 프로그램의 기본 스트림들에 의해 충족되는 완벽 스플라이싱 특성을 나타내는 (프로그램에 대한) 스플라이싱 메타데이터를 포함할 수 있다.
제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림에 포함되는 스플라이싱 메타데이터의 예는 하기의 것 중 전부 또는 일부를 포함한다(또는 그들로 이루어져 있다):
전송 스트림의 적어도 하나의 프로그램(즉, 각각의 상기 프로그램을 나타내는 전송 스트림의 데이터)이 비디오 및 인코딩된 오디오에 대한 동일한 프레임 레이트의 특성을 충족시키는지를 나타내는 메타데이터(예를 들어, 동일한 프레임 레이트 특성이 충족되면 전송 스트림의 기술자에서의 framerate _match 비트가 ("1" 값으로) 세트된다. 그렇지 않으면, 이러한 비트가 ("0" 값으로서) 세트되지 않은 채로 있다);
전송 스트림의 적어도 하나의 프로그램이 I-프레임 동기화 특성을 충족시키는지를 나타내는 메타데이터(예를 들어, I-프레임 동기화 특성이 충족되면 전송 스트림의 기술자에서의 iframes _ synced 비트가 ("1" 값으로) 세트된다. 그렇지 않으면, 이러한 비트가 ("0" 값으로서) 세트되지 않은 채로 있다);
전송 스트림의 적어도 하나의 프로그램이 "A/V I-프레임의 PES 정렬" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, iframes_pes_aligned 비트)일 수 있다. 이러한 iframes_pes_aligned 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다;
전송 스트림의 적어도 하나의 프로그램이 "A/V I-프레임 쌍 PTS 값 일치" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, iframes_pts_match 비트)일 수 있다. 이러한 iframes_pts_match 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 세트되지 않은 채로 있을 것이다;
전송 스트림의 적어도 하나의 프로그램이 "고정 하이퍼프레임 비트 레이트" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, constant_hyperframe_bitrate 비트)일 수 있다. 이러한 constant_hyperframe_bitrate 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다;
전송 스트림의 적어도 하나의 프로그램이 "전송 스트림에서의 데이터 정렬" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, avdata_aligned 비트)일 수 있다. 이러한 avdata_aligned 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다;
전송 스트림의 적어도 하나의 프로그램이 "전송 스트림에서의 보호 대역" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, guardband 비트)일 수 있다. 이러한 guardband 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다; 그리고/또는
전송 스트림의 적어도 하나의 프로그램이 "전송 스트림에 표시된 스플라이스 지점" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, splicemarkers 비트)일 수 있다. 이러한 splicemarkers 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다.
프로그램에 대한 스플라이싱 메타데이터가 framerate_match 비트 및 iframes_synced 비트를 포함하는 상기 예에서, 이러한 비트 둘 다가 세트되어 있으면(둘 다가 논리 값 "1"을 가지면), 스플라이싱 메타데이터는 (프로그램이 비디오 및 인코딩된 오디오에 대해 동일한 프레임 레이트를 갖고 I-프레임 동기화 특성을 충족시킨다는 점에서) 프로그램이 필수적인 완벽 스플라이싱 특성을 충족시킨다는 것을 나타낸다.
일부 실시예에서, 본 발명은 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 필수적인 완벽 스플라이싱 특성을 갖는 전송 스트림(예컨대, MPEG-2 전송 스트림)을 스플라이싱함으로써, 스플라이싱된 전송 스트림을 발생시키는 방법이다. 임의로, 전송 스트림은 또한 앞서 기술된 부가의 완벽 스플라이싱 특성들 중 적어도 하나를 포함한다(예컨대, 스트림은 필수적인 완벽 스플라이싱 특성, 및 부가의 완벽 스플라이싱 특성들 모두를 가질 수 있다). 전송 스트림이 필수적인 완벽 스플라이싱 특성을 갖기 때문에, 전송 스트림에서의 오디오/비디오 동기화가 스플라이싱된 전송 스트림에서 유지되도록 스플라이싱이 수행된다.
일부 실시예에서, 본 발명은 제2 부류에서의 임의의 실시예에 따라, 스플라이싱 메타데이터를 포함하도록 발생된 전송 스트림(예컨대, MPEG-2 전송 스트림)을 스플라이싱하는 방법이다. 본 방법은 (a) 스플라이싱 메타데이터(예컨대, 전송 스트림의 기본 스트림 기술자에서의 스플라이싱 메타데이터)를 식별하기 위해 전송 스트림의 적어도 일부분을 파싱하는 단계; 및 (b) 스플라이싱 메타데이터가 전송 스트림의 적어도 세그먼트(예컨대, 전송 스트림 전체, 또는 전송 스트림이 나타내는 프로그램)가, 필수적인 완벽 스플라이싱 특성을 비롯한, 적어도 하나의 완벽 스플라이싱 특성을 가진다는 것을 나타낸다고 결정할 때, 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 전송 스트림을 스플라이싱함으로써, 스플라이싱된 전송 스트림을 발생시키는 단계를 포함한다. 전송 스트림(또는 스플라이싱되는 그의 세그먼트)이 필수적인 완벽 스플라이싱 특성을 가지면, 단계 (b)는 전송 스트림에서의 오디오/비디오 동기화가 스플라이싱된 전송 스트림에서 유지되도록 수행된다.
본 발명의 다른 양태는 본 발명의 방법의 임의의 실시예(예컨대, 필수적인 완벽 스플라이싱 특성을 갖는 그리고/또는 스플라이싱 메타데이터를 포함하는 전송 스트림의 발생 또는 스플라이싱)를 수행하도록 구성된 AVPU(audio/video processing unit: 오디오/비디오 처리 유닛)이다. 예를 들어, AVPU는 본 발명의 전송 스트림 스플라이싱 방법의 임의의 실시예를 수행하도록 구성된 스플라이서일 수 있다. 다른 부류의 실시예에서, 본 발명은 본 발명의 방법의 임의의 실시예에 의해 발생된 전송 스트림(예컨대, 적어도 본원에 정의된 필수적인 완벽 스플라이싱 특성 및 임의로 또한 본원에 정의되는 임의의 유형의 적어도 하나의 부가의 완벽 스플라이싱 특성을 충족시키는 전송 스트림 그리고 전송 스트림의 저장된 세그먼트가 그를 충족시키는 전송 스트림)의 적어도 하나의 세그먼트를 (예컨대, 비일시적 방식으로) 저장하는 버퍼 메모리(버퍼)를 포함하는 AVPU이다. 버퍼에 저장된 세그먼트는 (본 발명의 방법의 임의의 실시예에 따라 전송 스트림에 포함된) 스플라이싱 메타데이터를 포함할 수 있다. AVPU의 예는 인코더(트랜스코더), 디코더(예컨대, 전송 스트림의 콘텐츠를 디코딩하도록 그리고/또는 스플라이싱된 전송 스트림을 발생시키기 위해 스플라이싱을 수행하고 스플라이싱된 전송 스트림의 콘텐츠를 디코딩하도록 구성된 디코더), 코덱, 스플라이서, 전처리 시스템(전처리기(pre-processor)), 후처리 시스템(후처리기(post-processor)), 전송 스트림 처리 시스템, 및 이러한 요소들의 조합을 포함하지만, 이들로 제한되지 않는다.
본 발명의 양태는 본 발명의 방법의 임의의 실시예를 수행하도록 구성된(예컨대, 프로그램된) 시스템 또는 디바이스, 및 본 발명의 방법 또는 그의 단계들의 임의의 실시예를 구현하기 위한 코드를 (예컨대, 비일시적 방식으로) 저장하는 컴퓨터 판독 가능 매체(예컨대, 디스크)를 포함한다. 예를 들어, 본 발명의 시스템은, 본 발명의 방법의 일 실시예 또는 그의 단계들을 비롯한, 데이터에 대한 각종의 연산 중 임의의 것을 수행하도록 소프트웨어 또는 펌웨어로 프로그램된 그리고/또는 다른 방식으로 구성된 프로그램 가능 범용 프로세서, 디지털 신호 프로세서, 또는 마이크로프로세서일 수 있거나 이를 포함할 수 있다. 이러한 범용 프로세서는 입력 디바이스, 메모리, 및 그에 어써트(assert)된 데이터에 응답하여 본 발명의 방법의 일 실시예(또는 그의 단계들)를 수행하도록 프로그램된(그리고/또는 다른 방식으로 구성된) 처리 회로부를 포함하는 컴퓨터 시스템일 수 있거나 이를 포함할 수 있다.
도 1은 3 개의 스플라이스 지점 - 각각이 상이한 전송 스트림에 있음 - 을 나타낸 도면. 각각의 전송 스트림은 상이한 TS 패킷 시퀀스 - "A"로 표시된 인코딩된 오디오 데이터를 포함하는 그 TS 패킷 및 "V"로 표시된 비디오 데이터를 포함하는 그 TS 패킷을 가짐 - 를 포함한다.
도 2는 필수적인 완벽 스플라이싱 특성 및 5개의 부가의 완벽 스플라이싱 특성("A/V I-프레임의 PES 정렬", "A/V I-프레임 쌍 PTS 값 일치", "고정 하이퍼프레임 비트 레이트", "전송 스트림에서의 데이터 정렬", 및 "전송 스트림에서의 보호 대역")을 갖는 MPEG-2 전송 스트림의 일 예를 나타낸 도면.
도 3은 시스템의 요소들 중 하나 이상이 본 발명의 일 실시예에 따라 구성될 수 있는 시스템의 일 실시예의 블록도.
도 4는 도 3의 포착 유닛(1) 및 생성 유닛(production unit)(3)의 일 구현인 시스템의 블록도.
표기법 및 용어
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, 신호 또는 데이터에 "대해" 동작(예컨대, 신호 또는 데이터를 필터링, 스케일링, 변환하거나, 그에 이득을 적용하는 것)을 수행하는 표현은 넓은 의미에서 신호 또는 데이터에 대해 직접 또는 신호 또는 데이터의 처리된 버전에 대해(예컨대, 신호에 대한 동작의 수행 이전에 예비 필터링(preliminary filtering) 또는 전처리(pre-processing)를 거친 신호의 버전에 대해) 동작을 수행하는 것을 가리키기 위해 사용된다.
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, "시스템"이라는 표현은 넓은 의미에서 디바이스, 시스템, 또는 서브시스템을 가리키기 위해 사용된다. 예를 들어, 인코딩을 구현하는 서브시스템은 인코더 시스템이라고 지칭될 수 있고, 이러한 서브시스템을 포함하는 시스템(예컨대, 다수의 입력에 응답하여 X 개의 출력 신호를 발생시키는 시스템, 여기서 서브시스템은 입력들 중 M 개를 발생시키고 다른 X-M 개의 입력은 외부 소스로부터 수신됨)이 또한 인코더 시스템이라고 지칭될 수 있다.
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, "전송 스트림"(또는 "전송 스트림")이라는 표현은 비트스트림을 나타내는 신호를 가리키고, 상기 비트스트림은 비디오 데이터 및 인코딩된 오디오 데이터와, 임의로 또한 메타데이터를 포함한다. "AV 데이터"라는 표현은 때때로 본원에서 이러한 비디오 데이터 및/또는 이러한 인코딩된 오디오 데이터를 가리키기 위해 사용된다. 전형적으로, 전송 스트림은 인코딩된 오디오 데이터의 세그먼트(예컨대, 패킷), 비디오 데이터의 세그먼트(예컨대, 패킷), 및 (예컨대, 스플라이싱을 지원하는 메타데이터를 포함하는) 메타데이터의 세그먼트(예컨대, 헤더 또는 다른 세그먼트)의 시퀀스를 포함하는 직렬 비트스트림을 나타내는 신호이다. 전송 스트림은 다수의 프로그램을 나타낼 수 있고, 각각의 프로그램은 다수의 기본 스트림(예컨대, 비디오 기본 스트림, 및 2개 이상의 오디오 기본 스트림)을 포함할 수 있다. 전형적으로, 전송 스트림의 각각의 기본 스트림은 기본 스트림에 관련된 정보를 포함하는 연관된 기술자를 갖는다.
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, "프로세서"라는 용어는 넓은 의미에서 데이터(예컨대, 오디오, 및/또는 비디오 또는 다른 영상 데이터)에 대해 동작을 수행하도록 (예컨대, 소프트웨어 또는 펌웨어로) 프로그램 가능하거나 다른 방식으로 구성 가능한 시스템 또는 디바이스를 가리키기 위해 사용된다. 프로세서의 예는 FPGA(field-programmable gate array)(또는 다른 구성 가능한 집적 회로 또는 칩셋), 오디오 또는 다른 사운드 데이터에 대해 파이프라인 방식 처리(pipelined processing)를 수행하도록 프로그램되고 그리고/또는 다른 방식으로 구성된 디지털 신호 프로세서, 프로그램 가능 범용 프로세서 또는 컴퓨터, 및 프로그램 가능 마이크로프로세서 칩 또는 칩셋을 포함한다.
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, "오디오 비디오 수신기"(또는 "AVR")라는 표현은, 예를 들어, 홈시어터에서, 오디오 및 비디오 콘텐츠의 재생을 제어하기 위해 사용되는 소비자 전자 기기 부류 내의 수신기를 가리킨다.
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, "오디오/비디오 처리 유닛"(또는 "AV 처리 유닛" 또는 "AVPU") 및 "AV 프로세서"라는 표현은 서로 바꾸어 사용될 수 있고, 넓은 의미에서, 전송 스트림(또는 전송 스트림의 비디오 데이터 및/또는 인코딩된 오디오 데이터)을 처리하도록 구성된 시스템을 가리키는 데 사용된다. AV 처리 유닛의 예는 인코더(예컨대, 트랜스코더), 디코더, 코덱, 스플라이서, 전처리 시스템, 후처리 시스템, 및 비트스트림 처리 시스템(때때로 비트스트림 처리 도구라고 지칭됨)을 포함하지만, 이들로 제한되지 않는다. 일 예에서, AV 처리 유닛은 제1 전송 스트림의 출력 시점(out point)(즉, 시각) 및 제2 전송 스트림(제1 전송 스트림 또는 제1 전송 스트림이 아닌 상이한 전송 스트림일 수 있음)의 입력 시점(in point)(즉, 다른 시각)을 결정하도록, 그리고 스플라이싱된 전송 스트림(예컨대, 출력 시점 이전에 있는 제1 비트스트림의 데이터 및 입력 시점 이후에 있는 제2 비트스트림의 데이터를 포함하는 스플라이싱된 전송 스트림)을 발생시키도록 구성된 스플라이서이다.
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, (예컨대, "스플라이싱 메타데이터"라는 표현에서와 같이) "메타데이터"라는 표현은 대응하는 오디오 데이터 및/또는 비디오 데이터(메타데이터도 포함하는 비트스트림의 오디오 및/또는 비디오 콘텐츠)와 별도의 상이한 데이터를 지칭한다. 메타데이터는 오디오 및/또는 비디오 데이터("AV" 데이터)와 연관되어 있고, AV 데이터의 적어도 하나의 특징 또는 특성(예컨대, AV 데이터에 대해 어떤 유형(들)의 처리가 이미 수행되었는지 또는 수행되어야만 하는지, 또는 AV 데이터의 오디오 데이터가 나타내는 객체의 궤적(trajectory))을 나타낸다. 메타데이터와 AV 데이터 간의 연관은 시간 동기적이다. 이와 같이, 현재(가장 최근에 수신된 또는 업데이트된) 메타데이터는 대응하는 AV 데이터가, 동시에, 표시된 특징을 갖고 그리고/또는 표시된 유형의 오디오 및/또는 비디오 데이터 처리의 결과를 포함한다는 것을 나타낼 수 있다.
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, "스플라이싱 메타데이터"라는 표현은 대응하는 전송 스트림(전형적으로 메타데이터가 포함되어 있는 전송 스트림) 또는 이러한 전송 스트림이 나타내는 프로그램이 적어도 하나의 완벽 스플라이싱 특성 각각을 충족시키는지(예컨대, 전송 스트림이 적어도 2개의 완벽 스플라이싱 특성 각각을 충족시키는지)를 나타내는 메타데이터를 가리킨다. 예를 들어, 전송 스트림의 스플라이싱 메타데이터는 전송 스트림(또는 전송 스트림의 데이터가 나타내는, 프로그램, 또는 적어도 2개의 프로그램 각각)이 적어도 하나의 완벽 스플라이싱 특성(예컨대, 적어도 2개의 완벽 스플라이싱 특성 각각)을 충족시킨다는 것을 나타낼 수 있다.
청구범위를 비롯한 본 개시 내용 전체에 걸쳐, "결합하다" 또는 "결합된"이라는 용어는 직접 또는 간접 연결 중 어느 하나를 의미하기 위해 사용된다. 이와 같이, 제1 디바이스가 제2 디바이스에 결합되면, 그 연결은 직접 연결을 통할 수 있거나, 다른 디바이스 및 연결을 거치는 간접 연결을 통할 수 있다.
도 3은 시스템의 요소들 중 하나 이상이 본 발명의 일 실시예에 따라 구성될 수 있는 오디오 처리 체인(오디오 데이터 처리 시스템)의 일 실시예의 블록도이다. 본 시스템은 도시된 바와 같이 서로 결합된 하기의 요소들을 포함한다: 포착 유닛(1), (인코딩 서브시스템을 포함하는) 생성 유닛(3), 전달 서브시스템(5), 및 스플라이싱 유닛(스플라이서)(7). 도시된 시스템의 변형에서, 요소들 중 하나 이상이 생략되거나, 부가의 처리 유닛들이 포함된다.
포착 유닛(1)은 전형적으로 오디오 콘텐츠를 포함하는 PCM(시간 영역) 샘플 및 비디오 데이터 샘플을 발생시키고 PCM 오디오 샘플 및 비디오 데이터 샘플을 출력하도록 구성된다. 예를 들어, PCM 샘플은 마이크로폰에 의해 포착되는 다수의 오디오 스트림을 나타낼 수 있다. 생성 유닛(3)(전형적으로 방송국에 의해 운영됨)은 PCM 오디오 샘플 및 비디오 샘플을 입력으로서 받고 오디오 및 비디오 콘텐츠를 나타내는 전송 스트림을 발생시켜 출력하도록 구성된다. 도 3의 시스템의 전형적인 구현에서, 생성 유닛(3)은 MPEG-2 전송 스트림(예컨대, MPEG-2 전송 스트림의 각각의 오디오 기본 스트림이 AC-4 포맷을 갖는 압축된 오디오 데이터를 포함하도록, AC-4 표준에 따라 인코딩된 오디오 콘텐츠를 갖는 MPEG-2 전송 스트림)을 출력하도록 구성된다. 생성 유닛(3)이 본 발명의 방법의 일 실시예를 수행하도록 구성되는 일부 구현에서, 유닛(3)으로부터 출력되는 전송 스트림(예컨대, MPEG-2 전송 스트림)은 또한 본 발명의 일 실시예에 따라 발생되는 본원에 기술되는 유형들 중 임의의 유형의 스플라이싱 메타데이터도 나타내고 있다(즉, 포함하고 있다).
본 발명의 다양한 실시예 중 임의의 실시예에 따라 발생되는 전송 스트림(예컨대, MPEG-2 전송 스트림)의 오디오 콘텐츠에 대해 수행되는 인코딩은 AC-4 인코딩일 수 있거나, 비디오와 프레임 정렬되어 있는 임의의 다른 오디오 인코딩일 수 있다(즉, 비디오의 각각의 프레임이 인코딩된 오디오의 정수 개의(즉, 비소수(non-fractional) 개의) 프레임에 대응하도록 되어 있다)(이 후자의 특성을 갖기 위해 AC-4 인코딩이 수행될 수 있다).
유닛(3)으로부터 출력되는 전송 스트림은 오디오 콘텐츠의 적어도 일부를 나타내는 인코딩된(예컨대, 압축된) 오디오 비트스트림(때때로 본원에서 "주 믹스(main mix)"라고 지칭됨)과, 비디오 콘텐츠를 나타내는 비디오 비트스트림, 그리고 임의로 또한 오디오 콘텐츠의 일부를 나타내는 적어도 하나의 부가의 비트스트림 또는 파일(때때로 본원에서 "보조 믹스(side mix)"라고 지칭됨)을 포함할 수 있다. 오디오 콘텐츠를 나타내는 전송 스트림의(그리고, 임의의 보조 믹스가 발생되는 경우, 각각의 발생된 보조 믹스의) 데이터는 때때로 본원에서 "오디오 데이터"라고 지칭된다.
전송 스트림의 오디오 데이터(예컨대, 그의 주 믹스)는 하나 이상의 스피커 채널 세트, 및/또는 오브젝트 채널(object channel)을 나타내는 오디오 샘플 스트림을 나타낼 수 있다.
도 4에 도시된 바와 같이, 도 3의 생성 유닛(3)의 일 구현은 유닛(1)으로부터 비디오 및 오디오 데이터를 수신하도록 결합되어 있는 인코딩 서브시스템(3B)을 포함한다. 서브시스템(3B)은 인코딩된 오디오 데이터 그리고 임의로 또한 인코딩된 비디오 데이터를 발생시키기 위해 오디오 데이터에 대해(그리고 임의로 또한 비디오 데이터에 대해) 필요한 인코딩을 수행하도록 구성된다. (도 4의) 유닛(3)의 다중화 서브시스템(3C)이 서브시스템(3B)의 출력을 전송 스트림(예컨대, MPEG-2 전송 스트림의 각각의 오디오 기본 스트림이 AC-4 포맷을 갖는 압축된 오디오 데이터를 포함하도록, AC-4 표준에 따라 인코딩될 수 있는 오디오 콘텐츠를 갖는 MPEG-2 전송 스트림)으로서 패키징(패킷화 및 다중화에 의한 것을 포함함)하도록 결합되고 구성되어 있다. (도 4의) 유닛(3)이 본 발명의 방법의 일 실시예를 수행하도록 구성되는 일부 구현에서, 서브시스템(3C)은 본 발명의 일 실시예에 따라 발생되는 본원에 기술되는 유형들 중 임의의 유형의 스플라이싱 메타데이터를 전송 스트림(예컨대, MPEG-2 전송 스트림)에 포함시키도록 구성된다. (도 4의) 유닛(3)이 본 발명의 방법의 일 실시예를 수행하도록 구성되는 전형적인 구현에서, 서브시스템(3C)은 필수적인 완벽 스플라이싱 특성(본원에서 정의됨) 그리고 임의로 또한 적어도 하나의 부가의 완벽 스플라이싱 특성을 충족시키는 전송 스트림(예컨대, MPEG-2 전송 스트림)을 발생시키도록 구성된다. 서브시스템(3C)에서 발생되는 전송 스트림의 세그먼트는 버퍼(3A)에 버퍼링되고(비일시적 방식으로 저장되고), 전송 스트림은 전달 서브시스템(5)으로 어써트된다.
도 3의 전달 서브시스템(5)은 유닛(3)에 의해 발생되는 전송 비트스트림(예컨대, 임의의 보조 믹스가 발생되는 경우, 그의 각각의 보조 믹스를 포함함)을 저장 및/또는 전송(예컨대, 방송)하도록 구성된다.
포착 유닛(1'), 생성 유닛(3')(버퍼(3A')를 포함함), 및 전달 서브시스템(5')은, 각각, 포착 유닛(1), 생성 유닛(3), 및 전달 서브시스템(5)과 동일하다. 이들은, 생성 유닛(3)에서 (역시 본 발명의 일 실시예에 따라) 발생되어 스플라이서(7)의 입력(8A)으로 전달되는 제1 전송 스트림과 스플라이서(7)에 의해 스플라이싱될, (본 발명의 일 실시예에 따라 발생되는) 제2 전송 스트림을 발생시키기 위해(그리고 스플라이서(7)의 입력(8B)으로 전달하기 위해) 동작할 수 있다.
도 3의 스플라이서(7)는 입력(8A 및 8B)을 포함한다. 입력(8A)은 전달 서브시스템(5)에 의해 스플라이서(7)로 전달되는 적어도 하나의 전송 스트림을 수신(예컨대, 판독)하도록 결합되어 있고, 입력(8B)은 전달 서브시스템(5')에 의해 스플라이서(7)로 전달되는 적어도 하나의 전송 스트림을 수신(예컨대, 판독)하도록 결합되어 있다. 스플라이서(7)는 또한, 도 3에 도시된 바와 같이 결합되어 있는, 버퍼 메모리(버퍼)(7A), 버퍼 메모리(버퍼)(7D), 파싱 서브시스템(7E), 파싱 서브시스템(7B), 및 스플라이싱 서브시스템(7C)을 포함한다. 임의로, 파싱 서브시스템(7B 및 7E)이 (이하에서 설명되는 이유로) 생략되고, 이 경우에 버퍼(7A 및 7D) 그리고 임의로 또한 메모리(9)의 출력이 스플라이싱 서브시스템(7C)에 직접 결합된다. 임의로, 스플라이서(7)는 (도시된 바와 같이) 결합되어 있고 스플라이싱될 전송 스트림을 저장하도록 구성되는 메모리(9)를 포함한다. 스플라이서(7)의 전형적인 동작 동안, 입력(8A 및/또는 8B)에 수신되는 적어도 하나의 선택된 전송 스트림의 세그먼트(예컨대, 입력(8A 및 8B)에 수신되는 선택된 전송 스트림 시퀀스의 세그먼트 시퀀스)가 버퍼(7A) 및/또는 버퍼(7D)에 버퍼링된다(비일시적 방식으로 저장된다). 버퍼링된 세그먼트는 파싱을 위해 버퍼(7A)로부터 파싱 서브시스템(7B)으로 어써트되고, 버퍼링된 세그먼트는 버퍼(7D)로부터 파싱 서브시스템(7E)으로 어써트된다. 대안적으로, 메모리(9)에 저장된 적어도 하나의 전송 스트림의 세그먼트는 파싱을 위해 파싱 서브시스템(7B)으로 어써트된다(또는 메모리(9)에 저장된 그리고/또는 입력(8A)에 수신된 선택된 전송 스트림 시퀀스의 세그먼트는 파싱을 위해 버퍼(7A) 및/또는 메모리(9)로부터 파싱 서브시스템(7B)으로 어써트된다). 전형적으로, (서브시스템(7B 또는 7E)에서) 파싱되고 (스플라이싱 서브시스템(7C)에서) 스플라이싱될 각각의 전송 스트림은 본 발명의 일 실시예에 따라 발생되었다.
(전송 스트림이 나타내는 프로그램이 적어도 하나의 완벽 스플라이싱 특성 각각을 충족시키는지를 나타내는) 스플라이싱 메타데이터가 파싱 서브시스템(7B)으로 어써트되는 전송 스트림(또는 그의 적어도 하나의 세그먼트)에 (본 발명의 일 실시예에 따라) 포함되면, 서브시스템(7B)은 프로그램의 기본 스트림을 나타내는 (전송 스트림의) 데이터가 예상된 방식으로 스플라이싱(그리고 다른 방식으로 처리)될 수 있는지를 결정하기 위해 전송 스트림(또는 세그먼트)으로부터 이러한 메타데이터를 파싱하도록, 그리고 전형적으로 또한 전송 스트림(또는 프로그램의 기본 스트림을 나타내는 그의 데이터)이 스플라이서(7)에 의해 지원되는 것에 부합하지 않으면 운영자에게 경고를 발행하도록 구성되고 동작 가능하다.
(전송 스트림이 나타내는 프로그램이 적어도 하나의 완벽 스플라이싱 특성 각각을 충족시키는지를 나타내는) 스플라이싱 메타데이터가 파싱 서브시스템(7E)으로 어써트되는 전송 스트림(또는 그의 적어도 하나의 세그먼트)에 (본 발명의 일 실시예에 따라) 포함되면, 서브시스템(7E)은 프로그램의 기본 스트림을 나타내는 (전송 스트림의) 데이터가 예상된 방식으로 스플라이싱(그리고 다른 방식으로 처리)될 수 있는지를 결정하기 위해 전송 스트림(또는 세그먼트)으로부터 이러한 메타데이터를 파싱하도록, 그리고 전형적으로 또한 전송 스트림(또는 프로그램의 기본 스트림을 나타내는 그의 데이터)이 스플라이서(7)에 의해 지원되는 것에 부합하지 않으면 운영자에게 경고를 발행하도록 구성되고 동작 가능하다.
어떤 경우에(예컨대, 스플라이서(7)에 의해 스플라이싱될 전송 스트림이 본원에서 정의되는 "필수적인" 완벽 스플라이싱 특성 그리고 임의로 또한 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖도록 제1 부류에서의 일 실시예에 따라 발생되었을 때), 파싱 서브시스템(7B 및 7E)이 생략될 수 있다. 파싱 서브시스템(7B 및 7E)이 생략될 때, 스플라이서(7)의 일 구현은 완벽 스플라이싱을 실행하기 위해 스플라이서(7)의 관련 구현에 의해 요구되는 "필수적인" 완벽 스플라이싱 특성 및 임의의 부가의 완벽 스플라이싱 특성을 갖도록 (제1 부류에서의 일 실시예에 따라) 발생된 전송 스트림에 대해 완벽 스플라이싱을 실행할 수 있다.
스플라이서(7)(예컨대, 그의 서브시스템(7B 및 7E) 및/또는 서브시스템(7C))는 또한 스플라이싱될 각각의 전송 스트림(예컨대, 전달 서브시스템(5)에 의해 스플라이서(7)로 전달되는 제1 전송 스트림 및/또는 전달 서브시스템(5')에 의해 스플라이서(7)로 전달되는 제2 전송 스트림, 또는 메모리(9)에 저장된 제1 전송 스트림 및/또는 전달 서브시스템(5 또는 5')에 의해 스플라이서(7)로 전달되는 제2 전송 스트림)에서의 스플라이스 지점을 결정하도록 결합되고 구성되어 있으며, 서브시스템(7C)은 적어도 하나의 스플라이싱된 전송 스트림(도 3의 "스플라이싱된 출력")을 발생시키기 위해 스트림(들)을 스플라이싱하도록 구성된다. 어떤 경우에, 스플라이싱은 단일의 전송 스트림의 세그먼트를 생략하고, 스플라이서(7)는 전송 스트림의 출력 시점(즉, 시각) 및 전송 스트림의 입력 시점(나중의 시각)을 결정하도록, 그리고 출력 시점 이전에 있는 스트림 세그먼트를 입력 시점 이후에 있는 스트림 세그먼트와 연접시키는 것에 의해 스플라이싱된 전송 스트림을 발생시키도록 구성된다. 다른 경우에, 스플라이싱은 제2 전송 스트림을 제1 전송 스트림의 세그먼트들 사이에(또는 제1 전송 스트림의 세그먼트와 제3 전송 스트림 사이에) 삽입하고, 스플라이서(7)는 제1 전송 스트림의 출력 시점(즉, 시각), 제1(또는 제3) 전송 스트림의 입력 시점(나중의 시각), 제2 전송 스트림의 입력 시점(즉, 시각), 및 제2 전송 스트림의 출력 시점(나중의 시각)을 결정하도록, 그리고 그 스트림의 출력 시점 이전에 있는 제1 전송 스트림의 데이터, 그 스트림의 입력 시점과 출력 시점 사이에 있는 제2 전송 스트림의 데이터, 및 제1(또는 제3) 전송 스트림의 입력 시점 이후에 있는 제1(또는 제3) 전송 스트림의 데이터를 포함하는 스플라이싱된 전송 스트림을 발생시키도록 구성된다.
일부 구현에서, 스플라이서(7)는 적어도 하나의 스플라이싱된 전송 스트림(도 3의 "스플라이싱된 출력")을 발생시키기 위해 전송 스트림(들) - 그 각각은 본 발명의 일 실시예에 따라 발생되었음 - 을 본 발명의 스플라이싱 방법의 일 실시예에 따라 스플라이싱하도록 구성된다.
전형적으로, 재생 시스템은 스플라이서(7)로부터 출력되는 스플라이싱된 전송 스트림을 디코딩하여 렌더링할 것이다. 재생 시스템은 전형적으로 전송 스트림의 오디오 콘텐츠 및 비디오 콘텐츠를 파싱하는 서브시스템, 오디오 콘텐츠를 디코딩하여 렌더링하도록 구성된 서브시스템, 및 비디오 콘텐츠를 디코딩하여 렌더링하도록 구성된 다른 서브시스템을 포함할 것이다.
제1 부류의 실시예에서, 본 발명은 전송 스트림(예컨대, MPEG-2 전송 스트림)을 (예컨대, 도 3의 생성 유닛(3)에서) 발생시키는 방법으로서, 이 방법은, 전송 스트림이 적어도 하나의 완벽 스플라이싱 특성(즉, 본원에서 정의되는 "필수적인" 완벽 스플라이싱 특성 그리고 임의로 또한 본원에서 정의되는 부가의 완벽 스플라이싱 특성들 중 적어도 하나)을 갖도록, 인코딩된 오디오 데이터(때때로 본원에서 "CA"라고 지칭됨) 및 비디오 데이터를 전송 스트림에 패키징하는 단계를 포함한다. 이 부가의 완벽 스플라이싱 특성은 "A/V I-프레임의 PES 정렬" 완벽 스플라이싱 특성, "A/V I-프레임 쌍 PTS 값 일치" 완벽 스플라이싱 특성, "고정 하이퍼프레임 비트 레이트" 완벽 스플라이싱 특성, "전송 스트림에서의 데이터 정렬" 완벽 스플라이싱 특성, "전송 스트림에서의 보호 대역" 완벽 스플라이싱 특성, "전송 스트림에 표시된 스플라이스 지점" 완벽 스플라이싱 특성이다. "필수적인" 완벽 스플라이싱 특성은 스플라이서에 의한 전송 스트림의 어떤 인코딩된 오디오 기본 스트림의 수정도 필요없이 전송 스트림을 스플라이싱할 때(예컨대, 완벽 스플라이싱 특성을 갖는 프로그램을 나타내는 전송 스트림의 세그먼트를 스플라이싱할 때) 오디오/비디오 동기화("A/V" 동기)가 유지되도록 보장한다.
제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 적어도 하나의 오디오/비디오 프로그램("프로그램")을 나타내고, (그에 의해 나타낸 각각의 프로그램에 대해) (적어도 하나의 비디오 기본 스트림을 결정하는) 비디오 데이터의 프레임 및 (적어도 하나의 오디오 기본 스트림을 결정하는) 대응하는 인코딩된 오디오 데이터의 프레임을 포함한다. 비디오 데이터의 프레임들(예컨대, 도 2의 비디오 프레임 #1, 비디오 프레임 #2, 비디오 프레임 #3, 비디오 프레임 #4, 비디오 프레임 #5, 및 비디오 프레임 #6)은 비디오 데이터의 I-프레임(예컨대, 도 2의 비디오 I-프레임 #1 및 비디오 I-프레임 #5)을 포함하고, 인코딩된 오디오 데이터의 프레임들(예컨대, 도 2의 AC-4 프레임 #1, AC-4 프레임 #2, AC-4 프레임 #3, AC-4 프레임 #4, AC-4 프레임 #5, 및 AC-4 프레임 #6으로서 나타낸 오디오 프레임들)은 인코딩된 오디오 데이터의 I-프레임(예컨대, 도 2의 오디오 I-프레임 AC-4 프레임 #1, 오디오 I-프레임 AC-4 프레임 #3, 및 오디오 I-프레임 AC-4 프레임 #5)을 포함하며, 여기서 "I-프레임"은 그 자체 내로부터의 정보만을 사용하여 인코딩된 독립적으로 디코딩 가능한 프레임을 나타낸다. 이와 달리, "P-프레임"(예측 인코딩된 프레임)은 I-프레임이 아니다.
전송 스트림은 적어도 하기의 완벽 스플라이싱 특성(본원에서 때때로 "필수적인" 완벽 스플라이싱 특성이라고 지칭됨)을 갖는다:
전송 스트림이 나타내는 각각의 프로그램에 대해, 프로그램의 비디오 기본 스트림 및 인코딩된 오디오 기본 스트림에 대해 동일한 프레임 레이트(즉, 전송 스트림의 각각의 프로그램에 대해, 프로그램의 각각의 비디오 기본 스트림이 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 프로그램의 각각의 비디오 프레임에 대해, 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있음); 및
I-프레임 동기화(즉, 전송 스트림의 각각의 프로그램에 대해, 프로그램의 비디오 기본 스트림에서의 각각의 비디오 I-프레임에 대해, 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임(즉, 비디오 I-프레임과 동기화된 적어도 하나의 오디오 I-프레임)이 있도록 비디오 및 오디오 인코딩이 동기화됨).
전송 스트림을 발생시키기 위해 (예컨대, 도 3의 생성 유닛(3)에 의해) 이용되는 작업 흐름에 따라, (전송 스트림이 나타내는 프로그램에 대해) 동일한 프레임 레이트 특성을 달성하는 것은, 프로그램의 다른 기본 스트림의 프레임 레이트가 변했을 때, (재인코딩 후에) 기본 스트림들의 프레임 레이트가 동일하도록 프로그램의 적어도 하나의 기본 스트림의 재인코딩을 필요로 할 수 있다. 예를 들어, 오디오 기본 스트림이, 대응하는 비디오 기본 스트림의 프레임 레이트가 변했을 때, 재인코딩될 필요가 있을 수 있다. 보통, 이러한 재인코딩의 필요성은 전송 스트림의 발생을 구현하는 데 적당한 작업 흐름을 선택함으로써 회피될 수 있다.
제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 하나의 프로그램 또는 2개 이상의 프로그램을 나타낼 수 있다. 각각의 프로그램은 비디오 기본 스트림을 결정하는 (I-프레임을 포함하는) 비디오 데이터의 프레임, 및 적어도 하나의 오디오 기본 스트림을 결정하는 (I-프레임을 포함하는) 대응하는 인코딩된 오디오 데이터의 프레임을 포함한다. 제1 부류에서의 일 실시예에 따라 발생되는 각각의 전송 스트림은, 전송 스트림이 나타내는 각각의 프로그램에 대해, 프로그램을 나타내는 전송 스트림의 데이터가 완벽 스플라이싱 특성을 갖는다는 의미에서, 필수적인 완벽 스플라이싱 특성(예컨대, 필수적인 완벽 스플라이싱 특성)을 갖는(즉, 충족시키는) 것으로 말해진다.
제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 하기의 특성을 갖는다:
1. 스플라이서에 의한 전송 스트림의 어떤 인코딩된 오디오 기본 스트림의 수정도 없이, 임의의 전송 스트림 스플라이서(예컨대, 도 3의 스플라이서(7))를 사용하여 전송 스트림을 스플라이싱할 때 완벽한 A/V 동기가 유지될 수 있고;
2. 전송 스트림의 인코딩된 오디오 콘텐츠를 손상시키거나 A/V 동기를 교란시키는 일 없이, 전송 스트림의 스플라이싱(심지어 낮은 고도화를 갖는 스플라이서에 의한 전송 스트림의 간단한 스플라이싱)이 가능하다.
앞서 정의된 필수적인 완벽 스플라이싱 특성(비디오 및 인코딩된 오디오에 대한 동일한 프레임 레이트, 및 I-프레임 동기화)에 부가하여, 제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 적어도 하나의 부가의 완벽 스플라이싱 특성(예컨대, 이하에서 기술되는 완벽 스플라이싱 특성들 중 하나 이상)을 가질 수 있다. 적어도 하나의 이러한 부가의 완벽 스플라이싱 특성을 충족시키는 전송 스트림을 발생시키는 옵션은 전송 스트림 제작자(예컨대, 네트워크 운영자)가 어느 완벽 스플라이싱 특성 또는 특성들이 충족되어야 하는지를 선택할 수 있게 한다. 보다 많은 완벽 스플라이싱 특성을 충족시키는 것은 전형적으로 전송 스트림 발생에 대한 보다 많은 오버헤드를 필요로 하지만, 보다 간단한 스플라이서 구현을 가능하게 한다. 보다 적은 완벽 스플라이싱 특성을 갖도록 전송 스트림을 발생시키는 것은 전형적으로 보다 간단한 전송 스트림 발생을 가능하게 하지만 보다 복잡한 스플라이서 구현을 필요로 한다. 전형적으로, 전송 스트림 발생기는, 특정의 사용 모드를 어쩔 수 없이 수락하기보다는, 전송 스트림 발생의 복잡도와 스플라이서 구현 복잡도 사이의 원하는 절충을 달성하기 위해 (본 발명의 실시예에 따라) 보다 많거나 보다 적은 수의 완벽 스플라이싱 특성을 충족시키는 전송 스트림을 발생시킬지를 자유롭게 선택한다. 전송 스트림이 특정의 완벽 스플라이싱 특성을 충족시키는 것이 바람직하거나 필요한지는 전송 스트림을 스플라이싱하는 데 사용하기 위해 생각되는 스플라이서(또는 스플라이서들)의 특징에 의존한다. 아주 정교한 스플라이서는 전형적으로 보다 적은 완벽 스플라이싱 특성을 필요로 할 것인 반면, 아주 간단한 스플라이서는 보다 많은 완벽 스플라이싱 특성을 갖는 전송 스트림을 필요로 할 수 있다.
제1 부류에서의 일 실시예에 따라 발생되는 전송 스트림이 필수적인 완벽 스플라이싱 특성을 충족시키기 때문에, 스플라이서(예컨대, 도 3의 스플라이서(7))는 전송 스트림의 임의의 프로그램의 어떤 오디오 기본 스트림도 수정함이 없이 전송 스트림을 매끄럽게 스플라이싱할 수 있다. 그렇지만, 스플라이서는 매끄러운 스플라이싱을 수행하기 위해 전송 스트림의 재다중화(re-multiplexing) 또는 다른 수정을 수행할 필요가 있을 수 있다(예컨대, 스플라이싱된 전송 스트림을 발생시키기 위해, 오디오 기본 스트림을 포함하는 패킷 시퀀스가 전송 스트림의 다른 패킷들과 재다중화될 필요가 있을 수 있다). 스플라이서는 또한 스플라이싱된 전송 스트림을 수신하는 수신기(예컨대, 후단의 디코더)의 버퍼의 언더플로우 또는 오버플로우를 방지하는 방식으로 스플라이싱을 수행할 필요가 있을 수 있다. (앞서 정의된 필수적인 완벽 스플라이싱 특성에 부가하여) 하나 이상의 부가의 완벽 스플라이싱 특성을 갖게 스플라이싱되도록 각각의 전송 스트림을 발생시키는 것에 의해 스플라이서의 작업이 단순화될 수 있다. 이와 같이, 일부 실시예에서, 본 발명은 필수적인 완벽 스플라이싱 특성을 충족시키는 그리고 또한 이하의 부가의 완벽 스플라이싱 특성들 중 적어도 하나를 충족시키는 전송 스트림(예컨대, MPEG-2 전송 스트림)을 발생시키는 방법이다:
1. A/V I-프레임의 PES 정렬. 전송 스트림의 각각의 프로그램에 대해, 프로그램의 비디오 기본 스트림에서의 각각의 비디오 I-프레임이 프로그램의 인코딩된 오디오 I-프레임과 PES 패킷 정렬되어 있다면(즉, 인코딩된 오디오 I-프레임의 첫 번째 바이트가 새로운 PES(Packetized Elementary Stream) 패킷의 시작에 있고, 비디오 I-프레임의 첫 번째 바이트가 새로운 PES 패킷의 시작에 있으면), 전송 스트림이 이 특성을 갖는다. 프로그램의 후속하는 인코딩된 오디오 프레임은, 다음의 정합하는 I-프레임의 시작 때까지, PES 패킷 정렬될 필요가 없다. PES(Packetized Elementary Stream) 패킷의 예가 도 2를 참조하여 기술되고, MPEG-2 전송 스트림 포맷의 상기 설명은 MPEG-2 전송 스트림의 PES 패킷을 언급하고 있으며, 각각의 PES 패킷이 전형적으로 MPEG-2 전송 스트림에 포함되는 TS 패킷의 시퀀스에 캡슐화된다는 것에 유의한다. 이러한 TS 패킷의 예시적인 시퀀스가 도 2의 중간 줄에 도시되어 있다;
2. A/V I-프레임 쌍 PTS 값 일치. 전송 스트림의 각각의 프로그램에 대해, 각각의 비디오 I-프레임에 대해, (필수적인 완벽 스플라이싱 특성의 I-프레임 동기화 요건에 규정된 바와 같이, 여기서 하나의 상기 비디오 I-프레임 및 비디오 I-프레임과 정합하는 오디오 I-프레임을 포함하는 각각의 I-프레임 쌍이 본원에서 때때로 "A/V I-프레임 쌍"이라고 지칭됨) 적어도 하나의 정합하는 오디오 I-프레임이 있고, 각각의 A/V I-프레임 쌍의 I-프레임들이 일치하는(예컨대, 동일한) PTS(presentation time stamp) 값을 갖는다면, 전송 스트림이 이 특성을 갖는다. MPEG-2 전송 스트림 포맷의 상기 설명은 종래의 MPEG-2 전송 스트림의 PTS 값을 언급하고 있으며, (PES 패킷이 나타내는) 오디오 또는 비디오 프레임을 구성하는 모든 TS 패킷이 동일한 PTS 타임 스탬프 값을 갖는다는 것에 유의한다;
3. 고정 하이퍼프레임 비트 레이트. 본원에서, "하이퍼프레임"이라는 용어는 (전송 스트림의 프로그램의) A/V I-프레임 쌍의 오디오 I-프레임으로 시작하고 (프로그램의) 다음 A/V I-프레임 쌍 직전의 오디오 프레임으로 끝나는 오디오 프레임 시퀀스를 가리킨다. 전송 스트림의 각각의 프로그램에 대해, 모든 하이퍼프레임에 대한 평균 비트 레이트가 일정하면, 전송 스트림은 "고정 하이퍼프레임 비트 레이트" 완벽 스플라이싱 특성을 갖는다. 유의할 점은, CBR(constant bit rate)가 "고정 하이퍼프레임 비트 레이트" 특성의 특수한 경우라는 것과, "고정 하이퍼프레임 비트 레이트" 특성이 똑같은 인코딩된 오디오 비트 레이트를 갖는 스트림들이 함께 스플라이싱될 때 스플라이싱 이후 수신기 버퍼(들)가 오버플로우 또는 언더플로우하지 않도록 보장해준다는 것이다;
4. 전송 스트림에서의 데이터 정렬. 전송 스트림의 각각의 프로그램에 대해, A/V I-프레임 쌍 및 다음 A/V I-프레임 쌍까지 후속하는 A/V 프레임들을 포함하는 A/V 프레임 시퀀스가 함께 송신되도록 전송 스트림 내에 다중화되면(즉, 전송 스트림의 단일의 연속적인 세그먼트에 있도록 시간 다중화되면), 전송 스트림은 "전송 스트림에서의 데이터 정렬" 완벽 스플라이싱 특성을 갖는다;
5. 전송 스트림에서의 보호 대역. 전송 스트림의 각각의 프로그램에 대해, 프로그램의 각각의 A/V I-프레임 쌍에 대해, 상기 A/V I-프레임 쌍의 비디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되기 전에 상기 A/V I-프레임 쌍의 인코딩된 오디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되지 않으면, 전송 스트림은 "전송 스트림에서의 보호 대역" 완벽 스플라이싱 특성을 갖는다. 또한, 프로그램의 각각의 A/V I-프레임 쌍 직전에 있는 오디오 프레임에 대해, A/V I-프레임 쌍에 선행하는 마지막 비디오 데이터 전송 스트림 패킷의 송신 이전에 상기 오디오 프레임에 대한 모든 오디오 데이터 전송 스트림 패킷이 송신된다. 이러한 보호 대역의 중요한 이점은 어디에서 스플라이싱할지를 결정하기 위해 비디오만을 쳐다보도록 구현되는 전송 스트림 스플라이서가 어떤 오디오 프레임도 결코 손상시키지 않도록 보장하는 것이다; 그리고
6. 전송 스트림에 표시된 스플라이스 지점. 전송 스트림이 전송 스트림에서의 (예컨대, ISO/IEC 13818-1의 부록 A에 기술된 바와 같이) 적당한 스플라이스 지점을 명시적으로 나타내는 메타데이터를 포함하고 메타데이터가 적당한 A/V I-프레임 쌍 직전에 있는 스플라이스 지점만을 나타내면, 전송 스트림은 "전송 스트림에 표시된 스플라이스 지점" 완벽 스플라이싱 특성을 갖는다. 이러한 표시된 스플라이스 지점은 전송 스트림에서의 잠재적인 매끄러운 스플라이스 지점이다. 임의로, 비디오의 포맷은 매끄러운 스플라이스 지점에 대한 추가 요건을 암시할 수 있고(예컨대, 전송 스트림을 발생시키는 데 사용되는 비디오 인코딩의 포맷에 따라, 모든 비디오 I-프레임이 매끄러운 스플라이스 지점으로서 적당한 것은 아닐 수 있음), 메타데이터는 (적당한 스플라이스 지점으로서) 적당한 A/V I-프레임 쌍 직전에 있고 이러한 추가 요건도 충족시키는 스플라이스 지점만을 나타낸다.
제1 부류의 실시예에서의 일부 실시예에 따라 (예컨대, 도 3의 유닛(3)에 의해) 발생되는 전송 스트림(예컨대, MPEG-2 전송 스트림)은 전송 스트림(또는 전송 스트림이 나타내는 프로그램)이 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터("스플라이싱 메타데이터")(예컨대, 전송 스트림 또는 프로그램이 필수적인 완벽 스플라이싱 특성 및 적어도 하나의 다른 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터)를 포함한다. 예를 들어, 이러한 스플라이싱 메타데이터는 본 발명의 제2 부류의 실시예를 참조하여 기술된 스플라이싱 메타데이터의 특정 예들 중 임의의 것을 포함하거나 그로 이루어져 있을 수 있다.
도 1은 3 개의 스플라이스 지점 - 각각이 상이한 전송 스트림에 있음 - 의 다이어그램이다. 각각의 전송 스트림은 상이한 TS 패킷 시퀀스 - "A"로 표시된 인코딩된 오디오 데이터를 포함하는 그 TS 패킷 및 "V"로 표시된 비디오 데이터를 포함하는 그 TS 패킷을 가짐 - 를 포함한다. 도 1의 예에서, 메모리가 거의 없고 스플라이싱될 전송 스트림 내의 오디오에 대해 어떤 인코딩(예컨대, AC-4)이 수행되었는지를 알지 못하는 간단한 구현을 가지는 스플라이서에 의해 처리가 행해지는 것으로 가정된다. 동작 중에, 이 스플라이서는 어느 한 비디오 프레임이 끝났지만 다음 비디오 프레임이 아직 시작되지 않은 비디오 스트림에서의 위치를 찾아내는 것(그리고 이러한 지점을 잠재적 스플라이스 지점으로 간주하는 것)에 의해 잠재적 스플라이스 지점을 결정할 것이다.
도 1의 예를 참조하면, 도 1에서 3 개의 전송 스트림 중 하단의 전송 스트림은 앞서 기술된 "전송 스트림에서의 보호 대역" 완벽 스플라이싱 특성을 갖지만, 도 1에서 상단 2개의 전송 스트림 각각은 이러한 "전송 스트림에서의 보호 대역" 완벽 스플라이싱 특성을 갖지 않는다. 도 1의 전송 스트림들 각각에서, 스플라이스 지점 이전의(즉, 도 1에서 스플라이스 지점의 좌측에 있는) 각각의 비디오 TS는 A/V I-프레임 쌍 번호 "n"의 TS 패킷이고, 스플라이스 지점 이후의(즉, 도 1에서 스플라이스 지점의 우측에 있는) 각각의 비디오 TS는 다음 A/V I-프레임 쌍(A/V I-프레임 쌍 번호 "n+1")의 TS 패킷이다. 스플라이서는 전송 스트림들 중 임의의 것에서의 오디오에 대해 어떤 인코딩이 수행되었는지를 알지 못한다.
("전송 스트림에서의 보호 대역" 완벽 스플라이싱 특성을 충족시키지 않는) 도 1의 상단 2개의 전송 스트림들 중 어느 하나를 스플라이싱할 때, 스플라이서는 비디오 프레임 옆에 있는 오디오 프레임의 중간에서 스플라이싱할 수 있고(스플라이서가 비디오 프레임의 시작 또는 끝을 잠재적 스플라이스 지점으로서 식별함), 이는 오디오 프레임을 손상시킨다. 스플라이싱이 오디오 프레임을 손상시키지 않더라도, 이는 다른 문제를 야기할 수 있다. 예를 들어, 도 1의 상단 전송 스트림에서, 느낌표 위쪽의 오디오 TS 패킷(스플라이스 지점 이후의 첫 번째 오디오 TS 패킷)이 그에 선행하는 비디오 TS 패킷의 비디오 프레임에 대응하는 것으로(즉, 2개의 TS 패킷이 동시에 제시되어야 하고 분리할 수 없는 단위로서 취급되어야 하는 것으로) 가정한다. 이 경우에, (도 1의 상단 전송 스트림에서) 표시된 스플라이스 지점에서의 스플라이싱은 바람직하지 않게도 오디오 패킷을 스플라이스 지점에 선행하는 스플라이싱된 스트림으로부터 누락되게 할 것이라는 점에서 잘못일 것이다.
이와 유사하게, 도 1의 중간 전송 스트림에서, 느낌표 위쪽의 오디오 TS 패킷(스플라이스 지점 이전의 마지막 오디오 TS 패킷)이 그에 뒤따르는 비디오 TS 패킷의 비디오 프레임에 대응하는 것으로(즉, 2개의 TS 패킷이 동시에 제시되어야 하고 분리할 수 없는 단위로서 취급되어야 하는 것으로) 가정한다. 이 경우에, (도 1의 중간 전송 스트림에서) 중간 전송 스트림에서 표시된 스플라이스 지점에서의 스플라이싱은 오디오 패킷을 스플라이스 지점에 뒤따르는 스플라이싱된 스트림으로부터 누락되게 할 것이라는 점에서 잘못일 것이다.
도 1의 하단 전송 스트림에서, 스플라이서는 스플라이스 지점을 2개의 비디오 프레임 사이에 오도록 선택하고, 오디오가 그 잠재적 스플라이스 지점으로부터 멀리 떨어져 있도록 전송 스트림에 다중화되기 때문에, (스플라이서가 어떤 오디오 데이터가 각각의 비디오 프레임에 대응하는지를 알지 못하더라도) 이 지점에서의 스플라이싱이 오디오를 결코 손상시킬 수 없다.
도 2는 앞서 정의된 필수적인 완벽 스플라이싱 특성 및 이상에서 열거되고 정의된 6 개의 부가의 완벽 스플라이싱 특성들 중 처음 5개("A/V I-프레임의 PES 정렬", "A/V I-프레임 쌍 PTS 값 일치", "고정 하이퍼프레임 비트 레이트", "전송 스트림에서의 데이터 정렬", 및 "전송 스트림에서의 보호 대역")을 갖는 MPEG-2 전송 스트림의 일 예의 다이어그램이다. 도 2의 MPEG-2 전송 스트림을 발생시키기 위해, 오디오 프레임이 PES 패킷(도 2의 상단 줄에 확대된 버전으로 도시됨)에 패키징되고, 비디오 프레임이 PES 패킷(도 2의 하단 줄에 확대된 버전으로 도시됨)에 패키징된다. 오디오 프레임을 나타내는 PES 패킷들 각각은 PTS 값 0, 3600, 7200, 10800, 14400, 및 18000 중의 상이한 값을 가지며, 비디오 프레임을 나타내는 PES 패킷들 각각은 PTS 값 0, 3600, 7200, 10800, 14400, 및 18000 중의 상이한 값을 가진다.
각각의 PES 패킷은 전송 스트림(TS) 패킷 세트로서 패키징되고, MPEG-2 전송 스트림은 (도 2의 중간 줄에 도시된) 표시된 TS 패킷 시퀀스를 포함한다. 전송 스트림을 처리하는 전송 스트림 스플라이서는 어쩌면 바(S1 및 S2)로 표시된 위치 - 각각의 위치가 비디오 I-프레임 직전에 있음 - 에서 스플라이싱할 수 있고, 따라서 오디오를 방해받지 않게 둔다. 예를 단순화하기 위해, 도 2에 표시된 모든 프레임이 (PES 패킷 정렬이 필요하지 않은, I-프레임들 사이에서도) PES 패킷 정렬되어 있다.
제2 부류의 실시예에서, 본 발명은, 적어도 하나의 오디오/비디오 프로그램("프로그램")을 나타내고 프로그램이 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터("스플라이싱 메타데이터")(예컨대, 프로그램이 필수적인 완벽 스플라이싱 특성 및/또는 적어도 하나의 다른 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터)를 포함하는, 전송 스트림(예컨대, MPEG-2 전송 스트림)을 (예컨대, 도 3의 유닛(3)에서) 발생시키는 방법이다. 전송 스트림이 적어도 2개의 프로그램을 나타내면, 스플라이싱 메타데이터는 프로그램들 각각이 완벽 스플라이싱 특성을 갖는지(예컨대, 프로그램들 중 각각의 개별 프로그램이 완벽 스플라이싱 특성을 갖는지 여부)를 나타낼 수 있다. 스플라이싱 메타데이터는 전송 스트림이 나타내는 모든 프로그램을 일괄하여 나타낼 수 있거나(즉, 그에 관한 것임), 전송 스트림이 나타내는 각각의 개별 프로그램(또는 모든 프로그램들의 부분집합)을 특정하여 나타낼 수 있다.
제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림의 스플라이싱 메타데이터는 전송 스트림이 나타내는 적어도 하나의 프로그램(예컨대, 각각의 프로그램)이 "필수적인" 완벽 스플라이싱 특성(제1 부류의 실시예를 참조하여 앞서 정의됨)을 갖는지 그리고/또는 전송 스트림이 나타내는 적어도 하나의 프로그램이 (제1 부류의 실시예를 참조하여 앞서 정의된 임의의 유형들 중) 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖는지를 나타낼 수 있다.
제2 부류의 실시예를 참조하면, 전송 스트림이 나타내는 프로그램이 완벽 스플라이싱 특성을 "갖는다"(즉, 충족시킨다)는 표현은 프로그램을 나타내는 전송 스트림의 데이터(예컨대, 프로그램의 적어도 하나의 비디오 기본 스트림을 결정하는, 비디오 데이터의 I-프레임들을 포함하는, 비디오 데이터의 프레임들 및 프로그램의 적어도 하나의 오디오 기본 스트림을 결정하는, 인코딩된 오디오 데이터의 I-프레임들을 포함하는, 인코딩된 오디오 데이터의 프레임들)가 완벽 스플라이싱 특성을 갖는다는 것을 가리킨다(예컨대, 적어도 하나의 다른 프로그램을 나타내는 전송 스트림의 다른 데이터는 완벽 스플라이싱 특성을 갖지 않을 수 있음).
제2 부류에서의 전형적인 실시예에 따라 발생되는 전송 스트림은 (전송 스트림이 나타내는 각각의 프로그램에 대해) (프로그램에 대한 적어도 하나의 비디오 기본 스트림을 결정하는) 비디오 데이터의 프레임들 및 (프로그램에 대한 적어도 하나의 오디오 기본 스트림을 결정하는) 인코딩된 오디오 데이터의 프레임들을 포함한다. 비디오 데이터의 프레임들(예컨대, 도 2의 비디오 프레임 #1, 비디오 프레임 #2, 비디오 프레임 #3, 비디오 프레임 #4, 비디오 프레임 #5, 및 비디오 프레임 #6)은 비디오 데이터의 I-프레임(예컨대, 도 2의 비디오 I-프레임 #1 및 비디오 I-프레임 #5)을 포함하고, 인코딩된 오디오 데이터의 프레임들(예컨대, 도 2의 AC-4 프레임 #1, AC-4 프레임 #2, AC-4 프레임 #3, AC-4 프레임 #4, AC-4 프레임 #5, 및 AC-4 프레임 #6으로서 나타낸 오디오 프레임들)은 인코딩된 오디오 데이터의 I-프레임(예컨대, 도 2의 오디오 I-프레임 AC-4 프레임 #1, 오디오 I-프레임 AC-4 프레임 #3, 및 오디오 I-프레임 AC-4 프레임 #5)을 포함하며,
전송 스트림의 프로그램을 나타내는 (제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림에서의) 데이터는 앞서 정의된 필수적인 완벽 스플라이싱 특성을 가질 수 있고, 또한 앞서 기술된 부가의 완벽 스플라이싱 특성들 중 하나 이상을 가질 수 있다. 적어도 하나의 이러한 부가의 완벽 스플라이싱 특성을 충족시키는 (프로그램을 나타내는) 데이터를 발생시키는 옵션은 전송 스트림 제작자가 어느 완벽 스플라이싱 특성 또는 특성들이 충족되어야 하는지를 선택할 수 있게 한다. 보다 많은 완벽 스플라이싱 특성을 충족시키는 것은 전형적으로 전송 스트림 발생에 대한 보다 많은 오버헤드를 필요로 하지만, 보다 간단한 스플라이서 구현을 가능하게 한다.
(전송 스트림이 나타내는 프로그램이 적어도 하나의 완벽 스플라이싱 특성 각각을 충족시키는지를 나타내는) 스플라이싱 메타데이터를 전송 스트림에 포함시키는 것은 스플라이서가 프로그램의 기본 스트림을 나타내는 (전송 스트림의) 데이터가 예상된 방식으로 스플라이싱(및 다른 방식으로 처리)될 수 있는지를 결정하기 위해 전송 스트림으로부터 이러한 메타데이터를 파싱할 수 있게 하고, 전송 스트림(또는 프로그램의 기본 스트림을 나타내는 전송 스트림의 데이터)이 그 스플라이서에 의해 지원되는 것에 부합하지 않으면 운영자에게 경고를 발행할 수 있게 한다.
적어도 2개의 프로그램을 나타낼 제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 프로그램들 각각에 대한 스플라이싱 메타데이터를 포함할 수 있다. 각각의 프로그램에 대한 스플라이싱 메타데이터는 프로그램이 적어도 하나의 완벽 스플라이싱 특성을 충족시키는지를 나타낼 수 있다. 예를 들어, 스플라이싱 메타데이터는 프로그램이 적어도 2개의 완벽 스플라이싱 특성 각각을 충족시키는지를 나타낼 수 있다.
살펴본 바와 같이, 전송 스트림은 다수의 프로그램을 나타낼 수 있다. 각각의 프로그램은 다수의 기본 스트림(예컨대, 비디오 기본 스트림, 및 하나 이상의 인코딩된 오디오 기본 스트림)을 포함할 수 있다. 전형적으로, 각각의 기본 스트림은 기본 스트림을 특징지우거나 다른 방식으로 그에 관련된 정보를 포함하는 연관된 기술자(때때로 본원에서 "기본 스트림 기술자"라고 지칭됨)를 갖는다. 각각의 기본 스트림의 기술자를 분석하는 것에 의해, 스플라이서는 전송 스트림(또는 그의 프로그램)이 스플라이서가 필요로 하는 특성을 갖는지를 결정할 수 있다(그리고 예상된 특성들 중 일부가 충족되지 않는 경우에 경고 또는 오류를 임의로 발행할 수 있다). 본 발명의 전형적인 실시예에 따른 전송 스트림에 포함되는 스플라이싱 메타데이터는 전송 스트림의 기본 스트림 기술자에 포함될 수 있다(그리고 기본 스트림을 포함하는 프로그램의 각각의 완벽 스플라이싱 특성을 나타낼 수 있다). 대안적으로, 스플라이싱 메타데이터가 전송 스트림의 다른 부분(세그먼트)에 포함될 수 있다(그리고 전송 스트림의 모든 프로그램을 일괄하여 나타내거나, 전송 스트림의 각각의 프로그램을 개별적으로 나타낼 수 있다).
전형적인 실시예에서, 전송 스트림의 각각의 완벽 스플라이싱 특성은 전송 스트림이 나타내는 프로그램의 기본 스트림(들)에 관한 것이고, 전송 스트림은 전송 스트림의 각각의 프로그램에 대한 스플라이싱 메타데이터를 포함하며, 각각의 프로그램에 대한 스플라이싱 메타데이터는 프로그램의 기본 스트림(들)에 의해 충족되는 각각의 완벽 스플라이싱 특성을 나타낸다. 예를 들어, 제2 부류에서의 일 실시예에 따라 발생되는 전송 스트림은 하나의 비디오 기본 스트림 및 2개의 오디오 기본 스트림을 갖는 프로그램을 포함할 수 있다(즉, 프로그램을 나타내는 데이터를 포함할 수 있다). 이 예에서, 프로그램을 결정하는 전송 스트림의 데이터는 완벽 스플라이싱 특성을 가질 수 있고, 전송 스트림은 프로그램의 기본 스트림들에 의해 충족되는 완벽 스플라이싱 특성을 나타내는 (프로그램에 대한) 스플라이싱 메타데이터를 포함할 수 있다.
제2 부류에서의 실시예에 따라 발생되는 전송 스트림에 포함되는 스플라이싱 메타데이터의 예를 이어서 기술한다. 이러한 전송 스트림에 포함되는 스플라이싱 메타데이터는 하기 중 전부 또는 일부를 포함할 수 있다(또는 그들로 이루어져 있을 수 있다):
전송 스트림의 적어도 하나의 프로그램(즉, 각각의 상기 프로그램을 나타내는 전송 스트림의 데이터)이 비디오 및 인코딩된 오디오에 대한 동일한 프레임 레이트의 특성을 충족시키는지를 나타내는 메타데이터(예를 들어, 동일한 프레임 레이트 특성이 충족되면 전송 스트림의 기술자에서의 framerate _match 비트가 ("1" 값으로) 세트된다. 그렇지 않으면, 이러한 비트가 ("0" 값으로서) 세트되지 않은 채로 있다);
전송 스트림의 적어도 하나의 프로그램이 I-프레임 동기화 특성을 충족시키는지를 나타내는 메타데이터(예를 들어, I-프레임 동기화 특성이 충족되면 전송 스트림의 기술자에서의 iframes _ synced 비트가 ("1" 값으로) 세트된다. 그렇지 않으면, 이러한 비트가 ("0" 값으로서) 세트되지 않은 채로 있다);
전송 스트림의 적어도 하나의 프로그램이 "A/V I-프레임의 PES 정렬" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, iframes_pes_aligned 비트)일 수 있다. 이러한 iframes_pes_aligned 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다;
전송 스트림의 적어도 하나의 프로그램이 "A/V I-프레임 쌍 PTS 값 일치" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, iframes_pts_match 비트)일 수 있다. 이러한 iframes_pts_match 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 세트되지 않은 채로 있을 것이다;
전송 스트림의 적어도 하나의 프로그램이 "고정 하이퍼프레임 비트 레이트" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, constant_hyperframe_bitrate 비트)일 수 있다. 이러한 constant_hyperframe_bitrate 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다;
전송 스트림의 적어도 하나의 프로그램이 "전송 스트림에서의 데이터 정렬" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, avdata_aligned 비트)일 수 있다. 이러한 avdata_aligned 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다;
전송 스트림의 적어도 하나의 프로그램이 "전송 스트림에서의 보호 대역" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, guardband 비트)일 수 있다. 이러한 guardband 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다; 그리고/또는
전송 스트림의 적어도 하나의 프로그램이 "전송 스트림에 표시된 스플라이스 지점" 완벽 스플라이싱 특성을 충족시키는지를 나타내는 메타데이터. 예를 들어, 스플라이싱 메타데이터는 그 특성을 충족시키는 전송 스트림의 각각의 프로그램에 대한 전송 스트림의 기술자에서의 비트(즉, splicemarkers 비트)일 수 있다. 이러한 splicemarkers 비트는, 그 특성이 프로그램에 대해 충족되면, ("1" 값으로) 세트될 것이다. 그렇지 않으면, 그 비트가 ("0" 값으로서) 세트되지 않은 채로 있을 것이다.
프로그램에 대한 스플라이싱 메타데이터가 framerate_match 비트 및 iframes_synced 비트를 포함하는 상기 예에서, 이러한 비트 둘 다가 세트되어 있으면(둘 다가 논리 값 "1"을 가지면), 스플라이싱 메타데이터는 (프로그램이 비디오 및 인코딩된 오디오에 대해 동일한 프레임 레이트를 갖고 I-프레임 동기화 특성을 충족시킨다는 점에서) 프로그램이 필수적인 완벽 스플라이싱 특성을 충족시킨다는 것을 나타낸다.
일부 실시예에서, 본 발명은 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 필수적인 완벽 스플라이싱 특성을 갖는 전송 스트림(예컨대, MPEG-2 전송 스트림)을 스플라이싱함으로써, 스플라이싱된 전송 스트림(예컨대, 이러한 스플라이싱 방법을 수행하도록 구성되는 도 3의 스플라이서(7)의 구현의 출력)을 발생시키는 방법이다(그렇지만, 어떤 경우에, 스플라이서는, 전송 스트림의 어떤 인코딩된 오디오 기본 스트림의 데이터의 수정도 포함하지 않는 방식으로, 전송 스트림의 재다중화 또는 다른 수정을 수행할 필요가 있을 수 있다). 임의로, 전송 스트림은 또한 앞서 기술된 부가의 완벽 스플라이싱 특성들 중 적어도 하나를 포함한다(예컨대, 스트림은 필수적인 완벽 스플라이싱 특성, 및 부가의 완벽 스플라이싱 특성들 모두를 가질 수 있다). 전송 스트림이 필수적인 완벽 스플라이싱 특성을 충족시키면, 전송 스트림에서의 오디오/비디오 동기화가 스플라이싱된 전송 스트림에서 유지되도록 스플라이싱이 수행된다.
일부 실시예에서, 본 발명은 제2 부류에서의 임의의 실시예에 따라, 스플라이싱 메타데이터를 포함하도록 발생된 전송 스트림(예컨대, MPEG-2 전송 스트림)을 스플라이싱하는 방법이다. 본 방법은 (a) 스플라이싱 메타데이터(예컨대, 전송 스트림의 기본 스트림 기술자에서의 스플라이싱 메타데이터)를 식별하기 위해 전송 스트림의 적어도 일부분을 (예컨대, 도 3의 스플라이서(7)에서) 파싱하는 단계; 및 (b) 스플라이싱 메타데이터가 전송 스트림의 적어도 세그먼트(예컨대, 전송 스트림 전체, 또는 전송 스트림이 나타내는 프로그램)가, 필수적인 완벽 스플라이싱 특성을 비롯한, 적어도 하나의 완벽 스플라이싱 특성을 가진다는 것을 나타낸다고 (예컨대, 도 3의 스플라이서(7)에서) 결정할 때, 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 전송 스트림을 스플라이싱함으로써, 스플라이싱된 전송 스트림(예컨대, 이러한 스플라이싱 방법을 수행하도록 구성되는 도 3의 스플라이서(7)의 구현의 출력)을 발생시키는 단계를 포함한다. 전송 스트림(또는 스플라이싱되는 그의 세그먼트)이 필수적인 완벽 스플라이싱 특성을 가지면, 단계 (b)는 전송 스트림에서의 오디오/비디오 동기화가 스플라이싱된 전송 스트림에서 유지되도록 수행된다.
도 3의 유닛(3 및 7) 각각은 하드웨어 시스템으로서 구현될 수 있다.
전형적으로, 도 3의 유닛(3)은 적어도 하나의 버퍼(3A)를 포함하고, 도 3의 유닛(3')은 적어도 하나의 버퍼(3A')를 포함하며, 도 3의 스플라이서(7)는 적어도 하나의 버퍼(7A 및/또는 7E)를 포함한다. 전형적으로, 버퍼(3A, 3A', 7A, 및 7E) 각각은 전송 스트림의 패킷 시퀀스를 수신하도록 결합된 버퍼 메모리이고, 동작 중에, 버퍼 메모리는 전송 스트림의 적어도 하나의 세그먼트를 (예컨대, 비일시적 방식으로) 저장한다. 유닛(3)(또는 3')의 전형적인 동작에서, 전송 스트림의 세그먼트 시퀀스가 버퍼(3A)로부터 전달 서브시스템(5)으로(또는 버퍼(3A')로부터 전달 서브시스템(5')으로) 어써트된다. 스플라이서(7)의 전형적인 동작에서, 스플라이싱될 전송 스트림의 세그먼트 시퀀스가 버퍼(7A)로부터 스플라이서(7)의 파싱 서브시스템(7B)으로 그리고 버퍼(7D)로부터 스플라이서(7)의 파싱 서브시스템(7E)으로 어써트된다.
도 3의 유닛(3) 및/또는 스플라이서(7)(또는 그의 임의의 구성요소 또는 요소)는 하나 이상의 프로세스 및/또는 하나 이상의 프로세서 회로(예컨대, ASIC, FPGA, 또는 다른 집적 회로)로서, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
본 발명의 다른 양태는 본 발명의 방법의 임의의 실시예(예컨대, 필수적인 완벽 스플라이싱 특성을 갖는 그리고/또는 스플라이싱 메타데이터를 포함하는 전송 스트림의 발생 또는 스플라이싱)를 수행하도록 구성된 처리 유닛(AVPU)이다. 예를 들어, AVPU는 본 발명의 전송 스트림 스플라이싱 방법의 임의의 실시예를 수행하도록 구성된 스플라이서(예컨대, 도 3의 스플라이서(7)의 적절히 구성된 실시예)일 수 있다. 다른 부류의 실시예에서, 본 발명은 본 발명의 방법의 임의의 실시예에 의해 발생된 전송 스트림(예컨대, 적어도 본원에 정의된 필수적인 완벽 스플라이싱 특성 및 임의로 또한 본원에 정의되는 임의의 유형의 적어도 하나의 부가의 완벽 스플라이싱 특성을 충족시키는 전송 스트림)의 적어도 하나의 세그먼트를 (예컨대, 비일시적 방식으로) 저장하는 적어도 하나의 버퍼 메모리(예컨대, 도 3의 유닛(3) 내의 버퍼(3A) 또는 도 3의 스플라이서(7)의 버퍼(7A 또는 7E))를 포함하는 AVPU(예컨대, 도 3의 유닛(3) 또는 스플라이서(7))이다. 버퍼에 저장된 세그먼트는 (본 발명의 방법의 임의의 실시예에 따라 전송 스트림에 포함된) 스플라이싱 메타데이터를 포함할 수 있다. AVPU의 예는 인코더(트랜스코더), 디코더(예컨대, 전송 스트림의 콘텐츠를 디코딩하도록 그리고/또는 스플라이싱된 전송 스트림을 발생시키기 위해 스플라이싱을 수행하고 스플라이싱된 전송 스트림의 콘텐츠를 디코딩하도록 구성된 디코더), 코덱, 스플라이서, 전처리 시스템(전처리기(pre-processor)), 후처리 시스템(후처리기(post-processor)), 전송 스트림 처리 시스템, 및 이러한 요소들의 조합을 포함하지만, 이들로 제한되지 않는다.
본 발명의 양태는 본 발명의 방법의 임의의 실시예를 수행하도록 구성된(예컨대, 프로그램된) 시스템 또는 디바이스, 및 본 발명의 방법 또는 그의 단계들의 임의의 실시예를 구현하기 위한 코드를 (예컨대, 비일시적 방식으로) 저장하는 컴퓨터 판독 가능 매체(예컨대, 디스크)를 포함한다. 예를 들어, 본 발명의 시스템은, 본 발명의 방법의 일 실시예 또는 그의 단계들을 비롯한, 데이터에 대한 각종의 연산 중 임의의 것을 수행하도록 소프트웨어 또는 펌웨어로 프로그램된 그리고/또는 다른 방식으로 구성된 프로그램 가능 범용 프로세서, 디지털 신호 프로세서, 또는 마이크로프로세서일 수 있거나 이를 포함할 수 있다. 이러한 범용 프로세서는 입력 디바이스, 메모리, 및 그에 어써트된 데이터에 응답하여 본 발명의 방법의 일 실시예(또는 그의 단계들)를 수행하도록 프로그램된(그리고/또는 다른 방식으로 구성된) 처리 회로부를 포함하는 컴퓨터 시스템일 수 있거나 이를 포함할 수 있다.
본 발명의 실시예는 하드웨어, 펌웨어, 또는 소프트웨어, 또는 이들의 조합으로(예컨대, 프로그램 가능 논리 어레이로서) 구현될 수 있다. 예를 들어, 도 3의 유닛(3) 및/또는 스플라이서(7)는 적절히 프로그램된(또는 다른 방식으로 구성된) 하드웨어 또는 펌웨어로(예컨대, 프로그램된 범용 프로세서, 디지털 신호 프로세서, 또는 마이크로프로세서로서) 구현될 수 있다. 달리 언급하지 않는 한, 본 발명의 일부로서 포함된 알고리즘 또는 프로세스는 임의의 특정의 컴퓨터 또는 다른 장치에 본질적으로 관련되어 있지는 않다. 상세하게는, 다양한 범용 머신이 본원에서의 개시 내용에 따라 작성된 프로그램과 함께 사용될 수 있거나, 요구된 방법 단계를 수행하도록 보다 전문화된 장치(예컨대, 집적 회로)를 구성하는 것이 보다 편리할 수 있다. 이와 같이, 본 발명이 하나 이상의 프로그램 가능 컴퓨터 시스템(예컨대, 도 3의 유닛(3) 및/또는 스플라이서(7)의 요소들 중 전부 또는 일부의 구현) - 각각이 적어도 하나의 프로세서, 적어도 하나의 데이터 저장 시스템(휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함함), 적어도 하나의 입력 디바이스 또는 포트, 및 적어도 하나의 출력 디바이스 또는 포트를 포함함 - 상에서 실행되는 하나 이상의 컴퓨터 프로그램에서 구현될 수 있다. 본원에 기술되는 기능을 수행하고 출력 정보를 발생시키기 위해 프로그램 코드가 입력 데이터에 적용된다. 출력 정보가 공지된 방식으로 하나 이상의 출력 디바이스에 적용된다.
각각의 이러한 프로그램은 컴퓨터 시스템과 통신하기 위해 임의의 원하는 컴퓨터 언어(기계어, 어셈블리어, 또는 고수준 절차적, 논리적 또는 객체 지향 프로그래밍 언어를 포함함)로 구현될 수 있다. 어느 경우든지, 이 언어는 컴파일되거나 인터프리트되는 언어일 수 있다.
예를 들어, 컴퓨터 소프트웨어 명령어 시퀀스에 의해 구현될 때, 본 발명의 실시예의 다양한 기능 및 단계가 적당한 디지털 신호 처리 하드웨어에서 실행되는 멀티스레드 방식 소프트웨어 명령어 시퀀스에 의해 구현될 수 있고, 이 경우에 실시예의 다양한 디바이스, 단계, 및 기능은 소프트웨어 명령어의 일부분에 대응할 수 있다.
각각의 이러한 컴퓨터 프로그램은 바람직하게는, 저장 매체 또는 디바이스가 본원에 기술되는 절차를 수행하기 위해 컴퓨터 시스템에 의해 판독될 때 컴퓨터를 구성하여 작동시키기 위해, 범용 또는 특수 목적 프로그램 가능 컴퓨터에 의해 판독 가능한 저장 매체 또는 디바이스(예컨대, 고상 메모리 또는 매체, 또는 자기 또는 광 매체) 상에 저장되거나 그에 다운로드된다. 본 발명의 시스템은 또한 컴퓨터 프로그램으로 구성된(즉, 컴퓨터 프로그램을 저장하는) 컴퓨터 판독 가능 저장 매체로서 구현될 수 있고, 여기서 그렇게 구성된 저장 매체는 컴퓨터 시스템으로 하여금 본원에 기술되는 기능을 수행하기 위해 특정의 그리고 미리 정의된 방식으로 동작하게 한다.
본 발명의 다수의 실시예가 기술되어 있다. 본 발명의 사상 및 범주를 벗어남이 없이 다양한 수정이 행해질 수 있다는 것을 잘 알 것이다. 이상의 개시 내용을 바탕으로 본 발명의 많은 수정 및 변형이 가능하다. 첨부된 청구범위의 범주 내에서, 본 발명이 본원에 구체적으로 기술된 것과 다른 방식으로 실시될 수 있다는 것을 잘 알 것이다.

Claims (73)

  1. 전송 스트림을 발생시키는 방법으로서,
    (a) 적어도 하나의 오디오/비디오 프로그램을 나타내는 인코딩된 오디오 데이터 및 비디오 데이터를 제공하는 단계 - 각각의 상기 프로그램에 대해, 상기 프로그램을 나타내는 상기 인코딩된 오디오 데이터 및 비디오 데이터는 적어도 하나의 비디오 기본 스트림(video elementary stream)을 결정하는 비디오 데이터의 프레임들 및 적어도 하나의 오디오 기본 스트림(audio elementary stream)을 결정하는 인코딩된 오디오 데이터의 프레임들을 포함하고, 상기 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하고, 상기 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함함 -; 및
    (b) 상기 전송 스트림이 필수적인 완벽 스플라이싱 특성(essential perfect splicing property)을 갖도록 상기 인코딩된 오디오 데이터 및 상기 비디오 데이터를 상기 전송 스트림에 포함시키는 단계
    를 포함하고, 상기 필수적인 완벽 스플라이싱 특성은:
    상기 전송 스트림이 나타내는 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 전송 스트림이 나타내는 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것인, 방법.
  2. 제1항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  3. 제2항에 있어서, 상기 인코딩된 오디오 데이터는 AC-4 포맷을 갖는 압축된 오디오 데이터인, 방법.
  4. 제1항에 있어서, 단계 (b)가 상기 전송 스트림이 또한 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖도록 수행되는, 방법.
  5. 제4항에 있어서, 각각의 상기 비디오 기본 스트림 및 각각의 상기 오디오 기본 스트림이 패킷화된 기본 스트림(packetized elementary stream)("PES") 패킷들로 패킷화되고, 상기 부가의 완벽 스플라이싱 특성은:
    상기 전송 스트림의 각각의 프로그램에 대해, 상기 프로그램의 비디오 기본 스트림 내의 각각의 비디오 I-프레임이 상기 프로그램의 인코딩된 오디오 I-프레임과 PES 패킷 정렬(PES packet aligned)되어 있는 것인, 방법.
  6. 제5항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  7. 제4항에 있어서, 상기 부가의 완벽 스플라이싱 특성은:
    상기 전송 스트림의 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 I-프레임에 대해, 적어도 하나의 정합하는 오디오 I-프레임이 있는 것이고, 하나의 상기 비디오 I-프레임 및 상기 비디오 I-프레임과 정합하는 오디오 I-프레임을 포함하는 각각의 I-프레임 쌍은 A/V I-프레임 쌍이며, 각각의 상기 A/V I-프레임 쌍의 I-프레임들은 일치하는 제시 타임 스탬프(presentation time stamp)(PTS) 값들을 갖는, 방법.
  8. 제7항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  9. 제7항에 있어서, 상기 부가의 완벽 스플라이싱 특성은:
    상기 전송 스트림의 각각의 프로그램에 대해, 상기 프로그램의 모든 하이퍼프레임(hyperframe)에 대한 평균 비트 레이트가 일정한 것이고, 각각의 상기 하이퍼프레임은 상기 프로그램의 A/V I-프레임 쌍의 오디오 I-프레임으로 시작하고 상기 프로그램의 다음 A/V I-프레임 쌍 직전의 오디오 프레임으로 끝나는 오디오 프레임 시퀀스(a sequence of audio frames)인, 방법.
  10. 제9항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  11. 제7항에 있어서, 상기 부가의 완벽 스플라이싱 특성은:
    상기 전송 스트림의 각각의 프로그램에 대해, 상기 프로그램의 A/V I-프레임 쌍 및 상기 프로그램의 다음 A/V I-프레임 쌍까지 후속하는 A/V 프레임들을 포함하는 각각의 A/V 프레임 시퀀스가 상기 전송 스트림의 단일의 연속적인 세그먼트에 있도록 시간 다중화되는 것인, 방법.
  12. 제11항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  13. 제7항에 있어서, 상기 부가의 완벽 스플라이싱 특성은:
    상기 전송 스트림의 각각의 프로그램에 대해, 상기 프로그램의 각각의 A/V I-프레임 쌍에 대해, 상기 A/V I-프레임 쌍의 비디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되기 전에 상기 A/V I-프레임 쌍의 인코딩된 오디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되지 않는 것, 및 상기 프로그램의 각각의 A/V I-프레임 쌍 직전에 있는 오디오 프레임에 대해, 상기 A/V I-프레임 쌍에 선행하는 마지막 비디오 데이터 전송 스트림 패킷의 송신 이전에 상기 오디오 프레임에 대한 모든 오디오 데이터 전송 스트림 패킷들이 송신되는 것인, 방법.
  14. 제13항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  15. 제7항에 있어서, 상기 전송 스트림에서의 적당한 스플라이스 지점(splice point)들을 명시적으로 나타내는 메타데이터를 상기 전송 스트림에 포함시키는 단계를 또한 포함하고, 상기 메타데이터는 적당한 A/V I-프레임 쌍들 직전에 있는 스플라이스 지점들만을 나타내는, 방법.
  16. 제15항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  17. 제1항에 있어서, 상기 전송 스트림 또는 상기 전송 스트림이 나타내는 프로그램이 적어도 하나의 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터를 상기 전송 스트림에 포함시키는 단계를 또한 포함하는, 방법.
  18. 전송 스트림을 발생시키는 방법으로서,
    (a) 적어도 하나의 오디오/비디오 프로그램을 나타내는 인코딩된 오디오 데이터 및 비디오 데이터를 제공하는 단계 - 각각의 상기 프로그램에 대해, 상기 프로그램을 나타내는 상기 인코딩된 오디오 데이터 및 비디오 데이터는 적어도 하나의 비디오 기본 스트림을 결정하는 비디오 데이터의 프레임들 및 적어도 하나의 오디오 기본 스트림을 결정하는 인코딩된 오디오 데이터의 프레임들을 포함하고, 상기 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하고, 상기 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함함 -; 및
    (b) 상기 인코딩된 오디오 데이터, 상기 비디오 데이터, 및 스플라이싱 메타데이터(splicing metadata)를 상기 전송 스트림에 포함시키는 단계
    를 포함하고, 상기 스플라이싱 메타데이터는 상기 전송 스트림 또는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 적어도 하나의 완벽 스플라이싱 특성을 갖는지를 나타내는, 방법.
  19. 제18항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 필수적인 완벽 스플라이싱 특성을 갖는지를 나타내고, 상기 필수적인 완벽 스플라이싱 특성은:
    상기 전송 스트림이 나타내는 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 전송 스트림이 나타내는 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것인, 방법.
  20. 제18항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  21. 제20항에 있어서, 상기 인코딩된 오디오 데이터는 AC-4 포맷을 갖는 압축된 오디오 데이터인, 방법.
  22. 제18항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 각각의 프로그램에 대한 스플라이싱 메타데이터를 포함하고, 상기 각각의 프로그램에 대한 상기 스플라이싱 메타데이터는 상기 프로그램의 기본 스트림들에 의해 충족되는 각각의 완벽 스플라이싱 특성을 나타내는, 방법.
  23. 제18항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 필수적인 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터로 이루어져 있거나 그를 포함하고, 각각의 상기 프로그램에 대한 상기 필수적인 완벽 스플라이싱 특성은:
    상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것인, 방법.
  24. 제23항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  25. 제18항에 있어서, 각각의 상기 비디오 기본 스트림 및 각각의 상기 오디오 기본 스트림이 패킷화된 기본 스트림("PES") 패킷들로 패킷화되고, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터로 이루어져 있거나 그를 포함하고, 각각의 상기 프로그램에 대한 상기 완벽 스플라이싱 특성은:
    상기 프로그램의 비디오 기본 스트림 내의 각각의 비디오 I-프레임이 상기 프로그램의 인코딩된 오디오 I-프레임과 PES 패킷 정렬되어 있는 것인, 방법.
  26. 제25항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  27. 제18항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터로 이루어져 있거나 그를 포함하고, 각각의 상기 프로그램에 대한 상기 완벽 스플라이싱 특성은:
    상기 프로그램의 각각의 비디오 I-프레임에 대해, 적어도 하나의 정합하는 오디오 I-프레임이 있는 것이고, 하나의 상기 비디오 I-프레임 및 상기 비디오 I-프레임과 정합하는 오디오 I-프레임을 포함하는 각각의 I-프레임 쌍은 A/V I-프레임 쌍이며, 각각의 상기 A/V I-프레임 쌍의 I-프레임들은 정합하는 제시 타임 스탬프(PTS) 값들을 갖는, 방법.
  28. 제27항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  29. 제27항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 부가의 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터를 포함하고, 상기 부가의 완벽 스플라이싱 특성은:
    상기 프로그램의 모든 하이퍼프레임에 대한 평균 비트 레이트가 일정한 것이고, 각각의 상기 하이퍼프레임은 상기 프로그램의 A/V I-프레임 쌍의 오디오 I-프레임으로 시작하고 상기 프로그램의 다음 A/V I-프레임 쌍 직전의 오디오 프레임으로 끝나는 오디오 프레임 시퀀스인, 방법.
  30. 제29항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  31. 제27항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 부가의 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터를 포함하고, 상기 부가의 완벽 스플라이싱 특성은:
    상기 프로그램의 A/V I-프레임 쌍 및 상기 프로그램의 다음 A/V I-프레임 쌍까지 후속하는 A/V 프레임들을 포함하는 각각의 A/V 프레임 시퀀스가 상기 전송 스트림의 단일의 연속적인 세그먼트에 있도록 시간 다중화되는 것인, 방법.
  32. 제31항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  33. 제27항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 부가의 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터를 포함하고, 상기 부가의 완벽 스플라이싱 특성은:
    상기 프로그램의 각각의 A/V I-프레임 쌍에 대해, 상기 A/V I-프레임 쌍의 비디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되기 전에 상기 A/V I-프레임 쌍의 인코딩된 오디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되지 않는 것, 및 상기 프로그램의 각각의 A/V I-프레임 쌍 직전에 있는 오디오 프레임에 대해, 상기 A/V I-프레임 쌍에 선행하는 마지막 비디오 데이터 전송 스트림 패킷의 송신 이전에 상기 오디오 프레임에 대한 모든 오디오 데이터 전송 스트림 패킷들이 송신되는 것인, 방법.
  34. 제33항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  35. 제27항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림에서의 적당한 스플라이스 지점들을 명시적으로 나타내는 스플라이스 지점 메타데이터를 포함하고, 상기 스플라이스 지점 메타데이터는 적당한 A/V I-프레임 쌍들 직전에 있는 스플라이스 지점들만을 나타내는, 방법.
  36. 제35항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  37. 전송 스트림 스플라이싱 방법으로서,
    (a) 필수적인 완벽 스플라이싱 특성을 갖는 전송 스트림을 제공하는 단계 - 상기 전송 스트림은 인코딩된 오디오 데이터 및 비디오 데이터를 나타내고, 상기 인코딩된 오디오 데이터 및 상기 비디오 데이터는 적어도 하나의 오디오/비디오 프로그램을 나타내며, 각각의 상기 프로그램에 대해, 상기 프로그램을 나타내는 상기 인코딩된 오디오 데이터 및 비디오 데이터는 적어도 하나의 비디오 기본 스트림을 결정하는 비디오 데이터의 프레임들 및 적어도 하나의 오디오 기본 스트림을 결정하는 인코딩된 오디오 데이터의 프레임들을 포함하고, 상기 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하며, 상기 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함하고, 상기 필수적인 완벽 스플라이싱 특성은:
    상기 전송 스트림이 나타내는 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 전송 스트림이 나타내는 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것임 -; 및
    (b) 상기 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 상기 전송 스트림을 스플라이싱함으로써 스플라이싱된 전송 스트림을 발생시키는 단계
    를 포함하는, 방법.
  38. 제37항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  39. 제38항에 있어서, 상기 인코딩된 오디오 데이터는 AC-4 포맷을 갖는 압축된 오디오 데이터인, 방법.
  40. 제37항에 있어서, 상기 전송 스트림은 또한 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖는, 방법.
  41. 전송 스트림 스플라이싱 방법으로서,
    (a) 전송 스트림의 적어도 일부분을 파싱(parsing)하는 단계 - 상기 전송 스트림은 인코딩된 오디오 데이터, 비디오 데이터, 및 스플라이싱 메타데이터를 나타내고, 상기 인코딩된 오디오 데이터 및 상기 비디오 데이터는 적어도 하나의 오디오/비디오 프로그램을 나타내며, 각각의 상기 프로그램에 대해, 상기 프로그램을 나타내는 상기 인코딩된 오디오 데이터 및 비디오 데이터는 적어도 하나의 비디오 기본 스트림을 결정하는 비디오 데이터의 프레임들 및 적어도 하나의 오디오 기본 스트림을 결정하는 인코딩된 오디오 데이터의 프레임들을 포함하고, 상기 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하며, 상기 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함하고, 상기 파싱하는 단계는 상기 스플라이싱 메타데이터를 식별해줌 -; 및
    (b) 상기 스플라이싱 메타데이터가 상기 전송 스트림의 적어도 세그먼트가, 필수적인 완벽 스플라이싱 특성을 비롯한, 적어도 하나의 완벽 스플라이싱 특성을 가진다는 것을 나타낸다고 결정할 때, 상기 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 상기 전송 스트림을 스플라이싱함으로써, 스플라이싱된 전송 스트림을 발생시키는 단계
    를 포함하는, 방법.
  42. 제41항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 필수적인 완벽 스플라이싱 특성을 갖는지를 나타내고, 상기 필수적인 완벽 스플라이싱 특성은:
    상기 적어도 하나의 프로그램의 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 적어도 하나의 프로그램의 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것인, 방법.
  43. 제42항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 방법.
  44. 제43항에 있어서, 상기 인코딩된 오디오 데이터는 AC-4 포맷을 갖는 압축된 오디오 데이터인, 방법.
  45. 제41항에 있어서, 단계 (b)는
    상기 스플라이싱 메타데이터가 상기 전송 스트림의 적어도 세그먼트가 상기 필수적인 완벽 스플라이싱 특성 및 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖는다는 것을 나타낸다고 결정할 때, 상기 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 상기 전송 스트림을 스플라이싱함으로써, 스플라이싱된 전송 스트림을 발생시키는 단계를 포함하는, 방법.
  46. 제41항에 있어서, 단계 (b)는
    상기 스플라이싱 메타데이터가 상기 전송 스트림이 상기 필수적인 완벽 스플라이싱 특성을 갖는다는 것을 나타낸다고 결정할 때, 상기 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 상기 전송 스트림을 스플라이싱함으로써, 스플라이싱된 전송 스트림을 발생시키는 단계를 포함하는, 방법.
  47. 전송 스트림을 발생시키는 시스템으로서,
    인코딩된 오디오 데이터를 발생시키기 위해 오디오 데이터를 인코딩하도록 결합되고 구성된 제1 서브시스템; 및
    비디오 데이터 및 상기 인코딩된 오디오 데이터에 응답하여, 상기 비디오 데이터 및 상기 인코딩된 오디오 데이터가 상기 전송 스트림이 필수적인 완벽 스플라이싱 특성을 갖는 방식으로 상기 전송 스트림에 포함되도록, 상기 전송 스트림을 발생시키도록 결합되고 구성된 제2 서브시스템
    을 포함하고, 상기 비디오 데이터 및 상기 인코딩된 오디오 데이터는 적어도 하나의 오디오/비디오 프로그램을 나타내며, 각각의 상기 프로그램에 대해, 상기 프로그램을 나타내는 상기 인코딩된 오디오 데이터 및 비디오 데이터는 적어도 하나의 비디오 기본 스트림을 결정하는 비디오 데이터의 프레임들 및 적어도 하나의 오디오 기본 스트림을 결정하는 인코딩된 오디오 데이터의 프레임들을 포함하고, 상기 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하며, 상기 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함하고, 상기 필수적인 완벽 스플라이싱 특성은:
    상기 전송 스트림이 나타내는 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 전송 스트림이 나타내는 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것인, 시스템.
  48. 제47항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 시스템.
  49. 제47항에 있어서, 상기 제1 서브시스템은, 상기 인코딩된 오디오 데이터가 AC-4 포맷을 갖는 압축된 오디오 데이터이도록, 상기 오디오 데이터를 인코딩하도록 구성되는, 시스템.
  50. 제47항에 있어서, 상기 제2 서브시스템은, 상기 전송 스트림이 또한 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖도록, 상기 전송 스트림을 발생시키도록 구성되는, 시스템.
  51. 전송 스트림을 발생시키는 시스템으로서,
    인코딩된 오디오 데이터를 발생시키기 위해 오디오 데이터를 인코딩하도록 결합되고 구성된 제1 서브시스템; 및
    상기 전송 스트림의 비디오 데이터 및 상기 인코딩된 오디오 데이터가 적어도 하나의 오디오/비디오 프로그램을 나타내도록 상기 비디오 데이터, 상기 인코딩된 오디오 데이터, 및 스플라이싱 메타데이터를 상기 전송 스트림에 포함시키는 것에 의한 것을 비롯하여, 상기 전송 스트림을 발생시키도록 결합되고 구성된 제2 서브시스템
    을 포함하고, 각각의 상기 프로그램에 대해, 상기 프로그램을 나타내는 상기 인코딩된 오디오 데이터 및 비디오 데이터는 적어도 하나의 비디오 기본 스트림을 결정하는 비디오 데이터의 프레임들 및 적어도 하나의 오디오 기본 스트림을 결정하는 인코딩된 오디오 데이터의 프레임들을 포함하고, 상기 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하며, 상기 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함하고, 상기 스플라이싱 메타데이터는 상기 전송 스트림 또는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 적어도 하나의 완벽 스플라이싱 특성을 갖는지를 나타내는, 시스템.
  52. 제51항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 시스템.
  53. 제51항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 각각의 프로그램에 대한 스플라이싱 메타데이터를 포함하고, 상기 각각의 프로그램에 대한 상기 스플라이싱 메타데이터는 상기 프로그램의 기본 스트림들에 의해 충족되는 각각의 완벽 스플라이싱 특성을 나타내는, 시스템.
  54. 제51항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 필수적인 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터로 이루어져 있거나 그를 포함하고, 각각의 상기 프로그램에 대한 상기 필수적인 완벽 스플라이싱 특성은:
    상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것인, 시스템.
  55. 제54항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 시스템.
  56. 제51항에 있어서, 상기 전송 스트림 내의 각각의 상기 비디오 기본 스트림 및 각각의 상기 오디오 기본 스트림이 패킷화된 기본 스트림("PES") 패킷들로 패킷화되고, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터로 이루어져 있거나 그를 포함하고, 각각의 상기 프로그램에 대한 상기 완벽 스플라이싱 특성은:
    상기 프로그램의 비디오 기본 스트림 내의 각각의 비디오 I-프레임이 상기 프로그램의 인코딩된 오디오 I-프레임과 PES 패킷 정렬되어 있는 것인, 시스템.
  57. 제51항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터로 이루어져 있거나 그를 포함하고, 각각의 상기 프로그램에 대한 상기 완벽 스플라이싱 특성은:
    상기 프로그램의 각각의 비디오 I-프레임에 대해, 적어도 하나의 정합하는 오디오 I-프레임이 있는 것이고, 하나의 상기 비디오 I-프레임 및 상기 비디오 I-프레임과 정합하는 오디오 I-프레임을 포함하는 각각의 I-프레임 쌍은 A/V I-프레임 쌍이며, 각각의 상기 A/V I-프레임 쌍의 I-프레임들은 정합하는 제시 타임 스탬프(PTS) 값들을 갖는, 시스템.
  58. 제57항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 시스템.
  59. 제57항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 부가의 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터를 포함하고, 상기 부가의 완벽 스플라이싱 특성은:
    상기 프로그램의 모든 하이퍼프레임에 대한 평균 비트 레이트가 일정한 것이고, 각각의 상기 하이퍼프레임은 상기 프로그램의 A/V I-프레임 쌍의 오디오 I-프레임으로 시작하고 상기 프로그램의 다음 A/V I-프레임 쌍 직전의 오디오 프레임으로 끝나는 오디오 프레임 시퀀스인, 시스템.
  60. 제57항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 부가의 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터를 포함하고, 상기 부가의 완벽 스플라이싱 특성은:
    상기 프로그램의 A/V I-프레임 쌍 및 상기 프로그램의 다음 A/V I-프레임 쌍까지 후속하는 A/V 프레임들을 포함하는 각각의 A/V 프레임 시퀀스가 상기 전송 스트림의 단일의 연속적인 세그먼트에 있도록 시간 다중화되는 것인, 시스템.
  61. 제57항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 부가의 완벽 스플라이싱 특성을 갖는지를 나타내는 메타데이터를 포함하고, 상기 부가의 완벽 스플라이싱 특성은:
    상기 프로그램의 각각의 A/V I-프레임 쌍에 대해, 상기 A/V I-프레임 쌍의 비디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되기 전에 상기 A/V I-프레임 쌍의 인코딩된 오디오 데이터를 담고 있는 전송 스트림 패킷들의 송신이 시작되지 않는 것, 및 상기 프로그램의 각각의 A/V I-프레임 쌍 직전에 있는 오디오 프레임에 대해, 상기 A/V I-프레임 쌍에 선행하는 마지막 비디오 데이터 전송 스트림 패킷의 송신 이전에 상기 오디오 프레임에 대한 모든 오디오 데이터 전송 스트림 패킷들이 송신되는 것인, 시스템.
  62. 제57항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림에서의 적당한 스플라이스 지점들을 명시적으로 나타내는 스플라이스 지점 메타데이터를 포함하고, 상기 스플라이스 지점 메타데이터는 적당한 A/V I-프레임 쌍들 직전에 있는 스플라이스 지점들만을 나타내는, 시스템.
  63. 전송 스트림 스플라이싱 시스템으로서,
    인코딩된 오디오 데이터, 비디오 데이터, 및 스플라이싱 메타데이터를 나타내는 전송 스트림을 수신하도록 결합된 적어도 하나의 입력 - 상기 인코딩된 오디오 데이터 및 상기 비디오 데이터는 적어도 하나의 오디오/비디오 프로그램을 나타내며, 각각의 상기 프로그램에 대해, 상기 프로그램을 나타내는 상기 인코딩된 오디오 데이터 및 비디오 데이터는 적어도 하나의 비디오 기본 스트림을 결정하는 비디오 데이터의 프레임들 및 적어도 하나의 오디오 기본 스트림을 결정하는 인코딩된 오디오 데이터의 프레임들을 포함하고, 상기 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하고, 상기 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함함 -; 및
    상기 스플라이싱 메타데이터를 식별하기 위해 상기 전송 스트림의 적어도 일부분을 파싱하고, 상기 스플라이싱 메타데이터가 상기 전송 스트림의 적어도 세그먼트가, 필수적인 완벽 스플라이싱 특성을 비롯한, 적어도 하나의 완벽 스플라이싱 특성을 가진다는 것을 나타낸다고 결정할 때, 상기 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 상기 전송 스트림을 스플라이싱함으로써, 스플라이싱된 전송 스트림을 발생시키도록 구성된 서브시스템
    을 포함하는, 시스템.
  64. 제63항에 있어서, 상기 스플라이싱 메타데이터는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 필수적인 완벽 스플라이싱 특성을 갖는지를 나타내고, 상기 필수적인 완벽 스플라이싱 특성은:
    상기 적어도 하나의 프로그램의 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 적어도 하나의 프로그램의 각각의 프로그램에 대해, 상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것인, 시스템.
  65. 제63항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 시스템.
  66. 제63항에 있어서, 상기 서브시스템은 상기 스플라이싱 메타데이터가 상기 전송 스트림의 적어도 세그먼트가 상기 필수적인 완벽 스플라이싱 특성 및 적어도 하나의 부가의 완벽 스플라이싱 특성을 갖는다는 것을 나타낸다고 결정할 때에만, 상기 전송 스트림의 어떤 인코딩된 오디오 기본 스트림도 수정함이 없이 상기 전송 스트림을 스플라이싱함으로써, 상기 스플라이싱된 전송 스트림을 발생시키도록 구성되는, 시스템.
  67. 오디오/비디오 처리 유닛으로서,
    버퍼 메모리; 및
    상기 버퍼 메모리에 결합된 적어도 하나의 오디오/비디오 처리 서브시스템
    을 포함하고, 상기 버퍼 메모리는 전송 스트림의 적어도 하나의 세그먼트를 저장하며, 상기 전송 스트림은 비디오 데이터, 인코딩된 오디오 데이터, 및 스플라이싱 메타데이터를 포함하고, 상기 전송 스트림의 상기 비디오 데이터 및 상기 인코딩된 오디오 데이터는 적어도 하나의 오디오/비디오 프로그램을 나타내며, 각각의 상기 프로그램에 대해, 상기 프로그램을 나타내는 상기 인코딩된 오디오 데이터 및 비디오 데이터는 적어도 하나의 비디오 기본 스트림을 결정하는 비디오 데이터의 프레임들 및 적어도 하나의 오디오 기본 스트림을 결정하는 인코딩된 오디오 데이터의 프레임들을 포함하고, 상기 비디오 데이터의 프레임들은 비디오 데이터의 I-프레임들을 포함하며, 상기 인코딩된 오디오 데이터의 프레임들은 인코딩된 오디오 데이터의 I-프레임들을 포함하고, 상기 스플라이싱 메타데이터는 상기 전송 스트림 또는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 적어도 하나의 완벽 스플라이싱 특성을 갖는지를 나타내며, 상기 버퍼 메모리에 저장된 상기 전송 스트림의 상기 적어도 하나의 세그먼트는 상기 스플라이싱 메타데이터의 적어도 일부를 포함하는, 유닛.
  68. 제67항에 있어서, 상기 전송 스트림은 MPEG-2 전송 스트림인, 유닛.
  69. 제67항에 있어서, 상기 버퍼 메모리에 저장된 상기 전송 스트림의 상기 적어도 하나의 세그먼트는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 필수적인 완벽 스플라이싱 특성을 갖는지를 나타내는 스플라이싱 메타데이터로 이루어져 있거나 그를 포함하고, 각각의 상기 프로그램에 대한 상기 필수적인 완벽 스플라이싱 특성은:
    상기 프로그램의 각각의 비디오 기본 스트림이 상기 프로그램의 각각의 인코딩된 오디오 기본 스트림의 프레임 레이트와 동일한 프레임 레이트를 가지며, 상기 프로그램의 각각의 비디오 프레임에 대해, 상기 프로그램의 적어도 하나의 대응하는 인코딩된 오디오 프레임이 있는 것; 및
    상기 프로그램의 각각의 비디오 기본 스트림 내의 각각의 비디오 I-프레임에 대해, 상기 프로그램의 오디오 기본 스트림에 적어도 하나의 정합하는 오디오 I-프레임이 있는 것인, 유닛.
  70. 제69항에 있어서, 상기 버퍼 메모리에 저장된 상기 전송 스트림의 상기 적어도 하나의 세그먼트는 상기 전송 스트림이 나타내는 적어도 하나의 프로그램이 적어도 하나의 부가의 완벽 스플라이싱 특성을 또한 갖는지를 나타내는 스플라이싱 메타데이터를 포함하는, 유닛.
  71. 제67항에 있어서, 상기 버퍼 메모리는 상기 전송 스트림의 상기 적어도 하나의 세그먼트를 비일시적 방식(non-transitory manner)으로 저장하는, 유닛.
  72. 제67항에 있어서, 상기 오디오/비디오 처리 서브시스템은 전송 스트림 스플라이서(transport stream splicer)인, 유닛.
  73. 제67항에 있어서, 상기 오디오/비디오 처리 서브시스템은 상기 전송 스트림을 발생시키도록 구성되는, 유닛.
KR1020167021533A 2014-02-10 2015-02-10 완벽 스플라이싱을 위한 인코딩된 오디오의 전송 스트림에의 삽입 KR101861941B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461938067P 2014-02-10 2014-02-10
US61/938,067 2014-02-10
US201562108752P 2015-01-28 2015-01-28
US62/108,752 2015-01-28
PCT/EP2015/052732 WO2015118164A1 (en) 2014-02-10 2015-02-10 Embedding encoded audio into transport stream for perfect splicing

Publications (2)

Publication Number Publication Date
KR20160106150A true KR20160106150A (ko) 2016-09-09
KR101861941B1 KR101861941B1 (ko) 2018-07-02

Family

ID=52477793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167021533A KR101861941B1 (ko) 2014-02-10 2015-02-10 완벽 스플라이싱을 위한 인코딩된 오디오의 전송 스트림에의 삽입

Country Status (6)

Country Link
US (1) US9883213B2 (ko)
EP (1) EP3105938B1 (ko)
JP (1) JP6438040B2 (ko)
KR (1) KR101861941B1 (ko)
CN (1) CN105981397B (ko)
WO (1) WO2015118164A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2978225B1 (en) * 2014-07-23 2017-11-08 Wildmoka Method for obtaining in real time a user selected multimedia content part
WO2016204490A1 (ko) * 2015-06-16 2016-12-22 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
CN106875952B (zh) * 2016-12-23 2021-02-26 伟乐视讯科技股份有限公司 基于fpga嵌入式系统的多路音频软编码机制
US9872062B1 (en) * 2017-02-22 2018-01-16 Wyse Technology L.L.C. Enforcing synchronization by embedding audio within video frame data
CN107147919B (zh) * 2017-06-19 2020-11-27 网宿科技股份有限公司 直播快速启播方法及系统
US11134279B1 (en) * 2017-07-27 2021-09-28 Amazon Technologies, Inc. Validation of media using fingerprinting
CN108769786B (zh) * 2018-05-25 2020-12-29 网宿科技股份有限公司 一种合成音视频数据流的方法和装置
EP3815387A1 (en) * 2018-06-28 2021-05-05 Dolby Laboratories Licensing Corporation Frame conversion for adaptive streaming alignment
CN110109636B (zh) * 2019-04-28 2022-04-05 华为技术有限公司 投屏方法、电子设备以及系统
CN112771880A (zh) * 2020-03-13 2021-05-07 深圳市大疆创新科技有限公司 音频数据处理方法、电子设备及计算机可读存储介质

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181383B1 (en) * 1996-05-29 2001-01-30 Sarnoff Corporation Method and apparatus for preserving synchronization of audio and video presentation when splicing transport streams
US6806909B1 (en) 1997-03-03 2004-10-19 Koninklijke Philips Electronics N.V. Seamless splicing of MPEG-2 multimedia data streams
US20020154694A1 (en) 1997-03-21 2002-10-24 Christopher H. Birch Bit stream splicer with variable-rate output
US6654933B1 (en) * 1999-09-21 2003-11-25 Kasenna, Inc. System and method for media stream indexing
JPH11346348A (ja) 1998-06-02 1999-12-14 Nec Corp 映像音声同期方法及び映像音声多重化装置
JP3523493B2 (ja) 1998-06-11 2004-04-26 シャープ株式会社 高能率符号化データの多重化方法及び多重化装置
US6298089B1 (en) 1998-12-10 2001-10-02 Viewgraphics, Inc. Method for seamless and near seamless audio and non-video splicing of a digital transport stream
US8065708B1 (en) * 1999-03-31 2011-11-22 Cox Communications, Inc. Method for reducing latency in an interactive information distribution system
JP3552945B2 (ja) * 1999-03-31 2004-08-11 日立ソフトウエアエンジニアリング株式会社 Mpeg2データのインサート編集方法及びシステム
US6993081B1 (en) * 1999-11-23 2006-01-31 International Business Machines Corporation Seamless splicing/spot-insertion for MPEG-2 digital video/audio stream
US6792047B1 (en) * 2000-01-04 2004-09-14 Emc Corporation Real time processing and streaming of spliced encoded MPEG video and associated audio
JP2001251616A (ja) * 2000-03-02 2001-09-14 Media Glue Corp 多重化音響・動画圧縮符号化信号変換方法、装置および変換プログラムを記録した媒体
GB0007868D0 (en) 2000-03-31 2000-05-17 Koninkl Philips Electronics Nv Methods and apparatus for editing digital video recordings and recordings made by such methods
JP4411499B2 (ja) * 2000-06-14 2010-02-10 ソニー株式会社 情報処理装置および情報処理方法、並びに記録媒体
JP2002300527A (ja) * 2001-03-30 2002-10-11 Toshiba Corp 多重化ストリームの記録方法、記録装置、記録媒体、編集方法、編集装置
US7068719B2 (en) 2001-06-01 2006-06-27 General Instrument Corporation Splicing of digital video transport streams
US7012650B2 (en) 2001-06-14 2006-03-14 Sony Corporation Start/stop audio encoder apparatus and method for synchronizing digital audio and video signals
US7058054B2 (en) * 2001-08-20 2006-06-06 Skystream Networks Inc. Controlling multiple nodes to execute messages only once
JP4534168B2 (ja) * 2001-09-27 2010-09-01 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US7058189B1 (en) * 2001-12-14 2006-06-06 Pixel Instruments Corp. Audio monitoring and conversion apparatus and method
US20040143675A1 (en) * 2003-01-16 2004-07-22 Aust Andreas Matthias Resynchronizing drifted data streams with a minimum of noticeable artifacts
US7142250B1 (en) * 2003-04-05 2006-11-28 Apple Computer, Inc. Method and apparatus for synchronizing audio and video streams
WO2005074290A1 (en) * 2004-01-29 2005-08-11 Koninklijke Philips Electronics, N.V. A digital television system with rapid channel surfing
US7873515B2 (en) * 2004-11-23 2011-01-18 Stmicroelectronics Asia Pacific Pte. Ltd. System and method for error reconstruction of streaming audio information
JP5011308B2 (ja) * 2005-12-23 2012-08-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データストリームの分割
JP2009536800A (ja) * 2006-05-08 2009-10-15 トムソン ライセンシング 複数の装置にわたりコンテンツの再生を再開する方法
CN100544439C (zh) * 2006-11-21 2009-09-23 华为技术有限公司 一种支持多种编码格式的媒体数据的方法及系统
CN101212679B (zh) * 2006-12-30 2010-04-14 凌阳科技股份有限公司 Avi文件播放时切换多路音频流的av同步方法及装置
US8379677B2 (en) * 2007-04-30 2013-02-19 Vixs Systems, Inc. System for combining a plurality of video streams and method for use therewith
CN101242510B (zh) * 2008-02-18 2012-08-08 华为技术有限公司 一种动态音视频菜单的播放方法与实现装置
JP2009290768A (ja) * 2008-05-30 2009-12-10 Toshiba Corp 映像処理装置および映像処理方法
US8781003B2 (en) 2008-07-17 2014-07-15 Cisco Technology, Inc. Splicing of encrypted video/audio content
US8743906B2 (en) * 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
US8655143B2 (en) * 2009-04-01 2014-02-18 Cisco Technology, Inc. Supplementary buffer construction in real-time applications without increasing channel change delay
EP2425621A2 (en) * 2009-04-28 2012-03-07 Vubites India Private Limited Method and apparatus for splicing a compressed data stream
GB2472264B (en) * 2009-07-31 2014-12-17 British Sky Broadcasting Ltd Media substitution system
US9338523B2 (en) * 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
US8925024B2 (en) * 2009-12-31 2014-12-30 The Nielsen Company (Us), Llc Methods and apparatus to detect commercial advertisements associated with media presentations
US8805963B2 (en) * 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
US20110293021A1 (en) 2010-05-28 2011-12-01 Jayant Kotalwar Prevent audio loss in the spliced content generated by the packet level video splicer
US20130141643A1 (en) * 2011-12-06 2013-06-06 Doug Carson & Associates, Inc. Audio-Video Frame Synchronization in a Multimedia Stream
WO2013134567A1 (en) * 2012-03-06 2013-09-12 Sirius Xm Radio Inc. Systems and methods for audio attribute mapping
CN105230007B (zh) * 2013-05-30 2019-04-23 索尼公司 信号处理装置、信号处理方法和信号传输系统
US20150062353A1 (en) * 2013-08-30 2015-03-05 Microsoft Corporation Audio video playback synchronization for encoded media

Also Published As

Publication number Publication date
JP2017508375A (ja) 2017-03-23
CN105981397B (zh) 2020-06-16
KR101861941B1 (ko) 2018-07-02
CN105981397A (zh) 2016-09-28
EP3105938B1 (en) 2020-12-16
WO2015118164A1 (en) 2015-08-13
JP6438040B2 (ja) 2018-12-12
US20160366452A1 (en) 2016-12-15
US9883213B2 (en) 2018-01-30
EP3105938A1 (en) 2016-12-21

Similar Documents

Publication Publication Date Title
KR101861941B1 (ko) 완벽 스플라이싱을 위한 인코딩된 오디오의 전송 스트림에의 삽입
US11743553B2 (en) Data processor and transport of user control data to audio decoders and renderers
US11770582B2 (en) Frame conversion for adaptive streaming alignment
US8483053B2 (en) Information processing device, information processing method, program, and data structure
RU2698779C2 (ru) Устройство передачи, способ передачи, устройство приема и способ приема
JP2005123907A (ja) データ再構成装置
WO2012077855A1 (ko) 비디오 스트림의 패킷화 방법 및 장치
JP6610273B2 (ja) 送信装置、送信方法、受信装置および受信方法
US12035018B2 (en) Data processor and transport of user control data to audio decoders and renderers
US8098657B2 (en) System and method for providing data commonality in a programmable transport demultiplexer engine
JP2020014246A (ja) 送信装置、送信方法、受信装置および受信方法

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant