KR20230170987A - 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법 - Google Patents

광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법 Download PDF

Info

Publication number
KR20230170987A
KR20230170987A KR1020237042446A KR20237042446A KR20230170987A KR 20230170987 A KR20230170987 A KR 20230170987A KR 1020237042446 A KR1020237042446 A KR 1020237042446A KR 20237042446 A KR20237042446 A KR 20237042446A KR 20230170987 A KR20230170987 A KR 20230170987A
Authority
KR
South Korea
Prior art keywords
subblock
motion
current block
motion vector
motion prediction
Prior art date
Application number
KR1020237042446A
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 KR20230170987A publication Critical patent/KR20230170987A/ko

Links

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/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/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods 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 a pixel
    • 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
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Measuring Volume Flow (AREA)

Abstract

방법, 장치 및 시스템이 개시된다. 하나의 실시예에서, 디코딩 방법은, 비디오의 현재 블록에 대해 서브블록 기반 모션 예측 신호를 획득하는 단계; 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기(spatial gradients) 또는 하나 이상의 모션 벡터 차이 값을 획득하는 단계; 하나 이상의 획득된 공간적 기울기 또는 하나 이상의 획득된 모션 벡터 차이 값에 기초하여 현재 블록에 대해 개선 신호(refinement signal)를 획득하는 단계; 서브블록 기반 모션 예측 신호 및 개선 신호에 기초하여 현재 블록에 대해 개선된 모션 예측 신호를 획득하는 단계; 및 개선된 모션 예측 신호에 기초하여 현재 블록을 디코딩하는 단계를 포함한다.

Description

광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법{SYSTEMS, APPARATUS AND METHODS FOR INTER PREDICTION REFINEMENT WITH OPTICAL FLOW}
상호 참조
본 출원은 2019년 2월 7일에 출원된 미국 특허 가출원 제62/802,428호, 2019년 3월 6일에 출원된 제62/814,611호, 및 2019년 4월 15일에 출원된 제62/883,999호의 이익을 주장하는데, 이들 출원 각각의 내용은 참조에 의해 본 명세서에 통합된다.
본 출원은 비디오 코딩에 관한 것으로, 보다 구체적으로는, 광류(optical flow)를 사용한 인터 예측 개선(inter-prediction refinement)을 사용하는 시스템, 장치 및 방법에 관한 것이다.
비디오 코딩 시스템은 디지털 비디오 신호를 압축하여 이러한 신호의 저장 및/또는 송신 대역폭을 감소시키는 데 널리 사용될 수 있다. 예를 들어, 블록 기반, 웨이블릿 기반 및 객체 기반 시스템과 같은 다양한 유형의 비디오 코딩 시스템 중에서, 오늘날 블록 기반의 하이브리드 비디오 코딩 시스템이 가장 널리 사용되고 배치되고 있다. 블록 기반 비디오 코딩 시스템의 예는 예를 들어, MPEG1/2/4 부분 2, H.264/MPEG-4 부분 10 AVC, VC-1과 같은 국제 비디오 코딩 표준과, ITU-T/SG16/Q.6/VCEG 및 ISO/IEC/MPEG의 JCT-VC(Joint Collaborative Team on Video Coding)에 의해 개발된, 고효율 비디오 코딩(High Efficiency Video Coding; HEVC)이라는 최신 비디오 코딩 표준을 포함한다.
하나의 대표적인 실시예에서, 디코딩 방법은, 비디오의 현재 블록에 대해 서브블록 기반 모션 예측 신호를 획득하는 단계; 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기 또는 하나 이상의 모션 벡터 차이 값을 획득하는 단계; 하나 이상의 획득된 공간적 기울기 또는 하나 이상의 획득된 모션 벡터 차이 값에 기초하여 현재 블록에 대해 개선 신호를 획득하는 단계; 서브블록 기반 모션 예측 신호 및 개선 신호에 기초하여 현재 블록에 대해 개선된 모션 예측 신호를 획득하는 단계; 및 개선된 모션 예측 신호에 기초하여 현재 블록을 디코딩하는 단계를 포함한다. 다양한 다른 실시예가 또한 여기에 개시되어 있다.
첨부의 도면과 연계하여 예로서 주어지는 이하의 상세한 설명으로부터 더 상세한 이해가 이루어질 수 있다. 설명의 도면들은 예시들이다. 이와 같이, 도면 및 상세한 설명은 제한적인 것으로 간주되어서는 안 되며, 동등하게 효과적인 다른 예가 가능하고 가능성이 있다. 또한, 도면에서 유사한 참조 번호는 유사한 요소를 나타낸다.
도 1은 대표적인 블록 기반 비디오 인코딩 시스템을 나타내는 블록도이다.
도 2는 대표적인 블록 기반 비디오 디코더를 나타내는 블록도이다.
도 3은 일반화된 양방향 예측(generalized bi-prediction; GBi) 지원을 갖는 대표적인 블록 기반 비디오 인코더를 도시하는 블록도이다.
도 4는 대표적인 인코더용 GBi 모듈을 도시하는 도면이다.
도 5는 GBi를 지원하는 대표적인 블록 기반 비디오 디코더를 도시하는 도면이다.
도 6은 대표적인 디코더용 GBi 모듈을 도시하는 도면이다.
도 7은 대표적인 양방향 광류를 도시하는 도면이다.
도 8a 및 도 8b는 대표적인 4-파라미터 아핀 모드를 도시하는 도면이다.
도 9는 대표적인 6-파라미터 아핀 모드를 도시하는 도면이다.
도 10은 대표적인 인터위브드(interweaved) 예측 절차를 도시하는 도면이다.
도 11은 서브블록에서 (예컨대, 화소와 연관된) 대표적인 가중치 값을 도시하는 도면이다.
도 12는 인터위브드 예측이 적용된 영역과 인터위브드 예측이 적용되지 않은 다른 영역을 도시하는 도면이다.
도 13a 및 도 13b는 SbTMVP 프로세스를 설명하기 위한 도면이다.
도 14는 모션 파라미터 유도(motion parameter derivation)를 위해 사용될 수 있는 이웃 모션 블록(예컨대, 4x4 모션 블록)을 도시하는 도면이다.
도 15는 모션 파라미터 유도를 위해 사용될 수 있는 이웃 모션 블록을 도시하는 도면이다.
도 16은 서브블록 기반 아핀 모션 보상 예측 이후의 서브블록 MV 및 화소 레벨 MV 차이 를 도시하는 도면이다.
도 17a는 서브블록의 실제 중심에 대응하는 MV를 결정하기 위한 대표적인 절차를 도시하는 도면이다.
도 17b는 4:2:0 크로마 포맷에서 크로마 샘플의 위치를 도시하는 도면이다.
도 17c는 확장된 예측 서브블록을 도시하는 도면이다.
도 18a는 제1 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 18b는 제2 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 19는 제3 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 20은 제4 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 21은 제5 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 22는 제6 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 23은 제7 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 24는 제8 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 25는 대표적인 기울기 계산 방법을 도시하는 흐름도이다.
도 26은 제9 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 27은 제10 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 28은 제11 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 29는 대표적 인코딩 방법을 도시하는 흐름도이다.
도 30은 또 다른 대표적 인코딩 방법을 도시하는 흐름도이다.
도 31은 제12 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 32는 제13 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 33은 제14 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 34a는 하나 이상의 개시된 실시예가 구현될 수 있는 예시적인 통신 시스템을 도시하는 시스템도이다.
도 34b는 실시예에 따라 도 34a에 도시된 통신 시스템 내에서 사용될 수 있는 예시적인 무선 송수신 유닛(wireless transmit/receive unit; WTRU)을 도시하는 시스템도이다.
도 34c는 실시예에 따라 도 34a에 도시되는 통신 시스템 내에서 사용될 수 있는 예시적인 무선 액세스 네트워크(radio access network; RAN) 및 예시적인 코어 네트워크(core network; CN)를 도시하는 시스템도이다.
도 34d는 실시예에 따라 도 34a에 도시된 통신 시스템 내에서 사용될 수 있는 추가의 예시적인 RAN 및 추가의 예시적인 CN을 도시하는 시스템도이다.
블록 기반 하이브리드 비디오 코딩 절차
HEVC와 마찬가지로, VVC는 블록 기반 하이브리드 비디오 코딩 프레임워크를 기반으로 한다.
도 1은 일반적인 블록 기반 하이브리드 비디오 인코딩 시스템을 도시하는 블록도이다.
도 1을 참조하면, 인코더(100)는 블록 단위로 프로세싱되는(코딩 단위(coding unit; CU)라고 함) 입력 비디오 신호(102)가 제공될 수 있고, 고해상도(1080p 이상) 비디오 신호를 효율적으로 압축하는 데 사용될 수 있다. HEVC에서 CU는 최대 64x64 화소일 수 있다. CU는 예측 단위(prediction unit) 즉, PU로 더 분할될 수 있으며, 이에 대해 별도의 예측 절차가 적용될 수 있다. 각각의 입력 비디오 블록(MB 및/또는 CU)에 대해, 공간적 예측(160) 및/또는 시간적 예측(162)이 수행될 수 있다. 공간적 예측(또는 "인트라 예측")은 현재 비디오 블록을 예측하기 위해 동일한 비디오 화상/슬라이스에서 이미 코딩된 이웃 블록으로부터의 화소를 사용할 수 있다.
공간적 예측은 비디오 신호에 내재된 공간 중복성을 감소시킬 수 있다. 시간적 예측("인터 예측" 또는 "모션 보상 예측"이라고도 함)은 이미 코딩된 비디오 화상으로부터의 화소를 사용하여 현재 비디오 블록을 예측한다. 시간적 예측은 비디오 신호에 내재된 시간적 중복성을 감소시킬 수 있다. 주어진 비디오 블록에 대한 시간적 예측 신호는 현재 블록(CU)과 그 참조 블록 간의 모션의 양 및/또는 방향을 나타낼 수 있는 하나 이상의 모션 벡터(motion vector; MV)에 의해(예컨대, 통상적으로) 시그널링될 수 있다.
다수의 참조 화상이 지원되는 경우(H.264/AVC 또는 HEVC와 같은 최근 비디오 코딩 표준의 경우와 같이), 각 비디오 블록에 대해 해당 참조 화상 인덱스가 (예컨대, 추가적으로) 송신될 수 있다; 그리고/또는 참조 인덱스는 참조 화상 저장소(164)의 어느 참조 화상으로부터 시간적 예측 신호가 오는지를 식별하기 위해 사용될 수 있다. 공간적 및/또는 시간적 예측 후에, 인코더(100)의 모드 결정 블록(180)은 예를 들어, 레이트-왜곡 최적화 방법/절차에 기초하여 최상의 예측 모드를 선택할 수 있다. 공간적 예측(160) 또는 시간적 예측(162)으로부터의 예측 블록은 현재 비디오 블록(116)으로부터 감산(subtract)될 수 있고; 그리고/또는 예측 잔차는 변환(104)을 사용하여 역상관될 수 있고 타겟 비트 레이트를 달성하기 위해 양자화(106)될 수 있다. 양자화된 잔차 계수는 역양자화(106)되고 역변환(112)되어 재구성된 잔차를 형성할 수 있고, 재구성된 잔차는 예측 블록(226)에 추가되어 재구성된 비디오 블록을 형성할 수 있다. 예를 들어, 디블록킹 필터 및 적응 루프 필터와 같은 추가 인루프 필터링(166)은 참조 화상 저장소(164)에 놓이기 전에 재구성된 비디오 블록에 적용될 수 있고 미래의 비디오 블록을 코딩하는 데 사용될 수 있다. 출력 비디오 비트스트림(120)을 형성하기 위해, 코딩 모드(인터 또는 인트라), 예측 모드 정보 및/또는 양자화된 잔차 계수들이 엔트로피 코딩 모듈(108)에 송신되어(예컨대, 모두 송신되어) 비트스트림을 형성하도록 또한 압축 및/또는 팩킹(packing)될 수 있다.
인코더(100)는 전술한 다양한 요소/모듈/유닛을 제공하는 프로세서, 메모리 및 송신기를 사용하여 구현될 수 있다. 예를 들어, 당업자는 송신기가 비트스트림(120)을 디코더에 송신할 수 있고; (2) 프로세서는 입력 비디오(102)의 수신 및 인코더(100)의 다양한 블록과 연관된 기능의 수행을 가능하게 하는 소프트웨어를 실행하도록 구성될 수 있다.
도 2는 블록 기반 비디오 디코더를 도시하는 블록도이다.
도 2를 참조하면, 비디오 디코더(200)는 엔트로피 디코딩 유닛(208)에서 언팩되고 엔트로피 디코딩될 수 있는 비디오 비트스트림(202)을 제공받을 수 있다. 예측 블록을 형성하기 위해 공간적 예측 유닛(260)(인트라 코딩 모드의 경우) 및/또는 시간적 예측 유닛(262)(인터 코딩 모드의 경우)으로 송신될 수 있다(코딩 모드 및 예측 정보는 이들 유닛들 중 적절한 유닛에 송신됨). 잔차 변환 계수는 잔차 블록을 재구성하기 위해 역양자화 유닛(210) 및/또는 역변환 모듈(212)에 송신될 수 있다. 재구성된 블록은 참조 화상 저장소(264)에 저장되기 전에 인루프 필터링(266)을 더 거칠 수 있다. 재구성된 비디오(220)는 미래의 비디오 블록을 예측하는 데 사용하기 위해 참조 화상 저장소(264)에 저장되는 것 외에, 예를 들어, 디스플레이 디바이스를 구동하기 위해 송신될 수 있다.
디코더(200)는 위에서 개시된 다양한 요소/모듈/유닛을 제공할 수 있는 프로세서, 메모리 및 수신기를 사용하여 구현될 수 있다. 예를 들어, 당업자는 다음을 이해한다: (1) 수신기는 비트스트림(202)을 수신하도록 구성될 수 있고; (2) 프로세서는 비트스트림(202)의 수신 및 재구성된 비디오(220)의 출력 및 디코더(200)의 다양한 블록과 연관된 기능의 수행을 가능하게 하는 소프트웨어를 실행하도록 구성될 수 있다.
당업자는 블록 기반 인코더 및 블록 기반 디코더의 많은 기능/동작/프로세스가 동일하다는 것을 이해한다.
현대의 비디오 코덱에서 양방향 모션 보상 예측(motion compensed prediction; MCP)는 화상들 간의 시간적 상관관계를 사용하여 시간적 중복성을 제거하는 데 높은 효율을 위해 사용될 수 있다. 양방향 예측 신호는 0.5와 동일한 가중치 값을 사용하여 두 개의 단방향 예측 신호를 결합함으로써 형성될 수 있으며, 이는 특히 한 참조 화상에서 또 다른 참조 화상으로 조도가 빠르게 변하는 일부 조건에서 단방향 예측 신호들을 결합하는 데 최적이 아닐 수 있다. 특정 예측 기술/동작 및/또는 절차는 어떤 전역/국부 가중치 및/또는 오프셋 값을 참조 화상의 샘플 값(예컨대, 참조 화상의 샘플 값의 일부 또는 각각)에 적용함으로써 시간 경과에 따른 조도 변화를 보상하도록 구현될 수 있다.
비디오 코덱에서 양방향 모션 보상 예측(bi-directional motion compensated prediction; MCP)을 사용하면 화상들 간의 시간적 상관관계를 활용하여 시간적 중복성의 제거를 가능케 한다. 양방향 예측 신호는 가중치 값(예컨대, 0.5)을 사용하여 두 개의 단방향 예측 신호를 결합하여 형성될 수 있다. 특정 비디오에서 조도 특성은 하나의 참조 화상에서 또 다른 참조 화상으로 빠르게 변경될 수 있다. 따라서, 예측 기술은 참조 화상의 하나 이상의 샘플 값에 전역 또는 국부 가중치 및/또는 오프셋 값을 적용함으로써 시간 경과에 따른 조도의 변화(예컨대, 페이딩 전환)를 보상할 수 있다.
일반화된 양방향 예측(Generalized Bi-prediction; GBi)은 양방향 예측 모드에 대해 MCP를 개선할 수 있다. 양방향 예측 모드에서, 주어진 샘플 x에서의 예측 신호는 다음과 같이 수학식 1에 의해 계산될 수 있다:
전술된 수학식에서, P[x]는 화상 위치 x에 위치한 샘플 x의 결과 예측 신호를 나타낼 수 있다. Pi[x+v i]는 i번째 목록(예컨대, 목록 0, 목록 1 등)에 대해 모션 벡터(MV) v i를 사용한 x의 모션 보상 예측 신호일 수 있다. w0과 w1은 블록의 (예컨대, 모든) 샘플에 걸쳐 공유되는 두 개의 가중치 값일 수 있다. 이 수학식에 기초해서, 가중치 값 w0 및 w1을 조정하여 다양한 예측 신호가 얻어질 수 있다. w0 및 w1의 일부 구성은 단방향 예측 및 양방향 예측과 동일한 예측을 의미할 수 있다. 예를 들어, (w0, w1) = (1, 0)은 참조 목록(L0)과 함께 단방향 예측에 사용될 수 있다. (w0, w1) = (0, 1)은 참조 목록(L1)과 함께 단방향 예측에 사용될 수 있다. (w0, w1) = (0.5, 0.5)은 두 개의 참조 목록을 갖는 양방향 예측을 위한 것일 수 있다. 가중치는 CU별로 시그널링될 수 있다. 시그널링 오버헤드를 줄이기 위해, 하나의 가중치가 시그널링될 수 있도록 예를 들어, w0 + w1 = 1과 같은 제약이 적용될 수 있다. 이와 같이, 수학식 1은 다음과 같이 수학식 2에 기재된 바와 같이 더 단순화될 수 있다:
가중치 시그널링 오버헤드를 더 줄이기 위해, w1은 이산화(discretize)될 수 있다(예컨대, -2/8, 2/8, 3/8, 4/8, 5/8, 6/8, 10/8 등). 그러면, 각각의 가중치 값은 (예컨대, 작은) 제한된 범위 내의 인덱스 값으로 표시될 수 있다.
도 3은 GBi 지원을 갖는 대표적인 블록 기반 비디오 인코더를 도시하는 블록도이다.
인코더(300)는 모드 결정 모듈(304), 공간적 예측 모듈(306), 모션 예측 모듈(308), 변환 모듈(310), 양자화 모듈(312), 역양자화 모듈(316), 역변환 모듈(318), 루프 필터(320), 참조 화상 저장소(322) 및 엔트로피 코딩 모듈(314)을 포함할 수 있다. 인코더의 모듈 또는 컴포넌트(예컨대, 공간적 예측 모듈(306)) 중 일부 또는 전부는 도 1과 관련하여 설명된 것과 동일하거나 유사할 수 있다. 또한, 공간적 예측 모듈(306) 및 모션 예측 모듈(308)은 화소 도메인 예측 모듈 일 수 있다. 따라서, 입력 비디오 비트스트림(302)은 입력 비디오 비트스트림(102)과 유사한 방식으로 프로세싱될 수 있지만, 모션 예측 모듈(308)은 GBi 지원을 더 포함할 수 있다. 이와 같이, 모션 예측 모듈(308)은 가중화된 평균 방식으로 2개의 개별 예측 신호를 결합할 수 있다. 또한, 선택된 가중치 인덱스는 출력 비디오 비트 스트림(324)에서 시그널링될 수 있다.
인코더(300)는 전술한 다양한 요소/모듈/유닛을 제공하는 프로세서, 메모리 및 송신기를 사용하여 구현될 수 있다. 예를 들어, 당업자는 송신기가 비트스트림(324)을 디코더에 송신할 수 있고; (2) 프로세서는 입력 비디오(302)의 수신 및 인코더(300)의 다양한 블록과 연관된 기능의 수행을 가능하게 하는 소프트웨어를 실행하도록 구성될 수 있다.
도 4는 예를 들어, 모션 예측 모듈(308)과 같은 인코더의 모션 예측 모듈에서 사용될 수 있는 대표적인 GBi 추정 모듈(400)을 예시하는 도면이다. GBi 추정 모듈(400)은 가중치 값 추정 모듈(402) 및 모션 추정 모듈(404)을 포함할 수 있다. 이와 같이, GBi 추정 모듈(400)은 예를 들어, 최종 인터 예측 신호와 같은 인터 예측 신호를 생성하기 위해 프로세스(예컨대, 2-단계 동작/프로세스)를 사용할 수 있다. 모션 추정 모듈(404)은, 입력 비디오 블록(401)과, 참조 화상 저장소(406)로부터 수신된 하나 이상의 참조 화상(들)을 사용해, 그리고 (예컨대, 2개의) 참조 블록을 가리키는 두 개의 최적 모션 벡터(MV)를 검색(search)함으로써 모션 추정을 수행할 수 있다. 가중치 추정 모듈(402)은: (1) 모션 추정 모듈(404)의 출력(예컨대, 모션 벡터 v0 그리고 v1), (2) 참조 화상 저장소(406)로부터의 하나 이상의 참조 화상, 및 (3) 가중치 정보(W)를 수신하고, 현재 비디오 블록과 양방향 예측 간의 가중된 양방향 예측 오차를 최소화하기 위해 최적의 가중치 인덱스를 검색할 수 있다. 가중치 정보(W)는 이용 가능한 가중치 값 또는 가중치 세트(set)의 목록을 설명할 수 있어서, 결정된 가중치 인덱스 및 가중치 정보(W)가 함께 GBi에서 사용될 가중치(w0 및 w1)를 명시하는 데 사용될 수 있음이 고려된다. 일반화된 양방향 예측의 예측 신호는 두 예측 블록의 가중 평균으로서 계산될 수 있다. GBi 추정 모듈(400)의 출력은 특히, 인터 예측 신호, 모션 벡터(v0 and v1), 및/또는 가중치 인덱스(weight_idx)를 포함할 수 있다.
도 5는 예를 들어, 도 3과 관련하여 설명된 인코더(300)에 의해 생성된 비트스트림(324)과 같은 GBi를 지원하는 (예컨대, 인코더로부터의) 비트스트림(502)을 디코딩할 수 있는, GBi 지원을 갖는 대표적인 블록 기반 비디오 디코더를 예시하는 도면이다. 도 5에 도시된 바와 같이, 비디오 디코더(500)는 엔트로피 디코더(504), 공간적 예측 모듈(506), 모션 예측 모듈(508), 참조 화상 저장소(510), 역양자화 모듈(512), 역변환 모듈(514) 및/또는 루프 필터 모듈(518)을 포함할 수 있다. 디코더의 모듈 중 일부 또는 전부는 도 2와 관련하여 설명된 것과 동일하거나 유사할 수 있지만, 모션 예측 모듈(508)은 GBi 지원을 더 포함할 수 있다. 이와 같이, 코딩 모드 및 예측 정보는 공간적 예측 또는 GBi 지원을 갖는 MCP를 사용하여 예측 신호를 유도하는 데 사용될 수 있다. GBI의 경우, 블록 모션 정보 및 가중치 값(예컨대, 가중치 값을 나타내는 인덱스 형태로)이 수신 및 디코딩되어 예측 블록을 생성할 수 있다.
디코더(500)는 위에서 개시된 다양한 요소/모듈/유닛을 제공할 수 있는 프로세서, 메모리 및 수신기를 사용하여 구현될 수 있다. 예를 들어, 당업자는 다음을 이해한다: (1) 수신기는 비트스트림(502)을 수신하도록 구성될 수 있고; (2) 프로세서는 비트스트림(502)의 수신 및 재구성된 비디오(520)의 출력 및 디코더(500)의 다양한 블록과 연관된 기능의 수행을 가능하게 하는 소프트웨어를 실행하도록 구성될 수 있다.
도 6은 예를 들어, 모션 예측 모듈(508)과 같은 디코더의 모션 예측 모듈에서 사용될 수 있는 대표적인 GBi 예측 모듈을 예시하는 도면이다.
도 6을 참조하면, GBi 예측 모듈은 참조 화상 저장소(606)로부터 하나 이상의 참조 화상을 수신할 수 있는 가중화된 평균 모듈(602) 및 모션 보상 모듈(604)을 포함할 수 있다. 가중화된 평균 모듈(602)은 모션 보상 모듈(604)의 출력, 가중치 정보(W) 및 가중치 인덱스(예컨대, weight_idx)를 수신할 수 있다. 모션 보상 모듈(604)의 출력은 화상의 블록들에 대응할 수 있는 모션 정보를 포함할 수 있다. GBi 예측 모듈(600)은 블록 모션 정보 및 가중치 값을 사용하여 GBi의 예측 신호(예컨대, 인터 예측 신호(608))를 (예컨대, 2개의) 모션 보상 예측 블록의 가중화된 평균으로서 계산한다.
광류 모델에 기초한 대표적인 양방향 예측
도 7은 대표적인 양방향 광류를 도시하는 도면이다.
도 7을 참조하면, 양방향 예측은 광류 모델에 기초할 수 있다. 예를 들어, 현재 블록(예컨대, curblk(700))과 연관된 예측은 제1 예측 블록 (702)(예컨대, 시간상 예컨대, 만큼 시프트된 시간적으로 이전의 예측 블록)과, 제2 예측 블록 704)(예컨대, 시간상 예컨대, 만큼 시프트된 예를 들어, 시간적으로 미래의 블록)과 연관된 광류에 기초할 수 있다. 비디오 코딩에서의 양방향 예측은 이미 재구성된 참조 화상으로부터 획득된 2개의 시간적 예측 블록(702 및 704)의 조합일 수 있다. 블록 기반 모션 보상(motion compensation; MC)의 한계로 인해, 두 예측 블록의 샘플들 사이에 관찰될 수 있는 작은 모션이 남아 모션 보상 예측의 효율성을 감소시킬 수 있다. 양방향 광류(BIO, 또는 BDOF라고 함)를 적용하여 한 블록 내의 모든 샘플에 대해 이러한 모션의 영향을 줄일 수 있다. BIO는 양방향 예측이 사용될 때 블록 기반 모션 보상 예측에 더하여 수행될 수 있는 샘플별 모션 개선을 제공할 수 있다. BIO를 위해, 하나의 블록의 각 샘플에 대해 개선된 모션 벡터의 유도는 고전적 광류 모델에 기초할 수 있다. 예를 들어, 가 참조 화상 목록 k(k = 0, 1)으로부터 유도된 예측 블록의 좌표(x, y)에서의 샘플 값이고, 가 샘플의 수평 기울기 및 수직 기울기인 경우, 광류 모델이 주어지면, (x, y)에서의 모션 개선 은 다음과 같이 수학식 3에 의해 유도될 수 있다:
도 7에서, 제1 예측 블록(702)과 연관된 (MVx0, MVy0) 및 제2 예측 블록(704)과 연관된 (MVx1, MVy1)은 2개의 블록 을 생성하기 위해 사용될 수 있는 블록 레벨 모션 벡터를 나타낸다. 샘플 위치(x, y)에서의 모션 개선 는 모션 개선 보상(예컨대, 도 7의 A와 B) 이후의 샘플들의 값들 간의 차이 를 최소화하여 다음과 같이 수학식 4에 기재된 바와 같이 계산될 수 있다:
예를 들어, 유도된 모션 개선의 규칙성을 보장하기 위해, 모션 개선이 하나의 작은 단위(예컨대, 4x4 블록 또는 다른 작은 단위) 내부의 샘플에 대해 일관성이 있는 것으로 고려된다. 벤치마크 세트(Benchmark Set; BMS)-2.0에서, 의 값은 다음과 같이 수학식 5에 기재된 바와 같이 각각의 4x4 블록 주위의 6x6 윈도우 내부의 를 최소화함으로써 유도된다:
수학식 5에 명시된 최적화를 해결하기 위해, BIO는 수평 방향으로 그리고 수직 방향으로(예컨대, 그 후 수직 방향으로) 모션 개선을 최적화할 수 있는 점진적 방법/동작/절차를 사용할 수 있다. 이로 인해 다음과 같이 등식/부등식 6 및 7이 초래될 수 있으며,
여기서, 는 입력 이하인 최댓값을 출력할 수 있는 바닥 함수(floor function)일 수 있고, 는 예를 들어, 와 동일한 코딩 노이즈 및/또는 불규칙한 국부 모션으로 인한 오류 전파를 방지하기 위한 모션 개선 문턱값일 수 있다. , , , 의 값들은 다음과 같이 수학식 8 내지 12와 같이 더 계산될 수 있으며,
여기서 다양한 기울기는 다음과 같이 수학식 13 내지 15에 기재될 수 있다:
예를 들어, BMS-2.0에서, 수평 방향 및 수직 방향 모두의 수학식 13 내지 15의 BIO 기울기는, 다음과 같이 수학식 16 및 17에 기재된 바와 같이, 각 L0/L1 예측 블록의 하나의 샘플 위치에서 (예컨대, 유도되는 기울기의 방향에 따라 수평 또는 수직으로) 두 개의 인접 샘플들 간의 차이를 계산하여 직접 얻어질 수 있다:
수학식 8 내지 12에서, L은 예를 들어, BMS-2.0에서 5로 설정될 수 있는 데이터 정밀도를 유지하기 위해 내부 BIO 프로세스/절차에 대한 비트 깊이 증가일 수 있다. 더 작은 값으로 나누는 것을 피하기 위해, 수학식 6 및 7에서 조절 파라미터 r 과 m은 다음과 같이 수학식 18 및 19에 기재된 바와 같이 정의될 수 있으며:
여기서, BD는 입력 비디오의 비트 깊이일 수 있다. 수학식 4 및 수학식 5에 의해 유도된 모션 개선에 기초하여, 현재 CU의 최종 양방향 예측 신호는 다음과 같이 수학식 20 및 21에 명시된 바와 같이 광류 수학식 3에 기초해 모션 궤적을 따라 L0/L1 예측 샘플을 보간하여 계산될 수 있으며:
여기서, 는 양방향 예측을 위해 L0 예측 신호와 L1 예측 신호를 결합하기 위해 적용될 수 있는 우측 시프트 및 오프셋일 수 있으며, 이는 예를 들어, 각각 과 동일하게 설정될 수 있다. 는 입력 값을 가장 가까운 정수 값으로 반올림할 수 있는 반올림 함수이다.
대표적인 아핀 모드
HEVC에서, 모션 보상 예측을 위해 병진 모션(병진 모션만의) 모델이 적용된다. 현실 세계에는 많은 종류의 모션이 있다(예컨대, 줌인/줌아웃, 회전, 원근 모션 및 기타 불규칙한 모션). VVC 테스트 모델(VTM)-2.0에서는 아핀 모션 보상 예측이 적용된다. 아핀 모션 모델은 4-파라미터 또는 6-파라미터이다. 각각의 인터코딩된 CU에 대한 제1 플래그는 병진 모션 모델 또는 아핀 모션 모델이 인터 예측에 적용되는지 여부를 나타내기 위해 시그널링될 수 있다. 아핀 모션 모델이 적용되면, 모델이 4-파라미터 모델 또는 6-파라미터 모델인지를 나타내기 위해 제2 플래그가 송신된다.
4-파라미터 아핀 모션 모델은, 수평 방향 및 수직 방향의 병진 움직임을 위한 두 개의 파라미터, 이 두 방향 모두에 대한 줌 모션에 대한 파라미터, 및 이 두 방향 모두에 대해 회전 모션에 대한 하나의 파라미터를 갖는다. 수평 줌 파라미터는 수직 줌 파라미터와 동일하다. 수평 회전 파라미터는 수직 회전 파라미터와 동일하다. 4-파라미터 아핀 모션 모델은 현재 CU의 상단 좌측 코너(810) 및 상단 우측 코너(820)에 정의된 2개의 제어점 위치에서 2개의 모션 벡터를 사용하여 VTM에서 코딩된다. 예를 들어, 현재 CU의 다른 코너 및/또는 에지와 같은 다른 제어점 위치도 가능한다.
하나의 아핀 모션 모델이 위에서 설명되었지만, 다른 아핀 모델도 동일하게 가능하고 여기의 다양한 실시예에서 사용될 수 있다.
도 8a 및 도 8b는 아핀 블록에 대한 대표적인 4-파라미터 아핀 모델 및 서브블록 레벨 모션 유도를 예시하는 다이어그램이다. 도 8a 및 8b를 참조하면, 블록의 아핀 모션 필드는 제1 제어점(810)(현재 블록의 상단 좌측 코너) 및 제2 제어점(820)(현재 블록의 상단 우측 코너)에서 각각 2개의 제어점 모션 벡터에 의해 설명된다. 제어점 모션에 기초해, 하나의 아핀 코딩된 블록의 모션 필드(v x , v y )는 다음의 같이 수학식 22 및 23에 기재된 바와 같이 설명되며,
여기서 도 8a에 도시된 바와 같이, (v0x, v0y)는 상단 좌측 코너 제어점(810)의 모션 벡터이고, (v1x, v1y)는 상단 우측 코너 제어점(820)의 모션 벡터이며, w는 CU의 폭일 수 있다. 예를 들어, VTM-2.0에서, 아핀 코딩된 CU의 모션 필드는 4x4 블록 레벨에서 유도된다; 즉, (vx, vy)는 현재 CU 내의 4x4 블록 각각에 대해 유도되어 대응하는 4x4 블록에 적용된다.
4-파라미터 아핀 모델의 4개의 파라미터는 반복적으로 추정될 수 있다. 단계 k에서 MV 쌍은 로서, 원래 신호(예컨대, 휘도 신호)는 로서, 그리고 예측 신호(예컨대, 휘도 신호)는 로서 표시될 수 있다. 공간적 기울기 는 수평 방향 및 수직 방향으로 각각 예측 신호 에 적용된 소벨 필터를 사용하여 유도될 수 있다. 수학식 3의 유도는 다음과 같이 수학식 24 및 25에 기재된 바와 같이 표현될 수 있으며,
여기서 (a, b)는 델타 병진 파라미터일 수 있고 (c, d)는 단계 k에서 델타 줌 및 회전 파라미터일 수 있다. 제어점에서의 델타 MV는 하기의 수학식 26 내지 29에 기재된 바와 같은 좌표로 유도될 수 있다. 예를 들어, (0, 0), (w, 0)은 각각 상단 좌측 제어점과 상단 우측 제어점의 좌표일 수 있다.
광류 수학식에 기초하여, 강도(예컨대, 휘도)의 변화와 공간적 기울기와 시간적 움직임 간의 관계는 다음과 같이 수학식 30에 공식화된다:
를 수학식 24 및 25로 대입하면, 파라미터(a, b, c, d)에 대한 수학식 31은 다음과 같이 얻어진다:
CU의 샘플(예컨대, 모든 샘플)은 수학식 31을 만족하기 때문에, 파라미터 세트(예컨대, a, b, c, d)는 예를 들어, 최소 제곱 오차 방법을 사용하여 풀 수 있다. 단계(k+1)에서 두 제어점에서의 MV는 수학식 26 내지 29로 풀 수 있고, 이들은 특정 정밀도(예컨대, 1/4 화소 정밀도(pel) 또는 다른 부화소(subpixel) 정밀도 등)로 반올림될 수 있다. 반복을 사용해, 수렴할 때(예컨대, 파라미터(a, b, c, d)가 모두 0이거나 반복 횟수가 미리 정의된 한계를 충족할 때)까지, 두 제어점에서의 MC가 개선될 수 있다.
도 9는 대표적인 6-파라미터 아핀 모드를 도시하는 도면이며, 여기서 예를 들면: V0, V1, 및 V2는 각각 제어점(910, 920 및 930)에서의 모션 벡터이고, (MVx, MVy)는 위치(x, y)를 중심으로 하는 서브블록의 모션 벡터이다.
도 9를 참조하면, 아핀 모션 모델(예컨대, 6-파라미터를 가짐)은 다음 파라미터 중 어느 하나를 가질 수 있다: (1) 수평 방향의 병진 움직임에 대한 파라미터; (2) 수직 방향의 병진 움직임에 대한 파라미터; (3) 수평 방향의 줌 모션에 대한 파라미터; (4) 수평 방향의 회전 모션에 대한 파라미터; (5) 수직 방향의 줌 모션에 대한 파라미터; 및/또는 (6) 수직 방향의 회전 모션에 대한 파라미터. 6-파라미터 아핀 모션 모델은 3개의 제어점(910, 920, 및 930)에서 3개의 MV로 코딩될 수 있다. 도 9에 도시된 바와 같이, 6-파라미터 아핀 코딩된 CU에 대한 3개의 제어점(910, 920, 및 930)은 CU의 상단 좌측 코너, 상단 우측 코너, 및 하단 좌측 코너에 각각 정의된다. 상단 좌측 제어점(910)에서의 모션은 병진 모션과 관련될 수 있고, 상단 우측 제어점(920)에서의 모션은 수평 방향의 회전 모션 및/또는 수평 방향의 줌 모션과 관련될 수 있으며, 하단 좌측 제어점(930)에서의 모션은 수직 방향의 회전 및/또는 수직 방향의 줌 모션과 관련될 수 있다. 6-파라미터 아핀 모션 모델에 대해, 수평 방향의 회전 모션 및/또는 줌 모션은 수직 방향의 동일 모션과 동일하지 않을 수 있다. 각 서브블록의 모션 벡터(vx, vy)는 다음과 같이 수학식 32 및 33에 기재된 바와 같이 제어점(910, 920, 및 930)에서 3개의 MV를 사용하여 유도될 수 있으며,
여기서(v2x, v2y)는 하단 좌측 제어점(930)의 모션 벡터(V2)일 수 있고, (x, y)는 서브블록의 중심 위치일 수 있고, w는 CU의 폭일 수 있으며, h는 CU의 높이일 수 있다.
6-파라미터 아핀 모델의 6개 파라미터는 유사한 방식으로 추정될 수 있다. 수학식 24 및 수학식 25는 다음과 같이 수학식 34 및 수학식 35에 기재된 바와 같이 변경될 수 있으며,
여기서 단계 k에서 (a, b)는 델타 병진 파라미터일 수 있고, (c, d)는 수평 방향에 대한 델타 줌 및 회전 파라미터일 수 있으며, (e, f)는 수직 방향에 대한 델타 줌 및 회전 파라미터일 수 있다. 수학식 31은 다음과 같이 수학식 36에 기재된 바와 같이 변경될 수 있다:
파라미터 세트(a, b, c, d, e, f)는 예를 들어, CU 내의 샘플(예컨대, 모든 샘플)을 고려함으로써 최소 제곱 방법/절차/동작을 사용하여 해결될 수 있다. 상단 좌측 제어점 의 MV는 수학식 26 내지 29로 계산될 수 있다. 상단 우측 제어점 의 MV는 아래에 기재된 바와 같이 수학식 37 및 38로 계산될 수 있다. 하단 좌측 제어점 의 MV는 아래에 기재된 바와 같이 수학식 39 및 40으로 계산될 수 있다.
4-파라미터 아핀 모델 및 6-파라미터 아핀 모델이 도 8a, 8b 및 9에 도시되어 있지만, 당업자는 상이한 수의 파라미터 및/또는 상이한 제어점을 갖는 아핀 모델이 동등하게 가능하다는 것을 이해한다.
아핀 모델이 광류 개선과 함께 여기에 설명되어 있지만, 당업자는 광류 개선과 함께 다른 모션 모델이 동등하게 가능하다는 것을 이해한다.
아핀 모션 보상을 위한 대표적인 인터위브드 예측
예를 들어, VTM에서 아핀 모션 보상(affine motion compensation; AMC)을 사용하여, 코딩 블록은 4x4만큼 작은 서브블록으로 분할되며, 각 서브블록에는 예를 들어, 도 8a 및 8b 또는 도 9에 도시된 바와 같이, 아핀 모델에 의해 유도된 개별 모션 벡터(MV)가 할당될 수 있다. 4-파라미터 또는 6-파라미터 아핀 모델의 경우 MV는 2개 또는 3개의 제어점의 MV로부터 유도될 수 있다.
AMC는 서브블록의 크기와 연관된 딜레마에 직면할 수 있다. 더 작은 서브블록을 사용하면 AMC가 더 나은 코딩 성능을 달성할 수 있지만 더 높은 복잡성 부담을 겪을 수 있다.
도 10은 예를 들어, 복잡성의 적당한 증가와 교환하여 MV의 더 미세한 입도(granularity)를 달성할 수 있는 대표적인 인터위브드 예측 절차를 예시하는 도면이다.
도 10에서, 코딩 블록(1010)은 2개의 상이한 분할 패턴(예컨대, 제1 및 제2 패턴 0 및 1)을 갖는 서브블록으로 분할될 수 있다. 도 10에 도시된 바와 같이, 제1 분할 패턴 0(예컨대, 제1 서브블록 패턴, 예를 들어, 4x4 서브블록 패턴)은 VTM에서와 동일할 수 있고, 제2 분할 패턴 1(예컨대, 중첩 및/또는 인터위브드 제2 서브블록 패턴)은 코딩 블록(1010)을 제1 분할 패턴 0으로부터 2x2 오프셋을 갖는 4x4 서브블록으로 분할할 수 있다. 다수의 보조 예측(예컨대, 두 개의 보조 예측 P0 그리고 P1)은 2개의 분할 패턴(예컨대, 제1 및 제2 분할 패턴 0 및 1)을 갖는 AMC에 의해 생성될 수 있다. 각각의 분할 패턴 0 및 1의 각 서브블록에 대한 MV는 아핀 모델에 의해 제어점 모션 벡터(control point motion vector; CPMV)로부터 유도될 수 있다.
최종 예측(P)은 하기의 수학식 41 및 42에 기재된 바와 같이 공식화된, 보조 예측(예컨대, 두 개의 보조 예측 P0 그리고 P1)의 가중된 합으로서 계산될 수 있다:
도 11은 서브블록에서 (예컨대, 화소와 연관된) 대표적인 가중치 값을 도시하는 도면이다. 도 11을 참조하면, 서브블록(1100)의 중앙에 위치한 보조 예측 샘플(예컨대, 중앙 화소)은 가중치 값 3과 연관될 수 있고, 서브블록(1100)의 경계에 위치한 보조 예측 샘플은 가중치 값 1과 연관될 수 있다.
도 12는 인터위브드 예측이 적용된 영역과 인터위브드 예측이 적용되지 않은 다른 영역을 도시하는 도면이다. 도 12를 참조하면, 영역(1200)은, 예를 들어, 인터위브드 예측이 적용되는 4x4 서브블록을 갖는 제1 영역(1210)(도 12에서 크로스 해칭되지 않은 것으로 도시됨) 및 예를 들어, 인터위브드 예측이 적용되지 않는 제2 영역(1220)(도 12에서 크로스 해칭된 것으로 도시됨)을 포함할 수 있다. 작은 블록 모션 보상을 피하기 위해, 인터위브드 예측은 예를 들어, 제1 및 제2 분할 패턴 모두에 대해 서브블록의 크기가 문턱 크기(예컨대, 4x4임)를 충족하는 영역에만 적용될 수 있다.
VTM-3.0에서, 서브블록의 크기는 크로마 성분에 대해 4×4일 수 있고 인터위브드 예측이 크로마 성분 및/또는 루마 성분에 적용될 수 있다. 서브블록(예컨대, 모든 서브블록)에 대한 모션 보상(MC)을 수행하는 데 사용되는 영역이 AMC에서 전체적으로 함께 페치(fetch)될 수 있기 때문에 인터위브드 예측에 의해 대역폭이 증가되지 않을 수 있다. 유연성을 위해, 인터위브드 예측이 사용되는지 여부를 나타내기 위해 슬라이스 헤더에서 플래그가 시그널링될 수 있다. 인터위브드 예측의 경우, 플래그는 1비트 플래그(예컨대, 항상 0 또는 1로 시그널링될 수 있는 제1 논리 레벨)로서 시그널링될 수 있다.
서브블록 기반 시간적 모션 벡터 예측(Sub-block-Based Temporal Motion Vector Prediction; SbTMVP)을 위한 대표적인 절차
SbTMVP는 VTM에 의해 지원된다. HEVC의 시간적 모션 벡터 예측(temporal motion vector prediction; TMVP)과 유사하게, SbTMVP는 예를 들어, 현재 화상의 CU에 대한 모션 벡터 예측 및 병합 모드를 개선하기 위해 병치된 화상(collocated picture)의 모션 필드를 사용할 수 있다. TMVP에 의해 사용되는 동일한 병치된 화상이 SbTMVP에 사용될 수 있다. SbTMVP는 다음과 같은 점에서 TMVP와 다를 수 있다: 특히, (1) TMVP는 CU 레벨에서 모션을 예측할 수 있고 SbTMVP는 서브-CU 레벨에서 모션을 예측할 수 있다; 그리고/또는 (2) TMVP는 병치된 화상의 병치된 블록으로부터 시간적 모션 벡터를 페치할 수 있고(예컨대, 병치된 블록은 현재 CU에 대한 하단 우측 또는 중앙 블록일 수 있음), SbTMVP는 병치된 화상으로부터 시간적 모션 정보를 페치하기 전에 모션 시프트를 적용할 수 있다(예컨대, 모션 시프트는 현재 CU의 공간적 이웃 블록들 중 하나로부터의 모션 벡터로부터 획득될 수 있음).
도 13a 및 도 13b는 SbTMVP 프로세스를 도시하기 위한 도면이다. 도 13a는 ATMVP에 의해 사용되는 공간적 이웃 블록을 나타내고, 도 13b는 공간적 이웃으로부터의 모션 시프트를 적용하고 대응하는 병치된 서브-CU로부터 모션 정보를 스케일링함으로써 서브-CU 모션 필드의 유도를 나타낸다.
도 13a 및 도 13b를 참조하면, SbTMVP는 현재 CU 동작 내에서(예컨대, 2개의 동작에서) 서브-CU의 모션 벡터를 예측할 수 있다. 제1 동작에서, 공간적 이웃 블록(A1, B1, B0, 및 A0)은 A1, B1, B0, 및 A0의 순서로 조사(examine)될 수 있다. 참조 화상으로서 병치된 화상을 사용하는 모션 벡터를 갖는 제1 공간적 이웃 블록이 식별되자마자 그리고/또는 그 후에, 이 모션 벡터는 적용될 모션 시프트로 선택될 수 있다. 그러한 모션이 공간적 이웃 블록으로부터 식별되지 않으면, 모션 시프트는 (0, 0)으로 설정될 수 있다. 제2 동작에서, 도 13b에 도시된 바와 같이, 제1 동작에서 식별된 모션 시프트가 적용(예컨대, 현재 블록의 좌표에 추가됨)되어, 병치된 화상으로부터 서브-CU 레벨 모션 정보(예컨대, 모션 벡터 및 참조 인덱스)를 얻는다. 도 13b의 예는 A1의 모션을 차단하도록 설정된 모션 시프트를 도시한다. 각각의 서브-CU에 대해, 병치된 화상에서 대응하는 블록(예컨대, 중앙 샘플을 덮는 최소 모션 그리드)의 모션 정보는 서브-CU에 대한 모션 정보를 유도하기 위해 사용될 수 있다. 병치된 서브-CU의 모션 정보가 식별된 후, 모션 정보는 HEVC의 TMVP 프로세스와 유사한 방식으로 현재 서브-CU의 모션 벡터 및 참조 인덱스로 변환될 수 있다. 예를 들어, 시간적 모션 스케일링은 시간적 모션 벡터의 참조 화상을 현재 CU의 참조 화상에 정렬하기 위해 적용될 수 있다.
결합된 서브블록 기반 병합 목록은 VTM-3에서 사용될 수 있으며, 예를 들어, 서브블록 기반 병합 모드의 시그널링에 사용될 SbTMVP 및 아핀 병합 후보 모두를 내포(contain)하거나 포함(include)할 수 있다. SbTMVP 모드는 시퀀스 파라미터 세트(sequence parameter set; SPS) 플래그에 의해 활성화/비활성화될 수 있다. SbTMVP 모드가 활성화되면 SbTMVP 예측자가 서브블록 기반 병합 후보 목록의 첫 번째 항목(entry)으로 추가되고 아핀 병합 후보가 뒤따를 수 있다. 서브블록 기반 병합 목록의 크기는 SPS에서 시그널링될 수 있고, 서브블록 기반 병합 목록의 최대 허용 크기는 정수, 예를 들어, VTM3에서 5일 수 있다.
SbTMVP에서 사용되는 서브-CU 크기는 예를 들어, 8x8 또는 또 다른 서브-CU 크기로 고정될 수 있으며, 아핀 병합 모드에 대해 수행된 바와 같이, SbTMVP 모드는 폭과 높이가 모두 8 이상인 CU에 적용 가능할 수 있다(예컨대, 폭과 높이가 모두 8 이상인 경우에만 적용 가능할 수 있다). 추가적인 SbTMVP 병합 후보의 인코딩 로직은 다른 병합 후보와 동일할 수 있다. 예를 들어, P 또는 B 슬라이스의 각 CU에 대해 SbTMVP 후보를 사용할지 여부를 결정하기 위해 추가 레이트 왜곡(Rate Distortion; RD) 검사가 수행될 수 있다.
대표적 회귀 기반 모션 벡터 필드
블록 내부의 모션 벡터의 미세한 입도를 제공하기 위해, 회귀 기반 모션 벡터 필드(Regression based Motion Vector Field; RMVF) 도구가 (예컨대, JVET-M0302에서) 구현될 수 있으며, 이는 공간적으로 이웃하는 모션 벡터에 기초하여 서브블록 레벨에서 각 블록의 모션 벡터를 모델링하려고 시도할 수 있다.
도 14는 모션 파라미터 유도를 위해 사용될 수 있는 이웃 모션 블록(예컨대, 4x4 모션 블록)을 도시하는 도면이다. 블록의 각 측면으로부터의 4x4 서브블록 기반(및 그들의 중심 위치)에 대한 바로 이웃하는 모션 벡터의 하나의 행(1410) 및 하나의 열(1420)이 회귀 프로세스에서 사용될 수 있다. 예를 들어, 이웃 모션 벡터는 RMVF 모션 파라미터 유도에서 사용될 수 있다.
도 15는 이웃 모션 정보를 감소시키기 위해 모션 파라미터 유도에 사용될 수 있는 이웃 모션 블록을 도시하는 도면이다(예컨대, 도 14에 비해 회귀 프로세스에서 사용될 이웃 모션 블록의 수가 감소될 수 있음). 이웃하는 4x4 모션 블록의 RMVF 파라미터 유도를 위한 이웃 모션 정보의 감소된 양은 모션 파라미터 유도를 위해 사용될 수 있다(예컨대, 약 절반, 예를 들어, 거의 모든 다른 이웃 모션 블록이 모션 파라미터 유도를 위해 사용될 수 있음). 행(1410) 및 열(1420)의 특정 이웃 모션 블록은 이웃 모션 정보를 감소시키기 위해 선택, 결정 또는 미리 결정될 수 있다.
행(1410) 및 열(1420)의 이웃 모션 블록의 약 절반이 선택된 것으로 도시되지만, 예를 들어, 회귀 프로세스에서 사용될 이웃 모션 블록의 수를 줄이기 위해 다른 백분율(다른 모션 블록 위치 포함)이 선택될 수 있다.
모션 파라미터 유도를 위한 모션 정보를 수집할 때, 도면에 도시된 바와 같이 5개의 영역(예컨대, 하단 좌측, 좌측, 상단 좌측, 상단, 상단 우측)이 사용될 수 있다. 상부 우측(above-right) 및 하단 좌측 참조 모션 영역은 현재 블록의 대응 폭 또는 높이의 절반(예컨대, 절반만)으로 제한될 수 있다.
RMVF 모드에서, 블록의 모션은 6-파라미터 모션 모델에 의해 정의될 수 있다. 이들 파라미터 , , , , 는 평균 제곱 오차(mean square error; MSE) 의미에서 선형 회귀 모델을 해결하여 계산될 수 있다. 회귀 모델에 대한 입력은 상기 정의된 바와 같이 사용 가능한 이웃하는 4x4 서브블록들의 중심 위치들(x, y) 및/또는 모션 벡터들()로 구성되거나 이를 포함할 수 있다.
중심 위치가 (, )인 8×8 서브블록에 대한 모션 벡터 (, )는 다음과 같이 수학식 43에 기재된 바와 같이 계산될 수 있다:
모션 벡터는 서브블록(예컨대, 각 서브블록)의 중심 위치에 대해 8×8 서브블록에 대해 계산될 수 있다. 예를 들어, 모션 보상은 RMVF 모드에서 8×8 서브블록 정확도로 적용될 수 있다. 모션 벡터 필드에 대한 효율적인 모델링을 갖기 위해, RMVF 도구는 적어도 3개의 후보 영역으로부터의 적어도 하나의 모션 벡터가 사용 가능한 경우에만 적용된다.
아핀 모션 모델 파라미터는 CU에서 특정 화소(예컨대, 각 화소)의 모션 벡터를 유도하는 데 사용될 수 있다. 화소 기반 아핀 모션 보상된 예측을 생성하는 복잡성이 높을 수 있고(예컨대, 매우 높을 수 있음) 또한 이러한 종류의 샘플 기반 MC에 대한 메모리 액세스 대역폭 요건이 높을 수 있기 때문에, 서브블록 기반 아핀 모션 보상 절차/방법이 (예컨대, VVC에 의해) 구현될 수 있다. 예를 들어, CU는 서브블록(예컨대, 4x4 서브블록, 정사각형 서브블록 및/또는 비정사각형 서브블록)으로 분할될 수 있다. 각각의 서브블록은 아핀 모델 파라미터로부터 유도될 수 있는 MV로 할당될 수 있다. MV는 서브블록의 중앙(또는 서브블록 내의 또 다른 위치)에 있는 MV일 수 있다. 서브블록의 화소(예컨대, 서브블록의 모든 화소)는 서브블록(MV)을 공유할 수 있다. 서브블록 기반 아핀 모션 보상은 코딩 효율성과 복잡성 간의 트레이드오프(tradeoff)일 수 있다. 모션 보상의 더 미세한 입도를 달성하기 위해, 아핀 모션 보상을 위한 인터위브드 예측이 구현될 수 있고 2개의 서브블록 모션 보상된 예측을 가중 평균함으로써 생성될 수 있다. 인터위브드 예측은 서브블록당 2개 이상의 모션 보상 예측을 요구 및/또는 사용할 수 있으며, 따라서 메모리 대역폭 및 복잡성을 증가시킬 수 있다.
특정의 대표적인 실시예에서, 방법, 장치, 절차 및/또는 동작은 서브블록 기반 아핀 모션 보상된 예측을 광류로 개선하기 위해(예컨대, 광류를 사용하고 그리고/또는 이에 기초해) 구현될 수 있다. 예를 들어, 서브블록 기반의 아핀 모션 보상이 수행된 후, 광류를 사용한 예측 개선(prediction refinement with optical flow; PROF)라고 하는, 광류 수학식에 의해 유도된 차이 값을 더함으로써 화소 강도가 개선될 수 있다. PROF는 복잡성을 크게 증가시키지 않으면서 화소 레벨 입도를 달성할 수 있으며 최악의 경우의 메모리 액세스 대역폭을 서브블록 기반 아핀 모션 보상과 비교할 수 있도록 유지할 수 있다. PROF는 예측 신호(예컨대, 개선되지 않은(unrefined) 모션 예측 신호 및/또는 서브블록 기반 모션 예측 신호)에 추가하여 화소 레벨 모션 벡터 필드가 사용 가능한(예컨대, 계산될 수 있는) 임의의 시나리오에서 적용될 수 있다. 아핀 모드에 추가로 또는 그 외에, 예측 PROF 절차는 다른 서브블록 예측 모드에서 사용될 수 있다. 예를 들어, SbTMVP 및/또는 RMVF와 같은 서브블록 모드에 대한 PROF의 적용이 구현될 수 있다. 양방향 예측에 대한 PROF의 적용이 여기에 설명되어 있다.
아핀 모드에 대한 대표적인 PROF 절차
특정의 대표적인 실시예에서, 방법, 장치, 및/또는 절차는 예를 들어, 광류(예컨대, 광류 수학식)에서 유도된 화소 강도의 변화를 적용하여 서브블록 기반 아핀 모션 보상 예측의 입도를 개선하기 위해 구현될 수 있으며, 예를 들면, VVC에서의 기존 아핀 모션 보상과 동일한 서브블록당 하나의 모션 보상 동작(예컨대, 서브블록당 단지 하나의 모션 보상 동작)을 사용하고 그리고/또는 이를 요구할 수 있다.
도 16은 서브블록 기반 아핀 모션 보상된 예측 후 서브블록 MV 및 화소 레벨 모션 벡터 차이 (예컨대, 때때로 화소에 대한 개선 MV라고도 함)를 도시하는 도면이다.
도 16을 참조하면, CU(1600)는 서브블록들(1610, 1620, 1630, 및 1640)을 포함할 수 있다. 각각의 서브블록(1610, 1620, 1630, 및 1640)은 복수의 화소(예컨대, 서브블록(1610)에서 16개의 화소)를 포함할 수 있다. 서브블록(1610)의 각 화소(1660)(i,j)와 연관된 서브블록 MV(1650)(예컨대, 대략적(coarse) 또는 평균 서브블록 MV로서)가 예시된다. 서브블록(1610)의 각각의 개별 화소(i,j)에 대해, 개선 MV(1670)(i,j)(이는 화소(1660)(i,j)의 실제 MV와 서브블록 MV(1650)(여기서(i,j)는 서브블록(1610)에서 화소 위치를 정의함) 간의 차이를 나타낼 수 있음)가 결정될 수 있다. 도 16의 명확성을 위해, 다른 개별 화소 레벨 모션이 도시되지만 개선 MV(1670(1,1))만이 라벨 표기된다. 특정의 대표적인 실시예에서, 개선 MV(1670)(i,j)는 화소 레벨 모션 벡터 차이(때때로 모션 벡터 차이라고도 함)로서 결정될 수 있다.
특정의 대표적인 실시예에서, 다음 동작 중 어느 하나를 포함하는 방법, 장치, 절차 및/또는 동작이 구현될 수 있다:
(1) 제1 동작에서: 서브블록 기반 AMC는 서브블록 기반 모션 예측 I(i,j)을 생성하기 위해 본 명세서에 개시된 바와 같이 수행될 수 있다;
(2) 제2 동작에서: 각각의 샘플 위치에서 서브블록 기반 모션 예측 I(i,j)의 공간적 기울기 가 계산될 수 있다(일 예에서, 공간적 기울기는 BDOF에서 사용되는 기울기 생성과 동일한 프로세스를 사용하여 생성될 수 있다. 예를 들어, 샘플 위치의 수평 기울기는 우측 이웃 샘플과 좌측 이웃 샘플 간의 차이로서 계산될 수 있고 그리고/또는 샘플 위치의 수직 기울기는 하단 이웃 샘플과 상단 이웃 샘플 간의 차이로서 계산될 수 있다. 또 다른 예에서, 공간적 기울기는 소벨 필터를 사용하여 생성될 수 있다);
(3) 제3 동작에서: 광류 수학식을 사용하고 그리고/또는 광류 수학식에 의한 CU의 화소당 휘도 강도 변화는 예를 들어, 다음과 같이 수학식 44에 기재된 바와 같이 계산될 수 있으며,
여기서 모션 벡터 차이의 값 은 도 16에 도시된 바와 같이 로 표시된 샘플 위치에 대해 계산된 화소 레벨 MV와 화소(1660)(i,j)를 커버하는 서브블록의 서브블록 레벨 MV(1650) 간의 차이(1670)이다. 화소 레벨 MV 는 4-파라미터 아핀 모델의 경우 수학식 22 및 23에 의해 또는 6-파라미터 아핀 모델의 경우 수학식 32 및 33에 의해 제어점 MV로부터 유도될 수 있다.
특정의 대표적인 실시예에서, 모션 벡터 차이 값 은 수학식 24 및 25에 의해 또는 이들을 사용해 아핀 모델 파라미터에 의해 유도될 수 있으며, 여기서 x 및 y는 화소 위치로부터 서브블록의 중심까지의 오프셋일 수 있다. 아핀 모델 파라미터와 화소 오프셋은 서브블록 간에 변경되지 않으므로, 모션 벡터 차이 값 은 첫 번째 서브블록에 대해 계산되고 동일한 CU의 다른 서브블록에서 재사용될 수 있다. 예를 들어, 화소 레벨 MV와 서브블록 레벨 MV 간의 차이는 수학식 45 및 46을 사용하여 다음과 같이 계산될 수 있는데, 그 이유는 병진 아핀 파라미터(a, b)는 화소 레벨 MV 및 서브블록 MV에 대해 동일할 수 있기 때문이다. (c, d, e, f)는 4개의 추가 아핀 파라미터(예컨대, 병진 아핀 파라미터 이외의 4개의 아핀 파라미터)일 수 있으며,
여기서(i,j)는 서브블록의 상단 좌측 위치에 대한 화소 위치일 수 있으며, (, )는 서브블록의 상단 좌측 위치에 대한 서브블록의 중심 위치일 수 있다.
도 17a는 서브블록의 실제 중심에 대응하는 MV를 결정하기 위한 대표적인 절차를 도시하는 도면이다.
도 17a를 참조하면, 2개의 서브블록(SB0 및 SB1)이 4x4 서브블록으로서 도시된다. 서브블록의 폭이 SW이고 서브블록의 높이가 SH인 경우, 서브블록의 중심 위치는 ((SW-1)/2, (SH-1)/2)와 같이 설정될 수 있다. 다른 예들에서, 서브블록 중심 위치는 (SW/2, SH/2)로 설정된 위치에 기초하여 추정될 수 있다. ((SW-1)/2, (SH-1)/2)를 사용해 제1 서브블록 SB0에 대한 실제 중심점은 P0 '이고, 제2 서브블록 SB1에 대한 실제 중심점은 P1 '이다. 예를 들어, (SW/2, SH/2)를 사용해(예컨대, VVC에서), 제1 서브블록 SB0에 대한 추정 중심점은 P0이고, 제2 서브블록 SB1에 대한 추정 중심점은 P1이다. 특정의 대표적인 실시예에서, 서브블록의 MV는 추정된 중심 위치(VVC에서 사용됨)보다 실제 중심 위치에 더 정확하게 기초할 수 있다.
도 17b는 4:2:0 크로마 포맷에서 크로마 샘플의 위치를 도시하는 도면이다. 도 17b를 참조하면, 크로마 서브블록 MV는 루마 서브블록의 MV에 의해 유도될 수 있다. 예를 들어, 4:2:0 크로마 포맷에서, 하나의 4x4 크로마 서브블록은 8x8 루마 영역에 대응할 수 있다. 대표적인 실시예가 4:2:0 크로마 포맷과 관련하여 도시되어 있지만, 당업자는 예를 들어, 4:2:2 크로마 포맷과 같은 다른 크로마 포맷이 동일하게 사용될 수 있다는 것을 이해한다.
크로마 서브블록 MV는 상단 좌측 4x4 루마 서브블록 MV와 하단 우측 루마 서브블록 MV를 평균화하여 유도될 수 있다. 유도된 크로마 서브블록 MV는 크로마 샘플 위치 유형 0, 2 및/또는 3에 대해 크로마 서브블록의 중심에 위치하거나 위치하지 않을 수 있다. 크로마 샘플 위치 유형 0, 2 및 3의 경우, 크로마 서브블록 중심 위치 는 오프셋에 의해 조정될 수 있거나 조정될 필요가 있을 수 있다. 예를 들어, 4:2:0 크로마 샘플 위치 유형 0, 2 및 3에 대해 다음과 같이 수학식 47 내지 49에 기재된 바와 같이 조정이 적용될 수 있다:
서브블록 기반 모션 예측 I(i,j)는 강도 변화(예컨대, 수학식 44에 제공된 바와 같이 휘도 강도 변화)를 추가함으로써 개선될 수 있다. 최종(즉, 개선된) 예측 I'(i,j)는 다음과 같이 수학식 50에 의해 또는 수학식 50을 사용해 생성될 수 있다:
개선이 적용될 때, 서브블록 기반 아핀 모션 보상은 최악의 경우의 대역폭 및/또는 메모리 대역폭을 증가시키지 않고 화소 레벨 입도를 달성할 수 있다.
예측 및/또는 기울기 계산의 정밀도를 유지하기 위해, 서브블록 기반 AMC의 동작 관련 성능의 비트 심도는 코딩 비트 심도보다 높을 수 있는 중간 비트 심도일 수 있다.
위에서 설명된 프로세스는 (예컨대, 루마 강도의 개선에 추가로 또는 이를 대신하여) 크로마 강도를 개선하는 데 사용될 수 있다. 일 예에서, 수학식 50에서 사용된 강도 차이는 다음과 같이 수학식 51에 예시된 바와 같이 예측에 추가되기 전에 가중치 인자 w로 곱해질 수 있으며,
여기서 w는 0과 1 사이(0 및 1을 포함함)의 값으로 설정될 수 있다. w는 CU 레벨 또는 화상 레벨로 시그널링될 수 있다. 예를 들어, w는 가중치 인덱스로 시그널링될 수 있다. 예를 들어, 인덱스 표 1은 w를 시그널링하는 데 사용될 수 있다.
인덱스 0 1 2 3 4
가중치 ½ 3/4 1/4 1 0
인덱스 표 1
인코더 알고리즘은 최저 레이트 왜곡 비용을 초래하는 w 값을 선택할 수 있다.
예측 샘플의 기울기, 예를 들어, 및/또는 는 상이한 방식들로 계산될 수 있다. 특정의 대표적인 실시예에서, 예측 샘플 는 2차원 소벨 필터를 적용하여 계산할 수 있다. 수평 기울기 및 수직 기울기에 대한 3x3 소벨 필터의 예는 다음과 같이 설정된다:
수평 소벨 필터:
수직 소벨 필터:
다른 대표적인 실시예에서, 기울기는 1차원 3-탭 필터로 계산될 수 있다. 예는 소벨 필터보다 더 간단할 수 있는(예컨대, 훨씬 더 간단할 수 있는) 을 포함할 수 있다.
도 17c는 확장된 서브블록 예측을 도시하는 도면이다. 음영 원(1710)은 4x4 서브블록(예컨대, 음영이 없는 원(1720)) 주위의 패딩 샘플이다. 예를 들어, 소벨 필터를 사용하여, 박스(1730)의 샘플은 중앙의 샘플(1740)의 기울기를 계산하는 데 사용될 수 있다. 기울기는 소벨 필터를 사용하여 계산할 수 있지만, 예를 들어, 3-탭 필터와 같은 다른 필터도 가능한다.
예를 들어, 3x3 소벨 필터 및 1차원 필터와 같은 위의 예시적인 기울기 필터의 경우, 확장된 서브블록 예측이 서브블록 기울기 계산에 사용 및/또는 요구될 수 있다. 예를 들어, 서브블록 경계에서 해당 샘플에 대해 기울기를 계산하기 위해 서브블록의 상단 경계 및 하단 경계에서 하나의 행과 좌측 경계 및 우측 경계에서 하나의 열이 채워질(padded) 수 있다.
확장된 서브블록 예측을 얻기 위한 상이한 방법/절차 및/또는 동작이 있을 수 있다. 하나의 대표적인 실시예에서, 가 서브블록 크기로 주어지면, 확장 서브블록의 예측은 서브블록 MV를 사용하여 블록의 모션 보상을 수행함으로써 얻어질 수 있다. 이 실시예로, 메모리 대역폭이 증가될 수 있다. 메모리 대역폭 증가를 피하기 위해, 특정의 대표적인 실시예에서, 보간 전의 개의 정수 참조 샘플은 수평 방향 및 수직 방향 모두에서 K-탭 보간 필터가 주어지면 서브블록의 보간을 위해 페치될 수 있으며, 블록의 경계 샘플은 확장 영역이 가 될 수 있도록 서브블록의 인접 샘플로부터 복사될 수 있다. 확장된 영역은 서브블록의 보간을 위해 사용될 수 있다. 이러한 대표적인 실시예는 서브블록 MV가 분수 위치를 가리키는 경우 예측을 생성하기 위해 추가 보간 연산을 여전히 사용 및/또는 요구할 수 있다.
예를 들어, 계산 복잡도를 줄이기 위해 다른 대표적인 실시예에서, 서브블록 예측은 서브블록 MV를 사용한 블록 모션 보상에 의해 획득될 수 있다. 예측의 경계는 다음 중 어느 하나에 의해 보간 없이 얻어질 수 있다: (1) MV가 서브블록 MV의 정수 부분인 정수 모션 보상; (2) MV가 서브블록 MV의 가장 가까운 정수 MV인 정수 모션 보상; 및/또는 (3) 서브블록 예측에서 가장 가까운 인접 샘플로부터 복사.
화소 레벨 개선 MV, 예를 들면, 의 정밀도 및/또는 범위는 PROF의 정확도에 영향을 줄 수 있다. 특정의 대표적인 실시예에서, 다중 비트 소수 성분과 또 다른 다중 비트 정수 성분의 조합이 구현될 수 있다. 예를 들어, 5 비트 소수 성분과 11 비트 정수 성분이 사용될 수 있다. 5 비트 소수 성분과 11 비트 정수 성분의 조합은 총 16 비트 수로 1/32-pel 정밀도로 -1024 내지 1023까지의 MV 범위를 나타낼 수 있다.
기울기, 예를 들어, 의 정밀도, 및 강도 변화 의 정밀도는 PROF의 성능에 영향을 줄 수 있다. 특정의 대표적인 실시예에서, 예측 샘플 정밀도는 미리 결정된 수 또는 시그널링된 비트 수(예컨대, 14 비트인 현재 VVC 드래프트에 정의된 내부 샘플 정밀도)로 계속 있거나 유지될 수 있다. 특정의 대표적인 실시예에서, 기울기 및/또는 강도 변화 는 예측 샘플과 동일한 정밀도로 유지될 수 있다.
강도 변화 의 범위는 PROF의 성능에 영향을 줄 수 있다. 강도 변화 는 부정확한 아핀 모델에 의해 생성된 잘못된 값(false value)을 피하기 위해 더 작은 범위로 잘릴(clipped) 수 있다. 한 예에서, 강도 변화 로 잘릴 수 있다.
의 분수 성분의 비트 수, 기울기의 분수 성분의 비트 수와, 강도 변화 의 비트 수의 조합은 함께 특정 하드웨어 또는 소프트웨어 구현의 복잡성에 영향을 줄 수 있다. 하나의 대표적인 실시예에서, 5비트는 의 소수 성분을 나타내는데 사용될 수 있고, 2 비트는 기울기의 분수 성분을 나타내는 데 사용될 수 있으며, 12 비트는 를 나타내는데 사용될 수 있지만, 이들은 임의의 개수의 비트일 수 있다.
계산 복잡성을 줄이기 위해, 특정 상황에서 PROF가 스킵(skip)될 수 있다. 예를 들어, 4x4 서브블록 내에서 모든 화소 기반 델타(예컨대, 개선) MV 의 크기가 문턱값보다 작으면, 전체 아핀 CU에 대해 PROF가 스킵될 수 있다. 4x4 서브블록 내 모든 샘플의 기울기가 문턱값보다 작으면 PROF가 스킵될 수 있다.
PROF는 예를 들어, Cb 성분 및/또는 Cr 성분과 같은 크로마 성분에 적용될 수 있다. 서브블록의 Cb 성분 및/또는 Cr 성분의 델타 MV는 서브블록의 델타 MV를 재사용할 수 있다(예컨대, 동일한 CU에서 다른 서브블록에 대해 계산된 델타 MV를 재사용할 수 있음).
본 명세서에 개시된 기울기 절차(예컨대, 복사된 참조 샘플을 사용하여 기울기 계산을 위한 서브블록을 확장함)가 PROF 동작과 함께 사용되는 것으로 예시되어 있지만, 기울기 절차는 특히 예를 들어, BDOF 동작 및/또는 아핀 모션 추정 동작과 같은 다른 연산과 함께 사용될 수 있다.
다른 서브블록 모드에 대한 대표적인 PROF 절차
PROF는 예측 신호(예컨대, 개선되지 않은 예측 신호)에 추가하여 화소 레벨 모션 벡터 필드가 사용 가능한(예컨대, 계산될 수 있는) 임의의 시나리오에서 적용될 수 있다. 예를 들어, 아핀 모드 외에도 광류를 사용한 예측 개선은 다른 서브블록 예측 모드, 예를 들어, SbTMVP 모드(예컨대, VVC의 ATMVP 모드) 또는 회귀 기반 모션 벡터 필드(regression based motion vector field; RMVF)에서 사용될 수 있다.
특정의 대표적인 실시예에서, SbTMVP에 PROF를 적용하기 위한 방법이 구현될 수 있다. 예를 들어, 이러한 방법은 특히, 다음 중 어느 하나를 포함할 수 있다:
(1) 제1 동작에서, 서브블록 레벨 MV 및 서브블록 예측은 여기에 설명된 기존 SbTMVP 프로세스에 기초하여 생성될 수 있다;
(2) 제2 동작에서, 선형 회귀 방법/절차를 사용하여 서브블록 MV 필드에 의해 아핀 모델 파라미터가 추정될 수 있다;
(3) 제3 동작에서, 화소-레벨 MV는 제2 동작에서 획득된 아핀 모델 파라미터에 의해 유도될 수 있고, 서브블록 MV 에 대한 연관된 화소 레벨 모션 개선 벡터가 계산될 수 있다; 그리고/또는
(4) 제4 동작에서, 최종 예측을 생성하기 위해 광류 프로세스를 사용한 예측 개선이 적용될 수 있다.
특정의 대표적인 실시예에서, PROF를 RMVF에 적용하기 위한 방법이 구현될 수 있다. 예를 들어, 이러한 방법은 다음 중 어느 하나를 포함할 수 있다:
(1) 제1 동작에서, 서브블록 레벨 MV 필드, 서브블록 예측 및/또는 아핀 모델 파라미터 , , , , 는 여기에 설명된 RMVF 프로세스에 기초해 생성될 수 있다;
(2) 제2 동작에서, 서브블록 레벨 MV 로부터의 화소 레벨 MV 오프셋은 다음과 같이 수학식 52에 의해 아핀 모델 파라미터 , , , , 에 의해 유도될 수 있다:
여기서는 서브블록의 중심으로부터의 화소 오프셋이다. 아핀 파라미터 및/또는 서브블록 중심으로부터의 화소 오프셋이 서브블록 간에 변경되지 않기 때문에, 화소 MV 오프셋은 제1 서브블록에 대해 계산될 수 있고(예컨대, 단지 계산될 필요가 있거나 계산될 것임), CU의 다른 서브블록에 재사용될 수 있다; 그리고/또는
(3) 제3 동작에서, PROF 프로세스는 예를 들어, 수학식 44 및 50을 적용함으로써 최종 예측을 생성하기 위해 적용될 수 있다.
양방향 예측을 위한 대표적인 PROF 절차
여기에 설명된 바와 같이 단방향 예측에서 PROF를 사용하는 것에 더하여 또는 그 대신에, PROF 기술은 양방향 예측에서 사용될 수 있다. 양방향 예측에서 사용될 때, PROF는 예를 들어, 가중치와 결합되기 전에 L0 예측 및/또는 L1 예측을 생성하는 데 사용될 수 있다. 계산 복잡도를 줄이기 위해, 예를 들어, L0 또는 L1과 같은 하나의 예측에 PROF가 적용될 수 있다(예컨대, 단지 적용될 수 있음). 특정의 대표적인 실시예에서, PROF는 목록(예컨대, 현재 화상이 가까운(예컨대, 문턱값 이내) 그리고/또는 가장 가까운 참조 화상과 연관되거나 이에 연관된) 목록에 적용될 수 있다(예컨대, 단지 적용될 수 있음).
PROF 활성화(Enablement)를 위한 대표적인 절차
PROF 활성화는 시퀀스 파라미터 세트(sequence parameter set; SPS) 헤더, 화상 파라미터 세트(picture parameter set; PPS) 헤더 및/또는 타일 그룹 헤더에서 또는 그 내에서 시그널링될 수 있다. 특정 실시예에서, 플래그는 PROF가 아핀 모드에 대해 활성화되는지 여부를 나타내기 위해 시그널링될 수 있다. 플래그가 제1 논리 레벨(예컨대, "참(True)")로 설정되면, PROF는 단방향 예측 및 양방향 예측 모두에 사용될 수 있다. 특정 실시예에서, 제1 플래그가 "참(True)"으로 설정되면, PROF가 양방향 예측 아핀 모드에 대해 활성화되는지 여부를 나타내기 위해 제2 플래그가 사용될 수 있다. 제1 플래그가 제2 논리 레벨(예컨대, "거짓(False)")로 설정되면, 제2 플래그는 "거짓"으로 설정된 것으로 추론될 수 있다. 제1 플래그가 "참"으로 설정되면, 크로마 성분에 대해 PROF를 적용할지 여부는 SPS 헤더, PPS 헤더 및/또는 타일 그룹 헤더에서 또는 그 내에서 플래그로 시그널링될 수 있어서, 루마 성분 및 크로마 성분에 대한 PROF의 제어가 분리될 수 있다.
조건부로 활성화되는 PROF에 대한 대표적 절차
예를 들어, 복잡성을 줄이기 위해 PROF는 특정 조건이 충족되는 경우에(예컨대, 이 경우에만) 적용될 수 있다. 예를 들어, 작은 CU 크기(예컨대, 문턱 레벨 미만)의 경우, 아핀 모션은 PROF를 적용하는 이점이 제한될 수 있도록 비교적 작을 수 있다. 특정의 대표적인 실시예에서, CU 크기가 작은 경우 또는 조건에서(예컨대, 8x8, 8x16, 16x8과 같은 16x16보다 크지 않은 CU 크기에 대해), PROF는 인코더 및/또는 디코더 모두에 대한 복잡성을 줄이기 위해 아핀 모션 보상에서 비활성화될 수 있다. 특정의 대표적인 실시예에서, CU 크기가 작은 경우(동일하거나 상이한 문턱 레벨 미만), PROF는 예를 들어, 인코더 복잡성을 줄이기 위해 아핀 모션 추정에서(예컨대, 아핀 모션 추정에서만) 스킵될 수 있고, PROF는 CU 크기에 관계없이 디코더에서 수행될 수 있다. 예를 들어, 인코더 측에서, 아핀 모델 파라미터(예컨대, 제어점 MV)를 검색하는 모션 추정 후, 모션 보상(MC) 절차가 호출(invoke)될 수 있고 PROF가 수행될 수 있다. 모션 추정 중 각 반복에 대해 MC 절차가 호출될 수도 있다. 모션 추정의 MC에서, PROF는 복잡성을 줄이기(save) 위해 스킵될 수 있으며 인코더의 최종 MC가 PROF를 실행할 것이기 때문에 인코더와 디코더 사이에 예측 불일치가 없을 것이다. 즉, CU의 예측에 사용할 아핀 모델 파라미터(예컨대, 아핀 MV)를 검색할 때 인코더에 의해 PROF 개선이 적용되지 않을 수 있으며, 인코더가 검색을 일단 완료하거나 인코더가 검색을 완료한 후에, 인코더는 검색으로부터 결정된 아핀 모델 파라미터를 사용하여 CU에 대한 예측을 개선하기 위해 PROF를 적용할 수 있다.
일부 대표적인 실시예에서, CPMV들 간의 차이는 PROF를 활성화할지 여부를 결정하는 기준으로 사용될 수 있다. CPMV들 간의 차이가 작아서(예컨대, 문턱 레벨 미만) 아핀 모션이 작은 경우, PROF를 적용하는 이점이 제한될 수 있고, 아핀 모션 보상 및/또는 아핀 모션 추정을 위해 PROF가 비활성화될 수 있다. 예를 들어, 4-파라미터 아핀 모드의 경우 다음 조건이 충족되면(예컨대, 다음 조건이 모두 충족됨) PROF가 비활성화될 수 있다:
6-파라미터 아핀 모드의 경우, 위의 조건에 추가로 또는 이를 대신하여, 다음 조건이 충족되면(예컨대, 다음 조건 모두가 또한 충족됨), PROF가 비활성화될 수 있다:
여기서 T는 미리 정의된 문턱값(예컨대, 4)이다. 이 CPMV 또는 아핀 파라미터 기반 PROF 스킵 절차는 인코더에서 적용될 수 있고(예컨대, 또한 단지 적용될 수 있음), 디코더는 PROF를 스킵할 수 없거나 스킵하지 않는다.
디블로킹 필터와 함께 또는 그 대신에 결합된 PROF를 위한 대표적인 절차
PROF는 블록 기반의 MC를 보상할 수 있는 화소 단위의 개선일 수 있으므로, 블록 경계 간의 모션 차이가 감소될 수 있다(예컨대, 크게 감소될 수 있다). 인코더 및/또는 디코더는 디블록킹 필터의 적용을 스킵할 수 있고, 그리고/또는 PROF가 적용될 때 서브블록 경계에 더 약한 필터를 적용할 수 있다. 다수의 변환 단위(TU)로 분할된 CU의 경우, 블록킹 아티팩트(blocking artifact)가 변환 블록 경계에 나타날 수 있다.
특정의 대표적인 실시예에서, 인코더 및/또는 디코더는, 서브블록 경계가 TU 경계와 일치하지 않는 한, 디블록킹 필터의 적용을 스킵할 수 있거나 서브블록 경계에 대해 하나 이상의 더 약한 필터를 적용할 수 있다.
PROF가 루마에 적용되는 경우(예컨대, 루마에만 적용됨), 인코더 및/또는 디코더는 디블록킹 필터의 적용을 스킵할 수 있고 그리고/또는 루마에 대한(예컨대, 루마에 대해서만) 서브블록 경계에 하나 이상의 더 약한 필터를 적용할 수 있다. 예를 들어, 경계 강도 파라미터(Bs)는 더 약한 디블로킹 필터를 적용하는데 사용될 수 있다.
예를 들어, 인코더 및/또는 디코더는 서브블록 경계가 TU 경계와 일치하지 않는 한 PROF가 적용될 때 서브블록 경계에 대한 디블록킹 필터의 적용을 스킵할 수 있다. 그 경우, TU 경계를 따라 발생할 수 있는 블록킹 아티팩트를 감소 또는 제거하기 위해 디블로킹 필터가 적용될 수 있다.
또 다른 예로서, 인코더 및/또는 디코더는 서브블록 경계가 TU 경계와 일치하지 않는 한 PROF가 적용될 때 서브블록 경계에 약한 디블록킹 필터를 적용할 수 있다. '약한' 디블로킹 필터는 PROF가 적용되지 않을 때 서브블록 경계에 일반적으로 적용될 수 있는 것보다 더 약한 디블로킹 필터일 수 있음이 고려된다. 서브블록 경계가 TU 경계와 일치하는 경우, TU 경계와 일치하는 서브블록 경계를 따라 더 잘 보일 것으로 예상되는 차단 아티팩트를 감소 또는 제거하기 위해 더 강력한 디블록킹 필터가 적용될 수 있다.
특정한 대표적인 실시예에서, PROF가 루마에 적용되는(예컨대, 단지 루마에만 적용되는) 경우 또는 조건에서, 인코더 및/또는 디코더는 예를 들어, 크로마에 대한 PROF의 적용이 부족함(lack)에도 불구하고 설계 통합(design unification) 목적으로 크로마에 대한 디블로킹 필터의 적용을 루마에 맞출(align) 수 있다. 예를 들어, PROF가 루마에만 적용되는 경우, 루마에 대한 디블록킹 필터의 일반적인 적용은 PROF가 적용되었는지 여부에 기초해(그리고 아마도 서브블록 경계에 TU 경계가 있었는지 여부에 기초해) 변경될 수 있다. 특정의 대표적인 실시예에서, 디블로킹 필터를 대응하는 크로마 화소에 적용하기 위한 별도의/상이한 로직을 갖는 것보다는, 디블로킹 필터가 루마 디블로킹을 위한 절차를 매칭(및/또는 미러링)하기 위해 크로마에 대한 서브블록 경계에 적용될 수 있다.
도 18a는 제1 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 18a를 참조하면, 인코딩 및/또는 디코딩하는 대표적인 방법(1800)은 블록(1805)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 예를 들어, 비디오의 현재 블록에 대해 서브블록 기반 모션 예측 신호를 획득하는 단계를 포함할 수 있다. 블록(1810)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록에 대해 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기 또는 현재 블록의 서브블록과 연관된 하나 이상의 모션 벡터 차이 값을 획득할 수 있다. 블록(1815)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록의 서브블록과 연관된 하나 이상의 획득된 공간적 기울기 또는 하나 이상의 획득된 모션 벡터 차이 값에 기초하여 현재 블록에 대해 개선 신호를 획득할 수 있다. 블록(1820)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록 기반 모션 예측 신호 및 개선 신호에 기초하여 현재 블록에 대해 개선된 모션 예측 신호를 획득할 수 있다. 특정 실시예에서, 인코더(100 또는 300)는 개선된 모션 예측 신호에 기초하여 현재 블록을 인코딩할 수 있거나, 디코더(200 또는 500)는 개선된 모션 예측 신호에 기초하여 현재 블록을 디코딩할 수 있다. 개선된 모션 예측 신호는 (예컨대, GBi 인코더(300) 및/또는 GBi 디코더(500)에 의해) 생성된 개선된 모션 인터 예측 신호일 수 있고 하나 이상의 PROF 동작을 사용할 수 있다.
특정의 대표적인 실시예에서, 예를 들어, 방법(1850 및 1900)을 포함하여 여기에 설명된 다른 방법과 관련하여, 비디오의 현재 블록에 대해 서브블록 기반 모션 예측 신호를 획득하는 단계는 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다.
예를 들어, 특히 방법(1850 및 1900)을 포함하는 본 명세서에 설명된 다른 방법과 관련된 특정의 대표적인 실시예에서, 현재 블록에 대한 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기 또는 현재 블록의 서브블록과 연관된 하나 이상의 모션 벡터 차이 값을 획득하는 단계는 서브블록 기반 모션 예측 신호의 (예컨대, 기울기 필터와 연관된) 하나 이상의 공간적 기울기를 결정하는 단계를 포함할 수 있다.
예를 들어, 특히 방법(1850 및 1900)을 포함하는 본 명세서에 설명된 다른 방법과 관련된 특정의 대표적인 실시예에서, 현재 블록에 대한 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기 또는 현재 블록의 서브블록과 연관된 하나 이상의 모션 벡터 차이 값을 획득하는 단계는 현재 블록의 서브블록과 연관된 하나 이상의 모션 벡터 차이 값을 결정하는 단계를 포함할 수 있다.
예를 들어, 특히 방법(1850 및 1900)을 포함하는 본 명세서에 설명된 다른 방법과 관련된 특정의 대표적인 실시예에서, 하나 이상의 결정된 공간적 기울기 또는 하나 이상의 결정된 모션 벡터 차이 값에 기초하여 현재 블록에 대해 개선 신호를 획득하는 단계는 결정된 공간적 기울기에 기초하여 현재 블록에 대해 모션 예측 개선 신호를 개선 신호로서 결정하는 단계를 포함할 수 있다.
예를 들어, 특히 방법(1850 및 1900)을 포함하는 본 명세서에 설명된 다른 방법과 관련된 특정의 대표적인 실시예에서, 하나 이상의 결정된 공간적 기울기 또는 하나 이상의 결정된 모션 벡터 차이 값에 기초하여 현재 블록에 대해 개선 신호를 획득하는 단계는 결정된 모션 벡터 차이 값에 기초하여 현재 블록에 대해 모션 예측 개선 신호를 개선 신호로서 결정하는 단계를 포함할 수 있다.
"결정하다" 또는 "결정하는"이라는 용어는 예를 들어, 정보와 같은 어떤 것과 관련되어 일반적으로 정보의 추정, 계산, 예측, 획득 및/또는 검색(retrieve) 중 하나 이상을 포함할 수 있다. 예를 들어, 결정한다는 것은 특히 메모리나 비트스트림에서 무언가를 검색하는 것을 의미할 수 있다.
예를 들어, 특히 방법(1850 및 1900)을 포함하는 본 명세서에 설명된 다른 방법과 관련된 특정의 대표적인 실시예에서, 서브블록 기반 모션 예측 신호 및 개선 신호에 기초하여 현재 블록에 대해 개선된 모션 예측 신호를 획득하는 단계는 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 서브블록 기반 모션 예측 신호와 모션 예측 개선 신호를 결합(예컨대, 특히 더하거나 빼는 것)하는 단계를 포함할 수 있다.
예를 들어, 특히 방법(1850 및 1900)을 포함하는 본 명세서에 설명된 다른 방법과 관련된 특정의 대표적인 실시예에서, 개선된 모션 예측 신호에 기초해 현재 블록을 인코딩 및/또는 디코딩하는 단계는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 인코딩하는 단계 및/또는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 디코딩하는 단계를 포함할 수 있다.
도 18b는 제2 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 18b를 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(1850)은 블록(1855)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다. 블록(1860)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록 기반 모션 예측 신호의 (예컨대, 기울기 필터와 연관된) 하나 이상의 공간적 기울기를 결정할 수 있다. 블록(1865)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 결정된 공간적 기울기에 기초하여 현재 블록에 대해 모션 예측 개선 신호를 결정할 수 있다. 블록(1870)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 서브블록 기반 모션 예측 신호와 모션 예측 개선 신호를 결합(예컨대, 특히, 더하거나 빼기)할 수 있다. 블록(1875)에서, 인코더(100 또는 300)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있고 그리고/또는 디코더(200 또는 500)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 특정 실시예에서, 블록(1810, 1820, 1830 및 1840)에서의 동작은 현재 인코딩 또는 디코딩되고 있는 블록을 일반적으로 지칭하는 블록인 현재 블록에 대해 수행될 수 있다. 개선된 모션 예측 신호는 (예컨대, GBi 인코더(300) 및/또는 GBi 디코더(500)에 의해) 생성된 개선된 모션 인터 예측 신호일 수 있고 하나 이상의 PROF 동작을 사용할 수 있다.
예를 들어, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)에 의한 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기의 결정은 제1 참조 화상과 연관된 공간적 기울기들의 제1 세트 및 제2 참조 화상과 연관된 공간적 기울기들의 제2 세트의 결정을 포함할 수 있다. 인코더(100 또는 300) 및/또는 디코더(200 또는 500)에 의한 현재 블록에 대한 모션 예측 개선 신호의 결정은 결정된 공간적 기울기에 기초할 수 있고, 공간적 기울기의 제1 및 제2 세트에 기초하여 현재 블록에 대한 모션 인터 예측 개선 신호(예컨대, 양방향 예측 신호)의 결정을 포함할 수 있으며, 또한, 가중치 정보(W)(예컨대, 하나 이상의 참조 화상과 연관된 하나 이상의 가중치 값을 표시하거나 이를 포함함)에 기초할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 인코더(100 또는 300)는 가중치 정보(W)를 생성, 사용 및/또는 디코더(200 또는 500)에 송신할 수 있고 그리고/또는 디코더(200 또는 500)는 가중치 정보(W)를 수신하거나 획득할 수 있다. 예를 들어, 현재 블록에 대한 모션 인터 예측 개선 신호는 다음에 기초할 수 있다: (1) 공간적 기울기의 제1 세트로부터 유도되고 가중치 정보(W)에 의해 표시되는 제1 가중치 인자에 따라 가중된 제1 기울기 값 및/또는 (2) 공간적 기울기의 제2 세트로부터 유도되고 가중치 정보(W)에 의해 표시되는 제2 가중치 인자에 따라 가중된 제2 기울기 값.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 비디오의 현재 블록에 대해 아핀 모션 모델 파라미터를 결정하여, 서브블록 기반 모션 예측 신호가 결정된 아핀 모션 모델 파라미터를 사용하여 생성될 수 있도록 하는 단계를 더 포함할 수 있다.
대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)에 의한 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기의 결정을 포함할 수 있으며, 이 결정은 서브블록 기반 모션 예측 신호의 적어도 하나의 서브블록에서 하나의 각각의 샘플 위치, 각각의 샘플 위치의 일부 또는 각각의 개별 샘플 위치에 대한 적어도 하나의 기울기 값의 계산을 포함할 수 있다. 예를 들어, 서브블록 기반 모션 예측 신호의 적어도 하나의 서브블록에서 하나의 각각의 샘플 위치, 각각의 샘플 위치의 일부 또는 각각의 개별 샘플 위치에 대한 적어도 하나의 기울기 값의 계산은 하나의 각각의 샘플 위치, 각각의 샘플 위치의 일부 또는 각각의 개별 샘플 위치에 대해, 서브블록 기반 모션 예측 신호의 적어도 하나의 서브블록에서 각각의 샘플 위치에 기울기 필터를 적용하는 단계를 포함할 수 있다.
대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 서브블록 기반 모션 예측 신호의 현재 블록의 제1 서브블록의 샘플 위치와 연관된 모션 벡터 차이 값의 세트를 결정하는 단계를 더 포함할 수 있다. 일부 예들에서, 차이 값들은 서브블록(예컨대, 제1 서브블록)에 대해 결정될 수 있고 현재 블록의 다른 서브블록들의 일부 또는 전부에 대해 재사용될 수 있다. 특정 예들에서, 서브블록 기반 모션 예측 신호가 생성될 수도 있고 모션 벡터 차이 값의 세트가 아핀 모션 모델 또는 상이한 모션 모델(예컨대, SbTMVP 모델과 같은 또 다른 서브블록 기반 모션 모델)을 사용하여 결정될 수 있다. 예로서, 모션 벡터 차이 값의 세트는 현재 블록의 제1 서브블록에 대해 결정될 수도 있고 현재 블록의 하나 이상의 추가 서브블록에 대해 모션 예측 개선 신호를 결정하는 데 사용될 수 있다.
대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기 및 모션 벡터 차이 값의 세트는 현재 블록에 대해 모션 예측 개선 신호를 결정하기 위해 사용될 수 있다.
대표적 방법(1850, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정 대표적 실시예에서, 서브블록 기반 모션 예측 신호가 생성되고, 모션 벡터 차이 값의 세트는 현재 블록에 대해 아핀 모션 모델을 사용하여 결정된다.
대표적 방법(1850, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정 대표적 실시예에서, 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기의 결정은, 현재 블록의 하나 이상의 각각의 서브블록에 대해: 서브블록 기반 모션 예측 신호 및 각각의 서브블록에 접하고 이를 둘러싸는 인접 참조 샘플을 사용하여 확장된 서브블록을 결정하는 것; 및 결정된 확장된 서브블록을 사용하여 각각의 서브블록의 공간적 기울기를 결정하여 모션 예측 개선 신호를 결정하는 것을 포함할 수 있다.
도 19는 제3 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 19를 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(1900)은 블록(1910)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다. 블록(1920)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록의 서브블록과 연관된 모션 벡터 차이 값의 세트(예컨대, 모션 벡터 차이 값의 세트는 예를 들어, 현재 블록의 모든 서브블록과 연관될 수 있음)를 결정할 수 있다. 블록(1930)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 결정된 모션 벡터 차이 값의 세트에 기초하여 현재 블록에 대해 모션 예측 개선 신호를 결정할 수 있다. 블록(1940)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록에 대해 개선된 모션 예측 신호를 생산하거나 생성하기 위해 서브블록 기반 모션 예측 신호와 모션 예측 개선 신호를 결합(예컨대, 특히, 더하거나 빼기)할 수 있다. 블록(1950)에서, 인코더(100 또는 300)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있고 그리고/또는 디코더(200 또는 500)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 특정 실시예에서, 블록(1910, 1920, 1930 및 1940)에서의 동작은 현재 인코딩 또는 디코딩되고 있는 블록을 일반적으로 지칭하는 현재 블록에 대해 수행될 수 있다. 특정의 대표적 실시예에서, 개선된 모션 예측 신호는 (예컨대, GBi 인코더(300) 또는 GBi 디코더(500)에 의해) 생성된 개선된 모션 인터 예측 신호일 수 있고 하나 이상의 PROF 동작을 사용할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 비디오의 현재 블록에 대해 모션 모델 파라미터(예컨대, 하나 이상의 아핀 모션 모델 파라미터)를 결정하여, 서브블록 기반 모션 예측 신호가 결정된 모션 모델 파라미터(예컨대, 아핀 모션 모델 파라미터)를 사용하여 생성될 수 있도록 하는 것을 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)에 의한 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기의 결정을 포함할 수 있다. 예를 들어, 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기의 결정은 서브블록 기반 모션 예측 신호의 적어도 하나의 서브블록에서 하나의 각각의 샘플 위치, 각각의 샘플 위치의 일부 또는 각각의 개별 샘플 위치에 대한 적어도 하나의 기울기 값의 계산을 포함할 수 있다. 예를 들어, 서브블록 기반 모션 예측 신호의 적어도 하나의 서브블록에서 하나의 각각의 샘플 위치, 각각의 샘플 위치의 일부 또는 각각의 개별 샘플 위치에 대한 적어도 하나의 기울기 값의 계산은 하나의 각각의 샘플 위치, 각각의 샘플 위치의 일부 또는 각각의 개별 샘플 위치에 대해, 서브블록 기반 모션 예측 신호의 적어도 하나의 서브블록에서 각각의 샘플 위치에 기울기 필터를 적용하는 것을 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)에 의한, 현재 블록의 하나의 각각의 샘플 위치, 각각의 샘플 위치의 일부 또는 각각의 개별 샘플 위치에 대한 공간적 기울기와 연관된 기울기 값과, 서브블록 모션 예측 신호의 현재 블록의 서브블록(예컨대, 임의의 서브블록)의 샘플 위치와 연관된 모션 벡터 차이 값의 결정된 세트를 사용한 현재 블록에 대한 모션 예측 개선 신호의 결정을 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 현재 블록에 대한 모션 예측 개선 신호의 결정은 현재 블록의 하나 이상의 서브블록의 하나 이상의 각각의 샘플 위치 또는 각각의 샘플 위치에 대한 공간적 기울기와 연관된 기울기 값과 모션 벡터 차이 값의 결정된 세트를 사용할 수 있다.
도 20은 제4 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 20을 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(2000)은 블록(2010)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 적어도 현재 블록의 제1 서브블록에 대한 제1 모션 벡터 및 현재 블록의 제2 서브블록에 대한 추가 모션 벡터를 사용하여 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다. 블록(2020)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록 기반 모션 예측 신호의 제1 서브블록 내의 제1 샘플 위치에 대한 제1 세트의 기울기 값 및 서브블록 기반 모션 예측 신호의 제1 서브블록 내의 제2 샘플 위치에 대한 상이한 제2 세트의 기울기 값을 계산할 수 있다. 블록(2030)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 제1 샘플 위치에 대한 모션 벡터 차이 값의 제1 세트 및 제2 샘플 위치에 대한 모션 벡터 차이 값의 상이한 제2 세트를 결정할 수 있다. 예를 들어, 제1 샘플 위치에 대한 모션 벡터 차이 값의 제1 세트는 제1 샘플 위치에서의 모션 벡터와 제1 서브블록의 모션 벡터 간의 차이를 나타낼 수 있고, 제2 샘플 위치에 대한 모션 벡터 차이 값의 제2 세트는 제2 샘플 위치에서의 모션 벡터와 제1 서브블록의 모션 벡터 간의 차이를 나타낼 수 있다. 블록(2040)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 기울기 값의 제1 및 제2 세트와 모션 벡터 차이 값의 제1 및 제2 세트를 사용하여 예측 개선 신호를 결정할 수 있다. 블록(2050)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 개선된 모션 예측 신호를 생성하기 위해 서브블록 기반 모션 예측 신호와 예측 개선 신호를 결합(예컨대, 특히, 더하거나 빼기)할 수 있다. 블록(2060)에서, 인코더(100 또는 300)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있고 그리고/또는 디코더(200 또는 500)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 특정 실시예에서, 블록(2010, 2020, 2030, 2040 및 2050)에서의 동작은 복수의 서브블록을 포함하는 현재 블록에 대해 수행될 수 있다.
도 21은 제5 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 21을 참조하면, 비디오를 인코딩 및/또는 디코딩하는 대표적인 방법(2100)은 블록(2110)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 현재 블록에 대해 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다. 블록(2120)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록 기반 모션 예측 신호의 현재 블록에서 복수의 샘플 위치들의 개선된 모션을 나타내는 광류 정보를 사용하여 예측 개선 신호를 결정할 수 있다. 블록(2130)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 개선된 모션 예측 신호를 생성하기 위해 서브블록 기반 모션 예측 신호와 예측 개선 신호를 결합(예컨대, 특히, 더하거나 빼기)할 수 있다. 블록(2140)에서, 인코더(100 또는 300)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있고 그리고/또는 디코더(200 또는 500)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 예를 들어, 현재 블록은 복수의 서브블록을 포함할 수 있고, 서브블록 기반 모션 예측 신호는 적어도 현재 블록의 제1 서브블록에 대한 제1 모션 벡터 및 현재 블록의 제2 서브블록에 대한 추가 모션 벡터를 사용하여 생성될 수도 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)에 의한, 광류 정보를 사용할 수 있는 예측 개선 신호의 결정을 포함할 수 있다. 이 결정은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)에 의해 서브블록 기반 모션 예측 신호의 제1 서브블록 내의 제1 샘플 위치에 대한 제1 세트의 기울기 값 및 서브블록 기반 모션 예측 신호의 제1 서브블록 내의 제2 샘플 위치에 대한 상이한 제2 세트의 기울기 값을 계산하는 단계를 포함할 수 있다. 제1 샘플 위치에 대한 모션 벡터 차이 값의 제1 세트 및 제2 샘플 위치에 대한 모션 벡터 차이 값의 상이한 제2 세트가 결정될 수 있다. 예를 들어, 제1 샘플 위치에 대한 모션 벡터 차이 값의 제1 세트는 제1 샘플 위치에서의 모션 벡터와 제1 서브블록의 모션 벡터 간의 차이를 나타낼 수 있고, 제2 샘플 위치에 대한 모션 벡터 차이 값의 제2 세트는 제2 샘플 위치에서의 모션 벡터와 제1 서브블록의 모션 벡터 간의 차이를 나타낼 수 있다. 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 기울기 값의 제1 및 제2 세트와 모션 벡터 차이 값의 제1 및 제2 세트를 사용하여 예측 개선 신호를 결정할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)에 의한, 광류 정보를 사용할 수 있는 예측 개선 신호의 결정을 포함할 수 있다. 이 결정은 서브블록 기반 모션 예측 신호의 제2 서브블록 내의 제1 샘플 위치에 대한 제3 세트의 기울기 값 및 서브블록 기반 모션 예측 신호의 제2 서브블록 내의 제2 샘플 위치에 대한 제4 세트의 기울기 값을 계산하는 단계를 포함할 수 있다. 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 기울기 값의 제3 및 제4 세트와 모션 벡터 차이 값의 제1 및 제2 세트를 사용하여 제2 서브블록에 대해 예측 개선 신호를 결정할 수 있다.
도 22는 제6 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 22를 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(2200)은 블록(2210)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 비디오의 현재 블록에 대한 모션 모델을 결정하는 단계를 포함할 수 있다. 현재 블록은 복수의 서브블록을 포함할 수 있다. 예를 들어, 모션 모델은 현재 블록의 복수의 샘플 위치에 대해 개별(예컨대, 샘플당) 모션 벡터를 생성할 수 있다. 블록(2220)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 결정된 모션 모델을 사용하여 현재 블록에 대해 서브블록 기반 모션 예측 신호를 생성할 수 있다. 생성된 서브블록 기반 모션 예측 신호는 현재 블록의 각 서브블록에 대해 하나의 모션 벡터를 사용할 수 있다. 블록(2230)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록 기반 모션 예측 신호의 복수의 샘플 위치들 중 일부에 기울기 필터를 적용함으로써 기울기 값들을 계산할 수 있다. 블록(2240)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 샘플 위치들의 일부에 대해 모션 벡터 차이 값을 결정할 수 있고, 각각의 모션 벡터 차이 값은 모션 모델에 따라 각각의 샘플 위치에 대해 생성된 모션 벡터(예컨대, 개별 모션 벡터)와, 각각의 샘플 위치를 포함하는 서브블록에 대해 서브블록 기반 모션 예측 신호를 생성하기 위해 사용된 모션 벡터 간의 차이를 나타낼 수 있다. 블록(2250)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 기울기 값 및 모션 벡터 차이 값을 사용하여 예측 개선 신호를 결정할 수 있다. 블록(2260)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 서브블록 기반 모션 예측 신호와 예측 개선 신호를 결합(예컨대, 특히, 더하거나 빼기)할 수 있다. 블록(2270)에서, 인코더(100 또는 300)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있고 그리고/또는 디코더(200 또는 500)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다.
도 23은 제7 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 23을 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(2300)은 블록(2310)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 서브블록 기반 모션 보상을 수행하여 대략적인(coarse) 모션 예측 신호로서 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다. 블록(2320)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 샘플 위치에서 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기를 계산할 수 있다. 블록(2330)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 계산된 공간적 기울기에 기초하여 현재 블록의 화소당 강도 변화를 계산할 수 있다. 블록(2340)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 계산된 화소당 강도 변화에 기초하여 화소별 기반 모션 예측 신호를 개선된 모션 예측 신호로서 결정할 수 있다. 블록(2350)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록의 각 서브블록의 대략적인 모션 예측 신호와 현재 블록의 각 화소의 개선된 모션 예측 신호를 사용하여 현재 블록을 예측할 수 있다. 특정 실시예에서, 블록(2310, 2320, 2330, 2340 및 2350)에서의 동작은 비디오의 적어도 하나의 블록(예컨대, 현재 블록)에 대해 수행될 수 있다. 예를 들어, 현재 블록의 화소당 강도 변화를 계산하는 단계는 광류 수학식에 따라 현재 블록의 각 화소에 대해 휘도 강도 변화를 결정하는 단계를 포함할 수 있다. 현재 블록의 예측은 각각의 화소를 포함하는 서브블록에 대한 대략적인 모션 예측 벡터를 대략적인 모션 예측 벡터에 관련되고 각각의 화소와 연관된 개선된 모션 예측 벡터와 결합함으로써 현재 블록 내의 각각의 개별 화소에 대해 모션 벡터를 예측하는 것을 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300 및 2600)을 포함하는 특정의 대표적인 실시예에서, 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기는 수평 기울기 및/또는 수직 기울기 중 어느 하나를 포함할 수 있고, 예를 들면, 수평 기울기는 서브블록의 샘플의 우측 이웃 샘플과 서브블록의 샘플의 좌측 이웃 샘플 간의 루마 차이 또는 크로마 차이로서 계산될 수 있으며, 그리고/또는 수직 기울기는 서브블록의 샘플의 하단 이웃 샘플과 서브블록의 샘플의 상단 이웃 샘플 간의 루마 차이 또는 크로마 차이로서 계산될 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300 및 2600)을 포함하는 특정의 대표적인 실시예에서, 서브블록 예측의 하나 이상의 공간적 기울기는 소벨 필터를 사용하여 생성될 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300 및 2600)을 포함하는 특정의 대표적인 실시예에서, 대략적인 모션 예측 신호는 4-파라미터 아핀 모델 또는 6-파라미터 아핀 모델 중 하나를 사용할 수 있다. 예를 들어, 서브블록 기반 모션 보상은 다음 중 하나일 수 있다: (1) 아핀 서브블록 기반 모션 보상; 또는 (2) 또 다른 보상(예컨대, 서브블록 기반 시간적 모션 벡터 예측(sub-block based temporal motion vector prediction; SbTMVP) 모드 모션 보상; 및/또는 회귀 기반 모션 벡터 필드(regression based motion vector field; RMVF) 모드 기반 보상). SbTMVP 모드 기반 모션 보상이 수행되는 것을 조건으로, 방법은 선형 회귀 동작에 의해 서브블록 모션 벡터 필드를 사용하여 아핀 모델 파라미터를 추정하는 단계; 및 추정된 아핀 모델 파라미터를 사용하여 화소 레벨 모션 벡터를 유도하는 단계를 포함할 수 있다. RMVF 모드 기반 모션 보상이 수행되는 것을 조건으로, 방법은 아핀 모델 파라미터를 추정하는 단계; 및 추정된 아핀 모델 파라미터를 사용하여 서브블록 레벨 모션 벡터로부터 화소-레벨 모션 벡터 오프셋을 유도하는 단계를 포함할 수 있다. 예를 들어, 화소 모션 벡터 오프셋은 서브블록의 중심(예컨대, 실제 중심 또는 실제 중심에 가장 가까운 샘플 위치)에 상대적일 수 있다. 예를 들어, 서브블록에 대한 대략적인 모션 예측 벡터는 서브블록의 실제 중심 위치에 기초할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 또는 디코더(200 또는 500)가 각 서브블록에 대한 대략적 모션 예측 벡터(예컨대, 서브블록 기반 모션 예측 벡터)와 연관된 중심 위치로서, (1) 각 서브블록의 실제 중심 또는 (2) 서브블록의 중심에 가장 가까운 화소(예컨대, 샘플) 위치 중의 하나를 선택하는 단계를 포함할 수 있다. 예를 들어, 현재 블록의 대략적 모션 예측 신호(예컨대, 서브블록 기반 모션 예측 신호)를 사용하고 현재 블록의 각 화소(예컨대, 샘플)의 개선된 모션 예측 신호를 사용하는 현재 블록의 예측은 각 서브블록의 선택된 중심 위치에 기초할 수 있다. 예를 들어, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록의 크로마 화소와 연관된 중심 위치를 결정할 수 있고; 크로마 화소와 연관된 크로마 위치 샘플 유형에 기초하여 서브블록의 크로마 화소의 중심 위치에 대한 오프셋을 결정할 수 있다. 서브블록에 대한 대략적인 모션 예측 신호(예컨대, 서브블록 기반 모션 예측 신호)는 오프셋에 의해 조정된 크로마 화소의 결정된 중심 위치에 대응하는 서브블록의 실제 위치에 기초할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 다음 중 하나에서 PROF(Prediction Refinement with Optical Flow)가 활성화되었는지 여부를 나타내는 정보를 인코더(100 또는 300)가 생성하거나 이 정보를 디코더(200 또는 500)가 수신하는 단계를 포함할 수 있다: (1) 시퀀스 파라미터 세트(sequence parameter set; SPS) 헤더, (2) 화상 파라미터 세트(picture parameter set; PPS) 헤더 또는 (3) 타일 그룹 헤더. 예를 들어, PROF가 활성화되는 조건에서, 대략적인 모션 예측 신호(예컨대, 서브블록 기반 모션 예측 신호) 및 개선된 모션 예측 신호가 현재 블록을 예측하는데 사용될 수 있도록 개선된 모션 예측 동작이 수행될 수 있다. 또 다른 예로서, PROF가 활성화되지 않은 조건에서, 대략적인 모션 예측 신호(예컨대, 서브블록 기반 모션 예측 신호)만이 현재 블록을 예측하는데 사용될 수 있도록 개선된 모션 예측 동작이 수행되지 않는다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 현재 블록에 대해 또는 현재 블록의 속성 및/또는 아핀 모션 추정의 속성에 기초하여 아핀 모션 추정에서 개선된 모션 예측 동작을 수행할지 여부를 결정하는 단계를 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 현재 블록에 대해 또는 현재 블록의 속성 및/또는 아핀 모션 추정의 속성에 기초하여 아핀 모션 추정에서 개선된 모션 예측 동작을 수행할지 여부를 결정하는 단계를 포함할 수 있다. 예를 들어, 현재 블록의 속성에 기초하여 현재 블록에 대해 개선된 모션 예측 동작을 수행할지 여부의 결정은 다음 중 어느 하나에 기초하여 현재 블록에 대해 개선된 모션 예측 동작을 수행할지 여부를 결정하는 단계를 포함할 수 있다: (1) 현재 블록의 크기가 특정 크기를 초과한다; 그리고/또는 (2) 제어점 모션 벡터(control point motion vector; CPMV) 차이가 문턱값을 초과한다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 변환 유닛 경계와 일치하는 현재 블록의 서브블록의 하나 이상의 경계에 제1 디블록킹 필터를 적용하고 변환 유닛 경계와 일치하지 않는 현재 블록의 서브블록의 다른 경계에 제2의 다른 디블록킹 필터를 적용하는 단계를 포함할 수 있다. 예를 들어, 제1 디블로킹 필터는 제2 디블로킹 필터보다 더 강한 디블로킹 필터일 수 있다.
도 24는 제8 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 24를 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(2400)은 블록(2410)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 서브블록 기반 모션 보상을 수행하여 대략적인 모션 예측 신호로서 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다. 블록(2420)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록의 서브블록의 각각의 개별 경계 샘플에 대해, 각각의 경계 샘플에 인접하고 서브블록을 둘러싸는 샘플들에 대응하는 하나 이상의 참조 샘플을 주변 참조 샘플로서 결정할 수 있고, 주변 참조 샘플들 및 각각의 경계 샘플에 인접한 서브블록의 샘플들을 사용하여, 각각의 경계 샘플과 연관된 하나 이상의 공간적 기울기를 결정할 수 있다. 블록(2430)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록의 각각의 개별 비경계(non-border) 샘플에 대해, 각각의 비경계 샘플에 인접한 서브블록의 샘플들을 사용하여, 각각의 비경계 샘플과 연관된 하나 이상의 공간적 기울기를 결정할 수 있다. 블록(2440)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록의 결정된 공간적 기울기를 사용하여 현재 블록의 화소당 강도 변화를 계산할 수 있다. 블록(2450)에서, 인코더(100, 300) 및/또는 디코더(200, 500)는 계산된 화소당 강도 변화에 기초하여 화소별 기반 모션 예측 신호를 개선된 모션 예측 신호로서 결정할 수 있다. 블록(2460)에서, 인코더(100, 300) 및/또는 디코더(200, 500)는 현재 블록의 각 서브블록과 연관된 대략적인 모션 예측 신호와 현재 블록의 각 화소와 연관된 개선된 모션 예측 신호를 사용하여 현재 블록을 예측할 수 있다. 특정 실시예에서, 블록(2410, 2420, 2430, 2440, 2450 및 2460)에서의 동작은 비디오의 적어도 하나의 블록(예컨대, 현재 블록)에 대해 수행될 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400 및 2600)을 포함하는 특정의 대표적인 실시예에서, 경계 샘플 및 비경계 샘플의 하나 이상의 공간적 기울기의 결정은 다음 중 어느 하나를 사용하여 하나 이상의 공간적 기울기를 계산하는 단계를 포함할 수 있다: (1) 수직 소벨 필터; (2) 수평 소벨 필터; 또는 (3) 3-탭 필터.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 임의의 추가 조작 없이 참조 저장소로부터 주변 참조 샘플을 복사하는 단계를 포함할 수 있고, 각각의 경계 샘플과 연관된 하나 이상의 공간적 기울기의 결정은 복사된 주변 참조 샘플을 사용하여 각각의 경계 샘플과 연관된 하나 이상의 공간적 기울기를 결정할 수 있다.
도 25는 대표적인 기울기 계산 방법을 도시하는 흐름도이다.
도 25를 참조하면, 서브블록의 경계에 인접한 샘플들(예컨대, 비디오 인코딩 및/또는 디코딩에 사용됨)에 대응하는 참조 샘플들을 사용하여 서브블록의 기울기를 계산하는 대표적인 방법(2500)은, 블록(2510)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가, 현재 블록의 서브블록의 각각의 개별 경계 샘플에 대해, 각 경계 샘플에 인접하고 서브블록을 둘러싸는 샘플에 대응하는 하나 이상의 참조 샘플을 주변 참조 샘플로서 결정하는 단계와, 주변 참조 샘플 및 각각의 경계 샘플에 인접한 서브블록의 샘플을 사용하여, 각각의 경계 샘플과 연관된 하나 이상의 공간적 기울기를 결정하는 단계를 포함한다. 블록(2520)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 서브블록의 각각의 개별 비경계 샘플에 대해, 각각의 비경계 샘플에 인접한 서브블록의 샘플들을 사용하여, 각각의 비경계 샘플과 연관된 하나 이상의 공간적 기울기를 결정할 수 있다. 특정 실시예에서, 블록(2510 및 2520)에서의 동작은 비디오의 적어도 하나의 블록(예컨대, 현재 블록)에 대해 수행될 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400, 2500 및 2600)을 포함하는 특정의 대표적인 실시예에서, 결정된 하나 이상의 공간적 기울기는 다음 중 어느 하나에 의해 현재 블록을 예측하는 데 사용될 수 있다: (1) PROF(Prediction Refinement with Optical Flow) 동작 (2) 양방향 광류 동작 또는 (3) 아핀 모션 추정 동작.
도 26은 제9 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 26을 참조하면, 비디오를 인코딩 및/또는 디코딩하는 대표적인 방법(2600)은 블록(2610)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 비디오의 현재 블록에 대해 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다. 예를 들면, 현재 블록은 복수의 서브블록을 포함할 수 있다. 블록(2620)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록의 하나 이상 또는 각각의 개별 서브블록에 대해, 각각의 서브블록에 접하고 이를 둘러싸는 인접 참조 샘플 및 서브블록 기반 모션 예측 신호를 사용하여 확장된 서브블록을 결정하고, 결정된 확장된 서브블록을 사용하여, 각각의 서브블록의 공간적 기울기를 결정할 수 있다. 블록(2630)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 결정된 공간적 기울기에 기초하여 현재 블록에 대해 모션 예측 개선 신호를 결정할 수 있다. 블록(2640)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 서브블록 기반 모션 예측 신호와 모션 예측 개선 신호를 결합(예컨대, 특히, 더하거나 빼기)할 수 있다. 블록(2650)에서, 인코더(100 또는 300)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있고 그리고/또는 디코더(200 또는 500)는 현재 블록에 대한 예측으로서 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 특정 실시예에서, 블록(2610, 2620, 2630, 2640 및 2650)에서의 동작은 비디오의 적어도 하나의 블록(예컨대, 현재 블록)에 대해 수행될 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 임의의 추가 조작 없이 참조 저장소로부터 인접한 참조 샘플을 복사하는 단계를 포함할 수 있다. 예를 들어, 각각의 서브블록의 공간적 기울기의 결정은 복사된 인접한 참조 샘플을 사용하여 각각의 서브블록의 경계 상의 샘플 위치와 연관된 기울기 값을 결정할 수 있다. 확장 블록의 인접한 참조 샘플은 현재 블록을 포함하는 참조 화상에서 가장 가까운 정수 위치로부터 복사될 수 있다. 특정 예들에서, 확장된 블록의 인접한 참조 샘플들은 원래 정밀도로부터 반올림된 가장 가까운 정수 모션 벡터를 갖는다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 비디오의 현재 블록에 대해 아핀 모션 모델 파라미터를 결정하여, 서브블록 기반 모션 예측 신호가 결정된 아핀 모션 모델 파라미터를 사용하여 생성될 수 있도록 하는 단계를 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2300, 2500 및 2600)을 포함하는 특정의 대표적인 실시예에서, 각각의 서브블록의 공간적 기울기의 결정은 각각의 서브블록에서 각각의 개별 샘플 위치에 대한 적어도 하나의 기울기 값을 계산하는 단계를 포함할 수 있다. 예를 들어, 각각의 서브블록 내의 각각의 개별 샘플 위치에 대한 적어도 하나의 기울기 값의 계산은, 각각의 샘플 위치에 대해, 각각의 서브블록 내의 각각의 샘플 위치에 기울기 필터를 적용하는 단계를 포함할 수 있다. 또 다른 예로서, 각각의 서브블록 내의 각각의 개별 샘플 위치에 대한 적어도 하나의 기울기 값의 계산은 광류 수학식에 따라 각각의 서브블록 내의 각각의 개별 샘플 위치에 대해 강도 변화를 결정하는 단계를 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 각각의 서브블록의 샘플 위치와 연관된 모션 벡터 차이 값의 세트를 결정하는 단계를 포함할 수 있다. 예를 들어, 서브블록 기반 모션 예측 신호가 생성될 수 있고 모션 벡터 차이 값의 세트가 현재 블록에 대해 아핀 모션 모델을 사용하여 결정될 수 있다.
적어도 대표적인 방법들(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예들에서, 모션 벡터 차이 값들의 세트는 현재 블록의 각각의 서브블록에 대해 결정될 수 있고 현재 블록의 다른 나머지 서브블록에 대해 모션 예측 개선 신호를 결정하는 데 사용될 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 각각의 서브블록의 공간적 기울기의 결정은 다음 중 어느 하나를 사용하여 공간적 기울기를 계산하는 단계를 포함할 수 있다: (1) 수직 소벨 필터; (2) 수평 소벨 필터; 및/또는 (3) 3-탭 필터.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 각각의 서브블록에 접하고 이를 둘러싸는 인접한 참조 샘플은 정수 모션 보상을 사용할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 각각의 서브블록의 공간적 기울기는 수평 기울기 또는 수직 기울기 중 어느 하나를 포함할 수 있다. 예를 들어, 수평 기울기는 각각의 샘플의 우측 이웃 샘플과 각각의 샘플의 좌측 이웃 샘플 간의 루마 차이 또는 크로마 차이로서 계산될 수 있고; 그리고/또는 수직 기울기는 각각의 샘플의 하단 이웃 샘플과 각각의 샘플의 상단 이웃 샘플 간의 루마 차이 또는 크로마 차이로서 계산될 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 서브블록 기반 모션 예측 신호는 다음 중 어느 하나를 사용하여 생성될 수 있다: (1) 4-파라미터 아핀 모델; (2) 6-파라미터 아핀 모델; (3) 서브블록 기반의 시간적 모션 벡터 예측(sub-block based Temporal Motion Vector Prediction; SbTMVP) 모드 모션 보상; 또는 (3) 회귀 기반 모션 보상. 예를 들어, SbTMVP 모드 모션 보상이 수행되는 경우, 방법은 선형 회귀 동작에 의해 서브블록 모션 벡터 필드를 사용하여 아핀 모델 파라미터를 추정하는 단계; 및/또는 추정된 아핀 모델 파라미터를 사용하여 화소 레벨 모션 벡터를 유도하는 단계를 포함한다. 또 다른 예로서, RMVF 모드 기반 모션 보상이 수행되는 것을 조건으로, 방법은 아핀 모델 파라미터를 추정하는 단계; 및/또는 추정된 아핀 모델 파라미터를 사용하여 서브블록 레벨 모션 벡터로부터 화소-레벨 모션 벡터 오프셋을 유도하는 단계를 포함할 수 있다. 화소 모션 벡터 오프셋은 각각의 서브블록의 중심에 상대적일 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 각각의 서브블록에 대한 개선된 모션 예측 신호는 각각의 서브블록의 실제 중심 위치에 기초할 수 있거나, 또는 각각의 서브블록의 실제 중심에 가장 가까운 샘플 위치에 기초할 수 있다.
예를 들어, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 각각의 개별 서브블록에 대한 모션 예측 벡터와 연관된 중심 위치로서 다음 중 하나를 선택하는 단계를 포함할 수 있다: (1) 각각의 개별 서브블록의 실제 중심 또는 (2) 각 서브블록의 실제 중심에 가장 가까운 샘플 위치. 개선된 모션 예측 신호는 각 서브블록의 선택된 중심 위치에 기초할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 각각의 서브블록의 크로마 화소와 연관된 중심 위치와, 크로마 화소와 연관된 크로마 위치 샘플 유형에 기초하여 각각의 서브블록의 크로마 화소의 중심 위치에 대한 오프셋을 결정하는 단계를 포함할 수 있다. 각각의 서브블록에 대한 개선된 모션 예측 신호는 오프셋에 의해 조정된 크로마 화소의 결정된 중심 위치에 대응하는 서브블록의 실제 위치에 기초할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 및 2600)을 포함하는 특정의 대표적인 실시예에서, 인코더(100 또는 300)는 (1) 시퀀스 파라미터 세트(sequence parameter set; SPS) 헤더, (2) 화상 파라미터 세트(picture parameter set) 헤더 또는 (3) 타일 그룹 헤더 중 하나에서 PROF(Prediction Refinement with Optical Flow)가 활성화되었는지 여부를 나타내는 정보를 생성 및 송신할 수 있고, 그리고/또는 디코더(200, 500)는 (1) SPS 헤더, (2) PPS 헤더 또는 (3) 타일 그룹 헤더 중 하나에서 PROF가 활성화되었는지 여부를 나타내는 정보를 수신할 수 있다.
도 27은 제10 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 27을 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(2700)은 블록(2710)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 현재 블록의 각각의 개별 서브블록의 실제 중심 위치를 결정하는 단계를 포함할 수 있다. 블록(2720)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록의 각각의 개별 서브블록 각각의 실제 중심 위치를 사용하여 서브블록 기반 모션 예측 신호 또는 개선된 모션 예측 신호를 생성할 수 있다. 블록(2730)에서, (1) 인코더(100 또는 300)는 현재 블록에 대한 예측으로서, 서브블록 기반 모션 예측 신호 또는 생성된 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있거나, 또는 (2) 디코더(200 또는 500)는 현재 블록에 대한 예측으로서, 서브블록 기반 모션 예측 신호 또는 생성된 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 특정 실시예에서, 블록(2710, 2720, 및 2730)에서의 동작은 비디오의 적어도 하나의 블록(예컨대, 현재 블록)에 대해 수행될 수 있다. 예를 들어, 현재 블록의 각각의 개별 서브블록의 실제 중심 위치의 결정은 크로마 화소들의 크로마 위치 샘플 유형에 기초하여 각각의 서브블록의 크로마 화소들과 연관된 크로마 중심 위치 및 각각의 서브블록의 중심 위치에 대한 크로마 중심 위치의 오프셋을 결정하는 단계를 포함할 수 있다. 서브블록 기반 모션 예측 신호 또는 각각의 서브블록에 대한 개선된 모션 예측 신호는 오프셋에 의해 조정된 결정된 크로마 중심 위치에 대응하는 각 서브블록의 실제 중심 위치에 기초할 수 있다. 현재 블록의 각각의 개별 서브블록의 실제 중심이 다양한 동작을 위해 결정/사용되는 것으로 설명되지만, 그러한 서브블록의 중심 위치 중 하나, 일부 또는 전부가 결정/사용될 수 있음이 고려된다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 및 2800)을 포함하는 특정의 대표적인 실시예에서, 개선된 모션 예측 신호의 생성은 현재 블록의 각각의 개별 서브블록에 대해, 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기를 결정하고, 결정된 공간적 기울기에 기초하여 현재 블록에 대해 모션 예측 개선 신호를 결정하며, 그리고/또는 서브블록 기반 모션 예측 신호와 모션 예측 개선 신호를 결합하여 현재 블록에 대해 개선된 모션 예측 신호를 생성함으로써 서브블록 기반 모션 예측 신호를 사용할 수 있다. 예를 들어, 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기의 결정은, 각각의 서브블록에 접하고 이를 둘러싸는 인접한 참조 샘플 및 서브블록 기반 모션 예측 신호를 사용하여 확장된 서브블록을 결정하는 단계 및/또는 결정된 확장된 서브블록을 사용하여 각각의 서브블록의 하나 이상의 공간적 기울기를 결정하는 단계를 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 및 2800)을 포함하는 특정의 대표적인 실시예에서, 각각의 서브블록의 공간적 기울기의 결정은 각각의 서브블록에서 각각의 개별 샘플 위치에 대해 적어도 하나의 기울기 값을 계산하는 단계를 포함할 수 있다. 예를 들어, 각각의 서브블록의 각각의 개별 샘플 위치에 대한 적어도 하나의 기울기 값의 계산은 각각의 샘플 위치에 대해, 각각의 서브블록의 각각의 샘플 위치에 기울기 필터를 적용하는 단계를 포함할 수 있다.
또 다른 예로서, 각각의 서브블록 내의 각각의 샘플 위치에 대한 적어도 하나의 기울기 값의 계산은 광류 수학식에 따라 각각의 서브블록에서 하나 이상의 각각의 샘플 위치에 대해 강도 변화를 결정하는 단계를 포함할 수 있다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 및 2800)을 포함하는 특정의 대표적인 실시예에서, 이들 방법은 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 각각의 서브블록의 샘플 위치와 연관된 모션 벡터 차이 값의 세트를 결정하는 단계를 포함할 수 있다. 서브블록 기반 모션 예측 신호가 생성될 수 있고 모션 벡터 차이 값의 세트는 현재 블록에 대해 아핀 모션 모델을 사용하여 결정될 수 있다. 특정 예들에서, 모션 벡터 차이 값들의 세트는 현재 블록의 각각의 서브블록에 대해 결정될 수도 있고 현재 블록의 그 서브블록 및 다른 나머지 서브블록에 대해 모션 예측 개선 신호를 결정하기 위해 사용(예컨대, 재사용)될 수 있다. 예를 들어, 각각의 서브블록의 공간적 기울기의 결정은 다음 중 어느 하나를 사용하여 공간적 기울기를 계산하는 단계를 포함할 수 있다: (1) 수직 소벨 필터; (2) 수평 소벨 필터; 및/또는 (3) 3-탭 필터. 각각의 서브블록에 접하고 이를 둘러싸는 인접한 참조 샘플은 정수 모션 보상을 사용할 수 있다.
일부 실시예에서, 각각의 서브블록의 공간적 기울기는 수평 기울기 또는 수직 기울기 중 어느 하나를 포함할 수 있다. 예를 들어, 수평 기울기는 각 샘플의 우측 이웃 샘플과 각 샘플의 좌측 이웃 샘플 간의 루마 차이 또는 크로마 차이로 계산될 수 있다. 또 다른 예로서, 수직 기울기는 각각의 샘플의 하단 이웃 샘플과 각 샘플의 상단 이웃 샘플 사이의 루마 차이 또는 크로마 차이로서 계산될 수 있다.
적어도 대표적인 방법들(1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 및 2800)을 포함하는 특정의 대표적인 실시예들에서, 서브블록 기반 모션 예측 신호는 다음 중 어느 하나를 사용하여 생성될 수 있다: (1) 4-파라미터 아핀 모델; (2) 6-파라미터 아핀 모델; (3) 서브블록 기반의 시간적 모션 벡터 예측(sub-block based Temporal Motion Vector Prediction; SbTMVP) 모드 모션 보상; 및/또는 (4) 회귀 기반 모션 보상. 예를 들어, SbTMVP 모드 모션 보상이 수행되는 경우, 방법은 선형 회귀 동작에 의해 서브블록 모션 벡터 필드를 사용하여 아핀 모델 파라미터를 추정하는 단계; 및/또는 추정된 아핀 모델 파라미터를 사용하여 화소 레벨 모션 벡터를 유도하는 단계를 포함한다. 또 다른 예로서, 회귀 모션 벡터 필드(regression motion vector field; RMVF) 모드 기반 모션 보상이 수행되는 것을 조건으로, 방법은, 아핀 모델 파라미터를 추정하는 단계; 및/또는 추정된 아핀 모델 파라미터를 사용하여 서브블록 레벨 모션 벡터로부터 화소-레벨 모션 벡터 오프셋을 유도하는 단계를 포함하며, 여기서 화소 모션 벡터 오프셋은 각각의 서브블록의 중심에 상대적이다.
적어도 대표적인 방법(1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 및 2800)을 포함하는 특정의 대표적인 실시예에서, 개선된 모션 예측 신호는 현재 블록의 제어점과 연관된 복수의 모션 벡터를 사용하여 생성될 수 있다.
적어도 대표적인 방법들(1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 및 2800)을 포함하는 특정의 대표적인 실시예들에서, 인코더(100 또는 300)는 다음 중 하나에서 PROF(Prediction Refinement with Optical Flow)가 활성화되었는지 여부를 나타내는 정보를 생성, 인코딩 및 송신할 수 있고, 디코더(200 또는 500)는 이 정보를 수신 및 디코딩할 수 있다: (1) 시퀀스 파라미터 세트(sequence parameter set; SPS) 헤더, (2) 화상 파라미터 세트(picture parameter set; PPS) 헤더 또는 (3) 타일 그룹 헤더.
도 28은 제11 대표적 인코딩 및/또는 디코딩 방법을 도시하는 흐름도이다.
도 28을 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(2800)은 블록(2810)에서 인코더(100 또는 300) 및/또는 디코더(200 또는 500)가 각각의 개별 서브블록에 대한 모션 예측 벡터와 연관된 중심 위치로서, 다음 중 하나를 선택하는 단계를 포함할 수 있다: (1) 각각의 개별 서브블록의 실제 중심 또는 (2) 각 서브블록의 실제 중심에 가장 가까운 샘플 위치. 블록(2820)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록의 각각의 개별 서브블록의 선택된 중심 위치를 결정할 수 있다. 블록(2830)에서, 인코더(100 또는 300) 및/또는 디코더(200 또는 500)는 현재 블록의 각각의 개별 서브블록의 선택된 중심 위치를 사용하여 서브블록 기반 모션 예측 신호 또는 개선된 모션 예측 신호를 생성할 수 있다. 블록(2840)에서, (1) 인코더(100 또는 300)는 현재 블록에 대한 예측으로서, 서브블록 기반 모션 예측 신호 또는 생성된 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있거나, 또는 (2) 디코더(200 또는 500)는 현재 블록에 대한 예측으로서, 서브블록 기반 모션 예측 신호 또는 생성된 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 특정 실시예에서, 블록(2810, 2820, 2830, 및 2840)에서의 동작은 비디오의 적어도 하나의 블록(예컨대, 현재 블록)에 대해 수행될 수 있다. 중심 위치의 선택이 현재 블록의 각각의 개별 서브블록과 관련하여 설명되지만, 이러한 서브블록의 중심 위치 중 하나, 일부 또는 전부가 다양한 동작에서 선택/사용될 수 있음이 고려된다.
도 29는 대표적 인코딩 방법을 도시하는 흐름도이다.
도 29를 참조하면, 비디오를 인코딩하는 대표적인 방법(2900)은 블록(2910)에서 인코더(100 또는 300)가, 반복 모션 보상 동작을 사용하여 현재 블록에 대해 아핀 모션 모델 파라미터를 결정하는 것을 포함하여 비디오의 현재 블록에 대해 모션 추정을 수행하는 단계와, 결정된 아핀 모션 모델 파라미터를 사용하여 현재 블록에 대해 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함할 수 있다. 블록(2920)에서, 인코더(100 또는 300)는 현재 블록에 대해 모션 추정을 수행한 후, 개선된 모션 예측 신호를 생성하기 위해 PROF(Prediction Refinement with Optical Flow) 동작을 수행할 수 있다. 블록(2930)에서, 인코더(100 또는 300)는 개선된 모션 예측 신호를 현재 블록에 대한 예측으로서 사용하여 비디오를 인코딩할 수 있다. 예를 들어, PROF 동작은: 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기를 결정하는 단계; 결정된 공간적 기울기에 기초하여 현재 블록에 대해 모션 예측 개선 신호를 결정하는 단계; 및/또는 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 서브블록 기반 모션 예측 신호와 모션 예측 개선 신호를 결합하는 단계를 포함한다.
적어도 대표적인 방법들(1800, 1850, 1900, 2000, 2100, 2200, 2600 및 2900)을 포함하는 특정의 대표적인 실시예들에서, PROF 동작은 반복적인 모션 보상 동작이 완료된 후에(예컨대, 단지 완료된 이후에만) 수행될 수 있다. 예를 들어, 현재 블록에 대한 모션 추정 중에는, PROF 동작이 수행되지 않는다.
도 30은 또 다른 대표적 인코딩 방법을 도시하는 흐름도이다.
도 30을 참조하면, 비디오를 인코딩하는 대표적인 방법(3000)은 블록(3010)에서 인코더(100 또는 300)가 현재 블록에 대한 모션 추정 동안, 반복적인 모션 보상 동작을 사용하여 아핀 모션 모델 파라미터를 결정하는 단계와, 결정된 아핀 모션 모델 파라미터를 사용하여 서브블록 기반 모션 예측 신호를 생성하는 단계를 포함한다. 블록(3020)에서, 인코더(100 또는 300)는 현재 블록에 대한 모션 추정 후, 현재 블록의 크기가 문턱 크기를 충족하거나 초과하는 조건으로, PROF(Prediction Refinement with Optical Flow) 동작을 수행하여 개선된 모션 예측 신호를 생성할 수 있다. 블록(3030)에서, 인코더(100 또는 300)는 (1) 현재 블록이 문턱 크기를 충족하거나 초과하는 조건에서 개선된 모션 예측 신호를 현재 블록에 대한 예측으로서 사용하거나 (2) 현재 블록이 문턱 크기를 충족하지 않는다는 조건으로 서브블록 기반 모션 예측 신호를 현재 블록에 대한 예측으로서 사용해 비디오를 인코딩할 수 있다.
도 31은 제12 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 31을 참조하면, 비디오를 인코딩 및/또는 디코딩하는 대표적인 방법(3100)은 블록(3110)에서 인코더(100 또는 300)가 현재 블록의 크기를 나타내는 정보를 결정 또는 획득하거나 디코더(200 또는 500)가 현재 블록의 크기를 나타내는 정보를 수신하는 단계를 포함할 수 있다. 블록(3120)에서, 인코더(100 또는 300) 또는 디코더(200 또는 500)는 서브블록 기반 모션 예측 신호를 생성할 수 있다. 블록(3130)에서, 인코더(100 또는 300) 또는 디코더(200 또는 500)는, 현재 블록의 크기가 문턱 크기를 충족하거나 초과하는 조건으로, PROF(Prediction Refinement with Optical Flow) 동작을 수행하여 개선된 모션 예측 신호를 생성할 수 있다. 블록(3140)에서, 인코더(100 또는 300)는 (1) 현재 블록이 문턱 크기를 충족하거나 초과하는 조건으로, 개선된 모션 예측 신호를 현재 블록에 대한 예측으로 사용하거나 (2) 현재 블록이 문턱 크기를 충족하지 않는다는 조건으로, 서브블록 기반 모션 예측 신호를 현재 블록에 대한 예측으로서 사용해 비디오를 인코딩할 수 있거나, 또는 디코더(200 또는 500)는 (1) 현재 블록이 문턱 크기를 충족하거나 초과하는 조건으로, 개선된 모션 예측 신호를 현재 블록에 대한 예측으로서 사용하거나 (2) 현재 블록이 문턱 크기를 충족하지 않는다는 조건으로, 서브블록 기반 모션 예측 신호를 현재 블록에 대한 예측으로서 사용해 비디오를 디코딩할 수 있다.
도 32는 제13 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 32를 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(3200)은 블록(3210)에서, 인코더(100 또는 300)가 화소 레벨 모션 보상이 수행될지 여부를 결정하는 단계 또는 디코더(200 또는 500)가 화소 레벨 모션 보상이 수행될지 여부를 나타내는 플래그를 수신하는 단계를 포함할 수 있다. 블록(3220)에서, 인코더(100 또는 300) 또는 디코더(200 또는 500)는 서브블록 기반 모션 예측 신호를 생성할 수 있다. 블록(3230)에서, 화소 레벨 모션 보상이 수행될 것이라는 조건으로, 인코더(100 또는 300) 또는 디코더(200 또는 500)는: 서브블록 기반 모션 예측 신호의 하나 이상의 공간적 기울기를 결정하고, 결정된 공간적 기울기에 기초하여 현재 블록에 대해 모션 예측 개선 신호를 결정하며, 서브블록 기반 모션 예측 신호와 모션 예측 개선 신호를 결합하여 현재 블록에 대해 개선된 모션 예측 신호를 생성할 수 있다. 블록(3240)에서, 화소 레벨 모션 보상이 수행될지 여부의 결정에 따라, 인코더(100 또는 300)는 현재 블록에 대한 예측으로서 서브블록 기반 모션 예측 신호 또는 개선된 모션 예측 신호를 사용하여 비디오를 인코딩할 수 있거나, 디코더(200 또는 500)는 플래그의 표시에 따라 현재 블록에 대한 예측으로서 서브블록 기반 모션 예측 신호 또는 개선된 모션 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 특정 실시예에서, 블록(3220 및 3230)에서의 동작은 비디오의 블록(예컨대, 현재 블록)에 대해 수행될 수 있다.
도 33은 제14 대표적 인코딩/디코딩 방법을 도시하는 흐름도이다.
도 33을 참조하면, 비디오를 인코딩 및/또는 디코딩하기 위한 대표적인 방법(3300)은 블록(3310)에서 인코더(100 또는 300)가 제1 및 제2 참조 화상과 연관된 하나 이상의 가중치를 나타내는 인터 예측 가중치 정보를 결정하거나 획득하는 단계 또는 디코더(200 또는 500)가 이 정보를 수신하는 단계를 포함할 수 있다. 블록(3320)에서, 인코더(100 또는 300) 또는 디코더(200 또는 500)는 비디오의 현재 블록에 대해, 서브블록 기반 모션 인터 예측 신호를 생성할 수 있고, 제1 참조 화상과 연관된 공간적 기울기의 제1 세트와 제2 참조 화상과 연관된 공간적 기울기의 제2 세트를 결정할 수 있고, 공간적 기울기의 제1 및 제2 세트 및 인터 예측 가중치 정보에 기초하여 현재 블록에 대해 모션 인터 예측 개선 신호를 결정할 수 있으며, 서브블록 기반 모션 인터 예측 신호와 모션 인터 예측 개선 신호를 결합하여 현재 블록에 대해 개선된 모션 인터 예측 신호를 생성할 수 있다. 블록(3330)에서, 인코더(100 또는 300)는 현재 블록에 대한 예측으로서 개선된 모션 인터 예측 신호를 사용하여 비디오를 인코딩할 수 있거나, 디코더(200 또는 500)는 현재 블록에 대한 예측으로서 개선된 모션 인터 예측 신호를 사용하여 비디오를 디코딩할 수 있다. 예를 들어, 인터 예측 가중치 정보는 다음 중 어느 하나이다: (1) 제1 참조 화상에 적용될 제1 가중치 인자 및/또는 제2 참조 화상에 적용될 제2 가중치 인자를 나타내는 표시자; 또는 (2) 가중치 인덱스. 특정 실시예에서, 현재 블록에 대한 모션 인터 예측 개선 신호는 다음에 기초할 수 있다: (1) 공간적 기울기의 제1 세트로부터 유도되고 인터 예측 가중치 정보에 의해 표시되는 제1 가중치 인자에 따라 가중된 제1 기울기 값, 및 (2) 공간적 기울기의 제2 세트로부터 유도되고 인터 예측 가중치 정보에 의해 표시되는 제2 가중치 인자에 따라 가중된 제2 기울기 값.
실시예의 구현을 위한 예시적인 네트워크
도 34a는 하나 이상의 개시된 실시예가 구현될 수 있는 예시적인 통신 시스템(3400)을 도시하는 도면이다. 통신 시스템(3400)은 예를 들어, 음성, 데이터, 비디오, 메시징, 브로드캐스트 등과 같은 콘텐츠를 다수의 무선 사용자에게 제공하는 다중 액세스 시스템일 수 있다. 통신 시스템(3400)은, 무선 대역폭을 비롯한 시스템 리소스의 공유를 통해 다수의 무선 사용자가 이러한 콘텐츠에 액세스하는 것을 가능하게 할 수도 있다. 예를 들어, 통신 시스템들(3400)은 CDMA(code division multiple access), TDMA(time division multiple access), FDMA(frequency division multiple access), OFDMA(orthogonal FDMA), SC-FDMA(single-carrier FDMA), ZT UW DTS-s OFDM(zero-tail unique-word DFT-Spread OFDM), UW-OFDM(unique word OFDM), 자원 블록 필터링된 OFDM, FBMC(filter bank multicarrier) 등과 같은 하나 이상의 채널 액세스 방법을 사용할 수 있다.
도 34a에 도시된 바와 같이, 통신 시스템(3400)은 무선 송수신 유닛(WTRU)(3402a, 3402b, 3402c, 3402d), RAN(3404/3413), CN(3406/3415), PSTN(public switched telephone network)(3408), 인터넷(3410), 및 다른 네트워크(3412)를 포함할 수 있지만, 개시된 실시예들은 임의의 수의 WTRU, 기지국, 네트워크 및/또는 네트워크 요소를 고려한다는 것이 이해될 것이다. WTRU(3402a, 3402b, 3402c, 3402d)의 각각은 무선 환경에서 동작하도록 그리고/또는 통신하도록 구성되는 임의의 유형의 디바이스일 수도 있다. 예로서, WTRU들(3402a, 3402b, 3402c, 3402d) - 이들 중 임의의 것은 "스테이션(station)" 및/또는 "STA(STA)"라고 지칭될 수 있음 - 은 무선 신호들을 송신 및/또는 수신하도록 구성될 수 있고, 사용자 장비(user equipment; UE), 이동국, 고정 또는 이동 가입자 유닛, 가입 기반 유닛, 페이저, 셀룰러 전화, PDA(personal digital assistant), 스마트폰, 랩톱, 넷북, 개인용 컴퓨터, 무선 센서, 핫스폿 또는 Mi-Fi 디바이스, 사물 인터넷(Internet of Things; IoT) 디바이스, 시계 또는 다른 웨어러블, HMD(head-mounted display), 차량, 드론, 의료 디바이스 및 애플리케이션들(예컨대, 원격 수술), 산업 디바이스 및 애플리케이션들(예컨대, 산업 및/또는 자동화된 프로세싱 체인 상황들에서 동작하는 로봇 및/또는 다른 무선 디바이스들), 소비자 전자기기 디바이스, 상업 및/또는 산업 무선 네트워크들 상에서 동작하는 디바이스 등을 포함할 수 있다. WTRU들(3402a, 3402b, 3402c, 3402d) 중 임의의 것은 UE로 교환가능하게 지칭될 수 있다.
통신 시스템들(3400)은 또한 기지국(3414a) 및/또는 기지국(3414b)을 포함할 수 있다. 기지국들(3414a, 3414b) 각각은 CN(3406/3415), 인터넷(3410), 및/또는 다른 네트워크들(3412)과 같은 하나 이상의 통신 네트워크에 대한 액세스를 용이하게 하기 위해 WTRU들(3402a, 3402b, 3402c, 3402d) 중 적어도 하나와 무선으로 인터페이싱하도록 구성된 임의의 유형의 디바이스일 수 있다. 예로서, 기지국들(3414a, 3414b)은 BTS(base transceiver station), Node-B, eNode B(end), HNB(Home Node B), HeNB(Home eNode B), gNB, NR Node B, 사이트 컨트롤러(site controller), 액세스 포인트(access point; AP), 무선 라우터 등일 수 있다. 기지국(3414a, 3414b) 각각이 단일의 요소로서 묘사되지만, 기지국(3414a, 3414b)은 임의의 수의 상호접속된(interconnected) 기지국 및/또는 네트워크 요소를 포함할 수도 있다는 것이 인식될 것이다.
기지국(3414a)은 다른 기지국들, 및/또는 예를 들어, 기지국 컨트롤러(base station controller; BSC), 무선 네트워크 컨트롤러(radio network controller; RNC), 릴레이 노드들 등과 같은 네트워크 요소들(도시되지 않음)도 포함할 수 있는 RAN(3404/3413)의 일부일 수 있다. 기지국(3414a) 및/또는 기지국(3414b)은 셀(도시되지 않음)이라고 지칭될 수 있는 하나 이상의 반송파 주파수 상에서 무선 신호들을 송신 및/또는 수신하도록 구성될 수 있다. 이러한 주파수들은 인가 스펙트럼 및 비인가 스펙트럼 또는 인가 스펙트럼과 비인가 스펙트럼의 조합 내에 있을 수 있다. 셀은 비교적 고정될 수 있거나 시간 경과에 따라 변할 수 있는 특정 지리 영역에 대한 무선 서비스를 위한 커버리지를 제공할 수 있다. 셀은 셀 섹터로 더 분할될 수도 있다. 예를 들면, 기지국(3414a)과 관련된 셀은 세 개의 섹터로 분할될 수도 있다. 따라서, 하나의 실시예에서, 기지국(3414a)은 세 개의 트랜시버, 즉, 셀의 각각의 섹터에 대해 하나의 트랜시버를 포함할 수도 있다. 실시예에서, 기지국(3414a)은 MIMO(multiple-input multiple-output) 기술을 사용할 수 있고, 셀의 섹터마다 다수의 트랜시버를 사용할 수 있다. 예를 들어, 신호들을 원하는 공간 방향들로 송신 및/또는 수신하기 위해 빔포밍(beamforming)이 사용될 수 있다.
기지국들(3414a, 3414b)은 임의의 적절한 무선 통신 링크(예컨대, RF(radio frequency), 마이크로파, 센티미터파, 마이크로미터파, IR(infrared), UV(ultraviolet), 가시광 등)일 수 있는 에어 인터페이스(3416)를 통해 WTRU들(3402a, 3402b, 3402c, 3402d) 중 하나 이상과 통신할 수 있다. 에어 인터페이스(3416)는 임의의 적절한 RAT(radio access technology)를 사용하여 확립될 수 있다.
더 구체적으로는, 위에서 언급된 바와 같이, 통신 시스템(3400)은 다중 액세스 시스템일 수도 있고 예를 들어, CDMA, TDMA, FDMA, OFDMA, SC-FDMA, 및 등등과 같은 하나 이상의 채널 액세스 방식을 활용할 수도 있다. 예를 들어, RAN(3404/3413) 내의 기지국(3414a), 및 WTRU들(3402a, 3402b, 3402c)은 WCDMA(wideband CDMA)를 사용하여 에어 인터페이스(3415/3416/3417)를 확립할 수 있는 UTRA(Universal Mobile Telecommunications System(UMTS) Terrestrial Radio Access)와 같은 라디오 기술을 구현할 수 있다. WCDMA는 고속 패킷 액세스(High-Speed Packet Access; HSPA) 및/또는 진화된 HSPA(Evolved HSPA; HSPA+)와 같은 통신 프로토콜을 포함할 수도 있다. HSPA는 고속 다운링크(DL) 패킷 액세스(HSDPA) 및/또는 고속 UL 패킷 액세스(HSUPA)를 포함할 수 있다.
실시예에서, 기지국(3414a) 및 WTRU들(3402a, 3402b, 3402c)은 LTE(Long Term Evolution) 및/또는 LTE-A(LTE-Advanced) 및/또는 LTE-A Pro(LTE-Advanced Pro)를 사용하여 에어 인터페이스(3416)를 확립할 수 있는 E-UTRA(Evolved UMTS Terrestrial Radio Access)와 같은 라디오 기술을 구현할 수 있다.
실시예에서, 기지국(3414a) 및 WTRU들(3402a, 3402b, 3402c)은 NR(New Radio)을 사용하여 에어 인터페이스(3416)를 확립할 수 있는 NR 라디오 액세스와 같은 라디오 기술을 구현할 수 있다.
실시예에서, 기지국(3414a) 및 WTRU들(3402a, 3402b, 3402c)은 다수의 라디오 액세스 기술을 구현할 수 있다. 예를 들어, 기지국(3414a) 및 WTRU들(3402a, 3402b, 3402c)은 예를 들어, 이중 접속성(dual connectivity; DC) 원리들을 사용하여 LTE 라디오 액세스 및 NR 라디오 액세스를 함께 구현할 수 있다. 따라서, WTRU들(3402a, 3402b, 3402c)에 의해 사용되는 에어 인터페이스는 다수의 유형의 라디오 액세스 기술들 및/또는 다수의 유형의 기지국들(예컨대, end 및 gNB)로/로부터 송신되는 송신들에 의해 특성화될 수 있다.
다른 실시예에서, 기지국(3414a) 및 WTRU들(3402a, 3402b, 3402c)은 IEEE 802.11(즉, WiFi(Wireless Fidelity)), IEEE 802.16(즉, WiMAX(Worldwide Interoperability for Microwave Access)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, IS-2000(Interim Standard 2000), IS-95(Interim Standard 95), IS -856(Interim Standard 856), GSM(Global System for Mobile communications), EDGE(Enhanced Data rates for GSM Evolution), GERAN(GSM EDGE) 등과 같은 라디오 기술들을 구현할 수 있다.
도 34a의 기지국(3414b)은 예를 들어, 무선 라우터, Home Node B, Home eNode B, 또는 액세스 포인트일 수 있고, 예를 들어, 사업장, 집, 차량, 캠퍼스, 산업 시설, (예컨대, 드론들에 의한 사용을 위한) 에어 코리도(air corridor), 도로 등과 같은 국지화된 영역에서의 무선 접속성을 용이하게 하기 위해 임의의 적절한 RAT를 사용할 수 있다. 하나의 실시예에서, 기지국(3414b) 및 WTRU(3402c, 3402d)는 무선 근거리 통신망(wireless local area network; WLAN)을 확립하기 위해 예를 들어, IEEE 802.11과 같은 무선 기술을 구현할 수도 있다. 실시예에서, 기지국(3414b) 및 WTRU(3402c, 3402d)는 무선 사설 영역 네트워크(wireless personal area network; WPAN)를 확립하기 위해 IEEE 802.15와 같은 무선 기술을 구현할 수도 있다. 또 다른 실시예에서, 기지국(3414b) 및 WTRU들(3402c, 3402d)은 피코셀 또는 펨토셀을 확립하기 위해 셀룰러 기반 RAT(예컨대, WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR 등)를 사용할 수 있다. 도 34a에 도시된 바와 같이, 기지국(3414b)은 인터넷(3410)에 대한 직접 접속을 가질 수 있다. 따라서, 기지국(3414b)은 CN(3406/3415)을 통해 인터넷(3410)에 액세스하도록 요구되지 않을 수 있다.
RAN(3404/3413)은 음성, 데이터, 애플리케이션들, 및/또는 VoIP(voice over internet protocol) 서비스들을 WTRU들(3402a, 3402b, 3402c, 3402d) 중 하나 이상에 제공하도록 구성된 임의의 유형의 네트워크일 수 있는 CN(3406/3415)과 통신할 수 있다. 데이터는 상이한 처리량 요건들, 레이턴시 요건들, 에러 허용 한계 요건들, 신뢰성 요건들, 데이터 처리량 요건들, 이동성 요건들 등과 같은 다양한 서비스 품질(quality of service; QoS) 요건들을 가질 수 있다. CN(3406/3415)은 호출 제어, 과금 서비스들, 이동 위치 기반 서비스들, 선불 통화, 인터넷 접속성, 비디오 배포 등을 제공하고 그리고/또는 사용자 인증과 같은 하이 레벨 보안 기능들을 수행할 수 있다. 도 34a에 도시되지 않지만, RAN(1084/3413) 및/또는 CN(3406/3415)이 RAN(3404/3413)과 동일한 RAT 또는 상이한 RAT를 사용하는 다른 RAN들과 직접 또는 간접 통신을 할 수 있다는 것이 이해될 것이다. 예를 들어, NR 라디오 기술을 사용하는 것일 수 있는 RAN(3404/3413)에 대한 접속에 더하여, CN(3406/3415)은 또한 GSM, UMTS, CDMA 2000, WiMAX, E-UTRA, 또는 WiFi 라디오 기술을 사용하여 또 다른 RAN(도시되지 않음)과 통신할 수 있다.
CN(3406/3415)은 또한 WTRU들(3402a, 3402b, 3402c, 3402d)이 PSTN(3408), 인터넷(3410), 및/또는 다른 네트워크들(3412)에 액세스하기 위한 게이트웨이로서 역할할 수 있다. PSTN(3408)은, 기존 전화 서비스(plain old telephone service; POTS)를 제공하는 회선 교환 전화 네트워크(circuit-switched telephone network)를 포함할 수도 있다. 인터넷(3410)은, TCP/IP(transmission control protocol/internet protocol; 송신 제어 프로토콜/인터넷 프로토콜) 일군(suite)에서의 TCP, 사용자 데이터그램 프로토콜(user datagram protocol; UDP) 및 IP와 같은 공통 통신 프로토콜을 사용하는 상호접속된 컴퓨터 네트워크 및 디바이스의 글로벌 시스템을 포함할 수도 있다. 네트워크들(3412)은 다른 서비스 제공자들에 의해 소유되고 그리고/또는 운영되는 유선 및/또는 무선 통신 네트워크들을 포함할 수 있다. 예를 들어, 네트워크들(3412)은 RAN(3404/3413)과 동일한 RAT 또는 상이한 RAT를 사용할 수 있는 하나 이상의 RAN에 접속된 또 다른 CN을 포함할 수 있다.
통신 시스템(3400) 내의 WTRU들(3402a, 3402b, 3402c, 3402d) 중 일부 또는 전부는 다중-모드 능력들을 포함할 수 있다(예컨대, WTRU들(3402a, 3402b, 3402c, 3402d)은 상이한 무선 링크들을 통해 상이한 무선 네트워크들과 통신하기 위해 다수의 트랜시버를 포함할 수 있다). 예를 들어, 도 34a에 도시된 WTRU(3402c)는 셀룰러 기반 라디오 기술을 사용할 수 있는 기지국(3414a) 및 IEEE 802 라디오 기술을 사용할 수 있는 기지국(3414b)과 통신하도록 구성될 수 있다.
도 34b는 예시적인 WTRU(3402)를 도시하는 시스템 도면이다. 도 34b에 도시된 바와 같이, WTRU(3402)는 특히 프로세서(3418), 트랜시버(3420), 송수신 요소(3422), 스피커/마이크로폰(3424), 키패드(3426), 디스플레이/터치패드(3428), 비착탈식 메모리(3430), 착탈식 메모리(3432), 전원(3434), GPS(global positioning system) 칩셋(3436), 및/또는 다른 주변 장치들(3438)을 포함할 수 있다. WTRU(3402)는 한 실시예와 여전히 부합하면서 요소의 임의의 부조합(sub-combination)을 포함할 수도 있다는 것이 인식될 것이다.
프로세서(3418)는 범용 프로세서, 특수 목적의 프로세서, 종래의 프로세서, 디지털 신호 프로세서(digital signal processor; DSP), 복수의 마이크로프로세서, DSP 코어와 관련하는 하나 이상의 마이크로프로세서, 컨트롤러, 마이크로컨트롤러, 주문형 반도체(Application Specific Integrated Circuit; ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA) 회로, 임의의 다른 유형의 집적 회로(integrated circuit; IC), 상태 머신, 및 등등일 수도 있다. 프로세서(3418)는 신호 코딩, 데이터 프로세싱, 전력 제어, 입출력 프로세싱, 및/또는 WTRU(3402)가 무선 환경에서 동작하는 것을 가능하게 하는 임의의 다른 기능성(functionality)을 수행할 수도 있다. 프로세서(3418)는, 송수신 요소(3422)에 결합될 수도 있는 트랜시버(3420)에 결합될 수도 있다. 도 34b는 프로세서(3418) 및 트랜시버(3420)를 별개의 컴포넌트들로서 도시하지만, 프로세서(3418) 및 트랜시버(3420)는 전자 패키지 또는 칩 내에 함께 통합될 수 있다는 것을 알 것이다. 프로세서(3418)는 비디오(예컨대, 비디오 프레임)를 인코딩 또는 디코딩하도록 구성될 수 있다.
송수신 요소(3422)는 에어 인터페이스(3416)를 통해 기지국(예컨대, 기지국(3414a))으로 신호들을 송신하거나 기지국으로부터 신호들을 수신하도록 구성될 수 있다. 예를 들면, 하나의 실시예에서, 송수신 요소(3422)는 RF 신호를 송신하도록 그리고/또는 수신하도록 구성되는 안테나일 수도 있다. 다른 실시예에서, 송수신 요소(3422)는, 예를 들면, IR, UV, 또는 가시광 신호를 송신 및/또는 수신하도록 구성되는 방출기(emitter)/검출기(detector)일 수도 있다. 또 다른 실시예에서, 송수신 요소(3422)는 RF 및 광 신호 둘 다를 송신하도록 그리고/또는 수신하도록 구성될 수도 있다. 송수신 요소(3422)는 무선 신호의 임의의 조합을 송신하도록 그리고/또는 수신하도록 구성될 수도 있다는 것이 인식될 것이다.
송수신 요소(3422)가 단일 요소로서 도 34b에 도시되지만, WTRU(3402)는 임의의 수의 송수신 요소(3422)를 포함할 수 있다. 더 구체적으로는, WTRU(3402)는 MIMO 기술을 활용할 수도 있다. 따라서, 일 실시예에서, WTRU(3402)는, 무선 인터페이스(3416)를 통해 무선 신호를 송신 및 수신하기 위한 2개 이상의 송수신 요소(3422)(예를 들면, 다수의 안테나)를 포함할 수도 있다.
트랜시버(3420)는, 송수신 요소(3422)에 의해 송신될 신호를 변조하도록 그리고 송수신 요소(3422)에 의해 수신되는 신호를 복조하도록 구성될 수도 있다. 위에서 언급되는 바와 같이, WTRU(3402)는 다중 모드 성능을 가질 수도 있다. 따라서, 트랜시버(3420)는, WTRU(3402)가, 예를 들면, NR 및 IEEE 802.11과 같은 다수의 RAT를 통해 통신하는 것을 가능하게 하기 위한 다수의 트랜시버를 포함할 수도 있다.
WTRU(3402)의 프로세서(3418)는 스피커/마이크로폰(3424), 키패드(3426), 및/또는 디스플레이/터치패드(3428)(예컨대, LCD(liquid crystal display) 디스플레이 유닛 또는 OLED(organic light emitting diode) 디스플레이 유닛)에 결합될 수 있고 그로부터 사용자 입력 데이터를 수신할 수 있다. 프로세서(3418)는 사용자 데이터를 스피커/마이크(3424), 키패드(3426), 및/또는 디스플레이/터치패드(3428)로 또한 출력할 수도 있다. 또한, 프로세서(3418)는 비착탈식 메모리(3430) 및/또는 착탈식 메모리(3432)와 같은 임의의 유형의 적절한 메모리로부터의 정보에 액세스하고 그 안에 데이터를 저장할 수 있다. 비착탈식 메모리(3430)는 랜덤 액세스 메모리(random-access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 하드디스크, 또는 임의의 다른 유형의 메모리 저장 디바이스를 포함할 수도 있다. 착탈식 메모리(3432)는 가입자 식별 모듈(subscriber identity module; SIM) 카드, 메모리 스틱, 시큐어 디지털(secure digital; SD) 메모리 카드, 및 등등을 포함할 수도 있다. 다른 실시예에서, 프로세서(3418)는, WTRU(3402) 상에 물리적으로 위치되지 않는 메모리, 예컨대, 서버 또는 가정용 컴퓨터(도시되지 않음) 상의 메모리의 정보에 액세스할 수도 있고, 그리고 그 메모리에 데이터를 저장할 수도 있다.
프로세서(3418)는 전원(3434)으로부터 전력을 수신할 수도 있고, WTRU(3402)의 다른 컴포넌트로 전력을 분배하도록 그리고/또는 그 전력을 제어하도록 구성될 수도 있다. 전원(3434)은 WTRU(3402)에 전력을 공급하기 위한 임의의 적절한 디바이스일 수도 있다. 예를 들어, 전원(3434)은 하나 이상의 건전지 배터리(예컨대, 니켈-카드뮴(NiCd), 니켈-아연(NiZn), 니켈 금속 수소화물(NiMH), 리튬-이온(Li-ion) 등), 태양 전지들, 연료 전지들 등을 포함할 수 있다.
프로세서(3418)는 또한 WTRU(3402)의 현재 위치에 관한 위치 정보(예컨대, 경도 및 위도)를 제공하도록 구성될 수 있는 GPS 칩셋(3436)에 결합될 수 있다. GPS 칩셋(3436)으로부터의 정보에 더하여 또는 그 대신에, WTRU(3402)는 기지국(예컨대, 기지국들(3414a, 3414b))으로부터 에어 인터페이스(3416)를 통해 위치 정보를 수신하고 그리고/또는 2개 이상의 근처 기지국으로부터 수신되고 있는 신호들의 타이밍에 기초하여 그의 위치를 결정할 수 있다. WTRU(3402)는 실시예와 여전히 부합하면서 임의의 적절한 위치 결정 방법을 통해 위치 정보를 획득할 수도 있다는 것이 인식될 것이다.
프로세서(3418)는 또한, 추가적인 특징, 기능성, 및/또는 유선 또는 무선 접속성을 제공하는 하나 이상의 소프트웨어 및/또는 하드웨어 모듈을 포함할 수도 있는 다른 주변 장치(3438)에 결합될 수도 있다. 예를 들어, 주변 장치들(3438)은 가속도계, 전자 나침반, 위성 트랜시버, (화상들 및/또는 비디오를 위한) 디지털 카메라, 범용 직렬 버스(universal serial bus; USB) 포트, 진동 디바이스, 텔레비전 트랜시버, 핸즈프리 헤드셋, 블루투스® 모듈, 주파수 변조(frequency modulated; FM) 라디오 유닛, 디지털 음악 플레이어, 미디어 플레이어, 비디오 게임 플레이어 모듈, 인터넷 브라우저, 가상 현실 및/또는 증강 현실(VR/AR) 디바이스, 활동 추적기 등을 포함할 수 있다. 주변 장치들(3438)은 하나 이상의 센서를 포함할 수 있고, 센서들은 자이로스코프, 가속도계, 홀 효과 센서, 자력계, 배향 센서, 근접 센서, 온도 센서, 시간 센서; 지리 위치 센서; 고도계, 광 센서, 터치 센서, 자력계, 기압계, 제스처 센서, 생체 인식 센서, 및/또는 습도 센서 중 하나 이상일 수 있다.
WTRU(3402)의 프로세서(3418)는 본 명세서에 개시된 대표적 실시예를 구현하기 위해 예를 들어, 하나 이상의 가속도계, 하나 이상의 자이로스코프, USB 포트, 다른 통신 인터페이스/포트, 디스플레이 및/또는 다른 시청각 표시기 중 어느 하나를 포함하는 다양한 주변 장치(3438)와 동작적으로 통신할 수 있다.
WTRU(3402)는 (예컨대, (예컨대, 송신을 위한) UL 및 (예컨대, 수신을 위한) 다운링크 둘 다에 대해 특정 서브프레임들과 연관된) 신호들의 일부 또는 전부의 송신 및 수신이 동반적이고 그리고/또는 동시적일 수 있는 전이중 라디오(full duplex radio)를 포함할 수 있다. 전이중 라디오는 하드웨어(예컨대, 초크(choke))를 통해 또는 프로세서(예컨대, 별개의 프로세서(도시되지 않음) 또는 프로세서(3418))를 통한 신호 프로세싱을 통해 자기-간섭을 줄이고 그리고/또는 실질적으로 제거하는 간섭 관리 유닛을 포함할 수 있다. 실시예에서, WTRU(3402)는 (예컨대, (예컨대, 송신을 위한) UL 또는 (예컨대, 수신을 위한) 다운링크에 대해 특정 서브프레임들과 연관된) 신호들의 일부 또는 전부의 송신 및 수신을 위한 반이중 라디오(half-duplex radio)를 포함할 수 있다.
도 34c는 실시예에 따른 RAN(104) 및 CN(3406)을 도시하는 시스템도이다. 위에서 언급되는 바와 같이, RAN(3404)은 무선 인터페이스(3416)를 통해 WTRU(3402a, 3402b, 3402c)와 통신하기 위해 E-UTRA 무선 기술을 활용할 수도 있다. RAN(3404)은 또한 CN(3406)과 통신할 수 있다.
RAN(3404)은 eNode B(3460a, 3460b, 3460c)를 포함할 수도 있지만, RAN(3404)은 실시예와 여전히 부합하면서 임의의 수의 eNode B를 포함할 수도 있다는 것이 인식될 것이다. eNode B(3460a, 3460b, 3460c) 각각은 무선 인터페이스(3416)를 통해 WTRU(3402a, 3402b, 3402c)와 통신하기 위한 하나 이상의 트랜시버를 포함할 수도 있다. 하나의 실시예에서, eNode B(3460a, 3460b, 3460c)는 MIMO 기술을 구현할 수도 있다. 따라서, eNode B(3460a)는 예를 들어, WTRU(3402a)에 무선 신호들을 송신하고 그리고/또는 그로부터 무선 신호들을 수신하기 위해 다수의 안테나를 사용할 수 있다.
eNode B(3460a, 3460b, 3460c) 각각은 특정 셀(도시되지 않음)과 연관될 수 있고, 라디오 자원 관리 결정들, 핸드오버 결정들, UL 및/또는 DL에서의 사용자들의 스케줄링 등을 핸들링하도록 구성될 수 있다. 도 34c에서 도시되는 바와 같이, eNode B(3460a, 3460b, 3460c)는 X2 인터페이스를 통해 서로 통신할 수도 있다.
도 34c에 도시된 CN(3406)은 이동성 관리 엔티티(mobility management entity; MME)(3462), 서빙 게이트웨이(serving gateway; SGW)(3464), 및 패킷 데이터 네트워크(packet data network; PDN) 게이트웨이(또는 PGW)(3466)를 포함할 수 있다. 전술한 요소들 각각이 CN(3406)의 일부로서 묘사되지만, 이 요소들 중 임의의 것이 CN 운영자 이외의 엔티티에 의해 소유되고 그리고/또는 운영될 수 있다는 것이 이해될 것이다.
MME(3462)는 S1 인터페이스를 통해 RAN(3404) 내의 eNode B(3460a, 3460b, 3460c)의 각각에 접속될 수도 있고 제어 노드로서 기능할 수도 있다. 예를 들면, MME(3462)는 WTRU(3402a, 3402b, 3402c)의 사용자를 인증하는 것, 베어러 활성화/비활성화, WTRU(3402a, 3402b, 3402c)의 초기 연결 동안 특정한 서빙 게이트웨이를 선택하는 것, 및 등등을 담당할 수도 있다. MME(3462)는 RAN(3404)과, 예를 들어, GSM 및/또는 WCDMA와 같은 다른 라디오 기술들을 사용하는 다른 RAN들(도시되지 않음) 간에 스위칭하기 위한 제어 평면 기능을 제공할 수 있다.
SGW(3464)는 S1 인터페이스를 통해 RAN(104) 내의 eNode B들(3460a, 3460b, 3460c) 각각에 접속될 수 있다. SGW(3464)는 일반적으로 WTRU들(3402a, 3402b, 3402c)로/로부터 사용자 데이터 패킷들을 라우팅하고 포워딩할 수 있다. SGW(3464)는 eNode B간 핸드오버들 동안 사용자 평면들을 앵커링(anchoring)하는 것, WTRU들(3402a, 3402b, 3402c)에 대해 DL 데이터가 사용 가능할 때 페이징(paging)을 트리거링하는 것, WTRU들(3402a, 3402b, 3402c)의 상황들을 관리하고 저장하는 것 등과 같은 다른 기능들을 수행할 수 있다.
SGW(3464)는 WTRU들(3402a, 3402b, 3402c)과 IP-인에이블드 디바이스들 사이의 통신을 용이하게 하기 위해, 예를 들어, 인터넷(3410)과 같은 패킷 교환 네트워크들에 대한 액세스를 WTRU들(3402a, 3402b, 3402c)에 제공할 수 있는 PGW(3466)에 접속될 수 있다.
CN(3406)은 다른 네트워크들과의 통신을 용이하게 할 수 있다. 예를 들어, CN(106)은 WTRU들(3402a, 3402b, 3402c)과 전통적인 지상선 통신 디바이스들 사이의 통신을 용이하게 하기 위해, PSTN(3408)과 같은 회선 교환 네트워크들에 대한 액세스를 WTRU들(3402a, 3402b, 3402c)에 제공할 수 있다. 예를 들어, CN(3406)은 CN(3406)과 PSTN(3408) 사이의 인터페이스로서 역할을 하는 IP 게이트웨이(예컨대, IMS(IP multimedia subsystem) 서버)를 포함할 수 있거나 그와 통신할 수 있다. 또한, CN(3406)은 다른 서비스 제공자들에 의해 소유되고 그리고/또는 운영되는 다른 유선 및/또는 무선 네트워크들을 포함할 수 있는 다른 네트워크들(3412)에 대한 액세스를 WTRU들(3402a, 3402b, 3402c)에 제공할 수 있다.
WTRU가 도 34a 내지 34d에서 무선 단말기로서 설명되지만, 특정한 대표적 실시예들에서 그러한 단말기는 통신 네트워크와의 유선 통신 인터페이스들을(예컨대, 일시적으로 또는 영구적으로) 사용할 수 있다는 것이 고려된다.
대표적 실시예에서, 다른 네트워크(3412)는 WLAN일 수 있다.
인프라스트럭처 기본 서비스 세트(Basic Service Set; BSS) 모드의 WLAN은 BSS에 대한 액세스 포인트(Access Point; AP) 및 AP와 연관된 하나 이상의 스테이션(STA)을 가질 수 있다. AP는 BSS로 및/또는 BSS로부터 트래픽을 운반하는 분배 시스템(Distribution System; DS) 또는 또 다른 유형의 유선/무선 네트워크에 대한 액세스 또는 인터페이스를 가질 수 있다. BSS 외부로부터 비롯되는 STA들에 대한 트래픽은 AP를 통해 도착할 수 있고 STA들에 전달될 수 있다. STA들로부터 BSS 외부의 목적지들로 비롯되는 트래픽은 각각의 목적지들로 전달되도록 AP에 송신될 수 있다. BSS 내의 STA들 간의 트래픽은 AP를 통해 송신될 수 있는데, 예를 들어, 소스 STA는 트래픽을 AP에 송신할 수 있고, AP는 트래픽을 목적지 STA에 전달할 수 있다. BSS 내의 STA들 사이의 트래픽은 피어-투-피어 트래픽으로 간주되고 그리고/또는 지칭될 수 있다. 피어-투-피어 트래픽은 직접 링크 셋업(direct link setup; DLS)을 사용하여 소스 STA와 목적지 STA 사이에서 (예컨대, 그들 사이에서 직접) 송신될 수도 있다. 특정 대표적 실시예들에서, DLS는 802.11e DLS 또는 802.11z TDLS(tunneled DLS)를 사용할 수 있다. IBSS(Independent BSS) 모드를 사용하는 WLAN은 AP를 갖지 않을 수 있고, IBSS 내의 또는 IBSS를 사용하는 STA들(예컨대, 모든 STA들)은 서로 직접 통신할 수 있다. IBSS 통신 모드는 때때로 본 명세서에서 "애드혹" 통신 모드라고 지칭될 수 있다.
802.11ac 인프라스트럭처 동작 모드 또는 유사한 동작 모드를 사용할 때, AP는 예를 들어, 주 채널과 같은 고정 채널 상에서 비컨을 송신할 수 있다. 주 채널은 고정된 폭(예컨대, 20MHz 폭의 대역폭) 또는 시그널링을 통한 동적 설정 폭일 수 있다. 주 채널은 BSS의 동작 채널일 수 있으며, STA들에 의해 AP와의 접속을 확립하기 위해 사용될 수 있다. 특정 대표적 실시예들에서, CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)가 예를 들어, 802.11 시스템들에서 구현될 수 있다. CSMA/CA의 경우, AP를 포함하는 STA들(예컨대, 모든 STA)은 주 채널을 감지할 수 있다. 주 채널이 특정 STA에 의해 사용 중인 것으로 감지/검출 및/또는 결정되면, 특정 STA는 백오프될 수 있다. 하나의 STA(예컨대, 단지 하나의 스테이션)는 주어진 BSS에서 임의의 주어진 시간에 송신할 수 있다.
고처리량(High Throughput; HT) STA들은 예를 들어, 인접하거나 인접하지 않은 20MHz 채널과 주 20MHz 채널의 결합을 통해 통신을 위해 40MHz 폭의 채널을 사용하여 40MHz 폭의 채널을 형성할 수 있다.
초고처리량(Very High Throughput; VHT) STA들은 20MHz, 40MHz, 80MHz 및/또는 160MHz 폭의 채널들을 지원할 수 있다. 40MHz 및/또는 80MHz 채널들은 연속적인 20MHz 채널들을 결합함으로써 형성될 수 있다. 160MHz 채널은 8개의 연속적인 20MHz 채널을 결합함으로써 또는 80+80 구성이라고 지칭될 수 있는 2개의 비연속적인 80MHz 채널을 결합함으로써 형성될 수 있다. 80+80 구성의 경우, 데이터는 채널 인코딩 후에 데이터를 2개의 스트림으로 분할할 수 있는 세그먼트 파서를 통해 전달될 수 있다. IFFT(Inverse Fast Fourier Transform) 프로세싱 및 시간 도메인 프로세싱이 각각의 스트림에 대해 개별적으로 행해질 수 있다. 스트림들은 2개의 80MHz 채널에 매핑될 수 있고, 데이터는 송신 STA에 의해 송신될 수 있다. 수신 STA의 수신기에서, 80+80 구성에 대해 전술한 동작이 반전될 수 있고, 결합된 데이터는 매체 액세스 제어(Medium Access Control; MAC)에 송신될 수 있다.
802.11af 및 802.11ah는 서브 1GHz 동작 모드를 지원한다. 채널 동작 대역폭들 및 반송파들은 802.11n 및 802.11ac에서 사용되는 것들에 비해 802.11af 및 802.11ah에서 감소된다. 802.11af는 TV 백색 공간(TV White Space; TVWS) 스펙트럼에서 5MHz, 10MHz 및 20MHz 대역폭들을 지원하고, 802.11ah는 비-TVWS 스펙트럼을 사용하는 1MHz, 2MHz, 4MHz, 8MHz 및 16MHz 대역폭들을 지원한다. 대표적 실시예에 따르면, 802.11ah는 매크로 커버리지 영역 내의 MTC 디바이스들과 같은 미터 유형 제어/기계 유형 통신을 지원할 수 있다. MTC 디바이스들은 소정 능력들 예를 들어, 소정의 그리고/또는 제한된 대역폭들에 대한 지원(예컨대, 그것들만의 지원)을 포함하는 제한된 능력들을 가질 수 있다. MTC 디바이스들은 (예컨대, 매우 긴 배터리 수명을 유지하기 위해) 문턱값 위의 배터리 수명을 갖는 배터리를 포함할 수 있다.
예를 들어, 802.11n, 802.11ac, 802.11af 및 802.11ah와 같은 다수의 채널 및 채널 대역폭을 지원할 수 있는 WLAN 시스템들은 주 채널로서 지정될 수 있는 채널을 포함한다. 주 채널은 BSS 내의 모든 STA들에 의해 지원되는 가장 큰 공통 동작 대역폭과 동일한 대역폭을 가질 수 있다. 주 채널의 대역폭은 BSS에서 동작하는 모든 STA들 중에서 가장 작은 대역폭 동작 모드를 지원하는 STA에 의해 설정 및/또는 제한될 수 있다. 802.11ah의 예에서, 주 채널은 AP 및 BSS 내의 다른 STA들이 2MHz, 4MHz, 8MHz, 16MHz 및/또는 다른 채널 대역폭 동작 모드들을 지원하더라도 1MHz 모드를 지원하는(예컨대, 오직 지원하는) STA들(예컨대, MTC 유형 디바이스들)에 대해 1MHz 폭일 수 있다. 반송파 감지 및/또는 네트워크 할당 벡터(Network Allocation Vector; NAV) 설정들은 주 채널의 상태에 의존할 수 있다. 주 채널이 예를 들어, STA(1MHz 동작 모드만을 지원함)의 AP로의 송신으로 인해 사용 중인 경우, 전체 가용 주파수 대역들은 주파수 대역들의 대부분이 유휴 상태로 유지되고 사용 가능할 수 있더라도 사용 중인 것으로 간주될 수 있다.
미국에서, 802.11ah에 의해 사용될 수 있는 가용 주파수 대역들은 902MHz 내지 928MHz이다. 한국에서, 가용 주파수 대역들은 917.5MHz 내지 923.5MHz이다. 일본에서, 가용 주파수 대역들은 916.5MHz 내지 927.5MHz이다. 802.11ah에 대해 사용 가능한 총 대역폭은 국가 코드에 따라 6MHz 내지 26MHz이다.
도 34d는 한 실시예에 따른 RAN(3413)과 CN(3415)을 도시하는 시스템도이다. 전술한 바와 같이, RAN(3413)은 에어 인터페이스(3416)를 통해 WTRU들(3402a, 3402b, 3402c)과 통신하기 위해 NR 라디오 기술을 사용할 수 있다. RAN(3413)은 또한 CN(3415)과 통신할 수 있다.
RAN(3413)은 gNB(3480a, 3480b, 3480c)를 포함할 수 있지만, RAN(3413)은 한 실시예와 여전히 부합하면서 임의의 수의 gNB를 포함할 수도 있다는 것이 인식될 것이다. gNB들(3480a, 3480b, 3480c) 각각은 에어 인터페이스(3416)를 통해 WTRU들(3402a, 3402b, 3402c)과 통신하기 위한 하나 이상의 트랜시버를 포함할 수 있다. 하나의 실시예에서, gNB들(3480a, 3480b, 3480c)은 MIMO 기술을 구현할 수 있다. 예를 들어, gNB들(3480a, 3480b)은 gNB들(3480a, 3480b, 3480c)에 신호들을 송신하고 그리고/또는 그들로부터 신호들을 수신하기 위해 빔포밍을 사용할 수 있다. 따라서, gNB(3480a)는 예를 들어, WTRU(3402a)에 무선 신호들을 송신하고 그리고/또는 그로부터 무선 신호들을 수신하기 위해 다수의 안테나를 사용할 수 있다. 실시예에서, gNB들(3480a, 3480b, 3480c)은 반송파 집성 기술을 구현할 수 있다. 예를 들어, gNB(3480a)는 다수의 컴포넌트 반송파를 WTRU(3402a)에 송신할 수 있다(도시되지 않음). 이러한 컴포넌트 반송파들의 서브세트는 비인가 스펙트럼 상에 있을 수 있는 반면, 나머지 컴포넌트 반송파들은 인가 스펙트럼 상에 있을 수 있다. 실시예에서, gNB들(3480a, 3480b, 3480c)은 CoMP(Coordinated Multi-Point) 기술을 구현할 수 있다. 예를 들어, WTRU(102a)는 gNB(3480a) 및 gNB(3480b)(및/또는 gNB(3480c))로부터 협력 송신들을 수신할 수 있다.
WTRU들(3402a, 3402b, 3402c)은 확장가능 뉴머롤로지(scalable numerology)와 연관된 송신들을 사용하여 gNB들(3480a, 3480b, 3480c)과 통신할 수 있다. 예를 들어, OFDM 심벌 간격 및/또는 OFDM 서브반송파 간격은 상이한 송신들, 상이한 셀들, 및/또는 무선 송신 스펙트럼의 상이한 부분들에 대해 변할 수 있다. WTRU들(3402a, 3402b, 3402c)은 (예컨대, 변하는 수의 OFDM 심벌들 및/또는 지속적인 변하는 절대 시간 길이들을 포함하는) 다양한 또는 확장가능 길이들의 서브프레임 또는 송신 시간 간격(transmission time interval; TTI)들을 사용하여 gNB들(3480a, 3480b, 3480c)과 통신할 수 있다.
gNB들(3480a, 3480b, 3480c)은 독립형 구성 및/또는 비독립형 구성에서 WTRU들(3402a, 3402b, 3402c)과 통신하도록 구성될 수 있다. 독립형 구성에서, WTRU들(3402a, 3402b, 3402c)은 (예컨대, eNode B들(3460a, 3460b, 3460c)과 같은) 다른 RAN들에 또한 액세스하지 않고 gNB들(3480a, 3480b, 3480c)과 통신할 수 있다. 독립형 구성에서, WTRU들(3402a, 3402b, 3402c)은 이동성 앵커 포인트로서 gNB들(3480a, 3480b, 3480c) 중 하나 이상을 사용할 수 있다. 독립형 구성에서, WTRU들(3402a, 3402b, 3402c)은 비인가 대역 내의 신호들을 사용하여 gNB들(3480a, 3480b, 3480c)과 통신할 수 있다. 비독립형 구성에서, WTRU들(3402a, 3402b, 3402c)은 예를 들어, eNode B들(3460a, 3460b, 3460c)과 같은 또 다른 RAN과 또한 통신하면서/그에 접속하면서 gNB들(3480a, 3480b, 3480c)과 통신할/그것에 접속할 수 있다. 예를 들어, WTRU들(3402a, 3402b, 3402c)은 하나 이상의 gNB(3480a, 3480b, 3480c) 및 하나 이상의 eNode B(3460a, 3460b, 3460c)와 실질적으로 동시에 통신하기 위해 DC 원리들을 구현할 수 있다. 비독립형 구성에서, eNode B들(3460a, 3460b, 3460c)은 WTRU들(3402a, 3402b, 3402c)에 대한 이동성 앵커로서 역할할 수 있고, gNB들(3480a, 3480b, 3480c)은 WTRU들(3402a, 3402b, 3402c)을 서비스하기 위한 추가적인 커버리지 및/또는 처리량을 제공할 수 있다.
gNB들(3480a, 3480b, 3480c) 각각은 특정의 셀(도시되지 않음)과 연관될 수 있고, 무선 자원 관리 결정들, 핸드오버 결정들, UL 및/또는 DL에서의 사용자들의 스케줄링, 네트워크 슬라이싱의 지원, 이중 접속성, NR과 E-UTRA 사이의 연동, 사용자 평면 데이터의 사용자 평면 기능(User Plane Function; UPF)(3484a, 3484b)으로의 라우팅, 제어 평면 정보의 액세스 및 이동성 관리 기능(Access and Mobility Management Function; AMF)(3482a, 3482b)으로의 라우팅 등을 핸들링하도록 구성될 수 있다. 도 34d에 도시된 바와 같이, gNB들(3480a, 3480b, 3480c)은 Xn 인터페이스를 통해 서로 통신할 수 있다.
도 34d에 도시된 CN(3415)은 적어도 하나의 AMF(3482a, 3482b), 적어도 하나의 UPF(3484a, 3484b), 적어도 하나의 세션 관리 기능(Session Management Function; SMF)(3483a, 3483b), 및 가능하게는 데이터 네트워크(Data Network; DN)(3485a, 3485b)를 포함할 수 있다. 전술한 요소들 각각이 CN(3415)의 일부로서 묘사되지만, 이 요소들 중 임의의 것이 CN 운영자 이외의 엔티티에 의해 소유되고 그리고/또는 운영될 수 있다는 것이 이해될 것이다.
AMF(3482a, 3482b)는 N2 인터페이스를 통해 RAN(3413) 내의 gNB들(3480a, 3480b, 3480c) 중 하나 이상에 접속될 수 있고, 제어 노드로서 역할을 할 수 있다. 예를 들어, AMF(3482a, 3482b)는 WTRU들(3402a, 3402b, 3402c)의 사용자들의 인증, 네트워크 슬라이싱(예컨대, 상이한 요건들을 갖는 상이한 프로토콜 데이터 유닛(Protocol Data Unit; PDU) 세션들의 핸들링)에 대한 지원, 특정의 SMF(3483a, 3483b)의 선택, 등록 영역의 관리, 비액세스 계층(non-access stratum; NAS) 시그널링의 종료, 이동성 관리 등을 담당할 수 있다. 네트워크 슬라이싱은 WTRU들(3402a, 3402b, 3402c)에 의해 사용되는 서비스들의 유형들에 기초하여 WTRU들(3402a, 3402b, 3402c)에 대한 CN 지원을 맞춤화하기 위해 AMF(3482a, 3482b)에 의해 사용될 수 있다. 예를 들어, URLLC(ultra-reliable low latency communication) 액세스에 의존하는 서비스들, eMBB(enhanced mobile(예컨대, massive mobile) broadband) 액세스에 의존하는 서비스들, MTC(machine type communication) 액세스에 대한 서비스들 등과 같은 상이한 사용 사례들에 대해 상이한 네트워크 슬라이스들이 확립될 수 있다. AMF(3462)는 RAN(3413)과, 예를 들어, LTE, LTE-A, LTE-A Pro 및/또는 예를 들어, WiFi와 같은 비-3GPP 액세스 기술들과 같은 다른 라디오 기술들을 사용하는 다른 RAN들(도시되지 않음) 사이에서 스위칭하기 위한 제어 평면 기능을 제공할 수 있다.
SMF(3483a, 3483b)는 N11 인터페이스를 통해 CN(3415) 내의 AMF(3482a, 3482b)에 접속될 수 있다. SMF(3483a, 3483b)는 또한 N4 인터페이스를 통해 CN(3415) 내의 UPF(3484a, 3484b)에 접속될 수 있다. SMF(3483a, 3483b)는 UPF(3484a, 3484b)를 선택 및 제어하고, UPF(3484a, 3484b)를 통한 트래픽의 라우팅을 구성할 수 있다. SMF(3483a, 3483b)는 UE IP 어드레스를 관리하고 할당하는 것, PDU 세션들을 관리하는 것, 정책 시행 및 QoS를 제어하는 것, 다운링크 데이터 통지들을 제공하는 것 등과 같은 다른 기능들을 수행할 수 있다. PDU 세션 유형은 IP 기반, 비-IP 기반, 이더넷 기반 등일 수 있다.
UPF(3484a, 3484b)는 WTRU들(3402a, 3402b, 3402c)과 IP 활성화 디바이스들 사이의 통신을 용이하게 하기 위해, 인터넷(3410)과 같은 패킷 교환 네트워크들에 대한 액세스를 WTRU들(3402a, 3402b, 3402c)에 제공할 수 있는 N3 인터페이스를 통해 RAN(3413) 내의 gNB들(3480a, 3480b, 3480c) 중 하나 이상에 접속될 수 있다. UPF(3484, 3484b)는 패킷들을 라우팅 및 포워딩하는 것, 사용자 평면 정책들을 시행하는 것, 멀티-홈 PDU 세션들을 지원하는 것, 사용자 평면 QoS를 핸들링하는 것, 다운링크 패킷들을 버퍼링하는 것, 이동성 앵커링을 제공하는 것 등과 같은 다른 기능들을 수행할 수 있다.
CN(3415)은 다른 네트워크들과의 통신을 용이하게 할 수 있다. 예를 들어, CN(3415)은 CN(3415)과 PSTN(3408) 사이의 인터페이스로서 역할을 하는 IP 게이트웨이(예컨대, IMS(IP multimedia subsystem) 서버)를 포함할 수 있거나 그와 통신할 수 있다. 또한, CN(3415)은 다른 서비스 제공자들에 의해 소유되고 그리고/또는 운영되는 다른 유선 및/또는 무선 네트워크들을 포함할 수 있는 다른 네트워크들(3412)에 대한 액세스를 WTRU들(3402a, 3402b, 3402c)에 제공할 수 있다. 하나의 실시예에서, WTRU들(3402a, 3402b, 3402c)은 UPF(3484a, 3484b)에 대한 N3 인터페이스 및 UPF(3484a, 3484b)와 DN(3485a, 3485b) 사이의 N6 인터페이스를 통해 UPF(3484a, 3484b)를 통해 로컬 데이터 네트워크(DN)(3485a, 3485b)에 접속될 수 있다.
도 34a 내지 도 34d, 및 도 34a 내지 도 34d의 대응하는 설명을 고려할 때, WTRU(3402a-d), 기지국(3414a-b), eNode-B(3460a-c), MME(3462), SGW(3464), PGW(3466), gNB(3480a-c), AMF(3482a-ab), UPF(3484a-b), SMF(3483a-b), DN(3485a-b) 및/또는 본 명세서에 설명된 임의의 다른 디바이스(들) 중 하나 이상과 관련하여 본 명세서에 설명된 기능들 중 하나 이상 또는 전부는 하나 이상의 에뮬레이션 디바이스(도시되지 않음)에 의해 수행될 수 있다. 에뮬레이션 디바이스들은 본 명세서에 설명된 기능들 중 하나 이상 또는 전부를 에뮬레이션하도록 구성된 하나 이상의 디바이스일 수 있다. 예를 들어, 에뮬레이션 디바이스들은 다른 디바이스들을 테스트하고 그리고/또는 네트워크 및/또는 WTRU 기능들을 시뮬레이션하기 위해 사용될 수 있다.
에뮬레이션 디바이스들은 실험실 환경 및/또는 운영자 네트워크 환경에서 다른 디바이스들의 하나 이상의 테스트를 구현하도록 설계될 수 있다. 예를 들어, 하나 이상의 에뮬레이션 디바이스는 통신 네트워크 내의 다른 디바이스들을 테스트하기 위해 유선 및/또는 무선 통신 네트워크의 일부로서 완전히 또는 부분적으로 구현 및/또는 배치되면서 하나 이상의 또는 모든 기능들을 수행할 수 있다. 하나 이상의 에뮬레이션 디바이스는, 유선 및/또는 무선 통신 네트워크의 일부로서 일시적으로 구현되면서/배치되면서, 하나 이상의, 또는 모든 기능을 수행할 수도 있다. 에뮬레이션 디바이스는 테스트를 위해 또 다른 디바이스에 직접 결합될 수 있고 그리고/또는 OTA(over-the-air) 무선 통신을 사용하여 테스트를 수행할 수 있다.
하나 이상의 에뮬레이션 디바이스는 유선 및/또는 무선 통신 네트워크의 일부로서 구현/배치되지 않으면서 모든 기능들을 포함하는 하나 이상의 기능을 수행할 수 있다. 예를 들어, 에뮬레이션 디바이스들은 하나 이상의 컴포넌트의 테스트를 구현하기 위해 테스트 실험실 및/또는 배치되지 않은(예컨대, 테스트) 유선 및/또는 무선 통신 네트워크에서의 테스트 시나리오에서 사용될 수 있다. 하나 이상의 에뮬레이션 디바이스는 테스트 기기일 수도 있다. RF 회로(예컨대, 하나 이상의 안테나를 포함할 수 있음)를 통한 직접 RF 결합 및/또는 무선 통신이 데이터를 송신 및/또는 수신하기 위해 에뮬레이션 디바이스들에 의해 사용될 수 있다.
HEVC 표준은 이전 세대의 비디오 코딩 표준인 H.264/MPEG AVC와 비교하여 동등한 지각 품질을 위해 약 50%의 비트 송신율 절감을 제공한다. HEVC 표준이 이전 표준에 비해 상당한 코딩 개선 사항을 제공하지만 추가 코딩 도구를 사용하여 추가적인 코딩 효율성 개선이 달성될 수 있다. JVET(Joint Video Exploration Team)는 예를 들어, 이러한 코딩 효율성 향상을 제공하기 위해 VVC(Versatile Video Coding)로 명명된 차세대 비디오 코딩 표준을 개발하는 프로젝트를 시작했고, VTM(VVC test model)이라고 하는 참조 소프트웨어 코드베이스는 VVC 표준의 참조 구현을 시연하기 위해 확립되었다. 새로운 코딩 도구의 평가를 용이하게 하기 위해, 벤치마크 세트(benchmark set; BMS)라는 또 다른 참조 소프트웨어 기반도 생성되었다. BMS 코드베이스에서, 더 높은 코딩 효율성과 적당한 구현 복잡성을 제공하는 추가 코딩 도구 목록이 VTM 위에 포함되며 VVC 표준화 프로세스 동안 유사한 코딩 기술을 평가할 때 벤치마크로 사용된다. BMS-2.0에 통합된 JEM 코딩 도구(예컨대, 4x4 NSST(non-separable secondary transform), GBi(generalized bi-prediction), BIO(bi-directional optical flow), DMVR(decoder-side motion vector refinement) 및 CPR(current picture referencing)) 외에도, BMS 코드베이스는 트렐리스 코딩된 양자화 도구(trellis coded quantization tool)를 포함한다.
대표적인 실시예에 따른 데이터 프로세싱 시스템 및 방법은 메모리 디바이스에 포함된 명령어의 시퀀스를 실행하는 하나 이상의 프로세서에 의해 수행될 수 있다. 이러한 명령어는 예를 들어, 2차 데이터 저장 디바이스(들)와 같은 다른 컴퓨터 판독 가능 매체로부터 메모리 디바이스로 판독될 수 있다. 메모리 디바이스에 포함된 명령어들의 시퀀스의 실행은 프로세서가 예를 들어, 위에서 설명된 바와 같이 동작하게 한다. 대안적인 실시예에서, 하드와이어 회로는 하나 이상의 실시예를 구현하기 위해 소프트웨어 명령어 대신에 또는 이와 함께 사용될 수 있다. 이러한 소프트웨어는 로봇 지원/장치(robotic assistance/apparatus; RAA) 내에 그리고/또는 또 다른 모바일 디바이스에 원격으로 포함된(housed) 프로세서에서 실행될 수 있다. 후자의 경우, 데이터는 RAA 또는 센서를 포함하는 다른 모바일 디바이스와 위에서 설명한 바와 같이 스케일 추정 및 보상을 수행하는 소프트웨어를 실행하는 프로세서를 포함하는 원격 디바이스 사이에서 유선 또는 무선으로 전송될 수 있다. 다른 대표적인 실시예에 따르면, 위치 측정(localization)과 관련하여 위에서 설명된 프로세싱 중 일부는 센서/카메라를 포함하는 디바이스에서 수행될 수 있는 반면, 나머지 프로세싱은 센서/카메라를 포함하는 디바이스로부터 부분적으로 프로세싱된 데이터를 수신한 후 제2 디바이스에서 수행될 수 있다.
특징들 및 요소들이 위에서 특정 조합들로 설명되었지만, 당업자는 각각의 특징 또는 요소가 단독으로 또는 다른 특징들 및 요소들과의 임의의 조합으로 사용될 수 있다는 것을 이해할 것이다. 또한, 본 명세서에 설명된 방법들은 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독가능 매체 내에 통합된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 비일시적 컴퓨터 판독가능 저장 매체의 예들은 판독 전용 메모리(read only memory; ROM), 랜덤 액세스 메모리(random access memory; RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스들, 예를 들어, 내장형 하드 디스크들 및 착탈식 디스크들과 같은 자기 매체들, 광자기 매체들, 및 예를 들어, CD-ROM 디스크들 및 디지털 다기능 디스크들(DVD들)과 같은 광학 매체들을 포함하지만, 이에 한정되지 않는다. 소프트웨어와 연관된 프로세서는 WTRU(3402), UE, 단말기, 기지국, RNC, 또는 임의의 호스트 컴퓨터에서 사용하기 위한 라디오 주파수 트랜시버를 구현하는 데 사용될 수 있다.
더욱이, 위에서 설명된 실시예에서, 프로세싱 플랫폼, 컴퓨팅 시스템, 컨트롤러, 및 프로세서를 포함하는 다른 디바이스가 언급된다. 이러한 디바이스는 적어도 하나의 중앙 처리 디바이스("CPU")와 메모리를 포함할 수 있다. 컴퓨터 프로그래밍 분야의 당업자의 관행에 따라, 동작 또는 명령어의 행위(acts) 및 상징적 표현에 대한 참조는 다양한 CPU 및 메모리에 의해 수행될 수 있다. 이러한 행위 및 동작 또는 명령어는 "실행됨", "컴퓨터 실행됨" 또는 "CPU 실행됨"으로 지칭될 수 있다.
당업자는 행위 및 상징적으로 표현된 동작 또는 명령어가 CPU에 의한 전기 신호의 조작을 포함한다는 것을 이해할 것이다. 전기 시스템은 결과적으로 전기 신호의 변환 또는 감소를 야기할 수 있는 데이터 비트와 메모리 시스템의 메모리 위치에서 데이터 비트를 유지하여 CPU의 동작 및 기타 신호 프로세싱을 재구성하거나 그렇지 않으면 변경할 수 있는 데이터 비트를 나타낸다. 데이터 비트가 유지되는 메모리 위치는, 데이터 비트에 대응하거나 데이터 비트를 나타내는 특정 전기적, 자기적, 광학적 또는 유기적 특성을 갖는 물리적 위치이다. 대표적인 실시예는 위에서 언급한 플랫폼 또는 CPU에 제한되지 않으며 다른 플랫폼 및 CPU가 제공된 방법을 지원할 수 있음을 이해해야 한다.
데이터 비트는 또한 CPU에 의해 판독 가능한 자기 디스크, 광 디스크 및 기타 휘발성(예컨대, 랜덤 액세스 메모리("RAM")) 또는 비휘발성(예컨대, 판독 전용 메모리("ROM")) 대용량 저장 시스템을 포함하는 컴퓨터 판독 가능 매체에 유지될 수 있다. 컴퓨터 판독가능 매체는 프로세싱 시스템 상에 독점적으로 존재하거나 프로세싱 시스템에 대해 로컬 또는 원격일 수 있는 다수의 상호접속된 프로세싱 시스템들 사이에 분산되어 있는 협력 또는 상호접속된 컴퓨터 판독가능 매체를 포함할 수 있다. 대표적인 실시예는 위에서 언급한 메모리로 제한되지 않으며 다른 플랫폼 및 메모리가 설명된 방법을 지원할 수 있음을 이해해야 한다. 대표적인 실시예는 위에서 언급한 플랫폼 또는 CPU에 제한되지 않으며 다른 플랫폼 및 CPU가 제공된 방법을 지원할 수 있음을 이해해야 한다.
예시적인 실시예에서, 여기에 설명된 동작, 프로세스 등 중 임의의 것은 컴퓨터 판독 가능 매체에 저장된 컴퓨터 판독 가능 명령어로서 구현될 수 있다. 컴퓨터 판독가능 명령어는 모바일 유닛의 프로세서, 네트워크 요소, 및/또는 임의의 다른 컴퓨팅 디바이스에 의해 실행될 수 있다.
시스템의 양상의 하드웨어 구현과 소프트웨어 구현 사이에는 거의 차이가 없다. 하드웨어 또는 소프트웨어의 사용은 일반적으로(항상 그런 것은 아니지만 특정 상황에서는 하드웨어와 소프트웨어 간의 선택이 중요해질 수 있음) 비용 대 효율성 절충안을 나타내는 설계 선택이다. 본원에서 설명된 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 초래될 수 있는 다양한 수단들(예컨대, 하드웨어, 소프트웨어, 및/또는 펌웨어)이 있을 수 있고, 바람직한 수단은 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 배치되는 상황과 함께 변동될 수 있다. 예를 들어, 구현자가 속도와 정확성이 가장 중요하다고 결정하면 구현자는 주로 하드웨어 및/또는 펌웨어 수단을 선택할 수 있다. 유연성이 가장 중요한 경우 구현자는 주로 소프트웨어 구현을 선택할 수 있다. 대안적으로, 구현자는 하드웨어, 소프트웨어 및/또는 펌웨어의 일부 조합을 선택할 수 있다.
전술한 상세한 설명은 블록도, 흐름도 및/또는 예를 사용하여 디바이스 및/또는 프로세스의 다양한 실시예를 설명했다. 이러한 블록도, 흐름도 및/또는 예가 하나 이상의 기능 및/또는 동작을 포함하는 한, 이러한 블록도, 흐름도, 또는 예 내의 각 기능 및/또는 동작이 광범위한 하드웨어, 소프트웨어, 펌웨어 또는 사실상 이것들의 임의의 조합에 의해 개별적으로 및/또는 집합적으로 구현될 수 있다는 것이 당업자에 의해 이해될 것이다. 적절한 프로세서(118)는 예를 들어, 범용 프로세서, 특수 목적 프로세서, 전통적인 프로세서, DSP(digital signal processor), 복수의 마이크로프로세서, DSP 코어와 연관된 하나 이상의 마이크로프로세서, 컨트롤러, 마이크로컨트롤러, ASIC(Application Specific Integrated Circuit), ASSP(Application Specific Standard Product), FPGA(Field Programmable Gate Arrays) 회로, 임의의 다른 유형의 IC(integrated circuit), 및/또는 상태 기계를 포함한다.
특징들 및 요소들이 위에서 특정 조합들로 제공되었지만, 이 분야의 통상의 기술자는 각각 특징 또는 요소가 단독으로 또는 다른 특징들 및 요소들과의 임의의 조합으로 사용될 수 있다는 것을 이해할 것이다. 본 개시는 본 출원에서 설명된 특정 실시예의 견지에만 제한되지 말아야 하고, 다양한 양상의 예시로서 의도된다. 많은 수정 및 변화가 본 발명의 정신 및 범위로부터 이탈하지 않으면서 수행될 수 있으며, 이러한 수정 및 변화는 당업자에게 명백할 것이다. 본 출원의 설명에 사용된 어떠한 요소, 행위(act) 또는 지시도 명시적으로 실시예에 중요하거나 필수적인 것으로 제공되지 않는 한 그렇게 해석되어서는 안 된다. 본 명세서에서 열거된 것들에 추가해서, 본 발명 개시의 범위 내에 있는 기능적 등가인 방법 및 장치가 전술된 설명으로부터 당업자에게 명백할 것이다. 이러한 수정 및 변화는 첨부된 청구항들의 정신 내에 속하는 것으로 의도된다. 본 발명 개시는 첨부된 청구항들에게 부여되는 등가물들의 완전한 범위와 함께, 이러한 청구항들의 견지에서만 제한될 것이다. 본 개시는 특정 방법 또는 시스템으로 제한되지 않는다는 것을 이해해야 한다.
본 명세서에서 사용되는 용어는 단지 특정 실시예를 설명하는 목적을 위한 것이고, 제한하는 것으로 의도되지 않는다. 본 명세서에서 사용되는 바와 같이, 본 명세서에서 언급될 때, 용어 "스테이션(station)" 및 그 약어 "STA", "사용자 장비" 및 그 약어 "UE"는 (i) 아래에 설명된 것과 같은 무선 송신 및/또는 수신 유닛(wireless transmit and/or receive unit; WTRU); (ii) 아래에 설명된 것과 같은 WTRU의 다수의 실시예 중 임의의 것; (iii) 특히 아래에 설명된 것과 같은 WTRU의 일부 또는 모든 구조 및 기능으로 구성된 무선 가능 및/또는 유선 가능(예컨대, 테더링 가능) 디바이스; (iv) 아래에 설명된 것과 같은 WTRU의 모든 구조 및 기능보다 적게 구성된 무선 가능 및/또는 유선 가능 디바이스; 또는 (v) 기타 등등을 의미할 수 있다. 여기에 인용된 임의의 UE를 나타낼 수 있는 예시적인 WTRU의 세부사항은 도 34a 내지 34d와 관련하여 아래에 제공된다.
특정의 대표적인 실시예에서, 여기에 설명된 특허 대상(subject matter)의 여러 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(digital signal processor), 및/또는 기타 집적 형식을 통해 구현될 수 있다. 그러나, 당업자는 여기에 개시된 실시예의 일부 양상이 전체적으로 또는 부분적으로, 하나 이상의 컴퓨터에서 실행되는 하나 이상의 컴퓨터 프로그램으로서(예컨대, 하나 이상의 컴퓨터 시스템에서 실행되는 하나 이상의 프로그램으로서), 하나 이상의 프로세서에서 실행되는 하나 이상의 프로그램으로서(예컨대, 하나 이상의 마이크로프로세서에서 실행되는 하나 이상의 프로그램으로서), 펌웨어로서, 또는 사실상 이것들의 임의의 조합으로서 집적 회로에서 동등하게 구현될 수 있다는 것과, 회로를 설계하고 그리고/또는 소프트웨어 및/또는 펌웨어를 위한 코드를 작성하는 것은 본 개시에 비추어 당업자의 기술 범위 내에 있다는 것을 인식할 것이다. 또한, 당업자는 여기에 설명된 특허 대상의 메커니즘이 다양한 형태로 프로그램 제품으로 배포될 수 있으며, 여기에 설명된 특허 대상의 예시적인 실시예는 분배를 실제로 수행하는 데 사용되는 특정 유형의 신호 베어링 매체에 관계없이 적용된다는 것을 인식할 것이다. 신호 전달 매체의 예는 다음을 포함하지만 이에 국한되지는 않는다: 플로피 디스크, 하드 디스크 드라이브, CD, DVD, 디지털 테이프, 컴퓨터 메모리 등과 같은 기록형 매체와, 디지털 및/또는 아날로그 통신 매체(예컨대, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등)과 같은 송신형 매체.
본 명세서에 설명된 특허 대상은 때때로 상이한 다른 컴포넌트 내에 포함되거나 이들과 접속된 상이한 컴포넌트를 예시한다. 그러한 묘사된 아키텍처는 단지 예시일 뿐이며, 실제로 동일한 기능을 달성하는 많은 다른 아키텍처가 구현될 수 있다는 것을 이해해야 한다. 개념적 의미에서 동일한 기능을 달성하기 위한 컴포넌트의 임의의 배열은 원하는 기능이 달성될 수 있도록 효과적으로 "연관"된다. 따라서, 특정 기능을 달성하기 위해 결합된 본 명세서에서의 임의의 2개의 컴포넌트는 아키텍처 또는 중간 컴포넌트와 상관없이 원하는 기능이 달성되도록 서로 "연관된" 것으로 보일 수 있다. 마찬가지로, 그렇게 연관된 임의의 두 컴포넌트는 원하는 기능을 달성하기 위해 서로 "동작 가능하게 접속된" 또는 "동작 가능하게 결합된" 것으로 또한 간주될 수 있으며, 그렇게 연관될 수 있는 임의의 2개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작 가능하게 결합 가능한" 것으로 간주될 수 있다. 동작 가능하게 결합 가능한 특정 예는 물리적으로 결합 가능하고 그리고/또는 물리적으로 상호 작용하는 컴포넌트 및/또는 무선으로 상호 작용할 수 있고 그리고/또는 무선으로 상호 작용하는 컴포넌트 및/또는 논리적으로 상호 작용하고 그리고/또는 논리적으로 상호 작용할 수 있는 컴포넌트가 포함되지만 이에 제한되지는 않다.
본 명세서에 기재된 실질적으로 임의의 복수 및/또는 단수 용어는, 문맥 및/또는 응용에 적절한 대로, 복수에서 단수로 그리고/또는 단수에서 복수로 번역될 수 있다. 다양한 단수/복수 순열들(permutations)이 명료성을 위해 본 명세서에서 명확히 기재될 수 있다.
일반적으로, 본 명세서에서 그리고 특히 첨부된 청구항들(예컨대, 첨부된 청구항들의 본체부들)에서 사용되는 용어는 일반적으로, "열린(open)" 용어들이라고 의도된다(예를 들면, 용어 "포함하는"은 "포함하지만 이러한 포함에만 제한되지는 않는" 것으로 해석되어야 하고, 용어 "갖는"은 "적어도 갖는"으로 해석되어야 하고, 용어 "포함한다"는 "포함하지만 이러한 포함에만 제한되지는 않는다"로 해석되어야 함)는 것을 당업자가 이해할 것이다. 특정 개수의 도입되는 청구항 기재(claim recitation)가 의도되면, 이러한 의도는 청구항에서 명시적으로 기재될 것이고, 이러한 기재가 없을 시에는 이러한 의도가 존재하지 않는다는 것을 당업자가 또한 이해할 것이다. 예를 들어, 하나의 항목만 의도하는 경우 용어, "단일" 또는 유사한 언어가 사용될 수 있다. 이해를 돕기 위해, 하기의 첨부된 청구항들 및/또는 본 명세서의 설명은 청구항 기재를 도입하기 위해 도입 문구들 "적어도 하나"와 "하나 이상"의 사용을 포함할 수 있다. 하지만, 심지어 동일 청구항이 도입 문구들 "하나 이상" 또는 "적어도 하나"와 단수형의 부정 관사들(예컨대, 단수형 부정 관사들은 "적어도 하나" 또는 "하나 이상"을 의미하도록 해석되어야함)을 포함할 때조차, 이러한 문구들의 사용은, 부정관사(단수형 관사)에 의한 청구항 기재의 도입이 이러한 도입된 청구항 기재를 포함하는 임의의 특정 청구항을 단지 하나의 이러한 기재만을 포함하는 실시예들에 제한하는 것을 의미하는 것으로 해석되지 말아야 한다. 이는 청구항 기재를 도입하기 위해 사용되는 정관사의 사용에 대해서도 마찬가지이다. 또한, 비록 특정 개수의 도입된 청구항 기재가 명시적으로 기재될지라도, 당업자는 이러한 기재가 적어도 기재된 개수를 의미하는 것으로 해석되어야 한다는 것을 인식할 것이다(예를 들면, 다른 수식어가 없이 "두 개의 기재들"의 단순한 기재는 적어도 두 개의 기재들, 또는 두 개 이상의 기재들을 의미함). 더 나아가, "A, B와, C 등 중 적어도 하나"와 유사한 규정이 사용되는 예시에서, 일반적으로 이러한 구성은, 당업자가 이 규정을 이해할 의미로 의도된다(예를 들면, "A, B, 및 C 중 적어도 하나를 갖는 시스템"은 A만, B만, C만, A와 B를 함께, A와 C를 함께, B와 C를 함께, 및/또는 A, B와 C를 함께 등을 갖는 시스템을 포함하지만, 이러한 시스템에만 제한되지는 않음). 이러한 예시에서, "A, B, 또는 C 등 중 적어도 하나"와 유사한 규정이 사용되는 예시에서, 일반적으로 이러한 구성은, 당업자가 이 규정을 이해할 의미로 의도된다(예를 들면, "A, B, 또는 C 중 적어도 하나를 갖는 시스템"은 A만, B만, C만, A와 B를 함께, A와 C를 함께, B와 C를 함께, 및/또는 A, B와 C를 함께 등을 갖는 시스템을 포함하지만, 이러한 시스템에만 제한되지는 않음). 발명의 상세한 설명, 청구항들, 또는 도면들 중 어디에 있든지 간에, 2개 이상의 대안적 용어들을 제시하는 임의의 택일적 단어 및/또는 어구는 용어들 중 하나, 용어들 중 어느 하나, 또는 용어들 둘 다를 포함하는 가능성을 고려하도록 사실상 이해되어야 함을 당업자가 또한 이해할 것이다. 예를 들면, 어구 "A 또는 B"는 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다. 또한, 본 명세서에서 사용되는 바와 같이, 용어 "~의 임의의 것" 다음에 복수의 항목 및/또는 복수의 항목 카테고리의 목록이 오는 것은, 개별적으로 또는 다른 항목 및/또는 다른 항목 범주와 함께 항목 및/또는 항목의 범주의 "임의의 것", "임의의 조합", "임의의 다수" 및/또는 "다수의 임의의 조합"을 포함하도록 의도된다. 더욱이, 본 명세서에서 사용되는 바와 같이, "세트" 또는 "그룹"이라는 용어는 0을 포함하는 임의의 수의 항목을 포함하도록 의도된다. 추가적으로, 본 명세서에서 사용된 바와 같이, 용어 "숫자"는 0을 포함하는 임의의 숫자를 포함하도록 의도된다.
또한, 개시의 특징 또는 양상이 마쿠쉬(Markush) 그룹들의 견지에서 설명되는 부분에서는, 마쿠쉬 그룹의 임의의 개별 구성부 또는 구성부들의 서브그룹의 견지에서 이러한 개시가 또한 설명된다는 것을 당업자가 인식할 것이다.
당업자가 이해하는 바와 같이, 임의의 그리고 모든 목적을 위해, 기재된 설명을 제공하는 견지에서와 같이, 본 명세서에서 개시되는 모든 범위들은 임의의 그리고 모든 가능한 서브범위들과, 이러한 서브범위들의 조합들을 또한 포함할 것이다. 임의의 나열된 범위는 동일 범위가 적어도 동일한 절반들, 1/3들, 1/4들, 1/5들, 1/10들 등으로 분할되는 것을 충분히 설명하고 가능케 하는 것으로 쉽게 인식될 것이다. 비제한적인 예로서, 여기에서 논의된 각 범위는 하위 1/3, 중간 1/3 및 상위 1/3 등으로 쉽게 분류될 수 있다. 또한, 당업자에 의해 이해되는 바와 같이 "최대", "적어도", "보다 큰", "보다 작은" 등과 같은 모든 언어는 인용된 숫자를 포함하고 위에서 논의한 바와 같이 차후에 하위 범위로 분류될 수 있는 범위를 지칭한다. 마지막으로, 당업자가 이해하는 바와 같이, 범위는 각각의 개별 구성부를 포함한다. 따라서, 예를 들면, 1 내지 3개의 셀들을 갖는 그룹은 1, 2, 또는 3개의 셀들을 갖는 그룹들을 지칭한다. 유사하게, 1 내지 5개의 셀들을 갖는 그룹은 1, 2, 3, 4, 또는 5개의 셀들 등을 갖는 그룹들을 지칭한다.
더욱이, 청구항은 제공된 순서 또는 요소로 제한되는 취지로 언급되지 않는 한 제공된 순서 또는 요소로 제한되는 것으로 해석되어서는 안 된다. 또한, 임의의 청구항에서 용어 "~을 위한 수단"의 사용은 35 U.S.C. §112, ¶6 또는 수단에 기능을 더한(means-plus-function) 청구항 형식을 원용하도록 의도되고, 용어 "~을 위한 수단"이 없는 청구항은 그렇게 의도되지 않다.
소프트웨어와 연관된 프로세서는 무선 송수신 디바이스(WTRU), 사용자 장비(UE), 단말기, 기지국, 이동성 관리 엔티티(Mobility Management Entity; MME) 또는 진화된 패킷 코어(Evolved Packet Core; EPC), 또는 임의의 호스트 컴퓨터에서 사용하기 위한 무선 주파수 트랜시버를 구현하는 데 사용될 수 있다. WTRU는 소프트웨어 정의 라디오(Software Defined Radio; SDR), 및 예를 들어, 카메라, 비디오 카메라 모듈, 비디오폰, 스피커폰, 진동 디바이스, 스피커, 마이크, 텔레비전 트랜시버, 핸즈프리 헤드셋, 키보드, 블루투스® 모듈, 주파수 변조(frequency modulated; FM) 라디오 유닛, 근거리 무선 통신(Near Field Communication; NFC) 모듈, 액정 디스플레이(liquid crystal display; LCD) 디스플레이 유닛, 유기발광다이오드(organic light-emitting diode; OLED) 디스플레이 유닛, 디지털 음악 플레이어, 미디어 플레이어, 비디오 게임 플레이어 모듈, 인터넷 브라우저 및/또는 임의의 무선 근거리 통신망(Wireless Local Area Network; WLAN) 또는 초광대역(Ultra Wide Band; UWB) 모듈과 같은 다른 컴포넌트를 포함하는, 하드웨어/소프트웨어에서 구현된 모듈들과 연계해서 사용될 수 있다.
본 개시 전반에 걸쳐, 당업자는 특정 대표적인 실시예가 대안으로 또는 다른 대표적인 실시예와 조합하여 사용될 수 있음을 이해한다.
또한, 본 명세서에 설명된 방법들은 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독가능 매체 내에 통합된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 비일시적 컴퓨터 판독가능 저장 매체의 예들은 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스들, 내장형 하드 디스크들 및 착탈식 디스크들과 같은 자기 매체들, 광자기 매체들, 및 예를 들어, CD-ROM 디스크들 및 디지털 다기능 디스크들(DVD들)과 같은 광학 매체들을 포함하지만, 이에 한정되지는 않는다. 소프트웨어와 관련하는 프로세서는, WTRU, UE, 단말기, 기지국, RNC, 또는 임의의 호스트 컴퓨터에서 사용하기 위한 무선 주파수 트랜시버를 구현하기 위해 사용될 수도 있다.

Claims (16)

  1. 비디오를 디코딩하는 방법에 있어서,
    상기 비디오의 현재 블록 ― 상기 현재 블록은 복수의 서브블록들을 포함함 ― 에 대해:
    상기 현재 블록의 서브블록의 모션 벡터를 생성하는 단계,
    상기 서브블록의 모션 벡터를 사용하여, 서브블록 기반 모션 예측 신호를 생성하는 단계,
    상기 현재 블록의 상기 서브블록과 연관된 화소 레벨 모션 벡터 차이 값들의 세트를 결정하는 단계 ― 화소 레벨 모션 벡터 차이는 상기 서브블록 내의 샘플 위치에 대해 획득된 화소 레벨 모션 벡터와 상기 서브블록의 모션 벡터 간의 차이를 나타냄 ―,
    상기 서브블록의 각각의 샘플 위치에서 상기 서브블록 기반 모션 예측 신호의 공간적 기울기(spatial gradient)들을 결정하는 단계,
    상기 결정된 화소 레벨 모션 벡터 차이 값들의 세트 및 상기 결정된 공간적 기울기들에 기초하여 상기 현재 블록에 대해 모션 예측 개선(refinement) 신호를 결정하는 단계,
    상기 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 상기 서브블록 기반 모션 예측 신호와 상기 모션 예측 개선 신호를 결합하는 단계; 및
    상기 현재 블록에 대한 예측으로서, 상기 개선된 모션 예측 신호를 사용하여 상기 비디오를 디코딩하는 단계
    를 포함하고,
    상기 현재 블록에 대한 아핀 모션 모델을 사용하여 상기 서브블록의 모션 벡터가 생성되고 상기 화소 레벨 모션 벡터 차이 값들의 세트가 결정되는 것인, 비디오를 디코딩하는 방법.
  2. 제1항에 있어서,
    상기 서브블록 기반 모션 예측 신호의 공간적 기울기들을 결정하는 단계는:
    상기 현재 블록의 하나 이상의 각각의 서브블록에 대해:
    상기 서브블록 기반 모션 예측 신호 및 상기 각각의 서브블록에 접하고 이를 둘러싸는 인접 참조 샘플들을 사용하여, 확장된 서브블록을 결정하는 단계; 및
    상기 결정된 확장된 서브블록을 사용하여, 상기 각각의 서브블록의 공간적 기울기들을 결정하여 상기 모션 예측 개선 신호를 결정하는 단계
    를 포함하는 것인, 비디오를 디코딩하는 방법.
  3. 제1항에 있어서,
    상기 화소 레벨 모션 벡터 차이 값들의 세트는, 상기 현재 블록의 서브블록에 대해 결정되고, 상기 현재 블록의 하나 이상의 추가적인 서브블록에 대한 상기 모션 예측 개선 신호를 결정하는데 사용되는 것인, 비디오를 디코딩하는 방법.
  4. 제1항에 있어서,
    상기 서브블록 기반 모션 예측 신호가 결정된 아핀 모션 모델 파라미터들을 사용하여 생성되도록, 상기 비디오의 상기 현재 블록에 대한 아핀 모션 모델 파라미터들을 결정하는 단계를 더 포함하는 비디오를 디코딩하는 방법.
  5. 비디오를 인코딩하는 방법에 있어서,
    상기 비디오의 현재 블록 ― 상기 현재 블록은 복수의 서브블록들을 포함함 ― 에 대해:
    상기 현재 블록의 서브블록의 모션 벡터를 생성하는 단계,
    상기 서브블록의 모션 벡터를 사용하여, 서브블록 기반 모션 예측 신호를 생성하는 단계,
    상기 현재 블록의 서브블록과 연관된 화소 레벨 모션 벡터 차이 값들의 세트를 결정하는 단계 ― 화소 레벨 모션 벡터 차이는 상기 서브블록 내의 샘플 위치에 대해 획득된 화소 레벨 모션 벡터와 상기 서브블록의 모션 벡터 간의 차이를 나타냄 ―,
    상기 서브블록의 각각의 샘플 위치에서 상기 서브블록 기반 모션 예측 신호의 공간적 기울기(spatial gradient)들을 결정하는 단계,
    상기 결정된 화소 레벨 모션 벡터 차이 값들의 세트 및 상기 결정된 공간적 기울기들에 기초하여 상기 현재 블록에 대해 모션 예측 개선(refinement) 신호를 결정하는 단계,
    상기 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 상기 서브블록 기반 모션 예측 신호와 상기 모션 예측 개선 신호를 결합하는 단계; 및
    상기 현재 블록에 대한 예측으로서, 상기 개선된 모션 예측 신호를 사용하여 상기 비디오를 인코딩하는 단계
    를 포함하고,
    상기 현재 블록에 대한 아핀 모션 모델을 사용하여 상기 서브블록의 모션 벡터가 생성되고 상기 화소 레벨 모션 벡터 차이 값들의 세트가 결정되는 것인, 비디오를 인코딩하는 방법.
  6. 제5항에 있어서,
    상기 서브블록 기반 모션 예측 신호의 공간적 기울기들을 결정하는 단계는:
    상기 현재 블록의 하나 이상의 각각의 서브블록에 대해:
    상기 서브블록 기반 모션 예측 신호 및 상기 각각의 서브블록에 접하고 이를 둘러싸는 인접 참조 샘플들을 사용하여, 확장된 서브블록을 결정하는 단계; 및
    상기 결정된 확장된 서브블록을 사용하여, 상기 각각의 서브블록의 공간적 기울기들을 결정하여 상기 모션 예측 개선 신호를 결정하는 단계
    를 포함하는 것인, 비디오를 인코딩하는 방법.
  7. 제5항에 있어서,
    상기 화소 레벨 모션 벡터 차이 값들의 세트는, 상기 현재 블록의 서브블록에 대해 결정되고, 상기 현재 블록의 하나 이상의 추가적인 서브블록에 대한 상기 모션 예측 개선 신호를 결정하는데 사용되는 것인, 비디오를 인코딩하는 방법.
  8. 제5항에 있어서,
    상기 서브블록 기반 모션 예측 신호가 결정된 아핀 모션 모델 파라미터들을 사용하여 생성되도록, 상기 비디오의 상기 현재 블록에 대한 아핀 모션 모델 파라미터들을 결정하는 단계를 더 포함하는 비디오를 인코딩하는 방법.
  9. 비디오를 디코딩하도록 구성된 디코더에 있어서,
    프로세서를 포함하고,
    상기 프로세서는, 상기 비디오의 현재 블록 ― 상기 현재 블록은 복수의 서브블록들을 포함함 ―에 대해:
    상기 현재 블록의 서브블록의 모션 벡터를 생성하고,
    상기 서브블록의 모션 벡터를 사용하여, 서브블록 기반 모션 예측 신호를 생성하고,
    상기 현재 블록의 서브블록과 연관된 화소 레벨 모션 벡터 차이 값들의 세트를 결정하고 ― 화소 레벨 모션 벡터 차이는 상기 서브블록 내의 샘플 위치에 대해 획득된 화소 레벨 모션 벡터와 상기 서브블록의 모션 벡터 간의 차이를 나타냄 ―,
    상기 서브블록의 각각의 샘플 위치에서 상기 서브블록 기반 모션 예측 신호의 공간적 기울기(spatial gradient)들을 결정하고,
    상기 화소 레벨 모션 벡터 차이 값들의 세트 및 상기 결정된 공간적 기울기들에 기초하여 상기 현재 블록에 대해 모션 예측 개선(refinement) 신호를 결정하고,
    상기 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 상기 서브블록 기반 모션 예측 신호와 상기 모션 예측 개선 신호를 결합하고;
    상기 현재 블록에 대한 예측으로서, 상기 개선된 모션 예측 신호를 사용하여 상기 비디오를 디코딩하도록
    구성되고,
    상기 프로세서는, 상기 현재 블록에 대한 아핀 모션 모델을 사용하여, 상기 서브블록의 모션 벡터를 생성하고 상기 화소 레벨 모션 벡터 차이 값들의 세트를 결정하도록 구성되는 것인, 디코더.
  10. 제9항에 있어서,
    상기 프로세서는:
    상기 현재 블록의 하나 이상의 각각의 서브블록에 대해:
    상기 서브블록 기반 모션 예측 신호 및 상기 각각의 서브블록에 접하고 이를 둘러싸는 인접 참조 샘플들을 사용하여, 확장된 서브블록을 결정하고;
    상기 결정된 확장된 서브블록을 사용하여, 상기 각각의 서브블록의 공간적 기울기들을 결정하여 상기 모션 예측 개선 신호를 결정하도록
    구성되는 것인, 디코더.
  11. 제9항에 있어서,
    상기 프로세서는, 상기 현재 블록의 하나 이상의 추가적인 서브블록에 대한 상기 모션 예측 개선 신호를 결정하는데 사용되는 상기 화소 레벨 모션 벡터 차이 값들의 세트를 상기 현재 블록의 서브블록에 대해 결정하도록 구성되는 것인, 디코더.
  12. 제9항에 있어서,
    상기 프로세서는, 상기 서브블록 기반 모션 예측 신호가 결정된 아핀 모션 모델 파라미터들을 사용하여 생성되도록, 상기 비디오의 상기 현재 블록에 대한 아핀 모션 모델 파라미터들을 결정하도록 구성되는 것인, 디코더.
  13. 비디오를 인코딩하도록 구성된 인코더에 있어서,
    프로세서를 포함하고,
    상기 프로세서는, 상기 비디오의 현재 블록 ― 상기 현재 블록은 복수의 서브블록들을 포함함 ―에 대해:
    상기 현재 블록의 서브블록의 모션 벡터를 생성하고,
    상기 서브블록의 모션 벡터를 사용하여, 서브블록 기반 모션 예측 신호를 생성하고,
    상기 현재 블록의 서브블록과 연관된 화소 레벨 모션 벡터 차이 값들의 세트를 결정하고 ― 화소 레벨 모션 벡터 차이는 상기 서브블록 내의 샘플 위치에 대해 획득된 화소 레벨 모션 벡터와 상기 서브블록의 모션 벡터 간의 차이를 나타냄 ―,
    상기 서브블록의 각각의 샘플 위치에서 상기 서브블록 기반 모션 예측 신호의 공간적 기울기(spatial gradient)들을 결정하고,
    상기 화소 레벨 모션 벡터 차이 값들의 세트 및 상기 결정된 공간적 기울기들에 기초하여 상기 현재 블록에 대해 모션 예측 개선(refinement) 신호를 결정하고,
    상기 현재 블록에 대해 개선된 모션 예측 신호를 생성하기 위해 상기 서브블록 기반 모션 예측 신호와 상기 모션 예측 개선 신호를 결합하고;
    상기 현재 블록에 대한 예측으로서, 상기 개선된 모션 예측 신호를 사용하여 상기 비디오를 인코딩하도록
    구성되고,
    상기 프로세서는, 상기 현재 블록에 대한 아핀 모션 모델을 사용하여, 상기 서브블록의 모션 벡터를 생성하고 상기 화소 레벨 모션 벡터 차이 값들의 세트를 결정하도록 구성되는 것인, 인코더.
  14. 제13항에 있어서,
    상기 프로세서는:
    상기 현재 블록의 하나 이상의 각각의 서브블록에 대해:
    상기 서브블록 기반 모션 예측 신호 및 상기 각각의 서브블록에 접하고 이를 둘러싸는 인접 참조 샘플들을 사용하여, 확장된 서브블록을 결정하고;
    상기 결정된 확장된 서브블록을 사용하여, 상기 각각의 서브블록의 공간적 기울기들을 결정하여 상기 모션 예측 개선 신호를 결정하도록
    구성되는 것인, 인코더.
  15. 제13항에 있어서,
    상기 프로세서는, 상기 현재 블록의 하나 이상의 추가적인 서브블록에 대한 상기 모션 예측 개선 신호를 결정하는데 사용되는 상기 화소 레벨 모션 벡터 차이 값들의 세트를 상기 현재 블록의 서브블록에 대해 결정하도록 구성되는 것인, 인코더.
  16. 제13항에 있어서,
    상기 프로세서는, 상기 서브블록 기반 모션 예측 신호가 결정된 아핀 모션 모델 파라미터들을 사용하여 생성되도록, 상기 비디오의 상기 현재 블록에 대한 아핀 모션 모델 파라미터들을 결정하도록 구성되는 것인, 인코더.
KR1020237042446A 2019-02-07 2020-02-04 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법 KR20230170987A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201962802428P 2019-02-07 2019-02-07
US62/802,428 2019-02-07
US201962814611P 2019-03-06 2019-03-06
US62/814,611 2019-03-06
US201962833999P 2019-04-15 2019-04-15
US62/833,999 2019-04-15
KR1020217025158A KR102612975B1 (ko) 2019-02-07 2020-02-04 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법
PCT/US2020/016564 WO2020163319A1 (en) 2019-02-07 2020-02-04 Systems, apparatus and methods for inter prediction refinement with optical flow

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217025158A Division KR102612975B1 (ko) 2019-02-07 2020-02-04 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230170987A true KR20230170987A (ko) 2023-12-19

Family

ID=69740830

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217025158A KR102612975B1 (ko) 2019-02-07 2020-02-04 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법
KR1020237042446A KR20230170987A (ko) 2019-02-07 2020-02-04 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217025158A KR102612975B1 (ko) 2019-02-07 2020-02-04 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법

Country Status (19)

Country Link
US (2) US11695950B2 (ko)
EP (2) EP4221223A1 (ko)
JP (2) JP7307184B2 (ko)
KR (2) KR102612975B1 (ko)
CN (2) CN114666582A (ko)
AU (1) AU2020219836A1 (ko)
BR (1) BR112021015598A2 (ko)
CA (1) CA3129080A1 (ko)
DK (1) DK3922025T3 (ko)
ES (1) ES2950165T3 (ko)
FI (1) FI3922025T3 (ko)
HU (1) HUE062450T2 (ko)
IL (2) IL285212B1 (ko)
MX (1) MX2021009333A (ko)
PL (1) PL3922025T3 (ko)
SG (1) SG11202108295YA (ko)
TW (1) TW202046736A (ko)
WO (1) WO2020163319A1 (ko)
ZA (1) ZA202105444B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022525876A (ja) * 2019-03-17 2022-05-20 北京字節跳動網絡技術有限公司 オプティカルフローベースの予測精緻化の計算
EP3942823A4 (en) 2019-03-18 2023-04-05 Tencent America LLC VIDEO CODING METHOD AND APPARATUS
US11523109B2 (en) * 2019-05-02 2022-12-06 Tencent America LLC Method and apparatus for improvements of affine prof
WO2021001220A1 (en) * 2019-07-01 2021-01-07 Interdigital Vc Holdings France, Sas Bi-directional optical flow refinement of affine motion compensation
WO2021050234A1 (en) * 2019-09-12 2021-03-18 Alibaba Group Holding Limited Method and apparatus for signaling video coding information
WO2021050226A1 (en) * 2019-09-12 2021-03-18 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
CN114079784A (zh) * 2020-08-20 2022-02-22 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质
WO2022061680A1 (zh) * 2020-09-24 2022-03-31 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质
WO2022082053A1 (en) * 2020-10-15 2022-04-21 Beijing Dajia Internet Information Technology Co., Ltd. Enhanced motion estimation for inter coding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2719340C2 (ru) * 2011-10-18 2020-04-17 Кт Корпорейшен Способ декодирования видеосигнала
WO2016008157A1 (en) 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
WO2016070808A1 (en) * 2014-11-05 2016-05-12 Mediatek Singapore Pte. Ltd. Method and apparatus of video coding with prediction offset
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
CN116866586A (zh) * 2017-05-17 2023-10-10 株式会社Kt 对图像解码的方法以及存储压缩视频数据的装置
JP7168593B2 (ja) * 2017-07-03 2022-11-09 ヴィド スケール インコーポレイテッド 双方向オプティカルフローに基づいた動き補償予測
JP7339890B2 (ja) * 2018-02-06 2023-09-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置及び復号装置
JP7181039B2 (ja) 2018-09-28 2022-11-30 能美防災株式会社 防災システム
US20200296405A1 (en) * 2019-03-14 2020-09-17 Qualcomm Incorporated Affine motion compensation refinement using optical flow

Also Published As

Publication number Publication date
EP3922025A1 (en) 2021-12-15
ZA202105444B (en) 2023-12-20
KR102612975B1 (ko) 2023-12-11
HUE062450T2 (hu) 2023-11-28
CN114666582A (zh) 2022-06-24
PL3922025T3 (pl) 2023-09-11
ES2950165T3 (es) 2023-10-05
IL309973A (en) 2024-03-01
WO2020163319A1 (en) 2020-08-13
IL285212A (en) 2021-09-30
EP3922025B1 (en) 2023-05-24
JP2023130415A (ja) 2023-09-20
KR20210133956A (ko) 2021-11-08
US20220210462A1 (en) 2022-06-30
SG11202108295YA (en) 2021-08-30
US20230291927A1 (en) 2023-09-14
JP7307184B2 (ja) 2023-07-11
JP2022519358A (ja) 2022-03-23
BR112021015598A2 (pt) 2021-10-05
DK3922025T3 (da) 2023-07-24
CA3129080A1 (en) 2020-08-13
EP4221223A1 (en) 2023-08-02
CN113383551A (zh) 2021-09-10
US11695950B2 (en) 2023-07-04
TW202046736A (zh) 2020-12-16
MX2021009333A (es) 2021-10-13
IL285212B1 (en) 2024-02-01
FI3922025T3 (fi) 2023-07-07
AU2020219836A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
KR102653715B1 (ko) 양방향 광학 흐름에 기반한 모션 보상 예측
KR102612975B1 (ko) 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법
US20230179795A1 (en) Bl-PREDICTION FOR VIDEO CODING
US20230188748A1 (en) Bi-directional optical flow method with simplified gradient derivation
JP2022501906A (ja) 双方向オプティカルフローのための複雑性低減およびビット幅制御
KR20210118070A (ko) 인터 및 인트라 결합 예측
CA3105072A1 (en) Adaptive control point selection for affine motion model based video coding
US20220191502A1 (en) Methods and apparatus for prediction refinement for decoder side motion vector refinement with optical flow
KR20210142610A (ko) Affine 모션 모델 유도 방법
CN113383542A (zh) 使用合并模式运动向量候选对象的改善的帧内平面预测
RU2811563C2 (ru) Системы, устройства и способы для уточнения интерпрогнозирования с помощью оптического потока
KR20210074280A (ko) 아핀 모델 기반 비디오 코딩에 대한 아핀 모션 추정
RU2817790C2 (ru) Улучшенное внутрипланарное прогнозирование с применением кандидатов векторов движения в режиме объединения

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal