KR20230015363A - 비디오 코딩에서 참조 픽처 처리를 위한 방법 - Google Patents

비디오 코딩에서 참조 픽처 처리를 위한 방법 Download PDF

Info

Publication number
KR20230015363A
KR20230015363A KR1020227042191A KR20227042191A KR20230015363A KR 20230015363 A KR20230015363 A KR 20230015363A KR 1020227042191 A KR1020227042191 A KR 1020227042191A KR 20227042191 A KR20227042191 A KR 20227042191A KR 20230015363 A KR20230015363 A KR 20230015363A
Authority
KR
South Korea
Prior art keywords
reference picture
picture list
index
list
picture
Prior art date
Application number
KR1020227042191A
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 KR20230015363A publication Critical patent/KR20230015363A/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/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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

Abstract

본 개시는 비디오 처리를 위한 컴퓨터 구현된 방법을 제공한다. 방법은 시퀀스 파라미터 세트(SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수를 도출하는 단계; 참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리를 할당하는 단계; 및 할당된 메모리를 사용하여 현재 픽처 또는 현재 슬라이스를 처리하는 단계를 포함한다.

Description

비디오 코딩에서 참조 픽처 처리를 위한 방법
관련 출원에 대한 상호 참조
본 개시는 2020년 5월 21일자로 출원된 미국 가출원 제63/028,509호에 대한 우선권의 이익을 주장하며, 이는 그 전체가 본원에 참조로 통합된다.
기술분야
본 개시는 일반적으로 비디오 처리에 관한 것이고, 더욱 구체적으로 참조 픽처를 처리하기 위한 방법, 장치 및 비일시적 컴퓨터 판독가능 저장 매체에 관한 것이다.
비디오는 시각적 정보를 캡처하는 정적 픽처(또는 "프레임")의 세트이다. 저장 메모리 및 송신 대역폭을 감소시키기 위해, 비디오는 저장 또는 송신 이전에 압축되고, 디스플레이 전에 압축 해제될 수 있다. 압축 프로세스는 보통 인코딩으로 지칭되고, 압축 해제 프로세스는 보통 디코딩으로 지칭된다. 가장 일반적으로 예측, 변환, 양자화, 엔트로피 코딩(entropy coding) 및 인-루프 필터링(in-loop filtering)에 기초하는, 표준화된 비디오 코딩 기술을 사용하는 다양한 비디오 코딩 포맷이 있다. 특정 비디오 코딩 포맷을 지정하는 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC/H.265) 표준, 다용도 비디오 코딩(Versatile Video Coding)(VVC/H.266) 표준, 및 AVS 표준과 같은 비디오 코딩 표준은 표준화 기구에서 개발한다. 점점 더 많은 진보된 비디오 코딩 기술이 비디오 표준에 채택되고 있고, 새로운 비디오 코딩 표준의 코딩 효율은 점점 더 높아지고 있다.
본 개시의 실시예는 비디오 처리를 위한 방법을 제공한다. 일부 실시예에서, 방법은: 시퀀스 파라미터 세트(sequence parameter set, SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수를 도출하는 단계; 참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리를 할당하는 단계; 및 할당된 메모리를 사용하여 현재 픽처 또는 현재 슬라이스를 처리하는 단계를 포함한다.
일부 실시예에서, 방법은: 제2 플래그 및 제1 인덱스가 픽처 파라미터 세트(picture parameter set, PPS)를 참조하는 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 PPS에서 시그널링하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제1 인덱스 및 제2 인덱스가 시그널링되는지를 결정하는 단계 - 제2 인덱스는 SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제2 인덱스가 시그널링되지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서: 참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계; 제1 인덱스가 시그널링되지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서: 참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및 제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계; 제1 인덱스 및 제2 인덱스를 기초로 참조 픽처 목록을 도출하는 단계; 및 참조 픽처 목록을 기초로 현재 픽처를 인코딩하는 단계를 포함한다.
일부 실시예에서, 방법은: 비디오 비트스트림을 수신하는 단계; 제2 플래그 및 제1 인덱스가 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내는 제1 플래그의 값을 결정하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는, SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제1 인덱스 및 제2 인덱스가 존재하는지를 결정하는 단계 - 제2 인덱스는, SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제2 인덱스가 존재하지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서: 참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계; 제1 인덱스가 존재하지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서: 참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및 제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계; 및 제1 인덱스 및 제2 인덱스를 기초로 현재 픽처를 디코딩하는 단계를 포함한다.
일부 실시예에서, 방법은: 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 슬라이스 헤더에서 시그널링하는 단계 - 활성 참조 인덱스 개수는 현재 슬라이스를 인코딩하는 데 사용되는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ; 제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는 것을 나타내는 것에 응답하여, 참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 단계; 및 참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 단계를 포함한다.
일부 실시예에서, 방법은: 슬라이스 헤더 및 픽처 헤더 신택스를 포함하는 비디오 비트스트림을 수신하는 단계; 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내는, 슬라이스 헤더에서 시그널링된 제1 플래그의 값을 결정하는 단계 - 활성 참조 인덱스 개수는 현재 슬라이스를 디코딩하는 데 사용되는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ; 제1 플래그가 활성 참조 인덱스 개수가 존재하는 것을 나타내는 것에 응답하여, 참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 단계; 및 참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 단계를 포함한다.
일부 실시예에서, 방법은: 슬라이스 레벨에서 함께 배치된 픽처(collocated picture)의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 단계 - 함께 배치된 픽처는 현재 픽처의 모든 비-I 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및 함께 배치된 픽처를 기초로 현재 픽처를 처리하는 단계를 포함하고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용된다.
본 개시의 실시예는 비디오 처리를 수행하기 위한 장치를 제공한다. 일부 실시예에서, 장치는: 명령어를 저장하도록 구성된 메모리; 및 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금: 시퀀스 파라미터 세트(SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수를 도출하는 것; 참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리를 할당하는 것; 및 할당된 메모리를 사용하여 현재 픽처 또는 현재 슬라이스를 처리하는 것을 수행하게 하도록 구성된다.
일부 실시예에서, 장치는: 명령어를 저장하도록 구성된 메모리; 및 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금: 제2 플래그 및 제1 인덱스가 픽처 파라미터 세트(PPS)를 참조하는 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 PPS에서 시그널링하는 것 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제1 인덱스 및 제2 인덱스가 시그널링되는지를 결정하는 것 - 제2 인덱스는 SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제2 인덱스가 시그널링되지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 것으로서: 참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 것을 포함하는, 제2 인덱스의 값을 결정하는 것; 제1 인덱스가 시그널링되지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 것으로서: 참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 것; 및 제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 것을 포함하는, 제1 인덱스의 값을 결정하는 것; 제1 인덱스 및 제2 인덱스를 기초로 참조 픽처 목록을 도출하는 것; 및 참조 픽처 목록을 기초로 현재 픽처를 인코딩하는 것을 수행하게 하도록 구성된다.
일부 실시예에서, 장치는: 명령어를 저장하도록 구성된 메모리; 및 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금: 비디오 비트스트림을 수신하는 것; 제2 플래그 및 제1 인덱스가 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내는 제1 플래그의 값을 결정하는 것 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는, SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제1 인덱스 및 제2 인덱스가 존재하는지를 결정하는 것 - 제2 인덱스는, SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제2 인덱스가 존재하지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 것으로서: 참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 것을 포함하는, 제2 인덱스의 값을 결정하는 것; 제1 인덱스가 존재하지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 것으로서: 참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 것; 및 제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 것을 포함하는, 제1 인덱스의 값을 결정하는 것; 및 제1 인덱스 및 제2 인덱스를 기초로 현재 픽처를 디코딩하는 것을 수행하게 하도록 구성된다.
일부 실시예에서, 장치는: 명령어를 저장하도록 구성된 메모리; 및 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금: 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 슬라이스 헤더에서 시그널링하는 것 - 활성 참조 인덱스 개수는 현재 슬라이스를 인코딩하는 데 사용되는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ; 제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는 것을 나타내는 것에 응답하여, 참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 것; 및 참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 것을 수행하게 하도록 구성된다.
일부 실시예에서, 장치는: 명령어를 저장하도록 구성된 메모리; 및 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금: 슬라이스 헤더 및 픽처 헤더 신택스를 포함하는 비디오 비트스트림을 수신하는 것; 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내는, 슬라이스 헤더에서 시그널링된 제1 플래그의 값을 결정하는 것 - 활성 참조 인덱스 개수는 현재 슬라이스를 디코딩하는 데 사용되는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ; 제1 플래그가 활성 참조 인덱스 개수가 존재하는 것을 나타내는 것에 응답하여, 참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 것; 및 참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 것을 수행하게 하도록 구성된다.
일부 실시예에서, 장치는: 명령어를 저장하도록 구성된 메모리; 및 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금: 슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 것 - 함께 배치된 픽처는 현재 픽처의 모든 비-I 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및 함께 배치된 픽처를 기초로 현재 픽처를 처리하는 것을 수행하게 하도록 구성되고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용된다.
본 개시의 실시예는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 제공하고, 명령어의 세트는 장치의 하나 이상의 프로세서에 의해 실행 가능하여 장치로 하여금 비디오 처리를 수행하기 위한 방법을 개시하게 한다. 일부 실시예에서, 방법은: 시퀀스 파라미터 세트(SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수를 도출하는 단계; 참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리를 할당하는 단계; 및 할당된 메모리를 사용하여 현재 픽처 또는 현재 슬라이스를 처리하는 단계를 포함한다.
일부 실시예에서, 방법은: 제2 플래그 및 제1 인덱스가 픽처 파라미터 세트(PPS)를 참조하는 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 PPS에서 시그널링하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제1 인덱스 및 제2 인덱스가 시그널링되는지를 결정하는 단계 - 제2 인덱스는 SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제2 인덱스가 시그널링되지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서: 참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계; 제1 인덱스가 시그널링되지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서: 참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및 제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계; 제1 인덱스 및 제2 인덱스를 기초로 참조 픽처 목록을 도출하는 단계; 및 참조 픽처 목록을 기초로 현재 픽처를 인코딩하는 단계를 포함한다.
일부 실시예에서, 방법은: 비디오 비트스트림을 수신하는 단계; 제2 플래그 및 제1 인덱스가 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내는 제1 플래그의 값을 결정하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제1 인덱스 및 제2 인덱스가 존재하는지를 결정하는 단계 - 제2 인덱스는 SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ; 제2 인덱스가 존재하지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서: 참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계; 제1 인덱스가 존재하지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서: 참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및 제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계; 및 제1 인덱스 및 제2 인덱스를 기초로 현재 픽처를 디코딩하는 단계를 포함한다.
일부 실시예에서, 방법은: 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 슬라이스 헤더에서 시그널링하는 단계 - 활성 참조 인덱스 개수는 현재 슬라이스를 인코딩하는 데 사용되는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ; 제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는 것을 나타내는 것에 응답하여, 참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 단계; 및 참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 단계를 포함한다.
일부 실시예에서, 방법은: 슬라이스 헤더 및 픽처 헤더 신택스를 포함하는 비디오 비트스트림을 수신하는 단계; 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내는, 슬라이스 헤더에서 시그널링된 제1 플래그의 값을 결정하는 단계 - 활성 참조 인덱스 개수는 현재 슬라이스를 디코딩하는 데 사용되는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ; 제1 플래그가 활성 참조 인덱스 개수가 존재하는 것을 나타내는 것에 응답하여, 참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 단계; 및 참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 단계를 포함한다.
일부 실시예에서, 방법은: 슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 단계 - 함께 배치된 픽처는 현재 픽처의 모든 비-I 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및 함께 배치된 픽처를 기초로 현재 픽처를 처리하는 단계를 포함하고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용된다.
본 개시의 실시예 및 다양한 양상은 다음의 상세한 설명 및 첨부 도면에 예시된다. 도면에 도시된 다양한 피처(feature)는 축척대로 도시된 것은 아니다.
도 1은 본 개시의 일부 실시예에 따른, 예시적인 비디오 시퀀스의 구조를 예시하는 개략도이다.
도 2a는 본 개시의 실시예와 일치하는, 하이브리드 비디오 코딩 시스템의 예시적인 인코딩 프로세스를 예시하는 개략도이다.
도 2b는 본 개시의 실시예와 일치하는, 하이브리드 비디오 코딩 시스템의 다른 예시적인 인코딩 프로세스를 예시하는 개략도이다.
도 3a는 본 개시의 실시예와 일치하는, 하이브리드 비디오 코딩 시스템의 예시적인 디코딩 프로세스를 예시하는 개략도이다.
도 3b는 본 개시의 실시예와 일치하는, 하이브리드 비디오 코딩 시스템의 다른 예시적인 디코딩 프로세스를 예시하는 개략도이다.
도 4는 본 개시의 일부 실시예에 따른, 비디오를 인코딩 또는 디코딩하기 위한 예시적인 장치의 블록도이다.
도 5a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다.
도 5b는 본 개시의 일부 실시예에 따른, 변수 FullPocLt[ i ][ j ]의 도출을 포함하는 예시적인 의사 코드를 도시한다.
도 6a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다.
도 6b는 본 개시의 일부 실시예에 따른, 변수 NumLtrpEntries[ listIdx ][ rplsIdx ]에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다.
도 6c는 본 개시의 일부 실시예에 따른, 변수 AbsDeltaPocSt[ listIdx ][rplsIdx ][ i ]에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다.
도 6d는 본 개시의 일부 실시예에 따른, 변수 DeltaPocValSt[ listIdx ][ rplsIdx ]에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다.
도 7은 본 개시의 일부 실시예에 따른, 시퀀스 파라미터 세트에서 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다.
도 8은 본 개시의 일부 실시예에 따른, 픽처 파라미터 세트에서 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다.
도 9a는 본 개시의 일부 실시예에 따른, 픽처 헤더 구조에서 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다.
도 9b는 본 개시의 일부 실시예에 따른, 변수 MaxNumSubblockMergeCand에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다.
도 10a는 본 개시의 일부 실시예에 따른, 슬라이스 헤더에서 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다.
도 10b는 본 개시의 일부 실시예에 따른, 변수 NumRefIdxActive[ i ]에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다.
도 11a는 본 개시의 일부 실시예에 따른, PH 신택스 구조에서 플래그를 시그널링하기 위한 예시적인 비디오 인코딩 방법의 흐름도를 도시한다.
도 11b는 본 개시의 일부 실시예에 따른, PH 신택스 구조에서 플래그를 시그널링하기 위한 예시적인 비디오 디코딩 방법의 흐름도를 도시한다.
도 11c는 본 개시의 일부 실시예에 따른, ph_collocated_from_l0_flag 및 ph_mvd_l1_zero_flag의 업데이트된 시그널링을 포함하는 예시적인 신택스를 도시한다.
도 12a는 본 개시의 일부 실시예에 따른, 픽처 순서 카운트를 사용하여 함께 배치된 픽처를 나타내기 위한 예시적인 비디오 인코딩 방법의 흐름도를 도시한다.
도 12b는 본 개시의 일부 실시예에 따른, 픽처 순서 카운트를 사용하여 함께 배치된 픽처를 나타내기 위한 예시적인 비디오 인코딩 방법의 흐름도를 도시한다.
도 12c는 본 개시의 일부 실시예에 따른, 함께 배치된 픽처를 나타내기 위한 예시적인 비디오 인코딩 방법의 다른 흐름도를 도시한다.
도 12d는 본 개시의 일부 실시예에 따른, 픽처 순서 카운트를 사용하여 함께 배치된 픽처를 나타내기 위한 예시적인 비디오 디코딩 방법의 흐름도를 도시한다.
도 12e는 본 개시의 일부 실시예에 따른, 픽처 순서 카운트를 사용하여 함께 배치된 픽처를 나타내기 위한 예시적인 비디오 디코딩 방법의 흐름도를 도시한다.
도 12f는 본 개시의 일부 실시예에 따른, 픽처 파라미터 세트에서 업데이트된 참조 픽처 목록을 포함하는 예시적인 신택스를 도시한다.
도 12g는 본 개시의 일부 실시예에 따른, 업데이트된 슬라이스 헤더를 포함하는 예시적인 신택스를 도시한다.
도 12h는 본 개시의 일부 실시예에 따른, AbsDeltaPocStCol의 도출을 포함하는 예시적인 의사 코드를 도시한다.
도 12i는 본 개시의 일부 실시예에 따른, DeltaPocValStCol의 도출을 포함하는 예시적인 의사 코드를 도시한다.
도 12j는 본 개시의 일부 실시예에 따른, 디코딩 방법에 사용되는 함께 배치된 픽처를 도출하기 위한 예시적인 의사 코드를 도시한다.
도 13a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에서 활성 엔트리의 개수를 사용하여 SH에서 함께 배치된 픽처의 인덱스를 추론하기 위한 예시적인 비디오 인코딩 방법의 흐름도를 도시한다.
도 13b는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에서 활성 엔트리의 개수를 사용하여 SH에서 함께 배치된 픽처의 인덱스를 추론하기 위한 예시적인 비디오 디코딩 방법의 흐름도를 도시한다.
도 13c는 본 개시의 일부 실시예에 따른, 업데이트된 신택스 요소 sh_collocated_ref_idx에 대한 예시적인 의미를 도시한다.
도 14a는 본 개시의 일부 실시예에 따른, 디코더가 메모리를 할당하기 위한 예시적인 비디오 처리 방법의 흐름도를 도시한다.
도 14b는 본 개시의 일부 실시예에 따른, 메모리를 할당하기 위한 예시적인 의미를 도시한다.
도 15a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에서 인덱스를 추론하기 위한 예시적인 비디오 인코딩 방법의 흐름도를 도시한다.
도 15b는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에서 인덱스를 추론하기 위한 예시적인 비디오 디코딩 방법의 흐름도를 도시한다.
도 15c는 본 개시의 일부 실시예에 따른, 업데이트된 변수 rpl_idx[ i ]에 대한 예시적인 의미를 도시한다.
도 16a는 본 개시의 일부 실시예에 따른, 슬라이스 헤더에서 활성 참조 인덱스의 오버라이드 개수가 존재하는지를 나타내기 위한 예시적인 비디오 인코딩 방법의 흐름도를 도시한다.
도 16b는 본 개시의 일부 실시예에 따른, 슬라이스 헤더에서 활성 참조 인덱스의 오버라이드 개수가 존재하는지를 나타내기 위한 예시적인 비디오 디코딩 방법의 흐름도를 도시한다.
도 16c는 본 개시의 일부 실시예에 따른, 업데이트된 신택스 요소 sh_num_ref_idx_active_override_flag에 대한 예시적인 의미를 도시한다.
도 17a는 본 개시의 일부 실시예에 따른, I 슬라이스에 대해 SH에서 함께 배치된 픽처의 인덱스를 정의하기 위한 예시적인 비디오 처리 방법의 흐름도를 도시한다.
도 17b는 본 개시의 일부 실시예에 따른, 신택스 요소 sh_collocated_ref_idx에 대한 업데이트된 비트스트림 적합성 제약에 대한 예시적인 의미를 도시한다.
이제 예시적인 실시예에 대한 참조가 상세히 이루어질 것이며, 이의 예는 첨부 도면에 예시된다. 다음 설명은 달리 표시되지 않는 한 상이한 도면에서 동일한 번호가 동일하거나 유사한 요소를 나타내는 첨부 도면을 참조한다. 예시적인 실시예의 다음 설명에서 제시된 구현은 본 개시와 일치하는 모든 구현을 나타내는 것은 아니다. 그 대신에, 이들은 첨부된 청구범위에서 인용된 본 발명에 관련된 양상과 일치하는 장치 및 방법의 예시일 뿐이다. 본 발명에 관련된 특정 양상은 아래에서 더 상세히 설명된다. 참조로 통합된 용어 및/또는 정의와 상충하는 경우, 본원에 제공된 용어 및 정의가 우선한다.
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보다 상당히 더 높은 코딩 성능을 달성하였다.
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)에서 "매크로블록"으로 지칭될 수 있거나, 일부 다른 비디오 코딩 표준(예컨대, H.265/HEVC 또는 H.266/VVC)에서 "코딩 트리 유닛"("CTU")으로 지칭될 수 있다. 기본 처리 유닛은 128×128, 64×64, 32×32, 16×16, 4×8, 16×32와 같은 픽처에서의 가변적인 크기, 또는 픽셀의 어느 임의의 형태 및 크기를 가질 수 있다. 기본 처리 유닛의 크기 및 형태는 기본 처리 유닛에서 유지될 세부사항의 레벨 및 코딩 효율에 기초하여 픽처에 대해 선택될 수 있다.
기본 처리 유닛은 컴퓨터 메모리에 (예컨대, 비디오 프레임 버퍼에) 저장된 상이한 타입의 비디오 데이터의 그룹을 포함할 수 있는 논리적 유닛일 수 있다. 예컨대, 색상 픽처의 기본 처리 유닛은 무색의 밝기 정보를 나타내는 루마 성분(Y), 색상 정보를 나타내는 하나 이상의 크로마 성분(예컨대, Cb 및 Cr) 및 연관된 신택스 요소를 포함할 수 있고, 여기서 루마 및 크로마 성분은 기본 처리 유닛과 동일한 크기를 가질 수 있다. 루마 및 크로마 성분은 일부 비디오 코딩 표준(예컨대, H.265/HEVC 또는 H.266/VVC)에서 "코딩 트리 블록"("CTB")으로 지칭될 수 있다. 기본 처리 유닛에 대해 수행된 임의의 동작은 그의 루마 및 크로마 성분의 각각에 대해 반복적으로 수행될 수 있다.
비디오 코딩은 다수의 동작 스테이지를 가지며, 이의 예는 도 2a-2b 및 3a-3b에 도시된다. 각각의 스테이지에 대해, 기본 처리 유닛의 크기는 처리하기에 여전히 너무 클 수 있으며, 따라서 본 개시에서 "기본 처리 서브-유닛"으로 지칭되는 세그먼트로 더 분할될 수 있다. 일부 실시예에서, 기본 처리 서브-유닛은 일부 비디오 코딩 표준(예컨대, MPEG 패밀리, H.261, H.263 또는 H.264/AVC)에서 "블록"으로 지칭될 수 있거나, 일부 다른 비디오 코딩 표준(예컨대, H.265/HEVC 또는 H.266/VVC)에서 "코딩 유닛"("CU")으로 지칭될 수 있다. 기본 처리 서브-유닛은 기본 처리 유닛과 동일하거나 더 작은 크기를 가질 수 있다. 기본 처리 유닛과 유사하게, 기본 처리 서브-유닛은 또한, 논리적 유닛이며, 이는 컴퓨터 메모리에 (예컨대, 비디오 프레임 버퍼에) 저장된 상이한 타입의 비디오 데이터(예컨대, Y, Cb, Cr 및 연관된 신택스 요소)의 그룹을 포함할 수 있다. 기본 처리 서브-유닛에 대해 수행된 임의의 동작은 그의 루마 및 크로마 성분의 각각에 대해 반복적으로 수행될 수 있다. 이러한 분할은 처리 요구에 의존하는 추가적인 레벨로 수행될 수 있다는 것이 유의되어야 한다. 또한, 상이한 스테이지가 상이한 체계를 사용하여 기본 처리 유닛을 분할할 수 있다는 것이 유의되어야 한다.
예컨대, 모드 결정 스테이지(그의 예가 도 2b에 도시됨)에서, 인코더는 기본 처리 유닛에 대해 어떤 예측 모드(예컨대, 인트라-픽처 예측 또는 인터-픽처 예측)를 사용할지를 결정할 수 있으며, 기본 처리 유닛은 이러한 결정을 하기엔 너무 클 수 있다. 인코더는 기본 처리 유닛을 다수의 기본 처리 서브-유닛(예컨대, H.265/HEVC 또는 H.266/VVC에서와 같이 CU)으로 분할할 수 있으며, 각각의 개별적인 기본 처리 서브-유닛에 대해 예측 타입을 결정할 수 있다.
다른 예로서, 예측 스테이지(그의 예가 도 2a-2b에 도시됨)에서, 인코더는 기본 처리 서브-유닛(예컨대, CU)의 레벨에서 예측 동작을 수행할 수 있다. 하지만, 일부 경우에서, 기본 처리 서브-유닛은 처리하기에 여전히 너무 클 수 있다. 인코더는 기본 처리 서브-유닛을 예측 동작이 수행될 수 있는 레벨의 더 작은 세그먼트(예컨대, H.265/HEVC 또는 H.266/VVC에서 "예측 블록" 또는 "PB"로 지칭됨)로 더 분할할 수 있다.
다른 예로서, 변환 스테이지(그의 예가 도 2a 및 도 2b에 도시됨)에서, 인코더는 잔차 기본 처리 서브-유닛(예컨대, 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)는 그의 경계가 구조(110) 내에서 실선으로 도시된 세 개의 영역(114, 116 및 118)으로 분할된다. 영역(114)은 네 개의 기본 처리 유닛을 포함한다. 영역(116 및 118)의 각각은 여섯 개의 기본 처리 유닛을 포함한다. 도 1에서 구조(110)의 기본 처리 유닛, 기본 처리 서브-유닛 및 영역은 단지 예이며, 본 개시는 이의 실시예를 제한하지 않는다는 것이 유의되어야 한다.
도 2a는 본 개시의 실시예와 일치하는, 예시적인 인코딩 프로세스(200A)의 개략도를 예시한다. 예컨대, 인코딩 프로세스(200A)는 인코더에 의해 수행될 수 있다. 도 2a에 도시된 바와 같이, 인코더는 프로세스(200A)에 따라 비디오 시퀀스(202)를 비디오 비트스트림(228)으로 인코딩할 수 있다. 도 1에서의 비디오 시퀀스(100)와 유사하게, 비디오 시퀀스(202)는 시간적인 순서로 배열된 픽처("원본 픽처"로 지칭됨)의 세트를 포함할 수 있다. 도 1에서의 구조(110)와 유사하게, 비디오 시퀀스(202)의 각각의 원본 픽처는 인코더에 의해 기본 처리 유닛, 기본 처리 서브-유닛 또는 처리를 위한 영역으로 분할될 수 있다. 일부 실시예에서, 인코더는 비디오 시퀀스(202)의 각각의 원본 픽처에 대한 기본 처리 유닛의 레벨에서 프로세스(200A)를 수행할 수 있다. 예컨대, 인코더는 프로세스(200A)를 반복 방식으로 수행할 수 있으며, 여기서 인코더는 프로세스(200A)의 하나의 반복으로 기본 처리 유닛을 인코딩할 수 있다. 일부 실시예에서, 인코더는 비디오 시퀀스(202)의 각각의 원본 픽처의 영역(예컨대, 영역(114-118))에 대해 프로세스(200A)를 병렬로 수행할 수 있다.
도 2a에서, 인코더는 예측 데이터(206) 및 예측된 BPU(208)를 생성하기 위해 비디오 시퀀스(202)의 원본 픽처의 기본 처리 유닛("원본 BPU"로 지칭됨)을 예측 스테이지(204)로 공급할 수 있다. 인코더는 잔차 BPU(210)를 생성하기 위해 원본 BPU로부터 예측된 BPU(208)를 감산할 수 있다. 인코더는 양자화된 변환 계수(216)를 생성하기 위해, 잔차 BPU(210)를 변환 스테이지(212) 및 양자화 스테이지(214)에 공급할 수 있다. 인코더는 비디오 비트스트림(228)을 생성하기 위해, 예측 데이터(206) 및 양자화된 변환 계수(216)를 이진 코딩 스테이지(226)에 공급할 수 있다. 구성요소(202, 204, 206, 208, 210, 212, 214, 216, 226 및 228)는 "순방향 경로(forward path)"로서 지칭될 수 있다. 프로세스(200A) 동안, 양자화 스테이지(214) 이후에, 인코더는 재구성된 잔차 BPU(222)를 생성하기 위해, 양자화된 변환 계수(216)를 역양자화 스테이지(218) 및 역변환 스테이지(220)에 공급할 수 있다. 인코더는 프로세스(200A)의 다음 반복을 위해 예측 스테이지(204)에서 사용되는 예측 참조(224)를 생성하기 위해, 재구성된 잔차 BPU(222)를 예측된 BPU(208)에 더할 수 있다. 프로세스(200A)의 구성요소(218, 220, 222 및 224)는 "재구성 경로"로 지칭될 수 있다. 재구성 경로는 인코더 및 디코더 둘 모두가 예측을 위해 동일한 참조 데이터를 사용하는 것을 보장하도록 사용될 수 있다.
인코더는 (순방향 경로에서) 원본 픽처의 각각의 원본 BPU를 인코딩하고, (재구성 경로에서) 원본 픽처의 다음 원본 BPU를 인코딩하기 위한 예측된 참조(224)를 생성하기 위해 프로세스(200A)를 반복적으로 수행할 수 있다. 원본 픽처의 모든 원본 BPU를 인코딩한 이후에, 인코더는 비디오 시퀀스(202)에서 다음 픽처를 인코딩하도록 진행할 수 있다.
프로세스(200A)를 참조하면, 인코더는 비디오 캡처링 디바이스(예컨대, 카메라)에 의해 생성되는 비디오 시퀀스(202)를 수신할 수 있다. 본원에서 사용된 "수신하다"라는 용어는 수신, 입력, 취득, 리트리브(retrieve), 획득, 판독, 액세스 또는 데이터를 입력하기 위한 임의의 방식에서의 임의의 동작을 지칭할 수 있다.
현재 반복에서의 예측 스테이지(204)에서, 인코더는 원본 BPU 및 예측 참조(224)를 수신할 수 있고, 예측 데이터(206) 및 예측된 BPU(208)를 생성하기 위해 예측 동작을 수행할 수 있다. 예측 참조(224)는 프로세스(200A)의 이전의 반복의 재구성 경로로부터 생성될 수 있다. 예측 스테이지(204)의 목적은 예측 데이터(206) 및 예측 참조(224)로부터 원본 BPU를 예측된 BPU(208)로서 재구성하기 위해 사용될 수 있는 예측 데이터(206)를 추출함으로써 정보 리던던시(information redundancy)를 감소시키는 것이다.
이상적으로, 예측된 BPU(208)는 원본 BPU와 동일할 수 있다. 하지만, 비-이상적 예측 및 재구성 동작에 기인하여, 예측된 BPU(208)는 일반적으로 원본 BPU와는 약간 상이하다. 이러한 차이를 기록하기 위해, 예측된 BPU(208)를 생성한 이후에, 인코더는 잔차 BPU(210)를 생성하기 위해, 원본 BPU로부터 이를 감산할 수 있다. 예컨대, 인코더는 원본 BPU의 대응하는 픽셀의 값으로부터 예측된 BPU(208)의 픽셀의 값(예컨대, 그레이스케일 값 또는 RGB 값)을 감산할 수 있다. 잔차 BPU(210)의 각각의 픽셀은 원본 BPU 및 예측된 BPU(208)의 대응하는 픽셀 사이에서 이러한 감산의 결과로서 잔차 값을 가질 수 있다. 원본 BPU와 비교하여, 예측 데이터(206) 및 잔차 BPU(210)는 더 적은 수의 비트를 가질 수 있지만, 이들은 현저한 품질 저하 없이 원본 BPU를 재구성하는데 사용될 수 있다. 따라서, 원본 BPU가 압축된다.
잔차 BPU(210)를 더 압축하기 위해, 변환 스테이지(212)에서, 인코더는 이를 2차원 "기본 패턴" - 각각의 기본 패턴은 "변환 계수와 연관됨 - 으로 분해함으로써 잔차 BPU(210)의 공간 리던던시를 저감할 수 있다. 기본 패턴은 동일한 크기(예컨대, 잔차 BPU(210)의 크기)를 가질 수 있다. 각각의 기본 패턴은 잔차 BPU(210)의 변동 주파수(variation frequency)(예컨대, 밝기 변동의 주파수) 성분을 나타낼 수 있다. 기본 패턴 중 어느 것도 임의의 다른 기본 패턴의 임의의 조합(예컨대, 선형 조합)으로부터 재생성될 수 없다. 다시 말해, 분해는 잔차 BPU(210)의 변동을 주파수 도메인으로 분해할 수 있다. 이러한 분해는 함수의 이산 푸리에 변환과 유사하며, 여기서 기본 패턴은 이산 푸리에 변환의 기본 함수(예컨대, 삼각 함수)와 유사하고 변환 계수는 기본 함수와 연관된 계수와 유사하다.
상이한 변환 알고리즘이 상이한 기본 패턴을 사용할 수 있다. 다양한 변환 알고리즘은 예컨대, 이산 코사인 변환, 이산 사인 변환 등과 같은 변환 스테이지(212)에서 사용될 수 있다. 변환 스테이지(212)에서의 변환은 역으로 이루어질 수 있다(invertible). 즉, 인코더는 변환의 역동작("역변환"으로 지칭됨)에 의해 잔차 BPU(210)를 복원할 수 있다. 예컨대, 잔차 BPU(210)의 픽셀을 복원하기 위해, 역변환은 기본 패턴의 대응하는 픽셀의 값을 각각의 연관된 계수를 곱하고, 그 결과 값을 더하여 가중합을 생성할 수 있다. 비디오 코딩 표준에 대해, 인코더 및 디코더 둘 모두는 동일한 변환 알고리즘(따라서, 동일한 기본 패턴)을 사용할 수 있다. 따라서, 인코더는 변환 계수만을 기록할 수 있고, 이로부터 디코더는 인코더로부터 기본 패턴을 수신하지 않으면서, 잔차 BPU(210)를 재구성할 수 있다. 잔차 BPU(210)와 비교하여, 변환 계수는 더 적은 수의 비트를 가질 수 있지만, 이들은 현저한 품질 저하 없이 잔차 BPU(210)를 재구성하는데 사용될 수 있다. 따라서, 잔차 BPU(210)가 더 압축된다.
인코더는 양자화 스테이지(214)에서 변환 계수를 더 압축할 수 있다. 변환 프로세스에서, 상이한 기본 패턴이 상이한 변동 주파수(예컨대, 밝기 변동 주파수)를 나타낼 수 있다. 인간의 눈은 일반적으로 낮은-주파수 변동을 더 잘 인식하기 때문에, 인코더는 디코딩에서 현저한 품질 저하를 초래하지 않으면서 높은-주파수 변동의 정보를 무시할 수 있다. 예컨대, 양자화 스테이지(214)에서, 인코더는 각각의 변환 계수를 정수 값("양자화 스케일 인자"로 지칭됨)으로 나누고, 몫을 그의 가장 가까운 정수로 반올림함으로써, 양자화된 변환 계수(216)를 생성할 수 있다. 이러한 동작 이후에, 고주파수 기본 패턴의 일부 변환 계수는 0으로 변환될 수 있고, 저주파수 기본 패턴의 변환 계수는 더 작은 정수로 변환될 수 있다. 인코더는 0-값 양자화된 변환 계수(216)를 무시할 수 있으며, 이에 의해 변환 계수는 더 압축된다. 또한, 양자화 프로세스는 역으로 이루어질 수 있고, 여기서 양자화된 변환 계수(216)는 양자화의 역동작("역양자화"로 지칭됨)에서 변환 계수로 재구성될 수 있다.
인코더가 반올림 동작에서 이러한 나눗셈의 나머지를 무시하기 때문에, 양자화 스테이지(214)는 손실이 있을 수 있다. 전형적으로, 양자화 스테이지(214)는 프로세스(200A)의 대부분의 정보 손실에 기여할 수 있다. 정보 손실이 크면 클수록, 양자화된 변환 계수(216)가 더 적은 비트를 필요로 할 수 있다. 상이한 레벨의 정보 손실을 획득하기 위해, 인코더는 양자화 신택스 요소의 상이한 값 또는 양자화 프로세스의 임의의 다른 신택스 요소를 사용할 수 있다.
이진 코딩 스테이지(226)에서, 인코더는 예컨대, 엔트로피 코딩, 가변 길이 코딩, 산술 코딩, 허프만 코딩(Huffman coding), 컨텍스트-적응적 이진 산술 코딩(context-adaptive binary arithmetic coding) 또는 임의의 다른 무손실 또는 손실 압축 알고리즘과 같은 이진 코딩 기술을 사용하여 예측 데이터(206) 및 양자화된 변환 계수(216)를 인코딩할 수 있다. 일부 실시예에서, 예측 데이터(206) 및 양자화된 변환 계수(216) 이외에, 인코더는 예컨대, 예측 스테이지(204)에서 사용되는 예측 모드, 예측 동작의 신택스 요소, 변환 스테이지(212)에서의 변환 타입, 양자화 프로세스의 신택스 요소(예컨대, 양자화 신택스 요소), 인코더 제어 신택스 요소(예컨대, 비트레이트 제어 신택스 요소) 등과 같은 다른 정보를 이진 코딩 스테이지(226)에서 인코딩할 수 있다. 인코더는 비디오 비트스트림(228)을 생성하기 위해 이진 코딩 스테이지(226)의 출력 데이터를 사용할 수 있다. 일부 실시예에서, 비디오 비트스트림(228)은 네트워크 송신을 위해 더 패킷화될 수 있다.
프로세스(200A)의 재구성 경로를 참고하면, 역양자화 스테이지(218)에서, 인코더는 재구성된 변환 계수를 생성하기 위해 양자화된 변환 계수(216)에 역양자화를 수행할 수 있다. 역변환 스테이지(220)에서, 인코더는 재구성된 변환 계수에 기초하여, 재구성된 잔차 BPU(222)를 생성할 수 있다. 인코더는 프로세스(200A)의 다음 반복에서 사용될 예측 참조(224)를 생성하기 위해, 재구성된 잔차 BPU(222)를 예측된 BPU(208)에 더할 수 있다.
프로세스(200A)의 다른 변형은 비디오 시퀀스(202)를 인코딩하기 위해 사용될 수 있다는 것이 유의되어야 한다. 일부 실시예에서, 프로세스(200A)의 스테이지는 인코더에 의해 상이한 순서로 수행될 수 있다. 일부 실시예에서, 프로세스(200A)의 하나 이상의 스테이지는 단일 스테이지로 결합될 수 있다. 일부 실시예에서, 프로세스(200A)의 단일 스테이지는 다수의 스테이지로 분할될 수 있다. 예컨대, 변환 스테이지(212) 및 양자화 스테이지(214)가 단일 스테이지로 결합될 수 있다. 일부 실시예에서, 프로세스(200A)는 추가적인 스테이지를 포함할 수 있다. 일부 실시예에서, 프로세스(200A)는 도 2a에서의 하나 이상의 스테이지를 생략할 수 있다.
도 2b는 본 개시의 실시예와 일치하는, 다른 예시적인 인코딩 프로세스(200B)의 개략도를 예시한다. 프로세스(200B)는 프로세스(200A)로부터 수정될 수 있다. 예컨대, 프로세스(200B)는 하이브리드 비디오 인코딩 표준(예컨대, H.26x 시리즈)을 따르는 인코더에 의해 사용될 수 있다. 프로세스(200A)에 비해, 프로세스(200B)의 순방향 경로는 모드 결정 스테이지(230)를 추가적으로 포함하고, 예측 스테이지(204)를 공간 예측 스테이지(2042) 및 시간 예측 스테이지(2044)로 분할한다. 프로세스(200B)의 재구성 경로는 루프 필터 스테이지(232) 및 버퍼(234)를 추가적으로 포함한다.
일반적으로, 예측 기술은 두 개의 타입: 공간 예측 및 시간 예측으로 카테고리화될 수 있다. 공간 예측(예컨대, 인트라-픽처 예측 또는 "인트라 예측")은 현재 BPU를 예측하기 위해, 동일한 픽처에서 하나 이상의 이미 코딩된 이웃하는 BPU로부터의 픽셀을 사용할 수 있다. 즉, 공간 예측에서의 예측 참조(224)는 이웃하는 BPU를 포함할 수 있다. 공간 예측은 픽처의 내재적인 공간 리던던시를 감소시킬 수 있다. 시간 예측(예컨대, 인터-픽처 예측 또는 "인터 예측")은 현재 BPU를 예측하기 위해 하나 이상의 이미 코딩된 픽처로부터의 영역을 사용할 수 있다. 즉, 시간 예측에서의 예측 참조(224)는 코딩된 픽처를 포함할 수 있다. 시간 예측은 픽처의 내재적인 시간 리던던시를 저감할 수 있다.
프로세스(200B)를 참조하면, 순방향 경로에서, 인코더는 공간 예측 스테이지(2042) 및 시간 예측 스테이지(2044)에서 예측 동작을 수행한다. 예컨대, 공간 예측 스테이지(2042)에서, 인코더는 인트라 예측을 수행할 수 있다. 인코딩되는 픽처의 원본 BPU에 대해, 예측 참조(224)는 동일한 픽처에서 (순방향 경로에서) 인코딩되고 (재구성 경로에서) 재구성되는 하나 이상의 이웃하는 BPU를 포함할 수 있다. 인코더는 이웃하는 BPU를 외삽함으로써 예측된 BPU(208)를 생성할 수 있다. 외삽 기법은 예컨대, 선형 외삽(linear extrapolation) 또는 내삽(interpolation), 다항식 외삽 또는 내삽 등을 포함할 수 있다. 일부 실시예에서, 인코더는 가령, 예측된 BPU(208)의 각각의 픽셀에 대해 대응하는 픽셀의 값을 외삽함으로써, 픽셀 레벨에서 외삽을 수행할 수 있다. 외삽을 위해 사용된 이웃하는 BPU는 (예컨대, 원본 BPU의 상부에서) 수직 방향, (예컨대, 원본 BPU의 좌측에서) 수평 방향, (예컨대, 원본 BPU의 좌측-하단, 우측-하단, 좌측-상단 또는 우측-상단에서) 대각선 방향 또는 사용된 비디오 코딩 표준에서 정의된 임의의 방향에서와 같은 다양한 방향으로부터 원본 BPU에 대해 위치될 수 있다. 인트라 예측에 대해, 예측 데이터(206)는 예컨대, 원본 BPU에 대한 사용된 이웃하는 BPU의 위치(예컨대, 좌표), 사용된 이웃하는 BPU의 크기, 외삽의 신택스 요소, 사용된 이웃하는 BPU의 방향 등을 포함할 수 있다.
다른 예에 대해, 시간 예측 스테이지(2044)에서, 인코더는 인터 예측을 수행할 수 있다. 현재 픽처의 원본 BPU에 대해, 예측 참조(224)는 (순방향 경로에서) 인코딩되고 (재구성된 경로에서) 재구성된 하나 이상의 픽처("참조 픽처"로 지칭됨)를 포함할 수 있다. 일부 실시예에서, 참조 픽처는 BPU별로 인코딩되고 재구성될 수 있다. 예컨대, 인코더는 재구성된 BPU를 생성하기 위해, 재구성된 잔차 BPU(222)를 예측된 BPU(208)에 더할 수 있다. 동일한 픽처의 모든 재구성된 BPU가 생성될 때, 인코더는 재구성된 픽처를 참조 픽처로서 생성할 수 있다. 인코더는 참조 픽처의 범위("검색 윈도우"로 지칭됨)에서 매칭 영역을 검색하기 위해, "움직임 추정"의 동작을 수행할 수 있다. 참조 픽처에서 검색 윈도우의 위치는 현재 픽처에서 원본 BPU의 위치에 기초하여 결정될 수 있다. 예컨대, 검색 윈도우는 현재 픽처에서 원본 BPU와 참조 픽처에서 동일한 좌표를 갖는 위치에 중심이 맞춰질 수 있고, 미리 결정된 거리에 대해 확장될 수 있다. 인코더가 검색 윈도우에서 원본 BPU와 유사한 영역을 (예컨대, 픽셀-순환 알고리즘(pixel-recursive algorithm), 블록-매칭 알고리즘 등을 사용함으로써) 식별할 때, 인코더는 이러한 영역을 매칭 영역으로서 결정할 수 있다. 매칭 영역은 원본 BPU로부터 상이한 치수(예컨대, 그보다 작거나, 이와 동일하거나, 그보다 크거나 또는 상이한 형태인)를 가질 수 있다. 참조 픽처 및 현재 픽처가 (예컨대, 도 1에 도시된 바와 같이) 시간선에서 시간적으로 분리되기 때문에, 시간이 지남에 따라, 매칭 영역이 원본 BPU의 위치로 "이동하는" 것으로 여겨질 수 있다. 인코더는 "움직임 벡터"로서 이러한 움직임의 방향 및 거리를 기록할 수 있다. (예컨대, 도 1에서의 픽처(106)와 같이) 다수의 참조 픽처가 사용될 때, 인코더는 매칭 영역을 검색하고, 각각의 참조 픽처에 대해 그의 연관된 움직임 벡터를 결정할 수 있다. 일부 실시예에서, 인코더는 각각의 매칭 참조 픽처의 매칭 영역의 픽셀값에 대해 가중치를 할당할 수 있다.
움직임 추정은 예컨대, 병진(translation), 회전, 주밍(zooming) 등과 같은 다양한 타입의 움직임을 식별하기 위해 사용될 수 있다. 인터 예측에 대해, 예측 데이터(206)는 예컨대, 매칭 영역의 위치(예컨대, 좌표), 매칭 영역과 관련된 움직임 벡터, 참조 픽처의 개수, 참조 픽처와 연관된 가중치 등을 포함할 수 있다.
예측된 BPU(208)를 생성하기 위해, 인코더는 "움직임 보상"의 동작을 수행할 수 있다. 움직임 보상은 예측 데이터(206)(예컨대, 움직임 벡터) 및 예측 참조(224)에 기초하여 예측된 BPU(208)를 재구성하는데 사용될 수 있다. 예컨대, 인코더는 움직임 벡터에 따라 참조 픽처의 매칭 영역을 이동시킬 수 있으며, 여기서 인코더는 현재 픽처의 원본 BPU를 예측할 수 있다. 다수의 참조 픽처가 (예컨대, 도 1에서의 픽처와 같이) 사용될 때, 인코더는 매칭 영역의 각각의 움직임 벡터 및 평균 픽셀 값에 따라 참조 픽처의 매칭 영역을 이동시킬 수 있다. 일부 실시예에서, 인코더가 각각의 매칭 참조 픽처의 매칭 영역의 픽셀값에 가중치를 할당한 경우, 인코더는 이동된 매칭 영역의 픽셀값의 가중치 합을 더할 수 있다.
일부 실시예에서, 인터 예측은 단방향 또는 양방향일 수 있다. 단방향 인터 예측은 현재 픽처에 대해 동일한 시간 방향으로 하나 이상의 참조 픽처를 사용할 수 있다. 예컨대, 도 1에서의 픽처(104)는 참조 픽처(예를 들어, 픽처(102))가 픽처(104)에 선행하는 단방향 인터-예측된 픽처이다. 양방향 인터 예측은 현재 픽처에 대해 시간 방향 둘 모두에서 하나 이상의 참조 픽처를 사용할 수 있다. 예컨대, 도 1에서의 픽처(106)는 참조 픽처(예를 들어, 픽처(104 및 108))가 픽처(104)에 대해 시간 방향 둘 모두에 있는 양방향 인터-예측된 픽처이다.
프로세스(200B)의 순방향 경로를 계속 참조하면, 공간 예측 스테이지(2042) 및 시간 예측 스테이지(2044) 이후에, 모드 결정 스테이지(230)에서, 인코더는 프로세스(200B)의 현재 반복에 대해 예측 모드(예컨대, 인트라 예측 또는 인터 예측 중 하나)를 선택할 수 있다. 예컨대, 인코더는 레이트-왜곡 최적화 기술(rate-distortion optimization technique)을 수행할 수 있으며, 여기서 인코더는 후보 예측 모드의 비트레이트 및 후보 예측 모드 하에서 재구성된 참조 픽처의 왜곡에 의존하여, 비용 함수의 값을 최소화하기 위해 예측 모드를 선택할 수 있다. 선택된 예측 모드에 의존하여, 인코더는 대응하는 예측된 BPU(208) 및 예측된 데이터(206)를 생성할 수 있다.
프로세스(200B)의 재구성 경로에서, 순방향 경로에서 인트라 예측 모드가 선택된 경우, 예측 참조(224)(예컨대, 현재 픽처에서 인코딩되고 재구성된 현재 BPU)를 생성한 이후에, 인코더는 차후 사용을 위해(예컨대, 현재 픽처의 다음 BPU의 외삽을 위해), 예측 참조(224)를 공간 예측 스테이지(2042)로 직접적으로 공급할 수 있다. 인코더는 예측 참조(224)의 코딩 동안 도입된 왜곡(예컨대, 블로킹 아티팩트(blocking artifacts))을 감소시키거나 제거하기 위해 인코더가 예측 참조(224)에 루프 필터를 적용할 수 있는 루프 필터 스테이지(232)에 예측 참조(224)를 공급할 수 있다. 인코더는 예컨대, 디블로킹(deblocking), 샘플 적응적 오프셋, 적응적 루프 필터 등과 같은 다양한 루프 필터 기법을 루프 필터 스테이지(232)에서 적용할 수 있다. 루프-필터링된 참조 픽처는 차후 사용을 위해(예컨대, 비디오 시퀀스(202)의 향후 픽처에 대한 인터-예측 참조 픽처로서 사용되기 위해) 버퍼(234)(또는 "디코딩된 픽처 버퍼(decoded picture buffer, DPB)")에 저장될 수 있다. 인코더는 시간 예측 스테이지(2044)에서 사용되도록 버퍼(234)에 하나 이상의 참조 픽처를 저장할 수 있다. 일부 실시예에서, 인코더는 양자화된 변환 계수(216), 예측 데이터(206) 및 다른 정보와 함께, 이진 코딩 스테이지(226)에서 루프 필터의 신택스 요소(예컨대, 루프 필터 강도)를 인코딩할 수 있다.
도 3a는 본 개시의 실시예와 일치하는 예시적인 디코딩 프로세스(300A)의 개략도를 예시한다. 프로세스(300A)는 도 2a에서의 압축 프로세스(200A)에 대응하는 압축 해제 프로세스일 수 있다. 일부 실시예에서, 프로세스(300A)는 프로세스(200A)의 재구성 경로와 유사할 수 있다. 디코더는 프로세스(300A)에 따라 비디오 비트스트림(228)을 비디오 스트림(304)으로 디코딩할 수 있다. 비디오 스트림(304)은 비디오 시퀀스(202)와 매우 유사할 수 있다. 하지만, 압축 및 압축 해제 프로세스(예컨대, 도 2a 및 도 2b에서의 양자화 스테이지(214))에서의 정보 손실에 기인하여, 일반적으로 비디오 스트림(304)은 비디오 시퀀스(202)와 동일하지 않다. 도 2a 및 도 2b에서의 프로세스(200A 및 200B)와 유사하게, 디코더는 비디오 비트스트림(228)에서 인코딩된 각각의 픽처에 대해 기본 처리 유닛(BPU)의 레벨에서 프로세스(300A)를 수행할 수 있다. 예컨대, 디코더는 반복적인 방식으로 프로세스(300A)를 수행할 수 있으며, 여기서 디코더는 프로세스(300A)의 한 번의 반복으로 기본 처리 유닛을 디코딩할 수 있다. 일부 실시예에서, 디코더는 비디오 비트스트림(228)에서 인코딩된 각각의 픽처의 영역(예컨대, 영역(114 내지 118))에 대해 병렬로 프로세스(300A)를 수행할 수 있다.
도 3a에서, 디코더는 인코딩된 픽처의 기본 처리 유닛("인코딩된 BPU"로 지칭됨)과 연관된 비디오 비트스트림(228)의 부분을 이진 디코딩 스테이지(302)로 공급할 수 있다. 이진 디코딩 스테이지(302)에서, 디코더는 그 부분을 예측 데이터(206) 및 양자화된 변환 계수(216)로 디코딩할 수 있다. 디코더는 재구성된 잔차 BPU(222)를 생성하기 위해 양자화된 변환 계수(216)를 역양자화 스테이지(218) 및 역변환 스테이지(220)에 공급할 수 있다. 디코더는 예측된 BPU(208)를 생성하기 위해 예측 데이터(206)를 예측 스테이지(204)로 공급할 수 있다. 디코더는 예측된 참조(224)를 생성하기 위해 재구성된 잔차 BPU(222)를 예측된 BPU(208)에 더할 수 있다. 일부 실시예에서, 예측된 참조(224)는 버퍼(예컨대, 컴퓨터 메모리의 디코딩된 픽처 버퍼)에 저장될 수 있다. 디코더는 프로세스(300A)의 다음 반복에서 예측 동작을 수행하기 위해, 예측된 참조(224)를 예측 스테이지(204)에 공급할 수 있다.
디코더는 인코딩된 픽처의 각각의 인코딩된 BPU를 디코딩하고, 인코딩된 픽처의 다음 인코딩된 BPU를 인코딩하기 위해 예측된 참조(224)를 생성하도록, 프로세스(300A)를 반복적으로 수행할 수 있다. 인코딩된 픽처의 모든 인코딩된 BPU를 디코딩한 이후에, 디코더는 디스플레이를 위해 픽처를 비디오 스트림(304)에 출력하고, 비디오 비트스트림(228)에서 다음 인코딩된 픽처를 디코딩하도록 진행할 수 있다.
이진 디코딩 스테이지(302)에서, 디코더는 인코더에 의해 사용된 이진 코딩 기법(예컨대, 엔트로피 코딩, 가변 길이 코딩, 산술 코딩, 허프만 코딩, 컨텍스트-적응적 이진 산술 코딩 또는 임의의 다른 무손실 압축 알고리즘)의 역동작을 수행할 수 있다. 일부 실시예에서, 예측 데이터(206) 및 양자화된 변환 계수(216) 이외에, 디코더는 예컨대, 예측 모드, 예측 동작의 신택스 요소, 변환 타입, 양자화 프로세스의 신택스 요소(예컨대, 양자화 신택스 요소), 인코더 제어 신택스 요소(예컨대, 비트레이트 제어 신택스 요소) 등과 같은 다른 정보를 이진 디코딩 스테이지(302)에서 디코딩할 수 있다. 일부 실시예에서, 비디오 비트스트림(228)이 네트워크를 통해 패킷으로 송신되는 경우, 디코더는 이를 이진 디코딩 스테이지(302)에 공급하기 전에, 비디오 비트스트림(228)을 디패킷화(depacketize)할 수 있다.
도 3b는 본 개시의 일부 실시예와 일치하는 다른 예시적인 디코딩 프로세스(300B)의 개략도를 예시한다. 프로세스(300B)는 프로세스(300A)로부터 수정될 수 있다. 예컨대, 프로세스(300B)는 하이브리드 비디오 코딩 표준(예컨대, H.26x 시리즈)에 따르는 디코더에 의해 사용될 수 있다. 프로세스(300A)와 비교하면, 프로세스(300B)는 예측 스테이지(204)를 공간 예측 스테이지(2042) 및 시간 예측 스테이지(2044)로 추가적으로 분할하고, 루프 필터 스테이지(232) 및 버퍼(234)를 추가적으로 포함한다.
프로세스(300B)에서, 디코딩되는 인코딩된 픽처("현재 픽처"로 지칭됨)의 인코딩된 기본 처리 유닛("현재 BPU"로 지칭됨)에 대해, 디코더에 의해 이진 디코딩 스테이지(302)로부터 디코딩된 예측 데이터(206)는 인코더에 의해 현재 BPU를 인코딩하는 데 어느 예측 모드가 사용되었는지에 의존하여, 다양한 타입의 데이터를 포함할 수 있다. 예컨대, 현재 BPU를 인코딩하기 위해, 인코더에 의해 인트라 예측이 사용된 경우, 예측 데이터(206)는 인트라 예측을 나타내는 예측 모드 표시자(예컨대, 플래그 값), 인트라 예측 동작의 신택스 요소 등을 포함할 수 있다. 인트라 예측 동작의 신택스 요소는 예컨대, 참조로서 사용된 하나 이상의 이웃하는 BPU의 위치(예컨대, 좌표), 이웃하는 BPU의 크기, 외삽의 신택스 요소, 원본 BPU에 대한 이웃하는 BPU의 방향 등을 포함할 수 있다. 다른 예에 대해, 현재 BPU를 인코딩하기 위해, 인코더에 의해 인터 예측이 사용된 경우, 예측 데이터(206)는 인터 예측을 나타내는 예측 모드 표시자(예컨대, 플래그 값), 인터 예측 동작의 신택스 요소 등을 포함할 수 있다. 인터 예측 동작의 신택스 요소는 예컨대, 현재 BPU와 연관된 참조 픽처의 개수, 참조 픽처와 각각 연관된 가중치, 각각의 참조 픽처에서의 하나 이상의 매칭 영역의 위치(예컨대, 좌표), 매칭 영역과 각각 연관된 하나 이상의 움직임 벡터 등을 포함할 수 있다.
예측 모드 표시자에 기초하여, 디코더는 공간 예측 스테이지(2042)에서 공간 예측(예컨대, 인트라 예측)을 수행할지, 또는 시간 예측 스테이지(2044)에서 시간 예측(예컨대, 인터 예측)을 수행할지를 결정할 수 있다. 이러한 공간 예측 또는 시간 예측을 수행하는 것에 대한 세부사항이 도 2b에서 설명되고, 이하에서는 반복되지 않을 것이다. 이러한 공간 예측 또는 시간 예측을 수행한 이후에, 디코더는 예측된 BPU(208)를 생성할 수 있다. 도 3a에서 설명된 바와 같이, 디코더는 예측 참조(224)를 생성하기 위해 예측된 BPU(208) 및 재구성된 잔차 BPU(222)를 더한다.
프로세스(300B)에서, 디코더는 프로세스(300B)의 다음 반복에서 예측 동작을 수행하기 위해, 예측된 참조(224)를 공간 예측 스테이지(2042) 또는 시간 예측 스테이지(2044)에 공급할 수 있다. 예컨대, 현재 BPU가 공간 예측 스테이지(2042)에서 인트라 예측을 사용하여 디코딩되는 경우, 예측 참조(224)(예컨대, 디코딩된 현재 BPU)를 생성한 이후에, 디코더는 차후 사용을 위해(예컨대, 현재 픽처의 다음 BPU의 외삽을 위해) 예측 참조(224)를 공간 예측 스테이지(2042)에 직접적으로 공급할 수 있다. 현재 BPU가 시간 예측 스테이지(2044)에서 인터 예측을 사용하여 디코딩되는 경우, 예측 참조(224)(예컨대, 모든 BPU가 디코딩된 참조 픽처)를 생성한 이후에, 디코더는 왜곡(예컨대, 블로킹 아티팩트)을 감소시키거나 제거하기 위해, 예측 참조(224)를 루프 필터 스테이지(232)에 공급할 수 있다. 도 2b에 설명된 방식으로, 디코더는 루프 필터를 예측 참조(224)에 적용할 수 있다. 루프-필터링된 참조 픽처는 차후 사용을 위해(예컨대, 비디오 비트스트림(228)의 향후 인코딩된 픽처에 대한 인터-예측 참조 픽처로서 사용되도록) 버퍼(234)(예컨대, 컴퓨터 메모리에서 디코딩된 픽처 버퍼(DPB))에 저장될 수 있다. 디코더는 시간 예측 스테이지(2044)에서 사용되도록 버퍼(234)에 하나 이상의 참조 픽처를 저장할 수 있다. 일부 실시예에서, 예측 데이터는 루프 필터의 신택스 요소(예를 들어, 루프 필터 강도)를 추가로 포함할 수 있다. 일부 실시예에서, 예측 데이터(206)의 예측 모드 표시자가 인터 예측이 현재 BPU를 인코딩하는데 사용된 것을 나타낼 때, 예측 데이터는 루프 필터의 신택스 요소를 포함한다.
도 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에 도시된 바와 같이, 저장된 데이터는 프로그램 명령어(예컨대, 프로세스(200A, 200B, 300A 또는 300B)에서의 스테이지를 구현하기 위한 프로그램 명령어) 및 처리를 위한 데이터(예컨대, 비디오 시퀀스(202), 비디오 비트스트림(228) 또는 비디오 스트림(304))를 포함할 수 있다. 프로세서(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)에 결합된 입력 인터페이스 또는 카메라) 등을 포함할 수 있지만, 이에 제한되지 않는다.
비디오 코덱(예컨대, 프로세스(200A, 200B, 300A 또는 300B)를 수행하는 코덱)이 장치(400)에서 임의의 소프트웨어 또는 하드웨어 모듈의 임의의 조합으로 구현될 수 있다는 것이 유의되어야 한다. 예컨대, 프로세스(200A, 200B, 300A 또는 300B)의 일부 또는 모든 스테이지는 메모리(404)에 로딩될 수 있는 프로그램 명령어와 같은 장치(400)의 하나 이상의 소프트웨어 모듈로서 구현될 수 있다. 다른 예에 대해, 프로세스(200A, 200B, 300A 또는 300B)의 일부 또는 모든 스테이지는 특수화된 데이터 처리 회로(예컨대, FPGA, ASIC, NPU 등)와 같은 장치(400)의 하나 이상의 하드웨어 모듈로서 구현될 수 있다.
비디오 코딩에서, 픽처는 인터 예측에서 참조 픽처로 식별되는 것, DPB로부터 출력될 픽처로서 식별되는 것, 움직임 벡터 예측을 위한 시간적인 함께 배치된 픽처로서 식별되는 것 등을 포함하는, 다수의 목적을 위해 식별되어야 한다. 픽처를 식별하기 위한 가장 일반적인 방식은 픽처 순서 카운트(picture order count, "POC")를 사용하는 것이다.
인터 예측에서 참조 픽처를 식별하고, 움직임 벡터("MV") 시간적 예측에서 시간적인 함께 배치된 참조 픽처를 식별하고 스케일링을 위해, 참조 픽처 목록(일반적으로 AVC, HEVC 및 VVC에서와 같이 두 개)이 도출될 수 있다. 예를 들어, 참조 픽처 목록 0 및 참조 픽처 목록 1이 도출될 수 있으며, 이들 각각은 참조 픽처로 사용될 DPB에서 재구성된 픽처의 목록을 포함한다. 그리고 참조 픽처 목록에 대한 참조 인덱스는 현재 블록에 대한 참조 픽처를 식별하기 위한 블록 레벨에서 시그널링될 수 있다. 불필요하게 많은 양의 DPB 메모리를 요구하지 않고 DPB에서 참조 픽처를 올바르게 유지하기 위해, 참조 픽처 표시가 필요하다.
VVC(예를 들어, VVC 드래프트 9)에서, 두 개의 참조 픽처 목록(Reference Picture Lists, "RPL")인 참조 픽처 목록 0 및 참조 픽처 목록 1이 사용된다. 이는 직접적으로 시그널링되고 도출된다. 두 개의 참조 픽처 목록에 대한 정보는 시퀀스 파라미터 세트("SPS"), 픽처 파라미터 세트("PPS"), 픽처 헤더("PH") 및 슬라이스 헤더("SH")에서의 신택스 요소 및 신택스 구조에 의해 시그널링된다. 미리 정의된 참조 픽처 목록 구조는 PH 또는 SH에서 참조함으로써 사용을 위해 SPS에서 시그널링된다. 참조 픽처 목록 0 및 참조 픽처 목록 1의 도출을 위해, 새로운 참조 픽처 목록 구조가 또한 PH 또는 SH에서 시그널링될 수 있다. 참조 픽처 목록 정보가 PH에서 시그널링되는지 또는 SH에서 시그널링되는지는, PPS에서 시그널링되는 플래그에 의해 결정된다.
VVC(예를 들어, VVC 드래프트 9)에서, 두 개의 참조 픽처 목록은 모든 타입의 슬라이스(예를 들어, B, P 및 I 슬라이스)에 대해 생성된다. I 슬라이스의 경우, 두 개의 참조 픽처 목록인 참조 픽처 목록 0 또는 참조 픽처 목록 1 중 어느 것도 디코딩에 사용되지 않을 수 있다. P 슬라이스의 경우, 참조 픽처 목록 0만이 디코딩에 사용될 수 있다. B 슬라이스의 경우, 참조 픽처 목록 둘 모두인 참조 픽처 목록 0 및 참조 픽처 목록 1이 디코딩에 사용될 수 있다. 두 개의 참조 픽처 목록은 참조 픽처 목록 초기화 프로세스 또는 참조 픽처 목록 수정 프로세스를 사용하지 않고 구성된다.
참조 픽처 목록에서의 모든 픽처가 현재 픽처 또는 슬라이스에 대한 참조 픽처로 사용되는 것은 아니다. 참조 픽처 목록의 활성 엔트리만이 슬라이스 데이터의 디코딩 프로세스에서 사용될 수 있다. 활성 엔트리의 디폴트 개수가 VVC(예를 들어, VVC 드래프트 9)에서의 PPS에서 시그널링되며, 현재 슬라이스에 대해 슬라이스 헤더에 의해 오버라이드될 수 있다.
DPB에서 픽처를 식별하여 RPL을 구성하기 위해, 최상위 비트(most significant bits, "MSB") 및 최하위 비트(least significant bits, "LSB")를 포함하는 POC가 사용된다. VVC(예를 들어, VVC 드래프트 9)에서, POC의 LSB는 PH에서 시그널링되고, MSB는 PH에서 명시적으로 시그널링되거나 또는 현재 픽처의 POC LSB 및 하나 이상의 선행 픽처의 POC LSB를 비교함으로써 도출될 수 있다.
VVC(예를 들어, VVC 드래프트 9)에서, DPB에서의 디코딩된 픽처는 "참조용으로 사용되지 않음(unused for reference)", "단기 참조용으로 사용됨(used for short-term reference)" 또는 "장기 참조용으로 사용됨(used for long-term reference)"으로 표시될 수 있다. 디코딩된 픽처는 디코딩 프로세스의 동작 동안, 임의의 주어진 순간에 이들 세 개 중 하나만으로 표시될 수 있다. 이들 표시 중 하나를 픽처에 할당하는 것은 적용 가능할 때 다른 표시를 암시적으로 제거한다. 픽처가 "참조용으로 사용됨"으로 표시된 것으로 언급될 때, 이는 또한 픽처가 "단기 참조용으로 사용됨" 또는 "장기 참조용으로 사용됨"으로 표시된 것을 언급하지만, 둘 모두로 표시된 것으로 언급하는 것은 아니다.
단기 참조 픽처(Short-term reference pictures, "STRP") 및 인터-계층 참조 픽처(inter-layer reference pictures, "ILRP")는 그의 NAL(Network Abstraction Layer, 네트워크 추상화 계층) 유닛 ID 및 POC 값에 의해 식별된다. 장기 참조 픽처(Long-term reference pictures, "LTRP")는 NAL 유닛 ID 및 그의 POC 값의 LSB의 개수에 의해 식별된다.
도 5a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 예시한다. 도 5a에 도시된 신택스는 VVC 표준(예를 들어, VVC 드래프트 9)의 또는 다른 비디오 코딩 기술에서의 일부일 수 있다.
도 5a에 도시된 바와 같이, 참조 픽처 목록에 대한 신택스 구조(500A)(예를 들어, ref_pic_lists())는 PH 신택스 구조 또는 SH에 존재할 수 있다.
도 5a에 도시된 바와 같이, 1과 동일한 신택스 요소(510A)(예를 들어, rpl_sps_flag[ i ])는, 참조 픽처 목록에 대한 신택스 구조(예를 들어, ref_pic_lists())에서 참조 픽처 목록 i(예를 들어, i는 0 또는 1일 수 있음)가 SPS에서 참조 픽처 목록 구조에 대한 신택스 구조(예를 들어, ref_pic_list_struct( listIdx, rplsIdx ) - listIdx는 i와 동일함 - ) 중 하나를 기초로 도출된다는 것을 지정한다. 0과 동일한 신택스 요소(510A)는, 참조 픽처 목록 i(예를 들어, i는 0 또는 1일 수 있음)가 참조 픽처 목록에 대한 신택스 구조(예를 들어, ref_pic_lists())에 직접적으로 포함되는 참조 픽처 목록 구조에 대한 신택스 구조(예를 들어, ref_pic_list_struct( listIdx, rplsIdx ) - listIdx는 i와 동일함 - )를 기초로 도출된다는 것을 지정한다.
신택스 요소(510A)가 존재하지 않을 때, 다음이 적용된다. 먼저, SPS의 참조 픽처 목록의 개수(예를 들어, sps_num_ref_pic_lists[ i ])가 0과 동일한 경우, 신택스 요소(510A)의 값은 0과 동일한 것으로 추론된다. 둘째, SPS에서 참조 픽처 목록의 개수(예를 들어, sps_num_ref_pic_lists[ i ]))가 0과 동일하지 않은 경우(예를 들어, SPS에서 참조 픽처 목록의 개수가 0보다 큰 경우), 신택스 요소(520A)(예를 들어, pps_rpl1_idx_present_flag)가 0과 동일하고 i가 1과 동일할 때, SPS에서 참조 픽처 목록 1에 대한 신택스 요소(510A)(예를 들어, rpl_sps_flag[1])의 값은 SPS에서 참조 픽처 목록 0에 대한 신택스 요소(510A)(예를 들어, rpl_sps_flag[ 0 ])의 값과 동일한 것으로 추론된다.
신택스 요소(530A)(예를 들어, rpl_idx[ i ])는, SPS에 포함된 ref_pic_list_struct( listIdx, rplsIdx ) - listIdx는 i와 동일함 - 의 목록에 대한, 현재 픽처의 참조 픽처 목록 i의 도출에 사용되는 ref_pic_list_struct( listIdx, rplsIdx ) - listIdx는 i와 동일함 - 의 인덱스를 지정한다. 신택스 요소(530A)의 길이는 SPS에서 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조의 개수의 밑수가 2인 로그 이상인 가장 작은 정수를 갖는 비트의 개수일 수 있고, 이는 Ceil( Log2( sps_num_ref_pic_lists[ i ] ) ) 비트로 표현될 수 있다. 신택스 요소(530A)의 값은 0 내지 SPS에서 참조 픽처 목록의 개수-1(예를 들어, sps_num_ref_pic_lists[i]-1)의 포함 범위에 있을 수 있다. 신택스 요소(530A)가 존재하지 않을 때, 신택스 요소(510A)가 1과 동일하고 신택스 요소(520A)가 0과 동일한 경우, rpl_idx[1]의 값은 rpl_idx[ 0 ]의 값과 동일한 것으로 추론되고, 그렇지 않으면 rpl_idx[1]의 값은 0과 동일한 것으로 추론된다.
변수 RplsIdx[ i ]는 다음과 같이 도출될 수 있다:
Figure pct00001
신택스 요소(540A)(예를 들어, poc_lsb_lt[ i ][ j ])는 ref_pic_lists()에서 i번째 참조 픽처 목록에서의 j번째 LTRP 엔트리의 픽처 순서 카운트 모듈로 MaxPicOrderCntLsb의 값을 지정한다. 신택스 요소(540A)의 길이는 POC 비트에서 최대 LSB의 밑수가 2인 로그(예를 들어, sps_log2_max_pic_order_cnt_lsb_minus4 + 4 비트)와 동일하다.
변수 PocLsbLt[ i ][ j ]는 다음과 같이 도출될 수 있다:
Figure pct00002
1과 동일한 신택스 요소(550A)(예를 들어, delta_poc_msb_cycle_present_flag[ i ][ j ])는, 신택스 요소(560A)(예를 들어, delta_poc_msb_cycle_lt[ i ][ j ])가 존재한다는 것을 지정한다. 0과 동일한 신택스 요소(550A)는 신택스 요소(560)가 존재하지 않는다는 것을 지정한다.
ref_pic_lists( ) 신택스 구조를 참조하고 TemporalID 및 ph_non_ref_pic_flag 둘 모두가 0과 동일한 슬라이스 헤더 또는 픽처 헤더와 동일하고, 그리고 RASL(Radom Access Skipped Leading) 또는 RADL(Random Access Decodable Leading) 픽처가 아닌, nuh_layer_id를 갖는 디코딩 순서에서의 이전 픽처는 prevTid0Pic으로 설명될 수 있다. nuh_layer_id는 비디오 코딩 계층(Video Coding Layer, VCL) 네트워크 추상화 계층(NAL) 유닛이 속한 계층의 식별자 또는 비-VCL NAL 유닛이 적용되는 계층의 식별자를 지정하는 신택스 요소이다. TemporalID는 픽처의 임시 식별자이다. setOfPrevPocVals로 설명된 이전 POC 값의 세트는 다음을 포함하는 세트이다:
- prevTid0Pic의 POC 값(예를 들어, PicOrderCntVal);
- prevTid0Pic의 참조 픽처 목록 0(예를 들어, RefPicList[ 0 ]) 또는 참조 픽처 목록 1(예를 들어, RefPicList[ 1 ])의 엔트리에 의해 참조되고, 현재 픽처와 동일한 nuh_layer_id를 갖는 각각의 픽처의 POC 값(예를 들어, PicOrderCntVal);
- 디코딩 순서에서 prevTid0Pic에 후속하고, 현재 픽처와 동일한 nuh_layer_id를 가지며, 디코딩 순서에서 현재 픽처에 선행하는 각각의 픽처의 POC 값(예를 들어, PicOrderCntVal).
값 모듈로 MaxPicOrderCntLsb가 변수 PocLsbLt[ i ][ j ]와 동일한 setOfPocVals에서 하나보다 더 많은 값이 있을 때, 신택스 요소(550A)(예를 들어, delta_poc_msb_cycle_present_flag[ i ][ j ])의 값은 1과 동일하다.
도 5b는 본 개시의 일부 실시예에 따른, 변수 FullPocLt[ i ][ j ]의 도출을 포함하는 예시적인 의사 코드를 도시한다. 신택스 요소(560A)(예를 들어, delta_poc_msb_cycle_lt[ i ][ j ])는 도 5b에 도시된 바와 같이 변수 FullPocLt[i][j]의 값을 지정한다. 신택스 요소(560A)(예를 들어, delta_poc_msb_cycle_lt[ i ][ j ])의 값은 0 내지 2(32-sps_log2_max _pic_order_cnt_lsb_minus4 -4)의 포함 범위에 있을 수 있다. 신택스 요소(560)가 존재하지 않을 때, 신택스 요소(560)의 값은 0과 동일한 것으로 추론된다.
도 6a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록 구조에 대한 신택스 구조를 포함하는 예시적인 신택스를 예시한다. 도 6a에 도시된 신택스 구조는 VVC 표준(예를 들어, VVC 드래프트 9)의 또는 다른 비디오 코딩 기술에서의 일부일 수 있다. 도 6a에 도시된 바와 같이, ref_pic_list_struct( listIdx, rplsIdx )는 SPS에, PH 신택스 구조에 또는 SH에 존재할 수 있다. 신택스 구조가 SPS, PH 신택스 구조 또는 SH에 포함되는지에 의존하여, 다음이 적용된다:
- ref_pic_list_struct( listIdx, rplsIdx )가 PH 신택스 구조 또는 SH에 존재하는 경우, ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조는 현재 픽처(예를 들어, PH 신택스 구조 또는 SH를 포함하는 코딩된 픽처)의 참조 픽처 목록 listIdx를 지정한다.
- ref_pic_list_struct( listIdx, rplsIdx )가 PH 신택스 구조 또는 SH에 존재하지 않는 경우(예를 들어, SPS에 존재하는 경우), ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조는 참조 픽처 목록 listIdx에 대한 후보를 지정하고, "이 절(clause)의 나머지 부분에서 지정된 의미에서의 "현재 픽처"란 용어는 1) SPS에 포함된 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조의 목록에 대한 인덱스와 동일한 rpl_idx[ listIdx ]를 포함하는 PH 신택스 구조 또는 하나 이상의 슬라이스를 갖고, 2) SPS를 참조하는 CLVS(Coded Layer-wise Video Sequence)에 있는 각각의 픽처를 지칭한다.
도 6a에 도시된 바와 같이, 신택스 요소(610A)(예를 들어, num_ref_entries[ listIdx ][ rplsIdx ])는 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조에서 엔트리의 개수를 지정한다. 파라미터(610A)의 값은 0 내지 MaxDpbSize + 13의 포함 범위에 있을 수 있으며, 여기서 MaxDpbSize는 비디오 코딩 표준(예를 들어, VVC 드래프트 9)의 레벨에서 지정된 바와 같다.
0과 동일한 신택스 요소(620A)(예를 들어, ltrp_in_header_flag[ listIdx ][ rplsIdx ])는, ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조에 나타난 LTRP 엔트리의 POC LSB가 동일한 신택스 구조에 존재한다는 것을 지정한다. 1과 동일한 신택스 요소(620A)는, ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조에 나타난 LTRP 엔트리의 POC LSB가 동일한 신택스 구조에 존재하지 않는다는 것을 지정한다. sps_long_term_ref_pics_flag가 1과 동일하고 rplsIdx가 sps_num_ref_pic_lists[ listIdx ]와 동일할 때, 신택스 요소(620A)의 값은 1과 동일한 것으로 추론된다.
1과 동일한 신택스 요소(630A)(예를 들어, inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ])는, ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조에서의 i번째 엔트리가 ILRP 엔트리라는 것을 지정한다. 0과 동일한 신택스 요소(630A)는, ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조에서의 i번째 엔트리가 ILRP 엔트리가 아니라는 것을 지정한다. 신택스 요소(630A)가 존재하지 않을 때, 신택스 요소(630A)의 값은 0과 동일한 것으로 추론된다.
1과 동일한 신택스 요소(640A)(예를 들어, st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ])는 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조에서의 i번째 엔트리가 STRP 엔트리라는 것을 지정한다. 0과 동일한 신택스 요소(640A)는 ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조에서의 i번째 엔트리가 LTRP 엔트리라는 것을 지정한다. 신택스 요소(630A)가 0과 동일하고 신택스 요소(640A)가 존재하지 않을 때, 신택스 요소(640A)의 값은 1과 동일한 것으로 추론된다.
도 6b는 본 개시의 일부 실시예에 따른, LTRP 엔트리의 개수(예를 들어, 변수 NumltrpEntries[ listIdx ][ rplsIdx ])에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다. 변수 NumLtrpEntries[ listIdx ][ rplsIdx ](예를 들어, 도 5a에서의 변수(570A))는 도 6b에 도시된 바와 같이 도출될 수 있다.
도 6c는 본 개시의 일부 실시예에 따른, 변수 AbsDeltaPocSt[ listIdx ][rplsIdx ][ i ]에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다. 신택스 요소(650A)(예를 들어, abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ])는 도 6c에 도시된 바와 같이 변수 AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ](예를 들어, 변수(690A))의 값을 지정한다. 신택스 요소(650A)(예를 들어, abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ])의 값은 0 내지 215-1의 포함 범위에 있을 수 있다.
1과 동일한 신택스 요소(660A)(예를 들어, strp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ])는 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조에서의 i번째 엔트리가 0 이상인 값을 갖는다는 것을 지정한다. 0과 동일한 신택스 요소(660A)는 ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조에서의 i번째 엔트리가 0보다 작은 값을 갖는다는 것을 지정한다. 신택스 요소(660A)가 존재하지 않을 때, 신택스 요소(660A)의 값은 1과 동일한 것으로 추론된다.
도 6d는 본 개시의 일부 실시예에 따른, 변수 DeltaPocValSt[ listIdx ][ rplsIdx ]에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다. DeltaPocValSt[ listIdx ][ rplsIdx ]는 도 6d에 도시된 바와 같이 도출될 수 있다.
다시 도 6a를 참조하면, 신택스 요소(670A)(예를 들어, rpls_poc_lsb_lt[ listIdx ][ rplsIdx ][ i ])는 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조에서 i번째 엔트리에 의해 참조되는 픽처의 픽처 순서 카운트 모듈로 MaxPicOrderCntLsb의 값을 지정한다. 신택스 요소(670A)의 길이는 sps_log2_max_pic_order_cnt_lsb_minus4 + 4비트이다.
신택스 요소(680A)(예를 들어, ilrp_idx[ listIdx ][ rplsIdx ][ i ])는 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조에서 i번째 엔트리의 ILRP의, 직접 참조 계층의 목록에 대한 인덱스를 지정한다. 신택스 요소(680A)의 값은 0 내지 NumDirectRefLayers[ GeneralLayerIdx[ nuh_layer_id ] ] - 1의 포함 범위에 있을 수 있으며, 여기서 NumDirectRefLayers[LayerIdx]는 LayerIdx와 동일한 인덱스를 갖는 계층의 직접 참조 계층의 개수를 의미한다.
도 7은 본 개시의 일부 실시예에 따른, 시퀀스 파라미터 세트에서 참조 픽처 목록 구조에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다. 도 7에 도시된 신택스는 VVC 표준(예를 들어, VVC 드래프트 9)의 또는 다른 비디오 코딩 기술에서의 일부일 수 있다.
도 7에 도시된 바와 같이, 0과 동일한 신택스 요소(710)(예를 들어, sps_long_term_ref_pics_flag)는 CLVS에서 임의의 코딩된 픽처의 인터 예측에 어떠한 LTRP도 사용되지 않는다는 것을 지정한다. 1과 동일한 신택스 요소(710)는 CLVS에서 하나 이상의 코딩된 픽처의 인터 예측에 LTRP가 사용될 수 있다는 것을 지정한다.
0과 동일한 신택스 요소(720)(예를 들어, sps_inter_layer_ref_pics_present_flag)는 CLVS에서 임의의 코딩된 픽처의 인터 예측에 어떠한 ILRP도 사용되지 않는다는 것을 지정한다. 1과 동일한 신택스 요소(720)는 ILRP가 CLVS에서 하나 이상의 코딩된 픽처의 인터 예측에 사용될 수 있다는 것을 지정한다. sps_video_syntax element_set_id가 0과 동일할 때, 즉 SPS가 비디오 파라미터 세트(Video Parameter Set, VPS)를 참조하지 않고, SPS를 참조하는 각각의 CLVS를 디코딩할 때(하나의 계층만이 있음) 어떠한 VPS도 참조되지 않을 때, 신택스 요소(720)의 값은 0과 동일한 것으로 추론된다. vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]가 1과 동일할 때, 즉 인덱스 GeneralLayerIdx[nuh_layer_id]를 갖는 계층이 인터-계층 예측을 사용하지 않을 때, 신택스 요소(720)의 값은 0과 동일하다.
1과 동일한 신택스 요소(730)(예를 들어, sps_idr_rpl_present_flag)는 참조 픽처 목록 신택스 요소가 IDR(Instaneous Decoding Refresh) 픽처의 슬라이스 헤더에 존재한다는 것을 지정한다. 0과 동일한 신택스 요소(730)는 참조 픽처 목록 신택스 요소가 IDR 픽처의 슬라이스 헤더에 존재하지 않는다는 것을 지정한다.
1과 동일한 신택스 요소(740)(예를 들어, sps_rpl1_same_as_rpl0_flag)는 신택스 요소 sps_num_ref_pic_lists[ 1 ] 및 신택스 구조 ref_pic_list_struct( 1, rplsIdx )가 존재하지 않는다는 것을 지정하고, 다음: sps_num_ref_pic_lists[ 1 ]의 값이 sps_num_ref_pic_lists[ 0 ]의 값과 동일한 것으로 추론되는 것; 및 ref_pic_list_struct( 1, rplsIdx )에서 신택스 요소의 각각의 값이 0 내지 sps_num_ref_pic_lists[ 0 ] - 1의 범위를 갖는 rplsIdx에 대한 ref_pic_list_struct( 0, rplsIdx )에서 대응하는 신택스 요소의 값과 동일한 것으로 추론되는 것이 적용된다.
신택스 요소(750)(예를 들어, sps_num_ref_pic_lists[ i ])는 SPS에 포함된 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조 - listIdx는 i와 동일함 - 의 개수를 지정한다. 신택스 요소(750)의 값은 0 내지 64의 포함 범위에 있을 수 있다. (0 또는 1과 동일한) listIdx의 각각의 값에 대해, (예를 들어, 도 3a의 프로세스(300A) 또는 도 3b의 프로세스(300B)에 의해) 디코더는, 현재 픽처의 슬라이스 헤더에서 직접적으로 시그널링되는 하나의 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조가 있을 수 있기 때문에, SPS에서의 RPL 개수에 1을 더한 총 개수(예를 들어, sps_num_ref_pic_lists[ i ] + 1)로 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조에 대한 메모리를 할당할 수 있다.
도 8은 본 개시의 일부 실시예에 따른, 픽처 파라미터 세트에서 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다. 도 8에 도시된 신택스는 VVC 표준(예를 들어, VVC 드래프트 9)의 또는 다른 비디오 코딩 기술에서의 일부일 수 있다.
도 8에 도시된 바와 같이, 신택스 요소(810)(예를 들어, pps_num_ref_idx_default_active_minus1[ i ])에 1을 더한 것은, i가 0과 동일할 때, 즉 참조 픽처 목록 0에 대해, sh_num_ref_idx_active_override_flag가 0과 동일한 경우, P 또는 B 슬라이스에 대한 변수 NumRefIdxActive[ 0 ]의 추론된 값을 지정한다. i가 1과 동일할 때, 즉 참조 픽처 목록 1에 대해, 신택스 요소(810)에 1을 더한 것은, sh_num_ref_idx_active_override_flag가 0과 동일한 경우, B 슬라이스에 대한 변수 NumRefIdxActive[ 1 ]의 추론된 값을 지정한다. 신택스 요소(810)의 값은 0 내지 14의 포함 범위에 있을 수 있다.
0과 동일한 신택스 요소(820)(예를 들어, pps_rpl1_idx_present_flag)는 rpl_sps_flag[ 1 ] 및 rpl_idx[ 1 ]가 PPS를 참조하는 픽처에 대한 PH 신택스 구조 또는 슬라이스 헤더에 존재하지 않는다는 것을 지정한다. 1과 동일한 신택스 요소(820)는 rpl_sps_flag[ 1 ] 및 rpl_idx[ 1 ]가 PPS를 참조하는 픽처에 대한 PH 신택스 구조 또는 슬라이스 헤더에 존재할 수 있다는 것을 지정한다.
1과 동일한 신택스 요소(830)(예를 들어, pps_rpl_info_in_ph_flag)는 참조 픽처 목록 정보가 PH 신택스 구조에 존재하고 PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더에 존재하지 않는다는 것을 지정한다. 0과 동일한 신택스 요소(830)는 참조 픽처 목록 정보가 PH 신택스 구조에 존재하지 않고 PPS를 참조하는 슬라이스 헤더에 존재할 수 있다는 것을 지정한다. 신택스 요소(830)가 존재하지 않을 때, 신택스 요소(830)의 값은 0과 동일한 것으로 추론된다.
도 9a는 본 개시의 일부 실시예에 따른, 픽처 헤더 구조에서 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다. 도 9a에 도시된 신택스는 VVC 표준(예를 들어, VVC 드래프트 9)의 또는 다른 비디오 코딩 기술에서의 일부일 수 있다.
도 9a에 도시된 바와 같이, 신택스 요소(910A)(예를 들어, ph_pic_output_flag)는 디코딩된 픽처 출력 및 제거 프로세스에 영향을 미친다. 신택스 요소(910A)가 존재하지 않을 때, 이는 1과 동일한 것으로 추론된다. 1과 동일한 ph_non_reference_picture_flag 및 0과 동일한 신택스 요소(910A)를 갖는 비트스팀에는 어떠한 픽처도 없다. 1과 동일한 요소 ph_non_reference_picture_flag는 현재 픽처가 참조 픽처로 사용되지 않는다는 것을 지정한다. 0과 동일한 요소 ph_non_ref_pic_flag는 현재 픽처가 참조 픽처로 사용될 수 있거나 또는 사용되지 않을 수 있다는 것을 지정한다.
0과 동일한 신택스 요소(920A)(예를 들어, ph_temporal_mvp_enabled_flag)는 시간적 움직임 벡터 예측자가 비활성화되고, 현재 픽처에서 슬라이스의 디코딩에 사용되지 않는다는 것을 지정한다. 1과 동일한 신택스 요소(920A)는 시간적 움직임 벡터 예측자가 활성화되고, 현재 픽처에서 슬라이스의 디코딩에 사용될 수 있다는 것을 지정한다. 신택스 요소(920A)가 존재하지 않을 때, 신택스 요소(920A)의 값은 0과 동일한 것으로 추론된다. 다른 기존의 제약에 기인하여, 다음 조건: 1) DPB에서 어떠한 참조 픽처도 현재 픽처와 동일한 공간 해상도 및 동일한 스케일링 윈도우 오프셋을 갖지 않는 것, 및 2) DPB에서 어떠한 참조 픽처도 현재 픽처에서 모든 슬라이스의 RPL의 활성 엔트리에 존재하지 않는 것 중 하나 이상이 참일 때, 신택스 요소(920A)의 값은 적합한 비트스트림에서만 0과 동일할 수 있다. 열거되지 않은 복잡한 조건 하에, 신택스 요소(920A)가 0과만 동일할 수 있는 다른 상황이 있을 수 있다.
도 9b는 본 개시의 일부 실시예에 따른, 변수 MaxNumSubblockMergeCand에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다. 도 9b에 도시된 바와 같이, MaxNumSubblockMergeCand의 값은 서브블록 기반의 병합 움직임 벡터 예측자(Motion Vector Predictor, MVP) 후보의 최대 개수를 나타낸다. MaxNumSubblockMergeCand의 값은 0 내지 5의 포함 범위에 있을 수 있다.
다시 도 9a를 참조하면, 1과 동일한 신택스 요소(930A)(예를 들어, ph_collocated_from_l0_flag)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 0으로부터 도출된다는 것을 지정한다. 0과 동일한 신택스 요소(930A)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 1로부터 도출된다는 것을 지정한다. 신택스 요소(920A) 및 신택스 요소(830A)(예를 들어, pps_rpl_info_in_ph_flag)가 모두 1과 동일하고 num_ref_entries[ 1 ][ RplsIdx[ 1 ]]가 0과 동일할 때, 신택스 요소(930A)의 값은 1과 동일한 것으로 추론된다.
신택스 요소(940A)(예를 들어, ph_collocated_ref_idx)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스를 지정한다. 신택스 요소(930A)가 1과 동일할 때, 신택스 요소(940A)는 참조 픽처 목록 0에서의 엔트리를 참조하고, 신택스 요소(940A)의 값은 0 내지 num_ref_entries[ 0 ][ RplsIdx[ 0 ] ] - 1의 포함 범위에 있을 수 있다. 신택스 요소(930A)가 0과 동일할 때, 신택스 요소(940A)는 참조 픽처 목록 1에서의 엔트리를 참조하고, 신택스 요소(940A)의 값은 0 내지 num_ref_entries[ 1 ][ RplsIdx[ 1 ] ] - 1의 포함 범위에 있을 수 있다. 신택스 요소(940A)가 존재하지 않을 때, 신택스 요소(940A)의 값은 0과 동일한 것으로 추론된다.
1과 동일한 신택스 요소(950A)(예를 들어, ph_mvd_l1_zero_flag)는 움직임 벡터 차이(예를 들어, mvd_coding(x0, y0, 1, cpIdx)) 신택스 구조가 파싱되지 않고, MvdL1[ x0 ][ y0 ][ compIdx ] 및 MvdCpL1[ x0 ][ y0 ][ cpIdx ][ compIdx ]가 compIdx = 0..1 및 cpIdx = 0..2에 대해 0과 동일하게 설정된다는 것을 지정한다. 0과 동일한 신택스 요소(950A)는 mvd_coding( x0, y0, 1, cpIdx ) 신택스 구조가 파싱된다는 것을 지정한다. 신택스 요소(950A)가 존재하지 않을 때, 신택스 요소(950A)의 값은 1인 것으로 추론된다. MvdL1은 참조 픽처 목록1에서의 참조 픽처와 연관된 비트스트림으로부터 디코딩된 움직임 벡터 차이이다. MvdCpL1은 참조 픽처 목록 1에서의 참조 픽처와 연관된 비트스트림으로부터 디코딩된 제어점 움직임 벡터 차이이다. 이는 아핀 움직임 보상(affine motion compensaiton)을 사용한 코딩 블록에 대한 것이다. x0, y0은 현재 코딩 블록의 좌측-상단 위치이고, compIdx는 구성요소 인덱스이고, cpIdx는 제어점의 인덱스이다.
도 10a는 본 개시의 일부 실시예에 따른, 슬라이스 헤더에서 참조 픽처 목록에 대한 신택스 구조를 포함하는 예시적인 신택스를 도시한다. 도 10a에 도시된 신택스는 VVC 표준(예를 들어, VVC 드래프트 9)의 또는 다른 비디오 코딩 기술에서의 일부일 수 있다.
도 10a에 도시된 바와 같이, 1과 동일한 신택스 요소(1010A)(예를 들어, sh_num_ref_idx_active_override_flag)는 신택스 요소 sh_num_ref_idx_active_minus1[ 0 ]가 P 및 B 슬라이스에 대해 존재하고 신택스 요소 sh_num_ref_idx_active_minus1[ 1 ]이 B 슬라이스에 대해 존재한다는 것을 지정한다. 0과 동일한 신택스 요소(1010A)는 신택스 요소 sh_num_ref_idx_active_minus1[ 0 ] 및 sh_num_ref_idx_active_minus1[ 1 ]이 존재하지 않는다는 것을 지정한다. 신택스 요소(1010A)가 존재하지 않을 때, 신택스 요소(1010A)의 값은 1과 동일한 것으로 추론된다.
신택스 요소(1020A)(예를 들어, sh_num_ref_idx_active_minus1[ i ])는 변수 NumRefIdxActive[ i ]의 도출을 위해 사용된다. 신택스 요소(1020A)의 값은 0 내지 14의 포함 범위에 있을 수 있다. 0 또는 1과 동일한 i에 대해, 현재 슬라이스가 B 슬라이스일 때, 신택스 요소(1010A)는 1과 동일하고, 신택스 요소(1020A)가 존재하지 않을 때, 신택스 요소(1020A)는 0과 동일한 것으로 추론된다.
도 10b는 본 개시의 일부 실시예에 따른, 변수 NumRefIdxActive[ i ]에 대한 도출을 포함하는 예시적인 의사 코드를 도시한다. 도 10b에 도시된 바와 같이, NumRefIdxActive[ i ] - 1의 값은 슬라이스를 디코딩하는데 사용될 수 있는 참조 픽처 목록 i에 대한 최대 참조 인덱스를 지정한다. 신택스 요소(1020A)는 도 10b에서의 수학식 1에 의해 도시된 바와 같이 NumRefIdxActive[ i ]의 도출에 사용된다. NumRefIdxActive[ i ]의 값이 0과 동일할 때, 참조 픽처 목록 i에 대한 어떠한 참조 인덱스도 슬라이스를 디코딩하는데 사용되지 않을 수 있다. 현재 슬라이스가 P 슬라이스인 경우, NumRefIdxActive[ 0 ]의 값은 0보다 크다. 현재 슬라이스가 B 슬라이스인 경우, NumRefIdxActive[ 0 ] 및 NumRefIdxActive[ 1 ]가 모두 0보다 크다.
도 10a에 도시된 바와 같이, 신택스 요소(1030A)(예를 들어, sh_cabac_init_flag)는 컨텍스트 변수에 대한 초기화 프로세스에서 사용되는 초기화 테이블을 결정하기 위한 방법을 지정한다. 신택스 요소(1030A)가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
1과 동일한 신택스 요소(1040A)(예를 들어, sh_collocated_from_l0_flag)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 0으로부터 도출된다는 것을 지정한다. 0과 동일한 신택스 요소(1040A)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 1로부터 도출된다는 것을 지정한다. sh_slice_type이 B 또는 P와 동일하고, 신택스 요소(920A)(예를 들어, ph_temporal_mvp_enabled_flag)가 1과 동일하고, 신택스 요소(1040A)가 존재하지 않을 때, 다음: sh_slice_type이 B와 동일한 경우, 신택스 요소(1040A)는 신택스 요소(930A)(ph_collocated_from_l0_flag)와 동일한 것으로 추론되는 것; 및 sh_slice_type이 P와 동일하지 않은 경우(예를 들어, sh_slice_type이 P와 동일한 경우), 신택스 요소(1040A)의 값은 1과 동일한 것으로 추론되는 것이 적용된다.
신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스를 지정한다. sh_slice_type이 P와 동일하거나, 또는 sh_slice_type이 B와 동일하고 신택스 요소(1040A)가 1과 동일할 때, 신택스 요소(1050A)는 참조 픽처 목록 0에서의 엔트리를 참조하고, 신택스 요소(1050A)의 값은 0 내지 NumRefIdxActive[ 0 ] - 1의 포함 범위에 있을 수 있다. sh_slice_type이 B와 동일하고 신택스 요소(1040A)가 0과 동일할 때, 신택스 요소(1050A)는 참조 픽처 목록 1에서의 엔트리를 참조하고, 신택스 요소(1050A)의 값은 0 내지 NumRefIdxActive[ 1 ] - 1의 포함 범위에 있을 수 있다. 신택스 요소(1050A)가 존재하지 않을 때, 다음: 신택스 요소(830)(예를 들어, pps_rpl_info_in_ph_flag)가 1과 동일한 경우, 신택스 요소(1050A)의 값은 신택스 요소(940A)(예를 들어, ph_collocated_ref_idx)와 동일한 것으로 추론되는 것; 및 신택스 요소(830)가 1과 동일하지 않은 경우(예를 들어, 신택스 요소(830)가 0과 동일한 경우), 신택스 요소(1050A)의 값은 0과 동일한 것으로 추론되는 것이 적용된다. 이는 신택스 요소(1050A)에 의해 참조되는 픽처가 코딩된 픽처의 모든 슬라이스에 대해 동일하고, RprConstraintsActive[ sh_collocated_from_l0_flag ? 0 : 1 ][ sh_collocated_ref_idx ]가 0과 동일하다는 것이 비트스트림 적합성의 요건이다. 이 제약은 함께 배치된 픽처가 현재 픽처와 동일한 공간 해상도 및 동일한 스케일링 윈도우 오프셋을 갖도록 요구한다.
VVC(예를 들어, VVC 드래프트 9)에서, 신택스 요소(930A)(예를 들어, ph_collocated_from_l0_flag) 및 신택스 요소(950A)(예를 들어, ph_mvd_l1_zero_flag)는 PH에서 시그널링되는 두 개의 플래그이다. 신택스 요소(930A)는 시간적 움직임 벡터 예측에 사용된 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 온 것인지를 나타낸다. 신택스 요소(950A)는 mvd_coding() 신택스 구조가 참조 픽처 목록 1에 대해 파싱되는지를 나타낸다. 결과로서, 이들 두 개의 플래그는 참조 픽처 목록 1에서의 활성 엔트리의 개수가 0보다 클 때에만 관련이 있다. 하지만, 도 10a에 도시된 바와 같이, 참조 픽처 목록에서 활성 엔트리의 개수가 sh_num_ref_idx_active_minus1[i]에 의해 슬라이스 헤더에서 오버라이드되기 때문에, 신택스 요소(930A) 및 신택스 요소(950A)가 PH에서 시그널링될 때, 디코더는 참조 픽처 목록 1의 활성 엔트리의 정확한 개수를 알지 못한다. 그러므로, VVC(예를 들어, VVC 드래프트 9)에서, 참조 픽처 목록 1에서 엔트리의 총 개수는, 도 9a에 도시된 바와 같이, 이들 두 개의 플래그를 시그널링하기 위한 조건으로 사용된다.
본 개시가 값이 0 또는 1과 동일한 것을 기초로 추론을 제공하는 다양한 신택스 요소를 참조하지만, 값은 적절한 추론을 제공하기 위해 임의의 방식(예를 들어, 1 또는 0)으로 구성될 수 있다는 것이 인식된다.
VVC(예를 들어, VVC 드래프트 9)에서, I 슬라이스에 대해, 두 개의 참조 픽처 목록 모두의 활성 엔트리의 개수가 0과 동일하다는 것이 보장된다. P 슬라이스에 대해, 참조 픽처 목록 0에서의 활성 엔트리의 개수는 0보다 크고, 참조 픽처 목록 1에서의 활성 엔트리의 개수는 0과 동일하다. B 슬라이스에 대해, 두 개의 참조 픽처 목록 모두의 활성 엔트리의 개수는 0보다 크다. 참조 픽처 목록에서 엔트리의 총 개수에 대한 어떠한 보장도 없다. 예를 들어, I 슬라이스의 경우, 두 개의 참조 픽처 목록 중 임의의 것의 엔트리의 개수는 0보다 클 수 있다. 결과로서, 참조 픽처 목록 1에서 엔트리의 총 개수가 0보다 크다는 시그널링 조건은 신택스 요소(930A) 및 신택스 요소(950A)에 대해 너무 완화되며, 이는 이들 두 개의 신택스 요소의 불필요한 시그널링을 야기한다.
종래의 코딩 기술에서의 이 결점을 극복하기 위해, (도 11a 내지 도 11c에서 아래에 제공된 것과 같은) 본 개시의 일부 실시예에서, 참조 픽처 목록 0에서의 엔트리의 개수가 0과 동일한 경우, 불필요한 시그널링이 회피된다.
도 11a는 본 개시의 일부 실시예에 따른, PH 신택스 구조에서 플래그를 시그널링하기 위한 예시적인 비디오 인코딩 방법(1100A)의 흐름도를 예시한다. 방법(1100A)은 인코더에 의해(예를 들어, 도 2a의 프로세스(200A) 또는 도 2b의 프로세스(200B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1100A)을 수행할 수 있다. 일부 실시예에서, 방법(1100A)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 11a를 참조하면, 방법(1100A)은 다음의 단계 1102A 및 1104A를 포함할 수 있다:
단계 1102A에서, 인코더는 함께 배치된 픽처를 기초로 현재 픽처를 인코딩한다. 참조 픽처는, 예를 들어, 참조 픽처 0 및 참조 픽처 목록 1에 의해 도출될 수 있으며, 이들 각각은 참조 픽처로 사용될 재구성된 픽처의 목록을 DPB(예를 들어, 도 3b에서의 버퍼(234))에 포함한다. 현재 픽처는 시간적 움직임 벡터 예측에 사용된다.
단계 1104A에서, 참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1에서의 엔트리의 개수가 모두 0보다 클 때, 신택스 요소 ph_collocated_from_l0_flag(예를 들어, 신택스 요소(930A)) 및 신택스 요소 ph_mvd_l1_zero_flag(예를 들어, 신택스 요소(950A))가 시그널링된다. 신택스 요소 ph_collocated_from_l0_flag는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 온 것인지, 즉 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 제1 플래그에 의해 나타나는 참조 픽처 목록으로부터 온 것인지를 나타낸다. 신택스 요소 ph_mvd_l1_zero_flag는 참조 픽처 목록 1과 연관된 움직임 벡터 차이 신택스 구조가 시그널링되는지를 나타낸다. 이 방식에서, 두 개의 플래그를 시그널링할 때, 참조 픽처 목록 1 및 참조 픽처 0 모두에서의 엔트리가 보장된다. 그러므로, 참조 픽처 목록 0에서 엔트리의 개수가 0과 동일한 경우, 불필요한 시그널링이 회피되고, 디코딩의 효율이 개선된다.
도 11b는 본 개시의 일부 실시예에 따른, PH 신택스 구조에서의 플래그를 디코딩하기 위한 예시적인 비디오 디코딩 방법(1100B)의 흐름도를 예시한다. 방법(1100B)은 디코더에 의해(예를 들어, 도 3a의 프로세스(300A) 또는 도 3b의 프로세스(300B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1100B)을 수행할 수 있다. 일부 실시예에서, 방법(1100B)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 11b를 참조하면, 방법(1100B)은 다음의 단계 1102B 내지 1106B를 포함할 수 있다.
단계 1102B에서, 디코더는 비디오 비트스트림(예를 들어, 도 3b에서의 비디오 비트스트림(228))을 수신하고, 비디오 비트스트림은 인터 예측을 사용하여 코딩될 수 있다.
단계 1104B에서, 참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1에서의 엔트리의 개수가 모두 0보다 클 때, 신택스 요소 ph_collocated_from_l0_flag(예를 들어, 신택스 요소(930A)) 및 신택스 요소 ph_mvd_l1_zero_flag(예를 들어, 신택스 요소 (950A))가 디코더에 의해 비트스트림으로부터 디코딩된다. 신택스 요소 ph_collocated_from_l0_flag는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 온 것인지, 즉 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 제1 플래그에 의해 나타나는 참조 픽처 목록으로부터 온 것인지를 나타낸다. 신택스 요소 ph_mvd_l1_zero_flag는 참조 픽처 목록 1과 연관된 움직임 벡터 차이 신택스 구조가 비트스트림에 존재하는지를 나타낸다. 이 방식에서, 두 개의 플래그를 시그널링할 때, 참조 픽처 목록 1 및 참조 픽처 0 모두에서의 엔트리가 보장된다.
단계 1106B에서, 현재 픽처는 함께 배치된 픽처를 기초로 디코딩된다. 그러므로, 참조 픽처 목록 0에서의 엔트리의 개수가 0과 동일한 경우, 불필요한 시그널링이 회피되고, 효율이 개선된다.
도 11c는 본 개시의 일부 실시예에 따른, 예시적인 픽처 헤더 신택스 구조(1100C)의 일부를 예시한다. 픽처 헤더(PH) 신택스 구조(1100C)는 방법(1100A)에서 사용될 수 있다. PH 신택스 구조(1100B)는 도 9a의 신택스 구조(900A)를 기초로 수정되고, 이전의 VVC로부터의 변경은 블록(1110C 및 1120C)에서 이탤릭체로 도시된다.
1110C를 참조하면, 일부 실시예에서, 신택스 요소 ph_collocated_from_l0_flag(예를 들어, 신택스 요소(930A))는, num_ref_entries[0][RplsIdx[0]]가 0보다 크고 num_ref_entries[1][RplsIdx[1]]가 0보다 클 때, 시그널링된다. 1120C를 참조하면, 신택스 요소 ph_mvd_l1_zero_flag(예를 들어, 신택스 요소(950A))는, pps_rpl_info_in_ph_flag가 0과 동일하지 않거나 또는 num_ref_entries[0][RplsIdx[0]]가 0보다 크고 num_refe_entries[1][RplsIdx[1]]은 0보다 클 때 시그널링된다. 그러므로, 참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1의 개수가 모두 0보다 클 때, 신택스 요소(930A) 및 신택스 요소(950A)가 시그널링될 수 있다. 참조 픽처 목록 0에서의 엔트리의 개수가 0과 동일한 경우, 불필요한 시그널링이 회피되고, 코딩 효율이 개선된다.
VVC(예를 들어, VVC 드래프트 9)에서, 함께 배치된 픽처는 PH 또는 SH에 나타날 수 있다. 참조 픽처 목록 정보가 PH에서 시그널링되는 경우, 함께 배치된 픽처는 신택스 요소(930A)(예를 들어, ph_collocated_from_l0_flag) 및 신택스 요소(940A)(예를 들어, ph_collocated_ref_idx)에 의해 PH에 나타난다. 참조 픽처 목록 정보가 SH에서 시그널링되는 경우, 함께 배치된 픽처는 신택스 요소(1040A)(예를 들어, sh_collocated_from_l0_flag) 및 신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx)에 의해 SH에 나타난다. 1과 동일한 신택스 요소(930A)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 0으로부터 도출된다는 것을 지정한다. 0과 동일한 신택스 요소(930A)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 1로부터 도출된다는 것을 지정한다. 신택스 요소(930A)가 PH에서 시그널링될 때, 시그널링 조건은 참조 픽처 목록 1에서의 엔트리의 개수가 0보다 크다는 것이다. 하지만, 참조 픽처 목록에서 활성 엔트리의 개수는 슬라이스 레벨에서 오버라이드될 수 있다. 그러므로, 신택스 요소(930A)가 0인 것으로 시그널링되더라도, SH가 0이 되도록 참조 픽처 목록 1에서의 활성 엔트리의 개수를 오버라이드할 수 있기 때문에, 함께 배치된 픽처가 참조 픽처 목록 1로부터 선택될 수 있다는 것이 보장될 수 없다. 유사하게, 신택스 요소(940A)가 PH에서 시그널링될 때, 최대 허용 값은 참조 픽처 목록에서의 엔트리의 개수에서 1을 뺀 값이다. SH가 신택스 요소(940A)보다 작은 값이 되도록 활성 엔트리의 개수를 오버라이드하면, 이는 부적합한 비트스트림이다.
이러한 부적합한 시나리오를 회피하기 위해, VVC(예를 들어, VVC 드래프트 9)는 여러 비트스트림 적합성 제약을 부과한다. 하지만, 이는 인코더가 모든 제약을 충족시키도록 부담을 준다. 그리고, 실제로 디코더는 또한 이러한 부적합한 경우가 발생할 때 비트스트림을 어떻게 처리할지를 고려해야 한다.
종래의 코딩 기술에서의 이 결점을 극복하기 위해, (도 12a-12j에서 아래에 제공된 것과 같은) 본 개시의 일부 실시예에서, 부적합한 시나리오가 더욱 강력한 방식으로 회피되도록, 참조 픽처 목록에 대한 인덱스를 시그널링하지 않고서, 함께 배치된 픽처가 나타난다.
도 12a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에 대한 인덱스를 시그널링하지 않고 함께 배치된 픽처를 나타내기 위한 예시적인 비디오 인코딩 방법(1200A)의 흐름도를 예시한다. 방법(1200A)은 인코더에 의해(예를 들어, 도 2a의 프로세스(200A) 또는 도 2b의 프로세스(200B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1200A)을 수행할 수 있다. 일부 실시예에서, 방법(1200A)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 12a를 참조하면, 방법(1200A)은 다음의 단계 1202A 및 1204A를 포함할 수 있다.
단계 1202A에서, 인코더는 함께 배치된 픽처를 기초로 현재 픽처를 비트스트림으로 인코딩하고, 여기서 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용된다. 단계 1204A에서, 참조 픽처 목록의 인덱스를 시그널링하지 않고 비트스트림에 함께 배치된 픽처가 나타난다. 인덱스를 통해 참조 픽처 목록에서의 엔트리를 참조하지 않고 함께 배치된 픽처가 나타나기 때문에, SH가 0이 되도록 참조 픽처 목록 1에서의 활성 엔트리의 개수를 오버라이드하더라도, 함께 배치된 픽처는 적합하게 나타날 수 있다. 그러므로, 인코딩 프로세스의 강력함이 개선된다.
도 12b는 본 개시의 일부 실시예에 따른, 인코딩 방법(1200B)의 예시적인 흐름도를 도시한다. 방법(1200B)은 도 12a의 방법(1200A)에서 단계 1204A의 일부일 수 있다는 것이 인식된다. 도 12c는 본 개시의 일부 실시예에 따른, 함께 배치된 픽처를 나타내기 위한 예시적인 비디오 인코딩 방법(1200B)의 다른 흐름도를 도시한다. 도 12b 및 도 12c를 참조하면, 일부 실시예에서, 방법(1200B)은 다음의 단계 1202B-1206B를 더 포함할 수 있다.
단계 1202B에서, 함께 배치된 픽처가 인터 계층 참조 픽처일 때, 함께 배치된 픽처를 나타내기 위해 제1 파라미터가 시그널링된다. 제1 파라미터는, 현재 픽처가 있는 계층의 직접 참조 계층의 목록에 대한 함께 배치된 픽처의 인덱스를 나타낸다. 예를 들어, 인덱스는 신택스 요소 inter_layer_col_pic_idx일 수 있다. 그러므로, 참조 픽처 목록을 사용하지 않고서도, 함께 배치된 픽처가 나타난다. SH가 참조 픽처 목록에서의 활성 엔트리의 개수를 오버라이드할 때, 부적합한 시나리오가 회피될 수 있다. 단계 1202B 이전에, 함께 배치된 픽처가 인터 계층 참조 픽처인지를 나타내기 위한 플래그가 시그널링될 수 있다. 단계 1202B는 또한, 도 12c에서의 1201C 및 1202C에 관련될 수 있다.
단계 1204B에서, 함께 배치된 픽처가 단기 참조 픽처(STRP)일 때, 델타 픽처 순서 카운트(델타 POC)가 시그널링된다. 나아가, 델타 POC에 의해 POC가 도출될 수 있다. 이 시나리오에서, 참조 픽처 목록을 사용하지 않고 POC를 사용하여 함께 배치된 픽처가 나타난다. 그러므로, SH가 참조 픽처 목록에서의 활성 엔트리의 개수를 오버라이드할 때, 부적합한 시나리오가 회피될 수 있다. 단계 1204B는 또한, 도 12c에서의 1203C 및 1204C에 관련될 수 있다.
단계 1206B에서, 함께 배치된 픽처가 장기 참조 픽처(LTRP)일 때, POC의 최하위 비트(LSB) 및 POC의 최상위 비트(MSB)가 시그널링된다. 나아가, POC는 LSB 및 MSB에 의해 도출될 수 있다. 이 시나리오에서, 참조 픽처 목록을 사용하지 않고 POC를 사용하여 함께 배치된 픽처가 나타난다. 그러므로, SH가 참조 픽처 목록에서의 활성 엔트리의 개수를 오버라이드할 때, 부적합한 시나리오가 회피될 수 있다. 단계 1206B는 또한, 도 12c에서의 1203C 및 1205C에 관련될 수 있다. POC를 사용하여 함께 배치된 픽처를 나타내는 것은 함께 배치된 픽처를 결정하기 위한 강력함을 효율적으로 향상시킬 수 있다. 일부 실시예에서, 단계 1204B 및 1206B 이전에, 함께 배치된 픽처가 단기 참조 픽처인지를 나타내는 플래그가 시그널링될 수 있다.
도 12d는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에 대한 인덱스를 디코딩하지 않고 함께 배치된 픽처를 나타내기 위한 예시적인 비디오 디코딩 방법(1200D)의 흐름도를 예시한다. 방법(1200D)은 디코더에 의해(예를 들어, 도 3a의 프로세스(300A) 또는 도 3b의 프로세스(300B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1200D)을 수행할 수 있다. 일부 실시예에서, 방법(1200D)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 12d를 참조하면, 방법(1200D)은 다음의 단계 1202D-1206D를 포함할 수 있다:
단계 1202D에서, 디코더는 처리를 위한 비디오 비트스트림(예를 들어, 도 3b에서의 비디오 비트스트림(228))을 수신하고, 비디오 비트스트림은 인터 예측을 사용하여 코딩될 수 있다. 참조 픽처는, 예를 들어, 참조 픽처 0 및 참조 픽처 목록 1에 의해 도출될 수 있으며, 이들 각각은 참조 픽처로 사용될 재구성된 픽처의 목록을 DPB(예를 들어, 도 3b에서의 버퍼(234))에 포함한다.
단계 1204D에서, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처는 비트스트림을 기초로, 하지만 참조 픽처 목록에 대한 인덱스를 디코딩하지 않고 결정된다.
단계 1206D에서, 현재 픽처는 함께 배치된 픽처를 기초로 디코딩된다. 참조 픽처 목록 구조를 사용하지 않고 함께 배치된 픽처가 나타나기 때문에, SH가 0이 되도록 참조 픽처 목록 1에서의 활성 엔트리의 개수를 오버라이드하더라도, 함께 배치된 픽처는 적합하게 나타날 수 있다. 그러므로, 디코딩 프로세스의 강력함이 개선된다.
참조 픽처 목록 구조를 사용하지 않고 함께 배치된 픽처가 나타나기 때문에, SH가 0이 되도록 참조 픽처 목록 1에서의 활성 엔트리의 개수를 오버라이드하더라도, 함께 배치된 픽처는 적합하게 나타날 수 있다. 그러므로, 디코딩 프로세스의 강력함이 개선된다.
도 12e는 본 개시의 일부 실시예에 따른, 디코딩 방법(1200E)의 예시적인 흐름도를 도시한다. 방법(1200E)은 도 12d의 방법(1200D)에서 단계 1204D의 일부일 수 있다는 것이 인식된다.
단계 1202E에서, 함께 배치된 픽처가 인터 계층 참조 픽처일 때, 제1 파라미터는 함께 배치된 픽처를 나타내기 위해 디코딩된다. 제1 파라미터는 현재 픽처가 있는 계층의 직접 참조 계층의 목록에 대한 함께 배치된 픽처의 인덱스를 나타낸다. 예를 들어, 인덱스는 신택스 요소 inter_layer_col_pic_idx일 수 있다. 그러므로, 참조 픽처 목록을 사용하지 않고 함께 배치된 픽처가 나타난다. SH가 참조 픽처 목록에서의 활성 엔트리의 개수를 오버라이드할 때, 부적합한 시나리오가 회피될 수 있다. 일부 실시예에서, 단계 1202E 이전에, 함께 배치된 픽처가 인터 계층 참조 픽처인지를 나타내는 제1 플래그가 디코딩되고, 함께 배치된 픽처가 인터 계층 참조 픽처인지는 제1 플래그를 기초로 결정된다.
단계 1204E에서, 함께 배치된 픽처가 단기 참조 픽처(STRP)일 때, 델타 픽처 순서 카운트(델타 POC)가 디코딩된다. 나아가, 델타 POC에 의해 POC가 도출될 수 있다. 이 시나리오에서, 참조 픽처 목록을 사용하지 않고 POC를 사용하여 함께 배치된 픽처가 나타난다. 그러므로, SH가 참조 픽처 목록에서의 활성 엔트리의 개수를 오버라이드할 때, 부적합한 시나리오가 회피될 수 있다.
단계 1206E에서, 함께 배치된 픽처가 장기 참조 픽처(LTRP)일 때, POC의 최하위 비트(LSB) 및 POC의 최상위 비트(MSB)가 디코딩된다. 나아가, POC는 LSB 및 MSB에 의해 도출될 수 있다. 이 시나리오에서, 참조 픽처 목록을 사용하지 않고 POC를 사용하여 함께 배치된 픽처가 나타난다. 그러므로, SH가 참조 픽처 목록에서의 활성 엔트리의 개수를 오버라이드할 때, 부적합한 시나리오가 회피될 수 있다. 일부 실시예에서, 단계 1204E 및 1206E 이전에, 함께 배치된 픽처가 단기 참조 픽처인지를 나타내는 제2 플래그가 디코딩되고, 함께 배치된 픽처가 단기 참조 픽처인지는 제2 플래그를 기초로 결정된다.
도 12f 및 도 12g는 본 개시의 일부 실시예에 따른, 예시적인 픽처 파라미터 세트 신택스 구조(1200F)의 부분 및 예시적인 슬라이스 헤더 신택스 구조(1200G)의 부분을 예시한다. 픽처 파라미터 세트 신택스 구조(1200F)는 슬라이스 헤더 신택스 구조(1200G)와 함께, 방법(1200A, 1200B, 1200D 및 1200E)에서 사용될 수 있다. 픽처 파라미터 세트 신택스 구조(1200F)는 도 9a의 신택스 구조(900A)의 부분(960A)을 기초로 수정되고, 이전의 VVC로부터의 변경은 이탤릭체로 도시되고, 제안된 삭제된 신택스는 취소선으로 추가로 도시된다. 슬라이스 헤더 신택스 구조(1200G)는 도 10a의 신택스 구조(1000A)의 부분(1060A)에 기초하여 수정되고, 제안된 삭제된 신택스가 취소선으로 추가로 도시된다. 도 12f 및 도 12g에 도시된 바와 같이, 신택스 요소 ph_collocated_from_l0_flag, ph_collocated_ref_idx, sh_collocated_from_l0_flag 및 sh_collocated_ref_idx는 더 이상 PPS에서도 또는 SH에서도 시그널링되지 않는다.
도 12f에 도시된 바와 같이, 1과 동일한 신택스 요소(1210F)(예를 들어, inter_layer_col_pic_flag)는 시간적 움직임 벡터 예측에 사용된 함께 배치된 픽처가 참조 픽처 목록에서의 ILRP 엔트리에 의해 참조된다는 것을 지정한다. 0과 동일한 신택스 요소(1210F)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록에서의 ILRP 엔트리에 의해 참조되지 않는다는 것을 지정한다. 신택스 요소(1210F)가 존재하지 않을 때, 신택스 요소(1210F)의 값은 0과 동일한 것으로 추론된다. 신택스 요소(1210F)는 함께 배치된 픽처가 인터 계층 참조 픽처인지를 결정하기 위해 1201C에서 시그널링될 수 있다.
1과 동일한 신택스 요소(1220F)(예를 들어, st_col_pic_flag)는 시간적 움직임 벡터 예측에 사용된 함께 배치된 픽처가 참조 픽처 목록에서의 STRP 엔트리에 의해 참조된다는 것을 지정한다. 0과 동일한 신택스 요소(1220F)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록에서의 LTRP 엔트리에 의해 참조된다는 것을 지정한다. 신택스 요소(1210F)가 0과 동일하고 신택스 요소(1220F)가 존재하지 않을 때, 신택스 요소(1220F)의 값은 1과 동일한 것으로 추론된다. 신택스 요소(1220F)는 함께 배치된 픽처가 단기 참조 픽처인지를 결정하기 위해 1203C에서 시그널링될 수 있다. 신택스 요소(1220F)가 1과 동일하면(예를 들어, 도 12c에서의 1203C - 참), (도 12b에 도시된 바와 같이) 단계 1204B가 처리되고, (예를 들어, 도 12c에서의 1204C에서) 델타 픽처 순서 카운트(델타 POC)가 시그널링된다. 신택스 요소(1220F)가 0과 동일하면(예를 들어, 도 12c에서의 1203C - 거짓), (도 12b에 도시된 바와 같은) 단계 1206B가 처리되고, (예를 들어, 도 12c의 1205C에서) POC의 최하위 비트(LSB) 및 POC의 최상위 비트(MSB)가 시그널링된다.
신택스 요소(1230F)(예를 들어, abs_delta_poc_st_col)는 변수 AbsDeltaPocStCol의 값을 지정한다. 도 12h는 본 개시의 일부 실시예에 따른 AbsDeltaPocStCol(1210H)의 도출을 포함하는 예시적인 의사 코드를 도시한다. 신택스 요소(1230F)(예를 들어, abs_delta_poc_st_col)의 값은 0 내지 215-1의 포함 범위에 있을 수 있다.
다시 도 12f를 참조하면, 1과 동일한 신택스 요소(1240F)(예를 들어, sign_delta_poc_st_col_flag)는 변수 DeltaPocValStCol의 값이 0 이상이라는 것을 지정한다. 0과 동일한 신택스 요소(1240F)는 변수 DeltaPocValStCol의 값이 0 미만이라는 것을 지정한다. 신택스 요소(1240F)가 존재하지 않을 때, 신택스 요소(1240F)의 값은 1과 동일한 것으로 추론된다. 도 12i는 본 개시의 일부 실시예에 따른, DeltaPocValStCol의 도출을 포함하는 예시적인 의사 코드를 도시한다. 변수 DeltaPocValStCol은 도 12i에 도시된 바와 같이 도출될 수 있다.
다시 도 12f를 참조하면, 일부 실시예에서, 신택스 요소(1250F)(예를 들어, poc_lsb_lt_col)는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 픽처 순서 카운트 모듈로 MaxPicOrderCntLsb의 값을 지정한다. 신택스 요소(1250F)의 길이는 sps_log2_max_pic_order_cnt_lsb_minus4 + 4 비트이다.
신택스 요소(1260F)(예를 들어, delta_poc_msb_cycle_lt_col)는 다음과 같이 변수 FullPocLtCol의 값을 지정한다.
Figure pct00003
1과 동일한 신택스 요소(1270F)(예를 들어, delta_poc_msb_cycle_col_present_flag)는 신택스 요소(1260F)(예를 들어, delta_poc_msb_cycle_lt_col)가 존재한다는 것을 지정한다. 0과 동일한 신택스 요소(1270B)는 신택스 요소(1260F)가 존재하지 않는다는 것을 지정한다.
추가로 신택스 요소(1270F)에 대해, prevTid0Pic이 ref_pic_lists() 신택스 구조를 참조하는 슬라이스 또는 픽처 헤더와 동일한 nuh_layer_id를 갖고, 0과 동일한 TemporalId를 갖고, RASL 또는 RADL 픽처가 아닌 디코딩 순서에서 이전 픽처라고 한다. setOfPrevPocVals는 다음으로 구성된 세트라고 한다:
- prevTid0Pic의 PicOrderCntVal,
- prevTid0Pic의 RefPicList[ 0 ] 또는 RefPicList[ 1 ]에서의 엔트리에 의해 참조되고 현재 픽처와 동일한 nuh_layer_id를 갖는 각각의 픽처의 PicOrderCntVal,
- 디코딩 순서에서 prevTid0Pic에 후속하고, 현재 픽처와 동일한 nuh_layer_id를 가지며, 디코딩 순서에서 현재 픽처에 선행하는 각각의 픽처의 PicOrderCntVal.
값 모듈로 MaxPicOrderCntLsb가 신택스 요소(1250F)(예를 들어, poc_lsb_lt_col)와 동일한 setOfPocVals에서 하나 보다 많은 값이 있을 때, delta_poc_msb_cycle_present_flag[ i ][ j ]의 값은 1과 동일할 것이다.
신택스 요소(1280F)(예를 들어, inter_layer_col_pic_idx)는, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록에서의 ILRP 엔트리에 의해 참조될 때, 직접 참조 계층의 목록에 대한, 시간적 움직임 벡터에 사용되는 함께 배치된 픽처의 인덱스를 지정한다. 신택스 요소(1280F)의 값은 0 내지 NumDirectRefLayers[ GeneralLayerIdx[ nuh_layer_id ] ] - 1의 포함 범위에 있을 수 있다.
도 12f에 도시된 바와 같이, sps_inter_layer_ref_pics_present_flag(예를 들어, 신택스 요소(720))가 1과 동일할 때, 신택스 요소(1210F)가 시그널링되고, 즉 ILRP는 CLVS에서 하나 이상의 코딩된 픽처의 인터 예측에 사용될 수 있고, 인덱스(예를 들어, 신택스 요소(1280F) inter_layer_col_pic_idx)는 어떤 인터 계층 참조 픽처가 함께 배치된 픽처로 취급되는지를 나타내기 위해 시그널링되고, 이는 도 12b에서의 단계 1202B에 대응한다. 함께 배치된 픽처가 단기 참조 픽처인 경우, 즉 신택스 요소(1220F)(예를 들어, st_col_pic_flag)가 1과 동일한 경우, 델타 POC(예를 들어, 신택스 요소(1230F))가 시그널링되고, 이는 도 12b에서의 단계 1204B에 대응한다. 함께 배치된 픽처가 장기 참조 픽처인 경우, 즉 신택스 요소(1220F)(예를 들어, st_col_pic_flag)가 0과 동일한 경우, POC의 LSB(예를 들어, 신택스 요소(1250F)) 및 POC의 델타 MSB(예를 들어, 신택스 요소(1260F))가 시그널링되며, 이는 도 12b에서의 단계 1206B에 대응한다. 나아가, POC의 MSB는 델타 MSB에 의해 도출될 수 있고, POC는 MSB 및 LSB에 의해 도출될 수 있다. 그러므로, 함께 배치된 픽처는 참조 픽처 목록 구조로부터 독립적으로 나타날 수 있다.
VVC(예를 들어, VVC 드래프트 9)가 픽처 내의 모든 슬라이스에 의해 참조되는 함께 배치된 픽처가 동일한 픽처여야 한다는 제약을 갖는다는 사실을 고려하여, 업데이트된 신택스 구조(1200F 및 1200G)에 따라, 함께 배치된 픽처는 SH가 아닌 PH에만 나타날 수 있다. 결과로서, 픽처 내의 모든 슬라이스가 동일한 함께 배치된 픽처를 갖도록 보장될 수 있고, 제약이 필요하지 않으며, 그러므로 함께 배치된 픽처를 나타내는 효율 및 강력함이 향상된다.
도 12j는 본 개시의 일부 실시예에 따른 방법(1200A, 1200B, 1200C 및 1200D)에서 사용되는 colPic로 표시된 함께 배치된 픽처 및 플래그 colPicFlag를 도출하기 위한 예시적인 의사 코드를 예시한다. 도 12j에 도시된 바와 같이, (시나리오(1210J)에 도시된 바와 같이) 함께 배치된 픽처가 참조 픽처 목록에서의 STRP 엔트리에 의해 참조되는 것, (시나리오(1220J)에 도시된 바와 같이) 함께 배치된 픽처가 참조 픽처 목록에서의 LTRP 엔트리에 의해 참조되는 것, 또는 (시나리오(1230J)에 도시된 바와 같이) 함께 배치된 픽처가 참조 픽처 목록에서의 ILPR 엔트리에 의해 참조되는 것과 같은, 함께 배치된 픽처의 상이한 시나리오에 대해, 픽처 내의 모든 슬라이스는 동일한 함께 배치된 픽처(예를 들어, picA)를 갖는다. 그러므로, 함께 배치된 픽처를 결정하기 위한 강력함이 개선된다.
일부 실시예에서, 다음의 제약: colPic이 "어떠한 참조 픽처도 없음"이 아니고 RefPicList[ 0 ] 또는 RefPicList[ 1 ]에서의 활성 엔트리에 의해 참조되고, ph_temporal_mvp_enabled_flag가 1과 동일할 때, colPicFlag가 0과 동일함이 적용된다는 것이 비트스트림 적합성의 요건이 있다. "어떠한 참조 픽처도 없음"은 RPL에 어떠한 참조 픽처도 없다는 것을 나타내는 마커로 간주될 수 있다. 0과 동일한 colPicFlag는 현재 픽처 및 함께 배치된 픽처가 동일한 픽처 크기 및 동일한 스케일링 윈도우를 갖는다는 것을 나타낸다. 다시 말해서, 시간적 MVP가 활성화될 때, 함께 배치된 픽처는 참조 픽처 목록에 존재해야 하고 참조 픽처 목록 0 또는 참조 픽처 목록 1에서의 활성 엔트리에 의해 참조된다. 그러므로, 함께 배치된 픽처에 대한 강력함이 개선된다.
VVC(예를 들어, VVC 드래프트 9)에서, 함께 배치된 픽처를 식별하는 데 사용되는 ref_pic_list_struct() 및 신택스 요소(PH에서의 신택스 요소(930A)(예를 들어, ph_collocated_from_l0_flag) 및 신택스 요소(940A)(예를 들어, ph_collocated_ref_idx) 및 SH에서의 신택스 요소(1040A)(예를 들어, sh_collocated_from_l0_flag) 및 신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx))는 pps_rpl_info_ph_flag의 값에 의존하여 PH 또는 SH에서 시그널링될 수 있다. pps_rpl_info_ph_flag의 값이 1과 동일할 때, 신택스 요소(930A), 신택스 요소(940A) 및 ref_pic_list_struct()는 PH에서 시그널링되고, 신택스 요소(1040A) 및 신택스 요소(1050A)는 시그널링되지 않는다. 이 경우, 신택스 요소(1040A) 및 신택스 요소(1050A)의 값은 신택스 요소(930A)의 값, 신택스 요소(940A)의 값 및 현재 슬라이스의 슬라이스 타입에 따라 추론된다. 그것이 B 슬라이스인 경우, 신택스 요소(1040A)는 신택스 요소(930A)와 동일한 것으로 추론된다. 그것이 P 슬라이스인 경우, 신택스 요소(1040A)는 신택스 요소(930A)의 값에 관계없이 1과 동일한 것으로 직접적으로 추론된다. 그리고 신택스 요소(1050A)는 P 및 B 슬라이스 모두에 대해 신택스 요소(940A)와 동일한 것으로 추론된다. 하지만, PH에서 시그널링된 신택스 요소(940A)의 경우, 최대 허용 값은 참조 픽처 목록에서의 엔트리의 개수에서 1을 뺀 값이지만, 신택스 요소(1050A)의 경우, 최대 허용 값은 슬라이스 헤더에서 오버라이드될 수 있는 참조 픽처 목록에서의 활성 엔트리의 개수에서 1을 뺀 값이다. 결과로서, 신택스 요소(1050A)가 신택스 요소(940A)와 동일한 것으로 추론될 때, 이는 최대값 제약을 위반할 수 있다.
예를 들어, 신택스 요소(930A)가 0으로 시그널링될 때, 참조 픽처 목록 1에서의 엔트리의 개수(ref_pic_list_structure()에서 시그널링되는 num_ref_entries[1])는 N이고, ph_colocated_ref_idx는 N-1로 시그널링되며, 그 후 이 경우 신택스 요소(1040A)는 0과 동일한 것으로 추론되고 신택스 요소(1050A)는 N-1과 동일한 것으로 추론된다. 그러나 참조 픽처 목록 1에서의 활성 엔트리의 개수는 N 미만의 수로 오버라이드될 수 있다. 이 경우, 비트스트림은 부적합하다.
다른 예시에서, 신택스 요소(930A)가 0으로 시그널링될 때, 참조 픽처 목록 1에서의 엔트리의 개수(ref_pic_list_structure()에서 시그널링되는 num_ref_entries[1])는 N이고, 신택스 요소(940A)는 N-1로 시그널링되고, (활성 엔트리의 개수가 두 참조 픽처 목록에서의 엔트리의 개수와 같다고 가정하면) 활성 엔트리의 개수는 슬라이스 헤더에서 오버라이드되지 않는다. 그러나 현재 슬라이스가 P 슬라이스이면, 신택스 요소(940A)는 1과 동일한 것으로 추론되고, 신택스 요소(1050A)는 N-1과 동일한 것으로 추론된다. 하지만, 참조 픽처 목록 0에서의 엔트리의 개수(ref_pic_list_structure()에서 시그널링되는 num_ref_entries[0])는 N 미만일 수 있다. 결과로서, 비트스트림은 또한 부적합하다.
종래의 코딩 기술에서의 이 결점을 극복하기 위해, (도 13a-13c에서 아래에서 제공된 바와 같은) 본 개시의 일부 실시예에서, SH에서 함께 배치된 픽처는 또한 참조 픽처 목록에서 활성 엔트리의 개수를 기초로 추론된다.
도 13a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에서의 활성 엔트리의 개수를 사용하여, SH에서 함께 배치된 픽처의 인덱스를 결정하기 위한 예시적인 비디오 인코딩 방법(1300A)의 흐름도를 도시한다. 방법(1300A)은 인코더에 의해(예를 들어, 도 2a의 프로세스(200A) 또는 도 2b의 프로세스(200B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1300A)을 수행할 수 있다. 일부 실시예에서, 방법(1300A)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 13a를 참조하면, 방법(1300A)은 다음의 단계 1302A 내지 1306A를 포함할 수 있다.
단계 1302A에서, 슬라이스 헤더에서 함께 배치된 픽처의 참조 인덱스를 나타내기 위한 파라미터를 시그널링할지가 결정된다. VVC에서, 슬라이스 헤더에서 함께 배치된 픽처의 참조 인덱스를 나타내기 위한 파라미터는 신택스 요소 sh_collocated_ref_idx일 수 있다.
단계 1304A에서, 파라미터가 슬라이스 헤더에서 시그널링되지 않을 때, 함께 배치된 픽처는 픽처 헤더에서 시그널링되는 함께 배치된 픽처의 참조 인덱스(예를 들어, ph_collocated_ref_idx)의 값과 타겟 참조 픽처 목록에서의 활성 엔트리의 개수에서 1을 뺀 값(예를 들어, NumRefIdxActive[ !sh_collocated_from_l0_flag ] - 1) 중 더 작은 것과 동일한 값을 갖는 인덱스에 의해 참조되는 픽처로 결정된다. 참조 픽처 목록에서 타겟 참조 픽처 목록은 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 도출되는지를 나타내는 플래그에 의해 나타난다. 그러므로, 신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx)의 값을 추론할 때, 참조 픽처의 활성 엔트리의 개수가 고려된다. PH에서 시그널링된 신택스 요소(940A)(예를 들어, ph_collocated_ref_idx)의 값이 타겟 참조 픽처 목록에서의 활성 엔트리의 개수 이상인 경우, 신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx)의 추론된 값은 타겟 참조 픽처 목록에서의 활성 엔트리의 개수 미만으로 클립된다. 참조 픽처 목록에서의 타겟 참조 픽처 목록은 신택스 요소(1040A)(예를 들어, sh_collocated_from_l0_flag)에 의해 나타난다.
단계 1306A에서, 현재 픽처는 함께 배치된 픽처를 기초로 인코딩되며, 여기서 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용된다. 그러므로, 부적합한 비트스트림이 회피되고, 함께 배치된 픽처의 강력함이 개선된다.
도 13b는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에서의 활성 엔트리의 개수를 사용하여 SH에서 함께 배치된 픽처의 인덱스를 결정하기 위한 예시적인 비디오 디코딩 방법(1300B)의 흐름도를 도시한다. 방법(1300B)은 디코더에 의해(예를 들어, 도 3a의 프로세스(300A) 또는 도 3b의 프로세스(300B))에 의해 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1300B)을 수행할 수 있다. 일부 실시예에서, 방법(1300B)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 13b를 참조하면, 방법(1300B)은 다음의 단계 1302B 내지 1310B를 포함할 수 있다.
단계 1302B에서, 디코더는 비디오 비트스트림(예를 들어, 도 3b에서의 비디오 비트스트림(228))을 수신하고, 비디오 비트스트림은 인터 예측을 사용하여 코딩될 수 있다. 그러므로, 참조 픽처는, 예를 들어, 참조 픽처 목록 0 및 참조 픽처 목록 1에 의해 도출될 수 있고, 이들 각각은 참조 픽처로 사용될 재구성된 픽처의 목록을 DPB(예를 들어, 도 3b에서의 버퍼(234))에 포함한다.
단계 1304B에서, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스를 나타내는 파라미터가 슬라이스 헤더에 존재하는지가 결정된다. VVC에서, 슬라이스 헤더에서 함께 배치된 픽처의 참조 인덱스를 나타내기 위한 파라미터는 신택스 요소 sh_collocated_ref_idx일 수 있다.
단계 1306B에서, 파라미터가 존재하지 않을 때, 파라미터의 값은 픽처 헤더에 존재하는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스(예를 들어, ph_collocated_ref_idx)의 값 및 타겟 참조 픽처 목록에서의 활성 엔트리의 개수에서 1을 뺀 값(예를 들어, NumRefIdxActive[ !sh_collocated_from_l0_flag ] - 1) 중 더 작은 것과 동일한 것으로 결정된다. 참조 픽처 목록에서 타겟 참조 픽처 목록은 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 도출되는지를 나타내는 플래그에 의해 나타난다. 그러므로, 참조 픽처에서의 활성 엔트리의 개수는 신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx)의 값을 결정할 때 고려된다. PH에서 시그널링된 신택스 요소(940A)(예를 들어, ph_collocated_ref_idx)의 값이 타겟 참조 픽처 목록의 활성 엔트리의 개수 이상인 경우, 신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx)의 결정된 값은 타겟 참조 픽처 목록에서 활성 엔트리의 개수 미만으로 클립된다. 참조 픽처 목록에서의 타겟 참조 픽처 목록은 신택스 요소(1040A)(예를 들어, sh_collocated_from_l0_flag)에 의해 나타난다. 그러므로, 부적합한 비트스트림이 회피된다.
단계 1308B에서, 함께 배치된 픽처는 타겟 참조 픽처 목록에서의 파라미터와 동일한 값을 갖는 인덱스에 의해 참조되는 픽처로서 결정된다. 함께 배치된 픽처의 강력함이 개선된다.
단계 1310B에서, 현재 픽처는 함께 배치된 픽처를 기초로 디코딩된다. 디코딩 프로세스의 신뢰성이 개선된다.
도 13c는 본 개시의 일부 실시예에 따른, 예시적인 의미(1300C)의 일부를 예시한다. 의미(1300C)는 방법(1300A) 및 방법(1300B)에서 사용될 수 있다. 도 13c에 도시된 바와 같이, 이전 VVC로부터의 변경은 이탤릭체로 도시되며, 제안된 삭제된 신택스는 신택스(1310C)에서 취소선으로 추가로 도시된다. 신택스(1310C)는 도 13a에서의 단계 1306A 및 도 13b에서의 단계 1306B에 대응한다. 참조 픽처 목록 정보가 PH 신택스 구조에 존재하고, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 SH에는 존재하지 않는다는 것을 의미하는, pps_rpl_info_in_ph_flag(예를 들어, 신택스 요소(830))가 1과 동일한 경우, sh_collocated_ref_idx(예를 들어, 신택스 요소(1050A))의 값은 min(ph_collocated_ref_idx, NumRefIdxActive[ !sh_collocated_from_l0_flag ] - 1)과 동일한 것으로 추론되고, 즉 sh_collocated_ref_idx의 값은 픽처 헤더에서의 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스(예를 들어, ph_collocated_ref_idx)의 값 및 타겟 참조 픽처 목록에서 활성 엔트리의 개수에서 1을 뺀 값(예를 들어, NumRefIdxActive[ !sh_collocated_from_l0_flag ] - 1) 중 더 작은 것과 동일하게 설정된다. 타겟 참조 픽처 목록은 신택스 요소(1040A)(예를 들어, sh_collocated_from_l0_flag)에 의해 나타나며, 이는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 도출되는 참조 픽처 목록이다. 시간적 MVP에 사용되는 함께 배치된 픽처가 참조 픽처 목록 0으로부터 도출될 때, 타겟 참조 픽처 목록은 참조 픽처 목록 0이다. 시간적 MVP에 사용되는 함께 배치된 픽처가 참조 픽처 목록 1로부터 도출될 때, 타겟 참조 픽처 목록은 참조 픽처 목록 1이다.
VVC(예를 들어, VVC 드래프트 9)에서, ref_pic_list_struct()는 SPS에서 시그널링되거나, 또는 신택스 구조 ref_pic_lists()에 포함될 수 있다. SPS에서 시그널링되는 ref_pic_list_structure()가 PH 또는 SH에서 선택되지 않을 때, 다른 ref_pic_list_structure()가 PH 또는 SH에서 시그널링되는 ref_pic_lists()에서 직접적으로 시그널링될 수 있다. 하지만, VVC(예를 들어, VVC 드래프트 9)는 다음을 제공한다: (0 또는 1과 동일한) listIdx의 각각의 값에 대해, 현재 픽처의 슬라이스 헤더에서 직접적으로 시그널링되는 하나의 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조가 있을 수 있기 때문에, 디코더는 sps_num_ref_pic_lists[ i ]에 하나의 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조를 더한 것의 총 개수에 대한 메모리를 할당해야 한다. 이는 위의 관점에서 정확하지 않다.
종래의 코딩 기술에서의 이러한 결점을 극복하기 위해, (도 14a 및 도 14b에서 아래에 제공된 바와 같이) 본 개시의 일부 실시예에서, (0 또는 1과 동일한) listIdx의 각각의 값에 대해, 하나의 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조가 현재 픽처의 픽처 헤더 또는 슬라이스 헤더에서 직접적으로 시그널링되는 경우, 디코더는 sps_num_ref_pic_lists[ i ]에 하나의 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조를 더한 것의 총 개수에 대한 메모리를 할당한다.
도 14a는 본 개시의 일부 실시예에 따른, 메모리를 할당하기 위한 예시적인 비디오 처리 방법(1400A)의 흐름도를 예시한다. 방법(1400A)은 인코더에 의해(예를 들어, 도 2a의 프로세스(200A) 또는 도 2b의 프로세스(200B)에 의해), 디코더에 의해(예를 들어, 도 3a의 프로세스(300A) 또는 도 3b의 프로세스(300B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1400A)을 수행할 수 있다. 일부 실시예에서, 방법(1400A)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 14a를 참조하면, 방법(1400A)은 다음의 단계 1402A 내지 1406A를 포함할 수 있다:
단계 1402A에서, 시퀀스 파라미터 세트(SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수가 도출된다. 하나의 추가적인 RPL이 (픽처 헤더 또는 슬라이스 헤더에서) 나중에 시그널링될 가능성이 있기 때문에, 총 개수를 얻기 위해 추가적인 개수 1이 SPS에서의 참조 픽처 목록 구조의 개수에 추가된다.
단계 1404A에서, 참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링된다는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리가 할당된다. 그러므로, 인코딩/디코딩 이전에 인코더/디코더에 의해 현재 픽처의 픽처 헤더에서 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 추가적인 RPL에 대해 더 많은 메모리가 할당되며, 이는 비디오 처리에 도움을 줄 것이다.
단계 1406A에서, 현재 픽처 또는 현재 슬라이스가 할당된 메모리를 사용하여 처리된다. 추가적인 RPL에 대해 할당된 메모리가 더 신뢰성이 있기 때문에, 인코딩/디코딩 프로세스가 더 정확하고 강력할 수 있다.
도 14b는 본 개시의 일부 실시예에 따른, 예시적인 의미(1400B)의 일부를 예시한다. 의미(1400B)는 방법(1400A)에서 사용될 수 있고, 이전의 VVC로부터의 변경은 이탤릭체로 도시된다(블록(1410B) 참조). 하나의 추가적인 RPL이 (픽처 헤더 또는 슬라이스 헤더에서) 나중에 시그널링되는 가능성을 위해, 추가적인 RPL에 더 많은 메모리가 할당된다.
VVC(예를 들어, VVC 드래프트 9)에서, 신택스 요소(530A)(예를 들어, rpl_idx[ i ])는 SPS에 포함된 ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조 - listIdx는 i와 동일함 - 의 목록에 대한, 현재 픽처의 참조 픽처 목록 i의 도출에 사용되는 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조 - listIdx는 i와 동일함 - 의 인덱스를 지정한다. 이 의미는, 참조 픽처 목록이 픽처 또는 슬라이스에 대해 도출될 수 있기 때문에 정확하지 않을 수 있다.
VVC(예를 들어, VVC 드래프트 9)에서, 신택스 요소(530A)가 존재하지 않을 때, 신택스 요소(530A)의 값을 추론하기 위한 추론 규칙이 있고: 신택스 요소(510A)(예를 들어, rpl_sps_flag[ i ])가 1과 동일하고 신택스 요소(520A)(예를 들어, pps_rpl1_idx_present_flag)가 0과 동일한 경우, rpl_idx[1]의 값은 rpl_idx[ 0 ]와 동일한 것으로 추론되고, 그렇지 않으면 rpl_idx[1]의 값이 0과 동일한 것으로 추론된다. 추론 규칙은 약간의 문제를 갖는다. 첫째, rpl_idx[1]에 대해서만 추론 규칙이 있고, rpl_idx[0]에 대해서는 어떠한 추론 규칙도 없다. 둘째, 신택스 요소(510A)가 1과 동일하고 신택스 요소(520A)가 0과 동일할 때, rpl_idx[0]이 시그널링된다는 어떠한 보장도 없다. 따라서, rpl_idx[1]의 값을 rpl_idx[0]과 동일한 것으로 추론하는 것은 이 경우에 문제가 될 수 있다. 한마디로, VVC(예를 들어, VVC 드래프트 9)에서의 추론 규칙은 rpl_idx[0] 및 rpl_idx[1] 모두가 존재하지 않을 때, 이들 모두가 디코더 측에서 적절한 값을 얻는 것을 보장할 수 없다.
종래의 코딩 기술에서의 이 결점을 극복하기 위해, (예를 들어, 도 15a-15c에서 아래에 제공된 바와 같은) 본 개시의 일부 실시예에서, 신택스 요소(530A)(예를 들어, rpl_idx[i])에 대한 업데이트된 의미가 제공된다.
도 15a는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에서 인덱스를 결정하기 위한 예시적인 비디오 인코딩 방법(1500A)의 흐름도를 예시한다. 방법(1500A)은 인코더에 의해(예를 들어, 도 2a의 프로세스(200A) 또는 도 2b의 프로세스(200B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1500A)을 수행할 수 있다. 일부 실시예에서, 방법(1500)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 15a를 참조하면, 방법(1500A)은 다음의 단계 1502A 내지 1514A를 포함할 수 있다:
단계 1502A에서, 픽처 파라미터 세트(PPS)에서의 제1 플래그(예를 들어, pps_rpl1_idx_present_flag)는 제2 플래그(예를 들어, rpl_sps_flag[1]) 및 제1 인덱스(예를 들어, rpl_idx[1])가 PPS를 참조하는 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내기 위해 시그널링된다. 제1 플래그(예를 들어, pps_rpl1_idx_present_flag)는, 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스(예를 들어, rpl_idx[1])는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록과 연관된 참조 픽처 목록 구조의 인덱스이다. 그 후, 제2 플래그(예를 들어, rpl_sps_flag[1])가 시그널링될 수 있다.
단계 1504A에서, 제1 인덱스(예를 들어, rpl_idx[1]) 및 제2 인덱스(예를 들어, rpl_idx[0])가 시그널링될지가 결정된다. 제2 인덱스(예를 들어, rpl_idx[0])는 SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스이다.
제2 인덱스(예를 들어, rpl_idx[0])가 시그널링되지 않을 때, 제2 인덱스(예를 들어, rpl_idx[0])의 값은 단계 1506A에 의해 결정될 수 있다.
단계 1506A에서, 참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스(예를 들어, rpl_idx[0])의 값은 0과 동일한 것으로 결정된다. 도 5a를 참조하면, sps_num_ref_pic_lists[0]이 1 이하일 때, rpl_idx[0]는 시그널링되지 않는다. 그러므로, 단계 1506A를 통해, rpl_idx[0]이 시그널링되지 않은 상황에 대해 rpl_idx[0]의 값이 결정되어, rpl_idx[0]을 추론하기 위한 신뢰성을 향상시킨다.
제1 인덱스(예를 들어, rpl_idx[1])가 시그널링되지 않을 때, 제1 인덱스(예를 들어, rpl_idx[0])의 값은 단계 1508A 및 1510A에 의해 결정될 수 있다.
단계 1508A에서, 참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스(예를 들어, rpl_idx[1])의 값은 0과 동일한 것으로 결정된다. 도 5a를 참조하면, sps_num_ref_pic_lists[1]이 1 이하일 때, rpl_idx[1]는 시그널링되지 않는다. 그러므로, 단계 1508A를 통해, rpl_idx[1]이 시그널링되지 않은 상황에 대해 rpl_idx[1]의 값이 결정되어, rpl_idx[1]을 추론하기 위한 신뢰성을 향상시킨다.
단계 1510A에서, 제1 플래그(예를 들어, pps_rpl1_idx_present_flag)가 0과 동일하고 제2 플래그(예를 들어, rpl_sps_flag[1])가 1과 동일할 때, 제1 인덱스(예를 들어, rpl_idx[1])의 값은 제2 인덱스(예를 들어, rpl_idx[0])의 값과 동일한 것으로 결정된다. (단계 1508A에서) sps_num_ref_pic_lists[0]이 1 이하인 경우 rpl_idx[0]의 값이 0으로 설정되고, 그렇지 않으면(예를 들어, sps_num_ref_pic_list[0]>1), rpl_idx[0]이 시그널링되기 때문에(도 5a를 참조), rpl_idx[0]의 값은 모든 시나리오에 대해 결정된다. 그러므로, 이 경우, rpl_idx[1]의 값은 결정된 rpl_idx[0]의 값과 동일하게 설정된다. 따라서, 모든 시나리오에 대해(예를 들어, rpl_idx[0]이 시그널링되는지 여부에 관계없이), rpl_idx[1]의 값이 결정된다. rpl_idx[i](rpl_idx[0] 및 rpl_idx[1] 모두)의 값은 rpl_idx[i]가 시그널링되지 않는 경우 적절한 값을 얻도록 보장될 수 있다.
제1 인덱스(예를 들어, rpl_idx[1]) 및 제2 인덱스(예를 들어, rpl_idx[0])의 값의 결정 이후, 단계 1512A에서, 참조 픽처 목록은 제1 인덱스 및 제2 인덱스를 기초로 결정된다. 제1 인덱스(예를 들어, rpl_idx[1]) 및 제2 인덱스(예를 들어, rpl_idx[0])의 값의 결정은 제1 인덱스(예를 들어, rpl_idx[1]) 및 제2 인덱스(예를 들어, rpl_idx[0])가 시그널링되는지의 여부에 관계 없이 그 경우에 대해 보장되기 때문에, 참조 픽처 목록에 대한 결정이 더 신뢰성이 있을 수 있다.
단계 1514A에서, 현재 픽처는 참조 픽처 목록을 기초로 인코딩된다. 그러므로, 인코딩 프로세스에 대한 강력함이 개선된다.
일부 실시예에서, 단계 1510A는, rpl_idx[0]가 0과 동일한 것으로 추론되기 때문에, 참조 픽처 목록 0의 하나의 참조 픽처 목록 구조가 SPS에 존재할 때(단계 1508A를 참조), "rpl_idx[i]은 참조 픽처 목록 i에 대한 하나의 참조 픽처 목록 구조가 SPS에 존재하는 것에 응답하여 0과 동일한 것으로 결정됨"으로 대체될 수 있다. 인코딩 프로세스의 효율이 더욱 향상될 수 있다.
도 15b는 본 개시의 일부 실시예에 따른, 참조 픽처 목록에서 인덱스를 결정하기 위한 예시적인 비디오 디코딩 방법(1500B)의 흐름도를 예시한다. 방법(1500B)은 디코더에 의해(예를 들어, 도 3a의 프로세스(300A) 또는 도 3b의 프로세스(300B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1500B)을 수행할 수 있다. 일부 실시예에서, 방법(1500B)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 15b를 참조하면, 방법(1500B)은 다음의 단계 1502B - 1514B를 포함할 수 있다:
단계 1502B에서, 디코더는 비디오 비트스트림(예를 들어, 도 3b에서의 비디오 비트스트림(228))을 수신하고, 비디오 비트스트림은 인터 예측을 사용하여 코딩될 수 있다. 참조 픽처는, 예를 들어, 참조 픽처 0 및 참조 픽처 목록 1에 의해 도출될 수 있으며, 이들 각각은 참조 픽처로서 사용될 재구성된 픽처의 목록을 DPB(예를 들어, 도 3b에서의 버퍼(234))에 포함한다.
단계 1504B에서, 제2 플래그(예를 들어, rpl_sps_flag[1]) 및 제1 인덱스(예를 들어, rpl_idx[1])가 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내는 제1 플래그(예를 들어, pps_rpl1_idx_present_flag)의 값이 결정된다. 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스이다. 그 후, 제2 플래그(예를 들어, rpl_sps_flag[1])의 값이 결정될 수 있다.
단계 1506B에서, 제1 인덱스(예를 들어, rpl_idx[1]) 및 제2 인덱스(예를 들어, rpl_idx[0])가 존재하는지가 결정된다. 제2 인덱스(예를 들어, rpl_idx[0])는, SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스이다.
제2 인덱스(예를 들어, rpl_idx[0])가 존재하지 않을 때, 제2 인덱스(예를 들어, rpl_idx[0])의 값은 단계 1508B에 의해 결정될 수 있다.
단계 1508B에서, 참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스(예를 들어, rpl_idx[0])의 값은 0과 동일한 것으로 결정된다. 도 5a를 참조하면, sps_num_ref_pic_lists[0]이 1 이하일 때, rpl_idx[0]은 시그널링되지 않으며, 따라서 rpl_idx[0]이 존재하지 않는다. 이 경우, rpl_idx[0]은 0과 동일하게 설정된다. 그러므로, 단계 1508B를 통해, rpl_idx[0]의 값은 rpl_idx[0]이 존재하지 않는 상황에 대해 결정되어, rpl_idx[0]을 추론하기 위한 신뢰성을 향상시킨다.
제1 인덱스(예를 들어, rpl_idx[1])가 존재하지 않을 때, 제1 인덱스(예를 들어, rpl_idx[1])의 값은 단계 1510B 및 1512B에 의해 결정될 수 있다.
단계 1510B에서, 참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스(예를 들어, rpl_idx[1])의 값은 0과 동일한 것으로 결정된다. 도 5a를 참조하면, sps_num_ref_pic_lists[1]이 1 이하일 때, rpl_idx[1]는 시그널링되지 않으며, 따라서 rpl_idx[1]은 존재하지 않는다. 그러므로, 단계 1510B를 통해, rpl_idx[1]이 시그널링되지 않은 상황에 대해 rpl_idx[1]의 값이 결정되어, rpl_idx[1]을 추론하는 신뢰성을 향상시킨다.
단계 1512B에서, 제1 플래그(예를 들어, pps_rpl1_idx_present_flag)가 0과 동일하고 제2 플래그(예를 들어, rpl_sps_flag[1])가 1과 동일할 때, 제1 인덱스(예를 들어, rpl_idx[1])의 값은 제2 인덱스(예를 들어, rpl_idx[0])의 값과 동일한 것으로 결정된다. (단계 1508A에서) sps_num_ref_pic_lists[0]이 1이하인 경우 rpl_idx[0]의 값이 0으로 설정되고, 그렇지 않으면(예를 들어, sps_num_ref_pic_list[0]>1), rpl_idx[0]이 시그널링되기 때문에(도 5a를 참조), rpl_idx[0]의 값은 모든 시나리오에 대해 결정된다. 그러므로, 이 경우, rpl_idx[1]의 값은 결정된 rpl_idx[0]의 값과 동일하게 설정된다. 따라서, 모든 시나리오에 대해(예를 들어, rpl_idx[0]이 존재하는지의 여부에 관계없이), rpl_idx[1]의 값이 결정된다. rpl_idx[i](rpl_idx[0] 및 rpl_idx[1] 모두)의 값은 rpl_idx[i]가 존재하지 않는 경우 적절한 값을 얻도록 보장될 수 있다.
1514B에서, 현재 픽처는 제1 인덱스(예를 들어, rpl_idx[1]) 및 제2 인덱스(예를 들어, rpl_idx[0])에 기초하여 디코딩된다. 제1 인덱스(예를 들어, rpl_idx[1]) 및 제2 인덱스(예를 들어, rpl_idx[0])의 값의 결정이 제1 인덱스(예를 들어, rpl_idx[1]) 및 제2 인덱스(예를 들어, rpl_idx[0])이 존재하는지에 관계 없이 그 경우에 대해 보장되기 때문에, 참조 픽처 목록에 대한 결정은 더욱 신뢰성이 있을 수 있다.
일부 실시예에서, 단계 1514B는, 참조 픽처 목록 0의 하나의 참조 픽처 목록 구조가 SPS에 존재할 때, rpl_idx[0]이 0과 동일한 것으로 추론되기 때문에(단계 1508B 참조), "참조 픽처 목록 i에 대해 하나의 참조 픽처 목록 구조가 SPS에 존재한다는 것에 응답하여, rpl_idx[ i ]가 0과 동일한 것으로 추론됨"으로 대체될 수 있다. 디코딩 프로세스의 효율이 추가로 개선될 수 있다.
도 15c는 본 개시의 일부 실시예에 따른 예시적인 의미(1500C)의 일부를 예시한다. 의미(1500C)는 방법(1500A 및 1500B)에서 사용될 수 있다. 도 15c에 도시된 바와 같이, 이전 VVC로부터의 변경은 이탤릭체로 도시되고, 제안된 삭제된 신택스는 취소선으로 추가로 도시된다(블록 1510C 및 1520C 참조). 두 개의 대안적인 도출 설명이 제공된다. 일부 실시예에서, rpl_idx[i]가 존재하지 않는 경우에 대해 블록(1510C)에 도시된 바와 같이, 참조 픽처 목록 i에 대해 최대 하나의 참조 픽처 목록 구조가 있는 경우(예를 들어, sps_num_ref_pic_list[i]가 1 이하인 경우), rpl_idx[i]의 값은 0과 동일한 것으로 추론되고; 그렇지 않으면(참조 픽처 i에 대한 최대 하나의 참조 픽처 목록 구조가 있고, 즉 sps_num_ref_pic_list[i]가 1보다 큼), i가 1과 동일하고 즉 sps_num_ref_pic_list[i]가 1보다 클 때, rpl_idx[1]의 값은 rpl_idx[0]과 동일한 것으로 추론된다. 블록(1520C)과 블록(1510C) 사이의 차이는 "그렇지 않으면" 및 "i가 1과 동일함"의 표현이 "sps_num_ref_pic_list[1]이 1보다 큼"으로 상세히 해석된다는 것이다. 일부 실시예에서, "sps_num_ref_pic_list[i]가 1 이하인 경우"(블록(1511C) 및 블록(1521C) 참조)란 조건은 "sps_num_ref_pic_list[i]가 1과 동일한 경우"로 대체될 수 있다.
VVC(예를 들어, VVC 드래프트 9)에서, 1과 동일한 신택스 요소(1010A)(예를 들어, sh_num_ref_idx_active_override_flag)는 신택스 요소 sh_num_ref_idx_active_minus1[ 0 ]이 P 및 B 슬라이스에 대해 존재하고 신택스 요소 sh_num_ref_idx_active_minus1[ 1 ]이 B 슬라이스에 대해 존재하는 것을 지정한다. 0과 동일한 신택스 요소(1010A)는 신택스 요소 sh_num_ref_idx_active_minus1[ 0 ] 및 sh_num_ref_idx_active_minus1[ 1 ]이 존재하지 않는다는 것을 지정한다. 하지만, 도 10a에 도시된 바와 같이, 신택스 요소(1010A)가 1과 동일할 때, num_ref_entries[ i ][ RplsIdx[ i ] ]의 값은 sh_num_ref_idx_active_minus1[ i ]를 시그널링하기 위해 추가로 검사된다. 신택스 요소 sh_num_ref_idx_active_minus1[ i ]는, 신택스 요소(1010A)가 1과 동일하고 num_ref_entries[ i ][ RplsIdx[ i ] ]가 1보다 클 때에만, 시그널링된다. 결과로서, 1과 동일한 신택스 요소(1010A)는 반드시 sh_num_ref_idx_active_minus1[ i ]이 시그널링된다는 것을 의미하지는 않는다.
종래의 코딩 기술에서의 이러한 결점을 극복하기 위해, (도 16a - 16c에서 아래에 제공된 것과 같은) 본 개시의 일부 실시예에서, 인코딩/디코딩 프로세스의 효율을 개선하기 위해 신택스 요소(1010A)에 대한 업데이트된 의미가 제공된다.
도 16a는 본 개시의 일부 실시예에 따른, 존재하는 슬라이스 헤더에서의 활성 참조 인덱스 개수를 나타내기 위한 예시적인 비디오 인코딩 방법(1600A)의 흐름도를 예시한다. 방법(1600A)은 인코더에 의해(예를 들어, 도 2a의 프로세스(200A) 또는 도 2b의 프로세스(200B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1600A)을 수행할 수 있다. 일부 실시예에서, 방법(1600A)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 16a를 참조하면, 방법(1600A)은 다음의 단계 1602A - 1608A를 포함할 수 있다:
단계 1602A에서, 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그가 슬라이스 헤더에서 시그널링된다. 예를 들어, 신택스 요소 sh_num_ref_idx_active_override_flag는 참조 픽처 목록 i(예를 들어, sh_num_ref_idx_active_minus1[i])의 활성 참조 인덱스 개수(i는 0 또는 1과 동일함)가 슬라이스 헤더에 존재하는지의 여부를 나타내기 위해 시그널링된다. 활성 참조 인덱스 개수는 현재 슬라이스를 인코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용된다. 현재 슬라이스를 인코딩하는 데 사용되는 참조 인덱스의 개수는 활성 참조 인덱스 개수로부터 도출된 최대 개수 이하일 수 있다.
단계 1604A에서, 활성 참조 인덱스 개수가 존재하는지가 결정된다. 제1 플래그가 활성 참조 인덱스 개수가 존재한다는 것을 나타낼 때, 신택스 요소 sh_num_ref_idx_active_minus1[ 0 ]는 P 및 B 슬라이스에 대해 존재하고, 신택스 요소 sh_num_ref_idx_active_minus1[ 1 ]는 B 슬라이스에 대해 존재한다. 그 후, 단계 1606A 및 단계 1608A가 수행된다.
단계 1606A에서, 참조 픽처 목록 0의 엔트리의 개수가 먼저 결정되고, 참조 픽처 목록 0의 엔트리의 개수(예를 들어, num_ref_entries[ 0][ RplsIdx[0 ] ])가 1보다 큰 것으로 결정되는 경우, 참조 픽처 목록 0의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[ 0 ])는 P 및 B 슬라이스에 대해 슬라이스 헤더에서 시그널링된다.
단계 1608A에서, 참조 픽처 목록 1의 엔트리의 개수가 먼저 결정되고, 참조 픽처 목록 1의 엔트리의 개수(예를 들어, num_ref_entries[ 1][ RplsIdx[1 ] ])가 1보다 큰 것으로 결정되는 경우, 참조 픽처 목록 1의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[ 1 ])는 B 슬라이스에 대해 슬라이스 헤더에서 시그널링된다.
단계 1606A 및 단계 1608A에서, 참조 픽처 목록 i의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[ i ])는, 참조 픽처 목록 i의 엔트리의 개수(예를 들어, num_ref_entries[i][ RplsIdx [i] ] )가 1보다 클 때 슬라이스 레벨에서 시그널링된다.
그러므로, sh_num_ref_idx_active_override_flag가 1과 동일할 때 시그널링되는 sh_num_ref_idx_active_minus1[ i ]에 대한 불확실성이 제거되고, 인코딩 프로세스에 대한 정확성 및 강력함이 개선될 수 있다.
일부 실시예에서, 방법(1600A)은 단계 1610A 및 1612A를 더 포함할 수 있다. 제1 플래그가 활성 참조 인덱스 개수가 존재하지 않는다는 것을 나타낼 때, 신택스 요소 sh_num_ref_idx_active_minus1[ i ]는 존재하지 않는다. 그 후, 단계 1610A 및 단계 1612A가 수행된다.
단계 1610A에서, 참조 픽처 목록 0의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[0])를 시그널링하는 것은 P 및 B 슬라이스에 대해 슬라이스 헤더에서 스킵된다. 다시 말해, P 및 B 슬라이스에 대해 슬라이스 헤더에 시그널링되는 어떠한 sh_num_ref_idx_active_minus1[ 0 ]도 없다.
단계 1612A에서, 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 것은 B 슬라이스에 대해 슬라이스 헤더에서 스킵된다. 다시 말해, B 슬라이스에 대해 슬라이스 헤더에 시그널링되는 어떠한 sh_num_ref_idx_active_minus1[1]도 없다.
그러므로, 활성 참조 인덱스 개수가 존재하지 않을 때, 활성 참조 개수를 시그널링하는 것을 스킵함으로써, 인코딩 프로세스가 더욱 효율적일 수 있다.
도 16b는 본 개시의 일부 실시예에 따른, 슬라이스 헤더에 활성 참조 인덱스 개수를 나타내기 위한 예시적인 비디오 디코딩 방법(1600B)의 흐름도를 예시한다. 방법(1600B)은 디코더에 의해(예를 들어, 도 3a의 프로세스(300A) 또는 도 3b의 프로세스(300B))에 의해 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1600B)을 수행할 수 있다. 일부 실시예에서, 방법(1600B)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 16a를 참조하면, 방법(1600B)은 다음의 단계 1602B-1608B를 포함할 수 있다.
단계 1602B에서, 디코더는 슬라이스 헤더 및 픽처 헤더 신택스를 포함하는 비디오 비트스트림(예를 들어, 도 3b에서의 비디오 비트스트림(228))을 수신하고, 비디오 비트스트림은 인터 예측을 사용하여 코딩될 수 있다. 참조 픽처는 예를 들어 참조 픽처 0 및 참조 픽처 목록 1에 의해 도출될 수 있으며, 이들 각각은 참조 픽처로 사용될 재구성된 픽처의 목록을 DPB(예를 들어, 도 3b에서의 버퍼(234))에 포함한다.
단계 1604B에서, 활성 참조 인덱스 개수가 존재하는지를 나타내는 슬라이스 헤더에서 시그널링된 제1 플래그의 값이 결정된다. 일부 실시예에서, 제1 플래그는 신택스 요소 sh_num_ref_idx_active_override_flag이며, 이는 참조 픽처 목록 i의 활성 참조 인덱스(예를 들어, sh_num_ref_idx_active_minus1[i])(i는 0 또는 1과 동일함)가 존재하는지 여부를 나타낼 수 있다. 활성 참조 인덱스 개수는 현재 슬라이스를 디코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용된다. 현재 슬라이스를 디코딩하는데 사용되는 참조 인덱스의 개수는 활성 참조 인덱스 개수로부터 도출된 최대 개수 이하일 수 있다.
제1 플래그의 값이 활성 참조 인덱스 개수가 존재한다는 것을 나타내는 값으로 결정될 때, 신택스 요소 sh_num_ref_idx_active_minus1[ 0 ]는 P 및 B 슬라이스에 대해 존재하고 신택스 요소 sh_num_ref_idx_active_minus1[ 1 ]는 B 슬라이스에 대해 존재한다. 그 후, 단계 1606B 및 단계 1608B가 수행된다.
단계 1606B에서, 참조 픽처 목록 0의 엔트리의 개수(예를 들어, num_ref_entries[0][ RplsIdx[0 ] ])가 결정되고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 큰 것으로 결정되는 경우, 참조 픽처 목록 0의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[ 0 ])는 P 및 B 슬라이스에 대해 슬라이스 헤더에서 디코딩된다.
단계 1608B에서, 참조 픽처 목록 1의 엔트리의 개수(예를 들어, num_ref_entries[ 1][ RplsIdx[1 ] ] )가 결정되고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 큰 것으로 결정되는 경우, 참조 픽처 목록 1의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[ 1 ])는 B 슬라이스에 대해 슬라이스 헤더에서 디코딩된다.
단계 1606B 및 단계 1608B를 통해, 참조 픽처 목록 i의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[ i ])는, 참조 픽처 목록 i의 엔트리의 개수(예를 들어, num_ref_entries[i][ RplsIdx[i]])가 1보다 클 때 시그널링된다. 그러므로, sh_num_ref_idx_active_override_flag가 1과 동일할 때 시그널링되는 sh_num_ref_idx_active_minus1[ i ]에 대한 불확실성이 제거된다.
일부 실시예에서, 방법(1600B)은 단계 1610B 및 단계 1612B를 더 포함할 수 있다. 제1 플래그의 값이 활성 참조 인덱스 개수가 존재하지 않는다는 것을 나타내는 값인 것으로 결정될 때, 신택스 요소 sh_num_ref_idx_active_minus1[ i ]는 시그널링되지 않는다. 그 후, 단계 1610B 및 단계 1612B가 수행된다.
단계 1610B에서, 참조 픽처 목록 0의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[ 0 ])를 디코딩하는 것은 P 및 B 슬라이스에 대해 슬라이스 헤더에서 스킵된다. 다시 말해, B 슬라이스에 대해 슬라이스 헤더에는 어떠한 sh_num_ref_idx_active_minus1[ 0]도 없다.
단계 1612B에서, 참조 픽처 목록 1의 활성 참조 인덱스 개수(예를 들어, sh_num_ref_idx_active_minus1[ 1 ])를 디코딩하는 것은 B 슬라이스에 대해 슬라이스 헤더에서 스킵된다. 다시 말해, B 슬라이스에 대해 슬라이스 헤더에 존재하는 어떠한 sh_num_ref_idx_active_minus1[1]도 없다. 그러므로, 디코딩 프로세스의 효율이 개선될 수 있다.
도 16c는 본 개시의 일부 실시예에 따른, 예시적인 의미(1600C)의 일부를 예시한다. 의미(1600B)는 방법(1600A 및 1600B)에서 사용될 수 있다. 도 16c에 도시된 바와 같이, 이전의 VVC로부터의 변경은 이탤릭체로 도시되며, 제안된 삭제된 신택스는 취소선으로 추가로 도시된다(블록(1610C 및 1620C) 참조). 두 개의 대안적인 설명이 제공된다. 블록(1610C)에 도시된 바와 같이, 1과 동일한 sh_num_ref_idx_active_override_flag는 신택스 요소 sh_num_ref_idx_active_minus1[0]이 P 및 B 슬라이스에 대해 존재하거나, 또는 신택스 요소 sh_num_ref_idx_active_minus1[1]이 B 슬라이스에 대해 존재한다는 것을 반드시 지정하는 것은 아니다. 블록(1620C)에 도시된 바와 같이, sh_num_ref_idx_active_override_flag가 1과 동일한 경우, "num_ref_entries[0][RplsIdx[0]]이 1보다 클 때"라는 조건은 신택스 요소 sh_num_ref_idx_active_minus1[0]이 P 및 B 슬라이스에 대해 존재하는 것에 대해 추가되고, "num_ref_entries[1][RplsIdx[1]]가 1보다 클 때"라는 조건은 신택스 요소 sh_num_ref_idx_active_minus1[1]이 B 슬라이스에 대해 존재하는 것에 대해 추가된다. 그러므로, 디코딩 프로세스에 대한 정확성 및 강력함이 개선될 수 있다.
VVC(예를 들어, VVC 드래프트 9)에서, 신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx)에 의해 참조되는 픽처가 코딩된 픽처의 모든 슬라이스에 대해 동일하고, RprConstraintsActive[ sh_collocated_from_l0_flag ? 0 : 1 ][ sh_collocated_ref_idx ]가 0과 동일하다는 비트스트림 적합성 제약이 있다. 신택스 요소(1050A)에 의해 참조되는 픽처를 식별하기 위해, 신택스 요소(1040A)(예를 들어, sh_collocated_from_l0_flag) 및 신택스 요소(1050A)(예를 들어, sh_collocated_ref_idx)의 값이 먼저 결정될 필요가 있다. 하지만, 도 10a에 도시된 바와 같이, 신택스 요소(1040A)는 B 슬라이스에 대해서만 시그널링되고, 신택스 요소(1050A)는 P 및 B 슬라이스에 대해서만 시그널링된다. I 슬라이스의 경우, 신택스 요소(1040A) 및 신택스 요소(1050A)는 시그널링되지 않는다. 그리고 I 슬라이스에 대한 이들 두 개의 신택스 요소에 대한 어떠한 추론된 값도 없다. 결과로서, I 슬라이스에 대해, 신택스 요소(1050A)의 값은 정의되지 않는다. 그러므로, 인코더/디코더는 신택스 요소(1050A)에 의해 참조되는 픽처를 식별할 수 없고, 적합성 제약 검사를 수행할 수 없다.
종래의 코딩 기술에서의 이 결점을 극복하기 위해, (도 17a 및 도 17b에서 아래에 제공된 바와 같은) 본 개시의 일부 실시예에서, 비디오 처리를 위한 정확성 및 강력함을 개선하기 위해 업데이트된 의미가 제공된다.
예를 들어, 도 17a는 픽처 처리를 위한 예시적인 비디오 처리 방법(1700A)의 흐름도를 예시한다. 방법(1700A)은 인코더에 의해(예를 들어, 도 2a의 프로세스(200A) 또는 도 2b의 프로세스(200B)에 의해), 디코더에 의해(예를 들어, 도 3a의 프로세스(300A) 또는 도 3b의 프로세스(300B)에 의해) 수행되거나, 또는 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 구성요소에 의해 수행될 수 있다. 예를 들어, 하나 이상의 프로세서(예를 들어, 도 4의 프로세서(402))는 방법(1700A)을 수행할 수 있다. 일부 실시예에서, 방법(1700A)은 컴퓨터(예를 들어, 도 4의 장치(400))에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 제품에 의해 구현될 수 있다. 도 17a를 참조하면, 방법(1700A)은 단계 1702A 및 1704A를 포함할 수 있다.
단계 1702A에서, 슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스(예를 들어, sh_collocated_ref_idx)에 의해 참조되는 함께 배치된 픽처가 결정되고, 함께 배치된 픽처는 현재 픽처의 모든 비-I 슬라이스에 대해 동일한 픽처인 것으로 결정된다. 그러므로, sh_collocated_ref_idx 및 sh_collocated_from_l0_flag의 값에 대한 불확실성이 회피된다.
단계 1704A에서, 현재 픽처는 함께 배치된 픽처를 기초로 처리되고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용된다. 따라서, 비디오 처리에 대한 강력함이 개선될 수 있다.
즉, 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 시간적 움직임 벡터 예측에 사용되는 픽처는 코딩된 픽처의 모든 비-I 슬라이스에 대해 동일한 것으로 결정된다. 일부 실시예에서, 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 시간적 움직임 벡터 예측에 사용되는 픽처는 현재 픽처의 모든 P 슬라이스 및 B 슬라이스에 대해 동일한 것으로 결정된다.
도 17b는 본 개시의 일부 실시예에 따른, 예시적인 의미(1700B)의 일부를 예시한다. 의미(1700B)는 방법(1700A)에서 사용될 수 있다. 도 17b에 도시된 바와 같이, 이전 VVC로부터의 변경은 이탤릭체로 도시되고, 제안된 삭제된 신택스는 취소선으로 추가로 도시된다(블록(1710B 및 1720B) 참조). 두 개의 대안적인 설명이 제공된다. 블록(1710B)에 도시된 바와 같이, 비트스트림 적합성의 요건은 "모든 슬라이스" 대신에 "모든 비-I 슬라이스"에 대해 추가로 상세히 설명된다. 그러므로, 디코딩 프로세스의 효율과 강력함이 개선된다. 블록(1720B 및 1710B) 간의 차이점은, "비-I 슬라이스"의 표현이 더욱 정확히 하기 위해 "P 슬라이스 및 B 슬라이스"로 대체된다는 것이다.
일부 실시예에서, 명령어를 포함하는 비일시적 컴퓨터 판독가능 저장 매체가 또한 제공되고, 명령어는 상술한 방법을 수행하기 위한 (개시된 인코더 및 디코더와 같은) 디바이스에 의해 실행될 수 있다. 비일시적 매체의 일반적인 형태는 예를 들어, 플로피 디스크, 플렉서블 디스크(flexible disk), 하드 디스크, 솔리드 스테이트 드라이브(solid state drive), 자기 테이프 또는 임의의 다른 자기 데이터 저장 매체, CD-ROM, 임의의 다른 광학 데이터 저장 매체, 구멍의 패턴을 갖는 임의의 물리적 매체, RAM, PROM 및 EPROM, FLASH-EPROM 또는 임의의 다른 플래시 메모리, NVRAM, 캐시, 레지스터, 임의의 다른 메모리 칩 또는 카트리지 및 이들의 네트워크화된 버전을 포함한다. 디바이스는 하나 이상의 프로세서(CPU), 입/출력 인터페이스, 네트워크 인터페이스 및/또는 메모리를 포함할 수 있다.
본원에서 "제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를 포함할 수 있다.
상술한 실시예는 하드웨어 또는 소프트웨어(프로그램 코드), 또는 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다는 것이 인식된다. 소프트웨어로 구현되는 경우, 이는 상술한 컴퓨터 판독 가능 매체에 저장될 수 있다. 소프트웨어는 프로세서에 의해 실행될 때 개시된 방법을 수행할 수 있다. 본 개시에서 설명된 컴퓨팅 유닛 및 다른 기능 유닛은 하드웨어 또는 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다. 통상의 기술자는 또한 위에서 설명된 모듈/유닛 중 다수가 하나의 모듈/유닛으로 결합될 수 있고, 위에서 설명된 모듈/유닛 각각이 복수의 서브-모듈/서브-유닛으로 더 분할될 수 있음을 이해할 것이다.
실시예는 다음 조항을 사용하여 추가로 설명될 수 있다:
1. 비디오를 인코딩하기 위한 컴퓨터 구현된 방법으로서,
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 단계 - 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용됨 - ; 및
참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1에서의 엔트리의 개수가 모두 0보다 큰 것에 응답하여, 제1 플래그 및 제2 플래그를 시그널링하는 단계를 포함하고, 제1 플래그는 함께 배치된 픽처가 참조 픽처 목록 0 또는 참조 픽처 목록 1로부터 도출된다는 것을 나타내고, 제2 플래그는 움직임 벡터 차이 신택스 구조가 시그널링되는지를 나타내는, 방법.
2. 비디오를 디코딩하기 위한 컴퓨터 구현된 방법으로서,
비디오 비트스트림을 수신하는 단계;
참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1에서의 엔트리의 개수가 모두 0보다 큰 것에 응답하여, 제1 플래그 및 제2 플래그를 디코딩하는 단계 - 제1 플래그는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 0 또는 참조 픽처 목록 1로부터 도출된다는 것을 나타내고, 제2 플래그는 현재 픽처에 대한 비트스트림에 움직임 벡터 차이 신택스 구조가 존재하는지를 나타냄 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 방법.
3. 비디오를 인코딩하기 위한 컴퓨터 구현된 방법으로서,
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 단계 - 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용됨 - ; 및
참조 픽처 목록에 대한 인덱스를 시그널링하지 않고 비트스트림에 함께 배치된 픽처를 나타내는 단계를 포함하는, 방법.
4. 조항 3에 있어서, 참조 픽처 목록에 대한 인덱스를 시그널링하지 않고 비트스트림에 함께 배치된 픽처를 나타내는 단계는:
함께 배치된 픽처가 인터 계층 참조 픽처인지를 나타내기 위해 제1 플래그를 시그널링하는 단계; 및
함께 배치된 픽처가 인터 계층 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위한 제1 파라미터를 시그널링하는 단계를 더 포함하고, 제1 파라미터는 현재 픽처가 있는 계층의 직접 참조 계층의 목록에 대한 함께 배치된 픽처의 인덱스를 나타내는, 방법.
5. 조항 4에 있어서, 참조 픽처 목록에 대한 인덱스를 시그널링하지 않고 비트스트림에 함께 배치된 픽처를 나타내는 단계는:
함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 나타내기 위해 제2 플래그를 시그널링하는 단계; 및
함께 배치된 픽처가 단기 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위해 제2 파라미터를 시그널링하는 단계를 더 포함하고, 제2 파라미터는 함께 배치된 픽처의 픽처 순서 카운트와 현재 픽처의 픽처 순서 카운트 사이의 차이를 나타내는, 방법.
6. 조항 5에 있어서,
함께 배치된 픽처가 장기 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위해 제3 파라미터 및 제4 파라미터를 시그널링하는 단계를 더 포함하고, 제3 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 최하위 비트(LSB)를 나타내고, 제4 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 델타 최상위 비트(MSB)를 나타내는, 방법.
7. 조항 6에 있어서, 제1 플래그, 제2 플래그, 제1 파라미터, 제2 파라미터, 제3 파라미터 및 제4 파라미터는 픽처 헤더에서 시그널링되고, 픽처 내의 모든 슬라이스는 동일한 함께 배치된 픽처를 갖는, 방법.
8. 조항 3에 있어서, 참조 픽처 목록은 참조 픽처 목록 0 또는 참조 픽처 목록 1인, 방법.
9. 비디오를 디코딩하기 위한 컴퓨터 구현된 방법으로서,
비디오 비트스트림을 수신하는 단계;
참조 픽처 목록에 대한 인덱스를 디코딩하지 않고, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처를 결정하는 단계; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 방법.
10. 조항 9에 있어서, 참조 픽처 목록에 대한 인덱스를 디코딩하지 않고 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처를 결정하는 단계는:
함께 배치된 픽처가 인터 계층 참조 픽처인지를 나타내는 제1 플래그를 디코딩하는 단계;
제1 플래그를 기초로 함께 배치된 픽처가 인터 계층 참조 픽처인지를 결정하는 단계; 및
함께 배치된 픽처가 인터 계층 참조 픽처인 것에 응답하여, 제1 파라미터를 디코딩하고 제1 파라미터를 기초로 함께 배치된 픽처를 결정하는 단계를 더 포함하고, 제1 파라미터는 현재 픽처가 있는 계층의 직접 참조 계층의 목록에 대한 함께 배치된 픽처의 인덱스를 나타내는, 방법.
11. 조항 10에 있어서, 참조 픽처 목록 구조에 대한 인덱스를 디코딩하지 않고 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처를 결정하는 단계는:
함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 나타내는 제2 플래그를 디코딩하는 단계;
제2 플래그를 기초로 함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 결정하는 단계; 및
함께 배치된 픽처가 단기 참조 픽처인 것에 응답하여, 제2 파라미터를 디코딩하고, 제2 파라미터를 기초로 함께 배치된 픽처를 결정하는 단계를 더 포함하고, 제2 파라미터는 함께 배치된 픽처의 픽처 순서 카운트와 현재 픽처의 픽처 순서 카운트 사이의 차이를 나타내는, 방법.
12. 조항 11에 있어서,
함께 배치된 픽처가 장기 참조 픽처인 것에 응답하여, 제3 파라미터 및 제4 파라미터를 디코딩하고, 제3 파라미터 및 제4 파라미터를 기초로 함께 배치된 픽처를 결정하는 단계를 더 포함하고, 제3 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 최하위 비트(LSB)를 나타내고, 제4 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 델타 최상위 비트(MSB)를 나타내는, 방법.
13. 조항 12에 있어서, 제1 플래그, 제2 플래그, 제1 파라미터, 제2 파라미터, 제3 파라미터 및 제4 파라미터는 픽처 헤더에 존재하고, 픽처 내의 모든 슬라이스는 동일한 함께 배치된 픽처를 갖는, 방법.
14. 조항 9에 있어서, 참조 픽처 목록은 참조 픽처 목록 0 또는 참조 픽처 목록 1인, 방법.
15. 비디오를 인코딩하기 위한 컴퓨터 구현된 방법으로서,
슬라이스 헤더에서 함께 배치된 픽처의 참조 인덱스를 나타내기 위한 파라미터를 시그널링할지를 결정하는 단계;
파라미터가 슬라이스 헤더에서 시그널링되지 않는 것에 응답하여, 함께 배치된 픽처를, 픽처 헤더에서 시그널링된 함께 배치된 픽처의 참조 인덱스의 값과 타겟 참조 픽처 목록에서 활성 엔트리의 개수에서 1을 뺀 값 중 더 작은 것과 동일한 값을 갖는 인덱스에 의해 참조되는 픽처로 결정하는 단계; 및
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 단계를 포함하고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 방법.
16. 조항 15에 있어서, 타겟 참조 픽처 목록은, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 도출되는지를 나타내는 플래그에 의해 나타나는, 방법.
17. 비디오를 디코딩하기 위한 컴퓨터 구현된 방법으로서,
비디오 비트스트림을 수신하는 단계;
시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스를 나타내는 파라미터가 슬라이스 헤더에 존재하는지를 결정하는 단계;
파라미터가 존재하지 않는 것에 응답하여, 파라미터의 값을, 픽처 헤더에 존재하는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스의 값과 타겟 참조 픽처 목록에서의 활성 엔트리의 개수에서 1을 뺀 값 중 더 작은 것과 동일한 것으로 결정하는 단계;
함께 배치된 픽처를, 타겟 참조 픽처 목록에서 파라미터의 값과 동일한 값을 갖는 인덱스에 의해 참조되는 픽처로 결정하는 단계; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 방법.
18. 조항 17에 있어서, 타겟 참조 픽처 목록은, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 도출되는지를 나타내는 플래그에 의해 나타나는, 방법.
19. 비디오 처리를 위한 컴퓨터 구현된 방법으로서,
시퀀스 파라미터 세트(SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수를 도출하는 단계;
참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리를 할당하는 단계; 및
할당된 메모리를 사용하여 현재 픽처 또는 현재 슬라이스를 처리하는 단계를 포함하는, 방법.
20. 비디오를 인코딩하기 위한 컴퓨터 구현된 방법으로서,
제2 플래그 및 제1 인덱스가 픽처 파라미터 세트(PPS)를 참조하는 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 PPS에서 시그널링하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제1 인덱스 및 제2 인덱스가 시그널링되는지를 결정하는 단계 - 제2 인덱스는 SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제2 인덱스가 시그널링되지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계;
제1 인덱스가 시그널링되지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및
제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계;
제1 인덱스 및 제2 인덱스를 기초로 참조 픽처 목록을 도출하는 단계; 및
참조 픽처 목록을 기초로 현재 픽처를 인코딩하는 단계를 포함하는, 방법.
21. 비디오를 디코딩하기 위한 컴퓨터 구현된 방법으로서,
비디오 비트스트림을 수신하는 단계;
제2 플래그 및 제1 인덱스가 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내는 제1 플래그의 값을 결정하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는, SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제1 인덱스 및 제2 인덱스가 존재하는지를 결정하는 단계 - 제2 인덱스는, SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제2 인덱스가 존재하지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계;
제1 인덱스가 존재하지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및
제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계; 및
제1 인덱스 및 제2 인덱스를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 방법.
22. 비디오를 인코딩하기 위한 컴퓨터 구현된 방법으로서,
활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 슬라이스 헤더에서 시그널링하는 단계 - 활성 참조 인덱스 개수는 현재 슬라이스를 인코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ;
제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는 것을 나타내는 것에 응답하여,
참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 단계; 및
참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 단계를 포함하는, 방법.
23. 조항 22에 있어서,
제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하지 않는다는 것을 나타내는 것에 응답하여,
P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 것을 스킵하는 단계; 및
B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 것을 스킵하는 단계를 더 포함하는, 방법.
24. 비디오를 디코딩하기 위한 컴퓨터 구현된 방법으로서,
슬라이스 헤더 및 픽처 헤더 신택스를 포함하는 비디오 비트스트림을 수신하는 단계;
활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내는, 슬라이스 헤더에서 시그널링된 제1 플래그의 값을 결정하는 단계 - 활성 참조 인덱스 개수는 현재 슬라이스를 디코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ;
제1 플래그가 활성 참조 인덱스 개수가 존재하는 것을 나타내는 것에 응답하여,
참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 단계; 및
참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 단계를 포함하는, 방법.
25. 조항 24에 있어서,
제1 플래그가 활성 참조 인덱스 개수가 존재하지 않는다는 것을 나타내는 것에 응답하여,
P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 것을 스킵하는 단계; 및
B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 것을 스킵하는 단계를 더 포함하는, 방법.
26. 비디오 처리를 위한 컴퓨터 구현된 방법으로서,
슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 단계 - 함께 배치된 픽처는 현재 픽처의 모든 비-I 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 처리하는 단계를 포함하고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 방법.
27. 비디오 처리를 위한 컴퓨터 구현된 방법으로서,
슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 단계 - 함께 배치된 픽처는 현재 픽처의 모든 P 슬라이스 및 B 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 처리하는 단계를 포함하고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 방법.
28. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 것 - 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용됨 - ; 및
참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1에서의 엔트리의 개수가 모두 0보다 큰 것에 응답하여, 제1 플래그 및 제2 플래그를 시그널링하는 것을 수행하게 하도록 구성되고, 제1 플래그는 함께 배치된 픽처가 참조 픽처 목록 0 또는 참조 픽처 목록 1로부터 도출된다는 것을 나타내고, 제2 플래그는 움직임 벡터 차이 신택스 구조가 시그널링되는지를 나타내는, 장치.
29. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
비디오 비트스트림을 수신하는 것;
참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1에서의 엔트리의 개수가 모두 0보다 큰 것에 응답하여, 제1 플래그 및 제2 플래그를 디코딩하는 것 - 제1 플래그는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 0 또는 참조 픽처 목록 1로부터 도출된다는 것을 나타내고, 제2 플래그는 현재 픽처에 대한 비트스트림에 움직임 벡터 차이 신택스 구조가 존재하는지를 나타냄 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
30. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 것 - 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용됨 - ; 및
참조 픽처 목록에 대한 인덱스를 시그널링하지 않고 비트스트림에 함께 배치된 픽처를 나타내는 것을 수행하게 하도록 구성되는, 장치.
31. 조항 30에 있어서, 프로세서는: 명령어를 실행하여, 장치로 하여금:
함께 배치된 픽처가 인터 계층 참조 픽처인지를 나타내기 위해 제1 플래그를 시그널링하는 것; 및
함께 배치된 픽처가 인터 계층 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위한 제1 파라미터를 시그널링하는 것을 수행하게 하도록 추가로 구성되고, 제1 파라미터는 현재 픽처가 있는 계층의 직접 참조 계층의 목록에 대한 함께 배치된 픽처의 인덱스를 나타내는, 장치.
32. 조항 31에 있어서, 프로세서는 명령어를 실행하여 장치로 하여금:
함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 나타내기 위해 제2 플래그를 시그널링하는 것; 및
함께 배치된 픽처가 단기 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위해 제2 파라미터를 시그널링하는 것을 수행하게 하도록 추가로 구성되고, 제2 파라미터는 함께 배치된 픽처의 픽처 순서 카운트와 현재 픽처의 픽처 순서 카운트 사이의 차이를 나타내는, 장치.
33. 조항 32에 있어서, 프로세서는 명령어를 실행하여 장치로 하여금:
함께 배치된 픽처가 장기 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위해 제3 파라미터 및 제4 파라미터를 시그널링하는 것을 수행하게 하도록 추가로 구성되고, 제3 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 최하위 비트(LSB)를 나타내고, 제4 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 델타 최상위 비트(MSB)를 나타내는, 장치.
34. 조항 33에 있어서, 제1 플래그, 제2 플래그, 제1 파라미터, 제2 파라미터, 제3 파라미터 및 제4 파라미터는 픽처 헤더에서 시그널링되고, 픽처 내의 모든 슬라이스는 동일한 함께 배치된 픽처를 갖는, 장치.
35. 조항 30에 있어서, 참조 픽처 목록은 참조 픽처 목록 0 또는 참조 픽처 목록 1인, 장치.
36. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
비디오 비트스트림을 수신하는 것;
참조 픽처 목록에 대한 인덱스를 디코딩하지 않고, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처를 결정하는 것; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
37. 조항 36에 있어서, 프로세서는 명령어를 실행하여 장치로 하여금:
함께 배치된 픽처가 인터 계층 참조 픽처인지를 나타내는 제1 플래그를 디코딩하는 것;
제1 플래그를 기초로 함께 배치된 픽처가 인터 계층 참조 픽처인지를 결정하는 것; 및
함께 배치된 픽처가 인터 계층 참조 픽처인 것에 응답하여, 제1 파라미터를 디코딩하고 제1 파라미터를 기초로 함께 배치된 픽처를 결정하는 것을 수행하게 하도록 추가로 구성되고, 제1 파라미터는 현재 픽처가 있는 계층의 직접 참조 계층의 목록에 대한 함께 배치된 픽처의 인덱스를 나타내는, 장치.
38. 조항 37에 있어서, 프로세서는 명령어를 실행하여 장치로 하여금:
함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 나타내는 제2 플래그를 디코딩하는 것;
제2 플래그를 기초로 함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 결정하는 것; 및
함께 배치된 픽처가 단기 참조 픽처인 것에 응답하여, 제2 파라미터를 디코딩하고, 제2 파라미터를 기초로 함께 배치된 픽처를 결정하는 것을 수행하게 하도록 추가로 구성되고, 제2 파라미터는 함께 배치된 픽처의 픽처 순서 카운트와 현재 픽처의 픽처 순서 카운트 사이의 차이를 나타내는, 장치.
39. 조항 38에 있어서, 프로세서는: 명령어를 실행하여, 장치로 하여금:
함께 배치된 픽처가 장기 참조 픽처인 것에 응답하여, 제3 파라미터 및 제4 파라미터를 디코딩하고, 제3 파라미터 및 제4 파라미터를 기초로 함께 배치된 픽처를 결정하는 것을 수행하게 하도록 추가로 구성되고, 제3 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 최하위 비트(LSB)를 나타내고, 제4 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 델타 최상위 비트(MSB)를 나타내는, 장치.
40. 조항 39에 있어서, 제1 플래그, 제2 플래그, 제1 파라미터, 제2 파라미터, 제3 파라미터 및 제4 파라미터는 픽처 헤더에 존재하고, 픽처 내의 모든 슬라이스는 동일한 함께 배치된 픽처를 갖는, 장치.
41. 조항 36에 있어서, 참조 픽처 목록은 참조 픽처 목록 0 또는 참조 픽처 목록 1인, 장치.
42. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
슬라이스 헤더에서 함께 배치된 픽처의 참조 인덱스를 나타내기 위한 파라미터를 시그널링할지를 결정하는 것;
파라미터가 슬라이스 헤더에서 시그널링되지 않는 것에 응답하여, 함께 배치된 픽처를, 픽처 헤더에서 시그널링된 함께 배치된 픽처의 참조 인덱스의 값과 타겟 참조 픽처 목록에서 활성 엔트리의 개수에서 1을 뺀 값 중 더 작은 것과 동일한 값을 갖는 인덱스에 의해 참조되는 픽처로 결정하는 것; 및
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 것을 수행하게 하도록 구성되고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 장치.
43. 조항 42에 있어서, 타겟 참조 픽처 목록은, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 도출되는지를 나타내는 플래그에 의해 나타나는, 장치.
44. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
비디오 비트스트림을 수신하는 것;
시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스를 나타내는 파라미터가 슬라이스 헤더에 존재하는지를 결정하는 것; 및
파라미터가 존재하지 않는 것에 응답하여, 파라미터의 값을, 픽처 헤더에 존재하는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스의 값과 타겟 참조 픽처 목록에서의 활성 엔트리의 개수에서 1을 뺀 값 중 더 작은 것과 동일한 것으로 결정하는 것;
함께 배치된 픽처를, 타겟 참조 픽처 목록에서 파라미터의 값과 동일한 값을 갖는 인덱스에 의해 참조되는 픽처로 결정하는 것; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
45. 조항 44에 있어서, 타겟 참조 픽처 목록은, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 도출되는지를 나타내는 플래그에 의해 나타나는, 장치.
46. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
시퀀스 파라미터 세트(SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수를 도출하는 것;
참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리를 할당하는 것; 및
할당된 메모리를 사용하여 현재 픽처 또는 현재 슬라이스를 처리하는 것을 수행하게 하도록 구성되는, 장치.
47. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
제2 플래그 및 제1 인덱스가 픽처 파라미터 세트(PPS)를 참조하는 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 PPS에서 시그널링하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제1 인덱스 및 제2 인덱스가 시그널링되는지를 결정하는 단계 - 제2 인덱스는 SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제2 인덱스가 시그널링되지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계;
제1 인덱스가 시그널링되지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및
제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계;
제1 인덱스 및 제2 인덱스를 기초로 참조 픽처 목록을 도출하는 단계; 및
참조 픽처 목록을 기초로 현재 픽처를 인코딩하는 것을 수행하게 하도록 구성되는, 장치.
48. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
비디오 비트스트림을 수신하는 것;
제2 플래그 및 제1 인덱스가 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내는 제1 플래그의 값을 결정하는 것 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는, SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제1 인덱스 및 제2 인덱스가 존재하는지를 결정하는 것 - 제2 인덱스는, SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제2 인덱스가 존재하지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 것으로서:
참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 것을 포함하는, 제2 인덱스의 값을 결정하는 것;
제1 인덱스가 존재하지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 것으로서:
참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 것; 및
제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 것을 포함하는, 제1 인덱스의 값을 결정하는 것; 및
제1 인덱스 및 제2 인덱스를 기초로 현재 픽처를 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
49. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 슬라이스 헤더에서 시그널링하는 것 - 활성 참조 인덱스 개수는 현재 슬라이스를 인코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ;
제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는 것을 나타내는 것에 응답하여,
참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 것; 및
참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 것을 수행하게 하도록 구성되는, 장치.
50. 조항 49에 있어서, 프로세서는: 명령어를 실행하여, 장치로 하여금:
제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하지 않는다는 것을 나타내는 것에 응답하여,
P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 것을 스킵하는 것; 및
B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 것을 스킵하는 것을 수행하게 하도록 추가로 구성되는, 장치.
51. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
슬라이스 헤더 및 픽처 헤더 신택스를 포함하는 비디오 비트스트림을 수신하는 것;
활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내는, 슬라이스 헤더에서 시그널링된 제1 플래그의 값을 결정하는 것 - 활성 참조 인덱스 개수는 현재 슬라이스를 디코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ;
제1 플래그가 활성 참조 인덱스 개수가 존재하는 것을 나타내는 것에 응답하여,
참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 것; 및
참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
52. 조항 50에 있어서, 프로세서는: 명령어를 실행하여, 장치로 하여금:
제1 플래그가 활성 참조 인덱스 개수가 존재하지 않는다는 것을 나타내는 것에 응답하여,
P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 것을 스킵하는 것; 및
B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 것을 스킵하는 것을 수행하게 하도록 추가로 구성되는, 장치.
53. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 것 - 함께 배치된 픽처는 현재 픽처의 모든 비-I 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 처리하는 것을 수행하게 하도록 구성되고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 장치.
54. 비디오 데이터 처리를 수행하기 위한 장치로서, 장치는:
명령어를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 명령어를 실행하여 장치로 하여금:
슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 것 - 함께 배치된 픽처는 현재 픽처의 모든 P 슬라이스 및 B 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 처리하는 것을 수행하게 하도록 구성되고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 장치.
55. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어의 세트는 장치의 하나 이상의 프로세서에 의해 실행 가능하여 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하고, 방법은:
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 단계 - 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용됨 - ; 및
참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1에서의 엔트리의 개수가 모두 0보다 큰 것에 응답하여 제1 플래그 및 제2 플래그를 시그널링하는 단계를 포함하고, 제1 플래그는 함께 배치된 픽처가 참조 픽처 목록 0 또는 참조 픽처 목록 1로부터 도출된다는 것을 나타내고, 제2 플래그는 움직임 벡터 차이 신택스 구조가 시그널링되는지를 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
56. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 방법은:
비디오 비트스트림을 수신하는 단계;
참조 픽처 목록 0에서의 엔트리의 개수 및 참조 픽처 목록 1에서의 엔트리의 개수가 모두 0보다 큰 것에 응답하여, 제1 플래그 및 제2 플래그를 디코딩하는 단계 - 제1 플래그는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 참조 픽처 목록 0 또는 참조 픽처 목록 1로부터 도출된다는 것을 나타내고, 제2 플래그는 현재 픽처에 대한 비트스트림에 움직임 벡터 차이 신택스 구조가 존재하는지를 나타냄 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
57. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 방법은:
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 단계 - 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용됨 - ; 및
참조 픽처 목록에 대한 인덱스를 시그널링하지 않고 비트스트림에 함께 배치된 픽처를 나타내는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
58. 조항 57에 있어서, 방법은:
함께 배치된 픽처가 인터 계층 참조 픽처인지를 나타내기 위해 제1 플래그를 시그널링하는 단계; 및
함께 배치된 픽처가 인터 계층 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위한 제1 파라미터를 시그널링하는 단계를 더 포함하고, 제1 파라미터는 현재 픽처가 있는 계층의 직접 참조 계층의 목록에 대한 함께 배치된 픽처의 인덱스를 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
59. 조항 58에 있어서, 방법은:
함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 나타내기 위해 제2 플래그를 시그널링하는 단계; 및
함께 배치된 픽처가 단기 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위해 제2 파라미터를 시그널링하는 단계를 더 포함하고, 제2 파라미터는 함께 배치된 픽처의 픽처 순서 카운트와 현재 픽처의 픽처 순서 카운트 사이의 차이를 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
60. 조항 59에 있어서, 방법은:
함께 배치된 픽처가 장기 참조 픽처인 것에 응답하여, 함께 배치된 픽처를 나타내기 위해 제3 파라미터 및 제4 파라미터를 시그널링하는 단계를 더 포함하고, 제3 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 최하위 비트(LSB)를 나타내고, 제4 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 델타 최상위 비트(MSB)를 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
61. 조항 60에 있어서, 제1 플래그, 제2 플래그, 제1 파라미터, 제2 파라미터, 제3 파라미터 및 제4 파라미터는 픽처 헤더에서 시그널링되고, 픽처 내의 모든 슬라이스는 동일한 함께 배치된 픽처를 갖는, 비일시적 컴퓨터 판독가능 저장 매체.
62. 조항 57에 있어서, 참조 픽처 목록은 참조 픽처 목록 0 또는 참조 픽처 목록 1인, 비일시적 컴퓨터 판독가능 저장 매체.
63. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어의 세트는 장치의 하나 이상의 프로세서에 의해 실행 가능하여 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하고, 방법은:
비디오 비트스트림을 수신하는 단계;
참조 픽처 목록에 대한 인덱스를 디코딩하지 않고, 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처를 결정하는 단계; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
64. 조항 63에 있어서, 방법은:
함께 배치된 픽처가 인터 계층 참조 픽처인지를 나타내는 제1 플래그를 디코딩하는 단계;
제1 플래그를 기초로 함께 배치된 픽처가 인터 계층 참조 픽처인지를 결정하는 단계; 및
함께 배치된 픽처가 인터 계층 참조 픽처인 것에 응답하여, 제1 파라미터를 디코딩하고 제1 파라미터를 기초로 함께 배치된 픽처를 결정하는 단계를 더 포함하고, 제1 파라미터는 현재 픽처가 있는 계층의 직접 참조 계층의 목록에 대한 함께 배치된 픽처의 인덱스를 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
65. 조항 64에 있어서, 방법은:
함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 나타내는 제2 플래그를 디코딩하는 단계;
제2 플래그를 기초로 함께 배치된 픽처가 단기 참조 픽처인지 또는 장기 참조 픽처인지를 결정하는 단계; 및
함께 배치된 픽처가 단기 참조 픽처인 것에 응답하여, 제2 파라미터를 디코딩하고, 제2 파라미터를 기초로 함께 배치된 픽처를 결정하는 단계를 더 포함하고, 제2 파라미터는 함께 배치된 픽처의 픽처 순서 카운트와 현재 픽처의 픽처 순서 카운트 사이의 차이를 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
66. 조항 65에 있어서, 방법은:
함께 배치된 픽처가 장기 참조 픽처인 것에 응답하여, 제3 파라미터 및 제4 파라미터를 디코딩하고, 제3 파라미터 및 제4 파라미터를 기초로 함께 배치된 픽처를 결정하는 단계를 더 포함하고, 제3 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 최하위 비트(LSB)를 나타내고, 제4 파라미터는 함께 배치된 픽처의 픽처 순서 카운트(POC)의 델타 최상위 비트(MSB)를 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
67. 조항 66에 있어서, 제1 플래그, 제2 플래그, 제1 파라미터, 제2 파라미터, 제3 파라미터 및 제4 파라미터는 픽처 헤더에 존재하고, 픽처 내의 모든 슬라이스는 동일한 함께 배치된 픽처를 갖는, 비일시적 컴퓨터 판독가능 저장 매체.
68. 조항 63에 있어서, 참조 픽처 목록은 참조 픽처 목록 0 또는 참조 픽처 목록 1인, 비일시적 컴퓨터 판독가능 저장 매체.
69. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 방법은:
슬라이스 헤더에서 함께 배치된 픽처의 참조 인덱스를 나타내기 위한 파라미터를 시그널링할지를 결정하는 단계;
파라미터가 슬라이스 헤더에서 시그널링되지 않는 것에 응답하여, 함께 배치된 픽처를, 픽처 헤더에서 시그널링된 함께 배치된 픽처의 참조 인덱스의 값과 타겟 참조 픽처 목록에서 활성 엔트리의 개수에서 1을 뺀 값 중 더 작은 것과 동일한 값을 갖는 인덱스에 의해 참조되는 픽처로 결정하는 단계; 및
함께 배치된 픽처를 기초로 현재 픽처를 인코딩하는 단계를 포함하고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 비일시적 컴퓨터 판독가능 저장 매체.
70. 조항 69에 있어서, 타겟 참조 픽처 목록은 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 도출되는지를 나타내는 플래그에 의해 나타나는, 비일시적 컴퓨터 판독가능 저장 매체.
71. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 방법은:
비디오 비트스트림을 수신하는 단계;
시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스를 나타내는 파라미터가 슬라이스 헤더에 존재하는지를 결정하는 단계;
파라미터가 존재하지 않는 것에 응답하여, 파라미터의 값을, 픽처 헤더에 존재하는 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처의 참조 인덱스의 값과 타겟 참조 픽처 목록에서의 활성 엔트리의 개수에서 1을 뺀 값 중 더 작은 것과 동일한 것으로 결정하는 단계;
함께 배치된 픽처를, 타겟 참조 픽처 목록에서 파라미터의 값과 동일한 값을 갖는 인덱스에 의해 참조되는 픽처로 결정하는 단계; 및
함께 배치된 픽처를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
72. 조항 71에 있어서, 타겟 참조 픽처 목록은 시간적 움직임 벡터 예측에 사용되는 함께 배치된 픽처가 어느 참조 픽처 목록으로부터 도출되는지를 나타내는 플래그에 의해 나타나는, 비일시적 컴퓨터 판독가능 저장 매체.
73. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 방법은:
시퀀스 파라미터 세트(SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수를 도출하는 단계;
참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리를 할당하는 단계; 및
할당된 메모리를 사용하여 현재 픽처 또는 현재 슬라이스를 처리하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
74. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 방법은:
제2 플래그 및 제1 인덱스가 픽처 파라미터 세트(PPS)를 참조하는 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 PPS에서 시그널링하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는 SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제1 인덱스 및 제2 인덱스가 시그널링되는지를 결정하는 단계 - 제2 인덱스는 SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제2 인덱스가 시그널링되지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계;
제1 인덱스가 시그널링되지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및
제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계;
제1 인덱스 및 제2 인덱스를 기초로 참조 픽처 목록을 도출하는 단계; 및
참조 픽처 목록을 기초로 현재 픽처를 인코딩하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
75. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 방법은:
비디오 비트스트림을 수신하는 단계;
제2 플래그 및 제1 인덱스가 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내는 제1 플래그의 값을 결정하는 단계 - 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 제1 인덱스는, SPS에 포함된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제1 인덱스 및 제2 인덱스가 존재하는지를 결정하는 단계 - 제2 인덱스는, SPS에 포함된 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
제2 인덱스가 존재하지 않는 것에 응답하여, 제2 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 제2 인덱스의 값을 결정하는 단계;
제1 인덱스가 존재하지 않는 것에 응답하여, 제1 인덱스의 값을 결정하는 단계로서:
참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및
제1 플래그가 0과 동일하고 제2 플래그가 1과 동일할 때, 제1 인덱스의 값을 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 제1 인덱스의 값을 결정하는 단계; 및
제1 인덱스 및 제2 인덱스를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
76. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 방법은:
활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 슬라이스 헤더에서 시그널링하는 단계 - 활성 참조 인덱스 개수는 현재 슬라이스를 인코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ;
제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는 것을 나타내는 것에 응답하여,
참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 단계; 및
참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
77. 조항 76에 있어서, 방법은:
제1 플래그가 활성 참조 인덱스 개수가 슬라이스 헤더에 존재하지 않는다는 것을 나타내는 것에 응답하여,
P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 시그널링하는 것을 스킵하는 단계; 및
B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 시그널링하는 것을 스킵하는 단계를 더 포함하는, 방법.
78. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어의 세트는 장치의 하나 이상의 프로세서에 의해 실행 가능하여 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하고, 방법은:
슬라이스 헤더 및 픽처 헤더 신택스를 포함하는 비디오 비트스트림을 수신하는 단계;
활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내는, 슬라이스 헤더에서 시그널링된 제1 플래그의 값을 결정하는 단계 - 활성 참조 인덱스 개수는 현재 슬라이스를 디코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ;
제1 플래그가 활성 참조 인덱스 개수가 존재하는 것을 나타내는 것에 응답하여,
참조 픽처 목록 0의 엔트리의 개수를 결정하고, 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 단계; 및
참조 픽처 목록 1의 엔트리의 개수를 결정하고, 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
79. 조항 78에 있어서, 방법은:
제1 플래그가 활성 참조 인덱스 개수가 존재하지 않는다는 것을 나타내는 것에 응답하여,
P 및 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 0의 활성 참조 인덱스 개수를 디코딩하는 것을 스킵하는 단계; 및
B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 활성 참조 인덱스 개수를 디코딩하는 것을 스킵하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
80. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어의 세트는 장치의 하나 이상의 프로세서에 의해 실행 가능하여 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하고, 방법은:
슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 단계 - 함께 배치된 픽처는 현재 픽처의 모든 비-I 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 처리하는 단계를 포함하고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 비일시적 컴퓨터 판독가능 저장 매체.
81. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어의 세트는 장치의 하나 이상의 프로세서에 의해 실행 가능하여 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하고, 방법은:
슬라이스 레벨에서 함께 배치된 픽처의 참조 인덱스에 의해 참조되는 함께 배치된 픽처를 결정하는 단계 - 함께 배치된 픽처는 현재 픽처의 모든 P 슬라이스 및 B 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및
함께 배치된 픽처를 기초로 현재 픽처를 처리하는 단계를 포함하고, 함께 배치된 픽처는 시간적 움직임 벡터 예측에 사용되는, 비일시적 컴퓨터 판독가능 저장 매체.
전술한 명세서에서, 실시예는 구현마다 다를 수 있는 수많은 특정 세부사항을 참조로 설명되었다. 설명된 실시예의 특정 적응 및 수정이 이루어질 수 있다. 다른 실시예는 본원에 개시된 본 발명의 명세서 및 실시를 고려하여 통상의 기술자에게 명백할 수 있다. 명세서 및 예는 단지 예시적인 것으로 간주되어야 하는 것으로 의도되며, 본 발명의 진정한 범위 및 사상은 다음 청구범위에 의해 나타난다. 또한, 도면에 도시된 단계의 시퀀스는 단지 예시의 목적이며, 단계의 임의의 특정 시퀀스로 제한되도록 의도되지 않는다. 이와 같이, 통상의 기술자는 이러한 단계가 동일한 방법을 구현하면서 상이한 순서로 수행될 수 있음을 인식할 수 있다.
도면 및 명세서에서, 예시적인 실시예가 개시된다. 하지만, 이들 실시예에 대해 다수의 변형 및 수정이 이루어질 수 있다. 따라서, 특정한 용어가 이용되더라도, 제한의 목적이 아닌 일반적이고 설명적인 의미로 사용된다.

Claims (8)

  1. 비디오 처리를 위한 컴퓨터 구현된 방법으로서,
    시퀀스 파라미터 세트(sequence parameter set, SPS)에서의 참조 픽처 목록 구조의 개수와 1을 합산함으로써 총 개수를 도출하는 단계;
    참조 픽처 목록 구조가 현재 픽처의 픽처 헤더 또는 현재 슬라이스의 슬라이스 헤더에서 시그널링되는 것에 응답하여, 참조 픽처 목록 구조의 총 개수에 대한 메모리를 할당하는 단계; 및
    상기 할당된 메모리를 사용하여 현재 픽처 또는 현재 슬라이스를 처리하는 단계를 포함하는, 방법.
  2. 비디오 데이터 처리를 수행하기 위한 장치로서,
    명령어를 저장하도록 구성된 메모리; 및
    하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는 상기 명령어를 실행하여 상기 장치로 하여금:
    제2 플래그 및 제1 인덱스가 픽처 파라미터 세트(picture parameter set, PPS)를 참조하는 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내기 위해 제1 플래그를 상기 PPS에서 시그널링하는 것 - 상기 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 상기 제1 인덱스는, 상기 SPS에 포함된 참조 픽처 목록 1과 연관된 상기 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
    상기 제1 인덱스 및 제2 인덱스가 시그널링되는지를 결정하는 것 - 상기 제2 인덱스는, 상기 SPS에 포함된 참조 픽처 목록 0과 연관된 상기 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
    상기 제2 인덱스가 시그널링되지 않는 것에 응답하여, 상기 제2 인덱스의 값을 결정하는 것으로서:
    참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 상기 제2 인덱스의 값을 0과 동일한 것으로 결정하는 것을 포함하는, 상기 제2 인덱스의 값을 결정하는 것;
    상기 제1 인덱스가 시그널링되지 않는 것에 응답하여, 상기 제1 인덱스의 값을 결정하는 것으로서:
    참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 상기 제1 인덱스의 값을 0과 동일한 것으로 결정하는 것; 및
    상기 제1 플래그가 0과 동일하고 상기 제2 플래그가 1과 동일할 때, 상기 제1 인덱스의 값을 상기 제2 인덱스의 값과 동일한 것으로 결정하는 것을 포함하는, 상기 제1 인덱스의 값을 결정하는 것;
    상기 제1 인덱스 및 상기 제2 인덱스를 기초로 상기 참조 픽처 목록을 도출하는 것; 및
    상기 참조 픽처 목록을 기초로 상기 현재 픽처를 인코딩하는 것을 수행하게 하도록 구성되는, 장치.
  3. 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어의 세트는 장치의 하나 이상의 프로세서에 의해 실행 가능하여 상기 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하고, 상기 방법은:
    비디오 비트스트림을 수신하는 단계;
    제2 플래그 및 제1 인덱스가 현재 픽처에 대한 픽처 헤더 신택스 또는 슬라이스 헤더에 존재하는지를 나타내는 제1 플래그의 값을 결정하는 단계 - 상기 제2 플래그는 참조 픽처 목록 1이 시퀀스 파라미터 세트(SPS)에서 시그널링된 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조 중 하나를 기초로 도출되는지를 나타내고, 상기 제1 인덱스는, 상기 SPS에 포함된 참조 픽처 목록 1과 연관된 상기 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 1의 도출에 사용되는 참조 픽처 목록 1과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
    상기 제1 인덱스 및 제2 인덱스가 존재하는지를 결정하는 단계 - 상기 제2 인덱스는, 상기 SPS에 포함된 참조 픽처 목록 0과 연관된 상기 참조 픽처 목록 구조의 목록에 대한, 참조 픽처 목록 0의 도출에 사용되는 참조 픽처 목록 0과 연관된 참조 픽처 목록 구조의 인덱스임 - ;
    상기 제2 인덱스가 존재하지 않는 것에 응답하여, 상기 제2 인덱스의 값을 결정하는 단계로서:
    참조 픽처 목록 0과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 상기 제2 인덱스의 값을 0과 동일한 것으로 결정하는 단계를 포함하는, 상기 제2 인덱스의 값을 결정하는 단계;
    상기 제1 인덱스가 존재하지 않는 것에 응답하여, 상기 제1 인덱스의 값을 결정하는 단계로서:
    참조 픽처 목록 1과 연관된 최대 하나의 참조 픽처 목록 구조가 SPS에 포함될 때, 상기 제1 인덱스의 값을 0과 동일한 것으로 결정하는 단계; 및
    상기 제1 플래그가 0과 동일하고 상기 제2 플래그가 1과 동일할 때, 상기 제1 인덱스의 값을 상기 제2 인덱스의 값과 동일한 것으로 결정하는 단계를 포함하는, 상기 제1 인덱스의 값을 결정하는 단계; 및
    상기 제1 인덱스 및 상기 제2 인덱스를 기초로 현재 픽처를 디코딩하는 단계를 포함하는, 방법.
  4. 비디오를 인코딩하기 위한 컴퓨터 구현된 방법으로서,
    활성 참조 인덱스 개수가 슬라이스 헤더에 존재하는지를 나타내기 위해 상기 제1 플래그를 슬라이스 헤더에서 시그널링하는 단계 - 상기 활성 참조 인덱스 개수는 현재 슬라이스를 인코딩하는 데 사용되는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ;
    상기 제1 플래그가 상기 활성 참조 인덱스 개수가 상기 슬라이스 헤더에 존재하는 것을 나타내는 것에 응답하여,
    참조 픽처 목록 0의 엔트리의 개수를 결정하고, 상기 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대한 상기 슬라이스 헤더에서 참조 픽처 목록 0의 상기 활성 참조 인덱스 개수를 시그널링하는 단계; 및
    참조 픽처 목록 1의 엔트리의 개수를 결정하고, 상기 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대한 상기 슬라이스 헤더에서 참조 픽처 목록 1의 상기 활성 참조 인덱스 개수를 시그널링하는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 제1 플래그가 상기 활성 참조 인덱스 개수가 상기 슬라이스 헤더에 존재하지 않는다는 것을 나타내는 것에 응답하여,
    P 및 B 슬라이스에 대한 상기 슬라이스 헤더에서 참조 픽처 목록 0의 상기 활성 참조 인덱스 개수를 시그널링하는 것을 스킵하는 단계; 및
    B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 상기 활성 참조 인덱스 개수를 시그널링하는 것을 스킵하는 단계를 더 포함하는, 방법.
  6. 비디오 데이터 처리를 수행하기 위한 장치로서,
    명령어를 저장하도록 구성된 메모리; 및
    하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는 상기 명령어를 실행하여 상기 장치로 하여금:
    슬라이스 헤더 및 픽처 헤더 신택스를 포함하는 비디오 비트스트림을 수신하는 것;
    활성 참조 인덱스 개수가 상기 슬라이스 헤더에 존재하는지를 나타내는, 상기 슬라이스 헤더에서 시그널링된 제1 플래그의 값을 결정하는 것 - 상기 활성 참조 인덱스 개수는 현재 슬라이스를 디코딩하는 데 사용될 수 있는 대응하는 참조 픽처 목록에 대한 최대 참조 인덱스를 도출하는 데 사용됨 - ;
    상기 제1 플래그가 상기 활성 참조 인덱스 개수가 존재하는 것을 나타내는 것에 응답하여,
    참조 픽처 목록 0의 엔트리의 개수를 결정하고, 상기 참조 픽처 목록 0의 엔트리의 개수가 1보다 클 때 P 및 B 슬라이스에 대한 상기 슬라이스 헤더에서 참조 픽처 목록 0의 상기 활성 참조 인덱스 개수를 디코딩하는 것; 및
    참조 픽처 목록 1의 엔트리의 개수를 결정하고, 상기 참조 픽처 목록 1의 엔트리의 개수가 1보다 클 때 B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 상기 활성 참조 인덱스 개수를 디코딩하는 것을 수행하게 하도록 구성되는, 장치.
  7. 제6항에 있어서, 상기 프로세서는 상기 명령어를 실행하여 상기 장치로 하여금:
    상기 제1 플래그가 상기 활성 참조 인덱스 개수가 존재하지 않는다는 것을 나타내는 것에 응답하여,
    P 및 B 슬라이스에 대한 상기 슬라이스 헤더에서 참조 픽처 목록 0의 상기 활성 참조 인덱스 개수를 디코딩하는 것을 스킵하는 것; 및
    B 슬라이스에 대해 슬라이스 헤더에서 참조 픽처 목록 1의 상기 활성 참조 인덱스 개수를 디코딩하는 것을 스킵하는 것을 수행하게 하도록 추가로 구성되는, 장치.
  8. 장치의 하나 이상의 프로세서에 의해 실행 가능하고, 상기 장치로 하여금 비디오 데이터 처리를 수행하기 위한 방법을 개시하게 하는 명령어의 세트를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 방법은:
    슬라이스 레벨에서 함께 배치된 픽처(collocated picture)의 참조 인덱스에 의해 참조되는 상기 함께 배치된 픽처를 결정하는 단계 - 상기 함께 배치된 픽처는 현재 픽처의 모든 비-I 슬라이스에 대해 동일한 픽처인 것으로 결정됨 - ; 및
    상기 함께 배치된 픽처를 기초로 상기 현재 픽처를 처리하는 단계를 포함하고, 상기 함께 배치된 픽처는 시간적 움직임 벡터 예측(temporal motion vector prediction)에 사용되는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020227042191A 2020-05-21 2021-05-21 비디오 코딩에서 참조 픽처 처리를 위한 방법 KR20230015363A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063028509P 2020-05-21 2020-05-21
US63/028,509 2020-05-21
PCT/US2021/033765 WO2021237165A1 (en) 2020-05-21 2021-05-21 Method for reference picture processing in video coding

Publications (1)

Publication Number Publication Date
KR20230015363A true KR20230015363A (ko) 2023-01-31

Family

ID=78607550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227042191A KR20230015363A (ko) 2020-05-21 2021-05-21 비디오 코딩에서 참조 픽처 처리를 위한 방법

Country Status (6)

Country Link
US (2) US11533472B2 (ko)
EP (1) EP4154414A1 (ko)
JP (1) JP2023526585A (ko)
KR (1) KR20230015363A (ko)
CN (1) CN115485981A (ko)
WO (1) WO2021237165A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102609949B1 (ko) 2018-08-17 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 참조 영상 관리
KR20230015373A (ko) 2020-05-22 2023-01-31 바이트댄스 아이엔씨 비디오 비트스트림들에서 코딩된 픽처 버퍼 정보의 시그널링
WO2023129744A1 (en) * 2021-12-30 2023-07-06 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for decoder-side intra mode derivation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2807780C (en) 2010-09-24 2018-09-18 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US9451284B2 (en) * 2011-10-10 2016-09-20 Qualcomm Incorporated Efficient signaling of reference picture sets
EP3090558A4 (en) * 2014-01-03 2017-08-16 Nokia Technologies OY Parameter set coding
WO2016188447A1 (en) * 2015-05-28 2016-12-01 Hfi Innovation Inc. Method and apparatus for using a current picture as a reference picture
KR102609949B1 (ko) 2018-08-17 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 참조 영상 관리
US20210314624A1 (en) * 2020-04-02 2021-10-07 Qualcomm Incorporated Signaling of syntax elements for video data

Also Published As

Publication number Publication date
JP2023526585A (ja) 2023-06-22
US11533472B2 (en) 2022-12-20
US20230156183A1 (en) 2023-05-18
WO2021237165A1 (en) 2021-11-25
EP4154414A1 (en) 2023-03-29
US20210368163A1 (en) 2021-11-25
CN115485981A (zh) 2022-12-16

Similar Documents

Publication Publication Date Title
US20230105972A1 (en) Method and system for processing video content
JP6293788B2 (ja) 高効率ビデオコーディングに基づくビデオ情報のスケーラブルコーディングのためのデバイスおよび方法
KR20220044754A (ko) 비디오 코딩을 위한 블록 파티셔닝 방법
JP2019519982A (ja) ビデオコーディングにおける適応ループフィルタ処理における複数のフィルタの混同
KR20230015363A (ko) 비디오 코딩에서 참조 픽처 처리를 위한 방법
KR20210045387A (ko) 변형 행렬 선택의 계수에 따른 코딩
CN111819853A (zh) 变换域中预测的信令残差符号
KR20220045045A (ko) 비디오 신호의 행렬 가중된 인트라 예측
KR20220062085A (ko) 비디오 처리에서 양자화 파라미터 시그널링
US20230300321A1 (en) Methods for constructing a merge candidate list
KR20240038959A (ko) 결합된 인터 및 인트라 예측을 수행하기 위한 방법 및 시스템
KR20230013103A (ko) 비디오 처리에서의 타일 및 슬라이스 파티셔닝
KR20220158002A (ko) 비디오 레코딩의 부호 데이터 은닉
KR20220120628A (ko) 서브화상 파티셔닝 정보를 시그널링하기 위한 방법 및 장치
KR20220115984A (ko) 팔레트 모드에서 비디오 데이터를 코딩하기 위한 방법 및 장치
US20230090025A1 (en) Methods and systems for performing combined inter and intra prediction
US11876973B2 (en) Method, apparatus, and non-transitory computer-readable storage medium for motion vector refinement for geometric partition mode
KR20220143870A (ko) 최대 변환 크기 및 잔차 코딩 방법의 시그널링
KR20230015405A (ko) 비디오 콘텐츠를 처리하기 위한 방법 및 장치
US20240146932A1 (en) Methods and non-transitory computer readable storage medium for performing subblock-based interprediction
US11451801B2 (en) Methods for coding video data in palette mode
US20230217026A1 (en) Fusion of video prediction modes
US20210385485A1 (en) Angular weighted prediction for inter prediction
KR20240036574A (ko) 교차-성분 적응형 루프 필터를 위한 방법 및 시스템
Zamarin et al. Edge-preserving Intra mode for efficient depth map coding based on H. 264/AVC