KR100848457B1 - 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법 - Google Patents

비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법 Download PDF

Info

Publication number
KR100848457B1
KR100848457B1 KR1020020024708A KR20020024708A KR100848457B1 KR 100848457 B1 KR100848457 B1 KR 100848457B1 KR 1020020024708 A KR1020020024708 A KR 1020020024708A KR 20020024708 A KR20020024708 A KR 20020024708A KR 100848457 B1 KR100848457 B1 KR 100848457B1
Authority
KR
South Korea
Prior art keywords
bit generation
bit
block
limit value
buffer
Prior art date
Application number
KR1020020024708A
Other languages
English (en)
Other versions
KR20030087136A (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 주식회사 케이티
Priority to KR1020020024708A priority Critical patent/KR100848457B1/ko
Publication of KR20030087136A publication Critical patent/KR20030087136A/ko
Application granted granted Critical
Publication of KR100848457B1 publication Critical patent/KR100848457B1/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/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/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/176Methods 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 block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 엠펙-1(MPEG-1: Moving Picture Expert Group-1), 엠펙-2(MPEG-2) 등과 같은 비디오 인코더에서 매크로블럭의 비트 발생을 제한하고 채널 버퍼의 넘침을 방지하기 위한, 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하고자 함.
3. 발명의 해결방법의 요지
본 발명은, 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법에 있어서, 외부로부터 입력받은 비디오에 관한 부호화모드 정보에 따라 부호화 모드를 제어하고, 상기 부호화 모드의 제어에 따라 이산여현변환(DCT)/양자화된 데이터에 대해 비트 발생 제한값 정보에 따라 가변길이 부호화시켜 역양자화/역이산여현변환(IDCT)을 수행하되, 비트율선을 기준으로 하는 비트 발생 제한값을 설정하는 단계; 및 상기 설정한 비트 발생 제한값에 따라, 이산여현변환(DCT) 데이터의 가변길이 부호화 제한, 매크로블럭(MB) 헤더 정보 변경, 이산여현변환(DCT) 블럭의 첫 데이터값 변경, 누적블럭 비트발생 제한값 설정, 비균등 블럭비트 할당, 다음 부호화모드 제어를 통해, 상기 비트 발생 제한값 이하로 비트 발생을 제한하여 매크로블럭 비트 발생을 제한하고 소정 비트율에 대한 버퍼 넘침을 방지하는 단계를 포함함.
4. 발명의 중요한 용도
본 발명은 MPEG 비디오 인코더 등에 이용됨.
Figure R1020020024708
MPEG 비디오 인코더, 버퍼 넘침, 비트발생, 매크로 블럭

Description

비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법{Method of restricting bit generation and preventing buffer overflow in video encoder}
도 1 은 종래의 엠펙-2 비디오 인코더의 구성도.
도 2 는 본 발명에 이용되는 엠펙-2 비디오 인코더의 CBR 부호화 동작에서 VBV 버퍼 상태를 나타낸 예시도.
도 3 은 본 발명이 적용되는 엠펙-2 비디오 인코더의 구성 예시도.
도 4a 및 도 4b 는 본 발명에 따른 비디오 인코더의 비트발생 제한 처리 과정에 대한 일실시예 흐름도.
도 5 는 본 발명에 따른 엠펙-2 비디오 인코더의 CBR 부호화에서 VBV 조건을 만족시키기 위한 인코더 버퍼의 모델링 예시도.
도 6 은 본 발명에 따른 엠펙-2 비디오 인코더의 매크로블럭의 비트발생 제한 기준에 대한 예시도.
도 7a 및 도 7b는 본 발명에 따른 비트발생 제한값 이상 최대비트 발생값 타이밍 예시도.
* 도면의 주요 부분에 대한 부호의 설명
31 : 원영상 입력버퍼 32 : 입력처리부
33 : 모드제어부 34 : 움직임 예측 버퍼
35 : 움직임 예측/보상부 36 : 비트율/버퍼 제어부
37 : DCT/양자부 38 : 가변길이 부호화부
39 : 역양자/IDCT부 40 : 채널출력 버퍼
본 발명은 멀티미디어 및 광대역 통신 단말 분야에서 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 특히 엠펙-1(MPEG-1: Moving Picture Expert Group-1), 엠펙-2(MPEG-2) 등과 같은 비디오 인코더에서 매크로블럭의 비트발생을 제한하고 채널 버퍼 넘침을 방지하기 위한 비트발생 제한 및 버퍼넘침 방지 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
엠펙-2 비디오 인코더의 비트발생 제한 및 버퍼 넘침 방지에 대한 종래 기술은 움직임추정/보상 --> 부호화모드결정 --> 이산여현변환(DCT) --> 양자화 --> 역양자화 --> 역이산여현변환(IDCT)라는 전형적인 부호화 구조하에서 단지 양자화의 양자화파라미터값을 조정하는 것으로 되어 있다. 매크로블럭(MB : MacroBlock)의 부호화 비트 발생량은 영상의 복잡도, 움직임 추정 범위 및 방법, 부호화모드(intra 혹은 inter) 등에 의해 그 편차가 매우 크며 양자화 파라미터값 제어만으로 특정값 이하로 비트발생을 제한하기가 쉽지 않다. 이와 관련된 엠펙-2 비디오 인코더의 구성도에 대해 살펴보면 다음의 도 1과 같다.
도 1 은 종래의 엠펙-2 비디오 인코더의 구성도로서, 매크로블럭 단위로 부호화가 이루어지는 엠펙-2 비디오 인코더의 부호화 구조에 대해 설명한 것이다.
도 1에 도시된 바와 같이, 입력되는 비디오 데이터는 일단 원영상 입력버퍼(11)에 저장되었다가 매크로블럭이 형성될 수 있을 만큼 데이터가 입력되면 매크로블럭 단위로 입력처리부(4:2:2 포맷을 4:2:0 포맷으로 변환)(12), 움직임 예측/보상부(18), 모드제어부(intra/inter decision)(13), DCT/양자화부(15), 가변길이 부호화부(VLC : Variable Length Coding)(19)를 거쳐 부호화되고 이렇게 부호화된 데이터는 채널출력 버퍼(가변율(VBR : Variable Bit Rate)(20)로 발생되는 부호화 비트를 고정율(CBR : Constant Bit Rate)로 출력하기 위한 버퍼)(19)를 거쳐 최종 출력된다.
한편, 양자화된 데이터는 역양자화, IDCT 과정을 거쳐 복원된 데이터로 움직임 예측 버퍼에 저장된다. 비트율/버퍼 제어부(14)는 채널출력 버퍼의 버퍼넘침과 버퍼고갈이 발생하지 않도록 비트 발생을 제어하는 블럭으로서 입력 영상의 복잡도와 채널출력 버퍼의 상태로부터 양자화 파라미터값과 제로바이트 스터핑 정보를 구해 각각 양자화부(15)와 가변길이 부호화부(19)에 제공한다.
특히, 낮은 비트율로 부호화할시 양자화파라미터 값을 최대로 크게 해줘도 버퍼에서 빠져나가는 평균비트수보다 많이 발생될 수 있다. 이러한 상황에서 어느값 이하로 비트 발생을 제한하거나 100% 버퍼넘침을 억제시키기 위해서는 비트발생 제한값 도달 혹은 버퍼넘침 발생의 한참 이전 매크로블록(MB)에서부터 양자화 파라미터값을 높여 앞으로의 최악의 경우까지를 고려하여 비트 발생을 억제해줘야 한다. 이와 같은 기존의 기술은 일어날지도 모르나 거의 일어나지 않는 최악의 경우를 대비하여 양자화파라미터 값을 크게 해줌으로써, 전반적으로 많은 부호화 화질 열화가 발생하게 된다. 따라서, 비디오 인코더는 비트율 제어를 통해 보장되지 않는 비트발생 제한 문제나 버퍼넘침 방지 문제를 해결할 수 있도록 최소의 하드웨어로 최소의 화질 열화를 구현하도록 한다.
그럼에도 불구하고, 종래의 버퍼 제어 기술은 버퍼의 넘침이나 고갈 방지를 완전하게 보장하지 못하였으며, 하드웨어 및 성능이 최적화되어 있지 않았다. 따라서, 엠펙-2 비디오 인코더의 비트발생 제한 및 채널 버퍼의 넘침 방지를 최소의 하드웨어와 최소의 화질 열화로 구현할 수 있는 방안이 필수적으로 요구된다.
본 발명은, 상기한 바와 같은 요구에 부응하기 위하여 제안된 것으로, 엠펙-1(MPEG-1: Moving Picture Expert Group-1), 엠펙-2(MPEG-2) 등과 같은 비디오 인코더에서 매크로블럭의 비트 발생을 제한하고 채널 버퍼의 넘침을 방지하기 위한 비트발생 제한 및 버퍼넘침 방지 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 방법은, 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법에 있어서, 외부로부터 입력받은 비디오에 관한 부호화모드 정보에 따라 부호화 모드를 제어하고, 상기 부호화 모드의 제어에 따라 이산여현변환(DCT)/양자화된 데이터에 대해 비트 발생 제한값 정보에 따라 가변길이 부호화시켜 역양자화/역이산여현변환(IDCT)을 수행하되, 비트율선을 기준으로 하는 비트 발생 제한값을 설정하는 단계; 및 상기 설정한 비트 발생 제한값에 따라, 이산여현변환(DCT) 데이터의 가변길이 부호화 제한, 매크로블럭(MB) 헤더 정보 변경, 이산여현변환(DCT) 블럭의 첫 데이터값 변경, 누적블럭 비트발생 제한값 설정, 비균등 블럭비트 할당, 다음 부호화모드 제어를 통해, 상기 비트 발생 제한값 이하로 비트 발생을 제한하여 매크로블럭 비트 발생을 제한하고 소정 비트율에 대한 버퍼 넘침을 방지하는 단계를 포함한다.
한편, 본 발명은, 프로세서를 구비한 비디오 인코더에, 외부로부터 입력받은 비디오에 관한 부호화모드 정보에 따라 부호화 모드를 제어하고, 상기 부호화 모드의 제어에 따라 이산여현변환(DCT)/양자화된 데이터에 대해 비트 발생 제한값 정보에 따라 가변길이 부호화시켜 역양자화/역이산여현변환(IDCT)을 수행하되, 비트율선을 기준으로 하는 비트 발생 제한값을 설정하는 기능; 및 상기 설정한 비트 발생 제한값에 따라, 이산여현변환(DCT) 데이터의 가변길이 부호화 제한, 매크로블럭(MB) 헤더 정보 변경, 이산여현변환(DCT) 블럭의 첫 데이터값 변경, 누적블럭 비트발생 제한값 설정, 비균등 블럭비트 할당, 다음 부호화모드 제어를 통해, 상기 비트 발생 제한값 이하로 비트 발생을 제한하여 매크로블럭 비트 발생을 제한하고 소정 비트율에 대한 버퍼 넘침을 방지하는 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
본 발명은 엠펙-2 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법에 관한 것으로서, 먼저 이와 관련된 엠펙-2 비디오 표준을 기술한 다음, 본 발명의 비디오 부호화 구조, 비트 발생 제한 방법, 매크로블럭의 비트발생 제한값 설정 및 버퍼넘침 방지 방법을 기술하기로 한다.
첫째, 비트발생 제한 및 버퍼넘침 금지에 관한 엠펙-2 비디오 표준에 대해 살펴보면 다음과 같다.
엠펙-2 비디오 표준은 매크로블럭의 비트발생을 최대 4,608비트(chroma_format이 4:2:0인 경우)로 제한하고 있다. 4,608비트는 8비트 16x16 휘도 데이터와 8비트 16x8 색도데이터의 부호화전 데이터의 1.5배에 해당하는 비트량으로서 데이터의 압축은 커녕 50% 늘어난 것으로서 부호화의 의미가 전혀없는 값이다. 그러나, 엠펙-2의 부호화로는 매크로블럭의 비트 발생이 9,300비트까지도 될 수가 있다. 그래서, 표준에서는 4,608비트 선에서 비트발생을 제한시켜 인 코더는 물론 수신측의 디코더에서 DRAM(Dynamic Random Access Memory) 인터페이스쪽의 부호화 데이터 임시버퍼의 크기나 DRAM에 저장하기 위한 타이밍 할당에 있어 부담을 줄여주고 있다.
또한, 엠펙-2 비디오 표준은 인코딩에 대한 타이밍 규정을 두고 있는데 도 2와 같이 동작하는 VBV(Video Buffering Verifier)라는 가상 디코더를 설정하여 이 디코더의 입력버퍼가 버퍼넘침과 버퍼고갈이 발생하지 않도록 인코딩하는 것을 규정하고 있다.
도 2 는 본 발명에 이용되는 엠펙-2 비디오 인코더의 CBR 부호화 동작에서 VBV 버퍼 상태를 나타낸 예시도이다.
도면에서, 수직축은 버퍼상태, 수평축은 시간, 그리고 수직축상의 B는 디코더버퍼의 크기를 각각 나타낸다.
수평축의 0, 1, 2, …는 픽쳐 헤더의 vbv_delay(디코더버퍼에 픽쳐데이터의 최초비트가 입력된 후, 디코딩되기까지 기다리는 시간) 정보로부터 정해지는 픽쳐의 디코딩 시점으로 NTSC(National Television System Committee)의 경우 1/29.97초 간격(프레임픽쳐의 경우)을 갖는다. 디코더 버퍼는 부호화비트율의 속도로 일정하게 비트가 입력되어 버퍼 상태가 증가되다가 디코딩 시점에서 픽쳐의 모든 데이터가 순간적으로 읽혀져 디코딩되어 버퍼상태가 감소된다. 디코더의 버퍼크기, 입력 비트율, 디코딩시점은 모두 인코딩의 비트스트림 속의 정보로 전달된다. 인코더는 이렇게 동작하는 이 가상의 디코더에서 버퍼넘침이나 고갈이 발생되지 않도록 인코딩을 해서 비트를 생성해야 한다.
둘째, 본 발명에 따른 비트발생 제한 및 버퍼넘침 방지를 위한 비디오 인코더 부호화 구조에 대해 살펴보면 다음과 같다.
도 3 은 본 발명이 적용되는 엠펙-2 비디오 인코더의 구성 예시도이다.
도면에서 "31"은 원영상 입력버퍼, "32"는 입력처리부, "33"은 모드제어부, "34"는 움직임 예측버퍼, "35"는 움직임 예측/보상부, "36"은 비트율 버퍼 제어부, "37"은 DCT/양자부, "38"은 가변길이 부호화부, "39"는 역양자/IDCT부 및 "40"은 채널출력 버퍼를 각각 나타낸다.
상기의 도 1의 구조와 유사한 가운데 차이점은 DCT/양자화된 데이터가 상기 도 1과 같은 구조에서는 역양자화/IDCT로 바로 전달되는 반면 본원 발명에서는 가변길이 부호화부(38)를 거친 후에 역양자화/IDCT부(39)로 전달되는 것이다. 그리고, 본 구성도는 비트율/버퍼 제어부(36)가 비트발생 제한값 정보와 부호화모드 정보를 각각 가변길이 부호화부(38)와 모드제어부(33)로 전달한다.
셋째, 비트발생 제한 과정에 대해 살펴보면 다음과 같다.
표준에서 매크로블럭의 4,608비트 비트발생 제한 규정 및 버퍼넘침 금지 규정에 의해 매크로블럭의 부호화비트 발생이 제한되어야 한다.
본 발명에서는 매크로블럭의 비트발생 제한값 결정은 비트율/버퍼 제어부(36)에서 수행하고 이 제한값에 따른 실제 비트 발생 제한 처리는 가변길이 부호화부(38)에서 수행한다.
도 4a 및 도 4b 는 본 발명에 따른 비디오 인코더의 비트발생 제한 처리 과정에 대한 일실시예 흐름도이다. 도 4 의 과정에 의해 MB의 비트발생을 앞단에서 주어진 MB비트발생제한값(401) 이하로 제한처리 되며 제한 처리는 인트라(Intra)모드(도 4a)와 인터(Inter)모드(도 4b)로 구분되어 이루어진다.
먼저, 인트라(Intra) 모드(403 이하)의 경우 매크로블럭 내 6개 블럭은 표준에 의해 스킵(skip)없이 모두 부호화가 되어야 하며, 따라서 모든 블럭은 적어도 DCT 데이터의 첫 데이터인 DC(Direct Current) 데이터는 부호화되어야 한다. 6개 블럭이 모두 DC 데이터만, 그것도 비트발생이 최소인 값으로 부호화될 때가 블럭계층에서 발생되는 비트가 최소가 되며, 그 값은 28비트(5(0값의 DC + EOB(end of block))*4(휘도블럭 수)+4(0값의 DC + EOB)*2(색도블럭수))이다.
이어서, MB 헤더를 정상적으로 부호화(403)한 후, MB 비트발생 제한값에서 남아있는 비트가 28비트보다 작으면(404) MB 헤더 정보는 비트 발생이 가장 적은 값으로 강제 변경(406)하여 부호화한다. 즉, MB 헤더를 양자화 파라미터값을 부호화하지 않는 모드로 변경해서 부호화한다. 이 경우 블럭계층의 부호화는 DC 데이터에 대해서만 이루어지며 DC 데이터의 부호화는 양자화파라미터와는 무관하게 이루어지기 때문에 부호화에 아무런 문제가 없다. 블럭 계층의 부호화(407이하)는 MB 비트발생 제한값에서 MB 헤더 부호화 비트수를 뺀 값을 기준으로 각 블럭에 대한 누적 비트발생 제한값(각 블럭에 대한 이 값은 매크로블럭의 첫째블럭으로부터 그 블럭까지의 비트발생에 대한 제한값)을 설정한다(407). 그런 다음 각 블럭이 부호화가 수행되는데 입력된 데이터에 따라 DC 데이터 및 (Run, Level) 데이터를 부호화하면서 [블럭제한값-2(EOB 부호의 비트수)]와 비교해서(416) 발생된 비트수가 크면 그 데이터의 부호화는 취소시키고(417) EOB 부호(2비트)를 붙여(413) 블럭의 부 호화를 끝내고 다음 블럭의 부호화를 수행한다. 그런데, DC 데이터의 부호화부터 발생된 비트수가 블럭 제한값을 넘어서면 DC 값을 입력 값으로 부호화하지 않고 비트가 가장 적게 발생하는 값(0)으로 해서 부호화(412)한 후 바로 EOB 부호를 붙여 블럭의 부호화를 종료한다.
다음, 인터(Inter) 모드(418 이하)의 경우 블럭계층의 부호화는 CBP(Coded Block Pattern)에 의해 부호화 블럭수가 결정되고 부호화 블록으로 설정된 블럭은 적어도 하나의 (Run, Level) 데이터가 부호화되어야 한다.
블럭의 부호화 비트발생의 최소값은 4비트(419내 4로 반영)이다. MB 헤더를 입력 정보에 따라 부호화(418)해서 발생된 MB 헤더의 비트수가 [MB 제한값-CBP*4](419)보다 크면 이 MB 헤더로 부호화했다간 분명히 MB 제한값을 넘게 되며, 본 발명에서는 MB 헤더를 블럭계층의 부호화가 없는(Not Coded Mode) 값으로 강제 변경하여 부호화한다(421). MB 헤더를 부호화한 후 [MB 제한값-MB 헤더비트수]값을 기준으로 블럭의 누적 비트발생 제한값을 설정한다(422). 인트라(Intra)모드에서는 부호화블럭이 항상 6개이지만 인터(Inter)모드에서는 CBP에 따라 0~6개가 된다.
DCT의 (Run, Level) 데이터를 부호화할 때 마다 [블럭제한값-2]과 비교(432)해서 누적발생비트가 크면 그 (Run, Level) 데이터의 부호화는 취소하고(433) EOB 부호를 붙여(429) 그 블럭의 부호화를 끝낸다. 만약, 첫째 (Run, Level) 데이터의 부호화에서 [블럭제한값-2]보다 누적발생비트가 더 크면(426) 그것의 부호화는 취소하고(427) 비트가 가장 적게 발생하는 (0, +1) 혹은 (0, -1)로 변경해서 부호화하고(428) EOB 부호로 블럭 부호화를 끝낸다. (0, +1)과 (0, -1) 중의 선택은 입력 된 첫째 (Run, Level) 데이터에서 레벨(Level)값이 +이면 (0, +1)을, -이면 (0, -1)을 선택한다.
다음은 본 발명에서 사용한 블럭의 누적 비트발생 제한값 설정(407과 422)에 대해 설명하기로 한다.
먼저, 인트라(Intra) 모드의 경우, 블럭계층의 비트발생 제한값 블럭비트(blkbits)와 각 블럭의 누적 비트발생 제한값 blk_th(.)는 도 4의 아래부분에 나타나 있듯이 하기와 같다. 여기서, blk_th(2)의 의미는 블럭 2의 누적 비트발생 제한값으로서 블럭0, 블럭1, 블럭2, …, 블럭5 순으로 이루어지는 블럭 부호화에서 불럭0, 블럭1에서 부호화되어 발생된 비트를 포함해 블럭2에서 발생될 수 있는 누적 비트발생 제한값이다.
blkbits = max(mbbits-mbhdrbits, 28)
blk_th(0) = min(int(blkbits*3/16), blkbits-23);
blk_th(1) = min(int(blkbits*6/16), blkbits-18);
blk_th(2) = min(int(blkbits*9/16), blkbits-13);
blk_th(3) = min(int(blkbits*12/16), blkbits-8);
blk_th(4) = min(int(blkbits*14/16), blkbits-4);
blk_th(5) = blkbits;
다음, 인터(inter) 모드의 경우, MB 헤더에 부호화된 CBP에 따른 부호화 블 럭(coded block)수에 따라 블럭계층에서 발생될 수 있는 최대비트수 blkbits는 다음의 [수학식 1]과 같다. 하기의 수식에서 4는 한 블럭의 최소 비트발생수이다.
blkbits = max(mbbits-mbhdrbits, coded_block_수*4);
블럭의 누적비트발생제한값 설정은 부호화 블럭수가 6인 경우는 인트라(intra) 모드와 동일하며 부호화 블럭수가 5인 경우는 하기와 같다.
하기의 blkbits-16, blkbits-12, blkbits-8, blkbits-4에서 16, 12, 8, 4는 각각 이후 블럭의 부호화를 위해 남겨두는 최소의 비트수로서 16의 경우 블럭1, 2, 3, 4를 위해 남겨두는 값이고 12는 블럭2, 3, 4를 위해, 8은 블럭 3, 4를 위해, 4는 블럭 4를 위해 남겨둔 수이다.
blk_th(0) = min(int(blkbits*4/16), blkbits-16);
blk_th(1) = min(int(blkbits*8/16), blkbits-12);
blk_th(2) = min(int(blkbits*11/16), blkbits-8);
blk_th(3) = min(int(blkbits*14/16), blkbits-4);
blk_th(4) = blkbits;
그리고, 부호화 블럭수가 4인 경우는 블럭당 비율이 5:4:4:3, 부호화 블럭수 가 3인 경우 7:6:5의 비율, 부호화 블럭수가 2인 경우 9:7, 부호화 블럭수가 1인 경우는 1로 설정된다. 블럭당 비트할당을 균일하게 하지 않고 MB내에서 앞에 부호화되는 블럭에 높은 비율로 할당한 것은 뒷부분의 블럭에서 부호화비트가 적게 발생될 경우 굳이 앞부분의 블럭에서 제한을 가하지 않아도 블럭계층의 전체 비트발생이 제한값 안으로 들어갈 수 있기 때문에 가능한 앞부분에서 제한을 가하지 않기 위해서다.
비트발생을 제한하는 이 방법은 인트라(intra) 모드의 경우 31비트(I-picture의 경우) 혹은 35비트(P,B-picture의 경우)로 제한할 수 있으며, 인터(inter) 모드의 경우 138이하로 제한할 수 있다. 인터(inter) 모드의 경우 대부분 100비트 이하로 제한되어지지만, 최악의 경우(motion_vectors의 부호화비트수가 132)에는 138비트까지 발생될 수 있다. 물론, 인터(inter) 모드에서는 "skipped MB 모드"로 부호화모드를 강제 설정하여 매크로블럭의 비트발생량을 0비트로 할 수 있지만 이것은 움직임벡터값을 0(P-픽쳐의 경우) 혹은 직전 MB의 벡터값(B-Picture의 경우)으로 변경시켜줘야 하며, 이에 따라 움직임추정/보상부에 많은 복잡도를 안겨준다. 따라서, 본 발명에서는 움직임벡터는 건드리지 않고 단지 부호화 블럭수를 0으로 하는 것으로 해서 비트발생을 억제시킨다.
넷째, 매크로블럭의 비트발생 제한값 설정 및 버퍼넘침 방지 과정에 대해 살펴보면 다음과 같다.
상기 도 2의 VBV 디코더에서의 버퍼고갈이나 넘침이 발생되지 않도록 하기 위해서는 도 5와 같이 동작하는 인코더버퍼에서 버퍼넘침이나 고갈이 일어나지 않 도록 해주면 된다. 도 5의 인코더는 일정한 간격(NTSC의 경우 1/29.97초)으로 픽쳐 인코딩이 이루어지며 픽쳐의 모든 매크로블럭은 한 순간에 모두 부호화되어 버퍼에 쌓이고 버퍼에서의 비트 출력은 일정한 율(비트율)로 비트가 빠져나간다.
이 인코더모델에서 버퍼의 고갈이 발생하지 않도록 하기 위해서는 픽쳐의 인코딩 후(B1, B5)의 버퍼상태가 픽쳐 기간 동안 빠져나가는 비트량보다 많아야 하고, 버퍼의 넘침이 발생되지 않도록 하기 위해서는 픽쳐의 비트발생(d1, d5)으로 버퍼의 상태(B1, B5)가 버퍼크기인 B를 초과하지 않아야 한다. 즉, 픽쳐의 비트발생은 (B - 초기상태(B1 ', B5 ')) 이하가 되어야 한다.
실제 인코더의 구현에서는 픽쳐의 부호화는 픽쳐내 매크로블럭이 일정한 간격으로 고르게 인코딩되어 부호화비트가 버퍼에 입력되고, 버퍼에서 비트 출력은 도 5의 모델과 비슷하게 일정하게 빠져나간다. 이런 실제 동작 상태에서 인코더의 버퍼고갈 문제는 버퍼가 빌 것 같으면 0값의 바이트데이터를 스터핑(stuffing)하는 것으로 해결이 가능해서 큰 문제가 되지 않는다. 그러나, 버퍼의 넘침 방지는 매크로블럭의 부호화시 그때그때 버퍼의 상태가 버퍼크기를 넘지 않게 하는 것으로 되지 않는다. 이렇게 하면 실제 인코더 버퍼에서는 버퍼넘침이 발생하지 않았지만 픽쳐의 부호화 비트 발생이 "버퍼크기-픽쳐의 초기버퍼상태" 이하가 되어야 하는 표준 규정을 어겨서 표준에서 허용한 최대비트수보다 평균 픽쳐 비트 수 만큼 더 발생될 수도 있다. 그리고, 또 하나 문제는 픽쳐가 매크로블럭 단위로 부호화가 될 때 앞부분에서 허용된 비트를 거의 다 발생시켜 버리면 뒷부분에서는 전혀 발생이 되지 않도록 해주어야 하며, 이것은 픽쳐의 앞과 뒷부분의 화질 균일에서 심각한 열화를 야기한다. 따라서, 픽쳐의 앞부분의 매크로블럭을 인코딩할 때는 뒷부분에 대한 비트 발생을 염두에 두고 비트발생을 제한시켜주어야 한다. 이와 같은 이유로 본 발명에서는 도 6과 같이 매크로블럭의 비트발생제한선을 그려 비트발생제한값을 설정했다.
도 5는 다시 도 6과 같이 픽쳐 부호화는 픽쳐기간내에서 매크로블럭이 일정한 속도로 부호화되고 그 동안 버퍼에서 비트가 빠져나가지 않고 쌓이다가 다음 픽쳐 부호화 시점에서 순간적으로 픽쳐평균비트량 만큼 빠져나가는 동작으로 모델링될 수 있다. 이것이 보다 실제 상황에 가까우며 버퍼제어는 이렇게 모델링했을 때 버퍼넘침이나 고갈이 발생하지 않도록 해주면 된다.
본 발명에서 버퍼제어(버퍼넘침 및 고갈 방지)는 비트율/버퍼제어부(36)에서 비트율제어(양자화파라미터 결정)와 동시에 복합적으로 수행된다. 도 6은 본 발명의 버퍼넘침방지를 위한 비트발생 제한값 설정 기준을 보여준다.
비트율/버퍼제어부(36)는 비트율 제어 동작에서 픽쳐의 목표비트발생을 설정해서 이 목표비트에 근접하도록 양자화파라미터값을 조정하여 비트율을 제어한다. 도 6에서 아래 점선으로 그려진 것이 비트율제어에 의해 정해진 희망 비트발생 그래프이다. 하지만 앞에서도 잠깐 언급했지만 양자화파라미터에 의한 비트발생 제어는 한계가 있어 이 값보다 적게 발생될 수도 있고 많이 발생될 수 있다. 버퍼제어는 이때에도 버퍼넘침이 발생되지 않도록 해주는 기능이다.
본 발명에서는 버퍼넘침 방지가 비트율/버퍼제어부(36)에서 비트발생제한값 설정과 가변길이부호화부(38)에서 그 값으로 비트발생을 제한하는 방법으로 이루어지는데 도 6에서 윗부분의 진한 실선으로 그려진 선이 제한값 설정에 사용되는 버퍼넘침선이다. 이 선은 픽쳐부호화 종료 시점(다음 픽쳐 시작 시점)에서 버퍼가 가득찬 상태값에서 왼쪽으로 비트율의 기울기로 내려 그은 선이다. 도 6에서 맨 아래 실선 직선이 바로 그것이다. 도 6에서 이 비트율선이 오른쪽에서 버퍼 크기값에서 시작하지 않고 약간 아래[max((138 - 평균MB비트수) * 3, 0)]에서 시작된 것은 실제 비트 발생이 항상 비트발생제한값 이하가 되지 않고 그 이상이 될 수 있기 때문인데 자세한 것은 하기에 설명된 바와 같다.
도 6에서 실제 비트발생제한선이 비트율선이 아닌 것은 픽쳐헤더(시퀀스헤더와 GOP헤더 포함)와 픽쳐 부호화 중간 중간에 나타나는 슬라이스헤더의 비트 발생을 반영하여 순수 매크로블럭에 대해 그렸기 때문이다. 도 6에서 곡선이 실제 발생된 비트수며, 현재 매크로블럭의 비트발생제한값은 도 6에 나타나 있는 것과 같이 [비트발생제한선상의 다음 매크로블럭 시점에서의 값 - 현재MB의버퍼상태값]으로 정해진다. 다음, 픽쳐의 비트발생제한선은 도 6에서 보듯이 다음 픽쳐 시작 시점에서 픽쳐의 평균비트만큼 뺀 다음 이전 픽쳐에서와 동일한 그림으로 그려진다. 그런데 픽쳐에 따라 픽쳐 및 슬라이스 헤더 비트발생이 달라질 수 있기 때문에 그것에 따라 비트발생제한선이 약간이 달라질 수 있으나 픽쳐 시점에 최대값은 동일하다. 도 6에는 실제 비트발생도 픽쳐시점에서 픽쳐의 평균비트만큼 빠져나간 것을 볼 수 있다.
다음은 비트발생제한선이 버퍼크기선에 닿지 않고 [max((138 - 평균MB비트수) * 3, 0)]만큼 여유를 둔 이유를 설명하기로 한다.
가변길이 부호화부(38)에서의 비트발생 제한은 인트라(intra)모드의 경우 I-픽쳐(picture)의 경우 31비트, P나 B 픽쳐의 경우 35비트까지로 비트발생을 제한할 수 있으나 인터(inter)모드의 경우 제한을 해도 최악의 경우 138비트(B-Picture, Interp MC, Not Coded, f_code=8)까지 발생할 수 있다. 이것은 본 방법이 최악의 경우 5.7Mbps((138 * 1350 + 픽쳐및슬라이스헤더비트) * 29.97) 이하의 비트율 부호화에 대해 100% 버퍼넘침을 방지할 수 없다는 것을 나타낸다. 왜냐하면, 모드결정은 앞단의 모드제어부에서 버퍼상태와 상관없이 결정하기 때문이다.
따라서, 본 발명에서는 버퍼넘침이 발생될려고 하면 강제로 부호화모드를 인트라(intra)모드로 하는 방식으로 버퍼넘침을 방지해 준다. 이렇게 하면 1.5Mbps((35x1350 + 픽쳐및슬라이스헤더비트) * 29.97) 이상의 비트율 부호화에서는 100% 버퍼넘침을 방지할 수 있게 된다. 본 발명에서는 도 6에서 매크로블럭 가변길이 부호화 시작 시점에서 버퍼 빈 상태가 0비트 보다 작으면 모드제어부의 다음 모드를 인트라(intra)모드로 강제 설정하도록 한다. 즉, 도 6의 비트율선을 기준으로 결정하는 비트발생제한값 설정 방법과 비트율선을 버퍼크기값에서 [(비트발생제한에도 불구하고 발생될수 있는 최대값 평균 MB 비트수) *(VLC하기 전에 결정되어 있는 부호화모드수+1)] 만큼 내려주고 이것을 기준으로 버퍼빈상태가 0비트 미만일때 모드제어부의 다음 MB의 모드를 강제로 인트라(intra)로 되도록 설정한다. 그런데, VLC의 시작 시점에서 버퍼의 상태에 따라 모드제어부의 다음 모드를 인트라(intra)로 강제 설정하도록 하지만 이미 설정되어 DCT(Discrete Cosine Transform) 처리 과정을 밟았거나 밟고 있는 것은 변경할 수가 없다. 이를 변경할려면 강제 설정된 모드로 DCT와 양자화를 재수행하든지 처음부터 DCT를 인트라(intra)모드와 인터(inter)모드로 모두 수행해서 VLC로 전달하고 VLC부에서 버퍼 상태에 따라 선택할 수 있게 해야 한다.
그러나, 이 두가지 방법은 모두 엄청난 하드웨어 복잡도를 가져오게 되므로, 본 발명에서는 위 두가지 방법을 취하지 않고 기존의 복잡도를 증대함이 없이 이미 설정된 모드를 그대로 수용하는 방법을 취하기로 한다.
도 7a는 MEMC(Motion Estimation & Motion Compensation), 모드 결정(intra/inter decision), DCT, 양자화, VLC의 과정을 거치는 매크로블록(MB)의 부호화에 대한 일반적인 구현 예이다. 이 예의 매크로블럭의 부호화는 7 매크로블럭 기간 동안에 파이프라인적으로 동작한다. 이 경우 첫째 MB의 VLC 시점에서 이미 첫째와 둘째 MB에 대해 모드가 결정되어 있다. 예를 들어 모드제어부의 첫째 MB의 모드가 인터(inter), 둘째 MB의 모드도 인터(inter)라고 했을때, 첫째 MB의 VLC 시점에서 버퍼의 빈상태가 0(0이상이므로 intra모드 강제 설정하지 않음)이면 모드제어부의 다음 MB(셋째 MB)의 모드는 모드제어부의 결정에 의해 인트라(intra) 혹은 인터(inter)가 될 수 있다.
도 7b에서는 최악의 경우를 만들기 위해 모드제어부의 모드를 인터(inter)로 했다. 다음 MB의 버퍼빈상태는 최악의 경우 [35-138]이 되며, 이것은 0보다 작으므로 모드제어부의 다음 MB의 모드는 인트라(intra)로 강제 설정된다. 다음 MB의 부 호화 시점에서 모드는 인터(inter)이고 버퍼빈상태는 최악의 경우 [(35-138)*2]가 되며, 그 다음 MB에서의 버퍼빈상태는 [(35-138)*3]이며, 인트라(intra)모드이므로 35로 비트발생을 제한하게 되어 더 이상 버퍼빈상태가 줄어들지 않고 [(35-138)*3]로 유지된다.
이에 따라, 본 방법은 비트발생제한선 이상 최대 [(35-138)*3]까지 발생될 수 있으므로, 본 발명에서는 이 만큼을 여유를 두어 제한선을 설정함으로써 버퍼넘침이 발생되지 않도록 한다. 그러나, 픽쳐의 이후 매크로블럭은 모두 인트라(intra)모드로 설정되고 버퍼빈상태가 증가되지 않아 모드 설정이 정상적으로 회복되지 않는다. 본 시나리오는 비트율이 1.47Mbps로 했을때의 경우이고 1.5Mbps로 하면 서서히 버퍼빈상태가 증가되어 0 이상이 되어 정상 회복이 이루어진다. 부호화 비트율이 높을수록 회복이 빨라지는 것은 당연하다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기한 바와 같은 본 발명은, 4,608비트 매크로블럭 비트발생 제한을 100% 보장하고 4Mbps 이상을 목표로 한 MPEG-2 부호화를 거의 MPEG-1급의 비트율인 1.5Mbps까지에 대해서도 버퍼넘침 방지를 100% 보장해 줌으로써, MPEG-2 표준을 완벽하게 구현할 수 있는 효과가 있다.
또한, 본 발명은, 비트발생 제한과 버퍼넘침 방지를 기존 부호화구조를 거의 그대로 사용하고 버퍼의 최대한 활용과 픽쳐내 매크로블럭의 공평한 비트할당으로 최소의 하드웨어 복잡도 증대와 최소의 화질 열화로 구현할 수 있는 효과가 있다.

Claims (6)

  1. 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법에 있어서,
    외부로부터 입력받은 비디오에 관한 부호화모드 정보에 따라 부호화 모드를 제어하고, 상기 부호화 모드의 제어에 따라 이산여현변환(DCT)/양자화된 데이터에 대해 비트 발생 제한값 정보에 따라 가변길이 부호화시켜 역양자화/역이산여현변환(IDCT)을 수행하되,
    비트율선을 기준으로 하는 비트 발생 제한값을 설정하는 단계; 및
    상기 설정한 비트 발생 제한값에 따라, 이산여현변환(DCT) 데이터의 가변길이 부호화 제한, 매크로블럭(MB) 헤더 정보 변경, 이산여현변환(DCT) 블럭의 첫 데이터값 변경, 누적블럭 비트발생 제한값 설정, 비균등 블럭비트 할당, 다음 부호화모드 제어를 통해, 상기 비트 발생 제한값 이하로 비트 발생을 제한하여 매크로블럭 비트 발생을 제한하고 소정 비트율에 대한 버퍼 넘침을 방지하는 단계
    를 포함하는 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법.
  2. 제 1 항에 있어서,
    상기 비트 발생 제한값 이하로 비트 발생을 제한하여 매크로블럭 비트 발생을 제한하는 과정은,
    MB 헤더를 가변길이 부호화하고, MB에 관한 비트 발생 제한값에서 이 헤더비트수를 뺀 남아있는 비트가 블럭계층의 최소 비트발생수 보다 작으면 MB 헤더 정보값을 비트 발생이 최소가 되는 정보로 변경하여 MB 헤더를 재 가변길이부호화하고, 블럭계층의 누적블럭 비트발생 제한값을 설정하고 인트라(intra) 모드에서의 DC(Direct Current) 데이터 및 인터(inter) 모드에서의 첫 (Run, Level) 데이터 부호화가 블럭제한값보다 비트발생이 크면 DC 데이터는 0값으로, 첫 (Run, Level) 데이터는 (0, +/-1)로 변경하는 것을 특징으로 하는 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 설정한 비트 발생 제한값에 따라 누적블럭 비트발생 제한값을 설정하는 과정은,
    블럭계층의 누적블럭 비트발생 제한값 설정을 블럭마다 일정하게 할당하지 않고 매크로블럭 앞부분의 부호화되는 블럭에 상대적으로 많은 비트발생을 허용하는 것을 특징으로 하는 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법.
  4. 제 3 항에 있어서,
    상기 설정한 비트 발생 제한값에 따라 누적블럭 비트발생 제한값을 설정하는 과정은,
    부호화 블럭수가 6인 경우는 인트라(intra) 모드와 동일하며, 부호화 블럭수가 5인 경우는 하기의 수학식과 같으며, 부호화 블럭수가 4인 경우는 블럭당 비율이 5:4:4:3이며, 부호화 블럭수가 3인 경우는 블럭당 비율이 7:6:5이며, 부호화 블럭수가 2인 경우는 블럭당 비율이 9:7이며, 부호화 블럭수가 1인 경우는 블럭당 비율이 1로 각각 설정되는 것을 특징으로 하는 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법.
    [수학식]
    blk_th(0) = min(int(blkbits*4/16), blkbits-16);
    blk_th(1) = min(int(blkbits*8/16), blkbits-12);
    blk_th(2) = min(int(blkbits*11/16), blkbits-8);
    blk_th(3) = min(int(blkbits*14/16), blkbits-4);
    blk_th(4) = blkbits;
    여기서, blkbits-16, blkbits-12, blkbits-8, blkbits-4에서 16, 12, 8, 4는 각각 이후 블럭의 부호화를 위해 남겨두는 최소의 비트수를 나타냄.
  5. 제 1 항에 있어서,
    상기 소정 비트율에 대한 버퍼 넘침을 방지하는 과정은,
    상기 비트율선을 버퍼크기값에서 [(비트발생제한에도 불구하고 발생될 수 있는 최대값 평균 MB 비트수) * (가변길이 부호화 하기 전에 결정되어 있는 부호화 모드 수+1)] 만큼 내려주고, 이것을 기준으로 버퍼빈상태가 0비트 미만일때 다음 MB의 모드를 인트라(intra) 모드로 설정하는 것을 특징으로 하는 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법.
  6. 프로세서를 구비한 비디오 인코더에,
    외부로부터 입력받은 비디오에 관한 부호화모드 정보에 따라 부호화 모드를 제어하고, 상기 부호화 모드의 제어에 따라 이산여현변환(DCT)/양자화된 데이터에 대해 비트 발생 제한값 정보에 따라 가변길이 부호화시켜 역양자화/역이산여현변환(IDCT)을 수행하되,
    비트율선을 기준으로 하는 비트 발생 제한값을 설정하는 기능; 및
    상기 설정한 비트 발생 제한값에 따라, 이산여현변환(DCT) 데이터의 가변길이 부호화 제한, 매크로블럭(MB) 헤더 정보 변경, 이산여현변환(DCT) 블럭의 첫 데이터값 변경, 누적블럭 비트발생 제한값 설정, 비균등 블럭비트 할당, 다음 부호화모드 제어를 통해, 상기 비트 발생 제한값 이하로 비트 발생을 제한하여 매크로블럭 비트 발생을 제한하고 소정 비트율에 대한 버퍼 넘침을 방지하는 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020020024708A 2002-05-06 2002-05-06 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법 KR100848457B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020024708A KR100848457B1 (ko) 2002-05-06 2002-05-06 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020024708A KR100848457B1 (ko) 2002-05-06 2002-05-06 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법

Publications (2)

Publication Number Publication Date
KR20030087136A KR20030087136A (ko) 2003-11-13
KR100848457B1 true KR100848457B1 (ko) 2008-07-28

Family

ID=32381627

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020024708A KR100848457B1 (ko) 2002-05-06 2002-05-06 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법

Country Status (1)

Country Link
KR (1) KR100848457B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990067016A (ko) * 1995-10-26 1999-08-16 윌리암 제이. 버크 블록-기반 코딩 시스템에서 코딩 모드를선택하기 위한 방법 및 장치
KR19990077445A (ko) * 1998-03-19 1999-10-25 포만 제프리 엘 실시간단일패스가변비트레이트제어방법및그인코더
KR20010059598A (ko) * 1999-12-30 2001-07-06 이계철 동영상 비디오 인코더의 버퍼 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990067016A (ko) * 1995-10-26 1999-08-16 윌리암 제이. 버크 블록-기반 코딩 시스템에서 코딩 모드를선택하기 위한 방법 및 장치
KR19990077445A (ko) * 1998-03-19 1999-10-25 포만 제프리 엘 실시간단일패스가변비트레이트제어방법및그인코더
KR20010059598A (ko) * 1999-12-30 2001-07-06 이계철 동영상 비디오 인코더의 버퍼 제어 방법

Also Published As

Publication number Publication date
KR20030087136A (ko) 2003-11-13

Similar Documents

Publication Publication Date Title
JP3224465B2 (ja) 画像符号化装置
Lee et al. Scalable rate control for MPEG-4 video
JP4373609B2 (ja) 映像データストリームの適応的符号化方法と装置
US6823008B2 (en) Video bitrate control method and device for digital video recording
EP1068736B1 (en) Method and apparatus for performing adaptive encoding rate control of a video information stream including 3:2 pull-down video information
WO2000018137A1 (en) Frame-level rate control for video compression
JP3259702B2 (ja) 動画像可変ビットレート符号化装置および方法
JP3907875B2 (ja) 符号化レート制御装置及び情報符号化装置
EP1077000B1 (en) Conditional masking for video encoder
Kannangara et al. Computational complexity management of a real-time H. 264/AVC encoder
US6226326B1 (en) Coding device and coding method
US7274739B2 (en) Methods and apparatus for improving video quality in statistical multiplexing
US8792562B2 (en) Moving image encoding apparatus and method for controlling the same
KR100848457B1 (ko) 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법
EP1089569A1 (en) Image encoding device and its method
JP4718736B2 (ja) 動画像符号化装置
KR100528791B1 (ko) 동영상 비디오 인코더의 버퍼 제어 방법
US20050207501A1 (en) Method of and system for video bit allocation for scene cuts and scene changes
KR100228542B1 (ko) 비디오 인코더의 비트발생율 제어용 장면전환 적응 비트 할당 방법
US20070025440A1 (en) Video encoding method and device
JP2002218464A (ja) 動画像符号化データのトランスコーディングを実行するための方法、装置、プログラムおよび記録媒体
JP4619463B2 (ja) 画像符号化装置および方法
Baylon Video compression with complete information for pre-recorded sources
Pao et al. Rate control for non-real-time video encoding
Venkatesh et al. A pruning based fast rate control algorithm for MPEG coding

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: 20130718

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140711

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150717

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160718

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170808

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190717

Year of fee payment: 12