[IQA] 넷플릭스 영상의 품질 모니터링의 핵심 알고리즘, VIF


오늘은 VIF(visual information fidelity)라고 불리는 이미지 품질 평가(image quality assessment, IQA) 알고리즘을 소개해드리도록 하겠습니다. VIF는 SSIM과 함께 매우 유명한 IQA 알고리즘 중에 하나입니다. 특히, VIF는 넷플릭스에서 개발한 비디오 품질 평가 알고리즘인 VMAF(video multimethod assessment fusion)에서 중요한 역할을 하는 IQA 알고리즘입니다. 넷플릭스와 같이 엄청난 수익을 창출해내는 기업에서 비디오 품질의 모니터링을 위해 VIF를 채택했다는 것은 이 알고리즘이 그만큼 신뢰할 만하다는 뜻이겠죠. 

 

그럼 지금부터 VIF의 작동 원리에 대해 간략하게 설명해드리도록 하겠습니다. VIF의 original 논문은 2006년에 TIP에서 게재한 "Image Information and Visual Quality"입니다. 저자는 H.R. Sheikh와 A.C. Bovik인데, 모두 텍사스 대학의 LIVE 연구실 소속입니다. 참고로 LIVE 연구실은 IQA 분야에 있어서 가장 영향력있는 곳입니다. 

 

VIF는 원본 이미지에 존재하는 정보량과 왜곡 이미지에 존재하는 원본 이미지에 대한 정보량을 비교함으로서 품질을 평가합니다. 아래 그림을 함께 보실까요? 

 

출처: original paper

 

이 그림에서 원본 이미지, 즉 어떠한 왜곡(distoriton)도 존재하지 않는 깨끗한 이미지 신호가 C입니다. 이것이 사람시각시스템(human visual system, HVS)에 의해 인지된 신호는 E입니다. 그리고 C가 왜곡 채널에 의해 손상된 이미지 신호가 D입니다. 그것이 HVS에 의해 인지된 신호는 F가 됩니다. 

 

VIF는 C와 E간의 상호정보량(mutual information), 즉 둘이 공유하는 엔트로피를 계산합니다. 엔트로피란 평균 불확실성, 평균 정보량을 의미합니다. 또한 D와 F간의 상호정보량을 계산합니다. 그런 다음에 다음과 같이 둘의 비를 계산해줌으로써 왜곡된 이미지의 품질을 예측합니다. 

 

출처: original paper

 

이 식에서 I(C; F)와 I(C; E)가 상호정보량을 계산하는 기호입니다. 

 

우리 함께 생각해봅시다. 만약 왜곡이 적게 된 이미지라면 I(C; F)와 I(C; E)는 거의 비슷한 값을 갖겠죠? 그러면 결국 VIF는 1에 가까운 값을 갖게 될 것입니다. 만약 왜곡이 많이 된 이미지라면 I(C; F)와 I(C; E) 간 차이가 꽤 크겠죠? 결과적으로 VIF는 1에서 멀어지고 0에 가까운 값을 갖게 될 것입니다.

 

이런 식으로 VIF는 작동합니다. VIF의 핵심은 정보이론의 상호정보량을 활용한다는 점에 있습니다. 참고로 VIF의 전신은 IFC(information fidelity criterion)라는 알고리즘입니다. 도움이 되셨길 바라며 이 글을 마치도록 하겠습니다. :D 

 

 

<참고자료>

[1] https://en.wikipedia.org/wiki/Visual_Information_Fidelity, 위키피디아(영문), visual information fidelity