KR20210145747A - 디코더 측 움직임 벡터 유도 - Google Patents
디코더 측 움직임 벡터 유도 Download PDFInfo
- Publication number
- KR20210145747A KR20210145747A KR1020217030715A KR20217030715A KR20210145747A KR 20210145747 A KR20210145747 A KR 20210145747A KR 1020217030715 A KR1020217030715 A KR 1020217030715A KR 20217030715 A KR20217030715 A KR 20217030715A KR 20210145747 A KR20210145747 A KR 20210145747A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- dmvr
- bio
- current block
- video
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims abstract description 70
- 238000009795 derivation Methods 0.000 title description 8
- 238000000034 method Methods 0.000 claims abstract description 345
- 230000000007 visual effect Effects 0.000 claims abstract description 59
- 238000003672 processing method Methods 0.000 claims abstract description 55
- 230000003287 optical effect Effects 0.000 claims abstract description 46
- 230000009466 transformation Effects 0.000 claims abstract description 34
- 238000005516 engineering process Methods 0.000 claims description 90
- 238000012545 processing Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 abstract description 40
- 230000002123 temporal effect Effects 0.000 description 117
- 239000000523 sample Substances 0.000 description 47
- 238000010586 diagram Methods 0.000 description 30
- 230000008859 change Effects 0.000 description 29
- 230000002457 bidirectional effect Effects 0.000 description 26
- 238000004364 calculation method Methods 0.000 description 19
- 241000023320 Luma <angiosperm> Species 0.000 description 18
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 18
- 230000011664 signaling Effects 0.000 description 16
- 230000006872 improvement Effects 0.000 description 14
- 101001036283 Xenopus laevis DNA-binding protein inhibitor ID-3-A Proteins 0.000 description 13
- 230000015654 memory Effects 0.000 description 7
- 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 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 101100520660 Drosophila melanogaster Poc1 gene Proteins 0.000 description 3
- 101100520662 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PBA1 gene Proteins 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000009849 deactivation Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000013074 reference sample Substances 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101100520663 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADD66 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002779 inactivation Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 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
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000000758 substrate Substances 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
-
- 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/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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/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/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/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- 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/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
Abstract
비디오 프로세싱 방법은 시각 매체 데이터의 현재 블록 및 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 현재 블록의 변환은 현재 블록에 대한 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 사용이 활성화되거나 혹은 비활성화되는지 여부를 결정하는 과정을 포함하고, BIO 기술 혹은 DMVR 기술의 사용을 결정하는 과정은 현재 블록과 연관된 비용 기준에 기초한다.
Description
관련 출원들과의 상호 참조
파리 협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2019년 4월 2일에 제출된 국제 특허 출원 번호 PCT/CN2019/081155, 2019년 5월 7일에 제출된 국제 특허 출원 번호 PCT/CN2019/085796에 대한 우선권과 혜택을 적시에 청구하기 위하여 만들어졌다. 미국 법 하의 모든 목적을 위해, 상술한 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 문서는 비디오 및 이미지 코딩 및 디코딩 기술에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크 상에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 장치의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 요구가 계속 증가할 것으로 기대된다.
하나의 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 현재 블록의 변환은 현재 블록에 대한 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 사용이 활성화되는지 혹은 비활성화되는지 여부를 결정하는 과정을 포함하고, BIO 기술 혹은 DMVR 기술의 사용을 결정하는 과정은 현재 블록에 연관된 비용 기준에 기초한다.
또 다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 현재 블록의 변환은 현재 블록에 대한 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 사용이 활성화되는지 혹은 비활성화되는지 여부를 결정하는 과정을 포함하고, DMVR 기술은 현재 블록의 움직임 정보를 MRSAD(a mean removed sum of absolute differences) 비용 기준 외의 비용 기준에 기초하여 개선하는 과정을 포함한다.
또 다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 현재 블록의 변환은 현재 블록에 대한 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 사용이 활성화되는지 혹은 비활성화되는지 여부를 결정하는 과정을 포함하고, BIO 기술 혹은 DMVR 기술의 사용을 결정하는 과정은 현재 블록과 관련된 한 쌍의 참조 블록들의 평균 값 차이가 임계 값을 초과하는 것으로 계산하는 것에 기초한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 제1 변경된 참조 블록을 생성하기 위해 제1 참조 블록을 변경하고, 제2 변경된 참조 블록을 생성하기 위해 제2 참조 블록을 변경하는 단계를 포함하되, 제1 참조 블록 및 제2 참조 블록 모두는 시각 매체 데이터의 현재 블록과 연관되고, 제1 변경된 참조 블록과 제2 변경된 참조 블록 간의 차이를 결정하는 단계를 포함하되, 차이는 SATD(sum of absolute transformed differences), MRSATD(a mean removed sum of absolute transformed differences), SSE(a sum of squares error), MRSSE(a mean removed sum of squares error), 평균값 차이(a mean value differences, 혹은 그라디언트 값 중 하나 이상을 포함하며, 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 변환은 제1 참조 블록과 제2 참조 블록을 각각 변경하여 생성된 제1 변경된 참조 블록과 제2 변경된 참조 블록 간의 차이의 사용을 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 시각 매체 데이터의 현재 블록과 연관된 참조 픽처들을 이용하여 시간적 그라디언트 혹은 변경된 시간적 그라디언트를 결정하는 단계를 포함하되, 시간적 그라디언트 혹은 변경된 시간적 그라디언트는 참조 픽처들의 차이를 지시하고, 시각 매체 데이터의 현재 블록 및 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 변환은 시간적 그라디언트 혹은 변경된 시간적 그라디언트에 부분적으로 기초하는 BIO(bi-directional optical flow) 기술의 사용을 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 제1 비디오 블록 혹은 그의 서브 블록과 연관된 참조 픽처들을 이용하여 제1 시간적 그라디언트를 결정하는 단계, 제2 비디오 블록 혹은 그의 서브 블록과 연관된 참조 픽처들을 이용하여 제2 시간적 그라디언트를 결정하는 단계, 변경된 제1 시간적 그라디언트와 변경된 제2 시간적 그라디언트를 생성하기 위해 제1 시간적 그라디언트의 변경과 제2 시간적 그라디언트의 변경을 수행하는 단계를 포함하고, 여기서 제1 비디오 블록과 연관된 제1 시간적 그라디언트의 변경은 제2 비디오 블록과 연관된 제2 시간적 그라디언트의 변경과 상이하고, 제1 비디오 블록과 제2 비디오 블록을 대응 코딩 표현으로의 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 현재 블록과 연관된 제1 인터 참조 블록 및 제2 인터 참조 블록 중 하나 혹은 둘 모두를 변경하는 단계, 변경된 제1 인터 참조 블록 및/혹은 변경된 제2 인터 참조 블록 중 하나 혹은 둘 모두의 이용에 기초하여 BIO(bi-directional optical flow) 기술을 적용함으로서 현재 블록과 연관된 공간적 그라디언트를 결정하는 단계, 및 현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 변환은 현재 블록과 연관된 공간적 그라디언트의 사용을 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 프로세서에 의해 블록 레벨에서 시그널링되는 플래그가, 적어도 부분적으로 DMVR(decoder-side motion vector refinement) 기술 혹은 BIO(bidirectional optical flow) 기술 중 하나 혹은 둘 모두가 현재 블록에 대해 활성화되어야함을 지시 한다는 결정을 수행하는 단계, 현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 코딩된 표현은 DMVR 기술 및/혹은 BIO 기술 중 하나 혹은 둘 모두가 활성화되는지 여부를 지시하는 플래그를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 프로세서에 의해 DMVR(decoder-side motion vector refinement) 기술이 현재 블록에 대해 활성화되어야 한다는 결정을 수행하는 단계를 포함하되, 결정은 현재 블록의 높이에만 배타적으로 기초하고, 현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 변환은 DMVR(decoder-side motion vector refinement) 기술 혹은 BIO(bi-directional optical flow) 기술 중 하나 혹은 둘 모두와 연관된 규칙들의 현재 블록에 대한 사용을 포함하고, DMVR 기술과 연관된 규칙들은 BIO 기술에 대해 적용되는 것과 동일하며, 현재 블록에 대한 BIO 기술 혹은 DMVR 기술 중 하나 혹은 둘 모두의 이용이 활성화 혹은 비활성화 되는지 여부의 결정은 규칙들의 적용에 기초한다.
또다른 예시적인 형태에 있어서, 상술한 방법은 프로세서를 포함하는 비디오 디코더 장치에 의해 구현될 수 있다.
또다른 예시적인 형태에 있어서, 상술한 방법은 프로세서를 포함하는 비디오 인코더 장치에 의해 구현될 수 있다.
다른 예시적인 양상에 있어서, 이들 방법은 프로세서 실행가능 명령의 형태로 구현되고 컴퓨터 판독가능 프로그램 매체에 저장될 수 있다.
이 양상 및 다른 양상이 본 문서에 더 기술될 수 있다.
도 1은 양방향 매칭의 일 예를 도시한다.
도 2는 탬플릿 매칭의 일 예를 도시한다.
도 3은 FRUC(Frame-Rate Up Conversion)에서 단방향 움직임 추정(motion estimation, ME)의 일 예를 도시한다.
도 4는 광학 흐름 궤적의 일 예를 도시한다.
도 5a및 5b는 블록 확장 없는 BIO(bi-directional optical flow)의 예들을 도시한다.
도 6은 6개의 점 탐색에 의한 양방향 매칭의 일 예를 도시한다.
도 7은 적응적 정수 탐색 패턴 및 하프(half) 샘플 탐색 패턴의 예들을 도시한다.
도 8은 비디오 프로세싱 장치의 일 예를 나타내는 블록도를 도시한다.
도 9는 비디오 인코더의 예시적인 구현의 블록도를 도시한다.
도 10은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 11은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 12는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 13은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 14는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 15는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 16은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 17은 개시된 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템의 블록도를 도시한다.
도 18은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 19는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 20은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 21은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 22는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 23은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 24는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 25는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 26은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 27은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 2는 탬플릿 매칭의 일 예를 도시한다.
도 3은 FRUC(Frame-Rate Up Conversion)에서 단방향 움직임 추정(motion estimation, ME)의 일 예를 도시한다.
도 4는 광학 흐름 궤적의 일 예를 도시한다.
도 5a및 5b는 블록 확장 없는 BIO(bi-directional optical flow)의 예들을 도시한다.
도 6은 6개의 점 탐색에 의한 양방향 매칭의 일 예를 도시한다.
도 7은 적응적 정수 탐색 패턴 및 하프(half) 샘플 탐색 패턴의 예들을 도시한다.
도 8은 비디오 프로세싱 장치의 일 예를 나타내는 블록도를 도시한다.
도 9는 비디오 인코더의 예시적인 구현의 블록도를 도시한다.
도 10은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 11은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 12는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 13은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 14는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 15는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 16은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 17은 개시된 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템의 블록도를 도시한다.
도 18은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 19는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 20은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 21은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 22는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 23은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 24는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 25는 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 26은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
도 27은 비디오 프로세싱 방법의 일 예에 대한 흐름도를 도시한다.
비디오의 압축률을 향상시키기 위해 연구자들은 비디오를 인코딩하는 새로운 기술을 지속적으로 찾고 있다. 본 문서는 압축 해제 또는 디코딩된 디지털 비디오의 품질을 개선하기 위해 비디오 비트스트림의 디코더에 의해 사용될 수 있는 다양한 기술을 제공한다. 또한, 비디오 인코더는 추가 인코딩에 사용되는 디코딩된 프레임을 재구성하기 위해 인코딩 프로세스 동안 이러한 기술을 구현할 수도 있다.
섹션 제목은 가독성을 향상시키기 위해 본 문서에서 사용되며 각 섹션에서 설명된 기술 및 실시예의 범위를 해당 섹션으로만 제한하는 것은 아니다. 또한, 기존의 다양한 비디오 코덱 표준의 특정 용어가 사용되나, 개시된 기술은 이러한 비디오 표준 또는 그 후속 표준에 국한되지 않고 다른 비디오 코덱 표준에도 적용 가능하다. 또한, 일부 경우에, 대응하는 코딩 단계를 사용하여 기술이 개시되고, 디코더에서 대응하는 디코딩 단계가 역순으로 수행될 것임을 이해될 것이다. 또한, 코딩은 비디오가 하나의 코딩된 표현(예를 들어, 1 비트율)에서 다른 코딩된 표현(예를 들어, 다른 비트율)으로 표현되는 트랜스코딩을 수행하는 데 사용될 수도 있다.
1.
요약
본 문서는 비디오 코딩 기술에 관한 것이다. 구체적으로, 비디오 코딩에서의 움직임 보상에 관한 것이다. 이것은 고효율 비디오 코딩(HEVC)과 같은 기존의 비디오 코딩 표준 또는 완결될 표준(Versatile Video coding)에 적용될 수 있다. 이는 또한 미래의 비디오 코딩 표준 또는 비디오 코덱에 적용될 수 있다.
2.
배경 기술
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해왔다. ITU-T는 H.261 및 H.263을 제작하였고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 제작하였고, 이들 두 조직은 공동으로 H.262/MPEG-2 Video 및 H.264/MPEG-4 Advanced Video Coding (AVC) 및 H.265/HEVC 표준을 제작하였다. H.262 이후, 비디오 코딩 표준은 시간 예측 및 변환 코딩이 이용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC 이후의 미래의 비디오 코딩 기술을 탐구하기 위하여, 2015년에 VCEG 및 MPEG가 공동으로 JVET(Joint Video Exploration Team)를 설립하였다. 그 후, 많은 새로운 방법이 JVET에 의해 채택되어 왔고, JEM(Joint Exploration Model)이라는 참조 소프트웨어에 적용되었다. 2018년 4월, VCEG (Q6/16) 및 ISO/IEC JTC1 SC29/WG11 (MPEG) 간의 JVET(Joint Video Expert Team)가 HEVC에 비해 50% 비트율 감소를 목표로 하는 VVC 표준에 작업하도록 조직되었다.
VVC 드래프트의 최신 버전, 예를 들어 VVC (드래프트 2)는 하기의 주소에서 확인된다:
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001-v7.zip . VTM으로 불리는 VVC의 최신 참조 소프트웨어는 하기의 주소에서 확인된다:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1.
도 9는 비디오 인코더의 예시적인 구현의 블록도이다. 도 9는 인코더 구현예가 내장 피드백 경로를 갖는 것을 보여주며, 비디오 인코더는 또한 (다음의 비디오 데이터의 인코딩에 사용될 비디오 데이터의 압축된 표현을 재구성하는) 비디오 디코딩 기능을 수행한다.
2.1
패턴 매치 움직임 벡터 유도
PMMVD(pattern matched motion vector derivation) 모드는 프레임율 상승 변환(Frame-Rate Up Conversion: FRUC) 기법에 기반한 특별한 머지 모드이다. 이 모드에서는 블록의 움직임 정보가 시그널링되지 않고 디코더 측에서 유도된다.
FRUC 플래그는 그것의 머지 플래그가 참일 때에 CU에 대해 시그널링될 수 있다. FRUC 플래그가 거짓이면, 머지 인덱스가 시그널링되고, 정규(regular) 머지 모드가 사용된다. FRUC 플래그가 참이면, 추가 FRUC 모드 플래그가 시그널링되어 블록의 움직임 신호를 유도하기 위해 어떤 방법(예를 들어, 양방향 매칭 또는 템플릿 매칭)이 사용되어야 하는지 지시할 수 있다.
인코더 측에서, CU에 대해 FRUC 머지 모드를 사용할지 여부에 대한 결정은 일반(normal) 머지 후보에 대해서와 같이 RD 비용 선택에 기반한다. 예를 들어, 복수의 매칭 모드들(예를 들어, 양방향 매칭 및 템플릿 매칭)이 RD 비용 선택을 사용하여 CU에 대해 확인된다. 최소 비용으로 이어지는 것은 다른 CU 모드들과 더 비교된다. 만약 FRUC 매칭 모드가 가장 효율적인 경우, FRUC 플래그는 해당 CU에 대해 참으로 설정되고, 관련 매칭 모드가 사용된다.
FRUC 머지 모드에서의 움직임 유도 프로세스는 2 단계를 가진다. CU 레벨 움직임 탐색이 먼저 수행되고, 그 다음으로 서브 CU 레벨 움직임 개선이 수행된다. CU 레벨에서, 초기 움직임 벡터는 양방향 매칭 또는 템플릿 매칭에 기반하여 CU 전체에 대해 유도된다. 먼저, MV 후보들의 리스트가 생성되고, 최소 매칭 코스트로 이어지는 후보가 추가 CU 레벨 개선을 위한 출발점으로 선택된다. 그 다음으로, 상기 출발점을 중심으로 양방향 매칭 또는 템플릿 매칭을 기반으로 한 로컬 탐색이 수행된다. 최소 매칭 코스트로 귀결되는 MV가 CU 전체에 대한 MV로 간주된다. 그 후, 유도된 CU 움직임 벡터들을 출발점으로 하여, 움직임 정보는 서브 CU 레벨에서 추가로 개선된다.
예를 들어, CU 움직임 정보 유도를 위해 다음과 같은 유도 과정이 수행된다. 첫 번째 단계에서, 전체 CU에 대한 MV가 유도된다. 두 번째 단계에서, 상기 CU는 서브 CU들로 더 분할된다. M의 값은(16) 에서와 같이 계산되며, D는 미리 정의된 분할 깊이로 JEM에서 기본적으로 3으로 설정된다. 다음으로, 각 서브 CU에 대한 MV가 유도된다.
도 1에 도시된 바와 같이, 양방향 매칭은 두 상이한 참조 픽처들에서 현재 CU의 움직임 궤적을 따라 두 블록들 간의 가장 가까운 매칭을 찾음으로써 현재 CU의 움직임 정보를 유도하는 데에 사용된다. 연속적인 움직임 궤적의 가정하에, 두 참조 블록을 가리키는 움직임 벡터 MV0및 MV1는 현재 픽처와 두 참조 픽처 사이의 시간적 거리들, 즉 TD0및 TD1에 비례한다. 일부 실시예들에서, 현재 픽처가 두 참조 픽처들 사이에 시간적으로 존재하고 현재 픽처에서 두 참조 픽처까지의 시간적 거리가 같을 때, 양방향 매칭은 미러 기반 양방향 MV가 된다.
도 2에 도시된 바와 같이, 템플릿 매칭은 현재 픽처에서의 템플릿(예를 들어, 현재 CU의 상단 및/또는 좌측 인접 블록들)과 참조 픽처에서의 블록(예를 들어, 템플릿과 동일한 크기) 사이에서 가장 가까운 매칭을 찾아 현재 CU의 움직임 정보를 도출하는 데 사용될 수 있다. 앞서 언급한 FRUC 머지 모드를 제외하고 템플릿 매칭은 AMVP 모드에도 적용될 수 있다. JEM 및 HEVC 모두에서, AMVP는 두 후보를 가진다. 템플릿 매칭 방법으로 새로운 후보가 유도될 수 있다. 만약 템플릿 매칭에 의해 새로 유도된 상기 후보가 기존 제1 AMVP 후보와 다른 경우, AMVP 후보 리스트의 맨 처음에 삽입되고 해당 리스트 크기는 2로 설정된다(예를 들어, 기존 제2 AMVP 후보를 제거). AMVP 모드에 적용시, 오직 CU 레벨 탐색만 적용된다.
CU 레벨 MV 후보 세트
CU 레벨에서 MV 후보 세트는 하기를 포함할 수 있다:
·
현재 CU가 AMVP 모드이면, 원본(original) AMVP 후보들,
·
모든 머지 후보들,
·
섹션 2.1.1.3에 소개된 보간된 MV 필드에서의 다양한 MV들 및
·
상단 및 좌측 인접 움직임 벡터들
양방향 매칭을 사용하는 경우, 머지 후보의 유효한 각각의 MV는 양방향 매칭을 가정하여 MV 쌍을 생성하기 위한 입력으로 사용될 수 있다. 예를 들어, 머지 후보의 유효한 하나의 MV는 참조 리스트 A에서 (MVa, refa)이다. 다음으로, 그것의 쌍을 이룬 양방향 MV의 참조 픽쳐 refb가 다른 쪽 참조 리스트 B에서 발견되어 refa 및 refb가 시간적으로 현재 픽처의 다른 사이드에 있게 된다. 이러한 refb가 참조 리스트 B에서 사용 가능하지 않은 경우, refb는 refa와 다른 레퍼런스로 결정되고, 그것의 현재 픽처까지의 시간적 거리는 리스트 B에서 최소가 된다. refb가 결정된 후, MVb는 현재 픽처와 refa, refb 사이의 시간적 거리를 기반으로 MVa를 스케일링하여 유도된다.
보간된 MV 필드로부터 4개의 MV 또한 CU 레벨 후보 리스트에 추가될 수 있다. 보다 구체적으로, 현재 CU의 위치 (0, 0), (W/2, 0), (0, H/2) 및 (W/2, H/2)의 보간된 MV들이 추가된다.
FRUC가 AMVP 모드에서 적용되면, 원본 AMVP 후보들도 CU 레벨 MV 후보 세트에 추가된다.
CU 레벨에서, AMVP CU들에 대한 15개의 MV 및 머지 CU에 대한 13개의 MV가 후보 리스트에 추가될 수 있다.
서브-CU 레벨 MV 후보 세트
서브 CU 레벨에서 설정된 MV 후보는 하기를 포함할 수 있다:
·
CU 레벨 탐색에서 결정된 MV,
·
상단, 좌측, 좌측 상단 및 우측 상단 주변 MV들,
·
참조 픽처들에서 동일 위치(collocated) MV들의 스케일링된 버전들,
·
최대 4개의 ATMVP 후보들, 및
·
최대 4개의 STMVP 후보들
참조 픽처로부터 스케일링된 MV는 다음과 같이 유도된다. 두 리스트의 참조 픽처들이 횡단된다. 참조 픽처에서 서브 CU의 동일 위치에 있는(collocated) MV들은 시작 CU 레벨 MV의 레퍼런스로 스케일링된다.
ATMVP 및 STMVP 후보들은 첫 번째 4개로 제한된다.
서브 CU 레벨에서 최대 17개의 MV가 후보 리스트에 추가된다.
보간된 MV 필드의 생성
프레임을 코딩하기 전에, 단방향 ME를 기반으로 픽처 전체에 대해 보간된 움직임 필드가 생성된다. 다음으로 상기 움직임 필드는 후에 CU 레벨 또는 서브 CU 레벨 MV 후보들로 사용될 수 있다.
먼저, 두 참조 리스트에 있는 각 참조 픽처의 움직임 필드는 4x4 블록 레벨에서 횡단된다. 각 4x4 블록에 대해, 만약 현재 픽처에서 4x4 블록을 통과하는 블록과 관련된 움직임이 있고 상기 블록에 보간된 움직임이 할당되지 않은 경우 (도 3에 도시된 바와 같이), 참조 블록의 움직임은 시간적 거리 TD0 및 TD1에 따라 상기 현재 픽처로 스케일링되고 (HEVC에서 TMVP의 MV 스케일링과 동일한 방식), 상기 스케일링된 움직임은 현재 프레임의 블록에 할당된다. 스케일링된 MV가 4x4 블록에 할당되지 않은 경우, 블록의 움직임은 보간된 움직임 필드에서 사용할 수 없는 것으로 표시된다.
보간 및 매칭 비용
움직임 벡터가 분수 샘플 위치를 가리키는 경우, 움직임 보상된 보간이 필요하다. 복잡성을 줄이기 위해, 양방향 매칭과 템플릿 매칭 모두에 대해 정규(regular) 8 탭 HEVC 보간 대신 양방향 선형(bi-linear) 보간이 사용될 수 있다.
매칭 비용 계산은 단계마다 조금씩 다르다. CU 레벨에서 설정된 후보 세트에서 후보를 선택하는 경우, 매칭 비용은 양방향 매칭 또는 템플릿 매칭의 절대 차 합(Sum of Absolute Difference: SAD)일 수 있다. 시작 MV가 결정된 후 서브 CU 레벨 탐색에서 양방향 매칭의 매칭 비용 C는 다음과 같이 계산된다.
여기서, w는 가중치이다. 일부 실시예들에서, w는 경험적으로 4로 설정될 수 있다. MV 및 MVS는 각각 현재 MV와 시작 MV를 나타낸다. SAD는 서브 CU 레벨의 템플릿 매칭의 매칭 비용으로 여전히 사용될 수 있다.
FRUC 모드에서 MV는 루마 샘플들만을 사용하여 유도된다. 유도된 움직임은 MC 인터 예측을 위한 루마와 크로마 모두에 사용된다. MV가 결정되면 루마에 대해서는 8 탭 보간 필터를, 크로마에 대해서는 4 탭 보간 필터를 사용하여 최종 MC를 수행한다.
MV 개선
MV 개선은 양방향 매칭 비용 또는 템플릿 매칭 비용을 기준으로 하는 패턴 기반 MV 탐색이다. JEM에서는 2개의 탐색 패턴, 즉 무제약 중심 바이어스 다이아몬드 탐색(Unrestricted Center-biased Diamond Search: UCBDS) 및 적응적 교차 탐색이 각각 CU 레벨 및 서브 CU 레벨의 MV 개선을 위해 지원된다. CU 레벨 및 서브 CU 레벨 모두의 MV 개선에서, MV는 1/4 루마 샘플 MV 정확도에서 직접적으로 탐색되고, 1/8 루마 샘플 MV 개선이 뒤따른다. CU 및 서브 CU 단계에 대한 MV 개선의 탐색 범위는 8개의 루마 샘플들과 같게 설정된다.
탬플릿 매칭 FRUC 머지 모드에서 예측 방향의 선택
양방향(bilateral) 매칭 머지 모드에서는 항상 양예측이 적용된다. 왜냐하면 CU의 움직임 정보가 두 상이한 참조 픽처들에서 현재 CU의 움직임 궤적을 따라 두 블록들 간의 가장 가까운 매칭을 기반으로 유도되기 때문이다. 템플릿 매칭 머지 모드에서, 인코더는 CU에 대해 list0으로부터의 단-예측(uni-prediction), list1로부터의 단-예측, 또는 양-예측 가운데 선택할 수 있다. 선택은 아래와 같이 템플릿 매칭 비용을 기반으로 할 수 있다.
If costBi <= factor * min (cost0, cost1)
bi-prediction이 사용된다;
Otherwise, if cost0 <= cost1
list0로의 단일 예측이 사용된다;
Otherwise,
list1로의 단일 예측이 사용된다;
여기서, cost0은 list0 템플릿 매칭의 SAD, cost1은 list1 템플릿 매칭의 SAD, 그리고 costBi는 양 예측 템플릿 매칭의 SAD이다. 예를 들어, factor 의 값이 1.25와 같으면, 이는 선택 프로세스가 양 예측에 편향되어 있음을 의미한다.
인터 예측 방향 선택은 오직 CU 레벨 템플릿 매칭 프로세스에만 적용될 수 있다.
하이브리드 인트라 및 인터 예측
JVET-L0100에서 다중 가설 예측이 제안되는데, 하이브리드 인트라 및 인터 예측이 다중 가설을 생성하기 위한 방법 중 하나이다.
다중 가설 예측이 인트라 모드를 개선시키기 위해 적용될 때, 다중 가설 예측은 하나의 인트라 예측 및 하나의 머지 인덱스된 예측을 결합한다. 머지 CU에서, 한 플래그는 인트라 후보 리스트로부터 인트라 모드를 선택하기 위해 플래그가 참일 때 머지 모드에 대해 시그널링된다. 루마 컴포넌트에 있어서, 인트라 후보 리스트는 DC, 플래너(planar), 수평(horizontal), 및 수직(vertical) 모드들을 포함하는 4개의 인트라 예측 모드들로부터 유도되고, 인트라 후보 리스트의 크기는 블록 형태에 기반하여 3 혹은 4일 수 있다. CU의 너비가 CU의 높이의 두 배보다 큰 경우, 수평 모드는 인트라 모드 리스트에서 배제되고 CU 높이가 CU의 너비의 두 배보다 큰 경우, 수직 모드는 인트라 모드 리스트에서 제거된다. 인트라 모드 인덱스에 의해 선택된 하나의 인트라 예측 모드 및 머지 인덱스에 의해 선택된 하나의 머지 인덱스된 예측은 가중된 평균을 이용하여 결합된다. 크로마 컴포넌트에있어서, DM은 추가 시그널링 없이 항상 적용된다. 결합 예측을 위한 가중치는 하기와 같이 설명된다. DC 혹은 플래너(planar) 모드가 선택되는 경우 혹은 CB 너비 혹은 높이가 4보다 작은 경우, 동일한 가중치가 적용된다. CB 너비 혹은 높이가 4 이상인 CB에 있어서, 수평/수직 모드가 선택되는 경우, 한 CB가 먼저 수직적으로/수평적으로 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) 은 대응 영역에 적용될 수 있다. (w_intra1, w_inter1)는 참조 샘플들에서 가장 가까운 영역이고, (w_intra4, w_inter4)는 참조 샘플들에서 가장 먼 영역이다. 그런 다음, 결합된 예측은 두 개의 가중된 예측들을 합산하고 3비트를 오른쪽-시프팅 함으로서 계산될 수 있다. 또한, 예측자들의 인트라 가설에 대한 인트라 예측 모드는 하기 인접 CU들의 참조를 위해 저장될 수 있다.
양 방향 광학 흐름
BIO에서, 움직임 보상이 현재 블록의 첫 번째 예측들(각 예측 방향에서)을 생성하기 위해 먼저 수행된다. 첫 번째 예측들은 공간적 그라디언트, 시간적 그라디언트 및 블록 내 각 서브 블록/픽셀의 광학 흐름을 유도하는 데 사용되며, 이는 두 번째 예측, 즉 서브 블록/픽셀의 최종 예측을 생성하기 위해 사용된다. 자세한 내용은 하기에서 설명된다.
양 방향 광학 흐름(bi-directional optical flow: BIO)은 양 예측을 위해 블록 별 움직임 보상 위에 수행되는 샘플 별 움직임 개선이다. 샘플 레벨 움직임 개선은 시그널링을 사용하지 않는다.
I(k)을 블록 움직임 보상 후 레퍼런스 k (k=0, 1)로부터의 루마 값이라 하고, 및 을 I(k) 그라디언트(gradient)의 각각 수평 및 수직 컴포넌트들이라 하자. 광학 흐름이 유효하다고 가정하면, 움직임 벡터 필드는 아래 식에 의해 주어진다.
각 샘플의 운동 궤적에 대해 이러한 광학 흐름 방정식과 헤르미트(Hermite) 보간법을 결합하면, 끝에서 도함수들 과 및 함수 값들 I(k) 모두를 매칭시키는 고유한 3차 다항식이 획득된다. t=0에서 이 다항식의 값은 BIO 예측이다.
도 4에 나타난 바와 같이, 및 은 참조 프레임까지의 거리들을 나타낸다. 거리 및 는 Ref0 및 Ref1에 기반하여 계산된다. 즉, t0=POC(현재) POC(Ref0), t1= POC(Ref1) POC(현재). 만약 두 예측 모두 같은 방향에서(예를 들어, 둘 다 과거로부터 또는 미래로부터) 획득된다면, 부호들은 다르다(예를 들어, e.g., ). 이때, 예측이 동일한 순간으로부터 오는 것이 아니라면(예를 들어, e.g., ), BIO가 적용된다. 참조된 양 영역 모두 논-제로 움직임을 가지며(예를 들어, ), 블록 움직임 벡터들은 시간 거리에 비례한다(예를 들어, ).
움직임 벡터 필드는 는 점 A 및 점 B에서의 값들 사이의 차이 를 최소화함으로써 결정된다(도 9에서 움직임 궤적과 참조 프레임 평면들의 교차점). 모델은 에 대해 로컬 테일러 전개식의 제1 선형항만을 사용한다.
식 5에서의 모든 값들은 로 표시된 샘플 위치에 의존한다. 움직임이 로컬 환경에서 일관적이라고 가정하면, 현재 예측된 점 에 중심이 맞춰진 (2M+1)x(2M+1) 정사각형 윈도우 Ω 내의 는 최소화될 수도 있다. 여기서 M은 2와 같다.
이러한 최적화 문제에 대해, JEM은 먼저 수직 방향에서 최소화한 다음 수평 방향에서 최소화를 행하는 단순화된 접근법을 사용한다. 그 결과는 아래와 같다.
제로 혹은 매우 작은 값에 의한 나눗셈을 피하기 위해, 정규화(regularization) 파라미터들 r 및 m이 식 7 및 8에 도입될 수 있다. 여기서,
BIO에 대한 메모리 액세스를 정규 양 예측 움직임 보상에 대한 것과 같게 하기 위해, 모든 예측 및 그라디언트 값들인 은 현재 블록 내부의 위치들에 대해 계산된다. (도 5(a)에 도시된 것과 같이), 식 9에서, 예측된 블록의 경계 상의 현재 예측된 점에 중심이 맞춰진 (2M+1)x(2M+1) 정사각형 윈도우 Ω는 상기 블록 외부의 위치들에 접근할 필요가 있다. JEM에서 상기 블록 외부의 의 값들은 상기 블록 내부의 가장 가까운 가용 값과 같도록 설정된다. 예를 들어, 도 5(b)에 도시된 바와 같이, 이것은 패딩 영역으로 구현될 수 있다.
BIO를 사용하면, 움직임 필드가 각 샘플에 대해 개선될 수 있다. 계산 복잡도를 줄이기 위해, BIO의 블록 기반 디자인이 JEM에서 사용된다. 움직임 개선은 4x4 블록에 기반하여 계산될 수 있다. 블록 기반 BIO에서, 4x4 블록 상의 모든 샘플들의 식 9에 따른 sn의 값들이 합산될 수 있으며, 그 다음 합산된 sn의 값들은 상기 4x4 블록에 대한 BIO 움직임 벡터 오프셋을 유도하는 데에 사용된다. 구체적으로, 아래 식이 블록 기반 BIO 유도를 위해 사용될 수 있다.
일부 시나리오에서, BIO의 MV 레지먼트 (regiment)는 노이즈 또는 불규칙한 움직임으로 인해 신뢰할 수 없을 수도 있다. 그러므로, BIO에서, MV 레지먼트의 크기는 특정 임계값 thBIO로 클립된다. 임계값은 현재 픽처의 모든 레퍼런스 픽처들이 모두 한 방향에서 오는지의 여부에 기초하여 결정된다. 예를 들어, 현재 픽처의 모든 참조 픽처들이 한 방향으로부터 오는 경우, 상기 임계값은 로 설정되고, 그렇지 않을 경우, 로 설정된다.
BIO에 대한 그라디언트들(gradients)은 HEVC 움직임 보상 절차(예를 들어, 2D 분리가능한 유한 임펄스 응답(Finite Impulse Response: FIR)과 부합하는 동작들을 사용하는 움직임 보상 보간과 동시에 계산될 수 있다. 일부 실시예들에서, 2D 분리가능한 FIR에 대한 입력은 움직임 보상 절차에 대한 것과 같은 참조 프레임 샘플 및 블록 움직임 벡터의 분수 부분에 따른 분수 위치 (fracX, fracY) 이다. 수평 그라디언트 에 대해, 신호는 먼저 역스케일링 시프트 을 갖는 분수 위치 fracY에 해당하는 BIOfilterS를 사용하여 수직으로 보간된다. 그 다음에, 보간 필터 BIOfilterG는 18-d 만큼의 역스케일링 시프트를 갖는 분수 위치 fracX에 해당하는 수평 방향으로 적용된다. 수직 그라디언트 에 대해, 그라디언트 필터는 역스케일링 시프트 을 갖는 분수 위치 fracY에 해당하는 BIOfilterG를 사용하여 수직으로 적용된다. 그 다음으로, 신호 변위는 역스케일링 쉬프트 18d을 갖는 분수 위치 fracX에 해당하는 수평 방향으로 BIOfilterS를 사용하여 실행된다. 그라디언트 계산을 위한 보간 필터 BIOfilterG 및 신호 변위를 위한 BIOfilterF의 길이는 적절한 복잡도를 유지하기 위해 더 짧을 수 있다(예를 들어, 6-탭). 표 1은 BIO에서 블록 움직임 벡터의 상이한 분수 위치들의 그라디언트 계산을 위해 사용될 수 있는 필터들의 예를 보여준다. 표 2는 BIO에서 예측 신호 생성을 위해 사용될 수 있는 보간 필터들을 보여준다.
표 1: BIO에서 그라디언트 계산을 위한 필터들의 예
표 2: BIO에서 예측 신호 생성을 위한 보간 필터들의 예
JEM에서, BIO는 2 개의 예측들이 상이한 참조 픽처들로부터 올 경우, 모든 양 예측된 블록들에 적용될 수 있다. LIC (local illumination compensation) 이 CU에 대해 활성화되는(enabled) 경우, BIO는 비활성화 될 수 있다(disabled).
JEM에서, OBMC는 정상 MC 절차 후에 블록에 대해 적용된다. 계산 복잡성을 줄이기 위해, BIO는 OBMC 절차 동안에는 적용되지 않을 수 있다. 이는 BIO는 블록에 대한 MC 절차에서 그것 자체의 MV를 사용하는 경우 적용되며, 주변 블록의 MC가 OBMC 절차 동안 사용되는 경우 MC 절차에서 적용되지 않음을 의미한다.
두 단계의 조기 종료 방법은 두 예측 신호들 간의 유사성에 기반하여 BIO 동작을 조건적으로 비활성화하는 데 사용된다. 조기 종료는 CU레벨에서 먼저 적용되고 그 다음 서브 CU 레벨에서 적용된다. 보다 구체적으로, 제안된 방법은 CU 레벨에서 L0 및 L1 예측 신호들 간에 SAD를 먼저 계산한다. BIO가 루마에만 적용된다는 점을 감안하면 루마 샘플들만이 SAD에 계산에 고려될 수 있다. CU 레벨 SAD이 기 정의된 임계값보다 크지 않으면, BIO 절차는 전체 CU에 대해 완전히 비활성화된다. CU 레벨 임계값은 샘플 별로 로 설정된다. BIO 절차가 CU 레벨에서 비활성화되지 않고 현재 CU가 다중 서브 CU들을 포함하면, CU 내 각 서브 CU의 SAD가 계산될 수 있다. 그런 다음, BIO 절차가 활성화 혹은 비활성화 되는지 여부에 대한 결정은 샘플 당 로 설정된 기 정의된 서브 CU 레벨 SAD 임계값에 기초하여 서브 CU 레벨에서 결정된다.
2.4
VVC에서 BDOF 사양
JVET-N1001-v2에서 BDOF 사양은 하기와 같다.
8.5.7.4
양 방향 광학 흐름 예측 절차
현 절차의 입력은 다음과 같다.
현재 코딩 블록의 너비 및 높이를 특정하는 두 변수 nCbW 및 nCbH,
두 개의 (nCbW + 2)x(nCbH + 2) 루마 예측 샘플 배열들 predSamplesL0 및 predSamplesL1,
예측 리스트 활용 플래그 predFlagL0 및 predFlagL1,
참조 인덱스 refIdxL0 및 refIdxL1,
양 방향 광학 흐름 활용 플래그 bdofUtilizationFlag[ xIdx ][ yIdx ], 여기서 xIdx = 0..( nCbW >> 2 ) - 1, yIdx = 0..( nCbH >> 2 ) - 1.
현 절차의 출력은 루마 예측 샘플 값들의 (nCbW)x(nCbH) 배열 pbSamples이다.
변수들 bitDepth, shift1, shift2, shift3, shift4, offset4, 및 mvRefineThres은 하기와 같이 유도된다.
변수 bitDepth는 BitDepthY와 동일하게 설정된다.
변수 shift1은 Max( 2, 14 - bitDepth )와 동일하게 설정된다.
변수 shift2는 Max( 8, bitDepth - 4 )와 동일하게 설정된다.
변수 shift3은 Max( 5, bitDepth - 7 ) 와 동일하게 설정된다.
변수 shift4는 Max( 3, 15 - bitDepth )와 동일하게 설정되며 변수 offset4는 1 << ( shift4 - 1 )와 동일하게 설정된다.
변수 mvRefineThres는
Max( 2, 1 << ( 13 - bitDepth ) )와 동일하게 설정된다.
xIdx = 0..( nCbW >> 2 ) - 1 및 yIdx = 0..( nCbH >> 2 ) - 1에 대해, 하기 사항이 적용된다.
변수 xSb는 ( xIdx << 2) + 1로 설정되고 ySb는 ( yIdx << 2 ) + 1로 설정된다.
bdofUtilizationFlag[ xSbIdx ][ yIdx ]가 FALSE이면, x = xSb - 1..xSb + 2, y = ySb - 1.. ySb + 2에 대해, 현재 서브블록의 예측 샘플 값들은 하기와 같이 유도된다:
pbSamples[ x ][ y ] = Clip3( 0, ( 2bitDepth ) - 1, ( predSamplesL0[ x + 1 ][ y + 1 ] + offset2 +
(8-852)
predSamplesL1[ x + 1 ][ y + 1 ] ) >> shift2 )
반면 (bdofUtilizationFlag[ xSbIdx ][ yIdx ]이 TRUE이면), 현재 서브 블록의 예측 샘플 값들은 하기와 같이 유도된다:
x =xSb - 1..xSb + 4, y = ySb-1..ySb + 4에 대해, 다음 순서의 단계가 적용된다:
1.
예측 샘플 배열들 내의 대응 샘플 위치 (x, y) 각각에 대한 위치 ( hx, vy ) 는 하기와 같이 유도된다:
hx = Clip3( 1, nCbW, x )
(8-853)
vy = Clip3( 1, nCbH, y )
(8-854)
2.
변수들 gradientHL0[ x ][ y ], gradientVL0[ x ][ y ], gradientHL1[ x ][ y ] 및 gradientVL1[ x ][ y ]은 하기와 같이 유도된다:
gradientHL0[ x ][ y ] = (predSamplesL0[ hx + 1 ][vy] - predSampleL0[ hx - 1 ][ vy ] ) >> shift1
(8-855)
gradientVL0[ x ][ y ] = (predSampleL0[ hx ][ vy + 1 ] - predSampleL0[ hx ][vy - 1 ] ) >> shift1
(8-856)
gradientHL1[ x ][ y ] = (predSamplesL1[ hx + 1 ][vy] - predSampleL1[ hx - 1 ][ vy ] ) >> shift1
(8-857)
gradientVL1[ x ][ y ] = (predSampleL1[ hx ][ vy + 1 ] - predSampleL1[ hx ][vy - 1 ] ) >> shift1
(8-858)
3.
변수들 temp[ x ][ y ], tempH[ x ][ y ] 및tempV[ x ][ y ]은 하기와 같이 유도된다:
diff[ x ][ y ] = (predSamplesL0[ hx ][ vy ] >> shift2 ) - ( predSamplesL1[ hx ][ vy ] >> shift2 )
(8-859)
tempH[ x ][ y ] = (gradientHL0[ x ][ y ] + gradientHL1[ x ][ y ] ) >> shift3
(8-860)
tempV[ x ][ y ] = (gradientVL0[ x ][ y ] + gradientVL1[ x ][ y ] ) >> shift3
(8-861)
변수들 sGx2, sGy2, sGxGy, sGxdI 및 sGydI은 하기와 같이 유도된다:
현재 서브블록의 수평 및 수직 움직임 오프셋은 하기와 같이 유도된다:
vx = sGx2 > 0 ? Clip3( -mvRefineThres, mvRefineThres,
(8-867)
-( sGxdI << 3 ) >> Floor( Log2( sGx2 ) ) ) : 0
vy = sGy2 > 0 ? Clip3( -mvRefineThres, mvRefineThres, ( ( sGydI << 3 ) -
(8-868)
( ( vx * sGxGym ) << 12 + vx * sGxGys ) >> 1 ) >> Floor( Log2( sGx2 ) ) ) : 0
x =xSb - 1..xSb + 2, y = ySb-1..ySb + 2에 대해, 현재 서브 블록의 예측 샘플 값들은 하기와 같이 유도된다:
bdofOffset = Round( ( vx * ( gradientHL1[ x + 1 ][ y + 1 ] - gradientHL0[ x + 1 ][ y + 1 ] ) ) >> 1 )
(8-869)
+ Round( ( vy * (gradientVL1[ x + 1 ][ y + 1 ] - gradientVL0[ x + 1 ][ y + 1 ] ) ) >> 1 )
[Ed. (JC): Round() 연산은 float 입력에 대해 정의된다. 여기서는 입력이 정수 값이기 때문에 Round() 연산이 반복되는 것처럼 보여진다. 제안자에 의해 확인되어야 한다]
pbSamples[ x ][ y ] = Clip3( 0, ( 2bitDepth ) - 1, ( predSamplesL0[ x + 1 ][ y + 1 ] + offset4 +
(8-870)
predSamplesL1[ x + 1 ][ y + 1 ] + bdofOffset ) >> shift4 )
공간적 그라디언트는 하기와 같이 계산된다:
gradientHL0[ x ][ y ] = (predSamplesL0[ hx + 1 ][vy] - predSampleL0[ hx - 1 ][ vy ] ) >> shift1
(8-855)
반면에, 시간적 그라디언트는 하기와 같이 계산된다:
diff[ x ][ y ] = (predSamplesL0[ hx ][ vy ] >> shift2 ) - ( predSamplesL1[ hx ][ vy ] >> shift2 )
(8-859)
즉, 공간적 그라디언트 및 시간적 그라디언트의 계산은 조화되지 않는다.
2.5
디코더 측 움직임 벡터 개선(Decoder-side motion vector refinement)
양 예측 연산에서, 한 블록 영역의 예측을 위해 list0의 움직임 벡터(motion vector: MV) 및 list1의 MV를 이용하여 각각 형성된 두 개의 예측 블록들은 단일 예측 신호를 형성하기 위해 결합된다. JVET-K0217에서, 디코더 측 움직임 벡터 개선(decoder-side motion vector refinement: DMVR) 방법에서 양 방향 매칭 프로세스에 의해 양 예측의 두 움직임 벡터들이 추가로 개선된다.
제안된 방법에서 DMVR은 하기 조건들이 참이면 머지 및 스킵 모드들에서만 적용된다:
POC는 현재 인코딩될 픽처의 픽처 순서 카운트(picture order count)이고, POC0 및 POC1은 현재 픽처에 대한 참조들의 픽처 순서 카운트들이다.
시그널링된 머지 후보 쌍은 DMVR 프로세스의 입력으로 사용되며, 초기 움직임 벡터들 (MV0, MV1)로 표시된다. DMVR에 의해 탐색되는 탐색 점들은 움직임 벡터 차이 미러링 조건에 따른다. 즉, 후보 움직임 벡터 쌍 (MV0', MV1') 로 표시되는, DMVR에 의해 체크되는 모든 점은 하기의 두 식을 따른다:
여기서 MVdiff 는 참조 픽처들 중 하나에서의 탐색 공간의 점들을 표현한다.
탐색 공간의 구성 이후 단 방향 예측이 정규(regular) 8-탭 DCTIF 보간 필터를 이용하여 구성된다. 양 방향 매칭 비용 함수는 두 예측들간의 MRSAD(mean removed sum of absolute differences)를 이용하여 계산(도 6)되며, 최소 비용을 야기하는 탐색 점이 개선된 MV 쌍으로서 선택된다. MRSAD 계산을 위해, 샘플들의 16비트 정밀도가 사용되며(보간 필터링의 출력임), 클리핑 및 라운딩 연산은 MRSAD 계산 전에 적용되지 않는다. 라운딩 및 클리핑을 적용하지 않는 이유는 내부 버퍼 요구사항을 감소시키기 위함이다.
도 6은 6 개의 점 탐색에 의한 양방향 매칭의 일 예를 도시한다.
제안된 방법에서 정수 정밀도 탐색 점들은 적응적 패턴 방법에 의해 선택된다. 중앙 점들(초기 움직임 벡터들이 가리키는)에 대응되는 비용이 먼저 계산된다. 다른 4 개의 비용들(사인 형상에서)이 중앙 점에 의해 서로 반대 쪽에 위치한 두 개의 예측들에 의해 계산된다. 각도에서 마지막 여섯 번 째 점은 이전에 계산된 비용들의 그라디언트에 의해 선택된다(도 7).
도 7은 적응적 정수 탐색 패턴 및 하프(half) 샘플 탐색 패턴의 예들을 도시한다.
DMVR 프로세스의 출력은 최소 비용에 대응되는 개선된 움직임 벡터 쌍이다.
1회 반복 후 탐색 공간의 중앙 점에서 최소 비용이 달성되면, 즉, 움직임 벡터가 변경되지 않으면, 개선 프로세스가 종료된다. 그렇지 않은 경우, 최소 비용은 중앙 점에 대응되지 않고 탐색 범위를 초과하지 않는 동안, 최상의 비용이 중앙으로 간주되어 프로세스가 계속된다.
하프 샘플 정밀도 탐색은 하프-픽셀 탐색의 적용이 탐색 범위를 초과하지 않는 경우에만 적용된다. 이 경우, 정수 정밀도 탐색 동안 최상으로 선택되는 중앙 점 주변의 플러스 형태의 점들에 대응되는 오직 4 개의 MRSAD 계산만이 수행된다. 마지막으로, 최소 비용 점에 해당하는 개선된 움직임 벡터 쌍이 출력된다.
JVET-L0163에서 일부 단순화 및 개선 사항이 추가적으로 제안된다.
참조 샘플링 패딩
참조 샘플 패딩은 초기 움직임 벡터가 가리키는 참조 샘플 블록을 확장하기 위해 적용된다. 코딩 블록의 크기가 w 및 h로 주어지면, 크기 w+7 및 h+7인 블록이 참조 픽처 버퍼로부터 검색된다고 가정한다. 그런 다음 검색된 버퍼는 가장 가까운 샘플을 이용하여 반복적인 샘플 패딩을 통해 각 방향으로 2개의 샘플만큼 확장된다. 그 후 확장된 참조 샘플 블록은 개선된 움직임 벡터가 획득되면 최종 예측을 생성하는 데 사용된다(초기 움직임 벡터로부터 각 방향으로 2개의 샘플에서 벗어날 수 있음).
이러한 변경은 코딩 손실 없이 DMVR의 외부 메모리 접근 요구사항을 완전히 제거한다.
8-탭 DCTIF 대신 양선형 보간(bilinear interpolation)
제안에 따르면 양선형 보간은 DMVR 탐색 프로세스 동안 적용되며, 이는 MRSAD 계산에 사용되는 예측이 양선형 보간을 사용하여 생성됨을 의미한다. 최종 개선된 움직임 벡터들이 획득되면 정규 8-탭 DCTIF 보간 필터는 최종 예측들을 생성하기 위해 적용된다.
작은 블록들에 대한 DMVR의 비활성화
DMVR은 4x4, 4x8, 및 8x4 블록에 대해 비활성화된다.
머지 후보들 간의 MV 차이에 기초한 조기 종료
MV 개선 프로세스를 제한하기 위해 DMVR에 추가적인 조건이 부과된다. 이에 의해, DMVR은 하기 조건이 만족될 때 조건부로 비활성화된다.
동일 머지 후보 리스트에서 선택된 머지 후보와 이전 머지 후보들 중 어느 하나 간의 MV 차이는 기 정의된 임계값(즉, 64픽셀 미만, 256 픽셀 미만, 및 256 픽셀 이상의 CU에 대한 1/4-, 1/2- 및 1-픽셀-너비 간격)보다 작다.
중앙 탐색 좌표에서 SAD 비용에 기초한 조기 종료
현재 CU의 초기 움직임 벡터들을 이용하여 두 예측 신호들(L0 및 L1 예측) 간의 SAD(sum of absolute difference)가 계산된다. SAD가 기 정의된 임계값, 즉 샘플 당 보다 크지 않은 경우, DMVR은 생략된다. 그렇지 않은 경우, DMVR은 현재 블록의 두 움직임 벡터들을 개선하기 위해 여전히 적용된다.
DMVR 적용 조건
DMVR 적용 조건은 BMS2.1에서 구현되기 때문에 (POC - POC1)x(POC-POC2)<0이며 새로운 조건 (POC - POC1)==(POC2 - POC)으로 대체된다. 즉, 참조 픽처들이 시간적 방향에서 반대이고 현재 픽처와 거리가 같은 경우에만 DMVR이 적용된다.
두 번째 행마다 MRSAD 계산
MRSAD 비용은 블록의 홀수 행들에 대해서만 계산되며, 짝수 샘플 행들은 고려되지 않는다. 이에 따라, MRSAD 계산에 대한 연산 횟수는 절반으로 줄어든다.
2.6
관련 방법
2018년 8월 4일에 출원된 "motion refinement for visual media coding"이라는 명칭의 출원 번호 PCT/CN2018/098691(본 명세서에 참조로 포함됨)에 의해 식별된 특허 출원에서, MV 업데이트 방법 및 두 단계 인터 예측 방법이 제안된다. BIO에서 참조 블록 0 및 참조 블록 1 간의 유도된 MV는 스케일링되고 리스트0(list0) 및 리스트1(list1)의 원본 움직임 벡터에 추가된다. 한편, 업데이트된 MV는 움직임 보상을 수행하기 위해 사용되고 두 번째(제2) 인터 예측이 최종 예측으로서 생성된다. 시간적 그라디언트는 참조 블록 0 및 참조 블록 1 간의 평균 차이를 제거하여 변경된다.
2.7
VVC 드래프트 4에서 DMVR
JVET-M1001_v7 (VVC 워킹 드래프트 4, 버전 7)에서 DMVR의 사용은 하기와 같이 정의된다:
하기 모든 조건들이 참이면, dmvrFlag는 1과 동일하게 설정된다:
sps_dmvr_enabled_flag은1과 동일하다
현재 블록이 삼각(triangular) 예측 모드, AMVR 어파인 모드, 서브 블록 모드로 코딩되지 않는다(머지 어파인 모드, ATMVP 모드를 포함)
merge_flag[ xCb ][ yCb ]은 1과 동일하다
predFlagL0[ 0 ][ 0 ] 및 predFlagL1[ 0 ][ 0 ] 모두가 1과 동일하다
mmvd_flag[ xCb ][ yCb ]이 0과 동일하다
DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ])이 DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic )과 동일하다
cbHeight이 8이상이다
cbHeight*cbWidth이 64이상이다
3.
구현 예들에 의해 해결되는 문제점들의 예들
BIO에서, 두 참조 블록들 혹은 서브 블록들 간의 차이는 조기 종료 단계에서 계산되는데, 한편, 시간적 그라디언트 또한 계산된다. 시간적 그라디언트는 사실상 두 참조 픽셀들 간의 차이(혹은 오른쪽 시프팅된 차이)이므로, 차이 및 시간적 그라디언트를 모두 계산하는 것은 의미가 없다.
DMVR에서, MRSAD 계산은 한 블록의 개선 움직임 벡터를 결정하는 데 사용된다.
BIO에서, SAD 계산은 계산 복잡도를 증가시키는 한 블록/한 서브 블록의 모든 샘플들을 이용하여 BIO가 한 블록 혹은 하나의 서브 블록에 대해 활성화/비활성화되어야 하는지 여부를 결정하기 위해 사용된다.
계산 방법은 공간적 그라디언트 및 시간적 그라디언트에 대해 상이하다.
4. 구현 예들
절대 변환 차이의 합(sum of absolute transformed differences)을 SATD로 , 절대 변환 차이의 평균 제거 합(mean removed sum of absolute transformed differences)을 MRSATD로, 오차 제곱의 합(sum of squares error)을 SSE로, 오차 제곱의 평균 제거 합(mean removed sum of squares error)을 MRSSE로 나타낸다.
하기의 세부 기술들은 일반적인 개념을 설명하기 위한 예로서 고려되어야 한다. 이러한 기술들은 좁은 의미로 해석되어서는 안 된다. 또한, 이 발명들은 어떠한 방식으로든 조합될 수 있다.
다음 논의에서, SatShift(x, n)는 하기와 같이 정의된다.
Shift(x, n)는 Shift(x, n) = (x+ offset0)>>n로 정의된다.
일 예로서, offset0 및/혹은 offset1은 (1<<n)>>1 혹은 (1<<(n-1))로 설정된다. 다른 예에서, offset0 및/혹은 offset1은 0으로 설정된다.
다른 예에서, offset0=offset1= ((1<<n)>>1)-1 혹은 ((1<<(n-1)))-1이다.
BDOF의 그라디언트 계산에서, 두 개의 이웃(공간적 이웃 또는 시간적 이웃) 혹은/및 인접하지 않은 샘플들 간의 차이가 계산될 수 있고, 오른쪽 시프트는 그라디언트 계산 동안 수행될 수 있다. 두 개의 인접 샘플들을 neig0 및 neig1라 하고, 오른쪽 시프트 값은 shift1라 하고, 계산할 그라디언트는 grad라 한다. Shift1은 공간적 그라디언트 및 시간적 그라디언트에 대해 상이하다.
1.
공간적 그라디언트와 시간적 그라디언트 계산에 사용된 방법을 조화시키는 것이 제안된다.
a.
일 예로서, 그라디언트는 시프트된 샘플 차이들에 따라 계산된다.
i.
또는, 변경된 샘플(예를 들어, 시프팅을 통해) 차이에 따라 그라디언트가 계산된다.
b.
일 예로서, 그라디언트 계산에서, 오른쪽 시프트 이전에 감산이 수행된다. 예를 들어, grad = (neig0 - neig1) >> shift1이다.
c.
일 예로서, 그라디언트 계산에서, 오른쪽 시프트 이후에 감산이 수행된다. 예를 들어, grad = (neig0 >> shift1) - (neig1 >> shift1)이다.
d.
일 예로서, 그라디언트 계산에서, 오른쪽 시프트 전에 감산이 수행될 수 있고, 오프셋이 오른쪽 시프트 전에 추가될 수 있다. 예를 들어, grad = (neig0 - neig1 + offset) >> shift1이다. 오프셋은 1 << (shift1 - 1) 혹은 1<<shift1>>1와 동일할 수 있다.
e.
일 예로서, 그라디언트 계산에서, 오른쪽 시프트 이후 감산이 수행될 수 있고, 오프셋은 오른쪽 시프트 이전에 추가될 수 있다. 예를 들어, grad = ((neig0 + offset) >> shift1) - ((neig1 + offset) >> shift1)이다. 오프셋은 1 << (shift1 - 1) 혹은1<<shift1>>1와 동일할 수 있다.
f.
일 예로서, 그라디언트는 SatShift(neig0 - neig1, shift1)로서 계산될 수 있다.
i.
또는, 그라디언트는 SatShift(neig0, shift1) -SatShift(neig1, shift1)로 계산될 수 있다.
2.
SATD 혹은 MRSATD 혹은 SSE 혹은 MRSSE 혹은 평균 값 차이 혹은 그라디언트 값들 같은 조기 종료 단계에서 BIO 혹은/및 DMVR의 활성화/비활성화를 결정하기 위한 다른 기준을 사용하는 것이 제안된다.
a.
일 예로서, 블록 레벨 및 서브-블록 레벨 활성화/비활성화 결정들은 서로 다른 규칙을 선택할 수 있다. 예를 들어, 하나는 SAD이고 하나는 SATD일 수 있다.
b.
일 예로서, 블록/서브블록에 대해, 그라디언트 값들(수평 및/혹은 수직) 혹은 평균 그라디언트 값들 혹은 그라디언트 값들의 범위가 조건을 만족하면, (예를 들어, 임계값 보다 크거나 주어진 범위 외) BIO 및/혹은 DMVR이 비활성화 될 수 있다.
c.
BIO/DMVR의 활성화/비활성화하는 데 사용되는 기준이 인코더에서 디코더로 VPS/SPS/PPS/슬라이스 헤더/타일 그룹 헤더로 시그널링될 수 있다고 제안된다.
3.
MRSAD를 대체하기 위해 SATD 혹은 MRSATD 혹은 SSE 혹은 MRSSE와 같은 DMVR 프로세스에서 한 블록의 개선된 움직임 벡터를 결정하기 위해 다른 기준을 사용하는 것이 제안된다.
a.
일 예에서, MRSAD를 대체하기 위해 SATD 혹은 MRSATD 혹은 SSE 혹은 MRSSE와 같은 DMVR 프로세스에서 한 서브 블록의 개선된 움직임 벡터.
b.
일 예로서, SATD(혹은 MRSATD)가 적용되면, 전체 블록이 MxN 서브 블록들로 분할되며 SATD(혹은 MRSATD)가 각 서브 블록에 대해 계산된다. 모든 혹은 일부 서브 블록들에 대한 SATD들(혹은 MRSATD들)이 전체 블록에 대한 SATD(혹은 MRSATD) 값을 획득하기 위해 합산된다.
4.
한 블록의 두 참조 블록들의 평균 값 차이가 임계값(T1)보다 큰 경우, BIO 혹은/및 DMVR은 비활성화될 수 있다.
a.
한 서브 블록의 두 참조 서브 블록들의 평균 값 차이가 임계값(T2)보다 큰 경우 BIO는 비활성화될 수 있다.
b.
임계값 T1및/혹은 T2는 기 정의될 수 있다.
c.
임계 값 T1 및/혹은 T2는 블록 크기에 따를 수 있다.
5.
BIO의 조기 종료 단계에서, 두 참조 블록들/서브 블록들 간의 차이(예를 들어, SAD/SATD/SSE 등)를 계산하기에 앞서, 참조 블록들 혹은/및 서브 블록들이 먼저 변경될 수 있다고 제안된다.
a.
일 예로서, 참조 블록 혹은/및 서브 블록의 평균이 계산될 수 있고 참조 블록 혹은/및 그 이후 서브 블록에 의해 감산될 수 있다.
b.
일 예로서, 2018년 7월 20일에 출원된 명칭이 "motion prediction based on updated motion vectors"인 특허 번호 PCT/CN2018/096384에 개시된 방법들은 참조 블록 혹은/및 서브 블록의 평균 값을 계산하는데 사용될 수 있다. 즉, 평균 값은 일부 대표 위치들에 대해 계산된다.
6.
BIO 혹은/및 DMVR의 조기 종료 단계에서 두 참조 블록들 혹은/및 서브 블록들 간의 차이(예를 들어, SAD/SATD/SSE/MRSAD/MRSATD/MRSSE 등)는 오직 일부 대표 위치들에 대하여만 계산될 수 있다고 제안된다.
a.
일 예로서, 짝수 행들의 차이 만이 블록 혹은/및 서브 블록에 대해 계산된다.
b.
일 예로서, 한 블록/서브 블록의 네 개의 코너 샘플들의 차이만이 블록 혹은/및 서브 블록에 대해 계산된다.
c.
일 예로서, 2018년 7월 2일에 출원된 "Decoder Side Motion Vector Derivation in Video Coding"라는 명칭의 미국 가출원 번호 62/693,412(여기에 참조로 포함됨)에 개시된 방법들은 대표적인 위치들을 선택하는 데 사용될 수 있다.
d.
일 예로서, 두 참조 블록들 간의 차이(예를 들어, SAD/SATD/SSE/MRSAD/MRSATD/MRSSE 등)은 일부 대표 서브 블록들에 대해서만 계산될 수 있다.
e.
일 예에서, 대표적인 위치들 혹은 서브 블록들에 대해 계산된 차이(예를 들어, SAD/SATD/SSE/MRSAD/MRSATD/MRSSE 등)은 전체 블록/서브 블록에 대한 차이를 획득하기 위해 합산된다.
7.
시간적 그라디언트(위치(x,y)에서의 시간적 그라디언트는 G(x,y)=P0(x,y)-P1(x,y)로 정의되고, 여기서 P0(x,y) 및 P1(x,y)는 두 개의 다른 참조 픽처들에서의 (x,y)에서 예측을 나타냄) 혹은 변경된 시간적 그라디언트는 BIO의 조기 종료 단계에서 차이(SAD 대신)로서 사용되고, 조기 종료에서 사용된 임계값은 이에 따라 조정될 수 있다.
a.
일 예에서, 시간적 그라디언트들의 절대 합이 계산되고 두 참조 블록들 혹은/및 서브 블록들의 차이로서 사용된다.
b.
일 예에서, 시간적 그라디언트들의 절대 합은 블록 혹은/및 서브 블록에 대한 일부 대표 위치들에 대해서만 계산된다.
c.
일 예에서, 2018년 7월 2일에 출원된 "Decoder Side Motion Vector Derivation in Video Coding"라는 명칭을 갖는 US 가출원 번호 62/693,412(여기에 참조로 통합됨)는 대표적인 위치들을 선택하는 데 사용될 수 있다.
8.
시간적 그라디언트 변경 프로세스는 서로 다른 블록들/서브블록들에 적응적으로 수행될 수 있다고 제안된다.
a.
일 예에서, 시간적 그라디언트는 두 참조 블록들 간의 절대 평균 차이(혹은 SAD/SATD/SSE 등)가 임계값 T보다 클 때만 변경된다. 일 예로서, T=4이다.
b.
일 예에서, 시간적 그라디언트는 두 참조 블록들 간의 절대 평균 차이(혹은 SAD/SATD/SSE 등)가 임계값 T보다 클 때만 변경된다. 일 예로서, T=20이다.
c.
일 예에서, 시간적 그라디언트는 두 참조 블록들 간의 절대 평균 차이(혹은 SAD/SATD/SSE 등)가 [T1, T2] 범위 내일 때만 변경된다. 일 예로서, T1=4이고, T2=20이다.
d.
일 예에서, 두 참조 블록들 간의 절대 평균 차이(혹은 SAD/SATD/SSE 등)가 임계값 T보다 큰 경우(예를 들어, T=40), BIO는 비활성화된다.
e.
일 예로서, 이 임계 값들은 암시적으로 기정의될 수 있다.
f.
일 예로서, 이 임계 값들은 SPS/PPS/픽처/슬라이스/타일 레벨에서 시그널링될 수 있다.
g.
일 예로서, 이 임계값들은 서로 다른 CU, LCU, 슬라이스, 타일 혹은 픽처에 따라 다를 수 있다.
i.
일 예로서, 이 임계값들은 디코딩된/인코딩된 픽셀 값들에 기초하여 설계될 수 있다.
ii.
일 예로서, 이 임계값들은 참조 픽처들에 따라 상이하게 설계될 수 있다.
h.
일 예로서, 시간적 그라디언트는 두 개의(혹은 두 개중 어느 하나) 참조 블록들의 (절대) 평균이 임계값 T보다 큰 경우에만 변경된다. 일 예로서, T=40이다.
i.
일 예로서, 시간적 그라디언트는 두 개의(혹은 두 개중 어느 하나) 참조 블록들의 (절대) 평균이 임계값 T보다 작은 경우에만 변경된다. 일 예로서, T=100이다.
j.
일 예로서, 시간적 그라디언트는 두 개의(혹은 두 개중 어느 하나) 참조 블록들의 (절대) 평균이 [T1, T2] 범위 내인 경우에만 변경된다. 일 예로서, T1=40, T2=100이다.
k.
일 예로서, 시간적 그라디언트는 두 개의(혹은 두 개중 어느 하나) 참조 블록들의 (절대) 평균이 절대 평균 차이(혹은 SAD/SATD 등)에 T를 곱한 것보다 크거나 작은 경우에만 변경된다. 일 예로서, T=4.5이다.
l.
일 예로서, 시간적 그라디언트는 두 개의(혹은 두 개중 어느 하나) 참조 블록들의 (절대) 평균이 절대 평균 차이(혹은 SAD/SATD 등)에 [T1, T2]를 곱한 범위 내인 경우에만 변경된다. 일 예로서, T1=4.5, T2=7이다.
9.
하이브리드 인트라 및 인터 예측 모드에서, 두 인터 참조 블록들은 BIO에서 공간적 그라디언트들을 계산할 때 변경되거나 전체 BIO 절차를 수행하기에 앞서 변경될 수 있다고 제안된다.
a.
일 예로서, 각 예측 방향의 인트라 예측 블록 및 인터 예측 블록은 wAvgBlkL0 및 wAvgBlkL1로 표현되는 BIO에서 공간적 그라디언트들을 유도하기 위해 사용되는 두 개의 새로운 예측 블록들을 생성하기 위해 가중 평균 된다(하이브리드 인터 및 인터 예측에서 사용되는 동일한 가중 방법을 이용).
b.
일 예로서, wAvgBlkL0 및 wAvgBlkL1는 predBlk로 표현되는 현재 블록의 예측 블록을 생성하는 데 사용된다. 그 다음, wAvgBlkL0, wAvgBlkL1 및 predBlk는 BIO 과정을 위해 더 사용되고, BIO에서 생성된 개선된 예측 블록은 최종 예측 블록으로서 사용된다.
10.
DMVR 혹은/및 BIO 플래그는 블록 레벨에서 DMVR 혹은/및 BO가 블록에 대해 활성화되는지 여부를 지시하기 위해 시그널링 될 수 있다고 제안된다.
a.
일 예로서, 이러한 플래그는 AMVP 모드에 대해서만 시그널링 될 수 있으며, 머지 모드에서, 이러한 플래그는 공간적 혹은/및 시간적 인접 블록들로부터 상속될 수 있다.
b.
일 예로서, BIO 혹은/및 DMVR이 활성화되는지 아닌지 여부는 시그널링된 플래그와 즉석(on-the-fly) 결정(예를 들어, 조기 종료 단계에서 SAD에 기초한 결정)에 의해 공동으로 결정될 수 있다. 시그널링된 플래그는 즉석 결정이 올바른지 여부를 나타낼 수 있다.
c.
이러한 플래그는 단일 예측된 블록들에 대해서는 시그널링되지 않는다.
d.
이러한 플래그는 두 참조 픽처들이 디스플레이 순서 상 모두 선행 픽처들이거나 후행 픽처들인 양 예측된 블록들에 대해서는 시그널링되지 않을 수 있다.
e.
이러한 플래그는 POC_diff(curPic, ref0) 이 POC_diff(ref1, curPic)와 동일하지 않은 경우 양 예측된 블록들에 대해서는 시그널링되지 않을 수 있는데, POC_diff ()는 두 픽처들 간의 POC 차이를 계산하고, ref0 및 ref1은 현재 픽처의 참조 픽처들이다.
f.
이러한 플래그는 인트라 코딩된 블록들에 대해서는 시그널링되지 않는다. 또는, 이러한 플래그는 하이브리드 인트라 및 인터 예측 모드로 코딩된 블록들에 대해서는 시그널링되지 않는다.
또는, 이러한 플래그는 현재 픽처 참조 블록에 대해 시그널링되지 않는다. 즉, 참조 픽처는 현재 픽처이다.
g.
플래그를 시그널링할 지 여부는 블록 크기에 기초할 수 있다. 예를 들어, 블록 크기가 임계 값보다 작은 경우, 이러한 플래그는 시그널링되지 않는다. 또는, 블록 너비 및/혹은 높이가 임계 값 이상인 경우, 이러한 플래그는 시그널링되지 않는다.
h.
플래그를 시그널링할 지 여부는 움직임 벡터 정밀도에 기초할 수 있다. 예를 들어, 움직임 벡터가 정수 정밀도인 경우, 이러한 플래그는 시그널링되지 않는다.
i.
이러한 플래그가 시그널링되지 않는 경우, 이는 암시적으로 참(true) 혹은 거짓(false)로 유도될 수 있다.
j.
플래그는 이러한 방법이 활성화되는지 혹은 아닌지 여부를 지시하기 위해 슬라이스 헤더/타일 헤더/PPSSPSVPS에서 시그널링될 수 있다.
k.
이러한 시그널링 방법은 픽처의 시간적 레이어에 기초할 수 있다. 예를 들어, 높은 시간적 레이어의 픽처에 대해서는 비활성화될 수 있다.
l.
이러한 시그널링 방법은 픽처의 QP에 기초할 수 있다. 예를 들어, 높은 QP 의 픽처에 대해서는 비활성화될 수 있다.
11.
블록 높이 및 블록 크기를 모두 체크하는 대신, 오직 블록 높이에 따라 DMVR를 활성화할지 혹은 비활성화할지 여부를 결정하는 것이 제안된다.
a.
일 예로서, DMVR은 블록 높이가 T1(예를 들어, T1=4)보다 큰 경우 활성화 될 수 있다.
b.
일 예로서, DMVR은 블록 높이가 T1 이상인 경우(예를 들어, T1=8) 활성화될 수 있다.
12.
DMVR/BIO에 적용되는 상기 방법들은 어파인 모드에 대한 광학 흐름(optical flow)에 기초한 예측 개선과 같은 다른 DMVD(decoder-side motion vector derivation) 방법들에만 적용될 수 있다.
a.
일 예로서, 블록 높이가 동일한 임계값을 충족하는지 여부와 같이 DMVR 및 BIO의 사용 결정에 대한 조건 체크가 정렬될 수 있다.
i.
일 예로서, DMVR 및 BIO는 블록 높이가 T1 이상인 경우(예를 들어, T1=8) 활성화될 수 있다.
ii.
일 예로서, DMVR 및 BIO는 블록 높이가 T1 보다 큰 경우(예를 들어, T1=4) 활성화될 수 있다.
5.
실시예
5.1
실시예 #1
JVET-M1001_v7 (VVC 워킹 드래프트 4, 버전7)에서 DMVR의 사용은 하기와 같이 변경된다:
하기 조건들이 모두 참이면, dmvrFlag는 1과 동일하게 설정된다:
sps_dmvr_enabled_flag는 1이다
현재 블록이 삼각(triangular) 예측 모드, AMVR 어파인 모드, 서브 블록 모드(머지 어파인 모드, ATMVP 모드를 포함)로 코딩되지 않는다
merge_flag[ xCb ][ yCb ]는 1이다
predFlagL0[ 0 ][ 0 ] 및 predFlagL1[ 0 ][ 0 ]이 모두 1이다
mmvd_flag[ xCb ][ yCb ]는 0이다
DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ])는 DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic )와 동일하다
cbHeight는 8이상이다
즉, "cbHeight*cbWidth가 64이상임"이 삭제됨을 의미한다.
5.2
실시예 #2
새롭게 추가된 부분들은 굵은 이탤릭체 로 강조 표시하고, 삭제된 부분은 취소선으로 강조 표시되었다.
i.
일 예
8.5.7.4
양방향 광학 흐름 예측 프로세스
이 프로세스의 입력은 다음과 같다:
현재 코딩 블록의 너비 및 높이를 특정하는 두 변수 nCbW 및 nCbH,
두 개의 (nCbW + 2)x(nCbH + 2) 루마 예측 샘플 배열 predSamplesL0 및 predSamplesL1,
예측 리스트 활용 플래그 predFlagL0 및 predFlagL1,
참조 인덱스 refIdxL0 및 refIdxL1,
xIdx = 0..( nCbW >> 2 ) - 1, yIdx = 0..( nCbH >> 2 ) - 1에 대한 양방향 광학 흐름 활용 플래그 bdofUtilizationFlag[ xIdx ][ yIdx ].
이 프로세스의 출력은 루마 예측 샘플 값들의 (nCbW)x(nCbH) 배열 pbSamples이다.
변수들 bitDepth, shift1, shift2, shift3, shift4, offset4, 및 mvRefineThres은 하기와 같이 유도된다:
변수 bitDepth는 BitDepthY와 동일하게 설정된다.
변수 shift1는 Max( 2, 14 - bitDepth )와 동일하게 설정된다.
변수 shift2는 Max( 8, bitDepth - 4 )와 동일하게 설정된다.
변수 shift3는 Max( 5, bitDepth - 7 )와 동일하게 설정된다.
변수 shift4는 Max( 3, 15 - bitDepth )와 동일하게 설정되고, 변수 offset4는 1 << ( shift4 - 1 )와 동일하게 설정된다.
변수 mvRefineThres는 Max( 2, 1 << ( 13 - bitDepth ) )와 동일하게 설정된다.
xIdx = 0..( nCbW >> 2 ) - 1 및 yIdx = 0..( nCbH >> 2 ) - 1에 대해, 하기가 적용된다:
변수 xSb는 ( xIdx << 2) + 1와 같이 설정되고 ySb는 ( yIdx << 2 ) + 1와 같이 설정된다.
bdofUtilizationFlag[ xSbIdx ][ yIdx ]이 FALSE이면, x = xSb - 1..xSb + 2, y = ySb - 1.. ySb + 2에 대해, 현재 서브블록의 예측 샘플 값들은 하기와 같이 유도된다:
pbSamples[ x ][ y ] = Clip3( 0, ( 2bitDepth ) - 1, ( predSamplesL0[ x + 1 ][ y + 1 ] + offset2 +
(8-852)
predSamplesL1[ x + 1 ][ y + 1 ] ) >> shift2 )
그렇지 않은 경우 (bdofUtilizationFlag[ xSbIdx ][ yIdx ]이 TRUE), 현재 서브블록의 예측 샘플 값들은 하기와 같이 유도된다:
x =xSb - 1..xSb + 4, y = ySb -1..ySb + 4에 대해, 하기 순서의 단계들이 적용된다:
4.
예측 샘플 배열들 내의 대응 샘플 위치 (x, y)의 각각에 대한 위치 ( hx, vy )는 하기와 같이 유도된다:
hx = Clip3( 1, nCbW, x )
(8-853)
vy = Clip3( 1, nCbH, y )
(8-854)
5.
변수들 gradientHL0[ x ][ y ], gradientVL0[ x ][ y ], gradientHL1[ x ][ y ] 및 gradientVL1[ x ][ y ] 는 하기와 같이 유도된다:
gradientHL0[ x ][ y ] = (predSamplesL0[ hx + 1 ][vy] - predSampleL0[ hx - 1 ][ vy ] ) >> shift1
(8-855)
gradientVL0[ x ][ y ] = (predSampleL0[ hx ][ vy + 1 ] - predSampleL0[ hx ][vy - 1 ] ) >> shift1
(8-856)
gradientHL1[ x ][ y ] = (predSamplesL1[ hx + 1 ][vy] - predSampleL1[ hx - 1 ][ vy ] ) >> shift1
(8-857)
gradientVL1[ x ][ y ] = (predSampleL1[ hx ][ vy + 1 ] - predSampleL1[ hx ][vy - 1 ] ) >> shift1
(8-858)
6.
변수들 temp[ x ][ y ], tempH[ x ][ y ] 및 tempV[ x ][ y ]은 하기와 같이 유도된다:
tempH[ x ][ y ] = (gradientHL0[ x ][ y ] + gradientHL1[ x ][ y ] ) >> shift3
(8-860)
tempV[ x ][ y ] = (gradientVL0[ x ][ y ] + gradientVL1[ x ][ y ] ) >> shift3
(8-861)
변수들 sGx2, sGy2, sGxGy, sGxdI 및 sGydI은 하기와 같이 유도된다:
sGx2 = SiSj ( tempH[ xSb + i ][ ySb + j ] * tempH[ xSb + i ][ ySb + j ] ) 여기서 i, j = -1..4
(8-862)
sGy2 = SiSj(tempV[ xSb + i ][ ySb + j ] * tempV[ xSb + i ][ ySb + j ] ) 여기서 i, j = -1..4
(8-863)
sGxGy = SiSj(tempH[ xSb + i ][ ySb + j ] * tempV[ xSb + i ][ ySb + j ] ) 여기서 i, j -1..4
(8-864)
sGxdI = SiSj( - tempH[ xSb + i ][ ySb + j ] * diff[ xSb + i ][ ySb + j ] ) 여기서 i, j = -1..4
(8-865)
sGydI = SiSj( - tempV[ xSb + i ][ ySb + j ] * diff[ xSb + i ][ ySb + j ] ) 여기서 i, j = -1..4
(8-866)
현재 서브 블록의 수평 및 수직 움직임 오프셋은 하기와 같이 유도된다:
vx = sGx2 > 0 ? Clip3( -mvRefineThres, mvRefineThres,
(8-867)
-( sGxdI << 3 ) >> Floor( Log2( sGx2 ) ) ) : 0
vy = sGy2 > 0 ? Clip3( -mvRefineThres, mvRefineThres, ( ( sGydI << 3 ) -
(8-868)
( ( vx * sGxGym ) << 12 + vx * sGxGys ) >> 1 ) >> Floor( Log2( sGx2 ) ) ) : 0
x =xSb - 1..xSb + 2, y = ySb -1..ySb + 2에 대해, 현재 서브블록의 예측 샘플 값들은 하기와 같이 유도된다:
bdofOffset = Round( ( vx * ( gradientHL1[ x + 1 ][ y + 1 ] - gradientHL0[ x + 1 ][ y + 1 ] ) ) >> 1 ) (8-869)
+ Round( ( vy * (gradientVL1[ x + 1 ][ y + 1 ] - gradientVL0[ x + 1 ][ y + 1 ] ) ) >> 1 )
[Ed. (JC): Round() 연산은 float 입력에 대해 정의된다. 여기서는 입력이 정수 값이기 때문에 Round() 연산이 반복되는 것처럼 보여진다. 제안자에 의해 확인되어야 한다]
pbSamples[ x ][ y ] = Clip3( 0, ( 2bitDepth ) - 1, ( predSamplesL0[ x + 1 ][ y + 1 ] + offset4 +
(8-870)
predSamplesL1[ x + 1 ][ y + 1 ] + bdofOffset ) >> shift4 )
ii.
일 예
8.5.7.4
양 방향 광학 흐름 예측 프로세스
이 프로세스의 입력은 다음과 같다:
현재 코딩 블록의 너비 및 높이를 특정하는 두 변수 nCbW 및 nCbH,
두 개의 (nCbW + 2)x(nCbH + 2) 루마 예측 샘플 배열들 predSamplesL0 및 predSamplesL1,
예측 리스트 활용 플래그 predFlagL0 및 predFlagL1,
참조 인덱스 refIdxL0 및 refIdxL1,
xIdx = 0..( nCbW >> 2 ) - 1, yIdx = 0..( nCbH >> 2 ) - 1에 대한 양방향 광학 흐름 활용 플래그 bdofUtilizationFlag[ xIdx ][ yIdx ].
이 프로세스의 출력은 루마 예측 샘플 값들의 (nCbW)x(nCbH) 배열 pbSamples이다.
변수 bitDepth, shift1, shift2, shift3, shift4, offset4, 및 mvRefineThres은 하기와 같이 유도된다:
변수 bitDepth는 BitDepthY와 동일하게 설정된다.
변수 shift1는 Max( 2, 14 - bitDepth )와 동일하게 설정된다.
변수 shift2는 Max( 8, bitDepth - 4 )와 동일하게 설정된다.
변수 shift3는 Max( 5, bitDepth - 7 )와 동일하게 설정된다.
변수 shift4는 Max( 3, 15 - bitDepth )와 동일하게 설정되며 변수 offset4는 1 << ( shift4 - 1 )와 동일하게 설정된다.
변수 mvRefineThres는 Max( 2, 1 << ( 13 - bitDepth ) )와 동일하게 설정된다.
xIdx = 0..( nCbW >> 2 ) - 1 및 yIdx = 0..( nCbH >> 2 ) - 1에 대해, 하기가 적용된다:
변수 xSb는 ( xIdx << 2) + 1와 동일하게 설정되고 ySb는 ( yIdx << 2 ) + 1와 동일하게 설정된다.
bdofUtilizationFlag[ xSbIdx ][ yIdx ]이 FALSE이면, x = xSb - 1..xSb + 2, y = ySb - 1.. ySb + 2에 대해, 현재 서브 블록의 예측 샘플 값들은 하기와 같이 유도된다:
pbSamples[ x ][ y ] = Clip3( 0, ( 2bitDepth ) - 1, ( predSamplesL0[ x + 1 ][ y + 1 ] + offset2 +
(8-852)
predSamplesL1[ x + 1 ][ y + 1 ] ) >> shift2 )
반대의 경우 (bdofUtilizationFlag[ xSbIdx ][ yIdx ]이 TRUE이면), 현재 서브 블록의 예측 샘플 값들은 하기와 같이 유도된다:
x =xSb - 1..xSb + 4, y = ySb -1..ySb + 4에 대해, 하기 순서의 단계들이 적용된다:
7.
예측 샘플 배열들 내의 대응 샘플 위치들의 각각에 대한 위치 ( hx, vy )는 하기와 같이 유도된다:
hx = Clip3( 1, nCbW, x )
(8-853)
vy = Clip3( 1, nCbH, y )
(8-854)
8.
변수들 gradientHL0[ x ][ y ], gradientVL0[ x ][ y ], gradientHL1[ x ][ y ] 및 gradientVL1[ x ][ y ]은 하기와 같이 유도된다:
9.
변수들 temp[ x ][ y ], tempH[ x ][ y ] 및 tempV[ x ][ y ]은 하기와 같이 유도된다:
diff[ x ][ y ] = (predSamplesL0[ hx ][ vy ] >> shift2 ) - ( predSamplesL1[ hx ][ vy ] >> shift2 )
(8-859)
tempH[ x ][ y ] = (gradientHL0[ x ][ y ] + gradientHL1[ x ][ y ] ) >> shift3
(8-860)
tempV[ x ][ y ] = (gradientVL0[ x ][ y ] + gradientVL1[ x ][ y ] ) >> shift3
(8-861)
변수들 sGx2, sGy2, sGxGy, sGxdI 및 sGydI은 하기와 같이 유도된다:
현재 서브블록의 수평 및 수직 움직임 오프셋은 하기와 같이 유도된다:
vx = sGx2 > 0 ? Clip3( -mvRefineThres, mvRefineThres,
(8-867)
-( sGxdI << 3 ) >> Floor( Log2( sGx2 ) ) ) : 0
vy = sGy2 > 0 ? Clip3( -mvRefineThres, mvRefineThres, ( ( sGydI << 3 ) -
(8-868)
( ( vx * sGxGym ) << 12 + vx * sGxGys ) >> 1 ) >> Floor( Log2( sGx2 ) ) ) : 0
x =xSb - 1..xSb + 2, y = ySb-1..ySb + 2에 대해, 현재 서브 블록의 예측 샘플 값들은 하기와 같이 유도된다:
bdofOffset = Round( ( vx * ( gradientHL1[ x + 1 ][ y + 1 ] - gradientHL0[ x + 1 ][ y + 1 ] ) ) >> 1 )
(8-869)
+ Round( ( vy * (gradientVL1[ x + 1 ][ y + 1 ] - gradientVL0[ x + 1 ][ y + 1 ] ) ) >> 1 )
[Ed. (JC): Round() 연산은 float 입력에 대해 정의된다. 여기서는 입력이 정수 값이기 때문에 Round() 연산이 반복되는 것처럼 보여진다. 제안자에 의해 확인되어야 한다]
pbSamples[ x ][ y ] = Clip3( 0, ( 2bitDepth ) - 1, ( predSamplesL0[ x + 1 ][ y + 1 ] + offset4 +
(8-870)
predSamplesL1[ x + 1 ][ y + 1 ] + bdofOffset ) >> shift4 )
iii.
일 예
8.5.7.4
양방향 광학 흐름 예측 프로세스
이 프로세스의 입력은 다음과 같다:
현재 코딩 블록의 너비 및 높이를 특정하는 두 변수 nCbW 및 nCbH,
두 개의 (nCbW + 2)x(nCbH + 2) 루마 예측 샘플 배열들 predSamplesL0 및 predSamplesL1,
예측 리스트 활용 플래그 predFlagL0 및 predFlagL1,
참조 인덱스 refIdxL0 및 refIdxL1,
xIdx = 0..( nCbW >> 2 ) - 1, yIdx = 0..( nCbH >> 2 ) - 1에 대한 양방향 광학 흐름 활용 플래그 bdofUtilizationFlag[ xIdx ][ yIdx ].
이 프로세스의 출력은 루마 예측 샘플 값들의 (nCbW)x(nCbH) 배열 pbSamples이다.
변수들 bitDepth, shift1, shift2, shift3, shift4, offset4, offset5, offset6, 및 mvRefineThres는 하기와 같이 유도된다:
변수 bitDepth는 BitDepthY와 동일하게 설정된다.
변수 shift1는 Max( 2, 14 - bitDepth )와 동일하게 설정된다.
변수 shift2는 Max( 8, bitDepth - 4 )와 동일하게 설정된다.
변수 shift3는 Max( 5, bitDepth - 7 )와 동일하게 설정된다.
변수 shift4는 Max( 3, 15 - bitDepth )와 동일하게 설정되고 변수 offset4는 1 << ( shift4 - 1 )와 동일하게 설정된다.
변수 mvRefineThres는 Max( 2, 1 << ( 13 - bitDepth ) )와 동일하게 설정된다.
변수 offset5는 (1 << (shift1 - 1))와 동일하게 설정된다.
변수 offset6는 (1 << (shift2 - 1))와 동일하게 설정된다.
xIdx = 0..( nCbW >> 2 ) - 1 및 yIdx = 0..( nCbH >> 2 ) - 1에 대해, 하기가 적용 된다:
변수 xSb 는( xIdx << 2) + 1 로 설정되고 ySb는 ( yIdx << 2 ) + 1로 설정된다.
bdofUtilizationFlag[ xSbIdx ][ yIdx ]이 FALSE이면, x = xSb - 1..xSb + 2, y = ySb - 1.. ySb + 2에 대해, 현재 서브블록의 예측 샘플 값들은 하기와 같이 유도된다:
pbSamples[ x ][ y ] = Clip3( 0, ( 2bitDepth ) - 1, ( predSamplesL0[ x + 1 ][ y + 1 ] + offset2 +
(8-852)
predSamplesL1[ x + 1 ][ y + 1 ] ) >> shift2 )
그렇지 않은 경우 (bdofUtilizationFlag[ xSbIdx ][ yIdx ]이 TRUE이면), 현재 서브블록의 예측 샘플 값들은 하기와 같이 유도된다:
x =xSb - 1..xSb + 4, y = ySb -1..ySb + 4에 대해, 하기 순서의 단계들이 적용된다:
10.
예측 샘플 배열들 내에 대응 샘플 위치들 (x, y)의 각각에 대한 위치 ( hx, vy ) 는 하기와 같이 유도된다:
hx = Clip3( 1, nCbW, x )
(8-853)
vy = Clip3( 1, nCbH, y )
(8-854)
11.
변수 gradientHL0[ x ][ y ], gradientVL0[ x ][ y ], gradientHL1[ x ][ y ] 및 gradientVL1[ x ][ y ] 는 하기와 같이 유도된다:
gradientHL0[ x ][ y ] = (predSamplesL0[ hx + 1 ][vy] - predSampleL0[ hx - 1 ][ vy ] + offset5 ) >> shift1
(8-855)
gradientVL0[ x ][ y ] = (predSampleL0[ hx ][ vy + 1 ] - predSampleL0[ hx ][vy - 1 ] + offset5 ) >> shift1
(8-856)
gradientHL1[ x ][ y ] = (predSamplesL1[ hx + 1 ][vy] - predSampleL1[ hx - 1 ][ vy ] + offset5 ) >> shift1
(8-857)
gradientVL1[ x ][ y ] = (predSampleL1[ hx ][ vy + 1 ] - predSampleL1[ hx ][vy - 1 ] + offset5 ) >> shift1
(8-858)
12.
변수 temp[ x ][ y ], tempH[ x ][ y ] 및 tempV[ x ][ y ]는 하기와 같이 유도된다:
tempH[ x ][ y ] = (gradientHL0[ x ][ y ] + gradientHL1[ x ][ y ] ) >> shift3
(8-860)
tempV[ x ][ y ] = (gradientVL0[ x ][ y ] + gradientVL1[ x ][ y ] ) >> shift3
(8-861)
변수들 sGx2, sGy2, sGxGy, sGxdI 및 sGydI은 하기와 같이 유도된다:
sGx2 = SiSj ( tempH[ xSb + i ][ ySb + j ] * tempH[ xSb + i ][ ySb + j ] ) 여기서 i, j = -1..4
(8-862)
sGy2 = SiSj(tempV[ xSb + i ][ ySb + j ] * tempV[ xSb + i ][ ySb + j ] ) 여기서 i, j = -1..4
(8-863)
sGxGy = SiSj(tempH[ xSb + i ][ ySb + j ] * tempV[ xSb + i ][ ySb + j ] ) 여기서 i, j -1..4
(8-864)
sGxdI = SiSj( - tempH[ xSb + i ][ ySb + j ] * diff[ xSb + i ][ ySb + j ] ) 여기서 i, j = -1..4
(8-865)
sGydI = SiSj( - tempV[ xSb + i ][ ySb + j ] * diff[ xSb + i ][ ySb + j ] ) 여기서 i, j = -1..4
(8-866)
현재 서브블록의 수평 및 수직 움직임 오프셋은 하기와 같이 유도된다:
vx = sGx2 > 0 ? Clip3( -mvRefineThres, mvRefineThres,
(8-867)
-( sGxdI << 3 ) >> Floor( Log2( sGx2 ) ) ) : 0
vy = sGy2 > 0 ? Clip3( -mvRefineThres, mvRefineThres, ( ( sGydI << 3 ) -
(8-868)
( ( vx * sGxGym ) << 12 + vx * sGxGys ) >> 1 ) >> Floor( Log2( sGx2 ) ) ) : 0
x =xSb - 1..xSb + 2, y = ySb -1..ySb + 2에 대해, 현재 서브블록의 예측 샘플 값들은 하기와 같이 유도된다:
bdofOffset = Round( ( vx * ( gradientHL1[ x + 1 ][ y + 1 ] - gradientHL0[ x + 1 ][ y + 1 ] ) ) >> 1 )
(8-869)
+ Round( ( vy * (gradientVL1[ x + 1 ][ y + 1 ] - gradientVL0[ x + 1 ][ y + 1 ] ) ) >> 1 )
[Ed. (JC): Round() 연산은 float 입력에 대해 정의된다. 여기서는 입력이 정수 값이기 때문에 Round() 연산이 반복되는 것처럼 보여진다. 제안자에 의해 확인되어야 한다]
pbSamples[ x ][ y ] = Clip3( 0, ( 2bitDepth ) - 1, ( predSamplesL0[ x + 1 ][ y + 1 ] + offset4 +
(8-870)
predSamplesL1[ x + 1 ][ y + 1 ] + bdofOffset ) >> shift4 )
도 8은 비디오 처리 장치(800)의 블록도이다. 장치(800)는 여기에 설명된 방법들 중 하나 이상을 구현하는데 사용될 수 있다. 장치(800)는 스마트폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(800)는 하나 이상의 프로세서(802), 하나 이상의 메모리(804) 및 비디오 프로세싱 하드웨어(806)를 포함할 수 있다. 프로세서(들)(802)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(804)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 프로세싱(처리) 하드웨어(806)는 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있다. 비디오 프로세싱 하드웨어(806)는 전용 하드웨어 또는 그래픽 프로세서 유닛(GPU) 또는 특수 신호 처리 블록의 형태로 프로세서(들)(802) 내에 부분적으로 또는 완전히 포함될 수 있다.
도 10은 비디오 프로세싱 방법 1000의 흐름도를 도시한다. 방법 1000은 제1 비디오 블록의 특성의 결정을 수행(1005)하는 단계를 포함하되, 특성은 제1 비디오 블록과 연관된 참조 블록들 간의 차이를 포함하고, 차이는 SATD(sum of absolute transformed differences), MRSATD(a mean removed sum of absolute transformed differences), SSE(a sum of squares error), MRSSE(a mean removed sum of squares error), 평균값 차이(a mean value differences, 혹은 그라디언트 값 중 하나 이상을 포함하며, 제1 비디오 블록의 특성에 기초하여 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 동작 상태를 활성화 혹은 비활성화 중 하나로 결정(1010)하는 단계, BIO 기술 혹은 DMVR 기술 중 하나 또는 둘 모두의 동작 상태와 일치하는 제1 비디오 블록의 추가 처리를 수행(1015)하는 단계를 포함한다.
도 11은 비디오 프로세싱 방법(1100)의 흐름도를 도시한다. 방법은 제1 변경된 참조 블록을 생성하기 위해 제1 참조 블록을 변경하고, 제2 변경된 참조 블록을 생성하기 위해 제2 참조 블록을 변경(1105)하는 단계를 포함하되, 여기서 제1 참조 블록 및 제2 참조 블록은 제1 비디오 블록과 연관되고, 제1 변경된 참조 블록과 제2 변경된 참조 블록 간의 차이를 결정(1110)하는 단계를 포함하되, 차이는 SATD(sum of absolute transformed differences), MRSATD(a mean removed sum of absolute transformed differences), SSE(a sum of squares error), MRSSE(a mean removed sum of squares error), 평균값 차이(a mean value differences, 혹은 그라디언트 값 중 하나 이상을 포함하며, 제1 변경된 참조 블록과 제2 변경된 참조 블록 간의 차이에 기초하여 제1 비디오 블록의 추가 처리를 수행(1115)하는 단계를 포함한다.
도 12는 비디오 프로세싱 방법(1200)의 흐름도를 도시한다. 방법 1200은 제1 비디오 블록에 연관되는 제1 참조 블록의 부분과 제2 참조 블록의 부분 간의 차이를 결정(1205)하는 단계를 포함하되, 차이는 SATD(sum of absolute transformed differences), MRSATD(a mean removed sum of absolute transformed differences), SSE(a sum of squares error), MRSSE(a mean removed sum of squares error), 평균값 차이(a mean value differences, 혹은 그라디언트 값 중 하나 이상을 포함하며, 차이에 기초하여 제1 비디오 블록의 추가 처리를 수행(1210)하는 단계를 포함한다.
도 13은 비디오 프로세싱 방법(1300)의 흐름도를 도시한다. 방법 1300은 시간적 그라디언트 혹은 변경된 시간적 그라디언트를 제1 비디오 블록과 연관된 참조 픽처들을 이용하여 결정(1305)하는 단계를 포함하되, 시간적 그라디언트 혹은 변경된 시간적 그라디언트는 참조 픽처들 간의 차이를 지시하고, 차이에 따라 BIO(bi-directional opcial flow) 코딩 도구를 이용하여 제1 비디오 블록의 추가 처리를 수행(1310)하는 단계를 포함한다.
도 14는 비디오 프로세싱 방법(1400)의 흐름도를 도시한다. 방법 1400은 제1 비디오 블록과 연관된 참조 픽처들을 이용하여 시간적 그라디언트를 결정(1405)하는 단계, 변경된 시간적 그라디언트를 생성하기 위해 시간적 그라디언트를 변경(1410)하는 단계 및 변경된 시간적 그라디언트를 이용하여 제1 비디오 블록의 추가 처리를 수행(1415)하는 단계를 포함한다.
도 15는 비디오 프로세싱 방법(1500)의 흐름도를 도시한다. 방법 1500은 제1 비디오 블록과 연관된 제1 인터 참조 블록 및 제2 인터 참조 블록 중 하나 혹은 둘 모두를 변경(1505)하는 단계, 제1 변경된 인터 참조 블록 혹은 제2 변경된 인터 참조 블록 중 하나 혹은 둘 모두를 이용하여 BIO(bi-directional optical flow) 코딩 도구에 따라 공간적 그라디언트를 결정(1510)하는 단계 및 공간적 그라디언트에 기초하여 제1 비디오 블록의 추가 처리를 수행(1515)하는 단계를 포함한다.
도 16은 비디오 프로세싱 방법(1600)의 흐름도를 도시한다. 방법 1600은 블록 레벨에서 시그널링되는 플래그가 제1 비디오 블록에 대해 DMVR(decoder-side motion vector refinement) 혹은 BIO(bi-directional optical flow) 중 하나 혹은 둘 모두가 활성화될 것을 지시한다는 결정을 수행(1605)하는 단계, 제1 비디오에 대한 추가 처리를 수행(1610)하는 단계를 포함하되, 처리는 플래그와 일치하는 DMVR 혹은 BIO 중 하나 혹은 둘 모두를 적용하는 것을 포함한다.
방법 1000, 1100, 1200, 1300, 1400, 1500, 및 1600을 참조하여, 양방향 광학 흐름(BIO) 또는 디코더 측 움직임 벡터 개선(DMVR)의 사용을 결정하는 일부 예가 섹션 4에 설명되어 있다. 예를 들어, 섹션 4에서 설명한 대로 참조 블록 간의 차이를 결정할 수 있으며 차이점을 사용하여 BIO 또는 DMVR을 활성화 또는 비활성화할 수 있다.
방법 1000, 1100, 1200, 1300, 1400, 1500 및 1600을 참조하면, 비디오 블록은 움직임 정보 예측과 관련된 비트스트림 생성 규칙을 이용하여 비트 효율이 달성될 수 있는 비디오 비트스트림으로 인코딩될 수 있다.
방법들은 BIO 기술 또는 DMVR 기술의 동작 상태가 블록 레벨과 서브 블록 레벨에 대해 상이한 것을 포함할 수 있다.
방법들은 하나 이상의 그라디언트 값들, 그라디언트 값들의 평균, 그라디언트 값들의 범위가 임계 범위 내에 있음을 결정하는 단계를 포함할 수 있으며, 동작 상태를 결정하는 단계는 그라디언트 값들, 그라디언트 값들의 평균, 혹은 그라디언트 값들의 범위가 임계 범위 내에 있다는 결정을 기반으로 한다.
방법들은 동작 상태를 결정하는 단계는 인코더에서 디코더로 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 타일 그룹 헤더 혹은 슬라이스 헤더에서 시그널링되는 정보에 더 기초함을 포함할 수 있다.
방법들은 SATD, MRSATD, SSE 혹은 MRSSE에 기초하는 제1 비디오 블록의 개선된 움직임 벡터를 결정하는 단계를 포함할 수 있고, 추가 처리를 수행하는 단계는 개선된 움직임 벡터에 기초한다.
방법들은 개선된 움직임 벡터를 결정하는 단계는 SATD 혹은 MRSATD에 기초함을 포함할 수 있고, 방법은 제1 비디오 블록의 각 서브 블록에 대해 SATD 혹은 MRSATD를 결정하는 단계; 각 서브 블록에 대해 SATD 혹은 MRSATD의 합산에 기초하여 제1 비디오 블록의 SATD 혹은 MRSATD를 생성하는 단계를 포함하되, 제1 비디오 블록의 추가 처리는 생성된 SATD 혹은 MRSATD에 기초한다.
방법들은 제1 비디오 블록의 두 개의 참조 블록들의 평균 값 차이는 임계 값보다 크다고 결정하는 단계를 포함할 수 있고, BIO 혹은 DMVR 중 하나 혹은 둘 모두는 두 개의 참조 블록들의 평균 값 차이에 기초하여 비활성화된 동작 상태에 있다.
방법들은 제1 비디오 블록의 서브 블록의 두 개의 참조 서브 블록들의 평균 값 차이는 임계 값보다 크다고 결정하는 단계를 포함할 수 있고, 여기서 BIO 혹은 DMVR 중 하나 혹은 둘 모두는 두 개의 참조 서브 블록들의 평균 값 차이에 기초하여 비활성화된 동작 상태에 있다.
방법들은 임계 값이 기 정의되는 것을 포함할 수 있다.
방법들은 제1 비디오 블록의 크기들을 결정하는 단계를 포함할 수 있고, 임계 값은 제1 비디오 블록의 크기에 기초할 수 있다.
방법들은 제1 참조 블록과 제2 참조 블록을 변경하는 단계는 제1 참조 블록에서 제1 참조 블록의 평균을 감산하는 단계를 포함하는 것을 포함할 수 있다.
방법들은 제1 참조 블록 및 제2 참조 블록의 부분이 짝수 행들을 포함하는 것을 포함할 수 있다.
방법들은 제1 참조 블록 및 제2 참조 블록의 부분이 모서리 샘플들을 포함하는 것을 포함할 수 있다.
방법들은 제1 참조 블록 및 제2 참조 블록의 부분이 대표적인 서브블록들을 포함하는 것을 포함할 수 있다.
방법들은 제1 참조 블록 혹은 제2 참조 블록에 대한 차이를 생성하기 위해 대표적인 서브블록들 간의 차이를 합산함을 포함할 수 있다.
방법들은 차이가 시간적 그라디언트의 절대 합에 연관됨을 포함할 수 있다.
방법들은 시간적 그라디언트를 변경하는 단계는 임계 값보다 큰 참조 블록들 간의 절대 평균 차이에 기초함을 포함할 수 있다.
방법들은 임계 값이 4임을 포함할 수 있다.
방법들은 시간적 그라디언트를 변경하는 단계가 임계 값보다 작은 참조 블록들 간의 절대 평균 차이에 기초함을 포함할 수 있다.
방법들은 임계 값이 20임을 포함할 수 있다.
방법들은 시간적 그라디언트를 변경하는 단계가 임계 범위 내인 참조 블록들 간의 절대 평균 차이에 기초함을 포함할 수 있다.
방법들은 BIO가 임계 값보다 큰 절대 평균 차이에 기초하는 비활성화된 동작 상태임을 포함할 수 있다.
방법들은 임계 값 혹은 임계 범위가 VPS, SPS, PPS, 픽처, 슬라이스, 혹은 타일 레벨에서 지시됨을 포함할 수 있다.
방법들은 임계 값 혹은 임계 범위가 서로 다른 코딩 유닛(CUs), 최대 코딩 유닛(LCUs), 슬라이스, 타일, 혹은 픽처 마다 다름을 포함할 수 있다.
방법들은 임계 값 혹은 임계 범위가 디코딩된 혹은 인코딩된 픽셀 값에 기초함을 포함할 수 있다.
방법들은 임계 값 혹은 임계 범위가 참조 픽처에 기초함을 포함할 수 있다.
방법들은 시간적 그라디언트를 결정하는 단계가 각 예측 방향에서 인트라 예측 블록 및 인터 예측 블록의 가중 평균을 결정하는 단계를 포함하는 것을 포함할 수 있다.
방법들은 플래그가 AMVP(advanced motion vector prediction) 모드에서 제공되되, 머지 모드에서, 플래그는 공간적 인접 블록들 혹은 시간적 인접 블록들 중 하나 혹은 둘 모두로부터 상속됨을 포함할 수 있다.
방법들은 플래그가 단일 예측된 블록에 대해 시그널링되지 않음을 포함할 수 있다.
방법들은 플래그가 디스플레이 순서에서 픽처에 대해 선행 혹은 후행 픽처들인 참조 픽처들을 갖는 양예측 블록들에 대해 시그널링되지 않는 것을 포함할 수 있다.
방법들은 플래그가 양 예측 블록들에 대해 시그널링되지 않는 것을 포함할 수 있다.
방법들은 플래그가 인트라 코딩된 블록들에 대해 시그널링되지 않는 것을 포함할 수 있다.
방법들은 플래그가 하이브리드 인트라 및 인터 예측 모드에 의해 코딩된 블록들에 대해서는 시그널링되지 않는 것을 포함할 수 있다.
방법들은 플래그가 제1 비디오 블록의 크기에 기초하여 시그널링 되는 것을 포함할 수 있다.
방법들은 플래그가 VPS, SPS 혹은 PPS에서 시그널링 되는 것을 포함할 수 있다.
방법들은 플래그가 제1 비디오 블록과 연관된 시간적 레이어에 기초하는 것을 포함할 수 있다.
방법들은 제1 비디오 블록과 연관된 픽처의 양자화 파라미터(quantization parameter, QP)에 기초하는 것을 포함할 수 있다.
도 17은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템 1700을 나타내는 블록도를 도시한다. 다양한 실시예들은 시스템 1700의 일부 혹은 모든 컴포넌트들을 포함할 수 있다. 시스템 1700은 비디오 컨텐츠를 수신하기 위해 입력 1702을 포함할 수 있다. 비디오 콘텐츠는 예를 들어, 8 또는 10 비트 다중 컴포넌트 픽셀 값들과 같은 raw 혹은 압축되지 않은 포맷으로 수신될 수 있고, 압축되거나 인코딩된 포맷일 수도 있다. 입력 1702는 네트워크 인터페이스, 주변 버스 인터페이스, 혹은 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스 예시들은 이더넷(ethernet), PON(passive optical network) 등과 같은 유선 인터페이스들을 포함하고, Wi-Fi 혹은 셀룰러 인터페이스들과 같은 무선 인터페이스들도 포함한다.
시스템 1700은 본 문서에 개시된 다양한 코딩 혹은 인코딩 방법들을 구현할 수 있는 코딩 컴포넌트 1704를 포함할 수 있다. 코딩 컴포넌트 1704는 비디오의 코딩된 표현을 생성하기 위해 입력 1702로부터 코딩 컴포넌트 1704의 출력으로의 비디오의 평균 비트율(bitrate)을 감소시킬 수 있다. 따라서 코딩 기술들은 종종 비디오 압축 혹은 비디오 트랜스코딩 기술들로 불리기도 한다. 코딩 컴포넌트 1704의 출력은 컴포넌트 1706에 의해 표현되는 바와 같이 저장되거나 연결된 통신을 통해 전송될 수 있다. 입력 1702에서 수신된 비디오의 저장된 혹은 통신된 비트스트림(혹은 코딩된) 표현은 컴포넌트 1708에 의해 디스플레이 인터페이스 1710로 송신되는 픽셀 값들 혹은 디스플레이 가능한 비디오를 생성하는 데 사용될 수 있다. 비트스트림 표현으로부터 사용자가 시청 가능한 비디오를 생성하는 프로세스는 비디오 종종 압축 해제로 불린다. 또한, 특정 비디오 프로세싱 동작들이 "코딩" 동작들 혹은 도구들로 불리지만, 코딩 도구 혹은 동작은 인코더에서 사용되고, 코딩 결과를 역전시키는 해당 디코딩 도구 혹은 동작은 디코더에 의해 수행될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예는 범용 직렬 버스(universal serial bus; USB), 고화질 멀티미디어 인터페이스(high definition multimedia interface; HDMI), 또는 Displayport 등을 포함할 수 있다. 저장 인터페이스의 예는 SATA(serial advanced technology attachment; 직렬 고급 결합 기술; 직렬 ATA), PCI, IDE 인터페이스 등을 포함할 수 있다. 이 명세서에 기재된 기법들은 모바일폰, 랩탑, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이가 가능한 다른 기기들 등의 여러 전자 기기들에 구현될 수 있다.
압축되는 코딩 유닛들이 전통적인 정사각형 블록 혹은 반 정사각형(half-square) 블록과 상당히 다른 형상을 가질 때, 압축 효율을 개선하기 위해 개시된 기술들이 비디오 인코더 혹은 디코더에서 구현될 수 있다는 것이 이해될 것이다. 예를 들어, 4x32 혹은 32x4 크기의 유닛들과 같은 가로가 길거나 세로가 긴 코딩 유닛들을 사용하는 새로운 코딩 도구들은 개시된 기술들로부터 장점을 취할 수 있다.
일부 실시예들에서, 비디오 프로세싱 방법은 하기와 같이 수행될 수 있다.
비디오 블록과 비디오 블록의 비트스트림 표현 간의 변환 동안 공간적 그라디언트 및 시간적 그라디언트를 계산하기 위한 필터링 방법을 사용하는 단계, 및
필터링을 이용하여 변환을 수행하는 단계로 수행될 수 있다.
여기서, 변환은 비디오 블록의 픽셀 값으로부터 비트스트림 표현을 생성하거나 비트스트림 표현으로부터 픽셀 값을 생성하는 과정을 포함한다.
일부 실시예들에서, 공간적 및 시간적 그라디언트들은 시프팅된 샘플 차이를 이용하여 계산된다.
일부 실시예들에서, 공간적 및 시간적 그라디언트들은 변경된 샘플들을 이용하여 계산된다.
이 방법의 추가적인 세부 사항들은 섹션 4에서 논의된 아이템 1에서 소개되었다.
도 18은 비디오 프로세싱 방법의 순서도의 예를 도시한다. 이 방법의 단계들은 본 문서의 섹션 4의 예시 2에서 논의되었다. 이 방법은 (단계 1805에서) 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함한다. 여기서, 현재 블록의 변환은 현재 블록에 대해 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 사용이 활성화되었는지 혹은 비활성화되었는지 여부를 결정하는 과정을 포함하고, BIO 기술 혹은 DMVR 기술의 사용의 결정은 현재 블록과 연관된 비용 기준에 기초한다.
도 19는 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법의 단계들은 본 문서의 섹션 4의 예시 3에서 논의되었다. 방법은 (단계 1950에서) 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 현재 블록의 변환은 DMVR(decoder-side motion vector refinement) 기술 사용이 현재 블록에 대해 활성화 혹은 비활성화 되었는지 여부를 결정하는 것을 포함하고, DMVR 기술은 현재 블록의 움직임 정보를 MRSAD(a mean removed sum of absolute differences) 비용 기준 이외의 비용 기준에 기초하여 개선하는 것을 포함한다.
도 20은 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법의 단계들은 본 문서의 섹션 4의 예시 4에서 논의되었다. 이 방법은 (단계 2005에서) 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 현재 블록의 변환은 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 사용이 활성화 혹은 비활성화 되었는지 여부를 결정하는 것을 포함하고, BIO 기술 혹은 DVMR 기술의 사용을 결정하는 것은 현재 블록과 연관된 참조 블록의 한 쌍의 평균 값의 차이가 임계 값을 초과한다는 계산에 기초한다.
도 21은 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법에서 단계들은 본 문서의 섹션 4의 예시 6에서 논의되었다. 방법은 (단계 2105에서) 제1 변경된 참조 블록을 생성하기 위해 제1 참조 블록을 변경하고, 제2 변경된 참조 블록을 생성하기 위해 제2 참조 블록을 변경하는 단계를 포함하되, 제1 참조 블록 및 제2 참조 블록 모두 시각 매체 데이터의 현재 블록에 연관된다. 이 방법은 (단계 2110에서) 제1 변경된 참조 블록과 제2 변경된 참조 블록 간의 차이를 결정하는 단계를 포함하되, 차이는 SATD(sum of absolute transformed differences), MRSATD(a mean removed sum of absolute transformed differences), SSE(a sum of squares error), MRSSE(a mean removed sum of squares error), 평균값 차이(a mean value differences), 혹은 그라디언트 값 중 하나 이상을 포함한다. 이 방법은 (단계 2115에서) 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 변환은 제1 참조 블록과 제2 참조 블록을 각각 변환하여 생성된 제1 변경된 참조 블록과 제2 변경된 참조 블록 간의 차이의 사용을 포함한다.
도 22는 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법에서 단계들은 본 문서의 섹션 4의 예시 7에서 논의되었다. 이 방법은 (단계 2205에서) 시각 매체 데이터의 현재 블록과 연관된 참조 픽처들을 이용하여 시간적 그라디언트 혹은 변경된 시간적 그라디언트를 결정하는 단계를 포함하되, 시간적 그라디언트 혹은 변경된 시간적 그라디언트는 참조 픽처들의 차이를 지시한다. 이 방법은 (단계 2210에서) 시각 매체 데이터의 현재 블록 및 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 변환은 시간적 그라디언트 혹은 변경된 시간적 그라디언트에 부분적으로 기초하는 BIO(bi-directional optical flow) 기술의 사용을 포함한다.
도 23은 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법에서 단계들은 본 문서의 섹션 4의 예시 8에서 논의되었다. 이 방법은 (단계 2305에서) 제1 비디오 블록 혹은 그의 서브 블록과 연관된 참조 픽처들을 이용하여 제1 시간적 그라디언트를 결정하는 단계를 포함한다. 이 방법은 (단계 2310에서) 제2 비디오 블록 혹은 그의 서브 블록과 연관된 참조 픽처들을 이용하여 제2 시간적 그라디언트를 결정하는 단계를 포함한다. 이 방법은 (단계 2315에서) 변경된 제1 시간적 그라디언트와 변경된 제2 시간적 그라디언트를 생성하기 위해 제1 시간적 그라디언트의 변경과 제2 시간적 그라디언트의 변경을 수행하는 단계를 포함하되, 제1 비디오 블록과 연관된 제1 시간적 그라디언트의 변경은 제2 비디오 블록과 연관된 제2 시간적 그라디언트의 변경과 상이하다. 이 방법은 (단계 2320에서) 제1 비디오 블록과 제2 비디오 블록을 대응 코딩 표현으로의 변환을 수행하는 단계를 포함한다.
도 24는 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법에서 단계들은 본 문서의 섹션 4의 예시 9에서 논의되었다. 이 방법은 (단계 2405에서) 현재 블록과 연관된 제1 인터 참조 블록 및 제2 인터 참조 블록 중 하나 혹은 둘 모두를 변경하는 단계를 포함한다. 이 방법은 (단계 2410에서) 변경된 제1 인터 참조 블록 및/혹은 변경된 제2 인터 참조 블록 중 하나 혹은 둘 모두의 이용에 기초하여 BIO(bi-directional optical flow) 기술을 적용함에 따른 현재 블록과 연관된 공간적 그라디언트를 결정하는 단계를 포함한다. 이 방법은 (단계 2415에서) 현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 변환은 현재 블록과 연관된 공간적 그라디언트의 사용을 포함한다.
도 25는 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법에서 단계들은 본 문서의 섹션 4의 예시 10에서 논의되었다. 이 방법은 (단계 2505에서) 프로세서에 의해 블록 레벨에서 시그널링되는 플래그가, 적어도 부분적으로DMVR(decoder-side motion vector refinement) 기술 혹은 BIO(bidirectional optical flow) 기술 중 하나 혹은 둘 모두가 현재 블록에 대해 활성화 되어야함을 지시한다는 결정을 수행하는 단계를 포함한다. 이 방법은 (단계 2510에서) 현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 코딩 표현은 DMVR 기술 및/혹은 BIO 기술 중 하나 혹은 둘 모두가 활성화되는지 여부를 지시하는 플래그를 포함한다.
도 26은 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법에서 단계들은 본 문서의 섹션 4의 예시 11에서 논의되었다. 이 방법은 (단계 2605에서) 프로세서에 의해 DMVR(decoder-side motion vector refinement) 기술이 현재 블록에 대해 활성화된다는 결정을 수행하는 단계를 포함하되, 결정은 현재 블록의 높이에만 배타적으로 기초한다. 이 방법은 (단계 2610에서) 현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계를 포함한다.
도 27은 비디오 프로세싱 방법의 흐름도의 예를 도시한다. 이 방법에서 단계들은 본 문서의 섹션 4의 예시 12에서 논의되었다. 이 방법은 (단계 2705에서) 시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되, 변환은 DMVR(decoder-side motion vector refinement) 기술 혹은 BIO(bi-directional optical flow) 기술 중 하나 혹은 둘 모두와 연관된 규칙들의 현재 블록에 대한 사용을 포함하고, DMVR 기술과 연관된 규칙들은 BIO 기술에 대해 적용되는 것과 동일하고, 현재 블록에 대한 BIO 기술 혹은 DMVR 기술 중 하나 혹은 둘 모두의 이용이 활성화 혹은 비활성화 되는지 여부의 결정은 규칙들의 적용에 기초한다.
본 기술의 일부 실시예는 절 기반(clause-based) 형식으로 논의된다.
1.
시각 매체 프로세싱 방법에 있어서,
시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되,
현재 블록의 변환은 현재 블록에 대해 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 사용이 활성화되는지 혹은 비활성화되는지 여부를 결정하는 과정을 포함하고,
BIO 기술 혹은 DMVR 기술의 사용 결정은 현재 블록과 연관된 비용 기준에 기초한다.
2.
1절의 방법에 있어서, 비용 기준은 SATD(a sum of absolute transformed differences), MRSATD(a mean removed sum of absolute transformed differences), SSE(a sum of squares error), MRSSE(a mean removed sum of squares error), 평균 값 차이(mean value difference), 혹은 그라디언트 값들 중 하나 이상에 기초한다.
3.
1-2절 중 하나 이상의 방법에 있어서, 비용 기준은 현재 블록의 서브 블록과 연관된다.
4.
3절의 방법에 있어서, 서브 블록 레벨 비용 기준은 블록 레벨 비용 기준과 상이하다.
5.
1-4절 중 하나 이상의 방법에 있어서,
하나 이상의 그라디언트 값들, 그라디언트 값들의 평균, 혹은 그라디언트 값들의 범위가 임계 범위 외라는 결정 하에, BIO 기술 및/혹은 DMVR 기술의 적용을 비활성화하는 단계를 더 포함한다.
6.
1절의 방법에 있어서, 현재 블록과 연관되는 비용 기준은 코딩된 표현에서 시그널링된다.
7.
6절의 방법에 있어서, 비용 기준은 비디오 파라미터 세트(video parameter set: VPS), 시퀀스 파라미터 세트(sequence parameter set: SPS), 픽처 파라미터 세트(picture parameter set: PPS), 타일 그룹 헤더 혹은 슬라이스 헤더에서 시그널링된다.
8.
시각 매체 프로세싱 방법에 있어서,
시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되,
현재 블록의 변환은 현재 블록에 대한 DMVR(decoder-side motion vector refinement) 기술의 사용이 활성화되는지 혹은 비활성화되는지 여부를 결정하는 과정을 포함하고,
DMVR 기술은 MRSAD(a mean removed sum of absolute differences) 비용 기준 외의 비용 기준에 기초하여 현재 블록의 움직임 정보를 개선하는 과정을 포함한다.
9.
8절의 방법에 있어서, 현재 블록에 연관된 비용 기준은 SATD(sum of absolute transformed differences), MRSATD(mean removed sum of absolute transformed differences), SSE(sum of squares error), 혹은 MRSSE(mean removed sum of squares error) 중 하나 이상에 기초한다.
10.
8-9절 중 하나 이상의 방법에 있어서, 비용 기준은 현재 블록의 서브 블록에 연관된다.
11.
10절의 방법에 있어서,
현재 블록을 크기 MxN의 다중 서브 블록들로 분할하는 단계, 여기서 비용 기준은 다중 서브 블록들의 각각에 연관되는 움직임 정보에 기초하고,
다중 서브 블록들의 각각에 대응되는 비용을 생성하는 단계를 더 포함한다.
12.
11절의 방법에 있어서,
현재 블록과 연관된 결과 비용을 생성하기 위해 적어도 다중 서브 블록들의 각각에 대응되는 비용의 서브세트(subset)를 합산하는 단계를 더 포함한다.
13.
시각 매체 프로세싱 방법에 있어서,
시각 매체 데이터의 현재 블록 및 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계를 포함하되,
현재 블록의 변환은 현재 블록에 대해 BIO(bi-directional optical flow) 기술 혹은 DMVR(decoder-side motion vector refinement) 기술 중 하나 혹은 둘 모두의 사용이 활성화되는지 혹은 비활성화되는지 여부를 결정하는 과정을 포함하고,
BIO 기술 혹은 DMVR 기술의 사용의 결정은 현재 블록과 연관된 한 쌍의 참조 블록들의 평균 값 차이가 임계 값을 초과한다는 계산에 기초한다.
14.
13절의 방법에 있어서, 임계 값은 제1 임계 값이고,
현재 블록의 서브블록과 연관된 한 쌍의 참조 서브블록의 평균값 차이가 제2 임계값을 초과한다는 결정 하에, BIO 기술 및/또는 DMVR 기술의 적용을 비활성화하는 단계를 더 포함한다.
15.
14절의 방법에 있어서, 제1 임계 값 및/혹은 제2 임계 값은 기 정의된 숫자이다.
16.
14절의 방법에 있어서, 제1 임계 값 및/혹은 제2 임계 값은 현재 블록의 크기에 기초한다.
17.
시각 매체 프로세싱 방법에 있어서,
제1 변경된 참조 블록을 생성하기 위해 제1 참조 블록을 변경하고 제2 변경된 참조 블록을 생성하기 위해 제2 참조 블록을 변경하는 단계, 여기서 제1 참조 블록 및 제2 참조 블록 모두 시각 매체 데이터의 현재 블록에 연관되고,
제1 변경된 참조 블록과 제2 변경된 참조 블록 간의 차이를 결정하는 단계, 여기서 차이는 SATD(sum of absolute transformed differences), MRSATD(a mean removed sum of absolute transformed differences), SSE(a sum of squares error), MRSSE(a mean removed sum of squares error), 평균값 차이(a mean value differences), 혹은 그라디언트 값 중 하나 이상을 포함하고,
시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계, 여기서 변환은 제1 참조 블록과 제2 참조 블록을 각각 변경함으로서 생성된 제1 변경된 참조 블록 및 제2 변경된 참조 블록 간의 차이의 사용을 포함한다.
18.
17절의 방법에 있어서, 제1 참조 블록 및 제2 참조 블록을 변경하는 단계는,
제1 참조 블록에 포함된 샘플 값들에 기초한 제1 산술 평균 및 제2 참조 블록에 포함된 샘플 값들에 기초한 제2 산술 평균을 계산하는 단계;
제1 참조 블록에 포함된 샘플들로부터 제1 산술 평균을 감산하고, 제2 참조 블록에 포함된 샘플들로부터 제2 산술 평균을 감산하는 단계;를 포함한다.
19.
18절의 방법에 있어서, 제1 산술 평균 및 제2 산술 평균은 제1 참조 블록 및 제2 참조 블록에 각각 포함된 샘플들의 서브 세트(subset)에 기초한다.
20.
17-19절 중 하나 이상의 방법에 있어서, 제1 참조 블록 및/혹은 제2 참조 블록은 현재 블록과 연관된 서브 블록들이다.
21.
시각 매체 프로세싱 방법에 있어서,
시각 매체 데이터의 현재 블록과 연관된 참조 픽처들을 이용하여 시간적 그라디언트 혹은 변경된 시간적 그라디언트를 결정하는 단계, 여기서 시간적 그라디언트 혹은 변경된 시간적 그라디언트는 참조 픽처들 간의 차이들을 지시하고,
시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계, 여기서 변환은 시간적 그라디언트 혹은 변경된 시간적 그라디언트에 적어도 부분적으로 기초하여 BIO(bi-directional optical flow) 기술의 사용을 포함한다.
22.
21절의 방법에 있어서,
시간적 그라디언트 혹은 변경된 시간적 그라디언트가 임계값 이하라고 결정되면 BIO 기술을 조기에 종료하는 단계를 더 포함한다.
23.
22절의 방법에 있어서,
시간적 그라디언트 혹은 변경된 그라디언트의 절대 합을 계산하는 데 사용된 샘플들의 수에 기초하여 임계값을 조정하는 단계를 더 포함한다.
24.
21-23절 중 하나 이상의 방법에 있어서, 차이는 시간적 그라디언트의 절대 합에 연관된다.
25.
21-24절 중 하나 이상의 방법에 있어서, 참조 픽처들 간의 차이는 제1 참조 픽처의 제1 부분 및 제2 참조 픽처의 제2 부분 간의 차이에 대응된다.
26.
21-25 절 중 하나 이상의 방법에 있어서, 참조 픽처들은 현재 블록의 서브 블록에 연관된다.
27.
시각 매체 프로세싱 방법에 있어서,
제1 비디오 블록 혹은 그의 서브 블록과 연관된 참조 픽처들을 이용하여 제1 시간적 그라디언트를 결정하는 단계,
제2 비디오 블록 혹은 그의 서브 블록과 연관된 참조 픽처들을 이용하여 제2 시간적 그라디언트를 결정하는 단계,
변경된 제1 시간적 그라디언트와 변경된 제2 시간적 그라디언트를 생성하기 위해 제1 시간적 그라디언트의 변경과 제2 시간적 그라디언트의 변경을 수행하는 단계, 여기서 제1 비디오 블록과 연관된 제1 시간적 그라디언트의 변경은 제2 비디오 블록과 연관된 제2 시간적 그라디언트의 변경과 상이하고,
제1 비디오 블록과 제2 비디오 블록을 대응 코딩 표현으로의 변환을 수행하는 단계를 포함한다.
28.
27절의 방법에 있어서, 제1 시간적 그라디언트의 변경 및/혹은 제2 시간적 그라디언트의 변경은 임계 값보다 큰 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들 간의 절대 평균 차이에 조건부로 기초한다.
29.
28절의 방법에 있어서, 임계 값은 4이다.
30.
27절의 방법에 있어서, 제1 시간적 그라디언트의 변경 및/혹은 제2 시간적 그라디언트의 변경은 임계 값보다 작은 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들 간의 절대 평균 차이에 조건부로 기초한다.
31.
30절의 방법에 있어서, 임계 값은 20이다.
32.
27절의 방법에 있어서, 제1 시간적 그라디언트의 변경 및/혹은 제2 시간적 그라디언트의 변경은 임계 범위 내인 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들 간의 절대 평균 차이에 조건부로 기초한다.
33.
27-32절 중 어느 한 방법에 있어서,
임계 값보다 큰 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들 간의 절대 평균 차이에 기초하여 제1 비디오 블록 및/혹은 제2 블록에 대한 BIO(bi-directional optical flow) 기술의 사용을 비활성화하는 단계를 포함한다.
34.
27-33절 중 하나 이상의 방법에 있어서, 임계 값 혹은 임계 범위는 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 VPS, SPS, PPS, 픽처, 슬라이스, 혹은 타일 레벨에서 지시된다.
35.
27-33절 중 하나 이상의 방법에 있어서, 임계 값 혹은 임계 범위는 암시적으로 기 정의된 파라미터들이다.
36.
27-33절 중 하나 이상의 방법에 있어서, 임계 값 혹은 임계 범위는 제1 비디오 블록 및/혹은 제2 비디오 블록에 연관된 서로 다른 코딩 유닛(CUs), 최대 코딩 유닛(LCUs), 슬라이스, 타일, 혹은 픽처들 마다 상이하다.
37.
27-33절 중 하나 이상의 방법에 있어서, 임계 값 혹은 임계 범위는 제1 비디오 블록 및/혹은 제2 비디오 블록에 연관된 디코딩된 혹은 인코딩된 픽셀 값에 기초한다.
38.
27-33절 중 하나 이상의 방법에 있어서, 참조 픽처들의 제1 세트에 대한 임계 값 혹은 임계 범위는 참조 픽처들의 제2 세트에 대한 임계 값 혹은 임계 범위와 상이하다.
39. 27절의 방법에 있어서, 제1 시간적 그라디언트의 변경 및/혹은 제2 시간적 그라디언트의 변경은 임계 값보다 큰 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들 간의 절대 평균에 조건부로 기초한다.
40.
39절의 방법에 있어서, 임계 값은 40이다.
41.
27절의 방법에 있어서, 제1 시간적 그라디언트의 변경 및/혹은 제2 시간적 그라디언트의 변경은 임계값보다 작은 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들의 절대 평균에 조건적으로 기초한다.
42.
41절의 방법에 있어서, 임계 값은 100이다.
43.
27절의 방법에 있어서, 제1 시간적 그라디언트의 변경 및/혹은 제2 시간적 그라디언트의 변경은 임계 범위 내인 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들의 절대 평균에 조건적으로 기초한다.
44.
27절의 방법에 있어서, 제1 시간적 그라디언트의 변경 및/혹은 제2 시간적 그라디언트의 변경은 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들의 절대 평균 차이에 곱셈 인자를 곱한 값보다 큰 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들의 절대 평균에 조건적으로 기초한다.
45.
27절의 방법에 있어서, 제1 시간적 그라디언트의 변경 및/혹은 제2 시간적 그라디언트의 변경은 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들의 절대 평균 차이에 곱셈 인자를 곱한 값보다 작은 제1 비디오 블록 및/혹은 제2 비디오 블록과 연관된 참조 픽처들의 절대 평균에 조건적으로 기초한다.
46.
44-45 절 중 하나 이상의 방법에 있어서, 곱셈 인자는 4.5이다.
47. 시각 매체 처리 방법에 있어서,
현재 블록과 연관된 제1 인터 참조 블록 및 제2 인터 참조 블록 중 하나 혹은 둘 모두를 변경하는 단계;
변경된 제1 인터 참조 블록 및/혹은 변경된 제2 인터 참조 블록 중 하나 혹은 둘 모두를 사용하는 것에 기초하여, BIO(bi-directional optical) 흐름 기술을 적용함에 따라 현재 블록과 연관된 공간적 그라디언트를 결정하는 단계; 및
현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계;를 포함하되 여기서 변환은 현재 블록과 연관된 공간적 그라디언트의 사용을 포함한다.
48.
47절의 방법에 있어서, 공간적 그라디언트를 결정하는 단계는,
현재 블록과 연관된 인트라 예측 블록 및 인터 예측 블록의 가중 평균에 기초하여 두 개의 예측 블록들을 생성하는 단계; 및
현재 블록과 연관된 공간적 그라디언트의 결정을 위해 두 개의 예측 블록들을 사용하는 단계;를 포함한다.
49.
48절의 방법에 있어서,
BIO 기술을 이용하여 두 개의 예측 블록들로부터 개선된 예측 블록을 생성하는 단계;
현재 블록의 서브 블록들 및/혹은 샘플들을 예측하기 위해 개선된 예측 블록을 사용하는 단계;를 포함한다.
50.
시각 매체 프로세싱 방법에 있어서,
프로세서에 의해 블록 레벨에서 시그널링되는 플래그가 적어도 부분적으로 DMVR(decoder-side motion vector refinement) 기술 혹은 BIO(bi-directional optical flow) 기술 중 하나 혹은 둘 모두가 현재 블록에 대해 활성화되어야함을 지시한다는 결정을 수행하는 단계; 및
현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계;를 포함하되, 여기서 코딩 표현은 DMVR 기술 및/혹은 BIO 기술 중 하나 혹은 둘 모두가 활성화되는지 여부를 지시하는 플래그를 포함한다.
51.
50절의 방법에 있어서, 현재 블록에 대해 AMVP(advanced motion vector prediction) 기술이 활성화됨이 검출되면 플래그가 코딩 표현에서 시그널링된다.
52.
50절의 방법에 있어서, 현재 블록에 대해 머지 모드(merge mode)가 활성화됨이 검출되면 플래그는 현재 블록과 연관된 공간적 인접 블록 혹은 시간적 인접 블록 중 하나 혹은 둘 모두로부터 유도된다.
53.
52절의 방법에 있어서, 선택된 머지 후보가 공간적 머지 후보이면 플래그는 선택된 머지 후보로부터 상속된다.
54.
52절의 방법에 있어서, 선택된 머지 후보가 시간적 머지 후보이면 플래그는 선택된 머지 후보로부터 상속된다.
55.
50절의 방법에 있어서, 현재 블록과 연관된 비용 기준은 DMVR 기술 및/혹은 BIO 기술이 활성화되는지 여부를 결정하는 데 사용되고, 코딩 표현에서 시그널링된 플래그는 이러한 결정이 올바른지 아닌지 여부를 지시하는 데 사용된다.
56.
55절의 방법에 있어서, 현재 블록과 연관된 비용 기준은 현재 블록의 두 개의 참조 블록들 간의 절대 차 합(sum of absolute differences: SAD)이고, DMVR 기술 및/혹은 BIO 기술 중 하나 혹은 둘 모두가 활성화되었다는 결정은 비용 기준이 임계값보다 클 때 적용된다.
57.
50절의 방법에 있어서,
현재 블록이 단일 예측된 블록이라는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
58.
50절의 방법에 있어서,
현재 블록이 디스플레이 순서에서 한 쌍의 선행 혹은 후행 참조 픽처들과 연관된 양 예측 블록이라는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
59.
50절의 방법에 있어서,
현재 블록이 현재 블록과 연관된 현재 픽처로부터 상이한 POC(picture order count) 거리를 갖는 한 쌍의 참조 픽처들과 연관된 양 예측 블록이라는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
60.
50절의 방법에 있어서,
현재 블록이 인트라 코딩된 블록이라는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
61.
50절의 방법에 있어서,
현재 블록이 하이브리드 인트라 및 인터 예측된 블록이라는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
62.
50절의 방법에 있어서,
현재 블록이 참조 블록과 동일한 픽처의 적어도 하나의 블록과 연관되어 있다는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
63.
50절의 방법에 있어서,
현재 블록의 크기가 임계 값보다 작다는 결정 하에 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
64.
50절의 방법에 있어서,
현재 블록의 크기가 임계 값 이상이라는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
65.
50절의 방법에 있어서,
현재 블록과 연관된 움직임 정보의 정밀도가 정수 정밀도라는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
66.
50절의 방법에 있어서,
현재 블록을 포함하는 픽처와 연관된 시간적 레이어가 임계 값을 초과한다는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
67.
50절의 방법에 있어서,
현재 블록과 연관된 양자화 파라미터(quantization parameter)가 임계값을 초과한다는 결정 하에, 코딩 표현에서 플래그의 시그널링을 생략하는 단계;를 포함한다.
68.
50절 내지 67절 중 하나 이상의 방법에 있어서,
코딩 표현에서 플래그의 시그널링이 생략되는 것으로 결정되면, 플래그의 값을 불리언 참(Boolean true) 혹은 거짓(false)로 유도한느 단계;를 포함한다.
69.
50-67절 중 하나 이상의 방법에 있어서,
플래그가 불리언 참(Boolean true)라는 결정 하에, DMVR 기술 혹은 BIO 기술 중 하나 혹은 둘 모두를 활성화하는 단계를 포함한다.
70.
50-67절 중 하나 이상의 방법에 있어서,
플래그가 불리언 거짓(Boolean false)라는 결정 하에, DMVR 기술 혹은 BIO 기술 중 하나 혹은 둘 모두를 비활성화하는 단계;를 포함한다.
71.
50-67절 중 하나 이상의 방법에 있어서,
플래그가 불리언 참(Boolean true)라는 결정 하에, 적어도 하나의 비용 기준에 기초하여 DMVR 기술 혹은 BIO 기술 중 하나 혹은 둘 모두를 활성화하는 비활성화 하는 결정이 올바르다고 결정된다.
72.
50-67절 중 하나 이상의 방법에 있어서,
플래그가 불리언 거짓(Boolean false)라는 결정 하에, 적어도 하나의 비용 기준에 기초하여 DMVR 기술 혹은 BIO 기술 중 하나 혹은 둘 모두를 활성화 혹은 비활성화하는 결정이 부정확한것으로 결정된다.
73.
50-67절 중 하나 이상의 방법에 있어서, 플래그는 슬라이스 헤더, 타일 헤더, VPS(video parameter set), SPS(sequence parameter set), 혹은 PPS(picture parameter set)에서 시그널링된다.
74.
50절의 방법에 있어서, 제1 플래그는 DMVR 기술이 비활성화되는지 혹은 아닌지 여부를 지시하기 위해 시그널링되고, 제2 플래그는 BIO 기술이 비활성화되는지 혹은 아닌지 여부를 지시하기위해 시그널링된다.
75.
64-74 절 중 하나 이상의 방법에 있어서,
DMVR 기술을 위한 플래그가 불리언 참(Boolean true)라는 결정 하에, DMVR 기술을 슬라이스, 타일, 비디오, 시퀀스 혹은 픽처에 대해 비활성화하는 단계를 더 포함한다.
76.
64- 74절 중 하나 이상의 방법에 있어서,
DMVR 기술에 대한 플래그가 불리언 거짓(Boolean false)이라는 결정 하에, 슬라이스, 타일, 비디오, 시퀀스 혹은 픽처에 대한 DMVR 기술이 활성화되는 단계를 포함한다.
77.
64절 내지 74절 중 하나 이상의 방법에 있어서,
BIO 기술을 위한 플래그가 불리언 참(Boolean true)이라는 결정 하에, 슬라이스, 타일, 비디오, 시퀀스 혹은 픽처에 대한 BIO 기술을 비활성화하는 단계를 포함한다.
78.
64절 내지 74절 중 하나 이상의 방법에 있어서,
BIO 기술을 위한 플래그가 불리언 거짓(Boolean false)이라는 결정 하에, 슬라이스, 타일, 비디오, 시퀀스 혹은 픽처에 대한 BIO 기술을 활성화하는 단계를 포함한다.
79. 시각 매체 프로세싱 방법에 있어서,
프로세서에 의해 DMVR(decoder-side motion vector refinement) 기술이 현재 블록에 대해 활성화되어야 한다는 결정을 수행하는 단계, 여기서 결정은 현재 블록의 높이에만 전적으로 기초하고;
현재 블록과 대응 코딩 표현 간의 변환을 수행하는 단계를 포함한다.
80.
79절의 방법에 있어서,
상기 DMVR 기술이 활성화되었다고 결정되면, 상기 현재 블록의 상기 높이가 임계 파라미터보다 큰지 검증하는 단계를 더 포함한다.
81.
80 절의 방법에 있어서, 상기 임계 파라미터는 4와 동일하다.
82. 80 절의 방법에 있어서, 상기 임계 파라미터는 8과 동일하다.
83.
시각 매체 프로세싱 방법에 있어서,
시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계, 여기서 상기 변환은 상기 현재 블록에 DMVR(decoder-side motion vector refinement) 기술 혹은 BIO(bi-directional optical flow) 기술 중 하나 혹은 둘 모두와 관련된 규칙들의 사용을 포함하되, 상기 DMVR 기술과 관련된 상기 규칙들은 상기 BIO 기술에 적용되는 것과 동일하고;
상기 BIO 기술 및/혹은 상기 DMVR 기술 중 하나 혹은 모두의 사용이 상기 현재 블록에 대해 활성화되는지 혹은 비활성화되는지 여부를 결정하는 단계는 상기 규칙들의 적용에 기초한다.
84.
83절의 방법에 있어서, 상기 DMVR 기술이 활성화 되는지 여부를 결정하는 규칙은 상기 BIO 기술이 활성화 되는지 여부를 결정하는 규칙과 동일하다.
85.
84절의 방법에 있어서, 상기 BIO 기술 및/혹은 DMVR 기술이 활성화되는지 여부를 결정하는 상기 규칙은 상기 현재 블록의 높이가 임계 값 이상임을 확인하는 것을 특정한다.
86.
84절의 방법에 있어서, 상기 BIO 기술 및/혹은 DMVR 기술이 활성화 되는지 여부를 결정하는 상기 규칙은 상기 현재 블록의 너비 및 높이 모두가 임계 값 이상임을 확인하는 것을 특정한다.
87.
85절 혹은 86절 중 하나 이상의 방법에 있어서, 임계 값은 4혹은 8이다.
88.
84절의 방법에 있어서, 상기 BIO 기술 및/혹은 상기 DMVR 기술이 활성화되는지 여부를 결정하는 상기 규칙은 상기 현재 블록의 크기가 임계값 이상임을 확인하는 것을 특정한다.
89. 86절의 방법에 있어서, 상기 임계값은 64 혹은 128이다.
90.
84절의 방법에 있어서, 상기 BIO 기술 및/혹은 DMVR 기술이 활성화 되는지 여부를 결정하는 상기 규칙은 상기 현재 블록이 BCW(Bi-prediction with CU-level Weight)모드 에서 코딩되지 않음을 확인하는 것을 특정하고, 상이한 가중치들은 두 개의 참조 리스트들로부터 두 개의 참조 블록들에 대해 사용된다.
91.
84절의 방법에 있어서, 상기 BIO 기술 및/혹은 DMVR 기술이 활성화 되는지 여부를 결정하는 상기 규칙은 상기 현재 블록이 상기 현재 블록과 연관된 현재 픽처로부터 동일한 픽처 순서 카운트(picture order count: POC)를 갖는 한 쌍의 참조 픽처들과 연관된 양 예측된 블록임을 확인하는 것을 특정한다.
92.
91절의 방법에 있어서, 상기 한 쌍의 참조 픽처들은 디스플레이 순서에서 현재 블록에 연관된 현재 픽처의 선행 픽처 및 후행 픽처를 포함한다.
93.
1절 내지 92절 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
94.
1절 내지 92절 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
95.
컴퓨터 코드가 저장된 컴퓨터 프로그램 제품으로서, 코드는 프로세서에 의해 실행될 때 프로세서로 하여금 1항 내지 92항 중 어느 하나에 열거된 방법을 구현하게 하는 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품.
96. 본 문서에 개시된 방법, 장치 혹은 시스템.
본 명세서에서 설명되는, 개시된 솔루션, 예, 실시형태, 모듈 및 기능적 동작 및 그 이외의 솔루션, 예, 실시형태, 모듈 및 기능적 동작은, 디지털 전자 회로로, 또는 본 명세서에서 개시되는 구조체 및 그들의 구조적 균등물을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나의 이상의 조합으로 구현될 수 있다. 개시된 실시형태 및 그 외의 실시형태들은, 하나 이상의 컴퓨터 프로그램 제품으로서, 예를 들어 데이터 처리 장치에 의해 실행되거나 그 동작을 제어하기 위한, 컴퓨터-판독가능 매체 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터-판독가능 매체는 머신-판독가능 저장 디바이스, 머신-판독가능 저장 기재, 메모리 디바이스, 머신-판독가능한 전파된 신호에 영향을 주는 물질의 조합, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리(프로세싱) 장치"는, 예를 들어 프로그래밍가능한 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 처리하기 위한 모든 장치, 디바이스, 및 머신을 망라한다. 이러한 장치는 하드웨어에 추가하여, 관심 대상인 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 적절한 수신기 장치로 송신되기 위한 정보를 인코딩하기 위하여 생성되는, 머신에 의해 생성된 전기적, 광학적, 또는 전자기적 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려져 있음)은 컴파일되거나 해석된 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 이것은 독립형 프로그램과 같은 또는 컴퓨팅 환경에서 사용되기에 적합한 모듈, 성분, 서브루틴, 또는 다른 유닛과 같은 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 반드시 파일 시스템 내의 파일에 대응하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트) 내에, 문제가 되는 프로그램 전용의 단일 파일 내에, 또는 여러 개의 조율된 파일들)예를 들어, 하나 이상의 모듈, 서브-프로그램, 또는 코드의 일부를 저장하는 파일) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 하나의 사이트에 위치되거나 여러 사이트들에 걸쳐서 분산되고 통신 네트워크에 의하여 상호연결되는 여러 컴퓨터들 상에서 실행되도록 구현될 수 있다.
본 명세서에서 설명되는 프로세스 및 로직 흐름은 입력 데이터 상에 작용하여 출력을 생성함으로써 기능을 수행하기 위한 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능한 프로세서에 의하여 수행될 수 있다. 또한 프로세스 및 로직 흐름은 특수 목적 로직 회로부, 예를 들어 FPGA(field programmable gate array), 또는 ASIC(application-specific integrated circuit)에 의하여 수행될 수 있으며, 장치는 또한 이러한 것으로서 구현될 수 있다.
컴퓨터 프로그램을 실행하기에 적합한 프로세서는, 예를 들어 범용 및 주문형 마이크로프로세서 양자 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독-전용 메모리 또는 랜덤 액세스 메모리 또는 이들 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 본질적인 요소는 명령을 수행하기 위한 프로세서 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기적, 자기-광학적 디스크, 또는 광학적 디스크를 더욱 포함하거나, 이것으로부터 데이터를 수신하거나 이것으로 데이터를 전송하거나, 또는 이들 모두를 하기 위하여 이것에 동작가능하도록 커플링될 것이다. 그러나, 컴퓨터는 이러한 디바이스를 가져야 하는 것은 아니다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는, 예를 들자면 반도체 메모리 디바이스, 예를 들어 EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기적 디스크, 예를 들어 내부 하드 디스크 또는 착탈식 디스크; 자기-광학적 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함하는 비-휘발성 메모리, 미디어 및 메모리 디바이스의 모든 형태를 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로부에 의하여 보충되거나 그 내부에 통합될 수 있다.
본 특허 명세서가 많은 특징을 포함하고 있지만, 이들은 임의의 기술 요지 또는 청구될 내용의 범위를 한정하는 것으로 해석되어서는 안 되고, 오히려 특정 기법의 특정 실시형태들에 특유할 수 있는 특징들의 설명으로서 해석되어야 한다. 본 특허 명세서에서 별개의 실시형태들의 콘텍스트에서 설명되는 일부 특징들은, 단일 실시형태 내에 조합되어 구현될 수도 있다. 반대로, 단일 실시예의 콘텍스트에서 설명되는 다양한 특징들은 또한 따로따로 다수의 실시예들에서 또는 임의의 적합한 서브컴비네이션에서 구현될 수 있다. 더구나, 비록 특징들이 특정한 조합들로 작용하는 것으로 위에서 설명될 수도 있고 그와 같이 처음에 청구된 경우에도, 청구된 조합들로부터의 하나 이상의 특징들은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 서브컴비네이션 또는 서브컴비네이션의 변형예를 위한 것일 수도 있다.
이와 유사하게, 동작들이 도면들에서 특정한 순서로 묘사되어 있으나, 원하는 결과들을 획득하기 위하여 이러한 동작들이 도시된 특정한 순서로 또는 순차적인 순서로 수행되어야 하거나, 또는 도시된 모든 동작들이 수행되어야 한다고 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 명세서에서 설명되는 실시형태들 내의 다양한 시스템 성분들을 분리하는 것은, 모든 실시형태에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지의 구현형태와 예들만이 설명되고, 다른 구현형태, 개선형태, 및 변형예들이 본 특허 명세서에서 설명되고 예시된 것에 기반하여 이루어질 수 있다.
Claims (14)
- 시각 매체 프로세싱 방법에 있어서,
시각 매체 데이터의 현재 블록과 시각 매체 데이터의 대응 코딩 표현 간의 변환을 수행하는 단계;를 포함하되,
상기 변환은 상기 현재 블록에 대해 DMVR(decoder-side motion vector refinement) 기술 혹은 BIO(bi-directional optical flow) 기술 중 하나 혹은 둘 모두와 연관되는 규칙들의 이용을 포함하되, 상기 DMVR 기술과 연관된 상기 규칙들은 상기 BIO 기술에 적용되는 것과 동일하고,
상기 현재 블록에 대한 상기 BIO 기술 혹은 상기 DMVR 기술 중 하나 혹은 둘 모두의 이용이 활성화 혹은 비활성화되는지 여부의 결정은 상기 규칙들의 적용에 기초하는, 시각 매체 프로세싱 방법.
- 제1 항에 있어서,
상기 DMVR 기술이 활성화되는지 여부를 결정하기 위한 규칙은 상기 BIO 기술이 활성화되는지 여부를 결정하기 위한 규칙과 동일한, 시각 매체 프로세싱 방법.
- 제2 항에 있어서,
상기 BIO 기술 및/혹은 상기 DMVR 기술이 활성화되는지 여부를 결정하기 위한 상기 규칙은 상기 현재 블록의 높이가 임계 값 이상인지 검증하는, 시각 매체 프로세싱 방법.
- 제2 항에 있어서,
상기 BIO 기술 및/혹은 상기 DMVR 기술이 활성화되는지 여부를 결정하기 위한 상기 규칙은 상기 현재 블록의 높이 및 너비 모두가 임계 값 이상인지 검증하는, 시각 매체 프로세싱 방법.
- 제3 항 혹은 제4 항 중 적어도 어느 한 항에 있어서,
상기 임계 값은 4 혹은 8인, 시각 매체 프로세싱 방법.
- 제2 항에 있어서,
상기 BIO 기술 및/혹은 상기 DMVR 기술이 활성화되는지 여부를 결정하는 상기 규칙은 상기 현재 블록의 크기가 임계 값 이상인지 검증하는, 시각 매체 프로세싱 방법.
- 제4 항에 있어서,
상기 임계 값은 64 혹은 128인, 시각 매체 프로세싱 방법.
- 제2 항에 있어서,
상기 BIO 기술 및/혹은 상기 DMVR 기술이 활성화 되는지 여부를 결정하기 위한 상기 규칙은 상기 현재 블록이 BCW(Bi-prediction with CU-level Weight) 모드에서 코딩되지 않았는지 검증하고, 동일하지 않은 가중치가 두 개의 참조 리스트들에 대한 두 개의 참조 블록들에 대해 사용되는, 시각 매체 프로세싱 방법.
- 제2 항에 있어서,
상기 BIO 기술 및/혹은 상기 DMVR 기술이 활성화 되는지 여부를 결정하기 위한 상기 규칙은 상기 현재 블록이 상기 현재 블록과 연관된 현재 픽처로부터 동일한 POC(picture order count) 거리를 갖는 한 쌍의 참조 픽처들과 연관된 양 예측된 블록인지 검증하는, 시각 매체 프로세싱 방법.
- 제9 항에 있어서,
상기 한 쌍의 참조 픽처들은 디스플레이 순서에 따라 상기 현재 블록과 연관된 상기 현재 픽처의 선행 픽처 및 후속 픽처를 포함하는, 시각 매체 프로세싱 방법.
- 제1 항 내지 제10 항 중 적어도 한 항에 개시된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
- 제1 항 내지 제10 항 중 적어도 한 항에 개시된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
- 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품으로서, 상기 코드는 프로세서에 의해 실행될 때 상기 프로세서가 제1 항 내지 제10 항 중 어느 한 항에 기재된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
- 본 문서에 개시된 방법, 장치 혹은 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020237041403A KR20230169434A (ko) | 2019-04-02 | 2020-04-02 | 디코더 측 움직임 벡터 유도 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2019/081155 | 2019-04-02 | ||
CN2019081155 | 2019-04-02 | ||
CNPCT/CN2019/085796 | 2019-05-07 | ||
CN2019085796 | 2019-05-07 | ||
PCT/CN2020/082937 WO2020200269A1 (en) | 2019-04-02 | 2020-04-02 | Decoder side motion vector derivation |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237041403A Division KR20230169434A (ko) | 2019-04-02 | 2020-04-02 | 디코더 측 움직임 벡터 유도 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210145747A true KR20210145747A (ko) | 2021-12-02 |
KR102610709B1 KR102610709B1 (ko) | 2023-12-05 |
Family
ID=72664978
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237041403A KR20230169434A (ko) | 2019-04-02 | 2020-04-02 | 디코더 측 움직임 벡터 유도 |
KR1020217030715A KR102610709B1 (ko) | 2019-04-02 | 2020-04-02 | 디코더 측 움직임 벡터 유도 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237041403A KR20230169434A (ko) | 2019-04-02 | 2020-04-02 | 디코더 측 움직임 벡터 유도 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11553201B2 (ko) |
EP (1) | EP3922014A4 (ko) |
JP (2) | JP7307192B2 (ko) |
KR (2) | KR20230169434A (ko) |
CN (2) | CN113647099B (ko) |
WO (1) | WO2020200269A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023219279A1 (ko) * | 2022-05-10 | 2023-11-16 | 현대자동차주식회사 | 기하학적 분할에 기초하는 인터/인트라 예측을 이용하는 비디오 코딩을 위한방법 및 장치 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083484B (zh) | 2018-10-22 | 2024-06-28 | 北京字节跳动网络技术有限公司 | 基于子块的预测 |
WO2020084475A1 (en) | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Utilization of refined motion vector |
CN111436227B (zh) | 2018-11-12 | 2024-03-29 | 北京字节跳动网络技术有限公司 | 在视频处理中使用组合帧间-帧内预测 |
JP7241870B2 (ja) | 2018-11-20 | 2023-03-17 | 北京字節跳動網絡技術有限公司 | 部分的な位置に基づく差分計算 |
CN113170097B (zh) | 2018-11-20 | 2024-04-09 | 北京字节跳动网络技术有限公司 | 视频编解码模式的编解码和解码 |
EP3915259A4 (en) | 2019-03-06 | 2022-03-30 | Beijing Bytedance Network Technology Co., Ltd. | USE OF A CONVERTED UNIVERSITY PREDICTION CANDIDATE |
KR102662616B1 (ko) | 2019-05-21 | 2024-04-30 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 어파인 모드를 위한 적응적 모션 벡터 차이 해상도 |
CN117440169A (zh) * | 2019-06-21 | 2024-01-23 | 华为技术有限公司 | 编码器、解码器及对应方法 |
WO2020262365A1 (ja) * | 2019-06-28 | 2020-12-30 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、および復号方法 |
CN114073090A (zh) * | 2019-07-01 | 2022-02-18 | 交互数字Vc控股法国公司 | 仿射运动补偿的双向光流细化 |
CN114208196B (zh) | 2019-08-10 | 2023-11-14 | 北京字节跳动网络技术有限公司 | 帧间编解码模式的位置限制 |
JP6960969B2 (ja) * | 2019-09-20 | 2021-11-05 | Kddi株式会社 | 画像復号装置、画像復号方法及びプログラム |
CN114556945A (zh) * | 2019-09-23 | 2022-05-27 | Vid拓展公司 | 用于双向光流的切换逻辑 |
KR20220074870A (ko) | 2019-10-12 | 2022-06-03 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 코딩에서의 예측 유형 시그널링 |
EP4032290A4 (en) | 2019-10-18 | 2022-11-30 | Beijing Bytedance Network Technology Co., Ltd. | SYNTAX CONSTRAINTS IN REPORTING SUBPICTURE PARAMETER SETS |
BR112022012807A2 (pt) | 2019-12-27 | 2022-09-27 | Beijing Bytedance Network Tech Co Ltd | Método de processamento de vídeo, aparelho para processar dados de vídeo e meios não transitórios legíveis por computador |
GB2617839A (en) * | 2022-04-19 | 2023-10-25 | Canon Kk | Video coding and decoding |
EP4436184A1 (en) * | 2023-03-20 | 2024-09-25 | Beijing Xiaomi Mobile Software Co., Ltd. | Decoding video picture data using affine motion fields defined by control point motion vectors |
Family Cites Families (129)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480615B1 (en) | 1999-06-15 | 2002-11-12 | University Of Washington | Motion estimation within a sequence of data frames using optical flow with adaptive gradients |
US7627037B2 (en) | 2004-02-27 | 2009-12-01 | Microsoft Corporation | Barbell lifting for multi-layer wavelet coding |
US8023041B2 (en) | 2006-01-30 | 2011-09-20 | Lsi Corporation | Detection of moving interlaced text for film mode decision |
US9654792B2 (en) | 2009-07-03 | 2017-05-16 | Intel Corporation | Methods and systems for motion vector derivation at a video decoder |
US8462852B2 (en) | 2009-10-20 | 2013-06-11 | Intel Corporation | Methods and apparatus for adaptively choosing a search range for motion estimation |
US20110176611A1 (en) | 2010-01-15 | 2011-07-21 | Yu-Wen Huang | Methods for decoder-side motion vector derivation |
US9661338B2 (en) | 2010-07-09 | 2017-05-23 | Qualcomm Incorporated | Coding syntax elements for adaptive scans of transform coefficients for video coding |
KR101484281B1 (ko) | 2010-07-09 | 2015-01-21 | 삼성전자주식회사 | 블록 병합을 이용한 비디오 부호화 방법 및 그 장치, 블록 병합을 이용한 비디오 복호화 방법 및 그 장치 |
EP2656610A4 (en) | 2010-12-21 | 2015-05-20 | Intel Corp | SYSTEM AND METHOD FOR EXTENDED DMVD PROCESSING |
JP2012142702A (ja) | 2010-12-28 | 2012-07-26 | Sony Corp | 画像処理装置および方法、並びにプログラム |
CN108900839B (zh) | 2011-12-28 | 2022-05-31 | 夏普株式会社 | 图像解码装置及方法、图像编码装置及方法 |
US9451277B2 (en) | 2012-02-08 | 2016-09-20 | Qualcomm Incorporated | Restriction of prediction units in B slices to uni-directional inter prediction |
EP2642755B1 (en) | 2012-03-20 | 2018-01-03 | Dolby Laboratories Licensing Corporation | Complexity scalable multilayer video coding |
US10341677B2 (en) | 2012-05-10 | 2019-07-02 | Lg Electronics Inc. | Method and apparatus for processing video signals using inter-view inter-prediction |
CN106899849B (zh) | 2012-06-27 | 2019-08-13 | 株式会社东芝 | 一种电子设备和解码方法 |
KR101754999B1 (ko) | 2012-08-29 | 2017-07-06 | 브이아이디 스케일, 인크. | 스케일러블 비디오 코딩을 위한 모션 벡터 예측 방법 및 장치 |
EP2911397A1 (en) | 2012-09-28 | 2015-08-26 | Intel Corporation | Inter-layer pixel sample prediction |
WO2014047877A1 (en) | 2012-09-28 | 2014-04-03 | Intel Corporation | Inter-layer residual prediction |
US20140177706A1 (en) * | 2012-12-21 | 2014-06-26 | Samsung Electronics Co., Ltd | Method and system for providing super-resolution of quantized images and video |
US9294777B2 (en) | 2012-12-30 | 2016-03-22 | Qualcomm Incorporated | Progressive refinement with temporal scalability support in video coding |
CN104885467B (zh) | 2013-01-30 | 2018-08-17 | 英特尔公司 | 用于下一代视频编码的内容自适应参数变换 |
US9596448B2 (en) | 2013-03-18 | 2017-03-14 | Qualcomm Incorporated | Simplifications on disparity vector derivation and motion vector prediction in 3D video coding |
US9521425B2 (en) | 2013-03-19 | 2016-12-13 | Qualcomm Incorporated | Disparity vector derivation in 3D video coding for skip and direct modes |
WO2014166063A1 (en) | 2013-04-09 | 2014-10-16 | Mediatek Inc. | Default vector for disparity vector derivation for 3d video coding |
WO2015003383A1 (en) | 2013-07-12 | 2015-01-15 | Mediatek Singapore Pte. Ltd. | Methods for inter-view motion prediction |
US9628795B2 (en) | 2013-07-17 | 2017-04-18 | Qualcomm Incorporated | Block identification using disparity vector in video coding |
US10244253B2 (en) | 2013-09-13 | 2019-03-26 | Qualcomm Incorporated | Video coding techniques using asymmetric motion partitioning |
CN111179946B (zh) | 2013-09-13 | 2023-10-13 | 三星电子株式会社 | 无损编码方法和无损解码方法 |
US9554150B2 (en) | 2013-09-20 | 2017-01-24 | Qualcomm Incorporated | Combined bi-predictive merging candidates for 3D video coding |
US9762927B2 (en) | 2013-09-26 | 2017-09-12 | Qualcomm Incorporated | Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC |
US9667996B2 (en) | 2013-09-26 | 2017-05-30 | Qualcomm Incorporated | Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC |
US9906813B2 (en) | 2013-10-08 | 2018-02-27 | Hfi Innovation Inc. | Method of view synthesis prediction in 3D video coding |
WO2015085575A1 (en) | 2013-12-13 | 2015-06-18 | Mediatek Singapore Pte. Ltd. | Methods for background residual prediction |
WO2015109598A1 (en) | 2014-01-27 | 2015-07-30 | Mediatek Singapore Pte. Ltd. | Methods for motion parameter hole filling |
US9906790B2 (en) | 2014-03-14 | 2018-02-27 | Qualcomm Incorporated | Deblock filtering using pixel distance |
JPWO2015166639A1 (ja) | 2014-04-28 | 2017-04-20 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 符号化方法、復号方法、符号化装置および復号装置 |
GB2531003A (en) | 2014-10-06 | 2016-04-13 | Canon Kk | Method and apparatus for vector encoding in video coding and decoding |
WO2016054765A1 (en) | 2014-10-08 | 2016-04-14 | Microsoft Technology Licensing, Llc | Adjustments to encoding and decoding when switching color spaces |
CN104301724B (zh) | 2014-10-17 | 2017-12-01 | 华为技术有限公司 | 视频处理方法、编码设备和解码设备 |
EP3206403A4 (en) | 2014-11-04 | 2017-11-01 | Samsung Electronics Co., Ltd. | Video encoding method and apparatus therefor, and video decoding method and apparatus therefor, in which edge type offset is applied |
US10382795B2 (en) | 2014-12-10 | 2019-08-13 | Mediatek Singapore Pte. Ltd. | Method of video coding using binary tree block partitioning |
US10230980B2 (en) | 2015-01-26 | 2019-03-12 | Qualcomm Incorporated | Overlapped motion compensation for video coding |
US11330284B2 (en) | 2015-03-27 | 2022-05-10 | Qualcomm Incorporated | Deriving motion information for sub-blocks in video coding |
US10887597B2 (en) | 2015-06-09 | 2021-01-05 | Qualcomm Incorporated | Systems and methods of determining illumination compensation parameters for video coding |
WO2017008263A1 (en) | 2015-07-15 | 2017-01-19 | Mediatek Singapore Pte. Ltd. | Conditional binary tree block partitioning structure |
CN107925775A (zh) * | 2015-09-02 | 2018-04-17 | 联发科技股份有限公司 | 基于双向预测光流技术的视频编解码的运动补偿方法及装置 |
US10375413B2 (en) | 2015-09-28 | 2019-08-06 | Qualcomm Incorporated | Bi-directional optical flow for video coding |
WO2017088093A1 (en) | 2015-11-23 | 2017-06-01 | Mediatek Singapore Pte. Ltd. | On the smallest allowed block size in video coding |
US10268901B2 (en) | 2015-12-04 | 2019-04-23 | Texas Instruments Incorporated | Quasi-parametric optical flow estimation |
US9955186B2 (en) | 2016-01-11 | 2018-04-24 | Qualcomm Incorporated | Block size decision for video coding |
EP3413563A4 (en) | 2016-02-03 | 2019-10-23 | Sharp Kabushiki Kaisha | DEVICE FOR DECODING MOVEMENT PICTURES, APPARATUS FOR CODING MOVEMENT IMAGES AND DEVICE FOR GENERATING FORECAST PICTURES |
CN108781294B (zh) * | 2016-02-05 | 2021-08-31 | 联发科技股份有限公司 | 视频数据的运动补偿方法及装置 |
US11563938B2 (en) | 2016-02-15 | 2023-01-24 | Qualcomm Incorporated | Geometric transforms for filters for video coding |
WO2017143467A1 (en) | 2016-02-22 | 2017-08-31 | Mediatek Singapore Pte. Ltd. | Localized luma mode prediction inheritance for chroma coding |
US20170339405A1 (en) * | 2016-05-20 | 2017-11-23 | Arris Enterprises Llc | System and method for intra coding |
US11638027B2 (en) | 2016-08-08 | 2023-04-25 | Hfi Innovation, Inc. | Pattern-based motion vector derivation for video coding |
US10609423B2 (en) | 2016-09-07 | 2020-03-31 | Qualcomm Incorporated | Tree-type coding for video coding |
US10674165B2 (en) * | 2016-12-21 | 2020-06-02 | Arris Enterprises Llc | Constrained position dependent intra prediction combination (PDPC) |
US10666937B2 (en) | 2016-12-21 | 2020-05-26 | Qualcomm Incorporated | Low-complexity sign prediction for video coding |
WO2018113658A1 (en) | 2016-12-22 | 2018-06-28 | Mediatek Inc. | Method and apparatus of motion refinement for video coding |
US10911761B2 (en) | 2016-12-27 | 2021-02-02 | Mediatek Inc. | Method and apparatus of bilateral template MV refinement for video coding |
US20190387234A1 (en) | 2016-12-29 | 2019-12-19 | Peking University Shenzhen Graduate School | Encoding method, decoding method, encoder, and decoder |
US10931969B2 (en) | 2017-01-04 | 2021-02-23 | Qualcomm Incorporated | Motion vector reconstructions for bi-directional optical flow (BIO) |
KR102466901B1 (ko) | 2017-01-04 | 2022-11-14 | 삼성전자주식회사 | 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치 |
US20180199057A1 (en) | 2017-01-12 | 2018-07-12 | Mediatek Inc. | Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding |
US10701366B2 (en) | 2017-02-21 | 2020-06-30 | Qualcomm Incorporated | Deriving motion vector information at a video decoder |
US10523964B2 (en) | 2017-03-13 | 2019-12-31 | Qualcomm Incorporated | Inter prediction refinement based on bi-directional optical flow (BIO) |
BR112019018922A8 (pt) | 2017-03-16 | 2023-02-07 | Mediatek Inc | Método e aparelho de refinamento de movimento com base em fluxo óptico bi-direcional para codificação de vídeo |
US11277635B2 (en) | 2017-03-17 | 2022-03-15 | Vid Scale, Inc. | Predictive coding for 360-degree video based on geometry padding |
US10595035B2 (en) | 2017-03-22 | 2020-03-17 | Qualcomm Incorporated | Constraining motion vector information derived by decoder-side motion vector derivation |
US10491917B2 (en) | 2017-03-22 | 2019-11-26 | Qualcomm Incorporated | Decoder-side motion vector derivation |
TW201902223A (zh) | 2017-03-24 | 2019-01-01 | 聯發科技股份有限公司 | 視頻編碼中重疊分塊運動補償的雙向光流的方法和裝置 |
US10805650B2 (en) | 2017-03-27 | 2020-10-13 | Qualcomm Incorporated | Signaling important video information in network video streaming using mime type parameters |
US10805630B2 (en) | 2017-04-28 | 2020-10-13 | Qualcomm Incorporated | Gradient based matching for motion search and derivation |
US10701393B2 (en) | 2017-05-10 | 2020-06-30 | Mediatek Inc. | Method and apparatus of reordering motion vector prediction candidate set for video coding |
AU2018270853B2 (en) | 2017-05-17 | 2021-04-01 | Kt Corporation | Method and device for video signal processing |
US10904565B2 (en) | 2017-06-23 | 2021-01-26 | Qualcomm Incorporated | Memory-bandwidth-efficient design for bi-directional optical flow (BIO) |
US10477237B2 (en) | 2017-06-28 | 2019-11-12 | Futurewei Technologies, Inc. | Decoder side motion vector refinement in video coding |
WO2019001741A1 (en) | 2017-06-30 | 2019-01-03 | Huawei Technologies Co., Ltd. | MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION |
KR102653715B1 (ko) | 2017-07-03 | 2024-04-01 | 브이아이디 스케일, 인크. | 양방향 광학 흐름에 기반한 모션 보상 예측 |
CN117499682A (zh) | 2017-09-20 | 2024-02-02 | 韩国电子通信研究院 | 用于对图像进行编码/解码的方法和装置 |
US10785494B2 (en) | 2017-10-11 | 2020-09-22 | Qualcomm Incorporated | Low-complexity design for FRUC |
US10986360B2 (en) | 2017-10-16 | 2021-04-20 | Qualcomm Incorproated | Various improvements to FRUC template matching |
US11057640B2 (en) | 2017-11-30 | 2021-07-06 | Lg Electronics Inc. | Image decoding method and apparatus based on inter-prediction in image coding system |
US11277609B2 (en) | 2017-12-29 | 2022-03-15 | Sharp Kabushiki Kaisha | Systems and methods for partitioning video blocks for video coding |
US11172229B2 (en) | 2018-01-12 | 2021-11-09 | Qualcomm Incorporated | Affine motion compensation with low bandwidth |
EP3741115A1 (en) | 2018-01-16 | 2020-11-25 | Vid Scale, Inc. | Motion compensated bi-prediction based on local illumination compensation |
US11265551B2 (en) | 2018-01-18 | 2022-03-01 | Qualcomm Incorporated | Decoder-side motion vector derivation |
US11310526B2 (en) | 2018-01-26 | 2022-04-19 | Mediatek Inc. | Hardware friendly constrained motion vector refinement |
US20200359024A1 (en) | 2018-01-30 | 2020-11-12 | Sharp Kabushiki Kaisha | Systems and methods for deriving quantization parameters for video blocks in video coding |
CN111788829B (zh) | 2018-02-28 | 2022-02-08 | 三星电子株式会社 | 编码方法及其装置以及解码方法及其装置 |
US20190306502A1 (en) | 2018-04-02 | 2019-10-03 | Qualcomm Incorporated | System and method for improved adaptive loop filtering |
US10779002B2 (en) | 2018-04-17 | 2020-09-15 | Qualcomm Incorporated | Limitation of the MVP derivation based on decoder-side motion vector derivation |
WO2019229683A1 (en) | 2018-05-31 | 2019-12-05 | Beijing Bytedance Network Technology Co., Ltd. | Concept of interweaved prediction |
WO2019234612A1 (en) | 2018-06-05 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Partition tree with four sub-blocks symmetric or asymmetric |
WO2019234668A1 (en) | 2018-06-07 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Sub-block dmvr |
CN110636299B (zh) | 2018-06-21 | 2022-06-14 | 北京字节跳动网络技术有限公司 | 用于处理视频数据的方法、装置及计算机可读记录介质 |
WO2019244118A1 (en) | 2018-06-21 | 2019-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Component-dependent sub-block dividing |
CN110636298B (zh) | 2018-06-21 | 2022-09-13 | 北京字节跳动网络技术有限公司 | 对于Merge仿射模式和非Merge仿射模式的统一约束 |
MX2021000129A (es) | 2018-06-27 | 2021-03-25 | Vid Scale Inc | Métodos y aparato para reducir la latencia de codificación del refinamiento de movimiento lateral de decodificador. |
EP3804327A1 (en) | 2018-07-01 | 2021-04-14 | Beijing Bytedance Network Technology Co. Ltd. | Efficient affine merge motion vector derivation |
TWI719519B (zh) | 2018-07-02 | 2021-02-21 | 大陸商北京字節跳動網絡技術有限公司 | 對於dmvr的塊尺寸限制 |
US10911768B2 (en) | 2018-07-11 | 2021-02-02 | Tencent America LLC | Constraint for template matching in decoder side motion derivation and refinement |
CN110719479B (zh) | 2018-07-15 | 2023-01-10 | 北京字节跳动网络技术有限公司 | 跨分量编码信息导出 |
US11516490B2 (en) | 2018-07-16 | 2022-11-29 | Lg Electronics Inc. | Method and device for inter predicting on basis of DMVR |
US10911751B2 (en) | 2018-09-14 | 2021-02-02 | Tencent America LLC | Method and apparatus for video coding |
CN117768651A (zh) | 2018-09-24 | 2024-03-26 | 北京字节跳动网络技术有限公司 | 处理视频数据的方法、装置、介质、以及比特流存储方法 |
CN111010569B (zh) | 2018-10-06 | 2023-02-28 | 北京字节跳动网络技术有限公司 | Bio中的时间梯度计算的改善 |
WO2020084461A1 (en) | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Restrictions on decoder side motion vector derivation based on coding information |
WO2020084462A1 (en) | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Restrictions on decoder side motion vector derivation based on block size |
WO2020084475A1 (en) | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Utilization of refined motion vector |
CN111083484B (zh) | 2018-10-22 | 2024-06-28 | 北京字节跳动网络技术有限公司 | 基于子块的预测 |
CN109191514B (zh) | 2018-10-23 | 2020-11-24 | 北京字节跳动网络技术有限公司 | 用于生成深度检测模型的方法和装置 |
CN117241017A (zh) | 2018-11-05 | 2023-12-15 | 北京字节跳动网络技术有限公司 | 数字视频编解码的方法、设备和系统 |
CN113056917B (zh) | 2018-11-06 | 2024-02-06 | 北京字节跳动网络技术有限公司 | 为视频处理使用具有几何分割的帧间预测 |
KR20210089747A (ko) | 2018-11-12 | 2021-07-16 | 인터디지털 브이씨 홀딩스 인코포레이티드 | 비디오 인코딩 및 디코딩을 위한 가상 파이프라인 |
JP7241870B2 (ja) | 2018-11-20 | 2023-03-17 | 北京字節跳動網絡技術有限公司 | 部分的な位置に基づく差分計算 |
CN113170097B (zh) | 2018-11-20 | 2024-04-09 | 北京字节跳动网络技术有限公司 | 视频编解码模式的编解码和解码 |
EP3657794A1 (en) | 2018-11-21 | 2020-05-27 | InterDigital VC Holdings, Inc. | Method and device for picture encoding and decoding |
CN113228673B (zh) * | 2019-01-02 | 2023-03-03 | 华为技术有限公司 | 用于基于双向预测光流的逐像素校正的解码器和方法 |
CN116708772B (zh) * | 2019-01-06 | 2024-01-23 | 北京达佳互联信息技术有限公司 | 视频解码方法、计算设备和介质 |
CN111699694B (zh) | 2019-01-15 | 2022-07-08 | Lg电子株式会社 | 使用变换跳过标志的图像编码方法和装置 |
WO2020186119A1 (en) | 2019-03-12 | 2020-09-17 | Beijing Dajia Internet Information Technology Co., Ltd. | Constrained and adjusted applications of combined inter- and intra-prediction mode |
KR102429449B1 (ko) | 2019-03-15 | 2022-08-03 | 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 | 양방향 광 흐름을 위한 비트-폭 제어를 위한 방법 및 디바이스 |
CA3140379A1 (en) * | 2019-06-21 | 2020-12-24 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method and decoding method |
US11330287B2 (en) * | 2019-06-28 | 2022-05-10 | Tencent America LLC | Method and apparatus for video coding |
US11272203B2 (en) * | 2019-07-23 | 2022-03-08 | Tencent America LLC | Method and apparatus for video coding |
CN110267045B (zh) | 2019-08-07 | 2021-09-24 | 杭州微帧信息科技有限公司 | 一种视频处理及编码的方法、装置及可读存储介质 |
US11405628B2 (en) * | 2020-04-06 | 2022-08-02 | Tencent America LLC | Method and apparatus for video coding |
-
2020
- 2020-04-02 KR KR1020237041403A patent/KR20230169434A/ko active Application Filing
- 2020-04-02 WO PCT/CN2020/082937 patent/WO2020200269A1/en unknown
- 2020-04-02 KR KR1020217030715A patent/KR102610709B1/ko active IP Right Grant
- 2020-04-02 EP EP20782973.0A patent/EP3922014A4/en active Pending
- 2020-04-02 CN CN202080025886.9A patent/CN113647099B/zh active Active
- 2020-04-02 CN CN202210804712.3A patent/CN115190317A/zh active Pending
- 2020-04-02 JP JP2021557132A patent/JP7307192B2/ja active Active
-
2021
- 2021-08-18 US US17/405,179 patent/US11553201B2/en active Active
-
2023
- 2023-06-27 JP JP2023105110A patent/JP2023134521A/ja active Pending
Non-Patent Citations (3)
Title |
---|
Benjamin Bross et al., "Versatile Video Coding (Draft 4)", JVET of ITU-T and ISO/IEC, JVET-M1001-v7(2019.03.17.)* * |
Naeri Park et al., "Non-CE9 : Mismatch between text specification and reference software on BDOF and DMVR", JVET of ITU-T and ISO/IEC, JVET-N0444-v3(2019.03.23.)* * |
Sriram Sethuraman, "Non-CE9: Methods for BDOF complexity reduction", JVET of ITU-T and ISO/IEC, JVET of ITU-T and ISO/IEC, JVET-M0517-v3(2019.01.12.)* * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023219279A1 (ko) * | 2022-05-10 | 2023-11-16 | 현대자동차주식회사 | 기하학적 분할에 기초하는 인터/인트라 예측을 이용하는 비디오 코딩을 위한방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
WO2020200269A1 (en) | 2020-10-08 |
KR20230169434A (ko) | 2023-12-15 |
JP7307192B2 (ja) | 2023-07-11 |
JP2023134521A (ja) | 2023-09-27 |
CN113647099B (zh) | 2022-10-04 |
US20210385481A1 (en) | 2021-12-09 |
EP3922014A1 (en) | 2021-12-15 |
EP3922014A4 (en) | 2022-04-06 |
JP2022527751A (ja) | 2022-06-06 |
CN113647099A (zh) | 2021-11-12 |
KR102610709B1 (ko) | 2023-12-05 |
US11553201B2 (en) | 2023-01-10 |
CN115190317A (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102610709B1 (ko) | 디코더 측 움직임 벡터 유도 | |
CN113170093B (zh) | 视频处理中的细化帧间预测 | |
JP7556090B2 (ja) | デコーダ側精緻化ツールのサイズ選択アプリケーション | |
JP2023164833A (ja) | インター-イントラ複合予測の簡単化 | |
KR20210137463A (ko) | 광학 흐름에 기초한 예측 정제의 계산 | |
KR20210089155A (ko) | 페어와이즈 평균 후보 계산에서 라운딩 | |
US11159820B2 (en) | Motion vector refinement of a motion vector pointing to a fractional sample position | |
JP7322277B2 (ja) | 参照ピクチャタイプに従ったツールの使用制限 | |
WO2020224613A1 (en) | Unified calculation method for inter prediction with refinement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |