[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100837322B1 - 인코더 및 디코더 버퍼의 사이즈 조정 방법, 장치 및 저장매체 - Google Patents

인코더 및 디코더 버퍼의 사이즈 조정 방법, 장치 및 저장매체 Download PDF

Info

Publication number
KR100837322B1
KR100837322B1 KR1020067018600A KR20067018600A KR100837322B1 KR 100837322 B1 KR100837322 B1 KR 100837322B1 KR 1020067018600 A KR1020067018600 A KR 1020067018600A KR 20067018600 A KR20067018600 A KR 20067018600A KR 100837322 B1 KR100837322 B1 KR 100837322B1
Authority
KR
South Korea
Prior art keywords
buffer
pictures
decoding
size
decoder
Prior art date
Application number
KR1020067018600A
Other languages
English (en)
Other versions
KR20060116245A (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 KR20060116245A publication Critical patent/KR20060116245A/ko
Application granted granted Critical
Publication of KR100837322B1 publication Critical patent/KR100837322B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission 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/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 인코딩된 화상들을 버퍼링하는 방법에 관한 것이다. 이 방법은 인코더에서 인코딩된 화상들을 형성하는 인코딩 단계를 포함한다. 또한 이 방법은 인코딩 화상들을 전송 유닛들로서 디코더로 전송하는 전송 단계, 디코더로 전송된 r 전송 유닛들을 버퍼에서 버퍼링하는 버퍼링 단계, 및 인코딩 화상들을 디코딩하여 디코딩 화상들을 형성하는 디코딩 단계 역시 포함한다. 버퍼 사이즈는, 적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록, 규정된다.

Description

인코더 및 디코더 버퍼의 사이즈 조정{Resizing of buffer in encoder and decoder}
본 발명은 부호화된 화상들을 버퍼링하기 위한 방법에 관한 것으로서, 이 방법은 인코더에서 부호화된 화상들을 형성하는 인코딩 단계, 상기 부호화된 화상들을 디코더로 전송하는 전송 단계, 부호화된 화상들을 복호화하여 복호화된 화상들을 형성하는 디코딩 단계, 및 복호화된 화상들을 디코딩 순서로 정렬하는 재배열 단계를 포함한다. 본 발명은 시스템, 전송 장치, 수신 장치, 인코더, 디코더, 전자 기기, 소프트웨어 프로그램, 및 저장 매체와도 관련이 있다.
공개된 비디오 코딩 규격들에는 ITU-T H.261, ITU-T H.263, ISO/IEC MPEG-1, ISO/IEC MPEG-2, 및 ISO/IEC MPEG-4 Part 2가 포함된다. 이러한 규격들은 여기서 통상적 비디오 코딩 규격들로서 언급될 것이다.
비디오 통신 시스템
비디오 통신 시스템들은 대화형(conversational) 및 비대화형 시스템들로 나뉠 수 있다. 대화형 시스템들에는 화상 회의 및 화상 전화가 포함된다. 그러한 시스템들의 예들에, 각각 ISDN, IP 및 PSTN 네트워크들에서 작동하는 화상 회의/전화 시스템을 특정하는 ITU-T 권고안 H.320, H.323, 및 H.324가 포함된다. 대화형 시스템들은, 사용자 경험을 향상시키기 위해 (오디오-비디오 포획에서부터 원단(far-end) 오디오-비디오 프레젠테이션까지의) 단대단(end-to-end) 지연을 최소화한다는 취지를 특징으로 한다.
비대화형 시스템들에는 DVD (Digital Versatile Disk)들이나 재생 장치의 대용량 메모리에 저장되는 비디오 파일들같이 저장된 콘텐츠의 재생, 디지털 TV, 및 스트리밍이 포함된다. 이 기술 영역들에서 가장 중요한 규격을 간단히 검토하면 아래와 같다.
오늘날의 디지털 비디오 소비자 가전의 지배적 표준은, MPEG-2로서, 이것은 비디오 압축, 오디오 압축, 저장 및 전송(transport)을 포함한다. 부호화된 비디오의 저장 및 전송은 기초 스트림 (elementary stream)이라는 개념에 기반한다. 기초 스트림은 한 소스로부터의 부호화된 데이터 (가령 비디오)와, 동기, 식별 및 소스 정보의 특성화에 필요한 보조 데이터로 이뤄진다. 기초 스트림은 일정한 길이 또는 가변 길이의 패킷들로 패킷화 되어 패킷화된 기초 스트림 (PES, Packetized Elementary Stream)을 형성한다. 각각의 PES 패킷은 헤더 및, 그에 뒤이어 오는 페이로드(payload)라 불리는 스트림 데이터로 이뤄진다. 다양한 기초 스트림들로부터의 PES 패킷들이 합해져서 프로그램 스트림 (PS) 또는 전송 스트림 (TS)을 이룬다. PS는 저장 후 재생 (stroe-and-play) 타입의 어플리케이션들 같이 무시해도 되는 전송 에러들을 갖는 어플리케이션들을 위한 것이다. TS는 전송 에러들에 민감한 어플리케이션들을 겨냥한 것이다. 그러나, TS는 네트워크 처리용량(throughput)이 일정하게 보장된다는 것을 전제로 한다.
ITU-T 및 ISO/IEC의 합동 비디오 팀 (JVT)에 의해 규격화 시도가 이뤄지고 있다. JVT의 작업은 H.26L로 불리는 ITU-T의 앞선 규격화 프로젝트에 기반하고 있다. JVT 규격화의 목적은 ITU-T 권고안 H.264 및 ISO/IEC 국제 규격 14496-10 (MPEG-4 Part 10)과 동일한 표준 텍스트를 유포하는 것이다. 규격 초안을 이 명세서에서는 JVT 코딩 규격이라 칭하며, 그 규격 초안에 따른 코덱을 JVT 코덱이라 부른다.
코덱 사양 자체가 비디오 코딩 계층 (VCL) 및 네트워크 추상 계층(NAL) 사이를 개념적으로 구별한다. VCL은 코덱의 신호 처리 기능, 변환, 양자화, 모션 서치/보상, 및 루프 필터와 같은 것들을 포함한다. 그것은 오늘날의 비디오 코덱들 대다수, 모션 보상을 통한 화상 간 (inter-picture) 예측을 이용하는 매크로블록 기반 코더, 및 나머지 신호의 변환 코딩의 일반적 개념을 따른다. VCL의 출력이 슬라이스(slice)들이다: 소정 정수 개의 매크로블록들로 된 매크로블록 데이터를 포함하는 비트 스트링, 및 (슬라이스의 최초 매크로블록의 공간적 어드레스, 초기 양자화 파라미터, 및 이와 유사한 것을 포함하는) 슬라이스 헤더 정보. 슬라이스들 내 매크로블록들은 다른 매크로블록 배치가 특정되지 않는 한, 소위 융통성 있는 매크로블록 배치 (Flexible Macroblock Ordering) 신택스를 이용해 스캔 순서로서 정렬된다. 화상 내 (in-picture) 예측은 한 슬라이스 안에서만 행해진다.
NAL은 VCL의 슬라이스 출력을, 패킷 네트워크를 통한 전송 또는 패킷 지향 멀티플렉스 환경에서의 사용에 적합한, 네트워크 요약 계층 유닛(NALU, Network Abstraction Layer Unit)들로 캡슐화한다. JVT의 부록 B는 바이트-스트림 지향 네 트워크들을 통해 상기 NALU들을 전송하기 위한 캡슐화 프로세스를 정의한다.
H.263의 옵션인 참조 화상 선택 및 MPEG-4 Part 2의 NEWPRED 코딩 툴이 각 화상 세그먼트당, 가령, H.263의 각 슬라이스당 모션 보상을 위한 기준 프레임의 선택을 행할 수 있다. 게다가, H.263의 옵션인 인핸스드 참조 화상 선택 (Enhanced Refernece Picture Selection) 모드 및 JVT 코딩 규격이 각 매크로블록에 대한 기준 프레임의 선택을 별도로 행할 수 있다.
참조 화상 선택은 여러 타입의 시간적 확장(scalability) 방식들을 가능하게 할 수 있다. 도 1은 여기서 재귀적(recursive) 시간 확장성으로 불리는 시간 확장 방식의 한 예를 보인다. 여기서 예로 든 방식은 세 가지 일정한 프레임 레이트로서 디코딩될 수 있다. 도 2는 비디오 중복 코딩 (Video Redundancy Coding)이라 불리는 방식을 도시한 것으로, 여기서, 인터리빙 방식을 통해 화상들의 시퀀스가 둘 이상의 독립적으로 코딩되는 스레드(thread)들로 나눠진다. 이 도면 및 이어지는 다음 도면들에서 화살표는 모션 보상의 방향을 가리키며, 프레임들 아래의 값들은 프레임들에 대한 상대적 포획 및 디스플레이 시간들에 해당한다.
파라미터 집합 개념 (Parameter Set Concept)
JVT 코덱의 매우 기본적인 설계 개념 하나가, 개별 역량 (self-contained) 패킷들을 발생하여, 헤더 복제 같은 메커니즘들을 필요 없게 만드는 것이다. 이러한 것을 달성하기 위한 방법은 둘 이상의 슬라이스와 관련된 정보를 미디어 스트림으로부터 분리시키는 것이다. 이러한 상위 계층 메타 정보는, 슬라이스 패킷들을 포함하는 RTP 패킷 스트림으로부터 확실하고 비동기적이며 미리 보내져야 한다. 이 정보는 또한 그러한 목적에 알맞은 대역 외 (out-of-band) 전송 채널을 갖지 못한 어플리케이션들에서 대역 내 (in-band)로 전송될 수도 있다. 상위 레벨 파라미터들의 결합을 파라미터 집합 (Parameter Set)이라 부른다. 파라미터 집합은 화상 사이즈, 디스플레이 윈도, 사용된 코딩 모드 옵션들, 매크로블록 배치 맵, 및 기타 등의 정보를 포함한다.
파라미터 집합 갱신치들을 슬라이스 패킷 스트림에 동기하여 전송할 필요 없이 (화상 사이즈 등의) 화상 파라미터들을 변경할 수 있기 위해, 인코더 및 디코더는 둘 이상의 파라미터 집합의 리스트를 보유할 수 있다. 각각의 슬라이스 헤더마다 사용될 파라미터 집합을 가리키는 코드워드를 포함한다.
이러한 메커니즘이 패킷 스트림으로부터 파라미터 집합들의 전송을 분리 가능하게 하고, 사양 교환의 부수적 효과와 같은 것으로서 외부 수단이나 (신뢰할 수 있거나 신뢰할 수 없는) 제어 프로토콜을 통해 파라미터 집합들을 전송할 수 있게 한다. 이들이 절대 전송되지 않지만 어떤 어플리케이션 설계 사양에 의해 고정될 수도 있다.
전송 순서
통상적 비디오 코딩 규격들에서, 화상들의 디코딩 순서는 B 화상들을 제외한 디스플레이 순서와 동일하다. 통상의 B 화상들 내의 한 블록은 두 개의 참조 화상들로부터 양방향 및 시간상으로 예측되며, 이때 한 참조 화상은 디스플레이 순서상 시간적으로 앞선 것이고, 나머지 한 참조 화상은 시간상 뒤에 오는 것이다. 디코딩 순서상 최종 참조 화상이 디스플레이 순서상 B 화상에 이어질 수 있다 (예외: 시간적으로 순차적인 참조 프레임의 양 필드 화상들이 디코딩 순서에 있어 B 화상 앞에 올 수 있는 H.263의 인터레이스 코딩). 통상의 B 화상은 시간적 예측을 위한 참조 화상으로 사용될 수 없고, 그에 따라 통상의 B 화상은 어떤 다른 화상들의 디코딩에 영향을 미치지 않고 배치될 수 있다.
JVT 코딩 규격은 앞서의 규격들과 비교할 때 다음과 같은 새로운 기술적 특징들을 포함한다:
- 화상들의 디코딩 순서가 디스플레이 순서와 분리된다. 화상 넘버가 디코딩 순서를 가리키고, 화상 순서 카운트가 디스플레이 순서를 가리킨다.
- B 화상 내 한 블록에 대한 참조 화상들은 디스플레이 순서상 B 화상 앞이나 뒤에 올 수 있다. 결국, B 화상은 양방향(bi-directional) 화상이 아닌 두 가지 예측 (bi-predictive) 화상을 뜻한다.
- 임의 타입 (인트라(intra), 인터(inter), B, 등등)의 화상은 참조 화상이 되거나, 비참조 화상 중 하나가 될 수 있다. (따라서, B 화상은 다른 화상들의 시간적 에측을 위한 참조 화상으로 사용될 수 있다).
- 한 화상은, 다양한 코딩 타입으로 코딩된 슬라이스들을 포함할 수 있다. 즉, 코딩된 한 화상은 가령, 인트라-코딩(된) 슬라이스 및 B-코딩 슬라이스로 이뤄질 수 있다.
디코딩 순서로부터 디스플레이 순서를 분리하는 것은 압축 효율 및 에러 회복성의 관점에서 볼 때 유리할 수 있다.
잠정적으로 압축 효율을 향상시키는 예측 구조의 한 예가 도 3에 도시된다. 박스들은 화상들을 나타내며, 박스 안의 대문자는 코딩 타입을, 박스 안의 넘저들은 JVT 코딩 규격에 따른 화상 넘버들이고, 화살표들은 예측 종속 관계를 나타낸다. 화상 B17은 화상 B18의 참조 화상임을 주지해야 한다. 압축 효율이 통상적 코딩에 비교해 잠정적으로 향상되는데, 그것은 화상들 B18의 참조 화상들이 PBBP 또는 PBBBP 코딩된 화상 패턴들을 갖는 종래의 코딩에 비해 시간적으로 더 가깝기 때문이다. 압축 효율은 종래의 PBP 코딩된 화상 패턴에 비해 잠정적으로 향상되는데, 그것은 참조 화상들의 일부가 양방향으로 예측되기 때문이다.
도 4는 에러 회복성을 개선시키는데 사용될 수 있는 인트라 화상 연기(postponement) 방법의 예를 보인다. 통상저으로, 인트라 화상은 가령 어떤 장면 컷 (scene cut) 직후에 코딩되거나 만기된 인트라 화상 리프레쉬(refresh) 기간에 대한 응답으로서 코딩된다. 인트라 화상 연기 방법에서, 인트라 화상은 인트라 화상을 코딩할 필요가 생겨난 직후에 코딩되지 않고, 대신 시간상으로 뒤에 오는 한 화상이 인트라 화상으로서 선택된다. 코딩된 인트라 화상과 인트라 화상의 통상적 위치 사이의 각 화상이 시간적으로 그 다음에 이어지는 화상으로부터 예측된다. 도 4가 보이듯이. 인트라 화상 연기 방법은 두 개의 독립된 인터 화상 예측 사슬들을 발생시키는 반면, 종래의 코딩 알고리즘들은 한 개의 인터 화상 사슬을 생성한다. 두 개의 사슬 방식이 한 사슬의 통상적 방식보다, 말소 에러들에 대해 더 강력하다는 것이 직관적으로 명백하다. 한 사슬이 패킷 손실로 곤란을 겪는 경우, 다른 사슬은 여전히 올바로 수신될 수가 있다. 종래의 코딩에서, 패킷 손실은 항상 나머지 인터 화상 예측 사슬에 에러 전파를 야기한다.
디코딩 및 프레젠테이션 순서인 두 타입의 정렬 및 타이밍 정보는 통상적으로 디지털 비디오와 관련되어 왔다. 관련된 기술에 대한 보다 상세한 보기가 아래에서 행해질 것이다.
디코딩 타임스탬프 (DTS)는, 한 코딩된 데이터 유닛이 디코딩되기로 된 기준 클록과 관련된 시간을 가리킨다. DTS가 부호화된 후 전송되면, 그것은 두 가지 목적으로 사용된다: 첫째, 화상들의 디코딩 순서가 이들의 출력 순서와 다르면, DTS는 표면적으로 디코딩 순서를 가리킨다. 둘째, 수신 레이트가 어느 순간에 전송 레이트에 가까워진 경우 DTS는 소정의 전치(pre)-디코더 버퍼링 동작을 담보한다. 단대단 지연시간(latency)이 변화하는 네트워크들에서, DTS의 상기 두 번째 용도는 전혀, 또는 거의 역할을 하지 못한다. 대신, 비압축 화상들에 대해 포스트-디코더 버퍼에 여유가 있는 경우 수신된 데이터는 가능한 빠르게 디코딩된다.
DTS의 운반은 사용 중인 통신 시스템 및 비디오 코딩 표준에 따라 달라진다. MPEG-2 시스템에서, DTS는 PES 패킷의 헤더 내 한 아이템으로서 선택적으로 전송될 수 있다. JVT 코딩 표준에서, DTS는 보충 인핸스먼트 정보 (Supplemental Enhancement Information, SEI)의 한 부분으로서 선택적으로 운반될 수 있으며, 옵션인 가정적 참조 디코더 (Hypothetical Reference Decoder)의 동작시 사용된다. ISO 베이스 미디어 파일 포맷에서, DTS는 그 자체 박스 타입, 샘플 박스에 대한 디코딩 시간으로 주어진다. RTP 기반 스트리밍 시스템들 같은 많은 시스템들에서, DTS는 전혀 전송되지 않는데, 그 이유는 디코딩 순서가 전송 순서와 동일하다고 전제되어 정확한 디코딩 시간이 중요한 역할을 하지 않기 때문이다.
H.263 옵션 부록 U 및 부록 W.6.12는 디코딩 순서에 있어 이전 참조 화상에 대해 1 씩 증가 되는 화상 넘버를 특정한다. JVT 코딩 표준에서, 프레임 넘버 코딩 요소는 H.263의 화상 넘버와 유사하게 특정된다. JVT 코딩 표준은 순시적 디코더 리프레쉬 (IDR) 화상이라 불리는 인트라 화상의 특정 타입을 명시한다. 뒤따르는 어느 화상도 디코딩 순서에 있어 IDR 화상보다 더 빠른 화상들을 참조할 수 없다. JVT 코딩 표준에서, 도 5a 및 도 5b에 제시된 것과 같이, IDR 화상의 손실이 있는 경우 에러 복구성을 향상시키도록 그 IDR 화상에서 프레임 넘버가 0으로 리셋된다. 그러나, JVT 코딩 표준의 장면 정보 SEI 메시지가 장면 변환을 검출하는데 사용될 수도 있다는 것을 알아야 한다.
H.263 화상 넘버는 참조 화상들의 디코딩 순서를 복구하는데 사용될 수 있다. 마찬가지로, JVT 프레임 넘버는 디코딩 순서상 IDR 화상 (포함함)과 다음 IDR 화상 (배제함) 사이의 프레임들의 디코딩 순서를 복구하는데 사용될 수 있다. 그러나, 보충적 참조 필드 쌍들 (상이한 패리티를 가진 필드들로서 코딩된 연속 화상들)이 동일한 프레임 넘버를 공유하기 때문에, 이들의 디코딩 순서는 프레임 넘버들로부터 재구성될 수 없다.
비참조 화상의 H.263 화상 넘버나 JVT 프레임 넘버는, 디코딩 순서상 이전 참조 화상의 화상이나 프레임 넘버 플러스 1과 같도록 정해진다. 여러 개의 비참조 화상들이 디코딩 순서에 있어 연속적이면, 이들은 도일한 화상 또는 프레임 넘버를 공유한다. 비참조 화상의 화상 또는 프레임 넘버는 디코딩 순서에 있어 이어지는 참조 화상의 화상 또는 프레임 넘버와도 같다. 연속 비참조 화상들의 디코딩 순서는 H.263의 시간적 참조 (TR, Temporal Reference) 코딩 요소나 JVT 코딩 표준의 화상 순서 카운트 (POC, Picture Order Count)를 이용해 복구될 수 있다.
프레젠테이션 타임스탬프 (PTS)는 한 화상이 디스플레이되도록 정해진 때의 기준 클록과 관련된 시간을 가리킨다. 프레젠테이션 타임스탬프는 디스플레이 타임스탬프, 출력 타임스탬프, 및 합성(composition) 타임스탬프로도 불린다.
PTS의 전송은 사용중인 통신 시스템 및 비디오 코딩 표준에 따라 달라진다. MPEG-2 시스템들에서, PTS는 PES 패킷의 헤더 내 한 아이템으로서 선택적으로 전송될 수 있다. JVT 코딩 표준에서, PTS는 보충 인핸스먼트 정보 (SEI)의 일부로서 선택적으로 전달될 수 있으며, 가정적 참조 디코더 동작시 사용된다. ISO 베이스 미디어 파일 포맷에서, PTS는 자신의 박스 타입, 프레젠테이션 타임스탬프가 그에 대응하는 디코딩 타임스탬프와 관련해 코딩되는 샘플 박스에 대한 합성 시간으로 주어진다. RTP에서, RTP 패킷 헤더 내 RTP 타임스탬프는 PTS에 해당한다.
통상의 비디오 코딩 규격들은 여러 관점에서 PTS와 유사한 시간적 참조 (TR) 코딩 요소를 특징으로 한다. MPEG-2 비디오 같은 종래의 코딩 규격들 몇몇에서, TR은 화상들의 그룹 (GOP)이 시작하는 위치에서 0으로 리셋 된다. JVT 코딩 규격에서, 비디오 코딩 계층 내 시간 개념은 존재하지 않는다. 화상 순서 카운트 (POC)가 각각의 프레임 및 필드에 대해 특정되고, 가령 B 슬라이스들의 직접적 시간 예측시 TR과 유사하게 사용된다. POC는 IDR 화상에서 0으로 리셋 된다.
멀티미디어 스트림들의 전송
멀티미디어 스트리밍 시스템은 한 스트리밍 서버와, 네트워크를 통해 그 서 버에 액세스하는 다수의 플레이어들로 이뤄진다. 네트워크는 보통 패킷 지향적이며, 서비스 품질을 보장하는 수단을 거의, 혹은 전혀 제공하지 않는다. 플레이어들은 서버로부터 미리 저장되어 있거나 라이브인 멀티미디어 콘텐츠를 가져와 콘텐츠가 다운로드 되는 동안 그것을 실시간으로 재생한다. 통신 타입은 포인트-투-포인트이거나 멀티캐스트(multicast)일 수 있다. 포인트-투-포인트 스트리밍에서, 서버는 각각의 플레이어마다 별개의 접속을 지원한다. 멀티캐스트 스트리밍에서, 서버는 여러 플레이어들로 하나의 데이터 스트림을 전송하고, 네트워크 요소들은 그 스트림을 필요할 때에만 복제한다.
플레이어가 서버와 접속을 설정하고 멀티미디어 스트림을 요청했으면, 서버는 요망되는 스트림의 전송을 시작한다. 플레이어는 즉시 스트림의 재생을 시작하지 않고, 그보다 보통 수 초 동안 들어온 데이터를 버퍼링한다. 여기서, 그 버퍼링을 초기 버퍼링이라 칭한다. 초기 버퍼링은 중단없는 재생을 유지하는데 도움이 되는데, 그 이유는, 때때로 증가 되는 전송 지연들이나 네트워크 처리용량 저하가 있는 경우, 플레이어가 버퍼링된 데이터를 디코딩 및 재생할 수 있기 때문이다.
무제한 전송 지연을 피하기 위해, 스트리밍 시스템들에서 신뢰성 있는(reliable) 전송 프로토콜들을 선호하는 것은 드문 일이다. 대신, 시스템들은 UDP 같이, 한편으로는 보다 안정적인 전송 지연을 대물림하고 다른 한편으로는 데이터 훼손이나 손실 역시 겪는, 신뢰성없는(unreliable) 전송 프로토콜들을 선호한다.
RTP 및 RTCP 프로토콜들은 실시간 통신을 제어하기 위해 UDP의 최상부에서 사용될 수 있다. RTP는 전송 패킷들의 손실들을 검출하기 위한 수단을 제공해, 수신단에서의 패킷들의 올바른 순서를 재구성하고, 샘플링 타임-스탬프를 각각의 패킷과 결부시키도록 한다. RTCP는 얼마나 많은 패킷 부분이 올바르게 수신되었는지에 대한 정보를 전달하고 그에 따라 플로 제어 목적을 위해 사용될 수 있다.
전송 에러들
두 주요 타입의 전송 에러들, 즉 비트 에러들과 패킷 에러들이 있다. 비트 에러들은 보통 모바일 통신에서 무선 액세스 네트워크 접속 같은 회선 교환 방식 채널과 결부되며, 무선 간섭 같은, 물리 채널들의 불완전함으로 인해 야기된다. 그러한 불완전함이, 전송된 데이터에서의 비트 전환(inversions), 비트 삽입(insertions) 및 비트 제거(deletion)의 결과를 낳을 수 있다. 패킷 에러들은 보통 패킷 교환 방식 네트워크들 내 요소들에 의해 일어난다. 예를 들어, 패킷 라우터가 혼잡해질 수 있다; 즉, 입력으로서 너무 많은 패킷들을 가지게 되어 이들을 같은 레이트로 출력할 수가 없다. 이러한 상황에서, 그 버퍼들이 오버플로 되고, 어떤 패킷들은 잃어버리게 된다. 패킷 복제 및, 전송된 것과는 다른 순서의 패킷 전달 역시 일어날 수 있으나, 이러한 것들은 통상적으로 패킷 손실보다는 덜 흔한 것이라고 간주 된다. 패킷 에러들은 또한 사용된 전송 프로토콜 스택의 구성에 의해 야기될 수도 있다. 예를 들어, 어떤 프로토콜들은 송신기에서 계산되어 소스 코딩된 데이터와 함께 캡슐화되는 첵섬(checksum)들을 이용한다. 데이터에 비트 전환 에러가 있으면, 수신기는 그와 동일한 첵섬을 산출하지 못하고 수신된 패킷을 버려야 할 수도 있다.
GPRS, UMTS, 및 CDMA-2000을 포함하는, 이세대(2G) 및 삼세대(3G) 모바일 네트워크들은 두 기본 타입의 무선 링크 접속들인 승인형(acknowledged) 및 비승인형(non-acknowledged)을 지원한다. 승인형 접속은, 무선 링크 프레임의 무결성이 수신자 (모바일 스테이션 MS, 또는 베이스 스테이션 서브시스템들, BSS)에 의해 체크 되는 것으로, 전송 에러가 있는 경우, 재전송 요청이 무선 링크 상대 단말로 보내진다. 링크 계층 재전송 탓에, 원 객체(originator)는 무선 링크 프레임에 대한 긍정적 승인을 받을 때까지 그 프레임을 버퍼링해야 한다. 어려운 무선 조건 하에서, 이 버퍼는 오버플로될 수 있고, 데이터 손실을 일으킬 수 있다. 그럼에도 불구하고, 스트리밍 서비스를 위해 승인형 무선 링크 프로토콜 모드를 사용하는 것이 유익하다는 것이 알려져 왔다. 비승인형 접속은, 일반적으로 에러가 난 무선 링크 프레임들이 버려지도록 된 방식이다.
패킷 손실은 정정되거나 숨길 수 있다. 손실 정정이란 어떤 손실도 일어나지 않았던 것처럼 손실된 데이터를 완벽하게 복구하는 기능을 말한다. 손실 은닉은 전송 손실 효과를 감춰서 이러한 효과가 재구성된 비디오 시퀀스 상에서 가시적이지 않도록 하는 기능을 말한다.
플레이어가 패킷 손실을 검출하면, 플레이어는 패킷 재전송을 요청할 수 있다. 초기 버퍼링 때문에, 재전송된 패킷은 자신의 예정된 재생 시간 전에 수신될 것이다. 몇몇 상용 인터넷 스트리밍 시스템들은 전용 프로토콜들을 사용해 재전송 요청을 구현한다. IETF에서는 RTCP의 일부로서 선택적 재전송 요청 메커니즘을 규격화하는 작업이 진행중이다.
이러한 재전송 요청 프로토콜들 모두의 공통된 특징이, 네트워크 트래픽이 극적으로 증가할 때 그러한 프로토콜들이 수많은 재생기들에 대한 멀티캐스팅에 적합하지 못하다는 것이다. 결국, 멀티캐스트 스트리밍 어플리케이션들은 비대화형(non-interactive) 패킷 손실 제어에 의존해야만 한다.
포인트-투-포인트 스트리밍 시스템들 역시 비대화형 에러 제어 기술들의 혜택을 받는다. 첫째, 몇몇 시스템들은 어떠한 대화형 에러 제어 메커니즘도 포함하지 않거나, 시스템을 단순화하기 위해 플레이어들로부터 어떠한 피드백도 받지 않는 것을 선호할 수 있다. 둘째, 손실 패킷들의 재전송 및 기타 대화형 에러 제어 형식들은 보통, 비대화형 에러 제어 방식들보다 큰 전송 데이터 레이트 몫을 차지한다. 스트리밍 서버들은 대화형 에러 제어 방식들이 사용가능한 네트워크 처리량의 주요 부분을 예비하지 않도록 확실히 해야 한다. 실제로, 서버들은 대화형 에러 제어 동작들의 양을 제한해야 할 것이다. 셋째, 전송 지연이, 서버와 플레이어 사이의 상호동작 회수를 제한할 수 있는데, 특정 데이터 샘플에 대한 모든 대화형 에러 제어 동작들이 그 데이터 샘플이 재생되기 전에 행해짐이 바람직하기 때문이다.
비대화형 패킷 손실 제어 메커니즘들은 포워드 에러 제어 및 후처리에 의한 손실 은닉으로 분류될 수 있다. 포워드 에러 제어는, 전송 손실들이 존재하더라도 전송된 데이터의 적어도 일부를 수신기가 복구할 수 있도록 하는 리던던시(redundancy)를 송신기가 상기 전송되는 데이터에 부가하는 기술들을 말한다. 후처리에 의한 에러 은닉은 완전히 수신기 위주로 이뤄진다. 이러한 방식들은 에 러 난 수신 데이터의 올바른 재현을 추정하고자 시도한다.
대부분의 비디오 압축 알고리즘들은 시간적으로 예측된 인터(INTER) 또는 P 화상들을 생성한다. 그 결과, 한 화상에서의 데이터 손실은, 훼손된 것으로부터 시간적으로 예측되는 궁극적 화상들에서의 시각적 저하를 유발시킨다. 비디오 통신 시스템들은 디스플레이된 이미지들에서 그러한 손실을 감추거나, 훼손된 프레임과 독립된 프레임이 수신될 때까지 가장 최근의 정상 화상을 동결(freeze)할 수 있다.
종래의 비디오 코딩 표준들에서, 디코딩 순서는 출력 순서와 결부되어 있다. 즉, I 및 P 화상들의 디코딩 순서는 이들의 출력 순서와 동일하고, B 화상의 디코딩 순서는 출력 순서상 B 화상의 마지막 참조 화상의 디코딩 순서 바로 뒤에 온다. 결국, 기존의 출력 순서에 기반하여 디코딩 순서를 복구하는 것이 가능하다. 출력 순서는 보통 시간적 참조 (TR) 필드와, 또한 RTP 헤더와 같은 시스템 멀티플렉스 계층에서 기초 비디오 비트스트림을 통해 전달된다. 따라서, 종래의 비디오 코딩 표준들에서, 상기 언급된 문제는 존재하지 않았다.
이 분야의 전문가에게 자명한 한 가지 해법이, (JVT 코딩 표준에서 행해진 것 같은) IDR 화상에서의 0 리셋 없이 H.263 화상 넘버와 유사한 프레임 카운터를 이용하는 것이다. 그러나, 그런 종류의 해법들이 사용될 때 몇 가지 문제들이 생겨날 수 있다. 도 5a는 연속 번호 매김 방식이 사용되는 상황을 나타낸다. 예를 들어, IDR 화상(137)이 누락되면 (수신/디코딩될 수 없음), 디코더가 이어지는 화상들의 디코딩은 계속하지만, 틀린 참조 화상을 이용한다. 이러한 것이, 그 훼손 된 프레임과 무관한 다음 프레임이 바르게 수신 및 디코딩될 때까지 이어지는 프레임들에 대해 에러 전파를 야기한다. 도 5b의 예에서, 프레임 넘버는 IDR 화상에서 0으로 리셋된다. 이제, IDR 화상(10)이 손실되는 상황에서, 디코더는 가장 최근에 올바로 디코딩된 화상 P36 이후의 화상 번호 매김에 큰 공백(gap)이 존재한다는 것을 통지한다. 이제 디코더는 에러가 발생하였음을 추정할 수 있고, 손상된 프레임과 무관한 다음 프레임이 수신되어 디코딩될 때까지 화상 P36에 대한 디스플레이를 동결할 수 있다.
서브- 시퀀스들
JVT 코딩 표준 역시, 화상들의 인터-예측 체인들 (inter-predicted chains)이 코딩된 나머지 스트림의 디코딩 가능성에 영향을 주지 않으면서 전체적으로 배치될 수 있도록 비참조 화상의 이용과 비교할 때 시간적 확장성(scalability)을 향상시킬 수 있는 서브-시퀀스 개념을 포함한다.
서브 시퀀스는 서브-시퀀스 계층 내 코딩된 화상들의 집합이다. 한 화상은 한 서브-시퀀스 계층 및 한 서브-시퀀스에만 상주해야 한다. 서브-시퀀스는 동일하거나 상위의 서브-시퀀스 계층에 있는 다른 어떤 서브-시퀀스에 종속되어서는 안된다. 계층 0의 서브-시퀀스는 다른 어떤 서브-시퀀스들 및 이전의 장기(long-term) 참조 화상들과 무관하게 디코딩될 수 있다. 도 6a는 계층 1에서 서브-시퀀스들을 포함하는 화상 스트림의 예를 나타낸다.
서브-시퀀스 계층은 한 시퀀스로 코딩된 화상들의 부분 집합을 포함한다. 서브-시퀀스 계층들은 음이 아닌 정수들로 번호 매겨진다. 보다 큰 계층 넘버를 가진 계층은 그보다 작은 계층 번호를 가진 계층보다 상위 계층이 된다. 계층들은, 한 계층이 어떤 임의의 상위 계층에 종속되지 않고 하위 계층들에 종속될 수 있도록, 서로에 대한 계층들의 종속성에 기반하여 위계적으로(hierarchically) 정렬된다. 즉, 계층 0는 독립적으로 디코딩 가능하고, 계층 1의 화상들은 계층 0으로부터 예측될 수 있으며, 계층 2의 화상들은 계층 0 및 계층 1로부터 예측되는 등의 식으로 된다. 주관적 품질은 디코딩 계층들의 넘버와 함께 증가한다고 기대된다.
서브-시퀀스 개념은 다음과 같이 JVT 코딩 표준에 포함된다: 시퀀스 파라미터 집합에서 1인 required_frame_num_update_behaviour_flag (요청된 프레임 번호 갱신 동태 플래그)는, 코딩된 시퀀스가 모든 서브-시퀀스들을 포함하지 않을 수 있음을 알린다. required_frame_num_update_behaviour_flag의 용도는 각 참조 프레임의 1 프레임 넘버 증가 요청을 면제시킨다. 대신, 프레임 넘버들의 공백들이 디코딩된 화상 버퍼에서 구체적으로 마크된다. "누락된(missing)" 프레임 넘버가 인터 예측시 참조되면, 한 화상의 손실이 추정된다. 그렇지 않으면, "누락된" 프레임 넘버들에 해당하는 프레임들은, 슬라이딩 윈도 버퍼링 모드를 통해 디코딩된 화상 버퍼로 삽입되는 정상 프레임들인 것처럼 다뤄진다. 배치된 서브-시퀀스 내 모든 화상들은 디코딩된 화상 버퍼에서 궁극적으로 "누락된" 프레임 넘버로서 할당되지만, 이들은 다른 서브-시퀀스들의 인터 예측에는 절대 사용되지 않는다.
JVT 코딩 표준은 또한 서브-시퀀스 관련 SEI 메시지 옵션들을 포함한다. 서브-시퀀스 정보 SEI 메시지는 디코딩 순서상 다음 슬라이스와 결부된다. 그것은 서브-시퀀스 계층과, 슬라이스가 속한 서브-시퀀스의 서브-시퀀스 식별자 (sub_seq_id)를 신호한다.
각각의 IDR 화상은 식별자 (idr_pic_id)를 포함한다. 두 IDR 화상들이 디코딩 순서에 있어 그 사이에 끼어드는 어떠한 화상도 없이 연속적이면, idr_pic_id는 최초의 IDR 화상에서 다른 화상으로 바뀔 것이다. 현재의 화상이 디코딩 순서상 최초 화상이 IDR 화상인 서브-시퀀스 안에 존재하면, sub_seq_id 값은 IDR 화상의 idr_pic_id 값과 같게 될 것이다.
JVT_D093의 해법은 어떤 데이터도 서브-시퀀스 계층들 1 이상에 존재하지 않을 때에만 올바로 작동도니다. 전송 순서가 디코딩 순서 및 서브-시퀀스 계층 1에 존재하는 코딩된 화상들과 다르면, 서브-시퀀스 계층 0의 화상들과 관련된 이들의 디코딩 순서는 서브-시퀀스 식별자들 및 프레임 넘버들에 기반하여 추단될 수 없을 것이다. 예를 들어, 도 6b에 나타낸 다음과 같은 코딩 방식을 고려할 수 있다. 도 6b에서는, 출력 순서가 왼쪽에서 오른쪽으로 가며, 박스들은 화상들을 나타내고, 박스 안의 대문자들은 코딩 타입을 나타내고, 박스 안의 번호들은 JVT 코딩 표준에 따른 프레임 넘버들이고, 밑줄친 문자들은 비참조 화상들을 가리키고, 화살표는 에측 종속관계를 나타낸다. 화상들이 IO, P1, P3, IO, P1, B2, B4, P5의 순서로 전송되면, 독자적 GOP 화상 B2가 속한다고 추단될 수 없다.
이전의 예에서 화상 B2에 대한 정상적 독립 GOP가 그 출력 타임스탬프에 기반해 추단될 수 있을 것이라고 주장할 수 있다. 그러나, 화상들의 디코딩 순서는 출력 타임스탬프들과 화상 넘버들에 기반해 복구될 수 없는데, 이는 디코딩 순서 및 출력 순서가 서로 분리된 것이기 때문이다. 다음의 예 (도 6c)를 고려할 수 있는데, 이 예에서 출력 순서는 왼쪽에서 오른쪽으로 가고, 박스들은 화상들을 가리키고, 박스 내 대문자들은 코딩 타입들을 가리키고, 박스 내 넘버들은 JVT 코딩 표준에 따른 프레임 넘버들이고, 화살표는 예측 종속관계를 나타낸다. 화상들이 디코딩 순서와 다르게 전송되면, 화상 P4가 출력 순서상 첫째 혹은 둘째 독자 GOP의 P3 다음에 디코딩되어야 할지 여부가 신뢰성 있게 검출될 수 없다.
버퍼링
스트리밍 클라이언트들은 보통 상대적으로 대량의 데이터를 저장할 수 있는 수신기 버퍼를 포함한다. 처음에, 스트리밍 세션이 설정될 때, 클라이언트는 즉시 스트림을 재생 시작하지 않고, 그대신 보통 수초동안 들어온 데이터를 버퍼링한다. 이러한 버퍼링이 연속적 재생에 도움이 되는데, 이는, 경우에 따라 증가되는 전송 지연이나 네트워크 처리량 저하가 있는 경우, 클라이언트가 버퍼링 된 데이터를 디코딩하고 재생할 수 있기 때문이다. 그렇지 않으면, 초기 버퍼링 없이, 클라이언트는 디스플레이를 동결(freeze)하고, 디코딩을 중단하며, 들어오는 데이터를 기다려야 한다. 버퍼링은 또한 임의의 프로토콜 레벨에서의 자동적이거나 선택적인 재전송에도 필수적이다. 한 화상의 어떤 부분이 손실되면, 재전송 메커니즘이 그 손실된 데이터를 재전송하도록 사용될 수 있다. 재전송된 데이터가 그 예정 디코딩 시간이나 재생 시간 전에 수신되면, 손실이 완벽하게 복구된다.
코딩된 화상들은 디코딩된 시퀀스의 주관적 품질에 있어서의 그 화상들의 중요도에 따라 랭크될 수 있다. 이를테면, 일반적 B 화상들 같은 비참조 화상들은 주관적으로 가장 덜 중요한데, 그 이유는 이들의 부재가 다른 어떤 화상들의 디코딩에 영향을 미치지 않기 때문이다. 주관적 랭크는 데이터 구획 또는 슬라이스 그룹 베이스에 따라 행해질 수도 있다. 주관적으로 가장 중요한 코딩된 슬라이스들과 데이터 구획들이 이들의 디코딩 순서가 가리킨 것보다 더 일찍 전송될 수 있는 한편, 주관적으로 가장 덜 중요한 코딩된 슬라이스들과 데이터 구획들은 이들의 자연적 코딩 순서가 가리키는 것보다 나중에 보내질 수 있다. 결국, 가장 중요한 슬라이스 및 데이터 구획들의 어떤 재전송 부분은, 가장 덜 중요한 슬라이스들과 데이터 구획들과 비교할 때, 이들의 예정된 디코딩 또는 재생 시간 전에 수신될 가능성이 높다.
전치-디코더(pre-decoder) 버퍼링
전치-디코더 버퍼링은 디코딩되기 전에 코딩된 데이터를 버퍼링하는 것을 말한다. 초기 버퍼링은 스트리밍 세션 시작시의 전치-디코더 버퍼링에 해당한다. 초기 버퍼링은 일반적으로 아래에 설명되는 두 가지 이유로 행해진다.
IP 기반 비디오 회의 시스템들같은 일반적 패킷 교환방식 멀티미디어 시스템들에서, 서로 다른 타입의 미디어는 보통 별개의 패킷들을 통해 운반된다. 게다가, 패킷들은 통상적으로, 일관된 전송 지연을 보장할 수 없는 최선형 네트워크(best-effort network)의 최상부에서 전달된다. 결과적으로, 동일한 프레젠테이션 (재생) 타임스탬프를 갖는 패킷들은 동시에 수신될 수 없고, 두 패킷들의 수신 간격은 이들의 (시간상의) 프레젠테이션 간격과 동일하지 않을 것이다. 따라서, 서로 다른 미디어 타입들 사이의 재생 동기를 유지하고 정확한 재생 레이트를 유지 하기 위해, 멀티미디어 단말은 일반적으로, 지연 변동폭을 완만하게 하도록 단기간 (가령 1/2 초 미만) 수신된 데이터를 버퍼링한다. 여기서, 이러한 종류의 버퍼 성분을 지연 지터(jitter) 버퍼라고 부른다. 버퍼링은 미디어 데이터 디코딩 이전 및/또는 이후에 일어날 수 있다.
지연 지터 버퍼링은 스트리밍 시스템들에서도 적용될 수 있다. 스트리밍이 비대화형 어플리케이션이라는 사실로 인해, 요구되는 지연 지터 버퍼는 통상의 어플리케이션들 보다 상당히 커질 것이다. 스트리밍 플레이어가 서버와의 접속을 설정하여 다운로드 받을 멀티비디어 스트림을 요청했을 때, 서버는 요망된 스트림을 전송하기 시작하다. 플레이어는 그 스트림을 즉시 재생하기 시작하지 않고, 대신 보통 수초인 소정 기간 동안 입력되는 데이터를 버퍼링한다. 여기서, 이러한 버퍼링을 초기 버퍼링이라 부른다. 초기 버퍼링은 통상적 어플리케이션들에서의 지연 지터 버퍼링에 의해 제공되는 것과 같은 방식을 통해 전송 지연 변동을 완만케 하는 기능을 제공한다. 그 외에, 그것은 손실된 프로토콜 데이터 유닛들 (PDUs)의 링크, 전송, 및/또는 어플리케이션 계층 재전송들을 행할 수 있다. 플레이어는 재전송된 PDU들이 예정된 순간에 디코딩 및 재생되도록 제시간에 수신될 것이다.
스트리밍 클라이언트들에서의 초기 버퍼링은 통상의 시스템들에서 얻어질 수 없는 또 다른 이점을 제공한다: 즉 서버로부터 전송되는 미디어의 데이터 레이트가 가변될 수 있게 한다. 즉, 미디어 패킷들은 수신기 버퍼가 오버플로 혹은 언더플로되지 않는 한, 이들의 재생 레이트 보다 빠르거나 더 느리게 일시적으로 전송될 수 있다. 데이터 레이트의 변동은 두 가지 소스들로부터 발생 될 것이다.
첫째, 비디오 같은 어떤 미디어 타입들에서 얻을 수 있는 압축 효율이 소스 데이터의 콘텐츠들에 좌우된다. 결국, 안정적 품질이 요망되는 경우, 결과적 압축 비트 스트림의 비트 레이트는 가변된다. 통상적으로, 안정적 시청각 품질은 가변하는 품질보다 주관적으로 더 만족스럽다. 따라서, 초기 버퍼링은 비디오 회의 시스템 같이 초기 버퍼링 없는 시스템과 비교할 때 보다 만족스런 시청각 품질이 얻어지게 한다.
둘째, 고정 IP 네트워크들에서의 패킷 손실들이 버스트(burst)를 통해 일어난다는 것이 일반적으로 알려져 있다. 버스트 에러 및 높은 피크(peak) 비트 레이트 및 패킷 레이트를 피하기 위해, 잘 설계된 스트리밍 서버들은 주의 깊게 패킷들의 전송을 스케줄링한다. 패킷들이 수신단에서 재생되는 레이트로서 정확하게 전송될 수는 없으며, 그보다는 전송된 패킷들 사이의 고정적 간격을 견지하고자 할 것이다. 서버는 지배적 네트워크 상태들에 따라 패킷 전송 레이트를 조정할 수도 있는데, 가령 네트워크가 혼잡할 때는 패킷 전송 레이트를 감소시키고, 네트워크 상태가 허용하면 그러한 레이트를 증가시킬 수 있다.
가정적 참조 디코더 ( HRD , Hypothetical Reference Decoder)/비디오 버퍼링 검증기 ( VBV , Video Buffering Verifier)
많은 비디오 코딩 표준들이 표준의 핵심 파트로서 HRD/VBV 사양을 포함한다. HRD/VBV 사양은 입력 (전치-디코더) 버퍼를 포함하는 가정적 디코더 모델이다. 코딩된 데이터가 보통 일정한 비트 레이트로서 입력 버퍼로 흘러 들어간다. 코딩된 화상들이, 이들의 출력 타임스탬프들과 같을지도 모를 이들의 디코딩 타임스탬프들 에서 입력 버퍼로부터 추방된다. 입력 버퍼는 사용중인 프로파일 및 레벨에 따라 좌우되는 소정 사이즈를 가진다. HRD/VBV 모델은 프로세싱 및 메모리 요건의 관점에서 상호운용성(interoperability) 정도들을 특정하는데 사용된다. 인코더들은 생성된 비트스트림이 소정 프로파일 및 레벨의 HRD/VBV 파라미터 값들에 EK라 HRD/VBV 사양을 따를 것을 보장해야 한다. 소정 프로파일 및 레벨의 지원을 주장하는 디코더들은 HRD/VBV 모델에 따르는 비트스트림을 디코딩할 수 있어야 한다.
HRD는 코딩된 데이터 스트림을 저장하기 위한 코딩 화상 버퍼 및, 디코딩된 참조 화상들을 저장하고 디스플레이 순서에 따라 그 디코딩된 화상들을 재배치하기 위한 디코딩 화상 버퍼를 구비한다. HRD는 디코딩 장치의 디코더가 그러는 것과 마찬가지로 상기 버퍼들 사이에서 데이터를 이동시킨다. 그러나, HRD가 코딩된 화상들을 완전히 디코딩하거나 디코딩된 화상들을 출력할 필요는 없으며, HRD는 단지, 화상 스트림의 디코딩이 코딩 표준에서 주어진 제약하에서 수행될 수 있는지만을 체크한다. HRD가 작동할 때, 그것은 코딩된 데이터 스트림을 수신하고 그 스트림을 코딩 화상 버퍼로 저장한다. 이외에, HRD는 코딩 화상 버퍼로부터 코딩된 화상들을 추방하고 그에 상응하는 가정적으로 디코딩된 화상들의 적어도 일부를 디코딩 화상 버퍼 안에 저장한다. HRD는 코딩된 데이터가 코딩 화상 버퍼로 흘러들어감에 따른 입력 레이트, 코딩 화상 버퍼로부터의 화상들의 추방 레이트, 및 디코딩 화상 버퍼로부터의 화상들의 출력 레이트를 알게된다. HRD는 코딩 또는 디코딩 화상 버퍼 오버플로를 체크하고, 현재의 설정으로 디코딩이 가능한지를 나타낸다. 그런 다음 HRD는 인코더로, 버퍼링 왜곡을 피하기 위해 참조 프레임들의 개수를 감 소하는 등에 의해 인코딩 파라미터들을 바꿀 수 있다는 버퍼링 왜곡 관련 정보를 제공한다. 이와 다른 선택사항 또는 부가사항으로서, 인코더가 새 파라미터들로서 화상들을 인코딩하기 시작하고, 그 인코딩된 화상들을 HRD로 전송하며, HRD는 다시 화상들의 디코딩 및 필요한 체크를 수행한다. 또 다른 선택사항으로서, 인코더가 가장 나중에 인코딩된 프레임을 버리고 그 뒤의 프레임들을 인코딩하여 버퍼링 왜곡이 일어지 않게 할 수도 있다.
두 타입의 디코더 부합성(conformance)가 JVT 코딩 표준에 명시되고 있다: 출력 순서 부합성 (VCL 부합성) 및 출력 시간 부합성 (VCL-NAL 부합성). 이러한 부합성 타입들은 HRD 사양을 이용해 명시되었다. 출력 순서 부합성은 디코더가 화상들의 출력 순서를 정확히 복구하는 능력을 말한다. HRD 사양은 한 화상에 대한 새 저장 공간이 필요하게 될 때 출력 순서에 있어 가장 빠른 미압축 화상을 출력하는 "범핑(bumping) 디코더" 모델을 포함한다. 출력 시간 부합성은 디코더가 HRD 모델과 동일한 페이스(pace)로 화상들을 출력하는 능력을 말한다. 화상의 출력 타임스탬프는 "범핑 디코더"에서 추방되어야 할 때의 시간과 항상 같거나 그보다 작아야 한다.
인터리빙 (interleaving)
프레임 인터리빙은 오디오 스트리밍에 있어 일반적으로 사용되는 기술이다. 프레임 인터리빙 기술에서, 한 RTP 패킷은 디코딩 또는 출력 순서에 있어 연속적이지 않은 오디오 프레임들을 포함한다. 오디오 패킷 스트림 중 한 패킷이 손실되는 경우, 정확히 수신된 패킷들은 (소정 유형의 보간을 통해) 그 손실된 오디오 패킷 을 은닉하는데 사용될 수 있는 이웃 오디오 프레임들을 포함한다. 많은 오디오 코딩 RTP 페이로드 및 MIME 타입 사양들이 오디오 프레임들의 맥락에서 한 패킷 내 인터리빙 최대 량을 알리는 수단을 포함한다.
몇몇 선행 기술상의 인코딩/디코딩 방법들에서, 필요한 버퍼의 사이즈는 전송 유닛들의 카운트로서 알려진다.
디코더의 전치 디코딩 버퍼의 최대 사이즈가 바이트 단위로서 디코더에 알려질 수 있다. 디코더에서 그러한 바이트 기반 체계가 사용되고 재정렬 프로세스가 정의되어 있지 않은 경우, 버퍼링 모델이 분명하게 규정되어야 하는데, 그 이유는 인코더 및 디코더가 서로 다른 버퍼링 체계를 사용할 수 있기 때문이다. 버퍼에 대해 바이트 단위의 소정 사이즈가 규정되고, 버퍼가 가득 찰 때까지, 그리고 나서 가장 오래된 데이터가 버퍼로부터 추방되어 디코딩된 후에만 전송 유닛들이 그 버퍼로 저장되는 버퍼링 방식을 디코더가 사용하는 경우에 해당한다. 이런 유형의 버퍼링은 디코딩이 시작되기 전까지 필요 이상으로 길게 지속 될 수 있다.
전치 디코딩 버퍼의 최대 사이즈를 알리기 위한 다른 방법은, 버퍼 사이즈가 버퍼링될 전송 유닛들의 최대 량으로서 알려지는 전송 유닛들을 사용하는 것이다. 그러나, 전송 유닛의 최대 사이즈는 정의되지 않으며, 전송 유닛의 사이즈는 가변될 수 있다. 최대 사이즈가 정의되었고 그 사이즈가 소정 데이터 유닛에 비해 너무 작으면, 그 데이터 유닛은 둘 이상의 전송 유닛으로 나눠져야 하고, 이것이 인코딩 및 전송 오버헤드를 증가시킨다, 즉, 압축 효율을 저하시키고/거나 시스템 복잡도를 증가시킨다. 전송 유닛의 최대 사이즈는 버퍼의 총 사이즈가 불필요하게 커도 될 정도로 충분히 커야 한다.
본 발명에서 버퍼 사이즈는, 적어도 두 전송 유닛들의 총 사이즈 범위가 정의되고 최대 버퍼 사이즈가 그 총 사이즈에 기초해 규정되도록 정의된다. 총 사이즈 외에, 네트워크 전송 지터를 고려할 필요가 있을 것이다.
본 발명의 다른 양태에 따르면, 총 사이즈 산출시 이용되는 전송 유닛들의 개수는 그 전송 유닛들의 개수와 관련해 필요한 버퍼 사이즈의 분수에 해당한다.
본 발명의 또 다른 양태에 따르면, 총 사이즈 산출시 이용되는 전송 유닛들의 개수는 그 전송 유닛들의 개수와 관련해 필요한 버퍼 사이즈의 분수에 해당하고, 이때 그 분수는 N이 정수라고 할 때 1/N 모양이 된다.
본 발명의 또 다른 양태에 따르면, 총 사이즈 산출시 이용되는 전송 유닛들의 개수는 그 전송 유닛들의 개수와 관련해 필요한 버퍼 사이즈와 같다.
본 발명의 일실시예에 따르면, 총 사이즈 산출시 이용되는 전송 유닛들의 개수는 전송 유닛들의 버퍼링 순서로서 표현된다. 버퍼링 순서는 전송 유닛들이 디코딩되기 위해 디코더에서 버퍼링되는 순서, 즉, 전치 디코더 버퍼에서의 버퍼링 순서와 관련이 있다.
본 발명은 디코더에 대해 수신 버퍼의 사이즈를 정할 수 있다.
이하에서, 독자적 GOP는 디코딩 순서에 있어 IDR 화상 (포함)부터 다음 IDR 화상 (배제)까지의 화상들로 이뤄진다.
본 발명에서, 요구되는 버퍼링의 최대량을 신호 보내는 파라미터가 제안된다. 그러한 파라미터를 위해 여러 유닛들이 고려된다: 듀레이션(duration), 바이트, 코딩(된) 화상들, 프레임들, VCL NAL 유닛들, 및 RTP 패킷들 혹은 페이로드들이 그것이다. 듀레이션 중의 불규칙 정도를 특정하는 것이, 전송 비트 레이트 및 특정된 듀레이션 간의 종속관계로 하여금 요구되는 버퍼링의 바이트 크기를 추단하게 만든다. 전송 비트 레이트는 일반적으로 알려지지 않기 때문에, 듀레이션 기반의 접근 방식이 사용된다. 바이트 개수로서 불규칙 정도를 특정하는 것은 송신기로 하여금, 신호 보낸 한계치가 초과되지 않도록 전송 스트림을 주의하여 체크할 것을 요할 것이다. 이러한 접근방법은 모든 서버들로부터 많은 프로세싱 전력을 요한다. 그것은 또한, 서버들에 대한 버퍼링 검증자를 특정할 것 역시 필요로 한다. 코딩 화상들이나 프레임들의 불규칙 정도를 특정하는 것은 매우 조악한 일인데, 이는 임의의 슬라이스 배열을 지원하지 않는 디코더들을 위한 간단한 슬라이스 인터리빙 방법이, 디코딩 순서를 복구하기 위해 버퍼링의 최소 레이턴시가 얻어질 수 있게 서브-화상 해상도(resolution)를 필요로 할 것이기 때문이다. 서로 다른 타입의 집계(aggregation) 패킷들이 지배적인 네트워크 상태들에 따라 다르게 존재할 수 있기 때문에 RTP 패킷들의 개수로서 불규칙 정도를 특정하는 것은 적절한 것으로 간주 되지 않는다. 따라서, 한 RTP 패킷은 가변하는 데이터 량을 포함할 수 있다. 서로 다른 SEI 메시지들이 지배적 네트워크 상태들에 따라 다르게 전송될 것이다. 이를테면, 상대적으로 좋지 못한 상태에서는 장면 정보 SEI 메시지 같이 에러 복구를 목적으로 하는 SEI 메시지들을 전송하는 것이 유리할 수 있다. 따라서, 모든 타입의 NAL 유닛들의 개수로 나타내는 불규칙 정도는 지배적 네트워크 상태, 즉 무질서하게 전송되고 있는 SEI 및 파라미터 집합 NAL 유닛들의 크기에 따라 달라진다. 따라서, "모든 타입의 NAL 유닛들"이 양호한 유닛으로 간주 되지도 않았다. 결과적으로, VCL NAL 유닛들의 개수로서 불규칙 정도를 특정하는 것이 최선의 선택이라고 생각되었다. VCL NAL 유닛들은 JVT 코딩 표준에서 코딩(된) 슬라이스들, 코딩 데이터 구획들, 또는 시퀀스 마지막부 (end-of-sequence) 마커들로서 정의된다.
제안된 파라미터는 다음과 같다: num-reorder-VCL-NAL-units. 이것은 NAL 유닛 전달 순서상 패킷 스트림 내 임의의 VCL NAL 유닛 앞에 오고 RTP 시퀀스 넘버 순서나 VCL NAL 유닛을 포함하는 집계 패킷의 합성 순서상 VCL NAL 유닛 뒤에 오는 VCL NAL 유닛들의 최대량을 특정한다.
제안된 파라미터는 MIME 타입 공표를 통한 옵션 파라미터 또는 옵션 SDP 필드들로서 운반될 수 있다. 제안된 파라미터는 프로토콜과 세션 설정 절차 단계에 따라 다르게, 디코더 사양 또는 스트림 특성들 혹은 그 둘 모두를 가리킬 수 있다.
num-reorder-VCL-NAL-units 파라미터에 따라 구축된 버퍼의 버퍼 사이즈는 바이트 단위로 정확히 특정될 수 없다. 버퍼링 메모리 요건이 정확히 알려진 수신기들의 설계를 가능하게 하기 위해, 디코딩 시간 부합성에 대한 사양이 제안된다. 디코딩 시간 부합성은 가정적 버퍼링 모델을 이용해 특정되는데, 이 모델은 일관된 입력 비트 레이트를 전제하는 것이 아니라, 오히려 스트리밍 서버들이 그 모델을 포함하여 패킷 스트림이 그 모델에 순응할 것을 보장하도록 요구한다. 특정된 가정적 버퍼 모델은, 가능하게는 버스트형 패킷 레이트를 평탄하게 하고 전송 순서에서 디코딩 순서로 NAL 유닛들을 재배열하여 그 결과에 따른 비트스트림이 일정한 비트 레이트로 가정적 디코더에 입력될 수 있도록 한다.
이하의 설명에서, 본 발명은 인코더-디코더 기반 시스템을 이용해 설명될 것이나, 본 발명이 비디오 신호들이 저장되는 시스템들에서도 구현될 수 있다는 것은 자명한 일이다. 저장되는 비디오 신호들은 인코딩 후에 저장된 인코딩 신호들로서나 인코딩 및 디코딩 프로세스 후에 저장된 디코딩 신호들로서, 인코딩 전에 저장되는 코딩되지 않은 신호들일 수 있다. 예를 들어, 인코더는 디코딩 순서에 따른 비트스트림들을 발생한다. 파일 시스템은 디코딩 순서 등에 따라 캡슐화되고 파일로서 저장되는 오디오 및/또는 비디오 비트스트림들을 수신한다. 그 외에, 인코더와 파일 시스템은, 화상들과 NAL 유닛들의 주관적 중요도를 알리고 특히 서브-시퀀스들에 관한 정보를 포함하는, 메타데이터를 생성할 수 있다. 파일은 스트리밍 서버가 NAL 유닛들을 읽고 이들을 RTP 패킷들로 캡슐화할 수 있는 데이터베이스 안에 저장될 수 있다. 사용중인 메타데이터 옵션 및 데이터 접속에 따라, 스트리밍 서버는 디코딩 순서와 다르게 패킷들의 전송 순서를 변경하고, 서브 시퀀스들을 추방하고, 있다면 어떤 SEI 메시지들이 전송될지를 결정하는 등의 동작을 수행할 수 있다. 수신단에서 RTP 패킷들이 수신 및 버퍼링 된다. 통상적으로, NAL 유닛들이 먼저 바른 순서로 재정렬되고 그런 다음 NAL 유닛들이 디코더로 전달된다.
또, 이하의 설명에서 본 발명이 인코더-디코더 기반 시스템을 이용해 기술되겠지만, 인코더가 코딩된 데이터를 스트리밍 서버와 같은 다른 구성 요소로 디코딩 순서에 맞춰 출력 및 전송하는 시스템들에서도 구현될 수 있다는 것은 자명한 일이며, 여기서 상기 다른 구성요소는 디코딩 순서에서 다른 순서로 코딩 데이터를 재정렬하고 그 재정렬된 형식의 코딩 데이터를 디코더로 포워드 한다.
본 발명에 따른 방법은 기본적으로, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 버퍼 사이즈를 정하는 것을 특징으로 한다. 본 발명에 따른 시스템은 기본적으로, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 버퍼 사이즈를 정하는 결정기(definer)를 더 포함함을 특징으로 한다. 본 발명에 따른 인코더는 기본적으로, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 버퍼 사이즈를 정하는 결정기(definer)를 더 포함함을 특징으로 한다. 본 발명에 따른 디코더는 기본적으로, 버퍼 사이즈를 가리키는 수신 파라미터에 따라 전치 디코딩 버퍼를 위한 메모리를 할당하는 프로세서를 포함하고, 상기 버퍼 사이즈는, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 규정됨을 특징으로 한다. 본 발명에 따른 전송 장치는 기본적으로, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 버퍼 사이즈를 정하는 결정기(definer)를 더 포함함을 특징으로 한다. 본 발명에 따른 수신 장치는 기본적으로, 버퍼 사이즈를 가리키는 수신 파라미터에 따라 전치 디코딩 버퍼를 위한 메모리를 할당하는 프로세서를 포함하고, 상기 버퍼 사이즈는, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 규정됨을 특징으로 한다. 본 발명에 따른 소프트웨어 프로그램은 기본적으로, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 버퍼 사이즈가 결정됨을 특징으로 한다. 본 발명에 따른 저장 매체는 기본적으로, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 버퍼 사이즈가 결정됨을 특징으로 한다. 본 발명에 따른 전자 장치는 적어도 두 전송 유닛들의 총 사이즈가 정해지고 그 총 사이즈에 기초해 최대 버퍼 사이즈가 정해지도록 버퍼 사이즈를 정하는 결정기(definer)를 더 포함함을 특징으로 한다.
비디오 비트스트림을 통한 어떤 디코딩 순서 정보에 대한 대체 시그날링이, 본 발명의 바람직한 실시예에 따라 이하에서 제시될 것이다. 디코딩 순서 넘버 (DON, Decoding Order Number)가 NAL 유닛들의 디코딩 순서, 다르게는 NAL 유닛들의 디코더로의 배달 순서를 가리킨다. 이제부터, DON은 일반성을 잃지 않은 16 비트 부호미정(unsigned) 정수라고 가정한다. 한 NAL 유닛의 DON을 D1이라 하고, 다른 NAL 유닛의 DON을 D2라고 하자. D1<D2이고 D2-D1<32768이거나, D1>D2이고 D1-D2>=32768이면, NAL 유닛 전송 순서상, D1과 동일한 DON을 가진 NAL 유닛이 D2와 동일한 DON을 갖는 NAL 유닛에 앞선다. D1<D2이고 D2-D1>=32768이거나, D1>D2이고 D1-D2<32768이면, NAL 유닛 전송 순서상, D2과 동일한 DON을 가진 NAL 유닛이 D1와 동일한 DON을 갖는 NAL 유닛에 앞선다. 서로 다른 기본 코딩 화상들과 결부된 NAL 유닛들은 동일한 DON 값을 갖지 않는다. 동일한 기본 코딩 화상들과 NAL 유닛들은 동일한 DON 값을 가질 수 있다. 기본 코딩 화상의 모든 NAL 유닛들이 동일한 DON 값을 가지는 경우, 기본 코딩 화상과 결부된 중복 코딩 화상의 NAL 유닛들은 기본 코딩 화상의 NAL 유닛들과 동일한 DON 값을 가져야 할 것이다. 동일한 DON값을 갖는 NAL 유닛들의 NAL 유닛 전송 순서는 다음과 같음이 바람직하다:
1. 존재한다면, 화상 경계기호(delimetr) NAL 유닛들
2. 존재한다면, 시퀀스 파라미터 집합 NAL 유닛들
3. 존재한다면, 화상 파라미터 집합 NAL 유닛들
4. 존재한다면, SEI NAL 유닛들
5. 존재한다면, 기본 코딩 화상의 코딩 슬라이스 및 슬라이스 데이터 구획 NAL 유닛들
6. 존재한다면, 중복 코딩 화상들의 코딩 슬라이스 및 슬라이스 데이터 구획 NAL 유닛들
7. 존재한다면, 필러(Filler) 데이터 NAL 유닛
8. 존재한다면, 시퀀스 마지막 NAL 유닛
9. 존재한다면, 스트림 마지막 NAL 유닛
본 발명은 코딩 시스템들의 버퍼링 효율을 향상시킨다. 본 발명을 이용함으로써, 전치 디코딩 버퍼가 얼마나 많이 필요로 되는지를 디코딩 장치에 알릴 수 있다. 따라서, 디코딩 장치에서 필요한 것 이상으로 전치 디코딩 버퍼를 위한 메모리를 할당할 필요가 없게 된다. 또한 전치 디코딩 버퍼 오버플로를 피할 수 있다.
도 1은 재귀적 시간 확장 방식의 예를 보인 것이다.
도 2는 한 시퀀스의 화상들이 인터리빙 방식을 통해 둘 이상의 독자적 코딩 스레드들로 분할되는 비디오 중복 코딩이라 불리는 방식을 도시한 것이다.
도 3은 잠정적으로 압축 효율을 향상시키는 예측 구조의 예를 나타낸 것이다.
도 4는 에러 회복성을 향상하는데 사용될 수 있는 인트라 화상 연기 방법의 예를 나타낸 것이다.
도 5a 및 5b는 인코딩 비디오 스트림의 화상들에 대한 서로 다른 종래의 번호 매기기 방식을 보인 것이다.
도 6a는 계층 1에서 서브-시퀀스를 포함하는 화상 스트림의 예를 나타낸 것이다.
도 6b는 계층 1에서 서브-시퀀스를 가진 두 그룹의 화상들을 포함하는 화상 스트림의 예를 보인 것이다.
도 6c는 서로 다른 화상들의 그룹으로 된 화상 스트림의 예를 보인 것이다.
도 7은 계층 1에서 서브-시퀀스를 포함하는 화상 스트림의 다른 예를 나타낸 것이다.
도 8은 본 발명에 따른 시스템의 바람직한 실시예를 도시한 것이다.
도 9는 본 발명에 따른 인코더의 바람직한 실시예를 도시한 것이다.
도 10은 본 발명에 따른 디코더의 바람직한 실시예를 도시한 것이다.
도 11a는 본 발명에 따라 사용될 수 있는 NAL 패킷 포맷의 예를 나타낸 것이다.
도 11b는 본 발명에 따라 사용될 수 있는 NAL 패킷 포맷의 다른 예를 나타낸 것이다.
도 12는 전치 디코더 버퍼에서의 전송 유닛들의 버퍼링 예를 도시한 것이다.
패킷 해제 규칙 이면의 일반 개념은, NAL 유닛들 같은 전송 유닛들을 전송 순서에서 NAL 유닛 디코딩 순서로 재정렬하는 것이다.
수신기는 수신기 버퍼 (또는 전치 디코더 버퍼)를 포함하며, 이것은 패킷들을 전송 순서에서 NAL 유닛 디코딩 순서로 재정렬하는데 사용된다. 본 발명의 전형적 실시예에서, 수신기 버퍼 사이즈는 바이트 개수의 관점에서 deint-buf-size 파라미터의 값보다 크거나 같은, 가령 1.2 * deint-buf-size MIME 파라미터의 값으로 정해진다. 수신기는 전송 지연 지터에 대한 버퍼링 역시 고려하여, 전송 지연 지터 버퍼링을 위한 별도의 버퍼를 예비하거나, 전송 지연 지터를 위한 버퍼를 수신기 버퍼와 결합 (하고 그에 따라 수신기 버퍼에 지연 지터 버퍼링을 위한 약간의 추가 공간을 마련) 할 수 있다.
수신기는 들어오는 NAL 유닛들을 수신 순서에 따라 수신기 버퍼 안에 다음과 같이 저장한다. 집계 패킷들의 NAL 유닛들이 개별적으로 수신기 버퍼에 저장된다. 모든 NAL 유닛들에 대한 DON 값이 산출되어 저장된다.
이제부터, N을, NAL 유닛 전송 순서로는 패킷 스트림의 어떤 VCL NAL 유닛에 앞서고 디코딩 순서로는 그 VCL NAL 유닛 뒤에 오는 VCL NAL 유닛들의 최대량을 특정하는 선택적 num-reorder-VCL-NAL-units 파라미터 (인터리빙-깊이 파라미터) 값이라고 한다. 이 파라미터가 존재하지 않으면, 0인 값을 함의할 수 있다.
비디오 스트림 전송 세션이 초기화될 때, 수신기(8)는 VCL NAL 유닛들의 적어도 N 개의 구획들을 저장하도록 수신 버퍼(9.1)를 위한 메모리를 할당한다. 그런 다음 수신기는 비디오 스트림 받기를 시작하고 수신된 VCL NAL 유닛들을 수신 버퍼 안에 저장한다. 초기 버퍼링은,
- 적어도 N 개 구획의 VCL NAL 유닛들이 수신 버퍼(9.1) 안에 저장될 때까지 지속 되거나,
- max-don-diff MIME 파라미터가 존재하면, 함수 don_diff(m,n)이max-don-diff의 값보다 커질 때까지 지속 되거나, (n은 수신된 NAL 유닛들 중 가장 큰 AbsDON 값을 가진 NAL 유닛에 해당하고, m은 수신된 NAL 유닛들 중 가장 작은 AbsDON 값을 가진 NAL 유닛에 해당한다)
- 초기 버퍼링이 선택적 init-buf-time MIME 파라미터 값보다 크거나 같은 듀레이션 동안 지속 되었을 때까지 지속 된다.
함수 don_diff(m,n)은 다음과 같이 특정된다:
If DON(m)==DON(n), don_diff(m,n)=0
If (DON(m)<DON(n) and DON(n)-DON(m)<32768),
don_diff(m,n)=DON(n)-DON(m)
If (DON(m)>DON(n) and DON(m)-DON(n)>=32768),
don_diff(m,n)=65536-DON(m)+DON(n)
If (DON(m)<DON(n) and DON(n)-DON(m)>=32768),
don_diff(m,n)=-(DON(m)+65536-DON(n))
If (DON(m)>DON(n) and DON(m)-DON(n)<32768),
don_diff(m,n)=-(DON(m)-DON(n))
DON(i)는 전송 순서상의 인덱스 i를 갖는 NAL 유닛의 디코딩 순서 넘버이다.
don_diff(m,n)의 양의 값은 전송 순서 인덱스 n을 가진 NAL 유닛이, 디코딩 순서에 있어, 전송 순서 인덱스 m을 가진 NAL 유닛 뒤에 온다는 것을 가리킨다.
AbsDON은 65535 다음에 0으로 회귀하지 않는 NAL 유닛의 디코딩 순서 넘버를 나타낸다. 달리 표현하면, AbsDON은 다음과 같이 산출된다:
m과 n이 전송 순서에 있어 연속되는 NAL 유닛들이라고 하자. 전송 순서상 맨 최초의 NAL 유닛 (그 인덱스가 0임)에 대해, AbsDON(0)=DON(0)이다. 다른 NAL 유닛들에 있어, AbsDON은 다음과 같이 산출된다:
If DON(m)==DON(n), AbsDON(n)=AbsDON(m)
If (DON(m)<DON(n) and DON(n)-DON(m)<32768),
AbsDON(n)=AbsDON(m)+DON(n)-DON(m)
If (DON(m)>DON(n) and DON(m)-DON(n)>=32768),
AbsDON(n)=AbsDON(m)+65536-DON(m)+DON(n)
If (DON(m)<DON(n) and DON(n)-DON(m)>=32768),
AbsDON(n)=AbsDON(m)-(DON(m)+65536-DON(n))
If (DON(m)>DON(n) and DON(m)-DON(n)<32768),
AbsDON(n)=AbsDON(m)-(DON(m)-DON(n))
여기서 DON(i)는 전송 순서에 있어 인덱스 i를 갖는 NAL 유닛의 디코딩 순서 넘버이다.
수신기에서는 보통 두 개의 버퍼링 상태가 존재한다: 초기 버퍼링 및 재생중 버퍼링. 초기 버퍼링은 RTP 세션이 초기화될 때 일어난다. 초기 버퍼링 이후, 디코딩 및 재생이 시작되면 재생중 버퍼링이 사용된다.
수신기 버퍼(9.1)가 적어도 N 개의 VCL NAL 유닛들을 포함할 때, NAL 유닛들은 수신기 버퍼(9.1)로부터 하나씩 추방되어 디코더(2)로 보내진다. NAL 유닛들이 수신기 버퍼(9.1)로부터 이들이 저장되었을 때와 동일한 순서로 반드시 추방되어야 하는 것은 아니며, 이하에서 설명될 NAL 유닛들의 DON에 따라 추방된다. 디코더(2)로의 패킷 전달은 버퍼가 N 개의 VCL NAL 유닛들 미만, 즉, N-1 개의 VCL NAL 유닛들을 포함할 때까지 계속된다.
수신기 버퍼로부터 추방될 NAL 유닛들은 다음과 같이 결정된다:
- 수신기 버퍼가 적어도 N 개의 VCL NAL 유닛들을 포함하면, 버퍼가 N-1 개의 VCL NAL 유닛들을 포함할 때까지 아래에서 특정된 순서로서 NAL 유닛들이 수신기 버퍼로부터 추방되어 디코더로 보내진다.
- max-don-diff가 존재하면, don_diff(m,n)이 max-done-diff 보다 크게 되는 모든 NAL 유닛들 m이 이하에서 특정될 순서에 따라 수신기 버퍼로부터 추방되어 디코더로 보내진다. 여기서, n은 수신한 NAL 유닛들 중 가장 큰 AbsDON 값을 가진 NAL 유닛에 해당한다.
- ts라는 변수가, NAL 유닛 스트림의 최초 패킷이 수신되었을 때 0으로 초기화되었던 시스템 타이머의 값으로 설정된다. 수신기 버퍼가, 수신 시간 tr이 ts- tr>init-buf-time을 만족하는 NAL 유닛을 포함하면, 수신기 버퍼가 수신 시간 tr이 특정 조건을 만족하는 어떤 NAL 유닛도 포함하지 않을 때까지 이하에 특정되는 순서로서 NAL 유닛들이 디코더로 보내지(고 수신기 버퍼에서 추방된다).
NAL 유닛들이 디코더로 보내지는 순서는 다음과 같이 특정된다.
PDON을 RTP 세션의 시작시 0으로 초기화되는 변수라고 하자. 한 DON 값과 결부된 각 NAL 유닛 마다, 다음과 같이 DON 거리가 산출된다. NAL 유닛의 DON 값이 PDON 값보다 크면, DON 거리는 DON-PDON과 같아진다. 그렇지 않으면, DON 거리는 65535-PDON+DON+1과 같아진다.
NAL 유닛들은 DON 거리의 오름 차순으로 디코더로 전달된다. 여러 NAL 유닛들이 동일한 DON 거리 값을 공유할 때, 이들은 아무 순서로나 디코더로 보내질 수 있다. 원하는 수의 NAL 유닛들이 디코더로 보내졌을 때, PDON의 값은 디코더로 보내진 마지막 NAL 유닛에 대한 DON 값으로 설정된다.
부가적 패킷해제(De- Packetization ) 가이드라인들
작동가능한 H.264 패킷해제기(de-packetizer)를 구현하기 위해, 다음과 같은 부가적 패킷해제 규칙들이 사용될 수 있다:
(가령, 게이트웨이들의) 인텔리전트 RTP 수신기들은 손실된 코딩 슬라이스 데이터 구획들 A (DPAs)을 식별할 수 있다. 한 손실 DPA가 발견되면, 게이트웨이는 해당하는 코딩 슬라이스 데이터 구획들 B 및 C를 보내지 않기로 결정할 수 있는데, 이들의 정보가 H.264 디코더들에 의미가 없기 때문이다. 이런 식으로 네트워크 요소는 복잡한 비트스트림을 분석하지 않고 쓸모없는 패킷들을 버림으로써, 네 트워크 로드를 줄일 수 있게 된다.
(가령 게이트웨이들의) 인텔리전트 RTP 수신기들은 손실된 FU (Fractiona Units)fmf 식별할 수 있다. 손실된 FU가 발견되면, 게이트웨이는 동일한 NAL 유닛의 이어지는 FU들을 전송하지 않기로 결정할 수 있는데, 이는 그것들의 정보가 H.264 디코더들에 의미가 없기 때문이다. 이렇게 네트워크 요소가 복잡한 비트스트림을 분석하지 않고 쓸모없는 패킷들을 버림으로써 네트워크 로드를 줄일 수 있다.
패킷들이나 NALU들을 버려야 하는 인텔리전트 수신기들은 먼저, NAL 유닛 타입 옥텟(octet)(8비트 배열)의 NRI 필드 값이 0이 되는 모든 패킷들/NALU들을 버릴 수 있을 것이다. 이것이 사용자 경험 상의 영향을 최소화할 수 있다.
다음으로 디코더에서의 최대 버퍼 사이즈를 가리키기 위해 사용될 파라미터가 설명될 것이다. 이 파라미터 deit-buf-size는, 패킷화 모드를 가리키는 패킷화 모드 파라미터가 존재하지 않거나 패킷화 모드 파라미터의 값이 0이나 1로 될 때는 보통 존재하지 않는다. 이 파라미터는 패킷화 모드 파라미터의 값이 2가 될 때 존재할 것이다.
deint-buf-size 파라미터의 값은 이하의 가정적 디인터리빙 버퍼 모델과 결부되어 특정된다. 처음에, 그 가정적 디인터리빙 버퍼는 비어있고, 최대 버퍼 점유도 m은 0으로 설정된다. 다음과 같은 프로세스가 그 모델에 사용된다:
i) 전송 순서상의 다음 VCL NAL 유닛이 가정적 디인터리빙 버퍼로 삽입된다.
ii) s를 버퍼 내 VCL NAL 유닛들의 바이트 단위의 총 사이즈라고 한다.
iii) s가 m 보다 크면, m은 s와 같도록 설정된다.
iv) 가정적 디인터리빙 버퍼 내 VCL NAL 유닛들의 개수가 인터리빙-깊이의 값보다 작거나 같으면, 프로세스는 vii 단계부터 재개된다.
v) 가정적 디인터리빙 버퍼 내 VCL NAL 유닛들 중 디코딩 순서상 가장 이른 VCL NAL 유닛이, RFC XXXX의 섹션 5.5에 따라 VCL NAL 유닛들에 대한 DON 값들로부터 결정된다.
vi) 가장 이른 VCL NAL 유닛이 가정적 디인터리빙 버퍼로부터 추방된다.
vii) 전송 순서상 더 이상의 VCL NAL 유닛들이 존재하지 않으면, 프로세스는 종료된다.
viii) 프로세스가 i 단계부터 재개된다.
이 파라미터는 NAL 유닛 스트림의 특성이나 수신기 구성의 사양을 신호한다. 이 파라미터가 NAL 유닛 스트림의 특성을 신호하는데 사용되면, v로 칭할 이 파라미터의 값은 다음과 같도록 된다:
a) 가정적 디인터리빙 버퍼 모델에 의해 NAL 유닛 스트림이 완전히 처리될 때의 결과인 m 값이 v보다 작거나 같거나,
b) 버퍼 오버플로가 존재하는 한 디인터리빙 버퍼로부터 가장 이른 VCL NAL 유닛을 추방함으로써 결정되는 VCL NAL 유닛들의 순서가, 가정적 디인터리빙 버퍼로부터의 VCL NAL 유닛들의 추방 순서와 같게 된다.
결국, VCL NAL 유닛 디코딩 순서 북구를 위한 버퍼 사이즈가 적어도 바이트 단위의 deint-buf-size 값일 때, 수신기들은 VCL NAL 유닛 디코딩 순서를 재구성할 수 있음이 보장된다.
파라미터가 수신기 구성의 사양을 신호하기 위해 사용될 때, 수시기는 동일한 deint-buf-size 값을 특징으로 하는 어떤 NAL 유닛 스트림의 VCL NAL 유닛 디코딩 순서를 올바르게 재구성할 수 있다. 수신기가 diet-buf-size 값보다 크거나 같은 바이스 개수를 버퍼링할 때, 수신기는 전송 순서로부터 VCL NAL 유닛 디코딩 순서를 재구성할 수 있다.
비(non) VCL NAL 유닛들 역시 디인터리빙 버퍼 사이즈를 결정할 때 고려되어야 한다. 이 파라미터가 존재할 때, 모든 NAL 유닛들을 위한 디인터리빙 버퍼의 충분한 사이즈는 그 파라미터 값보다 20% 큰 값보다 작거나 같다.
그 파라미터가 존재하지 않으면, deint-buf-size로서 0이 사용된다. deint-buf-size 값은 가령 0에서 4294 967 295 (포함)까지의 범위 안에 든 정수가 된다.
이하에서 본 발명은 도 8의 시스템, 도 9의 인코더(1)와 가정적 참조 디코더 (HRD)(5) 및 도 10의 디코더(2)를 참조해 보다 상세히 설명될 것이다. 인코딩될 화상들은, 가령, 카메라, 비디오 리코더, 등의 비디오 소스(3)로부터의 비디오 스트림의 화상들일 수 있다. 비디오 스트림의 화상들(프레임들)은 슬라이스들 같은 더 작은 구획들로 나눠질 수 있다. 슬라이스들은 블록들로 더 나눠질 수 있다. 인코더(1)에서, 비디오 스트림은 전송 채널(4)을 통해 전송되거나 저장 매체 (미도시)로 갈 정보가 감축되도록 인코딩된다. 비디오 스트림의 화상들이 인코더(1)로 입력된다. 인코더는 인코딩될 화상들의 일부를 일시적으로 저장하기 위한 인코딩 버퍼(1.1)(도 9)를 포함한다. 인코더(1)는 또, 본 발명에 따른 인코딩 작업들이 적용될 수 있는 프로세서(1.2)와 메모리(1.3)를 포함한다. 메모리(1.3) 및 프로세서(1.2)는 전송 장치(6)와 공유되는 것일 수 통일 수도 있고, 아니면 전송 장치(6)가 전송 장치(6)의 다른 기능들을 위해 또 다른 프로세서 및/또는 메모리 (미도시)를 포함할 수도 있다. 인코더(1)는 모션 추정 및/도는 어떤 다른 작업들을 수행하여 비디오 스트림을 압축한다. 모션 추정시, 인코딩될 화상 (현 화상)과 이전 및/또는 이후 화상 사이의 유사점들을 모색한다. 유사점들이 찾아지면, 비교된 화상이나 그 일부가 인코딩될 화상의 참조 화상으로서 사용될 수 있다. JVT에서, 화상들의 디스플레이 순서와 디코딩 순서는 반드시 동일할 필요는 없으며, 참조 화상이 참조 화상으로서 사용되는 한 버퍼 (가령, 인코딩 버퍼(1.1)) 안에 저장되어 있어야 한다. 인코더(1)는 또, 화상들의 디스플레이 순서에 대한 정보를 전송 스트림 안에 삽입한다.
인코딩 프로세스로부터 인코딩된 화상들이 필요할 때 인코딩 화상 버퍼(5.2)로 이동한다. 인코딩 화상들은 인코더(1)로부터 전송 채널(4)을 경유해 디코더(2)로 전송된다. 디코더(2)에서, 인코딩 화상들이 디코딩되어 가능한 한 많은 것이 그 인코딩 화상들에 대응되는 미압축 화상들을 형성한다. 각각의 디코딩 화상은 디코딩 거의 직후에 디스플레이되지 않고 참조 화상으로 사용되지 않지 않으면, 디코더(2)의 DPB(2.1)에서 버퍼링 된다. 본 발명에 따른 시스템에서, 참조 화상 버퍼링 및 디스플레이 화상 버퍼링 둘은 결합되어 동일한 디코딩 화상 버퍼(2.1)를 사용한다. 이러한 것이 두 상이한 위치에 동일한 화상들을 저장해야 할 필요를 없게 하여, 디코더(2)의 메모리 요건을 축소시킬 수 있다.
디코더(1)는 또한 본 발명에 따른 디코딩 작업들이 적용될 수 있는 프로세서(2.2) 및 메모리(2.3)를 포함한다. 메모리(2.3)와 프로세서(2.2)는 수신 장치(8)와 공유된 것이거나, 그렇지 않고 수신 장치(8)가 수신 장치(8)의 다른 기능들을 위해 다른 프로세서 및/또는 메모리 (미도시)를 포함할 수 있다.
인코딩
이제 인코딩-디코딩 프로세스에 대해 보다 상세히 검토할 것이다. 비디오 소스(3)로부터의 화상들이 인코더(1)로 들어가고 바람직하게는 인코딩 버퍼(1.1)에 저장된다. 인코딩 프로세스는 첫 번째 화상이 인코더로 들어간 직후에 반드시 시작되는 것은 아니며, 소정 양의 화상들이 인코딩 버퍼(1.1)에서 사용가능한 뒤에 시작된다. 그러면 인코더(1)가 그 화상들에서 참조 프레임들로 사용될 적합한 후보자들을 찾으려고 시도한다. 이때 인코더(1)는 인코딩을 수행해 인코딩 화상들을 생성한다. 인코딩 화상들은, 가령, 예측 화상들 (P), 두 가지 예측 (bi-predictive) 화상들 (B), 및/또는 인트라 코딩 화상들 (I)일 수 있다. 인트라 코딩 화상들은 다른 어떤 화상들을 사용하지 않고 디코딩될 수 있으나, 다른 타입의 화상들은 이들이 디코딩될 수 있기 전에 적어도 한 참조 화상을 필요로 한다.
상술한 화상 타입들 중 어느 타입의 화상들이나 참조 화상으로 사용될 수 있다.
인코더는 두 개의 타임 스탬프들을 화상들에 첨부함이 바람직하다: 디코딩 타임 스탬프 (DTS) 및 출력 타임 스탬프 (OTS). 디코더는 그 타임 스탬프들을 사용해 정확한 디코딩 타임과 화상들을 출력 (디스플레이)할 타임을 판단할 수 있다. 그러나, 이들 타임 스탬프들이 반드시 디코더로 전송되는 것은 아니고, 디코더가 이들을 사용하는 것도 아니다.
인코더는 최하위 계층 0 상위의 한 개 이상의 계층들 상에서 서브-시퀀스들을 형성하기도 한다. 계층 0에서의 화상들은 독자적으로 디코딩 가능하지만, 그 상위 계층들에서의 화상들은 몇몇 하위 계층이나 계층들 상에서의 화상들에 따라 달라질 수 있다. 도 6a의 예에서, 계층 0과 계층 1의 두 계층들이 존재한다. 화상들 IO, P6 및 P12는 계층 0에 속하고, 한편 도 6a에 보이는 다른 화상들 P1-P5, P7-P11은 계층 1에 속한다. 한 화상 그룹 (GOP)의 각 화상이 그 동일한 GOP 내의 화상들만을 이용해 재구성될 수 있도록, 인코더가 화상 그룹들 (GOP)를 형성한다. 달리 표현하면, 한 GOP는 적어도 한 개의 독자적 디코딩 가능 화상과, 그 독자적 디코딩 가능 화상이 참조 화상이 되는 다른 모든 화상들을 포함한다. 도 7의 예에서는 두 화상 그룹들이 존재한다. 제1화상 그룹은 계층 0 위의 화상들 IO(0), P1(0), P3(0)과, 계층 1 위의 화상들 B2(0), 2xB3(0), B4(0), 2xB5(0), B6(0), P5(0), P6(0)를 포함한다. 각 화상 그룹의 계층 1 상의 화상들은 다시 서브-시퀀스들로서 정렬된다. 제1그룹 화상들의 제1서브-시퀀스는 화상들 B3(0), B2(0), B3(0)를포함하고, 제2서브-시퀀스는 화상들 B5(0), B4(0), B5(0)를포함하고, 제3서브-시퀀스는 화상들 B6(0), P5(0), P6(0)를 포함한다. 제2화상 그룹들의 서브-시퀀스는 화상들 B3(1), B2(1), B3(1)을 포함한다. 괄호 안의 넘버들은 그 화상이 속하는 화상 그룹에 정해진 비디오 시퀀스 ID를 나타낸다.
비디오 시퀀스 ID가 각 화상마다 전달된다. 그것은 보충 인핸스먼트 정보 데이터 안과 같이 비디오 스트림 안에서 전달될 수 있다. 비디오 시퀀스 ID는 JVT 코딩 표준의 RTP 페이로드 헤더 안과 같은 전송 프로토콜의 헤더 필드들을 통해 전송될 수도 있다. 독자적 GOP들에 대한 제안된 구획에 따른 비디오 시퀀스 ID가 MPEG-4 AVC 파일 포맷과 같은 비디오 파일 포맷의 메타데이터 안에 저장될 수 있다. 도 11a 및 11b는 본 발명에서 사용될 수 있는 NAL 패킷 포맷들의 예들을 보인 것이다. 그 패킷은 허더(11)와 페이로드 부분(12)을 포함한다. 헤더(11)는 에러 표시 필드(11.1) (F, forbidden(금지됨)), 최우선 필드(11.2), 및 타입 필드(11.3)를 포함함이 바람직하다. 에러 표시 필드(11.1)는 비트 에러 없는 NAL 유닛을 가리킨다. 바람직하게는, 에러 표시 필드가 설정되어 있을 때, 디코더는 비트 에러들이 페이로드나 NALU 타입 옥텟 내에 존재할 수 있음을 통지받는다. 그에따라 비트 에러들을 처리할 수 없는 디코더들은 그 패킷들을 버릴 수 있다. 최우선 필드(11.2)는 패킷의 페이로드 부분(12) 안에 캡슐화된 화상의 중요성을 가리키는데 사용된다. 전형적 구성에서, 최우선 필드는 다음과 같은 네 가지 상이한 값들을 가질 수 있다. 값 00은, (앞으로 참조하기 위해 사용될 수 있는) 저장된 화상들ㅇ을 재구성하는데 NALU의 콘텐츠가 사용되지 않는다는 것을 나타낸다. 그러한 NALU들은 참조 화상들의 무결성을 손상시키지 않고 버려질 수 있다. 00 이상의 값들은, NALU의 디코딩이 참조 화상들의 무결성을 유지하는데 필요로 된다는 것을 나타낸다. 또, 00 이상의 값들은, 인코더에서 판단된 것과 같이 상대적 전송 우선순위를 나타낸다. 인텔리전트 네트워크 요소들이 이러한 정보를 이용해 더 중요한 NALU들을 덜 중요한 NALU들보다 잘 보호할 수 있게 된다. 11은 최고의 전송 우선 순위로서 그 다음이 10, 그 다음이 01, 그리고 마지막으로 00이 가장 낮다.
NALU의 페이로드 부분(12)은 적어도 비디오 시퀀스 ID 필드(12.1), 필드 표시자(12.2), 사이즈 필드(12.3), 타이밍 정보(12.4) 및 인코딩 화상 정보(12.5)를 포함한다. 비디오 시퀀스 ID 필드(12.1)은 화상이 속한 비디오 시퀀스의 넘버를 저장하는데 사용된다. 필드 표시자(12.2)는 2-프레임 화상 포맷이 사용될 때 화상이 제1프레임인지 제2프레임인지 여부를 신호하는 데 사용된다. 두 프레임들 모두 별개의 화상들로서 코딩될 것이다. 1에 해당하는 제1필드 표시자는, NALU가 디코딩 순서상 동일 프레임의 두 번째 코딩 필드를 앞서는 코딩 프레임 또는 코딩 필드에 속한다는 것을 신호 보냄이 바람직하다. 0에 해당하는 제1필드 표시자는, NALU가 디코딩 순서상 동일 프레임의 제1코딩 필드 뒤에 오는 코딩 필드에 속한다는 것을 신호한다. 타이밍 정보 필드(11.3)는 필요한 경우 시간 관련 정보를 변환하는데 사용된다.
NAL 유닛들이 서로 다른 종류의 패킷들을 통해 전달될 수 있다. 이러한 바람직한 실시예에서, 서로 다른 패킷 포맷들에는 단순한 패킷들과 집계(aggregation) 패킷들이 포함된다. 집계 패킷들은 싱글-타임 집계 패킷들과 멀티-타임 집계 패킷들로 더 나뉠 수 있다.
본 발명에 따른 단순 패킷은 한 개의 NALU로 이뤄진다. RTP 시퀀스 넘버 순서의 단순 패킷들을 캡슐화 해제함으로써 조성된 NAL 유닛 스트림은 NAL 유닛 전달 순서를 따라야 할 것이다.
집계 패킷들은 이러한 페이로드 사양의 패킷 집계 방식이다. 이 방식은 (대 략 1500 바이트의 이더넷 MTU 사이즈로 흔히 제한되는 MTU를 갖는) 유선 IP 네트워크와, 254 바이트 혹은 그보다 약간 적은 선호되는 전송 유닛 사이즈들을 가진 IP 또는 비 IP (가령, H.324/M) 기반 무선 네트워크들의 두 상이한 타입 네트워크들의 크게 상이한 MTU 사이즈들을 반영하기 위해 도입된다. 두 세계간의 미디어 트랜스코딩을 방지하기 위해, 또한 원치않는 패킷화 오버헤드를 피하기 위해, 패킷 집계 방식이 도입된다.
싱글-타임 집계 패킷 (STAP)은 동일한 NALU 시간을 가진 NALU들을 모은다. 저마다, 멀티-타임 집계 패킷들은 잠정적으로 차이가 나는 NALU-타임을 가진 NALU들을 모은다. NALU 타임스탬프 오프셋의 길이에 있어 차이가 나는 두 상이한 MTAP들이 정의된다. NALU-시간이라는 용어는, NALU가 그 자신의 RTP 패킷을 통해 전송된다면 RTP 타임스탬프가 가질 수 있는 값으로서 정의된다.
MTAP들과 STAP는 본 발명의 바람직한 실시예에 따른 비제한적 패킷화 규칙들을 따른다는 점을 공유한다. RTP 타임스탬프는 집계될 모든 NALU들의 NALU 타임들의 최소값으로 설정되어져야 한다. NALU 타입 옥텟의 타입 필드는 표 1에 지시된 것과 같은 적절한 값으로 설정되어져야 한다. 에러 표시자 필드(11.1)는 집계된 NALU들의 모든 에러 표시자 필드들이 0일 때 클리어(clear) 되고, 그렇지 않으면 셋(set)으로 된다.
타입 패킷 타임스탬프 오프셋 필드 길이(비트)
0x18 STAP 0
0x19 MTAP16 16
0x20 MTAP24 24
집계 패킷의 NALU 페이로드는 한 개 이상의 집계 유닛들로 이뤄진다. 집계 패킷은 필요한 한 많은 집계 유닛들을 운반할 수 있으나, 분명한 것은 집계 패킷의 총 데이터량이 한 IP 패킷에 맞춰져야 하고, 그 사이즈는 결과적 IP 패킷이 MTU 사이즈 보다 작도록 선택되어져야 한다.
동일한 NALU-타임을 공유하는 NALU들을 모을 집계할 때마다 싱글-타임 집계 패킷 (STAP)이 사용되어야 한다. STAP의 NALU 페이로드는 비디오 시퀀스 ID 필드(12.1) (가령, 7 비트) 및 필드 표시자(12.2)로 이뤄지며 그 뒤에 싱글-화상 집계 유닛들 (SPAU)가 뒤따른다.
다른 대안적 실시예에서, 싱글-화상 집계 패킷 (STAP)의 NALU 페이로드는 16 비트 부호 미지정 디코딩 순서 넘버 (DON)로 이뤄지고 그 뒤에 단일-화상 집계 유닛들(SPAU)이 뒤따른다.
이러한 사양에 따른 비디오 시퀀스는 NALU 스트림의 다른 부분들과 독립적으로 디코딩될 수 있는 NALU 스트림의 임의 부분일 수 있다.
프레임은 별개의 화상들로서 코딩될 두 필드들로 이뤄진다. 1에 해당하는 제1필드 표시자는, NALU가 디코딩 순서상 동일 프레임의 제2코딩 필드에 앞서는 코딩 프레임 또는 코딩 필드에 속한다는 것을 신호한다. 0에 해당하는 제1필드 표시자는, NALU가 디코딩 순서상 동일 프레임의 제1코딩 필드 뒤에 이어지는 코딩 필드에 속한다는 것을 신호한다.
싱글-화상 집계 유닛은, 이어지는 NALU의 바이트 단위의 크기를 나타내는 16 비트 부호 미지정 사이즈 정보 (이들 두 옥텟은 제외하고, NALU의 NALU 타입 옥텟은 포함함) 등으로 이뤄지고, 그 뒤에 NALU 타입 바이트를 포함하는 NALU 자체가 따라온다.
멀티-타임 집계 패킷 (MTAP)은 STAP와 유사한 구조를 가진다. 그것은 NALU 헤더 바이트 및 한 개 이상의 멀티-화상 집계 유닛들로 이뤄진다. 서로 다른 MTAP 필드들 사이에서의 선택은 어플리케이션마다 다르다 -- 타임스탬프 오프셋이 클수록 MTAP의 융통성 역시 높아지나, 오버헤드 역시 더 증가한다.
서로 다른 두 멀티-타임 집계 유닛들이 이 사양에 정의된다. 이들 둘 모두 이어지는 NALU의 16 비트 부호 미지정 사이즈 정보 (STAP의 사이즈 정보와 동일) 등으로 이뤄진다. 이러한 16비트 외에, 비디오 시퀀스 ID 필드(12.1) (가령, 7 비트), 필드 표시자(12.2) 및 이 NALU에 대한 n 비트의 타이밍 정보 역시 존재하며, 여기서 n은 가령 16이나 24일 수 있다. 타이밍 정보 필드는, MTAP 내 각 NALU의 RTP 패킷의 RTP 타임스탬프 (NALU-타임)가 MTAP의 RTP 타임스탬프로부터의 타이밍 정보를 더함으로써 생성될 수 있도록 설정되어져야 한다.
다른 대안적 실시에에서, 멀티-타임 집계 패킷 (MTAP)는 NALU 헤더 바이트, 디코딩 순서 넘버 베이스 (DONB) 필드(12.1) (가령 16 비트), 및 한 개 이상의 멀티-화상 집계 유닛들로 이뤄진다. 서로 다른 두 멀티-타임 집계 유닛들은 이 경우 다음과 같이 정의된다. 둘 모두 이어지는 NALU의 16 비트 부호 미지정 사이즈 정보 (STAP 안에서의 사이즈 정보와 동일) 등으로 이뤄진다. 이들 16 비트 이외에, 디코딩 순서 넘버 델타 (DOND) 필드(12.5) (가령, 7 비트), 및 이 NALU에 대한 n 비트의 타이밍 정보 역시 존재하며, 여기서 n은 가령 16이나 24일 수 있다. 이어지는 NALU의 DON은 DONB+DOND에 해당한다. 타이밍 정보 필드는, MTAP 내 각 NALU의 RTP 패킷의 RTP 타임스탬프 (NALU-타임)가 MTAP의 RTP 타임스탬프로부터의 타이밍 정보를 더함으로써 생성될 수 있도록 설정되어져야 한다. DONB는 MTAP의 NAL 유닛들 사이에서 DON의 최소값을 포함해야 한다.
본 발명에 따른 버퍼링 모델의 양태는 다음과 같은 파라미터들을 통해 통제됨이 바람직하다: 초기 입력 주기 (가령, 90 kHz 클록의 초당 시간주기로 나타냄) 및 가정적 패킷 입력 버퍼의 사이즈 (가령, 바이트로 나타냄). 초기 입력 주기의 디폴트 및 가정적 패킷 입력 버퍼 사이즈의 디폴트는 0임이 바람직하다. PSS 클라이언트들은 사양 교환 프로세스 중에 보다 큰 버퍼를 지원한다는 자신들의 사양을 신호할 수 있다.
최대 비디오 비트 레이트가, 이를테면, SDP의 미디어-레벨 대역폭 속성 또는 전용 SDP 파라미터를 통해 신호될 수 있다. 비디오 레벨 대역폭 속성이 프레젠테이션 내용 안에 존재하지 않으면, 최대 비디오 비트 레이트는 사용 중인 비디오 코딩 프로파일 및 레벨에 따라 정의된다.
각 스트림에 대한 초기 파라미터 값들이, 가령 MIME 타입 파라미터들이나 그와 유사한 비표준 SDP 파라미터들을 이용해 스트림의 SDP 내용 안에서 신호 보내질 수 있다. 신호 보내진 파라미터 값들이 해당 파라미터 디폴트 값들에 우선한다. SDP 내용 안에서 신호 보내진 값들은 스트림의 시작부터 스트림의 끝까지 중단 없는 재생을 보장한다 (일관된 지연의 안정적 전송 채널을 전제함).
PSS 서버들이 RTSP PLAY(재생) 요청에 대한 응답으로서 파라미터 값들을 갱신할 것이다. 갱신된 파라미터 값이 존재하면, 그 값이 SDP 내용 안에 신호된 값 도는 PSS 버퍼링 모델 동작시의 디폴트 파라미터 값을 대체할 것이다. 갱신된 파라미터 값은 지시된 재생 범위 안에서만 유효하며, 그 이후부터는 효력이 없다. 일관된 지연의 안정적 전송 채널을 전제할 때, 갱신된 파라미터 값들은 PLAY 요청에 대한 응답으로서 지시된 실질적 범위의 중단 없는 재생을 보장한다. 지시된 가정적 입력 패킷 버퍼 사이즈 및 초기 입력 주기는 SDP 내용 안의 해당 값들이나 해당 디폴트 값들 중 아무나 유효한 것보다 적거나 같아야 한다.
서버 버퍼링 검증자가 특정 버퍼링 모델에 따라 특정된다. 그 모델은 가정적 패킷 입력 버퍼에 기반한다.
버퍼링 모델이 다음에 설명된다. 버퍼는 처음에 비어 있다. PSS 서버가, 비디오 페이로드를 가진 각각의 전송된 RTP 패킷을, 그것이 전송될 때 즉시 가정적 패킷 입력 버퍼(1.1)에 더한다. RTP나 임의의 하위 계층에서의 모든 프로토콜 헤더들이 추방된다. 데이터는 초기 입력 기간으로 불리는 기간 중에는 가정적 패킷 입력 버퍼로부터 추방되지 않는다. 초기 입력 주기는 최초의 RTP 패킷이 가정적 패킷 입력 버퍼에 더해질 때 시작된다. 초기 입력 기간이 만료될 때, 가정적 패킷 입력 버퍼로부터의 데이터 추방이 시작된다. 데이터 추방은, 가정적 패킷 입력 버퍼(1.1)가 비어있지 않다면, 최대 비디오 비트 레이트로 일어남이 바람직하다. 가정적 패킷 입력 버퍼(1.1)로부터 추방된 데이터는 가정적 참조 디코더(5)로 입력된다. 가정적 참조 디코더(5)는 인코딩된 비디오 스트림이 설정된 파라미터들에 의해 확실히 디코딩 가능하도록 가정적 디코딩을 수행하고, 아니면 가정적 참조 디코더(5)가 가령 가정적 참조 디코더(5)의 화상 버퍼(5.2)가 오버플로 되었음을 알게 될 때, 버퍼 파라미터들이 변경될 수 있다. 이 경우, 새 파라미터들 역시 수신 장치(8)로 전송되고, 그 안에서 버퍼들은 그에 맞춰 다시 초기화된다.
PSS 서버 같은, 인코딩 및 전송 장치(1)는, 전송된 RTP 패킷 스트림이 다음과 같은 요건들을 따르는지를 확인해야 한다:
- 버퍼링 모델이, 디폴트이거나 신호 보내진 버퍼링 파라미터 값들과 함께 사용되어야 한다. 신호 보내진 파라미터 값들은 해당 디폴트 파라미터 값들에 우선한다.
- 가정적 패킷 입력 버퍼의 점유도는, 디폴트 또는 신호 보내진 버퍼 사이즈를 초과해서는 안된다.
- 가정적 패킷 입력 버퍼의 출력 비트스트림은 가정적 참조 디코더의 규정들을 따라야 한다.
버퍼링 모델이 사용되고 있을 때, PSS 클라이언트는, RTP 패킷 스트림이 일관된 지연의 안정적 전송 채널을 통해 전송되는 경우, PSS 서버 버퍼링 검증자에 따른 RTP 패킷 스트림을 수신할 수 있어야 한다. 또, PSS 클라이언트의 디코더는 수신된 패킷 스트림의 RTP 타임스탬프들에 의해 규정된 정확한 레이트로서 프레임들을 출력해야 한다.
전송
인코딩된 화상들의 전송 및/또는 저장 (및 선택적인 것으로서 버추얼 디코딩)은 최초의 인코딩(된) 화상이 준비된 직후 시작될 수 있다. 이 화상이 반드시 디코더 출력 순서상의 최초의 것이 되는 것은 아닌데, 그 이유는 디코딩 순서와 출력 순서가 같지 않을 수 있기 때문이다.
비디오 스트림의 최초 화상이 인코딩될 때, 전송이 시작될 수 있다. 인코딩 화상들은, 선택사항으로서, 인코딩 화상 버퍼(1.2)로 저장된다. 전송이 가령 비디오 스트림의 소정 부분이 인코딩된 다음인, 그 뒤의 단계에서 시작될 수도 있다.
디코더(2)는 또한, 화상 순서 카운트들의 정렬 등을 이용해 정확한 순서로 디코딩(된) 화상들을 출력할 수도 있으며, 그에 따라 재정렬 프로세스가 명확하고도 표준에 따라 정의될 필요가 있다.
패킷화 해제 (De- packetizing )
패킷화 해제 프로세스는 구성에 종속적이다. 따라서, 이하의 설명은 적절한 구성에 대한 비제한적 예가 될 것이다. 다른 방식들 역시 당연히 사용될 수 있다. 기술되는 알고리즘들과 관련된 최적화가 있을 수 있다.
이러한 패킷화 해제 규칙들 이면의 일반 개념이, NAL 유닛들을 전송 순서에서 NAL 유닛 배달 순서로 재정렬하는 것이다.
디코딩
다음으로, 수신기(8)의 동작이 설명될 것이다. 수신기(8)는 한 화상에 속하는 모든 패킷들을 모으고, 이들을 합당한 순서로 놓는다. 순서의 엄격성은 사용하는 프로파일에 따라 달라진다. 수신된 패킷들은 수신 버퍼(9.1) (전치 디코딩 버퍼) 안에 저장된다. 수신기(8)는 쓸모없는 것은 어느 것이나 버리고, 그 나머지를 디코더(2)로 보낸다. 집계 패킷들은 이들의 페이로드를 NALU들을 운반하는 개별 RTP 패킷들 안에 내려 놓는 것으로서 처리된다. 이들 NALU들은 마치 이들이 별개의 RTP 패킷들을 통해 이들이 집계 패킷에 정렬된 순서로 수신된 것처럼 처리된다.
이제부터 N을, NAL 유닛 전달 순서에 있어 패킷 스트림 내 어느 VCL NAL 유닛에 앞서고 RTP 시퀀스 넘버 순서나 VCL NAL 유닛을 포함하는 집계 패킷의 조성 순서상에서 상기 VCL NAL 유닛 뒤에 오는, VCL NAL 유닛들의 최대량을 특정하는 옵션으로서의 num-reorder-VCL-NAL-units MIME 타입 파라미터 값이라고 한다. 이 파라미터가 존재하지 않는 경우, 0 값의 수를 함의할 수 있다.
비디오 스트림 전송 세션이 초기화될 때, 수신기(8)는 적어도 N 조각의 VCL NAL 유닛들을 저장하기 위한 수신 버퍼(9.1)의 메모리를 할당한다. 그런 다음 수신기는 비디오 스트림 수신을 시작하고 수신된 VCL NAL 유닛들을 수신 버퍼 안에 저장하는데, 이러한 동작은 적어도 N 조각의 VCL NAL 유닛들이 수신 버퍼(9.1) 안에 저장될 때까지 이뤄진다.
수신기 버퍼(9.1)가 적어도 N 개의 VCL NAL 유닛들을 포함할 때, NAL 유닛들은 하나씩 수신기 버퍼(9.1)로부터 추방되어 디코더(2)로 보내진다. NAL 유닛들이 반드시 이들이 저장되었던 순서와 같은 순서로 수신기 버퍼(9.1)로부터 추방되는 것은 아니며, 아래에서 설명하는 것과 같은 NAL 유닛들의 비디오 시퀀스 ID에 따라 추방된다.
도 12에서, 디코더의 전치 디코더 버퍼에서 전송 유닛들을 버퍼링하는 예가 도시되어 있다. 넘버들이 디코딩 순서를 의미하는 한편, 전송 유닛들의 순서는 전송 순서 (및 또한 수신 순서)를 의미한다.
이제부터, PVSID를 디코더로 보내진 가장 최근의 NAL 유닛의 비디오 시퀀스 ID (VSID)라고 하자. STAP내 모든 NAL 유닛들은 같은 VSID를 공유한다. NAL 유닛들이 디코더로 보내지는 순서가 다음과 같이 특정된다: 버퍼에서 가장 오래된 RTP 시퀀스 넘버가 단순 패킷 (Simple Packet)에 해당하면, 그 단순 패킷의 NALU가 NAL 유닛 전송 순서상 다음 NALU가 된다. 버퍼에서 가장 오래된 RTP 시퀀스 넘버가 집계 패킷 (Aggregation Packet)에 해당하면, NAL 유닛 전송 순서는 다음 단순 패킷까지 (단순 패킷 배제) RTP 시퀀스 넘버 순서상의 집계 패킷들을 통해 전송되는 NALU들 사이에서 복구된다. 이러한 NALU들의 집합을 이제부터 후보 NALU들이고 칭한다. 단순 패킷들을 통해 전달되는 NALU들이 버퍼에 존재하지 없으면, 모든 NALU들은 후보 NALU들에 속한다.
후보 NALU들 중 각 NAL 유닛에 대해, VSID 거리가 다음과 같이 산출된다. NAL 유닛의 VSID가 PVSID보다 크면, VSID 거리는 VSID - PVSID와 같게 된다. 그렇지 않으면, VSID 거리는 2^(VSID를 신호하는데 사용한 비트 수)-PVSID+VSID와 같게 된다. NAL 유닛들은 VSID 거리의 오름차순에 따라 디코더로 전달된다. 여러 NAL 유닛들이 동일한 VSID 거리를 공유하면, 이들을 디코더로 보내는 순서는 이 사양에서 규정된 NAL 유닛 전달 순서에 따라야 한다. NAL 유닛 전달 순서는 다음에 설명하는 바와 같이 회복될 있다.
먼저, 슬라이스들 및 구획들이 이들의 프레임 넘버들, RTP 타임스탬프들 및 최초 필드 플래그들에 따라 화상들과 결부된다: 동일한 값들의 프레임 넘버, RTP 타임스탬프 및 최초 필드 플래그를 공유하는 모든 NALU들은 동일한 화상에 속한다. SEI NALU들, 시퀀스 파라미터 집합 NALU들, 화상 파라미터 집합 NALU들, 화상 경계 기호(delimeter) NALU들, 시퀀스 NALU들의 끝, 스트림 NALU들의 끝, 및 필러(filler) 데이터 NALU들은 전송 순서상 다음 VCL NAL 유닛의 화상에 속한다.
둘째, 화상들의 전달 순서는 각 화상의 RTP 타임스탬프, 최초 필드 플래그, 프레임 넘버, 및 nal_ref_idc에 기반해 결정된다. 화상들의 전달 순서는 (모듈로 연산을 통한) 프레임 넘버들의 오름 차순으로 된다. 여러 개의 화상들이 동일한 값의 프레임 넘버를 공유하면, 0에 해당하는 nal_ref_idc를 갖는 화상(들)이 먼저 전달된다. 여러 개의 화상들이 동일한 값의 프레임 넘버를 공유하고 이들이 모두 0에 해당하는 nal_ref_idc를 가지면, 화상들은 RTP 타임스탬프 오름 차순으로 전달된다. 두 화상들이 동일한 RTP 타임스탬프를 공유하면, 1에 해당하는 최초 필드 플래그를 가진 화상들이 먼저 전달된다. 기본 코딩 화상 및 대응하는 중복 코딩 화상들이 여기서 한 개의 코딩 화상으로 간주 된다는 것을 알아야 한다.
셋째, 사용중인 비디오 디코더가 임의 슬라이스 배열 (Arbitrary Slice Ordering)을 지원하지 않으면, 슬라이스들과 A 데이터 구획들의 전달 순서는 슬라이스 헤더 내 first_mb_in_slice 신택스 성분의 오름 차순이 된다. 또, B 및 C 데이터 구획들이 해당 A 데이터 구획을 전달 순서상에서 바로 뒤따른다.
이에서, PVSID 및 VSID라는 용어들이 사용되었다. PDON (NAL 유닛 배달 순서에 있어 한 집계 패킷의 이전 NAL 유닛의 디코딩 순서 넘버)와 DON (디코딩 순서 넘버)이 그 대신 다음과 같이 사용될 수 있다: 디코더로 보내진 최초 NAL 유닛의 PDON을 0이라 한다. NAL 유닛들이 디코더로 보내지는 순서는 다음과 같이 특정된다: 버퍼에서 가장 오래된 RTP 시퀀스 넘버가 한 단순 패킷에 해당하면, 그 단순 패킷의 NALU가 NAL 유닛 전달 순서에 있어 다음 NALU가 된다. 버퍼에서 가장 오래된 RTP 시퀀스 넘버가 한 집계 패킷에 해당하면, NAL 전달 순서는 다음 단순 패킷까지 (그 단순 패킷 배제) RTP 시퀀스 넘버 순서의 집계 패킷들을 통해 전송되는 NALU들 사이에서 복구된다. 이러한 NALU들의 집합을 이제부터 후보 NALU들이라 부른다. 단순 패킷들을 통해 전송되는 NALU들이 버퍼 안에 존재하지 않으면, 모든 NALU들이 후보 NALU들에 속한다.
후보 NALU들 가운데 각각의 NAL 유닛에 대해, DON 거리가 다음과 같이 산출된다. NAL 유닛의 DON이 PDON 보다 크면, DON 거리는 DON-PDON과 같게 된다. 그렇지 않으면, DON 거리는 2^(DON 및 PDON을 부호미정 정수로 표현하기 위한 비트 수)-PDON+DON이 된다. NAL 유닛들이 DON 거리의 오름차순에 따라 디코더로 전달된다.
여러 개의 NAL 유닛들이 동일한 DON 거리를 공유하면, 디코더로 보내지는 순서는:
1. 있다면, 화상 경계 기호
2. 있다면, 시퀀스 파라미터 집합 NAL 유닛들
3. 있다면, 화상 파라미터 집합 NAL 유닛들
4. 있다면, SEI NAL 유닛들
5. 있다면, 기본 코딩 화상의 코딩 슬라이스 및 슬라이스 데이터 구획 NAL 유닛들
6. 있다면, 중복 코딩 화상의 코딩 슬라이스 및 슬라이스 데이터 구획 NAL 유닛들
7. 있다면 필러 데이터 NAL 유닛들
8. 있다면, 시퀀스 종료 NAL 유닛
9. 있다면, 스트림 종료 NAL 유닛이다.
사용중인 비디오 디코더가 임의 슬라이스 배열 (Arbitrary Slice Ordering)을 지원하지 않으면, 슬라이스들과 A 데이터 구획들의 전달 순서는 슬라이스 헤더 내 first_mb_in_slice 신택스 성분의 오름 차순이 된다. 또, B 및 C 데이터 구획들이 해당 A 데이터 구획을 전달 순서상에서 바로 뒤따른다.
다음의 부가적 패킷화 해제 규칙들은 사용가능한 JVT 패킷화 해제기를 구현하는데 사용될 수 있다: NALU들이 RTP 시퀀스 넘버 순으로 JVT 디코더로 제공된다. 집계 패킷을 통해 운반되는 NALU들은 집계 패킷 안에서의 순서로 제공된다. 다음 RTP 패킷이 처리되기 전에 집계 패킷의 모든 NALU들이 처리된다.
(가령 게이트웨이들 안에서의) 인텔리전트 RTP 수신기들이 손실된 DPA들을 확인할 수 있다. 손실된 DPA가 발견되면, 게이트웨이는 DPB 및 DPC 구획들을 전송하지 않기로 결정할 수 있는데, 이들의 정보가 JVT 디코더에 의미가 없기 때문이다. 이런 방식으로 네트워크 요소가 복잡한 비트 스트림 분석 없이 무용한 패킷들을 버림으로써 네트워크 로드를 줄일 수 있게 된다.
인텔리전트 수신기들은 0인 NAL 참조 Idc를 가지는 모든 패킷들을 버릴 수 있다. 그러나, 패킷들이 버려지면 사용자 경험이 곤란을 겪을 수 있으므로 가능하면 이러한 패킷들을 처리해야 할 것이다.
DPB(2.1)는 다수의 화상들을 저장하기 위한 메모리 장소들을 포함한다. 이 장소들은 설명시 프레임 저장소들로도 불린다. 디코더(2)는 수신된 화상들을 정확한 순서로 디코딩한다. 그렇게 하기 위해 디코더는 수신된 화상들의 비디오 시퀀스 ID 정보를 검사한다. 인코더가 각 화상 그룹들에 대한 비디오 시퀀스 ID를 자유로이 선택했으면, 디코더는 그 화상 그룹의 화상들을 이들이 수신된 순서로서 디코딩한다. 인코더가 각 화상 그룹에 대해 번호 매김 방식을 증분 (또는 차분) 하는 것을 통해 비디오 시퀀스 ID를 규정했으면, 디코더는 비디오 시퀀스 ID들의 순서로서 그 화상 그룹을 디코딩한다. 달리 말하면, 가장 작은 (또는 가장 큰) 비디오 시퀀스 ID를 가진 화상들의 그룹이 먼저 디코딩된다.
본 발명은 수많은 각종 시스템들과 장치들에 적용될 수 있다. 인코더(1) 및 HRD(5)를 포함하는 전송 장치(6)는 인코딩된 화상들을 전송 채널(4)로 전송할 전송기(7) 역시 포함함이 바람직하다. 수신 장치(8)는 인코딩된 화상들을 수신할 수신기(9), 디코더(2), 및 디코딩된 화상들을 디스플레이할 디스플레이(10)를 포함한다. 전송 채널은, 가령, 지상선 통신 채널 및/또는 무선 통신 채널일 수 있다. 전송 장치 및 수신 장치는 본 발명에 따른 비디오 스트림의 인코딩/디코딩 프로세스를 통제할 필수 단계들을 수행할 수 있는 한 개 이상의 프로세서들(1.2, 2.2) 또한 포함한다. 따라서, 본 발명에 따른 방법은 주로 그 프로세서들의 기계어 실행가능 단계들로서 구현될 수 있다. 화상들의 버퍼링은 상기 장치들의 메모리(1.3, 2.3)에서 구현될 수 있다. 인코더의 프로그램 코드(1.4)가 메모리(1.3) 안에 저장될 수 있다. 각기, 디코더의 프로그램 코드(2.4)가 메모리(2.3) 안에 저장될 수 있다.
가정적 참조 디코더(5)는, 인코더(1) 다음에 위치함으로써 가정적 참조 디코더(5)가 필요시 인코딩된 화상들을 재정렬하도록 할 수 있고, 수신기(8)의 전치 디코딩 버퍼가 확실히 오버플로 되지 않게 할 수 있다는 것이 자명한 사실이다.
본 발명은 전제적 참조 디코더(5)의 일부이거나 그로부터 분리된 것일 수 있는 버퍼링 검증자 안에서 구현될 수 있다.

Claims (17)

  1. 데이터 전송 유닛들 내 미디어 데이터의 디코딩 순서와 적어도 일부가 다른 전송 순서로 정렬되어 있던 데이터 전송 유닛들에서 캡슐화된 미디어 데이터를 전송하는 방법에 있어서,
    데이터 전송 유닛들을 미디어 데이터의 디코딩 순서로 정렬하기 위한 버퍼의 사이즈는, 적어도 두 전송 유닛들의 총 사이즈가 정해지고 최대 버퍼 사이즈는 그 총 사이즈에 기초해 정해지도록 규정됨을 특징으로 하는 방법.
  2. 제1항에 있어서, 미디어 데이터는 H.264/AVC에 따른 비디오이고, 데이터 전송 유닛들은 H.264/AVC의 네트워크 요약 계층 유닛들임을 특징으로 하는 방법.
  3. 제1항에 있어서, 버퍼링 알고리즘이 정해지고, 상기 총 사이즈는 상기 버퍼링 알고리즘에 따른 버퍼의 최대 점유 (maximum occupancy)에 상응하도록 규정됨을 특징으로 하는 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 총 사이즈 계산에 사용되는 전송 유닛들의 개수는 전송 유닛들의 버퍼링 순서로서 표현됨을 특징으로 하는 방법.
  6. 화상들을 인코딩하는 인코더,
    상기 인코딩된 화상들을 VCL NAL 유닛들로서 디코더로 전송하는 전송기,
    인코딩된 화상들을 디코딩하여 디코딩 화상들을 형성하는 디코더를 포함하고, 상기 디코더는 디코더로 전송된 전송 유닛들을 버퍼링하는 버퍼를 포함하는 시스템에 있어서,
    적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록 버퍼 사이즈를 규정하는 규정기(definer)를 더 포함함을 특징으로 하는 시스템.
  7. 화상들을 인코딩하고 그 인코딩된 화상들을 전송 유닛들로서, 버퍼에서의 버퍼링 및 디코딩을 위해 디코더로 전송하는 전송기를 포함하는 인코더에 있어서,
    적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록 버퍼 사이즈를 규정하는 규정기(definer)를 더 포함함을 특징으로 하는 인코더.
  8. 제7항에 있어서,
    상기 인코딩된 화상들을 버퍼링하기 위한 버퍼, 및
    상기 인코딩된 화상들을 디코딩하기 위한 버퍼링 요건을 결정하는 가정적 참조 디코더 (hypothetical reference decoder)를 포함함을 특징으로 하는 인코더.
  9. 인코딩된 화상들을 디코딩하여 디코딩 화상들을 형성하는 디코더에 있어서,
    디코딩하기 위해 수신된 인코딩 화상들을 버퍼링하도록 전치 디코딩(pre-decoding) 버퍼를 포함하고,
    버퍼 사이즈를 가리키는 수신 파라미터에 따라 전치 디코딩 버퍼 메모리를 할당할 프로세서를 더 포함하고, 상기 버퍼 사이즈는, 적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록 규정됨을 특징으로 하는 디코더.
  10. 삭제
  11. 인코딩된 화상들을 버퍼링할 방법을 수행하도록 기계어 실행가능 단계들을 구비한 소프트웨어 프로그램을 저장하는 저장 매체에 있어서,
    상기 방법은, 인코더에서 인코딩 화상들을 형성하는 인코딩 단계; 상기 인코딩 화상들을 전송 유닛들로서 디코더로 전송하는 전송 단계; 디코더로 전송된 전송 유닛들을 버퍼에서 버퍼링하는 버퍼링 단계; 및 인코딩 화상들을 디코딩하여 디코딩 화상들을 형성하는 디코딩 단계를 포함하고,
    적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록, 버퍼 사이즈가 규정됨을 특징으로 하는 저장 매체.
  12. 화상들을 인코딩하는 인코더,
    상기 인코딩된 화상들을 전송 유닛들로서, 버퍼 내 버퍼링 및 디코딩을 위해 디코더로 전송하는 전송기를 포함하는 전자 장치에 있어서,
    적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록, 버퍼 사이즈를 규정하는 규정기(definer)를 더 포함함을 특징으로 하는 전자 장치.
  13. 인코딩된 화상들의 디코딩을 위한 버퍼링 요건이 결정되도록, 인코딩된 화상들을 전송 유닛들로서 포함하는 신호에 있어서,
    적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록 버퍼 사이즈를 나타내는 파라미터가 상기 신호에 첨부됨을 특징으로 하는 전자 장치.
  14. 화상들을 인코딩하고 그 인코딩된 화상들을 전송 유닛들로서, 버퍼에서의 버퍼링 및 디코딩을 위해 디코더로 전송하는 전송기를 포함하는 인코더를 구비하는 전송 장치에 있어서,
    적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록 버퍼 사이즈를 규정하는 규정기(definer)를 더 포함함을 특징으로 하는 전송 장치.
  15. 인코딩된 화상들을 디코딩하여 디코딩 화상들을 형성하는 디코더를 포함하고, 상기 디코더가 디코딩을 위해 수신된 인코딩 화상들을 버퍼링하도록 전치 디코딩(pre-decoding) 버퍼를 포함하는 수신 장치에 있어서,
    버퍼 사이즈를 가리키는 수신 파라미터에 따라 전치 디코딩 버퍼 메모리를 할당할 프로세서를 더 포함하고,
    상기 버퍼 사이즈는, 적어도 두 전송 유닛들의 총 사이즈가 규정되고 최대 버퍼 사이즈가 상기 총 사이즈에 기반하여 정해지도록 규정됨을 특징으로 하는 수신 장치.
  16. 데이터 전송 유닛들 내 미디어 데이터의 디코딩 순서와 적어도 일부가 다른 전송 순서로 정렬되어 있던 데이터 전송 유닛들에서 캡슐화된 미디어 데이터를 수신하는 방법에 있어서,
    - 미디어 데이터가, 데이터 전송 유닛들을 미디어 데이터의 디코딩 순서로 정렬하도록 버퍼링되고,
    - 데이터 전송 유닛들을 미디어 데이터의 디코딩 순서로 정렬하기 위한 버퍼 사이즈 정보가 수신되고,
    - 적어도 두 전송 유닛들의 총 사이즈가 정해지고 최대 버퍼 사이즈가 그 총 사이즈에 기초해 정해지도록, 상기 버퍼 사이즈가 규정되며,
    상기 활용되는 버퍼는 적어도 상기 최대 버퍼 사이즈의 데이터를 포함하도록 구성됨을 특징으로 하는 방법.
  17. 제16항에 있어서,미디어 데이터는 H.264/AVC에 따른 비디오이고, 데이터 전송 유닛들은 H.264/AVC의 네트워크 요약 계층 유닛들임을 특징으로 하는 방법.
KR1020067018600A 2004-02-13 2005-02-14 인코더 및 디코더 버퍼의 사이즈 조정 방법, 장치 및 저장매체 KR100837322B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US54459804P 2004-02-13 2004-02-13
US60/544,598 2004-02-13

Publications (2)

Publication Number Publication Date
KR20060116245A KR20060116245A (ko) 2006-11-14
KR100837322B1 true KR100837322B1 (ko) 2008-06-12

Family

ID=34860508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067018600A KR100837322B1 (ko) 2004-02-13 2005-02-14 인코더 및 디코더 버퍼의 사이즈 조정 방법, 장치 및 저장매체

Country Status (14)

Country Link
US (2) US20050201471A1 (ko)
EP (2) EP2760212A1 (ko)
JP (2) JP5069006B2 (ko)
KR (1) KR100837322B1 (ko)
CN (1) CN1934865B (ko)
AU (1) AU2005212896C1 (ko)
BR (1) BRPI0507925B1 (ko)
CA (1) CA2556120C (ko)
HK (1) HK1101847A1 (ko)
RU (1) RU2385541C2 (ko)
SG (1) SG153870A1 (ko)
TW (1) TWI396445B (ko)
WO (1) WO2005079070A1 (ko)
ZA (1) ZA200606634B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013077665A1 (ko) * 2011-11-25 2013-05-30 삼성전자 주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY135449A (en) * 2003-02-18 2008-04-30 Nokia Corp Picture coding method
JP2006518127A (ja) * 2003-02-18 2006-08-03 ノキア コーポレイション ピクチャ復号化方法
US20050201471A1 (en) * 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US7542435B2 (en) * 2004-05-12 2009-06-02 Nokia Corporation Buffer level signaling for rate adaptation in multimedia streaming
US20060002479A1 (en) * 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
MX2007000254A (es) 2004-07-01 2007-04-09 Qualcomm Inc Metodo y aparato para utilizar tecnicas de conversion ascendente de indice de cuadro en codificacion de video que se puede escalar.
KR101016168B1 (ko) 2004-07-20 2011-02-17 콸콤 인코포레이티드 비디오 압축에 대한 인코더 보조-프레임 레이트 업 컨버젼(ea-fruc)을 위한 방법 및 장치
US9124907B2 (en) * 2004-10-04 2015-09-01 Nokia Technologies Oy Picture buffering method
US20060080436A1 (en) * 2004-10-07 2006-04-13 Nokia Corporation System and method for multimedia streaming using interleaved packetization
AU2006231216A1 (en) * 2005-04-07 2006-10-12 Nokia Corporation Buffering in streaming delivery
JP5103379B2 (ja) * 2005-04-28 2012-12-19 アップル インコーポレイテッド 多人数参加型テレビ会議における映像処理
US7908392B2 (en) * 2005-08-10 2011-03-15 Agency For Science, Technology And Research Wireless transportation protocol
US7933329B2 (en) * 2005-08-24 2011-04-26 Exfo Service Assurance Inc. System and method for monitoring video packets for quantifying video quality
KR20070038396A (ko) 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
EP1949701A1 (en) * 2005-10-11 2008-07-30 Nokia Corporation Efficient decoded picture buffer management for scalable video coding
US7716551B2 (en) * 2005-12-07 2010-05-11 Microsoft Corporation Feedback and frame synchronization between media encoders and decoders
EP1977604B1 (en) * 2006-01-11 2014-03-19 Nokia Corporation Method for a backward -compatible encapsulation of a scalable coded video signal into a sequence of aggregate data units
US8767836B2 (en) * 2006-03-27 2014-07-01 Nokia Corporation Picture delimiter in scalable video coding
US7653055B2 (en) * 2006-03-31 2010-01-26 Alcatel-Lucent Usa Inc. Method and apparatus for improved multicast streaming in wireless networks
US8634463B2 (en) * 2006-04-04 2014-01-21 Qualcomm Incorporated Apparatus and method of enhanced frame interpolation in video compression
JP5248802B2 (ja) * 2006-06-16 2013-07-31 カシオ計算機株式会社 動画符号化装置および動画符号化方法と、動画復号化装置および動画復号化方法と、動画記録装置
US20080056218A1 (en) * 2006-08-29 2008-03-06 Motorola, Inc. Method for transmitting multi-frame handover or assignment messages
KR100849495B1 (ko) * 2006-12-04 2008-07-31 한국전자통신연구원 Rtp 패킷화 모드별 비트율 생성 방법
PT2103136T (pt) * 2006-12-21 2017-12-12 Thomson Licensing Métodos e aparelhos para sinalização melhorada utilizando sintaxe de nível elevado para a códificação e descodificação de vídeo de visualização múltipla
RU2518904C2 (ru) * 2007-01-05 2014-06-10 Томсон Лайсенсинг Гипотетический эталонный декодер для масштабируемого видеокодирования
EP3182709B1 (en) 2007-01-18 2021-05-12 Nokia Technologies Oy Carriage of sei message in rtp payload format
WO2008108566A1 (en) * 2007-03-02 2008-09-12 Lg Electronics Inc. A method and an apparatus for decoding/encoding a video signal
US20100266042A1 (en) * 2007-03-02 2010-10-21 Han Suh Koo Method and an apparatus for decoding/encoding a video signal
GB0705329D0 (en) 2007-03-20 2007-04-25 Skype Ltd Method of transmitting data in a communication system
JP2010523048A (ja) * 2007-03-29 2010-07-08 トムソン ライセンシング デジタルシネマシステムへのコンテンツ配信及びデジタルシネマシステムでの再生方法及び装置
US8488677B2 (en) * 2007-04-25 2013-07-16 Lg Electronics Inc. Method and an apparatus for decoding/encoding a video signal
US20080294446A1 (en) * 2007-05-22 2008-11-27 Linfeng Guo Layer based scalable multimedia datastream compression
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
FR2923124A1 (fr) 2007-10-26 2009-05-01 Canon Kk Procede et dispositif de determination de la valeur d'un delai a appliquer entre l'envoi d'un premier ensemble de donnees et l'envoi d'un second ensemble de donnees
KR100951008B1 (ko) * 2007-12-17 2010-04-02 한국전자통신연구원 인터레이스 부호화에서의 실시간 비트율 제어 방법 및시스템
JP4577357B2 (ja) * 2007-12-27 2010-11-10 ソニー株式会社 符号化装置及び方法、並びにプログラム
US20090171970A1 (en) * 2007-12-31 2009-07-02 Keefe Robert A System and Method for Delivering Utility Usage Information and Other Content to a Digital Photo Frame
US8345774B2 (en) * 2008-01-11 2013-01-01 Apple Inc. Hypothetical reference decoder
US8369415B2 (en) * 2008-03-06 2013-02-05 General Instrument Corporation Method and apparatus for decoding an enhanced video stream
US9167246B2 (en) * 2008-03-06 2015-10-20 Arris Technology, Inc. Method and apparatus for decoding an enhanced video stream
JP5098784B2 (ja) * 2008-04-30 2012-12-12 サクサ株式会社 映像通信装置
EP2334082A1 (en) * 2008-09-17 2011-06-15 Sharp Kabushiki Kaisha Scalable video stream decoding apparatus and scalable video stream generating apparatus
US8649426B2 (en) * 2008-09-18 2014-02-11 Magor Communications Corporation Low latency high resolution video encoding
JP2010166387A (ja) * 2009-01-16 2010-07-29 Panasonic Corp バッファ制御装置及び無線通信端末
US8782267B2 (en) 2009-05-29 2014-07-15 Comcast Cable Communications, Llc Methods, systems, devices, and computer-readable media for delivering additional content using a multicast streaming
EP2478701B1 (en) * 2009-09-14 2017-01-11 Thomson Licensing Distribution of mpeg-2 ts multiplexed multimedia stream with selection of elementary packets of the stream
TW201121331A (en) * 2009-12-10 2011-06-16 Novatek Microelectronics Corp Picture decoder
JP5482178B2 (ja) * 2009-12-16 2014-04-23 ソニー株式会社 送信装置および方法、並びに、受信装置および方法
KR20110106160A (ko) * 2010-03-22 2011-09-28 (주)인터큐비트 다중 디스플레이를 이용한 초고해상도 영상 재생 시스템
CN102948146B (zh) 2010-04-13 2016-10-19 三星电子株式会社 基于树结构的编码单元执行去块滤波的视频编码方法和视频编码设备以及视频解码方法和视频解码设备
US8930277B2 (en) * 2010-04-30 2015-01-06 Now Technologies (Ip) Limited Content management apparatus
KR20130060226A (ko) 2010-04-30 2013-06-07 나우 테크놀로지스 (아이피) 리미티드 콘텐츠 관리 장치
RU2534370C2 (ru) 2010-05-06 2014-11-27 Ниппон Телеграф Энд Телефон Корпорейшн Способ и устройство управления кодированием видео
EP2568705B1 (en) * 2010-05-07 2018-09-26 Nippon Telegraph And Telephone Corporation Moving image encoding control method, moving image encoding apparatus and moving image encoding program
EP2571268B1 (en) * 2010-05-12 2019-11-27 Nippon Telegraph And Telephone Corporation Video coding control method, video coding device and video coding program
US9549197B2 (en) * 2010-08-16 2017-01-17 Dolby Laboratories Licensing Corporation Visual dynamic range timestamp to enhance data coherency and potential of metadata using delay information
EP2684367A4 (en) * 2011-03-10 2014-09-24 Vidyo Inc MAINTENANCE OF A SET OF PARAMETERS IN A VIDEO CODING
KR20120138604A (ko) 2011-06-14 2012-12-26 삼성전자주식회사 멀티미디어 시스템에서 복합 미디어 컨텐츠를 송수신하는 방법 및 장치
US20150229970A1 (en) * 2011-08-18 2015-08-13 Vid Scale, Inc. Methods and systems for packet differentiation
US9106927B2 (en) 2011-09-23 2015-08-11 Qualcomm Incorporated Video coding with subsets of a reference picture set
KR20130040090A (ko) * 2011-10-13 2013-04-23 삼성전자주식회사 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법
US8768079B2 (en) * 2011-10-13 2014-07-01 Sharp Laboratories Of America, Inc. Tracking a reference picture on an electronic device
US8787688B2 (en) * 2011-10-13 2014-07-22 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US8855433B2 (en) * 2011-10-13 2014-10-07 Sharp Kabushiki Kaisha Tracking a reference picture based on a designated picture on an electronic device
GB2520867B (en) * 2011-10-25 2016-05-18 Skype Ltd Jitter buffer
CN102378067B (zh) * 2011-11-21 2013-10-02 武汉大学 一种鲁棒性的移动视频解码方法
AU2013254214C1 (en) * 2012-04-23 2017-03-02 Sun Patent Trust Encoding method, decoding method, encoding apparatus, decoding apparatus, and encoding and decoding apparatus
MX342499B (es) * 2012-06-29 2016-10-03 Sony Corp Dispositivo de descodificación y método de descodificación.
US9654802B2 (en) * 2012-09-24 2017-05-16 Qualcomm Incorporated Sequence level flag for sub-picture level coded picture buffer parameters
US9565452B2 (en) * 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association
US9661341B2 (en) 2013-01-07 2017-05-23 Microsoft Technology Licensing, Llc Syntax and semantics for buffering information to simplify video splicing
US9516330B2 (en) * 2013-02-06 2016-12-06 Broadcom Corporation Virtual field buffer based decoding
US9667959B2 (en) 2013-03-29 2017-05-30 Qualcomm Incorporated RTP payload format designs
BR112015025518B1 (pt) 2013-04-07 2023-02-07 Dolby International Ab Método para decodificar um fluxo de bits de vídeo
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
US20150039714A1 (en) * 2013-07-30 2015-02-05 Opera Software Asa Multimedia cache with dynamic segmenting
WO2015014403A1 (en) * 2013-08-01 2015-02-05 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for controlling streaming of video content
CN104754358B (zh) * 2013-12-27 2019-02-19 中兴通讯股份有限公司 码流的生成和处理方法、装置及系统
CN104754341B (zh) * 2013-12-31 2019-02-26 华为技术有限公司 一种视频数据编码、解码的方法和装置
US10136145B2 (en) 2014-01-03 2018-11-20 Samsung Electronics Co., Ltd. Method and apparatus for managing buffer for encoding and decoding multi-layer video
US10887651B2 (en) * 2014-03-31 2021-01-05 Samsung Electronics Co., Ltd. Signaling and operation of an MMTP de-capsulation buffer
WO2015163267A1 (ja) * 2014-04-25 2015-10-29 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
EP2960864B1 (en) * 2014-06-23 2018-12-05 Harman Becker Automotive Systems GmbH Device and method for processing a stream of video data
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN108200481B (zh) * 2017-12-07 2020-12-15 北京佳讯飞鸿电气股份有限公司 一种rtp-ps流处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023233A (en) * 1998-03-20 2000-02-08 Craven; Peter G. Data rate control for variable rate compression systems
US20020105951A1 (en) * 2001-02-08 2002-08-08 Miska Hannuksela Playback of streamed media
US6493388B1 (en) * 2000-04-19 2002-12-10 General Instrument Corporation Rate control and buffer protection for variable bit rate video programs over a constant rate channel
WO2004019530A1 (en) * 2002-02-15 2004-03-04 Visible World, Inc. System and method for seamless switching through buffering
WO2004075555A1 (en) * 2003-02-18 2004-09-02 Nokia Corporation Picture coding method

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5122875A (en) * 1991-02-27 1992-06-16 General Electric Company An HDTV compression system
US5387941A (en) * 1991-06-14 1995-02-07 Wavephore, Inc. Data with video transmitter
US5467173A (en) * 1993-02-05 1995-11-14 Konica Corporation Speed control circuit for an optical scanning system driving motor for an image forming apparatus
US5481543A (en) * 1993-03-16 1996-01-02 Sony Corporation Rational input buffer arrangements for auxiliary information in video and audio signal processing systems
US5481643A (en) * 1993-03-18 1996-01-02 U.S. Philips Corporation Transmitter, receiver and record carrier for transmitting/receiving at least a first and a second signal component
US5486864A (en) 1993-05-13 1996-01-23 Rca Thomson Licensing Corporation Differential time code method and apparatus as for a compressed video signal
US5398072A (en) * 1993-10-25 1995-03-14 Lsi Logic Corporation Management of channel buffer in video decoders
GB2287383A (en) 1994-03-11 1995-09-13 Motorola Ltd Notification by energy burst of messages with unacceptable quality
JPH0865665A (ja) * 1994-08-25 1996-03-08 Hitachi Denshi Ltd 画像圧縮伝送方法および画像圧縮伝送システム
DE69517966T2 (de) 1994-12-28 2001-02-15 Koninklijke Philips Electronics N.V., Eindhoven Pufferverwaltung in kompressionssystemen mit variabler bitrate
US5517250A (en) * 1995-02-28 1996-05-14 General Instrument Corporation Of Delaware Acquisition of desired data from a packetized data stream and synchronization thereto
US5677905A (en) * 1995-03-28 1997-10-14 Bell Atlantic Network Services, Inc. Access subnetwork controller for video dial tone networks
US5877812A (en) * 1995-11-21 1999-03-02 Imedia Corporation Method and apparatus for increasing channel utilization for digital video transmission
US5719632A (en) * 1996-01-25 1998-02-17 Ibm Corporation Motion video compression system with buffer empty/fill look-ahead bit allocation
AU734747B2 (en) 1996-01-31 2001-06-21 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
US5892924A (en) * 1996-01-31 1999-04-06 Ipsilon Networks, Inc. Method and apparatus for dynamically shifting between routing and switching packets in a transmission network
JP3493872B2 (ja) * 1996-02-29 2004-02-03 ソニー株式会社 画像データ処理方法およびその装置
TW351903B (en) 1996-07-03 1999-02-01 Matsushita Electric Ind Co Ltd Encoding method, encoding apparatus, decoding and compositing method, decoding and composition appratus, and record medium recorded with the aforesaid methods for multiple images
US6188700B1 (en) * 1996-11-07 2001-02-13 Sony Corporation Method and apparatus for encoding MPEG signals using variable rate encoding and dynamically varying transmission buffers
EP0944269B1 (en) 1996-12-04 2002-11-13 Matsushita Electric Industrial Co., Ltd. Optical disc for high resolution and three-dimensional image recording, optical disc reproducing device, and optical disc recording device
US6011590A (en) * 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
IL121815A (en) 1997-09-22 2000-09-28 Security 7 Software Ltd Method and system for the identification and the suppression of executable objects
KR100248080B1 (ko) * 1997-10-06 2000-03-15 정선종 다자간 멀티미디어 통신에서의 에러제어 방법
JP4938171B2 (ja) 1997-10-09 2012-05-23 クゥアルコム・インコーポレイテッド 多元接続通信システムでのアイドルハンドオフを行う方法及び装置
US7301944B1 (en) * 1997-10-24 2007-11-27 Tranz-Send Broadcasting Network, Inc. Media file distribution with adaptive transmission protocols
DE69803195T2 (de) 1997-11-27 2002-08-29 British Telecommunications P.L.C., London Codeumsetzung
US6289129B1 (en) * 1998-06-19 2001-09-11 Motorola, Inc. Video rate buffer for use with push dataflow
US6526022B1 (en) * 1998-06-30 2003-02-25 Sun Microsystems Detecting congestion by comparing successive loss of packets in windows to provide congestion control in reliable multicast protocol
US6573942B1 (en) 1998-08-17 2003-06-03 Sharp Laboratories Of America, Inc. Buffer system for controlled and timely delivery of MPEG-2F data services
JP3552929B2 (ja) * 1998-11-27 2004-08-11 松下電器産業株式会社 復号化装置及び復号化方法
US6496980B1 (en) * 1998-12-07 2002-12-17 Intel Corporation Method of providing replay on demand for streaming digital multimedia
JP2000232649A (ja) * 1998-12-10 2000-08-22 Fujitsu Ltd Mpegビデオ復号器及びmpegビデオ復号方法
WO2000046995A1 (en) 1999-02-05 2000-08-10 Sony Corporation Encoding system, encoding method, decoding system, decoding method, multiplexing device, multiplexing method, display system and display method
US6782490B2 (en) * 1999-03-17 2004-08-24 At&T Corp. Network-based service for the repair of IP multicast sessions
US6269080B1 (en) * 1999-04-13 2001-07-31 Glenayre Electronics, Inc. Method of multicast file distribution and synchronization
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
FR2795272B1 (fr) * 1999-06-18 2001-07-20 Thomson Multimedia Sa Procede de commutation de flux mpeg
JP3587092B2 (ja) 1999-07-30 2004-11-10 松下電工株式会社 応答分散式通信方法および通信システム
KR100335057B1 (ko) * 2000-03-08 2002-05-02 구자홍 동영상 수신 장치
US6697426B1 (en) * 2000-03-17 2004-02-24 Koninklijke Philips Electronics N.V. Reduction of layer-decoding complexity by reordering the transmission of enhancement layer frames
EP1533945A1 (en) 2000-04-06 2005-05-25 NTT DoCoMo, Inc. Multicasting method with changing transmission method dependent on receiving state at the base station
JP3683468B2 (ja) 2000-04-13 2005-08-17 株式会社エヌ・ティ・ティ・ドコモ マルチキャストサービス提供システムにおける再送制御方法、情報配信装置及び無線端末
JP2002010216A (ja) * 2000-04-20 2002-01-11 Canon Inc 復号化装置及びその制御方法並びに記憶媒体
JP4407007B2 (ja) * 2000-05-02 2010-02-03 ソニー株式会社 データ送信装置及び方法
US7016970B2 (en) * 2000-07-06 2006-03-21 Matsushita Electric Industrial Co., Ltd. System for transmitting stream data from server to client based on buffer and transmission capacities and delay time of the client
JP3594296B2 (ja) 2000-07-24 2004-11-24 松下電器産業株式会社 動画像符号化データの送信装置および送信方法
FI120125B (fi) * 2000-08-21 2009-06-30 Nokia Corp Kuvankoodaus
CN1394411A (zh) * 2000-11-06 2003-01-29 松下电器产业株式会社 发送装置、接收装置及广播数据的分发方法
JP2002330379A (ja) * 2001-05-02 2002-11-15 Sony Corp コンテンツ提供装置
JP2002359641A (ja) 2001-05-31 2002-12-13 Matsushita Electric Ind Co Ltd ファイル配信システム、ファイル配信サーバ装置、及び受信クライアント装置
JP4556351B2 (ja) 2001-06-19 2010-10-06 ソニー株式会社 マルチキャスト通信方法およびシステム
US20030031175A1 (en) * 2001-08-01 2003-02-13 Masato Hayashi Method of multicasting
US8923688B2 (en) 2001-09-12 2014-12-30 Broadcom Corporation Performing personal video recording (PVR) functions on digital video streams
US7356079B2 (en) * 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
JP2003209576A (ja) * 2002-01-15 2003-07-25 Matsushita Electric Ind Co Ltd マルチキャスト通信方法及びそのシステム
FI114527B (fi) * 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
US7831990B2 (en) * 2002-04-29 2010-11-09 Sony Corporation Generic adaptation layer for JVT video
CA2488369C (en) * 2002-06-21 2012-08-21 British Telecommunications Public Limited Company Timer-based feedback in multicast communication
EP1518403A4 (en) * 2002-07-02 2009-03-18 Conexant Systems Inc HYPOTHETIC REFERENCE DECODER FOR COMPRESSED PICTURES AND VIDEO
EP1379085A1 (en) 2002-07-04 2004-01-07 Deutsche Thomson-Brandt Gmbh Method and device for linking multimedia data
US20040039796A1 (en) * 2002-08-08 2004-02-26 Virtual Radio, Inc. Personalized cyber disk jockey and Internet radio advertising
US7289500B1 (en) * 2003-07-17 2007-10-30 Novell, Inc. Method and system for reliable multicast data transmission
JP2006518127A (ja) * 2003-02-18 2006-08-03 ノキア コーポレイション ピクチャ復号化方法
US6873786B2 (en) * 2003-05-05 2005-03-29 Thomson Licensing S.A. Reverse trick modes on non-progressive video using special groups of pictures
US7415069B2 (en) * 2003-12-09 2008-08-19 Lsi Corporation Method for activation and deactivation of infrequently changing sequence and picture parameter sets
US20050201471A1 (en) * 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US7296205B2 (en) * 2004-02-18 2007-11-13 Nokia Corporation Data repair
US9124907B2 (en) * 2004-10-04 2015-09-01 Nokia Technologies Oy Picture buffering method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023233A (en) * 1998-03-20 2000-02-08 Craven; Peter G. Data rate control for variable rate compression systems
US6493388B1 (en) * 2000-04-19 2002-12-10 General Instrument Corporation Rate control and buffer protection for variable bit rate video programs over a constant rate channel
US20020105951A1 (en) * 2001-02-08 2002-08-08 Miska Hannuksela Playback of streamed media
WO2004019530A1 (en) * 2002-02-15 2004-03-04 Visible World, Inc. System and method for seamless switching through buffering
WO2004075555A1 (en) * 2003-02-18 2004-09-02 Nokia Corporation Picture coding method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013077665A1 (ko) * 2011-11-25 2013-05-30 삼성전자 주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치
US9438901B2 (en) 2011-11-25 2016-09-06 Samsung Electronics Co., Ltd. Image coding method and device for buffer management of decoder, and image decoding method and device
US9560370B2 (en) 2011-11-25 2017-01-31 Samsung Electronics Co., Ltd. Image coding method and device for buffer management of decoder, and image decoding method and device
US9699471B2 (en) 2011-11-25 2017-07-04 Samsung Electronics Co., Ltd. Image coding method and device for buffer management of decoder, and image decoding method and device
US9769483B2 (en) 2011-11-25 2017-09-19 Samsung Electronics Co., Ltd. Image coding method and device for buffer management of decoder, and image decoding method and device
US9967570B2 (en) 2011-11-25 2018-05-08 Samsung Electronics Co., Ltd. Image coding method and device for buffer management of decoder, and image decoding method and device
US10218984B2 (en) 2011-11-25 2019-02-26 Samsung Electronics Co., Ltd. Image coding method and device for buffer management of decoder, and image decoding method and device
US10499062B2 (en) 2011-11-25 2019-12-03 Samsung Electronics Co., Ltd. Image coding method and device for buffer management of decoder, and image decoding method and device

Also Published As

Publication number Publication date
EP2760212A1 (en) 2014-07-30
SG153870A1 (en) 2009-07-29
JP2011199899A (ja) 2011-10-06
CA2556120C (en) 2012-05-08
EP1714490B1 (en) 2014-06-04
RU2006128854A (ru) 2008-03-20
US8335265B2 (en) 2012-12-18
US20050201471A1 (en) 2005-09-15
US20110019747A1 (en) 2011-01-27
HK1101847A1 (en) 2007-10-26
CA2556120A1 (en) 2005-08-25
KR20060116245A (ko) 2006-11-14
TW200531555A (en) 2005-09-16
RU2385541C2 (ru) 2010-03-27
AU2005212896A1 (en) 2005-08-25
BRPI0507925B1 (pt) 2018-11-13
BRPI0507925A8 (pt) 2016-04-05
JP5069006B2 (ja) 2012-11-07
ZA200606634B (en) 2007-11-28
AU2005212896C1 (en) 2013-11-14
JP2007522749A (ja) 2007-08-09
TWI396445B (zh) 2013-05-11
BRPI0507925A (pt) 2007-07-17
EP1714490A1 (en) 2006-10-25
CN1934865A (zh) 2007-03-21
WO2005079070A1 (en) 2005-08-25
AU2005212896B2 (en) 2010-01-28
CN1934865B (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
KR100837322B1 (ko) 인코더 및 디코더 버퍼의 사이즈 조정 방법, 장치 및 저장매체
US8532194B2 (en) Picture decoding method
EP1595405B1 (en) Method and device for transmitting media data in nal units over rtp
US7403660B2 (en) Encoding picture arrangement parameter in picture bitstream
US9124907B2 (en) Picture buffering method
US20040218669A1 (en) Picture coding method
MXPA06009109A (en) Resizing of buffer in encoder and decoder

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
FPAY Annual fee payment

Payment date: 20130522

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140521

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150518

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 12