KR20220101729A - 팔레트 모드를 사용하기 위한 비디오 처리 방법 및 장치 - Google Patents

팔레트 모드를 사용하기 위한 비디오 처리 방법 및 장치 Download PDF

Info

Publication number
KR20220101729A
KR20220101729A KR1020227021952A KR20227021952A KR20220101729A KR 20220101729 A KR20220101729 A KR 20220101729A KR 1020227021952 A KR1020227021952 A KR 1020227021952A KR 20227021952 A KR20227021952 A KR 20227021952A KR 20220101729 A KR20220101729 A KR 20220101729A
Authority
KR
South Korea
Prior art keywords
target
palette
slice
component
tree
Prior art date
Application number
KR1020227021952A
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 KR20220101729A publication Critical patent/KR20220101729A/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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/182Methods 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 pixel
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

본 개시는 비디오 처리에서 팔레트 모드를 시그널링 및 사용하기 위한 시스템 및 방법을 제공한다. 특정 개시된 실시예에 따라, 예시적인 비디오 처리 방법은: 타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 단계; 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계; 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 단계; 및 타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분을 디코딩하는 단계, 및 기본 팔레트 엔트리를 기초로 타겟 CU의 제2 성분을 디코딩하는 단계를 포함한다.

Description

팔레트 모드를 사용하기 위한 비디오 처리 방법 및 장치
연관된 출원에 대한 상호 참조
본 개시는 2019년 12월 3일에 출원된 미국 가출원 제62/943,083호 및 2019년 12월 22일에 출원된 미국 가출원 제62/952,426호에 대한 우선권을 주장하며, 이들 모두 그 전체가 본원에 참조로 통합된다.
기술분야
본 개시는 일반적으로 비디오 처리에 관한 것이고, 더욱 구체적으로 팔레트 모드(palette mode)를 시그널링 및 사용하기 위한 방법 및 장치에 관한 것이다.
비디오는 시각적 정보를 캡처하는 정적 픽처(또는 "프레임")의 세트이다. 저장 메모리 및 송신 대역폭을 감소시키기 위해, 비디오는 저장 또는 송신 이전에 압축되고, 디스플레이 전에 압축 해제될 수 있다. 압축 프로세스는 보통 인코딩으로 지칭되고, 압축 해제 프로세스는 보통 디코딩으로 지칭된다. 가장 일반적으로 예측, 변환, 양자화, 엔트로피 부호화(entropy coding) 및 인-루프 필터링(in-loop filtering)을 기초로 하는, 표준화된 비디오 부호화 기술을 사용하는 다양한 비디오 부호화 포맷이 있다. 특정 비디오 부호화 포맷을 지정하는 고효율 비디오 부호화(High Efficiency Video Coding, HEVC/H.265) 표준, 다용도 비디오 부호화(Versatile Video Coding, VVC/H.266) 표준 AVS 표준과 같은 비디오 부호화 표준은 표준화 기구에서 개발된다. 점점 더 많은 진보된 비디오 부호화 기술이 비디오 표준에 채택되고 있고, 새로운 비디오 부호화 표준의 부호화 효율성은 점점 더 높아지고 있다.
본 개시의 실시예는 팔레트 모드를 시그널링 및 사용하기 위한 방법 및 디바이스를 제공한다. 일부 예시적인 실시예에 따라, 비디오 처리 방법은: 타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 단계; 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계; 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되었는지를 결정하는 단계; 및 타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분을 디코딩하는 단계, 및 디폴트 팔레트 엔트리를 기초로 타겟 CU의 제2 성분을 디코딩하는 단계를 포함한다.
일부 실시예에서, 예시적인 비디오 처리 장치는 명령어를 저장하기 위한 적어도 하나의 메모리 및 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는 명령어를 실행하여 장치로 하여금: 타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 것; 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것; 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되었는지를 결정하는 것; 및 타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분을 디코딩하는 것, 및 기본 팔레트 엔트리를 기초로 타겟 CU의 제2 성분을 디코딩하는 것을 수행하게 하도록 구성된다.
일부 실시예에서, 예시적인 비일시적 컴퓨터 판독가능 저장 매체는 명령어의 세트를 저장한다. 명령어의 세트는 비디오 처리 장치로 하여금: 타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 것; 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것; 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되었는지를 결정하는 것; 및 타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분을 디코딩하는 것, 및 기본 팔레트 엔트리를 기초로 타겟 CU의 제2 성분을 디코딩하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능하다.
본 개시의 실시예 및 다양한 양상은 다음의 상세한 설명 및 첨부 도면에 예시된다. 도면에 도시된 다양한 피처(feature)는 축척대로 도시된 것은 아니다.
도 1은 본 개시의 일부 실시예에 따른, 예시적인 비디오 시퀀스의 구조를 예시하는 개략도이다.
도 2는 본 개시의 일부 실시예에 따른, 하이브리드 비디오 부호화 시스템에서의 예시적인 인코더의 개략도를 예시한다.
도 3는 본 개시의 일부 실시예에 따른, 하이브리드 비디오 부호화 시스템에서의 예시적인 디코더의 개략도를 예시한다.
도 4는 본 개시의 일부 실시예에 따른, 비디오를 인코딩하거나 또는 디코딩하기 위한 예시적인 장치의 블록도를 예시한다.
도 5는 본 개시의 일부 실시예에 따른, 팔레트 모드로 부호화된 예시적인 이미지 블록의 개략도를 예시한다.
도 6은 본 개시의 일부 실시예에 따른, 부호화 단위(coding unit)를 인코딩한 이후에 팔레트 예측자를 업데이트하기 위한 예시적인 프로세스의 개략도를 예시한다.
도 7은 본 개시의 일부 실시예에 따른, 시퀀스 매개변수 세트(Sequence Parameter Set, SPS) 신택스 테이블의 일부를 도시하는 예시적인 테이블 1을 예시한다.
도 8은 본 개시의 일부 실시예에 따른, 부호화 단위 신택스 테이블(coding unit syntax table)의 일부를 도시하는 예시적인 테이블 2를 예시한다.
도 9는 본 개시의 일부 실시예에 따른, 팔레트 부호화 신택스 테이블의 일부를 도시하는 예시적인 테이블 3을 예시한다.
도 10은 본 개시의 일부 실시예에 따른, 팔레트 모드에 대한 예시적인 디코딩 프로세스를 예시한다.
도 11은 본 개시의 일부 실시예에 따른, 팔레트 부호화 신택스 테이블의 일부를 도시하는 예시적인 테이블 4를 예시한다.
도 12는 본 개시의 일부 실시예에 따른, 팔레트 모드에 대한 예시적인 팔레트 부호화 의미론 및 디코딩 프로세스를 예시한다.
도 13은 본 개시의 일부 실시예에 따른, 팔레트 부호화 신택스 테이블의 일부를 도시하는 예시적인 테이블 5를 예시한다.
도 14는 본 개시의 일부 실시예에 따른, 팔레트 모드에 대한 예시적인 디코딩 프로세스를 예시한다.
도 15는 본 개시의 일부 실시예에 따른, 부호화 단위 신택스 테이블의 일부를 도시하는 예시적인 테이블 6를 예시한다.
도 16은 본 개시의 일부 실시예에 따른, 팔레트 부호화 신택스 테이블의 일부를 도시하는 예시적인 테이블 7을 예시한다.
도 17은 본 개시의 일부 실시예에 따른, 팔레트 모드에 대한 다른 예시적인 팔레트 부호화 의미론 및 디코딩 프로세스를 예시한다.
도 18은 본 개시의 일부 실시예에 따른, 예시적인 비디오 처리 방법의 흐름도를 예시한다.
도 19는 본 개시의 일부 실시예에 따른, 다른 예시적인 비디오 처리 방법의 흐름도를 예시한다.
도 20은 본 개시의 일부 실시예에 따른, 다른 예시적인 비디오 처리 방법의 흐름도를 예시한다.
도 21은 본 개시의 일부 실시예에 따른, 다른 예시적인 비디오 처리 방법의 흐름도를 예시한다.
도 22는 본 개시의 일부 실시예에 따른, 다른 예시적인 비디오 처리 방법의 흐름도를 예시한다.
도 23은 본 개시의 일부 실시예에 따른, 다른 예시적인 비디오 처리 방법의 흐름도를 예시한다.
이제 예시적인 실시예에 대한 참조가 상세히 이루어질 것이며, 이의 예시는 첨부 도면에 예시된다. 다음 설명은 달리 표시되지 않는 한 상이한 도면에서 동일한 번호가 동일하거나 유사한 요소를 나타내는 첨부 도면을 참조한다. 예시적인 실시예의 다음 설명에서 제시된 구현은 본 발명과 일치하는 모든 구현을 나타내는 것은 아니다. 그 대신에, 이들은 첨부된 청구범위에서 인용된 본 발명에 관련된 양상과 일치하는 장치 및 방법의 예시일 뿐이다. 본 개시의 특정 양상은 아래에서 더 상세히 설명된다. 본원에 제공된 용어 및 정의는 참조로 통합된 용어 및/또는 정의와 상충하는 경우 제어된다.
ITU-T VCEG(ITU-T Video Coding Expert Group) 및 ISO/IEC MPEG(ISO/IEC Moving Picture Expert Group)의 JVET(Joint Video Experts Team)는 현재 다용도 비디오 부호화(VVC/H.266) 표준을 개발하고 있다. VVC 표준은 그의 이전 버전인 고효율 비디오 부호화(HEVC/H.265) 표준의 압축 효율성을 두 배로 높이는 것을 목표로 한다. 다시 말해, VVC의 목표는 대역폭의 절반을 사용하여 HEVC/H.265와 동일한 주관적 품질을 달성하는 것이다.
대역폭의 절반을 사용하여 HEVC/H.265와 동일한 주관적인 품질을 달성하기 위해, JVET는 공동 탐색 모델(joint exploration model, JEM) 참조 소프트웨어를 사용하여 HEVC를 넘는 기술을 개발하고 있다. 부호화 기술이 JEM에 통합됨에 따라, JEM은 HEVC보다 상당히 더 높은 부호화 성능을 달성하였다. VCEG 및 MPEG는 HEVC를 넘어서는 차세대 비디오 압축 표준의 개발을 공식적으로 시작하였다.
VVC 표준은 최근에 개발되었고, 더 나은 압축 성능을 제공하는 더 많은 부호화 기술을 계속 포함하고 있다. VVC는 HEVC, H.264/AVC, MPEG2, H.263 등과 같은 최신 비디오 압축 표준에서 사용된 것과 동일한 하이브리드 비디오 부호화 시스템을 기초로 한다.
비디오는 시각적 정보를 저장하기 위해 시간적인 시퀀스로 배열된 정적 픽처(또는 "프레임")의 세트이다. 비디오 캡처 디바이스(예를 들어, 카메라)는 이 픽처를 시간적인 시퀀스로 캡처하고 저장하는데 사용될 수 있고, 비디오 재생 디바이스(예를 들어, 디스플레이의 기능을 갖는 텔레비전, 컴퓨터, 스마트폰, 태블릿 컴퓨터, 비디오 플레이어 또는 임의의 최종-사용자 단말기)는 이러한 픽처를 시간적인 시퀀스로 디스플레이하기 위해 사용될 수 있다. 또한, 일부 응용에서, 비디오 캡처링 디바이스는 감시, 회의 또는 실시간 방송과 같이 캡처된 비디오를 실시간으로 비디오 재생 디바이스(예를 들어, 모니터를 갖는 컴퓨터)에 송신할 수 있다.
이러한 응용에 의해 필요한 저장 공간 및 송신 대역폭을 감소시키기 위해, 비디오는 저장 또는 송신 전에 압축되고, 디스플레이 전에 압축 해제될 수 있다. 압축 및 압축 해제는 프로세서(예를 들어, 일반 컴퓨터의 프로세서) 또는 특수 하드웨어에 의해 실행되는 소프트웨어에 의해 구현될 수 있다. 압축을 위한 모듈은 일반적으로 "인코더"로 지칭되고, 압축 해제를 위한 모듈은 일반적으로 "디코더"로 지칭된다. 인코더 및 디코더를 집합적으로 "코덱(codec)"으로 지칭될 수 있다. 인코더 및 디코더는 임의의 다양한 적합한 하드웨어, 소프트웨어 또는 이들의 조합 중 임의의 것으로 구현될 수 있다. 예를 들어, 인코더 및 디코더의 하드웨어 구현은 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(DSP), 애플리케이션-특정 집적 회로(application-specific integrated circuits, ASIC), 필드 프로그램 가능 게이트 어레이(Field-Programmable Gate Array, FPGA), 이산 로직 또는 이의 임의의 조합과 같은 회로를 포함할 수 있다. 인코더 및 디코더의 소프트웨어 구현은 컴퓨터 판독가능 매체에 고정된 프로그램 코드, 컴퓨터-실행가능 명령어, 펌웨어 또는 임의의 적합한 컴퓨터 구현 알고리즘 또는 프로세스를 포함할 수 있다. 비디오 압축 및 압축 해제는 MPEG-1, MPEG-2, MPEG-4, H.26x 시리즈 등과 같은 다양한 알고리즘 또는 표준에 의해 구현될 수 있다. 일부 응용에서, 코덱은 제1 부호화 표준으로부터 비디오를 압축 해제하고 제2 부호화 표준을 사용하여 압축 해제된 비디오를 재압축할 수 있으며, 이 경우 코덱은 "트랜스코더(transcoder)"로 지칭될 수 있다.
비디오 인코딩 프로세스는 픽처를 재구성하는 데 사용될 수 있는 유용한 정보를 식별하고 유지할 수 있고, 재구성에 중요하지 않은 정보를 폐기할 수 있다. 폐기된 중요하지 않은 정보가 완전히 재구성될 수 없는 경우, 이러한 인코딩 프로세스는 "손실이 있는 것(lossy)"으로 지칭될 수 있다. 그렇지 않으면, "무손실"로 지칭될 수 있다. 대부분의 인코딩 프로세스는 손실이 있고, 이는 필요한 저장 공간 및 송신 대역폭을 감소시키기 위한 절충안이다.
인코딩된 픽처("현재 픽처"로 지칭됨)의 유용한 정보는 참조 픽처(예를 들어, 이전에 인코딩되거나 재구성된 픽처)에 대한 변경을 포함할 수 있다. 이러한 변경은 픽셀의 위치 변경, 광도 변경 또는 색상 변경을 포함할 수 있으며, 그 중 위치 변경이 주로 관심이 있다. 객체를 나타내는 픽셀의 그룹의 위치 변경은 참조 픽처와 현재 픽처 사이의 객체의 움직임을 반영할 수 있다.
다른 픽처를 참조하지 않고 부호화된 픽처(즉, 이는 그 자신의 참조 픽처임)는 "I-픽처"로 지칭된다. 참조 픽처로서 이전 픽처를 사용하여 부호화된 픽처는 "P-픽처"로 지칭된다. 참조 픽처로서 이전 픽처 및 향후 픽처 둘 모두를 사용하여 부호화된 픽처(즉, 참조는 "양방향성"임)는 "B-픽처"로 지칭된다.
도 1은 본 개시의 일부 실시예에 따른 예시적인 비디오 시퀀스(100)의 구조를 예시한다. 비디오 시퀀스(100)는 라이브 비디오 또는 캡처되고 보관되는 비디오일 수 있다. 비디오(100)는 실제 비디오, 컴퓨터-생성된 비디오(예를 들어, 컴퓨터 게임 비디오)또는 이들의 조합(예를 들어, 증강-현실 효과를 갖는 실제 비디오)일 수 있다. 비디오 시퀀스(100)는 비디오 캡처 디바이스(예를 들어, 카메라), 이전에 캡처된 비디오를 포함하는 비디오 보관(예를 들어, 저장 디바이스에 저장된 비디오 파일), 또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스(예를 들어, 비디오 브로드캐스트 트랜시버)로부터 입력될 수 있다.
도 1에 도시된 바와 같이, 비디오 시퀀스(100)는 픽처(102, 104, 106 및 108)를 포함하는, 타임라인을 따라 시간적으로 배열된 일련의 픽처를 포함할 수 있다. 픽처(102 내지 106)는 연속적이고, 픽처(106)와 픽처(108) 사이에 더 많은 픽처가 있다. 도 1에서, 픽처(102)는 I-픽처이고, 이의 참조 픽처는 픽처(102) 그 자신이다. 픽처(104)는 P-픽처이고, 이의 참조 픽처는 화살표로 나타난 바와 같이 픽처(102)이다. 픽처(106)는 B-픽처이고, 이의 참조 픽처는 화살표로 나타난 바와 같이 픽처(104 및 108)이다. 일부 실시예에서, 픽처(예를 들어, 픽처(104))의 참조 픽처는 픽처 직전 또는 직후가 아닐 수 있다. 예를 들어, 픽처(104)의 참조 픽처는 픽처(102)에 선행하는 픽처일 수 있다. 픽처(102 내지 106)의 참조 픽처는 단지 예시이며, 본 개시는 도 1에 도시된 예시로서 참조 픽처의 실시예를 제한하지 않는다는 것이 유의되어야 한다.
전형적으로, 비디오 코덱은 이러한 작업(task)의 연산 복잡성에 기인하여 전체 픽처를 동시에 인코딩하거나 또는 디코딩하지 않는다. 오히려, 이는 픽처를 기본 세그먼트로 분할할 수 있고, 픽처를 세그먼트별로 인코딩하거나 또는 디코딩할 수 있다. 이러한 기본 세그먼트는 본 개시에서 기본 처리 단위(basic processing units, "BPU")로 지칭된다. 예를 들어, 도 1에서의 구조(110)는 비디오 시퀀스(100)의 픽처(예를 들어, 픽처(102 내지 108) 중 임의의 것)의 예시적인 구조를 도시한다. 구조(110)에서, 픽처는 4×4 기본 처리 단위로 나누어지고, 이의 경계는 점선으로 도시된다. 일부 실시예에서, 기본 처리 단위는 일부 비디오 부호화 표준(예를 들어, MPEG 패밀리, H.261, H.263, 또는 H.264/AVC)에서 "매크로블록(macroblocks)"으로 지칭될 수 있거나, 또는 일부 다른 비디오 부호화 표준(예를 들어, H.265/HEVC 또는 H.266/VVC)에서 "부호화 트리 단위(coding tree units)"("CTU")로 지칭될 수 있다. 기본 처리 단위는 128×128, 64×64, 32×32, 16×16, 4×8, 16×32와 같은 픽처에서의 가변적인 크기, 또는 픽셀의 어느 임의의 형태 및 크기를 가질 수 있다. 기본 처리 단위의 크기 및 형태는 기본 처리 단위에서 유지될 세부사항의 부호화 효율 및 수준의 균형을 기초로 픽처에 대해 선택될 수 있다.
기본 처리 단위는 컴퓨터 메모리에 (예를 들어, 비디오 프레임 버퍼에) 저장된 상이한 타입의 비디오 데이터의 그룹을 포함할 수 있는 논리적 단위일 수 있다. 예를 들어, 색상 픽처의 기본 처리 단위는 무색의 밝기 정보를 나타내는 루마 성분(Y), 색상 정보를 나타내는 하나 이상의 크로마 성분(예를 들어, Cb 및 Cr) 및 연관된 신택스 요소를 포함할 수 있고, 여기서 루마 및 크로마 성분은 기본 처리 단위와 동일한 크기를 가질 수 있다. 루마 및 크로마 성분은 일부 비디오 부호화 표준(예를 들어, H.265/HEVC 또는 H.266/VVC)에서 "부호화 트리 블록(coding tree blocks)"("CTB")으로 지칭될 수 있다. 기본 처리 단위에 대해 수행된 임의의 동작은 그의 루마 및 크로마 성분의 각각에 대해 반복적으로 수행될 수 있다.
비디오 부호화는 다수의 동작 스테이지를 가지며, 이의 예시는 도 2 및 3에 도시된다. 각 스테이지에 대해, 기본 처리 단위의 크기는 처리하기에 여전히 너무 클 수 있으며, 따라서 본 개시에서 "기본 처리 서브-단위"로 지칭되는 세그먼트로 더 나누어질 수 있다. 일부 실시예에서, 기본 처리 서브-단위는 일부 비디오 부호화 표준(예를 들어, MPEG 패밀리, H.261, H.263, 또는 H.264/AVC)에서 "블록"으로 지칭될 수 있거나, 또는 일부 다른 비디오 부호화 표준(예를 들어, H.265/HEVC 또는 H.266/VVC)에서 "부호화 단위"("CU")로 지칭될 수 있다. 기본 처리 서브-단위는 기본 처리 단위와 동일하거나 더 작은 크기를 가질 수 있다. 기본 처리 단위와 유사하게, 기본 처리 서브-단위는 또한, 논리적 단위이며, 이는 컴퓨터 메모리에 (예를 들어, 비디오 프레임 버퍼에) 저장된 상이한 타입의 비디오 데이터(예를 들어, Y, Cb, Cr 및 연관된 신택스 요소)의 그룹을 포함할 수 있다. 기본 처리 서브-단위에 대해 수행된 임의의 동작은 그의 루마 및 크로마 성분의 각각에 대해 반복적으로 수행될 수 있다. 이러한 분할은 처리 요구에 의존하는 추가적인 수준으로 수행될 수 있다는 것이 유의되어야 한다. 또한, 상이한 스테이지가 상이한 체계를 사용하여 기본 처리 단위를 나눌 수 있다는 것이 유의되어야 한다.
예를 들어, 모드 결정 스테이지(그의 예시가 도 2에서 도시됨)에서, 인코더는 기본 처리 단위에 어떤 예측 모드(예를 들어, 인트라-픽처 예측 또는 인터-픽처 예측)를 사용할지를 결정할 수 있으며, 이는 이러한 결정을 하기엔 너무 클 수 있다. 인코더는 기본 처리 단위를 다수의 기본 처리 서브-단위(예를 들어, H.265/HEVC 또는 H.266/VVC에서와 같이 CU)으로 분할할 수 있으며, 각 개별적인 기본 처리 서브-단위에 대해 예측 타입을 결정할 수 있다.
다른 예시에 대해, 예측 스테이지(그의 예시가 도 2에 도시됨)에서, 인코더는 기본 처리 서브-단위(예를 들어, CU)의 수준에서 예측 동작을 수행할 수 있다. 하지만, 일부 경우에서, 기본 처리 서브-단위는 처리하기에 여전히 너무 클 수 있다. 인코더는, 기본 처리 서브-단위를 더 작은 세그먼트(예를 들어, H.265/HEVC 또는 H.266/VVC에서 "예측 블록" 또는 "PB"로 지칭됨)로 더 분할할 수 있고, 더 작은 세그먼트의 수준에서 예측 동작이 수행될 수 있다.
다른 예시에 대해, 변환 스테이지(그의 예시가 도 2에서 도시됨)에서, 인코더는 잔차 기본 처리 서브-단위(예를 들어, CU)에 대한 변환 동작을 수행할 수 있다. 하지만, 일부 경우에서, 기본 처리 서브-단위는 처리하기에 여전히 너무 클 수 있다. 인코더는, 기본 처리 서브-단위를 더 작은 세그먼트(예를 들어, H.265/HEVC 또는 H.266/VVC에서 "변환 블록" 또는 "TB"로 지칭됨)로 더 분할할 수 있고, 더 작은 세그먼트의 수준에서 변환 동작이 수행될 수 있다. 동일한 기본 처리 서브-단위의 분할 체계는 예측 스테이지 및 변환 스테이지에서 상이할 수 있다는 것이 유의되어야 한다. 예를 들어, H.265/HEVC 또는 H.266/VVC에서, 동일한 CU의 예측 블록 및 변환 블록은 상이한 크기 및 개수를 가질 수 있다.
도 1의 구조(110)에서, 기본 처리 단위(112)는 그의 경계가 점선으로 도시된, 3×3 기본 처리 서브-단위로 더 나누어진다. 동일한 픽처의 상이한 기본 처리 단위가 상이한 체계에서 기본 처리 서브-단위로 나누어질 수 있다.
일부 구현에서, 비디오 인코딩 및 디코딩에 대한 병렬 처리 및 오차 복원의 능력을 제공하기 위해, 픽처는 픽처의 영역에 대해, 인코딩 또는 디코딩 프로세스가 픽처의 임의의 다른 영역으로부터의 어떠한 정보에도 의존하지 않도록, 처리를 위한 영역으로 나누어질 수 있다. 다시 말해, 픽처의 각 영역은 독립적으로 처리될 수 있다. 이렇게 함으로써, 코덱은 픽처의 상이한 영역을 병렬로 처리할 수 있으며, 따라서 부호화 효율을 증가시킨다. 또한, 영역의 데이터가 처리에서 훼손되거나 또는 네트워크 송신에서 분실될 때, 코덱은 훼손되거나 또는 분실된 데이터에 대한 의존(reliance) 없이, 동일한 픽처의 다른 영역을 올바르게 인코딩 또는 디코딩할 수 있으며, 따라서 오차 복원의 능력을 제공한다. 일부 비디오 부호화 표준에서, 픽처는 상이한 타입의 영역으로 나누어질 수 있다. 예를 들어, H.265/HEVC 및 H.266/VVC는 두 개의 타입의 영역: "슬라이스" 및 "타일"을 제공한다. 또한, 비디오 시퀀스(100)의 상이한 픽처가 픽처를 영역으로 나누기 위한 상이한 파티션 체계를 가질 수 있다는 것이 유의되어야 한다.
예를 들어, 도 1에서, 구조(110)는 세 개의 영역(114, 116 및 118)으로 나누어지고, 영역의 경계는 구조(110) 내에서 실선으로 도시된다. 영역(114)은 네 개의 기본 처리 단위를 포함한다. 영역(116 및 118)의 각각은 여섯 개의 기본 처리 단위를 포함한다. 도 1에서 구조(110)의 기본 처리 단위, 기본 처리 서브-단위 및 영역은 단지 예시이며, 본 개시는 이의 실시예를 제한하지 않는다는 것이 유의되어야 한다.
도 2는 본 개시의 일부 실시예에 따른, 하이브리드 비디오 부호화 시스템에서의 예시적인 인코더의 개략도를 예시한다. 비디오 인코더(200)는 비디오 블록, 또는 비디오 블록의 파티션 또는 서브-파티션을 포함하는, 비디오 프레임 내의 블록의 인트라-부호화(intra-coding) 또는 인터-부호화(inter-coding)를 수행할 수 있다. 인트라-부호화는 주어진 비디오 프레임 내에서 비디오에서의 공간적 중복성을 감소시키거나 또는 제거하기 위해 공간적 예측에 의존할 수 있다. 인터-부호화는 비디오 시퀀스의 인접 프레임 내에서 비디오에서의 시간적 중복성을 감소시키거나 또는 제거하기 위해 시간적 예측에 의존할 수 있다. 인트라 모드는 다수의 공간 기반 압축 모드를 지칭할 수 있다. (단방향-예측 또는 양방향 예측과 같은) 인터 모드는 다수의 시간-기반 압축 모드를 지칭할 수 있다.
도 2를 참조하면, 입력 비디오 신호(202)는 한 블록씩 처리될 수 있다. 예를 들어, 비디오 블록 단위는 16×16 픽셀 블록(예를 들어, 매크로블록(MB))일 수 있다. 비디오 블록 단위의 크기는 사용된 부호화 기술 및 요구되는 정확도 및 효율에 의존하여 달라질 수 있다. HEVC에서, 확장된 블록 크기(예를 들어, 부호화 트리 단위(CTU))는 해상도, 예를 들어 1080p 이상의 비디오 신호를 압축하기 위해 사용될 수 있다. HEVC에서, CTU는 최대 64×64 루마 샘플, 대응하는 크로마 샘플 및 연관된 신택스 요소를 포함할 수 있다. VVC에서, CTU의 크기는 128×128 루마 샘플, 대응하는 크로마 샘플 및 연관된 신택스 요소를 포함하도록 더 증가될 수 있다. CTU는 예를 들어, 쿼드-트리(quad-tree), 이진 트리 또는 터너리 트리(ternary tree)를 사용하여 부호화 단위(CU)로 더 나누어질 수 있다. CU는 예측 단위(PU)로 더 분할될 수 있으며, 이에 대해 별도의 예측 방법이 적용될 수 있다. 각 입력 비디오 블록은 공간적 예측 유닛(260) 또는 시간적 예측 유닛(262)을 사용함으로써 처리될 수 있다.
공간적 예측 유닛(260)은 현재 블록을 포함하는 동일한 픽처/슬라이스에 대한 정보를 사용하여 현재 블록/CU에 대한 공간적 예측(예를 들어, 인트라 예측)을 수행한다. 공간적 예측은 현재 비디오 블록을 예측하기 위해 동일한 비디오 픽처 프레임/슬라이스에서 이미 부호화된 이웃 블록으로부터의 픽셀을 사용할 수 있다. 공간적 예측은 비디오 신호에 내재된 공간적 중복성을 감소시킬 수 있다.
시간적 예측 유닛(262)은 현재 블록을 포함하는 픽처/슬라이스와 상이한 픽처(들)/슬라이스(들)로부터의 정보를 사용하여 현재 블록에 대한 시간적 예측(예를 들어, 인터 예측)을 수행한다. 비디오 블록에 대한 시간적 예측은 하나 이상의 움직임 벡터에 의해 시그널링될 수 있다. 단-방향 시간적 예측에서, 현재 블록에 대한 예측 신호를 생성하기 위해 하나의 참조 픽처를 나타내는 하나의 움직임 벡터만이 사용된다. 다른 한편으로, 양-방향 시간적 예측에서, 각각의 참조 픽처를 각각 나타내는 두 개의 움직임 벡터가 현재 블록에 대한 예측 신호를 생성하기 위해 사용될 수 있다. 움직임 벡터는 참조 프레임에서 현재 블록과 하나 이상의 연관된 블록(들) 사이의 움직임의 양 및 방향을 나타낼 수 있다. 다수의 참조 픽처가 지원되는 경우, 비디오 블록에 대해 하나 이상의 참조 픽처 인덱스가 전송될 수 있다. 하나 이상의 참조 인덱스는 참조 픽처 저장소 또는 디코딩된 픽처 버퍼(DPB, 264)에서 어느 참조 픽처(들)로부터 시간적 예측 신호가 올 수 있는지를 식별하기 위해 사용될 수 있다.
인코더에서의 모드 결정 및 인코더 제어 유닛(280)은 예를 들어, 비율-왜곡 최적화를 기초로 예측 모드를 선택할 수 있다. 결정된 예측 모드를 기초로, 예측 블록이 획득될 수 있다. 예측 블록은 가산기(216)에서 현재 비디오 블록으로부터 감산될 수 있다. 예측 잔차는 변환 유닛(204)에 의해 변환되고 양자화 유닛(206)에 의해 양자화될 수 있다. 양자화된 잔차 계수는 재구성된 잔차를 형성하기 위해, 역양자화 유닛(210)에서 역양자화되고 역변환 유닛(212)에서 역변환될 수 있다. 재구성된 잔차는 재구성된 비디오 블록을 형성하기 위해 가산기(226)에서 예측 블록에 추가될 수 있다. 루프-필터링 이전에 재구성된 비디오 블록은 인트라 예측을 위한 참조 샘플을 제공하기 위해 사용될 수 있다.
재구성된 비디오 블록은 루프 필터(226)에서 루프 필터링을 거칠 수 있다. 예를 들어, 디블록킹 필터(deblocking filter), 적응적 샘플 오프셋(sample adaptive offset, SAO) 및 적응적 루프 필터(adaptive loop filter, ALF)와 같은 루프 필터링이 적용될 수 있다. 루프-필터링 이후에 재구성된 블록은 참조 픽처 저장소(264)에 저장될 수 있고, 다른 비디오 블록을 부호화하기 위한 인터 예측 참조 샘플을 제공하는 데 사용될 수 있다. 출력 비디오 비트스트림(220)을 형성하기 위해, 부호화 모드(예를 들어, 인터 또는 인트라), 예측 모드 정보, 움직임 정보, 및 양자화된 잔차 계수는 비트스트림(220)을 형성하기 위해 데이터가 압축되고 패킹되기 전에, 비트레이트를 더 감소시키기 위해 엔트로피 부호화 유닛(208)으로 전송될 수 있다.
도 3는 본 개시의 일부 실시예에 따른, 하이브리드 비디오 부호화 시스템에서의 예시적인 디코더의 개략도를 예시한다. 도 3을 참조하면, 비디오 비트스트림(302)은 엔트로피 디코딩 유닛(308)에서 언패킹되거나, 또는 엔트로피 디코딩될 수 있다. 코딩 모드 정보는 공간적 예측 유닛(360) 또는 시간적 예측 유닛(362)이 선택되는지를 결정하기 위해 사용될 수 있다. 예측 모드 정보는 예측 블록을 생성하기 위해 대응하는 예측 유닛으로 전송될 수 있다. 예를 들어, 움직임 보상된 예측은 시간적 예측 블록을 형성하기 위해 시간적 예측 유닛(362)에 의해 적용될 수 있다.
잔차 계수는 재구성된 잔차를 획득하기 위해 역양자화 유닛(310) 및 역변환 유닛(312)으로 전송될 수 있다. 예측 블록 및 재구성된 잔차는 루프 필터링 이전에 재구성된 블록을 형성하기 위해 326에서 함께 추가될 수 있다. 재구성된 블록은 그 후, 루프 필터(366)에서 루프 필터링을 거칠 수 있다. 예를 들어, 디블록킹 필터, SAO 및 ALF와 같은 루프 필터링이 적용될 수 있다. 루프 필터링 이후 재구성된 블록은 그 후, 참조 픽처 저장소(364)에 저장될 수 있다. 참조 픽처 저장소(364)에서 재구성된 데이터는 디코딩된 비디오(320)를 획득하기 위해 사용되거나, 또는 추후 비디오 블록을 예측하기 위해 사용될 수 있다. 디코딩된 비디오(320)는 최종-사용자가 보기 위해 TV, PC, 스마트폰 또는 태블릿과 같은 디스플레이 디바이스 상에 디스플레이될 수 있다.
도 4는 본 개시의 일부 실시예에 따른, 비디오를 인코딩하거나 또는 디코딩하기 위한 예시적인 장치(400)의 블록도이다. 도 4에 도시된 바와 같이, 장치(400)는 프로세서(402)를 포함할 수 있다. 프로세서(402)가 본원에서 설명된 명령어를 실행할 때, 장치(400)는 비디오 인코딩 또는 디코딩을 위한 특별화된 기계가 될 수 있다. 프로세서(402)는 정보를 조작하거나 또는 처리할 수 있는 임의의 타입의 회로일 수 있다. 예를 들어, 프로세서(402)는 중앙 처리 유닛(또는 "CPU"), 그래픽 처리 유닛(또는 "GPU"), 신경 처리 유닛(neural processing unit, "NPU"), 마이크로컨트롤러 유닛(microcontroller unit, "MCU"), 광학 프로세서, 프로그램 가능 로직 컨트롤러, 마이크로컨트롤러, 마이크로프로세서, 디지털 신호 프로세서, 지적 재산권(intellectual property, IP) 코어, 프로그램 가능 로직 어레이(Programmable Logic Array, PLA), 프로그램 가능 어레이 로직(Programmable Array Logic, PAL), 일반 어레이 로직(Generic Array Logic, GAL), 복합 프로그램 가능 논리 디바이스(Complex Programmable Logic Device, CPLD), 현장-프로그램 가능 게이트 어레이(Field-Programmable Gate Array, FPGA), 단일 칩 시스템(System On Chip, SoC), 주문형 집적 회로(Application-Specific Integrated Circuit, ASIC) 등의 임의의 개수의 임의의 조합을 포함할 수 있다. 일부 실시예에서, 프로세서(402)는 또한, 단일 로직 구성요소로서 그룹화되는 프로세서의 세트일 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 프로세서(402)는 프로세서(402a), 프로세서(402b) 및 프로세서(402n)를 포함하는 다수의 프로세서를 포함할 수 있다.
장치(400)는 또한, 데이터(예를 들어, 명령어의 세트, 컴퓨터 코드, 중간 데이터 등)를 저장하도록 구성되는 메모리(404)를 포함할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 저장된 데이터는 프로그램 명령어(예를 들어, 도 2 또는 3에서의 스테이지를 구현하기 위한 프로그램 명령어) 및 처리를 위한 데이터를 포함할 수 있다. 프로세서(402)는 프로그램 명령어 및 처리를 위한 데이터에 (예를 들어, 버스(410)를 통해) 액세스할 수 있고, 처리를 위한 데이터에 대한 동작 또는 조작을 수행하기 위해 프로그램 명령어를 실행할 수 있다. 메모리(404)는 고속 랜덤 액세스 저장 디바이스 또는 비-휘발성 저장 디바이스를 포함할 수 있다. 일부 실시예에서, 메모리(404)는 랜덤-액세스 메모리(random-access memory, RAM), 읽기-전용 메모리(ROM), 광학 디스크, 자기 디스크, 하드 드라이브, 솔리드-스테이트 드라이브(solid-state drive), 플래시 드라이브, 보안 디지털(SD) 카드, 메모리 스틱, 콤팩트 플래시(compact flash, CF) 카드 등의 임의의 개수의 임의의 조합을 포함할 수 있다. 메모리(404)는 또한, 단일 로직 구성요소로서 그룹화된 메모리의 그룹(도 4에 미도시됨)일 수 있다.
버스(410)는 내부 버스(예를 들어, CPU-메모리 버스), 외부 버스(예를 들어, 통합 직렬 버스 포트(universal serial bus port,), 주변 구성요소 상호연결 고속 포트(peripheral component interconnect express port)) 등과 같은, 장치(400) 내의 구성요소 사이에서 데이터를 전달하는 통신 디바이스일 수 있다.
모호성을 야기하지 않으면서 설명의 용이함을 위해, 프로세서(402) 및 다른 데이터 처리 회로는 본 개시에서, 집합적으로 "데이터 처리 회로"로 지칭된다. 데이터 처리 회로는 전체적으로 하드웨어로 구현되거나, 또는 소프트웨어, 하드웨어 또는 펌웨어의 조합으로 구현될 수 있다. 덧붙여, 데이터 처리 회로는 단일 독립 모듈이거나, 또는 장치(400)의 임의의 다른 구성요소로 전체적으로 또는 부분적으로 결합될 수 있다.
장치(400)는 네트워크(예를 들어, 인터넷, 인트라넷, 근거리 통신망, 모바일 통신 네트워크 등)와의 유선 통신 또는 무선 통신을 제공하기 위해 네트워크 인터페이스(406)를 더 포함할 수 있다. 일부 실시예에서, 네트워크 인터페이스(406)는 네트워크 인터페이스 컨트롤러(network interface controller, NIC), 무선 주파수(radio frequency, RF) 모듈, 트랜스폰더(transponder), 트랜시버, 모뎀, 라우터, 게이트웨이, 유선 네트워크 어댑터, 무선 네트워크 어댑터, 블루투스 어댑터, 적외선 어댑터, 근거리 통신("NFC") 어댑터, 셀룰러 네트워크 칩 등의 임의의 개수의 임의의 조합을 포함할 수 있다.
일부 실시예에서, 선택적으로, 장치(400)는 하나 이상의 주변 디바이스에 대한 연결을 제공하기 위한 주변 인터페이스(408)를 더 포함할 수 있다. 도 4에 도시된 바와 같이, 주변 디바이스는 커서 제어 디바이스(예를 들어, 마우스, 터치패드 또는 터치스크린), 키보드, 디스플레이(예를 들어, 음극선관 디스플레이, 액정 디스플레이 또는 발광 다이오드 디스플레이), 비디오 입력 디바이스(예를 들어, 비디오 아카이브(video archive)에 결합된 카메라 또는 입력 인터페이스) 등을 포함할 수 있지만, 이에 제한되지 않는다.
비디오 코덱은 장치(400)에서 임의의 소프트웨어 또는 하드웨어 모듈의 임의의 조합으로 구현될 수 있다는 것이 유의되어야 한다. 예를 들어, 도 2의 인코더(200) 또는 도 3의 디코더(300)의 일부 또는 모든 스테이지는 메모리(404)에 적재될 수 있는 프로그램 명령어와 같은 장치(400)의 하나 이상의 소프트웨어 모듈로서 구현될 수 있다. 다른 예시에 대해, 도 2의 인코더(200) 또는 도 3의 디코더(300)의 일부 또는 모든 스테이지는 특수 데이터 처리 회로(예를 들어, FPGA, ASIC, NPU 등)와 같은 장치(400)의 하나 이상의 하드웨어 모듈로서 구현될 수 있다.
양자화 및 역양자화 기능 블록(예를 들어, 도 2의 양자화 유닛(206) 및 역양자화 유닛(210), 도 3의 역양자화 유닛(310))에서, 양자화 매개변수(QP)는 예측 잔차에 적용되는 양자화(및 역 양자화)의 양을 결정하기 위해 사용된다. 픽처 또는 슬라이스의 부호화를 위해 사용되는 초기 QP 값은 예를 들어, 픽처 매개변수 세트(Picture Parameter Set, PPS)에서의 신택스 요소 init_qp_minus26를 사용하고 슬라이스 헤더에서의 신택스 요소 slice_qp_delta를 사용하여 고수준(high level)에서 시그널링될 수 있다. 또한, QP 값은 양자화 그룹의 입도(granularity)에서 전송된 델타 QP 값을 사용하여 각 CU에 대한 로컬 수준에서 적응될 수 있다.
VVC(예를 들어, VVC 초안 7)에서, 팔레트 모드는 4:4:4 색상 포맷으로 사용된다. 팔레트 모드가 활성화될 때, CU 크기가 64×64 이하인 경우, CU 수준에서 플래그가 송신되어 팔레트 모드가 사용되는지를 나타낸다.
도 5는 본 개시의 일부 실시예에 따른, 팔레트 모드로 부호화된 예시적인 이미지 블록(500)의 개략도를 예시한다. 도 5에 도시된 바와 같이, 팔레트 모드가 현재 CU를 부호화하는 데 활용되는 경우, CU의 각 위치에서의 샘플 값은 작은 세트의 대표 색상 값에 의해 표현된다. 세트는 팔레트(예를 들어, 팔레트(510))로 지칭된다. 팔레트 색상에 가까운 값을 갖는 샘플 위치(예를 들어, 위치(501, 502 또는 503))에 대해, 대응하는 팔레트 인덱스(예를 들어, 인덱스 0, 인덱스 1, 인덱스 2 또는 인덱스 3)가 시그널링된다. 일부 개시된 실시예에 따라, 팔레트 외부의 색상 값은 이스케이프 인덱스(escape index)(또는 이스케이프 색상 인덱스)를 시그널링함으로써 지정될 수 있다. 그 후, 이스케이프 색상 인덱스(예를 들어, 인덱스 4)를 사용하는 CU에서의 모든 위치(예를 들어, 위치(504))에 대해, (양자화된) 색상 성분 값이 이 위치의 각각에 대해 시그널링된다.
팔레트를 부호화하기 위해, 팔레트 예측자가 유지된다. 예측자는 비-웨이브프론트(non-wavefront)의 경우 각 슬라이스의 시작에서, 그리고 웨이브프론트의 경우 각 CTU 행의 시작에서 0(예를 들어, 비어 있음)으로 초기화된다. 도 6은 본 개시의 일부 실시예에 따른 부호화 단위를 인코딩한 이후에, 팔레트 예측자를 업데이트하기 위한 예시적인 프로세스(600)의 개략도를 예시한다. 도 6에 도시된 바와 같이, 팔레트 예측자에서의 각 엔트리에 대해, 그것이 현재 CU의 현재 팔레트에 포함될 것인지를 나타내기 위해 재사용 플래그가 시그널링된다. 재사용 플래그는 0의 실행-길이 부호화를 사용하여 전송되며, 그 후에 새로운 팔레트 엔트리의 수 및 새로운 팔레트 엔트리에 대한 성분 값이 시그널링된다. 팔레트 부호화된 CU를 인코딩한 이후에, 팔레트 예측자는 현재 팔레트를 사용하여 업데이트되고, 현재 팔레트에서 재사용되지 않는 이전 팔레트 예측자로부터의 엔트리는 허용된 최대 크기에 도달할 때까지 새로운 팔레트 예측자의 끝에 추가된다.
일부 실시예에서, 이스케이프 부호가 현재 CU에 존재하는지를 나타내기 위해, 각 CU에 대해 이스케이프 플래그가 시그널링된다. 이스케이프 부호가 존재하는 경우, 팔레트 테이블은 1만큼 증가되고, 마지막 인덱스(예를 들어, 도 5에 도시된 인덱스 4)는 이스케이프 부호로 할당된다.
다시 도 5를 참조하면, CU에서의 샘플의 팔레트 인덱스(예를 들어, 인덱스 0, 인덱스 1, 인덱스 2, 인덱스 3 및 인덱스 4)는 팔레트 인덱스 맵을 형성한다. 인덱스 맵은 수평 또는 수직 트래버스 스캔(horizontal or vertical traverse scans)을 사용하여 부호화된다. 스캔 순서는 신택스 요소 palette_transpose_flag를 사용하여 비트스트림에서 명시적으로 시그널링된다. 팔레트 인덱스 맵은 인덱스-실행 모드(index-run mode) 또는 인덱스-복사 모드(index-copy mode)를 사용하여 부호화된다.
일부 실시예에서, 팔레트 모드는 4:4:4 색상 포맷에 대해서만 허용된다. 하지만, 많은 양의 비디오 콘텐츠가 다른 색상 포맷, 예를 들어 4:2:0 크로마 서브-샘플링 포맷으로 부호화될 수 있다. 본 개시는 팔레트 모드를 단색, 4:2:0, 4:2:2 등과 같은 다른 크로마 포맷으로 확장하기 위한 방법을 제공한다.
더욱이, 이중 루마/크로마 트리를 갖는 슬라이스의 경우, 팔레트는 루마(Y 성분)와 크로마(Cb 및 Cr 성분)에 별도로 적용된다. 단일 트리의 슬라이스의 경우, 팔레트는 Y, Cb, Cr 성분에 공동으로 적용된다(예를 들어, 팔레트에서의 각 엔트리는 Y, Cb, Cr 값을 포함한다). 하지만, VVC에서 4:2:0 및 4:2:2 색상 포맷의 경우, 단일-트리 슬라이스의 부호화 단위(CU)는 허용 가능한 최소 크로마 부호화 블록 크기에 대한 제한에 기인하여, 별도의 루마 및 크로마 트리를 가질 수 있다. 그러므로, 이중-트리 CU의 루마 및 크로마가 별도로 처리되기 때문에(CU가 단일-트리 슬라이스에 속하더라도), 공동 팔레트는 이중-트리 CU에 적용될 수 없다. 따라서, 본 개시의 일부 실시예에서, 팔레트 모드를 4:2:0 및 4:2:2와 같은 다른 크로마 포맷으로 확장하면서, 로컬 이중-트리 구조를 갖는 단일-트리 슬라이스(예를 들어, 슬라이스 수준에서 단일 트리인 반면에, CU 수준에서 이중-트리)의 가능성이 처리될 수 있다.
본 개시의 일부 실시예는 팔레트 모드를 4:4:4 색상 포맷(또는 4:4:4가 아닌 색상 포맷) 이외의 색상 포맷 및 로컬 이중-트리 구조를 갖는 단일-트리 슬라이스에 적용하기 위한 방법 및 장치를 제공한다.
본 개시의 일부 실시예는 단색, 4:2:0, 4:2:2, 4:4:4 등과 같은 모든 크로마 포맷에 대해 팔레트 모드를 허용할 수 있다. 도 7은 본 개시의 일부 실시예에 따른, SPS 신택스 테이블의 일부를 도시하는 예시적인 테이블 1을 예시한다. 테이블 1에 도시된 바와 같이, 박스(701)에서 선을 그어 지워진 신택스 요소는 현재 VVC 초안 7로부터 삭제하도록 제안되고, 박스(702)에서 이탤릭체로 표시된 신택스 요소는 현재 VVC 초안 7에 추가되도록 제안된다. SPS 플래그 sps_palette_enabled_flag는 신택스 요소 chroma_format_idc의 값에 관계없이 시그널링될 수 있다.
위에서 설명된 바와 같이, 현재 비디오 부호화 표준(예를 들어, VVC 초안 7)에서 단일 트리를 갖는 슬라이스의 경우, 팔레트 모드가 Y, Cb, Cr 성분에 공동으로 적용된다. P 및 B 슬라이스는 항상 단일-트리 슬라이스로 부호화된다. I 슬라이스의 트리 구조는 SPS 신택스, 예를 들어 신택스 요소 qtbtt_dual_tree_intra_flag를 통해 시그널링된다. 1과 동일한 신택스 요소 qtbtt_dual_tree_intra_flag는 I 슬라이스에 대해 루마 및 크로마에 대한 두 개의 별도의 coding_tree 신택스 구조가 사용됨을 지정한다. 0과 동일한 신택스 요소 qtbtt_dual_tree_intra_flag는 I 슬라이스에 대해 별도의 coding_tree 신택스 구조가 사용되지 않음을 지정한다.
비-인터 최소 크로마 인트라 예측 단위(smallest chroma intra prediction unit, SCIPU)의 경우 크로마가 더 분할되도록 허용되지 않지만 루마는 더 분할되도록 허용되기 때문에, 단일-트리 슬라이스의 부호화 단위는 별도의 루마 및 크로마 트리를 가질 수 있다. 단일-트리 부호화에서, SCIPU는 크로마 블록 크기가 16개의 크로마 샘플 이상이고, 64개의 루마 샘플보다 작은 적어도 하나의 자식 루마 블록을 갖는 부호화 트리 노드로 정의된다. 그러므로, 이중-트리 CU의 루마 및 크로마가 별도로 처리되기 때문에(이중-트리 CU가 단일-트리 슬라이스에 속하더라도), 공동 팔레트는 이중-트리 CU에 적용될 수 없다. 이는 이중-트리 CU를 갖는 단일 트리 슬라이스에 팔레트 모드를 적용하는 문제를 제시한다. 본 개시는 이 문제를 해결하기 위한 일부 실시예를 제공한다.
일부 실시예에 따라, 팔레트 모드는 CU가 로컬 이중-트리를 포함하는 경우 CU에 대해 허용되지 않는다. 그러므로, 다음 조건 모두가 충족되는 경우: (1) CU가 별도의 트리로 부호화됨, 및 (2) CU가 단일 트리를 갖는 슬라이스에 속함, 팔레트 모드는 CU에 대해 허용되지 않는다. 도 8은 본 개시의 일부 실시예에 따른, 부호화 단위 신택스 테이블의 일부를 도시하는 예시적인 테이블 2를 예시한다. 테이블 2의 부호화 단위 신택스 테이블은 CU에 대한 팔레트 모드를 허용하지 않을 수 있다. 테이블 2에 도시된 바와 같이, 본 실시예와 일치하는 신택스 변경은 박스(801)에서 이탤릭체로 표시된다. 테이블 2의 부호화 단위 신택스 테이블을 기초로, 다음 두 가지 조건이 충족되는 경우, 팔레트 모드는 허용되지 않는다:
Figure pct00001
일부 실시예에 따라, 팔레트 모드의 부호화 효율을 개선하기 위해, 팔레트 모드는 로컬 이중 트리를 포함하는 CU에 적용된다. 로컬 이중 트리 블록의 경우, 재사용 플래그(예를 들어, 신택스 요소 palette_predictor_run)는 추가되는 새로운 팔레트 엔트리(예를 들어, 신택스 요소 new_palette_entries[ cIdx ][ i ]) 없이 시그널링된다. 로컬 이중-트리 블록이 루마(또는 크로마) 성분만을 포함할 수 있으므로, 새로운 팔레트 엔트리에 대한 크로마(또는 루마) 값은 비어 있을 수 있다. 따라서, 로컬 이중-트리 블록에 대한 새로운 팔레트 엔트리를 전송하는 것이 제한된다. 도 9는 본 개시의 일부 실시예에 따른, 팔레트 부호화 신택스 테이블의 일부를 도시하는 예시적인 테이블 3을 예시한다. 테이블 3의 팔레트 부호화 신택스 테이블은 로컬 이중 트리를 포함하는 CU에 팔레트 모드를 적용할 수 있다. 테이블 3에 도시된 바와 같이, 본 실시예와 일치하는 신택스 변경은 박스(901-904)에서 이탤릭체로 표시된다.
더욱이, 4:4:4가 아닌 색상 포맷의 경우, 루마 성분만을 포함하는 픽셀이 있다. 그러므로, 일부 실시예에서, 픽셀이 이스케이프 모드를 사용하여 부호화될 때 이 픽셀에 대한 루마 값만이 시그널링된다(박스(903)에서 볼드체 및 음영 처리된 도 9의 테이블 3의 신택스 참조).
도 10은 본 개시의 일부 실시예에 따른, 팔레트 모드에 대한 예시적인 디코딩 프로세스를 예시한다. 디코딩 프로세스는 VVC 초안 7에서의 섹션 8.4.5.3을 포함한다. 디코딩 프로세스는 두 개의 프로세스 - 하나는 픽셀 재구성을 위한 이고, 다른 것은 팔레트 예측자 업데이트를 위한 것임 - 를 포함할 수 있다.
도 10에 도시된 바와 같이, 디코딩 프로세스는 VVC 초안 7에서의 섹션 8.4.5.3과 유사할 수 있다. 디코딩 프로세스는 박스(1001-1003)에 이탤릭체로 표시된 일부 신택스 변경을 포함할 수 있다. 현재 팔레트를 사용하여 팔레트 예측자를 업데이트할 때, 현재 팔레트에 대한 엔트리가 새로운 팔레트 예측자 앞에 배치된다. 그 후, 현재 팔레트에서 재사용되지 않는 이전 팔레트 예측자로부터의 엔트리는 새로운 팔레트 예측자의 끝에 추가된다. 로컬 이중-트리 블록의 경우, 각 팔레트 엔트리는 루마 및 크로마 성분 모두를 포함한다. 그러므로, 팔레트 예측자 업데이트의 프로세스에는 세 개의 성분 모두가 수반된다. PredictorPaletteSize[ startComp ]의 값이 0 내지 63을 포함하는 범위에 있다는 것은 비트스트림 적합성의 요건이다.
일부 실시예에 따라, 팔레트 모드는 단일-트리 블록에 적용되는 팔레트 모드와 동일한 방식으로 로컬 이중-트리 블록에 적용될 수 있다. 로컬 이중-트리 블록은 루마(또는 크로마) 성분만을 포함할 수 있기 때문에, 루마(또는 크로마) 성분의 값이 시그널링되고 디폴트 값은 새로운 팔레트 엔트리에 대한 크로마(또는 루마) 성분으로 설정될 수 있다. 예시로서, 기본 값은 비디오 시퀀스의 비트 깊이와 관련될 수 있다. 다른 예시로서, 기본 값은 0일 수 있다.
더욱이, 4:4:4가 아닌 색상 포맷의 경우, 루마 성분만을 포함하는 픽셀이 이스케이프 모드를 사용하여 부호화될 때, 이 픽셀에 대해서만 루마 값이 시그널링된다. 도 11은 본 개시의 일부 실시예에 따른, 팔레트 부호화 신택스 테이블의 일부를 도시하는 예시적인 테이블 4를 예시한다. 테이블 4의 팔레트 부호화 신택스 테이블은 로컬 이중 트리를 포함하는 CU에 팔레트 모드를 적용할 수 있다. 테이블 4에 도시된 바와 같이, 본 실시예와 일치하는 신택스 변경은 박스(1101) 및 박스(1102)에서 이탤릭체로 표시된다.
본 개시의 일부 실시예에서, 로컬 이중-트리에 대한 신택스 파싱(syntax parsing)은 단일 트리에 대한 것과 정렬될 수 있다. 더욱이, 더 적은 비트가 시그널링되기 때문에 팔레트 모드에 대한 부호화 효율이 개선될 수 있다.
도 12는 본 개시의 일부 실시예에 따른, 팔레트 모드에 대한 예시적인 팔레트 부호화 의미론 및 디코딩 프로세스를 예시한다. 도 12에 도시된 바와 같이, VVC 초안 7에서의 섹션 7.4.12.6 및 섹션 8.4.5.3에서 제안된 신택스 변경은 박스(1201-1205)에서 이탤릭체로 표시된다. 로컬 이중-트리 블록의 경우, 팔레트 예측자 업데이트를 수행할 때 현재 팔레트에 기본 값이 먼저 채워진다(도 12에서 볼드체 의미론 참조). 그 후, 팔레트 예측자 업데이트의 프로세스에 세 개의 성분 모두가 수반된다. PredictorPaletteSize[ startComp ]의 값이 0 내지 63을 포함하는 범위에 있다는 것은 비트스트림 적합성의 요건이다.
일부 실시예에 따라, 팔레트 모드는 도 11의 테이블 4에 도시된 실시예와 유사한, 팔레트 모드가 단일-트리 블록에 적용되는 것과 동일한 방식으로 로컬 이중 트리 블록에 적용될 수 있다. 하지만, 일부 실시예에서, 로컬 이중-트리 블록에 대한 팔레트는 팔레트 예측자를 업데이트하는 데 사용되지 않는다. 그러므로, 팔레트 예측자에서의 재정렬 프로세스가 스킵되기 때문에, 디코딩 프로세스는 단순화될 수 있다.
더욱이, 4:4:4가 아닌 색상 포맷의 경우, 루마 성분만을 포함하는 픽셀이 이스케이프 모드를 사용하여 부호화될 때, 이 픽셀에 대해서만 루마 값이 시그널링된다. 도 13은 본 개시의 일부 실시예에 따른, 팔레트 부호화 신택스 테이블의 일부를 도시하는 예시적인 테이블 5를 예시한다. 테이블 5의 팔레트 부호화 신택스 테이블은 로컬 이중 트리를 포함하는 CU에 팔레트 모드를 적용할 수 있다. 테이블 5에 도시된 바와 같이, 본 실시예와 일치하는 신택스 변경은 박스(1301) 및 박스(1302)에서 이탤릭체로 표시된다.
도 14는 본 개시의 일부 실시예에 따른, 팔레트 모드에 대한 예시적인 디코딩 프로세스를 예시한다. 도 14에 도시된 바와 같이, VVC 초안 7에서의 섹션 8.4.5.3에 대한 제안된 신택스 변경은 박스(1401) 및 박스(1402)에서 이탤릭체로 표시된다. 로컬 이중-트리 블록의 경우, 팔레트 예측자는 업데이트되지 않는다. PredictorPaletteSize[ startComp ]의 값이 0 내지 63을 포함하는 범위에 있다는 것은 비트스트림 적합성의 요건이다.
일부 실시예에 따라, 팔레트 모드는, 팔레트 모드가 단일-트리 블록에 적용되는 것과 동일한 방식으로 로컬 이중-트리 루마 블록에 적용될 수 있다. 로컬 이중-트리 크로마 블록의 경우, 팔레트 모드가 비활성화된다. 로컬 이중-트리 루마 블록이 루마 성분만을 포함할 수 있기 때문에, 루마 성분의 값이 시그널링되고 기본 값은 새로운 팔레트 엔트리에 대한 크로마 성분으로 설정될 수 있다. 예시로서, 기본 값은 비디오 시퀀스의 비트 깊이와 관련될 수 있다. 다른 예시로서, 기본 값은 0일 수 있다.
더욱이, 4:4:4가 아닌 색상 포맷의 경우, 루마 성분만을 포함하는 픽셀이 이스케이프 모드를 사용하여 부호화될 때, 이 픽셀에 대해서만 루마 값이 시그널링된다. 도 15는 본 개시의 일부 실시예에 따른, 부호화 단위 신택스 테이블의 일부를 도시하는 예시적인 테이블 6를 예시한다. 도 16은 본 개시의 일부 실시예에 따른, 팔레트 부호화 신택스 테이블의 일부를 도시하는 예시적인 테이블 7을 예시한다. 팔레트 부호화 신택스 테이블은 루마 로컬 이중 트리를 포함하는 CU에 팔레트 모드를 적용할 수 있다. 본 실시예와 일치하는 테이블 6 및 테이블 7에서의 신택스 변경은 각각 박스(1501) 및 박스(1601-1602)에서 이탤릭체로 표시된다.
본 개시의 일부 실시예에서, 크로마 로컬 이중 트리에 대한 팔레트를 비활성화함으로써, 팔레트 설계가 단순화된다.
도 17은 본 개시의 일부 실시예에 따른, 팔레트 모드에 대한 예시적인 팔레트 부호화 의미론 및 디코딩 프로세스를 예시한다. 도 17에 도시된 바와 같이, VVC 초안 7에서의 섹션 7.4.12.6 및 섹션 8.4.5.3에 대한 제안된 신택스 변경은 박스(1701-1705)에서 이탤릭체로 표시된다. 로컬 이중-트리 블록의 경우, 팔레트 예측자 업데이트를 수행할 때 현재 팔레트에 기본 값이 먼저 채워진다. 그 후, 팔레트 예측자 업데이트의 프로세스에 세 개의 성분 모두가 수반된다. PredictorPaletteSize[ startComp ]의 값이 0 내지 63을 포함하는 범위에 있다는 것은 비트스트림 적합성의 요건이다.
도 18은 본 개시의 일부 실시예에 따른 예시적인 비디오 처리 방법(1800)의 흐름도를 예시한다. 일부 실시예에서, 방법(1800)은 디코더(예를 들어, 도 3의 디코더(300)) 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1800)을 수행할 수 있다. 일부 실시예에서, 방법(1800)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는, 컴퓨터-판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다.
단계 1801에서, 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리가 수신될 수 있다. 예를 들어, 디코더(예를 들어, 도 3의 디코더(300))는 타겟 CU를 팔레트 부호화하기 위한 하나 이상의 팔레트 엔트리(예를 들어, 도 9의 테이블 3에서의 new_palette_entries[ cIdx ][ i ])를 포함하는 비트스트림을 수신할 수 있다.
단계 1803에서, 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지에 대한 결정이 이루어질 수 있다. 예를 들어, 조건(treeType != SINGLE_TREE)이 충족되는지에 대한 결정이 이루어질 수 있다. treeType != SINGLE_TREE인 경우, 타겟 CU는 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정될 수 있다.
단계 1805에서, 타겟 CU가 단일-트리 슬라이스의 일부인지에 대한 결정이 이루어질 수 있다. 일부 실시예에서, 방법(1800)은 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지 결정하는 단계(예를 들어, slice_type != I), 또는 타겟 CU가 단일 트리 I 슬라이스의 일부인지 결정하는 단계(예를 들어, qtbtt_dual_tree_intra_flag == 0)를 포함할 수 있다.
단계 1807에서, 타겟 CU가 (a) 별도의 루마 및 크로마 트리로 부호화되고, 및 (b) 단일-트리 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 타겟 CU의 제1 성분은 수신된 팔레트 엔트리를 기초로 디코딩되고, 타겟 CU의 제2 성분은 기본 팔레트 엔트리를 기초로 디코딩될 수 있다. 일부 실시예에서, 방법(1800)은 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 팔레트 엔트리를 기초로 타겟 CU의 제1 성분 및 제2 성분을 디코딩하는 단계를 포함할 수 있다. 제1 성분이 루마 성분이고 제2 성분이 크로마 성분이거나, 제1 성분이 크로마 성분이고 제2 성분이 루마 성분이다.
일부 실시예에서, 방법(1800)은 타겟 CU를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그를 수신하는 단계, 및 수신된 팔레트 엔트리 및 수신된 재사용 플래그를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 단계를 포함할 수 있다. 일부 실시예에서, 타겟 CU의 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있다. 일부 실시예에서, 방법(1800)은 수신된 팔레트 엔트리를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 단계를 포함할 수 있다. 일부 실시예에서, 제1 성분 및 제2 성분이 디코딩된 후에, 타겟 CU의 팔레트 예측자는 업데이트되지 않는다.
도 19는 본 개시의 일부 실시예에 따른, 예시적인 비디오 처리 방법(1900)의 흐름도를 예시한다. 일부 실시예에서, 방법(1900)은 인코더(예를 들어, 도 2의 인코더(200)), 디코더(예를 들어, 도 3의 디코더(300)) 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1900)을 수행할 수 있다. 일부 실시예에서, 방법(1900)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터-판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다.
단계 1901에서, 방법(1900)은 팔레트 모드가 타겟 CU에 대해 활성화됨을 나타내는 플래그를 시그널링하는 단계를 포함할 수 있다. 플래그는 타겟 CU에 대해 크로마 샘플링 포맷이 사용되는지와 관계없이 시그널링될 수 있다. 일부 실시예에서, 플래그는 SPS에서 시그널링된다. 크로마 샘플링 포맷은 4:4:4 포맷, 4:2:2 포맷 또는 4:2:0 포맷 중 하나 이상을 포함할 수 있다.
단계 1903에서, 방법(1900)은 또한 타겟 CU에 대해 사용되는 크로마 샘플링 포맷(예를 들어, 4:4:4 포맷, 4:2:2 포맷 또는 4:2:0 포맷)을 결정하는 단계를 포함할 수 있다. 일부 실시예에서, 방법(1900)은 결정된 크로마 샘플링 포맷(예를 들어, 4:4:4 포맷)을 기초로, 대응하는 신택스 요소(예를 들어, 도 7의 테이블 1에서의 신택스 요소 sps_act_enabled_flag)를 시그널링하는 단계를 포함할 수 있다.
도 20은 본 개시의 일부 실시예에 따른, 예시적인 비디오 처리 방법(2000)의 흐름도를 예시한다. 일부 실시예에서, 방법(2000)은 인코더(예를 들어, 도 2의 인코더(200)), 디코더(예를 들어, 도 3의 디코더(300)) 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(2000)을 수행할 수 있다. 일부 실시예에서, 방법(2000)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터-판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다.
단계 2001에서, 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지에 대한 결정이 이루어질 수 있다. 예를 들어, 조건(treeType != SINGLE_TREE)이 충족되는지에 대한 결정이 이루어질 수 있다. treeType != SINGLE_TREE인 경우, 타겟 CU는 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정될 수 있다.
단계 2003에서, 타겟 CU가 단일-트리 슬라이스의 일부인지에 대한 결정이 이루어질 수 있다. 일부 실시예에서, 방법(2000)은 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 단계(예를 들어, slice_type != I) 또는 타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 단계(예를 들어, qtbtt_dual_tree_intra_flag == 0)를 포함할 수 있다.
단계 2005에서, 타겟 CU가 (a) 별도의 루마 및 크로마 트리로 부호화되고, (b) 단일-트리 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 팔레트 모드는 타겟 CU에 대해 허용되지 않는 것으로 결정될 수 있다(예를 들어, 도 8의 테이블 2).
도 21은 본 개시의 일부 실시예에 따른, 예시적인 비디오 처리 방법(2100)의 흐름도를 예시한다. 일부 실시예에서, 방법(2100)은 인코더(예를 들어, 도 2의 인코더(200)), 디코더(예를 들어, 도 3의 디코더(300)) 또는 장치(예를 들어, 장치(도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(2100)을 수행할 수 있다. 일부 실시예에서, 방법(2100)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터-판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다.
단계 2101에서, 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지에 대한 결정이 이루어질 수 있다. 예를 들어, 조건(treeType != SINGLE_TREE)이 충족되는지에 대한 결정이 이루어질 수 있다. treeType != SINGLE_TREE인 경우, 타겟 CU는 별도의 루마 및 크로마 트리로 부호화 되는 것으로 결정될 수 있다.
단계 2103에서, 타겟 CU가 단일-트리 슬라이스의 일부인지에 대한 결정이 이루어질 수 있다. 일부 실시예에서, 방법(2100)은 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 단계(예를 들어, slice_type != I) 또는 타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 단계(예를 들어, qtbtt_dual_tree_intra_flag == 0)를 포함할 수 있다.
단계 2105에서, 타겟 CU가 (a) 별도의 루마 및 크로마 트리로 부호화되고, 및 (b) 단일-트리 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 타겟 CU를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그가 시그널링될 수 있다. 타겟 CU를 팔레트 부호화하기 위해 어떠한 새로운 팔레트 엔트리도 시그널링되지 않는다(예를 들어, 도 9의 테이블 3).
일부 실시예에서, 방법(2100)은 타겟 CU가 (a) 별도의 루마 및 크로마 트리로 부호화되지 않거나, 또는 (b) 단일-트리 슬라이스의 일부가 아닌 것으로 결정되는 것에 응답하여, 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 시그널링하는 단계를 포함할 수 있다(예를 들어, 도 9의 테이블 3).
일부 실시예에서, 방법(2100)은 타겟 CU에서의 픽셀이 루마 성분만을 포함하는지를 결정하는 단계, 및 픽셀이 루마 성분만을 포함하는 것으로 결정되는 것에 응답하여, 픽셀이 이스케이프 모드 CU를 사용하여 부호화되는 경우 픽셀에 대한 루마 팔레트 이스케이프 값만을 시그널링하는 단계를 포함할 수 있다(예를 들어, 도 9의 테이블 3).
도 22는 본 개시의 일부 실시예에 따른 예시적인 비디오 처리 방법(2200)의 흐름도를 예시한다. 일부 실시예에서, 방법(2200)은 인코더(예를 들어, 도 2의 인코더(200)), 디코더(예를 들어, 도 3의 디코더(300)) 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(2200)을 수행할 수 있다. 일부 실시예에서, 방법(2200)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터-판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다.
단계 2201에서, 타겟 부호화 단위(CU)에서의 픽셀이 루마 성분만을 포함하는지에 대한 결정이 이루어질 수 있다. 단계 2203에서, 픽셀이 루마 성분만을 포함하는 것으로 결정되는 것에 응답하여, 픽셀이 이스케이프 모드(예를 들어, 도 11의 테이블 4)를 사용하여 부호화되는 경우 픽셀에 대한 루마 팔레트 이스케이프 값만이 시그널링될 수 있다.
도 23은 본 개시의 일부 실시예에 따른, 예시적인 비디오 처리 방법(2300)의 흐름도를 예시한다. 일부 실시예에서, 방법(2300)은 디코더(예를 들어, 도 3의 디코더(300)) 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(2300)을 수행할 수 있다. 일부 실시예에서, 방법(2300)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터-판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다.
단계 2301에서, 비트스트림이 수신될 수 있다. 비트스트림은 타겟 CU를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그를 포함할 수 있다. 예를 들어, 디코더(예를 들어, 도 3의 디코더(300))는 타겟 CU를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 하나 이상의 재사용 플래그(예를 들어, 도 9의 테이블 3에서의 palette_predictor_run)를 포함하는 비트스트림을 수신할 수 있다.
단계 2303에서, 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지에 대한 결정이 이루어질 수 있다. 예를 들어, 조건(treeType != SINGLE_TREE)이 충족되는지에 대한 결정이 이루어질 수 있다. treeType != SINGLE_TREE인 경우, 타겟 CU는 별도의 루마 및 크로마 트리로 부호화 되는 것으로 결정될 수 있다.
단계 2305에서, 타겟 CU가 단일-트리 슬라이스의 일부인지에 대한 결정이 이루어질 수 있다. 일부 실시예에서, 방법(2300)은 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지 결정하는 단계(예를 들어, slice_type != I) 또는 타겟 CU가 단일 트리 I 슬라이스의 일부인지 결정하는 단계(예를 들어, qtbtt_dual_tree_intra_flag == 0)를 포함할 수 있다.
단계 2307에서, 타겟 CU가 (a) 별도의 루마 및 크로마 트리로 부호화되고, (b) 단일-트리 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그를 기초로 타겟 CU의 루마 성분 및 크로마 성분이 디코딩될 수 있다. 수신된 비트스트림은 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 포함하지 않는다. 일부 실시예에서, 방법(2300)은: 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그 및 비트스트림에서 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 기초로 타겟 CU의 루마 성분 및 크로마 성분을 디코딩하는 단계를 포함할 수 있다.
일부 실시예에서, 방법(2300)은 수신된 재사용 플래그를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 단계를 포함할 수 있다. 방법(230)은 또한: 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나, 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그 및 비트스트림에서 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 단계를 포함할 수 있다. 일부 실시예에서, 타겟 CU의 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있다.
일부 실시예에서, 명령어를 포함하는 비일시적 컴퓨터-판독가능 저장 매체가 또한 제공되고, 명령어는 상술한 방법을 수행하기 위한 (개시된 인코더 및 디코더와 같은) 디바이스에 의해 실행될 수 있다. 비일시적 매체의 일반적인 형태는 예를 들어, 플로피 디스크, 플렉서블 디스크(flexible disk), 하드 디스크, 솔리드 스테이트 드라이브(solid state drive), 자기 테이프 또는 임의의 다른 자기 데이터 저장 매체, CD-ROM, 임의의 다른 광학 데이터 저장 매체, 구멍의 패턴을 갖는 임의의 물리적 매체, RAM, PROM 및 EPROM, FLASH-EPROM 또는 임의의 다른 플래시 메모리, NVRAM, 캐시, 레지스터, 임의의 다른 메모리 칩 또는 카트리지 및 이의 네트워크화된 버전을 포함한다. 디바이스는 하나 이상의 프로세서(CPU), 입/출력 인터페이스, 네트워크 인터페이스 및/또는 메모리를 포함할 수 있다.
실시예는 다음 조항을 사용하여 더 설명될 수 있다.
1. 비디오 처리 방법으로서,
타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 단계;
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계;
타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 단계; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여,
제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분을 디코딩하는 단계, 및
기본 팔레트 엔트리를 기초로 타겟 CU의 제2 성분을 디코딩하는 단계를 포함하는, 방법.
2. 조항 1에 있어서, 타겟 CU를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 단계는:
제2 팔레트 엔트리와 연관된 플래그를 수신하는 단계; 및
수신된 플래그를 기초로 타겟 CU의 팔레트 예측자에 제2 팔레트 엔트리를 포함하는 단계를 포함하는, 방법.
3. 조항 2에 있어서, 타겟 CU의 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있는, 방법.
4. 조항 1 내지 3 중 어느 하나에 있어서, 타겟 CU를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 단계는:
제1 팔레트 엔트리를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 단계를 포함하는, 방법.
5. 조항 1-4 중 어느 하나에 있어서, 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계는:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 단계; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 단계를 포함하는, 방법.
6. 조항 5에 있어서,
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분 및 제2 성분을 디코딩하는 단계를 더 포함하는, 방법.
7. 조항 1-6 중 어느 하나에 있어서,
제1 성분이 루마 성분이고 제2 성분이 크로마 성분이거나; 또는
제1 성분이 크로마 성분이고 제2 성분이 루마 성분인, 방법.
8. 조항 1에 있어서, 제1 성분 및 제2 성분이 디코딩된 이후, 타겟 CU의 팔레트 예측자는 업데이트되지 않는, 방법.
9. 비디오 처리 장치로서,
명령어를 저장하기 위한 적어도 하나의 메모리; 및
적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 명령어를 실행하여 장치로 하여금:
타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 것;
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여,
제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분을 디코딩하는 것, 및
기본 팔레트 엔트리를 기초로 타겟 CU의 제2 성분을 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
10. 조항 9에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
제2 팔레트 엔트리와 연관된 플래그를 수신하는 것; 및
수신된 플래그를 기초로 타겟 CU의 팔레트 예측자에 제2 팔레트 엔트리를 포함하는 것을 수행하게 하도록 구성되는, 장치.
11. 조항 10에 있어서, 타겟 CU의 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있는, 장치.
12. 조항 9 내지 11 중 어느 하나에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
제1 팔레트 엔트리를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 것을 수행하게 하도록 구성되는, 장치.
13. 조항 9 내지 12 중 어느 하나에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하도록 구성되는, 장치.
14. 조항 13에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분 및 제2 성분을 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
15. 조항 9 내지 14 중 어느 하나에 있어서,
제1 성분이 루마 성분이고 제2 성분이 크로마 성분이거나; 또는
제1 성분이 크로마 성분이고 제2 성분이 루마 성분인, 장치.
16. 조항 9에 있어서, 제1 성분 및 제2 성분이 디코딩된 후에, 타겟 CU의 팔레트 예측자는 업데이트되지 않는, 장치.
17. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서,
명령어의 세트는 비디오 처리 장치로 하여금:
타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 것;
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여,
제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분을 디코딩하는 것, 및
기본 팔레트 엔트리를 기초로 타겟 CU의 제2 성분을 디코딩하는 것을 수행하게 하도록 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
18. 조항 17에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
제2 팔레트 엔트리와 연관된 플래그를 수신하는 것; 및
수신된 플래그를 기초로 타겟 CU의 팔레트 예측자에 제2 팔레트 엔트리를 포함하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
19. 조항 18에 있어서, 타겟 CU의 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있는, 비일시적 컴퓨터 판독가능 저장 매체.
20. 조항 17 내지 19 중 어느 하나에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
제1 팔레트 엔트리를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
21. 조항 17 내지 20 중 어느 하나에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
22. 조항 21에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 제1 팔레트 엔트리를 기초로 타겟 CU의 제1 성분 및 제2 성분을 디코딩하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
23. 조항 17 내지 22 중 어느 하나에 있어서,
제1 성분이 루마 성분이고 제2 성분이 크로마 성분이거나; 또는
제1 성분이 크로마 성분이고 제2 성분이 루마 성분인, 비일시적 컴퓨터 판독가능 저장 매체.
24. 조항 17에 있어서, 제1 성분 및 제2 성분이 디코딩된 후에, 타겟 CU의 팔레트 예측자는 업데이트되지 않는, 비일시적 컴퓨터 판독가능 저장 매체.
25. 비디오 처리 방법으로서,
팔레트 모드가 타겟 부호화 단위(CU)에 대해 활성화됨을 나타내는 플래그를 시그널링하는 단계를 포함하고,
플래그는 크로마 샘플링 포맷이 타겟 CU에 대해 사용되는지에 관계없이 시그널링되는, 방법.
26. 조항 25에 있어서, 플래그는 시퀀스 매개변수 세트(SPS)에서 시그널링되는, 방법.
27. 조항 25 및 26 중 어느 하나에 있어서, 크로마 샘플링 포맷은:
4:4:4 포맷,
4:2:2 포맷 또는
4:2:0 포맷 중 하나 이상을 포함하는, 방법.
28. 비디오 처리 방법으로서,
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계;
타겟 부호화 단위(CU)가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 단계; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 팔레트 모드가 타겟 CU에 대해 허용되지 않는 것으로 결정하는 단계를 포함하는, 방법.
29. 조항 28에 있어서, 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계는:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 단계; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 단계를 포함하는, 방법.
30. 조항 29에 있어서,
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 팔레트 모드가 타겟 CU에 대해 허용되는 것으로 결정하는 단계를 더 포함하는, 방법.
31. 비디오 처리 방법으로서,
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계;
타겟 부호화 단위(CU)가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 단계; 및
타겟 CU가 단일 트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 타겟 CU를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그를 시그널링하는 단계 - 타겟 CU를 팔레트 부호화 하기 위해 어떠한 새로운 팔레트 엔트리도 시그널링되지 않음 - 를 포함하는, 방법.
32. 조항 31에 있어서, 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계는:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 단계; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 단계를 포함하는, 방법.
33. 조항 31 및 32 중 어느 하나에 있어서,
타겟 CU가 단일-트리 슬라이스의 일부가 아니거나 또는 별도의 루마 및 크로마 트리로 부호화되지 않은 것에 응답하여, 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 시그널링하는 단계를 더 포함하는, 방법.
34. 조항 31 내지 33 중 어느 하나에 있어서,
타겟 CU에서의 픽셀이 크로마 성분을 포함하는지를 결정하는 단계 - 픽셀은 이스케이프 모드를 사용하여 부호화됨 -; 및
픽셀이 크로마 성분을 포함하지 않는 것에 응답하여, 픽셀에 대한 루마 팔레트 이스케이프 값을 시그널링하는 단계 - 픽셀에 대한 어떠한 크로마 팔레트 이스케이프 값도 시그널링되지 않음 - 를 더 포함하는, 방법.
35. 비디오 처리 방법으로서,
타겟 부호화 단위(CU)에서의 픽셀이 크로마 성분을 포함하는지를 결정하는 단계 - 픽셀은 이스케이프 모드를 사용하여 부호화됨 -; 및
픽셀이 크로마 성분을 포함하지 않는 것에 응답하여, 루마 팔레트 이스케이프 값을 시그널링하는 단계 - 픽셀에 대한 어떠한 크로마 팔레트 이스케이프 값도 시그널링되지 않음 - 를 포함하는, 방법.
36. 비디오 처리 방법으로서,
타겟 부호화 단위(CU)를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그를 포함하는 비트스트림을 수신하는 단계;
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계;
타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 단계; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그를 기초로 타겟 CU의 루마 성분 및 크로마 성분을 디코딩하는 단계 - 비트스트림은 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 타겟 CU를 팔레트 부호화하기 위한 어떠한 팔레트 엔트리도 포함하지 않음 - 를 포함하는, 방법.
37. 조항 36에 있어서,
수신된 재사용 플래그를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 단계를 더 포함하는, 방법.
38. 조항 36 및 37 중 어느 하나에 있어서, 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계는:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 단계; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 단계를 포함하는, 방법.
39. 조항 38에 있어서,
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그 및 비트스트림에서 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 기초로 타겟 CU의 루마 성분 및 크로마 성분을 디코딩하는 단계를 더 포함하는, 방법.
40. 조항 38 및 39 중 어느 하나에 있어서,
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그 및 비트스트림에서 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 단계를 더 포함하는, 방법.
41. 조항 37 및 40 중 어느 하나에 있어서, 타겟 CU의 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있는, 방법.
42. 비디오 처리 장치로서,
명령어를 저장하기 위한 적어도 하나의 메모리; 및
적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 명령어를 실행하여 장치로 하여금:
팔레트 모드가 타겟 부호화 단위(CU)에 대해 활성화됨을 나타내는 플래그를 시그널링하는 것을 수행하게 하도록 구성되고,
플래그는 크로마 샘플링 포맷이 타겟 CU에 대해 사용되는지에 관계없이 시그널링되는, 장치.
43. 조항 42에 있어서, 플래그는 시퀀스 매개변수 세트(SPS)에서 시그널링되는, 장치.
44. 조항 42 및 43 중 어느 하나에 있어서, 크로마 샘플링 포맷은:
4:4:4 포맷,
4:2:2 포맷 또는
4:2:0 포맷 중 하나 이상을 포함하는, 방법.
45. 비디오 처리 장치로서,
명령어를 저장하기 위한 적어도 하나의 메모리; 및
적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 명령어를 실행하여 장치로 하여금:
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
타겟 부호화 단위(CU)가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 팔레트 모드가 타겟 CU에 대해 허용되지 않는 것으로 결정하는 것을 수행하게 하도록 구성되는, 장치.
46. 조항 45에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하도록 구성되는, 장치.
47. 조항 46에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 팔레트 모드가 타겟 CU에 대해 허용되는 것으로 결정하는 것을 수행하게 하도록 구성되는, 장치.
48. 비디오 처리 장치로서,
명령어를 저장하기 위한 적어도 하나의 메모리; 및
적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 명령어를 실행하여 장치로 하여금:
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
타겟 부호화 단위(CU)가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
타겟 CU가 단일 트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 타겟 CU를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그를 시그널링하는 것 - 타겟 CU를 팔레트 부호화하기 위해 어떠한 새로운 팔레트 엔트리도 시그널링되지 않음 - 을 수행하게 하도록 구성되는, 장치.
49. 조항 48에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하도록 구성되는, 장치.
50. 조항 48 및 49 중 어느 하나에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 단일-트리 슬라이스의 일부가 아니거나 또는 별도의 루마 및 크로마 트리로 부호화되지 않은 것에 응답하여, 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 시그널링하는 것을 수행하게 하도록 구성되는, 장치.
51. 조항 48 내지 50 중 어느 하나에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU에서의 픽셀이 크로마 성분을 포함하는지를 결정하는 것 - 픽셀은 이스케이프 모드를 사용하여 부호화됨 -; 및
픽셀이 크로마 성분을 포함하지 않는 것에 응답하여, 픽셀에 대한 루마 팔레트 이스케이프 값을 시그널링하는 것 - 픽셀에 대한 어떠한 크로마 팔레트 이스케이프 값도시그널링되지 않음 - 을 수행하게 하도록 구성되는, 장치.
52. 비디오 처리 장치로서,
명령어를 저장하기 위한 적어도 하나의 메모리; 및
적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 명령어를 실행하여 장치로 하여금:
타겟 부호화 단위(CU)에서의 픽셀이 크로마 성분을 포함하는지를 결정하는 것 - 픽셀은 이스케이프 모드를 사용하여 부호화됨 -; 및
픽셀이 크로마 성분을 포함하지 않는 것에 응답하여, 루마 팔레트 이스케이프 값을 시그널링하는 것 - 픽셀에 대한 크로마 팔레트 이스케이프 값은 시그널링되지 않음 -을 수행하게 하도록 구성되는, 장치.
53. 비디오 처리 장치로서,
명령어를 저장하기 위한 적어도 하나의 메모리; 및
적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 명령어를 실행하여 장치로 하여금:
타겟 부호화 단위(CU)를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그를 포함하는 비트스트림을 수신하는 것;
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그를 기초로 타겟 CU의 루마 성분 및 크로마 성분을 디코딩하는 것 - 비트스트림은 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 타겟 CU를 팔레트 부호화하기 위한 어떠한 팔레트 엔트리도 포함하지 않음 -을 수행하게 하도록 구성되는, 장치.
54. 조항 53에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
수신된 재사용 플래그를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 것을 수행하게 하도록 구성되는, 장치.
55. 조항 53 및 54 중 어느 하나에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하도록 구성되는, 장치.
56. 조항 55에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그 및 비트스트림에서 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 기초로 타겟 CU의 루마 성분 및 크로마 성분을 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
57. 조항 55 및 56 중 어느 하나에 있어서, 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그 및 비트스트림에서 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 것을 수행하게 하도록 구성되는, 장치.
58. 조항 54 및 57 중 어느 하나에 있어서, 타겟 CU의 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있는, 장치.
59. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서,
명령어의 세트는 비디오 처리 장치로 하여금:
팔레트 모드가 타겟 부호화 단위(CU)에 대해 활성화됨을 나타내는 플래그를 시그널링하는 것을 수행하게 하도록 하나 이상의 처리 디바이스에 의해 실행 가능하고,
플래그는 크로마 샘플링 포맷이 타겟 CU에 대해 사용되는지에 관계없이 시그널링되는, 비일시적 컴퓨터 판독가능 저장 매체.
60. 조항 59에 있어서, 플래그는 시퀀스 매개변수 세트(SPS)에서 시그널링되는, 비일시적 컴퓨터 판독가능 저장 매체.
61. 조항 59 및 60 중 어느 하나에 있어서, 크로마 샘플링 포맷은:
4:4:4 포맷,
4:2:2 포맷 또는
4:2:0 포맷 중 하나 이상을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
62. 비디오 처리 장치로 하여금:
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
타겟 부호화 단위(CU)가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 팔레트 모드가 타겟 CU에 대해 허용되지 않는 것으로 결정하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한 명령어의 세트를 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
63. 조항 62에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
64. 조항 63에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 팔레트 모드가 타겟 CU에 대해 허용되는 것으로 결정하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
65. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서,
명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
타겟 부호화 단위(CU)가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 타겟 CU를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그를 시그널링하는 것 - 타겟 CU를 팔레트 부호화하는 데 새로운 팔레트 엔트리가 시그널링되지 않음 -을 수행하게 하도록 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
66. 조항 65에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
67. 조항 65 및 66 중 어느 하나에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 단일-트리 슬라이스의 일부가 아니거나 또는 별도의 루마 및 크로마 트리로 부호화되지 않은 것에 응답하여, 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 시그널링하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
68. 조항 65 내지 67 중 어느 하나에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU에서의 픽셀이 크로마 성분을 포함하는지를 결정하는 것 - 픽셀은 이스케이프 모드를 사용하여 부호화됨 -; 및
픽셀이 크로마 성분을 포함하지 않는 것에 응답하여, 픽셀에 대한 루마 팔레트 이스케이프 값을 시그널링하는 것 - 픽셀에 대한 크로마 팔레트 이스케이프 값은 시그널링되지 않음 -을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
69. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서,
명령어의 세트는 비디오 처리 장치로 하여금:
타겟 부호화 단위(CU)에서의 픽셀이 크로마 성분을 포함하는지를 결정하는 것 - 픽셀은 이스케이프 모드를 사용하여 부호화됨 -; 및
픽셀이 크로마 성분을 포함하지 않는 것에 응답하여, 루마 팔레트 이스케이프 값을 시그널링하는 것 - 픽셀에 대한 어떠한 크로마 팔레트 이스케이프 값도 시그널링되지 않음 -을 수행하게 하도록 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
70. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서,
명령어의 세트는 비디오 처리 장치로 하여금:
타겟 부호화 단위(CU)를 팔레트 부호화하기 위해 팔레트 엔트리를 재사용하기 위한 재사용 플래그를 포함하는 비트스트림을 수신하는 것;
타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그를 기초로 타겟 CU의 루마 성분 및 크로마 성분을 디코딩하는 것 - 비트스트림은 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 타겟 CU를 팔레트 부호화하기 위한 어떠한 팔레트 엔트리도 포함하지 않음 -을 수행하게 하도록 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
71. 조항 70에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
수신된 재사용 플래그를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
72. 조항 70 및 71 중 어느 하나에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
73. 조항 72에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그 및 비트스트림에서 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 기초로 타겟 CU의 루마 성분 및 크로마 성분을 디코딩하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
74. 조항 72 및 73 중 어느 하나에 있어서, 명령어의 세트는 비디오 처리 장치로 하여금:
타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 수신된 재사용 플래그 및 비트스트림에서 타겟 CU를 팔레트 부호화하기 위한 팔레트 엔트리를 기초로 타겟 CU의 팔레트 예측자를 업데이트하는 것을 수행하게 하기 위해 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
75. 조항 72 및 74 중 어느 하나에 있어서, 타겟 CU의 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있는, 비일시적 컴퓨터 판독가능 저장 매체.
본원에서 "제1" 및 "제2"와 같은 관계 용어는 엔티티 또는 동작을 다른 엔티티 또는 동작과 구분하기 위해서만 사용되며, 이러한 엔티티 또는 동작 간의 실제 관계 또는 시퀀스를 요구하거나 암시하지 않는다. 더욱이, 포함하는(comprising), "갖는(having)", "포함하는(containing)" 및 "포함하는(including)"이라는 단어 및 다른 형태는 그 의미가 동등하고, 이러한 단어 중 어느 하나를 따르는 항목 또는 항목들이 이러한 항목 또는 항목들의 철저한 열거(exhaustive listing)를 의미하지 않거나 또는 열거된 항목 또는 항목들만으로 제한되는 것을 의미하지 않는다는 점에서, 제약을 두지 않는 것으로(open-ended) 의도된다.
본원에서 사용된 바와 같이, 달리 구체적으로 언급되지 않는 한, "또는"이란 용어는 실행 불가능한 경우를 제외하고 모든 가능한 조합을 포함한다. 예를 들어, 데이터베이스가 A 또는 B가 포함될 수 있다고 명시되어 있으면, 달리 구체적으로 명시되지 않거나 실행 불가능한 경우를 제외하고, 데이터베이스는 A 또는 B, 또는 A 및 B를 포함할 수 있다. 제2 예시로서, 데이터베이스가 A, B 또는 C를 포함할 수 있다고 명시되어 있으면, 달리 구체적으로 명시되지 않거나 실행 불가능한 경우를 제외하고, 데이터베이스는 A 또는 B 또는 C, 또는 A 및 B, 또는 A 및 C, 또는 B 및 C, 또는 A 및 B 및 C를 포함할 수 있다.
상술한 실시예는 하드웨어 또는 소프트웨어(프로그램 코드), 또는 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다는 것이 인식된다. 소프트웨어로 구현되는 경우, 이는 상술한 컴퓨터-판독가능 매체에 저장될 수 있다. 소프트웨어는 프로세서에 의해 실행될 때 개시된 방법을 수행할 수 있다. 본 개시에서 설명된 컴퓨팅 유닛 및 다른 기능 유닛은 하드웨어 또는 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다. 통상의 기술자는 또한 위에서 설명된 모듈/유닛 중 다수가 하나의 모듈/유닛으로 결합될 수 있고, 위에서 설명된 모듈/유닛 각각이 복수의 서브-모듈/서브-유닛으로 더 나누어질 수 있음을 이해할 것이다.
전술한 명세서에서, 실시예는 구현마다 다를 수 있는 수많은 특정 세부사항을 참조로 설명되었다. 설명된 실시예의 특정 적응 및 수정이 이루어질 수 있다. 다른 실시예는 본원에 개시된 본 발명의 명세서 및 실시를 고려하여 통상의 기술자에게 명백할 수 있다. 명세서 및 예시는 단지 예시적인 것으로 간주되어야 하는 것으로 의도되며, 본 발명의 진정한 범주 및 사상은 다음 청구범위에 의해 나타난다. 또한, 도면에 도시된 단계의 시퀀스는 단지 예시의 목적이며, 단계의 임의의 특정 시퀀스로 제한되도록 의도되지 않는다. 이와 같이, 통상의 기술자는 이러한 단계가 동일한 방법을 구현하면서 상이한 순서로 수행될 수 있음을 인식할 수 있다.
도면 및 명세서에서, 예시적인 실시예가 개시된다. 하지만, 이 실시예에 대해 다수의 변형 및 수정이 이루어질 수 있다. 따라서, 특정한 용어가 이용되더라도, 제한의 목적이 아닌 일반적이고 설명적인 의미로 사용된다.

Claims (20)

  1. 비디오 처리 방법으로서,
    타겟 부호화 단위(cording unit, CU)를 팔레트 부호화(palette coding)하기 위한 제1 팔레트 엔트리를 수신하는 단계;
    상기 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계;
    상기 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 단계; 및
    상기 타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여,
    상기 제1 팔레트 엔트리를 기초로 상기 타겟 CU의 제1 성분을 디코딩하는 단계, 및
    기본 팔레트 엔트리를 기초로 상기 타겟 CU의 제2 성분을 디코딩하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 타겟 CU를 팔레트 부호화하기 위한 상기 제1 팔레트 엔트리를 수신하는 단계는:
    제2 팔레트 엔트리와 연관된 플래그를 수신하는 단계; 및
    수신된 플래그를 기초로 상기 타겟 CU의 팔레트 예측자에 상기 제2 팔레트 엔트리를 포함하는 단계를 포함하는, 방법.
  3. 제2항에 있어서, 상기 타겟 CU의 상기 팔레트 예측자의 크기는 0 내지 63을 포함하는 범위에 있는, 방법.
  4. 제1항에 있어서, 상기 타겟 CU를 팔레트 부호화하기 위한 상기 제1 팔레트 엔트리를 수신하는 단계는:
    상기 제1 팔레트 엔트리를 기초로 상기 타겟 CU의 팔레트 예측자를 업데이트하는 단계를 포함하는, 방법.
  5. 제1항에 있어서, 상기 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 단계는:
    상기 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 단계; 또는
    상기 타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 상기 제1 팔레트 엔트리를 기초로 상기 타겟 CU의 상기 제1 성분 및 상기 제2 성분을 디코딩하는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서,
    상기 제1 성분이 루마 성분이고 상기 제2 성분이 크로마 성분이거나; 또는
    상기 제1 성분이 크로마 성분이고 상기 제2 성분이 루마 성분인, 방법.
  8. 제1항에 있어서, 상기 제1 성분 및 상기 제2 성분이 디코딩된 이후, 상기 타겟 CU의 팔레트 예측자는 업데이트되지 않는, 방법.
  9. 비디오 처리 장치로서,
    명령어를 저장하기 위한 적어도 하나의 메모리; 및
    적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 명령어를 실행하여, 장치로 하여금:
    타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 것;
    상기 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
    상기 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되는지를 결정하는 것; 및
    상기 타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여,
    상기 제1 팔레트 엔트리를 기초로 상기 타겟 CU의 제1 성분을 디코딩하는 것, 및
    기본 팔레트 엔트리를 기초로 상기 타겟 CU의 제2 성분을 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
  10. 제9항에 있어서, 상기 적어도 하나의 프로세서는 상기 명령어를 실행하여, 상기 장치로 하여금:
    제2 팔레트 엔트리와 연관된 플래그를 수신하는 것; 및
    수신된 플래그를 기초로 상기 타겟 CU의 팔레트 예측자에 제2 팔레트 엔트리를 포함하는 것을 수행하게 하도록 구성되는, 장치.
  11. 제9항에 있어서, 상기 적어도 하나의 프로세서는 상기 명령어를 실행하여, 상기 장치로 하여금:
    상기 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
    상기 타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하도록 구성되는, 장치.
  12. 제11항에 있어서, 상기 적어도 하나의 프로세서는 상기 명령어를 실행하여, 상기 장치로 하여금:
    상기 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 상기 제1 팔레트 엔트리를 기초로 상기 타겟 CU의 상기 제1 성분 및 상기 제2 성분을 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
  13. 제9항에 있어서, 상기 제1 성분 및 상기 제2 성분이 디코딩된 후에, 상기 타겟 CU의 팔레트 예측자는 업데이트되지 않는, 장치.
  14. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서,
    상기 명령어의 세트는 비디오 처리 장치로 하여금:타겟 부호화 단위(CU)를 팔레트 부호화하기 위한 제1 팔레트 엔트리를 수신하는 것;
    상기 타겟 CU가 단일-트리 슬라이스의 일부인지를 결정하는 것;
    상기 타겟 CU가 별도의 루마 및 크로마 트리로 부호화되었는지를 결정하는 것; 및
    상기 타겟 CU가 단일-트리 슬라이스의 일부이고 별도의 루마 및 크로마 트리로 부호화되는 것으로 결정되는 것에 응답하여,
    상기 제1 팔레트 엔트리를 기초로 상기 타겟 CU의 제1 성분을 디코딩하는 것, 및
    기본 팔레트 엔트리를 기초로 타겟 CU의 제2 성분을 디코딩하는 것을 수행하게 하도록 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  15. 제14항에 있어서, 상기 명령어의 세트는 상기 비디오 처리 장치로 하여금:
    제2 팔레트 엔트리와 연관된 플래그를 수신하는 것; 및
    수신된 플래그를 기초로 상기 타겟 CU의 팔레트 예측자에 제2 팔레트 엔트리를 포함하는 것을 수행하게 하기 위해 상기 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  16. 제14항에 있어서, 상기 명령어의 세트는 상기 비디오 처리 장치로 하여금:
    상기 제1 팔레트 엔트리를 기초로 상기 타겟 CU의 팔레트 예측자를 업데이트하는 것을 수행하게 하도록 상기 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  17. 제14항에 있어서, 상기 명령어의 세트는 상기 비디오 처리 장치로 하여금:
    상기 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부인지를 결정하는 것; 또는
    상기 타겟 CU가 단일 트리 I 슬라이스의 일부인지를 결정하는 것을 수행하게 하기 위해 상기 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서, 상기 명령어의 세트는 상기 비디오 처리 장치로 하여금:
    상기 타겟 CU가 P 슬라이스 또는 B 슬라이스의 일부이거나 또는 단일 트리 I 슬라이스의 일부인 것으로 결정되는 것에 응답하여, 상기 제1 팔레트 엔트리를 기초로 상기 타겟 CU의 상기 제1 성분 및 상기 제2 성분을 디코딩하는 것을 수행하게 하기 위해 상기 하나 이상의 처리 디바이스에 의해 실행 가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 제14항에 있어서,
    상기 제1 성분이 루마 성분이고 상기 제2 성분이 크로마 성분이거나; 또는
    상기 제1 성분이 크로마 성분이고 상기 제2 성분이 루마 성분인, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 제14항에 있어서, 상기 제1 성분 및 상기 제2 성분이 디코딩된 후에, 상기 타겟 CU의 팔레트 예측자는 업데이트되지 않는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020227021952A 2019-12-03 2020-10-02 팔레트 모드를 사용하기 위한 비디오 처리 방법 및 장치 KR20220101729A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962943083P 2019-12-03 2019-12-03
US62/943,083 2019-12-03
US201962952426P 2019-12-22 2019-12-22
US62/952,426 2019-12-22
PCT/US2020/054023 WO2021112949A1 (en) 2019-12-03 2020-10-02 Video processing method and apparatus for using palette mode

Publications (1)

Publication Number Publication Date
KR20220101729A true KR20220101729A (ko) 2022-07-19

Family

ID=76091399

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227021952A KR20220101729A (ko) 2019-12-03 2020-10-02 팔레트 모드를 사용하기 위한 비디오 처리 방법 및 장치

Country Status (6)

Country Link
US (3) US11451796B2 (ko)
EP (1) EP4070557A4 (ko)
JP (1) JP2023504407A (ko)
KR (1) KR20220101729A (ko)
CN (1) CN114788289A (ko)
WO (1) WO2021112949A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2583061B (en) * 2019-02-12 2023-03-15 Advanced Risc Mach Ltd Data processing systems
US11683489B2 (en) * 2019-12-26 2023-06-20 Qualcomm Incorporated Monochrome palette mode for video coding

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558567B2 (en) * 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
US10362333B2 (en) * 2014-01-02 2019-07-23 Qualcomm Incorporated Color index coding for palette-based video coding
US9860560B2 (en) * 2014-07-02 2018-01-02 Qualcomm Incorporated Method for palette mode coding
US11330297B2 (en) * 2014-08-19 2022-05-10 Qualcomm Incorporated Methods incorporating extensions to copy-above mode for palette mode coding
WO2016048092A1 (ko) * 2014-09-26 2016-03-31 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2016074147A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd. Separated coding tree for luma and chroma
US10212434B2 (en) * 2015-01-30 2019-02-19 Qualcomm Incorporated Palette entries coding in video coding
US10356432B2 (en) * 2015-09-14 2019-07-16 Qualcomm Incorporated Palette predictor initialization and merge for video coding
US20190246122A1 (en) * 2018-02-08 2019-08-08 Qualcomm Incorporated Palette coding for video coding
US10694195B2 (en) * 2018-03-07 2020-06-23 Tencent America LLC Methods and apparatus for palette coding
US11206413B2 (en) * 2019-08-13 2021-12-21 Qualcomm Incorporated Palette predictor updates for local dual trees

Also Published As

Publication number Publication date
US20230011928A1 (en) 2023-01-12
US20230023977A1 (en) 2023-01-26
EP4070557A4 (en) 2023-01-18
WO2021112949A1 (en) 2021-06-10
US11451796B2 (en) 2022-09-20
JP2023504407A (ja) 2023-02-03
EP4070557A1 (en) 2022-10-12
US20210168377A1 (en) 2021-06-03
CN114788289A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
US11356679B2 (en) Method and apparatus for chroma sampling
US11356684B2 (en) Method and system for signaling chroma quantization parameter table
US20230011928A1 (en) Video processing method and apparatus for using palette mode
WO2021195588A1 (en) Methods and apparatuses for signaling picture header
KR20220143859A (ko) 크로마 신호를 처리하기 위한 방법
US11765361B2 (en) Method and apparatus for coding video data in palette mode
KR20230013103A (ko) 비디오 처리에서의 타일 및 슬라이스 파티셔닝
US20230156211A1 (en) Method for apparatus for deriving maximum sub-block transform size
US11968360B2 (en) Methods for palette prediction
US20210266548A1 (en) Signaling of maximum transform size and residual coding method
KR20220120628A (ko) 서브화상 파티셔닝 정보를 시그널링하기 위한 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination