KR20220062588A - 비디오 부호화 정보 시그널링용 방법 및 장치 - Google Patents

비디오 부호화 정보 시그널링용 방법 및 장치 Download PDF

Info

Publication number
KR20220062588A
KR20220062588A KR1020227011871A KR20227011871A KR20220062588A KR 20220062588 A KR20220062588 A KR 20220062588A KR 1020227011871 A KR1020227011871 A KR 1020227011871A KR 20227011871 A KR20227011871 A KR 20227011871A KR 20220062588 A KR20220062588 A KR 20220062588A
Authority
KR
South Korea
Prior art keywords
flag
level
encoding mode
slice
mode
Prior art date
Application number
KR1020227011871A
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 KR20220062588A publication Critical patent/KR20220062588A/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Abstract

본 개시는 비디오 데이터에 대한 부호화 모드를 제어하는 방법들 및 장치들을 제공한다. 방법들 및 장치들은 비디오 데이터의 비트스트림을 수신하는 것; 비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및 비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하는 것을 포함한다.

Description

비디오 부호화 정보 시그널링용 방법 및 장치
관련된 출원에 대한 상호 참조
본 개시는 2019년 9월 12일에 출원된 미국 가특허 출원 제62/899,169호의 우선권을 주장하며, 이는 본원에서 그 전체로서 참조로 포함된다.
비디오는 시각적 정보를 캡처하는 정적 영상들(또는 "프레임들") 세트이다. 저장 메모리 및 전송 대역폭을 줄이기 위해, 저장 또는 전송 전에 비디오를 압축하고 디스플레이 전에 압축해제할 수 있다. 압축 프로세스는 대개 인코딩이라고 하고 압축해제 프로세스는 대개 디코딩이라고 한다. 표준화된 비디오 부호화(coding) 기술들을 사용하는 다양한 비디오 부호화 형식들이 있으며, 가장 일반적으로 예측, 변환, 양자화, 엔트로피 부호화 및 인-루프 필터링(in-loop filtering)에 기초한다. 고효율 비디오 부호화(High Efficiency Video Coding; HEVC/H.265) 표준, 다용도 비디오 부호화(Versatile Video Coding; VVC/H.266) 표준 AVS 표준들과 같은 특정 비디오 부호화 형식들을 지정하는 비디오 부호화 표준들이 표준화 기관들에서 개발되었다. 점점 더 많은 고급 비디오 부호화 기술들이 비디오 표준들에 채택됨에 따라, 새로운 비디오 부호화 표준들의 부호화 효율성은 점점 더 높아진다.
본 개시의 실시예들은 비디오 데이터에 대한 부호화 모드를 제어하는 방법 및 장치를 제공한다. 일 예시적인 실시예에서, 방법은: 비디오 데이터의 비트스트림(bitstream)을 수신하는 것; 비트스트림 내의 제 1 플래그(flag)에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및 비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드의 활성화 또는 비활성화 여부의 제어를 결정하는 것을 포함한다.
다른 예시적인 실시예에서, 방법은: 비디오 데이터의 비트스트림을 수신하는 것; 비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것; 비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 2 부호화 모드를 활성화 또는 비활성화하는 것; 및 비트스트림 내의 제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화 여부를 결정하는 것을 포함한다.
다른 예시적인 실시예에서, 방법은: 비디오 시퀀스, 제 1 플래그 및 제 2 플래그를 수신하는 것; 제 1 플래그에 기초하여, 비디오 비트스트림에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어를 활성화 또는 비활성화하는 것을 포함한다.
다른 예시적인 실시예에서, 방법은: 비디오 시퀀스, 제 1 플래그, 제 2 플래그 및 제 3 플래그를 수신하는 것; 제 1 플래그에 기초하여, 비디오 비트스트림에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것; 제 2 플래그에 기초하여, 비디오 비트스트림에 대한 제 2 부호화 모드를 활성화 또는 비활성화하는 것; 및 제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어를 활성화 또는 비활성화하는 것을 포함한다.
다른 예시적인 실시예에서, 비-일시적 컴퓨터-판독가능 매체는 장치의 적어도 하나의 프로세서에 의해 실행 가능하여 장치가 방법을 수행하도록 하는 명령어들의 세트를 저장한다. 방법은: 비디오 데이터의 비트스트림을 수신하는 것; 비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및 비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하는 것을 포함한다.
다른 예시적인 실시예에서, 비-일시적 컴퓨터-판독가능 매체는 장치의 적어도 하나의 프로세서에 의해 실행 가능하여 장치가 방법을 수행하도록 하는 명령어들의 세트를 저장한다. 방법은: 비디오 데이터의 비트스트림을 수신하는 것; 비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것; 비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 2 부호화 모드를 활성화 또는 비활성화하는 것; 및 비트스트림 내의 제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화 여부를 결정하는 것을 포함한다.
다른 실시예에서, 장치는 명령어들의 세트를 저장하도록 구성된 메모리 및 메모리에 통신 가능하게 결합되는 하나 이상의 프로세서들을 포함한다. 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가: 비디오 데이터의 비트스트림을 수신하고; 비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하고; 및 비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하게 하도록 구성된다.
다른 실시예에서, 장치는 명령어들의 세트를 저장하도록 구성된 메모리 및 메모리에 통신 가능하게 결합되는 하나 이상의 프로세서들을 포함한다. 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가: 비디오 데이터의 비트스트림을 수신하고; 비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 제 1 부호화 모드를 활성화 또는 비활성화하고; 비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 2 부호화 모드를 활성화 또는 비활성화하고; 및 비트스트림 내의 제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화 여부를 결정하게 하도록 구성된다.
본 개시의 실시예들 및 다양한 양태들이 하기 상세한 설명 및 첨부 도면들에 도시되어 있다. 도면들에 보여지는 다양한 특징들은 축척에 맞게 도시된 것은 아니다.
도 1은 본 개시의 일부 실시예에 따른, 예시적인 비디오 시퀀스의 구조들을 도시하는 개략도이다.
도 2a는 개시의 실시예들에 부합하는, 하이브리드 비디오 부호화 시스템의 예시적인 인코딩 프로세스의 개략도를 도시한다.
도 2b는 개시의 실시예들에 부합하는, 하이브리드 비디오 부호화 시스템의 다른 예시적인 인코딩 프로세스의 개략도를 도시한다.
도 3a는 개시의 실시예들에 부합하는, 하이브리드 비디오 부호화 시스템의 예시적인 디코딩 프로세스의 개략도를 도시한다.
도 3b는 개시의 실시예들에 부합하는, 하이브리드 비디오 부호화 시스템의 다른 예시적인 디코딩 프로세스의 개략도를 도시한다.
도 4는 본 개시의 일부 실시예들에 따른, 비디오를 인코딩 또는 디코딩하기 위한 예시적인 장치의 블록도를 도시한다.
도 5는 본 개시의 일부 실시예들에 따른, 디코더 측 움직임 벡터 개선(decoder side motion vector refinement; DMVR)의 예시적인 프로세스를 도시하는 개략도이다.
도 6은 본 개시의 일부 실시예들에 따른, 예시적인 DMVR 검색 프로세스를 도시하는 개략도이다.
도 7은 본 개시의 일부 실시예들에 따른, DMVR 정수 루마(luma) 샘플 검색을 위한 예시적인 패턴을 도시하는 개략도이다.
도 8은 본 개시의 일부 실시예들에 따른, DMVR 정수 루마 샘플 검색에서 정수 샘플 오프셋 검색을 위한 단계에 대한 다른 예시적인 패턴을 도시하는 개략도이다.
도 9는 본 개시의 일부 실시예들에 따른, DMVR 파라메트릭 오차 표면의 추정을 위한 예시적인 패턴을 도시하는 개략도이다.
도 10은 본 개시의 일부 실시예들에 따른, 양-방향 광학 흐름(bi-directional optical flow; BDOF)에서 사용되는 확장된 부호화 단위(coding unit; CU) 영역의 예의 개략도이다.
도 11은 본 개시의 일부 실시예들에 따른, 서브-블록 기반 아핀(affine) 움직임 및 샘플-기반 아핀 움직임의 예시의 개략도이다.
도 12는 본 개시의 일부 실시예들에 따른, DMVR 및 BDOF용 제어 플래그들을 구현하는 시퀀스 매개변수 세트(Sequence Parameter Set; SPS)의 예시적인 신택스(syntax) 구조를 나타내는 표 1을 도시한다.
도 13은 본 개시의 일부 실시예들에 따른, DMVR 및 BDOF용 제어 플래그들을 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 나타내는 표 2를 도시한다.
도 14a는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 광학 흐름을 이용한 예측 개선(Prediction Refinement with Optical Flow; PROF)용 슬라이스 수준 제어 플래그들을 구현하는 SPS의 예시적인 신택스 구조를 나타내는 표 3A를 도시한다.
도 14b는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 영상-수준 제어 플래그들을 구현하는 SPS의 예시적인 신택스 구조를 나타내는 표 3B를 도시한다.
도 15a는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF에 대한 제어 플래그들을 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 나타내는 표 4A를 도시한다.
도 15b는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF에 대한 제어 플래그들을 구현하는 영상 헤더의 예시적인 신택스 구조를 나타내는 표 4B를 도시한다.
도 16은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 개별-시퀀스 수준 제어 플래그들을 구현하는 SPS의 예시적인 신택스 구조를 나타내는 표 5를 도시한다.
도 17은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 공동 제어 플래그를 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 나타내는 표 6을 도시한다.
도 18은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 개별 제어 플래그를 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 나타내는 표 7을 도시한다.
도 19는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF에 대한 하이브리드 제어 플래그들을 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 나타내는 표 8을 도시한다.
도 20은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 하이브리드 시퀀스-수준 제어 플래그들을 구현하는 SPS의 예시적인 신택스 구조를 나타내는 표 9를 도시한다.
도 21은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 하이브리드 제어 플래그들을 구현하는 슬라이스 헤더의 다른 예시적인 신택스 구조를 나타내는 표 10을 도시한다.
도 22는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 개별 제어 플래그들을 구현하는 슬라이스 헤더의 다른 예시적인 신택스 구조를 나타내는 표 11을 도시한다.
도 23은 본 개시의 일부 실시예들에 따른, 비디오 디코딩 모드를 제어하는 예시적인 프로세스의 흐름도를 도시한다.
도 24는 본 개시의 일부 실시예들에 따른, 비디오 디코딩 모드를 제어하는 다른 예시적인 프로세스의 흐름도를 도시한다.
도 25는 본 개시의 일부 실시예들에 따른, 비디오 인코딩 모드를 제어하는 예시적인 프로세스의 흐름도를 도시한다.
도 26은 본 개시의 일부 실시예들에 따른, 비디오 인코딩 모드를 제어하는 다른 예시적인 프로세스의 흐름도를 도시한다.
이제 예시적인 실시예들을 상세히 참조할 수 있으며, 그 예시들은 첨부 도면들에 도시되어 있다. 하기 설명은 첨부 도면들을 참조하며 달리 나타나지 않는 한 상이한 도면에서 동일한 번호들은 동일하거나 유사한 요소들을 나타낸다. 예시적인 실시예들의 하기 설명에서 명시된 구현은 발명과 부합하는 모든 구현예들 나타내는 것은 아니다. 대신, 이들은 단지 첨부된 청구범위들에 인용된 본 발명과 관련된 양태들에 부합하는 장치들 및 방법들의 예시들일 뿐이다. 본 개시의 특정 양태들은 아래에서 더 상세히 설명된다. 참조로 포함된 용어들 및/또는 정의들과 상충하는 경우, 본원에 제공된 용어 및 정의가 우선 적용된다.
ITU-T 비디오 부호화 전문가 그룹(ITU-T VCEG)과 ISO/IEC 영상 전문가 그룹(ISO/IEC MPEG)의 공동 비디오 전문가들 팀(JVET)은 현재 다용도 비디오 부호화(Versatile Video Coding; VVC/H.266) 표준을 개발하고 있다. VVC 표준은 이전 버전인 고효율 비디오 부호화(HEVC/H.265) 표준보다, 압축 효율성을 두 배로 높이는 것을 목표로 한다. 달리 말하자면, VVC의 목표는 절반의 대역폭을 사용하여 HEVC/H.265와 동일한 주관적 품질을 달성하는 것이다.
절반의 대역폭을 사용하여 HEVC/H.265와 동일한 주관적 품질을 달성하기 위해, JVET는 공동 실험 모델(Joint Explosion Model; JEM) 참조 소프트웨어를 사용하여 HEVC 이상의 기술을 개발하고 있다. 부호화 기술들이 JEM에 통합됨에 따라, JEM은 HEVC보다 실질적으로 더 높은 부호화 성능을 달성했다.
VVC 표준은 최근에 개발되었으며 더 나은 압축 성능을 제공하는 더 많은 부호화 기술들을 계속 포함하고 있다. VVC는 HEVC, H.264/AVC, MPEG2, H.263 등과 같은 최신 비디오 압축 표준들에 사용된 것과 동일한 하이브리드 비디오 부호화 시스템에 기초한다.
비디오는 시각적 정보를 저장하기 위해 시간적 순서로 배열된 정적 영상(또는 "프레임")의 집합이다. 비디오 캡처 디바이스(예를 들어, 카메라)가 이러한 영상들을 시간적 순서로 캡처하고 저장하기 위해 사용될 수 있으며, 비디오 재생 디바이스(예를 들어, 텔레비전, 컴퓨터, 스마트폰, 태블릿 컴퓨터, 비디오 플레이어 또는 디스플레이 기능이 있는 임의의 최종-사용자 단말기)가 이러한 영상을 시간적 순서로 디스플레이하기 위해 사용될 수 있다. 또한, 일부 애플리케이션들에서, 비디오 캡처 디바이스는 감시, 회의 또는 라이브 방송과 같은, 캡처된 비디오를 실시간으로 비디오 재생 디바이스(예를 들어, 모니터가 있는 컴퓨터)로 전송할 수 있다.
이러한 애플리케이션들에 필요한 저장 공간 및 전송 대역폭을 줄이기 위해, 비디오는 저장 및 전송 전에 압축되고 디스플레이 전에 압축해제될 수 있다. 압축 및 압축해제는 프로세서(예를 들어, 일반 컴퓨터의 프로세서) 또는 특수 하드웨어에 의해 실행되는 소프트웨어에 의해 구현될 수 있다. 압축을 위한 모듈을 일반적으로 "인코더"라고 하고, 압축해제를 위한 모듈을 일반적으로 "디코더"라고 한다. 인코더와 디코더를 통틀어 "코덱"이라고 할 수 있다. 인코더 및 디코더는 다양한 적절한 하드웨어, 소프트웨어 또는 이들의 조합 중 임의의 것으로 구현될 수 있다. 예를 들어, 인코더 및 디코더의 하드웨어 구현은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들(DSPs), 주문형 집적 회로들(ASICs), 필드-프로그램 가능 게이트 어레이들(FPGAs), 이산 로직, 또는 이들의 임의의 조합과 같은 회로를 포함할 수 있다. 인코더 및 디코더의 소프트웨어 구현은 프로그램 코드들, 컴퓨터 실행-가능 명령어들, 펌웨어, 또는 컴퓨터-판독가능 매체에 고정된 임의의 적절한 컴퓨터-구현 알고리즘 또는 프로세스를 포함할 수 있다. 비디오 압축 및 압축해제는 MPEG-1, MPEG-2, MPEG-4, H.26x 시리즈들 등과 같은 다양한 알고리즘들 또는 표준들에 의해 구현될 수 있다. 일부 애플리케이션들에서, 코덱은 제 1 부호화 표준으로부터 비디오를 압축해제하고 제 2 부호화 표준을 사용하여 압축해제된 비디오를 재-압축할 수 있으며, 이 경우 코덱은 "트랜스코더"로 지칭될 수 있다.
비디오 인코딩 프로세스는 영상을 재구성하는 데 사용될 수 있는 유용한 정보를 식별 및 유지할 수 있으며 재구성에 대하여 중요하지 않은 정보를 무시할 수 있다. 무시된, 중요하지 않은 정보를 완전히 재구성할 수 없으면, 이러한 인코딩 프로세스를 "손실"이라고 지칭될 수 있다. 그렇지 않으면, "무손실"이라고 지칭될 수 있다. 대부분의 인코딩 프로세스는 손실이므로, 이는 필요한 저장 공간과 전송 대역폭을 줄이기 위한 절충안이다.
인코딩 타겟 영상(“현재 영상”으로 지칭됨)의 유용한 정보는 참조 영상(예를 들어, 이전에 부호화 및 재구성된 영상)에 대한 변경들을 포함한다. 이러한 변경들은 위치 변경들, 광도 변경들 또는 픽셀들의 색상 변경들을 포함할 수 있으며, 그 중 위치 변경들이 주로 관련된다. 개체를 나타내는 픽셀들의 그룹의 위치 변경들은 참조 영상과 현재 영상 사이의 개체 움직임을 반영할 수 있다.
다른 영상을 참조 없이 부호화된 영상(즉, 자체 참조 영상임)은 "I-영상"으로 지칭된다. 과거 영상을 참조 영상으로 사용하여 부호화된 영상은 "P-영상"으로 지칭된다. 과거 영상과 미래 영상을 모두 참조 영상으로 사용하여 부호화된 영상(즉, 참조가 "양-방향")은 "B-영상"으로 지칭된다.
본 개시의 일부 실시예들에 따르면, 도 1은 예시적인 비디오 시퀀스(100)의 구조들을 도시한다. 비디오 시퀀스(100)는 라이브 비디오 또는 캡처 및 보관된 비디오일 수 있다. 비디오(100)는 실-생활 비디오, 컴퓨터-생성 비디오(예를 들어, 컴퓨터 게임 비디오), 또는 이들의 조합(예를 들어, 증강-현실 효과를 갖는 실생활-비디오)일 수 있다. 비디오 시퀀스(100)는 비디오 캡처 디바이스(예를 들어, 카메라), 과거 캡처된 비디오를 함유하는 비디오 아카이브(예를 들어, 저장 디바이스에 저장된 비디오 파일), 또는 비디오 공급 인터페이스(예를 들어, 비디오 방송 송수신기)로부터 입력되어 비디오 콘텐츠 제공자로부터 비디오를 수신할 수 있다.
도 1에 도시된 바와 같이, 비디오 시퀀스(100)는, 영상들(102, 104, 106, 108)을 포함하여, 타임라인을 따라 시간적으로 배열된 일련의 영상들을 포함할 수 있다. 영상들(102-106)은 연속적이며, 영상(106)과 영상(108) 사이에는 더 많은 영상들이 있다. 도 1에서, 영상(102)은, 그 참조 영상이 영상(102) 자체인, I-영상이다. 영상(104)은 P-영상이고, 그 참조 영상은, 화살표로 보여지는 바와 같이, 영상(102)이다. 영상(106)은 B-영상이고, 그 참조 영상들은 화살표로 보여지는 바와 같이, 영상들(104 및 108)이다. 일부 실시예들에서, 영상(예를 들어, 영상 104)의 참조 영상은 영상 바로 앞이나 뒤에 있지 않을 수 있다. 예를 들어, 영상(104)의 참조 영상은 영상(102) 앞의 영상일 수 있다. 영상들(102-106)의 참조 영상들은 단지 예시들이고, 본 개시는 도 1에 도시된 예시들로 참조 영상들의 실시예들을 제한하지 않는다는 점에 유의해야 한다.
통상적으로, 비디오 코덱들은 이러한 작업들의 연산 복잡성으로 인해 한 번에 전체 영상을 인코딩 또는 디코딩하지 않는다. 오히려, 영상을 기본 세그먼트로 분할하고, 세그먼트별로 영상을 인코딩하거나 디코딩할 수 있다. 이러한 기본 세그먼트들은 본 개시에서 기본 처리 단위들(basic processing unit; BPUs)로 지칭된다. 예를 들어, 도 1의 구조(110)는 비디오 시퀀스(100)의 영상(예를 들어, 영상들(102-108) 중 임의의 것)의 예시적인 구조를 도시한다. 구조(110)에서, 영상은 4×4 기본 처리 단위들로 분할되고, 그 경계들은 파선들로 표시된다. 일부 실시예들에서, 기본 처리 단위들은 일부 비디오 부호화 표준들(예를 들어, MPEG 패밀리, H.261, H.263, 또는 H.264/AVC)에서 "매크로블록들"로, 또는 일부 다른 비디오 부호화 표준들(예를 들어, H.265/HEVC 또는 H.266/VVC)에서 "코딩 트리 단위들(coding tree units; CTUs)"로 지칭될 수 있다. 기본 처리 단위들은 영상에서 128×128, 64×64, 32×32, 16×16, 4×8, 16×32와 또는 임의의 모양과 픽셀 크기와 같이 영상에서 다양한 크기들을 가질 수 있다. 기본 처리 단위들의 크기들 및 모양들은 기본 처리 단위에서 유지되는 세부사항의 수준들과 부호화 효율성의 균형에 기초하여 영상에 대해 선택될 수 있다.
기본 처리 단위들은 컴퓨터 메모리에(예를 들어, 비디오 프레임 버퍼에) 저장된 상이한 유형들의 비디오 데이터의 그룹을 포함할 수 있는 논리 단위들일 수 있다. 예를 들어, 컬러 영상의 기본 처리 단위는 무채색 밝기 정보를 나타내는 루마 성분(Y), 컬러 정보를 나타내는 하나 이상의 크로마 성분들(예를 들어, Cb 및 Cr) 및 연관된 신택스 요소를 포함할 수 있으며, 여기에서 루마 및 크로마 성분들은 기본 처리 단위와 동일한 크기를 가질 수 있다. 루마 및 크로마 성분들은 일부 비디오 부호화 표준들(예를 들어, H.265/HEVC 또는 H.266/VVC)에서 "코딩 트리 블록들(CTBs)"으로 지칭될 수 있다. 기본 처리 단위에 수행된 모든 동작은 그 루마 및 크로마 성분들 각각에 대해 반복적으로 수행될 수 있다.
비디오 부호화은 여러 단계들의 동작들을 가지며, 그 예시들이 도 2a 내지 도 2b 및 도 3a 내지 3b에 도시된다. 각 단계에 대해, 기본 처리 단위들의 크기는 여전히 처리하기에 너무 클 수 있으므로, 본 개시에서 "기본 처리 서브-단위들"이라고 하는 세그먼트들로 더 나눌 수 있다. 일부 실시예들에서, 기본 처리 서브-단위들은 일부 비디오 부호화 표준들(예를 들어, MPEG 패밀리, H.261, H.263, 또는 H.264/AVC)에서 "블록들"로, 또는 일부 다른 비디오 부호화 표준들(예를 들어, H.265/HEVC 또는 H.266/VVC)에서 "코딩 단위들(coding unit; CUs)"로 지칭될 수 있다. 기본 처리 서브-단위는 기본 처리 단위와 같거나 더 작은 크기를 가질 수 있다. 기본 처리 단위들과 유사하게, 기본 처리 서브-단위들 또한 논리 단위들이며, 컴퓨터 메모리(예를 들어, 비디오 프레임 버퍼)에 저장된 상이한 유형들의 비디오 데이터((예를 들어, Y, Cb, Cr 및 연관된 신택스 요소들)의 그룹을 포함할 수 있다. 기본 처리 서브-단위에 수행된 모든 동작은 그 루마 및 크로마 성분들 각각에 대해 반복적으로 수행될 수 있다. 이러한 나눔은 처리 요구 사항들에 따라 추가 수준들로 수행될 수 있다는 점에 유의해야 한다. 또한 상이한 단계들은 상이한 방식을 사용하여 기본 처리 단위를 나눌 수 있다는 점에 유의해야 한다.
예를 들어, 모드 결정 단계(도 2b에 도시된 예시)에서, 인코더는 기본 처리 단위에 사용하기 위한 예측 모드(예를 들어, 영상-내(intra-picture) 예측 또는 영상-간(inter-picture) 예측)를 결정할 수 있으며, 이는 그러한 결정을 내리기에 너무 클 수 있다. 인코더는 기본 처리 단위를 여러 기본 처리 서브-단위들(예를 들어 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 기본 처리 서브-단위로 더 나눠지고, 그 경계들은 점선들로 표시된다. 동일한 영상의 상이한 기본 처리 단위들은 상이한 방식의 기본 처리 서브-단위들로 나뉠 수 있다.
일부 구현예들에서, 비디오 인코딩 및 디코딩에 대한 병렬 처리 및 오류 복원 능력을 제공하기 위해, 영상은, 영상의 영역에 대해, 인코딩 또는 디코딩 프로세스가 영상의 다른 영역에 대한 정보에 의존하지 않을 수 있는 처리를 위한 영역들로 분할될 수 있다. 달리 말하자면, 영상의 각 영역은 독립적으로 처리될 수 있다. 이렇게 함으로써, 코덱은 영상의 상이한 영역을 병렬로 처리할 수 있어, 부호화 효율성을 높일 수 있다. 또한, 처리에서 영역의 데이터가 손상되거나 네트워크 전송에서 손실될 때, 코덱은 손상되거나 손실된 데이터를 복원하지 않고 동일한 영상의 다른 영역을 올바르게 인코딩 또는 디코딩할 수 있으므로, 오류 복원 능력을 제공한다. 일부 비디오 부호화 표준들에서, 영상은 상이한 유형들의 영역으로 나눌 수 있다. 예를 들어, H.265/HEVC 및 H.266/VVC는 "슬라이스들" 및 "타일들"이라는 두 가지 유형의 영역들을 제공한다. 비디오 시퀀스(100)의 상이한 영상들은 영상을 영역으로 나누기 위한 상이한 분배 방식을 가질 수 있음을 또한 유의해야 한다.
예를 들어, 도 1에서, 구조(110)는 3개의 영역들(114, 116, 118)로 분할되고, 그 경계들은 구조(110) 내부에 실선들로 도시된다. 영역(114)은 4개의 기본 처리 단위들을 포함한다. 영역들(116, 118) 각각은 6개의 기본 처리 단위들을 포함한다. 도 1의 구조(110)의 기본 처리 단위들, 기본 처리 서브-단위들 및 영역들은 예시일 뿐, 본 개시가 그 실시예들을 한정하는 것이 아님을 유의해야 한다.
도 2a는 개시의 실시예들에 부합하는, 예시적인 인코딩 프로세스(200A)의 개략도를 도시한다. 예를 들어, 인코딩 프로세스(200A)는 인코더에 의해 수행될 수 있다. 도 2a에 도시된 바와 같이, 인코더는 프로세스(200A)에 따라 비디오 시퀀스(202)를 비디오 비트스트림(228)으로 인코딩할 수 있다. 도 1의 비디오 시퀀스(100)와 유사하게, 비디오 시퀀스(202)는 시간적 순서로 배열된 영상들의 세트("원본 영상"으로 지칭됨)를 포함할 수 있다. 도 1의 구조(110)와 유사하게, 비디오 시퀀스(202)의 각각의 원본 영상은 인코더에 의해 기본 처리 단위들, 기본 처리 서브-단위들, 또는 처리를 위한 영역들로 나눠질 수 있다. 일부 실시예들에서, 인코더는 비디오 시퀀스(202)의 각각의 원본 영상에 대한 기본 처리 단위들의 수준에서 프로세스(200A)를 수행할 수 있다. 예를 들어, 인코더는 프로세스(200A)를 반복적인 방식으로 수행할 수 있고, 여기서 인코더는 프로세스(200A)의 1회 반복에서 기본 처리 단위를 인코딩할 수 있다. 일부 실시예들에서, 인코더는 비디오 시퀀스(202)의 각각의 원본 영상의 영역들(예를 들어, 영역들(114 내지 118))에 대해 병렬로 프로세스(200A)를 수행할 수 있다.
도 2a에서, 인코더는 비디오 시퀀스(202)의 원본 영상의 기본 처리 단위("원본 BPU"로 지칭됨)를 예측 단계(204)로 공급하여 예측 데이터(206) 및 예측된 BPU(208)를 생성할 수 있다. 인코더는 원본 BPU로부터 예측된 BPU(208)를 빼서 잔차 BPU(210)를 생성할 수 있다. 인코더는 잔차 BPU(210)를 변환 단계(212) 및 양자화 단계(214)로 공급하여 양자화된 변환 계수들(216)을 생성할 수 있다. 인코더는 예측 데이터(206) 및 양자화된 변환 계수들(216)을 이진 부호화 단계(226)로 공급하여 비디오 비트스트림(228)을 생성할 수 있다. 성분들(202, 204, 206, 208, 210, 212, 214, 216, 226 및 228)은 "순방향 경로"로 지칭될 수 있다. 프로세스(200A) 동안, 양자화 단계(214) 이후에, 인코더는 양자화된 변환 계수들(216)을 역양자화 단계(218) 및 역변환 단계(220)로 공급하여 재구성된 잔차 BPU(222)를 생성할 수 있다. 인코더는 재구성된 잔차 BPU(222)를 예측된 BPU(208)에 더하여 예측 참조(224)를 생성할 수 있으며, 이는 프로세스(200A)의 다음 반복을 위해 예측 단계(204)에서 사용된다. 프로세스(200A)의 성분들(218, 220, 222 및 224)은 "재구성 경로"로 지칭될 수 있다. 재구성 경로는 인코더와 디코더 모두가 예측을 위해 동일한 참조 데이터를 사용하도록 보장하는 데 사용될 수 있다.
인코더는 (순방향 경로에서) 원본 영상의 각 원본 BPU를 인코딩하고 (재구성 경로에서) 원본 영상의 다음 원본 BPU를 인코딩하기 위한 예측된 참조(224)를 생성하기 위해 프로세스(200A)를 반복적으로 수행할 수 있다. 원본 영상의 모든 원본 BPU들을 인코딩한 후, 인코더는 비디오 시퀀스(202)에서 다음 영상을 인코딩하도록 진행할 수 있다.
프로세스(200A)를 참조하면, 인코더는 비디오 캡처 디바이스(예를 들어, 카메라)에 의해 생성된 비디오 시퀀스(202)를 수신할 수 있다. 본원에서 사용되는 용어 "수신"은 수신, 입력, 취득, 검색, 획득, 판독, 접근 또는 데이터 입력을 위한 임의의 방식의 임의의 조치를 지칭할 수 있다.
예측 단계(204)에서, 현재 반복에서, 인코더는 원본 BPU 및 예측 참조(224)를 수신하고, 예측 동작을 수행하여 예측 데이터(206) 및 예측된 BPU(208)를 생성할 수 있다. 예측 참조(224)는 프로세스(200A)의 이전 반복의 재구성 경로로부터 생성될 수 있다. 예측 단계(204)의 목적은 예측 데이터(206) 및 예측 참조(224)로부터 예측된 BPU(208)로서 원본 BPU를 재구성하는데 사용될 수 있는 예측 데이터(206)를 추출함으로써 정보 중복성을 감소시키는 것이다.
이상적으로, 예측된 BPU(208)는 원본 BPU와 똑같을 수 있다. 그러나, 비-이상적 예측 및 재구성 동작들로 인해, 예측된 BPU(208)는 보통 원본 BPU와 약간 상이하다. 그러한 상이점들을 기록하기 위해, 예측된 BPU(208)를 생성한 후, 인코더는 원본 BPU에서 그것을 빼서 잔차 BPU(210)를 생성할 수 있다. 예를 들어, 인코더는 예측된 BPU(208)의 픽셀들의 값들(예를 들어, 회색조 값들 또는 RGB 값들)을 원본 BPU의 대응하는 픽셀들의 값들로부터 뺄 수 있다. 잔차 BPU(210)의 각 픽셀은 예측된 BPU(208)와 원본 BPU의 대응하는 픽셀들 사이의 이러한 뺄셈의 결과로서 잔차 값을 가질 수 있다. 원본 BPU와 비교하여, 예측 데이터(206) 및 잔차 BPU(210)는 더 적은 비트들을 가질 수 있지만, 심각한 품질 저하 없이 원본 BPU를 재구성하는 데 사용할 수 있다. 따라서, 원본 BPU가 압축된다.
잔차 BPU(210)를 추가로 압축하기 위해, 변환 단계(212)에서, 인코더는 잔차 BPU(210)를 2-차원 "기본 패턴들" 세트로 분해함으로써 그 공간적 중복성을 줄일 수 있으며, 각 기본 패턴은 "변환 계수"와 연관된다. 기본 패턴은 동일한 크기(예를 들어, 잔차 BPU(210)의 크기)를 가질 수 있다. 각 기본 패턴은 잔차 BPU(210)의 변동 주파수(예를 들어, 밝기 변동 주파수) 성분을 나타낼 수 있다. 기본 패턴들 중 어느 것도 임의의 다른 기본 패턴들의 임의의 조합들(예를 들어, 선형 조합들)로부터 재생될 수 없다. 달리 말하자면, 분해는 잔차 BPU(210)의 변동을 주파수 영역으로 분해할 수 있다. 이러한 분해는 기본 패턴이 이산 푸리에 변환의 기본 함수(예를 들어, 삼각 함수들)들과 유사하고, 변환 계수들이 기본 함수와 연관된 계수들과 유사한, 함수의 이산 푸리에 변환과 유사하다.
상이한 변환 알고리즘들은 상이한 기본 패턴들을 사용할 수 있다. 예를 들어, 이산 코사인 변환, 이산 사인 변환 등과 같은 다양한 변환 알고리즘들이 변환 단계(212)에서 사용될 수 있다. 변환 단계(212)에서의 변환은 가역적이다. 즉, 인코더는 변환의 역동작("역변환"으로 지칭됨)에 의해 잔차 BPU(210)를 복구할 수 있다. 예를 들어, 잔차 BPU(210)의 픽셀을 복구하기 위해, 역변환은 기본 패턴들의 대응하는 픽셀들의 값들을 각자의 연관된 계수들로 곱하고 곱을 더하여 가중합을 제공하는 것일 수 있다. 비디오 부호화 표준의 경우, 인코더와 디코더 모두 동일한 변환 알고리즘(따라서 동일한 기본 패턴들)을 사용할 수 있다. 따라서, 인코더는, 인코더로부터 기본 패턴들을 수신하지 않고 디코더가 잔차 BPU(210)를 재구성할 수 있는, 변환 계수들만을 기록할 수 있다. 잔차 BPU(210)와 비교하여, 변환 계수들은 더 적은 비트들을 가질 수 있지만, 심각한 품질 저하 없이 잔차 BPU(210)를 재구성하는 데 사용될 수 있다. 따라서, 잔차 BPU(210)는 더 압축된다.
인코더는 양자화 단계(214)에서 변환 계수들을 더 압축할 수 있다. 변환 프로세스에서, 상이한 기본 패턴들은 상이한 변동 주파수들(예를 들어, 밝기 변동 주파수들)을 나타낼 수 있다. 인간의 눈들은 보통 저-주파 변동을 더 잘 인식하기 때문에, 인코더는 디코딩에서 심각한 품질 저하를 일으키지 않고 고-주파 변동 정보를 무시할 수 있다. 예를 들어, 양자화 단계(214)에서, 인코더는 각 변환 계수를 정수 값("양자화 매개변수"로 지칭됨)으로 나누고 몫을 가장 가까운 정수로 반올림함으로써 양자화된 변환 계수들(216)을 생성할 수 있다. 이러한 동작 후에, 고-주파 기본 패턴들의 일부 변환 계수들은 0으로 전환될 수 있고, 저-주파 기본 패턴들의 변환 계수들은 더 작은 정수들로 전환될 수 있다. 인코더는 변환 계수들이 추가로 압축되는, 0-값 양자화된 변환 계수들(216)을 무시할 수 있다. 양자화 프로세스는 또한 가역적이며, 여기서 양자화된 변환 계수들(216)은 양자화의 역동작("역양자화"로 지칭됨)에서 변환 계수들로 재구성될 수 있다.
인코더가 반올림 동작에서 이러한 나눗셈들의 나머지들을 무시하기 때문에, 양자화 단계(214)는 손실일 수 있다. 통상적으로, 양자화 단계(214)는 프로세스(200A)에서 가장 많은 정보 손실에 기여할 수 있다. 정보 손실이 클수록, 양자화된 변환 계수(216)가 필요로 할 수 있는 비트들이 더 적다. 정보 손실의 상이한 수준들을 획득하기 위해, 인코더는 양자화 매개변수의 상이한 값들 또는 양자화 프로세스의 임의의 다른 매개변수를 사용할 수 있다.
이진 부호화 단계(226)에서, 인코더는 예를 들어 엔트로피 부호화, 가변 길이 부호화, 산술 부호화, 호프만 부호화, 맥락-적응 이진 산술 부호화, 또는 기타 무손실 또는 손실 압축 알고리즘과 같은 이진 부호화 기술을 사용하여 예측 데이터(206) 및 양자화된 변환 계수(216)를 인코딩할 수 있다. 일부 실시예들에서, 예측 데이터(206) 및 양자화된 변환 계수들(216) 외에도, 인코더는 예를 들어, 예측 단계(204)에서 사용되는 예측 모드, 예측 동작의 매개변수, 변환 단계(212)에서의 변환 유형, 양자화 프로세스의 매개변수들(예를 들어, 양자화 매개변수들), 인코더 제어 매개변수(예를 들어, 비트레이트 제어 매개변수) 등과 같은 다른 정보를 이진 부호화 단계(226)에서 인코딩할 수 있다. 인코더는 이진 부호화 단계(226)의 출력 데이터를 사용하여 비디오 비트스트림(228)을 생성할 수 있다. 일부 실시예들에서, 비디오 비트스트림(228)은 추가로 네트워크 전송을 위해 패킷화될 수 있다.
프로세스(200A)의 재구성 경로를 참조하면, 역양자화 단계(218)에서, 인코더는 양자화된 변환 계수들(216)에 대해 역양자화를 수행하여 재구성된 변환 계수들을 생성할 수 있다. 역변환 단계(220)에서, 인코더는 재구성된 변환 계수들에 기초하여 재구성된 잔차 BPU(222)를 생성할 수 있다. 인코더는 재구성된 잔차 BPU(222)를 예측된 BPU(208)에 더하여 프로세스(200A)의 다음 반복에서 사용될 예측 참조(224)를 생성할 수 있다.
프로세스(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)를 생성할 수 있다. 보외법 기술들은, 예를 들어, 선형 보외법 또는 보간법, 다항식 보외법 또는 보간법 등을 포함할 수 있다. 일부 실시예들에서, 인코더는 예측된 BPU(208)의 각 픽셀에 대한 대응하는 픽셀들의 값들을 보외함으로써, 픽셀 수준에서 보외법을 수행할 수 있다. 보외법에 사용되는 이웃하는 BPU들은 원본 BPU에 대해, 수직 방향(예를 들어, 원본 BPU의 상단), 수평 방향(예를 들어, 원본 BPU의 왼쪽), 대각선 방향(예를 들어 원본 BPU의 왼쪽-아래, 오른쪽-아래, 왼쪽-위쪽 또는 위쪽-오른쪽) 또는 사용된 비디오 부호화 표준에 정의된 임의의 방향과 같은 다양한 방향들로부터 위치할 수 있다. 인트라 예측을 위해, 예측 데이터(206)는, 예를 들어, 사용된 이웃 BPU들의 위치들(예를 들어, 좌표들), 사용된 이웃 BPU들의 크기들, 보외법의 매개변수들, 원본 BPU에 대해 사용된 이웃 BPU들의 방향 등을 포함할 수 있다.
다른 예시로서, 시간적 예측 단계(2044)에서, 인코더는 인터 예측을 수행할 수 있다. 현재 영상의 원본 BPU에 대해, 예측 참조(224)는 (순방향 경로에서) 인코딩되고 (재구성된 경로에서) 재구성된 하나 이상의 영상들("참조 영상들"로 지칭됨)을 포함할 수 있다. 일부 실시예들에서, 참조 영상은 BPU별로 인코딩 및 재구성될 수 있다. 예를 들어, 인코더는 예측된 BPU(208)에 재구성된 잔차 BPU(222)를 더하여 재구성된 BPU를 생성할 수 있다. 동일한 영상의 재구성된 BPU들이 모두 생성되면, 인코더는 재구성된 영상을 참조 영상으로 생성할 수 있다. 인코더는 참조 영상의 범위("검색 창"으로 지칭됨)에서 일치하는 영역을 검색하기 위해 "움직임 추정" 동작을 수행할 수 있다. 참조 영상에서 검색 창의 위치는 현재 영상에서 원본 BPU의 위치에 기초하여 결정될 수 있다. 예를 들어, 검색 창은 참조 영상에서 현재 영상의 원본 BPU와 동일한 좌표들을 갖는 위치에 중심을 두고 미리 결정된 거리만큼 확장될 수 있다. 인코더가 검색 창에서 원본 BPU와 유사한 영역을 (예를 들어, PRA(pel-recursive algorithm) , 블록-매칭 알고리즘 등을 사용하여) 식별할 때, 인코더는 그러한 영역을 일치 영역으로 결정할 수 있다. 일치 영역은 원본 BPU와 상이한 차원들(예를 들어, 더 작거나, 같거나, 더 크거나, 상이한 모양)을 가질 수 있다. 참조 영상과 현재 영상은 타임라인에서 시간적으로 분리되어 있기 때문에(예를 들어, 도 1에 도시된 바와 같이), 시간이 지남에 따라 일치 영역이 원본 BPU의 위치로 "움직인다"고 간주될 수 있다. 인코더는 이러한 움직임의 방향과 거리를 "움직임 벡터"로 기록할 수 있다. 다수의 참조 영상들이 사용되는 경우(예를 들어, 도 1의 영상(106)), 인코더는 일치 영역을 검색하고 각 참조 영상에 대한 연관된 움직임 벡터를 결정할 수 있다. 일부 실시예들에서, 인코더는 각자의 일치 참조 영상들의 일치 영역들의 픽셀 값들에 가중치를 할당할 수 있다.
움직임 추정은, 예를 들어, 병진들, 회전들, 줌 등과 같은 다양한 유형들의 움직임을 식별하는 데 사용될 수 있다. 인터 예측의 경우, 예측 데이터(206)는, 예를 들어, 일치 영역의 위치들(예를 들어, 좌표들), 일치 영역과 연관된 움직임 벡터들, 참조 영상들의 수, 참조 영상과 연관된 가중치 등을 포함할 수 있다.
예측된 BPU(208)를 생성하기 위해, 인코더는 "움직임 보상"의 동작을 수행할 수 있다. 움직임 보상은 예측 데이터(206)(예를 들어, 움직임 벡터) 및 예측 참조(224)에 기초하여 예측된 BPU(208)를 재구성하는데 사용될 수 있다. 예를 들어, 인코더는 움직임 벡터에 따라 참조 영상의 일치 영역을 이동할 수 있으며, 여기에서 인코더는 현재 영상의 원본 BPU를 예측할 수 있다. 다수의 참조 영상이 사용되는 경우(예를 들어, 도 1의 영상(106)), 인코더는 각자의 움직임 벡터들 및 일치 영역들의 평균 픽셀 값들에 따라 참조 영상들의 일치 영역들을 움직일 수 있다. 일부 실시예들에서, 인코더가 각자의 일치 참조 영상들의 일치 영역들의 픽셀 값들에 가중치를 할당했다면, 인코더는 움직인 일치 영역들의 픽셀 값들의 가중합을 더할 수 있다.
일부 실시예에서, 인터 예측은 단방향 또는 양방향일 수 있다. 단방향 인터 예측들은 현재 영상에 대해 동일한 시간 방향으로 하나 이상의 참조 영상들을 사용할 수 있다. 예를 들어, 도 1의 영상(104)은 참조 영상(즉, 영상(102))이 영상(104)에 선행하는 단방향 인터 예측 영상이다. 양방향 인터 예측들은 현재 영상에 대해 양쪽 시간 방향에서 하나 이상의 참조 영상을 사용할 수 있다. 예를 들어, 도 1의 영상 106은 참조 영상들(즉, 영상들(104 및 108))이 영상 104에 대해 양쪽 시간 방향들에 있는 양방향 인터 예측 영상이다.
여전히 프로세스(200B)의 순방향 경로를 참조하면, 공간적 예측 단계(2042) 및 시간적 예측 단계(2044) 이후에, 모드 결정 단계(230)에서, 인코더는 프로세스(200B)의 현재 반복에 대해 예측 모드(예를 들어, 인트라 예측 또는 인터 예측 중 하나)를 선택할 수 있다. 예를 들어, 인코더는 레이트-왜곡 최적화 기술을 수행할 수 있는데, 여기에서 인코더는 후보 예측 모드의 비트레이트 및 후보 예측 모드 하의 재구성된 참조 영상의 왜곡에 따라 비용 함수의 값을 최소화하기 위한 예측 모드를 선택할 수 있다. 선택된 예측 모드에 따라, 인코더는 대응하는 예측된 BPU(208) 및 예측된 데이터(206)를 생성할 수 있다.
프로세스(200B)의 재구성 경로에서, 순방향 경로에서 인트라 예측 모드가 선택된 경우, 예측 참조(224)(예를 들어, 현재 영상에서 인코딩 및 재구성된 현재 BPU)를 생성한 후, 인코더는 나중의 사용을 위해(예를 들어, 현재 영상의 다음 BPU의 보외법을 위해) 예측 참조(224)를 공간적 예측 단계(2042)로 직접 공급할 수 있다. 순방향 경로에서 인터 예측 모드가 선택되었다면, 예측 참조(224)(예를 들어, 모든 BPU들이 인코딩 및 재구성된 현재 영상)를 생성한 후, 인코더는 예측 참조(224)를 루프 필터 단계(232)로 공급할 수 있으며, 여기에서 인코더는 예측 참조(224)에 루프 필터를 적용하여 인터 예측에 의해 도입된 왜곡(예를 들어, 블로킹 아티팩트(blocking artifacts)을 줄이거나 제거할 수 있다. 인코더는 루프 필터 단계(232)에서, 예를 들어, 디블로킹(deblocking), 적응적 샘플 오프셋, 적응적 루프 필터 등과 같은 다양한 루프 필터 기술을 적용할 수 있다. 루프-필터링된 참조 영상은 나중에 사용하기 위해(예를 들어, 비디오 시퀀스(202)의 미래 영상에 대한 인터-예측 참조 영상으로 사용하기 위해) 버퍼(234)(또는 "디코딩된 영상 버퍼")에 저장될 수 있다. 인코더는 시간적 예측 단계(2044)에서 사용하기 위해 버퍼(234)에 하나 이상의 참조 영상들을 저장할 수 있다. 일부 실시예들에서, 인코더는 양자화된 변환 계수들(216), 예측 데이터(206) 및 기타 정보와 함께, 이진 부호화 단계(226)에서 루프 필터의 매개변수들(예를 들어, 루프 필터 강도)을 인코딩할 수 있다.
도 3a는 개시의 실시예들에 부합하는, 예시적인 디코딩 프로세스(300A)의 개략도를 도시한다. 프로세스(300A)는 도 2a의 압축 프로세스(200A)에 대응하는 압축해제 프로세스일 수 있다. 일부 실시예들에서, 프로세스(300A)는 프로세스(200A)의 재구성 경로와 유사할 수 있다. 디코더는 프로세스(300A)에 따라 비디오 비트스트림(228)을 비디오 스트림(304)으로 디코딩할 수 있다. 비디오 스트림(304)은 비디오 시퀀스(202)와 매우 유사할 수 있다. 그러나, 압축 및 압축해제 프로세스(예를 들어, 도 2a 내지 도 2b의 양자화 단계(214))에서의 정보 손실로 인해, 보통, 비디오 스트림(304)은 비디오 시퀀스와 똑같지 않다. 도 2a 내지 도 2b의 프로세스(200A 및 200B)와 유사하게, 디코더는 비디오 비트스트림(228) 내의 인코딩된 각 영상에 대해 기본 처리 단위들(BPUs)의 수준에서 프로세스(300A)를 수행할 수 있다. 예를 들어, 디코더는 반복적인 방식으로 프로세스(300A)를 수행할 수 있으며, 여기에서 디코더는 프로세스(300A)의 한 번의 반복에서 기본 처리 단위를 디코딩할 수 있다. 일부 실시예들에서, 디코더는 비디오 비트스트림(228) 내 인코딩된 각 영상의 영역들(예를 들어, 영역들(114-118))에 대해 병렬로 프로세스(300A)를 수행할 수 있다.
도 3a에서, 디코더는 인코딩된 영상의 기본 처리 단위("인코딩된 BPU"로 지칭됨)와 연관된 비디오 비트스트림(228)의 부분을 이진 디코딩 단계(302)로 공급할 수 있다. 이진 디코딩 단계(302)에서, 디코더는 이 부분을 예측 데이터(206) 및 양자화된 변환 계수들(216)로 디코딩할 수 있다. 디코더는 양자화된 변환 계수들(216)을 역양자화 단계(218) 및 역변환 단계(220)로 공급하여 재구성된 잔차 BPU(222)를 생성할 수 있다. 디코더는 예측 데이터(206)를 예측 단계(204)로 공급하여 예측된 BPU(208)를 생성할 수 있다. 디코더는 재구성된 잔차 BPU(222)를 예측된 BPU(208)에 더하여 예측된 참조(224)를 생성할 수 있다. 일부 실시예들에서, 예측된 참조(224)는 버퍼(예를 들어, 컴퓨터 메모리의 디코딩된 영상 버퍼)에 저장될 수 있다. 디코더는 프로세스(300A)의 다음 반복에서 예측 동작을 수행하기 위해 예측된 참조(224)를 예측 단계(204)로 공급할 수 있다.
디코더는 인코딩된 영상의 각 인코딩된 BPU를 디코딩하고 인코딩된 영상의 다음 인코딩된 BPU를 인코딩하기 위한 예측된 참조(224)를 생성하기 위해 프로세스(300A)를 반복적으로 수행할 수 있다. 인코딩된 영상의 모든 인코딩된 BPU들을 디코딩한 후, 디코더는 디스플레이하기 위해 영상을 비디오 스트림(304)으로 출력하고 비디오 비트스트림(228)에서 다음 인코딩된 영상을 디코딩하도록 진행할 수 있다.
이진 디코딩 단계(302)에서, 디코더는 인코더에 의해 사용되는 이진 부호화 기술(예를 들어, 엔트로피 부호화, 가변 길이 부호화, 산술 부호화, 호프만 부호화, 맥락 적응 이진 산술 부호화, 또는 임의의 다른 무손실 압축 알고리즘)의 역 동작을 수행할 수 있다. 일부 실시예들에서, 예측 데이터(206) 및 양자화된 변환 계수들(216) 외에도, 디코더는, 예를 들어, 예측 모드, 예측 동작의 매개변수들, 변환 유형, 양자화 프로세스의 매개변수들(예를 들어, 양자화 매개변수들), 인코더 제어 매개변수(예를 들어, 비트레이트 제어 매개변수) 등과 같은, 다른 정보를 이진 디코딩 단계(302)에서 디코딩할 수 있다. 일부 실시예들에서, 비디오 비트스트림(228)이 네트워크를 통해 패킷들로 전송된다면, 디코더는 비디오 비트스트림(228)을 이진 디코딩 단계(302)로 공급하기 전에 패킷 해제(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에 설명된 바와 같이, 디코더는 예측된 BPU(208) 및 재구성된 잔차 BPU(222)를 더하여 예측 참조(224)를 생성할 수 있다.
프로세스(300B)에서, 디코더는 프로세스(300B)의 다음 반복에서 예측 동작을 수행하기 위해 예측된 참조(224)를 공간적 예측 단계(2042) 또는 시간적 예측 단계(2044)에 공급할 수 있다. 예를 들어, 현재 BPU가 공간적 예측 단계(2042)에서 인트라 예측을 사용하여 디코딩되는 경우, 예측 참조(224)(예를 들어, 디코딩된 현재 BPU)를 생성한 후에, 디코더는 나중 사용을 위해(예를 들어, 현재 영상의 다음 BPU의 보외법을 위해) 예측 참조(224)를 공간적 예측 단계(2042)로 직접 공급할 수 있다. 현재 BPU가 시간적 예측 단계(2044)에서 인터 예측을 사용하여 디코딩되는 경우, 예측 참조(224)(예를 들어, 모든 BPU들이 디코딩된 참조 영상)를 생성한 후, 인코더는 예측 참조(224)를 루프 필터 단계(232)로 공급하여 왜곡(예를 들어 블로킹 아티팩트)을 줄이거나 제거할 수 있다. 디코더는 도 2b에 설명된 방식으로 루프 필터를 예측 참조(224)에 적용할 수 있다. 루프-필터링된 참조 영상은 나중에 사용하기 위해(예를 들어, 비디오 비트스트림(228)의 미래 인코딩된 영상에 대한 인터-예측 참조 영상으로 사용하기 위해) 버퍼(234)(예를 들어, 컴퓨터 메모리의 디코딩된 영상 버퍼)에 저장될 수 있다. 디코더는 시간적 예측 단계(2044)에서 사용하기 위한 버퍼(234)에 하나 이상의 참조 영상들을 저장할 수 있다. 일부 실시예들에서, 예측 데이터(206)의 예측 모드 표시자가 현재 BPU를 인코딩하기 위해 인터 예측이 사용되었음을 보여줄 때, 예측 데이터는 추가로 루프 필터의 매개변수들(예를 들어, 루프 필터 강도)을 더 포함할 수 있다.
도 4는 개시의 실시예들에 부합하는, 비디오를 인코딩 또는 디코딩하기 위한 예시적인 장치(400)의 블록도이다. 도 4에 도시된 바와 같이, 장치(400)는 프로세서(402)를 포함할 수 있다. 프로세서(402)가 본원에 설명된 명령어들을 실행할 때, 장치(400)는 비디오 인코딩 또는 디코딩을 위한 특수 기계가 될 수 있다. 프로세서(402)는 정보를 조작하거나 처리할 수 있는 임의의 유형의 회로일 수 있다. 예를 들어, 프로세서(402)는 중앙 처리 장치(또는 "CPU"), 그래픽 처리 장치(또는 "GPU"), 신경 처리 장치("NPU"), 마이크로컨트롤러 장치("MCU"), 광 프로세서, 프로그램 가능 로직 컨트롤러, 마이크로컨트롤러, 마이크로프로세서, 디지털 신호 프로세서, 지적 재산(IP) 코어, 프로그램 가능 로직 어레이(PLA), 프로그램 가능 어레이 로직(PAL), 일반 어레이 로직(GAL), 복합 프로그램 가능 로직 디바이스(CPLD), 현장-프로그램 가능 게이트 어레이(FPGA), 단일 칩 시스템(SoC), 주문형 집적 회로(ASIC) 등의 임의의 수의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 프로세서(402)는 또한 단일의 논리적 성분으로서 그룹화된 프로세서들의 세트일 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 프로세서(402)는 프로세서(402a), 프로세서(402b) 및 프로세서(402n)를 포함하는 다중 프로세서들을 포함할 수 있다.
장치(400)는 또한 데이터(예를 들어, 명령어들의 세트, 컴퓨터 코드들, 중간 데이터 등)를 저장하도록 구성된 메모리(404)를 포함할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 저장된 데이터는 프로그램 명령어들(예를 들어, 프로세스(200A, 200B, 300A 또는 300B)의 단계들을 구현하기 위한 프로그램 명령어들) 및 처리용 데이터(예를 들어, 비디오 시퀀스(202), 비디오 비트스트림(228) 또는 비디오 스트림(304))를 포함할 수 있다. 프로세서(402)는 (예를 들어, 버스(410)를 통해) 프로그램 명령어들 및 처리용 데이터에 접근할 수 있고, 프로그램 명령어들을 실행하여 처리용 데이터에 대한 동작 또는 조작을 수행할 수 있다. 메모리(404)는 고속 임의-접근 저장 디바이스 또는 비-휘발성 저장 디바이스를 포함할 수 있다. 일부 실시예들에서, 메모리(404)는 임의-접근 메모리(RAM), 읽기-전용 메모리(ROM), 광 디스크, 자기 디스크, 하드 드라이브, 솔리드-스테이트 드라이브, 플래시 드라이브, 보안 디지털(SD) 카드, 메모리 스틱, 컴팩트 플래시(CF) 카드 등의 임의의 수의 임의의 조합을 포함할 수 있다. 메모리(404)는 또한 단일의 논리적 성분으로서 그룹화된 메모리 그룹(도 4에 미도시)일 수 있다.
버스(410)는 내부 버스(예를 들어, CPU-메모리 버스), 외부 버스(예를 들어, 범용 직렬 버스 포트, 주변 성분 인터커넥트 익스프레스 포트) 등과 같은, 장치(400) 내부의 성분들 사이의 데이터를 전달하는 통신 디바이스일 수 있다.
모호함을 유발하지 않고 설명을 용이하게 하기 위해, 프로세서(402) 및 다른 데이터 처리 회로들은 본 개시에서 "데이터 처리 회로"로 집합적으로 지칭된다. 데이터 처리 회로는 전체적으로 하드웨어로 구현되거나 소프트웨어, 하드웨어 또는 펌웨어의 조합으로 구현될 수 있다. 또한, 데이터 처리 회로는 단일 독립 모듈일 수 있거나 장치(400)의 임의의 다른 성분에 전체적으로 또는 부분적으로 조합될 수 있다.
장치(400)는 네트워크(예를 들어, 인터넷, 인트라넷, 근거리 통신망, 이동 통신 네트워크 등)와의 유선 또는 무선 통신을 제공하기 위한 네트워크 인터페이스(406)를 더 포함할 수 있다. 일부 실시예들에서, 네트워크 인터페이스(406)는 네트워크 인터페이스 컨트롤러(NIC), 무선 주파수(RF) 모듈, 응답기, 송수신기, 모뎀, 라우터, 게이트웨이, 유선 네트워크 어댑터, 무선 네트워크 어댑터, 블루투스 어댑터, 적외선 어댑터, 근거리 통신("NFC") 어댑터, 셀룰러 네트워크 칩 등의 임의의 수의 임의의 조합을 포함할 수 있다.
일부 실시예들에서, 선택적으로, 장치(400)는 하나 이상의 주변 디바이스들에 대한 연결을 제공하기 위해 주변 인터페이스(408)를 더 포함할 수 있다. 도 4에 도시된 바와 같이, 주변 디바이스는 커서 제어 디바이스(예를 들어, 마우스, 터치패드 또는 터치스크린), 키보드, 디스플레이(예를 들어 음극선관 디스플레이, 액정 디스플레이, 또는 발광 다이오드 디스플레이), 비디오 입력 디바이스(예를 들어, 카메라 또는 비디오 아카이브에 통신 가능하게 결합된 입력 인터페이스) 등을 포함할 수 있지만, 이에 제한되지 않는다.
비디오 코덱들(예를 들어, 코덱 수행 프로세스(200A, 200B, 300A 또는 300B))은 장치(400)의 임의의 소프트웨어 또는 하드웨어 모듈의 임의의 조합으로서 구현될 수 있다는 점에 유의해야 한다. 예를 들어, 프로세스(200A, 200B, 300A 또는 300B)의 일부 또는 모든 단계들은, 메모리(404)에 로딩될 수 있는 프로그램 명령어들과 같은, 장치(400)의 하나 이상의 소프트웨어 모듈들로서 구현될 수 있다. 다른 예시로서, 프로세스(200A, 200B, 300A 또는 300B)의 일부 또는 모든 단계들은, 특수 데이터 처리 회로(예를 들어, FPGA, ASIC, NPU 등)와 같은 장치(400)의 하나 이상의 하드웨어 모듈들로서 구현될 수 있다.
양자화 및 역양자화 기능 블록들(예를 들어, 도 2a 또는 도 2b의 양자화(214) 및 역양자화(218), 도 3a 또는 도 3b의 역양자화(218))에서, 예측 잔차들에 적용되는 양자화(및 역양자화)의 양을 결정하기 위하여 양자화 매개변수(QP)가 사용된다. 영상 또는 슬라이스의 부호화에 사용되는 초기 QP 값들은, 예를 들어, 영상 매개변수 세트(Picture Parameter Set; PPS)의 init_qp_minus26 신택스 요소를 사용하고 슬라이스 헤더의 slice_qp_delta 신택스 요소를 사용하여 고수준에서 시그널링될 수 있다. 또한, QP 값들은 양자화 그룹들의 입도(granulity)에서 보내진 델타 QP 값을 사용하는 각 CU에 대한 로컬 수준에서 적응될 수 있다.
병합 모드의 움직임 벡터들(MVs)의 정확도를 증가시키기 위해, 다용도 비디오 부호화(VVC) 드래프트 6에서 쌍방-일치(bilateral-matching; BM) 기반 디코더 측 움직임 벡터 개선(DMVR)이 채택된다. 양-방향 예측 동작에서, 참조 영상 목록(L0) 및 참조 영상 목록(L1)에서 초기 MV들을 중심으로 개선된 MV가 검색된다. BM 기반 DMVR은 참조 영상 목록(L0) 및 목록(L1)내의 두 후보 블록들 사이의 왜곡을 계산한다. 도 5는 본 개시의 일부 실시예들에 따른, 디코더 측 움직임 벡터 개선(DMVR)의 예시적인 프로세스(500)를 도시한다. 도 5는 현재 영상(502), 제 1 참조 영상 목록(L0)의 제 1 참조 영상(504), 제 2 참조 영상 목록(L1)의 제 2 참조 영상(506)을 나타낸다. 제 1 초기 MV(508)는 현재 영상(502)의 현재 블록(510)으로부터 제 1 참조 영상(504)의 제 1 초기 참조 블록(512)을 가리킨다. 제 2 초기 MV(514)는 현재 블록(510)으로부터 제 2 참조 영상(506)의 제 2 초기 참조 블록(516)을 가리킨다. 프로세스(500)는 제 1 참조 영상(504)의 제 1 후보 참조 블록(518), 제 2 참조 영상(506)의 제 2 후보 참조 블록(520), 현재 블록(510)과 제 1 후보 참조 블록(518)을 연결하는 제 1 후보 MV(522) 및 현재 블록(510)과 제 2 후보 참조 블록(516)을 연결하는 제 2 후보 MV(524)를 결정하도록 BM 기반 DMVR을 수행할 수 있다. 도 5에 예시된 바와 같이, 제 1 후보 MV(522) 및 제 2 후보 MV(524)는 각각 제 1 초기 MV(508) 및 제 2 초기 MV(514)에 가깝다. 일부 실시예들에서, 프로세스(500)는 초기 MV(예를 들어, 제 1 초기 MV(508) 또는 제 2 초기 MV(514)) 주변의 각 MV 후보(예를 들어, 제 1 후보 MV(522) 또는 제 2 후보 MV(524))에 기초하여 제 1 초기 참조 블록(518)과 제 2 초기 참조 블록(520) 사이의 절대 차이 합계(sum of absolute difference; SAD)를 계산할 수 있다. 제 1 후보 MV(522) 및 제 2 후보 MV(524) 중 가장 낮은 SAD를 갖는 것이 양-방향 예측 신호를 생성하는 데 사용되는 개선된 MV가 될 수 있다.
일부 실시예들에서, VVC 드래프트 6에 설명된 바와 같이, DMVR은 다음 조건들 모두를 만족하는 CU들에 적용된다: (1) 병합 모드는 양-방향 예측 MV를 갖는 CU 수준에 있고; (2) 동일한 가중치를 갖는 양-방향 예측 MV를 사용하여 블록이 예측되고(예를 들어, 블록에 가중 평균화를 사용한 양-방향 예측(BWA)을 적용하지 않음); (3) 현재 영상(예를 들어 현재 영상(502))에 대하여 하나의 참조 영상이 과거에 있고(예를 들어, 제 1 참조 영상(504)) 다른 참조 영상이 미래에 있고(예를 들어, 제 2 참조 영상(506)); (4) 두 참조 영상들로부터 현재 영상까지의 거리(예를 들어, 영상 순서 카운트(POC) 차이들)가 동일하며; (5) 블록이 적어도 128개의 루마 샘플들을 가지며, 블록 폭과 높이가 모두 적어도 8루마 샘플이다.
DMVR 프로세스(예를 들어, 프로세스(500))에 의해 유도된 개선된 MV는 인터 예측 샘플들을 생성하고 미래 영상들 부호화을 위한 시간적 움직임 벡터를 예측하기 위해 사용될 수 있다. 원본 MV(예를 들어, 제 1 초기 MV(508) 또는 제 2 초기 MV(514))는 디블로킹 프로세스 및 현재 영상(예를 들어, 현재 영상(502)) 내의 미래 CU 부호화을 위한 공간적 MV 예측에서 사용될 수 있다.
도 5에 도시된 바와 같이, 제 1 MV 오프셋(526)은 제 1 초기 MV(508)와 제 1 후보 MV(522) 사이의 개선 오프셋을 나타내고, 제 2 MV 오프셋(528)은 제 2 초기 MV(514)와 제 2 후보 MV(524) 사이의 개선 오프셋을 나타낸다. 제 1 MV 오프셋(526) 및 제 2 MV 오프셋(528)은 동일한 크기 및 반대 방향들을 가질 수 있다. 일부 실시예들에서, 검색 지점들이 초기 MV들(예를 들어, 제 1 초기 MV(508) 및 제 2 초기 MV(514))을 둘러쌀 수 있고, MV 오프셋들(예를 들어, 제 1 MV 오프셋(526) 및 제 2 MV 오프셋(528))은 MV 차이 미러링 규칙을 따를 수 있다. 예를 들어, 한 쌍의 후보 MV들 인 MV0(예를 들어, 제 1 후보 MV(522)) 및 MV1(예를 들어, 제 2 후보 MV(524))로 드러나는 DMVR에 의해 확인되는 지점들은, 식 (1) 및 (2)에 기초할 수 있다.
Figure pct00001
식 (1)
Figure pct00002
식 (2)
식 (1) 및 (2)에서, MV0'(예를 들어, 제 1 초기 MV(508)) 및 MV1'(예를 들어, 제 2 후보 MV(514))은 초기 MV 쌍들을 나타내고, MV_offset은 초기 MV(예를 들어, MV0' 또는 MV1')와 개선된 MV들(예를 들어, MV0 또는 MV1) 사이의 개선 오프셋(예를 들어, 제 1 MV 오프셋(526) 또는 제 2 MV 오프셋(528))을 나타낸다. MV_offset은 움직임 변위들(예를 들어, X 및 Y 차원들)을 갖는 벡터임을 유의한다. 일부 실시예들에서, VVC 드래프트 5에 설명된 바와 같이, 개선 검색 범위(예를 들어, DMVR의 검색 범위)는 수평 및 수직 차원들 모두에서 초기 MV(예를 들어, 제 1 초기 MV(508) 및 제 2 초기 MV(514))로부터 2개의 정수 루마 샘플들일 수 있다.
도 6은 본 개시의 일부 실시예들에 따른, 예시적인 DMVR 검색 프로세스(600)를 예시한다. 일부 실시예들에서, 프로세스(600)는 코덱(예를 들어, 도 2a 내지 도 2b의 인코더 또는 도 3a 내지 도 3b의 디코더)에 의해 수행될 수 있다. 예를 들어, 코덱은 비디오 시퀀스를 인코딩 또는 트랜스코딩하기 위한 장치(예를 들어, 도 4의 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 성분들로서 구현될 수 있다. 일부 실시예들에서, 프로세스(600)는 VVC 드래프트 4에 설명된 바와 같이 DMVR의 검색 프로세스의 예시로서 기능할 수 있다. 도 6에 도시된 바와 같이, 프로세스(600)는 정수 샘플 오프셋 검색을 위한 단계(602) 및 분수 샘플 개선을 위한 단계(604)를 포함한다. 검색 복잡성을 줄이기 위해, 일부 실시예들에서, 조기 종료 메커니즘을 갖는 고속 검색 방법이 단계(602)에서 적용될 수 있다. 예를 들어, 25-포인트 전체 검색을 사용하는 대신, SAD 확인 지점들을 줄이기 위해 2-반복 검색 방식이 단계(602)에서 적용될 수 있다.
도 6에 도시된 바와 같이, 단계(604)가 단계(602)에 뒤따를 수 있다. 연산 복잡성을 줄이기 위해, 일부 실시예들에서, 단계(604)에서의 분수 샘플 개선은 SAD 비교를 수반하는 추가 검색들을 수행하는 대신 파라메트릭(parametric) 오차 표면 방정식을 사용하여 유도될 수 있다. 단계(604)는 단계(602)의 출력에 기초하여 조건부로 호출될 수 있다.
도 7은 본 개시의 일부 실시예들에 따른, DMVR 정수 루마 샘플 검색을 위한 예시적인 패턴(700)을 예시한다. DMVR 정수 루마 샘플 검색은 검색된 샘플에서 SAD가 가장 작은 지점을 결정할 수 있다. 예를 들어, DMVR 정수 루마 샘플 검색은 정수 샘플 오프셋 검색을 위한 단계(예를 들어, 단계(602)) 및 분수 샘플 개선 검색을 위한 단계(예를 들어, 단계(604))를 포함하는, 도 6의 프로세스(600)로서 구현될 수 있고, 여기에서 각 단계는 적어도 하나의 반복으로 수행될 수 있다. 일부 실시예들에서, DMVR 정수 루마 샘플 검색의 제 1 반복에서 최대 6개의 SAD들이 확인될 수 있다, 도 7을 예시로서 사용하여, 제 1 반복에서, 5개의 지점들(702-710)(검은색 블록들로 표시됨)의 SAD들이 비교될 수 있으며, 여기에서 지점(702)은 검색을 위한 중심 지점으로 사용될 수 있다. 중심 지점(즉, 지점 (702))의 SAD가 가장 작으면, DMVR의 정수 샘플 단계가 종료될 수 있다. 그렇지 않으면, 지점들(704-710)의 SAD 분포에 의해 결정된 다른 지점(712)(음영 처리된 블록으로 표시됨)이 확인될 수 있다. DMVR 정수 루마 샘플 검색의 제 2 반복에서 지점들(704-712) 중 SAD가 가장 작은 지점이 검색을 위한 새로운 중심 지점으로 선택될 수 있다. 일부 실시예들에서, 제 2 반복은 제 1 반복과 동일하게 수행될 수 있다. 일부 실시예들에서, 제 1 반복에서 계산된 SAD들은 제 2 반복에서 재-사용될 수 있으므로, 추가 지점들의 SAD만 추가로 계산될 필요가 있을 수 있다.
일부 실시예들에서, VVC 드래프트 6에 설명된 바와 같이, 도 7에 설명된 바와 같은 2-반복 검색이 없어질 수 있다. 그런 다음, 정수 샘플 오프셋 검색을 위한 단계(예를 들어, 도 6의 단계(602))에서, 25개 지점들의 모든 SAD들이 단일 반복에서 계산될 수 있다. 도 8은 본 개시의 일부 실시예들에 따른, DMVR 정수 루마 샘플 검색에서 정수 샘플 오프셋 검색을 위한 단계에 대한 예시적인 패턴(800)을 예시한다. 예를 들어, 정수 샘플 오프셋 검색을 위한 단계는 도 6의 단계(602)일 수 있다. 도 8은 초기 MV(802) 및 25개의 지점들을 도시하며, 이들의 SAD들은 모두 합쳐 계산될 수 있다. 일부 실시예들에서, 초기 MV(802)의 SAD는 초기 MV(802)를 선호하도록 하기 위해 (예를 들어, 1/4만큼) 감소될 수 있다. 일부 실시예들에서, 가장 작은 SAD를 갖는 위치는 분수 샘플 개선을 위한 단계(예를 들어, 도 6의 단계 (604))에서 추가로 개선될 수 있다. 분수 샘플 개선용 단계는 SAD가 가장 작은 위치에 기초하여 조건부로 호출될 수 있다. 예를 들어, 도 8에 도시된 바와 같이, 가장 작은 SAD를 갖는 위치가 초기 MV(802) 주변의 9개 지점들(상자(804)로 표시됨) 중 하나라면, DMVR 정수 루마 샘플 검색의 출력으로서 개선된 MV를 결정하기 위해 분수 샘플 개선용 단계가 호출될 수 있다. SAD가 가장 작은 위치가 초기 MV(802) 주변의 9개 지점들 중 어느 것도 아니면, SAD가 가장 작은 위치가 DMVR 정수 루마 샘플 검색의 출력으로 직접 사용될 수 있다.
도 9는 본 개시의 일부 실시예들에 따른, DMVR 파라메트릭 오차 표면의 추정을 위한 예시적인 패턴(900)을 도시하는 개략도이다. 도 8은 초기 MV(902) 및 25개의 지점들을 나타낸다. 초기 MV(902)는 가장 작은 SAD를 갖는 중심 지점(904)에 연결된다. 파라메트릭 오차 표면에 기초한 서브-픽셀-오프셋 추정에서, 도 9에 도시된 바와 같이, 중심 지점(904)의 절대 차이 합계(SAD) 비용과 중심 지점(904) 주위의 4개의 이웃한 점들(906-912)에서의 SAD 비용들이 2-D 포물선 오차 표면 방정식을 맞추기 위해 사용될 수 있다. 예를 들어, 2-D 포물선 오차 표면 방정식은 식 (3)에 기초할 수 있다.
Figure pct00003
식 (3)
식 (3)에서, (xmin,ymin)은 SAD 비용이 가장 적은 분수 위치에 대응하고, E(x,y)는 중심 지점(904) 및 4개의 이웃한 지점들(906-912)의 SAD 비용에 대응하고, mvShift는 VVC에서와 같이(VVC에서 MV 정확도는 1/16-pel임) 4로 설정될 수 있으며, A 및 B는 각각 식 (4) 및 (5)에 기초하여 결정될 수 있다.
Figure pct00004
식 (4)
Figure pct00005
식 (5)
5개의 검색 지점들(즉, 지점들(904-912))의 SAD 비용 값들을 사용하여 식 (3) 내지 (5)을 풀면, 식 (6) 및 (7)에 기초하여 (xmin,ymin)이 결정될 수 있다.
Figure pct00006
식 (6)
Figure pct00007
식 (7)
일부 실시예들에서, 모든 SAD 비용 값들이 양수이고 가장 작은 값이 E(0,0)이기 때문에, xmin 및 ymin의 값들은 -8과 8 사이(예를 들어, 1/16 샘플 정밀도)로 자동으로 제약될 수 있으며, 이는 VVC에서 1/16-pel MV 정확도로 절반-화소 오프셋에 해당한다. 연산된 분수 (xmin,ymin)는 정수 거리 개선 MV에 더해져 개선 MV가 서브-화소 정확도를 갖도록 할 수 있다.
양-방향 광학 흐름(BDOF) 도구는 VVC에 포함되어 있다. 이름에서 보이듯이, BDOF 모드는 물체의 움직임이 부드럽다고 가정하는, 광학 흐름 개념에 기초한다. 이전에 BIO로 지칭되던 BDOF는, 또한 공동 비디오 실험 모델(JEM) 소프트웨어에서도 포함되어 있다. JEM의 BIO와 비교할 때, VVC의 BDOF는 특히 곱셈들의 수와 승수의 크기 측면에서 훨씬 적은 연산이 요구되는 더 간단한 버전이다.
BDOF는 4x4 서브-블록 수준에서 CU의 양방향-예측 신호를 개선하기 위해 사용될 수 있다. 일부 실시예들에서, BDOF는 다음 조건들이 충족되는 CU에 적용된다. (1) CU의 높이가 4가 아니고, CU의 크기가 4×8이 아니고; (2) CU는 아핀 모드 또는 고급 시간적 움직임 벡터 예측(ATMVP) 병합 모드를 사용하여 부호화되지 않으며; (3) CU는 2개의 참조 영상들 중 하나(예를 들어, 도 5의 제 1 참조 영상(504))가 디스플레이 순서에서 현재 영상(예를 들어, 도 5의 현재 영상(502))에 앞서고 다른 하나(예를 들어, 도 5의 제 2 참조 영상(506))는 디스플레이 순서에서 현재 영상 이후인, "진정한" 양방향-예측 모드를 사용하여 부호화된다. 일부 실시예들에서, BDOF는 루마 성분에 적용될 수 있다.
일부 실시예들에서, BDOF가 4x4 서브-블록 수준에서 CU의 양방향-예측 신호를 개선하기 위해 사용될 때, 각 4x4 서브-블록에 대해, 움직임 개선 (vx,vy)는 두 참조 영상 목록들 L0 및 L1에서 예측 샘플들 사이의 차이를 최소화함으로써 계산될 수 있다. 그런 다음 (vx,vy)는 4x4 서브-블록에서 양방향-예측된 샘플 값들을 조정하는 데 사용될 수 있다.
일부 실시예들에서, 다음 과정들이 BDOF 프로세스에 적용된다. 먼저, 두 예측 신호들의 수평 및 수직 기울기들,
Figure pct00008
Figure pct00009
(여기에서 k=0, 1)이 식 (8) 및 (9)에 표현된 바와 같이 두 개의 이웃하는 샘플들 사이의 차이를 계산하는 것에 기초하여 결정될 수 있다.
Figure pct00010
식 (8)
Figure pct00011
식 (9)
식 (8) 및 (9)에서, I(k)(i,j)는 k=0,1인 목록 k에서 예측 신호의 좌표 (i,j)에서의 샘플 값이며, shift1은 식 (10)에서와 같이 루마 비트 깊이("bitDepth")에 기초하여 계산된다.
Figure pct00012
식 (10)
그런 다음, 기울기 S1, S2, S3, S5및 S6의 자기 및 교차 상관은 식 (11) 내지 (15)에 기초하여 결정될 수 있다.
Figure pct00013
식 (11)
Figure pct00014
식 (12)
Figure pct00015
식 (13)
Figure pct00016
식 (14)
Figure pct00017
식 (15)
식 (11) 내지 (15)에 대해,
Figure pct00018
의 값들은 식 (16) 내지 (18)에 기초하여 결정될 수 있다.
Figure pct00019
식 (16)
Figure pct00020
식 (17)
Figure pct00021
식 (18)
식 (11) 내지 (18)에서, Ω은 4×4 서브-블록 주위의 6×6 창이고, na와 nb의 값들은 각각 식 (19) 및 (20)로 설정된다.
Figure pct00022
식 (19)
Figure pct00023
식 (20)
그런 다음 움직임 개선(vx,vy)은 식 (21) 및 (22)를 사용하여 교차 및 자기 상관 항에 기초하여 유도된다.
Figure pct00024
식 (21)
Figure pct00025
식 (22)
식 (21) 및 (22)에서,
Figure pct00026
,
Figure pct00027
,
Figure pct00028
,
Figure pct00029
는 바닥 함수를 나타내며,
Figure pct00030
이다.
움직임 개선 및 기울기들에 기초하여, 다음 조정 b(x,y)는 식 (23)을 사용하여 4x4 서브-블록의 각 샘플에 대해 결정될 수 있다.
Figure pct00031
식 (23)
마지막으로, CU의 BDOF 샘플들은 식 (24)에 따른 양방향-예측 샘플들의 조정에 기초하여 결정될 수 있다.
Figure pct00032
식 (24)
일부 실시예들에서, 식 (8) 내지 (23) 내의 값은 BDOF 프로세스에서 승수들이 15-비트를 초과하지 않도록 선택될 수 있고, BDOF 프로세스에서 중간 매개변수들의 최대 비트-폭이 32-비트 이내로 유지될 수 있다.
기울기 값들을 유도하기 위해, 현재 CU 경계들 외부의 목록 k(k=0,1)에서 일부 예측 샘플들
Figure pct00033
가 생성될 수 있다. 도 10은 본 개시의 일부 실시예들에 따른, BDOF에서 사용되는 확장된 부호화-단위(CU) 영역(1000)의 예의 개략도이다. 도 10에 도시된 바와 같이, BDOF에서 사용되는 4×4 블록(1002)(검정색 실선으로 둘러싸여 있음)은 블록(1002)의 경계들 주위에 하나의 확장된 행 또는 열에 의해 둘러싸이고(검정색 파선으로 표시됨), 가장자리 영역(1004)을 형성한다. 경계를 벗어난 예측 샘플들을 생성하는 연산 복잡도를 제어하기 위해, (흰색 상자들로 나타남) 확장 영역(1006)의 예측 샘플들은 (좌표들에 대한 바닥 연산을 사용하여) 가까운 정수 위치들에서 참조 샘플들을 취함으로써 보간법 없이 직접 생성될 수 있으며, 일반 8-탭 움직임 보상 보간법 필터를 사용하여 CU(1008)(회색 상자들로 나타남) 내에서 예측 샘플들을 생성할 수 있다. 이러한 확장된 샘플들 값들은 기울기 계산에만 사용할 수 있다. BDOF 프로세스의 나머지 과정들에서, CU(1008) 경계들 외부의 샘플 및 기울기 값이 필요하면, 가장 가까운 이웃으로부터 패딩(또는 반복)될 수 있다.
JVET 회의들에서는 광학 흐름을 이용한 예측 개선(PROF)이라는 부호화 도구가 채택되었다. PROF는 광학 흐름으로 서브-블록 기반 아핀 움직임 보상 예측을 개선하여 아핀 움직임 보상 예측의 정확도를 향상시킨다. 아핀 움직임 모델 매개변수들은 CU의 각 샘플 위치의 움직임 벡터를 유도하는 데 사용할 수 있다. 그러나, 샘플별 아핀 움직임 보상 예측을 생성하기 위한 높은 복잡성과 메모리 접근 대역폭으로 인해, VVC의 아핀 예측은 서브-블록 기반 아핀 움직임 보상 방법을 사용하며, 여기에서 CU는 4x4 서브-블록들로 분할되고, 그 각각에는 아핀 CU의 제어점 MV들에서 유도된 MV가 할당된다. 서브-블록 기반 아핀 움직임 보상은 부호화 효율성, 복잡성 및 메모리 접근 대역폭 간의 절충안이다. 이론적인 샘플-기반 움직임 보상 예측 대신 서브-블록 기반 예측을 사용함으로 인해 예측 정확도가 일부 떨어진다.
아핀 움직임 보상의 더 미세한 입도를 달성하기 위해, 일부 실시예들에서, PROF는 정규 서브 블록 기반 아핀 움직임 보상 후에 적용될 수 있다. 샘플-기반 개선은 식 (25)에서와 같은 광학 흐름 방정식에 기초하여 유도될 수 있다.
Figure pct00034
식 (25)
식 (25)에서, gx(i,j) 및 gy(i,j)는 샘플 위치 (i,j)에서의 공간적 기울기들이다. Δv는 서브-블록 기반 움직임 벡터로부터 아핀 모델 매개변수들에서 유도된 샘플-기반 움직임 벡터까지의 움직임 오프셋이다.
도 11은 본 개시의 일부 실시예들에 따른, 서브-블록 기반 병진 움직임 및 샘플-기반 아핀 움직임의 예시의 개략도이다. 도 11에 도시된 바와 같이, V(i,j)는 아핀 모델을 사용하여 유도된 샘플 위치(i,j)에 대한 이론적인 움직임 벡터이고, VSB는 서브 블록 기반 움직임 벡터이고, ΔV(i,j)(점선 화살표로 나타남)는 V(i,j)와 VSB의 차이이다.
그런 다음, 예측 개선 ΔI(i,j)가 서브-블록 예측 I(i,j)에 추가될 수 있다. 최종 예측 I'는 식 (26)에 기초하여 생성될 수 있다.
Figure pct00035
식 (26)
개시된 실시예들에 부합하게, DMVR 및 BDOF 모두는 신택스 구조에서 2개의 수준들에서 제어 플래그들을 가질 수 있다. 제 1 제어 플래그는 시퀀스 수준의 시퀀스 매개변수 세트(SPS)에서 보낼 수 있고 제 2 제어 플래그는 슬라이스 수준의 슬라이스 헤더에서 보낼 수 있다. 도 12는 본 개시의 일부 실시예들에 따른, DMVR 및 BDOF용 제어 플래그들을 구현하는 시퀀스 매개변수 세트(SPS)의 예시적인 신택스 구조를 도시하는 표 1을 예시한다. 도 12의 표 1에 도시된 바와 같이, sps_bdof_enabled_flag 및 sps_dmvr_enabled_flag는, SPS에서 보내지는 시퀀스 수준에서, 각각 BDOF 및 DMVR에 대한 제어 플래그들이다. sps_bdof_enabled_flag 또는 sps_dmvr_enabled_flag가 거짓일 때, 이 SPS를 참조하는 전체 비디오 시퀀스에서 BDOF 또는 DMVR을 비활성화할 수 있다. sps_bdof_enabled_flag 및 sps_dmvr_enabled_flag가 참일 때, 현재 비디오 시퀀스에 대해 BDOF 또는 DMVR을 활성화할 수 있다. 이 경우, BDOF 및 DMVR의 슬라이스-수준 제어의 활성화 여부를 보여주기 위해 다른 플래그 sps_bdof_dmvr_slice_present_flag를 더 시그널링할 수 있다.
도 13은 본 개시의 일부 실시예들에 따른, DMVR 및 BDOF용 제어 플래그들을 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 도시하는 표 2를 예시한다. 표 2에 도시된 바와 같이, 표 1에 설정된 sps_bdof_dmvr_slice_present_flag가 참일 때, 현재 슬라이스에 대해 BDOF 및 DMVR의 비활성화 여부를 보여주기 위해 slice_disable_bdof_dmvr_flag를 슬라이스 헤더에 시그널링할 수 있다.
도 12 내지 도 13은 DMVR 및 BDOF에 대한 2-수준 제어 메커니즘을 도시한다. 이러한 메커니즘을 사용함으로써, 인코더(예를 들어, 도 2a 내지 도2b의 프로세스들 (200A 또는 200B)을 구현하는 인코더)는 개별 슬라이스들에 대해 DMVR 및 BDOF를 켜거나 끄기 위해 슬라이스-수준 플래그인 slice_disable_bdof_dmvr_flag를 사용할 수 있다. 이러한 슬라이스 수준 적응은 다음과 같은 두 가지 이점들을 가질 수 있다. (1) DMVR 또는 BDOF 중 적어도 하나가 현재 슬라이스에 유용하지 않을 때, 이를 (또는 이들을) 끄면 부호화 성능이 향상될 수 있다. (2) DMVR 및 BDOF는 상대적으로 높은 연산 복잡도를 가지므로, 이를 끄면 현재 슬라이스의 인코딩 및 디코딩 복잡도를 줄일 수 있다.
개시된 실시예들에서, PROF에 대한 제어 플래그들은 또한 시퀀스 수준 및 슬라이스 수준 모두에서 사용될 수 있다. 일부 실시예들에서, 3개의 개별 플래그들은 각각 DMVR, BDOF 및 PROF의 활성화 되는지를 보여주기 위해 SPS에서 시그널링 될 수 있다. 이들 중 임의의 것이 활성화되면, 대응하는 하위 수준 제어 활성화 플래그를 시그널링하여 활성화된 도구가 하위 수준에서 제어되는지를 보여줄 수 있다. 하위 수준은 슬라이스 수준 또는 영상 수준일 수 있다. 슬라이스-수준 또는 영상-수준 제어가 활성화되면, 각 슬라이스 헤더 또는 영상 헤더에서, 슬라이스-수준 또는 영상-수준 비활성화 플래그가 시그널링하여 현재 슬라이스 또는 영상에 대해 활성화된 도구가 비활성화 되는지를 보여줄 수 있다.
개시된 실시예들에 부합하게, 도 14a는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 슬라이스-수준 제어 플래그들을 구현하는 시퀀스 매개변수 세트(SPS)의 예시적인 신택스 구조를 도시하는 표 3A를 예시한다. 도 14b는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 영상-수준 제어 플래그들을 구현하는 SPS의 예시적인 신택스 구조를 도시하는 표 3B를 예시한다. 이탤릭체로 강조 표시되어 표 3A 내지 표 3B에 도시된 바와 같이, sps_bdof_enabled_flag, sps_dmvr_enabled_flag 및 sps_affine_prof_enabled_flag는 비디오 시퀀스에 대해 각각 BDOF, DMVR 및 PROF가 활성화 되는지를 보여주기 위해 SPS에서 시그널링하는 플래그들이다. BDOF, DMVR 또는 PROF가 활성화되면, 표 3A에 도시된 바와 같이, sps_bdof_slice_present_flag, sps_dmvr_slice_present_flag 또는 sps_affine_prof _slice_present_flag가 각각 추가로 시그널링되어, BDOF, DMVR 및 PROF의 슬라이스-수준 제어가 활성화 되는지를 보여줄 수 있다. BDOF, DMVR 또는 PROF가 활성화되면, 표 3B에 도시된 바와 같이, sps_bdof_picture_present_flag, sps_dmvr_picture_present_flag 또는 sps_affine_prof_picture_present_flag가 각각 추가로 시그널링되어, BDOF, DMVR 및 PROF의 영상-수준 제어가 활성화 되는지를 보여줄 수 있다.
도 15a는 본 개시의 일부 실시예들에 따른, DMVR, BDOF, 및 PROF용 제어 플래그들을 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 나타내는 표 4A를 도시한다. 이탤릭체로 강조 표시되어 표 4A에 도시된 바와 같이, 표 3A에 설정된 바와 같은 sps_bdof_slice_present_flag, sps_dmvr_slice_present_flag 또는 sps_affine_prof_slice_present_flag 중 어느 하나가 참이면, slice_disable_bdof_flag, slice_disable_dmvr_flag 또는 slice_disable_affine_prof_flag 가 시그널링되어 현재 슬라이스에 대해 BDOF, DMVR 또는 PROF가 비활성화 되는지를 각각 보여줄 수 있다. 도 15b는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 제어 플래그들을 구현하는 영상 헤더의 예시적인 신택스 구조를 도시하는 표 4B를 예시한다. 이탤릭체로 강조 표시되어 표 4B에 도시된 바와 같이, 표 3B에 설정된 바와 같은 sps_bdof_picture_present_flag, sps_dmvr_picture_present_flag 또는 sps_affine_prof_picture_present_flag 중 어느 하나가 참이면, ph_disable_bdof_flag, ph_disable_dmvr_flag 또는 ph_disable_affine_prof_flag가 시그널링되어 현재 영상에 대해 BDOF, DMVR 또는 PROF가 비활성화 되는지를 각각 보여줄 수 있다.
일부 실시예들에서, DMVR, BDOF, PROF는 3개의 개별 시퀀스-수준 활성화 플래그들을 가질 수 있지만 동일한 슬라이스-수준 제어 활성화 플래그들을 공유할 수 있다. 예를 들어, DMVR, BDOF, PROF에 대해 하나의 슬라이스-수준 비활성화 플래그가 시그널링될 수 있다. 다른 예시에서, 3개의 슬라이스-수준 비활성화 플래그가 DMVR, BDOF, PROF에 대해 개별적으로 시그널링될 수 있다. 다른 예시로서, DMVR, BDOF, PROF에 대해 두 개의 슬라이스-수준 비활성화 플래그들이 시그널링될 수 있다. 시퀀스 수준 및 시퀀스 수준보다 낮은 수준(본원에서 "하위 수준"으로 지칭되며, 예컨대 슬라이스 수준 또는 영상 수준)에서 DMVR, BDOF, PROF의 제어를 위해 다양한 신택스 구조들이 구현될 수 있으며, 본원에 설명된 예시들에 제한되지 않는다는 점에 유의해야 한다.
도 16은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 개별 시퀀스-수준 제어 플래그들을 구현하는 시퀀스 매개변수 세트(SPS)의 예시적인 신택스 구조를 도시하는 표 5를 예시한다. 이탤릭체로 강조 표시되어 표 5에 도시된 바와 같이, 3개의 개별 플래그들 sps_bdof_enabled_flag, sps_dmvr_enabled_flag 및 sps_affine_prof_enabled_flag이 SPS에서 시그널링되어 각각 DMVR, BDOF 및 PROF가 활성화 되는지를 보여준다. DMVR, BDOF 또는 PROF 중 적어도 하나가 활성화되면, 슬라이스 제어 활성화 플래그 sps_bdof_dmvr_affine_prof_slice_present_flag가 시그널링되어 시퀀스 수준에서 활성화된 DMVR, BDOF 또는 PROF 중 적어도 하나가 하위 수준에서 제어되는지를 보여줄 수 있다.
도 17은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 공동 제어 플래그를 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 도시하는 표 6을 예시한다. 이탤릭체로 강조 표시되어 표 6에 도시된 것과 같이, 표 5에 설명된 슬라이스-수준 제어가 활성화되면(예를 들어, sps_bdof_dmvr_affine_prof_slice_present_flag가 참이면), 각 슬라이스 헤더에서, 슬라이스-수준 비활성화 플래그인 slice_disable_bdof_dmvr_affine_prof_flag가 시그널링되어 시퀀스 수준에서 활성화된 DMVR, BDOF 또는 PROF 중 적어도 하나가 현재 슬라이스에 대해 비활성화 되는지를 보여줄 수 있다. 표 6에 도시된 신택스 구조에서, DMVR, BDOF, PROF 중 복수가 시퀀스 수준에서 활성화되면, 활성화된 복수의 것들이 슬라이스-수준 제어가 활성화되는 경우 슬라이스 수준에서 공동으로 제어될 수 있다.
도 18은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 개별 제어 플래그들을 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 도시하는 표 7을 예시한다. 이탤릭체로 강조 표시되어 표 7에 도시된 바와 같이, 표 5에 설명된 바와 같은 슬라이스-수준 제어가 활성화되면(예를 들어, sps_bdof_dmvr_affine_prof_slice_present_flag가 참이면), 시퀀스 수준에서 활성화된 DMVR, BDOF 및 PROF 중 하나에 대해, 슬라이스-수준 비활성화 플래그가 시그널링되어 활성화된 것이 현재 슬라이스에 대해 비활성화되어 있는지를 보여줄 수 있다. 예를 들어, 표 5의 sps_bdof_enabled_flag 및 sps_bdof_dmvr_affine_prof_slice_present_flag가 참으로 설정되면, 표 7의 slice_disable_bdof_flag가 시그널링되어 현재 슬라이스에 대해 BDOF가 비활성화되는지를 보여줄 수 있다. 다른 예시로, 표 5의 sps_dmvr_enabled_flag 및 sps_bdof_dmvr_affine_prof_slice_present_flag가 참으로 설정되면, 표 7의 slice_disable_dmvr_flag가 시그널링되어 현재 슬라이스에 대해 DMVR이 비활성화되는지를 보여줄 수 있다. 또 다른 예시에서, 표 5의 sps_affine_prof_enabled_flag 및 sps_bdof_dmvr_affine_prof _slice_present_flag가 참으로 설정되면, 표 7의 slice_disable_affine_prof_flag가 시그널링되어 현재 슬라이스에 대해 PROF가 비활성화되는지를 보여줄 수 있다. 표 7에서, DMVR, BDOF, PROF 각각은 슬라이스-수준 제어가 활성화된 경우 슬라이스 수준에서 개별적으로 제어될 수 있다.
BDOF 및 PROF 모두가 인터 예측자를 개선하기 위해 광학 흐름을 사용한다는 사실을 고려하면, 일부 실시예들에서, BDOF 및 PROF는 동일한 슬라이스-수준 제어 플래그를 공유할 수 있고, DMVR은 개별 슬라이스-수준 제어 플래그를 사용할 수 있다. 도 19는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 하이브리드 제어 플래그들을 구현하는 슬라이스 헤더의 예시적인 신택스 구조를 도시하는 표 8을 예시한다. 표 8의 신택스 구조에서, BDOF와 PROF는 동일한 슬라이스-수준 비활성화 플래그를 공유할 수 있고, DMVR은 다른 슬라이스-수준 비활성화 플래그를 사용할 수 있다. 이탤릭체로 강조 표시되어 표 8에 도시된 바와 같이, 표 5에서 슬라이스-수준 제어가 활성화되면(예를 들어, sps_bdof_dmvr_affine_prof_slice_present_flag가 참이면), 두 개의 슬라이스-수준 비활성화 플래그들이 시그널링되어 DMVR, BDOF 및 PROF가 현재 슬라이스에 대해 비활성화 되는지를 보여줄 수 있다. 예를 들어, 표 5의 sps_bdof_enabled_flag 및 sps_affine_prof_enabled_flag 중 적어도 하나가 참으로 설정되고, 표 5의 sps_bdof_dmvr_affine_prof_slice_present_flag가 참으로 설정되면, 표 8의 slice_disable_bdof_affine_prof_flag 가 시그널링되어 시퀀스 수준에서 활성화된 BDOF 또는 PROF중 적어도 하나가 현재 슬라이스에 대해 비활성화 되는지를 보여줄 수 있다. 다른 예시에서, 표 5의 sps_dmvr_enabled_flag 및 sps_bdof_dmvr_affine_prof_slice_present_flag가 참으로 설정되면, 표 8의 slice_disable_dmvr_flag가 시그널링되어 현재 슬라이스에 대해 DMVR이 비활성화 되는지를 보여줄 수 있다. 표 8에서, 슬라이스 수준 제어가 활성화되면, BDOF와 PROF는 슬라이스 수준에서 공동으로 제어되고, DMVR은 BDOF 및 PROF와 개별적으로 제어된다. 도 20은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 하이브리드 시퀀스-수준 제어 플래그들을 구현하는 시퀀스 매개변수 세트(SPS)의 예시적인 신택스 구조를 도시하는 표 9를 예시한다. 표 9의 신택스 구조에서, 3개의 슬라이스-수준 비활성화 플래그들은 DMVR, BDOF 및 PROF에 대해 개별적으로 시그널링될 수 있다. 이탤릭체로 강조 표시되어 표 9에서 도시된 바와 같이, 3개의 개별 플래그들 sps_bdof_enabled_flag, sps_dmvr_enabled_flag 및 sps_affine_prof_enabled_flag는 각각 DMVR, BDOF 또는 PROF가 활성화되는지를 보여주기 위해 SPS에서 시그널링될 수 있다. sps_dmvr_enabled_flag가 참이면, 슬라이스-수준 제어 활성화 플래그 sps_dmvr_slice_present_flag가 시그널링되어 DMVR이 슬라이스 수준에서 제어되는지를 보여줄 수 있다. sps_bdof_enabled_flag 또는 sps_affine_prof_enabled_flag 중 적어도 하나가 참이면, 슬라이스-수준 제어 활성화 플래그 sps_bdof_affine_prof_slice_present_flag가 시그널링되어 BDOF 또는 PROF 중 적어도 하나가 슬라이스-수준에서 제어되는지를 보여줄 수 있다.
도 21은 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 하이브리드 제어 플래그들을 구현하는 슬라이스 헤더의 다른 예시적인 신택스 구조를 도시하는 표 10을 예시한다. 이탤릭체로 강조 표시되어 표 10에 도시된 바와 같이, 표 9의 sps_dmvr_slice_present_flag가 참으로 설정되면, 슬라이스-수준 비활성화 플래그인 slice_disable_dmvr_flag가 시그널링되어 현재 슬라이스에 대해 DMVR이 비활성화 되는지를 보여줄 수 있다. 표 9의 sps_bdof_affine_prof_slice_present_flag가 참으로 설정되면, 슬라이스-수준 비활성화 플래그인 slice_disable_bdof_affine_prof_flag는 시퀀스 수준에서 활성화된 BDOF 또는 PROF(표 8에 설명됨) 중 적어도 하나가 현재 슬라이스에 대해 비활성화될 수 있는지를 보여주기 위해 시그널링될 수 있다. 표 9의 신택스 구조에서, 슬라이스-수준 제어가 활성화되면, BDOF와 PROF는 슬라이스 수준에서 공동으로 제어될 수 있고, DMVR을 슬라이스 수준에서 개별적으로 제어될 수 있다.
도 22는 본 개시의 일부 실시예들에 따른, DMVR, BDOF 및 PROF용 개별 제어 플래그들을 구현하는 슬라이스 헤더의 다른 예시적인 신택스 구조를 도시하는 표 11을 예시한다. 이탤릭체로 강조 표시되어 표 11에 도시된 바와 같이, 표 9의 sps_dmvr_enabled_flag가 참으로 설정되면, 슬라이스-수준 비활성화 플래그인 slice_disable_dmvr_flag가 현재 슬라이스에 대해 DMVR이 비활성화 되는지를 보여주기 위해 시그널링 될 수 있다. 표 9의 sps_bdof_enabled_flag 및 sps_bdof_affine_prof_slice_present_flag가 참으로 설정되면, 슬라이스-수준 비활성화 플래그인 slice_disable_bdof_flag가 현재 슬라이스에 대해 BDOF가 비활성화 되는지를 보여주기 위해 시그널링 될 수 있다. 표 9의 sps_affine_prof_enabled_flag 및 sps_bdof_affine_prof_slice_present_flag가 참으로 설정되면, 슬라이스-수준 비활성화 플래그인 slice_disable_affine_prof_flag가 현재 슬라이스에 대해 PROF가 비활성화 되는지를 보여주기 위해 시그널링 될 수 있다. 표 11의 신택스 구조에서, DMVR, BDOF, PROF 각각은 슬라이스 수준 제어가 활성화된 경우 슬라이스 수준에서 개별적으로 제어된다.
도 23 내지 도 26은 본 개시의 일부 실시예들에 따른, 비디오 부호화 모드를 제어하는 예시적인 프로세스들(2300-2600)의 흐름도를 예시한다. 일부 실시예들에서, 프로세스들(2300-2600)은 코덱(예를 들어, 도 2a 내지 도 2b의 인코더 또는 도 3a 내지 도 3b의 디코더)에 의해 수행될 수 있다. 예를 들어, 코덱은 비디오 시퀀스를 인코딩 또는 디코딩하는 부호화 모드를 제어하기 위한 장치(예를 들어, 장치(400))의 하나 이상의 소프트웨어 또는 하드웨어 성분들로서 구현될 수 있다.
도 23은 본 개시의 일부 실시예들에 따른, 비디오 디코딩 모드를 제어하는 예시적인 프로세스(2300)의 흐름도를 예시한다. 과정(2302)에서, 코덱(예를 들어, 도 3a 내지 도 3b의 디코더)은 비디오 데이터의 비트스트림(예를 들어, 도 3a 내지 도 3b의 프로세스(300A 또는 300B)의 비디오 비트스트림(228))을 수신할 수 있다.
과정(2304)에서, 코덱은 비트스트림의 제 1 플래그에 기초하여, 비디오 시퀀스(예를 들어, 도 3a 내지 도 3b의 프로세스(300A 또는 300B)의 비디오 스트림(304))에 대한 부호화 모드를 활성화 또는 비활성화할 수 있다. 예를 들어, 부호화 모드는 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드, 또는 디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나일 수 있다. 일부 실시예들에서, 코덱은 비디오 시퀀스의 시퀀스 매개변수 세트(SPS)에서 제 1 플래그를 검출할 수 있다. 예를 들어, 제 1 플래그는 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에 설명된 sps_bdof_enabled_flag 플래그, sps_dmvr_enabled_flag 플래그, 또는 sps_affine_prof_enabled_flag 플래그일 수 있다.
과정(2306)에서, 코덱은 비트스트림의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드의 제어가 활성화 또는 비활성화되는지 여부를 결정할 수 있다. 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함할 수 있다. 일부 실시예들에서, 코덱은 비디오 시퀀스에 대해 활성화되는 부호화 모드에 응답하여 비디오 시퀀스의 SPS에서 제 2 플래그를 검출할 수 있다. 예를 들어, 제 2 플래그는 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에 설명된 sps_bdof_dmvr_slice_present_flag 플래그, sps_bdof_slice_present_flag 플래그, sps_dmvr_slice_present_flag 플래그, sps_affine_prof_slice_present_flag 플래그, sps_bdof_picture_present_flag 플래그, sps_dmvr_picture_present_flag 플래그, sps_affine_prof_picture_present_flag 플래그, sps_bdof_affine_prof_slice_present_flag 플래그 또는 sps_bdof_dmvr_affine_prof_slice_present_flag 플래그일 수 있다.
일부 실시예들에서, 과정(2306) 이후에, 부호화 모드의 제어가 시퀀스 수준보다 낮은 수준에서 활성화되는 것에 응답하여, 비트스트림의 제 3 플래그에 기초하여 코덱은 타겟 하위-수준 영역에 대한 부호화 모드를 활성화 또는 비활성화할 수 있다. 타겟 하위-수준 영역은 타겟 슬라이스 또는 타겟 영상일 수 있다. 하위 수준이 슬라이스 수준이면, 일부 실시예들에서, 코덱은 타겟 슬라이스의 슬라이스 헤더에서 제 3 플래그를 검출할 수 있다. 하위 수준이 영상 수준이면, 일부 실시예들에서, 코덱은 타겟 영상의 영상 헤더에서 제 3 플래그를 검출할 수 있다. 예를 들어, 제 3 플래그는 도 13, 도 15a 내지 도 15b, 도 17 내지 도 19 또는 도 21 내지 도 22에서 설명한, slice_disable_bdof_dmvr_flag 플래그, slice_disable_bdof_flag 플래그, slice_disable_dmvr_flag 플래그, slice_disable_affine_prof_flag 플래그, ph_disable_bdof_flag 플래그, ph_disable_dmvr_flag 플래그, ph_disable_affine_prof_flag 플래그, slice_disable_bdof_dmvr_affine_prof_flag 플래그 또는 slice_disable_bdof_affine_prof_flag 플래그일 수있다.
도 24는 본 개시의 일부 실시예들에 따른, 비디오 디코딩 모드를 제어하는 다른 예시적인 프로세스(2400)의 흐름도를 예시한다. 과정(2402)에서, 코덱(예를 들어, 도 3a 내지 도 3b의 디코더)은 비디오 데이터의 비트스트림(예를 들어, 도 3a 내지 도 3b의 프로세스(300A 또는 300B)의 비디오 비트스트림(228))을 수신할 수 있다.
과정(2404)에서, 코덱은 비트스트림의 제 1 플래그에 기초하여, 비디오 시퀀스(예를 들어, 도 3a 내지 도 3b의 프로세스(300A 또는 300B)의 비디오 스트림(304))에 대한 제 1 부호화 모드를 활성화 또는 비활성화할 수 있다. 과정(2406)에서, 코덱은 비트스트림의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 2 부호화 모드를 활성화 또는 비활성화할 수 있다. 제 1 및 제 2 부호화 모드들은 2개의 상이한 부호화 모드들일 수 있으며, 이는 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드에서 선택될 수 있다. 예를 들어, 제 1 부호화 모드 및 제 2 부호화 모드는 각각, 양-방향 광학 흐름(BDOF) 모드 및 광학 흐름을 이용한 예측 개선(PROF) 모드일 수 있다.
일부 실시예들에서, 코덱은 비디오 시퀀스의 시퀀스 매개변수 세트(SPS)에서 제 1 및 제 2 플래그들을 검출할 수 있다. 예를 들어, 제 1 및 제 2 플래그들은 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에서 설명된 sps_bdof_enabled_flag 플래그, sps_dmvr_enabled_flag 플래그 및 sps_affine_prof_enabled_flag 플래그 중에서 선택될 수 있다. 다른 예시로서, 제 1 부호화 모드 및 제 2 부호화 모드가 각각 BDOF 모드 및 PROF 모드인 경우, 제 1 플래그 및 제 2 플래그는 각각 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에서 설명된 sps_bdof_enabled_flag 플래그 및 sps_affine_prof_enabled_flag 플래그일 수 있다.
과정(2408)에서, 코덱은 비트스트림의 제 3 플래그에 기초하여, 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어가 시퀀스 수준보다 낮은 수준에서 활성화 되는지를 결정할 수 있다. 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함할 수 있다. 일부 실시예들에서, 코덱은 비디오 시퀀스에 대해 활성화되는 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나에 응답하여 비디오 시퀀스의 SPS에서 제 3 플래그를 검출할 수 있다. 예를 들어, 제 3 플래그는 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에서 설명된 sps_bdof_dmvr_slice_present_flag 플래그, sps_bdof_slice_present_flag 플래그, sps_dmvr_slice_present_flag 플래그, sps_affine_prof_slice_present_flag 플래그, sps_bdof_picture_present_flag 플래그, sps_dmvr_picture_present_flag 플래그, sps_affine_prof_picture_present_flag 플래그, sps_bdof_affine_prof_slice_present_flag 플래그 또는 sps_bdof_dmvr_affine_prof_slice_present_flag 플래그일 수 있다.
일부 실시예들에서, 과정(2408) 이후에, 비디오 시퀀스에 대해 제 1 부호화 모드가 활성화됨을 보여주는 제 1 플래그(예를 들어, 도 20에 설명된 sps_bdof_enabled_flag) 및 제 1 부호화 모드 또는 제 2 부호화 모드(예를 들어, PROF) 중 적어도 하나의 제어가 시퀀스 수준보다 낮은 수준에서 활성화됨을 나타내는 제 3 플래그(예를 들어, 도 20에 설명된 sps_bdof_affine_prof_slice_present_flag)에 응답하여 코덱은 비트스트림 내의 제 4 플래그(예를 들어, 도 22에 설명된 slice_disable_bdof_flag)에 기초하여 타겟 하위-수준 영역에 대한 제 1 부호화 모드(예를 들어, BDOF)를 활성화 또는 비활성화할 수 있다. 타겟 하위-수준 영역은 타겟 슬라이스 또는 타겟 영상일 수 있다. 타겟 하위 수준이 타겟 슬라이스이면, 일부 실시예들에서, 코덱은 타겟 슬라이스의 슬라이스 헤더에서 제 4 플래그를 검출할 수 있다. 타겟 하위 수준이 타겟 영상이면, 일부 실시예들에서, 코덱은 타겟 영상의 영상 헤더에서 제 4 플래그를 검출할 수 있다. 예를 들어, 제 4 플래그는 도 13, 도 15a 내지 도 15b, 도 17 내지 19 또는 도 21 내지 도 22에서 설명한 slice_disable_bdof_dmvr_flag 플래그, slice_disable_bdof_flag 플래그, slice_disable_dmvr_flag 플래그, slice_disable_affine_prof_flag 플래그, ph_disable_bdof_flag 플래그, ph_disable_dmvr_flag 플래그, ph_disable_affine_prof_flag 플래그, slice_disable_bdof_dmvr_affine_prof_flag 플래그 또는 slice_disable_bdof_affine_prof_flag 플래그일 수 있다.
일부 실시예들에서, 과정(2408) 이후, 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어가 시퀀스 수준보다 낮은 수준에서 활성화되는 것에 응답하여 코덱은 비트스트림 내의 제 4 플래그(예를 들어, 도 21에서 설명된 slice_disable_bdof_affine_prof_flag)에 기초하여 타겟 하위-수준 영역에 대한 제 1 부호화 모드(예를 들어, BDOF)및 제 2 부호화 모드(예를 들어, PROF) 중 모두를 활성화 또는 비활성화할 수 있다. 예를 들어, 제 3 플래그(예를 들어, 도 20에서 설명된 sps_bdof_affine_prof_slice_present_flag)는 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나가 하위 수준(예를 들어, 슬라이스 수준)에서 활성화되는 것을 보여줄 수 있다.
일부 실시예들에서, 비트스트림의 제 4 플래그에 기초하여 타겟 하위-수준 영역(예를 들어, 타겟 슬라이스 또는 타겟 영상)에 대한 제 1 부호화 모드 및 제 2 부호화 모드 모두를 활성화 또는 비활성화한 후, 코덱은 비트스트림의 제 2 플래그에 기초하여 비디오 시퀀스에 대한 제 3 부호화 모드를 추가로 활성화 또는 비활성화하고 비트스트림의 제 5 플래그에 기초하여 시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 제어가 활성화 되는지를 결정할 수 있다. 예를 들어, 제 1, 제 2 및 제 3 부호화 모드들은 각각 BDOF 모드, PROF 모드 및 DMVR 모드일 수 있다. 이 예시에서, 제 4 플래그는 도 21에서 설명한 slice_disable_bdof_affine_prof_flag 플래그일 수 있고, 제 2 플래그는 도 20에서 설명한 sps_dmvr_enabled_flag 플래그일 수 있으며, 제 5 플래그는 도 20에서 설명한 sps_dmvr_slice_present_flag 플래그일 수 있다.
일부 실시예들에서, 제 3 부호화 모드가 하위 수준(예를 들어, 슬라이스 수준 또는 영상 수준)에서 활성화되는 것에 응답하여, 코덱은 비트스트림의 제 6 플래그에 기초하여 타겟 하위-수준 영역(예를 들어, 타겟 슬라이스 또는 타겟 영상)에 대한 제 3 부호화 모드를 추가로 활성화 또는 비활성화할 수 있다. 예를 들어, 제 1, 제 2 및 제 3 부호화 모드들은 각각 BDOF 모드, PROF 모드 및 DMVR 모드일 수 있는 경우, 제 6 플래그는 도 21에서 설명한 slice_disable_dmvr_flag일 수 있다.
도 25는 본 개시의 일부 실시예들에 따른, 비디오 인코딩 모드를 제어하는 예시적인 프로세스(2500)의 흐름도를 도시한다. 과정(2502)에서, 코덱(예를 들어, 도 2a 내지 도 2b의 인코더)은 비디오 시퀀스(예를 들어, 도 2a 내지 도 2b의 프로세스(200A 또는 200B)의 비디오 시퀀스(202)), 제 1 플래그 및 제 2 플래그를 수신할 수 있다. 예를 들어, 제 1 플래그는 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에서 설명된 sps_bdof_enabled_flag 플래그, sps_dmvr_enabled_flag 플래그 또는 sps_affine_prof_enabled_flag 플래그 일 수 있다. 다른 예시로서, 제 2 플래그는 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에서 설명된 sps_bdof_dmvr_slice_present_flag 플래그, sps_bdof_slice_present_flag 플래그, sps_dmvr_slice_present_flag 플래그, sps_affine_prof_slice_present_flag 플래그, sps_bdof_picture_present_flag 플래그, sps_dmvr_picture_present_flag 플래그, sps_affine_prof_picture_present_flag 플래그, sps_bdof_affine_prof_slice_present_flag 플래그 또는 sps_bdof_dmvr_affine_prof_slice_present_flag 플래그일 수 있다.
과정(2504)에서, 코덱은 비트스트림의 제 1 플래그에 기초하여, 비디오 비트스트림(예를 들어, 도 2a 내지 도 2b의 프로세스(200A 또는 200B)의 비디오 비트스트림(228))에 대한 부호화 모드를 활성화 또는 비활성화할 수 있다. 예를 들어, 부호화 모드는 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나일 수 있다.
과정(2506)에서, 코덱은 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드의 제어를 활성화 또는 비활성화할 수 있다. 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함할 수 있다.
도 26은 본 개시의 일부 실시예들에 따른, 비디오 인코딩 모드를 제어하는 다른 예시적인 프로세스(2600)의 흐름도를 예시한다. 과정(2602)에서, 코덱(예를 들어, 도 2a 내지 도 2b의 인코더)은 비디오 시퀀스(예를 들어, 도 2a 내지 도 2b의 프로세스(200A 또는 200B)의 비디오 시퀀스(202)), 제 1 플래그, 제 2 플래그 및 제 3 플래그를 수신할 수 있다. 예를 들어, 제 1 및 제 2 플래그들은 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에서 설명된 sps_bdof_enabled_flag 플래그, sps_dmvr_enabled_flag 플래그 및 sps_affine_prof_enabled_flag 플래그 중에서 선택될 수 있다. 다른 예시로서, 제 3 플래그는 도 12, 도 14a 내지 도 14b, 도 16 또는 도 20에서 설명된 sps_bdof_dmvr_slice_present_flag 플래그, sps_bdof_slice_present_flag 플래그, sps_dmvr_slice_present_flag 플래그, sps_affine_prof_slice_present_flag 플래그, sps_bdof_picture_present_flag 플래그, sps_dmvr_picture_present_flag 플래그, sps_affine_prof_picture_present_flag 플래그, sps_bdof_affine_prof_slice_present_flag 플래그 또는 sps_bdof_dmvr_affine_prof_slice_present_flag 플래그일 수 있다.
과정(2604)에서, 코덱은 제 1 플래그에 기초하여, 비디오 비트스트림(예를 들어, 도 2a 내지 도 2b의 프로세스(200A 또는 200B)의 비디오 비트스트림(228))에 대한 제 1 부호화 모드를 활성화 또는 비활성화할 수 있다. 과정(2606)에서, 코덱은 제 2 플래그에 기초하여, 비디오 비트스트림에 대한 제 2 부호화 모드를 활성화 또는 비활성화할 수 있다. 제 1 및 제 2 부호화 모드들은 2개의 상이한 부호화 모드들일 수 있으며, 이는 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드에서 선택될 수 있다. 예를 들어, 제 1 부호화 모드 및 제 2 부호화 모드는 각각 양-방향 광학 흐름(BDOF) 모드 및 광학 흐름을 이용한 예측 개선(PROF) 모드일 수 있다.
과정(2608)에서, 코덱은 제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어를 활성화 또는 비활성화할 수 있다. 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함할 수 있다.
일부 실시예들에서, 명령어들을 포함하는 비-일시적 컴퓨터-판독가능 저장 매체가 또한 제공되고, 명령어들은 전술한 방법들을 수행하기 위한 디바이스(예컨대 개시된 인코더 및 디코더)에 의해 실행될 수 있다. 비-일시적 매체의 일반적인 형태들은, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 솔리드 스테이트 드라이브, 자기 테이프 또는 기타 자기 데이터 저장 매체, CD-ROM, 기타 광학 데이터 저장 매체, 구멍 패턴들이 있는 임의의 물리적 매체, RAM, PROM 및 EPROM, FLASH-EPROM 또는 임의의 다른 플래시 메모리, NVRAM, 캐시, 레지스터, 임의의 다른 메모리 칩 또는 카트리지 및 이의 네트워크로 연결된 버전들을 포함한다. 디바이스는 하나 이상의 프로세서들(CPUs), 입력/출력 인터페이스, 네트워크 인터페이스 및/또는 메모리를 포함할 수 있다.
실시예는 다음의 조항을 사용하여 추가로 설명될 수 있다.
1. 비디오 데이터의 비트스트림을 수신하는 것;
비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및
비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하는 것을 포함하는, 컴퓨터-구현 방법.
2. 조항 1에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는 컴퓨터-구현 방법.
3. 조항 1-2 중 어느 하나에 있어서:
시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화에 응답하여, 비트스트림 내의 제 3 플래그에 기초하여, 타겟 하위-수준 영역에 대한 부호화 모드를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
4. 조항 3에 있어서:
타겟 슬라이스의 슬라이스 헤더에서 제 3 플래그를 검출하는 것-타겟 슬라이스는 타겟 하위-수준 영역임-; 또는
타겟 영상의 영상 헤더에서 제 3 플래그를 검출하는 것-타겟 영상은 타겟 하위-수준 영역임-을 더 포함하는, 컴퓨터-구현 방법.
5. 조항 1-4 중 어느 하나에 있어서, 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 또는
디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나인, 컴퓨터-구현 방법.
6. 조항 1-5 중 어느 하나에 있어서:
비디오 시퀀스의 시퀀스 매개변수 세트(SPS) 내에서 제 1 플래그를 검출하는 것을 더 포함하는, 컴퓨터-구현 방법.
7. 조항 1-6 중 어느 하나에 있어서:
비디오 시퀀스에 대한 부호화 모드의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에서 제 2 플래그를 검출하는 것을 더 포함하는, 컴퓨터-구현 방법.
8. 비디오 데이터의 비트스트림을 수신하는 것;
비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것;
비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 2 부호화 모드를 활성화 또는 비활성화하는 것; 및
비트스트림 내의 제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어가 활성화 되는지를 결정하는 것을 포함하는, 컴퓨터-구현 방법.
9. 조항 8에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 컴퓨터-구현 방법.
10. 조항 8-9 중 어느 하나에 있어서:
시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화에 응답하여, 비트스트림 내의 제 4 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 1 부호화 모드 및 제 2 부호화 모드 모두를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
11. 조항 10에 있어서:
타겟 슬라이스의 슬라이스 헤더에서 제 4 플래그를 검출하는 것-타겟 슬라이스는 타겟 하위-수준 영역임; 또는
타겟 영상의 영상 헤더에서 제 4 플래그를 검출하는 것-타겟 영상은 타겟 하위-수준 영역임-을 더 포함하는, 컴퓨터-구현 방법.
12. 조항 10-11 중 어느 하나에 있어서:
비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 3 부호화 모드를 활성화 또는 비활성화하는 것; 및
비트스트림 내의 제 5 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 제어가 활성화 되는지를 결정하는 것을 더 포함하는, 컴퓨터-구현 방법.
13. 조항 12에 있어서:
시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 활성화에 응답하여, 비트스트림 내의 제 6 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 3 부호화 모드를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
14. 조항 12 및 13 중 어느 하나에 있어서, 제 1, 제 2 및 제 3 부호화 모드들은 각각 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드인, 컴퓨터-구현 방법.
15. 조항 8-14 중 어느 하나에 있어서:
비디오 시퀀스에 대해 제 1 부호화 모드가 활성화됨을 보여주는 제 1 플래그 및 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어가 시퀀스 수준보다 낮은 수준에서 활성화됨을 보여주는 제 3 플래그에 응답하여, 비트스트림 내의 제 4 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
16. 조항 8-15 중 어느 하나에 있어서, 제 1 및 제 2 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 및
디코더 측 움직임 벡터 개선(DMVR) 모드로부터 선택된 두 개의 상이한 부호화 모드들인, 컴퓨터-구현 방법.
17. 조항 8-16 중 어느 하나에 있어서, 제 1 부호화 모드 및 제 2 부호화 모드는 각각 양-방향 광학 흐름(BDOF) 모드 및 광학 흐름을 이용한 예측 개선(PROF) 모드인, 컴퓨터-구현 방법.
18. 조항 8-17 중 어느 하나에 있어서:
비디오 시퀀스의 시퀀스 매개변수 세트(SPS) 내에서 제 1 및 제 2 플래그를 검출하는 것을 더 포함하는, 컴퓨터-구현 방법.
19. 조항 8-18 중 어느 하나에 있어서:
비디오 시퀀스에 대한 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에서 제 3 플래그를 검출하는 것을 더 포함하는, 컴퓨터-구현 방법.
20. 비디오 시퀀스, 제 1 플래그 및 제 2 플래그를 수신하는 것;
제 1 플래그에 기초하여, 비디오 비트스트림에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및
제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어를 활성화 또는 비활성화하는 것을 포함하는, 컴퓨터-구현 방법.
21. 조항 20에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 컴퓨터-구현 방법.
22. 조항 20-21 중 어느 하나에 있어서:
제 3 플래그를 수신하는 것; 및
시퀀스 수준보다 낮은 수준에서 부호화 모드의 활성화 또는 비활성화 제어에 응답하여, 제 3 플래그에 기초하여 타겟 하위-수준 영역에 대한 부호화 모드를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
23. 조항 22에 있어서:
타겟 슬라이스의 슬라이스 헤더에 제 3 플래그를 저장하는 것-타겟 슬라이스는 타겟 하위-수준 영역임; 또는
타겟 영상의 영상 헤더에 제 3 플래그를 저장하는 것-타겟 영상은 타겟 하위-수준 영역임-을 더 포함하는, 컴퓨터-구현 방법.
24. 조항 20-23 중 어느 하나에 있어서, 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 또는
디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나인, 컴퓨터-구현 방법.
25. 조항 20-24 중 어느 하나에 있어서:
비디오 비트스트림의 시퀀스 매개변수 세트(SPS) 내에 제 1 플래그를 저장하는 것을 더 포함하는, 컴퓨터-구현 방법.
26. 조항 20-25 중 어느 하나에 있어서:
비디오 비트스트림에 대한 부호화 모드의 활성화 또는 비활성화에 응답하여, 비디오 비트스트림의 SPS 내에 제 2 플래그를 저장하는 것을 더 포함하는, 컴퓨터-구현 방법.
27. 비디오 시퀀스, 제 1 플래그, 제 2 플래그 및 제 3 플래그를 수신하는 것;
제 1 플래그에 기초하여, 비디오 비트스트림에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것;
제 2 플래그에 기초하여, 비디오 비트스트림에 대한 제 2 부호화 모드를 활성화 또는 비활성화하는 것; 및
제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어를 활성화 또는 비활성화하는 것을 포함하는, 컴퓨터-구현 방법.
28. 조항 27에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 컴퓨터-구현 방법.
29. 조항 27-28 중 어느 하나에 있어서:
제 4 플래그를 수신하는 것; 및
제 1 플래그에 기초한 비디오 비트스트림에 대한 제 1 부호화 모드 제어 활성화 및 제 3 플래그에 기초한 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어 활성화에 응답하여, 제 4 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
30. 조항 27-28 중 어느 하나에 있어서:
제 4 플래그를 수신하는 것; 및
시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화 또는 비활성화에 응답하여, 제 4 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 1 부호화 모드 및 제 2 부호화 모드 모두를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
31. 조항 29-30 중 어느 하나에 있어서:
타겟 슬라이스의 슬라이스 헤더에 제 4 플래그를 저장하는 것-타겟 슬라이스는 타겟 하위-수준 영역임; 또는
타겟 영상의 영상 헤더에 제 4 플래그를 저장하는 것-타겟 영상은 타겟 하위-수준 영역임-을 더 포함하는, 컴퓨터-구현 방법.
32. 조항 31에 있어서:
제 5 플래그를 수신하는 것;
제 2 플래그에 기초하여, 비디오 비트스트림에 대한 제 3 부호화 모드를 활성화 또는 비활성화하는 것;
제 5 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 제어를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
33. 조항 31 및 32 중 어느 하나에 있어서:
제 6 플래그를 수신하는 것; 및
시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드 제어의 활성화 또는 비활성화에 응답하여, 제 6 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 3 부호화 모드를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
34. 조항 27-33 중 어느 하나에 있어서, 제 1, 제 2 및 제 3 부호화 모드들은 각각 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드인, 컴퓨터-구현 방법.
35. 조항 27-33 중 어느 하나에 있어서, 제 1 및 제 2 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 및
디코더 측 움직임 벡터 개선(DMVR) 모드로부터 선택된 두 개의 상이한 부호화 모드들인, 컴퓨터-구현 방법.
36. 조항 27-35 중 어느 하나에 있어서, 제 1 부호화 모드 및 제 2 부호화 모드는 각각 양-방향 광학 흐름(BDOF) 모드 및 광학 흐름을 이용한 예측 개선(PROF) 모드인, 컴퓨터-구현 방법.
37. 조항 27-36 중 어느 하나에 있어서:
비디오 비트스트림의 시퀀스 매개변수 세트(SPS) 내에 제 1 및 제 2 플래그들을 저장하는 것을 더 포함하는, 컴퓨터-구현 방법.
38. 조항 27-37 중 어느 하나에 있어서:
비디오 비트스트림에 대한 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에 제 3 플래그를 저장하는 것을 더 포함하는, 컴퓨터-구현 방법.
39. 장치의 적어도 하나의 프로세서에 의해 실행 가능하여 장치가 방법을 수행하도록 하는 명령어들의 세트를 저장하는 비-일시적 컴퓨터-판독가능 매체에 있어서, 방법은:
비디오 데이터의 비트스트림을 수신하는 것;
비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및
비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하는 것을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
40. 조항 39에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
41. 조항 39-40 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화에 응답하여, 비트스트림 내의 제 3 플래그에 기초하여, 타겟 하위-수준 영역에 대한 부호화 모드를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
42. 조항 41에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
타겟 슬라이스의 슬라이스 헤더에서 제 3 플래그를 검출하는 것-타겟 슬라이스는 타겟 하위-수준 영역임; 또는
타겟 영상의 영상 헤더에서 제 3 플래그를 검출하는 것-타겟 영상은 타겟 하위-수준 영역임-을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
43. 조항 39-42 중 어느 하나에 있어서, 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 또는
디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나인, 비-일시적 컴퓨터-판독가능 매체.
44. 조항 39-43 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 시퀀스의 시퀀스 매개변수 세트(SPS) 내에서 제 1 플래그를 검출하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
45. 조항 39-44 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 시퀀스에 대한 부호화 모드의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에서 제 2 플래그를 검출하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
46. 장치의 적어도 하나의 프로세서에 의해 실행 가능하여 장치가 방법을 수행하도록 하는 명령어들의 세트를 저장하는 비-일시적 컴퓨터-판독가능 매체에 있어서, 방법은:
비디오 데이터의 비트스트림을 수신하는 것;
비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것;
비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 2 부호화 모드를 활성화 또는 비활성화하는 것; 및
비트스트림 내의 제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화 여부를 결정하는 것을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
47. 조항 46에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
48. 조항 46-47 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화에 응답하여, 비트스트림 내의 제 4 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 1 부호화 모드 및 제 2 부호화 모드 모두를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
49. 조항 48에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
타겟 슬라이스의 슬라이스 헤더에서 제 4 플래그를 검출하는 것-타겟 슬라이스는 타겟 하위-수준 영역임; 또는
타겟 영상의 영상 헤더에서 제 4 플래그를 검출하는 것-타겟 영상은 타겟 하위-수준 영역임-을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
50. 조항 48-49 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 3 부호화 모드를 활성화 또는 비활성화하는 것; 및
비트스트림 내의 제 5 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 제어 활성화 되는지를 결정하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
51. 조항 50에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 활성화에 응답하여, 비트스트림 내의 제 6 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 3 부호화 모드를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
52. 조항 50 및 51 중 어느 하나에 있어서, 제 1, 제 2 및 제 3 부호화 모드들은 각각 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드인, 비-일시적 컴퓨터-판독가능 매체.
53. 조항 46-52 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 시퀀스에 대해 제 1 부호화 모드가 활성화됨을 보여주는 제 1 플래그 및 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어가 시퀀스 수준보다 낮은 수준에서 활성화됨을 보여주는 제 3 플래그에 응답하여, 비트스트림 내의 제 4 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
54. 조항 46-53 중 어느 하나에 있어서, 제 1 및 제 2 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 및
디코더 측 움직임 벡터 개선(DMVR) 모드로부터 선택된 두 개의 상이한 부호화 모드들인, 비-일시적 컴퓨터-판독가능 매체.
55. 조항 46-54 중 어느 하나에 있어서, 제 1 부호화 모드 및 제 2 부호화 모드는 각각 양-방향 광학 흐름(BDOF) 모드 및 광학 흐름을 이용한 예측 개선(PROF) 모드인, 비-일시적 컴퓨터-판독가능 매체.
56. 조항 46-55 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 시퀀스의 시퀀스 매개변수 세트(SPS) 내에서 제 1 및 제 2 플래그를 검출하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
57. 조항 46-56 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 시퀀스에 대한 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에서 제 3 플래그를 검출하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
58. 장치의 적어도 하나의 프로세서에 의해 실행 가능하여 장치가 방법을 수행하도록 하는 명령어들의 세트를 저장하는 비-일시적 컴퓨터-판독가능 매체에 있어서, 방법은:
비디오 시퀀스, 제 1 플래그 및 제 2 플래그를 수신하는 것;
제 1 플래그에 기초하여, 비디오 비트스트림에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및
제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어를 활성화 또는 비활성화하는 것을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
59. 조항 58에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
60. 조항 58-59 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
제 3 플래그를 수신하는 것; 및
시퀀스 수준보다 낮은 수준에서 부호화 모드의 활성화 또는 비활성화 제어에 응답하여, 제 3 플래그에 기초하여 타겟 하위-수준 영역에 대한 부호화 모드를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
61. 조항 60에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
타겟 슬라이스의 슬라이스 헤더에 제 3 플래그를 저장하는 것-타겟 슬라이스는 타겟 하위-수준 영역임; 또는
타겟 영상의 영상 헤더에 제 3 플래그를 저장하는 것-타겟 영상은 타겟 하위-수준 영역임-을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
62. 조항 58-61 중 어느 하나에 있어서, 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 또는
디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나인, 비-일시적 컴퓨터-판독가능 매체.
63. 조항 58-62 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 비트스트림의 시퀀스 매개변수 세트(SPS) 내에 제 1 플래그를 저장하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
64. 조항 58-63 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 비트스트림에 대한 부호화 모드의 활성화 또는 비활성화에 응답하여, 비디오 비트스트림의 SPS 내에 제 2 플래그를 저장하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
65. 장치의 적어도 하나의 프로세서에 의해 실행 가능하여 장치가 방법을 수행하도록 하는 명령어들의 세트를 저장하는 비-일시적 컴퓨터-판독가능 매체에 있어서, 방법은:
비디오 시퀀스, 제 1 플래그, 제 2 플래그 및 제 3 플래그를 수신하는 것;
제 1 플래그에 기초하여, 비디오 비트스트림에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것;
제 2 플래그에 기초하여, 비디오 비트스트림에 대한 제 2 부호화 모드를 활성화 또는 비활성화하는 것; 및
제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어를 활성화 또는 비활성화하는 것을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
66. 조항 65에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
67. 조항 65-66 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
제 4 플래그를 수신하는 것; 및
제 1 플래그에 기초한 비디오 비트스트림에 대한 제 1 부호화 모드 제어 활성화 및 제 3 플래그에 기초한 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어 활성화에 응답하여, 제 4 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 1 부호화 모드를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
68. 조항 65-66 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
제 4 플래그를 수신하는 것; 및
시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화 또는 비활성화에 응답하여, 제 4 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 1 부호화 모드 및 제 2 부호화 모드 모두를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
69. 조항 67-68 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
타겟 슬라이스의 슬라이스 헤더에 제 4 플래그를 저장하는 것-타겟 슬라이스는 타겟 하위-수준 영역임; 또는
타겟 영상의 영상 헤더에 제 4 플래그를 저장하는 것-타겟 영상은 타겟 하위-수준 영역임-을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
70. 조항 69에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
제 5 플래그를 수신하는 것;
제 2 플래그에 기초하여, 비디오 비트스트림에 대한 제 3 부호화 모드를 활성화 또는 비활성화하는 것;
제 5 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 제어를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
71. 조항 69 및 70 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
제 6 플래그를 수신하는 것; 및
시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드 제어의 활성화 또는 비활성화에 응답하여, 제 6 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 3 부호화 모드를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
72. 조항 65-71 중 어느 하나에 있어서, 제 1, 제 2 및 제 3 부호화 모드는 각각 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드인, 비-일시적 컴퓨터-판독가능 매체.
73. 조항 65-72 중 어느 하나에 있어서, 제 1 및 제 2 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 및
디코더 측 움직임 벡터 개선(DMVR) 모드로부터 선택된 두 개의 상이한 부호화 모드들인 비-일시적 컴퓨터-판독가능 매체.
74. 조항 65-73 중 어느 하나에 있어서, 제 1 부호화 모드 및 제 2 부호화 모드는 각각 양-방향 광학 흐름(BDOF) 모드 및 광학 흐름을 이용한 예측 개선(PROF) 모드인, 비-일시적 컴퓨터-판독가능 매체.
75. 조항 65-74 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 비트스트림의 시퀀스 매개변수 세트(SPS) 내에 제 1 및 제 2 플래그들을 저장하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
76. 조항 65-75 중 어느 하나에 있어서, 장치의 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트는 장치가:
비디오 비트스트림에 대한 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에 제 3 플래그를 저장하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
77. 명령어들의 세트를 저장하도록 구성된 메모리; 및
메모리에 통신 가능하게 결합되며 명령어들의 세트를 실행하여 장치가:
비디오 데이터의 비트스트림을 수신하고;
비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하고; 및
비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하게 하도록 구성된 하나 이상의 프로세서들을 포함하는, 장치.
78. 조항 77에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 장치.
79. 조항 77-78 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
시퀀스 수준보다 낮은 수준에서 부호화 모드 제어의 활성화에 응답하여, 비트스트림 내의 제 3 플래그에 기초하여, 타겟 하위-수준 영역에 대한 부호화 모드를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
80. 조항 79에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
타겟 슬라이스의 슬라이스 헤더에서 제 3 플래그를 검출 - 타겟 슬라이스는 타겟 하위-수준 영역임 - 하고; 또는
타겟 영상의 영상 헤더에서 제 3 플래그를 검출 - 타겟 영상은 타겟 하위-수준 영역임 - 하게 하도록 더 구성된 장치.
81. 조항 77-80 중 어느 하나에 있어서 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 또는
디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나인, 장치.
82. 조항 77-81 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 시퀀스의 시퀀스 매개변수 세트(SPS) 내에서 제 1 플래그를 검출하게 하도록 더 구성된, 장치.
83. 조항 77-82 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 시퀀스에 대한 부호화 모드의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에서 제 2 플래그를 검출하게 하도록 더 구성된, 장치.
84. 명령어들의 세트를 저장하도록 구성된 메모리; 및
메모리에 통신 가능하게 결합되며 명령어들의 세트를 실행하여 장치가:
비디오 데이터의 비트스트림을 수신하고;
비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 제 1 부호화 모드를 활성화 또는 비활성화하고;
비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 2 부호화 모드를 활성화 또는 비활성화하고; 및
비트스트림 내의 제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어가 활성화 되는지를 결정하게 하도록 구성된 하나 이상의 프로세서들을 포함하는, 장치.
85. 조항 84에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 장치.
86. 조항 84-85 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화에 응답하여, 비트스트림 내의 제 4 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 1 부호화 모드 및 제 2 부호화 모드 모두를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
87. 조항 86에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
타겟 슬라이스의 슬라이스 헤더에서 제 4 플래그를 검출 - 타겟 슬라이스는 타겟 하위-수준 영역임 - 하거나; 또는
타겟 영상의 영상 헤더에서 제 4 플래그를 검출 - 타겟 영상은 타겟 하위-수준 영역임 - 하게 하도록 더 구성된, 장치.
88. 조항 86-87 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비트스트림 내의 제 2 플래그에 기초하여, 비디오 시퀀스에 대한 제 3 부호화 모드를 활성화 또는 비활성화하고; 및
비트스트림 내의 제 5 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 제어가 활성화 되는지를 결정하게 하도록 더 구성된, 장치.
89. 조항 88에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 활성화에 응답하여, 비트스트림 내의 제 6 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 3 부호화 모드를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
90. 조항 88 및 89 중 어느 하나에 있어서, 제 1, 제 2 및 제 3 부호화 모드는 각각 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드인, 장치.
91. 조항 84-90 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 시퀀스에 대해 제 1 부호화 모드가 활성화됨을 보여주는 제 1 플래그 및 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어가 시퀀스 수준보다 낮은 수준에서 활성화됨을 보여주는 제 3 플래그에 응답하여, 비트스트림 내의 제 4 플래그에 기초하여, 타겟 하위-수준 영역에 대한 제 1 부호화 모드를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
92. 조항 84-91 중 어느 하나에 있어서, 제 1 및 제 2 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 및
디코더 측 움직임 벡터 개선(DMVR) 모드로부터 선택된 두 개의 상이한 부호화 모드들인, 장치.
93. 조항 84-92 중 어느 하나에 있어서, 제 1 부호화 모드 및 제 2 부호화 모드들은 각각 양-방향 광학 흐름(BDOF) 모드 및 광학 흐름을 이용한 예측 개선(PROF) 모드인, 장치.
94. 조항 84-93 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 시퀀스의 시퀀스 매개변수 세트(SPS) 내에서 제 1 및 제 2 플래그를 검출하게 하도록 더 구성된, 장치.
95. 조항 84-94 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 시퀀스에 대한 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에서 제 3 플래그를 검출하게 하도록 더 구성된, 장치.
96. 명령어들의 세트를 저장하도록 구성된 메모리; 및
메모리에 통신 가능하게 결합되며 명령어들의 세트를 실행하여 장치가:
비디오 시퀀스, 제 1 플래그 및 제 2 플래그를 수신하고;
제 1 플래그에 기초하여, 비디오 비트스트림에 대한 부호화 모드를 활성화 또는 비활성화하고; 및
제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 부호화 모드의 제어를 활성화 또는 비활성화하게 하도록 구성된 하나 이상의 프로세서들을 포함하는, 장치.
97. 조항 96에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 장치.
98. 조항 96-97 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
제 3 플래그를 수신하고; 및
시퀀스 수준보다 낮은 수준에서 부호화 모드 활성화 또는 비활성화의 제어에 응답하여, 제 3 플래그에 기초하여, 타겟 하위-수준 영역에 대한 부호화 모드를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
99. 조항 98에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
타겟 슬라이스의 슬라이스 헤더에 제 3 플래그를 저장 - 타겟 슬라이스는 타겟 하위-수준 영역임 - 하고; 또는
타겟 영상의 영상 헤더에 제 3 플래그를 저장 - 타겟 영상은 타겟 하위-수준 영역임 - 하게 하도록 더 구성된, 장치.
100. 조항 96-99 중 어느 하나에 있어서, 부호화 모드는:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 또는
디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나인, 장치.
101. 조항 96-100 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 비트스트림의 시퀀스 매개변수 세트(SPS) 내에 제 1 플래그를 저장하게 하도록 더 구성된, 장치.
102. 조항 96-101 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 비트스트림에 대한 부호화 모드의 활성화 또는 비활성화에 응답하여, 비디오 비트스트림의 SPS 내에 제 2 플래그를 저장하게 하도록 더 구성된, 장치.
103. 명령어들의 세트를 저장하도록 구성된 메모리; 및
메모리에 통신 가능하게 결합되며 명령어들의 세트를 실행하여 장치가:
비디오 시퀀스, 제 1 플래그, 제 2 플래그 및 제 3 플래그를 수신하고;
제 1 플래그에 기초하여, 비디오 비트스트림에 대한 제 1 부호화 모드를 활성화 또는 비활성화하고;
제 2 플래그에 기초하여, 비디오 비트스트림에 대한 제 2 부호화 모드를 활성화 또는 비활성화하고; 및
제 3 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어를 활성화 또는 비활성화하게 하도록 구성된 하나 이상의 프로세서들을 포함하는, 장치.
104. 조항 102에 있어서, 시퀀스 수준보다 낮은 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 장치.
105. 조항 103-104 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
제 4 플래그를 수신하고; 및
제 1 플래그에 기초한 비디오 비트스트림에 대한 제 1 부호화 모드 제어 활성화 및 제 3 플래그에 기초한 시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어 활성화에 응답하여, 제 4 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 1 부호화 모드를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
106. 조항 103-104 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
제 4 플래그를 수신하고; 및
시퀀스 수준보다 낮은 수준에서 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 제어의 활성화 또는 비활성화에 응답하여, 제 4 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 1 부호화 모드 및 제 2 부호화 모드 모두를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
107. 조항 105-106 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
타겟 슬라이스의 슬라이스 헤더에 제 4 플래그를 저장 - 타겟 슬라이스는 타겟 하위-수준 영역임 - 하고; 또는
타겟 영상의 영상 헤더에 제 4 플래그를 저장 - 타겟 영상은 타겟 하위-수준 영역임 - 하게 하도록 더 구성된, 장치.
108. 조항 107에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
제 5 플래그를 수신하고;
제 2 플래그에 기초하여, 비디오 비트스트림에 대한 제 3 부호화 모드를 활성화 또는 비활성화하고; 및
제 5 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드의 제어를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
109. 조항 107 및 108 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
제 6 플래그를 수신하고; 및
시퀀스 수준보다 낮은 수준에서 제 3 부호화 모드 제어의 활성화 또는 비활성화에 응답하여, 제 6 플래그에 기초하여 타겟 하위-수준 영역에 대한 제 3 부호화 모드를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
110. 조항 103-109 중 어느 하나에 있어서, 제 1, 제 2 및 제 3 부호화 모드들은 각각 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 및 디코더 측 움직임 벡터 개선(DMVR) 모드인, 장치.
111. 조항 103-110 중 어느 하나에 있어서, 제 1 및 제 2 부호화 모드들은:
양-방향 광학 흐름(BDOF) 모드;
광학 흐름을 이용한 예측 개선(PROF) 모드; 및
디코더 측 움직임 벡터 개선(DMVR) 모드로부터 선택된 두 개의 상이한 부호화 모드들인, 장치.
112. 조항 103-110 중 어느 하나에 있어서, 제 1 부호화 모드 및 제 2 부호화 모드는 각각 양-방향 광학 흐름(BDOF) 모드 및 광학 흐름을 이용한 예측 개선(PROF) 모드인, 장치.
113. 조항 103-112 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 비트스트림의 시퀀스 매개변수 세트(SPS) 내에 제 1 및 제 2 플래그를 저장하게 하도록 더 구성된 장치.
114. 조항 103-113 중 어느 하나에 있어서, 하나 이상의 프로세서들은 명령어들의 세트를 실행하여 장치가:
비디오 비트스트림에 대한 제 1 부호화 모드 또는 제 2 부호화 모드 중 적어도 하나의 활성화에 응답하여, 비디오 시퀀스의 SPS 내에 제 3 플래그를 저장하게 하도록 더 구성된, 장치.
본원에서 "제 1" 및 "제 2"와 같은 관계 용어는 개체 또는 작업을 다른 개체 또는 동작과 구별하는 데에만 사용되며, 이러한 개체들 또는 동작들 사이의 임의의 실제 관계 또는 순서를 요구하거나 암시하지 않음을 유의하여야 한다. 또한, "포함하는(comprising)", "갖는(having)", "함유하는(containing)" 및 "포함하는(including)"이라는 단어 및 기타 유사한 형태들은 의미가 동등하며 이러한 단어들 중 임의의 것 뒤에 오는 항목 또는 항목들이 그러한 항목 또는 항목들의 완전한 목록을 의미하거나 나열된 항목 또는 항목들만으로 제한되어야 하는 것이 아닌, 개방적인 것으로 의도된다.
본원에서 사용되는 바와 따르면, 달리 구체적으로 언급되지 않는 한, 용어 "또는"은 실행 불가능한 경우를 제외하고 모든 가능한 조합을 포함한다. 예를 들어, 성분이 A 또는 B를 포함할 수 있다고 명시되어 있는 경우, 구체적으로 달리 명시되거나 실행 불가능한 경우를 제외하고, 성분은 A 또는 B 또는 A와 B를 포함할 수 있다. 제 2의 예시로서, 성분이 A, B 또는 C를 포함할 수 있다고 명시되어 있는 경우, 구체적으로 달리 명시되거나 실행 불가능한 경우를 제외하고, 구성요소는 A 또는 B 또는 C 또는 A와 B 또는 A와 C 또는 B와 C 또는 A와 B와 C를 포함할 수 있다.
전술한 실시예들은 하드웨어, 또는 소프트웨어(프로그램 코드들) 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다는 것이 인식된다. 소프트웨어로 구현되는 경우, 전술한 컴퓨터-판독가능 매체에 저장될 수 있다. 프로세서에 의해 실행될 때, 소프트웨어는 개시된 방법들을 수행할 수 있다. 본 개시에서 설명된 연산 단위들 및 다른 기능 단위들은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 당업자는 또한 위에서 설명된 모듈들/단위들 중 다수가 하나의 모듈/단위로 조합될 수 있고, 위에서 설명된 모듈들/단위 각각은 복수의 서브-모듈들/서브-단위들로 더 나눠질 수 있음을 이해될 것이다.
전술한 명세서에서, 실시예들은 구현예마다 다를 수 있는 다수의 특정 세부사항들을 참조하여 설명되었다. 설명된 실시예들의 특정 적응들 및 수정들이 이루어질 수 있다. 다른 실시예들은 본원에 개시된 발명의 명세서 및 실시를 고려하여 당업자에게 명백할 수 있다. 명세서 및 실시예는 단지 예시로서 고려되어야 하며, 발명의 진정한 범위 및 정신은 다음의 청구범위에 의해 보여지는 것으로 의도된다. 또한 도면들에 도시된 과정들의 순서는 단지 예시를 위해 의도된 것이며 특정 과정들의 순서로 제한되는 것으로 의도되지 않는다. 이와 같이, 당업자는 이러한 과정들이 동일한 방법을 구현하면서 상이한 순서로 수행될 수 있음을 인식할 수 있다.
도면들 및 명세서에는 예시적인 실시예들이 개시되어 있다. 그러나, 이러한 실시예들에 대해 많은 변형들 및 수정들이 이루어질 수 있다. 따라서, 특정 용어들이 사용되더라도 일반적이고 설명적인 의미로 사용되며 제한을 위한 것은 아니다.

Claims (23)

  1. 컴퓨터-구현 방법에 있어서,
    비디오 데이터의 비트스트림(bitstream)을 수신하는 것;
    상기 비트스트림 내의 제 1 플래그(flag)에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및
    상기 비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 상기 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하는 것을 포함하는, 컴퓨터-구현 방법.
  2. 제1항에 있어서, 상기 시퀀스 수준보다 낮은 상기 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 컴퓨터-구현 방법.
  3. 제1항에 있어서:
    상기 시퀀스 수준보다 낮은 상기 수준에서 활성화되는 상기 부호화 모드의 제어에 응답하여, 상기 비트스트림 내의 제 3 플래그에 기초하여, 타겟 하위-수준 영역에 대한 상기 부호화 모드를 활성화 또는 비활성화하는 것을 더 포함하는, 컴퓨터-구현 방법.
  4. 제3항에 있어서:
    타겟 슬라이스의 슬라이스 헤더에서 상기 제 3 플래그를 검출하는 것 - 상기 타겟 슬라이스는 상기 타겟 하위-수준 영역임 -; 또는
    타겟 영상의 영상 헤더에서 상기 제 3 플래그를 검출하는 것 - 상기 타겟 영상은 상기 타겟 하위-수준 영역임 - 을 더 포함하는, 컴퓨터-구현 방법.
  5. 제1항에 있어서, 상기 부호화 모드는:
    양-방향 광학 흐름(bi-directional optical flow; BDOF) 모드;
    광학 흐름을 이용한 예측 개선(prediction refinement with optical flow; PROF) 모드; 또는
    디코더 측 움직임 벡터 개선(decoder side motion vector refinement; DMVR) 모드 중 적어도 하나인, 컴퓨터-구현 방법.
  6. 제1항에 있어서:
    상기 비디오 시퀀스의 시퀀스 매개변수 세트(Sequence Parameter Set; SPS) 내에서 상기 제 1 플래그를 검출하는 것을 더 포함하는, 컴퓨터-구현 방법.
  7. 제1항에 있어서:
    상기 비디오 시퀀스에 대한 상기 부호화 모드의 활성화에 응답하여, 상기 비디오 시퀀스의 상기 SPS 내에서 상기 제 2 플래그를 검출하는 것을 더 포함하는, 컴퓨터-구현 방법.
  8. 장치의 적어도 하나의 프로세서에 의해 실행 가능한 것으로서 상기 장치가 방법을 수행하도록 하는 명령어들의 세트를 저장하는 비-일시적 컴퓨터-판독가능 매체에 있어서, 상기 방법은:
    비디오 시퀀스, 제 1 플래그 및 제 2 플래그를 수신하는 것;
    상기 제 1 플래그에 기초하여, 비디오 비트스트림에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및
    상기 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 상기 부호화 모드 제어를 활성화 또는 비활성화하는 것을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
  9. 제8항에 있어서, 상기 부호화 모드는 양-방향 광학 흐름(BDOF) 모드, 광학 흐름을 이용한 예측 개선(PROF) 모드 또는 디코더 측 움직임 벡터 개선(DMVR) 모드 중 적어도 하나인, 비-일시적 컴퓨터-판독가능 매체.
  10. 장치의 적어도 하나의 프로세서에 의해 실행 가능한 것으로서 상기 장치가 방법을 수행하도록 하는 명령어들의 세트를 저장하는 비-일시적 컴퓨터-판독가능 매체에 있어서, 상기 방법은:
    비디오 데이터의 비트스트림을 수신하는 것;
    상기 비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하는 것; 및
    상기 비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 상기 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하는 것을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
  11. 제10항에 있어서, 상기 시퀀스 수준보다 낮은 상기 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
  12. 제10항에 있어서, 상기 장치의 상기 적어도 하나의 프로세서에 의해 실행 가능한 상기 명령어들의 세트는 상기 장치가:
    상기 시퀀스 수준보다 낮은 상기 수준에서 활성화 되는 상기 부호화 모드의 제어에 응답하여, 상기 비트스트림 내의 제 3 플래그에 기초하여, 타겟 하위-수준 영역에 대한 상기 부호화 모드를 활성화 또는 비활성화하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  13. 제12항에 있어서, 상기 장치의 상기 적어도 하나의 프로세서에 의해 실행 가능한 상기 명령어들의 세트는 상기 장치가:
    타겟 슬라이스의 슬라이스 헤더에서 상기 제 3 플래그를 검출하는 것 - 상기 타겟 슬라이스는 상기 타겟 하위-수준 영역임 -; 또는
    타겟 영상의 영상 헤더에서 상기 제 3 플래그를 검출하는 것 - 상기 타겟 영상은 상기 타겟 하위-수준 영역임 - 을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  14. 제10항에 있어서, 상기 부호화 모드는:
    양-방향 광학 흐름(BDOF) 모드;
    광학 흐름을 이용한 예측 개선(PROF) 모드; 또는
    디코더 측 움직임 벡터 개선(DMVR) 모드
    중 적어도 하나인, 비-일시적 컴퓨터-판독가능 매체.
  15. 제10항에 있어서, 상기 장치의 상기 적어도 하나의 프로세서에 의해 실행 가능한 상기 명령어들의 세트는 상기 장치가:
    상기 비디오 시퀀스의 시퀀스 매개변수 세트(SPS) 내에서 상기 제 1 플래그를 검출하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  16. 제10항에 있어서, 상기 장치의 상기 적어도 하나의 프로세서에 의해 실행 가능한 상기 명령어들의 세트는 상기 장치가:
    상기 비디오 시퀀스에 대한 상기 부호화 모드의 활성화에 응답하여, 상기 비디오 시퀀스의 상기 SPS 내에서 상기 제 2 플래그를 검출하는 것을 더 수행하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  17. 명령어들의 세트를 저장하도록 구성된 메모리; 및
    상기 메모리에 통신 가능하게 결합되며 상기 명령어들의 세트를 실행하여 장치가:
    비디오 데이터의 비트스트림을 수신하고;
    상기 비트스트림 내의 제 1 플래그에 기초하여, 비디오 시퀀스에 대한 부호화 모드를 활성화 또는 비활성화하고; 및
    상기 비트스트림 내의 제 2 플래그에 기초하여, 시퀀스 수준보다 낮은 수준에서 상기 부호화 모드 제어의 활성화 또는 비활성화 여부를 결정하게하도록 구성된 하나 이상의 프로세서들을 포함하는, 장치.
  18. 제17항에 있어서, 상기 시퀀스 수준보다 낮은 상기 수준은 슬라이스 수준 또는 영상 수준을 포함하는, 장치.
  19. 제17항에 있어서, 상기 하나 이상의 프로세서들은 상기 명령어들의 세트를 실행하여 상기 장치가:
    상기 시퀀스 수준보다 낮은 상기 수준에서 활성화되는 상기 부호화 모드 제어에 응답하여, 상기 비트스트림 내의 제 3 플래그에 기초하여, 타겟 하위-수준 영역에 대한 상기 부호화 모드를 활성화 또는 비활성화하게 하도록 더 구성된, 장치.
  20. 제19항에 있어서, 상기 하나 이상의 프로세서들은 상기 명령어들의 세트를 실행하여 상기 장치가:
    타겟 슬라이스의 슬라이스 헤더에서 상기 제 3 플래그를 검출 - 상기 타겟 슬라이스는 상기 타겟 하위-수준 영역임 - 하거나; 또는
    타겟 영상의 영상 헤더에서 상기 제 3 플래그를 검출 - 상기 타겟 영상은 상기 타겟 하위-수준 영역임 - 하게 하도록 더 구성된, 장치.
  21. 제17항에 있어서, 상기 부호화 모드는:
    양-방향 광학 흐름(BDOF) 모드;
    광학 흐름을 이용한 예측 개선(PROF) 모드; 또는
    디코더 측 움직임 벡터 개선(DMVR) 모드
    중 적어도 하나인, 장치.
  22. 제17항에 있어서, 상기 하나 이상의 프로세서들은 상기 명령어들의 세트를 실행하여 상기 장치가:
    상기 비디오 시퀀스의 시퀀스 매개변수 세트(SPS) 내에서 상기 제 1 플래그를 검출하게 하도록 더 구성된, 장치.
  23. 제17항에 있어서, 상기 하나 이상의 프로세서들은 상기 명령어들의 세트를 실행하여 상기 장치가:
    상기 비디오 시퀀스에 대한 상기 부호화 모드의 활성화에 응답하여, 상기 비디오 시퀀스의 상기 SPS 내에서 상기 제 2 플래그를 검출하게 하도록 더 구성된, 장치.
KR1020227011871A 2019-09-12 2020-08-20 비디오 부호화 정보 시그널링용 방법 및 장치 KR20220062588A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962899169P 2019-09-12 2019-09-12
US62/899,169 2019-09-12
PCT/US2020/047139 WO2021050234A1 (en) 2019-09-12 2020-08-20 Method and apparatus for signaling video coding information

Publications (1)

Publication Number Publication Date
KR20220062588A true KR20220062588A (ko) 2022-05-17

Family

ID=74866009

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227011871A KR20220062588A (ko) 2019-09-12 2020-08-20 비디오 부호화 정보 시그널링용 방법 및 장치

Country Status (6)

Country Link
US (1) US11647215B2 (ko)
EP (1) EP4029256A4 (ko)
JP (1) JP2022547599A (ko)
KR (1) KR20220062588A (ko)
CN (1) CN114424543A (ko)
WO (1) WO2021050234A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI719519B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 對於dmvr的塊尺寸限制
CN117221548A (zh) * 2019-06-17 2023-12-12 北京达佳互联信息技术有限公司 用于视频编解码中的解码器侧运动矢量细化的方法和装置
US11272203B2 (en) * 2019-07-23 2022-03-08 Tencent America LLC Method and apparatus for video coding
CN114424573B (zh) 2019-09-19 2024-03-26 北京字节跳动网络技术有限公司 视频编解码中的参考样点位置推导
KR20220070437A (ko) 2019-10-05 2022-05-31 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩 툴의 레벨 기반 시그널링
CN114556918A (zh) * 2019-10-12 2022-05-27 北京字节跳动网络技术有限公司 细化视频编解码工具的使用和信令
KR20220073740A (ko) 2019-10-13 2022-06-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 레퍼런스 픽처 리샘플링 및 비디오 코딩 툴 사이의 상호 작용
CN116915967A (zh) * 2020-04-12 2023-10-20 Lg电子株式会社 点云数据发送设备和方法以及点云数据接收设备和方法
CN117356097A (zh) * 2021-04-21 2024-01-05 抖音视界有限公司 用于视频处理的方法、设备和介质
WO2023138543A1 (en) * 2022-01-19 2023-07-27 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
US20230308677A1 (en) * 2022-03-25 2023-09-28 Tencent America LLC Method and apparatus adaptive constraint on bi-prediction for out-of-boundary conditions
WO2024016955A1 (en) * 2022-07-22 2024-01-25 Mediatek Inc. Out-of-boundary check in video coding

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8290038B1 (en) * 2009-11-30 2012-10-16 Google Inc. Video coding complexity estimation
US9001883B2 (en) * 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
US11184623B2 (en) * 2011-09-26 2021-11-23 Texas Instruments Incorporated Method and system for lossless coding mode in video coding
US9635369B2 (en) * 2012-07-02 2017-04-25 Qualcomm Incorporated Video parameter set including HRD parameters
CA2935301C (en) * 2014-01-02 2019-10-01 Hfi Innovation Inc. Method and apparatus for intra prediction coding with boundary filtering control
US20160234494A1 (en) * 2015-02-10 2016-08-11 Qualcomm Incorporated Restriction on palette block size in video coding
EP3704856A1 (en) 2017-11-01 2020-09-09 Vid Scale, Inc. Sub-block motion derivation and decoder-side motion vector refinement for merge mode
US11310526B2 (en) 2018-01-26 2022-04-19 Mediatek Inc. Hardware friendly constrained motion vector refinement
WO2019238008A1 (en) * 2018-06-11 2019-12-19 Mediatek Inc. Method and apparatus of bi-directional optical flow for video coding
EP4221223A1 (en) * 2019-02-07 2023-08-02 Vid Scale, Inc. Systems, apparatus and methods for inter prediction refinement with optical flow
SG11202109031TA (en) * 2019-03-18 2021-09-29 Tencent America LLC Method and apparatus for video coding
WO2020211867A1 (en) * 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Delta motion vector in prediction refinement with optical flow process
US11233988B2 (en) * 2019-05-17 2022-01-25 Qualcomm Incorporated Reference picture resampling and inter-coding tools for video coding
AU2020294736A1 (en) * 2019-06-21 2022-01-27 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods
CN114175654A (zh) * 2019-08-08 2022-03-11 鸿颖创新有限公司 用于对视频数据编码的设备和方法
US11223840B2 (en) * 2019-08-19 2022-01-11 Tencent America LLC Method and apparatus for video coding
JP7199598B2 (ja) * 2019-08-23 2023-01-05 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド Profの方法、コンピューティングデバイス、コンピュータ可読記憶媒体、およびプログラム
WO2021055643A1 (en) * 2019-09-17 2021-03-25 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus for prediction refinement with optical flow

Also Published As

Publication number Publication date
EP4029256A4 (en) 2022-11-09
US11647215B2 (en) 2023-05-09
EP4029256A1 (en) 2022-07-20
WO2021050234A1 (en) 2021-03-18
CN114424543A (zh) 2022-04-29
JP2022547599A (ja) 2022-11-14
US20210084322A1 (en) 2021-03-18

Similar Documents

Publication Publication Date Title
US11647215B2 (en) Method and apparatus for signaling video coding information
US11902561B2 (en) Convolutional-neutral-network based filter for video coding
US11575926B2 (en) Enhanced decoder side motion vector refinement
US11641475B2 (en) Method and apparatus for encoding or decoding video
US11323711B2 (en) Method and system for signaling chroma quantization parameter offset
US20200413089A1 (en) Method and system for motion refinement in video coding
US20230362384A1 (en) Methods and systems for cross-component sample adaptive offset
CN114788284B (zh) 用于在调色板模式下对视频数据进行编码的方法和装置
WO2023048646A2 (en) Methods and systems for performing combined inter and intra prediction
WO2022028422A1 (en) Systems and methods for bi-directional prediction correction
US20210368170A1 (en) High level control of pdpc and intra reference sample filtering of video coding
US20210368210A1 (en) Method and apparatus for processing video content
KR20230170037A (ko) 기하학적 파티션 모드에 대한 움직임 벡터 정제를 위한 방법, 장치, 및 비일시적 컴퓨터 판독 가능 저장 매체
US11711528B2 (en) Systems and methods for liner model derivation
US11606577B2 (en) Method for processing adaptive color transform and low-frequency non-separable transform in video coding
WO2023236965A1 (en) Cross component prediction of chroma samples
WO2023131208A1 (en) Fusion of video prediction modes
US20210385485A1 (en) Angular weighted prediction for inter prediction
EP4364413A2 (en) Methods and systems for cross-component adaptive loop filter