KR20010053002A - 비디오 엔코더 및 버퍼제어를 갖춘 엔코딩방법 - Google Patents

비디오 엔코더 및 버퍼제어를 갖춘 엔코딩방법 Download PDF

Info

Publication number
KR20010053002A
KR20010053002A KR1020007014400A KR20007014400A KR20010053002A KR 20010053002 A KR20010053002 A KR 20010053002A KR 1020007014400 A KR1020007014400 A KR 1020007014400A KR 20007014400 A KR20007014400 A KR 20007014400A KR 20010053002 A KR20010053002 A KR 20010053002A
Authority
KR
South Korea
Prior art keywords
decoder
buffer
empty
vbv buffer
vop
Prior art date
Application number
KR1020007014400A
Other languages
English (en)
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 KR20010053002A publication Critical patent/KR20010053002A/ko

Links

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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

디코더(30)에서 푸시된 데이터에 대해 데이터 속도버퍼(32)가 오버플로우나 언더플로우를 일으키는 일없이 비디오 등의 데이터가 푸시 데이터흐름 시나리오를 이용하여 방송되도록 하기 위한 기술이 제공된다. 엔코더(20)에서는, 데이터는 디코더(30)와의 통신을 위해 엔코드되어 출력 비트스트림을 제공한다. 디코더의 데이터 속도버퍼(32)는 엔코드에서 시뮬레이션(simulation: 모의)된다. 이 시뮬레이션은 디코더 버퍼(32)의 오버플로우나 언더플로우를 방해하도록 출력 비트스트림을 제어하기 위해 사용된다. 예컨대, 디코더 버퍼(32)와 역으로 동작하는 상보형 엔코더 버퍼(22)는 시뮬레이션을 제공하기 위해 감시되고 반전될 수 있다. 디코더 버퍼(32)의 범위내에 데이터를 유지하기 위해 엔코더에서 생성되는 데이터의 양을 제어하기 위한 각종의 다른 기술이 개시되어 있다.

Description

비디오 엔코더 및 버퍼제어를 갖춘 엔코딩방법 {VIDEO ENCODER AND ENCODING METHOD WITH BUFFER CONTROL}
푸시 데이터흐름 통신설계에서는, 비디오 디코더가 필요로 하는 메모리 요구를 바운드(bound)하기 위해 비디오 속도 버퍼 모델이 필요하게 된다. 속도 버퍼 모델의 경우, 비디오 엔코더는 디코더에서 소정의 버퍼 메모리 사이즈를 가지고 해독가능한 비트스트림을 만드는 것을 강요받을 수 있다.
동화상 전문가 그룹(Moving Picture Experts Group: MPEG)에 의해 공표되고 참고를 위해 이 명세서에 짜맞추어져 있는 MPEG-4 시각 FCD(Final Committee Draft) No. N2202는, 일반적으로 억세스 단위 사이즈(예컨대, 코드화 "비디오 객체면(video object plane: VOP)" 사이즈), 디코딩 시간 및 비디오 데이터 스트림의 비트속도에 관계된 비디오 속도 버퍼 모델을 대응하는 데이터를 버퍼링하기 위한 버퍼 사이즈로 지정하지 않는다. 비디오 버퍼링 검증자(video buffering verifier: VBV)상의 FCD의 부가물 D는 이 정보를 위해 비어 있는 위치지지체(placeholder)에 대해 논의하고 있다. 참고를 위해 짜맞추어져 있는 MPEG-4 시스템스 FCD(N2201)는 버퍼 모델을 정의한다. 그렇지만, 비디오와 모순되지 않는 방식으로 제공되는 관련 분야의 표준 정의가 없다.
이것은, 시각 FCD와 시스템스 FCD의 구문간의 관계를 명시적으로 설명하는 전술한 부가물 D와 호환가능한 버퍼 모델을 제공하는데 이점이 있다. 그러한 버퍼 모델은, 비디오 디코더가 필요로 하는 메모리 요구를 바운드(bound)하고, 그에 따라 푸시 데이터흐름의 성공적인 공급을 가능하게 하기 위해, 적절한 속도 버퍼 관리기술을 이용하여 용이하면서도 수월하게 구현될 수 있어야 한다. 본 발명은 전술한 이점 및 다른 이점을 갖는 비디오 속도 버퍼 모델 및 관리기술을 제공한다.
본 발명은 비디오 데이터의 버퍼링에 관한 것으로, 특히 푸시 데이터흐름 시나리오를 이용하여 시청자에게 공급되는 비디오 데이터의 버퍼링에 관한 것이다. 푸시 데이터흐름은 비디오, 텍스트 및/또는 그래픽 정보 등의 데이터가 상호작용(수취인에 의한 정보프로파일의 사전 확정을 제외함)없이 시청자에게 방송되는 기술이다.
도 1은 디코딩 시간(t)에 대한 버퍼 점유기간(b(t)<B)을 플로트한 그래프,
도 2는 본 발명에 따른 엔코더 및 디코더장치를 나타낸 블럭도이다.
본 발명에 따르면, 디코더에서 푸시된 데이터에 대해 데이터 속도 버퍼가 오버플로우나 언더플로우되도록 하는 일없이 비디오 등의 데이터가 푸시 데이터흐름 시나리오(push dataflow scenario)를 이용하여 방송되도록 하는 것을 가능하게 하기 위한 방법 및 장치가 제공된다. 엔코더에서는, 데이터는 디코더와의 통신을 위해 엔코드되어 출력 비트스트림을 제공한다. 디코더의 데이터 속도 버퍼는 엔코더에서 시뮬레이션(simulation: 모의)된다. 이 시뮬레이션은 디코더 버퍼의 오버플로우나 언더플로우를 방해하도록 출력 비트스트림을 제어하기 위해 사용된다. 예컨대, 디코더 버퍼와 역으로 동작하는 상보형 엔코더 버퍼는 시뮬레이션을 제공하기 위해 감시되고 반전될 수 있다. 디코더 버퍼의 범위내에 데이터를 유지하기 위해 엔코더에서 생성되는 데이터의 양을 제어하기 위한 각종의 다른 기술이 개시되어 있다. 이들은, 엔코더에서의 시뮬레이션이 디코더 버퍼가 채워져 있거나 가득 채워질 것이라는 것을 지시할 때, 넓은 VOP를 발생시키기 위해 양자화 레벨을 낮추거나, 혹은 그 VOP의 끝에 스터핑 비트(stuffing bit: 메우는 비트)를 출력하는 것을 포함한다. 상기 시뮬레이션이 디코더 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때는, 엔코더는 더 적은 비트를 발생시키기 위해 양자화 레벨을 높이거나, 다음 VOP의 발생을 지연시키거나, 혹은 VOP당 발생되는 비트의 수를 줄이기 위해 고주파수 계수를 제로화할 수 있다.
MPEG-4 비디오 버퍼링 검증자(video buffering verifier: VBV)는 푸시 데이터흐름 시나리오에 요구되는 속도 버퍼 메모리의 양이 정해진 버퍼 사이즈 이하라는 것을 검증하기 위해 비트스트림 + 배달속도 함수(R(t))를 점검하기 위한 알고리즘이다. 시각 비트스트림(visual bitstream)이 다중의 비디오 객체(Video Object: VO)로 구성되고, 각각이 하나 이상의 VOL(Video Object Layer: 비디오 객체층)을 갖는 경우에는, 각 VOL에 (그 VOL에 특이한 버퍼 사이즈 및 속도함수를 이용하여) 속도 버퍼 모델이 독립적으로 적용된다.
본 발명은 I, P 및 B-VOP의 결합으로서 코드화된 자연 비디오에 버퍼 검증기술을 적용하고, 스프라이트(sprite) 및 합성 비디오 객체뿐만 아니라 전 시각 구문(visual systax)을 커버하도록 확장될 수 있다. 본 발명에 따르면, 비디오 엔코더는 비디오 버퍼링 검증자(VBV)의 요구에 따르도록 그 출력 비트스트림을 제어한다. VBV는 다음과 같이 정의된다.
1. VBV 사이즈는 VOL 헤더에 제공된 vbv_buffer_size 필드에 의해 16384비트의 단위로 지정된다. 0의 vbv_buffer_size는 허용되지 않고 있다. "B"는 16384×vbv_buffer_size로서 정의되고, 비트의 버퍼 사이즈이다. 주의해야 할 것은, 여기에 개시된 실시예에서는 VBV 버퍼의 최대 사이즈가 4G비트라는 점이다. vbv_buffer_size의 값은 visual_object_sequence_end_code의 뒤에 변화될 수 있을 뿐이다.
2. 엔코더에 의해 보여지는 순간적인 비디오 객체층 채널 비트 속도는 초당 비트(bits per second: bps)의 Rvol(t)에 의해 표시된다. VOL 헤더에 bit_rate 필드가 존재하는 경우에는, 이것은 피크 속도(400bps의 단위: 0의 값은 허용되지 않고 있음)를 정의하고, Rvol(t)=400×bit_rate로 된다. 주의해야 할 것은, Rvol(t)는 현재의 VOL(di이하의 정의를 인용)에 대한 시각 구문만을 계수한다는 점이다. 채널이 다른 VOL을 포함하거나 ISO/IEC 14496-1에 의해 R(t)의 엔코더에 의해 보여지는 총 순간 채널속도로 정의되는 바와 같은 직렬시간 다중화인 경우,
Rvol(t) = R(t) (t∈{VOL vol로부터 비트의 채널 비트 기간}인 경우)
0 (그렇지 않은 경우)
이다.
3. VBV 버퍼는 초기에 비어 있다. 첫번째 VOL 헤더를 찾은 후에, vbv_occupancy 필드는 VOL 헤더의 직후에 최초의 VOP를 디코드하기 전에 64비트 단위의 VBV 버퍼의 초기 점유를 판단하기 위해 시험되고 있다. VBV 버퍼의 첫번째 비트는 vbv_occupancy 필드를 함유한 VOL 헤더를 포함하는 VOP(패러그래프 4 이하에 정의됨)의 첫번째 비트이다. 다음의 VOL 헤더의 더 나중의 vbv_occupancy 필드와 VOL 헤더를 함유한 VOP의 제거 직전의 실행 축적 버퍼 점유기간(후에 정의되는 바와 같이 bi+ di)간의 차는 64비트 이하이다.
4. di는 i번째 VOP(여기서, i는 디코딩순서에서 1만큼 증가하는 VOP 인덱스이다)의 비트의 사이즈로 정의된다. 파라미터 di는 디코딩 시간(t)에 대한 버퍼 점유기간(b(t)<B)을 플로트한 도 1에 나타내어져 있다. 특히, di는 다음의 어느 하나의 시각 구문 비트의 수이다.
(1) 이전의 비디오 객체, 스틸 텍스처 객체, 메시 객체(mesh object: 망사형 객체)나 페이스 객체 익스클루시브(face object exclusive)(및 이 비트 바로 다음에 소정의 스터핑 코드워드를 포함함)의 최종비트로부터, 또는
(2) visual_object_sequence_start_code 인클루시브(inclusive)(시각 비트스트림의 첫번째 VOP의 경우)의 첫번째 비트로부터 비디오 객체 헤더, 비디오 객체층 헤더 및 VOP 자신보다 먼저 행해지는 VOP 헤더의 그룹을 포함하는 (VOP의 끝에 소정의 스터핑 코드워드를 포함하는) 현재의 VOP 인클루시브의 최종 비트로.
주의해야 할 것은, 코드화 VOP(di)의 사이즈는 항상 시작 코드 정렬로 인하여 8비트의 배수라는 점이다.
5. ti(도 1)를 디코딩 순서에서 VOP i와 관계된 디코딩 시간으로 한다. VOP i의 모든 비트(di)는 ti에 순간적으로 속도 버퍼로부터 제거된다. 이 순간적인 제거 특성은 VBV 버퍼 모델을 실제의 속도 버퍼와 구별한다.
6. τi는 VOP i의 합성시간(또는 컴포지터(compositor: 식자기)가 없는 디코더에서의 프리젠테이션 시간)이다. 비디오 객체면에 대해, τi는 vop_time_ increment(초의 1/vop_time_increment_resolution-ths의 단위) + module_time_base에 의해 지정된 전 초의 누적된 수에 의해 정의된다. 비월 주사된 비디오의 경우에는, VOP는 두 필드로부터의 라인으로 이루어지고, τi는 첫번째 필드의 합성시간이다. VOP에 대한 합성시간과 디코딩 시간의 관계는,
ti= τi- (((vop_coding_type == BVOP) ∥low_delay)? 0 : mi)
여기서, VOL이 B-VOL을 함유하고 있지 않다면, low_delay는 참(1)이다.
에 의해 주어진다. B-VOP가 존재하면, 앵커 VOP의 합성은 바로 다음의 B-VOP가 모두 합성될 때까지 지연된다. 이 지연주기는 mi= τf- τp이다(여기서, f는 VOP i의 가장 가까운 미래의 앵커 VOP의 인덱스이고, p는 vop i의 현재(또는 가장 가까운 과거의) 앵커 vop의 인덱스이다.)
다음의 예는 연속적인 B-VOP의 변수를 갖는 시퀀스에 대해 mi가 어떻게 결정되는지를 설명한다.
디코딩 순서 : I0P1P2P3B4P5B6P7B8B9P10B11B12
프리젠테이션 순서 : I0P1P2B4P3B6P5B8B9P7B11B12P13
이 예에서는, vop_time_increment=1이고, modulo_time_base=0이라고 가정한다. 서브인덱스 i는 디코딩순서에 있다.
i τi ti mi
0123456789101112 0124365978121011 0-1=-11-1=02-1=14-2=236-2=459-3=67812-3=91011 1112222333333
7. bi를 속도버퍼로부터 VOP i의 제거 바로 다음의 비트의 버퍼 점유기간으로서 정의한다. 파라미터 bi는 도 1에 나타내어져 있다. 상기의 정의를 이용하여, bi는 반복적으로 정의될 수 있다.
b0= 64 ×vbv_occupancy - d0
의 경우,
8. 속도 버퍼 모델은 VBV 버퍼가 결코 오버플로우되거나 언더플로우되지 않는 것을 필요로 한다. 즉,
모든 i에 대해 0≤bi및 bi+ di≤B
인 것을 필요로 한다.
실수값 연산(real-valued arithmetic)은 에러가 축적되지 않도록 bi를 계산하는데 사용된다.
코드화된 VOP 사이즈는 항상 VBV 버퍼 사이즈 이하, 즉 모든 i에 대해 di<B이어야 한다.
디코더의 VBV 버퍼를 오버플로우나 언더플로우하지 않는 비트스트림을 생성하는 것이 엔코더의 필요조건이다. 이것은, 엔코더가 Rvol,decoder(t), 디코더에 의해 보여지는 순간적인 채널 비트속도를 알아야 한다는 것을 의미한다. 채널은 특정의 비트가 그 채널로 들어갈 때의 시간(t)에 엔코더 비트속도라면 일정한 지연을 갖고, Rvol,encoder(t)는 Rvol,decoder(t+L)과 같다(여기서, 비트는 (t + L)에서 수신되고 L은 상수이다). 일정한 지연 채널의 경우, 엔코더는 오버플로우나 언더플로우를 방지하기 위해 그 국부적으로 예측된 Rvol,encoder(t)를 사용하여 VBV 점유기간을 시뮬레이션하고 VOP당 비트의 수 di를 제어할 수 있다.
VBV 모델은 일정한 지연 채널을 가정한다. 이것은, 엔코더가 Rvol,encoder(t)를 이용하여 버퍼를 오버플로우나 언더플로우하지 않는 VOL 비트스트림을 생성하도록 한다. 여기서, 주의해야 할 것은 Rvol(t)는 상기의 패러그래프 2에서의 Rvol,encoder(t)와 같이 정의된다는 점이다.
도 2는 본 발명에 따른 엔코더 및 디코더를 간단화된 블럭도 형태로 나타내고 있다. 엔코드되어야 할 데이터는 엔코더 데이터 속도 버퍼(22)에 연결되어 있는 엔코더 프로세서(20)로 입력된다. 버퍼(22)는 디코더(30)의 데이터 속도 버퍼(32)와 상보적으로 동작한다. 데이터 속도 버퍼(22)를 감시함으로써, 엔코더 프로세서(20)는 디코더의 데이터 속도 버퍼(32)를 시뮬레이션할 수 있다.
엔코더 프로세서는, 통신 채널(26)을 매개로 비트스트림을 수신기(28)로 송신하는 송신기(24)로 출력 비트스트림을 공급한다. 수신기는 수신된 비트스트림을 통상의 방법으로 디코더(30)로 공급한다. 디코더(30)는 그 비트스트림을 디코드하여 소망하는 출력데이터를 공급한다.
일정하지 않은 지연 네트워크 환경에서 실시간 비디오를 어떻게 처리하는가에 대한 설명은 다음과 같다. 이 절차는 가상의 모델뿐이다. 즉, MPEG-4 비트스트림을 일정하지 않은 지연 채널로 어떻게 인터페이스하는가에 대한 필요조건이나 권고는 없다. 채널이
1. 네트워크 인터페이스 및 중간 노드(예컨대, ATM이나 IP 네트워크에 의해 사용되는 스위치나 라우터)에서 알려지지 않은 가변의 패킷-바이-패킷 대기열 지연(packet-by-packet queuing delay)이 존재하고,
2. 정보가 시간 스탬프(각인)된 패킷(time stamped packet)에 배달되며,
3. (예컨대, 서비스 협상의 질에 의해 결정되는 바와 같은) 패킷의 최소 및 최대 채널 대기시간 사이의 차의 범위에 있도록,
일정한 지연을 갖지 않는 경우에는, 일정한 지연 채널은 디코더 전에 지터링(jittering)없는 버퍼를 이용하여 어림잡을 수 있다. 지터링없는 버퍼는 패킷이 디코더로 배포되기 전에 최대 채널 대기시간이 경과할 때까지 각 가변 대기시간 패킷을 유지한다(유지시간은 패킷 시간 스탬프에 기초를 두고 있다). 이제 결과적인 채널은 최대 채널 대기시간과 같은 일정의 지연을 갖는다.
구문 변형(Syntax Modifications):
본 발명은 vbv_occuapncy 필드(26비트)를 VOL 헤더에 가산함으로써 MPEG-4 표준의 구문을 변형한다. 이 정수의 값은, VOL 헤더 다음의 첫번째 VOP의 제거 직전의 64비트 단위의 VBV 점유기간이다. 그 양(quantity)에 대한 목적은 VBV 버퍼 충만(buffer fullness)을 위한 초기 조건을 제공하는 것이다.
MPEG-4 시스템(ISO/IEC 14496-1)과 MPEG-4 시각(ISO/IEC 14496-2) 사이의 정보의 복제를 방지하기 위해, 그리고 자립형 엔티티(stand-alone entity)로서의 시각 기본 스트림이 버퍼 모델을 지정하도록 하기 위해, vbv_parameters 플래그가 VOL 헤더내에 VOP_rate_code, bit_rate, low_delay vbv_size 및 vbv_occupancy에 대한 포함을 제어하기 위해 부가된다. vbv_parameters의 값은, 등가의 정보가 봉입된 시스템 멀티플렉스(encapsulating system multiplex)에 존재하지 않을 때에 푸시 데이터흐름 시각 비트스트림에 대해 "1"이다. vol_control_parameters 비트는 VOL 헤더내에 chroma_format 및 aspect_ratio_information 필드의 포함을 제어하기 위해 구문내에 남아 있다.
FCD VOL 구문은 (23 이상 계속되는 0비트의 실행이 발생할 수 있기 때문에) bit_rate 및 vbv_size가 존재할 때 잠재적인 시작 코드 모방 문제를 내포하고 있다. (항시 값 "1"을 갖는) 표시 비트가 이 문제를 회피하기 위해 부가되어 있다. 표시 비트에 의해 분할된 필드는 다음과 같이 정의된다.
bit_rate = (bit_rate_msbs ≪ 12) |bit_rate_lsbs;
vbv_size = (vbv_size_msbs ≪ 10) |vbv_size_lsbs;
vbv_occupancy = (vbv_occupancy_msbs ≪ 15) |vbv_occupancy_lsbs;
결과적인 구조는 표 1에 나타내어져 있다.
비트의 수 연상 기호
vol_control_parameters 1 blsbf
If (vol_control_parameters) {
aspect_ratio_information 4 uimsbf
chroma_format 2 uimsbf
}
vbv_parameters 1 blsbf
If (vbv_parameters) {
VOP_rate_code 4 uimsbf
bit_rate_msbs 18 uimsbf
marker_bit 1 blsbf
bit_rate_lsbs 12 uimsbf
low_delay 1 blsbf
vbv_size_msbs 8 uimsbf
marker_bit 1 blsbf
vbv_size_lsbs 10 uimsbf
vbv_occupancy_msbs 11 uimsbf
marker_bit 1 blsbf
vbv_occupancy_lsbs 15 uimsbf
}
표 1에서 주의해야 할 점:
1. aspect_ratio_information 및 VOP_rate_code의 엔코딩은 MPEG-4 시각 FCD에 정의되어 있지 않다.
2. 푸시 데이터흐름 모델을 갖는 엔코드된 비트스트림을 사용하기 위해, vbv_parameters가 "1"로 설정되어야 하거나, 혹은 후술하는 항목 4에 정의되어 있는 바와 같은 등가정보가 시스템층내에 포함되어야 한다는 것이 표준적인 필요조건이다.
3. VOP_rate_code가 공급되면, VOP_time_increment에 의해 지정된 합성 시간과 축적 modulo_time_base 사이의 차가 VOP_rate_code와 관계된 프레임 주기의 정확히 정수배가 되어야 한다. 이 경우, VOP_time_increment_resolution의 폭은 정확히 59.94Hz(즉, 60000/1001 Hz)를 나타내도록 1비트만큼 증가되어야 한다.
MPEG-4 시스템과의 관계:
이하의 설명은, 시스템 디코더 모델(System Decoder Model: SDM)이 비디오 버퍼 검증자(Video Buffer Verifier)와 일치하도록, MPEG-4 시스템(ISO/IEC 14496-1) 기본 시스템 인터페이스와 시각 디코더(또는 엔코더)의 술어학(terminology), 의미론 및 구문간의 관계를 정의하고 있다. 이 경우, 시각 VBV 버퍼 및 SDM 디코딩 버퍼(DBr)는 동일한 의미론을 갖는다. 이들 버퍼는 통합된 시각/시스템 디코더 모델로 동일하다.
1. 자연 비디오 억세스 유니트는 코드화된 VOP이다. 코드화된 VOP의 사이즈(di) 및 정확한 합성은 도 1을 참조하여 상기에 정의되어 있다.
2. OCR(object clock reference), DTS(decoding time stamp) 및 CTS(composition time stamp: 합성시간 스탬프)를 결정하는데 사용되는 OTB(object time base)는 VOP_time_increment 및 modulo_time_base를 결정하는데 사용되는 동일한 시간 베이스이다. 일시적인 정확도가 훼손되지 않고, 모든 일시적인 계산이 정수 연산에 필요하게 되도록, 동기층(Sync Layer) timeStampResolution 및 OCRResolution은 VOP_time_increment_resolution의 정수배이어야 한다.
3. 합성시간 스탬프는 τi+ 상수(K)와 같다. 즉,
여기서, ni는 초기 VOL 헤더 이후 modulo_time_base값의 누적(accumulation)이다. 위 식에서는, 부득이 VOP_time_increment를 VOP_time_INcrement로 나타내고, VOP_time_increment_resolution을 VOP_time_INcrement_resolution로 나타내고 있다.
4. CTS로부터의 디코딩시간 스탬프는 ti를 τi로부터 계산하는 방법, 즉
DTSi= CTSi- (((vop_coding_type == BVOP) ∥ low_delay) ? 0 : mi)
와 마찬가지로 결정된다.
이 식은 디코딩이 순간적이고 DTS와 CTS의 차만이 앵커 VOP의 재정렬을 초래한다는 것을 지정한다. 주의해야 할 것은, low_delay가 0일 때(상기의 조건표현이 참일 때) DTS가 앵커 VOP상에만 나타난다는 점이다.
5. 그 시간에 엔코더의 로컬 객체 시간 베이스값(local object time base value)과 DTSi의 값간의 관계가 여기에 정의되어 있다. VOL 헤더를 함유하고 있는 억세스 유니트의 첫번째 비트가 시간 OCRi및 동일한 VOL 헤더에 지정된 vbv_occupancy에 VBV(또는 SDM DB) 버퍼에 저장되어 있는 것으로 하고, 그때
인 것으로 한다.
vbv_occupancy의 계산이 가장 가까운 정수에 정확하게 일치하게 하는 것이 OCRResolution 및 timeStampResolution에 대한 절대적인 요구이다.
6. 시스템층(System Layer: SL) RandomAccessPointFlag는, "1"로 설정되면, 이 SL 패킷에서 시작되는 억세스 유니트에 VOL 헤더의 존재를 지시한다.
7. bufferSizeDB에 대한 DecoderConfigDescriptor값은 2048×vbv_buffer_ size와 같다. maxBitrate 필드는 400×bit_rate이어야 한다.
vbv_information 비트에 의해 제어되는 VOL 헤더 정보와 MPEG-4 시스템층에 지정된 각종의 구문 엔티티의 대응관계는 다음과 같이 주어진다. 정보가 MPEG-4 표준의 두 부분에 의해 복제되는 경우에는, 불일치가 허용되지 않는다.
1. VOP_rate_code는 동기층(Sync Layer) compositionUnitDuration 및 timeScale에 의해 표현된다. 이 경우, timeScale은 VOP_time_increment_ resolution의 정수배이어야 한다.
2. bit_rate와 vbv_size는 DecoderConfigDescriptor에서 maxBitrate 및 bufferSizeDB에 의해 지시된다.
3. vbv_occupancy는 상기에 정의된 바와 같이 OCR과 DTS의 차에 의해 간접적으로 지시된다.
4. low_delay는 첫번째 I-VOP의 DTS에 의해 절대적으로 지정된다. DTS가 존재하면(그리고 PTS와 같지 않으면), low_delay=0이고, 그 외는 low_delay=1이다.
MPEG-4 VBV와 MPEG-2 VBV의 비교:
MPEG-2 및 MPEG-4 VBV 모델은 모두 속도 버퍼가 오버플로우나 언더플로우하지 않을 수도 있다는 것과, 코드화된 영상(VOP)이 버퍼로부터 순간적으로 제거된다는 것을 지정한다. 양 모델에서, 코드화된 영상/VOP는 그 영상/VOP 직전의 모든 상위레벨 구문을 포함하도록 정의되어 있다.
(비트스트림이 양 프레임을 내포할 수 있고 필드 영상 및 프레임 영상이 repeat_first_field 플래그를 통해 명쾌한 2:3 풀다운을 사용할 수 있지만) MPEG-2 비디오는 일정한 프레임 주기를 갖는다. MPEG-4 항목에서는, 이 프레임 속도는 컴포지터의 출력일 수 있다(MPEG-2 술어학은 MPEG-2에 의해 표준적으로 정의되고 있지 않은 디스플레이 처리의 출력이다). 이 출력 프레임은 MPEG-2 picture_structure 및 repeat_first_field 플래그와 함께 디코딩 처리와 디스플레이 처리간에 통과되는 연속적인 디코드 영상(프레임이든 필드든) 사이의 시간간격을 정확히 정의한다.
일반적으로, MPEG-2 비트스트림은 B영상(여기서는, MPEG-2 low_delay=0이라 가정하고, 그 경우 low_delay=1이었던 다음 부분을 인용한다)을 내포하고 있다. 이것은, (B영상에 의해 사용되는 양쪽의 기준 영상이 코딩 순서에서 B영상을 앞서야 하기 때문에) 영상의 코딩순서 및 디스플레이 순서가 다르다는 것을 의미한다. MPEG-2 VBV(및 MPEG-2 시스템스 T-STD)는, B영상이 동시에 (순간적으로) 디코드되어 나타나고, 앵커 영상이 이것을 가능하게 하도록 재정렬된다는 것을 지정한다. 이것은, 합성시간(ti)의 정의에서 상기에 지정된 것과 동일한 재정렬 모델이다.
MPEG-4 VOP 시간 스탬프가 vop_time_increment에 의해 주어지고 modulo_time_increment가 시퀀스 MPEG-2 영상 프리젠테이션 시간과 일치한다면, 제안된 MPEG-4 VBV 버퍼 모델을 사용하는 가상의 MPEG-4 디코더는 MPEG-2 VBV 버퍼 모델을 사용하는 가상의 MPEG-2 디코더를 정확히 모방한다. 여기서는, 양쪽의 코드화된 영상/VOP는 양 표준(프레임 구조 영상 및 디코더상에 3:2 풀다운이 없음, 즉 repeat_first_field = 0)의 공통의 부분집합을 사용하는 것으로 가정한다. 예컨대, MPEG-2 시퀀스가 29.97Hz(NTSC 영상속도)에서 코드화되어 있다면, (low_delay=0일 때) 영상 스킵핑이 MPEG-2에서 허용되지 않기 때문에 vop_time_increment_resolution은 30000이어야 하고, 프리젠테이션 순서에서 계속되는 VOP간의 vop_time_increment에서의 변화는 1001이어야 한다.
H.263 모양의 버퍼 모델:
H. 263에서는, B-VOP가 없고, 디코딩과 프리젠테이션 시간 사이의 합성 유니트의 재정렬이 없다.
H.263 가상 기준 디코더(Hypothetical Reference Decoder: HRD)는 MPEG-4 VBV와 등가일 수 있다. H.263 모양의 버퍼 모델에서는, VBV 버퍼 사이즈(vbv_buffer_size)는 vbv_buffer_size = A + BPPmaxKb ×1024비트(여기서, (BPPmaxKb ×1024)는 비트스트림에 사용하기 위해 처리되어 있는 영상당 비트의 최대수이다) 및,
A = 4 ×Rmax / P
(여기서, Rmax는 bps(bits per second)의 접속중의 최대 비디오 비트속도이고, 영상 주파수 P는 vop_time_increment_resolution = 30000 및 Δvop_time_increment = 1001에 대응하는 공통 중간 포맷(Common Intermediate Format: CIF)을 위해 지정된 바와 같은 29.97Hz이다)
에 의해 계산된다.
VBV는 초기에 비어 있다. VBV는 CIF 간격으로 시험된다. 적어도 하나의 완전한 코드화된 VOP가 버퍼내에 있으면, 비트스트림(또는 디코딩) 순서에서 가장 빠른 VOP에 대한 모든 데이터가 순간적으로 제거된다. 상기의 데이터의 제거 직후에 버퍼 점유기간은 A 이하로 되지 않으면 안된다. 이 경우, (i+1)번째 코드화된 영상(i+1)에 대한 비트수는,
(여기서, bi는 그 버퍼로부터 제거된 i번째 코드화된 영상 직후의 버퍼 점유
기간;
ti는 n번째 코드화된 영상이 VBV 버퍼로부터 제거된 시간; 및
R(t)는 시간 t에서의 비디오 비트속도이다)
을 만족하지 않으면 안된다. 이 부등식에는 실수값 연산이 사용된다.
MPEG-4 VBV 모델과 H.263 모델의 중요한 차이점은, 엔코더가 비트스트림의 각 VOP에 대해 합성시간(ti)을 지정한다는 점이다. 이것은, 다시 엔코더가 R(t) 및 A, 디코더에서 보여지는 바와 같은 순간적인 비트속도를 알아야 한다는 것을 의미한다. 다시, 이 가정은 일정한 지연 채널이 상정(想定)되는 경우에 유효하다.
low_delay=1일 때의 MPEG-2 VBV 모델은 HRD와 몇가지의 유사성을 갖는다. 첫째로, 디코딩 및 프리젠테이션 시간 순서가 동일하게 되도록 사용되는 B-영상이 없다. 둘째로, 그 버퍼를 시험하기 위해 지정된 영상주기(반드시 29.97Hz는 아님)가 사용된다. 디코드되어야 할 다음의 영상이 다음의 영상주기에서 전체적으로 수신되지 않은 경우(이러한 영상을 "큰 영상(big picture)"이라 한다)에는, 버퍼는 코드화된 영상이 버퍼내에 충분히 잔류할 때까지 영상주기의 배수로 재시험된다. 그 후, 큰 영상은 순간적으로 디코드되어 표시될 수 있다. 이전의 화상은 큰 영상이 완전히 수신되지 않은 사이의 영상주기동안 디코더 출력에 남아 있다. 엔코더는 아직까지 오버플로우 및 언더플로우의 방지에 대한 책임이 있고, 큰 영상의 MPEG-2 temporal_reference 필드와 그 전임자의 차이는 (프레임 주기의) 큰 영상 이전의 영상의 디스플레이의 기간이다.
완전한 시각 구문의 확장:
완전한 시각 구문을 커버링하는 것은 스프라이트, 스틸 텍스처 객체, 메시 객체(mesh object: 망사형 객체) 및 페이스 객체(face object)에 대한 확장을 필요로 한다. 이 경우, VBV는 시각 버퍼 검증자를 의미한다.
스프라이트(sprite):
기본적인 스프라이트, 낮은 대기시간 스프라이트 및 계수가 가능한 스프라이트가 MPEG-4에 지정되어 있다. 스프라이트의 비트스트림 발생에 따른 개념 문제는 없다. 그렇지만, 큰 vbv_size가 디코더에서 큰 스프라이트 메모리를 이용하도록 적용되어도 좋다.
스틸 텍스처 객체(Still Texture Object):
스틸 텍스처 객체는 단일의 억세스 유니트이지만, 직접 구성할 수 없다. 스틸 텍스처 객체는 후에 디코더(예컨대, 메시 디코더)로의 입력으로서 사용된다. 스틸 텍스처 객체는 이 시각 객체를 푸시 데이터흐름 시나리오로 제어하기 위해 버퍼 파라미터나 시간스탬프를 가지고 있지 않다. 표 2의 다음의 구문은 StillTextureObject에 부가해야 한다.
비트의 수 연상 기호
vbv_parameters 1 blsbf
If (vbv_parameters) {
bit_rate_msbs 18 uimsbf
marker_bit 1 blsbf
bit_rate_lsbs 12 uimsbf
vbv_size_msbs 8 uimsbf
marker_bit 1 blsbf
vbv_size_lsbs 10 uimsbf
vbv_occupancy_msbs 11 uimsbf
marker_bit 1 blsbf
vbv_occupancy_lsbs 15 uimsbf
time_stamp_fraction_bits 5 uimsbf
time_stamp_seconds 17 uimsbf
market_bit 1 blsbf
time_stamp_fraction 1-31 uimsbf
}
time_stamp_fraction의 비트수는 제로일 수 없는 time_stamp_fraction_bits에 의해 지정된다.
메시 및 페이스 객체(Mesh and Face Object):
메시 시각 객체 억세스 유니트는 메시 객체면이다. 페이스 시각 객체 억세스 유니트는 페이스 객체면이다. 재정렬을 필요로 하지 않기 때문에, ti= τi이다.
양 객체는 일시적인 정보, temporal_header()의 공통 사양을 분할한다. 메시/페이스 객체가 인트라 코드화(intra coded)된 때에는, temporal_header()는 프레임 속도 및 메시/페이스 객체면의 합성시간을 지정하는 시간 스탬프(시간, 분, 초 및 프레임을 지정하는 IEC 461 시간코드)를 선택적으로 지정할 수 있다. 시간코드(00:00:00:00)의 시작(origin)은 DTS 및 CTS용의 MPEG-4 시스템(ISO/IEC 14496-1)에서 사용되는 일시적인 시작과 일치해야 한다. 객체면간의 시간은 프레임 주기의 1 + ∑number_of_frames_to_skip배이다. 이것은, 절대적인 CTS가 이전의 인트라 메시/페이스 객체의 CTS로부터 구축되도록 한다.
버퍼 모델을 메시/페이스 객체에 대한 시각 비트스트림에 적용하기 위해, vbv_parameters(low_delay 및 VOP_rate_code를 제외하고)에 의해 제어되는 다음의 VBV 파라미터가 표 3에 나타낸 바와 같이 MeshObject 및 FaceObject에 부가될 필요가 있다.
비트의 수 연상 기호
vbv_parameters 1 blsbf
If (vbv_parameters) {
bit_rate_msbs 18 uimsbf
marker_bit 1 blsbf
bit_rate_lsbs 12 uimsbf
vbv_size_msbs 8 uimsbf
marker_bit 1 blsbf
vbv_size_lsbs 10 uimsbf
vbv_occupancy_msbs 11 uimsbf
marker_bit 1 blsbf
vbv_occupancy_lsbs 15 uimsbf
}
속도버퍼 관리(Rate-buffer Management):
디코더 VBV 버퍼의 오버플로우나 언더플로우를 방지하는 것이 엔코더의 의무이기 때문에, 엔코더는 디코더 VBV 버퍼를 시뮬레이션하지 않으면 안된다. 시뮬레이션된 디코더 VBV 버퍼는 가득 차거나 텅 비도록 할 수 없다.
디코더 VBV의 언더플로우를 방지하기 위해서는, 코드화된 VOP의 모든 데이터를 그들의 디코딩 시간전에 디코더 버퍼로 완전히 송신하지 않으면 안된다. i번째 VOP의 엔코딩은 시간에서 시작되고, 그 디코딩 시간은 ti이다. i번째 VOP가 코드화된 후에, 송신된 데이터의 양은에서의 엔코더 버퍼 충만도(에 의해 표시됨) + 이 VOP의 코드화된 사이즈(di)에 의해 주어진다. 이것은 채널로부터 수신된 데이터보다 적거나 같아진다.
(여기서, 디코딩 시간 ti=+ L이고, 일정한 지연 채널에 대해서는 이것은 Rvol,decoder(t) = Rvol,encoder(t-L)을 갖는다.)
따라서,
이다. 그러므로,에서의 엔코더 버퍼 충만도는
에 의해 상위 바운드(upper bound)된다.
알려진 최소 전송속도 Rvol,min을 갖는 채널의 형태에 대해, T2
의 하위 바운드(lower bound)되도록
T2= L·Rvol,min- di
로서 설정될 수 있다.
디코더 VBV의 오버플로우를 방지하기 위해서는, 디코더 버퍼 충만도를 VOP i의 제거 직전에 시간 ti에서의 디코더 버퍼 사이즈 B보다 작게 하지 않으면 안된다. 이 양은에서의 디코더 버퍼 충만도() +와 ti() 사이의 디코더 VBV 버퍼로 들어가는 비트의 수 -와 ti사이의 디코더 버퍼로부터 제거된 비트의 수의 항으로 표현될 수 있다.
VOP i가 디코드될 수 있기 전에 VOP i 전의 모든 비트스트림 데이터가 소실되어야 하기 때문에, 제거된 비트의 수는 VOP i를 부가하기 직전에에서의 엔코더 버퍼 점유기간()과에서의 디코더 버퍼 충만도()의 합이다. VOP i가 엔코더 버퍼에 부가되지 않기 때문에, 후자의 2개의 양은 VOP i 전의 비트스트림 데이터를 나타낸다. 따라서, 디코더 버퍼의 총 비트는
에 의해 바운드된다.
그리고, 다음 식을 산출한다.
따라서,에서의 encoder_buffer_fullness는
에 의해 하위 바운드된다.
일정한 지연 채널에 관해 상기에 주어진 동일한 논의가 여기에 적용될 수 있다. 또한, 알려진 최대 전송속도 Rvol,max를 갖는 채널의 형태에 대해, T1
의 상위 바운드되도록
T1= L·Rvol,max- B
로서 설정될 수 있다.
바운드(T1, T2)는 속도제어 알고리즘으로 점검되고, 교정동작은 VOP의 비트 할당을 수행하여 코딩 유니트(예컨대, VOP, 마이크로블럭)의 양자화 레벨을 조정하기 위한 것이다.
엔코더는, 시뮬레이션된 디코더 VBV 버퍼가 가득 채워지거나 혹은 텅 비게 되는 경우에는, 다음의 교정동작을 취하지 않으면 안된다.
1. 시뮬레이션된 디코더 VBV 버퍼가 가득 채워지게 되면(즉, 엔코더 VBV 버퍼가 텅 비게 되면), 엔코더는
(a) 큰 VOP를 발생시키기 위해 양자화 레벨을 낮추거나, 혹은
(b) VOP의 끝에서 스터핑 비트를 출력시키는(주의해야 할 것은, 더 큰 VOP를 발생시키는 것은 디코더 VBV 점유기간을 짧게 한다는 점이다) 등
에 의해 문제를 교정할 수 있다.
2. 시뮬레이션된 디코더 VBV 버퍼가 텅 비게 되면(즉, 엔코더 VBV 버퍼가 가득 채워지게 되면), 엔코더는
(a) 더 작은 VOP를 발생시키기 위해 양자화 레벨을 높이거나, 혹은
(b) 다음 VOP(종종 스킵핑 VOP라 한다)의 발생을 지연시키거나, 혹은
(c) 발생된 비트/VOP의 수를 줄이기 위해 고주파수 계수를 제로화하는 등
에 의해 문제를 교정할 수 있다.
이상 설명한 바와 같이, 본 발명은 비디오 디코더의 메모리 요구를 푸시 데이터흐름 시나리오로 바운딩하기 위한 비디오 속도버퍼 모델을 제공한다는 것을 알 수 있다. 본 발명의 속도버퍼 모델은 소정의 버퍼 메모리 사이즈를 가지고 디코드할 수 있는 비트스트림을 생성하기 위해 비디오 엔코더를 내포하고 있다. 따라서, 푸시 데이터흐름의 응용이 효과적으로 적용된다.

Claims (33)

  1. 디코더에서 푸시된 데이터에 대해 소정의 메모리 사이즈의 데이터 속도버퍼가 오버플로우나 언더플로우를 일으키는 일없이 푸시 데이터흐름을 가능하게 하기 위한 엔코더장치에 있어서,
    디코더와의 통신을 위해 데이터를 엔코드하여 출력 비트스트림을 제공하는 프로세서를 구비하고,
    상기 프로세서는, 상기 디코더의 상기 데이터 속도버퍼를 시뮬레이션하고, 이 시뮬레이션에 응답하여 상기 출력 비트스트림을 디코더 버퍼의 오버플로우나 언더플로우를 방해하도록 제어하는 것을 특징으로 하는 엔코더장치.
  2. 제1항에 있어서, 상기 푸시된 데이터는, 인트라프레임(I), 예측(P) 및 양방향(B) 비디오 객체면(VOP)을 포함하는 비디오 데이터로 이루어진 것을 특징으로 하는 엔코더장치.
  3. 제2항에 있어서, 상기 프로세서는,
    다른 VOP 사이에서 비트를 할당하는 것 및,
    상기 VOP를 형성하는 코딩 유니트의 양자화 레벨을 조정하는 것
    의 적어도 하나에 의해 상기 출력 비트스트림을 제어하는 것을 특징으로 하는 엔코더장치.
  4. 제3항에 있어서, 상기 디코더 데이터 속도버퍼는 비디오 버퍼링 검증자(VBV) 버퍼인 것을 특징으로 하는 엔코더장치.
  5. 제4항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 채워져 있거나 가득 채워질 것이라는 것을 지시할 때에 상기 코딩 유니트에 대한 양자화 레벨을 낮추는 것을 특징으로 하는 엔코더장치.
  6. 제5항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 상기 코딩 유니트에 대한 양자화 레벨을 높이는 것을 특징으로 하는 엔코더장치.
  7. 제5항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 다음의 VOP의 발생을 지연시키는 것을 특징으로 하는 엔코더장치.
  8. 제5항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 VOP당 발생되는 비트의 수를 줄이기 위해 상기 코딩 유니트의 고주파수 계수를 제로화하는 것을 특징으로 하는 엔코더장치.
  9. 제4항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 디코더 VBV 버퍼가 채워져 있거나 가득 채워질 것이라고 판단될 때에, 적어도 하나의 VOP의 끝에 스터핑 비트를 부가하는 것을 특징으로 하는 엔코더장치.
  10. 제9항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 상기 코딩 유니트에 대한 양자화 레벨을 높이는 것을 특징으로 하는 엔코더장치.
  11. 제9항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 다음의 VOP의 발생을 지연시키는 것을 특징으로 하는 엔코더장치.
  12. 제9항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 VOP당 발생되는 비트의 수를 줄이기 위해 상기 코딩 유니트의 고주파수 계수를 제로화하는 것을 특징으로 하는 엔코더장치.
  13. 제4항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 상기 코딩 유니트에 대한 양자화 레벨을 높이는 것을 특징으로 하는 엔코더장치.
  14. 제4항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 다음의 VOP의 발생을 지연시키는 것을 특징으로 하는 엔코더장치.
  15. 제4항에 있어서, 상기 프로세서는, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하고, 그 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에 VOP당 발생되는 비트의 수를 줄이기 위해 상기 코딩 유니트의 고주파수 계수를 제로화하는 것을 특징으로 하는 엔코더장치.
  16. 제1항에 있어서, 상기 프로세서는, 디코더 버퍼와 상보적으로 동작하는 상기 엔코더의 데이터 속도버퍼를 감시함으로써 디코더의 데이터 속도버퍼를 시뮬레이션하는 것을 특징으로 하는 엔코더장치.
  17. 제16항에 있어서, 상기 엔코더 및 디코더 데이터 속도버퍼는 비디오 버퍼링 검증자(VBV) 버퍼인 것을 특징으로 하는 엔코더장치.
  18. 디코더에서 푸시된 데이터에 대해 소정의 메모리 사이즈의 데이터 속도버퍼가 오버플로우나 언더플로우를 일으키는 일없이 푸시 데이터흐름을 가능하게 하기 위한 방법에 있어서,
    디코더와의 통신을 위해 데이터를 엔코드하여 출력 비트스트림을 제공하는 엔코딩단계와,
    상기 디코더의 상기 데이터 속도버퍼를 시뮬레이션하는 시뮬레이션단계 및,
    상기 시뮬레이션단계에 응답하여 상기 출력 비트스트림을 디코더 버퍼의 오버플로우나 언더플로우를 방해하도록 제어하는 단계를 구비한 것을 특징으로 하는 방법.
  19. 제18항에 있어서, 상기 푸시된 데이터는, 인트라프레임(I), 예측(P) 및 양방향(B) 비디오 객체면(VOP)을 포함하는 비디오 데이터로 이루어진 것을 특징으로 하는 방법.
  20. 제19항에 있어서, 상기 출력 비트스트림은,
    다른 VOP 사이에서 비트를 할당하는 것 및,
    상기 VOP를 형성하는 코딩 유니트의 양자화 레벨을 조정하는 것
    의 적어도 하나에 의해 제어되는 것을 특징으로 하는 방법.
  21. 제20항에 있어서, 상기 디코더 데이터 속도버퍼는 비디오 버퍼링 검증자(VBV) 버퍼인 것을 특징으로 하는 방법.
  22. 제21항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 채워져 있거나 가득 채워질 것이라는 것을 지시할 때에, 상기 코딩 유니트에 대한 양자화 레벨을 낮추는 단계를 더 구비한 것을 특징으로 하는 방법.
  23. 제22항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, 상기 코딩 유니트에 대한 양자화 레벨을 높이는 단계를 더 구비한 것을 특징으로 하는 방법.
  24. 제22항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, 다음의 VOP의 발생을 지연시키는 단계를 더 구비한 것을 특징으로 하는 방법.
  25. 제22항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, VOP당 발생되는 비트의 수를 줄이기 위해 상기 코딩 유니트의 고주파수 계수를 제로화하는 단계를 더 구비한 것을 특징으로 하는 방법.
  26. 제21항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 채워져 있거나 가득 채워질 것이라는 것을 지시할 때에, 적어도 하나의 VOP의 끝에 스터핑 비트를 부가하는 단계를 더 구비한 것을 특징으로 하는 방법.
  27. 제26항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, 상기 코딩 유니트에 대한 양자화 레벨을 높이는 단계를 더 구비한 것을 특징으로 하는 방법.
  28. 제26항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, 다음의 VOP의 발생을 지연시키는 단계를 더 구비한 것을 특징으로 하는 방법.
  29. 제26항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, VOP당 발생되는 비트의 수를 줄이기 위해 상기 코딩 유니트의 고주파수 계수를 제로화하는 단계를 더 구비한 것을 특징으로 하는 방법.
  30. 제21항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, 상기 코딩 유니트에 대한 양자화 레벨을 높이는 단계를 더 구비한 것을 특징으로 하는 방법.
  31. 제21항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, 다음의 VOP의 발생을 지연시키는 단계를 더 구비한 것을 특징으로 하는 방법.
  32. 제21항에 있어서, 상기 시뮬레이션된 디코더 VBV 버퍼를 감시하는 단계와,
    상기 시뮬레이션이 디코더 VBV 버퍼가 비어 있거나 텅 비일 것이라는 것을 지시할 때에, VOP당 발생되는 비트의 수를 줄이기 위해 상기 코딩 유니트의 고주파수 계수를 제로화하는 단계를 더 구비한 것을 특징으로 하는 방법.
  33. 제18항에 있어서, 상기 시뮬레이션단계는, 디코더 버퍼와 상보적으로 동작하는 엔코더 데이터 속도버퍼를 감시함으로써 디코더의 데이터 속도버퍼를 시뮬레이션하는 것을 특징으로 하는 방법.
KR1020007014400A 1998-06-19 1999-05-28 비디오 엔코더 및 버퍼제어를 갖춘 엔코딩방법 KR20010053002A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US9002398P 1998-06-19 1998-06-19
US60/090,023 1998-06-19
US09/219,913 US6289129B1 (en) 1998-06-19 1998-12-23 Video rate buffer for use with push dataflow
US09/219,913 1998-12-23
PCT/US1999/011928 WO1999066734A1 (en) 1998-06-19 1999-05-28 Video encoder and encoding method with buffer control

Publications (1)

Publication Number Publication Date
KR20010053002A true KR20010053002A (ko) 2001-06-25

Family

ID=26781410

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007014400A KR20010053002A (ko) 1998-06-19 1999-05-28 비디오 엔코더 및 버퍼제어를 갖춘 엔코딩방법

Country Status (13)

Country Link
US (1) US6289129B1 (ko)
EP (1) EP1088454A1 (ko)
JP (1) JP2002518951A (ko)
KR (1) KR20010053002A (ko)
CN (1) CN1315116A (ko)
AU (1) AU756355B2 (ko)
BR (1) BRPI9911289B1 (ko)
CA (1) CA2334785A1 (ko)
IL (1) IL140208A0 (ko)
NO (1) NO20006469L (ko)
NZ (1) NZ509326A (ko)
RU (1) RU2216122C2 (ko)
WO (1) WO1999066734A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100951008B1 (ko) * 2007-12-17 2010-04-02 한국전자통신연구원 인터레이스 부호화에서의 실시간 비트율 제어 방법 및시스템
KR100988402B1 (ko) * 2004-06-27 2010-10-18 애플 인크. 멀티-패스 비디오 인코딩 방법
US8355436B2 (en) 2002-11-08 2013-01-15 Apple Inc. Method and apparatus for control of rate-distortion tradeoff by mode selection in video encoders
US8781002B2 (en) 2003-01-08 2014-07-15 Apple Inc. Method and apparatus for improved coding mode selection

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483543B1 (en) * 1998-07-27 2002-11-19 Cisco Technology, Inc. System and method for transcoding multiple channels of compressed video streams using a self-contained data unit
US6670996B2 (en) * 1998-08-20 2003-12-30 Intel Corporation Apparatus and method for display of progressive and interland video content
US6529552B1 (en) * 1999-02-16 2003-03-04 Packetvideo Corporation Method and a device for transmission of a variable bit-rate compressed video bitstream over constant and variable capacity networks
EP1146745B1 (en) * 2000-03-08 2019-09-04 Mitsubishi Denki Kabushiki Kaisha Coding device and coding method
JP2002165148A (ja) * 2000-11-29 2002-06-07 Sony Corp データ処理装置および方法、並びに記録媒体
US6694060B2 (en) * 2000-12-21 2004-02-17 General Instrument Corporation Frame bit-size allocation for seamlessly spliced, variable-encoding-rate, compressed digital video signals
US6922441B2 (en) * 2001-05-11 2005-07-26 International Business Machines Corporation Method for performing integer divides without propagation of truncation error
US20030112366A1 (en) * 2001-11-21 2003-06-19 General Instrument Corporation Apparatus and methods for improving video quality delivered to a display device
EP2403263A3 (en) * 2002-04-26 2012-01-25 Sony Corporation Encoding device and method, decoding device and method, editing device and method, recoding medium, and program
JP3714302B2 (ja) 2002-07-08 2005-11-09 ソニー株式会社 画像データ処理装置及び方法
DK3079261T3 (en) * 2002-09-20 2019-04-29 Ntt Docomo Inc METHOD AND APPARATUS FOR ARITHMETIC DECODATION
MY134659A (en) * 2002-11-06 2007-12-31 Nokia Corp Picture buffering for prediction references and display
KR100711635B1 (ko) * 2003-02-18 2007-04-25 노키아 코포레이션 화상 부호화 방법
WO2004075554A1 (en) 2003-02-18 2004-09-02 Nokia Corporation Picture decoding method
US8194751B2 (en) * 2003-02-19 2012-06-05 Panasonic Corporation Moving picture coding method and moving picture decoding method
US7266147B2 (en) * 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
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
US8406293B2 (en) 2004-06-27 2013-03-26 Apple Inc. Multi-pass video encoding based on different quantization parameters
US8005139B2 (en) 2004-06-27 2011-08-23 Apple Inc. Encoding with visual masking
US9124907B2 (en) * 2004-10-04 2015-09-01 Nokia Technologies Oy Picture buffering method
US9679602B2 (en) 2006-06-14 2017-06-13 Seagate Technology Llc Disc drive circuitry swap
US7715316B2 (en) * 2007-05-11 2010-05-11 Verizon Services Organization Inc. Method and apparatus for improving performance in a network using a virtual queue and a switched poisson process traffic model
US9305590B2 (en) 2007-10-16 2016-04-05 Seagate Technology Llc Prevent data storage device circuitry swap
US8045836B2 (en) * 2008-01-11 2011-10-25 Texas Instruments Incorporated System and method for recording high frame rate video, replaying slow-motion and replaying normal speed with audio-video synchronization
US8384739B2 (en) * 2008-09-30 2013-02-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimization of pixel-processing algorithms
CN102630006B (zh) * 2012-03-20 2017-03-08 中广传播集团有限公司 一种传输视频流的装置和方法
CN102970579B (zh) * 2012-11-28 2015-06-17 四川长虹电器股份有限公司 一种视频缓冲区监控的方法及装置
CN105393231A (zh) * 2013-07-22 2016-03-09 富士通株式会社 信息处理装置、方法、以及程序

Family Cites Families (13)

* 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
US5144425A (en) * 1991-08-26 1992-09-01 General Electric Company Apparatus for hierarchically dividing video signals
US5231384A (en) * 1991-08-26 1993-07-27 General Electric Company Apparatus for splitting video signal between two channels
US5805762A (en) * 1993-01-13 1998-09-08 Hitachi America, Ltd. Video recording device compatible transmitter
US5512939A (en) * 1994-04-06 1996-04-30 At&T Corp. Low bit rate audio-visual communication system having integrated perceptual speech and video coding
JP3172635B2 (ja) * 1994-07-14 2001-06-04 シャープ株式会社 ディジタル記録再生装置
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
GB9424437D0 (en) 1994-12-02 1995-01-18 Philips Electronics Uk Ltd Encoder system level buffer management
US5543853A (en) * 1995-01-19 1996-08-06 At&T Corp. Encoder/decoder buffer control for variable bit-rate channel
US5862140A (en) * 1995-11-21 1999-01-19 Imedia Corporation Method and apparatus for multiplexing video programs for improved channel utilization
US5956088A (en) * 1995-11-21 1999-09-21 Imedia Corporation Method and apparatus for modifying encoded digital video for improved channel utilization
US5668599A (en) * 1996-03-19 1997-09-16 International Business Machines Corporation Memory management for an MPEG2 compliant decoder
US6055330A (en) 1996-10-09 2000-04-25 The Trustees Of Columbia University In The City Of New York Methods and apparatus for performing digital image and video segmentation and compression using 3-D depth information

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8355436B2 (en) 2002-11-08 2013-01-15 Apple Inc. Method and apparatus for control of rate-distortion tradeoff by mode selection in video encoders
US8781002B2 (en) 2003-01-08 2014-07-15 Apple Inc. Method and apparatus for improved coding mode selection
KR100988402B1 (ko) * 2004-06-27 2010-10-18 애플 인크. 멀티-패스 비디오 인코딩 방법
KR100951008B1 (ko) * 2007-12-17 2010-04-02 한국전자통신연구원 인터레이스 부호화에서의 실시간 비트율 제어 방법 및시스템

Also Published As

Publication number Publication date
WO1999066734A1 (en) 1999-12-23
BR9911289A (pt) 2001-10-23
AU4320199A (en) 2000-01-05
RU2216122C2 (ru) 2003-11-10
BRPI9911289B1 (pt) 2015-06-16
JP2002518951A (ja) 2002-06-25
CA2334785A1 (en) 1999-12-23
IL140208A0 (en) 2002-02-10
CN1315116A (zh) 2001-09-26
NO20006469D0 (no) 2000-12-18
US6289129B1 (en) 2001-09-11
NZ509326A (en) 2002-09-27
EP1088454A1 (en) 2001-04-04
AU756355B2 (en) 2003-01-09
NO20006469L (no) 2001-02-16

Similar Documents

Publication Publication Date Title
KR20010053002A (ko) 비디오 엔코더 및 버퍼제어를 갖춘 엔코딩방법
EP0994627B1 (en) Regulation of the computational and memory requirements of a compressed bitstream in a video decoder
US5949490A (en) Distributing video buffer rate control over a parallel compression architecture
US8711934B2 (en) Decoding and presentation time stamps for MPEG-4 advanced video coding
US6674803B1 (en) Methods and systems for encoding real time multimedia data
KR100574186B1 (ko) 부호화 스트림 스플라이싱 장치 및 방법과 부호화 스트림 생성 장치 및 방법과 편집 장치 및 방법 및 편집 시스템
US6031575A (en) Method and apparatus for encoding an image signal, method and apparatus for decoding an image signal, and recording medium
TW519834B (en) Method and apparatus for determining a transmission bit rate in a statistical multiplexer
JP4303775B2 (ja) 非同期コード化システムにおける適応性ビットレート制御のための方法および装置
EP1324613A2 (en) Image signal data structure, image coding method, and image decoding method
JP4708263B2 (ja) 画像復号化装置および画像復号化方法
JPH11513222A (ja) 多重ビデオ対象画の表示時間スタンピング方法と同期化方法
KR100841268B1 (ko) 비디오 데이터의 품질을 모니터링하기 위한 방법 및 디바이스, 및 비디오 데이터의 코딩용 시스템
JP2000078575A (ja) 圧縮されたビットストリ―ムを特徴づける手段
Tobagi et al. Performance evaluation of 10Base-T and 100Base-T Ethernets carrying multimedia traffic
US6688714B1 (en) Bit-rate modification
Valentim et al. Evaluating MPEG-4 video decoding complexity for an alternative video complexity verifier model
JP3836701B2 (ja) 動画像を符号化する方法及び装置及びプログラム並びに動画像音声多重化の方法及び装置
CN101984667B (zh) 码率控制方法及码率控制器
Kim et al. Design and implementation of an MPEG-2 transport stream multiplexer for HDTV satellite broadcasting
EP0871337A2 (en) Method and apparatus for modifying a digital data stream
LAUDERDALE et al. Using the minimum reservation rate for transmission of pre-encoded MPEG VBR video using CBR service
Chen Video Buffer Management and MPEG Video Buffer Verifier
WO2000057647A1 (en) Method and apparatus for generating time stamp information
JP2000125292A (ja) ビデオデコーダの圧縮されたビットストリームの計算及び記録に必要な条件を制御する方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
SUBM Surrender of laid-open application requested