신경망 기반 비디오 압축 기술 (NNVC)

·2024년 2월 22일
0

비디오 부호화

목록 보기
13/13

NNVC (Neural Network based Video Coding)

  • 기존의 비디오 인코딩 방식은 주로 휴리스틱한 방법을 사용하여 움직임 예측, 변환, 양자화 등을 수행했다
  • NNVC는 이러한 과정을 신경망을 통해 학습하며, 이를 통해 보다 효율적으로 비디오를 압축할 수 있다
  • 기존 신호처리 기반 코딩은 gain을 만드는 데 한계가 있어 신경망 기반 코딩의 필요성이 증가하였다

NNVC Technology area

NN based coding tool

  • 현재 있는 하이브리드 방식의 프레임워크를 재활용하면서 NN를 접목시켜 활용한다

Filtering tools

  • VVC의 필터
    • Deblocking filter (DF)
    • Sample adaptive offset (SAO)
    • Adaptive loop filter (ALF)
    • Luma mapping with chroma scaling (LMCS)
  • 위 필터들을 대체하여 NN을 사용하거나 섞어서 사용한다
  • 기존의 프레임워크를 많이 변경하지 않아도 되기에 NN으로 개발되고 있다

Intra Prediction

  • 예측된 이미지를 NN에 통과시켜 원본 이미지와 비슷하게 만든다
  • 예측된 이미지를 입력으로 train 시킬 수 있고, 주변 픽셀(L-shape 템플릿)을 활용하여 train 시킬 수도 있다

Inter Prediction

  • 예측 이미지 또는 주변 픽셀을 train 시켜서 성능을 향상시킬 수 있다
  • Interpolation을 수행할 시 훈련된 NN을 이용하여 보간 작업을 수행할 수도 있다
  • 현재 time_t에 해당하는 가상의 프레임을 잘 생성하여 coding gain을 높일 수 있다
    • 현재 프레임과 이미 부호화된 프레임들을 NN을 활용하여 합성하고 버퍼에 저장시켜 inter prediction을 수행할 수 있다

NN based super-resolution

  • Down/Up sampling 시 NN기반의 SR을 활용한다
  • Reference Picture Resampling (RPR) 기반 down-sampling
    • Sequence-level down sampling
    • GOP-level adaptive down sampling
    • Fractional-pel based down sampling
  • NN based up-sampling (SR technology)

End-to-End based NN video coding

  • 기존의 프레임워크를 활용하지 않고 모든 모듈과 함수들을 NN로 만든 뒤 Video Coding을 수행한다
  • 기존 전통 비디오 압축 프레임워크와 구조가 상당히 유사하다

이미지 삽입 p13

NNVC algorithm sudy setps

  • Proposal to JVET
    • NN기반 소프트웨어를 만들고 실험하여 기고서를 만든다
    • 기고서를 제출하고 평가한다
    • 가치가 있고 훌륭한 툴인지 판단한다
  • Study in Exploration Experiment EE1
    • 기존 NCS에 어울리는지 분석한다
    • 제한된 기술을 여러 측면에서 분석한다
    • 다른 툴과의 연계성을 파악한다
  • Study in Exploration Experiment EE1
    • SA이 16 bits 라이브러리를 활용하여 inteager로 만들어 C++에서도 동작하게 만든다
    • Training cross-check을 한다
  • Adoption to NNVC common SW base
    • NCS에 넣어서 다른 툴과의 상호작용을 확인한다
    • ON/OFF의 default 값을 정한다

SADL (Small Adhoc Deep-Learning Library)

  • 보통 coding tool은 C++로 되어있다. 하지만 NN은 tensorflow 혹은 pytorch를 사용한다
  • NN 모델을 coding tool로 얹어서 사용하기 위해서 제공하는 Library이다

NCS (Neural Compression Software)

Common Test Conditions

Neural network-based intra prediction mode

  • Low-complexity version of the neural network-based intra prediction mode
  • 예측 블록을 잘 만들어내기 위해서 주변 context를 입력으로 활용한다
  • group index가 2개 생성된다
    • 어떤 것이 transform할 때 더 잘 동작할지를 알려주는 기능이다

NN-based super resolution

GOP Level Adaptive Resampling with CNN-based Super Resolution

  • GOP Level을 기준으로 적응적이게 Resampling 하는 것이다
  • Preprocessing에서 GOP 단위로 1배, 2배로 resampling한다
    • GOP : 연속적인 프레임의 그룹
  • GOP Level을 RA와 AI 알고리즘으로 결정한다

이미지 삽입 p24

CNN-based super-resolution

  • Postprocessing에서 사용한다
  • Luma와 Chroma의 밸런스가 깨지는 현상이 발생한다
  • 하지만 현재는 NCS에 들어가있는 super-resolution의 경우 luma와 chroma 모두 gain이 생긴다

이미지 삽입 p25

Content-adaptive post-filter

  • Overfitting을 활용하는 방법을 사용한다
  • Candidate Filter로 무엇이 현재 어던 content가 좋은지를 선정하고 인코딩 하기 위해 선정 되어있는 QP와 시퀀스에 맞게 Overfitting한다
  • Overfitting하여 M 파라미터를 업데이트 시킨다

이미지 삽입 p26

HOP (Unified filter design for High Operation point)

  • NCS NN-basedloopfilter set0와 set1이 매우 유사하다
    • NN Structure
      • Order of layers
      • Number of channels for each layer
      • Extra inputs (prediction, QP, …)
    • NN tool usage aspect
      • On/off, QP adaptation, blending, …
  • 유사한 부분이 많기 때문에 하나로 합치자는 의견으로 만들어 졌다
  • 3 Stage로 training이 진행된다

Unified filter design for Low-complexity operating point (LOP)

JVET - AD0156

이미지 삽입 p36

  • 3x3 Conv를 사용하여 Backbone을 연결시키면 복잡도가 많이 증가하고 특히 KMAC이 매우 증가한다
  • 이 3x3 Conv를 3x1, 1x3 Conv로 나누고 앞뒤로 1x1 Conv를 붙여서 사용하면 연산을 많이 줄일 수 있을 뿐더러 이전과 비슷한 성능을 발휘한다
  • Model complexity = 16.2 kMAC/pixel

JVET - AE0067

이미지 삽입 p37

  • JVET - AD0156 방법에서 NN을 따로 하나 빼서 하나는 Luma에 대한 연산을, 다른 하나는 Chroma에 대한 연산을 수행하게 한다
  • 연산을 수행 후 concat하여 합쳐준다
  • Luma와 Chroma로 나뉜 NN은 각 Luma와 Choma에 맞는 연산을 수행시키기 위해 파라미터를 조정한다
  • 사실 딱 잘라서 한 쪽은 Luma 다른 한 쪽은 Chroma로 나눠진다고 말할수는 없지만 한 쪽은 Luma에 맞게, 다른 한 쪽은 Chroma에 맞게 파라미터를 수정해주면 학습과정에서 각각 Luma와 Choma에 맞는 가중치로 변하게 된다
  • Model complexity = 9.87 kMAC/pixel

JVET - AE0165

이미지 삽입 p38

  • HOP과 비슷한 디자인이다
  • HOP에 해당하는 부분에서 Complex가 높다고 여겨지는 부분을 바꾼 것이다
  • 3x3 Conv을 1x3, 3x1 Conv로 바꾸고, 파라미터 N을 11로 줄이는 등의 변화를 주어 HOP이 LOP처럼 동작하게 만들었다
  • Model complexity가 477에서 18.7까지 줄었다

Unified LOP filter Architecture

이미지 삽입 p40

  • JVET-AE0067과 JVET-AE0165를 합쳐서 Architecture를 제시했다

출처 및 참조

  • MPEG뉴미디어포럼/한국방송∙미디어공학회 2023 Summer School
  • 최기호, 경희대학교 전자공학과
profile
공부 기록

0개의 댓글