KR20210072064A - 인터 예측 방법 및 장치 - Google Patents
인터 예측 방법 및 장치 Download PDFInfo
- Publication number
- KR20210072064A KR20210072064A KR1020217013764A KR20217013764A KR20210072064A KR 20210072064 A KR20210072064 A KR 20210072064A KR 1020217013764 A KR1020217013764 A KR 1020217013764A KR 20217013764 A KR20217013764 A KR 20217013764A KR 20210072064 A KR20210072064 A KR 20210072064A
- Authority
- KR
- South Korea
- Prior art keywords
- candidate list
- motion information
- merge
- merge candidate
- block
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 230000015654 memory Effects 0.000 claims description 51
- 238000012935 Averaging Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 4
- 239000000470 constituent Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 description 86
- 238000013139 quantization Methods 0.000 description 73
- 239000013598 vector Substances 0.000 description 64
- 238000004891 communication Methods 0.000 description 33
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 22
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 16
- 230000002123 temporal effect Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000010276 construction Methods 0.000 description 10
- 238000005192 partition Methods 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 241000342334 Human metapneumovirus Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000000386 athletic effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/563—Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/567—Motion estimation based on rate distortion criteria
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
인터 예측을 위한 방법 및 장치가 개시된다. 하나의 실시예에서, 방법은 현재 픽처 블록의 병합 후보 목록을 구성하는 것과, 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적은 경우, HMVP 후보 운동 정보를 병합 후보 목록에 추가하는 것 - 여기서 N은 양의 정수임 - 과, 현재 픽처 블록의 병합 인덱스를 획득하는 것과, 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것과, 현재 픽처 블록의 운동 정보에 기초하여 현재 픽처 블록의 예측된 블록을 결정하는 것을 포함한다.
Description
(관련 출원의 상호 참조)
본 출원은 2018년 10월 10일 출원된 미국 가출원 제 62/744,106 호에 대해 우선권을 주장하고, 그 개시는 본 명세서에 참조로 포함된다.
(기술분야)
본 개시는 비디오 인코딩 및 디코딩의 분야에 관한 것이고, 특히, 비디오 이미지에 대한 인터 예측 방법 및 장치, 및 대응하는 인코더 및 디코더에 관한 것이다.
디지털 비디오 기능은 디지털 텔레비전, 디지털 생방송 시스템, 무선 방송 시스템, PDA(personal digital assistant), 랩톱 또는 데스크톱 컴퓨터, 태블릿 컴퓨터, 전자책 단말기, 디지털 카메라, 디지털 기록 장치, 디지털 미디어 플레이어, 비디오 게임 장치, 비디오 게임 콘솔, 셀룰러 또는 위성 무선 전화(소위 "스마트폰"), 화상 회의 장치, 비디오 스트리밍 장치 등을 포함하는 다양한 장치에 통합될 수 있다. 디지털 비디오 장치는 비디오 압축 기술, 예컨대, MPEG-2, MPEG-4, ITU-T H.263, 및 ITU-T H.264/MPEG-4 Part 10 AVC(advanced video coding), 비디오 코딩 표준 H.265/HEVC(high efficiency video coding) 표준, 및 그러한 표준의 확장에 의해 정의된 표준에 설명된 비디오 압축 기술을 구현한다. 비디오 장치는 그러한 비디오 압축 기술을 구현함으로써 디지털 비디오 정보를 보다 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수 있다.
비디오 압축 기술에서, 공간적(이미지 내(intra-image)) 예측 및/또는 시간적(이미지 간(inter-image)) 예측은 비디오 시퀀스에서 고유한(inherent) 중복성(redundancy)을 줄이거나 제거하기 위해 수행된다. 블록 기반 비디오 코딩의 경우, 비디오 슬라이스(즉, 비디오 프레임 또는 비디오 프레임의 일부)는 픽처 블록으로 분할될 수 있고, 픽처 블록은 트리 블록, 코딩 단위(CU), 및/또는 코딩 노드라고 지칭될 수도 있다. 이미지의 인트라 코딩될(I) 슬라이스에서의 픽처 블록은 동일한 이미지에서 이웃의 블록에 있는 참조 샘플의 공간적 예측을 통해 코딩된다. 이미지의 인터 코딩될(P 또는 B) 슬라이스에서의 픽처 블록의 경우, 동일한 이미지에서 이웃의 블록에 있는 참조 샘플의 공간적 예측 또는 다른 참조 픽처에서의 참조 샘플의 시간적 예측이 사용될 수 있다. 이미지는 프레임이라고 지칭될 수 있고, 참조 픽처는 참조 프레임이라고 지칭될 수 있다.
본 개시의 다양한 실시예 및 측면이 아래에서 논의되는 세부사항을 참조하여 설명될 것이고, 첨부된 도면은 다양한 실시예를 예시할 것이다. 이하의 설명 및 도면은 본 개시를 예시하는 것이고 본 개시를 제한하는 것으로 해석되어서는 안 된다. 본 개시의 다양한 실시예의 완전한 이해를 제공하기 위해 다수의 특정한 세부사항이 설명된다. 그러나, 특정한 예에서, 본 개시의 실시예의 간결한 논의를 제공하기 위해 잘 알려진 또는 종래의 세부사항은 설명되지 않는다.
명세서에서 "하나의 실시예" 또는 "실시예"에 대한 언급은 실시예와 관련하여 설명된 특정한 특징, 구조, 또는 특성이 본 개시의 적어도 하나의 실시예에 포함될 수 있다는 것을 의미한다. 명세서의 다양한 곳에서 "하나의 실시예에서"라는 문구의 출현은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
본 개시의 실시예는 픽처 블록의 운동 정보의 예측 정확도를 어느 정도 향상시켜 인코딩 및 디코딩 성능을 향상시키기 위해 비디오 이미지에 대한 인터 예측 방법 및 장치, 및 대응하는 인코더 및 디코더를 제공한다.
제 1 측면에 따르면, 비디오 코딩에서의 인터 예측을 위한 컴퓨터 구현 방법이 설명된다. 하나의 실시예에서, 방법은 코딩된 픽처 블록의 운동 정보에 기초하여 병합 후보 목록을 구성한다. 운동 정보는 병합 후보 목록에서 운동 벡터 예측자(motion vector predictor, MVP) 후보를 정의한다. 방법은 병합 후보 목록에서의 MVP 후보의 수량이 최대 후보 수량보다 적을 때 병합 후보 목록에 새로운 MVP 후보로서 새로운 운동 정보를 추가한다. 방법은 병합 후보 목록에서 최적의 운동 정보의 위치의 병합 인덱스를 획득한다. 방법은 병합 인덱스에 기초하여 최적의 운동 정보를 획득한다. 방법은 최적의 운동 정보에 기초하여 예측된 현재 픽처 블록을 결정한다.
하나의 실시예에서, 코딩된 픽처 블록은 현재 코딩 블록에 공간적으로 또는 시간적으로 인접하여 있다.
하나의 실시예에서, 최적의 운동 정보는 현재 코딩 블록의 운동 정보로서 사용된다.
하나의 실시예에서, 방법은 레이트 왜곡 비용(rate-distortion cost)을 사용하여 병합 후보 목록으로부터 최적의 운동 정보를 더 결정한다.
하나의 실시예에서, 병합 후보 목록에서의 MVP 후보의 수량이 최대 후보 수량에 도달하면, 방법은 병합 후보 목록에 페어와이즈(pairwise) 평균 후보 운동 정보를 더 추가한다.
하나의 실시예에서, 페어와이즈 평균 후보 운동 정보는 병합 후보 목록에서 미리 정의된 MVP 후보의 페어를 평균화함으로써 생성된 페어와이즈 평균 후보를 정의한다.
하나의 실시예에서, 최대 후보 수량은 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값이고, 여기서 N은 양의 정수이다.
하나의 실시예에서, 새로운 운동 정보는 미리 결정된 후보 스캔 순서로 병합 후보 목록에 추가된다.
하나의 실시예에서, 코딩된 픽처 블록의 시간적 후보 운동 정보는 참조 프레임에서의 대응하는 위치 블록의 운동 벡터가 참조 프레임 및 현재 프레임의 픽처 순서 카운트에 기초하여 스케일링된 후에 획득된다.
하나의 실시예에서, 운동 정보는 참조 픽처 정보 또는 운동 벡터 중 적어도 하나를 포함한다.
하나의 실시예에서, 참조 픽처 정보는 단방향 또는 양방향 예측 정보, 참조 픽처 목록, 또는 참조 픽처 목록에 대응하는 참조 픽처 인덱스 중 적어도 하나를 포함한다.
하나의 실시예에서, 새로운 MVP 후보로서 새로운 운동 정보를 병합 후보 목록에 추가하기 전에, 방법 중복성은 병합 후보 목록을 확인하여 병합 후보 목록에 동일한 MVP 후보가 있는지 여부를 알아낸다. 병합 후보 목록에서 동일한 MVP 후보를 찾는 것에 응답하여, 방법은 병합 후보 목록으로부터 동일한 MVP 후보를 제거하고 병합 후보 목록에서 나머지 MVP 후보를 앞으로 이동시킨다.
제 2 측면에 따르면, 본 출원의 실시예는 현재 픽처 블록의 병합 후보 목록을 구성하는 것과, 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적을 때, 새로운 병합 후보 목록을 획득하기 위해 HMVP 후보 운동 정보를 병합 후보 목록에 추가하는 것 - 여기서 N은 양의 정수임 - 과, 현재 픽처 블록의 병합 인덱스를 획득하는 것과, 새로운 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것과, 현재 픽처 블록의 운동 정보에 기초하여 현재 픽처 블록의 예측된 블록을 결정하는 것을 포함하는 인터 예측 (컴퓨터 구현) 방법을 제공한다.
예측된 블록은 예측 블록이라고 지칭될 수 있다.
현재 픽처 블록은 코딩 블록, 코딩 단위, 또는 예측 단위일 수 있다.
병합 후보 목록의 최대 후보 수량은 병합 운동 벡터 예측자(MVP) 후보의 최대 수량이라고 지칭될 수 있다.
HMVP 후보 운동 정보는 이력 기반 병합 후보라고 지칭될 수 있다.
제 2 측면에 기초하여, 일부 가능한 실시예에서, 방법은 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값 이상일 때, 새로운 병합 후보 목록을 획득하기 위해 병합 후보 목록에 페어와이즈 평균 후보 운동 정보를 추가하는 것을 더 포함한다.
제 2 측면에 기초하여, 일부 가능한 실시예에서, 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적을 때, 새로운 병합 후보 목록을 획득하기 위해 HMVP 후보 운동 정보를 병합 후보 목록에 추가하는 것은 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량보다 적을 때, 제 1 병합 후보 목록을 획득하기 위해 HMVP 후보 운동 정보를 병합 후보 목록에 추가하는 것과, 제 1 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적을 때, 새로운 병합 후보 목록을 획득하기 위해 새로운 HMVP 후보 운동 정보를 제 1 병합 후보 목록에 추가하는 것을 포함한다.
제 2 측면에 기초하여, 일부 가능한 실시예에서, 방법은 제 1 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값 이상일 때, 새로운 병합 후보 목록을 획득하기 위해 페어와이즈 평균 후보 운동 정보를 제 1 병합 후보 목록에 추가하는 것을 더 포함한다.
제 3 측면에 따르면, 본 출원의 실시예는 인터 예측 장치를 제공하고, 여기서 인터 예측 장치는 제 1 측면의 방법 중 어느 하나를 구현하기 위한 기능 유닛을 포함한다. 예컨대, 인터 예측 장치는 현재 픽처 블록의 병합 후보 목록을 구성하고, 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적을 때, 새로운 병합 후보 목록을 획득하기 위해 HMVP 후보 운동 정보를 병합 후보 목록에 추가하도록 구성된 구성 유닛 - 여기서 N은 양의 정수임 - 과, 현재 픽처 블록의 병합 인덱스를 획득하고, 새로운 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하고, 현재 픽처 블록의 운동 정보에 기초하여 현재 픽처 블록의 예측 블록을 결정하도록 구성된 예측 블록 결정 유닛을 포함할 수 있다.
제 4 측면에 따르면, 본 출원의 실시예는 현재 픽처 블록의 병합 후보 목록을 구성하는 것과, 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적은 경우, HMVP 후보 운동 정보를 병합 후보 목록에 추가하는 것 - 여기서 N은 양의 정수임 - 과, 병합 후보 목록에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것과, 현재 픽처 블록의 운동 정보에 기초하여 현재 픽처 블록의 예측된 블록을 결정하는 것을 포함하는 인터 예측 (컴퓨터 구현) 방법을 제공한다.
N은 1, 2, 또는 3일 수 있다.
병합 후보 목록에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것은 현재 픽처 블록의 병합 인덱스 또는 병합 후보 목록에 대한 병합 인덱스를 획득하는 것과, 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것을 포함할 수 있다. 현재 픽처 블록의 병합 인덱스 또는 병합 후보 목록에 대한 병합 인덱스를 획득하는 것은 비트스트림을 파싱(parsing)함으로써 병합 인덱스를 획득하는 것을 포함할 수 있다. 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것은 병합 인덱스를 사용함으로써 병합 후보 목록으로부터 운동 정보를 획득하는 것을 포함할 수 있다. 병합 인덱스는 병합 후보 목록에서의 운동 정보의 위치를 나타내기 위해 사용될 수 있다.
운동 정보는 하나 또는 두 개의 운동 벡터를 포함할 수 있다.
운동 정보는 하나 이상의 운동 벡터와 관련된 하나 또는 두 개의 참조 픽처 목록의 하나 또는 두 개의 참조 픽처 인덱스, 단방향 또는 양방향 예측 정보, 또는 하나 이상의 운동 벡터와 관련된 하나 또는 두 개의 MVD(motion vector difference)를 더 포함할 수 있다.
병합 후보 목록에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것은 레이트 왜곡 비용을 사용하여 병합 후보 목록으로부터 운동 정보를 결정하는 것을 포함할 수 있다. 방법은 비트스트림에서 병합 인덱스를 병합 후보 목록으로 인코딩하는 것을 더 포함할 수 있다.
예측된 블록은 예측 블록이라고 지칭될 수 있다.
현재 픽처 블록은 코딩 블록, 코딩 단위, 또는 예측 단위일 수 있다.
병합 후보 목록의 최대 후보 수량은 병합 운동 벡터 예측자(MVP) 후보의 최대 수량이라고 지칭될 수 있다.
HMVP 후보 운동 정보는 이력 기반 병합 후보 또는 이력 기반 MVP(history-based MVP, HMVP) 병합 후보라고 지칭될 수 있다.
그러한 제 4 측면에 따른 방법의 가능한 실시예에서, 방법은 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값과 같은 경우, 페어와이즈 평균 후보 운동 정보를 병합 후보 목록에 추가하는 것을 더 포함한다.
페어와이즈 평균 후보 운동 정보는 병합 후보 목록에서 미리 정의된 MVP 후보의 페어를 평균화함으로써 생성된다.
페어와이즈 평균 후보 운동 정보는 페어와이즈 평균 후보라고 지칭될 수 있다.
제 5 측면에 따르면, 인터 예측 장치가 설명된다. 인터 예측 장치는 제 1 측면의 방법 중 어느 하나를 구현하기 위한 기능 유닛을 포함한다. 예컨대, 인터 예측 장치는 코딩된 픽처 블록의 운동 정보에 기초하여 병합 후보 목록을 구성하도록 구성된 구성 유닛을 포함할 수 있고, 운동 정보는 병합 후보 목록에서 MVP 후보를 정의하고, 병합 후보 목록에서의 MVP 후보의 수량이 최대 후보 수량보다 적을 때 새로운 운동 정보를 새로운 MVP 후보로서 병합 후보 목록에 추가한다. 인터 예측 장치는 병합 후보 목록에서 최적의 운동 정보의 위치의 병합 인덱스를 획득하고, 병합 인덱스에 기초하여 최적의 운동 정보를 획득하고, 최적의 운동 정보에 기초하여 예측된 현재 픽처 블록을 결정하도록 구성된 예측 블록 결정 유닛을 더 포함할 수 있다.
일부 실시예에서, 이미지 예측 장치는, 예컨대, 비디오 인코딩 장치(예컨대, 비디오 인코더) 또는 비디오 디코딩 장치(예컨대, 비디오 디코더)에 적용된다.
본 발명의 제 1 측면에 따른 방법은 본 출원의 제 5 측면에 따른 장치에 의해 수행될 수 있다. 본 출원의 제 5 측면에 따른 장치의 추가 특징 및 실시예는 본 출원의 제 1 측면에 따른 장치의 특징 및 실시예에 대응한다.
제 6 측면에 따르면, 인터 예측 장치가 설명된다. 인터 예측 장치는 제 4 측면의 방법 중 어느 하나를 구현하기 위한 기능 유닛을 포함한다. 예컨대, 인터 예측 장치는 현재 픽처 블록의 병합 후보 목록을 구성하고, 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적은 경우, HMVP 후보 운동 정보를 병합 후보 목록에 추가하도록 구성된 구성 유닛 - 여기서 N은 양의 정수임 - 과, 현재 픽처 블록의 병합 인덱스를 획득하고, 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하고, 현재 픽처 블록의 운동 정보에 기초하여 현재 픽처 블록의 예측된 블록을 결정하도록 구성된 예측 유닛을 포함할 수 있다.
그러한 제 6 측면에 따른 장치의 가능한 실시예에서, 구성 유닛은 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값과 같은 경우, 페어와이즈 평균 후보 운동 정보를 병합 후보 목록에 추가하도록 더 구성된다.
페어와이즈 평균 후보 운동 정보는 병합 후보 목록에서 미리 정의된 MVP 후보의 페어를 평균화함으로써 생성된다.
제 6 측면의 임의의 선행 실시예 또는 그러한 제 6 측면에 따른 장치의 가능한 실시예에서, 예측 유닛은 병합 인덱스를 사용함으로써 병합 후보 목록으로부터 운동 정보를 획득하도록 구성된다.
제 6 측면의 임의의 선행 실시예 또는 그러한 제 6 측면에 따른 장치의 가능한 실시예에서, 예측 유닛은 레이트 왜곡 비용을 사용하여 병합 후보 목록으로부터 운동 정보를 결정하도록 구성된다.
일부 실시예에서, 이미지 예측 장치는, 예컨대, 비디오 인코딩 장치(예컨대, 비디오 인코더) 또는 비디오 디코딩 장치(예컨대, 비디오 디코더)에 적용된다.
본 발명의 제 4 측면에 따른 방법은 본 출원의 제 6 측면에 따른 장치에 의해 수행될 수 있다. 본 출원의 제 6 측면에 따른 장치의 추가 특징 및 실시예는 본 출원의 제 4 측면에 따른 장치의 특징 및 실시예에 대응한다.
제 7 측면에 따르면, 이미지 예측 장치가 설명된다. 장치는 프로세서 및 프로세서에 연결된 메모리를 포함하고, 프로세서는 제 1 측면 내지 제 4 측면 중 어느 하나의 방법 또는 제 1 측면 내지 제 4 측면의 실시예를 수행하도록 구성된다.
제 8 측면에 따르면, 비디오 디코딩 디바이스가 설명된다. 비디오 디코딩 디바이스는 비 휘발성 저장 매체 및 프로세서를 포함하고, 비 휘발성 저장 매체는 실행 가능한 프로그램을 저장하고, 프로세서 및 비 휘발성 저장 매체는 서로 연결되고, 프로세서는 실행 가능한 프로그램을 실행하여 제 1 측면 내지 제 4 측면 중 어느 하나의 방법 또는 제 1 측면 내지 제 4 측면의 실시예를 구현한다.
제 9 측면에 따르면, 컴퓨터 판독 가능한 저장 매체가 설명된다. 컴퓨터 판독 가능한 저장 매체는 프로그래밍 명령을 저장하고, 명령이 컴퓨터에서 실행되면, 컴퓨터는 제 1 측면 내지 제 4 측면 중 어느 하나의 방법 또는 제 1 측면 내지 제 4 측면의 실시예를 수행할 수 있게 된다.
제 10 측면에 따르면, 프로그래밍 명령을 포함하는 컴퓨터 프로그램 제품이 설명된다. 컴퓨터 프로그램 제품이 컴퓨터에서 실행되면, 컴퓨터는 제 1 측면 내지 제 4 측면 중 어느 하나의 방법 또는 제 1 측면 내지 제 4 측면의 실시예를 수행할 수 있게 된다.
제 11 측면에 따르면, 본 출원의 실시예는 컴퓨터에서 실행되면 제 1 측면 내지 제 4 측면에 따른 방법 또는 제 1 측면 내지 제 4 측면의 임의의 가능한 실시예를 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램을 제공한다.
제 7 측면에 따르면, 비디오 코딩에서의 인터 예측을 위한 컴퓨터 구현 방법이 설명된다. 하나의 실시예에서, 방법은 코딩된 픽처 블록의 운동 정보에 기초하여 병합 후보 목록을 구성한다. 운동 정보는 병합 후보 목록에서 운동 벡터 예측자(MVP) 후보를 정의한다. 병합 후보 목록에서의 MVP 후보의 수량이 제 1 최대 후보 수량보다 적을 때, 방법은 이력 기반 운동 벡터 예측자(HMVP) 후보 운동 정보를 병합 후보 목록에 추가하여 제 1 병합 후보 목록을 획득한다. 제 1 병합 후보 목록에서의 MVP 후보의 수량이 제 2 최대 후보 수량보다 적을 때, 방법은 새로운 HMVP 후보 운동 정보를 제 1 병합 후보 목록에 추가하여 새로운 병합 후보 목록을 획득한다. 방법은 새로운 병합 후보 목록에서 최적의 운동 정보의 위치의 병합 인덱스를 획득한다. 방법은 병합 인덱스에 기초하여 최적의 운동 정보를 획득한다. 방법은 최적의 운동 정보에 기초하여 예측된 현재 픽처 블록을 결정한다.
다양한 측면 및 대응하는 구현 가능한 설계 방식에 의해 획득되는 유익한 효과는 유사하고, 반복되지 않는다는 것이 이해되어야 한다.
본 개시의 실시예 또는 배경기술에서 기술적 해결책을 보다 명확하게 설명하기 위해, 이하에서는 본 발명의 실시예 또는 배경기술을 설명하는 데 필요한 첨부 도면을 설명한다.
도 1A는 하나의 실시예에 따른 비디오 인코딩 및 디코딩 시스템의 예의 블록도이다.
도 1B는 하나의 실시예에 따른 비디오 코딩 시스템의 예의 블록도이다.
도 2는 하나의 실시예에 따른 인코더의 예시적인 구조의 블록도이다.
도 3은 하나의 실시예에 따른 디코더의 예시적인 구조의 블록도이다.
도 4는 하나의 실시예에 따른 비디오 코딩 디바이스의 예의 블록도이다.
도 5는 하나의 실시예에 따른 인코딩 장치 또는 디코딩 장치의 다른 예의 블록도이다.
도 6은 하나의 실시예에 따른 공간적 및 시간적 후보 운동 정보의 개략적인 블록도이다.
도 7은 하나의 실시예에 따른 이력 기반 운동 벡터 예측자(HMVP) 방법 흐름의 개략적인 블록도이다.
도 8은 하나의 실시예에 따른 테이블 업데이트의 개략적인 블록도이다.
도 9는 실시예에 따른 인터 예측 방법의 개략적인 흐름도이다.
도 10은 콘텐츠 전달 서비스를 실현하는 콘텐츠 공급 시스템(3100)의 예시적인 구조를 나타내는 블록도이다.
도 11은 단말 디바이스의 예의 구조를 나타내는 블록도이다.
도 1A는 하나의 실시예에 따른 비디오 인코딩 및 디코딩 시스템의 예의 블록도이다.
도 1B는 하나의 실시예에 따른 비디오 코딩 시스템의 예의 블록도이다.
도 2는 하나의 실시예에 따른 인코더의 예시적인 구조의 블록도이다.
도 3은 하나의 실시예에 따른 디코더의 예시적인 구조의 블록도이다.
도 4는 하나의 실시예에 따른 비디오 코딩 디바이스의 예의 블록도이다.
도 5는 하나의 실시예에 따른 인코딩 장치 또는 디코딩 장치의 다른 예의 블록도이다.
도 6은 하나의 실시예에 따른 공간적 및 시간적 후보 운동 정보의 개략적인 블록도이다.
도 7은 하나의 실시예에 따른 이력 기반 운동 벡터 예측자(HMVP) 방법 흐름의 개략적인 블록도이다.
도 8은 하나의 실시예에 따른 테이블 업데이트의 개략적인 블록도이다.
도 9는 실시예에 따른 인터 예측 방법의 개략적인 흐름도이다.
도 10은 콘텐츠 전달 서비스를 실현하는 콘텐츠 공급 시스템(3100)의 예시적인 구조를 나타내는 블록도이다.
도 11은 단말 디바이스의 예의 구조를 나타내는 블록도이다.
이하에서는 본 개시의 실시예에서의 첨부 도면을 참조하여 본 개시의 실시예를 설명한다. 이하의 설명에서, 본 개시의 일부를 형성하고, 예시로서, 본 개시의 실시예의 특정한 측면 또는 본 개시의 실시예가 사용될 수 있는 특정한 측면을 나타내는 첨부 도면을 참조한다. 본 개시의 실시예는 다른 측면에서 사용될 수 있고, 첨부 도면에 도시되지 않은 구조적 또는 논리적 변경을 포함할 수 있다는 것이 이해되어야 한다. 따라서, 이하의 상세한 설명은 제한으로서 해석되어서는 안 되고, 본 개시의 범위는 첨부된 청구범위에 의해 정의된다. 예컨대, 설명된 방법과 관련한 개시된 내용은 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해서도 유효할 수 있고, 그 반대의 경우도 마찬가지라는 것이 이해되어야 한다. 예컨대, 하나 이상의 특정한 방법 스텝이 설명되는 경우, 대응하는 디바이스는 설명된 하나 이상의 방법 스텝을 수행하기 위한 기능 유닛과 같은 하나 이상의 유닛(예컨대, 하나 이상의 스텝을 수행하는 하나의 유닛, 또는 각각이 복수의 스텝 중 하나 이상을 수행하는 복수의 유닛)을, 비록 그러한 하나 이상의 유닛이 첨부 도면에 명시적으로 설명되거나 도시되지 않은 경우에도, 포함할 수 있다. 이에 대응하여, 예컨대, 특정한 장치가 기능 유닛과 같은 하나 이상의 유닛에 기초하여 설명되는 경우, 대응하는 방법은 하나 이상의 유닛의 기능성을 수행하기 위한 하나 이상의 스텝(예컨대, 하나 이상의 유닛의 기능성을 수행하는 하나의 스텝, 또는 각각이 복수의 유닛 중 하나 이상의 기능성을 수행하는 복수의 스텝)을, 비록 그러한 하나 이상의 스텝이 첨부 도면에 명시적으로 설명되거나 도시되지 않은 경우에도, 포함할 수 있다. 또한, 여기에 설명된 다양한 예시적인 실시예 및/또는 측면의 특징은, 특별히 달리 언급되지 않는 한, 서로 결합될 수 있다는 것이 이해되어야 한다.
본 개시의 실시예에서의 기술적 해결책은 (H.264 표준 및 HEVC 표준과 같은) 기존의 비디오 코딩 표준에 적용될 수 있을 뿐만 아니라, (H.266 표준과 같은) 향후의 비디오 코딩 표준에도 적용될 수 있다. 본 개시의 구현 부분에서 사용된 용어는 단지 본 개시의 특정한 실시예를 설명하기 위한 것일 뿐이고, 본 발명을 제한하려는 것이 아니다. 이하에서는, 본 개시의 실시예에서 사용될 수 있는 일부 개념이 먼저 간략하게 설명된다.
비디오 코딩은 일반적으로 비디오 또는 비디오 시퀀스를 형성하는 일련의 픽처를 처리하는 것을 지칭한다. 비디오 코딩의 분야에서, "픽처", "프레임", 또는 "이미지"라는 용어는 동의어로서 사용될 수 있다. 여기서 사용되는 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩을 나타낸다. 비디오 인코딩은 소스 측에서 수행되고, 일반적으로, 보다 효율적인 저장 및/또는 송신을 위해, 비디오 픽처를 표현하는 데 필요한 데이터의 양을 줄이기 위해 원본 비디오 픽처를 (예컨대, 압축을 통해) 처리하는 것을 포함한다. 비디오 디코딩은 목적지 측에서 수행되고, 일반적으로 비디오 픽처를 복원하기 위해 인코더와 상대적인 역 처리를 포함한다. 실시예에서의 비디오 픽처 "코딩"은 비디오 시퀀스에 대한 "인코딩" 또는 "디코딩"으로서 이해될 수 있다. 인코딩 부분과 디코딩 부분의 조합은 코덱(인코딩 및 디코딩)이라고도 지칭된다.
비디오 시퀀스는 일련의 이미지(또는 픽처)를 포함한다. 이미지는 슬라이스로 더 분할되고, 각 슬라이스는 블록으로 더 분할된다. 비디오 코딩에서, 코딩 처리는 블록마다 수행된다. 일부 새로운 비디오 코딩 표준에서는, 블록의 개념이 더 확장된다. 예컨대, H.264 표준에서는, 매크로블록(MB)이 있고, 매크로블록은 예측 코딩에 사용될 수 있는 복수의 예측 블록(또는 파티션)으로 더 분할될 수 있다. HEVC(high efficiency video coding) 표준에서는, 복수의 유형의 블록 단위가 기능 분할을 통해 획득되고, 단위가 새로운 트리 기반 구조를 참조하여 설명될 수 있도록, 코딩 단위(coding unit, CU), 예측 단위(prediction unit, PU), 및 변환 단위(transform unit, TU)와 같은 기본적 개념이 사용된다. 예컨대, CU는 쿼드트리에 기초하여 더 작은 CU로 분할될 수 있고, 각각의 더 작은 CU는 계속 분할되어, 쿼드트리 구조를 형성할 수 있다. CU는 코딩된 이미지를 분할하고 코딩하기 위한 기본 단위이다. PU 및 TU도 유사한 트리 구조를 갖고, PU는 예측 블록에 대응할 수 있고 예측 코딩의 기본 단위이다. CU는 분할 모드에 따라 복수의 PU로 더 분할된다. TU는 변환 블록에 대응할 수 있고, 예측 잔차를 변환하기 위한 기본 단위이다. 기본적으로, 모든 CU, PU, 및 TU는 블록(또는 픽처 블록)의 개념이다.
예컨대, HEVC에서, CTU는 코딩 트리로서 나타내어진 쿼드트리 구조를 사용함으로써 복수의 CU로 분할된다. 인터 픽처(시간적) 또는 인트라 픽처(공간적) 예측을 사용함으로써 픽처 영역을 코딩할지 여부에 관한 결정은 CU 레벨에서 행하여진다. 각 CU는 PU 분할 유형에 기초하여 하나, 두 개, 또는 네 개의 PU로 더 분할될 수 있다. 하나의 PU 내부에서는, 동일한 예측 프로세스가 적용되고, 관련 정보가 PU 단위로 디코더에 송신된다. PU 분할 유형에 기초하여 예측 프로세스를 적용함으로써 잔차 블록을 획득한 후, CU는 CU에 사용되는 코딩 트리와 유사한 다른 쿼드트리 구조에 기초하여 TU로 분할될 수 있다. 비디오 압축 기술의 최신 개발에서, 코딩 블록을 분할하는 데 쿼드트리 및 이진 트리(QTBT) 분할 프레임이 사용된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형 모양을 가질 수 있다.
여기서, 설명 및 이해의 편의를 위해, 현재 코딩된 이미지에 코딩될 픽처 블록은 현재 블록이라고 지칭될 수 있다. 예컨대, 인코딩에서, 현재 블록은 현재 인코딩되고 있는 블록이고, 디코딩에서, 현재 블록은 현재 디코딩되고 있는 블록이다. 현재 블록을 예측하는 데 사용되는, 참조 픽처에서의, 디코딩된 픽처 블록은 참조 블록이라고 지칭된다. 다시 말해서, 참조 블록은 현재 블록에 대한 참조 신호를 제공하는 블록이고, 여기서 참조 신호는 픽처 블록 내의 픽셀 값을 표현한다. 참조 픽처에 있고 현재 블록에 대한 예측 신호를 제공하는 블록은 예측 블록이라고 지칭될 수 있고, 여기서 예측 신호는 예측 블록 내의 픽셀 값, 샘플 값, 또는 샘플링 신호를 표현한다. 예컨대, 복수의 참조 블록이 순회된 후, 최적의 참조 블록이 발견되고, 최적의 참조 블록은 현재 블록에 대한 예측을 제공하고, 이 블록은 예측 블록이라고 지칭된다.
무손실 비디오 코딩의 경우, 원본 비디오 픽처가 복원될 수 있고, 이는 복원된 비디오 픽처가 원본 비디오 픽처와 동일한 품질을 갖는다는 것을 의미한다(저장 또는 송신 중에 송신 손실 또는 다른 데이터 손실이 발생하지 않는다고 가정한다). 손실이 있는 비디오 코딩의 경우, 비디오 픽처를 표현하는 데 필요한 데이터의 양을 줄이기 위해, 예컨대, 양자화를 통해 추가 압축이 수행되고, 비디오 픽처는 디코더 측에서 완전히 복원될 수 없고, 이는 복원된 비디오 픽처의 품질이 원본 비디오 픽처보다 낮거나 나쁘다는 것을 의미한다.
H.261 이후의 몇몇의 비디오 코딩 표준은 "손실이 있는 하이브리드 비디오 코덱"에 속한다(즉, 샘플 영역에서의 공간적 및 시간적 예측은 변환 영역에서 양자화를 적용하기 위해 2D 변환 코딩과 결합된다). 비디오 시퀀스의 각 픽처는 보통 겹치지 않는 블록의 세트로 분할되고, 코딩은 보통 블록 레벨에서 수행된다. 다시 말해서, 인코더 측에서, 비디오는 보통 블록(또는 비디오 블록) 레벨에서 처리, 즉 인코딩된다. 예컨대, 공간적(인트라 픽처) 예측 및 시간적(인터 픽처) 예측을 통해 예측 블록을 생성하기 위해, 현재 블록(현재 처리되거나 처리될 블록)으로부터 예측 블록이 감산되어 잔차 블록을 획득하고, 잔차 블록은 송신될(압축될) 데이터의 양을 줄이기 위해 변환 영역에서 변환 및 양자화되는 반면, 디코더 측에서는, 인코더와 상대적인 역 처리의 일부가 인코딩된 또는 압축된 블록에 적용되어 표현을 위한 현재 블록을 복원한다. 또한, 인코더 및 디코더가 후속 블록을 처리, 즉 코딩하기 위해 동일한 예측(예컨대, 인트라 예측 및 인터 예측) 및/또는 복원을 생성할 수 있도록, 인코더는 디코더 처리 루프를 복제한다.
이하에서는 본 개시의 실시예에서 적용되는 시스템 아키텍처를 설명한다. 도 1A는 하나의 실시예에 따른 비디오 인코딩 및 디코딩 시스템의 예의 개략적인 블록도이다. 도 1A에 나타낸 바와 같이, 비디오 인코딩 및 디코딩 시스템(10)은 소스 디바이스(12) 및 목적지 디바이스(14)를 포함할 수 있다. 소스 디바이스(12)는 인코딩된 비디오 데이터를 생성하므로, 소스 디바이스(12)는 비디오 인코딩 장치라고 지칭될 수 있다. 목적지 디바이스(14)는 소스 디바이스(12)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있으므로, 목적지 디바이스(14)는 비디오 디코딩 장치라고 지칭될 수 있다. 소스 디바이스(12), 목적지 디바이스(14), 또는 소스 디바이스(12) 및 목적지 디바이스(14) 모두의 실시예는 하나 이상의 프로세서 및 프로세서(들)에 연결된 메모리를 포함할 수 있다. 메모리는, 여기에 설명된 바와 같이, RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리, 또는 프로그래밍 명령 또는 컴퓨터에 의해 액세스 가능한 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함할 수 있지만 이에 국한되지는 않는다. 소스 디바이스(12) 및 목적지 디바이스(14)는 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북 컴퓨터(예컨대, 랩톱), 태블릿 컴퓨터, 셋톱 박스, 소위 "스마트"폰과 같은 전화 핸드셋, 텔레비전, 카메라, 표시 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량 내 컴퓨터, 무선 통신 디바이스 등을 포함하는 다양한 장치를 포함할 수 있다.
도 1A는 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스로서 묘사하지만, 실시예는 소스 디바이스(12) 및 목적지 디바이스(14) 모두를 또는 소스 디바이스(12) 및 목적지 디바이스(14) 모두의 기능성을, 즉, 소스 디바이스(12) 또는 대응하는 기능성 및 목적지 디바이스(14) 또는 대응하는 기능성을 대안적으로 포함할 수 있다. 그러한 실시예에서, 소스 디바이스(12) 또는 대응하는 기능성 및 목적지 디바이스(14) 또는 대응하는 기능성은 동일한 하드웨어 및/또는 소프트웨어, 별개의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용함으로써 구현될 수 있다.
링크(13)를 통해 소스 디바이스(12)와 목적지 디바이스(14) 사이에서 통신 연결이 수행될 수 있고, 목적지 디바이스(14)는 링크(13)를 통해 소스 디바이스(12)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 링크(13)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 목적지 디바이스(14)로 이동시킬 수 있는 하나 이상의 매체 또는 장치를 포함할 수 있다. 하나의 예에서, 링크(13)는 소스 디바이스(12)가 인코딩된 비디오 데이터를 목적지 디바이스(14)에 실시간으로 직접 송신할 수 있게 하는 하나 이상의 통신 매체를 포함할 수 있다. 이 예에서, 소스 디바이스(12)는 통신 표준(예컨대, 무선 통신 프로토콜)에 따라 인코딩된 비디오 데이터를 변조할 수 있고, 변조된 비디오 데이터를 목적지 디바이스(14)에 송신할 수 있다. 하나 이상의 통신 매체는 무선 통신 매체 및/또는 유선 통신 매체, 예컨대, 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인을 포함할 수 있다. 하나 이상의 통신 매체는 패킷 기반 네트워크의 일부를 형성할 수 있고, 패킷 기반 네트워크는, 예컨대, LAN(local area network), WAN(wide area network), 또는 글로벌 네트워크(예컨대, 인터넷)이다. 하나 이상의 통신 매체는 라우터, 스위치, 기지국, 또는 소스 디바이스(12)로부터 목적지 디바이스(14)로의 통신을 가능하게 하는 다른 디바이스를 포함할 수 있다.
소스 디바이스(12)는 인코더(20)를 포함하고, 하나의 실시예에서, 소스 디바이스(12)는 픽처 소스(16), 픽처 전처리기(preprocessor)(18), 및 통신 인터페이스(22)를 더 포함할 수 있다. 하나의 실시예에서, 인코더(20), 픽처 소스(16), 픽처 전처리기(18), 및 통신 인터페이스(22)는 소스 디바이스(12)에서의 하드웨어 구성요소일 수 있거나, 소스 디바이스(12)에서의 소프트웨어 프로그램일 수 있다. 별도의 설명은 이하와 같다.
픽처 소스(16)는, 예컨대, 실제 픽처를 캡처하도록 구성된 임의의 유형의 픽처 캡처 디바이스, 및/또는 픽처 또는 코멘트(스크린 콘텐츠 인코딩의 경우, 스크린의 일부 텍스트도 인코딩될 픽처 또는 이미지의 일부로서 간주된다)를 생성하기 위한 임의의 유형의 디바이스, 예컨대, 컴퓨터 애니메이션 픽처를 생성하도록 구성된 컴퓨터 그래픽 프로세서, 또는 실제 픽처 또는 컴퓨터 애니메이션 픽처(예컨대, 스크린 콘텐츠 또는 가상 현실(VR) 픽처), 및/또는 이들의 임의의 조합(예컨대, 증강 현실(AR) 픽처)을 획득 및/또는 제공하도록 구성된 임의의 유형의 디바이스이거나 이들을 포함할 수 있다. 픽처 소스(16)는 픽처를 캡처하도록 구성된 카메라 또는 픽처를 저장하도록 구성된 메모리일 수 있다. 픽처 소스(16)는 이전에 캡처되거나 생성된 픽처를 저장하기 위한 또한/또는 픽처를 획득 또는 수신하기 위한 임의의 유형의 (내부 또는 외부) 인터페이스를 더 포함할 수 있다. 픽처 소스(16)가 카메라인 경우, 픽처 소스(16)는, 예컨대, 로컬 카메라 또는 소스 디바이스에 통합된 통합 카메라일 수 있다. 픽처 소스(16)가 메모리인 경우, 픽처 소스(16)는 로컬 메모리 또는 예컨대 소스 디바이스에 통합된 통합 메모리일 수 있다. 픽처 소스(16)가 인터페이스를 포함하는 경우, 인터페이스는, 예컨대, 외부 비디오 소스로부터 픽처를 수신하기 위한 외부 인터페이스일 수 있다. 외부 비디오 소스는, 예컨대, 카메라와 같은 외부 픽처 캡처 디바이스, 외부 메모리, 또는 외부 픽처 생성 디바이스이다. 외부 픽처 생성 디바이스는, 예컨대, 외부 컴퓨터 그래픽 프로세서, 컴퓨터, 또는 서버이다. 인터페이스는, 임의의 독점적 또는 표준화된 인터페이스 프로토콜에 따른, 임의의 유형의 인터페이스, 예컨대, 유선 또는 무선 인터페이스 또는 광학 인터페이스일 수 있다.
픽처는 픽셀(화소)의 2차원 배열 또는 매트릭스로서 간주될 수 있다. 배열의 픽셀은 샘플이라고 지칭될 수도 있다. 배열 또는 픽처의 수평 및 수직 방향(또는 축)에서의 샘플의 수량은 픽처의 크기 및/또는 해상도를 정의한다. 색상의 표현을 위해, 보통 세 가지 색상 성분이 사용된다. 픽처는 세 개의 샘플 배열로서 표현되거나 이들을 포함할 수 있다. 예컨대, RBG 포맷 또는 색 공간에서, 픽처는 대응하는 빨강, 녹색, 및 파랑 샘플 배열을 포함한다. 그러나, 비디오 코딩에서, 각 픽셀은 보통 휘도/색차 포맷 또는 색 공간으로 표현되고, 예컨대, YUV 포맷의 픽처는 Y에 의해 나타내어진(때로는 대안적으로 L에 의해 나타내어진) 휘도 성분 및 U 및 V에 의해 나타내어진 두 개의 색차 성분을 포함한다. 휘도(루마) 성분 Y는 밝기 또는 그레이 레벨 강도(예컨대, 둘 모두는 그레이 스케일 픽처에서 동일하다)를 표현하고, 두 개의 색차(크로마) 성분 U 및 V는 색도 또는 색상 정보 성분을 표현한다. 이에 따라, YUV 포맷의 픽처는 휘도 샘플 값(Y)의 휘도 샘플 배열 및 색차 값(U 및 V)의 두 개의 색차 샘플 배열을 포함한다. RGB 포맷의 픽처는 YUV 포맷으로 변환되거나 변형될 수 있고, 그 반대의 경우도 마찬가지이다. 이 프로세스는 색상 변형 또는 변환이라고도 지칭된다. 픽처가 단색인 경우, 픽처는 휘도 샘플 배열만을 포함할 수 있다. 하나의 실시예에서, 픽처 소스(16)에 의해 픽처 프로세서에 송신된 픽처는 미가공(raw) 픽처 데이터(17)라고 지칭될 수도 있다.
픽처 전처리기(18)는 미가공 픽처 데이터(17)를 수신하고 미가공 픽처 데이터(17)에 대해 전처리를 수행하여 전처리된 픽처(19) 또는 전처리된 픽처 데이터(19)를 획득하도록 구성된다. 예컨대, 픽처 전처리기(18)에 의해 수행되는 전처리는 트리밍, (예컨대, RGB 포맷으로부터 YUV 포맷으로의) 색상 포맷 변형, 색상 보정, 또는 노이즈 제거를 포함할 수 있다.
인코더(20)(비디오 인코더(20)라고도 지칭된다)는 전처리된 픽처 데이터(19)를 수신하고, (본 개시의 각 실시예에서의 예측 모드와 같은) 관련 예측 모드를 사용함으로써 전처리된 픽처 데이터(19)를 처리하여, 인코딩된 픽처 데이터(21)를 제공하도록 구성된다(인코더(20)의 구조적 세부사항은 도 2, 도 4, 또는 도 5에 기초하여 아래에서 더 설명된다). 일부 실시예에서, 인코더(20)는 본 개시에서 설명되는 크로마 블록 예측 방법의 인코더 측 적용을 구현하기 위해 아래에서 설명되는 다양한 실시예를 수행하도록 구성될 수 있다.
통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 인코딩된 픽처 데이터(21)를 저장 또는 직접 복원을 위해 링크(13)를 통해 목적지 디바이스(14) 또는 임의의 다른 디바이스(예컨대, 메모리)에 송신하도록 구성될 수 있다. 다른 디바이스는 디코딩 또는 저장에 사용되는 임의의 디바이스일 수 있다. 통신 인터페이스(22)는, 예컨대, 링크(13)를 통한 송신을 위해, 인코딩된 픽처 데이터(21)를 적절한 포맷, 예컨대, 데이터 패킷으로 인캡슐레이트(encapsulate)하도록 구성될 수 있다.
목적지 디바이스(14)는 디코더(30)를 포함하고, 하나의 실시예에서, 목적지 디바이스(14)는 통신 인터페이스(28), 픽처 후처리기(post processor)(32), 및 표시 디바이스(34)를 더 포함할 수 있다. 별도의 설명은 이하와 같다.
통신 인터페이스(28)는 소스 디바이스(12) 또는 임의의 다른 소스로부터 인코딩된 픽처 데이터(21)를 수신하도록 구성될 수 있다. 임의의 다른 소스는, 예컨대, 저장 디바이스이고, 저장 디바이스는, 예컨대, 인코딩된 픽처 데이터 저장 디바이스이다. 통신 인터페이스(28)는 소스 디바이스(12)와 목적지 디바이스(14) 사이의 링크(13)를 통해 또는 임의의 유형의 네트워크를 통해 인코딩된 픽처 데이터(21)를 송신 또는 수신하도록 구성될 수 있다. 링크(13)는, 예컨대, 직접 유선 또는 무선 연결이고, 임의의 유형의 네트워크는, 예컨대, 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 유형의 사설 또는 공용 네트워크, 또는 이들의 임의의 조합이다. 통신 인터페이스(28)는, 예컨대, 통신 인터페이스(22)를 통해 송신된 데이터 패킷을 디캡슐레이트(decapsulate)하여, 인코딩된 픽처 데이터(21)를 획득하도록 구성될 수 있다.
통신 인터페이스(28) 및 통신 인터페이스(22)는 모두 단방향 통신 인터페이스 또는 양방향 통신 인터페이스로서 구성될 수 있고, 예컨대, 연결을 설정하기 위해 메시지를 송신 및 수신하고, 통신 링크 및/또는 인코딩된 픽처 데이터 송신과 같은 데이터 송신과 관련된 임의의 다른 정보를 ACK(acknowledge) 및 교환하도록 구성될 수 있다.
디코더(30)(비디오 디코더(30)라고도 지칭된다)는 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(디코더(30)의 구조적 세부사항은 도 3, 도 4, 또는 도 5에 기초하여 아래에서 더 설명된다). 일부 실시예에서, 디코더(30)는 본 개시에서 설명되는 크로마 블록 예측 방법의 디코더 측 적용을 구현하기 위해 아래에서 설명되는 다양한 실시예를 수행하도록 구성될 수 있다.
픽처 후처리기(32)는 디코딩된 픽처 데이터(31)(복원된 픽처 데이터라고도 지칭된다)를 후처리하여 후처리된 픽처 데이터(33)를 획득하도록 구성된다. 픽처 후처리기(32)에 의해 수행되는 후처리는 (예컨대, YUV 포맷으로부터 RGB 포맷으로의) 색상 포맷 변형, 색상 보정, 트리밍, 리샘플링, 또는 임의의 다른 처리를 포함할 수 있다. 픽처 후처리기(32)는 후처리된 픽처 데이터(33)를 표시 디바이스(34)에 송신하도록 더 구성될 수 있다.
표시 디바이스(34)는 후처리된 픽처 데이터(33)를 수신하여, 예컨대, 사용자 또는 시청자에게 픽처를 표시하도록 구성된다. 표시 디바이스(34)는 복원된 픽처를 제시하도록 구성된 임의의 유형의 디스플레이, 예컨대, 통합된 또는 외부의 디스플레이 또는 모니터이거나 이들을 포함할 수 있다. 예컨대, 디스플레이는 LCD(liquid crystal display), OLED(organic light emitting diode) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, LCoS(liquid crystal on silicon), DLP(digital light processor), 또는 임의의 유형의 다른 디스플레이를 포함할 수 있다.
도 1A는 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스로서 묘사하지만, 실시예는 소스 디바이스(12) 및 목적지 디바이스(14) 모두를 또는 소스 디바이스(12) 및 목적지 디바이스(14) 모두의 기능성을, 즉, 소스 디바이스(12) 또는 대응하는 기능성 및 목적지 디바이스(14) 또는 대응하는 기능성을 대안적으로 포함할 수 있다. 그러한 실시예에서, 소스 디바이스(12) 또는 대응하는 기능성 및 목적지 디바이스(14) 또는 대응하는 기능성은 동일한 하드웨어 및/또는 소프트웨어, 별개의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용함으로써 구현될 수 있다.
설명에 기초하여 당업자에게 명백해질 것처럼, 도 1A에 나타낸 상이한 유닛의 기능성 또는 소스 디바이스(12) 및/또는 목적지 디바이스(14)의 기능성의 존재 및 (정확한) 분할은 실제 디바이스 및 적용에 따라 달라질 수 있다. 소스 디바이스(12) 및 목적지 디바이스(14)는 임의의 유형의 휴대용 또는 고정 디바이스, 예컨대, 노트북 또는 랩톱 컴퓨터, 모바일 전화, 스마트폰, 태블릿 또는 태블릿 컴퓨터, 카메라, 데스크톱 컴퓨터, 셋톱 박스, 텔레비전, 카메라, 차량 내 디바이스, 표시 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, (콘텐츠 서비스 서버 또는 콘텐츠 전달 서버와 같은) 비디오 스트리밍 디바이스, 방송 수신기 디바이스, 또는 방송 송신기 디바이스를 포함하는 광범위한 디바이스 중 어느 하나를 포함할 수 있고, 임의의 유형의 운영 체제를 사용하지 않거나 사용할 수 있다.
인코더(20) 및 디코더(30)는 각각 다양한 적합한 회로 중 어느 하나, 예컨대, 하나 이상의 마이크로프로세서, DSP(digital signal processor), ASIC(application-specific integrated circuit), FPGA(field-programmable gate array), 개별 논리, 하드웨어, 또는 이들의 임의의 조합으로서 구현될 수 있다. 기술이 소프트웨어에서 부분적으로 구현되는 경우, 디바이스는 소프트웨어 명령을 적절하고 비 일시적인 컴퓨터 판독 가능한 저장 매체에 저장할 수 있고, 하나 이상의 프로세서를 사용함으로써 하드웨어에서 명령을 실행하여, 본 개시의 기술을 수행할 수 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는) 전술한 것 중 임의의 하나는 하나 이상의 프로세서로서 간주될 수 있다.
일부 경우에, 도 1A에 나타낸 비디오 인코딩 및 디코딩 시스템(10)은 단지 예일 뿐이고, 본 개시의 기술은 인코딩 디바이스와 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정(예컨대, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수 있다. 다른 예에서, 데이터는 로컬 메모리로부터 회수되거나, 네트워크를 통해 스트리밍되거나 할 수 있다. 비디오 인코딩 디바이스는 데이터를 인코딩하고 데이터를 메모리에 저장할 수 있고, 또한/또는 비디오 디코딩 디바이스는 메모리로부터 데이터를 회수하고 데이터를 디코딩할 수 있다. 일부 예에서, 인코딩 및 디코딩은 서로 통신하지 않고 단순히 데이터를 메모리에 인코딩하고 또한/또는 메모리로부터 데이터를 회수하여 데이터를 디코딩하는 디바이스에 의해 수행된다.
도 1B는 하나의 실시예에 따른 비디오 코딩 시스템의 예의 예시적인 도면이다. 도 1B를 참조하면, 비디오 코딩 시스템(40)은 하나의 실시예에 따른 도 2의 인코더(20) 및/또는 도 3의 디코더(30)를 포함한다. 비디오 코딩 시스템(40)은 본 개시의 실시예에서 다양한 기술의 조합을 구현할 수 있다. 도 1B에서, 비디오 코딩 시스템(40)은 이미징 디바이스(41), 인코더(20), 디코더(30)(및/또는 처리 유닛(46)의 논리 회로(47)에 의해 구현되는 비디오 인코더/디코더), 안테나(42), 하나 이상의 프로세서(43), 하나 이상의 메모리(44), 및/또는 표시 디바이스(45)를 포함할 수 있다.
도 1B에 나타낸 바와 같이, 이미징 디바이스(41), 안테나(42), 처리 유닛(46), 논리 회로(47), 인코더(20), 디코더(30), 프로세서(43), 메모리(44), 및/또는 표시 디바이스(45)는 서로 통신할 수 있다. 설명된 바와 같이, 비디오 코딩 시스템(40)은 인코더(20) 및 디코더(30)와 함께 예시되지만, 상이한 예에서 비디오 코딩 시스템(40)은 인코더(20)만 또는 디코더(30)만을 포함할 수 있다.
일부 실시예에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 송신 또는 수신하도록 구성될 수 있다. 또한, 일부 실시예에서, 표시 디바이스(45)는 비디오 데이터를 제시하도록 구성될 수 있다. 일부 예에서, 논리 회로(47)는 처리 유닛(46)에 의해 구현될 수 있다. 처리 유닛(46)은 ASIC 로직, 그래픽 프로세서, 범용 프로세서 등을 포함할 수 있다. 비디오 코딩 시스템(40)은 선택적 프로세서(43)를 포함할 수도 있다. 선택적 프로세서(43)는 유사하게 ASIC 로직, 그래픽 프로세서, 범용 프로세서 등을 포함할 수 있다. 일부 실시예에서, 논리 회로(47)는 하드웨어, 예컨대, 비디오 코딩 전용 하드웨어에 의해 구현될 수 있고, 프로세서(43)는 범용 소프트웨어, 운영 체제 등에 의해 구현될 수 있다. 또한, 메모리(44)는 임의의 유형의 메모리, 예컨대, 휘발성 메모리(예컨대, SRAM(static random access memory) 또는 DRAM(dynamic random access memory)) 또는 비 휘발성 메모리(예컨대, 플래시 메모리)일 수 있다. 제한적이지 않은 예에서, 메모리(44)는 캐시 메모리에 의해 구현될 수 있다. 일부 실시예에서, 논리 회로(47)는 (예컨대, 이미지 버퍼의 구현을 위해) 메모리(44)에 액세스할 수 있다. 다른 실시예에서, 논리 회로(47) 및/또는 처리 유닛(46)은 이미지 버퍼 등의 구현을 위해 메모리(예컨대, 캐시)를 포함할 수 있다.
일부 실시예에서, 논리 회로에 의해 구현되는 인코더(20)는 (예컨대, 처리 유닛(46) 또는 메모리(44)에 의해 구현되는) 이미지 버퍼 및 (예컨대, 처리 유닛(46)에 의해 구현되는) 그래픽 처리 유닛을 포함할 수 있다. 그래픽 처리 유닛은 이미지 버퍼에 통신 가능하게 연결될 수 있다. 그래픽 처리 유닛은, 도 2를 참조하여 설명되는 다양한 모듈 및/또는 여기에 설명되는 임의의 다른 인코더 시스템 또는 서브시스템을 구현하기 위해, 논리 회로(47)에 의해 구현되는 인코더(20)를 포함할 수 있다. 논리 회로는 여기에 설명되는 다양한 동작을 수행하도록 구성될 수 있다.
일부 실시예에서, 디코더(30)는 도 3의 디코더(30)를 참조하여 설명되는 다양한 모듈 및/또는 여기에 설명되는 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해 유사한 방식으로 논리 회로(47)에 의해 구현될 수 있다. 일부 실시예에서, 논리 회로에 의해 구현되는 디코더(30)는 (예컨대, 처리 유닛(2820) 또는 메모리(44)에 의해 구현되는) 이미지 버퍼 및 (예컨대, 처리 유닛(46)에 의해 구현되는) 그래픽 처리 유닛을 포함할 수 있다. 그래픽 처리 유닛은 이미지 버퍼에 통신 가능하게 연결될 수 있다. 그래픽 처리 유닛은, 도 3을 참조하여 설명되는 다양한 모듈 및/또는 여기에 설명되는 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해, 논리 회로(47)에 의해 구현되는 디코더(30)를 포함할 수 있다.
일부 실시예에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 설명되는 바와 같이, 인코딩된 비트스트림은 비디오 프레임 인코딩과 관련되고 여기에 설명되는 데이터, 표시자, 인덱스 값, 모드 선택 데이터 등, 예컨대, 코딩 분할과 관련된 데이터(예컨대, 변환 계수 또는 양자화된 변환 계수, (설명된 바와 같은) 선택적 표시자, 및/또는 코딩 분할을 정의하는 데이터)를 포함할 수 있다. 비디오 코딩 시스템(40)은 안테나(42)에 연결되고 인코딩된 비트스트림을 디코딩하도록 구성되는 디코더(30)를 더 포함할 수 있다. 표시 디바이스(45)는 비디오 프레임을 제시하도록 구성된다.
본 개시의 본 실시예에서, 인코더(20)에 관하여 설명된 예에 대해, 디코더(30)는 역 프로세스를 수행하도록 구성될 수 있다는 것이 이해되어야 한다. 구문 요소를 시그널링하는 것에 관하여, 디코더(30)는 그러한 구문 요소를 수신 및 파싱하고 그에 따라 관련 비디오 데이터를 디코딩하도록 구성될 수 있다. 일부 실시예에서, 인코더(20)는 구문 요소를 인코딩된 비디오 비트스트림으로 엔트로피 인코딩할 수 있다. 그러한 예에서, 디코더(30)는 그러한 구문 요소를 파싱하고 그에 따라 관련 비디오 데이터를 디코딩할 수 있다.
본 개시의 본 실시예에서 설명되는 방법은 주로 인터 예측 프로세스에 사용되고, 프로세스는 인코더(20) 및 디코더(30) 모두에 존재한다는 것에 유의해야 한다. 본 개시의 본 실시예의 인코더(20) 및 디코더(30)는 H.263, H.264, HEVV, MPEG-2, MPEG-4, VP8, 및 VP9와 같은 비디오 표준 프로토콜 또는 (H.266과 같은) 차세대 비디오 표준 프로토콜에 대응하는 인코더 및 디코더일 수 있다.
도 2는 하나의 실시예에 따른 인코더의 예의 개략적/개념적 블록도이다. 도 2에서, 인코더(20)는 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210), 역 변환 처리 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩된 픽처 버퍼(DPB)(230), 예측 처리 유닛(260), 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 처리 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254), 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 운동 추정 유닛 및 운동 보상 유닛(도면에는 나타내지 않음)을 포함할 수 있다. 도 2에 나타낸 인코더(20)는 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 따른 비디오 인코더라고 지칭될 수도 있다.
예컨대, 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 예측 처리 유닛(260), 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로를 형성하는 반면, 예컨대, 역 양자화 유닛(210), 역 변환 처리 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터(220), DPB(230), 및 예측 처리 유닛(260)은 인코더의 역방향 신호 경로를 형성하고, 여기서 인코더의 역방향 신호 경로는 디코더(예컨대, 도 3의 디코더(30))의 신호 경로에 대응한다.
인코더(20)는, 예컨대, 입력(202)을 사용함으로써, 픽처(201) 또는 픽처(201)의 픽처 블록(203), 예컨대, 비디오 또는 비디오 시퀀스를 형성하는 일련의 픽처에서의 픽처를 수신한다. 픽처 블록(203)은 현재 픽처 블록 또는 인코딩될 픽처 블록이라고 지칭될 수도 있고, 픽처(201)는 현재 픽처 또는 인코딩될 픽처라고 지칭될 수 있다(특히 비디오 코딩에서 현재 픽처를 다른 픽처와 구별하기 위해, 다른 픽처는, 예컨대, 동일한 비디오 시퀀스, 즉, 현재 픽처도 포함하는 비디오 시퀀스에서의 이전에 인코딩 및/또는 디코딩된 픽처이다).
하나의 실시예에서, 인코더(20)는 픽처(201)를 픽처 블록(203)과 같은 복수의 블록으로 분할하도록 구성된 분할 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 픽처(201)는 일반적으로 복수의 겹치지 않는 블록으로 분할된다. 분할 유닛은 비디오 시퀀스의 모든 픽처에 대해 동일한 블록 크기를 사용하고 블록 크기를 정의하는 대응하는 그리드를 사용하거나, 픽처 또는 서브세트 또는 픽처 그룹 사이에서 블록 크기를 변경하고 각 픽처를 대응하는 블록으로 분할하도록 구성될 수 있다.
하나의 실시예에서, 인코더(20)의 예측 처리 유닛(260)은 위에서 설명된 분할 기술의 임의의 조합을 수행하도록 구성될 수 있다.
픽처(201)와 같이, 픽처 블록(203)도 픽처(201)보다 작은 크기이지만 샘플 값을 갖는 샘플의 2차원 배열 또는 매트릭스이거나 이로서 간주될 수 있다. 다시 말해서, 픽처 블록(203)은, 예컨대, 하나의 샘플 배열(예컨대, 단색 픽처(201)의 경우에 루마 배열), 세 개의 샘플 배열(예컨대, 색상 픽처의 경우에 하나의 루마 배열 및 두 개의 크로마 배열), 또는 적용된 색상 포맷에 따라 임의의 다른 수량 및/또는 유형의 배열을 포함할 수 있다. 픽처 블록(203)의 수평 및 수직 방향(또는 축)에서의 샘플의 수량은 픽처 블록(203)의 크기를 정의한다.
도 2에 나타낸 인코더(20)는 블록 단위로 픽처(201)를 인코딩하도록, 예컨대, 각 픽처 블록(203)에 대해 인코딩 및 예측을 수행하도록 구성된다.
잔차 계산 유닛(204)은 픽처 블록(203) 및 예측 블록(265)(예측 블록(265)에 관한 추가 세부사항은 이하에서 제공된다)에 기초하여 잔차 블록(205)을 계산하도록, 예컨대, 픽처 블록(203)의 샘플 값으로부터 예측 블록(265)의 샘플 값을 샘플 단위로(픽셀 단위로) 감산함으로써 샘플 영역에서 잔차 블록(205)을 획득하도록 구성된다.
변환 처리 유닛(206)은 변환 영역에서 변환 계수(207)를 획득하기 위해 잔차 블록(205)의 샘플 값에 변환, 예컨대, 이산 코사인 변환(DCT) 또는 이산 사인 변환(DST)을 적용하도록 구성된다. 변환 계수(207)는 변환 잔차 계수라고 지칭될 수도 있고 변환 영역에서 잔차 블록(205)을 표현할 수 있다.
변환 처리 유닛(206)은 HEVC/H.265에 대해 지정된 변환과 같은 DCT/DST의 정수 근사치를 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교하면, 그러한 정수 근사치는 보통 계수에 의해 환산된다. 순 변환(forward transform) 및 역 변환을 통해 처리되는 잔차 블록의 놈(norm)을 보존하기 위해, 추가적인 환산 계수(scaling factor)가 변환 프로세스의 일부로서 적용된다. 환산 계수는 보통 일부 제약에 기초하여 선택되고, 예컨대, 환산 계수는 시프트 연산에 대한 2의 거듭제곱, 변환 계수의 비트 심도, 또는 정확도와 구현 비용 사이의 트레이드오프이다. 예컨대, 디코더(30) 측의 역 변환에 대해, 예컨대, 역 변환 처리 유닛(212)에 의해(그리고 인코더(20) 측의 대응하는 역 변환에 대해, 예컨대, 역 변환 처리 유닛(212)에 의해) 특정한 환산 계수가 지정되고, 그에 따라, 인코더(20) 측의 순 변환에 대해 변환 처리 유닛(206)에 의해 대응하는 환산 계수가 지정될 수 있다.
양자화 유닛(208)은, 예컨대, 스칼라 양자화 또는 벡터 양자화를 적용함으로써, 양자화된 변환 계수(209)를 획득하기 위해 변환 계수(207)를 양자화하도록 구성된다. 양자화된 변환 계수(209)는 양자화된 잔차 계수(209)라고 지칭될 수도 있다. 양자화 프로세스는 변환 계수(207)의 일부 또는 전부와 관련된 비트 심도를 줄일 수 있다. 예컨대, 양자화 중에 n비트 변환 계수는 m비트 변환 계수로 버림(round down) 될 수 있고, 여기서 n은 m보다 크다. 양자화 정도는 양자화 파라미터(QP)를 조정함으로써 수정될 수 있다. 예컨대, 스칼라 양자화의 경우, 더 미세하거나 더 거친 양자화를 달성하기 위해 상이한 스케일링이 적용될 수 있다. 더 작은 양자화 스텝은 더 미세한 양자화에 대응하는 반면, 더 큰 양자화 스텝은 더 거친 양자화에 대응한다. 적절한 양자화 스텝은 QP에 의해 나타내어질 수 있다. 예컨대, 양자화 파라미터는 미리 정의된 적절한 양자화 스텝의 세트에 대한 인덱스일 수 있다. 예컨대, 더 작은 양자화 파라미터는 더 미세한 양자화(예컨대, 더 작은 양자화 스텝)에 대응할 수 있고, 더 큰 양자화 파라미터는 더 거친 양자화(예컨대, 더 큰 양자화 스텝)에 대응할 수 있고, 그 반대도 마찬가지이다. 양자화는 양자화 스텝에 의한 나눗셈 및 예컨대 역 양자화(210)에 의한 대응하는 양자화 또는 역 양자화를 포함할 수 있거나, 양자화 스텝에 의한 곱셈을 포함할 수 있다. HEVC와 같은 일부 표준에 따른 실시예는 양자화 스텝을 결정하기 위해 양자화 파라미터를 사용할 수 있다. 일반적으로, 양자화 스텝은 나눗셈을 포함하는 방정식의 고정 소수점 근사(fixed point approximation)를 사용함으로써 양자화 파라미터에 기초하여 계산될 수 있다. 잔차 블록의 놈을 복원하기 위해 양자화 및 역 양자화에 추가적인 환산 계수가 도입될 수 있고, 이는 양자화 스텝 및 양자화 파라미터에 대한 방정식의 고정 소수점 근사에서 사용되는 스케일링 때문에 수정될 수 있다. 하나의 예시적인 실시예에서, 역 변환의 스케일은 역 양자화의 스케일과 결합될 수 있다. 대안적으로, 맞춤화된 양자화 테이블이 사용되고 인코더로부터 디코더에, 예컨대, 비트스트림에서 시그널링될 수 있다. 양자화는 손실이 있는 연산이고, 여기서 양자화 스텝이 클수록 손실이 큰 것을 나타낸다.
역 양자화 유닛(210)은 역 양자화된 계수(211)를 획득하기 위해 양자화 유닛(208)의 역 양자화를 양자화된 계수에 적용하도록, 예컨대, 양자화 유닛(208)과 동일한 양자화 스텝에 기초하여 또는 이를 사용함으로써, 양자화 유닛(208)에 의해 적용된 양자화 방식의 역을 적용하도록 구성된다. 역 양자화된 계수(211)는 역 양자화된 잔차 계수(211)라고 지칭될 수도 있고, 보통 양자화에 의해 초래되는 손실로 인해 변환 계수와 상이하지만, 변환 계수(207)에 대응한다.
역 변환 처리 유닛(212)은 샘플 영역에서 역 변환 블록(213)을 획득하기 위해 변환 처리 유닛(206)에 의해 적용된 변환의 역 변환, 예컨대, 역 DCT 또는 역 DST를 적용하도록 구성된다. 역 변환 블록(213)은 역 변환 역 양자화된 블록(213) 또는 역 변환 잔차 블록(213)이라고 지칭될 수도 있다.
복원 유닛(214)(예컨대, 가산기(214))은, 예컨대, 복원된 잔차 블록(213)의 샘플 값과 예측 블록(265)의 샘플 값을 가산함으로써, 샘플 영역에서 복원된 블록(215)을 획득하기 위해 역 변환 블록(213)(즉, 복원된 잔차 블록(213))을 예측 블록(265)에 가산하도록 구성된다.
하나의 실시예에서, 예컨대, 라인 버퍼(216)의 버퍼 유닛(또는 버퍼)(216)은, 예컨대, 인트라 예측을 위해, 복원된 블록(215) 및 대응하는 샘플 값을 버퍼링하거나 저장하도록 구성된다. 다른 실시예에서, 인코더는 임의의 유형의 추정 및/또는 예측, 예컨대, 인트라 예측을 위해 버퍼 유닛(216)에 저장된 필터링되지 않은 복원된 블록 및/또는 대응하는 샘플 값을 사용하도록 구성될 수 있다.
예컨대, 인코더(20)의 하나의 실시예는, 버퍼 유닛(216)이 인트라 예측(254)을 위해 복원된 블록(215)을 저장하는 데 사용될 뿐만 아니라 루프 필터 유닛(220)(도 2에 나타내지 않음)에도 사용될 수 있도록, 또한/또는, 예컨대, 버퍼 유닛(216) 및 디코딩된 픽처 버퍼 유닛(230)이 하나의 버퍼를 형성할 수 있도록 구성될 수 있다. 다른 실시예는 필터링된 블록(221) 및/또는 디코딩된 픽처 버퍼(230)로부터의 블록 또는 샘플(블록 또는 샘플은 도 2에 나타내어지지 않는다)을 인트라 예측(254)을 위한 입력 또는 기초로서 사용하도록 구성될 수 있다.
루프 필터 유닛(또는 루프 필터)(220)은 복원된 블록(215)을 필터링하여 필터링된 블록(221)을 획득하고, 픽셀 전환을 평활화하거나 비디오 품질을 개선하도록 구성된다. 루프 필터 유닛(220)은 디블로킹 필터, SAO(sample-adaptive offset) 필터, 및 다른 필터, 예컨대, 양방향 필터, ALF(adaptive loop filter), 샤프닝 또는 스무딩 필터, 또는 협력 필터를 포함하는 하나 이상의 루프 필터를 표현하기 위한 것이다. 루프 필터 유닛(220)은 인 루프 필터로서 도 2에 나타내어지지만, 다른 구성에서, 루프 필터 유닛(220)은 포스트 루프 필터로서 구현될 수 있다. 필터링된 블록(221)은 필터링된 복원된 블록(221)이라고 지칭될 수도 있다. 디코딩된 픽처 버퍼(230)는 루프 필터 유닛(220)이 복원된 인코딩된 블록에 대해 필터링 동작을 수행한 후에 복원된 인코딩된 블록을 저장할 수 있다.
인코더(20)(상응하게, 루프 필터 유닛(220))의 하나의 실시예는, 예컨대, 디코더(30)가 동일한 루프 필터 파라미터를 수신하고 동일한 루프 필터 파라미터를 디코딩에 적용할 수 있도록, 예컨대, 직접 또는 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛에 의해 수행되는 엔트로피 인코딩 후에 (SAO 정보와 같은) 루프 필터 파라미터를 출력하도록 구성될 수 있다.
DPB(230)는 인코더(20)에 의한 비디오 데이터 인코딩에서 사용하기 위한 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수 있다. DPB(230)는 (SDRAM(synchronous DRAM), MRAM(magnetoresistive RAM), 및 RRAM(resistive RAM)을 포함하는) DRAM과 같은 다양한 메모리 디바이스 중 어느 하나, 또는 다른 유형의 메모리 디바이스에 의해 형성될 수 있다. DPB(230) 및 버퍼(216)는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스에 의해 제공될 수 있다. 하나의 실시예에서, DPB(230)는 필터링된 블록(221)을 저장하도록 구성된다. DPB(230)는 동일한 현재 픽처 또는 상이한 픽처, 예컨대, 이전에 복원된 픽처의 다른 이전에 필터링된 블록, 예컨대, 이전에 복원되고 필터링된 블록(221)을 저장하도록 더 구성될 수 있고, 예컨대, 인터 예측을 위해, 완전한 이전에 복원된, 즉, 디코딩된 픽처(및 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 복원된 현재 픽처(및 대응하는 참조 블록 및 샘플)를 제공할 수 있다. 하나의 실시예에서, 복원된 블록(215)이 인 루프 필터링 없이 복원되는 경우, DPB(230)는 복원된 블록(215)을 저장하도록 구성된다.
블록 예측 처리 유닛(260)이라고도 지칭되는 예측 처리 유닛(260)은 픽처 블록(203)(예컨대, 현재 픽처(201)의 현재 픽처 블록(203)) 및 복원된 픽처 데이터, 예컨대, 버퍼(216)로부터의 동일한(또는 현재) 픽처의 참조 샘플 및/또는 디코딩된 픽처 버퍼(230)로부터의 하나 이상의 이전에 디코딩된 픽처의 참조 픽처 데이터(231)를 수신하거나 획득하도록, 그리고 예측을 위해 그러한 데이터를 처리하도록, 즉, 인터 예측된 블록(245) 또는 인트라 예측된 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은, 잔차 블록(205)의 계산 및 복원된 블록(215)의 복원을 위해, 예측 모드(예컨대, 인트라 또는 인터 예측 모드) 및/또는 예측 블록(265)으로서 사용될 대응하는 예측 블록(245 또는 255)을 선택하도록 구성될 수 있다.
하나의 실시예에서, 모드 선택 유닛(262)은 (예컨대, 예측 처리 유닛(260)에 의해 지원되는 예측 모드로부터) 예측 모드를 선택하도록 구성될 수 있고, 여기서 예측 모드는 최적의 매칭, 다시 말해서, 최소 잔차(최소 잔차는 송신 또는 저장을 위한 더 나은 압축을 의미한다)를 제공하거나, 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 송신 또는 저장을 위한 더 나은 압축을 의미한다)를 제공하거나, 둘 다를 고려하거나 균형을 유지한다. 모드 선택 유닛(262)은 레이트 왜곡 최적화(RDO)에 기초하여 예측 모드를 결정하도록, 즉, 최소 레이트 왜곡 최적화를 제공하는 예측 모드를 선택하거나 관련 레이트 왜곡이 적어도 예측 모드 선택 기준을 만족시키는 예측 모드를 선택하도록 구성될 수 있다.
이하에서는, 인코더(20)의 예에 의해 (예컨대, 예측 처리 유닛(260)을 사용함으로써) 수행되는 예측 처리 및 인코더(20)의 예에 의해 (예컨대, 모드 선택 유닛(262)을 사용함으로써) 수행되는 모드 선택이 보다 상세하게 설명된다.
위에서 설명된 바와 같이, 인코더(20)는 (미리 결정될 수 있는) 예측 모드의 세트로부터 최선의 또는 최적의 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드의 세트는, 예컨대, 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
인트라 예측 모드의 세트는 35개의 상이한 인트라 예측 모드, 예컨대, DC(또는 평균) 모드 및 평면 모드와 같은 무지향성 모드, 또는 H.265에 정의된 것과 같은 지향성 모드를 포함할 수 있거나, 67개의 상이한 인트라 예측 모드, 예컨대, DC(또는 평균) 모드 및 평면 모드와 같은 무지향성 모드, 또는 개발 중인 H.266에 정의된 것과 같은 지향성 모드를 포함할 수 있다.
하나의 실시예에서, 인터 예측 모드의 세트는 이용 가능한 참조 픽처(즉, 예컨대, 위에서 설명된 바와 같은, DPB(230)에 저장된 적어도 부분적으로 디코딩된 픽처) 및 다른 인터 예측 파라미터에 의존하고, 예컨대, 최적의 매칭 참조 블록을 찾는 데에 전체 참조 픽처가 사용되는지 참조 픽처의 일부만이 사용되는지, 예컨대, 현재 블록의 영역 주변의 검색 창 영역이 사용되는지 여부, 및/또는, 예컨대, 하프/세미 화소 및/또는 쿼터 화소 보간과 같은 픽셀 보간이 적용되는지 여부에 의존한다. 인터 예측 모드의 세트는, 예컨대, AMVP(advanced motion vector predictor) 모드 및 병합 모드를 포함할 수 있다. 하나의 실시예에서, 인터 예측 모드의 세트는 본 개시의 실시예에서 개선되는 제어 포인트에 기초하는 AMVP 모드 및 제어 포인트에 기초하는 병합 모드를 포함할 수 있다. 하나의 예에서, 인트라 예측 유닛(254)은 아래에 설명되는 인트라 예측 기술의 임의의 조합을 수행하도록 구성될 수 있다.
전술한 예측 모드에 추가하여, 본 개시의 실시예에서는 스킵 모드 및/또는 다이렉트 모드가 적용될 수도 있다.
예측 처리 유닛(260)은, 예컨대, 쿼드트리(QT) 분할, 이진 트리(BT) 분할, 트리플 트리(TT) 분할, 또는 이들의 임의의 조합을 반복적으로 사용함으로써 픽처 블록(203)을 더 작은 블록 파티션 또는 서브블록으로 분할하도록, 그리고, 예컨대, 블록 파티션 또는 서브블록의 각각에 대해 예측을 수행하도록 더 구성될 수 있고, 여기서 모드 선택은 분할된 픽처 블록(203)의 트리 구조의 선택 및 블록 파티션 또는 서브블록의 각각에 적용되는 예측 모드를 포함한다.
인터 예측 유닛(244)은 운동 추정(motion estimation, ME) 유닛(도 2에 나타내지 않음) 및 운동 보상(motion compensation, MC) 유닛(역시 도 2에 나타내지 않음)을 포함할 수 있다. 운동 추정 유닛은, 운동 추정을 위해, 픽처 블록(203)(예컨대, 현재 픽처(201)의 현재 픽처 블록(203)) 및 디코딩된 픽처(231), 또는 적어도 하나 이상의 이전에 복원된 블록, 예컨대, 하나 이상의 다른/상이한 이전에 디코딩된 픽처(231)의 복원된 블록을 수신하거나 획득하도록 구성된다. 예컨대, 비디오 시퀀스가 현재 픽처 및 이전에 디코딩된 픽처(31)를 포함할 수 있고, 또는 다시 말해서, 현재 픽처 및 이전에 디코딩된 픽처(31)는 비디오 시퀀스를 형성하는 일련의 픽처의 일부이거나 비디오 시퀀스를 형성하는 일련의 픽처를 형성할 수 있다.
예컨대, 인코더(20)는 복수의 다른 픽처의 동일한 픽처 또는 상이한 픽처의 복수의 참조 블록으로부터 참조 블록을 선택하고, 운동 추정 유닛(도 2에 나타내지 않음)에 참조 픽처를 제공하고 또한/또는 참조 블록의 위치(X 및 Y 좌표)와 현재 블록의 위치 사이의 오프셋(공간적 오프셋)을 인터 예측 파라미터로서 제공하도록 구성될 수 있다. 이 오프셋은 운동 벡터(MV)라고도 지칭된다.
운동 보상 유닛은 인터 예측 파라미터를 획득하고 인터 예측 파라미터에 기초하여 또는 인터 예측 파라미터를 사용함으로써 인터 예측을 수행하여, 인터 예측된 블록(245)을 획득하도록 구성된다. 운동 보상 유닛(도 2에 나타내지 않음)에 의해 수행되는 운동 보상은 (경우에 따라 서브픽셀 정밀도에 대한 보간을 수행하는) 운동 추정을 통해 결정된 운동/블록 벡터에 기초하여 예측 블록을 가져오거나(fetch) 생성하는 것을 포함할 수 있다. 보간 필터링은 알려진 픽셀 샘플로부터 추가적인 픽셀 샘플을 생성할 수 있고, 이에 따라 픽처 블록을 코딩하는 데 사용될 수 있는 후보 예측 블록의 수량을 잠재적으로 증가시킨다. 현재 픽처 블록의 PU에 대한 운동 벡터를 수신하면, 운동 보상 유닛(246)은 하나의 참조 픽처 목록에서 운동 벡터가 가리키는 예측 블록을 찾을 수 있다. 운동 보상 유닛(246)은, 비디오 슬라이스의 픽처 블록을 디코딩함에 있어서 디코더(30)가 사용하기 위한, 블록 및 비디오 슬라이스와 연관된 구문 요소를 더 생성할 수 있다.
하나의 실시예에서, 인터 예측 유닛(244)은 엔트로피 인코딩 유닛(270)에 구문 요소를 송신할 수 있고, 구문 요소는 (복수의 인터 예측 모드의 순회 후에 현재 블록의 예측에 사용되는 인터 예측 모드의 선택의 표시 정보와 같은) 인터 예측 파라미터를 포함한다. 하나의 실시예에서, 하나의 인터 예측 모드만 있는 경우, 인터 예측 파라미터는 대안적으로 구문 요소에서 반송되지 않을 수 있다. 이 경우, 디코더 측(30)은 디폴트 예측 모드로 직접 디코딩을 수행할 수 있다. 인터 예측 유닛(244)은 인터 예측 기술의 임의의 조합을 수행하도록 구성될 수 있다는 것이 이해될 수 있다.
인트라 예측 유닛(254)은 인트라 추정을 위해 픽처 블록(203)(현재 픽처 블록) 및 동일한 픽처의 하나 이상의 이전에 복원된 블록, 예컨대, 복원된 이웃 블록을 획득하도록, 예컨대, 수신하도록 구성된다. 인코더(20)는, 예컨대, (미리 결정될 수 있는) 복수의 인트라 예측 모드로부터 인트라 예측 모드를 선택하도록 구성될 수 있다.
하나의 실시예에서, 인코더(20)는 최적화 기준에 기초하여, 예컨대, 최소 잔차 또는 최소 레이트 왜곡에 기초하여 인트라 예측 모드(예컨대, 현재 픽처 블록(203)과 가장 유사한 예측 블록(255)을 제공하는 인트라 예측 모드)를 선택하도록 구성될 수 있다.
인트라 예측 유닛(254)은, 인트라 예측 파라미터, 예컨대, 선택된 인트라 예측 모드에 기초하여, 인트라 예측 블록(255)을 결정하도록 더 구성된다. 어떤 경우에도, 블록에 대한 인트라 예측 모드를 선택한 후, 인트라 예측 유닛(254)은 인트라 예측 파라미터, 즉, 블록에 대한 선택된 인트라 예측 모드를 나타내는 정보를 엔트로피 인코딩 유닛(270)에 제공하도록 더 구성된다. 하나의 예에서, 인트라 예측 유닛(254)은 인트라 예측 기술의 임의의 조합을 수행하도록 구성될 수 있다.
하나의 실시예에서, 인트라 예측 유닛(254)은 구문 요소를 엔트로피 인코딩 유닛(270)에 송신할 수 있고, 구문 요소는 (복수의 인트라 예측 모드의 순회 후에 현재 블록의 예측에 사용되는 인트라 예측 모드의 선택의 표시 정보와 같은) 인트라 예측 파라미터를 포함한다. 하나의 실시예에서, 하나의 인트라 예측 모드만 있는 경우, 인트라 예측 파라미터는 대안적으로 구문 요소에서 반송되지 않을 수 있다. 이 경우, 디코더 측(30)은 디폴트 예측 모드로 직접 디코딩을 수행할 수 있다.
엔트로피 인코딩 유닛(270)은 엔트로피 인코딩 알고리즘 또는 방식(예컨대, VLC(variable length coding) 방식, CAVLC(context adaptive VLC) 방식, 산술 코딩 방식, CABAC(context adaptive binary arithmetic coding), SBAC(syntax-based context-adaptive binary arithmetic coding), PIPE(probability interval partitioning entropy) 코딩, 또는 다른 엔트로피 인코딩 방법 또는 기술)을 양자화된 잔차 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 루프 필터 파라미터에 개별적으로 또는 공동으로 적용하여(또는 전혀 적용하지 않음), 예컨대, 인코딩된 비트스트림(21)의 형태로 출력(272)에 의해 출력될 수 있는 인코딩된 픽처 데이터(21)를 획득하도록 구성된다. 인코딩된 비트스트림은 비디오 디코더(30)에 송신되거나, 비디오 디코더(30)에 의한 추후의 송신 또는 회수를 위해 보관될 수 있다. 엔트로피 인코딩 유닛(270)은 인코딩되고 있는 현재 비디오 슬라이스에 대한 다른 구문 요소를 엔트로피 인코딩하도록 더 구성될 수 있다.
비디오 스트림을 인코딩하기 위해 비디오 인코더(20)의 다른 구조적 변형이 사용될 수 있다. 예컨대, 비 변환 기반 인코더(20)는 일부 블록 또는 프레임에 대해 변환 처리 유닛(206) 없이 직접 잔차 신호를 양자화할 수 있다. 다른 실시예에서, 인코더(20)는 단일 유닛으로 결합된 양자화 유닛(208) 및 역 양자화 유닛(210)을 가질 수 있다.
하나의 실시예에서, 인코더(20)는 이하의 실시예에서 설명되는 인터 예측 방법을 구현하도록 구성될 수 있다.
비디오 스트림을 인코딩하기 위해 비디오 인코더(20)의 다른 구조적 변형이 사용될 수 있다는 것이 이해되어야 한다. 예컨대, 일부 픽처 블록 또는 이미지 프레임에 대해, 비디오 인코더(20)는 변환 처리 유닛(206)에 의한 처리 없이, 그리고 그에 따라, 역 변환 처리 유닛(212)에 의한 처리 없이 직접 잔차 신호를 양자화할 수 있다. 대안적으로, 일부 픽처 블록 또는 이미지 프레임에 대해, 비디오 인코더(20)는 잔차 데이터를 생성하지 않고, 그리고 그에 따라, 변환 처리 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210), 및 역 변환 처리 유닛(210)은 처리를 수행할 필요가 없다. 대안적으로, 비디오 인코더(20)는, 필터(220)에 의한 처리 없이, 복원된 픽처 블록을 참조 블록으로서 직접 저장할 수 있다. 대안적으로, 비디오 인코더(20)에서의 양자화 유닛(208)과 역 양자화 유닛(210)은 함께 결합될 수 있다. 루프 필터(220)는 선택적이고, 무손실 압축 코딩의 경우, 변환 처리 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210), 및 역 변환 처리 유닛(212)은 선택적이다. 상이한 적용 시나리오에서, 인터 예측 유닛(244) 및 인트라 예측 유닛(254)은 선택적으로 사용 가능하게 될 수 있다는 것이 이해되어야 한다.
도 3은 하나의 실시예에 따른 디코더의 예의 개략적/개념적 블록도이다. 도 3을 참조하면, 비디오 디코더(30)는, 예컨대, 인코더(20)에 의해 인코딩되는 인코딩된 픽처 데이터(예컨대, 인코딩된 비트스트림)(21)를 수신하여, 디코딩된 픽처(231)를 획득하도록 구성된다. 디코딩 프로세스에서, 비디오 디코더(30)는 비디오 데이터, 예컨대, 인코딩된 비디오 슬라이스의 픽처 블록 및 연관된 구문 요소를 표현하는 인코딩된 비디오 비트스트림을 비디오 인코더(20)로부터 수신한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역 양자화 유닛(310), 역 변환 처리 유닛(312), 복원 유닛(314)(예컨대, 가산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 픽처 버퍼(330), 및 예측 처리 유닛(360)을 포함한다. 예측 처리 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354), 및 모드 선택 유닛(362)을 포함할 수 있다. 일부 예에서, 비디오 디코더(30)는 도 2의 비디오 인코더(20)를 참조하여 설명된 인코딩 단계에 일반적으로 역(reciprocal)인 디코딩 단계를 수행할 수 있다.
엔트로피 디코딩 유닛(304)은, 예컨대, 양자화된 계수(309) 및/또는 디코딩된 인코딩 파라미터(도 3에 나타내지 않음), 예컨대, 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터, 및/또는 (디코딩되는) 다른 구문 요소 중 어느 하나 또는 모두를 획득하기 위해 인코딩된 픽처 데이터(21)에 대해 엔트로피 디코딩을 수행하도록 구성된다. 엔트로피 디코딩 유닛(304)은 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 다른 구문 요소를 예측 처리 유닛(360)에 전달하도록 더 구성된다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 구문 요소를 수신할 수 있다.
역 양자화 유닛(310)은 역 양자화 유닛(110)과 동일한 기능을 가질 수 있고, 역 변환 처리 유닛(312)은 역 변환 처리 유닛(212)과 동일한 기능을 가질 수 있고, 복원 유닛(314)은 복원 유닛(214)과 동일한 기능을 가질 수 있고, 버퍼(316)는 버퍼(216)와 동일한 기능을 가질 수 있고, 루프 필터(320)는 루프 필터(220)와 동일한 기능을 가질 수 있고, 디코딩된 픽처 버퍼(330)는 디코딩된 픽처 버퍼(230)와 동일한 기능을 가질 수 있다.
예측 처리 유닛(360)은 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함할 수 있고, 여기서 인터 예측 유닛(344)은 기능에서 인터 예측 유닛(244)과 유사할 수 있고, 인트라 예측 유닛(354)은 기능에서 인트라 예측 유닛(254)과 유사할 수 있다. 예측 처리 유닛(360)은 일반적으로 블록 예측을 수행하고 또한/또는 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하고, (명시적으로 또는 암시적으로) 예측 관련 파라미터 및/또는 선택된 예측 모드에 관한 정보를, 예컨대, 엔트로피 디코딩 유닛(304)으로부터 수신하거나 획득하도록 구성된다.
비디오 슬라이스가 인트라 인코딩된(I) 슬라이스로서 인코딩되는 경우, 예측 처리 유닛(360)의 인트라 예측 유닛(354)은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 픽처의 이전에 디코딩된 블록으로부터의 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 비디오 프레임이 인터 인코딩된(즉, B 또는 P) 슬라이스로서 인코딩되는 경우, 예측 처리 유닛(360)의 인터 예측 유닛(344)(예컨대, 운동 보상 유닛)은 엔트로피 디코딩 유닛(304)으로부터 수신된 운동 벡터 및 다른 구문 요소에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 인터 예측을 위해, 하나의 참조 픽처 목록에서의 참조 픽처 중 하나로부터 예측 블록이 생성될 수 있다. 비디오 디코더(30)는 DPB(330)에 저장된 참조 픽처에 기초하여 디폴트 구성 기술을 사용함으로써 참조 프레임 목록, 즉 목록 0 및 목록 1을 구성할 수 있다.
예측 처리 유닛(360)은 운동 벡터 및 다른 구문 요소를 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록을 생성하기 위해 예측 정보를 사용하도록 구성된다. 본 발명의 하나의 예에서, 예측 처리 유닛(360)은 비디오 슬라이스의 비디오 블록, 인터 예측 슬라이스 유형(예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 목록 중 하나 이상에 대한 구성 정보, 슬라이스의 각 인터 인코딩된 비디오 블록에 대한 운동 벡터, 슬라이스의 각 인터 인코딩된 비디오 블록에 대한 인터 예측 상태, 및 다른 정보를 인코딩하는 데 사용되는 예측 모드(예컨대, 인트라 또는 인터 예측)를 결정하기 위해 수신된 구문 요소 중 일부를 사용하여, 현재 비디오 슬라이스에서의 비디오 블록을 디코딩한다. 다른 실시예에서, 비트스트림으로부터 비디오 디코더(30)에 의해 수신된 구문 요소는 APS(adaptive parameter set), SPS(sequence parameter set), PPS(picture parameter set), 또는 슬라이스 헤더 중 하나 이상에 구문 요소를 포함한다.
역 양자화 유닛(310)은 비트스트림으로 제공되고 엔트로피 디코딩 유닛(304)에 의해 디코딩된 양자화된 변환 계수를 반대로 양자화(즉, 역 양자화)하도록 구성될 수 있다. 역 양자화 프로세스는, 적용되어야 하는 양자화 정도, 그리고, 마찬가지로, 적용되어야 하는 역 양자화 정도를 결정하기 위해, 비디오 슬라이스에서의 각 비디오 블록에 대해 비디오 인코더(20)에 의해 계산된 양자화 파라미터를 사용하는 것을 포함할 수 있다.
역 변환 처리 유닛(312)은 역 변환(예컨대, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역 변환 프로세스)을 변환 계수에 적용하여 픽셀 영역에서 잔차 블록을 생성하도록 구성된다.
복원 유닛(314)(예컨대, 가산기(314))은, 예컨대, 복원된 잔차 블록(313)의 샘플 값과 예측 블록(365)의 샘플 값을 가산함으로써, 샘플 영역에서 복원된 블록(315)을 획득하기 위해 역 변환 블록(313)(즉, 복원된 잔차 블록(313))을 예측 블록(365)에 가산하도록 구성된다.
(코딩 루프에서의 또는 코딩 루프 이후의) 루프 필터 유닛(320)은 복원된 블록(315)을 필터링하여 필터링된 블록(321)을 획득하여, 픽셀 전환을 평활화하거나 비디오 품질을 개선하도록 구성된다. 하나의 예에서, 루프 필터 유닛(320)은 아래에서 설명되는 필터링 기술의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은 디블로킹 필터, SAO(sample-adaptive offset) 필터, 및 다른 필터, 예컨대, 양방향 필터, ALF(adaptive loop filter), 샤프닝 또는 스무딩 필터, 또는 협력 필터를 포함하는 하나 이상의 루프 필터를 표현하기 위한 것이다. 루프 필터 유닛(320)은 도 3에 인 루프 필터로서 나타내어지지만, 다른 구성에서, 루프 필터 유닛(320)은 포스트 루프 필터로서 구현될 수 있다.
그리고, 특정한 프레임 또는 픽처에서의 디코딩된 비디오 블록(321)은 이후의 운동 보상에 사용되는 참조 픽처를 저장하는 디코딩된 픽처 버퍼(330)에 저장된다.
디코더(30)는, 예컨대, 사용자에 대한 제시나 사용자에 의한 시청을 위해, 출력(332)을 사용함으로써 디코딩된 픽처(31)를 출력하도록 구성된다.
비디오 디코더(30)의 다른 변형은 압축된 비트스트림을 디코딩하도록 구성될 수 있다. 예컨대, 디코더(30)는 루프 필터 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예컨대, 비 변환 기반 디코더(30)는 일부 블록 또는 프레임에 대해 역 변환 처리 유닛(312) 없이 직접 잔차 신호를 반대로 양자화할 수 있다. 다른 실시예에서, 비디오 디코더(30)는 단일 유닛으로 결합된 역 양자화 유닛(310) 및 역 변환 처리 유닛(312)을 가질 수 있다.
하나의 실시예에서, 디코더(30)는 이하의 실시예에서 설명되는 인터 예측 방법을 구현하도록 구성된다.
비디오 디코더(30)의 다른 구조적 변형이 인코딩된 비디오 비트스트림을 디코딩하도록 구성될 수 있다는 것이 이해되어야 한다. 예컨대, 비디오 디코더(30)는 필터(320)에 의한 처리 없이 출력 비디오 스트림을 생성할 수 있다. 대안적으로, 일부 픽처 블록 또는 이미지 프레임에 대해, 비디오 디코더(30)의 엔트로피 디코딩 유닛(304)은 디코딩을 통해 양자화된 계수를 획득하지 않고, 그에 따라, 역 양자화 유닛(310) 및 역 변환 처리 유닛(312)이 처리를 수행할 필요가 없다. 루프 필터(320)는 선택적이고, 무손실 압축의 경우, 역 양자화 유닛(310) 및 역 변환 처리 유닛(312)은 선택적이다. 상이한 적용 시나리오에서, 인터 예측 유닛 및 인트라 예측 유닛은 선택적으로 사용 가능하게 될 수 있다는 것이 이해되어야 한다.
인코더(20) 및 디코더(30)에서는, 절차에 대한 처리 결과는 더 처리된 후에 다음 절차에 출력될 수 있다는 것이 이해되어야 한다. 예컨대, 보간 필터링, 운동 벡터 도출, 또는 루프 필터링과 같은 절차 후에, 대응하는 절차의 처리 결과에 대해 클립 또는 시프트와 같은 연산이 더 수행된다.
예컨대, 이웃한 아핀(affine) 코딩된 블록의 운동 벡터로부터 도출된 현재 픽처 블록의 제어 포인트의 운동 벡터가 더 처리될 수 있다. 이것은 여기에서 제한되지 않는다. 예컨대, 운동 벡터의 값 범위는 특정한 비트 심도 내로 제한된다. 운동 벡터의 허용된 비트 심도가 bitDepth라고 가정하면, 운동 벡터 범위는 -2^(bitDepth-1)로부터 2^(bitDepth-1)-1까지이고, 여기서 부호 "^"는 거듭제곱을 표현한다. bitDepth가 16이면, 값 범위는 -32768로부터 32767까지이다. bitDepth가 18이면, 값 범위는 -131072로부터 131071까지이다. 값 범위는 이하의 두 가지 방식으로 제한될 수 있다.
방식 1 : 운동 벡터의 오버플로하는 고차 비트를 제거 :
ux=(vx+2bitDepth)%2bitDepth
vx=(ux≥2bitDepth-1)?(ux-2bitDepth): ux
uy=(vy+2bitDepth)%2bitDepth
vy=(uy≥2bitDepth-1)?(uy-2bitDepth): uy
예컨대, vx의 값은 -32769이고, 32767은 전술한 식을 사용함으로써 획득된다. 값은 2의 보수 형태로 컴퓨터에 저장되고, -32769의 이진 보충 코드는 1,0111,1111,1111,1111(17비트)이고, 컴퓨터는 고차 비트를 폐기함으로써 오버플로를 처리한다. 따라서, vx의 값은 0111,1111,1111,1111, 즉, 32767이고, 이는 식을 사용함으로써 처리를 통해 획득된 결과와 일치한다.
방식 2 : 이하의 식에 나타낸 바와 같이, 운동 벡터에 대해 클리핑을 수행 :
vx=Clip3(-2bitDepth-1, 2bitDepth-1-1, vx)
vy=Clip3(-2bitDepth-1, 2bitDepth-1-1, vy)
여기서 Clip3은 z의 값을 범위 [x, y]로 클리핑하는 것을 나타내도록 정의되고,
이다.
도 4는 하나의 실시예에 따른 비디오 코딩 디바이스의 개략적인 구조도이다. 도 4에서, 비디오 코딩 디바이스(400)(예컨대, 비디오 인코딩 디바이스 또는 비디오 디코딩 디바이스)는 여기에 설명된 실시예를 구현하기에 적합하다. 하나의 실시예에서, 비디오 코딩 디바이스(400)는 비디오 디코더(예컨대, 도 1A의 디코더(30)) 또는 비디오 인코더(예컨대, 도 1A의 인코더(20))일 수 있다. 다른 실시예에서, 비디오 코딩 디바이스(400)는 도 1A의 디코더(30) 또는 도 1A의 인코더(20)의 하나 이상의 구성요소일 수 있다.
비디오 코딩 디바이스(400)는 데이터를 수신하도록 구성되는 진입 포트(410) 및 수신기 유닛(Rx)(420)과, 데이터를 처리하도록 구성되는 프로세서, 논리 유닛, 또는 CPU(central processing unit)(430)와, 데이터를 송신하도록 구성되는 송신기 유닛(Tx)(440) 및 진출 포트(450)와, 데이터를 저장하도록 구성된 메모리(460)를 포함한다. 비디오 코딩 디바이스(400)는, 광 신호 또는 전기 신호의 진출 또는 진입을 위해, 진입 포트(410), 수신기 유닛(420), 송신기 유닛(440), 및 진출 포트(450)에 연결된 광-전기 구성요소 및 전기-광(EO) 구성요소를 더 포함할 수 있다.
프로세서(430)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(430)는 하나 이상의 CPU 칩, 코어(예컨대, 멀티 코어 프로세서), FPGA, ASIC, 및 DSP로서 구현될 수 있다. 프로세서(430)는 진입 포트(410), 수신기 유닛(420), 송신기 유닛(440), 진출 포트(450), 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)(예컨대, 인코딩 모듈 또는 디코딩 모듈)을 포함한다. 코딩 모듈(470)은 여기에 개시된 실시예를 구현하고, 본 개시의 실시예에서 제공되는 크로마 블록 예측 방법을 구현한다. 예컨대, 코딩 모듈(470)은 다양한 코딩 동작을 구현, 처리, 또는 제공한다. 따라서, 코딩 모듈(470)을 포함하는 것은 비디오 코딩 디바이스(400)의 기능에 실질적인 개선을 제공하고 비디오 코딩 디바이스(400)의 상이한 상태로의 변환에 영향을 미친다. 대안적으로, 코딩 모듈(470)은 메모리(460)에 저장되고 프로세서(430)에 의해 실행되는 명령으로서 구현된다.
메모리(460)는 하나 이상의 디스크, 테이프 드라이브, 및 솔리드 스테이트 드라이브를 포함하고, 프로그램이 선택적으로 실행될 때 그러한 프로그램을 저장하고 프로그램 실행 동안 판독되는 명령 및 데이터를 저장하기 위한 오버플로 데이터 저장 디바이스로서 사용될 수 있다. 메모리(460)는 휘발성 및/또는 비 휘발성일 수 있고, ROM, RAM, TCAM(ternary content-addressable memory), 및/또는 SRAM(static random access memory)일 수 있다.
도 5는 하나의 실시예에 따른 장치의 단순화된 블록도이다. 도 5에서, 장치(500)는 하나의 실시예에 따른 도 1A의 소스 디바이스(12) 및 목적지 디바이스(14) 중 어느 하나 또는 둘로서 사용될 수 있다. 장치(500)는 본 개시의 기술을 구현할 수 있다. 다시 말해서, 도 5는 하나의 실시예에 따른 인코딩 디바이스 또는 디코딩 디바이스(코딩 디바이스라고 지칭됨)의 실시예의 개략적인 블록도이다. 도 5를 계속 참조하면, 코딩 디바이스(500)는 프로세서(510), 메모리(530), 및 버스 시스템(550)을 포함할 수 있다. 프로세서는 버스 시스템을 사용함으로써 메모리에 연결되고, 메모리는 명령을 저장하도록 구성되고, 프로세서는 메모리에 저장된 명령을 실행하도록 구성된다. 코딩 디바이스의 메모리는 프로그램 코드를 저장한다. 프로세서는 메모리에 저장된 프로그램 코드를 불러와서, 여기에 설명된 비디오 인코딩 또는 디코딩 방법, 특히, 다양한 새로운 인터 예측 방법을 수행할 수 있다. 반복을 피하기 위해, 세부사항은 여기서 다시 설명되지 않는다.
하나의 실시예에서, 프로세서(510)는 CPU(central processing unit)일 수 있거나, 프로세서(510)는 다른 범용 프로세서, DSP(digital signal processor), ASIC(application-specific integrated circuit), FPGA(field-programmable gate array) 또는 다른 프로그램 가능한 논리 디바이스, 개별 게이트 또는 트랜지스터 논리 디바이스, 개별 하드웨어 구성요소 등일 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 프로세서는 임의의 종래의 프로세서 등일 수 있다.
메모리(530)는 ROM(read-only memory) 디바이스 또는 RAM(random access memory) 디바이스를 포함할 수 있다. 임의의 다른 적절한 유형의 저장 디바이스도 메모리(530)로서 사용될 수 있다. 메모리(530)는 버스(550)를 사용함으로써 프로세서(510)에 의해 액세스되는 코드 및 데이터(531)를 포함할 수 있다. 메모리(530)는 운영 체제(533) 및 애플리케이션 프로그램(535)을 더 포함할 수 있다. 애플리케이션 프로그램(535)은 프로세서(510)가 여기에 설명된 비디오 인코딩 또는 디코딩 방법(특히, 여기에 설명된 인터 예측 방법)을 수행할 수 있게 하는 적어도 하나의 프로그램을 포함한다. 예컨대, 애플리케이션 프로그램(535)은 애플리케이션 1 내지 N을 포함할 수 있고, 여기에 설명된 비디오 인코딩 또는 디코딩 방법을 수행하는 비디오 인코딩 또는 디코딩 애플리케이션(비디오 코딩 애플리케이션이라고 지칭됨)을 더 포함한다.
버스 시스템(550)은 데이터 버스 외에 전력 버스, 제어 버스, 상태 신호 버스 등을 더 포함할 수 있다. 그러나, 명확한 설명을 위해, 도면에서의 다양한 유형의 버스는 버스 시스템(550)으로서 표시된다.
하나의 실시예에서, 코딩 디바이스(500)는 하나 이상의 출력 디바이스, 예컨대, 디스플레이(570)를 더 포함할 수 있다. 예에서, 디스플레이(570)는 디스플레이와 터치 입력을 동작 가능하게 감지하는 터치 유닛을 결합하는 터치 디스플레이일 수 있다. 디스플레이(570)는 버스(550)를 사용함으로써 프로세서(510)에 연결될 수 있다.
순방향 예측은, 현재 코딩 블록에 대해, 참조 블록을 획득하기 위해 순방향 참조 픽처 세트로부터 참조 픽처를 선택하는 것을 의미한다. 역방향 예측은, 현재 코딩 블록에 대해, 참조 블록을 획득하기 위해 역방향 참조 픽처 세트로부터 참조 픽처를 선택하는 것을 의미한다. 양방향 예측은 참조 블록을 획득하기 위해 순방향 및 역방향 참조 픽처 세트의 각각으로부터 참조 픽처를 선택하는 것을 의미한다. 양방향 예측 방법이 사용되는 경우, 현재 코딩 블록은 두 개의 참조 블록을 갖는다. 각 참조 블록은 표시를 위한 운동 벡터 및 참조 프레임 인덱스를 필요로 한다. 그리고, 현재 블록에서의 픽셀의 픽셀 값의 예측 값은 두 개의 참조 블록에서의 픽셀의 픽셀 값에 기초하여 결정된다.
인터 예측 모드는 AMVP(advanced motion vector predictor) 모드 및 병합 모드를 포함할 수 있지만 이에 제한되지는 않는다.
AMVP 모드에서, 현재 코딩 블록에 공간적으로 또는 시간적으로 인접한 코딩된 블록의 운동 정보를 사용함으로써 후보 운동 벡터 목록이 먼저 구성되고, 다음으로 최적의 운동 벡터가 현재 코딩 블록의 운동 벡터 예측자(MVP)로서 후보 운동 벡터 목록으로부터 결정된다. 레이트 왜곡 비용은 식 (1)을 사용함으로써 계산되고, 여기서 J는 레이트 왜곡 비용 RD Cost이고, SAD는 후보 운동 벡터 예측자를 사용함으로써 수행되는 운동 추정을 통해 획득되는 예측된 픽셀 값과 원래 픽셀 값 사이의 절대 차이의 합(sum of absolute differences, SAD)이고, R은 비트 레이트이고, λ는 라그랑주 승수(Lagrange multiplier)이다. 인코더 측은 후보 운동 벡터 목록에서의 선택된 운동 벡터 예측자의 인덱스 값 및 참조 프레임 인덱스 값을 획득하여 디코더 측에 전송한다. 또한, 현재 코딩 블록의 실제 운동 벡터를 획득하기 위해, MVP를 중심으로 한 근방에서 운동 검출이 수행된다. 인코더 측은 MVP와 실제 운동 벡터 사이의 차이(예컨대, 운동 벡터 차이)를 디코더 측에 전송한다.
J=SAD+λR … (1)
병합 모드에서는, 현재 코딩 블록과 공간적으로 또는 시간적으로 인접한 코딩된 블록의 운동 정보를 사용함으로써 후보 운동 정보 목록이 먼저 구성되고, 다음으로 레이트 왜곡 비용을 사용함으로써 후보 운동 정보 목록으로부터 최적의 운동 정보가 결정되어, 현재 코딩 블록의 운동 정보로서 사용되고, 다음으로 후보 운동 정보 목록에서의 최적의 운동 정보의 위치의 인덱스 값(병합 인덱스로서 표시됨)이 획득되어 디코더 측에 전송된다. 병합 인덱스는 최적의 운동 정보를 획득하기 위해 사용될 수 있다. 현재 코딩 블록의 공간적 및 시간적 후보 운동 정보가 하나의 실시예에 따른 공간적 및 시간적 후보 운동 정보의 개략적인 블록도인 도 6에 나타내어진다. 공간적 후보 운동 정보는 다섯 개의 공간적으로 인접한 블록(A0, A1, B0, B1, B2)으로부터의 것이다. 인접한 블록이 이용 불가능하거나 인트라 코딩 모드에 있는 경우, 인접한 블록은 후보 운동 정보 목록에 추가되지 않는다. 현재 코딩 블록의 시간적 후보 운동 정보는 참조 프레임에서의 대응하는 위치 블록의 MV가 참조 프레임 및 현재 프레임의 POC(picture order count)에 기초하여 스케일링된 후에 획득된다. 참조 프레임에서의 위치가 T인 블록이 이용 가능한지 여부가 먼저 결정된다. 블록이 이용 불가능한 경우, 위치가 C인 블록이 선택된다.
운동 정보는 참조 픽처 정보 및 운동 벡터 중 적어도 하나를 포함한다. 참조 픽처 정보는 단방향/양방향 예측 정보, 참조 픽처 목록, 및/또는 참조 픽처 목록에 대응하는 참조 픽처 인덱스 중 적어도 하나를 포함할 수 있다. 운동 벡터는 수평 및 수직 방향에서의 위치 시프트를 지칭한다.
병합 후보 목록에는, 이력 기반 운동 벡터 예측자(운동 벡터 예측자HMVP) 후보 세트가 도입된다. HMVP의 도입은 이하와 같다.
인터 코딩을 위한 운동 벡터 예측자HMVP 방법 : HMVP에서, HMVP 후보의 테이블이 온더플라이(on-the-fly)로 유지되고 업데이트된다. 비 아핀 인터 코딩된 블록(non-affine inter-coded block)을 디코딩한 후, 테이블의 마지막 항목에 연관된 새로운 운동 정보를 새로운 HMVP 후보로서 추가함으로써 테이블이 업데이트된다. 제한된 FIFO 규칙이 적용되어 항목을 제거하고 테이블에 추가한다. HMVP 후보는 병합 후보 목록 또는 AMVP 후보 목록에 적용될 수 있다.
다용도 비디오 코딩(VVC)에서, 비 아핀 인터 코딩된 블록의 운동 벡터는 AMVP(advanced motion vector predictor) 모드 또는 병합 모드의 두 가지 방식으로 시그널링될 수 있다. AMVP 모드의 경우, 실제 운동 벡터와 운동 벡터 예측자(MVP) 사이의 차이, 참조 인덱스, AMVP 후보 목록을 참조하는 MVP 인덱스가 시그널링된다. 병합 모드의 경우, 병합 후보 목록을 참조하는 병합 인덱스가 시그널링되고 병합 후보와 연관된 모든 운동 정보가 상속된다.
AMVP 후보 목록 및 병합 후보 목록은 모두 시간적으로 또는 공간적으로 이웃하는 코딩된 블록으로부터 유도된다. 일반적인 테스트 조건에서, 최대 여섯 개의 병합 후보 및 최대 두 개의 AMVP 후보가 운동 벡터 예측자에 대한 후보 목록에 추가될 수 있다.
HMVP 후보는 이전에 코딩된 블록의 운동 정보로서 정의된다. 복수의 HMVP 후보를 갖는 테이블은 인코딩/디코딩 동안 유지된다. 새로운 슬라이스가 발견되면 테이블이 비워진다. 인터 코딩된 비 아핀 블록이 있을 때마다, 연관된 운동 정보가 새로운 HMVP 후보로서 테이블의 마지막 항목에 추가된다. 전체적인 코딩 흐름은 도 7에 묘사된다.
이 기여에서, 이제 (하나의 실시예에 따른 테이블 업데이트의 개략적인 블록도인) 도 8을 참조하면, 테이블 크기 S는 6으로 설정되고, 이는 최대 여섯 개의 HMVP 후보가 테이블에 추가될 수 있는 것을 나타낸다. 새로운 운동 후보를 테이블에 삽입할 때, 테이블에 동일한 HMVP가 있는지 확인하기 위해 중복 검사가 처음 적용될 때 제한된 FIFO 규칙이 활용된다. 발견되면, 동일한 HMVP가 테이블로부터 제거되고 이후 모든 HMVP 후보가 앞으로 이동되고, 즉, 인덱스가 1만큼 감소된다.
HMVP 후보는 병합 후보 목록 구성 프로세스에서 사용될 수 있다. 테이블에서의 최근 몇 개의 HMVP 후보가 순서대로 검사되고 후보 목록에 TMVP 후보 뒤에 삽입된다. 서브블록 운동 후보(즉, ATMVP)를 제외한 공간적 또는 시간적 병합 후보에 대한 HMVP 후보에 대해 프루닝(pruning)이 적용된다.
프루닝 동작의 수량을 줄이기 위해, 세 가지 단순화가 도입된다.
1) L에 의해 표시된 검사될 HMPV 후보의 수량은 이하와 같이 설정된다.
L=(N≤4)?M:(8-N) (1)
여기서 N은 이용 가능한 비 서브블록 병합 후보의 수량을 나타내고 M은 테이블에서의 이용 가능한 HMVP 후보의 수량을 나타낸다.
2) 또한, 이용 가능한 병합 후보의 총 수량이 시그널링된 최대로 허용된 병합 후보의 수량에서 1을 뺀 값에 도달하면, HMVP 목록으로부터의 병합 후보 목록 구성 프로세스가 종료된다.
3) 또한, 결합된 이중 예측 병합 후보 도출을 위한 페어의 수량은 12로부터 6으로 감소된다.
유사하게, HMVP 후보는 AMVP 후보 목록 구성 프로세스에서도 사용될 수 있다. 테이블에서의 마지막 K개의 HMVP 후보의 운동 벡터는 TMVP 후보 뒤에 삽입된다. AMVP 타겟 참조 픽처와 동일한 참조 픽처를 갖는 HMVP 후보만이 AMVP 후보 목록을 구성하는 데 사용된다. HMVP 후보에 대해 프루닝이 적용된다. 이 기여에서, K는 4로 설정되고 AMVP 목록 크기는 변경되지 않은 채 유지되고, 즉, 2와 같다.
HMVP 후보 세트에서의 HMVP 후보는 병합 후보 목록에서의 후보의 수량이 최대 후보의 수량에 도달할 때까지 병합 후보 목록에 채워진다.
이력 기반 MVP(HMVP) 병합 후보가 병합 목록에 공간적 MVP 및 TMVP 뒤에 추가된다. 이 방법에서는, 이전에 코딩된 블록의 운동 정보가 테이블에 저장되어 현재 CU에 대한 MVP로서 사용된다. 다수의 HMVP 후보를 갖는 테이블은 인코딩/디코딩 프로세스 동안 유지된다. 새로운 CTU 행(row)이 발견되면, 테이블이 리셋된다(비워진다). 비 서브블록 인터 코딩된 CU가 있을 때마다, 연관된 운동 정보가 새로운 HMVP 후보로서 테이블의 마지막 항목에 추가된다.
HMVP 테이블 크기 S는 6으로 설정되고, 이는 최대 여섯 개의 이력 기반 MVP(HMVP) 후보가 테이블에 추가될 수 있는 것을 나타낸다. 새로운 운동 후보를 테이블에 삽입할 때, 제한된 FIFO(first-in-first-Out) 규칙이 활용되고, 테이블에 동일한 HMVP가 있는지 여부를 알아내기 위해 중복 검사가 먼저 적용된다. 발견되면, 동일한 HMVP가 테이블로부터 제거되고, 이후 모든 HMVP 후보가 앞으로 이동된다.
HMVP 후보는 병합 후보 목록 구성 프로세스에서 사용될 수 있다. 테이블에서의 최근 몇 개의 HMVP 후보가 순서대로 검사되고 후보 목록에 TMVP 후보 뒤에 삽입된다. 중복 검사는 공간적 또는 시간적 병합 후보에 대한 HMVP 후보에 대해 적용된다.
중복 검사 동작의 수를 줄이기 위해, 이하의 단순화가 도입된다.
병합 목록 생성에 사용되는 HMPV 후보의 수는 (N≤4)?M:(8-N)으로 설정되고, 여기서 N은 병합 목록에서의 기존 후보의 수를 나타내고 M은 테이블에서의 이용 가능한 HMVP 후보의 수를 나타낸다.
이용 가능한 병합 후보의 총수가 최대로 허용된 병합 후보에서 1을 뺀 값에 도달하면, HMVP로부터의 병합 후보 목록 구성 프로세스가 종료된다.
그러나, 병합 후보 목록에는, 페어와이즈 평균 후보도 도입된다. 페어와이즈 평균 후보의 도입은 이하와 같다.
페어와이즈 평균 후보는 현재 병합 후보 목록에서 후보의 미리 정의된 페어를 평균화함으로써 생성되고, 미리 정의된 페어는 {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}으로 정의되고, 여기서 수는 병합 후보 목록에 대한 병합 인덱스를 나타낸다. 평균화된 운동 벡터가 각 참조 목록에 대해 별개로 계산된다. 하나의 목록에서 두 운동 벡터 모두가 이용 가능한 경우, 이들 두 운동 벡터는 상이한 참조 픽처를 가리키는 경우에도 평균화되고, 하나의 운동 벡터만이 이용 가능한 경우, 하나의 운동 벡터가 직접 사용되고, 운동 벡터가 이용 가능하지 않은 경우, 이 목록은 무효를 유지한다. 페어와이즈 평균 후보는 HEVC 표준에서 결합된 후보를 대체한다. 페어와이즈 평균 후보의 복잡도 분석이 테이블 1에 요약된다. 평균화를 위한 추가적인 계산의 최악의 경우(테이블 1의 마지막 열), 각 페어에 대해 네 번의 추가 및 네 번의 시프트가 필요하고(L0 및 L1에서의 MVx 및 MVy), 각 페어에 대해 네 번의 참조 인덱스 비교가 필요하다(L0 및 L1에서 refIdx0은 유효하고 refIdx1은 유효하다). 총 24회의 추가, 24회의 시프트, 24회의 참조 인덱스 비교로 이어지는 여섯 개의 페어가 있다. HEVC 표준에서의 결합된 후보는 각 페어에 대해 두 번의 참조 인덱스 비교를 사용하고(refIdx0은 L0에서 유효하고 refIdx1은 L1에서 유효하다), 총 24회의 참조 인덱스 비교로 이어지는 12개의 페어가 있다.
병합 목록 크기 | 잠재적 후보의 최대 수량 | 후보 비교의 최대 수량 | MV 스케일링의 최대 수량 | 시간적 후보의 최대 수량 | 추가적 로컬 버퍼 | 메모리 액세스의 최대 수량 | 기타 |
6, 8, 10 | 6 | 0 | 0 | 0 | 0 | 0 | HEVC 결합된 후보를 교체, 평균화를 위한 추가적 계산이 필요 |
페어와이즈 평균 후보는 기존의 병합 후보 목록에서 후보의 미리 정의된 페어를 평균화함으로써 생성되고, 미리 정의된 페어는 {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}으로 정의되고, 여기서 수는 병합 후보 목록에 대한 병합 인덱스를 나타낸다. 평균화된 운동 벡터가 각 참조 목록에 대해 별개로 계산된다. 하나의 목록에서 두 운동 벡터 모두가 이용 가능한 경우, 이들 두 운동 벡터는 상이한 참조 픽처를 가리키는 경우에도 평균화되고, 하나의 운동 벡터만이 이용 가능한 경우, 하나를 직접 사용하고, 운동 벡터가 이용 가능하지 않은 경우, 이 목록을 무효로 유지한다.페어와이즈 평균 병합 후보가 추가된 후에 병합 목록이 가득 차지 않으면, 최대 병합 후보 수를 만날 때까지 제로 MVP가 마지막에 삽입된다.
도 9는 실시예에 따른 인터 예측 방법의 개략적인 흐름도이다. 도 9의 방법은 코더가 (버퍼 크기와 같은) 코더와 연관된 미리 설정된 크기보다 큰 크기의 이미지 블록을 처리할 수 있게 한다. 방법은 하드웨어, 소프트웨어, 또는 이들의 임의의 조합에 의해 구현될 수 있다. 방법은 인터 예측 유닛(244 또는 344)에 의해 구현될 수 있다. 방법은 디코딩 방법 또는 인코딩 방법일 수 있다. 도 9에 나타낸 바와 같이, 방법은 이하의 동작을 포함한다.
동작 S901. ((도 1의 인코더(20) 또는 디코더(30)와 같은) 코더 또는 비디오 코딩 시스템은) 현재 픽처 블록의 병합 후보 목록을 구성한다. 현재 픽처 블록은 코딩 블록, CU, PU, 또는 TU 등일 수 있다. 현재 픽처 블록은 임의의 크기 및 치수일 수 있다.
동작 S902. (시스템은) 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적은 경우, HMVP 후보 운동 정보를 병합 후보 목록에 추가하고, 여기서 N은 양의 정수이다.
동작 S903. (시스템은) 병합 후보 목록에 기초하여 현재 픽처 블록의 운동 정보를 획득한다.
동작 S904. (시스템은) 현재 픽처 블록의 운동 정보에 기초하여 현재 픽처 블록의 예측된 블록을 결정한다.
하나의 실시예에서, N은 1, 2, 또는 3일 수 있다.
하나의 실시예에서, 병합 후보 목록에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것은 현재 픽처 블록의 병합 인덱스 또는 병합 후보 목록에 대한 병합 인덱스를 획득하는 것과, 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것을 포함할 수 있다. 현재 픽처 블록의 병합 인덱스 또는 병합 후보 목록에 대한 병합 인덱스를 획득하는 것은 비트스트림을 파싱함으로써 병합 인덱스를 획득하는 것을 포함할 수 있다. 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것은 병합 인덱스를 사용함으로써 병합 후보 목록으로부터 운동 정보를 획득하는 것을 포함할 수 있다. 병합 인덱스는 병합 후보 목록에서 운동 정보의 위치를 나타내는 데 사용될 수 있다.
하나의 실시예에서, 병합 후보 목록에 기초하여 현재 픽처 블록의 운동 정보를 획득하는 것은 레이트 왜곡 비용을 사용하여 병합 후보 목록으로부터 운동 정보를 결정하는 것을 포함할 수 있다. 방법은 비트스트림에서 병합 인덱스를 병합 후보 목록으로 인코딩하는 것을 더 포함할 수 있다.
하나의 실시예에서, 예측된 블록은 예측 블록이라고 지칭될 수 있다.
하나의 실시예에서, 현재 픽처 블록은 코딩 블록, 코딩 단위, 또는 예측 단위일 수 있다.
하나의 실시예에서, 병합 후보 목록의 최대 후보 수량은 병합 운동 벡터 예측자(MVP) 후보의 최대 수라고 지칭될 수 있다.
하나의 실시예에서, HMVP 후보 운동 정보는 이력 기반 병합 후보 또는 이력 기반 MVP(HMVP) 병합 후보라고 지칭될 수 있다.
하나의 실시예에서, 방법은 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값과 같은 경우에 페어와이즈 평균 후보 운동 정보를 병합 후보 목록에 추가하는 것을 더 포함한다.
하나의 실시예에서, 페어와이즈 평균 후보 운동 정보는 병합 후보 목록에서 미리 정의된 MVP 후보의 페어를 평균화함으로써 생성된다.
하나의 실시예에서, 페어와이즈 평균 후보 운동 정보는 페어와이즈 평균 후보라고 지칭될 수 있다.
하나의 실시예에서, 병합 후보 목록에서, 이용 가능한 후보는 미리 결정된 후보 스캔 순서로 목록에 임포트된다. HMVP 후보 세트에서의 하나의 HMVP 후보가 병합 목록에 임포트된 후에 병합 후보 목록이 병합 목록의 최대 후보 수량에서 N(N≥1)을 뺀 값에 도달하지 않으면, HMVP 후보 세트에서의 HMVP 후보가 병합 목록에 계속 임포트된다.
다른 실시예에서, 병합 후보 목록에서, 이용 가능한 후보는 미리 결정된 후보 스캔 순서로 목록에 임포트된다. HMVP 후보 세트에서의 하나의 HMVP 후보가 병합 목록에 임포트된 후에 병합 후보 목록이 병합 목록의 최대 후보 수량에서 N(N≥1)을 뺀 값에 도달하지 않으면, HMVP 후보 세트에서의 HMVP 후보가 병합 목록에 계속 임포트된다. 병합 목록에서의 후보의 수량이 최대 후보 수량에서 N(N≥1)을 뺀 값이면, 페어와이즈 평균 후보가 병합 목록에 임포트된다.
전술한 방법과 동일한 독창적인 아이디어에 기초하여, 본 발명의 실시예는 인터 예측 장치를 더 제공하고, 여기서 인터 예측 장치는 구성 유닛 및 예측 블록 결정 유닛을 포함한다. 구성 유닛 및 예측 블록 결정 유닛은 인코더 측 또는 디코더 측에서 인터 예측 프로세스에 적용될 수 있다는 것에 유의해야 한다. 특히, 인코더 측에서, 이들 유닛은 전술한 인코더(20)의 예측 처리 유닛(260)에서의 인터 예측 유닛(244)에 적용될 수 있고, 디코더 측에서, 이들 유닛은 전술한 디코더(30)의 예측 처리 유닛(360)에서의 인터 예측 유닛(344)에 적용될 수 있다.
운동 정보 결정 유닛 및 예측 블록 결정 유닛의 특정한 내용에 대해서는, 발명의 내용을 포함하는 전술한 내용의 설명을 참조하라는 것에 더 유의해야 한다. 본 개시의 간결함을 위해, 세부사항은 여기서 다시 설명되지 않는다.
하나의 실시예에서, 구성 유닛 및 예측 유닛은 하드웨어, 소프트웨어, 또는 이들의 임의의 조합에 의해 구현될 수 있다.
하나의 실시예에서, 구성 유닛은 현재 픽처 블록의 병합 후보 목록을 구성하고, 병합 후보 목록에서의 후보 운동 정보의 수량이 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적은 경우, HMVP 후보 운동 정보를 병합 후보 목록에 추가하도록 구성되고 - 여기서 N은 양의 정수임 - , 예측 유닛은 현재 픽처 블록의 병합 인덱스를 획득하고, 병합 후보 목록 및 병합 인덱스에 기초하여 현재 픽처 블록의 운동 정보를 획득하고, 현재 픽처 블록의 운동 정보에 기초하여 현재 픽처 블록의 예측된 블록을 결정하도록 구성된다.
운동 정보 결정 유닛 및 예측 블록 결정 유닛의 특정한 내용에 대해서는, 발명의 내용을 포함하는 전술한 내용의 설명을 참조하라는 것에 더 유의해야 한다. 본 명세서의 간결함을 위해, 세부사항은 여기서 다시 설명되지 않는다.
이하는 전술한 실시예에 나타낸 인코딩 방법 및 디코딩 방법과 이들을 사용하는 시스템의 응용의 설명이다.
도 10은 콘텐츠 배포 서비스를 실현하기 위한 콘텐츠 공급 시스템(3100)을 나타내는 블록도이다. 이 콘텐츠 공급 시스템(3100)은 캡처 디바이스(3102), 단말 디바이스(3106)를 포함하고, 선택적으로 디스플레이(3126)를 포함한다. 캡처 디바이스(3102)는 통신 링크(3104)를 통해 단말 디바이스(3106)와 통신한다. 통신 링크는 위에서 설명된 통신 채널(13)을 포함할 수 있다. 통신 링크(3104)는 WIFI, 이더넷, 케이블, 무선(3G/4G/5G), USB, 또는 이들의 임의의 종류의 조합 등을 포함하지만 이에 제한되지 않는다.
캡처 디바이스(3102)는 데이터를 생성하고, 위의 실시예에서 나타낸 바와 같은 인코딩 방법에 의해 데이터를 인코딩할 수 있다. 대안적으로, 캡처 디바이스(3102)는 스트리밍 서버(도면에 나타내지 않음)에 데이터를 배포할 수 있고, 서버는 데이터를 인코딩하고 인코딩된 데이터를 단말 디바이스(3106)에 송신한다. 캡처 디바이스(3102)는 카메라, 스마트폰 또는 패드, 컴퓨터 또는 랩톱, 화상 회의 시스템, PDA, 차량 탑재 디바이스, 또는 이들의 조합 등을 포함하지만 이에 제한되지는 않는다. 예컨대, 캡처 디바이스(3102)는 위에서 설명된 바와 같은 소스 디바이스(12)를 포함할 수 있다. 데이터가 비디오를 포함하는 경우, 캡처 디바이스(3102)에 포함된 비디오 인코더(20)는 실제로 비디오 인코딩 처리를 수행할 수 있다. 데이터가 오디오(즉, 음성)를 포함하는 경우, 캡처 디바이스(3102)에 포함된 오디오 인코더는 실제로 오디오 인코딩 처리를 수행할 수 있다. 일부 실제 시나리오의 경우, 캡처 디바이스(3102)는 인코딩된 비디오 및 오디오 데이터를 함께 다중화함으로써 배포한다. 다른 실제 시나리오의 경우, 예컨대 화상 회의 시스템에서는, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터가 다중화되지 않는다. 캡처 디바이스(3102)는 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터를 단말 디바이스(3106)에 개별적으로 배포한다.
콘텐츠 공급 시스템(3100)에서, 단말 디바이스(310)는 인코딩된 데이터를 수신하여 재생한다. 단말 디바이스(3106)는 상술한 인코딩된 데이터를 디코딩할 수 있는 스마트폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR)/디지털 비디오 레코더(DVR)(3112), TV(3114), 셋톱 박스(STB)(3116), 화상 회의 시스템(3118), 비디오 감시 시스템(3120), PDA(personal digital assistant)(3122), 차량 탑재 디바이스(3124), 또는 이들의 조합 등과 같은 데이터 수신 및 복구 기능을 갖는 디바이스일 수 있다. 예컨대, 단말 디바이스(3106)는 위에서 설명된 바와 같은 목적지 디바이스(14)를 포함할 수 있다. 인코딩된 데이터가 비디오를 포함하는 경우, 단말 디바이스에 포함된 비디오 디코더(30)가 비디오 디코딩을 수행하도록 우선된다. 인코딩된 데이터가 오디오를 포함하는 경우, 단말 디바이스에 포함된 오디오 디코더가 오디오 디코딩 처리를 수행하도록 우선된다.
디스플레이를 갖는 단말 디바이스, 예컨대, 스마트폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR)/디지털 비디오 레코더(DVR)(3112), TV(3114), PDA(personal digital assistant)(3122), 또는 차량 탑재 디바이스(3124)의 경우, 단말 디바이스는 디코딩된 데이터를 디스플레이에 공급할 수 있다. 디스플레이가 갖춰지지 않은 단말 디바이스, 예컨대, STB(3116), 화상 회의 시스템(3118), 또는 비디오 감시 시스템(3120)의 경우, 외부 디스플레이(3126)가 내부에 접촉되어 디코딩된 데이터를 수신하고 보여준다.
본 시스템에서의 각 디바이스가 코딩 또는 디코딩을 수행할 때, 상술한 실시예에 나타낸 바와 같은, 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스가 사용될 수 있다.
도 11은 단말 디바이스(3106)의 예의 구조를 나타내는 도면이다. 단말 디바이스(3106)가 캡처 디바이스(3102)로부터 스트림을 수신한 후, 프로토콜 진행 유닛(3202)이 스트림의 송신 프로토콜을 분석한다. 프로토콜은 RTSP(Real Time Streaming Protocol), HTTP(Hyper Text Transfer Protocol), HLS(HTTP Live streaming protocol), MPEG-DASH, RTP(Real-time Transport Protocol), RTMP(Real Time Messaging Protocol), 또는 이들의 임의의 종류의 조합 등을 포함하지만 이에 국한되지는 않는다.
프로토콜 진행 유닛(3202)이 스트림을 처리한 후, 스트림 파일이 생성된다. 파일은 역 다중화 유닛(3204)에 출력된다. 역 다중화 유닛(3204)은 다중화된 데이터를 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터로 분리할 수 있다. 위에서 설명된 바와 같이, 일부 실제 시나리오의 경우, 예컨대 화상 회의 시스템에서는, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터가 다중화되지 않는다. 이러한 상황에서, 인코딩된 데이터는 역 다중화 유닛(3204)을 통하지 않고서 비디오 디코더(3206) 및 오디오 디코더(3208)에 송신된다.
역 다중화 처리를 통해, 비디오 기본 스트림(elementary stream, ES), 오디오 ES, 및 선택적으로 자막이 생성된다. 상술한 실시예에서 설명된 바와 같은 비디오 디코더(30)를 포함하는 비디오 디코더(3206)는 상술한 실시예에 나타낸 바와 같은 디코딩 방법에 의해 비디오 ES를 디코딩하여 비디오 프레임을 생성하고, 이 데이터를 동기 유닛(3212)에 공급한다. 오디오 디코더(3208)는 오디오 ES를 디코딩하여 오디오 프레임을 생성하고, 이 데이터를 동기 유닛(3212)에 공급한다. 대안적으로, 비디오 프레임은 동기 유닛(3212)에 공급하기 전에 버퍼(도 11에 나타내지 않음)에 저장할 수 있다. 유사하게, 오디오 프레임은 동기 유닛(3212)에 공급하기 전에 버퍼(도 11에 나타내지 않음)에 저장할 수 있다.
동기 유닛(3212)은 비디오 프레임 및 오디오 프레임을 동기화하고, 비디오/오디오를 비디오/오디오 디스플레이(3214)에 공급한다. 예컨대, 동기 유닛(3212)은 비디오 및 오디오 정보의 제시를 동기화한다. 정보는 코딩된 오디오 및 시각 데이터의 제시에 관련된 타임 스탬프 및 데이터 스트림 자체의 전달에 관련된 타임 스탬프를 사용하여 구문에서 코딩할 수 있다.
자막이 스트림에 포함되는 경우, 자막 디코더(3210)는 자막을 디코딩하고, 비디오 프레임 및 오디오 프레임과 동기화하고, 비디오/오디오/자막 디스플레이(3216)에 비디오/오디오/자막을 공급한다.
본 발명은 상술한 시스템에 제한되지 않고, 상술한 실시예에서의 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스는 다른 시스템, 예컨대, 자동차 시스템에 통합될 수 있다.
당업자는 여기에 개시되고 설명된 다양한 예시적인 논리 블록, 모듈, 및 알고리즘 스텝을 참조하여 설명된 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 구현될 수 있다는 것을 이해할 수 있다. 소프트웨어에 의해 구현되는 경우, 다양한 예시적인 논리 블록, 모듈, 및 스텝을 참조하여 설명된 기능은 하나 이상의 명령 또는 코드로서 컴퓨터 판독 가능한 매체에 저장되거나 컴퓨터 판독 가능한 매체를 통해 송신될 수 있고 하드웨어 기반 처리 유닛에 의해 실행될 수 있다. 컴퓨터 판독 가능한 매체는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독 가능한 저장 매체, 또는 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송(예컨대, 통신 프로토콜)을 가능하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독 가능한 매체는 일반적으로 (1) 비 일시적인 유형의 컴퓨터 판독 가능한 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 여기에 설명된 기술을 구현하기 위한 명령, 코드, 및/또는 데이터 구조를 회수하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능한 매체를 포함할 수 있다.
제한이 아닌 예로서, 그러한 컴퓨터 판독 가능한 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결은 컴퓨터 판독 가능한 매체라고 적절히 지칭된다. 예컨대, 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL(digital subscriber line), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술을 통해 명령이 송신되는 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독 가능한 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호, 또는 다른 일시적인 매체를 포함하지 않고, 실제로는 비 일시적인 유형의 저장 매체를 의미한다는 것이 이해되어야 한다. 여기에서 사용되는 디스크(disk 및 disc)는 CD(compact disc), 레이저 디스크, 광 디스크, DVD(digital versatile disc), 및 Blu-ray 디스크를 포함한다. 디스크(disk)는 보통 데이터를 자기적으로 재생하는 반면, 디스크(disc)는 데이터를 레이저로 광학적으로 재생한다. 전술한 것의 조합도 컴퓨터 판독 가능한 매체의 범위 내에 포함되어야 한다.
명령은 하나 이상의 DSP(digital signal processor), 범용 마이크로프로세서, ASIC(application-specific integrated circuit), FPGA(field-programmable gate array), 또는 다른 동등한 집적 또는 분리 논리 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 여기에서 사용된 "프로세서"라는 용어는 여기에 설명된 기술을 구현하기에 적합한 전술한 구조 중 어느 하나 또는 임의의 다른 구조를 지칭할 수 있다. 또한, 일부 측면에서, 여기에 설명된 다양한 예시적인 논리 블록, 모듈, 및 스텝을 참조하여 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에서 제공될 수 있거나, 결합된 코덱에 통합될 수 있다. 또한, 기술은 하나 이상의 회로 또는 논리 요소에서 완전히 구현될 수 있다.
본 개시의 기술은 무선 핸드셋, 집적 회로(IC), 또는 IC의 집합(예컨대, 칩셋)을 포함하는 매우 다양한 장치 또는 디바이스에서 구현될 수 있다. 개시된 기술을 수행하도록 구성된 장치의 기능적 측면을 강조하기 위해 다양한 구성요소, 모듈, 또는 유닛이 여기에 설명되지만, 반드시 상이한 하드웨어 유닛에 의해 구현되는 것은 아니다. 실제로, 위에서 설명된 바와 같이, 다양한 유닛은, 적합한 소프트웨어 및/또는 펌웨어와 합동하여, 코덱 하드웨어 유닛에 결합되거나, (위에서 설명된 하나 이상의 프로세서를 포함하는) 상호 운용되는 하드웨어 유닛에 의해 제공될 수 있다.
전술한 실시예에서, 각 실시예의 설명은 각각의 초점을 갖는다. 실시예에서 상세하게 설명되지 않는 부분에 대해서는, 다른 실시예에서의 관련 설명을 참조하라.
전술한 설명은 단지 본 개시의 특정한 구현의 예일 뿐이고, 본 개시의 보호 범위를 제한하려는 것이 아니다. 여기에 개시된 기술 범위 내에서 당업자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 개시의 보호 범위 내에 속할 것이다. 따라서, 본 개시의 보호 범위는 청구범위의 보호 범위에 따를 것이다.
Claims (15)
- 인터 예측 방법으로서, 상기 방법은,
현재 픽처 블록의 병합 후보 목록을 구성하는 것과,
상기 병합 후보 목록에서의 후보 운동 정보의 수량이 상기 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적은 경우, HMVP 후보 운동 정보를 상기 병합 후보 목록에 추가하는 것 - 여기서 N은 양의 정수임 - 과,
상기 현재 픽처 블록의 병합 인덱스를 획득하는 것과,
상기 병합 후보 목록 및 상기 병합 인덱스에 기초하여 상기 현재 픽처 블록의 운동 정보를 획득하는 것과,
상기 현재 픽처 블록의 상기 운동 정보에 기초하여 상기 현재 픽처 블록의 예측된 블록을 결정하는 것
을 포함하는
방법.
- 제 1 항에 있어서,
상기 방법은, 상기 병합 후보 목록에서의 후보 운동 정보의 수량이 상기 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값과 같은 경우, 페어와이즈(pairwise) 평균 후보 운동 정보를 상기 병합 후보 목록에 추가하는 것을 더 포함하는
방법.
- 제 2 항에 있어서,
상기 페어와이즈 평균 후보 운동 정보는 상기 병합 후보 목록에서 미리 정의된 MVP 후보의 페어를 평균화함으로써 생성되는
방법.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 병합 후보 목록 및 상기 병합 인덱스에 기초하여 상기 현재 픽처 블록의 운동 정보를 획득하는 것은 상기 병합 인덱스를 사용함으로써 상기 병합 후보 목록으로부터 운동 정보를 획득하는 것을 포함할 수 있는
방법.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 병합 후보 목록에 기초하여 상기 현재 픽처 블록의 운동 정보를 획득하는 것은 레이트 왜곡 비용(rate-distortion cost)을 사용하여 상기 병합 후보 목록으로부터 상기 운동 정보를 결정하는 것을 포함할 수 있는
방법.
- 인터 예측 장치로서,
프로세서와,
상기 프로세서에 의해 실행되면, 상기 프로세서가 동작을 수행할 수 있게 하는 명령을 저장하기 위해 상기 프로세서에 연결된 메모리
를 포함하고,
상기 동작은,
현재 픽처 블록의 병합 후보 목록을 구성하는 것과,
상기 병합 후보 목록에서의 후보 운동 정보의 수량이 상기 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적은 경우, HMVP 후보 운동 정보를 상기 병합 후보 목록에 추가하는 것 - 여기서 N은 양의 정수임 - 과,
상기 현재 픽처 블록의 병합 인덱스를 획득하는 것과,
상기 병합 후보 목록 및 상기 병합 인덱스에 기초하여 상기 현재 픽처 블록의 운동 정보를 획득하는 것과,
상기 현재 픽처 블록의 상기 운동 정보에 기초하여 상기 현재 픽처 블록의 예측된 블록을 결정하는 것
을 포함하는
장치.
- 제 6 항에 있어서,
상기 동작은, 상기 병합 후보 목록에서의 후보 운동 정보의 수량이 상기 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값과 같은 경우, 페어와이즈(pairwise) 평균 후보 운동 정보를 상기 병합 후보 목록에 추가하는 것을 더 포함하는
장치.
- 제 7 항에 있어서,
상기 페어와이즈 평균 후보 운동 정보는 상기 병합 후보 목록에서 미리 정의된 MVP 후보의 페어를 평균화함으로써 생성되는
장치.
- 제 6 항 내지 제 8 항 중 어느 한 항에 있어서,
상기 병합 후보 목록 및 상기 병합 인덱스에 기초하여 상기 현재 픽처 블록의 운동 정보를 획득하는 상기 동작은 상기 병합 인덱스를 사용함으로써 상기 병합 후보 목록으로부터 운동 정보를 획득하는 것을 포함할 수 있는
장치.
- 제 6 항 내지 제 8 항 중 어느 한 항에 있어서,
상기 병합 후보 목록에 기초하여 상기 현재 픽처 블록의 운동 정보를 획득하는 상기 동작은 레이트 왜곡 비용을 사용하여 상기 병합 후보 목록으로부터 상기 운동 정보를 결정하는 것을 포함할 수 있는
장치.
- 인터 예측 장치로서,
현재 픽처 블록의 병합 후보 목록을 구성하고, 상기 병합 후보 목록에서의 후보 운동 정보의 수량이 상기 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값보다 적은 경우, HMVP 후보 운동 정보를 상기 병합 후보 목록에 추가하도록 구성된 구성 유닛 - 여기서 N은 양의 정수임 - 과,
상기 현재 픽처 블록의 병합 인덱스를 획득하고, 상기 병합 후보 목록 및 상기 병합 인덱스에 기초하여 상기 현재 픽처 블록의 운동 정보를 획득하고, 상기 현재 픽처 블록의 상기 운동 정보에 기초하여 상기 현재 픽처 블록의 예측된 블록을 결정하도록 구성된 예측 유닛
을 포함하는
장치.
- 제 11 항에 있어서,
상기 구성 유닛은, 상기 병합 후보 목록에서의 후보 운동 정보의 수량이 상기 병합 후보 목록의 최대 후보 수량에서 N을 뺀 값과 같은 경우, 페어와이즈 평균 후보 운동 정보를 상기 병합 후보 목록에 추가하도록 더 구성되는
장치.
- 제 12 항에 있어서,
상기 페어와이즈 평균 후보 운동 정보는 상기 병합 후보 목록에서 미리 정의된 MVP 후보의 페어를 평균화함으로써 생성되는
장치.
- 제 11 항 내지 제 13 항 중 어느 한 항에 있어서,
상기 예측 유닛은 상기 병합 인덱스를 사용함으로써 상기 병합 후보 목록으로부터 운동 정보를 획득하도록 구성되는
장치.
- 제 11 항 내지 제 13 항 중 어느 한 항에 있어서,
상기 예측 유닛은 레이트 왜곡 비용을 사용하여 상기 병합 후보 목록으로부터 상기 운동 정보를 결정하도록 구성되는
장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862744106P | 2018-10-10 | 2018-10-10 | |
US62/744,106 | 2018-10-10 | ||
PCT/CN2019/110488 WO2020073973A1 (en) | 2018-10-10 | 2019-10-10 | Inter prediction method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210072064A true KR20210072064A (ko) | 2021-06-16 |
Family
ID=70163773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217013764A KR20210072064A (ko) | 2018-10-10 | 2019-10-10 | 인터 예측 방법 및 장치 |
Country Status (10)
Country | Link |
---|---|
US (1) | US11765343B2 (ko) |
KR (1) | KR20210072064A (ko) |
CN (5) | CN114584788B (ko) |
AU (1) | AU2019356644B2 (ko) |
BR (1) | BR112021006892A2 (ko) |
CA (1) | CA3115867C (ko) |
MX (1) | MX2021004176A (ko) |
PH (1) | PH12021550791A1 (ko) |
SG (1) | SG11202103661XA (ko) |
WO (1) | WO2020073973A1 (ko) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020003270A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Number of motion candidates in a look up table to be checked according to mode |
CN115134599A (zh) | 2018-06-29 | 2022-09-30 | 抖音视界有限公司 | 更新查找表(lut)的条件 |
WO2020003284A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between lut and amvp |
KR20210024502A (ko) | 2018-06-29 | 2021-03-05 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝 |
WO2020003261A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Selection from multiple luts |
KR102646649B1 (ko) | 2018-06-29 | 2024-03-13 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut에서의 모션 후보들의 검사 순서 |
CN114845108A (zh) | 2018-06-29 | 2022-08-02 | 抖音视界(北京)有限公司 | 查找表的更新:fifo、约束的fifo |
CN110662059B (zh) | 2018-06-29 | 2021-04-20 | 北京字节跳动网络技术有限公司 | 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置 |
JP7181395B2 (ja) | 2018-07-02 | 2022-11-30 | 北京字節跳動網絡技術有限公司 | イントラ予測モードを有するルックアップテーブルおよび非隣接ブロックからのイントラモード予測 |
TWI820211B (zh) | 2018-09-12 | 2023-11-01 | 大陸商北京字節跳動網絡技術有限公司 | 取決於總數減去k的開始檢查hmvp候選的條件 |
MX2021006306A (es) * | 2018-11-29 | 2021-08-11 | Interdigital Vc Holdings Inc | Ordenamiento de candidatos de predictor de vector de movimiento en lista de fusion. |
KR102615471B1 (ko) * | 2018-12-12 | 2023-12-19 | 엘지전자 주식회사 | 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치 |
KR102443965B1 (ko) * | 2019-01-01 | 2022-09-19 | 엘지전자 주식회사 | 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치 |
US20220078407A1 (en) * | 2019-01-01 | 2022-03-10 | Lg Electronics Inc. | Method and apparatus for processing video signal on basis of inter prediction |
WO2020143741A1 (en) | 2019-01-10 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Invoke of lut updating |
CN113383554B (zh) | 2019-01-13 | 2022-12-16 | 北京字节跳动网络技术有限公司 | LUT和共享Merge列表之间的交互 |
WO2020147772A1 (en) | 2019-01-16 | 2020-07-23 | Beijing Bytedance Network Technology Co., Ltd. | Motion candidates derivation |
WO2020192611A1 (en) * | 2019-03-22 | 2020-10-01 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between merge list construction and other tools |
WO2020200235A1 (en) | 2019-04-01 | 2020-10-08 | Beijing Bytedance Network Technology Co., Ltd. | Half-pel interpolation filter in intra block copy coding mode |
BR112022002480A2 (pt) | 2019-08-20 | 2022-04-26 | Beijing Bytedance Network Tech Co Ltd | Método para processamento de vídeo, aparelho em um sistema de vídeo, e, produto de programa de computador armazenado em uma mídia legível por computador não transitória |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102233820B1 (ko) * | 2010-05-26 | 2021-03-29 | 엘지전자 주식회사 | 비디오 신호의 처리 방법 및 장치 |
CN105376577A (zh) * | 2011-08-29 | 2016-03-02 | 苗太平洋控股有限公司 | 用于解码合并模式下的运动信息的装置 |
US9621888B2 (en) * | 2011-09-09 | 2017-04-11 | Lg Electronics Inc. | Inter prediction method and apparatus therefor |
AU2016228184B2 (en) * | 2011-09-23 | 2018-07-12 | Kt Corporation | Method for inducing a merge candidate block and device using same |
KR20130050406A (ko) * | 2011-11-07 | 2013-05-16 | 오수미 | 머지 모드에서의 움직임 정보 생성 방법 |
US20130114717A1 (en) | 2011-11-07 | 2013-05-09 | Qualcomm Incorporated | Generating additional merge candidates |
US9357214B2 (en) * | 2012-12-07 | 2016-05-31 | Qualcomm Incorporated | Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video |
US9554150B2 (en) * | 2013-09-20 | 2017-01-24 | Qualcomm Incorporated | Combined bi-predictive merging candidates for 3D video coding |
CN108989815B9 (zh) * | 2014-03-19 | 2021-06-04 | 株式会社Kt | 针对多视图视频信号生成合并候选列表的方法及解码装置 |
WO2017039117A1 (ko) * | 2015-08-30 | 2017-03-09 | 엘지전자(주) | 영상의 부호화/복호화 방법 및 이를 위한 장치 |
WO2017043734A1 (ko) * | 2015-09-07 | 2017-03-16 | 엘지전자(주) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
US10812822B2 (en) * | 2015-10-02 | 2020-10-20 | Qualcomm Incorporated | Intra block copy merge mode and padding of unavailable IBC reference region |
CN116866570A (zh) * | 2016-10-04 | 2023-10-10 | 株式会社Kt | 用于处理视频信号的方法和装置 |
WO2020007362A1 (en) * | 2018-07-06 | 2020-01-09 | Mediatek Inc. | Inherited motion information for decoding a current coding unit in a video coding system |
US10491902B1 (en) * | 2018-07-16 | 2019-11-26 | Tencent America LLC | Method and apparatus for history-based motion vector prediction |
US10440378B1 (en) * | 2018-07-17 | 2019-10-08 | Tencent America LLC | Method and apparatus for history-based motion vector prediction with parallel processing |
US10362330B1 (en) * | 2018-07-30 | 2019-07-23 | Tencent America LLC | Combining history-based motion vector prediction and non-adjacent merge prediction |
CN112585966B (zh) * | 2018-08-13 | 2023-08-15 | Lg电子株式会社 | 以基于历史的运动向量为基础的帧间预测方法及其装置 |
US10924731B2 (en) * | 2018-08-28 | 2021-02-16 | Tencent America LLC | Complexity constraints on merge candidates list construction |
US20210400298A1 (en) * | 2018-09-28 | 2021-12-23 | Lg Electronics Inc. | Method and apparatus for processing video signal by using affine prediction |
US11064192B2 (en) * | 2018-10-04 | 2021-07-13 | Qualcomm Incorporated | Simplification of spatial-temporal motion vector prediction |
BR112021006108A2 (pt) * | 2018-10-05 | 2021-07-20 | Lg Electronics Inc. | método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo |
US11051034B2 (en) * | 2018-10-08 | 2021-06-29 | Qualcomm Incorporated | History-based motion vector predictor |
-
2019
- 2019-10-10 SG SG11202103661XA patent/SG11202103661XA/en unknown
- 2019-10-10 CN CN202210078308.2A patent/CN114584788B/zh active Active
- 2019-10-10 CN CN202310525806.1A patent/CN116634170A/zh active Pending
- 2019-10-10 AU AU2019356644A patent/AU2019356644B2/en active Active
- 2019-10-10 CN CN201980067223.0A patent/CN112840658B/zh active Active
- 2019-10-10 CN CN202310525813.1A patent/CN117082259A/zh active Pending
- 2019-10-10 KR KR1020217013764A patent/KR20210072064A/ko not_active Application Discontinuation
- 2019-10-10 BR BR112021006892-9A patent/BR112021006892A2/pt unknown
- 2019-10-10 CA CA3115867A patent/CA3115867C/en active Active
- 2019-10-10 WO PCT/CN2019/110488 patent/WO2020073973A1/en active Application Filing
- 2019-10-10 CN CN202310526851.9A patent/CN116634171A/zh active Pending
- 2019-10-10 MX MX2021004176A patent/MX2021004176A/es unknown
-
2021
- 2021-04-09 US US17/226,289 patent/US11765343B2/en active Active
- 2021-04-10 PH PH12021550791A patent/PH12021550791A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
CN114584788A (zh) | 2022-06-03 |
CA3115867C (en) | 2023-10-10 |
AU2019356644A1 (en) | 2021-05-20 |
US20240048686A1 (en) | 2024-02-08 |
US20210258569A1 (en) | 2021-08-19 |
AU2019356644B2 (en) | 2022-12-08 |
CN112840658B (zh) | 2023-04-28 |
MX2021004176A (es) | 2021-09-08 |
CN117082259A (zh) | 2023-11-17 |
BR112021006892A2 (pt) | 2021-07-13 |
CN116634170A (zh) | 2023-08-22 |
CA3115867A1 (en) | 2020-04-16 |
US11765343B2 (en) | 2023-09-19 |
WO2020073973A1 (en) | 2020-04-16 |
CN112840658A (zh) | 2021-05-25 |
CN114584788B (zh) | 2022-09-23 |
PH12021550791A1 (en) | 2021-10-25 |
CN116634171A (zh) | 2023-08-22 |
SG11202103661XA (en) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019356644B2 (en) | Inter prediction method and apparatus | |
JP7548679B2 (ja) | コーディングブロックの三角形パーティションのインター予測のための装置および方法 | |
KR102704764B1 (ko) | 이미지 예측 방법 및 디바이스 | |
US11438578B2 (en) | Video picture prediction method and apparatus | |
US12108046B2 (en) | Inter prediction method and apparatus | |
CN111953997B (zh) | 候选运动矢量列表获取方法、装置及编解码器 | |
JP7410191B2 (ja) | ビデオエンコーダ、ビデオデコーダ、及び対応する方法 | |
JP2024014927A (ja) | インター予測方法および装置 | |
CN111432219B (zh) | 一种帧间预测方法及装置 | |
CN113557738B (zh) | 视频图像预测方法及装置 | |
EP3910955A1 (en) | Inter-frame prediction method and device | |
US12132891B2 (en) | Inter prediction method and apparatus | |
RU2798316C2 (ru) | Способ и аппаратура внешнего предсказания | |
RU2819065C2 (ru) | Видеокодер, видеодекодер и соответствующий способ | |
CN113615191B (zh) | 图像显示顺序的确定方法、装置和视频编解码设备 | |
WO2020073928A1 (en) | Inter prediction method and apparatus | |
CN118828009A (zh) | 候选运动矢量列表获取方法、装置及编解码器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |