KR20210091304A - 화상 인코딩 및 디코딩을 위한 방법 및 디바이스 - Google Patents

화상 인코딩 및 디코딩을 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20210091304A
KR20210091304A KR1020217018916A KR20217018916A KR20210091304A KR 20210091304 A KR20210091304 A KR 20210091304A KR 1020217018916 A KR1020217018916 A KR 1020217018916A KR 20217018916 A KR20217018916 A KR 20217018916A KR 20210091304 A KR20210091304 A KR 20210091304A
Authority
KR
South Korea
Prior art keywords
current block
disabling
coding tool
verified
following conditions
Prior art date
Application number
KR1020217018916A
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
Priority claimed from EP18306535.8A external-priority patent/EP3657794A1/en
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20210091304A publication Critical patent/KR20210091304A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Abstract

디코딩 방법이 개시된다. 먼저 현재 블록에 대한 파라미터들이 디코딩된다. 다음 조건들: 제1 코딩 도구가 현재 블록에 사용되는 것 그리고 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것 중 하나 이상이 검증되는 경우 현재 블록에 대해 코딩 도구가 디스에이블된다. 그렇지 않으면, 코딩 도구가 현재 블록에 대해 인에이블된다. 마지막으로, 현재 블록은 제1 및 코딩 도구들에 응답하여 디코딩된다.

Description

화상 인코딩 및 디코딩을 위한 방법 및 디바이스
본 실시예들 중 적어도 하나는 일반적으로 화상 인코딩 및 디코딩을 위한 방법 및 장치에 관한 것으로, 보다 상세하게는 다양한 코딩 도구들 예컨대, 모션 보상(Motion Compensation), 로컬 조명 보상(Local Illumination Compensation), 일반화된 이중-예측(Generalized Bi-prediction), 재구성-후 필터(post-reconstruction filter)들 등을 사용한 화상 인코딩 및 디코딩을 위한 방법 및 디바이스에 관한 것이다.
높은 압축 효율성을 달성하기 위해, 이미지 및 비디오 코딩 방식들은 일반적으로 예측 및 변환을 사용하여 비디오 콘텐츠에서 공간 및 시간 중복성을 활용(leverage)한다. 일반적으로, 인트라 또는 인터 프레임 상관을 이용하기 위해 인트라 또는 인터 예측을 사용하고, 그 후, 오리지널 이미지 블록과 예측된 이미지 블록 간의 차이들(예측 오류들, 예측 잔차들 또는 예측자(predictor)로서 종종 표시됨)이 변환, 양자화 및 엔트로피 코딩(entropy coded)된다. 인코딩 동안, 오리지널 이미지 블록은 일반적으로, 어쩌면 쿼드-트리 파티셔닝(quad-tree partitioning)을 사용하여 서브-블록들로 파티셔닝/분할된다. 비디오를 재구성하기 위해, 압축된 데이터는 예측, 변환, 양자화 및 엔트로피 코딩에 대응하는 역 프로세스들에 의해 디코딩된다.
적어도 하나의 실시예의 일반적인 양상에 따르면, 비디오 데이터를 디코딩하기 위한 방법이 제공되며, 이 방법은,
- 현재 블록에 대한 파라미터들을 디코딩하는 단계;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계 ― 다음 조건들은, 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 단계; 및
- 코딩 도구에 응답하여 상기 현재 블록을 디코딩하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양상에 따르면, 비디오 데이터를 인코딩하기 위한 방법이 제공되며, 이 방법은,
- 현재 블록에 대한 파라미터들을 획득하는 단계;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계 ― 다음 조건들은 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 획득된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 단계; 및
- 코딩 도구에 응답하여 상기 현재 블록을 인코딩하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양상에 따르면, 하나 이상의 프로세서들을 포함하는 디코딩 장치가 제시되며, 상기 하나 이상의 프로세서들은,
- 현재 블록에 대한 파라미터들을 디코딩하는 것;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 것 ― 다음 조건들은, 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 것; 및
- 코딩 도구에 응답하여 상기 현재 블록을 디코딩하는 것을 수행하도록 구성된다.
적어도 하나의 실시예의 일반적인 양상에 따르면, 비디오 데이터를 인코딩하기 위한 방법이 제공되며, 이 방법은,
- 현재 블록에 대한 파라미터들을 획득하는 단계;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계 ― 다음 조건들은, 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 획득된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 단계; 및
- 코딩 도구에 응답하여 상기 현재 블록을 인코딩하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양상에 따르면, 하나 이상의 프로세서들을 포함하는 인코딩 장치가 제시되며, 상기 하나 이상의 프로세서들은,
- 현재 블록에 대한 파라미터들을 획득하는 것;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 것 ― 다음 조건들은, 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 획득된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 것; 및
- 코딩 도구에 응답하여 상기 현재 블록을 인코딩하는 것을 수행하도록 구성된다.
적어도 하나의 실시예의 다른 일반적인 양상에 따르면, 위에서 설명된 인코딩 방법들에 따라 생성된 신호를 포함하도록 비트스트림이 포맷팅된다.
본 실시예들 중 하나 이상은 또한 위에서 설명된 방법들 중 임의의 방법의 적어도 일부에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장되어 있는 컴퓨터 판독 가능 저장 매체를 제공한다. 하나 이상의 실시예들은 또한 위에서 설명된 인코딩 방법들에 따라 생성된 비트스트림이 저장되어 있는 컴퓨터 판독 가능 저장 매체를 제공한다. 하나 이상의 실시예들은 또한 위에서 설명된 인코딩 방법에 따라 생성된 비트스트림을 송신 또는 수신하기 위한 방법 및 장치를 제공한다. 하나 이상의 실시예들은 또한 위에서 설명된 방법들 중 임의의 방법의 적어도 일부를 수행하기 위한 명령어들을 포함하는 컴퓨터 프로그램 제품을 제공한다.
도 1a는 전체 디코딩 파이프라인을 도시하고, 도 1b 및 도 1c는 다른 전체 디코딩 파이프라인들을 도시하고, 도 1d는 일 실시예에 따른 전체 디코딩 파이프라인을 도시한다.
도 2는 로컬 조명 보상 파라미터 도출의 원리들을 예시한다.
도 3은 중첩된 블록 모션 보상의 원리들을 예시한다.
도 4는 인터 및 인트라 모드 조합의 경우 다중-가설 예측의 원리들을 예시한다.
도 5는 블록의 비-직사각형 파티셔닝 및 연관된 OBMC 대각선 가중치를 예시한다.
도 6은 일 실시예에 따른 디코딩 방법의 흐름도를 도시한다.
도 7은 일 실시예에 따른 인코딩 방법의 흐름도를 도시한다.
도 8은 다양한 실시예들에 따른 디코딩 프로세스들의 흐름도를 도시한다.
도 9는 다중-가설 예측 프로세스의 흐름도를 도시한다.
도 10은 일 실시예에 따른 다중-가설 예측 프로세스의 흐름도를 도시한다.
도 11은 로컬 조명 보상을 갖는 모션 보상 예측 프로세스의 흐름도를 도시한다.
도 12는 일 실시예에 따라 로컬 조명 보상을 갖는 모션 보상 예측 프로세스의 흐름도를 도시한다.
도 13은 일 실시예에 따라 디코더 측 모션 벡터 정제 이전에 컴퓨팅된 로컬 조명 보상을 갖는 전체 디코딩 파이프라인을 도시한다.
도 14는 다중-가설의 원리를 예시한다.
도 15는 일 실시예에 따른 비디오 인코더의 블록도를 예시한다.
도 16은 일 실시예에 따른 비디오 디코더의 블록도를 예시한다.
도 17은 다양한 양상들 및 실시예들이 구현되는 시스템의 예의 블록도를 예시한다.
HEVC 코딩에서, 화상은 통상적으로 64x64의 구성 가능한 크기를 갖는 정사각형 형상의 CTU로 파티셔닝된다. 크기는 다른 비디오 코딩 표준들에서 128x128 또는 256x256일 수 있다. CTU는 동일한 크기의, 즉 폭 및 높이가 부모 블록 크기의 절반인 4개의 정사각형 코딩 유닛(CU)들로 파티셔닝되는 쿼드-트리의 루트이다. 쿼드-트리는 부모 노드가 4개의 자식 노드들로 분할될 수 있는 트리이며, 자식 노드들 각각은 4개의 자식 노드들로의 또 다른 분할의 경우에 부모 노드가 될 수 있다. HEVC에서, 코딩 블록(CB)은 하나의 CU에 대응하는 하나의 컬러 구성 요소의 샘플들을 포함한다. 이는 하나 이상의 예측 블록(PB)들로 파티셔닝되고 변환 블록들(TB)로 파티셔닝되는 쿼드-트리의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하게, 코딩 유닛(CU)은 예측 유닛들(PU) 및 트리-구조화된 세트의 변환 유닛들(TU)을 포함하고, PU는 모든 컬러 구성 요소들에 대한 예측 정보를 포함하고, TU는 각각의 컬러 구성 요소에 대한 잔여 코딩 신택스 구조를 포함한다. 루마(luma) 구성 요소의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다.
보다 최근의 인코딩 시스템들에서, CTU는 코딩 유닛들(CU)로 파티셔닝되는 코딩 트리의 루트이다. 코딩 트리는 (일반적으로 블록에 대응하는) 부모 노드가 자식 노드들(예컨대, 2, 3 또는 4개의 자식 노드들)로 분할될 수 있는 트리이며, 자식 노드들 각각은 자식 노드들로의 또 다른 분할의 경우에 부모 노드가 될 수 있다. 쿼드-트리 분할 모드 외에도, 가능한 분할 모드들의 총 수를 증가시키는 새로운 분할 모드(이진 트리 대칭 분할 모드들, 이진 트리 비대칭 분할 모드들 및 트리플 트리 분할 모드들)가 또한 정의된다. 코딩 트리는 고유한 루트 노드(예컨대, CTU)를 갖는다. 코딩 트리의 리프(leaf)는 트리의 종결 노드이다. 코딩 트리의 각각의 노드는 서브-블록이라고도 칭해지는 더 작은 블록들로 추가로 분할될 수 있는 블록을 표현한다. CU로의 CTU의 파티셔닝이 결정되면, 코딩 트리의 리프들에 대응하는 CU들이 인코딩된다. CU로의 CTU의 파티셔닝 및 각각의 CU(코딩 트리의 리프에 대응함)를 인코딩하는 데 사용되는 코딩 파라미터들은 레이트 왜곡 최적화 절차를 통해 인코더 측 상에서 결정될 수 있다.
본 출원에서, "블록" 또는 "화상 블록"이라는 용어는 CTU, CU, PU, TU, CB, PB 및 TB 중 임의의 하나를 지칭하기 위해 사용될 수 있다. 또한, "블록" 또는 "화상 블록"이라는 용어는 H.264/AVC에서 또는 다른 비디오 코딩 표준들에서 특정된 바와 같이 매크로블록, 파티션 및 서브-블록을 지칭하는 데, 보다 일반적으로 다양한 크기들의 샘플들의 어레이를 지칭하는 데 사용될 수 있다.
본 출원에서, "재구성된" 및 "디코딩된"이라는 용어들은 상호 교환 가능하게 사용될 수 있고, "픽셀" 및 "샘플"이라는 용어들은 상호 교환 가능하게 사용될 수 있고, "이미지", "화상" 및 "프레임"이라는 용어들은 상호 교환 가능하게 사용될 수 있다. 일반적으로, 반드시 그런 것은 아니지만, "재구성된"이라는 용어는 인코더 측에서 사용되는 반면, "디코딩된"은 디코더 측에서 사용된다.
본 출원에서, "인에이블되는" 및 "사용되는"이라는 용어들은 이들이 블록 레벨에서 코딩 도구에 적용되는 경우 상호 교환 가능하게 사용될 수 있다. 동일한 방식으로, "디스에이블되는" 및 "사용되지 않는"은 이들이 블록 레벨에서 코딩 도구에 적용되는 경우 상호 교환 가능하게 사용될 수 있다.
본 출원에서, "코딩 도구" 및 "코딩 프로세스"라는 용어들은 상호 교환 가능하게 사용될 수 있다.
최근의 인코딩 시스템들에서, 예컨대, 다용도 비디오 코딩(Versatile Video Coding; VVC)의 참조 소프트웨어(VTM로서 알려짐)에서, 디코딩 파이프라인은 여러 캐스캐이딩식 도구(cascaded tool)들을 포함한다. VVC에 대한 디코딩 파이프라인은 도 1a에서 도시된다. 디코딩 프로세스는 코딩 유닛(CU) 레벨에서 행해진다. CU는 C 정사각형 또는 직사각형 블록들을 포함한다(예컨대, YUV 또는 RGB 크로마(chroma) 포맷의 경우 C = 3임). 4:2:0 포맷에서, 2개의 크로마 블록들은 수평 및 수직 양 방향으로 2의 비(ratio)로 루마 블록에 대해 다운스케일링된다.
"엔트로피 디코딩" 프로세스는 비트스트림을 파싱하고 신택스 엘리먼트들 이를테면, 코딩 모드들(예컨대, 인터/인트라 코딩 모드) 및 연관된 파라미터들(예컨대, 인트라 방향, 인터 모션 벡터들(MV) 및 참조 인덱스들)을 디코딩한다.
모션 보상(MC)은 MC 필터들을 사용하여 참조 화상에서 하나 또는 두개의(이중 예측의 경우) 직사각형 블록(들)(현재 CU와 동일한 크기)의 샘플들을 보간하며, 변위는 현재 블록의 포지션에 대해 상대적으로 참조 화상에서 MV(mvX, mvY)와 동일하다.
로컬 조명 보상(Local Illumination Compensation; LIC)은 예측된 블록과 모션 보상(MC)된 시간 예측에 사용되는 그의 참조 블록 간에 발생할 수 있는 조명 변화를 보상하는 것을 목표로 한다. 이는 통상적으로 선형 IC 모델(a, b)을 사용하여 행해진다:
Figure pct00001
(수식 1)
여기서: Sref는 모션 보상된 참조 샘플 값이고 SIC는 예측된 샘플 값이다. LIC 파라미터들(a, b)은 LIC가 인에이블된 각각의 블록에 대해 컴퓨팅된다.
LIC 파라미터들(a, b)을 컴퓨팅하는 여러 방법들이 존재한다. 하나의 방법에서, 디코더는 일부 재구성된 화상 샘플들에 기초하여, 예컨대, 현재 블록의 좌측 및/또는 상단 상에서 로컬화된 재구성된 샘플들 "y" 및 모션 보상된 블록의 좌측 및/또는 상단 상에서 로컬화된 참조 화상 샘플들 "x"에 기초하여, LIC 파라미터들을 컴퓨팅한다(도 2a). 다른 방법에서, LIC 파라미터들은 현재 블록의 좌측 및/또는 상단 상에서 로컬화된 재구성된 샘플들 "y" 및 "y"를 재구성하는 데 사용되는 대응하는 예측 샘플들 "x"에 기초하여 컴퓨팅된다(도 2b). 이들 두 방법의 경우, 각각의 블록 재구성 후에 LIC 파라미터들이 컴퓨팅 및 저장될 수 있다. IC 파라미터들(a, b)은 샘플들 "y"와 "a.x + b" 간의 차이(예컨대, 최소 제곱 방법)를 최소화한다.
Figure pct00002
(수식 2)
이들 두 방법은 이하 "전통적인 LIC"로 칭해진다. LIC는 이웃 CU들의 재구성된 샘플을 사용하기 때문에 이웃 CU들과의 종속성을 도입한다. 결과적으로, 현재 CU는 현재 블록에 대한 LIC 파라미터들이 컴퓨팅되고 이에 따라 현재 블록이 재구성될 수 있기 전에 이웃 블록들이 완전히 재구성되기를 기다려야 한다(도 1a의 "기록 샘플 피드백(feedback rec. sample)" 참조).
이중-예측의 경우, LIC의 변형("bi-dir-IC"라 칭해짐)은 이중-예측에서 사용된 2개의 모션 보상된 블록들(block-0 및 block-1)로부터 직접 IC 파라미터들 (a0, b0) 및 (a1, b1)을 도출한다. 이는 현재 블록에 대한 IC 파라미터들 (a0, b0) 및 (a1, b1)을 도출하기 위해 2개의 참조 화상들 간의 조명 변화를 추정하는 것을 포함한다. 하나는 예컨대, 모션 보상된 block-1과 모션 보상된 block-0 사이의 LIC에 대한 IC 파라미터들(a, b)을 컴퓨팅한다. 다음 하나는 현재 화상, 참조 화상 0 및 참조 화상 1의 화상 순서 카운트들(POC) 및 값들(a, b)로부터 (a0, b0) 및 (a1, b1)을 도출한다. 값들(a0, a1, b0, b1)은 현재 프레임과 참조 화상들 사이의 시간적 거리의 선형 함수들이라는 것이 가정된다. 이 변형의 이점은 이웃 CU들과의 어떠한 종속성도 도입하지 않는다는 것이다.
이중-예측의 경우에, 양방향 광학 흐름(BIO)은 에르미트(Hermite)의 광학 흐름 보간을 사용하여 2개의 참조 화상들 사이의 선형 변위를 가정하여 각각의 샘플의 모션을 정제하는 것을 목표로 한다. 따라서 새로운 항
Figure pct00003
이 기존의 이중-예측에 추가된다:
Figure pct00004
(수식 3)
여기서:
I0, I1은 모션 보상 예측들(block-0 및 block-1)이고,
Figure pct00005
Figure pct00006
(k = {0,1})는 i번째 참조에 대한 수평 및 수직 구배들이고,
(vx, vy)는 block-1과 block-0 사이의 모션 벡터이고,
σ는 시간적 차이(POC1 ― POC0)이다.
이중-예측의 경우에, 디코더 측 모션 벡터 정제(Decoder Side Motion Vector Refinement; DMVR)는 디코딩된 MV 값들(MVinitial) 주위의 일부 변위들을 테스트함으로써 모션을 정제하는 것을 목표로 한다. 일 세트의 후보들의 여러 MV 쌍들(MVtested(L0), MVtested(L1))이 테스트된다. BIO에서와 같이, 테스트된 MV 값들은 초기 MV 값들 주위에서 대칭적인데, 즉 (MVtested(L0) ― MVinitial(L0) = MVtested(L1) ― MVinitial(L1))이며, 여기서 MVtested(L0)는 목록(L0)에 대해 테스트된 모션 벡터이고 MVtested(L1)는 목록(L1)에 대해 테스트된 모션 벡터이다. 선택된 MV 쌍은 예컨대, MRSAD(Mean-Removed Sum of Absolute Difference)들을 사용하여 차이 MC(ref0, MVtested(L0)) ― MC(ref1, MVtested(L1))를 최소화하는 것이다.
이중-예측의 경우에, 2개의 예측 블록들이 컴퓨팅되고 함께 평균화된다(일명, 이중-예측 평균). 일반화된 이중-예측(GBI)의 경우에, 다음과 같이 가중화된 합과 결합된다:
Figure pct00007
(수식 4)
여기서 P0, P1은 모션 보상 예측들(block-0 및 block-1)이다.
VTM에서, 사용할 가중치들은 표 1에서 언급된 값들을 취할 수 있는 "gbi-index"를 사용하여 CU마다 코딩된다.
GBi 인덱스 w 1 의 가중치 값 g w 1 gs ( 시프트 ) GBi 인덱스의 이진화
0 -1/4 -1 2 0000
1 3/8 3 3 001
2 1/2 1 1 1
3 5/8 5 3 01
4 5/4 5 2 0001
표 1: GBi 인덱스 및 연관된 가중치들의 이진화.
이하, 가중치 쌍 {½; ½}은 디폴트 가중치들이라 칭해질 것이다.
도 1a에서, LIC 프로세스는 각각의 단-방향 모션 보상 예측들에 대한 이중-예측 평균화 전에 적용된다. 변형에서, LIC 프로세스(720)는 도 1b에 도시된 바와 같이 이중-예측 평균화(710) 후에 적용된다.
중첩 블록 모션 보상(Overlapped Block Motion Compensation; OBMC) 도구(여기서 이하 "OBMC 프로세스"라 칭해짐)에 따르면, 이웃 블록들의 모션은 이웃 블록들(PN)(N = A 또는 L)의 예측을 확장하고 현재 블록 예측(PC)과의 가중화를 점진적으로 수행하는 데 사용된다(도 3). 예컨대, 위 블록의 위 예측 샘플(x = {0,… W-1}, y = {0, .. HA-1})을 PA(x, y)로 표시한다. 이러한 샘플들은 하단에 부가적인 B 행들로 확장된다. PA(x, y)(x = {0,… W-1}, y = {HA,.. HA+B-1})는 PA의 다른 예측 샘플들과 동일한 프로세스(MC) 및 동일한 모션 정보로 컴퓨팅된다. PC(x, y)를 현재 예측 POBMC 샘플들(x = {0,… W-1}, y = {0, .. HC-1})로 표시하면, 현재 블록의 샘플들의 상위 B개의 행들에 대한 예측은 최종적으로 다음과 같이 컴퓨팅된다:
Figure pct00008
(수식 5)
좌측 블록 데이터로부터 구축된 PL(x, y) 샘플들에 기초하여 좌측 B 열들의 예측 샘플에 대해서도 동일한 프로세스가 적용된다.
이웃 블록(N)이 그의 예측을 위해 LIC 및/또는 BIO를 사용하는 경우에, 부가적인 PN 샘플들(이하 "OBMC 프로세스"라 칭해짐)이 LIC 및 BIO를 적용함으로써 획득될 수 있다.
예컨대, 경계로부터 현재 블록 중심까지의 일반적인 점진적 가중치들은 PN 및 PC에 대해 각각 wC(y)={1/4, 1/8, 1/16, 1/32} 및 wN(y)={3/4, 7/8, 15/16, 31/32}이다.
일반적인 다중-가설(Multi-Hypothesis) 개념은 도 4에 도시된 바와 같이 병합 모드에서 수행된 인터 예측 및 인트라 예측 모드 또는 다른 인터 모드(예컨대, 단일-예측 AMVP, 건너뛰기 및 병합)의 조합을 포함한다. 병합 모드에서, 병합 후보들의 목록(참조 인덱스, 모션 값들)이 구축되고 하나의 후보를 식별하는 병합 인덱스가 시그널링된다. 그 후, 병합 모드에서 블록의 모션 정보는 병합 인덱스에 의해 식별된 후보로부터 도출되고 모션 보상 예측에 사용된다. 최종 예측은 병합 인덱싱된 예측 및 인트라 예측 모드에 의해 생성된 예측의 가중 평균이며, 여기서 조합들에 의존하여 상이한 가중치들이 적용된다. 인트라 예측 모드는 비트스트림에서 시그널링된다. 특정 실시예에서, 인트라 예측 모드는 모든 고전적 예측 모드들의 서브세트(예컨대, 4와 동일한 서브세트 크기)에서 선택된다. 현재 블록은 4개의 동일-영역 구역들로 분할된다. 구역이 인트라 참조 샘플들로부터 멀어짐에 따라 가중치들은 점진적으로 감소한다. (w_intrai, w_interi)(여기서 i는 1 내지 4이고 (w_intra1, w_inter1) = (6, 2), (w_intra2, w_inter2) = (5, 3), (w_intra3, w_inter3) = (3, 5), 및 (w_intra4, w_inter4) = (2, 6)임)로서 표시되는 각각의 가중치 세트는 인트라 수직 방향 예측을 위해 도 4 및 도 14의 예에 도시된 바와 같이 대응하는 구역에 적용될 것이다. DC 또는 평면 모드가 선택되거나 CU 폭 또는 높이가 4보다 작을 때, 전체 CU에 대해 동일한 가중치들이 적용된다.
기하학적(예컨대, 삼각형) 모드들은 코딩 전에 화상을 블록들로 파티셔닝하는 데 더 많은 유연성을 허용한다. 이러한 파티셔닝의 예들은 도 5의 상단 상에서 도시된다. 부가적인 코딩 성능은 도 5의 하단 상에서 예시된 바와 같이 접경들(도 5 상의 회색 영역) 상에서 2개의 예측자들의 가중화를 수행함으로써 획득될 수 있다. 이 가중화 프로세스는 GBI 또는 LIC와 같은 다른 가중치들과 캐스케이딩되고 구현 복잡성을 증가시킬 수 있다.
"재구성-후" 필터들(730)은 CU 루프 재구성에서 현재 CU의 재구성된 샘플들을 필터링할 수 있게 하여서, 필터링된 샘플들은 동일한 화상(또는 동일한 슬라이스 또는 동일한 타일)에서 후속 CU들에 대한 LIC 파라미터 도출 또는 인트라 예측에 사용될 수 있다. 반면, "다른 포스트-필터들"(740)(예컨대, 디블로킹 필터, SAO 필터 또는 ALF 필터)는 전체 화상(또는 슬라이스 또는 타일)이 재구성된 후 재구성된 샘플들을 필터링한다. "재구성-후" 필터들의 예들은 양방향성 필터들이다(J. Strom 등, "CE14: Reduced latency, LUT-free bilateral filter," 문서 JVET-L0172, 12th Meeting: Macao, CN, 3-12 Oct. 2018), 하다마르 필터들(S. Ikonen 등, "Non-CE: Hadamard transform domain filter," 문서 JVET-M0468, 13th Meeting: Marrakech, MA, 9-18 Jan. 2019) 또는 확산 필터들(J. Rash 등, "CE10: Uniform Directional Diffusion Filters For Video Coding," 문서 JVET-M0042, 13th Meeting: Marrakech, MA, 9-18 Jan. 2019).
변형에서, "재구성-후" 필터들은 인터 모드에서 코딩된 CU에만 적용되며, 도 1c에 도시된 바와 같이 인트라 또는 결합된 인트라 및 인터 예측들에서 코딩된 CU에 대해서는 적용되지 않는다. 다른 변형에서 "재구성-후" 필터들은 인트라 모드에서만 코딩된 CU에 적용되지만 인터 모드에서는 적용되지 않는다. "재구성-후" 필터들의 적용은 현재 CU 크기, QP 값 또는 구성 요소 유형과 같은 다른 파라미터들을 조건부로 할 수 있다(예컨대, "재구성-후" 필터들은 730의 점선 크로마 박스로 표시된 바와 같은 크로마 구성 요소에 적용되지 않음).
새로운 비디오 코덱들은 코딩 효율성을 개선하기 위해 캐스케이딩될 수 있는 증가된 수의 코딩 도구들을 구현한다. 일부 경우들에서, 동일한 성질의 캐스케이딩 도구들은 역효과를 낳을 수 있는데 즉, 코딩 효율성을 감소시킬 수 있고, 이는 또한 디코딩 프로세스의 파이프라인에 부담을 줄 수 있다.
적어도 하나의 실시예는 합리적인 파이프라인 복잡성을 보장함으로써 다양한 플랫폼들 상의 비디오 코덱들의 구현을 돕고 상이한 코딩 도구들 간의 상호작용들을 조화시키는 것을 제안한다. 적어도 하나의 실시예는 전체 코덱 성능을 저하시키지 않으면서 일부 규칙들 및 제한들을 적용하는 것을 제안한다.
적어도 하나의 실시예는 예컨대, 일부 도구들의 상호 공동-활성화에 있어 제한들을 추가함으로써 "인터" 코딩에서 일부 도구들에 의해 도입된 파이프라인 종속성 및 파이프라인 크기(프로세싱 스테이지의 수) 둘 모두를 감소시키는 것을 제안한다.
파이프라인 종속성을 감소시키기 위해, "인터" 디코딩 파이프라인이 수정된다.
도 6은 일 실시예에 따른 디코딩 방법의 흐름도를 도시한다.
현재 블록에 대한 파라미터들이 디코딩된다(S100). 다음 조건들: 상기 현재 블록에 대해 제1 코딩 도구가 사용되는 것(예컨대, GBI가 디폴트 가중치들이 아닌 가중치들과 함께 사용됨) 및 디코딩된 파라미터에 대한 주어진 조건(블록 크기가 값 미만임)이 검증되는 것 중 하나 이상이 검증되는 경우에 현재 블록에 대해 코딩 도구(예컨대, LIC)가 디스에이블된다(S110). 그렇지 않으면, 코딩 도구는 현재 블록에 대해 인에이블된다. 코딩 도구가 인에이블될지 여부를 고려하여 현재 블록이 디코딩된다(S120). 코딩 도구가 인에이블된 경우, 현재 블록은 코딩 도구를 사용하여 디코딩된다. 그렇지 않으면, 현재 블록이 코딩 도구를 사용하지 않고 디코딩된다.
도 7은 일 실시예에 따른 인코딩 방법의 흐름도를 도시한다. 현재 블록에 대한 파라미터들이 획득된다(S200). 다음 조건들: 상기 현재 블록에 대해 제1 코딩 도구가 사용되는 것(예컨대, GBI가 디폴트 가중치들이 아닌 가중치들과 함께 사용됨) 및 디코딩된 파라미터에 대한 주어진 조건(블록 크기가 값 미만임)이 검증되는 것 중 하나 이상이 검증되는 경우 현재 블록에 대해 코딩 도구(예컨대, LIC)가 디스에이블된다(S210). 그렇지 않으면, 코딩 도구는 상기 현재 블록에 대해 인에이블된다. 코딩 도구가 인에이블될지 여부를 고려하여 현재 블록이 인코딩된다(S220). 코딩 도구가 인에이블된 경우, 현재 블록은 코딩 도구를 사용하여 인코딩된다. 그렇지 않으면, 현재 블록은 코딩 도구를 사용하지 않고 인코딩된다.
코딩 도구의 디스에이블은 현재 코딩 유닛(CU)의 일부 특성들 및/또는 도 8a 내지 도 8c에 의해 예시된 바와 같이 다른 코딩 도구 "X"이 사용되는지 여부(406, 408)를 조건부로 할 수 있다.
도 8a에서, CU 파라미터들이 디코딩된다(400). CU 파라미터들에 대한 조건이 검증된 경우(410), 예컨대, CU 크기가 값 미만인 경우에, 코딩 도구/프로세스 "Y"(420)가 디스에이블된다.
도 8b에서, CU 파라미터들이 디코딩된다(400). 제1 코딩 도구 "X"가 현재 CU에 대해 사용되는 경우(406), 제1 코딩 도구가 적용된다(408). CU 파라미터들에 대한 조건이 추가로 검증된 경우(410), 예컨대, CU 크기가 값 미만인 경우에, 제2 코딩 도구/프로세스가 디스에이블된다. 그렇지 않으면 제2 코딩 도구가 사용된다(420).
변형에서, 제1 코딩 도구 "X"가 현재 CU에 대해 사용되는 경우(406), 제1 코딩 도구가 적용되고(408), 제2 코딩 도구 "Y"가 디스에이블된다. 이 변형에서, CU에 대한 조건은 체크되지 않는다.
도 8c에서, CU 파라미터들이 디코딩된다(400). 제1 코딩 도구 "X"가 현재 CU에 대해 사용되고(406) CU 파라미터들에 대한 조건이 검증된 경우(410), 제2 코딩 도구 "Y"가 디스에이블된다. 그렇지 않으면 제2 코딩 도구가 사용된다(420). 점선은 코딩 도구 "X"의 적용이 406에 의해 좌우됨을 의미한다.
변형들은 "조건(CU)"의 표현 및 도구들 "X" 및 "Y"의 프로세스 순서로부터 구축된다(도 8의 B 또는 C). "조건(CU)"은 이전에 디코딩된 데이터로부터 도출되고(400) 다음 규칙들의 조합일 수 있다:
- 작은 블록들(CU 크기가 값 미만임)에 대해 도구 "X"를 디스에이블함
- 크로마(CU 구성 요소는 크로마임)에 대해 도구 "X"를 디스에이블함,
- 현재 슬라이스가 값보다 더 높은 TiD(Temporal Identifier)를 갖는 경우 도구 "X"를 디스에이블함,
- 다른 CTU에 로케이팅되거나 현재 VPDU(Virtual Pipeline Data Unit) 외부에 있는 다른 재구성된 블록으로부터의 정보(예컨대, 재구성된 샘플들)가 요구되는 경우 도구 "X"를 디스에이블함.
다중-가설 모드에 대한 파이프라인 종속성의 감소
도 9는 입력 비트-심도 또는 내부 비트-심도가 10 비트와 동일한 경우 그리고 이중-예측, BIO 및 GBI가 또한 사용되는 경우 MH에 대한 VVC 소프트웨어 인터-예측 파이프라인 프로세스를 도시한다. 먼저, 2개의 참조 블록 예측들을 구축하기 위해 모션 보상이 적용된다(500). 결과는 추가의 프로세스들(예컨대, N = 14-비트), 즉 BIO(520) 및 GBI 가중화(530)에서 더 높은 정밀도를 유지하기 위해 N-비트(여기서 N > 10)에 저장된다(510). 다음으로, 샘플 값들은 내부 비트-심도(예컨대, 10-비트)에 저장(예컨대, 우측 시프트)(540)되고 클리핑(550)되어서, 후속 MH 프로세스(560)가 내부 비트-심도(예컨대, 10-비트)로 수행된다.
도 9에 도시된 바와 같이, "다중-가설"(MH)은 부가적인 "인트라" 또는 "인터" 예측 계산을 사용하고 이를 다른 예측과 결합하기 때문에, 인터 파이프라인에서 프로세싱 단계들의 수가 증가된다. 다음 제한들 중 하나 이상에 의해 파이프라인이 완화될 수 있다.
일 실시예에서, LIC는 MH가 사용되는 경우에 하나 또는 모든 인터 모드들에 대해 디스에이블된다. 즉, 현재 인터 모드가 "병합"이고 MH가 사용되기 때문에 LIC가 디스에이블된 경우, IC-플래그는 병합되는 것이 아니라 0으로 추론된다는 것을 의미한다. IC-플래그는 블록에 대해 LIC가 사용되는지 여부를 표시하는 파라미터이다.
일 실시예에서, 도 10에 도시된 바와 같이 MH가 사용되는 경우 인터 이중-예측이 디스에이블된다. 또한, BIO는 이중-예측에만 적용되기 때문에 (설계상) 디스에이블된다.
일 실시예에서, 삼각형 모드는 MH가 사용되는 경우에 디스에이블된다. 실제로, 도 5에서 도시된 바와 같이 2개의 삼각형 예측들에 대한 가중화 프로세스가 이미 있다.
또한, 증가된 비트-심도 정밀도로 인터 예측에 인트라 예측을 추가할 때 그리고 클리핑 동작 이전에 MH 조합 스테이지가 개선될 수 있다. 도 10에서, MH 프로세스는 N-비트들로 수행된다.
LIC에 대한 파이프라인 종속성의 감소:
도 11은 입력 비트-심도 또는 내부 비트-심도가 10 비트와 동일한 경우 그리고 이중-예측이 또한 사용되는 경우 LIC에 대한 VVC 소프트웨어 인터-예측 파이프라인 프로세스를 도시한다. 먼저, 2개의 참조 블록 예측들을 구축하기 위해 모션 보상이 적용된다(600). 결과는 내부 비트-심도 정밀도(예컨대, 10-비트)에 저장된다(610). 다음으로, LIC 파라미터들이 이전에 저장된 데이터로부터 추정되거나 리트리빙되고 조명 보상이 적용된다(670). 이는 가중화 외에도, 오프셋을 추가하는 것을 포함한다. 다음으로 내부 비트-심도(10-비트)의 우측 시프트(640) 및 클리핑(650)이 적용된다. 샘플들은 그 후 GBI 가중치들을 적용(630)하기 전에 N-비트 정밀도로 변환된다(680).
Figure pct00009
(수식 6)
여기서: (a;b)는 LIC 파라미터들이고,
P는 모션 보상 블록 샘플이고,
shiftLC는 우측 시프트여서, PLIC은 10-비트이고,
PLIC은 LIC를 갖는 예측 샘플들이다.
다음으로 샘플 값들은 내부 비트-심도(예컨대, 10-비트)로 저장(예컨대, 우측 시프트)(640) 및 클리핑(650)된다.
기본적으로, LIC는 도 11에 도시된 바와 같이, 다른 이웃 재구성된 블록들과의 파이프라인 종속성을 도입하고 모션 보상 후 단계를 추가하여 조명을 변경한다. 이 종속성은 다음 제약들/제한들 중 하나 이상을 사용함으로써 감소될 수 있다.
일 실시예에서, LIC는 크로마 구성 요소 및/또는 작은 블록들(CU 크기가 값 미만임)에 대해 디스에이블된다.
일 실시예에서, GBI는 크로마 구성 요소 및/또는 작은 블록들(CU 크기가 값 미만임)에 대해 디스에이블된다(또는 GBI 가중치들은 디폴트 가중치들로 세팅됨).
LIC의 원리는 모션 보상에 의해 획득된 예측 샘플들을 가중화하는 것이므로, 이는 가중치들이 디폴트 가중치들과 동일하지 않을 때 GBI와 일부 유사성들을 갖는다.
일 실시예에서, LIC는 GBI 가중치들이 디폴트 가중치들이 아닌 경우에 이중-예측에서 디스에이블된다. 따라서 GBI-인덱스가 디폴트들과 상이한 경우 IC-플래그는 코딩되지 않는다. 병합 모드에서, GBI-인덱스가 상속되면, IC-플래그는 GBI 가중치들이 디폴트들이 아닌 경우 거짓인 것으로 추론된다. 변형에서, IC-플래그가 상속되고 해당 값이 참인 경우, GBI 가중치들은 디폴트 가중치들인 것으로 추론된다. 변형에서, GBI 가중치들이 디폴트가 아닌 경우, 종래의 LIC 대신 bi-dir-IC가 사용된다.
일 실시예에서, IC-플래그가 코딩되고 IC-플래그가 참인 경우, GBI-인덱스는 코딩되지 않고 GBI 가중치들은 디폴트 가중치들인 것으로 추론된다. 변형에서, 병합 모드에서, IC-플래그가 상속되고 해당 값이 참인 경우, GBI 가중치들은 디폴트 가중치들인 것으로 추론된다.
신택스의 예가 표 2에 제공된다.
Figure pct00010
표 2: GBI-인덱스의 코딩이 IC_flag 값을 조건부로 하는 경우 예시적인 코딩 유닛 신택스
일 실시예에서, GBI 가중치들이 디폴트 가중치들이 아닌 경우에, 현재 CU가 "병합" 모드에서 코딩되더라도 IC-플래그가 코딩된다.
일 실시예에서, 재구성된 샘플들 "recN"이 비-디폴트 GBI 가중치로 코딩된 하나의 이웃 CU(N이라 칭함)에 속하는 경우 LIC는 디스에이블된다.
가상 파이프라인 데이터 유닛(Virtual Pipeline Data Unit; VPDU)은 화상에서 비-중첩 MxM-luma(L)/NxN-chroma(C) 유닛으로 정의된다. 하드웨어 디코더들에서, 연속적인 VPDU들은 다수의 파이프라인 스테이지들에 의해 동시에 프로세싱된다. 상이한 스테이지들이 상이한 VPDU들을 동시에 프로세싱한다. 통상적으로, VPDU는 64x64-luma/32x32-chroma 블록이다. 다음 3개의 조건들이 검증되어야 한다:
- 하나 또는 다수의 CU들을 포함하는 각각의 VPDU에 대해, CU들은 VPDU에 완전히 포함된다.
- 하나 이상의 VPDU들을 포함하는 각각의 CU에 대해, VPDU들은 CU에 완전히 포함된다.
- CU들의 프로세싱 순서는 VPDU를 떠나 나중에 VPDU를 재방문하지 않아야 한다.
LIC로 인해 도입된 블록 재구성 종속성은, 통상적으로 기본 CU 디코딩을 위한 하드웨어 및/또는 구현 메모리 캐시 제약/제한과 관련되고 하드웨어가 올인원(all-in-one)으로 프로세싱할 수 있는 최대 샘플 구역 크기와 추가로 관련되는 하나의 VPDU 또는 하나의 CTU에 대응하는 캐시 메모리의 데이터에 대해 용인 가능할 수 있다.
일 실시예에서, LIC 파라미터들을 도출하기 위해 사용되는 이웃 블록들(N)의 재구성된 샘플들 "recN"이 CTU 또는 VPDU 외부에 있는 경우 LIC는 디스에이블된다. 변형에서, LIC가 사용될 수 있지만 현재 CTU 또는 VPDU 내부의 재구성된 샘플들만을 사용한다.
일 실시예에서, 현재 블록의 코딩 모드가 "병합"이고, 병합 인덱스가 이웃(N)이 병합에 사용됨을 표시하는 경우, 이 블록은 참과 동일한 IC-플래그를 갖고(IC 파라미터들은 ICN으로 표시됨), "recN" 샘플들이 CTU 또는 VPDU 외부에 있는 경우, IC-플래그는 현재 블록에 대해 참이고 이는 현재 LIC 파라미터들을 도출하기 위해 "recN" 샘플들을 사용하는 대신, 현재 블록의 예측을 구축하기 위해 ICN(이웃 블록(N)에 의해 사용하는 LIC 파라미터들)을 재사용한다.
일 실시예에서, LIC은 증가된 정밀도(670)로 컴퓨팅되는데, 즉, 도 12에 도시된 바와 같이 샘플 정밀도는 LIC 프로세스 후에 N-비트들이고 샘플들은 예측 프로세스의 끝에서만 클리핑되도록 shiftLIC(수식 6)이 세팅된다.
"재구성-후" 필터들에 대한 파이프라인 종속성의 감소:
일 실시예에서, LIC 프로세스 및 "재구성-후" 필터링 프로세스는 각각의 구성 요소에 대해 상호 배타적이거나(즉, LIC가 하나의 구성 요소에 대해 인에이블된 경우, "재구성-후" 필터는 이 구성 요소에 대해 디스에이블됨) 또는 모든 구성 요소에 대해 배타적이다(즉, LIC가 모든 구성 요소들에 대해 인에이블된 경우, "재구성-후" 필터는 모든 구성 요소들에 대해 디스에이블됨).
"재구성-후"가 하나의 구성 요소(예컨대, 크로마)에 적용되지 않으면, LIC가 현재 CU에 대해 디스에이블되는 경우(예컨대, LIC 플래그가 거짓임), "재구성-후"는 다른 구성 요소(예컨대, 루마)에 대해서만 적용될 수 있다.
예컨대, LIC가 인에이블되고 그리고/또는 현재 CU에 적용되는 경우(예컨대, LIC 플래그가 참이고, 추론되거나 코딩됨), 도 1d에 도시된 바와 같이, 재구성-후 필터링이 모든 구성 요소들에 대해 디스에이블된다.
다른 예에서, LIC 프로세스가 구성 요소당 인에이블될 수 있으면(예컨대, 하나의 LIC 플래그가 루마에 대해 추론 또는 코딩되고 다른 LIC 플래그가 크로마에 대해 추론 또는 코딩됨), "재구성-후" 필터링 프로세스는 LIC 플래그가 하나의 구성 요소에 대해 인에이블된 경우 이 구성 요소에 대해 디스에이블된다.
OBMC에 대한 파이프라인의 감소:
화상에서 작은 블록들의 수가 많을 때, OBMC는 작은 블록들에 대해 낮은 코딩 효율성을 가질 수 있는 반면, 샘플 당 평균 프로세싱 양이 크게 증가된다. 다음 제한들 중 하나 이상에 의해 파이프라인이 완화될 수 있다.
일 실시예에서, OBMC는 작은 블록들(예컨대, 4x4)에 대해 디스에이블된다(즉 사용되지 않음). 일 실시예에서, OBMC는 크로마 블록들에 대해 수행되지 않는다. 일 실시예에서, OBMC는 현재 블록이 LIC를 사용하는 경우 디스에이블된다(즉 사용되지 않음). 일 실시예에서, LIC는 OBMC 프로세스에서 사용되지 않는다. 일 실시예에서, BIO는 OBMC 프로세스에서 사용되지 않는다.
BIO에 대한 파이프라인의 감소:
일 실시예에서, GBI 가중치들이 디폴트들이 아닌 경우 BIO는 디스에이블된다.
BIO 및 DMVR은 MV들을 정제하는 동일한 목적을 가진 2개의 기술들이다. 따라서 BIO는 DMVR가 현재 블록에 대해 사용되는 경우 디스에이블되고 그 반대의 경우도 마찬가지다(상호 배제).
DMVR에 대한 파이프라인의 감소:
최신 기술에서, LIC는 DMVR의 경우에 디스에이블된다. 실제로, 테스트될 각각의 MV에 대한 LIC 파라미터들의 계산을 포함하는 LIC의 인에이블은 컴퓨테이션 양을 크게 증가시킨다. 도 1에 도시된 바와 같이, LIC 없이 DMVR을 수행하고 DMVR 스테이지 이후 LIC 프로세스를 인에이블하는 것이 제안되었다. 그러나 DMVR은 LIC를 포함하지 않기 때문에, MV 정제의 정확도가 크게 감소된다. 이러한 제한에 대처하기 위해, DMVR 프로세스에서 LIC 파라미터들을 정제하는 것이 아니라 MVinitial 값들(DMVR을 통한 MV 정제 이전)로 LIC 파라미터 계산을 수행하는 것이 제안되는데 즉, LIC 파라미터들은 도 13에 도시된 바와 같이 DMVR 프로세스에서 또는 그 후에 컴퓨팅되지 않는다.
디블로킹 -필터에 대한 파이프라인의 감소:
일 실시예에서, DBF 강도는 OBMC가 하나의 에지 상에 적용되는 경우 및/또는 이 에지가 LIC 또는 BIO 인에이블된 하나의 블록에 속하는 경우 이 에지 상에서 감소된다.
이 애플리케이션은 도구들, 특징들, 실시예들, 모델들, 접근법들 등을 포함하는 다양한 양상들을 설명한다. 이러한 양상들 중 다수는 구체적으로 설명되며, 적어도, 개별 특성을 보여주기 위해 종종 제한적으로 받아들여질 수 있는 방식으로 설명된다. 그러나 이는 설명의 명확성을 위한 것이며 이러한 양상들의 적용 또는 범위를 제한하지 않는다. 실제로, 상이한 양상들 전부는 결합되고 상호교환되어 추가의 양상들을 제공할 수 있다. 또한, 양상들은 이전 기록물들에서 설명한 양상들과 결합 및 상호 교환될 수 있다.
본 출원에서 설명되고 고려되는 양상들은 다수의 상이한 형태들로 구현될 수 있다. 아래의 도 15, 도 16 및 도 17은 일부 실시예들을 제공하지만, 다른 실시예들이 고려되며, 도 15, 도 16 및 도 17의 논의는 구현들의 폭을 제한하지 않는다. 양상들 중 적어도 하나는 일반적으로 비디오 인코딩 및 디코딩에 관한 것이고, 적어도 하나의 다른 양상은 일반적으로, 생성되거나 인코딩된 비트스트림을 송신하는 것에 관한 것이다. 이런 및 다른 양상들은 방법, 장치, 설명된 방법들 중 임의의 것에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장되어 있는 컴퓨터 판독 가능 저장 매체 및/또는 설명된 방법들 중 임의의 것에 따라 생성된 비트스트림이 저장되어 있는 컴퓨터 판독 가능 저장 매체로서 구현될 수 있다.
다양한 방법들이 본원에서 설명되고, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용이 수정되거나 결합될 수 있다.
본 출원에서 설명된 다양한 방법들 및 다른 양상들은 다양한 모듈들 예컨대, 도 15 및 도 16에 도시된 바와 같은 비디오 인코더(100) 및 디코더(200)의 모션 보상 모듈들(170, 275), 모션 정제 모듈들(190, 290), LIC 모듈들(195, 295), 다중 예측 조합 모듈들(105, 270)을 수정하는 데 사용될 수 있다. 또한, 본 양상들은 VVC 또는 HEVC로 제한되지 않으며, 예컨대, 이미 존재하든 또는 향후 개발되든지 간에 다른 표준들 및 권고들, 및 이러한 표준들 및 권고들(VVC 및 HEVC 포함)의 확장들에 적용될 수 있다. 달리 표시되지 않거나 기술적으로 배제되지 않는 한, 본 출원에서 설명된 양상들은 개별적으로 또는 조합하여 사용될 수 있다.
본 출원에서는 다양한 수치 값들이 사용된다. 특정 값들은 예시를 위한 것이며 설명된 양상들은 이러한 특정 값들로 제한되지 않는다.
도 15는 인코더(100)를 예시한다. 이 인코더(100)의 변동들이 고려되지만, 인코더(100)는 모든 예상되는 변동들을 설명하지 않고 명확성을 위해 아래에서 설명된다.
인코딩되기 전에, 비디오 시퀀스는 사전-인코딩 프로세싱(101)을 거치는데, 예컨대, 입력 컬러 화상에 컬러 변환을 적용(예컨대, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환)하거나 또는 (예컨대, 컬러 구성 요소들 중 하나의 히스토그램 균등화(histogram equalization)를 사용하여) 압축에 보다 탄력적인 신호 분포를 획득하기 위해 입력 화상 구성 요소들의 리맵핑(remapping)을 수행할 수 있다. 메타데이터는 사전-프로세싱과 연관되고 비트스트림에 부착될 수 있다.
인코더(100)에서, 화상은 아래에서 설명되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 화상은 파티셔닝되고(102), 예컨대, CU들의 유닛들로 프로세싱된다. 각각의 유닛은 예컨대, 인트라 또는 인터 모드를 사용하여 인코딩된다. 유닛이 인트라 모드에서 인코딩될 때, 유닛은 인트라 예측을 수행한다(160). 인터 모드에서, 모션 추정(175), 가능하면, 모션 정제(190), 모션 보상(170) 및 가능하면, 조명 보상(195)이 수행된다. 모션 정제는 DMVR 또는 BIO를 사용할 수 있다. 인코더는 유닛을 인코딩하는 데 인트라 모드 또는 인터 모드 중 어느 하나를 사용할지를 판단하고(105), 예컨대, 예측 모드 플래그에 의해 인트라/인터 판단을 표시한다. 인코더는 또한 예컨대, MH 모드에서 또는 양방향 예측 모드에서 여러 예측들을 결합(105)할 수 있다. 예측 잔차들은 예컨대, 오리지널 이미지 블록으로부터 예측된 블록을 차감(110)함으로써 계산된다.
그 후, 예측 잔차들이 변환(125) 및 양자화된다(130). 양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 엘리먼트들은 비트스트림을 출력하기 위해 엔트로피 코딩(145)된다. 인코더는 변환을 건너뛰고 변환되지 않은 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 변환 및 양자화를 둘 모두 우회할 수 있는데 즉, 변환 또는 양자화 프로세스들의 적용 없이 잔차가 직접 코딩된다.
인코더는 추가의 예측을 위한 참조를 제공하기 위해 인코딩된 블록을 디코딩한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화(140) 및 역변환(150)된다. 디코딩된 예측 잔차들 및 예측된 블록을 결합(155)하면, 이미지 블록이 재구성된다. 인-루프 필터들(165)은 예컨대, 인코딩 아티팩트들을 감소시키도록 디블로킹/샘플 적응식 오프셋(Sample Adaptive Offset; SAO) 필터링을 수행하기 위해 재구성된 화상에 적용된다. 필터링된 이미지는 참조 화상 버퍼(180)에 저장된다.
도 16은 비디오 디코더(200)의 블록도를 예시한다. 디코더(200)에서, 비트스트림은 아래에서 설명되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 일반적으로, 도 15에서 설명된 바와 같이 인코딩 패스(encoding pass)에 상반되는 디코딩 패스를 수행한다. 인코더(100)는 또한 일반적으로 비디오 데이터의 인코딩의 부분으로서 비디오 디코딩을 수행한다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은 변환 계수들, 모션 벡터들 및 다른 코딩된 정보를 획득하기 위해 먼저 엔트로피 디코딩(230)된다. 화상 파티션 정보는 화상이 어떻게 파티셔닝되는지를 표시한다. 따라서 디코더는 디코딩된 화상 파티셔닝 정보에 따라 화상을 분할(235)할 수 있다. 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화(240) 및 역변환(250)된다. 디코딩된 예측 잔차들 및 예측된 블록을 결합(255)하면, 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(260), 모션 보상 예측(즉, 인터 예측)(275) 또는 여러 예측들의 조합(270)(예컨대, MH 모드에서 또는 양방향 모드에서)으로부터 획득될 수 있다. 모션 보상 예측은 추가로 조명에서 보상될 수 있다(295). 인코더로서, 디코더는 (예컨대, DMVR 또는 BIO 사용하여) 디코딩된 모션 벡터들(290)을 정제하도록 구성된 모듈을 또한 포함할 수 있다. 인-루프 필터들(265)이 재구성된 이미지에 적용된다. 필터링된 이미지는 참조 화상 버퍼(280)에 저장된다.
디코딩된 화상은 추가로, 디코딩-후 프로세싱(285), 예컨대, 역 컬러 변환(예컨대, YCbCr 4:2:0로부터 RGB 4:4:4로의 변환) 또는 사전-인코딩 프로세싱(101)에서 수행된 리맵핑 프로세스의 역을 수행하는 역 리맵핑을 거칠 수 있다. 디코딩-후 프로세싱은 사전-인코딩 프로세싱에서 도출되고 비트스트림에서 시그널링되는 메타데이터를 사용할 수 있다.
도 17은 다양한 양상들 및 실시예들이 구현되는 시스템의 예의 블록도를 예시한다. 시스템(1000)은 아래에 설명된 다양한 구성 요소들을 포함하는 디바이스로서 구체화될 수 있으며 이 문서에 설명된 양상들 중 하나 이상을 수행하도록 구성된다. 이러한 디바이스들의 예들은 개인용 컴퓨터들, 랩톱 컴퓨터들, 스마트 폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 레코딩 시스템들, 연결된 가전 제품들 및 서버들과 같은 다양한 전자 디바이스들을 포함한다(그러나 이에 제한되지 않음). 시스템(1000)의 요소들은 단독으로 또는 조합하여, 단일 집적 회로(IC), 다수의 IC들 및/또는 별개의 구성 요소들에서 구체화될 수 있다. 예컨대, 적어도 하나의 실시예에서, 시스템(1000)의 프로세싱 및 인코더/디코더 요소들은 다수의 IC들 및/또는 별개의 구성 요소들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(1000)은 예컨대, 통신 버스를 경유하여 또는 전용 입력 및/또는 출력 포트들을 통해 하나 이상의 다른 시스템들 또는 다른 전자 디바이스들에 통신 가능하게 커플링된다. 다양한 실시예들에서, 시스템(1000)은 이 문서에서 설명된 양상들 중 하나 이상을 구현하도록 구성된다.
시스템(1000)은 예컨대, 이 문서에서 설명된 다양한 양상들을 구현하기 위해 그 안에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1010)를 포함한다. 프로세서(1010)는 임베디드 메모리, 입력 출력 인터페이스 및 당 업계에 알려진 바와 같은 다양한 다른 회로들을 포함할 수 있다. 시스템(1000)은 적어도 하나의 메모리(1020)(예컨대, 휘발성 메모리 디바이스 및/또는 비-휘발성 메모리 디바이스)를 포함한다. 시스템(1000)은 전기적으로 소거 가능한 판독-전용 메모리(EEPROM), 판독-전용 메모리(ROM), 프로그래밍 가능 판독-전용 메모리(PROM), 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 플래시, 자기 디스크 드라이브 및/또는 광학 디스크 드라이브를 포함하는(그러나 이에 제한되지 않음) 비-휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(1040)를 포함한다. 저장 디바이스(1040)는 비-제한적인 예들로서 내부 저장 디바이스, 부착된 저장 디바이스(분리형 및 비-분리형 저장 디바이스들을 포함함) 및/또는 네트워크 액세스 가능 저장 디바이스들을 포함할 수 있다.
시스템(1000)은 예컨대, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 프로세싱하도록 구성된 인코더/디코더 모듈(1030)을 포함하고, 인코더/디코더 모듈(1030)은 자체 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(1030)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 표현한다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 부가적으로, 인코더/디코더 모듈(1030)은 시스템(1000)의 별개의 요소로서 구현될 수 있거나, 당업자들에게 알려진 바와 같은 하드웨어 및 소프트웨어의 조합으로서 프로세서(1010) 내에 통합될 수 있다.
이 문서에 설명된 다양한 양상들을 수행하기 위해 프로세서(1010) 또는 인코더/디코더(1030)에 로딩될 프로그램 코드는 저장 장치(1040)에 저장되고 후속적으로 프로세서(1010)에 의한 실행을 위해 메모리(1020)에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(1010), 메모리(1020), 저장 디바이스(1040) 및 인코더/디코더 모듈(1030) 중 하나 이상은 본 문서에 설명된 프로세스들의 수행 동안 다양한 아이템들 중 하나 이상을 저장할 수 있다. 이러한 저장된 아이템들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 부분들, 비트스트림, 행렬들, 변수들 및 수식들, 공식들, 연산들 및 연산 로직의 프로세싱의 중간 또는 최종 결과들을 포함할 수 있다(그러나 이에 제한되지 않음).
일부 실시예들에서, 프로세서(1010) 및/또는 인코더/디코더 모듈(1030) 내부의 메모리는 명령어들을 저장하고 인코딩 또는 디코딩 동안 필요한 프로세싱을 위한 작업 메모리를 제공하는 데 사용된다. 그러나, 다른 실시예들에서, 프로세싱 디바이스 외부의 메모리(예컨대, 프로세싱 디바이스는 프로세서(1010) 또는 인코더/디코더 모듈(1030)일 수 있음)가 이러한 기능들 중 하나 이상을 위해 사용된다. 외부 메모리는 메모리(1020) 및/또는 저장 디바이스(1040), 예컨대, 동적 휘발성 메모리 및/또는 비-휘발성 플래시 메모리일 수 있다. 여러 실시예들에서, 외부 비-휘발성 플래시 메모리는 예컨대, 텔레비전의 운영 시스템를 저장하는 데 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는 비디오 코딩 및 디코딩 동작들을 위한 이를테면, MPEG-2(MPEG는 Moving Picture Experts Group을 지칭하고, MPEG-2는 또한 ISO/IEC 13818로서 지칭되고, 13818-1은 또한 H.222로서 알려져 있고, 13818-2는 또한 H.262로서 알려져 있음), HEVC(HEVC는 H.265 및 MPEG-H Part 2로서 또한 알려진 High Efficiency Video Coding를 지칭함) 또는 VVC(Versatile Video Coding, JVET(Joint Video Experts Team)에 의해 개발중인 새로운 표준)를 위한 작업 메모리로서 사용된다.
시스템(1000)의 요소들에 대한 입력은 블록(1130)에 표시된 바와 같이 다양한 입력 디바이스들을 통해 제공될 수 있다. 이러한 입력 디바이스들은, (i) 예컨대, 방송사에 의해 공중으로(over the air) 송신되는 라디오 주파수(RF) 신호를 수신하는 RF 부분, (ii) 구성 요소(COMP) 입력 단말(또는 일 세트의 COMP 입력 단자들), (iii) 범용 직렬 버스(USB) 입력 단자 및/또는 (iv) 고화질 멀티미디어 인터페이스(HDMI) 입력 단자를 포함한다(그러나 이에 제한되지 않음). 도 10에 도시되지 않은 다른 예들은 복합 비디오를 포함한다.
다양한 실시예들에서, 블록(1130)의 입력 디바이스들은 당 업계에 알려진 바와 같은 연관된 개개의 입력 프로세싱 요소들을 갖는다. 예컨대, RF 부분은 (i) 원하는 주파수를 선택하고(신호를 선택하는 것 또는 신호를 주파수들의 대역으로 대역-제한하는 것으로서 또한 지칭됨), (ii) 선택된 신호를 하향-변환하고, (iii) (예컨대) 특정 실시예들에서 채널로서 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 더 좁은 주파수 대역들로 재차 대역-제한하고, (iv) 하향-변환된 그리고 대역-제한된 신호를 복조하고, (v) 오류 정정을 수행하고, (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 역다중화하는 데 적합한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예컨대, 주파수 선택기들, 신호 선택기들, 대역-제한기들, 채널 선택기들, 필터들, 하향변환기들, 복조기들, 에러 정정기들 및 디멀티플렉서들을 포함한다. RF 부분은 예컨대, 수신된 신호를 더 낮은 주파수(예컨대, 중간 주파수 또는 근-기저대역 주파수)로 또는 기저대역으로 하향-변환하는 것을 포함하여 이러한 다양한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋-톱 박스 실시예에서, RF 부분 및 그의 연관된 입력 프로세싱 요소는 유선(예컨대, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 필터링하고, 하향-변환하고, 원하는 주파수 대역으로 재차 필터링함으로써 주파수 선택을 수행한다. 다양한 실시예들은 위에서 설명된 (및 다른) 요소들의 순서를 재배열하고, 이들 요소들 중 일부를 제거하고, 그리고/또는 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은 예컨대, 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것과 같이 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
부가적으로, USB 및/또는 HDMI 단자들은 시스템(1000)을 USB 및/또는 HDMI 연결들을 통해 다른 전자 디바이스들에 연결하기 위한 개개의 인터페이스 프로세서들을 포함할 수 있다. 입력 프로세싱의 다양한 양상들 예컨대, 리드-솔로몬 오류 정정은, 예컨대, 별개의 입력 프로세싱 IC 내에서 또는 필요에 따라 프로세서(1010) 내에서 구현될 수 있다는 것이 이해될 것이다. 유사하게, USB 또는 HDMI 인터페이스 프로세싱의 양상들은 필요에 따라 프로세서(1010) 내에서 또는 별개의 인터페이스 IC들 내에서 구현될 수 있다. 복조되고, 오류 정정되고 및 디멀티플렉싱된 스트림은 예컨대, 프로세서(1010), 및 출력 디바이스 상의 제시를 위해 필요한 데이터 스트림을 프로세싱하도록 메모리 및 저장 요소들과 결합하여 동작하는 인코더/디코더(1030)를 포함하는 다양한 프로세싱 요소들에 제공된다.
시스템(1000)의 다양한 요소들은 통합된 하우징 내에 제공될 수 있다. 통합된 하우징 내에서, 다양한 요소들은 상호연결되고, 적합한 연결 어레인지먼트 예컨대, I2C(Inter-IC) 버스, 배선 및 인쇄 회로 보드들을 포함하는 당 업계에 알려진 내부 버스를 사용하여 그 사이에서 데이터를 송신할 수있다.
시스템(1000)은 통신 채널(1060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(1050)를 포함한다. 통신 인터페이스(1050)는 통신 채널(1060)을 통해 데이터를 송신 및 수신하도록 구성된 트랜시버를 포함할 수 있다(그러나 이에 제한되지 않음). 통신 인터페이스(1050)는 모뎀 또는 네트워크 카드를 포함할 수 있고(그러나 이에 제한되지 않음), 통신 채널(1060)은 예컨대, 유선 및/또는 무선 매체 내에서 구현될 수 있다.
데이터는 Wi-Fi 네트워크 예컨대, IEEE 802.11(IEEE는 Institute of Electrical and Electronics Engineers를 지칭함)와 같은 무선 네트워크를 사용하여 다양한 실시예들에서 시스템(1000)에 스트리밍되거나 다른 방식으로 제공된다. 이들 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들에 대해 적응된 통신 채널(1060) 및 통신 인터페이스(1050)를 통해 수신된다. 이러한 실시예들의 통신 채널(1060)은 통상적으로 스트리밍 애플리케이션들 및 다른 오버-더-톱(over-the-top) 통신을 허용하기 위해 인터넷을 포함한 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 연결된다. 다른 실시예들은 입력 블록(1130)의 HDMI 연결을 통해 데이터를 전달하는 셋-톱 박스를 사용하여 시스템(1000)에 스트리밍된 데이터를 제공한다. 또 다른 실시예들은 입력 블록(1130)의 RF 연결을 사용하여 시스템(1000)에 스트리밍된 데이터를 제공한다. 위에서 표시된 바와 같이, 다양한 실시예들은 비-스트리밍 방식으로 데이터를 제공한다. 부가적으로, 다양한 실시예들은 Wi-Fi 이외의 무선 네트워크들, 예컨대, 셀룰러 네트워크 또는 Bluetooth 네트워크를 사용한다.
시스템(1000)은 디스플레이(1100), 스피커들(1110) 및 다른 주변 디바이스들(1120)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다양한 실시예들의 디스플레이(1100)는 예컨대, 터치스크린 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 커브드 디스플레이 및/또는 폴더블 디스플레이 중 하나 이상을 포함한다. 디스플레이(1100)는 텔레비전, 태블릿, 랩톱, 셀 폰(모바일 폰) 또는 다른 디바이스를 위한 것일 수 있다. 디스플레이(1100)는 또한 (예컨대, 스마트 폰에서와 같이) 다른 구성 요소들과 통합되거나 별개일 수 있다(예컨대, 랩톱용 외부 모니터). 다른 주변 디바이스들(1120)은 실시예들의 다양한 예들에서, 자립형 디지털 비디오 디스크(또는 디지털 다용도 디스크)(두 용어 모두에 대해 DVR), 디스크 플레이어, 스테레오 시스템 및/또는 조명 시스템 중 하나 이상을 포함한다. 다양한 실시예들은 시스템(1000)의 출력에 기초한 기능을 제공하는 하나 이상의 주변 디바이스들(1120)을 사용한다. 예컨대, 디스크 플레이어는 시스템(1000)의 출력을 플레이하는 기능을 수행한다.
다양한 실시예들에서, 제어 신호들은 AV.Link, CEC(Consumer Electronics Control), 또는 사용자 개입 없이 또는 사용자가 개입하여 디바이스-투-디바이스 제어를 가능하게 하는 다른 통신 프로토콜들과 같은 시그널링을 사용하여 시스템(1000), 디스플레이(1100), 스피커들(1110), 또는 다른 주변 디바이스들(1120) 사이에서 통신된다. 출력 디바이스들은 개개의 인터페이스들(1070, 1080 및 1090)을 통한 전용 연결들을 통해 시스템(1000)에 통신 가능하게 커플링될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(1050)를 통해 통신 채널(1060)을 사용하여 시스템(1000)에 연결될 수 있다. 디스플레이(1100) 및 스피커들(1110)은 예컨대, 텔레비전과 같은 전자 디바이스에서 시스템(1000)의 다른 구성 요소들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(1070)는 예컨대, 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
예컨대, 입력(1130)의 RF 부분이 별개의 셋-톱 박스의 부분인 경우, 디스플레이(1100) 및 스피커(1110)는 대안적으로 하나 이상의 다른 구성 요소들과 별개일 수 있다. 디스플레이(1100) 및 스피커들(1110)이 외부 구성 요소들인 다양한 실시예들에서, 출력 신호는 예컨대, HDMI 포트들, USB 포트들 또는 COMP 출력들을 포함하는 전용 출력 연결들을 통해 제공될 수 있다.
실시예들은 프로세서(1010)에 의해 구현된 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비-제한적인 예로서, 실시예들은 하나 이상의 집적 회로들에 의해 구현될 수 있다. 메모리(1020)는 기술 환경에 적절한 임의의 유형으로 이루어질 수 있고, 비-제한적인 예로서 광학 메모리 디바이스들, 자기 메모리 디바이스들, 반도체-기반 메모리 디바이스들, 고정 메모리 및 제거 가능 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(1010)는 기술 환경에 적절한 임의의 유형일 수 있으며, 비-제한적인 예로서 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들 및 멀티-코어 아키텍처에 기초한 프로세서들 중 하나 이상을 포함할 수 있다.
다양한 구현들은 디코딩을 수반한다. 본 출원에서 사용되는 바와 같은 "디코딩"은 예컨대, 디스플레이에 적합한 최종 출력을 생성하기 위해 수신된 인코딩된 시퀀스 상에서 수행되는 프로세스들 전부 또는 그 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 디코더에 의해 통상적으로 수행되는 프로세스들, 예컨대, 엔트로피 디코딩, 역양자화, 역변환 및 차동 디코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 이러한 프로세스들은 또한 또는 대안적으로, 본 출원에서 설명된 다양한 구현들의 디코더에 의해 수행되는 프로세스들, 예컨대, 모션 및 조명 보상, 모션 정제 및 다중 예측 조합을 포함한다.
추가의 예로서, 일 실시예에서 "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서 "디코딩"은 차동 디코딩만을 지칭하고, 또 다른 실시예에서 "디코딩"은 엔트로피 디코딩 및 차동 디코딩의 조합을 지칭한다. "디코딩 프로세스"라는 문구가 동작들의 서브세트를 구체적으로 지칭하도록 의도되었는지 또는 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되었는지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며 당업자에 의해 잘 이해될 것으로 여겨진다.
다양한 구현들은 인코딩을 수반한다. "디코딩"에 대한 위의 논의와 유사한 방식으로, 본 출원에서 사용된 바와 같은 "인코딩"은 예컨대, 인코딩된 비트스트림을 생성하기 위해 입력 비디오 시퀀스 상에서 수행되는 프로세스들 전부 또는 그 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 인코더에 의해 통상적으로 수행되는 프로세스들 예컨대, 파티셔닝, 차동 인코딩, 변환, 양자화 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 이러한 프로세스들은 또한 또는 대안적으로, 본 출원에서 설명된 다양한 구현들의 인코더에 의해 수행되는 프로세스들, 예컨대, 모션 및 조명 보상, 모션 정제 및 다중 예측 조합을 포함한다.
추가의 예로서, 일 실시예에서 "인코딩"은 엔트로피 인코딩만을 지칭하고, 다른 실시예에서 "인코딩"은 차동 인코딩만을 지칭하고, 또 다른 실시예에서 "인코딩"은 엔트로피 인코딩 및 차동 인코딩의 조합을 지칭한다. "인코딩 프로세스"라는 문구가 동작들의 서브세트를 구체적으로 지칭하도록 의도되었는지 또는 일반적으로 더 넓은 인코딩 프로세스를 지칭하도록 의도되었는지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며 당업자에 의해 잘 이해될 것으로 여겨진다.
본원에서 사용된 바와 같은 신택스 엘리먼트들, 예컨대, IC-플래그는 설명적인 용어들이라는 점에 주의한다. 따라서 이들은 다른 신택스 엘리먼트 명칭들의 사용을 배제하지 않는다.
도면이 흐름도로 제시될 때, 그것이 대응하는 장치의 블록도를 또한 제공한다는 것이 이해되어야 한다. 유사하게, 도면이 블록도로 제시될 때, 그것은 또한 대응하는 방법/프로세스의 흐름도를 제공한다는 것을 이해되어야 한다.
다양한 실시예들은 레이트 왜곡 최적화를 참조한다. 특히, 인코딩 프로세스 동안, 종종 계산 복잡성의 제약들을 고려하여, 레이트와 왜곡 사이의 균형 또는 절충(trade-of)이 일반적으로 고려된다. 레이트 왜곡 최적화는 일반적으로 레이트 및 왜곡의 가중 합인 레이트 왜곡 함수를 최소화하는 것으로 공식화된다. 레이트 왜곡 최적화 문제를 해결하기 위한 상이한 접근법들이 존재한다. 예컨대, 접근법들은 코딩 및 디코딩 후에 재구성된 신호의 코딩 비용 및 관련된 왜곡의 완전한 평가와 함께, 모든 고려된 모드들 또는 코딩 파라미터 값들을 포함하는 모든 인코딩 옵션들의 광범위한 테스트에 기초할 수 있다. 특히 재구성된 것이 아니라 예측 또는 예측 잔차 신호에 기초한 근사된 왜곡의 컴퓨테이션과 함께 인코딩 복잡성을 저장하기 위해, 더 빠른 접근법들이 또한 사용될 수 있다. 이를테면, 가능한 인코딩 옵션들 중 일부에 대해서만 근사된 왜곡을 사용하고 다른 인코딩 옵션들에 대해 완전한 왜곡을 사용함으로써 이러한 2개의 접근법들의 혼합물이 또한 사용될 수 있다. 다른 접근법들은 가능한 인코딩 옵션들의 서브세트만을 평가한다. 보다 일반적으로, 다수의 접근법들은 최적화를 수행하기 위해 다양한 기술들 중 임의의 기술을 사용하지만, 최적화가 반드시, 코딩 비용 및 관련된 왜곡 둘 모두의 완전한 평가일 필요는 없다.
본원에서 설명된 구현들 및 양상들은 예컨대, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의되더라도(예컨대, 방법으로서만 논의되더라도), 논의된 특징들의 구현은 또한 다른 형태들(예컨대, 장치 또는 프로그램)로 구현될 수 있다. 장치는 예컨대, 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 방법들은 일반적으로, 예컨대, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍 가능 로직 디바이스를 포함하는 프로세싱 디바이스들을 지칭하는 (예컨대,) 프로세서로 구현될 수 있다. 프로세서들은 또한 예컨대, 컴퓨터들, 셀 폰들, 휴대용/개인용 디지털 보조기기들("PDA") 및 최종 사용자들 간의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
"일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현"뿐만 아니라 이들의 다른 변동들에 대한 참조는 실시예와 관련하여 설명된 특정 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 출원 전반에 걸쳐 다양한 장소들에 나타나는 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서"라는 문구뿐만 아니라 임의의 다른 변동들의 출현이 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
부가적으로, 이 출원은 다양한 정보 단편들을 "결정"하는 것을 참조할 수 있다. 정보를 결정하는 것은 예컨대, 정보를 추정하고, 정보를 계산하고, 정보를 예측하거나, 메모리로부터 정보를 리트리브하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 정보 단편들에 "액세스"하는 것을 참조할 수 있다. 정보에 액세스하는 것은 예컨대, 정보를 수신하고, (예컨대, 메모리로부터) 정보를 리트리브하고, 정보를 저장하고, 정보를 이동시키고, 정보를 복사하고, 정보를 계산하고, 정보를 결정하고, 정보를 예측하거나 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
부가적으로, 이 출원은 다양한 정보 단편들을 "수신"하는 것을 참조할 수 있다. 수신은 "액세스"와 마찬가지로, 광범위한 용어인 것으로 의도된다. 정보를 수신하는 것은 예컨대, 정보에 액세스하거나 또는 (예컨대, 메모리로부터) 정보를 리트리브하는 것 중 하나 이상을 포함할 수 있다. 또한, 예컨대, 정보를 저장하고, 정보를 프로세싱하고, 정보를 송신하고, 정보를 이동시키고, 정보를 복사하고, 정보를 소거하고, 정보를 계산하고, 정보를 결정하고, 정보를 예측하고 또는 정보를 추정하는 것과 같은 동작들 동안 일 방향으로 또는 다른 방향으로 "수신"하는 것이 통상적으로 수반된다.
예컨대, "A/B", "A 및/또는 B", 및 "A 및 B 중 적어도 하나"의 경우에서 "/", "및/또는" 및 "~ 중 적어도 하나" 중 임의의 것의 사용은 제1 나열된 옵션(A)만의 선택, 또는 제2 나열된 옵션(B)만의 선택, 또는 두 옵션들(A 및 B)의 선택을 포함하는 것으로 의도된다는 것이 인지된다. 추가 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우에, 이러한 문구는 제1 나열된 옵션(A)만의 선택, 또는 제2 나열된 옵션(B)만의 선택, 또는 제3 나열된 옵션(C)만의 선택, 또는 제1 및 제2 나열된 옵션들(A 및 B)만의 선택 제1 및 제3 나열된 옵션들(A 및 C) 만의 선택 또는 제2 및 제3 나열된 옵션들(B 및 C) 만의 선택, 또는 모든 3개의 옵션들(A 및 B 및 C)의 선택을 포함하는 것으로 의도된다. 이는 당업자게 명백한 바와 같이 나열된 다수의 아이템들만큼 확장될 수 있다.
또한, 본원에서 사용된 바와 같이, "시그널링"라는 단어는 다른 것들 중에서도, 대응하는 디코더에 무언가를 표시하는 것을 지칭한다. 예컨대, 특정 실시예들에서, 인코더는 코딩 모드 중 특정 하나를 시그널링한다. 이러한 방식으로, 일 실시예에서 동일한 파라미터가 인코더 측 및 디코더 측 둘 모두에서 사용된다. 따라서, 예컨대, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 디코더에 특정 파라미터를 송신할 수 있다(명시적 시그널링). 반대로, 디코더가 이미 특정 파라미터들뿐만 아니라 다른 파라미터들을 갖는 경우, 디코더가 단순히 특정 파라미터를 인식 및 선택할 수 있게 하도록 송신 없이 시그널링을 사용될 수 있다(암시적 시그널링). 임의의 실제 기능들의 송신을 회피함으로써, 다양한 실시예들에서 비트 절약들이 실현된다. 시그널링은 다양한 방식들로 달성될 수 있다는 것이 인지될 것이다. 예컨대, 하나 이상의 신택스 엘리먼트들, 플래그들 등은 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하기 위해 사용된다. 앞의 내용이 "시그널링"이라는 동사 형태의 단어에 관한 것이지만, 명사로서 "신호"라는 단어가 본원에서 또한 사용될 수 있다.
당업자에게 명백할 바와 같이, 구현들은 예컨대, 저장 또는 송신될 수 있는 정보를 전달하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는 예컨대, 설명된 구현들 중 하나에 의해 생성된 데이터 또는 방법을 수행하기 위한 명령어들을 포함할 수 있다. 예컨대, 신호는 설명된 실시예의 비트스트림을 전달하도록 포맷팅될 수 있다. 이러한 신호는 예컨대, (예컨대, 스펙트럼의 라디오 주파수 부분을 사용하여) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은 예컨대, 데이터 스트림을 인코딩하고 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 전달하는 정보는 예컨대, 아날로그 또는 디지털 정보일 수 있다. 신호는 알려진 바와 같이 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서-판독 가능 매체 상에 저장될 수 있다.
다수의 실시예들이 설명된다. 이들 실시예들의 특징들은 단독으로 또는 임의의 조합으로 제공될 수 있다. 또한, 실시예들은 다양한 청구항 카테고리들 및 유형들에 걸쳐 다음의 특징들, 디바이스들 또는 양상들 중 하나 이상을, 단독으로 또는 임의의 조합으로 포함할 수 있다.
·설명된 실시예들 중 임의의 것에 따라 모션 및 조명 보상, 모션 정제 및 다중 예측 조합의 적응을 수행하는 TV, 셋-톱 박스, 셀 폰, 태블릿 또는 다른 전자 디바이스.
·설명된 실시예들 중 임의의 것에 따라 모션 및 조명 보상, 모션 정제 및 다중 예측 조합의 적응을 수행하고 (예컨대, 모니터, 스크린 또는 다른 유형의 디스플레이를 이용하여) 결과적인 이미지를 디스플레이하는 TV, 셋-톱 박스, 셀 폰, 태블릿 또는 다른 전자 디바이스.
·설명된 실시예들 중 임의의 것에 따라, 인코딩된 이미지를 포함하는 신호를 수신하도록 (예컨대, 튜너를 사용하여) 채널을 튜닝하고 모션 및 조명 보상, 모션 정제 및 다중 예측 조합의 적응을 수행하는 TV, 셋-톱 박스, 셀 폰, 태블릿 또는 다른 전자 디바이스.
·설명된 실시예들 중 임의의 것에 따라, 인코딩된 이미지를 포함하는 신호를 (예컨대, 안테나를 사용하여) 공통을 통해 수신하고 모션 및 조명 보상, 모션 정제 및 다중 예측 조합의 적응을 수행하는 TV, 셋-톱 박스, 셀 폰, 태블릿 또는 다른 전자 디바이스.
적어도 하나의 실시예의 일반적인 양상에 따르면, 디코딩 방법이 개시되며, 이 방법은,
- 현재 블록에 대한 파라미터들을 디코딩하는 단계;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계 ― 다음 조건들은, 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 단계; 및
- 상기 코딩 도구에 응답하여 상기 현재 블록을 디코딩하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양상에 따르면, 인코딩 방법이 개시되며, 이 방법은,
- 현재 블록에 대한 파라미터들을 획득하는 단계;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계 ― 다음 조건들은, 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 단계; 및
- 코딩 도구에 응답하여 상기 현재 블록을 인코딩하는 단계를 포함한다.
적어도 하나의 실시예의 일반적인 양상에 따르면, 하나 이상의 프로세서들을 포함하는 디코딩 장치가 개시되며, 이 하나 이상의 프로세서들은,
- 현재 블록에 대한 파라미터들을 디코딩하는 것;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 것 ― 다음 조건들은, 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 것; 및
- 코딩 도구에 응답하여 상기 현재 블록을 디코딩하는 것을 수행하도록 구성된다.
적어도 하나의 실시예의 일반적인 양상에 따르면, 하나 이상의 프로세서들을 포함하는 인코딩 장치가 개시되며, 이 하나 이상의 프로세서들은,
- 현재 블록에 대한 파라미터들을 획득하는 것;
- 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 것 ― 다음 조건들은, 제1 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
- 그렇지 않으면, 상기 현재 블록에 대해 상기 코딩 도구를 인에이블하는 것; 및
- 코딩 도구에 응답하여 상기 현재 블록을 인코딩하는 것을 수행하도록 구성된다.
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 다중-가설 코딩 모드가 현재 블록에 사용되는 경우 인터 이중-예측을 디스에이블하는 단계를 포함한다.
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 다중-가설 코딩 모드가 현재 블록에 사용되는 경우 로컬 조명 보상을 디스에이블하는 단계를 포함한다.
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 다중-가설 코딩 모드가 현재 블록에 사용되는 경우 삼각형 파티셔닝을 디스에이블하는 단계를 포함한다.
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 크로마 구성 요소 및 작은 블록 중 하나 이상에 대한 OBMC 또는 로컬 조명 보상을 디스에이블하는 단계를 포함한다.
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계는, 일반화된 이중-예측 가중치들이 디폴트 가중치들과 동일하지 않은 경우 로컬 조명 보상을 디스에이블하는 단계를 포함한다.
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우에 현재 블록에 대해 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상이 상기 현재 블록에 대해 인에이블되는 경우, 일반화된 이중-예측을 디스에이블하고(또는 일반화된 이중-예측 가중치들을 디폴트 가중치들로 세팅하고) 일반화된 이중-예측 인덱스를 코딩하지 않는 단계를 포함한다.
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상에 의해 사용되는 상기 현재 블록의 이웃 샘플들이 디폴트 가중치들과 동일하지 않은 일반화된 이중-예측 가중치들을 사용하는 블록에 속하는 경우 로컬 조명 보상을 디스에이블하는 단계를 포함한다.
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상이 사용되는 경우 중첩된 블록 모션 보상을 디스에이블하는 단계를 포함하는,
일 실시예에서, 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 코딩 도구를 디스에이블하는 단계는, 중첩된 블록 모션 보상이 사용되는 경우 중첩된 블록 모션 보상 프로세스에서 가중치들이 디폴트 가중치들과 동일하지 않은 경우 로컬 조명 보상 및/또는 일반화된 이중-예측을 디스에이블하는 단계를 포함한다.

Claims (32)

  1. 디코딩 방법으로서,
    - 현재 블록에 대한 파라미터들을 디코딩하는 단계;
    - 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블(disable)하는 단계 ― 상기 다음의 조건들은, 제2 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 상기 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
    - 그렇지 않으면, 상기 현재 블록에 대해 상기 제1 코딩 도구를 인에이블(enable)하는 단계; 및
    - 상기 제1 코딩 도구가 인에이블되는 경우, 상기 제1 코딩 도구를 사용하여 상기 현재 블록을 디코딩하는 단계
    를 포함하는, 디코딩 방법.
  2. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 인터 및 인트라 예측을 결합한 다중-가설 코딩 모드(multi-hypothesis coding mode)가 상기 현재 블록에 사용되는 경우 양방향 광학 흐름(Bi-directional Optical flow)을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  3. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 일반화된 이중-예측 가중치들이 디폴트 가중치들과 동일하지 않은 경우 양방향 광학 흐름을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  4. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 양방향 광학 흐름이 상기 현재 블록에 사용되는 경우 디코더 측 모션 벡터 정제(Decoder Side Motion Vector Refinement)를 디스에이블하는 단계를 포함하는, 디코딩 방법.
  5. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 인터 및 인트라 예측을 결합한 다중-가설 코딩 모드가 상기 현재 블록에 사용되는 경우 인터 이중-예측을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  6. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 인터 및 인트라 예측을 결합한 다중-가설 코딩 모드가 상기 현재 블록에 사용되는 경우 로컬 조명 보상을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  7. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 인터 및 인트라 예측을 결합한 다중-가설 코딩 모드가 상기 현재 블록에 사용되는 경우 삼각형 파티셔닝(triangle partitioning)을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  8. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 크로마(chroma) 구성 요소 및 미리 정의된 값 미만의 현재 블록 크기 중 하나 이상에 대한 로컬 조명 보상 또는 중첩된 블록 모션 보상(Overlapped Block Motion Compensation)을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  9. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 일반화된 이중-예측 가중치들이 디폴트 가중치들과 동일하지 않은 경우 로컬 조명 보상을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  10. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상이 상기 현재 블록에 대해 인에이블되는 경우 재구성-후 필터링(post-reconstruction filtering)을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  11. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상이 상기 현재 블록에 대해 인에이블되는 경우, 일반화된 이중-예측을 디스에이블하고 일반화된 이중-예측 인덱스를 코딩하지 않는 단계를 포함하는, 디코딩 방법.
  12. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상에 의해 사용되는 상기 현재 블록의 이웃 샘플들이 디폴트 가중치들과 동일하지 않은 일반화된 이중-예측 가중치들을 사용하는 블록에 속하는 경우 로컬 조명 보상을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  13. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상이 사용되는 경우 중첩된 블록 모션 보상을 디스에이블하는 단계를 포함하는, 디코딩 방법.
  14. 제1항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 중첩된 블록 모션 보상이 사용되는 경우 중첩된 블록 모션 보상 프로세스에서 가중치들이 디폴트 가중치들과 동일하지 않은 경우 로컬 조명 보상 및 일반화된 이중-예측 중 적어도 하나를 디스에이블하는 단계를 포함하는, 디코딩 방법.
  15. 인코딩 방법으로서,
    - 현재 블록에 대한 파라미터들을 획득하는 단계;
    - 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계 ― 상기 다음 조건들은 제2 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 상기 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
    - 그렇지 않으면, 상기 현재 블록에 대해 상기 제1 코딩 도구를 인에이블하는 단계; 및
    - 상기 제1 코딩 도구가 인에이블되는 경우, 상기 제1 코딩 도구를 사용하여 상기 현재 블록을 인코딩하는 단계
    를 포함하는, 인코딩 방법.
  16. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 인터 및 인트라 예측을 결합한 다중 가설 코딩 모드가 상기 현재 블록에 사용되는 경우 양방향 광학 흐름을 디스에이블하는 단계를 포함하는, 인코딩 방법.
  17. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 일반화된 이중-예측 가중치들이 디폴트 가중치들과 동일하지 않은 경우 양방향 광학 흐름을 디스에이블하는 단계를 포함하는, 인코딩 방법.
  18. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 양방향 광학 흐름이 상기 현재 블록에 사용되는 경우 디코더 측 모션 벡터 정제를 디스에이블하는 단계를 포함하는, 인코딩 방법.
  19. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 인터 및 인트라 예측을 결합한 다중-가설 코딩 모드가 상기 현재 블록에 사용되는 경우 인터 이중-예측을 디스에이블하는 단계를 포함하는, 인코딩 방법.
  20. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 인터 및 인트라 예측을 결합한 다중가설 코딩 모드가 상기 현재 블록에 사용되는 경우 로컬 조명 보상을 디스에이블하는 단계를 포함하는, 인코딩 방법.
  21. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 인터 및 인트라 예측을 결합한 다중-가설 코딩 모드가 상기 현재 블록에 사용되는 경우 삼각형 파티셔닝(triangle partitioning)을 디스에이블하는 단계를 포함하는, 인코딩 방법.
  22. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 크로마 구성 요소 및 미리 정의된 값 아래의 현재 블록 크기 중 하나 이상에 대한 로컬 조명 보상 또는 OBMC를 디스에이블하는 단계를 포함하는, 인코딩 방법.
  23. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 일반화된 이중-예측 가중치들이 디폴트 가중치들과 동일하지 않은 경우 로컬 조명 보상을 디스에이블하는 단계를 포함하는, 인코딩 방법.
  24. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상에 의해 사용되는 상기 현재 블록의 이웃 샘플들이 디폴트 가중치들과 동일하지 않은 일반화된 이중-예측 가중치들을 사용하는 블록에 속하는 경우 로컬 조명 보상을 디스에이블하는 단계를 포함하는, 인코딩 방법.
  25. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 로컬 조명 보상이 사용되는 경우 중첩된 블록 모션 보상을 디스에이블하는 단계를 포함하는, 인코딩 방법.
  26. 제15항에 있어서,
    상기 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 중첩된 블록 모션 보상이 사용되는 경우 중첩된 블록 모션 보상 프로세스에서 가중치들이 디폴트 가중치들과 동일하지 않은 경우 로컬 조명 보상 및 일반화된 이중 예측 중 적어도 하나를 디스에이블하는 단계를 포함하는, 인코딩 방법.
  27. 하나 이상의 프로세서들을 포함하는 디코딩 장치로서,
    상기 하나 이상의 프로세서들은,
    - 현재 블록에 대한 파라미터들을 디코딩하는 것;
    - 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 것 ― 상기 다음 조건들은 제2 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 상기 디코딩된 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
    - 그렇지 않으면, 상기 현재 블록에 대해 상기 제1 코딩 도구를 인에이블하는 것; 및
    - 상기 제1 코딩 도구가 인에이블되는 경우, 상기 제1 코딩 도구를 사용하여 상기 현재 블록을 디코딩하는 것을 수행하도록 구성되는, 디코딩 장치.
  28. 하나 이상의 프로세서들을 포함하는 인코딩 장치로서,
    상기 하나 이상의 프로세서들은,
    - 현재 블록에 대한 파라미터들을 획득하는 것;
    - 다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 것 ― 상기 다음 조건들은, 제2 코딩 도구가 상기 현재 블록에 사용되는 것 그리고 상기 파라미터들에 대한 주어진 조건이 검증되는 것임 ― ;
    - 그렇지 않으면, 상기 현재 블록에 대해 상기 제1 코딩 도구를 인에이블하는 것; 및
    - 상기 제1 코딩 도구가 인에이블되는 경우, 상기 제1 코딩 도구를 사용하여 상기 현재 블록을 인코딩하는 것을 수행하도록 구성되는, 인코딩 장치.
  29. 제1항 또는 제15항에 있어서,
    다음 조건들 중 하나 이상이 검증되는 경우에 상기 현재 블록에 대해 제1 코딩 도구를 디스에이블하는 단계는, 블록 크기가 미리 정의된 값 미만인 경우 일반화된 이중 예측을 디스에이블하거나 일반화된 이중-예측 가중치들을 디폴트 가중치들로 세팅하는 단계를 포함하는, 방법.
  30. 제15항 내지 제26항 및 제29항 중 어느 한 항에 따른 인코딩 방법에 따라 또는 제28 항에 따른 인코딩 장치에 의해 생성된 데이터를 포함하는 신호.
  31. 제1항 내지 제26항 중 임의의 이전 청구항에 따른 또는 제29항에 따른 방법을 구현하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램.
  32. 제1항 내지 제26항 중 임의의 이전 청구항에 따른 또는 제29항에 따른 방법을 구현하기 위한 프로그램 코드 명령어들을 저장하는 정보 저장 수단.
KR1020217018916A 2018-11-21 2019-11-15 화상 인코딩 및 디코딩을 위한 방법 및 디바이스 KR20210091304A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
EP18306535.8 2018-11-21
EP18306535.8A EP3657794A1 (en) 2018-11-21 2018-11-21 Method and device for picture encoding and decoding
EP18306765.1 2018-12-20
EP18306765 2018-12-20
EP19305183.6 2019-02-14
EP19305183 2019-02-14
PCT/US2019/061658 WO2020106564A2 (en) 2018-11-21 2019-11-15 Method and device for picture encoding and decoding

Publications (1)

Publication Number Publication Date
KR20210091304A true KR20210091304A (ko) 2021-07-21

Family

ID=68766854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217018916A KR20210091304A (ko) 2018-11-21 2019-11-15 화상 인코딩 및 디코딩을 위한 방법 및 디바이스

Country Status (7)

Country Link
US (1) US20220021869A1 (ko)
EP (1) EP3884671A2 (ko)
JP (1) JP2022509962A (ko)
KR (1) KR20210091304A (ko)
CN (1) CN113170146A (ko)
BR (1) BR112021008108A2 (ko)
WO (1) WO2020106564A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023055147A1 (ko) * 2021-09-29 2023-04-06 주식회사 윌러스표준기술연구소 Mhp(multi-hypothesis prediction)모드에 기초한 비디오 신호 처리 방법 및 이를 위한 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113287317B (zh) 2018-10-23 2023-04-28 北京字节跳动网络技术有限公司 并置的局部照明补偿和修改的帧间编解码工具
CN112868240B (zh) 2018-10-23 2023-06-30 北京字节跳动网络技术有限公司 并置的局部照明补偿和修改的帧间预测编解码
CN113661704A (zh) 2019-01-09 2021-11-16 北京达佳互联信息技术有限公司 用于改进帧间帧内联合预测的系统和方法
WO2020147747A1 (en) * 2019-01-15 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Weighted prediction in video coding
WO2020147804A1 (en) 2019-01-17 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Use of virtual candidate prediction and weighted prediction in video processing
EP3941061A4 (en) * 2019-03-15 2022-05-04 Lg Electronics Inc. BDOF-BASED INTERPREDITION METHOD AND DEVICE
KR102624093B1 (ko) * 2019-03-22 2024-01-12 엘지전자 주식회사 Dmvr 기반의 인터 예측 방법 및 장치
EP4162682A4 (en) * 2020-06-03 2024-02-21 Beijing Dajia Internet Information Tech Co Ltd GEOMETRIC PARTITION MODE WITH MOTION VECTOR REFINEMENT

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0406808A (pt) * 2003-01-20 2005-12-27 Konink Philips Eletronics N V Método de codificar um sinal de vìdeo de acordo com um padrão predefinido, codificador, fluxo de bits codificado representando um sinal de vìdeo, portador de gravação, e, decodificador para decodificar um fluxo de bits codificado
US9451256B2 (en) * 2012-07-20 2016-09-20 Qualcomm Incorporated Reusing parameter sets for video coding
WO2015100710A1 (en) * 2014-01-02 2015-07-09 Mediatek Singapore Pte. Ltd. Existence of inter-view reference picture and availability of 3dvc coding tools
US10158884B2 (en) * 2014-03-19 2018-12-18 Qualcomm Incorporated Simplified merge list construction process for 3D-HEVC
KR102051193B1 (ko) * 2014-09-12 2019-12-02 브이아이디 스케일, 인크. 비디오 코딩을 위한 성분간 탈상관
US10212445B2 (en) * 2014-10-09 2019-02-19 Qualcomm Incorporated Intra block copy prediction restrictions for parallel processing
US9967577B2 (en) * 2015-08-31 2018-05-08 Microsoft Technology Licensing, Llc Acceleration interface for video decoding
US10623774B2 (en) * 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
TW201902223A (zh) * 2017-03-24 2019-01-01 聯發科技股份有限公司 視頻編碼中重疊分塊運動補償的雙向光流的方法和裝置
CN114501005A (zh) * 2017-04-28 2022-05-13 夏普株式会社 图像解码装置以及图像编码装置
MX2020013386A (es) * 2018-06-11 2021-03-09 Hfi Innovation Inc Metodo y aparato de flujo optico bidireccional para la codificacion de video.
EP3857879A4 (en) * 2018-11-12 2022-03-16 Beijing Bytedance Network Technology Co., Ltd. SIMPLIFICATION OF COMBINED INTER-INTRA PREDICTION

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023055147A1 (ko) * 2021-09-29 2023-04-06 주식회사 윌러스표준기술연구소 Mhp(multi-hypothesis prediction)모드에 기초한 비디오 신호 처리 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
WO2020106564A2 (en) 2020-05-28
JP2022509962A (ja) 2022-01-25
CN113170146A (zh) 2021-07-23
US20220021869A1 (en) 2022-01-20
BR112021008108A2 (pt) 2021-08-03
EP3884671A2 (en) 2021-09-29
WO2020106564A3 (en) 2020-08-20

Similar Documents

Publication Publication Date Title
EP3657794A1 (en) Method and device for picture encoding and decoding
KR20210091304A (ko) 화상 인코딩 및 디코딩을 위한 방법 및 디바이스
CN113273209A (zh) Mmvd和smvd与运动和预测模型的组合
JP7450611B2 (ja) 一般化された双予測および重み付き予測
US20230164314A1 (en) Method and apparatus for deblocking an image
US20230100477A1 (en) Managing coding tools combinations and restrictions
US20210266586A1 (en) Motion vector predictor candidates ordering in merge list
US20230232037A1 (en) Unified process and syntax for generalized prediction in video coding/decoding
US11962753B2 (en) Method and device of video coding using local illumination compensation (LIC) groups
US20230095684A1 (en) High level syntax simplified video coding tool set for small blocks
JP2022502905A (ja) 双予測を使用するビデオエンコーディングおよびデコーディングのための方法および装置
US20220060688A1 (en) Syntax for motion information signaling in video coding
US11936871B2 (en) Method and device for picture encoding and decoding using illumination compensation
KR20220123643A (ko) 삼각형 병합 모드에서의 서브-블록 병합 후보들
US20220353517A1 (en) Local illumination compensation flag inheritance
US20220295057A1 (en) Switchable interpolation filters
KR20240056576A (ko) 템플릿 매칭에 기초한 비디오 인코딩 및 디코딩을 위한 크로마 예측
WO2024078896A1 (en) Template type selection for video coding and decoding

Legal Events

Date Code Title Description
A201 Request for examination