PSNR을 계산하는 방법

Posted on
작가: Monica Porter
창조 날짜: 22 3 월 2021
업데이트 날짜: 3 칠월 2024
Anonim
ffmpeg를 사용하여 PSNR, SIMM 및 VMAF 비디오 품질 메트릭 구현
동영상: ffmpeg를 사용하여 PSNR, SIMM 및 VMAF 비디오 품질 메트릭 구현

피크 신호 ​​대 잡음비 (PSNR)는 신호 최대 전력과 신호 잡음의 전력 간의 비율입니다. 엔지니어는 일반적으로 PSNR을 사용하여 압축 된 재구성 된 이미지의 품질을 측정합니다. 각 그림 요소 (픽셀)에는 이미지를 압축 한 다음 압축을 풀 때 변경 될 수있는 색상 값이 있습니다. 신호는 넓은 다이나믹 레인지를 가질 수 있으므로 PSNR은 일반적으로 데시벨로 표현되며 이는 로그 스케일입니다.

    벨과 데시벨을 정의하십시오. bel은 수학적으로 LB = log10 (P1 / P0)으로 정의됩니다. 여기서 P1과 P0은 동일한 측정 단위에있는 두 개의 양입니다. 데시벨은 0.1bel이므로 데시벨 값 LdB은 LdB = 10 log10 (P1 / P0)입니다.

    하나의 이미지가 다른 이미지의 근사치로 간주되는 두 단색 이미지 사이의 평균 제곱 오차 (MSE)를 정의합니다. MSE는 두 이미지의 대응하는 픽셀 사이의 픽셀 값 차이의 제곱의 평균으로 기술 될 수있다.

    단계 1의 설명으로부터 수학적으로 MSE를 표현한다. 따라서 우리는 MSE = 1 / mn을 가지며, 여기서 I 및 K는 비교되는 이미지를 나타내는 행렬이다. "i "및 "j. "치수에 대해 2 개의 합산이 수행되므로, I (i, j)는 이미지 I의 픽셀 (i, j)의 값을 나타낸다.

    이미지 I에서 픽셀의 최대 가능한 값을 결정하십시오. 일반적으로 이것은 (2 ^ n)-1로 주어질 수 있습니다. 여기서 n은 픽셀을 나타내는 비트 수입니다. 따라서 8 비트 픽셀의 최대 값은 (2 ^ 8)-1 = 255입니다. 이미지 I의 픽셀에 대한 최대 값은 MAX입니다.

    PSNR을 데시벨로 표현하십시오. 1 단계부터 LdB = 10 log10 (P1 / P0)과 같은 데시벨 값 LdB이 있습니다. 이제 P1 = MAX ^ 2 및 P0 = MSE라고합시다. 그러면 PSNR = 10 log10 (MAX ^ 2 / MSE) = 10 log10 (MAX / (MSE) ^ (1/2)) ^ 2 = 20 log10 (MAX / (MSE) ^ (1/2))입니다. 따라서 PSNR = 20 log10 (MAX / (MSE) ^ (1/2))입니다.