KR20220047729A - 비디오 인코딩 및 디코딩을 위한 움직임 벡터 처리 - Google Patents

비디오 인코딩 및 디코딩을 위한 움직임 벡터 처리 Download PDF

Info

Publication number
KR20220047729A
KR20220047729A KR1020217041645A KR20217041645A KR20220047729A KR 20220047729 A KR20220047729 A KR 20220047729A KR 1020217041645 A KR1020217041645 A KR 1020217041645A KR 20217041645 A KR20217041645 A KR 20217041645A KR 20220047729 A KR20220047729 A KR 20220047729A
Authority
KR
South Korea
Prior art keywords
motion vector
precision
level
coding mode
coding unit
Prior art date
Application number
KR1020217041645A
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 KR20220047729A publication Critical patent/KR20220047729A/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/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/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/11Selection of coding mode or of prediction mode among a plurality of spatial 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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

픽처 정보를 인코딩 또는 디코딩하는 것은 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 것; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하는 것; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 것; 및 코딩 모드 및 움직임 벡터에 기초하여 현재 코딩 유닛에 포함된 픽처 정보의 적어도 일부분을 인코딩 또는 디코딩하는 것을 수반할 수 있다.

Description

비디오 인코딩 및 디코딩을 위한 모션 벡터 처리
본 개시내용은 비디오 인코딩 및 디코딩을 수반한다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 통상적으로 비디오 콘텐츠에서의 공간적 및 시간적 중복성(spatial and temporal redundancy)을 레버리지(leverage)하기 위해 예측(prediction) 및 변환(transform)을 이용한다. 일반적으로, 인트라 또는 인터 프레임 상관(intra or inter frame correlation)을 활용하기 위해 인트라 또는 인터 예측이 이용되고, 이어서 종종 예측 오차들(prediction errors) 또는 예측 잔차들(prediction residuals)로서 표시되는 원래 픽처 블록과 예측된 픽처 블록 사이의 차이들이 변환되고, 양자화되고, 엔트로피 코딩(entropy coding)된다. 예측 프로세스의 양태는 이하에서 더 설명되는 바와 같이 움직임 벡터에 기초한 움직임 보상된 시간적 예측을 수반할 수 있다. 비디오를 재구성하기 위해, 압축된 데이터는 예측, 변환, 양자화 및 엔트로피 코딩에 대응하는 역 프로세스들(inverse processes)에 의해 디코딩된다.
일반적으로, 실시예의 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하는 단계; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 움직임 벡터에 기초하여 현재 코딩 유닛에 포함된 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하는 단계; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하고; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하고; 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하고; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 픽처 정보의 코딩 유닛과 연관된 움직임 벡터를 획득하고; 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 인코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하는 단계; 움직임 벡터 잔차 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 움직임 벡터에 기초하여 현재 코딩 유닛에 포함된 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하는 단계; 움직임 벡터 잔차 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하고; 움직임 벡터 잔차 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하고; 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하고; 움직임 벡터 잔차 및 제1 및 제2 정밀도 레벨들에 기초하여 픽처 정보의 코딩 유닛과 연관된 움직임 벡터를 획득하고; 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 인코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하는 단계; 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 제1 및 제2 움직임 벡터들에 기초하여 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하는 단계; 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 제1 및 제2 움직임 벡터들에 기초하여 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하고; 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하고; 코딩 모드 및 제1 및 제2 움직임 벡터들에 기초하여 픽처 정보의 적어도 일부분을 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하고; 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하고; 코딩 모드 및 제1 및 제2 움직임 벡터들에 기초하여 픽처 정보의 적어도 일부분을 인코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 인코딩된 픽처 정보를 포함하도록 포맷팅된 비트스트림을 수반할 수 있고, 인코딩된 픽처 정보는 본 개시내용에 따른 방법들의 실시예들의 예들 중 임의의 하나 이상에 기초하여 픽처 정보를 처리함으로써 인코딩된다.
일반적으로, 실시예들의 하나 이상의 다른 예는 또한 본 명세서에 설명된 방법들 또는 장치에 따라 비디오 데이터와 같은 픽처 정보를 인코딩 또는 디코딩하기 위한 명령어들을 저장한 컴퓨터 판독가능 저장 매체, 예를 들어, 비휘발성 컴퓨터 판독가능 저장 매체를 제공할 수 있다. 하나 이상의 실시예는 또한 본 명세서에 설명된 방법들 또는 장치에 따라 생성된 비트스트림을 저장한 컴퓨터 판독가능 저장 매체를 제공할 수 있다. 하나 이상의 실시예는 또한 본 명세서에 설명된 방법들 또는 장치에 따라 생성된 비트스트림을 송신 또는 수신하기 위한 방법들 및 장치를 제공할 수 있다.
증가된 압축 효율 및/또는 코딩 효율 및/또는 처리 효율 및/또는 감소된 복잡도 중 하나 이상을 포함하지만 이에 제한되지 않는 비디오 인코딩 및/또는 디코딩 시스템에 대한 개선들을 제공할 수 있는 다양한 수정들 및 실시예들이 이하에서 설명되는 바와 같이 구상된다.
상기의 내용은 본 개시내용의 일부 양태들의 기본적인 이해를 제공하기 위해 청구 대상의 간략화된 개요를 제시한다. 이 개요는 청구 대상의 광범위한 개요가 아니다. 그것은 실시예들의 핵심적인/중요한 요소들을 식별하거나 청구 대상의 범위를 기술하도록 의도되지 않는다. 그것의 유일한 목적은 아래에 제공되는 더 상세한 설명에 대한 서문으로서 청구 대상의 일부 개념들을 간략화된 형태로 제시하는 것이다.
본 개시내용은 첨부 도면들과 함께 아래의 상세한 설명을 고려함으로써 더 잘 이해될 수 있다.
도 1은 비디오 인코더의 실시예의 예를 도시하는 블록도를 제공한다.
도 2는 비디오 디코더의 실시예의 예를 도시하는 블록도를 제공한다.
도 3은 압축된 픽처를 표현하는데 이용될 수 있는 코딩 트리 유닛(Coding Tree Unit)(CTU) 및 코딩 트리 개념들을 도시한다.
도 4는 코딩 트리 유닛(CTU), 및 코딩 유닛(CU)들, 예측 유닛(PU)들 및 변환 유닛(TU)들로의 CTU의 분할을 도시한다.
도 5는 VVC 드래프트 5의 그것과 같은 AMVP 모드에서의 공간적 및 시간적 움직임 벡터 예측 후보들의 예를 도시한다.
도 6은 VVC 드래프트 5의 그것과 같은 AMVP 모드에서의 움직임 벡터 예측 후보들의 계산을 도시한다.
도 7은 아핀(affine) 움직임 모델들의 예들을 도시한다.
도 8은 4x4 서브-CU 기반 아핀 움직임 벡터 필드들의 예들을 도시한다.
도 9는 VTM 드래프트 3의 그것과 같은 아핀 AMVP 모드에서 현재 CU의 아핀 모델을 예측하기 위해 CPMV 예측 후보들이 검색되는 공간 위치들 (A0, A1, B0, B1 및 B2)의 예를 도시한다.
도 10은 VTM의 그것과 같은 아핀 AMVP CU들에 대한 움직임 벡터 예측 프로세스를 도시한다.
도 11은 아핀 AMVP 모드에서 CPMVP 후보들의 리스트를 구성하는 예를 도시한다.
도 12 내지 도 27은 본 개시내용에 따른 다양한 양상들, 실시예들 및 특징들의 예를 도시한다.
도 28은 본 명세서에 설명된 다양한 양태들 및 실시예들에 따른 장치의 실시예의 예를 도시하는 블록도를 제공한다.
도 29는 본 개시내용에 따른 실시예의 예를 도시한다.
도 30은 본 개시내용에 따른 실시예의 다른 예를 도시한다.
도면들은 다양한 양태들 및 실시예들의 예들을 도시하기 위한 것이고, 반드시 유일하게 가능한 구성들은 아니라는 것을 이해해야 한다. 다양한 도면들 전체를 통해, 유사한 참조 번호들은 동일하거나 유사한 특징들을 나타낸다.
도면들에서, 도 1은 HEVC 인코더와 같은 비디오 인코더(100)의 예를 도시한다. HEVC는 JCT-VC(Joint Collaborative Team on Video Coding)에 의해 개발된 압축 표준이다(예를 들어, "ITU-T H.265 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (10/2014), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services - Coding of moving video, High efficiency video coding, Recommendation ITU-T H.265" 참조). 도 1은 또한 HEVC 표준에 대해 개선들이 이루어지는 인코더, 또는 HEVC와 유사한 기술들을 이용하는 인코더, 예를 들어, VVC(Versatile Video Coding)로 지정된 개발 노력과 연관된, JVET(Joint Video Experts Team)에 의해 개발 중인 JEM(Joint Exploration Model)에 기초하거나 그에 따라 개선된 인코더를 도시할 수 있다.
본 출원에서, 용어들 "재구성된" 및 "디코딩된"은 상호교환가능하게 이용될 수 있고, 용어들 "픽셀" 및 "샘플"은 상호교환가능하게 이용될 수 있고, 용어들 "픽처" 및 "프레임"은 상호교환가능하게 이용될 수 있다.
HEVC 사양은 "블록들"과 "유닛들" 사이를 구별하며, 여기서 "블록"은 샘플 어레이에서의 특정 영역(예를 들어, 루마(luma), Y)을 처리하고, "유닛"은 모든 인코딩된 컬러 성분들(Y, Cb, Cr, 또는 단색)의 병치된 블록들, 신택스 요소들, 및 블록들과 연관되는 예측 데이터(예를 들어, 움직임 벡터들)를 포함한다.
코딩을 위해, 픽처는 구성가능한 크기를 갖는 정사각형 형상의 코딩 트리 블록(CTB)들로 분할되고, 코딩 트리 블록들의 연속적인 세트는 슬라이스로 그룹화된다. 코딩 트리 유닛(CTU)은 인코딩된 컬러 성분들의 CTB들을 포함한다. CTB는 코딩 블록(CB)들로의 쿼드트리 분할의 루트이고, 코딩 블록은 하나 이상의 예측 블록(PB)으로 분할될 수 있고, 변환 블록(TB)들로의 쿼드트리 분할의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 코딩 유닛(CU)은 예측 유닛(PU)들 및 변환 유닛(TU)들의 트리-구조화된 세트를 포함하고, PU는 모든 컬러 성분들에 대한 예측 정보를 포함하고, TU는 각각의 컬러 성분에 대한 잔차 코딩 신택스 구조를 포함한다. 루마 성분의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다. 본 출원에서, 용어 "블록"은 CTU, CU, PU, TU, CB, PB 및 TB 중 임의의 것을 지칭하기 위해 이용될 수 있다. 또한, "블록"은 H.264/AVC 또는 다른 비디오 코딩 표준들에서 명시된 바와 같은 매크로블록 및 파티션을 지칭하기 위해, 그리고 보다 일반적으로는 다양한 크기들의 데이터의 어레이를 지칭하기 위해 이용될 수 있다.
도 1의 인코더(100)에서, 픽처는 후술하는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처 정보는 입력에 제공되고, 맵핑(101) 및 이미지 분할(102)을 겪는다. 맵핑(101)은 전형적으로 샘플마다 적용되고, 입력 샘플 값들에 1D 함수를 적용하여 이들을 다른 샘플 값들로 변환한다. 예를 들어, 1D-함수는 샘플 값 범위를 확장하고, 코드워드 범위에 걸쳐 코드워드들의 더 나은 분포를 제공할 수 있다. 이미지 분할(102)은 레이트-왜곡 트레이드오프를 최적화하기 위해 이미지를 상이한 크기들 및 형상들의 블록들로 분할한다. 맵핑 및 분할은 전술한 바와 같이 픽처 정보를 CU들의 단위로 처리할 수 있다. 각각의 CU는 인트라 또는 인터 모드를 이용하여 인코딩된다. CU가 인트라 모드에서 인코딩될 때, 인트라 예측(160)을 수행한다. 인터 모드에서, 움직임 추정(175) 및 보상(170)이 수행된다. 인코더는 CU를 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 이용할지를 결정하고(105), 예측 모드 플래그에 의해 인트라/인터 결정을 나타낸다. 인트라 또는 인터 예측 결정(105)에 이어서 순방향 맵핑(191)을 수행하여 예측된 블록을 생성한다. 일반적으로, 순방향 맵핑 처리(191)는 맵핑(101)과 유사하고 맵핑에 상보적일 수 있다. 예측 잔차들은 원래의 이미지 블록으로부터 예측된 블록을 감산(110)함으로써 계산된다.
예측 잔차들은 그 후 변환(125) 및 양자화(130)된다. 양자화된 변환 계수들뿐만 아니라, 움직임 벡터들 및 다른 신택스 요소들은 엔트로피 코딩되어(145) 비트스트림을 출력한다. 인코더는 또한 변환을 스킵하고 4x4 TU 기반으로 변환되지 않은 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 또한 변환 및 양자화 둘 다를 바이패스할 수 있는데, 즉, 잔차는 변환 또는 양자화 프로세스의 적용 없이 직접 코딩된다. 직접 PCM 코딩에서는, 예측이 적용되지 않고 코딩 유닛 샘플들이 비트스트림으로 직접 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측들을 위한 참조를 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역 양자화되고(140) 역 변환된다(150). 디코딩된 예측 잔차들과 예측된 블록을 결합(155)함으로써, 이미지 블록이 재구성된다. 인루프(in-loop) 필터들(165)이 재구성된 픽처에 적용되어, 예를 들어, 디블록킹/SAO(Sample Adaptive Offset) 필터링을 수행하여 인코딩 아티팩트들을 감소시킨다. 역 맵핑(190)은 순방향 맵핑의 역이다(191). 필터링된 이미지는 참조 픽처 버퍼(180)에 저장된다.
도 2는 HEVC 디코더와 같은 비디오 디코더(200)의 예의 블록도를 도시한다. 예시적인 디코더(200)에서, 신호 또는 비트스트림은 아래에 설명되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 일반적으로 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행하는, 도 1에 설명되는 바와 같은 인코딩 패스(pass)에 역인 디코딩 패스를 수행한다. 도 2는 또한 HEVC 표준에 대해 개선들이 이루어지는 디코더 또는 JEM에 기초하거나 그에 따라 개선되는 디코더와 같은 HEVC와 유사한 기술들을 이용하는 디코더를 도시할 수 있다.
특히, 디코더의 입력은 도 1의 비디오 인코더(100)와 같은 비디오 인코더에 의해 생성될 수 있는 비디오 신호 또는 비트스트림을 포함한다. 신호 또는 비트스트림은 변환 계수들, 움직임 벡터들, 및 다른 코딩된 정보를 획득하기 위해 먼저 엔트로피 디코딩되고(230), 이어서 분할(210)된다. 분할(210)은 디코딩된 데이터에 기초하여 이미지를 상이한 크기들 및 형상의 블록들로 분할한다. 변환 계수들은 예측 잔차들을 디코딩하기 위해 역 양자화되고(240) 역 변환된다(250). 디코딩된 예측 잔차들과 예측된 블록을 결합(255)함으로써, 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(260) 또는 움직임 보상된 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). AMVP(Advanced Motion Vector Prediction) 및 병합 모드 기법들은 참조 블록의 서브-정수(sub-integer) 샘플들에 대한 보간된 값들을 계산하기 위해 보간 필터들을 이용할 수 있는 움직임 보상을 위한 움직임 벡터들을 도출하기 위해 이용될 수 있다. 인루프 필터들(265)은 재구성된 이미지에 적용된다. 필터링된 이미지는 참조 픽처 버퍼(280)에 저장된다.
HEVC 비디오 압축 표준에서, 움직임 보상된 시간적 예측은 비디오의 연속적인 픽처들 사이에 존재하는 중복성을 활용하기 위해 이용된다. 그렇게 하기 위해, 움직임 벡터는 각각의 예측 유닛(PU)에 연관된다. 각각의 코딩 트리 유닛(CTU)은 압축된 영역에서 코딩 트리(CT)에 의해 표현된다. 이것은 CTU의 쿼드트리 분할이고, 각각의 리프(leaf)는 도 3에 도시된 바와 같이 코딩 유닛(CU)으로 지칭된다.
그 다음, 각각의 CU에는 일부 인트라 또는 인터 예측 파라미터들 또는 예측 정보(예측 정보(Prediction Info))가 주어진다. 그렇게 하기 위해, CU는 하나 이상의 예측 유닛(PU)으로 공간적으로 분할되고, 각각의 PU에는 일부 예측 정보가 할당된다. 인트라 또는 인터 코딩 모드는 코딩 유닛들, 예측 유닛들 및 변환 유닛들로의 코딩 트리 유닛의 분할의 예를 도시하는 도 4에 도시된 바와 같이 CU 레벨 상에 할당된다. CU를 코딩하기 위해, 예측 블록 또는 예측 유닛(PU)은 이웃하는 재구성된 샘플들(인트라 예측)로부터 또는 디코딩된 픽처 버퍼(DPB)에 저장된 이전에 재구성된 픽처들(인터 예측)로부터 구축된다. 그 다음, 원래의 샘플들과 PU 샘플들 사이의 차이로서 계산된 잔차 샘플들이 변환되고 양자화된다.
정확히 하나의 움직임 벡터(MV)가 HEVC에서 각각의 PU에 할당된다. 이 움직임 벡터는 고려된 PU의 움직임 보상된 시간적 예측에 이용된다. 따라서, HEVC에서, 예측된 블록과 그 참조 블록을 링크하는 움직임 모델은 단순히 변환에 있다.
움직임 데이터를 인코딩하기 위해 HEVC에서 2개의 모드가 이용된다. 이들은 각각 AMVP(Adaptive Motion Vector Prediction) 및 병합(Merge)이라고 지칭된다. AMVP는 기본적으로 현재 PU를 예측하는데 이용되는 참조 픽처(들), 움직임 벡터 예측자 인덱스(2개의 예측자들의 리스트 중에서 취해짐) 및 움직임 벡터 차이를 시그널링하는 것을 수반한다. 병합 모드는 움직임 데이터 예측자들의 리스트에 수집된 일부 움직임 데이터의 인덱스를 시그널링 및 디코딩하는 것을 수반한다. 리스트는 6개의 후보들로 이루어지고, 디코더 측 및 인코더 측 상에서 동일한 방식으로 구성된다. 따라서, 병합 모드는 병합 리스트로부터 취해진 일부 움직임 정보를 도출하는 것을 목표로 한다. 병합 리스트는 전형적으로 현재 PU가 처리되고 있을 때 그들의 디코딩된 상태에서 이용가능한, 일부 공간적 및 시간적 주변 블록들과 연관된 움직임 정보를 포함한다.
HEVC 이외의 코덱들 및 비디오 압축 툴들, 예를 들어, JEM(Joint Exploration Model) 및 VVC(Versatile Video Coding) 테스트 모델(VVC Test Model)(VTM)로 알려진 VVC 참조 소프트웨어에서 JVET(Joint Video Exploration Team) 그룹에 의해 개발된 것은 HEVC의 것들과는 상이하거나 그에 부가하여 다양한 모드들 및 특징들을 제공할 수 있다. 예를 들어, 본 개시내용의 하나 이상의 양태는 VVC 드래프트 5와 관련하여 비제한적인 방식으로 설명될 것이다. 즉, VVC 드래프트 5의 맥락에서의 설명은 단지 설명의 편의를 위한 것이다. 본 명세서에 설명된 양태들 및 실시예들은 다른 표준들, 애플리케이션들, 하드웨어, 소프트웨어 등과 같은 다른 맥락들에서 적용될 수 있다.
HEVC에 대해, VVC 드래프트 5의 AMVP 모드는 AMVP 모드에서 CU의 움직임 정보를 예측하기 위해 이용될 수 있는 2개의 움직임 벡터 예측 후보들을 수반한다. VVC 드래프트 5의 AMVP 모드에서 이용가능한 공간적 및 시간적 움직임 벡터 예측 후보들이 도 5에 도시되어 있다. 그러나, AMVP 후보들의 세트를 구성하기 위한 프로세스는 약간 상이하다. 먼저, 현재 CU에 대해 연관된 움직임 벡터 분해능에 대한 계산된 후보의 라운딩(rounding)이 수행된다. 이것은 VVC 드래프트 5의 적응형 움직임 벡터 분해능(AMVR) 툴과 관련되고, 이는 이하에서 더 논의된다. 또한, 이력 기반 움직임 벡터 예측자(HMVP)인 추가적인 후보가 AMVP 후보 리스트를 채우기 위해 TMVP 후보 이후에 고려된다. 설명된 프로세스는 VVC 드래프트 5의 AMVP 모드에서 움직임 벡터 예측 후보들의 계산의 예를 도시하는 도 6에 도시되어 있다. 알 수 있는 바와 같이, HMVP 후보는 AMVP 후보 리스트 구성 프로세스에서 시간적 움직임 벡터 예측자(TMVP) 이후에 고려된다. AMVP에서 구성된 움직임 벡터 예측자 후보들은 도 6의 프로세스의 마지막 단계에서 현재 처리되고 있는 코딩 유닛에 연관된 AMVR(Adaptive Motion Vector Resolution)에 연관된 정밀도 레벨로 라운딩되고 있다는 것이 또한 주목될 수 있다. VVC의 AMVR 코딩 툴은 이하에서 더 논의된다.
위에서 언급된 바와 같이, HEVC 이외의 코덱들 및 비디오 압축 툴들은 상이한 또는 추가적인 특징들을 제공할 수 있다. 예를 들어, VVC 드래프트 5는 개선된 시간적 예측을 제공하기 위해 HEVC의 변환 모델을 넘어서는 추가적인 움직임 모델들을 지원한다. 그러한 추가적인 모델들을 용이하게 하기 위해, PU는 서브-PU로 공간적으로 분할될 수 있고, 더 강건한 모델은 각각의 PU에 전용 움직임 벡터를 할당하기 위해 이용될 수 있다. 예를 들어, VVC에 도입된 움직임 모델은 CU에서 움직임 벡터들을 표현하기 위해 아핀 모델을 이용하는 것을 수반하는 아핀 움직임 보상이다.
이용된 움직임 모델들은 2개의 제어 포인트들(도 7의 좌측) 또는 3개의 제어 포인트들(도 7의 우측)에 대해 도 7에 의해 도시된다. 4-파라미터 아핀 모델이라고도 지칭되는, 2개의 제어 포인트들에 대한 아핀 움직임 필드는 고려된 블록 내의 각각의 위치 (x, y)에 대한 다음의 움직임 벡터 성분 값들을 포함한다:
Figure pct00001
수학식 1: 예측할 CU 내부의 움직임 필드를 생성하는데 이용된 4-파라미터 아핀 모델
여기서,
Figure pct00002
Figure pct00003
는 아핀 움직임 필드를 생성하는데 이용된 소위 제어 포인트 움직임 벡터들이고,
Figure pct00004
는 움직임 벡터 상부-좌측 코너 제어 포인트이고,
Figure pct00005
는 움직임 벡터 상부-우측 코너 제어 포인트이다.
수학식 1은 수학식 3에 의해 정의된 아핀 모델 파라미터들 a 및 b에 기초하여 수학식 2로서 다시 쓰여질 수 있다:
Figure pct00006
수학식 2: 4-파라미터 아핀 모드에서 코딩된 CU의 서브-블록-기반 움직임 필드를 표현하는데 이용된 4-파라미터 아핀 모델
Figure pct00007
수학식 3: 4-파라미터 아핀 모델에 대한 아핀 모델 파라미터들
6-파라미터 아핀 움직임 모델이라고 지칭되는, 3개의 제어 포인트를 갖는 모델이 또한 주어진 코딩 유닛의 서브-블록-기반 움직임 필드를 표현하는데 이용될 수 있다. 6-파라미터 아핀 모델의 경우의 움직임 필드는 수학식들 4, 5 및 6에서와 같이 계산된다:
Figure pct00008
수학식 4: 6-파라미터 아핀 모드에서 코딩된 CU의 서브-블록-기반 움직임 필드를 표현하는데 이용된 6-파라미터 아핀 움직임 필드
Figure pct00009
수학식 5: 6-파라미터 아핀 움직임 필드의 대안적인 표현
Figure pct00010
수학식 6: 6-파라미터 아핀 모델에 대한 아핀 모델 파라미터들
실제로, 복잡성을 합리적으로 유지하기 위해, 2개의 제어 포인트 모델(도 8의 좌측) 및 3개의 제어 포인트 모델(도 8의 우측)에 대한 4x4 서브-CU 기반 아핀 움직임 벡터 필드들을 보여주는 도 8에 도시된 바와 같이, 고려된 CU의 4x4 서브-블록(서브-CU)의 각각의 샘플에 대해 동일한 움직임 벡터가 계산된다. 각각의 서브-블록의 중심의 위치에서, 제어 포인트 움직임 벡터들로부터 아핀 움직임 벡터가 계산된다. 획득된 움직임 벡터(MV)는 1/16-펠(pel) 정확도로 표현된다.
VVC 드래프트 5에서, 8x8보다 큰 크기를 갖는 CU는 아핀 AMVP 모드에서 예측될 수 있다. 이것은 CU 레벨에서 코딩된 비트스트림에서의 플래그를 통해 시그널링된다. 그 인터 CU에 대한 아핀 움직임 필드의 생성은 움직임 벡터 차이 플러스 제어 포인트 움직임 벡터 예측(CPMVP)의 추가를 통해 디코더에 의해 획득되는 제어 포인트 움직임 벡터들(CPMV)을 결정하는 것을 포함한다. CPMVP는 현재 CU의 CPMV의 예측자들로서 역할을 하는 움직임 벡터들의 (2개의 제어 포인트 움직임 벡터들에 의해 특정된 4-파라미터 아핀 모델에 대한) 쌍 또는 (3개의 제어 포인트 움직임 벡터들에 의해 특정된 6-파라미터 아핀 모델에 대한) 트리플렛(triplet)이다.
현재 CU의 CPMVP는 (아핀 병합 모드에서와 같이) 아핀 이웃 CU들로부터 물려받을 수 있다. 물려받은 CPMVP가 검색되는 공간 위치는, 예를 들어, VTM 드래프트 3에서와 같이 아핀 AMVP에서 현재 CU의 아핀 모델을 예측하기 위해 CPMV 예측 후보들이 검색되는 공간 위치들(A0, A1, B0, B1 및 B2)을 보여주는 도 9에 의해 도시된다. 물려받은 CPMVP는 그것의 참조 픽처가 현재 CU의 참조 픽처와 동일한 경우에 유효한 것으로 간주된다.
아핀 AMVP 후보들은 또한 비-아핀 움직임 벡터들로부터 구성될 수 있다. 이것은 VTM에서와 같이 아핀 AMVP CU들에 대한 움직임 벡터 예측을 보여주는 도 10에 도시된 바와 같이 각각의 세트 (A, B, C) 및 (D, E) 및/또는 (F, G)에서 각각 움직임 벡터 예측자를 취함으로써 달성된다. 아핀 AMVP에서 CPMVP 후보들의 리스트를 구성하는 더 상세한 예가 도 11에 도시된다.
움직임 보상 툴의 다른 예는 VVC 드래프트 5에서 이용가능하게 포함된 인트라 블록 카피 툴(Intra Block Copy tool)(IBC)이다. 그것은 소위 블록 벡터를 고려된 CU에 할당하는 것을 수반하는 CU 레벨 인트라 코딩 모드이다. 블록 벡터는 현재 CU와, 현재 픽처 내부의 샘플들의 이미 재구성된 블록인 참조 블록 사이의 변위를 표시한다.
VVC 드래프트 5의 적응형 움직임 벡터 분해능(AMVR) 코딩 툴은 다양한 정확도(또는 정밀도, 또는 분해능) 레벨들에서 CU의 움직임 벡터와 그것의 움직임 벡터 예측자 사이의 움직임 벡터 차이(MVd)를 시그널링하기 위한 수단을 제공한다. HEVC에서, 슬라이스 헤더 플래그(use_integer_mv_flag)는 MVd들이 쿼터-펠 정확도 (quarter-pel accuracy)또는 정수-펠 정확도(integer-pel accuracy)로 코딩되는지를 표시한다. 이것은 고려된 슬라이스에서의 모든 CU들이 동일한 MVd 정확도 레벨로 코딩/디코딩된다는 것을 의미한다. VVC 드래프트 5에서, 일부 CU-레벨 정보는 CU의 MVd 정보의 분해능을 표시하기 위해 시그널링될 수 있다. AMVR은 정상 AMVP 또는 아핀 AMVP 모드들에서 코딩된 CU들에 적용될 수 있다.
정상 AMVP 모드에서, 지원되는 MVd 분해능 레벨들은 쿼터-루마-샘플, 정수-루마-샘플 또는 4-루마-샘플이다. 아핀 AMVP 모드에서, 지원되는 MVd 분해능 레벨들은 쿼터-루마-샘플, 정수-루마-샘플 또는 1/16-루마-샘플이다. CU 레벨에 대한 AMVR 정보의 시그널링은 MVd 정보에 대한 쿼터-루마-샘플 정확도의 이용을 표시하는 제1 플래그를 수반한다. 쿼터-루마-샘플 정밀도가 이용되지 않으면, 제2 플래그는 정상 AMVP 모드에서 정수-루마-샘플 또는 4-루마-샘플 정확도 레벨의 이용을 표시한다. 아핀 AMVP 모드의 경우에, 제2 플래그는 정수-루마-샘플 또는 1/16-루마-샘플 정확도 레벨의 이용을 표시한다. 마지막으로, 도 6에 도시된 예에 의해 예시된 바와 같이, 움직임 벡터 예측자는 MVd의 그것과 동일한 AMVR 정밀도로 라운딩되어, 재구성된 움직임 벡터가 원하는 정밀도 레벨을 갖는 것을 보장한다.
IBC(Intra Block Copy) 인트라 코딩 모드와 관련하여, 움직임 벡터 정밀도는 IBC 코딩된 CU에 대해 시그널링되는 시그널링된 amvr_precision_flag에 따라, 1-루마 샘플 분해능 또는 4-루마 샘플 분해능일 수 있다.
도 12는 VVC 드래프트 5에 따라 AMVP 및 AMVR 모드에서 CU의 움직임 정보의 재구성의 예를 도시한다. 더 구체적으로, 도 12에 도시된 예는 이 CU에 대해 활성인 AMVR을 갖는 (아핀 AMVP 모드와 대조적으로) 병진 AMVP 모드에서 코딩될 입력 CU에 대한 움직임 벡터들의 재구성을 위한 프로세스를 도시한다. 이 프로세스는 디코더 측에서 발생한다. 이 프로세스에 대한 입력은 파싱된 코딩 유닛이다.
도 12에 도시된 프로세스는 현재 CU가 L0 참조 픽처 리스트에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트함으로써 시작한다. 만약 그렇다면, 4개의 다음의 단계들이 적용된다.
- AMVR 프로세스의 역 프로세스가 적용된다. 이것은 L0 참조 픽처와 연관된 파싱된 MVd(움직임 벡터 차이)를, 움직임 데이터를 표현하기 위해 디코더에 의해 이용되는 내부 정밀도로 변환하는 것을 수반한다.
- 다음 단계는 현재 CU에 대한 참조 픽처 L0에 대한 AMVP 후보 리스트를 계산하는 것을 수반한다. 이것은 도 6을 참조하여 이미 설명된 프로세스를 따른다. 이것이 행해지면, 현재 참조 픽처 리스트에서의 현재 CU에 대한 움직임 벡터 예측자는 알려져 있고 AMVPCand[mvpIdxL0]로 표시되며, 여기서 mvpIdxL0는 현재 CU에 대해 이용되는 MV 예측자 후보의 인덱스이고, 이는 파싱 프로세스로부터 발생한다.
- 다음 단계는 MV 예측자와 파싱된 움직임 벡터 차이의 합으로서 현재 참조 픽처 리스트에서의 현재 CU의 움직임 벡터를 재구성한다.
- 다음으로, 재구성된 움직임 벡터는 고려된 코덱에서의 움직임 벡터의 내부 표현에 따라 클리핑된다.
프로세스의 다음 단계는 현재 블록이 참조 픽처 리스트 L1에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트한다. 만약 그렇다면, 위와 동일한 프로세스가 적용되지만, 참조 픽처 리스트 L1의 경우이다. 도 12의 프로세스의 결과로서, 2개의 재구성된 움직임 벡터들 MVL0 및 MVL1이 현재 인터 CU에 대해 획득되고, 현재 CU의 움직임 보상된 시간적 예측에 대해 나중에 이용된다.
일반적으로, 본 개시내용의 양태는 위에서 설명된 VVC 드래프트 5의 것들과 같은 접근법들의 압축 효율, 예를 들어, AMVR 툴에 의해 제공되는 코딩 이득을 증가시키는 것을 수반한다. 예를 들어, VVC 드래프트 5의 기존의 AMVR 툴은 일반적으로 x-좌표 및 y-좌표 둘 다에 대해, MVd 코딩의 분해능 레벨을 선택하는 것을 수반한다. 일반적으로, 본 명세서에 설명된 실시예의 적어도 하나의 예는 AMVR 툴에서 증가된 유연성을 제공한다. 예로서, 적어도 하나의 실시예는 코딩된 움직임 벡터 차이(MVd)의 x-값과 y-값 사이의 상이한 정확도 레벨들을 제공한다. 다른 예로서, 적어도 하나의 실시예는 양방향 예측 코딩 유닛의 경우에, L0 및 L1 움직임 벡터 차이 코딩 사이의 상이한 정확도 레벨들을 제공한다.
일반적으로, 본 명세서에서 설명된 실시예의 적어도 하나의 예(본 명세서에서 실시예 1로 지칭됨)는 IBC 코딩된 코딩 유닛의 경우에 블록 벡터의 2개의 성분들의 분해능을 구별하는 것을 수반한다.
IBC 모드에서 코딩되는 CU의 움직임 데이터의 파싱의 예가 도 13에 도시된다. 그것은 현재 CU의 MVd(움직임 벡터 차이)를 파싱하는 것을 수반하고, 이후 현재 CU와 연관된 플래그, 예를 들어, mvp_l0_flag로 지정된 플래그는 어느 MV 예측자가 현재 CU의 블록 벡터를 코딩하기 위해 이용되는지를 표시한다. AMVR이 현재 CU에 대해 허용되면, 현재 CU와 연관된 플래그, 예를 들어, amvr_precision_flag로 지정된 플래그가 파싱되어, 디폴트 1-루마-샘플 MV 분해능이 현재 CU에 대해 이용되는지, 또는 4-루마-펠 분해능이 이용되는지의 표시를 획득한다.
VVC 드래프트 5에 따라 IBC 모드에서 코딩되는 CU의 움직임 데이터의 디코더 재구성의 예가 도 14에 의해 도시된다. 도 14의 예는 현재 CU의 파싱된 MVd 벡터를 코딩된 AMVR 정밀도 레벨로부터 움직임 벡터 표현을 위한 내부 정밀도로 변환함으로써, 디코더 측 AMVR 프로세스를 적용하는 것을 수반한다. 그 후, 현재 CU의 블록 벡터는 현재 CU에 이용되는 MV 예측자와 내부 정밀도 변환된 움직임 벡터 차이(MVd)를 가산함으로써 재구성된다. 다음, 재구성된 MV는, 예를 들어, VVC 드래프트 5에 따라 유효한 유효 MV 표현을 제공하도록 클리핑된다.
본 실시예에 따라 IBC 모드에서 코딩되는 CU의 움직임 데이터의 파싱의 예가 도 15에 도시되어 있다. 이 예는 현재 CU의 MVd(움직임 벡터 차이)를 파싱하는 것을 수반하고, 그 후 현재 CU와 연관된 플래그, 예를 들어, mvp_l0_flag로 지정된 플래그가 현재 CU의 블록 벡터를 코딩하기 위해 어느 MV 예측자가 이용되는지를 표시한다. 그 후, AMVR이 현재 CU에 대해 허용되는 경우, 현재 CU와 연관된 플래그, 예를 들어, amvr_precision_flag로 지정된 플래그가 파싱되어, 디폴트 1-루마-샘플 MV 분해능이 현재 CU에 대해 이용되는지, 또는 4-루마-펠 분해능이 코딩된 MVd의 x- 또는 y-성분에 대해 이용되는 지의 표시를 획득한다. 다음, 이 플래그가 참(true)이고 코딩된 MVd의 x-성분이 0이 아닌 경우, 플래그, 예를 들어, amvr_flag_x로 지정된 플래그가 파싱되어, 현재 MVd의 x-성분이 디폴트 1-루마-샘플 정밀도 레벨에서 또는 4-루마-샘플 정밀도 레벨로 시그널링되는지의 표시를 획득한다. 다음, 두 플래그들, 예를 들어, amvr_precision_flag 및 amvr_flag_x가 참인 경우, 플래그, 예를 들어, amvr_flag_y로 지정된 플래그가 파싱되어, 현재 MVd의 y-성분이 디폴트 1-루마-샘플 정밀도 레벨에서 또는 4-루마-샘플 정밀도 레벨로 시그널링되는지의 표시를 획득한다. 그렇지 않으면, amvr_precision_flag가 참이고 amvr_flag_x가 거짓인 경우, amvr_flag_y는 참으로 추론된다. 마지막으로, amvr_precision_flag가 거짓인 경우, amvr_flag_x 및 amvr_flag_y 둘 다는 거짓으로 추론된다.
본 실시예에 따라 IBC 모드에서 코딩되는 CU의 움직임 데이터의 디코더 재구성의 예가 도 16에 도시되어 있다. 이 예는 현재 CU의 파싱된 MVd 벡터의 x-성분을 x-성분에 대한 코딩된 AMVR 정밀도 레벨로부터 움직임 벡터 표현을 위한 내부 정밀도로 먼저 변환함으로써, 디코더 측 AMVR 프로세스를 적용하는 것을 수반한다. 그 후, 그것은 현재 CU의 파싱된 MVd 벡터의 y-성분을 y-성분에 대한 코딩된 AMVR 정밀도 레벨로부터 움직임 벡터 표현을 위한 내부 정밀도로 변환함으로써, y-성분에 대한 디코더 측 AMVR 프로세스를 적용한다. 그 후, 현재 CU의 블록 벡터는 현재 CU에 이용되는 MV 예측자와 내부 정밀도 변환된 움직임 벡터 차이(MVd)를 가산함으로써 재구성된다. 다음, 재구성된 MV는, 예를 들어, VVC 드래프트 5에 따라 유효한 유효 MV 표현을 제공하도록 클리핑된다.
실시예(실시예 1)의 현재 예를 구현하기에 적합한 coding_unit 신택스 구조의 예가 본 문서에 첨부된 신택스 구조 리스팅 1에 도시된다.
일반적으로, 본 명세서에서 설명되는 실시예의 적어도 하나의 다른 예(본 명세서에서 실시예 2로 지칭됨)는 병진 AMVP 움직임 보상의 경우에 x 및 y 움직임 벡터 성분들에서의 디커플링된 분해능을 수반한다.
예를 들어, VVC 드래프트 5에 따라 AMVP 모드에서 코딩되는 CU의 AMVR 데이터의 파싱이 도 17에 도시되어 있다. 그것은 제1 플래그가 참인 경우에, 현재 CU와 연관된 제1 플래그, 예를 들어, amvr_flag로 지정된 플래그, 및 그 후 현재 CU와 연관된 제2 플래그, 예를 들어, amvr_precision_flag로 지정된 플래그를 파싱하는 것을 수반한다. 제1 플래그, 예를 들어, amvr_flag 신택스 요소는 디폴트 1/4-루마-샘플 정밀도 레벨이 현재 CU의 MV 데이터를 코딩하기 위해 이용되는지를 표시한다. 그 후, 제1 플래그가 참인 경우에, 현재 CU와 연관된 제2 플래그, 예를 들어, amvr_precision_flag는 디폴트 1-루마-샘플 또는 4-루마-샘플 MV 분해능이 현재 CU에 대해 이용되는지를 표시하기 위해 파싱된다.
본 실시예에 따라, AMVP 모드에서 코딩되는 CU의 AMVR 데이터의 파싱의 예가 도 18에 도시되고, 현재 CU와 연관된 플래그, 예를 들어, amvr_flag로 지정된 플래그를 파싱하는 것을 수반한다. 그 후, amvr_flag가 참이고, L0 또는 L1 리스트 MVd의 디코딩된 x-성분이 0이 아닌 경우에, 현재 MVd의 x-성분이 디폴트 1/4-루마-샘플 정밀도 레벨에서 시그널링되는지 여부를 표시하기 위해 다른 플래그, 예를 들어, 지정된 amvr_flag_x가 파싱된다. 다음, 플래그들 amvr_precision_flag 및 amvr_flag_x 둘 다가 참인 경우에, 현재 MVd의 y-성분이 디폴트 1/4-루마-샘플 정밀도 레벨에서 시그널링되는지 여부를 표시하기 위해 다른 플래그, 예를 들어, amvr_flag_y로 지정된 플래그가 파싱된다. 그렇지 않으면, amvr_precision_flag가 참이고 amvr_flag_x가 거짓인 경우, amvr_flag_y는 참으로 추론된다. 다른 경우들은 다음과 같이 존재한다:
- amvr_precision_flag가 거짓이면, amvr_flag_x 및 amvr_flag_y 둘 다는 거짓인 것으로 추론된다;
- amvr_flag가 참이면, 현재 CU의 amvr_precision_flag는 디폴트 1-루마-샘플 또는 4-루마-샘플 MV 분해능이 현재 CU에 이용되는지를 표시한다;
- amvr_flag_x가 참이면, MVd의 x-성분에 이용되는 정밀도 레벨은 amvr_flag 및 amvr_precision_flag에 의해 표시되는 정밀도 레벨이다;
- amvr_flag_y가 참이면, MVd의 y-성분에 이용되는 정밀도 레벨은 amvr_flag 및 amvr_precision_flag에 의해 표시되는 정밀도 레벨이다.
도 19는 본 실시예에서, (아핀 AMVP 모드와는 대조적으로) 병진 AMVP 모드에서 코딩될 입력 CU에 대한 움직임 벡터들의 재구성의 예를 도시하며, AMVR은 이 CU에 대해 활성이다. 이 프로세스는 디코더 측에서 발생한다. 이 프로세스에 대한 입력은 파싱된 코딩 유닛이다.
도 19의 예는 현재 CU가 L0 참조 픽처 리스트에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트함으로써 시작한다. 만약 그렇다면, 4개의 다음의 단계들이 적용된다.
- AMVR 프로세스의 역 프로세스는 코딩된 MVd의 x-성분에 적용된다. 이것은 L0 참조 픽처와 연관된 파싱된 MVd(움직임 벡터 차이)의 x-성분을, L0 리스트 Mvd의 x-성분의 코딩을 위한 정밀도 레벨로부터, 움직임 데이터를 표현하기 위해 디코더에 의해 이용되는 내부 정밀도로 변환하는 것을 수반한다.
- 다음, AMVR 프로세스의 역 프로세스가 코딩된 MVd의 y-성분에 적용된다. 이것은 L0 참조 픽처와 연관된 파싱된 MVd(움직임 벡터 차이)의 y-성분을, L0 리스트 MVd의 y-성분의 코딩을 위한 정밀도 레벨로부터, 움직임 데이터를 표현하기 위해 디코더에 의해 이용되는 내부 정밀도로 변환하는 것을 수반한다.
- 다음, 현재 CU에 대한 참조 픽처 L0에 대한 AMVP 후보 리스트들이 계산된다. 이것은 도 6을 참조하여 이미 설명된 프로세스를 따른다. 이것이 행해지면, 현재 참조 픽처 리스트에서의 현재 CU에 대한 움직임 벡터 예측자는 알려져 있고 AMVPCand[mvpIdxL0]로 표기되며, 여기서 mvpIdxL0는 현재 CU에 대해 이용되는 MV 예측자 후보의 인덱스이고, 이는 파싱 프로세스로부터 초래된다.
- 다음, 현재 참조 픽처 리스트에서의 현재 CU의 움직임 벡터는 MV 예측자와 파싱되고 성분마다 정밀도 변환된 움직임 벡터 차이의 합으로서 재구성된다.
- 마지막으로, 재구성된 움직임 벡터는 고려된 코덱에서의 움직임 벡터의 내부 표현에 따라 클리핑된다.
다음으로, 도 19의 예는 현재 블록이 참조 픽처 리스트 L1에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트한다. 만약 그렇다면, 상기와 동일한 프로세스가 적용되지만, 참조 픽처 리스트 L1의 경우이다.
그 결과, 도 19의 예는 현재 인터 CU에 대한 2개의 재구성된 움직임 벡터들 MVL0 및 MVL1을 획득하고, 현재 CU의 움직임 보상된 시간적 예측을 위해 나중에 이용된다.
실시예(실시예 2)의 현재 예를 구현하기에 적합한 coding_unit 신택스 구조의 예가 본 문서에 첨부된 신택스 구조 리스팅 2에 도시된다.
일반적으로, 본 명세서에서 설명되는 실시예의 적어도 하나의 다른 예(본 명세서에서 실시예 3으로 지칭됨)는 아핀 움직임 보상의 경우에 x- 및 y-움직임 벡터 성분들에서의 디커플링된 분해능을 수반한다. 예를 들어, VVC 드래프트 5에 따라 아핀 AMVP 모드에서 코딩되는 CU의 AMVR 데이터의 파싱의 예가 도 20에 도시된다. 도 20의 예는 적어도 하나의 제어 포인트 움직임 벡터가 0이 아닌 연관된 MVd를 갖는 경우에 현재 CU의 플래그, 예를 들어, 지정된 amvr_flag를 파싱하는 것을 수반한다. 그 후, amvr_flag가 참이면, 현재 CU의 다른 플래그, 예를 들어, 지정된 amvr_precision_flag가 파싱된다. amvr_flag 신택스 요소는 디폴트 1/4-루마-샘플 정밀도 레벨이 현재 CU의 MV 데이터를 코딩하기 위해 이용되는지를 표시한다. 그 후, amvr_flag가 참이면, 현재 CU의 플래그 amvr_precision_flag가 파싱된다. 그것은 1-루마-샘플 또는 4-루마-샘플 MV 분해능이 현재 CU에 대해 이용되는지를 표시한다.
본 실시예에 따른, 아핀 AMVP 모드에서 코딩되는 CU의 AMVR 데이터의 파싱의 예가 도 21에 도시되어 있다. 도 21의 예는 현재 CU와 연관된 플래그, 예를 들어, 지정된 amvr_flag를 파싱하는 것을 수반한다. 그 후, amvr_flag가 참이고 L0 또는 L1 리스트 MVd의 디코딩된 x-성분이 현재 CU의 적어도 하나의 CPMV에 대해 0이 아닌 경우에, 다른 플래그, 예를 들어, 지정된 amvr_flag_x가 파싱된다. 이는 각각의 CPMV의 MVd의 x-성분이 디폴트 1/4-루마-샘플 정밀도 레벨에서 시그널링되는지 여부를 표시한다. 다음, 플래그들 amvr_precision_flag 및 amvr_flag_x 둘 다가 참인 경우에, 다른 플래그, 예를 들어, 지정된 amvr_flag_y가 파싱된다. 이는 현재 MVd의 y-성분이 각각의 CPMV에 대해 디폴트 1/4-루마-샘플 정밀도 레벨에서 시그널링되는지 여부를 표시한다. 그렇지 않으면, amvr_precision_flag가 참이고 amvr_flag_x가 거짓인 경우, amvr_flag_y는 참으로 추론된다. 마지막으로, amvr_precision_flag가 거짓인 경우에, amvr_flag_x 및 amvr_flag_y 둘 다는 거짓으로 추론된다.
본 실시예에 따른 플래그 값들 및 연관된 해석의 조합들의 다른 예들은 다음을 포함한다. amvr_flag가 참이면, 현재 CU의 amvr_precision_flag는 디폴트 1-루마-샘플 또는 4-루마-샘플 MV 분해능이 현재 CU에 대해 이용되는지를 표시한다. amvr_flag_x가 참이면, 각각의 CPMV의 MVd의 x-성분에 대해 이용되는 정밀도 레벨은 amvr_flag 및 amvr_precision_flag에 의해 표시되는 정밀도 레벨이다. amvr_flag_y가 참이면, 각각의 CPMV의 MVd의 y-성분에 대해 이용되는 정밀도 레벨은 amvr_flag 및 amvr_precision_flag에 의해 표시되는 정밀도 레벨이다.
도 22는 (병진 AMVP 모드와 대조적으로) 아핀 AMVP 모드에서 코딩될 입력 CU에 대한 움직임 벡터들의 재구성의 예를 도시하며, AMVR은, 예를 들어, VVC 드래프트 5에 따라 이 CU에 대해 활성이다. 도 22의 예에 수반되는 이 처리는 디코더 측에서 발생한다. 이 처리에 대한 입력은 파싱된 코딩 유닛이다.
도 22에서, 현재 아핀 AMVP CU가 L0 참조 픽처 리스트에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트함으로써 처리가 시작된다. 만약 그렇다면, 4개의 다음의 단계들이 적용된다.
- AMVR 프로세스의 역 프로세스는 L0 리스트의 각각의 CPMV에 대한 MVd에 적용된다. 이것은 L0 참조 픽처와 연관된 각각의 CPMV의 파싱된 MVd(움직임 벡터 차이)를, L0 리스트 Mvd의 코딩을 위한 정밀도 레벨로부터, 움직임 데이터를 표현하기 위해 디코더에 의해 이용되는 내부 정밀도로 변환하는 것을 수반한다.
- 다음, 현재 CU에 대한 참조 픽처 L0에 대한 CPMV 후보 예측자들의 아핀 AMVP 리스트가 계산된다. 이것은 도 11을 참조하여 이미 설명된 프로세스를 따른다. 이것이 행해지면, 현재 참조 픽처 리스트에서의 현재 CU에 대한 움직임 벡터 예측자는 알려져 있고 AMVPCand[mvpIdxL0]로 표시되며, 여기서 mvpIdxL0는 현재 CU에 대해 이용되는 CPMV 예측자 후보의 인덱스이고, 이는 파싱 프로세스로부터 발생한다.
- 다음, 현재 참조 픽처 리스트에서의 현재 CU의 제어 포인트 움직임 벡터들은 그들 각각의 MV 예측자와 파싱된 움직임 벡터 차이의 합으로서 재구성된다.
- 마지막으로, 재구성된 제어 포인트 움직임 벡터들은 고려된 코덱에서의 움직임 벡터의 내부 표현에 따라 클리핑되고, 현재 CU에 포함되고 현재 참조 픽처 리스트에 연관된 아핀 움직임 필드는 VVC 드래프트 5 사양에 따라 구성된다.
도 22의 예에서의 처리의 다음 단계는 현재 블록이 참조 픽처 리스트 L1에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트하는 것을 수반한다. 만약 그렇다면, 전술한 것과 동일한 처리가 적용되지만, 참조 픽처 리스트 L1의 경우이다.
도 22의 예의 처리의 결과로서, 2개의 재구성된 아핀 움직임 벡터 필드들이 참조 픽처 리스트 L0 및 참조 픽처 리스트 L1에 대해 각각 현재 인터 CU에 대해 획득되고, 현재 CU의 움직임 보상된 시간적 예측을 위해 나중에 이용된다.
도 23은 본 실시예에 따른 아핀 AMVP 코딩된 CU의 디코더 측 움직임 데이터 재구성을 도시한다. 즉, 도 23은 본 실시예에서, (병진 AMVP 모드와는 대조적으로) 아핀 AMVP 모드에서 코딩될 입력 CU에 대한 움직임 벡터들의 재구성을 도시하며, AMVR은 이 CU에 대해 활성이다. 이 프로세스는 디코더 측에서 발생한다. 이 프로세스에 대한 입력은 파싱된 코딩 유닛이다.
도 23의 예에서의 처리는 현재 아핀 AMVP CU가 L0 참조 픽처 리스트에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트함으로써 시작한다. 만약 그렇다면, 다음의 4개의 단계들이 적용된다.
- AMVR 프로세스의 역 프로세스는 L0 리스트의 각각의 CPMV에 대한 코딩된 MVd의 x-성분에 적용된다. 이것은 L0 참조 픽처와 연관된 각각의 CPMV의 파싱된 MVd(움직임 벡터 차이)의 x-성분을, L0 리스트 Mvd의 x-성분의 코딩을 위한 정밀도 레벨로부터, 움직임 데이터를 표현하기 위해 디코더에 의해 이용되는 내부 정밀도로 변환하는 것을 수반한다.
- 다음, AMVR 프로세스의 역 프로세스가 L0 참조 리스트의 각각의 CPMV의 코딩된 MVd의 y-성분에 적용된다. 이것은 L0 참조 픽처에 연관된 각각의 CPMV의 파싱된 MVd(움직임 벡터 차이)의 y-성분을, L0 리스트 Mvd의 y-성분의 코딩을 위한 정밀도 레벨로부터, 움직임 데이터를 표현하기 위해 디코더에 의해 이용되는 내부 정밀도로 변환하는 것을 수반한다.
- 다음, 현재 CU에 대한 참조 픽처 L0에 대한 아핀 AMVP 후보 리스트가 계산된다. 이것은 도 11을 참조하여 이미 설명된 프로세스를 따른다. 이것이 행해지면, 현재 참조 픽처 리스트에서의 현재 CU에 대한 움직임 벡터 예측자는 알려져 있고 AMVPCand[mvpIdxL0]로 표기되며, 여기서 mvpIdxL0는 현재 CU에 대해 이용되는 MV 예측자 후보의 인덱스이고, 이는 파싱 프로세스로부터 발생한다.
- 다음, 현재 참조 픽처 리스트에서의 현재 CU의 제어 움직임 벡터들이 현재 CU의 각각의 CPMV에 대한 그들 각각의 CPMV 예측자와 그들 각각의 파싱된 움직임 벡터 차이의 합으로서 재구성된다.
- 마지막으로, 재구성된 CPMV가 클리핑되고, 현재 CU의 아핀 움직임 필드가 L0 참조 픽처에 대해 생성된다.
프로세스의 다음 단계는 현재 블록이 참조 픽처 리스트 L1에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트한다. 만약 그렇다면, 전술한 처리가 적용되지만, 참조 픽처 리스트 L1의 경우이다.
도 23의 예의 처리의 결과는 리스트 L0 및 리스트 L1에 대한 2개의 재구성된 움직임 필드들이 현재 아핀 AMVP CU에 대해 획득되는 것이다. 이러한 재구성된 움직임 필드들은 현재 CU의 움직임 보상된 시간적 예측을 위해 나중에 이용된다.
실시예(실시예 3)의 현재 예를 구현하기에 적합한 코딩 유닛 신택스 구조의 예는 본 문서에 첨부된 신택스 구조 리스팅 3에 도시된다.
일반적으로, 본 명세서에 설명된 실시예의 적어도 하나의 다른 예(본 명세서에서 실시예 4로 지칭됨)는 AMVP 병진 움직임 보상의 경우에 L0 및 L1 참조 픽처 리스트들에서의 디커플링된 움직임 벡터 분해능을 수반한다. 양태는 AMVR 정밀도 레벨이 L0 및 L1 참조 리스트들 사이에 디커플링되는 것을 수반한다. 본 실시예에 따른, AMVP 모드에서 코딩되는 CU의 AMVR 데이터의 파싱은 도 24에 의해 도시된다.
도 24에서, 먼저 지정된 플래그, 예를 들어, 현재 CU의 amvr_flag가 파싱된다. 그 후, amvr_flag가 참이고 L0 리스트의 디코딩된 MVd가 0이 아닌 경우, 지정된 다른 플래그, 예를 들어, amvr_flag_L0이 파싱된다. 이것은 리스트 L0에 대한 현재 MVd가 디폴트 1/4-루마-샘플 정밀도 레벨에서 시그널링되는지 여부를 표시한다. 다음, 플래그들 amvr_precision_flag 및 amvr_flag_L0 둘 다가 참인 경우, 지정된 다른 플래그, 예를 들어, amvr_flag_L1이 파싱된다. 이것은 리스트 L1과 연관된 현재 MVd가 디폴트 1/4-루마-샘플 정밀도 레벨에서 시그널링되는지 여부를 표시한다. 그렇지 않으면, amvr_precision_flag가 참이고 amvr_flag_L0이 거짓인 경우, amvr_flag_L1이 참으로 추론된다. 마지막으로, amvr_precision_flag가 거짓인 경우, amvr_flag_L0 및 amvr_flag_L1 둘 다가 거짓으로 추론된다.
본 실시예에 따른 플래그 값들 및 연관된 해석의 조합들의 다른 예들은 다음과 같다. amvr_flag가 참이면, 현재 CU의 amvr_precision_flag는 디폴트 1-루마-샘플 또는 4-루마-샘플 MV 분해능이 현재 CU에 대해 이용되는지를 표시한다. amvr_flag_L0이 참이면, 리스트 L0의 MVd에 대해 이용되는 정밀도 레벨은 amvr_flag 및 amvr_precision_flag에 의해 표시되는 정밀도 레벨이다. amvr_flag_L1이 참이면, 리스트 L1의 MVd에 대해 이용되는 정밀도 레벨은 amvr_flag 및 amvr_precision_flag에 의해 표시되는 정밀도 레벨이다.
도 25는 (아핀 AMVP 모드와 대조적으로) 병진 AMVP 모드에서 코딩될 입력 CU에 대한 움직임 벡터들의 재구성의 예를 도시하며, AMVR은 실시예의 본 예에 따라 이 CU에 대해 활성이다. 이 재구성은 디코더 측에서 발생한다. 입력은 파싱된 코딩 유닛이다.
도 25의 예는 현재 CU가 L0 참조 픽처 리스트에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트함으로써 시작한다. 만약 그렇다면, 4개의 다음의 단계들이 적용된다.
- AMVR 프로세스의 역 프로세스는 L0 리스트에 연관된 코딩된 MVd에 적용된다. 이것은 L0 참조 픽처에 연관된 파싱된 MVd(움직임 벡터 차이)를, L0 리스트 Mvd의 코딩을 위한 정밀도 레벨로부터, 움직임 데이터를 표현하기 위해 디코더에 의해 이용되는 내부 정밀도로 변환하는 것을 수반한다.
- 다음, 현재 CU에 대한 참조 픽처 L0에 대한 AMVP 후보 리스트들이 계산된다. 이것은 도 6을 참조하여 이미 설명된 프로세스를 따른다. 이것이 행해지면, 현재 참조 픽처 리스트에서의 현재 CU에 대한 움직임 벡터 예측자는 알려져 있고 AMVPCand[mvpIdxL0]로 표기되며, 여기서 mvpIdxL0는 현재 CU에 대해 이용되는 MV 예측자 후보의 인덱스이고, 이는 파싱 프로세스로부터 발생한다.
- 다음, 현재 참조 픽처 리스트에서의 현재 CU의 움직임 벡터는 MV 예측자와 파싱된 움직임 벡터 차이의 합으로서 재구성된다.
- 마지막으로, 재구성된 움직임 벡터는 고려된 코덱에서의 움직임 벡터의 내부 표현에 따라 클리핑된다.
도 25의 예에서의 다음 단계는 현재 블록이 참조 픽처 리스트 L1에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트하는 것을 수반한다. 만약 그렇다면, 전술한 것과 동일한 프로세스가 적용되지만, 참조 픽처 리스트 L1의 경우이다. 결과적으로, 도 25의 예는 현재 인터 CU에 대한 2개의 재구성된 움직임 벡터들 MVL0 및 MVL1을 제공하고, 현재 CU의 움직임 보상된 시간적 예측을 위해 나중에 이용된다.
실시예(실시예 4)의 현재 예를 구현하기에 적합한 coding_unit 신택스 구조의 예가 본 문서에 첨부된 신택스 구조 리스팅 4에 도시된다.
일반적으로, 본 명세서에 설명된 실시예의 적어도 하나의 다른 예(본 명세서에서 실시예 5로 지칭됨)는 아핀 움직임 보상의 경우에 L0 및 L1 참조 픽처 리스트들에서의 디커플링된 움직임 벡터 분해능을 수반한다. 양태는, 아핀 AMVP 코딩된 CU의 경우에, L0 및 L1 참조 리스트들 사이에서 디커플링되는 AMVR 정밀도 레벨을 수반한다. 본 실시예에 따른, 아핀 AMVP 모드에서 코딩되는 CU의 AMVR 데이터의 파싱의 예가 도 26에 도시된다.
도 26의 예는 현재 CU와 연관된, 예를 들어, amvr_flag로 지정된 플래그를 먼저 파싱하는 처리를 수반한다. 그 후, amvr_flag가 참이고 디코딩된 L0 MVd가 현재 CU의 적어도 하나의 CPMV에 대해 0이 아닌 경우에, 예를 들어, amvr_flag_L0로 지정된 다른 플래그가 파싱된다. 이것은 각각의 CPMV의 MVd가 참조 픽처 리스트 L0에 대해 디폴트 1/4-루마-샘플 정밀도 레벨로 시그널링되는지 여부를 표시한다. 다음, 플래그들 amvr_precision_flag 및 amvr_flag_L0 둘 다가 참인 경우에, 플래그 amvr_flag_L1이 파싱된다. 이것은 현재 MVd가 참조 픽처 리스트 L1에 대해 각각의 CPMV에 대해 디폴트 1/4-루마-샘플 정밀도 레벨로 시그널링되는지 여부를 표시한다. 그렇지 않으면, amvr_precision_flag가 참이고 amvr_flag_L0이 거짓이면, amvr_flag_L1이 참으로 추론된다. 마지막으로, amvr_precision_flag가 거짓인 경우에, amvr_flag_L0 및 amvr_flag_L1 둘 다가 거짓으로 추론된다.
플래그 값들 및 연관된 해석의 다른 조합들의 예들은 다음과 같다. amvr_flag가 참이면, 현재 CU의 amvr_precision_flag가 파싱된다. 이것은 디폴트 1-루마-샘플 또는 4-루마-샘플 MV 분해능이 현재 CU에 대해 이용되는지를 표시한다. amvr_flag_L0이 참이면, 참조 픽처 리스트 L0에 연관된 각각의 CPMV의 MVd에 대해 이용되는 정밀도 레벨은 amvr_flag 및 amvr_precision_flag에 의해 표시된 정밀도 레벨이다. amvr_flag_L1이 참이면, 참조 리스트 L1의 각각의 CPMV의 MVd에 대해 이용되는 정밀도 레벨은 amvr_flag 및 amvr_precision_flag에 의해 표시된 정밀도 레벨이다.
도 27은 본 실시예에서, (병진 AMVP 모드와는 대조적으로) 아핀 AMVP 모드에서 코딩될 입력 CU에 대한 움직임 벡터들의 재구성의 예를 도시하며, AMVR은 이 CU에 대해 활성이다. 도 27의 예와 연관된 처리는 디코더 측에서 발생한다. 이 프로세스에 대한 입력은 파싱된 코딩 유닛이다.
도 27의 예의 처리는 현재 아핀 AMVP CU가 L0 참조 픽처 리스트에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트함으로써 시작한다. 만약 그렇다면, 4개의 다음 단계들이 적용된다.
- AMVR 프로세스의 역 프로세스는 L0 리스트의 각각의 CPMV에 대한 MVd에 적용된다. 이것은 L0 참조 픽처와 연관된 각각의 CPMV의 파싱된 MVd(움직임 벡터 차이)를, L0 리스트 Mvd의 코딩을 위한 정밀도 레벨로부터, 움직임 데이터를 표현하기 위해 디코더에 의해 이용되는 내부 정밀도로 변환하는 것을 수반한다.
- 다음, 현재 CU에 대한 참조 픽처 L0에 대한 AMVP 후보 리스트들이 계산된다. 이것은 도 11을 참조하여 이미 설명된 프로세스를 따른다. 이것이 행해지면, 현재 참조 픽처 리스트에서의 현재 CU에 대한 움직임 벡터 예측자는 알려지고 AMVPCand[mvpIdxL0]으로 지정되며, 여기서 mvpIdxL0는 현재 CU에 대해 이용되는 CPMV 예측자 후보들의 인덱스이고, 이는 파싱 프로세스로부터 발생한다.
- 다음, 현재 참조 픽처 리스트에서의 현재 CU의 제어 포인트 움직임 벡터들은 현재 CU의 각각의 CPMV에 대한 CPMV 예측자와 파싱된 움직임 벡터 차이의 합으로서 결정된다.
- 마지막으로, 재구성된 CMVS가 클리핑되고, 현재 CU의 재구성된 아핀 움직임 필드가 L0 참조 픽처에 대해 생성된다.
프로세스의 다음 단계는 현재 아핀 AMVP 블록이 참조 픽처 리스트 L1에 포함된 참조 픽처로부터의 시간적 예측을 이용하는지를 테스트한다. 만약 그렇다면, 전술한 처리가 적용되지만, 참조 픽처 리스트 L1의 경우이다. 도 27의 예의 처리의 결과로서, 리스트 L0 및 리스트 L1에 대한 2개의 재구성된 움직임 필드들이 현재 아핀 AMVP CU에 대해 획득되고, 현재 CU의 움직임 보상된 시간적 예측을 위해 나중에 이용된다.
실시예(실시예 5)의 현재 예를 구현하기에 적합한 coding_unit 신택스 구조의 예가 본 문서에 첨부된 신택스 구조 리스팅 5에 도시된다.
비디오 코딩 및/또는 디코딩을 수반하는 본 명세서에 설명된 하나 이상의 실시예에 따른 시스템들은 개별적으로 또는 다양한 배열들로 조합된 특징들의 다음의 비제한적인 예들 중 하나 이상을 제공할 수 있다:
● 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨은 코딩된 움직임 벡터 차이의 x-성분과 y-성분 사이에서 구별된다.
● 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨은, 대칭 움직임 벡터 차이 코딩이 이용되지 않는 양방향 예측된 블록의 경우에, L0 및 L1 참조 픽처 리스트들 사이에서 구별된다.
● 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨은, 고려된 블록이 VVC의 것과 같은 인트라 블록 카피 모드를 통해 코딩되는 코딩된 움직임 벡터 차이의 x-성분과 y-성분 사이에서 구별된다.
● 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨은, 고려된 블록이 VVC의 것과 같은 인터 병진 AMVP 모드를 통해 코딩되는 코딩된 움직임 벡터 차이의 x-성분과 y-성분 사이에서 구별된다.
● 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨은 고려된 블록이 VVC의 인터 아핀 AMVP 모드를 통해 코딩되는 코딩된 움직임 벡터 차이의 x-성분과 y-성분 사이에서 구별된다.
● 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨은, 양방향 예측된 블록의 경우에, L0 및 L1 참조 픽처 리스트들 사이에서 구별되고, 여기서 대칭 움직임 벡터 차이 코딩이 이용되지 않고 고려된 블록은 VVC의 인터 병진 AMVP 모드를 통해 코딩된다.
● 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨은, 양방향 예측된 블록의 경우에, L0 및 L1 참조 픽처 리스트들 사이에서 구별되고, 여기서 대칭 움직임 벡터 차이 코딩은 이용되지 않고 고려된 블록은 VVC의 인터 아핀 AMVP 모드를 통해 코딩된다.
본 문서는 실시예들, 특징들, 모델들, 접근법들 등의 다양한 예들을 설명한다. 많은 그러한 예들은 특이성으로 설명되고, 적어도 개별 특성들을 보여주기 위해, 제한하는 것으로 나타날 수 있는 방식으로 종종 설명된다. 그러나, 이것은 설명의 명료성을 위한 것이고, 그 적용 또는 범위를 제한하지 않는다. 실제로, 본 명세서에 설명된 실시예들, 특징들 등의 다양한 예들은 실시예들의 추가 예들을 제공하기 위해 다양한 방식들로 결합되고 교환될 수 있다.
일반적으로, 본 문서에서 설명되고 구상되는 실시예들의 예들은 많은 상이한 형태들로 구현될 수 있다. 위에서 설명된 도 1 및 도 2와, 아래에 설명된 도 28은 일부 실시예들을 제공하지만, 다른 실시예들이 구상되고, 도 1, 도 2 및 도 28의 논의는 구현들의 범위를 제한하지 않는다. 적어도 하나의 실시예는 일반적으로 비디오 인코딩 및/또는 디코딩에 관한 예를 제공하고, 적어도 하나의 다른 실시예는 일반적으로 생성되거나 인코딩된 비트스트림 또는 신호를 송신하는 것에 관한 것이다. 이들 및 다른 실시예들은 방법, 장치, 설명된 방법들 중 임의의 것에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들을 저장하는 컴퓨터 판독가능 저장 매체, 및/또는 설명된 방법들 중 임의의 것에 따라 생성된 비트스트림 또는 신호를 저장하는 컴퓨터 판독가능 저장 매체로서 구현될 수 있다.
HDR(high dynamic range) 및 SDR(standard dynamic range)이라는 용어들이 본 개시내용에서 이용된다. 이들 용어들은 종종 동적 범위의 특정 값들을 본 기술분야의 통상의 기술자에게 전달한다. 그러나, HDR에 대한 참조가 "더 높은 동적 범위"를 의미하는 것으로 이해되고, SDR에 대한 참조가 "더 낮은 동적 범위"를 의미하는 것으로 이해되는 추가적인 실시예들이 또한 의도된다. 그러한 추가적인 실시예들은 종종 용어들 "높은 동적 범위" 및 "표준 동적 범위"와 연관될 수 있는 동적 범위의 임의의 특정 값들에 의해 제약되지 않는다.
다양한 방법들이 본 명세서에서 설명되며, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 동작을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 동작들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 동작들의 순서 및/또는 이용은 수정되거나 결합될 수 있다.
본 문서에서 설명된 다양한 방법들 및 다른 양태들은 도 1에 도시된 인코더(100)의 움직임 보상 및/또는 움직임 추정 모듈들(170 및 175) 및 도 2에 도시된 디코더(200)의 움직임 보상 모듈(275)과 같은 비디오 인코더 및/또는 디코더의 모듈들을 수정하기 위해 이용될 수 있다. 더욱이, 본 양태들은 VVC 또는 HEVC로 제한되지 않고, 예를 들어, 미리 존재하든 또는 장래에 개발되든 간에, 다른 표준들 및 권고들과, (VVC 및 HEVC를 포함한) 임의의 그러한 표준들 및 권고들의 확장들에 적용될 수 있다. 달리 지시되거나, 또는 기술적으로 배제되지 않는 한, 본 문서에서 설명된 양태들은 개별적으로 또는 조합하여 이용될 수 있다.
예를 들어, 본 문서에서 다양한 수치 값들이 이용된다. 특정 값들은 예시의 목적들을 위한 것이고, 설명된 양태들은 이들 특정 값들로 제한되지 않는다.
도 28은 다양한 양태들 및 실시예들이 구현될 수 있는 시스템의 예의 블록도를 도시한다. 시스템(1000)은 아래에서 설명된 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있고, 본 문서에서 설명된 양태들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은, 제한적인 것은 아니지만, 개인용 컴퓨터들, 랩탑 컴퓨터들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인 비디오 기록 시스템들, 접속된 가전 기기들, 및 서버들과 같은 다양한 전자 디바이스들을 포함한다. 시스템(1000)의 요소들은, 단독으로 또는 조합하여, 단일 집적 회로, 다수의 IC들, 및/또는 개별 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(1000)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 개별 컴포넌트들에 걸쳐 분포된다. 다양한 실시예들에서, 시스템(1000)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 다른 유사한 시스템들, 또는 다른 전자 디바이스들에 통신가능하게 결합된다. 다양한 실시예들에서, 시스템(1000)은 본 문서에서 설명된 양태들 중 하나 이상을 구현하도록 구성된다.
시스템(1000)은, 예를 들어, 본 문서에 설명된 다양한 양태들을 구현하기 위해, 그것에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1010)를 포함한다. 프로세서(1010)는 내장된 메모리, 입력 출력 인터페이스, 및 본 기술분야에 알려진 바와 같은 다양한 다른 회로들을 포함할 수 있다. 시스템(1000)은 적어도 하나의 메모리(1020)(예를 들어, 휘발성 메모리 디바이스 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(1000)은, 제한적인 것은 아니지만, EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하는, 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(1040)를 포함한다. 저장 디바이스(1040)는, 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스, 및/또는 네트워크 액세스가능 저장 디바이스를 포함할 수 있다.
시스템(1000)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(1030)을 포함하고, 인코더/디코더 모듈(1030)은 그 자신의 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(1030)은 인코딩 및/또는 디코딩 기능들을 수행하도록 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 다를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(1030)은 시스템(1000)의 별도 요소로서 구현될 수 있거나, 또는 본 기술분야의 통상의 기술자에게 알려진 바와 같은 하드웨어 및 소프트웨어의 조합으로서 프로세서(1010) 내에 통합될 수 있다.
본 문서에 설명된 다양한 양태들을 수행하기 위해 프로세서(1010) 또는 인코더/디코더(1030) 상에 로딩될 프로그램 코드는 저장 디바이스(1040)에 저장될 수 있고, 후속하여 프로세서(1010)에 의한 실행을 위해 메모리(1020) 상에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(1010), 메모리(1020), 저장 디바이스(1040) 및 인코더/디코더 모듈(1030) 중 하나 이상은 본 문서에 설명된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 그러한 저장된 항목들은, 제한적인 것은 아니지만, 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 부분들, 비트스트림 또는 신호, 행렬들, 변수들, 및 수학식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있다.
몇몇 실시예들에서, 프로세서(1010) 및/또는 인코더/디코더 모듈(1030) 내부의 메모리는 명령어들을 저장하고, 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하기 위해 이용된다. 그러나, 다른 실시예들에서, 처리 디바이스(예를 들어, 처리 디바이스는 프로세서(1010) 또는 인코더/디코더 모듈(1030) 중 하나일 수 있음) 외부의 메모리가 이러한 기능들 중 하나 이상을 위해 이용된다. 외부 메모리는 메모리(1020) 및/또는 저장 디바이스(1040), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 몇몇 실시예들에서, 외부 비휘발성 플래시 메모리는 텔레비전의 운영 체제를 저장하기 위해 이용된다. 적어도 일 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는 MPEG-2, HEVC, 또는 VVC(Versatile Video Coding)와 같은 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 이용된다.
시스템(1000)의 요소들에의 입력은 블록(1130)에 나타낸 바와 같이 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은, 제한적인 것은 아니지만, (i) 예를 들어, 브로드캐스터(broadcaster)에 의해 공기를 통해(over the air) 송신된 RF 신호를 수신하는 RF 부분, (ii) 복합 입력 단자, (iii) USB 입력 단자, 및/또는 (iv) HDMI 입력 단자를 포함한다.
다양한 실시예들에서, 블록(1130)의 입력 디바이스들은 본 기술분야에 알려진 바와 같은 연관된 각각의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하는 것(또한 신호를 선택하는 것, 또는 주파수들의 대역으로 신호를 대역 제한하는 것으로 지칭됨), (ii) 선택된 신호를 하향 변환하는 것, (iii) 주파수들의 더 좁은 대역으로 다시 대역 제한하여 특정 실시예들에서 채널로 지칭될 수 있는 (예를 들어) 신호 주파수 대역을 선택하는 것, (iv) 하향 변환된 및 대역 제한된 신호를 복조하는 것, (v) 오류 정정(error correction)을 수행하는 것, 및 (vi) 원하는 데이터 패킷들의 스트림을 선택하기 위해 역다중화하는 것을 위한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소, 예를 들어, 주파수 선택기들, 신호 선택기들, 대역 제한기들, 채널 선택기들, 필터들, 하향 변환기들, 복조기들, 오류 정정기들, 및 역다중화기들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 근 기저대역(near-baseband) 주파수)로 또는 기저대역으로 하향 변환하는 것을 포함하여, 다양한 이러한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그것의 연관된 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 필터링, 하향 변환, 및 원하는 주파수 대역으로의 다시 필터링에 의해 주파수 선택을 수행한다. 다양한 실시예들은 전술한(및 다른) 요소들의 순서를 재배열하고, 이 요소들 중 일부를 제거하고/하거나 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은 기존 요소들 사이에 요소들을 삽입하는 것, 예를 들어, 증폭기들 및 아날로그-대-디지털 변환기를 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
추가적으로, USB 및/또는 HDMI 단자들은 USB 및/또는 HDMI 접속들을 통해 다른 전자 디바이스들에 시스템(1000)을 접속하기 위한 각각의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 양태들, 예를 들어, 리드-솔로몬(Reed-Solomon) 오류 정정이, 예를 들어, 별도의 입력 처리 IC 내에서 또는 프로세서(1010) 내에서 구현될 수 있다는 것을 이해해야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 양태들은 별도의 인터페이스 IC들 내에서 또는 프로세서(1010) 내에서 구현될 수 있다. 복조된, 오류 정정된, 및 역다중화된 스트림은, 예를 들어, 출력 디바이스 상의 제시를 위해 데이터스트림을 처리하기 위해 메모리 및 저장 요소들과 조합하여 동작하는 인코더/디코더(1030) 및 프로세서(1010)를 포함하는 다양한 처리 요소들에 제공된다.
시스템(1000)의 다양한 요소들은 통합된 하우징 내에 제공될 수 있고, 통합된 하우징 내에서, 다양한 요소들은 적절한 접속 배열(1140), 예를 들어, I2C 버스, 배선, 및 인쇄 회로 보드들을 포함하는 본 기술분야에 알려진 바와 같은 내부 버스를 이용하여 상호접속되고 그들 사이에 데이터를 송신할 수 있다.
시스템(1000)은 통신 채널(1060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(1050)를 포함한다. 통신 인터페이스(1050)는, 제한적인 것은 아니지만, 통신 채널(1060)을 통해 데이터를 송신 및 수신하도록 구성된 송수신기를 포함할 수 있다. 통신 인터페이스(1050)는, 제한적인 것은 아니지만, 모뎀 또는 네트워크 카드를 포함할 수 있고, 통신 채널(1060)은, 예를 들어, 유선 및/또는 무선 매체 내에서 구현될 수 있다.
데이터는, 다양한 실시예들에서, IEEE 802.11과 같은 Wi-Fi 네트워크를 이용하여 시스템(1000)에 스트리밍된다. 이러한 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들을 위해 적응되는 통신 인터페이스(1050) 및 통신 채널(1060)을 통해 수신된다. 이러한 실시예들의 통신 채널(1060)은 스트리밍 애플리케이션들 및 다른 OTT(over-the-top) 통신들을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 전형적으로 접속된다. 다른 실시예들은 입력 블록(1130)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 이용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 또 다른 실시예들은 입력 블록(1130)의 RF 접속을 이용하여 스트리밍된 데이터를 시스템(1000)에 제공한다.
시스템(1000)은 디스플레이(1100), 스피커들(1110), 및 다른 주변 디바이스들(1120)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다른 주변 디바이스들(1120)은, 실시예들의 다양한 예들에서, 독립형 DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(1000)의 출력에 기초한 기능을 제공하는 다른 디바이스들 중 하나 이상을 포함한다. 다양한 실시예들에서, 제어 신호들은 AV.Link, CEC, 또는 사용자 개입을 갖거나 또는 갖지 않고 디바이스-대-디바이스 제어를 가능하게 하는 다른 통신 프로토콜들과 같은 시그널링을 이용하여 시스템(1000)과 디스플레이(1100), 스피커들(1110), 또는 다른 주변 디바이스들(1120) 사이에서 통신된다. 출력 디바이스들은 각각의 인터페이스들(1070, 1080, 및 1090)을 통한 전용 접속들을 통해 시스템(1000)에 통신가능하게 결합될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(1050)를 통해 통신 채널(1060)을 이용하여 시스템(1000)에 접속될 수 있다. 디스플레이(1100) 및 스피커들(1110)은, 예를 들어, 텔레비전과 같은 전자 디바이스에서 시스템(1000)의 다른 컴포넌트들과 함께 단일 유닛에 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(1070)는, 예를 들어, 타이밍 제어기(timing controller)(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(1100) 및 스피커(1110)는 대안적으로, 예를 들어, 입력(1130)의 RF 부분이 별도의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상으로부터 분리될 수 있다. 디스플레이(1100) 및 스피커들(1110)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는 전용 출력 접속들을 통해 제공될 수 있다.
실시예들은 프로세서(1010)에 의해 또는 하드웨어에 의해 구현된 컴퓨터 소프트웨어에 의해, 또는 하드웨어 및 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 실시예들은 하나 이상의 집적 회로에 의해 구현될 수 있다. 메모리(1020)는 기술적 환경에 적절한 임의의 타입일 수 있고, 비제한적 예들로서, 광학 메모리 디바이스들, 자기 메모리 디바이스들, 반도체 기반 메모리 디바이스들, 고정 메모리, 및 이동식 메모리와 같은 임의의 적절한 데이터 저장 기술을 이용하여 구현될 수 있다. 프로세서(1010)는 기술적 환경에 적절한 임의의 타입일 수 있고, 비제한적 예들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티 코어 아키텍처에 기초한 프로세서들 중 하나 이상을 포함할 수 있다.
실시예의 다른 예가 도 29에 도시되어 있다. 도 29에서, 2910에서, 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드가 결정된다. 예를 들어, 코딩 모드는 전술한 바와 같이, 인트라-블록 코딩(IBC) 모드, 병진 적응형 움직임 벡터 예측(AMVP) 모드, 아핀 AMVP 모드 등을 포함할 수 있다. 이어서, 2920에서, 제1 및 제2 정밀도 레벨들이 코딩 모드에 기초하여 결정되고, 예를 들어, 전술한 바와 같이, 다양한 플래그들 및 플래그들의 값들의 테스트들에 기초하여 결정된다. 제1 정밀도 레벨은 움직임 벡터 정보의 제1 부분과 연관된다. 예를 들어, 움직임 벡터 정보는 잔차(또는 움직임 벡터 차이(MVd))를 포함할 수 있고, 제1 부분과 연관된 제1 정밀도 레벨은 잔차 또는 MVd의 x-성분의 정확도일 수 있다. 제2 정밀도 레벨은 움직임 벡터 정보의 제2 부분과 연관된다. 예를 들어, 제2 부분과 연관된 제2 정밀도 레벨은 잔차 또는 MVd의 y-성분의 정확도일 수 있다. 일 예로서, 정밀도 레벨 또는 정확도는 1/16-루마-샘플, 1/4-루마-샘플, 정수-루마-샘플 또는 4-루마-샘플과 같은 값일 수 있다. 아핀 AMVP 모드에서, 지원되는 MVd 분해능 레벨들은 쿼터-루마-샘플, 또는 정수-루마-샘플일 수 있다. 2930에서, 현재 코딩 유닛과 연관된 움직임 벡터는 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 획득되고, 예를 들어, 전술한 바와 같이 정의된 정밀도 또는 정확도를 이용하여 움직임 벡터 예측자와 움직임 벡터 잔차를 결합한다. 2940에서 픽처 정보의 적어도 일부분이 코딩 모드 및 움직임 벡터에 기초하여 디코딩되어 디코딩된 픽처 정보를 생성한다.
실시예의 다른 예가 도 30에 도시되어 있다. 도 30에서, 3010에서, 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드가 결정된다. 예를 들어, 코딩 모드는 전술한 바와 같이 인트라-블록 코딩(IBC) 모드, 병진 적응형 움직임 벡터 예측(AMVP) 모드, 아핀 AMVP 모드 등을 포함할 수 있다. 그 후, 3020에서, 제1 및 제2 정밀도 레벨들이 코딩 모드에 기초하여 결정되고, 예를 들어, 전술한 바와 같이 다양한 플래그들 및 플래그들의 값들의 테스트들에 기초하여 결정된다. 제1 정밀도 레벨은 움직임 벡터 정보의 제1 부분과 연관된다. 예를 들어, 움직임 벡터 정보는 잔차 또는 움직임 벡터 차이(MVd)일 수 있고, 제1 부분과 연관된 제1 정밀도 레벨은 잔차의 x-성분의 정확도일 수 있다. 제2 정밀도 레벨은 움직임 벡터 정보의 제2 부분, 예를 들어, 잔차의 y-성분의 정확도와 연관된다. 예로서, 정밀도 레벨 또는 정확도는 1/16-루마-샘플, 1/4-루마-샘플, 정수-루마-샘플 또는 4-루마-샘플과 같은 값일 수 있다. 아핀 AMVP 모드에서, 지원되는 MVd 분해능 레벨들은 쿼터-루마-샘플 또는 정수-루마-샘플이다. 3030에서, 현재 코딩 유닛과 연관된 움직임 벡터는 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 획득되고, 예를 들어, 전술한 바와 같이 정의된 정밀도 또는 정확도를 이용하여 움직임 벡터 예측자와 움직임 벡터 잔차를 결합한다. 3040에서 픽처 정보의 적어도 일부분이 코딩 모드 및 움직임 벡터에 기초하여 인코딩되어 인코딩된 픽처 정보를 생성한다.
실시예의 다른 예에서, 코딩 모드 및 제1 및 제2 정밀도 레벨들은 전술한 바와 같이 결정된다. 그러나, 이 예에서, 움직임 벡터 정보는 제1 참조 픽처 리스트(예를 들어, L0 MVd)에 대응하는 제1 움직임 벡터 잔차 및 제2 참조 픽처 리스트(예를 들어, L1 MVd)에 대응하는 제2 움직임 벡터 잔차를 포함할 수 있다. 이 경우, 제1 정밀도 레벨은 제1 움직임 벡터 잔차를 포함하는 움직임 벡터 정보의 부분과 연관되고, 제2 정밀도 레벨은 제2 움직임 벡터 잔차를 포함하는 움직임 벡터 정보의 부분과 연관된다. 제1 움직임 벡터는 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 획득되고, 제2 움직임 벡터는 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 획득된다. 그 후, 픽처 정보는 제1 및 제1 및 제2 움직임 벡터들 및 코딩 모드에 기초하여 디코딩되거나 인코딩된다.
본 개시내용 전체에 걸쳐, 다양한 구현들은 디코딩을 수반한다. 본 출원에서 이용되는 바와 같은 "디코딩"은 디스플레이에 적합한 최종 출력을 생성하기 위해, 예를 들어, 수신된 인코딩된 시퀀스에 대해 수행된 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행된 프로세스들, 예를 들어, 엔트로피 디코딩, 역 양자화, 역 변환, 및 차동 디코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에서 설명된 다양한 구현들의 디코더에 의해 수행된 프로세스들, 예를 들어, 타일링된(패킹된) 픽처로부터 픽처를 추출하는 것, 이용할 업샘플 필터를 결정한 다음 픽처를 업샘플링하는 것, 및 픽처를 그의 의도된 배향으로 다시 플립(flipping)하는 것을 포함한다.
추가 예들로서, 일 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 차동 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 엔트로피 디코딩 및 차동 디코딩의 조합을 지칭한다. "디코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 지칭하거나 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되는지의 여부는, 특정 설명들의 맥락에 기초하여 명백할 것이며, 본 기술분야의 통상의 기술자에 의해 잘 이해될 것으로 생각된다.
또한, 다양한 구현들은 인코딩을 수반한다. "디코딩"에 관한 상기의 논의와 유사한 방식으로, 본 출원에서 이용된 바와 같은 "인코딩"은 인코딩된 비트스트림 또는 신호를 생성하기 위해, 예를 들어, 입력 비디오 시퀀스에 대해 수행된 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 인코더에 의해 전형적으로 수행된 프로세스들, 예를 들어, 분할, 차동 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에서 설명된 다양한 구현들의 인코더에 의해 수행된 프로세스들을 포함한다.
추가 예들로서, 일 실시예에서 "인코딩"은 엔트로피 인코딩만을 지칭하고, 다른 실시예에서, "인코딩"은 차동 인코딩만을 지칭하고, 다른 실시예에서, "인코딩"은 차동 인코딩 및 엔트로피 인코딩의 조합을 지칭한다. "인코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 지칭하거나 일반적으로 더 넓은 인코딩 프로세스를 지칭하도록 의도되는지의 여부는, 특정 설명들의 문맥에 기초하여 명백할 것이며, 본 기술분야의 통상의 기술자에 의해 잘 이해될 것으로 생각된다.
본 명세서에서 이용된 바와 같은 신택스 요소들은 설명적 용어들이라는 점에 유의한다. 따라서, 이들은 다른 신택스 요소 명칭들의 이용을 배제하지 않는다.
도면이 흐름도로서 제시될 때, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 그것은 대응하는 방법/프로세스의 흐름도를 또한 제공한다는 것을 이해해야 한다.
다양한 실시예들은 레이트 왜곡 최적화를 언급한다. 특히, 인코딩 프로세스 동안, 계산 복잡도의 제약이 종종 주어지면, 레이트와 왜곡 사이의 균형 또는 트레이드오프가 통상적으로 고려된다. 레이트 왜곡 최적화는 통상적으로 레이트와 왜곡의 가중 합인 레이트 왜곡 함수를 최소화하는 것으로 공식화된다. 레이트 왜곡 최적화 문제를 해결하기 위한 상이한 접근법들이 존재한다. 예를 들어, 이 접근법들은, 코딩 및 디코딩 이후에 재구성된 신호의 그 코딩 비용 및 관련 왜곡의 완전한 평가와 함께, 모든 고려된 모드들 또는 코딩 파라미터 값들을 비롯한, 모든 인코딩 옵션들의 광범위한 테스트에 기초할 수 있다. 인코딩 복잡성을 절약하기 위해, 특히 재구성된 것이 아니라 예측 또는 예측 잔차 신호에 기초한 근사화된 왜곡의 계산으로 더 빠른 접근법들이 또한 이용될 수 있다. 이들 2개의 접근법들의 혼합은 또한, 예를 들어, 가능한 인코딩 옵션들 중 단지 일부에 대한 근사화된 왜곡, 및 다른 인코딩 옵션들에 대한 완전한 왜곡을 이용함으로써 이용될 수 있다. 다른 접근법들은 가능한 인코딩 옵션들의 서브세트만을 평가한다. 보다 일반적으로, 많은 접근법들은 최적화를 수행하기 위해 다양한 기법들 중 임의의 기법을 이용하지만, 최적화가 반드시 코딩 비용 및 관련 왜곡 둘 다의 완전한 평가일 필요는 없다.
본 명세서에 설명된 구현들 및 양태들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. (예를 들어, 방법으로서만 설명된) 단일 형태의 구현의 맥락에서만 설명되었지만, 설명되는 특징들의 구현은 다른 형태들(예를 들어, 장치 또는 프로그램)로도 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 예를 들어, 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 논리 디바이스를 포함하는 처리 디바이스들을 일반적으로 지칭하는 프로세서로 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 셀 폰들(cell phones), PDA(portable/personal digital assistant)들, 및 최종 사용자들 간의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은, 통신 디바이스들을 포함한다.
"일 실시예" 또는 "실시예" 또는 "하나의 구현" 또는 "구현"뿐만 아니라 그의 다른 변형들에 대한 참조는, 실시예와 관련하여 설명된 특정한 특징, 구조, 특성 등이 적어도 일 실시예에 포함된다는 것을 의미한다. 따라서, 본 문서의 전체에 걸쳐 다양한 곳에서 나타나는 "일 실시예에서" 또는 "실시예에서" 또는 "하나의 구현에서" 또는 "구현에서"라는 어구뿐만 아니라 임의의 다른 변형들의 출현들은 반드시 모두가 동일한 실시예를 지칭하는 것은 아니다.
추가적으로, 본 문서는 다양한 정보 조각을 "획득하는 것"을 언급할 수 있다. 정보를 획득하는 것은, 예를 들어, 정보를 결정하는 것, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
더욱이, 본 문서는 다양한 정보 조각에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동하는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
추가적으로, 본 문서는 다양한 정보 조각을 "수신하는 것"을 언급할 수 있다. 수신하는 것은, "액세스하는 것"에서와 같이, 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로, 예를 들어, 정보를 저장하는 것, 정보를 처리하는 것, 정보를 송신하는 것, 정보를 이동하는 것, 정보를 복사하는 것, 정보를 제거하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것과 같은 동작들 동안 하나의 방식 또는 다른 방식으로 수반된다.
예를 들어, "A/B", "A 및/또는 B", "A 또는 B 중 하나 이상" 및 "A 및 B 중 적어도 하나"의 경우들에서, 이하의 "/", "및/또는", "~ 중 하나 이상", 및 "~ 중 적어도 하나" 중 임의의 것의 이용은, 제1 열거된 옵션 (A)만의 선택, 또는 제2 열거된 옵션 (B)만의 선택, 또는 둘 다의 옵션들 (A 및 B)의 선택을 포함하려는 의도임을 알 것이다. 추가 예로서, "A, B, 및/또는 C", "A, B 또는 C 중 하나 이상", 및 "A, B, 및 C 중 적어도 하나"의 경우들에서, 그러한 문구는 제1 열거된 옵션 (A)만의 선택, 또는 제2 열거된 옵션 (B)만의 선택, 또는 제3 열거된 옵션 (C)만의 선택, 또는 제1 및 제2 열거된 옵션들 (A 및 B)만의 선택, 또는 제1 및 제3 열거된 옵션들 (A 및 C)만의 선택, 또는 제2 및 제3 열거된 옵션들 (B 및 C)만의 선택, 또는 3개 모든 옵션들 (A 및 B 및 C)의 선택을 포함하는 것으로 의도된다. 이것은 본 기술분야 및 관련 기술분야의 통상의 기술자에 의해 쉽게 명백해지는 바와 같이, 열거된 많은 항목들에 대해 확장될 수 있다.
또한, 본 명세서에 이용된 바와 같이, 단어 "신호"는 다른 것들 중에서, 대응하는 디코더에 대한 무언가를 나타내는 것을 지칭한다. 예를 들어, 특정 실시예들에서, 인코더는 정제를 위한 복수의 파라미터들 중 특정의 파라미터를 시그널링한다. 이와 같이, 실시예에서, 동일한 파라미터는 인코더 측 및 디코더 측 양쪽에서 이용된다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 이용할 수 있도록 디코더에 특정 파라미터를 송신(명시적 시그널링)할 수 있다. 반대로, 디코더가 특정 파라미터뿐만 아니라 다른 것들을 이미 갖는 경우, 단순히 디코더가 특정 파라미터를 알고 선택하는 것을 허용하기 위해 송신 없이 시그널링(암시적 시그널링)이 이용될 수 있다. 다양한 실시예들에서, 임의의 실제 기능들의 송신을 회피함으로써, 비트 절감이 실현될 수 있다. 시그널링은 다양한 방식들로 달성될 수 있다는 것을 알아야 한다. 다양한 실시예들에서, 예를 들어, 하나 이상의 신택스 요소, 플래그 등은 대응하는 디코더에 정보를 시그널링하기 위해 이용된다는 점을 알아야 한다. 위의 내용은 단어 "신호"의 동사 형태와 관련되지만, 단어 "신호"는 본 명세서에서 명사로서 이용될 수 있다.
본 기술분야의 통상의 기술자에게 명백한 바와 같이, 구현들은, 예를 들어, 저장되거나 또는 송신될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성되는 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 실시예의 비트스트림 또는 신호를 운반하도록 포맷팅될 수 있다. 그러한 신호는, 예를 들어, (예를 들어, 스펙트럼의 무선 주파수 부분을 이용한) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하고, 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 알려진 바와 같은 여러 가지의 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.
다양한 일반화된 것뿐만 아니라 특정화된 실시예들이 또한 본 개시내용 전체에 걸쳐 지원되고 고려된다. 본 개시내용에 따른 실시예들의 예들은 다음을 포함하지만 이에 제한되지 않는다.
일반적으로, 실시예의 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 성분과 연관된 제2 정밀도 레벨을 결정하는 단계; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 움직임 벡터에 기초하여 현재 코딩 유닛에 포함된 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 성분과 연관된 제2 정밀도 레벨을 결정하는 단계; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 성분과 연관된 제2 정밀도 레벨을 결정하고; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하고; 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 정보의 제2 성분과 연관된 제2 정밀도 레벨을 결정하고; 움직임 벡터 정보 및 제1 및 제2 정밀도 레벨들에 기초하여 픽처 정보의 코딩 유닛과 연관된 움직임 벡터를 획득하고; 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 인코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하는 단계; 움직임 벡터 잔차 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 움직임 벡터에 기초하여 현재 코딩 유닛에 포함된 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하는 단계; 움직임 벡터 잔차 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하고; 움직임 벡터 잔차 및 제1 및 제2 정밀도 레벨들에 기초하여 현재 코딩 유닛과 연관된 움직임 벡터를 획득하고; 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하고; 움직임 벡터 잔차 및 제1 및 제2 정밀도 레벨들에 기초하여 픽처 정보의 코딩 유닛과 연관된 움직임 벡터를 획득하고; 코딩 모드 및 움직임 벡터에 기초하여 픽처 정보의 적어도 일부분을 인코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하는 단계; 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 제1 및 제2 움직임 벡터들에 기초하여 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계; 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하는 단계; 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하는 단계; 및 코딩 모드 및 제1 및 제2 움직임 벡터들에 기초하여 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는 방법을 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하고; 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하고; 코딩 모드 및 제1 및 제2 움직임 벡터들에 기초하여 픽처 정보의 적어도 일부분을 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고; 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하고; 제1 움직임 벡터 잔차 및 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 제2 움직임 벡터 잔차 및 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하고; 코딩 모드 및 제1 및 제2 움직임 벡터들에 기초하여 픽처 정보의 적어도 일부분을 인코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있다.
일반적으로, 실시예의 다른 예는 본 명세서에 설명된 실시예들의 하나 이상의 예에 따른 방법 또는 장치를 수반할 수 있고, 여기서 제1 성분은 움직임 벡터 잔차의 x-성분에 대응하고; 제2 성분은 움직임 벡터 잔차의 y-성분에 대응한다.
일반적으로, 실시예의 다른 예는 본 명세서에 설명된 실시예들의 하나 이상의 예에 따른 방법 또는 장치를 수반할 수 있고, 여기서 제1 정밀도 레벨은 제1 움직임 벡터 잔차의 제1 정확도 레벨을 나타내고; 제2 정밀도 레벨은 제2 움직임 벡터 잔차의 제2 정확도 레벨을 나타낸다.
일반적으로, 실시예의 다른 예는 본 명세서에 설명된 실시예들의 하나 이상의 예에 따른 방법 또는 장치를 수반할 수 있고, 여기서 제1 정확도 레벨은 제2 정확도 레벨과 상이하다.
일반적으로, 실시예의 다른 예는 본 명세서에 설명된 실시예들의 하나 이상의 예에 따른 방법 또는 장치를 수반할 수 있고, 여기서 코딩 모드는 인트라 블록 카피 모드를 포함한다.
일반적으로, 실시예의 다른 예는 본 명세서에 설명된 실시예들의 하나 이상의 예에 따른 방법 또는 장치를 수반할 수 있고, 여기서 코딩 모드는 병진 적응형 움직임 벡터 예측 모드를 포함한다.
일반적으로, 실시예의 다른 예는 본 명세서에 설명된 실시예들의 하나 이상의 예에 따른 방법 또는 장치를 수반할 수 있고, 여기서 코딩 모드는 아핀 적응형 움직임 벡터 예측 모드를 포함한다.
일반적으로, 실시예의 다른 예는 인코딩된 픽처 정보를 포함하도록 포맷팅된 비트스트림을 수반할 수 있고, 여기서 인코딩된 픽처 정보는 본 개시내용에 따른 방법들의 실시예들의 예들 중 임의의 하나 이상에 기초하여 픽처 정보를 처리함으로써 인코딩된다.
일반적으로, 실시예들의 하나 이상의 다른 예는 또한 본 명세서에 설명된 방법들 또는 장치에 따라 비디오 데이터와 같은 픽처 정보를 인코딩 또는 디코딩하기 위한 명령어들을 저장한 컴퓨터 판독가능 저장 매체, 예를 들어, 비휘발성 컴퓨터 판독가능 저장 매체를 제공할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는, 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 본 명세서에 설명된 실시예들의 하나 이상의 예에 따른 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품을 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 명령어들을 실행하는 컴퓨터로 하여금 본 명세서에 설명된 실시예들의 하나 이상의 예에 따른 방법을 수행하게 하는 실행가능 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체를 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에 설명된 실시예들의 임의의 하나 이상의 예에 따라 생성된 데이터를 포함하는 신호를 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에 설명된 실시예들의 예들 중 임의의 하나 이상에 따라 생성된 신택스 요소들 및 인코딩된 이미지 정보를 포함하도록 포맷팅된 비트스트림을 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에 설명된 방법들 또는 장치에 따라 생성된 비트스트림을 저장한 컴퓨터 판독가능 저장 매체를 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에 설명된 방법들 또는 장치에 따라 생성된 비트스트림 또는 신호를 송신 또는 수신하는 것을 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에 설명된 실시예들의 예들 중 임의의 하나 이상에 따른 장치; 및 (i) 신호를 수신하도록 구성된 안테나―신호는 이미지 정보를 나타내는 데이터를 포함함―, (ii) 수신된 신호를 이미지 정보를 나타내는 데이터를 포함하는 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 및 (iii) 이미지 정보로부터의 이미지를 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는 디바이스를 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에 설명된 바와 같은 디바이스를 수반할 수 있고, 디바이스는 텔레비전, 텔레비전 신호 수신기, 셋톱 박스, 게이트웨이 디바이스, 모바일 디바이스, 셀 폰, 태블릿, 또는 다른 전자 디바이스 중 하나를 포함한다.
다양한 실시예들이 설명되었다. 실시예들은 다양한 상이한 청구항 카테고리들 및 타입들에 걸쳐 다음의 특징들 또는 엔티티들 중 임의의 것을 단독으로 또는 임의의 조합으로 포함할 수 있다:
● 코딩된 움직임 벡터 차이의 x-성분과 y-성분 사이에서 구별되는 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨을 인코더 및/또는 디코더에 제공하는 것;
● 대칭 움직임 벡터 차이 코딩이 이용되지 않는 양방향 예측 블록의 경우에, L0 및 L1 참조 픽처 리스트들 사이에서 구별되는 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨을 인코더 및/또는 디코더에 제공하는 것;
● 고려된 블록이 VVC의 것과 같은 인트라 블록 카피 모드를 통해 코딩되는 코딩된 움직임 벡터 차이의 x-성분과 y-성분 사이에서 구별되는 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨을 인코더 및/또는 디코더에서 제공하는 것;
● 고려된 블록이 VVC의 것과 같은 인터 병진 AMVP 모드를 통해 코딩되는 코딩된 움직임 벡터 차이의 x-성분과 y-성분 사이에서 구별되는 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨을 인코더 및/또는 디코더에 제공하는 것;
● 고려된 블록이 VVC의 인터 아핀 AMVP 모드를 통해 코딩되는 코딩된 움직임 벡터 차이의 x-성분과 y-성분 사이에서 구별되는 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨을 인코더 및/또는 디코더에 제공하는 것;
● 대칭 움직임 벡터 차이 코딩이 이용되지 않고 고려된 블록이 VVC의 것과 같은 인터 병진 AMVP 모드를 통해 코딩되는 양방향 예측된 블록의 경우에, L0 및 L1 참조 픽처 리스트들 사이에서 구별되는 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨을 인코더 및/또는 디코더에서 제공하는 것;
● 대칭 움직임 벡터 차이 코딩이 이용되지 않고 고려된 블록이 VVC의 것과 같은 인터 아핀 AMVP 모드를 통해 코딩되는 양방향 예측된 블록의 경우에, L0 및 L1 참조 픽처 리스트들 사이에서 구별되는 움직임 벡터 차이(또는 MV 잔차)의 코딩에서의 정밀도 레벨을 인코더 및/또는 디코더에서 제공하는 것;
● VVC의 것과 같은 AMVR 툴에서의 증가된 유연성을 인코더 및/또는 디코더에 제공하는 것;
● 코딩된 움직임 벡터 차이(MVd)의 x-값과 y-값 사이의 정확도 레벨을 구별하는 것을 인코더 및/또는 디코더에 제공하는 것.
● 양방향 예측 코딩 유닛의 경우에, L0 및 L1 움직임 벡터 차이 코딩 사이의 정확도 레벨을 구별하는 것을 인코더 및/또는 디코더에 제공하는 것.
● 또한 감소된 복잡도 및/또는 개선된 압축 효율을 제공하는 것에 기초하여, 본 명세서에 설명된 바와 같이, 단독으로 또는 임의의 조합으로, 실시예들, 특징들 또는 엔티티들 중 임의의 것에 따른 VVC의 것과 같은 AMVR 툴에서 증가된 유연성을 인코더 및/또는 디코더에 제공하는 것.
● 인코더 및/또는 디코더가 본 명세서에 설명된 바와 같이, 단독으로 또는 임의의 조합으로, 실시예들, 특징들 또는 엔티티들 중 임의의 것에 따라 인코딩 및/또는 디코딩을 제공할 수 있게 하는 시그널링 신택스 요소들에 삽입하는 것.
● 이들 신택스 요소들에 기초하여, 디코더에서 적용하기 위해 본 명세서에 설명된 바와 같은 특징들 또는 엔티티들을 단독으로 또는 임의의 조합으로 선택하는 것.
● 설명된 신택스 요소들, 또는 그의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호.
● 인코더에 의해 이용되는 인코딩 방식에 대응하는 방식으로 디코더가 디코딩을 제공할 수 있게 하는 시그널링 신택스 요소들에 삽입하는 것.
● 설명된 신택스 요소들, 또는 그의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호를 생성 및/또는 송신 및/또는 수신 및/또는 디코딩하는 것.
● TV, 셋톱 박스, 셀 폰, 태블릿, 또는 본 명세서에 설명된 바와 같이, 단독으로 또는 임의의 조합으로, 실시예들, 특징들 또는 엔티티들 중 임의의 것에 따른 인코딩 및/또는 디코딩을 적용하는 것을 제공하는 다른 전자 디바이스.
● TV, 셋톱 박스, 셀 폰, 태블릿, 또는 본 명세서에 설명된 바와 같이, 단독으로 또는 임의의 조합으로, 실시예들, 특징들 또는 엔티티들 중 임의의 것에 따라 인코딩 및/또는 디코딩을 수행하고, 결과적인 이미지를 (예를 들어, 모니터, 스크린, 또는 다른 타입의 디스플레이를 이용하여) 디스플레이하는 다른 전자 디바이스.
● TV, 셋톱 박스, 셀 폰, 태블릿, 또는 인코딩된 이미지를 포함하는 신호를 수신하기 위해 채널을 (예를 들어, 튜너를 이용하여) 튜닝하고, 본 명세서에 설명된 바와 같이, 단독으로 또는 임의의 조합으로, 실시예들, 특징들 또는 엔티티들 중 임의의 것에 따라 인코딩 및/또는 디코딩을 수행하는 다른 전자 디바이스.
● TV, 셋톱 박스, 셀 폰, 태블릿, 또는 인코딩된 이미지를 포함하는 신호를 무선으로 (예를 들어, 안테나를 이용하여) 수신하고, 본 명세서에 설명된 바와 같이, 단독으로 또는 임의의 조합으로, 실시예들, 특징들 또는 엔티티들 중 임의의 것에 따라 인코딩 및/또는 디코딩을 수행하는 다른 전자 디바이스.
● 본 명세서에 설명된 바와 같이, 단독으로 또는 임의의 조합으로, 실시예들, 특징들 또는 엔티티들 중 임의의 것에 따른 컴퓨터 인코딩 및/또는 디코딩에 의해 실행될 때, 프로그램 코드를 저장하는 컴퓨터 프로그램 제품.
● 명령어들을 실행하는 컴퓨터로 하여금, 본 명세서에 설명된 바와 같이, 단독으로 또는 임의의 조합으로, 실시예들, 특징들 또는 엔티티들 중 임의의 것에 따른 인코딩 및/또는 디코딩을 구현하게 하는 실행가능 프로그램 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체.
다양한 다른 일반화된 것 뿐만 아니라 특정화된 실시예들이 또한 본 개시내용 전체에 걸쳐 지원되고 고려된다.
신택스 구조 리스팅 1: 실시예 1에 따른 coding_unit 신택스 구조의 예.
Figure pct00011
Figure pct00012
Figure pct00013
Figure pct00014
신택스 구조 리스팅 2: 실시예 2에 따른 coding_unit 신택스 구조의 예.
Figure pct00015
Figure pct00016
Figure pct00017
Figure pct00018
신택스 구조 리스팅 3: 실시예 3에 따른 coding_unit 신택스 구조의 예.
Figure pct00019
Figure pct00020
Figure pct00021
Figure pct00022
신택스 구조 리스팅 4: 실시예 4에 따른 coding_unit 신택스 구조의 예.
Figure pct00023
Figure pct00024
Figure pct00025
Figure pct00026
신택스 구조 리스팅 5: 실시예 5에 따른 coding_unit 신택스 구조의 예.
Figure pct00027
Figure pct00028
Figure pct00029
Figure pct00030

Claims (29)

  1. 방법으로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계;
    상기 코딩 모드에 기초하여, 상기 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 상기 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하는 단계;
    상기 움직임 벡터 정보 및 상기 제1 및 제2 정밀도 레벨들에 기초하여 상기 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및
    상기 코딩 모드 및 상기 움직임 벡터에 기초하여 상기 현재 코딩 유닛에 포함된 상기 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는
    방법.
  2. 방법으로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계;
    상기 코딩 모드에 기초하여, 상기 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 상기 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하는 단계;
    상기 움직임 벡터 정보 및 상기 제1 및 제2 정밀도 레벨들에 기초하여 상기 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및
    상기 코딩 모드 및 상기 움직임 벡터에 기초하여 상기 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는
    방법.
  3. 장치로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고;
    상기 코딩 모드에 기초하여, 상기 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 상기 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하고;
    상기 움직임 벡터 정보 및 상기 제1 및 제2 정밀도 레벨들에 기초하여 상기 현재 코딩 유닛과 연관된 움직임 벡터를 획득하고;
    상기 코딩 모드 및 상기 움직임 벡터에 기초하여 상기 픽처 정보의 적어도 일부분을 디코딩
    하도록 구성된 하나 이상의 프로세서를 포함하는
    장치.
  4. 장치로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고;
    상기 코딩 모드에 기초하여, 상기 현재 코딩 유닛과 연관된 움직임 벡터 정보의 제1 부분과 연관된 제1 정밀도 레벨, 및 상기 움직임 벡터 정보의 제2 부분과 연관된 제2 정밀도 레벨을 결정하고;
    상기 움직임 벡터 정보 및 상기 제1 및 제2 정밀도 레벨들에 기초하여 픽처 정보의 코딩 유닛과 연관된 움직임 벡터를 획득하고;
    상기 코딩 모드 및 상기 움직임 벡터에 기초하여 상기 픽처 정보의 적어도 일부분을 인코딩
    하도록 구성된 하나 이상의 프로세서를 포함하는
    장치.
  5. 제1항 내지 제4항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 움직임 벡터 정보는 움직임 벡터 잔차를 포함하는, 방법 또는 장치.
  6. 제1항 내지 제4항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 움직임 벡터 정보는 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차를 포함하는, 방법 또는 장치.
  7. 방법으로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계;
    상기 코딩 모드에 기초하여, 상기 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 상기 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하는 단계;
    상기 움직임 벡터 잔차 및 상기 제1 및 제2 정밀도 레벨들에 기초하여 상기 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및
    상기 코딩 모드 및 상기 움직임 벡터에 기초하여 상기 현재 코딩 유닛에 포함된 상기 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는
    방법.
  8. 방법으로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계;
    상기 코딩 모드에 기초하여, 상기 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 상기 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하는 단계;
    상기 움직임 벡터 잔차 및 상기 제1 및 제2 정밀도 레벨들에 기초하여 상기 현재 코딩 유닛과 연관된 움직임 벡터를 획득하는 단계; 및
    상기 코딩 모드 및 상기 움직임 벡터에 기초하여 상기 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는
    방법.
  9. 장치로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고;
    상기 코딩 모드에 기초하여, 상기 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 상기 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하고;
    상기 움직임 벡터 잔차 및 상기 제1 및 제2 정밀도 레벨들에 기초하여 상기 현재 코딩 유닛과 연관된 움직임 벡터를 획득하고;
    상기 코딩 모드 및 상기 움직임 벡터에 기초하여 상기 픽처 정보의 적어도 일부분을 디코딩
    하도록 구성된 하나 이상의 프로세서를 포함하는
    장치.
  10. 장치로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고;
    상기 코딩 모드에 기초하여, 상기 현재 코딩 유닛과 연관된 움직임 벡터 잔차의 제1 성분과 연관된 제1 정밀도 레벨, 및 상기 움직임 벡터 잔차의 제2 성분과 연관된 제2 정밀도 레벨을 결정하고;
    상기 움직임 벡터 잔차 및 상기 제1 및 제2 정밀도 레벨들에 기초하여 픽처 정보의 코딩 유닛과 연관된 움직임 벡터를 획득하고;
    상기 코딩 모드 및 상기 움직임 벡터에 기초하여 상기 픽처 정보의 적어도 일부분을 인코딩
    하도록 구성된 하나 이상의 프로세서를 포함하는
    장치.
  11. 제5항 또는 제7항 내지 제10항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 제1 성분은 상기 움직임 벡터 잔차의 x-성분에 대응하고;
    상기 제2 성분은 상기 움직임 벡터 잔차의 y 성분에 대응하고;
    상기 제1 정밀도 레벨은 상기 x-성분의 제1 정확도 레벨을 나타내고;
    상기 제2 정밀도 레벨은 상기 y-성분의 제2 정확도 레벨을 나타내는, 방법 또는 장치.
  12. 제11항의 방법 또는 장치에 있어서,
    상기 제1 정확도 레벨은 상기 제2 정확도 레벨과 상이한, 방법 또는 장치.
  13. 제1항 내지 제12항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 코딩 모드는 인트라 블록 카피 모드를 포함하는, 방법 또는 장치.
  14. 제1항 내지 제12항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 코딩 모드는 병진 적응형 움직임 벡터 예측 모드를 포함하는, 방법 또는 장치.
  15. 제1항 내지 제12항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 코딩 모드는 아핀 적응형 움직임 벡터 예측 모드를 포함하는, 방법 또는 장치.
  16. 방법으로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계;
    상기 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하는 단계;
    상기 제1 움직임 벡터 잔차 및 상기 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 상기 제2 움직임 벡터 잔차 및 상기 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하는 단계; 및
    상기 코딩 모드 및 상기 제1 및 제2 움직임 벡터들에 기초하여 상기 픽처 정보의 적어도 일부분을 디코딩하는 단계를 포함하는
    방법.
  17. 방법으로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하는 단계;
    상기 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하는 단계;
    상기 제1 움직임 벡터 잔차 및 상기 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 상기 제2 움직임 벡터 잔차 및 상기 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하는 단계; 및
    상기 코딩 모드 및 상기 제1 및 제2 움직임 벡터들에 기초하여 상기 픽처 정보의 적어도 일부분을 인코딩하는 단계를 포함하는
    방법.
  18. 장치로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고;
    상기 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하고;
    상기 제1 움직임 벡터 잔차 및 상기 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 상기 제2 움직임 벡터 잔차 및 상기 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하고;
    상기 코딩 모드 및 상기 제1 및 제2 움직임 벡터들에 기초하여 상기 픽처 정보의 적어도 일부분을 디코딩
    하도록 구성된 하나 이상의 프로세서를 포함하는
    장치.
  19. 장치로서,
    픽처 정보를 포함하는 현재 코딩 유닛과 연관된 코딩 모드를 결정하고;
    상기 코딩 모드에 기초하여, 제1 참조 픽처 리스트에 대응하는 제1 움직임 벡터 잔차와 연관된 제1 정밀도 레벨, 및 제2 참조 픽처 리스트에 대응하는 제2 움직임 벡터 잔차와 연관된 제2 정밀도 레벨을 결정하고;
    상기 제1 움직임 벡터 잔차 및 상기 제1 정밀도 레벨에 기초하여 제1 움직임 벡터를 획득하고, 상기 제2 움직임 벡터 잔차 및 상기 제2 정밀도 레벨에 기초하여 제2 움직임 벡터를 획득하고;
    상기 코딩 모드 및 상기 제1 및 제2 움직임 벡터들에 기초하여 상기 픽처 정보의 적어도 일부분을 인코딩
    하도록 구성된 하나 이상의 프로세서를 포함하는
    장치.
  20. 제6항 또는 제16항 내지 제19항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 제1 정밀도 레벨은 상기 제1 움직임 벡터 잔차의 제1 정확도 레벨을 나타내고;
    상기 제2 정밀도 레벨은 상기 제2 움직임 벡터 잔차의 제2 정확도 레벨을 나타내는, 방법 또는 장치.
  21. 제20항의 방법 또는 장치에 있어서,
    상기 제1 정확도 레벨은 상기 제2 정확도 레벨과 상이한, 방법 또는 장치.
  22. 제6항 또는 제16항 내지 제21항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 코딩 모드는 병진 적응형 움직임 벡터 예측 모드를 포함하는, 방법 또는 장치.
  23. 제6항 또는 제16항 내지 제21항 중 어느 한 항의 방법 또는 장치에 있어서,
    상기 코딩 모드는 아핀 적응형 움직임 벡터 예측 모드를 포함하는, 방법 또는 장치.
  24. 컴퓨터 프로그램 제품으로서,
    컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항, 제2항, 제7항, 제8항, 제11항 내지 제17항, 또는 제20항 내지 제23항 중 어느 한 항에 따른 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품.
  25. 비일시적 컴퓨터 판독가능 매체로서,
    명령어들을 실행하는 컴퓨터로 하여금 제1항, 제2항, 제7항, 제8항, 제11항 내지 제17항, 또는 제20항 내지 제23항 중 어느 한 항에 따른 방법을 수행하게 하는 실행가능 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체.
  26. 신호로서,
    제1항, 제2항, 제7항, 제8항, 제11항 내지 제17항, 또는 제20항 내지 제23항 중 어느 한 항의 방법에 따라 생성된 데이터를 포함하는 신호.
  27. 비트스트림으로서,
    제1항, 제2항, 제7항, 제8항, 제11항 내지 제17항, 또는 제20항 내지 제23항 중 어느 한 항의 방법에 따라 신택스 요소들 및 인코딩된 이미지 정보를 포함하도록 포맷팅된 비트스트림.
  28. 디바이스로서,
    제3항 내지 제6항, 제9항 내지 제15항, 또는 제18항 내지 제23항 중 어느 한 항에 따른 장치; 및
    (i) 신호를 수신하도록 구성된 안테나―상기 신호는 이미지 정보를 나타내는 데이터를 포함함―, (ii) 상기 수신된 신호를 상기 이미지 정보를 나타내는 상기 데이터를 포함하는 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 및 (iii) 상기 이미지 정보로부터의 이미지를 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는
    디바이스.
  29. 제28항에 있어서,
    상기 디바이스는 텔레비전, 텔레비전 신호 수신기, 셋톱 박스, 게이트웨이 디바이스, 모바일 디바이스, 셀 폰, 태블릿, 또는 다른 전자 디바이스 중 하나를 포함하는, 디바이스.
KR1020217041645A 2019-06-20 2020-06-18 비디오 인코딩 및 디코딩을 위한 움직임 벡터 처리 KR20220047729A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19305795.7 2019-06-20
EP19305795 2019-06-20
PCT/EP2020/066862 WO2020254459A1 (en) 2019-06-20 2020-06-18 Motion vector processing for video encoding and decoding

Publications (1)

Publication Number Publication Date
KR20220047729A true KR20220047729A (ko) 2022-04-19

Family

ID=67437684

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217041645A KR20220047729A (ko) 2019-06-20 2020-06-18 비디오 인코딩 및 디코딩을 위한 움직임 벡터 처리

Country Status (5)

Country Link
US (1) US20220360813A1 (ko)
EP (1) EP3987796A1 (ko)
KR (1) KR20220047729A (ko)
CN (1) CN114270844A (ko)
WO (1) WO2020254459A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022197137A1 (ko) * 2021-03-19 2022-09-22 현대자동차주식회사 성분별 적응적 공간해상도를 갖는 움직임벡터를 이용하는 비디오 코딩방법 및 장치
US20230396797A1 (en) * 2022-06-06 2023-12-07 Tencent America LLC Translational motion vector coding in affine mode

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100924850B1 (ko) * 2002-01-24 2009-11-02 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
US10531116B2 (en) * 2014-01-09 2020-01-07 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
US11012715B2 (en) * 2018-02-08 2021-05-18 Qualcomm Incorporated Intra block copy for video coding

Also Published As

Publication number Publication date
EP3987796A1 (en) 2022-04-27
WO2020254459A1 (en) 2020-12-24
US20220360813A1 (en) 2022-11-10
CN114270844A (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
US20220345744A1 (en) Secondary transform for video encoding and decoding
US20230095387A1 (en) Neural network-based intra prediction for video encoding or decoding
US20230232037A1 (en) Unified process and syntax for generalized prediction in video coding/decoding
US20240171750A1 (en) Motion vector derivation in video encoding and decoding
US20230007239A1 (en) Virtual temporal affine candidates
US11595685B2 (en) Motion vector prediction in video encoding and decoding
US20220060688A1 (en) Syntax for motion information signaling in video coding
KR20220047729A (ko) 비디오 인코딩 및 디코딩을 위한 움직임 벡터 처리
US20230018401A1 (en) Motion vector prediction in video encoding and decoding
US11375202B2 (en) Translational and affine candidates in a unified list
WO2021122416A1 (en) Subblock merge candidates in triangle merge mode
EP3878179A1 (en) Parameter grouping among plural coding units for video encoding and decoding
US20220345693A1 (en) Coding mode information propagation for video coding
US20230024223A1 (en) Intra sub partitions for video encoding and decoding combined with multiple transform selection, matrix weighted intra prediction or multi-reference-line intra prediction
US20220295057A1 (en) Switchable interpolation filters
US20210344925A1 (en) Block size based motion vector coding in affine mode
EP3606075A1 (en) Virtual temporal affine motion vector candidates
WO2023194103A1 (en) Temporal intra mode derivation
WO2022101018A1 (en) A method and an apparatus for encoding or decoding a video
WO2024033116A1 (en) Geometric partition mode boundary prediction
WO2024078896A1 (en) Template type selection for video coding and decoding
WO2023194106A1 (en) Motion information parameters propagation based on intra prediction direction