KR20090101457A - 비디오 스트림 스플라이싱을 위한 방법 및 장치 - Google Patents

비디오 스트림 스플라이싱을 위한 방법 및 장치

Info

Publication number
KR20090101457A
KR20090101457A KR1020097014221A KR20097014221A KR20090101457A KR 20090101457 A KR20090101457 A KR 20090101457A KR 1020097014221 A KR1020097014221 A KR 1020097014221A KR 20097014221 A KR20097014221 A KR 20097014221A KR 20090101457 A KR20090101457 A KR 20090101457A
Authority
KR
South Korea
Prior art keywords
syntax element
video stream
delay
output
spliced
Prior art date
Application number
KR1020097014221A
Other languages
English (en)
Other versions
KR101455161B1 (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 KR20090101457A publication Critical patent/KR20090101457A/ko
Application granted granted Critical
Publication of KR101455161B1 publication Critical patent/KR101455161B1/ko

Links

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 or manipulating encoded video stream scene graphs
    • 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/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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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
    • 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/4402Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6336Control signals issued by server directed to the network components or client directed to client directed to decoder
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/015High-definition television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

비디오 스트림 스플라이싱을 위한 방법 및 장치가 제공된다. 장치는 HRD 파라미터들을 이용하여, 스플라이싱된 비디오 스트림을 생성하는 스플라이싱된 비디오 스트림 생성기(1600)를 포함한다. 다른 장치는, 적어도 하나의 HRD 관련 고레벨 구문 요소의 표준 값을 변경함으로써, 스플라이싱된 비디오 스트림과 관련한 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림을 생성하는 스플라이싱된 비디오 스트림 생성기(1600)를 포함한다.

Description

비디오 스트림 스플라이싱을 위한 방법 및 장치{METHODS AND APARATUS FOR VIDEO STREAM SPLICING}
[관련 출원에 대한 상호 참조]
본 출원은 2007년 1월 8일 출원된 미국 가출원 일련 번호 제60/883,852호의 이익을 주장하며, 이는 그 전체 내용이 본원에서 참조로포함된다.
본 발명은 일반적으로 비디오 인코딩 및 디코딩에 관한 것으로, 보다 구체적으로는 비디오 스트림 스플라이싱(video stream splicing)을 위한 방법 및 장치에 관한 것이다.
비디오 스트림 스플라이싱은 자주 사용되는 처리 절차이다. 전형적인 스트림 스플라이싱의 응용으로는 예를 들어 비디오 편집, 병렬 인코딩, 및 광고 삽입 등이 있다.
압축된 비디오 스트림은 종종 채널들을 통해서 전송되기 때문에, 인코더 및 디코더에서 버퍼링 메커니즘을 이용하여 비트 레이트 변동이 평활화될(smoothed) 필요가 있다. 물리적 버퍼의 크기는 유한하며, 따라서 인코더는 버퍼 제한 범위 내로 맞추기 위해서 비트 레이트 변동을 제약시켜야만 한다. 비디오 코딩 표준은 특정한 인코더 또는 디코더 버퍼링 메커니즘을 강제하지는 않으나, 주어진 버퍼 크기를 갖는 가상 참조 디코더(Hypothetical Reference Decoder: HRD)가 비디오 비트 스트림을 버퍼 오버플로우 또는 언더플로우로 인한 손실 없이 디코딩할 수 있도록 인코더가 비트 레이트 변동을 제어할 것을 특정하고 있다.
HRD는 이상화된 디코더 모델에 기초한 것이다. HRD의 목적은 코딩된 스트림에서의 시간 경과에 따른 비트 레이트의 변동에 대한 기초적인 버퍼링 제약들을 두는 것이다. 이런 제약들로 인해 더 상위의 계층들이 스트림을 다중화하고 또한 저렴한 디코더로 스트림을 실시간으로 디코딩할 수 있게 된다. HRD의 부합성은ISO/IEC MPEG-4 Part 10 AVC 표준/ITU-T H.264 권고(International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation)(이후 "MPEG-4 AVC 표준"으로 지칭)의 규범을 따르는 것이며, 따라서, 어떠한 소스의 MPEG-4 AVC 표준 호환 스트림도 원래적으로 HRD 요구 조건을 만족시킨다.
MPEG-4 AVC 표준과 호환되는 비디오 스트림(이후 "MPEG-4 AVC 표준 스트림"으로 지칭)을 스플라이싱하는 데에 있어서의 주요한 도전 중의 하나는, 두 개의 독립적인 소스 스트림으로 스플라이싱된 스트림이 여전히 MPEG-4 AVC 표준에 의해 정의된 대로의 HRD 요구 조건을 만족시킬 것을 보장해 주어야 한다는 것이다. 그러나, 기존의 사양으로는, 이미 HRD 호환인 소스 스트림들을 조합한 스트림이 여전히 HRD 호환이 될 것이라는 보장은 없다. 따라서, MPEG-4 AVC 표준 스트림을 스플라이싱하는 것은 단순한 잘라 붙이기(cut-and-paste) 차원에 머무는 것이 아니다.
HRD 는 MPEG-4 AVC 표준에서 특정되어 있다. 정의된 대로는, HRD 모델은 순차적으로 인코딩된 MPEG-4 AVC 스트림이 디코더 측에서 버퍼 오버플로우 또는 언더플로우를 일으키는 것을 방지한다. 그러나, 기존의 HRD 모델에서는 스플라이싱된 스트림이 HRD 호환이 되는 것을 방해하는 세 가지의 이슈가 있다는 것을 알아내었다. 이런 이슈로는,
1. 연결점(concatenation point) 이후의 제1 픽처의 CPB(Coded Picture Buffer)로부터의 부정확한 제거 시간,
2. 소스 스트림들로 연결될 때 서로 다른 초기 DPB(Decoded Picture Buffer) 지연을 갖는 부정확한 픽처 출력 타이밍,
3. 버퍼 언더플로우 또는 오버플로우로 이어질 수 있는 등식 C-15와 C-16의 위반이 있다.
따라서, 본 발명에 따라서 여기 제공된 방법 및 장치는 스플라이싱된 스트림이 HRD 호환되도록 보장함으로써 적어도 종래 기술의 앞서 언급한 결점을 해결해 낸다.
본 발명에 관련한 몇몇 용어 및 그에 대응하는 정의가 이하 주어진다.
tr,n(n): 액세스 단위(access unit) n의 명목(nominal) 제거 시간, 즉 CPB(Coded Picture Buffer)로부터 액세스 단위 n을 제거하기 위한 명목 시간.
tr(n): 액세스 단위 n의 실제 제거 시간, 즉 CPB로부터 액세스 단위 n을 제거하고 즉시로 디코딩하기 위한 실제 시간.
tai(n): 액세스 단위 n의 초기 도착 시간, 즉 액세스 단위 n의 제1 비트가 CPB로 진입하기를 시작하는 시간.
taf(n): 액세스 단위 n의 최종 도착 시간, 즉 액세스 단위 n의 최종 비트가 CPB에 진입하는 시간.
t0,dpb(n): DPB 출력 시간, 즉 액세스 단위 n이 DPB로부터 출력되는 시간.
num_units_in_tick 는 클록 틱 카운터(clock tick counter)의 일 증분(클록 틱으로 지칭)에 대응하는 frequency time_scale Hz 로 작동하는 클록의 시간 단위의 수를 특정하는 SPS(Sequence Parameter Set)의 구문 요소(syntax element). num_units_in_tick는 0보다 클 것이다. 클록 틱은 코딩된 데이터에서 표현될 수 있는 최소의 시구간이다. 예를 들어, 비디오 신호의 클록 주파수가 60000÷1001 Hz일 때, time_scale은 60000과 동등할 것이며 num_units_in_tick는 1001에 동등할 것이다.
time_scale 은 1초에 통과하는 시 단위의 수이다. 예를 들어, 27 MHz 클록을 이용하여 시간을 측정하는 시간 좌표 시스템은 27000000의 time_scale을 갖는다. time_scale은 0보다 클 것이다.
Picture timing SEI message: cpb_removal_delay, dpb_output_delay와 같은 픽처 타이밍 정보를 저장하는 구문 구조
Buffering period SEI message: initial_cpb_removal_delay와 같은 버퍼링 구간 정보를 저장하는 구문 구조
Buffering period: 디코딩 순서에서 버퍼링 구간 SEI 메시지(buffering period supplemental enhancement information message)의 두 개의 인스턴스 사이의 액세스 단위의 세트
SchedSelldx: 어느 세트의 HRD 파라미터들(전송율, 버퍼 크기, 및 초기 버퍼 충만도(fullness))가 선택되는지를 표시하는 인덱스. 비트스트림은 다중 세트의 HRD 파라미터와 호환될 수 있다.
스플라이싱 포인트에서의 cpb_removal_delay의 부정확한 값
기존의 HRD 요구 조건에서는, cpb_removal_delay가, 버퍼로부터 픽처 타이밍 SEI 메시지와 연관된 액세스 단위 데이터를 제거하기 전에 가장 최근의 버퍼링 구간 SEI 메시지와 연관된 액세스 단위의 CPB로부터의 제거 후에 얼마나 많은 클록 틱이 대기할 것인지를 특정한다. CPB로부터 액세스 단위 n의 명목 제거 시간은 이하에 의해 특정된다.
(C-8)
여기서, 변수 tc는 이하의 식으로 도출되고 클록 틱으로 불린다.
(C-1)
버퍼링 구간의 제1 액세스 단위에 대해서, tr,n(nb)는 이전 버퍼링 구간의 제1 액세스 단위의 명목 제거 시간인데, 이는 이것이 픽처 타이밍 SEI 메시지에서 cpb_removal_delay를 정확히 설정하기 위해서는 이전 버퍼링 구간의 길이를 알 것을 요구한다는 것을 의미한다. 소스 스트림들이 독립적으로 인코딩될 때, 소스 스트림을 단순하게 연결하면 문제 투성이의 CPB 제거 시간을 낳게 된다. 한 예가 도 1에 도시되었다.
도 1을 참조하면, 부정확한 cpb_removal_delay에 의해 야기되는 문제 투성이의 디코딩 타이밍 사나리오의 예시가 참조 번호 (100)에 의해 제시되어 있다.
도 1의 시나리오에서, 소스 스트림 1로부터 세그먼트 A를 추출하고, 소스 스트림 2로부터 세그먼트 D를 추출한다. 각각의 스트림 1 및 2는 독립적으로 HRD 호환 스트림이다. 세그먼트 A 및 D는 연결되어 새로운 스트림을 형성한다. 각각의 세그먼트가 세그먼트의 시작부로부터 개시하는 단 하나의 버퍼링 구간을 갖는다고 가정하자. 스플라이싱된 스트림에서, 세그먼트 D의 제1 액세스 단위의 명목 제거 시간이 문제가 되는데, 그 이유는 이것이 세그먼트 C의 길이로부터 도출된cpb_removal_delay와 함께 세그먼트 A의 제1 액세스 단위의 명목 제거 시간으로부터 도출되기 때문이다.
미스매칭된 초기의 dpb_output_delay
MPEG-4 AVC 표준의 기존의 버전에서는, DPB로부터의 픽처 출력 타이밍은 이하와 같이 정의된다.
픽처 n의 DPB 출력 시간은 이하의 식으로 도출된다.
(C-12)
여기서, dpb_output_delay는 디코딩된 픽처가 DPB로부터 출력될 수 있기 전에 CPB로부터의 액세스 단위의 제거 후에 얼마나 많은 클록 틱이 대기할지를 특정한다.
스트림의 제1 액세스 단위의 dpb_output_delay는 초기의 dpb_output_delay 이다. 최소의 초기 dpb_output_delay는 디코딩과 출력의 인과적 관계를 보장하는 데에 사용된다. 초기 dpb_output_delay에 대한 최소의 요구 조건은 전체 시퀀스에서 픽처 리오더링(re-ordering) 관계에 의존한다.
예를 들어, GOP 유형 IIIII...로 인코딩되는 시퀀스에 대해서, 초기 dpb_output_delay 의 최소 요구 조건은 도 2에 도시된 대로 0 프레임들이다. 도 2를 참조하면, 스트림 A의 예시적 디코딩 타이밍과 디스플레이 타이밍 간의 관계가 참조 번호(200)에 의해 표시된다. 특히, 디코딩 타이밍은 참조 번호(210)에 의해 표시되고, 디스플레이 타이밍은 참조 번호(220)에 의해 표시된다.
도 2 내지 도 6에서, 실선의 라인 없는 해칭 부분은 I 픽처를 표시하고, 대각선 라인 해칭은 P 픽처를 표시하고, 수평 라인 해칭은 B 픽처를 표시한다는 점을 인식해야 한다.
또 다른 예에서, GOP 유형 IbPbP...로 인코딩되는 시퀀스에 대해서, 도 3에 도시한 대로 최소한 1 프레임 초기 dpb 출력 지연을 요구한다. 도 3을 참조하면, 스트림 B의 예시적 디코딩 타이밍 및 디스플레이 타이밍 간의 관계는 참조 번호(300)에 의해 표시된다. 특히, 디코딩 타이밍은 참조 번호(310)에 의해 표시되고, 디스플레이 타이밍은 참조 번호(320)에 의해 표시된다.
스트림 스플라이싱에서, 모든 소스 스트림의 초기의 dpb_output_delay는 동일해야만 한다. 그렇지 않으면, 초기의 dpb_output_delay의 미스매칭은 예를 들어 두 개의 프레임이 동일 시간에 출력되거나(오버랩) 또는 추가의 갭들이 프레임 간에 삽입되는 것 중의 하나와 같은 출력 타이밍 문제를 일으킨다.
도 4를 참조하면, 스트림 A와 스트림 B의 연결의 예시적 디코딩 타이밍과 디스플레이 타이밍의 관계가 참조 번호(400)에 의해 표시되었다. 특히, 디코딩 타이밍은 참조 번호(410)에 의해 표시되고, 디스플레이 타이밍은 참조 번호(420)에 의해 표시된다.
도 5를 참조하면, 스트림 A와 스트림 B의 연결의 예시적 디코딩 타이밍과 디스플레이 타이밍 간의 관계가 참조 번호(500)에 의해 표시된다. 특히, 디코딩 타이밍은 참조 번호(510)에 의해 표시되고, 디스플레이 타이밍은 참조 번호(520)에 의해 표시된다.
도 4 및 도 5는 초기 dpb_output_delay의 미스매칭된 값들을 갖는 출력 타이밍 문제를 예시하였다.
인과적 관계를 만족시키기 위해, 도 6에 도시한 대로, 모든 소스 스트림의 초기 dpb_output_delay의 값들은 동일해야만 하고, 모든 소스 스트림에 대한 최대 초기 dpb_output_delay 보다 작지 않아야 한다.
도 6을 다시 참조하면, 동일한 초기 dpb_output_delay 값들을 갖고 모든 소스 스트림에 대한 최대 초기 dpb_output_delay 보다 작지 않은 예시적 디코딩 타이밍과 디스플레이 타이밍 간의 관계가 참조 번호(600)에 의해 표시되었다. 특히, 디코딩 타이밍은 참조 번호(610)에 의해 표시되고, 디스플레이 타이밍은 참조 번호(620)에 의해 표시되었다.
등식 C-15 및 C-16의 위배
기존의 HDR은 이하와 같이 버퍼링 구간 SEI에서의 initial_cpb_removal_delay에 대한 제약을 설정한다.
(C-14)
에 의해 특정되는 △tg,90(n)을 가지며, n>0이며, 버퍼링 구간 SEI 메시지와 연관된 각각의 액세스 단위 n에 대해서,
- 만일 cbr_flag[SchedSelldx]가 0이면,
(C-15)
- 그렇지 않다면(cbr_flag[SchedSelldx]가 1이면),
소스 스트림들이 독립적으로 인코딩될 때, 스플라이싱된 스트림은 이런 조건들을 쉽게 위반할 수 있는데, 그 이유는, 이후의 소스 스트림의 initial_cpb_removal_delay에 부과된 제약(△tg,90(n))이 변화되기 때문이다. 도 7을 참조하면, initial_cpb_removal_delay 제약을 위반하는 스플라이싱된 비디오의 예가 참조 번호(700)에 의해 표시되었다. 특히, 제1 소스 스트림은 참조 번호(710)에 의해 표시되고, 제2 소스 스트림은 참조 번호(720)에 의해 표시된다.
International Organization for Standardization/International Electrotechnical Commission(ISO/IEC) Moving Picture Experts Group-2 standard(이후 MPEG-2 AVC 표준으로 지칭)와 같은 이전의 비디오 코딩 표준에서는, 스트림 스플라이싱은 도전 과제가 아니었는데, 그 이유는 MPEG-4 AVC 표준의 HRD 에 유사한 개념인, MPEG-2 비디오 버퍼 검증기의 행동이 MPEG-4 AVC 표준에서의 HRD와는 그 구현에 있어서 다르고 궁극적으로 최종 결과도 다르기 때문이다. MPEG-4 AVC 표준에 관한 HRD 행동에 의해 야기되는 문제는 이하의 이유로 MPEG-2 표준에 관한 비디오 구현에서는 존재하지 않는다.
1. 픽처의 디코딩 시간이 이전 픽처의 유형으로부터 도출되므로, 디코딩 시간은 단순 연결에 대해 어떤 문제도 제기하지 않는다.
2. 픽처 출력 타이밍에 관한 어떤 요구도 없다.
3. initial_cpb_removal_delay 에 대한 어떤 제한도 없다. 초기의 버퍼 충만도는 각각의 픽처에 의해 보내지는 vbv_delay에 기초한 것이다. 버퍼의 언더플로우 또는 오버플로우는 제로 스터핑 비트(zero stuffing bits) 또는 추가 대기 비트를 삽입함으로써 방지될 수 있다.
MPEG-2 ES(Elementary Stream)는 전송을 위해 TS(Transport Stream)로 패킹될 수도 있다. SMPTE(Society of Motion Picture and Television Engineers)는 MPEG-2 TS에 대한 스플라이싱을 규격화했다. 기본 개념은 MPEG-2 TS에 대한 제약을 정의하는 것인데, 이는 거기 포함된 PES(Packetized Elementary Stream) 패킷의 페이로드를 수정하지 않고 그들이 스플라이싱될 수 있게 한다.
그러나, 그와 관련된 상술한 문제점들을 극복하기 위한, MPEG-4 AVC 스트림 스플라이싱을 위한 어떠한 해결책도 존재하지 않는다.
도 1은 종래 기술에 따른, 부정확한 cpb_removal_delay에 의해 야기된 예시적인 문제의(problematic) 디코딩 타이밍 시나리오를 도시하는 도면이다.
도 2는 종래 기술에 따른, 스트림 A의 예시적인 디코드 타이밍과 표시 타이밍 간의 관계를 도시하는 도면이다.
도 3은 종래 기술에 따른, 스트림 B의 예시적인 디코드 타이밍 및 표시 타이밍 간의 관계를 도시하는 도면이다.
도 4는 종래 기술에 따른, 스트림 A와 스트림 B의 연결(concatenation) 시의 예시적인 디코드 타이밍 및 표시 타이밍 간의 관계를 도시하는 도면이다.
도 5는 종래 기술에 따른, 스트림 B와 스트림 A의 또 다른 연결 시의 예시적인 디코드 타이밍 및 표시 타이밍 간의 관계를 도시하는 도면이다.
도 6은 종래 기술에 따른, 최대 초기 dpb_output_delay보다 작지 않은 초기 dpb_out_delay와 동일한 값을 갖는 모든 소스 스트림에 대한 예시적인 디코드 타이밍 및 표시 타이밍 간의 관계를 도시하는 도면.
도 7은 종래 기술에 따른, initial_cpb_removal_delay 제약을 위배하는 스플라이싱된 비디오의 예를 도시하는 도면.
도 8은 본 발명의 실시예에 따른, 본 발명이 적용될 수 있는 예시적인 비디오 인코더에 대한 블록도이다.
도 9는 본 발명의 실시예에 따른, 본 발명이 적용될 수 있는 예시적인 비디오 디코더에 대한 블록도이다.
도 10은 본 발명의 실시예에 따른, 예시적인 HRD 부합성 검증기에 대한 블록도이다.
도 11A는 본 발명의 실시예에 따른, 스플라이싱 SEI(Supplemental Enhancement Information) 메시지를 삽입하는 예시적인 방법에 대한 흐름도이다.
도 11B는 본 발명의 실시예에 따른, 스플라이싱 SEI 메시지를 삽입하는 또 다른 예시적인 방법에 대한 흐름도이다.
도 12는 본 발명의 실시예에 따른, 스플라이싱 SEI 메시지를 디코딩하는 예시적인 방법에 대한 흐름도이다.
도 13은 본 발명의 실시예에 따른, 정규 제거 시간(normal removal time) tr,n(n)을 도출하는(deriving) 예시적인 방법에 대한 흐름도이다.
도 14A는 본 발명의 실시예에 따른, DPB(decoded picture buffer) 출력 시간 to,dpb(n)을 도출하는 예시적인 방법에 대한 흐름도이다.
도 14B는 본 발명의 실시예에 따른, DPB 출력 시간 to,dpb(n)을 도출하는 또 다른 예시적인 방법에 대한 흐름도이다.
도 15A는 본 발명의 실시예에 따른, SEI 메시지를 삽입하는 또 다른 예시적인 방법에 대한 흐름도이다.
도 15B는 본 발명의 실시예에 따른, SEI 메시지를 디코딩하는 또 다른 예시적인 방법에 대한 흐름도이다.
도 16은 본 발명의 실시예에 따른, 예시적인 스플라이스 스트림 생성기(splice stream generator)에 대한 블록도이다.
도 17은 본 발명의 실시예에 따른, 스플라이싱된 비디오 스트림을 생성하는 예시적인 방법에 대한 흐름도이다.
도 18은 본 발명의 실시예에 따른, 스플라이싱된 비디오 스트림을 재생하는 예시적인 방법에 대한 흐름도이다.
도 19는 본 발명의 실시예에 따른, 스플라이싱된 비디오 스트림을 생성하는 또 다른 예시적인 방법에 대한 흐름도이다.
도 20은 본 발명의 실시예에 따른, 스플라이싱된 비디오 스트림을 재생하는 또 다른 예시적인 방법에 대한 흐름도이다.
비디오 스트림 스플라이싱을 위한 방법 및 장치에 관한 본 발명(present principles)에 의해, 종래 기술의 여러 결점 및 단점들이 다루어진다.
본 발명의 일 양상에 따르면, 장치가 제공된다. 이 장치는, HRD((hypothetical reference decoder) 파라미터들을 사용하여 스플라이싱된 비디오 스트림을 생성하기 위한 스플라이싱된 비디오 스트림 생성기를 포함한다.
본 발명의 또 다른 양상에 따르면, 장치가 제공된다. 이 장치는, 적어도 하나의 HRD 관련 고레벨 구문 요소(hypothetical reference decoder related high level syntax element)의 표준 값들을 수정하여, 스플라이싱된 비디오 스트림에 관한 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림을 생성하기 위한 스플라이싱된 비디오 스트림 생성기를 포함한다.
본 발명의 또 다른 양상에 따르면, 방법이 제공된다. 이 방법은, HRD 파라미터들을 사용하여 스플라이싱된 비디오 스트림을 생성하는 단계를 포함한다.
본 발명의 또 따른 양상에 따르면, 방법이 제공된다. 이 방법은, 적어도 하나의 HRD 관련 고레벨 구문 요소의 표준 값을 수정하여, 스플라이싱된 비디오 스트림에 관한 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림을 생성하는 단계를 포함한다.
본 발명의 또 다른 양상에 따르면, 장치가 제공된다. 이 장치는, 스플라이싱된 비디오 스트림에 대한 HRD 파라미터들을 수신하고, HRD 파라미터들을 사용하여 스플라이싱된 비디오 스트림을 재생하는 스플라이싱된 비디오 스트림 생성기를 포함한다.
본 발명의 또 다른 양상에 따르면, 장치가 제공된다. 이 장치는, 스플라이싱된 비디오 스트림에 대응하는 적어도 하나의 HRD 관련 고레벨 구문 요소의 수정된 표준 값을 수신하고, 스플라이싱된 비디오 스트림을 재생하는 한편, 적어도 하나의 HRD 관련 고레벨 구문 요소의 수정된 표준 값을 사용하여 스플라이싱된 비디오 스트림에 관한 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림 생성기를 포함한다.
본 발명의 또 다른 양상에 따르면, 방법이 제공된다. 이 방법은, 스플라이싱된 비디오 스트림에 대한 HRD 파라미터들을 수신하는 단계를 포함한다. 이 방법은, HRD 파라미터들을 사용하여 스플라이싱된 비디오 스트림을 재생하는 단계를 더 포함한다.
본 발명의 추가적인 양상에 따르면, 방법이 제공된다. 이 방법은, 스플라이싱된 비디오 스트림에 대응하는 적어도 하나의 HRD 관련 고레벨 구문 요소의 수정된 표준 값을 수신하는 단계를 포함한다. 이 방법은, 스플라이싱된 비디오 스트림을 재생하는 한편, 적어도 하나의 HRD 관련 고레벨 구문 요소의 수정된 표준 값을 사용하여 스플라이싱된 비디오 스트림에 관한 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 단계를 더 포함한다.
본 발명의 여러 양상, 특징, 및 장점들은, 첨부 도면과 관련하여 읽혀지게 될, 예시적인 실시예로 이루어진 다음의 상세한 설명으로부터 명백해 질 것이다.
본 발명은 다음의 예시적인 도면에 따라 더욱 잘 이해될 수 있다.
본 발명은 비디오 스트림 스플라이싱을 위한 방법 및 장치에 관한 것이다.
본 명세서는 본 발명을 예를 들어 설명한다. 따라서, 여기에는 명백하게 개시되거나 도시되어 있지는 않지만, 본 발명의 의도 및 범위 내에 포함되고 본 발명을 구현하는 다양한 구성들을 당업자가 고안할 수 있을 것임이 이해될 것이다.
여기에 열거된 모든 예 및 조건부 표현은 본 기술을 더욱 발전시키기 위해 발명자(들)가 생각해낸 개념들 및 본 발명을 독자들이 이해하는 것을 돕기 위한 교육적 목적으로 사용되었으므로, 그렇게 구체적으로 열거된 예들 및 조건들에 한정되지 않도록 해석되어야 한다.
더욱이, 본 발명의 원리, 양상, 및 실시예를 열거하는 모든 진술은 물론, 그에 대한 구체적인 예는, 그의 구조적 및 기능적 등가물 둘 다를 포함한다. 또한, 이러한 등가물들은 현재 공지되어 있는 등가물은 물론 차후에 개발될 등가물, 즉, 구조와는 상관없이, 동일한 기능을 수행하도록 개발될 임의의 요소들 모두를 포함한다.
따라서, 예를 들어, 본 명세서에서 제시된 블록도는 본 발명을 구현하는 예시적인 회로를 개념적으로 나타내고 있다는 것을 본 기술 분야의 당업자는 이해하고 있을 것이다. 마찬가지로, 임의의 플로우 차트, 흐름도, 상태 전이도(state transition diagrams), 의사 코드 등은 실질적으로는 컴퓨터 판독가능한 매체 내에 표현되어 있고, 컴퓨터나 프로세서가 명시되었는지와는 상관없이, 컴퓨터나 프로세서에 의해서 실행되는 다양한 프로세스를 나타내고 있음이 이해될 것이다.
도면에서 도시된 다양한 요소들의 기능들은 전용 하드웨어는 물론 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 수 있는 하드웨어를 사용하여 제공된다. 이러한 기능들이 프로세서에 의해서 제공되는 경우에는, 단일 전용 프로세서, 단일 공유형 프로세서 또는 그들 중 몇몇이 공유되는 복수의 개별 프로세서에 의해서 제공될 수 있다. 더욱이, 용어 "프로세서" 또는 "제어기"를 명시적으로 사용하였다고 하더라도 소프트웨어를 실행할 수 있는 하드웨어로만 배타적으로 해석되어서는 안되고, 한정 없이, DSP(digital signal processor) 하드웨어, 소프트웨어를 저장하는 ROM(read-only memory), RAM(random access memory) 및 비휘발성 기억 장치를 잠재적으로 포함하고 있다.
또한, 그 외에 종래 및/또는 주문형 하드웨어도 포함될 수 있다. 마찬가지로, 도면에서 도시된 임의의 스위치는 다만 개념적일 뿐이다. 그들의 기능은 프로그램 로직의 연산, 전용 로직, 프로그램 제어와 전용 로직을 상호 작용, 또는 심지어는 수동으로 수행될 수 있고, 구현자는 구문으로부터 보다 구체적으로 이해하여 특정 기술을 선택할 수 있다.
청구 범위에서, 특정 기능을 수행하는 수단으로서 표현된 임의의 요소는 그 기능을 수행하는 임의의 방식으로서, 예를 들어, a) 그 기능을 수행하는 회로 요소들의 조합, 또는 b) 소프트웨어를 실행하여 그 기능을 수행하는데 적합한 회로와 조합된, 펌웨어, 마이크로 코드 등을 포함하는 임의의 형태의 소프트웨어를 포함할 수 있다. 청구 범위에 의해 규정되는 본 발명은, 다양한 열거된 수단들에 의해서 제공되는 기능들이 그 청구 범위가 요구하는 방식으로 결합 및 조합된다는 사실에 입각하고 있다. 따라서, 이러한 기능들을 제공할 수 있는, 임의의 수단들은 여기 도시된 것들과 등가물인 것으로 간주된다.
명세서에서, 본 발명의 "하나의 실시예(one embodiment)" 및 "실시예(an embodiment)"라는 용어는, 그 실시예와 관련하여 설명된 특정한 특징, 구조 및 특성 등이 본 발명의 적어도 하나의 실시예 내에 포함된다는 것을 의미한다. 따라서, "하나의 실시예에서" 및 "실시예에서"라는 표현이 본 명세서의 여러 부분에 등장하는데, 이것이 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
"및/또는"이라는 용어의 사용, 예를 들어, "A 및/또는 B"의 경우는, 첫 번째로 리스트된 옵션인 (A)의 선택, 두 번째로 리스트된 옵션인 (B)의 선택, 또는 옵션 둘 다인 (A 및 B)의 선택을 포함한다. 또 다른 예로서, "A, B 및/또는 C"의 경우에는, 첫 번째로 리스트된 옵션인 (A)의 선택, 두 번째로 리스트된 옵션인 (B)의 선택, 세 번째로 리스트된 옵션인 (C)의 선택, 첫 번째 및 두 번째로 리스트된 옵션인 (A 및 B)의 선택, 첫 번째 및 세 번째로 리스트된 옵션인 (A 및 C)의 선택, 두 번째 및 세 번째로 리스트된 옵션인 (B 및 C)의 선택, 또는 세 개의 옵션 모두인 (A 및 B 및 C)의 선택을 포함한다. 당업자들에게는 쉽게 명백하듯이, 더 많은 항목들이 리스트되는 경우에 대해서까지 확대 해석될 수 있다.
또한, 여기에서 본 발명의 하나 이상의 실시예는 MPEG-4 AVC 표준에 대하여 설명되었지만, 본 발명은 단지 이 표준에 한정되지 않고, 따라서, 본 발명의 의도를 유지하는 한, 그 외의 비디오 코딩 표준, 권고, 및 그들의 확장(MPEG-4 AVC 표준의 확장을 포함함)에 대하여 이용될 수 있다.
도 8로 돌아가서, 본 발명이 적용될 수 있는 예시적인 비디오 인코더가 일반적으로 참조 번호 800으로 표시된다.
비디오 인코더(800)는 결합기(combiner)(885)의 비반전 입력과 신호 통신하는 출력을 갖는 프레임 오더링 버퍼(810)를 포함한다. 결합기(885)의 출력은 변환기(transformer) 및 양자화기(quantizer)(825)의 제1 입력과 신호 통신하여 접속된다. 변환기 및 양자화기(825)의 출력은 엔트로피 코더(845)의 제1 입력, 및 반전 변환기 및 반전 양자화기(850)의 제1 입력과 신호 통신하여 접속된다. 엔트로피 코더(845)의 출력은 결합기(890)의 제1 비반전 입력과 신호 통신하여 접속된다. 결합기(890)의 출력은 출력 버퍼(835)의 제1 입력과 신호 통신하여 접속된다.
인코더 제어기(805)의 제1 출력은 프레임 오더링 버퍼(810)의 제2 입력, 반전 변환기 및 반전 양자화기(850)의 제2 입력, 픽처 타입 결정 모듈(picture-type decision module)(815)의 입력, MB 타입(macroblock-type) 결정 모듈(820)의 입력, 인트라 예측 모듈(intra prediction module)(860)의 제2 입력, 디블러킹 필터(865)의 제2 입력, 모션 보상기(870)의 제1 입력, 모션 추정기(motion estimator; 875)의 제1 입력, 및 기준 픽처 버퍼(reference picture buffer)(880)의 제2 입력과 신호 통신하여 접속된다.
인코더 제어기(805)의 제2 출력은 부가 향상 정보(Supplemental Enhancement Information: SEI) 삽입기(830)의 제1 입력, 변환기 및 양자화기(825)의 제2 입력, 엔트로피 코더(845)의 제2 입력, 출력 버퍼(835)의 제2 입력, 및 SPS(Sequence Parameter Set) 및 PPS(Picture Parameter Set) 삽입기(840)의 입력과 신호 통신하여 접속된다.
픽처 타입(picture-type) 결정 모듈(815)의 제1 출력은 프레임 오더링 버퍼(810)의 제3 입력과 신호 통신하여 접속된다. 픽처 타입 결정 모듈(815)의 제2 출력은 MB 타입 결정 모듈(820)의 제2 입력과 신호 통신하여 접속된다.
SPS 및 PPS 삽입기(840)의 출력은 결합기(890)의 제3 비반전 입력과 신호 통신하여 접속된다.
반전 양자화기 및 반전 변환기(850)의 출력은 결합기(819)의 제1 비반전 입력과 신호 통신하여 접속된다. 결합기(819)의 출력은 인트라 예측 모듈(860)의 제1 입력과 디블러킹 필터(865)의 제1 입력과 신호 통신하여 접속된다. 디블러킹 필터(865)의 출력은 기준 픽처 버퍼(880)의 제1 입력과 신호 통신하여 접속된다. 기준 픽처 버퍼(880)의 출력은 모션 추정기(875)의 제2 입력과 신호 통신하여 접속된다. 모션 추정기(875)의 제1 출력은 모션 보상기(870)의 제2 입력과 신호 통신하여 접속된다. 모션 추정기(875)의 제2 출력은 엔트로피 코더(845)의 제3 입력과 신호 통신하여 접속된다.
모션 보상기(870)의 출력은 스위치(897)의 제1 입력과 신호 통신하여 연결된다. 인트라 예측 모듈(860)의 출력은 스위치(897)의 제2 입력과 신호 통신하여 연결된다. MB 타입 결정 모듈(820)의 출력은 스위치(897)의 제3 입력과 신호 통신하여 연결된다. 스위치(897)의 제3 입력은 스위치의 "데이터" 입력(제어 입력과 비교하여, 즉, 제3 입력)이 모션 보상기(870) 또는 인트라 예측 모듈(860)에 의해 제공되는지 여부를 판정한다. 스위치(897)의 출력은 결합기(819)의 제2 비반전 입력 및 결합기(885)의 반전 입력과 신호 통신하여 연결된다.
프레임 오더링 버퍼(810)와 인코더 제어기(805)의 입력은 입력 픽처(801)를 수신하기 위한, 인코더(800)의 입력으로서 이용가능하다. 게다가, SEI 삽입기(830)의 입력은 메타데이터를 수신하기 위한, 인코더(800)의 입력으로서 이용가능하다. 출력 버퍼(835)의 출력은 비트스트림을 출력하기 위한, 인코더(800)의 출력으로 이용가능하다.
도 9로 돌아가면, 본 발명의 원리가 적용될 수 있는 예시적인 비디오 디코더가 일반적으로 참조 번호(900)에 의해 표시된다.
비디오 디코더(900)는 엔트로피 디코더(945)의 제1 입력 및 SEI 파서(907)의 제1 입력과 신호 통신하여 연결되는 출력을 갖는 입력 버퍼(910)를 포함한다. 엔트로피 디코더(945)의 제1 출력은 반전 변환기 및 반전 양자화기(950)의 제1 입력과 신호 통신하여 연결된다. 반전 변환기 및 반전 양자화기(950)의 출력은 결합기(925)의 제2 비반전 입력과 신호 통신하여 연결된다. 결합기(925)의 출력은 디블러킹 필터(965)의 제2 입력 및 인트라 예측 모듈(960)의 제1 입력과 신호 통신하여 연결된다. 디블러킹 필터(965)의 제2 출력은 기준 픽처 버퍼(980)의 제1 입력과 신호 통신하여 연결된다. 기준 픽처 버퍼(980)의 출력은 모션 보상기(970)의 제2 입력과 신호 통신하여 연결된다.
엔트로피 디코더(945)의 제2 출력은 모션 보상기(970)의 제3 입력 및 디블러킹 필터(965)의 제1 입력과 신호 통신하여 연결된다. 엔트로피 디코더(945)의 제3 출력은 디코더 제어기(905)의 제1 입력과 신호 통신하여 연결된다. SEI 파서(907)의 출력은 디코더 제어기(905)의 제2 입력과 신호 통신하여 연결된다. 디코더 제어기(905)의 제1 출력은 엔트로피 디코더(945)의 제2 입력과 신호 통신하여 연결된다. 디코더 제어기(905)의 제2 출력은 반전 변환기 및 반전 양자화기(950)의 제2 입력과 신호 통신하여 연결된다. 디코더 제어기(905)의 제3 출력은 디블러킹 필터(965)의 제3 입력과 신호 통신하여 연결된다. 디코더 제어기(905)의 제4 출력은, 인트라 예측 모듈(960)의 제2 입력과, 모션 보상기(970)의 제1 입력과, 그리고, 기준 픽처 버퍼(980)의 제2 입력과 신호 통신하여 연결된다.
모션 보상기(970)의 출력은 스위치(997)의 제1 입력과 신호 통신하여 연결된다. 인트라 예측 모듈(960)의 출력은 스위치(997)의 제2 입력과 신호 통신하여 연결된다. 스위치(997)의 출력은 결합기(925)의 제1 비반전 입력과 신호 통신하여 연결된다.
입력 버퍼(910)의 입력은 입력 비트스트림을 수신하기 위한, 디코더(900)의 입력으로서 이용가능하다. 디블러킹 필터(965)의 제1 출력은 출력 픽처를 출력하기 위한, 디코더(900)의 출력으로서 이용가능하다.
전술한 바와 같이, 본 발명은 비디오 스트림 스플라이싱을 위한 방법 및 장치에 관한 것이다. 본 발명은 주로 MPEG-4 AVC 표준에 따른 하나 이상의 스트림에 대한 스트림 스플라이싱에 관하여 기술되었다. 그러나, 본 발명은 MPEG-4 AVC 표준에 따른 스트림에만 한정되는 것이 아니라, 본 발명의 사상을 유지한다면, MPEG-4 AVC 표준을 포함하는 종래의 스트림 스플라이싱과 유사한 문제를 갖는 다른 비디오 코딩 표준 및 권장에 따라 이용될 수 있다.
HRD(Hypothetical reference decoder) 부합성은 MPEG-4 AVC 표준의 표준적인 부분이다. MPEG-4 AVC 표준을 포함하는 스트림 스플라이싱에서의 주된 문제는 독자적으로 HRD-부합 소스 스트림에 따라 스플라이싱된 스트림이 여전히 HRD-부합이 된다는 보장이 없다는 것이다.
따라서, 본 발명은 스플라이싱된 스트림이 MPEG-4 AVC 표준에 부합하는 것을 보장하면서 스플라이싱된 스트림을 생성할 수 있는 방법 및 장치를 제공한다. 본 발명에 따른 방법 및 장치는 HRD 부합 소스 스트림에 의해 생성된 스트림이 여전히 HRD 부합이 된다는 것을 보장한다. 하나 이상의 실시예에서, 이것은, 버퍼링 구간 SEI 메시지 및 픽처 타이밍 SEI 메시지 내에 위치하는 HRD 파라미터들을 변경하거나, 및/또는 스트림 스플라이싱을 지원하기 위한, MPEG-4 AVC 표준에 의해 특정되는 HRD 동작을 수정함으로써 수행될 수 있다.
이제 여기서 이용되는 다양한 용어에 대한 정의가 제공된다.
인-포인트(In-point): 스플라이싱 경계 직후의 액세스 유닛. 인-포인트는 IDR 픽처가 되어야 하고, 관련된 버퍼링 구간 SEI 메시지가 존재하여야 한다.
아웃-포인트(Out-point): 스플라이싱 경계 직후의 액세스 유닛.
스플라이스 타입: 심리스(seamless) 스플라이싱 및 비-심리스 스플라이싱의 2가지 타입의 스플라이싱이 있다. 심리스 스플라이싱은 스트림의 완전하고 즉각적인 스위칭을 허용한다. 스플라이싱되는 비디오 스트림은 스플라이스에서 매칭 HRD 버퍼 특성을 갖도록 생성된다. 구 스트림 엔드(old stream end)와 마지막의 구 픽처가 디코딩되는 사이의 시간은 새로운 스트림의 기동 지연 보다 작은 정확하게 하나의 프레임이 된다. 비-심리스 스플라이싱은 2개의 스트림간에 짧은 데드-타임(dead-time)을 삽입함으로써 디코더 버퍼가 오버플로우하는 것을 방지한다. 이것은 새로운 스트림이 빈 버퍼에서 시작함을 보장한다. 스플라이싱 디바이스는 디코더의 버퍼가 비었음을 보장하도록 새로운 스트림을 삽입하기 전까지 대기하며, 이에 따라 오버플로우의 가능성을 방지한다. 디코더의 픽처는 새로운 스트림의 기동 지연동안 프리즈(freeze)되어야 한다.
이제 본 발명에 따른 비디오 스트림 스플라이싱을 위한 방법이 개시된다.
본 방법에 따르면, 이하 개시되는 새로운 HRD는 스트림 스플라이싱 동작을 단순화할 수 있다.
MPEG-4 AVC 표준의 현재 버전인 HRD와 비교하면, 여기 개시된 HRD는, 연쇄적인 위치를 표시하기 위해 새로운 구문 요소를 부가하는 것; 스플라이싱의 타입(즉, 심리스 또는 비-심리스 스플라이싱)에 기초하여 새로운 스트림의 제1 액세스 유닛의 CPB로부터 제거 시간을 도출하는 새로운 규칙; 및 스플라이싱된 스트림 내에서 DPB(decoded picture buffer)를 도출하는 새로운 규칙을 포함/수반한다.
인-포인트의 위치를 표시하고 디코딩 및 출력 타이밍을 도출하는데 이용되는 파라미터는, 예컨대, 대역 내(in-band) 또는 대역 외(out-of-band) 등의 스트림의 일부로서 고레벨 구문을 통해 전달될 수 있다.
이러한 구문 요소의 하나의 실시예는 스플라이싱을 위한 SEI 메시지의 새로운 타입을 부가하는 것이다. 스플라이싱 SEI 메시지의 존재는 새로운 소스 스트림의 개시를 나타낸다. 스플라이싱 SEI 메시지는 스플라이싱 디바이스에 의해 인-포인트 액세스 유닛에 부가된다.
전술한 방법의 실시예가 이제 기술된다.
스플라이싱 SEI 메시지의 구문은 표 1에 도시된다.
Splicing (payloadSize) { C Descripter
dpb_output_delay_offset 5 u(v)
}
dpb_output_delay_offset은 픽처 타이밍 SEI 메시지 내의 dpb-output-delay와 결합되는 DPB(decoded picture buffer) 출력 지연을 특정하는데 이용된다.
이 실시예에서, dpb_output_delay_offset은 명백하게 송신된다.
dpb_output_delay_offset의 값을 도출하기 위해 스플라이싱 디바이스가 소스 스트림을 파싱할 필요가 있다는 것이 단점이다. 이것은 스플라이싱 디바이스에 더 많은 작업 부하를 부가한다. 따라서, 어떠한 환경에서는, 온라인 또는 실제의(live) 스플라이싱을 위한 최상의 선택이 될 수 없다.
전술한 방법의 다른 실시예가 이제 기술된다.
스플라이싱 SEI 메시지의 구문이 표 2에 도시된다.
Splicing (payloadSize) { C Descripter
}
이 실시예에서, dpb_output_delay_offset은 송신되지 않고, 은연중에 도출된다.
스플라이싱 디바이스가 소스 스트림을 파싱할 필요가 없다는 것이 장점이다. dpb_output_delay_offset의 값은 디코더측에서 도출된다.
전술한 방법과 관련하여, HRD의 대응하는 동작이 이제 기술된다.
현재의 HRD와 비교하여, HRD 동작은 이하 기술되는 바와 같이, 스플라이싱된 스트림에 대해 변경된다.
인-포인트에서 픽처의 명목 제거 시간이 도출된다. 액세스 유닛이 인-포인트이면, cpb_removal_delay는, 픽처 타이밍 SEI 메시지와 관련된 액세스 유닛을 버퍼로부터 제거하기 전에 이전 액세스 유닛의 CPB로부터 제거 이후에 대기를 위해 얼마나 많은 클록이 똑딱거리는지를 특정한다.
cpb_removal_delay(ns)는 다음과 같이 도출된다.
cpb_removal_delay(ns) = Max(NumClockTS, Floor(initial_cpb_removal_delay[SchedSelldx] * 90000) + taf(ns - 1)- tr.n(ns - 1)) (1)
여기서 ns는 인-포인트이다.
이러한 도출은 수식 (C-15) 또는 (C-16)이 위반되지 않는다는 것을 보증한다.
cpb_removal_delay(ns) = NumClockTS이면, 연쇄는 심리스이고, 그렇지 않은 경우, 연쇄는 비-심리스가 된다는 것을 유의한다.
DPB 출력 시간은 스플라이싱 SEI 메시지로부터 도출된다.
스플라이싱된 스트림에서, 액세스 유닛의 DPB 출력 시간은 다음과 같이 도출된다.
to,dpb(n) = tr(n) + tc * (dpb_output_delay(n) + dpb_output_delay_offset(ns)) (2)
여기서, ns는 가장 가까운 이전의 인-포인트이다.
전술한 방법의 제1 실시예가 적용되면, dpb_output_delay_offset이 SEI 메시지 내의 구문 요소에 의해 전달된다.
dpb_output_delay_offset은 다음과 같이 스플라이싱 디바이스에 의해 도출된다.
dpb_output_delay_offset(ns) = max_initial_delay - dpb_output_delay(ns) (3)
여기서 max_initial_delay는 모든 인-포인트의 dpb_output_delay의 최대값 이상이다.
전술한 방법의 제2 실시예가 적용되면, dpb_output_delay_offset은 다음과 같이 도출된다. max_initial_delay를 0으로 초기화한다; 각각의 인-포인트에서, max_initial_delay < dpb_output_delay 이면, max_initial_delay = dpb_output_delay; dpb_output_delay_offset(ns) = max_initial_delay - dpb_output_delay(ns).
max_initial_delay가 모든 인-포인트의 dpb_output_delay의 최대값 이상인 값으로 초기화되면, 스플라이싱은 심리스가 된다는 것을 유의한다.
따라서, 현재의 HRD에 따르면, 스플라이싱된 스트림이 여전이 HRD 부합으로 된다는 보장이 없다.
이것은 다음과 같은 이유이다. 즉, 현재 표준에서의 cpb_removal_delay의 시맨틱(semantic)은 독립적인 코딩된 소스 스트림의 스플라이싱과 호환가능하지 않고, 상이한 소스 스트림 내의 미스매칭된 초기 DPB 출력 지연은 부정확한 출력 타이밍을 유발하고, initial_cpb_removal_delay는 수식 C-15/C-16의 위반을 유발하게 된다.
본 발명에 따르면, 비디오 스플라이싱을 지원하기 위해 현재의 HRD를 수정한다. 스플라이싱 포인트에서 새로운 SEI 메시지를 부가함으로써 스플라이싱된 스트림의 HRD 부합성을 보장하기 위한 솔루션이 제안된다. 현재의 HRD에 의해 발생하는 문제는 해결될 수 있고, 스트림 스플라이싱 동작은 단순화된다.
본 발명에 따른 비디오 스트림 스플라이싱을 위한 다른 방법이 이제 기술된다.
cpb_removal_delay 및 dpb_output_delay에 의해 유발되는 문제는 cpb_removal_delay 및 cpb_removal_delay를 최종 스플라이싱된 스트림에 대해 재연산하고, 스플라이싱된 스트림이 생성된 이후에 SEI 메시지의 버퍼링 구간 및 픽처 타이밍 SEI 메시지를 변경함으로써 해결될 수 있다.
그러나, 이 방법은 모든 소스 스트림의 시작에서 버퍼링 구간 SEI 메시지를 교체/변경하고, 스플라이싱 디바이스가 모든 픽처를 파싱할 것을 요구하는 거의 모든 픽처 타이밍 SEI 메시지를 교체/변경하는 것을 요구한다. 이 방법은 스플라이싱 디바이스에서 더 높은 복잡성을 요구하고, 실시간 비디오 스플라이싱 애플리케이션에서는 적합하지 않을 수 있다.
initial_cpb_removal_delay에 의해 유발되는 문제에 대한 솔루션은, 수식 C-15/C-16에서 강조되는 조건을 충족시키기 위해 버퍼링 구간 SEI 메시지 내의 initial_cpb_removal_delay의 값을 변경하기만 해서는 효과가 없다. initial_cpb_removal_delay를 감소시키면 버퍼 언더플로우를 유발할 수 있고, 다음 버퍼링 구간에서 수식 C-15/C-16의 새로운 위반이 될 수 있는 다음 픽처의 최종 도착 시간의 지연도 유발할 수 있다.
도 10으로 돌아가면, 제1 방법에 대응하는 예시적인 HRD 부합성 검증기(verifier)가 일반적으로 참조 번호(1000)으로 표시된다.
HRD 부합성 검증기(1000)는 CPB 도착의 제1 입력과 신호 통신하여 연결되는 제1 출력을 갖는 시퀀스 메시지 필터(1010) 및 제거 시간 컴퓨터(1050)를 포함한다. 픽처 및 버퍼링 메시지 필터(1020)의 출력은 CPB 도착 및 제거 시간 컴퓨터(1050)의 제2 입력과 신호 통신하여 연결된다. 픽처 크기 컴퓨터(1030)의 출력은 CPB 도착 및 제거 시간 컴퓨터(1050)의 제3 입력과 신호 통신하여 연결된다. 스플라이싱 메시지 필터(1040)의 출력은 CPB 도착 및 제거 시간 컴퓨터(1050)의 제4 입력과 신호 통신하여 연결된다.
CPB 도착 및 제거 시간 컴퓨터(1050)의 제1 출력은 제약 검사기(constraint checker)(1060)의 제1 입력과 신호 통신하여 연결된다. CPB 도착 및 제거 시간 컴퓨터(1050)의 제2 출력은 제약 검사기(1060)의 제2 입력과 신호 통신하여 연결된다. CPB 도착 및 제거 시간 컴퓨터(1050)의 제3 출력은 제약 검사기(1060)의 제3 입력과 신호 통신하여 연결된다.
시퀀스 메시지 필터(1010)의 제2 출력은 제약 검사기(1060)의 제4 입력과 신호 통신하여 연결된다.
시퀀스 메시지 필터(1010), 픽처 및 버퍼링 메시지 필터(1020), 픽처 크기픽처 크기0), 및 스플라이싱 메시지 필터(1040)의 각 입력은, 입력 비트스트림을 수신하기 위해, HRD 부합성 검증기(conformance verifier)(1000)로의 입력으로서 이용 가능하다.
제약 검사기(1060)의 출력은, 부합성 인디케이터(conformance indicator)를 출력하기 위해, HRD 부합성 검증기(1000)로의 출력으로서 이용 가능하다.
도 11A를 참조하면, 스플라이싱 SEI(Supplemental Enhancement Information) 메시지를 삽입하기 위한 일례의 방법이 통상 참조 번호(1100)로 표시된다.
본 방법(1100)은 판정 블록(1110)으로 제어를 넘겨주는 개시 블록(1105)을 포함한다. 판정 블록(1110)은 이 액세스 포인트가 인-포인트(in-point)인지의 여부를 판정한다. 인-포인트이면, 제어를 기능 블록(1115)으로 넘긴다. 인-포인트가 아니면, 제어를 종료 블록(1149)으로 넘긴다.
기능 블록(1115)은 dpb_output_offset(ns)을 (max_initial_delay-dpb_output_delay(ns))와 동일하게 설정하고, 제어를 기능 블록(1120)으로 넘긴다. 기능 블록(1120)은 스플라이싱 SEI 네트워크 추상 계층(network abstraction layer: NAL) 유닛을 비트스트림에 기록하고, 제어를 종료 블록(1149)으로 넘긴다.
도 11B를 참조하면, 스플라이싱 SEI 메시지를 삽입하기 위한 일례의 다른 방법이 통상 참조 번호(1150)로 표시된다.
본 방법(1150)은 판정 블록(1160)으로 제어를 넘기는 개시 블록(1155)을 포함한다. 판정 블록(1160)은 이 액세스 포인트가 인-포인트인지의 여부를 판정한다. 인-포인트이면, 제어를 기능 블록(1165)으로 넘긴다. 인-포인트가 아니면, 제어를 종료 블록(1199)으로 넘긴다.
기능 블록(1165)은 스플라이싱 SEI NAL 유닛을 비트스트림에 기록하고, 제어를 종료 블록(1199)으로 넘긴다.
도 12를 참조하면, 스플라이싱 SEI 메시지를 디코딩하기 위한 일례의 방법이 통상 참조 번호(1200)로 표시된다.
본 방법(1200)은 기능 블록(1210)으로 제어를 넘기는 개시 블록(1205)을 포함한다. 판정 블록(1210)은 비트스트림으로부터의 NAL 유닛을 판독하고, 제어를 판정 블록(1215)으로 넘긴다. 판정 블록(1215)은, NAL 유닛이 SEI 메시지인지의 여부를 판정한다. SEI 메시지이면, 제어를 기능 블록(1220)으로 넘긴다. SEI 메시지가 아니면, 제어를 기능 블록(1225)으로 넘긴다.
기능 블록(1220)은 액세스 포인트를 인-포인트 액세스 포인트로서 지정하고, 제어를 종료 블록(1299)으로 넘긴다.
기능 블록(1225)은 액세스 포인트가 인-포인트 액세스 포인트가 아니라고 지정하고, 제어를 종료 블록(1299)으로 넘긴다.
도 13을 참조하면, 정규 제거 시간 tr,n(n)을 유도하기 위한 일례의 방법이 통상 참조 번호(1300)로 표시된다.
본 방법(1300)은 판정 블록(1310)으로 제어를 넘기는 개시 블록(1305)을 포함한다. 판정 블록(1310)은 현재 액세스 유닛이 인-포인트 액세스 유닛인지의 여부를 판정한다. 인-포인트 액세스 유닛이면, 제어를 기능 블록(1315)으로 넘긴다. 인-포인트 액세스 유닛이 아니면, 제어를 기능 블록(1325)으로 넘긴다.
기능 블록(1315)은 cpb_removal_delay(ns)을 Max(DeltaTfiDivisor, Ceil((initial_cpb_removal_delay[SchedSelldx]*90000) + taf(ns-1) - tr,n(ns-1))*tc)와 동일하게 설정하고, 제어를 기능 블록(1320)으로 넘긴다. 기능 블록(1320)은 tr,n(n)을 tr,n(n-1) + tc * cpb_removal_delay(n)과 동일하게 설정하고, 제어를 종료 블록(1399)으로 넘긴다.
기능 블록(1325)은 비트스트림으로부터 cpb_removal_delay(n)을 판독하고, 제어를 기능 블록(1330)으로 넘긴다. 기능 블록(1330)은 tr,n(n)을 tr,n(nb) + tc * cpb_removal_delay(n)과 동일하게 설정하고, 제어를 종료 블록(1399)으로 넘긴다.
도 14A를 참조하면, DPB(decoded picture buffer) 출력 시간 to,dpb(n)을 유도하기 위한 일례의 방법이 통상 참조 번호(1400)로 표시된다.
본 방법(1400)은 판정 블록(1410)으로 제어를 넘기는 개시 블록(1405)을 포함한다. 판정 블록(1410)은 현재 액세스 유닛이 제1 액세스 유닛인지의 여부를 판정한다. 제1 액세스 유닛이면, 제어를 기능 블록(1415)으로 넘긴다. 제1 액세스 유닛이 아니면, 제어를 판정 블록(1420)으로 넘긴다.
기능 블록(1415)은 dpb_output_delay_offset(ns)을 0으로 설정하고, 제어를 판정 블록(1420)으로 넘긴다. 판정 블록(1420)은 현재 액세스 포인트가 인-포인트 액세스 포인트인지의 여부를 판정한다. 인-포인트 액세스 포인트이면, 제어를 기능 블록(1425)으로 넘긴다. 인-포인트 액세스 포인트가 아니면, 제어를 기능 블록(1430)으로 넘긴다.
기능 블록(1425)은 스플라이싱 SEI로부터 dpb_output_delay_offset(ns)을 판독하고, 제어를 기능 블록(1430)으로 넘긴다.
기능 블록(1430)은 to,dpb(n)을 tr(n) + tc * (dpb_output_delay(n) + dpb_output_delay_offset(ns))와 동일하게 설정하고, 제어를 종료 블록(1449)으로 넘긴다.
도 14B를 참조하면, DPB 출력 시간 to,dpb(n)을 유도하기 위한 다른 일례의 방법이 통상 참조 번호(1450)로 표시된다.
본 방법(1450)은 판정 블록(1460)으로 제어를 넘기는 개시 블록(1455)을 포함한다. 판정 블록(1460)은 현재 액세스 유닛이 제1 액세스 유닛인지의 여부를 판정한다. 제1 액세스 유닛이면, 제어를 기능 블록(1465)으로 넘긴다. 제1 액세스 유닛이 아니면, 제어를 판정 블록(1470)으로 넘긴다.
기능 블록(1465)은 max_initial_delay를 0으로 설정하며, dpb_output_delay_offset(ns)을 0으로 설정하고, 제어를 판정 블록(1470)으로 넘긴다.
판정 블록(1470)은 현재 액세스 유닛이 인-포인트 액세스 유닛인지의 여부를 판정한다. 인-포인트 액세스 유닛이면, 제어를 판정 블록(1475)으로 넘긴다. 인-포인트 액세스 유닛이 아니면, 제어를 기능 블록(1490)으로 넘긴다.
판정 블록(1475)은 max_initial_delay가 dpb_output_delay(n) 보다 작은지의 여부를 판정한다. max_initial_delay가 dpb_output_delay(n) 보다 작다면, 제어를 기능 블록(1480)으로 넘긴다. max_initial_delay가 dpb_output_delay(n) 이상이면, 제어를 기능 블록(1485)으로 넘긴다.
기능 블록(1480)은 max_initial_delay를 dpb_output_delay(n)과 동일하게 설정하고, 제어를 기능 블록(1485)으로 넘긴다.
기능 블록(1485)은 dpb_output_delay_offset(ns)을 max_initial_delay-dpb_output_delay(n)과 동일하게 설정하며, 제어를 기능 블록(1490)으로 넘긴다. 기능 블록(1490)은 to,dpb(n)을 tr(n) + tc * (dpb_output_delay(n) + dpb_output_delay_offset(ns))와 동일하게 설정하고, 제어를 종료 블록(1449)으로 넘긴다.
도 15A를 참조하면, SEI 메시지를 삽입하기 위한 일례의 방법이 통상 참조 번호(1500)로 표시된다.
본 방법(1500)은 판정 블록(1510)으로 제어를 넘기는 개시 블록(1505)을 포함한다. 판정 블록(1510)은 임의의 HRD 규칙을 위반했는지의 여부를 판정한다. 임의의 HRD 규칙을 위반했다면, 제어를 기능 블록(1520)으로 넘긴다. 임의의 HRD 규칙을 위반하지 않았으면, 제어를 종료 블록(1549)으로 넘긴다.
기능 블록(1520)은 cpb_removal_delay 및 dpb_output_delay에 대한 새로운 값을 계산하고, 제어를 기능 블록(1525)으로 넘긴다. 기능 블록(1525)은 픽처 타이밍 SEI 메시지를 교체하고, 제어를 기능 블록(1530)으로 넘긴다. 기능 블록(1530)은 initial_cpb_removal_delay 및 initial_cpb_removal_delay_offset에 대한 새로운 값을 계산하고, 제어를 기능 블록(1535)으로 넘긴다. 기능 블록(1535)은 버퍼링 구간 SEI 메시지를 교체하고, 제어를 종료 블록(1549)으로 넘긴다.
도 15B를 참조하면, SEI 메시지를 디코딩하기 위한 일례의 방법이 통상 참조 번호(1550)로 표시된다.
본 방법(1550)은 기능 블록(1560)으로 제어를 넘기는 개시 블록(1555)을 포함한다. 기능 블록(1560)은 새로운 픽처 타이밍 SEI 메시지로부터 변경된 cpb_removal_delay 및 dpb_output_delay를 판독하고, 제어를 기능 블록(1565)으로 넘긴다. 기능 블록(1565)은 새로운 버퍼링 구간 SEI 메시지로부터 변경된 initial_cpb_removal_delay 또는 initial_cpb_removal_delay_offset을 판독하고, 제어를 종료 블록(1599)으로 넘긴다.
도 16을 참조하면, 일례의 스플라이스 스트림 생성기가 통상 참조 번호(1600)로 도시된다. 스플라이스 스트림 생성기(1600)는, 비트스트림 1 내지 비트스트림 n을 수신하기 위해, 입력 1 내지 n을 갖는다. 스플라이스 스트림 생성기(1600)는, 스플라이싱된 비트스트림을 출력하기 위해 하나의 출력을 갖는다.
각 입력 비트스트림(1 내지 n)은 도 8의 인코더(800) 등의 인코더의 출력 비트스트림에 대응한다. 스플라이스 스트림 생성기(1600)에 의해 제공되는 출력 비트스트림은, 부합성(compliancy) 검사를 위한 도 10의 HRD 부합성 검증기(1000) 등의 HRD 검증기로의 입력, 및/또는 도 9의 디코더(900) 등의 디코더로의 입력이다.
도 17을 참조하면, 스플라이싱된 비디오 스트림을 생성하기 위한 일례의 방법이 통상 참조 번호(1700)로 표시된다.
본 방법(1700)은 기능 블록(1710)으로 제어를 넘기는 개시 블록(1705)을 포함한다. 기능 블록(1710)은 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 스트림의 액세스 유닛의 제거 시간을 계산한다. 상기 계산은, 이전 액세스 유닛의 제거 시간 및 시간 오프셋을 기초로 한다. 그 후, 제어를 기능 블록(1715)으로 넘긴다. 시간 오프셋은 픽처 타이밍 SEI 메시지의 cpb_removal_delay 필드에서 전달될 수 있거나/있으며, 스플라이싱된 비디오 스트림을 디코딩하는 대응 디코더에서 계산될 수 있다.
기능 블록(1715)은 액세스 유닛의 제거 시간 및 소정의 시간 오프셋에 기초하여 액세스 유닛의 출력 시간을 계산하고, 제어를 기능 블록(1720)으로 넘긴다. 소정의 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 동일할 수 있거나/있으며, 스플라이싱된 비디오 스트림을 디코딩하는 대응 디코더에서 계산될 수 있다. 다른 시간 오프셋은 max_initial_delay 구문 요소와 dpb_output_delay 구문 요소 간의 차와 동일할 수 있거나/있으며, SEI 메시지로 수신될 수 있거나/있으며, 스플라이싱된 비디오 스트림을 디코딩하는 대응 디코더에서 계산될 수도 있다.
기능 블록(1720)은 기능 블록(1710) 및 기능 블록(1715)에 의해 계산되는 등의, HRD 파라미터들을 이용하여 스플라이싱된 비디오 스트림을 생성하고, 제어를 기능 블록(1725)으로 넘긴다.
기능 블록(1725)은 대역 내 및/또는 대역 외에서의 스플라이싱된 비디오 스트림의 스플라이싱 위치를 나타내고, 제어를 종료 블록(1799)으로 넘긴다.
도 18을 참조하면, HRD 파라미터들을 이용하여 스플라이싱된 비디오 스트림을 재생하기 위한 일례의 방법이 통상 참조 번호(1800)로 표시된다.
본 방법(1800)은 기능 블록(1810)으로 제어를 넘기는 개시 블록(1805)을 포함한다. 기능 블록(1810)은 대역 내 및/또는 대역 외에서의 스플라이싱된 비디오 스트림의 스플라이싱 위치를 수신하고, 제어를 기능 블록(1815)으로 넘긴다.
기능 블록(1815)은, 이전 액세스 유닛의 제거 시간 및 시간 오프셋을 기초로 한 이전 계산으로부터, 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 스트림의 액세스 유닛의 제거 시간을 결정하고, 제어를 기능 블록(1820)으로 넘긴다. 시간 오프셋은 픽처 타이밍 SEI 메시지의 cpb_removal_delay 필드로부터 판정될 수 있거나/있으며, 스플라이싱된 비디오 스트림을 디코딩하는 대응 디코더에서 계산될 수 있다.
기능 블록(1820)은, 액세스 유닛의 제거 시간 및 소정의 시간 오프셋에 기초하는 이전의 계산으로부터, 액세스 유닛의 출력 시간을 결정하고, 제어를 기능 블록(1825)으로 넘긴다. 소정의 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 동일할 수 있거나/있으며, 스플라이싱된 비디오 스트림을 디코딩하는 대응 디코더에서 계산될 수 있다. 다른 시간 오프셋은 max_initial_delay 구문 요소와 dpb_output_delay 구문 요소 간의 차와 동일할 수 있거나/있으며, SEI 메시지로 수신될 수 있거나/있으며, 스플라이싱된 비디오 스트림을 디코딩하는 대응 디코더에서 계산될 수도 있다.
기능 블록(1825)은, 기능 블록(1815) 및 기능 블록(1820)에 의해 결정 및/또는 획득되는 바와 같은 HRD 파라미터들을 이용하여 스플라이싱된 비디오 스트림을 재생하고, 제어를 종료 블록(1899)으로 넘긴다.
도 19를 참조하면, 스플라이싱된 비디오 스트림을 생성하기 위한 다른 일례의 방법이 통상 참조 번호(1900)로 표시된다.
본 방법(1900)은 기능 블록(1910)으로 제어를 넘기는 개시 블록(1905)을 포함한다. 기능 블록(1910)은 개별적인 비트스트림들을 연결(concatenating)함으로써 스플라이싱된 비디오 스트림을 생성하고, 제어를 기능 블록(1915)으로 넘긴다.
기능 블록(1519)은, 스플라이싱된 비트스트림에 관련된 후속하는 디코더 버퍼 오버플로우 및 언더플로우를 방지하기 위해서, 스플라이싱된 비트스트림에서 HRD 파라미터 구문값(들)을 조정하고, 종료 블록(1999)으로 제어를 넘긴다.
도 20으로 넘어가서, 스플라이싱된 비디오 스트림을 재생하기 위한 다른 예시적인 방법은 일반적으로 참조 번호 2000으로 표시된다.
방법(2000)은, 제어를 기능 블록 2010으로 넘기는 개시 블록(2005)을 포함한다. 기능 블록(2010)은 스플라이싱된 비트스트림을 파싱하고 그로부터 추출된 HRD 파라미터들을 수신하고, 제어를 기능 블록(2015)로 넘긴다.
기능 블록(2015)는 HRD 부합성을 검증하고, 제어를 종료 블록(1999)으로 넘긴다.
본 발명의 다수의 부수적인 이점/특징 중의 일부가 기술될 것이며, 그 일부는 위에서 언급되었다. 예를 들면, 하나의 이점/특징은 HRD 파라미터를 이용하여 스플라이싱된 비디오 스트림을 생성하는 스플라이싱된 비디오 스트림 생성기를 포함하는 장치이다.
다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이고, 스플라이싱된 비디오 스트림에 대한 스플라이싱 위치는 대역 내 또는 대역 외에서 표시된다.
또 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 비디오 스트림에 대한 스플라이싱 위치는 상술한 바와 같이 대역 내 또는 대역 외에서 표시되고, 스플라이싱 위치는 NAL(Network Abstraction Layer) 유닛을 이용하여 표시된다.
또 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱 위치는 상술한 바와 같이 NAL 유닛을 이용하여 표시되고, NAL 유닛은 SEI 메시지 또는 스트림 NAL 유닛의 후단(end)이다.
더욱이, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 스트림이 형성된 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 제거 시간은 이전 액세스 유닛의 제거 시간과 시간 오프셋에 기초하여 계산된다.
또한, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 스트림이 형성된 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 제거 시간은, 상술한 바와 같이 이전 액세스 유닛의 제거 시간 및 시간 오프셋에 기초하여 계산되고, 시간 오프셋은 픽처 타이밍 SEI 메시지(picture timing supplemental enhancement information message) 내의 cpb_removal_delay 필드에서 전달된다.
또한, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 스트림이 형성된 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 출력 시간은 액세스 유닛의 제거 시간 및 시간 오프셋에 기초하여 계산된다.
부가적으로, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 출력 시간은 상술한 바와 같이 액세스 유닛의 제거 시간과 시간 오프셋에 기초하여 계산되고, 시간 오프셋은 스플라이싱된 비디오 스트림을 디코드하는 대응하는 디코더에서 계산된다.
더욱이, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 시간 오프셋은 상술한 바와 같이 스플라이싱된 비디오 스트림을 디코드하는 대응하는 디코더에서 계산되고, 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같고, dpb_output_delay 구문 요소는 픽처 타이밍 SEI 메시지에 위치한다.
또한, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같고, 상술한 바와 같이 dpb_output_delay 구문 요소는 픽처 타이밍 SEI 메시지에 위치하고, 다른 시간 오프셋은 스플라이싱된 비디오 스트림을 디코드하는 대응하는 디코더에서 계산된다.
또한, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이고, 다른 시간 오프셋은 상술한 바와 같이 스플라이싱된 비디오 스트림을 디코드하는 대응하는 디코더에서 계산되고, 다른 시간 오프셋은 max_initial_delay 구문 요소와 dpb_output_delay 구문 요소 사이의 차이와 같다.
부가적으로, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같으며, dpb_output_delay 구문 요소는 상술한 바와 같이 픽처 타이밍 SEI에 위치하며, 다른 시간 오프셋은 SEI 메시지에서 전달된다.
더욱이, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 다른 시간 오프셋은 상술한 바와 같이 SEI 메시지에서 전달되고, 다른 시간 오프셋은 max_initial_delay 구문 요소와 max_output_delay 구문 요소 사이의 차와 같다.
또한, 다른 이점/특징은, 고레벨 구문 요소에 관련된 적어도 하나의 HRD의 표준 값을 수정함으로써 스플라이싱된 비디오 스트림에 관련된 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림을 생성하는 스플라이싱된 비디오 스트림 생성기를 갖는 장치이다.
또한, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 고레벨 구문 요소에 관련된 적어도 하나의 HRD는 픽처 타이밍 SEI 메시지 내에 cpb_removal_delay 구문 요소를 포함한다.
부가적으로, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 고레벨의 구문 요소에 관련된 적어도 하나의 HRD는 픽처 타이밍 SEI 메시지 내에 dpb_output_delay 구문 요소를 포함한다.
더욱이, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 고레벨 구문 요소에 관련된 적어도 하나의 HRD는 버퍼링 구간 SEI 메시지 내에 initial_cpb_removal_delay 구문 요소를 포함한다.
또한, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 비디오 스트림 생성기(1600)는, ISO/IEC MPEG-4 Part 10 AVC 표준/ITU-T H.264 권고에 따른 비트스트림을 생성한다.
또한, 다른 이점/특징은 스플라이싱된 비디오 스트림에 대한 HRD 파라미터를 수신하고 HRD 파라미터를 이용하여 스플라이싱된 비디오 스트림을 재생하는 스플라이싱된 비디오 스트림 생성기를 갖는 장치이다.
부가적으로, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 비디오 스트림에 대한 스플라이싱 위치는 대역 내 또는 대역 외에서 표시된다.
더욱이, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 비디오 스트림에 대한 스플라이싱 위치는 상술한 바와 같이 대역 내 또는 대역 외에 표시되고, 스플라이싱 위치는 NAL(Network Abstraction Layer) 유닛을 이용하여 표시된다.
또한, 다른 이점/특징은, 슬플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 슬플라이싱 위치는 전술한 바와 같이 NAL 유닛을 이용하여 표시되며, NAL 유닛은 SEI 메시지 또는 NLA 유닛의 후단이다.
또한, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 스트림이 형성된 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 제거 시간은, 이전 액세스 유닛의 제거 시간과 시간 오프셋에 기초하여 계산된다.
부가적으로, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 스트림이 형성된 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 제거 시간은 상술한 바와 같이 이전 액세스 유닛의 제거 시간과 시간 오프셋에 기초하여 계산되고, 시간 오프셋은 픽처 타이밍 SEI 메시지 내의 cpb_removal_delay 필드에서 전달된다.
게다가, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 시간 오프셋은 상술한 바와 같이 픽처 타이밍 SEI 메시지 내의 cpb_removal_delay 필드에서 전달되고, 시간 오프셋은 스플라이싱된 비디오 스트림을 디코드하는 대응하는 디코더에서 계산된다.
또한, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 스트림이 형성된 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 출력 시간은 액세스 유닛의 제거 시간과 시간 오프셋에 기초하여 계산된다.
또한, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 스트림이 형성된 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 출력 시간은 상술한 바와 같이 액세스 유닛의 제거 시간과 시간 오프셋에 기초하여 계산되고, 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같고, dpb_output_delay 구문 요소는 픽처 타이밍 SEI 메시지에 위치한다.
부가적으로, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같고, dpb_output_delay 구문 요소는 상술한 바와 같이 픽처 타이밍 SEI 메시지에 위치하고, 다른 시간 오프셋은 스플라이싱된 비디오 스트림을 디코드하는 대응하는 디코더에서 계산된다.
더욱이, 다른 이점/특징은 스플라이싱된 비디오 생성기를 갖는 장치이며, 다른 시간 오프셋은 상술한 바와 같이 스플라이싱된 비디오 스트림을 디코드하는 대응하는 디코더에서 계산되고, 다른 시간 오프셋은 max_initial_delay 구문 요소와 dpb_output_delay 구문 요소 사이의 차이와 같다.
또한, 다른 이점/특징은 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같고, dpb_output_delay 구문 요소는 상술한 바와 같이 픽처 타이밍 SEI 메시지에 위치하고, 다른 시간 오프셋은 SEI 메시지에서 전달된다.
또한, 다른 이점/특징은 스플라이싱된 비디오 스트림을 갖는 장치이며, 다른 시간 오프셋은 상술한 바와 같이 SEI 메시지에서 전달되며, 다른 시간 오프셋은 max_initial_delay 구문 요소와 dpb_output_delay 구문 요소 사이의 차이와 같다.
부가적으로, 다른 이점/특징은, 적어도 하나의 HRD 관련된 고레벨 구문 요소의 수정된 표준값을 이용하여 스플라이싱된 비디오 스트림에 관한 디코더 버퍼 오버플로우 및 언더플로우를 방지하면서, 스플라이싱된 비디오 스트림에 대응하는 적어도 하나의 HRD 관련된 고레벨 구문 요소의 수정된 표준값을 수신하고 스플라이싱된 비디오 스트림을 재생하는 스플라이싱된 비디오 스트림 생성기를 갖는 장치이다.
더욱이, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 적어도 하나의 HRD 관련된 고레벨 구문 요소는 픽처 타이밍 SEI 메시지 내에 cpb_removal_delay 구문 요소를 포함한다.
또한, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 적어도 하나의 HRD 관련된 고레벨 구문 요소는 픽처 타이밍 SEI 메시지 내에 dpb_output_delay 구문 요소를 포함한다.
또한, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 적어도 하나의 HRD 관련된 고레벨 구문 요소는 버퍼링 구간 SEI 메시지 내에 initial_cpb_removal_delay 구문 요소를 포함한다.
부가적으로, 다른 이점/특징은 상술한 바와 같이 스플라이싱된 비디오 스트림 생성기를 갖는 장치이며, 스플라이싱된 비디오 스트림 생성기(1600)는 ISO/IEC MPEG-4 Part 10 AVC 표준/ITU-T H.264 권고에 따른 비트스트림을 생성한다.
본 발명의 이러한 특징 및 이점과 이외의 특징 및 이점은 본 명세서의 교시에 기초하여 당업자들에 의해서는 이미 확인될 수 있을 것이다. 본 발명의 교시는 하드웨어, 소프트웨어, 펌웨어, 특정 목적의 프로세서, 또는 그들의 조합의 다양한 형태로 구현될 수 있음이 이해된다.
가장 바람직하게는, 본 발명의 교시는 하드웨어와 소프트웨어의 조합으로서 구현된다. 더욱이, 소프트웨어는 프로그램 스토리지 유닛상에서 실체적으로 구현되는 애플리케이션 프로그램으로서 구현될 수 있다. 애플리케이션 프로그램은, 적절한 임의의 아키텍쳐를 포함하는 머신으로 업로드되고, 머신에 의해서 실행될 수 있다. 바람직하게는, 머신은, 하나 이상의 "CPU"(central processing units), "RAM"(random access memory), 및 "I/O"(input/output) 인터페이스와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현된다. 컴퓨터 플랫폼은 또한 동작 시스템 및 마이크로명령어 코드(microinstruction code)를 포함할 수 있다. 본 명세서에 기술된 다양한 프로세스 및 기능들은, CPU에 의해서 실행될 수 있는 마이크로명령어 코드의 일부 또는 애플리케이션 프로그램의 일부, 또는 그들의 조합일 수 있다. 또한, 다양한 다른 주변 유닛들은 부가 데이터 스토리지 유닛 및 프린팅 유닛과 같은 컴퓨터 플랫폼에 연결될 수 있다.
또한, 첨부한 도면에 기술된 구성 시스템 컴포넌트들 및 방법의 일부는 바람직하게는 소프트웨어로 구현되고, 시스템 컴포넌트들 또는 프로세스 기능 블록들 사이의 실제 연결은 본 원리가 프로그램되는 방식에 따라서 다를 수 있다는 것이 이해된다. 본 명세서에 교시가 주어지면, 당업자들은 본 원리의 이러한 구현 및 유사한 구현 또는 구성을 고려할 수 있을 것이다.
첨부한 도면을 참조하여 설명적인 실시예가 본 명세서에 기술되었지만, 본 원리는 자세한 실시예에 한정되지 않고, 본 원리의 범위 또는 취지로부터 벗어나지 않고 당업자에 의해서 다양한 변경 및 수정이 이뤄질 수 있음이 이해된다. 그러한 변경 및 수정은 첨부된 특허청구범위에 기술되는 바와 같이 본 원리의 범위에 포함되도록 한다.

Claims (76)

  1. 가상 참조 디코더(hypothetical reference decoder) 파라미터들을 이용하여, 스플라이싱된 비디오 스트림(spliced video stream)을 생성하는 스플라이싱된 비디오 스트림 생성기(1600)
    를 포함하는 장치.
  2. 제1항에 있어서,
    상기 스플라이싱된 비디오 스트림에 대한 스플라이싱 위치(splicing position)는 대역 내(in-band) 또는 대역 외(out-of-band)에 표시되는 장치.
  3. 제2항에 있어서,
    상기 스플라이싱 위치는 네트워크 추상 계층(network abstraction layer) 유닛을 이용하여 표시되는 장치.
  4. 제3항에 있어서,
    상기 네트워크 추상 계층 유닛은 부가 향상 정보(supplemental enhancement information) 메시지 또는 스트림 네트워크 추상 계층 유닛의 후단(end)인 장치.
  5. 제1항에 있어서,
    상기 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 제거 시간은, 이전(previous) 액세스 유닛의 제거 시간(removal time) 및 시간 오프셋(time offset)에 기초하여 계산되는 장치.
  6. 제5항에 있어서,
    상기 시간 오프셋은 픽처 타이밍(picture timing) 부가 향상 정보 메시지 내의 cpb_removal_delay 필드에서 전달되는 장치.
  7. 제1항에 있어서,
    상기 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 출력 시간은, 상기 액세스 유닛의 제거 시간 및 시간 오프셋에 기초하여 계산되는 장치.
  8. 제7항에 있어서,
    상기 시간 오프셋은 상기 스플라이싱된 비디오 스트림을 디코딩하는 해당 디코더에서 계산되는 장치.
  9. 제8항에 있어서,
    상기 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 동일하며, 상기 dpb_output_delay 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 배치되는 장치.
  10. 제9항에 있어서,
    상기 다른 시간 오프셋은 상기 스플라이싱된 비디오 스트림을 디코딩하는 해당 디코더에서 계산되는 장치.
  11. 제10항에 있어서,
    상기 다른 시간 오프셋은 max_initial_delay 구문 요소와 dpb_output_delay 구문 요소간의 차와 같은 장치.
  12. 제9항에 있어서,
    상기 다른 시간 오프셋은 부가 향상 정보 메시지에서 전달되는 장치.
  13. 제12항에 있어서,
    상기 다른 시간 오프셋은 max_initial_delay 구문 요소와 dpb_output_delay 구문 요소간의 차와 같은 장치.
  14. 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소의 표준 값들을 변경함으로써, 자신과 관련된 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림을 생성하는 스플라이싱된 비디오 스트림 생성기(1600)
    를 포함하는 장치.
  15. 제14항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는, 픽처 타이밍 부가 향상 정보 메시지 내에 cpb_removal_delay 구문 요소를 포함하는 장치.
  16. 제14항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 dpb_output_delay 구문 요소를 포함하는 장치.
  17. 제14항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 버퍼링 구간 부가 향상 정보 메시지 내에 initial_cpb_removal_delay 구문 요소를 포함하는 장치.
  18. 제14항에 있어서,
    상기 스플라이싱된 비디오 스트림 생성기(1600)는, ISO/IEC MPEG-4 파트 10 AVC 표준/ITU-T H.264 권고(International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation)에 따른 비트스트림들을 생성하는 장치.
  19. 가상 참조 디코더 파라미터들을 이용하여 스플라이싱된 비디오 스트림을 생성하는 단계(1720)
    를 포함하는 방법.
  20. 제19항에 있어서,
    상기 스플라이싱된 비디오 스트림에 대한 스플라이싱 위치가 대역 내 또는 대역 외에 표시되는(1220) 방법.
  21. 제20항에 있어서,
    상기 스플라이싱 위치는 네트워크 추상 계층 유닛을 이용하여 표시되는 방법.
  22. 제21항에 있어서,
    상기 네트워크 추상 계층 유닛은 부가 향상 정보 메시지 또는 스트림 네트워크 추상 계층 유닛의 후단인(1120, 1165, 1215) 방법.
  23. 제19항에 있어서,
    상기 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 제거 시간은, 이전 액세스 유닛의 제거 시간 및 시간 오프셋에 기초하여 계산되는(1320, 1330) 방법.
  24. 제23항에 있어서,
    상기 시간 오프셋은 픽처 타이밍 부가 향상 정보 메시지 내의 cpb_removal_delay 필드에서 전달되는(1325) 방법.
  25. 제24항에 있어서,
    상기 시간 오프셋은 상기 스플라이싱된 비디오 스트림을 디코딩하는 해당 디코더에서 계산되는(1315) 방법.
  26. 제19항에 있어서,
    상기 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 출력 시간은 상기 액세스 유닛의 제거 시간 및 시간 오프셋에 기초하여 계산되는(1430) 방법.
  27. 제26항에 있어서,
    상기 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같고, 상기 dpb_output_delay 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 배치되는(1430) 방법.
  28. 제27항에 있어서,
    상기 다른 시간 오프셋은 상기 스플라이싱된 비디오 스트림을 디코딩하는 해당 디코더에서 계산되는(1450) 방법.
  29. 제28항에 있어서,
    상기 다른 시간 오프셋은 max_initial_delay 구문 요소와 dpb_output_delay 구문 요소간의 차와 같은(1485) 방법.
  30. 제27항에 있어서,
    상기 다른 시간 오프셋은 부가 향상 정보 메시지에서 전달되는(1120, 1425) 방법.
  31. 제30항에 있어서,
    상기 다른 시간 오프셋은 max_initial_delay 구문 요소와 상기 dpb_output_delay 구문 요소간의 차와 같은(1115) 방법.
  32. 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소의 표준 값들을 변경함으로써, 자신과 관련된 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림을 생성하는 단계(1910, 1915)
    를 포함하는 방법.
  33. 제32항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 cpb_removal_delay 구문 요소를 포함하는(1520) 방법.
  34. 제32항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 dpb_output_delay 구문 요소를 포함하는(1520) 방법.
  35. 제32항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 버퍼링 구간 부가 향상 정보 메시지 내에 intial_cpb_removal_delay 구문 요소를 포함하는(1530) 방법.
  36. 제32항에 있어서,
    상기 스플라이싱된 비트스트림은, ISO/IEC MPEG-4 파트 10 AVC 표준/ITU-T H.264 권고에 따라 생성되는 방법.
  37. 스플라이싱된 비디오 스트림에 대한 가상 참조 디코더 파라미터들을 수신하고, 상기 가상 참조 디코더 파라미터들을 이용하여 상기 스플라이싱된 비디오 스트림을 재생하는 스플라이싱된 비디오 스트림 생성기(1600)를 포함하는 장치.
  38. 제37항에 있어서,
    상기 스플라이싱된 비디오 스트림에 대한 스플라이싱 위치는 대역 내 또는 대역 외에 표시되는 장치.
  39. 제38항에 있어서,
    상기 스플라이싱 위치는 네트워크 추상 계층 유닛을 이용하여 표시되는 장치.
  40. 제39항에 있어서,
    상기 네트워크 추상 계층 유닛은 부가 향상 정보 메시지 또는 스트림 네트워크 추상 계층 유닛의 후단인 장치.
  41. 제37항에 있어서,
    상기 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 제거 시간은, 이전 액세스 유닛의 제거 시간 및 시간 오프셋에 기초하여 계산되는 장치.
  42. 제41항에 있어서,
    상기 시간 오프셋은 픽처 타이밍 부가 향상 정보 메시지 내의 cpb_removal_delay 필드에서 전달되는 장치.
  43. 제42항에 있어서,
    상기 시간 오프셋은 상기 스플라이싱된 비디오 스트림을 디코딩하는 해당 디코더에서 계산되는 장치.
  44. 제37항에 있어서,
    상기 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 출력 시간은, 상기 액세스 유닛의 제거 시간 및 시간 오프셋에 기초하여 계산되는 장치.
  45. 제44항에 있어서,
    상기 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같고, 상기 dpb_output_delay 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 배치되는 장치.
  46. 제45항에 있어서,
    상기 다른 시간 오프셋은 상기 스플라이싱된 비디오 스트림을 디코딩하는 해당 디코더에서 계산되는 장치.
  47. 제46항에 있어서,
    상기 다른 시간 오프셋은 max_initial_delay 구문 요소와 상기 dpb_output_delay 구문 요소간의 차와 같은 장치.
  48. 제45항에 있어서,
    상기 다른 시간 오프셋은 부가 향상 정보 메시지에서 전달되는 장치.
  49. 제48항에 있어서,
    상기 다른 시간 오프셋은 max_initial_delay 구문 요소와 상기 dpb_output_delay 구문 요소간의 차와 같은 장치.
  50. 스플라이싱된 비디오 스트림에 대응하는 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소의 변경된 표준 값들을 수신하고, 상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소의 변경된 표준 값들을 이용하여, 상기 스플라이싱된 비디오 스트림을, 상기 스플라이싱된 비디오 스트림과 관련된 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하면서 재생하는 스플라이싱된 비디오 스트림 생성기(1600)
    를 포함하는 장치.
  51. 제50항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 cpb_removal_delay 구문 요소를 포함하는 장치.
  52. 제50항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 dpb_output_delay 구문 요소를 포함하는 장치.
  53. 제50항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 버퍼링 구간 부가 향상 정보 메시지 내에 initial_cpb_removal_delay 구문 요소를 포함하는 장치.
  54. 제50항에 있어서,
    상기 스플라이싱된 비디오 스트림 생성기(1600)는, ISO/IEC MPEG-4 파트 10 AVC 표준/ITU-T H.264 권고에 따른 비트스트림들을 생성하는 장치.
  55. 스플라이싱된 비디오 스트림에 대한 가상 참조 디코더 파라미터들을 수신하는 단계와,
    상기 가상 참조 디코더 파라미터들을 이용하여, 상기 스플라이싱된 비디오 스트림을 재생하는 단계(1825)
    를 포함하는 방법.
  56. 제55항에 있어서,
    상기 스플라이싱된 비디오 스트림에 대한 스플라이싱 위치는 대역 내 또는 대역 외에 표시되는(1200) 방법.
  57. 제56항에 있어서,
    상기 스플라이싱 위치는 네트워크 추상 계층 유닛을 이용하여 표시되는 방법.
  58. 제57항에 있어서,
    상기 네트워크 추상 계층 유닛은 부가 향상 정보 메시지 또는 스트림 네트워크 추상 계층 유닛의 후단인 방법.
  59. 제55항에 있어서,
    상기 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 제거 시간은, 이전 액세스 유닛의 제거 시간 및 시간 오프셋에 기초하여 계산되는(1320, 1330) 방법.
  60. 제59항에 있어서,
    상시 시간 오프셋은 픽처 타이밍 부가 향상 정보 메시지 내의 cpb_removal_delay 필드에서 수신되는 방법.
  61. 제60항에 있어서,
    상기 시간 오프셋은 상기 스플라이싱된 비디오 스트림을 디코딩하는 해당 디코더에서 계산되는(1315) 방법.
  62. 제55항에 있어서,
    상기 스플라이싱된 스트림을 형성하는 적어도 2개의 스트림들 중 적어도 하나의 액세스 유닛의 출력 시간이, 상기 액세스 유닛의 제거 시간과 시간 오프셋에 기초하여 계산되는(1430) 방법.
  63. 제62항에 있어서,
    상기 시간 오프셋은 dpb_output_delay 구문 요소와 다른 시간 오프셋의 합과 같고, 상기 dpb_output_delay 구문 요소는 픽처 타이밍 부가 향상 정보 메시지로부터 결정되는(1430) 방법.
  64. 제63항에 있어서,
    상기 다른 시간 오프셋은 상기 스플라이싱된 비디오 스트림을 디코딩하는 해당 디코더에서 계산되는(1450) 방법.
  65. 제64항에 있어서,
    상기 다른 시간 오프셋은 max_initial_delay 구문 요소와 상기 dpb_output_delay 구문 요소간의 차와 같은(1485) 방법.
  66. 제63항에 있어서,
    상기 다른 시간 오프셋은 부가 향상 정보 메시지로부터 결정되는(1120, 1425) 방법.
  67. 제66항에 있어서,
    상기 다른 시간 오프셋은 max_initial_delay 구문 요소와 상기 dpb_output_delay 구문 요소간의 차와 같은(1115) 방법.
  68. 스플라이싱된 비디오 스트림에 대응하는 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소의 변경된 표준 값들을 수신하는 단계(2010)와,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소의 변경된 표준 값들을 이용하여, 상기 스플라이싱된 비디오 스트림을, 상기 스플라이싱된 비디오 스트림과 관련된 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하면서 재생하는 단계(2015)
    를 포함하는 방법.
  69. 제68항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 cpb_removal_delay 구문 요소를 포함하는(1560) 방법.
  70. 제68항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 픽처 타이밍 부가 향상 정보 메시지 내에 dpb_output_delay 구문 요소를 포함하는(1560) 방법.
  71. 제68항에 있어서,
    상기 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소는 버퍼링 구간 부가 향상 정보 메시지 내에 initial_cpb_removal_delay 구문 요소를 포함하는(1565) 방법.
  72. 제68항에 있어서,
    상기 스플라이싱된 비디오 스트림은, ISO/IEC MPEG-4 파트 10 AVC 표준/ITU-T H.264 권고에 따라 재생되는 방법.
  73. 비디오 인코딩을 위한 비디오 신호 구조로서,
    자신과 관련된 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림을 포함하고,
    상기 스플라이싱된 비디오 스트림은 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소의 표준 값들을 변경함으로써 생성되는, 비디오 인코딩을 위한 비디오 신호 구조.
  74. 인코딩된 비디오 신호 데이터를 갖는 저장 매체로서,
    자신과 관련된 디코더 버퍼 오버플로우 및 언더플로우 상태들을 방지하는 스플라이싱된 비디오 스트림을 포함하고,
    상기 스플라이싱된 비디오 스트림은 적어도 하나의 가상 참조 디코더 관련 고레벨 구문 요소의 표준 값들을 변경하여 생성되는 저장 매체.
  75. 비디오 인코딩을 위한 비디오 신호 구조로서,
    가상 참조 디코더 파라미터들를 사용하여 생성된 스플라이싱된 비디오 스트림
    을 포함하는, 비디오 인코딩을 위한 비디오 신호 구조.
  76. 인코딩된 비디오 신호 데이터를 갖는 저장 매체로서,
    가상 참조 디코더 파라미터들을 이용하여 생성된 스플라이싱된 비디오 스트림
    을 포함하는 저장 매체.
KR1020097014221A 2007-01-08 2008-01-07 비디오 스트림 스플라이싱을 위한 방법 및 장치 KR101455161B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US88385207P 2007-01-08 2007-01-08
US60/883,852 2007-01-08
PCT/US2008/000187 WO2008085935A1 (en) 2007-01-08 2008-01-07 Methods and apparatus for video stream splicing

Publications (2)

Publication Number Publication Date
KR20090101457A true KR20090101457A (ko) 2009-09-28
KR101455161B1 KR101455161B1 (ko) 2014-10-28

Family

ID=39461914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097014221A KR101455161B1 (ko) 2007-01-08 2008-01-07 비디오 스트림 스플라이싱을 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US20100074340A1 (ko)
EP (1) EP2123044A1 (ko)
JP (1) JP5114495B2 (ko)
KR (1) KR101455161B1 (ko)
CN (2) CN101606389B (ko)
WO (1) WO2008085935A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460443B1 (ko) * 2012-07-02 2014-11-11 후지쯔 가부시끼가이샤 동화상 부호화 장치, 동화상 복호 장치, 동화상 부호화 방법 및 동화상 복호 방법

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8155207B2 (en) * 2008-01-09 2012-04-10 Cisco Technology, Inc. Processing and managing pictures at the concatenation of two video streams
US8875199B2 (en) 2006-11-13 2014-10-28 Cisco Technology, Inc. Indicating picture usefulness for playback optimization
US8958486B2 (en) 2007-07-31 2015-02-17 Cisco Technology, Inc. Simultaneous processing of media and redundancy streams for mitigating impairments
US8804845B2 (en) 2007-07-31 2014-08-12 Cisco Technology, Inc. Non-enhancing media redundancy coding for mitigating transmission impairments
US8718388B2 (en) 2007-12-11 2014-05-06 Cisco Technology, Inc. Video processing with tiered interdependencies of pictures
US8345774B2 (en) * 2008-01-11 2013-01-01 Apple Inc. Hypothetical reference decoder
US20100118941A1 (en) * 2008-04-28 2010-05-13 Nds Limited Frame accurate switching
WO2009152450A1 (en) 2008-06-12 2009-12-17 Cisco Technology, Inc. Picture interdependencies signals in context of mmco to assist stream manipulation
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
WO2010021665A1 (en) * 2008-08-20 2010-02-25 Thomson Licensing Hypothetical reference decoder
ES2546091T3 (es) * 2008-11-12 2015-09-18 Cisco Technology, Inc. Procesamiento de un programa de vídeo que tiene representaciones procesadas plurales de una señal de vídeo única para reconstrucción y emisión
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
EP2472866A1 (en) 2011-01-04 2012-07-04 Alcatel Lucent Method for providing an HTTP adaptive streaming service
SG10201408609SA (en) * 2011-06-30 2015-02-27 Microsoft Technology Licensing Llc Reducing latency in video encoding and decoding
US9420307B2 (en) 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
US9264717B2 (en) 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
US9565431B2 (en) * 2012-04-04 2017-02-07 Qualcomm Incorporated Low-delay video buffering in video coding
JP6019824B2 (ja) * 2012-07-02 2016-11-02 富士通株式会社 動画像符号化装置及び動画像符号化方法ならびに動画像符号化用コンピュータプログラム
US9479774B2 (en) * 2012-09-24 2016-10-25 Qualcomm Incorporated Buffering period and recovery point supplemental enhancement information messages
US8989508B2 (en) * 2012-09-28 2015-03-24 Sharp Kabushiki Kaisha Electronic device for signaling a sub-picture buffer parameter
CN103959796B (zh) * 2012-09-29 2017-11-17 华为技术有限公司 数字视频码流的解码方法拼接方法和装置
JP6094126B2 (ja) * 2012-10-01 2017-03-15 富士通株式会社 動画像復号装置
US9154785B2 (en) 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
US9661341B2 (en) 2013-01-07 2017-05-23 Microsoft Technology Licensing, Llc Syntax and semantics for buffering information to simplify video splicing
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
KR102383006B1 (ko) * 2013-04-07 2022-04-04 돌비 인터네셔널 에이비 출력 계층 세트들에서의 시그널링 변경
CN104519370B (zh) * 2013-09-29 2018-06-08 中国电信股份有限公司 一种视频流的拼接方法和系统
EP3591980A1 (en) 2013-10-11 2020-01-08 SONY Corporation Reception device and reception method of video streams with changing frame rates
CN106063275B (zh) 2014-03-07 2020-05-19 索尼公司 图像编码装置和方法及图像处理装置和方法
US10187650B2 (en) 2014-06-17 2019-01-22 Stmicroelectronics International N.V. Video encoders/decoders and video encoding/decoding methods for video surveillance applications
CN104778957B (zh) * 2015-03-20 2018-03-02 广东欧珀移动通信有限公司 一种歌曲音频处理的方法及装置
US20170332096A1 (en) * 2016-05-11 2017-11-16 Advanced Micro Devices, Inc. System and method for dynamically stitching video streams
JP6202140B2 (ja) * 2016-05-30 2017-09-27 富士通株式会社 動画像符号化装置
JP6202141B2 (ja) * 2016-05-30 2017-09-27 富士通株式会社 動画像符号化復号システム
CN106210560A (zh) * 2016-07-17 2016-12-07 合肥赑歌数据科技有限公司 基于流形的视频拼接方法
JP6399189B2 (ja) * 2017-10-11 2018-10-03 富士通株式会社 動画像符号化方法
CN111294644B (zh) * 2018-12-07 2021-06-25 腾讯科技(深圳)有限公司 视频拼接方法、装置、电子设备及计算机可读存储介质
WO2020159198A1 (ko) 2019-01-28 2020-08-06 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN110164242B (zh) * 2019-06-04 2020-12-08 平顶山学院 一种声乐演唱模拟训练平台
EP4028994A4 (en) * 2019-10-07 2023-01-18 Huawei Technologies Co., Ltd. VIDEO-BASED POINT CLOUD COMPRESSION (V-PCC) COMPONENT SYNCHRONIZATION
WO2021072131A1 (en) 2019-10-09 2021-04-15 Sony Corporation Synchronization of decoded frames before point cloud reconstruction
US20230101262A1 (en) * 2021-09-29 2023-03-30 At&T Intellectual Property I, L.P. Application-level network slicing for high quality of experience

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3721972B2 (ja) * 2000-09-27 2005-11-30 日本ビクター株式会社 Mpeg画像データ記録方法
EP1442854B1 (en) * 2001-10-29 2008-09-03 Shinji Gotou Recycled lumber producing method
JP4875285B2 (ja) * 2002-04-26 2012-02-15 ソニー株式会社 編集装置および方法
US7532670B2 (en) * 2002-07-02 2009-05-12 Conexant Systems, Inc. Hypothetical reference decoder with low start-up delays for compressed image and video
JP3534742B1 (ja) * 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
JP2004193687A (ja) * 2002-12-06 2004-07-08 Sony Corp 非初期化バッファモデルを用いた方法
US7317404B2 (en) * 2004-01-14 2008-01-08 Itron, Inc. Method and apparatus for collecting and displaying consumption data from a meter reading system
EP1704720A1 (en) * 2004-01-16 2006-09-27 General Instrument Corporation Method, protocol, and apparatus for transporting advanced video coding content
US7826536B2 (en) * 2005-12-29 2010-11-02 Nokia Corporation Tune in time reduction

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460443B1 (ko) * 2012-07-02 2014-11-11 후지쯔 가부시끼가이샤 동화상 부호화 장치, 동화상 복호 장치, 동화상 부호화 방법 및 동화상 복호 방법
KR101526137B1 (ko) * 2012-07-02 2015-06-04 후지쯔 가부시끼가이샤 동화상 부호화 장치 및 동화상 복호 장치
KR20150104068A (ko) * 2012-07-02 2015-09-14 후지쯔 가부시끼가이샤 동화상 부호화 장치, 동화상 복호 장치, 동화상 부호화 방법 및 동화상 복호 방법
US9392276B2 (en) 2012-07-02 2016-07-12 Fujitsu Limited Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
US9438924B2 (en) 2012-07-02 2016-09-06 Fujitsu Limited Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
US9712838B2 (en) 2012-07-02 2017-07-18 Fujitsu Limited Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
US9716896B2 (en) 2012-07-02 2017-07-25 Fujitsu Limited Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
KR101878537B1 (ko) * 2012-07-02 2018-07-13 후지쯔 가부시끼가이샤 동화상 부호화 장치, 동화상 복호 장치, 동화상 부호화 방법 및 동화상 복호 방법
US10070144B2 (en) 2012-07-02 2018-09-04 Fujitsu Limited Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method

Also Published As

Publication number Publication date
CN101606389B (zh) 2013-06-12
EP2123044A1 (en) 2009-11-25
CN102984544A (zh) 2013-03-20
CN101606389A (zh) 2009-12-16
JP5114495B2 (ja) 2013-01-09
US20100074340A1 (en) 2010-03-25
KR101455161B1 (ko) 2014-10-28
WO2008085935A1 (en) 2008-07-17
JP2010516103A (ja) 2010-05-13

Similar Documents

Publication Publication Date Title
KR101455161B1 (ko) 비디오 스트림 스플라이싱을 위한 방법 및 장치
US20200177907A1 (en) Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
US9392276B2 (en) Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
JP2010232720A (ja) 画像符号化方法および画像復号化方法
US8724710B2 (en) Method and apparatus for video encoding with hypothetical reference decoder compliant bit allocation
JP2004193687A (ja) 非初期化バッファモデルを用いた方法
JP5201201B2 (ja) 復号装置及び復号方法
JP2008125120A (ja) 符号化装置

Legal Events

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