KR20230169239A - 인공 신경망 기반 툴을 사용하여 이미지 및 비디오를 인코딩/디코딩하기 위한 방법 및 장치 - Google Patents

인공 신경망 기반 툴을 사용하여 이미지 및 비디오를 인코딩/디코딩하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20230169239A
KR20230169239A KR1020237038574A KR20237038574A KR20230169239A KR 20230169239 A KR20230169239 A KR 20230169239A KR 1020237038574 A KR1020237038574 A KR 1020237038574A KR 20237038574 A KR20237038574 A KR 20237038574A KR 20230169239 A KR20230169239 A KR 20230169239A
Authority
KR
South Korea
Prior art keywords
neural network
bitstream
video
image
decoder
Prior art date
Application number
KR1020237038574A
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 KR20230169239A publication Critical patent/KR20230169239A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

신경망을 사용하여 이미지 또는 비디오를 인코딩/디코딩하기 위한 방법들 및 장치들이 개시된다. 몇몇 실시예들에서, 제1 신경망-기반 디코더를 적응시키는 것을 가능하게 하는 부수-정보가 비트스트림으로부터 디코딩되고, 디코딩된 부수-정보, 및 비트스트림 또는 별개의 비트스트림으로부터 획득된 이미지 또는 비디오를 나타내는 코딩된 데이터는 제1 신경망-기반 디코더에 입력들로서 제공되고, 재구성된 이미지 또는 비디오가 제1 신경망-기반 디코더의 출력으로부터 획득된다.

Description

인공 신경망 기반 툴을 사용하여 이미지 및 비디오를 인코딩/디코딩하기 위한 방법 및 장치
관련 출원의 상호 참조
본 출원은, 전체적으로 본 명세서에 참고로 포함되는, 2021년 4월 13일자로 출원된 미국 가특허 출원 제63/174,105호의 이익을 주장한다.
기술분야
본 실시예들 중 적어도 하나는 일반적으로 인공 신경망(Artificial Neural Network, ANN) 기반 툴들을 사용한 이미지들 및 비디오들의 압축을 위한 방법 또는 장치에 관한 것이다.
ISO/MPEG와 ITU 사이의 JVET(Joint Video Exploration Team)는 최신 표준 H.266/VVC의 몇몇 모듈들을 대체하는 툴들뿐만 아니라, 종단간 오토인코더(auto-encoder)에 의해 전체 구조를 대체하는 방법들을 현재 연구하고 있다.
본 실시예들 중 적어도 하나는 일반적으로 신규한 인공 신경망(ANN)-기반 툴들을 사용한 이미지들 및 비디오들의 압축의 맥락에서의 방법 또는 장치에 관한 것이다.
제1 태양에 따르면, 방법이 제공된다. 방법은 비트스트림으로부터, 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보(side-information)를 디코딩하는 단계, 디코딩된 부수-정보, 및 비트스트림 또는 별개의 비트스트림으로부터 획득된 이미지 또는 비디오를 나타내는 코딩된 데이터를 제1 신경망-기반 디코더에 입력들로서 제공하는 단계, 제1 신경망-기반 디코더의 출력으로부터, 재구성된 이미지 또는 비디오를 획득하는 단계를 포함한다.
제2 태양에 따르면, 방법이 제공된다. 방법은 제1 신경망 인코더로부터, 이미지 또는 비디오를 나타내는 코딩된 데이터를 포함하는 적어도 하나의 제1 레이턴트(latent)를 획득하는 단계, 적어도 하나의 제1 레이턴트를 제2 신경망 인코더에 제공하는 단계, 제2 신경망 인코더로부터, 적어도 하나의 제1 레이턴트를 디코딩할 때 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는 적어도 하나의 제2 레이턴트를 획득하는 단계, 적어도 하나의 제1 레이턴트 및 적어도 하나의 제2 레이턴트를 포함하는 적어도 하나의 비트스트림을 생성하는 단계를 포함한다.
다른 태양에 따르면, 방법이 제공되며, 방법은 이미지 또는 비디오를 나타내는 코딩된 데이터를 포함하는 비트스트림을 디코딩하는 단계를 포함하며, 디코딩하는 것은 비트스트림으로부터, 제1 신경망-기반 디코더의 적응이 비트스트림으로부터 획득된 적어도 하나의 레이턴트를 디코딩하는 데 사용되는지를 나타내는 신택스 요소를 디코딩하는 것을 포함한다.
다른 태양에 따르면, 방법이 제공되며, 방법은 이미지 또는 비디오를 비트스트림에 코딩하는 단계를 포함하며, 이미지 또는 비디오를 코딩하는 것은 제1 신경망 인코더를 사용하여 이미지 또는 비디오를 나타내는 데이터를 비트스트림에 코딩하는 것, 제1 신경망-기반 디코더의 적응이 이미지 또는 비디오를 나타내는 데이터를 비트스트림으로부터 디코딩하는 데 사용되는지를 나타내는 신택스 요소를 비트스트림에 코딩하는 것을 포함한다.
다른 태양에 따르면, 장치가 제공된다. 장치는 프로세서를 포함한다. 프로세서는 기술된 방법들 중 임의의 것을 실행함으로써 일반적인 태양들을 구현하도록 구성될 수 있다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 디코딩 실시예들 중 임의의 것에 따른 장치; 및 (i) 신호를 수신하도록 구성된 안테나 - 신호는 비디오 블록 또는 이미지를 포함함 -, (ii) 비디오 블록 또는 이미지를 포함하는 수신된 신호를 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 또는 (iii) 비디오 블록 또는 이미지를 나타내는 출력을 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는 디바이스가 제공된다.
적어도 하나의 실시예의 다른 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하는 비일시적 컴퓨터 판독가능 매체가 제공된다.
적어도 하나의 실시예의 다른 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 비디오 데이터를 포함하는 신호가 제공된다.
적어도 하나의 실시예의 다른 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하도록 비트스트림이 포맷화된다.
적어도 하나의 실시예의 다른 태양에 따르면, 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금, 기술된 디코딩 실시예들 또는 변형예들 중 임의의 것을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품이 제공된다.
일반적인 태양들의 이들 및 다른 태양들, 특징들 및 이점들이 첨부된 도면들과 관련하여 읽혀질 예시적인 실시예들의 다음의 상세한 설명으로부터 명백해질 것이다.
도면에서:
도 1은 본 실시예들의 태양들이 구현될 수 있는 시스템의 블록도이다.
도 2는 비디오 인코더의 실시예의 블록도이다.
도 3은 비디오 디코더의 실시예의 블록도이다.
도 4는 인공 신경망에 기초한 오토인코더의 실시예의 블록도이다.
도 5는 8개의 프레임의 GOP를 갖는 랜덤 액세스 구조의 예를 예시한다.
도 6은 비디오 프레임들을 압축하기 위한 Agustsson 등에 의한 아키텍처의 예를 예시한다.
도 7은 본 원리들의 실시예에 따른 인공 신경망에 기초한 오토인코더의 예를 예시한다.
도 8은 본 원리들의 다른 실시예에 따른 인공 신경망에 기초한 오토인코더의 예를 예시한다.
도 9는 본 원리들의 다른 실시예에 따른 인공 신경망에 기초한 오토인코더의 예를 예시한다.
도 10은 본 원리들의 실시예에 따른 인공 신경망-기반 디코더의 적응의 예를 예시한다.
도 11은 본 원리들의 실시예에 따른 이미지 또는 비디오를 코딩하기 위한 방법의 예를 예시한다.
도 12는 본 원리들의 실시예에 따른 이미지 또는 비디오를 디코딩하기 위한 방법의 예를 예시한다.
도 13은 본 원리들의 다른 실시예에 따른 이미지 또는 비디오를 코딩하기 위한 방법의 예를 예시한다.
도 14는 본 원리들의 다른 실시예에 따른 이미지 또는 비디오를 디코딩하기 위한 방법의 예를 예시한다.
도 15는 본 원리들을 사용하여 이미지 또는 비디오를 인코딩하거나 디코딩하기 위한 장치의 일 실시예를 예시한다.
도 16은 본 원리들의 예에 따른 통신 네트워크를 통해 통신하는 2개의 원격 디바이스들을 도시한다.
도 17은 본 원리들의 예에 따른 신호의 신택스를 도시한다.
본 출원은 툴들, 특징부들, 실시예들, 모델들, 접근법들 등을 포함한 다양한 태양들을 기술한다. 이들 태양들 중 많은 것은 특이성을 갖고서 기술되며, 적어도, 개별 특성들을 보여주기 위해, 종종, 제한하는 것으로 들릴 수 있는 방식으로 기술된다. 그러나, 이는 설명의 명확성을 위한 것이며, 그러한 태양들의 적용 또는 범위를 제한하지 않는다. 실제로, 상이한 모든 태양들이 조합되고 상호교환되어 추가의 태양들을 제공할 수 있다. 또한, 태양들이 조합될 수 있고, 마찬가지로 이전의 출원에 기술된 태양들과 상호교환될 수 있다.
본 명세서에서 기술되고 고려되는 태양들은 많은 상이한 형태들로 구현될 수 있다. 몇몇 실시예들이 도 1 내지 도 3에 관하여 아래에서 논의되지만, 다른 실시예들이 고려되며 도 1 내지 도 3의 논의는 그러한 구현들의 폭을 제한하는 것으로 간주되어서는 안 된다. 태양들 중 적어도 하나는 일반적으로 비디오 인코딩 및 디코딩에 관한 것이고, 적어도 하나의 다른 태양은 일반적으로 생성된 또는 인코딩된 비트스트림을 송신하는 것에 관한 것이다. 이들 및 다른 태양들은 방법, 장치, 기술된 방법들 중 임의의 방법에 따라 이미지 또는 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 컴퓨터 판독가능 저장 매체, 및/또는 기술된 방법들 중 임의의 방법에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체로서 구현될 수 있다.
도 1은 다양한 태양들 및 실시예들이 구현될 수 있는 시스템의 예의 블록도이다. 시스템(100)은 후술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있으며, 본 출원에 기술된 태양들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은, 다양한 전자 디바이스들, 예컨대 개인용 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 멀티미디어 셋톱 박스, 디지털 텔레비전 수신기, 개인용 비디오 녹화 시스템, 커넥티드 가전, 및 서버를 포함하지만, 이들로 제한되지 않는다. 시스템(100)의 요소들은, 단독으로 또는 조합하여, 단일 집적 회로, 다수의 IC들, 및/또는 이산 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(100)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 별개의 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(100)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해, 다른 시스템들, 또는 다른 전자 디바이스들에 통신가능하게 결합된다. 다양한 실시예들에서, 시스템(100)은 본 출원에 기술된 태양들 중 하나 이상을 구현하도록 구성된다.
시스템(100)은, 예를 들어, 본 출원에 기술된 다양한 태양들을 구현하기 위해 그 내부에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(110)를 포함한다. 프로세서(110)는 내장된 메모리, 입력 출력 인터페이스, 및 당업계에 알려진 바와 같은 다양한 다른 회로부들을 포함할 수 있다. 시스템(100)은 적어도 하나의 메모리(120)(예컨대, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(100)은, EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이들로 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(140)를 포함한다. 저장 디바이스(140)는, 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스, 및/또는 네트워크 액세스가능 저장 디바이스를 포함할 수 있다.
시스템(100)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(130)을 포함하고, 인코더/디코더 모듈(130)은 그 자체 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(130)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(130)은 시스템(100)의 별개의 요소로서 구현될 수 있거나, 또는 당업자에게 알려진 바와 같은 하드웨어와 소프트웨어의 조합으로서 프로세서(110) 내에 통합될 수 있다.
본 출원에 기술된 다양한 태양들을 수행하기 위해 프로세서(110) 또는 인코더/디코더(130) 상에 로딩될 프로그램 코드는 저장 디바이스(140)에 저장되고, 이어서 프로세서(110)에 의한 실행을 위해 메모리(120) 상에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(110), 메모리(120), 저장 디바이스(140), 및 인코더/디코더 모듈(130) 중 하나 이상은 본 출원에 기술된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 이러한 저장된 항목들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 일부들, 비트스트림, 행렬들, 변수들, 및 식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이들로 제한되지 않는다.
몇몇 실시예들에서, 프로세서(110) 및/또는 인코더/디코더 모듈(130) 내부의 메모리는 명령어들을 저장하기 위해 그리고 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스(예를 들어, 처리 디바이스는 프로세서(110) 또는 인코더/디코더 모듈(130) 중 어느 하나일 수 있음) 외부의 메모리가 이러한 기능들 중 하나 이상에 사용된다. 외부 메모리는 메모리(120) 및/또는 저장 디바이스(140), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 몇몇 실시예들에서, 외부 비휘발성 플래시 메모리는 예를 들어, 텔레비전의 운영 체제를 저장하는 데 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는, MPEG-2(MPEG는 Moving Picture Experts Group을 지칭하고, MPEG-2는 또한 ISO/IEC 13818로도 지칭되고, 13818-1은 또한 H.222로도 알려져 있고, 13818-2는 또한 H.262로도 알려져 있음), HEVC(HEVC는 High Efficiency Video Coding을 지칭하고, H.265 및 MPEG-H Part 2로도 알려져 있음), 또는 VVC(Versatile Video Coding, JVET에서 개발 중인 표준)에 대한 것과 같은, 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 사용된다.
시스템(100)의 요소들에 대한 입력은 블록(105)에 표시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은, (i) 예를 들어, 브로드캐스터(broadcaster)에 의해 무선으로(over the air) 송신된 무선 주파수(radio frequency, RF) 신호를 수신하는 RF 부분, (ii) 컴포넌트(COMP) 입력 단자(또는 COMP 입력 단자들의 세트), (iii) 범용 직렬 버스(Universal Serial Bus, USB) 입력 단자, 및/또는 (iv) 고화질 멀티미디어 인터페이스(HDMI) 입력 단자를 포함하지만, 이들로 제한되지 않는다. 도 1에 도시되지 않은 다른 예는 복합 비디오를 포함한다.
다양한 실시예들에서, 블록(105)의 입력 디바이스들은 당업계에 알려진 바와 같은 연관된 각자의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은, (i) 원하는 주파수를 선택하는 것(신호를 선택하는 것, 신호를 주파수들의 대역으로 대역-제한하는 것으로도 지칭됨), (ii) 선택된 신호를 하향 변환(down converting)하는 것, (iii) (예를 들어) 소정 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역으로 다시 대역-제한하는 것, (iv) 하향 변환되고 대역-제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 역다중화하는 것에 적합한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어 주파수 선택기들, 신호 선택기들, 대역-제한기들, 채널 선택기들, 필터들, 하향 변환기들, 복조기들, 에러 정정기들, 및 역다중화기들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 기저대역 인근 주파수)로 또는 기저대역으로 하향 변환하는 것을 포함한, 다양한 이들 기능을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그의 연관된 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 원하는 주파수 대역에 대해 필터링, 하향 변환, 및 다시 필터링함으로써 주파수 선택을 수행한다. 다양한 실시예들은 전술한(그리고 다른) 요소들의 순서를 재배열하고, 이들 요소들 중 일부를 제거하고/하거나 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은 기존 요소들 사이에 요소들을 삽입하는 것, 예를 들어 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것을 포함할 수 있다. 다양한 실시예에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자들은 시스템(100)을 USB 및/또는 HDMI 접속부들을 통해 다른 전자 디바이스들에 접속하기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 태양들, 예를 들어, 리드 솔로몬(Reed-Solomon) 에러 정정은 필요에 따라, 예를 들어, 별개의 입력 처리 IC 내에서 또는 프로세서(110) 내에서 구현될 수 있다는 것이 이해되어야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 태양들은 필요에 따라, 별개의 인터페이스 IC들 내에서 또는 프로세서(110) 내에서 구현될 수 있다. 복조, 에러 정정, 및 역다중화된 스트림은, 예를 들어, 출력 디바이스 상에서의 프레젠테이션을 위해 필요에 따라 데이터-스트림을 처리하도록 메모리 및 저장 요소들과 조합하여 동작하는 프로세서(110), 및 인코더/디코더(130)를 포함한 다양한 처리 요소들에 제공된다.
시스템(100)의 다양한 요소들이 통합된 하우징 내에 제공될 수 있으며, 통합된 하우징 내에서, 다양한 요소들은 적합한 접속 배열체(115), 예를 들어, 인터-IC(I2C) 버스, 배선, 및 인쇄 회로 기판을 포함하는, 당업계에 알려진 바와 같은 내부 버스를 사용하여 상호접속되고 그들 사이에서 데이터를 전송할 수 있다.
시스템(100)은 통신 채널(190)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(150)를 포함한다. 통신 인터페이스(150)는 통신 채널(190)을 통해 데이터를 송신하도록 그리고 수신하도록 구성된 송수신기를 포함할 수 있지만, 이에 제한되지 않는다. 통신 인터페이스(150)는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이에 제한되지 않으며, 통신 채널(190)은, 예를 들어, 유선 및/또는 무선 매체 내에서 구현될 수 있다.
데이터는, 다양한 실시예들에서, Wi-Fi 네트워크, 예를 들어 IEEE 802.11(IEEE는 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers)를 지칭함)과 같은 무선 네트워크를 사용하여, 시스템(100)에 스트리밍되거나 또는 달리 제공된다. 이러한 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들에 대해 적응된 통신 채널(190) 및 통신 인터페이스(150)를 통해 수신된다. 이러한 실시예들의 통신 채널(190)은 전형적으로, 스트리밍 애플리케이션들 및 다른 오버더톱(over-the-top) 통신들을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 접속된다. 다른 실시예들은 입력 블록(105)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(100)에 제공한다. 또 다른 실시예들은 입력 블록(105)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(100)에 제공한다. 전술한 바와 같이, 다양한 실시예들은 비-스트리밍 방식으로 데이터를 제공한다. 또한, 다양한 실시예들은 Wi-Fi 이외의 무선 네트워크들, 예를 들어 셀룰러 네트워크 또는 블루투스 네트워크를 사용한다.
시스템(100)은 디스플레이(165), 스피커들(175), 및 다른 주변 디바이스들(185)을 포함한 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다양한 실시예들의 디스플레이(165)는, 예를 들어, 터치스크린 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 커브드(curved) 디스플레이, 및/또는 폴더블(foldable) 디스플레이 중 하나 이상을 포함한다. 디스플레이(165)는 텔레비전, 태블릿, 랩톱, 휴대폰(모바일 폰), 또는 다른 디바이스를 위한 것일 수 있다. 디스플레이(1100)는 또한 (예를 들어, 스마트 폰에서와 같이) 다른 컴포넌트들과 통합될 수 있거나, 또는 별개일 수 있다(예를 들어, 랩톱을 위한 외부 모니터). 실시예들의 다양한 예들에서, 다른 주변 디바이스들(185)은 독립형 디지털 비디오 디스크(또는 디지털 다기능 디스크)(두 용어들 모두에 대해, DVR), 디스크 플레이어, 스테레오 시스템 및/또는 조명 시스템 중 하나 이상을 포함한다. 다양한 실시예들은 시스템(100)의 출력에 기초하여 기능을 제공하는 하나 이상의 주변 디바이스들(185)을 사용한다. 예를 들어, 디스크 플레이어는 시스템(100)의 출력을 재생하는 기능을 수행한다.
다양한 실시예들에서, 제어 신호들은, 시그널링, 예컨대, AV.Link, CEC(Consumer Electronics Control), 또는 사용자 개입이 있거나 또는 개입 없이 디바이스 대 디바이스 제어를 가능하게 하는 다른 통신 프로토콜들을 사용하여 시스템(100)과 디스플레이(165), 스피커들(175), 또는 다른 주변 디바이스들(185) 사이에서 통신된다. 출력 디바이스들은 각자의 인터페이스들(160, 170, 180)을 통해 전용 접속부들을 거쳐 시스템(100)에 통신가능하게 결합될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(150)를 통해 통신 채널(190)을 사용하여 시스템(100)에 접속될 수 있다. 디스플레이(165) 및 스피커들(175)은, 예를 들어, 텔레비전과 같은 전자 디바이스에서 시스템(100)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(160)는, 예를 들어, 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(165) 및 스피커(175)는 대안적으로, 예를 들어, 입력(105)의 RF 부분이 별개의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상과 별개일 수 있다. 디스플레이(165) 및 스피커들(175)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함한 전용 출력 접속부들을 통해 제공될 수 있다.
실시예들은 프로세서(110)에 의해 구현되는 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 실시예들은 하나 이상의 집적 회로들에 의해 구현될 수 있다. 메모리(120)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 광학 메모리 디바이스, 자기 메모리 디바이스, 반도체 기반 메모리 디바이스, 고정 메모리, 및 착탈식 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(110)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 디지털 신호 프로세서(DSP)들, 및 멀티-코어 아키텍처에 기반한 프로세서들 중 하나 이상을 포괄할 수 있다.
도 2는 하이 인코더와 같은, 예시적인 비디오 인코더(200)의 블록도이다. 도 2는 또한, HEVC 표준에 대한 개선들이 이루어진 인코더 또는 HEVC와 유사한 기술들을 채용하는 인코더, 예컨대 JVET에 의해 개발 중인 VVC 인코더를 도시할 수 있다.
본 출원에서, 용어들 "재구성된" 및 "디코딩된"은 상호교환 가능하게 사용될 수 있고, 용어들 "인코딩된" 또는 "코딩된"은 상호교환 가능하게 사용될 수 있고, 용어들 "픽셀" 또는 "샘플"은 상호교환 가능하게 사용될 수 있으며, 용어들 "이미지", "픽처" 및 "프레임"은 상호교환 가능하게 사용될 수 있다. 반드시 그렇지는 않지만, 일반적으로, 용어 "재구성된"은 인코더 측에서 사용되는 반면, "디코딩된"은 디코더 측에서 사용된다.
인코딩되기 전에, 비디오 시퀀스는, 예를 들어, 입력 컬러 픽처에 컬러 변환을 적용하거나(예컨대, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환), 또는 (예를 들어, 컬러 컴포넌트들 중 하나의 컴포넌트의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 컴포넌트들의 재매핑을 수행하는, 프리-인코딩 처리(201)를 거칠 수 있다. 메타데이터는 전처리와 연관될 수 있고, 비트스트림에 부착될 수 있다.
인코더(200)에서, 픽처는 후술되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는, 예를 들어, CU들의 유닛들로 파티셔닝(202) 및 처리된다. 각각의 유닛은, 예를 들어 인트라 또는 인터 모드를 사용하여 인코딩된다. 유닛이 인트라 모드에서 인코딩될 때, 그것은 인트라 예측(260)을 수행한다. 인터 모드에서, 모션 추정(275) 및 보상(270)이 수행된다. 인코더는 유닛을 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지를 결정하고(205), 예를 들어, 예측 모드 플래그에 의해 인트라/인터 결정을 나타낸다. 인코더는 또한 인트라 예측 결과 및 인터 예측 결과를 블렌딩하거나(263), 또는 상이한 인트라/인터 예측 방법들로부터의 결과들을 블렌딩할 수 있다.
예측 잔차들은, 예를 들어, 오리지널 이미지 블록에서 예측된 블록을 감산(210)함으로써 계산된다. 모션 정제 모듈(272)은 오리지널 블록을 참조하지 않고 블록의 모션 필드를 정제하기 위해 이미 이용가능한 기준 픽처를 사용한다. 영역에 대한 모션 필드는 영역을 갖는 모든 픽셀들에 대한 모션 벡터들의 집합체로 간주될 수 있다. 모션 벡터들이 서브-블록 기반인 경우, 모션 필드는 또한 영역 내의 모든 서브-블록 모션 벡터들의 집합체로서 표현될 수 있다(서브-블록 내의 모든 픽셀들은 동일한 모션 벡터를 갖고, 모션 벡터들은 서브-블록마다 다를 수 있음). 단일 모션 벡터가 영역에 대해 사용되는 경우, 영역에 대한 모션 필드는 또한 단일 모션 벡터(영역 내의 모든 픽셀들에 대해 동일한 모션 벡터들)에 의해 표현될 수 있다.
이어서, 예측 잔차들은 변환되고(225) 양자화된다(230). 양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 요소들은 엔트로피 코딩되어(245) 비트스트림을 출력한다. 인코더는 변환을 스킵할 수 있고, 비변환된 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 변환 및 양자화 모두를 스킵할 수 있으며, 즉, 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측들을 위한 기준을 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 탈양자화(de-quantize)되고(240) 역변환된다(250). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(255) 이미지 블록이 재구성된다. 인루프(in-loop) 필터들(265)이, 예를 들어, 인코딩 아티팩트들을 감소시키기 위해 디블록킹/SAO(Sample Adaptive Offset) 필터링을 수행하도록 재구성된 픽처에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(280)에 저장된다.
도 3은 예시적인 비디오 디코더(300)의 블록도이다. 디코더(300)에서, 비트스트림은 후술되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(300)는 일반적으로, 도 2에 기술된 바와 같이, 인코딩 패스에 상반되는 디코딩 패스를 수행한다. 인코더(200)는 또한 일반적으로, 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행한다.
특히, 디코더의 입력은 비디오 인코더(200)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은 먼저, 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득하기 위해 엔트로피 디코딩된다(330). 픽처 파티션 정보는 픽처가 어떻게 파티셔닝되는지를 나타낸다. 따라서, 디코더는 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 분할할 수 있다(335). 변환 계수들은 예측 잔차들을 디코딩하기 위해 탈양자화되고(340) 역변환된다(350). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(355) 이미지 블록이 재구성된다.
예측된 블록은 인트라 예측(360) 또는 모션 보상된 예측(즉, 인터 예측)(375)으로부터 획득될 수 있다(370). 디코더는 인트라 예측 결과 및 인터 예측 결과를 블렌딩하거나(373), 또는 다수의 인트라/인터 예측 방법들로부터의 결과들을 블렌딩할 수 있다. 모션 보상 전에, 모션 필드는 이미 이용가능한 기준 픽처들을 사용함으로써 정제될 수 있다(372). 재구성된 이미지에 인루프 필터들(365)이 적용된다. 필터링된 이미지는 기준 픽처 버퍼(380)에 저장된다.
디코딩된 픽처는 포스트-디코딩 처리(385), 예를 들어, 프리-인코딩 처리(201)에서 수행된 리매핑 프로세스의 역을 수행하는 역 리매핑 또는 역 컬러 변환(예를 들어, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환)을 추가로 거칠 수 있다. 포스트-디코딩 처리는, 프리-인코딩 처리에서 도출되고 비트스트림에서 시그널링된 메타데이터를 사용할 수 있다.
실시예에 따르면, 도 1, 도 2 및 도 3을 참조하여 설명된 비디오 인코더 및 디코더의 전부 또는 일부가 인공 신경망(ANN)을 사용하여 구현될 수 있다.
최근 몇 년 동안, 신경망들에 기초한 신규한 이미지 및 비디오 압축 방법들이 개발되었다. 미리 정의된 예측 모드들 및 변환들을 적용하는 전통적인 방법들과는 대조적으로, 인공 신경망(ANN)-기반 방법들은, 손실 함수를 반복적으로 최소화함으로써, 훈련 동안 대형 데이터 세트에 대해 학습되는 파라미터들에 의존한다. 압축 경우에, 손실 함수는 인코딩된 비트스트림의 비트레이트의 추정, 및 디코딩된 콘텐츠의 성능 둘 모두를 설명한다. 전통적으로, 재구성된 이미지의 품질은, 예를 들어 신호 왜곡의 측정치 또는 인간-인지된 시각적 품질의 근사치에 기초하여 최적화된다.
도 4에, 종단간 압축 시스템(40)의 예시적인 블록도가 도시되어 있다. 네트워크의 인코더 부분에 대한 입력 X는 다음을 포함할 수 있다:
- 비디오의 이미지 또는 프레임,
- 이미지의 일부
- 이미지들의 그룹을 표현하는 텐서
- 이미지들의 그룹의 일부(크롭)를 표현하는 텐서.
각각의 경우에, 입력은 하나의 또는 다수의 성분들, 예컨대, 모노크롬, RGB 또는 YCbCr 성분들을 가질 수 있다.
입력 텐서 X는 인코더 네트워크(41)에 공급된다.
인코더 네트워크(41)는 일반적으로, 활성화 함수들을 갖는 컨볼루션 층들의 시퀀스이다. 컨볼루션들 또는 공간-대-깊이 연산들에서의 큰 스트라이드(stride)들이 채널들의 수를 증가시키면서 공간 분해능을 감소시키는 데 사용될 수 있다(재성형 및 치환, 예를 들어 크기 (N, H, W)의 텐서가 (N*N2*2, H/2, W/2)로 재성형 및 치환됨). 인코더 네트워크(41)는 학습된 변환으로 보일 수 있다.
인코더 네트워크(41)의 출력, "피처 맵" 또는 "레이턴트(latent)" Z는 저장 또는 송신을 위해 이진 스트림(비트스트림)으로서 양자화되고(도시되지 않음) 엔트로피 코딩된다(EC, 42).
비트스트림이 엔트로피 디코딩되어(ED, 43) Z의 재구성된 버전인, 를 획득한다. 디코더 네트워크(44)는 레이턴트 로부터 오리지널 X 텐서의 근사치인, 를 생성한다. 디코더 네트워크(44)는 일반적으로, 업샘플링 컨볼루션들의 시퀀스(예컨대, "디컨볼루션들 " 또는 업샘플링 필터들이 뒤따르는 컨볼루션들) 또는 깊이-대-공간 연산들이다. 디코더 네트워크(44)는 학습된 역변환, 또는 잡음제거 및 생성적 변환으로 보일 수 있다.
더 정교한 아키텍처들, 예를 들어 인코더 출력의 레이턴트 분포 특성들을 공동으로 학습하기 위해 네트워크에 "하이퍼-오토인코더"(하이퍼-프라이어)를 추가하는 것이 존재한다. 하기에서 설명되는 임의의 실시예는 오토인코더들의 사용으로 제한되지 않는다. 임의의 종단간 차분가능 코덱(differentiable codec)이 고려될 수 있다.
비디오 시퀀스들의 프레임들 사이의 리던던시들을 제거하기 위해, 전통적인 비디오 코딩 방법들은 인터 예측 툴들을 포함한다. 이미지들은 블록들로 파티셔닝된다.
인코딩될 각각의 블록에 대해, 모션 추정기는 이전에 재구성된 기준 픽처에서 예측기를 찾고자 시도한다. 변환이 전통적으로 고려되며, 모션 추정기는 현재 블록과 공동위치된 윈도우 내에서 동일한 형상의 블록들 중에서 검색하여 예측한다. 최상의 매칭이 발견될 때, 모션 벡터, 즉 현재 블록의 위치와 그의 예측기 사이의 수평 및 수직 좌표 차이들이 코딩되고 기준 픽처의 인덱스와 함께 비트스트림에서 송신된다. 잔차로도 불리는, 소스 블록과 예측기 사이의 차이는 일반적으로, 비트스트림에서 변환, 양자화 및 엔트로피 코딩된다.
디코더에서, 모션 정보뿐만 아니라 잔차들이 디코딩된다. 예측기는 디코딩된 모션 벡터를 사용하여, 시그널링된 기준 프레임에서 액세스된다. 이어서, 디코딩된 블록은 디코딩된 잔차를 예측기에 추가함으로써 구성된다.
그러한 스킴에서, 인코더는 현재 블록의 위치에 중심을 둔, 기준 프레임의 윈도우 내에서 최상의 매칭 블록을 찾는 복잡한 태스크를 수행한다. 디코더는 단지 모션 정보를 파싱할 필요가 있다.
여러 시간적 구조들은 인코더가 이전에 디코딩된 픽처들 중에서 기준 프레임을 선택하는 것을 가능하게 한다. 방송 생태계에서 사용되는 전형적인 구조는 랜덤 액세스 구조로 명명된다. 그것은 반복되는, 최소 시간적 타임프레임 구조를 포함하는 주기적 픽처 그룹(GOP)들로 구성된다.
도 5는 8개의 프레임의 GOP의 경우에서의 그러한 구조를 예시한다. 첫 번째 프레임은 인트라 프레임 또는 I-프레임이며, 이는 그것이 디코딩될 다른 프레임들에 의존하지 않는다는 것을 의미한다. 이어서 그것은 디코더가 시퀀스의 디코딩을 시작할 수 있는, 랜덤-액세스 포인트로서 사용될 수 있다. 방송에서, 그들은 전형적으로 1초의 비디오에 의해 분리되며, 이는 TV 시청자들이 채널들을 스위칭하고 그들이 선택한 새로운 채널의 디코딩을 시작하며, 비디오가 디스플레이되기 시작할 때까지 너무 오래 기다리지 않는 것을 가능하게 한다. 그러나, 이러한 프레임들은 보통 송신하는 데 많은 비트들을 요하는데, 왜냐하면 그들은 이전에 디코딩된 콘텐츠를 사용하여 예측되지 않기 때문이다. I 프레임들 사이에서, 다른 프레임들이 이전에 디코딩된 프레임들을 사용하여 예측된다. 도 5의 구조에서, 코딩 순서가 디스플레이의 순서와는 상이함을 알 수 있다. 이것은 인코더가 과거 및 미래의 이전에 재구성된 픽처들을 사용하여 프레임들을 예측하는 것을 가능하게 한다. 따라서 이러한 프레임들은 양방향 예측을 위한 B 프레임들로 불린다. 이어서, 구조는 유형 B0, B1, B2, 및 B3의 프레임들을 갖는 계층적 패턴을 따른다. 각각의 GOP의 B0은 코딩될 첫 번째 프레임이며, 그것은 이전 GOP들로부터의 마지막 키 프레임(I 또는 B0)을 사용하여 예측되는데, 예를 들어 디스플레이 순서에서 프레임 8이 프레임 0으로부터 예측된다. 코딩 순서에서 그 다음의 프레임들은, 화살표들에 의해 묘사된 바와 같이, 과거 및 미래 프레임들을 사용하여 예측될 수 있다. 프레임 B1은 유형 I, B0의 프레임들을 사용할 수 있고, 프레임 B2는 프레임들 I, B0 및 B1 등으로부터 예측될 수 있다. 그러면 현재 프레임과 기준 프레임 사이의 거리는 인코더에 의해 행해진 결정들에 따라 달라진다.
다른 GOP 구조들이 존재하며, 이러한 예는 기준과 예측된 것 간의 상이한 거리들에서 프레임들 간의 가능한 종속성들을 보여주며, 이는 코딩 효율을 극적으로 개선한다. 위의 예에서, 장면에서의 모션들이 너무 빠르거나 불규칙하지 않고 장면 컷들이 없을 때, B3 픽처들은 매우 적은 비트들을 요하는데, 왜냐하면 그들은 대부분 이웃하는 프레임들로부터 보간되기 때문이다.
도 6과 관련하여, 인공 신경망에 기초한 비디오 압축 방법의 예가 설명된다. 그러한 종류의 비디오 압축 방법들은 오토인코더 아키텍처들에 의존하여 상이한 요소들을 인코딩하고, 프레임들 사이의 조밀한 모션 흐름을 추정하는, 즉, 각각의 픽셀 위치에 별개의 2d 모션 벡터(수직 및 수평)가 할당되는 광학 흐름을 계산함으로써 프레임간 리던던시들의 제거를 다룬다.
전통적인 블록 기반 인터 예측 및 잔차 코딩과 결합되어, 광학 흐름은 지금까지, 합리적인 복잡도에서 전술된 블록 기반 방법들에 비해 이점들을 보여주지 못했다. 그러나, 오토인코더들을 사용하여 모션 필드들을 인코딩하는 최근의 작업들은 유망한 결과들을 보여주었다.
도 6은 문헌["Scale-space flow for end-to-end optimized video compression", E. Agustsson. D. Minnen, N. Johnston, J. Ball, S.J. Hwang, G. Toderici, CVPR 2020]에 제시된 일반적인 아키텍처를 도시한다. 좌측의 I-프레임 블록은, 독립적으로 인코딩되는(인트라) 키-프레임들의 인코딩을 표현한다. 이러한 블록은, ANN-기반 이미지 압축을 위해 개발된 바와 같은, 컨볼루션 분석 및 합성 모듈들로 구성된, 오토인코더를 포함한다. 추론에서, 엔트로피 코더(EC) 및 엔트로피 디코더(ED)는 리던던시들을 산술적으로 제거하는 데 사용된다.
예측 프레임들(P)은 우측에서 프로세스를 따라 인코딩된다. 인코더에서, 입력들은 현재 프레임 및 이전에 재구성된 기준 프레임 이다. 이미지들 둘 모두는 모션 정보를 도출하고 인코딩하는 데 사용된다. 그들은 모션 흐름 오토인코더(, )의 입력인 고유 텐서로서 연결되는데, 이는 재구성된 흐름 을 생성한다. 후자는 기준 프레임 을 현재에 워핑하는 데 사용되는데, 이는 디코더가 재구성된 흐름에만 액세스할 것이기 때문이다. 이것은 현재 프레임에 대한 예측기 를 생성한다. 이어서 에 대응하는 잔차가 (, )에 의해 인코딩된다. 재구성된 잔차는 최종적으로 재구성된 예측에 추가되어 디코딩된 이미지 를 형성한다.
이어서, 도 6에서 [1 0 0 ... 1 1]에 의해 표시된 비트스트림은 I-프레임들의 레이턴트 표현, 또는 예측 프레임들의 경우에 잔차들 및 모션 필드의 레이턴트 표현들 중 어느 하나를 표현하는 이진 코드들로 구성된다.
전통적인 압축에서, 인코더는, 주어진 콘텐츠에 대한 최적화된 비트-스트림을 생성하기 위해, 예측, 변환, 양자화를 위한 모드들의 목록들 중에서 선택할 수 있다. 종단간 압축에서, 코딩 모드들의 개념은 없으며, 대부분의 경우에 비선형 변환 코딩을 수행하는 인공 신경망-기반 인코더가 그것이 훈련된 레이트-왜곡 제약하에서 최상의 압축가능 레이턴트 표현을 생성할 것으로 예상된다.
위에서 설명된 바와 같이, 모듈들의 가중치들/파라미터들이 훈련 동안 학습되고 이어서 추론을 위해 배치된다. 이러한 접근법들의 한 가지 중대한 한계는 훈련된 모델들이 모든 유형의 이미지들/비디오들을 핸들링할 수 있어야 한다는 것이다.
본 원리들의 태양에 따르면, 적응가능한 또는 파라미터화된 신경망 디코더들을 사용하여 이미지들 또는 비디오들을 압축하기 위한 방법 및 장치가 제공된다. 이에 따라 콘텐츠의 인코딩된 레이턴트(들)에 대해 디코더를 파라미터화하기 위해서 추가적인 (인코딩된) 파라미터들을 사용하기 위해 차분가능 부수-정보 채널을 사용하는 것이 제안된다. 그러한 스킴은 유사한 개념의 모드들을 종단간 압축에 가져오도록 허용한다.
종단간 압축은 학습된 분석 및 합성 비선형 변환들에 의존하며, 어떠한 적응성 메커니즘들도 제공하지 않는다. 이것은 특히 다수의 비트레이트들을 타겟팅하는 경우에 문제인데, 왜냐하면 수백만 개의 파라미터들의 다수의 모델들을 배치하는 것은 대부분의 비디오 애플리케이션들에 대해 실용적이지 않기 때문이다. (계층들에 의해) 학습된 계수들로 중간 피처 맵들을 리스케일링하거나 비트레이트별로 정규화 계층들을 학습하고 그들을 온더플라이(on the fly)로 스위칭함으로써 변환들을 컨디셔닝하는 것과 같은, 몇몇 솔루션들이 제안되었다. 그러나, 이것은 비트레이트 타겟팅의 사용 사례로 제한되며, 피처 맵 스케일링에만 영향을 미칠 수 있고, 압축 효율을 개선하는 데는 제한된 효과를 가질 것이다.
본 원리들에 따르면, 이미지들/비디오를 코딩/디코딩하기 위한 방법들 및 장치가 디코더 네트워크의 부분들을 (재)파라미터화하기 위해 비트스트림과 함께 추가적인 부수-정보를 전송함으로써 종단간 압축을 개선하기 위해 제공된다. 전체적인 아키텍처는 다른 기존의 종단간 압축 방법들과 유사하다.
실시예에 따르면, 추가적인 인코더/디코더 네트워크가 이미지/비디오 코딩된 데이터를 포함하는 비트스트림을 디코딩할 때 디코더를 파라미터화하는 데 사용되는 부수 정보를 학습하기 위해 메인 오토인코더 위에 사용된다. 요구되는 부수 정보를 학습하기 위해 메인 인코더 위에 제2 오토인코더를 사용하는 것은 압축 효율의 개선을 허용한다. 이것은 합리적인 크기 및 복잡도의 디코더를 유지하도록 허용하며, 이는 매우 다양한 콘텐츠를 효율적으로 압축할 수 있다.
ga()는 분석 변환(인코더)이고, gs()는 합성 변환(디코더)이고, X는 입력 이미지이고, Z는 인코더에 의해 출력된 레이턴트이고, Q는 양자화 연산자이고, 는 재구성된 이미지임에 유의하자. 신경망-기반 인코더 및 신경망-기반 디코더를 사용한 종단간 압축은 다음과 같이 표현될 수 있다:
- ga(X) = Z, 레이턴트 세대(인코딩)에 대응함
- gs(Q(Z)) = , 양자화된 레이턴트 Q(Z)(디코딩)로부터의 이미지의 재구성에 대응함
위의 설정에서, 디코더는 고정되고 동일한 연산들을 모든 입력에 적용한다.
본 원리들에 따르면, 추가적인 컨볼루션들/디컨볼루션들이 메인 오토인코더에 추가된다.
실시예에 따르면, 추가적인 네트워크가 학습되며, fa() 및 fs()는 2개의 분석 및 합성 변환들이고, W는 추가적인 인코더 네트워크로부터 그에 의해 출력된 부수 정보 레이턴트이고, P는 파라미터화 연산자이다.
실시예에 따르면, 종단간 압축은 다음과 같이 표현될 수 있다:
- ga (X) = Z, 이미지/비디오 코딩된 데이터를 포함하는 메인 레이턴트에 대응함
- fa (Z) = W, 부수 정보 레이턴트에 대응함
- = fs (Q(W)), 양자화된 레이턴트로부터의 재구성된 부수 정보에 대응함,
- P(gs, )() = , 재구성된 부수-정보 로 적응된 신경망-기반 디코더를 사용한 양자화된 레이턴트()로부터의 재구성된 이미지/비디오에 대응함.
fa, fs는 임의의 유형의 호환가능 네트워크들일 수 있다. 여기서, 각각, fa 및 fs에 대해 컨볼루션들/디컨볼루션들을 사용하는 것이 제안되며, 이때 최종 평탄화 연산 및 몇몇 밀집 계층들, 예컨대 완전히 연결된 계층들, 연산들이 fs에 추가되어 피처 맵(2d)으로부터 벡터(1d)를 생성한다. 네트워크 성능들을 개선하기 위해 비선형 및/또는 정규화 연산들이 또한 사용될 수 있다(예를 들어: ReLU, BatchNorm).
차분가능 연산자 P를 선택함으로써, 디코더는 이제 각각의 인코딩된 콘텐츠에 대해 런타임에 파라미터화될 수 있다.
도 7은 본 원리들의 실시예에 따른 인공 신경망에 기초한 오토인코더(70)의 예를 예시한다.
입력 텐서 X(인코딩할 이미지 또는 비디오를 포함함)는 신경망-기반 인코더(71)에 공급된다. 예를 들어, 인코더 네트워크(71)는 활성화 함수들을 갖는 컨볼루션 계층들의 시퀀스이다.
이미지/비디오를 나타내는 코딩된 데이터를 포함하는 제1 레이턴트 Z가 인코더 네트워크(41)에 의해 출력된다. 이어서 제1 레이턴트 Z는 양자화되고(도시되지 않음) 엔트로피 코딩되어(EC, 72) 저장 또는 송신을 위한 이진 스트림(비트스트림)을 생성한다.
제1 레이턴트는 제2 신경망-기반 인코더(75)에 입력으로서 제공되어, 제1 레이턴트 Z를 디코딩할 때 신경망 디코더를 적응시키는 데 추가로 사용되는 부수-정보를 생성한다.
제2 레이턴트 W가 제2 신경망-기반 인코더(75)로부터 출력된다. 제2 레이턴트는 양자화되고(도시되지 않음) 엔트로피-코딩되어(76) 이진 스트림을 생성한다. 제2 레이턴트는 제1 레이턴트와 동일한 비트스트림에 또는 별개의 비트스트림에 인코딩될 수 있다.
제1 및 제2 레이턴트들을 포함하는 스트림들은 저장되거나 수신기로 송신된다.
일단 수신되면, 제1 레이턴트를 포함하는 비트스트림은 엔트로피 디코딩되어(ED, 73) Z의 양자화된 버전인 를 획득한다.
제2 레이턴트를 포함하는 비트스트림은 엔트로피 디코딩되어(ED, 77) W의 양자화된 버전인 를 획득한다. 재구성된 제2 레이턴트 는, 엔트로피-디코딩된 제1 레이턴트 와 함께, 신경망-기반 디코더(74)에 입력으로서 제공된다. 제2 레이턴트 는 신경망-기반 디코더(74)를 적응시키도록 허용하는 부수-정보를 포함한다.
디코더 네트워크(74)는 이미지/비디오의 재구성 를 생성한다.
이러한 실시예에 따르면, 제1 신경망 인코더(71), 제1 신경망 디코더(74), 및 제2 신경망 인코더(75)는, 손실 함수로, 그리고 예를 들어 일반 데이터 세트를 사용하여, 공동으로 훈련된다.
도 8은 본 원리들의 다른 실시예에 따른 인공 신경망에 기초한 오토인코더(80)의 예를 예시한다. 참조 번호들 81-87은 도 7로부터의 참조 번호들 71-77과 각각 유사하다. 도 8에 설명된 실시예에서, 신경망-기반 디코더(88)가 부수-정보 레이턴트 의 엔트로피-디코더(87) 뒤에 추가된다.
이러한 실시예에 따르면, 제1 신경망 인코더(81), 제1 신경망 디코더(84), 제2 신경망 인코더(85) 및 제2 신경망 디코더(88)는, 손실 함수로, 그리고 예를 들어 일반 데이터 세트를 사용하여, 공동으로 훈련된다.
더 정교한 아키텍처들이 또한 사용될 수 있는데, 예를 들어 인코더 출력의 레이턴트 분포 특성들을 공동으로 학습하기 위해 네트워크에 "하이퍼-오토인코더"(하이퍼-프라이어)가 추가될 수 있다.
도 9는 본 원리들의 다른 실시예에 따른 인공 신경망에 기초한 오토인코더의 예를 예시한다. 실시예에 따르면, 부수-정보는 하이퍼-프라이어 네트워크로부터 생성된다.
하이퍼프라이어 네트워크들은 최근 몇 년간 종단간 압축에 극히 성공적이었다. 추가적인 오토인코더 네트워크가 파라메트릭 분포 함수의 파라미터들을 예측하기 위해 메인 오토인코더와 함께 학습된다. 예를 들어, 각각의 레이턴트 요소는 가우시안 또는 라플라시안 분포로서 인코딩될 수 있으며, 파라미터들(예를 들어: 가우시안의 경우 평균/loc 스케일/std)은 하이퍼프라이어 디코더로부터 예측된다.
이러한 실시예에 따르면, 하이퍼프라이어 네트워크는 부수 정보를 학습하기 위해 재사용된다. 도 9에 예시된 바와 같이, 참조 번호들 91-95, 961, 962는 도 7로부터의 참조 번호들 71-77과 각각 유사하다.
인코더(91)에 의해 출력된 제1 레이턴트 Z는 하이퍼-프라이어 신경망-기반 인코더(95)에 입력으로서 제공되며, 이 하이퍼-프라이어 신경망-기반 인코더(95)는 제1 레이턴트 분포의 학습된 파라미터들에 대응하는 레이턴트 Y, 및 제1 레이턴트 Z를 디코딩할 때 신경망 디코더를 적응시키는 데 추가로 사용되는 부수-정보를 포함하는 다른 레이턴트 W를 생성한다. 각각의 레이턴트 W 및 Z는 엔트로피-코딩된다(EC, 960, 961).
디코딩 측에서, 레이턴트들은 엔트로피-디코딩되고(ED, 970, 971), 하이퍼-프라이어 디코더(98)에 입력들로서 제공된다. 하이퍼프라이어 디코더(98)는 수정하기 위해 디코더(94)가 필요로 하는 부수 정보 레이턴트를 디코딩하는 데 사용되는 제2 분기를 갖도록 수정된다.
하이퍼-프라이어 디코더(98)의 제1 분기는 제1 레이턴트 Z를 엔트로피-디코딩하기 위해 엔트로피-디코더(93)에 제1 레이턴트 Z 분포의 파라미터들을 제공한다.
이것은 인코더의 메모리 및 복잡도 풋프린트를 감소시키기 위해 제안된다는 점에 유의한다. 몇몇 사용들에서, 하이퍼프라이어 및 부수-정보 네트워크 둘 모두를 개별적으로 동작시키는 것이 타당할 수 있다.
이러한 실시예에 따르면, 제1 신경망 인코더(91), 제1 신경망 디코더(94), 하이퍼프라이어 신경망 인코더(95) 및 하이퍼프라이어 신경망 디코더(98)는, 손실 함수로, 그리고 예를 들어 일반 데이터 세트를 사용하여, 공동으로 훈련된다.
도 10은 본 원리들의 실시예에 따른 인공 신경망-기반 디코더의 적응의 예를 예시한다. 인공 신경망-기반 디코더는 예를 들어 도 7 내지 도 9에 예시된 바와 같은 디코더(74, 84, 94)일 수 있다.
변형에 따르면, 제1 디코더를 적응시키는 차분가능 연산자 P는 변조된 컨볼루션을 포함한다. 이러한 변형에서, 제1 디코더의 적어도 하나의 컨볼루션은 그의 가중치들을 부수 정보 벡터 로부터의 투영된 벡터와 곱함으로써 수정된다.
예를 들어, 부수-정보 디코더의 적어도 하나의 밀집 계층은 부수 정보 레이턴트를, 적응시킬 제1 디코더의 계층들에 적용될 수 있는 벡터로 변환하도록 학습될 수 있다. 다시 말해서, 부수-정보 레이턴트는 제1 디코더 구조에 따라 디코딩되고 벡터로 투영된다. 이에 따라 투영된 벡터는 다수의 k 벡터들을 포함하며, 이때 k는 적응시킬 디코더의 계층들의 수이고, k 벡터들 중 각각의 하나는 디코더의 대응하는 계층들의 가중치들과 곱할 가중치들을 포함한다. 가중치들이 넘치는 것을 방지하기 위해 어떤 정규화가 또한 추가될 수 있다(예를 들어: l2 놈).
도 10은 디코더의 각각의 계층 C0-C3이 부수 정보 벡터 로부터의 대응하는 벡터로 적응되는 디코더의 업데이트를 예시한다.
다른 변형에 따르면, 제1 디코더를 적응시키는 차분가능 연산자 P는 조건부 컨볼루션 필터들을 포함한다. 이러한 변형에서, 적응시킬 신경망 제1 디코더의 적어도 하나의 컨볼루션이 가중치들의 한 세트가 아니라 가중치들의 N개 세트를 갖도록 학습된다.
추론 동안, 부수 정보 벡터는 크기 N의 벡터로 투영되고, 디코더의 각각의 파라미터화 가능한 계층 C0-C3에서, 가중치들의 각각의 세트에 대해 (예를 들어: SoftMax 연산으로) 범위 [0, 1]에 있도록 활성화/정규화된다. 각각의 파라미터화 가능한 컨볼루션에 대해, 추론 동안, 가중치들은 가중치들의 훈련된 세트에 크기 N의 벡터를 곱하고 합계(합산)한 값으로부터 도출된다. 이어서 피처 맵은 추론/런타임에서 도출된 이러한 가중치들에 의해 컨볼빙된다.
디코더 내의 모든 계층들이 파라미터화 가능할 필요는 없다는 점에 유의해야 한다. 몇몇 실시예들에서, 적어도 하나의 계층이 파라미터화된다.
다른 실시예에 따르면, 파라미터화는 요구되지 않으며, 네트워크는 네트워크가 그와 같이 훈련된 경우 파라미터화 없이 사용될 수 있다.
몇몇 실시예들에서, 본 원리들은, 도 6에 도시된 바와 같이, 오토인코더의 모든 블록들, 예를 들어 키프레임, 흐름, 잔차 등에 대해 동일한 유형의 파라미터화를 갖는 것에 의해 비디오로 확장된다. 이러한 실시예에 따르면, 코딩된 비트스트림과 함께 인코딩된 부수-정보는 예를 들어 도 6의 I-프레임 블록, 흐름 블록 또는 잔차 블록과 같은, 비디오 디코더의 임의의 신경망-기반 부분에 적용될 수 있다. 이에 따라, 이러한 실시예에 따르면, 부수-정보는 인코더(예를 들어, 도 6에서의 ga, fa, ra)의 신경망-기반 부분 중 임의의 하나에 의해 제공되는 레이턴트로부터 생성되고, 대응하는 신경망-기반 디코더(예를 들어, 도 6에서의 gs, fs, rs)를 적응시키는 데 사용된다.
도 11은 본 원리들의 실시예에 따른 이미지 또는 비디오를 코딩하기 위한 방법의 예를 예시한다. 동작은 1101에서 시작되며, 여기서 인코딩할 이미지들 또는 비디오가 제1 신경망-기반 인코더에 제공된다. 1110에서, 이미지 또는 비디오를 나타내는 코딩된 데이터를 포함하는 적어도 하나의 제1 레이턴트가 제1 신경망-기반 인코더로부터 획득된다. 1120에서, 적어도 하나의 제1 레이턴트는 제2 신경망 인코더에 제공된다. 1130에서, 적어도 하나의 제2 레이턴트가 제2 신경망 인코더로부터 획득된다. 적어도 하나의 제2 레이턴트는 제1 신경망-기반 디코더가 입력 이미지 또는 비디오를 재구성하기 위해 적어도 하나의 제1 레이턴트를 디코딩할 때 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함한다. 1140에서, 적어도 하나의 제1 레이턴트 및 적어도 하나의 제2 레이턴트는 엔트로피-코딩되어 적어도 하나의 비트스트림을 생성한다. 실시예들에 따라, 코딩된 이미지 또는 비디오 데이터 및 부수-정보는 동일한 비트스트림에 또는 별개의 비트스트림들에 코딩될 수 있다.
변형에서, 제1 레이턴트는 하이퍼프라이어 네트워크 디코더로부터 예측된 파라미터들에 기초하여 엔트로피-코딩된다. 추가 변형에서, 제2 신경망-기반 디코더는 하이퍼프라이어 네트워크 디코더에 대응한다. 이에 따라, 이러한 추가 변형에서, 하이퍼프라이어 네트워크 디코더는 2개의 출력 분기들, 즉 제1 레이턴트의 분포 파라미터들의 예측을 제공하는 하나의 분기, 및 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는 레이턴트를 제공하는 하나의 분기를 갖는다.
도 12는 본 원리들의 실시예에 따른 이미지 또는 비디오를 디코딩하기 위한 방법의 예를 예시한다. 동작은 1201에서 시작되며, 여기서 적어도 하나의 비트스트림이 획득되는데, 예컨대 통신 채널로부터 수신되거나 메모리로부터 검색된다. 1210에서, 이미지 또는 비디오를 나타내는 코딩된 데이터가 비트스트림으로부터 엔트로피-디코딩되어, 제1 레이턴트를 제공한다. 1220에서, 부수-정보가 비트스트림으로부터 디코딩된다. 부수-정보는 제1 신경망-기반 디코더를 적응시키는 것을 가능하게 한다. 1230에서, 디코딩된 부수-정보, 및 엔트로피-디코딩된 이미지 또는 비디오를 포함하는 제1 레이턴트는 제1 신경망-기반 디코더에 입력들로서 제공된다. 1240에서, 제1 신경망-기반 디코더는 제1 레이턴트가 제1 신경망-기반 디코더를 사용하여 디코딩/변환될 때 부수-정보를 사용하여 적응된다. 1250에서, 재구성된 이미지 또는 비디오가 제1 신경망-기반 디코더의 출력으로부터 획득된다.
변형에 따르면, 1220에서, 부수-정보는 신경망-기반 디코더를 적응시키기 위한 적어도 하나의 정보 항목을 포함하는 텐서로서 비트스트림으로부터 디코딩된다. 이러한 변형에서, 인코더 측에서, 부수-정보는 신경망-기반 인코더를 사용하여 레이턴트에 인코딩/변환되고, 예를 들어 산술 인코더를 사용하여 엔트로피-코딩된다. 디코더 측에서, 1220에서, 부수-정보를 나타내는 코딩된 데이터는 비트스트림으로부터 엔트로피-디코딩된다.
추가 변형에 따르면, 1220에서, 엔트로피-디코딩 후에, 부수-정보를 나타내는 데이터를 포함하는 레이턴트는 제2 신경망-기반 디코더에 입력으로서 제공된다. 이에 따라 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는 텐서는 제2 신경망-기반 디코더에 의해 출력된다.
변형에서, 1210에서, 제1 레이턴트를 획득하기 위해 비트스트림을 엔트로피-디코딩하는 것은 하이퍼프라이어 네트워크 디코더로부터 예측된 파라미터들을 사용하는 것을 포함한다.
추가 변형에서, 제2 신경망-기반 디코더는 하이퍼프라이어 네트워크 디코더에 대응한다. 이에 따라, 부수-정보를 나타내는 데이터를 포함하는 레이턴트는 하이퍼프라이어 네트워크 디코더에 입력으로서 제공되고, 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는 텐서는 하이퍼프라이어 네트워크 디코더에 의해 출력된다.
도 13은 본 원리들의 다른 실시예에 따른 이미지 또는 비디오를 코딩하기 위한 방법의 예를 예시한다. 동작은 1301에서 시작되며, 여기서 인코딩할 이미지 또는 비디오가 입력으로서 제공된다. 1310에서, 이미지 또는 비디오를 나타내는 데이터가 제1 신경망 인코더를 사용하여 코딩되고, 코딩된 데이터를 포함하는 비트스트림이 생성된다. 1320에서, 이미지 또는 비디오를 나타내는 데이터를 비트스트림으로부터 디코딩할 때 제1 신경망-기반 디코더의 적응이 사용되어야 하는지를 나타내는 신택스 요소가 비트스트림에 코딩된다. 다시 말해서, 인코딩할 주어진 이미지 또는 비디오에 대해, 신택스 요소는 이미지 또는 비디오가 디코딩 및 재구성될 때 디코더를 적응시키기 위한 부수-정보의 사용을 스위칭 온 또는 오프하는 것을 가능하게 한다.
따라서, 이미지 또는 비디오를 나타내는 데이터를 디코딩할 때 제1 신경망-기반 디코더의 적응이 사용되어야 한다고 결정될 때, 도 7 내지 도 11과 관련하여 전술된 실시예들 중 임의의 하나가 이미지/비디오를 인코딩하고 디코더의 적응에 사용되는 부수-정보를 획득하기 위해 수행된다.
이미지 또는 비디오를 나타내는 데이터를 디코딩할 때 제1 신경망-기반 디코더의 적응이 사용되지 않는다고 결정될 때, 이미지/비디오는, 예를 들어 부수-정보 획득 태양 없이 도 4, 도 6 내지 도 11 또는 도 12와 관련하여 설명된 바와 같이, 제1 신경망 기반 인코더를 사용하여 인코딩된다.
도 14는 본 원리들의 다른 실시예에 따른 이미지 또는 비디오를 디코딩하기 위한 방법의 예를 예시한다. 동작은 1401에서 시작되며, 여기서 디코딩할 비트스트림이 메모리로부터 수신되거나 검색되고, 입력으로서 제공된다. 1410에서, 제1 신경망-기반 디코더의 적응이 비트스트림으로부터 획득된 적어도 하나의 레이턴트를 디코딩하는 데 사용되는지를 나타내는 신택스 요소가 비트스트림으로부터 디코딩된다.
신택스 요소가 적응이 사용된다는 것을 나타낼 때, 도 7 내지 도 10 또는 도 12와 관련하여 전술된 실시예들 중 임의의 하나가 비트스트림에 인코딩된 이미지/비디오를 디코딩 및 재구성하고, 비트스트림으로부터 이미지/비디오를 디코딩 및 재구성할 때 디코더의 적응에 사용되는 부수-정보를 획득하기 위해 수행된다.
도 15는 전술된 방법들을 사용하여 이미지 또는 비디오를 압축, 인코딩 또는 디코딩하기 위한 장치(1500)의 일 실시예를 도시한다. 장치는 프로세서(1510)를 포함하고, 적어도 하나의 포트를 통해 메모리(1520)에 상호접속될 수 있다. 프로세서(1510) 및 메모리(1520) 둘 모두는 또한, 외부 접속부들에 대한 하나 이상의 추가적인 상호접속부들을 가질 수 있다.
프로세서(1510)는 또한, 비트스트림에 정보를 삽입하거나 그 내의 정보를 수신하도록, 그리고 전술된 방법들을 사용하여 압축, 인코딩 또는 디코딩 중 어느 하나를 하도록 구성된다.
신택스
전술된 방법들에서 전술된 바와 같이, 디코더는 부수-정보를 운반하는 벡터를 파싱 및 디코딩하며, 이는 디코더의 파라미터화를 구동한다.
신택스 요소가 재파라미터화를 스위칭 온/오프하기 위해 고레벨 신택스에 추가될 수 있다. 전술된 바와 같이, 이러한 방법은 스위칭 오프될 수 있고, 그러면 디코더는 사전 훈련된 기본 모델에 대응한다.
신택스 구조 또는 플래그들의 세트가 또한 어떤 계층들을 재파라미터화할지를 지정하기 위해 추가될 수 있다. 이러한 요소들은 시퀀스 레벨(시퀀스 파라미터 세트)에서 또는 픽처 레벨(픽처 파라미터 세트)에서 설정될 수 있다.
도 16은 본 원리들의 예에 따른 통신 네트워크를 통해 통신하는 2개의 원격 디바이스들을 도시한다.
도 17은 본 원리들의 예에 따른 신호의 신택스를 도시한다.
도 16에 예시된 본 원리들의 예에 따르면, 통신 네트워크 NET를 통한 2개의 원격 디바이스들 A 및 B 사이의 송신 컨텍스트에서, 디바이스 A는 전술된 방법들을 사용하여 설명된 바와 같이 이미지 또는 비디오를 인코딩하기 위한 방법을 구현하도록 구성된 메모리 RAM 및 ROM과 관련된 프로세서를 포함하고, 디바이스 B는 전술된 방법들을 사용하여 설명된 바와 같이 이미지 또는 비디오를 디코딩하기 위한 방법을 구현하도록 구성된 메모리 RAM 및 ROM과 관련된 프로세서를 포함한다. 예에 따르면, 네트워크는 인코딩된 이미지 또는 비디오와 함께 인코딩된 부수-정보를 디바이스 A로부터 디바이스 B를 포함하는 디코딩 디바이스들로 방송/송신하도록 적응된 방송 네트워크이다.
디바이스 A에 의해 송신되도록 의도된 신호가 위에서 설명된 바와 같이 이미지 또는 비디오를 나타내는 코딩된 데이터 및 부수-정보를 포함하는 적어도 하나의 비트스트림을 운반한다. 비트스트림은 전술된 실시예들 중 임의의 하나에 따른 부수-정보에 대한 신택스 요소들을 포함할 수 있다.
실시예에 따르면, 이러한 신호는 또한 이미지 또는 비디오를 나타내는 코딩된 데이터를 운반할 수 있다. 도 17은 부수-정보가 패킷-기반 송신 프로토콜을 통해 송신될 때의 그러한 신호의 신택스의 예를 도시한다. 각각의 송신된 패킷 P는 헤더 H 및 페이로드 PAYLOAD를 포함한다. 실시예들에 따르면, 페이로드 PAYLOAD는 다음 요소들 중 적어도 하나를 포함할 수 있다:
- 비트스트림으로부터 획득된 적어도 하나의 레이턴트를 디코딩하도록 구성된 제1 신경망-기반 디코더의 파라미터화의 사용을 나타내는 신택스 요소,
- 이미지 또는 비디오를 나타내는 코딩된 데이터를 디코딩할 때 적응시킬 제1 신경망-기반 디코더의 계층을 나타내는 적어도 하나의 신택스 요소.
실시예에 따르면, 페이로드는 전술된 실시예들 중 임의의 하나에 따라 인코딩된 이미지 또는 비디오를 나타내는 코딩된 데이터를 포함한다.
다양한 방법들이 본 명세서에 기술되고, 각각의 방법은 기술된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다. 추가적으로, "제1", "제2" 등과 같은 용어들은, 예를 들어, "제1 디코딩" 및 "제2 디코딩"과 같은 요소, 컴포넌트, 단계, 동작 등을 수정하기 위해 다양한 실시예들에서 사용될 수 있다. 그러한 용어들의 사용은, 구체적으로 요구되지 않는 한 수정된 동작들에 대한 순서화를 의미하지 않는다. 따라서, 이러한 예에서, 제1 디코딩은 제2 디코딩 전에 수행될 필요가 없고, 예를 들어, 제2 디코딩 전에, 그 동안, 또는 그와 중첩되는 기간에 발생할 수 있다.
본 출원에서 설명된 다양한 방법들 및 다른 태양들은 도 2 및 도 3에 도시된 바와 같은 비디오 인코더(200) 및 디코더(300), 또는 도 4 또는 도 6에 도시된 바와 같은 신경망 기반 블록인 이미지 또는 비디오 오토인코더(40)의 모듈들을 수정하는 데 사용될 수 있다. 또한, 본 태양들은 VVC 또는 HEVC로 제한되지 않으며, 예를 들어, 기존에 존재하든 향후 개발되든, 다른 표준들 및 권고들, 및 임의의 그러한 표준들 및 권고들(VVC 및 HEVC를 포함함)의 확장들에 적용될 수 있다. 달리 나타내지 않거나, 또는 기술적으로 배제되지 않는 한, 본 출원에 기술되는 태양들은 개별적으로 또는 조합하여 사용될 수 있다.
다양한 수치 값들이 본 출원에서 사용된다. 특정 값들은 예시적인 목적들을 위한 것이고, 기술된 태양들은 이러한 특정 값들로 제한되지 않는다.
다양한 구현예들은 디코딩을 포함한다. 본 출원에서 사용되는 바와 같이, "디코딩"은 예를 들어, 수신된 인코딩된 시퀀스에 대해 수행되어 디스플레이에 적합한 최종 출력을 생성하는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행되는 프로세스들 중 하나 이상의 프로세스들, 예를 들어, 엔트로피 디코딩, 역양자화, 역변환, 및 차분 디코딩을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에 기술된 다양한 구현예들의 디코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들로서, 하나의 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 차분 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 엔트로피 디코딩과 차분 디코딩의 조합을 지칭한다. 어구 "디코딩 프로세스"가 동작들의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 일반적으로 보다 광의의 디코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
다양한 구현예들은 인코딩을 포함한다. "디코딩"에 대한 상기 논의와 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은, 예를 들어 입력 비디오 시퀀스에 대해 수행되어 인코딩된 비트스트림을 생성하는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 전형적으로 인코더에 의해 수행되는 프로세스들, 예를 들어, 파티셔닝, 차분 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에 기술된 다양한 구현예들의 인코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들에서, 하나의 실시예에서, "인코딩"은 단지 엔트로피 인코딩을 지칭하며, 다른 실시예에서 "인코딩"은 단지 차분 인코딩을 지칭하고, 다른 실시예에서 "인코딩"은 차분 인코딩과 엔트로피 인코딩의 조합을 지칭한다. 어구 "인코딩 프로세스"가 동작들의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 일반적으로 보다 광의의 인코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
본 명세서에 사용된 바와 같은 신택스 요소들은 설명적 용어들임에 유의한다. 그렇기 때문에, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
이러한 개시내용은, 예를 들어, 송신 또는 저장될 수 있는, 예를 들어, 신택스와 같은 다양한 정보들을 설명하였다. 이러한 정보는, 예를 들어 정보를 SPS, PPS, NAL 유닛, 헤더(예를 들어, NAL 유닛 헤더, 또는 슬라이스 헤더), 또는 SEI 메시지에 넣는 것과 같은 비디오 표준들에서 보편적인 방식들을 포함하는, 다양한 방식들로 패키징되거나 배열될 수 있다. 예를 들어, 정보를 하기 중 하나 이상에 넣는 것과 같은 시스템 레벨 또는 애플리케이션 레벨 표준들에 대해 보편적인 방식들을 포함하는, 다른 방식들이 또한 이용가능하다:
a. SDP(session description protocol), 예를 들어, RFC들에 설명되고 RTP(Real-time Transport Protocol) 송신과 함께 사용되는 것과 같은, 세션 공지 및 세션 초대의 목적들을 위한 멀티미디어 통신 세션들을 설명하기 위한 포맷.
b. 예를 들어, DASH에서 사용되고 HTTP를 통해 송신되는 것과 같은, DASH MPD(Media Presentation Description) 디스크립터들, 디스크립터는 콘텐츠 표현에 추가적인 특성을 제공하기 위한 표현 또는 표현들의 집합체에 연관됨.
c. 예를 들어, RTP 스트리밍 동안 사용되는 것과 같은, RTP 헤더 확장들.
d. 예를 들어, OMAF에서 사용되는 것과 같은 그리고 몇몇 사양들에서 '아톰(atom)들'로서도 알려진 고유 유형 식별자 및 길이에 의해 정의되는 객체 지향 구축 블록들인 박스들을 사용하는, ISO 기반 미디어 파일 포맷.
e. HTTP를 통해 송신되는 HLS(HTTP live Streaming) 목록. 목록은, 예를 들어, 버전 또는 버전들의 집합체의 특성들을 제공하기 위해 콘텐츠의 버전 또는 버전들의 집합체에 연관될 수 있다.
도면이 흐름도로서 제시될 때, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 그것은 또한 대응하는 방법/프로세스의 흐름도를 제공한다는 것을 이해해야 한다.
본 명세서에 기술된 구현예들 및 태양들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호에서 구현될 수 있다. 구현예의 단일 형태의 맥락에서 논의된다 하더라도(예를 들어, 방법으로서만 논의됨), 논의된 특징들의 구현예는 다른 형태들(예를 들어, 장치 또는 프로그램)에서 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법은, 예를 들어, 프로세서에서 구현될 수 있으며, 이는, 예컨대 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 로직 디바이스를 포함하는, 일반적으로 처리 디바이스를 지칭한다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 휴대폰들, 휴대용/개인 디지털 어시스턴트들("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
"하나의 실시예" 또는 "실시예" 또는 "하나의 구현예" 또는 "구현예"뿐만 아니라 그의 다른 변형들에 대한 언급은, 실시예와 관련하여 기술된 특정 특징부, 구조, 특성 등이 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 출원 전반에 걸친 다양한 곳에서 나타나는 어구 "하나의 실시예에서" 또는 "실시예에서" 또는 "하나의 구현예에서" 또는 "구현예에서"뿐만 아니라 임의의 다른 변형들의 출현들이 반드시 모두 동일한 실시예를 언급하는 것은 아니다.
또한, 본 출원은 다양한 피스들의 정보들을 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 피스들의 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 피스들의 정보를 "수신하는 것"을 언급할 수 있다. 수신하는 것은 "액세스하는 것"과 마찬가지로 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로, 예를 들어 정보를 저장하는 동작, 정보를 처리하는 동작, 정보를 전송하는 동작, 정보를 이동시키는 동작, 정보를 복사하는 동작, 정보를 소거하는 동작, 정보를 계산하는 동작, 정보를 결정하는 동작, 정보를 예측하는 동작, 또는 정보를 추정하는 동작과 같은 동작들 동안 어떤 방식으로든 수반된다.
예를 들어 다음의 "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서 "/", "및/또는", 및 "적어도 하나" 중 임의의 것의 사용은 첫 번째 열거된 옵션(A) 단독의 선택, 또는 두 번째 열거된 옵션(B) 단독의 선택, 또는 옵션들(A 및 B) 둘 모두의 선택을 포함하도록 의도됨을 이해해야 한다. 또 다른 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우들에서, 그러한 어구는 첫 번째 열거된 옵션(A) 단독의 선택, 또는 두 번째 열거된 옵션(B) 단독의 선택, 또는 세 번째 열거된 옵션(C) 단독의 선택, 또는 첫 번째 및 두 번째 열거된 옵션들(A 및 B) 단독의 선택, 또는 첫 번째 및 세 번째 열거된 옵션들(A 및 C) 단독의 선택, 또는 두 번째 및 세 번째 열거된 옵션들(B 및 C) 단독의 선택, 또는 3개의 모든 옵션들(A, B 및 C)의 선택을 포함하도록 의도된다. 이는, 본 명세서에 기술된 바와 같은 많은 항목들에 대해, 본 명세서 및 관련 분야의 당업자에게 명백한 바와 같이 확장될 수 있다.
또한, 본 명세서에 사용된 바와 같이, 용어 "신호"는 특히 대응하는 디코더에게 무언가를 나타내는 것을 지칭한다. 이러한 방식으로, 실시예에서 동일한 파라미터가 인코더 측 및 디코더 측 둘 모두에서 사용된다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 디코더에 특정 파라미터를 송신할 수 있다(명시적 시그널링). 반대로, 디코더가 이미 특정 파라미터뿐만 아니라 다른 것들을 갖고 있다면, 단순히 디코더가 특정 파라미터를 알고 선택할 수 있게 하기 위해 송신 없이 시그널링이 사용될 수 있다(암시적 시그널링). 임의의 실제 기능들의 송신을 회피함으로써, 다양한 실시예들에서 비트 절약이 실현된다. 시그널링은 다양한 방식들로 달성될 수 있다는 것이 이해되어야 한다. 예를 들어, 하나 이상의 신택스 요소들, 플래그들 등이 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하는 데 사용된다. 전술된 표현이 단어 "신호"의 동사 형태와 관련되지만, 단어 "신호"는 또한 명사로서 본 명세서에서 사용될 수 있다.
당업자에게 명백한 바와 같이, 구현예들은, 예를 들어 저장되거나 송신될 수 있는 정보를 반송하도록 포맷화된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 기술된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 비트스트림을 반송하도록 포맷화될 수 있다. 그러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용함) 또는 기저대역 신호로서 포맷화될 수 있다. 포맷화는, 예를 들어, 데이터 스트림을 인코딩하는 것, 및 인코딩된 데이터 스트림으로 반송파를 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 알려진 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체에 저장될 수 있다.
다수의 실시예들을 설명한다. 이들 실시예들의 특징들은 다양한 청구항 카테고리들 및 유형들에 걸쳐 단독으로 또는 임의의 조합으로 제공될 수 있다. 또한, 실시예들은, 다양한 청구항 카테고리들 및 유형들에 걸쳐, 단독으로 또는 임의의 조합으로, 다음의 특징들, 디바이스들, 또는 태양들 중 하나 이상을 포함할 수 있다:
Figure pct00033
기술된 신택스 요소들, 또는 이들의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호를 생성하고/하거나 송신하고/하거나 수신하고/하거나 디코딩하는 것.
기술된 실시예들 중 임의의 것에 따라 생성하고/하거나 송신하고/하거나 수신하고/하거나 디코딩하는 것.
기술된 실시예들 중 임의의 것에 따른 방법, 프로세스, 장치, 명령어들을 저장하는 매체, 데이터를 저장하는 매체, 또는 신호.
기술된 실시예들 중 임의의 것에 따라 NN 디코더의 적응을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
기술된 실시예들 중 임의의 것에 따라 NN 디코더의 적응을 수행하고, (예컨대, 모니터, 스크린, 또는 다른 유형의 디스플레이를 사용하여) 결과적인 이미지/비디오를 디스플레이하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
인코딩된 이미지를 포함하는 신호를 수신하기 위한 채널을 (예컨대, 튜너를 사용하여) 선택하고, 기술된 실시예들 중 임의의 것에 따라 NN 디코더의 적응을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
인코딩된 이미지/비디오를 포함하는 신호를 무선으로 (예컨대, 안테나를 사용하여) 수신하고, 기술된 실시예들 중 임의의 것에 따라 NN 디코더의 적응을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.

Claims (30)

  1. 방법으로서,
    비트스트림으로부터, 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보(side-information)를 디코딩하는 단계;
    상기 디코딩된 부수-정보, 및 상기 비트스트림 또는 별개의 비트스트림으로부터 획득된 이미지 또는 비디오를 나타내는 코딩된 데이터를 상기 제1 신경망-기반 디코더에 입력들로서 제공하는 단계; 및
    상기 제1 신경망-기반 디코더의 출력으로부터, 재구성된 이미지 또는 비디오를 획득하는 단계를 포함하는, 방법.
  2. 장치로서, 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은,
    비트스트림으로부터, 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 디코딩하고;
    상기 디코딩된 부수-정보, 및 상기 비트스트림 또는 별개의 비트스트림으로부터 획득된 이미지 또는 비디오를 나타내는 코딩된 데이터를 상기 제1 신경망-기반 디코더에 입력들로서 제공하고;
    상기 제1 신경망-기반 디코더의 출력으로부터, 재구성된 이미지 또는 비디오를 획득하도록 구성되는, 장치.
  3. 제1항 또는 제2항에 있어서, 상기 디코딩된 부수-정보는 상기 신경망-기반 디코더를 적응시키기 위한 적어도 하나의 정보 항목을 포함하는 텐서인, 방법 또는 장치.
  4. 제1항 또는 제3항, 또는 제2항 또는 제3항에 있어서, 상기 비트스트림을 디코딩하는 것은 상기 비트스트림을 엔트로피-디코딩하는 것을 포함하는, 방법 또는 장치.
  5. 제3항 또는 제4항에 있어서, 부수-정보를 디코딩하는 것은 제2 신경망-기반 디코더의 출력으로부터 상기 텐서를 획득하는 것을 포함하는, 방법 또는 장치.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서, 상기 제1 신경망-기반 디코더를 적응시키는 단계를 추가로 포함하거나, 상기 하나 이상의 프로세서들은 상기 제1 신경망-기반 디코더를 적응시키도록 추가로 구성되며, 상기 적응시키는 것은 상기 제1 신경망-기반 디코더의 적어도 하나의 계층의 적어도 하나의 가중치와 상기 텐서의 적어도 하나의 항목을 곱하는 것을 포함하는, 방법 또는 장치.
  7. 제3항 내지 제6항 중 어느 한 항에 있어서, 상기 제1 신경망-기반 디코더를 적응시키는 단계를 추가로 포함하거나, 상기 하나 이상의 프로세서들은 상기 제1 신경망-기반 디코더를 적응시키도록 추가로 구성되며, 상기 제1 신경망-기반 디코더를 적응시키는 것은 상기 텐서 및 상기 비트스트림으로부터 획득된 이미지 또는 비디오를 나타내는 상기 코딩된 데이터를 포함하는 적어도 하나의 레이턴트(latent)로 적어도 하나의 조건부 컨볼루션을 수행하는 것을 포함하는, 방법 또는 장치.
  8. 제1항 또는 제3항 내지 제7항 중 어느 한 항, 또는 제2항 내지 제7항 중 어느 한 항에 있어서, 상기 제1 신경망-기반 디코더는,
    인트라 코딩 프레임 디코더,
    모션 흐름 디코더, 및
    잔차 디코더
    중 하나인, 방법 또는 장치.
  9. 제1항 또는 제3항 내지 제8항 중 어느 한 항, 또는 제2항 내지 제8항 중 어느 한 항에 있어서,
    하이퍼프라이어 네트워크 디코더로부터 예측된 파라미터들을 사용하여 상기 비트스트림을 엔트로피-디코딩함으로써, 이미지 또는 비디오를 나타내는 상기 코딩된 데이터를 포함하는 적어도 하나의 레이턴트를 획득하는 단계를 추가로 포함하거나, 상기 하나 이상의 프로세서들은,
    하이퍼프라이어 네트워크 디코더로부터 예측된 파라미터들을 사용하여 상기 비트스트림을 엔트로피-디코딩함으로써, 이미지 또는 비디오를 나타내는 상기 코딩된 데이터를 포함하는 적어도 하나의 레이턴트를 획득하도록 추가로 구성되는, 방법 또는 장치.
  10. 제9항에 있어서, 상기 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보는 상기 하이퍼프라이어 네트워크 디코더를 사용하여 상기 비트스트림으로부터 획득되는, 방법 또는 장치.
  11. 방법으로서,
    제1 신경망 인코더로부터, 이미지 또는 비디오를 나타내는 코딩된 데이터를 포함하는 적어도 하나의 제1 레이턴트를 획득하는 단계;
    상기 적어도 하나의 제1 레이턴트를 제2 신경망 인코더에 제공하는 단계;
    상기 제2 신경망 인코더로부터, 상기 적어도 하나의 제1 레이턴트를 디코딩할 때 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는 적어도 하나의 제2 레이턴트를 획득하는 단계; 및
    상기 적어도 하나의 제1 레이턴트 및 상기 적어도 하나의 제2 레이턴트를 포함하는 적어도 하나의 비트스트림을 생성하는 단계를 포함하는, 방법.
  12. 장치로서, 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은,
    제1 신경망 인코더로부터, 이미지 또는 비디오를 나타내는 코딩된 데이터를 포함하는 적어도 하나의 제1 레이턴트를 획득하고;
    상기 적어도 하나의 제1 레이턴트를 제2 신경망 인코더에 제공하고;
    상기 제2 신경망 인코더로부터, 상기 적어도 하나의 제1 레이턴트를 디코딩할 때 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는 적어도 하나의 제2 레이턴트를 획득하고;
    상기 적어도 하나의 제1 레이턴트 및 상기 적어도 하나의 제2 레이턴트를 포함하는 적어도 하나의 비트스트림을 생성하도록 구성되는, 장치.
  13. 제11항 또는 제12항에 있어서, 상기 제1 신경망 인코더, 상기 제1 신경망 인코더, 상기 제2 신경망 인코더는 공동으로 훈련되는, 방법 또는 장치.
  14. 제13항에 있어서, 엔트로피-디코딩 후에 상기 적어도 하나의 제2 레이턴트로부터 디코딩된 부수-정보를 획득하는 데 사용되는 제2 신경망 디코더는 상기 제1 신경망 인코더, 상기 제1 신경망 인코더, 상기 제2 신경망 인코더와 공동으로 훈련되는, 방법 또는 장치.
  15. 방법으로서, 이미지 또는 비디오를 나타내는 코딩된 데이터를 포함하는 비트스트림을 디코딩하는 단계를 포함하며, 상기 비트스트림을 디코딩하는 것은,
    상기 비트스트림으로부터, 제1 신경망-기반 디코더의 적응이 상기 비트스트림으로부터 획득된 적어도 하나의 레이턴트를 디코딩하는 데 사용되는지를 나타내는 신택스 요소를 디코딩하는 것을 포함하는, 방법.
  16. 장치로서, 이미지 또는 비디오를 나타내는 코딩된 데이터를 포함하는 비트스트림을 디코딩하도록 구성된 하나 이상의 프로세서들을 포함하며, 상기 비트스트림을 디코딩하는 것은,
    상기 비트스트림으로부터, 제1 신경망-기반 디코더의 적응이 상기 비트스트림으로부터 획득된 적어도 하나의 레이턴트를 디코딩하는 데 사용되는지를 나타내는 신택스 요소를 디코딩하는 것을 포함하는, 장치.
  17. 제15항 또는 제16항에 있어서, 상기 신택스 요소가 상기 제1 신경망-기반 디코더의 적응의 사용을 나타낸다는 결정에 응답하여, 상기 비트스트림을 디코딩하는 것은,
    제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 디코딩하는 것,
    상기 디코딩된 부수-정보 및 상기 적어도 하나의 레이턴트를 상기 제1 신경망-기반 디코더에 입력들로서 제공하는 것, 및
    상기 제1 신경망-기반 디코더의 출력으로부터, 재구성된 이미지 또는 비디오를 획득하는 것을 포함하는, 방법 또는 장치.
  18. 방법으로서, 이미지 또는 비디오를 비트스트림에 코딩하는 단계를 포함하며, 상기 이미지 또는 비디오를 코딩하는 것은,
    제1 신경망 인코더를 사용하여 상기 이미지 또는 비디오를 나타내는 데이터를 상기 비트스트림에 코딩하는 것; 및
    제1 신경망-기반 디코더의 적응이 상기 이미지 또는 비디오를 나타내는 상기 데이터를 상기 비트스트림으로부터 디코딩하는 데 사용되는지를 나타내는 신택스 요소를 상기 비트스트림에 코딩하는 것을 포함하는, 방법.
  19. 장치로서, 이미지 또는 비디오를 비트스트림에 코딩하도록 구성된 하나 이상의 프로세서들을 포함하며, 상기 이미지 또는 비디오를 코딩하는 것은,
    제1 신경망 인코더를 사용하여 상기 이미지 또는 비디오를 나타내는 데이터를 상기 비트스트림에 코딩하는 것; 및
    제1 신경망-기반 디코더의 적응이 상기 이미지 또는 비디오를 나타내는 상기 데이터를 상기 비트스트림으로부터 디코딩하는 데 사용되는지를 나타내는 신택스 요소를 상기 비트스트림에 코딩하는 것을 포함하는, 장치.
  20. 제18항 또는 제19항에 있어서, 상기 제1 신경망-기반 디코더의 적응이 상기 이미지 또는 비디오를 나타내는 상기 데이터를 디코딩하는 데 사용된다는 결정에 응답하여, 상기 방법은,
    상기 제1 신경망 인코더로부터, 상기 이미지 또는 비디오를 나타내는 상기 코딩된 데이터를 포함하는 적어도 하나의 제1 레이턴트를 획득하는 단계,
    상기 적어도 하나의 제1 레이턴트를 제2 신경망 인코더에 제공하는 단계,
    상기 제2 신경망 인코더로부터, 상기 적어도 하나의 제1 레이턴트를 디코딩할 때 상기 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는 적어도 하나의 제2 레이턴트를 획득하는 단계, 및
    상기 적어도 하나의 제2 레이턴트를 상기 비트스트림 또는 별개의 비트스트림에 인코딩하는 단계를 추가로 포함하거나,
    상기 하나 이상의 프로세서들은,
    상기 제1 신경망 인코더로부터, 상기 이미지 또는 비디오를 나타내는 상기 코딩된 데이터를 포함하는 적어도 하나의 제1 레이턴트를 획득하고,
    상기 적어도 하나의 제1 레이턴트를 제2 신경망 인코더에 제공하고,
    상기 제2 신경망 인코더로부터, 상기 적어도 하나의 제1 레이턴트를 디코딩할 때 상기 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는 적어도 하나의 제2 레이턴트를 획득하고,
    상기 적어도 하나의 제2 레이턴트를 상기 비트스트림 또는 별개의 비트스트림에 인코딩하도록 추가로 구성되는, 방법 또는 장치.
  21. 비트스트림으로서, 이미지 또는 비디오를 나타내는 코딩된 데이터, 및 제1 신경망-기반 디코더를 적응시키기 위한 부수-정보를 포함하는, 비트스트림.
  22. 비트스트림으로서, 이미지 또는 비디오를 나타내는 코딩된 데이터, 및 상기 비트스트림으로부터 획득된 적어도 하나의 레이턴트를 디코딩하도록 구성된 제1 신경망-기반 디코더의 파라미터화의 사용을 나타내는 적어도 하나의 신택스 요소를 포함하는, 비트스트림.
  23. 제1항, 제3항 내지 제11항, 제13항 내지 제15항, 제17항, 제18항 또는 제20항 중 어느 한 항, 또는 제2항 내지 제10항, 제12항 내지 제14항, 제16항, 제17항, 제19항 또는 제20항 중 어느 한 항, 또는 제21항 또는 제22항에 있어서, 상기 비트스트림은 상기 이미지 또는 비디오를 나타내는 상기 코딩된 데이터를 디코딩할 때 적응시킬 상기 제1 신경망-기반 디코더의 계층을 나타내는 적어도 하나의 신택스 요소를 포함하는, 방법 또는 장치 또는 비트스트림.
  24. 컴퓨터 판독가능 매체로서, 제21항 내지 제23항 중 어느 한 항에 따른 비트스트림을 포함하는, 컴퓨터 판독가능 매체.
  25. 컴퓨터 판독가능 저장 매체로서, 하나 이상의 프로세서들로 하여금 제1항, 제3항 내지 제11항, 제13항 내지 제15항, 제17항, 제18항 또는 제20항 중 어느 한 항의 방법을 수행하게 하기 위한 명령어들이 저장된, 컴퓨터 판독가능 저장 매체.
  26. 컴퓨터 프로그램 제품으로서, 상기 프로그램이 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 제1항, 제3항 내지 제11항, 제13항 내지 제15항, 제17항, 제18항 또는 제20항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 컴퓨터 프로그램 제품.
  27. 디바이스로서,
    제2항 내지 제10항, 제16항, 제17항, 제19항 또는 제20항 중 어느 한 항에 따른 장치; 및 (i) 신호를 수신하도록 구성된 안테나 - 상기 신호는 제21항 내지 제23항 중 어느 한 항에 따른 비트스트림을 포함함 -, (ii) 제21항 내지 제23항 중 어느 한 항에 따른 비트스트림을 포함하는 상기 수신된 신호를 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 또는 (iii) 상기 재구성된 이미지 또는 비디오를 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는, 디바이스.
  28. 제27항에 있어서, TV, 휴대폰, 태블릿 또는 셋톱 박스를 포함하는, 디바이스.
  29. 장치로서,
    제21항 내지 제23항 중 어느 한 항에 따른 비트스트림을 포함하는 신호를 포함하는 데이터에 액세스하도록 구성된 액세스 유닛;
    상기 액세스된 데이터를 송신하도록 구성된 송신기를 포함하는, 장치.
  30. 방법으로서, 제21항 내지 제23항 중 어느 한 항에 따른 비트스트림을 포함하는 데이터에 액세스하는 단계, 및 상기 액세스된 데이터를 송신하는 단계를 포함하는, 방법.
KR1020237038574A 2021-04-13 2022-04-13 인공 신경망 기반 툴을 사용하여 이미지 및 비디오를 인코딩/디코딩하기 위한 방법 및 장치 KR20230169239A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163174105P 2021-04-13 2021-04-13
US63/174,105 2021-04-13
PCT/US2022/024558 WO2022221374A1 (en) 2021-04-13 2022-04-13 A method and an apparatus for encoding/decoding images and videos using artificial neural network based tools

Publications (1)

Publication Number Publication Date
KR20230169239A true KR20230169239A (ko) 2023-12-15

Family

ID=81392812

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237038574A KR20230169239A (ko) 2021-04-13 2022-04-13 인공 신경망 기반 툴을 사용하여 이미지 및 비디오를 인코딩/디코딩하기 위한 방법 및 장치

Country Status (4)

Country Link
EP (1) EP4324205A1 (ko)
KR (1) KR20230169239A (ko)
CN (1) CN117256142A (ko)
WO (1) WO2022221374A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023163632A1 (en) * 2022-02-25 2023-08-31 Telefonaktiebolaget Lm Ericsson (Publ) Neural network complexity metric for image processing
WO2024083250A1 (en) * 2022-10-21 2024-04-25 Douyin Vision Co., Ltd. Method, apparatus, and medium for video processing
WO2024083247A1 (en) * 2022-10-21 2024-04-25 Douyin Vision Co., Ltd. Method, apparatus, and medium for visual data processing
WO2024163488A1 (en) * 2023-02-02 2024-08-08 Interdigital Vc Holdings, Inc. A method and an apparatus for encoding/decoding at least one part of an image using one or more multi-resolution transform blocks

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11729406B2 (en) * 2019-03-21 2023-08-15 Qualcomm Incorporated Video compression using deep generative models

Also Published As

Publication number Publication date
EP4324205A1 (en) 2024-02-21
CN117256142A (zh) 2023-12-19
WO2022221374A1 (en) 2022-10-20
WO2022221374A9 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
KR20230169239A (ko) 인공 신경망 기반 툴을 사용하여 이미지 및 비디오를 인코딩/디코딩하기 위한 방법 및 장치
US20230396801A1 (en) Learned video compression framework for multiple machine tasks
CN113574887A (zh) 基于低位移秩的深度神经网络压缩
US20230298219A1 (en) A method and an apparatus for updating a deep neural network-based image or video decoder
KR20220123666A (ko) 가중-예측 파라미터들의 추정
JP2024522138A (ja) ビデオを符号化/復号するための方法及び装置
JP2023517695A (ja) ビデオ符号化及び復号化のための方法並びに装置
CN115362679A (zh) 用于视频编码和解码的方法和装置
WO2021055360A1 (en) Video compression based on long range end-to-end deep learning
US20240155148A1 (en) Motion flow coding for deep learning based yuv video compression
US20240187640A1 (en) Temporal structure-based conditional convolutional neural networks for video compression
US20230370622A1 (en) Learned video compression and connectors for multiple machine tasks
TW202420823A (zh) 使用彈性網路之深度特徵壓縮的熵調適
WO2023146634A1 (en) Block-based compression and latent space intra prediction
WO2024118933A1 (en) Ai-based video conferencing using robust face restoration with adaptive quality control
WO2024064329A1 (en) Reinforcement learning-based rate control for end-to-end neural network bsed video compression
WO2024178220A1 (en) Image/video compression with scalable latent representation
WO2024158896A1 (en) Multi-residual autoencoder for image and video compression
WO2024226920A1 (en) Syntax for image/video compression with generic codebook-based representation
EP4406224A1 (en) Methods and apparatuses for encoding/decoding a video
WO2024126045A1 (en) Methods and apparatuses for encoding and decoding an image or a video
WO2024002807A1 (en) Signaling corrections for a convolutional cross-component model
WO2024049627A1 (en) Video compression for both machine and human consumption using a hybrid framework
WO2022101018A1 (en) A method and an apparatus for encoding or decoding a video
EP4309368A1 (en) A method or an apparatus for generating film grain parameters, a method or an apparatus for generating a block of pixels with film grain pattern