KR20180069850A - 공간 인트라 예측을 위한 헬퍼 데이터를 이용한 비디오 코딩 - Google Patents
공간 인트라 예측을 위한 헬퍼 데이터를 이용한 비디오 코딩 Download PDFInfo
- Publication number
- KR20180069850A KR20180069850A KR1020187013483A KR20187013483A KR20180069850A KR 20180069850 A KR20180069850 A KR 20180069850A KR 1020187013483 A KR1020187013483 A KR 1020187013483A KR 20187013483 A KR20187013483 A KR 20187013483A KR 20180069850 A KR20180069850 A KR 20180069850A
- Authority
- KR
- South Korea
- Prior art keywords
- prediction
- video stream
- value
- helper
- sample
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
비디오 스트림을 디코딩하기 위해, 인코딩된 비디오 스트림은 예측 모드의 표시 및 하나 이상의 예측 헬퍼 값들의 표시와 함께 수신된다. 이 인코딩된 비디오 스트림을 디코딩하는 동안, 표시된 예측 모드 및 예측 헬퍼 값(들)에 기초하여 적어도 하나의 샘플의 각각에 대해 예측된 값이 계산된다. 각각의 계산된 예측된 값을 이용하여 디코딩된 적어도 하나의 샘플들의 각각을 포함하는 디코딩된 비디오 스트림은 이후 컴퓨터 판독 가능 메모리 및 그래픽 디스플레이 중 적어도 하나에 출력된다. 선택적 계단 함수는 예측 헬퍼 값을 보조하고 예측 유닛의 주어진 행 또는 열에서 비선형 예측 값을 가능하게 하는데 이용될 수 있다. 인코더 측에서, 인코더는 디코더에 저장되거나 전송되는 비디오 스트림을 인코딩하기 위해 사용하는 예측 헬퍼 값을 결정한다.
Description
기술된 발명은 디지털 이미지 및 비디오의 처리에 관한 것으로, 특히 통신 및 저장을 위한 그 디지털 이미지 및 비디오의 인코딩 및 디코딩에 관한 것이다.
본 명세서에 사용되는 약어는 상세한 설명에 따라 아래에 나열된다. 권장 사양 ITU-T H.263 및 H.264 (04/2015)는 비디오 정보를 두 단계로 인코딩한다는 점에서 전형적인 하이브리드 비디오 코덱을 제공한다. 먼저, 특정 픽처 영역("블록"이라고 함)의 픽셀 값은 예를 들어 움직임 보상 수단(motion compensation means) 또는 공간적 수단(spatial means)에 의해 예측된다. 움직임 보상은 일반적으로 코딩되는 블록에 근접하게 대응하는 이전에 코딩된 비디오 프레임들 중 하나에서 영역을 찾아내고 표시하는 것을 포함하며, 공간적 수단은 일반적으로 특정 방식으로 코딩될 블록 주위의 픽셀 값을 사용하는 것을 포함한다. 두 번째로, 예측 오차가 코딩되며, 예측 오차는 예측된 픽셀 블록과 원래 픽셀 블록 사이의 차이이다. 예측 오차를 코딩하는 것은 전형적으로, 예를 들어 이산 코사인 변환(Discret Cosine Transform; DCT) 또는 그 변형과 같은 특정 변환을 사용하여 픽셀 값들의 차이를 변환하고 계수(coefficients)를 양자화하고 양자화된 계수를 엔트로피 코딩함으로써 수행된다. 양자화 프로세스의 충실도를 변화시킴으로써, 인코더는 픽셀 표현의 정확도(화질)와 최종 코딩된 비디오 표현의 크기(파일 크기 또는 전송 비트율) 사이의 균형을 제어할 수 있다.
또 다른 이미지/비디오 코딩 표준은 고효율 비디오 코딩(HEVC)이라고도 하는 ITU-T H.265이다. 이 접근 방식은 지향성 필터링을 사용하여 인트라 프레임 샘플 예측 블록을 구축하고, 선택된 예측 방향을 사용하여 예측될 샘플의 샘플 위치를 참조 행(reference row)에 투사하고, 또한 샘플의 예측된 값을 보간하기 위해 1 차원 선형 필터를 적용한다. 직접 수평 또는 직접 수직 예측 방향의 경우, 블록 경계들 중 하나는 샘플 그라디언트 기반 필터로 추가적으로 필터링된다. HEVC는 또한 직류(DC) 및 평면 예측 모드를 정의한다. DC 예측은 참조 샘플(reference samples)의 DC 구성 요소를 계산하여 블록 내의 샘플에 대한 예측으로 사용하는 반면, 평면 예측은 샘플 표면이 부드러운 블록을 예측하기 위해 2개의 선형 예측의 평균을 계산한다.
위의 검토로부터, 공간 인트라 예측은 전형적으로 블록 주변의 디코딩된 샘플들에 기초하여 샘플 예측 블록을 생성한다는 것이 명백하다. 이러한 접근 방식은 블록의 특정 종류의 구조를 매우 잘 모델링할 수 있지만 동시에 일부 일반적인 종류의 질감을 예측하지 못한다. 예를 들어, 방향성 샘플 예측은 지원되는 예측 방향과 일치하는 모양을 정확하게 모델링할 수 있지만, 참조 샘플에서 더 멀리 떨어지면 예측은 신뢰성이 떨어지는 경향이 있으며 종종 선택된 예측 방향과 정렬되는 일부 예측 오차가 나타나기 시작한다. 이하에서 더욱 상세히 기술된 이들 교시의 실시예는 이러한 단점 또는 종래 기술 및 다른 것들을 해결한다.
이들 교시의 제1 양태에 따르면, 비디오 스트림을 디코딩하는 방법이 제공되며, 상기 방법은, 인코딩된 비디오 스트림과 함께 예측 모드의 표시 및 하나 이상의 예측 헬퍼 값(prediction helper value)의 표시를 수신하는 단계; 인코딩된 비디오 스트림을 디코딩하는 동안, 수신된 예측 모드의 표시 및 수신된 하나 이상의 예측 헬퍼 값에 기초하여 적어도 하나의 샘플의 각각에 대한 예측 값을 계산하는 단계; 출력되는 디코딩된 비디오 스트림이 각각의 계산된 예측된 값을 사용하여 디코딩되는 적어도 하나의 샘플의 각각을 포함하도록, 디코딩된 비디오 스트림을 컴퓨터 판독 가능 메모리 및 그래픽 디스플레이 중 적어도 하나에 유형적으로 출력하는 단계를 포함한다.
이들 교시들의 제2 양태에 따르면, 하나 이상의 프로세서들에 의해 실행될 때, 호스트 디코더 디바이스가 비디오 스트림을 디코딩하는 것에 관한 동작을 수행하도록 하는 컴퓨터 프로그램 명령어를 저장하는 컴퓨터 판독 가능 메모리가 제공된다. 이와 관련하여, 상기 동작은, 인코딩된 비디오 스트림과 함께 예측 모드의 표시 및 하나 이상의 예측 헬퍼 값의 표시를 수신하는 것과; 인코딩된 비디오 스트림을 디코딩하는 동안, 수신된 예측 모드의 표시 및 수신된 하나 이상의 예측 헬퍼 값에 기초하여 적어도 하나의 샘플의 각각에 대한 예측 값을 계산하는 것과; 출력되는 디코딩된 비디오 스트림이 각각의 계산된 예측된 값을 사용하여 디코딩되는 적어도 하나의 샘플의 각각을 포함하도록, 디코딩된 비디오 스트림을 컴퓨터 판독 가능 메모리 및 그래픽 디스플레이 중 적어도 하나에 유형적으로 출력하는 것을 포함한다.
이들 교시들의 제3 양태에 따르면, 비디오 스트림을 디코딩하는 장치가 제공된다. 이 장치는 컴퓨터 프로그램 명령어를 저장하는 적어도 하나의 컴퓨터 판독 가능 메모리 및 적어도 하나의 프로세서를 포함한다. 컴퓨터 프로그램 명령어를 갖는 컴퓨터 판독 가능 메모리는 적어도 하나의 프로세서와 함께 구성되어, 장치가 인코딩된 비디오 스트림과 함께 예측 모드의 표시 및 하나 이상의 예측 헬퍼 값의 표시를 수신하는 것과, 인코딩된 비디오 스트림을 디코딩하는 동안, 수신된 예측 모드의 표시 및 수신된 하나 이상의 예측 헬퍼 값에 기초하여 적어도 하나의 샘플의 각각에 대한 예측 값을 계산하는 것과, 출력되는 디코딩된 비디오 스트림이 각각의 계산된 예측 된 값을 사용하여 디코딩되는 적어도 하나의 샘플을 포함하도록, 디코딩된 비디오 스트림을 컴퓨터 판독 가능 메모리 및 그래픽 디스플레이 중 적어도 하나에 유형적으로 출력하는 것을 포함한 동작을 수행하게 한다.
본 발명의 이러한 양태 및 다른 양태는 아래에서 보다 상세하게 열거된다.
도 1은 비디오 코딩 기술에서 알려진 픽셀 예측 및 예측 오차의 2-단계 프로세스를 사용하는 비디오 인코더의 개략적인 블록도이다.
도 2는 비디오 코딩 기술 분야에서 알려진 바와 같이, 도 1의 프로세스에 의해 인코딩된 비디오를 디코딩하기 위한 일반적인 비디오 디코더의 개략적인 블록도이다.
도 3a는 수직 전용 예측 방향을 사용하는 제어 유닛 내의 참조 샘플에 대응하는 예측 블록의 샘플 위치들에 대해 도 3b 내지 도 3d에서 사용된 규칙을 도시한다.
도 3b는 샘플 값을 예측하기 위한 종래의 접근법을 설명하기 위해 도 3a의 규칙을 사용하는 일 예측 유닛을 갖는 제어 유닛이다.
도 3c는 이러한 교시에 따라 샘플 값을 선형으로 예측하기 위한 일 예를 설명하기 위해 도 3a의 규칙을 사용하는 일 예측 유닛을 갖는 제어 유닛이다.
도 3d는 이러한 교시에 따라 샘플 값들을 비선형으로 예측하기 위한 일 예를 설명하기 위해 도 3a의 규칙을 사용하는 일 예측 유닛을 갖는 제어 유닛이다.
도 4는 이러한 교시의 예시적인 실시예에 따른 프로세스 흐름도이다.
도 5는 이러한 교시의 특정 양태에 따라 실행되는 비디오 스트림을 인코딩 및 디코딩하는데 적합한 특정 장치/디바이스를 도시하는 고 레벨의 개략적인 블록도이다.
도 2는 비디오 코딩 기술 분야에서 알려진 바와 같이, 도 1의 프로세스에 의해 인코딩된 비디오를 디코딩하기 위한 일반적인 비디오 디코더의 개략적인 블록도이다.
도 3a는 수직 전용 예측 방향을 사용하는 제어 유닛 내의 참조 샘플에 대응하는 예측 블록의 샘플 위치들에 대해 도 3b 내지 도 3d에서 사용된 규칙을 도시한다.
도 3b는 샘플 값을 예측하기 위한 종래의 접근법을 설명하기 위해 도 3a의 규칙을 사용하는 일 예측 유닛을 갖는 제어 유닛이다.
도 3c는 이러한 교시에 따라 샘플 값을 선형으로 예측하기 위한 일 예를 설명하기 위해 도 3a의 규칙을 사용하는 일 예측 유닛을 갖는 제어 유닛이다.
도 3d는 이러한 교시에 따라 샘플 값들을 비선형으로 예측하기 위한 일 예를 설명하기 위해 도 3a의 규칙을 사용하는 일 예측 유닛을 갖는 제어 유닛이다.
도 4는 이러한 교시의 예시적인 실시예에 따른 프로세스 흐름도이다.
도 5는 이러한 교시의 특정 양태에 따라 실행되는 비디오 스트림을 인코딩 및 디코딩하는데 적합한 특정 장치/디바이스를 도시하는 고 레벨의 개략적인 블록도이다.
비디오는 개별적인 그림들이나 이미지들의 순차적인 스트림이며, 비디오 코딩은 이미지들의 이산 세트들 간에 종종 이미지의 대부분이 변경되지 않거나 거의 변경되지 않는다는 사실을 이용한다. 이처럼, 하나의 이미지는 동일한 이미지의 다른 섹션을 참조하는 것뿐만 아니라 관심있는 픽처 주위에서 순서상 인접한 다른 이미지를 참조하여 구성될 수 있으며, 종종 비디오의 개별 이미지는 프레임으로 지칭되기도 한다. 따라서, 비디오 코딩/디코딩은 하나 이상의 다른 프레임들로부터 대상 프레임을 예측하는 프레임 간 예측(inter-frame prediction)과, 대상 프레임의 하나 이상의 다른 부분들로부터 대상 프레임의 일부분을 예측하는 프레임 내 예측(intra-frame prediction) 모두를 사용한다. 일반적으로 코덱은 특정 코딩 및 디코딩 절차를 실행하는 소프트웨어를 지칭하지만 코덱이 하드웨어 (회로) 또는 하드웨어와 소프트웨어의 조합으로 구현되지 못하도록 하는 것은 원칙적으로 없다. 이러한 진행을 더 잘 이해하기 위해, 이러한 교시는 종래의 코덱을 능가하게 된다. 도 1은 위의 배경 기술에서 언급되고 이하에서 더 상세히 설명되는 픽셀 예측 및 예측 오차의 2-단계 프로세스를 사용하는 일반적인 비디오 인코더의 개략적인 블록도이다.
도 1은 다음 표현을 사용한다.
In: 인코딩될 이미지
P'n: 이미지 블록의 예측된 표현
Dn: 예측 오차 신호
D'n: 재구성된 예측 오차 신호
I'n: 예비 재구성된 영상
R'n: 최종 재구성된 이미지
T, T-1: 변환 및 역 변환
Q, Q-1: 양자화 및 역 양자화
E: 엔트로피 인코딩
RFM: 참조 프레임 메모리
Pinter: 인터 예측
Pintra: 인트라 예측
MS: 모드 선택
F: 필터링
소스 및 디코딩된 픽처는 각각 아래의 샘플 어레이들의 세트들 중의 하나와 같은, 하나 이상의 샘플 어레이로 구성된다.
● 루마(Y) 만 (모노크롬).
● 루마 및 두 개의 크로마(YCbCr 또는 YCgCo).
● 녹색, 청색 및 적색(GBR, RGB라고도 함).
● 기타 지정되지 않은 모노크롬 또는 삼-자극 컬러 샘플링(예를 들어, YZX, XYZ라고도 함)을 나타내는 어레이.
이하에서, 이들 어레이는 루마(또는 L 또는 Y) 및 크로마로 지칭될 수 있으며, 여기서 2 개의 크로마 어레이는 Cb 및 Cr로 지칭될 수 있으며, 사용중인 실제 컬러 표현 방법과는 무관하다. 사용중인 실제 컬러 표현 방법은 예를 들어 H.264/AVC 및/또는 HEVC의 VUI(Video Usability Information) 구문(syntax)을 사용하여, 예를 들어 코딩된 비트스트림으로 표시될 수 있다. 구성 요소(component)는 3 개의 샘플 어레이(루마 및 두 개의 크로마) 중 하나의 어레이 또는 하나의 어레이로부터의 단일 샘플 또는 모노크롬 포맷의 픽처를 구성하는 어레이 또는 어레이의 단일 샘플로 정의될 수 있다.
H.264/AVC 및 HEVC에서, 픽처는 프레임 또는 필드일 수 있다. 프레임은 루마 샘플들 및 가능하게는 대응하는 크로마 샘플들의 매트릭스(matrix)를 포함한다. 필드는 프레임의 교번하는 샘플 행들의 세트이며, 소스 신호가 인터레이스될 때 인코더 입력으로서 사용될 수 있다. 크로마 샘플 어레이이 존재하지 않을 수 있거나)(따라서 모노크롬 샘플링이 사용중일 수 있음) 또는 크로마 샘플 어레이는 루마 샘플 어레이와 비교할 때 서브샘플링(subsampling)될 수 있다. 크로마 포맷은 다음과 같이 요약될 수 있다.
● 모노크롬 샘플링에서는 명목상 루마 어레이로 간주될 수 있는 하나의 샘플 어레이만이 존재한다.
● 4:2:0 샘플링에서, 두 개의 크로마 어레이의 각각은 루마 어레이의 높이의 절반과 너비의 절반을 갖는다.
● 4:2:2 샘플링에서, 두 개의 크로마 어레이의 각각은 루마 어레이의 동일한 높이 및 절반의 폭을 갖는다.
● 개별 컬러 평면이 사용되지 않을 경우의 4:4:4 샘플링에서, 두 개의 크로마 어레이의 각각은 루마 어레이와 동일한 높이와 너비를 갖는다.
● H.264/AVC 및 HEVC에서, 개별 컬러 평면으로서의 샘플 어레이를 비트스트림으로 코딩할 수 있고 그 비트스트림으로부터 개별적으로 코딩된 컬러 평면을 제각기 디코딩할 수 있다. 개별 컬러 평면이 사용중일 때, 각각의 컬러 평면은 모노크롬 샘플링을 사용하여 픽처로서 (인코더 및/또는 디코더에 의해) 개별적으로 처리된다.
크로마 서브 샘플링이 사용되는 경우(가령, 4:2:0 또는 4:2:2 크로마 샘플링), 루마 샘플에 대한 크로마 샘플의 위치는 인코더 측에서 (가령, 전처리 단계 또는 인코딩의 일부로서) 결정될 수 있다. 루마 샘플 위치에 대한 크로마 샘플 위치는 예를 들어 H.264/AVC 또는 HEVC와 같은 코딩 표준에서 사전정의될 수 있거나, 예를 들어 H.264/AVC 또는 HEVC의 VUI의 일부로서 비트스트림 내에 표시될 수 있다.
분할(partitioning)은 세트(set)의 각 요소가 정확히 서브 세트들(subsets) 중 하나가 되도록 서브 세트들로의 세트의 분할로서 정의될 수 있다.
H.264/AVC에서, 매크로블록(macroblock)은 16x16 블록의 루마 샘플과 상응하는 블록의 크로마 샘플이다. 예를 들어, 4:2:0 샘플링 패턴에서, 매크로블록은 각 크로마 성분마다 하나의 8x8 블록의 크로마 샘플을 포함한다. H.264/AVC에서, 픽처는 하나 이상의 슬라이스 그룹으로 분할되고, 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. H.264/AVC에서, 슬라이스는 특정 슬라이스 그룹 내의 래스터 스캔에서 연속적으로 정렬된 정수 개의 매크로블록으로 구성된다.
HEVC 인코딩 및/또는 디코딩의 동작을 설명할 때 다음 용어가 사용될 수 있다. 코딩 블록은, 코딩 트리 블록을 코딩 블록들로 분할하는 것이 분할이 되도록, N의 일부 값에 대한 샘플들의 N×N 블록으로서 정의될 수 있다. 코딩 트리 블록(CTB)은, 한 컴포넌트를 코딩 트리 블록으로 분할하는 것이 분할이 되도록, N의 일부 값에 대한 샘플의 N×N 블록으로서 정의될 수 있다. 코딩 트리 유닛(CTU)은 루마 샘플들의 코딩 트리 블록, 3 개의 샘플 어레이들을 갖는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록, 또는 샘플을 코딩하는 데 사용되는 세 가지 개별 컬러 평면과 구문 구조를 사용하여 코딩되는 모노크롬 픽처 또는 픽처의 샘플들의 코딩 트리 블록으로서 정의될 수 있다. 코딩 유닛(CU)은 루마 샘플들의 코딩 블록, 3 개의 샘플 어레이들을 갖는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 블록, 또는 샘플을 코딩하는 데 사용되는 세 개의 개별 컬러 평면과 구문 구조를 사용하여 코딩되는 모노크롬 픽처의 샘플들의 코딩 블록으로서 정의될 수 있다.
HEVC와 같은 일부 비디오 코덱에서는 비디오 픽처들이 픽처의 영역(area of the picture)을 커버하는 코딩 유닛(CU)으로 분할된다. CU는 CU 내의 샘플에 대한 예측 프로세스를 정의하는 하나 이상의 예측 유닛(PU) 및 그 CU 내의 샘플에 대한 예측 오차 코딩 프로세스를 정의하는 하나 이상의 변환 유닛(TU)으로 구성된다. 전형적으로, CU는 미리 정의된 세트의 가능한 CU 크기에서 선택 가능한 크기를 갖는 샘플의 정방형 블록으로 구성된다. 최대 허용 크기를 갖는 CU는 통상적으로 LCU (최대 코딩 유닛) 또는 CTU(코딩 트리 유닛)로 지칭되고, 비디오 픽처는 비 중첩 CTU들로 분할된다. CTU는 CTU 및 결과적으로 생성된 CU들을 재귀적으로 분할하여 더 작은 CU들의 조합으로 더 분할될 수 있다. 각각의 결과로 생성된 CU는 전형적으로 적어도 하나의 PU 및 그와 적어도 하나의 TU를 갖는다. 각각의 PU 및 TU는 예측 프로세스 및 예측 오차 코딩 프로세스의 세분성을 각각 증가시키기 위해 더 작은 PU들 및 TU들로 더 분할될 수 있다. 각각의 PU는 어떤 종류의 예측이 그 PU 내의 픽셀들에 적용되어야 하는지를 정의하는 것과 관련된 예측 정보, 예를 들어, 인터 예측된 PU에 대한 움직임 벡터 정보 및 인트라 예측된 PU에 대한 인트라 예측 방향 정보를 갖는다. 유사하게, 각각의 TU는 상기 TU 내의 샘플들에 대한 예측 오차 디코딩 프로세스를 기술하는 정보와 관련되며, 이 정보는 예를 들어 DCT 계수 정보를 포함할 수 있다. 인코딩된 비디오의 저장 및/또는 전송에서, 이 인코딩된 비디오는 전형적으로 예측 오차 코딩이 각 CU에 적용되는지 여부에 관계없이 CU 레벨에서 시그널링된다. CU와 관련된 예측 오차 잔차가 없는 경우, 그것은 동일한 CU에 대한 TU가 없다고 간주될 수 있다. 이미지를 CU로 분할하고 CU를 PU 및 TU로 분할하는 것은 전형적으로 비디오를 전송하는 비트스트림에서 시그널링(또는 인코딩된 비디오가 컴퓨터 판독 가능 메모리에 저장되는 경우 비디오와 함께 저장)되어, 디코더가 이러한 유닛들의 의도된 구조를 재생하게 한다.
도 2는 도 1의 프로세스에 의해 인코딩된 비디오를 디코딩하기 위한 일반적인 비디오 디코더의 개략적인 블록도이며, 도 2는 다음과 같은 표현을 사용한다.
P'n: 이미지 블록의 예측된 표현
D'n: 재구성된 예측 오차 신호
I'n: 예비 재구성된 이미지
R'n : 최종 재구성된 이미지
T-1: 역 변환
Q-1: 역 양자화
E-1: 엔트로피 디코딩
RFM: 참조 프레임 메모리
P: 예측 (인터 또는 인트라)
F: 필터링
디코더는, 인코더와 유사한 예측 수단을 적용하여 인코더에 의해 생성되고 압축된 표현으로 저장된 움직임 또는 공간 정보를 사용하는 픽셀 블록의 예측된 표현을 형성하고, 예측 오차 코딩의 역 동작인 예측 오차 디코딩을 사용하여 공간 픽셀 도메인에서 양자화된 예측 오차 신호를 복원함으로써, 출력 비디오를 재구성한다. 예측 및 예측 오차 코딩 수단을 적용한 후, 디코더는 예측 및 예측 오차 신호(픽셀 값)를 합산하여 출력 비디오 프레임을 형성한다. 도 1의 인코더 뿐만 아니라 도 2의 디코더는 디스플레이를 위해 출력 비디오를 전달하고/하거나 비디오 시퀀스에서 다가올 프레임에 대한 예측 참조로서 출력 비디오를 저장하기 전에 출력 비디오의 품질을 향상시키기 위해 추가적인 필터링 수단을 적용할 수 있다.
코딩된 샘플 값을 나타내기 위해 샘플 값 예측 및 변환 코딩을 이용하는 접근법 대신 또는 그에 부가하여, 컬러 팔레트 기반 코딩이 사용될 수 있다. 팔레트(palette) 기반 코딩은 팔레트가 전형적으로 컬러 및 관련 인덱스의 세트로 정의되는 접근 방식들의 계열을 지칭하며, 코딩 유닛 내의 각 샘플에 대한 값은 그 팔레트에서 인덱스를 나타냄으로써 표현된다. 팔레트 기반 코딩은 예를 들어 텍스트 및/또는 단순 그래픽만을 포함하는 컴퓨터 스크린 컨텐츠를 나타내는 이미지 영역과 같이 상대적으로 적은 수의 컬러를 갖는 코딩 유닛에서 우수한 코딩 효율을 달성할 수 있다. 팔레트 코딩의 코딩 효율을 향상시키기 위해, 상이한 종류의 팔레트 인덱스 예측 접근법이 이용될 수 있거나, 팔레트 인덱스는 더 큰 동종의 이미지 영역을 효율적으로 표현할 수 있도록 런랭스 코딩(run-length coded)될 수 있다. 또한 CU가 CU 내에서 되풀이되지 않는 샘플 값을 포함하는 경우 이스케이프 코딩(escape coding)이 활용될 수 있습니다. 이스케이프 코딩된 샘플은 팔레트 인덱스를 참조하지 않고 전송된다. 대신에 이스케이프 코딩된 샘플마다 값이 개별적으로 표시된다.
전형적인 비디오 코덱에서, 움직임 정보는 각각의 움직임 보상된 이미지 블록과 연관된 움직임 벡터와 함께 표시된다. 이들 움직임 벡터의 각각은 (각각의 인코더 및 디코더 측에서) 코딩될 또는 디코딩될 픽처 내의 이미지 블록의 변위 및 이전에 코딩되거나 디코딩된 픽처들 중 하나의 픽처 내의 예측 소스 블록을 나타낸다. 움직임 벡터들을 효율적으로 나타내기 위해, 움직임 벡터들은 전형적으로 블록 특정 예측된 움직임 벡터들에 대해 차동적으로 코딩된다. 전형적인 비디오 코덱에서, 예측된 움직임 벡터들은 미리 정의된 방식으로, 예를 들어 인접 블록들의 인코딩된 움직임 벡터 또는 디코딩된 움직임 벡터의 중앙값을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 또 다른 방법은 시간 기준 픽처들의 인접 블록들 및/또는 동일 위치 블록들으로부터 후보 예측들의 리스트를 생성하고 선택된 후보를 움직임 벡터 예측자로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것 이외에, 이전에 코딩/디코딩된 픽처의 참조 인덱스가 예측될 수 있다. 참조 인덱스는 전형적으로 시간 기준 픽처 내의 인접 블록들 및/또는 동일 위치 블록들로부터 예측된다. 또한, 전형적인 고효율 비디오 코덱은, 각각의 이용 가능한 참조 픽처 리스트에 대한 대응하는 참조 픽처 인덱스 및 움직임 벡터를 포함하는 모든 움직임 필드 정보가 임의의 변형 또는 수정없이 예측 및 사용되는 병합(종종 병합 모드라고도 함)으로 종종 지칭되는 추가의 움직임 정보 코딩/디코딩 메커니즘을 이용할 수 있다. 유사하게, 움직임 필드 정보를 예측하는 것은 시간 기준 픽처들 내의 인접 블록들 및/또는 동일 위치 블록들의 움직임 필드 정보를 사용하여 수행되고, 사용된 움직임 필드 정보는 이용가능한 인접 블록들/동일 위치 블록들의 움직임 필드 정보가 채워진 움직임 필드 후보들의 리스트에 시그널링된다.
전형적으로 비디오 코덱은 하나의 소스 이미지(유니 예측(uni-prediction)) 또는 두 개의 소스(양방향 예측)로부터 움직임 보상 예측을 지원한다. 유니 예측의 경우에 단일 움직임 벡터가 적용되는 반면, 양방향 예측의 경우 두 개의 움직임 벡터가 시그널링되고 두 개의 소스로부터 움직임 보상된 예측이 평균화되어 최종 샘플 예측이 생성된다. 가중치 예측의 경우 두 예측의 상대 가중치를 조정할 수 있거나 시그널링된 오프셋이 예측 신호에 부가될 수 있다.
인터 픽처 예측을 위한 움직임 보상을 적용하는 것 이외에, 유사한 접근법이 인트라 픽처 예측에 적용될 수 있다. 이 경우, 변위 벡터는 동일한 픽처로부터 샘플들의 블록이 코딩되거나 디코딩될 블록의 예측을 형성하기 위해 복사될 수 있는 장소를 나타낸다. 이러한 종류의 인트라 블록 복사 방법은 텍스트 또는 다른 그래픽과 같은 프레임 내의 반복되는 구조가 있는 경우에 코딩 효율을 실질적으로 향상시킬 수 있다.
전형적인 비디오 코덱에서, 움직임 보상 또는 인트라 예측 이후의 예측 잔차는 먼저 DCT와 같은 변환 커널로 변환된 다음 코딩된다. 그 이유는 종종 잔차와 변환 커널 간에 몇몇 상관 관계가 여전히 존재하여 많은 경우에 이 상관 관계를 줄이고 더 효율적인 코딩을 제공하는 데 도움이 되기 때문이다.
전형적인 비디오 인코더는 최적의 코딩 모드, 예를 들어 원하는 매크로블록 모드 및 이와 관련된 움직임 벡터를 찾기 위해 라그랑지안 비용 함수를 사용한다. 이러한 종류의 비용 함수는 가중 계수 λ를 사용하여 손실 코딩 방법으로 인한 (정확한 또는 추정된) 이미지 왜곡과 이미지 영역의 픽셀 값을 나타내는 데 필요한 정보의 (정확한 또는 추정된) 양을 함께 묶는다.
여기서, C는 최소화될 라그랑지안 비용이며, D는 모드 및 움직임 벡터를 고려한 이미지 왜곡(예를 들어, 평균 제곱 오차)이며, R은 (후보 움직임 벡터를 나타 내기 위한 데이터의 양을 포함하여) 디코더에서 이미지 블록을 재구성하기 위해 필요한 데이터를 나타내는 데 필요한 비트들의 수이다.
확장성 비디오 코딩은 하나의 비트스트림이 상이한 비트 전송률, 해상도 또는 프레임 속도의 컨텐츠의 여러 표현을 포함할 수 있는 코딩 구조를 나타낸다. 이러한 경우에, 수신기는 그 특성에 따라, 예를 들어 디스플레이 디바이스가 이용할 수 있는 것과 최상으로 일치하는 해상도에 따라 원하는 표현을 추출할 수 있다. 대안으로, 서버 또는 네트워크 요소는 예를 들어 수신기의 네트워크 특성 또는 처리 능력에 따라 수신기로 전송될 비트스트림의 일부를 추출할 수 있다. 확장 가능한 비트스트림은 전형적으로 사용 가능한 최저 품질의 비디오를 제공하는 "기본 계층"과 하위 계층과 함께 수신 및 디코딩될 때 비디오 품질을 향상시키는 하나 이상의 강화 계층으로 구성된다. 강화 계층에 대한 코딩 효율을 향상시키기 위해, 그 계층의 코딩된 표현은 전형적으로 하위 계층에 의존한다. 예를 들어, 강화 계층의 움직임 및 모드 정보는 하위 계층으로부터 예측될 수 있다. 유사하게, 하위 계층의 픽셀 데이터는 강화 계층에 대한 예측을 생성하는 데 사용될 수 있다.
품질 확장성(신호-대-잡음비 또는 SNR로도 알려짐) 및/또는 공간 확장성을 위한 확장성 비디오 코덱은 다음과 같이 구현될 수 있다. 기본 계층에 대해, 종래의 비 확장성 비디오 인코더 및 디코더가 사용된다. 기본 계층의 재구성된/디코딩된 픽처들은 강화 계층을 위한 참조 픽처 버퍼에 포함된다. H.264/AVC, HEVC, 및 인터 예측을 위한 참조 픽처 리스트(들)를 사용하는 유사한 코덱에서, 기본 계층 디코딩된 픽처는 강화 계층의 디코딩된 참조 픽처와 유사한 강화 계층 픽처의 코딩/디코딩을 위해 참조 픽처 리스트(들) 내에 삽입될 수 있다. 결과적으로, 인코더는 인터 예측 참조로서 기본 계층 참조 픽처를 선택할 수 있고, 전형적으로 코딩된 비트 스트림 내의 참조 픽처 인덱스를 사용하여 그 사용을 나타낼 수 있다. 디코더는 비트스트림으로부터, 예를 들어 참조 픽처 인덱스로부터, 기본 계층 픽처가 강화 계층에 대한 인터 예측 참조로서 사용된다는 것을 디코딩한다. 디코딩된 기본 계층 픽처가 강화 계층에 대한 예측 참조로서 사용될 때, 그것은 계층 간 참조 픽처로 지칭된다.
품질 확장성에 부가하여 다음의 확장성 모드가 존재한다.
● 공간 확장성: 기본 계층 픽처는 강화 계층 픽처보다 높은 해상도로 코딩된다.
● 비트 깊이 확장성: 기본 계층 픽처는 강화 계층 픽처(예를 들어, 10 또는 12 비트)보다 낮은 비트 깊이(예를 들어, 8 비트)로 코딩된다.
● 크로마 포맷 확장성: 기본 계층 픽처는 강화 계층 픽처(예를 들어, 4:2:0 포맷)보다 높은 크로마의 충실도(예를 들어, 4:4:4 크로마 포맷으로 코딩됨)를 제공한다.
위의 모든 확장성의 경우에, 추가적인 비트 전송률 오버헤드를 최소화하기 위해 강화 계층을 코딩하는 데 기본 계층 정보가 사용될 수 있다.
확장성은 두 가지의 기본 방법으로, 즉 확장성 표현의 하위 계층으로부터 픽셀 값 또는 신택스의 예측을 수행하기 위한 새로운 코딩 모드를 도입하거나, 하위 계층 픽처를 상위 계층의 참조 픽처 버퍼(이는 디코딩된 픽처 버퍼, DPB라고 함)에 배치시킴으로써 수행될 수 있다. 첫 번째 방법은 보다 유연하기 때문에 대부분의 경우 보다 나은 코딩 효율을 제공할 수 있다. 그러나, 두 번째 방법인 참조 프레임 기반 확장성은 단일 계층 코덱을 최소한으로 변경하면서 매우 효율적으로 구현될 수 있으면서 이용가능한 대부분의 코딩 효율성 이득을 달성할 수 있다. 본질적으로, 참조 프레임 기반 확장성 코덱은 외부 수단에 의한 DPB 관리를 돌보는 것만으로 모든 계층에 대해 동일한 하드웨어 또는 소프트웨어 구현을 활용하여 구현될 수 있다.
그러나, 위의 배경기술에서 언급한 바와 같이, 종래의 공간 인트라 예측은 일부 공통 클래스의 텍스처를 매우 잘 예측하지 못하고, 방향성 샘플 예측은 때때로 예측 오차를 선택된 예측 방향과 정렬시킨다. 이는 본 명세서에 설명된 인코딩/디코딩 기술의 장점이 가장 두드러지는 측면이다.
이들 교시의 일 양태에서, 예측된 샘플 값은 예측 방향으로 수정되어 코덱이 종래의 방법보다 복잡한 텍스처를 보상할 수 있게 한다. 이 수정은 우리가 "헬퍼 표시"라고 부르는 것에 의해 가능하며, 이로부터 예를 들어 하나의 샘플 행 또는 열을 참조 샘플 행 또는 열로부터 더 멀리 옮길 때 예측된 샘플 값의 선형 변화를 결정할 수 있다. 도 3c 및 도 3d는 몇몇 예의 예측 헬퍼들을 도시한다.
이들 교시들의 또 다른 양태에서, 예측 오차 정보의 시그널링에서의 리던던시(redundancy)를 피하면서 개선된 예측 성능을 위해 예측 오차 코딩을 최적화하기 위한 수정이 존재한다. 이것은, 예를 들어, 잔차 코딩 단계에서 하나 이상의 변환 계수들의 라인들의 위치를 스위칭함으로써 달성될 수 있다. 아래의 특정 실시예에서, 인트라 예측 헬퍼 정보는 코딩된 예측 오차 신호에 임베딩될 수 있다.
하나의 특정 실시예를 디코더 측의 관점에서 고려한다. 이 경우에, 디코더는 다음의 단계들을 수행함으로써 의도된 예측 신호(또는 예측 샘플 블록)를 재구성한다:
1. 예측 모드의 표시를 수신하는 단계;
2. 하나 이상의 인트라 예측 헬퍼 값들의 표시를 수신하는 단계; 및
3. 상기 예측 모드의 표시 및 상기 하나 이상의 헬퍼 값들의 상기 표시에 기초하여 샘플에 대한 예측된 값을 계산하는 단계.
4. 선택적으로, 디코더는 또한 예측 오차의 표시를 수신할 수 있고 상기 하나 이상의 헬퍼 값들의 상기 표시에 기초하여 예측 오차 코딩 또는 디코딩 수단을 적용할 수 있다.
이 특정 실시예에서, (수직 예측 모드들의 경우에) 예측 블록 내의 각각의 열에 대해 하나의 헬퍼 값 h(x)가 존재할 수 있고, (수평 예측 모드의 경우에) 예측 블록 내의 각각의 행에 대해 하나의 헬퍼 값 h(y)가 존재할 수 있다. 헬퍼 값 h(x) 또는 h(y)는 엔트로피 코딩 수단을 사용하여 비트스트림에서 양자화되고 코딩된다. 헬퍼 값들은 선형적으로 적용되고 헬퍼 값들은 예측 방향으로 참조 샘플 r(x) 및 r(y)에 누적된다.
직접 수직 예측의 경우, 예측된 샘플 값 p(x, y)는 다음과 같이 표현될 수 있다:
보다 일반적인 경우에, 예측된 샘플 값 p(x, y)는 다음과 같이 표현될 수 있다:
여기서, ny은 정수이며, ay는 (예를 들어, H.265/HEVC 표준에 명시된 바와 같이, 선택된 예측 방향에 기초하여 정의된) 샘플 행 y를 예측할 때 참조 샘플의 분수 부분을 나타낸다.
도 3a 내지 도 3d는 각각의 최상부(음영 처리된) 행을 따른 참조 샘플들(r1, r2, r3 및 r4), 및 참조 샘플들로부터 떨어진 나머지 음영 처리된 행들의 예측 샘플들을 포함하는 예측 블록을 도시한다. 설명의 간략화를 위해, 이들 예는 직접 수직인 예측 방향을 가정한다. 즉, 각각의 예측 블록은 동일한 열의 다른 참조 샘플만을 참조한다. 다른 실시예에서, 주어진 예측 블록은 상이한 행의 참조 샘플, 상이한 열의 참조 샘플, 또는 동일하거나 상이한 행 및/또는 열의 다수의 참조 샘플을 참조할 수 있다. 음영 처리된 좌측 열은 레이블이 없는 음영 처리된 박스의 rO와는 다른 참조 샘플이 포함되어 있지만 이 예에서 이 참조 샘플들은 모든 예측 블록에 대한 참조로서 사용되지 않으며, 따라서 레이블이 지정되지 않는다.
일반적으로 도 3a의 굵은 실선의 박스가 CU로 간주될 수 있으며 그 안에 있는 점선 박스는 동일한 CU에 대한 PU로 간주될 수 있다. 도 3b 내지 도 3d에 대해 도 3a에 도시된 바와 같이 동일한 참조 샘플들(r1 내지 r4), CU 및 PU가 가정된다. PU 내의 개개의 박스들/샘플들은 각각 도 3a에 도시된 동일한 지정 명칭 p11, p12, p21 등을 사용하여 도 3b 내지 도 3d에서 고유하게 식별된다.
도 3a에 도시된 지정 명칭 p11, p12, p21 등은 도 3b 내지 도 3d에 대해 상이한 값을 취할 예측 벡터들을 나타내는 것으로 간주될 수 있다. 예측 블록/PU 내의 예측된 샘플은, 예측 벡터에 의해 표시된 참조 샘플을 예측 벡터 값을 갖는 박스 내로 방향성으로 복사함으로써 생성된다. 도 3b는 종래 기술의 수직 방향성 인트라 예측을 나타내지만, 도 3c 및 도 3d는 수직 방향성 인트라 예측을 위한 이들 교시의 2 가지 간단한 실시예를 도시한다. 다른 실시예에서, 예측 벡터는 동일한 이미지 프레임(여전히 인트라 예측)의 다른 CU 또는 다른 프레임(인터 예측)의 CV에서 하나 이상의 참조 샘플을 참조할 수 있다.
우선, 도 3b가 나타내는 종래 기술의 접근법을 고려한다. 참조 샘플 r1이 있는 열에서 각각의 모든 예측 벡터 p11, p21, p31 및 p41은 동일한 수직 열에서 그 바로 위에 있는 박스를 가리키며, 직접 수직 방향성 예측에 대한 이 간단한 예의 제한 조건을 부여해야 한다. 예측 벡터 pl1은 참조 샘플 r1을 가리키고, 따라서 r1은 p11로 지정된 박스에 복사된다. 예측 벡터 p21은 바로 위에 있는 pl1로 지정된 박스를 가리키며, 이제는 디코딩 프로세스에서 참조 샘플 r1의 복사본을 가지며 따라서 참조 샘플 r1이 p21로 지정된 박스 내로 다시 복사된다. 예측 벡터 p31은 그 바로 위에 있는 박스를 가리키며 유사하게 참조 샘플 r1을 p31로 지정된 박스 내로 복사하고, 참조 샘플 r1 아래의 열에 대해서 마찬가지가 적용된다. 다른 열은 각각의 참조 샘플 r2, r3 및 r4에 대해 유사하며, 그에 따라, 도 3b의 예측 블록/PU의 각 행(음영 처리안된 부분)은 최상부 행에서 참조 샘플 r1 내지 r4의 복사본이 된다. 이 예는 수직 전용 예측 방향으로 제한되기 때문에, 종래의 HEVC 코딩/디코딩의 필수 결과는 참조 샘플들이 도 3b가 도시하는 바와 같은 예측 블록의 모든 행에 걸쳐 정확히 동일한 열에서 반복된다는 것이다. 이것은 종래의 비디오 코딩/디코딩의 예측 프로세스에서의 방향성 바이어스(directional bias)를 예시한다.
도 3c는 크기 +2의 선형 예측 헬퍼(일반적으로, 헬퍼 정보(302))가 참조 샘플 r3과 정렬된 열(제 3 예측 열)에 대해 시그널링되는 예를 도시한다. 도 3c에 대한 헬퍼 정보(302)의 다른 열에는 0이 아닌(non-zero) 예측 헬퍼 값이 존재하지 않으며, 따라서, 디코딩 후의 이들 열은 도 3b의 대응하는 열과 동일하다. 그러나, 제 3 예측 열에 대한 0이 아닌 헬퍼 값은 바로 위의 블록의 값에 +2를 더한다. 예측 벡터가 블록 위의 샘플을 참조하고 참조 샘플 r3에서의 관련 값이 87인 하나의 특정 예로서 가정하면, 도 3c에 대한 제 3 예측 열은 다음과 같이 디코딩될 것이다.
도 3c의 제 3 예측 열 내의 각각의 후속하는 행은, 바로 위의 행에 있는 해당 값으로부터 헬퍼 값 +2만큼 분기하는 값을 갖는다. 하나의 특정 예에서, 샘플 값은 컬러 팔레트의 픽셀 컬러 또는 인덱스이지만, 다른 구현 예에서 이러한 샘플 값은 디지털 이미지를 정의하는 다양한 파라미터 중 임의의 것을 나타낼 수 있다. 이제 0이 아닌 헬퍼 값(302)만이 제 3 예측 열에 대한 것이라는 점에서 도 3c와 유사한 예의 도 3d를 고려한다. 그러나, 도 3d의 경우에, 헬퍼 정보(302)는 크기 +8을 가지며, 도 3c와는 보다 명확하게 구분되는 것은 도 3d의 헬퍼 정보(302)가 계단 함수(304)의 [0, 0, 1, 1]에 의해 생성되었다는 것이다. 이 특정 예에서, 계단 함수는 선택된 열의 마지막 두 샘플에 대해서만 존재하는 활성 헬퍼의 결과를 사용하여 헬퍼 신호(302)를 변조하는 데 사용된다. 구체적으로, 계단 함수(304)의 처음 두 개의 0은 도 3d의 예측 블록/PU의 위치들 p13 및 p23에 대한 +8 헬퍼 값을 무효화하며, 따라서 이들 위치에서 참조 샘플 r3은 변경되지 않고 복사된다. 계단 함수(304)의 두 번째 두 값은 도 3d의 예측 블록/PU의 위치들 p33 및 p43에 대한 헬퍼 값 +8의 단위 승수이며, 따라서 이들 위치들의 각각에서 헬퍼 값의 크기 +8이 이 벡터가 참조하는 샘플의 크기에 더해진다. 예측 벡터가 블록 위의 샘플을 참조하고 참조 샘플 r3에서의 관련 값이 87인 도 3c의 가정을 지속하면, 도 3d에 대한 제 3 예측 행은 다음과 같이 디코딩될 것이다.
인코더는 헬퍼 값을 결정하고 그렇게 하면 헬퍼 값을 시그널링하는 데 필요한 증가된 비트 전송률에 대한 샘플 예측 향상의 균형을 맞출 수 있다. 계단 함수는 인코더에 의해 또한 결정될 수 있거나 또는 인코더/디코더 장치의 외부에서 정의될 수 있다(예를 들어, 주어진 코덱은, 인코더가 주어진 PU, 주어진 프레임 또는 전체 비디오 스트림에 대해서만 디코더에 의해 적용될 상이한 계단 함수를 시그널링함으로써 무효화할 수 있는 사전 정의된 계단 함수를 항상 사용한다). 인코더가 계단 함수를 결정할 때마다 계단 함수는 디코더가 이미지 프레임을 적절하게 디코딩할 수 있도록 인코딩된 비트스트림으로 시그널링되어야 한다. 실제로, 계단 함수가 적용되는 방식은 인코더와 디코더가 계단 함수를 적용하는 방법에 대한 공통의 이해를 갖는 한 위의 예와 다를 수 있다. 위의 예에서, 하나의 박스/예측 블록은 그 바로 위에 있는 예측 블록 또는 참조 샘플을 참조했으며 따라서 예측 블록 p43에 대해 도 3d의 계단 함수 [0, 0, 1, 1]은 헬퍼 값 +8을 예측 블록 p33의 값에 추가했다. 그러나, 다른 관례에서, 인코더 및 디코더는 원래의 참조 샘플을 가리키는 예측 벡터를 이해할 수 있으며, 이 경우에 도 3d에 대해 사용된 것과 동일한 계단 함수 및 헬퍼 값은, p에 대해 +8 헬퍼 값이 예측 블록 p33의 값 95에 부가되는 것과 대조적으로 참조 샘플 r3의 값 87에 부가될 것이므로, 열 3에 대해 [87, 87, 95, 95]를 산출할 것이다.이 예에 대해 도 3a, 도 3b 및 도 3d를 비교하고, 수직 전용 예측 방향을 가정하면, 도 3a의 종래의 코딩은 PU의 열 내에서 컬러 그라디언트를 허용하지 않으며, 헬퍼 정보는 주어진 열 내에서 연속적인 컬러 그라디언트를 가능하게 하고 계단 함수와 결합된 헬퍼 정보는 PU의 주어진 열 내에서 불연속 컬러 그라디언트를 가능하게 한다. 수평 전용 예측 방향에서도 마찬가지이다. 수직 및 수평 조합의 경우, 종래의 기법은 주어진 PU 위치에 대해 CU의 하나의 참조 픽셀만을 선택할 수 있으며, 그에 따라 이는 일부 측면에서는 여전히 방향성 바이어스이며, 따라서, (계단 함수를 갖거나 갖지 않고) 헬퍼 정보를 사용하여 코딩하는 이점은 종래의 비디오 코딩에서 방향성 바이어스를 크게 완화시킨다. 이는 설명의 단순화를 위해 위의 예에서 사용된 수직 전용 예측 방향의 인위적인 제한이 없이도 마찬가지이다.
이러한 교시를 구현하기 위한 다양한 구현예가 있다. 예를 들어, 예측 방향을 제공하는 예측 모드(예를 들어, 2 개의 참조 샘플이 하나의 예측 샘플에 대해 사용되는 경우, 수직, 수평, 또는 결합/병합 모드)를 나타내는 다양한 방법이 있다. 도 3c 및 도 3d의 예가 4개 세트의 헬퍼 값(그 중 하나의 헬퍼 값만이 설명의 단순화와 4*4 PU 크기와의 일치를 위해 0이 아닌 것임)을 사용했지만, 다른 실시 예에서, 헬퍼 값들의 수는 이들 예들과 다를 수 있고, 예측 방향(예를 들어, 하나의 샘플에 대한 샘플 벡터가 수평 참조 샘플 및 수직 참조 샘플을 가리키는 경우, 또는 그 샘플 벡터가 두 개의 참조 샘플들 사이의 참조 위치를 가리키고 예측된 샘플 값이 두 개의 참조 샘플들의 값을 사용하여 생성되는 경우, 그 하나의 샘플에 대해 두 개의 헬퍼 값들이 사용될 수 있음)과 예측 블록/PU 크기와 같은 상이한 측면에 따라 달라질 수 있다.
헬퍼 값을 나타낼 수 있는 다양한 방법이 또한 존재한다. 몇몇 비 제한적인 예들로, 이들 헬퍼 값은 절대 값으로서, 또는 위의 도 3c 및 도 3d에서와 같이 예측된 샘플 값에 대한 차분 값으로, 또는 인코더 및 디코더가 사전결정된 알고리즘(예를 들어, 표시된 헬퍼 값에 대한 mod 함수)에서 사용하는 변수와 같은 다른 헬퍼 값으로서 표시될 수 있다. 이들 예 중 임의의 예에서, 절대 값 또는 차분 헬퍼 값은 개별로 코딩될 수 있거나 공동으로(jointly) 코딩될 수 있다. 공동 코딩(joint coding)의 경우, 절대 또는 차분 헬퍼 값은 예를 들어 DCT, DST 또는 Haar (웨이브렛) 변환과 같은 하나 이상의 변환을 사용하여 변환 코딩(transform coded)될 수 있다. 절대 또는 차분 헬퍼 값은 인코더에서 양자화되고 다양한 방법, 예를 들어 변환되거나 변환되지 않은 값의 스칼라 양자화를 사용하여 디코더에서 역 양자화될 수 있다. 양자화 및 역 양자화의 입상도(granularity)는 비디오 스트림을 통해 명시적으로 표시될 수 있거나, 예를 들어 예측 오차 코딩에서 사용되는 양자화 파라미터와 같은 다른 코딩 파라미터로부터 도출될 수 있다. 물론 위의 것들의 조합은 여전히 다른 구현예에서도 사용될 수 있다.
예측 헬퍼 값은 도 3c의 예에 도시된 바와 같이 예측 방향으로 예측된 샘플에 대해 일정하게 증가하는 값을 선형적으로 부가하거나 또는 도 3d의 예에 도시된 바와 같이, 하나의 처리 라인과 다른 처리 라인에서 상이할 수 있는 값을 비선형적으로 부가함으로써 적용될 수 있다. 비선형 동작의 경우, 각 처리 라인의 값은 인코딩된 비디오를 전송하는 비트스트림에서 시그널링되거나 사전 결정될 수 있다.
예측 헬퍼 값은 블록의 마지막 행에서 예측된 샘플 값이 얼마나 수정되어야 하는지를 나타낼 수 있거나, (제 1 행과 같은) 어떤 다른 행에서 예측된 샘플 값이 얼마나 수정되어야 하는지를 나타낼 수 있다. 위의 예들에서, 예측 블록/PU의 제 3 열만이 예측 헬퍼 값에 의해 수정되었지만, 만약 예를 들어 동일한 예측 헬퍼 세트(302)가 수평 예측 방향 모드의 표시로 시그널링되면, +2 또는 +8 값들은 예시된 PU의 제 3 행에 적용될 것이다.
예측 헬퍼 값은 예측 프로세스에서 사용된 일부 또는 모든 참조 샘플에 대해 표시될 수 있거나, 예측 헬퍼 값은 도 3c 및 도 3d의 전술한 예에 대한 경우에서와 같이 예측 블록 내의 일부 픽셀에 대해서만 표시될 수 있다. 예측 헬퍼 값이 예측 블록 내의 일부 픽셀에 대해 표시되는 경우, 그 헬퍼 값은 참조 샘플 행에 투영될 수 있고 참조 샘플에 대해 표시된 바와 같이 사용될 수 있다.
이웃한 픽셀들의 통계치가 또한 예측 헬퍼 값을 코딩하고 및/또는 예측을 향상시키기 위해(가령, 계단 함수를 인코딩하기 위해) 예측 헬퍼 값이 어떻게 적용되어야 하는지를 코딩하는 데 사용될 수 있다. 일 예로서, 이웃하는 픽셀 또는 이웃하는 픽셀과 관련된 예측 헬퍼 값은 예측 헬퍼 값의 컨텍스트 적응형 산술 코딩에서 사용되는 컨텍스트를 정의하는 데 사용될 수 있다. 몇몇 경우들에서, 예측 헬퍼 값들은 또한 이웃하는 픽셀 값들로부터 추론될 수 있거나 또는 (예를 들어, 픽셀 이웃에서의 샘플 값들의 국소 변화를 고려하여) 이웃하는 픽셀 값들을 사용하여 계산될 수 있다.
이러한 교시의 실제 전개에서, 예측 헬퍼 값의 존재시 잔차 코딩 동작은 샘플 블록과 관련된 예측 헬퍼 값이 없을 때 사용되는 잔차 코딩 동작과는 상이할 수 있다. 이와 관련하여, 이러한 차이의 일 예는 변환 계수 코딩이 적응될 수 있다는 것이다. 변환 코딩을 적응시키는 하나의 가능성은 상이한 순서로 계수를 스캔하거나 변환 블록 내의 일부 또는 모든 변환 계수의 위치를 스위칭하는 것이다. 예를 들어, 만약 예측 오차 코딩에서 DST 타입의 변환이 사용되고 예측 헬퍼 값을 갖는 수평 예측이 선택되면, 순방향 변환 출력의 제 1 열의 계수의 크기는 작아지기 쉽고, 이 경우 계수의 열은 계수를 엔트로피 코딩하기 전에 마지막 열로 이동될 수 있다. 변환 코딩을 적응시키는 또 다른 예는 인트라 예측 헬퍼 값이 존재할 때 변환 계수의 산술 코딩에 사용되는 전용 컨텍스트를 지정하는 것이다.
예측 헬퍼 값을 표시하는 하나의 특히 바람직한 방법은 예측 헬퍼 값을 예측 오차 시그널링에 임베딩하는 것이다. 예를 들어, 일부 변환 계수는 특정 기저 함수의 가중치 대신 예측 헬퍼 값을 저장하는 데 사용될 수 있다. 이 경우에, 하나 이상의 실제 변환 계수(예를 들어, 수평 또는 수직 방향으로 DST의 제 1 기저 함수와 관련된 변환 계수)는 0으로 설정될 수 있고, 관련된 방향의 예측 헬퍼의 값은 계수 코딩 프로세스에 전달될 수 있다. 유사하게, 디코더 측에서, 전형적으로 특정 변환 계수와 연관된 디코딩된 값은 인트라 예측 헬퍼에 대한 값으로서 할당될 수있는 반면, 그 관련 변환 계수는 0으로 설정될 수 있다. 대안적인 예에서, 인코딩되거나 또는 디코딩된 계수들의 수는 추가 계수로서 인트라 예측 헬퍼 값을 포함하도록 변환 자체에 의해 요구되는 수로부터 증가될 수 있다.
이러한 교시들의 실시예들은 비디오 및 이미지 프로세싱에서 공간 인트라 예측의 정확도를 향상시킬 수 있다. 일부 구현 대안은 전통적인 인트라 예측 기법과 비교하여 적은 양의 부가적인 프로세싱을 필요로 할 수 있지만, 대부분의 구현예의 경우 이것은 실질적으로 제한적이어서는 안된다. 전용 이미지/비디오 프로세서는 소비자 장치에서 상당히 보편화되어 있으며, 더 많은 능력과 더 많은 데이터 처리(이미지/비디오 처리를 포함함)에도 불구하고 배터리 소모가 덜 중요한 문제가 되는 최신 스마트 폰과 같은 많은 모바일 장치에도 존재한다.
도 4는 디코더의 관점에서 비디오 스트림을 디코딩하기 위한 전술한 양태들 중 일부를 요약한 프로세스 흐름도이다. 다른 실시예에서, 이러한 동일한 교시는 저장되거나 전송될 때 인코딩되는 개별 이미지를 디코딩하는 데 사용될 수 있지만, 개별적인 이미지/픽처보다는 비디오 스트림의 이미지에 대해 이러한 교시를 이용하는 데 더 큰 이점이 있다. 먼저, 블록(402)에서, 도 4의 방법을 수행하는 디코더는 또한 예측 모드의 표시 및 하나 이상의 예측 헬퍼 값의 표시와 함께 인코딩된 비디오 스트림을 수신한다. 블록(404)에서, 인코딩된 비디오 스트림을 디코딩하는 동안, 디코더는 적어도 하나의 샘플 각각에 대한 예측 값을 계산하고, 이 예측된 값은 수신된 예측 모드의 표시 및 수신된 하나 이상의 예측 헬퍼 값에 기초하여 계산된다. 그 다음, 블록(406)에서, 디코더는, 출력되는 디코딩된 비디오 스트림이 각각의 계산된 예측 값을 사용하여 디코딩된 적어도 하나의 샘플을 포함하도록, 컴퓨터 판독 가능 메모리 및 그래픽 디스플레이 중 적어도 하나에 상기 디코딩된 비디오 스트림을 유형적으로 출력한다.
상기 예들에서, 블록(402)에 표시된 예측 모드는 도 3c 및 도 3d의 예에서와 같은 수직 예측 모드, 수평 예측 모드, 단일 샘플이 두 개의 상이한 참조 샘플을 참조하는 경우와 같은 결합된 수직 및 수평 예측 모드, 움직임 정보가 존재하는 매크로블록과 같은 병합 모드, 인코딩된 비디오 스트림이 기본 계층 및 적어도 하나의 강화 계층을 포함하는 경우와 같은 확장성 모드, 및 HEVC 표준에서와 같은 직류 모드 및 평면 모드일 수 있다.
이들 위의 실시예들 중 어느 하나에서, 블록(404)에서와 같이 인코딩된 비디오 스트림을 디코딩하는 것은, 대응하는 0이 아닌 예측 헬퍼 값을 갖는 각각의 샘플에 대해, 블록(404)에서 수행되는 바와 같이, 예측된 헬퍼 값을 상기 샘플에 대한 예측 방향을 따라 위치되는 참조 샘플의 대응하는 값에 적용함으로써 예측된 값을 계산하는 것을 포함할 수 있으며, 여기서 예측 방향은 예측 모드에 의해 주어진다. 도 3c 및 도 3d의 예에서 r3은 그러한 참조 샘플의 위치에 있었다.
또한, 상기 실시예들 중 임의의 실시예의 경우, 블록(402)으로부터의 하나 이상의 예측 헬퍼 값의 표시는, 각각이 오직 하나의 세트만을 갖는 도 3c 및 도 3d와 관련하여 설명된 예측 헬퍼 값들의 세트에서 표시될 수 있으며, 이러한 세트 각각은 인코딩된 비디오 스트림 내의 코딩 유닛(CU)의 하나의 예측 유닛(PU)에 대응한다. 도 3c 및 도 3d에서, 그것이 포함하는 CU 및 PU는 그 비디오 스트림의 하나의 이미지/프레임 내에 포함된 것이다.
도 3d로부터의 예는, 그러한 비디오 스트림의 세트들 중 적어도 하나에 대해, 예측 유닛의 동일한 행 또는 동일한 열 내의 세트의 적어도 2 개의 샘플에 대한 예측된 값이, 적어도 2 개의 샘플을 배치하는 동일한 행 또는 동일한 열에 대해 예측된 값을 계산할 때 공통의 예측 헬퍼 값에 계단 함수를 적용하는 것에 의해 기인하여, 비선형임을 보여 주었다. 이 경우 +8은 공통의 예측 헬퍼 값이었다.
도 3c의 예는, 0이 아닌 예측 헬퍼 값에 대응하는 예측 블록의 주어진 행 또는 열에 대해 예측된 값을 계산할 때 계단 함수가 사용되지 않은 다른 세트의 각각에 대해, 계산된 예측된 값이 대응하는 0이 아닌 예측 헬퍼 값에 의해 예측 방향으로 선형적으로 누적된다는 것을 보여 주었다. 도 3c의 예에서, 선형적인 누적량은 PU의 순차적 행마다 +2였다.
이들 기술은 또한 인터 예측에 사용될 수 있지만, 도 3c 및 도 3d의 예들은 예측 헬퍼 값들이, 샘플 및 참조 샘플이 디코딩된 비디오 스트림의 동일한 이미지 프레임 내에 있는 인트라 예측에만 제한되도록하는 것이었다. 그리고 또한 도 3c 및 도 3d의 예들에 대해, 샘플들 p11, p12, p21 등의 각각은 픽셀이었고 각각의 예측 헬퍼 값은 참조 샘플(도 3c 및 도 3d에서는 r3이었음)을 사용하여 예측된 샘플을 수정하는 오프셋 값을 나타내었다고 언급되었다. 그러나, 예측 헬퍼 값은 또한 대응하는 참조 픽셀을 컬러링하기 위한 컬러 팔레트의 다른 인덱스와 비교하여 각각의 픽셀을 컬러링하기 위한 컬러 팔레트의 제각기의 인덱스를 나타낼 수 있다. 이것은 헬퍼 값 자체가 팔레트 컬러 인덱스가 될 필요가 있음을 의미하지는 않지만, 가능한 구현예는, 표시된 헬퍼 값이 팔레트 인덱스에 대응하는 절대값이고, 예측 헬퍼의 값은 참조 샘플(63)에서 실제로 사용된 팔레트 인덱스에 대한 오프셋으로서 사용될 수 있으며, 이러한 방식에서 오프셋은 참조 샘플 r3의 인덱스를 기준으로 했을 때 각 인덱스를 '표시'했다는 것이다.
주목할 것은, 스트리밍 비디오가 보다 유비쿼터스화되며 전송된 비디오가 때때로 컴퓨터 판독가능 메모리 상에 비디오를 저장할 경우에만 사용될 수도 있는 것보다 큰 압축 레벨(및 그에 따른 더 많은 인코딩)을 필요로 하기 때문에 전술한 설명이 비디오 스트림의 전송을 가정하고 있지만, 비디오가 이러한 교시에 따라 인코딩될 때, 그 비디오는 비디오가 도 4의 블록(402)에서 언급된 표시들과 함께 전송되는 것처럼 그 표시와 함께 저장될 것이라는 것이다. 이는 디코더가 전송 채널(유선 또는 무선)을 통해 인코딩된 비디오를 수신하는지 아니면 사용자가 그 디코더를 포함한 일부 호스트 장치(랩톱 컴퓨터, 카메라/미디어 재생 디바이스; 스마트폰 등)에 연결하는 메모리 스틱으로부터 그것을 판독하는지에 무관하게, 동일한 표시를 사용할 수 있도록 하기 위한 것이다.
이들 교시에 따라 동작하는 인코더는 도 4에 도시된 동일한 단계를 역으로 필수적으로 수행할 수 있다. 즉, 블록(406) 대신에 카메라로부터 라이브로 레코딩된 스트림과 같은 비디오 스트림을 획득할 수 있고, 그 후, 블록 (404) 대신에 그 비디오 스트림을 인코딩하는 동안 하나 이상의 예측 샘플에 대해 예측 방향 및 하나 이상의 예측 헬퍼 값을 사용하여 예측 값을 계산하며, 그 후, 블록 (402) 대신에 예측 방향을 정의하는 예측 모드의 표시 및 예측 헬퍼 값(들)의 하나 이상의 표시와 함께 인코딩된 비디오 스트림을 메모리 또는 전송을 위한 무선부에 출력할 수 있다.
도 5는 인코더 디바이스(10) 및 디코더 디바이스(20)로 지칭되는, 이러한 교시에 따라 비디오 스트림을 인코딩 및 디코딩하기 위한 일반적인 호스트 디바이스들의 일부 구성 요소를 나타내는 개략도이다. 인코딩된 비디오 스트림을 송신 및 수신하기 위해 인코더 디바이스와 디코더 디바이스 사이에 무선 채널(11)이 도시되어 있지만, 그 인코딩된 비디오 스트림은 착탈식 메모리 카드 또는 스틱과 같은 물리적 메모리를 통해 인코더 디바이스(10)로부터 디코더 디바이스(20)로 전송될 수 있거나, 또는 비디오를 녹화하고, 녹화된 비디오를 메모리에 저장할 때 녹화된 비디오를 인코딩하고, 그래픽 디스플레이에서 재생하기 위해 메모리로부터의 인코딩된 비디오에 액세스할 때 인코딩된 비디오를 디코딩하는 그래픽 디스플레이 인터페이스를 가진 카메라와 같은 하나의 디바이스가 존재할 수 있다. 또한, 중간 디바이스가 존재할 수 있으며, 그에 따라 인코더 디바이스(10)는 비디오를 레코딩 및 인코딩하고, 그것을 더 큰 비디오 라이브러리 내의 인코딩된 비디오를 저장 및 인덱싱할 수 있는 서버 또는 다른 중앙 데이터베이스와 같은 상기 중간 디바이스에 제공하게 되며, 이 중간 디바이스는 개인의 랩탑 컴퓨터, 스마트 폰, 차량 탑재 비디오 디스플레이 디바이스 등과 같은 디코더 디바이스(20)에 인코딩된 비디오를 제공하게 된다.
인코더 디바이스(10)는 컴퓨터 또는 데이터 프로세서(DP)(10D)와 같은 제어기, 컴퓨터 명령어의 프로그램(PROG)(10C)을 저장하는 메모리(MEM)(10B)로서 구현되는 컴퓨터 판독가능 메모리 매체를 포함하며, 또한 하나 이상의 안테나를 통해 디코더 디바이스(20) 또는 중간 장치와의 양방향 무선 통신을 위한 무선 주파수(RF) 송신기/수신기 조합(10D)과 같은 적합한 무선 인터페이스를 가질 수 있다. 인코더 프로세싱은 도시된 바와 같은 개별 DP에 의해, 또는 메인 중앙 처리 DP(10A)에 의해, 또는 두 프로세싱 칩들의 어떤 조합 또는 그 두 개를 초과하는 프로세싱 칩들의 어떤 조합에 의해 수행될 수 있다.
인코더 디바이스(10)와 디코더 디바이스(20) 사이의 무선 링크는 도시된 바와 같이 직접적인 링크일 수 있거나, 또는 전술한 바와 같이 인터넷상의 서버와 같은 중간 디바이스를 통하는 것일 수 있거나, 또는 인코딩된 비디오가 착탈식 메모리를 통해 상이한 디바이스들(10, 20) 사이에서 전송되거나 또는 인코더 디바이스(10) 및 디코더 디바이스(20)가 인코딩된 비디오가 그래픽 디스플레이 또는 프로젝터와 같은 그래픽 사용자 인터페이스에서 재생될 경우 디코딩될 때까지 메모리에 저장되는 동일한 디바이스인 경우 인코딩된 비디오를 통신하기 위한 무선 링크가 없을 수도 있는 것으로 언급될 수 있다.
디코더 디바이스(20)는 또한 컴퓨터 또는 데이터 프로세서(DP)(20D)와 같은 제어기, 컴퓨터 명령어의 프로그램(PROG)(20C)을 저장하는 메모리(MEM)(20B)로서 구현되는 컴퓨터 판독가능 메모리 매체를 포함하며, 또한 하나 이상의 안테나를 통해 인코더 디바이스(10)와 통신을 위한 RF 송신기/수신기 조합(20D)과 같은 적합한 무선 인터페이스를 가질 수 있다. 인코더 프로세싱과 유사하게 디코더 프로세싱은 도시된 바와 같은 개별 DP에 의해, 또는 메인 중앙 처리 DP(20A)에 의해, 또는 두 프로세싱 칩들의 어떤 조합 또는 그 두 개를 초과하는 프로세싱 칩들의 어떤 조합에 의해 수행될 수 있다.
PROG들(10C/20C) 중 적어도 하나는 관련 DP(10A/20A)에 의해 실행될 때 디바이스가 상술된 본 발명의 예시적인 실시예들에 따라 동작하게 하는 프로그램 명령들을 포함하는 것으로 가정된다. 즉, 본 발명의 다양한 예시적인 실시예는 인코더 디바이스(10)의 DP(10A)에 의해 또는 디코더 디바이스(20)의 DP(20A)에 의해 실행가능한 컴퓨터 소프트웨어에 의해, 또는 하드웨어에 의해, 또는 소프트웨어 및 하드웨어(및 펌웨어)의 조합에 의해 적어도 부분적으로 수행될 수 있다.
컴퓨터 판독가능 MEM(10B/20B)은 로컬 기술 환경에 적합한 임의의 타입일 수 있고, 반도체 기반 메모리 디바이스, 플래시 메모리, 자기 메모리 디바이스 및 시스템, 광학 메모리 디바이스 및 시스템, 고정 메모리 및 착탈식 메모리, 전자기, 적외선 또는 반도체 시스템과 같이 임의의 하나 이상의 적합한 데이터 저장 기술을 사용하여 구현될 수 있다. 컴퓨터 판독가능 저장 매체/메모리의 보다 많은 특정 예의 개략적인 리스트로서, 하나 이상의 와이어를 갖는 전기적 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM(random access memory), 판독 전용 메모리(ROM), 소거가능 프로그램가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 장치, 자기 저장 디바이스, 또는 이들의 임의의 적합한 조합이 있다.
DP들(10A/20A)은 로컬 기술 환경에 적합한 임의의 타입일 수 있으며, 비 제한적인 예로서, 범용 컴퓨터, 특수 목적 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(DSP) 및 멀티코어 프로세서 아키텍처 기반 프로세서 중 하나 이상을 포함할 수 있다. 무선 인터페이스들(예컨대, 무선무(10D/20D))은 로컬 기술 환경에 적합한 임의의 타입일 수 있고, 개별 송신기, 수신기, 송수신기 또는 그러한 구성 요소들의 조합과 같은 임의의 적합한 통신 기술을 사용하여 구현될 수 있다.
일반적으로, 인코더 디바이스(10) 및/또는 디코더 디바이스(20)의 다양한 실시예는 카메라 및/또는 그래픽 디스플레이를 가진 스마트폰, 머신-투-머신(M2M) 통신 디바이스, 셀룰러 텔레폰, 비디오 레코딩 및/또는 재생 기능을 갖는 PDA, 비디오 레코딩 및/또는 재생 기능을 갖는 휴대용 컴퓨터, 비디오 레코딩 및/또는 재생 기능을 갖는 디지털 카메라와 같은 이미지 캡쳐 디바이스, 비디오 레코딩 및/또는 재생 기능을 갖는 게임 디바이스, 비디오 레코딩 및/또는 재생 기능을 갖는 음악 저장 및 재생 기기. 비디오 레코딩 및/또는 재생 기능을 허용하는 인터넷 기기, 및 이러한 기능들의 조합을 포함하는 휴대용 유닛들 또는 단말기들을 포함할 수 있지만 이에 국한되는 것은 아니다. 이들 중 임의의 것은 손 휴대형 디바이스, 착용형 디바이스, 전체 또는 부분적으로 이식된 디바이스, 차량 탑재형 통신 디바이스 등으로 구현될 수 있다.
전술한 설명은 단지 예시적인 것임을 이해해야 한다. 다양한 대안 및 변경이 당업자에 의해 고안될 수 있다. 예를 들어, 다양한 종속항에 인용된 특징들은 임의의 적합한 조합으로 서로 조합될 수 있다. 또한, 전술한 상이한 실시예들로부터의 특징들은 본 명세서에서 다른 것들과는 별도로 구체적으로 설명되지 않은 실시예로 선택적으로 조합될 수 있다. 따라서, 설명은 첨부된 청구 범위의 범주 내에 속하는 그러한 모든 대안, 변형 및 변경을 포함하는 것으로 의도된다.
명세서 및/또는 도면에서 발견될 수 있는 다음의 약어는 다음과 같이 정의된다. 이 용어는 ITU-T의 H.265/HEVC 표준에 명시된 바와 같이 그 통상의 의미와 일치하게 사용된다.
AC: 교류(DCT의 계수)
AVC: 고급 비디오 코딩(H.264/AVC 표준)
CTU: 코딩 트리 유닛
CU: 코딩 유닛
DCT: 이산 코사인 변환
DPB: 디코딩된 픽처 버퍼
DST: 이산 사인 변환
DC: 직류(DCT의 계수)
HEVC: 고효율 비디오 코딩 (H.265/HEVC 표준)
LCU: 최대 코딩 유닛
ITU-T: 국제 전기 통신 연합 - 통신 표준화 부문
MVC: 멀티 뷰 비디오 코딩
MVP: 움직임 벡터 예측
PU: 예측 유닛
SNR: 신호 대 잡음비
SVC: 확장성 비디오 코딩
TU: 변환 유닛
Claims (20)
- 비디오 스트림을 디코딩하는 방법으로서,
인코딩된 비디오 스트림과 함께, 예측 모드(prediction mode)의 표시 및 하나 이상의 예측 헬퍼 값(prediction helper values)의 표시를 수신하는 단계,
상기 인코딩된 비디오 스트림을 디코딩하는 동안, 상기 수신된 예측 모드의 표시 및 상기 수신된 하나 이상의 예측 헬퍼 값에 기초하여 적어도 하나의 샘플의 각각에 대한 예측 값을 계산하는 단계, 및
출력되는 디코딩된 비디오 스트림이 각각의 계산된 예측된 값을 사용하여 디코딩되는 적어도 하나의 샘플을 포함하도록, 디코딩된 비디오 스트림을 컴퓨터 판독가능 메모리 및 그래픽 디스플레이 중 적어도 하나에 유형적으로 출력하는 단계를 포함하는
비디오 스트림 디코딩 방법.
- 제1항에 있어서,
상기 예측 모드의 표시는, 수직 예측 모드, 수평 예측 모드, 결합된 수직 및 수평 예측 모드, 병합 모드, 상기 인코딩된 비디오 스트림이 기본 계층(base layer) 및 적어도 하나의 강화 계층(enhancement layer)을 포함하는 확장성 모드(scalable mode), 직류 모드(direct current mode) 및 평면 모드(planar mode) 중 적어도 하나를 표시하는
비디오 스트림 디코딩 방법.
- 제1항 또는 제2항에 있어서,
상기 인코딩된 비디오 스트림을 디코딩하는 것은, 대응하는 0이 아닌 예측 헬퍼 값을 갖는 각각의 상기 샘플에 대해, 상기 예측 헬퍼 값을 상기 샘플에 대한 예측 방향을 따라 위치한 참조 샘플의 대응하는 값에 적용함으로써 상기 예측 값을 계산하는 것을 포함하되, 상기 예측 방향은 상기 예측 모드에 의해 주어지는
비디오 스트림 디코딩 방법.
- 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 하나 이상의 예측 헬퍼 값의 표시는 예측 헬퍼 값들의 세트들 내에 표시되며, 각각의 세트는 상기 인코딩된 비디오 스트림 내의 코딩 유닛의 하나의 예측 유닛에 대응하는
비디오 스트림 디코딩 방법.
- 제4항에 있어서,
상기 세트들 중 적어도 하나에 대해, 상기 예측 유닛의 동일한 행 또는 동일한 열에서 상기 세트의 적어도 두 개의 샘플에 대한 상기 예측 값은 상기 적어도 두 개의 샘플을 배치한 동일한 행 또는 동일한 열에 대한 예측 값을 계산할 때 공통 예측 헬퍼 값에 계단 함수를 적용하는 것에 기인하여 비선형적인
비디오 스트림 디코딩 방법.
- 제5항에 있어서,
0이 아닌 예측 헬퍼 값에 대응하는 예측 블록의 주어진 행 또는 열에 대한 예측된 값을 계산할 때 계단 함수가 사용되지 않은 각각의 다른 세트에 대해, 상기 계산된 예측 값은 대응하는 0이 아닌 예측 헬퍼 값만큼 예측 방향으로 선형적으로 누적하는
비디오 스트림 디코딩 방법.
- 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 예측 헬퍼 값은 상기 샘플 및 참조 샘플이 상기 디코딩된 비디오 스트림의 동일한 이미지 프레임 내에 있는 인트라 예측에만 제한되는
비디오 스트림 디코딩 방법.
- 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 적어도 하나의 샘플의 각각은 픽셀이고, 각각의 예측 헬퍼 값은 대응하는 참조 픽셀을 컬러링하기 위한 컬러 팔레트의 다른 인덱스와 비교하여 제각기의 픽셀을 컬러링하기 위한 컬러 팔레트의 각각의 인덱스를 나타내는
비디오 스트림 디코딩 방법.
- 비디오 스트림을 디코딩하는 장치로서,
컴퓨터 프로그램 명령어들을 저장하는 적어도 하나의 컴퓨터 판독가능 메모리, 및 적어도 하나의 프로세서를 포함하고,
상기 컴퓨터 프로그램 명령어들을 가진 상기 컴퓨터 판독가능 메모리는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
인코딩된 비디오 스트림과 함께, 예측 모드의 표시 및 하나 이상의 예측 헬퍼 값의 표시를 수신하게 하고,
상기 인코딩된 비디오 스트림을 디코딩하는 동안, 상기 수신된 예측 모드의 표시 및 상기 수신된 하나 이상의 예측 헬퍼 값에 기초하여 적어도 하나의 샘플의 각각에 대한 예측 값을 계산하게 하고
출력되는 디코딩된 비디오 스트림이 각각의 계산된 예측된 값을 사용하여 디코딩되는 적어도 하나의 샘플을 포함하도록, 디코딩된 비디오 스트림을 컴퓨터 판독가능 메모리 및 그래픽 디스플레이 중 적어도 하나에 출력하게 하도록 구성되는
비디오 스트림 디코딩 장치.
- 제9항에 있어서,
상기 예측 모드의 표시는, 수직 예측 모드, 수평 예측 모드, 결합된 수직 및 수평 예측 모드, 병합 모드, 상기 인코딩된 비디오 스트림이 기본 계층 및 적어도 하나의 강화 계층을 포함하는 확장성 모드, 직류 모드 및 평면 모드 중 적어도 하나를 표시하는
비디오 스트림 디코딩 장치.
- 제9항 또는 제10항에 있어서,
상기 컴퓨터 프로그램 명령어들을 가진 컴퓨터 판독가능 메모리는, 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 대응하는 0이 아닌 예측 헬퍼 값을 갖는 각각의 상기 샘플에 대해, 상기 예측 헬퍼 값을 상기 샘플에 대한 예측 방향을 따라 위치한 참조 샘플의 대응하는 값에 적용함으로써 상기 예측 값을 계산하는 것에 의해 상기 인코딩된 비디오 스트림을 디코딩하게 구성되며, 상기 예측 방향은 상기 예측 모드에 의해 주어지는
비디오 스트림 디코딩 장치.
- 제9항 내지 제11항 중 어느 한 항에 있어서,
상기 하나 이상의 예측 헬퍼 값의 표시는 예측 헬퍼 값들의 세트들 내에 표시되며, 각각의 세트는 상기 인코딩된 비디오 스트림 내의 코딩 유닛의 하나의 예측 유닛에 대응하는
비디오 스트림 디코딩 장치.
- 제12항에 있어서,
상기 세트들 중 적어도 하나에 대해, 상기 예측 유닛의 동일한 행 또는 동일한 열에서 상기 세트의 적어도 두 개의 샘플에 대한 상기 예측 값은 상기 적어도 두 개의 샘플을 배치한 동일한 행 또는 동일한 열에 대한 예측 값을 계산할 때 공통 예측 헬퍼 값에 계단 함수를 적용하는 것에 기인하여 비선형적인
비디오 스트림 디코딩 장치.
- 제13항에 있어서,
0이 아닌 예측 헬퍼 값에 대응하는 예측 블록의 주어진 행 또는 열에 대한 예측된 값을 계산할 때 계단 함수가 사용되지 않은 각각의 다른 세트에 대해, 상기 계산된 예측 값은 대응하는 0이 아닌 예측 헬퍼 값만큼 예측 방향으로 선형적으로 누적하는
비디오 스트림 디코딩 장치.
- 제9항 내지 제14항 중 어느 한 항에 있어서,
상기 예측 헬퍼 값은 상기 샘플 및 참조 샘플이 상기 디코딩된 비디오 스트림의 동일한 이미지 프레임 내에 있는 인트라 예측에만 제한되는
비디오 스트림 디코딩 장치.
- 제9항 내지 제15항 중 어느 한 항에 있어서,
상기 적어도 하나의 샘플의 각각은 픽셀이고, 각각의 예측 헬퍼 값은 대응하는 참조 픽셀을 컬러링하기 위한 컬러 팔레트의 다른 인덱스와 비교하여 제각기의 픽셀을 컬러링하기 위한 컬러 팔레트의 각각의 인덱스를 나타내는
비디오 스트림 디코딩 장치.
- 하나 이상의 프로세서에 의해 실행될 때, 호스트 디코더 디바이스로 하여금 비디오 스트림을 디코딩하는 동작을 수행하게 하는 컴퓨터 프로그램 명령어들을 저장하는 컴퓨터 판독가능 메모리로서,
상기 동작은,
인코딩된 비디오 스트림과 함께, 예측 모드의 표시 및 하나 이상의 예측 헬퍼 값의 표시를 수신하는 것,
상기 인코딩된 비디오 스트림을 디코딩하는 동안, 상기 수신된 예측 모드의 표시 및 상기 수신된 하나 이상의 예측 헬퍼 값에 기초하여 적어도 하나의 샘플의 각각에 대한 예측 값을 계산하는 것, 및
출력되는 디코딩된 비디오 스트림이 각각의 계산된 예측된 값을 사용하여 디코딩되는 적어도 하나의 샘플을 포함하도록, 디코딩된 비디오 스트림을 컴퓨터 판독가능 메모리 및 그래픽 디스플레이 중 적어도 하나에 유형적으로 출력하는 것을 포함하는
컴퓨터 판독가능 메모리.
- 제17항에 있어서,
상기 인코딩된 비디오 스트림을 디코딩하는 것은, 대응하는 0이 아닌 예측 헬퍼 값을 갖는 각각의 상기 샘플에 대해, 상기 예측 헬퍼 값을 상기 샘플에 대한 예측 방향을 따라 위치한 참조 샘플의 대응하는 값에 적용함으로써 상기 예측 값을 계산하는 것을 포함하되, 상기 예측 방향은 상기 예측 모드에 의해 주어지는
컴퓨터 판독가능 메모리.
- 제17항 또는 제18항에 있어서,
상기 하나 이상의 예측 헬퍼 값의 표시는 예측 헬퍼 값들의 세트들 내에 표시되며, 각각의 세트는 상기 인코딩된 비디오 스트림 내의 코딩 유닛의 하나의 예측 유닛에 대응하는
컴퓨터 판독가능 메모리.
- 제19항에 있어서,
상기 세트들 중 적어도 하나에 대해, 상기 예측 유닛의 동일한 행 또는 동일한 열에서 상기 세트의 적어도 두 개의 샘플에 대한 상기 예측 값은 상기 적어도 두 개의 샘플을 배치한 동일한 행 또는 동일한 열에 대한 예측 값을 계산할 때 공통 예측 헬퍼 값에 계단 함수를 적용하는 것에 기인하여 비선형적인
컴퓨터 판독가능 메모리.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/881,493 US9743092B2 (en) | 2015-10-13 | 2015-10-13 | Video coding with helper data for spatial intra-prediction |
US14/881,493 | 2015-10-13 | ||
PCT/FI2016/050715 WO2017064370A1 (en) | 2015-10-13 | 2016-10-13 | Video coding with helper data for spatial intra-prediction |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180069850A true KR20180069850A (ko) | 2018-06-25 |
Family
ID=58500286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187013483A KR20180069850A (ko) | 2015-10-13 | 2016-10-13 | 공간 인트라 예측을 위한 헬퍼 데이터를 이용한 비디오 코딩 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9743092B2 (ko) |
EP (1) | EP3363201A4 (ko) |
JP (1) | JP2018530968A (ko) |
KR (1) | KR20180069850A (ko) |
CN (1) | CN108353186A (ko) |
PH (1) | PH12018500776A1 (ko) |
WO (1) | WO2017064370A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10021418B2 (en) * | 2014-06-19 | 2018-07-10 | Hfi Innovation Inc. | Method and apparatus of candidate generation for single sample mode in video coding |
CN108810531B (zh) * | 2017-05-03 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 视频编码处理方法、装置及电子设备 |
KR102694426B1 (ko) * | 2017-12-08 | 2024-08-13 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 이미지 인코딩 장치, 이미지 디코딩 장치, 이미지 인코딩 방법 및 이미지 디코딩 방법 |
US10904555B2 (en) * | 2018-07-11 | 2021-01-26 | Tencent America LLC | Method and apparatus for video coding |
JP7084808B2 (ja) * | 2018-07-12 | 2022-06-15 | 日本放送協会 | 符号化装置、復号装置、及びプログラム |
WO2020048361A1 (zh) * | 2018-09-05 | 2020-03-12 | 华为技术有限公司 | 视频解码方法及视频解码器 |
CN110881129B (zh) | 2018-09-05 | 2024-01-05 | 华为技术有限公司 | 视频解码方法及视频解码器 |
KR20240007716A (ko) * | 2018-09-13 | 2024-01-16 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 아핀 선형 가중 인트라 예측 |
WO2020098808A1 (en) | 2018-11-17 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Construction of merge with motion vector difference candidates |
KR102662036B1 (ko) * | 2018-12-21 | 2024-05-03 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 모션 벡터 차이 모드에서 병합시 모션 벡터 정밀도 |
CN113709496B (zh) * | 2021-08-24 | 2024-07-09 | 天津津航计算技术研究所 | 基于容错机制的多路视频解码方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266247B2 (en) * | 2002-09-30 | 2007-09-04 | Samsung Electronics Co., Ltd. | Image coding method and apparatus using spatial predictive coding of chrominance and image decoding method and apparatus |
RU2479940C2 (ru) * | 2007-10-15 | 2013-04-20 | Ниппон Телеграф Энд Телефон Корпорейшн | Устройство кодирования и декодирования изображения, способы кодирования и декодирования изображения, их программы и носитель записи, записанный программами |
JP2013034162A (ja) * | 2011-06-03 | 2013-02-14 | Sony Corp | 画像処理装置及び画像処理方法 |
CN106658013B (zh) * | 2011-06-24 | 2019-07-19 | 三菱电机株式会社 | 图像编码装置和方法、图像解码装置和方法以及记录介质 |
MX368350B (es) * | 2011-06-28 | 2019-09-30 | Samsung Electronics Co Ltd | Metodo y aparato para codificar y decodificar imagenes utilizando intra-prediccion. |
AU2012276410A1 (en) * | 2011-06-28 | 2014-02-06 | Samsung Electronics Co., Ltd. | Prediction method and apparatus for chroma component of image using luma component of image |
CN104137541B (zh) * | 2011-10-31 | 2018-07-20 | 南洋理工大学 | 无损图像和视频压缩方法及装置 |
US9813709B2 (en) * | 2012-09-28 | 2017-11-07 | Nippon Telegraph And Telephone Corporation | Intra-prediction encoding method, intra-prediction decoding method, intra-prediction encoding apparatus, intra-prediction decoding apparatus, program therefor and recording medium having program recorded thereon |
US9654777B2 (en) * | 2013-04-05 | 2017-05-16 | Qualcomm Incorporated | Determining palette indices in palette-based video coding |
CN103248895B (zh) * | 2013-05-14 | 2016-06-08 | 芯原微电子(北京)有限公司 | 一种用于hevc帧内编码的快速模式估计方法 |
-
2015
- 2015-10-13 US US14/881,493 patent/US9743092B2/en not_active Expired - Fee Related
-
2016
- 2016-10-13 EP EP16855007.7A patent/EP3363201A4/en not_active Withdrawn
- 2016-10-13 JP JP2018518710A patent/JP2018530968A/ja active Pending
- 2016-10-13 WO PCT/FI2016/050715 patent/WO2017064370A1/en active Application Filing
- 2016-10-13 KR KR1020187013483A patent/KR20180069850A/ko not_active Application Discontinuation
- 2016-10-13 CN CN201680059906.8A patent/CN108353186A/zh active Pending
-
2018
- 2018-04-10 PH PH12018500776A patent/PH12018500776A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP3363201A1 (en) | 2018-08-22 |
CN108353186A (zh) | 2018-07-31 |
PH12018500776A1 (en) | 2018-10-15 |
WO2017064370A1 (en) | 2017-04-20 |
JP2018530968A (ja) | 2018-10-18 |
US20170105003A1 (en) | 2017-04-13 |
US9743092B2 (en) | 2017-08-22 |
EP3363201A4 (en) | 2019-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110463202B (zh) | 一种用于解码视频数据的方法、装置和设备 | |
CN110999291B (zh) | 用于划分视频数据的帧间预测片段中的视频块的系统和方法 | |
US11095922B2 (en) | Geometry transformation-based adaptive loop filtering | |
EP3459245B1 (en) | Confusion of multiple filters in adaptive loop filtering in video coding | |
KR20180069850A (ko) | 공간 인트라 예측을 위한 헬퍼 데이터를 이용한 비디오 코딩 | |
KR20210068537A (ko) | 코딩 블록의 기하학적 분할의 인터 예측을 위한 장치 및 방법 | |
US20130258052A1 (en) | Inter-view residual prediction in 3d video coding | |
KR20220024817A (ko) | 인코더, 디코더 및 해당 방법 | |
CN113615173A (zh) | 对仿射译码块进行光流预测修正的方法及装置 | |
US20240080447A1 (en) | Image/video coding method and device | |
KR20210154860A (ko) | 영상 디코딩 방법 및 그 장치 | |
JP7398003B2 (ja) | 映像デコーディング方法及びその装置 | |
KR20230149297A (ko) | 인트라 예측 모드 도출 기반 인트라 예측 방법 및 장치 | |
KR20220134632A (ko) | 영상 디코딩 방법 및 그 장치 | |
KR20220003118A (ko) | 영상 디코딩 방법 및 그 장치 | |
CN115336274B (zh) | 与残差编码关联的图像解码方法以及用于其的装置 | |
CN115443659B (zh) | 与残差编码相关的图像解码方法以及用于其的装置 | |
CN115349258B (zh) | 图像编码系统中用于残差编码的图像解码方法及其设备 | |
JP7575479B2 (ja) | 映像デコーディング方法及びその装置 | |
KR20240090206A (ko) | 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체 | |
KR20240016222A (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한기록 매체 | |
KR20240155381A (ko) | 영상 디코딩 방법 및 그 장치 | |
CN118646900A (zh) | 编解码方法和装置 | |
CN118202648A (zh) | 基于ciip的预测方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |