KR20220077931A - 컨텍스트 적응 변환 세트 - Google Patents

컨텍스트 적응 변환 세트 Download PDF

Info

Publication number
KR20220077931A
KR20220077931A KR1020227016396A KR20227016396A KR20220077931A KR 20220077931 A KR20220077931 A KR 20220077931A KR 1020227016396 A KR1020227016396 A KR 1020227016396A KR 20227016396 A KR20227016396 A KR 20227016396A KR 20220077931 A KR20220077931 A KR 20220077931A
Authority
KR
South Korea
Prior art keywords
transform
transform set
block
coded
video
Prior art date
Application number
KR1020227016396A
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 KR20220077931A publication Critical patent/KR20220077931A/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/18Methods 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 set of transform coefficients
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

코딩된 비트스트림의 코딩 및 디코딩을 위한 시스템들 및 방법들이 제공된다. 방법은 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하는 단계를 포함한다. 디코딩은 하나 이상의 이전에 디코딩된 이웃 블록으로부터의 또는 이전에 디코딩된 픽처로부터의 적어도 하나의 이웃 재구성된 샘플에 기초하여 변환 세트를 선택하는 것 및 변환 세트로부터의 변환을 이용하여 블록의 계수들을 역 변환하는 것을 포함한다.

Description

컨텍스트 적응 변환 세트
[관련 출원들에 대한 상호 참조]
본 출원은 2020년 9월 10일자로 출원된 미국 가출원 제63/076,817호 및 2020년 9월 11일자로 출원된 미국 가출원 제63/077,381호에 대해 우선권을 주장하는, 2021년 6월 22일자로 출원된 미국 특허 출원 제17/354,731호에 대해 우선권의 이익을 주장하며, 이들 출원의 개시내용은 그 전체가 본 명세서에 참고로 포함된다.
[기술분야]
본 개시내용의 실시예들은 진보된 비디오 코딩 기술의 세트에 관한 것으로, 더 구체적으로는 1차 및 2차 변환 세트 선택 방식에 관한 것이다.
AV1(AOMedia Video1)은 인터넷을 통한 비디오 송신을 위해 설계된 개방된 비디오 코딩 포맷이다. 그것은 반도체 회사들, 주문형 비디오 제공자들, 비디오 콘텐츠 제작자들, 소프트웨어 개발 회사들 및 웹 브라우저 벤더들을 포함하는 2015년에 설립된 컨소시엄인, AOMedia(Alliance for Open Media)에 의해 VP9에 대한 후임으로서 개발되었다. AV1 프로젝트의 컴포넌트들 중 다수는 Alliance 멤버들에 의한 이전의 연구 노력으로부터 제공되었다. 개별 기여자들은 실험적 기술 플랫폼들을 수년 전에 시작하였다: Xiph의/Mozilla의 Daala가 2010년에 코드를 발표하였고, Google의 실험적 VP9 진화 프로젝트 VP10이 2014년 9월 12일에 공표되었고, Cisco의 Thor가 2015년 8월 11일에 발표되었다. VP9의 코드베이스 상에 구축하여, AV1은 추가적인 기술들을 통합하며, 이들 중 몇몇은 이러한 실험적 포맷들로 개발되었다. AV1 참조 코덱의 제1 버전인 버전 0.1.0은 2016년 4월 7일에 발표되었다. Alliance는 참조, 소프트웨어 기반 인코더 및 디코더와 함께, 2018년 3월 28일에 AV1 비트스트림 사양의 릴리즈를 공표하였다. 2018년 6월 25일에, 사양의 검증된 버전 1.0.0이 발표되었다. 2019년 1월 8일에, "AV1 비트스트림 및 디코딩 프로세스 사양"이 릴리즈되었으며, 이것은 사양의 Errata 1을 갖는 검증된 버전 1.0.0이다. AV1 비트스트림 사양은 참조 비디오 코덱을 포함한다. "AV1 Bitstream & Decoding Process Specification"(Version 1.0.0 with Errata 1), The Alliance for Open Media (2019년 1월 8일)은 그 전체가 본 명세서에 참고로 포함된다.
HEVC(High Efficiency Video Coding) 표준이 ITU-T VCEG(Video Coding Experts Group) 및 ISO/IEC MPEG(Moving Picture Experts Group) 표준화 기구들에 의해 공동으로 개발되고 있다. HEVC 표준을 개발하기 위해, 이들 2개의 표준화 기구는 JCT-VC(Joint Collaborative Team on Video Coding)라고 알려진 제휴 하에서 함께 작업한다. HEVC 표준의 제1 판은 2013년 1월에 완성되어, ITU-T와 ISO/IEC 양쪽 모두에 의해 발표된 제휴된 텍스트라는 결과를 낳았다. 그 후에, 향상된 정밀도 및 컬러 포맷 지원, 스케일러블 비디오 코딩, 및 3-D/스테레오/멀티뷰 비디오 코딩을 갖는 확장된 범위의 사용처들을 포함하여, 몇몇 추가적인 응용 시나리오들을 지원하도록 표준을 확장하기 위해 추가적인 작업이 조직되었다. ISO/IEC에서, HEVC 표준은 MPEG-H 파트 2(ISO/IEC 23008-2)가 되었고 ITU-T에서는 ITU-T 권고안 H.265가 되었다. HEVC 표준에 대한 사양 "SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services -Coding of moving video", ITU-T H.265, International Telecommunication Union(2015년 4월)은 그 전체가 본 명세서에 참고로 포함된다.
ITU-T VCEG(Q6/16) 및 ISO/IEC MPEG(JTC1/SC 29/WG 11)은 2013년(버전 1), 2014년(버전 2), 2015년(버전 3), 및 2016년(버전 4)에 H.265/HEVC(High Efficiency Video Coding) 표준을 발표하였다. 그 이후에, 이들은 압축 능력에서 HEVC를 상당히 능가할 수 있는 미래의 비디오 코딩 기술의 표준화에 대한 잠재적 필요성을 연구해 오고 있다. 2017년 10월에, 이들은 HEVC를 넘어서는 능력을 갖는 비디오 압축에 대한 공동 CfP(Call for Proposals)를 발행했다. 2018년 2월 15까지, SDR(standard dynamic range)에 대한 22개의 CfP 응답, HDR(high dynamic range)에 대한 12개의 CfP 응답, 및 360개의 비디오 카테고리에 대한 12개의 CfP 응답이 제각기 제출되었다. 2018년 4월에, 모든 수신된 CfP 응답들은 122 MPEG/10th JVET(Joint Video Exploration Team-Joint Video Expert Team) 회의에서 평가되었다. 주의 깊은 평가에 의해, JVET는 HEVC를 넘어서는 차세대 비디오 코딩, 즉 소위 VVC(Versatile Video Coding)의 표준화를 공식적으로 론칭하였다. VVC 표준에 대한 사양, "Versatile Video Coding(Draft 7)", JVET-P2001-vE, Joint Video Experts Team(2019년 10월)은 그 전체가 본 명세서에 참고로 포함된다. VVC 표준에 대한 도 다른 사양, "Versatile Video Coding(Draft 10)", JVET-S2001-vE, Joint Video Experts Team(2020년 7월)은 그 전체가 본 명세서에 참고로 포함된다.
실시예들에 따르면, 이웃 재구성된 샘플들을 이용하는 1차 및 2차 변환 세트 선택 방식들이 제공된다. 실시예들에 따르면, 이미지 및 비디오 압축을 위한 신경망 기반 변환 세트 선택 방식이 제공된다.
하나 이상의 실시예에 따르면, 적어도 하나의 프로세서에 의해 수행되는 방법이 제공된다. 방법은 코딩된 비트스트림을 수신하는 단계, 및 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하는 단계를 포함한다. 디코딩은: 하나 이상의 이전에 디코딩된 이웃 블록으로부터의 또는 이전에 디코딩된 픽처로부터의 적어도 하나의 이웃 재구성된 샘플에 기초하여 변환 세트를 선택하는 것; 및 변환 세트로부터의 변환을 사용하여 블록의 계수들을 역변환함으로써 수신된 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하게 야기하도록 구성된다.
하나 이상의 실시예에 따르면, 변환 세트를 선택하는 것은 예측 모드의 코딩된 정보에 추가로 기초한다.
실시예에 따르면, 코딩된 정보는 인터 예측 모드의 것이다.
실시예에 따르면, 변환 세트를 선택하는 것은: 제1 코딩된 정보에 기초하여 변환 세트들의 그룹으로부터 변환 세트들의 서브 그룹을 선택하는 것; 및 서브 그룹으로부터 변환 세트를 선택하는 것을 포함한다.
실시예에 따르면, 서브그룹으로부터 변환 세트를 선택하는 것은 제2 코딩된 정보에 기초하여 변환 세트를 선택하는 것을 포함하고, 방법은 코딩된 비트스트림에서 시그널링된 인덱스 값에 기초하여 변환 세트로부터 변환 후보를 선택하는 단계를 추가로 포함한다.
실시예에 따르면, 적어도 하나의 이웃 재구성된 샘플은 하나 이상의 이전에 디코딩된 이웃 블록으로부터의 재구성된 샘플을 포함한다.
실시예에 따르면, 변환 세트를 선택하는 것은 변환 세트들의 그룹으로부터 변환 세트를 선택하는 것을 포함하고, 변환 세트들의 그룹은 2차 변환 커널들만을 포함한다.
실시예에 따르면, 2차 변환 커널들은 분리가능하지 않다.
실시예에 따르면, 변환 세트를 선택하는 것은 적어도 하나의 이웃 재구성된 샘플의 정보를 신경망에 입력하고, 신경망으로부터 출력되는 인덱스에 기초하여 변환 세트를 식별함으로써 수행된다.
실시예에 따르면, 변환 세트는 2차 변환이다.
하나 이상의 실시예에 따르면, 시스템이 제공된다. 시스템은 컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 컴퓨터 프로그램 코드에 액세스하고 컴퓨터 프로그램 코드에 의해 지시된 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함한다. 컴퓨터 프로그램 코드는 적어도 하나의 프로세서로 하여금 수신되는 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하게 야기하도록 구성된 디코딩 코드를 포함한다. 디코딩 코드는: 적어도 하나의 프로세서로 하여금 하나 이상의 이전에 디코딩된 이웃 블록으로부터 또는 이전에 디코딩된 픽처로부터 적어도 하나의 이웃 재구성된 샘플에 기초하여 변환 세트를 선택하게 야기하도록 구성된 변환 세트 선택 코드; 및 적어도 하나의 프로세서로 하여금 변환 세트로부터의 변환을 사용하여 블록의 계수들을 역변환하게 야기하도록 구성된 변환 코드를 포함한다.
실시예에 따르면, 변환 세트는 예측 모드의 코딩된 정보에 추가로 기초하여 선택된다.
실시예에 따르면, 코딩된 정보는 인터 예측 모드의 것이다.
실시예에 따르면, 변환 세트 선택 코드는 적어도 하나의 프로세서로 하여금: 제1 코딩된 정보에 기초하여 변환 세트들의 그룹으로부터 변환 세트들의 서브 그룹을 선택하고; 및 서브 그룹으로부터 변환 세트를 선택하게 야기하도록 구성된다.
실시예에 따르면, 변환 세트 선택 코드는 적어도 하나의 프로세서로 하여금 제2 코딩된 정보에 기초하여 변환 세트를 선택하게 야기하도록 구성되고, 디코딩 코드는 적어도 하나의 프로세서로 하여금 코딩된 비트스트림에서 시그널링된 인덱스 값에 기초하여 변환 세트로부터 변환 후보를 선택하게 야기하도록 구성된 변환 선택 코드를 추가로 포함한다.
실시예에 따르면, 적어도 하나의 이웃 재구성된 샘플은 하나 이상의 이전에 디코딩된 이웃 블록으로부터의 재구성된 샘플을 포함한다.
실시예에 따르면, 변환 세트 선택 코드는 변환 세트들의 그룹으로부터 변환 세트를 선택하도록 구성되고, 변환 세트들의 그룹은 2차 변환 커널들만을 포함한다.
실시예에 따르면, 2차 변환 커널들은 분리가능하지 않다.
실시예에 따르면, 변환 세트 선택 코드는 적어도 하나의 프로세서로 하여금 적어도 하나의 이웃 재구성된 샘플의 정보를 신경망에 입력하고, 신경망으로부터 출력되는 인덱스에 기초하여 변환 세트를 식별하게 야기하도록 구성된다.
하나 이상의 실시예에 따르면, 컴퓨터 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체가 제공된다. 컴퓨터 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금: 하나 이상의 이전에 디코딩된 이웃 블록으로부터 또는 이전에 디코딩된 픽처로부터 적어도 하나의 이웃 재구성된 샘플에 기초하여 변환 세트를 선택하고; 및 변환 세트로부터의 변환을 사용하여 블록의 계수들을 역변환함으로써 수신된 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하게 야기하도록 구성된다.
개시된 주제의 추가의 특징들, 본질 및 다양한 이점들이 다음의 상세한 설명 및 첨부 도면들로부터 더 명백할 것이다.
도 1은 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 2는 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 3은 실시예에 따른 디코더의 단순화된 블록도의 개략도이다.
도 4는 실시예에 따른 인코더의 단순화된 블록도의 개략도이다.
도 5a는 VP9의 제1 예시적인 파티션 구조를 도시하는 도면이다.
도 5b는 VP9의 제2 예시적인 파티션 구조를 도시하는 도면이다.
도 5c는 VP9의 제3 예시적인 파티션 구조를 도시하는 도면이다.
도 5d는 VP9의 제4 예시적 파티션 구조를 도시하는 도면이다.
도 6a는 AV1의 제1 예시적인 파티션 구조를 도시하는 도면이다.
도 6b는 AV1의 제2 예시적인 파티션 구조를 도시하는 도면이다.
도 6c는 AV1의 제3 예시적인 파티션 구조를 도시하는 도면이다.
도 6d는 AV1의 제4 예시적인 파티션 구조를 도시하는 도면이다.
도 6e는 AV1의 제5 예시적인 파티션 구조를 도시하는 도면이다.
도 6f는 AV1의 제6 예시적인 파티션 구조를 도시하는 도면이다.
도 6g는 AV1의 제7 예시적인 파티션 구조를 도시하는 도면이다.
도 6h는 AV1의 제8 예시적인 파티션 구조를 도시하는 도면이다.
도 6i는 AV1의 제9 예시적인 파티션 구조를 도시하는 도면이다.
도 6j는 AV1의 제10 예시적인 파티션 구조를 도시하는 도면이다.
도 7은 AV1에서의 8개의 공칭 각도를 도시하는 도면이다.
도 8은 현재 블록 및 샘플들을 도시하는 도면이다.
도 9는 예시적인 재귀적 인트라 필터링 모드들을 도시하는 도면이다.
도 10은 코딩 블록 유닛에 인접한 참조 라인들을 도시하는 도면이다.
도 11은 AV1 하이브리드 변환 커널들 및 그들의 가용성들의 표이다.
도 12는 저주파수 분리가능하지 않은 변환 프로세스의 도면이다.
도 13은 행렬의 도시이다.
도 14는 커널과 이미지의 2차원 컨볼루션을 설명하기 위한 도면이다.
도 15는 이미지의 패치의 최대 풀링을 도시하기 위한 도면이다.
도 16a는 제1 인트라 디코딩 프로세스를 도시하는 도면이다.
도 16b는 제2 인트라 디코딩 프로세스를 도시하는 도면이다.
도 17은 컨볼루션 신경망 필터 아키텍처의 예를 도시하는 도면이다.
도 18은 예시적인 조밀한 잔차 네트워크의 도면이다.
도 19는 조밀한 잔차 유닛 아키텍처의 예를 도시하는 도면이다.
도 20은 제1 처리를 도시하는 도면이다.
도 21은 제2 처리를 도시하는 도면이다.
도 22는 인트라 예측 모드로부터 변환 세트 인덱스로의 매핑의 표이다.
도 23a는 비교예에 따른 제1 잔차 패턴의 도면이다.
도 23b는 비교예에 따른 제2 잔차 패턴의 도면이다.
도 23c는 비교예에 따른 제3 잔차 패턴의 도면이다.
도 23d는 비교예에 따른 제4 잔차 패턴의 도면이다.
도 24는 본 개시내용의 실시예에 따른 디코더의 개략도이다.
도 25는 본 개시내용의 실시예들을 구현하기에 적합한 컴퓨터 시스템의 도면이다.
본 개시내용에서, 용어 "블록"은 예측 블록, 코딩 블록, 또는 CU(coding unit)을 의미할 수 있다. 여기서 용어 "블록"은 또한 변환 블록을 지칭하기 위해 사용될 수 있다.
본 개시내용에서, 용어 "변환 세트"는 변환 커널(또는 후보) 옵션들의 그룹을 지칭한다. 변환 세트는 하나 이상의 변환 커널(또는 후보들) 옵션을 포함할 수 있다. 본 개시내용의 실시예들에 따르면, 하나보다 많은 변환 옵션이 이용가능할 때, 변환 세트에서의 변환 옵션들 중 어느 것이 현재 블록에 대해 적용되는지를 표시하기 위해 인덱스가 시그널링될 수 있다.
본 개시내용에서, 용어 "예측 모드 세트"는 예측 모드 옵션들의 그룹을 지칭한다. 예측 모드 세트는 하나 이상의 예측 모드 옵션을 포함할 수 있다. 본 개시내용의 실시예들에 따라, 하나보다 많은 예측 모드 옵션이 이용 가능할 때, 예측 모드 세트에서의 예측 모드 옵션들 중 어느 것이 예측을 수행하기 위해 현재 블록에 대해 적용되는지를 표시하기 위해 인덱스가 추가로 시그널링될 수 있다.
본 개시내용에서, 용어 "이웃 재구성된 샘플 세트"는 이전에 디코딩된 이웃 블록들로부터의 재구성된 샘플들 또는 이전에 디코딩된 픽처에서의 재구성된 샘플들의 그룹을 지칭한다.
본 개시내용에서, 용어 "신경망"은 "비디오 코딩을 위한 딥 러닝"을 참조하여 본 명세서에 설명된 바와 같이, 하나 또는 다중의 계층을 갖는 데이터 처리 구조의 일반적인 개념을 지칭한다. 본 개시내용의 실시예들에 따르면, 임의의 신경망이 실시예들을 구현하도록 구성될 수 있다.
도 1은 본 개시내용의 실시예에 따른 통신 시스템(100)의 단순화된 블록도를 예시한다. 시스템(100)은 네트워크(150)를 통해 상호연결되는 적어도 2개의 단말(110, 120)을 포함할 수 있다. 데이터의 단방향 송신을 위해, 제1 단말(110)은 네트워크(150)를 통해 다른 단말(120)에의 송신을 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말(120)은 네트워크(150)로부터 다른 단말의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하고 복구된 비디오 데이터를 디스플레이할 수 있다. 단방향 데이터 송신은 미디어 서빙 응용들(media serving applications) 등에서 흔한 것일 수 있다.
도 1은, 예를 들어, 영상회의(videoconferencing) 동안 발생할 수 있는 코딩된 비디오의 양방향 송신을 지원하기 위해 제공되는 제2 쌍의 단말들(130, 140)을 예시한다. 데이터의 양방향 송신을 위해, 각각의 단말(130, 140)은 네트워크(150)를 통해 다른 단말에의 송신을 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말(130, 140)은 다른 단말에 의해 송신되는 코딩된 비디오 데이터를 또한 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있고, 복구된 비디오 데이터를 로컬 디스플레이 디바이스에서 디스플레이할 수 있다.
도 1에서, 단말들(110-140)은 서버들, 개인용 컴퓨터들, 및 스마트폰들, 및/또는 임의의 다른 타입의 단말로서 예시될 수 있다. 예를 들어, 단말들(110-140)은 랩톱 컴퓨터들, 태블릿 컴퓨터들, 미디어 플레이어들 및/또는 전용 영상 회의 장비일 수 있다. 네트워크(150)는, 예컨대 유선 및/또는 무선 통신 네트워크들을 포함하여, 단말들(110-140) 사이에서 코딩된 비디오 데이터를 운반하는 임의의 수의 네트워크를 표현한다. 통신 네트워크(150)는 회선 교환(circuit-switched) 및/또는 패킷 교환(packet-switched) 채널들에서 데이터를 교환할 수 있다. 대표적인 네트워크들은 통신 네트워크들, 근거리 네트워크들, 광역 네트워크들, 및/또는 인터넷을 포함한다. 본 논의의 목적을 위해, 네트워크(150)의 아키텍처 및 토폴로지는 아래에서 본 명세서에서 설명되지 않는 한 본 개시내용의 동작에 중요하지 않을 수 있다.
도 2는, 개시된 주제를 위한 응용의 예로서, 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 주제는, 예를 들어, 영상 회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함하는 디지털 미디어 상의 압축된 비디오의 저장 등을 포함하여, 다른 비디오 인에이블 응용들에 동등하게 적용가능할 수 있다.
도 2에 예시된 바와 같이, 스트리밍 시스템(200)은 비디오 소스(201) 및 인코더(203)를 포함할 수 있는 캡처 서브시스템(213)을 포함할 수 있다. 비디오 소스(201)는, 예를 들어, 디지털 카메라일 수 있고, 압축되지 않은 비디오 샘플 스트림(202)을 생성하도록 구성될 수 있다. 압축되지 않은 비디오 샘플 스트림(202)은 인코딩된 비디오 비트스트림들과 비교할 때 높은 데이터 볼륨(high data volume)을 제공할 수 있고, 카메라(201)에 결합된 인코더(203)에 의해 처리될 수 있다. 인코더(203)는 아래에서 더 상세히 설명되는 바와 같이 개시된 주제의 양태들을 가능하게 하거나 구현하기 위해 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 인코딩된 비디오 비트스트림(204)은 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨을 포함할 수 있고, 미래의 사용을 위해 스트리밍 서버(205) 상에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(206)는 스트리밍 서버(205)에 액세스하여 인코딩된 비디오 비트스트림(204)의 사본들일 수 있는 비디오 비트 스트림들(209)을 검색할 수 있다.
실시예들에서, 스트리밍 서버(205)는 또한 MANE(Media-Aware Network Element)로서 기능할 수 있다. 예를 들어, 스트리밍 서버(205)는 잠재적으로 상이한 비트스트림들을 스트리밍 클라이언트들(206) 중 하나 이상에 맞춤화하기 위해 인코딩된 비디오 비트스트림(204)을 프루닝(prune)하도록 구성될 수 있다. 실시예들에서, MANE는 스트리밍 시스템(200)에서 스트리밍 서버(205)와 별개로 제공될 수 있다.
스트리밍 클라이언트들(206)은 비디오 디코더(210) 및 디스플레이(212)를 포함할 수 있다. 비디오 디코더(210)는, 예를 들어, 인코딩된 비디오 비트스트림(204)의 인커밍(incoming) 사본인 비디오 비트스트림(209)을 디코딩하고, 디스플레이(212) 또는 다른 렌더링 디바이스(묘사되지 않음) 상에 렌더링될 수 있는 아웃고잉(outgoing) 비디오 샘플 스트림(211)을 생성할 수 있다. 일부 스트리밍 시스템들에서, 비디오 비트스트림들(204, 209)은 특정 비디오 코딩/압축 표준들에 따라 인코딩될 수 있다. 그러한 표준들의 예들은 ITU-T 권고안 H.265를 포함하지만, 이에 제한되지는 않는다. VVC(Versatile Video Coding)로서 비공식적으로 알려진 비디오 코딩 표준이 개발 중이다. 본 개시내용의 실시예들은 VVC의 맥락에서 사용될 수 있다.
도 3은 본 개시내용의 실시예에 따른 디스플레이(212)에 부착되는 비디오 디코더(210)의 예시적인 기능 블록도를 도시한다.
비디오 디코더(210)는 채널(312), 수신기(310), 버퍼 메모리(315), 엔트로피 디코더/파서(320), 스케일러/역변환 유닛(351), 인트라 예측 유닛(352), 모션 보상 예측 유닛(353), 집계기(aggregator)(355), 루프 필터 유닛(356), 참조 픽처 메모리(357), 및 현재 픽처 메모리()를 포함할 수 있다. 적어도 하나의 실시예에서, 비디오 디코더(210)는 집적 회로, 일련의 집적 회로들, 및/또는 다른 전자 회로를 포함할 수 있다. 비디오 디코더(210)는 또한, 연관된 메모리들을 갖는 하나 이상의 CPU 상에서 실행되는 소프트웨어로 부분적으로 또는 전체적으로 구체화될 수 있다.
이 실시예 및 다른 실시예들에서, 수신기(310)는 디코더(210)가 한번에 하나의 코딩된 비디오 시퀀스를 디코딩할 하나 이상의 코딩된 비디오 시퀀스를 수신할 수 있으며, 여기서 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스들과 독립적이다. 코딩된 비디오 시퀀스는 인코딩된 비디오 데이터를 저장하는 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(312)로부터 수신될 수 있다. 수신기(310)는 인코딩된 비디오 데이터를 다른 데이터, 예를 들어, 코딩된 오디오 데이터 및/또는 보조 데이터 스트림들과 함께 수신할 수 있고, 이들은 그것들 각자의 사용 엔티티들(묘사되지 않음)에 포워딩될 수 있다. 수신기(310)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터를 방지하기 위해, 수신기(310)와 엔트로피 디코더/파서(320)(이하 "파서(parser)") 사이 내에 버퍼 메모리(315)가 결합될 수 있다. 수신기(310)가 충분한 대역폭 및 제어가능성의 저장/포워드 디바이스로부터, 또는 등시동기식 네트워크(isosynchronous network)로부터 데이터를 수신하고 있을 때, 버퍼(315)는 사용되지 않을 수 있거나, 작을 수 있다. 인터넷과 같은 최선 노력 패킷 네트워크들(best effort packet networks) 상에서의 사용을 위해, 버퍼(315)가 요구될 수 있고, 비교적 클 수 있으며, 적응적 크기의 것일 수 있다.
비디오 디코더(210)는 심벌들(321)을 엔트로피 코딩된 비디오 시퀀스로부터 재구성하기 위한 파서(320)를 포함할 수 있다. 그 심벌들의 카테고리들은, 예를 들어, 디코더(210)의 동작을 관리하기 위해 사용되는 정보, 및 잠재적으로, 도 2에 예시된 바와 같은 디코더에 결합될 수 있는 디스플레이(212)와 같은 렌더링 디바이스를 제어하기 위한 정보를 포함한다. 렌더링 디바이스(들)에 대한 제어 정보는, 예를 들어, SEI(Supplementary Enhancement Information) 메시지들 또는 VUI(Video Usability Information) 파라미터 세트 프래그먼트들(묘사되지 않음)의 형태일 수 있다. 파서(320)는 수신되는 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고, 가변 길이 코딩, 허프만 코딩, 컨텍스트 감도가 있거나 없는 산술 코딩 등을 포함하여 본 기술분야의 통상의 기술자에게 잘 알려진 원리들을 따를 수 있다. 파서(320)는, 코딩된 비디오 시퀀스로부터, 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 비디오 디코더에서의 픽셀들의 서브그룹들 중 적어도 하나에 대한 서브그룹 파라미터들의 세트를 추출할 수 있다. 서브그룹들은 픽처 그룹들(Groups of Pictures, GOPs), 픽처들, 타일들, 슬라이스들, 매크로블록들, 코딩 유닛들(Coding Units, CUs), 블록들, 변환 유닛들(Transform Units, TUs), 예측 유닛들(Prediction Units, PUs) 등을 포함할 수 있다. 파서(320)는 또한 코딩된 비디오 시퀀스로부터 변환 계수들, 양자화기 파라미터 값들, 모션 벡터들 등과 같은 정보를 추출할 수 있다.
파서(320)는 버퍼(315)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여, 심벌들(321)을 생성할 수 있다.
심벌들(321)의 재구성은 코딩된 비디오 픽처 또는 그것의 부분들의 타입(예컨대: 인터 및 인트라 픽처, 인터 및 인트라 블록), 및 다른 인자들에 의존하여 다중의 상이한 유닛을 수반할 수 있다. 어느 유닛들이 수반되는지, 그리고 어떻게 그것들이 수반되는지는 파서(320)에 의해 코딩된 비디오 시퀀스로부터 파싱된 서브그룹 제어 정보에 의해 제어될 수 있다. 파서(320)와 아래의 다중 유닛 사이의 그러한 서브그룹 제어 정보의 흐름은 명확성을 위해 묘사되어 있지 않다.
이미 언급된 기능 블록들 이외에, 디코더(210)는 아래에 설명되는 바와 같이 개념적으로 다수의 기능 유닛으로 세분될 수 있다. 상업적 제약 하에서 동작하는 실제 구현에서, 이들 유닛 중 다수는 서로 밀접하게 상호작용하고, 적어도 부분적으로 서로 통합될 수 있다. 그러나, 개시된 주제를 설명하기 위한 목적으로는, 아래의 기능 유닛들로의 개념적 세분(subdivision)이 적절하다.
하나의 유닛은 스케일러/역변환 유닛(351)일 수 있다. 스케일러/역변환 유닛(351)은, 파서(320)로부터의 심벌(들)(321)로서, 어느 변환을 사용할지, 블록 크기, 양자화 인자, 양자화 스케일링 행렬들(quantization scaling matrices) 등을 포함하는, 제어 정보뿐만 아니라 양자화된 변환 계수를 수신할 수 있다. 스케일러/역변환 유닛(351)은 집계기(aggregator)(355)에 입력될 수 있는 샘플 값들을 포함하는 블록들을 출력할 수 있다.
일부 경우들에서, 스케일러/역변환(351)의 출력 샘플들은 인트라 코딩된 블록에 관련될 수 있다; 즉: 이전에 재구성된 픽처들로부터의 예측 정보를 이용하는 것이 아니라, 현재 픽처의 이전에 재구성된 부분들로부터의 예측 정보를 이용할 수 있는 블록. 그러한 예측 정보는 인트라 픽처 예측 유닛(352)에 의해 제공될 수 있다. 일부 경우들에서, 인트라 픽처 예측 유닛(352)은 현재 픽처 메모리(358)로부터의 현재 (부분적으로 재구성된) 픽처로부터 페치된 주위의 이미 재구성된 정보를 사용하여, 재구성 중인 블록의 동일한 크기 및 형상의 블록을 생성한다. 집계기(355)는, 일부 경우들에서, 샘플당 기준으로, 인트라 예측 유닛(352)이 생성한 예측 정보를 스케일러/역변환 유닛(351)에 의해 제공되는 출력 샘플 정보에 더한다.
다른 경우들에서, 스케일러/역변환 유닛(351)의 출력 샘플들은 인터 코딩되고 잠재적으로 모션 보상된 블록에 관련될 수 있다. 그러한 경우에, 모션 보상 예측 유닛(353)은 참조 픽처 메모리(357)에 액세스하여 예측을 위해 사용되는 샘플들을 페치할 수 있다. 블록에 관련된 심벌들(321)에 따라 페치된 샘플들을 모션 보상한 후에, 이들 샘플은 집계기(355)에 의해 스케일러/역변환 유닛(351)의 출력(이 경우 잔차 샘플들 또는 잔차 신호라고 불림)에 더해져서 출력 샘플 정보를 생성할 수 있다. 모션 보상 예측 유닛(353)이 그로부터 예측 샘플들을 페치하는 참조 픽처 메모리(357) 내의 어드레스들은 모션 벡터들에 의해 제어될 수 있다. 모션 벡터들은, 예를 들어, X, Y, 및 참조 픽처 성분들을 가질 수 있는 심벌들(321)의 형태로 모션 보상 예측 유닛(353)에 이용가능할 수 있다. 모션 보상은 또한 서브샘플 정확한 모션 벡터들이 사용 중일 때 참조 픽처 메모리(357)로부터 페치된 샘플 값들의 보간, 모션 벡터 예측 메커니즘 등을 포함할 수 있다.
집계기(355)의 출력 샘플들은 루프 필터 유닛(356) 내의 다양한 루프 필터링 기법들을 겪을 수 있다. 비디오 압축 기술들은, 파서(320)로부터의 심벌들(321)로서 루프 필터 유닛(356)에 이용가능하게 되고 코딩된 비디오 비트스트림에 포함된 파라미터들에 의해 제어되지만, 코딩된 픽처 또는 코딩된 비디오 시퀀스의(디코딩 순서로) 이전 부분들의 디코딩 동안 획득된 메타-정보에 응답할 뿐만 아니라, 이전에 재구성된 및 루프-필터링된 샘플 값들에 응답할 수 있는 인-루프 필터(in-loop filter) 기술들을 포함할 수 있다.
루프 필터 유닛(356)의 출력은 디스플레이(212)와 같은 렌더링 디바이스에 출력될 뿐만 아니라 미래의 인터-픽처 예측에서 사용하기 위해 참조 픽처 메모리(357)에 저장될 수 있는 샘플 스트림일 수 있다.
특정 코딩된 픽처들은, 일단 완전히 재구성되면, 미래 예측을 위한 참조 픽처들로서 사용될 수 있다. 일단 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 참조 픽처로서 식별되었다면(예를 들어, 파서(320)에 의해), 현재 참조 픽처는 참조 픽처 메모리(357)의 일부가 될 수 있고, 다음 코딩된 픽처의 재구성에 착수하기 전에 새로운(fresh) 현재 픽처 메모리가 재할당될 수 있다.
비디오 디코더(210)는 ITU-T Rec. H.265와 같은 표준에 문서화될 수 있는 미리 결정된 비디오 압축 기술에 따라 디코딩 동작들을 수행할 수 있다. 코딩된 비디오 시퀀스는, 이것이 비디오 압축 기술 문서 또는 표준 및 구체적으로 그 가운데 프로필 문서에 특정된 대로 비디오 압축 기술 또는 표준의 신택스(syntax)를 고수한다는 점에서, 사용되는 비디오 압축 기술 또는 표준에 의해 특정된 신택스를 준수할 수 있다. 또한, 일부 비디오 압축 기술들 또는 표준들을 준수하기 위해, 코딩된 비디오 시퀀스의 복잡도가 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 바와 같은 경계들 내에 있을 수 있다. 일부 경우들에서, 레벨들은 최대 픽처 크기, 최대 프레임 레이트, 최대 재구성 샘플 레이트(예를 들어, 초당 메가샘플로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 레벨들에 의해 설정된 한계들은, 일부 경우들에서, HRD(Hypothetical Reference Decoder) 사양들 및 코딩된 비디오 시퀀스에서 시그널링된 HRD 버퍼 관리를 위한 메타데이터를 통해 추가로 제한될 수 있다.
실시예에서, 수신기(310)는 인코딩된 비디오와 함께 추가적인(중복) 데이터를 수신할 수 있다. 이 추가적인 데이터는 코딩된 비디오 시퀀스(들)의 일부로서 포함될 수 있다. 이 추가적인 데이터는 데이터를 적절히 디코딩하고, 및/또는 원래의 비디오 데이터를 더 정확하게 재구성하기 위해 비디오 디코더(210)에 의해 사용될 수 있다. 추가적인 데이터는 예를 들어, 시간적, 공간적, 또는 SNR 향상 계층들, 중복 슬라이스들, 중복 픽처들, 순방향 오류 정정 코드들 등의 형식일 수 있다.
도 4는 본 개시내용의 실시예에 따른 비디오 소스(201)와 연관된 비디오 인코더(203)의 예시적인 기능 블록도를 도시한다.
비디오 인코더(203)는, 예를 들어, 소스 코더(430)인 인코더, 코딩 엔진(432), (로컬) 디코더(433), 참조 픽처 메모리(434), 예측기(435), 송신기(440), 엔트로피 코더(445), 제어기(450), 및 채널(460)을 포함할 수 있다.
인코더(203)는 인코더(203)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(201)(인코더의 일부가 아님)로부터 비디오 샘플들을 수신할 수 있다.
비디오 소스(201)는, 임의의 적합한 비트 심도(예를 들어: 8 비트, 10 비트, 12 비트, …), 임의의 컬러 공간(예를 들어, BT.601 Y CrCB, RGB, …), 및 임의의 적합한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)의 것일 수 있는 디지털 비디오 샘플 스트림의 형태로 인코더(203)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(201)는 이전에 준비된 비디오를 저장하는 저장 디바이스일 수 있다. 영상 회의 시스템에서, 비디오 소스(203)는 비디오 시퀀스로서 로컬 이미지 정보를 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 모션을 부여하는 복수의 개별 픽처로서 제공될 수 있다. 픽처들 자체는 픽셀들의 공간 어레이로서 조직될 수 있고, 여기서 각각의 픽셀은 사용 중인 샘플링 구조, 컬러 공간 등에 의존하여 하나 이상의 샘플을 포함할 수 있다. 본 기술분야의 통상의 기술자는 픽셀들과 샘플들 사이의 관계를 용이하게 이해할 수 있다. 이하의 설명은 샘플들에 초점을 맞춘다.
실시예에 따르면, 인코더(203)는 소스 비디오 시퀀스의 픽처들을 실시간으로 또는 응용에 의해 요구되는 임의의 다른 시간 제약들 하에서 코딩된 비디오 시퀀스(443)가 되도록 코딩 및 압축할 수 있다. 적절한 코딩 속도를 시행하는 것이 제어기(450)의 하나의 기능이다. 제어기(450)는 또한 아래에 설명되는 바와 같은 다른 기능 유닛들을 제어할 수 있고 이러한 유닛들에 기능적으로 결합될 수 있다. 결합은 명료성을 위해 묘사되지 않는다. 제어기(450)에 의해 설정된 파라미터들은 레이트 제어 관련 파라미터들(픽처 스킵, 양자화기, 레이트-왜곡 최적화 기법들의 람다 값들,...), 픽처 크기, GOP(group of pictures) 레이아웃, 최대 모션 벡터 검색 범위 등을 포함할 수 있다. 본 기술분야의 통상의 기술자는 제어기(450)의 다른 기능들이 특정한 시스템 설계에 최적화된 비디오 인코더(203)에 관련될 수 있으므로 이들을 쉽게 식별할 수 있다.
일부 비디오 인코더들은 본 기술분야의 통상의 기술자가 "코딩 루프(coding loop)"로서 쉽게 인식하는 것에서 동작한다. 과도하게 단순화된 설명으로서, 코딩 루프는 소스 코더(430)(코딩될 입력 픽처, 및 참조 픽처(들)에 기초하여 심벌들을 생성하는 것을 담당함)의 인코딩 부분, 및 심벌들과 코딩된 비디오 비트스트림 사이의 압축이 특정 비디오 압축 기술들에서 무손실일 때 (원격) 디코더가 또한 생성할 샘플 데이터를 생성하기 위해 심벌들을 재구성하는 인코더(203)에 내장되는 (로컬) 디코더(433)로 이루어질 수 있다. 그 재구성된 샘플 스트림은 참조 픽처 메모리(434)에 입력될 수 있다. 심벌 스트림의 디코딩이 디코더 위치(로컬 또는 원격)와는 독립적으로 비트 정확한 결과들(bit-exact results)을 이끌어내므로, 참조 픽처 메모리 콘텐츠도 또한 로컬 인코더와 원격 인코더 사이에서 비트 정확(bit exact)하다. 다시 말해서, 인코더의 예측 부분은 디코딩 동안 예측을 사용할 때 디코더가 "볼(would see)" 것과 정확히 동일한 샘플 값들을 참조 픽처 샘플들로서 "본다(see)". 참조 픽처 동기성(reference picture synchronicity)의 이러한 기본적인 원리(그리고, 예를 들어, 채널 오류들 때문에, 동기성이 유지될 수 없는 경우, 결과적인 드리프트)는 본 기술분야의 통상의 기술자에게 알려져 있다.
"로컬" 디코더(433)의 동작은 도 3과 연계하여 위에서 이미 상세히 설명된 "원격" 디코더(210)의 것과 동일할 수 있다. 그러나, 심벌들이 이용가능하고 엔트로피 코더(445) 및 파서(320)에 의한 코딩된 비디오 시퀀스로의 심벌들의 인코딩/디코딩이 무손실일 수 있으므로, 채널(312), 수신기(310), 버퍼(315), 및 파서(320)를 포함하는, 디코더(210)의 엔트로피 디코딩 부분들은 로컬 디코더(433)에서 완전히 구현되지 않을 수 있다.
이 시점에서 이루어질 수 있는 관찰은, 디코더에 존재하는 파싱/엔트로피 디코딩을 제외하여 임의의 디코더 기술이 대응하는 인코더에서 실질적으로 동일한 기능 형태로 존재할 필요가 있을 수 있다는 점이다. 이러한 이유로, 개시된 주제는 디코더 동작에 초점을 맞춘다. 인코더 기술들의 설명은 포괄적으로 설명된 디코더 기술들의 역일 수 있으므로 축약될 수 있다. 특정 영역들에서만 더 상세한 설명이 요구되고 아래에 제공된다.
그 동작의 일부분으로서, 소스 코더(430)는, "참조 프레임들(reference frames)"로서 지정된 비디오 시퀀스로부터의 하나 이상의 이전에-코딩된 프레임을 참조하여 예측적으로 입력 프레임을 코딩하는, 모션 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(432)은 입력 프레임의 픽셀 블록들과 입력 프레임에 대한 예측 참조(들)로서 선택될 수 있는 참조 프레임(들)의 픽셀 블록들 사이의 차이들을 코딩한다.
로컬 비디오 디코더(433)는, 소스 코더(430)에 의해 생성된 심벌들에 기초하여, 참조 프레임들로서 지정될 수 있는 프레임들의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(432)의 동작들은 유리하게는 손실 프로세스들일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 4에 도시되지 않음)에서 디코딩될 수 있는 경우, 재구성된 비디오 시퀀스는 전형적으로 일부 오류들을 갖는 소스 비디오 시퀀스의 복제본(replica)일 수 있다. 로컬 비디오 디코더(433)는 참조 프레임들에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스들을 복제하고 재구성된 참조 프레임들이 참조 픽처 메모리(434)에 저장되게 야기할 수 있다. 이러한 방식으로, 인코더(203)는 (송신 오류들이 없이) 원단(far-end) 비디오 디코더에 의해 획득될 재구성된 참조 프레임들로서 공통 콘텐츠를 갖는 재구성된 참조 프레임들의 사본들을 로컬로 저장할 수 있다.
예측기(435)는 코딩 엔진(432)을 위한 예측 검색들을 수행할 수 있다. 즉, 코딩될 새로운 프레임에 대해, 예측기(435)는 새로운 픽처들에 대한 적절한 예측 참조로서 역할할 수 있는 참조 픽처 모션 벡터들, 블록 형상들 등과 같은 특정 메타데이터 또는(후보 참조 픽셀 블록들로서의) 샘플 데이터에 대해 참조 픽처 메모리(434)를 검색할 수 있다. 예측기(435)는 적절한 예측 참조들을 찾기 위해 샘플 블록-바이-픽셀 블록(sample block-by-pixel block) 기준으로 동작할 수 있다. 일부 경우들에서, 예측기(435)에 의해 획득된 검색 결과들에 의해 결정된 바와 같이, 입력 픽처는 참조 픽처 메모리(434)에 저장된 다중의 참조 픽처로부터 인출된 예측 참조들을 가질 수 있다.
제어기(450)는, 예를 들어, 비디오 데이터를 인코딩하기 위해 사용되는 파라미터들 및 서브그룹 파라미터들의 설정을 포함하여, 비디오 코더(430)의 코딩 동작들을 관리할 수 있다.
앞서 언급한 모든 기능 유닛들의 출력은 엔트로피 코더(445)에서 엔트로피 코딩을 겪을 수 있다. 엔트로피 코더는 본 기술분야의 통상의 기술자에게 알려진 기술들, 예를 들어, 허프만(Huffman) 코딩, 가변 길이 코딩, 산술 코딩 등에 따라 심벌들을 무손실 압축함으로써, 다양한 기능 유닛들에 의해 생성된 심벌들을 코딩된 비디오 시퀀스가 되도록 변환한다.
송신기(440)는, 인코딩된 비디오 데이터를 저장할 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는, 통신 채널(460)을 통한 송신을 준비하기 위해 엔트로피 코더(445)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링할 수 있다. 송신기(440)는 비디오 코더(430)로부터의 코딩된 비디오 데이터를 송신될 다른 데이터, 예를 들어, 코딩된 오디오 데이터 및/또는 보조 데이터 스트림들(소스들이 도시되지 않음)과 병합할 수 있다.
제어기(450)는 인코더(203)의 동작을 관리할 수 있다. 코딩 동안, 제어기(450)는, 각자의 픽처에 적용될 수 있는 코딩 기법들에 영향을 미칠 수 있는, 특정 코딩된 픽처 타입을 각각의 코딩된 픽처에 할당할 수 있다. 예를 들어, 픽처들은 종종 인트라 픽처(Intra Picture)(I 픽처), 예측 픽처(Predictive Picture)(P 픽처), 또는 양방향 예측 픽처(Bi-directionally Predictive Picture)(B 픽처)로서 할당될 수 있다.
인트라 픽처(Intra Picture)(I 픽처)는 예측의 소스로서 시퀀스에서의 임의의 다른 프레임을 사용하지 않고 코딩되고 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱들은, 예를 들어, IDR(Independent Decoder Refresh) 픽처들을 포함하는, 상이한 타입들의 인트라 픽처들을 허용한다. 본 기술분야의 통상의 기술자는 I 픽처들의 해당 변형들 및 그것들 각자의 응용들 및 특징들을 인식한다.
예측 픽처(Predictive picture)(P 픽처)는 각각의 블록의 샘플 값들을 예측하기 위해 많아야 하나의 모션 벡터 및 참조 인덱스를 사용하여 인트라 예측(intra prediction) 또는 인터 예측(inter prediction)을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양방향 예측 픽처(Bi-directionally Predictive Picture)(B Picture)는 각각의 블록의 샘플 값들을 예측하기 위해 많아야 2개의 모션 벡터들 및 참조 인덱스들을 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다중-예측 픽처들은 단일 블록의 재구성을 위해 2개보다 많은 참조 픽처 및 연관된 메타데이터를 사용할 수 있다.
소스 픽처들은 흔히 복수의 샘플 블록(예를 들어, 각각 4x4, 8x8, 4x8, 또는 16x16 샘플들의 블록들)으로 공간적으로 세분되고 블록별로(on a block-by-block basis) 코딩될 수 있다. 블록들은 블록들의 각자의 픽처들에 적용되는 코딩 할당에 의해 결정된 다른(이미 코딩된) 블록들을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처들의 블록들은 비예측적으로 코딩될 수 있거나 또는 그것들은 동일한 픽처의 이미 코딩된 블록들을 참조하여 예측적으로 코딩될 수 있다(공간 예측 또는 인트라 예측). P 픽처들의 픽셀 블록들은 하나의 이전에 코딩된 참조 픽처들을 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 비예측적으로 코딩될 수 있다. B 픽처들의 블록들은 하나의 또는 두 개의 이전에 코딩된 참조 픽처들을 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 비예측적으로 코딩될 수 있다.
비디오 코더(203)는 ITU-T Rec. H.265와 같은 표준 또는 미리 결정된 비디오 코딩 기술에 따라 코딩 동작들을 수행할 수 있다. 그것의 동작 중에, 비디오 코더(203)는, 입력 비디오 시퀀스에서 시간적 및 공간적 중복성을 활용하는 예측 코딩 동작들을 포함하여, 다양한 압축 동작들을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용 중인 비디오 코딩 기술 또는 표준에 의해 지정된 신택스(syntax)를 준수할 수 있다.
실시예에서, 송신기(440)는 인코딩된 비디오와 함께 추가적인 데이터를 송신할 수 있다. 비디오 코더(430)는 코딩된 비디오 시퀀스의 일부로서 그러한 데이터를 포함할 수 있다. 추가적인 데이터는 시간적/공간적/SNR 향상 계층들, 중복 픽처들 및 슬라이스들과 같은 다른 형태들의 중복 데이터, SEI(Supplementary Enhancement Information) 메시지들, VUI(Visual Usability Information) 파라미터 세트 프래그먼트들 등을 포함할 수 있다.
[VP9 및 AV1에서의 코딩 블록 파티션]
도 5a 내지 도 5d의 파티션 구조들(502 내지 508)을 참조하면, VP9는, 블록들 8x8에 대해 어떤 추가적인 제약을 가지면서, 64x64 레벨로부터 시작하여 4x4 레벨까지 4 방향 파티션 트리(4-way partition tree)를 이용한다. 유의할 점은, 도 5d에서 R로서 지정된 파티션들이 동일한 파티션 트리가 최하위 4x4 레벨에 도달할 때까지 하위 스케일로 반복된다는 점에서 재귀(recursion)를 지칭한다는 것이다.
도 6a 내지 도 6j의 파티션 구조들(511 내지 520)을 참조하면, AV1은 파티션 트리를 10 방향 구조로 확장시킬 뿐만 아니라, 128x128로부터 시작하도록 가장 큰 크기(VP9/AV1 용어로 슈퍼블록이라고 지칭함)를 증가시킨다. 이것은 VP9에 존재하지 않는 4:1/1:4 직사각형 파티션들을 포함한다는 점에 유의한다. 도 6c 내지 도 6f에 도시된 3개의 서브 파티션을 갖는 파티션 타입은 "T 타입" 파티션이라고 부른다. 직사각형 파티션들 중 어느 것도 추가로 세분되지 않을 수 있다. 코딩 블록 크기에 추가하여, 코딩 트리 깊이는 루트 노트로부터의 스플릿 깊이를 나타내도록 정의될 수 있다. 구체적으로, 루트 노드에 대한 코딩 트리 깊이, 예를 들어, 128x128은 0으로 설정되고, 트리 블록이 한번 더 스플릿된 후에, 코딩 트리 깊이는 1만큼 증가한다.
VP9에서와 같이 고정된 변환 유닛 크기들을 시행하는 대신에, AV1은 루마 코딩 블록들이 최대 2 레벨들까지 내려가는 재귀적 파티션에 의해 표현될 수 있는 다중 크기의 변환 유닛들로 파티셔닝되도록 허용한다. AV1의 확장된 코딩 블록 파티션들을 통합하기 위해, 4x4 내지 64x64의 정사각형, 2:1/1:2, 및 4:1/1:4 변환 크기들이 지원될 수 있다. 크로마 블록들의 경우, 가장 큰 가능한 변환 유닛들만이 허용될 수 있다.
[HEVC에서의 블록 파티셔닝]
HEVC에서, 코딩 트리 유닛(coding tree unit, CTU)은 다양한 로컬 특성들에 적응하기 위해 코딩 트리로서 표시된 쿼드트리(quadtree ,QT) 구조를 사용함으로써 코딩 유닛들(coding units ,CU들)로 스플릿될 수 있다. 픽처 영역을 인터-픽처(시간적) 또는 인트라-픽처(공간적) 예측을 이용하여 코딩할지에 대한 결정은 CU 레벨에서 이루어질 수 있다. 각각의 CU는 PU 스플릿 타입에 따라 1개, 2개, 또는 4개의 예측 유닛(prediction units, PU들)로 더 스플릿될 수 있다. 하나의 PU 내부에서, 동일한 예측 프로세스가 적용될 수 있고, 관련 정보가 PU 기반으로 디코더에 송신된다. PU 스플릿 타입에 기초하여 예측 프로세스를 적용함으로써 잔차 블록을 획득한 후에, CU는 CU에 대한 코딩 트리와 같은 또 다른 쿼드 트리 구조에 따라 변환 유닛(TU)들로 파티셔닝될 수 있다. HEVC 구조의 주요 특징들 중 하나는 그것이 CU, PU, 및 TU를 포함하는 다중의 파티션 개념을 갖는다는 것이다. HEVC에서, CU 또는 TU는 정사각형 형상만을 가질 수 있는 한편, PU는 인터 예측된 블록에 대해 정사각형 또는 직사각형 형상을 가질 수 있다. HEVC에서, 하나의 코딩 블록은 4개의 정사각형 서브 블록으로 더 스플릿될 수 있고, 각각의 서브 블록(즉, TU)에 대해 변환이 수행된다. 각각의 TU는 (쿼드트리 스플릿을 이용하여) 더 작은 TU들로 재귀적으로 더 스플릿될 수 있으며, 이것은 RQT(Residual Quad-Tree)로 불린다.
픽처 경계에서, HEVC는 암시적 쿼드 트리 스플릿을 채택하여 블록이 픽처 경계에 그 크기가 맞추어질 때까지 쿼드 트리 스플릿을 유지하도록 한다.
[VVC에서의 네스팅된 멀티-타입 트리 코딩 블록 구조를 갖는 쿼드트리]
VVC에서, 이진 및 삼진 스플릿 세그먼테이션 구조를 사용하는 네스팅된 멀티-타입 트리를 갖는 쿼드트리는 다중의 파티션 유닛 타입의 개념을 대체한다. 즉, VVC는 최대 변환 길이에 대해 너무 큰 크기를 갖는 CU들에 대해 필요한 것을 제외하고는 CU, PU, 및 TU 개념들의 분리를 포함하지 않으며, CU 파티션 형상들에 대해 더 많은 유연성을 지원한다. 코딩 트리 구조에서, CU는 정사각형 또는 직사각형 형상 중 어느 하나를 가질 수 있다. 코딩 트리 유닛(CTU)은 먼저 4진 트리(일명: 쿼드 트리) 구조에 의해 파티셔닝된다. 그 후, 4진 트리 리프 노드들은 멀티-타입 트리 구조에 의해 더 파티셔닝될 수 있다. 멀티-타입 트리 구조에는 4가지 스플릿 타입이 있다: 수직 이진 스플릿(SPLIT_BT_VER), 수평 이진 스플릿(SPLIT_BT_HOR), 수직 삼진 스플릿(SPLIT_TT_VER), 및 수평 삼진 스플릿(SPLIT_TT_HOR). 멀티-타입 트리 리프 노드들은 CU들(coding units)이라고 불릴 수 있고, CU가 최대 변환 길이에 대해 너무 크지 않으면, 이러한 세그먼테이션은 어떠한 추가의 파티셔닝도 없이 예측 및 변환 처리를 위해 사용될 수 있다. 이는, 대부분의 경우에서, CU, PU, 및 TU가 네스팅된 멀티-타입 트리 코딩 블록 구조를 갖는 쿼드트리에서 동일한 블록 크기를 갖는다는 것을 의미한다. 예외는 최대 지원되는 변환 길이가 CU의 컬러 성분의 폭 또는 높이보다 작을 때 발생한다. 블록 파티션의 한 예는 CTU가, 쿼드트리 파티셔닝 및 멀티-타입 트리 파티셔닝에 의해, 쿼드트리 및 네스팅된 멀티-타입 트리 코딩 블록 구조를 갖는 다중의 CU가 되도록 분할된다는 것이다. 네스팅된 멀티-타입 트리 파티션을 갖는 쿼드트리는 CU들로 구성된 콘텐츠-적응형 코딩 트리 구조를 제공한다.
VVC에서, 최대 지원되는 루마 변환 크기는 64x64이고 최대 지원되는 크로마 변환 크기는 32x32이다. CB의 폭 또는 높이가 최대 변환 폭 또는 높이보다 클 때, CB는 그 방향에서의 변환 크기 제한을 충족시키기 위해 수평 및/또는 수직 방향으로 자동으로 스플릿될 수 있다.
VTM7에서, 코딩 트리 방식은 루마 및 크로마가 별개의 블록 트리 구조를 갖는 능력을 지원한다. P 및 B 슬라이스들에 대해, 하나의 CTU 내의 루마 및 크로마 CTB들은 동일한 코딩 트리 구조를 공유해야 할 수 있다. 그러나, I 슬라이스들에 대해, 루마 및 크로마는 개별 블록 트리 구조들을 가질 수 있다. 개별 블록 트리 모드가 적용될 때, 루마 CTB는 하나의 코딩 트리 구조에 의해 CU들이 되도록 파티셔닝되고, 크로마 CTB들은 또 다른 코딩 트리 구조에 의해 크로마 CU들이 되도록 파티셔닝된다. 이는 I 슬라이스 내의 CU가 루마 성분의 코딩 블록 또는 2개의 크로마 성분의 코딩 블록들로 구성될 수 있고, P 또는 B 슬라이스 내의 CU가 비디오가 단색(monochrome)이 아닌 한 모든 3개의 컬러 성분의 코딩 블록들로 구성될 수 있다는 것을 의미한다.
[AV1에서의 지향성 인트라 예측]
VP9는 45도 내지 207도의 각도에 대응하는 8개의 지향성 모드를 지원한다. 방향 텍스처들에서 더 다양한 공간 리던던시(spatial redundancy)를 이용하기 위해, AV1에서, 지향성 인트라 모드들은 더 미세한 세분도(granularity)를 갖는 각도 세트로 확장된다. 원래의 8개의 각도는 약간 변경되고 공칭 각도(nominal angle)들로서 만들어지며, 이들 8개의 공칭 각도는 V_PRED(542), H_PRED(543), D45_PRED(544), D135_PRED(545), D113_PRED(5446), D157_PRED(547), D203_PRED(548), 및 D67_PRED(549)로서 명명되며, 이는 현재 블록(541)에 대해 도 7에 예시된다. 각각의 공칭 각도에 대해, 7개의 더 미세한 각도가 있고, 따라서 AV1은 총 56개의 지향성 각도를 가진다. 예측 각도는 공칭 인트라 각도 + 각도 델타에 의해 제시되고, 이것은 3도의 스텝 크기의 -3 ~ 3배이다. AV1에서, 5개의 비-각도 평활 모드와 함께 8개의 공칭 모드가 먼저 시그널링된다. 그 후, 현재 모드가 각도 모드인 경우, 대응하는 공칭 각도에 대한 각도 델타를 표시하기 위해 인덱스가 추가로 시그널링된다. 일반적인 방식을 통해 AV1에서 지향성 예측 모드들을 구현하기 위해, AV1에서의 모든 56개의 지향성 인트라 예측 모드는 각각의 픽셀을 참조 서브픽셀 로케이션에 투영하고 2 탭 바이리니어 필터(2-tap bilinear filter)에 의해 참조 픽셀을 보간하는 통합 지향성 예측기로 구현된다.
[AV1에서의 비 지향성 평활 인트라 예측자들]
AV1에서, DC, PAETH, SMOOTH, SMOOTH_V, 및 SMOOTH_H인 5개의 비 지향성 평활 인트라 예측 모드가 있다. DC 예측의 경우, 좌측 및 위의 이웃 샘플들의 평균이 예측될 블록의 예측자로서 사용된다. PAETH 예측자에 대해, 상단, 좌측, 및 상단-좌측 참조 샘플들이 먼저 페치되고, 그 후 (상단 + 좌측 - 상단좌측)에 가장 가까운 값이 예측될 픽셀에 대한 예측자로서 설정된다. 도 8은 현재 블록(550) 내의 픽셀(552)에 대한 상단 샘플(554), 좌측 샘플(556), 및 상단-좌측 샘플(558)의 위치들을 도시한다. SMOOTH, SMOOTH_V, 및 SMOOTH_H 모드들에 대해, 현재 블록(550)은 수직 또는 수평 방향들, 또는 양쪽 방향들의 평균에서의 2차 보간(quadratic interpolation)을 이용하여 예측된다.
[재귀적 필터링 기반 인트라 예측자]
에지들 상의 참조들과의 감쇠 공간적 상관을 캡처하기 위해, 루마 블록들에 대해 필터 인트라 모드들이 설계된다. AV1에 대해 5개의 필터 인트라 모드가 정의되며, 각각은 4x2 패치 내의 픽셀들과 그에 인접한 7개의 이웃 사이의 상관을 반영하는 8개의 7 탭 필터 세트에 의해 표현된다. 다시 말해서, 7 탭 필터에 대한 가중화 인자들은 위치 종속적이다. 예를 들어, 8x8 블록(560)은 도 9에 도시된 바와 같이 8개의 4x2 패치가 되도록 스플릿될 수 있다. 이들 패치들은 도 9에서 B0, B1, B2, B3, B4, B5, B6, 및 B7로서 표시된다. 각각의 패치에 대해, R0 - R6으로 표시된 그의 7개의 이웃이 현재 패치 내의 픽셀들을 예측하기 위해 사용될 수 있다. 패치 B0의 경우, 모든 이웃들이 이미 재구성될 수 있다. 그러나, 다른 패치들에 대해, 이웃들 중 일부는 재구성되지 않을 수 있고, 그러면 바로 이웃들의 예측된 값들이 참조로서 사용된다. 예를 들어, 패치 B7의 이웃들 모두가 재구성되지 않으므로, 이웃들의 예측 샘플들이 대신 사용된다.
[루마로부터 예측된 크로마]
CfL(Chroma from Luma)는 일치하는 재구성된 루마 픽셀들의 선형 함수로서 크로마 픽셀들을 모델링하는 크로마-전용 인트라 예측자이다. CfL 예측은 아래의 수학식 (1)에 나타난 바와 같이 표현될 수 있다:
Figure pct00001
여기서,
Figure pct00002
는 루마 성분의 AC 기여도를 나타내고, α는 선형 모델의 파라미터를 나타내며, DC는 크로마 성분의 DC 기여도를 나타낸다. 구체적으로, 재구성된 루마 픽셀들은 크로마 해상도가 되도록 서브샘플링되며, 그 후 평균 값을 감산하여 AC 기여도를 형성한다. AC 기여도로부터 크로마 AC 성분을 근사화하기 위해, 디코더가 일부 배경 기술에서와 같이 스케일링 파라미터들을 계산할 것을 요구하는 대신에, AV1 CfL은 원래 크로마 픽셀들에 기초하여 파라미터 α를 결정하고, 이들을 비트스트림에서 시그널링할 수 있다. 이는 디코더 복잡성을 감소시키고 더 정확한 예측들을 산출한다. 크로마 성분의 DC 기여도와 관련하여, 그것은 인트라 DC 모드를 이용하여 계산될 수 있으며, 이는 대부분의 크로마 콘텐츠에 대해 충분하고, 성숙한 빠른 구현을 갖는다.
[멀티-라인 인트라 예측]
멀티-라인 인트라 예측은 인트라 예측을 위해 더 많은 참조 라인들을 사용할 수 있으며, 여기서 인코더는 어느 참조 라인이 인트라 예측자를 생성하기 위해 사용되는지를 결정하고 시그널링한다. 참조 라인 인덱스는 인트라 예측 모드들 전에 시그널링될 수 있고, 비 제로 참조 라인 인덱스가 시그널링되는 경우에 최고 확률 모드들만이 허용될 수 있다. 도 10에서, 4개의 참조 라인(570)의 예가 묘사되며, 여기서 각각의 참조 라인(570)은 상단-좌측 참조 샘플과 함께 6개의 세그먼트, 즉 세그먼트 A 내지 F로 구성된다. 또한, 세그먼트 A 및 F는 제각기 세그먼트 B 및 E로부터의 가장 가까운 샘플들로 패딩된다.
[AV1에서의 1차 변환]
확장된 코딩 블록 파티션들을 지원하기 위해, 다중의 변환 크기(예컨대, 각각의 차원에 대해 4-포인트부터 64-포인트까지의 범위에 있음) 및 변환 형상(예컨대, 정사각형; 폭/높이 비율이 2:1/1:2 및 4:1/1:4인 직사각형)이 AV1에 도입된다.
2D 변환 프로세스는 하이브리드 변환 커널들(예를 들어, 코딩된 잔차 블록의 각각의 차원에 대해 상이한 1차원(1D) 변환들로 구성됨)의 사용을 수반할 수 있다. 실시예에 따르면, 1차 1D 변환들은: (a) 4-포인트, 8-포인트, 16-포인트, 32-포인트, 또는 64-포인트 DCT-2; (b) 4-포인트, 8-포인트, 또는 16-포인트 비대칭 DST들(DST-4, DST-7) 및 그들의 플립된(flipped) 버전들; 및 (c) 4-포인트, 8-포인트, 16-포인트, 또는 32-포인트 항등 변환들이다. AV1에서 사용되는 DCT-2 및 비대칭 DST들에 대한 기저 함수(Basis function)들이 아래의 표 1에 열거된다. 표 1은 N-포인트 입력에 대한 AV1 1차 변환 기저 함수들 DCT-2, DST-4 및 DST-7을 보여준다.
Figure pct00003
하이브리드 변환 커널들의 가용성은 변환 블록 크기 및 예측 모드에 기초할 수 있다. 이러한 의존성은 도 11의 표(580)에 열거된다. 표(580)는 예측 모드들 및 블록 크기들에 기초한 AV1 하이브리드 변환 커널들 및 그들의 가용성을 보여준다. 표(580)에서, 심볼들
Figure pct00004
Figure pct00005
는 제각기 수평 및 수직 차원들을 나타내고, 심볼들
Figure pct00006
및 "x"는 제각기 그 블록 크기 및 예측 모드에 대한 커널의 가용성 및 비가용성을 나타낸다.
크로마 성분의 경우, 변환 타입 선택은 암시적 방식으로 행해질 수 있다. 인트라 예측 잔차들에 대해, 변환 타입은 아래 표 2에 특정된 바와 같이, 인트라 예측 모드에 따라 선택될 수 있다. 인터 예측 잔차들에 대해, 변환 타입은 공동 위치된 루마 블록의 변환 타입 선택에 따라 선택될 수 있다. 따라서, 크로마 성분의 경우, 비트스트림에 어떤 변환 타입 시그널링도 없을 수 있다.
Figure pct00007
[VVC에서의 2차 변환]
도 12를 참조하면, VVC에서, 감소된 이차 변환으로 알려진 저주파수 분리가능하지 않은 변환(low-frequency non-separable transform, LFNST)이 1차 변환 계수들을 추가로 상관해제시키기 위해 순방향 1차 변환(591)과 양자화(593) 사이에 (인코더에서) 그리고 탈양자화(594)와 역 1차 변환(596) 사이에 (디코더 측에서) 적용될 수 있다. 예를 들어, 순방향 LFNST(592)는 인코더에 의해 적용될 수 있고 역 LFNST(595)는 디코더에 의해 적용될 수 있다. LFNST에서, 4x4 분리가능하지 않은 변환 또는 8x8 분리가능하지 않은 변환이 블록 크기에 따라 적용될 수 있다. 예를 들어, 4x4 LFNST는 작은 블록들(예를 들어, 최소(폭, 높이) < 8)에 대해 적용될 수 있고, 8x8 LFNST는 더 큰 블록들(예를 들어, 최소(폭, 높이) > 4)에 대해 적용될 수 있다. 4x4 순방향 LFNST 및 8x8 순방향 LFNST의 경우, 순방향 LFNST(592)는 제각기 16개 및 64개의 입력 계수들을 가질 수 있다. 4x4 역 LFNST 및 8x8 역 LFNST의 경우, 역 LFNST(595)는 제각기 8개 및 16개의 입력 계수들을 가질 수 있다.
LFNST에서 사용될 수 있는 분리가능하지 않은 변환의 적용은 입력을 예로서 사용하여 다음과 같이 설명된다. 4x4 LFNST를 적용하기 위해, 아래의 수학식 2에 도시된 4x4 입력 블록 X는 먼저 아래의 수학식 3에 도시된 바와 같이 벡터
Figure pct00008
로서 표현될 수 있다:
Figure pct00009
Figure pct00010
분리가능하지 않은 변환은
Figure pct00011
로서 계산될 수 있고, 여기서
Figure pct00012
는 변환 계수 벡터를 나타내고,
Figure pct00013
는 16x16 변환 행렬이다. 이어서, 16x1 계수 벡터
Figure pct00014
는 그 블록에 대한 스캐닝 순서(예로서, 수평, 수직, 또는 대각선)를 이용하여 4x4 블록으로서 재조직될 수 있다. 더 작은 인덱스를 갖는 계수들은 4x4 계수 블록에서 더 작은 스캐닝 인덱스로 배치될 수 있다.
A. 감소된 분리가능하지 않은 변환
LFNST는 분리가능하지 않은 변환을 적용하기 위해 직접 행렬 곱셈 접근법에 기초할 수 있어서, 이것이 다중 반복 없이 단일 패스에서 구현되도록 한다. 그러나, 분리가능하지 않은 변환 행렬 차원은 계산 복잡성 및 변환 계수들을 저장하기 위한 메모리 공간을 최소화하도록 감소될 필요가 있을 수 있다. 따라서, 감소된 분리가능하지 않은 변환(RST) 방법이 LFNST에서 사용될 수 있다. 감소된 분리불가능 변환의 주요 아이디어는 N(N은 8x8 NSST에 대해 흔히 64와 동일함) 차원 벡터를 상이한 공간에서 R차원 벡터에 매핑하는 것이며, 여기서 N/R(R < N)은 감소 인자이다. 따라서, NxN 행렬 대신에, RST 행렬은 도 13에 도시된 바와 같이 RxN 행렬(600)이 된다.
RxN 행렬(600)에서, N차원 공간의 R 기수(base)인, 변환의 R개의 행이 있다. RT에 대한 역변환 행렬은 그의 순방향 변환의 전치 행렬일 수 있다. 8x8 LFNST에 대해, 4의 감소 인자가 적용될 수 있고, 종래의 8x8 분리가능하지 않은 변환 행렬 크기인 64x64 직접 행렬은 16x48 직접 행렬이 되도록 감소될 수 있다. 따라서, 48×16 역 RST 행렬을 디코더 측에서 이용하여, 8×8 상단-좌측 영역들에서 코어(1차) 변환 계수들을 생성할 수 있다. 동일한 변환 세트 구성을 갖는 16x64 대신에 16x48 행렬들이 적용될 때, 각각의 행렬은 우측-하단 4x4 블록을 제외한 상단-좌측 8x8 블록 내의 3개의 4x4 블록으로부터 48개의 입력 데이터를 취할 수 있다. 감소된 차원의 도움으로, 모든 LFNST 행렬들을 저장하기 위한 메모리 사용은 합리적인 성능 저하를 가지면서 10KB에서 8KB로 감소될 수 있다. 복잡성을 줄이기 위해, LFNST는 제1 계수 서브그룹 바깥의 모든 계수들이 유효하지 않은 경우에만 적용 가능하도록 제한될 수 있다. 따라서, 모든 1차 전용 변환 계수들은 LFNST가 적용될 때 제로이어야 할 수 있다. 이는 마지막 유효 위치(last-significant position)에 대한 LFNST 인덱스 시그널링의 컨디셔닝을 허용하고, 따라서 특정 위치들에서만 유효 계수들을 체크하기 위해 요구될 수 있는, 현재의 LFNST 설계에서의 별도의 계수 스캐닝을 회피한다. (픽셀당 곱셈의 관점에서) LFNST의 최악의 경우의 핸들링은 4x4 및 8x8 블록들에 대한 분리가능하지 않은 변환들을 제각기 8x16 및 8x48 변환들로 제한한다. 그러한 경우들에서, LFNST가 적용될 때, 16보다 작은 다른 크기들에 대해, 마지막 유효 스캔 위치는 8보다 작아야 할 수 있다. 4xN 및 Nx4의 형상을 갖고 N > 8인 블록들에 대해, 제한은 LFNST가 이제 한 번만 적용되고, 상단-좌측 4x4 영역에만 적용된다는 것을 암시할 수 있다. LFNST가 적용될 때 모든 1차 전용 계수들이 제로일 수 있으므로, 1차 변환들에 대한 연산들의 수는 그러한 경우들에서 감소될 수 있다. 인코더의 관점에서, 계수들의 양자화는 LFNST 변환들이 테스트될 때 현저하게 단순화된다. 레이트-왜곡 최적화된 양자화는 (스캔 순서로) 처음 16개의 계수에 대해 최대로 행해질 수 있고, 나머지 계수들은 제로가 되도록 강제될 수 있다.
B. LFNST 변환 선택
LFNST에서 사용되는 변환 세트당 4개의 변환 세트 및 2개의 분리가능하지 않은 변환 행렬(커널들)이 있을 수 있다. 인트라 예측 모드로부터 변환 세트로의 매핑은 아래의 표 3에 도시된 바와 같이 미리 정의될 수 있다. 3개의 CCLM 모드(INTRA_LT_CCLM, INTRA_T_CCLM, 또는 INTRA_L_CCLM) 중 하나가 현재 블록에 대해 사용되는 경우(81 <= predModeIntra <=83), 변환 세트 0이 현재 크로마 블록에 대해 선택될 수 있다. 각각의 변환 세트에 대해, 선택된 분리가능하지 않은 2차 변환 후보는 명시적으로 시그널링된 LFNST 인덱스에 의해 추가로 특정될 수 있다. 인덱스는 변환 계수들 후에 인트라 CU당 한 번씩 비트스트림에서 시그널링될 수 있다.
Figure pct00015
C. LFNST 인덱스 시그널링 및 다른 도구들과의 상호작용
LFNST는 제1 계수 서브그룹 바깥의 모든 계수들이 유효하지 않은 경우에만 적용가능하도록 제한될 수 있기 때문에, LFNST 인덱스 코딩은 마지막 유효 계수의 위치에 의존할 수 있다. 또한, LFNST 인덱스는 컨텍스트 코딩될 수 있지만 인트라 예측 모드에 의존하지 않을 수 있고, 제1 빈(bin)만이 컨텍스트 코딩될 수 있다. 더욱이, LFNST는 인트라 및 인터 슬라이스들 둘 다에서 인트라 CU에 대해, 그리고 루마 및 크로마 둘 다에 대해 적용될 수 있다. 듀얼 트리(dual tree)가 인에이블되는 경우, 루마 및 크로마에 대한 LFNST 인덱스들은 개별적으로 시그널링될 수 있다. 인터 슬라이스(듀얼 트리가 디스에이블됨)의 경우, 단일 LFNST 인덱스가 시그널링되어 루마 및 크로마 둘 다에 대해 사용될 수 있다.
ISP(intra subpartition) 모드가 선택될 때, LFNST는 디스에이블될 수 있고 RST 인덱스는 시그널링되지 않을 수 있는데, 그 이유는 RST가 모든 가능한 파티션 블록마다에 적용되더라도 성능 향상이 미미할 수 있기 때문이다. 더욱이, ISP-예측된 잔차에 대해 RST를 디스에이블하는 것은 인코딩 복잡성을 감소시킬 수 있다. LFNST는 또한 디스에이블될 수 있고, 행렬 기반 인트라 예측(MIP) 모드가 선택될 때 인덱스는 시그널링되지 않을 수 있다.
64x64보다 큰 대형 CU가 기존의 최대 변환 크기 제한(예를 들어, 64x64)으로 인해 암시적으로 스플릿(TU 타일링)될 수 있다는 것을 고려하면, LFNST 인덱스 검색은 특정 수의 디코드 파이프라인 스테이지들에 대해 데이터 버퍼링을 4배 증가시킬 수 있다. 따라서, LFNST가 허용되는 최대 크기는 64x64로 제한될 수 있다. 실시예들에 따르면, LFNST는 DCT2만으로 인에이블될 수 있다.
[AV1에서의 잔차 코딩]
각각의 변환 유닛에 대해, AV1 계수 코딩은 스킵 부호를 시그널링하는 것으로 시작할 수 있고, 스킵 부호가 제로일 때 변환 커널 타입 및 eob(end-of-block) 위치가 뒤따를 수 있다. 그 후, 각각의 계수 값이 다중의 레벨 맵 및 부호에 매핑될 수 있다.
eob 위치가 코딩된 후, 하위 레벨 맵 및 중간 레벨 맵은 역방향 스캔 순서로 코딩될 수 있는데, 전자는 계수 크기가 0과 2 사이인지를 나타낼 수 있는 한편, 후자는 범위가 3과 14 사이인지를 나타낼 수 있다. 다음 단계에서, 계수의 부호뿐만 아니라 Exp-Golomb 코드에 의한 14보다 큰 계수의 잔차 값이 순방향 스캐닝 순서로 코딩될 수 있다.
컨텍스트 모델링의 사용에 관해서는, 하위 레벨 맵 코딩은 변환 크기 및 방향들뿐만 아니라 최대 5개의 이웃 계수 정보를 통합할 수 있다. 한편, 중간 레벨 맵 코딩은 이웃 계수들의 수가 2까지 이르는 것을 제외하고는 하위 레벨 맵 코딩에 의한 것과 유사한 접근법을 따를 수 있다. 잔차 레벨뿐만 아니라 AC 계수의 부호에 대한 Exp-Golomb 코드는 어떠한 컨텍스트 모델도 없이 코딩될 수 있는 한편, DC 계수의 부호는 그의 이웃 변환 유닛의 dc 부호를 이용하여 코딩된다.
[비디오 코딩을 위한 딥 러닝]
딥 러닝은 상이한 비선형 변환들을 조합하는 복잡한 아키텍처들로 데이터를 모델링하려고 시도하는 학습 방법들의 세트이다. 딥 러닝의 기본 구성품은 심층 신경망들을 형성하도록 조합되는 신경망들이다.
인공 신경망은 입력 x 및 출력
Figure pct00016
에 연관되는 그것의 파라미터들 θ에 대해 비선형인 애플리케이션이다. 파라미터들 θ는 학습 샘플로부터 추정된다. 신경망은 회귀 또는 분류를 위해 이용될 수 있다. 신경망들의 몇몇 타입들의 아키텍처들이 존재한다: (a) 신경망들의 가장 오래된 형태인 다층 퍼셉트론(perceptron); (b) 특히 이미지 처리를 위해 적응된 CNN(convolutional neural network); 및 (c) 텍스트 또는 시계열과 같은 순차 데이터에 대해 사용되는 순환 신경망.
딥 러닝 및 신경망은 주로 2가지 이유로 인해 비디오 코딩에서 이용될 수 있다: 첫째, 전통적인 머신 러닝 알고리즘과는 달리, 딥 러닝 알고리즘은 데이터를 스캔하여 피처들을 검색할 것이어서 피처 엔지니어링이 필요하지 않도록 한다. 둘째, 딥 러닝 모델들은 특히 이미지 관련된 태스크들에서 새로운 데이터로 잘 일반화된다.
A. CNN 계층들
다층 퍼셉트론에 비해 CNN의 강점들은 두 가지인데: CNN은 계층 내의 뉴런들이 계층 전에 계층의 작은 영역에만 연결될 것이므로 크게 감소된 양의 가중치들을 가지며; 더욱이 CNN은 병진 불변이어서, 공간적 정보를 잃지 않고서 이미지들을 처리하는 데에 특히 적합하게 만든다. CNN은 여러 종류의 계층들, 즉 컨볼루션 계층들, 풀링 계층들 및 완전 연결 계층들로 구성된다.
(1) 컨볼루션 계층
2개의 함수 f와 g 사이의 이산 컨볼루션은 아래의 수학식 4에 보여진 바와 같이 정의될 수 있다:
Figure pct00017
이미지들과 같은 2차원 신호들에 대해, 2D 컨볼루션들에 대한 다음의 수학식 5가 고려될 수 있다:
Figure pct00018
여기서 K는 2D 신호(또는 이미지) I에 적용되는 컨볼루션 커널이다.
도 14를 참조하면, 2D 컨볼루션의 원리는 이미지(610) 상에 컨볼루션 커널(612)을 드래그하는 것이다. 각각의 위치에서, 컨볼루션은 컨볼루션 커널과 현재 취급되는 이미지의 부분(611) 사이에 적용된다. 그 후, 컨볼루션 커널은 픽셀들의 수 s만큼 이동하고, 여기서 s는 스트라이드(stride)라고 불린다. 때때로, 제로 패딩(zero padding)이 추가되는데, 이것은 출력의 크기를 제어하기 위해 이미지 주위의 제로 값들을 포함하는 크기 p의 마진(margin)이다.
Figure pct00019
커널들(필터들이라고도 불림)이 적용되며, 이미지 상에 각각의 크기 k x k가 있다고 가정한다. 입력 이미지의 크기가
Figure pct00020
Figure pct00021
(
Figure pct00022
는 폭을 나타내고,
Figure pct00023
는 높이를 나타내고,
Figure pct00024
는 채널들의 수를 나타내고, 통상적으로
Figure pct00025
)이면, 출력의 볼륨은
Figure pct00026
이고, 여기서
Figure pct00027
는 커널들의 수에 대응하고,
Figure pct00028
Figure pct00029
은 아래의 수학식 6 및 7에 보여진 관계들을 갖는다.
Figure pct00030
Figure pct00031
컨볼루션 연산들은 네트워크에 비선형성을 추가하기 위해 활성화 함수
Figure pct00032
와 조합될 수 있다:
Figure pct00033
, 여기서 b는 바이어스이다. 하나의 예는 max(0, x) 연산을 수행하는 ReLU(Rectified Linear Unit) 활성화 함수이다.
(2) 풀링 계층
CNN은 또한, 이미지의 패치들 상의 평균 또는 최대치를 취함으로써(평균-풀링 또는 최대-풀링) 서브샘플링이라고도 지칭되는 네트워크 차원을 감소시키는 것을 허용하는 풀링 계층들을 갖는다. 컨볼루션 계층들과 같이, 풀링 계층들은 스트라이드를 갖는 이미지의 작은 패치들에 작용한다. 한 예에서, 도 15를 참조하여, 그것 위에서 스트라이드 s=2로 최대-풀링이 수행되는 4x4 입력 패치(620)를 고려하면, 출력(622)의 출력 차원은 수평 및 수직 방들향의 입력 차원의 절반이다. 또한, 1보다 큰 스트라이드를 취함으로써 그리고 제로 패딩 없이, 컨볼루션 계층으로 차원을 감소시키는 것이 가능하지만, 풀링의 장점은 네트워크가 입력 이미지들의 작은 병진들에 덜 민감하게 만든다는 것이다.
(3) 완전 연결 계층들
몇몇 컨볼루션 및 풀링 계층들 후에, CNN은 일반적으로 몇 개의 완전 연결 계층들로 끝난다. 이전의 컨볼루션/풀링 계층의 출력인 텐서들은 값들의 단일 벡터가 되도록 변환된다.
B. 비디오 코딩에서의 CNN의 응용
(1) 루프 필터링
JVET-I0022에서는, 인트라 프레임들에 대한 CNNF(convolutional neural network filter)가 제공된다. CNNF는 JEM(Joint Exploration Model)에서의 필터들, 즉, BF(bilateral filter), DF(deblocking filter), 및 SAO(sample adaptive offset)를 대체하기 위해 인트라 프레임들에 대한 루프 필터로서 작업한다. 도 16a는 엔트로피 디코딩(631), 역 양자화(632), 역 변환(633), BF(634), DF(635), SAO(636), 예측(637) 및 ALF(adaptive loop filter)(638)를 포함하는 JEM의 인트라 디코딩 프로세스(630)를 도시한다. 도 16b는 BF(634), DF(635), 및 SAO(636) 대신에 CNNF(644)를 포함하는 인트라 디코딩 프로세스를 도시한다. B 및 P 프레임들에 대해, 필터들은 JEM 7.0에서의 것과 동일하게 유지될 수 있다.
도 16b 및 도 17을 참조하면, CNNF(644)는 2개의 입력: 재구성 파라미터(652) 및 양자화 파라미터(QP)(654)를 포함할 수 있으며, 이는 상이한 품질들을 갖는 재구성들에 적응하기 위해 단일 파라미터 세트를 사용하는 것을 가능하게 할 수 있다. 2개의 입력 둘 다는 훈련 프로세스에서 더 나은 수렴을 위해 정규화될 수 있다. 복잡성을 감소시키기 위해, 10개의 계층을 갖는 간단한 CNN이 채택될 수 있다. CNN은 하나의 연접(concatenation) 계층(656), 7개의 컨볼루션 계층(658A 내지 658G) - 각각에는 ReLU 계층, 하나의 컨볼루션 계층(660), 및 하나의 합계 계층(662)이 뒤따라옴 - 에 의해 구성될 수 있다. 이들 층들은 하나씩 연결되어 네트워크를 형성할 수 있다. 위의 계층 파라미터들은 컨볼루션 계층에 포함될 수 있다는 점을 알 수 있다. 재구성된 Y, U, 또는 V를 합계 계층에 연결함으로써, 네트워크는 재구성 이미지와 그것의 원래의 것 사이의 잔차의 특성들을 학습하도록 조정된다. 실시예에 따르면, 시뮬레이션 결과들은 AI 구성을 갖는 JEM-7.0에 대한 루마, 및 크로마 성분 둘에 대한 -3.57%, -6.17% 및 -7.06% BD-레이트 절감을 보고하고, 인코딩 및 디코딩 시간은 앵커와 비교하여 제각기 107% 및 12887%이다.
JVET-N0254에서, 조밀한 잔차 컨볼루션 신경망 기반 인루프 필터(DRNLF)의 실험 결과들이 보고된다. 이제 도 18을 참조하면, 예시적인 조밀한 잔차 네트워크(DRN)(670)의 구조적 블록도가 묘사되어 있다. 네트워크 구조는 N개의 조밀한 잔차 유닛(DRU들)(672A-N)을 포함할 수 있고, M은 컨볼루션 커널들의 수를 표시할 수 있다. 예를 들어, 계산 효율과 성능 사이의 절충으로서 N은 4에 설정될 수 있고 M은 32에 설정될 수 있다. 정규화된 QP 맵(674)은 DRN(670)에 대한 입력으로서 재구성된 프레임과 연접될 수 있다.
실시예들에 따르면, DRU들(672A-N)은 각각 도 19에 도시된 구조(680)를 가질 수 있다. DRU들은 숏컷(shortcut)을 통해 후속 유닛에 입력을 직접 전파할 수 있다. 계산 비용을 더 감소시키기 위해, 3x3 DSC(depth-wise separable convolutional) 계층이 DRU에 적용될 수 있다.
네트워크의 출력은 Y, Cb, Cr에 제각기 대응하는 3개의 채널을 가질 수 있다. 필터는 인트라 및 인터 픽처들 둘 다를 위해 적용될 수 있다. DRNLF의 온/오프를 표시하기 위해 각각의 CTU들에 대해 추가적인 플래그가 시그널링될 수 있다. 실시예의 실험 결과들은 Y, Cb, 및 Cr 성분들에 대해 제각기 -1.52%, -2.12% 및 -2.73%의 BD-레이트들을, 올 인트라 구성(All Intra configuration)으로 보여주고, -1.45%, -4.37% 및 -4.27%의 BD-레이트들을 랜덤 액세스 구성으로 보여주고, -1.54%, -6.04% 및 -5.86%의 BD-레이트들을 낮은 지연 구성으로 보여준다. 실시예에서, AI, RA, 및 LDB 구성에서 디코딩 시간은 4667%, 7156%, 및 9127%이다.
(2) 인트라 예측
이제 도 20 및 21을 참조하면, 인트라 예측 모드들에 대한 제1 프로세스(690A) 및 제2 프로세스(690B)의 도면들이 묘사되어 있다. 인트라 예측 모드들은 미래 비디오 코덱에서 직사각형 블록 상에 인트라-픽처 예측 신호를 생성하기 위해 사용될 수 있다. 이러한 인트라 예측 모드들은 다음의 2개의 주요 단계를 수행한다: 첫째, 디코딩된 샘플들로부터 특징들의 세트가 추출된다. 둘째, 이러한 특징들은 사전 정의된 이미지 패턴들의 아핀 선형 조합을 예측 신호로서 선택하기 위해 사용된다. 또한, 인트라-예측 모드들에 대해 구체적인 시그널링 방식이 사용될 수 있다.
도 20을 참조하면,
Figure pct00034
Figure pct00035
인 주어진 MxN 블록(692A)에 대해, 루마 예측 신호 pred의 생성은 신경망을 통해 참조 샘플들 r의 세트를 처리함으로써 수행된다. 참조 샘플들 r은 블록(692A)의 위쪽에 있는 크기 N+K의 K개의 행 및 좌측에 있는 크기 M의 K개의 열로 이루어져 있을 수 있다. 수 K는 M 및 N에 의존할 수 있다. 예를 들어, K는 모든 M 및 N에 대해 2에 설정될 수 있다.
신경망(696A)은, 다음과 같이, 재구성된 샘플들 r로부터 피처들의 벡터 ftr을 추출할 수 있다.
Figure pct00036
가 r의 샘플들의 수를 표시하는 경우, r은 차원
Figure pct00037
의 실제 벡터 공간에서의 벡터로서 간주된다.
Figure pct00038
행들 제각기 열들을 각각 갖는 고정 정수 정사각형 행렬들
Figure pct00039
Figure pct00040
에 대해 그리고 차원
Figure pct00041
의 고정 정수 바이어스 벡터들
Figure pct00042
Figure pct00043
에 대해, 먼저 이하의 수학식 8을 계산한다.
Figure pct00044
수학식 8에서, "·"는 보통의 행렬-벡터 곱을 표시한다. 더욱이, 함수
Figure pct00045
는 ELU 함수
Figure pct00046
의 정수 근사치이며, 여기서 후자의 함수는 아래의 수학식 9에 보여준 바와 같이 p 차원 벡터
Figure pct00047
에 대해 정의된다.
Figure pct00048
여기서
Figure pct00049
Figure pct00050
는 벡터들의 i번째 성분을 표시한다. 유사한 연산들을
Figure pct00051
에 적용하고, 아래의 수학식 10에 보여준 바와 같이
Figure pct00052
를 계산한다.
Figure pct00053
Figure pct00054
인 고정된 정수
Figure pct00055
에 대해,
Figure pct00056
개의 행 및
Figure pct00057
의 열을 갖는 미리 정의된 정수 행렬
Figure pct00058
및 차원
Figure pct00059
의 미리 정의된 정수 바이어스 벡터
Figure pct00060
과 같은 하나 이상의 바이어스 가중치(694A)가 있을 수 있고, 따라서 아래의 수학식 11에 보여진 바와 같이 특징 벡터 ftr을 계산한다.
Figure pct00061
Figure pct00062
의 값은 M 및 N에 의존한다. 지금,
Figure pct00063
으로 한다.
특징 벡터 ftr 중으로부터, 최종 예측 신호 pred는 아핀 선형 맵에 이어서 비트 심도에 의존하는 표준 클리핑 연산 클립(Clipping operation Clip)을 사용하여 생성된다. 따라서, M*N개의 행 및
Figure pct00064
개의 열을 갖는 미리 정의된 행렬
Figure pct00065
및 차원 M*N의 미리 정의된 바이어스 벡터
Figure pct00066
가 있고, 따라서 아래의 수학식 12에 보여진 바와 같이 pred를 계산한다.
Figure pct00067
이제 도 21을 참조하면, n개의 상이한 인트라 예측 모드(698B)가 사용되며, 여기서 n은 max(M,N)<32에 대해 35에 그리고 그렇지 않으면 11에 설정된다. 따라서,
Figure pct00068
인 인덱스 predmode는 인코더에 의해 시그널링되고 디코더에 의해 파싱되며, 이하의 신택스가 사용될 수 있다.
Figure pct00069
를 갖는데, 여기서 max(M,N)=32이면 k=3이고, 그렇지 않으면 k=5이다. 제1 단계에서,
Figure pct00070
인 인덱스 predIdx는 이하의 코드를 사용하여 시그널링된다. 먼저, 하나의 빈(bin)이 predIdx<3인지 여부를 인코딩한다. predIdx<3인 경우, 제2 빈은 predIdx=0인지 여부를 인코딩하고,
Figure pct00071
인 경우, 또 다른 빈이 predIdx가 1인지 2인지를 인코딩한다.
Figure pct00072
이면, predIdx의 값은 k개의 빈을 사용하여 정규 방식으로 시그널링된다.
인덱스 predIdx로부터, 블록(692B)의 위의 크기 N+2의 2개의 행 및 블록(692B)의 좌측의 크기 M의 2개의 열 상의 재구성된 샘플들 r'을 입력으로서 갖는 하나의 은닉 계층을 갖는 완전 연결 신경망(696B)을 이용하여 실제 인덱스 predmode가 도출된다.
재구성된 샘플들 r'은 차원 2*(M+N+2)의 실제 벡터 공간에서의 벡터로서 간주된다. 2*(M+N+2)개의 행 및 제각기 열들을 갖는 고정 정사각형 행렬
Figure pct00073
이 있고, 차원 2*(M+N+2)의 실제 벡터 공간에서의 고정 바이어스 벡터
Figure pct00074
과 같은 하나 이상의 바이어스 가중치(694B)가 있어서, 이하의 수학식 13에 보여진 바와 같이
Figure pct00075
을 계산하도록 된다.
Figure pct00076
n개의 행 및 2*(M+N+2)개의 열을 갖는 행렬
Figure pct00077
가 존재할 수 있고, 차원 n의 실제 벡터 공간에 고정 바이어스 벡터
Figure pct00078
가 존재할 수 있어서, 아래의 수학식 14에 보여진 바와 같이
Figure pct00079
를 계산하도록 된다.
Figure pct00080
인덱스 predmode는 이제
Figure pct00081
의 predIdx번째 최대 성분의 위치인 것으로서 도출된다. 여기서, 2개의 성분
Figure pct00082
Figure pct00083
Figure pct00084
에 대해 동일하면, k<1이면
Figure pct00085
Figure pct00086
보다 큰 것으로 간주되고, 그렇지 않으면
Figure pct00087
Figure pct00088
보다 큰 것으로 간주된다.
[다중 변환 선택]
HEVC에서 채택된 DCT-II에 부가하여, 인터 및 인트라 코딩된 블록들 둘 다를 잔차 코딩하기 위해 MTS(Multiple Transform Selection) 방식이 사용될 수 있다. 이 방식은 DCT8/DST7로부터의 다중의 선택된 변환을 포함할 수 있다. 실시예들에 따르면, DST-VII 및 DCT-VIII가 포함될 수 있다. Error! Reference source not found.는 N-포인트 입력에 대한 선택된 DST/DCT의 변환 기저 함수들을 보여준다.
Figure pct00089
변환 행렬의 직교성을 유지하기 위해, 변환 행렬들은 HEVC에서의 변환 행렬들보다 더 정확하게 양자화될 수 있다. 변환된 계수들의 중간 값들을 16 비트 범위 내에 유지하기 위해, 수평 변환 후에 및 수직 변환 후에, 모든 계수들은 10 비트를 갖도록 요구될 수 있다.
MTS 방식을 제어하기 위해, 개별 인에이블링 플래그들이 인트라 및 인터에 대해 제각기 SPS 레벨에서 지정될 수 있다. MTS가 SPS에서 인에이블될 때, MTS가 적용되는지 여부를 표시하기 위해 CU 레벨 플래그가 시그널링될 수 있다. 실시예들에 따르면, MTS는 루마에 대해서만 적용될 수 있다. MTS 시그널링은 다음의 조건들 중 하나가 적용될 때 스킵될 수 있다: (1) 루마 TB에 대한 마지막 유효 계수의 위치가 1 미만(즉, DC 전용)임, 또는 (2) 루마 TB의 마지막 유효 계수가 MTS 제로-아웃 영역 내부에 자리잡음.
MTS CU 플래그가 제로와 동일하면, DCT2는 양 방향으로 적용될 수 있다. 그러나, MTS CU 플래그가 1과 동일하면, 제각기 수평 및 수직 방향들에 대한 변환 타입을 표시하기 위해 2개의 다른 플래그가 부가적으로 시그널링될 수 있다. 아래의 표 5는 예시적인 변환 및 시그널링 매핑 테이블을 도시한다. ISP 및 암시적 MTS에 대한 변환 선택은 인트라-모드 및 블록-형상 의존성들을 제거함으로써 통일될 수 있다. 현재 블록이 ISP 모드인 경우 또는 현재 블록이 인트라 블록이고 인트라 및 인터 명시적 MTS 둘 다가 온(on)인 경우, 수평 및 수직 변환 코어들 둘 다에 대해 DST7만이 사용될 수 있다. 행렬 정밀도를 변환하게 될 때, 8 비트 1차 변환 코어들이 사용될 수 있다. 따라서, 4-포인트 DCT-2 및 DST-7, 8-포인트, 16-포인트, 및 32-포인트 DCT-2를 포함하는, HEVC에서 사용되는 모든 변환 코어들은 동일한 것으로서 유지될 수 있다. 또한, 64-포인트 DCT-2, 4-포인트 DCT-8, 8-포인트, 16-포인트, 32-포인트 DST-7, 및 DCT-8을 포함하는 다른 변환 코어들은 8-비트 1차 변환 코어들을 사용할 수 있다.
Figure pct00090
큰 크기의 DST-7 및 DCT-8의 복잡성을 감소시키기 위해, 32와 동일한 크기(폭 또는 높이, 또는 폭과 높이 둘 다)를 갖는 DST-7 및 DCT-8 블록들에 대해 고주파수 변환 계수들이 제로가 되어 없어질 수 있다. 16x16 저주파수 영역 내의 계수들만이 유지될 수 있다.
HEVC에서와 같이, 블록의 잔차는 변환 스킵 모드로 코딩될 수 있다. 신택스 코딩의 중복성을 회피하기 위해, CU 레벨(MTS_CU_flag)이 제로와 동일하지 않을 때 변환 스킵 플래그가 시그널링되지 않을 수 있다. 실시예들에 따르면, 암시적 MTS 변환은 LFNST 또는 MIP가 현재 CU에 대해 활성화될 때 DCT2에 설정될 수 있다. 또한, 암시적 MTS는 MTS가 인터 코딩된 블록들에 대해 인에이블될 때 여전히 인에이블될 수 있다.
[분리가능하지 않은 2차 변환]
JEM에서, 순방향 코어 변환과 양자화 사이에(인코더에서) 그리고 탈양자화와 역 코어 변환 사이에(디코더에서) 모드 의존적 NSST(non-separable secondary transform)이 적용될 수 있다. 낮은 복잡성을 유지하기 위해, NSST는 1차 변환 후에 저주파수 계수들에만 적용될 수 있다. 변환 계수 블록의 폭(W) 및 높이(H) 둘 다가 8보다 크거나 같다면, 8×8 분리가능하지 않은 2차 변환이 변환 계수 블록의 상단-좌측 8×8 영역에 적용될 수 있다. 그렇지 않고, 변환 계수 블록의 W 또는 H가 4인 경우, 4×4 분리가능하지 않은 2차 변환이 적용될 수 있고, 4×4 분리가능하지 않은 변환은 변환 계수 블록의 상단-좌측 min(8,W)×min(8,H) 영역에 대해 수행될 수 있다. 상기 변환 선택 규칙은 루마 및 크로마 성분들 둘 다에 대해 적용될 수 있다.
분리가능하지 않은 변환의 행렬 곱셈 구현은, 수학식 2 내지 수학식 3에 대하여, "VVC에서의 2차 변환" 서브섹션에서 앞서 설명된 바와 같이 수행될 수 있다. 실시예들에 따르면, 분리가능하지 않은 2차 변환은 직접 행렬 곱셈을 사용하여 구현될 수 있다.
[모드 종속적 변환 코어 선택]
4×4 및 8×8 블록 크기 둘 다에 대해 35×3 분리가능하지 않은 2차 변환들이 있을 수 있고, 여기서 35는 세트로서 표시된, 인트라 예측 모드에 의해 특정된 변환 세트들의 수이고, 3은 각각의 인트라 예측 모드에 대한 NSST(non-separable secondary transform) 후보들의 수이다. 인트라 예측 모드로부터 변환 세트로의 매핑은 도 22에 예시된 표 700에 보여진 바와 같이 정의될 수 있다. 루마/크로마 변환 계수들에 적용되는 변환 세트는 표 700에 따라 대응하는 루마/크로마 인트라 예측 모드들에 의해 특정될 수 있다. 34(대각선 예측 방향)보다 큰 인트라 예측 모드들에 대해, 변환 계수 블록은 인코더/디코더에서 2차 변환 전/후에 전치될 수 있다.
각각의 변환 세트에 대해, 선택된 분리가능하지 않은 2차 변환 후보는 명시적으로 시그널링된 CU-레벨 NSST 인덱스에 의해 추가로 특정될 수 있다. 인덱스는 변환 계수들 및 절단된 단항 이진화(truncated unary binarization)가 사용된 후에 인트라 CU당 한 번 비트스트림에서 시그널링될 수 있다. 절단된 값은 평면 또는 DC 모드의 경우에 2일 수 있고, 각도 인트라 예측 모드에 대해 3일 수 있다. 이 NSST 인덱스는 CU에 하나보다 많은 비-제로 계수가 있을 때에만 시그널링될 수 있다. 디폴트 값은 시그널링되지 않을 때 제로일 수 있다. 이 신택스 요소의 제로 값은 2차 변환이 현재 CU에 적용되지 않음을 나타낼 수 있고, 값들 1-3은 세트로부터의 어느 2차 변환이 적용되어야 하는지를 나타낼 수 있다.
JEM에서, NSST는 변환 스킵 모드로 코딩된 블록에 적용되지 않을 수 있다. NSST 인덱스가 CU에 대해 시그널링되고 제로와 동일하지 않을 때, NSST는 CU에서 변환 스킵 모드로 코딩되는 성분의 블록에 대해 사용되지 않을 수 있다. 모든 성분들의 블록들을 갖는 CU가 변환 스킵 모드에서 코딩되거나 또는 비-변환-스킵 모드 CB들의 비제로 계수들의 수가 2보다 작을 때, NSST 인덱스는 CU에 대해 시그널링되지 않을 수 있다.
[비교 실시예들의 변환 방식들의 문제점]
비교 실시예들에서, 분리가능한 변환 방식들은 지향성 텍스처 패턴들(예로서, 45/135도 방향에 있는 에지들)을 캡처하는 데 매우 효율적이지 않다. 분리가능하지 않은 변환 방식은 그러한 시나리오들에서 코딩 효율을 개선하는 데 도움이 될 수 있다. 계산 복잡성 및 메모리 풋프린트를 감소시키기 위해, 분리가능하지 않은 변환 방식들은 보통 1차 변환의 저주파수 계수들 위에 적용되는 2차 변환들로서 마련된다. 기존의 구현들에서, (1차/2차 및 분리가능/분리가능하지 않은 둘 다의 변환 커널들의 그룹으로부터) 사용될 변환 커널의 선택은 예측 모드 정보에 기초한다. 그러나, 예측 모드 정보 단독으로는, 도 23a-d의 표현들(710, 720, 730, 및 740)에 의해 도시된 바와 같이, 그 예측 모드에 대해 관찰된 잔차 패턴들의 전체 공간의 성긴(coarse) 표현만을 제공할 수 있다. 표현들(710, 720, 730, 및 730)은 AV1에서 D45(45°) 인트라 예측 모드에 대해 관찰된 잔차 패턴들을 도시한다. 이웃 재구성된 샘플들은 그런 잔차 패턴들의 보다 효율적인 표현을 위한 부가 정보를 제공할 수 있다.
다중의 변환 커널 후보를 갖는 변환 방식들의 경우, 인코더 및 디코더 둘 다에 대해 이용가능한 코딩된 정보를 사용하여 변환 세트가 식별될 필요가 있을 수 있다. MTS 및 NSST와 같은 기존의 다중의 변환 방식들에서, 변환 세트는 인트라 예측 모드와 같은 코딩 예측 모드 정보에 기초하여 선택된다. 그러나, 예측 모드는 예측 잔차들의 모든 통계를 완전히 커버하며, 이웃 재구성된 샘플들은 예측 잔차의 더 효율적인 분류를 위한 추가 정보를 제공할 수 있다. 신경망 기반 방법들은 예측 잔차들의 효율적인 분류를 위해 적용될 수 있고, 따라서 더 효율적인 변환 세트 선택을 제공할 수 있다.
[본 개시내용의 실시예들의 예시적인 양태들]
본 개시내용의 실시예들은 개별적으로 사용되거나 또는 임의의 순서로 조합될 수 있다. 또한, 실시예들(예를 들어, 방법들, 인코더들, 및 디코더들) 각각은 처리 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 비일시적 컴퓨터 판독가능 매체에 저장되는 프로그램을 실행한다.
본 개시내용의 실시예들은 위에서 설명된 바와 같은 임의의 수의 양태들을 포함할 수 있다. 본 개시내용의 실시예들은 또한 아래에 설명되는 양태들 중 하나 이상을 포함하고, 위에 논의된 문제들 및/또는 다른 문제들을 해결할 수 있다.
A. 제1 양태
실시예들에 따르면, 이웃 재구성된 샘플들이 변환 세트를 선택하기 위해 사용될 수 있다.
하나 이상의 실시예에서, 변환 세트들의 그룹으로부터, 변환 세트들의 서브 그룹이 예측 모드(예를 들어, 인트라 예측 모드 또는 인터 예측 모드)와 같은 코딩된 정보를 사용하여 선택된다. 일 실시예에서, 변환 세트들의 선택된 서브 그룹으로부터, 인트라/인터 예측 모드의 타입, 블록 크기, 현재 블록의 예측 블록 샘플들, 및 현재 블록의 이웃 재구성된 샘플들과 같은 다른 코딩된 정보를 사용하여 하나의 변환 세트가 식별된다. 마지막으로, 현재 블록에 대한 변환 후보가 비트스트림에서 시그널링되는 연관된 인덱스를 사용하여 식별된 변환 세트로부터 선택된다. 일 실시예에서, 변환 세트들의 선택된 서브 그룹으로부터, 최종 변환 후보가 인트라/인터 예측 모드의 타입, 블록 크기, 현재 블록의 예측 블록 샘플들 및 현재 블록의 이웃 재구성된 샘플들과 같은 다른 코딩된 정보를 사용하여 암시적으로 식별된다.
하나 이상의 실시예에서, 이웃 재구성된 샘플 세트는 이전에 재구성된 이웃 블록들로부터의 샘플들을 포함할 수 있다. 일 실시예에서, 이웃 재구성된 샘플 세트는 상단 및 좌측 이웃 재구성된 샘플들의 하나 이상의 라인을 포함할 수 있다. 일 예에서, 상단 및/또는 좌측 이웃 재구성된 샘플들의 라인들의 수는 인트라 예측을 위해 사용되는 이웃 재구성된 샘플들의 라인들의 최대 수와 동일하다. 일 예에서, 상단 및/또는 좌측 이웃 재구성된 샘플들의 라인들의 수는 CfL 예측 모드에 대해 사용되는 이웃 재구성된 샘플들의 라인들의 최대 수와 동일하다. 일 실시예에서, 이웃 재구성된 샘플 세트는 이웃 재구성된 블록들로부터의 모든 샘플들을 포함할 수 있다.
하나 이상의 실시예에서, 변환 세트들의 그룹은 1차 변환 커널들만, 2차 변환 커널들만, 또는 1차 및 2차 변환 커널들의 조합을 포함한다. 변환 세트들의 그룹이 1차 변환 커널들만을 포함하는 경우, 1차 변환 커널들은 분리가능할 수 있거나, 분리가능하지 않을 수 있거나, 상이한 타입들의 DCT들/DST들을 사용할 수 있거나, 또는 상이한 셀프-루프 레이트(self-loop rate)들을 갖는 상이한 라인 그래프 변환들을 사용할 수 있다. 변환 세트들의 그룹이 2차 변환 커널들만을 포함하는 경우, 2차 변환 커널들은 분리가능하지 않거나 또는 상이한 셀프-루프 레이트들을 갖는 상이한 분리가능하지 않은 라인 그래프 변환들을 사용할 수 있다.
하나 이상의 실시예에서, 이웃 재구성된 샘플들은 특정 변환 세트와 연관된 인덱스를 도출하도록 처리될 수 있다. 일 실시예에서, 이웃 재구성된 샘플들은 변환 프로세스에 입력되고, 변환 계수들은 특정 변환 세트와 연관된 인덱스를 식별하기 위해 사용된다. 일 실시예에서, 이웃 재구성된 샘플들은 다중의 변환 프로세스에 입력되고, 각각의 변환 프로세스의 비용 값을 평가하기 위해 비용 함수가 사용된다. 그 후, 변환 세트 인덱스를 선택하기 위해 비용 값들이 사용된다. 예시적인 비용 값은 특정 스캐닝 순서를 따른 제1 N(예를 들어, 1, 2, 3, 4,..., 16)개의 변환 계수의 크기의 합을 포함하지만, 이것에만 제한되지는 않는다. 일 실시예에서, 분류기는 미리 정의되고, 이웃 재구성된 샘플들은 변환 세트 인덱스를 식별하기 위해 분류기에 입력된다.
B. 제2 양태
실시예들에 따르면, 신경망 기반 변환 세트 선택 방식이 제공될 수 있다. 신경망의 입력은 현재 블록의 예측 블록 샘플들, 현재 블록의 이웃 재구성된 샘플들을 포함하지만, 이것에만 제한되지는 않고, 출력은 변환 세트를 식별하기 위해 사용되는 인덱스일 수 있다.
하나 이상의 실시예에서, 변환 세트들의 그룹이 정의되고, 변환 세트들의 서브 그룹이 예측 모드(예를 들어, 인트라 예측 모드 또는 인터 예측 모드)와 같은 코딩된 정보를 사용하여 선택되고, 그 후 변환 세트들의 선택된 서브 그룹 중 하나의 변환 세트가 현재 블록의 예측 블록 샘플들, 현재 블록의 이웃 재구성된 샘플들과 같은 다른 코드 정보를 사용하여 식별된다. 그 후, 현재 블록에 대한 변환 후보가 비트스트림에서 시그널링되는 연관된 인덱스를 사용하여 식별된 변환 세트로부터 선택된다.
하나 이상의 실시예에서, 이웃 재구성된 샘플들은 상단 및 좌측 이웃 재구성된 샘플들의 하나 이상의 라인을 포함할 수 있다. 일 예에서, 상단 및/또는 좌측 이웃 재구성된 샘플들의 라인들의 수는 인트라 예측을 위해 사용되는 이웃 재구성된 샘플들의 라인들의 최대 수와 동일하다.
일 예에서, 상단 및/또는 좌측 이웃 재구성된 샘플들의 라인들의 수는 CfL 예측 모드에 대해 사용되는 이웃 재구성된 샘플들의 라인들의 최대 수와 동일하다.
하나 이상의 실시예에서, 이웃 재구성된 샘플들 및/또는 현재 블록의 예측 블록 샘플들은 신경망의 입력들이고, 출력은 변환 세트에 대한 식별자를 포함할 뿐만 아니라 예측 모드 세트에 대한 식별자도 포함한다. 다시 말해서, 신경망은 변환 세트 및 예측 모드의 특정 조합들을 식별하기 위해 현재 블록의 이웃 재구성된 샘플들 및/또는 예측 블록 샘플들을 사용한다.
하나 이상의 실시예에서, 신경망은 2차 변환을 위한 변환 세트를 식별하기 위해 사용된다. 대안적으로, 신경망은 1차 변환을 위해 사용되는 변환 세트를 식별하기 위해 사용된다. 대안적으로, 신경망은 2차 변환과 1차 변환의 조합을 특정하기 위해 사용되는 변환 세트를 식별하기 위해 사용된다. 일 실시예에서, 2차 변환은 분리가능하지 않은 변환 방식을 사용하는 것이다. 일 실시예에서, 1차 변환은 상이한 타입들의 DCT들/DST들을 사용할 수 있다. 또 다른 실시예에서, 1차 변환은 상이한 셀프-루프 레이트들을 갖는 상이한 라인 그래프 변환들을 사용할 수 있다.
하나 이상의 실시예에서, 상이한 블록 크기들에 대해, 현재 블록의 이웃 재구성된 샘플들 및/또는 예측 블록 샘플들은 신경망의 입력으로서 사용되기 전에 추가로 업샘플링 또는 다운샘플링될 수 있다.
하나 이상의 실시예에서, 상이한 내부 비트 심도 (bit depth)에 대해, 현재 블록의 이웃 재구성된 샘플들 및/또는 예측 블록 샘플들은 신경망의 입력으로서 사용되기 전에 내부 비트 심도 값에 따라 추가로 스케일링(또는 양자화)될 수 있다.
하나 이상의 실시예에서, 신경망에서 사용되는 파라미터들은, 블록이 인트라 코딩되는지 여부, 블록 폭 및/또는 블록 높이, 양자화 파라미터, 현재 픽처가 인트라(키) 프레임으로서 코딩되는지 여부, 및 인트라 예측 모드를 포함하지만 이에 제한되지는 않는 코딩된 정보에 의존한다.
실시예들에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 명령어들을 저장하는 메모리가 제공될 수 있다. 컴퓨터 프로그램 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 인코더 또는 디코더를 구현할 수 있고, 또한 본 개시내용에 설명된 임의의 수의 기능들을 수행할 수 있다. 예를 들어, 도 24를 참조하면, 적어도 하나의 프로세서는 디코더(800)를 구현할 수 있다. 컴퓨터 프로그램 명령어들은, 예를 들어, 적어도 하나의 프로세서로 하여금 (예를 들어, 인코더로부터) 수신되는 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하게 야기하도록 구성되는 디코딩 코드(810)를 포함할 수 있다. 디코딩 코드(810)는, 예를 들어, 변환 세트 선택 코드(820), 변환 선택 코드(830), 및 변환 코드(840)를 포함할 수 있다.
변환 세트 선택 코드(820)는 적어도 하나의 프로세서로 하여금 본 개시내용의 실시예들에 따라 변환 세트를 선택하게 야기할 수 있다. 예를 들어, 변환 세트 선택 코드(820)는 적어도 하나의 프로세서로 하여금 하나 이상의 이전에 디코딩된 이웃 블록으로부터의 또는 이전에 디코딩된 픽처로부터의 적어도 하나의 이웃 재구성된 샘플에 기초하여 변환 세트를 선택하게 야기할 수 있다. 실시예들에 따르면, 변환 세트 선택 코드(820)는, 적어도 하나의 프로세서로 하여금, 본 개시내용의 실시예들에 따라, 제1 코딩된 정보에 기초하여 변환 세트들의 그룹으로부터 변환 세트들의 서브 그룹을 선택하고 또한 서브 그룹으로부터 변환 세트를 선택하게 야기하도록 구성될 수 있다.
변환 선택 코드(830)는 적어도 하나의 프로세서로 하여금 본 개시내용의 실시예들에 따라 변환 세트로부터 변환 후보를 선택하게 야기할 수 있다. 예를 들어, 변환 선택 코드(830)는, 적어도 하나의 프로세서로 하여금, 본 개시내용의 실시예들에 따라, 코딩된 비트스트림에서 시그널링되는 인덱스 값에 기초하여 변환 세트로부터 변환 후보를 선택하게 야기할 수 있다.
변환 코드(840)는, 본 개시내용의 실시예들에 따라, 적어도 하나의 프로세서로 하여금 변환 세트로부터의 변환(예를 들어, 변환 후보)을 사용하여 블록의 계수들을 역 변환하게 야기할 수 있다.
실시예들에 따르면, 디코딩 코드(810)는, 본 개시내용의 실시예들에 따라, 신경망으로 하여금 변환 그룹, 변환 서브 그룹, 변환 세트, 및/또는 변환을 선택하는데 있어서 사용되게 야기하거나, 또는 다른 방식으로 디코딩의 적어도 일부를 수행하게 야기할 수 있다. 실시예들에 따르면, 디코더(800)는, 본 개시내용의 실시예들에 따라, 적어도 하나의 프로세서로 하여금 신경망을 구현하게 야기하도록 구성되는 신경망 코드(850)를 추가로 포함할 수 있다.
실시예들에 따르면, 위의 프로세스들에 대응하는 인코더 측 프로세스들은 위의 설명들에 기초하여 본 기술분야의 통상의 기술자에 의해 이해되는 바와 같이 픽처를 인코딩하기 위한 인코딩 코드에 의해 구현될 수 있다.
위에서 설명된 본 개시내용의 실시예들의 기법들은 컴퓨터 판독가능 명령어들을 사용하여 컴퓨터 소프트웨어로서 구현되고 하나 이상의 컴퓨터 판독가능 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 25는 개시된 주제의 실시예들을 구현하기에 적합한 컴퓨터 시스템(900)을 도시한다.
컴퓨터 소프트웨어는, CPU들(computer central processing units), GPU들(Graphics Processing Units) 등에 의해, 직접적으로, 또는 해석, 마이크로코드 실행 등을 통해 실행될 수 있는 명령어들을 포함하는 코드를 생성하기 위해, 어셈블리, 컴필레이션, 링킹, 또는 유사한 메커니즘의 대상이 될 수 있는 임의의 적합한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어들은, 예를 들어, 개인용 컴퓨터들, 태블릿 컴퓨터들, 서버들, 스마트폰들, 게이밍 디바이스들, 사물 인터넷(internet of things) 디바이스들 등을 포함하여, 다양한 타입의 컴퓨터들 또는 그것의 컴포넌트들 상에서 실행될 수 있다.
컴퓨터 시스템(900)에 대한 도 25에 도시된 컴포넌트들은 사실상 예시적인 것이고, 본 개시내용의 실시예들을 구현하는 컴퓨터 소프트웨어의 사용 또는 기능성의 범위에 대한 어떠한 제한도 시사하도록 의도되지 않는다. 컴포넌트들의 구성은 컴퓨터 시스템(900)의 예시적 실시예에 예시된 컴포넌트들 중 어느 하나 또는 조합에 관한 임의의 의존 또는 요건을 갖는 것으로서 해석되지 않아야 한다.
컴퓨터 시스템(900)은 특정 인간 인터페이스 입력 디바이스들을 포함할 수 있다. 그러한 인간 인터페이스 입력 디바이스는, 예를 들어, 촉각 입력(예컨대: 키스트로크들(keystrokes), 스와이프들(swipes), 데이터 글러브 움직임들(data glove movements)), 오디오 입력(예컨대: 음성, 손뼉), 시각적 입력(예컨대: 제스처들), 후각적 입력(묘사되지 않음)을 통한 하나 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스들은, 오디오(음성, 음악, 주변 소리 등), 이미지들(스캔된 이미지들, 스틸 이미지 카메라로부터 획득된 사진 이미지들 등), 비디오(2차원 비디오, 입체 비디오를 포함하는 3차원 비디오 등) 등의, 인간에 의한 의식적 입력에 반드시 직접 관련될 필요는 없는 특정 미디어를 캡처하는 데에도 이용될 수 있다.
입력 인간 인터페이스 디바이스들은: 키보드(901), 마우스(902), 트랙패드(903), 터치 스크린(910), 데이터-글러브(data-glove), 조이스틱(905), 마이크로폰(906), 스캐너(907), 카메라(908) 중 하나 이상(각각의 하나만이 묘사됨)을 포함할 수 있다.
컴퓨터 시스템(900)은 또한 특정 인간 인터페이스 출력 디바이스들을 포함할 수 있다. 그러한 인간 인터페이스 출력 디바이스들은, 예를 들어, 촉각 출력, 사운드, 광, 및 냄새/맛을 통해 하나 이상의 인간 사용자의 감각들을 자극하고 있을 수 있다. 그러한 인간 인터페이스 출력 디바이스들은 촉각 출력 디바이스들(예를 들어, 터치-스크린(910), 데이터-글러브, 또는 조이스틱(905)에 의한 촉각 피드백, 그러나 입력 디바이스들로서 역할을 하지 않는 촉각 피드백 디바이스들도 있을 수 있음)을 포함할 수 있다. 예를 들어, 그러한 디바이스들은 오디오 출력 디바이스들(예컨대: 스피커들(909), 헤드폰들(묘사되지 않음)), 시각적 출력 디바이스들(예컨대 CRT 스크린들, LCD 스크린들, 플라즈마 스크린들, OLED 스크린들을 포함하는 스크린들(910), 각각은 터치-스크린 입력 능력이 있거나 없고, 각각은 촉각 피드백 능력이 있거나 없음 - 이들 중 일부는 스테레오그래픽 출력과 같은 수단을 통해 2차원 시각적 출력 또는 3개보다 많은 차원의 출력을 출력할 수 있음 -); 가상 현실 안경(묘사되지 않음), 홀로그래픽 디스플레이 및 연기 탱크(묘사되지 않음), 및 프린터(묘사되지 않음)일 수 있다.
컴퓨터 시스템(900)은 인간 액세스 가능한 저장 디바이스들 및 그것들과 연관된 매체들, 예컨대 CD/DVD 등의 매체(921)를 갖는 CD/DVD ROM/RW(920)를 포함하는 광학 매체, 썸-드라이브(922), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(923), 테이프 및 플로피 디스크(묘사되지 않음)와 같은 레거시 자기 매체, 보안 동글들(묘사되지 않음)과 같은 특수화된 ROM/ASIC/PLD 기반 디바이스들 등을 또한 포함할 수 있다.
본 기술분야의 통상의 기술자들은 현재 개시된 주제와 연관되어 사용되는 용어 "컴퓨터 판독가능 매체(computer readable media)"가 송신 매체들, 반송파들(carrier waves), 또는 다른 일시적 신호들을 포함하지 않는다는 점을 또한 이해할 것이다.
컴퓨터 시스템(900)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스를 포함할 수 있다. 네트워크들은, 예를 들어, 무선(wireless), 유선(wireline), 광학적(optical)일 수 있다. 네트워크들은 추가로 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연-허용(delay-tolerant) 등일 수 있다. 네트워크들의 예들은 로컬 영역 네트워크들, 예컨대 이더넷, 무선 LAN들, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크들, 케이블 TV, 위성 TV 및 지상파 브로드캐스트 TV를 포함하는 TV 와이어라인 또는 무선 광역 디지털 네트워크들, CANBus를 포함하는 차량 및 산업 등을 포함한다. 특정 네트워크들은 흔히 특정 범용 데이터 포트들 또는 주변 버스들(949)(예를 들어, 컴퓨터 시스템(900)의 USB 포트들과 같은 것)에 부착된 외부 네트워크 인터페이스 어댑터들을 요구한다; 다른 것들은 흔히 아래에 설명되는 바와 같은 시스템 버스로의 부착에 의해 컴퓨터 시스템(900)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스). 이러한 네트워크들 중 임의의 것을 사용하여, 컴퓨터 시스템(900)은 다른 엔티티들과 통신할 수 있다. 그러한 통신은 단방향 수신 전용(예컨대, 브로드캐스트 TV), 단방향 전송 전용(예컨대, 특정 CANbus 디바이스들에 대한 CANbus), 또는 예컨대 로컬 또는 광역 디지털 네트워크들을 사용한 다른 컴퓨터 시스템들에 대한 양방향성일 수 있다. 이러한 통신은 클라우드 컴퓨팅 환경(955)으로의 통신을 포함할 수 있다. 위에서 설명된 바와 같은 네트워크들 및 네트워크 인터페이스들 각각에 대해 특정 프로토콜들 및 프로토콜 스택들이 사용될 수 있다.
전술한 인간 인터페이스 디바이스들, 인간-액세스 가능 저장 디바이스들, 및 네트워크 인터페이스들(954)은 컴퓨터 시스템(900)의 코어(940)에 부착될 수 있다.
코어(940)는 하나 이상의 CPU(Central Processing Unit)(941), GPU(Graphics Processing Unit)(942), FPGA(Field Programmable Gate Area)(943)의 형식의 특수화된 프로그래머블 처리 유닛, 특정 작업들을 위한 하드웨어 가속기(944) 등을 포함할 수 있다. 이들 디바이스는, 판독 전용 메모리(ROM)(945), 랜덤 액세스 메모리(946), 내부 비-사용자 액세스 가능 하드 드라이브들, SSD들 등과 같은 내부 대용량 저장소(947)와 함께, 시스템 버스(948)를 통해 연결될 수 있다. 일부 컴퓨터 시스템들에서, 시스템 버스(948)는 추가적인 CPU들, GPU들 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스 가능할 수 있다. 주변 디바이스들은 코어의 시스템 버스(948)에 직접적으로, 또는 주변 버스(949)를 통해 부착될 수 있다. 주변 버스를 위한 아키텍처들은 PCI, USB 등을 포함한다. 그래픽 어댑터(950)가 코어(940)에 포함될 수 있다.
CPU(941), GPU(942), FPGA(943), 및 가속기(944)는, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어들을 실행할 수 있다. 그 컴퓨터 코드는 ROM(945) 또는 RAM(946)에 저장될 수 있다. 과도적 데이터(transitional data)가 또한 RAM(946)에 저장될 수 있는 반면, 영구 데이터가 예를 들어, 내부 대용량 저장소(947)에 저장될 수 있다. 메모리 디바이스들 중 임의의 것에 대한 고속 저장 및 검색은 하나 이상의 CPU(941), GPU(942), 대용량 저장소(947), ROM(945), RAM(946) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 가능하게 될 수 있다.
컴퓨터 판독가능 매체는 다양한 컴퓨터 구현된 동작들(computer-implemented operations)을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적을 위해 특별히 설계되고 구성된 것들일 수 있거나, 또는 그것들은 컴퓨터 소프트웨어 기술분야의 통상의 기술자들에게 잘 알려져 있고 이용가능한 종류의 것일 수 있다.
제한이 아니라 예로서, 아키텍처를 갖는 컴퓨터 시스템(900), 및 구체적으로 코어(940)는 프로세서(들)(CPU들, GPU들, FPGA, 가속기들 등을 포함함)가 하나 이상의 유형의(tangible) 컴퓨터 판독가능 매체에 구체화된 소프트웨어를 실행한 결과로서 기능성을 제공할 수 있다. 그러한 컴퓨터 판독가능 매체는 위에 소개된 바와 같은 사용자-액세스가능(user-accessible) 대용량 저장소뿐만 아니라, 코어 내부 대용량 저장소(947) 또는 ROM(945)과 같은 비일시적 본질의 것인 코어(940)의 특정 저장소와 연관된 매체일 수 있다. 본 개시내용의 다양한 실시예들을 구현하는 소프트웨어가 이러한 디바이스들에 저장되고 코어(940)에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 특정 필요에 따라 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(940) 및 구체적으로 그 내부의 프로세서들(CPU, GPU, FPGA 등을 포함함)로 하여금, RAM(946)에 저장된 데이터 구조들을 정의하는 것 및 소프트웨어에 의해 정의된 프로세스들에 따라 그러한 데이터 구조들을 수정하는 것을 포함하여, 본 명세서에 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하게 야기할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은, 본 명세서에 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하기 위해 소프트웨어 대신에 또는 그와 함께 동작할 수 있는, 회로(예를 들어: 가속기(944))에 하드와이어링되거나 다른 방식으로 구체화된 로직의 결과로서 기능성을 제공할 수 있다. 소프트웨어에 대한 참조는, 적절한 경우, 로직을 포함할 수 있고, 그 반대도 가능하다. 컴퓨터 판독가능 매체에 대한 참조는, 적절한 경우, 실행을 위한 소프트웨어를 저장하는(IC(integrated circuit)와 같은) 회로, 또는 실행을 위한 로직을 구현하는 회로, 또는 둘 다를 포함할 수 있다. 본 개시내용은 하드웨어 및 소프트웨어의 임의의 적합한 조합을 포함한다.
본 개시내용이 여러 비제한적인 예시적인 실시예들을 설명하였지만, 본 개시내용의 범위 내에 속하는 변경들, 치환들, 및 다양한 대체 균등물들이 존재한다. 따라서, 본 기술 분야의 통상의 기술자들은, 본 명세서에서 명시적으로 도시되거나 기술되지는 않았지만, 본 개시내용의 원리들을 구현하고 따라서 그 사상 및 범위 내에 있는 수많은 시스템들 및 방법들을 안출할 수 있다는 것을 알 것이다.

Claims (20)

  1. 적어도 하나의 프로세서에 의해 수행되는 방법으로서:
    코딩된 비트스트림을 수신하는 단계; 및
    상기 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하는 단계를 포함하고, 상기 디코딩하는 단계는:
    하나 이상의 이전에 디코딩된 이웃 블록으로부터의 또는 이전에 디코딩된 픽처로부터의 적어도 하나의 이웃 재구성된 샘플에 기초하여 변환 세트를 선택하는 단계; 및
    상기 변환 세트로부터의 변환을 이용하여 상기 블록의 계수들을 역 변환하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 변환 세트를 선택하는 단계는 예측 모드의 코딩된 정보에 추가로 기초하는 방법.
  3. 제2항에 있어서, 상기 코딩된 정보는 인터 예측 모드의 것인 방법.
  4. 제1항에 있어서, 상기 변환 세트를 선택하는 단계는:
    제1 코딩된 정보에 기초하여 변환 세트들의 그룹으로부터 변환 세트들의 서브 그룹을 선택하는 단계; 및
    상기 서브 그룹으로부터 상기 변환 세트를 선택하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 서브 그룹으로부터 상기 변환 세트를 선택하는 단계는 제2 코딩된 정보에 기초하여 상기 변환 세트를 선택하는 단계를 포함하고,
    상기 방법은 상기 코딩된 비트스트림에서 시그널링되는 인덱스 값에 기초하여 상기 변환 세트로부터 변환 후보를 선택하는 단계를 추가로 포함하는 방법.
  6. 제1항에 있어서, 상기 적어도 하나의 이웃 재구성된 샘플은 상기 하나 이상의 이전에 디코딩된 이웃 블록으로부터의 재구성된 샘플을 포함하는 방법.
  7. 제1항에 있어서,
    상기 변환 세트를 선택하는 단계는 변환 세트들의 그룹으로부터 상기 변환 세트를 선택하는 단계를 포함하고,
    상기 변환 세트들의 그룹은 2차 변환 커널들만을 포함하는 방법.
  8. 제7항에 있어서, 상기 제2 변환 커널들은 분리가능하지 않은 방법.
  9. 제1항에 있어서, 상기 변환 세트를 선택하는 단계는 상기 적어도 하나의 이웃 재구성된 샘플의 정보를 신경망에 입력하고 상기 신경망으로부터 출력되는 인덱스에 기초하여 상기 변환 세트를 식별함으로써 수행되는 방법.
  10. 제1항에 있어서, 상기 변환 세트는 2차 변환인 방법.
  11. 시스템으로서:
    컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 지시된 대로 동작하도록 구성된 적어도 하나의 프로세서 - 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금 수신되는 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하게 야기하도록 구성된 디코딩 코드를 포함함 - 를 포함하고,
    상기 디코딩 코드는:
    상기 적어도 하나의 프로세서로 하여금 하나 이상의 이전에 디코딩된 이웃 블록으로부터의 또는 이전에 디코딩된 픽처로부터의 적어도 하나의 이웃 재구성 샘플에 기초하여 변환 세트를 선택하게 야기하도록 구성된 변환 세트 선택 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 변환 세트로부터의 변환을 사용하여 상기 블록의 계수들을 역 변환하게 야기하도록 구성된 변환 코드를 포함하는 시스템.
  12. 제11항에 있어서, 상기 변환 세트는 예측 모드의 코딩된 정보에 추가로 기초하여 선택되는 시스템.
  13. 제12항에 있어서, 상기 코딩된 정보는 인터 예측 모드의 것인 시스템.
  14. 제11항에 있어서, 상기 변환 세트 선택 코드는 상기 적어도 하나의 프로세서로 하여금:
    제1 코딩된 정보에 기초하여 변환 세트들의 그룹으로부터 변환 세트들의 서브 그룹을 선택하고; 및
    상기 서브 그룹으로부터 상기 변환 세트를 선택하도록 야기하게 구성되는 시스템.
  15. 제14항에 있어서,
    상기 변환 세트 선택 코드는 상기 적어도 하나의 프로세서로 하여금 제2 코딩된 정보에 기초하여 상기 변환 세트를 선택하게 야기하도록 구성되고,
    상기 디코딩 코드는 상기 적어도 하나의 프로세서로 하여금 상기 코딩된 비트스트림에서 시그널링되는 인덱스 값에 기초하여 상기 변환 세트로부터 변환 후보를 선택하게 야기하도록 구성된 변환 선택 코드를 추가로 포함하는 시스템.
  16. 제11항에 있어서, 상기 적어도 하나의 이웃 재구성된 샘플은 상기 하나 이상의 이전에 디코딩된 이웃 블록으로부터의 재구성된 샘플을 포함하는 시스템.
  17. 제11항에 있어서,
    상기 변환 세트 선택 코드는 변환 세트들의 그룹으로부터 상기 변환 세트를 선택하도록 구성되고,
    상기 변환 세트들의 그룹은 2차 변환 커널들만을 포함하는 시스템.
  18. 제17항에 있어서, 상기 2차 변환 커널들은 분리가능하지 않은 시스템.
  19. 제11항에 있어서,
    상기 변환 세트 선택 코드는 상기 적어도 하나의 프로세서로 하여금 상기 적어도 하나의 이웃 재구성된 샘플의 정보를 신경망에 입력하고, 상기 신경망으로부터 출력되는 인덱스에 기초하여 상기 변환 세트를 식별하게 야기하도록 구성되는 시스템.
  20. 컴퓨터 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 컴퓨터 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
    하나 이상의 이전에 디코딩된 이웃 블록으로부터의 또는 이전에 디코딩된 픽처로부터의 적어도 하나의 이웃 재구성된 샘플에 기초하여 변환 세트를 선택하고; 및
    상기 변환 세트로부터의 변환을 이용하여 상기 블록의 계수들을 역 변환함으로써 수신된 코딩된 비트스트림으로부터 픽처의 블록을 디코딩하게 야기하도록 구성되는 비일시적 컴퓨터 판독가능 매체.
KR1020227016396A 2020-09-10 2021-06-29 컨텍스트 적응 변환 세트 KR20220077931A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202063076817P 2020-09-10 2020-09-10
US63/076,817 2020-09-10
US202063077381P 2020-09-11 2020-09-11
US63/077,381 2020-09-11
US17/354,731 2021-06-22
US17/354,731 US11683490B2 (en) 2020-09-10 2021-06-22 Context adaptive transform set
PCT/US2021/039665 WO2022055599A1 (en) 2020-09-10 2021-06-29 Context adaptive transform set

Publications (1)

Publication Number Publication Date
KR20220077931A true KR20220077931A (ko) 2022-06-09

Family

ID=80471073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227016396A KR20220077931A (ko) 2020-09-10 2021-06-29 컨텍스트 적응 변환 세트

Country Status (6)

Country Link
US (2) US11683490B2 (ko)
EP (1) EP4042688A4 (ko)
JP (1) JP7500732B2 (ko)
KR (1) KR20220077931A (ko)
CN (1) CN114641996A (ko)
WO (1) WO2022055599A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080623A1 (ko) * 2022-10-12 2024-04-18 삼성전자 주식회사 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220092827A1 (en) * 2020-09-23 2022-03-24 Electronics And Telecommunications Research Institute Method, apparatus, system and computer-readable recording medium for feature information
US20220094977A1 (en) * 2020-09-23 2022-03-24 Electronics And Telecommunications Research Institute Method, apparatus and storage medium for image encoding/decoding

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170116204A (ko) * 2009-01-27 2017-10-18 톰슨 라이센싱 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치
WO2011043793A1 (en) * 2009-10-05 2011-04-14 Thomson Licensing Methods and apparatus for embedded quantization parameter adjustment in video encoding and decoding
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
FR3038196A1 (fr) * 2015-06-29 2016-12-30 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
US10681379B2 (en) 2015-09-29 2020-06-09 Qualcomm Incorporated Non-separable secondary transform for video coding with reorganizing
US20170150156A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Illumination compensation with non-square predictive blocks in video coding
US10880564B2 (en) * 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
WO2018174402A1 (ko) * 2017-03-21 2018-09-27 엘지전자 주식회사 영상 코딩 시스템에서 변환 방법 및 그 장치
EP3451663A1 (en) 2017-08-31 2019-03-06 Thomson Licensing Pools of transforms for local selection of a set of transforms in video coding
US10567801B2 (en) 2018-03-07 2020-02-18 Tencent America LLC Method and apparatus for video coding with primary and secondary transforms
TWI731322B (zh) * 2018-03-29 2021-06-21 弗勞恩霍夫爾協會 變換組
EP3836543A4 (en) 2018-09-02 2021-06-16 Lg Electronics Inc. IMAGE ENCODING PROCESS ON THE BASIS OF A MULTIPLE TRANSFORMATION SELECTION AND DEVICE FOR IT
CN109283753A (zh) * 2018-10-30 2019-01-29 武汉华星光电技术有限公司 显示面板以及显示装置
WO2020162732A1 (ko) * 2019-02-09 2020-08-13 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
US20220086490A1 (en) * 2019-02-12 2022-03-17 Lg Electronics Inc. Method and apparatus for processing video signal
US11240534B2 (en) * 2019-04-05 2022-02-01 Qualcomm Incorporated Extended multiple transform selection for video coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080623A1 (ko) * 2022-10-12 2024-04-18 삼성전자 주식회사 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법

Also Published As

Publication number Publication date
US20230118056A1 (en) 2023-04-20
EP4042688A4 (en) 2022-12-14
JP2023508364A (ja) 2023-03-02
JP7500732B2 (ja) 2024-06-17
CN114641996A (zh) 2022-06-17
WO2022055599A1 (en) 2022-03-17
EP4042688A1 (en) 2022-08-17
US11683490B2 (en) 2023-06-20
US20220078423A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
KR102471979B1 (ko) 비디오 코딩을 위한 방법 및 장치
CN110324619B (zh) 变换信息预测
KR102472689B1 (ko) 디코딩 또는 인코딩을 위한 방법, 장치 및 매체
JP7436482B2 (ja) 最大変換サイズの制御
JP7124222B2 (ja) Vvcにおける色変換のための方法及び機器
JP2022526400A (ja) ビデオコーディングのための方法および装置
JP7258168B2 (ja) ビデオコーディングのための方法並びにその、装置およびコンピュータプログラム
CN110881127A (zh) 控制残差编码的方法、装置、计算机设备和存储介质
US11683490B2 (en) Context adaptive transform set
JP2024029124A (ja) デコーダが実行するビデオデコーディングの方法、装置、及びプログラム、並びにエンコーダが実行するビデオコーディングの方法
KR20220155360A (ko) 비디오 스트림에서 신경망 토폴로지, 파라미터들, 및 처리 정보를 시그널링하기 위한 기법
JP2024074928A (ja) ビデオコーディングのための方法および装置
KR20220085836A (ko) 비디오 코딩 방법 및 장치
JP7506176B2 (ja) ビデオ情報を処理するための方法及びコンピュータプログラム
KR20220143903A (ko) 변환 계수에 대한 부호 맵의 개선된 엔트로피 코딩
JP2023525214A (ja) 変換パーティショニングとプライマリ/セカンダリ変換タイプ選択との間の相互作用
KR20220032631A (ko) L-타입 파티셔닝 트리를 이용한 인트라 코딩
JP2022520855A (ja) Qt/bt/ttサイズの改善されたヘッダシンタックス
KR20230170759A (ko) 1차원 변환 스킵을 위한 eob의 시그널링
CA3215121A1 (en) Coefficient sign prediction for transform skip
JP2023549771A (ja) 適応カーネルオプションを用いた二次変換の方法および装置
JP2024507377A (ja) ビデオ処理の方法、デバイス、及びプログラム
KR20220073844A (ko) 비디오 코딩을 위한 방법 및 시스템, 그리고 컴퓨터 판독 가능 매체
EP3921941A1 (en) Flexible picture partitioning
KR20230065344A (ko) 서브블록 교차 성분 선형 모델 예측

Legal Events

Date Code Title Description
A201 Request for examination