논문 제목
MLIC: Multi-Reference Entropy Model for Learned Image Compression (ACM MM 2023)
URL: https://arxiv.org/abs/2211.07273
인용수 : 36회 (24.10.09 기준) - MLIC++와 동일
이전에 정리했던 MLIC++의 이전 버전이 MLIC이다. 해당 논문에서는 MLIC와 MLIC+ 두 모델을 제안한 논문이고, MLIC++에서는 선형복잡도에 대한 설명이나 ablation study가 주를 이뤘다면, 이 논문은 MLIC라는 구조를 왜 제안했는지에 초점을 맞췄다고 생각하면 될 것 같다.
요약
- 엔트로피 모델은 잠재표현의 분포를 추정하여 압축효율 향상에 중요한 역할을 한다. 하지만 대부분 엔트로피 모델은 1차원에서 상관관계를 캡처하고, channel-wise, local spatial, and global spatial correlation은 포함하지 않는다.
- MEM(Multi-Reference Entropy Model)와 MEM+은 잠재표현을 여러 슬라이스로 나누고, 현재 슬라이를 디코딩할 때 이전에 디코딩된 슬라이스의 context를 사용하여 현재 슬라이스의 global correlation를 예측. -> 이를 위해 두 가지 checkerboard context capturing techniques을 제시함.
MEM & MEM+
- 기존의 Context Model의 경우 Spatial & Channel-wise 기반의 Autoregressive 모델과 Checkerboard Context Module이 주로 사용되었다.
- 두 컨텍스트 모델은 local correlation과 병렬처리가 중점이기 때문에 global correlation은 캡처가 어렵다는 단점이 있다.
- 하지만 제안 컨텍스트 모델은 local spatial, global spatial, and channel dimensions에 대해 correlation 캡처가 가능하여 보다 정확한 예측이 가능하다.
모델 구조
- 전반적인 아키텍쳐는 MLIC++와 유사한 구조를 가지나, 인코더 디코더의 Residual Block이 심플하다는 특징이 있다.
위 이미지는 모델에대한 notation과 하이퍼파라미터 셋팅이 정리한 표이다.
MLIC와 MLIC++의 주요 차이를 보면 M의 채널 수가 가장 직관적으로 보인다.
여기서 M은 슬라이스의 개수를 결정하는 중요한 파라미터이다.
MLIC는 M=192, 각 슬라이스의 채널이 32이므로 총 6개의 슬라이스로 나눠졌고, MLIC+는 M=320, 각 슬라이스의 채널이 32이므로 총 10개의 슬라이스로 나눠져있음을 의미한다.
Enhanced Checkerboard Context Module
- 체커보드 컨텍스트 모델은 병렬 디코딩이 가능하나, 디코딩된 심볼 절반만 사용하여서 성능 저하가 발생함.
- 기존 연구에서 local context module은 1개의 컨볼루션 층만 사용하였으나, 본 연구에서는 glc,stk 모듈에 J개의 컨볼루션 레이어를 스택으로 쌓아서 비선형성과 깊이를 증가시킴.
논문에서는 K=5를 사용함.
Checkerboard Attention Context Module, Shifted Window-based Checkerboard의 경우 MLIC++ 게시물에 정리되어서 생략.
Global Spatial Context Module
- 각 슬라이스마다 global-spatial contexts를 독립적으로 캡처.
- 슬라이스 내에서 anchor와 non-anchor 그리고 이전 슬라이스와의 global correlation를 계산.
Intra-Slice Global Context Module
- codec consistency 때문에 디코딩 중에는 현재 심볼과 다른 심볼들 간의 global correlation을 알 수 없음
- 디코딩 시 이전에 디코딩된 슬라이스는 현재 슬라이스의 global correlation를 추정하는데 도움을 준다.
모듈 구조를 보면 이전 슬라이스의 anchor, non-anchor와 현재 슬라이스의 anchor를 통해 global correlation를 추정한다.
Inter-Slice Global Context Module
(모델 구조의 쿼리가 i -> i-1로 수정되어야할 것 같음)
- Intra-Slice Global Context Module을 확장하여 Inter-Slice Global Context Module로 확장함.
- 현재 슬라이스의 non-anchor와 이전 슬라이스의 상관관계를 구해야하며, anchor값을 non-anchor의 근사값으로 사용.
- 복잡성을 줄이기 위해 인접한 슬라이스 간의 global correlation만 계산.
Result
RD-Curve에서 MLIC와 MLIC+가 2022년 SOTA였던 ELIC를 제치고 좋은 지표를 보였다.
VTM-17.0(VVC)를 기준으로 동일 정량지표 대비 MLIC, MLIC+는 약 8%, 11% 더 bit-rate를 압축할 수 있다고 한다.
Encoding & Decoding Latency
MLIC의 경우 ELIC보다 인코딩 & 디코딩 시간을 줄였으나, MLIC+의 경우 잠재표현의 채널 수가 192에서 320으로 늘어남에 따라 연산량이 증가하여 인코딩 & 디코딩 시간이 증가한 것을 확인할 수 있다.
참고
MLIC++ 정리