KR20190112082A - 비디오 코딩에서의 움직임 벡터(mv) 제약조건 및 변환 제약조건 - Google Patents

비디오 코딩에서의 움직임 벡터(mv) 제약조건 및 변환 제약조건 Download PDF

Info

Publication number
KR20190112082A
KR20190112082A KR1020197025247A KR20197025247A KR20190112082A KR 20190112082 A KR20190112082 A KR 20190112082A KR 1020197025247 A KR1020197025247 A KR 1020197025247A KR 20197025247 A KR20197025247 A KR 20197025247A KR 20190112082 A KR20190112082 A KR 20190112082A
Authority
KR
South Korea
Prior art keywords
current block
final
constraint
block
width
Prior art date
Application number
KR1020197025247A
Other languages
English (en)
Other versions
KR102255665B1 (ko
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 KR20190112082A publication Critical patent/KR20190112082A/ko
Application granted granted Critical
Publication of KR102255665B1 publication Critical patent/KR102255665B1/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/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/55Motion estimation with spatial constraints, e.g. at image or region borders
    • 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/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/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/42Methods 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
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

장치가 메모리; 및 메모리에 연결된 프로세서를 포함한다. 프로세서는 비디오 프레임 내의 현재 블록과 이웃하는 이웃 블록에 대응하는 후보 MV를 획득하고, 후보 MV의 후보 목록을 생성하며, 후보 목록으로부터 최종 MV를 선택하고, 최종 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하도록 구성된다. 장치가 메모리; 및 메모리에 연결된 프로세서를 포함한다. 프로세서는 비디오 프레임 내의 현재 블록과 이웃하는 이웃 블록에 대응하는 후보 MV를 획득하고, 후보 MV의 후보 목록을 생성하며, 후보 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하고, 제약된 MV로부터 최종 MV를 선택하도록 구성된다.

Description

비디오 코딩에서의 움직임 벡터(MV) 제약조건 및 변환 제약조건
본 출원은 퓨쳐웨이 테크놀로지에 의해 2017년 4월 7일에 출원된 미국 임시 특허 출원 번호 제62/483,196호("Constraints for Affine Motion Vectors") 및 퓨쳐웨이 테크놀로지에 의해 2018년 1월 11일에 출원된 미국 임시 특허 출원 번호 제62/616,263호("Constraints for Affine Memory Access")에 대해 각각 우선권을 주장하는, 2018년 4월 3일에 출원된 미국 정규 특허 출원 번호 제15/944,501호("Motion Vector (MV) Constraints and Transformation Constraints in Video Coding")에 대해 우선권을 주장하는 바이며, 그 전체 내용이 본 명세서에 원용되어 포함된다.
본 출원은 비디오 코딩에서의 움직임 벡터(MV) 제약조건 및 변환 제약조건에 관한 것이다.
비디오는 상대적으로 많은 양의 데이터를 사용하며, 그래서 비디오의 통신이 상대적으로 많은 양의 대역폭을 사용한다. 하지만, 많은 네트워크들이 네트워크의 대역폭 용량에서 또는 그 근처에서 작동한다. 또한, 고객이 심지어 더 많은 데이터를 필요로 하는 높은 비디오 품질을 요구한다. 따라서, 데이터 비디오의 양을 줄이면서 비디오 품질을 높이고자 하는 바람이 있다. 한 가지 해결책은 인코딩 과정 중에 비디오를 압축하고, 디코딩 과정 중에 비디오를 압축 해제하는 것이다. 압축 기술과 압축 해제 기술을 개선하는 것이 연구 개발의 초점이다.
일 실시예에서, 본 기재는 메모리; 및 상기 메모리에 연결된 프로세서를 포함하는 장치를 포함하고, 상기 프로세서는 비디오 프레임 내의 현재 블록과 이웃하는 이웃 블록에 대응하는 후보 MV를 획득하고, 상기 후보 MV의 후보 목록을 생성하며, 상기 후보 목록으로부터 최종 MV를 선택하고, 상기 최종 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하도록 구성된다. 일부 실시예에서, 상기 제약조건은 제1 최종 MV와 제2 최종 MV 간의 제1 차이의 제1 절대값이 상기 임계값과 현재 블록의 폭에 기초하여 제1 수량보다 작거나 같다고 규정하고, 상기 제약조건은 추가적으로, 제3 최종 MV와 제4 최종 MV 간의 제2 차이의 제2 절대값이 상기 임계값과 상기 현재 블록의 높이에 기초하여 제2 수량보다 작거나 같다고 규정하며; 상기 제약조건은 제1 최종 MV, 제2 최종 MV, 제3 최종 MV, 제4 최종 MV, 및 상기 현재 블록의 폭에 기초하는 제1 수량의 제1 제곱근이 임계치와 상기 폭에 기초한 제2 수량보다 작거나 같다고 규정하고; 상기 제약조건은 추가적으로, 제5 최종 MV, 제6 최종 MV, 제7 최종 MV, 제8 최종 MV, 및 상기 현재 블록의 높이에 기초한 제3 수량의 제2 제곱근이 상기 임계값과 상기 높이에 기초한 제4 수량보다 작거나 같다고 규정하며; 상기 제약조건은 변환된 블록의 제1 폭, 보간 필터의 길이, 및 상기 변환된 블록의 제1 높이에 기초하는 제1 수량이 임계값, 상기 현재 블록의 제2 폭, 및 상기 현재 블록의 제2 높이에 기초한 제2 수량보다 작거나 같다고 규정하고; 상기 임계값은 단일 예측 또는 이중 예측에 특화되며; 상기 제약조건은 제1 메모리 대역폭과 제2 메모리 대역폭에 정비례하는 수량이 임계값보다 작거나 같다고 규정하고, 상기 수량은 상기 현재 블록의 폭과 상기 현재 블록의 높이에 반비례하며; 상기 제약조건은 변환된 블록의 제1 폭과 상기 현재 블록의 제2 폭 간의 제1 차이가 임계값보다 작거나 같다고 규정하고, 상기 제약조건은 추가적으로, 상기 변환된 블록의 제1 높이와 상기 현재 블록의 제2 높이 간의 제2 차이가 상기 임계값보다 작거나 같으며; 상기 프로세서는 추가적으로, 상기 제약된 MV에 기초하여 MVF를 계산하고; 상기 MVF에 기초하여 MCP를 수행하여 상기 현재 블록에 대한 예측 블록을 생성하고; MV 인덱스를 인코딩하도록 구성되고; 상기 프로세서는 추가적으로, MV 인덱스를 디코딩하고; 상기 제약된 MV에 기초하여 MVF를 계산하며; 및 상기 MVF에 기초하여 MCP를 수행하여 상기 현재 블록에 대한 예측 블록을 생성하도록 구성된다.
다른 실시예에서, 본 기재는 비디오 프레임 내의 현재 블록과 이웃하는 이웃 블록에 대응하는 후보 MV를 획득하는 단계; 상기 후보 MV의 후보 목록을 생성하는 단계; 상기 후보 목록으로부터 최종 MV를 선택하는 단계; 및 상기 최종 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하는 단계를 포함하는 방법을 포함한다.
또 다른 실시예에서, 본 기재는 메모리; 및 상기 메모리에 연결된 프로세서를 포함하는 장치를 포함한다. 상기 프로세서는 비디오 프레임 내의 현재 블록과 이웃하는 이웃 블록에 대응하는 후보 MV를 획득하고, 상기 후보 MV의 후보 목록을 생성하며, 상기 후보 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하고, 상기 제약된 MV로부터 최종 MV를 선택하도록 구성된다. 일부 실시예에서, 상기 제약조건은 제1 최종 MV와 제2 최종 MV 간의 제1 차이의 제1 절대값이 상기 임계값과 현재 블록의 폭에 기초하여 제1 수량보다 작거나 같다고 규정하고, 상기 제약조건은 추가적으로, 제3 최종 MV와 제4 최종 MV 간의 제2 차이의 제2 절대값이 상기 임계값과 상기 현재 블록의 높이에 기초하여 제2 수량보다 작거나 같다고 규정하며; 상기 제약조건은 제1 최종 MV, 제2 최종 MV, 제3 최종 MV, 제4 최종 MV, 및 상기 현재 블록의 폭에 기초하는 제1 수량의 제1 제곱근이 임계치와 상기 폭에 기초한 제2 수량보다 작거나 같다고 규정하고; 상기 제약조건은 추가적으로, 제5 최종 MV, 제6 최종 MV, 제7 최종 MV, 제8 최종 MV, 및 상기 현재 블록의 높이에 기초한 제3 수량의 제2 제곱근이 상기 임계값과과 상기 높이에 기초한 제4 수량보다 작거나 같다고 규정하며; 상기 제약조건은 변환된 블록의 제1 폭, 보간 필터의 길이, 및 상기 변환된 블록의 제1 높이에 기초하는 제1 수량이 상기 현재 블록의 제2 폭과 상기 현재 블록의 제2 높이에 기초한 제2 수량보다 작거나 같다고 규정하고; 상기 제약조건은 제1 메모리 대역폭과 제2 메모리 대역폭에 정비례하는 수량이 임계값보다 작거나 같다고 규정하고, 상기 수량은 상기 현재 블록의 폭과 상기 현재 블록의 높이에 반비례하며; 상기 제약조건은 변환된 블록의 제1 폭과 상기 현재 블록의 제2 폭 간의 제1 차이가 임계값보다 작거나 같다고 규정하고, 상기 제약조건은 추가적으로, 상기 변환된 블록의 제1 높이와 상기 현재 블록의 제2 높이 간의 제2 차이가 상기 임계값보다 작거나 같다고 규정하며; 상기 프로세서는 추가적으로, 상기 제약된 MV에 기초하여 MVF를 계산하고; 상기 MVF에 기초하여 MCP를 수행하여 상기 현재 블록에 대한 예측 블록을 생성하며; MV 인덱스를 인코딩하도록 구성되고; 상기 프로세서는 추가적으로, MV 인덱스를 디코딩하고; 상기 제약된 MV에 기초하여 MVF를 계산하며; 및 상기 MVF에 기초하여 MCP를 수행하여 상기 현재 블록에 대한 예측 블록을 생성하도록 구성된다.
상기 실시예 중 임의의 실시예가 다른 실시예와 결합되어 새로운 실시예를 생성할 수 있다. 이러한 특징 및 다른 특징은 첨부 도면과 청구 범위와 함께 취해진 다음의 상세한 설명으로부터 보다 명확하게 이해될 것이다.
본 개시를 더 완전하게 이해하기 위해, 이제 첨부 도면 및 상세한 설명과 관련하여 취해진 다음의 간단한 설명을 참조하고, 동일한 참조 번호는 유사한 부분을 나타낸다.
도 1은 코딩 시스템의 개략도이다.
도 2는 현재 블록의 MV를 나타낸 개략도이다.
도 3은 현재 블록의 변환을 나타낸 개략도이다.
도 4는 본 기재의 일 실시예에 따른 인코딩의 방법을 나타낸 흐름도이다.
도 5는 본 기재의 일 실시예에 따른 디코딩의 방법을 나타낸 흐름도이다.
도 6은 본 기재의 다른 실시예에 따른 인코딩의 방법을 나타낸 흐름도이다.
도 7은 본 기재의 다른 실시예에 따른 디코딩의 방법을 나타낸 흐름도이다.
도 8은 본 기재의 일 실시예에 따른 장치의 개략도이다.
하나 이상의 실시예의 예시적인 실시 형태가 아래에서 제공되지만, 개시되는 시스템 및/또는 방법이 현재 알려져 있거나 또는 존재하는지 여부에 관계없이 어떠한 수의 기술을 사용하여 구현될 수 있다는 것을 처음부터 이해해야 한다. 본 개시는 본 명세서에 도시되고 설명된 예시적인 디자인과 실시 형태를 포함하여 아래에서 예시되는 실시 형태, 도면, 및 기술로 한정되지 않아야 하며, 첨부된 청구항의 범위 안에서 그 등가물의 전체 범위와 함께 수정될 수 있다.
다음의 약어와 이니셜이 적용된다.
AF_inter: 아핀 인터(affine inter)
AF_merge: 아핀 병합(affine merge)
ASIC: 주문형 반도체(application-specific integrated circuit)
CPU: 중앙처리장치(central processing unit)
CTU: 코딩 트리 단위(coding tree unit)
DSP: 디지털 신호 프로세서(digital signal processor)
EO: 전광(electrical-to-optical)
FPGA: 필드 프로그래머블 게이트 어레이(field-programmable gate array)
ITU: 국제전기통신연합(International Telecommunication Union)
ITU-T: ITU 전기통신 표준화 부문(ITU Telecommunication Standardization Sector)
LCD: 액정 표시장치(liquid crystal display)
MB: 메모리 대역폭(memory bandwidth)
MCP: 움직임 보상 예측(motion compensation prediction)
MV: 움직임 벡터(motion vector)
MVF: 움직임 벡터 필드(motion vector field)
NB: 인접 블록(neighboring block)
OE: 광전(optical-to-electrical)
PPS: 픽쳐 파라미터 세트(picture parameter set)
RAM: 랜덤 액세스 메모리(random-access memory)
RF: 무선 주파수(radio frequency)
ROM: 고정 기억 장치(read-only memory)
RX: 수신기 유닛(receiver unit)
SPS: 시퀀스 파라미터 세트(sequence parameter set)
SRAM: 정적 RAM(static RAM)
TCAM: 3진 내용 주소화 기억장치(ternary content-addressable memory)
TH: 임계값(threshold)
TX: 송신기 유닛(transmitter unit)
도 1은 코딩 시스템(100)의 개략도이다. 코딩 시스템(100)은 소스 장치(110), 매체(150), 및 목적지 장치(160)를 포함한다. 소스 장치(110)와 목적지 장치(160)는 휴대폰, 태블릿 컴퓨터, 데스크탑 컴퓨터, 노트북 컴퓨터, 또는 다른 적합한 장치이다. 매체(150)는 로컬 네트워크, 무선 네트워크, 인터넷, 또는 다른 적합한 매체이다.
소스 장치(110)는 비디오 생성기(120), 인코더(130), 및 출력 인터페이스(140)를 포함한다. 비디오 생성기(120)는 비디오를 생성하기에 적합한 카메라 또는 다른 장치이다. 인코더(130)를 코덱이라고도 할 수 있다. 인코더는 예를 들어 "High Efficiency Video Coding"(ITU-T H.265, 2016년 12월("H.265"))에 기술된 바와 같이 일련의 규칙에 따라 인코딩을 수행한다. 출력 인터페이스(140)는 목적지 장치(160)에 데이터를 전송하는 데 적합한 안테나 또는 다른 컴포넌트이다. 대안적으로, 비디오 생성기(120), 인코더(130), 및 출력 인터페이스(140)는 장치들을 적절하게 조합한 것이다다.
목적지 장치(160)는 입력 인터페이스(170), 디코더(180), 및 디스플레이(190)를 포함한다. 입력 인터페이스(170)는 소스 장치(110)로부터 데이터를 수신하는 데 적합한 안테나 또는 다른 컴포넌트이다. 디코더(180)를 코덱이라고도 할 수 있다. 디코더(180)는 예를 들어, H.265에 설명된 바와 같이 일련의 규칙에 따라 디코딩을 수행한다. 디스플레이(190)는 비디오를 표시하는 데 적합한 LCD 스크린 또는 다른 컴포넌트이다. 대안적으로, 입력 인터페이스(170), 디코더(180), 및 디스플레이(190)는 장치들을 적절하게 조합한 것이다.
동작 중에, 소스 장치(110)에서, 비디오 생성기(120)는 비디오를 캡쳐하고, 인코더(130)는 비디오를 인코딩하여 인코딩된 비디오를 생성하며, 출력 인터페이스(140)는 인코딩된 비디오를 매체(150)를 통해 또한 목적지 장치(160) 쪽으로 전송한다. 소스 장치(110)는 비디오 또는 인코딩된 비디오를 로컬에 저장하거나, 또는 소스 장치(110)는 다른 장치 상에 비디오 또는 인코딩된 비디오를 저장하도록 지시한다. 인코딩된 비디오는 슬라이스와 블록을 포함하는, 다양한 레벨에서 정의되는 데이터를 포함한다. 슬라이스는 인코더(130)가 비디오 프레임 내의 다른 영역과는 별도로 인코딩하는 비디오 프레임의 공간적으로 별개의 영역이다. 블록은 사각형, 예를 들어 8 픽셀×8 픽셀 정사각형으로 배열되는 픽셀의 그룹이다. 블록을 유닛 또는 코딩 유닛이라고도 한다. 다른 레벨이 영역, CTU, 및 타일(tile)을 포함한다. 목적지 장치(160)에서, 입력 인터페이스(170)는 소스 장치(110)로부터 인코딩된 비디오를 수신하고, 디코더(180)는 인코딩된 비디오를 디코딩하여 디코딩된 비디오를 획득하며, 디스플레이(190)는 디코딩된 비디오를 표시한다. 인코더(130)가 비디오를 인코딩하는 방법과 비교하여, 디코더(180)는 인코딩된 비디오를 역 방식으로 디코딩할 수 있다. 목적지 장치(160)는 인코딩된 비디오 또는 디코딩된 비디오를 로컬에 저장하거나, 또는 목적지 장치(160)는 인코딩된 비디오 또는 디코딩된 비디오를 다른 장치에 저장하도록 지시한다.
인코딩과 디코딩을 함께 코딩이라고 한다. 코딩은 각각 인트라 예측(intra prediction)과 인터 예측(inter prediction)이라고도 하는 인트라 코딩과 인터 코딩을 포함한다. 인트라 예측은 공간 예측을 구현하여 비디오 프레임 내의 공간 중복성(spatial redundancy)을 감소시킨다. 인터 예측은 시간적 예측을 구현하여 연속적인 비디오 프레임들 사이의 시간적 중복(temporal redundancy)을 감소시킨다. 인터 예측의 유형 중 하나가 MCP이다.
본 명세서에 원용되어 포함된 "Affine transform prediction for next generation video coding"(Huawei Technologies Co., Ltd., October 2015)은 아핀 변환(affine transformation)을 모델링하는 AF_inter와 AF_merge에 대해 기술한다. 이 맥락에서, 아핀 변환은 라인들 및 병렬성을 유지하는 방식으로 제1 비디오 블록이나 다른 단위를 제2 비디오 블록이나 다른 단위로 변환하는 것이다. 따라서 AF_inter와 AF_merge는 변환, 회전, 확대/축소(zooming), 전단 매핑(shear mapping), 및 다른 특성을 모델링한다. 하지만, AF_inter와 AF_merge는 모두 필요로 하는 메모리 대역폭을 증가시킨다. 메모리 대역폭은 데이터를 메모리에서 읽거나 메모리에 저장하는 속도이며 일반적으로 초당 바이트로 측정된다. 이 맥락에서, 메모리 대역폭은 MCP 인코딩 중에 메모리로부터 샘플이 판독되는 속도를 지칭할 수 있다. AF_inter와 AF_merge로 인해 필요로 하는 메모리 대역폭이 늘어나므로, 그렇지 않다면 메모리 대역폭을 줄이는 것이 바람직하다.
비디오 코딩에서의 MV 제약조건(MV constraint)과 변환 제약조건에 대한 실시예가 본 명세서에 개시된다. 본 실시예는 AF_inter와 AF_merge를 수행하는 데 필요한 메모리 대역폭의 양을 줄이기 위해 MV 또는 변환을 제약한다. 본 실시예는 2개, 3개, 또는 4개 이상의 제어점을 가진 변환에 적용된다. 제약조건을 구현하기 위해, 인코더와 디코더가 임계값을 적용한다. 인코더와 디코더는 임계값을 정적 기본값으로 저장한다. 대안적으로, 인코더는 SPS, PPS, 슬라이스 헤더, 또는 다른 적절한 형태로 디코더에 임계값을 동적으로 시그널링한다.
도 2는 현재 블록의 MV를 도시한 개략도(200)이다. 개략도(200)는 현재 블록(210)과 NB(220, 230, 240, 250, 260, 270, 280)를 포함한다. 인코더(130)가 현재 현재 블록을 인코딩하고 있으므로, 현재 블록(210)을 현재 블록이라고 한다. 현재 블록(210)은 폭(w), 높이(h), 및 좌측 상단 제어점과 우측 상단 제어점(검은 점으로 표시됨)을 포함한다. W와 h는 예를 들어 8개의 픽셀이다. 좌측 상단 제어점은 (v0x, v0y)으로 표현되는 MV(v0)를 가지고 있다. 여기서, v0x는 v0의 수평 성분이고 v0y는 v0의 수직 성분이다. 우측 상단 제어점은 (v1x, v1y)으로 표현되는 MV(v1)를 가지고 있다. 여기서, v1x는 v1의 수평 성분이고 v1y는 v1의 수직 성분이다. 현재 블록(210)은 추가적인 제어점, 예를 들어 현재 블록(210)의 중심에 있는 제어점을 포함할 수 있다. NB(220-280)는 현재 블록(210)과 인접하기 때문에 NB라고 불린다.
2개의 제어점과 4개의 파라미터를 갖는 아핀 모델의 경우, 현재 블록(210)의 MVF는 다음과 같이 표현된다.
Figure pct00001
vx는 전체 현재 블록(210)의 MV의 수평 성분이고; v1x, v0x, w, v1y, 및 v0y는 앞에서 설명하였으며; x는 현재 블록(210)의 중심으로부터 측정되는 수평 위치이고; y는 현재 블록(210)의 중심으로부터 측정되는 수직 위치이며; vy는 전체 현재 블록(210)의 MV의 수직 성분이다. 3개의 제어점과 6개의 파라미터를 갖는 아핀 모델의 경우, 현재 블록(210)의 MVF는 다음과 같이 표현된다.
Figure pct00002
vx, v1x, v0x, w, x, h, y, vy, v1y, 및 v0y는 앞에서 설명하였고; v2x는 좌측 상단 제어점 MV의 수평 성분이며; v2y는 좌측 상단 제어점 MV의 수직 성분이다. 4개의 제어점과 8개의 파라미터를 갖는 아핀 모델의 경우, 현재 블록(210)의 MVF는 다음과 같이 표현된다.
Figure pct00003
vx, v1x, v0x, w, x, v2x, h, y, vx, v1y, v0y, 및 v2y는 앞에서 설명하였고; v3x는 우측 하단 제어점 MV의 수평 성분이고; v3y는 우측 하단 제어점 MV의 수직 성분이다.
도 3은 현재 블록의 변환을 나타낸 개략도(300)이다. 이 개략도(300)는 현재 블록(310)과 변환된 블록(320)을 포함한다. 현재 블록(310)은 현재 비디오 프레임 내에 있고, 변환된 블록(320)은 변환을 거친 후 바로 다음 비디오 프레임의 현재 블록(310)이다. 도시된 바와 같이, 현재 블록(310)에서 변환된 블록(320)으로 변환하기 위해, 현재 블록(310)은 회전 및 확대/축소(zooming)를 모두 거친다.
현재 블록(310)에서, 현재 블록(310)의 좌측 상단 제어점, 우측 상단 제어점, 좌측 상단 제어점, 및 우측 하단 제어점의 위치가 각각 좌표 세트((x0, y0), (x1, y1), (x2, y2), (x3, y3))로서 표현되고; w는 폭이고; h는 높이이다. 변환된 블록(320)에서, 변환된 블록(320)의 좌측 상단 제어점, 우측 상단 제어점, 좌측 상단 제어점, 및 우측 하단 제어점의 위치가 좌표 세트 (x0', y0'), 좌표 세트 (x1', y1'), 좌표 세트 (x2', y2'), 및 좌표 세트(x3', y3'))로서 각각 표현되고; w'는 폭이며; 및 h'는 높이이다. 움직임 벡터 v는 좌표 세트 (v0, v1 v2, v3)로 표현되고, 변환된 블록(320)에 대한 현재 블록(310)의 움직임을 기술한다. 따라서, 변환된 블록(320)의 제어점은 현재 블록(310)의 제어점과 움직임 벡터 v의 관점에서 다음과 같이 표현될 수 있다.
(x0', y0') = (x0 + vx0, y0 + vy0)
(x1', y1') = (x1 + vx1, y1 + vy1)
(x2', y2') = (x2 + vx2, y2 + vy2)
(x3', y3') = (x3 + vx3, y3 + vy3) (4)
변환된 블록(320)의 크기는 다음과 같이 표현될 수 있다.
w' = max(x0', x1', x2', x3') - min(x0', x1', x2', x3') + 1
h' = max(y0', y1', y2', y3') - min(y0', y1', y2', y3',) + 1 (5)
max() 함수는 피연산자로부터 최대값을 선택하고, min() 함수는 피연산자로부터 최소값을 선택한다. 현재 블록(310)의 제어점의 위치를 알고 있으므로, v는 변환된 블록(320)의 제어점의 위치를 기술한다. v가 소수이면, v는 참조 프레임에 존재하지 않는 서브-샘플 위치를 가리킨다. 이 경우, 인코더(130)는 정수 샘플을 입력으로 하는 보간 필터(interpolation filter)를 이용하여 서브-샘플 위치를 생성하고, T'는 아핀 모드를 위한 보간 필터의 길이이며 정수 샘플의 개수와 동일하다. 예를 들면, T'는 2, 4, 또는 8이다. 마지막으로, 현재 블록(310)을 인코딩하는 데 필요한 메모리 대역폭(memory bandwidth, MB)은 다음과 같이 표현될 수 있다.
MB = (w' + T' - 1) * (h' + T' - 1) (6)
w', T', 및 h'은 앞에서 설명하였다.
도 4는 본 기재의 일 실시예에 따른 인코딩 방법(400)을 나타낸 흐름도이다. 인코더(130)는 AF_inter 또는 AF_merge를 수행할 때 인코딩 방법(400)을 수행할 수 있다. 단계 410에서, 후보 MV가 획득된다. 인터 예측에서, 인코더(130)는 인코더(130)가 현재 블록(210)을 인코딩할 때 이미 알려져 있는 NB(220-280)의 MV로부터 후보 MV를 획득한다. 구체적으로, AF_inter의 경우, 인코더(130)는 NB(250, 260, 240)로부터의 MV를 그 순서대로 v0에 대한 후보 MV로 간주하고, 인코더(130)는 NB(270, 280)로부터의 MV를 그 순서대로 v1에 대한 후보 MV로 간주한다. AF_merge의 경우, 인코더(130)는 NB(230, 270, 280, 220, 250)로부터의 MV를 그 순서대로 v0과 v1에 대한 후보 MV로 간주한다.
단계 420에서, 후보 MV의 후보 목록이 생성된다. 이를 위해, 인코더(130)는 알려져 있는 규칙을 적용한다. 예를 들어, 인코더(130)는 중복된 후보 MV를 제거하고, 미사용 후보 목록 슬롯을 제로 MV로 채운다.
단계 430에서, 최종 MV가 후보 목록으로부터 선택된다 인코더(130)는 2개의 제어점과 4개의 파라미터를 갖는 아핀 모델에 대한 v0과 v1 모두에 대한 최종 MV; 3개의 제어점과 6개의 파라미터를 갖는 아핀 모델에 대한 v0, v1, 및 v2에 대한 최종 MV; 또는 4개의 제어점과 8개의 파라미터를 갖는 아핀 모델에 대한 v0, v1, v2, 및 v3에 대한 최종 MV를 선택한다. 이를 위해, 인코더(130)는 알려져 있는 규칙을 적용한다. 예를 들어, 인코더는 레이트 왜곡 비용 검사(rate distortion cost check)를 적용한다. AF_inter의 경우, 인코더(130)는 움직임 추정을 수행하여 최종 MV를 얻을 수도 있다.
단계 440에서, 제약조건이 최종 MV 또는 변환에 적용되어 제약된 MV를 획득한다. 인코더(130)는 후술하는 한 세트의 MV 제약조건을 이용하여 최종 MV를 직접 제약하거나, 인코더(130)는 후술하는 한 세트의 변환 제약조건을 이용하여 변환을 제약함으로써 최종 MV를 간접적으로 제약한다. 제약조건을 적용함으로써, 인코더(130)는 v0x, v0y, v1x, v1y, v2x, v2y, v3x, 및 v3y의 조합을 계산하고, 인코더(130)가 어느 아핀 모델을 사용하는지에 따라, 최종 MV를 제약할 때 또는 변환을 제약할 때, 인코더(130)는 w', h', 및 T'를 계산한다. 최종 MV와 비교하여, 제약된 MV는 메모리 대역폭을 감소시킨다. 인코더(130)가 최종 MV를 제약할 수 없으면, 인코더(130)는 2가지 대안 중에서 하나를 진행할 수 있다. 첫 번째 대안에서, 인코더(130)는 인코딩 방법(400)의 나머지 단계를 생략하고, AF_inter 또는 AF_merge 이외의 코딩 모드를 구현한다. 두 번째 대안에서, 인코더(130)는 인코더(130)가 최종 MV를 제한할 수 있을 때까지 최종 MV를 수정한다. 대안적으로, 단계 410, 단계 420, 및 단계 430은 MV를 결정하는 단일 단계로 대체될 수 있으며, 단계 440는 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하는 단계로 대체될 수 있다.
단계 450에서, 제약된 MV에 기초하여 MVF가 계산된다. 인코더(130)는 방정식 세트 (1), 방정식 세트 (2), 또는 방정식 세트 (3)에 따라 MVF를 계산한다. 단계 460에서, MVF에 기초하여 MCP가 수행되어 현재 블록의 예측 블록을 생성한다. 예측 블록은 현재 블록(210)의 각각의 픽셀에 대한 예측 값을 포함한다.
최종적으로, 단계 470에서, MV 인덱스가 인코딩된다. 인코더(130)는 MV 인덱스를 전술한 인코딩된 비디오의 일부로서 인코딩한다. MV 인덱스는 후보 목록에서 후보 MV의 순서를 나타낸다. AF_inter의 경우, 인코더(130)는 최종 MV와 후보 MV 간의 차이를 나타내는 MV 차이를 인코딩할 수도 있다.
도 5는 본 기재의 일 실시예에 따른 디코딩 방법(500)을 나타낸 흐름도이다. 디코더(180)는 AF_inter 또는 AF_merge를 수행할 때 디코딩 방법(500)을 수행할 수 있다. 단계 510에서, MV 인덱스가 디코딩된다. MV 인덱스는 도 4의 단계 470에서 인코딩된 동일한 인덱스일 수 있다. AF_inter의 경우, 인코더(130)는 MV 차이를 디코딩할 수 있다. 단계 520, 단계 530, 단계 540, 단계 550, 단계 560, 및 단계 570은 각각 도 4의 단계 410, 단계 420, 단계 430, 단계 440, 단계 450, 및 단계 460과 유사하다. AF_inter의 경우, 인코더(130)는 MV 차이를 후보 MV에 더하여 최종 MV를 획득할 수 있다. 대안적으로, 단계 520, 단계 530, 및 단계 540은 MV를 결정하는 단일 단계로 대체될 수 있으며, 단계 550은 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하는 단계로 대체될 수 있다.
도 6은 본 기재의 다른 실시예에 따른 인코딩 방법(600)을 나타낸 흐름도이다. 인코더(130)는 AF_merge를 수행할 때 인코딩 방법(600)을 수행할 수 있다. 인코딩 방법(600)은 도 4의 인코딩 방법과 유사하다. 구체적으로, 도 6의 단계 610, 단계 620, 단계 650, 단계 660, 및 단계 670은 각각 도 4의 단계 410, 단계 420, 단계 450, 단계 460, 및 단계 470와 유사하다. 하지만, 단계 430과 단계 440과 비교하여, 단계 630과 단계 640의 순서가 반대이다. 또한, 인코딩 방법(600)은 인코딩 방법(400)과 같이 AF_inter와 AF_merge 모두에 적용하는 대신, AF_merge에 적용된다.
도 7은 본 기재의 다른 실시예에 따른 디코딩 방법(700)을 나타낸 흐름도이다. 디코더(180)는 AF_merge를 수행할 때 디코딩 방법(700)을 수행할 수 있다. 단계(710)에서, MV 인덱스가 디코딩된다. MV 인덱스는 도 6의 단계 670에서 인코딩된 동일한 인덱스일 수 있다. 단계 720, 단계 730, 단계 740, 단계 750, 단계 760, 및 단계 770은 각각 도 6의 단계 610, 단계 620, 단계 630, 단계 640, 단계 650, 및 단계 660과 유사하다.
(MV 제약조건)
MV 제약조건의 제1 실시예에서, 2개의 제어점을 이용하여, 인코더(130)는 예비 MV에 다음의 MV 제약조건을 적용한다
|v1x - v0x | ≤ w * TH
|v1y - v0y | ≤ h * TH (7)
v1x, v0x, w, v1y, 및 v0y는 앞에서 설명하였고; TH는 임계값이며; h는 다수의 픽셀, 예를 들어 8개의 픽셀에서의 현재 블록(210)의 높이이다. TH는 적절한 MCP를 제공하기에 적합하지만 메모리 대역폭을 감소시키는 데 적합한 임의의 숫자이다. 예를 들어, 현재 블록(310)이 스케일링 변환만을 사용하여 변환된 블록(320)으로 변환되고 또한 최대 스케일링 팩터가 2이면, |v1x - v0x| + w(변환된 블록(320)의 폭)이 2*w보다 크지 않아야 하며, TH는 1로 설정되어야 한다. 인코더(130)와 디코더(180)는 정적 디폴트로서 TH를 저장한다. 대안적으로, 인코더(130)는 SPS, PPS, 슬라이스 헤더, 또는 다른 적절한 형태로 디코더(180)에 TH를 동적으로 시그널링한다.
MV 제약조건의 제2 실시예에서, 3개의 제어점을 이용하여, 인코더(130)는 예비 MV에 아래의 MV 제약조건을 적용한다.
|v1x - v0x | ≤ w * TH
|v1y - v0y | ≤ h * TH
|v2x - v0x | ≤ w * TH
|v2y - v0y | ≤ h * TH (8)
v1x, v0x, w, TH, v1y, v0y, 및 h는 앞에서 설명하였고; v2x는 제3 제어점 MV의 수평 성분이며; v2y는 제3 제어점 MV의 수직 성분이다. 제3 제어점은 예를 들어, 현재 블록(210)의 중심에 있는 현재 블록(210)의 어느 적절한 위치에 있다.
MV 제약조건의 제3 실시예에서, 2개의 제어점을 이용하여, 인코더(130)는 예비 MV에 아래의 MV 제약조건을 적용한다
Figure pct00004
v1x, v0x, w, v1y, v0y, 및 TH는 앞에서 설명하였다.
MV 제약조건의 제3 실시예에서, 2개의 제어점을 이용하여, 인코더(130)는 예비 MV에 아래의 MV 제약조건을 적용한다.
Figure pct00005
v1x, v0x, w, v1y, v0y, TH, v2y, h, 및 v2x는 전술한 바와 같다.
(변환 제약조건)
변환 제약조건의 제1 실시예에서, 인코더(130)는 다음의 변환 제약조건을 적용한다:
(w' + T' - 1) * (h' + T' - 1) ≤ TH * w * h (11)
w', T', h', w, 및 h는 전술한 바와 같다. TH는 적절한 MCP를 제공하는 데 적합하지만 메모리 대역폭을 감소시키는 데 적합한 임의의 숫자이다. 예를 들어, 샘플의 최대 메모리 대역폭이 4×4 블록의 메모리 접근 소비(memory access consumption)로서 정의되면, TH는 다음과 같다.
Figure pct00006
T는 변환 모드에 대한 보간 필터의 길이이다. 인코더(130)와 디코더(180)는 TH를 정적 디폴트로서 저장한다. 대안적으로, 인코더(130)는 SPS, PPS, 슬라이스 헤더, 또는 다른 적절한 형태로 디코더(180)에 TH를 동적으로 시그널링한다.
변환 제약조건의 제2 실시예에서, 인코더(130)는 단일 예측을 사용할 때 다음의 변환 제약조건을 적용한다.
(w' + T' - 1) * (h' + T' - 1) ≤ THUNI * w * h (13)
단일 예측은 인코더(130)가 하나의 참조 블록을 이용하여 현재 블록(210)의 예측 값을 결정하는 것을 의미한다. w', T', h', w, 및 h는 전술한 바와 같다. THUNI는 적절한 MCP를 제공하는 데 적합한 임의의 숫자이지만 단방향 예측을 위한 메모리 대역폭을 감소시키는 데 적합하다. 예를 들어, 단일 예측을 위한 샘플의 최대 메모리 대역폭이 4×4 블록의 메모리 접근 소비로서 정의되면, THUNI는 다음과 같다.
Figure pct00007
유사하게, 인코더(130)는 쌍방향 예측을 사용할 때 다음의 변환 제약조건을 적용한다.
(w' + T' - 1) * (h' + T' - 1) ≤ THBI * w * h (15)
쌍방향 예측은 인코더(130)가 2개의 참조 블록을 이용하여 현재 블록(210)의 예측 값을 결정하는 것을 의미한다. w', T', h', w, 및 h는 전술한 바와 같다. THBI는 적절한 MCP를 제공하는 데 적합하지만 쌍방향 예측을 위한 메모리 대역폭을 감소시키는 데 적합한 임의의 숫자이다. THUNI는 THBI보다 작거나 같다. 예를 들어, 이중 예측을 위한 샘플의 최대 메모리 대역폭이 8×4 블록의 메모리 접근 소비로서 정의되면, THBI는 다음과 같다.
Figure pct00008
방정식 (11)과 달리, 방정식 (13) 및 방정식 (15)의 임계값은 각각 단일 예측과 이중 예측에 고유하다.
변환 제약조건의 제3 실시예에서, 인코더(130)는 쌍방향 예측을 이용하므로 다음과 같이 2개의 메모리 대역폭이 존재한다.
MB0 = (w0' + T' - 1) * (h0' + T' - 1)
MB1 = (w1' + T' - 1) * (h1' + T' - 1) (17)
MB0는 제1 폭(w0')과 제1 높이(h0')를 이용하는 제1 변환에 대한 메모리 대역폭이고, MB1은 제2 폭(w1')과 제2 높이(h1')를 이용하는 제2 변환에 대한 메모리 대역폭이다. 2개의 메모리 대역폭을 이용하여, 인코더(130)는 다음의 변환 제약조건을 적용한다.
Figure pct00009
MB0, MB1, w, h, 및 TH는 전술한 바와 같다.
변환 제약조건의 제4 실시예에서, 인코더(130)는 다음의 변환 제약조건을 적용한다.
w' - w ≤ TH
h' - h ≤ TH (19)
w', w, h', h, 및 TH는 전술한 바와 같다.
변환 제약조건의 제5 실시예에서, 인코더(130)는 변환된 블록(420)의 위치를 다음과 같이 결정한다.
(x0', y0') = (x0 + vx0, y0 + vy0)
(x1', y1') = (x0 + w + vx1, y0 + vy1)
(x2', y2') = (x0 + vx2, y0 + h + vy2)
(x3', y3') = (x0 + w + vx3, y0 + h + vy3) (20)
x0', y0', x0, v, y0, x1', y1', w, x1, y1, x2', y2', x2, h, y2, x3', y3', x3, 및 y3은 전술한 바와 같다. 방정식 세트(17)와 방정식 세트(7)를 이용하여, 인코더(130)는 w'와 h'를 결정한다.
변환 제약조건의 제6 실시예에서, 비제약된 후보 MV가 폐기된다. 비제약된 후보 MV는 전술한 바와 같이 또는 다른 방식으로 제약되지 않는 후보 MV이다. 따라서, 비제약된 후보 MV는 원래 형태로 남겨져 있는 후보 MV이다.
도 8은 본 기재의 일 실시예에 따른 장치(800)의 개략도이다. 장치(800)는 개시된 실시예를 구현할 수 있다. 장치(800)는 데이터를 수신하기 위한 인그레스 포트(ingress port)(810)와 RX(820); 데이터를 처리하기 위한 프로세서, 로직 유닛, 베이스밴드 유닛, 또는 CPU(830); 데이터를 전송하기 위한 TX(840)와 이그레스 포트(egress port)(850); 및 데이터를 저장하기 위한 메모리(860)를 포함한다. 장치(800)는 광 신호, 전기 신호, 또는 RF 신호의 인그레스 또는 이그레스를 위한 인그레스 포트(810), RX(820), TX(840), 및 이그레스 포트(850)에 연결된 OE 컴포넌트, 또는 EO 컴포넌트, 또는 RF 컴포넌트를 포함할 수도 있다.
프로세서(830)는 하드웨어, 미들웨어, 펌웨어, 또는 소프트웨어의 임의의 조합이다. 프로세서(830)는 하나 이상의 CPU 칩, 코어, FPGA, ASIC, 또는 DSP의 임의의 조합을 포함한다. 프로세서(830)는 인그레스 포트(810), RX(820), TX(840), 이그레스 포트(850), 및 메모리(860)와 통신한다. 프로세서(830)는 개시된 실시예를 구현하는 코딩 컴포넌트(870)를 포함한다. 따라서, 코딩 컴포넌트(870)를 포함한다는 것은 장치(800)의 기능에 실질적인 개선을 제공하며 또한 장치(800)를 다른 상태로 변환하는 데 영향을 미친다. 대안적으로, 메모리(860)는 코딩 컴포넌트(870)를 명령어로서 저장하고, 프로세서(830)는 이러한 명령어를 실행한다.
메모리(860)는 디스크, 테이프 드라이브, 또는 솔리드 스테이트 드라이브(solid-state drive)의 임의의 조합을 포함한다. 장치(800)는 메모리(860)를 오버플로우 데이터 저장 장치로서 사용하며, 오버플로우 데이터 저장 장치는 장치(800)가 실행을 위해 이러한 프로그램을 선택할 때 프로그램을 저장하고 또한 장치(800)가 이러한 프로그램을 실행하는 동안 판독하는 명령과 데이터를 저장한다. 메모리(860)는 휘발성이거나 또는 비휘발성일 수 있으며, ROM, RAM, TCAM, 또는 SRAM의 임의의 조합일 수 있다.
예시적인 실시예에서, 장치가 메모리 엘리먼트; 및 메모리 엘리먼트에 연결된 프로세서 엘리먼트를 포함한다. 프로세서 엘리먼트는 비디오 프레임 내의 현재 블록과 인접한 인접 블록에 대응하는 후보 MV를 획득하고, 후보 MV의 후보 목록을 생성하며, 후보 목록으로부터 최종 MV를 선택하고, 최종 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하도록 구성된다.
본 개시에서 여러 실시예가 제공되었지만, 개시된 시스템과 방법이 본 개시의 사상 또는 범위를 벗어나지 않으면서 다수의 다른 구체적인 형태로 구현될 수 있다는 것을 이해할 수 있을 것이다. 이러한 예는 예시적이고 비제한적인 것으로 간주되어야 하며, 그 의도가 본 명세서에 제공된 세부사항으로 제한되지 않아야 한다. 예를 들어, 다양한 엘리먼트 또는 컴포넌트가 다른 시스템에 결합되거나 통합될 수 있거나, 또는 구체적인 특징이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시예에서 분리되거나 개별적인 것으로 기술되고 또한 예시된 기술, 시스템, 서브시스템, 및 방법이 본 개시의 범위를 벗어나지 않고 다른 시스템, 컴포넌트, 기술, 또는 방법과 결합되거나 통합될 수 있다. 연결된 것으로 도시되거나 논의된 다른 항목은 전기적으로, 기계적으로, 또는 다른 방식으로 어떤 인터페이스, 장치, 또는 중간 컴포넌트를 통해 직접 연결되거나 또는 간접적으로 연결되거나 또는 통신될 수 있다. 변경, 대체, 및 수정의 다른 예는 당업자에 의해 확인될 수 있고, 본 명세서에 개시된 사상과 범위를 벗어나지 않고 이루어질 수 있다.

Claims (20)

  1. 장치로서,
    메모리; 및
    상기 메모리에 연결된 프로세서
    를 포함하고,
    상기 프로세서는,
    비디오 프레임 내의 현재 블록과 인접한 인접 블록에 대응하는 후보 움직임 벡터(motion vector, MV)를 획득하고,
    상기 후보 MV의 후보 목록을 생성하며,
    상기 후보 목록으로부터 최종 MV를 선택하고,
    상기 최종 MV 또는 변환에 제약조건(constraint)을 적용하여 제약된 MV를 획득하도록 구성된, 장치.
  2. 제1항에 있어서,
    상기 제약조건은 최종 제1 MV와 최종 제2 MV 간의 제1 차이의 제1 절대값이 임계값과 상기 현재 블록의 폭에 기초하는 제1 수량보다 작거나 같다는 것을 규정하고, 상기 제약조건은 최종 제3 MV와 최종 제4 MV 간의 제2 차이의 제2 절대값이 상기 임계값과 상기 현재 블록의 높이에 기초하는 제2 수량보다 작거나 같다는 것을 더 규정하는, 장치.
  3. 제1항에 있어서,
    상기 제약조건은 최종 제1 MV, 최종 제2 MV, 최종 제3 MV, 최종 제4 MV, 및 상기 현재 블록의 폭에 기초하는 제1 수량의 제1 제곱근이 상기 폭과 임계값에 기초하는 제2 수량보다 작거나 같다는 것을 규정하는, 장치.
  4. 제3항에 있어서,
    상기 제약조건은 최종 제5 MV, 최종 제6 MV, 최종 제7 MV, 최종 제8 MV, 및 상기 현재 블록의 높이에 기초하는 제3 수량의 제2 제곱근이 상기 임계값과 상기 높이에 기초하는 제4 수량보다 작거나 같다는 것을 더 규정하는, 장치.
  5. 제1항에 있어서,
    상기 제약조건은 변환된 블록의 제1 폭, 보간 필터(interpolation filter)의 길이, 및 상기 변환된 블록의 제1 높이에 기초하는 제1 수량이 임계값, 상기 현재 블록의 제2 폭, 및 상기 현재 블록의 제2 높이에 기초하는 제2 수량보다 작거나 같다는 것을 규정하는, 장치.
  6. 제5항에 있어서,
    상기 임계값은 단일 예측 또는 이중 예측에 한정되는, 장치.
  7. 제1항에 있어서,
    상기 제약조건은 제1 메모리 대역폭과 제2 메모리 대역폭에 정비례하는 수량이 임계값보다 작거나 같다는 것을 규정하고, 상기 수량은 상기 현재 블록의 폭과 상기 현재 블록의 높이에 반비례하는, 장치.
  8. 제1항에 있어서,
    상기 제약조건은 변환된 블록의 제1 폭과 상기 현재 블록의 제2 폭 간의 제1 차이가 임계값보다 작거나 같다는 것을 규정하고, 상기 제약조건은 상기 변환된 블록의 제1 높이와 상기 현재 블록의 제2 높이 간의 제2 차이가 상기 임계값보다 작거나 같다는 것을 더 규정하는, 장치.
  9. 제1항에 있어서,
    상기 프로세서는 추가적으로,
    상기 제약된 MV에 기초하여 움직임 벡터 필드(motion vector field, MVF)를 계산하고;
    상기 MVF에 기초하여 움직임 보상 예측(motion compensation prediction, MCP)을 수행하여 상기 현재 블록에 대한 예측 블록을 생성하며;
    MV 인덱스를 인코딩하도록 구성된, 장치.
  10. 제1항에 있어서,
    상기 프로세서는 추가적으로,
    MV 인덱스를 디코딩하고;
    상기 제약된 MV에 기초하여 움직임 벡터 필드(MVF)를 계산하며;
    상기 MVF에 기초하여 움직임 보상 예측(MCP)을 수행하여 상기 현재 블록에 대한 예측 블록을 생성하도록 구성된, 장치.
  11. 방법으로서,
    비디오 프레임 내의 현재 블록과 인접한 인접 블록에 대응하는 후보 움직임 벡터(motion vector, MV)를 획득하는 단계;
    상기 후보 MV의 후보 목록을 생성하는 단계;
    상기 후보 목록으로부터 최종 MV를 선택하는 단계; 및
    상기 최종 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하는 단계
    를 포함하는 방법.
  12. 장치로서,
    메모리; 및
    상기 메모리에 연결된 프로세서
    를 포함하고,
    상기 프로세서는,
    비디오 프레임 내의 현재 블록과 인접한 인접 블록에 대응하는 후보 움직임 벡터(motion vector, MV)를 획득하고,
    상기 후보 MV의 후보 목록을 생성하며,
    상기 후보 MV 또는 변환에 제약조건을 적용하여 제약된 MV를 획득하고,
    상기 제약된 MV로부터 최종 MV를 선택하도록 구성된, 장치.
  13. 제12항에 있어서,
    상기 제약조건은 최종 제1 MV와 최종 제2 MV 간의 제1 차이의 제1 절대값이 상기 현재 블록의 폭과 임계값에 기초하는 제1 수량보다 작거나 같다는 것을 규정하고, 상기 제약조건은 최종 제3 MV와 최종 제4 MV 간의 제2 차이의 제2 절대값이 상기 임계값과 상기 현재 블록의 높이에 기초하는 제2 수량보다 작거나 같다는 것을 더 규정하는, 장치.
  14. 제12항에 있어서,
    상기 제약조건은 최종 제1 MV, 최종 제2 MV, 최종 제3 MV, 최종 제4 MV, 및 상기 현재 블록의 폭에 기초하는 제1 수량의 제1 제곱근이 상기 폭과 임계값에 기초하는 제2 수량보다 작거나 같다는 것을 규정하는, 장치.
  15. 제14항에 있어서,
    상기 제약조건은 최종 제5 MV, 최종 제6 MV, 최종 제7 MV, 최종 제8 MV, 및 상기 현재 블록의 높이에 기초하는 제3 수량의 제2 제곱근이 상기 임계값과 상기 높이에 기초하는 제4 수량보다 작거나 같다는 것을 더 규정하는, 장치.
  16. 제12항에 있어서,
    상기 제약조건은 변환된 블록의 제1 폭, 보간 필터(interpolation filter)의 길이, 및 상기 변환된 블록의 제1 높이에 기초하는 제1 수량이 임계값, 상기 현재 블록의 제2 폭, 및 상기 현재 블록의 제2 높이에 기초하는 제2 수량보다 작거나 같다는 것을 규정하는, 장치.
  17. 제12항에 있어서,
    상기 제약조건은 제1 메모리 대역폭과 제2 메모리 대역폭에 정비례하는 수량이 임계값보다 작거나 같다는 것을 규정하고, 상기 수량은 상기 현재 블록의 폭과 상기 현재 블록의 높이에 반비례하는, 장치.
  18. 제12항에 있어서,
    상기 제약조건은 변환된 블록의 제1 폭과 상기 현재 블록의 제2 폭 간의 제1 차이가 임계값보다 작거나 같다는 것을 규정하고, 상기 제약조건은 상기 변환된 블록의 제1 높이와 상기 현재 블록의 제2 높이 간의 제2 차이가 상기 임계값보다 작거나 같다는 것을 더 규정하는, 장치.
  19. 제12항에 있어서,
    상기 프로세서는 추가적으로,
    상기 제약된 MV에 기초하여 움직임 벡터 필드(motion vector field, MVF)를 계산하고;
    상기 MVF에 기초하여 움직임 보상 예측(motion compensation prediction, MCP)을 수행하여 상기 현재 블록에 대한 예측 블록을 생성하며;
    MV 인덱스를 인코딩하도록 구성된, 장치.
  20. 제12항에 있어서,
    상기 프로세서는 추가적으로,
    MV 인덱스를 디코딩하고;
    상기 제약된 MV에 기초하여 움직임 벡터 필드(MVF)를 계산하며;
    상기 MVF에 기초하여 움직임 보상 예측(MCP)을 수행하여 상기 현재 블록에 대한 예측 블록을 생성하도록 구성된, 장치.
KR1020197025247A 2017-04-07 2018-04-08 비디오 코딩에서의 움직임 벡터(mv) 제약조건 및 변환 제약조건 KR102255665B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762483196P 2017-04-07 2017-04-07
US62/483,196 2017-04-07
US201862616263P 2018-01-11 2018-01-11
US62/616,263 2018-01-11
US15/944,501 US10873760B2 (en) 2017-04-07 2018-04-03 Motion vector (MV) constraints and transformation constraints in video coding
US15/944,501 2018-04-03
PCT/CN2018/082114 WO2018184589A1 (en) 2017-04-07 2018-04-08 Motion vector (mv) constraints and transformation constraints in video coding

Publications (2)

Publication Number Publication Date
KR20190112082A true KR20190112082A (ko) 2019-10-02
KR102255665B1 KR102255665B1 (ko) 2021-05-24

Family

ID=63709977

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197025247A KR102255665B1 (ko) 2017-04-07 2018-04-08 비디오 코딩에서의 움직임 벡터(mv) 제약조건 및 변환 제약조건

Country Status (6)

Country Link
US (1) US10873760B2 (ko)
EP (1) EP3566442A4 (ko)
JP (1) JP6903149B2 (ko)
KR (1) KR102255665B1 (ko)
CN (1) CN110291790B (ko)
WO (1) WO2018184589A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102672759B1 (ko) * 2017-09-28 2024-06-05 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
US10841610B2 (en) * 2017-10-23 2020-11-17 Avago Technologies International Sales Pte. Limited Block size dependent interpolation filter selection and mapping
WO2019234598A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
TWI729422B (zh) 2018-06-21 2021-06-01 大陸商北京字節跳動網絡技術有限公司 色彩分量間的子區塊移動向量繼承
US11503328B2 (en) * 2018-06-29 2022-11-15 Vid Scale, Inc. Adaptive control point selection for affine motion model based video coding
US10944984B2 (en) 2018-08-28 2021-03-09 Qualcomm Incorporated Affine motion prediction
US11184635B2 (en) 2018-08-31 2021-11-23 Tencent America LLC Method and apparatus for video coding with motion vector constraints
CN116647693A (zh) * 2018-09-06 2023-08-25 Lg电子株式会社 编解码设备、存储介质和数据发送设备
TW202017377A (zh) 2018-09-08 2020-05-01 大陸商北京字節跳動網絡技術有限公司 視頻編碼和解碼中的仿射模式
GB2591906B (en) 2018-09-24 2023-03-08 Beijing Bytedance Network Tech Co Ltd Bi-prediction with weights in video coding and decoding
WO2020094150A1 (en) 2018-11-10 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Rounding in current picture referencing
US11736713B2 (en) 2018-11-14 2023-08-22 Tencent America LLC Constraint on affine model motion vector
CN114979627A (zh) * 2021-02-24 2022-08-30 华为技术有限公司 视频编码中的运动矢量(mv)约束和变换约束

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140095607A (ko) * 2013-01-23 2014-08-04 한국전자통신연구원 인터 예측 방법 및 그 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11122624A (ja) 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd ビデオデコーダ処理量を低減する方法および装置
US6735249B1 (en) * 1999-08-11 2004-05-11 Nokia Corporation Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding
KR101003105B1 (ko) * 2008-01-29 2010-12-21 한국전자통신연구원 어파인 변환 기반의 움직임 보상을 이용한 비디오 부호화 및 복호화 방법 및 장치
EP2559243B1 (en) 2010-04-13 2014-08-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. A video decoder and a video encoder using motion-compensated prediction
US8976873B2 (en) 2010-11-24 2015-03-10 Stmicroelectronics S.R.L. Apparatus and method for performing error concealment of inter-coded video frames
GB201113527D0 (en) 2011-08-04 2011-09-21 Imagination Tech Ltd External vectors in a motion estimation system
US9762904B2 (en) * 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US20140086328A1 (en) 2012-09-25 2014-03-27 Qualcomm Incorporated Scalable video coding in hevc
WO2016119046A1 (en) * 2015-01-29 2016-08-04 Ecole De Technologie Superieure Methods and systems for determining motion vectors in a motion estimation process of a video encoder
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140095607A (ko) * 2013-01-23 2014-08-04 한국전자통신연구원 인터 예측 방법 및 그 장치

Also Published As

Publication number Publication date
EP3566442A1 (en) 2019-11-13
US20180295381A1 (en) 2018-10-11
WO2018184589A1 (en) 2018-10-11
JP6903149B2 (ja) 2021-07-14
US10873760B2 (en) 2020-12-22
EP3566442A4 (en) 2020-02-05
CN110291790B (zh) 2022-03-11
CN110291790A (zh) 2019-09-27
JP2020509711A (ja) 2020-03-26
KR102255665B1 (ko) 2021-05-24

Similar Documents

Publication Publication Date Title
KR102255665B1 (ko) 비디오 코딩에서의 움직임 벡터(mv) 제약조건 및 변환 제약조건
JP7331095B2 (ja) 補間フィルタトレーニング方法及び装置、ビデオピクチャエンコーディング及びデコーディング方法、並びに、エンコーダ及びデコーダ
US11924438B2 (en) Picture reconstruction method and apparatus
CA3066961C (en) Selection and signaling of motion vector (mv) precisions
JP7277586B2 (ja) モードおよびサイズに依存したブロックレベル制限の方法および装置
TWI806212B (zh) 視訊編碼器、視訊解碼器及相應方法
KR20220002990A (ko) 인터 예측에서의 글로벌 모션 제약 모션 벡터
KR20210107131A (ko) 이미지 예측 방법, 장치 및 시스템, 디바이스 및 저장 매체
KR20210107109A (ko) 인터 프레임 예측 방법, 디바이스, 및 대응하는 인코더 및 디코더
WO2020143585A1 (zh) 视频编码器、视频解码器及相应方法
US11516470B2 (en) Video coder and corresponding method
US11622105B2 (en) Adaptive block update of unavailable reference frames using explicit and implicit signaling
KR102603966B1 (ko) 비디오 인코더, 비디오 디코더 및 대응하는 방법
KR20220002987A (ko) 모션 벡터 인터 예측을 위한 글로벌 모션 모델들
WO2022179221A1 (zh) 视频编码中的运动矢量(mv)约束和变换约束
WO2024183007A1 (zh) 视频编解码方法、装置、设备、系统、及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant