KR20240050435A - 조건부 이미지 압축 - Google Patents

조건부 이미지 압축 Download PDF

Info

Publication number
KR20240050435A
KR20240050435A KR1020247010736A KR20247010736A KR20240050435A KR 20240050435 A KR20240050435 A KR 20240050435A KR 1020247010736 A KR1020247010736 A KR 1020247010736A KR 20247010736 A KR20247010736 A KR 20247010736A KR 20240050435 A KR20240050435 A KR 20240050435A
Authority
KR
South Korea
Prior art keywords
tensor
latent
component
image
neural network
Prior art date
Application number
KR1020247010736A
Other languages
English (en)
Inventor
알렉산더 알렉산드로비치 카라부토브
판키 지아
아타나스 보에브
한 가오
뱌오 왕
요하네스 자우어
엘레나 알렉산드로브나 알시나
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20240050435A publication Critical patent/KR20240050435A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

본 개시는 이미지의 컴포넌트의 조건부 코딩에 관한 것이다. 적어도 이미지의 일부를 인코딩하는 방법이 제공되며, 이 방법은 적어도 하나의 2차 컴포넌트와 독립적으로 이미지의 1차 컴포넌트를 인코딩하는 단계 및 1차 컴포넌트로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 인코딩하는 단계를 포함한다. 또한, 적어도 이미지의 일부를 인코딩하는 방법이 제공되며, 이 방법은 이미지의 1차 컴포넌트에 대한 1차 잔차 컴포넌트 및 1차 컴포넌트와 상이한 이미지의 적어도 하나의 2차 컴포넌트에 대한 적어도 하나의 2차 잔차 컴포넌트를 포함하는 잔차를 제공하는 단계, 적어도 하나의 2차 잔차 컴포넌트와 독립적으로 1차 잔차 컴포넌트를 인코딩하는 단계 및 1차 잔차 컴포넌트로부터의 정보를 사용하여 적어도 하나의 2차 잔차 컴포넌트를 인코딩하는 단계를 포함한다.

Description

조건부 이미지 압축
본 개시는 일반적으로 이미지 및 비디오 코딩 분야에 관한 것이며, 특히 조건부 이미지 압축을 포함하는 이미지 및 비디오 코딩에 관한 것이다.
비디오 코딩(비디오 인코딩 및 디코딩)은 방송 디지털 TV, 인터넷 및 모바일 네트워크를 통한 비디오 전송, 비디오 채팅, 비디오 회의, DVD 및 블루레이(Blu-ray) 디스크와 같은 실시간 대화 애플리케이션, 비디오 콘텐츠 수집 및 편집 시스템 및 보안 애플리케이션 캠코더와 같은 광범위한 디지털 비디오 애플리케이션에 사용된다.
상대적으로 짧은 비디오라도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 제한된 대역폭 용량을 가진 통신 네트워크를 통해 데이터를 스트리밍하거나 그렇지 않으면 통신할 때 어려움을 초래할 수 있다. 따라서 비디오 데이터는 일반적으로 현대 통신 네트워크를 통해 통신되기 전에 압축된다. 비디오가 저장 디바이스에 저장될 때 메모리 리소스가 제한될 수 있기 때문에 비디오 크기도 문제가 될 수 있다. 비디오 압축 디바이스는 종종 소스에서 소프트웨어 및/또는 하드웨어를 사용하여 비디오 데이터를 전송 또는 저장하기 전에 코딩함으로써 디지털 비디오 이미지를 표현하는 데 필요한 데이터의 수량을 감소시킨다. 압축된 데이터는 비디오 데이터를 디코딩하는 비디오 압축 해제 디바이스에 의해 목적지에서 수신된다. 압축 기술은 정지 이미지 코딩의 콘텍스트에서도 적절하게 적용된다.
제한된 네트워크 리소스와 더 높은 비디오 품질에 대한 요구 사항(demands)이 계속 증가함에 따라, 이미지 품질을 거의 또는 전혀 희생하지 않고 압축 비율을 개선시키는 개선된 압축 및 압축 해제 기술이 바람직하다.
인공 신경망을 활용하는 신경망(neural network, NN) 및 심층 학습(deep-learning, DL) 기술은 이제 비디오, 이미지(예: 정지 이미지) 등의 인코딩 및 디코딩 기술 분야에서도 한동안 사용되어 왔다.
이용 가능한 메모리 및/또는 처리 속도에서의 제한을 설명하는 트레이닝된 네트워크에 기반하여 이러한 이미지 코딩(비디오 코딩 또는 정지 이미지 코딩)의 효율성을 더욱 개선시키는 것이 바람직하다.
특히 기존의 조건부 이미지 압축 코딩은 병렬화 적합성이 낮고 메모리 요구 사항이 까다로운 문제로 어려움을 겪고 있다.
본 발명은 특히, 아래의 상세한 설명에서 설명되는 신경망과 같은 신경망을 통해 이미지 또는 비디오 데이터를 코딩하는 방법 및 장치에 관한 것이다. 신경망을 사용하면 자체 학습(self-learning) 방식으로 엔트로피 모델의 추정 및 안정적인 인코딩 및 디코딩을 할 수 있어서, 인코딩된 압축 입력 데이터로부터 재구성된 이미지의 정확도가 높아질 수 있다.
전술한 목적 및 기타 목적은 독립항의 주제에 의해 달성된다. 추가 구현 형태는 종속항, 설명 및 도면을 통해 명백해진다.
제1 측면에 따르면, 적어도 이미지의 일부(portion)(예를 들어, 하나 이상의 블록, 슬라이스, 타일 등)를 인코딩하는 방법이 제공되며, 이 방법은, (적어도 이미지의 일부에 대해) (이미지의 컴포넌트로부터 선택된) 이미지의 적어도 하나의 2차(secondary)(비-1차(non-primary)) 컴포넌트와 독립적으로 (이미지의 컴포넌트로부터 선택된) 이미지의 1차(primary) 컴포넌트를 인코딩하는 단계 및 1차 컴포넌트로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 인코딩하는 단계를 포함한다.
원칙적으로, 이미지는 정지 이미지이거나 비디오 시퀀스의 인트라 프레임일 수 있다. 여기 및 다음 설명에서, 이미지는 컴포넌트, 특히 밝기 컴포넌트 및 색상 컴포넌트를 포함한다는 것이 이해되어야 한다. 컴포넌트는 풀 컬러 이미지(full color image)를 설명하는 직교 기반의 차원으로 간주될 수 있다. 예를 들어, 이미지가 YUV 공간으로 표현될 때 컴포넌트는 루마(luma) Y, 크로마(chroma) U 및 크로마 V이다. 이미지의 컴포넌트 중 하나가 1차 컴포넌트로 선택되고, 컴포넌트 중 하나 이상의 다른 컴포넌트가 2차(비-1차) 컴포넌트(들)로 선택된다. "2차 컴포넌트" 및 "비-1차 컴포넌트"라는 용어는 여기에서 상호교환적으로 사용되며, 1차 컴포넌트에 의해 제공되는 보조 정보(auxiliary information)를 사용하여 코딩되는 컴포넌트를 나타낸다. 1차 컴포넌트에 의해 제공되는 보조 정보를 사용하여 2차 컴포넌트를 인코딩 및 디코딩하면, 디코딩 처리 후에 획득된 재구성된 이미지의 정확도가 높아진다.
개시된 종류의 이미지 인코딩은 기술 분야에 비해 높은 병렬화(2차 컴포넌트와 독립적으로 1차 컴포넌트를 인코딩하는 것으로 인해) 및 감소된 메모리 요구 사항을 허용한다. 특히, 1차 컴포넌트와 적어도 하나의 2차 컴포넌트는 동시에 인코딩될 수 있다.
일 구현에 따르면, 이미지의 1차 컴포넌트는 루마 컴포넌트이고, 이미지의 적어도 하나의 2차 컴포넌트는 크로마 컴포넌트이다. 예를 들어, 이미지의 2개의 2차 컴포넌트가 동시에 인코딩되며, 그 중 하나는 크로마 컴포넌트이고 다른 하나는 또 다른 크로마 컴포넌트이다. 다른 일 구현에 따르면, 이미지의 1차 컴포넌트는 크로마 컴포넌트이고, 이미지의 적어도 하나의 2차 컴포넌트는 루마 컴포넌트이다. 따라서, 하나의 컴포넌트를 다른 컴포넌트에 의해 실제 조건화하는(actual conditioning) 높은 유연성이 제공된다.
전체 인코딩은 특히 다운 샘플링된(down-sampled) 입력 데이터의 처리를 허용할 수 있는 잠재 공간(latent space)에서의 처리를 포함할 수 있으며, 따라서 더 낮은 처리 부하로 고정된 처리(fastened processing)를 수행할 수 있다. 여기에서 "다운 샘플링" 및 "업 샘플링(up-sampling)"이라는 용어는 각각 데이터의 텐서 표현(tensor representation)의 크기를 줄이고 향상시키는 의미로 사용된다.
일 구현에 따른 잠재 공간에서의 처리에 대하여
a) 제1 컴포넌트를 인코딩하는 단계는:
1차 컴포넌트를 제1 텐서로 표현하는 단계;
제1 텐서를 제1 잠재 텐서(latent tensor)로 변환하는 단계; 및
제1 잠재 텐서를 처리하여 제1 비트스트림을 생성하는 단계를 포함하며,
여기서
b) 적어도 하나의 2차 컴포넌트를 인코딩하는 단계는:
적어도 하나의 2차 컴포넌트를 제1 텐서와 상이한 제2 텐서로 표현하는 단계;
제2 텐서와 제1 텐서를 연쇄시켜(concatenate) 연쇄된 텐서를 획득하는 단계;
연쇄된 텐서를 제2 잠재 텐서로 변환하는 단계; 및
제2 잠재 텐서를 처리하여 제2 비트스트림을 생성하는 단계를 포함한다.
제1 잠재 텐서의 높이 차원 또는 너비 차원의 크기 중 적어도 하나는 제1 텐서의 높이 차원 또는 너비 차원의 대응하는 크기보다 작을 수 있거나, 및/또는 제2 텐서의 높이 차원 또는 너비 차원의 크기는 연쇄된 텐서의 높이 차원 또는 너비 차원의 대응하는 크기보다 작을 수 있다. 예를 들어, 높이 및/또는 너비 차원에서 16배 또는 32배의 감소 레이트(reduction rate)가 사용될 수 있다.
텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋(sub-pixel offset)이, 제1 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한 경우가 있을 수 있다. 따라서 다른 일 구현에 따르면
a) 1차 컴포넌트를 인코딩하는 단계는:
1차 컴포넌트를 높이 차원과 너비 차원을 갖는 제1 텐서로 표현하는 단계;
제1 텐서를 제1 잠재 텐서로 변환하는 단계; 및
제1 잠재 텐서를 처리하여 제1 비트스트림을 생성하는 단계를 포함하며,
여기서
b) 적어도 하나의 2차 컴포넌트를 인코딩하는 단계는:
적어도 하나의 2차 컴포넌트를, 제1 텐서와 상이하면서 높이 차원과 너비 차원을 갖는 제2 텐서로 표현하는 단계;
높이 차원 및 너비 차원 중 적어도 하나에서의 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이, 제1 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한지를 판정하고, 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때, 제1 텐서의 샘플 위치(sample location)를 제2 텐서의 샘플 위치와 매칭하도록 조정하여 조정된 제1 텐서를 획득하는 단계;
제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때에만 제2 텐서와 조정된 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하고, 그렇지 않으면 제2 텐서와 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하는 단계;
연쇄된 텐서를 제2 잠재 텐서로 변환하는 단계; 및
제2 잠재 텐서를 처리하여 제2 비트스트림을 생성하는 단계를 포함한다.
다시 말하면, 제1 잠재 텐서의 높이 차원 또는 너비 차원의 크기 중 적어도 하나는 제1 텐서의 높이 차원 또는 너비 차원의 대응하는 크기보다 작을 수 있거나, 및/또는 제2 잠재 텐서의 높이 차원 또는 너비 차원의 크기는 연쇄된 텐서의 높이 차원 또는 너비 차원의 대응하는 크기보다 작을 수 있다. 높이 차원 및/또는 너비 차원에서 예를 들어, 16배 또는 32배의 감소 레이트가 사용될 수 있다. 제1 텐서의 샘플 위치를 제2 텐서의 샘플 위치와 매칭하도록 조정하는 것은 예를 들어 제1 텐서의 너비와 높이를 2배만큼 다운 샘플링하는 것을 포함할 수 있다.
일 구현에 따르면, 제1 잠재 텐서는 채널 차원을 포함하고, 제2 잠재 텐서는 채널 차원을 포함하며, 채널 차원에서의 제1 잠재 텐서의 크기는 채널 차원에서의 제2 잠재 텐서의 크기보다 크거나 작거나 같은 것 중 하나이다. 1차 컴포넌트가 2차 컴포넌트(들)에 비해 더 큰 중요성으로 간주되면(이는 보통 그럴 수 있음), 1차 컴포넌트의 채널 길이는 2차 컴포넌트(들)의 채널 길이보다 클 수 있다. 1차 컴포넌트의 신호가 비교적 명확하고 비-1차 컴포넌트(들)의 신호에 상대적으로 노이즈가 있으면, 1차 컴포넌트의 채널 길이는 2차 컴포넌트(들)의 채널 길이보다 작을 수 있다. 수치 실험을 통해 기술 분야에 비해 더 짧은 채널 길이가 재구성된 이미지의 품질을 크게 저하시키지 않고 사용될 수 있으므로 메모리 요구 사항이 감소될 수 있음이 나타났다.
일반적으로, 제1 텐서는 제1 신경망을 통해 제1 잠재 텐서로 변환될 수 있고, 연쇄된 텐서는 제1 신경망과 상이한 제2 신경망을 통해 제2 잠재 텐서로 변환될 수 있다. 이 경우, 채널 차원에서의 제1 잠재 텐서의 크기와 채널 차원에서의 제2 잠재 텐서의 크기를 결정하기 위해 제1 신경망과 제2 신경망을 협력적으로 트레이닝(training)시킬 수 있다. 채널 길이의 결정은 철저한 검색이나 콘텐츠 적응적 방식으로 수행될 수 있다. 모델 세트가 트레이닝될 수 있으며, 여기서 각 모델은 1차 컴포넌트와 비-1차 컴포넌트를 인코딩하기 위한 서로 다른 채널 수에 기반한다. 이로써 신경망은 관련된 채널 길이를 최적화할 수 있다.
결정된 채널 길이는 인코딩된 컴포넌트를 재구성하는 데 사용되는 디코더에 의해서도 사용되어야 한다. 따라서, 일 구현에 따르면, 채널 차원에서의 제1 잠재 텐서의 크기는 제1 비트스트림에서 시그널링될 수 있고, 채널 차원에서의 제2 잠재 텐서의 크기는 제2 비트스트림에서 시그널링될 수 있다. 시그널링은 명시적으로 또는 암시적으로 수행될 수 있으며, 비트 절약(bit saving) 방식으로 채널 길이에 대해 디코더에 직접 알릴 수 있다.
일 구현에 따르면, 제1 비트스트림은 제1 엔트로피 모델에 기반하여 생성되고, 제2 비트스트림은 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 생성된다. 이러한 엔트로피 모델을 사용하면 데이터의 텐서 표현을 비트스트림으로 변환하는 프로세스에서 사용되는 통계적 속성을 안정적으로 추정할 수 있다.
개시된 방법은 재구성된 (일부) 이미지의 정확성을 개선시키기 위해, 이미지(일부)의 코딩에 유용한 부가(side) 정보를 제공하는 하이퍼-프리어 아키텍처(hyper-prior architecture)의 콘텍스트에서 유리하게 구현될 수 있다. 특정 일 구현에 따르면, 이 방법은:
A)
제1 잠재 텐서를 제1 하이퍼-잠재(hyper-latent) 텐서로 변환하는 단계;
제1 하이퍼-잠재 텐서를 처리하여 제3 엔트로피 모델에 기반한 제3 비트스트림을 생성하는 단계;
제3 엔트로피 모델을 사용하여 제3 비트스트림을 디코딩하여, 복원된(recovered) 제1 하이퍼-잠재 텐서를 획득하는 단계;
복원된 제1 하이퍼-잠재 텐서를 제1 하이퍼-디코딩된(hyper-decoded) 하이퍼-잠재 텐서로 변환하는 단계; 및
제1 하이퍼-디코딩된 하이퍼-잠재 텐서 및 제1 잠재 텐서에 기반하여 제1 엔트로피 모델을 생성하는 단계,
그리고
B)
제2 잠재 텐서를 제1 하이퍼-잠재 텐서와 상이한 제2 하이퍼-잠재 텐서로 변환하는 단계;
제2 하이퍼-잠재 텐서를 처리하여 제4 엔트로피 모델에 기반한 제4 비트스트림을 생성하는 단계;
제4 엔트로피 모델을 사용하여 제4 비트스트림을 디코딩하여, 복원된 제2 하이퍼-잠재 텐서를 획득하는 단계;
복원된 제2 하이퍼-잠재 텐서를 제2 하이퍼-디코딩된 하이퍼-잠재 텐서로 변환하는 단계; 및
제2 하이퍼-디코딩된 하이퍼-잠재 텐서와 제2 잠재 텐서에 기반하여 제2 엔트로피 모델을 생성하는 단계를 더 포함한다.
제1 잠재 텐서를 제1 하이퍼-잠재 텐서로 변환하는 단계는 제1 잠재 텐서의 다운 샘플링을 포함할 수 있으며, 제2 잠재 텐서를 제2 하이퍼-잠재 텐서로 변환하는 단계는 제2 잠재 텐서의 다운 샘플링을 포함할 수 있고, 예를 들어 처리 부하를 더욱 감소시키기 위해 2 또는 4의 지수를 사용한다.
따라서, 1차 컴포넌트와 연쇄된 텐서의 잠재 표현을 각각 인코딩하는 데 사용되는 생성된 제1 엔트로피 모델 및 제2 엔트로피 모델은 자기회귀 엔트로피 모델(autoregressive entropy model)일 수 있다.
엔트로피 모델 생성을 위해 신경망을 사용할 수도 있다. 예를 들어, 제3 엔트로피 모델은 제1 신경망 및 제2 신경망과, 상이한 제3 신경망에 의해 생성되고, 제4 엔트로피 모델은 제1 신경망과 제2 신경망과 제3 신경망과 상이한, 제4 신경망에 의해 생성될 수 있다. 또한, 제3 비트스트림은 제1 신경망 내지 제4 신경망과 상이한, 제5 신경망에 의해 생성되고 제1 신경망 내지 제5 신경망과 상이한, 제6 신경망에 의해 디코딩될 수 있고, 제4 비트스트림은 제1 신경망 내지 제6 신경망과 상이한, 제7 신경망에 의해 생성되고 제1 신경망 내지 제7 신경망과 상이한, 제8 신경망에 의해 디코딩될 수 있다. 또한, 제1 엔트로피 모델은 1차 컴포넌트의 잠재 표현을 인코딩하는데 사용된 제1 신경망 내지 제8 신경망과, 상이한 제9 신경망에 의해 생성될 수 있고, 연쇄된 텐서의 잠재 표현을 인코딩하는데 사용된 제2 엔트로피 모델은 제1 신경망 내지 제9 신경망과 상이한, 제10 신경망에 의해 생성될 수 있다.
제2 측면에 따르면, 적어도 이미지의 일부를 인코딩하는 방법이 제공되며, 이 방법은, (적어도 이미지의 일부에 대해) 이미지의 1차 컴포넌트에 대한 1차 잔차 컴포넌트 및 1차 잔차 컴포넌트와 상이한 이미지의 적어도 하나의 2차 컴포넌트에 대한 적어도 하나의 2차 잔차 컴포넌트를 포함하는 잔차를 제공하는 단계, 적어도 하나의 2차 잔차 컴포넌트와 독립적으로 1차 잔차 컴포넌트를 인코딩하는 단계 및 1차 잔차 컴포넌트로부터의 정보를 사용하여 적어도 하나의 2차 잔차 컴포넌트를 인코딩하는 단계를 포함한다. 이렇게 처리된 이미지는 비디오 시퀀스의 인터 프레임 또는 정지 이미지일 수 있다. 잔차는 예측된 부분으로부터 이미지의 현재 부분(일부)을 뺀 결과이며, 이미지의 컴포넌트 각각에 대해 하나의 잔차 컴포넌트를 각각 갖는다. 본 방법에 따른 조건부 잔차 인코딩은 앞서 설명한 제1 측면에 따른 방법과 동일한 장점을 가지고 수행될 수 있다. 기술 분야에 알려진 조건부 잔차 코딩(아래 상세한 설명 참조)과 비교하여, 이미지 재구성에서 정확도를 크게 잃지 않으면서 잠재 공간에서의 데이터 표현에 더 작은 채널 길이가 사용될 수 있으므로 메모리 요구 사항이 감소될 수 있다.
1차 잔차 컴포넌트와 적어도 하나의 2차 잔차 컴포넌트는 동시에(concurrently) 인코딩될 수 있다. 이미지의 1차 컴포넌트는 루마 컴포넌트일 수 있고 이미지의 적어도 하나의 2차 컴포넌트는 크로마 컴포넌트일 수 있다. 이 경우, 적어도 하나의 2차 잔차 컴포넌트는 크로마 컴포넌트에 대한 잔차 컴포넌트와 다른 크로마 컴포넌트에 대한 다른 잔차 컴포넌트를 포함할 수 있다. 다르게는, 이미지의 1차 컴포넌트는 크로마 컴포넌트일 수 있고, 이미지의 적어도 하나의 2차 컴포넌트는 루마 컴포넌트일 수 있다.
다시 말하지만 잠재 공간에서 처리가 수행될 수 있다. 제2 측면에 따른 방법의 일 구현에 따르면,
a) 1차 잔차 컴포넌트를 인코딩하는 단계는:
1차 잔차 컴포넌트를 제1 텐서로 표현하는 단계;
제1 텐서를 제1 잠재 텐서(예를 들어, 제1 텐서에 비해 너비 및/또는 높이 차원에서 더 작은 크기)로 변환하는 단계; 및
제1 잠재 텐서를 처리하여 제1 비트스트림을 생성하는 단계를 포함하며,
여기서
b) 적어도 하나의 2차 잔차 컴포넌트를 인코딩하는 단계는:
적어도 하나의 2차 잔차 컴포넌트를 제1 텐서와 상이한 제2 텐서로 표현하는 단계;
제2 텐서와 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하는 단계;
연쇄된 텐서를 제2 잠재 텐서(예를 들어, 연쇄된 텐서에 비해 너비 및/또는 높이 차원에서 더 작은 크기)로 변환하는 단계; 및
제2 잠재 텐서를 처리하여 제2 비트스트림을 생성하는 단계를 포함한다.
제2 측면에 따른 방법의 또 다른 일 구현에 따르면
a) 1차 잔차 컴포넌트를 인코딩하는 단계는:
1차 잔차 컴포넌트를 높이 차원과 너비 차원을 갖는 제1 텐서로 표현하는 단계;
제1 텐서를 제1 잠재 텐서로 변환하는 단계; 및
제1 잠재 텐서를 처리하여 제1 비트스트림을 생성하는 단계를 포함하며,
여기서
b) 적어도 하나의 2차 잔차 컴포넌트를 인코딩하는 단계는:
적어도 하나의 2차 잔차 컴포넌트를, 제1 텐서와 상이하면서 높이 차원과 너비 차원을 갖는 제2 텐서로 표현하는 단계;
높이 차원 및 너비 차원 중 적어도 하나에서의 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한지를 판정하고, 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때, 제1 텐서의 샘플 위치를 제2 텐서의 샘플 위치와 매칭하도록 조정하여 조정된 제1 텐서를 획득하는 단계;
제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때만 제2 텐서와 조정된 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하고, 그렇지 않으면 제2 텐서와 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하는 단계;
연쇄된 텐서를 제2 잠재 텐서로 변환하는 단계; 및
제2 잠재 텐서를 처리하여 제2 비트스트림을 생성하는 단계를 포함한다.
다시 말하지만, 제1 잠재 텐서의 높이 차원 또는 너비 차원의 크기 중 적어도 하나는 제1 텐서의 높이 차원 또는 너비 차원의 대응하는 크기보다 작을 수 있거나 및/또는 제2 잠재 텐서의 높이 차원 또는 너비 차원의 크기는 연쇄된 텐서의 높이 차원 또는 너비 차원의 대응하는 크기보다 작을 수 있다.
제2 측면에 따른 방법의 또 다른 일 구현에 따르면, 제1 잠재 텐서는 채널 차원을 포함하고, 제2 잠재 텐서는 채널 차원을 포함하며, 채널 차원에서의 제1 잠재 텐서의 크기는 채널 차원에서의 제2 잠재 텐서의 크기보다 크거나, 작거나, 같은 것 중 하나이다.
제2 측면에 따른 방법에서는 신경망이 또한 유리하게 사용될 수 있다. 따라서, 제1 텐서는 제1 신경망을 통해 제1 잠재 텐서로 변환될 수 있고, 연쇄된 텐서는 제1 신경망과 상이한 제2 신경망을 통해 제2 잠재 텐서로 변환될 수 있다. 이 경우, 채널 차원에서의 제1 잠재 텐서의 크기와 채널 차원에서의 제2 잠재 텐서의 크기를 결정하기 위해, 제1 신경망과 제2 신경망을 협력적으로 트레이닝시킬 수 있다. 채널 차원에서의 제1 잠재 텐서의 결정된 크기는 제1 비트스트림에서 시그널링될 수 있고, 채널 차원에서의 제2 잠재 텐서의 크기는 제2 비트스트림에서 시그널링될 수 있다.
제2 측면에 따른 방법의 또 다른 일 구현에 따르면, 제1 비트스트림은 제1 엔트로피 모델에 기반하여 생성되고, 제2 비트스트림은 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 생성된다.
하이퍼-프리어 파이프라인(pipeline)은 또한 제2 측면에 따라 개시된 조건부 잔차 코딩에 사용될 수도 있다. 따라서, 제2 측면에 따른 방법은:
A)
제1 잠재 텐서를 제1 하이퍼-잠재 텐서로 변환하는 단계;
제1 하이퍼-잠재 텐서를 처리하여 제3 엔트로피 모델에 기반한 제3 비트스트림을 생성하는 단계;
제3 엔트로피 모델을 사용하여 제3 비트스트림을 디코딩하여, 복원된 제1 하이퍼-잠재 텐서를 획득하는 단계;
복원된 제1 하이퍼-잠재 텐서를 제1 하이퍼-디코딩된 하이퍼-잠재 텐서로 변환하는 단계; 및
제1 하이퍼-디코딩된 하이퍼-잠재 텐서 및 제1 잠재 텐서에 기반하여 제1 엔트로피 모델을 생성하는 단계,
그리고
B)
제2 잠재 텐서를 제1 하이퍼-잠재 텐서와 상이한 제2 하이퍼-잠재 텐서로 변환하는 단계;
제2 하이퍼-잠재 텐서를 처리하여 제4 엔트로피 모델에 기반한 제4 비트스트림을 생성하는 단계;
제4 엔트로피 모델을 사용하여 제4 비트스트림을 디코딩하여, 복원된 제2 하이퍼-잠재 텐서를 획득하는 단계;
복원된 제2 하이퍼-잠재 텐서를 제2 하이퍼-디코딩된 하이퍼-잠재 텐서로 변환하는 단계; 및
제2 하이퍼-디코딩된 하이퍼-잠재 텐서와 제2 잠재 텐서에 기반하여 제2 엔트로피 모델을 생성하는 단계를 더 포함한다.
제1 잠재 텐서를 제1 하이퍼-잠재 텐서로 변환하는 단계는 제1 잠재 텐서의 다운 샘플링을 포함할 수 있으며, 제2 잠재 텐서를 제2 하이퍼-잠재 텐서로 변환하는 단계는 제2 잠재 텐서의 다운 샘플링을 포함할 수 있으며, 예를 들어 2 또는 4의 지수를 사용할 수 있다.
제3 엔트로피 모델은 제1 신경망 및 제2 신경망과 상이한, 제3 신경망에 의해 생성될 수 있고, 제4 엔트로피 모델은 제1 신경망과 제2 신경망과 제3 신경망과 상이한, 제4 신경망에 의해 생성될 수 있다. 또한, 제3 비트스트림은 제1 신경망 내지 제4 신경망과, 상이한 제5 신경망에 의해 생성되고 제1 신경망 내지 제5 신경망과 상이한, 제6 신경망에 의해 디코딩될 수 있으며, 제4 비트스트림은 제1 신경망 내지 제6 신경망과 상이한, 제7 신경망에 의해 생성되고 제1 신경망 내지 제7 신경망과 상이한, 제8 신경망에 의해 디코딩될 수 있다. 또한, 제1 엔트로피 모델은 제1 신경망내지 제8 신경망과 상이한, 제9 신경망에 의해 생성될 수 있고, 제2 엔트로피 모델은 제1 신경망 내지 제9 신경망과, 상이한 제10 신경망에 의해 생성될 수 있다.
전술한 측면 및 구현에서, 비트스트림으로 변환되는 텐서는 변환 프로세스 전에 양자화될 수 있다는 점에 유의한다. 양자화는 처리될 데이터의 양을 감소시키기 위해 값들의 범위를 단일 값으로 압축한다.
전술한 인코딩 방법들에 대응하여, 여기에서, 조건부 인코딩에 기반하여 적어도 이미지의 일부를 재구성하는 방법도 전술한 바와 동일 또는 유사한 이점을 제공한다. 적어도 이미지의 일부의 재구성은 신경망, 예를 들어 아래의 상세한 설명에서 설명되는 신경망의 사용에 의해 촉진될 수 있다.
제3 측면에 따르면, 적어도 이미지의 일부를 재구성하는 방법이 제공되며, 이 방법은, (적어도 이미지의 일부에 대해) 제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하는 단계 및 이미지의 1차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 제1 잠재 텐서를 처리하는 단계를 포함한다. 더욱이, 이 방법은 (적어도 이미지의 일부에 대해) 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 제1 비트스트림과 상이한 제2 비트스트림을 처리하여, 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하는 단계, 및 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 제2 잠재 텐서를 처리하는 단계를 포함한다. 원칙적으로, 이미지는 정지 이미지이거나 비디오 시퀀스의 인트라 프레임일 수 있다.
제1 엔트로피 모델 및 제2 엔트로피 모델은 위에서 설명한 하이퍼-프리어 파이프라인에 의해 제공될 수 있다.
제1 잠재 텐서는 제2 잠재 텐서의 처리와 독립적으로 처리될 수 있다. 실제로, 2차 컴포넌트에 대한 데이터가 손실되더라도 인코딩된 1차 컴포넌트를 복원할 수 있다. 압축된 원본 이미지 데이터는 안정적일 수 있으며, 제1 비트스트림과 제2 비트스트림의 병렬 처리가 가능하기 때문에 이 방법을 통해 신속하게 재구성할 수 있다.
이미지의 1차 컴포넌트는 루마 컴포넌트일 수 있고 이미지의 적어도 하나의 2차 컴포넌트는 크로마 컴포넌트일 수 있다. 특히, 제2 텐서는 2개의 2차 컴포넌트를 나타낼 수 있으며, 그 중 하나는 크로마 컴포넌트이고 다른 하나는 또 다른 크로마 컴포넌트이다. 다르게는, 이미지의 1차 컴포넌트는 크로마 컴포넌트일 수 있고, 이미지의 적어도 하나의 2차 컴포넌트는 루마 컴포넌트일 수 있다.
제3 측면에 따른 방법의 일 구현에 따르면, 제1 잠재 텐서를 처리하는 단계는 제1 잠재 텐서를 제1 텐서로 변환하는 단계를 포함하고, 제2 잠재 텐서를 처리하는 단계는 제2 잠재 텐서와 제1 잠재 텐서를 연쇄시켜 연쇄된 텐서를 획득하고 연쇄된 텐서를 제2 텐서로 변환하는 단계를 포함한다. 이들 변환 중 적어도 하나는 업 샘플링을 포함할 수 있다. 따라서, 잠재 공간에서의 처리는 YUV 공간 또는 이미지 표현에 적합하게 사용되는 임의의 다른 공간에서 컴포넌트의 정확한 재구성에 필요하기 때문에 더 낮은 해상도에서 수행될 수 있다.
제3 측면에 따른 방법의 또 다른 일 구현에 따르면, 제1 잠재 텐서 및 제2 잠재 텐서 각각은 높이 차원와 너비 차원을 갖고, 제1 잠재 텐서를 처리하는 단계는 제1 잠재 텐서를 제1 텐서로 변환하는 단계를 포함하며, 제2 잠재 텐서를 처리하는 단계는 높이 차원 및 너비 차원 중 적어도 하나에서의 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 잠재 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한지를 판정하는 단계를 포함한다. 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때, 제1 잠재 텐서의 샘플 위치가 제2 잠재 텐서의 샘플 위치와 매칭하도록 조정된다. 이에 따라 조정된 제1 잠재 텐서가 획득된다. 또한, 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때만 제2 잠재 텐서와 조정된 제1 잠재 텐서를 연쇄시켜 연쇄된 잠재 텐서를 획득하며, 그렇지 않으면 제2 잠재 텐서와 제1 잠재 텐서를 연쇄시키는 것을 수행하여 연쇄된 잠재 텐서를 획득하고 연쇄된 잠재 텐서는 제2 텐서로 변환된다.
제1 비트스트림은 제1 신경망에 의해 처리될 수 있고, 제2 비트스트림은 제1 신경망과 상이한 제2 신경망에 의해 처리될 수 있다. 제1 잠재 텐서는 제1 신경망 및 제2 신경망과 상이한, 제3 신경망에 의해 변환될 수 있고, 연쇄된 잠재 텐서는 제1 신경망과 제2 신경망과 제3 신경망과 상이한, 제4 신경망에 의해 변환될 수 있다.
제3 측면에 따른 방법의 또 다른 일 구현에 따르면, 제1 잠재 텐서는 채널 차원을 포함하고, 제2 잠재 텐서는 채널 차원을 포함하며, 채널 차원에서의 제1 잠재 텐서의 크기는 채널 차원에서의 제2 잠재 텐서의 크기보다 크거나, 작거나, 같은 것 중 하나이다. 채널 차원에서 제1 잠재 텐서와 제2 잠재 텐서의 크기에 대한 정보는 각각 제1 비트스트림 및 제2 비트스트림에서 시그널링되는 정보로부터 획득할 수 있다.
제4 측면에 따르면, 적어도 이미지의 일부를 재구성하는 방법이 제공되며, 이 방법은 (적어도 이미지의 일부에 대해) 제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하는 단계 및 이미지의 1차 컴포넌트에 대한 잔차의 1차 잔차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 제1 잠재 텐서를 처리하는 단계를 포함한다. 또한, 이 방법은 (적어도 이미지의 일부에 대해) 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하는 단계 및 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트에 대한 잔차의 적어도 하나의 2차 잔차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 제2 잠재 텐서를 처리하는 단계를 포함한다. 따라서, 1차 컴포넌트에 대한 제1 잔차 컴포넌트 및 적어도 하나의 2차 컴포넌트에 대한 제2 잔차 컴포넌트를 포함하는 잔차가 획득된다. 원칙적으로 이미지는 정지 이미지이거나 비디오 시퀀스의 인터 프레임일 수 있다.
제1 엔트로피 모델 및 제2 엔트로피 모델은 위에서 설명한 하이퍼-프리어 파이프라인에 의해 제공될 수 있다.
제1 잠재 텐서는 제2 잠재 텐서의 처리와 독립적으로 처리될 수 있다.
이미지의 1차 컴포넌트는 루마 컴포넌트일 수 있고, 이미지의 적어도 하나의 2차 컴포넌트는 크로마 컴포넌트일 수 있다. 이 경우, 제2 텐서는 2개의 2차 컴포넌트에 대한 2개의 잔차 컴포넌트를 나타낼 수 있으며, 그 중 하나는 크로마 컴포넌트이고 다른 하나는 또 다른 크로마 컴포넌트이다. 다르게는, 이미지의 1차 컴포넌트는 크로마 컴포넌트일 수 있고, 이미지의 적어도 하나의 2차 컴포넌트는 루마 컴포넌트일 수 있다.
제4 측면에 따른 방법의 일 구현에 따르면, 제1 잠재 텐서를 처리하는 단계는 제1 잠재 텐서를 제1 텐서로 변환하는 단계를 포함하고, 제2 잠재 텐서를 처리하는 단계는 제2 잠재 텐서와 제1 잠재 텐서를 연쇄시켜 연쇄된 텐서를 획득하고 연쇄된 텐서를 제2 텐서로 변환하는 단계를 포함한다.
이들 변환 중 적어도 하나는 업 샘플링을 포함할 수 있다. 따라서, 잠재 공간에서의 처리는 YUV 공간 또는 이미지 표현에 적합하게 사용되는 임의의 다른 공간에서 컴포넌트의 정확한 재구성에 필요하기 때문에 더 낮은 해상도에서 수행될 수 있다.
제4 측면에 따른 방법의 또 다른 일 구현에 따르면, 제1 잠재 텐서 및 제2 잠재 텐서 각각은 높이 차원과 너비 차원을 갖고, 제1 잠재 텐서를 처리하는 단계는 제1 잠재 텐서를 제1 텐서로 변환하는 단계를 포함하며, 제2 잠재 텐서를 처리하는 단계는, 높이 차원 및 너비 차원 중 적어도 하나에서의 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 잠재 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한지를 판정하는 것을 포함한다. 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때, 제1 잠재 텐서의 샘플 위치가 제2 잠재 텐서의 샘플 위치와 매칭하도록 조정된다. 이에 따라 조정된 제1 잠재 텐서가 획득된다. 또한, 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 제1 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때에만 제2 잠재 텐서와 조정된 제1 잠재 텐서를 연쇄시켜 연쇄된 잠재 텐서를 획득하며, 그렇지 않으면 제2 잠재 텐서와 제1 잠재 텐서를 연쇄시켜 연쇄된 잠재 텐서를 획득한다. 또한 연쇄된 잠재 텐서는 제2 텐서로 변환된다.
제1 비트스트림은 제1 신경망에 의해 처리될 수 있고, 제2 비트스트림은 제1 신경망과 상이한 제2 신경망에 의해 처리될 수 있다. 제1 잠재 텐서는 제1 신경망 및 제2 신경망과 상이한, 제3 신경망에 의해 변환될 수 있고, 연쇄된 잠재 텐서는 제1 신경망과 제2 신경망과 제3 신경망과 상이한, 제4 신경망에 의해 변환될 수 있다.
제4 측면에 따른 방법의 또 다른 일 구현에 따르면, 제1 잠재 텐서는 채널 차원을 포함하고, 제2 잠재 텐서는 채널 차원을 포함하며, 채널 차원에서의 제1 잠재 텐서의 크기는 채널 차원에서의 제2 잠재 텐서의 크기보다 크거나, 작거나, 같은 것 중 하나이다.
제1 비트스트림을 처리하는 것은 제1 비트스트림에서 시그널링된 채널 차원에서의 제1 잠재 텐서의 크기에 대한 정보를 획득하는 것을 포함할 수 있고, 제2 비트스트림을 처리하는 것은 제2 비트스트림에서 시그널링된 채널 차원에서의 제2 잠재 텐서의 크기에 대한 정보를 획득하는 것을 포함할 수 있다.
위에서 설명된 예시적인 구현들 중 임의의 것이 적절하다고 생각되면 조합될 수 있다. 위에서 설명된 측면들 및 구현들 중 임의의 것에 따른 방법은 장치에서 구현될 수 있다.
제5 측면에 따르면, 적어도 이미지의 일부를 인코딩하기 위한 장치가 제공되며, 이 장치는 하나 이상의 프로세서 및 하나 이상의 프로세서에 결합되고 하나 이상의 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 컴퓨터가 판독 가능한 비일시적 저장 매체를 포함하며, 프로그래밍은 하나 이상의 프로세서에 의해 실행될 때, 위에서 설명된 제1 측면 및 제2 측면 그리고 대응하는 구현 중 어느 하나에 따른 방법을 수행하도록 장치를 구성한다.
제6 측면에 따르면, 적어도 이미지의 일부를 재구성하기 위한 장치가 제공되며, 이 장치는 하나 이상의 프로세서 및 하나 이상의 프로세서에 결합되고 하나 이상의 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 컴퓨터가 판독 가능한 비일시적 저장 매체를 포함하며, 프로그래밍은 하나 이상의 프로세서에 의해 실행될 때, 위에서 설명된 제3 측면 및 제4 측면 그리고 대응하는 구현 중 어느 하나에 따른 방법을 수행하도록 장치를 구성한다.
제7 측면에 따르면, 적어도 이미지의 일부를 인코딩하기 위한 처리 장치가 제공되며, 처리 장치는 (적어도 이미지의 일부에 대해) 이미지의 적어도 하나의 2차 컴포넌트와 독립적으로 이미지의 1차 컴포넌트를 인코딩하고, (적어도 이미지의 일부에 대해) 1차 컴포넌트로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 인코딩하도록 구성된 처리 회로를 포함한다.
이 처리 장치는 제1 측면에 따른 방법의 단계를 수행하도록 구성되고, 위에서 설명된 대응하는 구현 중 하나 이상의 단계를 수행하도록 구성될 수도 있다.
제8 측면에 따르면, 적어도 이미지의 일부를 인코딩하기 위한 처리 장치가 제공되며, 처리 장치는 이미지의 1차 컴포넌트에 대한 1차 잔차 컴포넌트 및 1차 잔차 컴포넌트와 상이한 이미지의 적어도 하나의 2차 컴포넌트에 대한 적어도 하나의 2차 잔차 컴포넌트를 포함하는 잔차를 제공하고, 적어도 하나의 2차 잔차 컴포넌트와 독립적으로 1차 잔차 컴포넌트를 인코딩하며, 그리고 1차 잔차 컴포넌트로부터의 정보를 사용하여 적어도 하나의 2차 잔차 컴포넌트를 인코딩하도록 구성된 처리 회로를 포함한다.
이 처리 장치는 제2 측면에 따른 방법의 단계를 수행하도록 구성되고, 이는 위에서 설명된 대응하는 구현 중 하나 이상의 단계를 수행하도록 구성될 수도 있다.
제9 측면에 따르면, 적어도 이미지의 일부를 재구성하기 위한 처리 장치가 제공되며, 처리 장치는 제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하고, 제1 잠재 텐서를 처리하여 이미지의 1차 컴포넌트를 나타내는 제1 텐서를 획득하며, 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하고, 그리고 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 제2 잠재 텐서를 처리하도록 구성된 처리 회로를 포함한다.
이 처리 장치는 제3 측면에 따른 방법의 단계를 수행하도록 구성되고, 이는 위에서 설명된 대응하는 구현 중 하나 이상의 단계를 수행하도록 구성될 수도 있다.
제10 측면에 따르면, 적어도 이미지의 일부를 재구성하기 위한 처리 장치가 제공되며, 처리 장치는 제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하고, 제1 잠재 텐서를 처리하여 이미지의 1차 컴포넌트에 대한 잔차의 1차 잔차 컴포넌트를 나타내는 제1 텐서를 획득하며, 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하며, 그리고 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트에 대한 잔차의 적어도 하나의 2차 잔차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 제2 잠재 텐서를 처리하도록 구성된 처리 회로를 포함한다.
이 처리 장치는 제4 측면에 따른 방법의 단계를 수행하도록 구성되고, 이는 위에서 설명된 대응하는 구현 중 하나 이상의 단계를 수행하도록 구성될 수도 있다.
또한, 제11 측면에 따르면, 하나 이상의 프로세서에서 실행될 때 전술한 측면 및 구현 중 임의의 것에 따른 방법의 단계를 수행하는 코드를 포함하는, 비일시적 매체에 저장된 컴퓨터 프로그램이 제공된다.
이하에서는 첨부된 도면과 그림을 참조하여 본 발명의 기술적 배경과 실시예를 더욱 상세하게 설명한다.
도 1은 신경망의 레이어에 의해 처리되는 채널을 예시하는 개략도이다.
도 2는 신경망의 오토인코더 유형을 예시하는 개략도이다.
도 3은 하이퍼프리어 모델을 포함하는 네트워크 아키텍처를 예시하는 개략도이다.
도 4는 머신 비전 태스크와 같은 머신 기반 태스크를 위한 클라우드 기반 솔루션의 구조를 예시하는 블록도이다.
도 5는 엔드 투 엔드 트레이닝 가능한 비디오 압축 프레임워크의 구조를 예시하는 블록도이다.
도 6은 모션 벡터(MV) 압축을 위한 네트워크를 예시하는 블록도이다.
도 7은 기술 분야의 학습된 이미지 압축 구성을 예시하는 블록도이다.
도 8은 기술 분야의 또 다른 학습된 이미지 압축 구성을 예시하는 블록도이다.
도 9는 조건부 코딩의 개념을 예시한다.
도 10은 잔차 코딩의 개념을 예시한다.
도 11은 잔차 조건부 코딩의 개념을 예시한다.
도 12는 본 발명의 실시예에 따른 조건부 인트라 코딩을 예시한다.
도 13은 본 발명의 실시예에 따른 조건부 잔차 코딩을 예시한다.
도 14는 본 발명의 실시예에 따른 조건부 코딩을 예시한다.
도 15는 본 발명의 실시예에 따른 YUV420 포맷의 입력 데이터에 대한 조건부 인트라 코딩을 예시한다.
도 16은 본 발명의 실시예에 따른 YUV444 포맷의 입력 데이터에 대한 조건부 인트라 코딩을 예시한다.
도 17은 본 발명의 실시예에 따른 YUV420 포맷의 입력 데이터에 대한 조건부 잔차 코딩을 예시한다.
도 18은 본 발명의 실시예에 따른 YUV444 포맷의 입력 데이터에 대한 조건부 잔차 코딩을 예시한다.
도 19는 본 발명의 다른 실시예에 따른 YUV420 포맷의 입력 데이터에 대한 조건부 잔차 코딩을 예시한다.
도 20은 본 발명의 다른 실시예에 따른 YUV444 포맷의 입력 데이터에 대한 조건부 잔차 코딩을 예시한다.
도 21은 본 발명의 실시예에 따라 적어도 이미지의 일부를 인코딩하는 예시적인 방법을 예시하는 흐름도이다.
도 22는 본 발명의 다른 실시예에 따라 적어도 이미지의 일부를 인코딩하는 예시적인 방법을 예시하는 흐름도이다.
도 23은 본 발명의 실시예에 따라 적어도 이미지의 일부를 재구성하는 예시적인 방법을 예시하는 흐름도이다.
도 24는 본 발명의 다른 실시예에 따라 적어도 이미지의 일부를 재구성하는 예시적인 방법을 예시하는 흐름도이다.
도 25는 본 발명의 실시예에 따라 적어도 이미지의 일부를 인코딩하거나 재구성하는 방법을 수행하도록 구성된 처리 장치를 예시한다.
도 26은 본 발명의 실시예를 구현하도록 구성된 비디오 코딩 시스템의 예를 예시하는 블록도이다.
도 27은 본 발명의 실시예를 구현하도록 구성된 비디오 코딩 시스템의 또 다른 예를 예시하는 블록도이다.
도 28은 인코딩 장치 또는 디코딩 장치의 예를 예시하는 블록도이다.
도 29는 인코딩 장치 또는 디코딩 장치의 다른 예를 예시하는 블록도이다.
다음의 설명에서, 본 개시의 일부를 형성하고, 예시를 통해 본 발명의 실시예의 특정 측면 또는 본 발명의 실시예가 사용될 수 있는 특정 측면을 도시하는 첨부 도면을 참조한다. 본 발명의 실시예는 다른 측면에서 사용될 수 있으며 도면에 도시되지 않은 구조적 또는 논리적 변경을 포함한다는 것이 이해된다. 따라서, 다음의 상세한 설명은 제한적인 의미로 받아들여져서는 안 되며, 본 발명의 범위는 첨부된 청구범위에 의해 정의된다.
예를 들어, 설명된 방법과 관련된 개시는 이 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해서도 적용될 수 있으며 그 반대의 경우도 마찬가지라는 것이 이해된다. 예를 들어, 하나 또는 복수의 특정 방법 단계가 설명되면, 대응하는 디바이스는 하나 이상의 유닛이 도면에 명시적으로 설명되거나 도시되지 않더라도, 설명된 하나 또는 복수의 방법 단계를 수행하기 위해 하나 또는 복수의 유닛, 예를 들어 기능 유닛(예: 하나 또는 복수의 단계를 수행하는 하나의 유닛, 또는 복수의 단계 중 하나 이상을 각각 수행하는 복수의 유닛)을 포함할 수 있다. 한편, 예를 들어 특정 장치를 하나 또는 복수의 유닛, 예를 들어 기능 유닛에 기반하여 기술하면, 대응하는 방법은 하나 또는 복수의 단계가 도면에 명시적으로 설명되거나 도시되지 않더라도, 하나 또는 복수의 유닛의 기능을 수행하기 위해 하나의 단계(예: 하나 또는 복수의 유닛의 기능을 수행하는 하나의 단계, 또는 복수의 유닛의 하나 이상의 유닛의 기능을 각각 수행하는 복수의 단계)를 포함할 수 있다. 또한, 달리 구체적으로 언급되지 않는 한, 여기에서 기술된 다양한 예시적인 실시예 및/또는 측면의 특징은 서로 조합될 수 있다는 것이 이해된다.
다음에서는 사용되는 일부 기술 용어에 대한 개요를 제공한다.
인공 신경망
인공 신경망(artificial neural network, ANN) 또는 연결주의 시스템은 동물의 뇌를 구성하는 생물학적 신경망에서 막연하게 영감을 받은 컴퓨팅 시스템이다. 이러한 시스템은 일반적으로 태스크 특정 규칙으로 프로그래밍되지 않고 예시(example)를 고려하여 태스크를 수행하기 위해 "학습(learn)"한다. 예를 들어, 이미지 인식에서는 "고양이" 또는 "고양이 없음"으로 수동으로 레이블이 지정된 예시 이미지를 분석하고 그 결과를 사용하여 다른 이미지에서 고양이를 식별하는 것에 의해, 고양이가 포함된 이미지를 식별하는 것을 학습할 수 있다. 이는 고양이에 대한 사전 지식 예를 들어, 모피, 꼬리, 수염 및 고양이 같은 얼굴을 가지고 있다는 것 없이 이를 수행한다. 대신, 처리하는 예시로부터 특성을 식별하는 것을 자동으로 생성한다.
ANN은 생물학적 뇌의 뉴런을 느슨하게 모델링하는 인공 뉴런이라고 불리는 연결된 유닛 또는 노드의 모음에 기반한다. 생물학적 뇌의 시냅스와 마찬가지로 각 연결(connection)은 다른 뉴런에 신호를 전송할 수 있다. 신호를 수신한 인공 뉴런은 이를 처리하고 신호를 연결된 뉴런에 송신할 수 있다.
ANN 구현에서 연결에서의 "신호"는 실수이고 각 뉴런의 출력은 입력 합계의 일부 비선형 함수에 의해 계산된다. 연결을 에지(edge)라고 한다. 뉴런과 에지에는 일반적으로 학습이 진행됨에 따라 조정되는 가중치가 있다. 가중치에 따라 연결에서의 신호 강도(strength)가 증가하거나 감소한다. 뉴런에는 집계된(aggregated) 신호가 임계값을 초과하는 경우에만 신호가 송신되도록 임계값이 있을 수 있다. 일반적으로 뉴런은 레이어(layer)로 집계된다. 서로 다른 레이어는 입력에 대해 서로 다른 변환을 수행할 수 있다. 신호는 여러 번 레이어를 순회한 후, 제1 레이어(입력 레이어)에서 마지막 레이어(출력 레이어)로 이동한다.
ANN 접근 방식의 원래 목표는 인간의 뇌와 동일한 방식으로 문제를 해결하는 것이었다. 시간이 지남에 따라 특정 태스크를 수행하는 데 관심이 옮겨져 생물학과의 편차가 발생했다. ANN은 컴퓨터 비전, 음성 인식(speech recognition), 기계 번역(machine translation), 소셜 네트워크 필터링, 보드 및 비디오 게임 플레이, 의료 진단, 심지어 페인팅과 같이 전통적으로 인간에게만 국한된 것으로 간주되었던 활동을 포함한 다양한 태스크에 사용되었다.
콘볼루션 신경망
"콘볼루션 신경망"(convolutional neural network, CNN)이라는 이름은 네트워크가 콘볼루션이라는 수학적 연산을 사용함을 지시한다(indicate). 콘볼루션은 특수한 종류의 선형 연산이다. 콘볼루션 네트워크는 레이어 중 적어도 하나에서 일반 행렬 곱셈 대신 콘볼루션을 사용하는 단순한 신경망이다.
도 1은 CNN과 같은 신경망에 의한 일반적인 처리 개념을 개략적으로 예시한다. 콘볼루션 신경망은 입력 및 출력 레이어, 그리고 여러 개의 은닉(hidden) 레이어로 구성된다. 입력 레이어는 처리를 위해 입력(예컨대 도 1에 도시된 이미지의 일부)이 제공되는 레이어이다. CNN의 은닉 레이어는 일반적으로 곱셈 또는 기타 내적과 콘볼루션되는 일련의 콘볼루션 레이어로 구성된다. 레이어의 결과는 하나 이상의 특징(feature) 맵(도 1의 f.maps)이며, 채널이라고도 한다. 레이어의 일부 또는 전체에 서브샘플링이 포함될 수 있다. 결과적으로, 특징 맵은 도 1에 예시된 바와 같이 더 작아질 수 있다. CNN의 활성화 함수(activation function)는 일반적으로 RELU(Rectified Linear Unit) 레이어이며 그 뒤에 풀링(pooling) 레이어, 완전 연결된 레이어 및 정규화(normalization) 레이어와 같은 추가 콘볼루션이 뒤따르며, 이는 입력과 출력이 활성화 함수와 최종 콘볼루션에 의해 마스킹되기 때문에 은닉 레이어라고 한다. 레이어를 구어체로 콘볼루션이라고 부르지만 이는 관례에 따른 것이다. 수학적으로 이는 기술적으로 슬라이딩 내적(sliding dot product) 또는 상호 상관(cross-correlation)이다. 이는 특정 인덱스 포인트에서 가중치가 결정되는 방식에 영향을 준다는 점에서 행렬의 인덱스에 중요한 의미를 갖는다.
이미지 처리를 위해 CNN을 프로그래밍할 때, 도 1에 도시된 바와 같이, 입력은 모양 (이미지 수)×(이미지 너비)×(이미지 높이)×(이미지 깊이)을 갖는 텐서이다. 그런 다음 콘볼루션 레이어를 통과한 후, 이미지는 모양(이미지 수)×(특징 맵 너비)×(특징 맵 높이)×(특징 맵 채널)을 갖는 특징 맵으로 추상화된다. 신경망 내의 콘볼루션 레이어에는 다음과 같은 속성이 있어야 한다. 너비와 높이로 정의된 콘볼루션 커널(하이퍼-파라미터). 입력 채널 및 출력 채널의 수(하이퍼-파라미터). 콘볼루션 필터(입력 채널)의 깊이는 입력 특징 맵의 채널 수(깊이)와 같아야 한다.
과거에는 이미지 인식을 위해 전통적인 멀티레이어 퍼셉트론(multilayer perceptron, MLP) 모델이 사용되었다. 그러나 노드 간의 완전한 연결로 인해 높은 차원성 문제가 발생했으며 고해상도 이미지에서는 잘 스케일링되지 않았다. RGB 색상 채널이 포함된 1000×1000 픽셀 이미지는 300만 개의 가중치를 가지며, 이는 전체 연결(full connectivity)을 통해 대규모로 효율적으로 처리하기에는 너무 높다. 또한 이러한 네트워크 아키텍처는 데이터의 공간적 구조를 고려하지 않으며, 멀리 떨어져 있는 입력 픽셀을 서로 가까운 픽셀과 동일한 방식으로 처리한다. 이는 계산적으로나 의미적으로 이미지 데이터 내 참조의 지역성(locality)을 무시한다. 따라서 뉴런의 완전한 연결은 공간적으로 로컬 입력 패턴에 의해 지배되는 이미지 인식과 같은 목적에는 낭비이다.
콘볼루션 신경망은 시각 피질의 동작(behavior)을 모방하도록 특별히 설계된 멀티레이어 퍼셉트론의 생물학적 영감을 받은 변형이다. 이러한 모델은 자연 이미지에 존재하는 강력한 공간적 로컬 상관 관계를 활용하는 것에 의해, MLP 아키텍처로 인한 문제를 완화시킨다. 콘볼루션 레이어는 CNN의 핵심 빌딩 블록이다. 레이어의 파라미터는 학습 가능한(learnable) 필터 세트(위에서 언급한 커널)로 구성되며, 이는 작은 수용 필드(receptive field)를 갖고 있지만 입력 볼륨(volume)의 전체 깊이까지 확장된다. 순방향 전달(forward pass) 동안, 각 필터는 입력 볼륨의 너비와 높이에 걸쳐 콘볼루션되어, 필터의 엔트리와 입력 사이의 내적을 계산하고, 그 필터의 2차원 활성화 맵을 생성한다. 결과적으로, 네트워크는 입력의 일부 공간적 포지션(spatial position)에서 특정 유형의 특징을 검출할 때 활성화되는 필터를 학습시킨다.
깊이 차원을 따라 모든 필터에 대한 활성화 맵을 쌓으면 콘볼루션 레이어의 전체 출력 볼륨(full output volume)이 형성된다. 따라서 출력 볼륨의 모든 엔트리는 입력의 작은 영역을 보고 동일한 활성화 맵의 뉴런과 파라미터를 공유하는 뉴런의 출력으로 해석될 수도 있다. 특징 맵 또는 활성화 맵은 지정된 필터에 대한 출력 활성화이다. 특징 맵과 활성화는 동일한 의미를 갖는다. 일부 논문에서는 이미지의 서로 다른 부분의 활성화에 대응하는 매핑이기 때문에 활성화 맵이라고 하며, 이미지에서 특정 종류의 특징이 발견되는 위치에 대한 매핑이기도 하므로 특징 맵이라고 한다. 활성화가 높다는 것은 특정 특징이 발견되었음을 의미한다.
CNN의 또 다른 중요한 개념은 비선형 다운 샘플링의 한 형태인 풀링(pooling)이다. 풀링을 구현하는 비선형 함수는 여러 가지가 있으며, 그 중 최대(max) 풀링이 가장 일반적이다. 입력 이미지를 겹치지 않는 직사각형 세트로 파티셔닝하고 각 서브 영역에 대해 최대값을 출력한다.
직관적으로 특징의 정확한 위치(location)는 다른 특징에 비해 대략적인 위치보다 덜 중요하다. 이것이 콘볼루션 신경망에서 풀링을 사용하는 기본 아이디어이다. 풀링 레이어는 표현의 공간 크기를 점진적으로 감소시키고 네트워크의 파라미터 수, 메모리 풋프린트 및 계산량을 감소시켜 과적합(overfitting)을 제어하는 역할을 한다. CNN 아키텍처에서는 연속적인 콘볼루션 레이어 사이에 주기적으로 풀링 레이어를 삽입하는 것이 일반적이다. 풀링 연산은 또 다른 형태의 변환 불변성(translation invariance)을 제공한다.
풀링 레이어는 입력의 모든 깊이 슬라이스에 대해 독립적으로 작동하여 공간적으로 크기를 조정한다. 가장 일반적인 형태는 입력의 모든 깊이 슬라이스에서 너비와 높이를 따라 2씩 2개의 다운 샘플의 스트라이드(stride)가 적용되어 활성화의 75%를 폐기하는 필터를 갖는 풀링 레이어이다. 이 경우 모든 최대 연산은 4개 숫자를 초과한다. 깊이 차원은 변경되지 않는다.
풀링 유닛은 최대 풀링 외에도, 평균 풀링 또는 ℓ2-노름(norm) 풀링과 같은 다른 기능을 사용할 수 있다. 평균 풀링은 역사적으로 자주 사용되었지만 최근에는 실제로 더 나은 성능을 발휘하는 최대 풀링에 비해 선호도가 떨어졌다. 표현의 크기에서의 공격적인 축소로 인해, 최근에는 더 작은 필터를 사용하거나 풀링 레이어를 함께 폐기하는 경향이 있다. "관심 영역(region of Interest)" 풀링(ROI 풀링이라고도 함)은 출력 크기가 고정되고 입력 사각형이 파라미터인 최대 풀링의 변형이다. 풀링은 Fast R-CNN 아키텍처에 기반하는 객체 검출을 위한 콘볼루션 신경망의 중요한 컴포넌트이다.
위에서 언급한 ReLU는 Rectified Linear Unit의 약어로, 비포화 활성화 함수를 적용한 것이다. 음수 값을 0으로 설정하는 것에 의해 활성화 맵으로부터 음수 값을 효과적으로 제거한다. 이는 콘볼루션 레이어의 수용 필드에 영향을 주지 않고 결정 함수와 전체 네트워크의 비선형 속성을 증가시킨다. 비선형성을 높이기 위해 포화 쌍곡 탄젠트(saturating hyperbolic tangent) 및 시그모이드 함수와 같은 다른 함수도 사용된다. ReLU는 일반화 정확도에 큰 영향을 주지 않으면서 신경망을 몇 배 더 빠르게 트레이닝시키기 때문에 다른 기능보다 선호되는 경우가 많다.
여러 콘볼루션 및 최대 풀링 레이어 후에, 신경망의 상위 레벨 추론(reasoning)은 완전 연결된 레이어를 통해 수행된다. 완전 연결된 레이어의 뉴런은 일반(비콘볼루션) 인공 신경망에서 볼 수 있듯이 이전 레이어의 모든 활성화에 대한 연결을 갖는다. 따라서 이들 활성화는 행렬 곱셈과 바이어스 오프셋(학습된 또는 고정된 바이어스 항의 벡터 추가)을 사용하여 아핀(affine) 변환으로 계산될 수 있다.
"손실 레이어"는 트레이닝이 예측된(출력) 레이블과 참(true) 레이블 간의 편차에 페널티를 적용하는 방법을 지정하며 일반적으로 신경망의 최종 레이어이다. 서로 다른 태스크에 적합한 다양한 손실 함수가 사용될 수 있다. 소프트맥스(Softmax) 손실은 K개의 상호 배타적인 클래스의 단일 클래스를 예측하는 데 사용된다. 시그모이드 교차 엔트로피 손실은 [0, 1]에서 K개의 독립 확률 값을 예측하는 데 사용된다. 유클리드 손실은 실제 값 레이블로 회귀하는 데 사용된다.
요약하면, 도 1은 일반적인 콘볼루션 신경망의 데이터 흐름을 도시한다. 먼저, 입력 이미지는 콘볼루션 레이어를 통과하고 이 레이어의 학습 가능한 필터 세트의 필터 수에 대응하는 여러 채널로 구성된 특징 맵으로 추상화된다. 그런 다음 특징 맵은 예를 들어 풀링 레이어를 사용하여 서브샘플링되며, 이는 특징 맵에서 각 채널의 차원을 감소시킨다. 다음 데이터는 또 다른 콘볼루션 레이어로 이동하며, 이는 출력 채널의 수가 상이할 수 있어서, 특징 맵의 채널 수가 상이할 수 있다. 위에서 언급한 바와 같이, 입력 채널과 출력 채널의 수는 레이어의 하이퍼-파라미터이다. 네트워크의 연결성을 구축하기 위해, 파라미터들은 연결된 두 레이어 간에 동기화되어야 하며, 예컨대 현재 레이어에 대한 입력 채널 수는 이전 레이어의 출력 채널 수와 같아야 한다. 입력 데이터 예를 들어, 이미지를 처리하는 제1 레이어의 경우, 입력 채널 수는 일반적으로 데이터 표현의 채널의 수, 예를 들어 이미지나 비디오의 RGB 또는 YUV 표현을 위한 3개의 채널 또는 회색조 이미지나 비디오 표현을 위한 1개의 채널과 같다.
오토인코더와 비지도 학습
오토인코더는 비지도(unsupervised) 방식으로 효율적인 데이터 코딩을 학습하는 데 사용되는 인공 신경망의 한 유형이다. 그 개략도가 도 2에 도시되어 있다. 오토인코더의 목적은 신호 "노이즈"를 무시하도록 네트워크를 트레이닝시키는 것에 의해, 일반적으로 차원 축소를 위해 데이터 세트에 대한 표현(인코딩)을 학습하는 것이다. 축소 측면과 함께 재구성 측도 학습되는데, 여기서 오토인코더는 감소된 인코딩으로부터 원래 입력에 최대한 가까운 표현을 생성하려고 시도하므로 그 이름이 붙여졌다. 가장 간단한 경우, 하나의 은닉 레이어가 주어지면, 오토인코더의 인코더 스테이지는 입력 를 가져와서 이를 에 매핑한다.
.
이 이미지 는 일반적으로 코드, 잠재 변수 또는 잠재 표현이라고 한다. 여기서 는 시그모이드 함수나 정류된 선형 유닛(rectified linear unit)과 같은 엘리먼트별 활성화 함수(element-wise activation function)이다. 는 가중치 행렬이고 은 바이어스 벡터이다. 가중치와 바이어스는 일반적으로 무작위로 초기화된 다음 역전파를 통해 트레이닝 중에 반복적으로 업데이트된다. 그 후, 오토인코더의 디코더 스테이지는 h를 와 동일한 모양의 재구성 에 매핑한다:
여기서 디코더에 대한 , 은 인코더에 대한 대응하는 , 와 관련이 없을 수 있다.
변분(variational) 오토인코더 모델은 잠재 변수의 분포에 관해 강력한 가정을 한다. 그들은 잠재 표현 학습을 위한 변분 접근법(variational approach)을 사용하며, 이로 인해 추가 손실 컴포넌트와 SGVB(Stochastic Gradient Variational Bayes) 추정기라는 트레이닝 알고리즘에 대한 특정 추정기가 생성된다. 데이터는 방향성 그래픽 모델 에 의해 생성되고 인코더는 사후 분포 에 대한 근사 를 학습하고 있다고 가정하며, 여기서 및 θ는 각각 인코더(인식 모델)와 디코더(생성 모델)의 파라미터를 나타낸다. VAE의 잠재 벡터의 확률 분포는 일반적으로 표준 오토인코더보다 트레이닝 데이터의 확률 분포와 훨씬 더 가깝게 매칭된다. VAE의 목표는 다음과 같은 포맷을 갖는다:
여기서, 는 쿨백-라이블러 발산(Kullback-Leibler divergence)을 의미한다. 잠재 변수에 대한 선행(prior)은 일반적으로 중심 등방성 다변량 가우스(centered isotropic multivariate Gaussian) 으로 설정된다. 보통, 변분 및 우도 분포(likelihood distributions)의 모양은 인수분해된 가우스가 되도록 선택된다:
여기서 는 인코더 출력이고 는 디코더 출력이다.
인공 신경망 분야, 특히 콘볼루션 신경망 분야의 최근 발전으로 연구자들은 신경망 기반 기술을 이미지 및 비디오 압축 태스크에 적용하는 데 관심을 갖게 되었다. 예를 들어, 변분 오토인코더 기반의 네트워크를 사용하는 엔드 투 엔드 최적화된 이미지 압축(End-to-end Optimized Image Compression)이 제안되었다. 따라서 데이터 압축은 공학에서 근본적이고 잘 연구된 문제로 간주되며, 주어진 이산 데이터 앙상블에 대한 코드를 최소한의 엔트로피로 설계한다는 목표로 일반적으로 공식화된다. 솔루션은 데이터의 확률적 구조에 대한 지식에 크게 의존하므로 문제는 확률적 소스 모델링과 밀접하게 관련되어 있다. 그러나 모든 실제 코드는 유한한 엔트로피를 가져야 하기 때문에, 연속 값 데이터(continuous-valued data)(예컨대, 이미지 픽셀 강도의 벡터)를 유한한 이산 값 세트로 양자화해야 하며, 이로 인해 에러가 발생한다. 손실 압축 문제로 알려진 이 콘텍스트에서, 이산화된 표현의 엔트로피(레이트)와 양자화로부터 발생하는 에러(왜곡)라는 두 가지 경쟁 비용(cost)을 절충해야 한다. 제한된 용량 채널을 통한 데이터 저장 또는 전송과 같은 서로 다른 압축 애플리케이션에는 다양한 레이트-왜곡 트레이드-오프가 필요하다. 레이트와 왜곡의 공동 최적화는 어렵다. 추가적인 제약이 없으면 고차원 공간에서의 최적 양자화의 일반적인 문제는 다루기 어렵다. 이러한 이유로, 대부분의 기존 이미지 압축 방법은 데이터 벡터를 적합한 연속 값 표현으로 선형 변환하고, 그의 엘리먼트를 독립적으로 양자화한 다음, 무손실 엔트로피 코드를 사용하여 결과 이산 표현을 인코딩하는 방식으로 작동한다. 이 방식은 변환의 중심 역할로 인해 변환 코딩이라고 한다. 예를 들어 JPEG는 픽셀 블록에 이산 코사인 변환을 사용하고, JPEG 2000은 다중 규모 직교 웨이블릿 분해(multi-scale orthogonal wavelet decomposition)를 사용한다. 일반적으로 변환 코딩 방법의 세 가지 컴포넌트 - 변환, 양자화기, 엔트로피 코드 - 는 (종종 수동 파라미터 조정을 통해) 개별적으로 최적화된다. HEVC, VVC 및 EVC와 같은 최신 비디오 압축 표준도 변환된 표현을 사용하여 예측 후 잔차 신호를 코딩한다. 이산 코사인 및 사인 변환(DCT, DST)은 물론 저주파 비분리형 수동 최적화 변환(low frequency non-separable manually optimized transform, LFNST)과 같은 여러 변환이 그 목적을 위해 사용된다.
변분 이미지 압축
J. Balle, L. Valero Laparra, 및 E. P. Simoncelli (2015)에서. "일반화된 정규화 변환을 사용하는 이미지의 밀도 모델링". 2016 학습 표현을 위한 제4회 국제 컨퍼런스에서 발표된 arXiv e-prints에서(이하 "Balle"라고 함), 저자는 비선형 변환에 기반한 이미지 압축 모델의 엔드 투 엔드 최적화를 위한 프레임워크를 제안했다. 이전에 저자는 지각 왜곡의 측정에 최적화된 선형-비선형 블록 변환으로 구성된 모델이 평균 제곱 오차(mean squared error, MSE)에 최적화된 모델에 비해 시각적으로 우수한 성능을 나타냄을 입증했다. 여기서 저자는 MSE에 맞게 최적화하지만 선형 콘볼루션과 비선형성의 캐스케이드로 구축된 보다 유연한 변환을 사용한다. 특히, 저자는 생물학적 시각 시스템에서 뉴런 모델에서 영감을 얻은 일반화된 분할 정규화(generalized divisive normalization, GDN) 조인트 비선형성을 사용하며, 이미지 밀도를 가우시안화하는 데 효과적인 것으로 입증되었다. 이 캐스케이드된 변환 뒤에는 균일한 스칼라 양자화가 뒤따르며(즉, 각 엘리먼트는 가장 가까운 정수로 반올림됨), 이는 원래 이미지 공간에서 파라메트릭 형태의 벡터 양자화를 효과적으로 구현한다. 압축된 이미지는 근사 파라메트릭 비선형 역변환을 사용하여 이러한 양자화된 값으로부터 재구성된다.
레이트-왜곡 곡선을 따라 임의의 원하는 포인트에 대해, 분석 변환 및 합성 변환 모두의 파라미터는 확률적 경사하강법(stochastic gradient descent)을 사용하여 공동으로 최적화된다. 양자화가 있는 경우(거의 모든 곳에서 0 그레이디언트를 생성함) 이를 달성하기 위해, 저자는 확률 모델의 연속적인 완화에 기반한 프록시 손실 함수를 사용하여, 양자화 단계를 추가 균일 노이즈로 대체한다. 완화된 레이트-왜곡 최적화 문제는 생성 이미지 모델, 특히 변분 오토인코더에서 적합하도록 사용되는 문제와 일부 유사하지만, 레이트-왜곡 곡선 전체를 따라 이산 문제에 근접하도록 저자가 부과하는 제약 조건이 상이하다. 마지막으로, 저자는 차등 또는 이산 엔트로피 추정치를 보고하는 대신에, 엔트로피 코드를 구현하고 실제 비트 레이트를 사용하여 성능을 보고함으로써 완전한 손실 압축 방법으로서 솔루션의 타당성을 입증한다.
J. Balle에서는 변형 오토인코더에 기반한 이미지 압축을 위한 엔드 투 엔드 트레이닝 가능한 모델이 설명되어 있다. 모델은 잠재 표현의 공간적 종속성을 효과적으로 포착하기 위해 하이퍼프리어(hyperprior)를 통합한다. 이 하이퍼프리어는 디코딩 측에도 전송되는 부가 정보와 관련이 있으며, 이는 거의 모든 최신 이미지 코덱에 보편적인 개념이지만 ANN을 사용한 이미지 압축에서는 거의 탐구되지 않았다. 기존 오토인코더 압축 방법과 달리, 이 모델은 기본 오토인코더와 함께 콤플렉스(complex)를 미리 트레이닝한다. 저자는 널리 사용되는 MS-SSIM 인덱스를 사용하여 시각적 품질을 측정할 때 이 모델이 최첨단 이미지 압축으로 이어지고, 제곱 오차(PSNR)에 기반한 보다 전통적인 메트릭을 사용하여 평가될 때 게시된 ANN 기반 방법을 능가하는 레이트-왜곡 성능을 제공한다는 것을 보여준다.
도 3은 하이퍼프리어 모델을 포함하는 네트워크 아키텍처를 도시한다. 왼쪽 측 (ga, gs)은 이미지 오토인코더 아키텍처를 도시하며, 오른쪽 측 (ha, hs)은 하이퍼프리어를 구현하는 오토인코더에 대응한다. 인수분해된 이전 모델(factorized-prior model)은 분석 변환 및 합성 변환(ga 및 gs)을 위해 동일한 아키텍처를 사용한다. Q는 양자화를 나타내고, AE, AD는 각각 산술 인코더와 산술 디코더를 나타낸다. 인코더는 입력 이미지 x를 ga에 적용하여 공간적으로 다양한 표준 편차를 갖는 응답 y(잠재 표현)를 생성한다. 인코딩 ga는 서브샘플링 및 활성화 함수로서 GDN(generalized divisive normalization)을 갖춘 복수의 콘볼루션 레이어를 포함한다.
응답은 z의 표준 편차의 분포를 요약하여 ha에 입력된다. z는 양자화되고, 압축되어 부가 정보로서 전송된다. 그런 다음 인코더는 양자화된 벡터 를 사용하여, 산술 코딩(arithmetic coding, AE)에 대한 확률 값(또는 주파수 값)을 획득하는 데 사용되는 표준 편차의 공간 분포인 를 추정하고, 이를 사용하여 양자화된 이미지 표현 (또는 잠재 표현)을 압축하고 전송한다. 디코더는 먼저 압축된 신호로부터 를 복원한다. 그런 다음 hs를 사용하여 를 획득하며, 이는 도 성공적으로 복원할 수 있는 올바른 확률 추정치(probability estimate)를 제공한다. 그런 다음 를 gs에 공급하여 재구성된 이미지를 획득한다.
추가 작업에서는 예를 들어 PixelCNN++ 아키텍처에 기반하여 자기회귀 모델을 도입하는 것에 의해 하이퍼프리어에 의한 확률 모델링이 더욱 향상되었으며, 이는 이미 디코딩된 잠재 공간의 심볼의 콘텍스트를 활용하여 디코딩될 추가 심볼의 더 나은 확률 추정을 가능하게 하며, 예를 들어, L. Zhou, Zh. Sun, X. Wu, J. Wu의 어텐션 메카니즘을 이용한 엔드 투 엔드 최적화된 이미지 압축(CVPR 2019)(이하 "Zhou"라 함)의 도 2에 예시된 것과 같다.
기계 태스크를 위한 클라우드 솔루션
기계용 비디오 코딩(Video Coding for Machines, VCM)은 요즘 인기 있는 또 다른 컴퓨터 과학 분야이다. 이 접근법의 주요 아이디어는 객체 세그멘테이션, 검출 및 인식과 같은 컴퓨터 비전(computer vision, CV) 알고리즘에 의한 추가 처리를 목표로 하는 이미지 또는 비디오 정보의 코딩된 표현을 전송하는 것이다. 인간의 인식을 목표로 하는 전통적인 이미지 및 비디오 코딩과 달리, 품질 특성은 컴퓨터 비전 태스크의 성능, 예를 들어 재구성된 품질보다는 객체 검출 정확도이다. 이는 도 4에 예시되어 있다.
기계용 비디오 코딩은 협업 인텔리전스(collaborative intelligence)라고도 하며, 모바일-클라우드 인프라 전체에 심층 신경망을 효율적으로 배포하기 위한 비교적 새로운 패러다임이다. 모바일과 클라우드 간에 네트워크를 분할하는 것에 의해, 시스템의 전체 에너지 및/또는 대기 시간(latency)이 최소화되도록 계산 작업 부하를 분산할 수 있다. 일반적으로, 협업 인텔리전스는 신경망의 처리가 둘 이상의 서로 다른 계산 노드, 예를 들어 디바이스이지만 일반적으로 기능적으로 정의된 임의의 노드 사이에 분산되는 패러다임이다. 여기서, "노드"라는 용어는 위에서 언급한 신경망 노드를 의미하지 않는다. 오히려 여기서 (계산) 노드는 신경망의 일부를 구현하는 (물리적으로 또는 적어도 논리적으로) 별도의 디바이스/모듈을 지칭한다. 이러한 디바이스는 서로 다른 서버, 서로 다른 최종 사용자 디바이스, 서버 및/또는 사용자 디바이스 및/또는 클라우드 및/또는 프로세서의 혼합 등일 수 있다. 달리 말하면, 계산 노드는 동일한 신경망에 속하고, 신경망 내에서/신경망을 위해 코딩된 데이터를 전달하기 위해 서로 통신하는 노드로 간주될 수 있다. 예를 들어, 복잡한 계산을 수행할 수 있도록 하기 위해, 하나 이상의 레이어가 제1 디바이스에서 실행되고, 하나 이상의 레이어가 다른 디바이스에서 실행될 수 있다. 그러나 분포가 더 미세할 수도 있고 단일 레이어가 복수의 디바이스에서 실행될 수도 있다. 본 개시에서 "복수"라는 용어는 둘 이상을 의미한다. 일부 기존 솔루션에서는 신경망 기능의 일부가 디바이스(사용자 디바이스 또는 에지 디바이스 등) 또는 이러한 디바이스 중 복수에서 실행된 다음, 출력(특징 맵)이 클라우드로 전달된다. 클라우드는 신경망의 일부를 작동하는 디바이스 외부에 있는, 처리 또는 컴퓨팅 시스템의 모음이다. 협업 인텔리전스의 개념은 모델 트레이닝으로도 확장되었다. 이 경우, 데이터는 양방향으로 흐르며; 트레이닝 시 역전파 중에는 클라우드에서 모바일로, 트레이닝과 추론에서는 순방향 전달 중에 모바일에서 클라우드로 흐른다.
일부 연구에서는 심층 특징을 인코딩한 다음 입력 이미지를 재구성하여 의미론적 이미지 압축을 제시했다. 균일한 양자화에 기반한 압축과 H.264의 CABAC(context-based adaptive arithmetic coding)이 제시되었다. 일부 시나리오에서는, 압축된 자연 이미지 데이터를 클라우드로 송신하는 것보다, 은닉 레이어의 출력(심층 특징 맵)을 모바일 부분에서 클라우드로 전송하고 재구성된 이미지를 사용하여 객체 검출을 수행하는 것이 더 효율적일 수 있다. 특징 맵의 효율적인 압축은 인간의 인식과 머신 비전 모두에 대한 이미지 및 비디오 압축 그리고 재구성에 도움이 된다. 엔트로피 코딩 방법, 예를 들어, 산술 코딩은 심층 특징(즉, 특징 맵)을 압축하는 데 널리 사용되는 접근법이다.
현재 비디오 콘텐츠는 인터넷 트래픽의 80% 이상을 차지하고 있으며, 그 비율(percentage)은 더욱 늘어날 것으로 예상된다. 따라서 효율적인 비디오 압축 시스템을 구축하고 주어진 대역폭 예산에서 더 높은 품질의 프레임을 생성하는 것이 중요하다. 또한 비디오 객체 검출 또는 비디오 객체 추적과 같은 대부분의 비디오 관련 컴퓨터 비전 태스크는 압축된 비디오의 품질에 민감하며, 효율적인 비디오 압축은 다른 컴퓨터 비전 태스크에 이점을 가져올 수 있다. 한편, 비디오 압축의 기술은 액션 인식 및 모델 압축에도 도움이 된다. 그러나 지난 수십 년 동안 비디오 압축 알고리즘은 위에서 언급한 바와 같이 비디오 시퀀스의 중복성을 감소시키기 위해, 블록 기반 모션 추정 및 DCT(Discrete Cosine Transform)와 같은 수작업으로 제작된 모듈(hand-crafted module)에 의존했다. 각 모듈은 잘 설계되었지만, 전체 압축 시스템은 엔드 투 엔드 최적화되어 있지 않다. 전체 압축 시스템을 공동으로 최적화하여 비디오 압축 성능을 더욱 향상시키는 것이 바람직하다.
엔드 투 엔드 이미지 또는 비디오 압축
최근 이미지 압축을 위한 심층 신경망(deep neural network, DNN) 기반 오토인코더는 JPEG, JPEG2000 또는 BPG와 같은 기존 이미지 코덱과 비슷하거나 훨씬 더 나은 성능을 달성했다. 한 가지 가능한 설명은 DNN 기반 이미지 압축 방법이 기존 접근법에서는 사용되지 않는 대규모 엔드 투 엔드 트레이닝과 고도의 비선형 변환을 활용할 수 있다는 것이다. 그러나 이러한 기술을 직접 적용하여 비디오 압축을 위한 엔드 투 엔드 트레이닝 시스템을 구축하는 것이 쉽지 않다. 첫째, 비디오 압축에 적합한 모션 정보를 생성하고 압축하는 방법을 학습하는 것은 아직 해결되지 않은 문제로 남아 있다. 비디오 압축 방법은 비디오 시퀀스의 시간적 중복성을 감소시키기 위해 모션 정보에 크게 의존한다. 간단한 솔루션은 학습 기반 광학 흐름을 사용하여 모션 정보를 표현하는 것이다. 그러나 현재의 학습 기반 광학 흐름 접근법은 가능한 한 정확한 흐름 필드를 생성하는 것을 목표로 한다. 정확한 광학 흐름은 특정 비디오 태스크에 적합하지 않은 경우가 많다. 또한 기존 압축 시스템의 모션 정보와 비교했을 때 광학 흐름의 데이터 볼륨이 크게 증가하며, 광학 흐름 값을 압축하기 위해 기존 압축 접근법을 직접 적용하면 모션 정보를 저장하는 데 필요한 비트 수가 크게 증가한다. 둘째, 잔차 정보와 모션 정보 모두에 대한 레이트- 왜곡 기반 목표를 최소화하는것에 의해 DNN 기반 비디오 압축 시스템을 구축하는 방법이 불분명하다. 레이트-왜곡 최적화(rate-distortion optimization, RDO)는 압축을 위한 비트 수(또는 비트 레이트)가 제공될 때 재구성된 프레임의 더 높은 품질(즉, 왜곡 감소)을 달성하는 것을 목표로 한다. RDO는 비디오 압축 성능에 중요하다. 학습 기반 압축 시스템을 위한 엔드 투 엔드 트레이닝의 파워를 활용하기 위해서는 전체 시스템을 최적화하는 RDO 전략이 필요하다.
2019년 CVPR(Computer Vision and Pattern Recognition)에 대한 IEEE/CVF 회의의 논문집, 페이지 11006-11015에 있는 저자 Guo Lu, Wanli Ouyang, Dong Xu, Xiaoyun Zhang, Chunlei Cai, Zhiyong Gao의 "DVC: 엔드 투 엔드 심층 비디오 압축 프레임워크"에서, 저자는 모션 추정, 모션 압축 및 잔차 코딩을 공동으로 학습하는 엔드 투 엔드 심층 비디오 압축(deep video compression, DVC) 모델을 제안했다.
이러한 인코더가 도 5에 예시되어 있다. 특히, 도 5는 엔드 투 엔드 트레이닝 가능한 비디오 압축 프레임워크의 전체 구조를 도시한다. 모션 정보를 압축하기 위해, 광학 흐름을 더 나은 압축에 적합한 대응하는 표현으로 변환하도록 CNN이 지정되었다. 특히 오토-인코더 스타일 네트워크가 광학 흐름을 압축하는 데 사용된다. 모션 벡터(motion vector, MV) 압축 네트워크가 도 6에 도시되어 있다. 네트워크 아키텍처는 도 3의 ga/gs와 다소 유사하다. 특히, 광학 흐름은 GDN 및 IGDN을 포함한 일련의 콘볼루션 연산 및 비선형 변환에 공급된다. 콘볼루션(디콘볼루션)을 위한 출력 채널 수는 2와 같은 마지막 디콘볼루션 레이어를 제외하고 128개이다. M ×N×2 크기의 광학 흐름이 주어지면, MV 인코더는 M/16×N/16×128 크기의 모션 표현을 생성한다. 그런 다음 모션 표현이 양자화되고 엔트로피 코딩되어 비트스트림으로 송신된다. MV 디코더는 양자화된 표현을 수신하고 MV 인코더를 사용하여 모션 정보를 재구성한다.
특히 다음 정의가 유지된다.
픽처 크기(이미지 크기; 여기에서는 "이미지" 및 "픽처"라는 용어가 상호 교환적으로 사용됨): 픽처의 너비 또는 높이 또는 너비-높이 쌍을 의미한다. 이미지의 너비와 높이는 일반적으로 루마 샘플 수로 측정된다.
다운 샘플링: 다운 샘플링은 이산 입력 신호의 샘플링 레이트(샘플링 간격)가 감소되는 프로세스이다.
업 샘플링: 업 샘플링은 이산 입력 신호의 샘플링 레이트(샘플링 간격)가 증가되는 프로세스이다.
크로핑(Cropping): 디지털 이미지의 바깥쪽 에지를 잘라낸다. 크로핑은 이미지를 (샘플 수에서) 더 작게 만들거나 및/또는 이미지의 종횡비(길이 대 너비)를 변경하는 데 사용할 수 있다.
패딩(Padding): 패딩은 미리 정의된 샘플 값을 사용하거나 입력 이미지에서의 포지션의 샘플 값을 사용하여 이미지의 테두리(border)에 신규 샘플을 생성하는 것에 의해, 입력 이미지(또는 이미지)의 크기를 증가시키는 것을 의미한다.
콘볼루션: 콘볼루션은 다음 일반 수식으로 제공된다. 아래에서 f()는 입력 신호로 정의될 수 있고 g()는 필터로 정의될 수 있다:
NN 모듈: 신경망 모듈, 신경망의 컴포넌트이다. 이는 신경망의 레이어 또는 서브 네트워크일 수 있다. 신경망은 일련의 NN 모듈이다. 이 문서의 콘텍스트에서, 신경망은 K개의 NN 모듈의 시퀀스라고 가정한다.
잠재 공간: 신경망 처리의 중간 단계, 잠재 공간 표현에는 입력 레이어 또는 볼 수 없도록 되어 있는 은닉 레이어(들)의 출력이 포함된다.
손실 NN 모듈: 손실 NN 모듈에 의해 처리된 정보로 인해 정보가 손실되고, 손실 모듈은 처리된 정보를 되돌릴 수 없게 만든다.
무손실 NN 모듈: 무손실 NN 모듈에서 처리된 정보는 정보 손실이 발생하지 않으며, 무손실은 처리된 정보를 되돌릴 수 있게 만든다.
병목 현상(Bottleneck): 무손실 코딩 모듈로 이동하는 잠재 공간 텐서.
오토인코더: 신호를 (압축된) 잠재 공간으로 변환하고 다시 원래 신호 공간으로 변환하는 모델.
인코더: 비선형성 및/또는 잔차가 있는 콘볼루션 레이어를 사용하여 이미지를 잠재 텐서(y)로 다운 샘플링한다.
디코더: 비선형성 및/또는 잔차가 있는 콘볼루션 레이어를 사용하여 잠재 텐서(y)를 원본 이미지 크기로 업 샘플링한다.
하이퍼-인코더: 비선형성 및/또는 잔차가 있는 콘볼루션 레이어를 사용하여 잠재 텐서를 더 작은 잠재 텐서(z)로 다운 샘플링한다.
하이퍼-디코더: 엔트로피 추정을 위해 비선형성 및/또는 잔차가 있는 콘볼루션 레이어를 사용하여 더 작은 잠재 텐서(z)를 업 샘플링한다.
AE/AD(Arithmetic Encoder/Decoder): 잠재 텐서를 비트스트림으로 인코딩하거나, 주어진 통계적 우선순위(statistical prior)를 사용하여 비트스트림으로부터 잠재 텐서를 디코딩한다.
자기회귀 엔트로피 추정(Autoregressive Entropy Estimation): 잠재 텐서의 통계적 우선순위를 순차적으로 추정하는 프로세스.
Q: 양자화 블록.
, : 대응하는 잠재 텐서의 양자화된 버전.
마스킹된 콘볼루션(Masked Convolution)(MaskedConv): 특정 잠재 텐서 엘리먼트를 마스킹하여 모델이 이미 보인 잠재 텐서 엘리먼트를 기반으로만 예측할 수 있도록 하는 콘볼루션 유형.
H,W: 입력 이미지의 높이와 너비.
블록/패치: 직사각형 그리드에 있는 잠재 텐서의 서브 세트.
정보 공유: 서로 다른 패치의 정보를 협력적으로 처리하는 프로세스.
P: 직사각형 패치의 크기.
K: 정보 공유에 포함된 이웃하는 패치 수를 정의하는 커널 크기.
L: 이전에 코딩된 잠재 텐서 엘리먼트 중 얼마나 많은 엘리먼트가 정보 공유에 포함되는 지를 정의하는 커널 크기.
마스킹된 콘볼루션(MaskedConv): 특정 잠재 텐서 엘리먼트를 마스킹하여 모델이 이미 보인 잠재 텐서 엘리먼트를 기반으로만 예측할 수 있도록 하는 콘볼루션 유형.
PixelCNN: 하나 또는 다수의 마스킹된 콘볼루션 레이어를 포함하는 콘볼루션 신경망.
컴포넌트: 풀 컬러 이미지를 설명하는 직교 기반의 한 차원.
채널: 신경망의 레이어.
인트라 코덱: 비디오의 제1 프레임 또는 키 프레임이 인트라 프레임으로 처리되며 일반적으로 이미지로 처리된다.
인터 코덱: 인트라 코덱 이후에 비디오 압축 시스템이 인터 예측을 수행한다. 먼저 모션 추정 도구(tool)가 객체의 모션 벡터를 계산한 다음 모션 보상 도구가 모션 벡터를 사용하여 다음 프레임을 예측한다.
잔차 코덱: 예측된 프레임이 항상 현재 프레임과 동일하지는 않으며, 현재 프레임과 예측된 프레임 간의 차이가 잔차이다. 잔차 코덱은 이미지를 압축하는 것처럼 잔차를 압축한다.
신호 조건화(Signal Conditioning): NN 추론을 돕기 위해 추가 신호가 사용되지만, 추가 신호는 존재하지 않으며 출력과 매우 상이한, 트레이닝 절차이다.
조건부 코덱: 신호 조건화를 사용하여 압축 및 재구성을 지원(안내)하는 코덱이다. 조건화에 필요한 보조 정보는 입력 신호의 일부가 아니므로, SOTA에서는 조건부 코덱이 이미지가 아닌 비디오 스트림 압축에 사용된다.
다음 참고 자료는 기술 코딩의 여러 측면에 대한 세부 정보를 제공한다.
2017년 제5회 학습 표현에 관한 국제 회의(International Conference on Learning Representations, ICLR) 201의 "엔드 투 엔드 최적화 이미지 압축"이라는 제목의 논문에서 Johannes, Valero Laparra 및 Eero P. Simoncelli는 학습된 이미지 압축을 교시한다.
2018년 학습 표현에 관한 국제 회의의 "스케일 하이퍼프리어를 사용한 변분 이미지 압축"이라는 제목의 논문에서 Johannes 등은 하이퍼-프리어 모델을 교시한다.
2018년 NeurIPS의 "학습된 이미지 압축을 위한 공동 자기회귀 및 계층적 우선 순위"라는 제목의 논문에서 Minnen, David, Johannes Ball 및 George Toderici는 직렬 자기회귀 콘텍스트 모델링을 교시한다.
2022년 IEEE 제22회 멀티미디어 신호 처리에 관한 국제 워크숍(MMSP)의 "학습 기반 비디오 코딩을 위한 광학 흐름 및 모드 선택"이라는 제목의 논문에서 Ladune, Pierrick Philippe, Wassim Hamidouche, Lu Zhang 및 Olivier 는 조건부 코딩을 교시한다.
2018년 CVPR 2019의 "DVC: 엔드 투 엔드 심층 비디오 압축 프레임워크"라는 제목의 논문에서 Guo Lu, Wanli Ouyang, Dong Xu, Xiaoyun Zhang, Chunlei Cai, 및 Zhiyong Gao는 심층 신경망 기반 비디오 코덱을 교시한다.
도 7은 본 개시에 따라 개선될 수 있는 오토인코더 및 기술의 하이퍼-프리어 컴포넌트를 포함하는 정 학습된 이미지 압축 구성을 예시하는 블록도이다. 압축할 입력 이미지는 크기의 3D 텐서로 표현되며, 여기서 는 각각 이미지의 높이와 너비(차원)이고, 는 컴포넌트(예를 들어, 루마 컴포넌트와 2개의 크로마 컴포넌트)의 수이다. 입력 이미지는 인코더(71)를 통과한다. 인코더는 다수의 콘볼루션과 비선형 변환을 적용하는 입력 이미지를 다운 샘플링하고, 잠재 텐서 를 생성한다. 심층 학습의 콘텍스트에서 "다운 샘플링"과 "업 샘플링"이라는 용어는 고전적 의미의 재샘플링을 의미하는 것이 아니라 텐서의 차원의 크기를 변경하는 일반적인 용어이다. 인코더(71)가 출력하는 잠재 텐서 는 잠재 공간의 이미지를 나타내고, 의 크기를 가지며, 여기서 는 인코더(71)의 다운 샘플링 팩터이고, 는 채널 수(예를 들어, 입력 이미지를 나타내는 텐서의 변환과 관련된 신경망 레이어의 수)이다.
잠재 텐서 는 콘볼루션 및 비선형 변환을 통해 하이퍼-인코더(72)에 의해 하이퍼-잠재 텐서 로 추가로 다운 샘플링된다. 하이퍼-잠재 텐서 의 크기는 이다. 하이퍼-잠재 텐서 는 양자화된 하이퍼-잠재 텐서 를 획득하기 위해 블록 Q에 의해 양자화된다. 통계 양자화된 하이퍼-잠재 텐서 의 값의 속성은 인수분해된 엔트로피 모델을 통해 추정된다. 산술 인코더(arithmetic encoder, AE)는 이러한 통계 속성을 사용하여 텐서 의 비트스트림 표현을 생성한다. 텐서 의 모든 엘리먼트는 자동 회귀 프로세스 없이도 비트스트림에 기록된다.
인수분해된 엔트로피 모델은 디코더 측에서 파라미터를 이용할 수 있는 코드북으로 동작한다. 산술 디코더(arithmetic-decoder, AD)는 인수분해된 엔트로피 모델을 사용하여 비트스트림에서 하이퍼-잠재 텐서 를 복원한다. 복원된 하이퍼-잠재 텐서 는 다수의 콘볼루션 연산과 비선형 변환을 적용하는 것에 의해 하이퍼-디코더(73)에 의해 업 샘플링된다. 업 샘플링된 복원된 하이퍼-잠재 텐서는 로 나타낸다. 양자화된 잠재 텐서 의 엔트로피는 업 샘플링된 복원된 하이퍼-잠재 텐서 에 기반하여 자동 회귀적으로 추정된다. 이렇게 획득된 자기회귀 엔트로피 모델은 양자화된 잠재 텐서 의 통계적 특성을 추정하는 데 사용된다.
산술 인코더(AE)는 이러한 추정된 통계 속성을 사용하여 양자화된 잠재 텐서 의 비트스트림 표현을 생성한다. 달리 말하면, 오토인코더 컴포넌트의 산술 인코더(AE)는 하이퍼-프리어 컴포넌트에 의해 제공되는 부가 정보에 기반한 엔트로피 인코딩에 의해 잠재 공간의 이미지 정보를 압축한다. 잠재 텐서 는 자동 회귀 엔트로피 모델을 통해 수신기 측의 산술 디코더(AD)에 의해 비트스트림으로부터 복원된다. 복원된 잠재 텐서 는 재구성된 이미지의 텐서 표현을 획득하기 위해 다수의 콘볼루션 연산과 비선형 변환을 적용하는 것에 의해 디코더(74)에 의해 업 샘플링된다.
도 8은 도 7에 도시된 아키텍처의 수정을 도시한다. 오토인코더 컴포넌트의 인코더(81)와 디코더(84)의 처리는 도 7에 도시된 오토인코더 컴포넌트의 인코더(71)와 디코더(74)의 처리와 유사하고, 하이퍼-프리어 컴포넌트의 인코더(82)와 디코더(83)의 처리는 도 7에 도시된 하이퍼-프리어 컴포넌트의 인코더(72) 및 디코더(73)의 처리와 유사하다. 이들 인코더(71, 81, 72, 82) 및 디코더(73, 83, 74, 84) 각각은 각각 신경망을 포함하거나 신경망에 연결될 수 있다는 점에 유의한다. 또한 신경망을 사용하여 관련된 엔트로피 모델을 제공할 수도 있다.
도 7의 구성과 달리, 도 8의 구성에서는 양자화된 잠재 텐서 에 마스킹된 콘볼루션을 적용하여 에 비해 적은 수의 엘리먼트로 텐서 를 획득한다. 엔트로피 모델은 연쇄된 텐서 (업 샘플링된 복원된 하이퍼-잠재 텐서)에 기반하여 획득된다. 따라서 획득된 엔트로피 모델은 양자화된 잠재 텐서 의 통계적 특성을 추정하는 데 사용된다.
조건부 코딩은 재구성된 이미지의 품질을 향상시키기 위해 보조 정보가 사용되는 특정 종류의 코딩을 나타낸다. 도 9는 조건부 코딩의 원리 아이디어를 예시한다. 보조 정보 A는 입력 프레임 x와 연쇄되어 인코더(91)에 의해 공동 처리된다. 잠재 공간의 양자화된 인코딩 정보는 산술 인코더에 의해 비트스트림으로 기록되고 산술 디코더(AD)에 의해 비트스트림으로부터 복원된다. 잠재 공간의 복원된 인코딩 정보는 재구성된 프레임 X를 획득하기 위해 디코더(92)에 의해 디코딩되어야 한다. 이 디코딩 스테이지에서, 보조 정보 A의 잠재 표현 a가 디코더(92)의 입력에 추가되어야 한다. 보조 정보 A의 잠재 표현 a는 다른 인코더(93)에 의해 제공되며 이는 디코더(92)의 출력과 연쇄된다.
비디오 압축의 콘텍스트에서, 도 10에 예시된 바와 같이 현재 프레임의 현재 블록의 인터 예측에 사용되는 잔차를 압축하기 위해 조건부 코덱이 구현된다. 잔차는 그의 예측된 버전에서 현재 블록을 빼는 것에 의해 계산된다. 잔차 비트스트림을 획득하기 위해 잔차는 인코더(101)에 의해 인코딩된다. 잔차 비트스트림은 디코더(102)에 의해 디코딩된다. 예측 블록은 이전 프레임/블록의 정보를 사용하여 예측 유닛(103)에 의해 획득된다. 예측 블록은 현재 블록과 동일한 크기 및 차원을 가지므로, 유사한 방식으로 처리된다. 재구성된 잔차가 예측 블록에 추가되어 재구성된 블록을 제공한다.
기술 분야의 조건부 잔차 코딩(conditional residual coding, CodeNet)이 도 11에 예시되어 있다. 구성은 도 9에 도시된 것과 유사하다. 조건부 인코더(111)는 예측된 프레임으로부터의 정보 를 코덱을 조건화하기 위한 보조 정보로 사용하여 현재 프레임 를 인코딩하는 데 사용된다. 잠재 공간의 양자화된 인코딩 정보는 산술 인코더에 의해 비트스트림으로 기록되고 산술 디코더(AD)에 의해 비트스트림으로부터 복원된다. 잠재 공간의 복원된 인코딩된 정보가 디코더(112)에 의해 디코딩되어 재구성된 프레임 Xt을 획득한다. 이 디코딩 스테이지에서, 보조 정보 의 잠재 표현 이 디코더(112)의 입력에 추가되어야 한다. 보조 정보 의 잠재 표현 은 다른 인코더(113)에 의해 제공되며, 이는 디코더(112)의 출력과 연쇄된다.
CodeNet은 예측된 프레임을 사용하지만 예측된 프레임과 현재 프레임 간의 명시적인 차이(잔차)는 사용하지 않는다. 예측된 프레임으로부터 모든 정보를 검색하면서 현재 프레임을 코딩하면 잔차 코딩에 비해 전송될 정보가 더 적어지는 이점이 있다.
그러나 CodeNet은 엔트로피 예측으로 인해 높은 병렬 처리를 허용하지 않으며, 더 나아가 큰 메모리 공간을 요구한다. 본 개시에 따르면, 메모리 요구 사항을 줄일 수 있고, 전체 처리의 런타임을 향상시킬 수 있다.
본 개시는 이미지의 1차 컴포넌트가 하나 이상의 비-1차 컴포넌트와 독립적으로 인코딩되고, 하나 이상의 비-1차 컴포넌트가 1차 컴포넌트로부터의 정보를 사용하여 인코딩되는 조건부 코딩을 제공한다. 여기 및 다음에서, 1차 컴포넌트는 루마 컴포넌트일 수 있고 하나 이상의 비-1차 컴포넌트는 크로마 컴포넌트일 수 있거나, 1차 컴포넌트는 크로마 컴포넌트일 수 있고 단일의 비-1차 컴포넌트는 루마 컴포넌트일 수 있다. 1차 컴포넌트는 비-1차 컴포넌트(들)와 독립적으로 인코딩 및 디코딩될 수 있다. 따라서, 어떤 이유로 비-1차 컴포넌트(들)가 손실된 경우에도 디코딩할 수 있다. 하나 이상의 비-1차 컴포넌트는 공동으로 동시에 인코딩될 수 있으며, 1차 컴포넌트와 동시에 인코딩될 수 있다. 하나 이상의 비-1차 컴포넌트를 디코딩하면 1차 컴포넌트의 잠재 표현으로부터의 정보를 활용한다. 이러한 조건부 코딩은 비디오 시퀀스의 인트라 예측 및 인터 예측 처리에 적용될 수 있다. 또한 정지 이미지 코딩에도 적용될 수 있다.
도 12는 예시적인 실시예에 따른 조건부 인트라 예측의 기본을 예시한다. 입력 이미지/프레임 i의 텐서 표현 x는 양자화되어 인코딩 디바이스(121)에 제공된다. 여기 및 다음 설명에서 전체 이미지 또는 이미지의 일부만, 예를 들어 하나 이상의 블록, 슬라이스, 타일 등이 코딩될 수 있다는 점에 유의한다.
인코딩 디바이스(121)의 이전 스테이지에서, 텐서 표현 x를 1차 인트라 컴포넌트와 적어도 하나의 비-1차(2차) 인트라 컴포넌트로 분리하는 것이 수행되고, 1차 인트라 컴포넌트기 1차 인트라 컴포넌트 비트스트림으로 변환되며, 적어도 하나의 비-1차 인트라 컴포넌트는 적어도 하나의 비-1차 인트라 컴포넌트 비트스트림으로 변환된다. 비트스트림은 컴포넌트의 재구성을 위해 디코딩 디바이스(122)에 의해 사용되는 컴포넌트에 대한 압축된 정보를 나타낸다. 2개의 비트스트림은 서로 인터리브될(interleaved) 수 있다. 인코딩 디바이스(121)는 CCS(conditional color separation) 인코딩 디바이스로 어드레싱될 수 있다. 적어도 하나의 비-1차 인트라 컴포넌트의 인코딩은 나중에 자세히 설명되는 바와 같이 1차 인트라 컴포넌트로부터의 정보에 기반한다. 개개의 비트스트림은 이미지/프레임을 재구성하기 위해 디코딩 디바이스(122)에 의해 디코딩된다. 적어도 하나의 비-1차 인트라 컴포넌트의 디코딩은 나중에 자세히 설명되는 바와 같이 1차 인트라 컴포넌트의 잠재 표현으로부터의 정보에 기반한다.
도 13은 예시적인 실시예에 따른 잔차 코딩의 기본을 예시한다. 입력 이미지/프레임 i'의 텐서 표현 x'가 양자화되고, 잔차가 계산되어 인코딩 디바이스(131)에 공급된다. 인코딩 디바이스(131)의 이전 스테이지에서, 잔차를 1차 잔차 컴포넌트와 적어도 하나의 비-1차 잔차 컴포넌트로 분리하는 것이 수행되고, 1차 잔차 컴포넌트는 1차 잔차 컴포넌트 비트스트림으로 변환되며, 적어도 하나의 비-1차 잔차 컴포넌트는 적어도 하나의 비-1차 잔차 컴포넌트 비트스트림으로 변환된다. 인코딩 디바이스(131)는 CCS(conditional color separation) 인코딩 디바이스로 어드레싱될 수 있다. 적어도 하나의 비-1차 잔차 컴포넌트의 인코딩은 나중에 자세히 설명되는 바와 같이 1차 잔차 컴포넌트로부터의 정보에 기반한다. 개개의 비트스트림은 이미지/프레임을 재구성하기 위해 디코딩 디바이스(132)에 의해 디코딩된다. 적어도 하나의 비-1차 잔차 컴포넌트의 디코딩은 나중에 자세히 설명되는 바와 같이 1차 잔차 컴포넌트의 잠재 표현으로부터의 정보에 기반한다. 잔차 및 재구성된 이미지/프레임의 계산에 필요한 예측은 예측 유닛(133)에 의해 제공된다.
도 12 및 도 13에 도시된 구성에서, 인코딩 디바이스(121, 131)와 디코딩 디바이스(131, 132)는 개개의 신경망을 포함하거나 이에 연결될 수 있다. 인코딩 디바이스(121, 131)는 변분 오토인코더를 포함할 수 있다. 적어도 하나의 비-1차 컴포넌트를 처리하는 것과 비교하여 1차 컴포넌트를 처리하는 데에는 서로 다른 수의 채널/신경망 레이어가 포함될 수 있다. 인코딩 디바이스(121, 131)는 철저한 검색을 수행하는 것에 의해 또는 콘텐츠 적응적 방식으로 적절한 채널/신경망 레이어 수를 결정할 수 있다. 모델 세트가 트레이닝될 수 있으며, 여기서 각 모델은 1차 컴포넌트와 비-1차 컴포넌트를 인코딩하기 위한 서로 다른 수의 채널에 기반한다. 처리 중에, 가장 성능이 좋은 필터는 인코딩 디바이스(121, 131)에 의해 결정될 수 있다. 인코딩 디바이스(121, 131)의 신경망은 1차 및 비-1차 컴포넌트(들)를 처리하는 데 사용되는 채널 수를 결정하기 위해 협력적으로 트레이닝될 수 있다. 일부 애플리케이션에서는 1차 컴포넌트를 처리하는 데 사용되는 채널 수가 비-1차 컴포넌트(들)를 처리하는 데 사용되는 채널 수보다 클 수 있다. 다른 애플리케이션에서는 예를 들어, 1차 컴포넌트의 신호가 비-1차 컴포넌트(들)의 신호보다 노이즈가 적으면, 1차 컴포넌트를 처리하는 데 사용되는 채널 수는 비-1차 컴포넌트를 처리하는 데 사용되는 채널 수보다 작을 수 있다. 원칙적으로, 채널 수의 선택은 한편으로는 처리 레이트에 대한 최적화, 다른 한편으로는 신호 왜곡의 결과일 수 있다. 추가 채널은 왜곡을 줄일 수 있지만 처리 부하가 높아질 수 있다. 실험에 따르면 적절한 수의 채널은 예를 들어 1차 컴포넌트에 대해 128개이고 비-1차 컴포넌트에 대해 64개이거나, 1차 컴포넌트와 비-1차 컴포넌트 모두에 대해 128개이거나, 1차 컴포넌트에 대해 192개이고 비-1차 컴포넌트에 대해 64개일 수 있다.
인코딩 프로세스에 사용되는 채널/신경망 레이어의 수는 디코딩 디바이스(122, 132)에 각각 암시적으로 또는 명시적으로 시그널링될 수 있다.
도 14는 이미지(비디오 시퀀스의 프레임 또는 정지 이미지)의 조건부 코딩의 실시예를 좀 더 자세히 예시한다. 인코더(141)는 이미지의 1차 컴포넌트 P의 크기 를 갖는 텐서 표현을 수신하며, 는 이미지의 높이 차원을 나타내고, 는 이미지의 너비 차원을 나타내며, 는 입력 채널 차원을 나타낸다. 다음에서 A×B×C 크기의 텐서는 일반적으로 간단히 텐서 A×B×C로 인용된다.
인코더(141)에 의해 출력되는 텐서의 높이, 너비 및 채널 차원에서의 예시적인 크기는 이다.
인코더(141, 142)는 인코딩 디바이스(121, 131)에 포함될 수 있다는 점에 유의한다.
인코더(141)의 출력, 즉 잠재 공간에서 이미지의 1차 컴포넌트의 텐서 표현의 표현에 기반하여, 비트스트림이 생성되고 다시 잠재 공간으로 변환되어 잠재 공간의 복원된 텐서 를 획득한다.
이미지의 적어도 하나의 비-1차 컴포넌트 NP의 텐서 표현 (여기서 는 이미지의 높이 차원을 나타내고, 는 이미지의 너비 차원을 나타내며, 는 입력 채널 차원을 나타냄)가, 1차 컴포넌트 P의 텐서 표현 과의 연쇄 이후에 다른 인코더(142)에 입력된다(따라서 텐서 가 다른 인코더(142)로 입력됨). 인코더(142)에 의해 출력되는 텐서의 높이, 너비 및 채널 차원에서의 예시적인 크기는 또는 이다.
연쇄 이전에 1차 컴포넌트 P의 텐서 표현 의 샘플 위치는, 텐서들의 샘플의 크기 또는 서브 픽셀 오프셋이 서로 다르면, 적어도 하나의 비-1차 컴포넌트 NP의 텐서 표현 중 하나로 조정되어야 할 수 있다. 다른 인코더(142)의 출력, 즉 잠재 공간의 연쇄된 텐서 이미지의 표현에 기반하여, 비트스트림이 생성되고 다시 잠재 공간으로 변환되어, 잠재 공간에서의 복원된 연쇄된 텐서 를 획득한다.
1차 측에서는 잠재 공간에서의 복원된 텐서 가, 재구성된 텐서 표현 에 기반한 이미지의 1차 컴포넌트 P의 재구성을 위해 디코더(143)에 입력된다.
또한, 잠재 공간에서는, 텐서 와 텐서 의 연쇄가 수행된다. 다시 말하지만, 연쇄될 이들 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 서로 다르면, 샘플 위치를 일부 조정해야 한다. 비-1차 측에서, 이 연쇄로 인한 텐서 가, 재구성된 텐서 표현 에 기반한 이미지의 적어도 하나의 비-1차 컴포넌트 NP의 재구성을 위해 다른 디코더(144)에 입력된다.
전술한 코딩은 적어도 하나의 비-1차 컴포넌트 NP와 독립적으로 1차 컴포넌트 P에 대해 수행될 수 있다. 예를 들어, 1차 컴포넌트 P와 적어도 하나의 비-1차 컴포넌트 NP의 코딩이 동시에 수행될 수 있다. 기술 분야에 비해, 전체적인 처리의 병렬화를 높일 수 있다. 또한, 수치 실험을 통해, 재구성된 이미지의 품질을 크게 저하시키지 않고 기술 분야에 비해 더 짧은 채널 길이를 사용할 수 있으므로, 메모리 요구 사항을 줄일 수 있음을 보여주었다.
다음에서는, YUV 공간에 표현된 이미지의 컴포넌트(하나의 루마 컴포넌트 Y와 2개의 크로마 컴포넌트 U 및 V)의 조건부 코딩의 예시적인 구현이 도 15 내지 도 20을 참조하여 설명된다. 개시된 조건부 코딩은 이미지의 표현에 사용될 수 있는 임의의 다른 (색상) 공간에도 적용 가능하다는 것은 말할 필요도 없다.
도 15에 도시된 실시예에서, YUV420 포맷의 입력 데이터가 처리되며, 여기서 Y는 처리될 현재 이미지의 휘도 컴포넌트를 나타내고, UV는 처리될 현재 이미지의 크로마 컴포넌트 U 및 크로마 컴포넌트 V를 나타내며, 420은 높이 차원과 너비 차원에서 루마 컴포넌트 Y의 크기가 크로마 컴포넌트 UV의 크기보다 4배(높이의 2배, 너비의 2배) 더 크다는 것을 지시한다. 도 15에 도시된 실시예에서, Y는 UV와 독립적으로 처리되는 1차 컴포넌트로 선택되고, UV는 비-1차 컴포넌트로 선택된다. UV 컴포넌트는 함께 처리된다.
처리될 이미지의 YUV 표현은 (1차) Y 컴포넌트와 (비-1차) UV 컴포넌트로 분리된다. 신경망으로 구성된 인코더(151)는 크기로 처리될 이미지의 Y 컴포넌트를 나타내는 텐서를 수신하며, 여기서 는 높이 차원 및 너비 차원이며, 입력의 깊이(즉, 채널 수)는 (루마 컴포넌트 1개에 대해) 1이다. 인코더(151)의 출력은 크기가 인 잠재 텐서이며, 여기서 는 Y 컴포넌트에 할당된 채널 수이다. 이 실시예에서, 인코더(151)의 4개의 다운 샘플링 레이어는 입력 텐서의 높이와 너비를 모두 16배로 감소(다운 샘플링)시키며, 채널 수 는 128이다. 결과적으로 Y 컴포넌트의 잠재 표현은 하이퍼프리어 Y 파이프라인에 의해 처리된다.
처리될 이미지의 UV 컴포넌트는 텐서 로 표현되며, 여기서 다시 는 높이 차원과 너비 차원이며, 채널 수는 (2개의 크로마 컴포넌트에 대해) 2이다. UV 컴포넌트의 조건부 인코딩에는 Y 컴포넌트의 보조 정보가 필요하다. Y 컴포넌트의 평면 크기()가 UV 컴포넌트의 크기와 상이하면, 재샘플링 유닛을 사용하여 Y 컴포넌트를 나타내는 텐서의 샘플의 포지션을 UV 컴포넌트를 나타내는 텐서의 샘플의 포지션과 정렬한다. 마찬가지로, Y 컴포넌트를 나타내는 텐서의 샘플의 포지션과 UV 컴포넌트를 나타내는 텐서의 샘플의 포지션 사이에 오프셋이 있으면, 정렬을 수행해야 한다.
Y 컴포넌트의 정렬된 텐서 표현은 UV 컴포넌트의 텐서 표현과 연쇄되어 텐서 을 획득한다. 신경망으로 구성된 인코더(152)는 이 연쇄된 텐서를 잠재 텐서 로 변환하며, 여기서 는 UV 컴포넌트에 할당된 채널 수이다. 이 실시예에서, 인코더(152)의 5개의 다운 샘플링 레이어는 입력 텐서의 높이와 너비를 모두 32배로 감소(다운 샘플링)시키며, 채널 수는 64이다. 결과적인 UV 컴포넌트의 잠재 표현은 하이퍼프리어 Y 파이프라인과 유사한 하이퍼프리어 UV 파이프라인에 의해 처리된다(파이프라인 작동에 대해서는 위의 도 7 설명 참조). 하이퍼프리어 UV 파이프라인과 하이퍼프리어 Y 파이프라인 모두 신경망을 포함할 수 있다는 점에 유의한다.
하이퍼프리어 Y 파이프라인은 Y 컴포넌트의 (양자화된) 잠재 표현의 엔트로피 코딩에 사용되는 엔트로피 모델을 제공한다. 하이퍼프리어 Y 파이프라인은 (하이퍼) 인코더(153), 산술 인코더, 산술 디코더 및 (하이퍼) 디코더(154)를 포함한다.
잠재 공간에서 Y 컴포넌트를 나타내는 잠재 텐서 가 콘볼루션 및 비선형 변환을 통해 (하이퍼) 인코더(153)에 의해 추가로 다운 샘플링되어, (도 15에 도시되지 않은 아마도 양자화 이후; 실제로 여기 및 다음에서 양자화 유닛 Q에 의해 수행되는 임의의 양자화는 선택적임) 산술 인코딩되는(AE) 것에 의해 비트스트림으로 변환되는 하이퍼-잠재 텐서를 획득한다. (양자화된) 하이퍼-잠재 텐서의 통계적 속성은 엔트로피 모델, 예를 들어 인수분해된 엔트로피 모델을 통해 추정되며, 하이퍼프리어 Y 파이프라인의 산술 인코더(AE)는 이러한 통계적 속성을 사용하여 비트스트림을 생성한다. (양자화된) 하이퍼-잠재 텐서의 모든 엘리먼트는 자동 회귀 프로세스의 필요 없이도 비트스트림으로 기록될 수 있다.
(인수분해된) 엔트로피 모델은 디코더 측에서 파라미터를 이용할 수 있는 코드북으로 작동한다. 하이퍼프리어 Y 파이프라인의 산술 디코더(AD)는 (인수분해된) 엔트로피 모델을 사용하여 비트스트림으로부터 하이퍼-잠재 텐서를 복원한다. 복원된 하이퍼-잠재 텐서는 다수의 콘볼루션 연산과 비선형 변환을 적용하여 (하이퍼) 디코더(154)에 의해 업 샘플링된다. 잠재 공간의 Y 컴포넌트를 나타내는 잠재 텐서 는 하이퍼프리어 Y 파이프라인의 양자화 유닛(Q)에 의해 양자화되며, 양자화된 잠재 텐서의 엔트로피는 (하이퍼) 디코더(154)에 의해 출력된 업 샘플링된 복원된 하이퍼-잠재 텐서에 기반하여 자동 회귀적으로 추정된다.
잠재 공간의 Y 컴포넌트를 나타내는 잠재 텐서 도, 하이퍼-프리어 Y 파이프라인에서 제공하는 그 텐서의 추정된 통계 속성을 사용하는 다른 산술 인코더(AE)에 의해 비트스트림(송신기 측에서 수신기 측으로 전송될 수 있음)으로 변환되기 전에 양자화된다. 잠재 텐서 는 하이퍼프리어 Y 파이프라인에서 제공하는 자동 회귀 엔트로피 모델을 통해 다른 산술 디코더(AD)에 의해 비트스트림으로부터 복원된다. 크기가 인 이미지의 재구성된 Y 컴포넌트의 텐서 표현을 획득하기 위해, 복원된 잠재 텐서 는 디코더(155)에서 다수의 콘볼루션 연산과 비선형 변환을 적용하는 것에 의해 업 샘플링된다.
하이퍼프리어 UV 파이프라인은 인코더(152)의 출력, 즉 잠재 텐서 를 처리한다. 잠재 텐서가 콘볼루션 및 비선형 변환을 통해 하이퍼프리어 UV 파이프라인의 (하이퍼) 인코더(156)에 의해 추가로 다운 샘플링되어, (도 15에서는 도시되지 않은, 아마도 양자화 후) 하이퍼프리어 UV 파이프라인의 산술 인코딩되는(AE) 것에 의해 비트스트림으로 변환되는 하이퍼-잠재 텐서를 획득한다. (양자화된) 하이퍼-잠재 텐서의 통계적 속성은 엔트로피 모델, 예를 들어 인수분해된 엔트로피 모델을 통해 추정되며, 하이퍼프리어 Y 파이프라인의 산술 인코더(AE)는 이러한 통계적 속성을 사용하여 비트스트림을 생성한다. (양자화된) 하이퍼-잠재 텐서의 모든 엘리먼트는 자동 회귀 프로세스의 필요 없이도 비트스트림으로 기록될 수 있다.
(인수분해된) 엔트로피 모델은 디코더 측에서 파라미터를 이용할 수 있는 코드북으로 작동한다. 하이퍼프리어 UV 파이프라인의 산술 디코더(AD)는 (인수분해된) 엔트로피 모델을 사용하여 비트스트림으로부터 하이퍼-잠재 텐서를 복원한다. 복원된 하이퍼-잠재 텐서는 다수의 콘볼루션 연산과 비선형 변환을 적용하여 하이퍼프리어 UV 파이프라인의 (하이퍼) 디코더(157)에 의해 업 샘플링된다. UV 컴포넌트를 나타내는 잠재 텐서 는 하이퍼프리어 UV 파이프라인의 양자화 유닛(Q)에 의해 양자화되며, 양자화된 잠재 텐서의 엔트로피는 (하이퍼) 디코더(157)에 의해 출력된 업 샘플링된 복원된 하이퍼-잠재 텐서 출력에 기반하여 자동 회귀적으로 추정된다.
잠재 공간의 UV 컴포넌트를 나타내는 잠재 텐서 도 하이퍼프리어 UV 파이프라인에서 제공하는 그 텐서의 추정된 통계 속성을 사용하는 다른 산술 인코더(AE)에 의해 비트스트림(송신기 측에서 수신기 측으로 전송될 수 있음)으로 변환되기 전에 양자화된다. 잠재 공간의 UV 컴포넌트를 나타내는 잠재 텐서 는 하이퍼프리어 UV 파이프라인에서 제공하는 자동 회귀 엔트로피 모델을 통해 다른 산술 디코더(AD)에 의해 비트스트림으로부터 복원된다.
잠재 공간의 UV 컴포넌트를 나타내는 복원된 잠재 텐서 는 이후의 다운 샘플링 후 복원된 잠재 텐서 와 연쇄되며, 즉 크기가 인 이미지의 재구성된 UV 컴포넌트의 텐서 표현을 획득하기 위해, 복원된 잠재 텐서 가 (UV 컴포넌트의 디코딩을 위해 필요한 보조 정보로서) 텐서 와 연쇄되어, UV 처리 측의 디코더(158)에 입력되고 디코더(158)가 다수의 콘볼루션 연산과 비선형 변환을 적용하는 것에 업 샘플링되는 를 획득한다. 이미지의 재구성된 UV 컴포넌트의 텐서 표현은 YUV 공간에서의 재구성된 이미지를 획득하기 위해 이미지의 재구성된 Y 컴포넌트의 텐서 표현과 조합된다.
도 16은 도 15에 도시된 것과 유사하지만 YUV444 포맷의 입력 데이터를 처리하기 위한 실시예를 도시하며, 여기서 Y 컴포넌트 및 UV 컴포넌트를 각각 나타내는 텐서의 크기는 높이 차원 및 너비 차원에서 동일하다. 인코더(161)는 처리될 이미지의 Y 컴포넌트를 나타내는 텐서 를 잠재 공간으로 변환한다. 이 실시예에 따르면 보조 정보가 재샘플링되지 않으며, 따라서 처리될 이미지의 UV 컴포넌트를 나타내는 텐서 는 Y 컴포넌트를 나타내는 텐서 과 직접 연쇄될 수 있으며, 연쇄된 텐서 는 UV 측의 인코더(162)에 의해 잠재 공간으로 변환된다. (하이퍼) 인코더(163)와 (하이퍼) 디코더(164)로 구성되는 하이퍼프리어 Y 파이프라인 및 (하이퍼) 인코더(166)와 (하이퍼) 디코더(167)로 구성되는 하이퍼프리어 UV 파이프라인은 도 15를 참조하여 위에서 설명한 것과 유사하게 작동한다. U 컴포넌트와 UV 컴포넌트의 복원된 잠재 표현들은 높이와 너비 차원의 크기가 동일하므로, 재샘플링 없이 잠재 공간에서 서로 연쇄될 수 있다. U 컴포넌트의 복원된 잠재 표현 은 디코더(165)에 의해 업 샘플링되고, Y 및 UV 컴포넌트의 복원된 연쇄된 잠재 표현 은 디코더(168)에 의해 업 샘플링되며, 디코더(165, 168)의 출력이 조합되어 YUV 공간에서의 복원된 이미지를 획득한다.
도 17 및 도 18은 조건부 잔차 코딩이 제공되는 실시예를 예시한다. 잔차 조건부 코딩은 비디오 시퀀스의 현재 프레임의 인터 예측이나 정지 이미지 코딩에 사용될 수 있다. 도 15 및 도 16에 도시된 실시예와는 상이하게, YUV 공간의 잔차 컴포넌트를 포함하는 잔차를 처리한다. 잔차는 Y 컴포넌트에 대한 잔차 Y 컴포넌트와 UV 컴포넌트에 대한 잔차 UV 컴포넌트로 분리된다. 잔차 컴포넌트의 처리는 도 15 및 도 16을 참조하여 위에서 설명한 Y 컴포넌트 및 UV 컴포넌트의 처리와 유사하다. 도 17에 도시된 실시예에 따르면, 입력 데이터는 YUV 420 포맷이다. 따라서 잔차 Y 컴포넌트는 잔차 UV 컴포넌트와 연쇄되기 전에 다운 샘플링되어야 한다. 인코더(171, 172)는 개개의 잠재 표현을 제공한다. (하이퍼) 인코더(173)와 (하이퍼) 디코더(174)로 구성되는 하이퍼프리어 Y 파이프라인 및 (하이퍼) 인코더(176)와 (하이퍼) 디코더(177)로 구성되는 하이퍼프리어 UV 파이프라인은 도 15를 참조하여 위에서 설명한 것과 유사하게 작동한다. 잔차 Y 컴포넌트 측에서, 디코더(175)는 잔차 Y 컴포넌트의 복원된 표현을 출력한다. 잔차 UV 측에서, 디코더(178)는 잠재 공간에서 제공된 보조 정보에 기반하여 잔차 UV 컴포넌트의 복원된 표현을 출력하며, 여기서 잔차 Y 컴포넌트의 복원된 잠재 표현의 다운 샘플링이 필요하다. 디코더(175, 178)의 출력이 조합되어, 복원된 이미지(이미지의 일부)를 획득하는 데 사용될 수 있는 YUV 공간의 복원된 잔차를 획득한다.
도 18에 도시된 실시예에 따르면, 입력 데이터는 YUV 444 포맷이다. 보조 정보의 다운 샘플링은 필요하지 않다. 잔차 Y 컴포넌트 및 잔차 UV 컴포넌트의 처리는 도 16을 참조하여 위에서 설명한 Y 컴포넌트 및 UV 컴포넌트의 처리와 유사하다. 인코더(181)는 처리될 이미지의 잔차 Y 컴포넌트를 나타내는 텐서 를 잠재 공간으로 변환한다. 처리될 이미지의 잔차 UV 컴포넌트를 나타내는 텐서 는 잔차 Y 컴포넌트를 나타내는 텐서 와 직접 연쇄될 수 있으며, 연쇄된 텐서 는 잔차 UV 측의 인코더(182)에 의해 잠재 공간으로 변환된다.
(하이퍼) 인코더(183)와 (하이퍼) 디코더(184)로 구성된 하이퍼프리어 Y 파이프라인 및 (하이퍼) 인코더(186)와 (하이퍼) 디코더(187)로 구성된 하이퍼프리어 UV 파이프라인은 도 15를 참조하여 위에서 설명한 것과 유사하게 작동한다.
잔차 U 컴포넌트와 잔차 UV 컴포넌트의 복원된 잠재 표현은 높이와 너비에서 동일한 크기를 갖기 때문에 재샘플링 없이 서로 연쇄될 수 있다. 잔차 U 컴포넌트의 복원된 잠재 표현 은 디코더(185)에 의해 업 샘플링되고, 잔차 Y 컴포넌트 및 잔차 UV 컴포넌트의 복원된 연쇄된 잠재 표현 은 디코더(188)에 의해 업 샘플링되며, 디코더(185, 188)의 출력이 조합되어 복원된 이미지(이미지의 일부)를 획득하는데 사용될 수 있는 YUV 공간에서의 이미지의 복원된 잔차를 획득한다.
도 19는 도 17에 도시된 실시예에 대한 대안적인 실시예를 예시한다. 유일한 차이점은 도 19에 도시된 구성에서는 자기회귀 엔트로피 모델이 사용되지 않는다는 것이다. 텐서 로 표현되는 잔차 Y 컴포넌트의 표현은 인코더(191)에 의해 잠재 공간에서 변환된다. 잔차 Y 컴포넌트는 텐서 를 출력하는 인코더(192)를 통해 텐서 로 표현되는 잔차 UV 컴포넌트를 코딩하기 위한 보조 정보로 사용된다. (하이퍼) 인코더(193)와 (하이퍼) 디코더(194)로 구성된 하이퍼프리어 Y 파이프라인은 잔차 Y 컴포넌트의 잠재 표현 의 코딩에 사용되는 부가 정보를 제공한다. 디코더(195)는 텐서 로 표현되는 재구성된 잔차 Y 컴포넌트를 출력한다. (하이퍼) 인코더(196)와 (하이퍼) 디코더(197)로 구성된 하이퍼프리어 UV 파이프라인은 인코더(192)에 의해 출력된 텐서 의 잠재 표현 즉, 텐서 의 코딩에 사용되는 부가 정보를 제공한다. 디코더(198)는 잠재 공간의 연쇄된 텐서 를 수신하고, 텐서 로 표현되는 재구성된 잔차 UV 컴포넌트를 출력한다.
도 20은 도 18에 도시된 실시예에 대한 대안적인 실시예를 예시한다. 다시 말하지만, 유일한 차이점은 도 20에 도시된 구성에서는 자기회귀 엔트로피 모델이 사용되지 않는다는 것이다.
텐서 로 표현되는 잔차 Y 컴포넌트의 표현은 인코더(201)에 의해 잠재 공간에서 변환된다. 잔차 Y 컴포넌트는 텐서 를 출력하는 인코더(202)를 통해 텐서 로 표현되는 잔차 UV 컴포넌트를 코딩하기 위한 보조 정보로 사용된다. (하이퍼) 인코더(203)와 (하이퍼) 디코더(204)로 구성된 하이퍼프리어 Y 파이프라인은 잔차 Y 컴포넌트의 잠재 표현 의 코딩에 사용되는 부가 정보를 제공한다. 디코더(205)는 텐서 로 표현되는 재구성된 잔차 Y 컴포넌트를 출력한다. (하이퍼) 인코더(206)와 (하이퍼) 디코더(207)로 구성된 하이퍼프리어 UV 파이프라인은 인코더(202)에 의해 출력된 텐서 의 잠재 표현 즉, 텐서 의 코딩에 사용되는 부가 정보를 제공한다. 디코더(208)는 잠재 공간의 잔차 UV 컴포넌트의 재구성된 표현 을 수신하고, 텐서 로 표현되는 재구성된 잔차 UV 컴포넌트를 출력한다.
자동 회귀 엔트로피 모델을 사용하지 않고 처리하면 전체 처리의 복잡성이 감소될 수 있으며, 실제 애플리케이션에 따라 복원된 이미지의 충분한 정확성이 여전히 제공될 수 있다.
적어도 이미지의 일부를 인코딩하는 방법의 특정 실시예가 도 21 및 도 22에 예시되어 있으며, 적어도 이미지의 일부를 재구성하는 방법의 특정 실시예가 도 23 및 도 24에 예시되어 있다.
도 21에 예시된 적어도 이미지의 일부를 인코딩하는 방법은, 이미지의 적어도 하나의 2차(비-1차) 컴포넌트와 독립적으로 이미지의 1차 컴포넌트를 인코딩하는 단계(S212) 및 1차 컴포넌트로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 인코딩하는 단계(S214)를 포함한다. 1차 컴포넌트는 2차 컴포넌트를 인코딩하는 프로세스에 대한 보조 정보를 제공한다. 여기서, 그리고 도 22 내지 도 24에 예시된 실시예에서, 이미지는 밝기 컴포넌트와 색상 컴포넌트를 포함하고, 이들 컴포넌트 중 하나가 1차 컴포넌트가 되도록 선택되고, 다른 컴포넌트 중 적어도 하나가 적어도 하나의 2차 컴포넌트가 되도록 선택된다. 예를 들어, YUV 공간에서, Y 컴포넌트가 1차 컴포넌트로 선택되고, 크로마 컴포넌트 U와 V 중 하나 또는 둘 다가 2차 컴포넌트로 선택된다. 다르게는, 크로마 컴포넌트 U 및 V 중 하나가 1차 컴포넌트로 선택되고 루마 컴포넌트 Y가 2차 컴포넌트로 선택된다.
도 22에 예시된 적어도 이미지의 일부를 인코딩하는 방법은, 이미지의 1차 컴포넌트에 대한 1차 잔차 컴포넌트 및 1차 컴포넌트와 상이한 이미지의 적어도 하나의 2차 컴포넌트에 대한 적어도 하나의 2차 잔차 컴포넌트를 포함하는 잔차를 제공하는 단계(S222)를 포함한다. 1차 잔차 컴포넌트는 적어도 하나의 2차 잔차 컴포넌트와 독립적으로 인코딩되고(S224), 적어도 하나의 2차 잔차 컴포넌트는 1차 잔차 컴포넌트로부터의 정보를 사용하여 인코딩된다(S226).
도 23에 예시된 실시예에 따르면, 적어도 이미지의 일부를 재구성하는 방법은, 제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하는 단계(S232) 및 이미지의 1차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 제1 잠재 텐서를 처리하는 단계(S234)를 포함한다. 또한, 제1 비트스트림과 상이한 제2 비트스트림을 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 처리하여 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하고(S236), 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 제2 잠재 텐서를 처리한다(S238).
도 24에 예시된 실시예에 따르면, 적어도 이미지의 일부를 재구성하는 방법은, 제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하는 단계(S242) 및 이미지의 1차 컴포넌트에 대한 잔차의 1차 잔차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 제1 잠재 텐서를 처리하는 단계(S244)를 포함한다. 또한, 제1 비트스트림과 상이한 제2 비트스트림을 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 처리하여 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하고(S246), 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트에 대한 잔차의 적어도 하나의 2차 잔차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 제2 잠재 텐서를 처리한다(S248).
도 21 내지 도 24에 설명된 방법은 적절한 경우 인트라 예측, 인터 예측 및/또는 정지 이미지 코딩의 콘텍스트에서 적용될 수 있다. 또한, 도 21 내지 도 24에 예시된 방법은 특정 구현에서는 도 12 내지 도 20을 참조하여 설명된 처리(유닛)를 이용할 수 있다.
특히, 도 21 내지 도 24에 예시된 방법은 도 25에 도시된 바와 같이 이들 방법의 단계를 수행하도록 구성된 처리 회로(255)를 포함하는 처리 장치(250)에서 구현될 수 있다.
따라서, 처리 장치(250)는 적어도 이미지의 일부를 인코딩하기 위한 처리 장치(250)일 수 있고, 처리 장치(250)는, (적어도 이미지의 일부에 대해) 이미지의 적어도 하나의 2차 컴포넌트와 독립적으로 이미지의 1차 컴포넌트를 인코딩하고, (적어도 이미지의 일부에 대해) 1차 컴포넌트로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 인코딩하도록 구성된 처리 회로(255)를 포함한다.
다르게는, 처리 장치(250)는 적어도 이미지의 일부를 인코딩하기 위한 처리 장치(250)일 수 있고, 처리 장치(250)는, 이미지의 1차 컴포넌트에 대한 1차 잔차 컴포넌트 및 1차 컴포넌트와 상이한 이미지의 적어도 하나의 2차 컴포넌트에 대한 적어도 하나의 2차 잔차 컴포넌트를 포함하는 잔차를 제공하고, 적어도 하나의 2차 잔차 컴포넌트와 독립적으로 1차 컴포넌트를 인코딩하며, 1차 컴포넌트로부터의 정보를 사용하여 적어도 하나의 2차 잔차 컴포넌트를 인코딩하도록 구성된 처리 회로(255)를 포함한다.
다르게는, 처리 장치(250)는 적어도 이미지의 일부를 재구성하기 위한 처리 장치(250)일 수 있고, 처리 장치(250)는, 제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하고, 이미지의 1차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 제1 잠재 텐서를 처리하고, 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 제1 비트스트림과 상이한 제2 잠재 텐서를 획득하며, 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 제2 잠재 텐서를 처리하도록 구성된 처리 회로(255)를 포함한다.
다르게는, 처리 장치(250)는 적어도 이미지의 일부를 재구성하기 위한 처리 장치(250)일 수 있고, 처리 장치(250)는, 제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하고, 이미지의 1차 컴포넌트에 대한 잔차의 1차 잔차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 제1 잠재 텐서를 처리하며, 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하고, 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트에 대한 잔차의 적어도 하나의 2차 잔차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 제2 잠재 텐서를 처리하도록 구성된 처리 회로(255)를 포함한다.
하드웨어 및 소프트웨어의 일부 예시적인 구현
위에서 언급한 인코더-디코더 처리 체인을 배치할 수 있는 대응하는 시스템이 도 26에 설명되어 있다. 도 26은 예시적인 코딩 시스템, 예를 들어 본 출원의 기술을 활용할 수 있는 비디오, 이미지, 오디오 및/또는 다른 코딩 시스템(또는 짧은 코딩 시스템)을 예시하는 개략적인 블록도이다. 비디오 코딩 시스템(10)의 비디오 인코더(20)(또는 간략히 인코더(20)) 및 비디오 디코더(30)(또는 간략히 디코더(30))는 본 출원에 설명된 다양한 예에 따른 기술을 수행하도록 구성될 수 있는 디바이스의 예를 나타낸다. 예를 들어, 비디오 코딩 및 디코딩은, 분산될 수 있고, 분산된 계산 노드(2개 이상) 사이에 특징 맵을 전달하기 위해 위에서 언급한 비트스트림 파싱 및/또는 비트스트림 생성을 적용할 수 있는, 도 1 내지 도 6에 도시된 것과 같은 신경망을 사용할 수 있다.
도 26에 도시된 바와 같이, 코딩 시스템(10)은 인코딩된 픽처 데이터(21)를 예를 들어, 인코딩된 픽처 데이터(13)를 디코딩하기 위한 목적지 디바이스(14)로 제공하도록 구성된 소스 디바이스(12)를 포함한다.
소스 디바이스(12)는 인코더(20)를 포함하고, 추가적으로, 즉 선택적으로, 픽처 소스(16), 전처리기(pre-processor)(또는 전처리 유닛)(18), 예를 들어, 픽처 전처리기(18) 및 통신 인터페이스 또는 통신 유닛(22)을 포함한다.
픽처 소스(16)는 임의의 종류의 픽처 캡처 디바이스, 예를 들어 실제 픽처를 캡처하기 위한 카메라 및/또는 임의의 종류의 픽처 생성 디바이스, 예를 들어 컴퓨터 애니메이션 픽처를 생성하기 위한 컴퓨터 그래픽 프로세서, 또는 실제 픽처, 컴퓨터 생성 픽처(예: 화면 콘텐츠, 가상 현실(virtual reality, VR) 픽처) 및/또는 이들의 임의의 조합(예: 증강 현실(augmented reality, AR)을 픽처)를 획득하거나 및/또는 제공하기 위한 임의의 종류의 기타 디바이스를 포함할 수 있다. 픽처 소스는 앞서 언급한 픽처를 저장하는 임의의 종류의 메모리 또는 저장소일 수 있다.
전처리기(18) 및 전처리 유닛(18)에 의해 수행되는 처리와는 다르게, 픽처 또는 픽처 데이터(17)는 원시 픽처 또는 원시 픽처 데이터(17)로 지칭될 수도 있다.
전처리기(18)는 (원시) 픽처 데이터(17)를 수신하고 픽처 데이터(17)에 대해 전처리를 수행하여 전처리된 픽처(19) 또는 전처리된 픽처 데이터(19)를 획득하도록 구성된다. 전처리기(18)에 의해 수행되는 전처리는 예를 들어 트리밍, 색상 포맷 변환(예: RGB에서 YCbCr로), 색상 보정 또는 노이즈 제거(de-noising)를 포함할 수 있다. 전처리 유닛(18)은 선택적 컴포넌트일 수 있다는 것이 이해될 수 있다. 전처리는 또한 존재 지시자 시그널링을 사용하는 신경망(도 1 내지 도 7 중 어느 하나에서와 같은)을 이용할 수도 있다는 점에 유의한다.
비디오 인코더(20)는 전처리된 픽처 데이터(19)를 수신하고 인코딩된 픽처 데이터(21)를 제공하도록 구성된다.
소스 디바이스(12)의 통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 인코딩된 픽처 데이터(21)(또는 그 임의의 추가 처리된 버전)를 통신 채널(13)을 통해 저장 또는 직접 재구성을 위해 다른 디바이스, 예를 들어, 목적지 디바이스(14) 또는 임의의 다른 디바이스에 전송하도록 구성될 수 있다.
목적지 디바이스(14)는 디코더(30)(예: 비디오 디코더(30))를 포함하고, 추가적으로, 즉 선택적으로 통신 인터페이스 또는 통신 유닛(28), 후처리기(32)(또는 후처리 유닛(32)) 및 디스플레이 디바이스(34)를 포함할 수 있다.
목적지 디바이스(14)의 통신 인터페이스(28)는 예를 들어, 소스 디바이스(12)로부터 직접 또는 임의의 다른 소스로부터, 예를 들어 저장 디바이스, 예를 들어 인코딩된 픽처 데이터 저장 디바이스로부터, 인코딩된 픽처 데이터(21)(또는 그 임의의 추가 처리된 버전)를 수신하고, 인코딩된 픽처 데이터(21)를 디코더(30)에 제공하도록 구성된다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 소스 디바이스(12)와 목적지 디바이스(14) 사이의 직접 통신 링크, 예를 들어, 직접 유선 또는 무선 연결을 통해, 또는 임의의 종류의 네트워크, 예를 들어, 유선 또는 무선 네트워크 또는 이들의 조합을 통해, 또는 임의의 종류의 개인 및 공용 네트워크, 또는 이들의 임의의 종류의 조합을 통해, 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를 전송 또는 수신하도록 구성될 수 있다.
통신 인터페이스(22)는 예를 들어 인코딩된 픽처 데이터(21)를 적절한 포맷으로 예를 들어 패킷으로 패키징하거나, 및/또는 통신 링크 또는 통신 네트워크를 통한 전송을 위해 임의 종류의 전송 인코딩 또는 처리를 사용하여 인코딩된 픽처 데이터를 처리하도록 구성될 수 있다.
통신 인터페이스(22)의 대응부(counterpart)을 형성하는 통신 인터페이스(28)는 예를 들어, 전송된 데이터를 수신하고, 임의의 종류의 대응하는 전송 디코딩 또는 처리 및/또는 디패키징을 사용하여 전송 데이터를 처리하여 인코딩된 픽처 데이터(21)를 획득하도록 구성될 수 있다.
통신 인터페이스(22)와 통신 인터페이스(28) 모두는, 소스 디바이스(12)에서 목적지 디바이스(14)를 가리키는 도 26의 통신 채널(13)에 대한 화살표로 지시된 단방향 통신 인터페이스, 또는 양방향 통신 인터페이스로서 구성될 수 있으며, 예를 들어 메시지를 송신하고 수신하기 위해, 예를 들어 연결을 설정하고, 통신 링크 및/또는 데이터 전송, 예를 들어 인코딩된 픽처 데이터 전송에 관련된 임의의 기타 정보를 확인하고 교환하도록 구성될 수 있다. 디코더(30)는 인코딩된 픽처 데이터(21)를 수신하고, 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(예: 도 1 내지 도 7 중 하나 이상에 기반한 신경망을 활용).
목적지 디바이스(14)의 후처리기(32)는 디코딩된 픽처 데이터(31)(재구성된 픽처 데이터라고도 함), 예를 들어 디코딩된 픽처(31)를 후처리하여, 후처리된 픽처 데이터(33), 예를 들어, 후처리된 픽처(33)를 획득하도록 구성된다. 후처리 유닛(32)에 의해 수행되는 후처리는 예를 들어, 색상 포맷 변환(예: YCbCr에서 RGB로), 색상 보정, 트리밍 또는 재샘플링 또는 임의의 기타 처리, 예를 들어, 디스플레이 디바이스(34)에 의한 디스플레이를 위해 디코딩된 픽처 데이터(31)를 준비하기 위한 것을 포함할 수 있다.
목적지 디바이스(14)의 디스플레이 디바이스(34)는 예를 들어 사용자 또는 뷰어에게 픽처를 디스플레이하기 위해 후처리된 픽처 데이터(33)를 수신하도록 구성된다. 디스플레이 디바이스(34)는 재구성된 픽처를 표현하기 위한 임의 종류의 디스플레이, 예를 들어 통합 또는 외부 디스플레이나 모니터일 수 있거나 이를 포함할 수 있다. 디스플레이는 예를 들어 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, 실리콘 액정(liquid crystal on silicon, LCoS), 디지털 조명 프로세서(digital light processor, DLP) 또는 기타 임의의 종류의 디스플레이일 수 있다.
도 26은 소스 디바이스(12)와 목적지 디바이스(14)를 별도의 디바이스로 도시하지만, 디바이스의 실시예는 또한 둘 다 또는 두 기능, 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능을 포함할 수 있다. 이러한 실시예에서, 소스 디바이스(12) 또는 대응하는 기능과 목적지 디바이스(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어를 사용하거나 별도의 하드웨어 및/또는 소프트웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
설명에 기반하여 당업자에게 명백한 바와 같이, 도 26에 도시된 바와 같이 소스 디바이스(12) 및/또는 목적지 디바이스(14) 내의 기능 또는 서로 다른 유닛의 존재 및 (정확한) 기능의 분할은 실제 디바이스 및 애플리케이션에 따라 달라질 수 있다.
인코더(20)(예: 비디오 인코더(20)) 또는 디코더(30)(예: 비디오 디코더(30)) 또는 인코더(20)와 디코더(30) 모두는 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 애플리케이션 특정 집적 회로(application-specific integrated circuit, ASIC), 현장 프로그래밍 가능한 게이트 어레이(field-programmable gate array, FPGA), 이산 로직, 하드웨어, 비디오 코딩 전용 또는 이들의 조합을 통해 구현될 수 있다. 인코더(20)는 도 1 내지 도 6중 어느 하나에 도시된 것과 같은 신경망 또는 그 일부를 포함하는 다양한 모듈을 구현하기 위해 처리 회로(46)를 통해 구현될 수 있다. 디코더(30)는 도 1 내지 도 7과 관련하여 논의된 바와 같은 다양한 모듈을 구현하기 위해 처리 회로(46) 및/또는 본 명세서에 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 통해 구현될 수 있다. 처리 회로는 나중에 논의되는 다양한 작동을 수행하도록 구성될 수 있다. 기술이 부분적으로 소프트웨어로 구현되면, 디바이스는 소프트웨어에 대한 명령어를 적합한 컴퓨터가 판독 가능한 비일시적 저장 매체에 저장할 수 있고, 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어를 실행하여, 본 개시의 기술을 수행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 중 어느 하나는 예를 들어 도 27에 도시된 바와 같이 단일 디바이스에서 조합된 인코더/디코더(combined encoder/decoder, CODEC)의 일부로서 통합될 수 있다.
소스 디바이스(12)와 목적지 디바이스(14)는 임의의 종류의 휴대용 디바이스 또는 고정 디바이스, 예를 들어, 노트북 또는 랩톱 컴퓨터, 모바일폰, 스마트폰, 태블릿 또는 태블릿 컴퓨터, 카메라, 데스크톱 컴퓨터, 셋톱박스, 텔레비전, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스(예컨대, 콘텐츠 서비스 서버 또는 콘텐츠 전송 서버), 방송 수신기 디바이스, 방송 송신기 디바이스 등을 포함하는 광범위의 디바이스 중 어느 하나를 포함할 수 있으며, 운영 체제를 사용하지 않거나 임의의 종류의 운영 체제를 사용할 수 있다. 일부 경우에, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신을 위해 구비될 수 있다. 따라서, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신 디바이스들일 수 있다.
일부 경우에, 도 26에 예시된 비디오 코딩 시스템(10)은 단지 예일 뿐이며, 본 출원의 기술은 인코딩 디바이스와 디코딩 디바이스 간의 임의의 데이터 통신을 반드시 포함하지 않는 비디오 코딩 설정(예: 비디오 인코딩 또는 비디오 디코딩)에 적용될 수 있다. 다른 예에서, 데이터는 로컬 메모리로부터 검색되거나 네트워크 등을 통해 스트리밍된다. 비디오 인코딩 디바이스는 데이터를 인코딩하여 메모리에 저장할 수 있거나, 및/또는 비디오 디코딩 디바이스는 메모리로부터 데이터를 검색하고 디코딩할 수 있다. 일부 예에서, 인코딩 및 디코딩은, 서로 통신하지 않고 단순히 데이터를 메모리에 인코딩하거나 및/또는 메모리로부터 데이터를 검색 및 디코딩하는 디바이스에 의해 수행된다.
도 28은 본 발명의 실시예에 따른 비디오 코딩 디바이스(2000)의 개략도이다. 비디오 코딩 디바이스(2000)는 여기에서 설명된 개시된 실시예를 구현하는데 적합하다. 일 실시예에서, 비디오 코딩 디바이스(2000)는 도 26의 비디오 디코더(30)와 같은 디코더 또는 도 26의 비디오 인코더(20)와 같은 인코더일 수 있다.
비디오 코딩 디바이스(2000)는 데이터를 수신하기 위한 입구 포트(2010)(또는 입력 포트(2010)) 및 수신기 유닛(Rx)(2020)을 포함하고; 데이터를 처리하는 프로세서, 로직 유닛 또는 중앙 처리 장치(central processing unit, CPU)(2030); 데이터를 전송하기 위한 송신기 유닛(Tx)(2040) 및 출구 포트(2050)(또는 출력 포트(2050)); 및 데이터를 저장하는 메모리(2060)를 포함한다. 비디오 코딩 디바이스(2000)는 또한 광학 또는 전기 신호의 송신 또는 수신을 위해, 입구 포트(2010), 수신기 유닛(2020), 송신기 유닛(2040) 및 출구 포트(2050)에 결합된 광-전기(optical-to-electrical, OE) 컴포넌트 및 전기-광(electrical-to-optical, EO) 컴포넌트를 포함할 수 있다.
프로세서(2030)는 하드웨어와 소프트웨어로 구현된다. 프로세서(2030)는 하나 이상의 CPU 칩, 코어(예: 멀티 코어 프로세서), FPGA, ASIC, DSP로 구현될 수 있다. 프로세서(2030)는 입구 포트(2010), 수신기 유닛(2020), 송신기 유닛(2040), 출구 포트(2050) 및 메모리(2060)와 통신한다. 프로세서(2030)는 코딩 모듈(2070)을 포함한다. 코딩 모듈(2070)은 위에서 설명된 개시된 실시예를 구현한다. 예를 들어, 코딩 모듈(2070)은 다양한 코딩 작동을 구현, 처리, 준비 또는 제공한다. 따라서 코딩 모듈(2070)의 포함은 비디오 코딩 디바이스(2000)의 기능에 대한 실질적인 개선을 제공하고, 비디오 코딩 디바이스(2000)의 다른 상태로의 변환에 영향을 미친다. 다르게는, 코딩 모듈(2070)은 메모리(2060)에 저장되고 프로세서(2030)에 의해 실행되는 명령어로 구현된다.
메모리(2060)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브를 포함할 수 있으며, 오버플로 데이터 저장 디바이스로 사용되어 이러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 동안 판독되는 명령어 및 데이터를 저장할 수 있다. 메모리(2060)는, 예를 들어, 휘발성 및/또는 비휘발성일 수 있고, ROM(read-only memory), RAM(random access memory), TCAM(ternary content-addressable memory), 및/또는 SRAM(static random-access memory)일 수 있다.
도 29는 예시적인 실시예에 따른 도 26의 소스 디바이스(12) 및 목적지 디바이스(14) 중 하나 또는 둘 다로서 사용될 수 있는 디바이스(800)의 단순화된 블록도이다.
장치(2100)의 프로세서(2102)는 중앙 처리 유닛일 수 있다. 다르게는, 프로세서(2102)는 현재 존재하거나 향후 개발될, 정보를 조작하거나 처리될 수 있는 임의의 다른 유형의 디바이스 또는 다중 디바이스일 수 있다. 개시된 구현은 도시된 바와 같이 단일 프로세서, 예를 들어 프로세서(2102)로 실행될 수 있지만, 속도 및 효율성의 이점은 하나 이상의 프로세서를 사용하여 달성될 수 있다.
장치(2100)의 메모리(2104)는 일 구현에서 ROM(read only memory) 디바이스 또는 RAM(random access memory) 디바이스일 수 있다. 임의의 다른 적절한 유형의 저장 디바이스가 메모리(2104)로 사용될 수 있다. 메모리(2104)는 버스(2112)를 사용하여 프로세서(2102)에 의해 액세스되는 코드 및 데이터(2106)를 포함할 수 있다. 메모리(2104)는 운영 체제(2108) 및 애플리케이션 프로그램(2110)을 더 포함할 수 있으며, 애플리케이션 프로그램(2110)은 프로세서(2102)가 여기에 설명된 방법을 수행하도록 허용하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션(2110)은 애플리케이션 1 내지 애플리케이션 N을 포함할 수 있으며, 여기에 설명된 방법을 수행하는 비디오 코딩 애플리케이션을 더 포함할 수 있다.
장치(2100)는 또한 디스플레이(2118)와 같은 하나 이상의 출력 디바이스를 포함할 수 있다. 디스플레이(2118)는 일 예에서, 터치 입력을 감지하도록 작동 가능한 터치 감지 엘리먼트와 디스플레이를 결합하는 터치 검출 디스플레이일 수 있다. 디스플레이(2118)는 버스(2112)를 통해 프로세서(2102)에 결합될 수 있다.
여기서는 단일 버스로 도시되어 있지만, 장치(2100)의 버스(2112)는 다수의 버스로 구성될 수 있다. 또한, 2차 저장소는 장치(2100)의 다른 컴포넌트에 직접 결합될 수 있거나 네트워크를 통해 액세스될 수 있고, 메모리 카드와 같은 단일 통합 유닛 또는 다수의 메모리 카드와 같은 다수의 유닛을 포함할 수 있다. 따라서 장치(2100)는 매우 다양한 구성으로 구현될 수 있다.
또한, 도 25에 도시된 처리 장치(250)는 도 26에 도시된 소스 디바이스(12) 또는 목적지 디바이스(14), 도 27에 도시된 비디오 코딩 시스템(40), 도 28에 도시된 비디오 코딩 디바이스(2000), 또는 도 29에 도시된 장치(2100)를 포함할 수 있다.

Claims (63)

  1. 적어도 이미지의 일부를 인코딩하는 방법으로서,
    상기 이미지의 적어도 하나의 2차(secondary) 컴포넌트와 독립적으로 상기 이미지의 1차(primary) 컴포넌트를 인코딩하는 단계(S212); 및
    상기 1차 컴포넌트로부터의 정보를 사용하여 상기 이미지의 적어도 하나의 2차 컴포넌트를 인코딩하는 단계(S214)
    를 포함하는 인코딩하는 방법.
  2. 제1항에 있어서,
    상기 1차 컴포넌트와 상기 적어도 하나의 2차 컴포넌트는 동시에 인코딩되는, 인코딩하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 이미지의 1차 컴포넌트는 루마 컴포넌트이고, 상기 이미지의 적어도 하나의 2차 컴포넌트는 크로마 컴포넌트인, 인코딩하는 방법.
  4. 제3항에 있어서,
    상기 이미지의 2개의 2차 컴포넌트가 동시에 인코딩되며, 그 중 하나는 크로마 컴포넌트이고 다른 하나는 또 다른 크로마 컴포넌트인, 인코딩하는 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 이미지의 1차 컴포넌트는 크로마 컴포넌트이고, 상기 이미지의 적어도 하나의 2차 컴포넌트는 루마 컴포넌트인, 인코딩하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    a) 상기 1차 컴포넌트를 인코딩하는 단계(S212)는:
    상기 1차 컴포넌트를 제1 텐서로 표현하는 단계;
    상기 제1 텐서를 제1 잠재 텐서(latent tensor)로 변환하는 단계; 및
    상기 제1 잠재 텐서를 처리하여 제1 비트스트림을 생성하는 단계;
    를 포함하고,
    b) 상기 적어도 하나의 2차 컴포넌트를 인코딩하는 단계(S214)는:
    상기 적어도 하나의 2차 컴포넌트를 상기 제1 텐서와 상이한 제2 텐서로 표현하는 단계;
    상기 제2 텐서와 상기 제1 텐서를 연쇄시켜(concatenate) 연쇄된 텐서를 획득하는 단계;
    상기 연쇄된 텐서를 제2 잠재 텐서로 변환하는 단계; 및
    상기 제2 잠재 텐서를 처리하여 제2 비트스트림을 생성하는 단계
    를 포함하는, 인코딩하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    a) 상기 1차 컴포넌트를 인코딩하는 단계(S212)는:
    상기 1차 컴포넌트를 높이 차원과 너비 차원을 갖는 제1 텐서로 표현하는 단계;
    상기 제1 텐서를 제1 잠재 텐서로 변환하는 단계; 및
    상기 제1 잠재 텐서를 처리하여 제1 비트스트림을 생성하는 단계
    를 포함하고,
    b) 상기 적어도 하나의 2차 컴포넌트를 인코딩하는 단계(S214)는:
    상기 적어도 하나의 2차 컴포넌트를 상기 제1 텐서와 상이하면서 높이 차원과 너비 차원을 갖는 제2 텐서로 표현하는 단계;
    상기 높이 차원 및 너비 차원 중 적어도 하나에서의 상기 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한지를 판정하고, 상기 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때, 상기 제1 텐서의 샘플 위치를 상기 제2 텐서의 샘플 위치와 매칭하도록 조정하여 조정된 제1 텐서를 획득하는 단계;
    상기 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때만 상기 제2 텐서와 상기 조정된 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하고, 그렇지 않으면 상기 제2 텐서와 상기 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하는 단계;
    상기 연쇄된 텐서를 제2 잠재 텐서로 변환하는 단계; 및
    상기 제2 잠재 텐서를 처리하여 제2 비트스트림을 생성하는 단계
    를 포함하는, 인코딩하는 방법.
  8. 제6항 또는 제7항에 있어서,
    상기 제1 잠재 텐서는 채널 차원을 포함하고, 상기 제2 잠재 텐서는 채널 차원을 포함하며, 상기 채널 차원에서의 상기 제1 잠재 텐서의 크기는 상기 채널 차원에서의 상기 제2 잠재 텐서의 크기보다 크거나, 작거나, 같은 것 중 하나인, 인코딩하는 방법.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 제1 텐서는 제1 신경망을 통해 상기 제1 잠재 텐서로 변환되고, 상기 연쇄된 텐서는 상기 제1 신경망과 상이한 제2 신경망을 통해 상기 제2 잠재 텐서로 변환되는, 인코딩하는 방법.
  10. 제9항과 제8항의 조합에 있어서,
    상기 채널 차원에서의 제1 잠재 텐서의 크기와 상기 채널 차원에서의 제2 잠재 텐서의 크기를 결정하기 위해 상기 제1 신경망과 상기 제2 신경망이 협력적으로 트레이닝되는, 인코딩하는 방법.
  11. 제6항 내지 제10항 중 어느 한 항에 있어서,
    상기 채널 차원에서의 상기 제1 잠재 텐서의 크기를 상기 제1 비트스트림에서 시그널링하고, 상기 채널 차원에서의 상기 제2 잠재 텐서의 크기를 상기 제2 비트스트림에서 시그널링하는 단계
    를 더 포함하는 인코딩하는 방법.
  12. 제6항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 비트스트림은 제1 엔트로피 모델에 기반하여 생성되고, 상기 제2 비트스트림은 상기 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 생성되는, 인코딩하는 방법.
  13. 제12항에 있어서,
    A)
    상기 제1 잠재 텐서를 제1 하이퍼-잠재 텐서(hyper-latent)로 변환하는 단계;
    상기 제1 하이퍼-잠재 텐서를 처리하여 제3 엔트로피 모델에 기반한 제3 비트스트림을 생성하는 단계;
    상기 제3 엔트로피 모델을 사용하여 상기 제3 비트스트림을 디코딩하여, 복원된 제1 하이퍼-잠재 텐서를 획득하는 단계;
    상기 복원된 제1 하이퍼-잠재 텐서를 제1 하이퍼-디코딩된 하이퍼-잠재 텐서로 변환하는 단계; 및
    상기 제1 하이퍼 디코딩된 하이퍼-잠재 텐서 및 상기 제1 잠재 텐서에 기반하여 상기 제1 엔트로피 모델을 생성하는 단계
    그리고
    B)
    상기 제2 잠재 텐서를 상기 제1 하이퍼-잠재 텐서와 상이한 제2 하이퍼-잠재 텐서로 변환하는 단계;
    상기 제2 하이퍼-잠재 텐서를 처리하여 제4 엔트로피 모델에 기반한 제4 비트스트림을 생성하는 단계;
    상기 제4 엔트로피 모델을 사용하여 상기 제4 비트스트림을 디코딩하여, 복원된 제2 하이퍼-잠재 텐서를 획득하는 단계;
    상기 복원된 제2 하이퍼-잠재 텐서를 제2 하이퍼-디코딩된 하이퍼-잠재 텐서로 변환하는 단계; 및
    상기 제2 하이퍼 디코딩된 하이퍼-잠재 텐서와 상기 제2 잠재 텐서에 기반하여 상기 제2 엔트로피 모델을 생성하는 단계
    를 더 포함하는 인코딩하는 방법.
  14. 제13항에 있어서,
    상기 제3 엔트로피 모델은 상기 제1 신경망 및 상기 제2 신경망과 상이한, 제3 신경망에 의해 생성될 수 있고, 상기 제4 엔트로피 모델은 상기 제1 신경망, 상기 제2 신경망 및 상기 제3 신경망과 상이한, 제4 신경망에 의해 생성되는, 인코딩하는 방법.
  15. 제13항 또는 제14항에 있어서,
    상기 제3 비트스트림은 상기 제1 신경망 내지 상기 제4 신경망과 상이한, 제5 신경망에 의해 생성되고, 상기 제1 신경망 내지 상기 제5 신경망과 상이한, 제6 신경망에 의해 디코딩되고,
    상기 제4 비트스트림은 상기 제6 신경망과 상이한 제7 신경망에 의해 생성되고, 상기 제1 신경망 내지 상기 제7 신경망과 상이한, 제8 신경망에 의해 디코딩되는, 인코딩하는 방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서,
    상기 제1 엔트로피 모델은 상기 제1 신경망 내지 상기 제8 신경망과 상이한, 제9 신경망에 의해 생성되고, 상기 제2 엔트로피 모델은 상기 제1 신경망 내지 상기 제9 신경망과 상이한, 제10 신경망에 의해 생성되는, 인코딩하는 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    상기 이미지는 정지 이미지와 비디오 시퀀스의 인트라 프레임 중 하나인, 인코딩하는 방법.
  18. 적어도 이미지의 일부를 인코딩하는 방법으로서,
    상기 이미지의 1차 컴포넌트에 대한 1차 잔차 컴포넌트 및 상기 1차 컴포넌트와 상이한 상기 이미지의 적어도 하나의 2차 컴포넌트에 대한 적어도 하나의 2차 잔차 컴포넌트를 포함하는 잔차를 제공하는 단계(S222);
    상기 적어도 하나의 2차 잔차 컴포넌트와 독립적으로 상기 1차 잔차 컴포넌트를 인코딩하는 단계(S224); 및
    상기 1차 잔차 컴포넌트로부터의 정보를 사용하여 상기 적어도 하나의 2차 잔차 컴포넌트를 인코딩하는 단계(S226)
    를 포함하는 인코딩하는 방법.
  19. 제18항에 있어서,
    상기 1차 잔차 컴포넌트와 상기 적어도 하나의 2차 잔차 컴포넌트는 동시에 인코딩되는, 인코딩하는 방법.
  20. 제18항 또는 제19항에 있어서,
    상기 이미지의 1차 컴포넌트는 루마 컴포넌트이고, 상기 이미지의 적어도 하나의 2차 컴포넌트는 크로마 컴포넌트인, 인코딩하는 방법.
  21. 제20항에 있어서,
    상기 적어도 하나의 2차 잔차 컴포넌트는 크로마 컴포넌트에 대한 잔차 컴포넌트 및 다른 크로마 컴포넌트에 대한 다른 잔차 컴포넌트를 포함하는, 인코딩하는 방법.
  22. 제18항 또는 제19항에 있어서,
    상기 이미지의 1차 컴포넌트는 크로마 컴포넌트이고, 상기 이미지의 적어도 하나의 2차 컴포넌트는 루마 컴포넌트인, 인코딩하는 방법.
  23. 제1항 내지 제22항 중 어느 한 항에 있어서,
    a) 상기 1차 잔차 컴포넌트를 인코딩하는 단계(S224)는:
    상기 1차 잔차 컴포넌트를 제1 텐서로 표현하는 단계;
    상기 제1 텐서를 제1 잠재 텐서로 변환하는 단계; 및
    상기 제1 잠재 텐서를 처리하여 제1 비트스트림을 생성하는 단계
    를 포함하고,
    b) 상기 적어도 하나의 2차 잔차 컴포넌트를 인코딩하는 단계(S226)는:
    상기 적어도 하나의 2차 잔차 컴포넌트를 상기 제1 텐서와 상이한 제2 텐서로 표현하는 단계;
    상기 제2 텐서와 상기 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하는 단계;
    상기 연쇄된 텐서를 제2 잠재 텐서로 변환하는 단계; 및
    상기 제2 잠재 텐서를 처리하여 제2 비트스트림을 생성하는 단계
    를 포함하는, 인코딩하는 방법.
  24. 제1항 내지 제23항 중 어느 한 항에 있어서,
    a) 상기 1차 잔차 컴포넌트를 인코딩하는 단계(S224)는:
    상기 1차 잔차 컴포넌트를 높이 차원과 너비 차원을 갖는 제1 텐서로 표현하는 단계;
    상기 제1 텐서를 상기 제1 잠재 텐서로 변환하는 단계; 및
    상기 제1 잠재 텐서를 처리하여 제1 비트스트림을 생성하는 단계
    를 포함하고,
    b) 상기 적어도 하나의 2차 잔차 컴포넌트를 인코딩하는 단계(S226)는:
    상기 적어도 하나의 2차 잔차 컴포넌트를 상기 제1 텐서와 상이하면서 높이 차원과 너비 차원을 갖는 제2 텐서로 표현하는 단계;
    상기 높이 차원 및 너비 차원 중 적어도 하나에서의 상기 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한지를 판정하고, 상기 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때, 상기 제1 텐서의 샘플 위치를 상기 제2 텐서의 샘플 위치와 매칭하도록 조정하여 조정된 제1 텐서를 획득하는 단계;
    상기 제2 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때만 상기 제2 텐서와 상기 조정된 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하고, 그렇지 않으면 상기 제2 텐서와 상기 제1 텐서를 연쇄시켜 연쇄된 텐서를 획득하는 단계;
    상기 연쇄된 텐서를 제2 잠재 텐서로 변환하는 단계; 및
    상기 제2 잠재 텐서를 처리하여 제2 비트스트림을 생성하는 단계
    를 포함하는, 인코딩하는 방법.
  25. 제23항 및 제24항 중 어느 한 항에 있어서,
    상기 제1 잠재 텐서는 채널 차원을 포함하고, 상기 제2 잠재 텐서는 채널 차원을 포함하며, 상기 채널 차원에서의 상기 제1 잠재 텐서의 크기는 상기 채널 차원에서의 상기 제2 잠재 텐서의 크기보다 크거나, 작거나, 같은 것 중 하나인, 인코딩하는 방법.
  26. 제23항 내지 제25항 중 어느 한 항에 있어서,
    상기 제1 텐서는 제1 신경망을 통해 상기 제1 잠재 텐서로 변환되고, 상기 연쇄된 텐서는 상기 제1 신경망과 상이한 제2 신경망을 통해 상기 제2 잠재 텐서로 변환되는, 인코딩하는 방법.
  27. 제26항과 제25항의 조합에 있어서,
    상기 채널 차원에서의 제1 잠재 텐서의 크기와 상기 채널 차원에서의 제2 잠재 텐서의 크기를 결정하기 위해 상기 제1 신경망과 상기 제2 신경망이 협력적으로 트레이닝되는, 인코딩하는 방법.
  28. 제23항 내지 제27항 중 어느 한 항에 있어서,
    상기 채널 차원에서의 상기 제1 잠재 텐서의 크기를 상기 제1 비트스트림에서 시그널링하고, 상기 채널 차원에서의 상기 제2 잠재 텐서의 크기를 상기 제2 비트스트림에서 시그널링하는 단계
    를 더 포함하는 인코딩하는 방법.
  29. 제23항 내지 제28항 중 어느 한 항에 있어서,
    상기 제1 비트스트림은 제1 엔트로피 모델에 기반하여 생성되고, 상기 제2 비트스트림은 상기 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 생성되는, 인코딩하는 방법.
  30. 제29항에 있어서,
    A)
    상기 제1 잠재 텐서를 제1 하이퍼-잠재 텐서로 변환하는 단계;
    상기 제1 하이퍼-잠재 텐서를 처리하여 제3 엔트로피 모델에 기반한 제3 비트스트림을 생성하는 단계;
    상기 제3 엔트로피 모델을 사용하여 상기 제3 비트스트림을 디코딩하여, 복원된 제1 하이퍼-잠재 텐서를 획득하는 단계;
    상기 복원된 제1 하이퍼-잠재 텐서를 제1 하이퍼-디코딩된 하이퍼-잠재 텐서로 변환하는 단계; 및
    상기 제1 하이퍼 디코딩된 하이퍼-잠재 텐서 및 상기 제1 잠재 텐서에 기반하여 상기 제1 엔트로피 모델을 생성하는 단계
    그리고
    B)
    상기 제2 잠재 텐서를 상기 제1 하이퍼-잠재 텐서와 상이한 제2 하이퍼-잠재 텐서로 변환하는 단계;
    상기 제2 하이퍼-잠재 텐서를 처리하여 제4 엔트로피 모델에 기반한 제4 비트스트림을 생성하는 단계;
    상기 제4 엔트로피 모델을 사용하여 상기 제4 비트스트림을 디코딩하여, 복원된 제2 하이퍼-잠재 텐서를 획득하는 단계;
    상기 복원된 제2 하이퍼-잠재 텐서를 제2 하이퍼-디코딩된 하이퍼-잠재 텐서로 변환하는 단계; 및
    상기 제2 하이퍼 디코딩된 하이퍼-잠재 텐서와 상기 제2 잠재 텐서에 기반하여 상기 제2 엔트로피 모델을 생성하는 단계
    를 더 포함하는 인코딩하는 방법.
  31. 제30항에 있어서,
    상기 제3 엔트로피 모델은 상기 제1 신경망 및 상기 제2 신경망과 상이한, 제3 신경망에 의해 생성될 수 있고, 상기 제4 엔트로피 모델은 상기 제1 신경망, 상기 제2 신경망 및 상기 제3 신경망과 상이한, 제4 신경망에 의해 생성되는, 인코딩하는 방법.
  32. 제30항 또는 제31항에 있어서,
    상기 제3 비트스트림은 상기 제1 신경망 내지 상기 제4 신경망과 상이한, 제5 신경망에 의해 생성되고, 상기 제1 신경망 내지 상기 제5 신경망과 상이한, 제6 신경망에 의해 디코딩되고,
    상기 제4 비트스트림은 상기 제6 신경망과 상이한 제7 신경망에 의해 생성되고, 상기 제1 신경망 내지 상기 제7 신경망과 상이한, 제8 신경망에 의해 디코딩되는, 인코딩하는 방법.
  33. 제29항 내지 제32항 중 어느 한 항에 있어서,
    상기 제1 엔트로피 모델은 상기 제1 신경망 내지 상기 제8 신경망과 상이한, 제9 신경망에 의해 생성되고, 상기 제2 엔트로피 모델은 상기 제1 신경망 내지 상기 제9 신경망과 상이한, 제10 신경망에 의해 생성되는, 인코딩하는 방법.
  34. 제18항 내지 제33항 중 어느 한 항에 있어서,
    상기 이미지는 정지 이미지와 비디오 시퀀스의 인트라 프레임 중 하나인, 인코딩하는 방법.
  35. 적어도 이미지의 일부를 재구성하는 방법으로서,
    제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하는 단계(S232);
    상기 이미지의 1차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 상기 제1 잠재 텐서를 처리하는 단계(S234);
    상기 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 상기 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 상기 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하는 단계(S236); 및
    상기 제1 잠재 텐서로부터의 정보를 사용하여 이미지의 적어도 하나의 2차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 상기 제2 잠재 텐서를 처리하는 단계(S238)
    를 포함하는 재구성하는 방법.
  36. 제35항에 있어서,
    상기 제1 잠재 텐서는 상기 제2 잠재 텐서의 처리와 독립적으로 처리되는, 재구성하는 방법.
  37. 제35항 또는 제36항에 있어서,
    상기 이미지의 1차 컴포넌트는 루마 컴포넌트이고, 상기 이미지의 적어도 하나의 2차 컴포넌트는 크로마 컴포넌트인, 재구성하는 방법.
  38. 제35항 또는 제36항에 있어서,
    상기 이미지의 1차 컴포넌트는 크로마 컴포넌트이고, 상기 이미지의 적어도 하나의 2차 컴포넌트는 루마 컴포넌트인, 재구성하는 방법.
  39. 제37항에 있어서,
    상기 제2 텐서는 2개의 2차 컴포넌트를 나타내며, 그 중 하나는 크로마 컴포넌트이고 다른 하나는 또 다른 크로마 컴포넌트인, 재구성하는 방법.
  40. 제35항 내지 제39항 중 어느 한 항에 있어서,
    상기 제1 잠재 텐서를 처리하는 단계(S234)는,
    상기 제1 잠재 텐서를 상기 제1 텐서로 변환하는 단계
    를 포함하며,
    상기 제2 잠재 텐서를 처리하는 단계(S238)는,
    상기 제2 잠재 텐서와 상기 제1 잠재 텐서를 연쇄시켜 연쇄된 텐서를 획득하고, 상기 연쇄된 텐서를 상기 제2 텐서로 변환하는 단계
    를 포함하는, 재구성하는 방법.
  41. 제35항 내지 제39항 중 어느 한 항에 있어서,
    상기 제1 잠재 텐서 및 상기 제2 잠재 텐서 각각은 높이 및 너비 차원을 갖고,
    상기 제1 잠재 텐서를 처리하는 단계(S234)는,
    상기 제1 잠재 텐서를 상기 제1 텐서로 변환하는 단계
    를 포함하며,
    상기 제2 잠재 텐서를 처리하는 단계(S238)는,
    상기 높이 차원 및 너비 차원 중 적어도 하나에서의 상기 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 잠재 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한지를 판정하고, 상기 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때, 상기 제1 잠재 텐서의 샘플 위치를 상기 제2 잠재 텐서의 샘플 위치와 매칭하도록 조정하여 조정된 제1 잠재 텐서를 획득하는 단계;
    상기 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때만 상기 제2 잠재 텐서와 상기 조정된 제1 잠재 텐서를 연쇄시켜 연쇄된 잠재 텐서를 획득하고, 그렇지 않으면 상기 제2 잠재 텐서와 상기 제1 잠재 텐서를 연쇄시켜 연쇄된 텐서를 획득하는 단계; 및
    상기 연쇄된 잠재 텐서를 상기 제2 텐서로 변환하는 단계
    를 포함하는, 재구성하는 방법.
  42. 제35항 내지 제41항 중 어느 한 항에 있어서,
    상기 제1 비트스트림은 제1 신경망에 의해 처리되고, 상기 제2 비트스트림은 상기 제1 신경망과 상이한 제2 신경망에 의해 처리되는, 재구성하는 방법.
  43. 제40항 또는 제41항에 있어서,
    상기 제1 잠재 텐서는 상기 제1 신경망 및 상기 제2 신경망과 상이한, 제3 신경망에 의해 변환되고, 상기 연쇄된 잠재 텐서는 상기 제1 신경망, 상기 제2 신경망 및 상기 제3 신경망과 상이한, 제4 신경망에 의해 변환되는, 재구성하는 방법.
  44. 제35항 내지 제43항 중 어느 한 항에 있어서,
    상기 제1 잠재 텐서는 채널 차원을 포함하고, 상기 제2 잠재 텐서는 채널 차원을 포함하며, 상기 채널 차원에서의 제1 잠재 텐서의 크기는 상기 채널 차원의 제2 잠재 텐서의 크기보다 크거나, 작거나, 같은 것 중 하나인, 재구성하는 방법.
  45. 제44항에 있어서,
    상기 제1 비트스트림을 처리하는 것은, 상기 제1 비트스트림에서 시그널링되는 상기 채널 차원에서의 상기 제1 잠재 텐서의 크기에 대한 정보를 획득하는 것을 포함하고,
    상기 제2 비트스트림을 처리하는 것은, 상기 제2 비트스트림에서 시그널링되는 상기 채널 차원에서의 상기 제2 잠재 텐서의 크기에 대한 정보를 획득하는 것을 포함하는, 재구성하는 방법.
  46. 적어도 이미지의 일부를 재구성하는 방법으로서,
    제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하는 단계(S242);
    상기 이미지의 1차 컴포넌트에 대한 잔차의 1차 잔차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 상기 제1 잠재 텐서를 처리하는 단계(S244);
    상기 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 상기 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 상기 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하는 단계(S246); 및
    상기 제1 잠재 텐서로부터의 정보를 사용하여 상기 이미지의 적어도 하나의 2차 컴포넌트에 대한 잔차의 적어도 하나의 2차 잔차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 상기 제2 잠재 텐서를 처리하는 단계(S248)
    를 포함하는 재구성하는 방법.
  47. 제46항에 있어서,
    상기 제1 잠재 텐서는 상기 제2 잠재 텐서의 처리와 독립적으로 처리되는, 재구성하는 방법.
  48. 제46항 또는 제47항에 있어서,
    상기 이미지의 1차 컴포넌트는 루마 컴포넌트이고, 상기 이미지의 적어도 하나의 2차 컴포넌트는 크로마 컴포넌트인, 재구성하는 방법.
  49. 제46항 또는 제47항에 있어서,
    상기 이미지의 1차 컴포넌트는 크로마 컴포넌트이고, 상기 이미지의 적어도 하나의 2차 컴포넌트는 루마 컴포넌트인, 재구성하는 방법.
  50. 제48항에 있어서,
    상기 제2 텐서는 2개의 2차 컴포넌트에 대한 2개의 잔차 컴포넌트를 나타내며, 그 중 하나는 크로마 컴포넌트이고 다른 하나는 또 다른 크로마 컴포넌트인, 재구성하는 방법.
  51. 제46항 내지 제50항 중 어느 한 항에 있어서,
    상기 제1 잠재 텐서를 처리하는 단계(S244)는,
    상기 제1 잠재 텐서를 상기 제1 텐서로 변환하는 단계
    를 포함하고,
    상기 제2 잠재 텐서를 처리하는 단계(S248)는,
    상기 제2 잠재 텐서와 상기 제1 잠재 텐서를 연쇄시켜 연쇄된 텐서를 획득하고, 상기 연쇄된 텐서를 상기 제2 텐서로 변환하는 단계
    를 포함하는, 재구성하는 방법.
  52. 제46항 내지 제50항 중 어느 한 항에 있어서,
    상기 제1 잠재 텐서 및 상기 제2 잠재 텐서 각각은 높이 및 너비 차원을 갖고,
    상기 제1 잠재 텐서를 처리하는 단계(S244)는,
    상기 제1 잠재 텐서를 상기 제1 텐서로 변환하는 단계
    를 포함하고,
    상기 제2 잠재 텐서를 처리하는 단계(S248)는,
    상기 높이 및 너비 차원 중 적어도 하나에서의 상기 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 잠재 텐서의 높이 차원 및 너비 차원 중 적어도 하나에서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이한지를 판정하고, 상기 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때, 상기 제1 잠재 텐서의 샘플 위치를 상기 제2 잠재 텐서의 샘플 위치와 매칭하도록 조정하는 단계;
    상기 제2 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋이 상기 제1 잠재 텐서의 샘플의 크기 또는 서브 픽셀 오프셋과 상이하다고 결정될 때에만 상기 제2 잠재 텐서와 상기 조정된 제1 잠재 텐서를 연쇄시켜 연쇄된 잠재 텐서를 획득하며, 그렇지 않으면 상기 제2 잠재 텐서와 상기 제1 잠재 텐서를 연쇄시켜 연쇄된 잠재 텐서를 획득하는 단계; 및
    상기 연쇄된 잠재 텐서를 상기 제2 텐서로 변환하는 단계
    를 포함하는, 재구성하는 방법.
  53. 제46항 내지 제52항 중 어느 한 항에 있어서,
    상기 제1 비트스트림은 제1 신경망에 의해 처리되고, 상기 제2 비트스트림은 상기 제1 신경망과 상이한 제2 신경망에 의해 처리되는, 재구성하는 방법.
  54. 제53항에 있어서,
    상기 제1 잠재 텐서는 상기 제1 신경망 및 상기 제2 신경망과 상이한, 제3 신경망에 의해 변환되고, 상기 연쇄된 잠재 텐서는 상기 제1 신경망, 상기 제2 신경망 및 상기 제3 신경망과 상이한, 제4 신경망에 의해 변환되는, 재구성하는 방법.
  55. 제46항 내지 제54항 중 어느 한 항에 있어서,
    상기 제1 잠재 텐서는 채널 차원을 포함하고, 상기 제2 잠재 텐서는 채널 차원을 포함하며, 상기 채널 차원에서의 제1 잠재 텐서의 크기는 상기 채널 차원의 제2 잠재 텐서의 크기보다 크거나, 작거나, 같은 것 중 하나인, 재구성하는 방법.
  56. 제55항에 있어서,
    상기 제1 비트스트림을 처리하는 것은, 상기 제1 비트스트림에서 시그널링되는 상기 채널 차원에서의 상기 제1 잠재 텐서의 크기에 대한 정보를 획득하는 것을 포함하고,
    상기 제2 비트스트림을 처리하는 것은, 상기 제2 비트스트림에서 시그널링되는 상기 채널 차원에서의 상기 제2 잠재 텐서의 크기에 대한 정보를 획득하는 것을 포함하는, 재구성하는 방법.
  57. 하나 이상의 프로세서에서 실행될 때 제1항 내지 제56항 중 어느 한 항에 따른 방법의 단계를 수행하는 코드를 포함하는, 비일시적 매체에 저장된 컴퓨터 프로그램.
  58. 적어도 이미지의 일부를 인코딩하기 위한 처리 장치(40, 250, 2000, 2100)로서,
    상기 처리 장치(40, 250, 2000, 2100)는,
    하나 이상의 프로세서(43, 255, 2030, 2102); 및
    상기 하나 이상의 프로세서에 결합되고 상기 하나 이상의 프로세서에 의해 실행하기 위한 프로그래밍을 저장하는, 컴퓨터가 판독 가능한 비일시적 저장 매체
    를 포함하며,
    상기 프로그래밍은 상기 하나 이상의 프로세서에 의해 실행될 때, 제1항 내지 제34항 중 어느 한 항에 따른 방법을 수행하도록 상기 처리 장치를 구성하는, 처리 장치.
  59. 적어도 이미지의 일부를 재구성하기 위한 처리 장치(40, 250, 2000, 2100)로서,
    상기 처리 장치(40, 250, 2000, 2100)는,
    하나 이상의 프로세서(43, 255, 2030, 2102); 및
    상기 하나 이상의 프로세서에 결합되고 상기 하나 이상의 프로세서에 의해 실행하기 위한 프로그래밍을 저장하는, 컴퓨터가 판독 가능한 비일시적 저장 매체
    를 포함하며,
    상기 프로그래밍은 상기 하나 이상의 프로세서에 의해 실행될 때, 제35항 내지 제56항 중 어느 한 항에 따른 방법을 수행하도록 상기 처리 장치를 구성하는, 처리 장치.
  60. 적어도 이미지의 일부를 인코딩하기 위한 처리 장치(250)로서,
    상기 처리 장치(40, 250, 2000, 2100)는,
    상기 이미지의 적어도 하나의 2차 컴포넌트와 독립적으로 상기 이미지의 1차 컴포넌트를 인코딩하고; 그리고
    상기 1차 컴포넌트로부터의 정보를 사용하여 상기 이미지의 적어도 하나의 2차 컴포넌트를 인코딩하도록 구성된 처리 회로(255)
    를 포함하는 처리 장치.
  61. 적어도 이미지의 일부를 인코딩하기 위한 처리 장치(250)로서,
    상기 처리 장치(40, 250, 2000, 2100)는,
    상기 이미지의 1차 컴포넌트에 대한 1차 잔차 컴포넌트 및 상기 1차 컴포넌트와 상이한 상기 이미지의 적어도 하나의 2차 컴포넌트에 대한 적어도 하나의 2차 잔차 컴포넌트를 포함하는 잔차를 제공하고;
    상기 적어도 하나의 2차 잔차 컴포넌트와 독립적으로 상기 1차 잔차 컴포넌트를 인코딩하며; 그리고
    상기 1차 잔차 컴포넌트로부터의 정보를 사용하여 상기 적어도 하나의 2차 잔차 컴포넌트를 인코딩하도록 구성된 처리 회로(255)
    를 포함하는 처리 장치.
  62. 적어도 이미지의 일부를 재구성하기 위한 처리 장치(250)로서,
    상기 처리 장치(40, 250, 2000, 2100)는,
    제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하고;
    상기 이미지의 1차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 상기 제1 잠재 텐서를 처리하며;
    상기 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 상기 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 상기 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하고; 그리고
    상기 제1 잠재 텐서로부터의 정보를 사용하여 상기 이미지의 적어도 하나의 2차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 상기 제2 잠재 텐서를 처리하도록 구성된 처리 회로(255)
    를 포함하는 처리 장치.
  63. 적어도 이미지의 일부를 재구성하기 위한 처리 장치(40, 250, 2000, 2100) 로서,
    상기 처리 장치(40, 250, 2000, 2100)는,
    제1 엔트로피 모델에 기반하여 제1 비트스트림을 처리하여 제1 잠재 텐서를 획득하고;
    상기 이미지의 1차 컴포넌트에 대한 잔차의 1차 잔차 컴포넌트를 나타내는 제1 텐서를 획득하기 위해 상기 제1 잠재 텐서를 처리하며;
    상기 제1 엔트로피 모델과 상이한 제2 엔트로피 모델에 기반하여 상기 제1 비트스트림과 상이한 제2 비트스트림을 처리하여 상기 제1 잠재 텐서와 상이한 제2 잠재 텐서를 획득하고; 그리고
    상기 제1 잠재 텐서로부터의 정보를 사용하여 상기 이미지의 적어도 하나의 2차 컴포넌트에 대한 잔차의 적어도 하나의 2차 잔차 컴포넌트를 나타내는 제2 텐서를 획득하기 위해 상기 제2 잠재 텐서를 처리하도록 구성된 처리 회로(255)
    를 포함하는 처리 장치.
KR1020247010736A 2021-11-11 2021-11-11 조건부 이미지 압축 KR20240050435A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2021/000496 WO2023085962A1 (en) 2021-11-11 2021-11-11 Conditional image compression

Publications (1)

Publication Number Publication Date
KR20240050435A true KR20240050435A (ko) 2024-04-18

Family

ID=79021749

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247010736A KR20240050435A (ko) 2021-11-11 2021-11-11 조건부 이미지 압축

Country Status (5)

Country Link
EP (1) EP4388742A1 (ko)
KR (1) KR20240050435A (ko)
CN (1) CN118216144A (ko)
TW (1) TW202337211A (ko)
WO (1) WO2023085962A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117609169B (zh) * 2024-01-24 2024-03-26 中国空气动力研究与发展中心计算空气动力研究所 一种基于单个文件的并行流场原位无损压缩方法及系统
CN117952824B (zh) * 2024-03-26 2024-06-25 大连理工大学 一种基于目标检测的遥感图像变形下采样方法

Also Published As

Publication number Publication date
TW202337211A (zh) 2023-09-16
CN118216144A (zh) 2024-06-18
WO2023085962A1 (en) 2023-05-19
EP4388742A1 (en) 2024-06-26

Similar Documents

Publication Publication Date Title
TWI830107B (zh) 通過指示特徵圖資料進行編碼
TWI806199B (zh) 特徵圖資訊的指示方法,設備以及電腦程式
US20230336776A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
KR20230072487A (ko) 분할 정보의 시그널링으로 디코딩
TW202337211A (zh) 條件圖像壓縮
KR20230070492A (ko) 피처 맵 데이터의 시그널링으로 디코딩
CN117501696A (zh) 使用在分块之间共享的信息进行并行上下文建模
WO2022106014A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
TW202348029A (zh) 使用限幅輸入數據操作神經網路
TW202318265A (zh) 基於注意力的圖像和視訊壓縮上下文建模
WO2023172153A1 (en) Method of video coding by multi-modal processing
WO2023177318A1 (en) Neural network with approximated activation function
KR20240071400A (ko) 가변 보조 입력을 이용하는 트랜스포머 기반 신경망
WO2024083405A1 (en) Neural network with a variable number of channels and method of operating the same
TW202416712A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq
WO2024005660A1 (en) Method and apparatus for image encoding and decoding
TW202345034A (zh) 使用條件權重操作神經網路
WO2024005659A1 (en) Adaptive selection of entropy coding parameters
TW202420815A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq
WO2024002496A1 (en) Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq
WO2024002497A1 (en) Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq
WO2023121499A1 (en) Methods and apparatus for approximating a cumulative distribution function for use in entropy coding or decoding data
EP4396942A1 (en) Methods and apparatus for approximating a cumulative distribution function for use in entropy coding or decoding data
EP4388743A1 (en) Generalized difference coder for residual coding in video compression