KR100517794B1 - 압축된정보스트림을스플라이싱하는방법및장치 - Google Patents

압축된정보스트림을스플라이싱하는방법및장치 Download PDF

Info

Publication number
KR100517794B1
KR100517794B1 KR1019980709597A KR19980709597A KR100517794B1 KR 100517794 B1 KR100517794 B1 KR 100517794B1 KR 1019980709597 A KR1019980709597 A KR 1019980709597A KR 19980709597 A KR19980709597 A KR 19980709597A KR 100517794 B1 KR100517794 B1 KR 100517794B1
Authority
KR
South Korea
Prior art keywords
stream
bitstream
splicing
output
splice
Prior art date
Application number
KR1019980709597A
Other languages
English (en)
Other versions
KR20000016034A (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 사르노프 코포레이션
Priority to KR1019980709597A priority Critical patent/KR100517794B1/ko
Publication of KR20000016034A publication Critical patent/KR20000016034A/ko
Application granted granted Critical
Publication of KR100517794B1 publication Critical patent/KR100517794B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/66Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/179Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scene or a shot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression
    • 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/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/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/242Synchronization processes, e.g. processing of PCR [Program Clock References]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

제 1 압축 디지털 정보 스트림(S6)을 제 2 압축 디지털 정보 스트림(S7)으로 스플라이싱하는 방법 및 장치가 개시되었다. 제 1 압축 디지털 정보 스트림(S6)은 적절한 스트림 입구점을 식별하는 적어도 하나의 입구 표시를 포함하며, 제 2 압축 디지털 정보 스트림(S7)은 적절한 스트림 출구점을 식별하는 적어도 하나의 출구표시를 포함한다. 제어기(340)는 적절한 입구점 및 출구점이 발견될 때까지 두 스트림을 모니터링하며, 제어신호(A/B)에 응답하여, 제 1 스트림을 제 2 스트림으로 스플라이싱한다.

Description

압축된 정보 스트림을 스플라이싱하는 방법 및 장치{METHOD AND APPARATUS FOR SPLICING COMPRESSED INFORMATION STREAMS}
본 발명은 일반적으로 통신 시스템에 관한 것으로, 더욱 상세히는 스트림 선택, 스플라이싱 및 기타 동작을 용이하게 하기 위해 복수 개의 압축된 데이터 스트림을 동기화하기 위한 방법 및 장치에 관한 것이다.
여러 통신 시스템에서, 전송되어야 할 데이터는 이용가능한 대역폭이 더욱 효율적으로 사용될 수 있도록 압축된다. 예로서, 엠펙(MPEG;Motion Pictures Experts Group)은 디지털 데이터 전달 시스템에 관한 여러 표준을 공표하였다. 첫째는 본 명세서에서 참조문헌으로 통합된 ISO/IEC 표준 11172로 참조되는 MPEG-1이다. 둘째 본 명세서에서 참조문헌으로 통합된 ISO/IEC 표준 13818로 참조되는 MPEG-2이다. 압축된 디지털 비디오 시스템은 본 명세서에서 참조문헌으로 통합된 ATSC(Advanced Television Systems Committee) 디지털 텔리비전 표준 문서 A/53에 설명되어 있다.
프로그램 트랜스포트 스트림은 공통 시간축(time base)(즉, 동일한 27㎒ 클록 소스)을 공유하는 개별적인 기본 스트림(elementary stream)을 멀티플렉싱함으로써 형성된다. 기본 스트림은 인코딩된 비디오, 오디오 및 기타 비트스트림을 포함한다. 기본 스트림은 반드시는 아니지만 트랜스포트 멀티플렉싱 이전에 패킷화된 기본 스트림(PES ; packetized elementary stream) 포맷일 수 있다. PES는 패킷 페이로드(packet payload)가 뒤따르는 패킷 헤더일 수 있다. 기본 스트림들이 멀티플렉싱됨에 따라, 이들은 트랜스포트 패킷 내에 형성되며 프로그램을 설명하는 제어 비트스트림(역시 트랜스포트 패킷 내에 형성됨)이 추가된다.
하나의 인코딩 또는 압축된 비트스트림을 다른 비트스트림으로 스위칭시킬 필요가 있는 경우가 많다. 한 압축된 MPEG 비디오 비트스트림을 다른 비트스트림으로 스위칭할 때, 시간 갭 없이, 디코딩된 화상에 대한 적절한 후속 프리젠테이션을 확실하게 하기 위해 화상 비트스트림의 전송 순서(transmission order)에 대해 적절한 방법이 취해져야 한다. 이러한 시간 갭은 바람직하지 못한 오디오 또는 비디오 가공물(예를 들어, 버퍼 오버플로우/언더플로우, 조악한 “립 싱크(lip sync)” 등에 기인한 블랭크 스크린(blank screen))이 될 수 있다. 지금까지는 트랜스포트 스트림을 다른 스트림으로 스플라이싱하는 무결절성(seamless) 스플라이싱 방법 및 장치가 존재하지 않았다.
따라서 당업계에는 압축된 디지털 정보 스트림을 스플라이싱하는 방법 및 장치가 필요로 된다.
도 1은 본 발명을 포함하는 압축된 비트스트림 스플라이싱 시스템의 블록도.
도 2는 본 발명에 따른 무결절성 스플라이싱 프로세스의 흐름도.
도 3은 도 1 의 스플라이서의 상세 블록도.
도 4는 본 발명을 포함하며 복수개의 상호 운영가능한 아일랜드(interoperable island)을 포함하는 디지털 스튜디오의 블록도.
상기한 종래기술과 연관된 단점은 본 발명에 의한 압축된 디지털 정보 스트림을 스플라이싱하는 방법 및 장치에 의해 극복된다. 특히, 본 발명은 제 1 정보 스트림을 제 2 정보 스트림으로 스플라이싱한다. 제 1 정보 스트림은 도달-스트림(to-stream)에 대한 적절한 입구 지점(entrance point)을 식별하는 적어도 하나의 입구 표시(entrance indicium)를 포함한다. 제 2 정보 스트림은 출발 스트림(from-stream)에 대한 적절한 출구 지점(exit point)을 식별하는 적어도 하나의 출구 표시(exit indicium)를 포함한다. 본 발명은 적절한 입구 지점 및 출구 지점이 발견될 때까지 상기 두 스트림을 모니터링하며, 제어신호에 응답하여 제 1 스트림을 제 2 스트림에 스플라이싱한다.
상세히는, 본 발명의 스플라이서는 제 1 정보 스트림을 수신하여 버퍼링된 정보 스트림을 형성하는 사전-스플라이스 버퍼(pre-splice buffer); 상기 제 1 정보 스트림을 수신하고 응답하여 상기 사전-스플라이스 버퍼로 하여금 상기 버퍼링된 정보 스트림의 입구 지점을 버퍼의 출력에 위치시키게 하는 비트스트림 검사기; 상기 버퍼링된 정보 스트림 또는 제 2 정보 스트림을 출력에 연결시키는 스위치; 및 상기 제 2 정보 스트림을 모니터링하며 제어정보와 상기 제 2 정보 스트림의 출구 지점의 검출에 응답하여 상기 스위치로 하여금 상기 버퍼링된 정보 스트림을 출력에 연결시키는 스위치 제어기(switch controller)를 포함한다.
본 발명의 사상은 첨부도면과 함께 다음과 같은 상세한 설명을 주의깊게 살펴보면 용이하게 이해될 수 있다.
본 발명은 일반적으로 본 발명에 따른 연관된 스위칭 능력을 가지며 다양한 비트스트림을 수신하여 처리하는 여러 동작 환경을 포함하는 디지털 텔리비전 스튜디오 관점 내에서 설명된다. 상기 스위칭 능력은 출력 스트림을 형성하는 예를 들어 복수 개의 비디오 트랜스포트 스트림을 무결절성 또는 결절성 스플라이싱할 수 있게 한다. 무결절성 또는 결절성(non-seamless) 비트스트림의 조합은 열화된 출력 스트림을 제어가능하게 제공하도록 형성될 수 있다.
본 발명은 출력 스트림을 형성하기 위해 한쌍의 MPEG을 따르는(MPEG-compliant) 입력 트랜스포트 스트림 상에 스위칭, 스플라이싱 또는 삽입 동작을 수행하는 2-입력 비트스트림 스플라이서이다. 본 발명의 원리는 2 입력 이상을 갖는 비트스트림 스위치 또는 스플라이서에 적용되며 MPEG을 따르는 입력 스트림 이외의 입력 스트림에 적용된다는 것을 주목해야 한다. 본 발명은 아래와 같은 기능을 수행하도록 프로그래밍된 범용 컴퓨터 시스템을 이용하여 구현될 수 있다. 프로그래밍됨에 따라, 범용 컴퓨터는 디지털 데이터 비트스트림을 스플라이싱하기 위한 특정 목적의 장치가 될 수 있다.
본 발명은 비트스트림의 무결절성 스플라이싱 및 결절성 스플라이싱 모두에 사용될 수 있다. 무결절성 스플라이싱은 연속적이고, 방해되지 않은 정보의 흐름(예를 들어, 순간적 전류이상(gliches) 또는 영상인공물(artifacts) 없는 비디오 또는 오디오)을 형성하는 최종 출력 스트림을 형성하는 두 스트림의 무결절성 버트-스플라이싱(butt-splicing)을 의미한다. 결절성 스플라이싱은 방해된 정보의 흐름(예를 들어, 시각적 또는 청각적 왜곡, 방해 및 인공영상물)을 가질 수 있는 최종 출력 신호를 형성한다. 본 발명의 설명을 위해, 각각의 비트스트림은 비디오, 오디오 및 기타 정보를 포함하는 트랜스포트 스트림인 것으로 가정할 수 있다. 본 발명은 패킷화된 기본 스트림 및 기타 기본 스트림에 적용할 수 있음을 주목해야 한다. 추가하여, 스플라이싱 지점이 비디오 정보에 대해 결정된다고 가정된다. 이것은 오디오 및 기타 정보가 패킷 단위를 기반으로 일시적으로 “정렬(line up)”되지 않을 수 있기 때문에, 스플라이싱된 오디오 및 기타 정보에 약간의 변형이 있을 수 있다.
스플라이싱은 “출발-스트림(from-stream)”으로부터 “도달-스트림(to-stream) ”으로의 출력 스트림(output-stream)에서의 전이 단계를 포함한다. 출발-스트림은 이상적으로 “출력-지점(out-point)”에서 나가며 도달-스트림은 이상적으로 “입력-지점(in-point)”에서 들어간다. 출력-지점은 스트림이 종료될 수 있고 다른 스트림(즉, “도달-스트림”)이 스플라이싱될 수 있는 현재-선택된 스트림(즉, “출발-스트림”)내의 장소이다. 다른 스트림(즉, “도달-스트림”)은 스플라이싱된다. “입력-지점”은 정보가 다른 스트림 상으로 스플라이싱되기 시작할 수 있는 다른 스트림 내의 장소이다.
“스플라이싱 세그먼트(splicing segment)”는 입력-지점과 출력-지점 사이의 정보 스트림 부분으로서 정의된다. 스플라이싱 세그먼트는 다수의 입력-지점과 출력-지점을 포함할 수 있다. 따라서, 스플라이싱에서 최대 유연성을 허용하기 위해 하나의 비트스트림 내에 가능한한 많은 입력-지점과 출력-지점을 포함하는 것이 바람직하다. MPEG을 따르는 스트림에 대한 비디오 버퍼링 검증기(video buffering verifier; VBV)와 같은 지연-파라미터는 입력-지점과 출력-지점의 한계 내에 있다. 공지된 입력-지점 지연-파라미터 및 동일한 공지된 지연-파라미터를 갖는 출력 지점을 갖춘 스플라이싱 세그먼트는 상이한 지연-파라미터 값을 갖춘 더욱 짧은 유효 스플라이싱 세그먼트를 포함할 수 있다.
본 발명의 대표적인 실시예의 스튜디오 환경 관점에서, 정보 스트림들은 트랜스포트 패킷으로 분할된다. 비디오를 포함하는 패킷은 오디오, 보조 데이터 또는 기타 정보를 포함하는 패킷과 혼합될 수 있다. 이러한 환경에서, 비디오 스트림 출력-지점은 관심있는 스트림의 최종 비디오 트랜스포트 패킷의 말단이다. 최종 패킷 이전 및 최종 패킷 동안의 비디오 스트림은 출력-지점의 스플라이싱 정의를 만족시켜야 한다. 마찬가지로, 비디오 스트림 입력-지점은 스플라이스 세그먼트(SS)의 제 1 비디오 트랜스포트 패킷의 시작부이다. 트랜스포트 스트림의 기타 정보 특히 오디오는 입력-지점 및 출력-지점에서 정밀하게 세그먼팅되지 않을 수 있음을 유의해야 한다. 오디오 트랜스포트 패킷의 비정렬에 의해 유도된 에러 보정방법은 본 명세서에서 참조문헌으로서 통합된, 본 명세서와 동시에 출원된(Attornet Docket 12070)미국특허 출원 제 08/864,321호에 설명되어 있다.
정보 스트림을 스플라이싱하는 중요한 태양은 여러 지연 파라미터를 적절히 처리하는 것이다. 하나의 중요 파라미터는 다양한 정보 스트림과 연관된 지연 파라미터이다. MPEG을 따르는 스트림의 경우에, 지연 파라미터는 비디오 버퍼링 검증기(VBV)와 같은 지연 파라미터이다. 또다른 파라미터는 스플라이싱 동작에 본질적인 대기시간(latency) 또는 전이시간(transitional period)이다. 예를 들어, 전형적인 스플라이스는 특정 시간 즉 “스플라이스 시간(splice time)”에서 발생한다. 스플라이스 시간 이전에 출력 정보 스트림은 출발-스트림을 포함한다. 스플라이스 시간에서, 도달-스트림으로의 스위칭이 발생한다. 일정시간 동안 출력 스트림은 출발-스트림 및 도달-스트림으로부터의 정보를 포함할 수 있다. 결과적으로 출력 스트림은 단지 도달-스트림으로부터의 정보를 포함한다.
출발-스트림 및 도달-스트림은 각각 유효한 것으로 가정한다. 스플라이싱이 무결절성이기 위해서는 반드시 만족되어야 하는 스트림에 대한 특정 제한들이 있다. 무결절성 스플라이싱은 최종 스플라이싱된 비트스트림이 앞으로 불연속을 야기시키지 않을 것이라는 것을 의미한다.
무결절성으로 스플라이싱될 수 있는 유효한 스플라이스 세그먼트의 한 특정 예는 MPEG을 따르는 스플라이스 세그먼트이다. MPEG 스플라이스 세그먼트(SS)는 트랜스포트 레벨에서 정의되고 비디오(및 오디오) 레벨에서의 기능을 포함한다. 정보를 지닌 스플라이스 세그먼트는 단일 프레임만큼 짧을 수 있다. 스플라이스 세그먼트는 제로 프레임 길이 세그먼트(SS가 MPEG를 따르지 않을 수 있을 지라도)일 수도 있다. 이러한 제로 프레임 길이 세그먼트는 단순히 출력-지점이 뒤따르는 입력-지점(즉, “입력-출력-지점(in-out-point)”)이다. SS는 또한 많은 GOP들을 포함하는, 매우 긴 것일 수 있다. 일반적으로 SS의 길이는 제약되지 않으며 SS는 세그먼트로부터 무결절성으로 나오는 것을 가능하게 하도록 다수의 출력-지점을 포함해야 한다. 가능한 예외는 텔리비전 광고를 포함하는 SS이다. 텔리비전 광고 SS는 한정된 출력-지점없이 신중히 형성될 수 있으므로 상기 광고 세그먼트를 나가게 하는 것은 결절성이다.
MPEG SS는 일정한 트랜스포트 스트림 및 기본 스트림 시간 스탬프(예를 들어, PCR, PTS 및 DTS) 및 연관된 지연 파라미터(예를 들어, VBV 지연)를 갖는 MPEG을 따르는 스트림이어야 하며, 이렇게 하여 디코더가 정보를 적절히 디코딩하여 SS에 정보를 제공할 수 있게 한다. MPEG 비디오 SS의 입력-지점에서 제 1 정보 프레임(예를 들어, 비디오 액세스 유닛)은 I-프레임이어야 한다. 제 2 프레임은 입력-지점 이전의 정보 프레임을 참조하지 않아야 한다(즉, 제 2 프레임이 B-프레임이라면, B-프레임은 입력-지점 이전의 프레임을 참조하지 않을 수 있다). 출력-지점 이전의 최종 프레임은 B-프레임이어서는 안된다(디스플레이 순서에서). 오디오 SS는 오디오 프레임의 시초로 구성된 입력-지점 및 오디오 프레임의 최종 바이트로 구성된 출력-지점을 가질 것이다. 코딩 에러-형성(coding error-build-up), 동조-시간(tuning-time) 및 최소 화질 등과 같은 문제를 처리하기 위해 스트림 상에 위치된 기타 제약조건이 있을 수 있다.
비디오 SS의 입력-지점은, SS가 다수의 시퀀스 헤더들을 포함할 수 있을지라도, 하나의 시퀀스 헤더로 시작해야 한다. SS는 시퀀스 헤더가 또한 입력-지점 임을 지시하도록 추가 헤더 정보를 포함할 수 있다. 무결절성 스플라이싱은 입력-지점들 상에서만 보증될 수 있기 때문에, 동조-시간 또는 화질을 위해 포함된 시퀀스 헤더로부터 SS 입력-지점 시퀀스 헤더를 구별할 필요가 있다. 상기 입력-지점은 시퀀스 종료 코드(sequence end code;SEC)를 뒤따라야 하므로, 입력-지점 바로 이전에 SEC 코드를 포함하는 것이 바람직하며, 이에 의해 출력-지점의 말단에서 SEC를 포함할 필요를 제거한다. 출력-지점이 SEC를 포함할 수 있다. 만일 사용된다면, MPEG-유형 스플라이스 카운트다운은 출력-지점에서 종료되어야 한다(즉, 0이어야 한다).
도 1은 본 발명을 포함하는 압축된 비트스트림 스플라이싱 시스템(100)의 블록도를 포함한다. 시스템(100)은 제 1 압축 비트스트림 스트림 소스(110), 제 2 압축 비트스트림 스트림 소스(120), 스플라이서(300), 제어기(105) 및 선택적으로 스플라이스 모니터(130)를 포함한다. 예시적으로 트랜스포트 스트림 인코더로부터의 “실시간 공급(live feed)과 같은” 제 1 압축 비트스트림 스트림 소스(110)는 MPEG를 따르는 제 1 트랜스포트 스트림(S6)을 생성한다. 비디오 및 오디오 기본 스트림 및 트랜스포트 스트림을 저장하는, 예시적으로 서버(예로서, 비디오 디스크, 테이프 기계 또는 기타 저장 디바이스)와 같은 제 2 압축 비트스트림 스트림 소스(120)는 MPEG를 따르는 제 2 트랜스포트 스트림(S7)을 생성하기 위해 저장된 스트림을 인코딩한다. 저장된 정보는 제 1 트랜스포트 스트림으로 스플라이싱되어야 할, 예를 들어, 광고 또는 로컬 프로그래밍 정보를 포함할 수 있다. 스플라이서(300)는 두 입력 트랜스포트 스트림(S6,S7)중의 하나를 출력 스트림(S9)으로서 트랜스미터 또는 기타 서브시스템에 선택적으로 연결할 수 있다. 선택적인 스플라이스 모니터(130)는 지연 파라미터, 버퍼 이용 정보, 동기화, 비트스트림 소스등과 같은 다양한 스플라이싱된 출력신호(S9) 파라미터를 모니터링한다. 선택적인 스플라이스 모니터(130)는 제어기(105) 및 스플라이서(300)에 응답한다.
스플라이서(300)는 제 1 소스에 의해 생성된 예시적으로 텔리비전 프로그램인 제 1 트랜스포트 스트림(S6)을 수신하고, 제 2 소스에 의해 생성된 예시적으로 광고인 제 2 트랜스포트 스트림(S7)을 수신한다. 제어신호인 선택(SELECT)신호에 응답하여, 스플라이서는 제 1 트랜스포트 스트림(S6) 또는 제 2 트랜스포트 스트림(S7)을 포함하는 출력신호(S9)를 생성한다. 제어신호인 선택(SELECT)신호는 정의된 일정 시간 내에서 또는 일정 조건이 존재할 때(즉, 스트림 입구 지점 또는 출구 지점의 특정한 정렬) 스플라이서(300)로 하여금 즉시 응답하게 하는 우선 정보를 포함할 수 있다. 스플라이서(300)는 선택(SELECT)신호에 대해 승인응답하고 스플라이스 동작에 대한 특정한 상세사항(정확한 스플라이스 시간, 에러조건 등)을 제공하는데 이용되는 승인(ACKNOWLEDGE) 신호를 생성한다. 스플라이서(300)의 동작은 도 3과 관련하여 더욱 상세히 설명된다.
실제 스플라이싱 동작은 스플라이서(300)내에서 발생하는 프로세스이고, 비트스트림 중에서 실제로 스위칭하기 위해 필요한 것들을 수행한다. 이것은 순서적으로, 출발-스트림으로부터 패킷의 흐름을 정지시키는 것; 순서적으로 도달-스트림으로부터 패킷의 흐름을 시작시키는 것; 및 출력 스트림 내의 헤더 정보를 조정하는 것을 포함한다. 일부 시간간격 동안, 출발-스트림 및 도달-스트림으로부터의 패킷은 상호 혼합될 가능성이 있다.
스플라이싱 동작은 무결절성이 되도록 동기화되어야만 한다. 입력 스트림이 적절한 스플라이서에 그들이 필요로 하는 적절한 시간에 도달하는 것을 보장하기 위해 다수의 동기화 동작이 수행될 수 있다. 출력 스트림은 연속적이고 실제 스플라이스는 출발-스트림으로부터 도달-스트림으로의 출력 스트림의 내용에서의 변화가 되도록 행해진다고 가정된다. 출력 스트림에서의 타임 스탬프(time stamp)는 한 스탬프로부터 다음 스탬프(이것은 스트림 내용과 연관됨)로 연속을 유지해야 하고 스플라이싱 매커니즘은 출력 스트림 타임-스탬프(output stream time-stamp)를 조정해야 한다. MPEG 시스템에서 타임-스탬프 연속성이 결여된 경우에, MPEG “불연속(discontinuity)” 헤더 플래그(header flag)는 새로운 타임 스탬프(또는 타임 스탬프 불연속)에 대한 표시가 디코더에 제공되도록 이용되어야 한다.
상기 조정을 수행하기 위해 스플라이싱 프로세스는 어느정도 시간 개념을 가져야만 하는데 이는 이러한 로컬 시간 개념은 출력 타임-스탬프를 생성하는데 사용되어야 하기 때문이다. 스플라이싱 프로세스는 OC-12c 인터페이스와 같은 타이밍 소스로부터 자신의 시간 개념을 획득하고 현재 시간은 스트림 내용(stream content) 또는 설정-시간(set-time) 메시지로부터 유도된다. 이러한 로컬 시간 개념은 적절히 연속적이고 양호하게 동작되어야 한다. 스플라이싱할 때, 출발-스트림의 말단 및 도달-스트림의 시작은 출력을 생성하고 있는 실제 스플라이스 하드웨어에서 이용할 수 있어야만 한다. 또한, 스플라이싱 프로세스 내의 모든 버퍼링은 명확하고 한정되어야 한다.
상기 문제 이외에, 고려되어야 할 동기화 문제가 있다. 예를 들어, 스플라이싱 프로세스상에서 패킷 지터(packet jitter)의 효과를 고려하는 것이 중요하다. 스플라이싱되는 실제 스트림 내에 포함된 것 이상의 임의의 추가 정보(예를 들어, 우선 정보, 소스 식별, 에러코드 등)가 필요로 된다면, 추가정보는 실제 스플라이스 스트림과 적절히 동기화되어야 한다.
스플라이싱 기능의 동기화에 대해 중요한 여러 조건이 있다. 이 조건들은 원하는 동작과 실제 동작, 연속-흐름 스트림들, 서버-생성 스트림들, 및 원격-생성 스트림들 사이의 타이밍 관계들이다.
원하는 동작과 실제 동작간의 타이밍 관계가 먼저 설명된다. 플레이- 투-에어(play-to-air) 스위치와 같은 동작 유닛에서, 스트림을 스위칭하라는 결정이 행해져야만 한다. 출력 스트림의 소스는 실제적으로 상기 결정에 응답하여 스위칭된다.
스플라이싱하라는 결정은 내용-연관 데이터 엘리먼트(content-related data element)가 스트림 중의 하나에 있게 될 때 출발-스트림으로부터 도달-스트림으로의 스위치와 같은 연관된 내용일 수 있다. 예를 들어, 출발-스트림은 모니터링될 수 있고, 블랙-스크린 또는 장면 변환과 같은 검출에 응답하여, 스플라이스 결정이 행해질 수 있다. 이 동작결정은 동기화를 필요로 하지 않는다. 그 보다는, 이 결정은 스플라이서(또는 제어기)가 데이터 엘리먼트를 검출하기 위해 예를 들어 출발-스트림을 분석하는 것을 필요로 한다. 스플라이싱하라는 결정은 몇몇 특정 패킷에서 또는 정보흐름의 출발 또는 종료시 출발-스트림으로부터 도달-스트림으로의 스위치와 같은 연관된 데이터-흐름일 수 있다.
스플라이싱하라는 결정은 프로그램으로부터 정오 상업광고로의 스위칭과 같은 시간-연관된 것일 수 있다. 시간-연관 결정은 스플라이서의 로컬 참조-프레임에 참조되어야 한다. 메시지-전달 프로세스는 스플라이서가 스플라이서의 로컬 기준-프레임에 스플라이싱하도록 준비된 시간에 맞춰 결정정보를 스플라이서에 전달한다. 임의의 시간에서 스플라이싱하라는 결정이 내려지면, 스플라이싱은 출발-스트림 및 도달-스트림에 기초하여, 다음의 이용가능한 스플라이싱 지점에서 이루어질 것이다.
스플라이싱하라는 결정은 버튼의 푸싱(예를 들어, 도 1의 스플라이서(100)에서 나타난 바와 같은, 지시자의 “취함(take)” 명령)과 같은 이벤트(event) 구동방식일 수 있다. 이벤트를 지시하는 메시지가 스플라이서에 도달할 때, 동작은 시간이 도달된 시간-연관 결정에 대한 동작과 동일하다.
일정 형태의 승인 메시지가 필요로 될 수 있다. 이 메시지는, 스플라이스 결정의 생성기(originator)(예를 들어, 제어기)에 전달되었을 때, 대략 종료(time-out) 시에 지능적 선택이 이루어지도록 하고, 비정상적인(panic) 결절성 스플라이스와 같은 동작을 허용할 것이다. 종료 및 스플라이싱 실패를 보정하기 위한 보정동작에 대한 결정은 스플라이싱 결정의 생성기에 대한 정책적 문제이다. 종료 및 강제된 스위칭은 단지 편의상 뿐만아니라 스플라이서에 의해 구현된 서비스일 수 있다.
동작유닛(예를 들어, 스플라이서 또는 스위처)은 적절한 승인 메시지를 제어 엔터티에 피드백시킬 수 있다. 이러한 피드백된 메시지의 내용은 다음과 같은 파라미터: 1) 스플라이싱이 발생되거나 발생되지 않음; 2) 발생된 스플라이스가 발생할 로컬 일시; 3) 도달-스트림의 지연-파라미터 값; 4) 출발-스트림의 지연-파라미터 값; 5) (지연 이후의)현재 (예로서, 지연 초 단위인)동기-버퍼 지연; 6) 스플라이싱이 발생할 미래의 시간(스위처가 상기 시간 값을 계산할 수 있는 경우); 및 7) 임의의 예외 및 에러와 같은 하나 이상의 파라미터를 포함할 수 있다. 상기 예외 및 에러는 어떠한 스플라이싱도 발생되지 않았거나, 제어기에 의해 전달된 결정 파라미터가 (예로서, 문법적으로 또는 논리적으로)부정확했거나, 도달-스트림이 준비되지 않았거나, 종료가 발생되었거나 오디오-오류가 발생되었다는(예로서, 오디오 프레임 수의 과도한 감소) 사실을 포함할 수 있다.
가치있을 수 있는 추가의 정보는, 1) 출발-스트림으로부터의 오디오 정보가 필요로 될 시간량; 2) 입력이 올바르게 버퍼링되고 새로운 스플라이싱을 위해 준비되어야 함에 대한 지시; 및 3) 제어기 또는 스플라이싱 프로세스 자체에 유용한 기타정보를 포함한다.
무결절성 스플라이스가 발생하는 정밀한 시간은, 무결절성 스플라이스가 도달-스트림에의 입력-지점의 도달에 좌우되기 때문에, 미리 결정되지 않을 수 있다. 무결절성으로 스플라이싱하라는 결정의 경우에, 스플라이스가 일정한 시간 한계 내에서 발생하지 않는다면 수행해야 할 것에 대한 여러 하위-결정(sub-decision)이 있다. 선택사항은 다음과 같다. 첫째, 단순히 무결절성 스플라이싱이 발생하길 대기한다. 이것은 스튜디오 운영 목적에 따라 수용되지 못할 수 있다. 둘째, 일정한 종료 기간을 정의하고, 스플라이서가 정의된 종료 기간 내에서 스플라이싱되지 않았다면, 결절성 스플라이싱을 수행한다(즉, 가능한한 제어가능한 방식으로 스트림을 스위칭함). 이것이 단순한 접근법이기는 하지만, 결정의 유연성을 제한한다. 셋째, 스플라이스가 발생하지만 이 조건을 제어 엔터티에 대해 승인하도록 대기만 한다. 그 후에 프로세스가 어떤 스플라이스 결정을 생성하든지, 결절성 스플라이싱을 허용하는 결정을 내릴 수 있다. 이것은 합리적인 운영의 융통성을 허용한다. 넷째, 선택적으로 디폴트 종료 및 선택적으로 제어 엔터티에 대해 상기 조건을 승인하는 것을 포함하여, 프로그래밍가능한 종료를 제공한다. 이러한 선택사항은 제어 유닛이 종료값을 변경시키도록 하여, 최대의 운영의 융통성을 제공한다. 종료는 부차적 운영 특성이고, 정규 운영에 대한 예외임을 유의해야 한다.
이제 연속-흐름 스트림 스플라이싱의 동기화가 설명된다. 이 스트림은 도달되어, 예를 들어 출력-지점이 출발-스트림에서 발생가능할 때 도달-스트림 입력-지점이 이용가능하도록 하는 것과 같은 방식으로 스플라이서에서 버퍼링된다(예를 들어, 일초만큼의 정보). 버퍼링된 양이 불충분하다면(예를 들어, 출발-스트림의 연속적인 입력-지점 사이에서 수초 이상 경과된다면), 버퍼는 오버플로우될 것이고 유효하지 않은 정보를 포함할 것이다. 이러한 상황은 비트스트림에 삽입되는 적절한 수의 입력-지점 및 출력-지점에 의해 치유된다. 비트스트림이 충분한 입력-지점 및 출력-지점을 갖지 않는다면, 이들 비트스트림은 이들 시간에 무결절성으로 스플라이싱될 수 없다. 더욱이, 입력 비트스트림의 도달시간에서 셀 지터 또는 패킷이 있는 정도까지, (정상적인 데이터 레이트로 클록킹된 출력을 갖춘) 선입선출(FIFO ; first-in, first-out) 버퍼는 흐름을 유연하게 하는 것으로 예상된다.
이제 서버 생성 스트림의 동기화가 설명된다. 서버 생성 스트림(server generated stream)은 데이터가 스플라이서에 너무 일찍 또는 너무 느리게 도달하지 않도록 주의깊게 생성되어야 한다. 데이터가 너무 일찍 도달된다면, 입력 버퍼의 오버플로우 위험이 있다. 스플라이서가 일초 혹은 그 정도의 비디오를 유지하기 위해 충분한 동기화 버퍼링을 갖는 것으로 가정된다면, 서버 스트림은 정시 한계(just-in-time limit) 및 일초 빠른 한계(one-second-early limit)를 절대 초과하지 않는 임의 패턴의 흐름으로 전달될 수 있다. 물론, 스플라이서 상에 피크 레이트 한계가 있을 수 있다.
이제 원격 생성 스트림(remotely generated stream)의 동기화가 설명된다. 스플라이서를 갖는 스튜디오에서 처리된 임의의 스트림은 동일한 기준 클록 속도를 갖는 것으로 예상됨을 유의해야 한다. 원격 생성 스트림은 그들이 스플라이서에 도달된 시간에 의해, 로컬으로 발생된 실시간 스트림과 동일하여야 한다. 원격 생성 스트림을 로컬 마스터 소스에 참조시키기 위해, 원격 소스는 로컬 스튜디오에 젠로킹된다(genlocked). 이것은 글로벌 위치지정 시스템(GPS)으로부터 유도된 타이밍 신호와 같은, 외부 참조에 대해 록킹시키거나 또는 역 채널을 통해 수행될 수 있다. 각각이 독립적인 마스터 클록을 갖추고 각각이 서로에 원격 공급을 행하는 두 개의 독립적인 스튜디오가 있다면, 하나는 다른 것에 데이터를 너무 느리게 전달하고 있는 것이고, 다른 하나는 너무 빠르게 전달하고 있는 것이다. 또다른 방법은 어떤 동작 간격 동안 최대 클록 드리프트(maximum clock drift)에 동일한 시간 만큼 원격 공급을 지연시키는 것이다. 24시간 동안의 30ppm 드리프트 속도는 2.6초를 누적시킨다. 3초 채움(fill)으로 초기화된 6초 버퍼(six second buffer)는 클록 드리프트를 흡수하는데 적절하다.
스플라이스 모니터링은 특히 스튜디오 환경에서 중요한 스플라이싱 모습이다. 내용-연관 모니터링은 이미지(예를 들어, 스플라이싱)를 형성하는 비트스트림의 파라미터에 반응하여 변화시키는 디스플레이 장치(즉,“모니터”)상의 이미지를 보는 단계를 포함할 수 있다. 선택적인 스플라이스 모니터(130)는 예를 들어 지시자에 의한 내용-연관 모니터링에 사용될 수 있다. 또다른 형태의 모니터링은 모니터링된 비트스트림의 정성적 평가이다. 선택적인 스플라이스 모니터(130)는 예로서, 지연 파라미터, 버퍼 이용 정보, 동기화 정보, 비트스트림 소스 식별 정보와 같은 스플라이싱된 출력 신호(S9)로부터 정성적 정보를 검색하는데 사용될 수 있다. 선택적인 스플라이스 모니터(130)는 정보를 처리하고 예로서 동작 개요(operational summary)을 리턴시키기 위해, 또는 추가 처리를 위해 정성적 정보를 제어기(150) 및 스플라이서(300)에 직접 연결시키도록 제어기(105) 및 스플라이서(300)에 응답한다.
내용-기반 모니터링에 대해, 지시자(즉, 인간)는 모니터(즉, 디코더 구동 디스플레이)를 통해 다양한 비트스트림을 보고 있을 수 있고, 출력 스트림(즉, 프로그램)을 형성하기 위해 반응하여 스플라이싱하고 있을 수 있다. 이러한 문제는 특히 복합-GOP 스트림을 갖춘 라이브 스위칭(live switching) 또는 제작에서 중요하다. (예를 들어, I-프레임만의) 저-지연(low-delay) 제작 모드에서 동작할 경우 상기 문제점은 최소화된다. 지시자는 스플라이스가 “지금(now)” 행해져야 하는 것으로 지시할 때, 상기 결정은 지시자가 보는 것과 볼 것으로 예상되는 것에 기초할 가능성이 있다. 디코더가 자신의 입력 비트스트림으로부터 어느 정도의 지연(예로서, 말단-에서-말단 지연 일부 또는 전부 및 어느 정도의 추가 디코드 및 포맷 지연) 후에 자신의 화상을 나타냄에 따라, MPEG 스튜디오 환경에서 지시자를 위한 동작모드는 현재의 NTSC-연관 동작과 상이할 것이다. 다음 예를 위해, 지시자는 MPEG 스튜디오 환경에서 동작하고, 스플라이스 세그먼트는 1/4초 길이이고, 스플라이싱된 스트림의 말단-에서-말단 지연은 1/2초인 것으로 가정한다.
첫번째 예는 “가장 이른(soonest)” 동작 모드이다. 이 모드에서, 지시자는 출력 모니터(132), 출발-스트림 모니터(136) 또는 도달-스트림 모니터(134)상에서 보이는 이벤트에 기초하여 “취함(take)“ 버튼(TAKE)을 누른다. (예로서, 서버-저장된) 대기행렬인(queued up) 도달-스트림이 예비되고 입력-지점에서 정렬된다. 스플라이스 명령의 1/4초 범위내에서 출력-지점은 출발-스트림 동기-버퍼의 말단에 도달하고 스플라이싱이 행해지게 된다. 출발-스트림은 1/4초 지연까지 포함함을 주목해야 한다. 한 모니터 지연 후(1/2초) 출력 모니터상의 장면은 변화한다.
지시자가 출력 모니터(132)상의 장면에 응답한다면, 출력 모니터 지연 시간량(즉, “취함” 명령(TAKE)과 출력 모니터(132)상의 장면에서의 변화 사이의 시간)은 1/2초 내지 1초이다. 지시자가 출발 스트림 모니터(136)상의 장면에 응답한다면, 출발-스트림 모니터 지연 시간량은 1/4초 내지 1/2초 사이이고 출력 모니터 지연은 1/2초이다. 지시자가 도달-스트림 모니터(134)상의 장면에 응답한다면, 도달-스트림 모니터(134)는 연속적이고(즉, 어떠한 모니터 지연도 없고) 출력 모니터 지연은 네거티브 1/4초이다(즉, 장면은 “취함” 버튼(TAKE)이 눌려지고 1/4초 후에 변화하며 디스플레이된 이미지는 상기 버튼이 눌려지기 1/4초 이전에 발생된다).
두 번째 예는 “다음” 동작 모드이다. 이 모드에서 대기행렬을 이룬 도달-스트림은 도달-스트림 동기화 버퍼로부터 플러싱되고 입력-지점으로서 시작되는 다음의 세그먼트는 1/4초까지의 범위에서 대기하게 된다. 도달-스트림 동기화 버퍼는 0 내지 1/4초의 랜덤 지연을 갖는다. 입력-지점이 도달할 때 스플라이스가 행해진다.
지시자가 출력 모니터(132)상의 장면에 응답한다면, 출력 모니터 지연 시간량은 1/2초 내지 1초이다. 지시자가 출발-스트림 모니터(136)상의 장면에 응답한다면, 출발-스트림 모니터 지연 시간량은 1/2초 내지 3/4초이며 출력 모니터 지연은 1/2초이다. 지시자가 도달-스트림 모니터(134)상의 장면에 응답한다면, 도달-스트림 모니터(134)는 연속적이고 출력 모니터(132)는 이후에 0 내지 1/4초 사이의 새로운 장면으로 스위칭된다.
“가장 이른(soonest)” 또는 “다음의(next)” 스플라이싱 모드의 선택은 운영상의 선택이고, 부조화 효과(disconcerting effect)(지연 또는 백업)가 최소로 거부될 수 있는 것에 기초될 수 있다. 이러한 영향을 완화시키기 위해 지연 시간량이 스플라이서 입력에 삽입될 수 있다. 이러한 지연이 모니터 지연과 매칭되고, 모니터가 지연의 입력에 연결된다면, 모니터 장면과 버튼 동작 사이의 명백한 지연은 줄어들지만, 최종 출력에 대한 지연은 더욱 커진다. 또한, 별개 모니터 제어 유닛이 비트스트림 스위칭을 시뮬레이팅하고 비트스트림 스위치의 시뮬레이팅된 결과를 도시하기 위해서 구축될 수 있으며, 이렇게 하여 지시자에 더욱 많은 융통성을 제공한다.
도 3은 도 1의 스플라이서(300)에 대한 상세 블록도를 나타낸다. 스플라이서(300)는 출력 비트스트림(S8)으로서 제 1 입력 비트스트림(S6) 및 제 2 입력 비트스트림(S7) 중의 하나를 선택한다. 출력 비트스트림(S8)은 재시간설정된(retimed) 출력 스트림(S9)을 형성하기 위해 선택적으로 타임 스탬핑된다(time stamped). 제 1 및 제 2 입력 비트스트림(S6 및 S7)은 예시적으로, 적어도 비디오 및 오디오 기본 스트림을 포함하는 MPEG을 따르는 트랜스포트 스트림이다. 비디오 및 오디오 기본 스트림은 패킷화된 기본 스트림(PES) 포맷일 수 있다.
다음 설명을 위해, 제 2 입력 비트스트림(S7)이 출력 비트스트림으로서 현재 선택되고(즉, S7은 출발-스트림임) 제 1 입력 비트스트림(S6)은 스플라이싱 동작 후 출력 비트스트림으로서 선택될 것이다(즉, S6은 도달-스트림임).
제 1 입력 비트스트림(S6)은 제 1 비트스트림 검사기(310A) 및 제 1 동기화 버퍼(320A)에 연결된다. 제 1 비트스트림 검사기(310A)는 제 1 입력 비트스트림(S6)에 포함된 입력 지점에 대해 제 1 비트스트림을 검사한다. 입력-지점이 발견되었을 때, 동기화 버퍼의 내용이 폐기되고(즉, 버퍼는 “플러싱되고”), 입력-지점은 동기화 버퍼의 제 1 메모리 부분에 저장된다. 동기화 버퍼는 선입선출(FIFO)버퍼로서 구성될 수 있다. 입력-지점을 탐색하고 버퍼를 플러싱하는 프로세스는 제 1 입력 비트스트림(S6)이 스플라이서에 의해 선택될 때까지 반복된다. 이러한 방식으로, 현재 출력되지 않는 스트림의 동기화 버퍼의 말단에 위치된 입력-지점이 항상 존재한다. 제 1 동기화 버퍼(320A)의 출력 스트림(S3A)은 스위치 제어기(340) 및 제 1 작업 버퍼(330A)에 연결된다. 제 1 작업 버퍼(330A)는 패킷 스위칭 유닛(350)에 연결된 출력신호(S4A)를 형성한다.
제 2 입력 비트스트림(S7)은 제 2 비트스트림 검사기(310B) 및 제 2 동기화 버퍼(320B)에 연결된다. 제 2 입력 비트스트림(S7)이 출력 스트림으로서 선택되지 않았다면, 제 2 비트스트림 검사기(310B) 및 제 2 동기화 버퍼(320B)는 제 1 비트스트림 검사기(310A) 및 제 1 동기화 버퍼(320A)에 대해 상기한 바와 동일한 방식으로 동작될 것이다. 제 2 비트스트림 검사기(310B)는 제 2 입력 비트스트림(S7)에 포함된 출구 지점을 위한 제 2 비트스트림을 검사한다. “선택된 모드(selected mode)” 동작에서, 제 2 비트스트림 검사기(310B)는 사용되지 않으며 제 2 동기화 버퍼(320B)는 지연된 비트스트림(S3B)을 형성하는 일정한 지연 버퍼로서의 역할을 한다.
지연된 비트스트림(S3B)은 작업버퍼(330B) 및 스위치 제어기(340)에 연결될 수 있다. 제 2 작업버퍼(330B)는 패킷 스위칭 유닛(350)에 연결된 출력신호(S4B)를 발생시킨다. 제 2 작업버퍼(330B)는 이전의 오디오 패킷과 현재 비디오 패킷을 중첩시키기에 충분히 오래기간동안 선택된 비트스트림을 유지한다. 이것은 오디오 프레임이 스플라이싱이 이루어진 후 완료까지 계속되도록 한다. 오디오 및 비디오 프레임의 동기화는 아래에서 더욱 상세히 설명되며 본 명세서에서 참조문헌으로서 통합되고 동시에 출원된 미국 특허출원 제 08/864,321 호(ATTORNEY DOCKET 12070)에서 상세히 설명된다.
스플라이싱 결정은 제어기에 의해 행해지며(예로서, 제어기(105)) 제어신호(SELECT)를 통해 스위치 제어기(340)에 연결된다. 스플라이싱 결정이 “다음 기회에 무결절성으로 스플라이싱할 것”이라는 명령과 동일하다고 가정하면, 스위치 제어기(340)는 출력-지점을 위해 현재 선택된 출력 스트림(즉, 비트스트림 S3B)을 스캐닝하므로써 응답한다. 입력-지점은 제 1 동기화 버퍼(320A)의 말단에 위치하는 것으로 가정한다. 출력-지점이 출발-스트림에 도달할 때, 스위치 제어기(340)는 제어 신호(A/B)를 통해, 스위치(350)로 하여금 도달-스트림으로부터 스위치를 통해 선택적인 헤더 조정기에 비디오 패킷을 연결하기 시작하게 한다. 적절한 시간에 도달-스트림내의 임의의 오디오 패킷도 스위칭된다.
선택적인 헤더 조정기(360)는 재시간설정된 출력 스트림(S9)을 형성하기 위해 선택된 출력 스트림(S8)에서 타임-스탬프를 변경한다. 선택된 스트림(S8)의 프로그램 클록 기준(program clock reference;PCR), 프리젠테이션 타임 스탬프(presentation time stamp;PTS) 및 디코드 타임 스탬프(decode time stamp;DTS)를 재시간설정하는 것은 스플라이스가 디코더에 대해 사실상 무결절성 것을 보장하기 위해 필요할 수 있다. 헤더 조정기(360)는 로컬 PCR 및 PCRB 발생기(364)에 의해 이용되는 27㎒(로컬) 스테이션 클록(362)을 포함한다. 프리젠테이션 및 디코드 타임 스탬프를 재시간설정시키기 위해, 선택된 트랜스포트 스트림(S8)을 부분적으로 디코딩(즉, 패킷화된 기본 스트림(packetized elementary stream;PES)층)할 것이 필요하다. PTS 및 DTS의 부분적인 디코딩 및 재시간설정은 PTS 및 DTS 재시간설정된 스트림(S8P)을 발생시키기 위해 PTS와 DTS 검출하고 재시간설정하는 유닛(366)에 의해 수행된다. PTS 및 DTS 재시간설정된 스트림은 재시간설정된 트랜스포트 스트림(S9)을 발생시키기 위해 PCR 검출 및 재시간설정된 유닛(368)에 의해 타임 스탬핑되고 전송 인코딩된다. 헤더 조정기의 대안 실시예는 본 명세서에서 참조문헌으로서 통합되고 동시에 출원된(Attorney Docket 12389)인 미국 특허출원 제 08/864,326 호에 상세히 설명된 PTS-DTS 재시간설정기(retimer)이다.
상기한 바와 같이, 본 발명은 다양한 기능을 수행하기 위해 프로그래밍된 범용 컴퓨터 시스템을 이용하여 구현될 수 있다. 도 3의 실시예는 버퍼링을 제공하기 위해 메모리의 일부분을 이용하는 컴퓨터 프로그램으로서 구현될 수 있고, 검사, 제어, 스위칭 및 헤더 조정 기능에 중점을 둔 알고리즘으로 구현될 수 있다. 상기한 바와 같이, 스플라이서(300)는 선택신호(SELECT)를 승인하는데 사용되는 승인신호(ACKNOWLEDGE)를 발생시키며 스플라이싱 동작(예를 들어, 스플라이싱의 정확한 시간, 에러조건 등)에 대한 상세한 사항을 제공한다. 스플라이싱 루틴은 도 2를 참조하여 설명된다.
도 2는 본 발명에 따른 스플라이싱 루틴을 나타낸다. 스플라이싱하라는 결정이 내려졌을 때 스플라이싱 루틴은 단계(202)로 들어간다. 이 설명을 위해, 현재 선택된 스트림(출발-스트림)(S4B)으로부터 다른 스트림(도달-스트림)(S4A)으로 무결절성으로 스플라이싱하는 것에 대한 결정이 내려진 것으로 가정된다. 상기 결정은 단계(204)에서 검사된다. 단계(202)의 결정이 가능한 한 신속하게 스플라이싱하는 것이라면, 상기 루틴은 단계(208)로 간다. 다음 입력-지점(예로서, 도달-스트림에 현재 버퍼링된 GOP를 건너뜀)에서 스플라이싱할 것으로 결정된다면, 동기화 버퍼(예를 들어, 320A)는 플러싱된다. 도달-스트림 동기화 버퍼(예로서 320A)가 저장된 유효 입력-지점을 가지며(단계 208) 출발-스트림이 유효 출력-지점에 있다면(단계 210), 스플라이싱이 행해지고(단계 220) 루틴은 종료된다(단계 230). 스플라이싱 결정(단계 202)이 내려진 상황(context)은 무결절성으로 스플라이싱을 수행하는데 필요한 정보의 양과 관련이 있다. 스플라이싱 결정이 플레이-투-에어 편집 리스트(edit list)를 만드는 상황에서 행해진다면, 스트림이 지연-파라미터의 값과 동일 값을 갖도록 스플라이싱될 것이 필요하다. 스플라이싱 결정이 라이브 프로덕션(live production)을 생성하는 상황에서 내려진다면, 스플라이싱되어야 할 스트림은 동작 요건을 만족시키도록 충분히 흔하게 발생하는 스플라이싱 지점 및 매칭 지연-파라미터를 가지도록 스플라이싱되는 것이 필요하다. 스플라이싱 결정이 라이브 프로덕션을 생성하는 상황에서 내려진다면, 프로덕션은 서버에 저장된 정보를 포함하며, 예상된 스플라이스-지점이 (예로서 스플라이싱 지점 카운트다운 또는 스플라이싱 테이블을 통해) 곧 도달할 것이라는 것을 아는 것이 유용하다. 스플라이싱 결정 및 이와 관련된 문제가 아래에서 설명된다.
이제 본 발명은 다양한 정보 스트림을 수신, 처리 및 전송하는 다수의 개별 동작 환경(예로서 서버 또는 에디트-슈트(edit-suit))을 포함하는 디지털 텔리비젼 스튜디오의 관점에서 설명된다. 동작 환경, 또는 “상호 운영가능한 아일랜드들(islands of interoperability)”은 다양한 정보 스트림 상에서 하나 이상의 동작을 수행하도록 상호연결될 수 있다. 스튜디오 출력은 ATSC 방송, 케이블, 전화 및 위성 전송 등에 의해 일반 사용자(예를 들어, 공중)에게 전달될 수 있다. 스튜디오 출력은 또한 서버에 또는 CD-ROM 또는 비디오 테이프 상에 나중의 사용을 위해 저장될 수 있다. 본 발명은 또한 비디오 원격화상회의(teleconferencing) 및 기타 응용에 유용할 수 있다.
방송고객에게 전달될 스트림은 예를 들어 ATSC 표준을 만족시켜야 하지만, 모든 내부 스튜디오 정보를 전달할 필요는 없다. 예로서, 높은 비트-레이트 스튜디오 포맷은 단지 스튜디오 또는 스튜디오와 유사한 환경에서만 유용하다. 스플라이싱을 취급할 때, 스트림 내에는 소비자 디코더(consumer decoder) 내에 의미없는 정보가 있을 수 있지만, 이것은 스튜디오 스플라이싱에 필요하다.
도 4는 본 발명을 포함하며 다수의 상호동작 가능한 아일랜드를 포함하는 디지털 스튜디오의 블록도이다. 도 4의 디지털 스튜디오(400)는 상호동작 가능한 아일랜드(401, 402 및 403 내지 409)를 포함한다. 디지털 스튜디오(400)는 또한 제 1 압축된 비트스트림 소스(110), 제 2 압축된 비트스트림 소스(120), 스플라이서(300), 제어기(105) 및 선택적 스플라이스 모니터링 유닛을 포함한다. 예시적으로 트랜스포트 스트림 인코더로부터의 “라이브 피드(live feed)”인, 제 1 압축된 비트스트림 소스(110)는 MPEG를 따라는 제 1 트랜스포트 스트림(S6)을 생성한다. 예를 들어, 비디오 및 오디오 기본 스트림 및 트랜스포트 스트림을 저장하는(예를 들어 비디오 디스크 테이프 기계, 또는 다른 저장 장치와 같은) 서버인 제 2 압축된 비트스트림 소스(120)는 MPEG를 따라는 제 2 트랜스포트 스트림(S7)을 형성하기 위해 저장된 스트림을 인코딩한다. 제 1 및 제 2 압축된 비트스트림 소스(110 및 120)는 도 1의 비트스트림 스플라이싱 시스템(100)에 대해 상기한 바와 실질적으로 동일한 방식으로 동작한다. 디지털 스튜디오(400)는 도 1의 비트스트림 스플라이싱 시스템(100)에 대해 상기한 바와 같은 기능을 수행하고, 하기에서 설명되는 기타 기능을 수행하는 제어기(105)를 포함한다. 아일랜드(300)는 도 1의 비트스트림 스플라이싱 시스템(100)의 스플라이서(300)와 거의 같다.
각각의 아일랜드들은 다수의 정보 스트림을 수신한다. 예를 들어, 아일랜드들(401 및 402)은 각각 네트워크 피드(NETWORK FEED) 및 로컬 피드(LOCAL FEED)로부터 정보 스트림을 수신한다. 제어기(105)는 제어채널(C)을 통해 각각의 아일랜드와 통신한다. 제어채널(C)는 스튜디오를 통해 (즉, 아일랜드들 사이에) 정보가 흐르도록 유도하고, 아일랜드 내에서 정보를 처리하도록 유도하기 위해 사용된다. 제어기(105)는 스플라이싱 결정, 및 의도된 스플라이스와 연관된 임의의 필요한 파라미터를 제공한다. 아일랜드는 다양한 스플라이싱 동작을 (제어 채널(C)을 통해) 수행, 모니터링 및 승인응답함으로써 응답한다.
본 발명에 따른 디지털 스튜디오는 출력 비트스트림을 형성하기 위해 수신된 비트스트림에 대해 특정한 처리기능을 수행하는 상호 연결된 “스플라이싱 아일랜드들(splicing islands)” 그룹으로서 설명될 수 있다. 이것은 아일랜드가 하나 이상의 출력 비트스트림(예로서,S9, OUTPUT STREAM)을 형성하기 위해 제어기(105)를 통해 서로 협동하는 이산적인 동작환경(예로서, 저장환경, 에디팅 환경 및 처리환경 등)을 개별적으로 형성하기 때문이다. 각각의 아일랜드는 공지된 지연-파라미터 값으로 동작하며 아일랜드 내의 모든 스플라이싱은 (이상적으로) 무결절성이다. 스플라이싱 및 처리기능은 제어기(105)의 일반적인 제어하에 있지만, 필요에 따라 로컬으로 제어될 수 있다. 예를 들어, 편집국(editing station)에 앉아있는 오퍼레이터는 논리적으로 하나 이상의 아일랜드를 포함할 수 있다. 편집될 스트림은 제어기(105)로부터 제어채널(C)을 통해 전송된 명령에 응답하여 편집 아일랜드(editing island)(예로서 아일랜드(407))으로 루팅된다. 상기 명령에 응답하여 신호는 편집 아일랜드(예로서 아일랜드(407))에서 저장유닛(도시되지 않음)에 있는 저장되기 이전에 여러 아일랜드(예로서, 406 및 300)를 통해 스위칭될 수 있다.
대안적인 스튜디오 운영 모드는 결절성 모드로 하나 이상의 아일랜드를 제어가능하게 동작시키는 것이다. 결절성 모드는 비트스트림 사이의 스플라이스 또는 기타 전이가 급속히 발생되어야 하고, 비트스트림 열화의 범위가 허용될 수 있는 여러 환경에서 필요로 될 수 있다. 결절성 스위칭은 열화된 비트스트림을 수신하는 후속하는 아일랜드에 전파되는 에러를 생성할 수 있음을 유의해야 한다. 이들 에러는, 필요하다면, 손상되거나 열등한 액세스 유닛 또는 액세스 유닛 그룹(예로서, 비디오 프레임)을 탈락시킴으로써, 또는 추가의 액세스 유닛을 부가함으로써 완화될 수 있다. 예로서, 짧은 지연-파라미터를 갖는 도달-스트림이 긴 지연-파라미터를 갖는 출발-스트림 상에 스플라이싱되다면, 스플라이싱 동작은 무결절성으로 될 가능성이 있다(즉, 버퍼는 오버플로우될 가능성이 있다). 이 경우에, 프레임은 오버플로우 조건을 방지하기 위해 탈락될 수 있다. 또한, 긴 지연-파라미터를 갖는 도달-스트림이 짧은 지연-파라미터를 갖는 출발-스트림 상으로 스플라이싱될 때, 버퍼가 채워지는 동안 타임스탬프가 다수의 프레임 반복을 유발하도록( 적, 프레임을 추가하도록) 스플라이서가 타임스탬프를 조정할 필요가 있다. 버퍼는 또한 현재 사용중인 지연-파라미터 값을 구축하기 위해 짧은 지연-파라미터 시퀀스의 끝에서 짧은, 전부-블랙인(all-black) 프레임을 스플라이싱함으로써 증대될 수 있다.
도 1, 3 및 4의 예시적인 실시예에서, 스플라이싱 동작은 라우팅 스위처, 플레이-투-에어 스위처, 프로덕션 스위처 또는 기타 스위처와 같은, 동작유닛(예로서, 스플라이싱 아일랜드)에서 발생할 수 있다. 따라서, 다수의 데이터 포맷 및 비트 레이트를 지원하는 것이 바람직하다. 예로서, 이른바 422@HIGH 및 420@HIGH 텔리비젼 스튜디오 포맷의 각각은 복수개의 화상포맷 및 비트 레이트를 지원한다. 그에 따라, 예로서 1280×960 화소를 포함하는 비트스트림, 1920×1080 화소를 포함하는 비트스트림의 말단에 60㎐ 프로그레시브 스캔 화상(progressive scan picture), 59.94㎐ 인터레이싱된 화상(interaced picture)을 스플라이싱할 것이 필요하다. 더욱이, 155Mb/s 스트림의 말단 상으로 45Mb/s 스트림을 스플라이싱할 것이 필요하다.
상기한 스플라이싱 예는 모두 스플라이싱되는 스트림이 매칭 지연 파라미터를 갖는다면 무결절성으로 스플라이싱될 수 있다. 그러므로, 스플라이싱 결정을 행하는 제어기가 스플라이싱되어야 할 다양한 스트림의 지연 파라미터를 알 수 있게 하는 것이 중요하다. 스트림의 지연 파라미터는 스트림을 수용하는 동작 유닛에 의해 계산될 수 있고 스트림의 헤더정보의 일부로서 스트림 내에 포함될 수 있다. 도 3의 스플라이서(300)에서, 스위치 제어기(340)는 입력 스트림(S6,S7)의 지연 파라미터를 계산하는 비트스트림 계산기를 포함한다. 지연 파라미터 계산은 비트스트림 검사기(310A, 310B) 또는 선택적인 스플라이스 모니터(130)에 의해 수행될 수 있다는 것을 유의해야 한다.
정보 스트림을 스플라이싱하는 다른 중요한 태양은 스플라이싱되어야 할 스트림에서 입력-지점 및 출력-지점 위치를 결정하는 것이다. 무결절성 스플라이싱을 적절히 수행하기 위해, 도달-스트림의 입력-지점 및 출발-스트림의 출력-지점을 발견하는 것이 필요하다. 더욱이, 스플라이스 세그먼트는 상이한 지연-파라미터 값을 갖는 입력-지점 및 출력-지점을 포함한다. 적절한 스플라이싱 지점을 찾을 수 있는 여러 선택사항이 있다.
첫째, 전체 도달-스트림 또는 출발-스트림은 실시간(즉, “즉시로”)으로 스플라이서에 의해 분석되어질 수 있다. 실시간 분석은 입력-지점이 스트림이 자신의 끝에서 플레잉하지 않고 스트림으로부터 용이하게 유도될 수 없기 때문에 도달-스트림에 대해선 곤란하다. 스트림이 잘 처리된 것으로 알려지더라도, I-프레임의 길이는 미리 알 수 없다. 제 1 I-프레임이 종료되고, 프레임 길이가 알려질 때까지, 이러한 정보를 사용하기에는 너무 늦을 수 있다. 더욱 강력한 연산장치를 사용하여 상기와 같은 문제점을 극복할 수 있음을 유의해야 한다. 실시간 분석은 출발-스트림의 지연 파라미터가 공지되었기 때문에(입력-지점으로부터 또는 그밖의 지점으로부터의) 출발-스트림에 대해 더욱 용이하며, 스트림에서의 프리젠테이션 타임 스탬프는 프레임이 디코더 버퍼로부터 떠나는 때를 지시하며, 비트 카운트(bit count)(또는 패킷 카운트)는 프레임이 디코더 버퍼로 들어가는 때를 지시한다. 프레임 레이트는 또한 시퀀스 헤더에서 알 수 있다. 상기한 정보에 의해, 새로운 프레임의 시초에서, 이전 비디오가 출력-지점 상태인 버퍼를 떠난 것을 계산할 수 있게 된다. 이 정보는 단지 수 비트 후에 도달한다.
둘째, 외부 테이블은 스플라이싱 지점이 있는 곳의 표시를 포함하도록 생성될 수 있다. 이러한 접근 방법은 입력-지점 및 출력-지점 위치에 대한 정보가 그 밖의 곳에서 (예로서, 스트림 인코딩 프로세스 동안) 계산되었다고 가정한다. 이러한 접근 방법은 입력-지점 및 출력-지점이 (예로서, 표식(marker)으로부터 N번째 패킷, 일시 기준 후 첫번째 패킷 등과 같은) 몇몇 방식으로 인덱싱될 것을 필요로 한다. 이러한 접근 방법은 정보 스트림이 처리됨에 따라 정보 스트림과 연관된 스플라이스 테이블의 갱신, 및 정보 스트림이 (예를 들어, 위성링크를 통해) 전송됨에 따른 테이블의 전송 또는 재생성을 필요로 한다. 스플라이싱 위치를 결정하기 위해 개별적인 정보 테이블을 사용하는 것은, 이처럼 테이블을 사용하는 것이 전송 인코딩 및 디코딩이 스트림 상에서 수행되어야 할 때 덜 실질적일 수 있지만, 동작가능한 서버 또는 아일랜드 내에서 실제적이라는 것을 유의해야 한다.
셋째, 입력-지점 및 출력-지점 표식은 직접 정보 스트림 내에 위치될 수 있다. MPEG을 따르는 정보 스트림은 상기와 같은 표식이 포함될 수 있는 헤더부분을 포함한다. 시스템 레벨, 트랜스포트 레벨 및 PES 레벨에서 입력-지점 및 출력-지점 표식 삽입에 적절한 헤더 부분이 있다. 또한 기본 스트림에 표식을 삽입할 수 있는 경우도 있다.
입력-지점 및 출력-지점은 마킹되어야 하며, 이상적으로는, 마킹은 시스템 레벨, 트랜스포트 레벨 및 PES 레벨에서 발생되어야 한다. 입력-지점 및 출력-지점 표식의 삽입 이외에, 스트림 또는 스플라이싱 세그먼트와 연관된 지연-파라미터 및 오디오 오프셋(즉, 연관된 비디오 프레임으로부터 오디오-프레임 경계의 변위)도 하나 이상의 정보 스트림 층에 삽입되어야 한다. MPEG 카운트-다운 특징이 예로서 출력-지점이 접근하고 있거나(내림차순으로 양의 카운트다운) 입력-지점이 전달된(오름차순으로 음의 카운트다운) 것을 나타내는데 사용되어야 한다. 여러 사업적인 이유로 MPEG 또는 ATSC 신호를 최종 사용자(즉, 소비자)에게 전송하기 이전에 이들 표식을 제거하는 것이 바람직할 수 있다. 최종 사용자는 비디오를 스플라이싱하길 원할 수 있지만, 최종 사용자는 자동적으로 상업광고를 제거시킬 수 없다는 것이 중요하다.
상기한 여분의 마킹(marking)은 시스템 설계자에게 최대의 설계 융통성을 제공하며 스플라이싱 동작이 무결절성으로 행해지는(즉, 적절한 입력-지점 및 출력-지점에서 행해지는)것을 보장하는데 도움을 주는 여분의 동작을 제공한다.
비트스트림 발생
무결절성 스플라이싱을 보장하기 위해, 일정한 방식으로 스플라이싱되어야 할 비트스트림을 생성하는 것이 필요할 수 있다. 스플라이싱될 수 있는 비트스트림의 생성에 대한 두가지 양상; 즉, 스트림 내용 생성 및 적절한 스플라이스 제어 정보(즉, 입력-지점 및 출력-지점 표식) 삽입이 있다. 단순화를 위해, 원하는 지연-파라미터의 값은 미리 알려진 것으로 가정한다. 또한, 얼마나 자주 입력-지점이 요구되는 지와 같은 다른 목표도 알려져 있다.
모든 I-프레임을 저-지연 포맷으로 인코딩하는 가장 간단한 경우에 대해, 비트스트림의 생성은 속도-제어 문제가 된다. 각각의 프레임에 대해, 초과되지 않을 비트-카운트가 존재한다. 속도-제어 임무는 비트-버짓(bit-budget) 내에서 가능한 최고의 품질을 갖는 각각의 프레임을 인코딩하는 것이다. 프레임-당 비트 버짓은 프레임 레이트로 나누어진 전송 레이트로서 계산된다.
복합 GOP 인코딩을 위해, 생성된 스트림의 순방향 분석이 행해질 수 있다. 프레임 중에서 비트의 할당은 디코더 버퍼가 언더플로우가 아님을 보장하도록 행해져야 한다. 생성된 스트림에 적용될 수 있는 제 1 제약조건은 고정된 GOP 구조(예로서, “...IBBPBBPBBPBBP..."과 같은 디스플레이 순서로 배열되는 13개의 프레임)로서 스플라이스 세그먼트를 한정하는 것이다. 이러한 접근 방법은 불필요하게 열화된 화질을 없애는 간명한 방법이다. 예로서, “...IBBPBBPBBPBBP..." GOP의 최종 P 프레임상에서 커팅된 장면은 매우 작은 비트 버짓으로 재생될 것이다. 하지만, 모든 응용에 이상적인 어떠한 단일 GOP 구조도 없다. 또한, 이러한 접근 방법에 함축된 융통성의 손실은 아마 수용될 수 없을 것이다.
복합 GOP 인코딩에 적용될 수 있는 제 2 제약조건은 소정 시간 간격(예로서, 각각 2초 및 0.5초)으로 입력-지점 및 출력-지점을 삽입하는 것이다. 이러한 접근방법은 특정 GOP 구조의 사용을 필요로 하지 않으므로, 인코더는 입력 화상에 기초한 프레임 유형을 자유롭게 할 수 있다.
MPEG 스트림 또는 스플라이스 세그먼트 사이에서 스위칭할 때 해결되어야 할 다양한 속도-제어 문제가 있다. 이와 같이, 코딩된 화상 비트스트림의 내용이나 크기를 제한하는 것이 필요할 수 있다. 하나의 속도-제어 문제는 디코더 버퍼로 전송된 데이터 양에 관한 것이다. 예로서, 임의의 출력-지점에서의 (비트 단위로 측정된)버퍼 내용이 최근 입력-지점에서 측정된 (비트 단위로 측정된) 디코더 버퍼 내용 보다 작거나 같다면 디코더 버퍼는 오버플로우되지 않을 것이다. 실제 버퍼의 수를 알 필요는 없으며, 디코더 버퍼 내의 비트의 수가 입력-지점으로부터 출력-지점으로 증가하지 않도록 보장하는 것이 바람직하다. “스터핑 비트(stuffing bit)”는 유효 비트(real bit)가 사용될 때 버퍼로부터 사라지고 특정 전송 속도를 만족시키도록 포함되기 때문에, 상기 스터핑 비트는 카운트되지 않음을 유의해야 한다.
또 다른 속도 제어 문제는 버퍼가 다음 프레임을 수신하는 시간과 연관한 디코딩된 정보 프레임의 프리젠테이션 시간에 관한 것이다. 예로서, 디코더 버퍼는, 출력-지점에서 아직 디스플레이되지 않은 버퍼 내용을 디스플레이하는 시간(시간 유닛으로 측정된)이 제 1 I-프레임이 특정 비트 레이트로 디코더에 전달되는 (시간 단위로 측정된) 시간보다 크다면 언더플로우되지 않을 것이다. 다시 말하자면, 다음 I-프레임(도달-스트림의 제 1 프레임)은 버퍼가 비워지기 이전에 디코더 버퍼에 전달되어야 한다.
상기한 시간양은 스트림에 대한 “지연-파라미터(Delay-Parameter)”에서 정의될 수 있다. (적절한 비트 레이트로 프레임을 전송하기 위한 시간으로 측정된) 프레임 크기는 무결절성 스플라이싱을 보장하기 위해 동작 지연 파라미터와 일치하여야 한다. 이러한 지연 파라미터는 스트림의 시작/끝에서의 말단-에서-말단까지의 (시간 단위로 측정된) VBV 크기 및 (시간 단위로 측정된)VBV 내용이다. 추가의, 정의된 값은 포괄적으로 물리적 버퍼의 (비트 단위인)최대 크기이다. 이 최대 크기는 MPEG 프로파일(profile) 및 레벨 지시 기준에 의해 내포된 최대 VBV 크기보다 커야 한다. 마지막으로, 출발-스트림의 출력-지점에서 타임 스탬프는 출발-스트림의 최종 프레임의 DTS 및 PTS 보다 큰 스트림의 한 프레임 타임이어야 한다.
상기한 바와 같이, 스플라이싱 결정과 실제 스플라이싱 프로세스를 구별하는 것이 중요하다. 스플라이싱 결정은 사람에 의해 행해진다. 이 결정은 텔리비젼 스튜디오에 의해 전송되어야 할 프로그래밍 리스트를 생성하는 프로세스에서, 또는 스튜디오가 전송하는 바와 같은 실시간으로 행해질 수 있다. 스플라이싱 결정은 매일 12:05 AM에 스테이션 식별 방송을 스튜디오 전송으로 스플라싱하기 위해 프로그래밍된 명령과 같은, 몇몇 대리 프로세스(surrogate process)에 의해 행해질 수 있다. 이 결정은 앞으로 또는 즉시 특정시간에 스플라이싱하도록 결정될 수 있다.
스플라이싱되어야 할 여러 스트림 파라미터는 이들 파라미터가 실제 스플라이싱 동작 이전에 변경될 지라도, 결정시에 알려질 수 있다. 예로서, 스플라이싱 결정은 보통 스트림 길이와 VBV 지연 파라미터 등과 같은, 도달-스트림에 대한 인식으로써 행해진다. 출발-스트림은 결정시에 알려지지 않을 수 있다(예로서, 일별 메시지는 삽입시간에 전송되어야 할 스트림에 삽입된다).
결정은 다음의 요소를 포함한다. 먼저, 도달-스트림을 방출하는(source) 동작 유닛, 스플라이스를 수행하는 동작 유닛 및 스플라이스될 스트림 또는 세그먼트를 포함한다. 둘째, 스플라이싱이 발생할 시간을 포함한다. 상기 시간은 “지금(now)”, 하루의 특정시간 또는 몇몇 논리상태의 발생일 수 있다. “지금”은 스플라이스-지금(splice-now) 메시지의 도달 후 다음의 스플라이스를 행하는 것을 의미한다. 상기 지금 결정(now decision)은 스플라이스-지금 메시지를 보낼 것을 결정하는 몇몇 외부 제어 프로세스 또는 직접적인 사람의 동작(예를 들어, 버튼-누름)에 의해 발생한다. 논리조건은 특정 정보 스트림내의 타임-코드(예로서, SMPTE)의 어발생, 비디오 또는 오디오 스트림내의 타임 스탬프(예로서, PTS 또는 DTS), 정보 스트림 내의 기준시간또는 기타 검출가능한 이벤트(예로서, 입력 스트림 PID 변화)의 발생일 수 있다. 논리 이벤트는 스플라이스 시간을 결정하고 스플라이싱을 위한 적절한 스트림을 선택하기 위해 논리적 방법으로 조합될 수 있다.
결정이 행해진 후, 상기 결정은 적절한 동작유닛과 통신한다. (예로서, 다수 논리 이벤트를 조합하는 복잡도에 기인하여) 에러 가능성이 있기 때문에, 제어 엔터티가 스플라이싱 프로세스를 자세히 모니터링하고 에러 조건 및 기타 조건에 적합하도록 하는 것이 중요하다.
결정의 결과로서, 스플라이싱 작업하는 부분은 올바른 시간에 동작유닛의 올바른 입력에 적용되는 것을 보장하는 프로세스이다. 이것은 전체 시스템 동작의 기능이고, 서버로부터 스위치로의 정보의 흐름 동기화를 포함할 수 있다. 스플라이싱 결정을 수용한 후 스플라이서는 스플라이싱을 행한다. 무결절성 스플라이싱 프로세스는 도달-스트림이 입력-지점으로 들어가고, 출발-스트림이 출력-지점에서 나올 것을 필요로 하며, 가능하게 하나 이상의 버퍼 및 타이밍 파라미터를 관리할 것을 필요로 한다.
비디오 스플라이싱의 대표적인 예
상기 개념은 MPEG 비트스트림 스플라이싱 동작의 여러 예를 이용하여 설명된다. 첫 번째 예는 모든 I-프레임 저-지연 스플라이싱 예이다. 도달-스트림은 I-프레임 만을 포함하는 초 당 24 또는 30 프레임(fps)의 비디오 스트림을 포함한다. 도달-스트림의 지연 파라미터는 최저 프레임 레이트(즉 24fps이면 42mS)에서 한 프레임 타임과 같다. 본 예에서 I-프레임의 각각은 프레임에 대한 비트 레이트에서 한 지연시간 단위(즉, 하나의 42ms 프레임 타임)로 전달될 수 있는 것보다 적은 비트를 포함한다. 비트 레이트가 150Mb/s이면, 30fps 프레임은 단지 5Mb를 포함한다. 비트 레이트가 150Mb/s이면, 24fps 프레임은 단지 6.25Mb를 포함한다.
동일 파라미터를 갖는 출발-스트림의 최종 비트가 디코더 버퍼에 들어갈 때, 최종 프레임이 나타내져야 할 때를 지시하는 프리젠테이션 타임 스탬프는 앞으로 42mS 값을 갖는다. 따라서, 출발-스트림이 30㎐(33mS 프레임 레이트)이면, 출력-지점의 9mS 후 출발-스트림의 최종 프레임은 디코더 버퍼로부터 취해질 것이며, 33mS 후 도달-스트림의 첫째 프레임이 필요로 될 것이다. 도달-스트림이 또한 30Hz이면, 제 1 프레임은 요구되기 전에 9mS로 전달될 것이다. 출발-스트림이 24㎐이면, 도달-스트림도 24㎐이고, 도달-스트림 프레임은 제 시간에 도달한다. 출발-스트림의 최종 비트가 전달되었을 때, 출발-스트림이 60㎐(17mS)이면, 디코더 버퍼는 2프레임(33mS)을 포함하며 디코더는 9mS 동안 첫 번째 프레임을 이용하지 않을 것이다. 비트가 시퀀스 비트 레이트에 대응하는 비트 레이트로 전달되는 한, 출발 및 도달 시퀀스의 비트 레이트가 상이하다면, 프레임을 로드하는 시간은 올바른 것으로 존재한다. 요약하면, 스트림은 비트 레이트와 프레임-타임으로부터 계산된 출력-지점과 입력지점 사이의 비트-카운트(즉, 비트 레이트 * 프레임-타임)로 코딩된다. 프리젠테이션 타임-스탬프는 전부 지연-파라미터와 일치하는 값(즉, 첫 번째 비트 도달 후 제 1 프레임 표현된 지연-파라미터)으로 설정된다.
두 번째 예는 복합 GOP 전송 포맷이다. 두 번째 예에 대해, 스트림은 250mS의 지연-파라미터와, “...IBBPBBPBBPBBPBBP..."인 디스플레이 순서 및 ”...IPBBPBBPBBPBBPBB..."인 (여기서, "I"는 I-프레임을, "P"는 P-프레임을, "B"는 B-프레임을 나타냄) 전송순서를 갖는 초당 30 프레임인 비디오(및 이와 연관된 오디오)스트림인 것으로 가정된다. 이 GOP 구조는 I-프레임상의 입력-지점 및 상기 I-프레임 바로 이전의 프레임상의 출력-지점을 포함한다. 각각의 출력-지점에서, 최종 P 프레임과 연관된 PTS는 앞으로 250mS이다. 속도 제어는 디코더 버퍼가 I-프레임상에서 언더플로우가 되지 않음을 보장한다. I-프레임은 250mS 이하의 비트를 포함한다. 유효-MPEG 제약조건은 I-프레임을 뒤따르는 P-프레임이 언더플로우되지 않음을 나타낸다. I-프레임이 250mS 모두를 사용할 필요는 없다. I-프레임이 250mS 모두를 사용한다면, 다음 P-프레임은 33mS 미만을 사용해야 한다(즉, I-프레임이 230mS를 사용하였다면, 53mS를 사용하기 위해, 필요하지는 않지만, P-프레임이 허용될 것이다).
세 번째 예는 다수 출력 예이다. 세 번째 예를 위해, 스트림은 “... IPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPIPPPP..."와 같은 GOP 구조를 갖는 초당 30 프레임인 비디오(및 연관된 오디오) 프레임인 것으로 가정된다. 스트림은 또한 250mS의 지연-파라미터와 20Mb/s의 전송 비트 레이트(즉, 프레임 당 670Kb)를 갖는 것으로 가정된다. I-프레임이 231mS를 취하고 P-프레임이 20mS를 취한다면, 15 프레임 후, 디코더 버퍼 내용은 스트림에 대해 입력 지점 레벨 이하의 레벨로 내려간다. 이것은 다음과 같은 수식을 이용하여 계산될 수 있다.
(231+20N) = 33 * (N+1)
상기 수식은 비트가 들어가는 시간을 나타내는데, I-프레임의 231mS 만큼의 데이터와 N개의 20mS P-프레임의 합은 버퍼(N+1) 프레임이 취할 N+1 프레임 만큼의 비트 곱하기 33mS와 동일하다. 본 예에서 각각의 I-프레임은 입력-지점일 수 있고 15번째 P-프레임 후 모든 P-프레임은 출력-지점일 수 있다.
디코더 버퍼는 다음과 같이 작용한다. 스플라이싱 지점에서, 버퍼는 7 프레임을 포함하며 프리젠테이션 타임 스탬프는 최종 프레임이 250mS로 표현되는 것을 나타낸다. 7개 프레임의 각각은 비트/프레임 할당량(quata)의 20/33을 이용한다(즉, 각각의 P-프레임은 400Kb이고 버퍼는 2.8Mb를 포함한다). 다음 7개 프레임 동안에, I-프레임은 들어와서,버퍼 내용을 증가시킨다. 각각의 I-프레임은 670Kb를 추가하고 취해진 각각의 P-프레임은 400Kb를 제거하므로 버퍼는 7개 P-프레임이 취해진 후 4.7Mb를 포함한다. 그 후에 I-프레임이 표현되고, 버퍼로부터 4.6Mb를 제거하여 버퍼에 100Kb를 남긴다. 버퍼에서의 지연은 대략 제로이다. 각각의 P-프레임은 20mS에 400Kb를 추가하며 33ms마다 400Kb가 사용된다. 따라서, 버퍼에서의 지연은 프레임 타임당 13mS만큼 증대된다. 15 프레임 후, 버퍼에 저장된 지연은 지연-파라미터 값에 도달한다. 이때 다른 시퀀스에 대한 스플라이스는 버퍼가 I-프레임을 수용할 수 있기 때문에 행해질 수 있다.
본 발명의 사상을 통합하는 다양한 실시예가 상세히 도시되고 설명되었을지라도, 당업자는 이들 사상을 통합하는 기타 여러 실시예를 용이하게 구현할 수 있다.
보조 데이터 스플라이싱
보조 데이터는 다수의 MPEG 스트림에 포함된다. 이 데이터는 일반적으로 연속적이고, 미지의 길이를 갖는 끊어지지 않는 스트림으로서 표현된다. 대조적으로, 압축된 오디오 스트림은 비교적 양호하게 동작 처리되고 예측가능하다. 보조 데이터 스트림은 이제껏 설명되지 않은 지연을 갖는 대응하는 비디오 스트림과 연관될 수 있다.
스플라이싱 동작으로 보조 데이터를 처리하기 위한 여러 방법으로서,
1) 보조 데이터를 무시하고 비디오 데이터와 동일한 시간에 보조 데이터를 스플라이싱하는 단계; 2) 플레이-투-에어 스위처의 별도 경로를 통해 보조 데이터를 삽입하는 단계(상기 데이터는 프로그램 안내 또는 기타 소비자 관련 정보를 포함할 수 있음); 및 3) 보조 데이터에 대한 분할 표식(segmentation marker)들 세트를 정의하고 스위처의 상기 표식들에 의존하여 분할을 올바르게 유지하는 단계(이것은 보조 데이터 스트림의 내용에 대한 지식과 이들 스트림내의 보조 데이터 세그먼트의 길이에 대한 지식을 필요로 함)을 포함한 여러 방법이 있다. 보조 데이터는 또한 지연되어, 또는 지연없이 스위칭될 수 있고, 이 지연은 결정 수행 제어기에 의해 스위처에 전달될 파라미터일 수 있다. 보조 데이터는 보조 입력을 통해 스플라이서에 입력될 수 있다. 보조 데이터 입력에 도달하는 입력은 버퍼링되어 널 패킷(null packet)을 위한 대체로서 공간-이용가능성(space-available)을 기준으로 하여 출력 스트림에 삽입된다. 이 경우에 이것은 스트림 내에 상기와 같은 데이터를 정렬하기 위한, 그리고 예를 들어 비디오 스트림 데이터 레이트를 감소시켜 삽입된 보조 데이터를 위한 채널 성능을 제공하기 위한 기타 시스템 유닛의 책임이 된다.

Claims (10)

  1. 정보 프레임들의 시퀀스를 나타내는 복수의 정보 세그먼트들을 포함하는 비트스트림들을 스플라이싱하는 방법으로서,
    출구 표시를 검출하기 위해 제 1 비트스트림을 모니터링하는 단계로서, 상기 제 1 비트스트림은 출력에 연결되고 적어도 하나의 상기 출구 표시를 포함하며, 상기 출구 표시는 스플라이싱 세그먼트의 적절한 최종 정보 세그먼트를 지시하는 제1 비트스트림 모니터링 단계;
    제 2 비트스트림을 제공하는 단계로서, 상기 제 2 비트스트림은 적어도 하나의 입구 표시를 포함하고, 상기 입구 표시는 스플라이싱 세그먼트의 적절한 제 1 정보 세그먼트를 지시하는 제2 비트스트림 제공 단계; 및
    제어 신호, 상기 제 1 비트스트림 내의 상기 출구 표시의 검출 및 상기 제 2 비트스트림 내의 상기 입구 표시의 검출에 응답하여 상기 제 2 비트스트림을 상기 출력에 연결하는 단계를 포함하는 스플라이싱 방법.
  2. 제 1 항에 있어서, 상기 제 2 비트스트림을 제공하는 단계는,
    상기 제 2 비트스트림 내의 검출된 입구 표시에 응답하여, 상기 적절한 첫번째 정보 세그먼트 및 상기 검출된 입구 표시와 연관된 복수개의 연속적인 정보 세그먼트들을 저장하는 단계를 추가로 포함하는 것을 특징으로 하는 스플라이싱 방법.
  3. 제 2 항에 있어서,
    상기 저장 단계는 상기 제 2 비트스트림이 상기 출력에 연결될 때까지 각각의 검출된 입구 표시에 대해 반복되는 것을 특징으로 하는 스플라이싱 방법.
  4. 제 1 항에 있어서,
    상기 제어신호는 스플라이스 결정 신호를 포함하며, 상기 연결 단계는,
    검출된 출구 표시에서 상기 제 1 비트스트림을 상기 출력으로부터 분리하는 단계;
    검출된 입구 표시에서 상기 제 2 비트스트림을 상기 입력에 연결시키는 단계; 및
    스플라이스 승인 신호를 전송하는 단계를 포함하는 것을 특징으로 하는 스플라이싱 방법.
  5. 제 4 항에 있어서,
    상기 스플라이스 결정 신호는 적어도 하나의 원하는 시간 파라미터, 원하는 스플라이스 품질 파라미터 및 우선 파라미터를 포함하며,
    상기 스플라이스 승인 신호는 적어도 하나의 실제 시간 파라미터 및 실제 스플라이스 품질 파라미터를 포함하는 것을 특징으로 하는 스플라이싱 방법.
  6. 제 4 항에 있어서,
    상기 원하는 시간 파라미터는 상기 연결 단계를 수행하기 위한 원하는 시간을 지시하고,
    상기 원하는 스플라이스 품질 파라미터는 무결절성 스플라이스 품질 레벨과 같거나 낮은, 최소 스플라이스 품질 레벨을 지시하고,
    상기 실제 시간 파라미터는 상기 연결 단계가 수행된 시간을 지시하며,
    상기 실제 스플라이스 품질 파라미터는 상기 연결 단계 동안에 생성된 비트스트림의 품질 레벨을 지시하는 것을 특징으로 하는 스플라이싱 방법.
  7. 제 1항에 있어서, 상기 연결 단계는,
    상기 제 1 비트스트림과 연관된 지연 파라미터와 상기 제 2 비트스트림과 연관된 지연 파라미터를 비교하는 단계; 및
    실질적으로 동일한 상기 지연 파라미터에 응답하여 상기 제 2 비트스트림을 상기 출력에 연결하는 단계를 추가로 포함하는 것을 특징으로 하는 스플라이싱 방법.
  8. 제 7항에 있어서,
    상기 제어 신호는 스플라이스 결정 신호를 포함하며, 상기 연결 단계는,
    검출된 출구 표시에서 상기 제 1 비트스트림을 상기 출력으로부터 분리하는 단계;
    검출된 입구 표시에서 상기 제 2 비트스트림을 상기 출력에 연결시키는 단계; 및
    스플라이스 승인 신호를 전송하는 단계를 포함하는 것을 특징으로 하는 스플라이싱 방법.
  9. 제 8항에 있어서,
    상기 제 2 비트스트림 내의 검출된 입구 표시에 응답하여, 상기 적절한 제 1 정보 세그먼트 및 상기 검출된 입구 표시와 연관된 복수개의 연속적인 정보 세그먼트들을 저장하는 단계를 추가로 포함하고,
    상기 스플라이스 결정 신호는 최소한 우선 파라미터를 포함하며,
    상기 연결 단계는 미리 결정된 우선 파라미터에 응답하여 상기 저장된 정보 스트림과 연관된 지연 파라미터를 증가시키거나 감소시키는 단계를 추가로 포함하는 것을 특징으로 하는 스플라이싱 방법.
  10. 정보 스트림들을 스플라이싱하는 장치로서,
    제 1 정보 스트림을 수신하여 버퍼링된 정보 스트림을 생성하는 버퍼;
    상기 버퍼에 연결되어, 상기 제 1 정보 스트림을 수신하고 응답하여 상기 버퍼로 하여금 상기 버퍼의 출력에 상기 버퍼링된 정보 스트림의 입구 지점을 위치시키게 하는 비트스트림 검사기;
    상기 버퍼링된 정보 스트림 또는 제 2 정보 스트림을 출력에 연결시키는 스위치; 및
    상기 스위치에 연결되어, 상기 제 2 정보 스트림을 모니터링하고, 스위치 제어 신호와 상기 제 2 정보 스트림을 수신하며, 상기 제 2 정보 스트림의 출구 지점의 검출과 상기 제어 신호에 응답하여 상기 스위치로 하여금 상기 버퍼링된 정보 스트림을 출력에 연결시키도록 하는 스위치 제어기를 포함하는 스플라이싱 장치.
KR1019980709597A 1996-05-29 1997-05-29 압축된정보스트림을스플라이싱하는방법및장치 KR100517794B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980709597A KR100517794B1 (ko) 1996-05-29 1997-05-29 압축된정보스트림을스플라이싱하는방법및장치

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US60/018,554 1996-05-29
US08/864,322 1997-05-28
US8/864,322 1997-05-28
KR1019980709597A KR100517794B1 (ko) 1996-05-29 1997-05-29 압축된정보스트림을스플라이싱하는방법및장치

Publications (2)

Publication Number Publication Date
KR20000016034A KR20000016034A (ko) 2000-03-25
KR100517794B1 true KR100517794B1 (ko) 2006-03-09

Family

ID=41739713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980709597A KR100517794B1 (ko) 1996-05-29 1997-05-29 압축된정보스트림을스플라이싱하는방법및장치

Country Status (1)

Country Link
KR (1) KR100517794B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100443012B1 (ko) * 2001-12-22 2004-08-04 엘지전자 주식회사 압축데이터의 바이트열 복원 방법
EP1463309A1 (fr) * 2003-03-26 2004-09-29 THOMSON Licensing S.A. Traitement d'un format de flux de données pour la réception audiovisuelle mobile

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509013A (en) * 1993-09-01 1996-04-16 Fujitsu Limited Multiplexer control system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509013A (en) * 1993-09-01 1996-04-16 Fujitsu Limited Multiplexer control system

Also Published As

Publication number Publication date
KR20000016034A (ko) 2000-03-25

Similar Documents

Publication Publication Date Title
JP4358910B2 (ja) 圧縮された情報ストリームを接続する方法及び装置
US6038000A (en) Information stream syntax for indicating the presence of a splice point
US6101195A (en) Timing correction method and apparatus
US7477692B2 (en) Video encoding for seamless splicing between encoded video streams
EP1397918B1 (en) Splicing of digital video transport streams
US5859660A (en) Non-seamless splicing of audio-video transport streams
EP1095521B1 (en) Method and apparatus for splicing
US6806909B1 (en) Seamless splicing of MPEG-2 multimedia data streams
US6993081B1 (en) Seamless splicing/spot-insertion for MPEG-2 digital video/audio stream
US6741290B1 (en) Processing coded video
US5877812A (en) Method and apparatus for increasing channel utilization for digital video transmission
US6330286B1 (en) Flow control, latency control, and bitrate conversions in a timing correction and frame synchronization apparatus
US20060093045A1 (en) Method and apparatus for splicing
WO1998032281A1 (en) Information stream syntax for indicating the presence of a splice point
KR100517794B1 (ko) 압축된정보스트림을스플라이싱하는방법및장치
US9219930B1 (en) Method and system for timing media stream modifications

Legal Events

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

Payment date: 20110922

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20120907

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee