KR20150063468A - 심도 맵 코딩 - Google Patents

심도 맵 코딩 Download PDF

Info

Publication number
KR20150063468A
KR20150063468A KR1020157010658A KR20157010658A KR20150063468A KR 20150063468 A KR20150063468 A KR 20150063468A KR 1020157010658 A KR1020157010658 A KR 1020157010658A KR 20157010658 A KR20157010658 A KR 20157010658A KR 20150063468 A KR20150063468 A KR 20150063468A
Authority
KR
South Korea
Prior art keywords
chain
prediction unit
coding
boundary
elements
Prior art date
Application number
KR1020157010658A
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 KR20150063468A publication Critical patent/KR20150063468A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • H04N13/0048
    • 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/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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
    • H04N2213/00Details of stereoscopic systems
    • H04N2213/005Aspects relating to the "3D+depth" image format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

코딩 프로세스 동안, 시스템들, 방법들, 및 장치는 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩할 수도 있다. 일부 예들은, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 발생시키는 것을 포함할 수도 있다. 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있을 수도 있다. 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있을 수도 있다. 이것은 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수 있다. 일부 예들은 체인에 기초하여 예측 유닛의 파티션들을 코딩할 수도 있다.

Description

심도 맵 코딩{DEPTH MAP CODING}
이 개시물은 비디오 코딩에 관한 것이고, 보다 상세하게는, 비디오 데이터를 인코딩 및 디코딩하기 위한 방법들 및 장치에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비젼들, 디지털 다이렉트 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, PDA (personal digital assistant) 들, 랩탑 컴퓨터들이나 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화들, 비디오 원격화상회의 디바이스들 등을 포함하는 광범위한 디바이스들에 포함될 수도 있다. 디지털 비디오 디바이스들은, 좀더 효율적으로 디지털 비디오 정보를 송신 및 수신하기 위해, MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding) 에 의해 정의된 표준들, 및 이러한 표준들의 확장들에서 기술된 것과 같은 비디오 압축 기법들을 구현한다.
비디오 압축 기법들은 공간 예측 및/또는 시간 예측을 수행하여 비디오 시퀀스들에 내재하는 중복을 감소시키거나 제거한다. 블록 기반 비디오 코딩에 있어서, 비디오 프레임 또는 슬라이스가 블록들로 파티셔닝될 수도 있다. 각각의 블록은 더 파티셔닝될 수도 있다. 인트라 코딩된 (intra-coded) (I) 프레임 또는 슬라이스 내의 블록들은 이웃하는 블록들에 대한 공간 예측을 이용하여 인코딩된다. 인터 코딩된 (inter-coded) (P 또는 B) 프레임 또는 슬라이스 내의 블록들은 동일한 프레임이나 슬라이스 내의 이웃하는 블록들에 대한 공간 예측, 또는 다른 참조 프레임들에 대한 시간 예측을 이용할 수도 있다.
일 예에서, 본 개시물은, 비디오 데이터의 예측 유닛 (prediction unit) 을 파티셔닝하는 체인 (chain) 의 엘리먼트들의 포지션들 (positions) 을 나타내는 데이터를 코딩하는 단계로서, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있고, 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트 (penultimate element) 가 체인의 마지막 엘리먼트인 것을 나타내기 위해 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 단계, 및 체인에 기초하여 예측 유닛의 파티션들 (partitions) 을 코딩하는 단계를 포함하는 방법을 기술한다.
다른 예에서, 본 개시물은, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하고; 그리고 체인에 기초하여 예측 유닛의 파티션들을 코딩하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 데이터를 코딩하기 위한 비디오 코더를 포함하는 디바이스를 기술하고, 여기서, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있고, 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타내기 위해 예측 유닛 밖에 있다.
또 다른 예에서, 본 개시물은, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 수단으로서, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있고, 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타내기 위해 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 수단, 및 체인에 기초하여 예측 유닛의 파티션들을 코딩하는 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치를 기술한다.
또 다른 예에서, 본 개시물은 컴퓨터 판독가능 저장 매체를 기술한다. 이 컴퓨터 판독가능 저장 매체는, 실행 시 디바이스의 하나 이상의 프로세서들로 하여금, 다음의 단계들, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 단계로서, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있고, 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타내기 위해 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 단계, 및 체인에 기초하여 예측 유닛의 파티션들을 코딩하는 단계를 수행하게 하는 명령들을 그 위에 저장하고 있다.
본 발명의 하나 이상의 실시형태들의 상세한 내용들은 첨부 도면들 및 이하의 상세한 설명에서 전개된다. 본 발명의 다른 특징들, 목적들, 및 이점들은 상세한 설명 및 도면들로부터, 그리고 청구항들로부터 명백하게 될 것이다.
도 1 은 예시적인 멀티미디어 인코딩 및 디코딩 시스템을 나타내는 블록도이다.
도 2 는 이 개시물에서 기술되는 하나 이상의 예들에 따라, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 기법들을 구현할 수도 있는 비디오 인코더의 일예를 나타내는 블록도이다.
도 3 은 이 개시물에서 기술되는 하나 이상의 예들에 따라, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 기법들을 구현할 수도 있는 비디오 디코더의 일예를 나타내는 블록도이다.
도 4 는 각도 예측의 일예를 나타내는 도이다.
도 5 는 8×8 블록에 대한 웨지렛 (wedgelet) 패턴을 나타내는 도이다.
도 6 은 8×8 블록에 대한 2 개의 불규칙한 구역들을 나타내는 도이다.
도 7 은 체인 코드에 대한 하나의 가능한 방향 인덱스 (500) 를 나타내는 도이다.
도 8 은 파티션 패턴을 포함하는 심도 PU 를 나타내고 예시한다.
도 9 는 파티션 패턴을 포함하는 심도 PU 를 나타내고 예시한다.
도 10 은 이 개시물에서 기술된 하나 이상의 예들에 따른 예시적인 방법을 나타내는 흐름도이다.
도 11 은 체인 코딩에 의해 코딩된 PU 의 디코딩 프로세스를 나타내는 흐름도이다.
도 12 는 체인 코딩에서 마지막 체인 포지션의 도출을 나타내는 흐름도이다.
도 13 은 이 개시물에서 기술된 하나 이상의 예들에 따른 예시적인 방법을 나타내는 다른 흐름도이다.
첨부된 도면들은 예들을 도시한다. 첨부된 도면들에서 참조 부호들로 나타내어진 엘리먼트들은 이하의 설명에서 유사한 참조 부호들로 나타내어진 엘리먼트들에 대응한다. 첨부된 도면들에서, 타원들은 타원들에 의해 분리된 엘리먼트들과 유사한 하나 이상의 엘리먼트들의 존재를 나타낸다. 유사한 엘리먼트들에 대한 참조 부호들에서의 알파벳 접미사들은 특정 개수의 엘리먼트들의 존재를 나타내려는 의도는 아니다. 이 개시물에서, 서수 단어들 (예를 들어, "제 1", "제 2", "제 3" 등) 으로 시작하는 명칭들을 갖는 엘리먼트들은 반드시 엘리먼트들이 특정 순서를 가짐을 의미하는 것은 아니다. 오히려, 이러한 서수 단어들은 단지 동일하거나 유사한 종류의 상이한 엘리먼트들을 지칭하는데 이용될 수도 있다.
비디오 데이터의 화상 (picture) 은 샘플들의 하나 이상의 블록들과 연관된다. 이 개시물에서, "샘플 (sample)" 이라는 용어는 픽셀의 루마 (luma) 또는 크로마 (chroma) 컴포넌트와 같은, 블록의 컴포넌트를 정의하는 값을 지칭할 수도 있다. 화상의 각 샘플 블록은 화상에서의 픽셀들의 상이한 컴포넌트들을 명시할 수 있다.
인코더는 먼저 화상을 "슬라이스들 (slices)" 로 파티셔닝할 수도 있다. 슬라이스는 화상의 독립적으로 디코딩가능한 부분들을 지칭하기 위해 일반적으로 이용되는 용어이다. 인코더는 다음으로 이들 슬라이스들을, "코딩 트리 유닛들" 로도 지칭되는, "트리블록들 (treeblocks)" 로 파티셔닝할 수도 있다. 트리블록은 최대 코딩 유닛 (largest coding unit; LCU) 으로도 지칭될 수도 있다. 인코더는 트리블록들의 각각을 점차적으로 보다 작은 코딩 유닛들의 계층구조로 파티셔닝할 수도 있는데, 코딩 유닛들은 도시되는 경우 계층적 트리 구조로 표현될 수도 있으므로, 그 명칭이 "트리블록들" 이다. 이러한 방식으로 트리블록들을 파티셔닝 (partitioning) 하는 것은 인코더가 상이한 사이즈들의 모션 (motion) 을 캡처하는 것을 가능하게 할 수도 있다. 각각의 분할되지않은 샘플 블록은 상이한 코딩 유닛 (CU) 에 대응한다. 설명의 용이함을 위해, 이 개시물은 CU 의 샘플 블록으로서 CU 에 대응하는 샘플 블록을 지칭할 수도 있다.
인코더는 CU 들의 각각에 대해 하나 이상의 예측 유닛 (PU) 들을 발생시킬 수 있다. 인코더는 CU 의 샘플 블록을 예측 영역들로 파티셔닝함으로써 CU 에 대한 PU 들을 발생시킬 수 있다. 인코더는 그 다음, CU 의 각각의 PU 에 대해 윤곽 (contour) 파티셔닝 동작을 수행할 수도 있다. 예를 들어, 인코더는 PU 가 2 개의 불규칙한 구역들로 파티셔닝될 수 있을 때 윤곽 파티셔닝을 이용할 수도 있을 것이다.
일예에서, 윤곽 파티셔닝을 수행하는 비디오 코더는 체인 코딩을 수반할 수도 있다. 예를 들어, 체인 코딩을 이용하는 인코더 또는 디코더는 시작 에지 (starting edge) 를 나타내는 데이터를 코딩할 수도 있다. 인코더 또는 디코더는 또한 체인 시작 에지를 따라 체인 시작 포지션을 코딩할 수도 있다. 인코더 또는 디코더는 또한 비디오 예측 유닛과 같은 예측 유닛에서의 각 엘리먼트에 대한 체인 코드 워드 및 예측 유닛의 경계 (boundary) 밖의 좌표에 대응하는 추가적인 체인 코드 워드를 코딩할 수도 있다.
일예에서, 비디오 코더는, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩할 수도 있다. 일부 예들은, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 발생시키는 것을 포함할 수도 있다. 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 상기 예측 유닛 내에 있을 수도 있다. 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있을 수도 있다. 이것은 끝에서 두번째 코딩된 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수 있다. 즉, 예측 유닛 밖에 있는 체인의 엘리먼트의 포지션은 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수도 있다. 예를 들어, 비디오 인코더는 체인이 예측 유닛의 에지에서의 특정 엘리먼트에서 종단 (end) 시켜야하는 것을 결정하고, 체인의 최종 엘리먼트를 예측 유닛 밖에 있는 것으로서 코딩할 수도 있다. 마찬가지로, 비디오 디코더는, 예측 유닛 밖에 포지션을 갖는 체인의 엘리먼트를 코딩한 후에, 체인이 종단된 것을 결정할 수도 있다. 일부 예들은 체인에 기초하여 예측 유닛의 파티션들을 코딩할 수도 있다.
본 명세서에서 설명된 일부 예들은 체인에서 엘리먼트들의 수를 시그널링하기보다는 체인에서 엘리먼트들의 수를 도출하는 것을 제공한다. 통상적으로, 체인에서 엘리먼트들의 총 수를 시그널링하는 것은 N×N PU 에 대해 log2 N+1 비트들을 이용한다. 하지만, 이 개시물의 기법들을 이용하면, 엘리먼트들의 수는 비트스트림에서 제거될 수도 있고, 이는 시그널링 오버헤드 (signaling overhead) 를 감소시킬 수도 있다. 하나의 추가적인 엘리먼트가 파싱될 수도 있다. 그 추가적인 엘리먼트는 PU 의 경계 밖의 좌표에 대응할 수도 있다. 예에서, 일반적으로 디코더에서, 디코더가 마지막 엘리먼트가 파싱된 때를 결정할 수도 있도록 각각의 체인 코드의 파싱 동안 및 후에 각각의 현재의 엘리먼트의 좌표들 (x,y) 이 추적될 수도 있다. 체인 코드의 파싱 후에, 엘리먼트의 좌표들이 PU 의 경계 밖에 있고 체인들의 현재의 파싱된 수가 1 보다 클 때, 체인 코드들의 파싱은 종결된다.
일부 예들은, 상부 또는 좌측 경계 중 어느 일방과 오직 교차할 수도 있을 파티션 패턴에 대해 제공한다. 다른 예들은 상부 (top) 경계, 하부 (bottom) 경계, 우측 경계, 또는 좌측 경계와 교차할 수도 있을 파티션 패턴들에 대해 제공한다. 2 비트가, 체인이 예측 유닛의 상부 (예를 들어, 00), 좌측 (예를 들어, 01), 하부 (예를 들어, 10) 또는 우측 (예를 들어, 11) 경계들로부터 시작하는지 여부를 시그널링하기 위해 이용될 수도 있다. 또 다른 예들은 이들의 몇몇 서브셋트에 교차하는 파티션에 대해 제공할 수도 있을 것이다. 일부 예들에서, 체인이 하부로부터 시작할 때, 시작 포지션은 체인들이 상부로부터 시작하는 것과 동일한 방식으로 초기화될 수도 있고, 디코딩된 파티션 패턴은 위 및 아래로 뒤집어진다. 체인들이 우측으로부터 시작할 때, 시작 포지션은 체인들이 좌측으로부터 시작하는 것과 동일한 방식으로 초기화될 수도 있고, 디코딩된 파티션 패턴은 우 및 좌로 뒤집어진다.
대안적으로, 좌측으로부터 시작하는 것을 나타내기 위해 1 비트가 이용될 수도 있을 것이고, 상부 또는 하부 중 어느 일방으로부터 시작하는 것을 나타내기 위해 2-비트가 이용될 수도 있다. 예를 들어, 0 은 좌측 경계 시작 포지션을 나타낼 수도 있고, 10 은 상부 경계 시작 포지션을 나타낼 수도 있으며, 11 은 하부 경계 시작 포지션을 나타낼 수도 있다. 일부 경우들에서, 하부로부터 시작할 때, 체인들은 PU 의 우측 경계에서 종단될 수도 있다. 예를 들어, 이러한 경우에, 비디오 코더는 체인이 하부 경계로부터 시작하고 체인이 PU 의 우측 경계에서 종단되는지를 결정하도록 구성될 수도 있다. 다른 예들에서, 비디오 코더는 체인이 상부 경계로부터 시작하고 체인이 PU 의 우측 경계에서 종단되는지를 결정하도록 구성될 수도 있다. 하부로부터 시작하여 어느쪽 경계에서 종단되거나 상부 경계로부터 시작하여 어느쪽 경계에서 종단되는 것과 같이 경계 시작 및 종단 (ending) 로케이션들 (locations) 의 다른 조합들 또한 가능하다.
도 1 은 예시적인 멀티미디어 인코딩 및 디코딩 시스템 (10) 을 나타내는 블록도이다. 멀티미디어 인코딩 및 디코딩 시스템 (10) 은 비디오 데이터를 캡처하며, 캡처된 비디오 데이터를 인코딩하며, 인코딩된 비디오 데이터를 송신하며, 인코딩된 비디오 데이터를 디코딩하고, 그 다음에 디코딩된 비디오 데이터를 재생한다.
멀티미디어 인코딩 및 디코딩 시스템 (10) 은 소스 유닛 (12), 인코딩 유닛 (14), 디코딩 유닛 (16), 및 프리젠테이션 유닛 (18) 을 포함한다. 소스 유닛 (12) 은 비디오 데이터를 생성한다. 인코딩 유닛 (14) 은 비디오 데이터를 인코딩한다. 디코딩 유닛 (16) 은 인코딩된 비디오 데이터를 디코딩한다. 프리젠테이션 유닛 (18) 디코딩된 비디오 데이터를 제시한다.
하나 이상의 컴퓨팅 디바이스들이 소스 유닛 (12), 인코딩 유닛 (14), 디코딩 유닛 (16), 및 프리젠테이션 유닛 (18) 을 구현한다. 이 개시물에서, 용어 컴퓨팅 디바이스는 정보를 프로세싱하는 물리적 디바이스들을 망라한다. 예시적인 유형의 컴퓨팅 디바이스들은 퍼스널 컴퓨터들, 랩탑 컴퓨터들, 이동 전화들, 스마트폰들, 태블릿 컴퓨터들, 차량용 컴퓨터들, 텔레비젼 셋톱 박스들, 화상 회의 시스템들, 비디오 생산 장비, 비디오 카메라들, 비디오 게임 콘솔들, 또는 정보를 프로세싱하는 다른 유형의 디바이스들을 포함한다.
일부 예들에서, 단일 컴퓨팅 디바이스가 소스 유닛 (12), 인코딩 유닛 (14), 디코딩 유닛 (16), 및 프리젠테이션 유닛 (18) 중의 2 개 이상을 구현할 수도 있다. 예를 들어, 단일 컴퓨팅 디바이스는 소스 유닛 (12) 및 인코딩 유닛 (14) 을 구현할 수도 있다. 이러한 예에서, 다른 컴퓨팅 디바이스가 디코딩 유닛 (16) 및 프리젠테이션 유닛 (18) 을 구현할 수도 있다. 다른 예들에서, 상이한 컴퓨팅 디바이스들이 소스 유닛 (12), 인코딩 유닛 (14), 디코딩 유닛 (16), 및 프리젠테이션 유닛 (18) 을 구현한다.
도 1 의 예에서, 컴퓨팅 디바이스 (13) 가 인코딩 유닛 (14) 을 구현하고, 컴퓨팅 디바이스 (17) 가 디코딩 유닛 (16) 을 구현한다. 일부 예들에서, 컴퓨팅 디바이스 (13) 가 인코딩 유닛 (14) 이외의 기능성을 제공할 수도 있다. 또한, 일부 예들에서, 컴퓨팅 디바이스 (17) 가 디코딩 유닛 (16) 이외의 기능성을 제공할 수도 있다.
일부 예들에서, 인코딩 디바이스 (14) 는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 인코딩할 수도 있다. 이들 포지션 엘리먼트들은 비디오 데이터의 예측 유닛을 파티셔닝할 수도 있는 체인을 구성할 수도 있다. 다르게 말하면, 엘리먼트들은 총체적으로 예측 유닛을 파티셔닝하는 체인을 형성한다. 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있을 수도 있다. 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있어 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낸다. 인코딩 유닛 (14) 은 체인에 기초하여 예측 유닛의 파티션들을 인코딩할 수도 있다. 특히, 인트라-예측 코딩에 대해, 인코딩 유닛 (14) 은 파티셔닝된 예측 유닛의 제 1 및 제 2 파티션들에 대해 상이한 인트라-예측 코딩 모드들을 결정할 수도 있다. 또한, 인코딩 유닛 (14) 은 파티션들의 각각에 대해 인트라-예측 모드들의 별개의 표시들 (indications) 을 제공하고, 각기의 인트라-예측 모드를 이용하여 각 파티션을 예측하며, 파티션 맵을 이용하여 2 개의 파티션들을 결합할 수도 있다. 예를 들어, "0" 에 대응하는 모든 값들은 제 1 파티션 블록으로부터의 값들과 중첩될 수도 있다. "1" 의 값을 갖는 모든 값들은 제 2 파태션 블록으로부터의 값들과 중첩될 수도 있다. 인코딩 유닛 (14) 은 이 결합된 블록을 이용하여 차이를 계산하여 잔차 (residual) 를 계산할 수도 있다. 블록은 그 다음 변환 및 양자화 및 CABAC 코딩될 수도 있다.
유사하게, 디코딩 유닛 (16) 은 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 디코딩할 수도 있다. 다시, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있을 수도 있고, 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있어 마지막 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수도 있다. 따라서, 디코딩 유닛 (16) 은 체인에 기초하여 예측 유닛의 파티션들을 디코딩할 수도 있다. 특히, 인트라-예측 코딩에 대해, 디코딩 유닛 (16) 은 무슨 상이한 인트라-예측 코딩 모드들이 파티셔닝된 예측 유닛의 제 1 및 제 2 파티션들에 대한 것인지를 나타내는 값들을 디코딩할 수도 있다. 또한, 디코딩 유닛 (16) 은 파티션들의 각각에 대해 인트라-예측 모드들의 별개의 표시들을 제공하고, 각기의 인트라-예측 모드를 이용하여 각 파티션을 예측하며, 파티션 맵을 이용하여 2 개의 파티션들을 결합할 수도 있다. 보다 구체적으로, 디코딩 유닛 (16) 은 양자화된 변환 계수들을 CABAC 디코딩하고, 잔차 블록을 역-변환 및 역-양자화하며, PU 에 잔치를 다시 역으로 부가할 수도 있다. 또한, 디코딩 유닛 (16) 은 PU 를 파티셔닝하기 위한 인트라-모드들을 결정하고 체인 코딩 모드를 이용하여 PU 를 파티션하고 체인 엘리먼트들을 나타내는 데이터를 디코딩할 수도 있다. 이러한 방식으로 원래의 블록이 재생될 수도 있다.
위에서 간단히 언급된 바와 같이, 소스 유닛 (12) 은 일련의 화상들을 표현하는 비디오 데이터를 생성한다. 화상은 또한 통상적으로 "픽처 (picture)" 라고 지칭된다. 비디오 데이터에서의 일련의 화상들이 빠른 연속 (예를 들어, 초당 24 또는 25 화상들) 으로 사용자에게 제시되는 경우, 사용자는 화상들 내의 오브젝트들이 움직이는 것으로 인지할 수도 있다.
다양한 예들에서, 소스 유닛 (12) 은 다양한 방식들로 비디오 데이터를 생성한다. 예를 들어, 소스 유닛 (12) 은 비디오 카메라를 포함할 수도 있다. 이러한 예에서, 비디오 카메라는 가시적인 환경으로부터 이미지들을 캡처한다. 다른 예에서, 소스 유닛 (12) 은 의료용, 산업용, 또는 과학용 이미징을 위한 하나 이상의 센서들을 포함할 수도 있다. 이러한 센서들은 x-레이 검출기들, 자기 공명 이미징 센서들, 입자 검출기들 등을 포함할 수도 있다. 또 다른 예에서, 소스 유닛 (12) 은 애니메이션 시스템을 포함할 수도 있다. 이러한 예에서, 한 명 이상의 사용자들은 그들의 상상들로부터 비디오 데이터의 콘텐츠를 그리거나, 초안을 작성하거나, 프로그래밍하거나, 그 외에 설계하기 위해 애니메이션 시스템을 이용한다.
인코딩 유닛 (14) 은 소스 유닛 (12) 에 의해 생성된 비디오 데이터를 수신한다. 인코딩 유닛 (14) 은 보다 적은 데이터가 비디오 데이터 내의 일련의 화상들을 표현하도록 비디오 데이터를 인코딩한다. 일부 사례들에서, 이러한 방식으로 비디오 데이터를 인코딩하는 것은 비디오 데이터가 DVD 또는 CD-ROM 과 같은 주어진 유형의 컴퓨터 판독가능 매체들에 저장될 수도 있는 것을 보장하기 위해 필요할 수도 있다. 또한, 일부 사례들에서, 이러한 방식으로 비디오 데이터를 인코딩하는 것은 비디오 데이터가 인터넷과 같은 통신 네트워크를 통해 효율적으로 송신될 수도 있는 것을 보장하기 위해 필요할 수도 있다.
인코딩 유닛 (14) 은 종종 비디오 화상들의 시퀀스 또는 일련의 비디오 화상들로 표현되는 비디오 데이터를 인코딩할 수도 있다. 인코딩 유닛 (14) 은 이들 화상들을 (흔히 "슬라이스들" 이라고 지칭되는) 독립적으로 디코딩가능한 부분들로 쪼갤 수도 있으며, 그 부분들은, 다시, 인코딩 유닛 (14) 이 트리블록들로 쪼갤 수도 있다. 이들 트리 블록들은 재귀적인 계층적 쿼드트리 (quadtree) 분할의 형태로 진행할 수도 있다. 인코딩 유닛 (14) 은 이러한 분할을 수행하여 트리블록인 루트 노드를 갖는 계층적 트리형 데이터 구조를 생성할 수도 있다. 트리블록 내의 각각의 분할되지 않은 샘플 블록은 상이한 CU 에 대응한다. 분할되지 않은 샘플 블록의 CU 는 분할되지 않은 샘플 블록에 관한, 모션 정보 및 변환 정보를 포함하는, 정보를 포함할 수도 있다.
다양한 예들이 2D 비디오 코딩에 적용될 수도 있지만, 일반적으로 본 명세서에서 설명된 예시적인 시스템들 및 방법들은 3D 비디오 코딩에 관련된다. 다양한 코딩 기법들은 심도-코딩 (depth-coding) 기법들을 포함하는, 어드밴스드 코덱들 (advanced codecs) 에 기초할 수도 있다. 일부 예시적인 제안된 심도 코딩 기법들은 심도 맵 인트라 코딩에 관련된다.
일부 예시적인 비디오 코딩 표준들은, ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼 그리고 SVC (Scalable Video Coding) 및 MVC (Multiview Video Coding) 확장들을 포함한 ITU-T H.264 (또한 ISO/IEC MPEG-4 AVC 로 알려짐) 를 포함한다. 최근의 MVC 의 공동 초안이 "Advanced video coding for generic audiovisual services," ITU-T Recommendation H.264, Mar 2010에 기술되어 있고, 참조에 의해 여기에 통합된다.
또한, ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (MPEG) 의 JCT-VC (Joint Collaboration Team on Video Coding) 에 의해 개발되고 있는, 고 효율 비디오 코딩 (HEVC) 으로 일반적으로 지칭되는, 비디오 코딩 표준이 있다. HEVC 의 최근 초안은 http://phenix.it-sudparis.eu/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip 에서 이용가능하다.
HEVC 는 64×64 까지의 픽셀들의 블록들을 이용할 수도 있다. 이러한 배열은 화상을 가변 사이즈의 구조들로 더 잘 하위 파티션할 수도 있다. 예를 들어 HEVC 는 초기에 화상을 코딩 트리 유닛 (CTU) 들로 나누고, 이는 다시 코딩 트리 블록 (CTB) 들로 각각의 루마/크로마 컴포넌트에 대해 나누어질 수도 있다. CTB 는 예를 들어 64×64, 32×32, 또는 16×16 일 수 있다. 더 큰 블록 사이즈는 보통 코딩 효율을 증가시킬 수도 있다. CTB 들은 그 다음 코딩 유닛 (CU) 들로 나누어진다.
CTB 내의 CU 들의 배열은 하위분할이 4 개의 더 작은 구역들을 초래하기 때문에 쿼드트리로서 지칭될 수도 있다. CU 들은 그 다음, 64×64 에서 4×4 까지의 사이즈에서 변화할 수 있는, 인트라-화상 또는 인터-화상 예측 유형 중 어느 일방의 예측 유닛 (PU) 들로 분할될 수도 있다. 예측 잔차는 그 다음, 공간 블록 변환 및 양자화에 대한 계수들을 포함하는 변환 유닛 (TU) 들을 이용하여 코딩될 수도 있다. TU 는 32×32, 16×16, 8×8, 또는 4×4 일 수 있다. 일부 예들에서, HEVC 는 각각의 PU 에 대해 루마 컴포넌트를 이용할 수도 있다.
HEVC 는 또한 각도 예측 (angular prediction) 을 활용한 인트라-예측 코딩 방법을 이용할 수도 있다. 각도 예측은 방향 예측의 한 예시적인 방법이다. 각도 모드에서, 시스템은 각도를 나타내는 일련의 가능한 모드들 중 하나를 제공함으로써 예측 방향을 제공할 수도 있다. 이들 각도들은, 수직 예측의 경우에 블록의 하부 로우 (row) 와 블록 위의 참조 로우의 변위, 또는 수평 예측의 경우에 블록의 최우측 칼럼 (column) 과 블록으로부터 좌측의 참조 칼럼의 변위를 나타낼 수도 있다. 변위는 1 픽셀 정확도로 시그널링될 수도 있다. 예측된 픽셀의 투영이 참조 샘플들 사이에 속할 때, 픽셀에 대한 예측된 값은 참조 샘플들로부터 선형적으로 보간될 수도 있다.
도 2 는 이 개시물에서 기술되는 하나 이상의 예들에 따라, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 기법들을 구현할 수도 있는 비디오 인코더 (20) 의 일예를 나타내는 블록도이다. 일예에서, 도 1 의 비디오 인코딩 유닛 (14) 은 비디오 인코더 (20) 일 수도 있다. 비디오 인코더 (20) 는 비디오 슬라이스들 내 비디오 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 주어진 비디오 프레임 또는 화상 내 비디오에서 공간 리던던시 (redundancy) 를 감소시키거나 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접 프레임들 또는 화상들 내 비디오에서 시간 리던던시를 감소시키거나 또는 제거하기 위해 시간 예측에 의존한다. 인트라-모드 (I 모드) 는 여러 공간 기반의 압축 모드들 중 임의의 것을 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향-예측 (B 모드) 과 같은, 인터-모드들은 여러 시간-기반의 압축 모드들 중 임의의 것을 지칭할 수도 있다.
도 2 에 나타낸 바와 같이, 비디오 인코더 (20) 는 인코딩될 비디오 화상 내 현재 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (20) 는 모드 선택 유닛 (40), 참조 프레임 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 코딩 유닛 (56) 을 포함한다. 모드 선택 유닛 (40) 은, 다시, 모션 보상 유닛 (44), 모션 추정 유닛 (42), 인트라-예측 유닛 (46), 및 파티션 유닛 (48) 을 포함한다. 비디오 블록 재구성 (reconstruction) 을 위해, 비디오 인코더 (20) 는 또한 역양자화 유닛 (58), 역변환 유닛 (60), 및 합산기 (62) 를 포함한다. 디블록킹 (deblocking) 필터 (도 2 에 미도시) 가 또한 블록 경계들을 필터링하여 재구성된 비디오로부터 블록키니스 아티팩트들 (blockiness artifacts) 을 제거하기 위해 포함될 수도 있다. 원할 경우, 디블록킹 필터는 통상적으로 합산기 (62) 의 출력을 필터링할 것이다. (인 루프 또는 포스트 루프에서) 추가적인 필터들이 또한 디블록킹 필터에 추가하여 사용될 수도 있다. 이러한 필터들은 간결성을 위해 도시되지 않지만, 그러나 원할 경우, 합산기 (50) 의 출력을 (인-루프 필터로서) 필터링할 수도 있다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩될 비디오 화상 또는 슬라이스를 수신한다. 화상 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간 압축을 제공하기 위해, 하나 이상의 참조 화상들에서 하나 이상의 블록들에 대한, 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라-예측 유닛 (46) 은 대안적으로, 공간 압축을 제공하기 위해, 코딩될 블록과 동일한 화상 또는 슬라이스에서 하나 이상의 이웃하는 (neighboring) 블록들에 대한 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 비디오 인코더 (20) 는 예컨대, 비디오 데이터의 각각의 블록에 대해 적절한 코딩 모드를 선택하기 위해, 다수의 코딩 패스들 (passes) 을 수행할 수도 있다.
또한, 파티션 유닛 (48) 은 이전 코딩 패스들에서의 이전 파티셔닝 방식들의 평가에 기초하여, 비디오 데이터의 블록들을 서브-블록들로 파티셔닝할 수도 있다. 예를 들어, 파티션 유닛 (48) 은 레이트-왜곡 분석 (예컨대, 레이트-왜곡 최적화) 에 기초하여, 처음에 화상 또는 슬라이스를 LCU 들로 파티셔닝하고, LCU 들의 각각을 서브-CU 들로 파티셔닝할 수도 있다. 모드 선택 유닛 (40) 은 서브-CU 들로의 LCU 의 파티셔닝을 나타내는 쿼드트리 데이터 구조를 추가로 생성할 수도 있다. 쿼드트리의 리프-노드 CU 들은 하나 이상의 PU 들 및 하나 이상의 TU 들을 포함할 수도 있다.
모드 선택 유닛 (40) 은 예를 들어 에러 결과들에 기초하여 코딩 모드들, 인트라 또는 인터 중 하나를 선택할 수도 있으며, 그리고, 결과적인 인트라- 또는 인터-코딩된 블록을 합산기 (50) 에 제공하여 잔차 블록 데이터를 생성하고, 그리고, 합산기 (62) 에 제공하여 참조 프레임으로서의 사용을 위해 인코딩된 블록을 재구성한다. 모드 선택 유닛 (40) 은 또한 모션 벡터들, 인트라-모드 표시자들, 파티션 정보, 및 다른 이러한 신택스 정보와 같은 신택스 엘리먼트들을, 엔트로피 인코딩 유닛 (56) 에 제공한다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위해 별개로 도시된다. 모션 추정 유닛 (42) 에 의해 수행되는 모션 추정은 모션 벡터들을 생성하는 프로세스이며, 이 프로세스는 비디오 블록들에 대한 모션을 추정한다. 모션 벡터는, 예를 들어, 현재 화상 (또는, 다른 코딩된 유닛) 내 코딩중인 현재 블록에 대한 참조 화상 (또는, 다른 코딩된 유닛) 내 예측 블록에 상대적인, 현재 비디오 프레임 또는 화상 내 비디오 블록의 PU 의 변위를 나타낼 수도 있다. 예측 블록은 픽셀 차이의 관점에서 코딩될 블록에 가깝게 매칭하는 것으로 발견되는 블록이며, SAD (sum of absolute difference), SSD (sum of square difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 참조 프레임 메모리 (64) 에 저장된 참조 화상들의 서브-정수 픽셀 포지션들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 화상의 1/4 픽셀 포지션들, 1/8 픽셀 포지션들, 또는 다른 분수 픽셀 포지션들의 값들을 보간할 수도 있다. 따라서, 모션 추정 유닛 (42) 은 풀 (full) 픽셀 위치들 및 분수 (fractional) 픽셀 포지션들에 대한 모션 탐색을 수행하고, 분수 픽셀 정밀도를 가진 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 PU 의 포지션을 참조 화상의 예측 블록의 포지션과 비교함으로써, 인터-코딩된 슬라이스에서 비디오 블록의 PU 에 대한 모션 벡터를 계산한다. 참조 화상은 제 1 참조 화상 리스트 (리스트 0) 또는 제 2 참조 화상 리스트 (리스트 1) 로부터 선택될 수도 있으며, 이 리스트 각각은 참조 화상 메모리 (64) 에 저장된 하나 이상의 참조 화상들을 식별한다. 모션 추정 유닛 (42) 은 그 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행되는 모션 보상은 모션 추정 유닛 (42) 에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치하거나 또는 생성하는 것을 수반할 수도 있다. 또, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 일부 예들에서, 기능적으로 통합될 수도 있다. 현재 비디오 블록의 PU 에 대한 모션 벡터를 수신하자 마자, 모션 보상 유닛 (44) 은 모션 벡터가 참조 화상 리스트들 중 하나에서 가리키는 예측 블록을 로케이트할 수도 있다. 합산기 (50) 는 이하에서 논의되는 바와 같이, 코딩중인 현재 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써, 잔차 비디오 블록을 형성한다. 일반적으로, 모션 추정 유닛 (42) 은 루마 컴포넌트들에 대해 모션 추정을 수행하고, 모션 보상 유닛 (44) 는 크로마 컴포넌트들 및 루마 컴포넌트들 양쪽에 대해 루마 컴포넌트들에 기초하여 계산된 모션 벡터들을 이용한다. 모드 선택 유닛 (40) 은 또한 비디오 슬라이스의 비디오 블록들을 디코딩함에 있어 비디오 디코더 (30) 에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스와 연관되는 신택스 엘리먼트들을 생성할 수도 있다.
인트라-예측 유닛 (46) 은 위에서 설명한 바와 같이, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행되는 인터-예측에 대한 대안으로서, 현재 블록을 인트라-예측할 수도 있다. 특히, 인트라-예측 유닛 (46) 은 현재 블록을 인코딩하는데 사용할 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라-예측 유닛 (46) 은 예컨대, 별개의 인코딩 패스들 동안 다양한 인트라-예측 모드들을 이용하여 현재 블록을 인코딩할 수도 있으며, 인트라-예측 유닛 (46) (또는, 일부 예들에서는, 모드 선택 유닛 (40)) 은 테스트된 모드들로부터 사용할 적절한 인트라-예측 모드를 선택할 수도 있다.
예를 들어, 인트라-예측 유닛 (46) 은 다양한 테스트된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산하고, 그 테스트된 모드들 중에서 최선의 레이트-왜곡 특성들을 갖는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로 인코딩된 블록과 그 인코딩된 블록을 생성하기 위해 인코딩되었던 원래의 미인코딩된 블록 사이의 왜곡 (또는, 에러) 의 양 뿐만 아니라, 그 인코딩된 블록을 생성하기 위해 사용된 비트레이트 (즉, 비트들의 수) 를 결정한다. 인트라-예측 유닛 (46) 은 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들을 계산하여, 어느 인트라-예측 모드가 그 블록에 대해 최선의 레이트-왜곡 값을 나타내는 지를 결정할 수도 있다.
블록에 대한 인트라-예측 모드를 선택한 후, 인트라-예측 유닛 (46) 은 블록에 대한 그 선택된 인트라-예측 모드를 나타내는 정보를 엔트로피 코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 코딩 유닛 (56) 은 그 선택된 인트라-예측 모드를 나타내는 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 수정된 인트라-예측 모드 인덱스 테이블들 (또한, 코드워드 맵핑 테이블들로서 지칭됨) 을 포함할 수도 있는 그 송신되는 비트스트림 구성 (configuration) 데이터에, 다양한 블록들에 대한 인코딩 컨텍스트들 (contexts) 의 정의들, 및 가장 가능성있는 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블, 및 컨텍스트들의 각각에 대해 사용할 수정된 인트라-예측 모드 인덱스 테이블의 표시들을 포함할 수도 있다.
비디오 인코더 (20) 는 코딩중인 원래 비디오 블록으로부터, 모드 선택 유닛 (40) 으로부터의 예측 데이터를 감산함으로써 잔차 비디오 블록을 형성한다. 합산기 (50) 는 이 감산 동작을 수행하는 구성요소 또는 구성요소들을 나타낸다. 변환 프로세싱 유닛 (52) 은 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록에 적용하여, 잔차 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 프로세싱 유닛 (52) 은 DCT 와 개념적으로 유사한 다른 변환들을 수행할 수도 있다. 웨이블릿 변환들, 정수 변환들, 서브-밴드 변환들 또는 다른 유형들의 변환들이 또한 이용될 수 있을 것이다. 어느 경우에도, 변환 프로세싱 유닛 (52) 은 그 변환을 잔차 블록에 적용하여, 잔차 변환 계수들의 블록을 생성한다. 변환은 잔차 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다. 변환 프로세싱 유닛 (52) 은 결과적인 변환 계수들을 양자화 유닛 (54) 에 전송할 수도 있다. 양자화 유닛 (54) 은 비트 레이트를 추가로 감소시키기 위해 변환 계수들을 양자화한다. 양자화 프로세스는 그 계수들의 일부 또는 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변경될 수도 있다. 일부 예들에서, 양자화 유닛 (54) 은 그 다음, 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (56) 이 그 스캔을 수행할 수도 있다.
양자화에 이어, 엔트로피 코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛 (56) 은 컨텍스트 적응 가변 길이 코딩 (CAVLC), 컨텍스트 적응 바이너리 산술 코딩 (CABAC), 신택스-기반의 컨텍스트-적응 바이너리 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 또 다른 엔트로피 코딩 기법을 수행할 수도 있다. 컨텍스트-기반의 엔트로피 코딩의 경우, 컨텍스트는 이웃하는 블록들에 기초할 수도 있다. 엔트로피 코딩 유닛 (56) 에 의한 엔트로피 코딩에 이어, 인코딩된 비트스트림은 또 다른 디바이스 (예컨대, 비디오 디코더 (30)) 로 송신되거나 또는 추후 송신 또는 취출 (retrieval) 을 위해 아카이브될 수도 있다.
역양자화 유닛 (58) 및 역변환 유닛 (60) 은 역양자화 및 역변환을 각각 적용하여, 예컨대, 참조 블록으로서 나중의 사용을 위해, 픽셀 도메인에서 잔차 블록을 재구성한다. 모션 보상 유닛 (44) 은 잔차 블록을 참조 프레임 메모리 (64) 의 프레임들 중 하나의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한 하나 이상의 보간 필터들을 그 재구성된 잔차 블록에 적용하여, 모션 추정에 사용하기 위한 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (62) 는 재구성된 잔차 블록을 모션 보상 유닛 (44) 에 의해 생성되는 모션 보상된 예측 블록에 가산하여, 참조 프레임 메모리 (64) 에의 저장을 위한 재구성된 비디오 블록을 생성한다. 재구성된 비디오 블록은 후속 비디오 화상에서 블록을 인터-코딩하기 위해 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 사용될 수도 있다.
이러한 방식으로, 도 2 의 비디오 인코더 (20) 는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하도록 구성된 비디오 인코더의 일예를 나타낸다. 체인은 비디오 데이터의 예측 유닛을 파티셔닝할 수도 있다. 추가적으로, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있을 수도 있다. 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있어 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수도 있다. 비디오 인코더 (20) 는 또한 체인에 기초하여 예측 유닛의 파티션들을 코딩할 수도 있다.
일예에서, 모드 선택 유닛 (40) 은 심도 PU 에 대해 체인 코딩 모드를 선택할 수도 있다. 체인 코딩을 이용하는 비디오 인코더 (20) 는 시작 에지 (starting edge) 를 나타내는 데이터를 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한 체인 시작 에지를 따라 체인 시작 포지션을 인코딩할 수도 있다. 비디오 인코더 (20) 는 예측 유닛의 경계 밖의 좌표에 대응하는 추가적인 체인 코드 워드 및 비디오 예측 유닛과 같은 예측 유닛에서 각각의 엘리먼트에 대한 체인 코드 워드를 코딩할 수도 있다.
추가적으로, 일예에서, 파티션 유닛 (48) 은 체인을 이용하여 PU 를 파티셔닝한다. 예를 들어, 심도 블록은 직선에 의해 2 개의 구역들로 파티셔닝될 수도 있다. 모드 선택 유닛 (40) 은 PU 의 파티션들에 대해 인트라-예측 모드들을 결정할 수도 있다.
이 예에서, 인트라-예측 유닛 (46) 은 체인 및 인트라-예측 모드들에 기초하여 PU 에 대한 예측된 값들을 생성할 수도 있다. 또한, 체인을 나타내는 데이터는 신택스 엘리먼트들로서 엔트로피 코딩 유닛 (56) 에 전송될 수도 있고, 이 엔트로피 코딩 유닛은 CABAC 을 이용하여 그 신택스 엘리먼트들을 코딩한다. 인트라-예측 유닛 (46) 은 또한 잔차 블록을 형성하기 위해 합산기 (50) 에 PU 를 전송한다.
도 3 은 이 개시물에서 기술되는 하나 이상의 예들에 따라, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 기법들을 구현할 수도 있는 비디오 디코더 (30) 의 일예를 나타내는 블록도이다. 일예에서, 도 1 의 비디오 디코딩 유닛 (16) 은 비디오 디코더 (30) 일 수도 있다. 도 3 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (70), 모션 보상 유닛 (72), 인트라 예측 유닛 (74), 역양자화 유닛 (76), 역변환 유닛 (78), 참조 화상 메모리 (82) 및 합산기 (80) 를 포함한다. 비디오 디코더 (30) 는 일부 예들에서, 비디오 인코더 (20) (도 2) 에 대해 설명된 인코딩 과정과는 일반적으로 반대인 디코딩 과정을 수행할 수도 있다. 모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들에 기초하여 예측 데이터를 생성할 수도 있으며, 한편 인트라-예측 유닛 (74) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 인트라-예측 모드 표시자들에 기초하여 예측 데이터를 생성할 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관되는 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 비디오 인코더 (20) 로부터 수신한다. 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (70) 은 그 비트스트림을 엔트로피 디코딩하여, 양자화된 계수들, 모션 벡터들 또는 인트라-예측 모드 표시자들, 및 다른 신택스 엘리먼트들을 생성한다. 엔트로피 디코딩 유닛 (70) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 모션 보상 유닛 (72) 에 포워딩한다. 비디오 디코더 (30) 는 신택스 엘리먼트들을 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨로 수신할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 인트라 예측 유닛 (74) 은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 화상의 이전에 디코딩된 블록들로부터의 데이터에 기초하여, 현재 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 화상이 인터-코딩된 (즉, B, P, 또는 GPB) 슬라이스로서 코딩될 때, 모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여, 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 화상 리스트들 중 하나 내 참조 화상들 중 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 참조 화상 메모리 (82) 에 저장된 참조 화상들에 기초하여 디폴트 구성 기법들을 이용하여, 참조 화상 리스트들, 리스트 0 및 리스트 1 을 구성할 수도 있다.
모션 보상 유닛 (72) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱 (parsing) 하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그 예측 정보를 이용하여, 디코딩중인 현재 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 보상 유닛 (72) 은 그 수신된 신택스 엘리먼트들 중 일부를 이용하여, 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용되는 예측 모드 (예컨대, 인트라-예측 또는 인터-예측), 인터-예측 슬라이스 유형 (예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 화상 리스트들 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재 비디오 슬라이스에서 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
모션 보상 유닛 (72) 은 또한 보간 필터들에 기초하여 보간 (interpolation) 을 수행할 수도 있다. 모션 보상 유닛 (72) 은 비디오 블록들의 인코딩 동안 비디오 인코더 (20) 에 의해 사용되는 것과 같은 보간 필터들을 이용하여, 참조 블록들의 서브-정수 픽셀들에 대해 보간된 값들을 계산할 수도 있다. 이 경우, 모션 보상 유닛 (72) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 사용되는 보간 필터들을 결정하고 그 보간 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
역양자화 유닛 (76) 은 비트스트림에서 제공되어 엔트로피 디코딩 유닛 (70) 에 의해 디코딩되는 양자화된 변환 계수들을 역양자화, 즉 양자화 해제한다. 역양자화 프로세스는 양자화의 정도를 결정하기 위해, 그리고, 이와 유사하게, 적용되어야 하는 역양자화의 정도를 결정하기 위해, 비디오 슬라이스에서의 각각의 비디오 블록에 대한, 비디오 디코더 (30) 에 의해 계산된 양자화 파라미터 QPY 의 사용을 포함할 수도 있다.
역변환 유닛 (78) 은 픽셀 도메인에서 잔차 블록들을 생성하기 위해, 역 변환, 예컨대, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (72) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 디코더 (30) 는 역변환 유닛 (78) 으로부터의 잔차 블록들을 모션 보상 유닛 (72) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써, 디코딩된 비디오 블록을 형성한다. 합산기 (80) 는 이 합산 동작을 수행하는 구성요소 또는 구성요소들을 나타낸다. 원할 경우, 블록키니스 아티팩트들을 제거하기 위해 디블록킹 필터가 또한 그 디코딩된 블록들을 필터링하는데 적용될 수도 있다. (코딩 루프 중에 또는 아니면 코딩 루프 후에) 다른 루프 필터들이 또한 픽셀 전이들 (pixel transitions) 을 평활화하거나 또는 그 외에 비디오 품질을 향상시키기 위해 사용될 수도 있다. 주어진 프레임 또는 화상에서의 디코딩된 비디오 블록들은 그 다음, 후속 모션 보상을 위해 사용되는 참조 화상들을 저장하는 참조 프레임 메모리 (82) 에 저장된다. 참조 프레임상 메모리 (82) 는 또한 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상에의 나중의 프리젠테이션을 위해, 디코딩된 비디오를 저장한다.
이러한 방식으로, 도 3 의 비디오 디코더 (30) 는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하도록 구성된 비디오 디코더의 일예를 나타낸다. 체인은 비디오 데이터의 예측 유닛을 파티셔닝할 수도 있다. 추가적으로, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있을 수도 있다. 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있어 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수도 있다. 비디오 디코더 (30) 는 또한 체인에 기초하여 예측 유닛의 파티션들을 코딩할 수도 있다.
일예에서, 심도 PU 에 대한 체인 코딩 모드가 비디오 디코더 (30) 내에서 결정될 수도 있다. 체인 코딩을 이용하는 비디오 디코더 (30) 는 시작 에지를 나타내는 데이터를 디코딩할 수도 있다. 비디오 디코더 (30) 는 또한 체인 시작 에지를 따라 체인 시작 포지션을 디코딩할 수도 있다. 비디오 디코더 (30) 는 또한, 비디오 예측 유닛과 같은 예측 유닛에서의 각 엘리먼트에 대한 체인 코드 워드 및 예측 유닛의 경계 밖의 자표에 대응하는 추가적인 체인 코드 워드를 디코딩할 수도 있다.
추가적으로, 인트라-예측 유닛 (74) 은, 파티션들에 대한 예측된 값들을 계산하기 위해 인트라-예측 모드들의 표시들 및 파티션들이 있는 곳을 결정하기 위해 체인을 이용하여, 파티션들에 대한 예측된 값들을 계산할 수도 있다. 모드 선택 유닛 (40) 은 PU 의 파티션들에 대한 인트라-예측 모드들을 결정할 수도 있다.
이 예에서, 인트라-예측 유닛 (74) 은 체인 및 인트라-예측 모드들에 기초하여 PU 에 대한 예측된 값들을 생성할 수도 있다. 또한, 체인을 나타내는 데이터는 신택스 엘리먼트들로서 엔트로피 디코딩 유닛 (70) 에 수신될 수도 있고, 이 엔트로피 디코딩 유닛은 CABAC 을 이용하여 그 신택스 엘리먼트들을 디코딩한다. 인트라-예측 유닛 (74) 은 또한 디코딩된 비디오를 생성하기 위해 잔차 블록과 합산되도록 합산기 (80) 에 예측 데이터를 전송한다.
도 4 는 예컨대 다양한 대응하는 인트라-예측 모드들에 따른, 각도 예측 (angular prediction) 의 일예를 나타내는 블록도이다. 예를 들어, 도 4 에서 도시된 다양한 각도 예측 모드들은 이 개시물의 기법들에 따라 파티셔닝된 PU 의 다양한 파티션들을 예측하기 위해 이용될 수도 있다. 예를 들어, 이들 각도 예측들은 비디오 인코더 (20) 또는 비디오 디코더 (30) 와 관련하여 이용될 수도 있을 것이다. 도 4 에서 도시된 바와 같이, HEVC 는, DC 및 평면 예측 모드들과 같은 비-각도 예측 모드들 외에도, (2 에서부터 34 까지 인덱싱된) 33 개의 각도 예측 모드들을 이용하는 인트라 예측 코딩 방법을 이용할 수도 있다. 따라서, (도 1 의 인코딩 유닛 (14) 및/또는 디코딩 유닛 (16) 중 어느 일방 또는 양자 모두와 같은) HEVC 를 이용하는 시스템은, 예를 들어, 도 4 에서 도시된 바와 같이 각도를 나타내는 모드들 2 내지 34 중 하나를 제공함으로써 예측 방향을 제공할 수도 있다. 특히, 이 개시물의 기법들에 따라, 비디오 코더는 이 개시물의 체인 코딩 기법들을 이용하여 파티셔닝된, PU 의 각 파티션에 대해 인트라-예측 모드의 표현 (representation) 을 코딩할 수도 있다. HEVC 는 또한 도 4 에서 도시된 바와 같이 (1 로 인덱싱된) DC 모드 및 (0 으로 인덱싱된) 평면 모드 (planar mode) 를 이용할 수도 있다. 3D-HEVC 에서, 인트라 예측 모드들의 동일한 정의가 이용될 수도 있다. 예를 들어, 도 4 와 관련하여, 다양한 인트라 예측 모드들을 나타내는 값들을 코딩하기 위해 비디오 인코더 (20) 및 또는 비디오 디코더 (30) 에 의해 (예를 들어, 2 에서부터 34 까지 인덱싱된) 예측 모드들이 이용될 수도 있다. 또한, 체인 코딩으로부터 발생되는 PU 의 2 개의 상이한 파티션들 P0/P1 은 상이한 인트라 예측 모드들을 가질 수도 있다. 인코더 및 디코더는 2 개의 상이한 파티션들의 각각에 대해 그들 상이한 인트라 예측 모드들을 나타내는 값들을 코딩할 수도 있다.
MPEG 에서의 일부 예시적인 HEVC-기반의 3D 비디오 코딩 (3D-HEVC) 은 m22570 및 m22571 에서 제안된 솔루션들에 기초할 수도 있다. 3D-HEVC 에 대한 참조 소프트웨어 HTM 버전 4.0 은 다음의 링크: [HTM-4.0]: https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM-4.0 로부터 다운로드될 수 있다. 소프트웨어 디스크립션 (description) (문서 번호: w12774) 는 http://wg11.sc29.org/doc_end_user/documents/100_Geneva/wg11/w12744-v2-w12744.zip 로부터 이용가능하다.
3D-HEVC 에서, 각 액세스 유닛은 다수의 뷰 (view) 컴포넌트들을 포함할 수도 있고, 이 각각은 고유의 뷰 식별 (ID), 또는 뷰 순서 인덱스, 또는 레이어 ID 를 포함한다. 뷰 컴포넌트는 텍스처 (texture) 뷰 컴포넌트 및 심도 뷰 컴포넌트를 포함한다. HEVC 를 이용하는 시스템은 텍스처 뷰 컴포넌트를 하나 이상의 텍스처 슬라이스들로서 코딩할 수도 있는 한편, 심도 뷰 컴포넌트는 하나 이상의 심도 슬라이스들로서 코딩된다. 일예에서, 하나의 심도 블록의 속성들은 또 다른 공동위치된 블록으로부터 상속될 수도 있다. 예를 들어, 심도 블록의 루마는 공동위치된 루마 블록으로부터 인트라-예측 방향을 상속할 수도 있다. 추가적으로, "공동-위치된 (co-located)" 이란 루마 블록의 포지션이 루마 화상과 심도 화상 사이의 픽셀 해상도에서의 차이에 기초하여 스케일링되는 것을 의미할 수도 있다.
일부 예들은 3D 비디오 코딩에서 심도 맵 코딩을 이용할 수도 있다. 이러한 예에서, 3D 비디오 데이터는 멀티뷰 비디오 플러스 (plus) 심도 포맷을 이용하여 표현될 수도 있고, 여기서, 캡처된 뷰들 (텍스처) 은 대응하는 심도 맵들과 연관된다. 3D 비디오 코딩에서, 텍스처들 및 심도 맵들은 3D 비디오 비트스트림으로 코딩 및 멀티플렉싱된다. 심도 맵들은 루마 샘플들이 심도 값들을 표현하는 그레이스케일 비디오로서 코딩되고, 종래의 인트라- 및 인터-코딩 방법들이 심도 맵 코딩에 대해 적용될 수 있다.
심도 맵들은 날카로운 (sharp) 에지들 및 일정한 영역들에 의해 특징지어질 수도 있고, 심도 맵에서의 에지들은 대응하는 텍스처와 강한 상관들을 항상 나타낸다. 텍스처와 대응하는 심도 사이의 상이한 통계들 및 상관들로 인해, 상이한 코딩 스킴들 (schemes) 이 2D 비디오 코덱에 기초하여 심도 맵들에 대해 설계된다. 3D-HEVC 에서, 심도 모델링 모드들 (Depth Modeling Modes; DMMs) 이 심도 슬라이스의 인트라 예측 유닛을 코딩하기 위해 HEVC 인트라 예측 모드들과 함께 도입될 수도 있다.
심도 맵들에서의 날카로운 에지들의 더 나은 표현들을 위해, HTM 버전 4.0 은 심도 맵의 인트라 코딩에 대해 심도 모델링 모드 (DMM) 를 적용한다. DMM 에서 4 개의 새로운 인트라 모드들이 존재한다. 전부 4 개의 모드들에서, 심도 블록은 DMM 패턴에 의해 특정되는 2 개의 구역들로 파티셔닝될 수도 있고, 여기서, 각 구역은 상수 값에 의해 표현된다. DMM 패턴은 명시적으로 시그널링되거나 (모드 1), 공간적으로 이웃하는 블록들에 의해 예측되거나 (모드 2), 공동위치된 텍스처 블록에 의해 예측 (모드 3 및 모드 4) 될 수 있다. 웨지렛 파티셔닝 (wedgelet partitioning) 및 윤곽 파티셔닝 (contour partitioning) 을 포함하는, DMM 에서 정의된 2 개의 파티셔닝 모델들이 존재한다. 이 개시물의 기법들은 윤곽 파티셔닝 모델에서 이용될 수도 있다.
도 5 는 8×8 블록 (302) 에 대한 웨지렛 패턴 (300) 을 나타내는 도이다. 일부 예들에서, 웨지렛 패턴 (300) 은 도 1 의 인코딩 유닛 (14) 및/또는 디코딩 유닛 (16) 의 어느 일방 또는 양자 모두와 같은 유닛들에서 프로세싱될 수도 있을 것이다. 웨지렛 패턴에 대해, 심도 블록은 도 5 에서 도시된 바와 같이 직선 (304) 에 의해 2 개의 구역들, P 0P 1 로 파티셔닝될 수도 있다. 웨지렛들은 잠재적으로 보다 효율적으로 이미지들을 근사화하기 위해 근사들로서 이용될 수도 있다. 도 5 에서 도시된 바와 같이, 이들 근사들은 블록 (302) 을 수들 (numbers) 의 2 개의 셋트들을 형성하는 2 개의 구역들, P 0P 1 (예를 들어, "백색" 을 나타내는 일련의 "0" 들을 갖는 P 0 및 "흑색" 을 나타내는 일련의 "1" 들을 갖는 P 1) 로 파티셔닝함으로써 획득될 수도 있다. 다른 컬러들 또한 수들의 셋트들에 의해 표시될 수도 있다는 것이 이해될 것이다. 따라서, 일부 예들에서, 블록 (302) 은 선 (304) 에 의해 정의될 수도 있다. 따라서, 8×8 블록 (302) 에서 전부 64 개의 픽셀들에 관련된 데이터를 송신하는 대신에 선 (304) 에 관련된 데이터가 송신될 수도 있을 것이다. 블록 (302) 은 단지 선 (304) 의 로케이션 (location) 및 선의 각 측의 컬러로부터 생성될 수도 있다. 일반적으로, 8×8 블록 (302) 에 대한 웨지렛 패턴 (300) 과 같이, 몇몇 형상들에 대해, 패턴을 표현하기 위해 필요한 데이터는 모든 64 개의 픽셀들을 개별적으로 표현하기 위해 필요한 데이터보다 적을 수도 있다. 따라서, 예를 들어 이 개시물의 기법들을 이용하여, 더 적은 비트들이 송신될 수도 있을 것이다.
도 6 은 8×8 블록 (406) 에 대한 2 개의 불규칙한 구역들 (400, 402) 을 나타내는 도이다. 불규칙한 구역 (400, 402) 에 대해, 도 6 에 도시된 바와 같이 심도 블록 (406) 은 선들 (408, 410) 에 의해 2 개의 구역들, P 0P 1 으로 파티셔닝될 수도 있다. 도 5 와 관련하여 설명된 웨지렛들과 유사하게, 8×8 블록 (406) 에 대한 2 개의 불규칙한 구역들 (400, 402) 은 블록 (406) 을 포함하는 이미지들을 잠재적으로 보다 효율적으로 근사하기 위한 근사 (approximation) 로서 사용될 수도 있다. 도 6 에서 도시된 바와 같이, 이들 근사들은 블록 (404) 을 연속적이지 않은 2 개의 구역들, P 0P 1 으로 파티셔닝함으로써 획득될 수도 있다. 2 개의 구역들, P 0P 1 은 수들의 2 개의 셋트들 (예를 들어, "백색" 을 나타내는 일련의 "0" 들을 갖는 P 0 및 "흑색" 을 나타내는 일련의 "1" 들을 갖는 P 1) 을 형성한다. 다른 컬러들이 또한 수들의 셋트들에 의해 표시될 수도 있다. 따라서, 일부 예들에서, 블록 406) 은 라인들 (408 및 410) 에 의해 정의될 수도 있다. 따라서, 8×8 블록 (406) 에서 전부 64 개의 픽셀들에 관련된 데이터를 송신하는 대신에 라인들 (408 및 410) 에 관련된 데이터가 송신될 수도 있을 것이다. 블록 (406) 은 단지 2 개의 구역들, P 0P 1 의 각각 상의 컬러 및 선들 (408 및 410) 의 로케이션으로부터 생성될 수도 있다. 일반적으로, 8×8 블록 (406) 에 대한 2 개의 불규칙한 구역들 P 0P 1 과 같은 몇몇 형상들에 대해, 패턴을 표현하기 위해 필요한 데이터는 모두 64 개의 픽셀들을 개별적으로 표현하기 위해 필요한 데이터보다 적을 수도 있다. 따라서, 예를 들어 이 개시물의 기법들을 이용하여, 더 적은 비트들이 송신될 수도 있을 것이다.
윤곽 파티셔닝에 대해, 도 6 에서 도시된 바와 같이, 심도 블록 (406) 은 2 개의 불규칙한 구역들 (400, 402) 로 파티셔닝될 수도 있다. 일부 예들에서, 불규칙한 구역들 (400, 402) 은 도 1 의 인코딩 유닛 (14) 및/또는 디코딩 유닛 (16) 의 어느 일방 또는 양자 모두와 같은 유닛들에서 프로세싱될 수도 있을 것이다. 윤곽 파티셔닝은 웨지렛 파티셔닝보다 더 유연하지만, 시그널링하기에 어려울 수도 있다. DMM 모드 4 에서, 윤곽 파티셔닝 패턴은 암시적으로 공동위치된 텍스처 블록의 재구성된 루마 샘플들을 이용하여 도출될 수도 있다. DMM 방법은 HEVC 에서 명시된 인트라 예측 모드들에 대한 대안으로서 통합된다. 일예에서, 1 비트 플래그는 DMM 또는 통일된 인트라 예측이 적용되는지 여부를 명시하기 위해 각 PU 에 대해 시그널링될 수도 있다.
일부 예들은 구역 경계 체인 코딩 모드를 이용할 수도 있다. 3D-HEVC 에서, 구역 경계 체인 코딩 모드는 심도 슬라이스의 인트라 예측 유닛을 코딩하기 위해 HEVC 인트라 예측 모드들 및 DMM 모드들과 함께 도입된다. 간략함을 위해, "구역 경계 체인 코딩 모드(region boundary chain coding mode)" 는 "체인 코딩" 으로 표시된다.
체인 코드는 단색 이미지들에 대한 압축 알고리즘이다. 체인 코딩은 체인 엘리먼트들에 대해 무손실이다. 체인 코드들의 기본 원리는 이미지에서 각각의 연결된 컴포넌트를 별개로 인코딩하는 것이다. 예를 들어, 도 5 및 도 6 에서 도시된 바와 같이, 구역들 P 1 이 인코딩될 수도 있을 것이다. 따라서, 이들 구역 P 1 에 대해, 경계 상의 포인트가 선택될 수도 있고, 그것의 좌표들이 송신될 수도 있다. 인코더는 그 다음, 구역의 경계를 따라 이동하고, 각 스텝에서, 이 이동의 방향을 나타내는 심볼을 송신한다. 이것은, 구역이 블록 내에 포함되는 경우에 인코더가 시작 포지션으로 돌아올때까지, 또는, 예를 들어 도 6 에서 도시된 바와 같이, 구역이 블록의 에지들을 터치하거나 블록 내에 포함될 때 에지가 도달될 때까지, 계속될 수도 있다. 일부 경우들에서, 프로세스는 브록 내의 다수의 구역들 P 1 을 코딩하도록 반복될 수도 있다. 이 인코딩 방법은 합리적으로 작은 수의 큰 연결된 컴포넌트들로 이루어지는 이미지들에 대해 특히 효과적일 수도 있다. 다른 예에서, 구역 P 1 보다는 P 0 가 인코딩될 수도 있다는 것이 이해될 것이다.
일예에서, PU 의 체인 코딩이 시그널링될 수도 있다. 예를 들어, 현재 개시물의 기법들은 도 5 에서 도시된 PU 와 관련하여 이용될 수도 있다. 이들 기법들은 하지만 도 6 에서 도시된 PU 에 일반적으로 적용되지 않을 것이다. 일부 예들에서, 체인 코딩이 이용될 때, 체인의 시작 포지션, 체인 코드들의 수, 및 각 체인 엘리먼트에 대한 방향 인덱스가 시그널링될 수도 있다. 하지만, 다수의 예들에서, 체인 코드들의 수는 시그널링되기보다는 예를 들어 수신기에서 도출될 수도 있다. 체인 코드들의 수를 시그널링하지 않는 예들에서, 송신기가 시그널링하기 위해 필요할 수도 있는 비트들의 수는 감소될 수도 있을 것이다.
도 7 은 체인 코드에 대한 하나의 가능한 방향 인덱스 (425) 를 나타내는 도이다. 예를 들어, 도 7 에서 도시된 바와 같이, "0" 의 방향 인덱스 값은, 하나의 체인 엘리먼트로부터 다음 체인 엘리먼트로의 방향이 좌측으로라는 것을 나타낸다. 다르게 말하면, 하나의 체인으로부터 다음 체인 엘리먼트로 도착하기 위해, 좌측 하나의 픽셀로 이동한다. 유사하게, "1" 의 방향 인덱스 값은, 하나의 체인 엘리먼트로부터 다음 체인 엘리먼트로의 방향이 우측으로라는 것을 나타낸다. "2" 의 방향 인덱스 값은, 하나의 체인 엘리먼트로부터 다음 체인 엘리먼트로의 방향이 상향이라는 것을 나타낸다. "3" 의 방향 인덱스 값은, 하나의 체인 엘리먼트로부터 다음 체인 엘리먼트로의 방향이 하향이라는 것을 나타낸다.
도 7 에서 도시된 바와 같이, 각도 방향이 또한 가능하다: "4" 의 방향 인덱스 값은, 하나의 체인 엘리먼트로부터 다음 체인 엘리먼트로의 방향이, 예를 들어, "0" 의 방향 인덱스 값과 "2" 의 방향 인덱스 값에 의해 표시되는 방향들 사이의, 상향 좌측으로라는 것을 나타낸다. 유사하게, "5" 의 방향 인덱스 값은, 하나의 체인 엘리먼트로부터 다음 체인 엘리먼트로의 방향이, 예를 들어, "1" 의 방향 인덱스 값과 "2" 의 방향 인덱스 값에 의해 표시되는 방향들 사이의, 상향 우측으로라는 것을 나타낸다. "6" 의 방향 인덱스 값은, 하나의 체인 엘리먼트로부터 다음 체인 엘리먼트로의 방향이, 예를 들어, "0" 의 방향 인덱스 값과 "3" 의 방향 인덱스 값에 의해 표시되는 방향들 사이의, 하향 좌측으로라는 것을 나타낸다. "7" 의 방향 인덱스 값은, 하나의 체인 엘리먼트로부터 다음 체인 엘리먼트로의 방향이, 예를 들어, "1" 의 방향 인덱스 값과 "3" 의 방향 인덱스 값에 의해 표시되는 방향들 사이의, 하향 우측으로라는 것을 나타낸다. 따라서, 일부 예들에서, 각 체인 코드의 방향 인덱스 (425) 는 이전 체인 코드의 방향 인덱스에 기초하여 차분적으로 코딩될 수도 있다. 일부 예들에서, 이들 각도 방향들은 도 1 의 인코딩 유닛 (14) 및/또는 디코딩 유닛 (16) 의 어느 일방 또는 양자 모두와 같은 유닛들에서 이용될 수도 있을 것이다.
체인 엘리먼트들의 수를 포함하지 않는 비트 스트림의 시그널링을 허용할 수도 있는 하나의 예에서, 체인 코딩은 다음 단계들을 수행함으로써 파티션 패턴을 명시할 수도 있다:
1. 체인이 상부 또는 좌측으로부터 시작하는지 여부를 시그널링하는 플래그
플래그는, 체인들이 상부로부터 시작하는 경우에 "0" 으로 설정되고, 체인들이 좌측으로부터 시작하는 경우에 "1" 로 설정된다. 일부 예들에서, 추가적인 시작 포지션들의 시그널링에 대해 제공하기 위해 더 많은 비트들이 이용될 수도 있을 것이다. 예를 들어, 2 비트가, 체인들이 상부 경계 (예를 들어, 00), 좌측 경계 (예를 들어, 01), 하부 경계 (예를 들어, 10), 또는 우측 경계 (예를 들어, 11) 로부터 시작하는지 여부를 시그널링하기 위해 이용될 수도 있을 것이다.
2. 체인들의 시작 포인트 포지션
N×N PU 에 대해, log2 N 비트들이 시작 포지션을 명시하기 위해 이용된다.
3. PU 의 경계 밖의 좌표에 대응하는 체인 엘리먼트 및 파싱될 수도 있는 하나의 추가적인 체인 엘리먼트를 포함하는, 일련의 연결된 체인들의 방향들. 각각의 현재의 체인 엘리먼트의 종단 (end) 좌표 (x,y) 는 각각의 체인 코드의 파싱 동안 및 후에 추적될 수도 있고, 체인 코드를 파싱한 후의 좌표가 PU 의 경계 밖에 있고 체인들의 현재의 파싱된 수가 1 보다 클 때, 체인 코드들의 파싱은 종결된다.
4. 도 7 에서 도시된 바와 같이, 각각의 체인 엘리먼트는 샘플 (즉, 픽셀) 및 0 에서부터 7 까지 인덱싱된 그것의 8-연결 샘플들 중 하나를 연결한다.
이들 단계들은 이하 도 8 과 관련하여 보다 자세히 논의된다.
상기 설명된 예들에 반해, 상부 경계, 하부 경계, 좌측 경계, 및 우측 경계 를 시그널링하는 것을 허용할 수도 있는 또 다른 예에서, 체인 엘리먼트들의 수를 포함하지 않는 비트 스트림의 시그널링에 대해 제공하지 않는 한편, HTM 4.0 에서의 체인 코딩은 다음 단계들을 수행함으로써 파티션 패턴을 명시할 수도 있다:
1. 체인이 상부 또는 좌측으로부터 시작하는지 여부를 시그널링하는 플래그
플래그는, 체인들이 상부로부터 시작하는 경우에 "0" 으로 설정되고, 체인들이 좌측으로부터 시작하는 경우에 "1" 로 설정된다.
2. 체인들의 시작 포인트 포지션
N×N PU 에 대해, log2 N 비트들이 시작 포지션을 명시하기 위해 이용된다.
3. 총 체인 엘리먼트들의 수
N×N PU 에 대한 총 체인 엘리먼트들의 최대 수는 2N 으로 제한된다. 따라서, log2 N+1비트들이 총 체인 엘리먼트들의 수를 시그널링하기 위해 이용된다.
4. 일련의 연결된 체인 엘리먼트들의 방향들
도 7 에서 도시된 바와 같이, 각각의 체인 엘리먼트는 샘플 및 0 에서부터 7 까지 인덱싱된 그것의 8-연결 샘플들 중 하나를 연결한다.
이들 단계들은 이하 도 9 와 관련하여 보다 자세히 논의된다.
표 1 은 체인 인덱스의 체인 코드 워드의 도출에 대해 제공하는 룩-업 테이블 (look-up table) 이다. (체인의 현재 엘리먼트에 대한) 현재 체인 인덱스의 값은 idxCur 에 의해 표 1 에서 표시된다. (체인의 이전 엘리먼트에 대한) 이전 체인 인덱스의 값은 idxPre 에 의해 표 1 에서 표시된다. 따라서, 인코더에서, 각각의 체인 엘리먼트에 대해, 체인들 인덱스 idxCur 및 체인들 이전 체인 인덱스 idxPre 가 주어지면, 인코더는 표 1 에서 제공된 tabCode 에 의해 명시된 체인 코드 워드 binCur 에 의해 후속하는 체인 엘리먼트로의 이동을 표현할 수도 있다. 표 1 과 함께 사용되고 idxCur 에 의해 표현된 현재의 체인 인덱스의 값은 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 표시하는 (도 7 에서 도시된) 방향 인덱스 값이다. 유사하게, 표 1 과 함께 사용되고 idxPre 에 의해 표현된 이전 체인 인덱스의 값은 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 표시하는 (도 7 에서 도시된) 방향 인덱스 값이다. 체인의 각 엘리먼트는 도 7 에서 도시된 바와 같이 ±x 및/또는 ±y 방향들에 의해 오프셋될 수도 있다. 표 1 과 함께 사용되고 idxPre 에 의해 표현된 이전 체인 인덱스의 초기 값은 체인의 시작 포지션이다.
표 1: 체인 인덱스의 체인 코드 워드를 도출하기 위한 룩-업-테이블 tabCode
Figure pct00001
예를 들어, 일련의 체인 인덱스들이 도 8 에서 도시된다. (체인에서의 각기의 엘리먼트들에 대응하는) 체인 인덱스들의 시리즈는 "3", "3", "3", "7", "1", "1", "1", "1" 이다. 따라서, 도 8 에 도시된 예시적인 체인의 엘리먼트들은 다음의 값들: "3", "3", "3", "7", "1", "1", "1", "1" 을 가질 수도 있다. 이들 값들은 도 8 에서 도시되고, 도 8 에서는 일련의 화살표들을 포함한다. 각 하살표는 그 특정 화살표에 대해 도 7 의 방향 값들을 나타내는 그것 다음의 연관된 수를 갖는다. 유사하게, 도 8 에서 도시된 예시적인 체인의 일련의 지연된 엘리먼트들은 다음의 값들: "3", "3", "3", "3", "7", "1", "1", "1" 을 가질 수도 있다. 도 8 에서 도시된 예시적인 체인의 일련의 지연된 엘리먼트들에서의 처음 "3" 은 상부, 좌측으로부터 3 개의 픽셀들, 예컨대, 포지션 "3" 에 있는 체인의 시작 포지션에 의해 제공된다. 따라서, 도 8 의 예에서, 표 1 로부터의 체인 코드 워드 값들은 아래의 표 2 에서 요약되는 바와 같이 "0", "0", "0", "1", "1", "0", "0", "0" 이다.
표 2: 표 1 로부터의 예시적인 값들
Figure pct00002
각 체인 코드 워드 binCur 는 표 3 을 이용하여 바이너리 숫자들 (binary digits) 의 시퀀스로서 이진화될 수도 있다. 각 체인 코드 워드가 이진화된 후에, 각 바이너리 숫자는 엔트로피-코딩 엔진을 이용하여 인코딩될 수도 있다. 도 8 의 예에 대한 표 1 및 표 3 으로부터의 값들은 이하의 표 4 에서 요약된다.
표 3: 각 체인 코드 워드의 이진화
Figure pct00003
표 4: 표 1 및 표 3 으로부터의 예시적인 값들
Figure pct00004
디코더에서, 파싱된 체인 코드 워드 binCur 및 그것의 이전 체인 인덱스 idxPre 가 주어지면, 현재 체인의 체인 인덱스는 표 5 에서 나타낸 테이블 tabIndex 를 이용하여 도출된다. 상기 논의된 바와 같이, 상부, 좌측으로부터 3 개의 픽셀들, 예컨대, 포지션 "3" 에 있는 체인의 시작 포지션. idxPre 값은 체인의 시작 포지션으로부터 도출된다. 이 예에서, 체인의 제 1 엘리먼트는 상부 상에 있다. 하부 경계, 좌측 경계, 우측 경계와 같은 다른 포지션들 또한 가능하다. 따라서, 도 8 에서 도시된 예에서, 지연된 엘리먼트들의 시리즈, idxPre 의 제 1 값은 "3" 이다.
표 6 에서 나타낸 바와 같이, "표 5 로부터" 화살표에서, 수신기에서 수신된 체인 인덱스에 대한 값은 "3", "3", "3", "7", "1", "1", "1", "1" 이고, 이는 송신기로부터의 체인 인덱스들 값의 시리즈 "3", "3", "3", "7", "1", "1", "1", "1" 에 매칭한다.
표 5: 체인 코드 워드의 체인 인덱스를 도출하기 위한 룩-업-테이블 tabIndex
Figure pct00005
표 6: 표 1, 표 3, 및 표 5 로부터의 예시적인 값들
Figure pct00006
다양한 예들에서, idxPre 는 체인이 상부로부터 시작할 때 3 으로서 초기화되고, 체인들이 좌측으로부터 시작할 때 1 로서 초기화된다. 이하 논의되는 바와 같이 하부 또는 우측으로부터 시작하는 체인들에 대해 다른 값들이 이용될 수도 있다.
도 8 은 파티션 패턴을 포함하는 심도 PU 를 나타내고 예시한다. 도 8 에서 도시된 바와 같이, 체인 인덱스들의 시리즈는 "3", "3", "3", "7", "1", "1", "1", "1" 이다. 예시적인 시리즈들 ("3", "3", "3", "7", "1", "1", "1", "1") 은 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 코딩 데이터를 제공한다. 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있다 (예를 들어, "3", "3", "3", "7", "1", "1", "1"). 도 8 에 도시된 바와 같이 마지막 엘리먼트 (최종 "1") 의 포지션은 예측 유닛 밖에 있어, 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낸다. 이러한 방식으로, 본 명세서에서 설명된 몇몇 예들은 7 로서 체인들의 총 수를 시그널링하기 위해 4 비트들 "0111" 을 코딩하지 않는다. 오히려, 수신기는 체인들의 총 수를 도출함으로써 그것이 체인들의 전부를 프로세싱한 때를 결정할 수도 있다.
예를 들어, 인코더는 파티션 패턴을 식별하는 것 및 비트스트림에서 다음의 정보를 인코딩하는 것에 의해 도 8 에서 도시된 예를 체인 코딩할 수도 있다:
1. 체인이 상부 경계로부터 시작하는 것을 시그널링하기 위해 1 비트 "0" 이 인코딩된다.
2. 상부 경계에서의 시작 포지션 "3" 을 시그널링하기 위해 3 비트들 "011" 이 인코딩된다.
3. 일련의 연결된 체인들 인덱스들 "3", "3", "3", "7", "1", "1", "1", "1" 이 비트스트림에서 인코딩된다. 상기 논의된 바와 같이, 인코더는 표 1 에서 룩-업-테이블을 이용하여 각 체인 인덱스를 코드 워드로 변환할 수도 있다. 마지막 "1" 은 디코더가 파싱할 수도 있는 추가적인 체인을 제공한다. 마지막 "1" 은 PU 의 경계 밖의 좌표에 대응한다. 이것은 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타내기 위해 이용될 수도 있다.
따라서, 수신기 (예컨대, 도 1 의 디코딩 유닛 (16)) 에서, 초기 "0" 은 체인들이 상부 경계로부터 시작하는 것을 나타낼 것이다. 다음 3 개의 비트들 "011" 은 상부 경계에서의 시작 포지션 "3" 을 시그널링하기 위해 인코딩된다. 이 "3" 은 상기 논의된 바와 같이, 표 1 과 함께 이용되고 idxPre 에 의해 표현되는 이전 체인 인덱스에 대한 처음 값을 제공할 수도 있다.
도 8 에 대해 설명된 예는 일반적으로 N×N PU 에 대한 총 수의 시그널링을 필요로하지 않을 것이다. 이것은 코딩될 그리고 송신될 필요가 있는 비트들의 수를 감소시킬 수도 있다. 예를 들어, 도 8 의 예는, 이 예에서 7 인 체인 엘리먼트들의 총 수에 대한 데이터를 코딩 및 시그널링할 필요가 없을 것이다. 일부 예들에서, N×N PU 에 대한 총 체인들의 최대 수는 2N 으로 제한될 수도 있다. 따라서, log2 N+1 비트들이 총 체인들의 수를 시그널링하기 위해 이용될 수도 있고, 이 예에서의 시그널 데이터는 그러면 예컨대 4 비트일 수도 있다. 8 번째 체인 엘리먼트는 PU 내에 있지 않고 체인들의 총 수를 시그널링하는 예에서 시그널링되지 않을 것이다.
체인 코딩을 이용하는 도 8 에서 도시된 예에 대한 디코딩 프로세스는 일반적으로 인코딩 프로세스의 역일 수도 있다. 예를 들어, 체인 코딩을 이용하여 N×N PU 를 디코딩하기 위해, 다음과 같은 단계들이 적용된다:
- 스텝 1: 1 비트 플래그 start 파싱;
- 스텝 2: 시작 포지션 pos 파싱;
- 스텝 3: 체인의 엘리먼트들 사이의 방향들을 나타내는 이진화된 값들을 파싱. 이것은 PU 밖의 엘리먼트에 도달할 때까지 반복될 수도 있음;
- 스텝 4: N×N 바이너리 블록인 파티션 패턴 pattern 재구성;
- 스텝 5: pattern 을 이용하여 PU 디코딩.
일예에서, 체인의 시작 포지션을 시그널링하는 플래그의 값을 결정하는 pattern 이 생성될 수도 있다. 파싱될 수도 있는 하나의 추가적인 체인 엘리먼트 및 PU 의 경계 밖의 좌표에 대응하는 체인 엘리먼트를 포함하는, 일련의 연결된 체인들의 방향들. 도 7 에서 도시된 바와 같이, 각 체인 엘리먼트는 샘플 (즉, 픽셀) 및 0 에서부터 7 까지 인덱싱된, 그것의 8-연결 샘플들 중 하나를 연결할 수도 있다. N×N 바이너리 블록일 수도 있는 파티션 pattern 이 재구성될 때, 예측 유닛을 뒤집기 (flip) 위해 값들이 스왑핑될 수도 있다. 예측 유닛을 상-대-하 (up-to-down) 로 뒤집는 것은 하부 시작부로부터 상부 시작부를 구별하기 위해 이용될 수도 있다. 이것은 이하 보다 자세히 논의된다.
도 9 는 파티션 패턴을 포함하는 예시적인 심도 PU 를 나타낸다. 도 9 에서 도시된 바와 같이, 체인 인덱스들의 시리즈는 "3", "3", "3", "7", "1", "1", "1" 이다. 예시적인 시리즈 ("3", "3", "3", "7", "1", "1", "1") 는 비디오 데이터의 예측 유닛을 나타내는 코딩 데이터를 제공한다. 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있다 (예컨대, "3", "3", "3", "7", "1", "1", "1"). 이 예에서, 도 9 에서 도시된 바와 같이, PU 밖에 있는 포지션은 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타내기 위해 이용되지 않는다. 그보다는, 인코더는 체인들의 총 수를 코딩한다. 일예에서, 체인들의 총 수가 0 보다 크기 때문에 체인들의 수보다는 체인들의 총 수 마이너스 (minus) 1 이 이진화되고 비트스트림 내로 인코딩될 수도 있다. 예를 들어, 도 9 에서 도시된 바와 같이, 4 비트들 "0110" 이 7 로서 체인들의 총 수를 시그널링하기 위해 코딩될 수도 있다. 다른 예들은 비트스트림 "0111" 또는 다른 바이너리 값들로 이진화 및 인코딩할 수도 있을 것이다. 이것은, 체인 엘리먼트들의 수를 포함하지 않는 비트 스트림의 시그널링에 대해 제공하지 않으면서, 상부 경계, 하부 경계, 좌측 경계, 및 우측 경계를 시그널링하는 것을 허용하는 예와 함께 이용될 수도 있다.
예를 들어, 인코더는 파티션 패턴을 식별하고 비트스트림에서 다음의 정보를 인코딩할 수도 있다:
1. 체인들이 상부 경계로부터 시작하는 것을 시그널링하기 위해 1 비트 "0" 가 인코딩된다.
2. 상부 경계에서의 시작 포지션 "3" 을 시그널링하기 위해 3 비트들 "011" 이 인코딩된다.
3. 7 로서 체인들의 총 수를 시그널링하기 위해 4 비트들 "0110" 이 인코딩된다.
4. 일련의 연결된 체인들 인덱스들 "3, 3, 3, 7, 1, 1, 1" 이 인코딩되고, 여기서, 각 체인 인덱스는 표 1 에서 룩-업-테이블을 이용하여 코드 워드로 변환된다.
도 9 의 예는 이하 설명되는 바와 같이 상부, 하부, 좌측, 또는 우측 경계와 교차하는 파티션 경계를 포함하지만 체인 코딩에 포함된 체인들의 총 수를 코딩하는 파티션 패턴에 대해 제공하는 양태들을 포함할 수도 있을 것이다. 추가적으로, 일부 예들에서, 이것은 도 1 의 인코딩 유닛 (14) 및/또는 디코딩 유닛 (16) 의 어느 일방 또는 양자 모두와 같은 유닛들에서 이용될 수도 있을 것이다.
체인 코딩을 이용하는 도 11 에서 도시된 예들에 대한 디코딩 프로세스는 일반적으로 인코딩 프로세스의 역일 수도 있다. 일부 예들에서, 이것은 도 1 의 디코딩 유닛 (16) 과 같은 유닛들에서 이용될 수도 있을 것이다. 예를 들어, 체인 코딩을 이용하여 N×N PU 를 디코딩하기 위해, 다음과 같은 단계들이 적용된다:
- 스텝 1: 1 비트 플래그 start 파싱;
- 스텝 2: 시작 포지션 pos 파싱;
- 스텝 3: 체인 엘리먼트들의 수, num 파싱;
- 스텝 4: num 에지 코드 워드들 파싱;
- 스텝 5: N×N 바이너리 블록인 파티션 패턴 pattern 재구성;
- 스텝 6: pattern 을 이용하여 PU 디코딩.
도 10 은 이 개시물에서 설명된 하나 이상의 예들에 따른 예시적인 방법을 나타내는 흐름도이다. 이 예에서, 비디오 인코더 (20) 는 도 10 의 단계들 430 내지 442 를 수행할 수도 있는 한편, 비디오 디코더 (30) 는 도 10 의 방법의 단계들 444 내지 454 를 수행할 수도 있다. 설명의 목적을 위해 단일 방법으로서 나타냈지만, 인코딩 프로세스와 디코딩 프로세스는 반드시 순차적으로 수행될 필요는 없다. 예를 들어, DVD, 블루-레이, 또는 다른 컴퓨터 판독가능 매체와 같은 컴퓨터 판독가능 매체 상으로의 레코딩 또는 브로드캐스트 또는 네트워크를 통한 전송과 같은 다양한 개입 단계들을 가지고 인코딩과 디코딩 사이에 상당한 양의 시간이 경과할 수도 있다. 일예에서, 인트라 예측 유닛 (46) 은 PU 에 대한 윤곽/체인 코딩 모드를 선택할 수도 있다 (430). 윤곽/체인 코딩이 선택되는 경우, 비디오 인코더 (20) 는 체인에서의 엘리먼트들의 수를 표현하는 데이터를 코딩 또는 송신함이 없이 블로글 체인 코딩할 수도 있다.
파티션 유닛 (48) 은 또한 체인 코딩 모드를 이용하여 PU 를 파티셔닝할 수도 있다 (432). 예를 들어, 도 5 에서 예를 들어 도시된 바와 같이, 인트라 예측 유닛 (46) 은 PU 를 2 개의 분리된 구역들로 쪼개기 위해 체인을 이용할 수도 있다. 이들 분리된 구역들은, PU 의 경계 밖의 좌표에 대응하는 체인 엘리먼트 및 파싱될 수도 있는 하나의 추가적인 체인 엘리먼트를 포함하는, 일련의 연결된 체인들의 방향들을 결정하는 것 및 체인의 시작 포지션을 시그널링하는 플래그의 값을 결정하는 것에 의해 생성될 수도 있다. 도 7 에서 도시된 바와 같이, 각각의 체인 엘리먼트는 샘플 (즉, 픽셀) 및 0 에서부터 7 까지 인덱싱된, 그것의 8-연결 샘플들 중 하나를 연결할 수도 있다.
비디오 인코더 (20) 의 인트라 예측 유닛 (46) 은 체인 엘리먼트들을 나타내는 데이터를 인코딩할 수도 있다 (434). 이 코딩은 예를 들어 체인 엘리먼트들을 나타내는 데이터를 이진화함으로써 수행될 수도 있다. 일부 예들에서, 인트라-예측 유닛 (46) 은 예를 들어 인코딩 패스들 동안 다양한 인트라-예측 모드들을 이용하여 현재 블록을 인코딩할 수도 있고, 인트라-예측 유닛 (46) (또는 일부 예들에서 모드 선택 유닛 (40)) 은 테스트된 모드들로부터 이용하기 위한 적절한 인트라-예측 모드를 선택할 수도 있다. 다양한 모드들이 도 4 에서 도시된다.
모드 선택 유닛 (40) 은 PU 의 파티션들에 대해 인트라-모드들을 선택할 수도 있다 (436). 예를 들어, 모드 선택 유닛 (40) 은 예컨대 에러 결과들에 기초하여 코딩 모드들, 인트라 또는 인터 중 하나를 선택할 수도 있고, 참조 화상 내 사용을 위해 인코딩된 블록을 재구성하기 위해 합산기 (62) 에 그리고 잔차 블록 데이터를 생성하기 위해 합산기 (50) 에 결과적인 인트라- 또는 인터-코딩된 블록을 제공한다.
도 2 에서 도시된 바와 같이 합산기 (50) 는 PU 에 대한 잔차 블록을 계산할 수도 있다 (438). 비디오 인코더 (20) 는 잔차 블록을 변환 및 양자화할 수도 있다 (440). 예를 들어, 변환 프로세싱 유닛 (52) 은 변환 계수들을 형성하기 위해 잔차 블록의 픽셀 값들에 (DCT 와 같은) 변환을 적용할 수도 있고, 양자화 유닛 (54) 은 변환 계수들을 양자화하여 비트 레이트를 추가로 감소시킬 수도 있다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수도 있다. 일부 예들에서, 양자화 유닛 (54) 은 그 다음 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (56) 은 스캔을 수행할 수도 있다.
인코더 (20) 는 잔차 블록의 양자화도니 변환 계수들을 CABAC 인코딩할 수도 있다 (442). 예를 들어, 엔트로피 코딩 유닛 (56) 은, 컨텍스트 적응 가변 길이 코딩 (CAVLC), 컨텍스트 적응 바이너리 산술 코딩 (CABAC), 신택스-기반의 컨텍스트-적응 바이너리 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 또 다른 엔트로피 코딩 기법을 수행할 수도 있다. 컨텍스트-기반의 엔트로피 코딩의 경우에, 컨텍스트는 이웃하는 블록들에 기초할 수도 있다.
비디오 디코더 (30) 는 잔차 블록의 양자화된 변환 계수들을 CABAC 디코딩할 수도 있다 (444). 이 프로세스는 예를 들어 엔트로피 디코딩 유닛 (70) 에 의해 수행될 수도 있다. 따라서, 엔트로피 디코딩 유닛 (70) 은 잔차 블록의 양자화된 변환 계수들을 생성하기 위해 비트스트림을 엔트로피 디코딩할 수도 있다.
역 양자화 유닛 (58) 및 역 변환 유닛 (60) 은 예를 들어 참조 블록으로서 나중의 사용을 위해 픽셀 도메인에서 잔차 블록을 재구성하기 위해 역 양자화 및 역 변환을 각각 적용한다 (446).
도 3 에서 도시된 바와 같이 합산기 (80) 는 PU 에 잔차 블록을 다시 역으로 부가할 수도 있고 (448), 비디오 디코더 (30) 는 PU 를 파티셔닝하기 위한 인트라 모드를 결정할 수도 있다 (450).
비디오 디코더 (30) 는 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 디코딩할 수도 있다 (452). 다시, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있을 수도 있고, 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있어 마지막 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수도 있다. 따라서, 비디오 디코더 (30) 는 PU 를 파티셔닝하고 원래의 블록을 재생하기 위해 체인 코딩 모드를 이용한다 (454).
도 11 의 예에서, 디코더, 예컨대 도 1 의 디코딩 유닛 (16) 또는 도 3 의 비디오 디코더 (30) 는 어느 에지가 체인이 시작하는 곳인지를 결정하기 위해 1 비트 플래그 start 를 파싱할 수도 있다 (475). 인코더, 예컨대 도 1 의 인코딩 유닛 (14) 또는 도 3 의 인코더 (30) 는 상기 논의된 바와 같이 비디오 데이터를 인코딩하기 위해 역의 프로세스를 수행할 수도 있다. 디코더는 또한 체인이 어느 에지 상에서 시작하는지를 결정하기 위해 시작 포지션 pos 를 파싱할 수도 있다 (477). 디코더는 또한 체인 엘리먼트들의 수, num 을 파싱할 수도 있다. 이것은 선택적이다. 본 명세서에서 설명된 바와 같이, 일부 예는 체인 엘리먼트들의 수 및/또는 언제 각각의 체인 엘리먼트가 프로세싱되었는지를 도출한다. 디코더는 본 명세서에서 설명된 바와 같이 시그널링되는 수에 기초하거나 이러한 시그널링되는 수 없이 중 어느 일방에 따라, 체인 엘리먼트 코드 워드들의 수를 파싱할 수도 있다 (481). 체인 엘리먼트들로부터 디코더는 파티션 패턴을 재구성하고 (483) 그 패턴을 이용하여 PU 를 디코딩 (485) 할 수도 있다. 본 명세서에서 이전에 설명된 바와 같이, 파싱될 수도 있는 하나의 추가적인 체인 엘리먼트 및 PU 의 경계 밖의 좌표에 대응하는 체인 엘리먼트를 포함하는, 일련의 연결된 체인들의 방향들. 도 7 에서 도시된 바와 같이, 각 체인 엘리먼트는 샘플 (즉, 픽셀) 및 0 에서부터 7 까지 인덱싱된, 그것의 8-연결 샘플들 중 하나를 연결할 수도 있다. N×N 바이너리 블록일 수도 있는 파티션 pattern 이 재구성될 때, 예측 유닛을 뒤집기 위해 값들이 스왑핑될 수도 있다. 예측 유닛을 상-대-하로 뒤집는 것은 하부 시작부로부터 상부 시작부를 구별하기 위해 이용될 수도 있다. 이것은 이하 보다 자세히 논의된다.
본 명세서에서 설명된 일부 예들은 체인에서의 엘리먼트들의 수를 시그널링하기 보다는 체인에서의 엘리먼트의 수를 도출하는 것에 대해 제공한다. 체인에서의 엘리먼트들의 총 수를 시그널링하는 것은 NxN PU 에 대해 log2 N+1 비트들을 이용할 것이다. 엘리먼트들의 수는 비트스트림에서 제거될 수도 있다. 하나의 추가적인 엘리먼트가 파싱될 수도 있고, 그 추가적인 엘리먼트는 PU 의 경계 밖의 좌표에 대응한다. 각각의 체인 코드의 파싱 동안 및 후에 각각의 현재의 엘리먼트의 종단 좌표 (x,y) 가 추적될 수도 있다. 체인 코드의 파싱 후에, 엘리먼트의 좌표들이 PU 의 경계 밖에 있고 체인들의 현재의 파싱된 수가 1 보다 클 때, 체인 코드들의 파싱은 종결된다.
일부 예들에서, 파티션 패턴은 체인 코딩에 포함되는 상부 또는 좌측 경계 중 어느 일방과만 교차할 수도 있을 것이다. 다른 예들은 상부 경계, 하부 경계, 우측 경계, 또는 좌측 경과와 교차할 수도 있을 파티션 패턴들에 대해 제공한다. 2 비트는 체인들이 상부 (예를 들어, 00), 좌측 (예를 들어, 01), 하부 (예를 들어, 10) 또는 우측 (예를 들어, 11) 으로부터 시작하는지 여부를 시그널링하기 위해 이용될 수도 있다. 또 다른 대안에서, 체인이 하부로부터 시작할 때, 시작 포지션은 체인들이 상부로부터 시작하는 것과 동일한 방식으로 초기화될 수도 있고, 디코딩된 파티션 패턴은 위 및 아래로 뒤집어진다. 체인들이 우측으로부터 시작할 때, 시작 포지션은 체인들이 좌측으로부터 시작하는 것과 동일한 방식으로 초기화될 수도 있고, 디코딩된 파티션 패턴은 우 및 좌로 뒤집어진다.
대안적으로, 좌측으로부터 시작하는 것을 나타내기 위해 1 비트가 이용될 수도 있을 것이고, 상부 또는 하부 중 어느 일방으로부터 시작하는 것을 나타내기 위해 2-비트가 이용될 수도 있다. 예를 들어, 0 은 좌측을 나타내고, 10 은 상부를 나타내고, 11 은 하부를 나타낸다. 일부 경우들에서, 하부로부터 시작할 때, 체인들은 PU 의 우측 경계에서 종단되어야 한다.
일예에서, 마지막 체인 포지션 및 체인들의 총 수의 도출은 또한 마지막 체인이 식별될 때까지 파싱된 체인 코드 워드들의 수에 기초하여 도출될 수 있다. 일예에서, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들은 예측 유닛 내에 있을 수도 있는 한편, 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있다. 마지막 엘리먼트의 포지션을 예측 유닛 밖에 갖는 것은 마지막 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수도 있다. 따라서, 디코더는 각 체인 코드 워드의 종단 좌표를 추적하고 파티셔닝 프로세스를 수행할 수도 있으며, 이는 일단 추가적인 체인 코드 워드가 경계 밖의 좌표에 대응하면 종결된다. 예를 들어, 체인들의 총 수를 저장하기 위한 변수가 0 으로 초기화될 수도 있다. 일부 예들에서, 파티셔닝 프로세스는 체인 코드 워드들의 디코딩 동안 수행되지 않을 수도 있을 것이다. 예를 들어, 파티셔닝 프로세스는 체인 코드 워드들의 전부가 디코딩된 후에 수행될 수도 있다. 체인 상의 로케이션을 나타내는 이전 인덱스는, 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하는 경우에 예를 들어 3 으로 초기화될 수도 있다. 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하지 않는 경우에 이전 인덱스는 1 로 초기화될 수도 있다.
일예는 체인 코드 워드에 대한 인덱스를 결정하기 위해 체인 코드 워드를 파싱할 수도 있다. 파싱된 체인 코드 워드에 기초하여, 디코더는 체인의 포지션이 경계 상에 있는지를 결정할 수도 있다. 이것은 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인지를 디코더가 결정하는 것을 허용한다. 체인들의 총 수는 또한 끝에서 두번째 엘리먼트에 기초하여 디코더에서 결정될 수도 있다.
일예에서, 체인 코드 워드를 파싱하는 것은 체인 코드 워드에 기초하여 xy 픽셀 방향 이동들을 결정하기 위해 룩업 테이블을 이용하는 것을 더 포함한다. 추가적으로, 다음 체인의 포지션이 경계 상에 있는지를 결정하기 위해 체크하는 것은, 룩업 테이블로부터의 xy 픽셀 방향 이동들에 기초하여 x 포지션 및 y 포지션을 설정하는 것을 더 포함한다. 다음 체인의 포지션은 x 포지션 및 y 포지션이 PU 내에 있지 않을 때 경계 상에 있다.
도 12 는 체인 코딩에서 마지막 체인 포지션의 도출을 나타내는 흐름도이다. 일예에서, 체인들이 시작하는 경계를 시그널링하는 플래그 start 및 시작 포지션 ( posx , posy ) 이 주어지면, 체인들의 총 수 num 는 다음 단계들에 의해 도출된다:
- 스텝 1 에서, 코더, 일반적으로 디코더는 num 을 0 으로 초기화할 수도 있고, 또한 idxPre 를 초기화할 수도 있다 (490). 체인들이 상부 또는 하부 경계로부터 시작하는 경우, idxPre 를 3 으로 설정하고, 그 외에는 idxPre 를 1 로 설정한다;
- 스텝 2 에서, 코더는 하나의 체인 코드 워드를 binCur 로 파싱하고, idxCur tabIdx [ idxPre ][ binCur ] 로 설정할 수도 있다 (492);
- 스텝 3 에서, 코더는 posx posx + tabDeltaX [ idxCur ] 로서, 그리고 posy posy + tabDeltaY [ idxCur ] 로서 설정하고, num num +1 로 설정하고 idxPre idxCur 로서 설정할 수도 있다. "0≤ posx <N 및 0≤ posy <N" 또는 " num ≤1" 인 경우에, 스텝 2 (492) 는 코더에 의해 반복될 수도 있다;
- 스텝 4 에서, 코더는 마지막 체인 포지션을 식별하고 num num -1 로서 설정할 수도 있다. 이 스텝은 선택적이다.
상기 스텝 3 에서, tabDeltaX tabDeltaY 는 표 7 에 나타낸 2 개의 사전 정의된 테이블들이다. 표 7 에서의 tabDeltaX tabDeltaY 의 값들은 현재 인덱스 값에 기초하여 x 및 y 포지션들에서의 변화들을 맵핑함으로써 체인의 엘리먼트들을 따른 PU 에서의 이동에 대해 제공한다. 다르게 말하면, 표 7 은 도 7 과 관련하여 논의된 인덱스 0 내지 7 에 기초하여 x 및 y 변화들에 대해 제공한다. 예를 들어, 도 7 에 도시된 바와 같이 좌측으로인 "0" 의 인덱스는 x 방향으로 -1 및 y 방향으로 0 의 이동을 포함할 것이다. 이들은 표 7 에 의해 제공되는 것과 동일한 값들이다.
유사하게, 도 7 에 도시된 "1" 의 인덱스에 대해, 우측으로의 이동으로서 x 방향으로 1 및 y 방향으로 0 의 이동을 포함할 것이다. 도 7 에 도시된 "2" 의 인덱스에 대해, 상방으로의 이동으로서 x 방향으로 0 및 y 방향으로 1 의 이동을 포함할 것이다. 도 7 에 도시된 "3" 의 인덱스에 대해, 하방으로의 이동으로서 x 방향으로 0 및 y 방향으로 -1 의 이동을 포함할 것이다. 방향들 "4", "5", "6", 및 "7" 과 같은 각도 방향들 또한 표 7 에 대해 제공되고, ±1 의 x 및 y 값들은 인덱스에 의해 특정되는 각도 방향에 의존한다.
표 7: 룩-업-테이블 tabDeltaX [ idxCur ] tabDeltaY [ idxCur ]
Figure pct00007
체인 코딩에서의 마지막 체인 포지션의 도출에 대한 흐름도가 도 11 에 도시된다. 일부 예들에서, 이것은 도 1 의 인코딩 유닛 (14) 및/또는 디코딩 유닛 (16) 중 어느 일방 또는 양자 모두와 같은 유닛들에서 이용될 수도 잇을 것이다.
일부 예들은 PU 의 하부 또는 우측 경계로부터 시작하는 체인 코딩을 지원할 수도 있다. 현재 PU 가 체인 코딩을 이용하여 코딩될 때, 2 비트가 파싱되어 2-비트 플래그 start 를 제공할 수도 있다. 플래그 start 는 체인이 시작하는 경계 (상부, 좌측, 하부, 또는 우측) 를 식별한다.
N×N 바이너리 블록일 수도 있는 파티션 패턴 pattern 이 재구성될 때, 예측 유닛을 뒤집기 위해 값들이 스왑핑될 수도 있다. 예측 유닛을 상-대-하로 뒤집는 것은 하부 시작부로부터 상부 시작부를 차별화하기 위해 이용될 수도 있다. 이것은, 0 에서부터 N/2-1 까지의 각각의 i 및 0 에서부터 N-1 까지의 각각의 j 에 대해 값 (i,j) 를 값 (N-1-i,j) 로 스왑핑 (swapping) 하는 것을 포함할 수도 있다. 유사하게, 예측 유닛을 우-대-좌로 뒤집는 것은 좌측 시작부 또는 우측 시작부로부터 차별화하기 위해 이용될 수도 있다. 이것은 0 에서부터 N-1 까지의 각각의 i 및 0 에서부터 N/2-1 까지의 각각의 j 에 대해 값 (i,j) 를 값 (N-1-i,j) 로 스왑핑하는 것을 포함할 수도 있다.
따라서, 이하의 내용이 적용될 수도 있고, 여기서, "=" 는 스왑 (swap) 을 나타낸다:
- 체인들이 하부 경계로부터 시작하는 경우, 0 에서부터 N/2-1 까지의 각각의 i 및 0 에서부터 N-1 까지의 각각의 j 에 대해, pattern (i,j)= pattern (N-1-i,j);
- 체인들이 우측 경계로부터 시작하는 경우, 0 에서부터 N-1 까지의 각각의 i 및 0 에서부터 N/2-1 까지의 각각의 j 에 대해, pattern ( i , j )= pattern ( i ,N-1- j ).
스왑 동작을 수행하기 위해, 체인이 하부 경계로부터 시작하는 경우에 다음의 것이 수행될 수도 있다:
temp = pattern (N-1- i , j );
pattern (N-1- i , j ) = pattern ( i , j );
pattern ( i , j ) = temp;
대안적으로, 체인이 우측 경계로부터 시작하는 경우에, 스왑 동작을 수행하기 위해 다음의 것이 수행될 수도 있다:
temp = pattern ( i ,N-1- j );
pattern ( i ,N-1- j ) = pattern ( i , j );
pattern ( i , j ) = temp;
도 13 은 이 개시물에서 설명된 하나 이상의 예들에 따른 예시적인 방법을 나타내는 흐름도이다. 인코딩 유닛 (14) 과 같은 인코더 또는 디코딩 유닛 (16) 과 같은 디코더는 도 13 의 방법을 이용하여 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩할 수도 있다. 체인의 엘리먼트들은 비디오 데이터의 예측 유닛을 파티셔닝할 수도 있다. 또한, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있을 수도 있다. 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있어 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타낼 수도 있다 (500).
인코더 또는 디코더는 체인에 기초하여 예측 유닛의 파티션들을 코딩할 수도 있다 (502). 예를 들어, 룩-업 테이블은 체인 인덱스의 체인 코드 워드의 도출에 대해 제공할 수도 있다. 현재 체인 인덱스 및 이전 체인 인덱스의 값은 체인 코드 워드를 결정하기 위해 룩-업 테이블에서 룩-업을 수행하기 위해 이용될 수도 있다. 이전 체인 인덱스의 값은 1 에 의해 오프셋된 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 나타내는 방향 인덱스 값들이다. 사용된 이전 체인 인덱스의 초기 값은 체인의 시작 포지션이다. 예를 들어, 상기 논의된 바와 같이, 도 8 에서 도시된 바와 같은 체인 인덱스들의 하나의 시리즈는 "3", "3", "3", "7", "1", "1", "1", "1" 이다. 각 체인 코드 워드는 바이너리 숫자들의 시퀀스로서 이진화될 수도 있다. 각 체인 코드 워드가 이진화된 후에, 각 바이너리 숫자는 엔트로피-코딩 엔진을 이용하여 인코딩될 수도 있다. 일부 예들에서, 이것은 도 1 의 인코딩 유닛 (14) 및/또는 디코딩 유닛 (16) 중 어느 일방 또는 양자 모두와 같은 유닛들에서 이용될 수도 있을 것이다. 도 13 의 방법은, 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 것을 포함하고, 여기서, 마지막 엘리먼트를 제외한 엘리먼트들의 포지션들의 각각은 예측 유닛 내에 있고, 마지막 엘리먼트의 포지션은 예측 유닛 밖에 있어 끝에서 두번째 엘리먼트가 체인의 마지막 엘리먼트인 것을 나타내며; 체인에 기초하여 예측 유닛의 파티션들을 코딩하는 것을 포함한다.
디코더에서, 파싱된 체인 코드 워드 및 그것의 이전 체인 인덱스는 현재 체인의 체인 인덱스를 도출하기 위해 이용될 수도 있다. 상기 논의된 바와 같이, 체인의 시작 포지션은 이전 체인 인덱스의 초기 값을 제공할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 컴퓨터 판독가능 매체 상에서 하나 이상의 명령들 또는 코드로서 저장되거나 송신될 수도 있으며, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체들을 포함할 수도 있으며, 이 컴퓨터 판독가능 저장 매체들은 데이터 저장 매체와 같은 유형의 매체, 또는 예컨대, 통신 프로토콜에 따라서 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체들에 대응한다. 이러한 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적인, 유형의 컴퓨터 판독가능 저장 매체, 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 이 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수도 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한적이 아니라 예시적으로, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수도 있다. 또한, 임의의 연결이 컴퓨터 판독가능 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파를 이용하여 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파가 그 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 연결들, 반송파들, 신호들, 또는 다른 일시성 매체를 포함하지 않고, 그 대신, 비-일시적인, 유형의 저장 매체에 지향되는 것을 이해하여야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본 명세서에서 사용될 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저들을 이용하여 데이터를 광학적으로 재생한다. 상기의 것들의 조합들이 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 로직 어레이들 (FPGAs), 또는 다른 등가의 통합 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 용어 "프로세서" 는, 본 명세서에서 사용될 때 전술한 구조 중 임의의 구조 또는 본 명세서에서 설명하는 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 또한, 일부 양태들에서, 본 명세서에서 설명하는 기능은 전용 하드웨어 및/또는 인코딩 및 디코딩을 위해 구성되는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 통합될 수도 있다. 또한, 이 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 전적으로 구현될 수 있을 것이다.
이 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC 들의 셋트 (예컨대, 칩 셋) 를 포함하는, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 개시된 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위해서 다양한 구성요소들, 모듈들, 또는 유닛들이 이 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 그보다는, 상기 설명한 바와 같이, 다양한 유닛들이 코덱 하드웨어 유닛에서 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음 청구항들에 의해 정의되는 본 발명의 범위 내이다.

Claims (48)

  1. 비디오 데이터를 코딩하는 방법으로서,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 단계로서, 마지막 엘리먼트를 제외한 상기 엘리먼트들의 상기 포지션들의 각각은 상기 예측 유닛 내에 있고, 상기 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 나타내기 위해 상기 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 단계; 및
    상기 체인에 기초하여 상기 예측 유닛의 파티션들을 코딩하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 예측 유닛을 코딩하는 것은,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 인코딩하는 것; 및
    상기 체인에 기초하여 상기 예측 유닛의 상기 파티션들을 인코딩하는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 예측 유닛을 코딩하는 것은,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 디코딩하는 것; 및
    상기 체인에 기초하여 상기 예측 유닛의 상기 파티션들을 디코딩하는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  4. 제 3 항에 있어서,
    각각의 체인 코드 워드의 종단 좌표를 추적하는 단계를 더 포함하고, 상기 추적은 일단 추가적인 체인 코드 워드가 경계 밖의 좌표에 대응하면 종결되는, 비디오 데이터를 코딩하는 방법.
  5. 제 4 항에 있어서,
    상기 각각의 체인 코드 워드의 종단 좌표를 추적하는 단계는,
    체인들의 총 수를 저장하기 위한 변수를 0 으로 초기화하는 단계;
    상기 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하는 경우 상기 체인의 로케이션을 나타내는 값을 포함하는 이전 인덱스를 3 으로 초기화하고, 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하지 않는 경우 상기 체인의 로케이션을 나타내는 값을 포함하는 상기 이전 인덱스를 1 로 초기화하는 단계;
    상기 체인 코드 워드에 대한 인덱스를 결정하기 위해 상기 체인 코드 워드를 파싱하는 단계;
    상기 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 결정하기 위해 상기 체인의 포지션이 경계 상에 있는지를 결정하는 단계; 및
    상기 끝에서 두번째 엘리먼트에 기초하여 상기 체인들의 총 수를 결정하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법.
  6. 제 5 항에 있어서,
    상기 체인 코드 워드를 파싱하는 단계는, 상기 체인 코드 워드에 기초하여 xy 픽셀 방향 이동들을 결정하기 위해 룩업 테이블을 이용하는 단계를 더 포함하고,
    다음 체인의 포지션이 상기 경계 상에 있는지를 결정하기 위해 체크하는 것은, 상기 룩업 테이블로부터의 상기 xy 픽셀 방향 이동들에 기초하여 x 포지션 및 y 포지션을 설정하는 것을 더 포함하고, 상기 다음 체인의 포지션은 상기 x 포지션 및 상기 y 포지션이 상기 예측 유닛의 상기 경계 내에 있지 않을 때 상기 경계 상에 있으며,
    상기 체인들의 총 수를 결정하는 단계는, 상기 다음 체인의 포지션이 상기 경계 상에 있다는 결정이 이루어질 때 상기 체인들의 총 수를 저장하기 위한 상기 변수로부터 1 을 차감하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  7. 제 1 항에 있어서,
    체인 시작 포지션을 코딩하는 것은,
    상기 체인이 상기 예측 유닛의 수평 에지 또는 수직 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 것;
    상기 데이터가 상기 체인이 수직 에지 상에서 시작하는 것을 나타내는 경우, 상기 체인이 상기 예측 유닛의 좌측 에지 또는 우측 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 것; 및
    상기 데이터가 상기 체인이 수평 에지 상에서 시작하는 것을 나타내는 경우, 상기 체인이 상기 예측 유닛의 상부 에지 또는 하부 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  8. 제 1 항에 있어서,
    체인 시작 포지션을 코딩하는 것은,
    상기 엘리먼트들의 포지션들을 나타내는 상기 데이터에 기초하여 상기 체인이 좌측 에지 또는 상부 에지 중 어느 일방에서 시작하는 상태로 상기 예측 유닛의 픽셀들이 제 1 파티션 또는 제 2 파티션에 속하는지 여부를 나타내는 파티션 맵을 생성하는 것;
    상기 체인이 우측 에지 상에서 시작하는 경우, 상기 파티션 맵을 수평으로 뒤집는 것; 및
    상기 체인이 하부 에지 상에서 시작하는 경우, 상기 파티션 맵을 수직으로 뒤집는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  9. 제 1 항에 있어서,
    체인 시작 포지션을 코딩하는 것은,
    상기 체인이 상기 예측 유닛의 수평 에지 또는 수직 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 것; 및
    상기 엘리먼트들의 포지션들을 나타내는 파티션 맵을, 하부 시작부로부터 상부 시작부를 구별하기 위해 상-대-하 (up-to-down) 로 뒤집고, 좌측 시작부 또는 우측 시작부로부터 구별하기 위해 우-대-좌 (right-to-left) 로 상기 파티션 맵을 뒤집는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  10. 제 9 항에 있어서,
    상기 예측 유닛을 하부 시작부로부터 상부 시작부를 구별하기 위해 상-대-하로 뒤집는 것은 0 에서부터 N/2-1 까지의 각각의 i 및 0 에서부터 N-1 까지의 각각의 j 에 대해 값 (i,j) 를 값 (N-1-i,j) 로 스왑핑 (swapping) 하는 것을 포함하고, 상기 예측 유닛을 좌측 시작부 또는 우측 시작부로부터 구별하기 위해 우-대-좌로 뒤집는 것은 0 에서부터 N-1 까지의 각각의 i 및 0 에서부터 N/2-1 까지의 각각의 j 에 대해 값 (i,j) 를 값 (N-1-i,j) 로 스왑핑하는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  11. 제 1 항에 있어서,
    상기 체인이 상기 예측 유닛의 상부 경계, 상기 예측 유닛의 좌측 경계, 상기 예측 유닛의 하부 경계, 또는 상기 예측 유닛의 우측 경계에서 시작하는지 여부를 나타내는 2 비트 플래그를 코딩하는 것을 포함하는, 체인 시작 포지션을 코딩하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  12. 제 11 항에 있어서,
    "00" 의 바이너리 값은 상부 에지를 나타내고, "01" 의 바이너리 값은 좌측 에지를 나타내며, "10" 의 바이너리 값은 하부 에지를 나타내고, "11" 의 바이너리 값은 우측 에지를 나타내는, 비디오 데이터를 코딩하는 방법.
  13. 제 1 항에 있어서,
    1 비트는 좌측 경계로부터 시작하는 것을 나타내고, 2-비트는 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하는 것을 나타내는, 비디오 데이터를 코딩하는 방법.
  14. 제 13 항에 있어서,
    하부 경계로부터 시작하는 경우, 상기 방법은 상기 예측 유닛의 우측 경계에서 상기 체인을 종단시키는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  15. 제 1 항에 있어서,
    비디오 데이터를 코딩하는 것은, 상기 예측 유닛에 대해 상기 체인에서의 엘리먼트들의 수를 나타내는 값을 코딩함이 없이 상기 체인에 기초하여 상기 예측 유닛의 상기 파티션들 및 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  16. 하나 이상의 프로세서들을 포함하는, 비디오 데이터를 코딩하기 위한 비디오 코더로서,
    상기 하나 이상의 프로세서들은,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하고; 그리고
    상기 체인에 기초하여 상기 예측 유닛의 파티션들을 코딩하도록 구성되며,
    마지막 엘리먼트를 제외한 상기 엘리먼트들의 상기 포지션들의 각각은 상기 예측 유닛 내에 있고, 상기 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 나타내기 위해 상기 예측 유닛 밖에 있는, 비디오 코더.
  17. 제 16 항에 있어서,
    상기 비디오 코더는,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 인코딩하고; 그리고
    상기 체인에 기초하여 상기 예측 유닛의 상기 파티션들을 인코딩하는, 비디오 코더.
  18. 제 16 항에 있어서,
    상기 비디오 코더는,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 디코딩하고; 그리고
    상기 체인에 기초하여 상기 예측 유닛의 상기 파티션들을 디코딩하는, 비디오 코더.
  19. 제 18 항에 있어서,
    상기 하나 이상의 프로세서들은 각각의 체인 코드 워드의 종단 좌표를 추적하도록 구성되고, 상기 추적은 일단 추가적인 체인 코드 워드가 경계 밖의 좌표에 대응하면 종결되는, 비디오 코더.
  20. 제 19 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 각각의 체인 코드 워드의 종단 좌표를 추적하도록 구성되고, 상기 추적은,
    체인들의 총 수를 저장하기 위한 변수를 0 으로 초기화하는 것;
    상기 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하는 경우 상기 체인의 로케이션을 나타내는 값을 포함하는 이전 인덱스를 3 으로 초기화하고, 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하지 않는 경우 상기 체인의 로케이션을 나타내는 값을 포함하는 상기 이전 인덱스를 1 로 초기화하는 것;
    상기 체인 코드 워드에 대한 인덱스를 결정하기 위해 상기 체인 코드 워드를 파싱하는 것;
    상기 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 결정하기 위해 상기 체인의 포지션이 경계 상에 있는지를 결정하는 것; 및
    상기 끝에서 두번째 엘리먼트에 기초하여 상기 체인들의 총 수를 결정하는 것을 포함하는, 비디오 코더.
  21. 제 20 항에 있어서,
    상기 체인 코드 워드를 파싱하는 것은 상기 체인 코드 워드에 기초하여 xy 픽셀 방향 이동들을 결정하기 위해 룩업 테이블을 이용하는 것을 더 포함하고,
    다음 체인의 포지션이 상기 경계 상에 있는지를 결정하기 위해 체크하는 것은, 상기 룩업 테이블로부터의 상기 xy 픽셀 방향 이동들에 기초하여 x 포지션 및 y 포지션을 설정하는 것을 더 포함하고, 상기 다음 체인의 포지션은 상기 x 포지션 및 상기 y 포지션이 상기 예측 유닛의 상기 경계 내에 있지 않을 때 상기 경계 상에 있으며,
    상기 체인들의 총 수를 결정하는 것은, 상기 다음 체인의 포지션이 상기 경계 상에 있다는 결정이 이루어질 때 상기 체인들의 총 수를 저장하기 위한 상기 변수로부터 1 을 차감하는 것을 더 포함하는, 비디오 코더.
  22. 제 16 항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 체인이 상기 예측 유닛의 수평 에지 또는 수직 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하고;
    상기 데이터가 상기 체인이 수직 에지 상에서 시작하는 것을 나타내는 경우, 상기 체인이 상기 예측 유닛의 좌측 에지 또는 우측 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하며; 그리고
    상기 데이터가 상기 체인이 수평 에지 상에서 시작하는 것을 나타내는 경우, 상기 체인이 상기 예측 유닛의 상부 에지 또는 하부 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하도록 구성되는, 비디오 코더.
  23. 제 16 항에 있어서,
    체인 시작 포지션을 코딩하는 것은,
    상기 엘리먼트들의 포지션들을 나타내는 상기 데이터에 기초하여 상기 체인이 좌측 에지 또는 상부 에지 중 어느 일방에서 시작하는 상태로 상기 예측 유닛의 픽셀들이 제 1 파티션 또는 제 2 파티션에 속하는지 여부를 나타내는 파티션 맵을 생성하는 것;
    상기 체인이 우측 에지 상에서 시작하는 경우, 상기 파티션 맵을 수평으로 뒤집는 것; 및
    상기 체인이 하부 에지 상에서 시작하는 경우, 상기 파티션 맵을 수직으로 뒤집는 것을 포함하는, 비디오 코더.
  24. 제 16 항에 있어서,
    체인 시작 포지션을 코딩하는 것은,
    상기 체인이 상기 예측 유닛의 수평 에지 또는 수직 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 것; 및
    상기 엘리먼트들의 포지션들을 나타내는 파티션 맵을, 하부 시작부로부터 상부 시작부를 구별하기 위해 상-대-하 (up-to-down) 로 뒤집고, 좌측 시작부 또는 우측 시작부로부터 구별하기 위해 우-대-좌 (right-to-left) 로 상기 파티션 맵을 뒤집는 것을 포함하는, 비디오 코더.
  25. 제 24 항에 있어서,
    상기 예측 유닛을 하부 시작부로부터 상부 시작부를 구별하기 위해 상-대-하로 뒤집는 것은 0 에서부터 N/2-1 까지의 각각의 i 및 0 에서부터 N-1 까지의 각각의 j 에 대해 값 (i,j) 를 값 (N-1-i,j) 로 스왑핑 (swapping) 하는 것을 포함하고, 상기 예측 유닛을 좌측 시작부 또는 우측 시작부로부터 구별하기 위해 우-대-좌로 뒤집는 것은 0 에서부터 N-1 까지의 각각의 i 및 0 에서부터 N/2-1 까지의 각각의 j 에 대해 값 (i,j) 를 값 (N-1-i,j) 로 스왑핑하는 것을 포함하는, 비디오 코더.
  26. 제 16 항에 있어서,
    상기 체인이 상기 예측 유닛의 상부 경계, 상기 예측 유닛의 좌측 경계, 상기 예측 유닛의 하부 경계, 또는 상기 예측 유닛의 우측 경계에서 시작하는지 여부를 나타내는 2 비트 플래그를 코딩하는 것을 포함하는, 체인 시작 포지션을 코딩하는 것을 더 포함하는, 비디오 코더.
  27. 제 16 항에 있어서,
    "00" 의 바이너리 값은 상부 에지를 나타내고, "01" 의 바이너리 값은 좌측 에지를 나타내며, "10" 의 바이너리 값은 하부 에지를 나타내고, "11" 의 바이너리 값은 우측 에지를 나타내는, 비디오 코더.
  28. 제 16 항에 있어서,
    1 비트는 좌측 경계로부터 시작하는 것을 나타내고, 2-비트는 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하는 것을 나타내는, 비디오 코더.
  29. 제 16 항에 있어서,
    하부 경계로부터 시작하는 경우, 상기 예측 유닛의 우측 경계에서 상기 체인을 종단시키는, 비디오 코더.
  30. 제 16 항에 있어서,
    비디오 데이터를 코딩하는 것은, 상기 예측 유닛에 대해 상기 체인에서의 엘리먼트들의 수를 나타내는 값을 코딩함이 없이 상기 체인에 기초하여 상기 예측 유닛의 상기 파티션들 및 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 것을 포함하는, 비디오 코더.
  31. 비디오 데이터를 코딩하기 위한 장치로서,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 수단으로서, 마지막 엘리먼트를 제외한 상기 엘리먼트들의 상기 포지션들의 각각은 상기 예측 유닛 내에 있고, 상기 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 나타내기 위해 상기 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 수단; 및
    상기 체인에 기초하여 상기 예측 유닛의 파티션들을 코딩하는 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  32. 제 31 항에 있어서,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 인코딩하는 수단으로서, 마지막 엘리먼트를 제외한 상기 엘리먼트들의 상기 포지션들의 각각은 상기 예측 유닛 내에 있고, 상기 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 나타내기 위해 상기 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 인코딩하는 수단; 및
    상기 체인에 기초하여 상기 예측 유닛의 파티션들을 인코딩하는 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  33. 제 31 항에 있어서,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 디코딩하는 수단으로서, 마지막 엘리먼트를 제외한 상기 엘리먼트들의 상기 포지션들의 각각은 상기 예측 유닛 내에 있고, 상기 마지막 엘리먼트의 포지션은 마지막 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 나타내기 위해 상기 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 디코딩하는 수단; 및
    상기 체인에 기초하여 상기 예측 유닛의 파티션들을 디코딩하는 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  34. 제 33 항에 있어서,
    각각의 체인 코드 워드의 종단 좌표를 추적하는 수단을 포함하고, 상기 추적은 일단 추가적인 체인 코드 워드가 경계 밖의 좌표에 대응하면 종결되는, 비디오 데이터를 코딩하기 위한 장치.
  35. 제 34 항에 있어서,
    체인들의 총 수를 저장하기 위한 변수를 0 으로 초기화하는 수단;
    상기 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하는 경우 상기 체인의 로케이션을 나타내는 값을 포함하는 이전 인덱스를 3 으로 초기화하는 수단, 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하지 않는 경우 상기 체인의 로케이션을 나타내는 값을 포함하는 상기 이전 인덱스를 1 로 초기화하는 수단;
    상기 체인 코드 워드에 대한 인덱스를 결정하기 위해 상기 체인 코드 워드를 파싱하는 수단;
    상기 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 결정하기 위해 상기 체인의 포지션이 경계 상에 있는지를 결정하는 수단; 및
    상기 끝에서 두번째 엘리먼트에 기초하여 상기 체인들의 총 수를 결정하는 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  36. 제 35 항에 있어서,
    상기 체인 코드 워드를 파싱하는 수단은 상기 체인 코드 워드에 기초하여 xy 픽셀 방향 이동들을 결정하기 위해 룩업 테이블을 이용하는 것을 더 포함하고,
    다음 체인의 포지션이 상기 경계 상에 있는지를 결정하기 위해 체크하는 것은, 상기 룩업 테이블로부터의 상기 xy 픽셀 방향 이동들에 기초하여 x 포지션 및 y 포지션을 설정하는 수단을 더 포함하고, 상기 다음 체인의 포지션은 상기 x 포지션 및 상기 y 포지션이 상기 예측 유닛의 상기 경계 내에 있지 않을 때 상기 경계 상에 있으며,
    상기 체인들의 총 수를 결정하는 수단은, 상기 다음 체인의 포지션이 상기 경계 상에 있다는 결정이 이루어질 때 상기 체인들의 총 수를 저장하기 위한 상기 변수로부터 1 을 차감하는 것을 더 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  37. 제 31 항에 있어서,
    상기 체인이 상기 예측 유닛의 수평 에지 또는 수직 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 수단;
    상기 데이터가 상기 체인이 수직 에지 상에서 시작하는 것을 나타내는 경우, 상기 체인이 상기 예측 유닛의 좌측 에지 또는 우측 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 수단; 및
    상기 데이터가 상기 체인이 수평 에지 상에서 시작하는 것을 나타내는 경우, 상기 체인이 상기 예측 유닛의 상부 에지 또는 하부 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  38. 제 31 항에 있어서,
    상기 엘리먼트들의 포지션들을 나타내는 상기 데이터에 기초하여 상기 체인이 좌측 에지 또는 상부 에지 중 어느 일방에서 시작하는 상태로 상기 예측 유닛의 픽셀들이 제 1 파티션 또는 제 2 파티션에 속하는지 여부를 나타내는 파티션 맵을 생성하는 수단;
    상기 체인이 우측 에지 상에서 시작하는 경우, 상기 파티션 맵을 수평으로 뒤집는 수단; 및
    상기 체인이 하부 에지 상에서 시작하는 경우, 상기 파티션 맵을 수직으로 뒤집는 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  39. 제 31 항에 있어서,
    상기 예측 유닛에 대해 상기 체인에서의 엘리먼트들의 수를 나타내는 값을 코딩함이 없이 상기 체인에 기초하여 상기 예측 유닛의 상기 파티션들 및 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 수단을 더 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  40. 명령들을 저장한 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 명령들은, 실행될 때, 디바이스의 하나 이상의 프로세서들로 하여금,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 단계로서, 마지막 엘리먼트를 제외한 상기 엘리먼트들의 상기 포지션들의 각각은 상기 예측 유닛 내에 있고, 상기 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 나타내기 위해 상기 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하는 단계; 및
    상기 체인에 기초하여 상기 예측 유닛의 파티션들을 코딩하는 단계
    를 수행하게 하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  41. 제 40 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    실행될 때 상기 디바이스의 하나 이상의 프로세서들로 하여금,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 인코딩하는 단계로서, 마지막 엘리먼트를 제외한 상기 엘리먼트들의 상기 포지션들의 각각은 상기 예측 유닛 내에 있고, 상기 마지막 엘리먼트의 포지션은 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 나타내기 위해 상기 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 인코딩하는 단계; 및
    상기 체인에 기초하여 상기 예측 유닛의 파티션들을 인코딩하는 단계
    를 수행하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  42. 제 40 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    실행될 때 디바이스의 하나 이상의 프로세서들로 하여금,
    비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 디코딩하는 단계로서, 마지막 엘리먼트를 제외한 상기 엘리먼트들의 상기 포지션들의 각각은 상기 예측 유닛 내에 있고, 상기 마지막 엘리먼트의 포지션은 마지막 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 나타내기 위해 상기 예측 유닛 밖에 있는, 상기 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 디코딩하는 단계; 및
    상기 체인에 기초하여 상기 예측 유닛의 파티션들을 디코딩하는 단계
    를 수행하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  43. 제 42 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    실행될 때 디바이스의 하나 이상의 프로세서들로 하여금, 각각의 체인 코드 워드의 종단 좌표를 추적하게 하는 명령들을 더 포함하고,
    상기 추적은 일단 추가적인 체인 코드 워드가 경계 밖의 좌표에 대응하면 종결되는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  44. 제 43 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    실행될 때 디바이스의 하나 이상의 프로세서들로 하여금,
    체인들의 총 수를 저장하기 위한 변수를 0 으로 초기화하게 하고;
    상기 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하는 경우 상기 체인의 로케이션을 나타내는 값을 포함하는 이전 인덱스를 3 으로 초기화하게 하고, 체인이 상부 경계 또는 하부 경계 중 어느 일방으로부터 시작하지 않는 경우 상기 체인의 로케이션을 나타내는 값을 포함하는 상기 이전 인덱스를 1 로 초기화하게 하며;
    상기 체인 코드 워드에 대한 인덱스를 결정하기 위해 상기 체인 코드 워드를 파싱하게 하고;
    상기 끝에서 두번째 엘리먼트가 상기 체인의 마지막 엘리먼트인 것을 결정하기 위해 상기 체인의 포지션이 경계 상에 있는지를 결정하게 하며; 그리고
    상기 끝에서 두번째 엘리먼트에 기초하여 상기 체인들의 총 수를 결정하게 하는
    명령들을 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  45. 제 44 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    실행될 때 디바이스의 하나 이상의 프로세서들로 하여금,
    상기 체인 코드 워드에 기초하여 xy 픽셀 방향 이동들을 결정하기 위해 상기 체인 코드 워드를 파싱하기 위해 룩업 테이블을 이용하는 단계;
    다음 체인의 포지션이 상기 경계 상에 있는지를 결정하기 위해 체크하기 위해, 상기 룩업 테이블로부터의 상기 xy 픽셀 방향 이동들에 기초하여 x 포지션 및 y 포지션을 설정하는 단계로서, 상기 다음 체인의 포지션은 상기 x 포지션 및 상기 y 포지션이 상기 예측 유닛의 상기 경계 내에 있지 않을 때 상기 경계 상에 있는, 상기 x 포지션 및 y 포지션을 설정하는 단계; 및
    상기 체인들의 총 수를 결정하기 위해, 상기 다음 체인의 포지션이 상기 경계 상에 있다는 결정이 이루어질 때 상기 체인들의 총 수를 저장하기 위한 상기 변수로부터 1 을 차감하는 단계
    를 수행하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  46. 제 40 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    실행될 때 디바이스의 하나 이상의 프로세서들로 하여금,
    상기 체인이 상기 예측 유닛의 수평 에지 또는 수직 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 단계;
    상기 데이터가 상기 체인이 수직 에지 상에서 시작하는 것을 나타내는 경우, 상기 체인이 상기 예측 유닛의 좌측 에지 또는 우측 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 단계; 및
    상기 데이터가 상기 체인이 수평 에지 상에서 시작하는 것을 나타내는 경우, 상기 체인이 상기 예측 유닛의 상부 에지 또는 하부 에지 상에서 시작하는지 여부를 나타내는 데이터를 코딩하는 단계
    를 수행하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  47. 제 40 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    실행될 때 디바이스의 하나 이상의 프로세서들로 하여금,
    상기 엘리먼트들의 포지션들을 나타내는 상기 데이터에 기초하여 상기 체인이 좌측 에지 또는 상부 에지 중 어느 일방에서 시작하는 상태로 상기 예측 유닛의 픽셀들이 제 1 파티션 또는 제 2 파티션에 속하는지 여부를 나타내는 파티션 맵을 생성하는 단계;
    상기 체인이 우측 에지 상에서 시작하는 경우, 상기 파티션 맵을 수평으로 뒤집는 단계; 및
    상기 체인이 하부 에지 상에서 시작하는 경우, 상기 파티션 맵을 수직으로 뒤집는 단계
    를 수행하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  48. 제 40 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    실행될 때 디바이스의 하나 이상의 프로세서들로 하여금,
    비디오 데이터를 코딩하기 위해, 상기 예측 유닛에 대해 상기 체인에서의 엘리먼트들의 수를 나타내는 값을 코딩함이 없이 상기 체인에 기초하여 상기 예측 유닛의 상기 파티션들 및 비디오 데이터의 예측 유닛을 파티셔닝하는 체인의 엘리먼트들의 포지션들을 나타내는 데이터를 코딩하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020157010658A 2012-09-24 2012-09-24 심도 맵 코딩 KR20150063468A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/001296 WO2014043828A1 (en) 2012-09-24 2012-09-24 Depth map coding

Publications (1)

Publication Number Publication Date
KR20150063468A true KR20150063468A (ko) 2015-06-09

Family

ID=50340503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157010658A KR20150063468A (ko) 2012-09-24 2012-09-24 심도 맵 코딩

Country Status (6)

Country Link
US (1) US20150229957A1 (ko)
EP (1) EP2898697A4 (ko)
JP (1) JP6158337B2 (ko)
KR (1) KR20150063468A (ko)
CN (1) CN104662908B (ko)
WO (1) WO2014043828A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI815295B (zh) 2010-04-13 2023-09-11 美商Ge影像壓縮有限公司 樣本區域合併技術
CN106358045B (zh) 2010-04-13 2019-07-19 Ge视频压缩有限责任公司 解码器、解码方法、编码器以及编码方法
BR122020007923B1 (pt) 2010-04-13 2021-08-03 Ge Video Compression, Llc Predição interplano
KR102159896B1 (ko) 2010-04-13 2020-09-25 지이 비디오 컴프레션, 엘엘씨 샘플 배열 멀티트리 세부분할에서 계승
WO2013129822A1 (ko) 2012-02-27 2013-09-06 세종대학교산학협력단 영상 부호화와 복호화 장치 및 영상을 부호화와 복호화하는 방법
KR20130098122A (ko) * 2012-02-27 2013-09-04 세종대학교산학협력단 영상 부호화/복호화 장치 및 영상을 부호화/복호화하는 방법
KR20150116840A (ko) * 2013-01-02 2015-10-16 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR102216585B1 (ko) * 2013-01-04 2021-02-17 삼성전자주식회사 깊이 영상의 부호화 장치 및 복호화 장치, 부호화 방법 및 복호화 방법
CN105409215B (zh) * 2013-01-11 2018-10-09 华为技术有限公司 深度预测模式选择方法及装置
WO2015000168A1 (en) * 2013-07-05 2015-01-08 Mediatek Singapore Pte. Ltd. A simplified dc prediction method in intra prediction
CN105556972B (zh) * 2013-07-18 2019-04-05 三星电子株式会社 用于层间视频解码和编码设备和方法的对深度图像的场景内预测方法
US20170214939A1 (en) * 2014-03-31 2017-07-27 Samsung Electronics Co., Ltd. Method and apparatus for encoding or decoding depth image
CN107659823B (zh) 2014-06-26 2020-07-14 华为技术有限公司 一种帧内深度图像块解码的方法及装置
US11212553B2 (en) * 2017-11-28 2021-12-28 Electronics And Telecommunications Research Institute Bidirectional intra prediction method and apparatus
EP3554082A1 (en) * 2018-04-11 2019-10-16 InterDigital VC Holdings, Inc. A method and device for coding the geometry of a point cloud
TWI822842B (zh) 2018-08-28 2023-11-21 大陸商北京字節跳動網絡技術有限公司 擴展四叉樹的限制
CN113039793A (zh) * 2018-10-01 2021-06-25 Op方案有限责任公司 指数分区的方法与系统
CN113711593A (zh) * 2019-03-12 2021-11-26 弗劳恩霍夫应用研究促进协会 实现高效率的基于分区的帧内编码构思

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5913786B2 (ja) * 1979-09-04 1984-03-31 日本電信電話株式会社 画像信号符号化処理方式
JP3562661B2 (ja) * 1994-12-12 2004-09-08 ソニー株式会社 画像信号符号化方法及び画像信号復号方法
KR100203266B1 (ko) * 1996-07-09 1999-06-15 윤종용 윤곽선복호화장치
US5956428A (en) * 1997-05-19 1999-09-21 Ausbeck, Jr.; Paul James Stroke code for image partitions
DE69913312T2 (de) * 1998-09-29 2004-09-30 Koninklijke Philips Electronics N.V. Verfahren zum Decodieren segmentierter Bilder und Anordnung dazu
KR100987764B1 (ko) * 2003-09-04 2010-10-13 경희대학교 산학협력단 영상 데이터의 예측 부호화를 위한 참조 데이터 유닛 결정방법 및 그 장치
JP2007043651A (ja) * 2005-07-05 2007-02-15 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
JP4207072B2 (ja) * 2006-04-07 2009-01-14 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
EP2360562B1 (en) * 2008-11-11 2015-04-08 Sony Computer Entertainment Inc. Image processing device, information processing device, image processing method, and information processing method
CN102156825A (zh) * 2011-03-28 2011-08-17 重庆大学 一种基于数据挖掘的癌症疫苗试验数据编码及处理方法
EP2744201A4 (en) * 2011-08-09 2016-03-23 Samsung Electronics Co Ltd METHOD AND DEVICE FOR CODING A DEPTH CARD OF VIDEO DATA WITH MULTIPLE VIEWPOINTS AND METHOD AND DEVICE FOR DECODING THE CODED DEPTH CARD
WO2013042912A2 (ko) * 2011-09-21 2013-03-28 엘지전자 주식회사 영상 부호화/복호화 방법 및 그 장치
US8929664B2 (en) * 2012-05-30 2015-01-06 Analog Devices, Inc. Shape detection using chain code states

Also Published As

Publication number Publication date
CN104662908A (zh) 2015-05-27
JP2015533036A (ja) 2015-11-16
CN104662908B (zh) 2018-03-30
JP6158337B2 (ja) 2017-07-05
WO2014043828A1 (en) 2014-03-27
EP2898697A1 (en) 2015-07-29
US20150229957A1 (en) 2015-08-13
EP2898697A4 (en) 2016-10-19

Similar Documents

Publication Publication Date Title
JP6158337B2 (ja) 深度マップコーディング
JP7233218B2 (ja) ビデオコーディングのためにブロックの複数のクラスのためのフィルタをマージすること
CA3000373C (en) Video intra-prediction using position dependent prediction combination for video coding
JP6046246B2 (ja) 3dビデオコーディングのための深度マップのイントラコーディング
KR102227898B1 (ko) 비디오 코딩에서 부호 데이터 은닉의 디스에이블링
AU2012328924C1 (en) Determining boundary strength values for deblocking filtering for video coding
EP3158738B1 (en) Block vector coding for intra block copying
JP6162150B2 (ja) ビデオコーディング用の残差4分木(rqt)コーディング
JP5805850B2 (ja) ビデオコード化における動きベクトル予測
KR101858885B1 (ko) 비디오 코딩을 위한 모션 벡터 결정
JP6144333B2 (ja) レートひずみ最適量子化におけるレベル決定
JP6081499B2 (ja) 変換係数コーディングのためのコンテキスト導出における走査ベーススライディングウィンドウ
JP6231109B2 (ja) コンテキスト適応型、マルチレベル有意性コーディングに関するコンテキスト導出
EP2952000B1 (en) Unification of signaling lossless coding mode and pulse code modulation (pcm) mode in video coding
JP2018537908A (ja) ビデオデータの符号情報をコーディングすること
US20130101031A1 (en) Determining quantization parameters for deblocking filtering for video coding
JP2018507616A (ja) 予測ユニットの柔軟な区分化
JP2017508345A (ja) 予測ブロックからのイントラ予測
JP2015529065A (ja) スケーラブルビデオコーディングおよび3dビデオコーディングのための多重仮説動き補償
KR20140043807A (ko) 적응적 모션 벡터 해상도를 이용한 비디오 코딩

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid