KR20230111256A - 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더 - Google Patents

비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더 Download PDF

Info

Publication number
KR20230111256A
KR20230111256A KR1020237022462A KR20237022462A KR20230111256A KR 20230111256 A KR20230111256 A KR 20230111256A KR 1020237022462 A KR1020237022462 A KR 1020237022462A KR 20237022462 A KR20237022462 A KR 20237022462A KR 20230111256 A KR20230111256 A KR 20230111256A
Authority
KR
South Korea
Prior art keywords
component
intra prediction
current block
prediction mode
block
Prior art date
Application number
KR1020237022462A
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 KR20230111256A publication Critical patent/KR20230111256A/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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial 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/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/172Methods 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 picture, frame or field
    • 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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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

Landscapes

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

Abstract

본 출원의 실시예는 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더 및 비디오 디코더를 제공하며, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드가 도출 모드라고 확정될 때, 현재 블록에 대응되는 제2 컴포넌트의 인트라 예측에 사용되는 적어도 두가지 인트라 예측 모드를 획득하고, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 목표 인트라 예측 모드를 확정하고, 목표 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 간단히 효과적으로 확정하는 것을 실현한다.

Description

비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더 및 비디오 디코더
본 출원은 비디오 코딩 기술 분야에 관한 것으로, 특히 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더 및 비디오 디코더에 관한 것이다.
디지털 비디오 기술은 디지털 TV, 스마트폰, 컴퓨터, 전자 판독기 또는 비디오 플레이어와 같은 다양한 비디오 장치에 통합될 수 있다. 비디오 기술이 발전함에 따라 비디오 데이터의 양은 상대적으로 크다. 비디오 데이터 전송의 편의를 위해 비디오 장치는 비디오 압축 기술을 수행하여 비디오 데이터를 더욱 효과적으로 전송하고 저장하도록 한다.
현재 공간 예측이나 시간 예측을 통해 비디오 데이터의 중복 정보를 감소하거나 제거하여 비디오 데이터의 압축을 실현한다. 예측 방법에는 인터 예측(inter prediction)과 인트라 예측(intra prediction)이 포함된다. 인트라 예측은 동일한 픽처에서 디코딩된 인접 블록을 기반으로 현재 블록을 예측한다.
현재 블록을 예측할 때, 일반적으로 현재 블록의 휘도 컴포넌트와 색도 컴포넌트를 각각 예측하여 대응되는 휘도 예측 블록 및/또는 색도 예측 블록을 각각 획득한다. 휘도 컴포넌트와 색도 컴포넌트 사이의 상관성이 잘 활용되지 않아 색도 컴포넌트를 간단히 효과적으로 예측할 수 없다.
본 출원의 실시예는 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더 및 비디오 디코더를 제공하며, 현재 블록에 대응되는 제2 컴포넌트가 두가지 인트라 예측 모드를 포함하는 경우, 제2 컴포넌트의 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 간단히 효과적으로 확정하는 것을 실현한다.
제1 양태에서, 본 출원은 비디오 인코딩 방법을 제공하며,
제1 컴포넌트를 포함하는 현재 블록을 획득하는 것과,
현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 것과,
초기 인트라 예측 모드가 도출 모드라고 확정된 경우에 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하는 것과,
제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정하는 것과,
현재 블록의 제1 컴포넌트의 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측값을 획득하는 것을 포함한다.
제2 양태에서, 본 출원의 실시예는 비디오 디코딩 방법을 제공하며,
비트 스트림을 해석하여 제1 컴포넌트를 포함하는 현재 블록과 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하는 것과,
현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 것과,
초기 인트라 예측 모드가 도출 모드인 경우에 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정하는 것과,
현재 블록의 제1 컴포넌트의 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측값을 획득하는 것을 포함한다.
제3 양태에서, 본 출원은 비디오 인코더를 제공하며, 상술한 제1 양태 또는 그 각 실현방식의 방법을 실행하는 데에 사용된다.구체적으로, 인코더는 상술한 제1 양태 또는 그 각 실현방식의 방법을 실행하는 데에 사용되는 기능 유닛을 포함한다.
제4 양태에서, 본 출원은 비디오 디코더를 제공하며, 상술한 제2 양태 또는 그 각 실현방식의 방법을 실행하는 데에 사용된다. 구체적으로, 디코더는 상술한 제2 양태 또는 그 각 실현방식의 방법을 실행하는 데에 사용되는 기능 유닛을 포함한다.
제5 양태에서, 프로세서와 메모리를 포함하는 비디오 인코더를 제공한다. 메모리는 컴퓨터 프로그램을 저장하는 데에 사용되고, 프로세서는 메모리에 저장된 컴퓨터 프로그램을 호출하여 실행함으로써, 상술한 제1 양태 또는 그 각 실현방식의 방법을 실행하는 데에 사용된다.
제6 양태에서, 프로세서와 메모리를 포함하는 비디오 디코더를 제공한다. 메모리는 컴퓨터 프로그램을 저장하는 데에 사용되고, 프로세서는 메모리에 저장된 컴퓨터 프로그램을 호출하여 실행함으로써, 상술한 제2 양태 또는 그 각 실현방식의 방법을 실행하는 데에 사용된다.
제7 양태에서, 비디오 인코더와 비디오 디코더를 포함하는 비디오 인코딩 및 디코딩 시스템을 제공한다. 비디오 인코더는 상술한 제1 양태 또는 그 각 실현방식의 방법을 실행하는 데에 사용되고, 비디오 디코더는 상술한 제2 양태 또는 그 각 실현방식의 방법을 실행하는 데에 사용된다.
제8 양태에서, 상술한 제1 양태와 제2 양태 중 임의의 양태 또는 그 실현방식의 방법을 구현하는 데에 사용되는 칩을 제공한다. 구체적으로, 칩은 프로세서를 포함하고, 프로세서는 메모리에서 컴퓨터 프로그램을 호출하여 실행함으로써, 칩이 장착된 장치가 상술한 제1 양태와 제2 양태 중 임의의 양태 또는 그 실현방식의 방법을 실행하도록 한다.
제9 양태에서, 컴퓨터 프로그램을 저장하는 데에 사용되는 컴퓨터 판독 가능 저장 매체를 제공한다. 컴퓨터 프로그램은 컴퓨터가 상술한 제1 양태와 제2 양태 중 임의의 양태 또는 그 실현방식의 방법을 실행하도록 한다.
제10 양태에서, 컴퓨터 프로그램 명령을 포함하는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 명령은 컴퓨터로 하여금 상술한 제1 양태와 제2 양태 중 임의의 양태 또는 그 실현방식의 방법을 실행하도록 한다.
제11 양태에서, 컴퓨터 프로그램을 제공한다. 컴퓨터 프로그램이 컴퓨터에서 실행될 때, 컴퓨터로 하여금 상술한 제1 양태와 제2 양태 중 임의의 양태 또는 그 실현방식의 방법을 실행하도록 한다.
상술한 기술방안을 기반으로, 비디오 코딩 인트라 예측 과정에서, 현재 블록의 제1 컴포넌트의 초기 예측 모드가 도출 모드라고 확정될 때, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정하며, 따라서 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 간단히 효과적으로 확정할 수 있다. 예를 들면, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 직접 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 하며, 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 간단히 효과적으로 확정할 수 있을뿐만 아니라, 또한 적어도 두가지 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트를 예측할 때에 복잡한 텍스쳐를 정확하게 예측하여 인트라 예측의 품질과 압축 성능을 향상시킬 수 있다. 또한 제2 컴포넌트의 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 도출하므로, 채널 간의 상관 관계를 활용하여 제1 컴포넌트의 모드 정보가 비트 스트림에서 전송되는 것을 감소하고, 인코딩 효율을 효과적으로 높일 수 있다.
도 1은 본 출원의 실시예에 따른 비디오 인코딩 및 디코딩 시스템(100)의 블록도이다.
도 2는 본 출원의 실시예에 따른 비디오 인코더(200)의 블록도이다.
도 3은 본 출원의 실시예에 따른 디코딩 프레임워크(300)의 블록도이다.
도 4a는 정사각형 블록에 있어서의 기하 구분 모드(geometric partitioning mode, GPM)의 64개 모드의 가중치를 나타내는 도면이다.
도 4b는 정사각형 블록에 있어서의 각도 가중 예측(angular weighted prediction, AWP)의 56개 모드의 가중치를 나타내는 도면이다.
도 5는 본 출원의 실시예에 따른 참조 픽셀을 나타내는 개략도이다.
도 6은 본 출원의 실시예에 따른 멀티 참조 라인(multiple-reference-line, MRL) 인트라 예측 방법의 개략도이다.
도 7은 H.264의 9가지 인트라 예측 모드의 개략도이다.
도 8은 HEVC의 35가지 인트라 예측 모드의 개략도이다.
도 9는 VVC의 67가지 인트라 예측 모드의 개략도이다.
도 10은 AVS3의 66가지 인트라 예측 모드의 개략도이다.
도 11a는 본 출원의 실시예에 따른 휘도 블록의 인트라 예측의 원리를 나타내는 개략도이다.
도 11b는 본 출원의 실시예에 따른 인트라 예측 모드의 한가지 저장 방식을 나타내는 개략도이다.
도 12는 본 출원의 실시예에 따른 비디오 인코딩 방법(400)의 흐름도이다.
도 13은 본 출원의 실시예에 따른 제1 컴포넌트와 제2 컴포넌트의 구분을 나타내는 개략도이다.
도 14는 본 출원의 실시예에 따른 비디오 인코딩 방법(500)의 다른 흐름도이다.
도 15는 본 출원의 실시예에 따른 비디오 인코딩 방법(600)의 다른 흐름도이다.
도 16은 본 출원의 실시예에 따른 비디오 디코딩 방법(700)의 흐름도이다.
도 17은 본 출원의 실시예에 따른 비디오 디코딩 방법(800)의 흐름도이다.
도 18은 본 출원의 실시예에 따른 비디오 디코딩 방법(900)의 흐름도이다.
도 19는 본 출원의 실시예에서 제공되는 비디오 인코더(10)의 블록도이다.
도 20은 본 출원의 실시예에서 제공되는 비디오 디코더(20)의 블록도이다.
도 21은 본 출원의 실시예에서 제공되는 전자 장치(30)의 블록도이다.
도 22는 본 출원의 실시예에서 제공되는 비디오 인코딩 및 디코딩 시스템(40)의 블록도이다.
본 출원은 이미지 코딩 분야, 비디오 코딩 분야, 하드웨어 비디오 코딩 분야, 전용 회로 비디오 코딩 분야, 실시간 비디오 코딩 분야 등에 적용될 수 있다. 예를 들면, 본 출원의 방안은 오디오 비디오 코딩 표준(audio video coding standards, AVS)에 결합될 수 있다. 예를 들면, H.264 오디오 비디오 코딩(audio video coding, AVC) 표준, H.265 고효율 비디오 코딩(high efficiency video coding, HEVC) 표준 및 H.266/다기능 비디오 코딩(versatile video coding, VVC) 표준이다. 또는 본 출원의 방안은 ITU-TH.261, ISO/IECMPEG-1Visual, ITU-TH.262 또는 ISO/IECMPEG-2Visual, ITU-TH.263, ISO/IECMPEG-4 Visual, ITU-TH.264(ISO/IECMPEG-4AVC라고도 함)를 포함한 기타 독점 또는 업계 표준에 결합되어 조작될 수 있으며, 스케일링 가능한 비디오 코딩(scalable video coding, SVC) 및 멀티 뷰 비디오 코딩(multi-view video coding, MVC) 확장이 포함된다. 본 출원의 기술은 그 어떤 특정한 코딩 표준이나 기술에 국한되지 않는다는 것을 이해해야 한다.
본 출원의 실시예를 쉽게 이해하기 위해, 우선, 도 1을 참조하여 본 출원의 실시예에서 언급된 비디오 코딩 시스템에 대해 소개한다.
도 1은 본 출원의 실시예에 따른 비디오 인코딩 및 디코딩 시스템(100)의 블록도이다. 설명해야 하는 것은 도 1은 하나의 예시일 뿐이며, 본 출원의 실시예의 비디오 인코딩 및 디코딩 시스템은 도 1에 도시된 것을 포함하지만, 이것에 한정되지 않는다. 도 1에 도시된 바와 같이, 비디오 인코딩 및 디코딩 시스템(100)은 인코딩 장치(110)와 디코딩 장치(120)를 포함한다. 인코딩 장치는 비디오 데이터를 인코딩하여(압축으로 이해할 수 있음) 비트 스트림을 생성하고 또한 비트 스트림을 디코딩 장치로 전송하도록 구성된다. 디코딩 장치는 인코딩 장치에서 생성된 비트 스트림을 디코딩하여 디코딩된 비디오 데이터를 획득하도록 구성된다.
본 출원의 실시예의 인코딩 장치(110)는 비디오 인코딩 기능을 갖는 장치로 이해할 수 있고, 디코딩 장치(120)는 비디오 디코딩 기능을 갖는 장치로 이해할 수 있다. 즉 본 출원의 실시예의 인코딩 장치(110)와 디코딩 장치(120)는 더욱 광범위한 장치를 포함하고, 예를 들면, 스마트폰, 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들면, 랩톱(laptop)) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 텔레비전(TV), 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량용 컴퓨터 등이다.
일부 실시예에 있어서, 인코딩 장치(110)는 채널(130)을 통해 인코딩된 비디오 데이터(예를 들면, 비트 스트림)를 디코딩 장치(120)로 전송할 수 있다. 채널(130)은 인코딩된 비디오 데이터를 인코딩 장치(110)에서 디코딩 장치(120)로 전송할 수 있는 하나 이상의 미디어 및/또는 장치를 포함할 수 있다.
하나의 실시예에 있어서, 채널(130)은 인코딩 장치(110)로 하여금 인코딩된 비디오 데이터를 실시간으로 디코딩 장치(120)로 직접 전송하도록 하는 하나 이상의 통신 매체를 포함한다. 본 실시예에 있어서, 인코딩 장치(110)는 통신 표준에 따라 인코딩된 비디오 데이터를 변조하고, 또한 변조된 비디오 데이터를 디코딩 장치(120)로 보낼 수 있다. 통신 매체는 무선 주파수 스펙트럼과 같은 무선 통신 매체를 포함하며, 선택적으로 통신 매체는 하나 이상의 물리적 전송선과 같은 유선 통신 매체를 포함할 수도 있다.
다른 하나의 실시예에 있어서, 채널(130)은 인코딩 장치(110)에 의해 인코딩된 비디오 데이터를 저장할 수 있는 저장 매체를 포함한다. 저장 매체는 CD, DVD, 플래시 메모리 등 로컬에서 액세스할 수 있는 다양한 데이터 저장 매체를 포함한다. 본 실시예에서 디코딩 장치(120)는 저장 매체에서 인코딩된 비디오 데이터를 획득할 수 있다.
다른 하나의 실시예에 있어서, 채널(130)은 인코딩 장치(110)에 의해 인코딩된 비디오 데이터를 저장할 수 있는 저장 서버를 포함할 수 있다. 본 실시예에 있어서, 디코딩 장치(120)는 저장 서버에서 저장된 인코딩된 비디오 데이터를 다운로드할 수 있다. 선택적으로, 저장 서버는 인코딩된 비디오 데이터를 저장할 수 있으며, 인코딩된 비디오 데이터를 웹 서버(예를 들면, 웹 사이트용), 파일 전송 프로토콜(FTP) 서버 등 디코딩 장치(120)로 보낼 수 있다.
일부 실시예에 있어서, 인코딩 장치(110)는 비디오 인코더(112)와 출력 인터페이스(113)를 포함한다. 출력 인터페이스(113)는 변조기(modulator)/복조기(demodulator)(모뎀)(modem) 및/또는 송신기(transmitter)를 포함할 수 있다.
일부 실시예에 있어서, 인코딩 장치(110)는 비디오 인코더(112)와 출력 인터페이스(113) 외에 비디오 소스(111)를 포함할 수도 있다.
비디오 소스(111)는 비디오 수집 장치(예를 들면, 비디오 카메라), 비디오 아카이브(video archive), 비디오 입력 인터페이스, 컴퓨터 그래픽 시스템 중 적어도 하나를 포함할 수 있다. 비디오 입력 인터페이스는 비디오 콘텐츠 공급 업체로부터 비디오 데이터를 수신하는 데에 사용되며, 컴퓨터 그래픽 시스템은 비디오 데이터를 생성하는 데에 사용된다.
비디오 인코더(112)는 비디오 소스(111)의 비디오 데이터를 인코딩하여 비트 스트림을 생성한다. 비디오 데이터는 하나 이상의 픽처(picture) 또는 픽처 시퀀스를 포함할 수 있다. 비트 스트림은 픽처 또는 픽처 시퀀스에 대한 인코딩 정보를 포함한다. 인코딩 정보는 인코딩된 픽처 데이터와 관련된 데이터를 포함할 수 있다. 연관된 데이터는 시퀀스 매개변수 세트(sequence parameter set, SPS), 픽처 매개변수 세트(picture parameter set, PPS) 및 기타 구문 구조를 포함할 수 있다. SPS는 하나 이상의 시퀀스에 적용되는 매개변수를 포함할 수 있다. PPS는 하나 이상의 픽처에 적용되는 매개변수를 포함할 수 있다. 구문 구조는 비트 스트림에서 지정된 순서대로 정렬된 0개 이상의 구문 요소의 집합을 의미한다.
비디오 인코더(112)는 출력 인터페이스(113)를 통해 인코딩된 비디오 데이터를 디코딩 장치(120)로 직접 전송한다. 인코딩된 비디오 데이터는 디코딩 장치(120)가 후속 읽을 수 있도록 저장 매체 또는 저장 서버에 저장될 수 있다.
일부 실시예에 있어서, 디코딩 장치(120)는 입력 인터페이스(121)와 비디오 디코더(122)를 포함한다.
일부 실시예에 있어서, 디코딩 장치(120)는 입력 인터페이스(121)와 비디오 디코더(122) 외에 표시 장치(123)를 포함할 수도 있다.
입력 인터페이스(121)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(121)는 채널(130)을 통해 인코딩된 비디오 데이터를 수신할 수 있다.
비디오 디코더(122)는 인코딩된 비디오 데이터를 디코딩하여 디코딩된 비디오 데이터를 획득하고, 디코딩된 비디오 데이터를 표시 장치(123)로 전송하는 데에 사용된다.
표시 장치(123)는 디코딩된 비디오 데이터를 표시한다. 표시 장치(123)는 디코딩 장치(120)와 통합되거나 디코딩 장치(120) 외부에 있을 수 있다. 표시 장치(123)는 액정표시장치(LCD), 플라즈마 표시 장치, 유기 발광 다이오드(OLED) 표시 장치 또는 기타 유형의 표시 장치와 같은 다양한 표시 장치를 포함할 수 있다.
또한, 도 1은 실시예일 뿐이며, 본 출원의 실시예의 기술 방안은 도 1에 국한되지 않는다. 예를 들면, 본 출원의 기술은 단일 비디오 인코딩 또는 단일 비디오 디코딩에 적용될 수 있다.
아래 본 출원의 실시예에 따른 비디오 인코딩 프레임워크에 대하여 소개한다.
도 2는 본 출원의 실시예에 따른 비디오 인코더(200)의 블록도이다. 비디오 인코더(200)은 픽처에 대하여 손실 압축(lossy compression) 또는 무손실 압축(lossless compression)을 수행하도록 구성될 수 있음을 이해해야 한다. 무손실 압축은 시각적 무손실 압축(visually lossless compression) 또는 수학적 무손실 압축(mathematically lossless compression)일 수 있다.
비디오 인코더(200)는 휘도-색도(luma-chroma)(YCbCr, YUV) 포맷의 픽처 데이터에 적용될 수 있다. 예를 들면, YUV 비율은 4:2:0, 4:2:2 또는 4:4:4일 수 있다. 여기서 Y는 휘도(Luma)를 나타내고, Cb(U)는 파란색 색도를 나타내고, Cr(V)는 빨간색 색도를 나타낸다. U와 V는 색상과 포화도를 설명하는 데에 사용되는 색도(Chroma)를 나타낸다. 예를 들면, 색상 포맷에서 4:2:0은 4개의 픽셀당 4개의 휘도 컴포넌트와 2개의 색도 컴포넌트(YYYYCbCr)가 있음을 나타내고, 4:2:2는 4개의 픽셀당 4개의 휘도 컴포넌트와 4개의 색도 컴포넌트(YYYYCbCrCbCr)가 있음을 나타내고, 4:4:4는 전체 픽셀 디스플레이(YYYYCbCrCbCrCbCrCbCr)를 나타낸다.
예를 들면, 비디오 인코더(200)는 비디오 데이터를 읽고, 비디오 데이터의 각 픽처에 대해, 픽처를 여러 코딩 트리 유닛(coding tree unit,CTU)으로 구분한다. 일부 예에서, CTU는 트리 블록(tree block), 최대 코딩 유닛(largest coding unit, LCU) 또는 코딩 트리 블록(coding tree block, CTB)이라고 할 수 있다. 각 CTU는 픽처 내의 CTU와 같은 크기를 갖는 픽셀 블록과 연관될 수 있다. 각 픽셀은 하나의 휘도(luminance 또는 luma) 샘플과 두개의 색도(chrominance 또는 chroma) 샘플에 대응될 수 있다. 따라서 각 CTU는 하나의 휘도 샘플링 블록 및 두개의 색상 샘플링 블록과 연관될 수 있다. 하나의 CTU의 크기는 128×128, 64×64, 32×32 등일 수 있다. 하나의 CTU는 또한 여러 코딩 유닛(Coding Unit,CU)으로 구분되어 코딩을 수행할 수 있다. CU는 직사각형 블록 또는 정사각형 블록일 수 있다. CU는 진일보로 예측 유닛(prediction unit, PU)과 변환 유닛(transform unit, TU)으로 구분되어 코딩, 예측, 변환 분리, 처리할 때에 더욱 유연해질 수 있다. 하나의 예시에서, CTU는 사진트리 방식(quadtree manner)으로 CU로 구분되고, CU는 사진트리 방식으로 TU와 PU로 구분된다.
비디오 인코더와 비디오 디코더는 다양한 PU 크기를 지원할 수 있다. 특정 CU의 크기가 2N×2N이라고 가정하면, 비디오 인코더와 비디오 디코더는 인트라 예측을 위해 2N×2N 또는 N×N의 PU 크기를 지원할 수 있으며, 인터 예측을 위해 2N×2N, 2N×N, N×2N, N×N 또는 유사한 크기의 대칭 PU를 지원할 수 있다. 비디오 인코더와 비디오 디코더는 인터 예측을 위해 2N×nU, 2N×nD, nL×2N 또는 nR×2N의 비대칭 PU도 지원할 수 있다.
일부 실시예에서, 도 2에 도시된 같이, 비디오 인코더(200)는 예측 유닛(prediction unit)(210), 잔차 유닛(residual unit)(220), 변환/양자화 유닛(transform/quantization unit)(230), 역변환/양자화 유닛(inverse transform/quantization unit)(240), 재구성 유닛(reconstruction unit)(250), 루프 필터링 유닛(loop filtering unit)(260), 디코딩 픽처 버퍼(decoded picture buffer)(270) 및 엔트로피 인코딩 유닛(entropy encoding unit)(280)을 포함할 수 있다. 비디오 인코더(200)는 더 많거나 더 적거나 다른 기능 컴포넌트를 포함할 수 있다.
선택적으로, 본 출원에서 현재 블록(current block)은 현재 코딩 유닛(CU) 또는 현재 예측 유닛(PU)라고 할 수 있다. 예측 블록은 예측 픽처 블록 또는 픽처 예측 블록이라고 할 수 있다. 재구성 픽처 블록은 재구성 블록 또는 픽처 재구성 블록이라고 할 수 있다.
일부 실시예에서, 예측 유닛(210)은 인터 예측 유닛(211)과 인트라 추정 유닛(212)을 포함한다. 비디오 픽처의 인접 픽셀 간에 강한 상관 관계가 있으므로, 비디오 코딩 기술에서 인트라 예측을 사용하여 인접 픽셀 간의 공간 중복을 제거한다. 비디오에서 인접한 픽처 간에 유사성이 강하기 때문에, 비디오 코딩 기술에서 인터 예측을 사용하여 인접한 픽처 간의 시간 중복을 제거하여 코딩 효율을 향상시킨다.
인터 예측 유닛(211)은 인터 예측에 사용될 수 있다. 인터 예측은 서로 다른 픽처의 픽처 정보를 참고할 수 있다. 인터 예측에서 운동 정보를 사용하여 참조 픽처에서 참조 블록을 찾고, 참조 블록에 따라 예측 블록을 생성하여 시간 중복을 제거한다. 인터 예측을 사용하는 픽처는 P프레임 및/또는 B프레임일 수 있다. P프레임은 전방향 예측 픽처이고, B프레임은 양방향 예측 픽처이다. 운동 정보에는 참조 픽처가 포함된 참조 픽처 목록, 참조 픽처 인덱스 및 운동 벡터가 포함된다. 운동 벡터는 전체 픽셀 운동 벡터 또는 서브 픽셀 운동 벡터일 수 있다. 운동 벡터가 서브 픽셀 운동 벡터인 경우, 참조된 픽처에 대해 보간 필터링을 수행하여 필요한 서브 픽셀 블록을 생성해야 한다. 운동 벡터에 따라 참조 픽처에서 찾은 전체 픽셀 또는 서브 픽셀의 블록을 참조 블록이라고 한다. 일부 기술에서는 직접 참조 블록을 예측 블록으로 할 수 있으며, 일부 기술에서는 참조 블록을 기반으로 예측 블록을 생성한다. 참조 블록을 기반으로 예측 블록을 생성하는 것은 참조 블록을 예측 블록으로 사용한 다음에, 예측 블록을 기반으로 처리하여 새로운 예측 블록을 생성하는 것으로 이해할 수 있습니다.
현재 가장 많이 사용되는 인터 예측 방법은 VVC 비디오 코딩 표준의 기하 구분 모드(geometric partitioning mode, GPM) 및 AVS3 비디오 코딩 표준의 각도 가중 예측(angular weighted prediction, AWP)을 포함한다. 이 두가지 인트라 예측 모드는 원리상 일부 공통점이 있다.
기존의 단방향 예측에서는 현재 블록과 동일한 크기의 참조 블록만 찾는다. 기존의 양방향 예측에서는 현재 블록과 크기가 같은 두개의 참조 블록을 사용하고, 예측 블록의 각 포인트의 픽셀값은 두개의 참조 블록 중 대응하는 위치의 값의 평균값이다. 즉, 각 참조 블록의 모든 포인트가 예측 블록에 기여하는 비율은 50%이다. 양방향 가중 예측에서 두 참조 블록의 기여 비율이 다를 수 있다. 예를 들면, 첫번째 참조 블록의 모든 포인트는 75% 기여하고, 두번째 참조 블록의 모든 포인트는 25% 기여하며, 같은 참조 블록의 모든 포인트는 같은 기여 비율을 갖는다. GPM 또는 AWP에서 마찬가지로 현재 블록과 같은 크기의 두개의 참조 블록을 사용하지만, 일부 픽셀 위치는 100%로 첫번째 참조 블록의 대응하는 위치의 픽셀값을 사용하고, 일부 픽셀 위치는 100%로 두번째 참조 블록의 대응하는 위치의 픽셀값을 사용하며, 경계 영역에서는 두 참조 블록 중 대응하는 위치의 픽셀값을 일정한 비율로 사용한다. 픽셀값의 가중치는 GPM 또는 AWP 모드에 의해 결정될 수 있다. 또한 GPM 또는 AWP에서 현재 블록과 크기가 다른 두개의 참조 블록을 사용하며, 즉 각자로 필요한 부분을 취하여 참조 블록으로 한다. 즉, 가중치가 0이 아닌 부분은 참조 블록으로 사용되고, 가중치가 0인 부분은 제거된다.
도 4a는 정사각형 블록에 있어서의 기하 구분 모드(GPM)의 64개 모드의 가중치를 나타내는 도면이다. 여기서 검은색은 첫번째 참조 블록의 대응하는 위치의 가중치가 0%임을 나타내고, 흰색은 첫번째 참조 블록의 대응하는 위치의 가중치가 100%임을 나타내며, 회색 영역은 색상 농도에 따라 첫번째 참조 블록의 대응하는 위치의 가중치가 0% 보다 크고 100% 보다 작은 어느 가중치를 나타낸다. 두번째 참조 블록의 대응하는 위치의 가중치는 100%에서 첫번째 참조 블록의 대응하는 위치의 가중치를 뺀 값입니다.
도 4b는 정사각형 블록에 있어서의 각도 가중 예측(angular weighted prediction, AWP)의 56개 모드의 가중치를 나타내는 도면이다. 여기서 검은색은 첫번째 참조 블록의 대응하는 위치의 가중치가 0%임을 나타내고, 흰색은 첫번째 참조 블록의 대응하는 위치의 가중치가 100%임을 나타내며, 회색 영역은 색상 농도에 따라 첫번째 참조 블록의 대응하는 위치의 가중치가 0% 보다 크고 100% 보다 작은 어느 가중치를 나타낸다. 두번째 참조 블록의 대응하는 위치의 가중치는 100%에서 첫번째 참조 블록의 대응하는 위치의 가중치를 뺀 값입니다.
GPM과 AWP의 가중치 도출 방식이 다르다. GPM에서는 각 모드에 따라 각도와 오프셋을 결정한 다음에 각 모드의 가중치 행렬을 계산한다. AWP에서는 먼저 1차원 가중 라인을 생성한 다음에 인트라 각도 예측과 유사한 방법으로 1차원 가중 라인을 전체 행렬로 확장한다.
초기 코딩 기술에서는 CU, PU 또는 TU의 구분과 관계없이 단지 사각형 구분 방식만 존재한다. 그러나 GPM과 AWP는 구분 없이 예측에서 비사각형 구분 효과를 구현하였다. GPM과 AWP는 위에서 언급한 가중치 맵과 같은 두개의 참조 블록의 가중치 마스크를 사용한다. 마스크에 따라 예측 블록을 생성하는 데 사용되는 두개의 참조 블록의 가중치를 결정하거나, 또는 예측 블록의 일부 위치가 첫번째 참조 블록에서 파생되고 일부 위치가 두번째 참조 블록에서 파생된 것으로 간단히 이해할 수 있다. 과도 영역은 두 참조 블록의 대응하는 위치에 가중치를 부여하여 획득되며, 따라서 과도가 더욱 부드럽게 된다. GPM과 AWP에서 현재 블록은 분할선에 따라 두개의 CU 또는 PU로 구분되지 않으므로 예측 후의 잔차의 변환, 양자화, 역변환 및 역양자화 등도 현재 블록 전체에서 수행된다.
인트라 추정 유닛(212)은 동일한 픽처의 정보만 참조하여 현재 픽처 블록의 픽셀 정보를 예측하여 공간 중복을 제거한다. I프레임은 인트라 예측에 사용된다. 예를 들면, 도 5에 도시된 바와 같이, 흰색 4×4 블록은 현재 블록이고, 현재 블록의 왼쪽 한 행과 윗쪽 한 열의 회색 픽셀은 현재 블록의 참조 픽셀이다. 인트라 예측에서 이러한 참조 픽셀은 현재 블록을 예측하는 데에 사용된다. 이러한 참조 픽셀을 모두 사용할 수 있으며, 즉, 모든 참조 픽셀은 이미 코딩되었다. 일부 참조 픽셀은 사용할 수 없을 수도 있으며, 예를 들면, 현재 블록은 전체 픽처의 가장 왼쪽에 있으므로 현재 블록 왼쪽의 참조 픽셀은 사용할 수 없다. 또는 현재 블록을 코딩할 때, 현재 블록의 왼쪽 아래 부분은 아직 코딩되지 않았으므로 왼쪽 아래 부분의 참조 픽셀도 사용할 수 없다. 참조 픽셀을 사용할 수 없는 경우, 사용 가능한 참조 픽셀이나 특정 값 또는 특정 방법으로 채우거나 채우지 않을 수 있다.
일부 실시예에서 인트라 예측 방법은 또한 멀티 참조 라인(multiple reference line, MRL) 인트라 예측 방법을 포함한다. 도 6에 도시된 바와 같이, MRL에서 더 많은 참조 픽셀을 사용할 수 있으며, 따라서 코딩 효율을 높일 수 있다.
인트라 예측에는 여러가지 예측 모드가 있다. 도 7에 도시된 바와 같이, H.264에서 4×4 블록에 대하여 인트라 예측을 수행하는 데에 사용되는 9가지 모드가 있다. 모드 0에서 현재 블록 윗쪽의 픽셀이 수직 방향을 따라 현재 블록에 복사되어 예측값으로 한다. 모드 1에서 왼쪽의 참조 픽셀이 수평 방향을 따라 현재 블록에 복사되어 예측값으로 한다. 모드 2(DC)에서 8개의 픽셀 A∼D와 I∼L의 평균값을 모든 픽셀의 예측값으로 한다. 모드 3-8에서 각각 특정 각도에 따라 참조 픽셀이 현재 블록의 대응하는 위치로 복사된다. 현재 블록의 일부 위치가 참조 픽셀에 정확하게 대응될 수 없기 때문에, 참조 픽셀의 가중 평균값을 사용하거나 참조 픽셀의 보간 서브 픽셀(interpolated sub-pixel)을 사용해야 한다.
도 8에 도시된 바와 같이, HEVC에서 사용되는 인트라 예측 모드는 평면 모드(planar), DC 및 33개의 각도 모드 총 35개의 예측 모드가 있다.
도 9에 도시된 바와 같이, VVC에서 사용되는 인트라 예측 모드는 평면 모드, DC 및 65개의 각도 모드 총 67개의 예측 모드가 있다.
도 10에 도시된 바와 같이, AVS3에서 사용되는 인트라 예측 모드는 DC, 평면 모드, Bilinear 및 63개의 각도 모드 총 66개의 예측 모드가 있다.
일부 실시예에서, 인트라 예측 모드에는 일부 개선 모드가 포함되며, 예를 들면, 참조 픽셀의 서브 픽셀 보간을 개선하거나 예측 픽셀을 필터링하는 등이다. 예를 들면, AVS3의 다중 인트라 예측 필터(multiple intra prediction filter, MIPF)는 서로 다른 크기의 블록에 대하여 서로 다른 필터를 사용하여 예측값을 생성할 수 있다. 구체적으로, 동일한 블록의 서로 다른 위치에 있는 픽셀에 대하여, 참조 픽셀과 가까운 픽셀은 한가지 필터를 사용하여 예측값을 생성하고, 참조 픽셀과 먼 픽셀은 다른 한가지 필터를 사용하여 예측값을 생성한다. 예를 들면, AVS3의 인트라 예측 필터(intra prediction filter, IPF)는 예상값에 대하여 참조 픽셀을 사용하여 필터링할 수 있다.
각도 모드의 수량이 증가됨에 따라 인트라 예측이 더욱 정확해지고, 고화질과 초고화질 디지털 비디오의 발전 수요에 더욱 부합된다는 점에 유념해야 한다.
잔차 유닛(220)은 CU의 픽셀 블록과 CU의 PU의 예측 블록을 기반으로 CU의 잔차 블록을 생성할 수 있다. 예를 들면, 잔차 유닛(220)은 CU의 잔차 블록을 생성하여 잔차 블록의 각 샘플이 CU의 픽셀 블록의 샘플과 CU의 PU의 예측 블록의 해당 샘플 사이의 차이와 같은 값을 갖도록 할 수 있다.
변환/양자화 유닛(230)은 변환 계수를 양자화할 수 있다. 변환/양자화 유닛(230)은 CU와 연관된 양자화 매개변수(QP) 값을 기반으로 CU의 TU와 연관된 변환 계수를 양자화할 수 있다. 비디오 인코더(200)는 CU와 연관된 QP 값을 조정하여 CU와 연관된 변환 계수에 적용되는 양자화 정도를 조정할 수 있다.
역변환/양자화 유닛(240)은 역양자화와 역변환을 각각 양자화 후의 변환 계수에 적용하여 양자화 후의 변환 계수에 따라 잔차 블록을 재구성할 수 있다.
재구성 유닛(250)은 재구성된 잔차 블록의 샘플을 예측 유닛(210)에서 생성된 하나 이상의 예측 블록의 해당 샘플에 더하여 TU와 연관된 재구성 픽처 블록을 생성할 수 있다. 이러한 방식으로 CU의 각 TU의 샘플 블록을 재구성하면, 비디오 인코더(200)는 CU의 픽셀 블록을 재구성할 수 있다.
루프 필터링 유닛(260)은 CU와 연관된 픽셀 블록의 블록화 현상(blocking artifacts)을 감소하기 위해 블록 제거 필터 작업을 수행할 수 있다.
일부 실시예에 있어서, 루프 필터링 유닛(260)은 블록 제거 필터링 유닛과 샘플 적응적 오프셋/적응적 루프 필터링(sample adaptive offset/adaptive loop filtering, SAO/ALF) 유닛을 포함하며, 블록 제거 필터링 유닛은 블록화 현상을 제거하도록 구성되고, SAO/ALF 유닛은 링 현상(ringing effect)을 제거하도록 구성된다.
디코딩 픽처 버퍼(270)는 재구성된 픽셀 블록을 저장할 수 있다. 인터 예측 유닛(211)은 재구성된 픽셀 블록을 포함하는 참조 픽처를 사용하여 다른 픽처의 PU에 대해 인터 예측을 수행할 수 있다. 또한 인트라 추정 유닛(212)은 디코딩 픽처 버퍼(270)의 재구성된 픽셀 블록을 사용하여 CU와 동일한 픽처의 다른 PU에 대해 인트라 예측을 수행할 수 있다.
엔트로피 인코딩 유닛(280)은 변환/양자화 유닛(230)에서 양자화된 변환 계수를 수신할 수 있다. 엔트로피 인코딩 유닛(280)은 엔트로피 인코딩된 데이터를 생성하기 위해 양자화된 변환 계수에 대해 하나 이상의 엔트로피 인코딩 작업을 수행할 수 있다.
도 3은 본 출원의 실시예에 따른 디코딩 프레임워크(300)의 블록도이다.
도 3에 도시된 바와 같이, 비디오 디코더(300)는 헤드 정보 디코딩 유닛(header-information decoding unit)(310), 예측 유닛(prediction unit)(320), 역양자화 변환 유닛(inverse quantization transform unit)(330), 재구성 유닛(reconstruction unit)(340), 루프 필터링 유닛(loop filtering unit)(350) 및 디코딩 픽처 버퍼(decoded picture buffer)(360)이 포함한다. 비디오 디코더(300)는 더 많거나 더 적거나 다른 기능 컴포넌트를 포함할 수 있다.
비디오 디코더(300)는 비트 스트림을 수신할 수 있다. 헤더 정보 디코딩 유닛(310)은 비트 스트림을 해석하여 비트 스트림에서 문법 요소를 추출할 수 있다. 비트 스트림을 해석하는 일부분으로서 헤더 정보 디코딩 유닛(310)은 비트 스트림 중의 엔트로피 인코딩된 문법 요소를 해석할 수 있다. 예측 유닛(320), 역양자화 변환 유닛(330), 재구성 유닛(340) 및 루프 필터링 유닛(350)은 비트 스트림에서 추출된 문법 요소에 따라 비디오 데이터를 디코딩할 수 있으며, 즉, 디코딩된 비디오 데이터를 생성한다.
일부 실시예에서, 예측 유닛(320)은 인트라 추정 유닛(322)과 인터 예측 유닛(321)을 포함합니다.
인트라 추정 유닛(322)은 PU의 예측 블록을 생성하기 위해 인트라 예측을 수행할 수 있다. 인트라 추정 유닛(322)은 인트라 예측 모드를 사용하여 공간에 인접한 PU의 픽셀 블록을 기반으로 PU의 예측 블록을 생성할 수 있다. 인트라 추정 유닛(322)은 또한 비트 스트림에서 해석된 하나 이상의 문법 요소를 기반으로 PU의 인트라 예측 모드를 결정할 수 있다.
인터 예측 유닛(321)은 비트 스트림에서 해석된 문법 요소에 따라 제1 참조 픽처 목록(목록 0)과 제2 참조 픽처 목록(목록 1)을 구성할 수 있다. 또한 PU가 인터 예측 인코딩을 사용하는 경우, 헤더 정보 디코딩 유닛(310)은 PU의 운동 정보를 해석할 수 있다. 인터 예측 유닛(322)은 PU의 운동 정보를 기반으로 PU의 하나 이상의 참조 블록을 결정할 수 있다. 인터 예측 유닛(321)은 PU의 하나 이상의 참조 블록을 기반으로 PU의 예측 블록을 생성할 수 있다.
역양자화 변환 유닛(330)은 TU와 연관된 변환 계수를 역양자화(즉, 탈양자화) 할 수 있다. 역양자화 변환 유닛(330)은 TU의 CU와 연관된 QP 값을 사용하여 양자화 정도를 확정할 수 있다.
변환 계수를 역양자화한 다음에, 역양자화 변환 유닛(330)은 역양자화된 변환 계수에 대해 하나 이상의 역변환을 수행하여 TU와 연관된 잔차 블록을 생성할 수 있다.
재구성 유닛(340)은 CU의 TU와 연관된 잔차 블록 및 CU의 PU의 예측 블록을 사용하여 CU의 픽셀 블록을 재구성한다. 예를 들면, 재구성 유닛(340)은 잔차 블록의 샘플을 예측 블록의 해당 샘플에 추가하여 CU의 픽셀 블록을 재구성함으로써 재구성된 픽처 블록을 얻을 수 있다.
루프 필터 유닛(350)은 CU와 연관된 픽셀 블록의 블록화 현상을 감소하기 위해 블록 제거 필터 조작을 수행할 수 있다.
비디오 디코더(300)는 CU의 재구성 픽처를 디코딩 픽처 버퍼(360)에 저장할 수 있다. 비디오 디코더(300)는 디코딩 픽처 버퍼(360) 중의 재구성 픽처를 후속 예측을 위한 참조 픽처로 사용하거나, 또는 재구성 픽처를 디스플레이 장치로 전송하여 표시할 수 있다.
비디오 코딩의 기본 절차는 다음과 같다. 인코딩단에서 픽처(또는 프레임)를 블록으로 구분하고, 현재 블록에 대하여 예측 유닛(210)은 인트라 예측 또는 인터 예측을 수행하여 현재 블록의 예측 블록을 생성한다. 잔차 유닛(220)은 예측 블록과 현재 블록의 원시 블록, 즉 예측 블록과 현재 블록의 원시 블록 사이의 차이를 기반으로 잔차 블록을 계산할 수 있으며, 잔차 블록은 잔차 정보라고도 할 수 있다. 잔차 블록은 변환/양자화 유닛(230)을 통해 변환 및 양자화되어 사람의 눈에 민감하지 않은 정보를 제거하여 시각적 중복을 제거할 수 있다. 선택적으로 변환/양자화 유닛(230)에 의해 변환 및 양자화되기 전의 잔차 블록은 시간 영역 잔차 블록이라고 할 수 있고, 변환/양자화 유닛(230)에 의해 변환 및 양자화된 후의 시간 영역 잔차 블록은 주파수 잔차 블록 또는 주파수 영역 잔차 블록이라고 할 수 있다. 엔트로피 인코딩 유닛(280)은 변환/양자화 유닛(230)에서 출력된 양자화된 변환 계수를 수신하며, 양자화된 변환 계수에 대하여 엔트로피 인코딩을 수행하여 비트 스트림을 출력할 수 있다. 예를 들면, 엔트로피 인코딩 유닛(280)은 목표 컨텍스트 모델과 이진 비트 스트림의 확률 정보를 기반으로 문자 중복을 제거할 수 있다.
디코딩단에서 헤더 정보 디코딩 유닛(310)은 비트 스트림을 해석하여 현재 블록의 예측 정보, 양자화 계수 매트릭스 등을 얻을 수 있으며, 예측 유닛(320)은 예측 정보를 기반으로 현재 블록에 대하여 인트라 예측 또는 인터 예측을 수행하여 현재 블록의 예측 블록을 생성한다. 역양자화 변환 유닛(330)은 비트 스트림에서 얻은 양자화 계수 매트릭스를 사용하여 양자화 계수 매트릭스에 대해 역양자화 및 역변환을 수행하여 잔차 블록을 획득한다. 재구성 유닛(340)은 예측 블록과 잔차 블록을 더하여 재구성 블록을 얻는다. 재구성 블록은 재구성 픽처를 형성한다. 루프 필터링 유닛(350)은 픽처를 기반으로 또는 블록을 기반으로 재구성 픽처에 대해 루프 필터를 수행하여 디코딩된 픽처를 획득한다. 인코딩단도 마찬가지로 디코딩단과 유사한 조작으로 디코딩된 픽처를 얻어야 한다. 디코딩된 픽처는 재구성된 픽처라고도 할 수 있으며, 재구성된 픽처는 인터 예측에 사용되는 후속 픽처의 참조 픽처일 수 있다.
인코딩단에서 확정된 블록 구분 정보와 예측, 변환, 양자화, 엔트로피 인코딩 및 루프 필터링 등에 사용되는 모드 정보 또는 매개변수 정보 등은 필요할 때 비트 스트림에 포함된다는 점에 유념해야 한다. 디코딩단은 비트 스트림을 해석하고 기존 정보를 분석하여 인코딩단과 같은 블록 구분 정보와 예측, 변환, 양자화, 엔트로피 인코딩 및 루프 필터링 등에 사용되는 모드 정보 또는 매개변수 정보를 확정하고, 인코딩단에서 얻은 디코딩 픽처와 디코딩단에서 얻은 디코딩 픽처가 같음을 보장한다.
이상은 블록 기반 혼합 코딩 프레임워크에서 비디오 코딩의 기본 프로세스이다. 기술이 발전함에 따라 프레임워크나 프로세스의 일부 모듈이나 단계가 최적화될 수 있다. 본 출원은 블록 기반 혼합 코딩 프레임워크에서 비디오 코딩의 기본 프로세스에 적용되지만, 상기 프레임워크 및 프로세스에 국한되지는 않는다.
이상 본 출원의 실시예에 관련된 비디오 인코딩 시스템, 비디오 인코더, 비디오 디코딩 및 인트라 예측 모드를 설명하였다. 이를 바탕으로 아래 구체적인 실시예를 결합하여 본 출원의 실시예에서 제공하는 기술방안을 상세하게 설명한다.
본 출원의 실시예의 비디오 인코더는 YUV 포맷, YCbCr 포맷 및 RGB 포맷과 같은 서로 다른 포맷의 픽처 블록에 적용될 수 있다. 상술한 각 포맷의 픽처 블록에는 모두 제1 컴포넌트와 제2 컴포넌트가 포함된다. 예를 들면, YUV 포맷의 픽처 블록의 제2 컴포넌트는 Y 컴포넌트, 즉 휘도 컴포넌트일 수 있고, 제1 컴포넌트는 U 컴포넌트 및/또는 V 컴포넌트, 즉 색도 컴포넌트일 수 있다. 제2 컴포넌트는 제1 컴포넌트보다 중요하다. 예를 들면, 사람의 눈은 색도보다 휘도에 대하여 더 민감하므로 비디오 코딩에서 U 및 V 컴포넌트보다 Y 컴포넌트에 더 관심이 있다. 예를 들면, 일반적으로 사용되는 일부 YUV 포맷에서 YUV 비율은 4:2:0이며, 여기서 U 컴포넌트 또는 V 컴포넌트의 샘플 수량은 Y 컴포넌트의 샘플 수량보다 작고, YUV4:2:0 블록의 Y, U, V의 샘플 비율은 4:1:1이다. 이런 경우에 휘도 컴포넌트의 코딩 모드의 정보를 기반으로 픽처 블록의 색도 컴포넌트의 일부 코딩 모드를 결정할 수 있다.
RGB 포맷과 같은 다른 포맷의 픽처 블록의 경우, 픽처 블록의 제1 컴포넌트의 일부 코딩 모드는 상기 픽처 블록의 제2 컴포넌트의 코딩 모드의 정보에 따라 결정될 수도 있다. 본 출원의 실시예는 주로 YUV 포맷을 예로 하지만, 본 출원은 특정 포맷에 한정되지 않는다.
본 출원은 픽처 블록의 제2 컴포넌트에 대해 인트라 예측을 수행할 때, 복잡한 텍스처를 정확하게 예측하기 위해 픽처 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 예측한다. 예를 들면, 제2 컴포넌트는 휘도 컴포넌트이고, 본 출원은 적어도 두가지 인트라 예측 모드를 사용하여 복잡한 휘도 텍스쳐가 있는 블록을 예측함으로써 복잡한 휘도 텍스쳐가 있는 블록을 정확하게 예측할 수 있다.
픽처 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 상술한 DC、Planar、Plane、Bilinear 및 각도 예측 모드 등 인트라 예측 모드를 포함하지만, 이것에 한정되지 않고, MIPF, IPF 등과 같은 개선된 예측 모드도 포함한다.
픽처 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 제2 컴포넌트에 대하여 인트라 예측을 수행하는 과정은, 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 제2 컴포넌트를 예측하여 각 인트라 예측 모드에 대응하는 예측 블록을 획득하고, 각 인트라 예측 모드에 대응하는 예측 블록을 처리하여 상기 픽처 블록의 제2 컴포넌트의 최종 예측 블록을 획득한다. 예를 들면, 각 인트라 예측 모드에 대응하는 예측 블록을 더한 다음 평균값을 구하여 상기 픽처 블록의 제2 컴포넌트의 최종 예측 블록을 획득한다. 예를 들면, 제2 가중 행렬이라고 할 수 있는 가중 행렬을 확정하고, 제2 가중 행렬에 따라 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산하여 상기 픽처 블록의 제2 컴포넌트의 최종 예측 블록을 획득한다. 예를 들면, 제2 컴포넌트는 휘도 컴포넌트이라고 가정하고, 도 11a에 도시된 바와 같이, 휘도 블록의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드이다. 제1 인트라 예측 모드를 사용하여 휘도 블록에 대해 인트라 예측을 수행하여 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 휘도 블록에 대해 인트라 예측을 수행하여 제2 예측 블록을 획득하고, 제2 가중 행렬을 사용하여 제1 예측 블록과 제2 예측 블록에 대해 가중 연산을 수행하여 휘도 블록의 최종 예측 블록을 획득한다.
하나의 예시에서, 본 출원은 서로 다른 인트라 예측 모드로 제2 컴포넌트 중 각 샘플에 대하여 예측을 수행하여 각 샘플의 서로 다른 인트라 예측 모드의 예측값을 획득할 수 있으며, 그 다음에 제2 가중 행렬 중 각 샘플에 대응하는 가중치에 따라 각 샘플의 서로 다른 인트라 예측 모드의 예측값을 가중 연산하여 각 샘플의 제2 컴포넌트의 최종 예측값을 획득한다. 각 샘플의 제2 컴포넌트의 최종 예측값은 픽처 블록의 제2 컴포넌트의 최종 예측 블록을 구성한다. 이렇게 하면 모든 예측 블록을 획득할 때까지 기다렸다가 가중을 수행할 필요가 없으며, 따라서 제1 예측 블록과 제2 예측 블록을 저장하기 위한 추가 저장 공간이 필요 없으며, 비디오 인코더의 저장 자원을 절약할 수 있다.
상술한 바와 같이, 동일한 픽처 블록의 제1 컴포넌트의 일부 코딩 모드는 상기 픽처 블록의 제2 컴포넌트의 코딩 모드의 정보에 따라 결정될 수 있음을 알 수 있다. 즉, 일부 상황에서, 픽처 블록의 제1 컴포넌트의 인트라 예측 모드는 상기 픽처 블록의 제2 컴포넌트의 인트라 예측 모드의 정보에 따라 결정될 수 있다.
상술한 내용을 바탕으로 도 12를 참조하여 인코딩단에 대하여 설명한다.
도 12는 본 출원의 실시예에 따른 비디오 인코딩 방법(400)의 흐름도이다. 본 출원의 실시예는 도 1과 도 2에 도시된 비디오 인코더에 적용된다. 도 12에 도시된 바와 같이, 본 출원의 실시예의 방법은 다음 내용을 포함한다.
S401, 제1 컴포넌트를 포함하는 현재 블록을 획득한다.
비디오 인코딩 과정에서 비디오 인코더는 픽처 시퀀스로 구성된 비디오 스트림을 수신한다. 비디오 스트림의 각 픽처에 대하여 비디오 인코딩을 수행한다. 설명의 편의를 위해, 본 출원은 현재 인코딩할 픽처를 목표 픽처로 표기한다. 비디오 인코더는 현재 블록을 획득하기 위해 목표 픽처에 대해 블록 구분을 수행한다.
블록 구분을 수행할 때, 기존의 방법으로 구분된 블록은 현재 블록 위치의 제1 컴포넌트(예를 들면, 색도 컴포넌트)와 현재 블록 위치의 제2 컴포넌트(예를 들면, 휘도 컴포넌트)를 포함한다. 듀얼 트리(dual tree) 기술은 개별 휘도 블록 및 개별 색도 블록과 같은 개별 컴포넌트 블록을 구분할 수 있다. 도 13에 도시된 바와 같이, 현재 블록(현재 픽처 블록이라고도 함) 중 동일한 위치의 휘도 블록은 4개의 휘도 코딩 유닛(CU)으로 구분되고, 색도 블록은 구분되지 않는다. 휘도 블록은 현재 블록 위치의 휘도 컴포넌트만 포함하고, 색도 블록은 현재 블록 위치의 색도 컴포넌트만 포함한다. 따라서 동일한 위치의 휘도 컴포넌트와 색도 컴포넌트는 서로 다른 블록에 속할 수 있으므로, 구분은 더욱 큰 유연성을 가질 수 있다. 듀얼 트리가 CU 구분에 사용되는 경우, 일부 CU는 제1 컴포넌트 및 제2 컴포넌트를 포함하고, 일부 CU는 제1 컴포넌트만 포함하고, 일부 CU는 제2 컴포넌트만 포함한다.
일부 실시예에서, 본 출원의 실시예의 현재 블록은 제1 컴포넌트만 포함하고, 예를 들면, 색도 컴포넌트만 포함하고, 이런 경우에 현재 블록은 색도 블록으로 이해할 수 있다.
일부 실시예에서, 현재 블록은 제1 컴포넌트 및 제2 컴포넌트를 포함하고, 예를 들면, 색도 컴포넌트와 휘도 컴포넌트를 포함한다.
S402, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 확정한다.
예를 들면 제1 컴포넌트는 색도 컴포넌트이고, 제2 컴포넌트는 휘도 컴포넌트이다.
색도에 대한 인트라 예측 모드는 단독적으로 색도의 인트라 예측 모드를 선택할 수 있고, 동일한 블록 또는 동일한 위치 또는 인접한 블록의 휘도 인트라 예측 모드를 기반으로 도출할 수도 있다. AVS3의 인트라 색도 예측 모드를 예로 들면, 표 1은 AVS3의 휘도 예측 블록의 인트라 예측 모드의 여러 모드를 나타내고, 표 2은 AVS3의 색도 예측 블록의 인트라 예측 모드의 여러 모드를 나타낸다.
표 1에서 IntraLumaPredMode는 휘도 컴포넌트 인트라 예측 모드의 모드 번호이고, intra_luma_DC는 인트라 휘도 예측에 사용되는 DC 모드이고, Intra_Luma_Plane는 인트라 휘도 예측에 사용되는 평면(Plane) 모드이고, Intra_Luma_Bilinear는 인트라 휘도 예측에 사용되는 이중 선형(Bilinear) 모드이고, Intra_Luma_Vertical는 인트라 휘도 예측에 사용되는 수직 모드이고, Intra_Luma_Horizontal는 인트라 휘도 예측에 사용되는 수직 모드이고, Intra_Luma_PCM은 인트라 휘도 예측에 사용되는 PCM 모드이고, Intra_Luma_Angular는 인트라 휘도 예측에 사용되는 각도 모드이다.
표 2에서 IntraChromaPredMode는 색도 컴포넌트 인트라 예측 모드의 모드 번호이고, Intra_Chroma_DM는 인트라 색도 예측에 사용되는 DM 모드이고, DM 모드는 도출 모드이며, 즉 인트라 색도 예측 모드가 DM 모드를 사용하는 경우, 대응하는 인트라 휘도 예측 모드를 인트라 색도 예측 모드로 한다. 예를 들면, 대응하는 인트라 휘도 예측 모드가 각도 모드이면, 인트라 색도 예측 모드도 각도 모드이다. 인트라 색도 예측 모드는 DM 모드 외에 DC 모드(Intra_Chroma_DC), 수평 모드(Intra_Chroma_Horizontal), 수직 모드(Intra_Chroma_Vertical), 이중 선형 모드(Bilinear), PCM 모드 및 크로스 컴포넌트 예측 모드(cross-component prediction mode) 등을 포함한다.
색도 컴포넌트에 대응하는 DC 모드, 이중 선형 모드, 수평 모드 및 수직 모드는 휘도 컴포넌트에 대응하는 DC 모드, 이중 선형 모드, 수평 모드 및 수직 모드와 동일하다. 이러한 모드 설계를 통해 색도 인트라 예측에 휘도 인트라 예측과 같은 예측 모드를 사용할 수 있다. IntraLumaPredMode의 값은 33과 같다는 것은 대응하는 휘도 예측 블록에 PCM 모드가 사용됨을 나타낸다. 휘도 예측 블록에 PCM 모드가 사용되고, IntraLumaPredMode가 0이면, 색도 컴포넌트의 인트라 예측에도 PCM 모드가 사용된다.
비디오 인코더가 색도 컴포넌트에 대해 인트라 예측을 수행하는 경우, 비디오 인코더는 DM 모드, DC 모드(intra_Chroma_DC), 수평 모드(Intra_Chroma_Horizontal), 수직 모드(Intra_Chroma_Vertical), 이중 선형(Bilinear) 모드, PCM 모드, 크로스 컴포넌트 예측 모드(TSCPM(two-step cross-component prediction mode), PMC(prediction from multiple cross-components), VVC의 CCLM) 등과 같은 표 2 중 가능한 다양한 인트라 예측 모드를 사용할 수 잇다. 비디오 인코더는 왜곡 대가가 가장 작은 인트라 예측 모드를 선택하여 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드로 한다.
비디오 인코더가 현재 블록의 색도 컴포넌트에 대한 초기 인트라 예측 모드가 DM 모드가 아니라 DC 모드 또는 수직 모드라고 확정하면, 비디오 인코더는 확정된 초기 인트라 예측 모드의 모드 정보를 비트 스트림으로 기입하여, 디코더는 색도 인트라 예측의 모드 정보를 디코딩하여 색도 인트라 예측 모드를 확정한다.
비디오 인코더가 현재 블록의 색도 컴포넌트에 대한 초기 인트라 예측 모드가 DM 모드라고 확정하면, 단계 S403를 수행한다.
S403, 초기 인트라 예측 모드가 도출 모드인 경우에 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득한다.
도출 모드는 현재 블록의 제1 컴포넌트의 인트라 예측 모드는 현재 블록에 대응되는 제2 컴포넌트의 인트라 예측 모드에서 도출됨을 나타낸다. 예를 들면, 현재 블록의 제1 컴포넌트의 인트라 예측 모드는 제2 컴포넌트의 인트라 예측 모드와 같거나 제2 컴포넌트의 인트라 예측 모드에 따라 결정된다.
본 출원의 실시예에 따른 현재 블록에 대응되는 제2 컴포넌트는 아래 두가지 상황을 포함한다. 첫번째 상황, 현재 블록은 제1 컴포넌트와 제2 컴포넌트를 포함하고, 이 때 현재 블록에 대응하는 제2 컴포넌트는 현재 블록에 포함된 제2 컴포넌트이다. 두번째 상황, 현재 블록은 제1 컴포넌트만 포함하고, 제2 컴포넌트를 포함하지 않는다. 예를 들면, 제1 컴포넌트는 색도 컴포넌트이고, 현재 블록은 색도 블록으로 이해할 수 있으며, 현재 블록은 인코딩할 원시 픽처의 하나 이상의 픽셀에 대응되며, 하나 이상의 픽셀에 대응되는 제2 컴포넌트는 현재 블록에 대응되는 제2 컴포넌트이다.
현재 블록이 제1 컴포넌트와 제2 컴포넌트를 포함하는 경우, 현재 블록의 모드 정보에서 동일한 블록의 제2 컴포넌트의 인트라 예측 모드를 직접 획득할 수 있으므로, 현재 블록의 제2 컴포넌트의 인트라 예측 모드는 이미 확정되고 현재 블록의 모드 정보에 저장되어 있으며, 현재 블록의 제2 컴포넌트에 대하여 인트라 예측을 수행할 때 사용되는 적어도 두가지 인트라 예측 모드는 현재 블록의 모드 정보에서 직접 획득할 수 있다.
인코더가 현재 블록에 대응되는 제2 컴포넌트를 인코딩할 때, 제2 컴포넌트를 인코딩하는 데에 사용되는 적어도 두가지 인트라 예측 모드의 모드 정보를 저장한다. 따라서 현재 블록이 제1 컴포넌트만 포함하고 제2 컴포넌트를 포함하지 않는 경우, 인코더는 저장된 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득할 수 있다.
제2 컴포넌트의 적어도 두가지 인트라 예측 모드 중의 각 인트라 예측 모드는 서로 다르다.
제2 컴포넌트에 대하여 인트라 예측을 수행할 때 사용되는 적어도 두가지 인트라 예측 모드는 상술한 DC, Planar、Plane、Bilinear 및 각도 모드 등 인트라 예측 모드를 포함하지만, 이것에 한정되지 않고, MIPF, IPF 등과 같은 개선된 인트라 예측 모드도 포함한다. 설명의 편의를 위해, 본 출원은 DC, Planar、Plane、Bilinear 및 각도 모드 등 인트라 예측 모드를 기본 인트라 예측 모드라고 하고, MIPF, IPF 등은 개선된 인트라 예측 모드라고 한다. 기본 인트라 예측 모드는 다른 인트라 예측 모드에 의존하지 않고 예측 블록을 독립적으로 생성할 수 있는 인트라 예측 모드이고, 즉 참조 샘플과 기본 인트라 예측 모드가 확정되면 예측 블록을 확정할 수 있다. 개선된 인트라 예측 모드는 예측 블록을 독립적으로 생성할 수 없고, 예측 블록을 생성하려면 기본 인트라 예측 모드에 의존해야 한다. 예를 들면, 각도 예측 모드는 참조 샘플을 기반으로 예측 블록을 확정하고 생성할 수 있으며, MIPF는 각도 예측 모드를 기반으로 서로 다른 위치의 샘플에 대해 서로 다른 필터를 사용하여 예측 블록을 생성하거나 확정할 수 있다.
하나의 실시방식에서, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 모두 기본 인트라 예측 모드이다. 즉 본 출원의 제2 컴포넌트는 제1 인트라 예측 모드 및 제2 인트라 예측 모드와 같은 서로 다른 두가지 기본 인트라 예측 모드를 사용한다. 선택적으로, 개선된 인트라 예측 모드는 각각 제1 인트라 예측 모드 및 제2 인트라 예측 모드와 조합될 수 있다. 선택적으로, 적어도 두가지 기본 인트라 예측 모드를 사용하여 제2 컴포넌트의 최종 예측 블록을 획득한 다음에 진일보로 개선된 인트라 예측 모드를 사용하여 최종 예측 블록을 개선하여 업데이트된 최종 예측 블록을 획득할 수 있다.
하나의 실시 방식에서, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 기본 인트라 예측 모드와 개선된 인트라 예측 모드의 조합이다. 예를 들면, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드이고, 제1 인트라 예측 모드는 특정 각도 인트라 예측 모드이고, 제2 인트라 예측 모드는 IPF와 같은 개선된 인트라 예측 모드이다. 또는 제1 인트라 예측 모드와 제2 인트라 예측 모드는 모두 같은 각도 인트라 예측 모드를 기반으로 하지만, 제1 인트라 예측 모드는 개선된 인트라 예측 모드의 한가지 옵션이고, 제2 인트라 예측 모드는 개선된 인트라 예측 모드의 다른 한가지 옵션이다. 선택적으로, 제1 인트라 예측 모드와 제2 인트라 예측 모드를 사용하여 제2 컴포넌트의 최종 예측 블록을 획득한 다음에 진일보로 개선된 인트라 예측 모드를 사용하여 최종 예측 블록을 개선하여 업데이트된 최종 예측 블록을 획득할 수 있다.
하나의 실시 방식에서, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 모두 개선된 인트라 예측 모드의 조합이다.
S404, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정한다.
S405, 목표 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
본 출원의 일부 실시예에서, 목표 인트라 예측 모드는 적어도 두가지 인트라 예측 모드를 포함한다. 이런 경우에 S404에서 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 목표 인트라 예측 모드를 확정하는 방법은 다음 내용을 포함하되 이에 국한되지는 않는다.
방식 1, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 목표 인트라 예측 모드로 한다. 예를 들면, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 제1 인트라 예측 모드와 제2 인트라 예측 모드를 목표 인트라 예측 모드로 한다.
방식 2, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 목표 인트라 예측 모드를 도출한다. 예를 들면, 제1 컴포넌트에 사용되는 각도는 제2 컴포넌트에 사용되는 각도보다 더 큰 간격을 갖는다. 즉, 제2 컴포넌트의 여러 인트라 예측 모드에서 제1 컴포넌트의 동일한 인트라 예측 모드를 도출할 수 있다. 예를 들면, 제2 컴포넌트의 수평 접근 모드(예를 들면, AVS3의 모드 번호 11에 대응하는 인트라 예측 모드)는 제1 컴포넌트의 수평 모드를 도출할 수 있다. 따라서 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드를 도출한다. 예를 들면, 제2 컴포넌트의 제1 인트라 예측 모드에서 현재 블록의 제1 컴포넌트의 제3 인트라 예측 모드를 도출하고, 제2 컴포넌트의 제2 인트라 예측 모드에서 현재 블록의 제1 컴포넌트의 제4 인트라 예측 모드를 도출한다.
목표 인트라 예측 모드가 적어도 두가지 인트라 예측 모드를 포함할 때, 상술한 S405는 다음 내용을 포함한다.
S405-A1, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 예측 블록을 획득한다.
S405-A2, 각 인트라 예측 모드에 대응하는 예측 블록을 기반으로 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
예를 들면, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드는 두가지 인트라 예측 모드, 즉 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함한다.
하나의 실시방식에서, 제1 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제1 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제2 컴포넌트의 제2 예측 블록을 획득한다. 미리 설정된 연산 규칙에 따라 제1 예측 블록과 제2 예측 블록에 대해 연산을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다. 예를 들면, 1:1의 비율에 따라 제1 예측 블록과 제2 예측 블록의 평균값을 현재 블록의 제1 컴포넌트의 최종 예측 블록으로 한다.
하나의 실시방식에서, 제1 컴포넌트 중 각 샘플에 대하여, 제1 인트라 예측 모드를 사용하여 상기 샘플을 예측하여 제1 컴포넌트 중 상기 샘플의 제1 예측값을 획득하고, 제2 인트라 예측 모드를 사용하여 상기 샘플을 예측하여 제1 컴포넌트 중 상기 샘플의 제2 예측값을 획득한다. 미리 설정된 연산 규칙에 따라 제1 예측값과 제2 예측값에 대해 연산을 수행하여 제1 컴포넌트 중 상기 샘플의 최종 예측값을 획득한다. 예를 들면, 제1 예측값과 제2 예측값의 평균값을 제1 컴포넌트 중 상기 샘플의 최종 예측값으로 한다. 동일한 방법으로 제1 컴포넌트 중 모든 샘플의 최종 예측값을 획득할 수 있고, 따라서 현재 블록의 제1 컴포넌트의 최종 예측 블록을 형성할 수 있다.
하나의 실시방식에서, S405-A2는 S405-A21와 S405-A22를 포함한다.
S405-A21, 제1 가중치 행렬(first weighting matrix)을 확정한다.
S405-A22, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
상기 실시방식에서 제1 가중치 행렬을 확정하고, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다. 예를 들면, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 제1 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 제2 예측 블록을 획득한다. 제1 컴포넌트의 각 샘플에 대하여, 제1 예측 블록 중 상기 샘플의 제1 예측값, 제2 예측 블록 중 상기 샘플의 제2 예측값 및 제1 가중치 행렬 중 상기 샘플의 가중치를 획득한다. 가중치를 이용하여 제1 예측값과 제2 예측값에 대하여 가중 연산을 수행하여 상기 샘플의 최종 예측값을 획득한다. 동일한 방법으로 제1 컴포넌트의 모든 샘플의 최종 예측값을 획득하고, 따라서 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
하나의 가능한 실시방식에서, 제1 가중치 행렬 중 각 가중치는 사전 설정된 값이고, 예를 들면, 각 가중치는 1이다. 즉, 각 인트라 예측 모드에 대응하는 가중치는 1이다.
하나의 가능한 실시방식에서, 가중치 행렬 도출 모드에 따라 제1 가중치 행렬을 도출한다. 가중치 행렬 도출 모드는 가중치 행렬을 도출하는 모드로 이해할 수 있고, 각 가중치 행렬 도출 모드는 주어진 길이와 너비가 있는 블록에 대해 가중치 행렬을 도출할 수 있다. 서로 다른 가중치 행렬 도출 모드는 같은 크기의 블록에 대해 서로 다른 가중치 행렬을 도출할 수 있다. 예를 들면, AVS3의 AWP에는 56개의 가중치 행렬 도출 모드가 있고, VVC의 GPM에는 64개의 가중치 행렬 도출 모드가 있다. 상기 예시에서, 가중치 행렬 도출 모드에 따라 제1 가중치 행렬을 도출하는 과정은 제2 가중치 행렬을 도출하는 과정과 기본상 일치하다. 예를 들면, 제2 컴포넌트는 휘도 컴포넌트이고, 휘도 컴포넌트의 제2 가중치 행렬을 도출하는 과정은 아래 S905의 설명을 참조할 수 있으며, 여기서 더이상 설명하지 않는다. 설명해야만 하는 것은 S905 중의 방식을 참조하여 제1 가중치 행렬을 도출할 때, 제1 컴포넌트의 인코딩 정보에 따라 S905 중의 관련된 매개변수를 수정한 다음에 제1 가중치 행렬을 도출할 수 있다.
하나의 가능한 실시방식에서, 제1 가중치 행렬은 제2 컴포넌트의 가중치 행렬(즉 제2 가중치 행렬)에서 도출하며, S405-A21은 다음 내용을 포함한다.
S405-A211, 현재 블록의 제2 컴포넌트의 제2 가중치 행렬을 획득한다.
S405-A212, 제2 가중치 행렬을 기반으로 제1 가중치 행렬을 획득한다.
하나의 예시에서, 제2 가중치 행렬은 적어도 두개의 서로 다른 가중치를 포함한다. 예를 들면, 최소 가중치가 0이고 최대 가중치가 8이면, 제2 가중치 행렬 중 일부 샘플의 가중치는 0이고, 일부 샘플의 가중치는 8이고, 일부 샘플의 가중치는 0 내지 8 중의 임의의 수치이며, 예를 들면, 2이다.
하나의 예시에서, 제2 가중치 행렬 중 모든 가중치는 동일하다. 예를 들면, 최소 가중치가 0이고 최대 가중치가 8이면, 제2 가중치 행렬 중 모든 샘플의 가중치는 최소 가중치와 최대 가중치 사이의 하나의 수치이며, 예를 들면, 4이다.
하나의 예시에서, 제2 가중치 행렬 중 각 가중치에 대응하는 샘플에 대하여, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 제2 컴포넌트 중 샘플의 예측값을 획득한다. 예를 들면, 제2 컴포넌트는 두가지 인트라 예측 모드를 포함하고, 제2 가중치 행렬에 대하여 최소 가중치 및 최대 가중치의 제한을 설정한다. 예를 들면, 최소 가중치는 0으로 설정되고, 최대 가중치는 8로 설정되며, 9개의 레벨을 설정하며, 즉 0~8이다. 0은 현재 블록의 제2 컴포넌트 중의 샘플의 예측값은 완전히 하나의 인트라 예측 모드에 의해 도출된 예측값으로부터 획득됨을 나타내고, 8은 현재 블록의 제2 컴포넌트 중의 샘플의 예측값은 완전히 다른 하나의 인트라 예측 모드에 의해 도출된 예측값으로부터 획득됨을 나타낸다. 제2 가중치 행렬 중의 각 가중치는 0보다 크고 8보다 작으며, 예를 들면, 제2 가중치 행렬 중의 최소 가중치는 1이고, 최대 가중치는 7이다. 선택적으로, 제2 가중치 행렬에서 적어도 두개의 가중치는 서로 다르다.
하나의 예시에서, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 N가지 인트라 예측 모드를 포함하고, N은 2보다 크거나 같은 양의 정수다. 제2 가중치 행렬은 N가지 서로 다른 가중치를 포함한다. i번째 가중치는 제2 컴포넌트 중 i번째 가중치에 대응하는 샘플의 예측값은 완전히 i번째 인트라 예측 모드에 의해 획득됨을 나타내고, i는 2 보다 크거나 같고 N보다 작거나 같은 양의 정수이다. 예를 들면, N은 2이다. 제2 컴포넌트는 두가지 인트라 예측 모드를 사용하여 예측하며, 제1 인트라 예측 모드와 제2 인트라 예측 모드라고 가정한다. 제2 가중치 행렬은 두가지 가중치를 포함하고, 그 중 하나의 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제1 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내고, 다른 하나의 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타낸다. 선택적으로, 상기 두가지 가중치는 각각 0과 1이다.
하나의 예시에서, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 제2 가중치 행렬은 최대 가중치(예를 들면, 8), 최소 가중치(예를 들면, 0) 및 적어도 하나의 중간 가중치를 포함한다. 최대 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제1 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내고, 최소 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내며, 중간 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 제1 인트라 예측 모드와 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타낸다. 선택적으로, 최대 가중치 또는 최소 가중치로 구성된 영역을 과도 영역(blending area)이라고 할 수 있다.
하나의 예시에서, 제2 가중치 행렬은 여러가지 가중치를 포함하며, 가중치 변경 위치는 직선이나 곡선을 형성한다. 예를 들면, 제2 가중치 행렬이 단지 두가지 가중치만 포함하는 경우, 가중치 변경 위치는 직선이나 곡선을 형성한다. 또는 제2 가중치 행렬이 세가지 이상의 가중치를 포함하는 경우, 과도 영역에서 가중치가 같은 위치는 직선 또는 곡선을 형성한다. 선택적으로, 형성된 직선은 수평선 또는 수직선이다. 선택적으로, 형성된 직선은 모두 수평선이나 수직선은 아니다.
하나의 예시에서, 제2 가중치 행렬은 각도 가중 예측(AWP) 모드 또는 기하 구분 모드(GPM) 모드에 대응되는 가중치 행렬이다. 즉, 본 출원의 방안을 적용하는 코딩 표준 또는 코덱에서 GPM 또는 AWP 중 하나를 사용하는 경우, GPM 또는 AWP의 가중치 행렬을 확정하는 논리와 동일한 논리를 기반으로 제2 가중치 행렬을 확정할 수 있다. 예를 들면, AVS3 인터 예측은 AWP를 사용하고, 본 출원이 AVS3에 적용되는 경우, 본 출원은 AWP의 가중치 행렬을 확정하는 데에 사용되는 방법과 동일한 방법을 사용하여 제2 가중치 행렬을 확정할 수 있다. 선택적으로, 본 출원은 AWP의 가중치 행렬을 재사용할 수 있다. 예를 들면, AWP에는 56개의 가중치 행렬이 있다. 본 출원의 인트라 예측에 64개의 가중치 행렬이 사용된다고 가정하면, 64개의 가중치 행렬 중 56개의 가중치 행렬은 AWP의 가중치 행렬과 동일하며, 예를 들면, 처음 56개의 가중치 행렬은 AWP의 가중치 행렬과 동일하고, 나머지 8개의 가중치 행렬 중 각 가중치 행렬은 단지 하나의 가중치를 갖고, 가중치는 각각 1, 2, ..., 7 , 8이다. 이 8개의 가중치 행렬에 대하여, 총 가중치는 16이다. 즉, 가중치가 1이면, 1:15의 가중을 나타내고, 가중치가 2이면 2:14의 가중을 나타낸다. 이렇게 64개의 가중치 행렬의 모드 번호를 이진화할 때, 6 비트 코드를 사용할 수 있다. 이를 바탕으로, 본 출원의 실시예의 제2 가중치 행렬은 AWP 모드에 대응되는 가중치 행렬일 수 있다. 선택적으로, 본 출원이 AVS3에 적용되고, AVS3 인터 예측에 GPM을 사용하는 경우, 본 출원의 실시예는 GPM의 가중치 행렬을 재사용할 수 있다. 이 때, 제2 가중치 행렬은 GPM에 대응하는 가중치 행렬일 수 있다.
또한 인트라 예측은 공간 도메인의 상관 관계를 사용하기 때문에, 현재 블록 주변의 재구성된 샘플이 참조 샘플로 사용된다. 공간 도메인에서 거리가 가까울수록 상관성이 강하고, 거리가 멀수록 상관성이 약하다. 따라서 GPM 모드에 대응하는 가중치 행렬 또는 AWP 모드에 대응하는 가중치 행렬을 재사용할 때, 만약 어떤 가중치 행렬로 인해 예측 블록을 사용하여 획득된 샘플의 위치가 참조 샘플에서 멀어지게 할 경우, 본 출원은 상기 가중치 행렬을 사용하지 않을 수 있다.
제2 가중치 행렬은 상술한 방법으로 획득할 수 있을뿐만 아니라 가른 방법으로 획득할 수도 있음에 유념해야 하며, 본 출원의 실시예는 이것에 대하여 한정하지 않는다.
제2 가중치 행렬을 획득한 다음에, S405-A212를 실행하여, 제2 가중치 행렬에 따라 제1 가중치 행렬을 획득한다. 본 출원에서 제2 가중치 행렬에 따라 제1 가중치 행렬을 획득하는 방식은 아래 몇가지를 포함하지만 이것에 한정되지 않는다.
방식 1, 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 같으면, 제2 가중치 행렬을 제1 가중치 행렬로 한다.
방식 2, 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량보다 작으면, 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득한다. 예를 들면, 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량을 기반으로 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득한다.
상술한 방법으로 제1 가중치 행렬을 획득한 다음에, S405-A22를 실행하여, 제1 가중치 행렬을 기반으로 각 인트라 예측 모드에 대응되는 예측 블록에 대해 가중 연산을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
하나의 예시에서, 현재 블록의 제1 컴포넌트가 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함한다고 가정하면, 아래 공식 (1) 에 따라 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
여기서, C는 제1 컴포넌트를 나타내고, predMatrixSawpC[x][y]는 제1 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixC0[x][y]는 현재 블록의 제1 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixC1[x][y]는 현재 블록의 제1 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayC[x][y]는 제1 가중치 행렬 중의 predMatrixC[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수이며, 제1 예측 블록은 제1 인트라 예측 모드를 사용하여 예측하여 획득되고, 제2 예측 블록은 제2 인트라 예측 모드를 사용하여 예측하여 획득된다.
하나의 실시예에서, 제1 컴포넌트는 제1 서브 컴포넌트와 제2 서브 컴포넌트를 포함한다.
제1 서브 컴포넌트에 대하여, 상술한 단계 S405-A1는, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제1 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제1 서브 컴포넌트의 예측 블록을 획득하는 것을 포함한다. S405-A22는, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제1 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함한다.
예를 들면, 제1 인트라 예측 모드를 사용하여 현재 블록의 제1 서브 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제1 서브 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 제1 서브 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제1 서브 컴포넌트의 제2 예측 블록을 획득한다. 제1 가중치 행렬에 따라, 현재 블록의 제1 서브 컴포넌트의 제1 예측 블록과 제2 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득한다.
구체적인 예시에서, 아래 공식 (2)에 따라 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득한다.
여기서 A는 제1 서브 컴포넌트를 나타내고, predMatrixSawpA[x][y]는 제1 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixA0[x][y]는 현재 블록의 제1 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixA1[x][y]는 현재 블록의 제1 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayAB[x][y]는 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixA0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수이다. 예를 들면, n=1, 2, 3 등 양의 정수이다.
제2 서브 컴포넌트에 대하여, 상술한 단계 S405-A1는, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제2 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제2 서브 컴포넌트의 예측 블록을 획득하는 것을 포함한다. S405-A22는, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제2 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함한다.
예를 들면, 제1 인트라 예측 모드를 사용하여 현재 블록의 제2 서브 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제2 서브 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 제2 서브 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제2 서브 컴포넌트의 제2 예측 블록을 획득한다. 제1 가중치 행렬에 따라, 현재 블록의 제2 서브 컴포넌트의 제1 예측 블록과 제2 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득한다.
구체적인 예시에서, 아래 공식 (3)에 따라 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득한다.
여기서 B는 제2 서브 컴포넌트를 나타내고, predMatrixSawpB[x][y]는 제2 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixB0[x][y]는 현재 블록의 제2 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixB1[x][y]는 현재 블록의 제2 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayAB[x][y]는 제1 가중치 행렬 중 predMatrixB0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수이다.
본 출원에서 적어도 두가지 인트라 예측 모드를 사용하여 현재 블록에 대응하는 제2 컴포넌트를 예측하고, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드가 도출 모드로 확정될 때, 상기 실시예에서 설명한 방법을 사용하며, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하고, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행함으로써, 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 간단히 효과적으로 확정할 수 있을뿐만 아니라, 복잡한 텍스쳐를 정확하게 예측하여 비디오 인코딩 효율을 높일 수 있다. 또한 본 출원의 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 통해 도출되므로, 이후 비트 스트림에서 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드의 모드 정보를 생략하여 오버헤드를 줄일 수 있다.
본 출원은 적어도 두가지 인트라 예측 모드를 사용하여 적어도 두개의 예측 블록을 생성하고, 가중치 행렬에 따라 적어도 두개의 예측 블록에 대하여 가중 연산을 수행하여 최종 예측 블록을 획득한다. 기존의 하나의 인트라 예측 모드에 따라 하나의 예측 블록을 생성하는 것과 비교하면, 복잡성이 증가된다. 복잡성이 시스템 전체에 미치는 영향을 줄이고, 압축 성능과 복잡성의 균형을 맞추기 위해, 본 출원은 특정 크기의 블록에 사용되는 것으로 한정할 수 있으며, 즉 본 출원의 현재 블록의 크기는 미리 설정된 조건을 만족한다.
미리 설정된 조건은 아래 조건 중 하나 이상을 포함한다.
조건 1, 현재 블록의 너비는 제1 사전 설정 너비 TH1보다 크거나 같고, 현재 블록의 높이는 제1 사전 설정 높이 TH2보다 크거나 같다. 예를 들면, TH1과 TH2는 8, 16, 32 등일 수 있다. 선택적으로, TH1은 TH2와 같을 수 있다. 예를 들면, 현재 블록의 높이는 8보다 크거나 같을 수 있으며, 현재 블록의 너비도 8보다 크거나 같을 수 있다.
조건 2, 현재 블록의 샘플 수량은 제1 사전 설정 수량 TH3보다 크거나 같다. TH3은 8, 16 32 등일 수 있다.
조건 3, 현재 블록의 너비는 제2 사전 설정 너비 TH4보다 작거나 같으며, 현재 블록의 높이는 제2 사전 설정 높이 TH5보다 크거나 같다. TH4와 TH5는 8, 16, 32 등일 수 있다. TH4는 TH5와 같을 수 있다.
조건 4, 현재 블록의 가로 세로 비율은 제1 사전 설정 비율이다. 예를 들면, 제1 사전 설정 비율은 1:1, 1:2, 2:1, 4:1, 1:4 중 하나일 수 있다.
조건 5, 현재 블록의 크기는 제2 사전 설정값이 아니다. 예를 들면, 제2 사전 설정값은 16×32, 32×32, 16×64, 64×16 중 하나이다.
조건 6, 현재 블록의 높이는 제3 사전 설정 높이보다 크거나 같고, 현재 블록의 너비는 제3 사전 설정 너비보다 크거나 같으며, 현재 블록의 너비와 높이의 비율은 제3 사전 설정값보다 작거나 같고, 현재 블록의 높이와 너비의 비율은 제3 사전 설정값보다 작거나 같다. 예를 들면, 현재 블록의 높이는 8보다 크거나 같고, 너비는 8보다 크거나 같으며, 높이와 너비의 비율은 4보다 작거나 같고, 너비와 높이의 비율은 4보다 작거나 같다.
본 출원의 실시예의 방법은 정사각형이나 정사각형과 비슷한 블록, 예를 들면, 1:1 또는 1:2의 블록에 대해 예측을 수행할 때에 예측 효과가 비교적 뚜렷하지만, 가로 세로 비율이 16:1 또는 32:1인 블록과 같은 가늘고 긴 블록에 대하여 예측을 수행할 때에 예측 효과가 뚜렷하지 않다. 따라서 복잡도가 시스템 전체에 미치는 영향을 줄이고, 압축 성능과 복잡도의 균형을 맞추기 위해, 본 출원은 주로 상기 조건을 만족하는 정사각형 또는 정사각형과 비슷한 블록에 대하여 인트라 예측을 수행한다.
일부 실시예에서, 현재 블록의 제1 컴포넌트의 목표 인트라 예측 모드는 한가지 인트라 예측 모드를 포함할 수 있다. 이런 경우, S404는 다음 몇가지 방식을 포함하지만, 이것에 한정되지 않는다.
방식 1, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드 중 하나의 인트라 예측 모드를 목표 인트라 예측 모드로 한다. 예를 들면, 제2 컴포넌트는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 고정적으로 제1 인트라 예측 모드를 목표 인트라 예측 모드로 하거나, 또는 고정적으로 제2 인트라 예측 모드를 목표 인트라 예측 모드로 한다.
방식 2, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에서 하나의 인트라 예측 모드를 도출하고, 도출된 인트라 예측 모드를 목표 인트라 예측 모드로 한다. 예를 들면, 제1 컴포넌트에 사용되는 각도는 제2 컴포넌트에 사용되는 각도보다 더 큰 간격을 갖는다. 즉, 여러 휘도 인트라 예측 모드에서 동일한 색도 인트라 예측 모드를 도출할 수 있다.
방식 3, 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 목표 인트라 예측 모드를 확정한다. 예를 들면, 제1 샘플 위치는 현재 블록의 오른쪽 아래 모서리에 있는 샘플의 위치 또는 현재 블록의 중간에 있는 샘플의 위치일 수 있다.
방식 3의 한가지 가능한 방식, 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측 블록은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드를 목표 인트라 예측 모드로 한다.
방식 3의 한가지 가능한 방식, 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측 블록은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드를 목표 인트라 예측 모드로 한다.
방식 3의 한가지 가능한 방식, 제1 샘플 위치에 대응하는 최소 유닛에 저장된 제2 컴포넌트의 인트라 예측 모드를 목표 인트라 예측 모드로 한다. 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측 블록은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드의 모드 정보는 최소 유닛에 저장된다. 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측 블록은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드의 모드 정보는 최소 유닛에 저장된다.
다시 말하면, 본 출원의 인트라 예측에서 마찬가지로 인트라 예측 모드 등 정보를 저장하여 후속 코딩할 블록에 참고로 제공한다. 인접 위치 관계에 따라 인접된 블록에서 이전의 코딩된 블록의 인트라 예측 모드는 후속 코딩할 블록에 사용될 수 있다. 위치에 따라 색도 블록(코딩 유닛)은 이전의 이미 코딩된 휘도 블록(코딩 유닛)의 인트라 예측 모드를 사용할 수 있다. 여기서 저장된 정보는 후속 코딩할 블록에 참고로 제공하기 위한 것이며, 동일한 블록(코딩 유닛)의 코딩 모드 정보는 직접 획득할 수 있지만 서로 다른 블록(코딩 유닛)의 코딩 모드 정보는 직접 획득할 수 없기 때문에 저장할 필요가 있다는 것에 유념해야 한다. 위치에 따라 후속 코딩할 블록에 사용되는 이러한 정보를 읽을 수 있다. 현재 픽처의 각 블록에 사용되는 인트라 예측 모드를 저장하는 방법은 일반적으로 4×4 매트릭스와 같은 고정 크기의 매트릭스를 최소 유닛으로 하고, 각 최소 유닛은 하나의 인트라 예측 모드를 독립적으로 저장한다. 이렇게 블록을 코딩할 때마다 상기 블록의 위치에 대응하는 최소 유닛은 상기 블록의 인트라 예측 모드를 저장할 수 있다. 도 11b에 도시된 바와 같이, 16×16 블록이 인트라 예측 모드 5를 사용하는 경우, 상기 블록에 대응하는 모든 4×4 최소 유닛에 저장된 인트라 예측 모드는 모두 인트라 예측 모드 5이다. YUV 포맷의 경우, 일반적으로 휘도 인트라 예측 모드만 저장한다.
예를 들면, 제2 컴포넌트의 인트라 예측 모드가 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하는 경우, 최소 유닛에 인트라 예측 모드를 저장하는 방법은 다음 내용을 포함한다.
예를 들어 설명하면, 한가지 방법에서 일부 최소 유닛은 제1 인트라 예측 모드를 저장하고, 일부 최소 유닛은 제2 인트라 예측 모드를 저장한다. 구체적인 구현으로서 GPM 또는 AWP와 유사한 방법을 사용한다. 본 출원의 기술방안을 사용하는 코딩 표준 또는 코덱이 GPM 또는 AWP 중 하나를 사용하는 경우, 본 출원은 GPM 또는 AWP와 유사한 논리를 사용하거나, 일부 동일한 논리를 재사용할 수 있다. 예를 들면, AVS3의 인터 예측에서 AWP를 사용하였으면, AVS3에서는 AWP를 위해 2개의 서로 다른 운동 정보를 저장하는 것과 유사한 논리를 사용하여 제2 컴포넌트의 2개의 서로 다른 인트라 예측 모드를 저장할 수 있다. 즉, 하나의 최소 유닛에 대응하는 위치에 대해 제1 인트라 예측 모드만 사용하여 예측 블록을 확정하는 경우, 상기 최소 유닛은 제1 인트라 예측 모드를 저장하고, 하나의 최소 유닛에 대응하는 위치에 대해 제2 인트라 예측 모드만 사용하여 예측 블록을 확정하는 경우, 상기 최소 유닛은 제2 인트라 예측 모드를 저장하며, 하나의 최소 유닛에 대응하는 위치에 대해 제1 인트라 예측 모드를 사용하여 예측 블록을 확정할뿐만 아니라 또한 제2 인트라 예측 모드를 사용하여 예측 블록을 확정하는 경우, 특정 판단 방법에 따라 그 중 하나를 선택하여 저장하며, 예를 들면, 제1 인트라 예측 모드 및 제2 인트라 예측 모드 중 가중치가 큰 것을 저장한다.
다른 한가지 방법에서 동일한 현재 블록에 대응하는 모든 최소 유닛은 동일한 인트라 예측 모드만 선택하여 저장한다. 예를 들면, 제2 가중치 행렬의 도출 모드에 따라 현재 블록의 모든 최소 유닛이 제1 인트라 예측 모드를 저장할지 제2 인트라 예측 모드를 저장할지를 확정한다. 본 출원에서 제2 가중치 행렬의 도출 모드와 AWP의 가중치 행렬 도출 모드가 같다고 가정하며, 도 4b에 도시된 바와 같이, AWP에는 56가지 가중치 행렬 도출 모드가 포함된다. 다음 표 3에서 볼 수 있듯이, 제2 가중치 행렬의 도출 모드의 모드 번호가 0에 대응하면, 현재 블록의 모든 최소 유닛은 모두 제1 인트라 예측 모드를 저장하는 것을 나타내고, 행렬 도출 모드의 모드 번호가 1에 대응하면, 현재 블록의 모든 최소 유닛은 모두 제2 인트라 예측 모드를 저장하는 것을 나타낸다.
위의 설명에 따라 본 출원에서 위치에 따라 제2 컴포넌트의 인트라 예측 모드를 대응하는 최소 유닛에 저장함으로써, 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정할 때, 제1 샘플 위치에 대응하는 최소 유닛에 저장된 제2 컴포넌트의 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 할 수 있다.
일부 실시예에서 본 출원의 현재 블록이 제1 컴포넌트만 포함하고 제2 컴포넌트를 포함하지 않는 경우, 예를 들면, 색도 컴포넌트만 포함하고 휘도 컴포넌트를 포함하지 않는 경우, 즉 본 출원의 현재 블록은 색도 블록인 경우, 이 때, 아래 방식으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정할 수 있다. 예를 들면, 기존 방식을 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정한다. 예를 들면, 하나의 위치에 따라 제2 컴포넌트의 인트라 예측 모드를 찾고, 찾은 제2 컴포넌트의 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 한다. 현재 블록의 제1 컴포넌트의 인트라 예측 모드에는 한가지 인트라 예측 모드가 포함된다.
도 14는 본 출원의 실시예에 따른 비디오 인코딩 방법(500)의 다른 흐름도이다. 본 출원의 실시예는 제1 컴포넌트가 적어도 두가지 인트라 예측 모드를 포함하는 것으로 예로서 설명한다. 도 14에 도시된 바와 같이, 상기 방법은 아래 내용을 포함한다.
S501, 제1 컴포넌트와 제2 컴포넌트를 포함하는 현재 블록을 획득한다. 예를 들면, 목표 픽처를 획득하고, 목표 픽처를 구분하여 현재 블록을 획득한다. 선택적으로, 현재 블록은 또한 제2 컴포넌트를 포함한다.
S502, 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드 및 제2 가중치 행렬을 확정한다.
인코딩단에서 인코더가 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드 및 제2 가중치 행렬을 확정할 때, 전부 또는 일부의 서로 다른 인트라 예측 모드와 서로 다른 가중치 행렬의 조합을 시도하고, 각 조합의 인코딩 대가에 따라 인코딩 대가가 가장 작은 조합에 대응하는 적어도 두가지 인트라 예측 모드를 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드로 하며, 상기 조합에 대응되는 가중치 행렬을 제2 가중치 행렬로 한다.
예를 들면, 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에는 제1 인트라 예측 모드와 제2 인트라 예측 모드가 포함된다. 가능한 모든 조합에는 제1 인트라 예측 모드의 모든 가능한 모드, 제2 인트라 예측 모드의 모든 가능한 모드 및 가중 행렬 도출 모드의 모든 가능한 모드의 조합이 포함된다. 본 출원에서 사용할 수 있는 모든 인트라 예측 모드가 66개라고 가정하면, 제1 인트라 예측 모드는 66개의 가능성이 있고, 제2 인트라 예측 모드는 제1 인트라 예측 모드와 다르기 때문에 제2 인트라 예측 모드는 65개의 가능성이 있다. 56개의 가중 행렬 도출 모드(AWP의 경우)가 있다고 가정하면, 본 출원에서 임의의 두가지 서로 다른 인트라 예측 모드와 임의의 가중치 행렬 도출 방식을 조합하여 총 66×65×56개의 가능한 조합을 얻을 수 있다.
한가지 가능한 방식에서, 모든 가능한 조합에 대해 레이트 왜곡 최적화(rate distortion optimization, RDO)를 수행하여 대가가 가장 작은 조합을 확정한다. 상기 조합에 대응하는 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드로 확정되며, 상기 조합에 대응하는 가중치 행렬을 제2 가중 행렬로 한다.
다른 한가지 가능한 방식에서, 가능한 모든 조합을 초기 선택한다. 예를 들면, SAD(sum of absolute difference) 및 SATD(sum of absolute transformed difference) 등을 근사 대가로 하여 초기 선택하여 사전 설정된 수량의 후보 제1 인트라 예측 모드, 제2 인트라 예측 모드 및 가중치 행렬 도출 모드의 조합을 확정하고, 그 다음에 RDO를 사용하여 세밀하게 선택하여 대가가 가장 작은 제1 인트라 예측 모드, 제2 인트라 예측 모드 및 가중치 행렬 도출 모드의 하나의 조합을 확정한다. 일부 빠른 알고리즘은 시도 횟수를 줄이기 위해 초기 선택에 사용될 수 있다. 예를 들면, 인트라 각도 예측 모드로 인해 대가가 큰 경우, 인트라 각도 예측 모드와 인접한 여러 인트라 예측 모드를 시도하지 않는다.
초기 선택 및 세밀하게 선택하는 동안 제1 인트라 예측 모드에 따라 제1 예측 블록을 확정하고, 제2 인트라 예측 모드에 따라 제2 예측 블록을 확정하며, 가중치 행렬 도출 모드에 따라 가중치 행렬을 도출한다. 제1 예측 블록, 제2 예측 블록 및 가중치 행렬에 따라 최종 예측 블록을 확정한다. SAD 및 SATD를 사용하는 초기 선택 단계에서 현재 블록과 예측 블록을 사용하여 SAD 및 SATD를 확정한다.
선택적으로, 인코더는 현재 블록의 텍스쳐를 먼저 분석할 수 있다. 예를 들면 그래디언트(gradient)을 사용하여 분석한다. 분석된 데이터는 초기 선택에 도움이 될 수 있다. 예를 들면, 현재 블록의 텍스처 중 어느 한 방향의 텍스처가 더 강한 경우, 위의 초기 선택 동안 해당 방향과 비슷한 방향의 인트라 예측 모드가 더 많이 선택된다. 예를 들면, 현재 블록의 텍스쳐 중 어느 한 방향의 텍스처가 약한 경우, 위의 초기 선택 동안 해당 방향과 비슷한 방향의 인트라 예측 모드가 더 적게 선택되거나 선택되지 않는다.
상술한 인코딩 대가는 제1 인트라 예측 모드, 제2 인트라 예측 모드와 가중치 행렬 도출 모드가 비트 스트림에서 차지하는 코드의 대가, 비트 스트림에서 전송할 예측 잔차의 변환, 양자화, 엔트로피 인코딩 등에 사용되는 각종 표지와 양자화 계수의 대가, 재구성 블록의 왜곡 대가 등을 포함한다.
또한 인코더는 확정된 현재 블록의 제2 컴포넌트의 제1 인트라 예측 모드, 제2 인트라 예측 모드 및 제2 가중치 행렬 도출 모드의 정보를 문법(syntax)에 따라 비트 스트림에 기입한다.
S503, 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 현재 블록의 제2 컴포넌트에 대해 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제2 컴포넌트의 예측 블록을 획득한다.
S504, 제2 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제2 컴포넌트의 예측 블록에 대해 가중 처리를 수행하여 현재 블록의 제2 컴포넌트의 최종 예측 블록을 획득한다.
S505, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 확정한다.
S506, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드가 도출 모드라고 확정될 때, 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득한다.
S507, 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드를 확정한다. 예를 들면, 직접 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드로 한다.
S508, 제2 가중치 행렬에 따라 제1 가중치 행렬을 획득한다. 예를 들면, 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 같으면 제2 가중치 행렬을 제1 가중치 행렬로 한다. 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량보다 작으면, 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득한다. 또는 가중치 행렬 도출 모드에 따라 제1 가중치 행렬을 도출한다.
설명해야만 하는 것은, S507와 S508의 실행 과정은 선후 순서가 없다.
S509, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대해 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제1 컴포넌트의 예측 블록을 획득한다.
S510, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제1 컴포넌트의 예측 블록에 대해 가중 처리를 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
S511, 비트 스트림을 생성한다. 비트 스트림에는 가중 예측 플래그(weighted prediction flag)가 포함되며, 가중 예측 플래그는 제2 컴포넌트의 예측 블록은 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 획득하는지 여부를 나타낸다.
선택적으로, 비트 스트림에는 또한 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드의 모드 정보가 포함된다.
선택적으로, 비트 스트림에는 또한 제2 가중치 행렬의 도출 모드의 모드 정보가 포함된다.
선택적으로, 비트 스트림에는 또한 현재 블록의 제1 컴포넌트의 도출 모드의 모드 정보가 포함된다.
선택적으로, 제1 가중치 행렬은 가중치 행렬 도출 모드에 따라 확정되는 경우, 비트 스트림에는 제1 가중치 행렬의 도출 모드의 모드 정보가 포함될 수 있다.
일부 실시예에서, 적어도 두가지 인트라 예측 모드가 현재 블록의 제2 컴포넌트를 예측하는 데에 사용된다고 확정할 때, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드는 DM 모드와 같은 도출 모드라고 확정한다. 이 때, 현재 블록의 제1 컴포넌트의 인트라 예측 모드가 상기 도출 모드라고 확정할 때, 비트 스트림에 도출 모드의 모드 정보가 포함되지 않는다.
인코더는 현재 블록의 최종 예측 블록을 획득한 다음에 후속 처리를 수행하며, 양자화 계수의 디코딩, 역변환 및 역양자화하여 잔차 블록을 확정하는 것, 잔차 블록과 예측 블록을 재구성 블록으로 조합하는 것, 후속 루프 필터링 등을 포함한다.
본 출원에서는 적어도 두가지 인트라 예측 모드를 사용하여 제1 컴포넌트와 제2 컴포넌트를 예측할 수 있으므로 더 복잡한 예측 블록을 얻을 수 있으며, 따라서 인트라 예측의 품질이 향상되고, 압축 성능이 향상된다. 기존 기술에 비해 복잡한 텍스처를 예측할 수 있고, 채널 간 상관성을 이용하여 모드 정보가 비트스트림에서 전송되는 것을 감소하고, 코딩 효율을 효과적으로 향상시킨다.
도 15는 본 출원의 실시예에 따른 비디오 인코딩 방법(600)의 다른 흐름도이다. 본 출원의 실시예는 제1 컴포넌트가 색도 컴포넌트이고, 제2 컴포넌트가 휘도 컴포넌트이며, 현재 블록의 휘도 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하는 것을 예로서 설명한다. 색도 컴포넌트는 두가지 인트라 예측 모드를 포함한다. 도 15에 도시된 바와 같이, 상기 방법은 아래 내용을 포함한다.
S601, 색도 컴포넌트와 휘도 컴포넌트를 포함하는 현재 블록을 획득한다.
S602, 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드와 제2 인트라 예측 모드를 확정하고, 또한 제2 가중치 행렬을 확정한다.
S603, 제1 인트라 예측 모드를 사용하여 현재 블록의 휘도 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 휘도 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 휘도 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 휘도 컴포넌트의 제2 예측 블록을 획득한다.
S604, 제2 가중치 행렬에 따라 현재 블록의 휘도 컴포넌트의 제1 예측 블록과 제2 예측 블록에 대해 가중 연산을 수행하여 현재 블록의 휘도 컴포넌트의 최종 예측 블록을 획득한다.
S605, 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드를 확정한다.
S606, 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드가 도출 모드라고 확정될 때, 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드와 제2 인트라 예측 모드를 획득한다.
S607, 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드와 제2 인트라 예측 모드를 현재 블록의 색도 컴포넌트의 제1 인트라 예측 모드와 제2 인트라 예측 모드라고 확정한다.
S608, 현재 블록의 휘도 컴포넌트의 제2 가중치 행렬에 따라 현재 블록의 색도 컴포넌트의 제1 가중치 행렬을 획득한다.
S609, 제1 인트라 예측 모드를 사용하여 현재 블록의 색도 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 색도 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 색도 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 색도 컴포넌트의 제2 예측 블록을 획득한다.
S610, 제1 가중치 행렬에 따라 현재 블록의 색도 컴포넌트의 제1예측 블록과 제2 예측 블록에 대해 가중 연산을 수행하여 현재 블록의 색도 컴포넌트의 최종 예측 블록을 획득한다.
S611, 비트 스트림을 생성한다. 비트 스트림에는 가중 예측 플래그가 포함되며, 가중 예측 플래그는 현재 블록의 휘도 컴포넌트의 예측 블록은 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 획득하는지 여부를 나타낸다.
선택적으로, 비트 스트림에는 또한 현재 블록의 휘도 컴포넌트의 적어도 두가지 인트라 예측 모드의 모드 정보가 포함된다.
선택적으로, 비트 스트림에는 또한 현재 블록의 색도 컴포넌트의 도출 모드의 모드 정보가 포함된다.
일부 실시예에서, 적어도 두가지 인트라 예측 모드가 현재 블록의 휘도 컴포넌트를 예측하는 데에 사용된다고 확정할 때, 현재 블록의 색도 컴포넌트의 인트라 예측 모드는 상기 도출 모드라고 확정한다.
이 때, 현재 블록의 색도 컴포넌트의 인트라 예측 모드가 상기 도출 모드라고 확정할 때, 비트 스트림에는 상기 도출 모드의 모드 정보가 포함되지 않는다.
인코더는 현재 블록의 최종 예측 블록을 획득한 다음에 후속 처리를 수행하며, 양자화 계수의 디코딩, 역변환 및 역양자화하여 잔차 블록을 확정하는 것, 잔차 블록과 예측 블록을 재구성 블록으로 조합하는 것, 후속 루프 필터링 등을 포함한다.
위에서 본 출원의 실시예에 따른 비디오 인코딩 방법에 대해 설명하였으며, 이를 바탕으로 아래 디코딩단에 대하여, 본 출원의 실시예에 따른 비디오 디코딩 방법을 설명한다.
도 16은 본 출원의 실시예에 따른 비디오 디코딩 방법(700)의 흐름도이다. 도 16에 도시된 바와 같이, 본 출원의 실시예의 방법은 아래 내용을 포함한다.
S701, 비트 스트림을 해석하여 제1 컴포넌트를 포함하는 현재 블록과 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득한다.
본 출원의 비트 스트림은 현재 블록에 대응되는 제2 컴포넌트의 인트라 예측에 사용되는 적어도 두가지 인트라 예측 모드의 모드 정보를 갖고 있기 때문에, 비트 스트림을 해석하여 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드의 모드 정보를 획득할 수 있다. 이렇게 하면 현재 블록에 대응되는 제2 컴포넌트의 인트라 예측에 사용되는 적어도 두가지 인트라 예측 모드를 획득할 수 있다.
일부 실시예에서 본 출원의 현재 블록의 크기는 미리 설정된 조건을 만족한다.
미리 설정된 조건은 아래 조건 중 임의의 하나를 포함한다.
조건 1, 현재 블록의 너비는 제1 사전 설정 너비 TH1보다 크거나 같고, 현재 블록의 높이는 제1 사전 설정 높이 TH2보다 크거나 같다. 예를 들면, TH1과 TH2는 8, 16, 32 등일 수 있다. 선택적으로, TH1은 TH2와 같을 수 있다. 예를 들면, 현재 블록의 높이는 8보다 크거나 같을 수 있으며, 현재 블록의 너비도 8보다 크거나 같을 수 있다.
조건 2, 현재 블록의 샘플 수량은 제1 사전 설정 수량 TH3보다 크거나 같다. TH3은 8, 16 32 등일 수 있다.
조건 3, 현재 블록의 너비는 제2 사전 설정 너비 TH4보다 작거나 같으며, 현재 블록의 높이는 제2 사전 설정 높이 TH5보다 크거나 같다. TH4와 TH5는 8, 16, 32 등일 수 있다. TH4는 TH5와 같을 수 있다.
조건 4, 현재 블록의 가로 세로 비율은 제1 사전 설정 비율이다.예를 들면, 제1 사전 설정 비율은 1:1, 1:2, 2:1, 4:1, 1:4 중 하나일 수 있다.
조건 5, 현재 블록의 크기는 제2 사전 설정 비율이다. 예를 들면, 제2 사전 설정값은 16×32, 32×32, 16×64, 64×16 중 하나이다.
조건 6, 현재 블록의 높이는 제3 사전 설정 높이보다 크거나 같고, 현재 블록의 너비는 제3 사전 설정 너비보다 크거나 같으며, 현재 블록의 너비와 높이의 비율은 제3 사전 설정값보다 작거나 같고, 현재 블록의 높이와 너비의 비율이 제3 사전 설정값보다 작거나 같다. 예를 들면, 현재 블록의 높이는 8보다 크거나 같고, 너비는 8보다 크거나 같으며, 높이와 너비의 비율은 4보다 작거나 같고, 너비와 높이의 비율은 4보다 작거나 같다.
S702, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 확정한다.
구체적으로, 비트 스트림에 포함된 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드가 도출 모드가 아닌 경우, 비트 스트림에 포함된 초기 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대해 인트라 예측을 수행한다. 비트 스트림에 포함된 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드가 도출 모드인 경우, S703을 수행한다. 비트 스트림에 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드의 모드 정보가 없는 경우, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드는 도출 모드라고 묵인하며, S703을 수행한다.
S703, 초기 인트라 예측 모드가 도출 모드인 경우, 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정한다.
일부 실시예에서, 현재 블록의 제1 컴포넌트의 인트라 예측 모드는 적어도 두가지 인트라 예측 모드를 포함한다. 이런 경우에 S703은 다음 내용을 포함하되 이에 국한되지는 않는다
방식 1, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 한다.
방식 2, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 도출한다.
일부 실시예에서, 현재 블록의 제1 컴포넌트의 인트라 예측 모드는 한가지 인트라 예측 모드를 포함할 수 있다. 이런 경우, S404는 다음 몇가지 방식을 포함하지만, 이것에 한정되지 않는다.
방식 1, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드 중 하나의 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 한다. 예를 들면, 제2 컴포넌트는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 고정적으로 제1 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 하거나, 또는 고정적으로 제2 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 한다.
방식 2, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 하나의 인트라 예측 모드를 도출하고, 도출된 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 한다. 예를 들면, 제1 컴포넌트에 사용되는 각도는 제2 컴포넌트에 사용되는 각도보다 더 큰 간격을 갖는다. 즉, 여러 휘도 인트라 예측 모드에서 동일한 색도 인트라 예측 모드를 도출할 수 있다.
방식 3, 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정한다.
방식 3의 한가지 가능한 방식, 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측 블록은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 한다.
방식 3의 한가지 가능한 방식, 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측 블록은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 한다.
방식 3의 한가지 가능한 방식, 제1 샘플 위치에 대응하는 최소 유닛에 저장된 제2 컴포넌트의 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 한다. 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측 블록은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드의 모드 정보는 최소 유닛에 저장된다. 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측 블록은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드의 모드 정보는 최소 유닛에 저장된다.
S704, 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
현재 블록의 제1 컴포넌트의 인트라 예측 모드가 적어도 두가지 인트라 예측 모드를 포함하는 경우, S704는 아내 내용을 포함한다.
S704-A1, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 예측 블록을 획득한다.
S704-A2, 각 인트라 예측 모드에 대응하는 예측 블록을 기반으로 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
하나의 실시방빅에서, S704-A2는 S704-A21와 S704-A22를 포함한다.
S704-A21, 제1 가중치 행렬을 확정한다.
S704-A22, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
하나의 가능한 실시방식에서, 가중치 행렬 도출 모드에 따라 제1 가중치 행렬을 도출한다.
하나의 가능한 실시방식에서, 제1 가중치 행렬은 제2 컴포넌트의 가중치 행렬(즉 제2 가중치 행렬)에서 도출하며, S704-A21은 다음 내용을 포함한다.
S704-A211, 현재 블록의 제2 컴포넌트의 제2 가중치 행렬을 획득한다.
S704-A212, 제2 가중치 행렬을 기반으로 제1 가중치 행렬을 획득한다.
하나의 예시에서, 제2 가중치 행렬은 적어도 두개의 서로 다른 가중치를 포함한다. 예를 들면, 최소 가중치가 0이고 최대 가중치가 8이면, 제2 가중치 행렬 중 일부 샘플의 가중치는 0이고, 일부 샘플의 가중치는 8이고, 일부 샘플의 가중치는 0 내지 8 중의 임의의 수치이며, 예를 들면, 2이다.
하나의 예시에서, 제2 가중치 행렬 중 모든 가중치는 동일하다. 예를 들면, 최소 가중치가 0이고 최대 가중치가 8이면, 제2 가중치 행렬 중 모든 샘플의 가중치는 최소 가중치와 최대 가중치 사이의 하나의 수치이며, 예를 들면, 4이다.
하나의 예시에서, 제2 가중치 행렬 중 각 가중치에 대응하는 샘플에 대하여, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 제2 컴포넌트 중 샘플의 예측값을 획득한다.
하나의 예시에서, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 N가지 인트라 예측 모드를 포함하고, N은 2보다 크거나 같은 양의 정수다. 제2 가중치 행렬은 N가지 서로 다른 가중치를 포함한다. i번째 가중치는 제2 컴포넌트 중 i번째 가중치에 대응하는 샘플의 예측값은 완전히 i번째 인트라 예측 모드에 의해 획득됨을 나타내고, i는 2 보다 크거나 같고 N보다 작거나 같은 양의 정수이다.
하나의 예시에서, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 제2 가중치 행렬은 최대 가중치(예를 들면, 8), 최소 가중치(예를 들면, 0) 및 적어도 하나의 중간 가중치를 포함한다. 최대 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제1 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내고, 최소 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내며, 중간 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 제1 인트라 예측 모드와 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타낸다. 선택적으로, 최대 가중치 또는 최소 가중치로 구성된 영역을 과도 영역(blending area)이라고 할 수 있다.
하나의 예시에서, 제2 가중치 행렬은 여러가지 가중치를 포함하며, 가중치 변경 위치는 직선이나 곡선을 형성한다.
하나의 예시에서, 제2 가중치 행렬은 AWP 모드 또는 GPM 모드에 대응되는 가중치 행렬이다.
제2 가중치 행렬을 획득한 다음에, S704-A212를 실행하여, 제2 가중치 행렬에 따라 제1 가중치 행렬을 획득한다. 본 출원에서 제2 가중치 행렬에 따라 제1 가중치 행렬을 획득하는 방식은 아래 몇가지를 포함하지만 이것에 한정되지 않는다.
방식 1, 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 같으면, 제2 가중치 행렬을 제1 가중치 행렬로 한다.
방식 2, 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량보다 작으면, 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득한다. 예를 들면, 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량을 기반으로 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득한다.
하나의 실시예에서, 제1 컴포넌트는 제1 서브 컴포넌트와 제2 서브 컴포넌트를 포함한다.
제1 서브 컴포넌트에 대하여, 상술한 단계 S704-A1는, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제1 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제1 서브 컴포넌트의 예측 블록을 획득하는 것을 포함한다. S704-A22는, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제1 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함한다.
예를 들면, 제1 인트라 예측 모드를 사용하여 현재 블록의 제1 서브 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제1 서브 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 제1 서브 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제1 서브 컴포넌트의 제2 예측 블록을 획득한다. 제1 가중치 행렬에 따라, 현재 블록의 제1 서브 컴포넌트의 제1 예측 블록과 제2 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득한다.
구체적인 예시에서, 상기 공식 (2)에 따라 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득한다.
제2 서브 컴포넌트에 대하여, 상술한 단계 S704-A1는, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제2 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제2 서브 컴포넌트의 예측 블록을 획득하는 것을 포함한다. S704-A22는, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제2 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함한다.
예를 들면, 제1 인트라 예측 모드를 사용하여 현재 블록의 제2 서브 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제2 서브 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 제2 서브 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 제2 서브 컴포넌트의 제2 예측 블록을 획득한다. 제1 가중치 행렬에 따라, 현재 블록의 제2 서브 컴포넌트의 제1 예측 블록과 제2 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득한다.
구체적인 예시에서, 상기 공식 (3)에 따라 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득한다.
디코딩단의 일부 단계는 인코딩단의 단계와 같으므로, 인코딩단의 관련 설명을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다.
디코더는 현재 블록의 최종 예측 블록을 획득한 다음에 후속 처리를 수행하며, 양자화 계수의 디코딩, 역변환 및 역양자화하여 잔차 블록을 확정하는 것, 잔차 블록과 예측 블록을 재구성 블록으로 조합하는 것, 후속 루프 필터링 등을 포함한다.
도 17은 본 출원의 실시예에 따른 비디오 디코딩 방법(800)의 흐름도이다. 도 17에 도시된 바와 같이, 본 출원의 실시예의 방법은 아래 내용을 포함한다.
S801, 비트 스트림을 해석하여 현재 블록에 대해 인트라 예측을 수행하는지 여부를 확정하며, 현재 블록에는 제1 컴포넌트 및 제2 컴포넌트가 포함된다.
S802, 현재 블록에 대해 인트라 예측을 수행한다는 것을 확정하면, 가중 예측 플래그를 해석하며, 가중 예측 플래그는 제2 컴포넌트의 예측 블록은 적어도 두가지 인트라 예측 모드를 사용하여 예측함으로써 획득되는지 여부를 나타낸다.
S803, 가중 예측 플래그가 제2 컴포넌트의 예측 블록은 적어도 두가지 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내는 경우, 현재 블록의 제2 컴포넌트에 대해 인트라 예측을 수행할 때에 사용되는 적어도 두가지 인트라 예측 모드와 제2 가중치 행렬의 도출 모드 정보를 해석한다.
S804, 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 현재 블록의 제2 컴포넌트에 대해 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제2 컴포넌트의 예측 블록을 획득한다.
S805, 제2 가중치 행렬의 도출 모드 정보에 따라 제2 가중치 행렬을 획득한다.
설명해야만 하는 것은, S804와 S805의 실행 과정은 선후 순서가 없다.
S806, 제2 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제2 컴포넌트의 예측 블록에 대해 가중 처리를 수행하여 현재 블록의 제2 컴포넌트의 최종 예측 블록을 획득한다.
S807, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 확정한다. 구체적으로, 비트 스트림에 포함된 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드가 도출 모드가 아닌 경우, 비트 스트림에 포함된 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대해 인트라 예측을 수행한다. 비트 스트림에 포함된 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드가 도출 모드인 경우, S808을 수행한다. 비트 스트림에 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드의 모드 정보가 없는 경우, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드는 도출 모드라고 묵인하며, S808을 수행한다.
S808, 초기 인트라 예측 모드가 도출 모드인 경우, 현재 블록의 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드를 확정한다. 예를 들면, 직접 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드로 한다.
S809, 제2 가중치 행렬에 따라 제1 가중치 행렬을 확정한다. 예를 들면, 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 같으면, 제2 가중치 행렬을 제1 가중치 행렬로 한다. 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량보다 작으면, 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득한다.
설명해야만 하는 것은, S808와 S809의 실행 과정은 선후 순서가 없다.
S810, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대해 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제1 컴포넌트의 예측 블록을 획득한다.
S811, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제1 컴포넌트의 예측 블록에 대해 가중 처리를 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득한다.
도 18은 본 출원의 실시예에 따른 비디오 디코딩 방법(900)의 흐름도이다. 본 출원의 실시예는 제1 컴포넌트가 색도 컴포넌트이고, 제2 컴포넌트가 휘도 컴포넌트이며, 휘도 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하는 것을 예로서 설명한다. 색도 컴포넌트는 두가지 인트라 예측 모드를 포함한다. 도 18에 도시된 바와 같이, 상기 방법은 아래 내용을 포함한다.
S901, 비트 스트림을 해석하여 현재 블록에 대해 인트라 예측을 수행하는지 여부를 확정하며, 현재 블록에는 휘도 컴포넌트 및 색도 컴포넌트가 포함된다.
S902, 현재 블록에 대해 인트라 예측을 수행한다는 것을 확정하면, 가중 예측 플래그를 해석하며, 가중 예측 플래그는 휘도 컴포넌트의 예측 블록은 두가지 인트라 예측 모드를 사용하여 예측함으로써 획득되는지 여부를 나타낸다.
하나의 예시에서, 본 출원의 기술은 공간 각도 가중 예측(spatial angular weighted prediction, SAWP)라고 한다. 현재 블록이 SAWP 기술을 사용하는지 여부를 확정하기 위해 비트 스트림에 시퀀스 레벨 플래그(sequence-level flag)를 포함할 수 있다. 예를 들면, 표 4는 시퀀스 헤더의 정의를 설명한다.
표 4에서 sawp_enable_flag는 SAWP 인에이블 플래그이고, 이진 변수이다. 값이 "1"인 sawp_enable_flag는 SAWP를 사용할 수 있음을 나타내고, 값이 "0"인 savp_enable_fillag는 SAWP를 사용할 수 없음을 나타낸다. SawpEnableFlag의 값은 sawp_enable_flag의 값과 같다. 비트 스트림에 sawp_enable_flag 가 없으면, SawpEnableFlag의 값은 "0" 이다.
선택적으로, 현재 디코딩할 픽처가 SAWP 기술을 사용하는지 여부를 나타내는 프레임 레벨 플래그(frame-level flag)가 있을 수 있다. 예를 들면, 인트라 프레임(I 프레임)에 SAWP 기술이 사용되고, 인터 프레임(B 프레임 또는 P 프레임)에 SAWP 기술이 사용되지 않도록 구성될 수 있다. 또는 인트라 프레임에 SAWP 기술이 사용되지 않고 인터 프레임에 SAWP 기술이 사용되도록 구성될 수 있다. 또는 일부 인터 프레임에 SAWP 기술이 사용되고, 일부 인터 프레임에 SAWP 기술이 사용되지 않도록 구성될 수 있다.
선택적으로, 프레임 레벨 이하 및 CU 레벨 이상의 플래그(예를 들면, tile, slice, patch, LCU 등)가 있을 수 있으며, SAWP 기술이 상기 플래그에 대응하는 영역에 사용되는지 여부를 나타낸다.
예를 들면, 디코더는 아래 프로그램을 실행한다.
intra_cu_flag는 인트라 예측 플래그이다. sawp_flag 는 가중 예측 플래그이고, 이진 변수이다. 값이 "1"인 sawp_flag는 SAWP를 실행해야 함을 나타내고, 즉 휘도 컴포넌트는 적어도 두가지 인트라 예측 모드를 포함한다. 값이 "0"인 sawp_flag는 SAWP를 실행할 수 없음을 나타내고, 즉 휘도 컴포넌트는 적어도 두가지 인트라 예측 모드를 포함하지 않는다. SawpFlag의 값은 sawp_flag의 값과 같다. 비트 스트림에 sawp_flag가 없으면, SawpFlag 값은 0이다.
구체적으로, 디코더는 현재 블록을 디코딩한다. 현재 블록이 인트라 예측을 사용하는 것으로 확정되면, 현재 블록의 SAWP 사용 플래그(즉 SAWP_flag의 값)를 디코딩한다. 현재 블록이 인트라 예측을 사용하지 않는 것으로 확정되면, 현재 블록의 SAWP 사용 플래그를 디코딩할 필요가 없다. 선택적으로, 현재 블록이 SAWP를 사용하면, DT 또는 IPF가 SAWP와 상호 배타적이기 때문에, 디코더는 DT 또는 IPF 관련 정보를 처리할 필요가 없다.
S903, 가중 예측 플래그가 휘도 컴포넌트가 두가지 인트라 예측 모드를 사용하여 예측을 수행함을 나타내는 경우, 현재 블록의 휘도 컴포넌트에 대해 인트라 예측을 수행할 때에 사용되는 제1 인트라 예측 모드, 제2 인트라 예측 모드 및 제2 가중치 행렬의 도출 모드 정보를 해석한다.
가중 예측 플래그가 휘도 컴포넌트가 두가지 인트라 예측 모드를 사용하여 예측을 수행함을 나타내는 경우, 디코더는 현재 블록의 휘도 컴포넌트에 대해 인트라 예측을 수행할 때에 사용되는 제1 인트라 예측 모드, 제2 인트라 예측 모드 및 제2 가중치 행렬의 도출 모드 정보를 해석한다.
일부 실시예에서, 디코더는 아래 프로그램을 실행하여 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드 및 제2 인트라 예측 모드의 모드 정보를 획득한다.
sawp_idx는 제2 가중치 행렬의 도출 모드 정보를 나타낸다. SawpIdx의 값은 sawp_idx의 값과 같다. 비트 스트림에 sawp_idx가 포함되지 않으면, SawpIdx 값은 0이다. intra_luma_pred_mode0은 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드의 모드 정보를 나타내고, intra_lumi_pred_mode 1은 현재 블록의 휘도 컴포넌트의 제2 인트라 예측 모드의 모드 정보를 나타낸다.
본 단계에서, sawp_idx의 해석 방법은 awp_idx와 같다. intra_luma_pred_mode0의 해석 방법은 intra_luma_pred_mode와 같다. intra_luma_pred_mode1의 해석 방법은 intra_luma_pred_mode와 같다. 선택적으로, AVS3의 MPM은 2개밖에 없기 때문에, intra_luma_pred_mode0과 intra_luma_pred_mode1이 모두 MPM을 사용하고, 또한 intra_luma_pred_mode0이 그 중 하나를 사용하면, intra_luma_pred_mode1이 MPM의 첫번째 모드 아니면 두번째 모드를 사용하는지를 해석할 필요가 없으며, intra_luma_pred_mode1은 다른 하나를 사용한다고 묵인한다.
일부 실시예에서, 디코더는 아래 프로그램을 실행하여 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드 및 제2 인트라 예측 모드의 모드 정보와 제2 가중치 행렬의 도출 모드 정보를 획득한다.
구체적으로, 디코더는 현재 블록을 디코딩한다. 현재 블록이 인트라 예측을 사용하는 경우, 디코더는 현재 블록의 DT 및 IPF의 사용 플래그와 현재 방법 중 각 예측 유닛의 유일한 휘도 예측 모드인 intra_luma_pred_mode를 디코딩한다. 인트라 예측이 DT 및 IPF를 사용하지 않는 경우, 현재 블록의 SAWP 사용 플래그를 디코딩한다. 현재 블록이 SAWP를 사용하는 경우, 디코더는 제2 가중치 행렬의 도출 모드와 intra_luma_pred_mode1을 디코딩해야 한다. intra_luma_pred_mode를 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드의 모드 정보로 하고, intra_lumi_pred_mode1을 현재 블록의 휘도 컴포넌트의 제2 인트라 예측 모드의 모드 정보로 한다.
intra_luma_pred_mode0 및 intra_luma_pred_mode1에 따라 IntraLumaPredMode0 및 IntraLumaPredMode1을 각각 확정하고, 표 1로부터 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드와 제2 인트라 예측 모드를 획득할 수 있다.
AVS3의 첫번째 버전은 34개의 인트라 예측 모드만 지원하기 때문에, 도 8에 도시된 바와 같이, 인덱스가 0에서 시작되면, 34번째 모드는 PCM 모드이다. 도 10에 도시된 바와 같이, AVS3의 두번째 버전에는 더 많은 인트라 예측 모드가 추가되고, 66개의 인트라 예측 모드로 확장되었다. 두번째 버전은 첫번째 버전과 호환되도록 원래 intra_luma_pred_mode의 디코딩 방법을 변경하지 않는다. intra_luma_pred_mode가 1보다 크면 eipm_pu_flag라는 플래그 비트를 더 추가할 필요가 있다.
eipm_pu_flag 는 인트라 휘도 예측 모드 확장 플래그이며, 이진 변수이다. 값이 "1"인 eipm_pu_flag는 인트라 각도 예측 확장 모드를 사용해야 함을 나타내고, 값이 "0"인 eipm _pu_flad는 인트라 휘도 예측 확장 모드를 사용하지 않음을 나타낸다. EipmPuFlag의 값은 eipm_pu_flag의 값과 같다. 비트 스트림에 eipm_pu_flag가 없으면 EipmPuFlag의 값은 0이다.
AVS3의 두번째 버전에 대응하는 텍스트 설명인 경우, 상기 문구 intra_luma_pred_mode, intra_luma_pred_mode0, intra_luma_pred_mode1는 모두 eipm_pu_flag,eipm_pu_flag0,eipm_pu_flag1의 설명을 추가해야 한다. IntraLumaPredMode0은 intra_luma_pred_mode0 및 eipm_pu_flag0에 따라 확정되고, IntraLumaPredMode1은 intra_luma_pred_mode1 및 eipm_pu_flag1에 따라 확정된다.
S904, 제1 인트라 예측 모드를 사용하여 현재 블록의 휘도 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 휘도 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 휘도 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 휘도 컴포넌트의 제2 예측 블록을 획득한다.
S905, 제2 가중치 행렬의 도출 모드 정보에 따라 제2 가중치 행렬을 획득한다.
예를 들면, 디코더는 현재 블록의 휘도 컴포넌트의 제2 가중치 행렬을 획득하기 위해 다음 프로그램을 수행한다.
M은 현재 블록의 너비이고, N은 현재 블록의 높이이며, AwpWeightArrayY는 휘도 컴포넌트 Y의 제2 가중치 행렬이다. 참조 가중치 ReferenceWeights[x]는 다음 프로그램에 따라 획득할 수 있다.
설명해야만 하는 것은, S904와 S905의 실행 과정은 선후 순서가 없다.
S906, 제2 가중치 행렬에 따라 현재 블록의 휘도 컴포넌트의 제1 예측 블록과 제2 예측 블록에 대해 가중 연산을 수행하여 현재 블록의 휘도 컴포넌트의 최종 예측 블록을 획득한다.
하나의 예시에서, 다음 공식 (4)에 따라 현재 블록의 휘도 컴포넌트의 최종 예측 블록을 획득한다.
여기서 Y는 휘도 컴포넌트이고, predMatrixSawpY[x][Y]는 휘도 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMetrixY0[x][Y]는 현재 블록의 휘도 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixY1[x][y]는 현재 블록의 휘도 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayY[x][y]는 제2 가중치 행렬 AwpWeightArrayY 중의 predMatrixY0[x][y]의 대응하는 가중치를 나타낸다.
S907, 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드를 확정한다. 구체적으로, 비트 스트림에 포함된 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드가 도출 모드가 아닌 경우, 비트 스트림에 포함된 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드를 사용하여 현재 블록의 색도 컴포넌트에 대해 인트라 예측을 수행한다. 비트 스트림에 포함된 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드가 도출 모드인 경우, S908을 수행한다.
비트 스트림에 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드의 모드 정보가 없는 경우, 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드는 도출 모드라고 묵인하며, S908을 수행한다.
일부 실시예에서, 본 출원이 현재 블록의 색도 컴포넌트의 인트라 예측 모드 IntraChromaPredMode를 확정할 때, 다음 프로세스가 수행된다.
1) 현재 블록의 SawpFlag가 1이면(즉 현재 블록이 본 출원의 기술방안을 사용함), isRedundant는 0이고, 3) 단계로 건너뛰고, 그렇지 않으면 2)단계로 들어간다.
2) 현재 블록 중 PredBlockOrder의 값이 0인 예측 블록의 휘도 예측 모드 IntraLumaPredMode가 0, 2, 12 또는 24이면, isRedundant는 1이고, 그렇지 않으면 isRedundant는 0이다.
3) tscpm_enable_flag의 값이 "1" 이거나 또는 pmc_enable_flag의 값이 "1" 이고, intra_chroma_pred_mode의 값이 "1"이면, IntraChrmaPredMode는 (5+IntraChrmaEnhancedMode+3*IntraChromaPmFlag)와 같다.
4) 그렇지 않으면,
· tscpm_enable_flag의 값이 "1"이고 또한 intra_chroma_pred_mode의 값이 0과 같지 않으면, intra_chroma_pred_mod의 값은 1을 뺀다.
· isRedundant가 0이면, IntraChromaPredMode는 intra_chroma_pred_mode와 같다. 그렇지 않으면 다음 단계를 순서대로 수행한다.
□ IntraLumaPredMode가 0이면, predIntraChromaPredMode는 1이다. IntraLumaPredMode가 2이면, predIntraChromaPredMode는 4이다. IntraLumaPredMode가 12이면, predIntraChromaPredMode는 3이다. IntraLumaPredMode가 24이면, predIntraChromaPredMode는 2이다.
intra_chroma_pred_mode의 값이 0이면, IntraChromaPredMode는 0이다. 그렇지 않으면 intra_chroma_pred_mode의 값이 predIntraChromaPredMode보다 작으면 IntraChromaPredMode는 intra_chroma_pred_mode와 같다. 그렇지 않으면 IntraChromaPredMode는 intra_chroma_pred_mode 더하기 1과 같다.
a) IntraChromaPredMode의 값을 기반으로, 표 2로부터 현재 블록의 색도 컴포넌트의 인트라 예측 모드를 획득한다.
현재 블록의 SawpFlag가 1이고 또한 IntraChromaPredMode가 0이면, 현재 블록의 색도 컴포넌트의 인트라 예측 모드는 PCM이 아니고 intra_chroma_DM이다.
본 출원에서 현재 블록의 제1 컴포넌트에 대하여 적어도 두가지 인트라 예측 모드를 사용하여 예측 블록을 확정하는 경우, 이후의 현재 블록의 제1 컴포넌트의 인트라 예측 모드는 중복된 모드가 아니고, 인트라 색도 예측 모드를 이진화(binarization)하는 동안 중복 모드를 검사하고 제거할 필요가 없으며, 즉 상기 단계 2)를 수행할 필요가 없다.
S908, 현재 블록의 색도 컴포넌트의 초기 인트라 예측 모드가 도출 모드라고 확정될 때, 현재 블록의 휘도 컴포넌트의 제1 인트라 예측 모드와 제2 인트라 예측 모드를 현재 블록의 색도 컴포넌트의 제1 인트라 예측 모드와 제2 인트라 예측 모드라고 확정한다.
S909, 제2 가중치 행렬에 따라 제1 가중치 행렬을 확정한다.
예를 들면, 현재 블록의 휘도 컴포넌트에 포함된 샘플의 수량이 현재 블록의 색도 컴포넌트에 포함된 샘플의 수량과 같으면, 제2 가중치 행렬을 제1 가중치 행렬로 한다. 현재 블록의 색도 컴포넌트에 포함된 샘플의 수량이 현재 블록의 휘도 컴포넌트에 포함된 샘플의 수량보다 작으면, 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득한다.
예를 들면, YUV 4:2:0인 경우, 디코더는 다음 프로그램을 실행하여 제1 가중치 행렬을 획득한다.
AwpWeightArrayUV는 제1 가중치 행렬이고, AwpWeightArrayY는 제2 가중치 행렬이다.
설명해야만 하는 것은, S908와 S909의 실행 과정은 선후 순서가 없다.
S910, 제1 인트라 예측 모드를 사용하여 현재 블록의 색도 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 색도 컴포넌트의 제1 예측 블록을 획득하고, 제2 인트라 예측 모드를 사용하여 현재 블록의 색도 컴포넌트에 대해 인트라 예측을 수행하여 현재 블록의 색도 컴포넌트의 제2 예측 블록을 획득한다.
S911, 제1 가중치 행렬에 따라 현재 블록의 색도 컴포넌트의 제1 예측 블록과 제2 예측 블록에 대해 가중 연산을 수행하여 현재 블록의 색도 컴포넌트의 최종 예측 블록을 획득한다.
예를 들면, 색도 컴포넌트에는 U 컴포넌트와 V 컴포넌트가 포함된다. 아래 공식 (5)에 따라 현재 블록의 U 컴포넌트의 최종 예측 블록을 확정할 수 있다.
여기서 predMatrixSawpU[x][y]는 U 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixU0[x][y]는 현재 블록의 U 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixU1[x][y]는 현재 블록의 U 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayUV[x][y]는 제1 가중치 행렬 AwpWeightArrayUV 중의 predMatrixU0[x][y]의 대응하는 가중치를 나타낸다.
아래 공식 (6)에 따라 현재 블록의 V 컴포넌트의 최종 예측 블록을 확정할 수 있다.
여기서 predMatrixSawpV[x][y]는 V 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixV0[x][y]는 현재 블록의 V 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixV1[x][y]는 현재 블록의 V 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayUV[x][y]는 제1 가중치 행렬 AwpWeightArrayUV 중의 predMatrixV0[x][y]의 대응하는 가중치를 나타낸다.
마지막에 디코더는 후속 처리를 수행하며, 양자화 계수의 디코딩, 역변환 및 역양자화하여 잔차 블록을 확정하는 것, 잔차 블록과 예측 블록을 재구성 블록으로 조합하는 것, 후속 루프 필터링 등을 포함한다.
도 12, 도 14 내지 도 18은 본 출원의 예시일뿐이며, 본 출원에 대한 제한으로 이해해서는 안된다는 점에 유념해야 한다.
이상, 첨부된 도면을 참조하여 본 출원의 바람직한 실시예를 설명하였지만, 본 출원은 상술한 실시방식 중의 구체적인 세부사항에 한정되지 않고, 본 출원의 기술 구상 범위 내에서 본 출원의 기술방안에 대하여 여러가지 간단한 변형을 진행할 수 있으며, 이러한 간단한 변형은 모두 본 출원의 보호 범위에 속한다. 예를 들면, 상술한 구체적인 실시방식에서 설명된 각 구체적인 기술특징은 모순되지 않는 한 임의의 적합한 방식으로 조합될 수 있으며, 불필요한 중복을 방지하기 위해, 본 출원은 각 가능한 조합에 대하여 더이상 설명하지 않는다. 또 예를 들면, 본 출원의 각 서로 다른 실시방식은 임의로 조합될 수 있으며, 본 출원의 사상을 위반하지 않는 한, 마찬가지로 본 출원에 공개된 내용으로 간주된다.
또한 본 출원의 다양한 방법 실시예에서, 상술한 각 과정의 시퀀스 번호 크기는 실행 순서의 선후를 의미하지 않으며, 각 과정의 실행 순서는 그 기능과 내부 논리에 의해 결정되어야 하며, 본 출원의 실시예의 실시 과정을 한정하고자 하는 것은 아니다는 것을 이해해야 한다. 또한 본 출원의 실시예에서 "및/또는" 라는 용어는 연관된 대상의 연관 관계를 설명할뿐이며, 세가지 관계가 있을 수 있음을 나타낸다. 구체적으로, A 및/또는 B는 A가 단독으로 존재하거나, A와 B가 동시에 존재하거나, B가 단독으로 존재하는 것을 의미할 수 있다. 또한 본 명세서의 부호 "/" 는 일반적으로 전후 연관된 대상이 "또는" 이라는 관계임을 나타낸다.
이상 도 14 내지 도 18을 참조하여 본 출원의 방법 실시예를 구체적으로 설명하였다. 아래 도 19 내지 도 21을 참조하여 본 출원의 장치 실시예를 상세하게 설명한다.
도 19는 본 출원의 실시예에서 제공되는 비디오 인코더(10)의 블록도이다.
도 19에 도시된 바와 같이, 비디오 인코더(10)는 제1 획득 유닛(11), 제1 확정 유닛(12), 제2 획득 유닛(13), 제2 확정 유닛(14) 및 예측 유닛(15)을 포함한다.
제1 획득 유닛(11)은 제1 컴포넌트를 포함하는 현재 블록을 획득하는 데에 사용된다.
제1 확정 유닛(12)은 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 데에 사용된다.
제2 획득 유닛(13)은 초기 인트라 예측 모드가 도출 모드인 경우에 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하는 데에 사용된다.
제2 확정 유닛(14)은 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 목표 인트라 예측 모드를 확정하는 데에 사용된다.
예측 유닛(15)은 목표 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
일부 실시예에서, 목표 인트라 예측 모드는 적어도 두가지 인트라 예측 모드를 포함한다.
일부 실시예에서, 제2 확정 유닛(14)은 구체적으로 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 목표 인트라 예측 모드로 하는 데에 사용된다.
일부 실시예에서, 제2 확정 유닛(14)은 구체적으로 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 현재 블록의 제1 컴포넌트의 목표 인트라 예측 모델을 도출하는 데에 사용된다.
이 때, 예측 유닛(15)은 구체적으로 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 예측 블록을 획득하고, 각 인트라 예측 모드에 대응하는 예측 블록을 기반으로 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
일부 실시예에서, 예측 유닛(15)은 구체적으로 제1 가중치 행렬을 확정하고, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
일부 실시예에서, 예측 유닛(15)은 구체적으로 가중치 행렬 도출 모드에 따라 제1 가중치 행렬을 도출하는 데에 사용된다.
일부 실시예에서, 예측 유닛(15)은 구체적으로 현재 블록의 제2 컴포넌트의 제2 가중치 행렬을 획득하고, 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 같으면, 제2 가중치 행렬을 제1 가중치 행렬로 하고, 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량보다 작으면, 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득하는 데에 사용된다.
일부 실시예에서, 예측 유닛(15)은 구체적으로 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량을 기반으로 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득하는 데에 사용된다.
선택적으로, 제2 가중치 행렬은 적어도 두개의 서로 다른 가중치를 포함한다.
선택적으로, 제2 가중치 행렬 중 모든 가중치는 동일하다.
선택적으로, 제2 가중치 행렬 중 각 가중치에 대응하는 샘플에 대하여, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 제2 컴포넌트 중 샘플의 예측값을 획득한다.
선택적으로, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 N가지 인트라 예측 모드를 포함하고, N은 2보다 크거나 같은 양의 정수다. 제2 가중치 행렬은 N가지 서로 다른 가중치를 포함한다. i번째 가중치는 제2 컴포넌트 중 i번째 가중치에 대응하는 샘플의 예측값은 완전히 i번째 인트라 예측 모드에 의해 획득됨을 나타내고, i는 2 보다 크거나 같고 N보다 작거나 같은 양의 정수이다.
선택적으로, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 제2 가중치 행렬은 최대 가중치, 최소 가중치 및 적어도 하나의 중간 가중치를 포함한다. 최대 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제1 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내고, 최소 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내며, 중간 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 제1 인트라 예측 모드와 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타낸다.
선택적으로, 제2 가중치 행렬은 여러가지 가중치를 포함하며, 가중치 변경 위치는 직선이나 곡선을 형성한다.
선택적으로, 제2 가중치 행렬은 AWP 모드 또는 GPM 모드에 대응되는 가중치 행렬이다.
일부 실시예에서, 목표 인트라 예측 모드에는 한가지 인트라 예측 모드가 포함된다.
하나의 예시에서, 제2 확정 유닛(14)은 구체적으로 제2 컴포넌트의 적어도 두가지 인트라 예측 모드 중 하나의 인트라 예측 모드를 목표 인트라 예측 모드로 하는 데에 사용된다.
하나의 예시에서, 제2 확정 유닛(14)은 구체적으로 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 목표 인트라 예측 모드를 확정하는 데에 사용된다.
하나의 예시에서, 제2 확정 유닛(14)은 구체적으로 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드를 목표 인트라 예측 모드로 하고, 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드를 목표 인트라 예측 모드로 하는 데에 사용된다.
하나의 예시에서, 제2 확정 유닛(14)은 구체적으로 제1 샘플 위치에 대응하는 최소 유닛에 저장된 제2 컴포넌트의 인트라 예측 모드를 목표 인트라 예측 모드로 하는 데에 사용된다.
선택적으로, 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드의 모드 정보는 최소 유닛에 저장된다. 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드의 모드 정보는 최소 유닛에 저장된다.
일부 실시예에서, 제1 컴포넌트는 제1 서브 컴포넌트와 제2 서브 컴포넌트를 포함한다. 예측 유닛(15)은 구체적으로 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제1 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제1 서브 컴포넌트의 예측 블록을 획득하고, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제2 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제2 서브 컴포넌트의 예측 블록을 획득하는 데에 사용된다.
하나의 예시에서, 예측 유닛(15)은 구체적으로 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제1 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득하고, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제2 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
하나의 예시에서, 예측 유닛(15)은 구체적으로 아래 공식에 따라 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
predMatrixSawpA [x][y]=(predMatrixA0[x][y] * AwpWeightArrayAB[x][y] + predMatrixA1[x][y] * ( 2n - AwpWeightArrayAB [x][y] ) + 2n-1 ) >> n;
여기서 A는 제1 서브 컴포넌트를 나타내고, predMatrixSawpA[x][y]는 제1 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixA0[x][y]는 현재 블록의 제1 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixA1[x][y]는 현재 블록의 제1 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayAB[x][y]는 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixA0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수이다.
하나의 예시에서, 예측 유닛(15)은 구체적으로 아래 공식에 따라 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
predMatrixSawpB [x][y]=(predMatrixB0[x][y] * AwpWeightArrayAB[x][y] + predMatrixB1[x][y] * ( 2n - AwpWeightArrayAB [x][y] ) + 2n-1 ) >> n;
여기서 B는 제2 서브 컴포넌트를 나타내고, predMatrixSawpB[x][y]는 제2 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixB0[x][y]는 현재 블록의 제2 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixB1[x][y]는 현재 블록의 제2 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayAB[x][y]는 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixB0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수이다.
하나의 예시에서, 예측 유닛(15)은 또한 비트 스트림을 생성하는 데에 사용된다. 비트 스트림에는 가중 예측 플래그(weighted prediction flag)가 포함되며, 가중 예측 플래그는 제2 컴포넌트의 예측 블록은 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 획득하는지 여부를 나타낸다.
일부 실시예에서, 제1 확정 유닛(12)은 구체적으로 적어도 두가지 인트라 예측 모드가 현재 블록의 제2 컴포넌트를 예측하는 데에 사용된다고 확정할 때, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드는 도출 모드라고 확정하는 데에 사용된다.
일부 실시예에서, 비트 스트림에는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드의 모드 정보가 포함된다.
일부 실시예에서, 비트 스트림에는 또한 제2 가중치 행렬의 도출 모드 정보가 포함된다.
일부 실시예에서, 현재 블록의 크기는 미리 설정된 조건을 만족한다.
미리 설정된 조건은 아래 조건 중 하나 이상을 포함한다.
조건 1, 현재 블록의 너비는 제1 사전 설정 너비 TH1보다 크거나 같고, 현재 블록의 높이는 제1 사전 설정 높이 TH2보다 크거나 같다.
조건 2, 현재 블록의 샘플 수량은 제1 사전 설정 수량 TH3보다 크거나 같다.
조건 3, 현재 블록의 너비는 제2 사전 설정 너비 TH4보다 작거나 같으며, 현재 블록의 높이는 제2 사전 설정 높이 TH5보다 크거나 같다.
조건 4, 현재 블록의 가로 세로 비율은 제1 사전 설정 비율이다.
조건 5, 현재 블록의 크기는 제2 사전 설정 비율이다.
조건 6, 현재 블록의 높이는 제3 사전 설정 높이보다 크거나 같고, 현재 블록의 너비는 제3 사전 설정 너비보다 크거나 같으며, 현재 블록의 너비와 높이의 비율은 제3 사전 설정값보다 작거나 같고, 현재 블록의 높이와 너비의 비율은 제3 사전 설정값보다 작거나 같다.
선택적으로, 제1 사전 설정 비율은 1:1, 2:1, 1:2, 1:4, 4: 중 하나일 수 있다.
선택적으로, 제2 사전 설정값은 16×32, 32×32, 16×64, 64×16 중 하나이다.
선택적으로, 제1 컴포넌트는 휘도 컴포넌트이고, 제2 컴포넌트는 색도 컴포넌트이다.
선택적으로, 색도 컴포넌트는 U 컴포넌트와 V 컴포넌트를 포함하고, 제1 서브 컴포넌트는 U 컴포넌트이고, 제2 서브 컴포넌트는 V 컴포넌트이다.
장치 실시예는 방법 실시예와 서로 대응될 수 있고, 유사한 설명은 방법 실시예를 참조할 수 있다. 중복되는 것을 방지하기 위해, 여기서 더 이상 반복하지 않는다. 구체적으로, 도 19에 도시된 비디오 인코더(10)는 본 출원의 실시예의 방법을 실행할 수 있고, 비디오 인코더(10) 중 각 유닛의 상기 및 기타 조작 및/또는 기능은 방법 400, 500, 600 등 각 방법의 대응하는 프로세스를 실현하기 위한 것이며, 간결함을 위해 더 이상 반복하지 않는다.
도 20은 본 출원의 실시예에서 제공되는 비디오 디코더(20)의 블록도이다.
도 20에 도시된 바와 같이, 비디오 디코더(20)는 해석 유닛(21), 제1 확정 유닛(22), 제2 확정 유닛(23) 및 예측 유닛(24)을 포함할 수 있다.
해석 유닛(21)은 비트 스트림을 해석하여 제1 컴포넌트를 포함하는 현재 블록과 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하는 데에 사용된다.
제1 확정 유닛(22)은 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 데에 사용된다.
제2 확정 유닛(23)은 초기 인트라 예측 모드가 도출 모드라고 확정된 경우, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 확정하는 데에 사용된다.
예측 유닛(24)은 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
일부 실시예에서, 비트 스트림에는 가중 예측 플래그가 포함되며, 가중 예측 플래그는 제2 컴포넌트의 예측 블록은 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 획득하는지 여부를 나타낸다.
선택적으로, 비트 스트림에는 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드의 모드 정보가 포함된다.
제1 확정 유닛(22)은 구체적으로 비트 스트림에 가중 예측 플래그가 포함되고, 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드의 모드 정보가 포함되지 않는 경우에 현재 블록의 제1 컴포넌트의 초기 인트라 예측 모드가 도출 모드라고 확정하는 데에 사용된다.
일부 실시예에서, 현재 블록의 제1 컴포넌트의 인트라 예측 모드는 적어도 두가지 인트라 예측 모드를 포함한다.
하나의 예시에서, 제2 확정 유닛(23)은 구체적으로 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 현재 블록의 제1 컴포넌트의 인트라 예측 모드로 하는 데에 사용된다.
하나의 예시에서, 제2 확정 유닛(23)은 구체적으로 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 현재 블록의 제1 컴포넌트의 인트라 예측 모드를 도출하는 데에 사용된다.
이 때, 예측 유닛(24)은 구체적으로 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제1 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 예측 블록을 획득하고, 각 인트라 예측 모드에 대응하는 예측 블록을 기반으로 현재 블록의 제1 컴포넌트의 최종 예측 블록을 확정하는 데에 사용된다.
일부 실시예에서, 예측 유닛(24)은 구체적으로 제1 가중치 행렬을 확정하고, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
일부 실시예에서, 예측 유닛(24)은 구체적으로 가중치 행렬 도출 모드에 따라 제1 가중치 행렬을 도출하는 데에 사용된다.
일부 실시예에서, 예측 유닛(24)은 구체적으로 현재 블록의 제2 컴포넌트의 제2 가중치 행렬을 획득하고, 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 같으면, 제2 가중치 행렬을 제1 가중치 행렬로 하고, 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량이 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량보다 작으면, 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득하는 데에 사용된다.
일부 실시예에서, 예측 유닛(24)은 구체적으로 비트 스트림에서 제2 가중치 행렬의 도출 모드 정보를 획득하고, 제2 가중치 행렬의 도출 모드 정보에 따라 제2 가중치 행렬을 획득하는 데에 사용된다.
일부 실시예에서, 예측 유닛(24)은 구체적으로 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량을 기반으로 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 제1 가중치 행렬을 획득하는 데에 사용된다.
선택적으로, 제2 가중치 행렬은 적어도 두개의 서로 다른 가중치를 포함한다.
선택적으로, 제2 가중치 행렬 중 모든 가중치는 동일하다.
선택적으로, 제2 가중치 행렬 중 각 가중치에 대응하는 샘플에 대하여, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 제2 컴포넌트 중 샘플의 예측값을 획득한다.
선택적으로, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 N가지 인트라 예측 모드를 포함하고, N은 2보다 크거나 같은 양의 정수다. 제2 가중치 행렬은 N가지 서로 다른 가중치를 포함한다. i번째 가중치는 제2 컴포넌트 중 i번째 가중치에 대응하는 샘플의 예측값은 완전히 i번째 인트라 예측 모드에 의해 획득됨을 나타내고, i는 2 보다 크거나 같고 N보다 작거나 같은 양의 정수이다.
선택적으로, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 제2 가중치 행렬은 최대 가중치, 최소 가중치 및 적어도 하나의 중간 가중치를 포함한다. 최대 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제1 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내고, 최소 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내며, 중간 가중치는 제2 컴포넌트 중 대응하는 샘플의 예측값은 제1 인트라 예측 모드와 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타낸다.
선택적으로, 제2 가중치 행렬은 여러가지 가중치를 포함하며, 가중치 변경 위치는 직선이나 곡선을 형성한다.
선택적으로, 제2 가중치 행렬은 AWP 모드 또는 GPM 모드에 대응되는 가중치 행렬이다.
일부 실시예에서, 목표 인트라 예측 모드에는 한가지 인트라 예측 모드가 포함된다.
하나의 예시에서, 제2 확정 유닛(23)은 구체적으로 제2 컴포넌트의 적어도 두가지 인트라 예측 모드 중 하나의 인트라 예측 모드를 목표 인트라 예측 모드로 하는 데에 사용된다.
하나의 예시에서, 제2 확정 유닛(23)은 구체적으로 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 목표 인트라 예측 모드를 확정하는 데에 사용된다.
하나의 예시에서, 제2 확정 유닛(23)은 구체적으로 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드를 목표 인트라 예측 모드로 하고, 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드를 목표 인트라 예측 모드로 하는 데에 사용된다.
하나의 예시에서, 제2 확정 유닛(23)은 구체적으로 제1 샘플 위치에 대응하는 최소 유닛에 저장된 제2 컴포넌트의 인트라 예측 모드를 목표 인트라 예측 모드로 하는 데에 사용된다.
선택적으로, 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드의 모드 정보는 최소 유닛에 저장된다. 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드의 모드 정보는 최소 유닛에 저장된다.
일부 실시예에서, 제1 컴포넌트는 제1 서브 컴포넌트와 제2 서브 컴포넌트를 포함한다. 예측 유닛(24)은 구체적으로 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제1 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제1 서브 컴포넌트의 예측 블록을 획득하고, 현재 블록의 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 현재 블록의 제2 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 현재 블록의 제2 서브 컴포넌트의 예측 블록을 획득하는 데에 사용된다.
하나의 예시에서, 예측 유닛(24)은 구체적으로 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제1 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득하고, 제1 가중치 행렬에 따라 각 인트라 예측 모드에 대응하는 현재 블록의 제2 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
하나의 예시에서, 예측 유닛(24)은 구체적으로 아래 공식에 따라 현재 블록의 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
predMatrixSawpA [x][y]=(predMatrixA0[x][y] * AwpWeightArrayAB[x][y] + predMatrixA1[x][y] * ( 2n - AwpWeightArrayAB [x][y] ) + 2n-1 ) >> n;
여기서 A는 제1 서브 컴포넌트를 나타내고, predMatrixSawpA[x][y]는 제1 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixA0[x][y]는 현재 블록의 제1 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixA1[x][y]는 현재 블록의 제1 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayAB[x][y]는 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixA0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수이다.
하나의 예시에서, 예측 유닛(24)은 구체적으로 아래 공식에 따라 현재 블록의 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 데에 사용된다.
predMatrixSawpB [x][y]=(predMatrixB0[x][y] * AwpWeightArrayAB[x][y] + predMatrixB1[x][y] * ( 2n - AwpWeightArrayAB [x][y] ) + 2n-1 ) >> n;
여기서 B는 제2 서브 컴포넌트를 나타내고, predMatrixSawpB[x][y]는 제2 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, predMatrixB0[x][y]는 현재 블록의 제2 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, predMatrixB1[x][y]는 현재 블록의 제2 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, AwpWeightArrayAB[x][y]는 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixB0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수이다.
일부 실시예에서, 현재 블록의 크기는 미리 설정된 조건을 만족한다.
미리 설정된 조건은 아래 조건 중 하나 이상을 포함한다.
조건 1, 현재 블록의 너비는 제1 사전 설정 너비 TH1보다 크거나 같고, 현재 블록의 높이는 제1 사전 설정 높이 TH2보다 크거나 같다.
조건 2, 현재 블록의 샘플 수량은 제1 사전 설정 수량 TH3보다 크거나 같다.
조건 3, 현재 블록의 너비는 제2 사전 설정 너비 TH4보다 작거나 같으며, 현재 블록의 높이는 제2 사전 설정 높이 TH5보다 크거나 같다.
조건 4, 현재 블록의 가로 세로 비율은 제1 사전 설정 비율이다.
조건 5, 현재 블록의 크기는 제2 사전 설정 비율이다.
조건 6, 현재 블록의 높이는 제3 사전 설정 높이보다 크거나 같고, 현재 블록의 너비는 제3 사전 설정 너비보다 크거나 같으며, 현재 블록의 너비와 높이의 비율은 제3 사전 설정값보다 작거나 같고, 현재 블록의 높이와 너비의 비율은 제3 사전 설정값보다 작거나 같다.
선택적으로, 제1 사전 설정 비율은 1:1, 2:1, 1:2, 1:4, 4:1 중 하나일 수 있다.
선택적으로, 제2 사전 설정값은 16×32, 32×32, 16×64, 64×16 중 하나이다.
선택적으로, 제1 컴포넌트는 휘도 컴포넌트이고, 제2 컴포넌트는 색도 컴포넌트이다.
선택적으로, 색도 컴포넌트는 U 컴포넌트와 V 컴포넌트를 포함하고, 제1 서브 컴포넌트는 U 컴포넌트이고, 제2 서브 컴포넌트는 V 컴포넌트이다.
장치 실시예는 방법 실시예와 서로 대응될 수 있고, 유사한 설명은 방법 실시예를 참조할 수 있다. 중복되는 것을 방지하기 위해, 여기서 더 이상 반복하지 않는다. 구체적으로, 도 20에 도시된 비디오 디코더(20)는 본 출원의 실시예의 방법 700 또는 800 또는 900의 실행 주체에 대응될 수 있고, 비디오 디코더(20) 중 각 유닛의 상기 및 기타 조작 및/또는 기능은 방법 700 또는 800 또는 900 등 각 방법의 대응하는 프로세스를 실현하기 위한 것이며, 간결함을 위해 더 이상 반복하지 않는다.
이상 첨부된 도면을 참조하여 기능 유닛의 각도에서 본 출원의 실시예의 장치와 시스템을 설명하였다. 상기 기능 유닛은 하드웨어의 형식으로 구현될 수 있고, 소프트웨어 형식의 명령을 통해 구현될 수도 있으며, 또는 소프트웨어와 하드웨어 조합의 형식으로 실현될 수도 있다. 구체적으로, 본 출원의 실시예의 방법 실시예의 각 단계는 프로세서의 하드웨어 통합 논리 회로 및/또는 소프트웨어 형식의 명령을 통해 완성될 수 있다. 본 출원의 실시예에서 공개된 방법의 단계는 직접 하드웨어 디코딩 프로세서를 사용하여 수행하고 완료하거나 디코딩 프로세서의 하드웨어와 소프트웨어의 조합을 사용하여 수행하고 완료할 수 있다. 선택적으로, 소프트웨어 유닛은 랜덤 액세스 메모리, 플래시 메모리, 읽기 전용 메모리, 프로그래밍 가능 읽기 전용 메모리, 전기 삭제 가능 프로그래밍 가능 메모리 또는 레지스터와 같은 본 기술 분야의 성숙된 저장 매체에 위치할 수 있다. 상기 저장 매체는 메모리에 있으며, 프로세서는 메모리의 정보를 읽고, 그 하드웨어와 결합하여 앞서 설명한 방법 실시예의 단계를 완성한다.
도 21은 본 출원의 실시예에서 제공되는 전자 장치(30)의 블록도이다.
도 32에 도시된 바와 같이, 전자 장치(30)는 본 출원의 실시예의 비디오 인코더 또는 비디오 디코더일 수 있다. 전자 장치(30)는 메모리(33)와 프로세서(32)를 포함할 수 있다.
메모리(33)는 컴퓨터 프로그램(34)을 저장하고, 컴퓨터 프로그램(34)을 프로세서(32)로 전송하는 데에 사용된다. 다시 말하면, 프로세서(32)는 메모리(33)에서 컴퓨터 프로그램(34)을 호출하고 실행함으로써, 본 출원의 실시예의 방법을 실현하도록 한다.
예를 들면, 프로세서(32)는 컴퓨터 프로그램(34)의 명령에 따라 상술한 방법(200)의 단계를 수행하는 데에 사용될 수 있다.
본 출원의 일부 실시예에 있어서, 프로세서(32)는 범용 프로세서, 디지털 신호 프로세서(Digital Signal Processor, DSP), 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA) 또는 다른 프로그래머블 논리 장치, 분리 도어, 트랜지스터 논리 장치, 분리 하드웨어 구성 요소 등을 포함되지만, 이것에 한정되지는 않는다.
본 출원의 일부 실시예에 있어서, 메모리(33)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함하지만, 이것에 한정되지는 않는다. 비휘발성 메모리는 읽기 전용 메모리(Read-Only Memory, ROM), 프로그램 가능 읽기 전용 메모리(Programmable Read-Only Memory, PROM), 삭제 가능 프로그램 가능 읽기 전용 메모리(Erasable Programmable Read-Only Memory, EPROM), 전기적 삭제 가능 프로그램 가능 읽기 전용 메모리(Electrically Erasable Programmable Read-Only Memory, EEPROM) 또는 플래시 메모리(Flash Memory)일 수 있다. 휘발성 메모리는 외부 고속 캐시로 사용되는 랜덤 액세스 메모리(Random Access Memory, RAM)일 수 있다. 예시적이지만 한정적이지 않은 예를 들어, 다양한 형태의 RAM을 사용할 수 있으며, 예를 들면, 정적 랜덤 액세스 메모리(Static RAM, SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM), 동기 동적 랜덤 액세스 메모리(Synchronous Dynamic Random Access Memory, SDRAM), 더블 데이터 레이트 동기 동적 랜덤 액세스 메모리(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM), 확장 동기 동적 랜덤 액세스 메모리(Enhanced Synchronous Dynamic Random Access Memory, ESDRAM), 동기 연결 동적 랜덤 액세스 메모리(Synch-link Dynamic Random Access Memory, SLDRAM) 및 직접 램버스 랜덤 액세스 메모리(Direct Rambus Random Access Memory, DRRAM)이다.
본 출원의 일부 실시예에 있어서, 컴퓨터 프로그램(34)은 하나 이상의 유닛으로 나눌 수 있으며, 하나 이상의 유닛은 메모리(33)에 저장되고 프로세서(32)에 의해 실행됨으로써 본 출원에서 제공하는 방법을 완성하도록 한다. 하나 이상의 유닛은 특정 기능의 일련의 컴퓨터 프로그램 명령 세그먼트를 완성할 수 있으며, 그 중 명령 세그먼트는 컴퓨터 프로그램(34)이 전자 장치(30)에서 실행되는 과정을 설명하는 데에 사용될 수 있다.
도 32에 도시된 바와 같이, 전자 장치(30)는 또한 트랜시버(33)를 포함할 수 있다. 트랜시버(33)는 프로세서(32) 또는 메모리(33)에 연결될 수 있다.
프로세서(32)는 트랜시버(33)가 다른 장치와 통신하도록 제어할 수 있다. 구체적으로, 다른 장치로 정보 또는 데이터를 송신하거나 또는 다른 장치에서 송신된 정보 또는 데이터를 수신할 수 있다. 트랜시버(33)는 송신기와 수신기를 포함할 수 있다. 트랜시버(33)는 진일보로 안테나를 포함할 수 있으며, 안테나의 수량은 하나 또는 여러개이다.
전자 장치(30)의 각 구성 요소는 버스 시스템을 통해 연결되며, 버스 시스템은 데이터 버스 외에 전원 버스, 제어 버스 및 상태 신호 버스를 포함한다는 것을 이해해야 한다.
도 22는 본 출원의 실시예에서 제공되는 비디오 인코딩 및 디코딩 시스템(40)의 블록도이다.
도 22에 도시된 바와 같이, 비디오 인코딩 및 디코딩 시스템(40)은 비디오 인코더(41)와 비디오 디코더(42)를 포함할 수 있다. 비디오 인코더(41)는 본 출원의 실시예에 언급된 비디오 인코딩 방법을 실행하는 데에 사용되고, 비디오 디코더(42)는 본 출원의 실시예에 언급된 비디오 디코딩 방법을 실행하는 데에 사용된다.
본 출원의 실시예는 또한 컴퓨터 저장 매체를 제공한다. 컴퓨터 저장 매체에 컴퓨터 프로그램이 저장되어 있다. 컴퓨터 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 상술한 방법 실시예의 방법을 실행할 수 있도록 한다. 또는 본 출원의 실시예는 또한 명령을 포함하는 컴퓨터 프로그램 제품을 제공하며, 상기 명령이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 상술한 방법 실시예의 방법을 실행하하도록 한다.
소프트웨어를 사용하여 실현할 때, 전부 또는 부분적으로 컴퓨터 프로그램 제품의 형식으로 실현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령을 포함한다. 컴퓨팅 프로그램 명령이 컴퓨터에 로드되고 실행될 때, 본 출원의 실시예의 프로세스를 전부 또는 부분적으로 실행하거나 또는 본 출원의 실시예의 기능을 전부 또는 부분적으로 실현한다. 컴퓨터는 일반 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크 또는 기타 프로그래밍 가능한 장치일 수 있다. 상기 컴퓨터 명령은 컴퓨터 판독 가능한 저장 매체에 저장되거나, 하나의 컴퓨터 판독 가능한 저장 매체에서 다른 컴퓨터 판독 가능한 저장 매체로 전송될 수 있으며, 예를 들면, 상기 컴퓨터 명령은 웹사이트, 컴퓨터, 서버 또는 데이터 센터에서 유선(예를 들어, 동축 케이블, 광섬유, 디지털 가입자 회선(Digital Subscriber Line, DSL)) 또는 무선(예를 들어, 적외선, 무선, 마이크로파 등) 방식을 통해 다른 웹사이트, 컴퓨터, 서버 또는 데이터 센터로 전송될 수 있다. 컴퓨터 판독 가능한 저장 매체는 컴퓨터가 액세스 가능한 모든 사용 가능한 매체일 수 있거나, 또는 하나 이상의 이용 가능한 매체 통합을 포함하는 서버, 데이터 센터와 같은 데이터 저장 장치일 수 있다. 상기 사용 가능한 매체는 자기 매체(예를 들어, 플로피 디스크, 하드 디스크, 자기 테이프), 광학 매체(예를 들어, 디지털 비디오 디스크(Digital Video Disc, DVD)) 또는 반도체 매체(예를 들어, 솔리드 스테이트 디스크(Solid State Disk, SSD)) 등이 될 수 있다.
본 분야의 일반 기술자는 본문에 공개된 실시예에 기술된 각 예시의 유닛과 알고리즘 단계는, 전자 하드웨어, 또는 컴퓨터 소프트웨어와 전자 하드웨어의 결합으로 실현될 수 있음을 인식할 수 있다. 이러한 기능이 하드웨어로 수행되는지 소프트웨어로 수행되는지는 기술 방안의 특정 응용과 설계 제약조건에 의해 결정된다. 전문 기술자는 각 특정 응용 프로그램에 대해 서로 다른 방법을 사용하여 설명된 기능을 실현할 수 있지만, 이러한 실현은 본 출원의 범위를 벗어난 것으로 간주해서는 안된다.
본 출원에서 제공되는 몇몇 실시예에서, 개시된 시스템, 장치, 방법은 다른 방식으로 구현할 수 있다는 것을 이해할 수 있다. 예를 들어, 상기 설명된 장치 실시예는 단지 예시적인 것이며, 예를 들어, 상기 유닛의 분할은 단지 논리적인 기능 분할일 뿐, 실제 구현에서는 다른 분할 방식이 있을 수 있으며, 예들 들어, 여러개의 유닛 또는 컴포넌트가 결합되거나 다른 시스템에 통합될 수 있고, 또는 일부 기능은 무시되거나 실행되지 않을 수 있다. 또한, 표시되거나 논의된 결합 또는 직접 결합 또는 통신 연결은 일부 인터페이스, 장치 또는 유닛을 통한 간접적 결합 또는 통신 연결일 수 있으며, 전기적, 기계적 또는 다른 형태일 수 있다.
분리된 구성 요소로 설명된 유닛은 물리적으로 분리되거나 분리되지 않을 수도 있고, 유닛으로 표시되는 구성 요소는 물리적 유닛일 수 있고 아닐 수도 있으며, 한 위치에 배치되거나 여러 네트워크 유닛에 분포되어 있을 수도 있다. 본 실시예 방안의 목적을 달성하기 위해 실제 요구에 따라 그중의 일부 또는 모든 유닛을 선택할 수 있다. 예를 들면, 본 출원의 각 실시예의 각 기능 유닛은 하나의 처리 유닛에 통합될 수 있고, 각 기능 유닛이 단독으로 물리적으로 존재할 수도 있으며, 두개 이상의 유닛이 하나의 유닛에 통합될 수도 있다.
이상 내용은 본 출원의 구체적인 실시방식일 뿐, 본 출원의 보호 범위는 이것에 한정되지 않는다. 본 분야의 기술자는 본 출원의 기술 범위 내에서 변화, 교체를 쉽게 생각할 수 있으며, 모두 본 출원의 보호 범위에 포함된다. 따라서 본 출원의 보호 범위는 청구범위의 보호 범위를 기준으로 한다.

Claims (77)

  1. 비디오 인코딩 방법으로서,
    제1 컴포넌트를 포함하는 현재 블록을 획득하는 것과,
    상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 것과,
    상기 초기 인트라 예측 모드가 도출 모드인 경우에 상기 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하는 것과,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것과,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  2. 제 1 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드는 적어도 두가지 인트라 예측 모드를 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 제 2 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 도출하는 것을 포함하는 것을 특징으로 하는 방법.
  5. 제 2 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것은,
    상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 상기 각 인트라 예측 모드에 대응하는 예측 블록을 획득하는 것과,
    상기 각 인트라 예측 모드에 대응하는 예측 블록을 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 각 인트라 예측 모드에 대응하는 예측 블록을 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것은,
    제1 가중치 행렬을 확정하는 것과,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    제1 가중치 행렬을 확정하는 것은,
    가중치 행렬 도출 모드에 따라 제1 가중치 행렬을 도출하는 것을 포함하는 것을 특징으로 하는 방법.
  8. 제 6 항에 있어서,
    제1 가중치 행렬을 확정하는 것은,
    상기 현재 블록의 상기 제2 컴포넌트의 제2 가중치 행렬을 획득하는 것과,
    상기 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량이 상기 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 같으면, 상기 제2 가중치 행렬을 상기 제1 가중치 행렬로 하는 것을 포함하는 것을 특징으로 하는 방법.
  9. 제 6 항에 있어서,
    제1 가중치 행렬을 확정하는 것은,
    상기 현재 블록의 상기 제2 컴포넌트의 제2 가중치 행렬을 획득하는 것과,
    상기 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량이 상기 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량보다 작으면, 상기 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 상기 제1 가중치 행렬을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  10. 제 9 항에 있어서,
    상기 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 상기 제1 가중치 행렬을 획득하는 것은,
    상기 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 상기 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량을 기반으로 상기 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 상기 제1 가중치 행렬을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  11. 제 9 항에 있어서,
    상기 제2 가중치 행렬은 적어도 두개의 서로 다른 가중치를 포함하는 것을 특징으로 하는 방법.
  12. 제 9 항에 있어서,
    상기 제2 가중치 행렬 중 모든 가중치는 동일한 것을 특징으로 하는 방법.
  13. 제 9 항에 있어서,
    상기 제2 가중치 행렬 중 각 가중치에 대응하는 샘플에 대하여, 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 제2 컴포넌트 중 샘플의 예측값을 획득하는 것을 특징으로 하는 방법.
  14. 제 9 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 N가지 인트라 예측 모드를 포함하고, 상기 N은 2보다 크거나 같은 양의 정수이고, 상기 제2 가중치 행렬은 N가지 서로 다른 가중치를 포함하며, i번째 가중치는 상기 제2 컴포넌트 중 상기 i번째 가중치에 대응하는 샘플의 예측값은 완전히 i번째 인트라 예측 모드에 의해 획득됨을 나타내고, i는 2 보다 크거나 같고 상기 N보다 작거나 같은 양의 정수인 것을 특징으로 하는 방법.
  15. 제 9 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 상기 제2 가중치 행렬은 최대 가중치, 최소 가중치 및 적어도 하나의 중간 가중치를 포함하고,
    상기 최대 가중치는 상기 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 상기 제1 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내고,
    상기 최소 가중치는 상기 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 상기 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내며,
    상기 중간 가중치는 상기 제2 컴포넌트 중 대응하는 샘플의 예측값은 상기 제1 인트라 예측 모드와 상기 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내는 것을 특징으로 하는 방법.
  16. 제 9 항에 있어서,
    상기 제2 가중치 행렬은 여러가지 가중치를 포함하며, 가중치 변경 위치는 직선이나 곡선을 형성하는 것을 특징으로 하는 방법.
  17. 제 9 항에 있어서,
    상기 제2 가중치 행렬은 각도 가중 예측(AWP) 모드 또는 기하 구분 모드(GPM) 모드에 대응되는 가중치 행렬인 것을 특징으로 하는 방법.
  18. 제 1 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드는 한가지 인트라 예측 모드를 포함하는 것을 특징으로 하는 방법.
  19. 제 18 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드 중 하나의 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것을 포함하는 것을 특징으로 하는 방법.
  20. 제 18 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것을 포함하는 것을 특징으로 하는 방법.
  21. 제 20 항에 있어서,
    상기 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것과,
    상기 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것을 포함하는 것을 특징으로 하는 방법.
  22. 제 20 항에 있어서,
    상기 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제1 샘플 위치에 대응하는 최소 유닛에 저장된 상기 제2 컴포넌트의 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것을 포함하는 것을 특징으로 하는 방법.
  23. 제 22 항에 있어서,
    상기 제1 샘플 위치에 대응하는 상기 제2 컴포넌트의 예측값은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드의 모드 정보는 상기 최소 유닛에 저장되고,
    상기 제1 샘플 위치에 대응하는 상기 제2 컴포넌트의 예측값은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드의 모드 정보는 상기 최소 유닛에 저장되는 것을 특징으로 하는 방법.
  24. 제 6 항에 있어서,
    상기 제1 컴포넌트는 제1 서브 컴포넌트와 제2 서브 컴포넌트를 포함하고, 상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 예측 블록을 획득하는 것은,
    상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 서브 컴포넌트에 대하여 인트라 예측을 수행하여 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제1 서브 컴포넌트의 예측 블록을 획득하는 것과,
    상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제2 서브 컴포넌트에 대하여 인트라 예측을 수행하여 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제2 서브 컴포넌트의 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  25. 제 24 항에 있어서,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것은,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제1 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 것과,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제2 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  26. 제 25 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제1 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 것은,
    아래 공식에 따라 상기 현재 블록의 상기 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하고,
    predMatrixSawpA [x][y]=(predMatrixA0[x][y] * AwpWeightArrayAB[x][y] + predMatrixA1[x][y] * ( 2n - AwpWeightArrayAB [x][y] ) + 2n-1 ) >> n;
    상기 A는 제1 서브 컴포넌트를 나타내고, 상기 predMatrixSawpA[x][y]는 상기 제1 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, 상기 predMatrixA0[x][y]는 상기 현재 블록의 상기 제1 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, 상기 predMatrixA1[x][y]는 상기 현재 블록의 상기 제1 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, 상기 AwpWeightArrayAB[x][y]는 상기 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixA0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수인 것을 특징으로 하는 방법.
  27. 제 26 항에 있어서,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제2 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 것은,
    아래 공식에 따라 상기 현재 블록의 상기 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하고,
    predMatrixSawpB [x][y]=(predMatrixB0[x][y] * AwpWeightArrayAB[x][y] + predMatrixB1[x][y] * ( 2n - AwpWeightArrayAB [x][y] ) + 2n-1 ) >> n;
    상기 B는 제2 서브 컴포넌트를 나타내고, 상기 predMatrixSawpB[x][y]는 상기 제2 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, 상기 predMatrixB0[x][y]는 상기 현재 블록의 상기 제2 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, 상기 predMatrixB1[x][y]는 상기 현재 블록의 상기 제2 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, 상기 AwpWeightArrayAB[x][y]는 상기 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixB0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수인 것을 특징으로 하는 방법.
  28. 제 9 항에 있어서,
    상기 방법은,
    비트 스트림을 생성하는 것을 더 포함하고, 상기 비트 스트림에는 가중 예측 플래그가 포함되며, 상기 가중 예측 플래그는 상기 제2 컴포넌트의 예측 블록은 상기 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 획득하는지 여부를 나타내는 것을 특징으로 하는 방법.
  29. 제 28 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 것은,
    상기 적어도 두가지 인트라 예측 모드가 상기 제2 컴포넌트를 예측하는 데에 사용된다고 확정할 때, 상기 현재 블록의 상기 제1 컴포넌트의 상기 초기 인트라 예측 모드는 상기 도출 모드라고 확정하는 것을 포함하는 것을 특징으로 하는 방법.
  30. 제 28 항에 있어서,
    상기 비트 스트림에는 또한 상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드의 모드 정보가 포함되는 것을 특징으로 하는 방법.
  31. 제 28 항에 있어서,
    상기 비트 스트림에는 또한 상기 제2 가중치 행렬의 도출 모드 정보가 포함되는 것을 특징으로 하는 방법.
  32. 제 1 항에 있어서,
    상기 현재 블록의 크기는 미리 설정된 조건을 만족하는 것을 특징으로 하는 방법.
  33. 제 32 항에 있어서,
    상기 미리 설정된 조건은 아래 조건 중 하나 이상을 포함하는 것 -
    조건 1, 상기 현재 블록의 너비는 제1 사전 설정 너비 TH1보다 크거나 같고, 상기 현재 블록의 높이는 제1 사전 설정 높이 TH2보다 크거나 같음;
    조건 2, 상기 현재 블록의 샘플 수량은 제1 사전 설정 수량 TH3보다 크거나 같음;
    조건 3, 상기 현재 블록의 너비는 제2 사전 설정 너비 TH4보다 작거나 같으며, 상기 현재 블록의 높이는 제2 사전 설정 높이 TH5보다 크거나 같음;
    조건 4, 상기 현재 블록의 가로 세로 비율은 제1 사전 설정 비율임;
    조건 5, 상기 현재 블록의 크기는 제2 사전 설정 비율임;
    조건 6, 상기 현재 블록의 높이는 제3 사전 설정 높이보다 크거나 같고, 상기 현재 블록의 너비는 제3 사전 설정 너비보다 크거나 같으며, 상기 현재 블록의 너비와 높이의 비율은 제3 사전 설정값보다 작거나 같고, 상기 현재 블록의 높이와 너비의 비율은 제3 사전 설정값보다 작거나 같음 -
    을 특징으로 하는 방법.
  34. 제 33 항에 있어서,
    상기 제1 사전 설정 비율은 1:1, 2:1, 1:2, 1:4, 4:1 중 하나인 것을 특징으로 하는 방법.
  35. 제 33 항에 있어서,
    상기 제2 사전 설정값은 16×32, 32×32, 16×64, 64×16 중 하나인 것을 특징으로 하는 비디오 디코딩 방법.
  36. 제 24 항에 있어서,
    상기 제1 컴포넌트는 휘도 컴포넌트이고, 상기 제2 컴포넌트는 색도 컴포넌트인 것을 특징으로 하는 방법.
  37. 제 36 항에 있어서,
    상기 제1 서브 컴포넌트는 U 컴포넌트이고, 상기 제2 서브 컴포넌트는 V 컴포넌트인 것을 특징으로 하는 방법.
  38. 비디오 디코딩 방법으로서,
    비트 스트림을 해석하여 제1 컴포넌트를 포함하는 현재 블록과 상기 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하는 것과,
    상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 것과,
    상기 초기 인트라 예측 모드가 도출 모드라고 확정된 경우에 상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것과,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  39. 제 38 항에 있어서,
    상기 비트 스트림에는 가중 예측 플래그가 포함되며, 상기 가중 예측 플래그는 상기 제2 컴포넌트의 예측 블록은 상기 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 획득하는지 여부를 나타내는 것을 특징으로 하는 방법.
  40. 제 39 항에 있어서,
    상기 비트 스트림에는 상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드의 모드 정보가 포함되는 것을 특징으로 하는 방법.
  41. 제 39 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 것은,
    상기 비트 스트림에 상기 가중 예측 플래그가 포함되고, 상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드의 모드 정보가 포함되지 않는 경우에 상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드가 상기 도출 모드라고 확정하는 것을 포함하는 것을 특징으로 하는 방법.
  42. 제 38 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드는 적어도 두가지 인트라 예측 모드를 포함하는 것을 특징으로 하는 방법.
  43. 제 42 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것을 포함하는 것을 특징으로 하는 방법.
  44. 제 42 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드에 따라 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 도출하는 것을 포함하는 것을 특징으로 하는 방법.
  45. 제 42 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하는 것은,
    상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 상기 각 인트라 예측 모드에 대응하는 예측 블록을 획득하는 것과,
    상기 각 인트라 예측 모드에 대응하는 예측 블록을 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 확정하는 것을 포함하는 것을 특징으로 하는 방법.
  46. 제 45 항에 있어서,
    상기 각 인트라 예측 모드에 대응하는 예측 블록을 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 확정하는 것은,
    제1 가중치 행렬을 확정하는 것과,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  47. 제 46 항에 있어서,
    제1 가중치 행렬을 확정하는 것은,
    가중치 행렬 도출 모드에 따라 상기 제1 가중치 행렬을 도출하는 것을 포함하는 것을 특징으로 하는 방법.
  48. 제 46 항에 있어서,
    제1 가중치 행렬을 확정하는 것은,
    상기 현재 블록의 상기 제2 컴포넌트의 제2 가중치 행렬을 획득하는 것과,
    상기 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량이 상기 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 같으면, 상기 제2 가중치 행렬을 상기 제1 가중치 행렬로 하는 것을 포함하는 것을 특징으로 하는 방법.
  49. 제 46 항에 있어서,
    제1 가중치 행렬을 확정하는 것은,
    상기 현재 블록의 상기 제2 컴포넌트의 제2 가중치 행렬을 획득하는 것과,
    상기 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량이 상기 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량보다 작으면, 상기 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 상기 제1 가중치 행렬을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  50. 제 48 항 또는 제 49 항에 있어서,
    상기 현재 블록의 상기 제2 컴포넌트의 제2 가중치 행렬을 획득하는 것은,
    상기 비트 스트림에서 상기 제2 가중치 행렬의 도출 모드 정보를 획득하는 것과,
    상기 제2 가중치 행렬의 도출 모드 정보에 따라 상기 제2 가중치 행렬을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  51. 제 49 항에 있어서,
    상기 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 상기 제1 가중치 행렬을 획득하는 것은,
    상기 현재 블록의 제1 컴포넌트에 포함된 샘플의 수량과 상기 현재 블록의 제2 컴포넌트에 포함된 샘플의 수량을 기반으로 상기 제2 가중치 행렬에 대해 다운 샘플링을 수행하여 상기 제1 가중치 행렬을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  52. 제 49 항에 있어서,
    상기 제2 가중치 행렬은 적어도 두개의 서로 다른 가중치를 포함하 는 것을 특징으로 하는 방법.
  53. 제 49 항에 있어서,
    상기 제2 가중치 행렬 중 모든 가중치는 동일한 것을 특징으로 하는 방법.
  54. 제 49 항에 있어서,
    상기 제2 가중치 행렬 중 각 가중치에 대응하는 샘플에 대하여, 상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 사용하여 예측하여 상기 제2 컴포넌트 중 샘플의 예측값을 획득하는 것을 특징으로 하는 방법.
  55. 제 49 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 N가지 인트라 예측 모드를 포함하고, 상기 N은 2보다 크거나 같은 양의 정수이고, 상기 제2 가중치 행렬은 N가지 서로 다른 가중치를 포함하며, i번째 가중치는 상기 제2 컴포넌트 중 i번째 가중치에 대응하는 샘플의 예측값은 완전히 i번째 인트라 예측 모드에 의해 획득됨을 나타내고, 상기 i는 2 보다 크거나 같고 상기 N보다 작거나 같은 양의 정수인 것을 특징으로 하는 방법.
  56. 제 49 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 상기 제2 가중치 행렬은 최대 가중치, 최소 가중치 및 적어도 하나의 중간 가중치를 포함하며,
    상기 최대 가중치는 상기 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제1 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내고,
    상기 최소 가중치는 상기 제2 컴포넌트 중 대응하는 샘플의 예측값은 완전히 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내며,
    상기 중간 가중치는 상기 제2 컴포넌트 중 대응하는 샘플의 예측값은 상기 제1 인트라 예측 모드와 상기 제2 인트라 예측 모드를 사용하여 예측함으로써 획득됨을 나타내는 것을 특징으로 하는 방법.
  57. 제 49 항에 있어서,
    상기 제2 가중치 행렬은 여러가지 가중치를 포함하며, 상기 가중치 변경 위치는 직선이나 곡선을 형성하는 것을 특징으로 하는 방법.
  58. 제 49 항에 있어서,
    상기 제2 가중치 행렬은 각도 가중 예측(AWP) 모드 또는 기하 구분 모드(GPM) 모드에 대응되는 가중치 행렬인 것을 특징으로 하는 방법.
  59. 제 38 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드에는 한가지 인트라 예측 모드가 포함되는 것을 특징으로 하는 방법.
  60. 제 59 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드 중 하나의 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것을 포함하는 것을 특징으로 하는 방법.
  61. 제 59 항에 있어서,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것을 포함하는 것을 특징으로 하는 방법.
  62. 제 61 항에 있어서,
    상기 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것과,
    상기 제1 샘플 위치에 대응하는 제2 컴포넌트의 예측값은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것을 포함하는 것을 특징으로 하는 방법.
  63. 제 62 항에 있어서,
    상기 현재 블록의 제1 샘플 위치에 대응하는 제2 컴포넌트의 인트라 예측 모드에 따라 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 것은,
    상기 제1 샘플 위치에 대응하는 최소 유닛에 저장된 상기 제2 컴포넌트의 인트라 예측 모드를 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드로 하는 것을 포함하는 것을 특징으로 하는 방법.
  64. 제 63 항에 있어서,
    상기 제1 샘플 위치에 대응하는 상기 제2 컴포넌트의 예측값은 완전히 하나의 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 하나의 인트라 예측 모드의 모드 정보는 상기 최소 유닛에 저장되고,
    상기 제1 샘플 위치에 대응하는 상기 제2 컴포넌트의 예측값은 여러 인트라 예측 모드를 사용하여 예측하여 획득되는 경우, 상기 여러 인트라 예측 모드 중 최대 가중치를 갖는 인트라 예측 모드의 모드 정보는 상기 최소 유닛에 저장되는 것을 특징으로 하는 방법.
  65. 제 46 항에 있어서,
    상기 제1 컴포넌트는 제1 서브 컴포넌트와 제2 서브 컴포넌트를 포함하고, 상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 예측 블록을 획득하는 것은,
    상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제1 서브 컴포넌트의 예측 블록을 획득하는 것과,
    상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드 중 각 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제2 서브 컴포넌트에 대하여 인트라 예측을 수행하여 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제2 서브 컴포넌트의 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  66. 제 65 항에 있어서,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 것은,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제1 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 것과,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제2 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  67. 제 66 항에 있어서,
    상기 현재 블록의 상기 제1 컴포넌트의 적어도 두가지 인트라 예측 모드는 제1 인트라 예측 모드와 제2 인트라 예측 모드를 포함하고, 상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제1 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 것은,
    아래 공식에 따라 상기 현재 블록의 상기 제1 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하고,
    predMatrixSawpA [x][y]=(predMatrixA0[x][y] * AwpWeightArrayAB[x][y] + predMatrixA1[x][y] * ( 2n - AwpWeightArrayAB [x][y] ) + 2n-1 ) >> n;
    상기 A는 제1 서브 컴포넌트를 나타내고, 상기 predMatrixSawpA[x][y]는 상기 제1 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, 상기 predMatrixA0[x][y]는 상기 현재 블록의 상기 제1 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, 상기 predMatrixA1[x][y]는 상기 현재 블록의 상기 제1 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, 상기 AwpWeightArrayAB[x][y]는 상기 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixA0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수인 것을 특징으로 하는 방법.
  68. 제 67 항에 있어서,
    상기 제1 가중치 행렬에 따라 상기 각 인트라 예측 모드에 대응하는 상기 현재 블록의 상기 제2 서브 컴포넌트의 예측 블록에 대하여 가중 연산을 수행하여 상기 현재 블록의 상기 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 것은,
    아래 공식에 따라 상기 현재 블록의 상기 제2 서브 컴포넌트의 최종 예측 블록을 획득하는 것을 포함하고,
    predMatrixSawpB [x][y]=(predMatrixB0[x][y] * AwpWeightArrayAB[x][y] + predMatrixB1[x][y] * ( 2n - AwpWeightArrayAB [x][y] ) + 2n-1 ) >> n;
    상기 B는 제2 서브 컴포넌트를 나타내고, 상기 predMatrixSawpB[x][y]는 상기 제2 서브 컴포넌트 중의 샘플 [x][y]의 최종 예측값을 나타내고, 상기 predMatrixB0[x][y]는 상기 현재 블록의 상기 제2 서브 컴포넌트의 제1 예측 블록 중의 샘플 [x][y]의 제1 예측값을 나타내고, 상기 predMatrixB1[x][y]는 상기 현재 블록의 상기 제2 서브 컴포넌트의 제2 예측 블록 중의 샘플 [x][y]의 제2 예측값을 나타내고, 상기 AwpWeightArrayAB[x][y]는 상기 제1 가중치 행렬 AwpWeightArrayAB 중 predMatrixB0[x][y]의 대응하는 가중치를 나타내고, 2n은 미리 설정된 가중치의 합이고, n은 양의 정수인 것을 특징으로 하는 방법.
  69. 제 38 항에 있어서,
    상기 현재 블록의 크기는 미리 설정된 조건을 만족하는 것을 특징으로 하는 방법.
  70. 제 69 항에 있어서,
    상기 미리 설정된 조건은 아래 조건 중 하나 이상을 포함하는 것 -
    조건 1, 상기 현재 블록의 너비는 제1 사전 설정 너비 TH1보다 크거나 같고, 상기 현재 블록의 높이는 제1 사전 설정 높이 TH2보다 크거나 같음;
    조건 2, 상기 현재 블록의 샘플 수량은 제1 사전 설정 수량 TH3보다 크거나 같음;
    조건 3, 상기 현재 블록의 너비는 제2 사전 설정 너비 TH4보다 작거나 같으며, 상기 현재 블록의 높이는 제2 사전 설정 높이 TH5보다 크거나 같음;
    조건 4, 상기 현재 블록의 가로 세로 비율은 제1 사전 설정 비율임;
    조건 5, 상기 현재 블록의 크기는 제2 사전 설정 비율임;
    조건 6, 상기 현재 블록의 높이는 제3 사전 설정 높이보다 크거나 같고, 상기 현재 블록의 너비는 제3 사전 설정 너비보다 크거나 같으며, 상기 현재 블록의 너비와 높이의 비율은 제3 사전 설정값보다 작거나 같고, 상기 현재 블록의 높이와 너비의 비율은 제3 사전 설정값보다 작거나 같음 - 을 특징으로 하는 방법.
  71. 제 70 항에 있어서,
    상기 제1 사전 설정 비율은 1:1, 2:1, 1:2, 1:4, 4:1 중 하나인 것을 특징으로 하는 방법.
  72. 제 70 항에 있어서,
    상기 제2 사전 설정값은 16×32, 32×32, 16×64, 64×16 중 하나인 것을 특징으로 하는 방법.
  73. 제 65 항에 있어서,
    상기 제1 컴포넌트는 휘도 컴포넌트이고, 상기 제2 컴포넌트는 색도 컴포넌트인 것을 특징으로 하는 방법.
  74. 제 73 항에 있어서,
    상기 색도 컴포넌트는 U 컴포넌트와 V 컴포넌트를 포함하고, 상기 제1 서브 컴포넌트는 U 컴포넌트이고, 상기 제2 서브 컴포넌트는 V 컴포넌트인 것을 특징으로 하는 방법.
  75. 비디오 인코더로서,
    제1 컴포넌트를 포함하는 현재 블록을 획득하는 데에 사용되는 제1 획득 유닛과,
    상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 데에 사용되는 제1 확정 유닛과,
    상기 초기 인트라 예측 모드가 도출 모드인 경우에 상기 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하는 데에 사용되는 제2 획득 유닛과,
    상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 데에 사용되는 제2 확정 유닛과,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 데에 사용되는 예측 유닛을 포함하는 것을 특징으로 하는 비디오 인코더.
  76. 비디오 디코더로서,
    비트 스트림을 해석하여 제1 컴포넌트를 포함하는 현재 블록과 상기 현재 블록에 대응되는 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 획득하는 데에 사용되는 해석 유닛과,
    상기 현재 블록의 상기 제1 컴포넌트의 초기 인트라 예측 모드를 확정하는 데에 사용되는 제1 확정 유닛과,
    상기 초기 인트라 예측 모드가 도출 모드라고 확정된 경우, 상기 제2 컴포넌트의 적어도 두가지 인트라 예측 모드를 기반으로 상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 확정하는 데에 사용되는 제2 확정 유닛과,
    상기 현재 블록의 상기 제1 컴포넌트의 인트라 예측 모드를 사용하여 상기 현재 블록의 상기 제1 컴포넌트에 대하여 인트라 예측을 수행하여 상기 현재 블록의 상기 제1 컴포넌트의 최종 예측 블록을 획득하는 데에 사용되는 예측 유닛을 포함하는 것을 특징으로 하는 비디오 디코더.
  77. 비디오 인코딩 및 디코딩 시스템으로서,
    제 75 항에 기재된 비디오 인코더와 제 76 항에 기재된 비디오 디코더를 포함하는 것을 특징으로 하는 비디오 디코딩 시스템.
KR1020237022462A 2020-12-03 2020-12-03 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더 KR20230111256A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/133677 WO2022116105A1 (zh) 2020-12-03 2020-12-03 视频编解码方法与系统、及视频编码器与视频解码器

Publications (1)

Publication Number Publication Date
KR20230111256A true KR20230111256A (ko) 2023-07-25

Family

ID=81852811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237022462A KR20230111256A (ko) 2020-12-03 2020-12-03 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더

Country Status (7)

Country Link
US (1) US20230319267A1 (ko)
JP (1) JP2024503192A (ko)
KR (1) KR20230111256A (ko)
CN (2) CN116962684A (ko)
MX (1) MX2023005929A (ko)
WO (1) WO2022116105A1 (ko)
ZA (1) ZA202306216B (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103369315B (zh) * 2012-04-06 2016-08-24 华为技术有限公司 色度分量的帧内预测模式的编码、解码方法、设备及系统
US11190799B2 (en) * 2017-06-21 2021-11-30 Lg Electronics Inc. Intra-prediction mode-based image processing method and apparatus therefor
CN111247799B (zh) * 2017-10-18 2022-08-09 韩国电子通信研究院 图像编码/解码方法和装置以及存储有比特流的记录介质
WO2019098758A1 (ko) * 2017-11-16 2019-05-23 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
TWI820168B (zh) * 2018-07-15 2023-11-01 大陸商北京字節跳動網絡技術有限公司 跨分量編碼資訊導出

Also Published As

Publication number Publication date
ZA202306216B (en) 2024-04-24
US20230319267A1 (en) 2023-10-05
CN116491118A (zh) 2023-07-25
MX2023005929A (es) 2023-05-29
CN116962684A (zh) 2023-10-27
WO2022116105A1 (zh) 2022-06-09
JP2024503192A (ja) 2024-01-25

Similar Documents

Publication Publication Date Title
CN110999291B (zh) 用于划分视频数据的帧间预测片段中的视频块的系统和方法
US10771813B2 (en) Reference frame encoding method and apparatus, and reference frame decoding method and apparatus
TWI705694B (zh) 片級內部區塊複製及其他視訊寫碼改善
TW201817236A (zh) 用於視頻寫碼之線性模型色度內預測
WO2020125595A1 (zh) 视频译码器及相应方法
CN113853791B (zh) 数字视频中的变换旁路编解码残差块
CN114424567B (zh) 使用基于矩阵的帧内预测进行组合的帧间-帧内预测的方法和装置
JP2022535859A (ja) Mpmリストを構成する方法、クロマブロックのイントラ予測モードを取得する方法、および装置
JP2023179684A (ja) ピクチャ予測方法および装置、およびコンピュータ可読記憶媒体
JP2022515555A (ja) インター予測の方法および装置、並びに対応するエンコーダおよびデコーダ
CN117426088A (zh) 视频编解码方法、设备、系统、及存储介质
KR20230111256A (ko) 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더
WO2023197229A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
WO2024108391A1 (zh) 视频编解码方法、装置、设备、系统、及存储介质
WO2024077553A1 (zh) 视频编解码方法、装置、设备、系统、及存储介质
WO2024092425A1 (zh) 视频编解码方法、装置、设备、及存储介质
WO2023236113A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
WO2023122968A1 (zh) 帧内预测方法、设备、系统、及存储介质
WO2022193390A1 (zh) 视频编解码方法与系统、及视频编解码器
WO2023184747A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
WO2022174475A1 (zh) 视频编解码方法与系统、及视频编码器与视频解码器
WO2023173255A1 (zh) 图像编解码方法、装置、设备、系统、及存储介质
WO2022217447A1 (zh) 视频编解码方法与系统、及视频编解码器
WO2022193389A1 (zh) 视频编解码方法与系统、及视频编解码器
WO2023220970A1 (zh) 视频编码方法、装置、设备、系统、及存储介质