KR20230164769A - 비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치 - Google Patents

비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치 Download PDF

Info

Publication number
KR20230164769A
KR20230164769A KR1020237040674A KR20237040674A KR20230164769A KR 20230164769 A KR20230164769 A KR 20230164769A KR 1020237040674 A KR1020237040674 A KR 1020237040674A KR 20237040674 A KR20237040674 A KR 20237040674A KR 20230164769 A KR20230164769 A KR 20230164769A
Authority
KR
South Korea
Prior art keywords
block
subpixel
filter coefficients
interpolation
intra prediction
Prior art date
Application number
KR1020237040674A
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 KR20230164769A publication Critical patent/KR20230164769A/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

비디오 코딩 방법으로서, 해당 방법은, 제1 블록의 인터 예측 처리 단계― 인터 예측 처리는 참조 블록의 샘플들의 서브픽셀 보간 필터링을 포함함 ―; 제2 블록의 인트라 예측 처리 단계― 인트라 예측 처리는 참조 샘플들의 서브픽셀 보간 필터링을 포함함 ―를 포함하고; 해당 방법은, 정수 참조 샘플 위치들과 분수 참조 샘플 위치들 사이의 서브픽셀 오프셋에 기초하여 서브픽셀 보간 필터링을 위한 보간 필터 계수들을 선택하는 단계를 더 포함하고, 동일한 서브픽셀 오프셋들에 대하여, 인트라 예측 처리 및 인터 예측 처리를 위해 동일한 보간 필터 계수들이 선택되는 방법이다.

Description

비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치{METHOD AND APPARATUS FOR INTERPOLATION FILTERING FOR INTRA- AND INTER-PREDICTION IN VIDEO CODING}
본 개시물은 이미지 및/또는 비디오 코딩 및 디코딩 기술 분야에 관한 것으로, 특히, 인트라 예측 및 인터 예측에 사용되는 보간 필터링 방법 및 장치에 관한 것이다.
디지털 비디오는 DVD-디스크의 도입 이래 폭넓게 사용되고 있다. 비디오는 전송 매체를 사용해서 인코딩 및 전송된다. 시청자가 비디오를 수신하고, 시청 장치는 비디오를 디코딩 및 디스플레이하는 데 사용된다. 예를 들어, 더 높은 해상도, 색 심도 및 프레임 레이트로 인해, 수년간 비디오의 품질이 향상되었다. 이는 오늘날 인터넷 및 모바일 통신 네트워크를 통해 일반적으로 전송되는 더 큰 데이터 스트림으로 이어졌다.
그러나, 고해상도 비디오는 통상적으로 정보가 더 많기 때문에 더 많은 대역폭을 필요로 한다. 대역폭 요건을 감소시키기 위해, 비디오의 압축을 수반하는 비디오 코딩 표준이 도입되었다. 비디오가 인코딩되면, 대역폭 요건(또는 스토리지의 경우에는 상응하는 메모리 요건)이 감소된다. 종종 이러한 감소는 품질을 희생한다. 따라서, 비디오 코딩 표준은 대역폭 요건과 품질 사이에서 균형을 찾으려고 한다.
고효율 비디오 코딩(High Efficiency Video Coding)(HEVC)은 당업자에게 잘 알려져 있는 비디오 코딩 표준의 일례이다. HEVC에서, 코딩 단위(CU)는 예측 단위(PU)들 또는 변환 단위(TU)들로 분할된다. 다용도 비디오 코딩(Versatile Video Coding)(VVC) 차세대 표준은 JVET(Joint Video Exploration Team)로 알려진 파트너십에서 함께 연구하는 ITU-T VCEG(Video Coding Experts Group) 및 ISO/IEC MPEG(Moving Picture Experts Group) 표준화 기구의 최신의 협력 비디오 프로젝트이다. VVC를 ITU-T H.266/차세대 비디오 코딩(Next Generation Video Coding)(NGVC) 표준이라고 할 수도 있다. VVC에서는, 최대 변환 길이에 대하여 크기가 너무 큰 CU에 대하여 필요한 경우를 제외하면, 다수의 파티션(partition) 타입의 개념이 배제될 수 있으며, 즉, CU, PU 및 TU 개념의 분리가 배제될 수 있고, CU 파티션 형상에 대하여 더 많은 유연성을 지원한다.
이들 코딩 단위(CU)(블록이라고도 함)의 처리는 그 크기, 공간 위치 및 인코더에 의해 특정된 코딩 모드에 의존한다. 코딩 모드는 예측의 타입에 따라 2 개의 그룹, 즉 인트라 예측 모드 및 인터 예측 모드로 분류될 수 있다. 인트라 예측 모드는 복원되는 블록의 샘플들에 대한 예측 값들을 계산하기 위해, 동일한 영상(프레임 또는 이미지라고도 함)의 샘플들을 사용해서 참조 샘플들을 생성한다. 인트라 예측을 공간 예측이라고도 한다. 인터 예측 모드는 시간 예측을 위해 설계되었으며, 이전, 현재(동일) 또는 다음 영상의 참조 샘플들을 사용해서 현재 영상의 블록의 샘플들을 예측한다.
ITU-T VCEG (Q6/16) 및 ISO/IEC MPEG (JTC 1/SC 29/WG 11)은, 현재의 HEVC 표준을 현저하게 초과하는 압축 능력을 갖는 미래 비디오 코딩 기술(화면 콘텐츠 코딩 및 고 명암비 코딩에 대한 그 현재의 확장 및 단기 확장을 포함)의 표준화에 대한 잠재적인 필요성을 연구하고 있다. 해당 그룹들은 이 분야의 전문가가 제안한 압축 기술 설계를 평가하기 위해 JVET(Joint Video Exploration Team)로 알려진 공동의 협업 노력으로 이 연구 활동에 협력하고 있다.
VTM(Versatile Test Model) 표준은 35 개의 인트라 모드를 사용하는 반면, BMS(Benchmark Set)는 67 개의 인트라 모드를 사용한다.
현재 BMS에서 설명된 인트라 모드 코딩 스킴은 복잡한 것으로 여겨지고, 비-선택된 모드 세트의 단점은 인덱스 목록이 (예컨대, 그 이웃 블록 INTRA 모드에 대하여) 현재의 블록 특성에 기초하여 항상 일정하고 적응적이지 않다는 점이다.
인트라 예측 및 인터 예측을 위한 보간 필터링 장치 및 방법이 개시된다. 장치 및 방법은 동일한 샘플 보간 프로세스를 사용하여 인터 예측 및 인트라 예측을 위한 계산 절차를 통일해서, 코딩 효율을 향상시킬 수 있다. 보호 범위는 청구항들에 의해 정의된다.
전술한 목적 및 다른 목적은 독립 청구항의 청구 대상에 의해 달성된다. 추가적인 구현 형태는 종속 청구항, 발명의 설명 및 도면으로부터 분명해진다.
특정 실시형태들은 첨부된 독립 청구항들에서 개요가 설명되며, 다른 실시형태들은 종속 청구항들에서 개요가 설명된다.
제1 양태에 따르면, 본 발명은 비디오 코딩 방법과 관련되며, 해당 방법은 (영상 또는 비디오의) 제1 블록의 인터 예측 처리 단계― 인터 예측 처리는 (분수 위치들에 대하여) (제1 블록의 또는 제1 블록에 대한) 참조 블록의 샘플들의 서브픽셀 보간 필터링을 포함함 ―와, - (영상 또는 비디오의) 제2 블록의 인트라 예측 처리 단계― 인트라 예측 처리는 (분수 위치들에 대하여) (제2 블록의 또는 제2 블록에 대한) 참조 샘플들의 서브픽셀 보간 필터링을 포함함 ―를 포함하고, 해당 방법은, - 정수 참조 샘플 위치와 분수 참조 샘플 위치 사이의 서브픽셀 오프셋에 기초하여 서브픽셀 보간 필터링을 위한 보간 필터 계수들을 선택하는 단계를 더 포함하며, 동일한 서브픽셀 오프셋들에 대하여, 인트라 예측 처리 및 인터 예측 처리를 위해 동일한 보간 필터 계수들이 선택된다.
서브픽셀 보간 필터링은, 각각의 값이 통상적으로, 예컨대, 디코딩된 영상 버퍼(DPB)로부터 이용 가능하지 않기 때문에, 분수, 즉, 비-정수의 참조 샘플 위치들에 대하여 수행된다. 정수 참조 샘플 위치들의 값들은 통상적으로, 예컨대, DPB로부터 바로 이용 가능하기 때문에, 해당 값들을 취득하기 위해 보간 필터링을 할 필요가 없다. 제1 양태에 따른 방법은 비디오 코딩을 위한 인터 예측 및 인트라 예측 처리 방법이라고 하거나, 또는 비디오 코딩을 위한 인터 예측 및 인트라 예측 처리를 위한 서브픽셀 보간 필터링 방법이라고 할 수도 있다.
제1 양태에 따른 구현 형태에 있어서, 방법은, 예를 들어, 정수 참조 샘플 위치와 분수 참조 샘플 위치 사이의 제1 서브픽셀 오프셋에 기초하여, (예컨대, 크로마 샘플들의) 인터 예측을 위한 서브픽셀 보간 필터링에 대하여 제1 보간 필터 계수 세트(예컨대, c0 내지 c3)를 선택하는 단계, 및 서브픽셀 오프셋이 제1 서브픽셀 오프셋과 동일할 경우, (예컨대, 루마 샘플들의) 인트라 예측을 위한 서브픽셀 보간 필터링에 대하여 동일한 제1 보간 필터 계수 세트(c0 내지 c3)를 선택하는 단계를 포함할 수 있다.
제1 양태에 따른 방법의 가능한 구현 형태에 있어서, 선택된 필터 계수들은 인터 예측 처리를 위한 크로마 샘플들 및 인트라 예측 처리를 위한 루마 샘플들의 서브픽셀 보간 필터링에 사용된다.
제1 양태에 따른 방법의 가능한 구현 형태에 있어서, 인터 예측 처리는 인트라 블록 복사 처리이다.
제1 양태에 따른 방법의 가능한 구현 형태에 있어서, 인터 예측 처리 및 인트라 예측 처리에서 사용되는 보간 필터링 계수는 룩업 테이블로부터 페치된다.
제1 양태에 따른 방법의 가능한 구현 형태에 있어서, 4 탭 필터가 서브픽셀 보간 필터링에 사용된다.
제1 양태에 따른 방법의 가능한 구현 형태에 있어서, 보간 필터 계수들을 선택하는 단계는 서브픽셀 오프셋들과 보간 필터 계수들 사이의 하기의 연관관계에 기초하여 보간 필터 계수들을 선택하는 단계를 포함한다.
여기서, 서브픽셀 오프셋들은 1/32 서브픽셀 해상도로 정의되고, c0 내지 c3은 보간 필터 계수를 나타낸다.
제1 양태에 따른 방법의 가능한 구현 형태에 있어서, 보간 필터 계수들을 선택하는 단계는 서브픽셀 오프셋들과 보간 필터 계수들 사이의 하기의 연관관계에 기초하여 분수 위치들에 대하여 보간 필터 계수들을 선택하는 단계를 포함한다.
여기서, 서브픽셀 오프셋들은 1/32 서브픽셀 해상도로 정의되고, c0 내지 c3은 보간 필터 계수를 나타낸다.
본 발명의 제2 양태에 따르면, 방법은 현재의 코딩 블록의 예측된 샘플 값들을 취득하는 비디오 코딩 방법과 관련되며, 해당 방법은, 현재의 코딩 블록의 예측된 샘플들이 인터 예측 프로세스를 사용해서 취득될 때, 프로세스들(또는 단계들)을 수행하여 인터 예측된 샘플 값을 취득하는 단계 - 상기 프로세스들(또는 단계들)은 제1 서브픽셀 오프셋 값에 기초하여 룩업 테이블로부터 필터 계수들을 취득하는 프로세스와, 필터 계수들에 따라 인터 예측된 샘플 값을 취득하는 프로세스를 포함함 - 와, 현재의 코딩 블록의 예측된 샘플들이 인트라 예측 프로세스를 사용해서 취득될 때, 프로세스들(또는 단계들)을 수행하여 인트라 예측된 샘플 값을 취득하는 단계 - 상기 프로세스들은 제2 서브픽셀 오프셋 값에 기초하여 룩업 테이블로부터 필터 계수들을 취득하되, 상기 인터 예측에 사용되는 룩업 테이블은 인트라 예측에 재사용되는 프로세스와, 필터 계수들에 따라 인트라 예측된 샘플 값을 취득하는 프로세스를 포함함 - 를 포함한다.
제1 양태에 대하여 설명한 바와 같이, 서브픽셀 보간 필터링은, 각각의 값이 통상적으로, 예컨대, 디코딩된 영상 버퍼(DPB)로부터 이용 가능하지 않기 때문에, 분수, 즉, 비-정수의 참조 샘플 위치들에 대하여 수행된다. 정수 참조 샘플 위치들의 값들은 통상적으로, 예컨대, DPB로부터 바로 이용 가능하기 때문에, 해당 값들을 취득하기 위해 보간 필터링을 할 필요가 없다. 제2 양태에 따른 방법은 비디오 코딩을 위한 인터 예측 및 인트라 예측 처리 방법이라고 하거나, 또는 비디오 코딩을 위한 인터 예측 및 인트라 예측 처리를 위한 서브픽셀 보간 필터링 방법이라고 할 수도 있다.
제2 양태에 따른 방법의 가능한 구현 형태에 있어서, 룩업 테이블로부터의 필터 계수들은 인트라 예측 프로세스 또는 인터 예측 프로세스에 대한 분수 샘플 위치 보간에 사용된다.
제2 양태에 따른 방법의 가능한 구현 형태에 있어서, 인트라 예측 프로세스에 사용되는 룩업 테이블은 인터 예측 프로세스에 사용되는 룩업 테이블과 동일하다.
제2 양태에 따른 방법의 가능한 구현 형태에 있어서, 룩업 테이블은 다음과 같이 설명된다.
여기서, "서브픽셀 오프셋(Subpixel offset)" 칼럼은 1/32 서브픽셀 해상도로 정의되고, c0, c1, c2, c3은 필터 계수이다.
제2 양태에 따른 방법의 가능한 구현 형태에 있어서, 룩업 테이블은 다음과 같이 설명된다.
여기서, "서브픽셀 오프셋(Subpixel offset)" 칼럼은 1/32 서브픽셀 해상도로 정의되고, c0, c1, c2, c3은 필터 계수이다.
제2 양태에 따른 방법의 가능한 구현 형태에 있어서, 인터 예측된 샘플 값은 현재의 코딩 블록의 크로마(Chroma) 성분에 사용된다.
제2 양태에 따른 방법의 가능한 구현 형태에 있어서, 인트라 예측된 샘플 값은 현재의 코딩 블록의 루마(Luma) 성분에 사용된다.
제2 양태에 따른 방법의 가능한 구현 형태에 있어서, 인트라 예측에 사용되는 메인 참조 변(side)의 크기가 임계치보다 작거나 같을 경우, 인트라 예측에 사용되는 룩업 테이블이 선택된다.
제2 양태에 따른 방법의 가능한 구현 현태에 있어서, 임계치는 8 개의 샘플이다.
제2 양태에 따른 방법의 가능한 구현 형태에 있어서, 인터 예측 프로세스는 인트라 블록 복사 프로세스이다.
제3 양태에 따르면, 본 발명은 제1 양태, 제2 양태, 제1 양태의 임의의 가능한 실시형태, 또는 제2 양태의 임의의 가능한 실시형태에 따른 방법을 수행하기 위한 처리 회로를 포함하는 인코더와 관련된다.
제4 양태에 따르면, 본 발명은 제1 양태, 제2 양태, 제1 양태의 임의의 가능한 실시형태, 또는 제2 양태의 임의의 가능한 실시형태에 따른 방법을 수행하기 위한 처리 회로를 포함하는 디코더와 관련된다.
제5 양태에 따르면, 본 발명은 프로세서 및 메모리를 포함하는 비디오 스트림을 디코딩하기 위한 장치와 관련된다. 메모리는, 프로세서로 하여금, 제1 양태, 제2 양태, 제1 양태의 임의의 가능한 실시형태, 또는 제2 양태의 임의의 가능한 실시형태에 따른 방법을 수행하게 하는 명령어를 저장한다.
제6 양태에 따르면, 본 발명은 프로세서 및 메모리를 포함하는 비디오 스트림을 디코딩하기 위한 장치와 관련된다. 메모리는, 프로세서로 하여금, 제1 양태, 제2 양태, 제1 양태의 임의의 가능한 실시형태, 또는 제2 양태의 임의의 가능한 실시형태에 따른 방법을 수행하게 하는 명령어를 저장한다.
제7 양태에 따르면, 실행시에, 하나 이상의 프로세서가 비디오 데이터를 코딩하도록 구성되게 하는 명령어를 저장한 컴퓨터-판독 가능 저장 매체가 제안된다. 명령어는, 하나 이상의 프로세서로 하여금, 제1 양태, 제2 양태, 제1 양태의 임의의 가능한 실시형태, 또는 제2 양태의 임의의 가능한 실시형태에 따른 방법을 수행하게 한다.
제8 양태에 따르면, 본 발명은 컴퓨터에서 실행될 때 제1 양태, 제2 양태, 제1 양태의 임의의 가능한 실시형태, 또는 제2 양태의 임의의 가능한 실시형태에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램과 관련된다.
하나 이상의 실시형태의 세부내용은 하기의 첨부 도면 및 발명의 상세한 설명에서 제시된다. 다른 특징, 목적, 및 장점은 발명의 상세한 설명, 도면, 및 청구범위로부터 명백해질 것이다.
아래에서는, 본 발명의 실시형태들을 첨부 도면을 참조하여 더 상세하게 설명한다.
도 1은 본 발명의 실시형태들을 구현하도록 구성되는 비디오 코딩 시스템의 실시예를 도시하는 블록도이고;
도 2는 본 발명의 실시형태들을 구현하도록 구성되는 비디오 인코더의 실시예를 도시하는 블록도이고;
도 3은 본 발명의 실시형태들을 구현하도록 구성되는 비디오 디코더의 예시적인 구조를 도시하는 블록도이고;
도 4는 67 개의 인트라 예측 모드의 실시예를 도시하고;
도 5는 인터 예측 및 인트라 예측에서 사용되는 보간 필터들의 실시예를 도시하고;
도 6은 인터 예측 및 인트라 예측에서 사용되는 보간 필터들의 다른 실시예를 도시하고;
도 7은 인터 예측 및 인트라 예측에서 사용되는 보간 필터들의 다른 실시예를 도시하고;
도 8은 인터 예측 및 인트라 예측을 위해 4-탭 보간 필터를 재사용하는 본 발명의 실시형태를 도시하고;
도 9는 인터 예측 및 인트라 예측을 위해 4-탭 보간 필터를 재사용하는 본 발명의 다른 실시형태를 도시하고;
도 10은 인터 예측 및 인트라 예측을 위해 4-탭 계수를 재사용하는 본 발명의 실시형태를 도시하고;
도 11은 35 개의 인트라 예측 모드의 실시예를 도시하고;
도 12는 보간 필터 선택의 실시예를 도시하고;
도 13은 쿼드-트리(quad-tree) 및 이진 트리(binary tree) 파티셔닝(partitioning)의 실시예를 도시하고;
도 14는 직사각형 블록들의 배향에 관한 실시예를 도시하고;
도 15는 보간 필터 선택의 다른 실시예를 도시하고;
도 16은 보간 필터 선택의 다른 실시예를 도시하고;
도 17은 보간 필터 선택의 다른 실시예를 도시하고;
도 18은 네트워크 디바이스의 개략도이고;
도 19는 장치의 블록도를 도시하고;
도 20은 본 발명의 실시형태에 관한 흐름도이다.
하기에서는, 명시적으로 달리 특정되지 않는 한, 동일한 참조 부호들이 동일한 또는 적어도 기능적으로 동등한 특징들을 나타낸다.
하기의 설명에 있어서는, 본 개시물의 일부를 형성하며, 예시에 의해, 본 발명의 실시형태들의 특정한 양태들 또는 본 발명의 실시형태들이 사용될 수 있는 특정한 양태들을 도시하는 첨부 도면을 참조한다. 본 발명의 실시형태들이 다른 양태들에서 사용될 수 있으며 도면에 묘사되지 않은 구조적 또는 논리적 변경을 포함할 수 있다는 점을 이해한다. 따라서, 하기의 상세한 설명은 제한적인 의미로 받아들여지면 안되고, 본 발명의 범위는 첨부된 청구항들에 의해 정의된다.
예를 들면, 설명된 방법과 관련된 개시내용은 방법을 수행하도록 구성되는 상응하는 디바이스 또는 시스템에 대해서 유효할 수 있고, 그 반대의 경우도 마찬가지임을 이해한다. 예를 들어, 하나 또는 복수의 특정한 방법 단계들이 설명될 경우, 상응하는 디바이스는 하나 또는 복수의 유닛, 예컨대, 기능 유닛을 포함하여, 이러한 하나 이상의 유닛이 도면에 명시적으로 설명 또는 예시되지 않더라도, 설명된 하나 또는 복수의 방법 단계들을 수행할 수 있다(예컨대, 하나의 유닛이 하나 또는 복수의 단계를 수행하거나, 또는 복수의 유닛 각각이 복수의 단계 중 하나 이상의 단계를 각각 수행함). 반면에, 예를 들어, 특정한 장치가 하나 또는 복수의 유닛, 예컨대 기능 유닛에 기초하여 설명될 경우, 상응하는 방법은, 하나 또는 복수의 단계가 도면에 명시적으로 설명 또는 예시되지 않더라도, 하나 또는 복수의 유닛의 기능을 수행하기 위한 하나의 단계를 포함할 수 있다(예컨대, 하나의 단계가 하나 또는 복수의 유닛의 기능을 수행하거나, 또는 복수의 단계 각각이 복수의 유닛 중 하나 이상의 유닛의 기능을 수행함). 또한, 본 명세서에서 설명되는 다양한 예시적인 실시형태들 및/또는 양태들의 특징들은, 구체적으로 달리 주지하지 않는 한, 서로 결합될 수 있음을 이해한다.
약어 & 용어의 정의
JEM 협력 연구 모델(Joint Exploration Model)(미래 비디오 코딩 연구를 위한 소프트웨어 코드베이스)
JVET 협력 비디오 전문가 팀(Joint Video Experts Team)
LUT 룩업 테이블(Look-Up Table)
QT 쿼드트리(QuadTree)
QTBT 쿼드트리 및 이진 트리(QuadTree plus Binary Tree)
RDO 레이트-왜곡 최적화(Rate-distortion Optimization)
ROM 리드 온리 메모리(Read-Only Memory)
VTM VVC 테스트 모델(VVC Test Model)
VVC 다용도 비디오 코딩(Versatile Video Coding), JVET에 의해 개발된 표준화 프로젝트.
CTU/CTB - 코딩 트리 단위(Coding Tree Unit)/코딩 트리 블록(Coding Tree Block)
CU/CB - 코딩 단위(Coding Unit)/코딩 블록(Coding Block)
PU/PB - 예측 단위(Prediction Unit)/예측 블록(Prediction Block)
TU/TB - 변환 단위(Transform Unit)/변환 블록(Transform Block)
HEVC - 고효율 비디오 코딩(High Efficiency Video Coding)
H.264/AVC 및 HEVC와 같은 비디오 코딩 스킴은 성공적인 블록-기반 하이브리드 비디오 코딩 원리에 따라 설계된다. 이 원리를 사용해서, 영상이 먼저 블록들로 파티셔닝되고 나서, 각각의 블록이 인트라 영상 또는 인터 영상 예측을 사용해서 예측된다.
H.261 이후의 몇몇 비디오 코딩 표준은 "손실 하이브리드 비디오 코덱(lossy hybrid video codecs)"의 그룹에 속한다(즉, 변환 도메인에서 양자화를 적용하기 위해 샘플 도메인에서의 공간 및 시간 예측과 2D 변환 코딩을 결합함). 비디오 시퀀스의 각각의 영상은 일반적으로 비-중첩 블록들의 세트로 파티셔닝되고 코딩은 일반적으로 블록 레벨에서 수행된다. 다시 말해, 인코더에서는, 비디오가 일반적으로, 블록(영상 블록) 레벨에서, 예컨대, 공간(인트라 영상) 예측 및 시간(인터 영상) 예측을 사용하여 예측 블록을 생성하고, 현재의 블록(현재 처리된/처리될 블록)으로부터 예측 블록을 빼서 잔차 블록을 취득하고, 잔차 블록을 변환하고 잔차 블록을 변환 도메인에서 양자화하여 전송될 데이터의 양을 줄임(압축)으로써, 처리, 즉 인코딩되는 반면, 디코더에서는, 현재의 블록을 표현하도록 복원하기 위해 인코더와 비교하여 반대의 처리가 인코딩 또는 압축된 블록에 부분적으로 적용된다. 더욱이, 인코더는 디코더 처리 루프를 복제하여, 둘 모두가 후속 블록들을 처리, 즉 코딩하기 위한 동일한 예측(예컨대, 인트라 예측 및 인터 예측) 및/또는 복원을 생성하게 된다.
본 명서세에서 사용되는 용어 "블록(block)"은 영상 또는 프레임의 부분일 수 있다. 설명의 편의상, 본 발명의 실시형태들은 본 명세서에서 ITU-T VCEG(Video Coding Experts Group) 및 ISO/IEC MPEG(Motion Picture Experts Group)의 JCT-VC(Joint Collaboration Team on Video Coding)에 의해 개발된 고효율 비디오 코딩(High-Efficiency Video Coding)(HEVC) 또는 다용도 비디오 코딩(Versatile video coding)(VVC)의 참조 소프트웨어에 관하여 설명된다. 당업자라면, 본 발명의 실시형태들이 HEVC 또는 VVC로 제한되지 않는다는 것을 이해할 것이다. CU, PU, 및 TU를 참조할 수 있다. HEVC에서, CTU는 코딩 트리로서 표시되는 쿼드-트리 구조를 사용해서 CU들로 분할된다. 인터 영상(시간) 또는 인트라 영상(공간) 예측을 사용해서 영상 영역을 코딩할지에 대한 판정은 CU 레벨에서 이루어진다. 각각의 CU는 PU 분할 타입에 따라 1 개, 2 개 또는 4 개의 PU로 더 분할될 수 있다. 하나의 PU 내부에서는, 동일한 예측 프로세스가 적용되고, 관련 정보가 PU 기반으로 디코더에 전송된다. PU 분할 타입에 기초하여 예측 프로세스를 적용함으로써 잔차 블록을 취득한 후에, CU는 CU에 대한 코딩 트리와 유사한 다른 쿼드트리 구조에 따라 변환 단위(TU)들로 파티셔닝될 수 있다. 최신의 비디오 압축 기술의 개발에 있어서, 쿼드-트리 및 이진 트리(QTBT) 파티셔닝이 코딩 블록을 파티셔닝하는 데 사용된다. QTBT 블록 구조에 있어서, CU는 정사각형 또는 직사각형 형상을 가질 수 있다. 예를 들어, 코딩 트리 단위(CTU)가 먼저 쿼드트리 구조로 파티셔닝된다. 쿼드트리 리프 노드들은 이진 트리 구조로 더 파티셔닝된다. 이진 트리 리프 노드들을 코딩 단위(CU)라고 하며, 이러한 세그먼트화는 어떠한 추가적인 파티셔닝 없이 예측 및 변환 처리에 사용된다. 이는, CU, PU 및 TU가 QTBT 코딩 블록 구조에서 동일한 블록 크기를 갖는다는 것을 의미한다. 동시에, 다중 파티션, 예를 들어, 트리플 트리 파티션도 QTBT 블록 구조와 함께 사용되도록 제안되었다.
ITU-T VCEG (Q6/16) 및 ISO/IEC MPEG (JTC 1/SC 29/WG 11)은, 현재의 HEVC 표준(화면 콘텐츠 코딩 및 고 명암비 코딩에 대한 그 현재의 확장 및 단기 확장을 포함)을 현저하게 초과하는 압축 능력을 갖는 미래 비디오 코딩 기술의 표준화에 대한 잠재적인 필요성을 연구하고 있다. 해당 그룹들은 이 분야의 전문가가 제안한 압축 기술 설계를 평가하기 위해 JVET(Joint Video Exploration Team)로 알려진 공동의 협업 노력으로 이 연구 활동에 협력하고 있다.
VTM(Versatile Test Model)은 35 개의 인트라 모드를 사용하는 반면, BMS(Benchmark Set)는 67 개의 인트라 모드를 사용한다. 인트라 예측은 정해진 프레임만이 포함될 수 있는 경우에 압축 효율을 증가시키기 위해 많은 비디오 코딩 프레임워크에서 사용되는 메커니즘이다.
본 명세서에서 사용되는 비디오 코딩은 비디오 또는 비디오 시퀀스를 형성하는 일련의 영상의 처리를 의미한다. 영상, 이미지 또는 프레임이라는 용어는 본원에서 뿐만 아니라 비디오 코딩 분야에서 동의어로 사용될 수 있거나/사용된다. 각 영상은 일반적으로 비-중첩 블록 세트로 파티셔닝된다. 영상의 인코딩/디코딩은 일반적으로 블록 레벨에서 수행되고, 여기서, 예컨대, 인터 프레임 예측 및 인트라 프레임 예측은, 예측 블록을 생성하고, 현재의 블록(현재 처리된/처리될 블록)으로부터 예측 블록을 빼서 잔차 블록을 취득하고, 잔차 블록을 더 변환하고 양자화하여 전송될 데이터의 양을 줄이는(압축) 데 사용되는 반면, 디코더 측에서는, 블록을 표현하도록 복원하기 위해 반대의 처리가 인코딩/압축된 블록에 적용된다.
도 1은 본원(본 개시물)의 기술을 이용할 수 있는 예시적인 코딩 시스템(10), 예컨대, 비디오 코딩 시스템(10)을 예시하는 개략적인 블록도이다. 비디오 코딩 시스템(10)의 인코더(20)(예컨대, 비디오 인코더(20)) 및 디코더(30)(예컨대, 비디오 디코더(30))는 본원에서 설명되는 다양한 실시예에 따른 기술을 수행하도록 구성될 수 있는 디바이스들의 실시예를 나타낸다. 도 1에 도시된 바와 같이, 코딩 시스템(10)은 인코딩된 데이터(13)를 디코딩하기 위해, 인코딩된 데이터(13), 예컨대, 인코딩된 영상(13)을, 예컨대 수신지 디바이스(14)에 제공하도록 구성되는 소스 디바이스(12)를 포함한다.
소스 디바이스(12)는 인코더(20)를 포함하고, 추가적으로, 즉, 선택적으로, 영상 소스(16), 전처리 유닛(18), 예컨대, 영상 전처리 유닛(18), 및 통신 인터페이스 또는 통신 유닛(22)을 포함할 수 있다.
영상 소스(16)는, 예를 들어 현실 세계 영상을 캡처하기 위한 임의의 종류의 영상 캡처 디바이스, 및/또는 컴퓨터 애니메이션 영상을 생성하기 위한 임의의 종류의 영상 또는 코멘트(스크린 콘텐츠 코딩의 경우, 스크린 상의 일부 텍스트도 인코딩될 영상 또는 이미지의 일부로 간주됨) 생성 디바이스, 예를 들어 컴퓨터-그래픽 프로세서, 또는 현실 세계 영상, 컴퓨터 애니메이션 영상(예컨대, 스크린 콘텐츠, 가상 현실(VR) 영상) 및/또는 이들의 임의의 조합(예컨대, 증강 현실(AR) 영상)을 취득 및/또는 제공하기 위한 임의의 종류의 디바이스일 수 있거나 이를 포함할 수 있다.
(디지털) 영상은 강도 값이 있는 샘플들의 2차원 어레이 또는 매트릭스이거나 또는 이것으로 간주될 수 있다. 어레이 내의 샘플을 픽셀(영상 요소의 단축 형태) 또는 펠(pel)이라고 할 수도 있다. 어레이 또는 영상의 수평 및 수직 방향(또는 축선)의 샘플의 수는 영상의 크기 및/또는 해상도를 정의한다. 컬러의 표현을 위해, 일반적으로 3 가지 컬리 성분이 사용되고, 즉, 영상은 3 개의 샘플 어레이로 표현될 수 있거나 또는 이를 포함할 수 있다. RGB 포맷 또는 컬러 공간에서, 영상은 상응하는 적색, 녹색 및 청색 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 일반적으로 Y로 표시되는 휘도 성분(때때로 L이 대신 사용되기도 함)과 Cb 및 Cr로 표시되는 2 개의 색차 성분을 포함하는 휘도/색차 포맷 또는 컬러 공간, 예컨대, YCbCr로 표현된다. 휘도(또는 간단히 루마) 성분 Y는 밝기 또는 그레이 레벨 강도(예컨대, 그레이-스케일 영상에서와 유사함)를 표현하지만, 2 개의 색차(또는 간단히 크로마) 성분 Cb 및 Cr은 색도 또는 컬러 정보 성분을 표현한다. 따라서, YCbCr 포맷의 영상은 휘도 샘플 값(Y)으로 이루어진 휘도 샘플 어레이, 및 색차 값(Cb 및 Cr)으로 이루어진 2 개의 색차 샘플 어레이를 포함한다. RGB 포맷의 영상은 YCbCr 포맷으로 전환 또는 변환될 수 있으며, 그 반대 또한 마찬가지이고, 해당 프로세스는 컬러 변환 또는 전환으로도 알려져 있다. 영상이 흑백이면, 영상은 단지 휘도 샘플 어레이만을 포함할 수 있다.
영상 소스(16)(예컨대, 비디오 소스(16))는, 예를 들어, 영상을 캡처하기 위한 카메라, 사전에 캡처 또는 생성된 영상을 포함 또는 저장하는 메모리, 예컨대, 영상 메모리, 및/또는 영상을 취득 또는 수신하기 위한 (내부 또는 외부의) 임의의 종류의 인터페이스일 수 있다. 카메라는, 예를 들어, 소스 디바이스에 통합되는 로컬 또는 통합 카메라일 수 있으며, 메모리는, 예컨대, 소스 디바이스에 통합되는 로컬 또는 통합 메모리일 수 있다. 인터페이스는, 예를 들어, 외부 비디오 소스, 예를 들어, 카메라, 외부 메모리, 또는 외부 영상 생성 디바이스, 예를 들어, 외부 컴퓨터 그래픽 프로세서, 컴퓨터 또는 서버와 같은 외부 영상 캡처 디바이스로부터 영상을 수신하기 위한 외부 인터페이스일 수 있다. 인터페이스는 임의의 독점적인 또는 표준화된 인터페이스 프로토콜에 따른, 예컨대, 유선 또는 무선 인터페이스, 광학 인터페이스 등의 임의의 종류의 인터페이스일 수 있다. 영상 데이터(17)를 취득하기 위한 인터페이스는 통신 인터페이스(22)와 동일한 인터페이스 또는 그 일부일 수 있다.
전처리 유닛(18) 및 전처리 유닛(18)에 의해 수행되는 처리와 구별하여, 영상 또는 영상 데이터(17)(예컨대, 비디오 데이터(17))를 원시 영상 또는 원시 영상 데이터(17)라고 할 수도 있다.
전처리 유닛(18)은 (원시) 영상 데이터(17)를 수신하고 영상 데이터(17)에 전처리를 수행하여 전처리된 영상(19) 또는 전처리된 영상 데이터(19)를 취득하도록 구성된다. 전처리 유닛(18)에 의해 수행되는 전처리는, 예컨대, 트리밍, 컬러 포맷 전환(예컨대, RGB로부터 YCbCr로), 컬러 보정, 또는 노이즈 제거를 포함할 수 있다. 전처리 유닛(18)은 선택적인 컴포넌트일 수 있음을 이해할 수 있다.
인코더(20)(예컨대, 비디오 인코더(20))는 전처리된 영상 데이터(19)를 수신하고 인코딩된 영상 데이터(21)를 제공하도록 구성된다(더 상세한 내용은, 예컨대 도 2에 기초하여 후술됨).
소스 디바이스(12)의 통신 인터페이스(22)는 인코딩된 영상 데이터(21)를 수신하고 저장 또는 직접 복원을 위해 다른 디바이스, 예컨대, 수신지 디바이스(14) 또는 임의의 다른 디바이스에 전송하거나, 또는 제각기 인코딩된 데이터(13)를 저장하기 전에 및/또는 인코딩된 데이터(13)를 디코딩 또는 저장을 위해 다른 디바이스, 예컨대, 수신지 디바이스(14) 또는 임의의 다른 디바이스에 전송하기 전에 인코딩된 영상 데이터(21)를 처리하도록 구성될 수 있다.
수신지 디바이스(14)는 디코더(30)(예컨대, 비디오 디코더(30))를 포함하고, 추가적으로, 즉 선택적으로, 통신 인터페이스 또는 통신 유닛(28), 후처리 유닛(32) 및 디스플레이 디바이스(34)를 포함할 수 있다.
수신지 디바이스(14)의 통신 인터페이스(28)는 인코딩된 영상 데이터(21) 또는 인코딩된 데이터(13)를, 예컨대, 소스 디바이스(12)로부터 또는 임의의 다른 소스, 예컨대, 저장 장치, 예컨대, 인코딩된 영상 데이터 저장 장치로부터 직접 수신하도록 구성된다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 소스 디바이스(12)와 수신지 디바이스(14) 사이의 직접 통신 링크, 예컨대, 직접 유선 또는 무선 연결부를 통해, 또는 임의의 종류의 네트워크, 예컨대, 유선 또는 무선 네트워크 또는 그 임의의 조합, 또는 임의의 종류의 비공개 및 공개 네트워크, 또는 그 임의의 종류의 조합을 통해, 인코딩된 영상 데이터(21) 또는 인코딩된 데이터(13)를 전송 및 수신하도록 구성될 수 있다.
통신 인터페이스(22)는, 예컨대, 인코딩된 영상 데이터(21)를 통신 링크 또는 통신 네트워크를 통한 전송을 위해 적절한 포맷, 예컨대, 패킷으로 패키징하도록 구성될 수 있다.
통신 인터페이스(22)의 상대를 형성하는 통신 인터페이스(28)는, 예컨대, 인코딩된 데이터(13)를 디패키징하여 인코딩된 영상 데이터(21)를 취득하도록 구성될 수 있다.
통신 인터페이스(22) 및 통신 인터페이스(28) 모두는 소스 디바이스(12)로부터 수신지 디바이스(14)로 향하는 도 1의 인코딩된 영상 데이터(13)에 대하여 화살표로 표시된 바와 같은 단방향 통신 인터페이스로, 또는 양방향 통신 인터페이스로 구성될 수 있고, 예컨대 메시지를 송신 및 수신하여, 예컨대, 연결을 설정하고, 통신 링크 및/또는 데이터 전송, 예컨대, 인코딩된 영상 데이터 전송과 관련된 임의의 다른 정보를 확인 및 교환하도록 구성될 수 있다.
디코더(30)는 인코딩된 영상 데이터(21)를 수신하고 디코딩된 영상 데이터(31) 또는 디코딩된 영상(31)을 제공하도록 구성된다(더 상세한 내용은, 예컨대, 도 3에 기초하여 후술됨).
수신지 디바이스(14)의 후처리기(32)는 디코딩된 영상 데이터(31)(복원된 영상 데이터라고도 함), 예컨대, 디코딩된 영상(31)을 후처리해서 후처리된 영상 데이터(33), 예컨대, 후처리된 영상(33)을 취득하도록 구성된다. 후처리 유닛(32)에 의해 수행되는 후처리는, 예컨대, 디스플레이 디바이스(34)에 의한 디스플레이를 위해, 예컨대, 디코딩된 영상 데이터(31)를 준비하기 위한, 예컨대, 컬러 포맷 전환(예컨대, YCbCr로부터 RGB로), 컬러 보정, 트리밍, 또는 재-샘플링, 또는 임의의 다른 처리를 포함할 수 있다.
수신지 디바이스(14)의 디스플레이 디바이스(34)는 영상을, 예컨대 사용자 또는 시청자에게 디스플레이하기 위한 후처리된 영상 데이터(33)를 수신하도록 구성된다. 디스플레이 디바이스(34)는 복원된 영상을 표현하기 위한 임의의 종류의 디스플레이, 예컨대, 통합형 또는 외부 디스플레이 또는 모니터일 수 있거나 또는 이를 포함할 수 있다. 디스플레이는, 예컨대, 액정 디스플레이(LCD), 유기 발광 다이오드(OLED) 디스플레이, 플라스마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, 실리콘 액정 표시 장치(LCoS), 디지털 광 프로세서(DLP) 또는 임의의 종류의 다른 디스플레이를 포함할 수 있다.
도 1이 소스 디바이스(12) 및 수신지 디바이스(14)를 별개의 디바이스로서 묘사하지만, 디바이스의 실시형태들은 두 디바이스 또는 두 기능, 즉 소스 디바이스(12) 또는 상응하는 기능 및 수신지 디바이스(14) 또는 상응하는 기능을 포함할 수도 있다. 이러한 실시형태들에 있어서, 소스 디바이스(12) 또는 상응하는 기능 및 수신지 디바이스(14) 또는 상응하는 기능은 동일한 하드웨어 및/또는 소프트웨어를 사용해서 또는 별개의 하드웨어 및/또는 소프트웨어 또는 그 임의의 조합에 의해 구현될 수 있다.
상세한 설명에 기초하여 당업자에게 명백한 바와 같이, 상이한 유닛들의 기능들 또는 도 1에 도시된 바와 같은 소스 디바이스(12) 및/또는 수신지 디바이스(14) 내의 기능들의 존재 및 (정확한) 분할은 실제 디바이스 및 용례에 따라 달라질 수 있다.
인코더(20)(예컨대, 비디오 인코더(20)) 및 디코더(30)(예컨대, 비디오 디코더(30)) 각각은 하나 이상의 마이크로프로세서, 디지털 신호 처리기(DSP), 주문형 집적 회로(ASIC), 필드-프로그램 가능 게이트 어레이(FPGA), 이산 로직, 하드웨어, 또는 이들의 임의의 조합과 같은 다양한 적절한 회로의 어느 하나로서 구현될 수 있다. 기술이 부분적으로 소프트웨어로 구현되면, 디바이스는 소프트웨어에 대한 명령어를 적절한 비-일시적인 컴퓨터-판독 가능 저장 매체에 저장할 수 있고, 하나 이상의 프로세서를 사용해서 하드웨어에서 명령어를 실행하여 본 개시물의 기술을 수행할 수 있다. 전술한 것들(하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함) 중 어느 하나는 하나 이상의 프로세서로 간주될 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있으며, 그 중 어느 하나는 각각의 디바이스에서 결합형 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
도 2는 본원의 기술을 구현하도록 구성된 예시적인 비디오 인코더(20)의 개략적/개념적 블록도를 도시한다. 도 2의 실시예에 있어서, 비디오 인코더(20)는 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 및 역변환 처리 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩된 영상 버퍼(DPB)(230), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 처리 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254) 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 모션 추정 유닛 및 모션 보상 유닛(도시되지 않음)을 포함할 수 있다. 도 2에 도시된 바와 같은 비디오 인코더(20)를 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 따른 비디오 인코더라고 할 수도 있다.
예를 들어, 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로를 형성하는 반면, 예를 들어, 역양자화 유닛(210), 역변환 처리 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 영상 버퍼(DPB)(230), 예측 처리 유닛(260)은 인코더의 역방향 신호 경로를 형성하고, 인코더의 역방향 신호 경로는 디코더의 신호 경로에 대응한다(도 3의 디코더(30) 참조).
인코더(20)는, 예컨대, 입력(202)에 의해, 영상(201) 또는 영상(201)의 블록(203), 예컨대, 비디오 또는 비디오 시퀀스를 형성하는 일련의 영상들의 영상을 수신하도록 구성된다. 영상 블록(203)을 현재의 영상 블록 또는 코딩될 영상 블록이라고 할 수도 있으며, 영상(201)을 현재의 영상 또는 코딩될 영상(특히, 현재의 영상을 다른 영상들, 예컨대, 동일한 비디오 시퀀스, 즉, 현재의 영상을 또한 포함하는 비디오 시퀀스의 사전에 인코딩된 및/또는 디코딩된 영상들과 구별하기 위한 비디오 코딩으로 코딩될 영상)이라고 할 수도 있다.
블록 예측 처리 유닛(260)이라고도 하는 예측 처리 유닛(260)은, 블록(203)(현재의 영상(201)의 현재의 블록(203))과, 버퍼(216)로부터의 복원된 영상 데이터, 예컨대, 동일한(현재의) 영상의 참조 샘플들 및/또는 디코딩된 영상 버퍼(230)로부터의 하나 또는 복수의 사전에 디코딩된 영상으로부터의 참조 영상 데이터(231)를 수신 또는 취득하고, 이러한 데이터를 예측을 위해 처리하도록, 즉, 인터 예측된 블록(245) 또는 인트라 예측된 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은 잔차 블록(205)의 계산을 위해 또한 복원된 블록(215)의 복원을 위해 예측 모드(예컨대, 인트라 또는 인터 예측 모드) 및/또는 예측 블록(265)으로서 사용될 상응하는 예측 블록(245 또는 255)을 선택하도록 구성될 수 있다.
모드 선택 유닛(262)의 실시형태들은, 최선의 매칭 또는 다시 말하면 최소 잔차(최소 잔차는 전송 또는 저장에 대한 더 양호한 압축을 의미함), 또는 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 전송 또는 저장에 대한 더 양호한 압축을 의미함)를 제공하거나, 또는 둘 다를 고려하거나 균형을 유지한 파티셔닝 및 예측 모드(예컨대, 예측 처리 유닛(260)에 의해 지원되는 것들로부터의 모드)를 선택하도록 구성될 수 있다. 모드 선택 유닛(262)은 레이트 왜곡 최적화(RDO)에 기초하여 예측 모드를 결정하도록, 즉, 최소 레이트 왜곡 최적화를 제공하는 예측 모드 또는 연관 레이트 왜곡이 적어도 예측 모드 선택 기준을 준수하는 예측 모드를 선택하도록 구성될 수 있다. 이와 관련하여 "최선(best)", "최소(minimum)", "최적(optimum)" 등과 같은 용어는 반드시 전반적인 "최선", "최소", "최적" 등을 의미하는 것은 아니고, 잠재적으로 "차선의 선택(sub-optimum selection)"으로 되지만 복잡성 및 처리 시간을 감소시키는 임계치 또는 다른 제약을 초과 또는 하회하는 값과 같은 종료 또는 선택 기준의 준수를 의미할 수도 있다.
인트라 예측 유닛(254)은 인트라 예측 파라미터, 예컨대, 선택된 인트라 예측 모드에 기초하여, 인트라 예측 블록(255)을 결정하도록 더 구성된다. 어쨌든, 블록에 대하여 인트라 예측 모드를 선택한 후에, 인트라 예측 유닛(254)은 또한, 인트라 예측 파라미터, 즉, 블록에 대하여 선택된 인트라 예측 모드를 가리키는 정보를 엔트로피 인코딩 유닛(270)에 제공하도록 구성된다. 일 실시예에 있어서, 인트라 예측 유닛(254)은 후술되는 인트라 예측 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
도 3은 본원의 기술을 구현하도록 구성된 예시적인 비디오 디코더(30)이다. 비디오 디코더(30)는, 예컨대, 인코더(20)에 의해 인코딩되는 인코딩된 영상 데이터(예컨대, 인코딩된 비트스트림)(21)를 수신하여 디코딩된 영상(331)을 취득하도록 구성된다. 디코딩 프로세스 동안, 비디오 디코더(30)는 비디오 데이터, 예컨대, 비디오 인코더(20)로부터 인코딩된 비디오 슬라이스의 영상 블록들 및 연관된 신택스 요소들을 나타내는 인코딩된 비디오 비트스트림을 수신한다.
도 3의 실시예에 있어서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 처리 유닛(312), 복원 유닛(314)(예컨대, 합산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 영상 버퍼(330) 및 예측 처리 유닛(360)을 포함한다. 예측 처리 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354) 및 모드 선택 유닛(362)을 포함할 수 있다. 비디오 디코더(30)는, 일부 실시예들에 있어서, 일반적으로 도 2의 비디오 인코더(20)에 대하여 설명된 인코딩 단계에 대하여 상호적인 디코딩 단계를 수행할 수 있다.
엔트로피 디코딩 유닛(304)은 인코딩된 영상 데이터(21)에 대하여 엔트로피 디코딩을 수행하여, 예컨대, 양자화된 계수(309) 및/또는 디코딩된 코딩 파라미터(도 3에는 도시되지 않음), 예컨대, (디코딩된) 임의의 또는 모든 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터 및/또는 다른 신택스 요소를 취득하도록 구성된다. 엔트로피 디코딩 유닛(304)은 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 다른 신택스 요소를 예측 처리 유닛(360)에 전달하도록 더 구성된다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 요소를 수신할 수 있다.
역양자화 유닛(310)은 기능 면에서 역양자화 유닛(210)과 동일할 수 있으며, 역변환 처리 유닛(312)은 기능 면에서 역변환 처리 유닛(212)과 동일할 수 있고, 복원 유닛(314)은 기능 면에서 복원 유닛(214)과 동일할 수 있으며, 버퍼(316)는 기능 면에서 버퍼(216)와 동일할 수 있고, 루프 필터(320)는 기능 면에서 루프 필터(220)와 동일할 수 있으며, 디코딩된 영상 버퍼(330)는 기능 면에서 디코딩된 영상 버퍼(230)와 동일할 수 있다.
예측 처리 유닛(360)은 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함할 수 있고, 인터 예측 유닛(344)은 기능 면에서 인터 예측 유닛(244)과 유사할 수 있으며, 인트라 예측 유닛(354)은 기능 면에서 인트라 예측 유닛(254)과 유사할 수 있다. 예측 처리 유닛(360)은 일반적으로 블록 예측을 수행하거나 및/또는 인코딩된 데이터(21)로부터 예측 블록(365)을 취득하고, 예측 관련 파라미터 및/또는 선택된 예측 모드에 관한 정보를, 예컨대, 엔트로피 디코딩 유닛(304)으로부터 (명시적 또는 암시적으로) 수신 또는 취득하도록 구성된다.
비디오 슬라이스가 인트라 코딩된 (I) 슬라이스로서 코딩될 때, 예측 처리 유닛(360)의 인트라 예측 유닛(354)은 시그널링된 인트라 예측 모드 및 현재의 프레임 또는 영상의 사전에 디코딩된 블록들로부터의 데이터에 기초하여 현재의 비디오 슬라이스의 영상 블록에 대하여 예측 블록(365)을 생성하도록 구성된다. 비디오 프레임이 인터 코딩된(즉, B 또는 P) 슬라이스로서 코딩될 때, 예측 처리 유닛(360)의 인터 예측 유닛(344)(예컨대, 모션 보상 유닛)은 모션 벡터 및 엔트로피 디코딩 유닛(304)으로부터 수신된 다른 신택스 요소에 기초하여 현재의 비디오 슬라이스의 비디오 블록에 대하여 예측 블록(365)을 생성하도록 구성된다. 인터 예측의 경우, 예측 블록은 참조 영상 목록들 중 하나의 목록 내의 참조 영상들 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 DPB(330)에 저장된 참조 영상들에 기초하여 디폴트 구성 기술을 사용해서 참조 프레임 목록, 즉 List 0 및 List 1을 구성할 수 있다.
예측 처리 유닛(360)은 모션 벡터 및 다른 신택스 요소를 파싱함으로써 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하도록 구성되고, 예측 정보를 사용하여 디코딩되는 현재의 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 예측 처리 유닛(360)은 수신된 신택스 요소들 중 일부를 사용하여, 비디오 슬라이스의 비디오 블록들을 코딩하는 데 사용되는 예측 모드(예컨대, 인트라 예측 또는 인터 예측), 인터 예측 슬라이스 타입(예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 영상 목록들 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터 인코딩된 비디오 블록에 대한 모션 벡터, 슬라이스의 각각의 인터 코딩된 비디오 블록에 대한 인터 예측 상태, 및 현재의 비디오 슬라이스에서 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
역양자화 유닛(310)은 역양자화, 즉, 비트스트림에서 제공되며 엔트로피 디코딩 유닛(304)에 의해 디코딩되는 양자화된 변환 계수를 역양자화하도록 구성된다. 역양자화 프로세스는 비디오 슬라이스 내의 각각의 비디오 블록에 대하여 비디오 인코더(20)에 의해 계산된 양자화 파라미터의 사용을 포함하여, 양자화의 정도 및, 유사하게, 적용되어야 하는 역양자화의 정도를 결정할 수 있다.
역변환 처리 유닛(312)은, 픽셀 도메인에서 잔차 블록을 생성하기 위해, 역변환, 예컨대, 역 DCT, 역정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수에 적용하도록 구성된다.
복원 유닛(314)(예컨대, 합산기(314))은, 예컨대, 복원된 잔차 블록(313)의 샘플 값들과 예측 블록(365)의 샘플 값들을 가산함으로써, 역변환 블록(313)(즉, 복원된 잔차 블록(313))을 예측 블록(365)에 가산하여 샘플 도메인에서 복원된 블록(315)을 취득하도록 구성된다.
루프 필터 유닛(320)(코딩 루프에 있거나 또는 코딩 루프 이후에 있음)은, 예컨대, 픽셀 전이를 평활화하거나, 내지는 비디오 품질을 향상시키기 위해, 복원된 블록(315)을 필터링하여 필터링된 블록(321)을 취득하도록 구성된다. 일 실시예에 있어서, 루프 필터 유닛(320)은 후술되는 필터링 기술들의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은 블록 해제 필터, 샘플-적응형 오프셋(SAO) 필터 또는 그 밖의 필터들, 예컨대, 양방향 필터 또는 적응형 루프 필터(ALF) 또는 선명화(sharpening) 또는 평활화 필터 또는 협업 필터와 같은 하나 이상의 루프 필터를 나타내기 위한 것이다. 도 3에서는 루프 필터 유닛(320)이 루프 필터인 것으로 도시되지만, 다른 구성들에 있어서는, 루프 필터 유닛(320)이 포스트 루프 필터로서 구현될 수 있다.
이어서, 정해진 프레임 또는 영상에서 디코딩된 비디오 블록(321)은 후속 모션 보상에 사용되는 참조 영상을 저장하는 디코딩된 영상 버퍼(330)에 저장된다.
디코더(30)는 사용자에게 제시 또는 보이도록, 예컨대, 출력(332)을 통해 디코딩된 영상(331)을 출력하도록 구성된다.
비디오 디코더(30)의 다른 변형은 압축된 비트스트림을 디코딩하는 데 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터링 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비-변환 기반 디코더(30)는 특정 블록 또는 프레임에 대한 역변환 처리 유닛(312) 없이 잔차 신호를 직접 역양자화할 수 있다. 다른 구현예에 있어서, 비디오 디코더(30)는 단일의 유닛으로 결합된 역양자화 유닛(310) 및 역변환 처리 유닛(312)을 가질 수 있다.
도 4는 예컨대, VVC에 대하여 제안된 바와 같은 67 개의 인트라 예측 모드의 실시예를 도시하고, 67 개의 인트라 예측 모드 중 복수의 인트라 예측 모드는, 평면 모드(planar mode)(인덱스 0), dc 모드(dc mode)(인덱스 1), 및 인덱스 2 내지 66을 가진 각도 모드(angular mode)를 포함하고, 도 4에서 좌하단의 각도 모드는 인덱스 2를 나타내고, 인덱스의 숫자는 인덱스 66이 도 4의 가장 우상단의 각도 모드로 될 때까지 증분된다.
도 4에 도시된 바와 같이, 최신 버전의 JEM은 비스듬한 인트라 예측 방향에 대응하는 몇몇 모드를 갖는다. 이들 모드 중 어느 하나에 대하여, 블록 내의 샘플들을 예측하기 위해, 블록 변 내의 상응하는 위치가 분수이면, 이웃 참조 샘플들의 세트의 보간이 수행되어야 한다. 2 개의 인접 참조 샘플들간의 선형 보간이 HEVC 및 VVC에서 사용된다. 복잡한 4-탭 보간 필터가 JEM에서 사용된다. 필터 계수는 블록의 폭 값 또는 블록의 높이 값에 따라 가우시안(Gaussian) 또는 큐빅(Cubic)이 되도록 선택된다. 폭을 사용할지 또는 높이를 사용할지에 대한 판정은 메인 참조 변 선택에 관한 판정과 일치된다. 인트라 예측 모드의 값이 대각선 모드의 값보다 크거나 같을 경우, 참조 샘플의 상변은 메인 참조 변이 되도록 선택되고, 폭 값은 사용되는 보간 필터를 결정하도록 선택된다. 인트라 예측 모드의 값이 대각선 모드의 값보다 작을 경우, 메인 변의 참조는 블록의 좌변으로부터 선택되고 높이 값은 필터 선택 프로세스를 제어하는 데 사용된다. 구체적으로, 선택된 변의 길이가 8 개의 샘플보다 작거나 같으면, 4-탭 큐빅 필터가 적용된다. 선택된 변의 길이가 8 개의 샘플보다 크면, 4-탭 가우시안 필터가 보간 필터로서 사용된다.
JEM에서 사용되는 특정한 필터 계수들은 표 1에 주어진다. 예측된 샘플은 다음과 같은 서브픽셀 오프셋 및 필터 타입에 따라, 표 1로부터 선택되는 계수로 컨볼루션함으로써 계산된다.
이 식에서, ">>"는 비트단위의 우향 시프트 동작을 나타낸다.
큐빅 필터가 선택되면, 예측된 샘플(샘플 값)은 시퀀스 파라미터 세트(SPS)에서 정의된, 또는 선택된 성분의 비트 깊이로부터 도출된 허용값 범위로 더 고정된다.
표 1. 인트라 예측 보간 필터
모션 보상 프로세스도 참조 블록의 픽셀들의 변위가 분수일 때 샘플 값들을 예측하기 위해 필터링을 이용한다. JEM에서, 8-탭 필터링은 휘도 성분에 대하여 사용되고 4-탭 길이 필터링은 색차 성분에 대하여 사용된다. 모션 보간 필터는 먼저 수평으로 적용되고, 수평 필터링의 출력은 수직으로 더 필터링된다. 4-탭 색차 필터의 계수들은 표 2에 주어진다.
표 2 색차 모션 보간 필터 계수
인트라 예측 및 인터 예측에 대하여 상이한 보간 필터를 사용하는 많은 비디오 코딩 해법이 또한 존재한다. 특히, 도 5 내지 도 7은 보간 필터의 상이한 실시예들을 도시한다. 도 5는 JEM에서 사용되는 보간 필터의 실시예를 도시한다. 도 6은 ITU-JVET K1023에 개시된 Core-experiment CE 3-3.1.3에 대하여 제안된 보간 필터의 다른 실시예를 도시한다. 도 7은 ITU-JVET K0064에서 제안된 보간 필터의 다른 실시예를 도시한다.본 발명의 실시형태들의 기본 아이디어는, 인트라 예측자(predictor) 내의 픽셀 값들이 참조 샘플들 사이에서 분수 위치에 속할 경우 이를 보간하기 위해, 크로마 모션 보상 서브-펠 필터의 룩업 테이블 및/또는 하드웨어 모듈을 재사용하는 것이다. 인터 예측 및 인트라 예측 모두에 대하여 동일한 하드웨어가 사용되게 하려는 것이기 때문에, 필터 계수들의 정밀도는 일관되어야 하며, 즉, 인트라 참조 샘플 보간에 대한 필터 계수들을 나타내기 위한 비트 수는 모션 서브-펠 모션 보상 보간 필터링의 계수 정밀도와 정렬되어야 한다.
도 8은 제안된 발명의 실시형태를 예시한다. 파선으로 표시된 "크로마에 대한 6-비트 계수를 가진 4-탭 보간 필터"(또한, "통합 인트라/인터 필터"라고 함)는 두 프로세스, 즉 인트라 및 인터 예측된 샘플들의 보간에 사용될 수 있다.
이 설계를 이용하는 특정 실시형태는 도 9에 도시된다. 이 구현예에 있어서, 필터링 모듈은 모션 보상에서 색차 샘플들의 예측과, 인트라 예측의 수행시에 휘도 및 색차 샘플들을 예측하는 것 모두에 관여되는 별개의 유닛으로서 구현되고 있다. 이 구현예에 있어서, 하드웨어 필터링 부분은 인트라 예측 프로세스 및 인터 예측 프로세스 모두에서 사용된다.
도 10은 필터 계수들의 LUT들만이 재사용되는 경우의 다른 실시형태를 도시한다(도 10 참조). 도 10은 LUT 계수들을 재사용하는 것에 기초하는 제안된 용례의 예시적인 구현예이다. 이 구현예에 있어서, 하드웨어 필터링 모듈들은 ROM에 저장된 LUT들로부터 계수들을 로딩한다. 인트라 예측 프로세스에 대하여 도시된 스위치는 인트라 예측 프로세스에 대하여 선택된 메인 변의 길이에 따라, 사용될 필터 타입을 결정한다.
제안된 용례의 실질적인 실시형태는 하기의 계수들을 사용할 수 있다(표 3 참조).
표 3: 인트라 보간 필터 및 인터 보간 필터
인트라 예측된 샘플은 다음과 같은 서브픽셀 오프셋 및 필터 타입에 따라, 표 3으로부터 선택되는 계수로 컨볼루션함으로써 계산된다.
이 식에서, ">>"는 비트단위의 우향 시프트 동작을 나타낸다.
"통합 인트라/인터 필터"가 선택되면, 예측된 샘플은 SPS에서 정의된, 또는 선택된 성분의 비트 깊이로부터 도출된 허용값 범위로 더 고정된다.
제안된 발명들의 실시형태들의 특징들을 구별하면 다음과 같다.
인트라 참조 샘플 보간 및 서브-펠 모션 보상 보간의 경우, 하드웨어 모듈을 재사용하고 필요한 메모리의 전체 크기를 줄이기 위해 동일한 필터가 사용될 수 있다.
재사용된 필터에 더하여 인트라 참조 샘플 보간에 사용되는 필터 계수들의 정밀도는 전술한 재사용된 필터의 계수들의 정밀도와 정렬되어야 한다.
모션 보상에서의 루마 처리는 반드시 8-탭 필터링을 사용하는 것이 아니라 4-탭 필터링에서 동작할 수도 있다. 이 경우에는, 4-탭 필터가 통합되게 선택될 수 있다.
본 발명의 실시형태들은 보간을 수반할 수 있는 인트라 예측 프로세스의 상이한 부분들에 적용될 수 있다. 특히, 메인 참조 샘플들을 확장할 때, 변 참조 샘플들은 통합 보간 필터를 사용해서 필터링될 수도 있다(상세하게는, JVET-K0211의 섹션 2.1, 3.1, 4.1 및 5를 참조함).
인트라 블록 복사 동작도 역시 제안된 발명을 사용할 수 있는 보간 단계를 수반한다(인트라 블록 복사 설명을 위한 [Xiaozhong Xu, Shan Liu, Tzu-Der Chuang, Yu-Wen Huang, Shawmin Lei, Krishnakanth Rapaka, Chao Pang, Vadim Seregin, Ye-Kui Wang, Marta Karczewicz: Intra Block Copy in HEVC Screen Content Coding Extensions. IEEE J. Emerg. Sel. Topics Circuits Syst. 6(4): 409-419 (2016)]을 참조한다).
추가적인 실시형태들은 인트라 예측을 위한 애스펙트비 종속 필터링 방법을 포함할 수 있으며, 해당 방법은 블록의 애스펙트비에 따라 예측될 블록에 대한 보간 필터를 선택하는 단계를 포함한다.
실시예에 있어서, 보간 필터의 선택은 예측될 블록의 인트라 예측 모드를 임계 처리하기 위한 방향에 의존한다.
실시예에 있어서, 방향은 예측될 블록의 메인 대각선의 각도에 대응한다.
실시예에 있어서, 방향의 각도는 다음과 같이 계산된다.
여기서, W, H는 제각기 예측될 블록의 폭 및 높이이다.
실시예에 있어서, 애스펙트비 RA가 결졍되며, 예컨대, 다음 식 RA = log2(W) - log2(H)대응하며, 여기서, W, H는 제각기 예측될 블록의 폭 및 높이이다.
실시예에 있어서, 예측될 블록의 메인 대각선의 각도는 애스펙트비에 기초하여 결정된다.
실시예에 있어서, 블록의 인트라 예측 모드의 임계치는 예측될 블록의 메인 대각선의 각도에 기초하여 결정된다.
실시예에 있어서, 보간 필터의 선택은 사용된 참조 샘플들이 어느 변에 속하는지에 의존한다.
실시예에 있어서, 인트라 방향에 대응하는 각도를 갖는 직선은 블록을 2 개의 영역으로 나눈다.
실시예에 있어서, 서로 다른 영역에 속하는 참조 샘플들은 상이한 보간 필터들을 사용해서 예측된다.
실시예에 있어서, 필터는 큐빅 보간 필터 또는 가우스 보간 필터를 포함한다.
본원의 일 구현 형태에 있어서, 프레임은 영상과 동일하다.
본원의 일 구현 형태에 있어서, VER_IDX에 대응하는 값은 50이고; HOR_IDX에 대응하는 값은 18이며; VDIA_IDX에 대응하는 값은 66이고, 이 값은 각도 모드에 대응하는 값들 중에서 최대값일 수 있으며; 인트라 모드 2에 대응하는 값 2는 각도 모드에 대응하는 값들 중에서 최소값일 수 있고; DIA_IDX에 대응하는 값은 34이다.
본 개시물의 실시형태들은 인트라 모드 시그널링 스킴의 개량을 목표로 할 수 있다. 본 개시물에서는, 비디오 디코딩 방법 및 비디오 디코더가 제안된다.
도 4는 예컨대, VVC에 대하여 제안된 바와 같은 67 개의 인트라 예측 모드의 실시예를 도시하고, 67 개의 인트라 예측 모드 중 복수의 인트라 예측 모드는, 평면 모드(인덱스 0), dc 모드(인덱스 1), 및 인덱스 2 내지 66을 가진 각도 모드를 포함하고, 도 4에서 좌하단의 각도 모드는 인덱스 2를 나타내고, 인덱스의 숫자는 인덱스 66이 도 4의 가장 우상단의 각도 모드로 될 때까지 증분된다.
본원의 다른 양태에 있어서, 처리 회로를 포함하는 디코더가 개시되고, 이는 상기 디코딩 방법을 수행하도록 구성된다.
본원의 다른 양태에 있어서, 컴퓨터 프로그램 제품이 개시되고, 이는 상기 디코딩 방법을 수행하기 위한 프로그램 코드를 포함한다.
본원의 다른 양태에 있어서, 비디오 데이터를 디코딩하기 위한 디코더가 개시되고, 디코더는, 하나 이상의 프로세서; 및 프로세서에 결합되며 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함하고, 프로그래밍은, 프로세서에 의한 실행시에, 상기 디코딩 방법을 수행하도록 디코더를 구성한다.
처리 회로는 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로, 예를 들어, 소프트웨어 프로그램 가능 프로세서 등에 의해 구현될 수 있다.
도 11은 다른 실시형태에 의해 사용될 수 있는 HEVC UIP 스킴에서 사용되는 복수의 인트라 예측 모드의 개략도를 예시한다. 휘도 블록의 경우, 인트라 예측 모드는 최대 36 개의 인트라 예측 모드를 포함할 수 있으며, 이는 3 개의 비-방향성 모드 및 33 개의 방향성 모드를 포함할 수 있다. 비-방향성 모드는 평면 예측 모드, 평균 (DC) 예측 모드, 및 CfL(chroma from luma) (LM) 예측 모드를 포함할 수 있다. 평면 예측 모드는 블록의 경계로부터 도출되는 수평 및 수직 구배를 가진 블록 진폭면을 추정함으로써 예측을 수행할 수 있다. DC 예측 모드는 블록 경계의 평균값과 매칭되는 값을 가진 평탄한 블록면을 추정함으로써 예측을 수행할 수 있다. LM 예측 모드는 블록에 대한 루마 값에 매칭되는 블록에 대한 크로마 값을 추정함으로써 예측을 수행할 수 있다. 방향성 모드는 도 11에 도시된 바와 같이 인접 블록들에 기초하여 예측을 수행할 수 있다.
H.264/AVC 및 HEVC는 인트라 예측 프로세스에서 사용되기 전에 로우-패스 필터가 참조 샘플들에 적용될 수 있음을 명시한다. 참조 샘플 필터를 사용할지의 여부에 대한 판정은 인트라 예측 모드 및 블록 크기에 의해 결정된다. 이 메커니즘을 모드 종속 인트라 평활화(Mode Dependent Intra Smoothing)(MDIS)라고 할 수 있다. MDIS와 관련된 복수의 방법도 존재한다. 예를 들어, 적응형 참조 샘플 평활화(Adaptive Reference Sample Smoothing)(ARSS) 방법은 예측 샘플들이 필터링되는지의 여부를 명시적으로(즉, 플래그가 비트스트림에 포함됨) 또는 암시적으로(즉, 예를 들어, 시그널링 오버헤드를 줄이기 위해 데이터 은닉을 사용해서 플래그가 비트스트림에 포함되는 것을 방지함) 시그널링할 수 있다. 이 경우, 인코더는 모든 잠재적인 인트라 예측 모드에 대하여 레이트-왜곡(RD)을 테스트함으로써 평활화에 대해 결정할 수 있다.
도 4에 도시된 바와 같이, 최신 버전의 JEM(JEM-7.2)은 비스듬한 인트라 예측 방향에 대응하는 몇몇 모드를 갖는다. 이들 모드 중 어느 하나에 대하여, 블록 내의 샘플들을 예측하기 위해, 블록 변 내의 상응하는 위치가 분수이면, 이웃 참조 샘플들의 세트의 보간이 수행되어야 한다. HEVC 및 VVC는 2 개의 인접 참조 샘플 사이에서 선형 보간을 사용한다. JEM은 보다 복잡한 4-탭 보간 필터를 사용한다. 필터 계수는 폭 값 또는 높이 값에 따라 가우시안 또는 큐빅 필터 계수로 되도록 선택된다. 폭을 사용할지 또는 높이를 사용할지에 대한 판정은 메인 참조 변 선택에 관한 판정과 일치되고, 인트라 예측 모드가 대각선 모드보다 크거가 같을 경우, 참조 샘플들의 상변이 메인 참조 변이 되도록 선택되고 폭 값은 사용되는 보간 필터를 결정하도록 선택된다. 그렇지 않으면, 블록의 좌변으로부터 메인 변 참조가 선택되고 높이가 필터 선택 프로세스를 제어한다. 구체적으로, 선택된 변의 길이가 8 개의 샘플보다 작거나 같으면, 큐빅 보간 4 탭이 적용된다. 그렇지 않으면, 4-탭 가우시안이 보간 필터로서 사용된다.
32×4 블록의 경우 대각선 모드(45°로 표시됨)보다 작은 모드 및 큰 모드에 대한 보간 필터 선택의 실시예를 도 12에 도시한다.
VVC에서는, QTBT로서 알려진 쿼드-트리 및 이진 트리 모두에 기초하는 파티셔닝 메커니즘이 사용된다. 도 13에 묘사된 바와 같이, QTBT 파티셔닝은 정사각형 블록 뿐만 아니라 직사각형 블록도 제공할 수 있다. 물론, HEVC/H.265 표준에서 사용되는 종래의 쿼드-트리 기반 파티셔닝과 비교하면, QTBT 파티셔닝의 대가로서 인코더 측에서 약간의 시그널링 오버헤드가 있고 계산 복잡성이 증가된다. 그럼에도 불구하고, QTBT 기반의 파티셔닝은 세그먼트화 특성이 더 양호하고, 그에 따라, 종래의 쿼드-트리 기반의 파티셔닝보다 훨씬 높은 코딩 효율을 보여준다.
그러나, 그 현재 상태에 있어서의 VVC는 참조 샘플들의 두 변(좌변 및 상변)에 동일한 필터를 적용한다. 블록이 수직하게 배향되든 수평하게 배향되든 상관없이, 참조 샘플 필터는 두 참조 샘플 변들에 대하여 동일할 것이다.
본 문헌에서, "수직하게 배향된 블록"("블록의 수직 배향") 및 "수평하게 배향된 블록"("블록의 수평 배향")이라는 용어는 QTBT 프레임워크에 의해 생성되는 직사각형 블록들에 적용된다. 이들 용어는 도 14에 도시된 것과 동일한 의미를 갖는다.
본 개시물의 실시형태들은 블록의 배향을 고려하기 위해 상이한 참조 샘플 필터들을 선택하는 메커니즘을 제안한다. 구체적으로, 예측될 블록의 상이한 변들에 위치된 참조 샘플에 상이한 참조 샘플 필터들이 적용되도록, 블록의 폭 및 높이가 독립적으로 확인된다.
일부 실시예들에 있어서는, 보간 필터 선택이 메인 참조 변 선택에 대한 판정과 일치된다는 것을 설명했다. 이들 판정은 모두 현재 대각선(45 도) 방향을 갖는 인트라 예측 모드의 비교에 의존한다.
그러나, 이 설계는 세장형 블록들에 대하여 심각한 결함이 있다는 점을 알아야 한다. 도 15로부터, 모드 비교 기준을 사용해서 짧은 변이 메인 참조로서 선택되더라도, 대부분의 예측된 픽셀들은 여전히 긴 변의 참조 샘플들로부터 도출될 것임을 확인할 수 있다(파선 영역으로 도시됨). 도 15는 변 길이 종속 참조 필터 선택에 관한 실시예를 도시한다.
본 개시물은 보간 필터 선택 프로세스 동안 인트라 예측 모드를 임계 처리하기 위해 대안적인 방향을 사용하는 것을 제안한다. 구체적으로, 방향은 예측될 블록의 메인 대각선의 각도에 대응한다. 예를 들어, 32×4 크기 및 4×32 크기의 블록들의 경우, 참조 샘플 필터를 결정하는 데 사용되는 임계치 모드(mT)는 도 16에 도시된 바와 같이 정의된다.
임계치 인트라 예측 각도의 구체적인 값은 다음 식을 사용해서 계산될 수 있다.
,
여기서, W 및 H는 제각기 블록의 폭 및 높이이다.
본 개시물의 다른 실시형태는 사용되는 참조 샘플들이 어느 변에 속하는지에 따라 상이한 보간 필터들을 사용하는 것이다. 이 결정의 실시예는 도 17에 도시된다. 도 17은 사용되는 참조 샘플들이 어느 변에 속하는지에 따라 상이한 보간 필터들을 사용하는 것에 관한 실시예를 도시한다.
인트라 방향(m)에 대응하는 각도를 갖는 직선은 예측된 블록을 2 개의 영역으로 나눈다. 서로 다른 영역에 속하는 샘플들은 상이한 보간 필터들을 사용해서 예측된다.
(BMS1.0에서 정의되는 인트라 예측 모드 세트에 대한) mT의 예시적인 값들 및 상응하는 각도들은 표 4에 주어진다. 각도(α)는 도 16에 도시된 바와 같이 주어진다.
표 4. (BMS1.0에서 정의된 인트라 예측 모드 세트에 대한) mT의 예시적인 값들
기존의 기술 및 해법과 비교하면, 본 개시물은 상이한 보간 필터들을 사용해서 예측된 블록 내의 샘플들을 사용하고, 샘플을 예측하는 데 사용된 보간 필터는 블록 형상, 배향이 수평인지 또는 수직인지, 및 인트라 예측 모드 각도에 따라 선택된다.본 개시물은 참조 샘플 필터링 단계에서 적용될 수 있다. 특히, 보간 필터 선택 프로세스에 대하여 전술한 규칙과 유사한 규칙을 사용해서 참조 샘플 평활화 필터를 결정하는 것이 가능하다.
도 18은 본 개시물의 실시형태에 따른 네트워크 디바이스(1300)(예컨대, 코딩 디바이스)의 개략도이다. 네트워크 디바이스(1300)는 본 명세서에서 설명된 바와 같은 개시된 실시형태들을 구현하는 데 적합하다. 네트워크 디바이스(1300)는 데이터를 수신하기 위한 입구 포트(1310) 및 수신기 유닛(Rx)(1320); 데이터를 처리하는 프로세서, 로직 유닛, 또는 중앙 처리 장치(CPU)(1330); 데이터를 송신하기 위한 송신기 유닛(Tx)(1340) 및 출구 포트(1350); 및 데이터를 저장하기 위한 메모리(1360)를 포함한다. 네트워크 디바이스(1300)는 광 신호 또는 전기 신호의 출입을 위해 입구 포트(1310), 수신기 유닛(1320), 송신기 유닛(1340), 및 출구 포트(1350)에 결합되는 광-전기(OE) 컴포넌트 및 전기-광(EO) 컴포넌트를 또한 포함할 수 있다.
프로세서(1330)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(1330)는 하나 이상의 CPU 칩, 코어(예컨대, 멀티-코어 프로세서로서), 필드-프로그램 가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 및 디지털 신호 처리기(DSP)로서 구현될 수 있다. 프로세서(1330)는 입구 포트(1310), 수신기 유닛(1320), 송신기 유닛(1340), 출구 포트(1350), 및 메모리(1360)와 통신한다. 프로세서(1330)는 코딩 모듈(1370)을 포함한다. 코딩 모듈(1370)은 전술한 개시된 실시형태들을 구현한다. 예를 들면, 코딩 모듈(1370)은 다양한 네트워킹 기능을 구현, 처리, 준비, 또는 제공한다. 따라서, 코딩 모듈(1370)을 포함하면, 네트워크 디바이스(1300)의 기능이 실질적으로 향상되고 네트워크 디바이스(1300)를 다른 상태로 전환할 수 있게 된다. 대안으로서, 코딩 모듈(1370)은 메모리(1360)에 저장되며 프로세서(1330)에 의해 실행되는 명령어로서 구현된다.
메모리(1360)는 하나 이상의 디스크, 테이프 드라이브, 및 솔리드-스테이트 드라이브를 포함하고, 오버플로 데이터 저장 장치로서 사용되어, 프로그램이 실행을 위해 선택될 때 이러한 프로그램을 저장하고, 프로그램 실행 동안 판독된 명령어 및 데이터를 저장할 수 있다. 메모리(1360)는 휘발성 및/또는 비-휘발성일 수 있으며, 리드-온리 메모리(ROM), 랜덤 액세스 메모리(RAM), 터너리 콘텐츠-어드레서블 메모리(TCAM), 및/또는 정적 랜덤 액세스 메모리(SRAM)일 수 있다.
본 개시물에서는 몇몇 실시형태가 제공되었지만, 개시된 시스템 및 방법은 본 개시물의 정신 또는 범위로부터 일탈함이 없이 다수의 다른 특정한 형태로 구체화될 수 있음을 이해해야 한다. 본 발명의 실시예들은 예시적이고 비제한적인 것으로 간주되어야 하고, 본 발명은 본 명세서에서 제공된 세부 내용으로 제한되지 않는다. 예를 들어, 다양한 요소들 또는 컴포넌트들이 다른 시스템에 결합 또는 통합될 수 있거나, 또는 특정한 특징들이 생략될 수 있거나, 또는 구현되지 않을 수 있다.
또한, 다양한 실시형태들에서 별개의 또는 독립된 것으로 설명 및 예시된 기술, 시스템, 서브시스템, 및 방법은 본 개시물의 범위로부터 일탈함이 없이 다른 시스템, 모듈, 기술, 또는 방법과 결합 또는 통합될 수 있다. 서로 결합된 또는 직접 결합된 또는 통신하는 것으로 도시 또는 논의된 다른 아이템들은 전기적으로, 기계적으로, 또는 다른 방식으로 일부 인터페이스, 디바이스, 또는 중간 컴포넌트를 통해 간접적으로 결합되거나 또는 통신할 수 있다. 다른 변경, 치환, 및 개조의 실시예들은 당업자에 의해 확인될 수 있으며 본 명세서에 개시된 정신 및 범위로부터 일탈함이 없이 이루어질 수 있다.
하기의 설명에 있어서는, 본 개시물의 일부를 형성하고, 본 발명이 위치될 수 있는 특정 양태를 예시로서 도시한 첨부 도면을 참조한다.
HEVC/H.265 표준에 따르면, 35 개의 인트라 예측 모드가 이용 가능하다. 도 11에 도시된 바와 같이, 이 세트는 하기의 모드들, 즉, 평면 모드(인트라 예측 모드 인덱스가 0), DC 모드(인트라 예측 모드 인덱스가 1), 및 180° 범위를 커버하고 도 11에서 검은색 화살표로 도시된 2 내지 34의 인트라 예측 모드 인덱스 값 범위를 갖는 방향성(각도) 모드를 포함한다. 정상 비디오에 존재하는 임의의 에지 방향을 캡처하기 위해, 방향성 인트라 모드의 수는 HEVC에서 사용되는 33 개로부터 65 개로 확장된다. 추가적인 방향성 모드는 도 4에서 점선 화살표로 묘사되고, 평면 모드 및 DC 모드는 동일하게 유지된다. 인트라 예측 모드들에 의해 커버된 범위가 180°보다 넓을 수 있다는 점에 주목할만하다. 특히, 인덱스 값이 3 내지 64인 62 개의 방향성 모드는 대략 230°의 범위를 커버한다, 즉, 몇몇 모드 쌍은 정반대의 방향성을 갖는다. HEVC Reference Model(HM) 및 JEM 플랫폼의 경우에는, 단 한 쌍의 각도 모드(즉, 모드 2 및 모드 66)만이 도 4에 도시된 것처럼 정반대의 방향성을 갖는다. 예측자를 구성하기 위해, 종래의 각도 모드들은 참조 샘플들을 취하고 (필요에 따라) 이를 필터링하여 샘플 예측자를 얻는다. 예측자를 구성하는 데 필요한 참조 샘플의 수는 보간에 사용되는 필터의 길이에 의존한다(예컨대, 이중선형(bilinear) 필터 및 큐빅 필터는 제각기 길이가 2 및 4이다).
실시형태들에 있어서, 예컨대, 현재 개발되고 있는 다용도 비디오 코딩(Versatile Video Coding)(VVC)이라고 하는 최신 비디오 코딩 표준에 따르면, 이진 및 터너리 분할 세그먼트화 구조를 사용하는 결합된 쿼드-트리 중첩 멀티-타입 트리가 코딩 트리 단위의 파티셔닝에 예로서 사용된다. 코딩 트리 단위 내의 코딩 트리 구조에 있어서는, CU가 정사각형 또는 직사각형 형상을 가질 수 있다. 예를 들어, 코딩 트리 단위(CTU)는 먼저 쿼터너리(quaternary) 트리로 파티셔닝된다. 이어서, 쿼터너리 트리 리프 노드가 멀티-타입 트리 구조로 더 파티셔닝될 수 있다. 멀티-타입 트리 구조에는, 4 가지 분할 타입, 즉, 수직 이진 분할(SPLIT_BT_VER), 수평 이진 분할(SPLIT_BT_HOR), 수직 터너리 분할(SPLIT_TT_VER), 및 수평 터너리 분할(SPLIT_TT_HOR)이 있을 수 있다. 멀티-타입 트리 리프 노드를 코딩 단위(CU)라고 하고, CU가 최대 변환 길이에 대하여 지나치게 크지 않다면, 이 세그먼트화가 어떠한 추가적인 파티셔닝 없이 예측 및 변환 처리에 사용된다. 이는, 대부분의 경우, CU, PU 및 TU가 중첩 멀티-타입 트리 코딩 블록 구조를 갖는 쿼드트리에서 동일한 블록 크기를 갖는다는 것을 의미한다. 최대 지원 변환 길이가 CU의 컬러 성분의 폭 또는 높이보다 작을 때 중첩 멀티-타입 트리 코딩 트리 구조를 갖는 쿼드트리에서 파티션 분할 정보의 고유한 시그널링 메커니즘에 예외가 발생한다. 시그널링 메커니즘에서, 코딩 트리 단위(CTU)는 쿼터너리 트리의 루트로서 처리되고, 먼저 쿼터너리 트리 구조로 파티셔닝된다. 이후, 각각의 쿼터너리 트리 리프 노드(이를 허용할 만큼 충분히 클 때)가 멀티-타입 트리 구조로 더 파티셔닝된다. 멀티-타입 트리 구조에서는, 제1 플래그(mtt_split_cu_flag)는 노드가 더 파티셔닝되는지의 여부를 나타내기 위해 시그널링되고; 노드가 더 파티셔닝될 경우, 제2 플래그(mtt_split_cu_vertical_flag)가 분할 방향을 나타내기 위해 시그널링되고, 이어서 제3 플래그(mtt_split_cu_binary_flag)가 해당 분할이 이진 분할인지 또는 터너리 분할인지의 여부를 나타내기 위해 시그널링된다. mtt_split_cu_vertical_flag의 값 및 mtt_split_cu_binary_flag의 값에 기초하여, CU의 멀티-타입 트리 분할 모드(MttSplitMode)가 미리 정의된 규칙 또는 테이블에 기초하여 디코더에 의해 도출될 수 있다. VVC 하드웨어 디코더에서의 특정 설계, 예를 들어, 64×64 루마 블록 및 32×32 크로마 파이프라이닝 설계의 경우, 도 6에 도시된 바와 같이, 루마 코딩 블록의 폭 또는 높이가 64보다 클 때에는 TT 분할이 금지된다는 점에 유의해야 한다. TT 분할은, 크로마 코딩 블록의 폭 또는 높이가 32보다 클 때에도 금지된다. 파이프라이닝 설계는 영상을, 영상에서 비-중첩 단위로서 정의된 가상 파이프라인 데이터 단위(VPDU)로 나누게 된다. 하드웨어 디코더에 있어서, 연속적인 VPDU들은 다수의 파이프라인 단계에 의해 동시에 처리될 수 있다. VPDU 크기는 대부분의 파이프라인 단계들에서 대략적으로 버퍼 크기에 비례하므로, VPDU 크기를 작게 유지하는 것이 중요하다. 대부분의 하드웨어 디코더에 있어서, VPDU 크기는 최대 변환 블록(TB) 크기로 설정될 수 있다. 그러나, VVC에서는, 터너리 트리(TT) 및 이진 트리(BT) 파티션으로 인해 VPDU 크기가 증가될 수 있다.
또한, 트리 노드 블록의 일부가 하부 또는 우측 영상 경계를 넘을 경우, 트리 노드 블록은 모든 코딩된 CU의 샘플들 전부가 영상 경계의 안으로 위치될 때까지 강제로 분할된다는 점에 유의해야 한다.
실시예로서, 인트라 서브-파티션(Intra Sub-Partitions)(ISP) 툴은 루마 인트라 예측 블록들을 블록 크기에 따라 수직 또는 수평으로 2 개 또는 4 개로 나눌 수 있다.
인트라 예측(Intra-Prediction)
인트라 예측 모드 세트는 35 개의 상이한 인트라 예측 모드, 예컨대, DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드, 또는, 예컨대, HEVC에 정의된 바와 같은 방향성 모드를 포함할 수 있거나, 또는 67 개의 상이한 인트라 예측 모드, 예컨대, DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드, 또는, 예컨대, VVC에 정의된 바와 같은 방향성 모드를 포함할 수 있다. 실시예로서, 종래의 몇몇 각도 인트라 예측 모드는, 예컨대, VVC에 정의된 바와 같이, 비-정사각형 블록에 대하여 광각 인트라 예측 모드로 적응적으로 대체된다. 다른 실시예로서, DC 예측에 대한 나누기 연산을 피하기 위해, 긴 변만이 비-정사각형 블록들의 평균을 계산하기 위해 사용된다. 그리고, 평면 모드의 인트라 예측의 결과는 위치 종속 인트라 예측 결합(PDPC) 방법에 의해 더 수정될 수 있다.
인트라 예측 유닛은 인트라 예측 모드 세트 중의 인트라 예측 모드에 따라 인트라 예측 블록을 생성하기 위해 동일한 현재의 영상의 이웃 블록들의 복원된 샘플들을 사용하도록 구성된다.
인트라 예측 유닛(또는 일반적으로 모드 선택 유닛)은, 예컨대, 비디오 디코더가 디코딩을 위해 예측 파라미터들을 수신 및 사용할 수 있도록, 인트라 예측 파라미터(또는 일반적으로 블록에 대하여 선택된 인트라 예측 모드를 나타내는 정보)를 인코딩된 영상 데이터에 포함되는 신택스 요소 형태로 엔트로피 인코딩 유닛에 출력하도록 더 구성된다.
인터 예측(Inter-Prediction)
(또는 가능한) 인터 예측 모드 세트는 가용 참조 영상(즉, 예컨대, DPB에 저장된 이전의 적어도 부분적으로 디코딩된 영상) 및 다른 인터 예측 파라미터, 예컨대, 전체 참조 영상 또는 단지 일부분, 예컨대, 참조 영상의 현재의 블록의 영역 주변의 검색 윈도우 영역이 최선의 매칭 참조 블록을 검색하는 데 사용되는지의 여부, 및/또는 예컨대, 픽셀 보간, 예컨대, 하프/세미-펠, 쿼터-펠 및/또는 1/16 펠 보간이 적용되는지의 여부에 의존한다.
상기 예측 모드들 외에, 스킵 모드, 직접 모드 및/또는 다른 인터 예측 모드들이 적용될 수 있다.
예를 들어, 확장된 병합 예측의 경우, 이러한 모드의 병합 후보 목록은 다음과 같은 5 가지 타입의 후보, 즉, 공간상의 이웃 CU들로부터의 공간 MVP(Spatial MVP), 병치된 CU들로부터의 시간 MVP(Temporal MVP), FIFO 테이블로부터의 이력-기반 MVP(History-based MVP), 쌍 평균 MVP(Pairwise average MVP) 및 제로 MV(Zero MV)를 순서대로 포함하여 구성된다. 그리고, 양방향-매칭 기반의 디코더 측 모션 벡터 개량(DMVR)이 적용되어 병합 모드의 MV들의 정확도를 증가시킬 수 있다. MVD를 갖는 병합 모드(MMVD)는 모션 벡터 차이를 갖는 병합 모드에서 비롯된다. MMVD 플래그는 MMVD 모드가 CU에 사용되는지의 여부를 특정하기 위해 스킵 플래그 및 병합 플래그를 송신한 직후에 시그널링된다. 그리고, CU-레벨 적응형 모션 벡터 해상도(AMVR) 스킴이 적용될 수 있다. AMVR은 CU의 MVD가 상이한 정밀도들로 코딩될 수 있게 한다. 현재의 CU에 대한 예측 모드에 따라, 현재의 CU의 MVD가 적응적으로 선택될 수 있다. CU가 병합 모드로 코딩될 경우, 결합된 인터/인트라 예측(CIIP) 모드가 현재의 CU에 적용될 수 있다. 인터 예측 신호 및 인트라 예측 신호의 가중 평균화가 수행되어 CIIP 예측을 얻는다. 아핀(affine) 모션 보상된 예측의 경우, 블록의 아핀 모션 필드가 2 개의 제어 포인트 모션 벡터(4-파라미터) 또는 3 개의 제어 포인트 모션 벡터(6-파라미터)의 모션 정보에 의해 설명된다. 서브블록-기반의 시간 모션 벡터 예측(SbTMVP)은 HEVC에서의 시간 모션 벡터 예측(TMVP)과 유사하지만, 현재의 CU 내의 서브-CU들의 모션 벡터들을 예측한다. 이전에 BIO로 인용되었던 양방향 광학 흐름(BDOF)은, 특히, 곱셈의 횟수 및 곱셈기의 크기의 관점에서 훨씬 적은 계산을 필요로 하는 더욱 단순한 버전이다. 삼각형 파티션 모드의 경우, 이러한 모드에서는, CU가 대각선 분할 또는 역-대각선 분할을 사용해서 2 개의 삼각형 형상의 파티션으로 균등하게 분할된다. 그 밖에, 양방향-예측(bi-prediction) 모드는 단순 평균화를 넘어 확장되어서 2 개의 예측 신호의 가중 평균화를 허용한다.
인터 예측 유닛은 모션 추정(ME) 유닛 및 모션 보상(MC) 유닛(도 2에는 모두 도시되지 않음)을 포함할 수 있다. 모션 추정 유닛은 영상 블록(현재의 영상의 현재의 영상 블록) 및 디코딩된 영상, 또는 적어도 하나의 또는 복수의 사전에 복원된 블록, 예컨대, 모션 추정을 위해 하나 또는 복수의 다른/상이한 사전에 디코딩된 영상의 복원된 블록을 수신 또는 취득하도록 구성될 수 있다. 예컨대, 비디오 시퀀스는 현재의 영상 및 사전에 디코딩된 영상을 포함할 수 있거나, 다시 말해, 현재의 영상 및 사전에 디코딩된 영상은 비디오 시퀀스를 형성하는 일련의 영상의 일부일 수 있거나 또는 이를 형성할 수 있다.
인코더는, 예컨대, 복수의 다른 영상들의 동일한 또는 상이한 영상들의 복수의 참조 블록으로부터 참조 블록을 선택하고 참조 영상(또는 참조 영상 인덱스) 및/또는 참조 블록의 위치(x, y 좌표)와 현재의 블록의 위치 사이의 오프셋(공간 오프셋)을 모션 추정 유닛에 대한 인터 예측 파라미터로서 제공하도록 구성될 수 있다. 이 오프셋을 모션 벡터(MV)라고도 한다.
모션 보상 유닛은 인터 예측 파라미터를 취득, 예컨대, 수신하고, 인터 예측 파라미터에 기초하여 또는 이를 사용해서 인터 예측을 수행하여 인터 예측 블록을 취득하도록 구성된다. 모션 보상 유닛에 의해 수행되는 모션 보상은 모션 추정에 의해 결정된 모션/블록 벡터에 기초하여 예측 블록을 페치 또는 생성하는 것, 가능하게는 서브픽셀 정밀도에 대한 보간을 수행하는 것을 수반할 수 있다. 보간 필터링은 기지의 픽셀 샘플들로부터 추가적인 픽셀 샘플들을 생성할 수 있기 때문에, 영상 블록을 코딩하는 데 사용될 수 있는 후보 예측 블록의 수가 잠재적으로 증가된다. 현재의 영상 블록의 PU에 대한 모션 벡터를 수신하면, 모션 보상 유닛은 모션 벡터가 가리키는 예측 블록을 참조 영상 목록들 중 하나에 위치시킬 수 있다.
모션 보상 유닛은 또한, 비디오 슬라이스의 영상 블록들을 디코딩함에 있어서 비디오 디코더(30)에 의해 사용되는 블록들 및 비디오 슬라이스들과 연관되는 신택스 요소들을 생성할 수 있다. 슬라이스들 및 각각의 신택스 요소들에 외에, 또는 대안으로서, 타일 그룹들 및/또는 타일들 및 각각의 신택스 요소들이 생성 또는 사용될 수 있다.
도 20에 도시된 바와 같이, 본 발명의 실시형태에 있어서, 비디오 코딩 방법은 이하의 단계들을 포함할 수 있다.
S2001: 비디오 비트스트림을 취득하는 단계.
디코더 측이 다른 측(인코더 측 또는 네트워크 송신기 측)으로부터 인코딩된 비디오 비트스트림을 수신하거나, 또는 디코더 측이 디코더 측의 메모리에 저장된 인코딩된 비디오 비트스트림을 판독한다.
인코딩된 비디오 비트스트림은 인코딩된 영상 데이터, 예컨대, 인코딩된 비디오의 영상 블록들 및 연관된 신택스 요소들을 나타내는 데이터를 디코딩하기 위한 정보를 포함한다.
S2002: 현재의 코딩 블록의 예측된 샘플들이 비디오 비트스트림에 따라 인트라 예측 또는 인터 예측을 사용해서 취득되는지의 여부를 판정하는 단계.
디코더 측에서, 현재의 코딩 블록은 디코더에 의해 현재 복원되고 있는 블록이다. 현재의 코딩 블록은 비디오의 프레임 또는 영상에 있다.
현재의 코딩 블록의 예측된 샘플들이 인트라 예측 또는 인터 예측을 사용해서 취득되는지의 여부는 비디오 비트스트림에서의 신택스 요소들에 따라 결정될 수 있다.
인터 예측 또는 인트라 예측을 사용하는 현재의 코딩 블록을 표시하기 위해 비디오 비트스트림에서 하나의 신택스 요소가 사용될 수 있다. 예를 들어, 인트라 예측 프로세스 또는 인터 예측 프로세스가 현재의 코딩 블록에 사용된다는 것을 표시하기 위해 비트스트림에서 하나의 플래그가 사용된다. 플래그의 값이 1(또는 다른 값들)일 경우, 현재의 코딩 블록의 예측된 샘플들은 인트라 예측을 사용해서 취득되거나; 또는 플래그의 값이 0(또는 다른 값들)일 경우, 현재의 코딩 블록의 예측된 샘플들은 인터 예측을 사용해서 취득된다.
인터 예측 또는 인트라 예측을 사용하는 현재의 코딩 블록을 표시하기 위해 2 개 이상의 신택스 요소가 사용될 수도 있다. 예를 들어, 인트라 예측 프로세스가 현재의 코딩 블록에 사용되는지의 여부를 표시하기 위해 비트스트림에서 하나의 표시 정보(예를 들어, 플래그)가 사용되고, 인터 예측 프로세스가 현재의 코딩 블록에 사용되는지의 여부를 표시하기 위해 비트스트림에서 다른 표시 정보(예를 들어, 다른 플래그)가 사용된다.
현재의 코딩 블록의 예측된 샘플들이 인트라 예측을 사용해서 취득된다고 결정되면, 단계 S2003으로 진행한다. 현재의 코딩 블록의 예측된 샘플들이 인터 예측을 사용해서 취득된다고 결정되면, 단계 S2006으로 진행한다.
S2003: 현재의 코딩 블록의 인트라 예측 모드 및 현재의 코딩 블록 내의 예측된 샘플의 위치에 따라 제1 서브픽셀 오프셋 값을 취득하는 단계.
실시예에 있어서, 현재의 코딩 블록의 인트라 예측 모드는 비디오 비트스트림에 따라 취득될 수도 있다. 도 4는 예컨대, VVC에 대하여 제안된 바와 같은 67 개의 인트라 예측 모드의 실시예를 도시하고, 67 개의 인트라 예측 모드 중 복수의 인트라 예측 모드는, 평면 모드(인덱스 0), dc 모드(인덱스 1), 및 인덱스 2 내지 66을 가진 각도 모드를 포함하고, 도 4에서 좌하단의 각도 모드는 인덱스 2를 나타내고, 인덱스의 숫자는 인덱스 66이 도 4의 가장 우상단의 각도 모드로 될 때까지 증분된다.
도 11은 HEVC UIP 스킴에서 사용되는 복수의 인트라 예측 모드의 개략도를 예시한다. 휘도 블록의 경우, 인트라 예측 모드는 최대 36 개의 인트라 예측 모드를 포함할 수 있으며, 이는 3 개의 비-방향성 모드 및 33 개의 방향성 모드를 포함할 수 있다. 비-방향성 모드는 평면 예측 모드, 평균 (DC) 예측 모드, 및 CfL(chroma from luma) (LM) 예측 모드를 포함할 수 있다. 평면 예측 모드는 블록의 경계로부터 도출되는 수평 및 수직 구배를 가진 블록 진폭면을 추정함으로써 예측을 수행할 수 있다. DC 예측 모드는 블록 경계의 평균값과 매칭되는 값을 가진 평탄한 블록면을 추정함으로써 예측을 수행할 수 있다. LM 예측 모드는 블록에 대한 루마 값에 매칭되는 블록에 대한 크로마 값을 추정함으로써 예측을 수행할 수 있다. 방향성 모드는 도 11에 도시된 바와 같이 인접 블록들에 기초하여 예측을 수행할 수 있다.
현재의 코딩 블록의 인트라 예측 모드는 현재의 코딩 블록의 비디오 비트스트림을 파싱하여 취득될 수 있다. 실시예에 있어서, 현재의 코딩 블록에 대한 최고 확률 모드(Most Probable Modes, MPM) 플래그의 값이 비디오 비트스트림에 따라 취득된다. 실시예에 있어서, MPM 플래그의 값이 참일 때(예를 들어, MPM 플래그의 값이 1임), 인덱스의 값이 취득되고, 인덱스의 값은 MPM에서 현재의 코딩 블록의 인트라 예측 모드 값을 표시하는 데 사용된다.
다른 실시예에 있어서, MPM 플래그의 값이 참일 때(예를 들어, MPM 플래그의 값이 1임), 제2 플래그(예를 들어, 평면 플래그)의 값이 취득된다. 제2 플래그의 값이 거짓일 때(실시예에 있어서, 제2 플래그의 값이 거짓인 것은 현재의 코딩 블록의 인트라 예측 모드가 평면 모드가 아님을 나타냄), 인덱스의 값이 취득되고, 인덱스의 값은 MPM에서 현재의 코딩 블록의 인트라 예측 모드 값을 표시하는 데 사용된다.
실시예에 있어서, 신택스 요소 intra_luma_mpm_flag[x0][y0], intra_luma_mpm_idx[x0][y0] 및 intra_luma_mpm_remainder[x0][y0]는 루마 샘플들에 대하여 인트라 예측 모드를 특정한다. 어레이 인덱스 x0, y0은 영상의 좌상단 루마 샘플에 대한 고려된 예측 블록의 좌상단 루마 샘플의 위치 (x0, y0)를 특정한다. intra_luma_mpm_flag[x0][y0]이 1일 경우, 인트라 예측 모드는 이웃하는 인트라 예측된 예측 단위로부터 유추될 수 있다.
실시예에 있어서, MPM 플래그의 값이 거짓일 때(예를 들어, MPM 플래그의 값이 0임), 인덱스의 값이 취득되고, 인덱스의 값은 비-MPM에서 현재의 코딩 블록의 인트라 예측 모드 값을 표시하는 데 사용된다.
현재의 코딩 블록 내의 예측된 샘플의 위치는 인트라 예측 모드의 구배에 따라 취득된다. 예측된 블록(예컨대, 현재의 코딩 블록) 내의 샘플들의 위치는 한 쌍의 정수값 (xp, yp)에 의해 좌상단의 예측된 샘플의 위치에 대하여 정의되고, xp는 좌상단의 예측된 샘플에 대한 예측된 샘플의 수평 오프셋이고 yp는 좌상단의 예측된 샘플에 대한 예측된 샘플의 수직 오프셋이다. 좌상단의 예측된 샘플은 xp=0, yp=0으로서 정의되는 위치를 갖는다.
참조 샘플들로부터 예측된 샘플들을 생성하기 위해, 하기의 단계들이 수행된다. 2 개의 인트라 예측 모드 범위가 정의된다. 제1 인트라 예측 모드 범위는 수직-배향 예측에 대응하고, 제2 인트라 예측 모드 범위는 수평-배향 모드에 대응한다. 예측된 블록에 대하여 특정된 인트라 예측 모드가 제1 인트라 예측 모드 범위에 속할 경우, 예측된 샘플들의 블록은 위치 (x, y)로 더 보내지고, x는 xp와 같게 설정되고 y는 yp와 같게 설정된다. 예측된 블록에 대하여 특정된 인트라 예측 모드가 제2 인트라 예측 모드 범위에 속할 경우, 예측된 샘플들의 블록은 위치 (x, y)로 더 보내지고, x는 yp와 같게 설정되고 y는 xp와 같게 설정된다. 일부 실시예들에 있어서, 제1 인트라 예측 모드 범위는 [34, 80]으로 정의된다. 제2 인트라 예측 모드 범위는 [-14, -1] ∪ [1, 33]으로 정의된다.
역 각도 파라미터 invAngle은 intraPredAngle에 기초하여 다음과 같이 도출된다.
각각의 인트라 예측 모드는 "intraPredAngle"이라고도 하는 연관된 인트라 예측 변수를 갖는다. 이 연관관계는 표 8-8에 도시된다.
"iFact"로 표시되고 "제1 서브픽셀 오프셋 값"이라고도 하는 서브픽셀 오프셋은 다음 식을 사용해서 정의된다.
이 식에서, refIdx는 예측된 블록의 경계로부터 설정되는 참조 샘플의 오프셋을 표시한다. 루마 성분에 대하여 이 값이, 예컨대, 다음과 같이 취득될 수 있다.
신택스 요소 "intra_luma_ref_idx"의 값이 비트스트림에서 시그널링된다.
예측된 샘플들을 취득하기 위한 프로세스의 실시형태(VVC 표준, JVET-O2001에 설명되는 바와 같음)가 더 주어지며, 위치 (x, y)는 인트라 예측 모드가 수평 또는 수직하게 배향되는지의 여부에 의존하지 않고 항상 x=xp 및 y=yp로 정의된다.
예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출되며, 여기서 x = 0..nTbW - 1, y = 0..nTbH - 1이다.
― predModeIntra가 34보다 크거나 같으면, 다음과 같은 순서의 단계들이 적용된다.
1. 참조 샘플 어레이 ref[x]는 다음과 같이 특정된다.
― 다음이 적용된다.
― intraPredAngle이 0보다 작으면, 메인 참조 샘플 어레이는 다음과 같이 확장된다.
― 그렇지 않으면,
― 추가적인 샘플 ref[refW + refIdx +x]는 다음과 같이 도출되고, 여기서 x = 1..(Max(1, nTbW/nTbH) * refIdx + 2)이다.
2. 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출되고, 여기서 x = 0..nTbW - 1, y = 0..nTbH - 1이다.
― 인덱스 변수 iIdx 및 곱셈 인자 iFact는 다음과 같이 도출된다.
― cIdx가 0이면, 다음이 적용된다.
― 보간 필터 계수 fT[j]는 다음과 같이 도출되고, 여기서 j = 0..3이다.
― 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면(cIdx가 0이 아니면), iFact의 값에 따라, 다음이 적용된다.
― iFact가 0이 아니면, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면(predModeIntra가 34보다 작으면), 다음과 같은 순서의 단계들이 적용된다.
1. 참조 샘플 어레이 ref[x]는 다음과 같이 특정된다.
― 다음이 적용된다.
― intraPredAngle이 0보다 작으면, 메인 참조 샘플 어레이는 다음과 같이 확장된다.
― 그렇지 않으면,
― 추가적인 샘플 ref[refH + refIdx + x]는 다음과 같이 도출되고, 여기서 x = 1..(Max(1, nTbW/nTbH) * refIdx + 2)이다.
2. 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출되고, 여기서 x = 0..nTbW - 1, y = 0..nTbH - 1이다.
― 인덱스 변수 iIdx 및 곱셈 인자 iFact는 다음과 같이 도출된다.
― cIdx가 0이면, 다음이 적용된다.
― 보간 필터 계수 fT[j]는 다음과 같이 도출되고, 여기서 j = 0..3이다.
― 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면(cIdx가 0이 아니면), iFact의 값에 따라, 다음이 적용된다.
― iFact가 0이 아니면, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
S2004: 제1 서브픽셀 오프셋 값에 기초하여 필터 계수를 취득하는 단계.
실시예에 있어서, 제1 서브픽셀 오프셋 값에 기초하여 필터 계수를 취득하는 것은 미리 정의된 룩업 테이블 및 제1 서브-픽셀 오프셋 값에 기초하여 필터 계수를 취득하는 것을 의미한다. 실시예에 있어서, 제1 서브픽셀 오프셋 값은 인덱스로서 사용되고, 미리 정의된 룩업 테이블은 필터 계수와 서브픽셀 오프셋 사이의 맵핑 관계를 설명하는 데 사용된다.
실시예에 있어서, 미리 정의된 룩업 테이블은 다음과 같이 설명된다.
여기서, "서브픽셀 오프셋(Subpixel offset)" 칼럼은 1/32 서브픽셀 해상도로 정의되고, c0, c1, c2, c3은 필터 계수이다.다른 실시예에 있어서, 미리 정의된 룩업 테이블은 다음과 같이 설명된다.
여기서, "서브픽셀 오프셋(Subpixel offset)" 칼럼은 1/32 서브픽셀 해상도로 정의되고, c0, c1, c2, c3은 필터 계수이다.다른 가능한 구현 실시형태에 있어서, 인트라 예측 및 인터 예측에 대한 보간 필터 계수 도출 프로세스의 결과는 4-탭 필터의 계수이다.
가능한 일 구현 실시형태에 있어서, 보간 필터 계수 도출 프로세스는 인트라 예측에 사용되는 메인 참조 변의 크기가 임계치보다 작거나 같을 때 선택된다.
실시예에 있어서, 필터 계수는 블록의 폭 값 또는 블록의 높이 값에 의존하는 가우시안 또는 큐빅으로 되도록 선택된다. 폭을 사용할지 또는 높이를 사용할지에 대한 판정은 메인 참조 변 선택에 대한 판정과 일치된다. 인트라 예측 모드의 값이 대각선 모드의 값보다 크거나 같을 경우, 참조 샘플의 상변은 메인 참조 변이 되도록 선택되고, 폭 값은 사용되는 보간 필터를 결정하도록 선택된다. 인트라 예측 모드의 값이 대각선 모드의 값보다 작을 경우, 메인 변의 참조는 블록의 좌변으로부터 선택되고 높이 값은 필터 선택 프로세스를 제어하는 데 사용된다. 구체적으로, 선택된 변의 길이가 8 개의 샘플보다 작거나 같으면, 4-탭 큐빅 필터가 적용된다. 선택된 변의 길이가 8 개의 샘플보다 크면, 보간 필터는 4-탭 가우시안 필터이다.
각각의 인트라 예측 모드에 대해서는, 하나의 인트라 예측 모드에 대응하는 하나의 값이 존재한다. 따라서, 상이한 인트라 예측 모드 값들 사이의 값 관계(예컨대, ~보다 적은, ~와 같은, 또는 ~보다 큰)는 메인 변 참조를 선택하는 데 사용될 수 있다.
도 12는 32×4 블록의 경우 대각선 모드(45°로 표시됨)보다 작은 모드 및 큰 모드에 대한 선택의 실시예를 도시한다. 도 12에 도시된 바와 같이, 현재의 코딩 블록의 인트라 예측 모드에 대응하는 값이 대각선 모드에 대응하는 값보다 작으면, 현재의 코딩 블록의 좌변(높이)이 메인 참조 변으로서 선택된다. 이 경우, 예측된 블록에 대하여 특정된 인트라 예측 모드는 수평-배향 모드이고, 즉, 이 인트라 예측 모드는 제2 인트라 예측 모드 범위에 속한다. 좌변이 임계치(예컨대, 8 개의 샘플)보다 작은 4 개의 샘플을 갖기 때문에, 큐빅 보간 필터가 선택된다.
현재의 코딩 블록의 인트라 예측 모드에 대응하는 값이 대각선 모드에 대응하는 값보다 크거나 같으면, 현재의 코딩 블록의 상변(폭)이 메인 참조 변으로서 선택된다. 이 경우, 예측된 블록에 대하여 특정된 인트라 예측 모드는 수직-배향 모드이고, 즉, 이 인트라 예측 모드는 제1 인트라 예측 모드 범위에 속한다. 상변이 임계치(예컨대, 8 개의 샘플)보다 큰 32 개의 샘플을 갖기 때문에, 가우스 보간 필터가 선택된다.
실시예에 있어서, 큐빅 필터가 선택되면, 예측된 샘플은 시퀀스 파라미터 세트(SPS)에서 정의된, 또는 선택된 성분의 비트 깊이로부터 도출된 허용값 범위로 더 고정된다.
실시예에 있어서, 도 8에 도시된 바와 같이, 파선으로 표시된 "크로마에 대한 6-비트 계수를 가진 4-탭 보간 필터"("통합 인트라/인터 필터"라고도 함)는 두 프로세스, 즉 인트라 및 인터 예측된 샘플들의 보간에 사용될 수 있다.
이 설계를 이용하는 실시형태는 도 9에 도시된다. 이 구현예에 있어서, 필터링 모듈은 모션 보상(906)에서 색차 샘플들의 예측과, 인트라 예측(907)의 수행시에 휘도 및 색차 샘플들을 예측하는 것 모두에 관여되는 별개의 유닛으로서 구현되고 있다. 이 구현예에 있어서, 하드웨어 필터링 부분(예컨대, 4-탭 필터(904))은 인트라 예측 프로세스 및 인터 예측 프로세스 모두에서 사용되고 있다.
다른 실시형태는 필터 계수들의 LUT들이 재사용될 때의 구현예를 도시한다(도 10 참조). 도 10은 LUT 계수들을 재사용하는 것에 기초하는 제안된 용례의 예시적인 구현예이다. 이 구현예에 있어서, 하드웨어 필터링 모듈들은 ROM에 저장된 LUT들로부터 계수들을 로딩한다. 인트라 예측 프로세스에 도시된 스위치는 인트라 예측 프로세스에 대하여 선택된 메인 변의 길이에 따라, 사용되는 필터 타입을 결정한다.
다른 실시예에 있어서, 필터 계수들은 임계치에 의존하는 가우시안 또는 큐빅으로 되도록 선택된다.
일부 실시예들에 있어서, 32×4 크기 및 4×32 크기의 블록들의 경우, 참조 샘플 필터를 결정하는 데 사용되는 임계치 모드(mT)는 도 16에 도시된 바와 같이 정의된다.
임계치 인트라 예측 각도의 값은 다음 식을 사용해서 계산될 수 있다.
,
여기서, W 및 H는 제각기 블록의 폭 및 높이이다.
실시예에 있어서, INTRA_ANGULAR2..INTRA_ANGULAR66 인트라 예측 모드들의 사양.
이 프로세스에 대한 입력들은 다음과 같다.
― 인트라 예측 모드 predModeIntra,
― 인트라 예측 참조 라인 인덱스를 특정하는 변수 refIdx,
― 변환 블록 폭을 특정하는 변수 nTbW,
― 변환 블록 높이를 특정하는 변수 nTbH,
― 참조 샘플 폭을 특정하는 변수 refW,
― 참조 샘플 높이를 특정하는 변수 refH,
― 코딩 블록 폭을 특정하는 변수 nCbW,
― 코딩 블록 높이를 특정하는 변수 nCbH,
― 참조 필터 플래그의 값을 특정하는 변수 refFilterFlag,
― 현재의 블록의 컬러 성분을 특정하는 변수 cIdx,
― 이웃하는 샘플들 p[x][y], 여기서 x = -1 - refIdx, y = -1 - refIdx..refH - 1 및 x = -refIdx..refW - 1, y = -1 - refIdx임.
이 프로세스의 출력은 예측된 샘플 predSamples[x][y]이고, 여기서 x = 0..nTbW - 1, y = 0..nTbH - 1이다.
변수 nTbS는 (Log2(nTbW) + Log2(nTbH)) >> 1과 같게 설정된다.
변수 filterFlag는 다음과 같이 도출된다.
― 다음 조건들 중 하나 이상이 참이면, filterFlag가 0으로 설정된다.
― refFilterFlag가 1임
― refIdx가 0이 아님
― IntraSubPartitionsSplitType이 ISP_NO_SPLIT와 같지 않음
― 그렇지 않으면, 다음이 적용된다.
― 변수 minDistVerHor가 Min(Abs(predModeIntra - 50), Abs(predModeIntra - 18))과 같게 설정된다.
― 변수 intraHorVerDistThres[nTbS]는 표 8-7에서 특정된다.
― 변수 filterFlag는 다음과 같이 도출된다.
― minDistVerHor이 intraHorVerDistThres[nTbS]보다 크고 refFilterFlag가 0이면, filterFlag는 1로 설정된다.
― 그렇지 않으면, filterFlag가 0으로 설정된다.
표 8-7 ― 다양한 변환 블록 크기 nTbS에 대한 intraHorVerDistThres[nTbS]의 사양
표 8-8은 predModeIntra와 각도 파라미터 intraPredAngle 사이의 맵핑 테이블을 특정한다.
표 8-8 ― intraPredAngle의 사양
역 각도 파라미터 invAngle은 intraPredAngle에 기초하여 다음과 같이 도출된다.
위상 = 0..31 및 j = 0..3인 보간 필터 계수 fC[phase][j] 및 fG[phase][j]는 표 8-9에서 특정된다.
표 8-9 ― 보간 필터 계수 fC 및 fG의 사양
S2005: 필터 계수들에 따라 인트라 예측된 샘플 값을 취득하는 단계.
인트라 예측 샘플 값은 현재의 코딩 블록의 루마 성분에 사용된다.
일 실시형태에 있어서, 인트라 예측된 샘플은 다음과 같은 서브픽셀 오프셋 및 필터 타입에 따라, 표 3으로부터 선택되는 계수로 컨볼루션함으로써 계산된다.
이 식에서 ">>"는 비트단위의 우향 시프트 동작이고, ci는 제1 서브픽셀 오프셋 값을 사용해서 도출된 필터 계수 세트의 계수를 표시하고, s(x)는 위치 (x, y)에서 인트라 예측된 샘플을 표시하고, refi+x는 참조 샘플 세트를 표시하고, refi+x는 위치 (xr, yr)에 위치되고, 이 참조 샘플 위치는 다음과 같이 정의된다.
;
실시예에 있어서, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출되고, 여기서 x = 0..nTbW - 1, y = 0..nTbH - 1이다.
― predModeIntra가 34보다 크거나 같으면, 다음과 같은 순서의 단계들이 적용된다.
3. 참조 샘플 어레이 ref[x]는 다음과 같이 특정된다.
― 다음이 적용된다.
― intraPredAngle이 0보다 작으면, 메인 참조 샘플 어레이는 다음과 같이 확장된다.
― 그렇지 않으면,
― 추가적인 샘플 ref[refW + refIdx +x]는 다음과 같이 도출되고, 여기서 x = 1..(Max(1, nTbW / nTbH) * refIdx + 2)이다.
4. 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출되고, 여기서 x = 0..nTbW - 1, y = 0..nTbH - 1이다.
― 인덱스 변수 iIdx 및 곱셈 인자 iFact는 다음과 같이 도출된다.
― cIdx가 0이면, 다음이 적용된다.
― 보간 필터 계수 fT[j]는 다음과 같이 도출되고, 여기서 j = 0..3이다.
― 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면(cIdx가 0이 아니면), iFact의 값에 따라, 다음이 적용된다.
― iFact가 0이 아니면, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면(predModeIntra가 34보다 작으면), 다음과 같은 순서의 단계들이 적용된다.
3. 참조 샘플 어레이 ref[x]는 다음과 같이 특정된다.
― 다음이 적용된다.
― intraPredAngle이 0보다 작으면, 메인 참조 샘플 어레이는 다음과 같이 확장된다.
― 그렇지 않으면,
― 추가적인 샘플 ref[refH + refIdx +x]는 다음과 같이 도출되고, 여기서 x = 1..(Max(1, nTbW / nTbH) * refIdx + 2)이다.
4. 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출되고, 여기서 x = 0..nTbW - 1, y = 0..nTbH - 1이다.
― 인덱스 변수 iIdx 및 곱셈 인자 iFact는 다음과 같이 도출된다.
― cIdx가 0이면, 다음이 적용된다.
― 보간 필터 계수 fT[j]는 다음과 같이 도출되고, 여기서 j = 0..3이다.
― 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면(cIdx가 0이 아니면), iFact의 값에 따라, 다음이 적용된다.
― iFact가 0이 아니면, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
― 그렇지 않으면, 예측 샘플 predSamples[x][y]의 값은 다음과 같이 도출된다.
S2006: 현재의 코딩 블록의 모션 정보에 따라 제2 서브픽셀 오프셋 값을 취득하는 단계
*현재의 코딩 블록의 모션 정보는 비트스트림에서 시그널링된다. 모션 정보는 인터 예측에 사용된 모션 벡터 및 다른 신택스 요소를 포함할 수 있다.
실시예에 있어서, 제1 서브픽셀 오프셋 값은 제2 서브픽셀 오프셋 값과 같을 수 있다. 다른 실시예에 있어서, 제1 서브픽셀 오프셋 값은 제2 서브픽셀 오프셋 값과 다를 수 있다.
S2007: 제2 서브픽셀 오프셋 값에 기초하여 필터 계수를 취득하는 단계.
가능한 구현 실시형태에 있어서, 인터 예측에서 사용된 보간 필터 계수 도출 프로세스는 인트라 예측에서 사용된 동일한 미리 정의된 룩업 테이블에서 수행된다. 이 실시예에 있어서, 제2 서브픽셀 오프셋 값에 기초하여 필터 계수를 취득하는 것은 미리 정의된 룩업 테이블 및 제2 서브-픽셀 오프셋 값에 기초하여 필터 계수를 취득하는 것을 의미한다. 실시예에 있어서, 제2 서브픽셀 오프셋 값은 인덱스로서 사용되고, 미리 정의된 룩업 테이블은 필터 계수와 서브픽셀 오프셋 사이의 맵핑 관계를 설명하는 데 사용된다.
실시예에 있어서, 미리 정의된 룩업 테이블은 다음과 같이 설명된다.
여기서, "서브픽셀 오프셋(Subpixel offset)" 칼럼은 1/32 서브픽셀 해상도로 정의되고, c0, c1, c2, c3은 필터 계수이다.
다른 실시예에 있어서, 미리 정의된 룩업 테이블은 다음과 같이 설명된다.
여기서, "서브픽셀 오프셋(Subpixel offset)" 칼럼은 1/32 서브픽셀 해상도로 정의되고, c0, c1, c2, c3은 필터 계수이다.
서브픽셀 오프셋의 값이 0일 경우, 인터 예측된 샘플들을 취득하는 데에는 필터 계수가 필요하지 않다. 제1의 대안적인 실시형태에 있어서, 다음 단계가 수행될 수 있다.
제2의 대안적인 실시형태에 있어서, 다음 단계가 수행될 수 있다.
제3의 대안적인 실시형태에 있어서, 다음 단계가 수행될 수 있다.
― n = 0..3인 샘플 어레이 temp[n]은 다음과 같이 도출된다.
― 예측된 크로마 샘플 값 predSampleLXC는 다음과 같이 도출된다.
상기에 개시된 3 개의 대안적인 실시형태 전부에 있어서, yFracC 및 xFracC는 0으로 설정되고, fC[0][0] = 0, fC[0][1] = 64, fC[0][2] = 0, fC[0][3] = 0이다.
다른 가능한 구현 실시형태에 있어서, 인트라 예측 및 인터 예측에 대한 보간 필터 계수 도출 프로세스의 결과는 4-탭 필터의 계수이다.
S2008: 필터 계수들에 따라 인터 예측된 샘플 값을 취득하는 단계.
가능한 구현 실시형태에 있어서, 인터 예측된 샘플 값은 현재의 코딩 블록의 크로마 성분에 사용된다.
실시예에 있어서, 크로마 샘플 보간 프로세스가 개시된다.
이 프로세스에 대한 입력들은 다음과 같다.
― 전-샘플 유닛에서의 크로마 위치 (xIntC, yIntC),
― 1/32 분수-샘플 유닛에서의 크로마 위치 (xFracC, yFracC),
― 참조 영상의 좌상단 크로마 샘플에 대한 참조 샘플 패딩을 위한 경계 블록의 좌상단 샘플을 특정하는 전-샘플 유닛에서의 크로마 위치 (xSbIntC, ySbIntC),
― 현재의 서브블록의 폭을 특정하는 변수 sbWidth,
― 현재의 서브블록의 높이를 특정하는 변수 sbHeight,
― 크로마 참조 샘플 어레이 refPicLXC.
이 프로세스의 출력은 예측된 크로마 샘플 값 predSampleLXC이다.
변수 shift1, shift2 및 shift3은 다음과 같이 도출된다.
― 변수 shift1은 Min(4, BitDepthC - 8)과 같게 설정되고, 변수 shift2는 6으로 설정되고, 변수 shift3은 Max(2, 14 - BitDepthC)와 같게 설정된다.
― 변수 picWC는 pic_width_in_luma_samples / SubWidthC와 같게 설정되고, 변수 picHC는 pic_height_in_luma_samples / SubHeightC와 같게 설정된다.
xFracC 또는 yFracC와 같은 각각의 1/32 분수 샘플 위치 p에 대한 크로마 보간 필터 계수 fC[p]는 표 8-13에서 특정된다.
변수 xOffset은 (sps_ref_wraparound_offset_minus1 + 1) * MinCbSizeY) / SubWidthC와 같게 설정된다.
전-샘플 유닛에서의 크로마 위치 (xInti, yInti)는 i = 0..3에 대하여 다음과 같이 도출된다.
― subpic_treated_as_pic_flag[SubPicIdx]가 1이면, 다음이 적용된다.
― 그렇지 않으면(subpic_treated_as_pic_flag[SubPicIdx]가 0이면), 다음이 적용된다.
전-샘플 유닛에서의 크로마 위치 (xInti, yInti)는 i = 0..3에 대하여 다음과 같이 더 수정된다.
예측된 크로마 샘플 값 predSampleLXC는 다음과 같이 도출된다.
― xFracC 및 yFracC가 모두 0이면, predSampleLXC의 값이 다음과 같이 도출된다.
*
― 그렇지 않으면, xFracC가 0이 아니고 yFracC가 0일 경우, predSampleLXC의 값은 다음과 같이 도출된다.
*
― 그렇지 않으면, xFracC가 0이고 yFracC가 0이 아닐 경우, predSampleLXC의 값은 다음과 같이 도출된다.
― 그렇지 않으면, xFracC가 0이 아니고 yFracC가 0이 아닐 경우, predSampleLXC의 값은 다음과 같이 도출된다.
― n = 0..3인 샘플 어레이 temp[n]은 다음과 같이 도출된다.
― 예측된 크로마 샘플 값 predSampleLXC는 다음과 같이 도출된다.
디코더는 상기 방법들을 수행하도록 구성되는 처리 회로를 포함한다.
본 개시물에 있어서, 상기 방법들을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이 개시된다.
*본 개시물에 있어서, 비디오 데이터를 디코딩하기 위한 디코더가 개시되고, 디코더는, 하나 이상의 프로세서; 및 프로세서에 결합되며 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함하고, 프로그래밍은, 프로세서에 의한 실행시에, 상기 방법들을 수행하도록 디코더를 구성한다.
도 18은 본 개시물의 실시형태에 따른 네트워크 디바이스(1300)의 개략도이다. 네트워크 디바이스(1300)는 본 명세서에서 설명된 바와 같은 개시된 실시형태들을 구현하는 데 적합하다. 네트워크 디바이스(1300)는 데이터를 수신하기 위한 입구 포트(1310) 및 수신기 유닛(Rx)(1320); 데이터를 처리하는 프로세서, 로직 유닛, 또는 중앙 처리 장치(CPU)(1330); 데이터를 송신하기 위한 송신기 유닛(Tx)(1340) 및 출구 포트(1350); 및 데이터를 저장하기 위한 메모리(1360)를 포함한다. 네트워크 디바이스(1300)는 광 신호 또는 전기 신호의 출입을 위해 입구 포트(1310), 수신기 유닛(1320), 송신기 유닛(1340), 및 출구 포트(1350)에 결합되는 광-전기(OE) 컴포넌트 및 전기-광(EO) 컴포넌트를 또한 포함할 수 있다.
프로세서(1330)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(1330)는 하나 이상의 CPU 칩, 코어(예컨대, 멀티-코어 프로세서로서), 필드-프로그램 가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 및 디지털 신호 처리기(DSP)로서 구현될 수 있다. 프로세서(1330)는 입구 포트(1310), 수신기 유닛(1320), 송신기 유닛(1340), 출구 포트(1350), 및 메모리(1360)와 통신한다. 프로세서(1330)는 코딩 모듈(1370)을 포함한다. 코딩 모듈(1370)은 전술한 개시된 실시형태들을 구현한다. 예를 들면, 코딩 모듈(1370)은 다양한 네트워킹 기능을 구현, 처리, 준비, 또는 제공한다. 따라서, 코딩 모듈(1370)을 포함하면, 네트워크 디바이스(1300)의 기능이 실질적으로 향상되고 네트워크 디바이스(1300)를 다른 상태로 전환할 수 있게 된다. 대안으로서, 코딩 모듈(1370)은 메모리(1360)에 저장되며 프로세서(1330)에 의해 실행되는 명령어로서 구현된다.
메모리(1360)는 하나 이상의 디스크, 테이프 드라이브, 및 솔리드-스테이트 드라이브를 포함하고, 오버플로 데이터 저장 장치로서 사용되어, 프로그램이 실행을 위해 선택될 때 이러한 프로그램을 저장하고, 프로그램 실행 동안 판독된 명령어 및 데이터를 저장할 수 있다. 메모리(1360)는 휘발성 및/또는 비-휘발성일 수 있으며, 리드-온리 메모리(ROM), 랜덤 액세스 메모리(RAM), 터너리 콘텐츠-어드레서블 메모리(TCAM), 및/또는 정적 랜덤 액세스 메모리(SRAM)일 수 있다.
도 19는 다양한 실시형태들을 구현하는 데 사용될 수 있는 장치(1500)의 블록도이다. 장치(1500)는 도 1에 도시된 바와 같은 소스 디바이스(12), 또는 도 2에 도시된 바와 같은 비디오 인코더(20), 또는 도 1에 도시된 바와 같은 수신지 디바이스(14), 또는 도 3에 도시된 바와 같은 비디오 디코더(30)일 수 있다. 부가적으로, 장치(1500)는 설명된 요소들 중 하나 이상을 호스팅할 수 있다. 일부 실시형태들에 있어서, 장치(1500)는 스피커, 마이크로폰, 마우스, 터치스크린, 키패드, 키보드, 프린터, 디스플레이 등과 같은 하나 이상의 입력/출력 디바이스를 갖춘다. 장치(1500)는 버스에 연결되는 하나 이상의 중앙 처리 장치(CPU)(1510), 메모리(1520), 대용량 스토리지(1530), 비디오 어댑터(1540), 및 I/O 인터페이스(1560)를 포함할 수 있다. 버스는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스, 비디오 버스 등을 포함하는 임의의 타입의 몇 가지 버스 아키텍처 중 하나 이상이다.
CPU(1510)는 임의의 타입의 전자 데이터 프로세서를 가질 수 있다. 메모리(1520)는 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 동기식 DRAM(SDRAM), 리드-온리 메모리(ROM), 이들의 조합 등과 같은 임의의 타입의 시스템 메모리일 수 있거나, 또는 이를 가질 수 있다. 실시형태에 있어서, 메모리(1520)는 컴퓨터 시동시에 사용하기 위한 ROM, 및 프로그램을 실행하는 동안 사용하기 위해 프로그램 및 데이터 저장 장치를 위한 DRAM을 포함할 수 있다. 실시형태들에 있어서, 메모리(1520)는 비일시적 메모리이다. 대용량 스토리지(1530)는 데이터, 프로그램, 및 그 밖의 정보를 저장하고 버스를 통해 해당 데이터, 프로그램, 및 그 밖의 정보에 액세스할 수 있게 하는 임의의 타입의 저장 장치를 포함한다. 대용량 스토리지(1530)는, 예를 들어, 솔리드 스테이트 드라이브, 하드 디스크 드라이브, 자기 디스크 드라이브, 광 디스크 드라이브 등을 하나 이상 포함할 수 있다.
비디오 어댑터(1540) 및 I/O 인터페이스(1560)는 외부 입력 및 출력 디바이스를 장치(1500)에 결합하기 위해 인터페이스를 제공한다. 예를 들어, 장치(1500)는 클라이언트들에 대한 SQL 커맨드 인터페이스를 제공할 수 있다. 예시된 바와 같이, 입력 및 출력 디바이스의 실시예들은 비디오 어댑터(1540)에 결합되는 디스플레이(1590) 및 I/O 인터페이스(1560)에 결합되는 마우스/키보드/프린터(1570)의 임의의 조합을 포함한다. 다른 디바이스들은 장치(1500)에 결합될 수 있으며, 추가적인 또는 보다 적은 인터페이스 카드가 이용될 수 있다. 예를 들어, 프린터에 직렬 인터페이스를 제공하기 위해 직렬 인터페이스 카드(도시되지 않음)가 사용될 수 있다.
장치(1500)는 또한 이더넷 케이블 등과 같은 유선 링크, 및/또는 액세스 노드 또는 하나 이상의 네트워크(1580)에 대한 무선 링크를 포함하는 하나 이상의 네트워크 인터페이스(1550)를 포함한다. 네트워크 인터페이스(1550)는 장치(1500)가 네트워크(1580)를 통해 원격 유닛과 통신할 수 있게 한다. 예를 들어, 네트워크 인터페이스(1550)는 데이터베이스에 대한 통신을 제공할 수 있다. 실시형태에 있어서, 장치(1500)는, 다른 처리 유닛들, 인터넷, 원격 스토리지 설비 등과 같은 원격 디바이스와의 데이터 처리 및 통신을 위해 로컬-에어리어 네트워크 또는 와이드-에어리어 네트워크에 결합된다.
주어진 블록 내에서 픽셀을 예측하는 데 필요한 가중 계수의 값을 계산하기 위해 구분적 선형 근사가 도입된다. 구분적 선형 근사는, 한편으로, 간단한 가중 계수 계산과 비교하여 거리-가중 예측 메커니즘의 계산 복잡성을 상당히 감소시키고, 다른 한편으로, 종래의 단순화와 비교하여 가중 계수 값의 더 높은 정확도 달성을 돕는다.
실시형태들은 영상의 상이한 부분들을 블렌딩하기 위해 하나의 픽셀로부터 다른 픽셀까지의 거리에 의존하는 가중 계수를 사용하는 메커니즘(예컨대, 이미지 처리에 있어서의 몇 가지 블렌딩 방법) 뿐만 아니라 다른 양방향 및 위치 종속 인트라 예측 기술(예컨대, PDPC의 상이한 수정들)에 적용될 수 있다.
본 개시물에서 설명되는 청구 대상 및 동작들의 구현예들은 디지털 전자 회로로, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로 구현될 수 있으며, 본 개시물에 개시된 구조들 및 그 구조 등가물들, 또는 이들의 하나 이상의 조합을 포함한다. 본 개시물에서 설명되는 청구 대상의 구현예들은 데이터 처리 장치에 의한 실행을 위해, 또는 그 동작을 제어하기 위해 컴퓨터 저장 매체에 인코딩된 하나 이상의 컴퓨터 프로그램, 즉, 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 대안으로서 또는 추가적으로, 프로그램 명령어는 인위적으로 생성된 전파되는 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치에 송신하기 위해 정보를 인코딩하도록 생성된 기계-생성 전기, 광학, 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체, 예를 들어, 컴퓨터-판독 가능 매체는, 컴퓨터-판독 가능 저장 장치, 컴퓨터-판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나, 또는 이에 포함될 수 있다. 또한, 컴퓨터 저장 매체가 전파되는 신호는 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파되는 신호에 인코딩되는 컴퓨터 프로그램 명령어의 소스 또는 수신지일 수 있다. 컴퓨터 저장 매체는 하나 이상의 별도의 물리적 및/또는 비-일시적인 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크, 또는 그 밖의 저장 장치)일 수도 있거나, 또는 이에 포함될 수 있다.
일부 구현예들에 있어서, 본 개시물에서 설명되는 동작들은 클라우드 컴퓨팅 네트워크에서의 서버에서 제공되는 호스팅된 서비스로서 구현될 수 있다. 예를 들어, 컴퓨터-판독 가능 저장 매체는 논리적으로 그룹화될 수 있고 클라우드 컴퓨팅 네트워크 내에서 액세스 가능하다. 클라우드 컴퓨팅 네트워크 내의 서버는 클라우드 기반 서비스를 제공하기 위한 클라우드 컴퓨팅 플랫폼을 포함할 수 있다. "클라우드", "클라우드 컴퓨팅", 및 "클라우드 기반"이라는 용어는 본 개시물의 범위로부터 일탈함이 없이 적절히 상호 교환 가능하게 사용될 수 있다. 클라우드 기반 서비스는 클라이언트 컴퓨터에서 로컬로 실행되는 애플리케이션을 향상, 보충, 또는 대체하기 위해 서버에 의해 제공되며 네트워크를 통해 클라이언트 플랫폼에 전달되는 호스팅된 서비스일 수 있다. 회로는 소프트웨어 업그레이드, 애플리케이션, 및 그 밖의 리소스를 빠르게 수신하기 위해 클라우드 기반 서비스를 이용할 수 있으며, 그렇지 않으면 리소스가 회로에 전달될 수 있기 전까지 너무 긴 기간이 필요해진다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려져 있음)은 컴파일러형 또는 해석형 언어, 선언형 또는 절차형 언어를 포함하여 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 자립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서 사용하기에 적합한 그 밖의 유닛으로서 포함하여 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만, 필수적인 것은 아니다. 프로그램은, 다른 프로그램 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 유지하는 파일의 일부에 저장되거나, 해당 프로그램에 전용인 단일의 파일에 저장되거나, 또는 다수의 조정된 파일(예를 들어, 하나 이상의 모듈, 서브프로그램, 또는 코드 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 단일의 컴퓨터에서 실행되도록 배치되거나, 또는 한 장소에 배치되거나 또는 다수의 장소에 걸쳐 분산되어 통신 네트워크에 의해 상호 연결되는 다수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 개시물에서 설명되는 프로세스 및 논리 흐름은 입력 데이터에 대하여 동작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은, 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)에 의해 수행될 수도 있고, 장치가 이것으로 구현될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예로서, 범용 및 특수 목적 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 어느 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 리드 온리 메모리로부터 또는 랜덤 액세스 메모리로부터 또는 이들 둘 모두로부터 명령어 및 데이터를 수신하게 된다. 컴퓨터의 필수 요소는 명령어에 따라 동작을 수행하기 위한 프로세서와, 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 스토리지 디바이스, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광 디스크를 포함하거나, 또는 이 대용량 스토리지 디바이스에 대하여 데이터를 수신하거나 또는 데이터를 전송하거나, 또는 이 둘 모두를 위해 동작 가능하게 결합된다. 그러나, 컴퓨터는 이러한 디바이스를 가질 필요가 없다. 또한, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 예를 들자면, 휴대폰, 개인용 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 위치확인 시스템(Global Positioning System)(GPS) 수신기, 또는 휴대용 스토리지 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 디바이스는, 반도체 메모리 디바이스, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기 디스크, 예를 들어, 내부 하드 디스크 또는 착탈식 디스크; 광자기 디스크; 및 CDROM 및 DVD-ROM 디스크를 예로서 포함하여, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나, 또는 특수 목적 논리 회로에 포함될 수 있다.
본 개시물이 많은 특정한 구현 상세를 포함하지만, 이들은 임의의 구현 범위 또는 청구될 수 있는 범위에 대한 제한으로서 해석되지 않아야 하며, 특정 구현예들의 특정한 구현에 대한 특정한 특징의 설명으로서 해석되어야 한다. 별도의 구현예들의 맥락에서 본 개시물에서 설명된 특정한 특징들은 단일의 구현예에서 조합으로 구현될 수도 있다. 반대로, 단일의 구현예의 맥락에서 설명된 다양한 특징들은 다수의 구현예들에서 별도로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다. 또한, 특징들이 특정 조합들로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 청구될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징은 경우에 따라 해당 조합으로부터 삭제될 수 있고, 청구된 조합은 하위 조합으로 또는 하위 조합의 변형으로 될 수 있다.
유사하게, 도면에서 동작들이 특정한 순서로 묘사되지만, 이는 이러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되는 것을 필요로 하거나 또는 예시된 모든 동작들이 수행되어 원하는 결과를 달성하는 것을 필요로 한다고 이해되지 않아야 한다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술한 구현예들에서 다양한 시스템 컴포넌트들의 분리는 모든 구현예에서 그러한 분리를 필요로 하는 것으로 이해되지 않아야 하고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일의 소프트웨어 제품에서 함께 통합될 수 있거나, 다수의 소프트웨어 제품으로 패키징될 수 있다.
따라서, 청구 대상의 특정 구현예들이 설명되었다. 다른 구현예들은 하기의 청구항들의 범위에 속한다. 경우에 따라, 청구항들에서 언급되는 동작들은 상이한 순서로 수행될 수 있으며 여전히 원하는 결과를 달성할 수 있다. 또한, 첨부 도면에서 묘사된 프로세스들은 원하는 결과를 달성하기 위해, 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하는 것은 아니다. 특정 구현예들에서는, 멀티태스킹 및 병렬 처리가 유리할 수 있다.
본 개시물에서는 몇몇 실시형태가 제공되었지만, 개시된 시스템 및 방법은 본 개시물의 정신 또는 범위로부터 일탈함이 없이 다수의 다른 특정한 형태로 구체화될 수 있음을 이해해야 한다. 본 발명의 실시예들은 예시적이고 비제한적인 것으로 간주되어야 하고, 본 발명은 본 명세서에서 제공된 세부 내용으로 제한되지 않는다. 예를 들어, 다양한 요소들 또는 컴포넌트들이 다른 시스템에 결합 또는 통합될 수 있거나, 또는 특정한 특징들이 생략될 수 있거나, 또는 구현되지 않을 수 있다.
또한, 다양한 실시형태들에서 별개의 또는 독립된 것으로 설명 및 예시된 기술, 시스템, 서브시스템, 및 방법은 본 개시물의 범위로부터 일탈함이 없이 다른 시스템, 모듈, 기술, 또는 방법과 결합 또는 통합될 수 있다. 서로 결합된 또는 직접 결합된 또는 통신하는 것으로 도시 또는 논의된 다른 아이템들은 전기적으로, 기계적으로, 또는 다른 방식으로 일부 인터페이스, 디바이스, 또는 중간 컴포넌트를 통해 간접적으로 결합되거나 또는 통신할 수 있다. 다른 변경, 치환, 및 개조의 실시예들은 당업자에 의해 확인될 수 있으며 본 명세서에 개시된 정신 및 범위로부터 일탈함이 없이 이루어질 수 있다.
아래에서는, 본 발명의 추가적인 실시형태들을 설명하고, 실시형태들의 번호는 이전의 텍스트에서 사용된 번호와 반드시 일치되지 않아도 된다.
실시형태 1. 인트라 예측을 위한 방법으로서, 이 방법은 색차 성분에 대한 보간 필터를 블록의 인트라 예측을 위한 보간 필터로서 사용하는 단계를 포함한다.
실시형태 2. 실시형태 1의 방법으로서, 색차 성분에 대한 보간 필터의 룩업 테이블은 인트라 예측을 위한 보간 필터의 룩업 테이블과 동일하다.
실시형태 3. 실시형태 1의 방법으로서, 색차 성분에 대한 보간 필터의 룩업 테이블은 인트라 예측을 위한 보간 필터의 룩업 테이블과 동일하지 않다.
실시형태 4. 실시형태 1 내지 3 중 어느 하나의 방법으로서, 보간 필터는 4 탭 필터이다.
실시형태 5. 실시형태 1 내지 4 중 어느 하나의 방법으로서, 색차 성분에 대한 보간 필터의 룩업 테이블은 다음과 같다.
실시형태 6. 인트라 예측을 위한 방법으로서, 이 방법은 블록의 인트라 예측을 위한 보간 필터 세트 중에서 보간 필터를 선택하는 단계를 포함한다.실시형태 7. 실시형태 6의 방법으로서, 보간 필터 세트는 가우스 필터 및 큐빅 필터를 포함한다.
실시형태 8. 실시형태 6 또는 7의 방법으로서, 선택된 보간 필터의 룩업 테이블은 색차 성분에 대한 보간 필터의 룩업 테이블과 동일하다.
실시형태 9. 실시형태 6 내지 8 중 어느 하나의 방법으로서, 선택된 보간 필터는 4-탭 필터이다.
실시형태 10. 실시형태 6 내지 9 중 어느 하나의 방법으로서, 선택된 보간 필터는 큐빅 필터이다.
실시형태 11. 실시형태 6 내지 10 중 어느 하나의 방법으로서, 선택된 보간 필터의 룩업 테이블은 다음과 같다.
실시형태 12. 실시형태 1 내지 11 중 어느 하나의 실시형태에 따른 방법을 수행하기 위한 처리 회로를 포함하는 인코더이다.실시형태 13. 실시형태 1 내지 11 중 어느 하나의 실시형태에 따른 방법을 수행하기 위한 처리 회로를 포함하는 디코더이다.
실시형태 14. 실시형태 1 내지 11 중 어느 하나의 실시형태에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이다.
실시형태 15. 디코더로서,
하나 이상의 프로세서; 및
프로세서에 결합되며 프로세서에 의한 실행을 위해 프로그래밍을 저장하는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함하고, 프로그래밍은, 프로세서에 의한 실행시에, 디코더를 실시형태 1 내지 11 중 어느 하나의 실시형태에 따른 방법을 수행하도록 구성한다.
실시형태 16. 인코더로서,
하나 이상의 프로세서; 및
프로세서에 결합되며 프로세서에 의한 실행을 위해 프로그래밍을 저장하는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함하고, 프로그래밍은, 프로세서에 의한 실행시에, 인코더를 실시형태 1 내지 11 중 어느 하나의 실시형태에 따른 방법을 수행하도록 구성한다.
일 실시형태에 있어서, 비디오 코딩 방법이 개시되고, 방법은,
참조 블록의 휘도 및 색차 샘플에 적용되는 서브픽셀 보간 필터(예를 들어, 하나의 필터, 또는 일반적으로 몇 개의 필터가 MC 보간에 대하여 정의될 수 있음)를 포함하는 블록의 인터 예측 프로세스와,
휘도 및 색차 참조 샘플에 적용되는 서브픽셀 보간 필터(예를 들어, 하나의 필터, 또는 일반적으로 몇 개의 필터가 인트라 참조 샘플 보간에 대하여 정의될 수 있음)를 포함하는 블록의 인트라 예측 프로세스를 포함하고,
서브픽셀 보간 필터는 참조 샘플 위치와 보간된 샘플 위치 사이의 서브픽셀 오프셋에 기초하여 선택되고, 인트라 예측 프로세스와 인터 예측 프로세스에서의 동일한 상기 서브픽셀 오프셋들에 대하여, 인트라 예측 프로세스의 필터(예컨대, 인트라 참조 샘플 보간에 대하여, 하나 이상의 필터가 사용될 수 있음)는 인터 예측 프로세스에 대한 필터와 동일한 것으로 선택된다.
다른 실시형태에 있어서, 주어진 서브픽셀 오프셋에 대하여 인트라 예측 프로세스의 필터(예를 들어, 유일한 필터 또는 필터 세트 중 하나가 인트라 예측 프로세스에 사용될 수 있음)가 필터 세트로부터 선택되고(예를 들어, 하나 또는 몇 개의 필터가 MC 보간에 대하여 이용 가능할 수 있음), 그 중 하나가 인터 예측 프로세스에 대한 필터와 동일하다.
다른 실시형태에 있어서, 인터 예측 프로세스에서 색차 샘플들에 적용되는 필터는 인트라 예측 프로세스에서 휘도 및 색차 참조 샘플들에 적용되는 필터와 동일하다.
다른 실시형태에 있어서, 인터 예측 프로세스에서 휘도 및 색차 샘플들에 적용되는 필터는 인트라 예측 프로세스에서 휘도 및 색차 참조 샘플들에 적용되는 필터와 동일하다.
다른 실시형태에 있어서, 인트라 예측 프로세스의 필터는, 인트라 예측 프로세스에 사용되는 메인 참조 변의 크기가 임계치보다 작을 경우에, 인터 예측 프로세스에 대한 필터와 동일한 것으로 선택된다.
다른 실시형태에 있어서, 변 크기 임계치는 16 개의 샘플이다.
다른 실시형태에 있어서, 인터 예측 프로세스는 인트라 블록 복사 프로세스이다.
다른 실시형태에 있어서, 인터 예측 프로세스 및 인트라 예측 프로세스에서 사용되는 필터들은 유한 임펄스 응답 필터이고, 그 계수들은 룩업 테이블로부터 페치된다.
다른 실시형태에 있어서, 인트라 예측 프로세스에서 사용되는 보간 필터는 4 탭 필터이다.
다른 실시형태에 있어서, 필터의 계수들은 다음과 같이 서브픽셀 오프셋에 의존한다.
"서브픽셀 오프셋" 칼럼은 1/32 서브픽셀 해상도로 정의된다.다른 실시형태에 있어서, 필터 세트는 가우스 필터 및 큐빅 필터를 포함한다.
다른 실시형태에 있어서, 인코더는 상기 방법들을 수행하기 위한 처리 회로를 포함한다.
다른 실시형태에 있어서, 디코더는 상기 방법들을 수행하기 위한 처리 회로를 포함한다.
다른 실시형태에 있어서, 컴퓨터 프로그램 제품은 상기 방법들을 수행하기 위한 프로그램 코드를 포함한다.
다른 실시형태에 있어서, 디코더는, 하나 이상의 프로세서; 및 프로세서에 결합되며 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함하고, 프로그래밍은, 프로세서에 의한 실행시에, 상기 방법들을 수행하도록 디코더를 구성한다.
다른 실시형태에 있어서, 인코더는, 하나 이상의 프로세서; 및 프로세서에 결합되며 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함하고, 프로그래밍은, 프로세서에 의한 실행시에, 상기 방법들을 수행하도록 인코더를 구성한다.

Claims (17)

  1. 비디오 인코딩 방법으로서,
    제1 블록의 인터 예측 처리를 하는 단계 - 상기 인터 예측 처리는 참조 블록의 샘플들의 서브픽셀 보간 필터링을 포함함 -와,
    제2 블록의 인트라 예측 처리를 하는 단계 - 상기 인트라 예측 처리는 참조 샘플들의 서브픽셀 보간 필터링을 포함함 -를 포함하며,
    상기 방법은 또한,
    정수 참조 샘플의 위치와 분수 참조 샘플들의 위치 사이의 서브픽셀 오프셋들에 기초하여 상기 서브픽셀 보간 필터링을 위한 보간 필터 계수들을 선택하는 단계 - 동일한 서브픽셀 오프셋들에 대해 동일한 보간 필터 계수들이 상기 인트라 예측 처리 및 상기 인터 예측 처리를 위해 선택되고, 상기 선택된 필터 계수들은 상기 인터 예측 처리를 위한 크로마 샘플들과 상기 인트라 예측 처리를 위한 루마 샘플들의 상기 서브픽셀 보간 필터링에 사용되며, 상기 선택된 필터 계수들은 큐빅(cubic) 필터 계수들임 - 와,
    상기 인터 예측 처리 후의 상기 제1 블록과 상기 인트라 예측 처리 후의 상기 제2 블록을 인코딩하여 비디오 비트스트림을 획득하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 인터 예측 처리는 인트라 블록 복사 처리인, 방법.
  3. 제1항에 있어서,
    인터 예측 처리 및 인트라 예측 처리에서 사용되는 상기 보간 필터 계수들은 룩업 테이블로부터 페치되는, 방법.
  4. 제1항에 있어서,
    4 탭 필터가 상기 서브픽셀 보간 필터링에 사용되는, 방법.
  5. 제1항에 있어서,
    상기 보간 필터 계수들을 선택하는 단계는 서브픽셀 오프셋들과 보간 필터 계수들 사이의 아래 표를 포함하는 연관관계에 기초하여 상기 보간 필터 계수들을 선택하는 단계를 포함하고,

    상기 서브픽셀 오프셋들은 1/32 서브픽셀 해상도로 정의되고, c0 내지 c3은 상기 보간 필터 계수들을 나타내는, 방법.
  6. 제1항에 있어서,
    상기 보간 필터 계수들을 선택하는 단계는 서브픽셀 오프셋들과 보간 필터 계수들 사이의 아래 표를 포함하는 연관관계에 기초하여 분수 위치들에 대하여 상기 보간 필터 계수들을 선택하는 단계를 포함하고,

    상기 서브픽셀 오프셋들은 1/32 서브픽셀 해상도로 정의되고, c0 내지 c3은 상기 보간 필터 계수들을 나타내는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 따른 방법을 수행하기 위한 처리 회로를 포함하는, 인코더.
  8. 컴퓨터로 하여금 제1항 내지 제6항 중 어느 한 항에 따른 방법을 구현하게 하는 컴퓨터 프로그램을 포함하는 컴퓨터-판독가능 매체.
  9. 비디오 디코딩 방법에 있어서,
    제1 블록의 인터 예측 처리를 하는 단계 - 상기 인터 예측 처리는 참조 블록의 샘플들의 서브픽셀 보간 필터링을 포함함 - 와,
    제2 블록의 인트라 예측 처리를 하는 단계 - 상기 인트라 예측 처리는 참조 샘플들의 서브픽셀 보간 필터링을 포함함 - 를 포함하며,
    상기 방법은 또한,
    정수 참조 샘플의 위치와 분수 참조 샘플들의 위치 사이의 서브픽셀 오프셋들에 기초하여 상기 서브픽셀 보간 필터링을 위한 보간 필터 계수들을 선택하는 단계 - 동일한 서브픽셀 오프셋들에 대해 동일한 보간 필터 계수들이 상기 인트라 예측 처리 및 상기 인터 예측 처리를 위해 선택되고, 상기 선택된 필터 계수들은 상기 인터 예측 처리를 위한 크로마 샘플들과 상기 인트라 예측 처리를 위한 루마 샘플들의 상기 서브픽셀 보간 필터링에 사용되며, 상기 선택된 필터 계수들은 큐빅(cubic) 필터 계수들임 - 와,
    상기 인터 예측 처리 후의 상기 제1 블록과 상기 인트라 예측 처리 후의 상기 제2 블록에 기초하여 디코딩하여 픽처를 재구성하는 단계를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 인터 예측 처리는 인트라 블록 복사 처리인, 방법.
  11. 제9항에 있어서,
    인터 예측 처리 및 인트라 예측 처리에서 사용되는 상기 보간 필터 계수들은 룩업 테이블로부터 페치되는, 방법.
  12. 제9항에 있어서,
    4 탭 필터가 상기 서브픽셀 보간 필터링에 사용되는, 방법.
  13. 제9항에 있어서,
    상기 보간 필터 계수들을 선택하는 단계는 서브픽셀 오프셋들과 보간 필터 계수들 사이의 아래 표를 포함하는 연관관계에 기초하여 상기 보간 필터 계수들을 선택하는 단계를 포함하고,

    상기 서브픽셀 오프셋들은 1/32 서브픽셀 해상도로 정의되고, c0 내지 c3은 상기 보간 필터 계수들을 나타내는, 방법.
  14. 제9항에 있어서,
    상기 보간 필터 계수들을 선택하는 단계는 서브픽셀 오프셋들과 보간 필터 계수들 사이의 아래 표를 포함하는 연관관계에 기초하여 분수 위치들에 대하여 상기 보간 필터 계수들을 선택하는 단계를 포함하고,

    상기 서브픽셀 오프셋들은 1/32 서브픽셀 해상도로 정의되고, c0 내지 c3은 상기 보간 필터 계수들을 나타내는, 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 따른 방법을 수행하기 위한 처리 회로를 포함하는, 디코더.
  16. 컴퓨터로 하여금 제9항 내지 제14항 중 어느 한 항에 따른 방법을 구현하게 하는 컴퓨터 프로그램을 포함하는 컴퓨터-판독가능 매체.
  17. 데이터를 전송하기 위한 송신기 유닛들 및 출구 포트들과 상기 데이터를 저장하기 위한 메모리를 포함하는 장치로서,
    상기 데이터는 제1항 내지 제6항 중 어느 한 항의 방법에 따라 획득된 상기 비디오 비트스트림을 포함하는, 장치.
KR1020237040674A 2018-09-07 2019-09-06 비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치 KR20230164769A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862728666P 2018-09-07 2018-09-07
US62/728,666 2018-09-07
KR1020217000299A KR102607839B1 (ko) 2018-09-07 2019-09-06 비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치
PCT/RU2019/050141 WO2020050752A1 (en) 2018-09-07 2019-09-06 Method and apparatus for interpolation filtering for intra- and inter-prediction in video coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217000299A Division KR102607839B1 (ko) 2018-09-07 2019-09-06 비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230164769A true KR20230164769A (ko) 2023-12-04

Family

ID=69722811

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217000299A KR102607839B1 (ko) 2018-09-07 2019-09-06 비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치
KR1020237040674A KR20230164769A (ko) 2018-09-07 2019-09-06 비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217000299A KR102607839B1 (ko) 2018-09-07 2019-09-06 비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치

Country Status (16)

Country Link
US (2) US11405612B2 (ko)
EP (2) EP3834415B1 (ko)
JP (3) JP7066912B2 (ko)
KR (2) KR102607839B1 (ko)
CN (5) CN117376586A (ko)
AU (1) AU2019336062B2 (ko)
BR (1) BR112020026863A2 (ko)
CA (1) CA3111760C (ko)
ES (1) ES2960283T3 (ko)
HU (1) HUE063698T2 (ko)
MX (1) MX2021001515A (ko)
PL (1) PL3834415T3 (ko)
PT (1) PT3834415T (ko)
SG (1) SG11202101822SA (ko)
WO (1) WO2020050752A1 (ko)
ZA (1) ZA202102228B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2960283T3 (es) 2018-09-07 2024-03-04 Huawei Tech Co Ltd Método y aparato para el filtrado de la interpolación para la intra e interpredicción en la codificación de vídeo
US10469845B1 (en) * 2018-09-21 2019-11-05 Tencent America, Llc Method and apparatus for intra mode coding
CN113826388A (zh) * 2019-03-12 2021-12-21 弗劳恩霍夫应用研究促进协会 用于混合视频编码的编码器、解码器、方法及视频比特流以及计算机程序
EP4131959A4 (en) 2020-03-26 2024-03-06 Lg Electronics Inc METHOD AND APPARATUS FOR IMAGE ENCODING/DECODING BASED ON WRAPPING MOTION COMPENSATION, AND RECORDING MEDIUM STORING BIT STREAM
JP7488355B2 (ja) * 2020-03-26 2024-05-21 エルジー エレクトロニクス インコーポレイティド ラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置、並びにビットストリームを保存した記録媒体
CN115699746B (zh) * 2020-03-31 2023-10-20 Lg电子株式会社 图像编码/解码方法和发送比特流的方法
CN115443653A (zh) 2020-04-07 2022-12-06 抖音视界有限公司 高级别语法中的帧间预测的信令通知
EP4118825A4 (en) 2020-04-09 2023-08-09 Beijing Bytedance Network Technology Co., Ltd. UNLOCKING SIGNALING IN VIDEO CODING
WO2021204251A1 (en) 2020-04-10 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Use of header syntax elements and adaptation parameter set
CN115868159A (zh) 2020-04-17 2023-03-28 抖音视界有限公司 自适应参数集单元的存在
EP4128775A4 (en) 2020-04-26 2024-03-27 Bytedance Inc CONDITIONAL SIGNALING OF SYNTAX ELEMENTS OF A VIDEO CODING
US11882270B2 (en) * 2020-06-09 2024-01-23 Hfi Innovation Inc. Method and apparatus for video coding with constraints on reference picture lists of a RADL picture
US20220224938A1 (en) * 2021-01-08 2022-07-14 Offinno, LLC Intra Prediction Signaling
WO2023234681A1 (ko) * 2022-05-30 2023-12-07 주식회사 케이티 영상 부호화/복호화 방법 및 장치

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8942505B2 (en) * 2007-01-09 2015-01-27 Telefonaktiebolaget L M Ericsson (Publ) Adaptive filter representation
US9693070B2 (en) 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
US20140078394A1 (en) * 2012-09-17 2014-03-20 General Instrument Corporation Selective use of chroma interpolation filters in luma interpolation process
US20150071357A1 (en) * 2013-09-12 2015-03-12 Qualcomm Incorporated Partial intra block copying for video coding
EP3085085A4 (en) * 2014-01-29 2017-11-08 MediaTek Inc. Method and apparatus for adaptive motion vector precision
WO2015124110A1 (en) * 2014-02-21 2015-08-27 Mediatek Singapore Pte. Ltd. Method of video coding using prediction based on intra picture block copy
US10412387B2 (en) * 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
US9838662B2 (en) 2014-10-10 2017-12-05 Qualcomm Incorporated Harmonization of cross-component prediction and adaptive color transform in video coding
US9854237B2 (en) * 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
US10659806B2 (en) * 2014-11-04 2020-05-19 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus using interpolation filter on which image characteristic is reflected
CA2965720C (en) * 2014-11-20 2020-04-14 Hfi Innovation Inc. Method of motion vector and block vector resolution control
CN115086652A (zh) * 2015-06-05 2022-09-20 杜比实验室特许公司 图像编码和解码方法和图像解码设备
KR102658290B1 (ko) * 2015-06-08 2024-04-16 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 인트라 블록 카피 모드
US11463689B2 (en) * 2015-06-18 2022-10-04 Qualcomm Incorporated Intra prediction and intra mode coding
US20170099490A1 (en) * 2015-10-02 2017-04-06 Qualcomm Incorporated Constrained intra-prediction for block copy mode
US10812822B2 (en) 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
JP2018533871A (ja) * 2015-11-11 2018-11-15 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号方法及びその装置、並びにビデオ符号化方法及びその装置
US10194170B2 (en) * 2015-11-20 2019-01-29 Mediatek Inc. Method and apparatus for video coding using filter coefficients determined based on pixel projection phase
US10390015B2 (en) * 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
US10341659B2 (en) * 2016-10-05 2019-07-02 Qualcomm Incorporated Systems and methods of switching interpolation filters
US11202079B2 (en) * 2018-02-05 2021-12-14 Tencent America LLC Method and apparatus for video decoding of an affine model in an intra block copy mode
ES2960283T3 (es) * 2018-09-07 2024-03-04 Huawei Tech Co Ltd Método y aparato para el filtrado de la interpolación para la intra e interpredicción en la codificación de vídeo

Also Published As

Publication number Publication date
JP2023165714A (ja) 2023-11-17
PL3834415T3 (pl) 2024-02-05
CN112425169B (zh) 2023-07-11
US20220385900A1 (en) 2022-12-01
US11405612B2 (en) 2022-08-02
CN112425169A (zh) 2021-02-26
ZA202102228B (en) 2022-12-21
BR112020026863A2 (pt) 2021-07-27
EP3834415A4 (en) 2021-08-11
US11968362B2 (en) 2024-04-23
EP3834415B1 (en) 2023-09-06
CA3111760A1 (en) 2020-03-12
CN113784145B (zh) 2022-06-28
JP7066912B2 (ja) 2022-05-13
CN115914624A (zh) 2023-04-04
US20210127110A1 (en) 2021-04-29
PT3834415T (pt) 2023-11-07
CA3111760C (en) 2023-10-10
AU2019336062B2 (en) 2022-12-22
HUE063698T2 (hu) 2024-01-28
CN113784145A (zh) 2021-12-10
ES2960283T3 (es) 2024-03-04
KR20210018439A (ko) 2021-02-17
SG11202101822SA (en) 2021-03-30
CN117376586A (zh) 2024-01-09
JP2022105529A (ja) 2022-07-14
EP3834415A1 (en) 2021-06-16
KR102607839B1 (ko) 2023-11-29
JP7342188B2 (ja) 2023-09-11
EP4254960A2 (en) 2023-10-04
WO2020050752A1 (en) 2020-03-12
AU2019336062A1 (en) 2021-03-25
EP4254960A3 (en) 2023-11-22
MX2021001515A (es) 2021-04-13
CN117376587A (zh) 2024-01-09
JP2021533607A (ja) 2021-12-02

Similar Documents

Publication Publication Date Title
KR102607839B1 (ko) 비디오 코딩에서 인트라 예측 및 인터 예측을 위한 보간 필터링 방법 및 장치
JP7271697B2 (ja) オプティカルフローの改善の早期終了
KR102551917B1 (ko) 예측 방법 및 장치
US20220368888A9 (en) Dmvr using decimated prediction block
CN111432219B (zh) 一种帧间预测方法及装置
KR102571856B1 (ko) 인트라 예측 방법 및 장치
KR102543792B1 (ko) 이웃 블록에 기초한 인트라 예측 모드 도출

Legal Events

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