학습 기반 이미지 압축 논문을 읽다보면 "제안 방법론이 VVC (VTM)에 비해 BD-Rate가 몇 퍼센트 더 낮다" 이런 문장이 자주 보일 것이다.
아래 표에서도 'BD-Rate over VTM-17.0'로 모델의 성능을 평가했다.
여기서 말하는 BD-Rate란 무엇인지 정리해보려합니다.
BD-Rate (Bjøntegaard Delta Rate)는 이미지 또는 비디오 압축 방법론의 성능을 비교하기 위해 널리 사용되는 척도이다. BD-Rate는 두 압축 방법 간에 비트레이트와 품질(PSNR 또는 MS-SSIM 등) 간의 관계를 정량화하여 제안 모델이 특정 모델에 비해 평균적으로 얼마나 더 효율적인지(또는 비효율적인지)를 계산한다.
BD-Rate는 압축 성능의 상대적인 개선 또는 손실을 % 단위로 표현한다.
그렇다면 어떻게 계산되는걸까?
우선 BD-Rate는 RD-Curve(Rate-Distortion Curve)의 면적 차이를 기반으로 두 압축 알고리즘 간의 성능 차이를 계산한다.
여기서 Rate는 Bit-rate를 의미하며 이미지/비디오 압축 시의 BPP(Bit per pixel)이다.
Distortion은 압축된 이미지/비디오 품질을 나타내는 척도. 주로 PSNR(dB)이나 MS-SSIM 같은 값으로 측정한다.
MS-SSIM은 보통 아래 수식을 통해 dB로 변환되어 나타낸다.
BD-Rate는 두 압축 방법에 대한 Rate-Distortion Curve의 적분값을 통해 비교하여, 평균적으로 두 알고리즘 간의 비트레이트 차이를 계산한다.
변환되는 이유는 모델별 값의 차이를 로그 스케일(dB)로 표현하여 더 큰 값 강조에 용이하기 때문이다.
MLIC++와 GMM+Attention을 예시로 하면 붉은색 선으로 공통 영역이 결정된다.
저 영역을 적분해서 면적을 계산하면 BD-Rate가 도출된다.
Bit-Rate와 PSNR을 예시로 수식을 정리하면 아래와 같다.
Bit-Rate와 PSNR간의 관계를 3차 다항식으로 나타낸다.
코드는 np.polyfit
을 사용하면 간단하게 사용할 수 있다.
3차 다항식을 p_1
, p_2
라고 나타내면 아래와 같이 정의된다
두 방법론의 공통 상한, 하한 값을 위 수식으로 도출한다.
이제 적분 값의 차이를 상한과 하한의 차이 값으로 나눠준다.
이 값을 BD-Rate로 변환하기 위해서는 이전에 bit-rate에서 로그스케일링을 해줬기 때문에 exp를 통해 원래 스케일로 돌려주면된다
이 때 BD-Rate가 양수(%)면 압축 효율이 더 나쁜 것이고, 음수(%)라면 압축 효율이 더 좋은 것을 의미한다.
수식&코드참조
- https://github.com/Anserw/Bjontegaard_metric
- G. Bjontegaard, Calculation of average PSNR differences between RD-curves (VCEG-M33)
- 부가정보 : GPT-4o