상기 목적을 달성하기 위한 본 발명에 따른 비디오 코덱의 양자화 파라미터 결정방법은,
타겟 데이터에 대한 분포 특성을 나타내는 모델 파라미터를 결정하는 단계; 상기 결정된 모델 파라미터 값에 따라 이전 부호화 정보들을 이용하여 현재 부호화될 데이터의 통계적 특성을 예측하고 비트율-왜곡 모델을 구성하는 단계; 상기 상기 구성된 모델에 기반하여 양자화 파라미터 값을 결정하는 단계; 를 포함하여 이루어지는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위한 본 발명에 따른 비디오 코덱의 양자화 파라미터 결정방법은, 타겟 데이터에 대한 분포 특성을 나타내는 모델 파라미터를 결정하기 위한 데이터 분포를 해석하는 단계; 상기 해석 결과를 이용하여 양자화 모델을 설정하는 단계; 상기 설정된 양자화 모델을 기반으로 목표 비트 수를 결정하는 단계; 상기 양자화 모델과 목표 비트수를 토대로 양자화 파라미터를 산출하여 결정하는 단계; 및, 다음 양자화 파라미터 결정시에 사용하기 위한 정보를 업데이트하는 단계; 를 포함하여 이루어지는 것을 특징으로 한다.
본 발명의 실시예에서는 양자화가 되기 위한 데이터의 특성을 일반화된 가우시안 분포 모델에 기반하여 해당 매크로블록의 양자화 파라미터를 결정하기 위한 모델을 설계한다.
일반화된 가우시안 분포 모델은 모델 파라미터 값에 따라 라플라시안, 가우 시안, 균등 분포등과 같이 다양한 분포들을 표현할 수 있다. 본 방법에서는 일반화된 가우시안 분포의 모델로부터 비트율-왜곡 모델을 얻은 후에 적절한 모델 파라미터를 설정하여 최종 적인 양자화 모델을 설계한다. 이는 각각의 양자화 파라미터가 얻어지는 기본 단위에 대해 수행된다.
이를 위해 전체적인 시스템은 부호화기에서 구현되고, 모델 파라미터를 결정하기 위한 데이터 분포 해석부, 양자화 모델 설계부, 목표 비트 수 결정부, 양자화 파라미터 결정부, 다음 양자화 파라미터 결정시에 사용하기 위한 정보 갱신부분으로 구성된다.
본 발명의 실시예로서, 제안된 적응적 모델에 기반한 H.264 비디오 비트율 제어를 위한 양자화 파라미터 결정 방법이 적용되는 부호화 시스템의 구성은 도1에 나타낸 바와 같다.
도1에 나타낸 바와 같이 본 발명에 따른 부호화기 시스템은, 입력 디지털 영상신호를 DCT(Discrete Cosine Transform) 처리하는 DCT부(10), 상기 DCT 변환 계수를 양자화하는 양자화부(20), 상기 양자화부에서 출력된 양자화 데이터를 역양자화 및 역DCT 변환하는 역양자화/역DCT부(40), 상기 역양자화/역DCT부의 출력으로부터 움직임 보상을 수행하는 움직임 보상부(50), 입력되는 현재 프레임의 영상 데이터와 이전 프레임의 영상 데이터를 이용해서 움직임 벡터(MV)를 산출하는 움직임 추정부(60), 상기 양자화된 데이터와 움직임 벡터를 가변 길이 부호화하여 출력하는 부호화 출력부-VLC부(30)를 포함하며, 적응적 모델에 기반하여 양자화 파라미터(QP)를 결정하기 위한 QP제어부(70)를 포함하고 있다.
상기 QP제어부(70)는 모델 파라미터를 결정하기 위한 모델 파라미터 결정부(71), 표준편차 예측부(72), 양자화 파라미터(QP) 결정부, 업데이트부(74)를 포함한다.
DCT(Discrete Cosine Transform)부(10)는 블록 단위로 입력된 디지털 영상신호에 대해 DCT변환을 수행하고, 양자화부(Quantizer)(20)는 상기 DCT부에서 얻어진 DCT 계수에 대해 양자화를 수행하여 몇 개의 대표값으로 표현함으로써 고효율 압축을 수행한다.
역양자화/역DCT부(DQuant/IDCT)(40)는 상기 양자화부에서 출력된 양자화 데이터를 역양자화하고, 역양자화된 데이터에 대해 역 이산 코사인 변환(Inverse DCT)을 수행한다. 움직임 추정 및 보상부(Motion Estimation & Compensation: ME & MC)(60)(50)는 입력되는 현재 프레임의 영상 데이터와 이전 프레임의 영상 데이터를 이용하여 움직임 추정과 보상을 수행하고 움직임 정보(Motion Data: MV)를 출력해 준다. VLC부(30)는 상기 양자화부에서 양자화된 출력 데이터와 상기 움직임 벡터(MV)를 입력받아 이를 가변 길이 부호화(Variable Length Coding: VLC)하여 출력한다.
이 때, QP제어부(70)에 의해서 양자화부(20)의 양자화 파라미터 값이 조절되며, 이는 후에 상세히 설명될 것이다.
도1에서 보는 바와 같이 부호화기는 크게 3가지의 출력 비트스트림을 생성한다. 부호화기의 제어를 위한 데이터(Control Data)와, 실제 압축된 정보들을 나타내는 계수 값들의 비트열(Coefficient), 그리고 움직임 예측의 복원을 위한 움직임 정보들(Motion Data)이 있다. 계수 값들의 비트열은 이산 코사인 변환(Discrete Cosine Transform)과 양자화(Quantization)과정을 거쳐 가변길이 부호화를 통해 생성된다. 이 때, 양자화 과정을 위해서 사용되는 양자화 파라미터는 제어 데이터(Control Data)를 생성하는 본 발명이 제안하는 방법-QP제어부(70)를 통해서 결정된다.
도1에서와 같이, 실제 변환 및 양자화가 수행되기 위한 데이터-영상 프레임에 대해 그 분포 특성을 나타내기 위한 모델 파라미터를 모델 파라미터 결정부(Model Parameter Decision)(71)에서 결정한다. 그리고 이전의 부호화 정보들을 이용하여 현재 부호화될 매크로블록의 데이터의 통계적 특성을 편차 예측부(72)에서 예측한다. 이는 H.264 부호화기가 갖는 구조적인 문제를 해결하기 위해 예측을 통해 그 통계적 특성을 얻는다. 얻어진 정보들로부터 설계된 비트율-왜곡 모델에 의해 양자화 파라미터를 QP 결정부(73)에서 계산하고, 이를 이용하여 양자화부(20)의 양자화 파라미터 값을 조절하며 VLC부(30)에 제어 데이터를 넘겨서 부호화 과정을 수행하도록 한다. 부호화가 수행된 뒤에는 업데이트부(Updata Information)(74)를 통하여 부호화 정보들을 갱신하고 그 것을 피드백 정보로서 다음 매크로블록의 양자화 파라미터를 결정하는데 사용하도록 모델 파라미터 결정부(71)로 전달해 준다.
도2는 지금까지 설명한, 본 발명에 따른 부호화 시스템의 흐름을 보여준다.
제 1 단계(S211)는 프레임 영상을 읽어들이는 단계이다. 제 2 단계(S212)는 입력된 프레임 영상의 인코딩을 수행하는 과정을 포괄하여 표현한 것이다. 제 3 단계(S213)는 입력 프레임의 매크로 블록(MB)을 읽어들이는 단계이고, 다음의 제 4 단계(S214)는 모델 파라미터를 결정하는 단계로서, 실제 변환 및 양자화가 수행되기 위한 데이터(MB)에 대해 그 분포특성을 나타내기 위한 모델 파라미터의 결정 단계이다. 모델 분포의 결정방법에 대해서는 후에 도4를 참조하여 상세히 설명될 것이다.
다음의 제 5 단계(S215)는 표준편차(σ)를 예측하는 단계로서, 현재 프레임의 해당 매크로 블록(MB)의 표준 편차, 이전 프레임의 해당 매크로 블록의 표준 편차, 현재 프레임에 대한 기준 표준 편차 등의 정보를 예측하는 단계이며, 이와 같은 표준 편차의 예측방법에 대해서는 후에 도5를 참조하여 상세히 설명될 것이다.
다음의 제 6 단계(S216)는 양자화 파라미터(QP)를 계산하는 단계로서, 여기서 계산된 양자화 파라미터(QP) 값을 토대로 해당 매크로 블록(MB)에 대한 인코딩이 이루어지게된다(S217). 제 7 단계(S217)에서 매크로 블록 인코딩이 이루어진 후에는 다음의 제 8 단계(S218)에서 표현된 바와 같이 코딩정보를 업데이트하여 피드백 정보로서 다음 매크로 블록의 양자화 파라미터를 결정하는데 사용하고, 다음의 제 9 단계(S219)에서 마지막 매크로 블록(MB)인가를 판단한다.
제 9 단계(S219)에서 인코딩할 매크로 블록이 남아있으면 제 3 단계(S213)로부터 반복 실행하고, 그렇지 않은 경우에는 제 10 단계(S220)로 이행하여 정보의 업데이트 후, 제 11 단계(S221)로 이행하여 마지막 프레임인지를 판별한다. 여기서 마지막 프레임이 아닌 경우에는 제 1 단계(S211)로부터 반복실행하고, 마지막 프레임이면 종료한다.
도3은 양자화 파라미터를 결정하는 흐름도를 보여주고 있다. 모델 파라미터 (Model Parameter), 왜곡 파라미터(Distortion Parameter), 프레임율(Frame Rate), 잔류MBs(Remaining MBs), 표준편차(Standard deviation) 등을 통해서 얻어진 값들을 이용하여 일반화된 가우시안 비트율-왜곡 모델에 기반하여 부호화가 수행될 데이터들에 대한 적합 모델로 적용하고 이로부터 양자화 파라미터를 결정하고 이를 양자화 부분에서 사용하여 부호화를 수행함을 보여주고 있다. 이 때, 프레임 수준의 비트 수 할당은 H.263 부호화 표준의 방법을 기반으로 하여 적용하였다.
제 1 단계(S311)는 모델 파라미터와 왜곡 파라미터를 고려하여 양자화 모델을 설정하는 단계를 보여주고 있으며, 제 2 단계(S312)는 프레임율과 잔류MBs를 이용해서 타겟 매크로 블록의 부호화율을 계산하는 단계이고, 제 3 단계(S313)는 표준편차를 입력으로 하여 양자화 파라미터(QP)를 계산하여 출력해 주는 단계를 보여주고 있다.
상기 모델 파라미터값-데이터 분포모델은 도4에 나타낸 바와 같은 흐름으로 결정되며, 상기 표준편차는 도5에 나타낸 바와 같은 흐름으로 예측된다.
도4는 제안된 데이터 분포 모델 결정의 흐름도를 보인다.
제 1 단계(S411)는 부호화될 매크로 블록에 대한 차분 데이터 Diff를 구하는 단계이다. 즉, 현재 프레임의 양자화(부호화)될 매크로 블록 MBc, 이전 프레임의 복원된 매크로 블록 BMp 간의 차, Diff(MBc,MBp)를 구하는 것이다.
제 2 단계(S412)는 상기 차분 데이터 Diff를 이용해서 시간 상관비(TCR: Temporal Correlation Ratio)를 계산하는 단계이다. 여기서 구한 TCR-차분 데이터 샘플을 기준치와 비교한 결과에 따라 모델 파라미터값(MP)을 결정한다.
제 3 단계(S413)는 TCR을 제 1 임계치(THR1)와 비교하는 단계로서, TCR이 THR1 보다 큰 경우에는 데이터 분포 모델을 라플라시안 분포 모델로 정의한다(MP = 1).
제 4 단계(S414)는 TCR을 제 2 임계치(THR2)와 비교하는 단계로서, TCR이 THR1 보다 작고 THR2 보다 작은 경우에는 데이터 분포 모델을 가우시안 분포 모델로 정의하고(MP = 2), TCR이 THR1 보다 작고 THR2 보다 큰 경우에는 데이터 분포 모델을 가우시안-라플라시안 중간 모델로 정의한다(MP = K, 1 < K < 2).
앞서 설명한 바와 같이, 데이터 분포 모델은 부호화될 매크로 블록에 대한 차분 데이터 샘플들에 대해 기준 값보다 작은 값들의 비율이 제 1 임계치 THR1보다 큰 경우, 모델 파라미터 값 MP = 1로 설정한다. 이는 해당 분포가 라플라시안 분포로서 정의됨을 나타내고, 이전 프레임과 현재 프레임간 대응하는 매크로 블록의 데이터들이 매우 유사함을 위미한다. 그리고 제 2 임계치 THR2보다 작은 경우들에 대해서는 모델 파라미터 값 MP = 2로 설정하여 가우시안 분포로 정의한다. 그 외의 경우들에 대해서는 모델 파라미터 값 MP = K (1 < K < 2)로 설정하여 라플라시안과 가우시안 분포의 중간 형태의 분포로서 모델 파라미터 값을 결정한다[MP = K(no constant)].
본 발명에서 그 다음 단계로 제안된 표준편차 예측 흐름도를 도5에 나타내었다. H.264는 비트율-왜곡 최적화 기법을 사용하는데, 이 때, 최적화 파라미터인 라그랑지안 멀티플라이어(Lagrangian multiplier)를 계산하기 위해서는 양자화 파라 미터 값을 먼저 계산하여야 하는 선행문제가 발생한다. 제안한 방법은 데이터의 분포 특성을 모델링에 기반한 방법이기 때문에 실제 데이터에 대한 표준 편차를 예측하여야 한다.
이 때, 얻고자 하는 통계적 특성은 화면 내 상관관계인 공간 상관관계(spatial correlation)보다는 이전 프레임이나 혹은 참조 프레임과의 상관관계인 시간 상관관계(temporal correlation)에 보다 높은 유사성을 보인다. 따라서 이미 부호화된 같은 프레임내의 인접 매크로 블록들의 통계적 수치(spatial correlation을 고려)에 기반한 기준 값을 계산하고, 이를 현재 타겟 매크로 블록과 같은 위치에 있는 참조 프레임의 매크로 블록에 대한 통계적 수치인 표준편차 값을 비교하여 예측된 현재 매크로 블록의 값을 구한다.
이를 도5를 참조하여 좀 더 상세하게 살펴본다.
제 1 단계(S511)는 이전 프레임의 해당 매크로 블록에 대한 표준편차(σp)를 구하는 단계이다. 제 2 단계(S512)는 현재 프레임에 대한 기준 표준편차(σsc)를 구하는 단계이다.
다음의 제 3 단계(S513) 및 제 4 단계(S514)는 상기 기준 표준편차(σsc)를 이전 프레임의 해당 매크로 블록에 대한 표준편차와 비교하는 단계로서, σsc > αu ×σp 이면 σc = αu × σp로 현재 프레임의 해당 매크로 블록에 대한 표준편차를 예측하고, σsc < αb ×σp 이면 σc = αb × σp로 현재 프레임의 해당 매크로 블록에 대한 표준편차를 예측하고, σsc > αu ×σp 이고 σsc > αb ×σp 이면 σc = σp로 현재 프레임의 해당 매크로 블록에 대한 표준편차를 예측한다. 여기서, αu와 αb는 이전 프레임의 해당 매크로 블록의 표준편차(σp)를 현재 프레임에 대한 기준 표준 편차(σsc)와 비교할 때 그 반영 정도를 나타내는 상수값들이다.
이와 같이 예측된 현재 프레임의 해당 매크로 블록에 대한 표준편차는 상기 도3에서 설명한 바와 같이 양자화 파라미터(QP)를 결정하는데 사용된다.