KR101168007B1 - 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법 - Google Patents

실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법 Download PDF

Info

Publication number
KR101168007B1
KR101168007B1 KR1020100074716A KR20100074716A KR101168007B1 KR 101168007 B1 KR101168007 B1 KR 101168007B1 KR 1020100074716 A KR1020100074716 A KR 1020100074716A KR 20100074716 A KR20100074716 A KR 20100074716A KR 101168007 B1 KR101168007 B1 KR 101168007B1
Authority
KR
South Korea
Prior art keywords
amount
frame
unit
equation
bit
Prior art date
Application number
KR1020100074716A
Other languages
English (en)
Other versions
KR20120012634A (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 KR1020100074716A priority Critical patent/KR101168007B1/ko
Publication of KR20120012634A publication Critical patent/KR20120012634A/ko
Application granted granted Critical
Publication of KR101168007B1 publication Critical patent/KR101168007B1/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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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/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

Landscapes

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

Abstract

본 발명은 실시간 H.264/AVC를 위한 적응적인 유닛-레벨 비트율 제어방법에 관한 것으로서, 전술한 실시간 H.264/AVC를 위한 적응적인 유닛-레벨 비트율 제어방법은, 실시간 H.264/AVC를 위한 유닛-레벨 비트율 제어방법에 있어서, (a) 부호화 이후의 프레임에 대한 복잡도 갱신이 이루어진 정보들을 이용하여 현재 부호화 하고자 하는 프레임에 대한 복잡도 가중치, 가상버퍼 점유율 및 목표 버퍼레벨을 산출하고, 산출된 복잡도 가중치, 가상버퍼 점유율 및 목표 버퍼레벨을 이용하여 목표 비트량을 예측하는 단계; (b) 상기 (a) 단계에서 예측된 목표 비트량과 적어도 하나 이상의 영상에 대한 각 양자화 계수(Quntization Parameter, QP)에 따른 P 프레임들의 평균 비트량을 포함하는 통계정보를 이용하여 현재 프레임에 대한 양자화 계수 값을 결정하는 단계; (c) 프레임을 적어도 하나 이상의 유닛으로 구분하고, 각 유닛별 영상의 복잡도 가중치를 산출한 후 산출된 복잡도 가중치에 따라 각 유닛의 양자화 계수를 결정하여 부호화하는 단계; 및 (d) 다음에 부호화할 P 프레임의 목표 비트량을 예측하기 위하여 이전에 부호화된 P 프레임들의 발생된 비트량과 현재 프레임의 발생 비트량을 이용하여 P 프레임의 복잡도 가중치를 산출하는 단계를 포함하는 것을 특징으로 하는 실시간 H.264/AVC를 위한 적응적인 유닛-레벨 비트율 제어방법이다.
본 발명에 따르면, 인접한 프레임들의 각 유닛별 통계적 특성을 이용하여, 예측된 영상의 복잡도에 따라 QP값에 의한 발생 비트량의 변화를 구하여 부호화하고자 하는 프레임 내 각 유닛의 예측 비트량에 적용하고 이전 프레임들의 통계 정보인 QP와 발생 비트량과의 가중치를 이용하여 현재 프레임 내의 각 유닛별 복잡도를 예측함으로써, 동일 비트율에서 PSNR 성능 저하없이 기존 방식 대비 99%이상 계산량을 감소시킬 수 있다는 장점이 있다.

Description

실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법{A Method for Adaptive Rate Control in Unit-level for Real-time H.264/AVC}
본 발명은 실시간 H.264/AVC를 위한 적응적인 유닛-레벨 비트율 제어방법에 관한 것으로서, 보다 상세하게는 인접한 프레임들의 각 유닛별 통계적 특성을 이용하여, 예측된 영상의 복잡도에 따라 QP값에 의한 발생 비트량의 변화를 구하여 부호화하고자 하는 프레임 내 각 유닛의 예측 비트량에 적용하고 이전 프레임들의 통계 정보인 QP와 발생 비트량과의 가중치를 이용하여 현재 프레임 내의 각 유닛별 복잡도를 예측할 수 있는 실시간 H.264/AVC를 위한 적응적인 유닛-레벨 비트율 제어방법에 관한 것이다.
H.264/AVC는 ITU와 ISO/IEC가 함께 진행하여 향상된 비디오 부호화 표준을 제공하기 위해서 개발된 국제 압축 표준으로서, 다양한 예측 부호화 방법과 엔트로피 부호화 방법들을 통해, H.264/AVC 비디오 부호화는 기존의 비디오 부호화 표준들과 비교하여 최대 50%까지의 비트율을 절감할 수 있어 보다 향상된 부호화 효율을 제공한다.
영상정보를 실시간으로 전송시, 영상의 특징과 종류에 따라 생성되는 비트량은 시간적으로 변화가 심할 수 있게 되는데, 이는 전송되는 채널의 특성상 매우 제한적이며, 고정된 대역폭을 가지고 있기 때문이다. 따라서 영상의 품질과 채널 용량 간의 균형을 조절하여 가장 좋은 부호화 성능을 제공하기 위해서는 부호화 변수들을 조절하는 것이 필수적이라 할 수 있다. 이와 같은 부호화 성능을 조절하기 위하여 H.264의 비트율 제어 알고리즘은 비트율-왜곡 최적화(RDO: Rate Distortion Optimization) 방법을 기반으로 하여 발생 비트와 양자화 왜곡의 비율을 효율적으로 조절함으로써 부호화 전에 각 프레임을 위한 적절한 QP(Quantization Parameter)를 결정하고, 각 부호화 모드의 비용을 측정하여 최소 비용의 모드를 최종 모드로 결정한다. 그러므로 H.264/AVC에서의 비트율 제어 방식은 모드 결정 및 움직임 벡터 결정을 하기 이전에 최적의 QP를 선택해야 하는 문제점이 발생한다.
이러한 RDO와 현재 영상의 통계치 계산 간의 상호 의존적인 구조 때문에 H.264에서의 비트율 제어는 복잡한 형태가 된다. 이러한 문제를 해결하기 위해 해당 매크로 블록의 왜곡 값을 MAD(Mean Absolute Different)를 통해 이전 프레임의 매크로 블록으로부터 추정되는 방법이 사용된다. M. Jiang은 이런 MAD 방법을 개선하여, GOP 구간에서의 부호화된 P 프레임들의 평균 MAD 값에 대한 현재 프레임의 예측된 MAD 율을 이용하여 프레임 복잡도를 예측하는 모델과 이 MAD 율과 함께 부호화된 P 프레임들의 평균 PSNR 오차율을 이용하여 현재 프레임의 복잡도를 예측하여 개선된 성능을 보여주고 있다. Z.G. L는 Quadratic R-D 모델에서 제안된 2차 비트율 모델을 이용하여 유닛의 QP값을 예측한다. 여기서 유닛은 프레임, 슬라이스 또는 매크로블록이 될 수 있다. 현재의 유닛에 대한 MAD를 계산할 수 없기 때문에 이전에 부호화된 프레임의 MAD값을 선형 모델에 적용하여 현재의 MAD값을 예측한다. 그러나 이와 같은 MAD 방법들은 많은 계산량을 필요로 하기 때문에 실시간으로 서비스되는 동영상의 응용에 많은 제약을 갖게 된다.
1. H.264/AVC의 비트율 제어 알고리즘
종래기술에 따른 H.264/AVC의 비트율 제어 알고리즘을 살펴보면 다음과 같다. H.264/AVC를 효율적인 비디오 부호화 표준으로 만드는 많은 기술들 중 하나로, 율-왜곡 최적화(Rate-Distortion Optimization) 방법을 들 수 있는데, 움직임 추정에 쓰이는 가변블록 모드와 공간 예측 모드(Intra16x16, Intra4x4), Skip 모드 등 모든 가능한 부호화 모드 중에서 가장 최적의 모드를 선택하는 방법이다. 이 방법은 효율화의 장점과 함께 연산량 증가에 의한 부호화기 복잡도의 증가라는 단점이 있다. 또한 율-왜곡 최적화 방법은 비트율 조절의 측면에서도 매우 다루기 까다로운 방법으로, 율-왜곡 최적화를 위해서는 모든 부호화 모드를 재귀적으로 검사를 하면서 최적의 모드를 선택하는데, 최적화가 끝난 후에 QP의 선택을 위해 사용되는 여러 변수들이 결정된다.
도 1은 H.264/AVC 참조 모델의 비트율 제어 방법을 나타낸 것으로 목표 비트율이 할당되면 GOP 구간에서의 비트량이 결정된다. 그리고 부호화기의 버퍼 상태를 고려하여 각 유닛 단위별 비트량과 양자화 계수를 결정하여 부호화한다. 그런 다음 비트율-왜곡 최적화를 수행한 후, 화질과 비트율을 모두 만족하는 매크로블록 모드를 부호화한다.
1-1. 프레임에 대한 목표 비트량 계산
비디오 시퀀스는 GOP(Group of Picture)로 구성되어 있고, GOP의 첫 번째 프레임은 인트라(Intra) 모드로 부호화하고, 그 이후의 프레임은 인터(Inter) 모드로 부호화하는 것이 일반적이다. 프레임 당 비트율을 제어하기 위해서는 먼저 첫 번째 프레임에 대한 가상버퍼 점유량(Virtual Buffer Occupancy)을 정해야 하는데, 이 첫 번째 가상 버퍼 점유량이 BC(1)이면, 이때 초기 가상버퍼 점유량은 버퍼 사이즈(BS)를 1/8로 설정한다. 그리고 버퍼의 넘침(Overflow)과 고갈(Underflow)을 방지하기 위하여 버퍼의 상한(U(1)) 및 하한(L(1))의 초기값을 다음의 수학식 1과 같이 설정한다.
Figure 112010049917959-pat00001
이때 u는 채널 대역폭으로 압축된 영상 시퀀스를 일정하게 전송하는 비트율이고, Fr은 초당 부호화된 프레임 율이다.
영상 시퀀스가 IPPP와 같은 GOP 구조로 부호화 된다면 GOP의 첫 번째 I 프레임과 첫 번째 P 프레임은 미리 설정된 초기 양자화 파라미터로 부호화되기 때문에 목표 비트 할당이 요구되지 않고 이후의 프레임부터 목표 비트 할당이 이루어진다. n번째 프레임을 부호화할 때마다 가상버퍼 점유량(BC(n)) 및 목표 버퍼레벨(TBL(n))은 각각 수학식 1과 수학식 2와 같이 유동적으로 변하는 유동 트래픽 모델(Fluid traffic model)식을 따르고 있다.
Figure 112010049917959-pat00002
Figure 112010049917959-pat00003
수학식 2에서 A(n-1)는 (n-1)번째 프레임에 대한 부호화된 비트량이고, 수학식 3에서 NP는 하나의 GOP 내에 있는 P 프레임의 개수이다. n번째 프레임을 부호화하기 이전에, 프레임 당 할당할 수 있는 목표 비트량을 예측함에 있어서 버퍼량의 예측이 필요하다. 이때 버퍼량 예측은 가상버퍼 점유량 및 목표 버퍼레벨을 이용하여 다음의 수학식 4와 같이 예측할 수 있다.
Figure 112010049917959-pat00004
이렇게 프레임 당 버퍼량이 예측되면 버퍼 상태를 고려하여 수학식 5와 같이 버퍼의 상한(U)과 하한(L) 범위까지 고려하여 최종적으로 버퍼량(Tbuf(n)) 값을 결정한다.
Figure 112010049917959-pat00005
n번째 프레임에 대한 목표 비트량 T(n)은 수학식 5에서 예측한 버퍼량과 수학식 6에서 예측한 부호 비트량을 고려하여 수학식 7과 같이 최종적으로 결정된다.
Figure 112010049917959-pat00006
Figure 112010049917959-pat00007
수학식 6에서 Tr은 프레임당 부호화할 수 있는 비트량으로 현재 남아 있는 비트량(R)과 앞으로 부호화할 프레임 개수 즉, 남은 프레임 개수(N-n)를 이용하여 계산한다.
1-2. MAD 예측 및 양자화 계수 예측
비트율 제어를 위해 먼저 현재 프레임과 참조 프레임간의 차이를 나타내는 MAD를 이용하며, 현재 프레임의 MADC를 예측하기 위해 수학식 8과 같이 계산한다.
Figure 112010049917959-pat00008
수학식 8에서 MADP는 이전 프레임의 MAD를 나타내며 C2는 예측된 값들의 예측 오차에 대한 보상 값이다. C1과 C2에 대한 초기값은 각각 1과 0이다. 현재 H.264/AVC의 비트율을 제어하기 위한 프레임 단위에 대한 양자화 계수는 수학식 9와 같이 2차 방정식 비트율-왜곡 모델을 사용한다.
Figure 112010049917959-pat00009
수학식 9에서 T(n)은 n번째 프레임에서의 목표 비트량, MADn은 n번째 프레임에서의 MAD, QP는 양자화 계수, 그리고 χ1과 χ2는 각 프레임에서 얻어지는 2차원 비트율-왜곡값을 나타내는 변수이다.
이상에서 살펴본 바와 같이, H.264/AVC에서 사용되고 있는 비트율 제어 방법은 실제 부호화에 의한 최적의 부호화 파라미터를 찾는 것으로, 라그랑지안 최적화 방법을 이용하여 가능한 부호화 파라미터 조합 중 주어진 비트 율 조건을 만족시키고 왜곡을 최소화 하는 것을 예측하는 방식을 사용하고 있다. H.264/AVC에서 사용되는 비트율 조절 방법은 비트와 왜곡이 양자화 스텝의 함수로서 표현되는 Quadratic R-D 모델에 기반을 두고 있다. 이 방법은 이미지에 대한 분석의 간단함 및 양자화에 대한 직접적인 조절 방법 등의 특성에도 불구하고, 비디오 부호화의 다양한 특성 때문에, 경우에 따라서는 비효율적인 비트율 조절 결과를 나타내는 경우가 있다는 문제점이 있었다.
또한, 이러한 방식은 가장 이상적인 방법이지만 모든 양자화 파라미터에 따른 실제 비트율과 왜곡 값을 구해야 하므로 많은 계산량의 문제점으로 인해 실시간 멀티미디어 전송시에 부적합하다는 문제점이 있었다.
본 발명에서는 전술한 바와 같은 종래기술의 문제점을 해결하기 위하여 QP와 부호화 이후에 발생되는 실제 비트량과의 선형적 모델을 기반으로 하여 기존의 방식보다 복잡도를 줄이는 방식을 사용함으로써, 적은 계산량으로도 프레임의 각 유닛의 발생 비트량을 정확히 예측하여 기존의 방식보다 비트율 제어 알고리즘의 전체적인 계산량을 줄이는 방법을 제안하고자 한다.
전술한 바와 같은 목적을 달성하기 위하여, 실시간 비디오 부호화를 위한 유닛-레벨 비트율 제어방법에 있어서, (a) 부호화 이후의 프레임에 대한 복잡도 갱신이 이루어진 정보들을 이용하여 현재 부호화 하고자 하는 프레임에 대한 복잡도 가중치, 가상버퍼 점유율 및 목표 버퍼레벨을 산출하고, 산출된 복잡도 가중치, 가상버퍼 점유율 및 목표 버퍼레벨을 이용하여 목표 비트량을 예측하는 단계; (b) 상기 (a) 단계에서 예측된 목표 비트량과 적어도 하나 이상의 영상에 대한 각 양자화 계수(Quntization Parameter, QP)에 따른 P 프레임들의 평균 비트량을 포함하는 통계정보를 이용하여 현재 프레임에 대한 양자화 계수 값을 결정하는 단계; (c) 프레임을 적어도 하나 이상의 유닛으로 구분하고, 각 유닛별 영상의 복잡도 가중치를 산출한 후 산출된 복잡도 가중치에 따라 각 유닛의 양자화 계수를 결정하여 부호화하는 단계; 및 (d) 다음에 부호화할 P 프레임의 목표 비트량을 예측하기 위하여 이전에 부호화된 P 프레임들의 발생된 비트량과 현재 프레임의 발생 비트량을 이용하여 P 프레임의 복잡도 가중치를 산출하는 단계를 포함하는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법이 제공된다.
여기서, 전술한 (a) 단계는, (a1) 이전 프레임에 대한 부호화된 비트량을 이용하여 현재 프레임에 대한 가상버퍼 점유량(Bc(n))을 산출하는 단계; (a2) 이전 프레임에 대한 목표 버퍼레벨(TBL(n-1))과 상기 (a1) 단계에서 산출된 가상버퍼 점유량(Bc(n))을 이용하여 현재 프레임에 대한 목표 버퍼레벨(TBL(n))을 산출하는 단계; (a3) 상기 가상버퍼 점유량(Bc(n))과 목표 버퍼레벨(TBL(n))을 이용하여 최종적인 버퍼량(Tbuf(n))을 산출하는 단계; (a4) 상기 가상버퍼 점유량(Bc(n)), 목표 버퍼레벨(TBL(n)), 전 단계에서 예측된 현재 P 프레임의 복잡도 가중치(Wp) 및 현재 남아 있는 비트량(R)을 이용하여, P 프레임에 대한 복잡도 가중치를 이용한 프레임당 부호화 할 수 있는 비트량(Tr1)과 가상버퍼 점유량(Bc(n))과 목표 버퍼레벨(TBL(n))을 고려한 프레임당 부호화 할 수 있는 비트량(Tr2)을 산출하는 단계; 및 (a5) 상기 (a3) 단계에서 산출된 최종적인 버퍼량(Tbuf(n))과 상기 (a4) 단계에서 산출된 부호화 할 수 있는 비트량(Tr1, Tr2)과 가상버퍼 점유량(Bc(n))과 목표 버퍼레벨(TBL(n))에 대한 의존도 값을 이용해 최종 목표 비트량(T(n))을 산출하는 단계를 포함하도록 구성될 수 있다.
또한, 이때, 전술한 (a1) 단계에서 가상버퍼 점유량(Bc(n))은 하기의 수학식 10,
[수학식 10]
Figure 112010049917959-pat00010
(여기서, A(n-1)은 (n-1)번째 프레임에 대한 부화된 비트량, Fr은 초당 부호화된 프레임율, u는 채널 대역폭으로 압축된 영상 시퀀스를 일정하게 전송하는 비트율)에 의해 산출되고,
전술한 (a2) 단계에서 현재 프레임에 대한 목표 버퍼레벨(TBL(n))은 하기의 수학식 11,
[수학식 11]
Figure 112010049917959-pat00011
(여기서, Np는 하나의 GOP(Group Of Picture) 내에 있는 P 프레임의 개수, Pe는 GOP 구간에서의 부호화된 P 프레임의 개수)에 의해 산출되며,
전술한 (a3) 단계에서 최종적인 버퍼량(Tbuf(n))은 하기의 수학식 12,
[수학식 12]
Figure 112010049917959-pat00012
에 의해 산출되고,
전술한 (a4) 단계에서 프레임당 부호화 할 수 있는 비트량(Tr1, Tr2)은 하기의 수학식 13,
[수학식 13]
Figure 112010049917959-pat00013
에 의해 산출되며,
전술한 (a5) 단계에서 목표 비트량(T(n))은 하기의 수학식 14,
[수학식 14]
Figure 112010049917959-pat00014
(여기서, β는 가상버퍼 점유량(Bc(n))과 목표 버퍼레벨(TBL(n))에 대한 의존도)에 의해 산출되도록 구성될 수 있다.
또한, 전술한 (a3) 단계에서 최종적인 버퍼량(Tbuf(n))은 하기의 수학식 5,
[수학식 5]
Figure 112010049917959-pat00015
에 따라 버퍼의 상한(U)과 하한(L) 범위까지 고려되어 산출되도록 구성될 수 있다.
한편, 전술한 통계정보는 빠르고 세밀한 영상, 느리고 평탄한 영상, 보통의 빠르기와 평탄함 및 세밀함을 갖춘 영상 각각에 대한 각 양자화 계수에 따른 P 프레임들의 평균 비트량 중 적어도 하나 이상을 포함하도록 구성될 수 있다.
다른 한편으로, 전술한 (b) 단계에서 양자화 계수와 발생 비트량과의 선형관계는 하기의 수학식 15,
[수학식 15]
Figure 112010049917959-pat00016
(n은 QP값 인덱스, QPbits,n는 QP값 인덱스 n에 대한 예측된 발생 비트량, α와 β는 다양한 영상의 통계 특성에 의해 결정된 상수 값)에 따라 산출되도록 구성될 수 있다.
여기서, 전술한 수학식 15의 QPbits,n은 하기의 수학식 16,
[수학식 16]
Figure 112010049917959-pat00017
를 이용하여 재계산되며,
상기와 같은 QP 인덱스에 대한 예측된 발생 비트량 QPbits,(0~51)은 초기화 단계에서 한 번만 계산되며 1차원 테이블에 값을 저장되어 사용되고,
초기화 단계 이후에 현재 프레임에 대한 QPc는 하기의 수학식 17,
[수학식 17]
Figure 112010049917959-pat00018
(frameQP()는 QP 인덱스에 의한 예측 비트량 QPbits,(0~51)구간에서 해당 목표 비트량 T를 찾는 함수),를 이용하여 산출되도록 구성될 수 있다.
또한, 전술한 (c) 단계에서, 각 유닛에 대한 목표 비트량(Tunit,i)은 하기의 수학식 18,
[수학식 18]
Figure 112010049917959-pat00019
(width는 영상의 가로폭, MBn는 영상내의 총 MB 개수(MB는 프레임 내에서 처리되는 유닛의 기본 단위), i는 유닛 번호, uc는 프레임 내 유닛 개수, βi는 해당 유닛의 가중치로서 예측된 목표 비트량 대비 이전 프레임들내의 각 유닛별 평균 비트량에 의해 정해짐)을 이용하여 산출되고,
각 유닛에 대한 양자화 계수 값(QPunit,i)은 하기의 수학식 19,
[수학식 19]
Figure 112010049917959-pat00020
(unitQP()는 QP 인덱스에 의한 예측 비트량 QPunit,n(1~51) 구간에서 해당 목표 비트량 를 찾는 함수)를 이용해 산출되도록 구성될 수 있다.
또 다른 한편으로, 전술한 (d) 단계에서 가상 버퍼의 점유량 Bc 및 버퍼의 넘침과 고갈을 예방하기 위한 버퍼의 상한 U(n) 및 하한 L(n)값은 하기의 수학식 20,
[수학식 20]
Figure 112010049917959-pat00021
을 이용해 산출되며,
다음에 부호화 할 P 프레임의 목표 비트량을 예측하기 위한 P 프레임의 복잡도 가중치 Wp는 하기의 수학식 21,
[수학식 21]
Figure 112010049917959-pat00022
(Sbits는 이전 P 프레임의 발생 비트량 구간에서 QPp와 동일한 값을 갖는 P 프레임들의 평균 비트량, λ는 목표 비트량과 실제 발생된 비트량과의 오차를 줄이기 위한 A(n-1)와 Sbits의 가중치) 를 이용해 산출되도록 구성될 수 있다.
본 발명에 따른 실시간 비디오 부호화를 위한 적응적인 Unit-level 비트율 제어방법에 따르면 제안된 발명은 인접한 프레임들의 각 유닛별 통계적 특성을 이용하여, 예측된 영상의 복잡도에 따라 QP값에 의한 발생 비트량의 변화를 구하여 부호화하고자 하는 프레임 내 각 유닛의 예측 비트량에 적용하고 이전 프레임들의 통계 정보인 QP와 발생 비트량과의 가중치를 이용하여 현재 프레임 내의 각 유닛별 복잡도를 예측한다. 실험 결과를 통해 동일 비트율에서 PSNR 성능 저하없이 기존 방식 대비 99%이상 계산량을 감소시킬 수 있다.
도 1은 H.264/AVC 참조 모델의 비트율 제어 방법의 개념을 도시한 개념도.
도 2는 본 발명의 바람직한 일 실시예에 따른 실시간 H.264/AVC를 위한 적응적인 유닛-레벨 비트율 제어방법에서의 전체적인 계층구조를 도시한 개념도.
도 3은 영상특성에 따른 양자화 계수별 발생 비트량을 도시한 그래프.
도 4는 Container(QCIF) 영상의 유닛별 발생 비트량(300 frames)을 도시한 그래프.
도 5는 영상(QCIF) 특성에 따른 양자화 계수별 발생 비트량의 예를 도시한 예시도.
도 6은 STEFAN 영상의 종래기술에 따른 방법들과 본 발명에 따른 방법들의 프레임별 PSNR 및 가상버퍼 점유율을 비교(64Kbps)한 그래프.
본 발명에서는 실시간 H.264/AVC를 위한 적응적인 유닛 단위의 비트율 제어방법에 대해 제안한다. 부호화 하고자 하는 프레임은 인접한 프레임들과의 밀접한 상관관계를 가지고 있으며, 프레임당 발생되는 비트량은 QP(Quantization Parameter, 양자화 계수, 이하 'QP'라 함)값과 영상의 특성에 따라서 발생한다. 제안된 발명은 인접한 프레임들의 각 유닛별 통계적 특성을 이용하여, 예측된 영상의 복잡도에 따라 QP값에 의한 발생 비트량의 변화를 구하여 부호화하고자 하는 프레임 내 각 유닛의 예측 비트량에 적용하고 이전 프레임들의 통계 정보인 QP와 발생 비트량과의 가중치를 이용하여 현재 프레임 내의 각 유닛별 복잡도를 예측한다. 실험 결과를 통해 동일 비트율에서 PSNR 성능 저하없이 기존 방식 대비 99%이상 계산량 감소가 있음을 확인할 수 있었다.
본 발명에서는 전술한 바와 같은 종래기술의 문제점을 해결하기 위하여 QP와 부호화 이후에 발생되는 실제 비트량과의 선형적 모델을 기반으로 하여 기존의 방식보다 복잡도를 줄이는 방식을 사용함으로써, 적은 계산량으로도 프레임의 각 유닛의 발생 비트량을 정확히 예측하여 기존의 방식보다 비트율 제어 알고리즘의 전체적인 계산량을 줄이는 방법을 제안한다. 본 발명에서는 유닛 단위를 기반으로 한 CBR 비트율 조절 방법만을 발명의 주제로 고려하겠다.
이하에서는, QP와 발생 비트량과의 선형적 모델을 기반으로 프레임내 각 유닛의 복잡도를 예측하여 적은 계산량으로도 효율적인 비트량을 할당하는 알고리즘을 제안한다. 그 다음으로 기존 비트율 제어 알고리즘과 제안한 비트율 제어 알고리즘의 시뮬레이션 결과를 비교 분석하도록 한다.
2. 본 발명에 따른 비트율 제어 알고리즘
H.264/AVC에서 사용되고 있는 비트율 제어 방법은 실제 부호화에 의한 최적의 부호화 파라미터를 찾는 것으로, 라그랑지안 최적화 방법을 이용하여 가능한 부호화 파라미터 조합 중 주어진 비트 율 조건을 만족시키고 왜곡을 최소화 하는 것을 예측하는 방식을 사용하고 있다. H.264/AVC에서 사용되는 비트율 조절 방법은 비트와 왜곡이 양자화 스텝의 함수로서 표현되는 Quadratic R-D 모델에 기반을 두고 있다. 이 방법은 이미지에 대한 분석의 간단함 및 양자화에 대한 직접적인 조절 방법 등의 특성에도 불구하고, 비디오 부호화의 다양한 특성 때문에, 경우에 따라서는 비효율적인 비트율 조절 결과를 나타내는 경우가 있다. 이러한 방식은 가장 이상적인 방법이지만 모든 양자화 파라미터에 따른 실제 비트율과 왜곡 값을 구해야 하므로 많은 계산량의 문제점으로 인해 실시간 멀티미디어 전송시에 부적합하다. 영상 정보의 실시간 전송은 대상 응용에 맞는 비트량을 예측하는 과정에서 불필요한 계산량을 줄이고 영상의 왜곡을 최소화하는 것을 목적으로 한다.
본 방식에서는 비트량을 예측하는 과정에서의 계산량을 줄이기 위하여 통계적 모델에 기반한 비트율 제어 방법을 이용하여 대상 응용에 적합하게 비트량을 산출하고 영상의 왜곡을 최소화하여 영상 정보를 실시간으로 부호화하는 방법에 대해 기술한다.
도 2는 제안 방식에서의 전체적인 계층 구조를 나타낸 것으로, 3개의 주요 처리 단계로 이루어져 있다: 1) 프레임에 대한 목표 비트량 및 QP값 계산, 2) 각 유닛별 QP값 결정 및 부호화, 3) 복잡도 갱신.
3.1. 프레임에 대한 목표 비트량 및 QP값 계산
부호화 이후의 프레임에 대한 복잡도 갱신이 이루어진 정보들을 이용하여 현재 부호화 하고자 하는 프레임의 목표 비트량을 예측하는 단계로서, 부호화 하고자 하는 프레임에 대한 복잡도 가중치, 가상버퍼 점유율 그리고 목표 버퍼레벨을 고려하여 목표 비트량을 예측한다.
본 발명에서의 가상버퍼 점유량(BC(n)) 및 목표 버퍼레벨(TBL(n))은 각각 수학식 10과 수학식 11을 이용하여 구한다. 수학식 10에서 A(n-1)는 (n-1)번째 프레임에 대한 부호화된 비트량이고, 수학식 11에서 Pe는 GOP 구간에서의 부호화된 P 프레임 개수이다. 수학식 11과 같이 목표 버퍼레벨은 I 프레임이 부호화 된 이후의 첫 번째 P 프레임의 경우는 버퍼 점유율에서 목표 버퍼레벨을 줄이고, 첫 번째 P 프레임이 부호화 된 이후에는 이전 목표 버퍼레벨에서 값을 줄인다.
Figure 112010049917959-pat00023
Figure 112010049917959-pat00024
현재 프레임을 부호화함에 있어서, 프레임에 할당할 수 있는 목표 비트량을 예측하기 위해서는 다음 수학식 12와 같이 계산된 버퍼 점유량 및 목표 버퍼레벨을 이용하여 버퍼량의 예측을 수행한다.
Figure 112010049917959-pat00025
그리고 프레임 당 버퍼량이 예측되면 버퍼 상태를 고려하여 수학식 5와 같이 버퍼의 상한과 하한 범위까지 함께 고려하여 최종적으로 버퍼량(Tbuf(n)) 값을 결정한다. n번째 프레임에 대한 최종 목표 비트량(T(n))은 수학식 12에서 예측한 버퍼량과 수학식 13에서 예측한 부호 비트량을 고려하여 수학식 14와 같이 최종적으로 결정된다.
Figure 112010049917959-pat00026
Figure 112010049917959-pat00027
Wp는 수학식 21을 통해 계산되며 현재 P 프레임의 복잡도 가중치를 예측한 값으로서, 본 발명에서는 이전에 부호화된 프레임들의 발생 비트량 가중치와 QP값으로 계산하였다. R은 현재 남아 있는 비트량이다. Tr1은 P 프레임에 대한 복잡도 가중치를 이용한 프레임당 부호화 할 수 있는 비트량이고 Tr2는 버퍼 점유량과 목표 버퍼레벨을 고려한 프레임당 부호화 할 수 있는 비트량이다. 수학식 14에서 β는 버퍼 점유량과 목표 버퍼레벨에 대한 의존도를 의미하는 것으로 실험에 의해 0.5로 설정하였다. 예측된 목표 비트량을 이용하여 부호화 하고자 하는 프레임의 QP값을 결정함에 있어서, 본 발명에서는 기존 H.264/AVC 방식의 수학식 9와 같은 변환 알고리즘을 사용하지 않고, 표 1과 같이 다양한 영상의 실험에 의한 통계 정보를 이용하여 결정하도록 하였다. 표 1은 영상의 각 QP에 따른 P 프레임들의 평균 비트량을 나타낸 것으로, 다양한 유형의 영상 통계 정보를 이용하기 위하여 빠르고 세밀한 영상의 "Mobile"과 "Stefan", 그리고 느리고 평탄한 영상의 "News"와 "Container"가 사용되었으며, 보통의 빠르기와 평탄함 및 세밀함이 골고루 있는 영상 "Foreman"이 사용되었다.
QP container foreman mobile news stefan QR
...
17 12,849 20,692 47,388 7,136 42,849 24,559
18 10,621 17,164 42,426 6,103 38,352 21,819
19 9,091 14,943 38,998 5,426 35,062 19,301
20 7,212 12,277 34,350 4,654 31,002 16,823
21 5,285 10,522 30,895 4,108 27,926 14,893
22 5,007 9,018 27,715 3,636 24,809 13,095
23 4,006 7,575 24,176 3,153 21,849 11,313
24 3,224 6,358 21,084 2,749 18,947 9,905
25 2,659 5,538 18,972 2,458 17,057 8,593
26 2,093 4,572 16,009 2,100 14,467 7,317
27 1,704 3,921 13,845 1,856 12,594 6,303
...
도 3은 각 영상의 특성에 따라 QP값에 따른 P 프레임의 발생 비트량 특성을 나타내고, 표 1은 각 프레임의 비트량을 예측하기 위하여 산출된 실험 데이터이다. 실험(표 1)을 통하여 P 프레임들의 평균 비트량이 QP값과 밀접한 관계를 가지고 있음을 확인할 수 있으며, 도 3과 같이 QP값에 따라 할당되는 비트량의 크기가 선형적으로 변하는 것을 보여주고 있다. QP값과 발생 비트량과의 선형 관계는 다음 수학식 15와 같이 유도될 수 있으며 발생된 P 프레임들의 평균 비트량과 거의 유사함을 알 수 있다.
Figure 112010049917959-pat00028
수학식 15의 n은 QP값 인덱스이며, QPbits,n는 QP값 인덱스 n에 대한 예측된 발생 비트량을 의미한다. α와 β는 도 3과 표 1의 다양한 영상의 통계 특성에 의해 결정된 상수 값이다. 표 1에서의 QR(QP Range)은 현재 부호화하고자 하는 프레임에 할당 가능한 비트량 구간을 나타낸 것으로서, 양자화 인덱스 함수로서의 비트량이 가우시안 분포를 가질 수 있기 때문에 수학식 15의 QP인덱스에 대한 예측 가능한 발생 비트량 QPbits,n는 수학식 16과 같이 재계산될 수 있다.
Figure 112010049917959-pat00029
이렇게 QP인덱스에 대한 예측된 발생 비트량 QPbits,(0~51)은 초기화 단계에서 한 번만 계산되며 1차원 테이블에 값을 저장하여 사용한다. 이후에는 수학식 14에서 계산된 목표 비트량을 이용하여 다음과 같이 현재 프레임에 대한 QPc값을 결정한다.
Figure 112010049917959-pat00030
수학식 17에서 frameQP()는 QP인덱스에 의한 예측 비트량 QPbits,(0~51)구간에서 해당 목표 비트량 T를 찾는 함수로써, 반복 루프를 통하여 구해진다.
3.2 각 유닛별 QP값 결정 및 부호화
프레임 내에서 처리되는 유닛의 기본 단위는 MB이며, 본 발명에서는 도 4와 같이 영상의 가로폭의 크기로 고정하였다. 도 4에 나타난 발생된 비트량에서 알 수 있듯이 이웃한 프레임들은 많은 유사성이 존재하며 이러한 유사성은 각각의 유닛별 특성에 따라 변화함을 알 수 있다. 즉, 도 4는 유닛별 영상의 세밀함에 따라 QP값을 달리함으로써, 움직임이 거의 없는(Unit5~Unit9) 유닛에서의 QP값을 높이고, 움직임이 많은(Unit2~Unit4) 유닛에는 QP값을 낮추어 좀 더 많은 비트량을 제공하여 영상의 세밀함을 살릴 수 있음을 보여주고 있는 도면이다.
Proposed JM
Unit QP Bits PSNR QP Bits PSNR
1 27



1,080







37.36







26







2,616







37.35



2 25
3 25
4 28
5 29
6 29
7 29
8 28
9 29
표 2는 도 4의 100번째 프레임의 부호화 결과를 비교한 것으로, 제안된 방식이 JM보다 적은 비트량으로도 PSNR의 개선을 가져올 수 있음을 나타낸 것이다. 이는 앞에서 언급한 바와 같이 부호화 하고자 하는 프레임의 유닛별 특성 분포에 따라서 움직임이 있는 유닛에는 QP값을 낮추고, 움직임이 거의 없는 부분에서는 QP값을 높인 결과이기 때문이다.
수학식 14와 수학식 17의 결과로 프레임 목표 비트량 (T)를 이용하여 프레임의 QP값이 결정되면, 프레임내 각 유닛별 영상의 복잡도 가중치에 따라 각 유닛의 QP를 결정하여 부호화를 수행한다. 이 때 각 유닛에 대한 목표 비트량(Tunit,i)는 수학식 18과 같이 계산된다.
Figure 112010049917959-pat00031
여기서 width는 영상의 가로폭, MBn는 영상내의 총 MB 개수, i는 Unit 번호, uc는 프레임내 Unit 개수, 그리고 βi는 해당 Unit의 가중치를 나타낸다. 각 Unit의 가중치 βi는 도 5와 같이 예측된 목표 비트량 대비 이전 프레임들내의 각 유닛별 평균 비트량에 의해 정해진다. 도 5에서 한 개의 유닛에 할당될 수 있는 비트량은 수학식 19와 같이 QP에 따라 평균 8~13%로 정해진다. 그리고 이전 프레임들에서 발생된 각각의 유닛별 비트량 통계정보를 이용하여 QP값이 결정되게 된다. 각 유닛의 QP값이 결정될 때는 각 유닛단위의 화질 열화를 막기 위해 ΔQP값이 ±2로 제한을 받지만, 도 5와 같이 각 유닛간의 발생 비트량의 차이가 많을 경우에는 실험에 의해 ΔQP값의 제한을 최대 ±4로 설정하였다.
각 유닛에 대한 목표 비트량이 정해지면 다음과 같이 각 유닛에 대한 QP값을 결정하여 부호화를 수행한다.
Figure 112010049917959-pat00032
unitQP()는 수학식 17과 같이 QP인덱스에 의한 예측 비트량 QPunit,n(1~51) 구간에서 해당 목표 비트량 를 찾는 함수로써, 반복 루프를 통하여 구해진다.
3.3 복잡도 갱신
이전 프레임을 부호화 한 후에 발생된 실제 비트량을 이용하여 현재 프레임내 각 유닛의 복잡도를 계산하는 단계로서, 가상 버퍼의 점유량 및 버퍼의 넘침과 고갈을 예방하기 위한 과정 그리고 이전에 부호화된 P 프레임들의 발생된 비트량과 현재 프레임의 발생 비트량을 이용하여 이후에 부호화시 사용될 P 프레임의 복잡도 가중치를 계산한다.
Figure 112010049917959-pat00033
가상 버퍼의 점유량 Bc 및 버퍼의 넘침과 고갈을 예방하기 위한 버퍼의 상한 U(n) 및 하한 L(n)값은 수학식 20을 통해서 구해진다.
그리고 다음에 부호화 할 P 프레임의 목표 비트량을 예측하기 위한 P 프레임의 복잡도 가중치 Wp는 수학식 21과 같이 구해진다.
Figure 112010049917959-pat00034
본 발명에서는 P 프레임에 대한 복잡도 가중치를 예측하기 위한 부호화된 P 프레임들의 최대 개수를 20개로 제한하였으며, Sbits는 이전 P 프레임의 발생 비트량 A(n-2)~A(n-20) 구간에서 QPp와 동일한 값을 갖는 P 프레임들의 평균 비트량이다. 이는 프레임에 할당할 수 있는 비트량을 통하여 QP값을 결정하기 위해서는 각 QP값에 따라 발생되는 프레임 비트량을 알아야 하기 때문이다. 또한 부호화 하고자 하는 P 프레임은 인접한 프레임들과의 밀접한 상관관계를 가지고 있다. 따라서 목표 비트량과 실제 발생된 비트량과의 오차를 줄이기 위한 A(n-1)와 Sbits의 가중치 λ값을 0.67로 설정하였다. 이 λ값은 다양한 영상을 각각의 고정 값과 움직임 추정을 위한 참조 프레임을 최대 20으로 설정했을 때, 현재 프레임을 부호화하기 위한 이전 프레임의 참조율(T-1 참조율 67%, T-2~T-4참조율 12%, T-5~T-8 참조율 8%)을 나타낸 것으로 시뮬레이션하여 얻어낸 결과 값이다.
4. 실험 및 결과
본 발명에서는 H.264/AVC 부호기를 기반으로 한 효율적인 비트율 제어 방법을 제시하였다. 제안한 알고리즘의 성능을 검증하기 위하여 H.264/AVC 참조 소프트웨어 12.1 부호기를 사용하였다.
Profile Baseline 3.0
MV Resolution 1/4 Pel
Hardamard Transform ON
ROD ON
Search Range ±16
Reference Frames 1
Symbol Mode CAVLC
GOP size 30
Encoding Frame 300
Test Channel Bandwidth 64K~384K
실험 환경은 표 3과 같고 실험에 사용된 영상은 부호기에서의 성능평가 테스트로 광범위하게 사용되는 QCIF급 영상을 사용하였다. 영상의 GOP 구조는 초기 I 프레임과 그 이후의 모든 프레임들은 P 프레임으로 구성하였고 B 프레임과 프레임 스킵은 고려하지 않았다. 그리고 각 알고리즘의 계산량 비교를 위하여 고밀도 측정 타이머를 사용하였으며, 계산량 측정 범위는 각 알고리즘의 데이터 및 버퍼의 초기화 부분을 제외한 비트율을 제어하는 부분에서만 측정하였다. 표 4에서 표 6은 채널 전송대역폭이 각각 64K, 96K, 128Kbps이고 프레임율이 30fps일 때 기존 비트율 제어 방법들과 제안한 비트율 제어 알고리즘에 대한 부호화된 비트량, PSNR 및 계산량 비교이다.

Sequence
JM 12.1 Ref.14 Proposed
BIt
rate
PSNR 계산량
(μs)
BIt
rate
PSNR 계산량
(μs)
BIt
rate
PSNR 계산량
(μs)
news 64.04 35.82 1,168.595 63.97 35.87 1,173.773 64.00 35.86 43.464
foreman 64.03 32.15 1,183.141 63.99 32.17 1,187.741 64.03 32.06 43.384
stefan 64.14 24.56 1,155.174 64.11 24.52 1,156.785 64.07 24.48 45.119
pamphlet 64.10 39.68 1,157.375 64.11 39.58 1,161.497 64.08 39.72 43.418
paris 64.34 29.05 1,184.514 64.121 29.05 1,187.151 64.11 29.06 43.035
sean 64.06 39.43 1,188.814 63.96 39.50 1,191.837 64.00 39.78 42.904

Sequence
JM 12.1 Ref.14 Proposed
BIt
rate
PSNR 계산량
(μs)
BIt
rate
PSNR 계산량
(μs)
BIt
rate
PSNR 계산량
(μs)
news 96.05 38.59 1,185.668 96.14 38.64 1,161.996 96.08 38.64 43.175
foreman 96.14 34.26 1,210.393 95.95 34.29 1,215.146 95.92 32.20 44.598
stefan 96.16 26.24 1,175.496 96.09 26.14 1,176.321 96.09 26.22 48.535
pamphlet 96.07 42.24 1,175.940 96.11 42.35 1,182.151 96.07 42.09 43.553
paris 96.32 32.14 1,188.900 96.03 32.15 1,194.143 96.25 32.16 43.007
sean 96.12 41.91 1,199.055 96.14 41.93 1,198.868 96.01 42.15 42.906

Sequence
JM 12.1 Ref.14 Proposed
BIt
rate
PSNR 계산량
(μs)
BIt
rate
PSNR 계산량
(μs)
BIt
rate
PSNR 계산량
(μs)
news 128.09 40.15 1,193.926 128.07 40.17 1,199.038 127.94 40.47 43.433
foreman 128.01 35.75 1,225.928 128.02 35.78 1,232.673 128.21 35.63 43.540
stefan 128.36 27.78 1,189.314 128.12 27.73 1,193.160 128.24 27.64 45.118
pamphlet 128.23 43.69 1,175.940 127.96 43.75 1,182.151 127.98 43.51 43.553
paris 128.21 33.65 1,204.631 128.01 33.69 1,206.749 128.18 33.66 42.952
sean 128.03 43.43 1,196.702 127.95 43.49 1,200.223 128.01 43.63 43.372
표 4는 64 Kbps 채널 전송환경에서 각 영상들의 부호화 비트율, PSNR 및 계산량을 비교한 결과표이고, 표 5는 96 Kbps 채널 전송환경에서 각 영상들의 부호화 비트율, PSNR 및 계산량을 비교한 결과표이며, 표 6은 128 Kbps 채널 전송환경에서 각 영상들의 부호화 비트율, PSNR 및 계산량을 비교한 결과표이다.
표 4, 5, 6에서 알 수 있듯이 참고 발명(Ref.14, M.Jiang nad N.Ling, "On Enhancing H.264/AVC Video Rate Control by PSNR-Based Frame Complexity Estimation", IEEE Trans. Consumer. Electronics. Vol 51, No.1, PP.281~286, Feb. 2005.)이 JM 12.1보다는 평균적으로 0.07Kbps의 적은 비트량을 절약하고도 PSNR 측면에서는 평균적으로 0.02~0.03dB 정도 높게 나와 더 좋은 성능을 보이고 있다. 그러나 Ref14의 방법은 PSNR 기반의 비트율을 제어하기 때문에 이에 따른 계산량 증가로 JM 12.1의 방법보다는 약 13%의 계산량이 더 필요한 것으로 나타났다. 그리고 JM 12.1과 Ref14의 방법은 제안한 방법보다 채널 전송환경에 부적합하게 평균적으로 0.2~0.3Kbps 비트량을 초과 발생하였다. 반면, 제안한 방법이 PSNR 측면에서 기존 방법들과 거의 같고 일부 영상에서는 평균적으로 0.02dB 정도 높게 나타났다. 채널 전송 환경에서의 발생 비트량은 JM 12.1 방법보다 0.2~0.4Kbps 정도 절약하였고, Ref.14 방법보다는 0.12Kbps 정도 절약하였다. 또한 제안한 방법이 전체적으로 채널 전송 환경에 적합하게 비트량을 잘 조절하고 있음을 알 수 있다. 계산량에 있어서는 JM 12.1 방법과 Ref.14 방법 모두 복잡한 MAD 계산과 이에 따른 비트량 조절을 위한 연산량이 제안한 방법보다 월등히 많음을 알 수 있다. 특히 현재 프레임에 대한 복잡도를 예측하는데 사용되는 MAD 계산량이 전체 비트율 제어 계산량의 평균적으로 약 12% ~ 14%정도 차지하고 있음을 실험결과 확인할 수 있었다.
실험 결과에서 알 수 있듯이 제안한 방법이 PSNR 측면에서 기존 JM 12.1 방법과 Ref.14 방법과는 평균적으로 거의 비슷하였지만, 계산량에서는 평균적으로 월등히 적은 0.1% 미만의 계산량으로도 효율적인 비트율을 제어할 수 있음을 확인하였다. 제안한 방법의 많은 계산량 절감은 기존 방법들과는 달리 복잡한 MAD 계산과 이에 따른 계산 과정을 따르지 않고, 기존 영상들의 통계정보를 이용하고 실시간적으로 발생하는 발생 비트량을 다시 통계정보로 활용함으로써 영상의 특성에 적응적으로 비트율 제어가 이루어졌기 때문이다.
도 6은 Stefan 영상을 64Kbps 채널로 전송할 경우, 제안한 방법과 기존 방법들에 대하여 프레임별 부호화된 PSNR과 가상버퍼 점유율 상태를 비교한 것으로서, Ref.14 방법이 일부 프레임들에서 JM과 제안한 방법보다 많은 비트량을 발생시켜 PSNR 측면에서 다소 높게 나오고 있으나, 버퍼 점유율에서는 거의 모든 영상에서 평균적으로 언더플로우가 발생하고 있음을 보여주고 있다. 이는 영상 데이터를 전송함에 있어서 버퍼의 고갈 상태를 의미하는 것으로, 실시간으로 영상을 부호화하여 전송함에 있어서 적합하지 않음을 확인할 수 있다.
5. 결 론
본 발명에서는 H.264/AVC 부호기에서 부호화된 비트스트림을 고정된 채널로 전송할 경우, 기존의 비트율 제어 방법을 소개하고 문제점을 제시하였다. 기존의 비트율 제어 방법의 큰 문제점은 현재 프레임을 부호화하는데 있어서 이전 프레임의 차분부호 정보량을 이용하기 때문에 많은 계산량을 필요로 한다는 것이다. 이러한 문제점들을 해결하기 위하여 본 발명에서는 이전 프레임의 차분부호 정보량이 아닌, 다양한 영상의 통계정보와 이전에 발생된 비트량을 통계정보로 이용하여 프레임내 각 유닛별 영상 특성에 적응적으로 비트율을 제어하는 방법을 제안하였다.
본 발명에서 제안한 비트율 제어 알고리즘의 성능을 측정하기 위하여 기존의 비트율 제어 알고리즘과 비교 실험을 하였다. 실험 결과에서 알 수 있듯이 기존 비트율 제어 방법의 PSNR 성능과 거의 비슷하거나 평균적으로 0.02dB 개선이 있었다. 또한 다양한 채널 전송 환경에서도 기존 비트율 제어 방법들보다 목표 비트율에 적합하게 부호화되는 것으로 나타났다. 특히 계산량 절감에 있어서는 제안한 방법이 기존 방법들보다 99% 이상의 계산량이 감소하여 실시간 처리에 적합한 것으로 나타났다. 이는 영상과 관련된 응용 분야에 많은 활용이 있을 것으로 사료된다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경 및 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.

Claims (9)

  1. 실시간 비디오 부호화를 위한 유닛-레벨 비트율 제어방법에 있어서,
    (a) 부호화 이후의 프레임에 대한 복잡도 갱신이 이루어진 정보들을 이용하여 현재 부호화 하고자 하는 프레임에 대한 복잡도 가중치, 가상버퍼 점유율 및 목표 버퍼레벨을 산출하고, 산출된 복잡도 가중치, 가상버퍼 점유율 및 목표 버퍼레벨을 이용하여 목표 비트량을 예측하는 단계;
    (b) 상기 (a) 단계에서 예측된 목표 비트량과 적어도 하나 이상의 영상에 대한 각 양자화 계수(Quntization Parameter, QP)에 따른 P 프레임들의 평균 비트량을 포함하는 통계정보를 이용하여 현재 프레임에 대한 양자화 계수 값을 결정하는 단계;
    (c) 프레임을 적어도 하나 이상의 유닛으로 구분하고, 각 유닛별 영상의 복잡도 가중치를 산출한 후 산출된 복잡도 가중치에 따라 각 유닛의 양자화 계수를 결정하여 부호화하는 단계; 및
    (d) 다음에 부호화할 P 프레임의 목표 비트량을 예측하기 위하여 이전에 부호화된 P 프레임들의 발생된 비트량과 현재 프레임의 발생 비트량을 이용하여 P 프레임의 복잡도 가중치를 산출하는 단계를 포함하는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
  2. 제1항에 있어서,
    상기 (a) 단계는,
    (a1) 이전 프레임에 대한 부호화된 비트량을 이용하여 현재 프레임에 대한 가상버퍼 점유량(Bc(n))을 산출하는 단계;
    (a2) 이전 프레임에 대한 목표 버퍼레벨(TBL(n-1))과 상기 (a1) 단계에서 산출된 가상버퍼 점유량(Bc(n))을 이용하여 현재 프레임에 대한 목표 버퍼레벨(TBL(n))을 산출하는 단계;
    (a3) 상기 가상버퍼 점유량(Bc(n))과 목표 버퍼레벨(TBL(n))을 이용하여 최종적인 버퍼량(Tbuf(n))을 산출하는 단계;
    (a4) 상기 가상버퍼 점유량(Bc(n)), 목표 버퍼레벨(TBL(n)), 전 단계에서 예측된 현재 P 프레임의 복잡도 가중치(Wp) 및 현재 남아 있는 비트량(R)을 이용하여, P 프레임에 대한 복잡도 가중치를 이용한 프레임당 부호화 할 수 있는 비트량(Tr1)과 가상버퍼 점유량(Bc(n))과 목표 버퍼레벨(TBL(n))을 고려한 프레임당 부호화 할 수 있는 비트량(Tr2)을 산출하는 단계; 및
    (a5) 상기 (a3) 단계에서 산출된 최종적인 버퍼량(Tbuf(n))과 상기 (a4) 단계에서 산출된 부호화 할 수 있는 비트량(Tr1, Tr2)과 가상버퍼 점유량(Bc(n))과 목표 버퍼레벨(TBL(n))에 대한 의존도 값을 이용해 최종 목표 비트량(T(n))을 산출하는 단계를 포함하는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
  3. 제2항에 있어서,
    상기 (a1) 단계에서 가상버퍼 점유량(Bc(n))은 하기의 수학식 10,
    [수학식 10]
    Figure 112010049917959-pat00035
    (여기서, A(n-1)은 (n-1)번째 프레임에 대한 부화된 비트량, Fr은 초당 부호화된 프레임율, u는 채널 대역폭으로 압축된 영상 시퀀스를 일정하게 전송하는 비트율)에 의해 산출되고,
    상기 (a2) 단계에서 현재 프레임에 대한 목표 버퍼레벨(TBL(n))은 하기의 수학식 11,
    [수학식 11]
    Figure 112010049917959-pat00036
    (여기서, Np는 하나의 GOP(Group Of Picture) 내에 있는 P 프레임의 개수, Pe는 GOP 구간에서의 부호화된 P 프레임의 개수)에 의해 산출되며,
    상기 (a3) 단계에서 최종적인 버퍼량(Tbuf(n))은 하기의 수학식 12,
    [수학식 12]
    Figure 112010049917959-pat00037
    에 의해 산출되고,
    상기 (a4) 단계에서 프레임당 부호화 할 수 있는 비트량(Tr1, Tr2)은 하기의 수학식 13,
    [수학식 13]
    Figure 112010049917959-pat00038
    에 의해 산출되며,
    상기 (a5) 단계에서 목표 비트량(T(n))은 하기의 수학식 14,
    [수학식 14]
    Figure 112010049917959-pat00039
    (여기서, β는 가상버퍼 점유량(Bc(n))과 목표 버퍼레벨(TBL(n))에 대한 의존도)에 의해 산출되는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
  4. 제3항에 있어서,
    상기 (a3) 단계에서 최종적인 버퍼량(Tbuf(n))은 하기의 수학식 5,
    [수학식 5]
    Figure 112010049917959-pat00040
    에 따라 버퍼의 상한(U)과 하한(L) 범위까지 고려되어 산출되는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
  5. 제1항에 있어서,
    상기 통계정보는 빠르고 세밀한 영상, 느리고 평탄한 영상, 보통의 빠르기와 평탄함 및 세밀함을 갖춘 영상 각각에 대한 각 양자화 계수에 따른 P 프레임들의 평균 비트량 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
  6. 제1항에 있어서,
    상기 (b) 단계에서 양자화 계수와 발생 비트량과의 선형관계는 하기의 수학식 15,
    [수학식 15]
    Figure 112010049917959-pat00041
    (n은 QP값 인덱스, QPbits,n는 QP값 인덱스 n에 대한 예측된 발생 비트량, α와 β는 다양한 영상의 통계 특성에 의해 결정된 상수 값)에 따라 산출되는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
  7. 제6항에 있어서,
    상기 수학식 15의 QPbits,n은 하기의 수학식 16,
    [수학식 16]
    Figure 112010049917959-pat00042
    를 이용하여 재계산되며,
    상기와 같은 QP 인덱스에 대한 예측된 발생 비트량 QPbits,(0~51)은 초기화 단계에서 한 번만 계산되며 1차원 테이블에 값을 저장되어 사용되고,
    초기화 단계 이후에 현재 프레임에 대한 QPc는 하기의 수학식 17,
    [수학식 17]
    Figure 112010049917959-pat00043
    (frameQP()는 QP 인덱스에 의한 예측 비트량 QPbits,(0~51)구간에서 해당 목표 비트량 T를 찾는 함수),를 이용하여 산출되는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
  8. 제1항에 있어서,
    상기 (c) 단계에서,
    각 유닛에 대한 목표 비트량(Tunit,i)은 하기의 수학식 18,
    [수학식 18]
    Figure 112010049917959-pat00044
    (width는 영상의 가로폭, MBn는 영상내의 총 MB 개수(MB는 프레임 내에서 처리되는 유닛의 기본 단위), i는 유닛 번호, uc는 프레임 내 유닛 개수, βi는 해당 유닛의 가중치로서 예측된 목표 비트량 대비 이전 프레임들내의 각 유닛별 평균 비트량에 의해 정해짐)을 이용하여 산출되고,
    각 유닛에 대한 양자화 계수 값(QPunit,i)은 하기의 수학식 19,
    [수학식 19]
    Figure 112010049917959-pat00045
    (unitQP()는 QP 인덱스에 의한 예측 비트량 QPunit,n(1~51) 구간에서 해당 목표 비트량 를 찾는 함수)를 이용해 산출되는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
  9. 제1항에 있어서,
    상기 (d) 단계에서,
    가상 버퍼의 점유량 Bc 및 버퍼의 넘침과 고갈을 예방하기 위한 버퍼의 상한 U(n) 및 하한 L(n)값은 하기의 수학식 20,
    [수학식 20]
    Figure 112010049917959-pat00046
    을 이용해 산출되며,
    다음에 부호화 할 P 프레임의 목표 비트량을 예측하기 위한 P 프레임의 복잡도 가중치 Wp는 하기의 수학식 21,
    [수학식 21]
    Figure 112010049917959-pat00047
    (Sbits는 이전 P 프레임의 발생 비트량 구간에서 QPp와 동일한 값을 갖는 P 프레임들의 평균 비트량, λ는 목표 비트량과 실제 발생된 비트량과의 오차를 줄이기 위한 A(n-1)와 Sbits의 가중치) 를 이용해 산출되는 것을 특징으로 하는 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법.
KR1020100074716A 2010-08-02 2010-08-02 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법 KR101168007B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100074716A KR101168007B1 (ko) 2010-08-02 2010-08-02 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100074716A KR101168007B1 (ko) 2010-08-02 2010-08-02 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법

Publications (2)

Publication Number Publication Date
KR20120012634A KR20120012634A (ko) 2012-02-10
KR101168007B1 true KR101168007B1 (ko) 2012-07-26

Family

ID=45836468

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100074716A KR101168007B1 (ko) 2010-08-02 2010-08-02 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법

Country Status (1)

Country Link
KR (1) KR101168007B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102161741B1 (ko) 2013-05-02 2020-10-06 삼성전자주식회사 HEVC(high efficiency video coding)에서 코딩 유닛에 대한 양자화 파라미터를 변화시키는 방법과 장치, 및 시스템
KR101960470B1 (ko) * 2017-02-24 2019-07-15 주식회사 칩스앤미디어 오프라인 cabac을 지원하는 비디오 코딩 프로세스의 비트 예측 기반 비트 레이트 컨트롤 방법 및 그 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100797396B1 (ko) * 2005-12-08 2008-01-28 한국전자통신연구원 매크로블록 복잡도를 이용한 트랜스코딩 비트율 제어 방법및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100797396B1 (ko) * 2005-12-08 2008-01-28 한국전자통신연구원 매크로블록 복잡도를 이용한 트랜스코딩 비트율 제어 방법및 장치

Also Published As

Publication number Publication date
KR20120012634A (ko) 2012-02-10

Similar Documents

Publication Publication Date Title
US9071840B2 (en) Encoder with adaptive rate control for H.264
US8031774B2 (en) Video encoding methods and systems with frame-layer rate control
US7403562B2 (en) Model based rate control for predictive video encoder
US8559501B2 (en) Method and apparatus for adaptively determining a bit budget for encoding video pictures
KR100484148B1 (ko) 개선된 비트율 제어 방법과 그 장치
US20070009025A1 (en) Method and apparatus for operational frame-layer rate control in video encoder
KR101060495B1 (ko) 인코딩 장치와 방법 및 그 인코딩 장치를 포함한 멀티미디어 장치
CN101287112B (zh) 一种自适应码率控制方法
Liang et al. A novel RQ model based rate control scheme in HEVC
CN100574442C (zh) 基于图像直方图的码率控制方法
KR101168007B1 (ko) 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법
KR100708182B1 (ko) 동영상 부호화기의 비트율 제어 장치 및 방법
KR100790148B1 (ko) 실시간 영상 복잡도 측정 방법
KR101069254B1 (ko) H.264를 위한 프레임 단위 비트율 제어 방법
Yin et al. A rate control scheme for H. 264 video under low bandwidth channel
Wu et al. Rate control in video coding
KR100950275B1 (ko) 모델 파라미터 기반의 비디오 인코딩 비트율 제어장치와 방법 및 이를 수록한 저장매체
Tang et al. A low delay rate control method for screen content coding
Liu et al. Adaptive MAD prediction and refined RQ model for H. 264/AVC rate control
KR100963322B1 (ko) 실시간 h.264를 위한 적응적 프레임 비트율 제어 방법
KR100336497B1 (ko) 공간예측 오차 모델을 이용한 동영상 부호화기의 율제어장치 및 방법
KR101197094B1 (ko) H.264/avc를 위한 통계 모델 기반의 비트율 제어 방법 및 장치
KR100961742B1 (ko) H.264/avc의 매크로블록 단위 비트율 제어 방법
KR100949755B1 (ko) 비디오 시퀀스의 레이트를 제어하는 방법 및 장치, 비디오부호화 장치
Sun et al. Scene adaptive parameters selection for MPEG syntax based HDTV 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: 20150609

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee