KR20230157975A - 딥러닝 기반 yuv 비디오 압축을 위한 모션 흐름 코딩 - Google Patents

딥러닝 기반 yuv 비디오 압축을 위한 모션 흐름 코딩 Download PDF

Info

Publication number
KR20230157975A
KR20230157975A KR1020237031789A KR20237031789A KR20230157975A KR 20230157975 A KR20230157975 A KR 20230157975A KR 1020237031789 A KR1020237031789 A KR 1020237031789A KR 20237031789 A KR20237031789 A KR 20237031789A KR 20230157975 A KR20230157975 A KR 20230157975A
Authority
KR
South Korea
Prior art keywords
motion information
prediction
data
information
block
Prior art date
Application number
KR1020237031789A
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 KR20230157975A publication Critical patent/KR20230157975A/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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/177Methods 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 group of pictures [GOP]
    • 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

Landscapes

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

Abstract

비디오 인코딩 및 디코딩은 크로미넌스 예측에 대한 모션 정보를 도출하기 위해 루미넌스 정보를 사용하는 오토인코더들로 구현된다. 하나의 실시예에서, YUV 4:2:0 비디오는 인코딩 및 디코딩되는데, 여기서 루미넌스 정보는 기준 프레임의 크로미넌스 성분들로부터의 예측들을 생성하기 위해 다운샘플링된다. 관련된 실시예에서, 예측들을 위해 하나 초과의 기준 프레임이 사용된다. 다른 실시예에서, 콘볼루션들 및 전치 콘볼루션들은 모션 정보의 도출을 구현한다.

Description

딥러닝 기반 YUV 비디오 압축을 위한 모션 흐름 코딩
본 실시예들 중 적어도 하나는 대체적으로 인공 신경망(Artificial Neural Network, ANN) 기반 툴들을 사용한 이미지들 및 비디오들의 압축을 위한 방법 또는 장치에 관한 것이다.
ISO/MPEG와 ITU 사이의 JVET(Joint Video Exploration Team)는 최신 표준 H.266/VVC의 일부 모듈들을 대체하는 툴들뿐만 아니라, 종단간 오토인코더(auto-encoder)에 의해 전체 구조를 대체하는 방법들을 현재 연구하고 있다.
본 실시예들 중 적어도 하나는 대체적으로 인공 신경망(ANN) 기반 툴들을 사용한 이미지들 및 비디오들의 압축을 위한 방법 또는 장치에 관한 것이다.
제1 태양에 따르면, 방법이 제공된다. 본 방법은, 현재 블록 및 적어도 하나의 기준 블록의 루미넌스 데이터를 연결하기 위한 단계; 연결된 루미넌스 데이터로부터 모션 정보를 결정하기 위한 단계; 상기 결정된 모션 정보를 인코딩하기 위한 단계; 상기 인코딩된 모션 정보를 다운샘플링하기 위한 단계; 적어도 하나의 기준 블록의 상기 다운샘플링된 인코딩된 모션 정보 및 크로미넌스 데이터에 기초하여 크로미넌스 데이터의 예측을 결정하기 위한 단계; 적어도 하나의 기준 블록의 상기 인코딩된 모션 정보 및 루미넌스 데이터에 기초하여 루미넌스 데이터의 예측을 결정하기 위한 단계; 상기 예측들에 기초하여 현재 블록의 잔차 데이터를 결정하기 위한 단계; 및 상기 잔차 데이터를, 상기 인코딩된 모션 정보를 또한 포함하는 비트스트림에 인코딩하기 위한 단계를 포함한다.
제2 태양에 따르면, 방법이 제공된다. 본 방법은, 비트스트림으로부터 모션 정보를 디코딩하기 위한 단계; 상기 디코딩된 모션 정보를 다운샘플링하기 위한 단계; 적어도 하나의 기준 블록의 상기 다운샘플링된 디코딩된 모션 정보 및 크로미넌스 데이터에 기초하여 크로미넌스 데이터의 예측을 결정하기 위한 단계; 적어도 하나의 기준 블록의 상기 디코딩된 모션 정보 및 루미넌스 데이터에 기초하여 루미넌스 데이터의 예측을 결정하기 위한 단계; 잔차 정보를 디코딩하기 위한 단계; 및 상기 디코딩된 잔차 정보 및 상기 예측들을 사용하여 비디오 블록을 재구성하기 위한 단계를 포함한다.
다른 태양에 따르면, 장치가 제공된다. 장치는 프로세서를 포함한다. 프로세서는 기술된 방법들 중 임의의 것을 실행함으로써 대체적인 태양들을 구현하도록 구성될 수 있다.
적어도 하나의 실시예의 다른 대체적인 태양에 따르면, 디코딩 실시예들 중 임의의 것에 따른 장치, 및 (i) 신호를 수신하도록 구성된 안테나 - 신호는 비디오 블록을 포함함 -, (ii) 비디오 블록을 포함하는 수신된 신호를 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 또는 (iii) 비디오 블록을 나타내는 출력을 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는 디바이스가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하는 비일시적 컴퓨터 판독가능 매체가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 비디오 데이터를 포함하는 신호가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하도록 비트스트림이 포맷화된다.
적어도 하나의 실시예의 다른 대체적인 태양에 따르면, 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금, 기술된 디코딩 실시예들 또는 변형예들 중 임의의 것을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품이 제공된다.
일반적인 태양들의 이들 및 다른 태양들, 특징들 및 이점들은 첨부된 도면들과 관련하여 읽혀질 예시적인 실시예들의 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 기본 오토인코더 체인을 도시한다.
도 2는 비디오 프레임들을 압축하기 위한 Agustsson 등에 의한 아키텍처를 도시한다.
도 3은 2개의 기준 픽처들을 갖는 제안된 구조체를 도시한다.
도 4는 인터 모드에서 프레임을 인코딩하고(좌측) 디코딩하는(우측) 방법의 흐름도를 도시한다.
도 5는 인터 모드에 대한 인코딩(좌측) 및 디코딩(우측)의 스케일 흐름 예측의 맥락에서 제안된 방법의 흐름도를 도시한다.
도 6은 인터 모드에 대한 제안된 디코딩 프로세스의 세부사항들을 도시한다.
도 7은, 2개의 기준 프레임들 및 루미넌스와 크로미넌스에 대한 별개의 워핑(warping)을 사용한 인코딩 및 디코딩의 제안된 오토인코더 구조를 도시한다.
도 8은 양방향 예측의 경우의 제안된 구조를 도시한다.
도 9는 Y에 대해서만 계산되는 모션 흐름을 사용한 YUV 4:4:4 인코딩(좌측) 및 디코딩(우측)을 도시한다.
도 10은 루미넌스 및 크로미넌스에 대한 별개의 층들을 갖는 디코더 변형예를 도시한다.
도 11은 본 원리들을 사용하여 비디오를 인코딩하기 위한 방법의 하나의 실시예를 도시한다.
도 12는 본 원리들을 사용하여 비디오를 디코딩하기 위한 방법의 하나의 실시예를 도시한다.
도 13은 본 원리들을 사용한 인코딩 또는 디코딩을 위한 장치의 하나의 실시예를 도시한다.
도 14는 표준의 포괄적 비디오 압축 스킴을 도시한다.
도 15는 표준의 포괄적 비디오 압축해제 스킴을 도시한다.
도 16은 대체적인 기술된 태양들 하의 인코딩/디코딩을 위한 프로세서 기반 시스템을 도시한다.
최근 몇 년 동안, 신경망들에 기초한 신규한 이미지 및 비디오 압축 방법들이 개발되었다. 수작업의 예측 모드들 및 변환들을 적용하는 전통적인 방법들과는 대조적으로, ANN 기반 방법들은 손실 함수를 반복적으로 최소화함으로써 트레이닝 동안 대형 데이터 세트에 대해 학습되는 파라미터들에 의존한다. 압축 경우에 있어서, 손실 함수는 인코딩된 비트스트림의 비트레이트의 추정, 및 디코딩된 콘텐츠의 목적 함수 둘 모두를 설명한다. 전통적으로, 재구성된 이미지의 품질은, 예를 들어 신호 왜곡의 측정치 또는 인간-인지된 시각적 품질의 근사치에 기초하여 최적화된다.
도 1에서, 예시적인 종단간 압축 시스템을 보여준다. 네트워크의 인코더 부분에 대한 입력 X는 하기로 이루어질 수 있다:
- 비디오의 이미지 또는 프레임,
- 이미지의 일부,
- 이미지들/프레임들의 그룹을 표현하는 텐서,
- 이미지들/프레임들의 그룹의 부분(크롭)을 표현하는 텐서.
-
각각의 경우, 입력은 하나 또는 다수의 색상 성분들, 예컨대, 모노크롬, RGB 또는 YCbCr (YUV) 성분들을 가질 수 있다.
1. 입력 텐서 X는 인코더 네트워크에 공급된다. 인코더 네트워크는 일반적으로, 비선형 활성화 함수들을 갖는 콘볼루션 층들의 시퀀스이다. 콘볼루션들 또는 공간-대-깊이1 연산들에서 큰 스트라이드(stride)들은 채널들의 수를 증가시키면서 공간 해상도를 감소시키는 데 사용될 수 있다. 인코더 네트워크는 학습된 분석 변환으로 보일 수 있다.
2. 인코더 네트워크의 출력, "특징부 맵" 또는 "잠재력(latent)" Z는 저장 또는 송신을 위해 이진 스트림(비트스트림)으로서 양자화되고 엔트로피 코딩(entropy code, EC)된다.
3. 비트스트림은 Z_q, 즉, Z의 양자화된 버전을 획득하기 위해 엔트로피 디코딩(entropy decoded, ED)된다.
4. 디코더 네트워크는 , 즉 잠재력 로부터 디코딩된 오리지널 X 텐서의 근사치를 생성한다. 디코더 네트워크는 일반적으로, 업샘플링 콘볼루션들의 시퀀스(예컨대, "디콘볼루션들 " 또는 업샘플링 필터들이 뒤따르는 콘볼루션들) 또는 깊이-대-공간 연산들이다. 디코더 네트워크는 학습된 합성 변환뿐만 아니라 잡음제거 및 생성적 변환으로 보일 수 있다.
예를 들어, 효율적인 압축을 위한 잠재력 분포의 파라미터들을 합동으로 학습하기 위해 네트워크에 "하이퍼-오토인코더"(hyper-prior)를 추가하는 더 정교한 아키텍처들이 존재함에 유의한다. 본 발명은 오토인코더들의 사용으로 제한되지 않는다. 임의의 종단간 차분가능 코덱(differentiable codec)이 고려될 수 있다.
비디오 코딩
전통적인 비디오 압축
비디오 시퀀스들의 프레임들 사이의 리던던시들을 제거하기 위해, 전통적인 비디오 코딩 방법들은 인터 예측 툴들을 포함한다. 이미지들은 블록들로 파티셔닝된다.
인코딩될 각각의 블록에 대해, 모션 추정기는 이전에 재구성된 기준 픽처에서 예측기를 찾고자 시도한다. 순수한 변환이 전통적으로 고려되며, 모션 추정기는 현재 블록과 공동위치된 윈도우 내에서 동일한 형상의 블록들을 파싱하여 예측한다. 최상의 매칭이 발견될 때, 모션 벡터, 즉 현재 블록의 위치와 그의 예측기 사이의 수평 및 수직 좌표 차이들이 코딩되고 기준 픽처의 인덱스와 함께 비트스트림에서 송신된다. 잔차로도 불리는, 소스 블록과 예측기 사이의 차이는 대체적으로, 비트스트림에서 변환, 양자화 및 엔트로피 코딩된다.
디코더에서, 모션 정보뿐만 아니라 잔차들이 디코딩된다. 예측기는 디코딩된 모션 벡터를 사용하여, 시그널링된 기준 프레임에서 액세스된다. 이어서, 디코딩된 블록은 디코딩된 잔차를 예측기에 추가함으로써 구성된다.
이러한 스킴에서, 인코더는 현재 블록의 위치에 중심을 둔, 기준 프레임의 윈도우 내에서 최상의 매칭 블록을 찾는 복잡한 태스크를 수행한다. 디코더는 단지 모션 정보를 파싱할 필요가 있다.
이루어진 근사화는, 어떠한 변형들도 고려하지 않고서, 예측기 블록이 기준 프레임으로부터 복사되기 때문에, 블록들 내의 텍스처들이 강성이라는 가정에 있다. 코덱들은 블록들로의 파티셔닝에 기초한다. 인코더는 자연스럽게, 형상들 및 크기들이 만족스러운 모션 보상으로 이어지는, 즉, 재구성된 이미지들의 잔차들의 크기 대 품질을 최적화하는 블록들을 선택할 것이다. 예를 들어, 고도로 동적이고 변형가능한 텍스처들(나뭇잎들, 물 등)은 강성 모션 보상이 작동하도록 매우 작은 블록들을 요구할 것이다.
여기서 모델의 한계들을 볼 수 있으며, 여기서 블록들의 변환만이 고려된다. 하나의 프레임으로부터 다른 프레임으로의 텍스처들의 회전 또는 스케일링조차도 모션 모델들에서 고려되지 않는다. 변환, 회전, 및 스케일링을 위한 6-파라미터 코딩을 갖는 아핀 모델과 같은 확장된 모션 파라미터화들을 포함한, 다수의 접근법들이 시도되었다. 그러나, 인코딩 및 디코딩 측들 둘 모두에서 증가된 복잡도만큼의 압축 이득들이 결코 이루어지지 않았다.
인공 신경망들을 사용한 비디오 압축
이 섹션에서, 본 발명의 설명에 대한 기본 모델로서의 역할을 하는 인공 신경망들에 기초하여 최신 기술의 비디오 압축 방법들을 상술한다. 그들은 오토인코더 아키텍처들에 의존하여 상이한 요소들을 인코딩하고, 프레임들 사이의 조밀한 모션을 추정하는, 즉, 각각의 픽셀 위치에 별개의 2d 모션 벡터(수직 및 수평)가 할당되는 광학 흐름을 계산함으로써 프레임간 리던던시들의 제거를 다룬다.
전통적인 블록 기반 인터 예측 및 잔차 코딩과 결합되어, 광학 흐름은 지금까지, 합리적인 복잡도에서 전술된 블록 기반 방법들에 비해 이점들을 보여주지 못했다. 그러나, 자동인코더들을 사용하여 모션 필드들을 인코딩하는 최근의 작업들은 유망한 결과들을 보여주었다.
도 2에서, 이전 접근법에서 제시된 대체적인 아키텍처를 보여준다. 좌측의 I-프레임은, 독립적으로 (인트라) 인코딩되는 키-프레임들의 인코딩을 표현한다. 그들은 콘볼루션 분석 및 합성 모듈들로 구성된 표준 오토인코더 이미지 압축 스킴을 겪는다. 좌측에는 예시적인 분석/합성 블록들이 보인다. 인코더에서, 스트라이드를 갖는 콘볼루션들은 변환 이미지를 크기 의 잠재력 텐서 Z로 변환한다. 콘볼루션은, 예를 들어, 5x5 conv (N/M) ↓2로 표기되는데, 여기서 5x5는 콘볼루션 커널 크기를 표시하고, N 및 M은 각각 채널들의 입력 및 출력 개수들이고, ↓2는 2의 스트라이드에 대응하는데, 이는 2로 나뉜 공간 치수들의 텐서를 출력할 것이다. 콘볼루션들은 예시적인 도면에서와 같이, 수정된 선형 유닛들과 같은 활성화 함수들과 인터리빙될 수 있다. 디코더에서, 콘볼루션들은 trconv로 표시되는 전치 콘볼루션들로 대체된다. 추론에서, 엔트로피 코더(EC) 및 엔트로피 디코더(ED)는 리던던시들을 산술적으로 제거하는 데 사용된다. 다른 예측(P) 프레임들은 우측에서 프로세스를 따라 인코딩된다. 인코더에서, 입력들은 현재 프레임 , 및 이전에 재구성된 기준 프레임 이다. 이미지들 둘 모두는 모션 정보를 도출하고 인코딩하는 데 사용된다. 그들은 모션 흐름 오토인코더의 입력인 고유 텐서로서 연결되는데, 이는 재구성된 흐름 을 생성한다. 후자는 기준 프레임 을 현재에 워핑하는 데 사용되는데, 이는 디코더가 재구성된 흐름에만 액세스할 것이기 때문이다. 이것은 현재 프레임에 대한 예측기 를 생성한다. 이어서, 에 대응하는 잔차는 에 의해 인코딩된다. 재구성된 잔차는 최종적으로, 재구성된 예측에 추가되어, 디코딩된 이미지 를 형성한다. 이어서, 도 2에서 [1 0 0 … 1 1]로 표시된 비트스트림은 예측 프레임들의 경우에 잔차들과 모션 필드의 잠재력 표현들 중의 I-프레임들의 잠재력 표현 중 어느 하나를 표현하는 코드들로 구성된다.
도 3은 디스플레이 순서에서 과거 또는 미래의 프레임들일 수 있지만, 코딩 순서에서 과거 프레임들일 수 있는 2개의 기준 프레임들을 사용할 때의 구조를 도시하는데, 이는 그들이 이전에 재구성될 필요가 있기 때문이다. 상기 설명과의 첫 번째 차이는 연결 동작에 위치되는데, 이는 입력으로서 3개의 이미지들(루미넌스 성분들)을 취한다. 두 번째는, 각각의 기준 프레임이 별개로 맵핑되고, 예측 프레임이 각각의 맵핑된 기준의 선형 조합에 대응한다는 것이다. 각각의 샘플을 별개로 공간적으로 블렌딩하기 위해 마스크가 사용될 수 있다.
본 발명은 최고 품질을 가능하게 유지하면서, 송신된 비트레이트의 크기를 최소화함으로써 비디오들의 압축을 최적화하는 문제를 해결하는 것을 목표로 한다. 특히, 기존의 차분가능 신경망 기반 모션 추정 및 보상 방법들은 RGB 포맷으로 표현되는 비디오들에 대한 예측 및 광학 흐름을 직접 계산한다. 그러나, 대부분의 비디오 콘텐츠는 YUV 4:2:0 포맷으로 표현되는데, 즉 U 및 V 성분들은 Y 채널의 폭 및 높이의 절반의 크기를 갖는다. 이 경우, 입력을 텐서로서 프로세싱하는 것이 불가능하며, 여기서 h 및 w는 각각 이미지의 높이 및 폭을 표현한다.
본 문서는, 상이한 해상도들로 루미넌스 및 크로미넌스 채널들을 저장하는 특정 비디오 컬러 포맷들의 경우에 모션 추정 및 코딩을 개선하기 위한 방법들 및 실시예들을 기술한다.
종래의 코딩
전통적인 비디오 코딩 방법들은 섹션 1에 상술된 바와 같이 블록 기반 모션 추정에 의존한다. 이러한 설계는 프레임들 사이의 모션이 각각의 블록에 대한 간단한 변환에 의해 모델링될 수 있다는 가정에 의존한다. 인코더는 이러한 모델링에 의해 만들어진 에러를 정정하기 위해 송신될 필요가 있는 잔차들을 최소화하는 블록 파티셔닝을 선택한다.
차분가능한 흐름 기반 비디오 압축
최근의 작업들은 비디오들의 프레임들 사이의 조밀한 모션 흐름을 추정하고 인코딩하기 위해 심층 모델들을 사용하는 가능성들을 보여주었다. 그러나, 기존의 방법들은 일반적으로, 모션 흐름을 도출하기 위해 RGB 컬러 포맷에 의존한다. 이전 섹션은 주요 유형들의 아키텍처들을 기술한다.
본 발명은, 루마 컴포넌트(Y)만을 사용하여 모션 흐름을 계산할 것, 및 이어서, 크로미넌스(Cb/Cr 또는 U/V 성분들)를 효율적으로 압축하는 데 필요한 모델들을 도출할 것을 제안한다.
주요 실시예
본 발명에서, 루미넌스 성분만을 사용하여 모션 정보를 계산하는 것이 제안됨에 따라, 기준 이미지의 루마 및 크로마 성분들은 개별적으로 현재 이미지 상으로 워핑될 수 있다. 이것은 루미넌스 및 크로미넌스가 상이한 해상도를 가질 때 특히 관련이 있다.
도 2는 모션 필드를 계산하고 인코딩하는 데 현재 및 기준 프레임들의 루미넌스 성분만이 사용되는 제안된 방법의 주요 실시예를 도시한다. 크로미넌스 성분들의 모션은 루미넌스 모션으로부터 직접 도출된다. 하기에서, 인코딩할 현재 프레임을 예측하기 위해 하나의 프레임만이 기준으로서 사용된다. 제안된 발명은 루미넌스/크로미넌스 표현의 특성들의 활용에 초점을 맞추며, 단일 프레임을 사용하는 인터 예측의 경우로 제한되지 않는다는 점에 유의한다.
인코딩할 현재 프레임 및 이전에 재구성된 기준 프레임 는 프로세스의 입력이다. 각각의 프레임의 루미넌스 성분은 모션을 계산하는 데 사용된다. 그들은 먼저, 크기 의 텐서를 생성하기 위해 연결되며, 여기서 h 및 w는 각각 프레임들의 높이 및 폭을 표시한다. 이어서, 모션, 즉, 각각의 샘플의 변위의 수평 및 수직 성분들이 계산되는데, 이는 또한, 이어서, 텐서에 대응한다.
잔차 는 인코더에서 현재 소스 이미지로부터 예측된 값들을 감산함으로써 획득된다.
이미지들 및 모션 정보와 같이, 그들은 오토인코더 아키텍처를 사용하여 인코딩될 수 있다. 이러한 프로세스는 일반적으로 손실성인데, 이는 재구성된 잔차 가 이전에 구성된 잔차 와 동일하지 않음을 의미한다.
이어서, 각각의 인터 예측된 이미지에 대해, 비트스트림은 모션 및 예측의 잔차들을 코딩하는 2개의 메인 인코딩된 텐서들을 포함한다.
재구성된 현재 프레임은 최종적으로 하기에 대응한다:
그것은 디코딩된 픽처 버퍼에 저장되어 나중의 예측 프레임에 대한 기준으로서의 역할을 할 수 있다. 픽처 그룹(Group Of Pictures, GOP) 구조들이 양방향 예측 코딩에 의존할 수 있기 때문에, 코딩 순서 및 디스플레이 순서는 상이할 수 있으며, 이어서 현재 디코딩된 프레임은, 그것이 디스플레이되고 더 이상 기준으로서의 역할을 하지 않을 때까지 저장된다.
선택적으로, 도 5에 도시된 바와 같이, 흐름 기반 예측이 충분히 양호하지 않을 때, 예컨대 폐색물 또는 물체들이 경계들 밖으로 이동할 때, 블러를 도입하는 것을 목표로 하는, 스케일 필드로도 불리는 구성요소가 추가될 수 있다. 이러한 모션 텐서는 또한, 엔트로피 병목현상을 갖는 콘볼루션 오토인코더를 사용하여 인코딩될 수 있다. 이러한 스테이지의 출력은 벡터 성분들 및 선택적인 필드 스케일을 포함하는 텐서로 이루어진다.
텐서들 둘 모두의 값들 각각은 변환 의 입력일 수 있는데, 이는 범위 [-1, 1]에 포함된 신호를 출력한다. 재구성된 기준 프레임과 함께, 이러한 텐서들은 예측된 이미지 를 생성하기 위해 워핑 연산에 대한 입력으로서 사용된다. 워핑 동안, 모션의 범위 [-1, 1]은 각각의 샘플의 변위의 수평 성분 각각에 대한 범위 [-width, width] 및 수직 성분 각각에 대한 범위 [-height, height]를 갖는 모션 벡터들에 대응한다.
이전 섹션에서는, 이미지의 각각의 성분의 값을 특정하기 위해, '픽셀' 대신에 '샘플' 변위들로 불렀다. 픽셀은 디스플레이된 이미지 상의 위치에 대응하는데, 즉, 그것은 RGB 또는 YUV 표현의 경우에 값들의 트리플렛(triplet)을 가질 수 있다. 특히, YUV 4:2:0 포맷의 경우, U 및 V 성분의 크기는 폭/2 및 높이/2이다. 이어서, 각각의 크로미넌스 샘플의 절대 변위들은 Y 성분에 대한 것들의 절반에 대응한다. 도 4에 도시된 바와 같이, 크로미넌스에 대해 정확한 크기로 모션 정보를 도출하기 위해 다운샘플링 동작이 필요하다. 이러한 다운샘플링 동작은, 예를 들어 하기와 같은, 임의의 다운샘플링 필터로 이루어질 수 있다:
- 평균 풀링(pooling), 즉 각각의 크로미넌스 변위는 루미넌스 텐서에서의 4개의 대응하는 값들의 평균임
- 임의의 스트라이드 콘볼루션, 또는 크로미넌스에 대해 정확한 크기로 텐서를 출력하는 일련의 콘볼루션들. 일례로서, 2의 스트라이드를 갖는 콘볼루션 3x3을 사용하는 것이 제안된다. 가중치들은 트레이닝 동안 학습되는데, 이는 Y 및 U/V 변위들 사이의 위상을 캐치하는 것을 돕는다.
먼저, 도 4에 도시된 바와 같이, 크로미넌스에 대해 정확한 크기로 모션 정보를 도출하기 위해 다운샘플링 동작이 필요하다. 이러한 다운샘플링 동작은, 예를 들어 하기와 같은, 임의의 다운샘플링 필터로 이루어질 수 있다:
- 평균 풀링, 즉 각각의 크로미넌스 변위는 루미넌스 텐서에서의 4개의 대응하는 값들의 평균임
- 임의의 스트라이드 콘볼루션, 또는 크로미넌스에 대해 정확한 크기로 텐서를 출력하는 일련의 콘볼루션들. 일례로서, 2의 스트라이드를 갖는 콘볼루션 3x3을 사용하는 것이 제안된다. 가중치들은 트레이닝 동안 학습되는데, 이는 Y 및 U/V 변위들 사이의 위상을 캐치하는 것을 돕는다.
두 번째, tanh 함수 및 워핑이 입력 텐서의 크기에 대해 모션 정보를 취하면, 이어서, 워핑 연산이 적절한 형태의 텐서를 수신한다.
도 6은 인터 모드에서 현재 프레임에 대한 디코더 측에서의 프로세스를 도시한다. 비트스트림은 요구되는 정보를 디코딩하기 위해 파싱된다:
- 사용되는 기준 이미지(들),
- 모션 텐서(들),
- 잔차
도 6에서 알 수 있는 바와 같이, 디코딩은 도 2에 기술된 바와 같은 콘볼루션 구조를 따르며, 여기서 전치 콘볼루션은 최종적으로, 루마에 대해 텐서 및 크로마에 대해 를 생성한다. 기본 광학 흐름의 간단한 경우에, P=2인데, 즉, 샘플들의 변위들의 수직 및 수평 성분들이다. 전술된 공간-스케일 흐름과 같은 더 정교한 접근법들이 사용될 때, P는 블러 특징부를 포함하여 3일 수 있다.
하기에서, 단일 기준 프레임의 경우의 프로세스를 기술한다.
디코딩된 모션 및 기준 프레임은 예측 프레임을 출력하는 워핑 연산에 입력된다.
나중의 프레임들을 예측하기 위한 프레임들을 재구성할 필요가 있는 인코더에서와 같이, 재구성된 현재 프레임은 하기로서 계산된다.
도 2의 대체적인 프레임워크에 대한 제안된 수정들을 강조하기 위해, 도 7은 전술된 바와 같은 전체 오토인코더 기반 구조를 도시하며, 여기서 워핑은 예측 프레임 을 생성하기 위해 루미넌스(Y) 및 크로미넌스(UV)에 대해 별개이다.
앞서 언급된 바와 같이, 제안된 방법은 임의의 인터 예측 스킴 및 이미지들의 그룹들의 구조들과 호환가능하다. 도 7은 도 3에서와 같이, 2개의 프레임들이 기준으로서 사용되는 예시적인 경우를 도시한다. 이러한 구조는 Y 및 UV가 별개로 워핑되는 제안된 아키텍처와 도 3의 것의 자연스러운 조합이다.
특정 경우 YUV 4:4:4
콘텐츠가 YUV 4:4:4 모드로 표현되는 경우. 콘텐츠가 3D 텐서 유사 RGB 포맷으로서 표현될 수 있더라도, 그것은 여전히, 루미넌스만을 사용하여 모션 흐름을 계산하는 것과 관련이 있을 수 있는데, 이는 일반적으로, 모션을 추정하는 데 필요한 주요 특징들을 포함한다. 그러한 경우에, 도 9에 도시된 바와 같이, 모션 흐름 계산의 입력만이 변경되는데, 이는 스케일-공간 모션 흐름의 경우이다. 동작들의 나머지는 RGB 콘텐츠를 프로세싱하는 최신 모델들에서와 같이, 3D 텐서로서 YUV 볼륨을 프로세싱한다. 그것은 더 일관된 모션 추정을 생성할 수 있고, 메모리 풋프린트 및 복잡도를 감소시킬 수 있다.
이러한 비트스트림의 전술된 상이한 텐서들을 디코딩하기 위해, 디코더는 신택스 요소들을 요구한다:
각각의 프레임에 대해:
- 픽처 모드 (인트라, 인터)
- 픽처가 인터 모드에서 코딩되는 경우,
o 예측에 사용되는 기준 프레임들의 픽처 순서 카운트(Picture Order Count, POC). 기준들은 일반적으로, 액세스될 그들의 POC와 함께, 디코더 픽처 버퍼에 저장된다.
o 디코딩할 각각의 텐서에 대해, 헤더는 그것의 ID 및 잠재적으로는 시퀀스 레벨에서 시그널링되지 않은 경우의 잠재력의 크기를 포함한다. 코딩된 비트들의 길이 중 어느 하나가 또한 시그널링된다.
이 섹션에서, 주 발명으로부터 확장된 다수의 변형예들을 기술한다. 설명에서 명시되지 않는 한, 변형예들이 조합될 수 있음에 유의한다.
포괄적 파라미터 인터 예측
주요 실시예에서, 기준 프레임으로부터 예측된 이미지를 생성하기 위한 흐름(또는 공간-스케일 흐름)의 사용을 기술하였다. 흐름은 기준 및 현재 프레임들의 2개의 Y(루미넌스) 성분들에 기초하여 추정된다. 본 발명은 실제로, 새로운 프레임을 생성하기 위해 기준 프레임 상에 적용될 수 있는 임의의 파라미터 방법으로 확장될 수 있다.
현재 디코더는 인코딩된 특징부 맵으로부터 2-성분(또는 공간-스케일의 경우 3-성분) 흐름을 생성한다. 이것은 프로세스가 구별가능한 한, 파라미터들의 임의의 세트들을 생성하도록 변경될 수 있다. 예를 들어:
- 흐름은 더 낮은 해상도에서 생성될 수 있고, 이어서, 이웃하는 픽셀들 사이의 공간 코히런스를 보장하기 위해 업샘플링될 수 있다.
- 흐름은 현실적인 모션 값들로 제약될 수 있다(예를 들어, 변위로서 이미지 크기의 절반 또는 1/4 이내를 사용할 수 있음)
- 글로벌 보상: 예를 들어, 파라미터 아핀 변환 또는 스플라인 기반 광도계 변환(파라미터 정보가 픽셀들에 국부적이지 않은 이러한 경우, 디코더에서의 풀링 및 평탄화 동작들의 사용이 용이할 수 있음)
- 보간 필터들: 기준 프레임과 직접 콘볼루션될 파라미터들의 커널은 동일한 방식으로 예측될 수 있다.
병렬 디코더들
- 다수의 디코더들이 동일한 특징부 맵 상에 병렬로 적용되어, 전술된 파라미터 예측 방법들의 임의의 조합을 생성할 수 있다.
- 디코더들은 또한, 공통 트렁크 및 다수의 헤드들로 구성될 수 있다: 예를 들어, 몇 개의 콘볼루션 층들이 특징부 맵 상에 적용되고, 이어서, 별개의 "서브"-디코더들이 병렬로 적용된다. (이것은 딥러닝 문헌에서 "하이드라넷(hydranet)들"로 알려져 있다). 특히, 루미넌스 및 크로미넌스 성분들에 대해 분리된 전용 층들을 예약하기 위해 네트워크의 아키텍처를 약간 수정하는 것이 제안된다.
이러한 설정에서, 다단계 예측 프로세스가 기준 프레임 상에 순차적으로 적용되고, 동작들의 순서는 비트스트림에서 각각의 이미지에 대해 저장될 수 있고/있거나 고정된 순서를 따를 수 있다.
다수의 기준 프레임들
이전의 실시예들에서, 단일 기준 프레임에 의존하는 상이한 방법들을 기술하는 데 초점을 맞추었다. 주요 실시예 섹션에서 언급된 바와 같이, 실시예들은 다수의 기준 프레임들의 사용을 지원할 수 있다(하기에서 기준 프레임들의 수를 n으로 표기함).
모션 인코더는 n+1개의 입력 성분들(기준들 + 현재 프레임들)을 취하도록 그리고 예측 방법 파라미터들의 n개의 세트들을 생성하도록 수정될 수 있다.
- 현재 이미지에 사용되는 기준 프레임들의 인덱스는 비트스트림에 저장될 수 있거나 고정 스킴을 따를 수 있다.
- 디코더의 출력은 이제, n개의 예측 프레임들의 기여도들의 균형을 맞추기 위해 가외 정보를 포함할 필요가 있다. 이것은, 최종 예측 프레임들을 구성하기 위해 이어서 집적되는 그들의 각자의 예측 프레임들에 곱해지는, [0, 1] 사이의 n개의 1xHxW 마스크의 세트일 수 있다. 간단한 평균 연산이 또한 사용될 수 있다. 마스크들은 루마 및 크로마 성분들에 대해 독립적으로 사용되고 적응될 수 있다.
-
모션 인코더 입력들의 확장
이전의 실시예들에서, 모션 인코더는 Y개의 성분들만을 입력으로서 취한다. 이것은 전통적인 비디오 코딩에 대한 엄격한 제한사항이며, 여기서 모션 예측 방법들은 이전 프레임들 및 공동위치된 블록들에 기초하여 많은 추가적인 정보에 액세스하였다. 여기서, 모션 인코더가 이용가능한 정보를 확장하는 다른 변형예들을 제안하였다(이러한 정보는 반드시 디코더 측에 제시할 필요가 없고, 그것은 모두 디코더 아키텍처에 의존한다는 점에 유의한다):
- 모션 인코더는 재구성된 기준 프레임을 입력으로서 취할 뿐만 아니라 오리지널 버전도 취하도록 확장될 수 있다. 이어서, 인코더는 모션 정보를 추정하기 위한 기준 프레임들 및 파라미터 변환들이 적용될 재구성된 기준의 오리지널 성분에 액세스하였다.
- 모션 인코더는 현재 프레임에 관련된 흐름 정보를 더 효율적으로 인코딩하기 위해 이전에 생성된 "흐름들"(또는 그들의 특징부 맵)을 사용하도록 확장될 수 있다(연속적인 프레임들 사이의 흐름들에서의 리던던시들이 예상됨). 이러한 정보는 또한, (그것이 이전 프레임들에 사용되었기 때문에) 디코더에 존재하고, 디코더에 대한 "사이드 정보(side-information)"로서 사용될 것이다. 일부 아키텍처 변형예들:
o 인코더 특징부 맵들은 이전 특징부 맵들과 병합/연결된다.
o 입력 프레임들은 인코더에 대한 새로운 입력들로서 이전 흐름(들)과 연결된다.
모션 정보를 디코딩하기 위한 별개의 콘볼루션들
이러한 변형예에서, YUV 4:2:0에서 크로미넌스 성분들의 모션 필드의 해상도를 적응시키는 대신, 모션을 인코딩하는 모델의 디코더 부분의 분기들을 분리하는 것이 제안된다. 도 10은, 도 6에서와 같이, 루미넌스에 대해 계산된 모션을 다운샘플링하는 대신, 디코더가 마지막 적어도 하나의 콘볼루션 층에 대한 2개의 분기들로 분할되는 그러한 디코더 아키텍처를 도시한다. 도 10의 예에서, 루미넌스 및 크로미넌스에 공통적인 마지막 층으로부터의 텐서 출력은 2N개의 채널들을 가지며, 절반으로 분할되어 루미넌스 및 크로미넌스 분기들 둘 모두에 공급한다. 2의 스트라이드를 갖는 루미넌스 마지막 전치 콘볼루션과는 대조적으로, 크로미넌스에 대한 콘볼루션은 스트라이드를 갖지 않는데, 이는 크로미넌스 성분들과 동일한 크기의 필드를 출력할 것이다.
채널들의 분할 및 개수는, 예를 들어, 루미넌스에 대해 더 많은 채널들을 유지하기 위해 상이하게 수행될 수 있다는 점에 유의한다.
인코딩을 위한 방법(1100)의 하나의 실시예가 도 11에 도시되어 있다. 본 방법은 시작 블록(1101)에서 시작하고, 현재 블록 및 적어도 하나의 기준 블록의 루미넌스 데이터를 연결하기 위한 블록(1110)으로 진행한다. 본 방법은 프로세싱을 위한 블록(1120)으로 진행한다. 프로세싱은 연결된 루미넌스 데이터로부터 모션 정보를 결정하는 것; 상기 결정된 모션 정보를 인코딩하는 것; 상기 인코딩된 모션 정보를 다운샘플링하는 것; 적어도 하나의 기준 블록의 상기 다운샘플링된 인코딩된 모션 정보 및 크로미넌스 데이터에 기초하여 크로미넌스 데이터의 예측을 결정하는 것; 적어도 하나의 기준 블록의 상기 인코딩된 모션 정보 및 루미넌스 데이터에 기초하여 루미넌스 데이터의 예측을 결정하는 것; 및 상기 예측에 기초하여 현재 블록의 잔차 데이터를 결정하는 것 중 적어도 하나를 포함한다. 본 방법은, 잔차 데이터를, 상기 인코딩된 모션 정보를 또한 포함하는 비트스트림에 인코딩하기 위한 블록(1130)으로 진행한다.
비디오 데이터를 디코딩하기 위한 방법(1200)의 하나의 실시예가 도 12에 도시되어 있다. 본 방법은 시작 블록(1201)에서 시작하고, 비트스트림으로부터 모션 정보를 디코딩하기 위한 블록(1210)으로 진행한다. 본 방법은 프로세싱을 위한 블록(1220)으로 진행한다. 프로세싱은, 상기 디코딩된 모션 정보를 다운샘플링하는 것; 적어도 하나의 기준 블록의 상기 다운샘플링된 디코딩된 모션 정보 및 크로미넌스 데이터에 기초하여 크로미넌스 데이터의 예측을 결정하는 것; 적어도 하나의 기준 블록의 상기 디코딩된 모션 정보 및 루미넌스 데이터에 기초하여 루미넌스 데이터의 예측을 결정하는 것; 및 잔차 정보를 디코딩하는 것 중 적어도 하나를 포함한다. 본 방법은 디코딩된 잔차 정보 및 예측들을 사용하여 비디오 블록을 재구성하기 위한 블록(1230)으로 진행한다.
도 13은 코딩 또는 디코딩 툴들을 사용하여 비디오를 압축, 인코딩 또는 디코딩하기 위한 장치(1300)의 하나의 실시예를 도시한다. 장치는 프로세서(1310)를 포함하고, 적어도 하나의 포트를 통해 메모리(1320)에 상호접속될 수 있다. 프로세서(1310) 및 메모리(1320) 둘 모두는 또한, 외부 접속부들에 대한 하나 이상의 추가적인 상호접속부들을 가질 수 있다.
프로세서(1310)는 또한, 비트스트림에 정보를 삽입하거나 그 내의 정보를 수신하도록, 그리고 전술된 방법들을 사용하여 압축, 인코딩 또는 디코딩 중 어느 하나를 하도록 구성된다.
여기에 기술된 실시예들은 툴들, 특징부들, 실시예들, 모델들, 접근법들 등을 포함한 다양한 태양들을 포함한다. 이들 태양들 중 많은 것은 특이성을 갖고서 기술되며, 적어도, 개별 특성들을 보여주기 위해, 종종, 제한사항으로 들릴 수 있는 방식으로 기술된다. 그러나, 이는 설명의 명확성을 위한 것이며, 그들 태양들의 응용 또는 범주를 제한하지 않는다. 실제로, 상이한 모든 태양들이 조합되고 상호교환되어 추가의 태양들을 제공할 수 있다. 또한, 태양들이 조합될 수 있고, 마찬가지로 이전의 출원에 기술된 태양들과 상호교환될 수 있다.
본 출원에서 기술되고 고려되는 태양들은 많은 상이한 형태들로 구현될 수 있다. 도 14, 도 15, 및 도 16은 일부 실시예들을 제공하지만, 다른 실시예들이 고려되고, 도 14, 도 15 및 도 16의 논의는 구현예들의 외연(breadth)을 제한하지 않는다. 태양들 중 적어도 하나는 일반적으로 비디오 인코딩 및 디코딩에 관한 것이고, 적어도 하나의 다른 태양은 일반적으로 생성되거나 인코딩된 비트스트림을 전송하는 것에 관한 것이다. 이들 및 다른 태양들은 기술된 방법들 중 임의의 방법에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 방법, 장치, 컴퓨터 판독가능 저장 매체, 및/또는 기술된 방법들 중 임의의 방법에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체로서 구현될 수 있다.
본 출원에서, "재구성된"및 "디코딩된"이라는 용어들은 상호 교환적으로 사용될 수 있으며, "픽셀" 및 "샘플"이라는 용어들은 상호 교환적으로 사용될 수 있고, "이미지", "픽처" 및 "프레임"이라는 용어들은 상호 교환적으로 사용될 수 있다. 반드시 그렇지는 않지만, 일반적으로, "재구성된"이라는 용어는 인코더 측에서 사용되는 반면, "디코딩된"은 디코더 측에서 사용된다.
다양한 방법들이 본 명세서에 기술되고, 각각의 방법은 기술된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다. 추가로, "제1", "제2" 등과 같은 용어들은, 예를 들어, "제1 디코딩" 및 "제2 디코딩"과 같은 요소, 컴포넌트, 단계, 동작 등을 수정하기 위해 다양한 실시예들에서 사용될 수 있다. 그러한 용어들의 사용은, 구체적으로 요구되지 않는 한 수식된 동작들에 대한 순서화를 의미하지 않는다. 따라서, 이러한 예에서, 제1 디코딩은 제2 디코딩 전에 수행될 필요가 없고, 예를 들어, 제2 디코딩 전에, 그 동안, 또는 그와 중첩되는 기간에 발생할 수 있다.
본 출원에 기술된 다양한 방법들 및 다른 태양들은, 도 14 및 도 15에 도시된 바와 같이, 비디오 인코더(100) 및 디코더(200)의 모듈들, 예를 들어, 인트라 예측, 엔트로피 코딩, 및/또는 디코딩 모듈들(160, 360, 145, 330)을 수정하는 데 사용될 수 있다. 또한, 본 태양들은 VVC 또는 HEVC로 제한되지 않으며, 예를 들어, 기존에 존재하든 향후 개발되든, 다른 표준들 및 권고들, 및 임의의 그러한 표준들 및 권고들(VVC 및 HEVC를 포함함)의 확장들에 적용될 수 있다. 달리 나타내지 않거나, 또는 기술적으로 배제되지 않는 한, 본 출원에 기술되는 태양들은 개별적으로 또는 조합하여 사용될 수 있다.
다양한 수치 값들이 본 출원에서 사용된다. 특정 값들은 예시적인 목적들을 위한 것이며, 기술된 태양들은 이들 특정 값들로 제한되지 않는다.
도 14는 인코더(100)를 도시한다. 이러한 인코더(100)의 변형들이 고려되지만, 인코더(100)는 모든 예상된 변형들을 기술하지 않고서 명료성의 목적들을 위해 후술된다.
인코딩되기 전에, 비디오 시퀀스는, 예를 들어, 입력 컬러 픽처에 컬러 변환을 적용하거나(예를 들어, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환), 또는 (예를 들어, 컬러 성분들 중 하나의 성분의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 성분들의 재맵핑(remapping)을 수행하는, 사전 인코딩 프로세싱(101)을 거칠 수 있다. 메타데이터는 사전-프로세싱과 연관될 수 있고, 비트스트림에 부착될 수 있다.
인코더(100)에서, 픽처는 후술되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처가 파티셔닝되고(102), 예를 들어, 코딩 단위(CU)들의 단위들로 프로세싱된다. 각각의 유닛은, 예를 들어 인트라 또는 인터 모드를 사용하여 인코딩된다. 유닛이 인트라 모드에서 인코딩될 때, 그것은 인트라 예측을 수행한다(160). 인터 모드에서는 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 유닛을 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지를 결정하고(105), 예를 들어 예측 모드 플래그에 의해 인트라/인터 결정을 나타낸다. 예측 잔차들은, 예를 들어 오리지널 이미지 블록에서 예측된 블록을 감산함으로써(110) 계산된다.
이어서, 예측 잔차들은 변환되고(125) 양자화된다(130). 양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 요소들은 엔트로피 코딩되어(145) 비트스트림을 출력한다. 인코더는 변환을 스킵할 수 있고, 비변환된 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 변환 및 양자화 모두를 스킵할 수 있으며, 즉, 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측들을 위한 기준을 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(140) 역변환된다(150). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(155), 이미지 블록이 재구성된다. 인루프(in-loop) 필터들(165)이, 예를 들어, 인코딩 아티팩트들을 감소시키기 위해 디블록킹(deblocking)/SAO(Sample Adaptive Offset) 필터링을 수행하도록 재구성된 픽처에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(180)에 저장된다.
도 15는 비디오 디코더(200)의 블록도를 도시한다. 디코더(200)에서, 비트스트림은 후술되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 대체적으로, 도 14에 기술된 바와 같이, 인코딩 패스에 상반되는 디코딩 패스를 수행한다. 인코더(100)는 또한 대체적으로, 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행한다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득하기 위해 먼저 엔트로피 디코딩된다(230). 픽처 파티션 정보는 픽처가 어떻게 파티셔닝되는지를 나타낸다. 따라서, 디코더는 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 분할할 수 있다(235). 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(240) 역변환된다(250). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(255), 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(260) 또는 모션 보상된 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). 재구성된 이미지에 인루프 필터들(265)이 적용된다. 필터링된 이미지는 기준 픽처 버퍼(280)에 저장된다.
디코딩된 픽처는 추가로, 사후-디코딩 프로세싱(285), 예를 들어, 역 색상 변환(예컨대, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환), 또는 사전-인코딩 프로세싱(101)에서 수행되는 재맵핑 프로세스의 역을 수행하는 역 재맵핑을 거칠 수 있다. 사후 디코딩 프로세싱은 사전 인코딩 프로세싱에서 도출되고 비트스트림에서 시그널링된 메타데이터를 사용할 수 있다.
도 16은 다양한 태양들 및 실시예들이 구현되는 시스템의 일례의 블록도를 도시한다. 시스템(1000)은 후술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있으며, 본 문서에 기술된 태양들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은, 다양한 전자 디바이스들, 예컨대 개인용 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 멀티미디어 셋톱 박스, 디지털 텔레비전 수신기, 개인용 비디오 녹화 시스템, 커넥티드 가전, 및 서버를 포함하지만, 이들로 제한되지 않는다. 시스템(1000)의 요소들은, 단독으로 또는 조합하여, 단일 집적 회로(IC), 다수의 IC들, 및/또는 별개의 컴포넌트들에서 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(1000)의 프로세싱 및 인코더/디코더 요소들은 다수의 IC들 및/또는 별개의 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(1000)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 하나 이상의 다른 시스템들, 또는 다른 전자 디바이스들에 통신가능하게 커플링된다. 다양한 실시예들에서, 시스템(1000)은 본 문서에 기술된 태양들 중 하나 이상을 구현하도록 구성된다.
시스템(1000)은, 예를 들어, 본 문헌에 기술된 다양한 태양들을 구현하기 위해 그 내부에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1010)를 포함한다. 프로세서(1010)는 내장된 메모리, 입력 출력 인터페이스, 및 당업계에 알려진 바와 같은 다양한 다른 회로부들을 포함할 수 있다. 시스템(1000)은 적어도 하나의 메모리(1020)(예컨대, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(1000)은 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory, EEPROM), 판독 전용 메모리(ROM), 프로그래밍가능 판독 전용 메모리(Programmable Read-Only Memory, PROM), 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM), 플래시, 자기 디스크 드라이브 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(1040)를 포함한다. 저장 디바이스(1040)는 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스(분리가능한 저장 디바이스 및 분리가능하지 않은 저장 디바이스를 포함함), 및/또는 네트워크 액세스가능한 저장 디바이스를 포함할 수 있다.
시스템(1000)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 프로세싱하도록 구성된 인코더/디코더 모듈(1030)을 포함하고, 인코더/디코더 모듈(1030)은 자체 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(1030)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(1030)은 시스템(1000)의 별개의 요소로서 구현될 수 있거나, 또는 당업자에게 알려진 바와 같은 하드웨어와 소프트웨어의 조합으로서 프로세서(1010) 내에 통합될 수 있다.
본 문헌에서 기술된 다양한 태양들을 수행하기 위해 프로세서(1010) 또는 인코더/디코더(1030)에 로딩될 프로그램 코드는 저장 디바이스(1040)에 저장될 수 있고 후속적으로 프로세서(1010)에 의한 실행을 위해 메모리(1020)에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(1010), 메모리(1020), 저장 디바이스(1040), 및 인코더/디코더 모듈(1030) 중 하나 이상은 본 문헌에 기술된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 이러한 저장된 항목들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 일부들, 비트스트림, 행렬들, 변수들, 및 식들, 공식들, 연산들 및 연산 로직의 프로세싱으로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이들로 제한되지 않는다.
일부 실시예들에서, 프로세서(1010) 및/또는 인코더/디코더 모듈(1030) 내부의 메모리는 명령어들을 저장하고, 인코딩 또는 디코딩 동안 필요한 프로세싱을 위한 작업 메모리를 제공하는 데 사용된다. 그러나, 다른 실시예들에서, 프로세싱 디바이스(예를 들어, 프로세싱 디바이스는 프로세서(1010) 또는 인코더/디코더 모듈(1030) 중 어느 하나일 수 있음) 외부의 메모리가 이러한 기능들 중 하나 이상에 사용된다. 외부 메모리는 메모리(1020) 및/또는 저장 디바이스(1040), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 일부 실시예들에서, 외부 비휘발성 플래시 메모리는 예를 들어, 텔레비전의 운영 체제를 저장하는 데 사용된다. 적어도 하나의 실시예에서, 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(Joint Video Experts Team)에서 개발 중인 새로운 표준)와 같은 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로 사용된다.
시스템(1000)의 요소들에 대한 입력은 블록(1130)에 표시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은 (i) 예를 들어 브로드캐스터(broadcaster)에 의해 무선으로(over the air) 송신된 무선 주파수(RF) 신호를 수신하는 무선 주파수(RF) 부분, (ii) 컴포넌트(COMP) 입력 단자(또는 COMP 입력 단자들의 세트), (iii) 범용 직렬 버스(USB) 입력 단자 및/또는 (iv) 고화질 멀티미디어 인터페이스(HDMI) 입력 단자를 포함하지만, 이들로 제한되지 않는다. 도 16에 도시되지 않은 다른 예들은 복합 비디오(composite video)를 포함한다.
다양한 실시예들에서, 블록(1130)의 입력 디바이스들은 당업계에 알려진 바와 같은 연관된 각자의 입력 프로세싱 요소들을 갖는다. 예를 들어, RF 부분은, (i) 원하는 주파수를 선택하는 것(신호를 선택하는 것, 또는 신호를 주파수들의 대역으로 대역 제한하는 것으로도 지칭됨), (ii) 선택된 신호를 하향변환(downconvert)하는 것, (iii) (예를 들어) 소정 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역으로 다시 대역-제한하는 것, (iv) 하향변환되고 대역-제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 역다중화하는 것에 적합한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어 주파수 선택기들, 신호 선택기들, 대역-제한기들, 채널 선택기들, 필터들, 하향변환기들, 복조기들, 에러 정정기들, 및 역다중화기들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 근거리 기저대역 주파수)로 또는 기저대역으로 하향변환하는 것을 포함하여 이러한 다양한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그의 연관된 입력 프로세싱 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 필터링하고, 하향변환하고 다시 원하는 주파수 대역으로 필터링함으로써 주파수 선택을 수행한다. 다양한 실시예들은 전술한(및 다른) 요소들의 순서를 재배열하고, 이들 요소들 중 일부를 제거하고/하거나 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은, 예를 들어, 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것과 같이, 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자들은 시스템(1000)을 USB 및/또는 HDMI 접속부들을 통해 다른 전자 디바이스들에 접속하기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 입력 프로세싱의 다양한 태양들, 예를 들어, 리드-솔로몬(Reed-Solomon) 에러 정정은 필요에 따라, 예를 들어, 별개의 입력 프로세싱 IC 내에서 또는 프로세서(1010) 내에서 구현될 수 있다는 것이 이해되어야 한다. 유사하게, USB 또는 HDMI 인터페이스 프로세싱의 태양들은 필요에 따라, 별개의 인터페이스 IC들 내에서 또는 프로세서(1010) 내에서 구현될 수 있다. 복조되고, 에러 정정되고, 역다중화된 스트림은, 출력 디바이스 상의 프레젠테이션을 위해 필요에 따라 데이터스트림을 프로세싱하기 위해, 예를 들어, 프로세서(1010), 및 메모리 및 저장 요소들과 조합하여 동작하는 인코더/디코더(1030)를 포함하는 다양한 프로세싱 요소들에 제공된다.
시스템(1000)의 다양한 요소들이 집적 하우징 내에 제공될 수 있다. 집적 하우징 내에서, 다양한 요소들은 인터-IC(I2C) 버스, 배선, 및 인쇄 회로 기판들을 포함한 적합한 접속 배열물, 예를 들어, 당업계에 알려져 있는 바와 같은 내부 버스를 사용하여, 상호접속될 수 있고 그들 사이에서 데이터를 송신할 수 있다.
시스템(1000)은 통신 채널(1060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(1050)를 포함한다. 통신 인터페이스(1050)는 통신 채널(1060)을 통해 데이터를 송신하도록 그리고 수신하도록 구성된 송수신기를 포함할 수 있지만, 이에 제한되지 않는다. 통신 인터페이스(1050)는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이에 제한되지 않으며, 통신 채널(1060)은 예를 들어 유선 및/또는 무선 매체 내에서 구현될 수 있다.
데이터는, 다양한 실시예들에서, Wi-Fi 네트워크, 예를 들어 IEEE 802.11(IEEE는 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers)를 지칭함)과 같은 무선 네트워크를 사용하여, 시스템(1000)에 스트리밍되거나 또는 달리 제공된다. 이러한 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들에 대해 적응된 통신 채널(1060) 및 통신 인터페이스(1050)를 통해 수신된다. 이러한 실시예들의 통신 채널(1060)은 전형적으로, 스트리밍 응용들 및 다른 오버-더-탑(over-the-top) 통신을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 접속된다. 다른 실시예들은 입력 블록(1130)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 또 다른 실시예들은 입력 블록(1130)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 전술한 바와 같이, 다양한 실시예들은 비-스트리밍 방식으로 데이터를 제공한다. 또한, 다양한 실시예들은 Wi-Fi 이외의 무선 네트워크들, 예를 들어 셀룰러 네트워크 또는 블루투스 네트워크를 사용한다.
시스템(1000)은 디스플레이(1100), 스피커들(1110), 및 다른 주변 디바이스들(1120)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다양한 실시예들의 디스플레이(1100)는, 예를 들어, 터치스크린 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 커브드(curved) 디스플레이, 및/또는 폴더블(foldable) 디스플레이 중 하나 이상을 포함한다. 디스플레이(1100)는 텔레비전, 태블릿, 랩톱, 셀 폰(모바일 폰), 또는 다른 디바이스를 위한 것일 수 있다. 디스플레이(1100)는 또한 (예를 들어, 스마트 폰에서와 같이) 다른 컴포넌트들과 통합될 수 있거나, 또는 별개일 수 있다(예를 들어, 랩톱을 위한 외부 모니터). 실시예들의 다양한 예들에서, 다른 주변 디바이스들(1120)은 독립형 디지털 비디오 디스크(또는 디지털 다기능 디스크)(두 용어들 모두에 대해, DVR), 디스크 플레이어, 스테레오 시스템 및/또는 조명 시스템 중 하나 이상을 포함한다. 다양한 실시예들은 시스템(1000)의 출력에 기초하여 기능을 제공하는 하나 이상의 주변 디바이스들(1120)을 사용한다. 예를 들어, 디스크 플레이어는 시스템(1000)의 출력을 재생하는 기능을 수행한다.
다양한 실시예들에서, 제어 신호들은, 시그널링, 예컨대, AV.Link, CEC(Consumer Electronics Control), 또는 사용자 개입이 있거나 또는 개입 없이 디바이스 대 디바이스 제어를 가능하게 하는 다른 통신 프로토콜들을 사용하여 시스템(1000)과 디스플레이(1100), 스피커들(1110), 또는 다른 주변 디바이스들(1120) 사이에서 통신된다. 출력 디바이스들은 각자의 인터페이스들(1070, 1080, 1090)을 통해 전용 접속들을 거쳐 시스템(1000)에 통신가능하게 커플링될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(1050)를 통해 통신 채널(1060)을 사용하여 시스템(1000)에 접속될 수 있다. 디스플레이(1100) 및 스피커들(1110)은, 예를 들어, 텔레비전과 같은 전자 디바이스에서 시스템(1000)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(1070)는, 예를 들어, 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(1100) 및 스피커(1110)는 대안적으로, 예를 들어, 입력(1130)의 RF 부분이 별개의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상과 별개일 수 있다. 디스플레이(1100) 및 스피커들(1110)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는 전용 출력 접속들을 통해 제공될 수 있다.
실시예들은 프로세서(1010)에 의해 또는 하드웨어에 의해 구현되는 컴퓨터 소프트웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 실시예들은 하나 이상의 집적 회로들에 의해 구현될 수 있다. 메모리(1020)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 광학 메모리 디바이스, 자기 메모리 디바이스, 반도체 기반 메모리 디바이스, 고정 메모리, 및 착탈식 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(1010)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티-코어 아키텍처에 기반한 프로세서들 중 하나 이상을 포괄할 수 있다.
다양한 구현예들이 디코딩을 수반한다. 본 출원에서 사용되는 바와 같이, "디코딩"은, 예를 들어, 디스플레이에 적합한 최종 출력을 생성하기 위해 수신된 인코딩된 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포괄할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행되는 프로세스들 중 하나 이상의 프로세스들, 예를 들어, 엔트로피 디코딩, 역양자화, 역변환, 및 차동 디코딩을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에 기술된 다양한 구현예들의 디코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들로서, 하나의 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 차동 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 엔트로피 디코딩과 차동 디코딩의 조합을 지칭한다. 어구 "디코딩 프로세스"가 동작들의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 대체적으로 보다 광의의 디코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
다양한 구현예들이 인코딩을 수반한다. "디코딩"에 관한 상기의 논의와 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은, 예를 들어, 인코딩된 비트스트림을 생성하기 위해 입력 비디오 시퀀스에 대해 수행된 프로세스들의 전부 또는 일부를 포괄할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 전형적으로 인코더에 의해 수행되는 프로세스들, 예를 들어, 파티셔닝, 차동 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에서 기술된 다양한 구현예들의 인코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들에서, 하나의 실시예에서, "인코딩"은 단지 엔트로피 인코딩을 지칭하며, 다른 실시예에서 "인코딩"은 단지 차동 인코딩을 지칭하고, 다른 실시예에서 "인코딩"은 차동 인코딩과 엔트로피 인코딩의 조합을 지칭한다. 어구 "인코딩 프로세스"가 동작들의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 대체적으로 보다 광의의 인코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
본 명세서에 사용된 바와 같은 신택스 요소들은 설명적 용어들임에 유의한다. 이와 같이, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
도면이 흐름도로서 제시될 때, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 그것은 또한 대응하는 방법/프로세스의 흐름도를 제공한다는 것을 이해해야 한다.
다양한 실시예들은 파라미터 모델(parametric model)들 또는 레이트 왜곡 최적화(rate distortion optimization, RDO)를 언급할 수 있다. 특히, 인코딩 프로세스 동안, 계산 복잡성의 제약들이 종종 주어지면, 레이트와 왜곡 사이의 균형 또는 트레이드오프가 보통 고려된다. 그것은 레이트 왜곡 최적화(RDO) 메트릭을 통해, 또는 최소 제곱 평균(Least Mean Square, LMS), 절대 오차 평균(Mean of Absolute Error, MAE), 또는 다른 그러한 측정들을 통해 측정될 수 있다. 레이트 왜곡 최적화는 보통, 레이트 및 왜곡의 가중화된 합인 레이트 왜곡 함수를 최소화하는 것으로서 공식화된다. 레이트 왜곡 최적화 문제를 해결하기 위한 상이한 접근법들이 있다. 예를 들어, 접근법들은, 코딩 및 디코딩 후 재구성된 신호의 코딩 비용 및 관련된 왜곡의 완전한 평가를 이용한, 모든 고려된 모드들 또는 코딩 파라미터들 값들을 포함하는 모든 인코딩 옵션들의 광범위한 테스트에 기초할 수 있다. 특히 재구성된 것이 아니라 예측 또는 예측 잔차 신호에 기초한 근사화된 왜곡의 계산과 함께 인코딩 복잡성을 덜기 위해, 더 빠른 접근법들이 또한 사용될 수 있다. 이들 2개의 접근법들의 혼합은 또한, 예컨대, 가능한 인코딩 옵션들 중 일부만에 대한 근사화된 왜곡 및 다른 인코딩 옵션들에 대한 완전한 왜곡을 사용함으로써 사용될 수 있다. 다른 접근법들은 가능한 인코딩 옵션들의 서브세트만을 평가한다. 보다 일반적으로, 많은 접근법들은 최적화를 수행하기 위해 다양한 기술들 중 임의의 기술을 채용하지만, 최적화가 반드시 코딩 비용과 관련된 왜곡 둘 모두에 대한 완전한 평가이지는 않다.
본 명세서에 기술된 실시예 및 양태는, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호에서 구현될 수 있다. 구현예의 단일 형태의 맥락에서 논의된다 하더라도(예를 들어, 방법으로서만 논의됨), 논의된 특징들의 구현예는 다른 형태들(예를 들어, 장치 또는 프로그램)에서 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 예를 들어, 방법들은 예를 들어 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 논리 디바이스를 포함하는, 일반적으로 프로세싱 디바이스들을 지칭하는 프로세서에서 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 셀 폰들, 휴대용/개인 디지털 어시스턴트들("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
"하나의 실시예" 또는 "일 실시예" 또는 "하나의 구현예" 또는 "일 구현예"뿐만 아니라 그의 다른 변형들에 대한 언급은, 실시예와 관련하여 기술된 특정 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 출원 전반에 걸친 다양한 곳에서 나타나는 어구 "하나의 실시예에서" 또는 "일 실시예에서" 또는 "하나의 구현예에서" 또는 "일 구현예에서"뿐만 아니라 임의의 다른 변형들의 출현들이 반드시 모두 동일한 실시예를 언급하는 것은 아니다.
또한, 본 출원은 다양한 피스들의 정보들을 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 피스들의 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동하는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 조각들의 정보를 "수신하는 것"을 지칭할 수 있다. 수신하는 것은 "액세스하는 것"과 마찬가지로 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로, 예를 들어 정보를 저장하는 동작, 정보를 프로세싱하는 동작, 정보를 송신하는 동작, 정보를 이동하는 동작, 정보를 복사하는 동작, 정보를 소거하는 동작, 정보를 계산하는 동작, 정보를 결정하는 동작, 정보를 예측하는 동작, 또는 정보를 추정하는 동작 동안 어떤 방식으로든 수반된다.
예를 들어 다음의 "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서 "/", "및/또는", 및 "적어도 하나" 중 임의의 것의 사용은 제1 열거된 옵션(A) 단독의 선택, 또는 제2 열거된 옵션(B) 단독의 선택, 또는 옵션들(A 및 B) 둘 모두의 선택을 포함하도록 의도됨을 이해해야 한다. 또 다른 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우들에서, 그러한 어구는 제1 열거된 옵션(A) 단독의 선택, 또는 제2 열거된 옵션(B) 단독의 선택, 또는 제3 열거된 옵션(C) 단독의 선택, 또는 제1 및 제2 열거된 옵션들(A 및 B) 단독의 선택, 또는 제1 및 제3 열거된 옵션들(A 및 C) 단독의 선택, 또는 제2 및 제3 열거된 옵션들(B 및 C) 단독의 선택, 또는 3개의 모든 옵션들(A, B 및 C)의 선택을 포함하도록 의도된다. 이는, 본 명세서에 기술된 바와 같은 많은 항목들에 대해, 본 명세서 및 관련 분야의 당업자에게 명백한 바와 같이 확장될 수 있다.
또한, 본 명세서에 사용된 바와 같이, 용어 "신호"는 특히 상응하는 디코더에 무언가를 나타내는 것을 지칭한다. 예를 들어, 소정 실시예들에서, 인코더는 복수의 변환들, 코딩 모드들 또는 플래그들 중 특정한 하나를 시그널링한다. 이러한 방식으로, 일 실시예에서, 동일한 변환, 파라미터, 또는 모드는 인코더 측 및 디코더 측 둘 모두에서 사용된다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 디코더에 특정 파라미터를 송신할 수 있다(명시적 시그널링). 반대로, 디코더가 이미 특정 파라미터뿐만 아니라 다른 것을 갖고 있다면, 단순히 디코더가 특정 파라미터를 알고 선택할 수 있게 하기 위해 송신 없이 시그널링이 사용될 수 있다(암시적 시그널링). 임의의 실제 기능의 송신을 회피함으로써, 다양한 실시예에서 비트 절약이 실현된다. 시그널링은 다양한 방식으로 달성될 수 있다는 것이 이해되어야 한다. 예를 들어, 하나 이상의 신택스 요소들, 플래그들 등이 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하는 데 사용된다. 전술된 표현이 단어 "신호"의 동사 형태와 관련되지만, 단어 "신호"는 또한 명사로서 본 명세서에서 사용될 수 있다.
당업자에게 명백한 바와 같이, 구현예들은, 예를 들어 저장되거나 송신될 수 있는 정보를 반송하도록 포맷화된 다양한 신호들을 생성할 수 있다. 예를 들어, 정보는 방법을 수행하기 위한 명령어들, 또는 기술된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 비트스트림을 전달하도록 포맷화될 수 있다. 그러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용함) 또는 기저대역 신호로서 포맷화될 수 있다. 포맷화는, 예를 들어, 데이터 스트림을 인코딩하는 것, 및 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 알려진 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.
선행 섹션들은 다양한 청구범위 카테고리들 및 유형들에 걸쳐서 다수의 실시예들을 기술한다. 이들 실시예의 특징은 단독으로 또는 임의의 조합으로 제공될 수 있다. 또한, 실시예들은 다양한 청구항 카테고리들 및 유형들에 걸쳐 단독으로 또는 임의의 조합으로 다음의 특징들, 디바이스들, 또는 태양들 중 하나 이상을 포함할 수 있다:
Figure pct00033
크로미넌스에 대한 모션 정보를 도출하기 위한 루미넌스 정보를 사용한 비디오 정보의 인코딩 및 디코딩.
전술된 인코딩 및 디코딩을 구현하기 위한 오토인코더들의 사용
적어도 하나의 기준 프레임을 갖는 전술된 오토인코더들의 사용.
YUV 4:2:0 비디오 포맷들에 대한 오토인코더 비디오 인코딩 및 디코딩.
기술된 신택스 요소, 또는 이들의 변형 중 하나 이상을 포함하는 비트스트림 또는 신호.
기술된 실시예들 중 임의의 것에 따라 생성된 신택스 이송 정보를 포함하는 비트스트림 또는 신호.
기술된 실시예들 중 임의의 것에 따라 생성하고/하거나 송신하고/하거나 수신하고/하거나 디코딩하는 것.
기술된 실시예들 중 임의의 것에 따른 방법, 프로세스, 장치, 명령어들을 저장하는 매체, 데이터를 저장하는 매체, 또는 신호.
디코더가 인코더에 의해 사용된 것에 대응하는 방식으로 디코딩 정보를 결정할 수 있게 하는 시그널링 신택스 요소들에 삽입하는 것.
기술된 신택스 요소, 또는 이들의 변형 중 하나 이상을 포함하는 비트스트림 또는 신호를 생성하고/하거나 송신하고/하거나 수신하고/하거나 디코딩하는 것.
기술된 임의의 실시예들에 따라 변환 방법(들)을 수행하는 TV, 셋톱 박스, 셀 폰, 태블릿, 또는 다른 전자 디바이스.
전술된 실시예들 중 임의의 것에 따라 변환 방법(들) 결정을 수행하고 (예를 들어, 모니터, 스크린, 또는 다른 유형의 디스플레이를 사용하여) 결과적인 이미지를 디스플레이하는 TV, 셋톱 박스, 셀 폰, 태블릿, 또는 다른 전자 디바이스.
인코딩된 이미지를 포함하는 신호를 수신하기 위한 채널을 선택, 대역제한, 또는 (예를 들어, 튜너를 사용하여) 튜닝하고, 기술된 실시예들 중 임의의 것에 따른 변환 방법(들)을 수행하는 TV, 셋톱 박스, 셀 폰, 태블릿, 또는 다른 전자 디바이스.
(예를 들어, 안테나를 사용하여) 인코딩된 이미지를 포함하는 무선 신호를 수신하고, 변환 방법(들)을 수행하는 TV, 셋톱 박스, 셀 폰, 태블릿, 또는 다른 전자 디바이스.

Claims (15)

  1. 방법으로서,
    현재 블록 및 적어도 하나의 기준 블록의 루미넌스 데이터를 연결하는 단계;
    연결된 루미넌스 데이터로부터 모션 정보를 결정하는 단계;
    상기 결정된 모션 정보를 인코딩하는 단계;
    상기 인코딩된 모션 정보를 다운샘플링하는 단계;
    적어도 하나의 기준 블록의 상기 다운샘플링된 인코딩된 모션 정보 및 크로미넌스 데이터에 기초하여 크로미넌스 데이터의 예측을 결정하는 단계;
    적어도 하나의 기준 블록의 상기 인코딩된 모션 정보 및 루미넌스 데이터에 기초하여 루미넌스 데이터의 예측을 결정하는 단계;
    상기 예측들에 기초하여 현재 블록의 잔차 데이터를 결정하는 단계; 및
    상기 잔차 데이터를, 상기 인코딩된 모션 정보를 또한 포함하는 비트스트림에 인코딩하는 단계를 포함하는, 방법.
  2. 장치로서,
    프로세서를 포함하고, 상기 프로세서는,
    현재 블록 및 적어도 하나의 기준 블록의 루미넌스 데이터를 연결하도록;
    연결된 루미넌스 데이터로부터 모션 정보를 결정하도록;
    상기 결정된 모션 정보를 인코딩하도록;
    상기 인코딩된 모션 정보를 다운샘플링하도록;
    적어도 하나의 기준 블록의 상기 다운샘플링된 인코딩된 모션 정보 및 크로미넌스 데이터에 기초하여 크로미넌스 데이터의 예측을 결정하도록;
    적어도 하나의 기준 블록의 상기 인코딩된 모션 정보 및 루미넌스 데이터에 기초하여 루미넌스 데이터의 예측을 결정하도록;
    상기 예측들에 기초하여 현재 블록의 잔차 데이터를 결정하도록; 그리고
    상기 잔차 데이터를, 상기 인코딩된 모션 정보를 또한 포함하는 비트스트림에 인코딩하도록 구성되는, 장치.
  3. 방법으로서,
    비트스트림으로부터 모션 정보를 디코딩하는 단계;
    상기 디코딩된 모션 정보를 다운샘플링하는 단계;
    적어도 하나의 기준 블록의 상기 다운샘플링된 디코딩된 모션 정보 및 크로미넌스 데이터에 기초하여 크로미넌스 데이터의 예측을 결정하는 단계;
    적어도 하나의 기준 블록의 상기 디코딩된 모션 정보 및 루미넌스 데이터에 기초하여 루미넌스 데이터의 예측을 결정하는 단계;
    잔차 정보를 디코딩하는 단계; 및
    상기 디코딩된 잔차 정보 및 상기 예측들을 사용하여 비디오 블록을 재구성하는 단계를 포함하는, 방법.
  4. 장치로서,
    프로세서를 포함하고, 상기 프로세서는,
    비트스트림으로부터 모션 정보를 디코딩하도록;
    상기 디코딩된 모션 정보를 다운샘플링하도록;
    적어도 하나의 기준 블록의 상기 다운샘플링된 디코딩된 모션 정보 및 크로미넌스 데이터에 기초하여 크로미넌스 데이터의 예측을 결정하도록;
    적어도 하나의 기준 블록의 상기 디코딩된 모션 정보 및 루미넌스 데이터에 기초하여 루미넌스 데이터의 예측을 결정하도록;
    잔차 정보를 디코딩하도록; 그리고
    상기 디코딩된 잔차 정보 및 상기 예측들을 사용하여 비디오 블록을 재구성하도록 구성되는, 장치.
  5. 제1항 또는 제3항의 방법, 또는 제2항 또는 제4항의 장치에 있어서, 상기 인코딩 및 디코딩은 오토인코더를 사용하여 수행되는, 방법 또는 장치.
  6. 제1항 또는 제3항의 방법, 또는 제2항 또는 제4항의 장치에 있어서, 상기 예측은,
    적어도 하나의 기준 프레임에 대해 가우시안 볼륨(Gaussian volume)을 계산하는 것;
    모션 정보에 대해 tanh 변환을 수행하는 것; 및
    예측을 생성하기 위해 상기 tanh 함수 출력에 대해 워핑 함수(warp function)를 수행하는 것을 포함하는, 방법 또는 장치.
  7. 제3항의 방법, 또는 제4항의 장치에 있어서, 모션 정보의 상기 디코딩은 적어도 하나의 전치 콘볼루션(transpose convolution) 및 적어도 하나의 정류된 선형 유닛 함수를 포함하는, 방법 또는 장치.
  8. 제6항에 있어서, 상기 워핑은 예측을 생성하기 위해 루미넌스 및 크로미넌스에 대해 별개인, 방법 또는 장치.
  9. 제1항 또는 제3항의 방법, 또는 제2항 또는 제4항의 장치에 있어서, 상기 루미넌스 및 크로미넌스 데이터는 YUV 4:4:4 포맷인, 방법 또는 장치.
  10. 제1항 또는 제3항의 방법, 또는 제2항 또는 제4항의 장치에 있어서, 새로운 블록을 생성하기 위해 적어도 하나의 기준 블록에 대해 파라미터 모델이 사용되는, 방법 또는 장치.
  11. 제7항에 있어서, 상기 디코딩은 마지막 적어도 하나의 콘볼루션 층에 대한 다수의 분기들로 분할되는, 방법 또는 장치.
  12. 디바이스로서,
    제1항에 따른 장치; 및
    (i) 신호를 수신하도록 구성된 안테나 - 신호는 비디오 블록을 포함함 -, (ii) 비디오 블록을 포함하는 수신된 신호를 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 및 (iii) 비디오 블록을 나타내는 출력을 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는, 디바이스.
  13. 프로세서를 사용한 재생을 위해, 제1항의 방법에 따라 또는 제2항의 장치에 의해 생성된 데이터 콘텐츠를 포함하는 비일시적 컴퓨터 판독가능 매체.
  14. 프로세서를 사용한 재생을 위해, 제1항의 방법에 따라 또는 제2항의 장치에 의해 생성된 비디오 데이터를 포함하는 신호.
  15. 프로그램이 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항의 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품.
KR1020237031789A 2021-03-18 2022-03-16 딥러닝 기반 yuv 비디오 압축을 위한 모션 흐름 코딩 KR20230157975A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163162779P 2021-03-18 2021-03-18
US63/162,779 2021-03-18
PCT/US2022/020503 WO2022197771A1 (en) 2021-03-18 2022-03-16 Motion flow coding for deep learning based yuv video compression

Publications (1)

Publication Number Publication Date
KR20230157975A true KR20230157975A (ko) 2023-11-17

Family

ID=81327338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237031789A KR20230157975A (ko) 2021-03-18 2022-03-16 딥러닝 기반 yuv 비디오 압축을 위한 모션 흐름 코딩

Country Status (5)

Country Link
US (1) US20240155148A1 (ko)
EP (1) EP4309367A1 (ko)
KR (1) KR20230157975A (ko)
CN (1) CN117044206A (ko)
WO (1) WO2022197771A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI734147B (zh) * 2018-07-20 2021-07-21 大陸商北京字節跳動網絡技術有限公司 基於更新的運動矢量的運動預測
WO2020216438A1 (en) * 2019-04-23 2020-10-29 Telefonaktiebolaget Lm Ericsson (Publ) A computer software module, a device and a method for accelerating inference for compressed videos

Also Published As

Publication number Publication date
EP4309367A1 (en) 2024-01-24
CN117044206A (zh) 2023-11-10
WO2022197771A1 (en) 2022-09-22
US20240155148A1 (en) 2024-05-09

Similar Documents

Publication Publication Date Title
CN113557730A (zh) 用于利用基于子块的局部光照补偿的视频编码和解码方法和装置
KR20210083353A (ko) 이웃 샘플 의존 파라메트릭 모델에 기초한 코딩 모드의 단순화
KR20220137964A (ko) 비디오 인코딩 또는 디코딩을 위한 신경 네트워크 기반 인트라 예측
CN113330747A (zh) 利用适应于加权预测的双向光流进行视频编码和解码的方法和装置
US20230254507A1 (en) Deep intra predictor generating side information
KR20230169239A (ko) 인공 신경망 기반 툴을 사용하여 이미지 및 비디오를 인코딩/디코딩하기 위한 방법 및 장치
JP7395497B2 (ja) コード化/復号化におけるデータ依存関係
CN112806011A (zh) 改进的虚拟时间仿射候选
KR20230025879A (ko) 신경 네트워크 기반 인트라 예측 모드에 대한 변환 프로세스의 적응
CN113545047A (zh) 帧内预测模式分区
CN112385229A (zh) 虚拟时间仿射候选
US20230396801A1 (en) Learned video compression framework for multiple machine tasks
KR20220123643A (ko) 삼각형 병합 모드에서의 서브-블록 병합 후보들
US20240155148A1 (en) Motion flow coding for deep learning based yuv video compression
KR20220035108A (ko) 행렬 기반 인트라 예측을 이용한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
US20240187640A1 (en) Temporal structure-based conditional convolutional neural networks for video compression
JP7509773B2 (ja) 二重木を伴う現ピクチャ参照ブロックベクトル初期化
US20240214553A1 (en) Spatial local illumination compensation
KR20240072180A (ko) Isp 모드를 사용한 템플릿 기반 인트라 모드 도출(timd)의 확장
KR20240088795A (ko) 디코더 측 화면내 모드 도출에서의 각도 이산화 개선
WO2024118933A1 (en) Ai-based video conferencing using robust face restoration with adaptive quality control
KR20220088888A (ko) 인트라 예측을 위한 신경망의 반복 트레이닝
KR20240099324A (ko) 기준 픽처 리샘플링을 사용한 비디오 인코딩 및 디코딩
JP2022540659A (ja) ルマツークロマ量子化パラメータテーブルシグナリング
CN116171577A (zh) 深度预测修正