오늘 리뷰할 논문은 Rate-Perception Optimized Preprocessing for Video Coding으로 Bilibili 에서 나온 논문입니다. Bilibili는 동영상 플랫폼 회사로 유사한 회사로 유튜브가 있습니다.
논문 내용을 요약하면 다음과 같습니다.
- Video의 각 frame(image)에 대해 preprocessing을 적용하여 image quality는 그대로 유지하되 image size를 최대한 줄여서 최종적으로 video size를 줄이는 것을 목적
- Preprocessing은 Rate-Perception Optimized Preprocessing (RPP) model을 통해 적용됨

1. Introduction
- HD 비디오는 고객 전체 internet traffic 중 80%이상을 차지할 정도로 엄청나게 큰 bandwidth를 사용함
- 그래서, traditional codec(e.g. H.264, H.265, H.266, AV1)은 efficient video compression system을 만들려고 노력해 옴
- 기존 codec들은 대부분 handcrafted modules (e.g. DCT, intra/inter prediction, block partition)로 이루어져 있음
- 더 효과적인 compression을 위해 codec의 encoder, decoder를 DL model로 대체하는 방식이 최근에 연구됨
- DL model을 사용하기 때문에 image quality나 encoding size면에서는 기존 codec들보다 성능은 우수하지만 inference cost가 너무 큼
- 심지어, decoder side에서 보면 모든 고객의 핸드폰이나 컴퓨터에 해당 model이 deploy되어야 하기 때문에 model이 클 경우 사용 불가함
- 그래서, 해당 논문은 Rate-Perception optimized Preprocessor (RPP) model을 사용하여 image frame의 image quality는 그대로 유지하되 encoding size를 최소화시키는 것을 목적함
- 기존의 codec의 encoder을 사용하기 전에 각 image frame에 preprocessing을 적용하여 새로운 image frame을 생성
- 기존 codec의 decoder를 그대로 사용하므로 DL model의 decoder와 다르게 inference cost가 상대적으로 매우 낮음
- Bitrate compression은 Discrete Cosine Transform (DCT) loss를 통해 적용
- Image quality 보존은 MS-SSIM loss을 이용한 perceptual loss, 원본 frame과 생성된 frame간의 MSE loss을 적용한 reconstruction loss로 적용

2. Method
2.1 Overview
- RPP model의 목적은 preprocessed input frame을 제공하는 것이며 preprocessing을 통해 bitrate 감소, 동일한 image quality를 유지시킴
- Bitrate를 감소시키기 위해 adaptive DCT Loss 제안
- Spatial redundancy를 감소시키고 high frequency 영역 중 중요한 부분만 남도록 학습
- 원본 input frame과 동일한 quality를 유지하기 위해서 IQA model인 MS-SSIM을 이용한 perceptual loss제안
- 원본 input frame에 대해 high-order degradation을 training input data로 사용함으로써 real world image랑 비슷하게 만들고 모델의 perceptual quality를 향상시키도록 함
- Lightweight CNN model로 RPP model을 구성하여 효율성을 극대화
- Deployment 시에는 input frame
가 RPP model에 의해 preprocessing되어 가 되고 이는 기존 codec(e.g. H.264, H.265)에 encoding 됨

2.2 Adaptive Discrete Cosine Transform Loss
- 기존 codec 대부분은 encoding과정에 DCT(Discrete Cosine Transform)을 사용
- 2D DCT의 basis function은 Eq. (1), 2D DCT는 Eq. (2)로 수식화됨
는 2D DCT frequency spectrum이며 는 input image임- 보통은
와 는 같은 size를 가지므로 으로 표기
- Input image를 2D DCT을 거치고 나면 frequency domain으로 변환됨
- 2D DCT의 왼쪽 위부분이 low frequecny영역이고 오른쪽 밑부분이 high frequency 영역
- 이미지를 구성하는 대부분 중요한 energy는 low freqeucny 영역에 포함되어 있음

- High frequency영역의 (coefficient) 값은 이미지를 구성하는 데 상대적으로 덜 중요한 역할을 하기 때문에 본 논문에서는 high frequecny 영역 중 중요하지 않은 영역의 값을 제거하도록 RPP model을 학습
- 중요하지 않는 영역을 전체 high frequency평균값보다 낮은 영역의 값으로 정의함
- 위의 내용을 수식화 하기위해 먼저 2D DCT에서 high frequency영역만을 추출하기 위해
를 도입- Zig-Zag order traversal 을 이용하여 위 그림처럼 high frequency영역만 추출
- high frequency영역 중 중요하지 않는 영역을 절댓값을 취한 뒤 전체 high frequency 평균값보다 낮은 영역의 값으로 정의
- high frequecny영역의 평균값을 threshold
로 정의
- high frequecny영역의 평균값을 threshold
보다 작은 \( | F'_{h,w} | \)은 high frequency 영역 중에서도 중요하지 않은 값들이므로 제거하기 위해 해당 값들을 \( F''_{h,w} \) 으로 정의- | F''_{h,w} | 값들을 0으로 만들기 위해 아래와 같은 DCT loss 제안
- 즉, 중요치 않은 high frequency영역의 값들을 0으로 만들어 encoding size를 줄여 bitrate 줄이는 목적을 달성
2.3 Network and Image Degradation
- Network는 light-weight architecture로 구성함
- Channel attention module로 SE block을 사용
- Efficient sub-pixel convolution(torch.nn.PixelUnshuffle)를 사용
- RPP model로부터 image quality가 높아진 image가 출력되도록 학습하기 위해 일부러 원본 image를 degradation하여 RPP model 입력으로 사용함
- 4 가지의 image degradation 방법 사용
- Blur: Isotropic and anisotropic Gaussian filter
- Noise: Gaussian and Poisson noise
- Upsampling and Downsampling: Area, bilinear, and bicubic operations
- JPEG Compression: jpeg quality를 낮게 설정 (blocking and ringing artifact 유도)
- 4 가지의 image degradation 방법 사용
2.4 Loss Functions
- 위에서 정의된
이외에 2개의 loss를 제안함 - 1. Reconstruction loss
을 제안하여 RPP model로 출력된 output frame 가 입력 frame 의 image quality와 같아지도록 학습함
는 Ground Truth(GT)인 을 shapren processing한 것- Sharpen은 이미지의 (high frequency영역의) contrast나 edge성분을 더 돋보여주게 함
- Contrast나 edge성분은 인간의 인지 시스템과 high correlation을 가지므로 GT에 sharpen을 사용함
- 2. Perceptual loss
을 제안하여 reconstruction loss와 같은 목표를 가짐- MS-SSIM metric을 이용하여 원본 image의 high frequency영역의 structural information과 contrast가 잘 보존되도록 함
- 결론적으로, 모든 loss를 종합하면 아래와 같음
3. Experiment
3.1 Experiment Setup
3.1.1 Datasets
- Training으로 DIV2K and Flickr2K datasets을 사용
- DIV2K는 2k resolution image로 구성, 데이터 수는 1,000
- Flickr2K는 2k resolution image로 구성, 데이터 수는 2,650
- Testing으로 UVG, HEVC Standard 1080p Test Sequences, and MCL-JCV datasets을 사용
- 해당 dataset들은 video compression algorithm을 평가하기 위해 널리 사용됨
3.1.2 Implementation Detatails
- RPP model을 학습하기 위해 two stages training 사용
- warm-up stage
loss만 사용- initial lr: 1e-3
- 600k iterations training
- Main stage
loss 사용 ( : 10, : 0.1 )- initial lr: 1e-4
- 700k iterations training
- warm-up stage
- Batch size: 32
- Image resolution: 128x128
- N (DCT loss계산시의 block size): 8 or 16
- Adam optimizer (
: 0.9, : 0.999) - Inference 시에는 RPP output image의 intensity를 조절하기 위해 hyperparameter
을 사용- \(f_p = \alpha f_o + (1 - \alpha ) f_i \)로 최종 성능을 표기한다는 뜻...
는 RPP model의 output frame이고 는 input frame- 모든 test dataset에 똑같은
사용하는것이 아니고 dataset마다 다른 값을 사용.. - HEVC and MCL-JCV datasets에는
= 0.5, UVG dataset에는 = 1 사용 - 꼼수라고 보면 됨...
- \(f_p = \alpha f_o + (1 - \alpha ) f_i \)로 최종 성능을 표기한다는 뜻...
- RPP model을 TensorRT로 변환하여 속도 측정시 single RTX3090로 1080p 동영상에 대해 87.7FPS 성능
3.2 Experiment Results
- 기존 codec(e.g. H.264, H.265)에 RPP model적용 시 아래와 같이 BD rate 성능 향상

- 같은 VMAF, MS-SSIM값 기준으로 3 datsets에 대해 아래와 같은 BD rate saving

반응형
'AI paper review' 카테고리의 다른 글
LoRA: Low-Rank Adaptation of Large Language Models 논문 리뷰 (0) | 2023.05.16 |
---|---|
Segment Anything 논문 리뷰 (0) | 2023.04.07 |
GPT-1: Improving Language Understanding by Generative Pre-Training 논문 리뷰 (0) | 2023.02.13 |
The Forward-Forward Algorithm: Some Preliminary Investigations 논문 리뷰 (0) | 2023.01.28 |
EfficientDet Scalable and Efficient Object Detection (0) | 2022.03.11 |