KR20200096227A - 블록 형상에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치 - Google Patents

블록 형상에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20200096227A
KR20200096227A KR1020207015797A KR20207015797A KR20200096227A KR 20200096227 A KR20200096227 A KR 20200096227A KR 1020207015797 A KR1020207015797 A KR 1020207015797A KR 20207015797 A KR20207015797 A KR 20207015797A KR 20200096227 A KR20200096227 A KR 20200096227A
Authority
KR
South Korea
Prior art keywords
block
prediction
reference samples
video
shape
Prior art date
Application number
KR1020207015797A
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 KR20200096227A publication Critical patent/KR20200096227A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

비디오 코딩 및 디코딩을 위한 방법들(1300, 1500) 및 장치들(700, 1400, 1600)이 제공된다. 비디오 인코딩 방법(1300)은, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하는 단계(1310), 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하는 단계(1320), 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하는 단계(1330), 및 예측 블록에 기초하여 블록을 인코딩하는 단계(1340)를 포함한다. 인코딩된 데이터를 포함하도록 포맷팅된 비트스트림, 컴퓨터-판독가능한 저장 매체 및 컴퓨터 프로그램 제품이 또한 설명된다.

Description

블록 형상에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
본 실시예들은 대체로 비디오 인코딩 및 디코딩에 관한 것으로, 특히 블록 형상에 기초한 블록들의 예측에 관한 것이다.
본 명세서에서 설명되는 임의의 배경 정보는, 후술되는 본 실시예들과 관련될 수 있는 기술의 다양한 양태를 독자에게 소개하기 위한 것이다. 본 논의는, 본 개시내용의 다양한 양태의 더 양호한 이해를 용이화하기 위해 독자에게 배경 정보를 제공하는데 있어서 도움이 될 것으로 믿어진다. 따라서, 이들 진술들은 이러한 관점에서 읽혀져야 한다는 것을 이해해야 한다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 방식들은 대개 예측 및 변환을 채용하여 비디오 콘텐츠에서 공간적 및 시간적 중복성(redundancy)을 활용한다. 일반적으로, 인트라 또는 인터 프레임 상관을 활용하기 위해 인트라 또는 인터 예측이 이용된다. 그 다음, 종종 예측 에러들 또는 예측 잔차들로서 표시되는 원래 이미지와 예측 이미지 사이의 차이점들이, 변환되고, 양자화되고 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축된 데이터는, 예측, 변환, 양자화 및 엔트로피 코딩에 대응하는 역 프로세스들에 의해 디코딩된다.
HEVC(High Efficiency Video Coding) 표준("ITU-T H.265 Telecommunication standardization sector of ITU (10/2014), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265")에서, 픽처는 전형적으로는 64x64, 128x128, 또는 256x256의 구성가능한 크기를 갖는 정사각형 형상의 코딩 트리 유닛(CTU)(coding tree unit)들로 분할된다. 도 1에 도시된 바와 같이, CTU(110)는, 코딩 유닛(CU)(Coding Unit)들이라 불리는 리프(leaf)들로 분할된 쿼드-트리의 루트이다. 각각의 CU에 대해, CU가 인트라 예측을 이용하여 또는 인터 예측을 이용하여 코딩되는지를 나타내는 예측 모드가 시그널링된다. 도 2에 도시된 바와 같이, 연속적인 세트의 CTU들(예를 들어, CTU 220)은, 슬라이스(210)로 그룹화될 수 있다. CU(예를 들어, CU 230)는 하나 이상의 예측 유닛(PU)으로 분할될 수 있고, 변환 유닛(TU)(Transform Unit)들로 분할되는 (변환 트리라고 알려진) 쿼드-트리의 루트를 형성한다. PU들로의 CU의 비대칭 세분은 또한, 인터 예측에서 가능하다, 즉, CU가 NxN 크기를 갖는다면, PU는 크기 N/4xN, 3N/4xN, NxN/4, Nx3N/4를 가질 수 있다. 각각의 PU는, 예를 들어 모션 정보, 공간 인트라 예측 등의 일부 예측 정보를 할당받는다. PU들은 또한, 도 1에서 점선으로 도시되어 있다.
QTBT(Quad-Tree plus Binary-Tree) 코딩 툴은 HEVC 표준의 CU/PU/TU 배열에 비해 더 유연한 CTU 표현과 증가된 압축 효율을 제공하는 새로운 비디오 코딩 툴이다. 도 3에 도시된 바와 같이, QTBT(Quad-Tree plus Binary-Tree) 코딩 툴은, 코딩 유닛들이 쿼드-트리 및 2진-트리 양쪽 모두의 방식으로 분할될 수 있는 코딩 트리(310)를 정의한다. 코딩 트리 유닛(320)의 한 예시적인 코딩 트리 표현이 도 3에 도시되어 있으며, 여기서, 실선들은 쿼드-트리 분할을 나타내고, 점선들은 쿼드-트리 리프들에 공간적으로 내장된, CTU(320) 내의 CU(330)의 2진 분할을 나타낸다.
CTU를 코딩 유닛들로 분할하는 것은, 예를 들어, 최소 레이트 왜곡 비용으로 CTU의 QTBT 표현을 결정하는 것으로 구성된 레이트 왜곡 최적화 절차를 통해 인코더 측에서 결정된다. QTBT 표현에서, CU는 정사각형 또는 직사각형 형상을 갖는다. 코딩 유닛의 크기는 항상 2의 거듭 제곱이고, 전형적으로 4 내지 128 이다. CTU의 QTBT 분해는 2개의 스테이지를 포함한다: CTU가 먼저 쿼드-트리 방식으로 4개의 CU로 분할된 다음, 각각의 쿼드-트리 리프는, 도 3에 도시된 바와 같이, 2진 방식으로 2개의 CU로, 또는 쿼드-트리 방식으로 4개의 CU로 더 분할될 수 있다.
QTBT 표현에 의해, CU는 PU들 또는 TU들로 더 분할될 수 없다. 다시 말해, 각각의 CU는 단일 예측 유닛 및 단일 변환 유닛으로 간주된다. 그러나, 이러한 QTBT 표현은 도 3에 도시된 바와 같이 CU의 대칭 분할만을 허용한다. QTBT에 의해 허용되는 4가지 분할 모드는 다음과 같다: NO_SPLIT(CU는 분할되지 않음), QT_SPLIT(4개의 사분면으로 분할됨), HOR(동일한 크기의 2개의 CU로 수평으로 분할됨) 및 VER(동일한 크기의 2개의 CU로 수직으로 분할됨).
최근에, 도 4 및 5에 도시된 바와 같이, 비대칭 분할 모드(asymmetric splitting mode)라 불리는 새로운 2진 분할 모드로부터 생성된 새로운 직사각형 형상들을 갖는 CU들이 제안되었다. 도 4는 비대칭 분할 모드라 불리는 QTBT에서의 CU 2진 분할 모드를 도시하고 4개의 예시적인 분할 모드(410 내지 440)를 도시한다. 도 4에서, 새로운 직사각형 형상들은 폭 및/또는 높이에서 3·2n과 동일한 크기를 포함한다. 또한, 폭 또는 높이에서 3의 배수의 크기를 갖는 CU가 2진 방식으로 수평 또는 수직으로 더 분할할 수 있다.
제안된 비대칭 2진 분할 모드들 중 하나, 예를 들어, HOR_UP(horizontal-up)(410)을 통해 분할된 크기
Figure pct00001
(폭 및 높이)를 가진 정사각형 CU는, 각각의 직사각형 크기
Figure pct00002
Figure pct00003
를 갖는 2개의 서브코딩 유닛으로 된다. 따라서,
Figure pct00004
과 동일한 폭 또는 높이를 갖는 CU가 인코더에 의해 선택될 수 있다. 이러한 경우에, 3의 배수 크기를 갖는 직사각형 블록의 인트라 예측 또는 인터 예측 프로세스가 수행된다. 또한, 폭 또는 높이에서 크기
Figure pct00005
을 갖는 2D 변환, 및 후속되는 변환 계수 엔트로피 코딩 프로세스들이 수행된다.
수평(510) 및 수직(520) 트리플 트리 분할 모드들이라고 불리는, 도 5에 도시된 다른 CU 분할 모드들은, CU를, 각각의 크기가 고려된 공간 분할의 방향으로 부모 CU 크기의 ¼, ½ 및 ¼과 동일한 3개의 서브코딩 유닛(서브CU)으로 분할하는 것으로 구성된다.
본 개시내용의 한 양태에 따르면, 비디오 인코딩의 방법이 제공되고, 이 방법은, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하는 단계, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하는 단계, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하는 단계, 및 예측 블록에 기초하여 블록을 인코딩하는 단계를 포함한다.
본 개시내용의 한 양태에 따르면, 비디오 인코딩을 위한 장치가 제공되고, 이 장치는, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하기 위한 수단, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하기 위한 수단, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하기 위한 수단, 및 예측 블록에 기초하여 블록을 인코딩하기 위한 수단을 포함한다.
본 개시내용의 한 양태에 따르면, 비디오 인코딩을 위한 장치가 제공되고, 이 장치는, 프로세서, 및 프로세서에 결합된 적어도 하나의 메모리를 포함하고, 이 프로세서는, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하고, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하며, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하고, 예측 블록에 기초하여 블록을 인코딩하도록 구성된다.
본 개시내용의 한 양태에 따르면, 픽처의 블록을 나타내는 인코딩된 데이터를 포함하도록 포맷팅된 비트스트림이 제공되고, 인코딩된 데이터는, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하고, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하며, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하고, 및 예측 블록에 기초하여 블록을 인코딩함으로써 인코딩된다.
본 개시내용의 한 양태에 따르면, 픽처의 블록을 나타내는 인코딩된 데이터를 포함하도록 포맷팅된 비트스트림을 포함하는 신호가 제공되고, 인코딩된 데이터는, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하고, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하며, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하고, 예측 블록에 기초하여 블록을 인코딩함으로써 인코딩된다.
본 개시내용의 한 양태에 따르면, 비디오 디코딩의 방법이 제공되고, 이 방법은, 인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하는 단계, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하는 단계, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하는 단계, 및 예측 블록에 기초하여 블록을 디코딩하는 단계를 포함한다.
본 개시내용의 한 양태에 따르면, 비디오 디코딩을 위한 장치가 제공되고, 이 장치는, 인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하기 위한 수단, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하기 위한 수단, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하기 위한 수단, 및 예측 블록에 기초하여 블록을 디코딩하기 위한 수단을 포함한다.
본 개시내용의 한 양태에 따르면, 비디오 디코딩을 위한 장치가 제공되고, 이 장치는, 프로세서, 및 프로세서에 결합된 적어도 하나의 메모리를 포함하고, 이 프로세서는, 인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하고, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하며, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하고, 예측 블록에 기초하여 블록을 디코딩하도록 구성된다.
본 개시내용의 한 양태에 따르면, 컴퓨터 프로그램 제품이 제공되고, 이 컴퓨터 프로그램 제품은, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하고, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하며, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하고, 예측 블록에 기초하여 블록을 인코딩하기 위한 프로그램 코드 명령어들을 포함한다.
본 개시내용의 한 양태에 따르면, 컴퓨터 프로그램 제품이 제공되고, 이 컴퓨터 프로그램 제품은, 인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하고, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하며, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하고, 및 예측 블록에 기초하여 블록을 디코딩하기 위한 프로그램 코드 명령어들을 포함한다.
본 개시내용의 한 양태에 따르면, 소프트웨어 프로그램을 운반하는 컴퓨터-판독가능한 저장 매체가 제공되고, 소프트웨어 프로그램은, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하고, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하며, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하고, 예측 블록에 기초하여 블록을 인코딩하기 위한 프로그램 코드 명령어들을 포함한다.
본 개시내용의 한 양태에 따르면, 소프트웨어 프로그램을 운반하는 컴퓨터-판독가능한 저장 매체가 제공되고, 소프트웨어 프로그램은, 인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하고, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하며, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하고, 예측 블록에 기초하여 블록을 디코딩하기 위한 프로그램 코드 명령어들을 포함한다.
상기 내용은, 주제 실시예의 일부 양태들의 기본적인 이해를 제공하기 위해 주제의 간략화된 요약을 제시한다. 이 요약은 본 주제의 광범위한 개요는 아니다. 이것은 실시예들의 핵심적/중요한 요소들을 식별하거나 본 주제의 범위를 구분하기 위한 의도가 아니다. 그 유일한 목적은 이하에서 제공되는 더 상세한 설명에 대한 서두로서 본 주제의 몇 가지 개념을 간략화된 형태로 제시하는 것이다.
본 개시내용의 추가의 피처 및 이점들은, 첨부된 도면을 참조하여 진행되는 예시적 실시예들의 후속하는 상세한 설명으로부터 명백하게 될 것이다.
본 개시내용은 아래에서 간략하게 설명되는 이하의 예시적인 도면에 따라 더 잘 이해될 수 있다:
도 1은 HEVC 표준에 따른 CU들로 분할된 CTU를 도시한다;
도 2는 HEVC 표준에 따라 CTU를, CU들, PU들 및 TU들로 분할하는 것을 도시한다;
도 3은 QTBT 툴에 따른 CTU를 도시한다;
도 4는 비대칭 분할 모드라 불리는 QTBT에서의 CU 2진 분할 모드를 도시한다;
도 5는 QTBT에서의 수평(좌) 및 수직(우) 트리플 트리 CU 분할 모드들을 도시한다.
도 6은 본 개시내용의 한 실시예에 따른 예시적인 세트의 CU 분할 모드들을 도시한다;
도 7은 본 개시내용의 한 실시예에 따른 예시적인 비디오 인코더의 간소화된 블록도를 도시한다;
도 8은 본 개시내용의 한 실시예에 따른 예시적인 인트라 예측 모듈의 간소화된 블록도를 도시한다;
도 9는 본 개시내용에 따른 현재 블록에 대한 예시적인 기준 샘플들을 도시한다;
도 10은 HEVC 표준에 따른 인트라 예측 방향들을 도시한다;
도 11은 HEVC 표준에 따른 정사각형 블록 형상에 대한 예시적인 인트라 예측 모드들을 도시한다;
도 12는 본 개시내용에 따른 직사각형 블록 형상들에 대한 예시적인 인트라 예측 모드들을 도시한다;
도 13은 본 개시내용의 한 실시예에 따른 비디오 인코딩의 예시적인 방법의 플로차트를 도시한다;
도 14는 본 개시내용의 한 실시예에 따른 예시적인 비디오 디코더의 간소화된 블록도를 도시한다;
도 15는 본 개시내용의 한 실시예에 따른 비디오 디코딩의 예시적인 방법의 플로차트를 도시한다;
도 16은 본 개시내용의 양태들이 구현되고 실행될 수 있는 컴퓨팅 환경의 블록도를 도시한다.
도면에 도시된 요소들은 다양한 형태의 하드웨어, 소프트웨어 또는 이들의 조합들로 구현될 수 있다는 것을 이해해야 한다. 바람직하게는, 이들 요소들은, 프로세서, 메모리 및 입력/출력 인터페이스를 포함할 수 있는, 하나 이상의 적절하게 프로그램된 범용 디바이스 상의 하드웨어 및 소프트웨어의 조합으로 구현된다. 본 명세서에서, "결합된"이라는 문구는, 직접 접속되는 것을 의미하거나 하나 이상의 중간 컴포넌트를 통해 간접 접속되는 것을 의미하는 것으로 정의된다. 이러한 중간 컴포넌트들은, 하드웨어 및 소프트웨어 기반 컴포넌트들 양쪽 모두를 포함할 수 있다.
본 설명은 본 개시내용의 원리를 도시한다.  따라서, 본 기술분야의 통상의 기술자라면, 여기서 명시적으로 설명되거나 도시되지는 않았지만, 본 개시내용의 원리를 구현하고 본 개시내용의 범위 내에 포함되는 다양한 구조를 고안할 수 있을 것이라는 것을 이해할 것이다.
또한, 여기서 기재된 모든 예들 및 조건적 용어는, 본 개시내용의 원리와 본 기술분야를 발전시키기 위해 발명자가 기여한 개념을 이해하는데 있어서 독자를 보조하기 위한 교육적 목적을 의도한 것이며, 이러한 구체적으로 기재된 예들과 조건들로 제한되지 않는 것으로 해석되어야 한다.
게다가, 본 개시내용의 원리들, 양태들, 및 실시예들 뿐만 아니라 그 특정한 예들을 기재한 본 명세서의 모든 기재사항은, 구조적 및 기능적 그 균등물들 양쪽 모두를 포괄하는 것으로 의도되었다. 추가적으로, 이러한 균등물들은 현재 알려진 균등물들 뿐만 아니라 향후에 개발될 균등물들, 즉, 구조에 관계없이 동일한 기능을 수행하도록 개발된 임의의 요소들 양쪽 모두를 포함하는 것으로 의도한다.
따라서, 예를 들어, 본 기술분야의 통상의 기술자라면, 여기서 제시된 블록도들은 본 개시내용의 원리를 구현하는 예시적 회로의 개념적 뷰를 나타낸다는 것을 이해할 것이다. 유사하게, 임의의 플로차트, 흐름도, 상태 천이도, 의사코드 등은, 컴퓨터 판독가능한 매체로 실질적으로 표현되고 컴퓨터 또는 프로세서가 명시적으로 도시되었든 아니든간에 그런 컴퓨터 또는 프로세서에 의해 실행될 수 있는 다양한 프로세스를 나타낸다는 것을 이해할 것이다.
도면에 도시된 다양한 요소의 기능들은 전용 하드웨어 뿐만 아니라 적절한 소프트웨어와 연관되어 소프트웨어를 실행할 수 있는 하드웨어의 이용을 통해 제공될 수 있다. 프로세서에 의해 제공될 때, 기능들은, 단일의 전용 프로세서에 의해, 단일의 공유된 프로세서에 의해, 또는 일부가 공유될 수 있는 복수의 개별 프로세서에 의해 제공될 수 있다. 게다가, 용어 "프로세서" 또는 "제어기"의 명시적 사용은, 소프트웨어를 실행할 수 있는 하드웨어만을 배타적으로 지칭하는 것으로 해석되어서는 안되며, 제한없이, 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 및 비휘발성 스토리지를 묵시적으로 포함할 수 있다.
종래이든 및/또는 맞춤형이든 기타의 하드웨어도 역시 포함될 수 있다. 마찬가지로, 도면에 도시된 임의의 스위치는 단지 개념적인 것이다. 그들의 기능은 프로그램 로직의 동작을 통해, 전용 로직을 통해, 프로그램 제어와 전용 로직의 상호작용을 통해, 또는 심지어 수동으로, 문맥으로부터 더 구체적으로 이해되는 바와 같이 구현자에 의해 선택가능한 특정한 기술을 통해 실행될 수도 있다.
본 명세서의 청구항들에서, 명시된 기능을 수행하기 위한 수단으로서 표현된 임의의 요소는, 예를 들어, a) 그 기능을 수행하는 회로 요소들의 조합 또는 b) 소프트웨어를 실행하여 기능을 수행하기 위한 적절한 회로와 결합된, 펌웨어, 마이크로 코드 등을 포함한 임의의 형태의 소프트웨어를 포함한, 기능을 수행하는 임의의 방식을 포괄하도록 의도된 것이다. 이러한 청구항들에 의해 정의되는 본 개시내용은, 다양한 기재된 수단에 의해 제공되는 기능들이 청구항들이 요구하는 방식으로 결합되고 함께 모여질 수 있다는 사실에 존재한다. 따라서, 이들 기능들을 제공할 수 있는 임의의 수단은 본 명세서에서 도시된 것들과 균등하다고 간주된다.
도면들 및 설명은, 명료화의 목적을 위해, 전형적인 인코딩 및/또는 디코딩 디바이스들에서 발견되는 많은 다른 요소들을 제거하면서, 본 개시내용의 명확한 이해를 위해 관련된 요소들을 예시하도록 간소화되었다는 것을 이해해야 한다.
용어들, 제1 및 제2는 본 명세서에서 다양한 요소를 설명하기 위해 사용될 수도 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것을 이해할 것이다. 이들 용어들은 한 요소를 또 다른 요소로부터 구분하기 위해서만 사용된다. 다양한 방법이 전술되었고, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 동작을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 동작들의 특정한 순서가 요구되지 않는 한, 특정한 단계들 및/또는 동작들의 순서 및/또는 이용은 수정되거나 조합될 수 있다.
픽처는, 단색 포맷의 루마 샘플(luma sample)들의 어레이, 또는 4:2:0, 4:2:2, 및 4:4:4 컬러 포맷의 루마 샘플들의 어레이 및 2개의 대응하는 크로마 샘플(chroma sample)들의 어레이, 또는 3색 성분(예를 들어, RGB)의 3개의 어레이일 수 있다는 것을 이해해야 한다. HEVC에서, "블록"은 샘플 어레이 내의 특정한 영역(예를 들어, 루마 Y)을 다루고, "유닛"은, 모든 인코딩된 색 성분(루마 Y 및 아마도 크로마 Cb 및 크로마 Cr)의 함께 배치된 블록, 신택스 요소들, 및 블록과 연관된 예측 데이터(예를 들어, 모션 벡터들)를 포함한다. 그러나, 용어 "블록"은, 블록(예를 들어, 코딩 블록(CB), 변환 블록(TB), 코딩 그룹(CG) 등) 또는 유닛(예를 들어, CU)을 지칭하기 위해 본 명세서에서 더 일반적으로 사용된다.
픽처 또는 픽셀들의 블록 또는 변환 계수들은 2차원 어레이 또는 행렬인 것으로 이해되어야 한다. 수평 또는 x 방향(또는 축)은 폭을 나타내고, 수직 또는 y 방향(또는 축)은 높이를 나타낸다. 인덱스들은 0에서 시작한다. x 방향은 열을 나타내고 y 방향은 행을 나타낸다. 최대 x 인덱스는 폭 - 1이다. 최대 y 인덱스는 높이 - 1이다.
이하의 섹션들에서, 용어 "재구성된" 및 "디코딩된"이라는 단어는 서로 바꾸어 사용될 수 있다. 반드시는 아니지만 대개 "재구성된"은 인코더 측에서 사용되는 반면 "디코딩된"은 디코더 측에서 사용된다. 또한, "코딩된" 및 "인코딩된"이라는 용어는 서로 바꾸어 사용될 수 있다. 게다가, 용어들 "이미지", "픽처", "프레임" 및 슬라이스(즉, 픽처의 일부)는 서로 바꾸어 사용될 수 있다. 또한, 용어들 "코딩", "소스 코딩" 및 "압축"은 서로 바꾸어 사용될 수 있다.
본 개시내용은 비디오 코딩 및 디코딩에서의 예측에 관한 것이다. 비디오 압축에서의 인트라 예측이란, 인과적 이웃 블록(causal neighbor block)들, 즉, 이미 디코딩된 동일한 프레임 내의 이웃 블록들로부터의 정보를 이용한 한 블록의 픽셀들의 공간적 예측을 말한다. 이것은, 더 양호한 시간적 예측이 없을 때마다 인터 프레임들에서 뿐만 아니라 인트라 프레임들에서 높은 압축 효율을 허용하므로 강력한 코딩 툴이다. 따라서, 인트라 예측은 H.264/AVC(Advanced Video Coding), H.265/HEVC 등을 포함하는 비디오 압축 표준에서 핵심 코딩 툴로서 포함되었다. HEVC 인트라 예측에서, CU는, 인과적 이웃 CU들로부터, 즉, 상단 및 상단 우측의 CU들, 좌측 및 좌측 하단의 CU들, 및 상단 좌측의 CU로부터 공간적으로 예측된다.
특히, 본 개시내용은 기준 샘플들의 평활화 필터링에 관한 것이다. HEVC 및 더 구형의 비디오 코딩 표준들에서, 타겟 블록의 인트라 예측은 필터링된 기준 샘플들을 이용한다. 구체적으로, 기준 샘플들은, 예를 들어, 현재 블록의 상단의 디코딩된 행(들)의 픽셀들(또는 샘플들), 및 좌측의 열(들)의 픽셀들일 수 있다. 이들 CU들에서의 디코딩된 픽셀 값들에 기초하여, 인코더는 타겟 블록에 대해 상이한 예측들을 구성하고 최상의 RD 성능으로 이어지는 것을 선택한다.
HEVC에서, 고해상도 비디오 압축을 지원하기 위해 타겟 블록 크기가 64x64로 증가되었다. 블록 크기에 대응하여, 인트라 예측 모드들의 수가 35로 증가되었으며, 그 중 하나는 평면 모드(모드 0으로서 인덱싱됨)이고, 하나는 DC 모드(모드 1로서 인덱싱됨)이며, 나머지 33개(모드 2 내지 34로서 인덱싱됨)는, 방향 또는 각도 모드들이다. 더 최근에는, 최대 131개의 예측 모드를 갖는 직사각형 블록들 및 최대 256x256의 블록 크기들이 연구되고 있다.
HEVC 및 일부 이전의 비디오 코딩 표준들에서, 인트라 예측 모드는 모든 CU에 대해 시그널링된다. 기준 샘플들은, 블록 크기들에 따라 필터링된다. 예측 모드들 및 필터들이 시그널링된다(예를 들어, 위치 종속 예측 조합(Position Dependent Prediction Combination)(PDPC) 또는 기준 샘플 적응형 필터링(Reference Sample Adaptive Filtering)(RSAF)).
도 6은 본 개시내용에 따른 예시적인 세트의 CU 분할 모드들을 도시한다. 풍부한 세트의 CU 토폴로지들은, 비트스트림의 이미지들에 포함된 구조들 및 불연속들과 공간적으로 정합하는 코딩 구조들을 야기한다. (전통적인 정사각형 형상들 대신에) 직사각형 블록 형상들의 경우, 예를 들어, 인트라 예측 방향 뿐만 아니라, 블록 형상(예를 들어, 수평 또는 수직 직사각형 블록)에 따라 일부 예측 모드들 및 필터들을 활성화함으로써 시그널링 플래그들의 수를 감소시키는 것이 관심대상이다.
본 개시내용은 종래 기술에 존재하는 일부 단점들을 해결한다. 특히, 본 개시내용의 적어도 일부 실시예들에서, 형상-의존적 모드들을 갖는 것은 더 양호한 예측 및 그에 따른 더 높은 코딩 이득으로 이어질 수 있다. 설명은 일반적으로 인트라 예측에 관한 것이지만, 본 개시내용의 범위를 벗어나지 않으면서 유사한 개념이 인터 예측에도 적용될 수 있다. 특히, 유사한 개념이 인트라 예측 및/또는 인터 예측 모드에 이용되는 기준 샘플들의 필터링에 적용될 수 있다.
인코딩
도 7은 본 개시내용의 한 실시예에 따른 예시적인 비디오 인코더(700)의 간소화된 블록도를 도시한다. 인코더(700)는 통신 시스템의 전송기 또는 헤드엔드(headend)에 포함될 수 있다. 하나 이상의 픽처로 비디오 시퀀스를 인코딩하기 위해, 픽처는 구성가능한 크기를 갖는 정사각형 형상의 CTU들로 분할될 수 있다. 연속적인 세트의 CTU들은 슬라이스로 그룹화될 수 있다. CTU는, CU들로 분할되는 QTBT의 루트이다. 예시적인 인코더(700)에서, 픽처는 후술되는 바와 같이 인코더 모듈들에 의해 인코딩된다. 각각의 블록은 인트라 모드 또는 인터 모드를 이용하여 인코딩된다. 블록이 인트라 모드에서 인코딩될 때, 인코더(700)는, 동일한 픽처 또는 프레임 내의 적어도 하나의 블록에 기초하여, 인트라 예측(모듈 760) 또는 공간적 예측을 수행한다. 블록이 인터 모드에서 인코딩될 때, 인코더(700)는, 적어도 하나의 기준 픽처 또는 프레임으로부터의 적어도 하나의 기준 블록에 기초하여, 인터 예측 또는 시간 예측을 수행한다. 단방향 인터-예측에서, 예측은 (반드시는 아니지만) 일반적으로 이전 기준 픽처 또는 프레임에 기초할 수 있다. 양방향 인터-예측에서, 예측은 (반드시는 아니지만) 일반적으로 이전 및 이후 픽처 또는 프레임에 기초할 수 있다. 인터 모드에서, 모션 추정(모듈 775) 및 보상(모듈 770)이 수행된다. 인코더는, 블록을 인코딩하기 위해 이용할 인트라 모드 또는 인터 모드 중 어느 하나를 결정하고(모듈 705), 예측 모드 플래그에 의해 인트라/인터 결정을 표시한다. 잔차들은, 원래 이미지 블록으로부터 (예측자라고도 알려진) 예측된 샘플 블록을 감산함으로써(모듈 710) 계산된다.
한 예로서, 인트라 모드에서의 블록들은 재구성된 이웃 샘플들로부터 예측된다. 인터 예측은, 기준 픽처 버퍼(780)에 저장된 기준 블록을 모션 추정(모듈 775) 및 모션 보상(모듈 770에서)을 수행함으로써 수행된다. 모션 추정 모듈(775)은, 그 목적이, 레이트-왜곡 비용(RD 비용)이 충분히 낮거나 최소에 도달할 때 전형적으로 종료되는 반복 검색을 이용할 수 있는 최상의 모션 벡터들을 결정하는 것이기 때문에, 모션 보상을 포함할 수 있다.
잔차들은 변환되고(모듈 725) 양자화된다(모듈 730). 변환 모듈(725)은 이미지를 픽셀 또는 시간 영역으로부터 변환 또는 주파수 영역으로 변환할 수 있다. 변환은, 예를 들어, 코사인 변환, 사인 변환, 웨이블릿 변환 등일 수 있다. 양자화는 예를 들어 레이트 왜곡 기준에 따라 수행될 수 있다. 모션 벡터들 및 다른 신택스 요소들뿐만 아니라 양자화된 변환 계수들은, 엔트로피 코딩되어(모듈 745) 비트스트림을 출력한다. 엔트로피 코딩은, 예를 들어, CABAC(Context Adaptive Binary Arithmetic Coding), CAVLC(Context Adaptive Variable Length Coding), Huffman, 산술, exp-Golomb 등일 수 있다. 인코더는 또한, 변환을 건너 뛰고 비변환된 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 또한, 변환 및 양자화 양쪽 모두를 우회할 수 있다, 즉, 잔차는 변환 또는 양자화 프로세스의 적용없이 직접 코딩된다. 직접 PCM 코딩에서, 어떠한 예측도 적용되지 않고 블록 샘플은 비트스트림으로 직접 코딩된다.
인코더는 디코딩 루프를 포함하므로 추가 예측을 위한 기준을 제공하기 위해 인코딩된 블록을 디코딩한다. 양자화된 변환 계수들은 잔차들을 디코딩하기 위해 역양자화(모듈 740)되고 역변환(모듈 750)된다. 이미지 블록은, 디코딩된 잔차들과 예측된 샘플 블록을 결합함으로써(모듈 755) 재구성된다. 인-루프 필터(765)는, 예를 들어, 코딩 아티팩트들을 감소시키도록 디블로킹/샘플 적응형 오프셋(Sample Adaptive Offset)(SAO) 필터링을 수행하기 위해 재구성된 픽처에 적용될 수 있다. 필터링된 이미지는 기준 픽처 버퍼(780)에 저장된다.
비디오 인코더(700)의 모듈들은 소프트웨어로 구현되고 프로세서에 의해 실행될 수 있거나, 또는 압축 기술 분야의 통상의 기술자에게 널리 알려진 회로 컴포넌트들을 이용하여 구현될 수 있다. 특히, 비디오 인코더(700)는 집적 회로(IC)로서 구현될 수도 있다.
비디오 인코더(700)의 모듈은 또한, 이하의 단락들 및 도면들에서 더 상세하게 설명되는 바와 같이, 본 개시내용에서 설명된 차이점들, 특히 모듈 인트라 예측(760)에서의 차이점들, 및/또는 인터 예측 모듈들(770, 775)에서의 차이점들을 제외하고, 다른 비디오 인코더들(예를 들어, HEVC 인코더들)에도 존재할 수 있다. 인트라 예측(760) 및/또는 인터 예측(770, 775) 이외의 기능들의 경우, 비디오 인코더(700)는, HEVC 비디오 인코더와 유사할 수 있고, 기능들은 여기서는 상세히 설명되지 않는다.
도 8은 본 개시내용의 한 실시예에 따른 예시적인 인트라 예측 모듈의 간소화된 블록도(800)를 도시한다. 인트라 예측 모듈(800)은 도 7의 인트라 예측 모듈(760)과 유사할 수 있다. 인트라 예측 모듈(800)은 재구성된 블록(811)을 수신하고 예측된 블록(835)을 출력한다. 인트라 예측 모듈(800)은, 3개의 모듈: 기준 샘플 생성 모듈(810), 블록 인트라 예측 모듈(820), 및 예측 후처리 모듈(830)을 포함한다.
기준 샘플 생성 모듈(810)에서, 기준 샘플(813)은 먼저, 기준 샘플 계산 모듈(812)에서 현재 블록의 재구성된 이웃 블록들로부터 계산되거나 결정될 수 있다. 이 스테이지에서, 기준 픽셀 또는 샘플 값들은, 이용가능하지 않은 경우 좌측 하단 픽셀들 또는 우측 상단 픽셀들의 패딩과 함께, 제1 기준 샘플 버퍼에 복사될 수 있다. 그 다음, 필터링된 기준 샘플들/버퍼(815)는, 기준 샘플 평활화 모듈(814)에서 원본 기준 샘플들/버퍼(813)의 평활화된 버전으로서 계산될 수 있다. 모듈(814)은, 대안으로서, 우회될 수 있다. 그 후, 선택 파라미터들(817)에 따라, 기준 샘플 선택 모듈(816) 내의 원본 기준 샘플들(813) 또는 필터링된 기준 샘플들(815)로부터 기준 샘플들이 선택된다(819). 그 다음, 모듈 인트라 예측(820)에서, 선택된 기준 샘플들/버퍼(819)로부터 현재 블록의 인트라 예측을 계산하기 위해 예측이 수행된다. 마지막으로, 예측 방향에 따라, 예측 후처리 모듈(830)에서 인트라 블록 예측에 관해 후처리(예를 들어, 필터링)가 적용되어 예측된 블록(835)을 출력할 수 있다. 후처리 모듈(830)은, 우회되거나 제거될 수 있다.
인트라 예측 모듈(800)의 모듈들은 또한, 이하의 단락들과 도면들에서 더 상세히 설명되는 바와 같이, 본 개시내용에서 설명된 차이점들, 특히 모듈들(816, 820 및 830) 및 선택 파라미터들(817)에서의 차이점들을 제외하고 다른 비디오 인코더들(예를 들어, HEVC 인코더들)에도 존재할 수 있다. 예를 들어, HEVC 표준에서, 817에서의 선택 파라미터들은, 현재 블록의 픽셀들의 수(예를 들어, 블록 크기) 및 결정된 예측 방향이다. 또한, HEVC 표준에서, 모듈들(820 및 830)은 결정된 예측 방향의 함수이다. 본 개시내용에 따르면, 블록 형상(예를 들어, 수평 또는 수직 직사각형)은 선택 파라미터(817)일 수 있고, 또한, 이하의 단락들 및 도면들에서 더 상세하게 설명되는 바와 같이 모듈들(816, 820 및 830)에도 영향을 미칠 수 있다. 블록 형상은 블록의 폭과 높이의 비율에 의해 특성규정되고, 이것은 수평 및 수직 직사각형 블록들이 상이한 형상들로서 간주되는 이유이다. 따라서 직사각형 블록의 배향이 고려된다.
도 9는 본 개시내용에 따른 현재 블록(910)에 대한 예시적인 기준 샘플들(920, 930)을 도시한다. 도 9는 HEVC 표준에도 적용가능하다. 크기 N×N의 현재 블록(910)(즉, 수평(x) 대 수직(y) 방향)에 대해, 도 8의 모듈(812)에서, 상단(920) 상의 한 행의 2N개(즉, 2*N개)의 재구성된 기준 샘플은, 이전에 재구성된 상단 및 상단 우측 기준 픽셀들로부터 현재 블록(910)까지 형성될 수 있다. 상단 기준 샘플들(920)은, 샘플들 P(0, -1), …, P(N-1, -1), ..., P(2N-1, -1)을 포함한다. 유사하게, 좌측(930) 상의 한 열의 2N개의 샘플은 재구성된 좌측 및 좌측 아래의 기준 픽셀들로부터 현재 블록(910)까지 형성될 수 있다. 좌측 기준 샘플들(930)은, 샘플들 P(-1, 0), …, P(-1, N-1), ..., P(-1, 2N-1)을 포함한다. 좌측 상단 위치의 코너 픽셀 P(-1, -1)도 역시, 최상단 행과 좌측 열 기준들 사이의 간격을 채우는데 이용된다. 대응하는 기준 블록들이 동일한 슬라이스 내에 있지 않거나 현재 블록이 프레임 경계에 있는 등의 이유로, 상단 또는 좌측의 샘플들 중 일부가 이용가능하지 않다면, 기준 샘플 대체라 불리는 방법이 수행될 수 있고, 여기서 누락된 샘플들이 이용가능한 샘플들로부터 시계 방향으로 복사된다.
본 개시내용에 따르면, 블록 크기는 N×N(즉, 정사각형 블록)으로 제한될 필요가 없고 M×N(즉, 정사각형 블록들을 포함한 일반적인 직사각형 블록들)일 수 있으며, 여기서 M은 N과 동일하거나 상이하다. M×N의 일반적인 블록 크기의 경우, 현재 블록의 상단에는 한 행의 2M개의 재구성된 기준 샘플이 있을 수 있고 좌측에는 한 열의 2N개의 재구성된 기준 샘플이 있을 수 있다.
인트라 샘플 예측은 도 8의 모듈(820)에서 수행되며 기준 샘플들에 기초하여 타겟 CU의 픽셀들을 예측하는 것으로 구성된다. 앞서 언급된 바와 같이, 상이한 종류들의 콘텐츠를 효율적으로 예측하기 위해, HEVC는 다양한 예측 모델을 지원한다. 평면 및 DC 예측 모드들은 평활하고 점진적으로 변화하는 영역들을 예측하는데 이용되는 반면, 각도 예측 모드들은 상이한 방향 구조들을 포착하는데 이용된다. HEVC는, 2 내지 34까지 인덱싱되는 33개의 방향 예측 모드를 지원한다. 방향 예측 모드들은 상이한 예측 방향들에 대응한다.
도 10은, HEVC 표준에 따른, 및 또한 본 개시내용에 따른, 인트라 예측 방향들을 도시한다. 그러나, 본 개시내용은 HEVC 방향들로 제한되지 않는다. 숫자들 2 내지 34는 대응하는 방향과 연관된 예측 모드 인덱스를 나타낸다. 모드들 2 내지 17은 수평 예측들(H-26 내지 H+32)을 나타내고, 모드들 18 내지 34는 수직 예측들(V-32 내지 V+32)을 나타낸다. 도 10의 심볼들 "H" 및 "V"는 각각 수평 및 수직 방향들을 나타내는데 이용되는 반면, 식별자의 숫자 부분은 픽셀들의 변위(“각도 파라미터”라고도 함)를 나타낸다.
첫 번째 행 또는 첫 번째 열 상의 타겟 픽셀로부터의 (픽셀의 1/32의 해상도에서의) 기준 샘플의 위치를 나타내는 각도 파라미터 A. 상이한 예측 모드들에 대한 값들 A는 표 1 및 2에 도시되어 있다.
Figure pct00006
Figure pct00007
음이 아닌 변위들을 갖는 방향들(즉, H0 내지 H+32, 및 V0 내지 V+32)도 역시 양의 방향들로서 표시되고, 음의 변위들을 갖는 방향들(즉, H-2 내지 H-26, 및 V-2 내지 V-32)도 역시 음의 방향들로서 표시된다. 양의 예측 방향은 또한, 양의 A 값을 갖는 방향으로서 정의될 수 있고, 음의 예측 방향은 음의 A 값을 갖는 방향으로서 정의될 수 있다.
도 10에 도시된 바와 같이, 정의된 각도 방향들은 샘플 정확도 1/32를 갖는다. 즉, 수평 또는 수직 방향의 2개의 픽셀 사이의 간격은 32개의 하위간격으로 분할된다. 전술된 바와 같이, 정의된 방향들은 수직 또는 수평으로 구별될 수 있다. 수평 방향들의 예측 모드들은, 좌측 기준 샘플들만을, 또는 일부의 좌측 및 일부의 상단 기준 샘플들을 이용한다. 마찬가지로, 수직 방향들의 예측 모드들은, 상단 기준 샘플들만을, 또는 일부의 상단 및 일부의 좌측 기준 샘플들을 이용한다. H0 내지 H+32의 수평 양의 방향들은 예측을 위해 좌측 기준 샘플들만을 이용한다. 마찬가지로, V0 내지 V+32의 수직 양의 방향들은 예측을 위해 상단 기준 샘플들만을 이용한다. 음의 수평 및 수직 방향들(H-2 내지 H-26, 및 V-2 내지 V-32)은, 예측을 위해 좌측과 상단 양쪽 모두 상의 기준 샘플들을 이용한다.
HEVC 기준 코드에서, 기준 어레이는 먼저, 상단 및 좌측 기준 샘플들을 이용하여 구성된다. 수직 예측들의 경우, 기준 어레이는 수평이고, 수평 예측들의 경우, 기준 어레이는 수직이다. 양의 각도 파라미터 A를 갖는 모드들(모드들 2 내지 10, 및 26 내지 34)의 경우, 기준 어레이는 방향에 따라 단순히 상단 또는 좌측 기준 샘플들이다:
수직 예측들의 경우,
Figure pct00008
(1)
수평 예측들의 경우,
Figure pct00009
(2)
여기서 N은 CU 크기이다. 타겟 CU의 좌측 상단 픽셀에서 샘플 좌표들을 (0, 0)으로 초기화하는 것이 통상적이다. 따라서, 상단 기준 샘플들은, -1로서의 y 좌표를 갖고, 좌측 기준 샘플들은, -1로서의 x 좌표를 가질 것이다.
음의 각도 파라미터 A를 갖는 모드들(모드 11 내지 25)의 경우, 기준 어레이는 상단 및 좌측 기준들 양쪽 모두로부터의 픽셀들을 필요로 한다. 이 경우, 기준 어레이는 -1을 넘어선 음의 인덱스들로 더 확장될 것이다. 양의 인덱스들을 갖는 기준 어레이 상의 샘플 값들은, 수직 또는 수평 예측에 따라 상기와 같이 획득된다. 음의 인덱스들을 갖는 기준 어레이 상의 것들은, 좌측 기준 픽셀들(수직 예측들의 경우) 또는 상단 기준 픽셀들(수평 예측들의 경우)을, 예측 방향을 따라 기준 어레이 상에 투영함으로써 획득된다.
일단 기준 어레이가 구성되고 나면, 타겟 CU 내부의 임의의 픽셀 위치
Figure pct00010
에서의 예측은, 선택된 방향을 따른 기준 어레이에 픽셀 위치를 투영한 다음,
Figure pct00011
에서 기준 어레이 샘플 값을 복사함으로써 획득된다. 기준 샘플 값은, 아래에 도시된 2개의 인접한 샘플 사이에서 보간함으로써 (1/32)의 샘플 해상도에서 계산된다.
수직 예측들의 경우,
Figure pct00012
(3)
수평 예측들의 경우,
Figure pct00013
(4)
여기서,
Figure pct00014
Figure pct00015
는, 픽셀 위치
Figure pct00016
로부터 투영된 변위의 정수 부분 및 소수 부분을 나타내고,
Figure pct00017
는 우측으로의 비트 시프트 연산을 나타낸다.
Figure pct00018
가 투영된 변위를 나타낸다면,
수평 예측들의 경우,
Figure pct00019
(5)
수직 예측들의 경우,
Figure pct00020
(6)
변위의 정수 부분 및 소수 부분들은 다음과 같이 획득된다:
Figure pct00021
(7)
Figure pct00022
(8)
여기서,
Figure pct00023
는 비트별 AND 연산을 나타낸다.
Figure pct00024
이면, 즉, 소수 부분이 없다면, 예측은 예측 방향의 기준 어레이 샘플 값과 동일하다는 점에 유의한다. 이 경우, 보간의 필요성은 없다.
DC 모드, 직접 수평(H0 또는 10) 및 수직 모드들(V0 또는 26) 등의 예측 모드들 중 일부는, 예측 후 CU 경계들에서 불연속을 야기할 수 있다. 따라서, 본 개시내용뿐만 아니라 HEVC에서도, 이러한 예측 모드들에 후속하여, 도 8의 후처리 모듈(830)에 의해 수행되는 후처리 단계가 이어지며, 여기서, 경계 예측된 샘플들은 저역 통과 필터를 이용하여 평활화된다.
앞서 언급된 바와 같이, 타겟 블록에 대한 예측을 구성하기 위해, 인코더(및 디코더)는, 블록의 상단의 한 행의 기준 샘플들 및 좌측의 한 열의 기준 샘플들만을 이용할 수 있다. 타겟 블록에 가장 가까운 도 9의 기준 샘플들은 타겟 블록 내용과의 최대량의 상관관계를 가지므로, 더 높은 복잡성 및 메모리 요건들로 인해 추가적인 디코딩된 행들 및 열들을 이용하는 것이 필요하다고 생각되지 않았다. 그러나, 이 로직은 타겟 블록 크기들이 작고 소수의 각도 예측 모드들만이 있는 경우에 적용가능하다. 블록 크기 및 예측 모드들의 수가 증가함에 따라, 하나의 기준 행 및 열로부터의 예측은, 추가적인 기준 행들 및 열들로부터의 방향 정보를 이용함으로써 더욱 정확하게 이루어질 수 있다.
블록들이 더 이상 정사각형이 아닐 수 있으므로, 직사각형 블록들의 형상이 수평 또는 수직 방향에서 불균형적으로 좁을 수 있다. 따라서, 예측 모드들의 성능 및 기준 샘플들의 필터링은 도 11 및 도 12의 비교에 의해 도시된 바와 같이 블록 형상에 따라 바이어스될 수 있다.
도 11은 HEVC 표준에 따른 정사각형 블록 형상들에 대한 예시적인 인트라 예측 모드들을 도시한다. 도면(1100)은: 각각의 예측 방향과 함께, a) 수평 예측 예 및 b) 수직 예측 예를 도시한다. 블록 형상과 예측 방향이 구별되지 않는 것을 관찰될 수 있는데, 즉, 정사각형 형상에 대한 수평 및 수직 예측들 사이에 유사성이 존재한다는 것을 알 수 있다. 본 개시내용에 따른 정사각형 블록 형상들에 대한 인트라 예측 모드들에도 동일하게 적용된다.
도 12는 본 개시내용에 따른 직사각형 블록 형상들에 대한 예시적인 인트라 예측 모드들을 도시한다. 도면(1200)은: 각각의 예측 방향들과 함께, a) 수직 직사각형 블록에 대한 수평 예측 예, b) 수직 직사각형 블록에 대한 수직 예측 예, c) 수평 직사각형 블록에 대한 수평 예측 예, 및 d) 수평 직사각형 블록에 대한 수직 예측 예를 도시한다. 예들 a) 및 d)에서, 예측된 픽셀들은 기준 샘플들에 가까운 것이 관찰될 수 있다. 그러나, b) 및 c)의 경우에, 예측된 픽셀들은 기준 샘플들로부터 멀리 떨어져 있으며, 이것은, 상관관계가 거리에 따라 감소하는 것을 감안할 때 바람직하지 않다.
또한, 블록 구조들 또는 텍스처와 정렬되지 않은 강한 엣지들을 전파하는 것은 잔차에서 높은 주파수들을 초래할 수 있고, 따라서 인코딩하는데 비용이 많이 드는 잔차가 될 수 있다. 정확한 예측을 생성하는 것과 잘못된 강한 엣지들을 피하는 것 사이에서 양호한 균형을 달성하기 위해, 일부 경우들에서 기준 샘플들을 저역 통과 필터링하는 것이 유용하다. HEVC 표준에서, 인트라 기준 샘플들은, 순수하게 수평인 또는 수직인 방향들과 인트라 예측 방향 사이의 (최소) 각도의 절대값에 따라 필터링된다(모듈 814). 임계값 또는 값은 블록 크기(블록 내의 픽셀들의 수)에 의존한다. 임계값 또는 값은 블록 형상과는 독립적이다. 각도가 이 임계값 또는 값보다 크다면, 기준 샘플 평활화 필터가 적용된다.
그 결과, 인트라 예측에 이용된 기준 샘플들은 때때로 3-탭 [1 2 1]/4 평활화 필터에 의해 필터링된다. HEVC 표준은, 방향성 및 블록 크기에 따라, 적응적으로 평활화 동작들을 적용한다. 평활화 필터는 4×4 블록들에 대해서는 적용되지 않는다. 8×8 블록들의 경우, 대각선 방향들(즉, k = 2, 18 또는 34인 Intra-Angular[k])만이 기준 샘플 평활화를 이용한다. 16×16 블록들의 경우, 기준 샘플들은, 거의 수평 및 거의 수직 방향들(즉, 9 내지 11 및 25 내지 27 범위의 k)을 제외한 대부분의 방향들에 대해 필터링된다. 32×32 블록들의 경우, 정확히 수평(k = 10) 및 정확인 수직(k = 26) 방향들을 제외한 모든 방향들은 평활화 필터를 이용한다. Intra-Planar 모드는 또한, 블록 크기가 8x8 이상일 때 평활화 필터를 이용하며, Intra-DC 경우에 대해서는 평활화가 이용되지 않는다(또는 유용하지 않다).
본 개시내용에 따르면, 그에 따라, 블록 형상에 기초하여 인트라 예측 모드를 결정하는 것이 바람직하다. 또한, 블록 형상 및 아마도 인트라 예측 방향에 기초하여 필터링 툴들을 결정하는 것이 바람직하다.
본 개시내용에 따른 한 실시예에서, 함수, 특성 또는 조건은 기준 평활화 필터링을 인에이블 또는 디스에이블하기 위한 블록 형상에 의존하여 또는 이와 연관하여 결정된다(모듈 810). 평활화 필터링은 저역 통과 필터링 프로세스일 수 있다. 평활화 필터링은 HEVC 표준에서 이용되는 유사한 필터들에 의해 수행될 수 있다. 함수 또는 특성은, 수평 직사각형 블록에 대해서는 블록의 폭으로서, 수직 직사각형 블록에 대해서는 블록의 높이로서, 및 정사각형 블록에 대해서는 블록의 폭 또는 높이로서 정의될 수 있다. 함수 또는 특성은, 동등하게, 예를 들어 블록의 최대 치수로서 정의되고, 기준 평활화 필터링에 적용될 수 있다. 한 실시예에서, 최대 치수가 블록의 폭(예를 들어, 도 12에서와 같이 수평 직사각형 블록, 항목 "c" 및 "d")이면, 적어도 하나의 수직 인트라 예측 모드(도면 10에서 V)는, 블록과 연관된 기준 샘플들의 세트의 기준 평활화 필터링(810)에 대해 디스에이블될 수 있다. 최대 치수가 블록의 높이(예를 들어, 도 12에서와 같이 수직 직사각형 블록, 항목 "a" 및 "b")이면, 적어도 하나의 수평 인트라 예측 모드(도면 10에서 H)는, 블록과 연관된 기준 샘플들의 세트의 기준 평활화 필터링(810)에 대해 디스에이블될 수 있다. 그렇지 않고, 블록의 폭과 높이 양쪽 모두가 유사한 치수들을 갖는다면, 수평 및 수직 인트라 예측 모드들은, 블록과 연관된 기준 샘플들의 세트의 기준 평활화 필터링(810)에 대해 인에이블될 수 있다.
즉, 예측 방향(수평 또는 수직)이 블록 형상(최대 치수에 의해 정의됨, 예를 들어, 수평 예측 및 폭 > 높이, 또는 수직 예측 및 폭 < 높이, 도 12에서의 경우 "c" 및 "b")과 동일하다면, 예측은 길다고 여겨진다. 그렇지 않다면(도 12에서의 경우 "a" 및 "d"), 예측은 짧다고 여겨진다. 짧은 예측의 경우, 기준 평활화 필터링(810)에 대해 적어도 하나의 인트라 방향 예측 모드가 디스에이블될 수 있다.
한 실시예에서, 짧은 예측에 대해, 기준 샘플 평활화 필터는 디스에이블될 수 있다. 예를 들어, 기준 평활화 필터링은 도 12에서 항목들 "b" 및 "c"에 대해서만 적용된다.
본 개시내용에 따른 한 실시예에서, 함수, 특성 또는 조건은 상기 블록의 대각선으로서 정의될 수 있다. 한 실시예에서, 함수, 특성 또는 조건은, 블록의 치수들의 가중 합, 예를 들어, 2*폭 + 높이로서 정의될 수 있다. 한 실시예에서, 블록의 상이한 형상들의 구별을 가능케하는 다른 더 복잡한 함수들이 고안될 수 있다.
본 개시내용에 따른 한 실시예에서, 함수, 특성 또는 조건은, 블록의 형상과 연관된 형상 임계값/값 또는 값들의 범위와 대조한 비교를 포함할 수 있다. 한 실시예에서, 형상 임계값/값 또는 값들의 범위는, 예측이 수평인 경우 블록 폭과 연관되거나, 예측이 수직인 경우 블록 높이와 연관될 수 있다. 다시 말해서, 형상 임계값/값 또는 값들의 범위는 블록의 최대 치수와 연관될 수 있다. 예를 들어, 블록의 최대 치수가 형상 임계값 p=4보다 크다면, 기준 평활화 필터가 적용될 수 있다.
본 개시내용에 따른 한 실시예에서, 함수, 특성 또는 조건은, 블록의 예측 방향과 연관된 방향 임계값/값 또는 값들의 범위와 대조한 비교를 더 포함할 수 있다. 예를 들어, 블록의 최대 치수가 형상 임계값 p=4보다 크고 예측 모드 인덱스 k가 수평 직사각형 블록에 대해 10보다 작거나 수직 직사각형 블록에 대해 26보다 크다면, 기준 평활화 필터가 적용될 수 있다.
본 개시내용에 따른 한 실시예에서, 블록 형상 및 블록의 예측 방향의 더 복잡한 함수들이 확립될 수 있다. 예를 들어, 형상 임계값은 예측 방향에 의존할 수 있다: 수평 방향들의 경우, 블록 폭이 p보다 크다면, k=9 내지 11의 경우 p=4와 함께, k < 18의 경우 p=16과 함께 필터가 적용되고, 이것은, p=4이고 k=9 내지 11인 경우를 제외한 거의 모든 수평 방향들에 대해 p=16을 의미한다. 수직 방향들의 경우, 블록 높이가 p보다 크다면, k=25 내지 27의 경우 p=4와 함께, k > 18의 경우 p=16과 함께 필터가 적용되고, 이것은, p=4이고 k=25 내지 27인 경우를 제외한 거의 모든 수직 방향들에 대해 p=16을 의미한다.
한 실시예에서, 현재 픽처, 슬라이스 또는 블록 중 적어도 하나에 대한 형상 임계값(들) 또는 값(들)을 나타내기 위해 (예를 들어, 신택스 요소들로서) 적어도 하나의 플래그가 비트스트림에 포함되고 선택사항으로서 인코딩될 수 있다. 적어도 하나의 플래그는 디코더에서 회수되어 인코딩된 블록을 디코딩하는데 이용될 수 있다.
본 개시내용에 따른 한 실시예에서, 예측, 잔차, 변환 및 코딩은, 기준 샘플 평활화 필터링의 유무에 관계없이 수행될 수 있다. 이 2개의 옵션 중에서, 더 양호한 레이트-왜곡(rate-distortion)(RD) 성능을 향상시키는 옵션을 선택할 수 있다.
한 실시예에서, 기준 샘플 평활화 필터링이, 현재의 픽처, 슬라이스 또는 블록 중 적어도 하나에 대해 인에이블/디스에이블되는지를 나타내기 위해, (예를 들어, 신택스 요소들로서) 적어도 하나의 플래그가 비트스트림에 포함되고 선택사항으로서 인코딩될 수 있다. 적어도 하나의 플래그는 디코더에서 회수되어 인코딩된 블록을 디코딩하는데 이용될 수 있다.
한 실시예에서, CU 레벨에서 1-비트 플래그를 이용하여 선택된 예측을 디코더에게 시그널링할 수 있다. 플래그는 예측 방향 및 블록 형상에 따른 컨텍스트를 이용하여 CABAC로 인코딩될 수 있다. 예를 들어, 예측이 수평이고 폭> 높이이거나 예측이 수직이고 높이 > 폭이면 컨텍스트 1을, 그렇지 않으면 컨텍스트 2를 이용할 수 있다. 플래그는 디코더에서 회수되어 인코딩된 블록을 디코딩하는데 이용될 수 있다.
본 개시내용에 따른 한 실시예에서, 함수, 특성 또는 조건은, 인트라 예측 모드를 인에이블 또는 디스에이블하기 위한 블록 형상에 따라 결정된다(모듈 820, 830). 함수 또는 특성은, 예를 들어 블록의 최대 치수로서 정의되어 인트라 예측에 적용될 수 있다. 한 실시예에서, 최대 치수가 블록의 폭이라면(예를 들어, 도 12에서와 같이, 수평 직사각형 블록, 항목 "c" 및 "d"), 블록과 연관된 인트라 예측(820, 830)의 생성에 대해 적어도 하나의 수직 인트라 예측 모드가 디스에이블될 수 있다. 최대 치수가 블록의 높이라면(예를 들어, 도 12에서와 같이, 수직 직사각형 블록, 항목 "a" 및 "b"), 블록과 연관된 인트라 예측(820, 830)의 생성에 대해 적어도 하나의 수평 인트라 예측 모드가 디스에이블될 수 있다. 그렇지 않고, 블록의 폭 및 높이 양쪽 모두가 유사한 치수를 갖는다면, 블록과 연관된 인트라 예측(820, 830)의 생성에 대해 수평 및 수직 인트라 예측 모드가 인에이블될 수 있다.
다시 말해, 예측이 짧다면, 인트라 예측(820, 830)에 대해 적어도 하나의 예측 모드는 디스에이블될 수 있다.
한 실시예에서, 짧은 예측의 경우, 모든 (수직 또는 수평) 예측 모드들이 디스에이블될 수 있다. 예를 들어, 수평 직사각형 블록들은 수평으로만 예측되고(도 12의 항목 "c"), 수직 직사각형 블록들은 수직으로만 예측된다(도 12의 항목 "b").
본 개시내용에 따른 한 실시예에서, 함수, 특성 또는 조건은, 블록의 형상과 연관된 형상 임계값/값 또는 값들의 범위와 대조한 비교를 포함할 수 있다. 한 실시예에서, 형상 임계값/값 또는 값들의 범위는, 예측이 수평인 경우 블록 폭과 연관되거나, 예측이 수직인 경우 블록 높이와 연관될 수 있다. 다시 말해서, 형상 임계값/값 또는 값들의 범위는 블록의 최대 치수와 연관될 수 있다. 예를 들어, 함수, 특성 또는 조건은, 형상 임계값 p=4보다 큰 블록의 최대 치수일 수 있다. 조건이 참이면, 블록, 슬라이스 또는 픽처에 대해 적어도 하나의 인트라 예측 모드가 허용/선택된다. 한 예에서, 심지어 블록 형상의 조건이 참인 경우에만 예측 방향들(인덱스들)이 이용가능하다. 또 다른 예에서, 4(또는 4의 배수) 예측 방향들(인덱스들) 중 하나는 조건이 참인 경우에만 이용가능하다.
본 개시내용에 따른 한 실시예에서, 함수, 특성 또는 조건은, 블록의 예측 방향과 연관된 방향 임계값/값 또는 값들의 범위와 대조한 비교를 더 포함할 수 있다. 예를 들어, 함수, 특성 또는 조건은, 블록의 최대 치수가 형상 임계값 p=4보다 크고 예측 모드 인덱스 k가 수평 직사각형 블록에 대해서 10보다 작거나 수직 직사각형 블록에 대해서 26보다 큰 것일 수 있다. 조건이 참이면, 블록, 슬라이스 또는 픽처에 대해 적어도 하나의 인트라 예측 모드가 허용/선택된다. 한 예에서, 심지어 블록 형상의 조건이 참인 경우에만 예측 방향들(인덱스들)이 이용가능하다. 또 다른 예에서, 4(또는 4의 배수) 예측 방향들(인덱스들) 중 하나는 조건이 참인 경우에만 이용가능하다.
본 개시내용에 따른 한 실시예에서, 블록 형상 및 블록의 예측 방향의 더 복잡한 함수들이 확립될 수 있다. 조건이 참이면, 블록, 슬라이스 또는 픽처에 대해 적어도 하나의 인트라 예측 모드가 허용/선택된다. 한 예에서, 심지어 블록 형상의 조건이 참인 경우에만 예측 방향들(인덱스들)이 이용가능하다. 또 다른 예에서, 4(또는 4의 배수) 예측 방향들(인덱스들) 중 하나는 조건이 참인 경우에만 이용가능하다.
본 개시내용에 따른 한 실시예에서, 인트라 예측 모드들(820, 830)과 연관된 상기 실시예들 중 임의의 것은 PDPC 인덱스 코딩에 적용된다. 또 다른 실시예에서, 상기 실시예들 중 임의의 것이 RSAF 인덱스 코딩에 적용된다. 역시 또 다른 실시예에서, 상기 실시예들 중 임의의 것은 복수의 기준 샘플 스위칭에 적용된다. 즉, 조건이 충족되지 않는다면, HEVC에서와 같은 단일 행 또는 단일 열 기준이 인트라 예측에 이용되고, 그 외의 경우, 다중 기준 예측이 이용된다. 다중 기준 인트라 예측이란, 기준 픽셀들의 복수의 행 및 열을 이용한 인트라 예측을 지칭한다. 이것은, 임의 계층 기준 인트라 예측(arbitrary tier reference intra prediction) 또는 다중-라인 인트라 예측(multi-line intra prediction)이라고도 지칭된다. 한 알려진 경우에, 가중치들이 각각의 기준 라인(또는 층)과 연관된, 가중된 다중 기준들을 이용하는 것이 제안된다.
한 변형으로서, 이 조건은, 인트라 예측(PDPC, RSAF, 다중 샘플 기준들)과 연관된 상기 실시예들에서 설명된 코딩 툴들 중 임의의 것에 적용될 수 있다. 이 조건이 충족되면, 툴(즉, 예측 방법)이 항상 이용되고, 그 외의 경우 이용되지 않는다. 또 다른 변형에서, 이 조건이 충족될 때, 인코더는 (고전적인 RDO 루프를 갖는) 툴을 이용하기로 선택하고, 툴의 이용 여부에 관계없이 플래그를 전송한다; 그렇지 않으면(조건이 충족되지 않으면) 툴이 이용되지 않는다.
도 13은 본 개시내용의 한 실시예에 따른 비디오 인코딩의 예시적인 방법의 플로차트(1300)를 도시한다. 이 방법(1300)은, 단계 1310에서, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하는 단계를 포함한다. 그 다음, 단계 1320에서, 방법(1300)은, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하는 단계를 포함한다. 그 다음, 단계 1330에서, 방법(1300)은, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하는 단계를 포함한다. 마지막으로, 단계 1340에서, 방법(1300)은, 예측 블록에 기초하여 블록을 인코딩하는 단계를 포함한다. 단계들 1310 내지 1340은, 예를 들어, 모듈(800)을 포함하는 인코더(700)(예를 들어, 760, 770, 775)에 의해 수행될 수 있다. 특히 단계들 1310 내지 1330은, 예를 들어, 단계 1320을 위한 모듈(810), 및 단계 1330을 위한 모듈(820, 830)을 포함한, 모듈 760, 800, 770, 775에 의해 수행될 수 있다. 블록 형상은, 예를 들어 정사각형 형상, 수직 직사각형 형상 및 수평 직사각형 형상 중 하나일 수 있다.
이 방법의 한 실시예에 따르면, 예측은 인트라 예측 또는 인터 예측일 수 있다.
이 방법의 한 실시예에 따르면, 블록 형상의 또는 블록 형상과 연관된 함수 또는 특성이 값 또는 임계값보다 클 때 처리가 인에이블되거나 선택될 수 있다. 따라서, 함수 또는 특성이 값 또는 임계값보다 클 때 조건이 참이다. 한 실시예에서, 처리는 함수 또는 특성이 값보다 작거나 같을 때 디스에이블되거나 선택되지 않을 수 있다.
이 방법의 한 실시예에 따르면, 블록 형상의 또는 블록 형상과 연관된 함수 또는 특성은 블록의 최대 치수일 수 있다. 한 실시예에서, 최대 치수는, 블록 형상이 수평 직사각형 형상일 때 블록 폭이다; 최대 치수는, 블록 형상이 수직 직사각형 형상일 때 블록 높이이다; 최대 치수는, 블록 형상이 정사각형일 때 블록 무게 또는 블록 높이이다.
이 방법의 한 실시예에 따르면, 함수 또는 특성은 블록의 대각선 길이일 수 있다.
이 방법의 한 실시예에 따르면, 함수 또는 특성은 블록의 치수들의 가중 합일 수 있다(예를 들어, 2*무게 + 높이).
이 방법의 한 실시예에 따르면, 처리는 또한, 예측 모드에 기초할 수 있다. 한 실시예에서, 처리는 또한, 블록에 대한 방향성 예측 모드에 기초할 수 있다.
이 방법의 한 실시예에 따르면, 처리는 함수 또는 특성이 값보다 클 때 적어도 하나의 예측 모드에 대해 인에이블되거나 선택될 수 있다. 예를 들어, 처리는, 수평 직사각형 블록들에서 수평 예측 모드들 및 수직 직사각형 블록들에서 수직 예측 모드들에 대해 인에이블될 수 있다.
이 방법의 한 실시예에 따르면, 비정사각형 블록에 대해, 처리는, 블록의 최소 치수의 방향에서 적어도 하나의 방향 예측 모드에 대해 디스에이블되거나 선택되지 않을 수 있다. 예를 들어, 처리는, 수직 직사각형 블록들에서 수평 예측 모드들 및/또는 수평 직사각형 블록들에서 수직 예측 모드들에 대해 디스에이블될 수 있다.
이 방법의 한 실시예에 따르면, 적어도 하나의 플래그가 인코딩된 비디오에 포함되며, 적어도 하나의 플래그는, 값과, 처리가 인에이블되어 있는지 중 적어도 하나를 나타낸다. 플래그는 예측 전에 또는 예측 동안에 디코더에서 회수될 수 있다.
이 방법의 한 실시예에 따르면, 처리는 기준 샘플들의 세트를 평활화 필터링하는 단계를 포함한다. 평활화 필터링은 저역 통과 필터링일 수 있다.
이 방법의 한 실시예에 따르면, 예측은 블록 형상에 기초한다. 한 실시예에서, 적어도 하나의 블록 형상에 대해 적어도 하나의 예측 모드(예를 들어, 인트라 예측 방향)가 허용된다. 한 실시예에서, 적어도 하나의 블록 형상에 대해, 적어도 하나의 예측 모드가 허용되지 않는다. 한 실시예에서, 전술된 바와 같이, 블록 형상의 조건이 참일 때, 적어도 하나의 예측 모드가 인에이블되거나 디스에이블된다.
방법(1300)은 또한, 본 개시내용에서 전술된 임의의 추가 실시예들 및 예들 중 임의의 것에도 적용된다는 것을 이해해야 한다.
한 실시예에 따르면, 이 방법은, 픽처를 수신하는 단계, 픽처를, 블록을 포함하는 복수의 블록으로 분할하는 단계, 블록에 대한 예측 잔차를 결정하는 단계, 복수의 변환 계수를 획득하고 상기 변환 계수들을 엔트로피 인코딩하기 위해 잔차를 변환 및 양자화하는 단계를 더 포함할 수 있다. 변환 및 양자화하는 단계는, 예를 들어, 인코더(700)의 모듈들(725 및 730)에 의해 수행될 수 있다. 엔트로피 인코딩하는 단계는, 예를 들어, 인코더(700)의 모듈(745)에 의해 수행될 수 있다. 수신, 변환 및 양자화 단계들은, 이들이 또 다른 디바이스에 의해 이전에 수행되었을 수 있거나 및/또는 결과가 메모리에 저장되었을 수 있기 때문에, 선택사항이거나, 우회되거나 제거될 수 있다.
전술된 방법(1300)의 실시예들 중 임의의 것은, 인트라 예측 모듈(800)을 포함한, 인코더(700)(예를 들어, 760, 770, 775)에 의해 구현될 수 있다는 것을 이해해야 한다. 인트라 예측 모듈(800)을 포함한, 인코더(700)의 블록들은, 하드웨어(예를 들어, 집적 회로) 또는 소프트웨어로 구현될 수 있고, 메모리에 저장되고 프로세서에 의해 실행될 수 있다.
디코딩
도 14는 본 개시내용의 한 실시예에 따른 예시적인 비디오 디코더(1400)의 간소화된 블록도를 도시한다. 비디오 디코더(1400)는 통신 시스템 내의 수신기에 포함될 수 있다. 비디오 디코더(1400)는 일반적으로 도 7에 기술된 바와 같이 비디오 인코더(700)에 의해 수행된 인코딩 패스(encoding pass)와 역 관계인 디코딩 패스(decoding pass)를 수행하지만, 디코더의 모든 동작들이 인코딩 프로세스의 역 동작들인 것은 아니다(예를 들어, 인트라 및 인터 예측). 특히, 디코더(1400)의 입력은, 비디오 인코더(700)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은, 먼저, 변환 계수들, 모션 벡터들, 신택스 요소들 및 기타의 코딩된 정보를 획득하기 위해 엔트로피 디코딩된다(모듈 1430). 변환 계수들은 잔차들을 디코딩하기 위해 역양자화(모듈 1440)되고 역변환(모듈 1450)된다. 그 다음, 디코딩된 잔차들은, (예측자라고도 알려진) 예측된 샘플 블록과 결합되어(모듈 1455) 디코딩된/재구성된 이미지 블록을 획득한다. 인코더는, 블록을 인코딩하기 위해 이용할 인트라 모드 또는 인터 모드 중 어느 하나를 결정하고(예를 들어, 모듈 705), 예측 모드 플래그에 의해 인트라/인터 결정을 표시한다. 예측된 샘플 블록은, 인트라 예측(모듈 1460) 또는 모션 보상된 예측(즉, 인터 예측)(모듈 1470)으로부터 획득될 수 있다(모듈 1405). 재구성된 이미지에는 인-루프 필터(모듈 1465)가 적용될 수 있다. 인-루프 필터는 디블로킹 필터 및 SAO 필터를 포함할 수 있다. 필터링된 이미지는 기준 픽처 버퍼(1480)에 저장된다.
비디오 디코더(1400)의 모듈들은 소프트웨어로 구현되고 프로세서에 의해 실행될 수 있거나, 또는 압축 기술 분야의 통상의 기술자에게 널리 알려진 회로 컴포넌트들을 이용하여 구현될 수 있다. 특히, 비디오 인코더(1400)는, 집적 회로(IC)로서, 단독으로 또는 코덱으로서 비디오 디코더(700)와 결합되어 구현될 수도 있다.
비디오 디코더(1400)의 모듈들은 또한, 본 개시내용에 따른, 및 이하의 단락들 및 도면들에서 더 상세하게 설명되는 바와 같이, 본 개시내용에서 설명된 차이점들, 특히 도 7의 모듈(760)에서와 같은 인트라 예측 모듈(1460)에서의 차이점들, 또는 도 7의 모듈들(770, 775)에서와 같은 인터 예측 모듈(1475)에서의 차이점들을 제외하고, 다른 비디오 디코더들(예를 들어, HEVC 디코더들)에도 존재한다. 인트라 예측 모듈(1460) 및/또는 인터 예측(1475) 이외의 기능들의 경우, 비디오 디코더(1400)는, HEVC 비디오 디코더와 유사할 수 있고, 그 기능들은 여기서 상세히 설명되지 않는다.
추가로, 인트라 예측 모듈(1460)은, 도 7의 인트라 예측 모듈들(760) 및 도 8의 800과 유사할 수 있다. 그리고, 모션 보상 모듈(1470)은 도 7의 모션 보상 모듈(770)과 유사할 수 있다.
도 15는 본 개시내용의 한 실시예에 따른 비디오 디코딩의 한 예시적인 방법의 플로차트(1500)를 도시한다. 이 방법(1500)은, 단계 1510에서, 인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하는 단계를 포함한다. 그 다음, 단계 1520에서, 방법(1500)은, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하는 단계를 포함한다. 그 다음, 단계 1530에서, 방법(1500)은, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하는 단계를 포함한다. 마지막으로, 단계 1540에서, 방법(1500)은, 예측 블록에 기초하여 블록을 디코딩하는 단계를 포함한다. 단계들 1510 내지 1540은, 예를 들어, (예를 들어, 모듈 800을 포함한) 디코더(1400)에 의해 수행될 수 있다. 특히 단계들 1510 내지 1530은, 예를 들어, 단계 1520을 위한 모듈(810), 및 단계 1530을 위한 모듈들(820, 830)을 포함한, 모듈 1460, 800, 1475에 의해 수행될 수 있다. 블록 형상은, 예를 들어 정사각형 형상, 수직 직사각형 형상 및 수평 직사각형 형상 중 하나일 수 있다.
이 방법의 한 실시예에 따르면, 예측은 인트라 예측 또는 인터 예측일 수 있다.
이 방법의 한 실시예에 따르면, 블록 형상의 또는 블록 형상과 연관된 함수 또는 특성이 값 또는 임계값보다 클 때 처리가 인에이블되거나 선택될 수 있다. 따라서, 함수 또는 특성이 값 또는 임계값보다 클 때 조건이 참이다. 한 실시예에서, 처리는 함수 또는 특성이 값보다 작거나 같을 때 디스에이블되거나 선택되지 않을 수 있다.
이 방법의 한 실시예에 따르면, 블록 형상의 또는 블록 형상과 연관된 함수 또는 특성 또는 속성은 블록의 최대 치수일 수 있다. 한 실시예에서, 최대 치수는, 블록 형상이 수평 직사각형 형상일 때 블록 폭이다; 최대 치수는, 블록 형상이 수직 직사각형 형상일 때 블록 높이이다; 최대 치수는, 블록 형상이 정사각형일 때 블록 무게 또는 블록 높이이다.
이 방법의 한 실시예에 따르면, 함수 또는 특성은 블록의 대각선 길이일 수 있다.
이 방법의 한 실시예에 따르면, 함수 또는 특성은 블록의 치수들의 가중 합일 수 있다(예를 들어, 2*무게 + 높이).
이 방법의 한 실시예에 따르면, 처리는 또한, 예측 모드에 기초할 수 있다. 한 실시예에서, 처리는 또한, 블록에 대한 방향성 예측 모드에 기초할 수 있다.
이 방법의 한 실시예에 따르면, 처리는 함수 또는 특성이 값보다 클 때 적어도 하나의 예측 모드에 대해 인에이블되거나 선택될 수 있다. 예를 들어, 처리는, 수평 직사각형 블록들에서 수평 예측 모드들 및 수직 직사각형 블록들에서 수직 예측 모드들에 대해 인에이블될 수 있다.
이 방법의 한 실시예에 따르면, 비정사각형 블록에 대해, 처리는, 블록의 최소 치수의 방향에서 적어도 하나의 방향 예측 모드에 대해 디스에이블되거나 선택되지 않을 수 있다. 예를 들어, 처리는, 수직 직사각형 블록들에서 수평 예측 모드들 및/또는 수평 직사각형 블록들에서 수직 예측 모드들에 대해 디스에이블될 수 있다.
이 방법의 한 실시예에 따르면, 적어도 하나의 플래그가 인코딩된 비디오에 포함되며, 적어도 하나의 플래그는, 값과, 처리가 인에이블되어 있는지 중 적어도 하나를 나타낸다. 플래그는 예측 전에 또는 예측 동안에 디코더에서 회수될 수 있다.
이 방법의 한 실시예에 따르면, 처리는 기준 샘플들의 세트를 평활화 필터링하는 단계를 포함한다. 평활화 필터링은 저역 통과 필터링일 수 있다.
이 방법의 한 실시예에 따르면, 예측은 블록 형상에 기초한다. 한 실시예에서, 적어도 하나의 블록 형상에 대해 적어도 하나의 예측 모드(예를 들어, 인트라 예측 방향)가 허용된다. 한 실시예에서, 적어도 하나의 블록 형상에 대해, 적어도 하나의 예측 모드가 허용되지 않는다. 한 실시예에서, 전술된 바와 같이, 블록 형상의 조건이 참일 때, 적어도 하나의 예측 모드가 인에이블되거나 디스에이블된다.
방법(1500)은 또한, 방법(1300)과 연관하여 본 개시내용에서 전술된 임의의 추가 실시예들 및 예들 중 임의의 것에도 적용된다는 것을 이해해야 한다.
한 실시예에 따르면, 이 방법은, 인코딩된 픽처를 수신하는 단계, 인코딩된 블록을 엔트로피 디코딩하는 단계, 디코딩된 잔차를 획득하기 위해 변환 계수 블록을 역변환하는 단계, 디코딩된/재구성된 이미지 블록을 획득하기 위해 디코딩된 잔차를 예측된 샘플 블록과 결합하는 단계를 더 포함할 수 있다. 변환 계수는, 역변환되기 전에 추가로 역양자화될 수 있다. 엔트로피 디코딩, 역변환 및 역양자화하는 단계들은, 예를 들어, 디코더(1400)의 모듈들(1430, 1450 및 1440)에 의해 각각 수행될 수 있다. 수신, 엔트로피 디코딩, 역변환 및 역양자화, 및 결합하는 단계들은, 이들이 또 다른 디바이스에 의해 이전에 수행되었거나 및/또는 또 다른 디바이스에 제공되었거나, 메모리로부터 결과가 회수되었거나 및/또는 메모리에 결과가 저장되었을 수 있기 때문에, 선택사항이거나, 우회되거나 제거될 수 있다.
전술된 방법(1500)의 실시예들 중 임의의 것은 디코더(1400)에 의해 구현될 수 있다(예를 들어, 1460, 800, 1475)는 것을 이해해야 한다. 디코더(1400)의 모듈들은, 하드웨어(예를 들어, 집적 회로) 또는 소프트웨어로 구현될 수 있고, 메모리에 저장되고 프로세서에 의해 실행될 수 있다.
도 16은 본 개시내용의 예시적인 실시예들의 다양한 양태가 구현될 수 있는 예시적인 시스템의 블록도(1600)를 도시한다. 시스템(1600)은 후술되는 다양한 컴포넌트를 포함하는 디바이스로서 구현될 수 있고 전술된 프로세스들을 수행하도록 구성된다. 이러한 디바이스의 예로서는, 개인용 컴퓨터, 랩탑 컴퓨터, 스마트폰, 스마트 시계, 태블릿 컴퓨터, 디지털 멀티미디어 셋탑 박스, 디지털 텔레비전 수신기, 개인용 비디오 녹화 시스템, 접속된 가전 기기, 및 서버가 포함되지만 이것으로 제한되는 것은 아니다. 시스템(1600)은, 전술된 예시적인 비디오 시스템을 구현하기 위해 도 16에 도시되고 본 기술분야의 통상의 기술자에게 알려진 통신 채널을 통해 다른 유사한 시스템에 및 디스플레이에 통신가능하게 결합될 수 있다. 시스템(1600)은, (예를 들어, 모듈 800을 포함한) 인코더(700), (예를 들어, 모듈 800을 포함한) 디코더(1400) 또는 인코더(들) 및 디코더(들)를 독립적으로 또는 공동으로 구현할 수 있다. 더욱이, 시스템(1600)은, 방법 1300 및/또는 1500을 포함한, 본 개시내용의 프로세스들 중 임의의 것을 독립적으로 또는 공동으로 구현하고 실행하도록 구성될 수 있다.
시스템(1600)은, 위에서 논의된 다양한 프로세스를 구현하기 위해 그 내부에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1610)를 포함할 수 있다. 프로세서(1610)는, 내장 메모리, 입력 출력 인터페이스 및 본 기술분야에 공지된 다양한 다른 회로를 포함할 수 있다. 시스템(1600)은 또한, 적어도 하나의 메모리(1620)(예를 들어, RAM 등의 휘발성 메모리 디바이스, ROM 등의 비휘발성 메모리 디바이스)를 포함할 수 있다. 시스템(1600)은 저장 디바이스(1640)를 추가로 포함할 수 있고, 저장 디바이스는, 소거가능하고 프로그램가능한 판독 전용 메모리(EPROM), ROM, 프로그램가능한 판독 전용 메모리(PROM), 동적 RAM(DRAM), 정적 RAM(SRAM), 플래시 메모리, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이것으로 제한되지 않는 비휘발성 메모리를 포함할 수 있다. 저장 디바이스(1640)는, 비제한적인 예로서, 내부 저장 디바이스, 부착된 저장 디바이스 및/또는 네트워크 액세스가능한 저장 디바이스를 포함할 수 있다. 시스템(1600)은 또한, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(1630)을 포함할 수 있다.
인코더/디코더 모듈(1630)은, 예를 들어, 각각, (예를 들어, 도 8을 포함한) 도 7 및 (예를 들어, 도 8을 포함한) 도 14에 따라, 인코딩 및/또는 디코딩 기능을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 압축 기술분야에서 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 양쪽 모두를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(1630)은 시스템(1600)의 별개의 요소로서 구현될 수 있거나, 본 기술분야의 통상의 기술자에게 알려진 하드웨어 및 소프트웨어의 조합으로서 프로세서(1610) 내에 통합될 수 있다. 예를 들어, 인코더/디코더 모듈(1630)은, 1개 또는 2개의 별개의 집적 회로 및/또는 FPGA(field-programmable gate array)로서 구현될 수 있다.
전술된 다양한 프로세스를 수행하기 위해 프로세서(1610)에 로딩될 프로그램 코드는, 저장 디바이스(1640)에 저장되고 프로세서(1610)에 의한 실행을 위해 메모리(1620)에 후속해서 로딩될 수 있다. 본 개시내용의 예시적인 실시예들에 따르면, 하나 이상의 프로세서(들)(1610), 메모리(1620), 저장 디바이스(1640) 및 인코더/디코더 모듈(1630)은, 입력 비디오, 디코드 비디오, 비트스트림, 수학식, 공식, 행렬, 변수, 연산 및 연산 로직을 포함한 그러나 이것으로 제한되지 않는, 위에서 논의된 프로세스들의 수행 동안 다양한 항목 중 하나 이상을 저장할 수 있다.
시스템(1600)은 또한, 통신 채널(1660)을 통해 다른 디바이스와의 통신을 가능케하는 통신 인터페이스(1650)를 포함할 수 있다. 통신 인터페이스(1650)는, 통신 채널(1660)로부터 데이터를 전송 및 수신하도록 구성된 트랜시버를 포함할 수 있지만, 이것으로 제한되는 것은 아니다. 통신 인터페이스는, 모뎀 또는 네트워크 카드를 포함할 수 있지만, 이것으로 제한되는 것은 아니며, 통신 채널은 유선 및/또는 무선 매체 내에 구현될 수 있다. 시스템(1600)의 다양한 컴포넌트는, 내부 버스, 와이어 및 인쇄 회로 기판을 포함한 그러나 이것으로 제한되지 않는 다양한 적절한 접속을 이용하여 서로 접속되거나 통신가능하게 결합될 수 있다.
본 개시내용에 따른 예시적인 실시예들은, 프로세서(1610)에 의해 실행되는 컴퓨터 소프트웨어에 의해, 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 본 개시내용에 따른 예시적인 실시예들은 하나 이상의 집적 회로에 의해 구현될 수 있다. 메모리(1620)는 기술 환경에 적절한 임의의 유형일 수 있고, 비제한적인 예로서, 광학적 메모리 디바이스, 자기 메모리 디바이스, 반도체-기반 메모리 디바이스, 고정된 메모리 및 착탈식 메모리 등의, 임의의 적절한 데이터 저장 기술을 이용하여 구현될 수 있다. 프로세서(1610)는 기술 환경에 적절한 임의의 유형일 수 있고, 비제한적인 예로서, 멀티-코어 아키텍쳐에 기초한 마이크로프로세서들, 범용 컴퓨터들, 특별 목적 컴퓨터들 및 프로세서들 중 하나 이상을 포함할 수 있다.
여기서 설명된 구현들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의되었지만(예를 들어, 방법으로서만 논의되었지만), 논의된 피처들의 구현은 다른 형태들(예를 들어, 장치, 또는 프로그램)로도 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수도 있다. 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그램가능한 로직 디바이스를 포함한, 일반적으로 처리 디바이스를 지칭하는, 예를 들어 프로세서 등의 장치로 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 셀 전화기들, PDA(portable/personal digital assistant)들, 및 엔드 유저들간 정보의 통신을 용이화하는 기타의 디바이스들 등의, 통신 디바이스들을 포함한다.
본 개시내용의 한 양태 따르면, 비디오 인코딩을 위한 장치(1600)가 제공되며, 이 장치는, 프로세서(1610), 및 프로세서에 결합된 적어도 하나의 메모리(1620, 1640)를 포함하고, 프로세서(1610)는, 전술된 비디오 인코딩 방법(1300)의 실시예들 중 임의의 것을 수행하도록 구성된다.
본 개시내용의 한 양태 따르면, 비디오 디코딩을 위한 장치(1600)가 제공되며, 이 장치는, 프로세서(1610), 및 프로세서에 결합된 적어도 하나의 메모리(1620, 1640)를 포함하고, 프로세서(1610)는, 전술된 비디오 디코딩 방법(1500)의 실시예들 중 임의의 것을 수행하도록 구성된다.
본 개시내용의 한 양태에 따르면, 비디오 인코딩을 위한 장치가 제공되고, 이 장치는, 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하기 위한 수단, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하기 위한 수단, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하기 위한 수단, 및 예측 블록에 기초하여 블록을 인코딩하기 위한 수단을 포함한다. (예를 들어, 도 8 및 도 16을 포함한) 도 7의 비디오 인코더는, 장치의 구조 또는 수단, 특히 모듈들 760(예를 들어, 800), 770, 775, 1710 및 1730을 포함할 수 있다. 비디오 인코딩을 위한 장치는, 비디오 인코딩의 임의의 방법(1300)의 실시예들 중 임의의 것을 수행할 수 있다.
본 개시내용의 한 양태에 따르면, 비디오 디코딩을 위한 장치가 제공되고, 이 장치는, 인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 한 세트의 기준 샘플들에 액세스하기 위한 수단, 블록의 형상에 기초하여 기준 샘플들의 세트를 처리하기 위한 수단, 처리된 기준 샘플들의 세트에 기초하여 블록에 대한 예측 블록을 생성하기 위한 수단, 및 예측 블록에 기초하여 블록을 인코딩하기 위한 수단을 포함한다. (예를 들어, 도 8을 포함한) 도 14 및 도 17은, 비디오 디코딩을 위한 장치의 구조 또는 수단, 특히 블록들 1460(예를 들어, 800), 1475, 1710 및 1730을 포함할 수 있다. 비디오 디코딩을 위한 장치는, 비디오 디코딩의 임의의 방법(1500)의 실시예들 중 임의의 것을 수행할 수 있다.
본 기술분야의 통상의 기술자에게 명백한 바와 같이, 구현은, 예를 들어, 저장되거나 전송될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호를 생성할 수 있다. 이 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는, 설명된 실시예의 비트스트림을 운반하도록 포맷팅될 수 있다. 이러한 신호는, 예를 들어 전자기파(예를 들어, 스펙트럼의 무선 주파수 부분을 이용) 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하고 캐리어를 인코딩된 데이터 스트림으로 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 공지된 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 전송될 수 있다. 신호는 프로세서-판독가능한 매체에 저장될 수 있다.
본 개시내용의 한 양태에 따르면, 픽처의 블록을 나타내는 인코딩된 데이터를 포함하도록 포맷팅된 비트스트림을 포함하는 신호가 개시되고, 인코딩된 데이터는, 비디오 인코딩의 임의의 방법(1300)의 실시예들 중 임의의 것에 따라 인코딩된다.
본 개시내용의 한 양태에 따르면, 픽처의 블록을 나타내는 인코딩된 데이터를 포함하도록 포맷팅된 비트스트림이 개시되고, 인코딩된 데이터는, 비디오 인코딩의 임의의 방법(1300)의 실시예들 중 임의의 것에 따라 인코딩된다.
더욱이, 방법들(1300 및/또는 1500) 중 임의의 것은, 프로세서에 의해 실행될 수 있는 컴퓨터 실행가능한 명령어들을 포함하는 컴퓨터 프로그램 제품으로서 (독립적으로 또는 공동으로) 구현될 수 있다. 컴퓨터-실행가능한 명령어들을 갖는 컴퓨터 프로그램 제품은, 시스템(1600), (예를 들어, 모듈 800을 포함한) 인코더(700) 및/또는 (예를 들어, 모듈 800을 포함한) 디코더(1400)의 상응하는 일시적인 또는 비일시적인 컴퓨터-판독가능한 저장 매체에 저장될 수 있다.
본 개시내용의 한 양태에 따르면, 본 개시내용의 방법들(1300 및/또는 1500) 중 임의의 방법의 실시예들 중 임의의 실시예를 (독립적으로 또는 공동으로) 수행하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품이 제공된다.
프로세스들(1300 및/또는 1500) 내의 요소들 중 하나 이상이, 일부 실시예들에서는, 여전히 본 개시내용의 양태를 구현하면서, 결합되거나, 상이한 순서로 수행되거나, 제외될 수 있다는 점에 유의하는 것이 중요하다. 다른 단계들은 병렬로 수행될 수 있으며, 여기서, 프로세서는 또 다른 단계를 시작하기 전에 한 단계의 완전한 완료를 기다리지 않는다.
또한, 본 개시내용의 양태들은 컴퓨터-판독가능한 저장 매체의 형태를 취할 수 있다. 하나 이상의 컴퓨터-판독가능한 저장 매체(들)의 임의의 조합이 이용될 수도 있다. 컴퓨터-판독가능한 저장 매체는, 하나 이상의 컴퓨터-판독가능한 매체(들)로 구현되고 컴퓨터에 의해 실행가능한 컴퓨터-판독가능한 프로그램 코드가 구현되어 있는 컴퓨터-판독가능한 프로그램 제품의 형태를 취할 수 있다. 본 명세서에서 이용되는 컴퓨터-판독가능한 저장 매체는, 내부에 정보를 저장하는 고유 능력뿐만 아니라 정보 회수를 제공하는 고유 능력을 고려하여 비일시적인 저장 매체로서 간주된다. 컴퓨터-판독가능한 저장 매체는, 예를 들어, 전자적, 자기적, 광학적, 전자기적, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 이들의 임의의 적절한 조합일 수 있지만, 이것으로 제한되는 것은 아니다.
이하의 목록은, 본 개시내용이 적용될 수 있는 컴퓨터-판독가능한 저장 매체의 더 구체적인 예를 제공하지만, 본 기술분야의 통상의 기술자라면 용이하게 이해하는 바와 같이, 단지 예시적인 것일 뿐이고 빠짐없는 목록이 아님을 이해해야 한다. 예들의 목록은, 휴대형 컴퓨터 디스켓, 하드 디스크, ROM, EPROM, 플래시 메모리, CD-ROM(Portable Compact Disc Read-Only Memory), 광학적 저장 디바이스, 자기적 저장 디바이스, 또는 이들의 임의의 적절한 조합을 포함한다.
본 개시내용의 한 양태에 따르면, 방법들 1300 및/또는 1500을 포함한, 본 개시내용의 임의의 방법의 실시예들 중 임의의 것을 수행하기 위한 프로그램 코드 명령어를 포함하는 소프트웨어 프로그램을 운반하는 컴퓨터-판독가능한 저장 매체가 제공된다.
본 개시내용의 "한 실시예" 또는 "실시예" 또는 "한 구현" 또는 "구현" 뿐만 아니라 그 다른 변형들에 대한 언급은, 그 실시예와 관련하여 설명된 특정한 피처, 구조, 특성 등이, 본 개시내용의 적어도 하나의 실시예에 포함된다는 것을 의미함을 이해해야 한다. 따라서, 명세서의 다양한 곳에서 나타나는 문구 "한 실시예에서" 또는 "실시예에서" 또는 "한 구현에서" 또는 "구현에서" 뿐만 아니라 기타 임의의 변형의 등장은, 반드시 모두가 동일한 실시예를 언급하는 것은 아니다.
또한, 본 개시내용 또는 그 청구항들은 다양한 정보를 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어 정보를 추정하거나, 정보를 계산하거나, 정보를 예측하거나, 메모리로부터 정보를 회수하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 개시내용 또는 그 청구항들은 다양한 정보를 "제공하는 것"을 언급할 수 있다. 정보를 제공하는 것은, 예를 들어, 정보를 출력하거나, 정보를 저장하거나, 정보를 전송하거나, 정보를 보내거나, 정보를 디스플레이하거나, 정보를 보여주거나, 정보를 이동시키는 것 중 하나 이상을 포함할 수 있다.
또한, 본 개시내용 또는 그 청구항들은 다양한 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하거나, (예를 들어, 메모리로부터) 정보를 회수하거나, 정보를 저장하거나, 정보를 처리하거나, 정보를 이동하거나, 정보를 복사하거나, 정보를 소거하거나, 정보를 계산하거나, 정보를 결정하거나, 정보를 예측하거나, 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 개시내용 또는 그 청구항들은 다양한 정보를 "수신하는 것"을 언급할 수 있다. 수신하는 것은, "액세스하는 것"과 마찬가지로, 광범위한 용어로서 의도된 것이다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하거나, (예를 들어, 메모리로부터) 정보를 회수하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은, 전형적으로, 예를 들어 정보를 저장하거나, 정보를 처리하거나, 정보를 전송하거나, 정보를 이동하거나, 정보를 복사하거나, 정보를 소거하거나, 정보를 계산하거나, 정보를 결정하거나, 정보를 예측하거나, 정보를 추정하는 등의, 동작 동안에, 한 방식이나 또 다른 방식으로, 수반된다.
도시되고 설명된 다양한 피처는 상호교환가능하다는 것을 이해해야 한다. 달리 나타내지 않는 한, 한 실시예에 도시된 피처는 또 다른 실시예에 통합될 수 있다. 또한, 다양한 실시예에 설명된 피처들은, 분리할 수 없거나 결합할 수 없는 것으로 달리 표시되지 않는 한, 결합되거나 분리될 수 있다.
앞서 언급된 바와 같이, 도면에 도시된 다양한 요소의 기능들은 전용 하드웨어 뿐만 아니라 적절한 소프트웨어와 연관되어 소프트웨어를 실행할 수 있는 하드웨어의 이용을 통해 제공될 수 있다. 또한, 프로세서에 의해 제공될 때, 기능들은, 단일의 전용 프로세서에 의해, 단일의 공유된 프로세서에 의해, 또는 일부가 공유될 수 있는 복수의 개별 프로세서에 의해 제공될 수 있다.
첨부된 도면들에 도시된 구성 시스템 컴포넌트들 및 방법들 중 일부는 바람직하게는 소프트웨어로 구현되기 때문에, 시스템 컴포넌트들 또는 프로세스 기능 블록들 사이의 실제의 접속은, 본 개시내용의 프로세스들이 프로그래밍되는 방식에 따라 상이할 수 있다는 것을 더 이해해야 한다. 본 명세서의 교시를 감안하면, 관련 기술의 통상의 기술자라면, 본 개시내용의 이들 및 유사한 구현들 또는 구성들을 고려할 수 있을 것이다.
예시적인 실시예들이 첨부된 도면들을 참조하여 본 명세서에서 설명되었지만, 본 개시내용은 이들 실시예들 그대로 제한되지 않으며, 본 개시내용의 범위를 벗어나지 않으면서 관련 기술분야의 통상의 기술자에 의해 다양한 변경 및 수정이 이루어질 수 있다는 것을 이해해야 한다. 또한, 본 개시내용의 범위를 벗어나지 않고 개개의 실시예들이 결합될 수 있다. 이러한 모든 변경 및 수정은, 첨부된 청구항들에 개시된 본 개시내용의 범위 내에 포함되도록 의도된다.

Claims (15)

  1. 비디오 인코딩 방법(1300)으로서,
    비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하는 단계(1310);
    상기 블록의 형상에 기초하여 상기 기준 샘플들의 세트를 처리하는 단계(1320);
    상기 처리된 기준 샘플들의 세트에 기초하여 상기 블록에 대한 예측 블록을 생성하는 단계(1330); 및
    상기 예측 블록에 기초하여 상기 블록을 인코딩하는 단계(1340)
    를 포함하는 방법.
  2. 비디오 인코딩을 위한 장치로서,
    비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하기 위한 수단;
    상기 블록의 형상에 기초하여 상기 기준 샘플들의 세트를 처리하기 위한 수단;
    상기 처리된 기준 샘플들의 세트에 기초하여 상기 블록에 대한 예측 블록을 생성하기 위한 수단; 및
    상기 예측 블록에 기초하여 상기 블록을 인코딩하기 위한 수단
    을 포함하는 장치.
  3. 비디오 디코딩 방법(1500)으로서,
    인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하는 단계(1510);
    상기 블록의 형상에 기초하여 상기 기준 샘플들의 세트를 처리하는 단계(1520);
    상기 처리된 기준 샘플들의 세트에 기초하여 상기 블록에 대한 예측 블록을 생성하는 단계(1530); 및
    상기 예측 블록에 기초하여 상기 블록을 디코딩하는 단계(1540)
    를 포함하는 방법.
  4. 비디오 디코딩을 위한 장치로서,
    인코딩된 비디오의 픽처에서 블록의 예측에 이용되는 기준 샘플들의 세트에 액세스하기 위한 수단;
    상기 블록의 형상에 기초하여 상기 기준 샘플들의 세트를 처리하기 위한 수단;
    상기 처리된 기준 샘플들의 세트에 기초하여 상기 블록에 대한 예측 블록을 생성하기 위한 수단; 및
    상기 예측 블록에 기초하여 상기 블록을 인코딩하기 위한 수단
    을 포함하는 장치.
  5. 제1항 또는 제3항에 있어서, 또는 제2항 또는 제4항에 있어서, 상기 처리는 상기 블록 형상과 연관된 함수가 값보다 클 때 인에이블되는, 방법 또는 장치.
  6. 제5항에 있어서, 상기 함수는 상기 블록의 최대 치수, 상기 블록의 대각선 및 상기 블록의 치수들의 가중 합 중 하나인, 방법 또는 장치.
  7. 제5항 또는 제6항에 있어서, 상기 처리는 예측 모드에 추가로 기초하는, 방법 또는 장치.
  8. 제8항에 있어서, 상기 함수가 상기 값보다 클 때 적어도 하나의 예측 모드에 대해 상기 처리가 인에이블되는, 방법 또는 장치.
  9. 제1항, 제3항 및 제5항 내지 제8항 중 어느 한 항에 있어서, 또는 제2항, 제4항 및 제5항 내지 제8항 중 어느 한 항에 있어서, 비정사각형 블록에 대해, 상기 블록의 최소 치수의 방향에서 적어도 하나의 방향 예측 모드에 대해 상기 처리가 디스에이블되는, 방법 또는 장치.
  10. 제5항 내지 제9항 중 어느 한 항에 있어서, 상기 인코딩된 비디오에는 적어도 하나의 플래그가 포함되고, 상기 적어도 하나의 플래그는 상기 값과, 상기 처리가 인에이블되어 있는지 중 적어도 하나를 나타내는, 방법 또는 장치.
  11. 제1항, 제3항 및 제5항 내지 제10항 중 어느 한 항에 있어서, 또는 제2항, 제4항 및 제5항 내지 제10항 중 어느 한 항에 있어서, 상기 처리는 상기 기준 샘플들의 세트를 평활화 필터링하는 것을 포함하는, 방법 또는 장치.
  12. 제1항, 제3항 및 제5항 내지 제11항 중 어느 한 항에 있어서, 또는 제2항, 제4항 및 제5항 내지 제11항 중 어느 한 항에 있어서, 상기 예측은 상기 블록 형상에 기초하는, 방법 또는 장치.
  13. 제1항, 제3항 및 제5항 내지 제12항 중 어느 한 항에 따른 방법을 수행하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품.
  14. 제1항, 제3항 및 제5항 내지 제12항 중 어느 한 항에 따른 방법을 위한 프로그램 코드 명령어들을 포함하는 소프트웨어 프로그램을 운반하는 컴퓨터-판독가능한 저장 매체.
  15. 픽처의 블록을 나타내는 인코딩된 데이터를 포함하도록 포맷팅된 비트스트림으로서, 상기 인코딩된 데이터는 제1항 및 제5항 내지 제12항 중 어느 한 항에 따라 인코딩되는, 비트스트림.
KR1020207015797A 2017-12-05 2018-12-04 블록 형상에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치 KR20200096227A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17306703.4A EP3496401A1 (en) 2017-12-05 2017-12-05 Method and apparatus for video encoding and decoding based on block shape
EP17306703.4 2017-12-05
PCT/US2018/063788 WO2019113027A1 (en) 2017-12-05 2018-12-04 Method and apparatus for video encoding and decoding based on block shape

Publications (1)

Publication Number Publication Date
KR20200096227A true KR20200096227A (ko) 2020-08-11

Family

ID=60654907

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207015797A KR20200096227A (ko) 2017-12-05 2018-12-04 블록 형상에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US20200374530A1 (ko)
EP (2) EP3496401A1 (ko)
JP (2) JP2021506150A (ko)
KR (1) KR20200096227A (ko)
CN (1) CN111448798A (ko)
IL (2) IL275034B2 (ko)
WO (1) WO2019113027A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3092638A1 (en) * 2018-03-01 2019-09-06 Arris Enterprises Llc System and method of motion information storage for video coding and signaling
US10567752B2 (en) * 2018-07-02 2020-02-18 Tencent America LLC Method and apparatus for intra prediction for non-square blocks in video compression
KR20210016601A (ko) * 2018-07-11 2021-02-16 후아웨이 테크놀러지 컴퍼니 리미티드 인트라 예측을 위한 종횡비 의존적 필터링을 위한 방법 및 장치
CN112997497A (zh) * 2018-11-14 2021-06-18 华为技术有限公司 用于帧内预测的方法和装置
CN110677647B (zh) * 2019-09-27 2024-02-09 腾讯科技(深圳)有限公司 视频解码、编码方法和装置、存储介质与解码器、编码器

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452860B1 (ko) * 2009-08-17 2014-10-23 삼성전자주식회사 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치
KR20120012385A (ko) * 2010-07-31 2012-02-09 오수미 인트라 예측 부호화 장치
US8923395B2 (en) * 2010-10-01 2014-12-30 Qualcomm Incorporated Video coding using intra-prediction
US9008175B2 (en) * 2010-10-01 2015-04-14 Qualcomm Incorporated Intra smoothing filter for video coding
TR201905119T4 (tr) * 2011-04-25 2019-05-21 Lg Electronics Inc İç tahmin yöntemi ve bu yöntemi kullanan kodlayıcı ve kod çözücü.
US9532058B2 (en) * 2011-06-03 2016-12-27 Qualcomm Incorporated Intra prediction mode coding with directional partitions
US9602839B2 (en) * 2011-06-15 2017-03-21 Futurewei Technologies, Inc. Mode dependent intra smoothing filter table mapping methods for non-square prediction units
SI2728866T1 (sl) * 2011-06-28 2019-03-29 Samsung Electronics Co., Ltd. Postopek dekodiranja videa z uporabo aritmetičnega dekodiranja
WO2015057947A1 (en) * 2013-10-17 2015-04-23 Huawei Technologies Co., Ltd. Improved reference pixel selection and filtering for intra coding of depth map
WO2016200984A1 (en) * 2015-06-08 2016-12-15 Vid Scale, Inc. Intra block copy mode for screen content coding
US10171819B2 (en) * 2015-08-03 2019-01-01 Arris Enterprises Llc Intra prediction mode selection in video coding
EP3148190A1 (en) * 2015-09-25 2017-03-29 Thomson Licensing Method and apparatus for intra prediction in video encoding and decoding
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
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
KR102434480B1 (ko) * 2016-02-12 2022-08-19 삼성전자주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
US11032550B2 (en) * 2016-02-25 2021-06-08 Mediatek Inc. Method and apparatus of video coding
EP3451667A4 (en) * 2016-04-29 2020-01-22 Intellectual Discovery Co., Ltd. VIDEO SIGNAL ENCODING / DECODING METHOD AND APPARATUS
US10230961B2 (en) * 2016-06-03 2019-03-12 Mediatek Inc. Method and apparatus for template-based intra prediction in image and video coding
JP7094076B2 (ja) * 2016-08-19 2022-07-01 沖電気工業株式会社 映像符号化装置、プログラム及び方法、並びに、映像復号装置、プログラム及び方法、並びに、映像伝送システム
US10506228B2 (en) * 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
US10805641B2 (en) * 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding

Also Published As

Publication number Publication date
IL309691A (en) 2024-02-01
JP2021506150A (ja) 2021-02-18
IL275034B1 (en) 2024-02-01
JP2024062990A (ja) 2024-05-10
IL275034A (en) 2020-07-30
WO2019113027A1 (en) 2019-06-13
EP3721622A1 (en) 2020-10-14
EP3496401A1 (en) 2019-06-12
US20200374530A1 (en) 2020-11-26
IL275034B2 (en) 2024-06-01
CN111448798A (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
TWI815896B (zh) 寫碼用於視訊寫碼之自適應多重轉換資訊
CN108605126B (zh) 滤波视频数据的经解码块的方法和装置及存储介质
CN110800300B (zh) 用于不可分开转换的存储器减少
KR101814308B1 (ko) 비디오 코딩에서의 계수 스캐닝
US20170099504A1 (en) Method and apparatus for encoding/decoding image
KR20210142642A (ko) 비디오 코딩을 위한 확장된 다중 변환 선택
US20110317757A1 (en) Intra prediction mode signaling for finer spatial prediction directions
KR20200096227A (ko) 블록 형상에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
JP2023040020A (ja) ビデオコーディングにおける係数領域ブロック差分パルスコード変調
KR20240018691A (ko) 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
CN112352429A (zh) 利用分组的旁路剩余级别进行系数编码以用于依赖量化
KR102640142B1 (ko) 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
US20240048760A1 (en) Image decoding method and apparatus relying on intra prediction in image coding system
CN113545053A (zh) 视频译码中的隐式变换选择
EP3824628A1 (en) Transform variations of multiple separable transform selection
KR20210158400A (ko) 영상 코딩에서 변환 커널 세트를 나타내는 정보의 시그널링
KR20210103481A (ko) 비디오 코딩을 위한 트리-기반 변환 유닛 (tu) 파티션
JP2023112077A (ja) 変換カーネルセットに関する情報に対するコーディング
CN114982240A (zh) 用于视频译码的多重变换集信令
KR20220024500A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
KR20210133300A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
KR20220097513A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
JP7418561B2 (ja) 変換に基づく映像コーディング方法及びその装置
RU2812248C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
JP7414977B2 (ja) 変換に基づく映像コーディング方法及びその装置

Legal Events

Date Code Title Description
A201 Request for examination