KR20220002897A - 모션 벡터 차에 대한 제한 - Google Patents

모션 벡터 차에 대한 제한 Download PDF

Info

Publication number
KR20220002897A
KR20220002897A KR1020217033435A KR20217033435A KR20220002897A KR 20220002897 A KR20220002897 A KR 20220002897A KR 1020217033435 A KR1020217033435 A KR 1020217033435A KR 20217033435 A KR20217033435 A KR 20217033435A KR 20220002897 A KR20220002897 A KR 20220002897A
Authority
KR
South Korea
Prior art keywords
mvd
component
range
way
precision
Prior art date
Application number
KR1020217033435A
Other languages
English (en)
Inventor
지핀 뎅
리 장
홍빈 리우
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20220002897A publication Critical patent/KR20220002897A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

모션 벡터 차에 대한 제한이 개시된다. 비디오를 처리하는 방법의 하나의 예에서, 비디오의 제1 블록과 상기 제1 블록의 비트스트림 표현 사이의 변환을 위해, 상기 제1 블록과 연관된 모션 벡터 차(MVD) 성분의 범위를 결정하는 단계, 여기서 MVD 성분의 상기 범위는 M=17일 때
Figure pct00078
임; 상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한하는 단계; 및 상기 제한된 MVD 성분에 기초하여 상기 변환을 수행하는 단계을 포함한다.

Description

모션 벡터 차에 대한 제한
이 특허 문헌은 비디오 코딩 기술, 장치 및 시스템에 관한 것이다.
파리 협약에 따른 적용 가능한 특허법 및/또는 규칙에 따라, 본 출원은 2019년 4월 225일에 출원된, 국제 특허 출원 번호 PCT/CN2019/084228에 대한 우선권 및 이익을 주장한다. 국제 특허 출원 번호 PCT/CN2019/084228출원의 전체 공개는 본 출원 공개의 일부로 참조로 포함된다
비디오 압축(video compressioin)의 발전에도 불구하고, 디지털 비디오(digital video)는 여전히 인터넷(internet) 및 기타 디지털 통신 네트워크(digital communication network)에서 가장 큰 대역폭(largest bandwidth) 사용을 차지한다. 비디오를 수신(receive)하고 디스플레이(display)할 수 있는 연결된 사용자 장치(user devices)의 수가 증가함에 따라, 디지털 비디오 사용(digital video usage)에 대한 대역폭 수요(bandwidth demand)가 계속 증가(grow)할 것으로 예상된다.
본 문서는 지정된(specified) 비트 수(number of bits)를 사용하여 표현(represent)되는 모션 벡터(motion vector)를 사용하여 비디오 코딩(video coding) 또는 디코딩(decoding)이 수행(perform)되는 다양한 실시예 및 기술을 설명한다.
하나의 예시적인 양태에서, 비디오를 처리하는 방법(video processing method)이 개시된다. 이 방법은, 최대 허용 모션 벡터 해상도(maximum allowed motion vector resolution), 최대 허용 모션 벡터 정밀도(maximum allowed motion vector precision), 또는 비디오 영역(video region)의 속성(property)에 기초하여, 비디오 영역과 비디오 영역의 비트스트림 표현(bitstream representation) 사이의 변환(conversion) 동안, 비디오의 비디오 영역에 대해 사용되는 모션 벡터 차 값(motion vector difference(MVD) value)의 범위(range)를 결정(determine)하는 단계를 포함하고, MVD 값을 이 범위 내로 제한(limit)함으로써 변환(conversion)을 수행하는 단계를 포함한다.
하나의 예시적인 양태에서, 비디오를 처리하는 방법이 개시된다. 방법은 비디오의 제1 블록(first block)과 상기 제1 블록의 비트스트림 표현(bitstream representation) 사이의 변환(conversion)을 위해, 상기 제1 블록과 연관된(associated) 모션 벡터 차 (motion vector difference(MVD)) 성분(component)의 범위(range)를 결정하는 단계를 포함하고, 여기서 MVD 성분의 상기 범위는 M=17일 때
Figure pct00001
이며; 상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한(constrain)하는 단계; 및 상기 제한된 MVD 성분에 기초하여 상기 변환(conversion)을 수행하는 단계를 포함한다.
하나의 예시적인 양태에 있어서, 비디오를 처리하는 방법이 개시된다. 방법은, 비디오의 제1 블록(first block)과 상기 제1 블록의 비트스트림 표현(bitstream representation) 사이의 변환(conversion)을 위해, 상기 제1 블록과 연관된(associated) 모션 벡터 차 (motion vector difference(MVD)) 성분(component)의 범위(range)를 결정하는 단계를 포함하고, 여기서 MVD 성분의 상기 범위는 코덱(codec)의 허용가능한 MVD 정밀도(allowable MVD precision) 및/또는 허용가능한 모션 벡터(MV) 정밀도(motion vector(MV) precision)에 적용되며; 상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한(constrain)하는 단계; 및 상기 제한된 MVD 성분에 기초하여 상기 변환(conversion)을 수행하는 단계를 포함한다.
하나의 예시적인 양태에서, 비디오를 처리하는 방법이 개시된다. 방법은, 비디오의 제1 블록(first block)과 상기 제1 블록의 비트스트림 표현(bitstream representation) 사이의 변환(conversion)을 위해, 상기 제1 블록의 코딩된 정보에 기초하여 상기 제1 블록과 연관된(associated) 모션 벡터 차 (motion vector difference(MVD)) 성분(component)의 범위(range)를 결정하는 단계를 포함하고; 상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한(constrain)하는 단계; 및 MVD 성분의 제한된 범위에 기초하여 상기 변환(conversion)을 수행하는 단계를 포함한다.
또 다른 예시적인 양태에서, 비디오를 처리하는 장치(apparatus)가 개시된다. 장치(apparatus)는 위에 개시된 방법을 수행하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 양태에서, 컴퓨터 판독 가능 매체가 개시된다. 매체에는 위에 개시된 방법의 프로세서 구현을 위한 코드가 저장되어 있다.
이러한 또는 다른 양태가 본 문서에 설명되어 있다.
도 1은 예시적인 인코더(encoder) 블록도를 도시한다.
도 2는 본 문서에서 설명된 하나이상의 방법을 구현하기 위한 예시적인 하드웨어 플랫폼(hardware platform)의 블록도이다.
도 3은 비디오를 처리하는 방법에 대한 예시적인 흐름도이다.
도 4는 비디오를 처리하는 방법에 대한 예시적인 흐름도이다.
도 5는 비디오를 처리하는 방법에 대한 예시적인 흐름도이다.
도 6는 비디오를 처리하는 방법에 대한 예시적인 흐름도이다.
섹션 표제는 이해를 용이하게 하기위해서 본 문서에 사용되었고 섹션에 개시된 실시예를 해당 섹션으로만 제한해서는 안된다. 또한, 특정 실시예가 다용도 비디오 부호화(versatile video coding) 또는 다른 특정 비디오 코덱을 참조하여 설명되지만, 개시된 기술은 또한 다른 비디오 코딩 기술에도 적용가능하다. 또한, 일부 실시예는 비디오 코딩 단계를 상세히 설명하지만, 코딩을 취소하는 디코딩하는 대응하는 단계는 디코더에 의해 구현될 것임을 이해할 것이다. 또한, 비디오 프로세싱(video processing)이라는 용어는 비디오 코딩(video coding) 또는 압축(compression), 비디오 디코딩(video decoding) 또는 압축해제(decompression) 및 하나의 압축된 형식으로부터 다른 압축된 형식으로 또는 다른 압축된 비트레이트(compressed bitrate)의 압축된 형식으로 비디오 픽셀(video pixel)을 표현하는 비디오 트랜스코딩(video transcoding)을 포함(encompass)한다.
1. 요약(summary)
본 특허 문서는 비디오 코딩 기술(video coding technologies)과 관련이 있다. 구체적으로, 비디오 코딩(video coding)에서 인터 코딩 프로세스(inter coding process)와 관련이 있다. 이는 HEVC과 같은 현존하는 비디오 코딩 표준 또는 완성될 비디오 표준(다용도 비디오 부호화(Versatile Video Coding))에 적용될 수 있다. 이는 또한 미래 비디오 코딩 표준(future video coding standards) 또는 비디오 코덱(video codec)에 적용될 수 있다.
2. 초기 논의(Initial discussion)
비디오 코딩 표준(video coding standards)은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H.261 및 H.263을 생성하고 ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 생성(produced)했고, 두 조직들은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 고급 비디오 코딩(Adavanced Video Coding(AVC)) 및 H.265/HEVC 표준을 공동으로(jointly) 생성했다(produced). H.262 이후로, 비디오 코딩 표준은 시간적 예측(temporal prediction)과 변환 코딩(transform coding)이 사용되는 하이브리드 비디오 코딩 구조(hybrid video coding structure)에 기초한다. HEVC를 넘어선 미래 비디오 코딩 기술(future video coding technologies)을 탐색하기 위해 2015년 VCEG와 MPEG가 공동으로 JVET(Joint Video Exploration Team)를 설립했다(founded). 그 이후로 JVET에서 많은 새로운 방법이 채택(adopted)되었고, JEM(Joint Exploration Model)이라는 참조 소프트웨어에 적용됐다. JVET 회의는 분기마다 1회 동시에 개최되며, 새로운 코딩 표준은 HEVC와 비교하여 50% 비트레이트 감소(bitrate reduction)을 목표로하고 있다. 새로운 비디오 코딩 표준은 2018년 4월 JVET 회의에서 공식적으로 다용도 비디오 부호화(Versatile Video Coding(VVC))라고 명명되었고, 당시 VVC 테스트 모델(VTM)의 첫번째 버전이 출시되었다. VVC 표준화(VVC standardization)에 기여하는 지속적인 노력이 있기 때문에, 새로운 코딩 기술이 모든 JVET 회의에서 VVC 표준으로 채택되고 있다. VVC 작업 초안(VVC working draft)와 테스트 모델 VTM은 모든 회의 후에 업데이트 된다. VVC 프로잭트(VVC project)는 현재 2020년 7월 회의에서 기술의 완성(FDIS)를 목표로 하고 있다.
2.1 일반적인 비디오 코덱의 코딩 흐름(coding flow)
도 1은, 3개의 인루프 필터링 블록(in-loop filtering blocks)인 디블로킹 필터(deblocking filter(DF)), 샘플 적응적 오프셋(sample adaptive offset(SAO)) 및 ALF를 포함하는, VVC의 예시적인 인코더(encoder) 블록도를 도시한다. 미리 정의된 필터(predefined filter)를 사용하는 DF와 달리, SAO 및 ALF는, 오프셋 및 필터 계수(filter coefficients)를 시그널링(signaling) 하는 코딩된 부가 정보(side information)로, 각각 오프셋(offset)을 추가하고 유한 임펄스 응답 필터(finite impulse response(FIR) filter)를 적용함으로써, 원본 샘플(original sampel)과 재구성된 샘플(reconstructed sample) 간의 평균 제곱 오차(mean square error)를 줄이기 위해, 현재 화상(current picture)의 원본 샘플(original samples)을 이용(utilize)한다. ALF는 각 화상(picture)의 마지막 프로세싱 단계(last processing stage)에 위치하며(located), 이전 단계에서 생성된(created) 아티팩트(artifacts)를 포착(catch)하고 수정(fix)하는 것을 시도하는 도구(tool)로 간주될 수 있다.
도 1은 인코더(encoder) 블록도의 예시를 도시한다.
2.2 적응적 모션 벡터 해상도(adaptive motion vector resolution(AMVR))
HEVC에서, 모션 벡터 차(motion vector differences(MVDs))(모션 벡터와 CU의 예측 모션 벡터 사이)는, 슬라이스 헤더(slice header)에서 use_integer_mv_flag이 0이면, 쿼터-루마-샘플의 유닛(units of quarter-luma-sample)으로 시그널링(signalled)된다. VVC에서, CU-레벨(CU-level) 적응적 모션 벡터 해상도(AMVR) 방식이 소개된다. AMVR은 CU의 MVD가 상이한 정밀도(different precision)로 코딩되도록 한다. 현재 CU에 대한 모드(일반 AMVP 모드(normal AMVP mode) 또는 아핀 AVMP 모드(affine AVMP mode))에 따라, 현재 CU의 MVD는 다음에 따라 적응적으로 선택될 수 있다:
-일반 AMVP 모드: 쿼터-루마-샘플(quarter-luma-sample), 정수-루마-샘플(integer-luma-sample) 또는 4-루마-샘플(four-luma-sample)
-아핀 AMVP 모드: 쿼터-루마-샘플(quarter-luma-sample), 정수-루마-샘플(integer-luma-sample) 또는 1/16-루마-샘플(1/16-luma-sample)
CU-레벨 MVD 해상도 지시(CU-level MVD resolution indication)는, 현재 CU가 적어도 하나의 0이 아닌 MVD 성분(non-zero MVD component)을 가지는 경우, 조건적으로(conditionally) 시그널링된다. 모든 MVD 성분(즉, 참조 리스트 L0(reference list L0)과 참조 리스트 L1(reference list L1)에 대한 수평(horizontal) 및 수직(verical) MVD 모두) 0인 경우, 쿼터-루마-샘플 MVD 해상도가 추론(infer)된다.
적어도 하나의 0이 아닌 MVD 성분을 갖는 CU에 대해, 제1 플래그(first flag)가 쿼터-루마-샘플 MVD 정밀도가 CU에 대해 사용되는지 여부를 지시(indicate)하기 위해서 시그널링된다. 제1 플래그가 0인 경우, 추가 시그널링(signaling)이 필요하지 않고, 쿼터-루마-샘플 MVD 정밀도(quarter-luma-sample MVD precision)가 현재 CU에 대해 사용된다. 반면에, 제2 플래그(second flag)는, 정수-루마-샘플(integer-luma-sample) 또는 4-루마-샘플 MVD 정밀도(four-luma-sample MVD precision)가 일반 AMVP CU에 사용되는지 여부를 지시(indicate)하기 위해 시그널링된다. 같은 제2 플래그는, 정수-루마-샘플 또는 1/16-루마-샘플 MVD 정밀도(1/16-luma-sample MVD precision)가 아핀 AMVP(affine AMVP)에 대해 사용되는지 여부를 지시하기 위해 사용된다. 재구성된 MV(reconstructed MV)가 의도한 정밀도(intended precision)(쿼터-루마-샘플, 정수-루마-샘플 또는 4-루마-샘플)를 갖는 것을 보장(ensure)하기 위해, CU에 대한 모션 벡터 예측자(motion vector predictors)는 MVD와 함께 추가되기 전에 MVD와 같은 정밀도로 반올림(round)된다. 모션 벡터 예측자는 0(즉, 음의 모션 벡터 예측자(negative motion vector predictor)는 양의 무한대(positive infinity)를 향하여 반올림되고, 양의 모션 벡터 예측자(positive motion vector predictor)는 음의 무한대(negative infinity)를 향하여 반올림된다)을 향하여(toward) 반올림된다.
인코더(encoder)는 RD 검사(RD check)를 사용하여 현재 CU(current CU)에 대한 모션 벡터 해상도(motion vector resolution)를 결정한다. 각 MVD 해상도에 대해 항상 CU-레벨 RD 검사(CU-level RD check)를 3번 수행(perform)하는 것을 피하기(avoid) 위하여, VTM4에서, 쿼터-루마-샘플 이외의 MVD 정밀도(MVD precision)에 대한 RD 검사는 조건적으로(conditionally) 적용(invoke)된다. 일반 AVMP 모드에 대해, 쿼터-루마-샘플 MVD 정밀도(quarter-luma-sample MVD precision)와 정수-루마-샘플 MV 정밀도(integer-luma-sample MV precision)의 RD 비용(RD cost)이 먼저 계산(compute)된다. 그런 다음, 4-루마-샘플 MVD 정밀도(four-luma sample MVD precision)의 RD 비용을 추가로 확인할 필요가 있는지 여부를 결정하기 위해서, 정수-루마-샘플 MVD 정밀도(integer-luma-sample MVD precision)의 RD 비용이 쿼터-루마-샘플 MVD precision)의 RD 비용과 비교(compare)된다. 쿼터-루마-샘플 MVD 정밀도에 대한 RD 비용이 정수-루마-샘플 MVD 정밀도의 RD 비용보더 더 작으면, 4-루마-샘플 MVD 정밀도의 RD 검사는 생략(skip)된다. 아핀 AMVP 모드에 대해, 아핀 병합/생략 모드(affine merge/skip mode), 병합/생략 모드(merge/skip mode), 쿼터-루마 샘플 MVD 정밀도 일반 AMVP 모드(quarter-luma sample MVD precision normal AMVP mode) 및 쿼터-루마 샘플 MVD 정밀도 아핀 AMVP 모드(quarter-luma sample MVD precision affine AMVP mode)의 비율-왜곡(rate-distortion) 비용을 검사(check)한 후 아핀 인터 모드(affine inter mode)가 선택되지 않으면, 1/16 루마-샘플 MV 정밀도(1/16 luma-sample MV precision) 및 1-펠 MV 정밀도 아핀 인터 모드(1-pel MV precision affine inter modes)는 검사되지 않는다. 또한, 1/16 루마-샘플 및 쿼터-루마-샘플 MV 정밀도 아핀 인터 모드에서, 쿼터-루마-샘플 MV 정밀도 아핀 인터 모드에서 얻어진(obtained) 아핀 파라미터(affine parameters)는 시작 조사 포인트(starting search point)로 사용된다.
2.3 VVC에서 아핀 AMVP 예측(Affine AMVP prediction)
아핀 AMVP 모드(Affine AMVP mode)는 폭(width)와 높이(height)모두가 16보다 크거나 같은 CU에 대해 적용(apply)될 수 있다. CU 레벨의 아핀 플래그(affine flag)는 아핀 AMVP 모드가 사용되는지 여부를 지시하기 위해 비트스트림(bitstream)에서 시그널링되고, 그 다음 다른 플래그(another flag)는 4-파라미터 아핀(4-parameter affine) 또는 6-파라미터 아핀(6-parameter affine)인지 여부를 지시(indicate)하기 위해 시그널링된다. 이 모드에서, 현재 CU의 CPMV와 그들의 예측자 CPMVP(predictors CPMVPs)의 차(difference)는 비트스트림(bitstream)에서 시그널링된다. 아핀 AVMP 후보 목록 크기(affine AVMP candidate list size)는 2이고 이는 다음 4가지 형식의 CPVM 후보를 순서대로 사용하여 형성된다:
1) 이웃 CU(neighbour CU)의 CPMV로부터 추론된(extrapolated) 상속된(유래된) 아핀 AMVP 후보(inherited affine AMVP candidates)
2) 이웃 CU의 번역 MV(translational MV)를 사용하여 유도(derive)된 구성된 아핀 AMVP 후보 CPMVP(constructed affine AMVP candidates)
3) 이웃하는 CU(neighboring CU)의 번역 MV
4) 영 MV(zero MVs)
상속된 아핀 AMVP 후보(inherited affine AMVP candidates)의 확인 순서(checking order)는 상속된 아핀 병합 후보(inherited affine merge candidates)의 확인 순서와 같다. 유일한 차이는, AVMP 후보의 경우, 현재 블록(current block)에서와 같은 동일한 참조 화상(reference picture)을 갖는 아핀 CU(affine CU)만이 고려(consider)된다는 것이다. 상속된 후보 모션 예측자(inherited affine motion predictor)를 후보 목록(candidate list)에 삽입(insert)할 때, 가지치기 프로세스(pruning process)는 적용되지 않는다.
구성된 AMVP 후보(constructed AMVP 후보)는 지정된 공간 이웃(spatial neighbors)로부터 유도된다. 게다가, 이웃하는 CU의 참조 화상 인덱스(reference picture index) 또한 검사(check)된다. 인터 코딩(inter coded)되고 현재 CU에서와 같은 동일한 참조 화상(reference picture)을 갖는 검사 순서(checking order)의 제1 블록(first block)이 사용된다. 현재 CU가 4-파라미터 아핀 모드(4-parameter affine mode)로 코딩되고,
Figure pct00002
Figure pct00003
가 모두 사용가능한 경우, 이는 아핀 AMVP 목록(affine AMVP list)에 하나의 후보로 추가된다. 현재 CU가 6-파라미터 아핀 모드(6-parameter affine mode)로 코딩되고 모든 3가지 CPMV가 사용가능한 경우, 아핀 AMVP 목록의 하나의 후보로 추가된다. 그렇지 않으면, 구성된 AMVP 후보가 사용 불가능(unavailable)하게 설정(set)된다.
상속된 아핀 AMVP 후보와 구성된 AMVP 후보를 검사한 후 아핀 AMVP 목록 후보(affine AMVP list candidates)가 여전히 2보다 작으면, 사용가능한(available) 경우, 현재 CU의 모든 제어 포인트 MV(control point MV)를 예측(predict)하기 위해 번역 MV로
Figure pct00004
,
Figure pct00005
Figure pct00006
가 순서대로 추가된다. 마지막으로, 아핀 AMVP 목록(affine AMVP list)이 여전히 차지(full) 않으면, 영 MV(zero MVs)가 채우기 위해서 사용된다.
2.4 VVC에서 MVD(MMVD)와 병합 모드(merge mode)
암시적으로(implicitly) 유도된 모션 정보(motion information)가 현재 CU의 예측 샘플 생성(prediction samples generation)에 직접(directly) 사용되는 병합 모드에 더하여, 모션 벡터 차(MMVD)가 있는 병합 모드가 VVC에 도입(introduce)된다. MMVD 플래그(MMVD flag)는, CU에 대해 MMVD 모드(MMVD mode)가 사용되는지 여부를 지정하기 위해서 생략 플래그(skip flag)와 병합 플래그(merge flag)를 전송(send)한 직후 시그널링(signaled)된다.
MMVD에서, 병합 후보(merge candidate)가 선택(select)된 후, 시그널링된 MVD 정보(MVD information)에 의해서 정제(refine)되나. 추가 정보는, 병합 후보 플래그(merge candidate flag), 모션 크기(motion magnitude)를 지정하기 위한 인덱스(index) 및 모션 방향(motion direction) 표시를 위한 인덱스를 포함한다. MMVD 모드에서, 병합 목록(merge list)에서 처음 2개의 후보 중 하나가 MV 기반(MV basis)로 사용되기 위해 선택된다. 병합 후보 플래그는 어느 것이 사용되는지 지정하기 위해 시그널링된다.
거리 인덱스(distance index)는 모션 크기 정보(motion magnitude information)를 지정(specify)하고 시작 포인트(starting point)로부터 미리 정의된 오프셋(pre-determined offset)을 지시한다. 오프셋(offset)은 시작 MV(starting MV)의 수평 성분(horizontal component) 또는 수직 성분(vertical component)중 어느 하나에 추가된다. 거리 인덱스와 미리 정의된 오프셋의 관계는 표 1에서 지정된다.
VVC에는, spss 레벨(spss level)에서 분수 MMVD 오프셋 on/off(fractional MMVD offset on/off)를 위한 SPS 플래그(SPS flag) sps_fpel_mmvd_enabled_flag가 있다. 그리고 타이틀 그룹 헤더 레벨(title group header level)에서 “SCC/UHD 프레임(SCC/UHD frame)"을 위한 분수 MMVD 오프셋 on/off를 제어하기 위한 타일 그룹 플래그(tile group flag) tile_group_fpel_mmvd_enabled_flag가 있다. 분수 MVD(fractional MVD)가 활성화되면, 표 1에서 기본 거리 테이블(default distance table)이 사용된다. 그렇지 않으면, 표 1의 기본 거리(default distance)에서 모든 오프셋 요소(offset element)는 왼쪽으로 2만큼 이동(shift)한다.
[표 1]
Figure pct00007
방향 인덱스(direction index)는, 시작 포인트와 관련된 MVD의 거리를 표현한다. 방향 인덱스는 표 2에서 도시된 바와 같이 4개의 방향을 표현할 수 있다. MVD 부호(MVD sign)의 의미는 시작 MV(starting MV)의 정보에 따라 달라질 수 있음에 주목한다. 시작 MV가 비 예측 MV(un-prediction MV)이거나 두 목록이 있는 이중 예측 MV(bi-prediction MV)가 현재 화상(current picture)(즉, 두 참조(reference)의 POC 모두가 현재 화상의 POC 보다 크거나, 현재 화상의 POC보다 모두 작다)의 같은 측을 가리키는(point) 경우, 표 2의 부호는 시작 MV에 추가되는 MV 오프셋(MV offset)의 부호를 지정한다. 시작 MV가 현재 화상(즉, 한 참조(reference)의 POC가 현재 화상의 POC 보다 크고, 다른 참조의 POC가 현재 화상의 POC보다 작다)의 상이한 측을 가리키는 두개의 MV가 있는 이중 예측 MV인 경우, 표 2의 부호는 시작 MV의 목록0 MV 성분(list0 MV component)에 추가되는 MV 오프셋의 부호를 지정하고, 목록1 MV(list1 MV)에 대한 부호(sign)는 반대 값을 갖는다.
[표 2]
Figure pct00008
2.5 VVC에서 인트라 블록 카피(intra block copy)(IBC)
인트라 블록 카피(IBC)는 SCC상의 HEVC 확장(HEVC extensions)에 채택된 도구(tool)이다. 이것은 스크린 콘텐츠 자료(screen content materials)의 코딩 효율(coding efficiency)을 크게 향상시키는 것으로 잘 알려져있다. IBC 모드(IBC mode)는 블록 레벨 코딩 모드(block level coding mode)로 구현되므로, 인코더에서 각 CU에 대해 최적의 블록 벡터(optimal block vector)(또는 모션 벡터)를 찾기 위해서 블록 매칭(block matching(BM))이 수행(perform)된다. 여기서 블록 벡터(block vector)는, 현재 블록(current block)에서 현재 화상 내부에 이미 재구성된(reconstructed) 참조 블록(reference block)으로의 변위(displacement)를 지시(indicate)하기 위해 사용된다.
VVC에서, IBC-코딩된 CU(IBC-coded CU)의 루마 블록 벡터(luma block vector)는 정수 정밀도(integer precision)에 있다. 크로마 블록 벡터(chroma block vector) 또한 정수 정밀도(integer precision)로 반올림(round)된다. AMVR과 결합된 경우, IBC 모드(IBC mode)는 1-펠(1-pel) 과 4-펠 모션 벡터 정밀도(4-pel motion vector precision) 간에 전환(switch)할 수 있다. IBC-코딩된 CU는 인트라(intra) 또는 인터 예측 모드(inter prediction modes)이외의 제3 예측 모드(third prediction mode)로 취급된다. IBC 모드는 폭과 너비가 모두 64 루마 샘플(64 luma samples)보다 작거나 같은 CU에 적용할 수 있다.
IBC 모드는 현재 화상 참조 모드(current picture reference(CPR) mode)라고도 알려져 있다.
2.6 VVC 사양/작업 초안(VVC specification/working draft)에서 모션 벡터 차
다음의 문자들은 VVC 작업 초안으로부터 추출되었다.
7.3.6.8 모션 벡터 차 구문
Figure pct00009
7.3.6.7 병합 데이터 구문
Figure pct00010
7.4.3.1 시퀀스 파라미터 세트 RBSP 시맨틱(sequence parameter set RBSP semantics)
1과 동일한 sps_amvr_enabled_flag는 적응적 모션 벡터 차 해상도(adaptive motion vector difference resolution)가 모션 벡터 코딩(motion vector coding)에 사용됨을 지정한다. 0과 동일한 amvr_enabled_flag은 적응적 모션 벡터 차 해상도가 모션 벡터 코딩에 사용되지 않음을 지정한다.
1과 동일한 sps_affine_amvr_enabled_flag는 아핀 인터 모드(affine inter mode)의 모션 벡터 코딩에 적응적 모션 벡터 차 해상도가 사용됨을 지정한다. 0과 동일한 sps_affine_amvr_enabled_flag는 아핀 인터 모드(affine inter mode)의 모션 벡터 코딩에 적응적 모션 벡터 차 해상도가 사용되지 않음을 지정한다.
1과 동일한 sps_fpel_mmvd_enabled_flag는 모션 벡터 차(motion vector difference)가 있는 병합 모드(merge mode)가 정수 샘플 정밀도(integer sample precision)를 사용하고 있음을 지정한다. 0과 동일한 sps_fpel_mmvd_enabled_flag는 모션 벡터 차(motion vector difference)가 있는 병합 모드(merge mode)가 분수 샘플 정밀도(integer sample precision)를 사용할 수 있음을 지정한다.
7.4.5.1 일반 타일 그룹 헤더 시맨틱(general tile group header semantics)
1과 동일한 tile_group_fpel_mmvd_enabled_flag는 모션 벡터 차가 있는 병합 모드가 현재 타일 그룹(current tile group)에서 정수 샘플 정밀도를 사용함을 지정한다. 0과 동일한 tile_group_fpel_mmvd_enabled_flag는 모션 벡터 차가 있는 병합 모드가 현재 타일 그룸에서 분수 샘플 정밀도를 사용할 수 있음 지정한다. 존재하지 않으면, tile_group_fpel_mmvd_enabled_flag는 0으로 추론된다.
7.4.7.5 코딩 유닛 시맨틱(coding unit semantics)
amvr_flag[ x0 ][ y0 ]은 모션 벡터 차의 해상도를 지정한다. 어레이 인덱스 x0, y0(array indices x0, y0)는 화상(picture)의 좌상단 루마 샘플(top-left luma sample)과 관련이 있는 고려된 코딩 블록(considered coding block)의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다. 0과 동일한 amvr_flag[ x0 ][ y0 ]은 모션 벡터 차의 해상도가 루마 샘플(luma sample)의 1/4임을 지정한다. 1과 동일한 amvr_flag[ x0 ][ y0 ]은 모션 벡터 차의 해상도가 amvr_precision_flag[ x0 ][ y0 ]에 의하여 추가로 지정됨을 지정한다.
amvr_flag[ x0 ][ y0 ]가 존재하지 않으면, 다음과 같이 추론된다:
-CuPredMode[ x0 ][ y0 ]이 MODE_IBC와 동일한 경우, amvr_flag[ x0 ][ y0 ]은 1과 동일한 것으로 추론된다.
-반면에 (CuPredMode[ x0 ][ y0 ]이 MODE_IBC와 동일하지 않은 경우), amvr_flag[ x0 ][ y0 ]는 0과 동일한 것으로 추론된다.
0과 동일한 amvr_precision_flag[ x0 ][ y0 ]은, inter_affine_flag[ x0 ][ y0 ]이 0과 동일하면, 모션 벡터 차의 해상도가 하나의 정수 루마 샘플(integer luma sample)임을 지정하고, 그렇지 않으면 루마 샘플의 1/16임을 지정한다. 1과 동일한 amvr_precision_flag[ x0 ][ y0 ]은, inter_affine_flag[ x0 ][ y0 ]이 0과 동일하면, 모션 벡터 차의 해상도가 4개의 루마 샘플임을 지정하고, 그렇지 않으면 1개의 정수 루마 샘플임을 지정한다. 어레이 인덱스 x0, y0는 화상의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0,y0)를 지정한다.
amvr_precision_flag[ x0 ][ y0 ]이 존재하지 않는 경우, 0과 동일한 것으로 추론된다.
모션 벡터 차는 다음과 같이 수정된다:
-inter_affine_flag[ x0 ][ y0 ]가 0과 동일하면, 변수 MvShift가 유도되고, 변수 MvdL0[ x0 ][ y0 ][ 0 ], MvdL0[ x0 ][ y0 ][ 1 ], MvdL1[ x0 ][ y0 ][ 0 ], MvdL1[ x0 ][ y0 ][ 1 ]는 다음과 같이 수정된다:
Figure pct00011
-반면에 (inter_affine_flag[ x0 ][ y0 ]이 1과 동일하면), 변수 MvShift 이 유도되고, 변수 MvdCpL0[ x0 ][ y0 ][ 0 ][ 0 ], MvdCpL0[ x0 ][ y0 ][ 0 ][ 1 ], MvdCpL0[ x0 ][ y0 ][ 1 ][ 0 ], MvdCpL0[ x0 ][ y0 ][ 1 ][ 1 ], MvdCpL0[ x0 ][ y0 ][ 2 ][ 0 ] 및 MvdCpL0[ x0 ][ y0 ][ 2 ][ 1 ]는 다음과 같이 유도된다:
Figure pct00012
7.4.7.7 병합 데이터 시맨틱
merge_flag[ x0 ][ y0 ]은 현재 코딩 유닛(current coding unit)에 대한 인터 예측 파라미터(inter prediction parameters)가 이웃하는(neighbouring) 인터-예측된 파티션(inter-predicted partition)으로부터 추론되는지 여부를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
merge_flag[ x0 ][ y0 ]이 존재하지 않는 경우, 다음과 같이 추론된다:
-cu_skip_flag[ x0 ][ y0 ]이 1과 동일하면, merge_flag[ x0 ][ y0 ]는 1과 동일한 것으로 추론된다.
-그렇지 않으면, merge_flag[ x0 ][ y0 ]은 0과 동일한 것으로 추론된다.
1과 동일한 mmvd_flag[ x0 ][ y0 ]은, 모션 벡터 차(motion vector difference)가 있는 병합 모드(merge mode)가 현재 코딩 유닛(current coding unit)의 인터 예측 파라미터(inter prediction parameters)를 생성(generate)하기 위해 사용됨을 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
mmvd_flag[ x0 ][ y0 ]가 존재하지 않는 경우, 0과 동일한 것으로 추론된다.
mmvd_merge_flag[ x0 ][ y0 ]은 병합 후보 리스트(merging candidate list)의 첫번째(0) 또는 두번째(1) 후보가 mmvd_distance_idx[ x0 ][ y0 ]와 mmvd_direction_idx[ x0 ][ y0 ]로부터 유도된 모션 벡터 차와 함께 사용되는지 여부를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
mmvd_distance_idx[ x0 ][ y0 ] 는 표 7-11에서 지정된 대로 MmvdDistance[ x0 ][ y0 ]를 유도하기 위해 사용되는 인덱스(index)를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
[표 7-11]
Figure pct00013
mmvd_direction_idx[ x0 ][ y0 ]는 표 7-12에서 지정된 대로 MmvdSign[ x0 ][ y0 ]를 유도(derive)하기 위해 사용되는 인덱스(index)를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
[표 7-12]
Figure pct00014
병합 플러스 MVD offset(merge plus MVD offset) MmvdOffset[ x0 ][ y0 ]의 양 성분(both components)은 다음과 같이 유도된다:
Figure pct00015
merge_subblock_flag[ x0 ][ y0 ]은, 현재 코딩 유닛(current coding unit)에 대한 서브블록-기초 인터 파라미터(subblock-based inter prediction)이 이웃하는 블록으로부터 추론되는지 여부를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다. merge_subblock_flag[ x0 ][ y0 ]가 존재하지 존재하지 않는 경우, 0과 동일한 것으로 추론(infer)된다.
merge_subblock_idx[ x0 ][ y0 ]는 서브블록-기초 병합 후보 목록(subblock-based merging candidate list)의 병합 후보 인덱스(merging candidate index)를 지정하고, 여기서 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
merge_subblock_idx[ x0 ][ y0 ]가 존재하지 않는 경우, 0과 동일한 것으로 추론된다.
ciip_flag[ x0 ][ y0 ]는 결합된 인터-화상 병합(combined inter-picture merge) 및 인트라-화상 예측(intra-picture prediction)이 현재 코딩 유닛에 대해 적용되는지 여부를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
ciip_flag[ x0 ][ y0 ]이 존재하지 않는 경우, 0과 동일한 것으로 추론된다.
구문 요소(syntax element) ciip_luma_mpm_flag[ x0 ][ y0 ] 및 ciip_luma_mpm_idx[ x0 ][ y0 ]은, 결합된 인터-화상 병합(combined inter-picture merge) 및 인트라-화상 예측(intra-picture prediction)에 사용되는 루마 샘플에 대한 인트라 예측 모드(intra prediction mode)를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다. 인트라 예측 모드는 절 8.5.6.에 따라 유도 된다.
ciip_luma_mpm_flag[ x0 ][ y0 ]가 존재하지 않는 경우, 다음과 같이 추론된다.
-cbWidth가 2 * cbHeight보다 크거나 cbHeight가 2 * cbWidth보다 크면, ciip_luma_mpm_flag[ x0 ][ y0 ]는 1과 동일한 것으로 추론된다.
-그렇지 않으면, ciip_luma_mpm_flag[ x0 ][ y0 ]는 0과 동일한 것으로 추론된다.
1과 동일한 merge_triangle_flag[ x0 ][ y0 ]은, 현재 코딩 유닛(current coding unit)에 대해, B 타일 그룹(B tile group)을 디코딩하는 경우, 삼각형 형상 기반 모션 보상(triangular shape based motion compensation)이 현재 코딩 유닛의 예측 샘플(prediction samples)를 생성하기 위해서 사용된다는 것을 지정한다. 0과 동일한 merge_triangle_flag[ x0 ][ y0 ]은, 코딩 유닛이 삼각형 형상 기반 모션 보상에의해서 예측되지 않음을 지정한다. merge_triangle_flag[ x0 ][ y0 ]가 존재하지 않으면, 0과 동일한 것으로 추론된다.
merge_triangle_split_dir[ x0 ][ y0 ]는 병합 삼각형 모드(merge triangle mode)의 분할 방향(splitting direction)을 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
merge_triangle_split_dir[ x0 ][ y0 ]이 존재하지 않는 경우, 0과 동일한 값으로 추론된다.
merge_triangle_idx0[ x0 ][ y0 ]는 삼각형 형상 기반 모션 보상 후보 목록(triangular shape based motion compensation candidate list)의 제1 병합 후보 인덱스(first merging candidate index)를 지정하고, 여기서 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
merge_triangle_idx0[ x0 ][ y0 ]이 존재하지 않는 경우, 0과 동일한 것으로 추론된다.
merge_triangle_idx1[ x0 ][ y0 ]는 삼각형 형상 기반 모션 보상 후보 목록(triangular shape based motion compensation candidate list)의 제1 병합 후보 인덱스(first merging candidate index)를 지정하고, 여기서 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
merge_triangle_idx1[ x0 ][ y0 ]이 존재하지 않는 경우, 0과 동일한 것으로 추론된다.
merge_idx[ x0 ][ y0 ]는 병합 후보 목록(merging candidate list)의 병합 후보 인덱스(merging candidate index)를 지정하고, 여기서 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다.
merge_idx[ x0 ][ y0 ]이 존재하지 않는 경우, 다음과 같이 추론된다:
-mmvd_flag[ x0 ][ y0 ]이 1과 동일하면, merge_idx[ x0 ][ y0 ]는 mmvd_merge_flag[ x0 ][ y0 ]와 동일한 것으로 추론된다.
-반면에, (mmvd_flag[ x0 ][ y0 ]이 0과 동일하면), merge_idx[ x0 ][ y0 ]은 0과 동일한 것으로 추론된다.
7.4.7.8 모션 벡터 차 시맨틱
abs_mvd_greater0_flag[ compIdx ]는 모션 벡터 성분 차(motion vector component difference)의 절대값(absolute value)이 0보다 큰지 여부를 지정한다.
abs_mvd_greater1_flag[ compIdx ]는 모션 벡터 성분 차의 절대값이 1보다 큰지 여부를 지정한다.
abs_mvd_greater1_flag[ compIdx ]가 존재하지 않는 경우, 0과 동일한 것으로 추론된다.
abs_mvd_minus2[ compIdx ] 더하기 2는 모션 벡터 성분 차의 절대값을 지정한다.
abs_mvd_minus2[ compIdx ]가 존재하지 않는 경우, 이는 -1과 동일한 것으로 추론된다.
mvd_sign_flag[ compIdx ]는 다음과 같이 모션 벡터 성분 차의 부호(sign)을 지정한다:
-mvd_sign_flag[ compIdx ]이 0과 동일하면, 대응하는(correspondig) 모션 벡터 성분 차는 양의 값(positive value)을 갖는다.
-반면에 (mvd_sign_flag[ compIdx ]이 1과 동일하면), 대응하는(corresponding) 모션 벡터 성분 차는 음의 값(negative value)을 갖는다.
mvd_sign_flag[ compIdx ]이 존재하지 않는 경우, 0과 동일한 것으로 추론된다.
compIdx = 0..1에 대한 모션 벡터 차 lMvd[ compIdx ]는 다음과 같이 유도 된다:
Figure pct00016
lMvd[ compIdx ]의 값은
Figure pct00017
에서
Figure pct00018
까지의 범위에 있어야 한다.
MotionModelIdc[ x ][ y ]의 값에 따라, 모션 벡터 차가 다음과 같이 유도된다:
-MotionModelIdc[ x ][ y ]이 0과 동일하면, X가 1 또는 0인 변수 MvdLX[ x0 ][ y0 ][ compIdx ]는, 사용할 목록 X 벡터 성분(list X vector component)과 그 예측(prediction) 사이의 차를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다. 수평 모션 벡터 성분 차(horizontal motion vector component difference)는 compIdx = 0으로 할당되고 수직 모션 벡터 성분은 (vertical motion vector component)는 compIdx = 1로 할당된다.
-refList가 0과 동일하면, MvdL0[ x0 ][ y0 ][ compIdx ]는 compIdx = 0..1에 대해 lMvd[ compIdx ]와 동일하게 설정 된다.
-반면에 (refList가 1과 동일하면), MvdL1[ x0 ][ y0 ][ compIdx ]는 compIdx = 0..1에 대해 lMvd[ compIdx ]와 동일하게 설정된다.
-반면에 (MotionModelIdc[ x ][ y ]이 0과 동일하지 않으면), X가 1 또는 0인 변수 MvdCpLX[ x0 ][ y0 ][ cpIdx ][ compIdx ]는, 사용할 목록 X 벡터 성분(list X vector component)과 그 예측(prediction) 사이의 차를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정하고, 어레이 인덱스 cpIdx는 제어 포인트 인덱스(control point index)를 지정한다. 수평 모션 벡터 성분 차(horizontal motion vector component difference)는 compIdx = 0으로 할당되고 수직 모션 벡터 성분은 (vertical motion vector component)는 compIdx = 1로 할당된다.
-refList이 0과 동일하면, MvdCpL0[ x0 ][ y0 ][ cpIdx ][ compIdx ]는 compIdx = 0..1에 대해 lMvd[ compIdx ]와 동일하게 설정(set)된다.
-반면에 (refList이 1과 동일하면), MvdCpL1[ x0 ][ y0 ][ cpIdx ][ compIdx ]는 compIdx = 0..1에 대해 lMvd[ compIdx ]와 동일하게 설정된다.
3. 본 문서에서 설명된 실시예에 의해 해결된 문제의 예
VVC와 같은 일부 코딩 표준에서, 모션 벡터 차(MVD)(motion vector difference)는 항상 쿼터-펠(예를 들어, 1/4-루마 샘플) 해상도(quarter-pel resolution)가 아니다. 그러나, 기존 VVC 작업 초안(VVC working draft)에서, MVD 성분(MVD component)를 항상
Figure pct00019
에서
Figure pct00020
까지의 범위로 클리핑(clip)하는 비트스트림 제한(bitstream constraint)이 있다. 이는 특히, 쿼터-펠이 아닌 MVD 해상도(non-quarter-pel MVD resolution)가 사용되는 동안, 부정확한 MVD 값(inaccurate MVD value)을 초래할 수 있다.
4. 예시적인 실시예 및 기술
아래에 실린 실시예는 일반적인 개념을 설명하기 위한 예시로 고려되어야한다. 이 발명들은 좁은 의미로 해석되어서는 안된다. 더욱이 이 발명들은 어떠한 방식이로든 결합될 수 있다.
이하의 설명에서, “모션 벡터 차(MVD) 성분(motion vector difference(MVD) component)”은 수평 방향(horizontal direction)(예를 들어, x-축을 따라)의 모션 벡터 차 또는 수직 방향(vertical direction)(예를 들어, y-축을 따라)의 모션 벡터 차를 나타낸다.
서브-픽셀 모션 벡터(MV) 표현(sub-pixel motion vector(MV) representation)의 경우, 모션 벡터는 보통 분수 부분(fractional part) 및 정수 부분(integer part)으로 구성된다. MV의 범위가
Figure pct00021
이라고 가정하면, 여기서 M은 양의 정수 값(positive integer value)이고, M = K + L이고, 여기서 K는 MV의 정수 부분의 범위를 나타내고, L은 MV의 분수 부분의 범위를 나타낸다, 여기서 MV는
Figure pct00022
-루마-샘플 정밀도로 표현(represent)된다. 예를 들어, HEVC에서, K = 13, L = 2, 따라서 M = K + L = 15 이다. VVC에서 K = 13, L = 4, 및 M = K + L = 17 이다.
1.MVD 성분의 범위(range of MVD component)는 코덱(codec)의 허용가능한 MVD 해상도/정밀도(allowable MVD resolution/precision)에 의존할 수 있다.
a)하나의 예에서, 같은 범위는 모든 MVD 성분에 적용될 수 있다.
i.하나의 예에서, MVD 성분의 범위는,
Figure pct00023
과 같은, M= 17과 같은, MV 범위의 것과 같다.
b)하나의 예에서, 모든 디코딩된 MVD 성분(decoded MVD component)은 먼저 미리 정의된 정밀도(predefined precision)
Figure pct00024
-루마-샘플 (예를 들어, L = 4)로 스케일링(scale)될 수 있고, 그 다음 미리 정의된 범위
Figure pct00025
(예를 들어, M= 17)로 클리핑(clip)될 수 있다.
c)하나의 예에서, MVD 성분의 범위는 코덱에서 허용가능한 MVD/MV 해상도(allowable MVD/MV resolution)에 의존할 수 있다.
i.하나의 예에서, MVD의 허용가능한 해상도(allowable resoulutions of MVDs)가 1/16-루마-샘플(1/16-luma-sample), 1/4-루마-샘플(1/4-luma-sample), 1-루마-샘플(1-luma-sample) 또는 4-루마-샘플(4-luma-sample)이라고 가정(suppose)하면, MVD 성분의 값은 가장 정밀한(finest) 해상도(예를 들어, 이 모든 가능한 해상도 중 1/16-루마-샘플)에 따라서 클리핑(clipped)/제한(constraint)될 수 있다, 즉, MVD의 값(value of MVD)는, K = 13, L = 4와 같이,
Figure pct00026
의 범위에 있을 수 있다.
2.MVD 성분의 범위는 블록(block)의 코딩된 정보(coded information)에 의존할 수 있음을 제안(propose)한다.
a)하나의 예에서, MVD 성분의 범위의 복수의 세트가 정의될 수 있다.
b)하나의 예에서, 범위는 MV 예측자(MV predictor)/MVD/MV 정밀도(MV precision)에 의존할 수 있다.
i.하나의 예에서, MVD 성분의 MVD 정밀도가
Figure pct00027
-루마-샘플(예를 들어, L = 4, 3, 2, 1, 0, -1, -2, -3, -4 등)이라고 가정하면, MVD의 값(value of MVD)은, K = 13, L = 4, 3, 2, 1, 0, -1, -2, -3, -4과 같은,
Figure pct00028
의 범위로 제한(constrained) 및/또는 클리핑(clip)된다.
ii.하나의 예에서, MVD 성분의 범위는 변수 MvShift에 의존할 수 있고, 여기서 MvShiftSMS는 VVC에서 affine_inter_flag, amvr_flag 및 amvr_precision_flag 로부터 유도될 수 있다.
1.하나의 예에서, MvShift는, affine_inter_flag, amvr_flag, 및/또는 amvr_precision_flag, 및/또는 sps_fpel_mmvd_enabled_flag, 및/또는 tile_group_fpel_mmvd_enabled_flag, 및/또는 mmvd_distance_idx, 및/또는 CuPredMode, 및 등과 같은, 코딩된 정보(coded information)로부터 유도될 수 있다.
c)하나의 예에서, MVD 범위(MVD range)는 블록(block)의 코딩 모드(coding mode), 모션 모델(motion model) 등에 의존할 수 있다.
i.하나의 예에서, MVD 성분의 범위는, 현재 블록의 모션 모델(예를 들어, 사양에서 MotionModelIdc), 및/또는 예측 모드(prediction mode), 및/또는 affine_inter_flag에 의존할 수 있다.
ii.하나의 예에서, 현재 블록의 예측 모드가 MODE_IBC(예를 들어, 현재 블록은 IBC 모드로 코딩된다), MVD의 값은, K = 13, L = 0 과 같은,
Figure pct00029
의 범위에 있을 수 있다.
iii.하나의 예에서, 현재 블록의 모션 모델 인덱스(motion model index)(예를 들어, 사양에서 MotionModelIdc)가 0(예를 들어, 현재 블록이 번역 모션 모델(translational motion model)을 사용하여 예측된다)과 동일하면, MVD의 값은, K = 13, L = 2과 같은,
Figure pct00030
의 범위에 있을 수 있다.
1.대안적으로, 현재 블록의 예측 모드가 MODE_INTER이고, affine_inter_flag이 거짓(false)(예를 들어, 현재 블륵은 번역 모션 모델을 사용하여 예측된다)라면, MVD의 값은, K = 13, L = 2과 같은,
Figure pct00031
의 범위에 있을 수 있다.
iv.하나의 예에서, 현재 블록의 모션 모델 인덱스(motion model index)(예를 들어, 사양에서 MotionModelIdc)가 0(예를 들어, 현재 블록이 아핀 모션 모델(affine motion model)을 사용하여 예측된다)과 동일하지 않으면, MVD의 값은, K = 13, L = 4와 같은,
Figure pct00032
의 범위에 있을 수 있다.
1.대안적으로, 현재 블록의 예측 모드가 MODE_INTER이고 affine_inter_flag가 참(true)(예를 들어, 현재 블록이 아핀 모션 모델(affine motion model)을 사용하여 예측된다)이 라면, MVD의 값은 K = 13, L = 4와 같은,
Figure pct00033
의 범위에 있을 수 있다.
d)디코딩된 MVD 성분(decoded MVD component)에 대한 제한(constraint)을 추가하는 대신, 반올림된 MVD 값(rounde MVD value)에 대한 제한을 추가하는 것이 제안된다.
i.하나의 예에서, 적합성 비트스트림(conformance bitstream)은 반올림된 정수 MVD 값(rounded integer MVD value)이 주어진 범위 내에 있어야함을 충족(satisfy)해야 한다.
1.하나의 예에서, 정수 MVD(디코딩된 MVD가 분수 정밀도(fractional precision)이면, 반올림이 필요하다)는
Figure pct00034
의 범위에 있어야 한다, 예를 들어 K = 13인 경우.
3.디코딩된 MVD 성분의 값은, 비트스트림 제한(bitstream constraint)을 사용하는 것 대신, 시맨틱 해석(semantic interpretation) 동안, 범위(예를 들어, 위에서 설명된 MVD 범위)로 명시적으로(explicitly) 클리핑(clip)될 수 있음이 제안된다.
5. 실시예
5.1 실시예 1
아래의 실시예는 섹션 4의 항목 1에 있는 방법에 대한 것이다.
새롭게 추가된 부분은 이탤릭체로 굵게 하이라이팅되고, VVC 작업 초안으로부터 제거된 부분은
Figure pct00035
하이라이팅 됐다.
7.4.7.8 모션 벡터 차 시맨틱
compIdx = 0..1에 대한 모션 벡터 차 lMvd[ compIdx ]는 다음과 같이 유도된다:
Figure pct00036
Figure pct00037
lMvd[ compIdx ]의 값은 -2 17 부터 2 17  - 1까지의 범위에 있어야 한다.
5.2 실시예 2
아래의 실시예는 섹션 4의 항목 2에 있는 방법에 대한 것이다.
새롭게 추가된 부분은 이탤릭체로 굵게 하이라이팅되고, VVC 작업 초안으로부터 제거된 부분은
Figure pct00038
하이라이팅 됐다.
7.4.7.9 모션 벡터 차 시맨틱
compIdx = 0..1에 대한 모션 벡터 차 lMvd[ compIdx ]는 다음과 같이 유도된다:
Figure pct00039
Figure pct00040
lMvd[ compIdx ]의 값은 -(1<<log2MvdRange)부터 (1<<log2MvdRange) - 1 까지의 범위에 있어야 하고, 여기서 log2MvdRange은 다음과 같이 유도된다:
Figure pct00041
5.3 실시예 3
아래의 실시예는 섹션 4의 항목 2에 있는 방법에 대한 것이다.
새롭게 추가된 부분은 이탤릭체로 굵게 하이라이팅되고, VVC 작업 초안으로부터 제거된 부분은 녹색
Figure pct00042
하이라이팅 됐다.
7.4.7.10 모션 벡터 차 시맨틱
compIdx = 0..1에 대한 모션 벡터 차 lMvd[ compIdx ]는 다음과 같이 유도된다:
Figure pct00043
Figure pct00044
MotionModelIdc[ x ][ y ]이 0과 동일하지 않으면, lMvd[ compIdx ]의 값은 -2 17 부터 2 17  - 1 까지의 범위에 있어야 한다.
그렇지 않으면, lMvd[ compIdx ]의 값은 -2 15 부터 2 15  - 1 까지의 범위에 있어야 한다.
5.4 실시예 4
아래의 실시예는 섹션 4의 항목 2에 있는 방법에 대한 것이다.
새롭게 추가된 부분은 이탤릭체로 굵게 하이라이팅되고, VVC 작업 초안으로부터 제거된 부분은 녹색
Figure pct00045
하이라이팅 됐다.
7.4.7.11 모션 벡터 차 시맨틱
compIdx = 0..1에 대한 모션 벡터 차 lMvd[ compIdx ]는 다음과 같이 유도된다:
Figure pct00046
Figure pct00047
MotionModelIdc[ x ][ y ]이 0과 동일하지 않으면, lMvd[ compIdx ] 의 값은 -2 17 부터 2 17  - 1 까지의 범위에 있어야 한다.
그렇지 않고, CuPredMode[ x0 ][ y0 ] = = MODE_IBC 이면, lMvd[ compIdx ]의 값은 -2 13 부터 2 13  - 1 까지의 범위에 있어야 한다.
그렇지 않으면, lMvd[ compIdx ]의 값은 -2 15 부터 2 15  - 1 까지의 범위에 있어야 한다.
5.5 실시예 5
아래의 실시예는 섹션 4의 항목 3 및 항목 1에 있는 방법에 대한 것이다.
새롭게 추가된 부분은 이탤릭체로 굵게 하이라이팅되고, VVC 작업 초안으로부터 제거된 부분은 녹색
Figure pct00048
하이라이팅 됐다.
7.4.7.12 모션 벡터 차 시맨틱
compIdx = 0..1에 대한 모션 벡터 차 lMvd[ compIdx ]는 다음과 같이 유도된다:
Figure pct00049
Figure pct00050
5.6 실시예 6
아래의 실시예는 섹션 4의 항목 3 및 항목 2에 있는 방법에 대한 것이다.
새롭게 추가된 부분은 이탤릭체로 굵게 하이라이팅되고, VVC 작업 초안으로부터 제거된 부분은 녹색
Figure pct00051
하이라이팅 됐다.
7.4.7.13 모션 벡터 차 시맨틱
compIdx = 0..1에 대한 모션 벡터 차 lMvd[ compIdx ]는 다음과 같이 유도된다:
Figure pct00052
Figure pct00053
MotionModelIdc[ x ][ y ]의 값에 따라서, 모션 벡터 차가 다음과 같이 유도 된다:
-MotionModelIdc[ x ][ y ]이 0과 동일하면, X가 1 또는 0인 변수 MvdLX[ x0 ][ y0 ][ compIdx ]는, 사용할 목록 X 벡터 성분(list X vector component)과 그 예측(prediction) 사이의 차를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정한다. 수평 모션 벡터 성분 차(horizontal motion vector component difference)는 compIdx = 0으로 할당되고 수직 모션 벡터 성분은 (vertical motion vector component)는 compIdx = 1로 할당된다.
- lMvd[ compIdx ] = Clip3( -2 15 , 2 15 - 1, lMvd[ compIdx ])
-refList가 0과 동일하면, MvdL0[ x0 ][ y0 ][ compIdx ]는 compIdx = 0..1에 대해 lMvd[ compIdx ]와 동일하게 설정 된다.
-반면에 (refList가 1과 동일하면), MvdL1[ x0 ][ y0 ][ compIdx ]는 compIdx = 0..1에 대해 lMvd[ compIdx ]와 동일하게 설정된다.
-반면에 (MotionModelIdc[ x ][ y ]이 0과 동일하지 않으면), X가 1 또는 0인 변수 MvdCpLX[ x0 ][ y0 ][ cpIdx ][ compIdx ]는, 사용할 목록 X 벡터 성분(list X vector component)과 그 예측(prediction) 사이의 차를 지정한다. 어레이 인덱스 x0, y0는 화상(picture)의 좌상단 루마 샘플과 관련이 있는 고려된 코딩 블록의 좌상단 루마 샘플의 위치(x0, y0)를 지정하고, 어레이 인덱스 cpIdx는 제어 포인트 인덱스(control point index)를 지정한다. 수평 모션 벡터 성분 차(horizontal motion vector component difference)는 compIdx = 0으로 할당되고 수직 모션 벡터 성분은 (vertical motion vector component)는 compIdx = 1로 할당된다.
- lMvd[ compIdx ] = Clip3( -2 17 , 2 17 - 1, lMvd[ compIdx ])
-refList이 0과 동일하면, MvdCpL0[ x0 ][ y0 ][ cpIdx ][ compIdx ]는 compIdx = 0..1에 대해 lMvd[ compIdx ]와 동일하게 설정(set)된다.
-반면에 (refList이 1과 동일하면), MvdCpL1[ x0 ][ y0 ][ cpIdx ][ compIdx ]는 compIdx = 0..1에 대해 lMvd[ compIdx ]와 동일하게 설정된다.
도 2는 비디오 처리 장치(1000)의 블록도이다. 장치(1000)은 여기에서 설명된 방법들 중 하나 이상을 구현하기 위해 사용될 수 있다. 장치(1000)은 스마트폰(smartphone), 테블릿(tablet), 컴퓨터(computer), 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(1000)은 하나 이상의 프로세서(processors)(1002), 하나 이상의 메모리(memories)(1004) 및 비디오 처리 하드웨어(video processing hardware)(1006)를 포함할 수 있다. 프로세서(들)(1002)는 본 문서에서 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(1004)는 여기서 설명된 방법 및 기술을 구현하는데 사용되는 데이터 및 코드를 저장하기 위해서 사용될 수 있다. 비디오 처리 하드웨어(1006)는 하드웨어 회로에서 본 문서에서 설명된 일부 기술을 구현하기 위해서 사용될 수 있다.
도 3은 비디오(video)를 처리(process)하는 방법(300)의 예시적인 흐름도이다. 방법(300)은, 최대 허용 모션 벡터 해상도(maximum allowed motion vector resolution), 최대 허용 모션 벡터 정밀도(maximum allowed motion vector precision), 또는 비디오 영역(video region)의 속성에 기초하여, 비디오 영역(video region)과 비디오 영역의 비트스트림 표현(bitstream representation) 사이의 변환(conversion) 동안, 비디오의 비디오 영역에 대해 사용되는 모션 벡터 차 값(motion vector difference(MVD) value)의 범위(range)를 결정(determine)하는 단계(302)를 포함한다. 방법(300)은, MVD 값을 이 범위 내로 제한(limit)함으로써 변환(conversion)을 수행(perform)하는 단계(304)를 포함한다.
다음의 솔루션(solution) 목록은, 다른 문제들(problems) 중에서, 본 문서에서 설명된 기술적 문제를 해결할 수 있는 실시예를 제공한다.
1. 비디오를 처리하는 방법은, 최대 허용 모션 벡터 해상도(maximum allowed motion vector resolution), 최대 허용 모션 벡터 정밀도(maximum allowed motion vector precision), 또는 비디오 영역(video region)의 속성에 기초하여, 비디오 영역(video region)과 비디오 영역의 비트스트림 표현(bitstream representation) 사이의 변환(conversion) 동안, 비디오의 비디오 영역에 대해 사용되는 모션 벡터 차 값(motion vector difference(MVD) value)의 범위(range)를 결정(determine)하는 단계; 및 MVD 값을 이 범위 내로 제한(limit)함으로써 변환(conversion)을 수행(perform)하는 단계를 포함한다.
2. 솔루션 1의 방법에 있어서, 상기 범위는, 비디오의 모든 비디오 영역을 변환(conversion)하는 동안 적용되는 방법.
3. 솔루션 1 내지 2 중 어느 하나의 방법에 있어서, 상기 범위는, 비디오 영역에 대한 모션 벡터의 범위와 동일한 방법.
4. 솔루션 1 내지 3 중 어느 하나의 방법에 있어서, 상기 제한(limiting)은, MVD 성분(MVD component)을 정밀도(precision)로 스케일링(scaling)하는 단계; 및 상기 범위에 대하여 상기 스케일링을 클리핑 하는 단계를 포함하는 방법.
5. 솔루션 1 내지 4 중 어느 하나의 방법에 있어서, 상기 비디오 영역의 상기 속성은, 비디오 영역의 코딩된 정보(coded information)을 포함하는 방법.
6. 솔루션 1 내지 5 중 어느 하나의 방법에 있어서, 상기 범위는, 비디오에 대한 복수의 가능한 범위(multiple possible range)의 세트로부터 선택되는 방법.
7. 솔루션 1 내지 4 중 어느 하나의 방법에 있어서, 상기 비디오 영역의 상기 속성은, 비디오의 영역에 대해 사용되는 모션 벡터 예측자(motion vector predictor)의 정밀도(precision)를 포함하는 방법.
8. 솔루션 1 내지 4 중 어느 하나의 방법에 있어서, 상기 비디오 영역의 상기 속성은, MVShift의 값에 대응하고, 여기서 MVShift는 비디오의 영역과 연관(associate)된 변수이고, 여기서 MVShift는 비디오 영역과 연관된 affine_inter_flag, 또는 amvr_flag 또는 amvr_precision_flag에 의존하는 방법.
9. 솔루션 1의 방법에 있어서, 상기 비디오 영역의 상기 속성은 변환(conversion)에 사용되는 코딩 모드(coding mode)에 대응하는 방법.
10. 솔루션 9의 방법에 있어서, 상기 코딩 모드(coding mode)는 인트라 블록 카피 모드(intra block copy mode)이고, 여기서 상기 범위는
Figure pct00054
에 대응(correspond)하고, K 및 L은, 각각 모션 벡터(MV)의 정수 부분(integer part)의 범위 및 MV의 분수 부분(fractional part)의 범위를 표현(represent)하는 정수(integer)인 방법.
11. 솔루션 10의 방법에 있어서, K = 13 및 L = 0인 방법.
12. 솔루션 1의 방법에 있어서, 상기 비디오 영역의 상기 속성은 변환에 사용되는 모션 모델(motion model)에 대응하는 방법.
13. 솔루션 1의 방법에 있어서, 상기 비디오 영역의 상기 속성은 비디오 영역의 모션이 번역 모델(translational model)을 사용하여 모델링(model)된다는 것이고, 결과적으로, 범위는
Figure pct00055
으로 결정(determine)되고, K 및 L은, 각각 모션 벡터(MV)의 정수 부분(integer part)의 범위 및 MV의 분수 부분(fractional part)의 범위를 표현(represent)하는 정수들(integers)인 방법.
14. 솔루션 13에 있어서, K =13, L =2 인 방법.
15. 솔루션 1의 방법에 있어서, 상기 비디오 영역의 상기 속성은 비-번역 모델(non-translational model)을 사용하여 모델링(model)되는 비디오 영역의 모션이고, 결과적으로, 범위는
Figure pct00056
으로 결정(determine)되고, K 및 L은, 각각 모션 벡터(MV)의 정수 부분(integer part)의 범위 및 MV의 분수 부분(fractional part)의 범위를 표현(represent)하는 정수들(integers)인 방법.
16. 솔루션 15의 방법에 있어서, K = 13, L = 4인 방법.
17. 솔루션 1의 방법에 있어서, 상기 제한은, MVD의 반올림된 값(rounded value)를 범위로 제한하는 것을 포함하는 방법.
18. 비디오를 처리하는 방법은, 비디오 영역(video region)과 비디오 영역의 비트스트림 표현(bitstream representation) 사이의 변환(conversion) 동안, 비디오의 비디오 영역에 대해 사용되는 모션 벡터 차 값(motion vector difference(MVD) value)의 범위(range)를 결정(determine)하는 단계; 및 상기 변환에서 수행되는 시맨틱 해석(semantic interpretation) 동안에, 범위 내에 속하도록 MVD 값에 대한 클리핑 동작(clipping operation)을 수행(perform)하는 단계를 포함한다.
19. 솔루션 1 내지 18 중 어느 한 방법에 있어서, 상기 비디오 영역은 비디오 블록에 대응하는 방법.
20. 솔루션 1 내지 19 중 어느 한 방법에 있어서, 상기 변환(conversion)은, 상기 비트스트림 표현(bitstream representation)으로부터 상기 비디오 영역의 픽셀 값들(pixel values)을 생성(generate)하는 단계를 포함하는 방법.
21. 솔루션 1 내지 20 중 어느 한 방법에 있어서, 상기 변환은 상기 비디오 영역의 픽셀 값들 로부터 상기 비트스트림 표현을 생성하는 단계를 포함하는 방법.
22. 예 1 내지 21 중 하나 이상을 구현하도록 구성된 프로세서를 포함하는 비디오를 처리하는 장치.
23. 코드가 저장된 컴퓨터 판독 가능 매체(computer-readable medium), 상기 코드는, 프로세서에 의해 실행(execute)될 때, 프로세서로 하여금, 예 1 내지 21 중 어느 하나 이상의 나열된(recited) 방법을 구현하게 함.
섹션 4에 나열된(listed) 항목들은 위에 나열된 솔루션의 추가 변형(variations)을 제공한다.
도 4는 비디오를 처리하는 방법(400)의 예시적인 흐름도이다. 방법(400)은, 비디오의 제1 블록과 상기 제1 블록의 비트스트림 표현 사이의 변환을 위해, 상기 제1 블록과 연관된 모션 벡터 차(MVD) 성분의 범위를 결정하는 단계(402), 여기서 MVD 성분의 상기 범위는 M=17일 때
Figure pct00057
임; 상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한하는 단계(404); 및 상기 제한된 MVD 성분에 기초하여 상기 변환을 수행하는 단계(406)을 포함한다.
일부 예시들에서, 상기 범위는, 코덱(codec)의 허용가능한 MVD 정밀도(allowable MVD precision) 및/또는 허용가능한 모션 벡터(MV) 정밀도(allowable motion vector(MV) precision)에 적용(adapt)된다.
일부 예시들에서, 상기 허용가능한 MVD 정밀도 및/또는 허용가능한 모션 벡터(MV) 정밀도는 1/16-루마-샘플 정밀도(1/16-luma-sample precision)이다.
일부 예시들에서, 상기 코덱에 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도가 있는 경우, MVD 성분의 상기 범위는, 상기 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도 중 가장 정밀한(finest) 정밀도에 적용된다.
일부 예시들에서, 상기 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도가 1/16-루마-샘플(1/16-luma-sample), 1/4-루마-샘플(1/4-luma-sample), 1-루마-샘플(1-luma-sample) 및 4-루마-샘플(4-luma-sample)을 포함하는 경우, MVD 성분(MVD component)의 상기 범위는 상기 1/16-루마-샘플 정밀도에 적용된다.
일부 예시들에서, MVD 성분의 상기 범위는
Figure pct00058
으로 결정(determine)되고, 여기서 M = K + L이고, K는 상기 MVD 성분의 정수 부분(integer part)을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, 상기 MVD 성분은
Figure pct00059
-루마-샘플 정밀도로 표현(represent)되며, 및/또는 상기 제1 블록과 연관된 MV 성분의 범위는
Figure pct00060
으로 결정되고, 여기서 M = K + L이고, K는 상기 MV 성분의 정수 부분(integer part)을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MV 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, 여기서 상기 MV 성분은
Figure pct00061
-루마-샘플 정밀도로 표현(represent)되며, M, K 및 L은 양의 정수(positive integers)이다.
일부 예시에서, K=13, L=4 및 M=17 이다.
일부 예시들에서, MVD 성분은, 비트스트림(bitstream)으로 코딩(coded)된 디코딩(decoded)/시그널링된(signaled) MVD 성분이거나, 디코딩 프로세스(decoding process)에서 내부 시프팅 동작(internal shifting operation)을 통해 특정 정밀도(certain precision)와 연관되는 변환된 MVD 성분(converted MVD component)이다.
일부 예시들에서, 상기 MVD 성분은, 수평 MVD 성분(horizontal MVD component) 및 수직 MVD 성분(vertical MVD component)을 포함하고, 상기 수평 MVD 성분과 상기 수직 MVD 성분은 같은 범위를 가진다.
일부 예시들에서, 상기 MVD 성분은, 인테그랄 비트(integral bits), 분수 비트(fractional bits) 및 부호 비트(sign bit)로 표현(represent)된다.
일부 예시들에서, 상기 제1 블록과 연관된(associated) MV의 상기 범위는, MVD 성분의 상기 범위와 같다.
도 5는 비디오를 차리하는 방법의 예시적인 흐름도이다. 방법(500)은, 비디오의 제1 블록과 상기 제1 블록의 비트스트림 표현 사이의 변환을 위해, 상기 제1 블록과 연관된 모션 벡터 차(MVD) 성분의 범위를 결정하는 단계(502), 여기서 MVD 성분의 상기 범위는 코덱의 허용가능한 MVD 정밀도 및/또는 허용가능한 모션 벡터(MV) 정밀도에 적용됨; 상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한하는 단계(504); 및 제한된 MVD 성분에 기초하여 상기 변환을 수행하는 단계(506)를 포함한다.
일부 예들에서, 상기 MVD 성분은, 비트스트림으로 코딩된(coded) 디코딩(decoded)/시그널링된(signaled) MVD 성분이거나, 디코딩 프로세스(decoding process)에서 내부 시프팅 동작(internal shifting operation)을 통해 특정 정밀도와 연관되는 변환된 MVD 성분(converted MVD component)이다.
일부 예들에서, 상기 디코딩/시그널링된 MVD 성분은, M=17 일때
Figure pct00062
의 범위에 있을 것이 요구되는 방법이다.
일부 예들에서, 상기 MVD 성분은, 인테그랄 비트(integral bits), 분수 비트(fractional bits) 및 부호 비트(sign bit)로 표현(represented)된다.
일부 예시들에서, MVD 성분의 상기 범위는,
Figure pct00063
으로 결정(determined)되고, M = K + L 이고, K는 상기 MVD 성분의 정수 부분(integer part)을 표현(represent)하기 위해 사용되는 비트 수(number of bit)를 의미(denote)하고, L은 상기 MVD 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, 상기 MVD 성분은
Figure pct00064
-루마-샘플 정밀도로 표현되며, 및/또는, 상기 제1 블록과 연관된 MV 성분의 범위는
Figure pct00065
으로 결정되고, M = K + L 이고, K는 상기 MV 성분의 정수 부분(integer part)을 표현(represent)하기 위해 사용되는 비트 수를 의미(denote)하고, L은 상기 MV 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, 상기 MV 성분은
Figure pct00066
-루마-샘플 정밀도로 표현되며, M, K, 및 L은 양의 정수(positive integers)이다.
일부 예시들에서, 모든 디코딩된 MVD 성분(decoded MVD components)의 값들은 먼저 상기
Figure pct00067
-루마-샘플 정밀도로 스케일링(scale)되고, 그 다음 MVD 성분의 상기 범위
Figure pct00068
로 클리핑(clip)된다.
일부 예시들에서, 상기 코덱(codec)에 복수의 허용가능한 MVD 정밀도(allowable MVD precisions) 및/또는 MV 정밀도(MV precisions)가 있는 경우, MVD 성분의 상기 범위는, 상기 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도 중 가장 정밀한 정밀도에 적용된다.
일부 예시들에서, 상기 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도가, 1/16-루마-샘플 정확도(1/16-luma-sample precision), 1/4-루마-샘플 정확도(1/16-luma-sample precision), 1-루마-샘플 정확도(1-luma-sample precision), 및 4-루마-샘플(4-luma-sample precision)을 포함하는 경우, MVD 성분(MVD component)의 상기 범위는 1/16-루마 샘플 정밀도에 적용되고, MVD 성분의 상기 값은 상기 범위에 있도록 제한(constrain) 및/또는 클리핑(clipped)된다.
일부 예시들에서, K=13, L=4 및 M=17이다.
일부 예시들에서, 상기 MVD 성분은, 수평 MVD 성분과 수직 MVD 성분을 포함하고, 상기 수평 MVD 성분과 상기 수직 MVD 성분은, 같은 범위를 가진다.
일부 예시들에서, 상기 MV의 상기 범위는, MVD 성분의 상기 범위와 같다.
도 6은 비디오를 처리하는 방법(600)의 예시적인 흐름도이다. 방법(600)은, 비디오의 제1 블록과 상기 제1 블록의 비트스트림 표현 사이의 변환을 위해, 상기 제1 블록의 코딩된 정보에 기초하여 상기 제1 블록과 연관된 모션 벡터 차(MVD) 성분의 범위를 결정하는 단계(602); 상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한하는 단계(604); 및 상기 제한된 MVD 성분에 기초하여 상기 변환을 수행하는 단계(606)을 포함한다.
일부 예시들에서, MVD 성분의 상기 범위는, MVD 성분의 범위의 복수의 세트(sets)를 포함한다.
일부 예시들에서, 상기 코딩된 정보는, 모션 벡터(MV) 예측자 정밀도(motion vector(MV) predictor precision), MVD 성분 정밀도(MVD component precision) 및 MV 정밀도(MV precision) 중 적어도 하나를 포함한다.
일부 예시들에서, 상기 MVD 성분의 상기 MVD 정밀도가
Figure pct00069
-루마-샘플(
Figure pct00070
-luma-sample)인 경우, MVD 성분의 상기 범위는
Figure pct00071
의 범위가 되도록 결정되고, MVD 성분의 상기 값은 상기 범위에 있도록 제한(constrain) 및/또는 클리핑(clip)되며, K는 상기 MVD 성분의 정수 부분(integer part)을 표현(represent)하기 위해 사용되는 비트 수를 의미(denote)하고, L은 상기 MVD 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하며, K 및 L은 양의 정수(positive integers)이다.
일부 예시들에서, K는 13이고, L은 4, 3, 2, 1, 0, -1, -2, -3 및 -4 중 하나이다.
일부 예시들에서, 상기 코딩된 정보는, MVD와 연관된 변수 MvShift를 포함하고, 상기 변수 MvShift의 유도(derivation)는, AFFINE이 사용되는지 여부, 및/또는 적응적 모션 벡터 해상도(adaptive motion vector resolution)(AMVR)이 사용되는지 여부, 및/또는 AMVR 정확도, 및/또는 MVD의 정확도, 및/또는 모션 벡터 차(motion vector difference)(MMVD) 정보를 갖는 병합 모드(merge mode), 및/또는 상기 제1 블록의 예측 모드(prediction mode)에 의존한다.
일부 예시들에서, 상기 변수 MvShift는, 상기 코딩된 정보(coded information)에서 inter_affine_flag, amvr_flag, 및 amvr_precision_idx를 포함하는 하나 이상의 구문 요소(syntax elements)로부터 유도(dereive)된다.
일부 예시들에서, 상기 변수 MvShift는, 코딩된 정보에서 inter_affine_flag, amvr_flag, amvr_precision_idx, sps_fpel_mmvd_enabled_flag, ph_fpel_mmvd_enabled_flag, mmvd_distance_idx, 및 CuPredMode를 포함하는 하나 이상의 구문 요소로부터 유도된다.
일부 예시들에서, 상기 코딩된 정보는, 상기 제1 블록의 코딩 모드(coding mode), 모션 모드(motion mode) 및 예측 모드(prediction mode), 그리고 AFFINE/AMVR이 상기 코딩된 정보에 사용되는지 여부를 지시(indicate)하는 하나 이상의 변수(variables) 및/또는 구문 요소를 포함한다.
일부 예시들에서, 상기 제1 블록의 상기 예측 모드가, 상기 제1 블록이 IBC 모드(IBC mode)로 코딩되었음을 지시하는 MODE_IBC인 경우, MVD 성분의 상기 범위는
Figure pct00072
의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되며, K는 상기 MVD 성분의 정수 부분(integer part)을 표현(represent)하기 위해 사용되는 비트 수를 의미(denote)하고, L은 상기 MVD 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, K 및 L은 양의 정수(positive integers)이다.
일부 예시들에서, K=13, 및 L= 0 이다.
일부 예시들에서, 상기 제1 블록의 상기 모션 모델(motion model)의 인덱스(index)가 0인 경우, MVD 성분의 상기 범위는
Figure pct00073
의 범위가 되도록 결정되고, MVP 성분(MVP component)의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑 되고, K는 상기 MVD 성분의 정수 부분(integer part)을 표현(represent)하기 위해 사용되는 비트 수를 의미(denote)하고, L은 상기 MVD 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, K 및 L은 양의 정수(positive integers)이다.
일부 예시들에서, K=13 이고, L=2 이다.
일부 예시들에서, 상기 제1 블록의 상기 예측 모드(prediction mode)가 MODE_INTER이고, affine_inter_flag의 상기 변수가 거짓(false)인 경우, MVD 성분의 상기 범위는
Figure pct00074
의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되며, K는 상기 MVD 성분의 정수 부분(integer part)을 표현(represent)하기 위해 사용되는 비트 수를 의미(denote)하고, L은 상기 MVD 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, K 및 L은 양의 정수(positive integers)이다.
일부 예시들에서, K=13이고, L=2 이다.
일부 예시들에서, 상기 제1 블록의 상기 모션 모델(motion model)의 인덱스가 0이 아닌 경우, MVD 성분의 상기 범위는
Figure pct00075
의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되며, K는 상기 MVD 성분의 정수 부분(integer part)을 표현(represent)하기 위해 사용되는 비트 수를 의미(denote)하고, L은 상기 MVD 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, K 및 L은 양의 정수(positive integers)이다.
일부 예시들에서, K=13이고, L=4이다.
일부 예시들에서, 상기 제1 블록의 상기 예측 모드(prediction mode)가 MODE_INTER이고, affine_inter_flag의 상기 변수가 참(true)인 경우, MVD 성분의 상기 범위는
Figure pct00076
의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되며, K는 상기 MVD 성분의 정수 부분(integer part)을 표현(represent)하기 위해 사용되는 비트 수를 의미(denote)하고, L은 상기 MVD 성분의 분수 부분(fractional part)을 표현하기 위해 사용되는 비트 수를 의미하고, K 및 L은 양의 정수(positive integers)이다.
일부 예시들에서, K=13이고, L=4이다.
일부 예시들에서, 디코딩된 MVD 성분(decoded MVD component)이 분수 정밀도(fractional precision)이면, 상기 디코딩된 MVD 성분은 정수 MVD 성분(integer MVD component)으로 반올림(round)된다.
일부 예시들에서, 상기 반올림된 정수 MVD 성분은, K = 13일때,
Figure pct00077
의 범위에 있다.
일부 예시들에서, 모든 디코딩된 MVD 성분의 값들은, 비트스트림 제약(bitstream constraint)을 사용하는 것 대신, 상기 시맨틱 해석(semantic interpretation) 동안, MVD 성분의 상기 범위로 명시적으로(explicitly) 클리핑된다.
일부 예시들에서, 상기 변환(conversion)은, 상기 비트스트림 표현(bitstream representation)으로부터 비디오의 상기 제1 블록을 생성한다.
일부 예시들에서, 상기 변환은, 비디오의 상기 제1 블록으로부터 상기 비트스트림 표현을 생성(generate)한다.
본 문서에서 나열된 예시들에서, 변환이라는 용어는 현재 비디오 블록(current video block)에 대한 비트스트림 표현(bitstream representation)의 생성 또는 비트스트림 표현으로부터 현재 비디오 블록을 생성하는 것을 지칭할 수 있다. 비트스트림 표현은 연속적인 비트 그룹(contiguous group of bits)을 표현할 필요가 없고, 헤더 필드(header field) 또는 코딩된 픽셀 값 정보(coded pixel value information)을 표현하는 코드워드(codewords)에 포함되는 비트로 분할(divide)될 수 있다.
위의 예시들에서, 적용가능성 규칙(applicability rule)은 미리 정의될 수 있고, 인코더 및 디코딩으로 알려질 수 있다.
본 문서에서 설명된 대로, 개시된 기술들은, 인트라 코딩(intra coding)에서 상이한 코딩 모드(coding mode)의 사용에 관한 고려사항들의 다양한 구현 규칙의 사용을 포함하는 기술을 사용하여, 압축 효율(compression efficiency)을 향상시키는, 비디오 인코더 또는 디코더에 구현될 수 있다는 것이 이해될 것이다.
이 문서에서 설명된, 개시 및 다른 솔루션, 예시, 실시예, 모듈(modules) 및 기능적인 동작(functional operations)은 디지털 전자 회로(digital electronic circuitry), 또는 본 문서에 개시된 구조를 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어 및 그것들의 구조적인 등가물, 또는 그것들 중 하나 이상의 조합으로 구현될 수 있다. 개시된 실시예 또는 다른 실시예는 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 판독가능 매체 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 기계 판독가능 저장 디바이스, 기계 판독 가능 저장 기판, 메모리 디바이스, 기계 판독가능 전파된 신호에 영향을 미치는 물질의 구성, 또는 하나이상의 이들의 결합일 수 있다. 용어 “데이터 처리 장치”는 예를 들어 프로그램가능한 프로세서, 컴퓨터, 또는 복수의 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 디바이스, 및 기계를 아우른다. 장치는 하드웨어에 추가하여 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파된 신호(propagated signal)는 인공적으로 생성된 신호, 예를 들어, 기계 생성 전기, 광학 또는 전자기 신호로, 적절한 수신 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트(script), 또는 코드로도 알려진)은 컴파일(compile)되거나 해석된 언어를 포함하는 프로그래밍 언어의 어떠한 형식으로도 쓰여 질 수 있고, 독립 실행형 프로그램(stand-alone program) 또는 모듈, 성분(component), 서브루틴(subroutine) 또는 컴퓨팅 환경에 사용하기 적절한 다른 유닛을 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램이 반드시 파일 시스템의 파일과 일치하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 하나 이상의 스크립트가 저장된 마크업 언어 문서(markup language document)), 해당 프로그램 전용 단일 파일 또는 복수의 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 부분을 저장하는 파일)을 갖는 파일의 일부에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트 또는 복수의 사이트에 분산되어 있고 통신 네트워크에 의해 상호 연결된 복수의 컴퓨터에서 실행되도록 배포될 수 있다.
이 문서에서 설명된 프로세스 또는 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적 논리 회로, 예를 들어 FPGA(현장 프로그래밍 가능 게이트 어레이) 또는 ASIC(특정 응용 지향 집적 회로)에 의해 수행될 수 있고 장치는 또한 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예를 들어 일반 및 특수 목적 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리(random-acess memory) 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스(예를 들어 자기, 광자기 디스크, 또는 광 디스크)를 포함하고, 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 위해 작동 가능하게 연결된다. 그러나 컴퓨터에는 그러한 장치가 필요하지 않다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 자기 디스크, 예를 들어 내부 하드 디스크(internal hard disk) 또는 이동식 디스크(removable disk); 자기 광 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
이 특허 문서가 많은 세부사항을 포함하고 있지만, 이는 청구될 수 있는 주제 또는 청구될 수 있는 것의 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 기술의 특정 실시예에 특정할 수 있는 기능에 대한 설명으로 해석되어야 한다. 별도 실시예의 맥락에서 이 특허 문서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 하위 조합(subcombination)으로 복수의 실시예에서 구현될 수 있다. 더욱이, 특징이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 초기에 그렇게 청구될 수도 있지만, 청구된 조합의 하나 이상의 특징이 일부 경우에 조합에서 삭제(excise)될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형으로 지시(direct)될 수 있다.
유사하게, 작업이 도면에 특정 순서로 도시되어 있지만, 이는 그러한 작업이 표시된 특정 순서로 또는 순차적인 순서로 수행되어야 하거나, 또는 예시된 모든 작업이 원하는 결과를 달성하기 위해 수행되어야 하는 것으로 이해되어서는 안 된다. 더욱이, 이 특허 문서에 설명된 실시예에서 다양한 시스템 구성요소의 분리가 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현 및 예가 설명되어 있으며, 이 특허 문서에 설명 및 예시된 것을 기반으로 다른 구현, 향상 및 변형이 이루어질 수 있다.

Claims (48)

  1. 비디오를 처리하는 방법에 있어서,
    비디오의 제1 블록과 상기 제1 블록의 비트스트림 표현사이의 변환을 위해, 상기 제1 블록과 연관된 모션 벡터 차(MVD) 성분의 범위를 결정하는 단계 - MVD 성분의 상기 범위는 M=17일 때 [-2M , 2M - 1] 임 - ;
    상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한하는 단계; 및
    상기 제한된 MVD 성분에 기초하여 상기 변환을 수행하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 범위는, 코덱의 허용가능한 MVD 정밀도 및/또는 허용가능한 모션 벡터(MV) 정밀도에 적용되는,
    방법.
  3. 제2항에 있어서,
    상기 허용가능한 MVD 정밀도 및/또는 허용가능한 모션 벡터(MV) 정밀도는 1/16-루마-샘플 정밀도인,
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 코덱에 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도가 있는 경우, MVD 성분의 상기 범위는, 상기 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도 중 가장 정밀한정밀도에 적용되는,
    방법.
  5. 제4항에 있어서,
    상기 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도가,
    1/16-루마-샘플, 1/4-루마-샘플, 1-루마-샘플, 및 4-루마-샘플을 포함하는 경우,
    MVD 성분의 상기 범위는 상기 1/16-루마 샘플 정밀도에 적용되는,
    방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    MVD 성분의 상기 범위는 [-2M , 2M - 1]으로 결정되고, - M = K + L 이고, K는 상기 MVD 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, 상기 MVD 성분은 1/2L-루마-샘플 정밀도로 표현됨 -, 및/또는
    상기 제1 블록과 연관된 MV 성분의 범위는 [-2M , 2M - 1]으로 결정되고 - M = K + L 이고, K는 상기 MV 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MV 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, 상기 MV 성분은 1/2L-루마-샘플 정밀도로 표현됨 -,
    M, K, 및 L은 양의 정수인,
    방법.
  7. 제6항에 있어서,
    K=13, L=4 및 M=17인,
    방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 MVD 성분은,
    비트스트림으로 코딩된 디코딩/시그널링된 MVD 성분이거나,
    디코딩 프로세스에서 내부 시프팅 동작을 통해 특정 정밀도와 연관되는 변환된 MVD 성분인,
    방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 MVD 성분은,
    수평 MVD 성분 및 수직 MVD 성분을 포함하고,
    상기 수평 MVD 성분과 상기 수직 MVD 성분은,
    같은 범위를 가지는,
    방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 MVD 성분은,
    인테그랄 비트, 분수 비트 및 부호 비트로 표현되는,
    방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 제1 블록과 연관된 MV의 상기 범위는,
    MVD 성분의 상기 범위와 같은,
    방법.
  12. 비디오를 처리하는 방법에 있어서,
    비디오의 제1 블록과 상기 제1 블록의 비트스트림 표현 사이의 변환을 위해, 상기 제1 블록과 연관된 모션 벡터 차(MVD) 성분의 범위를 결정하는 단계 - MVD 성분의 상기 범위는 코덱의 허용가능한 MVD 정밀도 및/또는 허용가능한 모션 벡터(MV) 정밀도에 적용됨 -;
    상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한하는 단계; 및
    상기 제한된 MVD 성분에 기초하여 상기 변환을 수행하는 단계
    를 포함하는 방법.
  13. 제12항에 있어서,
    상기 MVD 성분은,
    비트스트림으로 코딩된 디코딩/시그널링된 MVD 성분이거나,
    디코딩 프로세스에서 내부 시프팅 동작을 통해 특정 정밀도와 연관되는 변환된 MVD 성분인,
    방법.
  14. 제13항에 있어서,
    상기 디코딩/시그널링된 MVD 성분은, M=17 일때 [-2M , 2M - 1]의 범위에 있을 것이 요구되는,
    방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 MVD 성분은,
    인테그랄 비트, 분수 비트 및 부호 비트로 표현되는,
    방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서,
    MVD 성분의 상기 범위는, [-2M , 2M - 1]으로 결정되고 - M = K + L 이고, K는 상기 MVD 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, 상기 MVD 성분은 1/2L-루마-샘플 정밀도로 표현됨 -, 및/또는
    상기 제1 블록과 연관된 MV 성분의 범위는 [-2M , 2M - 1]으로 결정되고 - M = K + L 이고, K는 상기 MV 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MV 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, 상기 MV 성분은 1/2L-루마-샘플 정밀도로 표현됨 -,
    M, K, 및 L은 양의 정수인,
    방법.
  17. 제16항에 있어서,
    모든 디코딩된 MVD 성분의 값들은 먼저 상기 1/2L-루마-샘플 정밀도로 스케일링되고, 그 다음 MVD 성분의 상기 범위 [-2M , 2M - 1]로 클리핑되는,
    방법.
  18. 제12항 내지 제17항 중 어느 한 항에 있어서,
    상기 코덱에 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도가 있는 경우, MVD 성분의 상기 범위는, 상기 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도 중 가장 정밀한 정밀도에 적용되는,
    방법.
  19. 제18항에 있어서,
    상기 복수의 허용가능한 MVD 정밀도 및/또는 MV 정밀도가,
    1/16-루마-샘플 정확도, 1/4-루마-샘플 정확도, 1-루마-샘플 정확도, 및 4-루마-샘플을 포함하는 경우,
    MVD 성분의 상기 범위는 1/16-루마 샘플 정밀도에 적용되고, MVD 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되는,
    방법.
  20. 제16항 내지 제19항 중 어느 한 항에 있어서,
    K=13, L=4 및 M=17인,
    방법.
  21. 제12항 내지 제20항 중 어느 한 항에 있어서,
    상기 MVD 성분은,
    수평 MVD 성분과 수직 MVD 성분을 포함하고,
    상기 수평 MVD 성분과 상기 수직 MVD 성분은,
    같은 범위를 갖지는,
    방법.
  22. 제12항 내지 제21항 중 어느 한 항에 있어서,
    상기 MV의 상기 범위는,
    MVD 성분의 상기 범위와 같은,
    방법.
  23. 비디오를 처리하는 방법에 있어서,
    비디오의 제1 블록과 상기 제1 블록의 비트스트림 표현 사이의 변환을 위해, 상기 제1 블록의 코딩된 정보에 기초하여 상기 제1 블록과 연관된 모션 벡터 차(MVD) 성분의 범위를 결정하는 단계;
    상기 MVD 성분의 값을 MVD 성분의 상기 범위에 있도록 제한하는 단계; 및
    MVD 성분의 제한된 범위에 기초하여 상기 변환을 수행하는 단계
    를 포함하는 방법.
  24. 제23항에 있어서,
    MVD 성분의 상기 범위는,
    MVD 성분의 범위의 복수의 세트를 포함하는,
    방법.
  25. 제23항 또는 제24항에 있어서,
    상기 코딩된 정보는,
    모션 벡터(MV) 예측자 정밀도, MVD 성분 정밀도 및 MV 정밀도 중 적어도 하나를 포함하는,
    방법.
  26. 제25항에 있어서,
    상기 MVD 성분의 상기 MVD 정밀도가 1/2L-루마-샘플인 경우,
    MVD 성분의 상기 범위는 [-2K+L , 2K+L - 1]의 범위가 되도록 결정되고, MVD 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되고,
    K는 상기 MVD 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고,
    K 및 L은 양의 정수인,
    방법.
  27. 제26항에 있어서,
    K는 13이고,
    L은 4, 3, 2, 1, 0, -1, -2, -3 및 -4 중 하나인,
    방법.
  28. 제23항 또는 제24항에 있어서,
    상기 코딩된 정보는,
    MVD와 연관된 변수 MvShift를 포함하고,
    상기 변수 MvShift의 유도는,
    AFFINE이 사용되는지 여부, 및/또는 적응적 모션 벡터 해상도(AMVR)이 사용되는지 여부, 및/또는 AMVR 정확도, 및/또는 MVD의 정확도, 및/또는 모션 벡터 차(MMVD) 정보를 갖는 병합 모드, 및/또는 상기 제1 블록의 예측 모드에 의존하는,
    방법.
  29. 제28항에 있어,
    상기 변수 MvShift는,
    상기 코딩된 정보에서 inter_affine_flag, amvr_flag, 및 amvr_precision_idx를 포함하는 하나 이상의 구문 요소로부터 유도되는,
    방법.
  30. 제28항에 있어서,
    상기 변수 MvShift는,
    코딩된 정보에서 inter_affine_flag, amvr_flag, amvr_precision_idx, sps_fpel_mmvd_enabled_flag, ph_fpel_mmvd_enabled_flag, mmvd_distance_idx, 및 CuPredMode를 포함하는 하나 이상의 구문 요소로부터 유도되는,
    방법.
  31. 제23항 및 제24항에 있어서,
    상기 코딩된 정보는,
    상기 제1 블록의 코딩 모드, 모션 모드 및 예측 모드, 그리고 AFFINE/AMVR이 상기 코딩된 정보에 사용되는지 여부를 지시하는 하나 이상의 변수 및/또는 구문 요소를 포함하는,
    방법.
  32. 제31항에 있어서,
    상기 제1 블록의 상기 예측 모드가, 상기 제1 블록이 IBC 모드로 코딩되었음을 지시하는 MODE_IBC인 경우,
    MVD 성분의 상기 범위는 [-2K+L , 2K+L - 1]의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되고,
    K는 상기 MVD 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고,
    K 및 L은 양의 정수인,
    방법.
  33. 제32항에 있어서,
    K=13, 및 L= 0 인,
    방법.
  34. 제30항에 있어서,
    상기 제1 블록의 상기 모션 모델의 인덱스가 0인 경우,
    MVD 성분의 상기 범위는 [-2K+L , 2K+L - 1]의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑 되고,
    K는 상기 MVD 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고,
    K 및 L은 양의 정수인,
    방법.
  35. 제34항에 있어서,
    K=13 이고, L=2 인,
    방법
  36. 제31항에 있어서,
    상기 제1 블록의 상기 예측 모드가 MODE_INTER이고, affine_inter_flag의 상기 변수가 거짓인 경우,
    MVD 성분의 상기 범위는 [-2K+L , 2K+L - 1]의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되고,
    K는 상기 MVD 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고,
    K 및 L은 양의 정수인,
    방법.
  37. 제36항에 있어서,
    K=13이고, L=2 인,
    방법.
  38. 제31항에 있어서,
    상기 제1 블록의 상기 모션 모델의 인덱스가 0이 아닌 경우,
    MVD 성분의 상기 범위는 [-2K+L , 2K+L - 1]의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되고,
    K는 상기 MVD 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고,
    K 및 L은 양의 정수인,
    방법.
  39. 제38항에 있어서,
    K=13이고, L=4인,
    방법
  40. 제31항에 있어서,
    상기 제1 블록의 상기 예측 모드가 MODE_INTER이고, affine_inter_flag의 상기 변수가 참인 경우,
    MVD 성분의 상기 범위는 [-2K+L , 2K+L - 1]의 범위가 되도록 결정되고, MVP 성분의 상기 값은 상기 범위에 있도록 제한 및/또는 클리핑되고,
    K는 상기 MVD 성분의 정수 부분을 표현하기 위해 사용되는 비트 수를 의미하고, L은 상기 MVD 성분의 분수 부분을 표현하기 위해 사용되는 비트 수를 의미하고,
    K 및 L은 양의 정수인,
    방법.
  41. 제40항에 있어서,
    K=13이고, L=4인,
    방법.
  42. 제1항 내지 제41항 중 어느 한 항에 있어서,
    디코딩된 MVD 성분이 분수 정밀도이면,
    상기 디코딩된 MVD 성분은 정수 MVD 성분으로 반올림되는,
    방법.
  43. 제42항에 있어서,
    상기 반올림된 정수 MVD 성분은, K = 13일때, [-2K, 2K - 1]의 범위에 있는,
    방법.
  44. 제1항 내지 제43항 중 어느 한 항에 있어서,
    모든 디코딩된 MVD 성분의 값들은, 비트스트림 제약을 사용하는 것 대신, 시맨틱 해석 동안, MVD 성분의 상기 범위로 명시적으로 클리핑되는,
    방법.
  45. 제1항 내지 제44항 중 어느 한 항에 있어서,
    상기 변환은,
    상기 비트스트림 표현으로부터 비디오의 상기 제1 블록을 생성하는,
    방법.
  46. 제1항 내지 제44항 중 어느 한 항에 있어서,
    상기 변환은,
    비디오의 상기 제1 블록으로부터 상기 비트스트림 표현을 생성하는,
    방법.
  47. 비디오 시스템의 장치에 있어서,
    상기 장치는,
    프로세서, 및
    명령어들이 포함된 비일시적 메모리를 포함하고,
    상기 프로세서에 의한 실행시 상기 명령어들은,
    상기 프로세서로 하여금 제1항 내지 제46항 중 어느 한 항의 방법을 구현하도록 하는,
    장치.
  48. 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램 제품에 있어서,
    제1항 내지 제46항 중 어느 한 항의 방법을 수행하기 위한 프로그램 코드를 포함하는,
    컴퓨터 프로그램 제품.

KR1020217033435A 2019-04-25 2020-04-26 모션 벡터 차에 대한 제한 KR20220002897A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/084228 2019-04-25
CN2019084228 2019-04-25
PCT/CN2020/087068 WO2020216381A1 (en) 2019-04-25 2020-04-26 Restrictions on motion vector difference

Publications (1)

Publication Number Publication Date
KR20220002897A true KR20220002897A (ko) 2022-01-07

Family

ID=72940934

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217033435A KR20220002897A (ko) 2019-04-25 2020-04-26 모션 벡터 차에 대한 제한

Country Status (6)

Country Link
US (2) US11418794B2 (ko)
EP (1) EP3939287A4 (ko)
JP (2) JP7303329B2 (ko)
KR (1) KR20220002897A (ko)
CN (2) CN117676134A (ko)
WO (1) WO2020216381A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023132692A1 (ko) * 2022-01-09 2023-07-13 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11356657B2 (en) * 2018-01-26 2022-06-07 Hfi Innovation Inc. Method and apparatus of affine inter prediction for video coding system
CN117676134A (zh) 2019-04-25 2024-03-08 北京字节跳动网络技术有限公司 对运动矢量差的约束
WO2020256468A1 (ko) * 2019-06-21 2020-12-24 삼성전자 주식회사 주변 움직임 정보를 이용하여 움직임 정보를 부호화 및 복호화하는 장치, 및 방법
JP7436527B2 (ja) 2019-06-25 2024-02-21 北京字節跳動網絡技術有限公司 動きベクトルの差に関する制限
US11218718B2 (en) * 2019-08-26 2022-01-04 Tencent America LLC Adaptive motion vector resolution signaling
US20230116983A1 (en) * 2021-10-20 2023-04-20 Tencent America LLC Methods and devices for restriction on motion vector difference
US20230128502A1 (en) * 2021-10-21 2023-04-27 Tencent America LLC Schemes for Adjusting Adaptive Resolution for Motion Vector Difference
WO2023167439A1 (ko) * 2022-03-03 2023-09-07 현대자동차주식회사 움직임벡터 차분의 유도를 이용하는 비디오 코딩을 위한 방법 및 장치
WO2023219600A1 (en) * 2022-05-07 2023-11-16 Google Llc Motion vector coding using a motion vector precision

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007028393A (ja) 2005-07-20 2007-02-01 Matsushita Electric Ind Co Ltd 双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法
US9060176B2 (en) 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
US20130170553A1 (en) 2012-01-04 2013-07-04 Qualcomm Incorporated Coding motion vector difference
EP2829066B1 (en) * 2012-03-22 2020-07-08 MediaTek Inc. Method and apparatus of scalable video coding
US20150201215A1 (en) 2012-07-27 2015-07-16 Mediatek Inc. Method of constrain disparity vector derivation in 3d video coding
SG10201601307SA (en) * 2012-09-28 2016-03-30 Sony Corp Image processing device and method
US10021414B2 (en) * 2013-01-04 2018-07-10 Qualcomm Incorporated Bitstream constraints and motion vector restriction for inter-view or inter-layer reference pictures
CN103561263B (zh) 2013-11-06 2016-08-24 北京牡丹电子集团有限责任公司数字电视技术中心 基于运动矢量约束和加权运动矢量的运动补偿预测方法
US9854253B2 (en) 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
KR102128216B1 (ko) * 2014-11-20 2020-06-30 에이치에프아이 이노베이션 인크. 모션 벡터 및 블록 벡터 해상도 제어의 방법
KR102617235B1 (ko) 2015-08-24 2023-12-26 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10547847B2 (en) 2015-09-24 2020-01-28 Lg Electronics Inc. AMVR-based image coding method and apparatus in image coding system
KR20180059443A (ko) * 2015-09-24 2018-06-04 엘지전자 주식회사 영상 코딩 시스템에서 움직임 벡터 정제 기반 인터 예측 방법 및 장치
EP3264769A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with automatic motion information refinement
EP3264768A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with adaptive motion information refinement
US11356693B2 (en) 2016-09-29 2022-06-07 Qualcomm Incorporated Motion vector coding for video coding
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
EP3301918A1 (en) * 2016-10-03 2018-04-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
US10979732B2 (en) 2016-10-04 2021-04-13 Qualcomm Incorporated Adaptive motion vector precision for video coding
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
CN109964484B (zh) * 2016-11-22 2021-11-09 联发科技股份有限公司 视频编码中用于运动向量符号预测的方法及装置
CN116320476A (zh) 2016-12-22 2023-06-23 株式会社Kt 对视频进行解码或编码的方法和发送视频数据的方法
BR112020004381A2 (pt) * 2017-09-28 2020-09-08 Samsung Electronics Co., Ltd. método de decodificação de vídeo, aparelho de decodificação de vídeo, método de codificação de vídeo, e aparelho de codificação de vídeo
US10856003B2 (en) 2017-10-03 2020-12-01 Qualcomm Incorporated Coding affine prediction motion information for video coding
CN111919447A (zh) * 2018-03-14 2020-11-10 韩国电子通信研究院 用于对图像进行编码/解码的方法和装置以及存储有比特流的记录介质
TWI731345B (zh) 2018-06-19 2021-06-21 大陸商北京字節跳動網絡技術有限公司 模式相依運動向量差精確集
WO2020031061A2 (en) 2018-08-04 2020-02-13 Beijing Bytedance Network Technology Co., Ltd. Mvd precision for affine
EP4325859A3 (en) 2018-09-19 2024-05-15 Beijing Bytedance Network Technology Co., Ltd. Syntax reuse for affine mode with adaptive motion vector resolution
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
CN117676134A (zh) 2019-04-25 2024-03-08 北京字节跳动网络技术有限公司 对运动矢量差的约束
JP7436527B2 (ja) 2019-06-25 2024-02-21 北京字節跳動網絡技術有限公司 動きベクトルの差に関する制限

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023132692A1 (ko) * 2022-01-09 2023-07-13 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체

Also Published As

Publication number Publication date
EP3939287A1 (en) 2022-01-19
US11418794B2 (en) 2022-08-16
JP2023120345A (ja) 2023-08-29
JP2022529357A (ja) 2022-06-21
WO2020216381A1 (en) 2020-10-29
CN117676134A (zh) 2024-03-08
US20230041150A1 (en) 2023-02-09
CN113785579B (zh) 2023-10-20
CN113785579A (zh) 2021-12-10
US20210385462A1 (en) 2021-12-09
JP7303329B2 (ja) 2023-07-04
EP3939287A4 (en) 2022-05-11
US11909982B2 (en) 2024-02-20

Similar Documents

Publication Publication Date Title
KR20220002897A (ko) 모션 벡터 차에 대한 제한
US20210006790A1 (en) Condition dependent inter prediction with geometric partitioning
JP7322285B2 (ja) クロマデブロックフィルタリングのための量子化パラメータオフセット
CN113287311A (zh) 两步交叉分量预测模式的指示
JP2024054189A (ja) 異なるパーティション構造をもつパレット・モード
US20230076783A1 (en) Selective use of alternative interpolation filters in video processing
JP2022541012A (ja) ビデオコーディングにおける変換ブロック・サイズ制約
US20230074372A1 (en) Restrictions on motion vector difference
JP2024023581A (ja) パレット・エスケープ・シンボルのためのエントロピーコーディング
KR102624438B1 (ko) 팔레트 모드에 대한 양자화 파라미터 도출
WO2021219143A1 (en) Entropy coding for motion precision syntax

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal