KR100725631B1 - 전이 스트림 발생 및 처리를 위한 방법 - Google Patents

전이 스트림 발생 및 처리를 위한 방법 Download PDF

Info

Publication number
KR100725631B1
KR100725631B1 KR1020017013137A KR20017013137A KR100725631B1 KR 100725631 B1 KR100725631 B1 KR 100725631B1 KR 1020017013137 A KR1020017013137 A KR 1020017013137A KR 20017013137 A KR20017013137 A KR 20017013137A KR 100725631 B1 KR100725631 B1 KR 100725631B1
Authority
KR
South Korea
Prior art keywords
stream
frame
transition
transport
video
Prior art date
Application number
KR1020017013137A
Other languages
English (en)
Other versions
KR20020001828A (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
Priority claimed from US09/347,213 external-priority patent/US6912251B1/en
Application filed by 라이트 찬스 인코포레이티드 filed Critical 라이트 찬스 인코포레이티드
Priority claimed from PCT/US2000/010208 external-priority patent/WO2000062552A2/en
Publication of KR20020001828A publication Critical patent/KR20020001828A/ko
Application granted granted Critical
Publication of KR100725631B1 publication Critical patent/KR100725631B1/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/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, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

전이 스트림을 발생시키고 화소 영역 처리, 오디오 영역 처리 또는 다른 데이타 영역 처리 각각을 사용하여 전이 스트림 내의 비디오, 오디오 또는 다른 데이타를 처리하는 방법이 제시된다.

Description

전이 스트림 발생 및 처리를 위한 방법{METHOD FOR GENERATING AND PROCESSING TRANSITION STREAMS}
관련된 출원들의 상호 참조
본 출원은 1999년 7월 2일에 제출된 "정보 스트림들의 정확한 프레임 무절단 접합"이라는 명칭의 미국 특허 출원 번호 09/347,213의 연속 출원(대리인 문서 번호 13235)이며, 여기에서 참조로서 통합된다.
본 발명은 통신 시스템에 관한 것으로서, 특히 무절단(seamless) 방식으로 정보 스트림을 접합(splicing)시키거나 연결(concatenating)시키는 방법에 관한 것이다.
통신 시스템에 있어서, 전송될 데이타는 사용가능한 대역폭을 보다 효율적으로 이용하기 위해 압축된다. 예를 들어, 동영상 전문가 그룹(MPEG)은 디지탈 데이타 전송 시스템에 관한 몇 가지 표준들을 공표하였다. MPEG-1으로 알려진 첫번째 MPEG는 ISO/IEC 표준 11172이고, 여기서 참조로서 통합된다. MPEG-2로 알려진 두번째 MPEG는 ISO/IEC 표준 13818이고, 여기서 참조로서 통합된다. 압축된 디지탈 비디오 시스템은 차세대 텔레비젼 시스템 위원회(ATSC) 디지탈 텔레비젼 표준 문서 A/53에 기술되어 있고, 여기서 참조로서 통합된다.
텔레비전 스튜디오 및 정보 스트림들의 다른 "고객"이 정보 스트림을 절단하지 않고 정확한 프레임 방식으로 연결시키거나 또는 접합시키는 것(예를 들면 비디오, 오디오 및 다른 관련 정보 서브 스트림을 포함하는 인코딩된 프로그램 스트림의 전송)이 중요하다. "정확한 프레임"이라 함은 인코딩된 프레임의 타입(예를 들면, I-, P- 또는 B- 프레임 인코딩)과는 상관없이 사용자에 의해 선택된 프레임에서 정확하게 접합이 이루어지는 것을 의미한다. "무절단 접합"이라 함은 연속적이고, 유용한 MPEG 스트림을 발생시키는 접합을 의미한다. 따라서, 정확한 프레임 무절단 접합기는 제1 정보 스트림을 제2 정보 스트림으로의 정확한 프레임 무절단 접합을 수행할 때 정확한 수의 프레임을 보존할 것이다(예를 들면, 상업적 표현을 위해 900개의 비디오 프레임을 포함하는 인코딩된 프로그램의 전송은 정확하게 900개의 프레임들의 "슬롯"으로 예정될 수 있다)
몇가지 알려진 방식은 다음 과정의 변형을 이용한다: "인 스트림" 및 "아웃 스트림"을 베이스밴드 또는 기초 레벨로 디코딩하고, 접합 연산 및 접합 연산된 스트림을 재-인코딩한다. 이러한 방식은 정확한 프레임 무절단 접합을 제공하지만 많은 비용을 필요로 한다.
전송 스트림 레벨에서 무절단 접합을 가능케 하는 개선된 방식에서, MPEG 및 예를 들어 비디오 정보를 포함하는 MPEG과 유사한 정보 스트림들은 각 스트림에 대해 각각 적절한 스트림 입력점 및 출력점을 나타내는 "인-포인트" 및 "아웃-포인트"를 정의함으로서 비교적 무절단 방식으로 접합될 수 있다. 예를 들어, MPEG과 같은 비디오 스트림에서 비디오 시퀀스 헤더를 포함하는 패킷은 적절한 인-포인트를 포함한다. 이러한 인-포인트 및 아웃-포인트를 포함하는 MPEG과 같은 정보 스트림은 접합 가능한 것으로 언급된다. 동화상 및 텔레비젼 엔지니어 기구(SMPTE)는 "splice points for MPEG-2 transport streams"라는 제목 하에 이러한 접합점들을 정의하는 표준 SMPTE 312M을 제안하였고, 이는 본 명세서에서 참조로서 통합된다.
불행히도, 이러한 인 포인트 및 아웃 포인트들의 배치는 이미지 프레임 인코딩 모드, 픽쳐 그룹(GOP) 구조 등과 같은 인자들에 의해 정의된다. 따라서, 정보 스트림들을 무절단 접합하려고 하는 마지막 사용자는 요구되는 접합 포인트들이 적절한 인 포인트 또는 아웃 포인트가 아닌 경우에는 "정확한 프레임" 방식으로 접합할 수 없게된다.
따라서, MPEG과 같은 전송 스트림을 무절단, 정확한 프레임 방식으로 접합하는 방법 및 장치를 제공하는 것이 바람직하다. 게다가, 이러한 무절단의 정확한 프레임 접합을 텔레비젼 스튜디오 또는 다른 비디오 제공 환경과 같은 특정 환경에 적용하는 방법 및 장치를 제공하는 것이 바람직하다.
본 발명은 전이 스트림을 발생시키고 화소 영역 처리, 오디오 영역 처리 또는 다른 데이타 영역 처리를 각각 사용하여 전이 스트림 내의 비디오, 오디오 또는 다른 데이타를 처리하는 방법을 제공한다. 본 발명의 대안적 실시예는 전이 스트림을 형성하는 이미지 프레임과 관련된 비(non)-비디오 데이타가 상기 전이 스트림 내에 포함되는 것을 보장한다. 다중 및 단일 프로그램 전송 스트림 접합 연산들이 본 발명에 의해 제공된다.
특히, 이미지 프레임을 포함하는 전송 스트림을 처리하는 시스템에 있어서 제1 전송 스트림에서 제2 전송 스트림으로 무절단 방식으로 전이하는 전이 스트림을 발생시키는 본 발명에 따른 방법은 다음 단계를 포함한다: 제시될 제1 전송 스트림의 최종 이미지 프레임을 나타내는 적어도 하나의 타겟 아웃 프레임을 포함하는 제1 전송 스트림의 일부를 디코딩하는 단계; 제시될 제2 전송 스트림의 제1 이미지 프레임을 나타내는 적어도 하나의 타겟 인 프레임을 적어도 포함하는 제2 전송 스트림의 일부를 디코딩하는 단계; 화소 영역 프로세스를 사용하여 상기 디코딩된 이미지 프레임들 중 적어도 하나를 처리하는 단계; 및 상기 타겟 아웃 프레임 및 타겟 인 프레임을 포함하는 다수의 디코딩된 이미지 프레임들을 인코딩하여 전이 스트림을 발생시키는 단계.
본 발명은 하기 도면 및 실시예를 참조하여 상세히 기술될 것이다.
도1은 텔레비젼 스튜디오의 상위 레벨 블록 다이아그램이다.
도2A 및 2B는 본 발명을 이해를 돕기 위한 접합 연산의 도식적 표현이다.
도3은 도1의 텔레비젼 스튜디오에서 사용하기에 적합한 무선 서버에 대한 동작 실시예를 보여주는 도이다.
도4A,4B 및 4C는 본 발명의 이해를 돕기 위한 접합 연산의 도식적 표현이다.
도5 및 6은 본 발명의 이해를 돕기 위한 이미지 프레임 디스플레이 순서 및 이미지 프레임 전송 순서를 보여주는 도표이다.
도7은 전이 스트림 또는 전이 클립을 발생시키는 방법에 대한 흐름도이다.
도8은 프롬 스트림(from stream)내의 어떤 정보 프레임이 상기 전이 스트림 내에 포함되어야만 하는지를 결정하는 방법에 대한 흐름도이다.
도9는 투 스트림(to stream)내의 어떤 정보 프레임이 상기 전이 스트림 내에 포함되어야만 하는지를 결정하는 방법에 대한 흐름도이다.
도10은 정보 스트림을 인덱싱하는 방법에 관한 흐름도이다.
도11은 도3의 무선 서버에 대한 동작에서 사용하기에 적합한 메타 파일을 제시하는 도표이다.
도12는 픽셀 영역 효과를 통합하는 전이 스트림 또는 전이 클립을 발생시키는 방법에 대한 흐름도이다.
도13는 본 발명의 실시예에 따라 전이 스트림 또는 전이 클립을 발생시키는 방법에 대한 흐름도이다.
하기의 내용을 고려한 후에, 당업자는 본 발명의 내용이 예를 들어 비디오 서브 스트림들을 포함하는 MPEG과 같은 전송 스트림의 무절단의 정확한 프레임 접합 수행이 필요한 모든 정보 처리 시스템에서 이용될 수 있음을 잘 이해할 것이다.
본 발명의 실시예는 무선 제어기에 대한 동작을 통해 저장된 비디오 스트림들(예를 들어, 비디오 세그먼트 또는 "클립")이 서버로부터 검색되고 무절단의 정확한 프레임 방식으로 접합되어 예를 들어 원거리 단부(far end)의 디코더로의 전송에 적합한 MPEG-2를 따르는 비디오 스트림을 발생시키는 텔레비젼 스튜디오 환경과 관련되어 기술되지만, 이에 한정되지는 않는다. 예를 들어, 본 발명은 케이블 헤드엔드용 서버-기반 자산 스트리밍(streaming), 지역 상업 방송 입력 및 디지탈 시네마용 트레일러의 입력, MPEG-2 전송 스트림의 정확한 프레임 인터넷-기반 스트리밍 및 제한된 생산 시설들(즉, 뉴스 또는 다른 응용예들에 대한 세그먼트 합성을 수행하는 생산 시설들)에 응용될 수 있다.
본 명세서에서 본 발명을 기술하기 위해 다양한 용어들이 사용된다. 하기 서술에 의해 변형되지 않는다면, 몇가지 용어들은 다음과 같이 정의된다; 접합 스트림은 출력 스트림(또는 프롬 스트림)을 입력 스트림(또는 투 스트림)과 특정 접합점에서 연결시킴으로써 형성된 스트림을 포함한다. 출력 프레임은 출력 스트림의 최종 프레임이고, 입력 프레임은 입력 스트림의 제1 프레임이다.
도1은 텔레비젼 스튜디오의 상위 레벨 블록 다이아그램이다. 특히, 도1의 스튜디오는 무선 서버 플레이(Play to Air Server;110), 매스(mass) 저장 장치(115), 무선 제어기 플레이(Play to Air Controller;120), 라우터(Router;130) 및 네트워크 인터페이스 장치(NID;140)를 포함한다.
매스 저장 장치(115)는 예를 들면 인코딩된 비디오 서브 스트림 및 프로그램을 제공하는 관련 오디오 스트림들을 포함하는 복수의 MPEG-2 전송 스트림을 저장하기 위해 사용된다. 매스 저장 장치(115)는 비디오 데이타, 오디오 데이타, 프로그램 정보 및 다른 데이타를 포함하는 패킷 또는 비-패킷화된 기본 스트림과 같은 다른 타입의 정보 스트림을 저장하는데 사용될 수도 있다.
무선 서버 플레이(110)는 신호 경로(S1)를 통해 상기 매스 저장 장치(115)로부터 정보 스트림을 검색한다. 검색된 정보 스트림은 무선 제어기 플레이(120)(예를 들면 플레이 리스트)에 의해 발생된 제어 신호에 따라 처리되어 복수의 연결된 전송 스트림을 포함하는 출력 전송 스트림을 발생시킨다. 무선 서버 플레이(110)는 출력 전송 스트림을 제공하고 신호 경로(S2)를 통해 라우터(130)와 결합된다.
무선 제어기 플레이(120)는 라우터(130)와 결합된 신호 경로(S3)를 통해 제어 정보를 무선 서버 플레이(110) 및 다른 스튜디오 장치(제시되지 않음)에 제공한다. 라우터(130)는 텔레비젼 스튜디오(100)의 다양한 기능 요소들 사이에서 모든 제어 및 프로그램 정보를 라우팅하는데 사용된다. 예를 들어, 제어 정보가 신호 경로(S3)를 통해 무선 제어기 플레이(120)로 부터 라우터(130)로 전송되면, 라우터는 상기 제어 정보를 신호 경로(S2)를 통해 무선 서버 플레이(110)로 전달한다. 선택적으로, 무선 제어기 플레이(120) 및 무선 서버 플레이(110) 사이의 직접 제어 접속(CONTROL)이 제어 정보를 전송하는데 사용될 수도 있다.
라우터(130)는 신호 경로(S2)를 통해 무선 서버 플레이(110)로 부터 출력 전송 스트림을 수신하여 이러한 출력 전송 스트림을 신호 경로(S5)를 통해 다른 스튜디오 성분들(예를 들면, 편집기, 오프-라인 저장 요소등)에 전송하거나 신호 경로(S6)를 통해 네트워크 인터페이스 장치(140)에 전송한다.
네트워크 인터페이스 장치(NID;140)는 출력 전송 스트림, 제어 정보 또는 임의의 다른 정보를 도1의 텔레비젼 스튜디오(100) 및 다른 스튜디오들(제시되지 않음) 사이에서 통신하도록 하기 위해 사용된다. 선택적으로, 상기 NID는 다른 스튜디오, 원거리의 카메라팀, 방송자 등으로 부터 정보 스트림을 수신한다. 이러한 스트림들은 출력 스트림이 발생되도록 하는 즉각적인 처리(예를 들면, "생방송(live)" 뉴스 이벤트의 커버리지), 지연된 처리, 또는 매스 저장 장치(처리되어 또는 처리 없이)에의 저장을 위해 무선 서버 플레이(110)에 연결된다.
상기 무선 서버 플레이(110) 및 매스 저장 장치(115)는 마운틴 뷰, 캘리포니아의 SGI에서 제조된 Origin 2000 "Play To Air/Production Server"와 같은 압축 비트스트림 비디오 서버를 사용하여 구현된다.
상기 무선 제어기 플레이(120)는 무선 서버 플레이(110)의 출력 전송 스트림으로 이후에 통합하도록 하기 위해 예정된 정보 스트림 또는 클립에 상응하는 플레이 리스트(125)를 포함한다. 플레이 리스트(125)는 매스 저장 장치(115)로부터 검색되고 무선 서버 플레이에 의해 출력 전송 스트림으로 연결 또는 접합되는 각 정보 스트림 또는 클립의 정확한 프레임 입력 및 출력 위치를 포함한다. 플레이 리스트(125)는 각 정보 스트림 또는 클립의 최초 및 최종 프레임을 식별할 수 있다.
무선 서버 플레이(110)는 적어도 플레이 리스트(125) 일부를 제공하는 무선 제어기 플레이로부터의 제어 신호에 응답하여 매스 저장 장치로부터 적합한 스트림 또는 클립을 검색하고 제어 신호 내의 프레임 입력 및 출력 정보에 따라 무절단, 정확한 프레임 방식으로 클립들을 접합하여 출력 전송 스트림을 발생시킨다. 이러한 출력 전송 스트림은 어떠한 신택스(syntax) 무선 또는 네트워크 인터페이스 장치(140)에 의해 제공된 원격 공급을 포함한 다른 스튜디오 요소들과의 불연속성을 가지지 않는다. 무선 서버 플레이에 의해 수행되는 이러한 접합 및 연결 동작은 도2A 및 도2B를 참조하여 아래에서 상세히 설명된다.
도2A 및 도2B는 본 발명의 이해를 돕는데 유용한 접합 동작을 보여주는 도이다. 특히, 도2A는 전이 클립(230)을 이용하여 제2 MPEG-2 전송 스트림 클립들 마다 2개의 30개의 프레임들(210,220)의 무절단, 정확한 프레임 동작을 보여주는 도로서 이를 통해 제2 MPEG-2 전송 스트림 클립마다 접합된 30개의 프레임들(240)을 발생시킨다. 전이 스트림(230)은 제1 스트림(210) 및 제2 스트림(220)의 부분들을 사용하여 형성된다. 접합된 스트림(240)은 제1 스트림(210), 전이 스트림(230) 및 제2 스트림(220) 부분들의 연결을 포함한다. 이러한 접합 스트림(240)은 제1 스트림(210)의 아웃-포인트(210-OUT) 및 제2 스트림(220)의 인-포인트(220-IN)에서 제1 및 제2 스트림들 사이의 "날카로운 에지" 또는 프레임 정확한 접합을 갖는다.
도2B는 도2A에서 기술된 스트림 및 클립과 관련된 다양한 SMPTE 타임코드들을 보여준다. 제1 스트림 또는 클립(210;스트림 A)은 예시적으로 각 SMPTE 타임 코드가 00:00:00:00인 시간 t0에서 시작하는 제1 프레임(210-ST); 시간 t1에서 시작하는 전이 아웃 프레임(210-TRANS), 예시적으로 각 SMPTE 타임 코드가 00:00:02:13인 시간 t2에서 종료하는 아웃 프레임(210-OUT); 및 시간 t2보다 큰 시간에서 시작하는 최종 프레임(210-END)을 포함하는 복수의 프레임들로 구성된다.
아웃-프레임(210-OUT)은 디스플레이 되는 제1 스트림(210)의 최종 프레임(즉, 요구되는 접합 포인트에 바로 선행하는 프레임)을 포함한다. 아웃-프레임(210-OUT)은 전이 스트림(230) 내에 포함된다. 전이 아웃 프레임(210-TRANS)은 전송되는 제1 스트림(210)의 최종 프레임을 포함한다. 즉, 전이 스트림(230)은 전이 아웃 프레임(210-TRANS) 바로 이후의 제1 스트림(210)과 연결된다.
제2 스트림 또는 클립(220)(스트림 B)은 각 SMPTE 타임 코드 00:00:00:00 에서 시작하는 제1 프레임(220-ST); 예시적으로 각 SMPTE 타임 코드 00:00:00:23인 시간 t2에서 시작하는 인-프레임(220-IN); 시간 t3에서 시작하는 전이 인 프레임(220-TRANS) 및 예시적으로 각 SMPTE 타임 코드가 00:00:04:17인 시간 t4에서 종료하는 최종 프레임(220-END)을 포함하는 복수의 프레임들로 구성된다.
인-프레임(220-IN)은 디스플레이 되는 제2 스트림(220)의 제1 프레임(즉 요구되는 접합 포인트 바로 다음 프레임)을 포함한다. 인-프레임(220-IN)은 전이 스트림(230) 내에 포함된다. 전이 인 프레임(220-TRANS)은 전송될 제2 스트림(220)의 제1 프레임을 포함한다. 즉, 전이 인 프레임(220-TRANS)은 전이 스트림(230)과 연결되는 제2 스트림(220)의 제1 프레임이 된다.
전이 스트림 또는 클립(230)(스트림 T)은 비디오 스트림의 무절단, 정확한 프레임 접합을 제공하기 위해 사용되는 데이타 구조이다. 전이 스트림 또는 클립(230)(스트림 T)은 시간 t1에서 시작하는 제1 프레임(230-ST); 및 시간 t3에서 종료하는 최종 프레임(230-END)을 포함하는 복수의 프레임들로 구성된다. 전이 클립은 각각 인 및 아웃 프레임들을 포함하여 제1 스트림(210) 및 제2 스트림(220)으로 부터의 프레임들을 포함한다. 전이 클립의 시작 및 끝은 도2에서 각각 t1 및 t3로서 제시된다. 이러한 시간들 및 전이 스트림의 실제 제1 및 최종 프레임들은 하기 도8 및 9에서 제시된 방법에 따라 결정된다.
접합 스트림(240)은 예시적으로 각 SMPTE 타임 코드가 00:00:00:00 인 시간 t0에서 시작하는 제1 프레임(240-ST); 및 예시적으로 각 SMPTE 타임 코드가 00:00:04:17 인 시간 t4에서 종료하는 최종 프레임(240-END)을 포함하는 복수의 프레임들로 구성된다. 접합 스트림(240)은 제1 클립(210)(t0-t2)으로 부터 73개의 프레임을 포함하고 제2 클립(220)(t2-t4)으로 부터 115개의 프레임들을 포함한다.
도2A에 제시된 접합 스트림(240)은 전이 스트림(230)을 사용하여 예리한 접합을 달성하는 방식으로 연결된 제1 스트림(210) 및 제2 스트림(220)들을 포함하고, 여기서 제1 스트림(210)은 아웃 프레임(210-OUT)에서 출력되고 제2 스트림(220)은 인 프레임(220-IN)에서 입력된다. 본 발명을 이용함으로써, 이러한 접합 동작은 아웃(출력) 및 인(입력) 프레임들의 프레임 타입과 무관하게 정확한 프레임 방식으로 발생한다.
이상적인 접합 조건들(SMPTE 312M 접합 표준에서 제시됨) 하에서는 전이 클립이 요구되지 않음을 이해하여야 한다. 그러나, 대부분의 조건들 하에서, 전이 클립은 이상적인 조건들 하에서 발생되는 "빈 프레임" 전이 클립보다는 다수의 프레임들을 포함한다.
도3은 도1의 텔레비젼 스튜디오에서 사용하기에 적합한 무선 서버 플레이의 실시예를 보여준다. 특히, 도3의 예시적 무선 서버 플레이(110)는 입력/출력(I/O) 회로(310), 지지 회로(330), 프로세서(320), 메모리(340) 및 선택적 시간 기반 보정기(350)를 포함한다. 프로세서(320)는 무선 서버 플레이(110) 내의 다양한 소프트웨어 루틴 실행을 보조하는 회로들뿐만 아니라 전력 공급기, 클록 회로, 캐쉬 메모리들과 같은 기존의 지지 회로와 협력한다. 무선 서버 플레이(110)는 또한 무선 서버 플레이(110)와 매스 저장 장치(115) 및 라우터(130) 사이의 인터페이스를 형성하는 입력/출력 회로(310)를 포함한다.
메모리(340)는 본 발명을 구현하는데 적합한 프로그램들 및 다른 정보를 포함한다. 특히, 메모리(340)는 프로세서(320)에 의해 실행될 때 인덱스 발생 함수(342), 전이 클립 발생 함수(344) 및 선택적으로 전이 클립 시간 리스탬핑(restamping) 함수(345)를 수행하는 프로그램들을 저장하는데 사용된다. 선택적으로, 메모리(340)는 인덱스 라이브러리(346) 및 스트림 라이브러리(348) 중 하나 또는 모두를 포함한다.
도2에서 제시된 접합 동작을 수행하기 위해, 본 발명은 전이 클립 발생 함수(344)를 이용한다. 전이 클립 발생 함수(344)는 전이 클립을 발생시켜 제1 전송 패킷 경계(예를 들어, 전이 스트림 발생기에 의해 결정됨)에서 제1 스트림(210)를 출력시키고, 발생된 전이 클립(230)을 운영시킨 후 제2 전송 패킷 경계에서 제2 스트림(220)을 입력시키는 것을 가능케한다. 제1 스트림(210) 및 제2 스트림(220)에 대한 실제 출력(210-TRANS) 및 입력(220-TRANS) 포인트들은 일반적으로 요구된 실제 프레임들과 일치하지 않는다. 전이 클립은 제1 스트림(210)의 요구되는 접합 출력 포인트(210-OUT) 바로 전의 수개의 프레임들 및 제2 스트림(220)의 요구되는 접합 입력 포인트(220-IN) 바로 이 후의 수개 프레임들을 사용하여 이루어 진다.
본 발명은 바람직하게는 인터-스트림 전이의 품질을 최적화하는 방식으로 전이 스트림에 포함될 프레임들을 선택한다. 즉, 접합 동작은 무절단, 정확한 프레임 방식으로 수행되지만, 접합 동작이 접합 포인트 주변의 비디오 정보의 질적 저하를 초래하는 것이 가능하다. 이는 예를 들면 미스 매치된 비디오 버퍼링 검정기(VBV) 레벨들로부터 기인한 "비트 스타빙(starving)" 또는 다른 코딩 변형들로 부터 발생된다. 본 발명은 이러한 VBV 레벨들을 조정하여 이러한 변형들을 최소화시킨다.
인덱스 발생 함수(342)가 이제 설명된다. 2가지 타입의 정보가 전이 클립, 프레임 데이타 및 MPEG 데이타를 구축하는데 사용된다. 프레임 데이타는 위치, 코딩 타입 및 프롬-스트림과 투-스트림의 특정 프레임의 프리젠테이션 순서와 같은 정보를 포함한다. 프레임 데이타는 프롬 스트림 및 투 스트림 내의 어떤 프레임이 전이 클립을 발생시키기 위해 리코딩 되는지를 결정하기 위해 사용된다. MPEG 데이타는 프레임 크기, 비트 레이트, 프레임 대 필드 포맷, 비디오 버퍼링 검정기(VBV) 지연, 색도(chrominance) 샘플링 포맷 등과 같은 정보를 포함한다. MPEG 데이타는 전송 스트림의 MPEG 인코딩 특성을 규정하는데 사용된다. 전이 클립은 바람직하게는 입력 TS와 동일한 MPEG 파라미터들을 사용하여 인코딩 또는 리코딩된다.
전이 클립 발생 함수(344)에 의한 전이 클립 발생을 보조하기 위해, 본 발명은 인덱스 발생 함수(342)를 이용한다. 특히, 인덱스 발생 함수(342)는 전송 스트림 내의 각 프레임과 관련된 수개의 파라미터들을 결정하기 위해 접합될 각 전송 스트림을 처리하는데 사용된다. 결정된 파라미터들은 메타 파일에 저장되어 인덱스 발생 함수(342)에 의해 처리된 각 전송 스트림은 그와 연관된 메타 파일을 가진다. 인덱스 발생 함수(342)에 의해 처리된 전송 스트림은 매스 저장 장치(115) 또는 스트림 라이브러리(348)에 저장된다. 유사하게, 전송 스트림과 연관된 메타 파일은 매스 저장 장치(115) 또는 인덱스 라이브러리(346)에 저장된다.
실시예에서, 인덱스 발생 함수(342)는 전송 인코딩 비디오 스트림의 각 비디오 프레임에 대해 다음을 결정한다;
1) 현재 픽쳐 번호(디스플레이 순서로);
2) 픽쳐 코딩 타입(I,P,B 프레임);
3) 프레임의 시작을 포함하는 전송 패킷의 번호;
4) 프레임의 종료를 포함하는 전송 패킷의 번호;
5) 프레임의 프리젠테이션 타임 스탬프(PTS);
6) 프레임의 디코딩 타임 스탬프(DTS);
7) 프레임에 선행하는 시퀀스 헤더의 시작을 포함하는 전송 패킷의 번호;
8) 프레임에 선행하는 픽쳐 헤더의 시작을 포함하는 전송 패킷의 번호; 및
9) SMPTE 312M 접합 신택스에 따라 프레임 마킹에 의해 제공되는 것과 같은 적합한 인 프레임 또는 아웃 프레임을 포함하는 프레임의 표시(indicia).
상기 프레임 당 데이타뿐만 아니라, 인덱스 발생 함수(342)는 선택적으로 시퀀스 헤더, 픽쳐 헤더 등과 같은 일반적 MPEG-2 구조에 대한 모든 필드들을 저장한다.
따라서, 스트림 라이브러리(348)(또는 매스 저장 장치(115))는 인덱스 발생 함수(342)에 따라 처리되는 전송 스트림을 포함한다. 인덱스 발생 함수(342)의 실시예는 도10 을 참조하여 기술될 것이다.
전송 스트림 분석은 시간을 필요로 하기 때문에, 본 발명의 실시예는 사전-인덱싱을 이용한다. 즉, 매스 저장 장치(115) 또는 스트림 라이브러리(348)에 저장된 전송 스트림은 저장시 또는 가능한 한 저장 바로 후에 인덱스 발생 함수(342)에 의해 처리된다. 프레임 및 스트림의 MPEG 파라미터들을 결정하기 위해 접합시에 전송 스트림을 분석할 필요가 없기 때문에 이러한 방식으로 전이 클립을 형성하는데 요구되는 시간은 크게 감소된다. 게다가, 무선 서버 플레이(110)는 선택적으로 매스 저장 장치(115) 또는 인덱스 라이브러리(346)에 저장된 메타 파일들을 이용하여 스케줄링 및 프레임 레이트와 같은 다른 기능들을 위해 필요한 전송 스트림의 특성을 신속하게 검색한다.
도10은 정보 스트림을 인덱싱하는 방법에 관한 흐름도이다. 도10은 도3의 무선 서버 플레이(110)의 인덱스 발생 함수(342)에서 사용하기에 적합한 방법에 대한 흐름도이다. 도10의 방법(1000)은 도7의 방법(700)의 구현 단계(705)에서 사용하기에 적합하다.
상기 방법(1000)은 인덱싱될 정보 데이타가 수신될 때 단계(1005)에서 시작된다. 그리고 상기 방법(1000)은 단계(1010)로 진행한다.
단계(1010)에서, 인덱싱될 정보 스트림의 전송 계층이 분석된다. 즉, 분석될 정보 스트림내의 각 전송 패킷의 헤더 부분은 조사되어 전송 패킷 번호(tr), 전송 패킷 내의 시퀀스 헤더의 존재 유무, 전송 패킷 내의 픽쳐 헤더의 존재 유무, 인 프레임 또는 아웃 프레임 접합에 대한 SMPTE 312M 접합 신택스 표시 유무 및 다른 정보를 확인한다. 그리고 나서 상기 방법(1000)은 단계(1015)로 진행한다.
단계(1015)에서 제1 또는 현재 프레임이 조사된다. 즉, 인덱싱될 정보 스트림은 패킷화된 기본 스트림(PES) 계층으로 분석되어 인덱싱될 정보 스트림 내에 포함된 비디오 기본 스트림의 제1 비디오 프레임을 조사한다. 그리고 나서 상기 방법(1000)은 단계(1020)으로 진행한다.
단계(1020)에서 단계(1015)에서 조사된 프레임과 관련된 다양한 파라미터들이 결정된다. 특히, 도 1020-D를 참조하여, 단계(1020)는 현재 픽쳐 번호(디스플레이 순서로), 픽쳐 코딩 타입(I,P,B 프레임), 프레임의 시작을 포함하는 전송 패킷 번호, 프레임의 종료를 포함하는 전송 패킷 번호 및 프레임의 프리젠테이션 타임 스탬프(PTS)와 디코딩 타임 스탬프(DTS)를 결정한다. 단계(1010)와 관련하여 이전에 언급되었듯이, 프레임에 선행하는 시퀀스 헤더의 시작을 포함하는 전송 패킷이 기록되고, 프레임에 선행하는 픽쳐 헤더의 시작을 포함하는 전송 패킷의 번호가 기록되며 SMPTE 312M 접합 신택스에 따른 프레임 마킹들에 의해 제공된 것과 같이 적합한 인 프레임 또는 아웃 프레임을 포함하는 프레임 표시가 기록된다. 게다가, 단계(1020)에서 "CBd 및 Bd"가 역시 결정된다. 상기 방법(1000)은 그리고 나서 단계(1025)로 진행한다.
양(quantity) Bd은 스트림에 마킹된 버퍼 지연이다. 이는 픽쳐의 제1 비트가 VBV 버퍼에 존속하는 시간 양이다. 양 CBd은 계산된 버퍼 지연이다. 인덱서는 MPEG-2 설명서의 Annex C에 지시된대로 이 값을 계산한다. 버퍼 지연 Bd 및 계산된 버퍼 CBd는 일치되어야 하지만, 입력 스트림이 부적당하게 마킹된 경우에는 이 2개의 양이 다를 수 있다. 버퍼 지연 값은 본 발명에 의해 사용되어 210trans 및 220trans 사이에서 VBV 레벨들을 조정하는 방법을 결정한다. VBV 레벨 조정은 전이 클립에서 이루어진다.
단계(1025)에서, 인덱스 정보에 관한 정보는 예를 들어 매스 저장 장치(115) 또는 인덱스 라이브러리(346)에 저장된다. 그리고 상기 방법(1000)은 단계(1030)로 진행한다.
단계(1030)에서, 추후 프레임들이 처리될 것인지에 대한 질의가 이루어진다. 추후 프레임이 처리되지 않을 것이면, 상기 방법(1000)은 단계(1040)으로 진행하여 출력되고, 추후 프레임이 처리될 것이면 단계(1035)로 진행하여 다음 프레임이 대기되고 단계(1015)에서 다음 대기 프레임이 조사된다.
도11은 도3의 인덱스 라이브러리(346)에서 사용하기에 적합한 메타 파일의 테이블 표현이다. 특히 도11의 테이블(1100)은 복수의 리코드들(1-54)을 포함하고, 각 리코드는 각각 시작 전송 패킷 필드(1110), 패킷화된 기본 스트림 식별 필 드(1120), 프레임 및 프레임 타입 식별 필드(1130), PTS 필드(1140), DTS 필드(1150), Bd 필드(1160), CBd 필드(1170) 및 마킹된 접속 포인트 필드(1180)를 포함한다.
본 발명의 일 실시예에서, 인덱스 발생 함수(342)는 전송 스트림의 수신 및/또는 접합에 앞서 사용되지 않는다. 이러한 실시예에서, 프레임 선택은 접합될 각 전송 스트림의 적어도 일부의 단일 패스 처리를 사용하여 수행되어 프롬(from) 스트림 및 투(to) 스트림과 관련된 수개의 파라미터들을 결정한다.
프롬-스트림 및 투-스트림 모두에 대해, 다음 파라미터들이 결정된다; 디코딩을 시작하는 시퀀스_헤더 및 픽쳐_헤더의 전송 패킷 오프셋, 디코딩되는 프레임들의 수, 및 버려질 디코딩된 프레임들의 수(예를 들면, 전이 클립에 포함되는 프레임을 디코딩하기 위해 필요한 앵커(anchor) 프레임).
프롬-스트림에 있어서, 다음 파라미터들이 결정된다: 프롬-스트림으로부터 플레이하기 위한 최종 전송 패킷(즉, 새로운 출력 포인트 또는 출력 프레임); 및 전이 클립에서 디스플레이 하기 위한 제1 프레임의 PTS.
투-스트림에 있어서, 다음 파라미터들이 결정된다: 전이 클립에 복사하기 위한 I-프레임에 대한 시작 및 종료 전송 패킷; 전이 클립에 복사하기 위한 잔존 GOP에 대한 시작 및 종료 전송 패킷; 투-스트림으로 부터 플레이하기 위한 제1 전송 패킷(즉, 새로운 입력 포인트 및 입력 프레임); 및 복사되는 프레임들의 수.
게다가, 인덱싱 라이브러리는 전송 스트림을 분석할 때 MPEG 필드들을 검색하기 때문에, 모든 요구되는 리코딩 파라미터들은 프레임 선택기간 동안 저장된다.
전이 클립 발생 함수(344)가 이제 상세히 설명된다. 전이 클립의 구축 과정은 1) 어떤 프레임을 전이 클립에 포함할 것인지를 결정하는 단계; 2) 전이 클립에 포함되는 프레임을 디코딩하는 단계; 3) 전이 클립을 형성하는 프레임들을 인코딩 또는 리코딩하는 단계 및 4) 전이 클립을 전송 인코딩(즉 패킷화)하는 단계를 포함한다.
프레임 선택은 출력 전이 클립의 크기, 전이 클립을 발생시키는데 요구되는 시간의 양 및 리코딩된 비디오의 품질을 최적화기 위한 인코더에 대한 위치들 제약에 영향을 미친다. 여기서 제시된 프레임 선택 방법은 프레임 카운트를 감소시키면서 품질의 중대한 손실없이 비디오를 리코딩하기에 충분한 전이 시간을 제공하여 프레임 의존성 문제를 해결한다.
상기 인코딩 및 리코딩 단계는 일반적으로 전이 클립 발생 함수(344)에서 가장 시간이 많이 소모되는 단계이므로 리코딩할 프레임 수를 감소시키면 시간을 절약할 수 있다. 그러나, 전이 클립을 구축하는 제1의 이유중의 하나는 접합되는 2개의 전송 스트림들 사이의 VBV 레벨 차이를 감소시키는 것이다. 프레임 카운트의 감소는 VBV 레벨을 조정하면서 인코더가 비디오 품질을 유지하는 것을 보다 어렵게 한다(특히 감소시에, 왜냐하면 프레임들은 더 적은 비트들로 인코딩되어야 하기 때문). VBV 레벨을 감소시키기 위해, 선택되는 것 보다 더 적은 비트들이 버퍼 내에 위치되어야 한다. 이는 인코더가 (평균적으로) 픽쳐당 더 적은 비트들을 사용할 것을 요구한다.
도5는 본 발명의 이해를 돕는 이미지 프레임 디스플레이 순서 및 이미지 프레임 전송 순서에 대한 테이블 표현이다. 특히, 도5는 예시적으로 비디오 시퀀스의 일부를 형성하는 24개의 인코딩된 이미지 프레임들의 디스플레이 순서를 나타내는 제1 테이블 표현(510) 및 비디오 시퀀스를 형성하는 24개의 이미지 프레임들의 전송 순서를 나타내는 제2 테이블 표현(520)을 보여준다. 이러한 논의를 위해, 도5에 제시된 비디오 시퀀스는 앞서 도2의 제1 스트림(210)에 대해 논의된 것과 같은 프롬-스트림 비디오 시퀀스의 일부(즉, 접속 시퀀스의 제1 디스플레이 시퀀스)를 포함한다.
특히, 제1 테이블 표현(510) 마다, 이미지 프레임들은 다음과 같은 구조로(프레임 1에서 프레임 24) 픽쳐 그룹(GOP) 구조에 따라 디스플레이 및 인코딩된다:
I-B-B-P-B-B-P-B-B-I-B-B-P-B-B-P-B-B-I-B-B-P-B-B.
게다가, 제2 테이블 표현(520) 마다, 다음과 같은 프레임 순서로 이미지 프레임들이 전송된다:
1-4-2-3-7-5-6-10-8-9-13-11-12-16-14-15-19-17-18-22-20-21-25-23.
다음 논의를 위해 도5에서 제시된 비디오 시퀀스를 B 프레임으로 구성되는 프레임 15에서 출력되는 것이 요구된다고 가정한다. 즉, 프레임 15는 도5에 제시된 출력 스트림의 아웃-프레임으로 구성된다. 아래에서 제시되듯이, 프레임 10에서 15는 디스플레이 순서대로 디코딩될 것이다. 프레임 16은 전송 순서에서 프레임 15에 앞서는 앵커 프레임이라는 것을 주목하여야 한다. 따라서, B-프레임들인 프레임 14 및 15을 디코딩하기에 앞서 프레임 16을 디코딩하는 것이 필요하다. 전이 클립에 앞서는 프롬-클립의 최종 프레임은 프레임 13 이 된다. 즉, 프롬-클립은 프레임 16에 바로 앞서 출력된다.
도6은 본 발명을 이해하는데 유용한 이미지 프레임 디스플레이 및 이미지 프레임 전송 순서에 대한 테이블 표현이다. 특히, 도6은 예시적으로 비디오 시퀀스 일부를 형성하는 26개의 인코딩된 이미지 프레임의 디스플레이 순서를 보여주는 제1 테이블 표현(610) 및 비디오 시퀀스를 형성하는 26개의 이미지 프레임들의 전송 순서를 보여주는 제2 테이블 표현(620)을 보여준다. 이러한 논의를 위해, 도6의 비디오 시퀀스는 도2의 제2 스트림(220)과 관련하여 기술된 투-스트림 비디오 시퀀스(즉, 접합 시퀀스에서 제2 디스플레이 시퀀스)의 일부를 포함한다.
특히, 제1 테이블 표현(610) 마다, 이미지 프레임들은 다음과 같은(프레임 1에서 프레임 26) 픽쳐 그룹(GOP) 구조에 따라 디스플레이 및 인코딩된다:
I-B-B-P-B-B-P-B-B-I-B-B-P-B-B-P-B-B-I-B-B-P-B-B-I-B.
또한 제2 테이블 표현(520) 마다, 이미지 프레임들은 다음과 같은 순서로 전송된다:
1-4-2-3-7-5-6-10-8-9-13-11-12-16-14-15-19-17-18-22-20-21-25-23-24-28.
다음 논의를 위해, B 프레임으로 구성되는 프레임 15에서 도6에 제시된 비디오 시퀀스를 입력시키는 것이 요구된다고 가정한다. 즉, 프레임 15는 도6에서 제시된 입력 스트림의 인-프레임을 포함한다. 아래에서 제시되듯이, 프레임 10에서 18이 디스플레이 순서대로 디코딩된다. 투-스트림으로부터 디스플레이되는 제1 프레임은 프레임 25(전이 클립에 포함되지 않는 I-프레임)임을 주목하여야 한다.
도7은 전이 스트림 또는 전이 클립을 발생시키는 방법에 대한 흐름도이다. 특히, 도7은 도3의 무선 서버 플레이(110)의 전이 클립 발생 함수(344)에서 사용하기에 적합한 방법(700)에 대한 흐름도이다.
상기 방법(700)은 "프롬-스트림" 및 "투-스트림"의 주석 달기(annotating)가 이루어지는 단계(705)에서 시작된다. 즉, 접합 포인트에 앞서는 정보를 제공하는 정보 스트림(프롬-스트림) 및 접합 포인트에 뒤이은 정보를 제공하는 정보 스트림(투-스트림)이 상기 인덱스 발생 함수(342)에서 제시된 프레임 단위의 다양한 프레임 파라미터들에 따른 식별을 위해 주석이 달아진다. 정보 스트림에 주석을 다는 방법은 상기 도10에서 기술된다. 상기 방법(700)은 그리고 나서 단계(710)으로 진행한다.
단계(710)에서 출력 프레임에 앞서는 프롬-스트림의 일부가 디코딩된다. 즉, 출력 프레임(즉, 디스플레이되는 프롬-스트림의 최종 정보 프레임)을 포함하여 프롬-스트림 내의 복수의 정보 프레임들이 디코딩된다. 그리고 나서 상기 방법(700)은 단계(715)로 진행한다.
단계(715)에서 입력 프레임에서 시작하는 투-스트림의 일부가 디코딩된다. 즉, 입력 프레임(즉 디스플레이되는 투-스트림의 제1 프레임)에서 시작하는 투-스트림 내의 정보 프레임들이 디코딩된다. 그리고 나서 상기 방법(700)은 단계(720)으로 진행한다.
단계(720)에서 프롬-스트림 및 투-스트림의 디코딩된 일부분들은 다시 인코딩되어 전이 클립 또는 전이 스트림을 발생시킨다. 전송 스트림은 예를 들어 프롬 -스트림 및 투-스트림과 연관된 비디오 및 오디오 정보를 포함한다.
도 7의 방법(700)에 의해 발생된 전이 스트림 및 전이 클립은 도1 및 3의 무선 서버 플레이(110)에 의해 프롬-스트림 및 투-스트림 사이의 전이를 위해 사용된다.
A. 프레임 선택
전이 클립 또는 전이 스트림을 구축하는 제1 단계는 전이 클립에 어떤 프레임을 포함시키는 가를 결정하는 단계(즉, 프레임 선택 과정)로 구성된다.
도8은 프롬-스트림 내의 어떤 정보 프레임들이 전이 스트림 내에 포함되어야 하는 지를 결정하는 방법에 관한 흐름도이다. 도8의 방법(800)은 도7의 방법(700)의 단계(710)을 구현하는데 사용하기 적합하다.
상기 방법(800)은 단계(805)에서 시작되고, 여기서 프롬-스트림의 출력 프레임이 식별된다. 프롬-스트림의 출력 프레임은 접합 포인트에 앞서 디스플레이되는 프롬-스트림 내의 최종 프레임이다. 예를 들어, 도5에 제시된 프롬-스트림을 살펴보면, 출력 프레임(프레임 15)은 프레임 413으로 지정된 B-프레임으로 구성된다. 그리고 나서 상기 방법(800)은 단계(810)로 진행한다.
단계(810)에서, 상기 방법(800)은 디스플레이 순서로 출력 프레임 및 바로 선행하는 비-앵커(anchor) 프레임들을 디코딩한다. 즉, 도5를 다시 살펴보면, 출력 프레임(프레임 15) 및 바로 선행하는 비-앵커 프레임들(프레임 11,12,13,14)이 디코딩된다. 프레임들(11,12 및 13)은 프레임 10을 이용하여 예측되기 때문에, 프레임 10을 디코딩하는 것이 또한 필요하다. 그러나, 디코딩된 프레임(10)은 프레임들(11-13)이 디코딩된 후에 버려진다. 즉, 디스플레이 순서에서 출력 프레임에 선행하는 I-프레임으로 부터 출력 프레임까지 모든 프레임들이 디코딩된다. I-프레임은 프레임 의존성(즉, 다른 프레임들을 우선 디코딩함이 없이 디코딩될 수 있음)이 없기 때문에, I-프레임으로 부터 시작하는 것이 필요하다. 그리고 나서 상기 방법(800)은 단계(815)로 진행한다.
단계(815)에서 출력 프레임이 B-프레임인지 여부에 대한 질의가 이루어진다. 단계(815)에서 그렇지 않다면, 상기 방법은 단계(820)으로 진행하고, 그러하다면 단계(825)로 진행한다.
단계(820)에서, 출력 프레임은 I-프레임 또는 P-프레임 중 하나이기 때문에, 전이 스트림 프레임들에 앞서 디스플레이되는 최종 프롬-스트림 프레임은 전송 순서에서 출력 프레임에 바로 선행하는 프레임이다. 즉, 도5에 제시된 프롬-스트림의 프레임이 B-프레임이 아닌 P 또는 I 프레임이라면, 디스플레이되는 최종 프롬 스트림 프레임은 프레임 14가 될 것이다. 출력 프레임이 I 또는 P 프레임이면, 프레임 의존성 및 재순서 결정은 다음 앵커 프레임 바로 전의(즉, 출력 프레임에 의존하는 모든 B-프레임들 이후) 전송을 남기는 것을 가능케한다. 이는 리코딩될 프레임들의 수를 감소시키지만, 전이에 대한 VBV 레벨을 조정하는 기회를 줄인다. 그리고 나서 상기 방법(800)은 단계(830)으로 진행한다.
삭제
단계(825)에서, 출력 프레임이 B-프레임(도5에서 제시된 프롬-스트림의 출력 프레임과 같은)이라면, 디스플레이되는 최종 프롬-스트림 프레임은 전송 순서에서 선행하는 앵커 프레임에 바로 선행하는 프레임이다. 이제 도5를 보면, 출력 프레임에 대한 선행 앵커 프레임은 P-프레임(프레임 13)이다. 도5에서 제시된 24 프레임 시퀀스의 최종 전송 프레임은 B-프레임이고, 디스플레이되는 최종 프레임은 P-프레임 13이다. 그리고 나서 상기 방법(800)은 단계(830)으로 진행한다.
단계(830)에서, 디스플레이 순서에서 최종 프롬-스트림(예를 들면, 도5에서 프레임 12로 지정된 B-프레임) 다음의 디코딩된 프레임들은 전이 클립에 저장된다. 전이 스트림 또는 클립은 투-스트림으로 부터의 프레임들을 모두 포함한다는 것을 주목하여야 한다. 전이 클립 내에 저장되는 모든 프레임들은 그리고 나서 재-인코딩되어 인코딩된 전이 클립 또는 전이 스트림을 형성한다.
도9는 투-스트림 내의 어떤 정보 프레임들이 전이 스트림 내에 포함되어야 하는 지를 결정하는 방법을 보여주는 흐름도이다. 특히, 도9의 방법(900)은 도7의 전이 스트림 발생 방법(700)의 단계(715)를 구현하는데 적합하다.
상기 방법(900)은 단계(905)에서 시작되고, 여기서 투-스트림의 입력 프레임이 식별된다. 투-스트림의 입력 프레임은 접합 포인트 후에 디스플레이되는 투-스트림 내의 제1 프레임이다. 예를 들어, 도6에 도시된 투-스트림을 살펴보면, 입력 프레임(프레임 15)은 B-프레임으로 구성된다. 그리고 나서 상기 방법(900)은 단계(910)으로 진행한다.
단계(910)에서 입력 프레임 및 디스플레이 순서상으로 다음 I-프레임 이전에 나타나는 모든 프레임들이 디코딩된다. 즉, 도6을 살펴보면, 입력 프레임(프레임 15) 및 다음 I-프레임(프레임 19)전에 나타나는 모든 프레임들(즉 프레임 16,17,18)이 디코딩된다. 도6에서 제시된 투-스트림 비디오 시퀀스의 프레임들 17 및 18은 다음 I-프레임(프레임 18으로부터의) 정보를 사용하여 예측되기 때문에, 다음 I-프레임을 디코딩하는 것이 필요하다. 그러나, 디코딩된 프레임 19는 프레임들 17 및 18이 디코딩된 후에 버려질 수 있다. 그리고 나서 상기 방법(900)은 단계(915)로 진행한다.
단계(915)에서 다음 I-프레임(예를 들면, 비디오 시퀀스(610)의 프레임 19)이 전이 클립에 복사된다. 즉, 투-스트림을 형성하는 전송 패킷 내의 비디오 정보(즉, 비디오 기본 스트림 정보)가 전송 패킷들로 부터 추출되고 전이 클립에 복사된다. 인코더의 출력은 비디오 기본 스트림(VES)으로서 인코더의 출력이 직접 전이 클립에 복사된다는 것을 주목하여야 한다. 전이 클립은 뒤이어 패킷화된다. 그리고 상기 방법(900)은 단계(920)으로 진행한다.
단계(920)에서 다음 I-프레임(예를 들면, 프레임 25) 및 뒤이은 I-프레임(프레임 19) 사이의 프레임들(프레임 20-22)이 전송 순서대로 전이 클립에 복사된다. 단계(915) 및 단계(920)에서 전이 클립에 복사된 프레임들(예를 들면, 프레임 19-21)은 인코딩된 프레임으로 전이 클립에 복사됨을 주목하여야 한다. 따라서, 상기 방법(900)은 입력 프레임 및 다음 I-프레임 전에 나타나는 모든 프레임을 포함하는 전이 클립 디코더 프레임들과 다음 I-프레임 및 다음 I-프레임과 뒤이은 I-프레임 사이의 모든 프레임들을 포함하는 인코딩된 프레임을 더한다.
도8 및 9에서 제시된 프롬-스트림 및 투-스트림 프레임 선택 방법은 전이 스트림 프레임들 및 프롬 스트림 및 투 스트림 중 하나 또는 두개 모두의 프레임들 사이에서의 프레임 의존성을 보장한다. 다음 제한들이 준수되어야 한다. 전이 클립은 폐쇄 GOP 구조로서 인코딩된다. 즉, 전이 클립은 독립적(self-contained) 비 디오 클립이다. 출력되는 전송 스트림은 전이 클립의 어떤 프레임도 참조하지 않는다. 입력되는 전송 스트림이 개방 GOP 구조를 사용하여 코딩되면, 전송 스트림은 전이 클립의 프레임을 참조하는 프레임을 포함하게 된다.
본 발명의 중요한 양상은 전이 클립 내에 포함된 프레임들의 프레임 의존성을 적절하게 어드레싱하도록 하는 전이 클립의 처리에 있다. 프레임 의존성은 예를 들면 전이 클립 외부의 앵커 프레임을 사용하여 디코딩되어야만 하는 전이 클립 내의 예측 프레임(즉, P-프레임 또는 B-프레임)을 포함한다. 외부 프레임 의존성이 존재하지 않는 전이 클립(즉, 독립적 클립)을 발생시키는 것이 바람직하지만, 본 발명은 이러한 프레임 의존성을 포함하는 MPEG 순응 전이 클립을 발생시킬 수 있다.
B. 디코딩
전이 클립 또는 전이 스트림을 구축하는 두번째 단계는 프레임 선택 처리에서 선택된 프레임들을 디코딩하는 단계이다. 선택된 프레임들의 디코딩은 표준 하드웨어 또는 소프트웨어 디코딩 기술을 사용하여 달성될 수 있다.
어떤 프레임이 디코딩되는지 여부와는 상관없이 디코딩은 I-프레임에서 시작하여야 한다. MPEG 인코딩 예측에 있어서, 모든 비-I-프레임은 이전 I-프레임에 의존한다. 상기에서 기술된 프레임 선택 방법은 전송 스트림 사이의 무절단, 정확한 프레임 접합을 달성하기 위해 이러한 의존성을 파괴한다.
C. 인코딩
전이 클립 또는 전이 스트림을 구축하는 세번째 단계는 프레임 선택 및 디코딩 처리에서 얻어진 디코딩된 프레임들을 인코딩하는 단계이다. 선택된 프레임들의 인코딩은 표준 하드웨어 또는 소프트웨어 디코딩 기술을 사용하여 달성된다.
프레임 의존성을 파괴할 뿐만 아니라(위에서 언급되었듯이), 전이 클립을 발생시킬 때 주요한 목적들 중 하나는 프롬 스트림 및 투 스트림 사이의 VBV 레벨을 조정하여 접합 전송 스트림을 처리하는 원거리 단부(far-end) 디코더가 오버플로우, 언더플로우 또는 다른 바람직하지 않는 디코더 버퍼 메모리 실행을 겪지 않도록 하는 것이다. 예를 들어, 프롬 스트림의 출력 포인트에서의 VBV 레벨이 투 스트림의 입력 포인트에서의 VBV 레벨 보다 낮으면, 언더플로우가 접합으로부터 다운 스트림을 초래한다. 전형적인 디코더들에서, 이는 디코더가 사용가능한 데이타를 기다리는 동안 "프리즈(freeze) 프레임"을 야기시킨다. 프롬 스트림의 출력 포인트에서의 VBV 레벨이 투 스트림의 입력 프레임에서의 VBV 레벨 보다 높은 경우에는 문제가 더욱 심각하다. 이는 접합에서의 VBV 오버플로우 다운스트림을 초래한다. 오버플로우는 버퍼링될 수 있는 것 보다 더 많은 데이타가 제공될 때 발생한다. 오버플로우는 손실된 및/또는 부정확한 데이타를 발생시키고 일반적으로 디코딩된 픽쳐들에서 시각적인 인공물(artifact)을 야기시키며 디코더가 리세팅되기도 한다.
선택된 프레임들이 베이스밴드에서 디코딩된 후, 선택된 프레임들은 VES로 리코딩된다. 본 발명가들은 고성능, 픽쳐 품질 및 모듈성을 보장하기 위해 Sarnoff 코포레이션의 DTV/MPEG-2 소프트웨어 인코더를 사용하였다. 인코더에서의 레이트 제어 알고리즘은 개시 및 종료 VBV 레벨들의 사양을 허용하기 위해 수정되었고, 인코더의 입력 모듈은 디코더의 출력 파일 포맷을 지지하기 위해 업데이트 되었다. 프레임 선택 기간동안 전송 스트림으로부터 분석되는 MPEG 인코딩 파라미터들은 인코더로 전달되어 리코딩된 비디오가 접합된 클립들과 호환할 수 있도록 하여준다.
레이트 제어와 관련하여(궁극적으로 전이 클립의 리코딩된 부분의 전체 픽쳐 품질을 결정함), VBV 레벨을 상향조정하면, 선택된 프레임들은 원래 스트림보다 적은 비트들을 사용하여 인코딩된다. VBV 레벨의 증가는 출력에서의 품질 손실을 초래하지만, 인간 시각 체계의 마스킹으로 인해 화면 전환에서의 비디오 품질의 작은 손상은 시청자가 거의 인식할 수 없는 경우가 빈번하다. 본 발명은 무절단, 프레임 정확한 접합을 포함하는 스트림에 전달된 이러한 시각적 손상은 인식할 수 있는 수준의 비디오 손상을 초래하지 않도록 결정하였다.
본 발명의 일 실시예에서, 프롬 스트림 및 투 스트림 각각은 각각 비디오 버퍼링 검정기(VBV)를 가지고 있는 전송 스트림을 포함한다. 본 발명은 프롬 스트림 VBV와 투 스트림 VBV 사이에 차이가 존재하는지 여부를 결정하여 이에 따라 재-인코딩 처리를 통해 이러한 차이를 필요에 따라 적응시킨다. 예를 들어, 본 발명은 프롬 스트림 VBV 가 투 스트림 VBV에 비해 제1 임계 수준만큼 초과한다는 결정에 응답하여 레이트 제어 비트 할당을 증가시키고, 투 스트림 VBV 가 프롬 스트림 VBV에 비해 제2 임계 수준만큼 초과한다는 결정에 응답하여 레이트 제어 비트 할당을 감소시킴으로써 재-인코딩 처리를 적응시킨다.
D. 패킷화
전이 클립 또는 전이 스트림을 구축하는 네번째 단계는 프레임 선택 및 디코 딩 처리로 부터 획득된 디코딩된 프레임을 인코딩하는 단계이다.
선택된 프레임들을 리코딩한 후, 투 스트림으로부터 복사된 I-프레임 및 잔존 GOP는 리코딩된 VES에 첨부된다. 시간_기준 필드의 리스탬핑(restamping)을 보류하면서, 전이 클립은 신택스상으로 완전한 MPEG-2 스트림(시퀀스_엔드_코드를 가지고 있지 않는 것을 제외하고)을 포함하고 전이에서 모든 프레임들을 포함한다. 최종 단계는 VES를 전송 스트림 내로 패킷화하는 것이다.
전이 스트림 패킷화의 제1 단계는 각 프레임의 시작 오프셋(시퀀스_헤더 또는 픽쳐_헤더)을 위치시키는 전이 스트림 및 전이 스트림 내의 프레임 타입들을 분석하는 것이다. 일단 이런 데이타가 제공되면, 프레임들 사이의 의존성이 계산되고 프레임 디스플레이 순서가 결정된다. 시간_기준 필드들은 GOP 재건에 기인하여 현재로서는 실효성이 없기 때문에 이러한 목적에는 적합하지 않음을 주목하여야 한다. 디스플레이 순서가 결정되면, 시간_기준 필드들은 재-스탬핑되고 프리젠테이션(PTS) 및 디코드 타임 스탬프(DTS)가 전이 스트림의 각 프레임에 대해 계산된다.
MPEG-2 표준에 따라, 전송 스트림 내의 일시적인 불연속성이 허용됨을 주목하여야 한다. 그러나, 일부 디코더들은 완전히 MPEG-2 표준에 순응하지 않기 때문에, 이렇게 전송 스트림 내의 허용된 일시적 불연속성은 적절하지 못한 디코더 동작을 야기시킨다. 따라서, 전송 스트림 내의 이러한 일시적인 불연속성을 리-스탬핑 처리를 통해 제거하는 것이 바람직하다.
리-스탬핑 처리의 출력을 사용하여, PES 헤더들이 발생되고 프레임들이 PES 스트림에서 출력된다. 각 PES 헤더의 위치 및 각 PES 패킷의 크기가 이러한 처리 동작동안 기록된다. 마지막으로, PES 패킷을 보유하기 위해 전송 패킷들이 발생된다. 각 패킷 계층은 TS에 오버헤드를 첨가하여 약간의 크기 증가를 야기시킨다. 그에 따른 TS의 패킷들은 접합된 비디오 스트림의 PID를 가지고 스탬프된다. 패킷화 처리의 최종 출력은 단일 VES를 포함하는 TS이다. 상기 스트림은 어떠한 프로그램 특정 정보(PSI)도 가지고 있지 않다.
E. 리멀티플렉싱
전이 스트림 또는 전이 클립을 구축하는 최종 단계는 원래의 프로그램 스트림으로부터 프로그램 특정 정보(PSI)를 이용하여 비디오 클립(이제는 전송 스트림)을 리멀티플렉싱 하는 단계이다.
이러한 리멀티플렉싱 단계를 달성하기 위해서, 프롬 스트림은 검사되어 프로그램 관련 테이블(PAT) 및 프로그램 맵 테이블(PMT) 중 하나를 추출한다. 단일 프로그램 전송 스트림을 접합하는 경우에는 오직 하나의 PMT 만이 존재한다. 다중 프로그램 전송 스트림들을 접합하는 경우에는 단지 다중 PMT들만이 존재한다. 선택적으로, ATSC 방송 포맷을 완전히 구현하기 위해서, 당업자에게 공지된 다른 테이블들을 추출하는 것도 역시 필요하다.
PAT 및 PMT를 추출한 후에, 전이 클립에서의 패킷들의 수가 멀티플렉스 비트 레이트, 전이 클립에서의 프레임들 수, 및 프레임 레이트에 따라 계산된다. 예를 들어, ATSC 사양은 적어도 100ms 마다 PAT를 적어도 400ms 마다 PMT를 필요로 한다. PAT 및 PMT 테이블 사이의 패킷들의 수는 멀티플렉스 비트 레이트로부터 결정된다.
전이 클립에서의 패킷들의 수가 계산된 후에, 널(null) 전송 패킷으로 구성되는 블랭크 전이 클립이 발생되고 PAT 및 PMT 테이블들이 계산된 공간들(예를 들면 100ms 마다 PAT 및 400ms 마다 PMT)에서 입력된다.
비어있는 전이 스트림에 적절하게 PAT 및 PMT를 입력한 후에, 이용 가능한 잔존 패킷 내의 패킷들을 배치함으로써 비디오 전송 스트림이 비어있는 전이 스트림 내에 입력되고, 이에 기해 출력 전송 스트림을 형성한다.
상기 PAT,PMT 및 비디오 패킷들을 빈 전이 클립 내에 입력할 때, 각 패킷은 새로운 연결-카운터로 리스탬핑 되어야 함을 주목하여야 한다. 연결-카운터의 초기값은 출력 스트림 또는 프롬 스트림으로부터의 각 PID에 대해 개별적으로 결정된다. 비디오 클립이 너무 크면, 전이 클립의 전송 패킷이 충분하지 않게 되는데 이는 전이 클립의 크기가 예상 클립 지속기간에 대해 계산되기 때문이다. 이러한 계산은 프레임 카운트, 프레임 레이트, VBV 지연, 멀티플렉스 비트 레이트 등을 고려한다. VBV 조정이 인코더에 의해 적절하게 수행되는 것이 중요하다.
완성된 전이 클립은 계산된 전송 패킷 오프셋들에서 접합된 전송 스트림 사이에 입력되고, 이에 기해 무절단 접합을 달성한다.
위에서 기술된 본 발명은 전이 스트림 또는 클립을 사용하여 전송 스트림의 무절단, 정확한 프레임 접합 또는 연결을 제공하고, 이를 통해 완전히 새로운 전송 스트림 구성을 방지하게 한다. 프롬 스트림 및 투 스트림은 전이 스트림을 발생시키기 위한 충분한 정보를 제공하기 위해서만 사용되기 때문에, 상기 처리 기간동안에는 수정되지 않는다. 스트림들 사이의 변화를 달성하기 위해 사용된 후에, 전이 스트림은 시스템에 의해 버려지거나 또는 장래의 사용을 위해 저장된다.
본 발명은 주로 예시적인 비디오 스트림 또는 서브 스트림을 포함하는 MPEG-2 전송 스트림의 무절단 접합을 제공하는데 사용되기에 적합한 비디오 정보를 포함하는 전이 스트림 발생과 관련되어 기술된다. 그러나 당업자는 다른 형태의 정보들이 이러한 비디오 스트림들과 관련될 수 있음을 잘 이해할 것이다. 예를 들면, 많은 비디오 스트림들이 상응하는 오디오 스트림들과 관련된다. 게다가, 데이타 에센스(essence) 및 메타 데이타와 같은 다른 형태의 정보들이 비디오 정보를 포함하는 정보 스트림에 통합될 수 있다. 데이타 에센스는 스트림 내의 비디오 및/또는 오디오 데이타와 독립적인 컨텍스트(context)를 가지는 데이타이다. 데이타 에센스의 예들은 비디오 및/또는 오디오 데이타 등과 관련되지 않는 주식 싯가(stock quotation), 기상보고 및 다른 뉴스, 메세지 또는 제어 정보를 포함한다.
메타-데이타는 비디오 또는 오디오 스트림의 특성을 기술하는 데이타와 같이 다른 데이타를 관련시키는 데이타이다. 메타-데이타의 예들은 교번(alternate) 카메라 앵글, 영화 배우들의 이름, 프리젠테이션 타이틀 등과 같은 비디오 또는 오디오 프레임과 관련된 비디오 또는 인터넷 데이타 방송 패킷들을 포함한다.
비디오 정보 스트림 내의 특정 비디오 프레임들과 관련된 오디오 정보, 데이타 에센스 및/또는 메타-데이타의 경우에 있어서, 특정 비디오 프레임과 관련된 모든 데이타가 비디오 프레임의 수신기에 제공되도록 하는 것이 바람직하다. 따라서, 하나 또는 그 이상의 비디오 스트림들이 연결되어 접합 비디오 스트림을 발생시키는 접합 애플리케이션의 경우에 있어서, 상기 접합을 가능케하기 위해 전이 클립에서 이용되는 비디오 프레임들과 관련된 오디오 정보, 데이타 에센스 및/또는 메타-데이타가 전이 클립 내에 포함되도록 하는 것이 바람직하다.
도4A는 본 발명을 이해하는데 유용한 접합 동작을 보여주는 도이다. 특히, 도4A는 스트림 A로 지정된 프롬-스트림(410); 스트림 B로 지정된 투-스트림(420); 및 스트림 T로 지정된 전이 스트림 또는 전이 클립(430)을 포함한다. 각 스트림들(A(410), B(420),T(430))은 예시적으로 비디오 프레임(제시되지 않음), 메타-데이타, 데이타 에센스 및 오디오 데이타를 포함하는 MPEG-s 전송 스트림들이다. 이러한 전송 스트림들은 복수의 패킷 정보 스트림들을 멀티플렉싱 함으로써 형성되어 결과로서 비디오, 오디오 및 다른 데이타 스트림을 포함하는 정보 스트림을 제공한다. 불행히도, 상기 멀티플렉싱 처리는 오디오, 데이타 에센스 및 메타-데이타 패킷들을 각각의 비디오 타임들에 대략적으로 정렬시키지 않는다. 즉, 전송 스트림 내의 각 비디오 프레임에 대해, 비디오 프레임을 포함하는 패킷들은 비디오 프레임과 연관된 오디오 데이타, 데이타 에센스 또는 메타-데이타를 포함하는 패킷보다 선행하거나 또는 후행할 수 있다. 따라서, 출력 또는 입력 프레임을 형성하는 비디오 패킷들에 대해서만 전이 스트림이 형성되면, 상기 출력 또는 입력 프레임과 연관된 메타-데이타, 데이타 에센스 및/또는 오디오 데이타는 상실되거나 또는 불완전하게 전이 스트림에 제공된다.
스트림 A(410)는 시작 비디오 프레임(410-ST) 및 인코딩 비디오 프레임(410-END)에 의해 경계 지워진다. 스트림 A는 출력 비디오 프레임(410-OUT)에서 출력되는 프롬-스트림을 포함한다. 따라서, 전이 스트림 발생 방법들과 관련하여 위에서 기술된 대로, 전이 비디오 프레임(410-TRAN)에서 시작하여 출력 비디오 프레임(410-OUT)에서 종료되는 복수의 정보 프레임들이 전이 스트림을 형성하는데 사용하기 위해 디코딩된다. 그러나, 출력 비디오 프레임(410-OUT)은 출력 비디오 프레임(410-OUT) 후에 스트림 A 내에 위치하는 메타-데이타(410-MD), 데이타 에센스(410-DE) 및 오디오 데이타(410-AD)와 관련된다. 이러한 데이타는 출력 비디오 프레임(410-OUT) 전에 위치될 수도 있음을 주목하여야 한다. 따라서, 이러한 비-비디오 데이타를 전이 스트림에 통합하기 위해, 비-비디오 데이타를 추출 또는 디코딩하는 것이 필요하다. 스트림 A(410)를 살펴보면, 출력 프레임(410-OUT)과 결합된 이러한 비-비디오 데이타는 전이 프레임(410-TRAN) 및 비-비디오 데이타와 결합될 가능성이 있는 최대 경계(또는 한계)를 정의하는 한계 프레임(410-EXT)에 의해 경계지워 진다.
스트림 B(420)는 시작 비디오 프레임(420-ST) 및 종료 비디오 프레임(420-END)에 의해 경계지워 진다. 스트림 B는 입력 비디오 프레임(420-IN)에서 시작되는 투-스트림을 포함한다. 따라서 상기에서 전이 스트림 발생 방법과 관련하여 설명된대로, 입력 프레임(420-IN)에서 시작하여 전이 비디오 프레임(420-TRAN)에서 종료하는 복수의 정보 프레임들이 전이 스트림(430)을 형성하는데 사용되기 위해 디코딩된다. 그러나, 입력 비디오 프레임(420-IN)은 입력 비디오 프레임(420-IN)에 앞서 스트림 B 내에 위치하는 메타 데이타(420-MD), 데이타 에센스(420-DE) 및 오디오 데이타(420-AD)와 관련된다. 이러한 데이타는 입력 비디오 프레임(420-IN) 후에 위치할 수도 있음을 주목하여야 한다. 따라서, 이러한 비-비디오 데이타를 전이 스트림(430)에 통합하기 위해, 이러한 비-비디오 데이타를 추출 또는 디코딩하는 것이 필요하다. 스트림 B(420)를 보면, 입력 비디오 프레임(420-IN)과 연관된 비-비디오 데이타는 한계 프레임(420-EXT) 및 전이 프레임(420-TRAN)에 의해 경계 지워진다. 한계 프레임(420-EXT)은 비트 스트림 순서에서 입력 프레임(420-IN)에 선행하는 비-비디오 데이타와 연관된 가능성이 있는 최대 경계(한계)를 정의한다.
따라서, 전이 스트림에 적합한 모든 비디오 프레임들 및 이러한 비디오 프레임들과 연관된 모든 비-비디오 데이타를 수집하기 위해 분해된(deconstructed) 스트림 A 부분은 410-TRAN 및 410-EXT에 의해 경계지워 진다. 유사하게, 분해된 스트림 B 부분은 420-EXT 및 420-TRAN에 의해 경계지워 진다. 스트림 A 및 B로 부터 비디오 데이타, 메타 데이타, 데이타 에센스 및 오디오 데이타를 디코딩 및/또는 추출한 후에, 전이 스트림(430)은 이러한 데이타를 포함하는 방식으로 형성된다. 따라서, 전이 스트림(430)은 시작 프레임(430-ST) 및 종료 프레임(430-END)에 의해 경계지워 진다. 그리고 나서 SPLICE 포인트는 적절한 출력 프레임(410-OUT) 및 입력 프레임(420-IN)에서의 2개의 스트림 사이의 정확한 프레임 접합을 정의한다. 게다가, 전이 스트림(430) 내에 포함된 비디오 프레임들과 연관된 메타 데이타, 데이타 에센스 및/또는 오디오 데이타 역시 전이 프레임 내에 포함된다. 이러한 비-비디오 데이타는 접합 포인트와 관계없이 전이 스트림 내에 정렬된다. 즉, 비-비디오 데이타는 비-비디오 및 비디오 데이타 패킷들 사이의 관련성을 보존하는 방식으로 비디오 데이타 패킷들로 멀티플렉싱될 수 있다.
도4B는 본 발명의 이해에 유용한 접합 동작을 보여주는 도이다. 특히, 도4B는 제1 멀티-프로그램 전송 스트림(440) 및 제2 멀티 프로그램 전송 스트림(450)을 포함한다. 제1 및 제2 멀티 프로그램 전송 스트림(440,450)은 각각 복수의 전송 서브 스트림들을 포함한다. 본 발명은 비-비디오 데이타 및 이와 관련된 비디오 데이타 사이의 관련성을 보존하는 방식으로 이러한 다중 프로그램 전송 스트림 사이의 정확한 프레임, 무절단 접합을 수행하는데 이용될 수 있다.
전송 멀티플렉스 A(440)는 프로그램 1(441), 프로그램 2(442) 및 프로그램 3(443)으로 지정된 3개의 전송 서브 시스템들을 포함한다. 전송 멀티플렉스 B(450)는 프로그램 A(451), 프로그램 B(452) 및 프로그램 C(453)로 지정된 3개의 전송 서브 스트림들을 포함한다. 이러한 논의를 위해 전송 멀티플렉스 B는 서브 스트림 수준에서 전송 멀티플렉스 A와 연결되는 것으로 가정한다. 즉, 프로그램 1(441) 및 프로그램 A(451)가 연결되어 복수의 서브 스트림들을 포함하는 전이 스트림 내의 제1 전송 서브 스트림을 형성한다. 특히, 프로그램 1은 아웃 프레임(441-OUT)에서 출력되고, 프로그램 A는 인 프레임(451-IN)에서 시작된다. 유사하게, 프로그램 2는 아웃 프레임(442-OUT)에서 출력되고 프로그램 B는 인 프레임(452-IN)에서 입력되며, 프로 그램 3은 아웃 프레임(443-OUT)에서 출력되고 프로그램 C는 인 프레임(453-IN)에서 입력된다. 그에 따른 전이 스트림은 도4B에서 지시되고 위에서 기술된 프레임 정확한 무절단 접합 포인트를 포함하여 모든 6개의 스트림 중 일부로 구성되는 전송 멀티플렉스 스트림을 포함한다.
비디오 프레임들 뿐만 아니라, 각 전송 서브 스트림들은 메타 데이타, 데이타 에센스 및 오디오 데이타와 같은 비-비디오 데이타를 포함한다. 도4B에서 제시되듯이, 접합 포인트들 및 전이 스트림 내에 포함된 비디오 프레임들 각각은 이러한 비-비디오 데이타의 한계와 관련된다. 따라서, 전송 멀티플렉스 서브 스트림들 각각은 디코딩되거나 모든 필요한 비디오 및 비-비디오 데이타의 추출을 축적시키기 위해 처리되어 개별 전이 서브 스트림을 달성한다. 그리고 나서 개별 전이 서브 스트림들은 뒤이은 제1 멀티 프로그램 스트림 A(440) 및 제2 멀티 프로그램 스트림 B(450)의 연결을 위해 다중 프로그램 전이 스트림으로 통합된다.
도4C는 본 발명을 이해하는데 유용한 접합 동작을 보여주는 도이다. 특히, 도4C는 형성중인 전이 스트림(460) 내의 비-비디오 패킷 위치 홀더(holder)의 예약(reservation)을 보여준다. 즉, 전이 스트림을 형성하는 동안, 접합된 프레임들로 부터 상기 디코딩된 비디오 프레임들을 인코딩하는 단계는 비-비디오 데이타를 부분적으로 형성된 전이 스트림 내에 입력하는 단계에 앞서 수행된다. 전이 스트림 내의 비-비디오 데이타가 그와 관련된 비디오 데이타 근처에 위치하도록 하기 위해, 위치 홀더는 비디오 인코딩 처리 기간동안 전이 스트림 내의 비-비디오 데이타의 뒤이은 입력을 허용하도록 설정된다. 특히, 도4C에 제시되듯이, 복수의 오디오, 데이타 에센스 및/또는 메타 데이타 위치 홀더들이 형성중인 전이 스트림 내에 입력된다. 전이 스트림이 완성되면, 비-비디오 데이타를 저장하기 위해 사용되지 않은 이러한 위치 홀더들은 삭제되고 완성된 전이 스트림(460')은 전이 스트림으로 이용된다.
위에서 도4B와 관련하여 제시된 다중 프로그램 전송 스트림 내에서, 전이 스트림 발생 처리 기간동안 형성된 각 전송 서브 스트림들은 비-비디오 데이타 위치 홀더들의 세트를 이용한다. 완성시에 각 스트림은 사용되지 않은 위치 홀더들을 삭제 또는 비-활성화시켜 완성된 전이 스트림을 형성한다.
그에 따른 전이 스트림 또는 전이 클립(430)은 스트림 A 및 B 각각으로부터의 비디오 정보 및 비-비디오 정보를 포함한다.
도12는 화소 영역 효과들을 통합시키는 전이 스트림 또는 전이 클립을 발생시키는 방법에 대한 흐름도이다. 특히, 도12는 도3의 무선 서버 플레이(110)의 전이 클립 발생 함수(344)의 사용에 적합한 방법(1200)에 관한 흐름도이다.
상기 방법(1200)은 단계(1210)에서 개시되고, 여기서 "프롬-스트림" 및 "투-스트림"의 주석(annotate)이 달아진다. 정보 스트림에 주석을 다는 방법은 이전에 도10과 관련하여 설명되었다. 이전에 언급되었듯이, 이러한 주석달기는 본 발명을 실행하는데 반드시 요구되지는 않는다. 그러나, 이러한 주석달기 과정은 뒤이은 처리 단계들에서 스트림을 효율적으로 처리하는데 유용하다. 상기 방법(1200)은 그리고 나서 단계(1220)으로 진행한다.
단계(1220)에서 출력 프레임에 선행하는 프롬 스트림의 일부는 도7의 방법(700)의 단계(710)과 관련하여 기술된 것과 같이 디코딩된다. 그리고 나서 상기 방법(1200)은 단계(1230)으로 진행한다.
단계(1230)에서 출력 프레임에서 시작하는 투-프레임의 일부는 도7 방법(700)의 단계(715)와 관련하여 기술된 것과 같이 디코딩된다. 그리고 나서 상기 방법(1200)은 단계(1240)으로 진행한다.
단계(1240)에서 상기 디코딩된 프롬-스트림 및 투-스트림의 일부는 하나 또는 그 이상의 화소 영역 처리 단계들에 종속되어 예를 들면 특별한 효과 또는 다른 처리 효과를 제공한다. 단계(1240)에서 제공된 상기 특별한 효과는 박스(1245)에 제시된 특별한 효과들(즉, 모핑, 패이딩, 와이프, 디졸브, 푸쉬, 리빌, 블랙-프레임, 프리즈-프레임 또는 다른 공지된 화소 영역 처리 효과들) 중 하나 또는 그 이상을 포함할 수 있다. 모핑 효과는 하나의 모양에서 다른 모양으로의 점진적(예를 들면 프레임마다) 변화를 포함한다. 와이프 효과는 제1 및 제2 이미지들을 묘사하는 수직 바의 위치를 좌에서 우 또는 상에서 하로 변화시키는 것과 같이 인트라-이미지 영역 변화를 통해 하나의 이미지에서 다른 이미지로의 변화를 포함한다. 패이딩 또는 디졸브 효과는 제1 이미지의 점진적 패이딩 또는 디졸빙을 통해 제1 이미지 밑에 있는 제2 이미지를 나타내도록 하는 것을 포함한다. 상기 밑에 있는 이미지는 패이딩될 수도 있고 또는 제1 이미지 패이딩과는 반대로 나타날 수도 있다. 블랙(또는 블루) 프레임 효과는 2개의 이미지들 사이에 단색(monochrome) 프레임을 입력하는 것을 포함한다. 푸쉬(push) 효과는 새로운 이미지의 슬라이딩에 의해 이전 이미지가 스크린 밖으로 밀려지는 것과 같은 효과를 말한다. 상기 이전 이미지 및 새로운 이미지는 이러한 효과들 달성하기 위해 어떤 방향으로라도 미끌어질 수 있다. "리빌(reveal)" 효과는 이전 이미지가 제거되어 밑에 있는 새로운 이미지를 나타내는 효과를 말한다. 리빌 효과는 "필 백(peal back)" 효과를 포함할 수도 있고, 여기서 "턴 업된 코너(turned up corner)" 또는 턴 업된 코너의 그래픽적 표현은 이전 이미지 밑에 있는 새로운 이미지의 일부를 보여준다. 새로운 이미지를 선택하게 되면, 이전 이미지는 턴업된 코너 부분과 함께 시작될 때 필 백 되거나 화면에서 제거되어 밑에 있는 새로운 이미지를 보여준다.
메타-데이타에 대한 비-화소 영역 효과는 문장(sentence) 경계에서의 폐쇄 캡션 변화를 포함할 수도 있다. 오디오 영역에 대한 비-화소 효과는 접합 정보 스트림을 형성하기 위해 침묵을 통해 스트림 A로부터 스트림 B와 연관된 오디오 정보로의 오디오 패이딩을 포함한다.
화소 영역 처리 단계는 비디오 클립들 사이의 전이에 대한 예술적이고 흥미로운 수단을 제공하는데 사용될 수도 있다. 예를 들어, 캐이비에트(caveat) 효과가 프레임 1 및 프레임 6의 일부를 포함하는 4개의 입력 프레임들을 통해 프레임 1에서 프레임 6으로의 전이에 의해 6 프레임 전이 클립에서 구현될 수 있다. 화소 영역 처리가 비록 관측자에게 전이 정보의 일부를 전달하는 것이 바람직하기는 하지만, 이러한 전이 정보의 전달이 반드시 요구되는 것은 아니다. 그리고 나서 상기 방법(1200)은 단계(1250)으로 진행한다.
본 발명의 일 실시예에서, 화소 영역 처리는 복수의 전송 스트림들 또는 다른 스트림들에 대해 수행된다. 특히, 본 발명은 위에서 주로 최소한의 이미지 정보를 포함하는 접합 전송 스트림을 형성하기 위해 연결된 최소한의 이미지 정보를 포함하는 2개의 전송 스트림들과 관련하여 전술되었다. 전이 스트림 또는 전이 클립을 발생시키는 동안, 각 전송 스트림 내의 이미지 정보는 디코딩되어 화소 영역 처리에 의한 처리에 사용가능한 화소 영역 정보가 제공되도록 한다. 본 발명의 일 실시예에서, 추가적인 화소 영역(또는 비-화소 영역) 정보가 화소 영역 또는 비-화소 영역 처리 단계 동안 사용된다. 크로마키(chroma-key) 처리 예에서, 여기서 K-스트림으로 지정된 크로마키 신호를 포함하는 전송 스트림은 하나 또는 그 이상의 크로마키 이미지 영역을 가지는 비디오 정보를 포함한다. K-스트림 내의 제1 키 이미지 영역은 제1 칼라에 의해 표시되고, K-스트림 내의 제2 키 이미지 영역은 제2 칼라에 의해 표시된다. 제1 키 영역과 관련된 전이 클립 내의 화소 영역 정보는 제1 정보 소스 또는 정보 스트림으로부터의 정보에 의해 대체되고, 제2 키 영역과 관련된 전이 클립 내의 화소 영역 정보는 제2 정보 소스 또는 정보 스트림으로부터의 정보에 의해 대체된다. 따라서, 전이 스트림을 형성하기 위해 스트림 A 와 스트림 B를 연결시키는 K-스트림을 포함하는 스트림 A의 경우에, 2개의 추가적인 정보 스트림들(영역 스트림 1 및 영역 스트림 2로 지정됨)이 사용되어 K-스트림의 제1 및 제2 키 영역을 각각 대체시키는 이미지 정보를 제공한다. 당업자는 어떠한 영역들도 이용될 수 있고 비-화소 정보가 영역들로 분할될 수 있음을 잘 이해할 것이다.
단계(1250)에서, 디코딩 및 처리된 비디오 프레임들은 재-인코딩되어 전이 스트림을 형성한다. 단계(1250)는 도7 방법(700)의 단계(720)와 관련하여 위에서 기술된 방식과 실질적으로 동일한 방식으로 구현될 수 있다.
따라서, 도12의 방법(1200)은 전이 스트림 또는 전이 클립의 발생뿐만 아니라 예술적 또는 흥미있는 시각적 목적에 부합하도록 전이 스트림 또는 전이 클립 내의 비디오 정보의 적응을 제공한다. 이러한 방식으로, 프롬-스트림이 출력되고 투-스트림이 입력될 때 공지된 화소 영역 처리 기술들이 보다 현실적인 전이 인상을 제공하기 위해 사용될 수 있다. 비-비디오 영역들에서의 처리 역시 도4A-4C와 관련하여 위에서 기술된 비-비디오 데이타에 대해 수행될 수 있음을 주목하여야 한다.
따라서 본 발명의 사용은 단지 2개의 이미지 스트림들의 화소 또는 이미지 영역 처리라는 단순한 개념을 넘어선다. 본 발명은 발생된 전이 스트림 내의 화소 영역 또는 다른 비-비디오 영역 정보를 처리하기 위해 복수의 정보 스트림들이 사용될 수 있는 넓은 적용한계를 가진다. 이러한 방식으로, 전이 스트림 또는 전이 클립은 많은 정보 소스들에 응답하여 발생되어 비디오 및 비-비디오 정보가 전이 클립을 형성하는 2개 이상의 스트림으로부터의 비디오 및 비-비디오 정보와 병합될 수 있도록 하여준다.
전이 클립 또는 전이 스트림은 미리 설정된 수의 비디오 프레임들로 형성될 수 있음을 주목하여야 한다. 이전에 기술된 VBV 처리 기회들뿐만 아니라 이러한 미리 설정된 수의 프레임들이 일부 프레임들을 선택적으로 인코딩함으로써 특정 화소 영역 효과를 달성하는데 사용될 수 있다. 예를 들어, 5개의 비디오 프레임들을 가지고 있는 전이 클립에 있어서, 5개 프레임 각각은 6개의 내부-프레임 영역으로 분할될 수 있다. 제1 프레임은 투-스트림으로부터 1/6 비디오 데이타를 포함하고 프롬-스트림으로 부터 5/6 데이타를 포함한다; 제2 프레임은 투-스트림으로부터 2/6 데이타를 포함하고 프롬-스트림으로부터 4/6 데이타를 포함하며 이러한 방식으로 제5 프레임이 투-스트림으로부터 5/6 데이타를 포함하고 프롬-스트림으로부터 1/6 데이타를 포함한다. 본 발명은 전이 스트림에서 3 및 25 프레임 사이의 사용자 선택 가능한(또는 미리 설정된) 수의 프레임들의 제공이 최대 화소 영역 처리 및 VBV 버퍼 정규화 함수들을 인에이블 할 수 있는 충분한 유연성을 제공한다는 것을 결정하였다.
도13은 본 발명의 실시예에 따라 전이 스트림 또는 전이 클립을 발생시키는 방법에 관한 흐름도이다. 특히, 도13은 도3의 무선 서버 플레이(110)의 전이 클립 방생 함수(344)에서의 사용에 적합한 방법(1300)의 흐름도이다.
상기 방법(1300)은 단계(1310)에서 시작하고, 여기서 출력 프레임에 선행하는 프롬-스트림의 적절한 일부가 디코딩된다. 그리고 나서 상기 방법(1300)은 단계(1320)으로 진행한다.
단계(1320)에서, 데이타 에센스, 오디오, 메타-데이타 및/또는 프롬-스트림 내의 다른 데이타와 같이 상기 디코딩된 비디오 부분과 관련된 비-비디오 정보가 추출 또는 디코딩된다. 즉, 단계(1310)에서 디코딩된 프롬-스트림 내의 비디오 프레임들과 관련된 상기 비-비디오 데이타 타입들과 같은 보조 또는 부속 데이타가 전이 스트림 또는 전이 클립에서의 뒤이은 사용을 위해 추출 또는 디코딩된다.
단계(1330)에서, 입력 프레임에서 시작하는 투-스트림의 적합한 일부가 디코딩된다. 그리고 상기 방법(1300)은 단계(1340)으로 진행한다.
단계(1340)에서, 단계(1330)에서 디코딩된 비디오 프레임들과 관련된 비-비디오 데이타가 추출 또는 디코딩된다. 즉, 단계(1330)에서 디코딩된 비디오 프레임들과 관련된 투-스트림 내의 데이타 에센스, 오디오, 메타-데이타 및/또는 다른 데이타가 전이 스트림 또는 전이 클립에서의 뒤이은 사용을 위해 추출 또는 디코딩된다. 그리고 나서 상기 방법(1300)은 선택적 단계(1350)로 진행한다.
단계(1350)는 부분적으로 형성된 전이 스트림 또는 전이 클립에서의 사용에 적합한 선택적 처리 단계이다. 특히, 선택적 단계(1350)는 독립적 또는 상호 조합적으로 이용되어 단계(1310 및 1330)에서 디코딩된 비디오 데이타 또는 단계(1320 및 1340)에서 추출 또는 디코딩된 비-비디오 데이타의 처리를 달성하는 3개의 선택적 서브-단계들을 포함한다.
선택적 단계(1350) 내의 제1 선택적 서브 단계(1352)는 상기 디코딩된 비디오 데이타의 임의의 화소 영역 처리 수행을 포함한다. 즉, 도12의 단계(1240) 및 박스(1245)에서 기술된 최소한의 화소 영역 처리 기술들 중 임의의 기술들이 단계(1310) 및 단계(1330)에서 각기 디코딩된 투-스트림 및 프롬-스트림 비디오 정보를 처리하기 위해 사용된다. 그리고 나서 상기 방법(1300)은 단계(1354)로 진행한다.
제2 선택적 서브 단계(1354) 또는 단계(1350)에서, 단계(1320) 및/또는 단계(1340)로 부터 추출 또는 디코딩된 오디오 데이타의 오디오 영역 처리가 수행된다. 이러한 오디오 처리는 예를 들어, 청취자에 대한 전이의 느낌 또는 다른 오디오의 충격을 전달하기 위해 사용되는 공지된 오디오 영역 처리 기술들을 포함할 수 있다. 그리고 나서 상기 방법(1300)은 단계(1356)으로 진행한다.
단계(1350)의 제3 선택적 서브 단계(1356)에서, 단계(1320) 및/또는 단계(1340)에서 추출 및 디코딩된 데이타 에센스, 메타 데이타 또는 다른 데이타의 데이타 영역 처리가 수행된다. 이러한 데이타 처리는 예를 들어 단계(1352)에서 수행된 화소 영역 처리에 따라 메타 데이타 또는 데이타 에센스를 조정하는 것을 포함할 수 있다. 예를 들어, 메타 데이타가 화소 영역 처리에 종속된 전이 클립 비디오 프레임의 화소 영역 특성을 기술하고 있으면, 상기 메타 데이타는 상응하는 화소 영역 처리를 반영하도록 처리된다. 다른 데이타 처리 함수들도 역시 구현될 수 있다. 그리고 나서 상기 방법(1300)은 단계(1360)으로 진행한다..
단계(1360)에서, 디코딩 및 선택적으로 처리된 전이 스트림 및 클립의 비디오 부분들이 재-인코딩된다. 게다가, 추출 또는 디코딩된 데이타 에센스, 오디오, 메타 데이타, 및/또는 단계(1352-1356)에서 처리된 비-비디오 데이타를 포함하는 다른 데이타가 적합한 포맷에 따라 재-인코딩되고 데이타 타입에 따라 입력된다. 즉, 단계(1310-1350)에서 발생되어 선택적으로 처리된 비디오 및 비-비디오 정보는 재-인코딩되거나 전송 스트림 포맷 내로 재-입력되어 전이 클립 또는 전이 스트림을 형성한다.
도4C와 관련하여 상기에서 기술된 본 발명의 실시예에서, 형성되는 전이 스트림은 전송 스트림 또는 다른 스트림을 포함하며, 여기서 복수의 패킷들이 비디오 및 비-비디오 데이타를 표현하기 위해 사용된다. 이러한 실시예에서, 전이 스트림 또는 전이 클립을 형성하기에 앞서, 정보를 보유하기 위해 이용되도록 제공된 패킷들 중 일부는 비-비디오 데이타를 위해 비축된다. 이러한 방식으로, 비디오 정보는 비-비디오 정보 처리에 앞서 처리되어 상기 비디오 프레임들에 인접하는 데이타 위치 홀더가 이러한 인접 비디오 프레임들과 관련된 데이타를 포함하도록 하기 위해 비디오 프레임들 사이에 분산되도록 할 수 있다. 따라서, 본 발명의 이러한 실시예에서 상기 선택적 단계(1350)는 도13의 단계(1310) 및 방법(1300)에 앞서 사용될 수도 있다. 특히, 단계(1350)에서 메모리 부분 또는 전이 스트림으로 사용되도록 의도된 복수의 패킷들은 비-비디오 사용을 위한 패킷들을 정의하는 위치 홀더 정보를 가지고 분산된다. 그리고 나서 상기 방법(1300)은 단계(1310)부터 단계(1360)로 진행한다.
박스(1365) 마다 단계(1360)는 비디오 프레임들과 관련되어 있고 선택적으로 처리된 오디오, 메타 데이타, 데이타 에센스 및/또는 다른 데이타와 같은 비-비디오 정보를 저장하기 위해 적절한 위치 홀더를 이용한다. 이러한 전이 클립이 완성되거나 또는 모든 비-비디오 정보를 처리하고 이러한 비-비디오 정보를 적합한 위치 홀더 내에 위치시키면, 사용되는 않은 위치 홀더들은 제거되거나 다른 목적을 위해 사용된다.
이전에 언급되었듯이, 프롬-스트림 및 투-스트림의 VBV가 실질적으로 무절단 접합 동작을 제공하는 방식으로 조절되도록 하기 위해 전이 클립의 추가적인 처리가 사용된다.
본 발명은 2개의 단일 프로그램 전송 스트림, 즉 영화, 텔레비젼 쇼 또는 광고 등과 같이 단일 오디오-비디오 프로그램을 포함하는 전송 스트림을 접합 또는 연결시키는 것에 대해 주로 기술되었다. 하지만, 당업자는 본 발명이 다중-프로그램 전송 스트림들 사이의 무절단, 정확한 프레임 접합을 제공할 수 있음을 잘 이해할 것이다. 이러한 접합을 달성하기 위해, 위해서 기술된 방법들은 다중 프로그램 전송 스트림들 내의 각 프레임에 대해 아웃-프레임, 인-프레임 및 다른 적합한 파라미터들을 결정하기 위해 사용된다.
비록 본 발명의 내용을 통합하는 다양한 실시예들이 기술되었지만, 다양한 변형된 실시예들이 적용될 수 있음을 당업자는 잘 이해할 것이다.

Claims (11)

  1. 이미지 프레임들을 포함하는 전송 스트림들을 처리하는 시스템에서, 실질적으로 무절단(seamless) 방식으로 제1 전송 스트림에서 제2 전송 스트림으로의 전이를 위한 전이(transition) 스트림을 발생시키는 방법으로서,
    제시될 상기 제1 전송 스트림의 최종 이미지 프레임을 나타내는 적어도 하나의 타겟 아웃-프레임을 포함하는 상기 제1 전송 스트림의 일부를 디코딩하는 단계(1220);
    제시될 상기 제2 전송 스트림의 제1 이미지 프레임을 나타내는 적어도 하나의 타겟 인-프레임을 포함하는 상기 제2 전송 스트림의 일부를 디코딩하는 단계(1230);
    화소 영역 처리(1245)를 사용하여 상기 디코딩된 이미지 프레임들 중 적어도 하나를 처리하는 단계(1240): 및
    상기 타겟 아웃-프레임 및 상기 타겟 인-프레임을 포함하는 복수의 상기 디코딩된 이미지 프레임들을 인코딩하여 상기 전이 스트림을 발생시키는 단계(1250)를 포함하는 전이 스트림 발생 방법.
  2. 제1항에 있어서,
    상기 화소 영역 처리는 모핑(morph), 패이딩(fade), 와이프(wipe), 디졸브(dissolve), 푸쉬(push), 리빌(reveal), 블랙(black)-프레임, 프리즈(freeze)-프레임 및 크로마키(chroma-keying) 화소 영역 처리 중 적어도 하나를 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  3. 제1항에 있어서,
    상기 제1 및 제2 전송 스트림으로부터 상기 전이 스트림을 형성하는데 사용되는 상기 비디오 프레임들과 관련된 비-비디오 데이타를 추출하는 단계(1320,1340); 및
    상기 추출된 비-비디오 데이타를 상기 전이 스트림 내에 입력하는 단계(1360)를 더 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  4. 제3항에 있어서,
    상기 비-비디오 데이타는 오디오 데이타, 메타(meta)-데이타, 데이타 에센스(essence), 부가(ancilliary) 데이타 및 보조(auxilliary) 데이타 중 적어도 하나를 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  5. 제3항에 있어서,
    비-비디오 영역 처리를 사용하여 상기 추출된 비-비디오 데이타 중 적어도 일부를 처리하는 단계(1350)를 더 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  6. 제4항에 있어서,
    상기 복수의 디코딩된 이미지 프레임을 인코딩하는 단계는 상기 인코딩된 복수의 이미지 프레임들을 전송 인코딩하는 단계를 포함하고, 상기 방법은,
    상기 전이 스트림 내의 복수의 전송 패킷들을 비축하는 단계(1315)를 포함하는데, 상기 비축된 패킷들은 인코딩된 이미지 정보를 저장하는데 이용되지 않으며; 및
    상기 추출된 비-비디오 데이타를 저장하기 위해 상기 비축된 복수의 전송 패킷들 중 적어도 일부를 이용하는 단계(1365)를 더 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  7. 제3항에 있어서,
    상기 제1 전송 스트림 및 상기 제2 전송 스트림은 각각 제1 및 제2 다중 프로그램 전송 스트림들로 멀티플렉싱되고, 상기 방법은,
    처리될 전송 스트림을 포함하는 각 다중 프로그램 전송 스트림에 대해 전이 스트림 내에 포함될 모든 이미지 프레임들의 최대 한계(extent)를 결정하는 단계; 및
    각각 결정된 최대 한계를 수용하기 위해 각 다중 프로그램 전송 스트림을 디멀티플렉싱하는 단계를 더 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  8. 제7항에 있어서,
    상기 이미지 데이타 한계를 결정하는 단계는 전이 스트림 내에 포함될 이미지 프레임들과 관련된 모든 비-비디오 데이타의 최대 한계를 결정하는 단계를 포함하고, 상기 최대 한계는 이미지 데이타 한계 및 비-비디오 데이타 한계의 조합을 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  9. 제1항에 있어서,
    상기 제1 및 제2 전송 스트림 각각을 인덱싱하는 단계를 더 포함하며, 상기 인덱싱 단계는,
    시퀀스 헤더, 픽쳐 헤더 및 미리 정의된 접합 신택스 중 적어도 하나와 관련된 패킷들을 식별하기 위해 인덱싱될 전송 스트림 계층을 분석하는 단계(1010); 및
    상기 인덱싱될 스트림 내의 각 프레임에 대해, 픽쳐 번호, 픽쳐 코딩 타입, 프레임 전송 패킷 번호의 시작, 프레임 전송 패킷 번호의 종료, 프리젠테이션 타임 스탬프(PTS) 및 디코딩 타임 스탬프(DTS) 중 적어도 하나를 결정하는 단계(1020)를 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  10. 제1항에 있어서,
    상기 프롬-스트림(from-stream) 및 상기 투-스트림(to-stream) 각각은 그와 관련된 각 비디오 버퍼링 검정기(VBV) 파라미터를 가지고 있는 전송 스트림을 포함하고, 상기 방법은,
    상기 프롬-스트림 VBV 파라미터 및 상기 투-스트림 VBV 파라미터 사이에 차이가 존재하는지 여부를 결정하는 단계; 및
    상기 결정에 따라 재-인코딩 단계를 적용하는 단계를 더 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
  11. 제10항에 있어서, 상기 적용 단계는,
    상기 프롬-스트림 VBV 파라미터가 상기 투-스트림 VBV 파라미터에 비해 제1 임계치 레벨만큼 초과한다는 결정에 따라 레이트 제어 비트 할당을 증가시키는 단계; 및
    상기 투-스트림 VBV 파라미터가 상기 프롬-스트림 VBV 파라미터에 비해 제2 임계치 만큼 초과한다는 결정에 따라 상기 레이트 제어 비트 할당을 감소시키는 단계를 포함하는 것을 특징으로 하는 전이 스트림 발생 방법.
KR1020017013137A 1999-04-14 2000-04-14 전이 스트림 발생 및 처리를 위한 방법 KR100725631B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US12927599P 1999-04-14 1999-04-14
US06/129,275 1999-04-14
US60/129,275 1999-04-14
US09/347,213 1999-07-02
US09/347,213 US6912251B1 (en) 1998-09-25 1999-07-02 Frame-accurate seamless splicing of information streams
US09/430,631 1999-10-29
US09/430,631 US6909743B1 (en) 1999-04-14 1999-10-29 Method for generating and processing transition streams
PCT/US2000/010208 WO2000062552A2 (en) 1999-04-14 2000-04-14 Method for generating and processing transition streams

Publications (2)

Publication Number Publication Date
KR20020001828A KR20020001828A (ko) 2002-01-09
KR100725631B1 true KR100725631B1 (ko) 2007-06-08

Family

ID=34656615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017013137A KR100725631B1 (ko) 1999-04-14 2000-04-14 전이 스트림 발생 및 처리를 위한 방법

Country Status (2)

Country Link
US (1) US6909743B1 (ko)
KR (1) KR100725631B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018088784A1 (en) * 2016-11-09 2018-05-17 Samsung Electronics Co., Ltd. Electronic apparatus and operating method thereof
KR101919014B1 (ko) * 2016-11-09 2018-11-15 삼성전자주식회사 전자 장치 및 그 동작방법

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619501A (en) * 1994-04-22 1997-04-08 Thomson Consumer Electronics, Inc. Conditional access filter as for a packet video signal inverse transport system
US7096481B1 (en) * 2000-01-04 2006-08-22 Emc Corporation Preparation of metadata for splicing of encoded MPEG video and audio
WO2002058384A1 (fr) * 2001-01-19 2002-07-25 Matsushita Electric Industrial Co., Ltd. Appareil et procede de reproduction
JP4490691B2 (ja) 2002-02-01 2010-06-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビデオデータ信号のシーケンスを記録する装置、記録担体、および方法
US8214741B2 (en) 2002-03-19 2012-07-03 Sharp Laboratories Of America, Inc. Synchronization of video and data
US20030204614A1 (en) * 2002-04-29 2003-10-30 The Boeing Company Method and apparatus for the display and distribution of cinema grade content in real time
US20030206596A1 (en) * 2002-05-03 2003-11-06 David Carver Multimedia content assembly
KR100865034B1 (ko) 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
US7266147B2 (en) * 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US8966551B2 (en) 2007-11-01 2015-02-24 Cisco Technology, Inc. Locating points of interest using references to media frames within a packet flow
US9197857B2 (en) * 2004-09-24 2015-11-24 Cisco Technology, Inc. IP-based stream splicing with content-specific splice points
MX2007004846A (es) 2004-10-25 2007-05-09 Korea Electronics Telecomm Dispositivo para generar flujos de datos, metadatos de emision pmcp, sistma de emision de transmision de datos digitales y metodo para la emision de transmision de datos digitales.
US20060233237A1 (en) * 2005-04-15 2006-10-19 Apple Computer, Inc. Single pass constrained constant bit-rate encoding
US8437392B2 (en) * 2005-04-15 2013-05-07 Apple Inc. Selective reencoding for GOP conformity
CA2613998C (en) * 2005-06-08 2016-01-05 Thomson Licensing Method, apparatus and system for alternate image/video insertion
KR100728237B1 (ko) 2005-07-12 2007-06-13 한국전자통신연구원 지상파 디지털 멀티미디어 방송 스트림 변환 장치 및 그방법과 그를 이용한 지상파 dmb 전송 장치 및 그 방법
US8726325B2 (en) * 2005-08-08 2014-05-13 Telvue Corporation Method and apparatus for scheduling delivery of video and graphics
US8832728B2 (en) * 2005-08-24 2014-09-09 Arris Enterprises, Inc. Logical content ad insertion
KR101100207B1 (ko) * 2005-11-08 2011-12-28 엘지전자 주식회사 디지털 방송 시스템 및 처리 방법
US7333865B1 (en) * 2006-01-03 2008-02-19 Yesvideo, Inc. Aligning data streams
WO2007091779A1 (en) 2006-02-10 2007-08-16 Lg Electronics Inc. Digital broadcasting receiver and method of processing data
WO2007126196A1 (en) 2006-04-29 2007-11-08 Lg Electronics Inc. Digital broadcasting system and method of processing data
WO2007136166A1 (en) 2006-05-23 2007-11-29 Lg Electronics Inc. Digital broadcasting system and method of processing data
US7873104B2 (en) 2006-10-12 2011-01-18 Lg Electronics Inc. Digital television transmitting system and receiving system and method of processing broadcasting data
US8873932B2 (en) 2007-12-11 2014-10-28 Cisco Technology, Inc. Inferential processing to ascertain plural levels of picture interdependencies
US8416859B2 (en) 2006-11-13 2013-04-09 Cisco Technology, Inc. Signalling and extraction in compressed video of pictures belonging to interdependency tiers
US8875199B2 (en) * 2006-11-13 2014-10-28 Cisco Technology, Inc. Indicating picture usefulness for playback optimization
US8155207B2 (en) 2008-01-09 2012-04-10 Cisco Technology, Inc. Processing and managing pictures at the concatenation of two video streams
KR101285887B1 (ko) 2007-03-26 2013-07-11 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
KR101253185B1 (ko) 2007-03-26 2013-04-10 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
KR101285888B1 (ko) 2007-03-30 2013-07-11 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
WO2009005326A2 (en) 2007-07-04 2009-01-08 Lg Electronics Inc. Digital broadcasting system and method of processing data
US8433973B2 (en) * 2007-07-04 2013-04-30 Lg Electronics Inc. Digital broadcasting system and method of processing data
KR20090012180A (ko) 2007-07-28 2009-02-02 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
US8804845B2 (en) 2007-07-31 2014-08-12 Cisco Technology, Inc. Non-enhancing media redundancy coding for mitigating transmission impairments
US8958486B2 (en) 2007-07-31 2015-02-17 Cisco Technology, Inc. Simultaneous processing of media and redundancy streams for mitigating impairments
WO2009028857A2 (en) 2007-08-24 2009-03-05 Lg Electronics Inc. Digital broadcasting system and method of processing data in digital broadcasting system
US8270488B2 (en) * 2007-10-15 2012-09-18 Cisco Technology, Inc. Using black detection to improve video splicing
US8416858B2 (en) * 2008-02-29 2013-04-09 Cisco Technology, Inc. Signalling picture encoding schemes and associated picture properties
US9955122B2 (en) * 2008-04-11 2018-04-24 Mobitv, Inc. Dynamic advertisement stream replacement
WO2009152450A1 (en) 2008-06-12 2009-12-17 Cisco Technology, Inc. Picture interdependencies signals in context of mmco to assist stream manipulation
US8705631B2 (en) 2008-06-17 2014-04-22 Cisco Technology, Inc. Time-shifted transport of multi-latticed video for resiliency from burst-error effects
US8699578B2 (en) * 2008-06-17 2014-04-15 Cisco Technology, Inc. Methods and systems for processing multi-latticed video streams
US8971402B2 (en) 2008-06-17 2015-03-03 Cisco Technology, Inc. Processing of impaired and incomplete multi-latticed video streams
US8775566B2 (en) * 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
US8904426B2 (en) * 2008-06-30 2014-12-02 Rgb Networks, Inc. Preconditioning ad content for digital program insertion
US8259814B2 (en) * 2008-11-12 2012-09-04 Cisco Technology, Inc. Processing of a video program having plural processed representations of a single video signal for reconstruction and output
US9060187B2 (en) * 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
WO2010096767A1 (en) * 2009-02-20 2010-08-26 Cisco Technology, Inc. Signalling of decodable sub-sequences
US20100218232A1 (en) * 2009-02-25 2010-08-26 Cisco Technology, Inc. Signalling of auxiliary information that assists processing of video according to various formats
US8782261B1 (en) 2009-04-03 2014-07-15 Cisco Technology, Inc. System and method for authorization of segment boundary notifications
US8949883B2 (en) 2009-05-12 2015-02-03 Cisco Technology, Inc. Signalling buffer characteristics for splicing operations of video streams
US8279926B2 (en) * 2009-06-18 2012-10-02 Cisco Technology, Inc. Dynamic streaming with latticed representations of video
US20110096846A1 (en) * 2009-10-26 2011-04-28 Santhana Chari Advertisement insertion for video
US9196305B2 (en) 2011-01-28 2015-11-24 Apple Inc. Smart transitions
EP2560170A1 (en) * 2011-08-15 2013-02-20 Koninklijke Philips Electronics N.V. Variable audiovisual content for patient distraction
KR20140070896A (ko) * 2012-11-29 2014-06-11 삼성전자주식회사 비디오 스트리밍 방법 및 그 전자 장치
US9900629B2 (en) * 2013-03-13 2018-02-20 Apple Inc. Codec techniques for fast switching with intermediate sequence
US9729919B2 (en) * 2013-06-13 2017-08-08 Microsoft Technology Licensing, Llc Remultiplexing bitstreams of encoded video for video playback
TWM487509U (zh) 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
CN109785851B (zh) 2013-09-12 2023-12-01 杜比实验室特许公司 用于各种回放环境的动态范围控制
US9723377B2 (en) * 2014-04-28 2017-08-01 Comcast Cable Communications, Llc Video management
KR20150128151A (ko) * 2014-05-08 2015-11-18 삼성전자주식회사 비디오 스트리밍 방법 및 이를 지원하는 전자 장치
KR102651127B1 (ko) 2016-12-15 2024-03-26 삼성전자주식회사 처리 장치 및 데이터를 처리하는 방법
US10956136B2 (en) * 2018-10-16 2021-03-23 Ebay, Inc. User interface resource file optimization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917830A (en) * 1996-10-18 1999-06-29 General Instrument Corporation Splicing compressed packetized digital video streams
US6104441A (en) * 1998-04-29 2000-08-15 Hewlett Packard Company System for editing compressed image sequences

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
US5859660A (en) * 1996-02-29 1999-01-12 Perkins; Michael G. Non-seamless splicing of audio-video transport streams
US6137834A (en) * 1996-05-29 2000-10-24 Sarnoff Corporation Method and apparatus for splicing compressed information streams
US6038000A (en) * 1997-05-28 2000-03-14 Sarnoff Corporation Information stream syntax for indicating the presence of a splice point
US5982436A (en) * 1997-03-28 1999-11-09 Philips Electronics North America Corp. Method for seamless splicing in a video encoder

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917830A (en) * 1996-10-18 1999-06-29 General Instrument Corporation Splicing compressed packetized digital video streams
US6104441A (en) * 1998-04-29 2000-08-15 Hewlett Packard Company System for editing compressed image sequences

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018088784A1 (en) * 2016-11-09 2018-05-17 Samsung Electronics Co., Ltd. Electronic apparatus and operating method thereof
KR101919014B1 (ko) * 2016-11-09 2018-11-15 삼성전자주식회사 전자 장치 및 그 동작방법
US10560730B2 (en) 2016-11-09 2020-02-11 Samsung Electronics Co., Ltd. Electronic apparatus and operating method thereof

Also Published As

Publication number Publication date
US6909743B1 (en) 2005-06-21
KR20020001828A (ko) 2002-01-09

Similar Documents

Publication Publication Date Title
KR100725631B1 (ko) 전이 스트림 발생 및 처리를 위한 방법
JP4503858B2 (ja) 遷移ストリームの生成/処理方法
US7254175B2 (en) Frame-accurate seamless splicing of information streams
US6912251B1 (en) Frame-accurate seamless splicing of information streams
US8743906B2 (en) Scalable seamless digital video stream splicing
US6907081B2 (en) MPEG encoder control protocol for on-line encoding and MPEG data storage
EP1095521B1 (en) Method and apparatus for splicing
US6806909B1 (en) Seamless splicing of MPEG-2 multimedia data streams
US7068719B2 (en) Splicing of digital video transport streams
US7477692B2 (en) Video encoding for seamless splicing between encoded video streams
US6038000A (en) Information stream syntax for indicating the presence of a splice point
JP3706721B2 (ja) オーディオビジュアル・ファイル内部での検索方法および検索装置
US20060093045A1 (en) Method and apparatus for splicing
US20170048564A1 (en) Digital media splicing system and method
EP3360334B1 (en) Digital media splicing system and method
US9219930B1 (en) Method and system for timing media stream modifications
JPH11177921A (ja) ディジタルデータ編集方法、ディジタルデータ編集装置
WO2000062551A1 (en) Frame-accurate seamless splicing of information streams
US20140226956A1 (en) Method and apparatus for changing the recording of digital content

Legal Events

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

Payment date: 20130509

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140514

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150512

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160513

Year of fee payment: 10