Rate-Perception Optimized Preprocessing for Video Coding 논문 리뷰

2023. 12. 31. 11:02·AI paper review

오늘 리뷰할 논문은 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을 통해 적용됨

RPP 적용 전(a), 후(b)

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로 적용 

RPP 모델 process

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 \(  f_i \)가 RPP model에 의해 preprocessing되어 \( f_o \)가 되고 이는 기존 codec(e.g. H.264, H.265)에 encoding 됨

RPP model framework

2.2 Adaptive Discrete Cosine Transform Loss

  • 기존 codec 대부분은 encoding과정에 DCT(Discrete Cosine Transform)을 사용
    • 2D DCT의 basis function은 Eq. (1), 2D DCT는 Eq. (2)로 수식화됨

\[
B^{i,j}_{h,w} = cos \frac{h \phi}{H} ( i+  \frac{1}{2}) + sin \frac{w \phi}{H} ( j + \frac{1}{2}) \quad \cdots Eq.(1)
\]

 

\[
F_{h,w} = \sum^{H-1}_{i=0} \sum^{W-1}_{j=0} f_{i,j} B^{i,j}_{h,w} \quad \cdots Eq. (2)
\]

\[
s.t. \quad h \in \{ 0, 1, \cdots, H-1 \}, w \in \{ 0, 1, \cdots, W-1  \}
\]

  • \( F \in \mathbb{R}^{H \times W} \)는 2D DCT frequency spectrum이며 \( f \in \mathbb{R}^{H \times W} \)는 input image임
  • 보통은 \( H \)와 \( W \)는 같은 size를 가지므로 \( N \)으로 표기

  • 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영역만을 추출하기 위해 \( I \)를 도입 
    • Zig-Zag order traversal 을 이용하여 위 그림처럼 high frequency영역만 추출

\[
F'_{h,w} = F_{h,w} \ast I_{h, w} \quad \cdots Eq. (3)
\]\[
where \quad I_{h, w}= \left\{ \begin{array}{ll} 0, & if (h+w) < S, \cr
1, & if (h+w) \geq S.
\end{array} \quad \cdots Eq .(4) \right.
\]

\[
S \in \{ 0, 1, \cdots, (H-1)(W-1) \}
\]

  • high frequency영역 중 중요하지 않는 영역을 절댓값을 취한 뒤 전체 high frequency 평균값보다 낮은 영역의 값으로 정의
    • high frequecny영역의 평균값을 threshold \(T\)로 정의

\[
T = \frac{1}{H  \cdot W} \sum^{H-1}_{h=i} \sum^{W-1}_{w=j} ( | F'_{h,w} | ) \quad \cdots Eq. (5)
\]\[
where \quad i + j \geq N
\]

  • \(T\)보다 작은 \( F'_{h,w} \) 은 high frequency 영역 중에서도 중요하지 않은 값들이므로 제거하기 위해 해당 값들을 \( F''_{hw} \)으로 정의
    • \( | F''_{h,w} | \)값들을 0으로 만들기 위해 아래와 같은 DCT loss 제안
    • 즉, 중요치 않은 high frequency영역의 값들을 0으로 만들어 encoding size를 줄여 bitrate 줄이는 목적을 달성

\[
L_{dct} = \sum^{H-1}_{h=i} \sum^{W-1}_{w=j} ( | F''_{h,w} - 0 | )  \quad \cdots Eq. (6)
\]\[
F''_{h,w} \in \{ F'_{h,w} < T \} \quad and \quad i + j \geq N
\]

 

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 방법 사용
      1. Blur: Isotropic and anisotropic Gaussian filter
      2. Noise: Gaussian and Poisson noise
      3. Upsampling and Downsampling: Area, bilinear, and bicubic operations
      4. JPEG Compression: jpeg quality를 낮게 설정 (blocking and ringing artifact 유도)

2.4 Loss Functions

  • 위에서 정의된 \( L_{dct} \)이외에 2개의 loss를 제안함
  • 1. Reconstruction loss \( L_r \)을 제안하여 RPP model로 출력된 output frame \( \hat{f} \) 가 입력 frame \( f \)의 image quality와 같아지도록 학습함

\[
L_{r} = \frac{1}{HW} \sum^{H-1}_{i=0} \sum^{W-1}_{j=0}  | f^{GT}_{i,j} -   \hat{f}_{i,j} |   \quad \cdots Eq. (7)
\]

  • \( f^{GT} \)는 Ground Truth(GT)인 \(f \)을 shapren processing한 것
    • Sharpen은 이미지의 (high frequency영역의) contrast나 edge성분을 더 돋보여주게 함
    • Contrast나 edge성분은 인간의 인지 시스템과 high correlation을 가지므로 GT에 sharpen을 사용함
  • 2. Perceptual loss \( L_p \)을 제안하여 reconstruction loss와 같은 목표를 가짐
    • MS-SSIM metric을 이용하여 원본 image의 high frequency영역의 structural information과 contrast가 잘 보존되도록 함

\[
L_{p} = 1 - L_{ms-ssim} (f^{GT}_{i,j},  \hat{f}_{i,j} )  \quad \cdots Eq. (8)
\]

 

  • 결론적으로, 모든 loss를 종합하면 아래와 같음

\[
L_{all} = \lambda_1 L_{dct} + \lambda_2 L_{p} +  L_{r}  \quad \cdots Eq. (9)
\]

 

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 사용
    1. warm-up stage
      • \(L_r\) loss만 사용
      • initial lr: 1e-3
      • 600k iterations training
    2. Main stage
      • \( L_{all} \) loss 사용 ( \( \lambda_1 \): 10, \( \lambda_2 \): 0.1 )
      • initial lr: 1e-4
      • 700k iterations training
  • Batch size: 32
  • Image resolution: 128x128
  • N (DCT loss계산시의 block size): 8 or 16
  • Adam optimizer (\( \beta_1 \): 0.9, \( \beta_2 \): 0.999)
  • Inference 시에는 RPP output image의 intensity를 조절하기 위해 hyperparameter \( \alpha \)을 사용
    • \(f_p =  \alpha  f_o + (1 -  \alpha ) f_i \)로 최종 성능을 표기한다는 뜻...
      • \( f_o \)는 RPP model의 output frame이고 \( f_i \) 는 input frame
      • 모든 test dataset에 똑같은 \( \alpha \)사용하는것이 아니고 dataset마다 다른 값을 사용..
      • HEVC and MCL-JCV datasets에는 \( \alpha \) = 0.5, UVG dataset에는 \( \alpha \)= 1 사용
      • 꼼수라고 보면 됨...
  • 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
'AI paper review' 카테고리의 다른 글
  • LoRA: Low-Rank Adaptation of Large Language Models 논문 리뷰
  • Segment Anything 논문 리뷰
  • GPT-1: Improving Language Understanding by Generative Pre-Training 논문 리뷰
  • The Forward-Forward Algorithm: Some Preliminary Investigations 논문 리뷰
Sin-Han Kang
Sin-Han Kang
Explainable AI (XAI), Model Compression, Image and Video Encoding and NAS
    250x250
  • Sin-Han Kang
    da2so
    Sin-Han Kang
  • 전체
    오늘
    어제
    • 분류 전체보기 (78)
      • AI Engineering (40)
        • TensorFlow (10)
        • PyTorch (6)
        • MLOps (15)
        • NVIDIA (5)
        • OpenVINO (3)
      • AI paper review (6)
        • Explainable AI (5)
        • Model Compression (10)
        • Mobile-friendly (7)
      • Computer Science (6)
      • 일상 (4)
  • 블로그 메뉴

    • Home
    • About me
    • Guest book
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    object detection
    style transfer
    Mediapipe
    Model Compression
    docker
    kubernetes
    Python
    TFLite
    OpenVINO
    Airflow
    Explainable AI
    TensorFlow.js
    pytorch
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Sin-Han Kang
Rate-Perception Optimized Preprocessing for Video Coding 논문 리뷰
상단으로

티스토리툴바