TEUS.me

 
 

역시나 만능 도구 ffmpeg

 

영상의 품질을 정량적으로 표현하는 것은 쉬운 일이 아니다.

일단, 단순하게 사진/동영상 하나를 두고 품질을 표현하는 건 불가능하다.

 

품질을 정량적으로 표현하려면 두 개의 사진/동영상을 두고 차이를 통해 이를 계산해야 한다.

이걸 표현하는 방식은 PSNR, PSNR-HVS, PSNR-HVS-M, SSIM 등등이 있는데, 역시 가장 널리 사용되는 건 PSNR.

 

그런데, PSNR은 단순히 신호 대 잡음비를 계산하기 때문에 영상 품질을 측정할 때 한계가 있다.

그래서 이를 보완하기 위해 PSNR-HVS 등의 방식이 나오기도 한 것이다.

 

이 중 SSIM구조적 유사성을 계산하는 방식이다.

이 방식은 PSNR과 아예 다른 접근방식을 사용하며, 왜곡도를 측정할 수 있다.

 

이 값들을 제대로 직접 계산하려면 복잡한 지식과 프로그래밍 스킬이 필요하다.

하지만, ffmpeg만 있으면 손쉽게 계산할 수 있다.

 

ffmpeg으로 PSNR을 계산하려면 아래와 같이 입력하면 된다.

ffmpeg -i "source.mp4" -i "target.mp4" -lavfi psnr -f null -

 

조금만 기다리면 아래와 같은 결과를 볼 수 있다.

...
frame=51951 fps=249 q=-0.0 size=N/A time=00:28:53.90 bitrate=N/A speed=8.31x    
frame=52081 fps=249 q=-0.0 size=N/A time=00:28:58.27 bitrate=N/A speed=8.31x    
frame=52214 fps=249 q=-0.0 size=N/A time=00:29:02.71 bitrate=N/A speed=8.31x    
frame=52347 fps=249 q=-0.0 size=N/A time=00:29:07.11 bitrate=N/A speed=8.31x    
[Parsed_psnr_0 @ 0000028b51beed00] PSNR y:28.103161 u:45.367030 v:44.420760 average:29.818578 min:10.195289 max:84.689399

 

두 영상을 비교했을 때 평균 PSNR이 29.818578로 계산되었다는 것을 볼 수 있다.

 

PSNR과 SSIM을 한꺼번에 보고 싶으면 아래와 같이 입력하면 된다.

ffmpeg -i "source.mp4" -i "target.mp4" -lavfi  "[0:v][1:v]ssim;[0:v][1:v]psnr" -f null -

 

역시 잠시 기다리면 아래와 같은 결과를 볼 수 있다.

...
frame=52180 fps=142 q=-0.0 q=-0.0 size=N/A time=00:29:01.56 bitrate=N/A speed=4.75x    
frame=52251 fps=142 q=-0.0 q=-0.0 size=N/A time=00:29:03.93 bitrate=N/A speed=4.75x    
frame=52324 fps=142 q=-0.0 q=-0.0 size=N/A time=00:29:06.36 bitrate=N/A speed=4.75x    
[Parsed_ssim_0 @ 000001c6b347ef00] SSIM Y:0.936938 (12.002330) U:0.986538 (18.708933) V:0.986664 (18.749720) All:0.953492 (13.324761)
[Parsed_psnr_1 @ 000001c6aa02ee80] PSNR y:28.103161 u:45.367030 v:44.420760 average:29.818578 min:10.195289 max:84.689399

 

PSNR은 역시 29.818578이고, 평균 SSIM이 0.953492로 확인되었다.

 

 

TAG : , ,

공유하기

facebook twitter kakaoTalk kakaostory naver band

본문과 관련 있는 내용으로 댓글을 남겨주시면 감사하겠습니다.

비밀글모드

loading