KR101309935B1 - 인코딩된 멀티미디어 데이터 스트림을 스플라이싱하는 방법 - Google Patents

인코딩된 멀티미디어 데이터 스트림을 스플라이싱하는 방법 Download PDF

Info

Publication number
KR101309935B1
KR101309935B1 KR1020107015168A KR20107015168A KR101309935B1 KR 101309935 B1 KR101309935 B1 KR 101309935B1 KR 1020107015168 A KR1020107015168 A KR 1020107015168A KR 20107015168 A KR20107015168 A KR 20107015168A KR 101309935 B1 KR101309935 B1 KR 101309935B1
Authority
KR
South Korea
Prior art keywords
data stream
encoded data
encoded
decoder
splicer
Prior art date
Application number
KR1020107015168A
Other languages
English (en)
Other versions
KR20100092502A (ko
Inventor
킴 엔 매튜스
Original Assignee
알카텔-루센트 유에스에이 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알카텔-루센트 유에스에이 인코포레이티드 filed Critical 알카텔-루센트 유에스에이 인코포레이티드
Publication of KR20100092502A publication Critical patent/KR20100092502A/ko
Application granted granted Critical
Publication of KR101309935B1 publication Critical patent/KR101309935B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream 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/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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/2625Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for delaying content or additional data distribution, e.g. because of an extended sport event
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

본 발명은 인코더와 디코더 간에서 유동되는 데이터 스트림을 스플라이싱하는 방법을 제공한다. 본 방법은 제 1 인코딩 데이터 스트림에 액세스하는 단계를 포함한다. 제 1 인코딩 데이터 스트림은 디코더와 연관된 제 1 버퍼 사이즈에 기반하여 인코더에 의해 인코딩된다. 이 방법은 또한 디코더와 연관된 제 2 버퍼 사이즈에 기반하여 결정된 오프셋만큼 제 1 인코딩 데이터 스트림을 지연시키는 단계를 포함한다. 제 2 버퍼 사이즈는 제 1 버퍼 사이즈보다 크다. 이 방법은 하나 이상의 제 2 인코딩 데이터 스트림을 지연된 제 1 인코딩 데이터 스트림 내로 스플라이싱하는 단계를 더 포함한다.

Description

인코딩된 멀티미디어 데이터 스트림을 스플라이싱하는 방법{METHOD OF SPLICING ENCODED MULTIMEDIA DATA STREAMS}
본 발명은 통신 시스템에 관한 것으로, 특히 통신 시스템에서 멀티미디어 데이터 스트림의 송신에 관한 것이다.
디지털 멀티미디어는 종래의 비디오 및/또는 오디오 데이터의 아날로그 전송에 대한 실행가능한 대안이 되고 있다. 가령, 인터넷 프로토콜 텔레비전(IPTV)과 같은 패킷 기반 기술은 텔레비전, VOD 등의 디지털 멀티미디어 서비스를 제공하는 데 사용될 수 있다. 전형적인 디지털 멀티미디어 브로드캐스트 시스템에서, 이미지들의 시퀀스는 이미지들의 디지털 표현으로 변환된다. 디지털 데이터는 그 후 인코딩되어 텔레비전 또는 컴퓨터와 같은 수신 유닛으로 송신되며, 수신 유닛은 인코딩된 정보를 디코딩을 위한 디코더에 제공하여 궁극적으로 이미지를 표현하기 전에 수 개의 이미지에 대한 수신 정보를 저장하는 버퍼를 포함한다. 디코더 버퍼는 만약 송신기가 수신 유닛에 너무 많은 디지털 데이터를 전송하려고 시도하는 경우에 오버플로우(overflow)하며, 그 결과, 데이터 손실과 화질 저하를 발생시킨다. 이와는 반대로, 디코더 버퍼는 만약 송신기가 수신 유닛에 충분한 디지털 데이터를 전송하지 않으면 언더플로우(underflow)할 수 있다. 언더플로우는 디코더를 중지시킬 수 있으며 하나 이상의 이미지의 반복을 야기할 수 있다. 디코더 버퍼의 오버플로우 및 언더플로우는 사용자 경험을 저하시키므로, 종래의 디지털 멀티미디어 시스템은 각각의 이미지의 인코딩 품질을 변화시켜 디코더 버퍼 레벨을 선택된 범위 내로 유지시키려는 비트 레이트에 영향을 미친다.
서비스 공급자들은 사용자에게 멀티미디어 데이터 스트림과 함께 추가의 정보를 브로드캐스트하기 위해 스플라이싱하기를 원할 수 있다. 가령, 서비스 공급자들은 인코딩된 광고 정보를, 서비스 공급자가 하나 이상의 사용자에게 인코딩된 데이터 스트림으로 브로드캐스팅 또는 멀티캐스팅하는 인코딩된 멀티미디어 컨텐츠 내로 스플라이싱하기를 원할 수 있다. 하나의 스플라이싱 기법(splicing technique)은 멀티미디어 데이터 스트림과 광고 데이터 스트림을 디코딩하는 것이다. 디코딩된 데이터 스트림은 함께 스플라이싱된 후 수신 유닛으로 전송을 위해 재 인코딩될 수 있다. 이러한 방법은 스플라이싱된 데이터 스트림 내의 정보가 단일 인코더에 의해 디코더 버퍼 레벨을 선택된 범위 내로 유지하도록 선택된 비트 레이트로 인코딩된다는 이점을 갖는다. 버퍼 오버플로우 및/또는 언더플로우는 적절한 비트 레이트를 선택함으로써 방지될 수 있다. 그러나, 이러한 방법은 다중 데이터 스트림을 디코딩하기 위해서 추가적인 하드웨어 및/또는 소프트웨어를 필요로 한다. 가령, 스플라이서(splicer)는 각각의 데이터 스트림에 대해 하나의 디코더와, 두 개의 디코딩된 데이터 스트림을 스플라이싱하기 위한 비디오 스위치와, 스플라이싱된 데이터 스트림을 재 인코딩하기 위한 인코더를 포함할 수 있다.
하나의 대안의 방법은 선택된 스플라이스 지점에서 인코딩된 데이터 스트림을 함께 스플라이싱하는 것이다. 이러한 방법이 디코딩된 데이터 스트림을 함께 스플라이싱하는 기법보다 하드웨어 및/또는 소프트웨어를 덜 필요로 하지만, 인코딩된 데이터 스트림을 함께 스플라이싱하게 되면 디코더 버퍼의 언더플로우 및/또는 오버플로우를 초래할 수도 있다. 가령, 인코딩된 데이터 스트림은 디코더 버퍼의 상이한 모델을 사용하여 개별적으로 인코딩될 수 있다. 디코더 버퍼 모델은 전형적으로 디코더들이 멀티미디어 스트림을 디코딩하기 시작할 때 디코더 버퍼 상태를 적절히 조정할 수 있도록 인코더에서 디코더로 주기적으로 전송되는 최초 디코더 버퍼 레벨을 멀티미디어 스트림 내에서 가정한다. 그러나, 실제로는 스플라이스 지점에서의 디코더 버퍼 레벨은 가정된 최초 디코더 버퍼 레벨과는 랜덤하게 그리고 예측불가능하게 상이한데, 그 이유는 전형적으로 제 1 데이터 스트림의 디코딩으로부터 발생하는 디코더 버퍼 레벨을 예측할 수 없기 때문이다.
도 1a 및 도 1b는 두 개의 데이터 스트림이 함께 스플라이싱되는 일 실시예의 시간 함수로서 디코더 버퍼 레벨(100)을 개념적으로 도시한 도면이다. 도시된 실시예에서, 디코더 버퍼 레벨은 상방향으로 증가하며 시간은 왼쪽에서 오른쪽으로 증가한다. 버퍼 언더플로우는 디코더 버퍼 레벨(100)이 최소 버퍼 임계치(105) 아래로 떨어질 때 발생하며, 버퍼 오버플로우는 디코더 버퍼 레벨(100)이 최대 버퍼 임계치(110) 위로 상승할 때 발생한다. 제 1 데이터 스트림과 제 2 데이터 스트림 간의 스플라이스 지점은 라인(115)로 표시된다. 제 1 데이터 스트림에 대한 비트 레이트는, 디코더 버퍼의 제 1 모델과, 버퍼에 정보가 도달하고 이어서 재생되는 상대 레이트(relative rate)에 의해 결정되는 디코더 버퍼의 충만도(fullness)에 기반하여 결정된다. 따라서, 디코더 버퍼는 스플라이스 지점(115) 이전에는 언더플로우하거나 오버플로우하지 않는다.
도 1a에서, 스플라이스 지점(115)은 디코더 버퍼 레벨(100)이 제 2 데이터 스트림을 인코딩하는 데 사용했던 제 2 모델에 의해 가정된 최초 디코더 버퍼 레벨 미만으로 낮아질 때 발생한다. 제 2 데이터 스트림을 인코딩하는 데 사용된 비트 레이트는 제 2 모델 및 디코더 버퍼의 사이즈(또는 충만도)에 기반하여 결정된다. 그러나, 가정된 최초 디코더 버퍼 레벨이 실제의 최초 디코더 버퍼 레벨보다 높기 때문에, 제 2 데이터 스트림을 인코딩하는 데 사용된 인코더 비트 레이트는 너무 낮아서 시점(120, 125, 130)에서 디코더 버퍼의 언더플로우를 발생시킨다.
도 1b에서, 스플라이스 지점(115)은 디코더 버퍼 레벨(100)이 제 2 데이터 스트림을 인코딩하는 데 사용했던 제 2 모델에 의해 가정된 최초 디코더 버퍼 레벨보다 높을 때 발생한다. 따라서, 제 2 데이터 스트림을 인코딩하는데 사용된 인코더 비트 레이트는 너무 높은데, 그 이유는 가정된 최초 디코더 버퍼 레벨이 실제의 최초 디코더 버퍼 레벨보다 높기 때문이다. 상대적으로 높은 인코더 비트 레이트를 채택하게 되면, 너무 많은 정보가 전송되어 시점(135, 140, 145)에서 디코더 버퍼의 오버플로우를 발생시킨다.
도 2는 두 개의 데이터 스트림을 함께 스플라이싱하는 것을 예시하는 타이밍도(200)의 제 1 실시예를 개념적으로 도시한 도면이다. 도 2에서 시간은 왼쪽에서 오른쪽으로 증가한다. 실시예에서, 타이밍도(200)는 인코딩된 디지털 정보의 압축 프레임 패킷(205)과 이 패킷(205) 내의 인코딩된 디지털 정보로부터 형성되어 사용자에게로 제공되는 비압축 프레임(210)을 도시한다. 화살표(215)는 압축 프레임 패킷(205)과 패킷(205)을 사용하여 형성된 비압축 프레임(210) 간의 연관성을 나타낸다. 명료성을 위해, 오직 하나의 패킷, 프레임, 및 화살표만이 참조 부호 205, 210, 215로 제각기 도시된다. 오디오 및/또는 비디오를 사용자에게 제공하는 데 사용되는 멀티미디어 데이터 스트림과 같은 제 1 인코딩 데이터 스트림(220)이 제공되며, 그리고 서비스 공급자가 오디오 및/또는 비디오 제공 동안 사용자에게 디스플레이하기를 원할 수 있는 멀티미디어 광고 컨텐츠와 같은 제 2 인코딩 데이터 스트림(225)과 함께 스플라이싱될 수 있다.
도시된 실시예에서, 스플라이싱된 데이터 스트림(230)은 제 1 인코딩 데이터 스트림(220)과 제 2 인코딩 데이터 스트림(225)을 연관(concatenating)시킴으로써 형성된다. 이러한 연관(concatenation)은 제 1 인코딩 데이터 스트림(220) 내의 최종 패킷의 종점(end)에 의해 정의된 스플라이스 지점(235)에서 발생한다. 제 2 인코딩 데이터 스트림(225)의 인코딩은 스플라이스 지점(235)에서 디코더 버퍼의 상태를 고려하지는 않는다. 결과적으로, 패킷(240)은 후방 지향 화살표(250)로 표시되는 바와 같이, 프레임(245)을 형성하는 데 사용되기에는 너무 늦게 도달한다. 이러한 상태는 디코더 버퍼에서의 언더플로우의 다른 표현이다. 즉, 디코더 버퍼는 패킷(240)의 도달 이전에 모든 컨텐츠를 완전히 재생하여 프레임(245)을 형성하는 데 디코딩 및 사용되는 이용가능 정보가 존재하지 않는다. 따라서, 프레임(245)은 이전 프레임의 복사본일 수 있거나 불완전하게 형성된 프레임일 수 있다.
도 3은 두 개의 데이터 스트림을 함께 스플라이싱하는 것을 도시하는 타이밍도(300)의 제 2 실싱예를 개념적으로 도시한 도면이다. 도 3에서 시간은 왼쪽에서 오른쪽으로 증가한다. 도시된 실시예에서, 타이밍도(300)는 인코딩된 디지털 정보의 패킷(305)과, 패킷(305) 내의 인코딩된 디지털 정보로부터 형성되어 사용자에게로 제공되는 프레임(310)을 도시한다. 화살표 315는 패킷(305)과 이러한 패킷(305)을 사용하여 형성된 프레임(310) 간의 연관성을 나타낸다. 명료성을 위해, 오직 하나의 패킷, 프레임, 및 화살표만이 참조 부호 305, 310, 315로 제각기 도시된다. 오디오 및/또는 비디오를 사용자에게 제공하는 데 사용되는 멀티미디어 데이터 스트림과 같은 제 1 인코딩 데이터 스트림(320)이 제공되며, 그리고 서비스 공급자가 오디오 및/또는 비디오 제공 동안 사용자에게 디스플레이하기를 원할 수 있는 멀티미디어 광고 컨텐츠와 같은 제 2 인코딩 데이터 스트림(325)과 함께 스플라이싱될 수 있다.
도시된 실시예에서, 스플라이싱된 데이터 스트림(330)은 제 1 인코딩 데이터 스트림(320)과 제 2 인코딩 데이터 스트림(325)을 연관(concatenating)시킴으로써 형성된다. 이러한 연관(concatenation)은 제 1 인코딩 데이터 스트림(320) 내의 최종 패킷의 종점(end)에 의해 정의된 스플라이스 지점(335)에서 발생한다. 제 2 인코딩 데이터 스트림(325)의 인코딩은 스플라이스 지점(335)에서 디코더 버퍼의 상태를 고려하지는 않으며 디코더 버퍼의 충만도는 예상된 것보다 크다. 패킷(340)은 연장된 화살표(350)로 표시되는 바와 같이, 프레임(345)을 형성하는 데 사용되기에는 너무 빨리 도달한다. 이러한 상태는 디코더 버퍼에서의 오버플로우의 다른 표현이다. 즉, 디코더 버퍼는 예기치 않게 장시간 동안 패킷(340) 내에 포함된 정보를 저장해야만 한다. 따라서, 이후에 수신되는 패킷은 패킷(340) 내의 정보가 판독되어 디코딩되기 전에 디코더 버퍼를 채울 수 있다. 새롭게 수신되는 정보가 거부되거나 이전에 수신된 정보가 디코더 버퍼로부터 제거되기 때문에 디코더 버퍼 내의 정보는 상실될 수 있다.
본 발명은 전술한 문제점들의 영향을 해결하는 것에 관한 것이다. 아래의 설명은 본 발명의 일부 측면의 기본적인 이해를 제공하기 위해 본 발명의 개요를 제공한다. 이러한 개요는 본 발명의 전체의 개관은 아니다. 본 발명의 핵심 또는 중요한 요소를 식별하거나 본 발명의 영역을 기술할려는 의도도 아니다. 유일한 목적은 후술될 상세한 설명에 대한 서론으로서 본 발명의 일부 개념을 간략화된 형태로 제공하고자 하는 것이다.
본 발명의 일 실시예에서, 인코더와 디코더 간에서 유동되는 데이터 스트림을 합성하는 방법이 제공된다. 이 방법은 제 1 인코딩 데이터 스트림에 액세스하는 단계를 포함한다. 제 1 인코딩 데이터 스트림은 디코더와 연관된 제 1 버퍼 사이즈에 기반하여 인코더에 의해 인코딩된다. 이 방법은 또한 디코더와 연관된 제 2 버퍼 사이즈에 기반하여 결정된 오프셋만큼 제 1 인코딩 데이터 스트림을 지연시키는 단계를 포함한다. 제 2 버퍼 사이즈는 제 1 버퍼 사이즈보다 크다. 이 방법은 하나 이상의 제 2 인코딩 데이터 스트림을 지연된 제 1 인코딩 데이터 스트림 내로 스플라이싱하는 단계를 더 포함한다.
본 발명의 다른 실시예에서, 인코더와 디코더 간에서 유동되는 데이터 스트림을 합성하는 방법이 제공된다. 이 방법은 제 1 송신 레이트로 송신되는 제 1 인코딩 데이터 스트림에 액세스하는 단계와 제 2 송신 레이트로 송신되는 적어도 하나의 제 2 인코딩 데이터 스트림에 액세스하는 단계를 포함한다. 이 방법은 또한 제 1 인코딩 데이터 스트림 내의 갭의 지속 기간에 기반하여 제 2 송신 레이트를 증가시키는 단계와, 제 1 인코딩 데이터 스트림 내의 갭 내로 제 2 인코딩 데이터 스트림을 스플라이싱하는 단계를 포함한다.
본 발명에 의하면, 하드웨어 및/또는 소프트웨어를 덜 필요로 하면서도 디코더 버퍼의 오버플로우 및 언더플로어의 가능성을 감소시키며, 디코더 버퍼에서 상실되는 정보를 감소시키는 효과가 있다.
본 발명은 첨부되는 도면과 연계하여 후술되는 상세한 설명을 참조하여 이해될 수 있으며 유사한 참조 부호는 유사한 요소를 나타낸다.
도 1a 및 도 1b는 두 개의 데이터 스트림이 함께 스플라이싱되는 실시예의 시간 함수로서 디코더 버퍼를 개념적으로 도시하고 있다.
도 2는 두 개의 데이터 스트림을 함께 스플라이싱하는 것을 예시하는 타이밍도의 제 1 실시예를 개념적으로 도시하고 있다.
도 3은 두 개의 데이터 스트림을 함께 스플라이싱하는 것을 예시하는 타이밍도의 제 2 실시예를 개념적으로 도시하고 있다.
도 4는 본 발명에 따른 멀티미디어 통신 시스템의 제 1 실시예를 개념적으로 도시한 도면이다.
도 5a, 5b, 5c 및 5d는 본 발명에 따라 제 2 데이터 스트림을 제 1 데이터 스트림 내로 스플라이싱할 때 사용될 수 있는 타이밍 조정을 나타내는 타이밍도를 개념적으로 도시한 도면이다.
도 6a, 6b, 6c 및 6d는 본 발명에 따라 제 2 데이터 스트림을 제 1 데이터 스트림 내로 스플라이싱할 때 사용될 수 있는 지연을 나타내는 디코더 지연도(decoder delay diagram)를 개념적으로 도시한 도면이다.
도 7은 본 발명에 따라 제 2 데이터 스트림을 제 1 데이터 스트림 내로 스플라이싱할 때 사용될 수 있는 지연을 나타내는 디코더 지연도를 개념적으로 도시한 도면이다.
도 8은 본 발명에 따라 복수의 제 2 데이터 스트림을 제 1 데이터 스트림 내로 스플라이싱할 때 사용될 수 있는 지연을 나타내는 디코더 지연도를 개념적으로 도시한 도면이다.
본 발명이 다양한 변형 형태 및 대체 형태를 가질 수 있지만, 그 특정 실시예가 도면을 통해 도시되며 본 명세서에서 상세히 기술된다. 그러나, 특정 실시예의 설명은 본 발명을 개시된 특정의 형태로 국한하는 것이 아니고 오히려 첨부된 특허청구범위에 의해 정의되는 본 발명의 영역 내의 모든 변형물, 균등들 및 대체물을 포함한다.
본 발명의 예시적인 실시예가 아래에서 기술된다. 명료성을 위해, 실제 구현예의 모든 특징들이 명세서에 기술되지는 않는다. 물론, 임의의 실제 구현예의 개발시에, 구현예마다 달라질 수 있는 시스템 관련 제약과의 호환성 및 비지니스 관련 제약과의 호환성과 같은 개발자의 특정 목적을 달성하기 위해 다양한 구현예의 특정한 결정이 행해져야 한다는 것이 이해될 것이다. 또한, 그러한 개발 노력은 복잡하고 시간 소모적이지만 그럼에도 불구하고 본 개시물의 이점을 갖는 당업자가 책임을 지는 한 과정이 될 것이라는 것을 이해할 것이다.
본 발명은 첨부된 도면을 참조하여 기술된다. 다양한 구조, 시스템 및 장치는 도면에서 설명의 목적으로만 개략적으로 도시하되, 당업자에게 널리 알려진 세부사항을 갖는 본 발명을 모호하게 하지 않도록 개략적으로 도시된다. 그럼에도 불구하고, 첨부된 도면은 본 발명의 예시적인 예를 기술하고 설명하기 위해 포함된다. 본 명세서에 사용되는 단어 및 어구는 당업자가 이해할 수 있는 단어 및 어구와 일관성있는 의미를 갖도록 이해되고 해석되어야 한다. 특정의 정의의 단어 및 어구, 즉 당업자가 이해하는 통상의 의미와는 상이한 정의는 일관성있는 단어 및 어구의 사용을 의미하는 것이 아니다. 특정의 의미를 갖는 단어 및 어구에 대해서는, 즉 당업자가 이해하는 것과는 다른 의미에 대해서는, 그 단어 및 어구의 특정의 정의를 직접적이고 특정적으로 제공하는 정의 방식으로 그 특정의 정의가 명세서에서 명시적으로 설명될 것이다.
도 4는 멀티미디어 통신 시스템(400)의 제 1 실시예를 개념적으로 도시한 도면이다. 도시된 실시예에서, 멀티미디어 통신 시스템은 멀티미디어 컨텐츠를 생성하고 그 생성된 멀티미디어 컨텐츠를 멀티미디어 통신 시스템(400)에 제공하는 데 사용되는 멀티미디어 소스 장치(405)를 포함한다. 멀티미디어 소스 장치(405)는 (도 4에 도시된 바와 같은) 아날로그 또는 디지털 비디오 레코딩 장치일 수 있거나 비디오 및/또는 오디오 입력을 캡쳐하거나 비디오 및/또는 오디오 컨텐츠를 생성하는 데 사용되는 하드웨어, 펌웨어 및/또는 소프트웨어와 같은 멀티미디어 컨텐츠를 생성할 수 있는 임의의 다른 장치있다. 즉, 멀티미디어 소스 장치(405)는 애니메이션 및 관련 오디오를 생성하는 장치일 수 있다. 예시된 실시예에서, 멀티미디어 소스 장치(405)에 의해 생성되는 멀티미디어 컨텐츠는 제 1 컨텐츠로 지칭될 수 있으며 영화, 텔레비전 프로그램, VOD, 및/또는 사용자 또는 가입자가 볼 수 있는 다른 컨텐츠로 구성될 수 있다. 멀티미디어 소스 장치(405)에 의해 생성되는 멀티미디어 컨텐츠의 디지털 표현은 인코더(410)에 제공될 수 있으며, 인코더는 선택된 송신 또는 데이터 레이트에서 네트워크(415)를 통한 최종 송신을 위해 디지털 표현을 인코딩할 수 있다.
하나 이상의 추가적인 멀티미디어 소스 장치(420)는 사용자에게로의 송신을 위해 멀티미디어 컨텐츠를 제공할 수 있다. 가령, 멀티미디어 소스 장치(420)는 멀티미디어 소스 장치(405)에 의해 생성되는 제 1 컨텐츠 내로의 삽입을 위한 멀티미디어 광고 컨텐츠와 같은 제 2 멀티미디어 컨텐츠를 생성 및 제공하는 데 사용될 수 있다. 그러나, 본 개시물의 이점을 갖는 당업자는 본 발명이 광고 컨텐츠를 사용자에 의해 요청되는 영화 내로 스플라이싱하는 것에 국한되지 않는다는 것을 이해해야 한다. 다른 실시예에서, 본 명세서에 기술되는 기법은 임의의 개수의 독립 멀티미디어 데이터 스트림을 삽입, 스플라이싱, 인터레이싱 또는 합성하는 데 사용될 수 있다. 멀티미디어 소스 장치(420)에 의해 생성되는 멀티미디어 컨텐츠의 디지털 표현은 하나 이상의 인코더(425)에 제공될 수 있으며, 이 인코더는 선택된 송신 또는 데이터 레이트에서 네트워크(430)를 통한 최종 송신을 위해 디지털 표현을 인코딩할 수 있다.
멀티미디어 통신 시스템(400)은 인코더(410, 425)에 의해 제공되는 인코딩된 멀티미디어 데이터 스트림을 합성하는 데 사용될 수 있는 스플라이서(435)를 포함한다. 가령, 서비스 공급자는 인코더(410)에 의해 제공되는 제 1 컨텐츠 내에 하나 이상의 스플라이스 지점을 정의할 수 있으며 스플라이서(435)는 인코더(425)에 의해 제공되는 인코딩된 멀티미디어 컨텐츠의 부분을 스플라이스 지점에서 제 1 컨텐츠 내로 삽입할 수 있다. 가령, 제 1 컨텐츠 내에 갭이 형성될 수 있으며 인코더(425)에 의해 제공되는 멀티미디어 컨텐츠의 부분은 갭 내로 스플라이싱될 수 있다. 인코딩된 제 1 컨텐츠 및 인코딩된 제 2 컨텐츠를 포함하는 스플라이싱된 데이터 스트림은 네트워크(445)를 거쳐 디코더(440)에 제공될 수 있다. 디코더(440)는 데이터를 판독하기 전에, 제공된 스플라이싱 데이터 스트림을 디코더 버퍼(450)에 저장할 수 있으며, 이를 사용하여 이미지 데이터를 디스플레이 장치(455)에 제공할 수 있다.
인코더(410, 425)는 가령 멀티미디어 소스 장치(405, 420)로부터 수신되는 데이터 스트림을 인코딩하는 데 사용되는 비트 레이트를 선택하기 위해, 디코더 버퍼(450)의 모델을 사용하여 데이터 스트림을 어떻게 인코딩할 것인지를 결정한다. 가령, 인코더(410, 425)는 가정된 디코더 버퍼(450) 사이즈 및 디코더 버퍼(450)의 충만도의 추정치에 기반하여 데이터 스트림을 인코딩할 수 있다. 디코더 버퍼에 제공되는 데이터 스트림을 모델링 및/또는 인코딩하기 위한 기법은 당해 분야에서 알려져 있으며, 명료성을 위해 본 발명과 관련되는 데이터 스트림을 모델링 및/또는 인코딩하는 측면만 논의될 것이다. 본 발명에 따른 실시예에서, 인코더(410)는 디코더 버퍼(450)의 실제 사이즈와는 상이한 가정된 디코더 버퍼(450) 사이즈에 기반하여 제 1 데이터 스트림을 인코딩할 수 있다. 가령, 인코더(410)는 디코더 버퍼(450)의 사이즈가 디코더 버퍼(450)의 실제 사이즈의 1/3이라고 전제하여 구성될 수 있다. 디코더 버퍼(450)의 감소된 사이즈가 멀티미디어 통신 시스템(400)에 자유를 제공하여 인코딩된 데이터 스트림의 타이밍을 저정할 수 있다고 가정한다.
도시된 실시예에서, 스플라이서(435)는 제 1 데이터 스트림과 제 2 데이터 스트림을 스위칭하는 데 사용되는 스위치(470)에 연결된 합성 요소(460)를 포함한다. 스플라이서(435)는 또한 인코더(410)로부터 수신되는 제 1 데이터 스트림의 타이밍을 조정하는 데 사용되는 재 타이밍 요소(475)를 포함한다. 일 실시예에서, 재 타이밍 요소(475)는 디코더 버퍼(450)의 가정 사이즈 및/또는 실제 사이즈에 기반하여 선택될 수 있는 오프셋만큼 제 1 인코딩 데이터 스트림을 지연시키는 데 사용된다. 가령, 재 타이밍 요소(475)는 제 1 인코딩된 데이트 스트림 내의 지연의 범위가 디코더 버퍼(450)의 실제 사이즈에 의해 지원되는 지연의 범위의 중간 주변에 분포되도록 제 1 인코딩된 데이터 스트림을 지연시킬 수 있다. 재 타이밍 요소(475)가 도시된 실시예의 스플라이서(435) 내에 도시되지만, 본 개시물의 이점을 갖는 당업자는 본 발명이 이 위치에 재 타이밍 요소(475)를 구현하는 것으로 국한되지 않는다는 것을 이해해야 한다. 다른 실시예에서, 재 타이밍 요소(475)는 인코더(410), 네트워크(415)와 같은 다른 위치에 구현되거나 데이터 스트림의 경로를 따라 독립 요소로서 구현될 수도 있다.
제 1 인코딩된 데이터 스트림의 타이밍을 조정하게 되면 제 2 데이터 스트림이 제 1 데이터 스트림 내로 스플라이싱될 때 디코더 버퍼(450)의 언더플로우 및/또는 오버플로우의 가능성을 감소시킬 수 있다. 제 2 데이터 스트림은 또한 디코더 버퍼(450)의 언더플로우 및/또는 오버플로우의 가능성을 감소시키도록 변형될 수 있다. 도시된 실시예에서, 스플라이서(435)는 네트워크(430)에 의해 제공되는 데이터 스트림의 전송 또는 데이터 레이트를 수정하는 데 사용될 수 있는 송신 레이트 요소(480)를 포함한다. 가령, 송신 레이트는 네트워크(415)에 의해 제공되는 데이터 스트림 내의 하나 이상의 갭에 의해 결정되는 양만큼 증가될 수 있으며, 그 결과 제 2 데이터 스트림은 갭 내로 스플라이싱될 수 있다. 일 실시예에서, 인코더(425)는 제 1 데이터 스트림을 인코딩하는 데 사용되는 비트 레이트보다 낮은 비트 레이트로 제 2 데이터 스트림을 인코딩할 수 있다. 새로운 인코딩 레이트는 송신 레이트 요소(480)에 의해 도입되는 송신 레이트에서의 변경을 보상하는 데 사용될 수 있다. 제 2 데이터 스트림에 대한 타이밍 기준은 제 2 데이터 스트림이 제 1 데이터 스트림 내로 스플라이싱되도록 조정될 수 있다. 송신 레이트, 비트 레이트 및/또는 제 2 인코딩된 데이터 스트림의 타이밍 기준을 조정하게 되면, 제 2 데이터 스트림이 종료하고 스플라이서(435)가 제 1 데이터 스트림으로 다시 스위칭될 때, 디코더 버퍼(450)의 언더플로우 및/또는 오버플로우의 가능성을 감소시킬 수 있다.
도 5a, 5b, 5c 및 5d는 제 2 데이터 스트림을 제 1 데이터 스트림 내로 스플라이싱할 때 사용될 수 있는 타이밍 조정을 나타내는 타이밍도(500, 505, 510, 515)를 개념적으로 도시한 도면이다. 도 5a 내지 도 5d에서 시간은 왼쪽에서 오른쪽으로 증가한다. 도시된 실시예에서, 타이밍도(500, 505, 510, 515)는 인코딩된 디지털 정보의 패킷(520)과 패킷(520) 내의 인코딩된 디지털 정보로부터 형성되어 사용자에게로 제공되는 프레임(525)을 도시하고 있다. 화살표 530은 패킷(520)과 패킷(520)을 사용하여 형성된 프레임(525) 간의 연관성을 나타낸다. 명료성을 위해, 각각의 도면에서 오직 하나의 패킷, 프레임, 화살표만이 참조 부호 520, 525, 530으로 제각기 표시된다.
도 5a는 제 1 인코딩 데이터 스트림(535) 및 제 2 인코딩 데이터 스트림(540)의 단순 스플라이싱을 예시하는 타이밍도(500)를 개념적으로 도시한 도면이다. 가령, 제 1 인코딩 데이터 스트림은 오디오 및/또는 비디오를 사용자에게 제공하는 데 사용되는 멀티미디어 데이터 스트림일 수 있으며 제 2 인코딩 데이터 스트림(540)은 서비스 공급자가 오디오 및/또는 비디오 제공 동안 사용자에게 디스플레이하기를 원할 수 있는 멀티미디어 광고 컨텐츠를 포함할 수 있다. 예시된 실시예에서, 제 1 인코딩 데이터 스트림(535) 및 제 2 인코딩 데이터 스트림(540)은 데이터 스트림을 인코딩하는 데 사용되는 상이한 모델로 인해, 영역(545)에서 적어도 부분적으로 중첩한다. 도 5a가 제 1 데이터 스트림(535)의 종점 이전에 시점으로서 제 2 데이터 스트림(540)을 도시하지만, 본 개시물의 이점을 갖는 당업자는 실제의 중첩이 랜덤할 수 있으며/있거나 예측불가능하다는 것을 이해해야 한다. 본 발명에 따른 실시예에서, 제 1 인코딩 데이터 스트림(535)은 선택된 간격만큼 지연되어 제 2 인코딩 데이터 스트림(540)과의 중첩을 감소시킬 수 있으며 버퍼 오버플로우 및/또는 언더플로우가 스플라이스 지점에서 발생할 가능성을 감소시킬 수 있다.
도 5b는 지연된 제 1 인코딩 데이터 스트림(550)과 제 2 인코딩 데이터 스트림(540)의 스플라이싱을 예시하는 타이밍도(505)를 개념적으로 도시한 도면이다. 예시된 실시예에서, 지연된 제 1 인코딩 데이터 스트림(550)은 선택된 간격만큼 지연되어, 스플라이스 지점에서의 중첩을 감소시킬 수 있다. 일부의 경우, 제 1 인코딩 데이터 스트림(550) 내로 도입된 지연은 제 2 인코딩 데이터 스트림(540)이 제 1 지연된 인코딩 데이터 스트림(545)이 재개하는 시간 부근에서 영역(555) 내의 제 1 인코딩 데이터 스트림(550)과 중첩할 가능성을 증가시킬 수 있다. 이러한 중첩은 지연된 제 1 인코딩 데이터 스트림(545)가 인코더로부터 디코더로 송신을 재개할 때 디코더 버퍼의 오버플로우 및/또는 언더플로우를 발생시킬 수 있다. 따라서, 제 2 인코딩 데이터 스트림(540)에 대한 인코딩 비트 스트림은 감소될 수 있다. 가령, 제 2 인코딩 데이터 스트림(540)에 대한 인코딩 레이트는 다음, 즉
Figure 112010044305742-pct00001
의 표현에 따라 제 1 인코딩 데이터 스트림(540)용으로 사용된 인코딩 레이트(본 명세서에서 네트워크 레이트로 지칭되기도 함)와 관련하여 감소될 수도 있다.
이 표현에서, N은 디코더 지연을 위해 인코더에 의해 가정된 초(second)의 개수이며 D는 스플라이싱된 멀티미디어 컨텐츠의 지속 기간이다. 일 실시예에서, 제 2 인코딩 데이터 스트림(540)용으로 사용된 인코더 레이트는 대략 네트워크 레이트의 90%이다.
도 5c는 보다 낮은 인코딩 레이트로 인코딩된, 지연된 제 1 인코딩 데이터 스트림(550) 및 제 2 인코딩 데이터 레이트(560)의 스플라이싱을 예시하는 타이밍도(510)를 개념적으로 도시한 도면이다. 제 2 인코딩 데이터 스트림(560)을 보다 낮은 레이트로 인코딩하게 되면, 제 2 인코딩 데이터 스트림(560) 내의 개개의 압축 프레임의 사이즈를 감소시킬 수 있으며, 이는 패킷들 간의 타이밍 캡을 도입할 수도 있다. 그러나, 이들 패킷들의 일부의 부분들은 제 1 지연된 인코딩 데이터 스트림(545)가 재개하는 시간 부근에서 영역(555) 내의 제 1 인코딩 데이터 스트림(550)과 여전히 중첩할 수도 있다. 이러한 중첩은 제 1 지연된 인코딩 데이터 스트림(545)이 인코더에서 디코더로 송신을 재개할 때 디코더 버퍼의 오버플로우 및/또는 언더플로우를 발생시킬 수 있다. 따라서, 제 2 인코딩 데이터 스트림(560)은 보다 고속의 레이트로 송신함으로써 제 1 지연된 인코딩 데이터 스트림(545) 내의 갭에 적합하도록 조정될 수 있다. 일 실시예에서, 제 2 데이터 스트림 내에 내장된 타이밍 기준은 또한 송신 레이트 및/또는 인코딩 레이트에 대한 변경에 기반하여 변경될 수도 있다. 가령, 제 2 인코딩 데이터 스트림(560) 내의 압축 데이터를 송신하는 데 사용되는 프로그램 클럭 기준은 가령 제 2 인코딩 데이터 스트림(560) 내의 패킷들 간의 시간을 감소시키도록 변경될 수 있다. 송신 레이트, 인코딩 레이트 및/또는 타이밍 기준의 조정 또는 변경은 가령 시스템 내의 조건 변경을 나타내는 피드백에 기반하여 정적으로 또는 동적으로 수행될 수 있다.
도 5d는 보다 낮은 인코딩 레이트로 인코딩된, 지연된 제 1 인코딩 데이터 스트림(550) 및 제 2 인코딩 데이터 스트림(560)을 변경된 타이밍 기준 및 보다 고속의 송신 레이트를 사용하여 스플라이싱하는 것을 예시하는 타이밍도(515)를 개념적으로 도시한 도면이다. 예시된 실시예에서, 제 2 인코딩 데이터 스트림(565)에 대한 변경은 제 2 인코딩 데이터 스트림이 지연된 제 1 인코딩 데이터 스트림(550) 내의 갭과 완전히 적합하게 된다는 것을 보장한다. 결과적으로, 지연된 제 1 인코딩 데이터 스트림(550)과 제 2 인코딩 데이터 스트림(565)는 스플라이스 지점이나 지연된 제 1 인코딩 데이터 스트림(550)이 송신을 재개하는 시점에서 중첩하지 않는다. 그 결과, 디코더 버퍼의 언더플로우 및/또는 오버플로우의 가능성은 제 1 인코딩 데이터 스트림(550)을 지연시키고/시키거나 제 2 인코딩 데이터 스트림(565)에 대한 보다 낮은 인코딩 레이트 및 상이한 타이밍 기준을 사용함으로써 감소되거나 제거될 수 있다.
도 6a, 6b, 6c 및 6d는 제 2 데이터 스트림을 제 1 데이터 스트림 내로 스플라이싱할 때 사용될 수 있는 지연을 나타내는 디코더 지연도(600, 605, 610, 615)를 개념적으로 도시한 도면이다. 디코더 지연도(600, 605, 610, 615)에서, 시간은 왼쪽에서 오른쪽으로 증가하며 그 시점에서 송신과 관련된 지연은 도면의 하부에서 상부로 증가한다. 도면의 해칭된 영역은 관련된 디코더 내의 실제 버퍼의 사이즈에 의해 지원되는 지연을 나타내며, 이 경우에 3N 초로 설정된다. N의 값은 설계 변경의 문제이다. 그러나, 사용될 수 있는 하나의 전형적인 값은 N=1이며, 이에 따라 실제 디코더 버퍼에 의해 지원되는 지연은 3초가 된다. 당업자는 버퍼의 사이즈가 버퍼에 의해 지원될 수 있는 관련된 지연을 결정한다는 것을 이해해야 한다. 버퍼의 사이즈를 증가하게 되면 버퍼에 의해 지원되는 지연의 사이즈는 증가할 것이며 버퍼의 사이즈를 감소시키면 버퍼에 의해 지원되는 지연의 사이즈는 감소될 것이다.
도 6a는 인코더에 의해 사용되는 지연(620)을 시간의 함수로서 도시한 디코더 지연도(600)이다. 지연(620)은 제 1 데이터 스트림을 인코딩하기 위해 인코더에 의해 사용되는 비트 레이트에 대응하며, 이는 디코더 버퍼의 가정된 사이즈에 기반하여 조정된다. 예시된 실시예에서, 디코더 버퍼는 최대 N 초의 지연을 지원하는 사이즈를 갖도록 가정되며, 따라서 인코딩된 제 1 데이터 스트림과 관련된 지연(620)은 N 초 미만으로 유지된다. 전술한 바와 같이, 제 2 데이터 스트림을 제 1 데이터 스트림으로 스플라이싱함으로써 발생한 디코더 버퍼의 언더플로우 및/또는 오버플로우의 가능성은 제 1 데이터 스트림을 지연시킴으로써 감소되거나 제거될 수 있다.
도 6b는 제 1 데이터 스트림이 추가적인 N 초만큼 지연된 후, 인코딩된 제 1 데이터 스트림 지연(625)을 나타내는 디코더 지연도(605)를 도시한다. 추가적인 지연을 구현하게 되면 제 1 데이터 스트림과 관련된 지연(625)의 범위의 중간이 대략 버퍼의 실제 사이즈에 의해 지원되는 지연의 범위(이 경우 3N 초임)의 중간에 대응하도록 제 1 데이터 스트림과 관련된 지연(625)을 시프트하게 된다. 버퍼 점유도는 지연이 증가할 때 증가하는데, 그 이유는 수신된 장보는 지연 증가를 적응하기 위해 장시간 동안 저장되기 때문이다.
도 6c는 제 1 인코딩 데이터 스트림 내로 스플라이싱될 제 2 인코딩 데이터 스트림의 지연(630)을 도시한 디코더 지연도(610)를 도시한 도면이다. 제 2 데이터 스트림에 대한 인코더는 디코더 버퍼의 실제 사이즈를 사용하여 제 2 데이터 스트림을 인코딩하는 데 사용되는 지연 및/또는 대응 비트 레이트를 결정한다. 제 1 데이터 스트림 내로 스플라이싱될 제 2 데이터 스트림의 지속 기간은 D초이며, 여기서 D는 제 1 데이터 스트림 내로 스플라이싱될 것으로 예상되는 정보에 기반하여 선택될 수 있는 값이다. 가령, 제 1 데이터 스트림에 30 초 길이의 상용 제품이 삽입될 수 있으며, 여기서 D=30이다. 예시된 실시예에서, 제 2 데이터 스트림의 송신 레이트는 증가하며, 이는 스플라이싱된 제 2 데이터 스트림에 할당되는 갭의 지속기간 동안 버퍼 점유도를 증가시킨다. 따라서, 송신 레이트에 대한 선택된 변경은 버퍼 사이즈를 고려할 수도 있다. 일 실시예에서, 제 2 데이터 스트림은 네트워크 레이트보다 약간 작은 인코딩 레이트로 인코딩될 수 있다. 제 2 인코딩 데이터 스트림의 타이밍은 제 2 인코딩 데이터 스트림용으로 사용되는 타이밍 기준 및/또는 송신 레이트를 조정함으로써 조정될 수 있다.
도 6d는 제 1 인코딩 데이터 스트림과 스플라이싱된 제 2 인코딩 데이터 스트림을 포함하는 데이터 스트림의 지연(635)를 도시한 디코더 지연도(615)를 도시한 도면이다. 예시된 실시예에서, 제 1 인코딩 데이터 스트림과 일부의 경우의 제 2 인코딩 데이터 스트림의 타이밍 변경은 디코더 버퍼의 언더플로우 및/또는 오버플로우를 발생시키지 않고 제 1 인코딩 데이터 스트림 내로 제 2 인코딩 데이터 스트림이 스플라이싱될 수 있도록 한다.
도 7은 제 2 데이터 스트림을 제 1 데이터 스트림 내로 스플라이싱할 때 사용될 수 있는 지연(705)을 나타내는 디코더 지연도(700)를 개념적으로 도시한 도면이다. 예시된 실시예에서, 디코더 버퍼는 2*N 초까지의 지연을 지원하며 제 1 데이터 스트림과 관련된 지연은 스플라이스 지점에 도달할 때까지 0 내지 N초 사이에서 설정된다. 가령, 제 1 데이터 스트림과 관련된 지연은 스플라이스 지점 이전의 간격(720)까지 0 내지 N초의 범위로 유지될 수 있다. 일 실시예에서, 간격(720)의 지속 기간은 지연, 채널 변경 회수 등을 고려하여 선택될 수 있다.
간격(720) 동안, 제 1 인코딩 데이터 스트림과 관련된 지연(705)은 간격(720)의 종점에서 제 1 인코딩 데이터 스트림과 관련된 지연(705)의 범위가 디코더 버퍼에 의해 지원되는 지연의 상부 절반에 대응하도록 1*N-2*N의 근사 범위 내로 증가할 수 있다. 인코딩된 제 2 데이터 스트림과 관련된 지연(710)은 보다 낮은 인코딩 레이트에서의 제 2 데이터 스트림의 인코딩과, 송신 레이트, 타이밍 기준 및 인코딩 레이트의 조정과 같은 기법을 사용하여 조정될 수 있다. 제 2 인코딩 데이터 스트림은 제 1 인코딩 데이터 스트림 내로 스플라이싱될 수 있다. 일단 제 2 인코딩 데이터 스트림이 송신을 완료하면, 제 1 인코딩 데이터 스트림의 송신이 재개될 수 있다. 예시된 실시예에서, 스플라이싱된 제 2 인코딩 데이터 스트림에 후속하는 제 1 데이터 스트림과 관련된 지연(715)은 0 내지 N 초 사이에서 설정된다.
도 8은 다수의 제 2 데이터 스트림을 제 1 데이터 스트림 내로 스플라이싱할 때 사용될 수 있는 지연(805, 810, 815, 820)을 나타내는 디코더 지연도를 개념적으로 도시한 도면이다. 도시된 실시예에서, 제 1 데이터 스트림과 관련된 지연(805)은 스플라이스 지점 이전의 간격(825)에까지 0 내지 N 초 사이에서 설정된다. 간격(825) 동안, 제 1 인코딩 데이터 스트림과 관련된 지연(805)은 1*N-2*N의 범위로 증가할 수 있다. 제 2 데이터 스트림은 제 1 데이터 스트림 내로 스플라이싱될 수 있으며 제 2 데이터 스트림은 지연(810, 815)을 사용하여 인코딩될 수 있다. 제 2 데이터 스트림의 송신 후에, 제 1 인코딩 데이터 스트림의 송신이 재개될 수 있다. 예시된 실시예에서, 제 1 데이터 스트림과 관련된 지연(820)은 스플라이싱된 제 2 인코딩 데이터 스트림에 후속하여 0 내지 N 초 사이에서 설정된다.
본 발명의 부분 및 대응하는 상세한 설명은 소프트웨어 또는 알고리즘과 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 심볼 표현의 관점에서 제공된다. 이러한 설명 및 표현을 통해 당업자는 본 발명을 다른 당업자에게 효과적으로 전달한다. 본 명세서에 사용되는 알고리즘은 전반적으로 원하는 결과를 초래하는 일관성있는 단계들의 시퀀스로 간주된다. 단계들은 물리적 양에 대한 물리적 조작을 필요로 한다. 통상, 필요한 것은 아니지만, 이러한 양들은 저장되고, 전달되고, 합성되고, 비교되고, 조작될 수 있는 광, 전기, 또는 자기 신호의 형태를 취한다. 때로는, 이러한 신호들을 비트, 값, 요소, 심볼, 문자, 용어, 개수 등으로서 지칭하는 것이 편리한 것으로 입증되었다.
그러나, 명심할 것은 이러한 용어들 및 유사한 용어들은 적합한 물리적 양과 관련되며 단지 이들 양에 적용되는 편리한 레이블에 지나지 않는다는 것이다. 달리 특정하게 지정되지 않거나 본 개시물로부터 명백함에 따라, "처리" , "컴퓨팅", "계산", "결정" 또는 "디스플레이" 등과 같은 용어들은 컴퓨터 시스템의 레지스터 및 메모리 내의 물리적 전자 양으로서 표현되는 데이터를 조작하여 컴퓨터 시스템의 메모리 또는 레지스터 또는 다른 정보 저장, 송신 또는 디스플레이 장치 내로의 물리적 양으로서 유사하게 표현되는 다른 데이터로 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 동작 및 프로세스를 지칭한다.
주목할 것은 소프트웨어로 구현되는 본 발명은 전형적으로 일부 형태의 프로그램 저장 매체 상에서 인코딩되거나 일부 타입의 전송 매체를 통해 구현된다는 것이다. 프로그램 저장 매체는 자기 매체(가령, 플로피 디스크 또는 하드 디스크) 또는 광 매체(가령, CDROM)일 수 있으며 ROM 또는 RAM일 수 있다. 유사하게, 송신 매체는 트위스트형 와이어 쌍, 동축 케이블, 광 파이버, 또는 유사한 주지의 송신 매체일 수 있다. 본 발명은 임의의 제공된 구현예에만 국한되지 않는다. 위에서 개시된 특정의 실시예는 예시용일 뿐이며, 상이하지만 당업자에게 명백한 등가의 방식으로 변경 및 구현될 수 있다. 또한, 첨부된 특허청구범위에 기술된 것을 제외하고는 구조의 세부사항, 도시된 디자인 등에 대한 제한은 없다. 따라서, 위에서 개시된 특정의 실시예들은 본 발명의 영역 내에서 변경 또는 수정될 수 있으며 다른 변형물이 고려된다는 것이 명백하다. 따라서, 보호 범위는 아래의 특허청구범위에 기술된다.
400: 멀티미디어 통신 시스템 410: 인코더
435: 스플라이서 450: 디코더 버퍼

Claims (16)

  1. 인코더와 디코더 간에서 흐르는 데이터 스트림을 합성하는 방법으로서,
    상기 디코더와 연관된 제 1 버퍼 사이즈에 기반하여 상기 인코더에 의해 제 1 인코딩 레이트로 인코딩된 제 1 인코딩 데이터 스트림에 액세스하는 단계와,
    상기 디코더와 연관된 제 2 버퍼 사이즈에 기반하여 결정된 오프셋만큼 상기 제 1 인코딩 데이터 스트림을 지연시키는 단계와,
    적어도 하나의 제 2 인코딩 데이터 스트림을 형성하기 위해 적어도 하나의 제 2 데이터 스트림을 제 2 인코딩 레이트로 인코딩하는 단계 - 상기 제 2 인코딩 레이트는 상기 제 1 인코딩 레이트보다 작고, 따라서, 상기 제 2 인코딩 데이터 스트림 내의 패킷들 사이에 타이밍 갭이 생성됨 - 와,
    상기 적어도 하나의 제 2 인코딩 데이터 스트림을 상기 지연된 제 1 인코딩 데이터 스트림 내의 갭으로 스플라이싱하는 단계를 포함하는
    데이터 스트림 합성 방법.
  2. 제 1 항에 있어서,
    상기 제 1 인코딩 데이터 스트림에 액세스하는 단계는,
    상기 제 1 인코딩 데이터 스트림을 수신하는 상기 디코더 내의 버퍼의 가정된 사이즈에 기반하여 인코딩되고 제 1 송신 레이트로 송신되는 제 1 인코딩 데이터 스트림에 액세스하는 단계를 포함하는
    데이터 스트림 합성 방법.
  3. 삭제
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 스플라이싱된 제 2 인코딩 데이터 스트림 및 상기 제 1 인코딩 데이터 스트림을 포함하는 데이터 스트림을 상기 디코더로 송신하는 단계를 포함하는
    데이터 스트림 합성 방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 적어도 하나의 제 2 인코딩 데이터 스트림의 패킷들 사이의 상기 타이밍 갭을 감소시키기 위해 상기 적어도 하나의 제 2 인코딩 데이터 스트림에 의해 사용되는 타이밍 기준을 변경하는 단계를 포함하는
    데이터 스트림 합성 방법.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 인코딩 레이트는 상기 적어도 하나의 제 2 인코딩 데이터 스트림의 증가된 제 2 송신 레이트에 기반하여 선택되는
    데이터 스트림 합성 방법.
  7. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 버퍼 사이즈는 상기 제 1 버퍼 사이즈보다 큰
    데이터 스트림 합성 방법.
  8. 삭제
  9. 삭제
  10. 인코더로부터 입력 인코딩 데이터 스트림을 수신하고 디코더에 적어도 하나의 출력 인코딩 데이터 스트림을 제공하도록 구성된 스플라이서로서,
    상기 스플라이서는,
    제 1 인코딩 데이터 스트림을 수신하는 상기 디코더 내의 버퍼의 가정된 제 1 사이즈에 기반하여 인코딩되고 제 1 송신 레이트로 송신되는 제 1 인코딩 데이터 스트림에 액세스하도록 구성되고,
    상기 디코더와 연관된 제 2 버퍼 사이즈에 기반하여 결정된 오프셋만큼 상기 제 1 인코딩 데이터 스트림을 지연하도록 구성되고,
    적어도 하나의 제 2 인코딩 데이터 스트림을 형성하기 위해 적어도 하나의 제 2 데이터 스트림을 제 2 데이터 레이트를 사용하여 인코딩하도록 구성 - 상기 제 2 데이터 레이트는 상기 제 1 인코딩 데이터 스트림의 제 1 데이터 레이트보다 작고, 따라서, 상기 적어도 하나의 제 2 인코딩 데이터 스트림의 패킷들 사이에 타이밍 갭이 생성됨 - 되고,
    상기 제 1 인코딩 데이터 스트림 내의 갭 내로 상기 적어도 하나의 제 2 인코딩 데이터 스트림을 스플라이싱하여 상기 적어도 하나의 출력 인코딩 데이터 스트림을 형성하도록 구성되는
    스플라이서.
  11. 제 1 항 또는 제 2 항에 있어서,
    상기 제 1 인코딩 데이터 스트림 내의 갭의 지속 기간과 상기 적어도 하나의 제 2 인코딩 데이터 스트림의 지속 기간에 기반하여 상기 적어도 하나의 제 2 인코딩 데이터 스트림의 제 2 송신 레이트를 증가시키는 단계를 포함하는
    데이터 스트림 합성 방법.
  12. 제 10 항에 있어서,
    상기 제 2 데이터 레이트는 상기 적어도 하나의 제 2 인코딩 데이터 스트림의 증가된 제 2 송신 레이트에 기반하여 선택되는
    스플라이서.
  13. 제 10 항 또는 제 12 항에 있어서,
    상기 제 2 버퍼 사이즈는 상기 제 1 버퍼 사이즈보다 큰
    스플라이서.
  14. 제 10 항 또는 제 12 항에 있어서,
    상기 스플라이서는 상기 제 1 인코딩 데이터 스트림 및 상기 스플라이싱된 제 2 인코딩 데이터 스트림을 포함한 데이터 스트림을 상기 디코더로 송신하도록 구성된
    스플라이서.
  15. 제 10 항 또는 제 12 항에 있어서,
    상기 스플라이서는,
    상기 적어도 하나의 제 2 인코딩 데이터 스트림의 패킷들 간의 타이밍 갭을 감소시키기 위해 상기 적어도 하나의 제 2 인코딩 데이터 스트림에 의해 사용되는 타이밍 기준을 변경하도록 구성되는
    스플라이서.
  16. 제 10 항 또는 제 12 항에 있어서,
    상기 스플라이서는 상기 제 1 인코딩 데이터 스트림 내의 갭의 지속 기간과 상기 적어도 하나의 제 2 인코딩 데이터 스트림의 지속 기간에 기반하여 상기 적어도 하나의 제 2 인코딩 데이터 스트림의 제 2 송신 레이트를 증가시키도록 구성되는
    스플라이서.
KR1020107015168A 2008-01-10 2009-01-05 인코딩된 멀티미디어 데이터 스트림을 스플라이싱하는 방법 KR101309935B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/972,188 US8411569B2 (en) 2008-01-10 2008-01-10 Method of splicing encoded multimedia data streams
US11/972,188 2008-01-10
PCT/US2009/030082 WO2009089135A2 (en) 2008-01-10 2009-01-05 Method of splicing encoded multimedia data streams

Publications (2)

Publication Number Publication Date
KR20100092502A KR20100092502A (ko) 2010-08-20
KR101309935B1 true KR101309935B1 (ko) 2013-09-17

Family

ID=40651327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107015168A KR101309935B1 (ko) 2008-01-10 2009-01-05 인코딩된 멀티미디어 데이터 스트림을 스플라이싱하는 방법

Country Status (6)

Country Link
US (1) US8411569B2 (ko)
EP (1) EP2241109A2 (ko)
JP (1) JP5198581B2 (ko)
KR (1) KR101309935B1 (ko)
CN (1) CN101911698B (ko)
WO (1) WO2009089135A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8613013B2 (en) * 2008-06-12 2013-12-17 Cisco Technology, Inc. Ad splicing using re-quantization variants
US8046623B2 (en) * 2009-01-12 2011-10-25 Mediatek Inc. Timing recovery apparatus and method thereof
FR2960320B1 (fr) * 2010-05-21 2012-05-04 Canon Kk Procede de gestion d'une transmission de donnees depuis un dispositif emetteur, produit programme d'ordinateur, moyen de stockage et dispositif emetteur correspondants
WO2013106390A1 (en) 2012-01-09 2013-07-18 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
KR101917174B1 (ko) * 2012-02-24 2018-11-09 삼성전자주식회사 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
WO2014145921A1 (en) 2013-03-15 2014-09-18 Activevideo Networks, Inc. A multiple-mode system and method for providing user selectable video content
WO2014197879A1 (en) 2013-06-06 2014-12-11 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US9437236B2 (en) * 2013-11-04 2016-09-06 Michael Hugh Harrington Encoding data
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN104536700B (zh) * 2014-12-22 2017-07-07 深圳市博瑞得科技有限公司 一种码流数据的快速存储/读取方法及系统
US9524249B2 (en) * 2014-12-23 2016-12-20 Intel Corporation Memory encryption engine integration
US10523985B2 (en) * 2014-12-24 2019-12-31 Activevideo Networks, Inc. Managing deep and shallow buffers in a thin-client device of a digital media distribution network
KR102672112B1 (ko) * 2022-04-04 2024-06-04 텔레리안주식회사 네트워크 본딩 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010013390A (ko) * 1998-04-04 2001-02-26 뷰그래픽스, 인코포레이티드 디지털 비디오 스트림의 접속방법 및 장치
KR20040106403A (ko) * 2002-04-26 2004-12-17 소니 가부시끼 가이샤 부호화 장치 및 방법, 복호 장치 및 방법, 편집 장치 및방법, 기록 매체, 및 프로그램
WO2007111740A2 (en) * 2005-12-16 2007-10-04 Tut Systems, Inc. Video encoding for seamless splicing between encoded video streams

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2369518B (en) * 1997-07-18 2002-07-17 British Broadcasting Corp Switching compressed video bitstreams
US6049569A (en) * 1997-12-09 2000-04-11 Philips Electronics N.A. Corporation Method and apparatus for encoding digital video bit streams with seamless splice points and method and apparatus for splicing such digital video bit streams
US7139241B1 (en) 1998-09-14 2006-11-21 Optibase Ltd. Method for preventing buffer underflow during digital transport stream transmission, multiplexing and splicing
ATE439741T1 (de) * 1999-10-20 2009-08-15 Samsung Electronics Co Ltd Verfahren und vorrichtung zum einfügen digitaler medienanzeigen in statistische gemultiplexte ströme
FI109393B (fi) * 2000-07-14 2002-07-15 Nokia Corp Menetelmä mediavirran enkoodaamiseksi skaalautuvasti, skaalautuva enkooderi ja päätelaite
US7188354B2 (en) * 2000-07-25 2007-03-06 Leitch Incorporated Splicing compressed, local video segments into fixed time slots in a network feed
JP2002077251A (ja) * 2000-08-28 2002-03-15 Nec Corp データ伝送システム、データ中継装置、およびデータ中継方法
KR100385331B1 (ko) * 2000-12-19 2003-05-27 주식회사 코스모탄 변속재생 시에도 음색변화를 유발하지 않도록 하는오디오신호 재생방법과 이를 위한 재생장치
AU2003215292A1 (en) 2002-02-15 2004-03-11 Visible World, Inc. System and method for seamless switching through buffering
US7606928B2 (en) * 2003-03-21 2009-10-20 Nokia Corporation Method and device for controlling receiver buffer fullness level in multimedia streaming
US7430222B2 (en) * 2004-02-27 2008-09-30 Microsoft Corporation Media stream splicer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010013390A (ko) * 1998-04-04 2001-02-26 뷰그래픽스, 인코포레이티드 디지털 비디오 스트림의 접속방법 및 장치
KR20040106403A (ko) * 2002-04-26 2004-12-17 소니 가부시끼 가이샤 부호화 장치 및 방법, 복호 장치 및 방법, 편집 장치 및방법, 기록 매체, 및 프로그램
WO2007111740A2 (en) * 2005-12-16 2007-10-04 Tut Systems, Inc. Video encoding for seamless splicing between encoded video streams

Also Published As

Publication number Publication date
CN101911698A (zh) 2010-12-08
US20090183197A1 (en) 2009-07-16
CN101911698B (zh) 2014-05-07
JP5198581B2 (ja) 2013-05-15
KR20100092502A (ko) 2010-08-20
WO2009089135A2 (en) 2009-07-16
WO2009089135A4 (en) 2010-02-25
WO2009089135A3 (en) 2009-12-03
EP2241109A2 (en) 2010-10-20
JP2011509640A (ja) 2011-03-24
US8411569B2 (en) 2013-04-02

Similar Documents

Publication Publication Date Title
KR101309935B1 (ko) 인코딩된 멀티미디어 데이터 스트림을 스플라이싱하는 방법
KR101010170B1 (ko) 인코드된 비디오 스트림들 간의 심리스 스플라이싱을 위한비디오 인코딩
JP4819126B2 (ja) 携帯放送システムにおける多重ストリーム受信装置及び方法
US9288057B2 (en) Content segmentation of watermarking
JP5400575B2 (ja) 可変長パケットの送信装置、受信装置及びプログラム
CN101422037B (zh) 缩短数字视频设备频道变换时间的方法
US20140096156A1 (en) System and Method for Seamless Switching Through Buffering
US8355450B1 (en) Buffer delay reduction
JPWO2016063780A1 (ja) 受信装置、送信装置、およびデータ処理方法
KR20060051568A (ko) 미디어 스트림으로부터 획득한 미디어의 프리젠테이션을위한 방법 및 시스템
WO2014142716A1 (en) Arrangements and method thereof for channel change during streaming
US20050094965A1 (en) Methods and apparatus to improve the rate control during splice transitions
JP6753500B2 (ja) 受信機器、および復号・提示方法
US20060230171A1 (en) Methods and apparatus for decreasing latency in A/V streaming systems
WO2004086765A1 (ja) データ送信装置
KR100864009B1 (ko) 오디오/비디오 동기화 방법
US7139241B1 (en) Method for preventing buffer underflow during digital transport stream transmission, multiplexing and splicing
CN114080816A (zh) 用于内容传递的时延管理
JP2004159057A (ja) 再生情報配信システム及び再生情報配信方法
US20210168472A1 (en) Audio visual time base correction in adaptive bit rate applications
KR102435049B1 (ko) 셋탑박스 및 그 동작 방법
CN113132806B (zh) 一种播放终端及其节目播放方法
JP5152316B2 (ja) 符号化装置及び符号化方法
JP5201201B2 (ja) 復号装置及び復号方法
JP4775382B2 (ja) 符号化装置と符号化方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160902

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170901

Year of fee payment: 5