KR20220091606A - 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 방법 및 장치 - Google Patents
사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20220091606A KR20220091606A KR1020227019790A KR20227019790A KR20220091606A KR 20220091606 A KR20220091606 A KR 20220091606A KR 1020227019790 A KR1020227019790 A KR 1020227019790A KR 20227019790 A KR20227019790 A KR 20227019790A KR 20220091606 A KR20220091606 A KR 20220091606A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- prediction
- generate
- reconstructed
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 147
- 230000001537 neural effect Effects 0.000 title claims abstract description 44
- 230000006835 compression Effects 0.000 title claims abstract description 40
- 238000007906 compression Methods 0.000 title claims abstract description 40
- 238000001914 filtration Methods 0.000 title claims abstract description 26
- 238000013528 artificial neural network Methods 0.000 claims abstract description 58
- 230000009466 transformation Effects 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000000844 transformation Methods 0.000 claims description 6
- 230000014509 gene expression Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 26
- 238000012549 training Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 241000023320 Luma <angiosperm> Species 0.000 description 11
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 11
- 238000012935 Averaging Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G06N3/0454—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법은 인코더의 적어도 하나의 프로세서에 의해 수행되며, 그리고, 상기 방법은 제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하는 단계 - 인코딩된 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩됨-; 및 예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 복원 블록에 대해 인트라-예측을 수행하는 단계를 포함한다. 본 방법은 예측 잔차를 발생시키기 위해, 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하는 단계; 제4 신경망을 이용하여, 발생된 예측 잔차를 인코딩하는 단계 - 인코딩된 예측 잔차는 제5 신경망을 이용하여 디코더에 의해 디코딩됨-; 및 복구된 예측 블록을 발생시키기 위해, 디코딩된 예측 잔차를 발생된 예측 블록에 가산하는 단계를 더 포함한다.
Description
관련 출원들에 대한 상호-참조
본 출원은 미국 특허청에, 2020년 9월 30일자에 출원된 미국 가특허 출원번호 제63/085,900호, 2020년 9월 30일자에 출원된 미국 가특허 출원번호 제63/085,908호, 2020년 10월 7일자에 출원된 미국 가특허 출원번호 제63/088,675호, 및 2021년 6월 29일자에 출원된 미국 특허출원 번호 제17/362,003호에 기초하고 이에 대해 우선권을 주장하며, 이의 개시내용들이 본원에 이들의 전체로 참조로 포함된다.
종래, 원래 전체 이미지를 직접 인코딩하는 대신, 블록-기반 인트라-예측 및 잔차 코딩 메커니즘이 HEVC(High Efficiency Video Coding) 및 다용도 비디오 코딩(VVC) 표준들과 같은 현대의 비디오 코딩 시스템들에서 이미지 프레임들을 압축하는데 매우 효과적인 것으로 입증되었다. 전체 이미지들은 코딩 트리 유닛들(CTU)로 먼저 파티셔닝된다. 각각의 CTU에 대해, 다양한 사이즈들의 블록들로 파티셔닝될 수 있으며, 이전 압축된 블록들의 경계 픽셀들을 다양한 각도 방향들을 따라서 복사함으로써 예측 블록이 발생된다. 그 후, 원래 블록과 예측 블록 사이의 잔차들이 압축된다. 잔차들은 원래 픽셀들보다 휠씬 더 효율적으로 인코딩될 수 있으며, 더 나은 코딩 성능이 달성될 수 있다.
ISO/IEC MPEG(JTC 1/SC 29/WG 11)는 미래 비디오 코딩 기술의 표준화에 대한 잠재적인 요구 사항들을 적극적으로 찾고 있다. ISO/IEC JPEG는 심층 신경망들(DNN)을 이용한 AI-기반 종단 간 신경 이미지 압축에 중점을 둔 JPEG-AI 그룹을 설립하였다. 중국 AVS 표준은 또한 신경 이미지 및 비디오 압축 기술들을 연구하는 AVS-AI 특별 그룹을 구성하였다. 최근의 접근법들의 성공은 진보된 신경 이미지 및 비디오 압축 방법론들에 대한 산업적 관심들을 점점 더 많이 끌었다.
입력 이미지 x가 주어지면, 신경 이미지 압축(NIC)의 타깃은 이미지 x를 DNN 인코더에의 입력으로 이용하여 저장 및 송신을 위해 컴팩트한 압축된 표현 를 계산하고, 이후, 를 DNN 디코더에의 입력으로 이용하여 이미지 를 복원하는 것이다. 이전 NIC 방법들은 변분 오토인코더(VAE) 구조를 취하며, 여기서, DNN 인코더들이 전체 이미지 x를 그의 입력으로 직접 이용하며, 이는 블랙 박스처럼 동작하여 출력 표현 를 계산하는 네트워크 계층들의 세트를 통과한다. 이에 따라, DNN 디코더들은 전체 표현 를 그의 입력으로 취하며, 이는 다른 블랙 박스와 유사하게 동작하여 복원된 를 계산하는 네트워크 계층들의 다른 세트를 통과한다.
HEVC에서, 디블록킹 필터 프로세스가 각각의 코딩 유닛(CU)에 대해 디코딩 프로세스와 동일한 순서로 수행된다. 제1 수직 에지들이 필터링되고(수평 필터링), 이후 수평 에지들이 필터링된다(수직 필터링). 필터링은 루마 및 크로마 성분들 둘 모두에 대해 필터링되는 것으로 결정된 8×8 블록 경계들에 적용된다. 4×4 블록 경계들은 복잡성을 감소시키기 위해 프로세싱되지 않는다.
경계 강도(Bs)는 필터링 프로세스가 경계에 대해 필요할 수도 있는 강도를 반영한다. Bs에 대한 2의 값은 강한 필터링을 표시하며, 1은 약한 필터링을 표시하며 0은 디블록킹 필터링 없음을 표시한다.
P 및 Q를 필터링에 관련되는 블록들이라 정의하고, 여기서, P는 경계의 좌측에 있는(수직 에지 경우) 또는 상부에 있는(수평 에지 경우) 블록을 나타내며, Q는 경계의 우측에 있는(수직 에지 경우) 또는 아래에 있는(수평 에지 경우) 블록을 나타낸다. 도 1은 Bs 값이 인트라 코딩 모드, 비-제로 변환 계수들의 존재, 참조 픽처, 모션 벡터들의 개수 및 모션 벡터 차이에 기초하여 계산되는 방법을 예시한다. 예를 들어, MV 차이가 임계치 T 미만일 때, Bs는 0과 같다. 임계치 T는 1 픽셀로 설정된다. HEVC에서, MV 정밀도는 1/4 픽셀이며, MV 차이 임계치는 4로 설정된다. VTM에서, MV 정밀도는 1/16이며, MV 차이는 16으로 설정된다.
Bs는 4×4 블록 단위로 계산되지만, 8×8 그리드에 재맵핑된다. 4×4 그리드에서 라인을 구성하는 8개의 픽셀들에 대응하는 Bs의 2개의 값들의 최대값이 8×8 그리드에서의 경계들에 대한 Bs로서 선택된다.
VTM5에서, 디블록킹(deblocking) 필터링 프로세스는 HEVC에서의 프로세스와 대부분 동일하다. 그러나, 다음 수정들이 추가된다.
1) 복원된 샘플들의 평균된 루마 레벨에 따른 디블록킹 필터의 필터 강도
2) 디블록킹 tC 테이블 확장
3) 루마에 대한 더 강한 디블록킹 필터
4) 크로마에 대한 더 강한 디블록킹 필터
5) 4x4 샘플 그리드 상에서의 루마 디블록킹, 및 8x8 샘플 그리드 상에서의 크로마 디블록킹
HEVC에서, 디블록킹 필터의 필터 강도는 평균 양자화 파라미터들 qPL로부터 유도되는 변수들 β 및 tC에 의해 제어된다. VTM5에서, 디블록킹 필터는 복원된 샘플들의 루마 레벨에 따라 오프셋을 qPL에 가산함으로써 디블록킹 필터의 강도를 제어한다. 복원된 루마 레벨 LL은 다음과 같이 유도된다:
여기서, i = 0..3 및 k = 0 및 3에 대해 샘플 값들 pi, k 및 qi,k가 도 2에 나타낸 바와 같이 유도된다.
변수 qPL은 다음과 같이 유도된다:
여기서, QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 유닛들의 양자화 파라미터들을 표시한다. 오프셋 qpOffset은 전달 함수에 의존하며, 그 값들이 SPS에서 시그널링된다.
VTM5에서, 최대 QP는 51 에서 63으로 변화되었으며, 대응하는 변화를 블록 QP에 기초하여 디블록킹 파라미터들 tC의 값들을 유도하는 디블록킹 테이블에 반영하는 것이 바람직하며, 다음은 QP 범위의 확장을 수용하기 위한 업데이트된 tC 테이블이다.
tC = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 20, 22, 25, 28, 31, 35, 39, 44, 50, 56, 63, 70, 79, 88, 99 ]
(수식 3).
경계의 어느 일 측면에서의 샘플들이 큰 블록에 속할 때 이중선형 필터(더 강한 디블록킹 필터)가 사용된다. 큰 블록에 속하는 샘플은 폭이 수직 에지에 대해 32 이상인 경우, 그리고 높이가 수평 에지에 대해 32 이상인 경우로서 정의된다. i=0 내지 Sp-1에 대해 블록 경계 샘플들 pi 및 j=0 내지 Sq-1에 대해 qi는 이후 다음과 같이 선형 보간으로 대체된다:
테이블 1 - 루마에 대한 더 강한 디블록킹 파라미터들의 유도
위에서 언급된 더 강한 루마 필터들은 단지 Condition1, Condition2 및 Condition3 모두가 참(TRUE)이면 사용된다. 조건 1은 "큰 블록 조건"이다. 이 조건은 P-측면 및 Q-측면에서의 샘플들이 큰 블록들에 속하는지 여부를 검출한다. 조건 2 및 조건 3은 다음과 같이 결정된다:
Condition2 = (d < β) ? 참: 거짓
(수식 6); 및
Condition3 = StrongFilterCondition = (dpq가 ( β >> 2 ) 미만이고, sp3 + sq3가 ( 3*β >> 5 ) 미만이고, Abs( p0 - q0 )가 ( 5 * tC + 1 ) >> 1) 미만 ? 참: 거짓
(수식 7).
크로마에 대한 다음의 강한 디블록킹 필터가 정의된다:
p2′= (3*p3+2*p2+p1+p0+q0+4) >> 3
(수식 8);
p1′= (2*p3+p2+2*p1+p0+q0+q1+4) >> 3
(수식 9); 및
p0′= (p3+p2+p1+2*p0+q0+q1+q2+4) >> 3
(수식 10).
상기 크로마 필터는 8x8 크로마 샘플 그리드 상에서 디블록킹을 수행한다. 크로마 강한 필터들이 블록 경계의 양면 상에서 사용된다. 여기서, 크로마 필터는 (크로마 샘플의 유닛에서) 크로마 에지의 양면이 8 이상일 때 선택되며, 3개의 조건들을 가진 다음 결정이 만족된다. 제1 결정은 경계 강도 뿐만 아니라 큰 블록의 결정에 대한 것이다. 제2 및 제3 결정은 HEVC 루마 결정과 기본적으로 동일하며, 이는 각각 온/오프 결정 및 강한 필터 결정이다. 제1 결정에서, bS는 테이블 2에 나타낸 바와 같이 크로마 필터링에 대해 수정된다. 테이블 1에서의 조건은 순차적으로 체크된다. 조건이 만족되면, 낮은 우선순위들을 가진 나머지 조건들은 스킵된다.
테이블 2 - 수정된 경계 강도
크로마 디블록킹은 bS가 2와 동일한 경우, 또는 큰 블록 경계가 검출될 때 bS가 1과 동일한 경우 수행된다. 제2 및 제3 조건은 HEVC 루마 강한 필터 결정과 기본적으로 동일하다.
현재의 VVC 작업 초안에서, 디블록킹 필터는 루마의 경우 4x4 그리드, 및 크로마의 경우 8x8 그리드 상에서 활성화된다. 디블록킹 필터링 프로세스가 CU 경계들 뿐만 아니라 서브블록 경계들에도 적용된다. 서브블록 경계들은 STMVP 및 아핀 모드들에 의해 도입되는 예측 유닛 경계들, 및 SBT 및 ISP 모드들에 의해 도입되는 변환 유닛 경계들을 포함한다.
SBT 및 ISP 서브블록들에서, HEVC 디블록킹 필터에서 TU의 동일한 로직이 적용된다. 디블록킹 필터가 에지를 가로질러 서브블록 중 하나에 비-제로 계수들이 있을 때 TU 경계에 적용된다.
4x4 그리드 상의 SbTMVP 및 아핀 서브블록들에 대해, HEVC 디블록킹 필터에서 PU의 동일한 로직이 적용된다. PU 경계들에 대해, 디블록킹 필터가 이웃하는 서브블록의 참조 픽처들과 모션 벡터들 사이의 차이를 고려하여 적용된다.
기존 네트워크 아키텍쳐들을 활용하고 더 높은 코딩 효율을 달성할 수 있는 좀더 효율적인 NIC 기술을 개발해야 할 수도 있다.
인트라 예측은 HEVC 및 VVC와 같은 이미지 및 비디오 압축 알고리즘들에서 널리 사용되는 주요 메커니즘이다. 예측의 목표는 이전에 복원된 주변 픽셀들로부터 픽셀들의 블록을 추론하는 것이다. 원래 픽셀들과 예측된 픽셀들 사이에 계산된 잔차를 인코딩/디코딩함으로써, 압축 방법이 좀더 효율적일 수 있다.
종래의 비디오 코덱(HEVC, VVC)에서의 인트라-예측은 예측될 블록과 그의 이웃 사이의 의존성들에 의존한다. 예를 들어, VVC에서, 레이트-왜곡 기준에 따라, 예측 방법은 35개의 고정 및 단순 예측 기능들 중 하나의 모드에 따라 선택하고 규정된 방향들을 따라 픽셀 값들을 전파한다. 주변 픽셀들의 인과관계에 따라 픽셀들을 단순히 전파하는 대신, 이전 제안들은 예측될 블록들에 대한 이미지 내에서 최상의 매칭을 발견하는 탐색 방법을 도입하였다. 추가 작업은 이웃에서 k-가장 가까운 패치들의 선형 조합들로서 정의된 이미지 내에서 자기-유사성들을 활용하였다.
최근, 순환 신경망들은 이미지 픽셀들의 예측을 위해 신뢰성있는 모델을 학습하는 능력을 입증하였다. 예를 들어, 순환 신경망들은 이미지의 기지의 영역 내 픽셀들 사이의 의존성들의 이들의 내부 표현을 순차적으로 업데이트한 후, 이미지의 미지의 영역에서 다음 픽셀을 발생시킨다.
또한, 인트라 예측을 위한 완전 연결(FC) 계층-기반 방법이 제안되었다. FC 신경망은 이웃하는 복원된 픽셀들로부터 현재의 블록에의 종단 간 맵핑을 학습할 수 있다. 픽셀들의 다수의 참조 라인들을 컨텍스트 영역으로 취한다(모델에 대한 입력). 그러나, 이 방법은 단지 아주 적은 개수의 픽셀들만을 예측할 수 있다. 일부 이전 작업에서, 인트라 예측을 위한 콘볼루션 계층-기반 방법이 제안되었다. 이웃하는 복원된 픽셀들을 취하여 예측을 위해 콘볼루션 신경망(CNN) 네트워크로 전송한다.
현재의 예측 방법들은 비디오 인트라-예측 모듈을 위해 설계되며 신경-기반 이미지 압축에 직접 이용될 수 없다. 게다가, 현재의 신경-기반 예측 방법들은 복원된 픽셀들(컨텍스트 영역)을 2개의 분리된 영역들로 파티셔닝하였으며, 이는 다음 단점들을 초래할 수도 있다: 1) 이들은 2개의 분리된 컨텍스트 영역들 사이의 경계 영역들을 학습할 수 없다; 2) 2개의 컨텍스트 영역들(또는, 이들 2개의 컨텍스트 영역에 의해 변환되는 잠재적인 표현)을 결합하기 위해, 예측 방법은 요구 막대한 양의 컴퓨팅 리소스들 뿐만 아니라, 계산 시간을 필요로 할 수도 있다.
실시형태들에 따르면, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법은 인코더의 적어도 하나의 프로세서에 의해 수행되며, 상기 방법은 제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하는 단계 - 인코딩된 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩됨-; 및 예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 복원 블록에 대해 인트라-예측을 수행하는 단계를 포함한다. 본 방법은 예측 잔차를 발생시키기 위해, 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하는 단계; 제4 신경망을 이용하여, 발생된 예측 잔차를 인코딩하는 단계 - 인코딩된 예측 잔차는 제5 신경망을 이용하여 디코더에 의해 디코딩됨-; 및 복구된 예측 블록을 발생시키기 위해, 디코딩된 예측 잔차를 발생된 예측 블록에 가산하는 단계를 더 포함한다.
실시형태들에 따르면, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치는 인코더로서 구현되며, 상기 장치는 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 프로그램 코드를 판독하고 프로그램 코드에 의해 명령되는 대로 동작하는 적어도 하나의 프로세서를 포함한다. 프로그램 코드는 적어도 하나의 프로세서로 하여금, 제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하게 하도록 구성된 제1 인코딩 코드 - 인코딩된 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩됨-; 및 적어도 하나의 프로세서로 하여금, 예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 복원 블록에 대해 인트라-예측을 수행하게 하도록 구성된 제1 수행 코드를 포함한다. 프로그램 코드는 적어도 하나의 프로세서로 하여금, 예측 잔차를 발생시키기 위해, 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하게 하도록 구성된 결정 코드; 적어도 하나의 프로세서로 하여금, 제4 신경망을 이용하여, 발생된 예측 잔차를 인코딩하게 하도록 구성된 제2 인코딩 코드 - 인코딩된 예측 잔차는 제5 신경망을 이용하여 디코더에 의해 디코딩됨-; 및 적어도 하나의 프로세서로 하여금, 복구된 예측 블록을 발생시키기 위해, 디코딩된 예측 잔차를 발생된 예측 블록에 가산하게 하도록 구성된 가산 코드를 더 포함한다.
실시형태들에 따르면, 비일시적 컴퓨터-판독가능 매체는 인코더의 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위해 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금, 제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하게 하고 - 인코딩된 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩됨-; 그리고 예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 복원 블록에 대해 인트라-예측을 수행하게 하는 명령들을 저장한다. 명령들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로, 적어도 하나의 프로세서로 하여금, 예측 잔차를 발생시키기 위해 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하게 하고; 제4 신경망을 이용하여, 발생된 예측 잔차를 인코딩하게 하고 - 인코딩된 예측 잔차는 제5 신경망을 이용하여 디코더에 의해 디코딩됨-; 그리고 복구된 예측 블록을 발생시키기 위해, 디코딩된 예측 잔차를 발생된 예측 블록에 가산하게 한다.
도 1은 경계 강도(Bs)를 계산하는 흐름도이다.
도 2는 샘플들 위치들의 다이어그램이다.
도 3은 실시형태들에 따른, 본원에서 설명되는 방법들, 장치들 및 시스템들이 구현될 수도 있는 환경의 다이어그램이다.
도 4는 도 3의 하나 이상의 디바이스들의 예시적인 컴포넌트들의 블록도이다.
도 5a는 실시형태들에 따른 블록-단위 신경 이미지 압축을 위한 인코더의 블록도이다.
도 5b는 실시형태들에 따른 도 5a의 인코더의 인트라-예측 컴포넌트의 블록도이다.
도 6은 실시형태들에 따른 블록-단위 신경 이미지 압축을 위한 디코더의 블록도이다.
도 7은 실시형태들에 따른 사후-프로세싱 컴포넌트의 블록도이다.
도 8은 도 7의 사후-프로세싱 컴포넌트의 디블록킹 컴포넌트의 다이어그램이다.
도 9는 실시형태들에 따른, 경계 영역들을 추출하는 방법을 예시하는 다이어그램이다.
도 10은 실시형태들에 따른 멀티-모델 디블록킹 컴포넌트의 다이어그램이다.
도 11은 도 7의 사후-프로세싱 컴포넌트의 사후-향상 컴포넌트의 다이어그램이다.
도 12는 실시형태들에 따른 멀티-모델 사후-향상 컴포넌트의 다이어그램이다.
도 13은 실시형태들에 따른 사후-향상 컴포넌트의 다이어그램이다.
도 14는 실시형태들에 따른 사후-향상 및 디블록킹 컴포넌트들과의 중첩 영역의 다이어그램이다.
도 15는 실시형태들에 따른, DNN 인코딩 및 DNN 예측 잔차 인코딩을 위한 장치의 블록도이다.
도 16은 실시형태들에 따른, DNN 디코딩 및 DNN 예측 잔차 디코딩을 위한 장치의 블록도이다.
도 17a는 예측 블록 및 복원된 픽셀들의 다이어그램이다.
도 17b는 실시형태들에 따른, 2개의 컨텍스트 영역들 예측 방법을 예시하는 다이어그램이다.
도 17c는 실시형태들에 따른 패딩(padding) 예측 방법을 예시하는 다이어그램이다.
도 17d는 실시형태들에 따른 변환 예측 방법을 예시하는 다이어그램이다.
도 18은 실시형태들에 따른, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법의 플로우차트이다.
도 19는 실시형태들에 따른, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치의 블록도이다.
도 2는 샘플들 위치들의 다이어그램이다.
도 3은 실시형태들에 따른, 본원에서 설명되는 방법들, 장치들 및 시스템들이 구현될 수도 있는 환경의 다이어그램이다.
도 4는 도 3의 하나 이상의 디바이스들의 예시적인 컴포넌트들의 블록도이다.
도 5a는 실시형태들에 따른 블록-단위 신경 이미지 압축을 위한 인코더의 블록도이다.
도 5b는 실시형태들에 따른 도 5a의 인코더의 인트라-예측 컴포넌트의 블록도이다.
도 6은 실시형태들에 따른 블록-단위 신경 이미지 압축을 위한 디코더의 블록도이다.
도 7은 실시형태들에 따른 사후-프로세싱 컴포넌트의 블록도이다.
도 8은 도 7의 사후-프로세싱 컴포넌트의 디블록킹 컴포넌트의 다이어그램이다.
도 9는 실시형태들에 따른, 경계 영역들을 추출하는 방법을 예시하는 다이어그램이다.
도 10은 실시형태들에 따른 멀티-모델 디블록킹 컴포넌트의 다이어그램이다.
도 11은 도 7의 사후-프로세싱 컴포넌트의 사후-향상 컴포넌트의 다이어그램이다.
도 12는 실시형태들에 따른 멀티-모델 사후-향상 컴포넌트의 다이어그램이다.
도 13은 실시형태들에 따른 사후-향상 컴포넌트의 다이어그램이다.
도 14는 실시형태들에 따른 사후-향상 및 디블록킹 컴포넌트들과의 중첩 영역의 다이어그램이다.
도 15는 실시형태들에 따른, DNN 인코딩 및 DNN 예측 잔차 인코딩을 위한 장치의 블록도이다.
도 16은 실시형태들에 따른, DNN 디코딩 및 DNN 예측 잔차 디코딩을 위한 장치의 블록도이다.
도 17a는 예측 블록 및 복원된 픽셀들의 다이어그램이다.
도 17b는 실시형태들에 따른, 2개의 컨텍스트 영역들 예측 방법을 예시하는 다이어그램이다.
도 17c는 실시형태들에 따른 패딩(padding) 예측 방법을 예시하는 다이어그램이다.
도 17d는 실시형태들에 따른 변환 예측 방법을 예시하는 다이어그램이다.
도 18은 실시형태들에 따른, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법의 플로우차트이다.
도 19는 실시형태들에 따른, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치의 블록도이다.
본 개시내용은 블록-기반 인트라-예측으로부터의 잔차들을 이용한 DNN에 의해 입력 이미지를 압축하기 위한 신경 이미지 압축(NIC) 프레임워크를 설명한다.
도 3은 실시형태들에 따른, 본원에서 설명되는 방법들, 장치들 및 시스템들이 구현될 수도 있는 환경(300)의 다이어그램이다.
도 3에 나타낸 바와 같이, 환경(300)은 사용자 디바이스(310), 플랫폼(320), 및 네트워크(330)를 포함할 수도 있다. 환경(300)의 디바이스들은 유선 접속들, 무선 접속들, 또는 유선 접속과 무선 접속의 조합을 통해서 상호접속할 수도 있다.
사용자 디바이스(310)는 플랫폼(320)과 연관된 정보를 수신, 발생, 저장, 프로세싱, 및/또는 제공 가능한 하나 이상의 디바이스들을 포함한다. 예를 들어, 사용자 디바이스(310)는 컴퓨팅 디바이스(예컨대, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 핸드헬드 컴퓨터, 스마트 스피커, 서버, 등), 모바일 폰(예컨대, 스마트 폰, 무선 전화기, 등), 착용형 디바이스(예컨대, 한쌍의 스마트 안경 또는 스마트 시계), 또는 유사한 디바이스를 포함할 수도 있다. 일부 구현예들에서, 사용자 디바이스(310)는 플랫폼(320)으로부터 정보를 수신하고/하거나 플랫폼(320)으로 정보를 송신할 수도 있다.
플랫폼(320)은 본원에서 다른 어딘가에서 설명된 바와 같은 하나 이상의 디바이스들을 포함한다. 일부 구현예들에서, 플랫폼(320)은 클라우드 서버 또는 클라우드 서버들의 그룹을 포함할 수도 있다. 일부 구현예들에서, 플랫폼(320)은 소프트웨어 컴포넌트들이 교체될 수 있도록 모듈식으로 설계될 수도 있다. 이와 같이, 플랫폼(320)은 상이한 용도들을 위해 용이하게 및/또는 빨리 재구성될 수도 있다.
일부 구현예들에서, 나타낸 바와 같이, 플랫폼(320)은 클라우드 컴퓨팅 환경(322)에서 호스팅될 수도 있다. 특히, 본원에서 설명되는 구현예들은 클라우드 컴퓨팅 환경(322)에서 호스팅되는 것으로 플랫폼(320)을 설명하지만, 일부 구현예들에서, 플랫폼(320)은 클라우드-기반이 아닐 수도 있거나(즉, 클라우드 컴퓨팅 환경 외부에서 구현될 수도 있거나) 또는 부분적으로 클라우드-기반일 수도 있다.
클라우드 컴퓨팅 환경(322)은 플랫폼(320)을 호스팅하는 환경을 포함한다. 클라우드 컴퓨팅 환경(322)은 플랫폼(320)을 호스팅하는 시스템(들) 및/또는 디바이스(들)의 물리적인 위치 및 구성의 최종 사용자(예컨대, 사용자 디바이스(310)) 지식을 필요로 하지 않는 계산, 소프트웨어, 데이터 액세스, 저장, 등의 서비스들을 제공할 수도 있다. 나타낸 바와 같이, 클라우드 컴퓨팅 환경(322)은 컴퓨팅 리소스들(324)의 그룹(일괄하여, "컴퓨팅 리소스들(324)"로서 그리고 개별적으로, "컴퓨팅 리소스(324)"로서 지칭됨)을 포함할 수도 있다.
컴퓨팅 리소스(324)는 하나 이상의 개인용 컴퓨터들, 워크스테이션 컴퓨터들, 서버 디바이스들, 또는 다른 유형들의 계산 및/또는 통신 디바이스들을 포함한다. 일부 구현예들에서, 컴퓨팅 리소스(324)는 플랫폼(320)을 호스팅할 수도 있다. 클라우드 리소스들은 컴퓨팅 리소스(324)에서 실행하는 컴퓨터 인스턴스들, 컴퓨팅 리소스(324)에서 제공되는 저장 디바이스들, 컴퓨팅 리소스(324)에 의해 제공되는 데이터 전송 디바이스들, 등을 포함할 수도 있다. 일부 구현예들에서, 컴퓨팅 리소스(324)는 유선 접속들, 무선 접속들, 또는 유선 접속과 무선 접속의 조합을 통해서 다른 컴퓨팅 리소스들(324)과 통신할 수도 있다.
도 3에 추가로 나타낸 바와 같이, 컴퓨팅 리소스(324)는 클라우드 리소스들의 그룹, 예컨대 하나 이상의 애플리케이션들("앱들")(324-1), 하나 이상의 가상 머신들("VMs")(324-2), 가상화된 스토리지("VSs")(324-3), 하나 이상의 하이퍼바이저들("HYPs")(324-4), 또는 기타 등등을 포함한다.
애플리케이션(324-1)은 사용자 디바이스(310) 및/또는 플랫폼(320)에 제공되거나 이에 의해 액세스될 수도 있는 하나 이상의 소프트웨어 애플리케이션들을 포함한다. 애플리케이션(324-1)은 사용자 디바이스(310) 상에 소프트웨어 애플리케이션들을 설치 및 실행할 필요성을 제거할 수도 있다. 예를 들어, 애플리케이션(324-1)은 플랫폼(320)과 연관된 소프트웨어 및/또는 클라우드 컴퓨팅 환경(322)을 통해서 제공 가능한 임의의 다른 소프트웨어를 포함할 수도 있다. 일부 구현예들에서, 하나의 애플리케이션(324-1)은 가상 머신(324-2)을 통해서, 정보를 하나 이상의 다른 애플리케이션들(324-1)로/로부터, 전송/수신할 수도 있다.
가상 머신(324-2)은 물리적인 머신과 같은 프로그램들을 실행하는 머신(예컨대, 컴퓨터)의 소프트웨어 구현예를 포함한다. 가상 머신(324-2)은 가상 머신(324-2)에 의한 임의의 실제 머신에 대한 용도 및 대응의 정도에 따라, 시스템 가상 머신 또는 프로세스 가상 머신일 수도 있다. 시스템 가상 머신은 완전한 운영 시스템("OS")의 실행을 지원하는 완전한 시스템 플랫폼을 제공할 수도 있다. 프로세스 가상 머신은 단일 프로그램을 실행할 수도 있으며, 단일 프로세스를 지원할 수도 있다. 일부 구현예들에서, 가상 머신(324-2)은 사용자(예컨대, 사용자 디바이스(310))를 대신하여 실행할 수도 있으며, 데이터 관리, 동기화, 또는 장기 데이터 전송들과 같은 클라우드 컴퓨팅 환경(322)의 기반구조를 관리할 수도 있다.
가상화된 스토리지(324-3)는 컴퓨팅 리소스(324)의 저장 시스템들 또는 디바이스들 내에서 가상화 기법들을 이용하는 하나 이상의 저장 시스템들 및/또는 하나 이상의 디바이스들을 포함한다. 일부 구현예들에서, 저장 시스템의 상황 내에서, 가상화들의 유형들은 블록 가상화 및 파일 가상화를 포함할 수도 있다. 블록 가상화는 저장 시스템이 물리 스토리지 또는 이종 구조에 관계없이 액세스될 수도 있도록 물리 스토리지로부터의 논리 스토리지의 추상화(또는, 분리)를 지칭할 수도 있다. 분리는 저장 시스템의 관리자들에게 관리자들이 최종 사용자들을 위해 스토리지를 관리하는 방법에서의 유연성을 허용할 수도 있다. 파일 가상화는 파일 레벨에서 액세스된 데이터와 파일들이 물리적으로 저장된 위치 사이의 의존성들을 제거할 수도 있다. 이는 스토리지 사용, 서버 통합, 및/또는 무중단 파일 마이그레이션들의 성능의 최적화를 가능하게 할 수도 있다.
하이퍼바이저(324-4)는 다수의 운영 시스템들(예컨대, "게스트 운영 시스템들")로 하여금 컴퓨팅 리소스(324)와 같은 호스트 컴퓨터 상에서 동시에 실행 가능하게 하는 하드웨어 가상화 기법들을 제공할 수도 있다. 하이퍼바이저(324-4)는 가상 운영 플랫폼을 게스트 운영 시스템들에 제공할 수도 있으며, 게스트 운영 시스템들의 실행을 관리할 수도 있다. 다양한 운영 시스템들의 다수의 인스턴스들은 가상화된 하드웨어 리소스들을 공유할 수도 있다.
네트워크(330)는 하나 이상의 유선 및/또는 무선 네트워크들을 포함한다. 예를 들어, 네트워크(330)는 셀룰러 네트워크(예컨대, 5세대(5G) 네트워크, LTE(Long-Term Evolution) 네트워크, 3세대(3G) 네트워크, 코드분할 다중접속(CDMA) 네트워크, 등), 공중 지상 모바일 네트워크(PLMN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 도시권 네트워크(MAN), 전화 네트워크(예컨대, 공중 교환 전화 네트워크(PSTN)), 사설 네트워크, 애드혹 네트워크, 인트라넷, 인터넷, 광섬유-기반 네트워크, 또는 기타 등등, 및/또는 이들의 조합 또는 다른 유형들의 네트워크들을 포함할 수도 있다.
도 3에 나타낸 디바이스들 및 네트워크들의 개수 및 배열은 예로서 제공된다. 실제는, 도 3에 나타낸 것들보다 추가적인 디바이스들 및/또는 네트워크들, 더 적은 디바이스들 및/또는 네트워크들, 상이한 디바이스들 및/또는 네트워크들, 또는 상이하게 배열된 디바이스들 및/또는 네트워크들일 수도 있다. 더욱이, 도 3에 나타낸 2개 이상의 디바이스들은 단일 디바이스 내에 구현될 수도 있거나, 또는 도 3에 나타낸 단일 디바이스는 다수의, 분산된 디바이스들로서 구현될 수도 있다. 추가적으로, 또는 대안적으로, 환경(300)의 디바이스들(예컨대, 하나 이상의 디바이스들)의 세트는 환경(300)의 디바이스들의 다른 세트에 의해 수행되는 것으로 설명된 하나 이상의 기능들을 수행할 수도 있다.
도 4는 도 3의 하나 이상의 디바이스들의 예시적인 컴포넌트들의 블록도이다.
디바이스(400)는 사용자 디바이스(310) 및/또는 플랫폼(340)에 대응할 수도 있다. 도 4에 나타낸 바와 같이, 디바이스(400)는 버스(410), 프로세서(420), 메모리(430), 저장 컴포넌트(440), 입력 컴포넌트(450), 출력 컴포넌트(460), 및 통신 인터페이스(470)를 포함할 수도 있다.
버스(410)는 디바이스(400)의 컴포넌트들 간에 통신을 가능하게 하는 컴포넌트를 포함한다. 프로세서(420)는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현된다. 프로세서(420)는 중앙 처리 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 가속 프로세싱 유닛(APU), 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서(DSP), 필드-프로그래밍가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 또는 다른 유형의 프로세싱 컴포넌트이다. 일부 구현예들에서, 프로세서(420)는 기능을 수행하도록 프로그래밍될 수 있는 하나 이상의 프로세서들을 포함한다. 메모리(430)는 프로세서(420)에 의한 사용을 위한 정보 및/또는 명령들을 저장하는, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 및/또는 다른 유형의 동적 또는 정적 저장 디바이스(예컨대, 플래시 메모리, 자기 메모리, 및/또는 광학 메모리)를 포함한다.
저장 컴포넌트(440)는 디바이스(400)의 동작 및 사용에 관련된 정보 및/또는 소프트웨어를 저장한다. 예를 들어, 저장 컴포넌트(440)는 하드 디스크(예컨대, 자기 디스크, 광 디스크, 자기-광학 디스크, 및/또는 솔리드 스테이트 디스크), 컴팩트 디스크(CD), 디지털 다기능 디스크(DVD), 플로피 디스크, 카트리지, 자기 테이프, 및/또는 다른 유형의 비일시적 컴퓨터-판독가능 매체를, 대응하는 드라이브와 함께, 포함할 수도 있다.
입력 컴포넌트(450)는 예컨대, 사용자 입력(예컨대, 터치 스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 및/또는 마이크로폰)을 통해서, 디바이스(400)로 하여금 정보를, 수신 가능하게 하는 컴포넌트를 포함한다. 추가적으로, 또는 대안적으로, 입력 컴포넌트(450)는 정보를 감지하는 센서(예컨대, 위성 위치확인 시스템(GPS) 컴포넌트, 가속도계, 자이로스코프, 및/또는 액추에이터)를 포함할 수도 있다. 출력 컴포넌트(460)는 디바이스(400)(예컨대, 디스플레이, 스피커, 및/또는 하나 이상의 발광 다이오드들(LEDs))로부터의 출력 정보를 제공하는 컴포넌트를 포함한다.
통신 인터페이스(470)는 디바이스(400)로 하여금 예컨대, 유선 접속, 무선 접속, 또는 유선 접속과 무선 접속의 조합을 통해서 다른 디바이스들과 통신 가능하게 하는 트랜시버-형 컴포넌트(예컨대, 트랜시버 및/또는 별개의 수신기 및 송신기)를 포함한다. 통신 인터페이스(470)는 디바이스(400)로 하여금 다른 디바이스로부터 정보를 수신 가능하게 하고/하거나 정보를 다른 디바이스에 제공 가능하게 할 수도 있다. 예를 들어, 통신 인터페이스(470)는 이더넷 인터페이스, 광 인터페이스, 동축 인터페이스, 적외선 인터페이스, 무선 주파수(RF) 인터페이스, 범용 시리얼 버스(USB) 인터페이스, Wi-Fi 인터페이스, 셀룰러 네트워크 인터페이스, 또는 기타 등등을 포함할 수도 있다.
디바이스(400)는 본원에서 설명되는 하나 이상의 프로세스들을 수행할 수도 있다. 디바이스(400)는 프로세서(420)가 메모리(430) 및/또는 저장 컴포넌트(440)와 같은 비일시적 컴퓨터-판독가능 매체에 의해 저장된 소프트웨어 명령들을 실행하는 것에 응답하여 이들 프로세스들을 수행할 수도 있다. 컴퓨터-판독가능 매체는 비일시적 메모리 디바이스로서 본원에서 정의된다. 메모리 디바이스는 단일 물리 저장 디바이스 내 메모리 공간 또는 다수의 물리 저장 디바이스들에 걸쳐서 분산된 메모리 공간을 포함한다.
소프트웨어 명령들은 다른 컴퓨터-판독가능 매체로부터 또는 다른 디바이스로부터 통신 인터페이스(470)를 통해서 메모리(430) 및/또는 저장 컴포넌트(440)로 판독될 수도 있다. 실행될 때, 메모리(430) 및/또는 저장 컴포넌트(440)에 저장된 소프트웨어 명령들은 프로세서(420)로 하여금 본원에서 설명되는 하나 이상의 프로세스들을 수행 가능하게 할 수도 있다. 추가적으로, 또는 대안적으로, 하드와이어드 회로부가 본원에서 설명되는 하나 이상의 프로세스들을 수행하기 위해 소프트웨어 명령들을 대신하여 또는 조합하여 사용될 수도 있다. 따라서, 본원에서 설명되는 구현예들은 하드웨어 회로부와 소프트웨어의 임의의 특정의 조합에 제한되지 않는다.
도 4에 나타낸 컴포넌트들의 개수 및 배열은 예로서 제공된다. 실제는, 디바이스(400)는 추가적인 컴포넌트들, 더 적은 컴포넌트들, 상이한 컴포넌트들, 또는 도 4에 나타낸 것들과는 상이하게 배열된 컴포넌트들을 포함할 수도 있다. 추가적으로, 또는 대안적으로, 디바이스(400)의 컴포넌트들(예컨대, 하나 이상의 컴포넌트들)의 세트는 디바이스(400)의 컴포넌트들의 다른 세트에 의해 수행되는 것으로 설명된 하나 이상의 기능들을 수행할 수도 있다.
사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 방법들 및 장치들을 이하 자세하게 설명한다.
본 개시내용은 NIC에 대한 블록-기반 인트라-예측 및 잔차 코딩 프레임워크를 설명한다. 종래의 예측 메커니즘은 NIC 코딩 효율을 크게 향상시키기 위해 NIC로 수정된다. 잔차들은 원래 픽셀들을 인코딩하는 대신 예측 블록들과 원래 블록들 사이에 인코딩된다.
도 5a 및 도 6은 각각 NIC에 대한, 인코더(500) 및 디코더(600)의 일 실시형태의 작업흐름을 설명한다. 인코더 측 상에서, 입력 이미지 x가 주어지면, n개의 블록들 로 먼저 파티셔닝된다. 블록 bi에 대해, 2개의 압축 방법들(즉, 예측-기반 압축 방법 또는 규칙 DNN-기반 압축 방법)에 의해 압축되며, 더 적은 손실을 가진 복원 블록 가 디코더 측으로 선택된다. 규칙 DNN-기반 압축 방법의 경우, bi는 DNN 디코더(520)에 의해 미래에 디코딩되어 복원 블록 을 발생시킬 수 있는 을 발생시키기 위해 DNN 인코더(510)에 의해 직접 인코딩된다. 예측-기반 압축 방법의 경우, 을 예측 블록 을 계산하기 위해 인트라-예측 컴포넌트(530)의 DNN("예측 DNN")을 통과하는 이전에 복원 블록들이라 하자. 예측 잔차 는 와 사이의 차이에 기초하여 가산기(540)에 의해 계산될 수 있다. 이 잔차 는 다른 인코딩된 컴팩트한 잔차 를 발생시키기 위해 DNN 예측 잔차 인코더(550)에 의해 인코딩된다. 이후, 인코딩된 잔차 는 DNN 예측 잔차 디코더(560)를 통과하여 디코딩된 예측 잔차 를 계산하며, 이는 가산기(570)에 의해 에 다시 가산되어 새로운 복구된 예측 블록 을 계산한다. 블록 선택 컴포넌트(580)는 (위에서 언급된 2개의 방법들로부터) (bi와 비교하여) 더 낮은 손실을 갖는 복원 블록을 선택한다. 선택 신호 는 디코더(600)로 시그널링된다. 블록 bi에 대해, 단지 (복원된 bi에 대한 유용한 정보를 포함하는) 또는 중 하나만이 비트스트림을 통해 디코더로 전송된다는 점에 유의한다. 표기의 편의를 위해, 블록 에 대해, 는 비트스트림으로 저장 및 송신을 위해 컴팩트한 유용한 정보로서 표시된다.
인트라-예측 컴포넌트(530)의 DNN은 약간의 콘볼루션 및 디콘볼루션 계층들을 포함할 수도 있다. 상이한 개수의 복원 블록들을 컨텍스트 영역으로 지원하기 위해, 완전 연결 계층들은 또한 인트라-예측 컴포넌트(530)의 DNN에서 이용될 수 있다. 예를 들어, 이미지 초해상도에서 사용되는 DNN이 (예컨대, 출력 사이즈를 입력 사이즈와 동일하게 변경함으로써) 본원에서 이용될 수 있다.
도 6에서 설명된 바와 같이, 디코더(600)는 블록 선택 신호, 인코딩된 블록 잔차 , 또는 인코딩된 블록 을 포함하는 비트스트림 내 블록-레벨 정보에 따라서 이미지를 복원한다. 블록 선택 신호는 현재의 블록을 디코딩하는 방법을 표시한다. 블록이 규칙 DNN-기반 압축 방법을 이용하면, 을 DNN 디코더(520)로 전송하여, 이전 복원 블록들의 세트에 이후 가산되는 복원된 대응하는 블록 을 발생시킨다. 블록이 예측-기반 압축 방법을 이용하는 경우, 이전 복원 블록들의 세트 가 주어지면, (인코더 측과 동일한) 인트라-예측 컴포넌트(530)의 DNN을 이용하여 예측된 현재의 블록 을 계산하며, 이는 가산기(570)에 의해 디코딩된 잔차 블록 에 다시 가산되어, 복원 블록 을 발생시킨다. 이 복원 블록 은 이전 복원 블록들의 세트 에 이후 가산된다. 실시형태에서, 디코더 측 상의, 인트라-예측 컴포넌트(530), DNN 디코더(520), DNN 예측 잔차 디코더(560)는 인코더 측과 동일한 블록-단위 대응 메커니즘을 이용한다. 디코더(600)는 또한 디블록킹 DNN 및 사후-향상 DNN을 갖는다. 복원 블록들은 블록들 간 아티팩트를 포함할 수도 있는 을 형성한다. 이후, 은 이러한 아티팩트들을 최소화하는데 이용되는 디블록킹 DNN으로 전송된다. 미래 손실을 줄이기 위해, 이미지가 사후-향상 DNN으로 전송되어 최종 복원된 를 발생시킨다. 디블록킹 DNN 및 사후-향상 DNN은 약간의 콘볼루션 계층들을 포함할 수도 있다. 예를 들어, 이미지 초해상도에서 사용되는 DNN이 (예컨대, 출력 사이즈를 입력 사이즈와 동일하게 변경함으로써) 본원에서 이용될 수 있다.
일 실시형태에서, DNN 인코더(510)는 DNN 인코더를 이용하여 블록 bi를 인코딩한다. DNN 예측 잔차 인코더(550)는 예측 잔차 인코딩 DNN을 이용하여 잔차 를 인코딩한다. DNN 디코더(520)는 DNN 디코더를 이용하여 인코딩된 잔차 를 디코딩한다. DNN 예측 잔차 디코더(560)는 예측 잔차 디코딩 DNN을 이용하여 인코딩된 잔차 를 디코딩한다. DNN 인코더 및 DNN 디코더는 VAE 구조를 취하며, 예측 잔차 인코딩 DNN 및 예측 잔차 디코딩 DNN은 또한 VAE 구조를 취한다. DNN 인코더/디코더 및 예측 잔차 인코딩/디코딩 DNN의 구조는 상이하거나 또는 동일할 수 있다.
본 개시내용은 인트라-예측 컴포넌트(530)의 DNN, DNN 인코더/디코더, 및 예측 잔차 인코딩/디코딩 DNN, 디블록킹 DNN 및 사후-향상 DNN에 대한 특정의 네트워크 구조들에 대해 어떤 제한들도 두지 않는다. 본 개시내용은 블록 사이즈, 이미지를 블록들로 분할하는 방법 뿐만 아니라 블록들의 스캔 순서에 어떤 제한들도 두지 않는다.
다음은 위에서 언급된 예측 기반의 DNN 인코더/디코더 아키텍쳐들을 구현하는 일부 실시형태들이다.
일 실시형태에서, HEVC 및 VVC에서와 같은 종래의 비디오 코딩 시스템들에서의 블록 파티셔닝이 채택될 수 있다. 샘플들의 정사각형 어레이인, CTU(coding tree unit)은 기본적인 프로세싱 유닛으로 간주된다. 픽처는 일련의 CTU들로 분할될 수도 있다. CTU 하에서 더 작은 블록들의 사용을 가능하도록 잠재적인 추가 파티셔닝이 가능하다. CTU 사이즈는 CTU 내에서 32x32, 64x64, 128x128, 등일 수 있다. 위에서 언급된 예측 기반의 DNN 인코더/디코더를 구현하는데 이용되는 블록은 CTU 내 코딩 블록 또는 예측 블록일 수도 있다.
다른 실시형태에서, 단순 블록 파티셔닝 방법이 종래의 비디오 코딩 시스템들에서 이들을 채택하는 이외에 이용될 수도 있다. 예를 들어, 픽처는 일련의 MxN 블록들로 분할될 수 있다. 각각의 블록에 대해, 쿼드트리 파티션을 이용하여 4개의 더 작은 블록들로 추가로 분할될 수도 있다. 블록을 분할할지 여부는 비트스트림으로 시그널링되거나 또는 학습 기반 접근법들에 의해 추론될 수 있다.
일 실시형태에서, 위에서 언급된 예측-기반 방법이 전체 이미지에 대해 이용된다(그리고 전체 이미지를 블록들로 파티셔닝함). 다른 실시형태에서, 이미지는 여러 패치들로 먼저 분할될 수 있으며, 각각의 패치에 대해, 블록들로 추가로 파티셔닝되고 이미지 압축이 패치-레벨에서 병렬로 수행된다.
실시형태들에서, 스캔 출발 블록은 좌상단 모서리, 우상단 모서리, 좌하단 모서리 및 우하단 모서리 상에 있을 수 있다. 그리고, 스캔 순서는 높이 먼저 뿐만 아니라, 폭 먼저일 수 있다.
일 실시형태에서, 예측 DNN은 모든 복원 블록들을 입력으로 취하여 블록을 예측한다. 다른 실시형태에서, 예측 DNN은 부분 복원 블록들(예를 들어, 예측될 블록에 인접한 블록들)을 취하여 블록을 예측한다.
일 실시형태에서, 예측 DNN은 3개의 주요 구성요소들: 1) 복원 블록들을 잠재적인 공간들로 변환하기 위한 다수의 콘볼루션 계층들의 세트; 2) 완전 연결 계층, 또는 연쇄 동작, 또는 상이한 복원 블록들로부터 잠재적인 공간들을 함께 결합하는 공간 피라미드 풀링 계층; 및 3) 결합된 잠재적인 공간으로부터 타깃 블록들의 예측을 발생시키는데 이용되는 디콘볼루션 네트워크로 구성된다.
실시형태에서, 인트라-예측 컴포넌트(530)는 도 5b에 나타낸 바와 같이 3개의 컴포넌트들로 구성된다. 복원 블록들은 이들의 위치들에 따라서 하나 이상의 그룹들을 먼저 그룹화된다. 도 5b가 3개의 그룹들을 일 예로서 나타낸다는 점에 유의한다. 실시형태들에서, 그룹들의 개수는 1 (즉, 하나의 그룹에 있는 모든 복원 블록들) 내지 블록들의 개수(즉, 각각의 복원 블록이 한 그룹에 있음)의 범위이다. 변환 컴포넌트(532)에서, 각각의 그룹에 대해, 변환(532A, 532B 또는 532N)은 블록들을 잠재적인 공간들로 변환한다. 변환 컴포넌트(532)는 약간의 콘볼루션 계층들로 구성될 수도 있다. 이는 또한 올바른 예측을 하기 위해 복원 블록들에서 가장 중요한 위치들을 강조할 수 있는 주의(attention) 메커니즘으로 구성될 수 있다. 결합 컴포넌트(534)는 잠재적인 공간들을 함께 결합한다. 임의의 동작 또는 DNN 계층은 여기서 사용될 수 있는 잠재적인 공간들을 결합하는 능력을 갖는다. 예를 들어, 이는 완전 연결 계층, 또는 연쇄 동작, 또는 공간 피라미드 풀링 계층일 수 있다. 예측 컴포넌트(536)에서, 예측 모듈은 결합 컴포넌트(534)에 의해 발생된 결합된 잠재적인 공간들에 따라서 블록 을 예측한다. 일반적으로, 이는 디콘볼루션 계층들의 세트를 포함한다. 이는 또한 올바른 예측을 하기 위해 복원 블록들에서 가장 중요한 위치들을 강조할 수 있는 주의 메커니즘으로 구성될 수 있다. 변환 컴포넌트(532), 결합 컴포넌트(534) 및 예측 컴포넌트(536)는 훈련 프로세스 동안 학습된 DNN들이다.
위에서, 일부 방법들이 DNN의 사용을 통해서 픽처를 인코딩 및 디코딩하는 방법에 관해 설명되었다. 샘플 복원 후, 복원 블록들은 블록들의 경계들 간 아티팩트를 포함할 수도 있는 을 형성한다. 이후, 은 이러한 아티팩트들을 최소화하고 을 발생시키는데 이용되는 디블록킹 DNN으로 전송된다. 디코딩된 이미지 품질을 향상시키기 위해, 이미지가 최종 복원된 을 발생시키기 위해 사후-향상 DNN으로 전송된다. 도 7은 사후-프로세싱 컴포넌트(700)의 일 실시형태의 작업흐름을 나타낸다. 디블록킹 컴포넌트(710) 및 사후-향상 컴포넌트(720)의 실시형태들의 세부 사항들을 다음 섹션들에서 각각 제공한다.
디블록킹 컴포넌트(710) 및 사후-향상 컴포넌트(720)의 관점에서, 프로세싱의 순서는, 교대될 수도 있다. 즉, 사후-향상 컴포넌트(720)가 먼저 사용되고, 디블록킹 컴포넌트(710)가 뒤따를 수도 있다.
다음 디블록킹 방법들 중 하나(또는 조합)가 블록들 간 아티팩트들을 추가로 감소시키는데 이용될 수 있다. 도 8은 디블록킹 컴포넌트(710)의 일 실시형태의 작업흐름을 설명한다. 설명의 편의를 위해, 도 8에는 단지 4개의 동일-사이즈의 블록들만이 있다. 일반적인 경우, 이미지가 다수의 블록들로 파티셔닝될 수 있으며 각각의 블록의 사이즈가 상이할 수도 있다는 점에 유의한다.
(블록 경계 영역들에서) 블록들 간 아티팩트들을 감소시키기 위해, DNN-기반 디블록킹 모델이 사용될 수 있다. 블록 810으로부터, 인접한 블록들에 의해 유도된 아티팩트들을 포함하는 영역들(이러한 영역은 다음에서 경계 영역(820)으로 표시됨)을 먼저 취할 수 있다. 도 8에 나타낸 바와 같이, 경계 영역은 2개의 인접한 블록들로부터의 2개의 서브-영역들로 구성되며, 경계 영역들의 사이즈는 또는 이며, 여기서, n은 블록의 길이이고 m은 블록으로부터 취한 영역의 높이이다. m의 값은 정수로 변할 수도 있다. 예를 들어, 이는 4 픽셀들일 수 있다. 경계 영역이 아티팩트들을 감소시키고 디블록킹 영역(830)을 발생시키기 위해, 디블록킹 컴포넌트(710)로 전송된다. 이후, 디블록킹 영역이 도 8에 나타낸 바와 같이 이미지에서 업데이트된다(840).
도 8의 경우에, 경계 영역은 2개의 인접한 블록들에서 식별된다. 그러나, 예로서 도 9에 나타낸 바와 같이, 경계 영역(910)은 또한 다수의 블록들로 구성될 수도 있다.
도 8은 단일 디블록킹 모델을 이용하여 경계 영역들을 향상시키는 방법을 설명한다. 도 10은 멀티-모델 디블록킹 컴포넌트들(1040A, 1040B 및 1040N)의 일 실시형태의 작업흐름을 설명한다. 주요 아이디어는, 상이한 유형들의 경계 영역들(1010)에 대해, 대응하는 디블록킹 모델들이 아티팩트를 제거하는데 이용된다는 것이다. 도 10에서 설명된 바와 같이, 일단 경계 영역(1010)이 취출되면, 분류 컴포넌트(1020)(DNN-기반 모델, 또는 비디오 코덱에서 사용되는 종래의 방법들일 수 있음)가 경계 영역들을 상이한 카테고리들로 분류하는데 이용된다. 그 후, 경계 영역들(1030)이 이들의 카테고리들에 따라서 상이한 디블록킹 컴포넌트들(1040A, 1040B 및 1040N)로 전송된다. 실제는, 다음 메트릭들을 이용하여(그러나, 이에 제한되지 않음) 경계 영역의 유형을 정의할 수 있다. 첫째, 경계 영역의 콘텐츠가 사용될 수 있다. 예를 들어, 고 주파수 콘텐츠를 가진 경계 영역이 낮은 주파수 콘텐츠를 디블록킹하도록 설계된 모델과는 상이한 모델로 전송된다. 둘째, 아티팩트의 강도가 이용될 수 있다. 멀티-모델 디블록킹 컴포넌트들(1040A, 1040B 및 1040N)에서의 경계 영역이 도 10에 설명된 것에 제한되지 않는다는 점에 유의한다. 도 9에서 설명된 디블록킹 영역은 또한 멀티-모델 디블록킹 방법을 이용할 수 있다. 위에서, 영역의 주파수는 영역 내 상이한 샘플들의 최대 차이로 측정될 수도 있다. 일 예에서, 경계의 일 측면에서 에지 근처의 샘플들의 차이가 측정될 수도 있으며; 다른 예에서는, 경계의 다른 측면에서 에지 근처의 샘플들의 차이가 또한 측정될 수도 있다.
도 8 및 도 10에서 설명된 DNN 디블록킹 모델의 주 목표는 블록들 간 아티팩트를 제거하는 것이다. 경계에 가까운 픽셀들은 경계로부터 멀리 떨어진 픽셀들과 비교하여 더 많이 디블록킹될 수도 있다. 디블록킹 모델은 약간의 콘볼루션 계층들을 포함할 수도 있다. CNN-기반 주의 메커니즘(예컨대, 비-로컬 주의, SEnet) 및 잔차 네트(convnet 및 활성화 함수의 세트를 포함)가 사용될 수도 있다. 예를 들어, 이미지 초해상도에서 사용되는 DNN이(예컨대, 출력 사이즈를 입력 사이즈와 동일하게 변경함으로써) 본원에서 이용될 수 있다.
위에서, DNN 또는 다른 학습 기반 방법들의 도움으로 경계 영역 상에서 디블록킹을 수행하는 방법들을 설명하였다. 대안적으로, 인코더 및 디코더는 종래의 디블록킹 방법 또는 본원에서 설명되는 방법 간에 선택 가능할 수도 있다. 선택 결정이 픽처들의 그룹의 경우 슬라이스/픽처 레벨, 또는 시퀀스 레벨과 같은, 다양한 레벨들에서 이루어질 수 있다. 선택은 시그널링 플래그를 전송함으로써 이루어지거나 또는 콘텐츠를 분석하는 것으로부터 추론될 수 있다.
위에서, DNN 또는 다른 학습 기반 방법들의 도움으로 경계 영역 상에서 디블록킹을 수행하는 방법들을 설명하였다. 대안적으로, 인코더 및 디코더는 픽셀들에 대한 DNN 유도된 조정들이 디폴트 레벨의 경계 강도에 있다고 가정할 때, 본원에서 설명되는 방법의 상단에 다양한 레벨의 경계 강도를 적용 가능할 수도 있다. 경계 조건들 및 블록 코딩 특징들을 분석함으로써, 상이한 레벨의 BS가 디폴트 조정을 확대하거나 또는 감소하도록 할당될 수도 있다.
디블록킹 모듈을 이용하여 아티팩트들을 감소시킨 후, 복원된 이미지가 최종 복원된 이미지 를 발생시키기 위해 향상 모듈로 전송된다. 도 11은 사후-향상 컴포넌트(720)의 일 실시형태의 작업흐름을 설명한다. 설명의 편의를 위해, 도 11에는 단지 4개의 동일-사이즈의 블록들만이 있다. 일반적인 경우, 이미지가 다수의 블록들로 파티셔닝될 수 있고 각각의 블록의 사이즈가 상이할 수도 있다는 점에 유의한다.
이미지의 품질을 향상시키기 위해, DNN-기반 사후-향상 모델을 사후-향상 720 컴포넌트로서 이용할 수 있다. 블록(1110)으로부터, 디블록킹 모델로 전송되지 않는 영역들(이러한 영역은 다음에서 나머지 블록(1120)으로 표시됨)을 먼저 취출할 수 있다. 도 11에 나타낸 바와 같이, 나머지 블록(1120)은 하나의 블록으로부터의 영역으로 구성되며, 경계 영역들의 사이즈는 이며, 여기서, n은 블록의 측면 길이이고 m은 디블록킹을 위한 영역의 길이이다. 의 값은 정수이다. 예를 들어, 이는 4 픽셀들일 수 있다. 나머지 블록들(1120)이 영역의 품질을 추가로 증가시키고 향상된 블록들(1140)을 발생시키기 위해 사후-향상 컴포넌트(720)로 전송된다. 이후, 향상된 블록들(1140)이 이미지로 다시 업데이트된다(1150). 대안적으로, 나머지 블록은 디블록킹 경계 영역과 전체의 일부에서 중첩할 수도 있다. 후자의 경우, 나머지 블록은 전체 코딩 블록일 수도 있다.
상기 실시형태는 단일 사후-향상 모델을 이용하여 나머지 블록들을 향상시키기는 방법을 설명한다. 도 12는 멀티-모델 사후-향상 컴포넌트들(1230A, 1230B 및 1230N)의 일 실시형태의 작업흐름을 설명한다. 주요 아이디어는, 상이한 유형의 나머지 블록들(1120)에 대해, 대응하는 사후-향상 모델들이 품질을 향상시키는데 이용된다는 것이다. 도 12에서 설명된 바와 같이, 일단 나머지 블록들(1120)이 취출되면, 분류 컴포넌트(1210)(DNN-기반 분류 모델, 또는 비디오 코덱에서 이용되는 종래의 방법들일 수 있음)가 나머지 블록들을 상이한 카테고리들로 분류하는데 이용된다. 따라서, 분류된 나머지 블록들(1220)이 이들의 카테고리에 따라서 상이한 사후-향상 컴포넌트들(1230A, 1230B 및 1230N)로 전송된다. 실제는, 다음 메트릭들이 나머지 블록들의 유형을 정의하기 위해 사용된다(그러나, 이에 제한되지 않음). 예를 들어, 나머지 블록 영역들에서의 콘텐츠가 사용될 수도 있다. 이 예에서, 고 주파수 콘텐츠를 가진 나머지 블록 영역이 낮은 주파수 콘텐츠를 향상시키도록 설계된 모델과는 상이한 모델로 전송된다.
블록-레벨에서 이미지를 향상시키는 대신, 한번에 전체 이미지를 향상시키는 사후-향상 모델이 또한 고려될 수도 있다. 도 13은 나머지 블록들 및 경계 영역들을 포함하는 전체 이미지(1320)에 대한 사후-향상 컴포넌트(1310)의 일 실시형태의 작업흐름을 설명한다. 설명의 편의를 위해, 도 13에는 단지 4개의 동일-사이즈의 블록들만이 있다. 일반적인 경우, 이미지가 다수의 블록들로 파티셔닝될 수 있으며 각각의 블록의 사이즈가 상이할 수도 있다는 점에 유의한다. 이러한 방법으로 이미지를 향상시킴으로써, 아티팩트 경계들이 추가로 감소된다.
도 11 내지 도 13에서 설명된 DNN 향상 모델의 주 기능은 이미지들의 품질을 향상시키는 것이다. 사후-향상 컴포넌트(720)는 약간의 콘볼루션 계층들을 포함할 수도 있다. CNN-기반 주의 메커니즘(예컨대, 비-로컬 주의, SEnet) 및 잔차 네트(convnet 및 활성화 함수의 세트를 포함)가 향상 목표를 달성하는데 이용될 수 있다. 예를 들어, 이미지 초해상도에서 사용되는 DNN이 (예컨대, 출력 사이즈를 입력 사이즈와 동일하게 변경함으로써) 본원에서 이용될 수 있다.
상기 방법들에서, 2개의 모듈들이 중첩하는 영역들을 가지면, 동일한 샘플들은 사후-향상 및 디블록킹 컴포넌트들(720 및 710) 둘 모두로부터의 수정들을 겪는다. 그런 일이 발생하면, 사후-향상으로부터의 수정된 샘플들은 P1, P2, …로 표시되며; 유사하게, 디블록킹으로부터의 수정된 샘플들은 D1, D2, ….로 표시된다. Pi 및 Di 샘플들 (i=0, 1, …) 둘 모두로부터의 가중 평균이 도 14에 나타낸 바와 같이, Ai로 표시되는 최종 출력 샘플들을 발생시키는데 이용된다. 이 프로세스는 경계 영역에서의 픽셀 블렌딩으로서 지칭된다. 예를 들어, Ai(i=0, 1, …N-1)는 블렌딩 후 사후-향상 영역(1410)과 디블록킹 영역(1420)의 중첩 영역에서 2개의 대표 샘플들이다. 이들은 다음과 같이 유도될 수 있으며: , 여기서, wi는 영역에서의 위치 i에 대해 설계된 가중치 파라미터이다. 상이한 위치에 대해, 가중치들은 상이할 수 있다. 일 예에서, wi는 0.5로 항상 설정된다. 다른 예에서, wi 값은 2개의 모듈들까지의 거리에 의존한다. 일반적으로, 하나의 모듈에 더 가까운 위치는 동일한 모듈에 의해 발생된 샘플에 대해 더 많은 가중치를 할당받을 것이다. 도 14에서의 일 예에서, A1=5/8*P1+3/8*D1; A2=3/8*P2+5/8*D2.
훈련 프로세스의 타깃은 예측 DNN, 인코딩 DNN, 디코딩 DNN, 예측 잔차 인코딩 DNN, 예측 잔차 디코딩 DNN, 디블록킹 DNN 및 사후-향상 DNN을 학습하는 것이다.
훈련 프로세스에서, 학습될 상기 DNN들의 가중치 계수들이, 예를 들어, 사전-훈련된 대응하는 DNN 모델들을 이용하거나, 또는 이들을 난수들로 설정함으로써 먼저 초기화된다. 그 후, 입력 훈련 이미지 x가 주어지면, 도 5a에서 설명된 인코딩 프로세스를 통과하여 인코딩된 정보를 비트스트림으로 발생시키고, 이는 이후 도 6에서 설명된 디코딩 프로세스를 통과하여 이미지 를 계산 및 복원할 것이다. NIC의 경우, 2개의 경쟁 타깃들: 더 나은 복원 품질 대 더 적은 비트 소비가 있을 수도 있다. 품질 손실 함수 가 일반적으로 종래의 PSNR, MS-SSIM, 또는 이 둘의 가중 조합과 같은, 왜곡 손실이라고 하는 복원 품질을 측정하는데 이용된다. 레이트 손실 은 압축된 표현들의 비트 소비를 측정하기 위해 계산된다. 따라서, 절충 하이퍼파라미터 λ가 공동 레이트-왜곡(R-D) 손실을 최적화하는데 이용된다:
여기서, E는 인코딩 전 원래 블록 잔차들과 비교하여 디코딩된 블록 잔차들의 왜곡을 측정하며, 이는 잔차 인코딩/디코딩 DNN들 및 인코딩/디코딩 DNN들에 대한 정규화 손실로서 작용한다. β는 정규화 손실의 중요성을 균형있게 조정하는 하이퍼파라미터이다.
큰 λ를 가진 훈련은 왜곡이 더 적지만 비트 소비가 더 많은 압축 모델들을 생성하며, 반대의 경우도 마찬가지이다. DNN들의 가중치 계수들을 학습하기 위해, 인코딩 DNN 및 예측 잔차 인코딩 DNN이 도 15에 나타낸 바와 같이 2개의 부분들로 분해된다. 이와 유사하게, 디코딩 DNN 및 예측 잔차 디코딩 DNN이 도 16에 나타낸 바와 같이 2개의 부분들로 분해된다.
도 15는 실시형태들에 따른 DNN 인코딩 및 DNN 예측 잔차 인코딩을 위한 장치(1500)의 블록도이다. 도 16은 실시형태들에 따른 DNN 디코딩 및 DNN 예측 잔차 디코딩을 위한 장치(1600)의 블록도이다.
도 15에 나타낸 바와 같이, 인코딩 DNN은 인코더(1520)가 뒤따르는 신경 인코더(1510)로 분해된다. 대응하는 프로세싱 모듈은 또한 인코딩 모듈이 뒤따르는 신경 인코딩 모듈로 분해된다. 이와 유사하게, 예측 잔차 인코딩 DNN은 잔차 인코더(1540)가 뒤따르는 신경 잔차 인코더(1530)로 분해된다. 대응하는 프로세싱 모듈은 또한 예측 잔차 인코딩 모듈이 뒤따르는 신경 예측 잔차 인코딩 모듈로 분해된다. 실시형태에서, 신경 인코더(1510) 또는 신경 잔차 인코더(1530)는 훈련 프로세스 동안 학습되고 테스트 단계에서 배치되는 DNN이다. 한편, 인코더(1520) 또는 잔차 인코더(1540)는 훈련 및 테스트에 대해 상이하다. 테스트 단계에서, 인코더(1520) 또는 잔차 인코더(1540)는 실제 인코더이며, 이는 엔트로피 인코더가 뒤따르는 양자화기를 포함할 수도 있다. 한편, 훈련 단계에서, 인코더(1520) 또는 잔차 인코더(1540)는 통계 데이터 샘플러를 이용하여 실제 양자화기의 효과를 근사화하며, 엔트로피 인코더는 훈련을 위해 스킵된다.
이와 유사하게, 도 16에 나타낸 바와 같이, 디코딩 DNN은 신경 디코더(1620)가 뒤따르는 디코더(1610)로 분해된다. 대응하는 프로세싱 모듈은 또한 신경 디코딩 모듈이 뒤따르는 디코딩 모듈로 분해된다. 예측 잔차 디코딩 DNN은 신경 잔차 디코더(1640)가 뒤따르는 잔차 디코더(1630)로 분해된다. 대응하는 프로세싱 모듈은 또한 신경 예측 잔차 디코딩 모듈이 뒤따르는 예측 잔차 디코딩 모듈로 분해된다.
실시형태에서, 신경 디코더(1620) 또는 신경 잔차 디코더(1640)는 훈련 프로세스 동안 학습되고 테스트 단계에서 배치되는 DNN이다. 한편, 디코더(1610) 또는 잔차 디코더(1630)는 훈련 및 테스트에 대해 상이하다. 테스트 단계에서, 디코더(1610) 또는 잔차 디코더(1630)는 실제 디코더이며, 이는 역양자화기가 뒤따르는 엔트로피 디코더를 포함할 수도 있다. 한편, 훈련 단계에서, 디코더(1610) 또는 잔차 디코더(1630)는 스킵된다.
본 개시내용은 신경 인코더(1510), 인코더(1520), 디코더(1610), 신경 디코더(1620), 신경 잔차 인코더(1530), 잔차 인코더(1540), 잔차 디코더(1630), 또는 신경 잔차 디코더(1640)에 이용되는 방법들에 어떤 제한들도 두지 않는다. 다시 말해서, 본 개시내용의 NIC 프레임워크는 상이한 유형들의 인코딩 DNN, 디코딩 DNN, 예측 잔차 인코딩 DNN, 및 예측 잔차 디코딩 DNN을 수용할 수 있다.
일 실시형태에서, 프레임워크는 일반적으로 스케일-하이퍼프라이어(hyperprior) 인코더-디코더 프레임워크(또는, 가우시안 혼합물 우도들 프레임워크) 및 그의 변형들, RNN-기반 회귀 압축 방법 및 그의 변형들과 같은, 임의의 DNN-기반 이미지 압축 방법들을 이용할 수 있다.
다른 실시형태에서, 프레임워크는 JPEG, JEPG2000, BPG와 같은 임의의 기존 이미지 압축 방법과 함께 동작할 수 있다.
학습 프로세스의 실시형태에서, 예측 DNN, 인코딩 DNN, 예측 잔차 인코딩 DNN, 인코딩 DNN, 예측 잔차 디코딩 DNN, 디블록킹 DNN, 및 사후-향상 DNN이 종단 간(E2E) 방식에서의 상기 역-전파된 기울기들에 기초하여 함께 업데이트될 수 있다는 점을 언급할 가치가 있다. 또한, 이들 DNN들 중 임의의 DNN은 개별적으로 학습될 수 있다. 예를 들어, 예측 DNN은 (상기 훈련 프로세스에서 이용되는 데이터셋과 동일하거나 또는 상이한) 일부 데이터셋을 이용하여 개별적으로 훈련될 수 있으며, 이들은 단지 나머지 DNN들의 가중치 계수들만이 업데이트되는 위에서 언급된 훈련 프로세스에서 고정된다.
도 17a에 나타낸 바와 같이, 블록(1720)(사이즈 )을 예측하기 위해, 이전에 복원된 픽셀들(1710)이 컨텍스트로서 이용될 수도 있다. 컨텍스트 픽셀들은 예측 모듈에 대한 입력으로서 취해지며 블록의 예측 샘플들을 발생시킨다. 이하에서, 예측 방법들을, 복원된 픽셀들(1710)로부터 컨텍스트 영역을 형성하는 방법에 의해 설명한다.
모든 다음 실시형태들에서, 일 예로서 좌상단 블록에서 시작하는, 래스터 스캔 순서가 이용된다는 점에 유의한다. 일반적인 경우들에서, 스캔 출발 블록은 좌상단 모서리, 우상단 모서리, 좌하단 모서리 및 우하단 모서리 상에 있을 수 있다. 그리고, 스캔 순서는 높이 먼저 뿐만 아니라, 폭 먼저일 수 있다.
HEVC 및 VVC에서의 예측들의 과거 경험에 따라서, 컨텍스트 영역은 예측될 블록으로 둘러싸인다. 실시형태는 복원된 픽셀들(1710)을 2개의 별개의 영역들(즉, 예측 블록 상부의 컨텍스트 영역 , 및 예측 블록의 좌측면 상의 컨텍스트 영역 , 래스터 스캔 순서로, 시작 지점은 좌상단 블록임)로서 간주하는 것이다. 도 17b는 이 예측 방법의 일 실시형태를 나타낸다. 도 17b에 나타낸 바와 같이, 컨텍스트 영역의 형상은 `L` 또는 `7`이다. 2개의 컨텍스트 영역들에 기초하여 블록을 예측하기 위해, 예측 모델은 이들 2개의 영역들( 및 )을 잠재적인 표현들로 먼저 변환하고, 이후 2개의 잠재적인 표현들을 함께 결합한다. 모델은 결합된 잠재적인 표현에 기초하여 최종 블록 예측을 발생시킨다.
도 17b에 나타낸 바와 같이, 일 실시형태에서, 좌측 컨텍스트 및 상부 컨텍스트의 사이즈는 및 (2개의 예측 블록 사이즈)일 수 있다. 다른 실시형태들에서, 좌측 컨텍스트 및 상부 컨텍스트의 사이즈는 변할 수도 있으며, 예측 블록 사이즈의 정수 배가 아닐 수도 있다.
도 17c에 나타낸 바와 같이 컨텍스트 영역들을 및 로 파티셔닝하는 대신, 일 실시형태는 컨텍스트 영역을 직사각형 영역으로 고려하는 것이다. 이를 행하기 위해, 패딩 동작이 필요할 수도 있다. 도 17c는 패딩 영역이 아래에 그리고 의 우측면 상에 있는 예를 나타낸다. 패딩 후, 패딩 영역 및 컨텍스트 영역은 예측 모델에 대한 입력으로서 새로운 직사각형 영역을 형성한다. 다른 실시형태들에서, 패딩 영역이 예측 블록과 동일할 수 있거나 또는 패딩 영역이 여분의 블록들을 포함할 수 있다는 점에 유의한다(아이디어는 패딩 영역과 컨텍스트 영역을 결합하여 직사각형 영역을 형성하는 것이며, 따라서 패딩 영역이 변할 수도 있다). 2개의 컨텍스트 영역 예측 방법과는 달리, 패딩 방법의 예측 모델에 대한 입력은 하나의 직사각형 영역이다. 예측 모델은 이후 입력을 받아 잠재적인 표현으로 변환하며, 따라서 블록에 대한 최종 예측 샘플들을 발생시킨다.
다음은 설명된 패딩 영역을 채우는 패딩 방법들의 몇 가지 실시형태들이다.
일 실시형태에서, 제로 패딩이 위에서 언급된 영역을 패딩하는데 이용될 수도 있다.
일 실시형태에서, 평균 패딩이 위에서 언급된 영역을 패딩하는데 이용될 수도 있다. 값은 및 를 평균함으로써, 또는 전체 이미지를 평균함으로써, 또는 이미지 데이터셋(예컨대, ImageNET에서 이용되는 제로 평균 방법)을 평균함으로써, 계산될 수 있다.
일 실시형태에서, 패딩 영역이 예측되는 현재의 블록이라고 가정하여, 패딩 영역에 채우는데 종래의 인트라 예측 방법들에서의 예측 블록 샘플 발생 프로세스가 이용될 수 있다. 이러한 방법들의 예들은 DC 모드, 평면 모드, 비동일 가중 평면 모드, PDPC(위치 의존적인 예측 조합), 등을 포함한다.
또한, 본 개시내용에 언급되지 않은 다른 패딩 방법들이 패딩 예측 방법에 이용될 수 있다.
모든 상기 패딩 방법들에서, 패딩 영역은 예측 블록보다 더 클 수 있거나 또는 예측 블록과 동일할 수 있다. 전자의 경우, 의 폭은 예측 블록보다 더 클 것이며; 후자의 경우, 의 폭은 예측 블록과 동일할 것이다. 유사하게, 패딩의 높이 영역은 또한 예측 블록과 동일하거나 더 클 수 있다.
패딩과 다른, 별개의 방법에서, 주변 컨텍스트 영역이 다음과 같이, 직사각형 형상으로 변환될 수도 있다.
도 17d에 나타낸 바와 같이, 변환 방법에서, (1730)은 수평 형상(1740)으로 변환되고 (단지 3 픽셀들만이 설명의 편의를 위해 도시됨), 변환된 와 (도 17d의 부분 (a)에서 그레이 픽셀들(1760)) 사이의 중간 영역(1750)을 패딩하여 직사각형 컨텍스트 영역(1770)을 형성한다. 이후, 컨텍스트 영역의 형상은 직사각형 영역으로 ('L'에서 '-'로) 변환된다. 예측 모델에 대한 입력은 하나의 직사각형 영역이다. 예측 모델은 이후 입력을 받아, 잠재적인 표현으로 변환하며, 따라서 블록에 대한 최종 예측을 발생시킨다.
일 실시형태에서, 제로 패딩이 중간 영역을 패딩하는데 이용될 수도 있다.
일 실시형태에서, 평균 패딩이 그레이 영역을 패딩하는데 이용될 수도 있으며, 전체 그레이 영역이 동일한 값을 이용하여 패딩될 수도 있다. 값은 및 를 평균함으로써, 또는 전체 이미지를 평균함으로써, 또는 이미지 데이터셋(예컨대, ImageNET에서 이용되는 제로 평균 방법)을 평균함으로써, 계산될 수 있다.
일 실시형태에서, 평균 패딩이 중간 영역을 패딩하는데 이용될 수도 있다. 상이한 라인들이 상이한 값들을 이용하여 패딩될 수도 있다. 값은 의 동일한 라인에서 픽셀들을 평균함으로써, 또는 의 동일한 라인에서 픽셀들을 평균함으로써, 또는 및 둘 모두의 동일한 라인에서 픽셀들을 결합(예컨대, 평균, 합)함으로써 계산될 수 있다.
일 실시형태에서, 중간 영역이 및 둘 모두의 동일한 라인으로부터 확장된 가장 가까운 픽셀들의 결합(예컨대, 평균, 합)을 이용하여 패딩될 수도 있다. 즉, 변환 후, 동일한 라인의 이웃하는 (좌측 및 우측) 픽셀들을 이용하여 그레이 영역을 패딩한다.
대안적으로, 도 17d의 부분 (b)에 나타낸 바와 같이, 컨텍스트 영역(1730)의 상이한 라인들에 대해, 픽셀들의 여분의 개수가 각각의 라인의 총 개수를 동일하게 하기 위해 이용된다. 이후, 변환(1780) 및 시프팅(1790) 후, 직사각형 영역은 중간 영역을 패딩함이 없이 설정될 수 있다. 여분의 픽셀들이 우측 컨텍스트 영역 상에 또는 좌측 컨텍스트 영역 아래에 있을 때, 이들은 상기 임의의 방법들을 이용하여 패딩될 수도 있다.
또한, 본 개시내용에서 언급되지 않은 다른 패딩 방법들이 패딩 예측 방법에서 이용될 수 있다.
및 의 형상이 동일한 경우(예를 들어, 예측 블록이 정사각형이고 상부-컨텍스트 영역의 형상이 이고 좌측 컨텍스트 영역의 형상이 일 때, 여기서 w는 블록의 폭임), 다음 방법이 2개의 컨텍스트 영역들을 결합하는데 이용될 수도 있다.
다른 실시형태들에서, 및 가 잠재적인 표현들로 먼저 변환되고, 이후 위에서 언급된 방법을 이용하여 잠재적인 표현들을 결합하고 이후 최종 예측을 발생시킬 수도 있다는 점에 유의한다.
도 18은 실시형태들에 따른 적층형 내포 모델 구조들을 갖는 멀티-레이트 신경 이미지 압축의 방법(1800)의 플로우차트이다.
일부 구현예들에서, 도 18의 하나 이상의 프로세스 블록들은 플랫폼(320)에 의해 수행될 수도 있다. 일부 구현예들에서, 도 18의 하나 이상의 프로세스 블록들은 사용자 디바이스(310)와 같은 플랫폼(320)과 분리되거나 또는 이를 포함하는 다른 디바이스 또는 디바이스들의 그룹에 의해 수행될 수도 있다.
도 18에 나타낸 바와 같이, 동작 1810에서, 방법(1800)은 제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하는 단계를 포함하며, 인코딩된 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩된다.
동작 1820에서, 방법(1800)은 예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 복원 블록에 대해 인트라-예측을 수행하는 단계를 포함한다.
동작 1830에서, 방법(1800)은 예측 잔차를 발생시키기 위해, 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하는 단계를 포함한다.
동작 1840에서, 방법(1800)은 제4 신경망을 이용하여, 발생된 예측 잔차를 인코딩하는 단계를 포함하며, 인코딩된 예측 잔차는 제5 신경망을 이용하여 디코더에 의해 디코딩된다.
동작 1850에서, 방법(1800)은 복구된 예측 블록을 발생시키기 위해, 디코딩된 예측 잔차를 발생된 예측 블록에 가산하는 단계를 포함한다.
방법(1800)은 입력 이미지의 블록에 대해 더 낮은 손실을 갖는 복원 블록 및 발생된 복구된 예측 블록 중 하나를 선택하는 단계; 및 복원 블록 및 복구된 예측 블록 중 선택된 블록을 표시하는 선택 신호를, 복원 블록 및 복구된 예측 블록 중 선택된 블록에 대응하는 인코딩된 블록 및 인코딩된 예측 잔차 중 하나와 함께, 디코더로 전송하는 단계를 더 포함할 수도 있다. 인코딩된 블록 및 인코딩된 예측 잔차 중 전송된 것은 전송된 선택 신호에 기초하여 디코더에 의해 디코딩될 수도 있다.
복원 블록에 대해 인트라-예측을 수행하는 단계는 복수의 복원 블록들의 위치들에 기초하여 복수의 복원 블록들을 하나 이상의 그룹들로 그룹화하는 단계; 하나 이상의 잠재적인 공간들을 발생시키기 위해, 하나 이상의 그룹들의 각각에 대해 변환들의 개별 변환을 수행하는 단계; 발생된 하나 이상의 잠재적인 공간들을 결합하는 단계; 및 예측 블록을 발생시키기 위해, 결합된 하나 이상의 잠재적인 공간들에 대해 인트라-예측을 수행하는 단계를 포함할 수도 있다.
방법(1800)은 복수의 복원 블록들의 각각으로부터, 아티팩트들을 포함하는 경계 영역을 제거하는 단계; 아티팩트들이 없는 디블록킹 영역을 발생시키기 위해, 하나 이상의 신경망들을 이용하여, 제거된 경계 영역에 대해 디블록킹을 수행하는 단계; 및 발생된 디블록킹 영역으로 복수의 복원 블록들의 각각을 업데이트하는 단계를 더 포함할 수도 있다.
방법(1800)은 복수의 복원 블록들의 각각으로부터, 제거된 경계 영역이 없는 나머지 블록 영역을 제거하는 단계; 향상된 블록 영역을 발생시키기 위해, 적어도 하나의 신경망을 이용하여, 제거된 나머지 블록 영역에 대해 사후-향상을 수행하는 단계; 및 발생된 향상된 블록 영역으로 복수의 복원 블록들의 각각을 업데이트하는 단계를 더 포함할 수도 있다.
복원 블록에 대해 인트라-예측을 수행하는 단계는 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 및 복원 블록 좌측에 있는 복원된 픽셀들의 제2 컨텍스트 영역을 획득하는 단계; 잠재적인 표현들을 발생시키기 위해, 획득된 제1 컨텍스트 영역 및 획득된 제2 컨텍스트 영역의 각각에 대해 변환들의 개별 변환을 수행하는 단계; 발생된 잠재적인 표현들을 결합하는 단계; 및 예측 블록을 발생시키기 위해, 결합된 잠재적인 표현들에 대해 인트라-예측을 수행하는 단계를 포함할 수도 있다.
복원 블록에 대해 인트라-예측을 수행하는 단계는 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 복원 블록 좌측에 있는 복원된 픽셀들의 제2 컨텍스트 영역, 및 제1 컨텍스트 영역 아래에 있고 제2 컨텍스트 영역 우측에 있는 패딩 영역을 획득하는 단계; 직사각형 영역을 획득하기 위해, 획득된 제1 컨텍스트 영역, 획득된 제2 컨텍스트 영역 및 획득된 패딩 영역을 결합하는 단계; 잠재적인 표현을 획득하기 위해, 획득된 직사각형 영역에 대해 변환을 수행하는 단계; 및 예측 블록을 발생시키기 위해, 발생된 잠재적인 표현에 대해 인트라-예측을 수행하는 단계를 포함할 수도 있다.
도 18은 방법(1800)의 예시적인 블록들을 나타내지만, 일부 구현예들에서, 방법(1800)은 도 18에 도시된 블록들보다 추가적인 블록들, 더 적은 블록들, 상이한 블록들, 또는 상이하게 배열된 블록들을 포함할 수도 있다. 추가적으로, 또는 대안적으로, 방법(1800)의 블록들 중 2개 이상이 병렬로 수행될 수도 있다.
도 19는 실시형태들에 따른 적층형 내포 모델 구조들을 가진 멀티-레이트 신경 이미지 압축을 위한 장치(1900)의 블록도이다.
도 19에 나타낸 바와 같이, 장치(1900)는 제1 인코딩 코드(1910), 제1 수행 코드(1920), 결정 코드(1930), 제2 인코딩 코드(1940) 및 가산 코드(1950)를 포함한다.
제1 인코딩 코드(1910)는 적어도 하나의 프로세서로 하여금, 제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하게 하도록 구성되며, 인코딩된 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩된다.
제1 수행 코드(1920)는 적어도 하나의 프로세서로 하여금, 예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 복원 블록에 대해 인트라-예측을 수행하게 하도록 구성된다.
결정 코드(1930)는 적어도 하나의 프로세서로 하여금, 예측 잔차를 발생시키기 위해, 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하게 하도록 구성된다.
제2 인코딩 코드(1940)는 적어도 하나의 프로세서로 하여금, 제4 신경망을 이용하여, 발생된 예측 잔차를 인코딩하게 하도록 구성되며, 인코딩된 예측 잔차는 제5 신경망을 이용하여 디코더에 의해 디코딩된다.
가산 코드(1950)는 적어도 하나의 프로세서로 하여금, 복구된 예측 블록을 발생시키기 위해, 디코딩된 예측 잔차를 발생된 예측 블록에 가산하게 하도록 구성된다.
프로그램 코드는 적어도 하나의 프로세서로 하여금, 입력 이미지의 블록에 대해 더 낮은 손실을 갖는 복원 블록 및 발생된 복구된 예측 블록 중 하나를 선택하게 하도록 구성된 선택 코드; 및 적어도 하나의 프로세서로 하여금, 복원 블록 및 복구된 예측 블록 중 선택된 블록을 표시하는 선택 신호를, 복원 블록 및 복구된 예측 블록 중 선택된 블록에 대응하는 인코딩된 블록 및 인코딩된 예측 잔차 중 하나와 함께, 디코더로 전송하게 하도록 구성된 전송 코드를 더 포함할 수도 있다. 인코딩된 블록 및 인코딩된 예측 잔차 중 전송된 것은 전송된 선택 신호에 기초하여 디코더에 의해 디코딩될 수도 있다.
제1 수행 코드(1920)는 적어도 하나의 프로세서로 하여금, 복수의 복원 블록들의 위치들에 기초하여 복수의 복원 블록들을 하나 이상의 그룹들로 그룹화하게 하고; 하나 이상의 잠재적인 공간들을 발생시키기 위해, 하나 이상의 그룹들의 각각에 대해 변환들의 개별 변환을 수행하게 하고; 발생된 하나 이상의 잠재적인 공간들을 결합하게 하고; 그리고 예측 블록을 발생시키기 위해, 결합된 하나 이상의 잠재적인 공간들에 대해 인트라-예측을 수행하게 하도록 추가로 구성될 수도 있다.
프로그램 코드는 적어도 하나의 프로세서로 하여금, 복수의 복원 블록들의 각각으로부터, 아티팩트들을 포함하는 경계 영역을 제거하게 하도록 구성된 제1 제거 코드; 적어도 하나의 프로세서로 하여금, 아티팩트들이 없는 디블록킹 영역을 발생시키기 위해, 하나 이상의 신경망들을 이용하여, 제거된 경계 영역에 대해 디블록킹을 수행하게 하도록 구성된 제2 수행 코드; 및 적어도 하나의 프로세서로 하여금, 발생된 디블록킹 영역으로 복수의 복원 블록들의 각각을 업데이트하게 하도록 구성된 제1 업데이팅 코드를 더 포함할 수도 있다.
프로그램 코드는 적어도 하나의 프로세서로 하여금, 복수의 복원 블록들의 각각으로부터, 제거된 경계 영역이 없는 나머지 블록 영역을 제거하게 하도록 구성된 제2 제거 코드; 적어도 하나의 프로세서로 하여금, 향상된 블록 영역을 발생시키기 위해, 적어도 하나의 신경망을 이용하여, 제거된 나머지 블록 영역에 대해 사후-향상을 수행하게 하도록 구성된 제3 수행 코드; 및 적어도 하나의 프로세서로 하여금, 발생된 향상된 블록 영역으로 복수의 복원 블록들의 각각을 업데이트하게 하도록 구성된 제2 업데이팅 코드를 더 포함할 수도 있다.
제1 수행 코드(1920)는 적어도 하나의 프로세서로 하여금, 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 및 복원 블록 좌측에 있는 복원된 픽셀들의 제2 컨텍스트 영역을 획득하게 하고; 잠재적인 표현들을 발생시키기 위해, 획득된 제1 컨텍스트 영역 및 획득된 제2 컨텍스트 영역의 각각에 대해 변환들의 개별 변환을 수행하게 하고; 발생된 잠재적인 표현들을 결합하게 하고; 그리고 예측 블록을 발생시키기 위해, 결합된 잠재적인 표현들에 대해 인트라-예측을 수행하게 하도록 추가로 구성될 수도 있다.
제1 수행 코드(1920)는 적어도 하나의 프로세서로 하여금, 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 복원 블록 좌측에 있는 복원된 픽셀들의 제2 컨텍스트 영역, 및 제1 컨텍스트 영역 아래에 있고 제2 컨텍스트 영역 우측에 있는 패딩 영역을 획득하게 하고; 직사각형 영역을 획득하기 위해, 획득된 제1 컨텍스트 영역, 획득된 제2 컨텍스트 영역 및 획득된 패딩 영역을 결합하게 하고; 잠재적인 표현을 발생시키기 위해, 획득된 직사각형 영역에 대해 변환을 수행하게 하고; 그리고 예측 블록을 발생시키기 위해, 발생된 잠재적인 표현에 대해 인트라-예측을 수행하게 하도록 추가로 구성될 수도 있다.
이전 E2E 이미지 압축 방법들과 비교하여, 본 개시내용은 다음 이점들을 갖는다. 예측 메커니즘들이 원래 픽셀들을 인코딩하는 대신, 예측 블록들과 원래 블록들 사이의 잔차들을 인코딩함으로써, NIC 코딩 효율을 향상시키기 위해, 활용된다. 유연하고 일반적인 프레임워크는 인트라-예측 프로세스로부터의 잔차들에 대해 상이한 인트라-예측 방법들 및 상이한 신경 인코딩 방법들을 수용한다. 유연하고 일반적인 프레임워크는 다양한 유형들의 품질 메트릭들을 수용한다.
이전 예측 방법들과 비교하여, 본 개시내용은 다음 이점들을 갖는다. 실시형태들은 신경-기반 이미지 압축 방법에 이용될 수 있다. 패딩 방법 및 변환 방법의 경우, 컨텍스트 영역을 파티셔닝할 필요가 없다. 패딩 방법, 변환 방법, 및 특수 경우들에서의 방법들의 경우, 컨텍스트는 직사각형 영역이며, 따라서 2개의 분리된 영역들을 병합하기 위한 추가 계산을 감소시킬 수 있다.
본 방법들은 별도로 이용되거나 또는 임의의 순서로 결합될 수도 있다. 또, 방법들(또는, 실시형태들), 인코더, 및 디코더의 각각은 프로세싱 회로부(예컨대, 하나 이상의 프로세서들 또는 하나 이상의 집적 회로들)에 의해 구현될 수도 있다. 일 예에서, 하나 이상의 프로세서들은 비일시적 컴퓨터-판독가능 매체에 저장된 프로그램을 실행한다.
전술한 개시물은 예시 및 설명을 제공하지만, 철저하거나 또는 구현예들을 개시된 정확한 형태로 한정하려는 것은 아니다. 변경들 및 변형들이 상기 개시내용에 비추어 가능하거나 또는 구현예들의 실시로부터 획득될 수도 있다.
본원에서 사용될 때, 용어 컴포넌트는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로서 넓게 해석되도록 의도된다.
본원에서 설명되는, 시스템들 및/또는 방법들이 상이한 유형들의 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수도 있음은 명백할 것이다. 이들 시스템들 및/또는 방법들을 구현하는데 사용되는 실제 특수화된 제어 하드웨어 또는 소프트웨어 코드는 구현예들을 제한하지 않는다. 따라서, 시스템들 및/또는 방법들의 동작 및 거동은 특정의 소프트웨어 코드에 대한 참조 없이 본원에서 설명되었지만, 소프트웨어 및 하드웨어가 본원의 설명에 기초하여 시스템들 및/또는 방법들을 구현하도록 설계될 수도 있는 것으로 이해해야 한다.
특징들의 조합들이 청구범위에 인용되거나 및/또는 명세서에 개시되지만, 이들 조합들은 가능한 구현예들의 개시를 제한하도록 의도되지 않는다. 실제로, 이들 특징들 중 다수가 청구범위에서 구체적으로 인용되거나 및/또는 명세서에서 개시되지 않은 방법들로 결합될 수도 있다. 아래에 열거된 각각의 종속항은 오직 하나의 청구항에만 직접 종속할 수도 있지만, 가능한 구현예들의 개시는 청구항 세트에서의 모든 다른 청구항과 함께 각각의 종속항을 포함한다.
본원에서 사용되는 엘리먼트, 행위, 또는 명령은 명시적으로 설명되지 않는 한, 중요하거나 또는 필수적인 것으로, 해석되지 않을 수도 있다. 또한, 본원에서 사용할 때, 단수표현은 하나 이상의 아이템들을 포함하도록 의도되며, "하나 이상의"와 상호교환가능하게 사용될 수도 있다. 더욱이, 본원에서 사용할 때, 용어 "세트"는 하나 이상의 아이템들(예컨대, 관련된 아이템들, 비관련된 아이템들, 관련된 아이템과 비관련된 아이템의 조합, 등)을 포함하도록 의도되며, "하나 이상의"와 상호교환가능하게 사용될 수도 있다. 오직 하나의 아이템만이 의도되는 경우, 용어 "하나의" 또는 유사한 언어가 사용된다. 또한, 본원에서 사용할 때, 용어들 "갖는다", "가진다", "갖는", 또는 기타 등등은 제한없는 용어들로 의도된다. 또, 어구 "에 기초하여"는 명시적으로 달리 언급되지 않는 한, "에 적어도 부분적으로 기초하여"를 의미하도록 의도된다.
Claims (20)
- 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법으로서,
상기 방법은 인코더의 적어도 하나의 프로세서에 의해 수행되며,
상기 방법은,
제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하는 단계 - 인코딩된 상기 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩됨-;
예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 상기 복원 블록에 대해 인트라-예측을 수행하는 단계;
예측 잔차를 발생시키기 위해, 상기 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하는 단계;
제4 신경망을 이용하여 상기 발생된 예측 잔차를 인코딩하는 단계 - 인코딩된 상기 예측 잔차는 제5 신경망을 이용하여 상기 디코더에 의해 디코딩됨-; 및
복구된 예측 블록을 발생시키기 위해, 디코딩된 상기 예측 잔차를 상기 발생된 예측 블록에 가산하는 단계를 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법. - 제1항에 있어서,
상기 입력 이미지의 블록에 대해 더 낮은 손실을 가진 상기 복원 블록 및 상기 발생된 복구된 예측 블록 중 하나를 선택하는 단계; 및
상기 복원 블록 및 상기 복구된 예측 블록 중 선택된 블록을 표시하는 선택 신호를, 상기 복원 블록 및 상기 복구된 예측 블록 중 선택된 블록에 대응하는 상기 인코딩된 블록 및 상기 인코딩된 예측 잔차 중 하나와 함께, 상기 디코더로 전송하는 단계를 더 포함하며,
상기 인코딩된 블록 및 상기 인코딩된 예측 잔차 중 전송된 것은 전송된 상기 선택 신호에 기초하여 상기 디코더에 의해 디코딩되는, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법. - 제1항에 있어서,
상기 복원 블록에 대해 상기 인트라-예측을 수행하는 단계는,
상기 복수의 복원 블록들의 위치들에 기초하여 복수의 복원 블록들을 하나 이상의 그룹들로 그룹화하는 단계;
하나 이상의 잠재적인 공간들을 발생시키기 위해 상기 하나 이상의 그룹들의 각각에 대해 변환들의 개별 변환을 수행하는 단계;
발생된 상기 하나 이상의 잠재적인 공간들을 결합하는 단계; 및
상기 예측 블록을 발생시키기 위해, 결합된 상기 하나 이상의 잠재적인 공간들에 대해 상기 인트라-예측을 수행하는 단계를 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법. - 제1항에 있어서,
복수의 복원 블록들의 각각으로부터, 아티팩트들을 포함하는 경계 영역을 제거하는 단계;
아티팩트들이 없는 디블록킹 영역을 발생시키기 위해, 하나 이상의 신경망들을 이용하여, 제거된 상기 경계 영역에 대해 디블록킹을 수행하는 단계; 및
발생된 상기 디블록킹 영역으로 상기 복수의 복원 블록들의 각각을 업데이트하는 단계를 더 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법. - 제4항에 있어서,
상기 복수의 복원 블록들의 각각으로부터, 상기 제거된 경계 영역이 없는 나머지 블록 영역을 제거하는 단계;
향상된 블록 영역을 발생시키기 위해, 적어도 하나의 신경망을 이용하여, 제거된 상기 나머지 블록 영역에 대해 사후-향상을 수행하는 단계; 및
발생된 상기 향상된 블록 영역으로 상기 복수의 복원 블록들의 각각을 업데이트하는 단계를 더 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법. - 제1항에 있어서,
상기 복원 블록에 대해 상기 인트라-예측을 수행하는 단계는,
상기 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 및 상기 복원 블록 좌측에 있는 상기 복원된 픽셀들의 제2 컨텍스트 영역을 획득하는 단계;
잠재적인 표현들을 발생시키기 위해, 획득된 상기 제1 컨텍스트 영역 및 획득된 상기 제2 컨텍스트 영역의 각각에 대해 변환들의 개별 변환을 수행하는 단계;
발생된 상기 잠재적인 표현들을 결합하는 단계; 및
예측 블록을 발생시키기 위해, 결합된 상기 잠재적인 표현들에 대해 상기 인트라-예측을 수행하는 단계를 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법. - 제1항에 있어서,
상기 복원 블록에 대해 상기 인트라-예측을 수행하는 단계는,
상기 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 상기 복원 블록 좌측에 있는 상기 복원된 픽셀들의 제2 컨텍스트 영역, 및 상기 제1 컨텍스트 영역 하부에 있고 상기 제2 컨텍스트 영역 우측에 있는 패딩 영역을 획득하는 단계;
직사각형 영역을 획득하기 위해, 획득된 상기 제1 컨텍스트 영역, 획득된 상기 제2 컨텍스트 영역 및 획득된 상기 패딩 영역을 결합하는 단계;
잠재적인 표현을 발생시키기 위해, 획득된 상기 직사각형 영역에 대해 변환을 수행하는 단계; 및
예측 블록을 발생시키기 위해, 발생된 상기 잠재적인 표현에 대해 상기 인트라-예측을 수행하는 단계를 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축의 방법. - 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치로서,
상기 장치는 인코더로서 구현되며,
상기 장치는,
프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
상기 프로그램 코드를 판독하고 상기 프로그램 코드에 의해 명령되는 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하며,
상기 프로그램 코드는,
상기 적어도 하나의 프로세서로 하여금, 제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하게 하도록 구성된 제1 인코딩 코드 - 인코딩된 상기 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩됨-;
상기 적어도 하나의 프로세서로 하여금, 예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 상기 복원 블록에 대해 인트라-예측을 수행하게 하도록 구성된 제1 수행 코드;
상기 적어도 하나의 프로세서로 하여금, 예측 잔차를 발생시키기 위해, 상기 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하게 하도록 구성된 결정 코드;
상기 적어도 하나의 프로세서로 하여금, 제4 신경망을 이용하여, 발생된 상기 예측 잔차를 인코딩하게 하도록 구성된 제2 인코딩 코드 - 인코딩된 상기 예측 잔차는 제5 신경망을 이용하여 상기 디코더에 의해 디코딩됨-; 및
상기 적어도 하나의 프로세서로 하여금, 복구된 예측 블록을 발생시키기 위해, 디코딩된 상기 예측 잔차를 상기 발생된 예측 블록에 가산하게 하도록 구성된 가산 코드를 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치. - 제8항에 있어서,
상기 프로그램 코드는,
상기 적어도 하나의 프로세서로 하여금, 상기 입력 이미지의 블록에 대해 더 낮은 손실을 가진 상기 복원 블록 및 발생된 상기 복구된 예측 블록 중 하나를 선택하게 하도록 구성된 선택 코드; 및
상기 적어도 하나의 프로세서로 하여금, 상기 복원 블록 및 상기 복구된 예측 블록 중 선택된 블록을 표시하는 선택 신호를, 상기 복원 블록 및 상기 복구된 예측 블록 중 선택된 블록에 대응하는 상기 인코딩된 블록 및 상기 인코딩된 예측 잔차 중 하나와 함께, 상기 디코더로 전송하게 하도록 구성된 전송 코드를 더 포함하며,
상기 인코딩된 블록 및 상기 인코딩된 예측 잔차 중 전송된 것은 전송된 상기 선택 신호에 기초하여 상기 디코더에 의해 디코딩되는, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치. - 제8항에 있어서,
상기 제1 수행 코드는, 상기 적어도 하나의 프로세서로 하여금,
상기 복수의 복원 블록들의 위치들에 기초하여 복수의 복원 블록들을 하나 이상의 그룹들로 그룹화하게 하도록;
하나 이상의 잠재적인 공간들을 발생시키기 위해, 상기 하나 이상의 그룹들의 각각에 대해 변환들의 개별 변환을 수행하게 하도록;
발생된 상기 하나 이상의 잠재적인 공간들을 결합하게 하도록; 그리고
예측 블록을 발생시키기 위해, 결합된 상기 하나 이상의 잠재적인 공간들에 대해 상기 인트라-예측을 수행하게 하도록, 추가로 구성되는, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치. - 제8항에 있어서,
상기 프로그램 코드는,
상기 적어도 하나의 프로세서로 하여금, 복수의 복원 블록들의 각각으로부터, 아티팩트들을 포함하는 경계 영역을 제거하게 하도록 구성된 제1 제거 코드;
상기 적어도 하나의 프로세서로 하여금, 아티팩트들이 없는 디블록킹 영역을 발생시키기 위해, 하나 이상의 신경망들을 이용하여, 제거된 상기 경계 영역에 대해 디블록킹을 수행하게 하도록 구성된 제2 수행 코드; 및
상기 적어도 하나의 프로세서로 하여금, 발생된 상기 디블록킹 영역으로 상기 복수의 복원 블록들의 각각을 업데이트하게 하도록 구성된 제1 업데이팅 코드를 더 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치. - 제11항에 있어서,
상기 프로그램 코드는,
상기 적어도 하나의 프로세서로 하여금, 상기 복수의 복원 블록들의 각각으로부터, 상기 제거된 경계 영역이 없는 나머지 블록 영역을 제거하게 하도록 구성된 제2 제거 코드;
상기 적어도 하나의 프로세서로 하여금, 향상된 블록 영역을 발생시키기 위해, 적어도 하나의 신경망을 이용하여, 제거된 상기 나머지 블록 영역에 대해 사후-향상을 수행하게 하도록 구성된 제3 수행 코드; 및
상기 적어도 하나의 프로세서로 하여금, 발생된 상기 향상된 블록 영역으로 상기 복수의 복원 블록들의 각각을 업데이트하게 하도록 구성된 제2 업데이팅 코드를 더 포함하는, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치. - 제8항에 있어서,
상기 제1 수행 코드는, 상기 적어도 하나의 프로세서로 하여금,
상기 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 및 상기 복원 블록 좌측에 있는 상기 복원된 픽셀들의 제2 컨텍스트 영역을 획득하게 하도록;
잠재적인 표현들을 발생시키기 위해, 획득된 상기 제1 컨텍스트 영역 및 획득된 상기 제2 컨텍스트 영역의 각각에 대해 변환들의 개별 변환을 수행하게 하도록;
발생된 상기 잠재적인 표현들을 결합하게 하도록; 그리고
예측 블록을 발생시키기 위해, 결합된 상기 잠재적인 표현들에 대해 상기 인트라-예측을 수행하게 하도록, 추가로 구성되는, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치. - 제8항에 있어서,
상기 제1 수행 코드는, 상기 적어도 하나의 프로세서로 하여금,
상기 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 상기 복원 블록 좌측에 있는 상기 복원된 픽셀들의 제2 컨텍스트 영역, 및 상기 제1 컨텍스트 영역 하부에 있고 상기 제2 컨텍스트 영역 우측에 있는 패딩 영역을 획득하게 하도록;
직사각형 영역을 획득하기 위해, 획득된 상기 제1 컨텍스트 영역, 획득된 상기 제2 컨텍스트 영역 및 획득된 상기 패딩 영역을 결합하게 하도록;
잠재적인 표현을 발생시키기 위해, 획득된 상기 직사각형 영역에 대해 변환을 수행하게 하도록; 그리고
예측 블록을 발생시키기 위해, 발생된 상기 잠재적인 표현에 대해 상기 인트라-예측을 수행하게 하도록, 추가로 구성되는, 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 장치. - 명령들을 저장하는 비일시적 컴퓨터-판독가능 매체로서,
상기 명령들은, 인코더의 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위해 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
제1 신경망을 이용하여 입력 이미지의 블록을 인코딩하게 하고 - 인코딩된 상기 블록은 복원 블록을 발생시키기 위해 제2 신경망을 이용하여 디코더에 의해 디코딩됨-;
예측 블록을 발생시키기 위해, 제3 신경망을 이용하여, 상기 복원 블록에 대해 인트라-예측을 수행하게 하고;
예측 잔차를 발생시키기 위해, 상기 입력 이미지의 블록과 발생된 예측 블록 사이의 차이를 결정하게 하고;
제4 신경망을 이용하여, 발생된 상기 예측 잔차를 인코딩하게 하고 - 인코딩된 상기 예측 잔차는 제5 신경망을 이용하여 상기 디코더에 의해 디코딩됨-; 그리고
복구된 예측 블록을 발생시키기 위해, 디코딩된 상기 예측 잔차를 상기 발생된 예측 블록에 추가하게 하는, 비일시적 컴퓨터-판독가능 매체. - 제15항에 있어서,
상기 명령들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로, 상기 적어도 하나의 프로세서로 하여금,
상기 입력 이미지의 블록에 대해 더 낮은 손실을 가진 상기 복원 블록 및 상기 발생된 복구된 예측 블록 중 하나를 선택하게 하고; 그리고
상기 복원 블록 및 상기 복구된 예측 블록 중 선택된 블록을 표시하는 선택 신호를, 상기 복원 블록 및 상기 복구된 예측 블록 중 선택된 블록에 대응하는 상기 인코딩된 블록 및 상기 인코딩된 예측 잔차 중 하나와 함께, 상기 디코더로 전송하게 하며,
상기 인코딩된 블록 및 상기 인코딩된 예측 잔차 중 전송된 것은 전송된 상기 선택 신호에 기초하여 상기 디코더에 의해 디코딩되는, 비일시적 컴퓨터-판독가능 매체. - 제15항에 있어서,
상기 명령들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로, 상기 적어도 하나의 프로세서로 하여금,
상기 복수의 복원 블록들의 위치들에 기초하여, 복수의 복원 블록들을 하나 이상의 그룹들로 그룹화하게 하고;
하나 이상의 잠재적인 공간들을 발생시키기 위해, 상기 하나 이상의 그룹들의 각각에 대해 변환들의 개별 변환을 수행하게 하고;
발생된 상기 하나 이상의 잠재적인 공간들을 결합하게 하고; 그리고
예측 블록을 발생시키기 위해, 결합된 상기 하나 이상의 잠재적인 공간들에 대해 상기 인트라-예측을 수행하게 하는, 비일시적 컴퓨터-판독가능 매체. - 제15항에 있어서,
상기 명령들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로, 상기 적어도 하나의 프로세서로 하여금,
복수의 복원 블록들의 각각으로부터, 아티팩트들을 포함하는 경계 영역을 제거하게 하고;
아티팩트들이 없는 디블록킹 영역을 발생시키기 위해, 하나 이상의 신경망들을 이용하여, 제거된 상기 경계 영역에 대해 디블록킹을 수행하게 하고; 그리고
발생된 상기 디블록킹 영역으로 상기 복수의 복원 블록들의 각각을 업데이트하게 하는, 비일시적 컴퓨터-판독가능 매체. - 제18항에 있어서,
상기 명령들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로, 상기 적어도 하나의 프로세서로 하여금,
상기 복수의 복원 블록들의 각각으로부터, 상기 제거된 경계 영역이 없는 나머지 블록 영역을 제거하게 하고;
향상된 블록 영역을 발생시키기 위해, 적어도 하나의 신경망을 이용하여, 제거된 상기 나머지 블록 영역에 대해 사후-향상을 수행하게 하고; 그리고
발생된 상기 향상된 블록 영역으로 상기 복수의 복원 블록들의 각각을 업데이트하게 하는, 비일시적 컴퓨터-판독가능 매체. - 제15항에 있어서,
상기 명령들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로, 상기 적어도 하나의 프로세서로 하여금,
상기 복원 블록 상부에 있는 복원된 픽셀들의 제1 컨텍스트 영역, 및 상기 복원 블록 좌측에 있는 상기 복원된 픽셀들의 제2 컨텍스트 영역을 획득하게 하고;
잠재적인 표현들을 발생시키기 위해, 획득된 상기 제1 컨텍스트 영역 및 획득된 상기 제2 컨텍스트 영역의 각각에 대해 변환들의 개별 변환을 수행하게 하고;
발생된 상기 잠재적인 표현들을 결합하게 하고; 그리고
예측 블록을 발생시키기 위해, 결합된 상기 잠재적인 표현들에 대해 상기 인트라-예측을 수행하게 하는, 비일시적 컴퓨터-판독가능 매체.
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063085900P | 2020-09-30 | 2020-09-30 | |
US202063085908P | 2020-09-30 | 2020-09-30 | |
US63/085,900 | 2020-09-30 | ||
US63/085,908 | 2020-09-30 | ||
US202063088675P | 2020-10-07 | 2020-10-07 | |
US63/088,675 | 2020-10-07 | ||
US17/362,003 US12062150B2 (en) | 2020-09-30 | 2021-06-29 | Method and apparatus for block-wise neural image compression with post filtering |
US17/362,003 | 2021-06-29 | ||
PCT/US2021/047996 WO2022072093A1 (en) | 2020-09-30 | 2021-08-27 | Method and apparatus for block-wise neural image compression with post filtering |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220091606A true KR20220091606A (ko) | 2022-06-30 |
Family
ID=80822706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227019790A KR20220091606A (ko) | 2020-09-30 | 2021-08-27 | 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12062150B2 (ko) |
EP (1) | EP4046375A4 (ko) |
JP (1) | JP7520118B2 (ko) |
KR (1) | KR20220091606A (ko) |
CN (1) | CN114747207A (ko) |
WO (1) | WO2022072093A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12058312B2 (en) * | 2021-10-06 | 2024-08-06 | Kwai Inc. | Generative adversarial network for video compression |
WO2023198057A1 (en) * | 2022-04-12 | 2023-10-19 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
CN117292237B (zh) * | 2023-09-25 | 2024-08-20 | 深圳大学 | 基于局部Transformer网络的联合重构方法、装置及介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05308629A (ja) | 1992-05-01 | 1993-11-19 | Olympus Optical Co Ltd | 動画像符号化方式 |
JP3738511B2 (ja) | 1997-01-20 | 2006-01-25 | 三菱電機株式会社 | 動画像符号化方式 |
JP5308629B2 (ja) | 2007-03-26 | 2013-10-09 | ルネサスエレクトロニクス株式会社 | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス保護方法 |
JP6941943B2 (ja) | 2017-02-01 | 2021-09-29 | 日本放送協会 | 予測装置およびプログラム |
EP3451293A1 (en) * | 2017-08-28 | 2019-03-06 | Thomson Licensing | Method and apparatus for filtering with multi-branch deep learning |
WO2019093234A1 (ja) | 2017-11-08 | 2019-05-16 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
WO2019115865A1 (en) * | 2017-12-13 | 2019-06-20 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
US11019355B2 (en) * | 2018-04-03 | 2021-05-25 | Electronics And Telecommunications Research Institute | Inter-prediction method and apparatus using reference frame generated based on deep learning |
JP7073186B2 (ja) | 2018-05-14 | 2022-05-23 | シャープ株式会社 | 画像フィルタ装置 |
-
2021
- 2021-06-29 US US17/362,003 patent/US12062150B2/en active Active
- 2021-08-27 EP EP21876188.0A patent/EP4046375A4/en active Pending
- 2021-08-27 KR KR1020227019790A patent/KR20220091606A/ko active Search and Examination
- 2021-08-27 JP JP2022533334A patent/JP7520118B2/ja active Active
- 2021-08-27 CN CN202180006196.3A patent/CN114747207A/zh active Pending
- 2021-08-27 WO PCT/US2021/047996 patent/WO2022072093A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP4046375A4 (en) | 2022-12-14 |
WO2022072093A1 (en) | 2022-04-07 |
EP4046375A1 (en) | 2022-08-24 |
JP2023504817A (ja) | 2023-02-07 |
CN114747207A (zh) | 2022-07-12 |
JP7520118B2 (ja) | 2024-07-22 |
US20220101492A1 (en) | 2022-03-31 |
US12062150B2 (en) | 2024-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11425392B2 (en) | Method and apparatus for encoding and decoding video using skip mode | |
KR102046521B1 (ko) | 스킵 모드를 이용한 영상 복호화 방법 및 이러한 방법을 사용하는 장치 | |
WO2019046306A1 (en) | MULTI-BRANCH DEEP LEARNING FILTERING METHOD AND APPARATUS | |
WO2019046295A1 (en) | APPARATUS AND METHOD FOR FILTERING WITH DEPTH LEARNING IN FUNCTION MODE | |
KR20220091606A (ko) | 사후 필터링에 의한 블록-단위 신경 이미지 압축을 위한 방법 및 장치 | |
JP6962193B2 (ja) | 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体 | |
KR102633549B1 (ko) | 대체 신경 잔차 압축을 위한 방법 및 장치 | |
US20230252300A1 (en) | Methods and apparatus for hybrid training of neural networks for video coding | |
CN116964632A (zh) | 用于神经图像压缩中迭代内容自适应在线训练的系统、方法和计算机程序 | |
KR20220156896A (ko) | 적응적 인트라-예측에 의한 신경 이미지 압축 | |
JPWO2022072093A5 (ko) | ||
US11750847B2 (en) | Quality-adaptive neural network-based loop filter with smooth quality control by meta-learning | |
JPWO2019064934A1 (ja) | 動画像符号化装置、動画像符号化方法および動画像符号化プログラム | |
KR20230012049A (ko) | 품질-적응적 신경망-기반 루프 필터에 대한 치환 품질 인자 학습 | |
CN118592029A (zh) | 用于帧间预测的改进的局部照明补偿 | |
KR20240044497A (ko) | 블록 기반 비디오 코딩을 위한 부호 예측 | |
WO2012141500A2 (ko) | 스킵 모드를 이용한 영상 복호화 방법 및 이러한 방법을 사용하는 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |