KR20130118250A - 깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법 - Google Patents

깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법 Download PDF

Info

Publication number
KR20130118250A
KR20130118250A KR1020130041663A KR20130041663A KR20130118250A KR 20130118250 A KR20130118250 A KR 20130118250A KR 1020130041663 A KR1020130041663 A KR 1020130041663A KR 20130041663 A KR20130041663 A KR 20130041663A KR 20130118250 A KR20130118250 A KR 20130118250A
Authority
KR
South Korea
Prior art keywords
macroblock
mode
prediction
intra
encoding
Prior art date
Application number
KR1020130041663A
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 삼성전자주식회사
Priority to PCT/KR2013/003199 priority Critical patent/WO2013157822A1/ko
Publication of KR20130118250A publication Critical patent/KR20130118250A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법이 개시된다. 깊이 영상의 특성에 따라 깊이 인트라 스킵 예측 방식 또는 평면 분할 기반의 인트라 예측 방식을 적용하여 깊이 영상을 부호화 및 복호화할 수 있다.

Description

깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법 {APPARATUS AND METHOD FOR ENCDOING AND DECODING OF DEPTH IMAGE}
일실시예들은 깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법에 관한 것으로, 보다 구체적으로는 깊이 영상을 효율적으로 부호화하고 복호화하는 장치 및 방법이 제안된다.
입체 영상이란 깊이 및 공간에 대한 형상 정보를 동시에 제공하는 3차원 영상을 말한다. 이때, 단순히 좌우 눈에 각각 다른 시점의 영상을 제공하는 스테레오와는 달리 관찰자가 보는 시점을 달리할 때마다 다른 방향에서 본 것과 같은 영상을 제공하기 위해서는, 여러 시점에서 촬영한 영상이 필요하다. 여러 시점에서 촬영한 영상을 이용한 응용분야는 자유시점 TV, 3차원 TV 등이 존재한다. 자유시점 TV는 동일 장면에 대해 다시점 영상을 획득 후 분석하여 사물을 바라보는 시점을 자유롭게 변경할 수 있으며, 3차원 TV의 경우 사람의 양쪽 눈에 비치는 영상을 달리함으로써 사실적인 3차원 깊이를 인지할 수 있도록 한다. 그러나 여러 시점에서 찍은 영상은 데이터량이 방대하기 때문에 압축하여 전송하려면 네트워크 인프라, 지상파 대역폭 등의 확보에 많은 어려움이 따른다.
여러 시점의 비디오를 모두 압축 전송하는 대신 깊이 영상을 만들어, 여러 시점의 영상 중에서 일부 시점의 영상과 함께 압축 전송하면 압축시 발생하는 데이터량을 줄일 수 있다. 깊이 영상은 칼라영상에서 물체가 시청자와 떨어져 있는 거리를 0~255의 값으로 나타낸 영상이기 때문에, 그 특징이 칼라영상과 비슷하다. 그래서, 깊이 영상은 일반적으로 컬러 영상과 비슷한 영상 포맷으로 표현이 가능하다. 그래서, 깊이 영상을 부호화할 때 컬러 영상에서 사용되는 H.264/AVC와 같은 비디오 코덱을 활용할 수 있다.
하지만, 깊이 영상은 컬러 영상과는 크게 다른 특성을 나타낸다. 구체적으로, 깊이 영상은 객체의 경계(edge)와 같이 깊이값이 변화하는 영역을 제외하고, 대부분 평탄(flat) 영역을 포함한다. 그래서, 깊이 영상은 컬러 영상보다 상대적으로 많은 저주파 성분을 가지고 있다. 여기서, 평탄 영역은 동일한 픽셀값을 갖는 영역을 의미한다.
또한, 깊이 영상은 컬러 영상에 비해 상대적으로 공간적인 상관도가 매우 높다. 여기서, 공간적인 상관도는 깊이 영상에서 인접한 픽셀들 간의 유사도를 나타낸다. 하지만, H.264/AVC와 같은 영상 코덱에서 사용되는 공간적 예측 방법은 컬러 영상의 특징을 고려하여 설정된 것이다. 여기서, 공간적 예측 방법은 움직임 예측(motion prediction)을 기반으로 프레임간의 중복성을 제거하는 것을 의미한다. 결국, 컬러 영상을 고려하여 설정된 영상 코덱을 깊이 영상을 부호화할 때 적용하면 부호화 효율이 낮아질 수 있다.
그래서, 깊이 영상의 특징을 고려하여 깊이 영상을 효율적으로 부호화/복호화하는 방법이 요구된다.
일실시예에 따른 부호화 방법은 깊이 영상의 매크로블록 모드가 인트라 예측 모드인지 여부를 판단하는 단계; 상기 매크로블록 모드가 인트라 예측 모드인 경우, 매크로블록의 방향성을 예측하는 단계; 및 상기 방향성을 고려하여 매크로블록을 깊이 인트라 스킵 예측에 따라 부호화하는 단계를 포함할 수 있다.
상기 판단하는 단계는, 상기 매크로블록 모드가 인트라 16x16 모드인지 여부를 판단할 수 있다.
상기 매크로블록의 방향성을 예측하는 단계는, 상기 매크로블록 모드가 인트라 16x16 모드인 경우, 매크로블록의 주변 블록을 고려하여 매크로블록의 방향성을 예측하고, 상기 매크로블록 모드가 인트라 16x16 모드가 아닌 경우, 미리 설정된 복수의 방향들 중 비용 함수롤 고려하여 매크로블록을 위한 최적의 방향성을 선택할 수 있다.
상기 매크로블록의 방향성을 예측하는 단계는, 매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들을 이용하여 매크로블록의 방향성을 예측할 수 있다.
상기 매크로블록의 방향성을 예측하는 단계는, 매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들 각각의 변화 횟수(NOC: number of change)를 이용하여 매크로블록의 방향성을 예측할 수 있다.
상기 부호화하는 단계는, 매크로블록의 방향성이 인트라 16x16 예측의 수직 방향(vertical direction), 수평 방향(horizontal direction) 및, DC 방향(DC direction) 중 어느 하나의 방향성을 나타내는 경우, 매크로블록을 깊이 인트라 스킵 예측에 따라 부호화할 수 있다.
상기 깊이 인트라 스킵 예측은, 상기 매크로블록이 앵커 프레임에 속하는 경우, SKIP 모드로 이용되고, 상기 매크로블록이 논 앵커 프레임에 속하는 경우, DIRECT 모드로 이용될 수 있다.
상기 부호화하는 단계는, 상기 매크로블록이 깊이 인트라 스킵 예측에 따라 부호화되었는지를 나타내는 플래그를 매크로블록마다 시그널링 할 수 있다.
일실시예에 따른 부호화 방법은 상기 매크로블록이 깊이 인트라 스킵 예측에 따라 부호화하는 경우, 경계 강도가 조절된 디블록킹 필터링을 수행하는 단계를 더 포함할 수 있다.
상기 매크로블록 모드는, 인트라 예측 모드가 인터 예측 모드보다 우선 순위가 높게 설정되고, 양방향 예측과 관련된 예측 모드는 제거되거나 우선 순위가 낮게 설정될 수 있다.
다른 실시예에 따른 부호화 방법은 깊이 영상의 매크로블록의 주변 픽셀들을 복수의 그룹으로 분할하는 단계; 상기 분할된 그룹을 고려하여 상기 매크로블록을 예측하는 단계; 및 상기 예측의 결과에 기초하여 매크로블록을 부호화하는 단계를 포함할 수 있다.
상기 분할하는 단계는, 상기 매크로블록의 상위 라인 및 왼쪽 라인의 사용가능한(available) 픽셀들을 복수의 그룹으로 분할할 수 있다.
상기 분할하는 단계는, 상기 매크로블록의 상위 라인 및 왼쪽 라인의 사용가능한(available) 픽셀들을 이용하여 기준값을 계산하고, 기준값을 고려하여 복수의 그룹으로 분할할 수 있다.
상기 예측하는 단계는, 상기 분할된 그룹에 속한 주변 픽셀들을 이용하여 각 그룹별로 대표값을 설정하고, 상기 매크로블록에 포함된 현재 픽셀들을 대표값에 기초하여 예측할 수 있다.
상기 부호화하는 단계는, 상기 매크로블록에 포함된 현재 픽셀을 예측할 때 사용된 대표값을 예측맵으로 설정하여 부호화할 수 있다.
상기 예측맵은, 미리 설정된 패턴 코드에 따라 행(row) 방향 또는 열(column) 방향으로 부호화될 수 있다.
상기 예측맵은, 행(row) 방향 또는 열(column) 방향으로 패턴 코드 간의 차분값으로 부호화될 수 있다.
일실시예에 따른 복호화 방법은 깊이 영상에 포함된 매크로블록의 부호화 모드가 깊이 인트라 스킵 예측에 기초한 인트라 예측 모드인지 여부를 판단하는 단계; 상기 부호화 모드가 인트라 예측 모드인 경우, 매크로블록의 방향성을 예측하는 단계; 및 상기 방향성을 고려하여 매크로블록을 인트라 복호화하는 단계를 포함할 수 있다.
상기 판단하는 단계는, 상기 매크로블록 모드가 인트라 16x16 모드인지 여부를 판단할 수 있다.
상기 매크로블록의 방향성을 예측하는 단계는, 상기 매크로블록 모드가 인트라 16x16 모드인 경우, 매크로블록의 주변 블록을 고려하여 매크로블록의 방향성을 예측하고, 상기 매크로블록 모드가 인트라 16x16 모드가 아닌 경우, 부호화 장치로부터 전달된 방향성을 이용할 수 있다.
상기 매크로블록의 방향성을 예측하는 단계는, 매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들을 이용하여 매크로블록의 방향성을 예측할 수 있다.
상기 매크로블록의 방향성을 예측하는 단계는, 매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들 각각의 변화 횟수(NOC: number of change)를 이용하여 매크로블록의 방향성을 예측할 수 있다.
상기 복호화하는 단계는, 예측된 매크로블록의 방향성을 이용하여 매크로블록을 인트라 예측에 따라 복호화할 수 있다.
상기 깊이 인트라 스킵 예측은, 상기 매크로블록이 앵커 프레임에 속하는 경우, SKIP 모드로 이용되고, 상기 매크로블록이 논 앵커 프레임에 속하는 경우, DIRECT 모드로 이용될 수 있다.
상기 판단하는 단계는, 상기 매크로블록이 깊이 인트라 스킵 예측에 따라 부호화되었는지를 나타내는 플래그를 이용하여 깊이 인트라 스킵 예측에 기초한 인트라 예측 모드인지 여부를 판단할 수 있다.
일실시예에 따른 복호화 방법은 상기 매크로블록이 인트라 복호화되는 경우, 경계 강도가 조절된 디블록킹 필터링을 수행하는 단계를 더 포함할 수 있다.
상기 매크로블록 모드는, 인트라 예측 모드가 인터 예측 모드보다 우선 순위가 높게 설정되고, 양방향 예측과 관련된 예측 모드는 제거되거나 우선 순위가 낮게 설정될 수 있다.
다른 실시예에 따른 복호화 방법은 깊이 영상의 매크로블록의 주변 픽셀들을 복수의 그룹으로 분할하는 단계; 상기 분할된 그룹의 대표값을 결정하는 단계; 비트스트림으로부터 매크로블록과 관련된 예측맵을 복호화하는 단계; 상기 예측맵을 이용하여 매크로블록에 포함된 현재 픽셀의 예측값을 복호화하는 단계; 상기 비트스트림으로부터 현재 픽셀의 예측 결과로 도출된 잔차 신호를 복호화하는 단계; 및 상기 현재 픽셀의 예측값과 잔차 신호를 이용하여 매크로블록을 복원하는 단계를 포함할 수 있다.
상기 분할하는 단계는, 상기 매크로블록의 상위 라인 및 왼쪽 라인의 사용가능한(available) 픽셀들을 복수의 그룹으로 분할할 수 있다.
상기 분할하는 단계는, 상기 매크로블록의 상위 라인 및 왼쪽 라인의 사용가능한(available) 픽셀들을 이용하여 기준값을 계산하고, 기준값을 고려하여 복수의 그룹으로 분할할 수 있다.
상기 대표값을 결정하는 단계는, 상기 분할된 그룹에 속한 주변 픽셀들을 이용하여 각 그룹별로 대표값을 결정할 수 있다.
상기 예측맵은, 상기 매크로블록에 포함된 현재 픽셀을 예측할 때 사용된 대표값과 현재 픽셀과의 매칭 관계를 나타낼 수 있다.
상기 예측맵은, 미리 설정된 패턴 코드에 따라 행(row) 방향 또는 열(column) 방향으로 부호화되어 비트스트림에 포함될 수 있다.
상기 예측맵은, 행(row) 방향 또는 열(column) 방향으로 패턴 코드 간의 차분값으로 부호화되어 비트스트림에 포함될 수 있다.
또 다른 실시예에 따른 부호화 방법은 깊이 영상에서 깊이값의 변화를 이용하여 평탄 영역인지 또는 객체의 경계 영역인지 여부를 판단하는 단계; 및 상기 평탄 영역인 경우, 깊이 인트라 스킵 예측(DISP: Depth Intra SKIP Prediction)에 따라 부호화하고, 상기 경계 영역인 경우, 평면 분할 기반의 인트라 예측(PSIP: Plane Segmentation based Intra Prediction)에 기초하여 부호화하는 단계를 포함할 수 있다.
상기 평탄 영역은, 깊이값의 변화가 미리 설정된 범위보다 작은 영역을 나타내고, 상기 경계 영역은, 깊이값의 변화가 미리 설정된 범위보다 크거가 같은 영역을 나타낼 수 있다.
또 다른 실시예에 따른 복호화 방법은 깊이 영상에서 깊이값의 변화를 이용하여 평탄 영역인지 또는 객체의 경계 영역인지 여부를 판단하는 단계; 상기 평탄 영역인 경우, 깊이 인트라 스킵 예측(DISP: Depth Intra SKIP Prediction)에 따라 부호화하고, 상기 경계 영역인 경우, 평면 분할 기반의 인트라 예측(PSIP: Plane Segmentation based Intra Prediction)에 기초하여 복호화하는 단계를 포함할 수 있다.
상기 평탄 영역은, 깊이값의 변화가 미리 설정된 범위보다 작은 영역을 나타내고, 상기 경계 영역은, 깊이값의 변화가 미리 설정된 범위보다 크거가 같은 영역을 나타낼 수 있다.
부호화 방법을 수행하는 적어도 하나의 프로세스를 포함하는 부호화 장치에 있어서, 상기 프로세스는, 깊이 영상의 매크로블록 모드가 인트라 예측 모드인지 여부를 판단하는 단계; 상기 매크로블록 모드가 인트라 예측 모드인 경우, 매크로블록의 방향성을 예측하는 단계; 및 상기 방향성을 고려하여 매크로블록을 깊이 인트라 스킵 예측에 따라 부호화하는 단계를 포함하는 부호화 방법을 수행할 수 있다.
부호화 방법을 수행하는 적어도 하나의 프로세스를 포함하는 부호화 장치에 있어서, 상기 프로세스는, 깊이 영상의 매크로블록의 주변 픽셀들을 복수의 그룹으로 분할하는 단계; 상기 분할된 그룹을 고려하여 상기 매크로블록을 예측하는 단계; 상기 예측의 결과에 기초하여 매크로블록을 부호화하는 단계를 포함하는 부호화 방법을 수행할 수 있다.
복호화 방법을 수행하는 적어도 하나의 프로세스를 포함하는 복호화 장치에 있어서, 상기 프로세스는, 깊이 영상에 포함된 매크로블록의 부호화 모드가 깊이 인트라 스킵 예측에 기초한 인트라 예측 모드인지 여부를 판단하는 단계; 상기 부호화 모드가 인트라 예측 모드인 경우, 매크로블록의 방향성을 예측하는 단계; 상기 방향성을 고려하여 매크로블록을 인트라 복호화하는 단계를 포함하는 복호화 방법을 수행할 수 있다.
복호화 방법을 수행하는 적어도 하나의 프로세스를 포함하는 복호화 장치에 있어서, 상기 프로세스는, 깊이 영상의 매크로블록의 주변 픽셀들을 복수의 그룹으로 분할하는 단계; 상기 분할된 그룹의 대표값을 결정하는 단계; 비트스트림으로부터 매크로블록과 관련된 예측맵을 복호화하는 단계; 상기 예측맵을 이용하여 매크로블록에 포함된 현재 픽셀의 예측값을 복호화하는 단계; 상기 비트스트림으로부터 현재 픽셀의 예측 결과로 도출된 잔차 신호를 복호화하는 단계; 및 상기 현재 픽셀의 예측값과 잔차 신호를 이용하여 매크로블록을 복원하는 단계를 포함하는 복호화 방법을 수행할 수 있다.
도 1은 일실시예에 따른 부호화 장치와 복호화 장치의 동작을 설명하는 도면이다.
도 2는 깊이 영상에서 DISP 모드와 PSIP 모드가 적용될 영역을 도시한 도면이다.
도 3은 일실시예에 따른 부호화 장치를 도시한 블록 다이어그램이다.
도 4는 일실시예에 따른 복호화 장치를 도시한 블록 다이어그램이다.
도 5는 다시점 영상의 부호화 구조를 도시한 도면이다.
도 6은 일실시예에 따라 깊이 영상의 새로운 SKIP 예측 방법을 도시한 도면이다.
도 7은 깊이 영상에서 인트라 16x16의 방향성을 예측하는 실시예를 도시한 도면이다.
도 8은 일실시예에 따라 NOC를 이용하여 방향성을 예측하는 과정을 도시한 도면이다.
도 9는 일실시예에 따라 I 프레임에 적용될 매크로블록 모드를 도시한 도면이다.
도 10은 일실시예에 따라 P 프레임에 적용될 매크로블록 모드를 도시한 도면이다.
도 11은 일실시예에 따라 B 프레임에 적용될 매크로블록 모드를 도시한 도면이다.
도 12는 DISP가 적용될 때, 인트라 모드 예측부의 동작을 도시한 도면이다.
도 13은 DISP가 적용될 때, 부호화 모드 결정부의 동작을 도시한 도면이다.
도 14는 일실시예에 따라 깊이 영상의 영역을 분리하는 실시예를 도시한 도면이다.
도 15는 일실시예에 따라 4x4 블록에서 예측 정보의 패턴 코드를 정의한 실시예를 도시한 도면이다.
도 16은 일실시예에 따라 예측 정보의 패턴 코드를 도시한 도면이다.
도 17은 일실시예에 따라 차분을 이용하여 예측 정보의 패턴 코드를 부호화하는 과정을 도시한 도면이다.
도 18은 일실시예에 따라 예측 정보를 분리하는 과정을 도시한 도면이다.
도 19는 제안 모드(PSIP)와 기존 모드를 선택하는 과정을 도시한 도면이다.
도 20은 제안 모드(PSIP)를 선택적으로 적용하는 과정을 도시한 도면이다.
도 21은 제안 모드(PSIP)를 적용하여 깊이 영상을 부호화하는 과정을 도시한 도면이다.
도 22는 제안 모드(PSIP)를 적용하여 깊이 영상을 복호화하는 과정을 도시한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 부호화 장치와 복호화 장치의 동작을 설명하는 도면이다.
일실시예에 따른 부호화 장치(101)는 깊이 영상을 부호화하여 비트스트림을 생성하고, 비트스트림을 복호화 장치(102)에 전송할 수 있다. 깊이 영상은 3차원 영상 시스템에 활용되는 데이터로서, 가상 영상을 합성할 때 3차원 정보로 활용된다. 깊이 영상을 부호화하고 복호화하는 과정은 3차원 영상을 압축, 저장, 기록하는 다양한 멀티미디어 장치에 적용될 수 있다.
깊이 영상은 객체의 경계와 같이 깊이값의 변화가 존재하는 영역을 제외하고는 대부분 평탄(flat) 영역으로 이루어져서 컬러 영상에 비해 저주파 성분이 많다. 그리고, 깊이 영상은 컬러 영상에 비해 공간적인 상관도가 높기 때문에, 이를 이용하여 효율적으로 부호화하는 것이 요구된다.
도 2는 깊이 영상에서 DISP 모드와 PSIP 모드가 적용될 영역을 도시한 도면이다.
깊이 영상은 객체의 경계와 같이 깊이값의 변화가 존재하는 영역과 그외의 영역으로 구분될 수 있다. 일실시예에 따르면, 깊이 영상을 부호화할 때 깊이 영상의 영역에 따라 서로 다른 인트라 예측이 적용될 수 있다. 구체적으로, 깊이 영상에서 객체의 경계는 깊이값의 변화가 존재하므로 보다 정교하게 부호화될 필요가 있다. 그리고, 깊이 영상에서 객체의 경계를 제외한 나머지 영역은 깊이값의 변화가 크지 않은 평탄 영역이므로, 최소한의 비트로 부호화될 필요가 있다.
도 2를 참고하면, 객체의 경계 주변은 깊이 영상의 인트라 예측 중 PSIP가 적용되고, 객체의 경계 주변을 제외한 나머지 영역은 깊이 영상의 인트라 예측 중 DISP가 적용될 수 있다.
DISP(Depth Intra Skip Prediction)는 깊이 인트라 스킵 예측으로서, 깊이 영상에서 평탄 영역을 최소한의 비트로 부호화할 때 사용된다. 한편, PSIP(Plane Segmentation based Intra Prediction)는 평면 분할 방식의 인트라 예측으로, 깊이 영상에서 깊이값이 변화하는 객체의 경계 영역이 임의의 방향성을 나타내더라도 효율적으로 예측할 수 있다.
DISP는 기존의 H.264/AVC에서 사용되는 intra 16x16 예측에 기초하여 디자인되었다. 그러나, DISP는 부호화 장치(encoder)와 복호화 장치(decoder) 양쪽에서 추정된 예측 방향을 사용하지만, 어떠한 잔차 데이터(residual data)를 부호화하지 않는다.
그리고, DISP는 예측 방향을 추정하기 위해, 매크로블록에 인접하는 상위 라인의 블록들(above line blocks)과 왼쪽 라인의 블록들(left line blocks)이 이용될 수 있다. 그리고, 예측 방향을 추정하기 위해 상위 라인의 블록들과 왼쪽 라인의 블록들의 복잡도가 사용된다. 복잡도는 상위 라인의 블록들과 왼쪽 라인의 블록들에서 값이 변경되는 것을 카운팅한 결과(NOC: number of change)로 결정된다.
왼쪽 라인의 블록들의 NOC(NOC(L))은 하기 수학식 1에 의해 결정될 수 있다.
Figure pat00001
즉, 수학식 1에 의하면, NOC(L)은 왼쪽 라인의 블록들을 대상으로 현재 블록과 다음 블록의 값이 동일한지 아니면 다른지 여부를 비교함으로써 계산된다. 수학식 1은 상위 라인의 블록들의 NOC(NOC(A))에도 동일하게 적용된다. DISP를 위한 예측 방향은 계산된 NOC(L)와 NOC(A)을 이용하여 도출(derive)된다. NOC를 이용하여 예측 방향을 도출하는 과정은 도 10에서 구체적으로 설명된다.
한편, DISP는 복수의 시점(view)를 나타내는 깊이 영상에 적용된다. 그리고, DISP를 나타내는 플래그는 각각의 매크로블록에 시그널링될 수 있다. 추가적으로 현재 매크로블록이 DISP 모드로 코딩될 때, 디블록킹 필터의 경계 강도(Boundary strength)는 조절될 수 있다.
깊이 맵(depth map)에서 선명한 경계(sharp edge)의 품질을 유지하는 것이 중요하다. 그래서, PSIP(plane segmentation based intra prediction: PSIP)는 객체의 경계를 선명하게(sharply) 유지하기 위해 좀더 많은 비트를 할당할 수 있다. PSIP는 깊이 영상에서 매크로블록을 2개의 영역으로 분할(segment)하고, 각각의 분할된 영역에서 다른 예측을 적용할 수 있다.
구체적으로, PSIP는 깊이 맵에서 NxN 매크로블록의 상위 라인의 픽셀들과 왼쪽 라인의 픽셀들을 2개의 그룹으로 분할할 수 있다. 그리고, PSIP는 분할된 각 그룹의 픽셀들을 평균함으로써 2개의 대표값인 P1과 P2를 결정할 수 있다. 여기서, 매크로블록에 속한 타겟 픽셀 Ci는 하기 수학식 2에 따라 가장 가까운 대표값으로 예측된다.
Figure pat00002
여기서,
Figure pat00003
는 타겟 픽셀 Ci의 예측된 픽셀값을 의미한다.
PSIP는 예측 맵이라는 경계 정보를 부호화하는 것이 요구된다. 여기서, 예측맵은 NxN 바이너리 정보로 구성된다. PSIP에서 각각의 1xN 행(row) 또는 1xN 열(column)은 미리 설정된 패턴 테이블에 따라 코딩된다. 여기서, 2개 이상의 비트 전이(bit-transitions)를 가지는 패턴은 제외된다.
PSIP는 예측 맵에서 인접한 열 또는 행들 간의 차이값을 코딩한다. 왜냐하면, 차이값은 거의 0에 가깝기 때문이다. 차이값은 하기 수학식 3에 의해 결정될 수 있다.
Figure pat00004
MOD는 모듈러 연산을 의미하고, Si는 i번째 열(또는 행)의 패턴 코드를 의미한다. S0는 인접 픽셀의 패턴 코드를 의미한다.
도 3은 일실시예에 따른 부호화 장치를 도시한 블록 다이어그램이다.
도 3을 참고하면, 부호화 장치는 현재 픽쳐 입력부(301), 참조 픽쳐 입력부(302), 움직임 예측부(303), 인트라 모드 예측부(304), 인터 부호화부(305), 인트라 부호화부(306), 부호화 모드 결정부(307), 예측 보상부(308), 변환부(309), 양자화부(310), 엔트로피 부호화부(311), 역양자화부(312), 역변환부(313), 디블록킹 필터부(314), 영상 복원부(315)를 포함할 수 있다. 특히, 일실시예에 따르면, 인트라 모드 예측부(304)와 부호화 모드 결정부(307)가 중요하다.
현재 픽쳐 입력부(301)는 부호화하고자 하는 깊이 영상의 현재 픽쳐를 입력받을 수 있다. 여기서, 현재 픽쳐는 깊이 영상을 구성하는 복수의 프레임들 중 하나의 프레임에 대응한다.
참조 픽쳐 입력부(302)는 현재 픽쳐를 부호화할 때 활용할 참조 픽쳐를 입력받을 수 있다. 여기서, 참조 픽쳐는 이미 부호화가 완료된 프레임에 대응한다. 현재 픽쳐와 참조 픽쳐는 시간적으로 서로 다르거나 또는 시점적으로 서로 다를 수 있다.
움직임 예측부(303)는 현재 픽쳐와 참조 픽쳐를 이용하여 시간적 또는 시점적으로 매크로블록의 움직임을 예측할 수 있다. 매크로블록을 움직임 예측한 결과, 움직임 벡터가 도출된다. 그러면, 인터 부호화부(305)는 움직임 벡터를 이용하여 매크로블록을 인터 부호화할 수 있다.
한편, 인트라 모드 예측부(304)는 현재 픽쳐에 대해 인트라 모드를 예측할 수 있다. 앞서 설명하였듯이, 인트라 모드는 DISP 모드, PSIP 모드 및 기존의 인트라 예측 모드 중 하나일 수 있다.
여기서, DISP 모드와 PSIP 모드는 기존의 H/264/AVC에서 사용되는 인트라 예측 모드의 일부를 수정한 모드일 수 있다. 그리고, DISP 모드와 PSIP 모드는 깊이 영상을 구성하는 영역에 따라 서로 다르게 적용될 수 있다. 깊이 영상에 인트라 예측을 수행할 때, 평탄 영역은 DISP 모드 또는 기존의 인트라 예측 모드가 적용되고, 객체의 경계 영역은 PSIP 모드 또는 기존의 인트라 예측 모드가 적용될 수 있다.
인트라 모드 예측부(304)의 상세 동작은 DISP 모드와 PSIP 모드를 구분하여 설명하기로 한다. DISP 모드는 하기 도 5 내지 도 13에서 설명되고, PSIP 모드는 도 14 내지 도 20에서 설명된다.
인트라 부호화부(306)는 인트라 모드 예측부(304)에서 결정된 인트라 모드에 따라 매크로블록을 인트라 예측하여 부호화할 수 있다.
부호화 모드 결정부(307)는 인터 예측을 적용한 부호화 결과와 인트라 예측을 적용한 부호화 결과를 고려하여 매크로블록의 부호화 모드를 결정할 수 있다. 실시예에 따라서는 부호화 모드 결정부(307)는 인터 예측, 인트라 예측, 인터뷰 예측을 각각 적용한 부호화 결과를 고려하여 매크로블록의 부호화 모드를 결정할 수 있다.
예측 보상부(308)는 예측 결과에 따라 잔차 신호를 도출할 수 있다. 그러면, 변환부는 현재 픽쳐와 잔차 신호의 차이를 변환할 수 있다. 일례로, 변환부(309)는 이산 코사인 변환(DCT: Discrete cosine transform)할 수 있다. 그리고, 양자화부(310)는 변화부의 결과에 대해 양자화를 수행할 수 있다.
최종적으로, 엔트로피 부호화부(311)는 양자화된 결과에 기초하여 깊이 영상을 압축한 비트스트림을 생성할 수 있다. 이 때, 엔트로피 부호화부(311)는 매크로블록에 적용된 부호화 모드도 함께 비트스트림에 포함시킬 수 있다. 또한, 부호화 모드가 인트라 예측에 기반한 부호화 모드로 결정된 경우, 엔트로피 부호화부는 DISP와 관련된 방향성도 비트스트림에 포함시킬 수 있다. 또한, 엔트로피 부호화부(311)는 PSIP와 관련된 예측 맵도 비트스트림에 포함시킬 수 있다.
한편, 현재 픽쳐는 다음에 부호화할 픽쳐를 위해 참조 픽쳐로 저장될 수 있다. 역양자화부(312)는 양자화부(310)에서 양자화된 현재 픽쳐를 역양자화할 수 있다. 그리고, 역변환부(313)는 역양자화된 현재 픽쳐를 역변환할 수 있다. 디블록킹 필터부(314)는 잔차 신호와 역변환된 현재 픽쳐가 합산된 결과를 디블록킹 필터링할 수 있다. 영상 복원부(315)는 디블록킹된 현재 픽쳐를 복원한 후, 참조 픽쳐 입력부에 현재 픽쳐를 참조 픽쳐로 제공할 수 있다.
도 4는 일실시예에 따른 복호화 장치를 도시한 블록 다이어그램이다.
도 4를 참고하면, 복호화 장치는 엔트로피 복호화부(401), 부호화 모드 복원부(402), 움직임 복원부(403), 인터 복호화부(404), 인트라 모드 복원부(405), 인트라 복호화부(406), 예측 보상부(407), 역양자화부(408), 역변환부(409), 디블록킹 필터부(410), 영상 복원부(411)를 포함할 수 있다.
엔트로피 복호화부(401)는 비트스트림을 복호화하여 압축된 깊이 영상과, 깊이 영상과 관련된 매크로블록의 압축된 부호화 모드를 추출할 수 있다. 이 때, 매크로블록이 어떠한 예측 방식으로 부호화되었는지 여부에 따라 비트스트림에 포함된 정보는 달라질 수 있다.
부호화 모드 복원부(402)는 비트스트림으로부터 도출된 압축된 부호화 모드에서 매크로블록의 부호화 모드를 복원할 수 있다. 부호화 모드가 인터 예측 모드인 경우, 스위칭 결과에 따라 부호화 모드 복원부(402)와 움직임 복원부(403)가 서로 연결된다. 그리고, 부호화 모드가 인트라 예측 모드인 경우, 스위칭 결과에 따라 부호화 모드 복원부(402)와 인트라 모드 복원부(405)가 서로 연결된다.
움직임 복원부(403)는 매크로블록의 움직임 벡터를 복원할 수 있다. 그리고, 인터 복호화부(404)는 움직임 벡터를 적용한 인터 예측을 이용하여 매크로블록을 복호화할 수 있다.
한편, 인트라 모드 복원부(405)는 매크로블록의 인트라 예측 모드를 복원할 수 있다. 일례로, 인트라 모드 복원부(405)는 매크로블록에 대해 DISP 모드, PSIP 모드 또는 기존의 인트라 예측 모드 중 어느 하나를 복원할 수 있다. 그런 후, 인트라 복호화부(406)는 인트라 예측 모드를 적용한 인트라 예측을 이용하여 매크로블록을 복호화할 수 있다.
예측 보상부(407)는 인터 복호화부(404)의 복호화 결과 또는 인트라 복호화부(406)의 복호화 결과에 비트스트림의 복호화 결과로부터 역양자화부(408)와 역변환부(409)를 통해 도출된 잔차 신호를 추가할 수 있다.
디블록킹 필터부(410)는 인트라 예측 결과와 인터 예측 결과에 잔차 신호가 추가한 결과물에 디블록킹 필터링할 수 있다. 영상 복원부(411)는 디블록킹 필터링의 결과값에 대해 최종적으로 현재 픽쳐에 대한 깊이 영상을 복원할 수 있다. 복원된 깊이 영상은 다음 픽쳐에 대한 깊이 영상을 복원할 때, 인터 예측을 위해 활용될 수 있도록 움직임 복원부에 입력될 수 있다.
도 5는 다시점 영상의 부호화 구조를 도시한 도면이다.
다시점 영상 (또는 비디오)의 부호화 구조는 일반적으로 인접 시점의 참조 프레임으로 예측하여 부호화 하는 앵커 프레임(anchor frame)과 인접 시간의 참조 프레임과 인접 시점의 참조 프레임으로 모두 예측하여 부호화하는 논 앵커 프레임(non-anchor frame)으로 구성된다. 다시점 영상의 부호화 구조는 세개의 시점 영상을 입력(Left View, Center View, Right View) 받았을 때 GOP(Group of Picture)로 부호화하는 MVC(Multiview Video Coding) 구조를 나타낸다.
도 5에서, 앵커 프레임은 I0, B1, P0이고, 논 앵커 프레임은 앵커 프레임을 제외한 나머지 프레임을 의미한다. 앵커 프레임은 랜덤 액세스(random access)를 위해 필요하며 시점간 예측만을 이용하여 부호화하므로, 기존의 단일 시점 압축과 가장 큰 특성의 차이가 존재한다.
다시점(Multi-view) 영상을 압축할 때는 기본적으로 시간(Temporal)축과 시점(View)축으로 계층적 B 픽처(Hierarchical B Picture) 개념이 적용되어, 영상 간에 존재하는 중복성(Redundancy)이 감소할 수 있다. 구체적으로, 계층적 B-픽쳐에 따라 부호화하는 경우, 앵커 프레임에 해당하는 I 시점의 I frame이 먼저 부호화되고, 이후에 P 시점의 P frame, B 시점의 B frame 순서로 부호화된다. 그리고, 하나의 시점에서 앵커 프레임이 먼저 부호화되고, 앵커 프레임들 사이에 위치한 논 앵커 프레임들이 계층에 따라 순차적으로 부호화된다.
현재 H.264/AVC 기반 및 비디오 압축에서는 I, P, B 타입의 부호화 방식을 지원한다. I frame의 경우 화면내 예측(인트라 예측)을 이용하여 부호화가 적용된다. P frame의 경우, 하나의 참조 영상으로부터 움직임 예측을 수행하는 화면간 예측(인터 예측)을 이용하여 부호화가 적용되거나, I frame과 동일하게 화면내 예측을 이용하여 부호화가 적용된다. 그리고, B frame의 경우, 두 개의 참조 영상으로부터 움직임 예측을 수행하는 화면간 예측(인터 예측)을 이용하여 부호화가 적용되거나 또는 I frame과 동일하게 화면내 예측을 이용하여 부호화가 적용된다.
도 6은 일실시예에 따라 깊이 영상의 새로운 SKIP 예측 방법을 도시한 도면이다.
기존의 H.264/AVC는 각 매크로블록을 부호화 할 때 다양한 매크로블록 모드가 이용된다. 이 때, H.264/AVC는 다양한 매크로블록 모드들 중 최적의 매크로블록 모드에 따라 영상을 부호화하고, 실제로 사용된 매크로블록 모드의 타입 정보를 각 매크로블록마다 부호화하여 복호화 장치에 전송한다. 매크로블록 모드를 부호화할 때 사용되는 비트를 최소화하기 위해 H.264/AVC는 자주 발생되고 부호화 할 비트가 적은 매크로블록 모드에 우선 순위를 설정하여 부호화한다.
아래의 표 1, 표 2 및 표 3은 각각 H.264/AVC에서 I frame, P frame, B frame을 부호화할 때 사용되는 매크로블록 타입을 나타낸다.
Figure pat00005
Figure pat00006
Figure pat00007
하지만, 표 1, 표 2 및 표 3에서 표현된 매크로블록 모드들은 컬러 영상에 기초하여 디자인되었기 때문에, 깊이 영상에 적용하는 경우 부호화 효율이 효과적이지 않다. 매크로블록 모드들 중 비트를 가장 효과적으로 줄일 수 있는 SKIP 모드(매크로블록의 부호화 모드와 잔차 신호를 부호화하지 않음)는 컬러 영상보다 깊이 영상에서 발생 확률이 낮다.
왜냐하면, H.264/AVC에서 적용되는 기존의 SKIP 모드가 인접한 매크로블록의 움직임 벡터에 미디언 필터(median filter)를 적용한 결과를 이용하지만, 깊이 영상은 컬러 영상에 비해 텍스쳐(texture)가 많이 존재하지 않는 평탄(flat)한 특성을 가지므로 기존의 SKIP 모드가 효과적이지 않다.
일실시예에 따르면, 도 6에 도시된 바와 같이 깊이 영상에 효과적인 SKIP 모드를 제안한다. 일실시예에서 제안하는 SKIP 모드는 인트라 16x16 예측에서 수직(vertical), 수평(horizontal) 및 DC 방향을 기반으로 한다. 즉, 제안하는 SKIP 모드는 인트라 16x16 예측 중 CBP(coded block pattern)이 0인 경우를 SKIP 모드로 활용할 수 있다. 이 때, 인트라 16x16 예측의 방향성 정보가 복호화 장치에서도 필요한데, 방향성 정보는 매크로블록의 인접 블록으로부터 예측하여 결정될 수 있다.
방향성을 예측하는 구체적인 실시예는 도 7에서 설명하기로 한다.
도 7은 깊이 영상에서 인트라 16x16의 방향성을 예측하는 실시예를 도시한 도면이다.
도 7은 현재 매크로블록에 인접한 상위 라인(Above Line)의 블록들의 경계값과, 왼쪽 라인(Left Line)의 블록들의 경계값의 복잡도를 비교하여 인트라 16x16 예측의 방향성을 예측하는 과정을 설명한다. 구체적으로, 일실시예에 의하면, 상위 라인의 블록들의 복잡도와 왼쪽 라인의 블록들의 복잡도를 비교하여 보다 복잡한 라인의 방향으로 방향성이 결정될 수 있다.
방향성을 결정하는 과정은 하기 수학식 4에 의해 결정될 수 있다.
Figure pat00008
수학식 4에서, 상위 라인의 블록들의 경계값(Above_diff)과 왼쪽 라인의 블록들의 경계값(Left_diff)를 비교함으로써 인트라 16x16 예측의 방향성이 결정될 수 있다. 일례로, Above_diff가 Left_diff보다 큰 경우, 인트라 16x16 예측의 방향성은 수직 모드로 결정되고, Above_diff가 Left_diff보다 작은 경우, 인트라 16x16 예측의 방향성은 수평 모드로 결정된다. 만약, Above_diff가 Left_diff와 동일한 경우, 인트라 16x16 예측의 방향성은 DC 모드로 결정된다.
앞서 설명한 바와 달리, 현재 매크로블록의 방향성을 예측하기 위해 이미 부호화된 인접 시점의 깊이 영상 또는 이미 부호화된 인접 시점의 색상 정보가 이용될 수 있다. 또는, 현재 매크로블록의 인접 블록의 경계 화소가 아닌 인접 블록의 모드 정보, 움직임 정보 또는 엣지 성분을 이용함으로써 현재 매크로블록의 방향성이 예측될 수 있다. 이외에도, 현재 매크로블록의 인접 블록의 다양한 파라미터를 이용함으로써, 현재 매크로블록의 방향성이 예측될 수 있다. 또한, 수학식 4에서 사용된 difference의 합계가 아닌 제곱합, 분산 등 다양한 형태의 difference를 이용하여 현재 매크로블록의 방향성이 예측될 수 있다.
B frame의 경우, 기존의 SKIP 모드가 이용되나, CBP가 0이 아닌 Direct 모드에서도 앞서 설명한 동일한 예측 방법이 이용될 수 있다. 한편, SKIP 예측 방법을 일실시예에 따른 인트라 기반의 예측 방법으로 변경하는 경우, I frame에서도 SKIP을 정의할 수 있어 부호화할 때 사용되는 비트가 보다 효과적으로 절감될 수 있다. 또한 I frame과 P frame에도 Direct 모드를 정의함으로써 부호화할 때 사용되는 비트가 보다 효과적으로 절감될 수 있다.
도 8은 일실시예에 따라 NOC를 이용하여 방향성을 예측하는 과정을 도시한 도면이다.
단계(801)에서, 부호화 장치는 매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들이 모두 가능한지 판단할 수 있다. 만약, 모두 가능한 경우, 단계(802)에서, 부호화 장치는 NOC(A)=0이고, NOC(L)=0인지 여부를 판단할 수 있다. NOC(A)와 NOC(L)의 의미는 도 2를 참고할 수 있다.
만약, NOC(A)=0이고, NOC(L)=0인 경우, 부호화 장치는 Rule 1에 따라 매크로블록의 방향성을 예측할 수 있다. 반대로, NOC(A)=0이고, NOC(L)=0가 아닌 경우, 단계(803)에서, 부호화 장치는 NOC(A)가 0보다 크고, NOC(L)가 0보다 큰지 여부를 판단할 수 있다. 만약, NOC(A)가 0보다 크고, NOC(L)가 0보다 큰 경우, 부호화 장치는 Rule 2에 따라 매크로블록의 방향성을 예측할 수 있다.
일례에 의하면, Rule 1과 Rule 2는 다음의 표 4 및 표 5와 같이 결정될 수 있다. DISP는 깊이 시점에 적용되고, DISP 모드를 나타내느 플래그는 각각의 매크로블록에 대해 시그널링된다. 그리고, 디블록킹 필터의 경계 강도(boundary strength)는 매크로블록이 DISP 모드로 코딩될 때 조절될 수 있다.
Figure pat00009
Figure pat00010
만약, NOC(A)가 0보다 크고, NOC(L)가 0보다 크지 않은 경우, 단계(804)에서, 부호화 장치는 NOC(L)이 0보다 큰 지 여부를 판단할 수 있다. 만약, NOC(L)가 0보다 큰 경우, 부호화 장치는 매크로블록의 방향성을 수평 방향(horizontal)로 판단할 수 있다.
그리고, NOC(L)가 0보다 크지 않은 경우, 단계(805)에서 부호화 장치는 NOC(A)가 0보다 큰지 여부를 판단할 수 있다. 만약, NOC(A)가 0보다 큰 경우, 부호화 장치는 매크로블록의 방향성을 수직 방향(vertical)로 판단할 수 있다. 그리고, NOC(A)가 0보다 작은 경우, 부호화 장치는 매크로블록의 방향성을 DC 모드로 판단할 수 있다.
단계(801)에서, 상위 라인의 블록과 왼쪽 라인의 블록이 모두 가능하지 않은 경우, 단계(806)에서 부호화 장치는 상위 라인의 블록이 가능한지 여부를 판단할 수 있다. 만약, 상위 라인의 블록이 가능한 경우, 부호화 장치는 매크로블록의 방향성을 수평 방향으로 결정할 수 있다. 그리고, 단계(806)에서 상위 라인의 블록이 가능하지 않은 경우, 단계(807)에서 부호화 장치는 상위 라인의 블록이 가능한지 여부를 판단할 수 있다. 만약에, 상위 라인의 블록이 가능한 경우, 부호화 장치는 매크로블록의 방향성을 수직 방향으로 판단할 수 있다. 그리고, 상위 라인의 블록이 가능하지 않은 경우, 부호화 장치는 매크로블록의 방향성을 DC 모드로 판단할 수 있다.
도 9는 일실시예에 따라 I 프레임에 적용될 매크로블록 모드를 도시한 도면이다. 도 10은 일실시예에 따라 P 프레임에 적용될 매크로블록 모드를 도시한 도면이다. 도 11은 일실시예에 따라 B 프레임에 적용될 매크로블록 모드를 도시한 도면이다.
구체적으로, 도 9 내지 도 11은 앞서 설명한 표 1 내지 표 3에서 다양한 매크로블록 모드를 재정의하고, 우선 순위를 조정한 결과를 나타낸다. 표 1 내지 표 3을 어떠한 기준으로 조정하여 도 9 내지 도 11을 도출할 수 있는 지 이하에서 구체적으로 설명하기로 한다.
깊이 영상은 현재 4:2:0 yuv 형태로 제공되는데, 이 때, 색차 신호의 값은 모두 128로 정해지므로 컬러 영상과 달리 색차 신호의 잔차(residual)는 발생하지 않는다. 또한 앞에서 언급했듯이 움직임 벡터를 이용하는 부호화 방식은 texture가 존재하는 일부 영역을 제외한 나머지 영역에 대해서는 효과적이지 않다. 그리고 B frame에 이용되는 Bi-prediction (양방향 예측)을 깊이 영상에 적용하는 경우, 원래 성능이 발휘되지 못한다. 그래서, 기존의 컬러 영상에 기초하여 디자인된 매크로블록 모드들은 깊이 영상의 관점에서 상당히 비효율적이다.
특히, 깊이 영상의 관점에서 불필요하게 많은 매크로블록 모드의 개수는 매크로블록 정보를 부호화할 때 사용되는 비트를 증가시키기 때문에 부호화 효율도 낮아지는 문제가 있다. 뿐만 아니라, 각각의 매크로블록 모드들의 예측 방법 및 매크로 블록간 우선순위도 컬러 영상의 관점에서 디자인되었기 때문에, 깊이 영상의 관점에서 매우 비효율적이다.
그래서, 일실시예에 따르면, 기존의 SKIP 모드와 Direct 모드의 예측 방법은 제안하는 인트라 기반의 예측 방법으로 수정될 수 있다. 또한, 일실시예에 따른 인트라 기반의 예측 방법은 I frame, P frame 및 B frame에 공통적으로 적용될 수 있다.
앞서 설명한 표 1 내지 표 3과 같이 기존의 H.264/AVC는 이미 규격화된 매크로블록 모드들을 가지고 있다. 일실시예에 따라, 깊이 영상에 적합하도록 불필요한 매크로블록 모드를 삭제하고, 매크로블록 모드의 우선 순위를 변경하는 경우 부호화 효율이 향상될 수 있다. 하지만, 매크로블록 모드의 삭제 정보와 매크로블록 모드의 우선 순위의 변경 사항도 복호화 장치에서 활용되어야 한다. 그래서, 매크로블록 모드의 삭제 정보와 매크로블록 모드의 우선 순위의 변경 사항은 비트스트림의 헤더에 실려 부호화 장치에서 복호화 장치로 전송될 필요가 있다.
이 때, 매크로블록 모드의 우선 순위의 변경 사항은 정형화된 하나의 모델을 이용하는 경우, 플래그 비트로 정의가 가능하지만, 다양한 변경 시나리오를 고려한다면 상대적으로 많은 비트가 요구된다. 그래서, 깊이 영상을 부호화할 때, 매크로블록 모드의 우선 순위를 변경하는 경우, 다음 사항을 고려할 수 있다.
첫째로, 깊이 영상은 현재 4:2:0 yuv 형태로 제공되기 때문에 색차 신호의 값은 모두 128로 정해져 있다. 그래서, 색차 성분에 대한 잔차는 발생하지 않는다.
그래서, 인트라 16x16 예측 모드 중 색차 성분(Chroma)의 CBP가 0이 아닌 경우를 나타내는 매크로블록 모드(표 1에서, 매크로블록 모드 5~12, 17~24)는 깊이 영상을 부호화할 때 무의미하므로 모두 제거되거나 또는 하위로 재배치될 필요가 있다. 표 1에서 표시된 I_16x16_a_b_c의 경우, a는 Intra 16x16 예측의 방향성을 나타내고, b는 색차 성분의 CBP를 나타내며, c는 밝기 성분의 CBP를 나타낸다.
둘째로, 깊이 영상에서 복잡한 영역은 Inter 16x8, 8x16, 8x8 모드보다는 Intra 4x4 모드로 부호화되는 경우가 많다. 그리고, 깊이 영상은 컬러 영상에 비해 상대적으로 B frame과 P frame에서 인트라 예측의 발생 빈도가 높다. 그래서, 깊이 영상을 부호화할 때 매크로블록 모드들의 우선 순위는 SKIP > Direct > Inter16x16 > Intra NxN > Inter 8x16 > Inter 16x16 > Inter P8x8 > Intra16x16로 결정될 수 있다. I frame은 상기 매크로블록 모들의 우선 순위 중 Inter 모드가 제거되고, SKIP 모드와 Direct 모드는 인트라 예측을 기반으로 하기 때문에 적용이 가능하다. 그래서, 기존의 H.264/AVC에서 정의하고 있는 매크로블록 모드의 테이블의 재정의가 필요하다.
셋째로, B frame에 적용되는 양방향 예측 (bi-pred.)은 컬러 영상에 비해 깊이 영상에 적용될 때 효율성이 낮다. 왜냐하면, 양방향 예측이 2개의 참조 영상에 존재하는 블록을 평균을 이용하기 때문이다. 뿐만 아니라, 깊이 영상에서 양방향 예측을 수행하는 경우 양방향 예측이 효과적인 경우가 거의 없다. 그래서, 양방향 예측일 때 사용되는 매크로블록 모드들은 깊이 영상에 보다 효과적으로 이용될 수 있는 다른 매크로블록 모드들의 선택을 방해한다.
일례로, 기존의 H.264/AVC의 B frame의 매크로블록 모드의 우선 순위를 참고하면, B frame의 인터 예측 모드들이 1번부터 22번까지 할당되고, 그 이후에 인트라 예측 모드들이 할당된다. 결국, 기존의 H.264/AVC의 B frame의 매크로블록 모드의 우선 순위는 인트라 예측이 효과적인 깊이 영상에 적용될 때 상당히 비효율적일 수 있다.
그래서, 깊이 영상에 대해 인트라 예측 모드와 관련된 매크로블록 모드는 인터 예측 모드와 관련된 매크로블록 모드보다 우선 순위가 높게 설정될 필요가 있다. 한편, 양방향 예측과 관련된 매크로블록 모드들은 깊이 영상에 적용할 때 모두 제거되거나 또는 하위에 배치됨으로써 깊이 영상에 보다 효과적으로 매크로블록 모드를 적용할 수 있다. 그리고, 매크로블록 모드의 우선 순위는 슬라이스(slice)마다 서로 다르게 결정될 수 있다.
이상에서 언급한 고려 사항을 반영하여 새롭게 정의된 매크로블록 모드와 우선 순위는 도 9 내지 도 11에서 확인할 수 있다.
 앞에서 언급한 대부분은 깊이 영상의 특성을 고려하여 설명되었다. 하지만, 인트라 예측을 기반으로 한 SKIP 모드나 Direct 모드는 논 앵커 프레임(non anchor frame)을 부호화할 때 비효율적일 수 있다. 왜냐하면, 기존의 H.264/AVC에서 정의하고 있는 SKIP 모드가 논 앵커 프레임에서 보다 안정적인 성능을 나타내기 때문이다.
따라서, 이하에서는 앵커 프레임과 논 앵커 프레임에 SKIP 모드 및 direct 모드를 효과적으로 적용할 수 있는 다양한 시나리오를 제안한다. 이를 위해서, 앵커 프레임과 논 앵커 프레임에서 기존의 SKIP 모드를 적용할 때 부호화 효율을 판단할 필요가 있다. 여기서, 기존의 SKIP 모드는 인터 SKIP 모드를 의미한다.
일반적으로 앵커 프레임은 제안하는 인트라 SKIP 모드가 효과적이고, 논 앵커 프레임은 인터 SKIP 모드가 효과적이다. 그래서, 일실시예에서 제안하는 인트라 SKIP 모드와 인터 SKIP 모드를 혼용하여 사용하는 경우, 해당 프레임의 종류에 따라 보다 효과적인 예측 방법을 SKIP 모드로 활용하고, 다른 예측 방법을 Direct 모드로 활용할 수 있다.
구체적으로, 앵커 프레임을 부호화하는 경우, 인트라 SKIP 모드를 SKIP 모드로 이용하고, 움직임 벡터를 고려한 인터 SKIP 모드를 Direct 모드로 이용할 수 있다. 즉, 앵커 프레임을 부호화할 때, 제안하는 인트라 SKIP 모드는 SKIP 모드 위치에 적용하고, 기존의 인터 SKIP 모드는 Direct 모드 위치에 적용할 수 있다. 반대로, 논 앵커 프레임을 부호화하는 경우, 움직임 벡터를 고려한 인터 SKIP 모드를 SKIP 모드로 이용하고, 인트라 SKIP 모드를 Direct 모드로 이용할 수 있다. Direct 모드의 경우 CBP가 0인 경우만 이용하거나 또는 0보다 큰 경우 모두 활용가능하다.
앞서 설명한 SKIP 모드는 Direct 모드보다 부호화할 때 사용되는 비트수가 작기 때문에, Direct 모드보다 상위에 배치될 수 있다. 결론적으로, 앵커 프레임을 부호화할 때 매크로블록 모드의 우선 순위는 인트라 SKIP 모드를 최상위에 위치하고, 인터 SKIP 모드를 차상위에 위치하도록 설정될 수 있다. 반대로, 반대로 논 앵커 프레임을 부호화할 때 인터 SKIP 모드가 최상위에 위치하고, 인트라 SKIP 모드가 차상위에 위치하도록 설정될 수 있다.
이상에서 언급한 실시예들은 SKIP 모드와 Direct 모드만 언급하였으나, 보다 다양한 모드를 정의하는 경우, 인터 SKIP 모드, 인터 Direct 모드, 인트라 SKIP 모드, 인트라 Direct 모드와 같이 보다 다양한 모드가 활용 가능하다. 이 외에도 다양한 조합으로 우선순위를 재정렬할 수 있다. 또한 SKIP 모드나 다른 모드 정보 뒤에 flag bit를 정의하여 인터 스킵 모드와 인트라 스킵 모드를 구분할 수도 있다.
도 12는 DISP가 적용될 때, 인트라 모드 예측부의 동작을 도시한 도면이다.
도 12를 참고하면, 단계(1201)에서, 인트라 모드 예측부는 매크로블록 모드가 인트라 16x16인지 여부를 판단할 수 있다. 만약, 매크로블록 모드가 인트라 16x16인 경우, 단계(1202)에서, 인트라 모드 예측부는 제안된 방식에 따라 방향성 예측을 수행할 것인지를 판단할 수 있다.
만약, 제안된 방식(DISP)에 따라 방향성 예측을 수행하는 경우, 단계(1203)에서, 인트라 모드 예측부는 제1 방식에 따라 매크로블록의 인접 블록을 이용하여 매크로블록의 방향성을 예측할 수 있다. 반대로, 기존의 인트라 예측 방식을 적용하는 경우 단계(1204)에서, 인트라 모드 예측부는 제2 방식에 따라 RDO(rate-distortion optimization)를 이용하여 매크로블록의 방향성을 예측할 수 있다.
복호화 장치의 인트라 모드 복원부는 부호화 장치의 인트라 모드 예측부와 동일한 방식으로 처리할 수 있다. 예를 들어, 제안된 방식(DISP)을 적용하는 경우, 인트라 모드 복원부는 인트라 모드 예측부와 동일한 방법으로 매크로블록의 인접 블록을 이용하여 매크로블록의 방향성을 예측할 수 있다. 그리고, 제안된 방식이 아닌 기존의 인트라 예측 방식에 따라 방향성을 예측하는 경우, 인트라 모드 복원부는 비트스트림을 통해 전달된 부호화된 방향성을 추출하여 매크로블록의 방향성을 결정할 수 있다.
도 13은 DISP가 적용될 때, 부호화 모드 결정부의 동작을 도시한 도면이다.
부호화 모드 결정부는 매크로블록 모드 중 최적의 매크로블록 모드에 따라 부호화하는 부호화 모드를 결정할 수 있다. 단계(1301)에서 부호화 모드 결정부는 매크로블록 모드의 RD cost를 계산할 수 있다. 그런 다음, 단계(1302)에서, 부호화모드 결정부는 이전에 결정된 최적의 매크로블록 모드의 RD cost보다 단계(1301)에서 계산된 RD cost가 적은지 여부를 판단할 수 있다. Cost(Mode[i])는 단계(1301)에서 계산된 RD cost를 의미하고, Cost(Best_mode)는 이전에 결정된 최적의 매크로블록 모드의 RD cost를 의미한다.
만약, 단계(1302)에서, Cost(Mode[i])가 Cost(Best_mode)보다 작은 경우, 단계(1303)에서, 부호화 모드 결정부는 현재 매크로블록 모드를 최적의 매크로블록 모드로 결정할 수 있다. 반대로, 단계(1302)에서, Cost(Mode[i])가 Cost(Best_mode)보다 크거나 같은 경우, 단계(1304)에서, 부호화 모드 결정부는 이전에 결정된 최적의 매크로블록을 그대로 유지할 수 있다.
단계(1305)는 N개의 후보 매크로블록 모드에 대해 단계(1301) 내지 단계(1304)가 모두 처리되었는지 판단한 후, 만약, 처리된 경우 단계(1306)에서 마지막으로 결정된 매크로블록 모드를 최종적인 부호화 모드로 결정할 수 있다.
여기서, 부호화 모드 결정부에서 사용되는 매크로블록 모드의 우선 순위는 일실시예에 따라 제안된 우선 순위일 수 있다. 그래서, 부호화 모드 결정부에서 사용되는 매크로블록 모드의 우선 순위는 기존의 H.264/AVC에서 사용되는 매크로블록 모드의 우선 순위와 다를 수 있다. 그래서, 복호화 장치에서의 부호화 모드 복원부는 부호화 모드 결정부에서 사용하는 매크로블록 모드의 우선 순위와 동일하게 정의하여 사용하여야 한다. 다시 말해서, 부호화 모드 복원부에서 사용되는 매크로블록 모드의 우선 순위는 부호화 모드 결정부에서 사용되는 매크로블록 모드의 우선 순위와 동일해야 한다.
이하에서는 DISP 모드가 적용될 때의 처리 과정에 대해 구체적으로 설명하기로 한다.
(1) DISP 모드에 따라 제안된 인트라 SKIP 모드가 깊이 영상에 적용되는 경우, 제안된 인트라 SKIP 모드는 기존의 인터 SKIP 모드를 대체하거나 또는 새로운 모드로 정의될 수 있다. 또는, 제안된 인트라 SKIP 모드는 새로운 플래그(flag)로 설정되어 적용될 수도 있다.
여기서, 새로운 플래그를 정의하여 제안된 인트라 SKIP 모드인 DISP 모드와 다른 모드를 구분하는 방법은 다음과 같이 설정될 수 있다. 일레로, skip flag 이후 기존 skip 모드인지 인트라 SKIP 모드를 나타내는 DISP skip 인지 구분하는 flag를 수학식 5에 따라 정의할 수 있다. 여기서, 0과 1은 바뀔 수 있다.
Figure pat00011
만약, Skip_flag가 1로 설정되는 경우, 복호화 장치는 매크로블록 모드가 제안된 인트라 SKIP 모드로 설정된 것으로 판단할 수 있다. Skip_flag가 0으로 설정되는 경우, 복호화 장치는 매크로블록 모드가 제안된 인트라 SKIP 모드가 아닌 잔차 신호를 부호화하는 모드로 설정된 것으로 판단할 수 있다.
다른 일례로, 기존 skip이 아닌 경우에 대해 DISP skip인 경우와 나머지 모드를 구분하는 flag를 수학식 6에 따라 정의할 수 있다. 여기서, 0과 1은 바뀔 수 있다.
만약, mb_skip_flag가 0인 경우, 복호화 장치는 기존 SKIP 모드가 아닌 DISP_skip_flag에 기초하여 매크로블록 모드가 제안된 인트라 SKIP 모드로 설정된 것으로 판단할 수 있다. 이 때, DISP_skip_flag가 0인 경우, 복호화 장치는 매크로블록 모드가 제안된 인트라 SKIP 모드가 아닌 잔차 신호를 부호화하는 모드로 설정된 것으로 판단할 수 있다.
또 다른 일례로, DISP skip이 아닌 경우에 대해 기존 skip인 경우와 나머지 모드를 구분하는 flag를 수학식 7에 따라 정의할 수 있다. 여기서, 0과 1은 바뀔 수 있다.
Figure pat00013
만약, DISP_skip_flag가 0인 경우, 복호화 장치는 매크로블록이 기존의 SKIP 모드인지 여부를 판단할 수 있다. 이 때, mb_skip_flag가 0인 경우, 복호화 장치는 매크로블록 모드가 잔차 신호를 부호화하는 모드로 설정된 것으로 판단할 수 있다.
(2) 제안된 인트라 SKIP 모드는 인트라 Direct 모드로 정의되어 잔차 신호의 부호화까지 지원할 수 있다. 즉, 제안된 인트라 SKIP 모드는 항상 SKIP 모드를 위한 예측 방법이 아닌 잔차 신호까지 부호화할 수 있다.
(3) 도 8에서 설명하였듯이, 제안된 인트라 SKIP 모드가 적용되는 DISP 모드의 경우, 매크로블록의 방향성 예측은 매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들을 이용하여 수행될 수 있다. 이 때, 방향성 예측은 상위 라인의 블록들의 NOC와 왼쪽 라인의 블록들의 NOC를 비교하여 복잡도를 결정하고, 결정된 복잡도에 기초하여 매크로블록의 방향성이 예측될 수 있다.
(4) DISP 모드가 적용되는 경우 디블로깅 조건의 변화
기존의 SKIP 모드의 경우, 인트라 예측에 따라 부호화하는 경우 디블록킹의 경계 강도(boundary strength: BS)는 3 또는 4로 강하게 설정되었다. 하지만, 제안된 DISP 모드의 경우, 인터 모드로 부호화되더라도 기존의 SKIP 모드에서 사용되는 디블로깅의 경계 강도와 같거나 약한 경계 강도로 디블록킹 필터링될 수 있다.
하기 표 6의 신택스(syntax)에 따라 DISP 모드가 적용될 때, 디블록킹 필터링이 수행될 수 있다. 
#if SAIT_DISP
  else if( (p_Vid->is_depth) && ( MbQ->mb_type==DISPMODE && MbP->mb_type==DISPMODE ) )
  {
    StrValue = (edge == 0 && ((((p_Vid->structure==FRAME))) || ((p_Vid->structure != FRAME)))) ? 2 : 0;
    memset(Strength, (byte) StrValue, MB_BLOCK_SIZE * sizeof(byte));
  }
  else if( (p_Vid->is_depth) && ( MbQ->mb_type==DISPMODE || MbP->mb_type==DISPMODE ) )
  {
    StrValue = (edge == 0 && ((((p_Vid->structure==FRAME))) || ((p_Vid->structure != FRAME)))) ? 4 : 3;
    memset(Strength, (byte) StrValue, MB_BLOCK_SIZE * sizeof(byte));
  }
#endif
 
(4) DISP 모드의 부호화를 최적화하는 과정
깊이 영상을 부호화할 때 DISP 모드를 적용하는 경우, 잔차 신호가 0인 경우 추가적으로 RDO 관점에서 최적화될 수 있다. 즉, 깊이 영상을 부호화할 때 DISP 모드가 선택되고 잔차 신호가 발생하는 경우, 부호화 장치는 잔차 신호를 모두 0으로 가정하여 부호화 모드를 RDO 관점에서 선택할 수 있다.
(5) 앞서 설명한 DISP 모드에 따라 수행되는 깊이 영상의 부호화/복호화는 이하에서 제시된 표 7의 매크로블록 레이어 신택스(Macroblock layer syntax )에 따라 처리될 수 있다.
macroblock_layer( ) { C Descriptor
if ( IvmpEnabledFlag )
mb_ivmp_flag u(1) | ae(v)
if (!mb_ivmp_flag) {
if( DepthFlag && disp_flag )
mb_disp_flag u(1) | ae(v)
if(!mb_disp_flag){
mb_type 2 ue(v) | ae(v)
if( nal_unit_type = = 21 && !DepthFlag
&& slice_type = = B
&& direct_spatial_mv_pred_flag && VspRefExist
&& mb_type = = B_Direct_16x16 )
mb_direct_type_flag 2 u(1) | ae(v)
if( alc_sps_enable_flag && nal_unit_type = = 21 &&
slice_type = = P && !DepthFlag &&
( mb_type = = P_L0_16x16 ||
mb_type = = P_L0_L0_16x8 ||
mb_type = = P_L0_L0_8x16 ||
mb_type = = P_8x8 ||
mb_type = = P_8x8ref0 ) )
mb_alc_flag 2 u(1) | ae(v)
}
}
if( !mb_disp_flag ) {
if( mb_type = = I_PCM ) {
while( !byte_aligned( ) )
pcm_alignment_zero_bit 3 f(1)
for( i = 0; i < 256; i++ )
pcm_sample_luma[ i ] 3 u(v)
for( i = 0; i < 2 * MbWidthC * MbHeightC; i++ )
pcm_sample_chroma[ i ] 3 u(v)
} else {
noSubMbPartSizeLessThan8x8Flag = 1
if( mb_type != I_NxN &&
MbPartPredMode( mb_type, 0 ) != Intra_16x16 &&
NumMbPart( mb_type ) = = 4 ) {
if( !mb_ivmp_flag )
sub_mb_pred( mb_type ) 2
for( mbPartIdx = 0; mbPartIdx < 4; mbPartIdx++ )
if( sub_mb_type[ mbPartIdx ] != B_Direct_8x8 ) {
if( NumSubMbPart( sub_mb_type[ mbPartIdx ] ) > 1 )
noSubMbPartSizeLessThan8x8Flag = 0
} else if( !direct_8x8_inference_flag )
noSubMbPartSizeLessThan8x8Flag = 0
} else {
if( transform_8x8_mode_flag && mb_type = = I_NxN )
transform_size_8x8_flag 2 u(1) | ae(v)
if( !mb_ivmp_flag )
mb_pred( mb_type ) 2
}
if( MbPartPredMode( mb_type, 0 ) != Intra_16x16 ) {
coded_block_pattern 2 me(v) | ae(v)
if( ( CodedBlockPatternLuma > 0 | | mb_alc_flag = = 1 ) &&
transform_8x8_mode_flag && mb_type != I_NxN &&
noSubMbPartSizeLessThan8x8Flag &&
( mb_type != B_Direct_16x16 | |
direct_8x8_inference_flag ) )
transform_size_8x8_flag 2 u(1) | ae(v)
}
if( CodedBlockPatternLuma > 0 | |
CodedBlockPatternChroma > 0 | |
MbPartPredMode( mb_type, 0 ) = = Intra_16x16 ) {
mb_qp_delta 2 se(v) | ae(v)
residual( 0, 15 ) 3 | 4
}
}
}
}
여기서, 현재 블록에 DISP(depth intra skip prediction)이 적용될 때, mb_disp_flag는 1로 정의된다. 반대로, 현재 블록에 DISP가 적용되지 않는 경우, mb_disp_flag는 0으로 정의된다. 만약, DISP가 존재하지 않을 때, mb_disp_flag는 0으로 추론된다(inferred).
그리고, 시퀀스 파라미터 셋트는 다음 표 8의 신택스에 따라 정의될 수 있다.
seq_parameter_set_3dvc_extension( ) { C Descriptor
for( i = 0; i <= num_level_values_signalled_minus1; i++ )
for( j = 0; j <= num_applicable_ops_minus1[ i ]; j++ )
applicable_op_num_depth_views_minus1[ i ][ j ] ue(v)
depth_info_present_flag 0 u(1)
if( depth_info_present_flag ) {
3dv_acquisition_idc 0 ue(v)
for( i = 0; i < num_views_minus1; i++ )
view_id_3dv[ i ] 0 ue(v)
if( 3dv_acquisition_idc  ) {
depth_ranges( 2, 0 )
if( profile_idc = = 139 && num_views_minus1 )
vsp_param( 2, 0  )
}
if ( profile_idc = = 139 )
for( i = 0; i<= num_views_minus1; i++ )
depth_preceding_texture_flag[ i ] 0 u(1)
}
if( profile_idc = = 139 && depth_info_present_flag ) {
reduced_resolution_flag 0 u(1)
slice_header_prediction_flag 0 u(1)
inside_view_mvp_flag 0 u(1)
seq_view_synthesis_flag 0 u(1)
disp_flag 0 u(1)
psip_flag 0 u(1)
nonlinear_depth_representation_num 0 ue(v)
for( i = 1; i <= nonlinear_depth_representation_num; i++ )
nonlinear_depth_representation_model[ i ] 0 ue(v)
}
if( profile_idc = = 139 && !depth_info_present_flag )
alc_sps_enable_flag 0 u(1)
}
여기서, disp_flag가 1이라는 것은 현재 시퀀스 파라미터 셋트를 나타내는 모든 시점 컴포넌트(view component)에 대해 DISP(depth intra skip prediction)이 가능(enable)한 것을 의미할 수 있다. 반대로, disp_flag가 0이라는 것은 모든 시점 컴포넌트에 대해 DISP가 불가능한 것을 의미한다. 만약, DISP가 존재하지 않는다면, disp_flag는 0으로 추론될 수 있다.
그리고, psip_falg가 1이라는 것은 현재 시퀀스 파라미터 셋트를 나타내는 모든 시점 컴포넌트에 대해 PSIP(plane segmentation based intra prediction)이 가능한 것을 의미할 수 있다. 반대로, psip_flag가 0이라는 것은 모든 시점 컴포넌트에 대해 PSIP가 불가능한 것을 의미할 수 있다. 만약, PSIP가 존재하지 않는다면, psip_flag는 0으로 추론될 수 있다.
그리고, DISP(Depth intra skip prediction)는 아래와 같이 처리될 수 있다.
DISP의 입력은 (PicWidthInSamplesL)x(PicHeightInSamplesL)의 어레이 cSL일 수 있다. 여기서, 어레이 cSL은 이웃 매크로블록(neighbouring macroblock)의 디블록킹 필터링 전에 입력되며, 구축된 밝기 샘플들(constructed luma samples)을 포함할 수 있다. 그리고, DISP의 출력은 현재 매크로블록 predL[x,y]에 대해 인트라 예측의 밝기 샘플들(luma samples)일 수 있다.
이하에서 설명되는 깊이 인트라 예측(depth intra prediction)은 DepthFlag가 1이고, disp_flag가 1 또는 psip_flag가 1일 때 적용될 수 있다. DISP 모드는 mb_disp_flag가 1일 때 적용된다. 그리고, 아래 설명들은 intra 16x16 예측을 중심으로 설명하고 있으나, intra 4x4와 intra 8x8에도 동일한 방식으로 적용될 수 있다.
32개의 주변 매크로블록들의 밝기 샘플들인 p[ x, y ]은 디블록킹 필터링 전에 구축되는 밝기 샘플들(luma samples)이다. 주변 매크로블록들의 밝기 샘플들은 x=-1, y=0~15와 x=0~15, y=1에서 아래 과정을 통해 특정될 수 있다.
(1) 주변 매크로블록들의 위치에 대한 도출 과정은 입력으로서 (xN, yN), mbAddrN 및 출력으로서 (xW, yW)에 할당된 (x,y)의 밝기 위치들(luma locations)에 대해 적용될 수 있다.
(2) x=-1, y=0~15와 x=0~15, y=1를 가지는 각각의 샘플 p[x,y]는 아래 과정을 통해 도출될 수 있다.
-만약 mbAddrA 또는 mbAddrB가 이용가능하지 않다면, 샘플 p[x,y]의 밝기값은 128이다.
-그렇지 않은 경우, p[x,y]의 샘플 밝기값은 다음의 순차적인 과정을 통해 도출될 수 있다.
a. 매크로블록 mbAddrN의 왼쪽 상단(upper-left) 위치에서의 밝기 샘플은 입력과 출력이 (xM, yM)으로 할당된 mbAddrN을 가지는 역 매크로블록 스캐닝 과정(inverse macroblock scanning process)을 통해 도출될 수 있다.
b. 변수 MbaffFrameFlag와 매크로블록 mbAddrN에 의존하여, p[x,y]의 샘플 밝기값은 다음 과정을 통해 도출될 수 있다.
-만약, MbaffFrameFlag이 1이고, 매크로블록 mbAddrN이 필드 매크로블록(field macroblock)인 경우, p[x,y]는 p[ x, y ] = cSL[ xM + xW, yM + 2 * yW ]로 결정될 수 있다.
-그렇지 않은 경우(MbaffFrameFlag이 0이고, 매크로블록 mbAddrN이 프레임 매크로블록(fram macroblock)인 경우, p[x,y]는 cSL[ xM + xW, yM + yW ]로 결정될 수 있다.
DISP는 왼쪽 상단의 주변 밝기 샘플들(upeer-left neighboring luma samples)로부터 Intra16x16PredMode를 추정할 수 있다.
left_line[k], up_line[k], left_i16mode, up_i16mode, left_change, 및 up_change은 다음과 같이 설정될 수 있다.
-left_line[k] 는 p[-1,y]이다. (y=0~15이고, k=y)
-up_line[k] 는 p[x,-1]이다. (x=0~15이고, k=x)
-만약 왼쪽(left) 매크로블록이 I16x16 mode 또는 DISP_mode으로 코딩된 경우, left_i16mode는 왼쪽 매크로블록의 Intra 16x16PredMode이고, 그렇지 않은 경우, left_i16mode는 4이다.
- 만약 위쪽(upper) 매크로블록이 I16x16 mode 또는 DISP_mode로 코딩된 경우, up_i16mode는 위쪽 매크로블록의 Intra 16x16PredMode이고, 그렇지 않은 경우 up_i16mode는 4이다.
-만약 left_line[k]이 left_line[k+1]와 동일하지 않고, left_change가 1씩 증가하는 경우, k가 0에서 15까지 left_change는 0으로 설정될 수 있다.
-만약 up_line[k]가 up_line[k+1]와 동일하지 않고, up_change가 1씩 증가하는 경우, k가 0에서 15까지 up_change는 0으로 설정될 수 있다.
Intra 16x16PredMode는 다음의 과정을 통해 도출될 수 있다.
만약, mbAddrA 및 mbAddrB가 이용가능한 경우, 다음의 과정이 적용된다.
- 만약 left_change가 0이고, up_change가 0인 경우, 다음의 과정이 적용된다.
-만약 up_i16mode이 0이고, left_i16mode가 0인 경우, 변수 Intra 16x16PredMode는 0으로 설정될 수 있다.
-만약, up_i16mode이 1이고, left_i16mode가 1인 경우, 변수 Intra 16x16PredMode는 1로 설정될 수 있다.
-만약, left_line[0]이 up_line[0]보다 작은 경우, 변수 Intra 16x16PredMode는 0으로 설정될 수 있다.
-만약 up_line[0]이 left_line[0]보다 작은 경우, 변수 Intra 16x16PredMode는 1로 설정될 수 있다.
-그렇지 않은 경우, 변수 Intra 16x16PredMode는 2로 설정될 수 있다.
-만약 left_change이 0이고, up_change가 0보다 큰 경우, 변수 Intra 16x16PredMode는 0으로 설정될 수 있다.
-만약 left_change이 0보다 크고, up_change이 0인 경우, 변수 Intra 16x16PredMode는 1로 설정될 수 있다.
-그렇지 않은 경우, 다음 과정이 적용될 수 있다.
-만약, up_i16mode이 0이고, left_i16mode가 0인 경우, 변수 Intra 16x16PredMode는 0으로 설정될 수 있다.
-만약 up_i16mode이 1이고, left_i16mode가 1인 경우, 변수 Intra 16x16PredMode는 1로 설정될 수 있다.
-만약 up_i16mode이 0이고, left_i16mode가 1이 아닌 경우, 변수 Intra 16x16PredMode는 0으로 설정될 수 있다.
-만약 left_i16mode이 1이고, up_i16mode가 0이 아닌 경우, 변수 Intra 16x16PredMode는 1로 설정될 수 있다.
-만약 left_change가 up_change보다 작은 경우, 변수 Intra 16x16PredMode는 0으로 설정될 수 있다.
-만약 up_change가 left_change보다 작은 경우, 변수 Intra 16x16PredMode는 1로 설정될 수 있다.
-만약 left_line[0] - left_line[15]의 절대값이 up_line[0] - up_line[15] 의 절대값보다 작은 경우, 변수 Intra 16x16PredMode는 0으로 설정될 수 있다.
-만약 up_line[0] - up_line[15] 의 절대값이 left_line[0] - left_line[15]의 절대값보다 작은 경우, 변수 Intra 16x16PredMode는 1로 설정될 수 있다.
-그렇지 않은 경우, 변수 Intra 16x16PredMode는 2로 설정될 수 있다.
-만약 mbAddrB이 이용가능한 경우, 변수 Intra 16x16PredMode는 0으로 설정될 수 있다.
-만약 mbAddrA가 이용가능한 경우, 변수 Intra 16x16PredMode는 1로 설정될 수 있다.
-그렇지 않은 경우, 변수 Intra 16x16PredMode는 2로 설정될 수 있다.
-x와 y가 0~15인 predL[ x, y ]를 16x16 밝기 블록 샘플들에 대한 예측 샘플들을 나타낸다. Intra16x16PredMode에 의존하여 Intra_16x16 예측 모드들 중 하나가 도출된다. mb_disp_flag가 1인 경우, 현재 매크로블록에 대해 CodedBlockPatternLuma, LumaLevel의 모든 값들, ChromaDCLevel 및 ChromaACLevel은 0으로 설정될 수 있다.
디블록킹 과정은 아래와 같이 처리될 수 있다.
현재 매크로블릭이 DISPMODE로 코딩된 경우, 경우, 현재 매크로블록에 대해 CodedBlockPatternLuma, LumaLevel의 모든 값들, ChromaDCLevel 및 ChromaACLevel은 0으로 설정될 수 있다.
만약 disp_flag가 1이고, mb_type이 DISPMODE이며, mb_disp_flag가 1인 경우, 변수 bS(boundary strength)는 아래와 같이 도출될 수 있다.
만약 DISP가 사용가능한 경우, 변수 bS는 아래와 같이 도출될 수 있다.
-만약 verticalEdgeFlag가 1이고, 샘플 p0와 q0가 DISPMODE를 이용하여 코딩된 매크로블록 내부에 있고, 샘플 p0와 q0가 Intra_16x16_Horizontal intraprediction mode로 코딩된 매크로블록 내부에 있는 경우, 변수 bS는 0으로 출력된다.
-만약, verticalEdgeFlag가 0이고, 샘플 p0와 q0가 DISPMODE를 이용하여 코딩된 매크로블록 내부에 있고, 샘플 p0와 q0가 Intra_16x16_Vertical intra prediction mode로 코딩된 매크로블록 내부에 있는 경우, 변수 bS는 0으로 출력된다.
만약, 샘플 p0와 q0가 DISPMODE를 이용하여 코딩된 매크로블록 내부에 있는 경우, 다음 과정이 적용된다.
-만약 블록 경계(block edge)가 매크로블록 경계인 경우, 변수 bS는 2이다.
-그렇지 않은 경우, 변수 bS는 0이다.
-만약 샘플 p0 또는 q0 중 어느 하나가 DISPMODE로 코딩된 매크로블록에 있는 경우, 다음 과정이 적용된다.
-만약 블록 경계가 매크로블록 경계인 경우 변수 bS는 4이고, 그렇지 않은 경우, 변수 bS는 3이다.
파싱 프로세스는 다음과 같다.
초기화 과정에서 ctxIdx 와 신택스 요소는 다음 표 9와 같다.
Syntax element Slice type
  I P B
mb_ivmp_flag   1031..1033 1031..1033
mb_disp_flag 1043...045 1043...045 1043...045
그리고, ctxIdx가 1043부터 1045까지의 변수 m과 n의 값은 다음 표 10과 같다.
Initialisation variables ctxIdx
1043 1044 1045
m 0 0 0
n 64 64 64
mb_disp_flag의 신택스 요소에 대한 ctxIdxInc의 도출 과정은 다음과 같다.
주변 매크로블록들에 대한 도출 과정의 출력은 ctxIdxInc이고, 그 출력은 mbAddrA 및 mbAddrB에 할당될 수 있다. 그리고, A 또는 B 중 어느 하나가 되는 N을 가지는 변수 condTermFlagN는 아래와 같이 도출될 수 있다.
-만약 mbAddrN가 이용가능하지 않거나, 매크로블록 mbAddrN에 대한 mb_disp_flag가 1인 경우, condTermFlagN는 0으로 설정될 수 있다.
-만약, mbAddrN가 이용가능하고, 매크로블록 mbAddrN에 대한 mb_disp_flag가 0인 경우, condTermFlagN는 1로 설정될 수 있다.
변수 ctxIdxInc는 하기 수학식 8에 의해 도출될 수 있다.
Figure pat00014
도 14부터는 PSIP 모드를 적용하는 경우를 설명한다.
도 14는 일실시예에 따라 깊이 영상의 영역을 분리하는 실시예를 도시한 도면이다.
PSIP 모드도 부호화 장치와 복호화 장치에 적용되며, 인트라 예측을 통해 깊이 영상의 압축 효율을 향상시킬 수 있다. 기존의 H.264/AVC는 9가지 예측 모드를 사전에 정의하고, 각 예측 모드마다 매크로블록의 주변에 위치한 복호화된 픽셀로부터 현재 부호화하고자 하는 매크로블록의 픽셀 정보를 예측할 수 있다. 그리고, H.264/AVC에서는 9가지의 예측 모드에서 가장 RD cost가 적은 값을 가지는 예측 모드를 최종적으로 선택하여 부호화한다. 여기서, 9가지 인트라 예측 모드는 vertical 모드, horizontal 모드, DC 모드, Digonal-Down-Left 모드, Digonal-Down-Right 모드, Vertical-Right 모드, Horizontal-Down 모드, Vertical-Left 모드, 및 Horizontal 모드를 포함할 수 있다.
PSIP는 컬러 영상에 최적화된 9가지의 예측 모드 이외에 깊이 영상에 최적화된 새로운 모드를 의미한다. 깊이 영상은 piece-wise planner 성질을 나타내기 때문에 깊이 영상에 존재하는 매크로블록 내부는 기본적으로 복수 개의 독립적인 평면들이 서로 접하고 있다고 가정한다. PSIP는 매크로블록 내부의 평면들의 대표값을 이용하여 예측 정확도를 높이는 방식이다.
도 4를 참고하면, NxN 매크로블록을 예측하기 위해 매크로블록 주변에 이미 복호화된 주변 픽셀값(R1 ... R2N)들은 k개의 대표값으로 분리될 수 있다. 도 14는 k=2인 경우를 나타내며, 매크로블록의 이웃 영역에 포함된 주변 픽셀들은 R1~R4와 R5~R8와 같이 2개의 영역으로 분리될 수 있다. 즉, 이웃 영역은 k개의 영역으로 분할될 수 있다.
주변 픽셀들을 분리하는 방법은 미리 설정된 기준값(T)보다 큰 픽셀과 작은 픽셀로 구분하는 방법을 포함할 수 있다. 여기서, 기준값은 매크로블록의 주변 픽셀들의 평균값, 중간값 또는 최대/최소값 등 여러가지 방식에 따라 결정될 수 있다.
매크로블록에 인접한 복호화된 주변 픽셀들은 기준값에 따라 k개 종류로 분류되고, 각 분류된 주변 픽셀의 값들을 평균을 구하여 각각의 영역의 대표값인 P1 내지 Pk가 결정될 수 있다. 부호화 장치는 결정된 K개의 대표값을 이용하여 부호화 하고자 하는 NxN 매크로블록 내의 모든 픽셀들의 픽셀값들 (C1~CNxN)을 Pr (1<r<k)로 예측할 수 있다. 이 때, 부호화 장치는 예측하고자 하는 매크로블록 내의 픽셀을 예측할 때, 상기 픽셀의 픽셀값과 가장 유사한 대표값으로 Pr을 예측할 수 있다. 예측 결과에 따라 도출된 잔차 신호는 변환, 양자화를 거쳐 엔트로피 부호화될 수 있다.
일실시예에서, 분할된 영역의 개수를 나타내는 k는 2 이상인 경우를 나타내며, k=1인 경우 기존의 H.264/AVC에서 정의하는 DC 모드와 일치한다. 대표값은 매크로블록을 효율적으로 부호화할 수 있는 값으로 선정되며, 따로 복호화 장치에 전송될 수 있다. 일례로, 대표값은 프레임별로, GOP(Group of picture)별로 또는 일정 영역별로 가변적으로 결정될 수 있다.
그리고, H.264/AVC에서 정의하고 있는 인트라 예측 모드는 DC 모드를 포함한다. 일실시예에 따른 PSIP 모드는 H.264/AVC에서 정의하고 있는 인트라 예측 모드 중 DC 모드와 공유될 수 있다. 결국, PSIP 모드는 기존 H.264/AVC와 DC 모드를 공유하기 때문에, H.264/AVC에서 정의하고 있는 인트라 예측 모드 9가지를 그대로 유지할 수 있어 제안 모드인 PSIP 모드를 선택할 때 발생할 수 있는 추가적인 플래그 비트를 줄일 수 있다.
도 15는 일실시예에 따라 4x4 블록에서 예측 정보의 패턴 코드를 정의한 실시예를 도시한 도면이다.
깊이 영상을 부호화할 때, 매크로블록에 포함된 픽셀 C1~CNxN가 실제로 어떤 대표값으로 예측되었는지를 나타내는 정보는 손실없이 부호화되어 복호화 장치에 전송될 필요가 있다. 이와 같이, 픽셀이 예측될 때 사용된 정보는 예측 맵(prediction map)으로 정의될 수 있다. 예측 맵을 부호화하는 경우, 픽셀당 log2(k) bit가 필요하기 때문에 NxN 매크로블록의 경우 N2log2(k) bits 가 전송될 필요가 있다. NxN 매크로블록과 관련된 예측 맵을 그대로 전송하는 경우 많은 비트가 요구되므로, 예측맵을 위한 비트를 줄이는 방법이 요구된다.
예를 들어, N=4, k=2인 경우 예측맵을 부호화하기 위해 픽셀당 log2(2)=1 bit가 필요하게 되므로 매크로블록당 전송해야 할 비트가 전체 16bit가 필요하다. 이 경우, 4x4 매크로블록에서 발생하는 모든 예측 맵의 패턴을 포함할 수 있다. 하지만, 깊이 영상의 piece-wise planner 특성을 최대한 활용하는 경우, 16가지 패턴이 모두 필요하지 않다.
일실시예에 따르면, PSIP 모드는 도 15의 A와 같이 4x4 매크로블록에서 하나의 row 또는 column에서 piece-wise planner 특성으로 인해 자주 발생하는 패턴만을 룩업 테이블(look-up table)에 넣고, 이를 코드화 하여 전송할 수 있다. 도 15의 A를 살펴보면, 총 8가지 패턴을 이용하기 때문에 원래 16가지 패턴보다 절반으로 감소할 수 있다. 일실시예에 따르면, 도 15의 A 패턴을 이용하고 2번 이상의 전이가 발생하는 B 패턴은 이용하지 않는다.
도 16은 일실시예에 따라 예측 정보의 패턴 코드를 도시한 도면이다.
도 15에서 볼 수 있듯이, 주어진 매크로블록을 A패턴으로 코드화할 수 있으나, 사용되지 않는 B패턴에 해당하는 경우 코드화할 수 없다. 이 경우, 제안된 PSIP 모드는 강제로 종료되고, 기존 모드가 선택된다. 한편, 도 15의 A는 가로 방향으로 적합한 패턴을 나타낸다. 하지만, 세로 방향으로 적합한 패턴이 발생할 수도 있다.
도 16을 참고하면, 도 16(a)와 같이 행 방향(row)에 따라 도 15에 도시된 예측 맵의 패턴 코드가 발생할 수 있다. 그리고, 도 16(c)와 같이 열 방향(column)에 따라 도 15에 도시된 예측 맵의 패턴 코드가 발생할 수 있다. 또는, 블록 중 일정 영역에서 도 15에 도시된 예측 맵의 패턴 코드가 발생할 수 있다. 이 경우, 부호화 장치는 패턴 코드가 발생한 방향도 예측 맵과 함께 부호화할 수 있다.
다만, 도 16(b)와 같이 열 방향이나 행 방향에 의해서도 패턴 코드가 발생하지 않는 경우, 부호화 장치는 제안 모드에 따라 부호화하지 않고, 기존의 H.264/AVC에서 정의하고 있는 인트라 예측 모드 중 어느 하나의 예측 모드에 따라 매크로블록을 부호화할 수 있다.
도 17은 일실시예에 따라 차분을 이용하여 예측 정보의 패턴 코드를 부호화하는 과정을 도시한 도면이다.
예측 맵을 부호화할 때 각 코드는 독립저으로 부호화될 수 있다. 하지만, 일실시예에 따르면, 예측 맵을 부호화할 때 발생하는 비트량을 줄이기 위해 row 또는 column 단위로 코드의 차분값을 저장할 수 있다.
도 17을 참고하면, 부호화 장치는 row에 따라 순차적으로 코드값을 저장하는 경우 1 -> 3 -> 4 ->  4 을 차례대로 저장하는 대신에 row 간의 차분값인 +1 -> +2 -> +1 -> 0 을 부호화할 수 있다. 이 때 발생하는 row 차분값은 CABAC(context-adaptive binary arithmetic coding)/CAVLC(context-adaptive variable-length coding) 중 어느 하나에 따라 무손실(lossless)적으로 부호화될 수 있다. 도 17은 row 단위로 차분값을 계산하는 것을 도시하고 있지만, column 단위로 차분값을 계산하는 것도 포함할 수 있다.
도 18은 일실시예에 따라 예측 정보를 분리하는 과정을 도시한 도면이다.
앞서 설명한 실시예들은 대표값인 k=2일 경우를 가정한다. 만약 k=3인 경우는 바이너리 형태의 예측 맵이 (k-1)개가 생성된다. 이 경우, 앞서 설명한 예측맵을 부호화하는 과정은 (k-1)번 수행된다.
앞서 설명한 설명들은 대표값인 k=2인 경우를 의미하며, 도 8은 k=3인 경우 예측 정보를 부호화하는 과정을 나타낸다. 도 18을 참고하면, k=3인 예측 정보는 k=2인 예측 정보가 2개로 분리될 수 있다. 구체적으로, k=3인 예측 정보는 0과 1을 "0"으로 설정하고, 2를 "1"로 설정한 예측 정보와 0을 "0"으로 설정하고, 1과 2를 "1"로 설정한 예측 정보로 분리될 수 있다. 즉, 대표값이 k인 예측 정보는 k-1개의 예측 정보로 분리될 수 있다.
도 19는 제안 모드(PSIP)와 기존 모드를 선택하는 과정을 도시한 도면이다.
단계(1901)에서, 부호화 장치는 기존의 인트라 모드로 부호화할 수 있다. 이 때, 부호화 장치는 DAVC와 RAVC를 계산할 수 있다. 여기서, DAVC는 기존의 인트라 모드를 적용했을 때의 왜곡량을 나타내고, RAVC는 기존의 인트라 모드를 적용했을 때의 비율을 나타낸다.
단계(1902)에서, 부호화 장치는 기존의 인트라 모드로 부호화했을 때의 RD-cost를 계산할 수 있다. 기존의 인트라 모드로 부호화했을 때의 RD-cost는 JAVC를 의미한다.
단계(1903)에서, 부호화 장치는 제안된 인트라 모드로 부호화할 수 있다. 이 때, 부호화 장치는 Dprop와 Rprop를 계산할 수 있다. 여기서, Dprop는 제안된 인트라 모드를 적용했을 때의 왜곡량을 나타내고, Rprop는 제안된 인트라 모드를 적용했을 때의 비율을 나타낸다.
단계(1904)에서, 부호화 장치는 제안된 인트라 모드를 적용할 때 사용된 예측맵을 위한 비트를 계산할 수 있다.
단계(1905)에서, 부호화 장치는 제안된 인트라 모드로 부호화했을 때의 RD-cost를 계산할 수 있다. 제안된 인트라 모드로 부호화했을 때의 RD-cost는 Jprop를 의미한다. 여기서, 제안된 인트라 모드를 부호화했을 때의 RD-cost는 예측맵을 위한 비트도 추가적으로 고려될 필요가 있다.
그러면, 부호화 장치는 JAVC와 Jprop를 비교하여 작은값을 나타내는 인트라 모드를 선택할 수 있다. 이 후, 부호화 장치는 단계(1906)에서 선택한 인트라 모드를 이용하여 변환/양자화할 수 있고, 단계(1907)에서 엔트로피 부호화할 수 있다.
도 20은 제안 모드(PSIP)를 선택적으로 적용하는 과정을 도시한 도면이다.
일실시예에 따른 PSIP 모드는 일반적으로 매크로블록의 주변 픽셀들이 2가지 이상의 깊이값으로 뚜렷하게 분리될 때 효과적이다. 한편, 제안된 인트라 모드인 PSIP 모드는 H.264/AVC에서 사용하는 DC 모드를 공유할 수 있다. 그래서, 부호화 장치는 매크로블록의 주변 픽셀의 조건에 따라 제안 모드 또는 기존의 DC 모드 중 어느 하나를 선택할 수 있다.
단계(2001)에서, 부호화 장치는 매크로블록의 주변 픽셀을 체크할 수 있다. 그리고, 단계(200)에서, 부호화 장치는 주변 픽셀들의 최대값과 최소값의 차이가 미리 설정한 임계치(Th)보다 큰 지 여부를 판단할 수 있다. 만약, 주변 픽셀들의 최대값과 최소값의 차이가 미리 설정한 임계치(Th)보다 큰 경우, 단계(2003)에서 부호화 장치는 제안 모드를 선택할 수 있다. 그리고, 주변 픽셀들의 최대값과 최소값의 차이가 미리 설정한 임계치(Th)보다 작거나 같은 경우, 단계(2004)에서 부호화 장치는 기존의 DC 모드를 선택할 수 있다.
이와 같은 과정에 따라 H.264/AVC에서 사용하는 9가지의 예측 모드를 그대로 유지할 수 있어서, 제안 모드를 선택할 때 발생하는 플래그 비트가 감소될 수 있다.
도 21은 제안 모드(PSIP)를 적용하여 깊이 영상을 부호화하는 과정을 도시한 도면이다.
단계(2101)에서, 부호화 장치는 매크로블록의 주변 픽셀들을 포함하는 이웃 영역을 K개의 영역으로 분할할 수 있다. 여기서, 이웃 영역은 이웃 영역에 포함된 주변 픽셀들의 기준값에 기초하여 분할될 수 있다. 제안 모드에 따르면, K는 2이상을 의미한다.
단계(2102)에서, 부호화 장치는 K개의 영역 각각에 대해 대표값을 계산할 수 있다. 여기서, 대표값은 K개 영역 각각에 속한 픽셀들의 깊이값을 평균함으로써 결정될 수 있다.
단계(2103)에서, 부호화 장치는 매크로블록인 타겟 블록을 대표값에 기초하여 예측하고, 예측할 때 어떠한 대표값이 사용되었는지를 나타내는 예측맵을 획득할 수 있다.
단계(2104)에서, 부호화 장치는 예측 맵을 부호화할 수 있다. 일실시예에 따르면, 부호화 장치는 예측맵을 row 또는 column 단위의 차분값으로 부호화함으로써 예측맵의 부호화 효율을 향상시킬 수 있다.
단계(2105)에서, 부호화 장치는 예측 결과에 따라 발생된 잔차 신호를 부호화할 수 있다.
도 22는 제안 모드(PSIP)를 적용하여 깊이 영상을 복호화하는 과정을 도시한 도면이다.
단계(2201)에서, 복호화 장치는 매크로블록의 주변 픽셀들을 포함하는 이웃 영역을 K개의 영역으로 분할할 수 있다. 여기서, 이웃 영역은 이웃 영역에 포함된 주변 픽셀들의 기준값에 기초하여 분할될 수 있다. 제안 모드에 따르면, K는 2이상을 의미한다.
단계(2202)에서, 복호화 장치는 K개의 영역 각각에 대해 대표값을 계산할 수 있다. 여기서, 대표값은 K개 영역 각각에 속한 픽셀들의 깊이값을 평균함으로써 결정될 수 있다.
단계(2203)에서, 복호화 장치는 매크로블록인 타겟 블록을 대표값에 기초하여 예측하고, 예측할 때 어떠한 대표값이 사용되었는지를 나타내는 예측맵을 획득할 수 있다.
단계(2204)에서, 복호화 장치는 예측 맵을 복호화할 수 있다. 일실시예에 따르면, 복호화 장치는 예측맵을 row 또는 column 단위의 차분값으로 복호화함으로써 예측맵의 복호화 효율을 향상시킬 수 있다.
단계(2205)에서, 복호화 장치는 예측 결과에 따라 발생된 잔차 신호를 복호화할 수 있다. 그러면, 복호화 장치는 예측맵을 통해 도출된 매크로블록의 예측값에 복호화된 잔차 신호를 더하여, 매크로블록의 깊이값을 정확하게 복호화할 수 있다.
이하에서는 PSIP 모드가 적용될 때의 처리 과정에 대해 구체적으로 설명하기로 한다.
(1) PSIP를 intra DC mode에 적용하는 경우, DC 모드는 다른 방향성 모드보다 높은 순위를 가진다. 즉, intra 4x4와 intra 8x8의 경우 9가지의 방향성 정보를 효과적으로 부호화 하기 위해 이미 부호화된 인접 블록의 방향성을 이용하여 vertical, horizontal, DC 이외에 다른 방향성들의 순서에 따라 우선 순위를 설정하여 현재 모드를 예측할 수 있다.
그리고 예측 방향성과 현재 방향성이 동일하면 부호화 장치는 1비트를 사용하여 방향성 정보를 부호화 하고, 그렇지 않은 경우는 같지 않음을 나타내는 한 비트의 flag와 남은 8가지 방향성 중에 하나임을 나타내기 위해 부호화 장치는 3비트를 추가로 사용하여 방향성 정보를 부호화할 수 있다. 즉, 예측 방향성과 현재 방향성이 동일하면 부호화 장치는 1비트만으로 방향성 정보를 부호화하지만, 그렇지 않으면 4비트로 방향성 정보를 부호화할 수 있다.
그래서, PSIP를 적용할 때 방향성이 제대로 예측되지 않으면 더 많은 비트가 요구된다. 따라서 PSIP가 DC 모드에 적용되면 예측 방향성을 무조건 DC로 설정하여, PSIP 모드가 적용된 DC 모드를 부호화할 때 1비트만이 요구되도록 하였다.
 
(2) PSIP 모드는 추가적인 비트가 요구되더라도 깊이 영상으로 생성된 합성 영상의 화질을 향상시키는 것을 목적으로 한다. 따라서 가급적 깊이 영상의 깊이값이 손실되지 않고 유지되는 것이 필요하다.
그래서, PSIP 모드가 적용된 경우 intra mode라고 하더라도 디블록킹 필터를 적용하는 경우, 경계 강도(boundary strength: BS)를 상대적으로 약하게 적용할 수 있다. 실제로 기존의 H.264/AVC에서 intra mode일 경우 BS가 4 또는 3이었으나, PSIP 모드가 적용되는 경우 BS는 1 또는 0으로 설정될 필요가 있다.
 
(3) PSIP 모드는 독립적인 부호화 모드로 정의되거나 또는 기존의 intra 모드를 대체하여 사용될 수 있다. 즉, PSIP 16x16는 기존의 intra16x16 모드의 DC 모드에 대체되었으나, PSIP 모드가 독립적인 부호화 모드로 정의되는 경우, PSIP 모드를 intra 16x16 모드 자체로 대체할 수 있다. 이 경우 기존의 intra16x16 모드에서 vertical, horizontal, DC, plane이라는 방향성을 구분하는 모드가 불필요해진다. 이 때, 기존의 vertical, horizontal, plane의 방향성은 PSIP 모드에 의해 커버될 수 있다.
 
(4) PSIP의 예측맵을 결정할 때 RDO 모델을 이용하여 최적화 할 수 있다. 일례로, 예측 맵의 패턴이 1112를 갖는 경우 이를 1111로 부호화 하는 것이 비트를 더 적게 소모할 수 있다. 따라서 예측 맵의 다양한 패턴에 대해 RDO를 적용하여 최적의 pattern map을 결정할 수 있다.
 
(5) PSIP 모드를 부호화 장치에 최적화
PSIP 모드를 적용할 때, 잔차 신호가 0인 경우와는 별도로 RDO 관점에서 부호화 장치에 최적화할 수 있다. 즉, 부호화 장치가 PSIP 모드를 선택할 때 잔차 신호가 발생하더라도, 부호화 장치는 잔차신호를 모두 0으로 가정하여 부호화할 수 있다. 이 경우, PSIP 모드에 의한 예측 맵은 별도로 부호화되어 복호화 장치에 전송되어야 한다.
 
(6) PSIP 모드를 적용할 때, 기존의 모드를 대체하거나 새로운 모드로 정의하여 사용할 수 있다. 그리고 새로운 flag를 정의하여 적용할 수도 있다.
(i) 기존의 모드를 대체하는 방법
(ii) 새로운 flag를 정의하여 PSIP 모드와 다른 모드를 구분하는 방법
 일레로, skip flag 이후 기존 skip 모드인지 인트라 SKIP 모드를 나타내는 DISP skip 인지 구분하는 flag를 수학식 9에 따라 정의할 수 있다. 여기서, 0과 1은 바뀔 수 있다.
Figure pat00015
 만약, Skip_flag가 1로 설정되는 경우, 복호화 장치는 PSIP 모드가 설정된 것으로 판단할 수 있다. Skip_flag가 0으로 설정되는 경우, 복호화 장치는 PSIP 모드가 아닌 잔차 신호를 부호화하는 기존의 예측 모드로 설정된 것으로 판단할 수 있다.
다른 일례로, 기존 skip이 아닌 경우에 대해 PSIP skip인 경우와 나머지 모드를 구분하는 flag를 수학식 10에 따라 정의할 수 있다. 여기서, 0과 1은 바뀔 수 있다.
Figure pat00016
만약, mb_skip_flag가 0인 경우, 복호화 장치는 PSIP_skip_flag에 기초하여 PSIP 모드로 설정된 것으로 판단할 수 있다. 이 때, PSIP_skip_flag가 0인 경우, 복호화 장치는 PSIP 모드가 아닌 잔차 신호를 부호화하는 기존의 예측 모드로 설정된 것으로 판단할 수 있다.
또 다른 일례로, PSIP skip이 아닌 경우에 대해 기존 skip인 경우와 나머지 모드를 구분하는 flag를 수학식 11에 따라 정의할 수 있다. 여기서, 0과 1은 바뀔 수 있다.
Figure pat00017
만약, PSIP_skip_flag가 0인 경우, 복호화 장치는 기존의 SKIP 모드인지 여부를 판단할 수 있다. 이 때, mb_skip_flag가 0인 경우, 복호화 장치는 잔차 신호를 부호화하는 기존의 예측 모드로 설정된 것으로 판단할 수 있다.
(7) 예측 맵에 대해 생성된 PSIP 코드를 그대로 사용하지 않고, 한번 더 변형된 코드를 재설정하여 사용할 수 있다.
일례로, 연속된 두 개의 코드의 부호가 유사하다는 점을 이용하여, { -1, -3, 0, -1, -1 } 을 부호화 하는 경우, 두번째 이후의 코드는 앞의 코드와 같은 부호일 경우와 다른 경우를 분리하여 { -1, +3, 0, +1, +1 }로 부호화할 수 있다. 이렇게 되면 '+' 부호가 많이 생기게 되며, 이점을 이용하여 비트량을 줄일 수 있다.
다른 일례로, 두개 이상의 코드를 다시 하나의 코드로 설정하여 코드의 길이를 줄이고, 자주 발생하지 않는 코드를 없애는 방법도 적용될 수 있다.
 
 (8) 앞서 설명한 PSIP 모드에 따라 수행되는 깊이 영상의 부호화/복호화는 이하에서 제시된 방식에 따라 처리될 수 있다.
시퀀스 파라미터 셋트는 하기 표 11의 신택스에 따라 처리될 수 있다.
seq_parameter_set_3dvc_extension( ) { C Descriptor
for( i = 0; i <= num_level_values_signalled_minus1; i++ )
for( j = 0; j <= num_applicable_ops_minus1[ i ]; j++ )
applicable_op_num_depth_views_minus1[ i ][ j ] ue(v)
depth_info_present_flag 0 u(1)
if( depth_info_present_flag ) {
3dv_acquisition_idc 0 ue(v)
for( i = 0; i < num_views_minus1; i++ )
view_id_3dv[ i ] 0 ue(v)
if( 3dv_acquisition_idc  ) {
depth_ranges( 2, 0 )
if( profile_idc = = 139 && num_views_minus1 )
vsp_param( 2, 0  )
}
if ( profile_idc = = 139 )
for( i = 0; i<= num_views_minus1; i++ )
depth_preceding_texture_flag[ i ] 0 u(1)
}
if( profile_idc = = 139 && depth_info_present_flag ) {
reduced_resolution_flag 0 u(1)
slice_header_prediction_flag 0 u(1)
inside_view_mvp_flag 0 u(1)
seq_view_synthesis_flag 0 u(1)
disp_flag 0 u(1)
psip_flag 0 u(1)
nonlinear_depth_representation_num 0 ue(v)
for( i = 1; i <= nonlinear_depth_representation_num; i++ )
nonlinear_depth_representation_model[ i ] 0 ue(v)
}
if( profile_idc = = 139 && !depth_info_present_flag )
alc_sps_enable_flag 0 u(1)
}
psip_flag가 1이라는 것은, 현재 시퀀스 파라미터 셋트를 나타내는 모든 시점 컴포넌트에 대해 PSIP(plane segmentation based intra prediction)가 사용가능하다는 것을 나타낸다. 그리고, psip_flag가 0이라는 것은 모든 시점 컴포넌트에 대해 PSIP가 사용가능하지 않다는 것을 나타낸다.
매크로블록 예측은 하기 표 12의 신택스에 따라 처리될 수 있다.
mb_pred( mb_type ) { C Descriptor
if( MbPartPredMode( mb_type, 0 ) = = Intra_4x4 | |
MbPartPredMode( mb_type, 0 ) = = Intra_8x8 | |
MbPartPredMode( mb_type, 0 ) = = Intra_16x16 ) {
if( MbPartPredMode( mb_type, 0 ) = = Intra_4x4 ){
for( luma4x4BlkIdx=0; luma4x4BlkIdx<16; luma4x4BlkIdx++ ) {
prev_intra4x4_pred_mode_flag[ luma4x4BlkIdx ] 2 u(1) | ae(v)
if( !prev_intra4x4_pred_mode_flag[ luma4x4BlkIdx ] )
rem_intra4x4_pred_mode[ luma4x4BlkIdx ] 2 u(3) | ae(v)
}
for( luma4x4BlkIdx=0; luma4x4BlkIdx<16; luma4x4BlkIdx++ ) {
if( psip_flag && Psip4x4Available
&& Intra4x4PredMode[luma4x4BlkIdx] = = 2 ){
psip4x4_dir[ luma4x4BlkIdx ] 2 u(1)
for( idxRowCol=0; idxRowCol<4; idxRowCol++ )
psip4x4_code_diff[ luma4x4BlkIdx ][ idxRowCol ] 2 se(v) | ae(v)
[Ed. CAVLC syntax missing]
}
}
}
if( MbPartPredMode( mb_type, 0 ) = = Intra_8x8 ){
for( luma8x8BlkIdx=0; luma8x8BlkIdx<4; luma8x8BlkIdx++ ) {
prev_intra8x8_pred_mode_flag[ luma8x8BlkIdx ] 2 u(1) | ae(v)
if( !prev_intra8x8_pred_mode_flag[ luma8x8BlkIdx ] )
rem_intra8x8_pred_mode[ luma8x8BlkIdx ] 2 u(3) | ae(v)
}
for( luma8x8BlkIdx =0; luma8x8BlkIdx <4; luma8x8BlkIdx ++ ) {
if( psip_flag && Psip8x8Available
&& Intra8x8PredMode[luma4x4BlkIdx] = = 2 ){
psip8x8_dir[ luma8x8BlkIdx ] 2 u(1)
for( idxRowCol=0; idxRowCol<8; idxRowCol++ )
psip8x8_code_diff[ luma8x8BlkIdx ][idxRowCol] 2 se(v) | ae(v)
}
}
}
if( MbPartPredMode( mb_type, 0 ) = = Intra_16x16 ) {
if( psip_flag && Psip16x16Available
&& Intra16x16PredMode = = 2 ){
psip16x16_dir 2 u(1)
for( idxRowCol=0; idxRowCol<16; idxRowCol++ )
psip16x16_code_diff[ idxRowCol ] 2 se(v) | ae(v)
}
}
if( ChromaArrayType = = 1 | | ChromaArrayType = = 2 )
intra_chroma_pred_mode 2 ue(v) | ae(v)
} else if( MbPartPredMode( mb_type, 0 ) != Direct ) {
for( mbPartIdx = 0; mbPartIdx < NumMbPart( mb_type ); mbPartIdx++)
if( ( num_ref_idx_l0_active_minus1 > 0 | |
mb_field_decoding_flag != field_pic_flag ) &&
MbPartPredMode( mb_type, mbPartIdx ) != Pred_L1 &&
mb_alc_flag = = 0 )
ref_idx_l0[ mbPartIdx ] 2 te(v) | ae(v)
for( mbPartIdx = 0; mbPartIdx < NumMbPart( mb_type ); mbPartIdx++)
if( ( num_ref_idx_l1_active_minus1 > 0 | |
mb_field_decoding_flag != field_pic_flag ) &&
MbPartPredMode( mb_type, mbPartIdx ) != Pred_L0 )
ref_idx_l1[ mbPartIdx ] 2 te(v) | ae(v)
for( mbPartIdx = 0; mbPartIdx < NumMbPart( mb_type ); mbPartIdx++)
if( MbPartPredMode ( mb_type, mbPartIdx ) != Pred_L1 &&
VspRefL0Flag[ mbPartIdx ] )
for( compIdx = 0; compIdx < 2; compIdx++ )
mvd_l0[ mbPartIdx ][ 0 ][ compIdx ] 2 se(v) | ae(v)
for( mbPartIdx = 0; mbPartIdx < NumMbPart( mb_type ); mbPartIdx++)
if( MbPartPredMode( mb_type, mbPartIdx ) != Pred_L0 &&
VspRefL1Flag[ mbPartIdx ] )
for( compIdx = 0; compIdx < 2; compIdx++ )
mvd_l1[ mbPartIdx ][ 0 ][ compIdx ] 2 se(v) | ae(v)
}
}
psip_4x4_dir은 Intra_4x4_DC_PSIP mode lumma block에 대한 패턴 코드 방향(pattern code direction)을 나타낸다. psip_4x4_dir가 0이라는 것은 psip 패턴 코드가 row-by-row 방향으로 생성된 것을 나타내고, psip_4x4_dir가 1이라는 것은 psip 패턴 코드가 column-by-column 방향으로 생성된 것을 나타낸다.
psip_4x4_code_diff 는 -4에서 3까지의 범위에서 2개의 인접한 row 또는 열 간의 패턴 코드의 차이를 나타낸다.
만약 디블록킹 필터링 전에 구축된 밝기 샘플들인 8개의 주변 샘플들 p[x,y] (x=-1, y=0~3 및 x=0~3, y=-1)이 "available for Intra_4x4_prediction"로 마킹된 경우, Psip4x4Available는 1로 설정될 수 있다.
psip_8x8_dir은 Intra_8x8_DC_PSIP mode lumma block에 대한 패턴 코드 방향을 나타낸다. psip_8x8_dir이 0이라는 것은, psip 패턴 코드가 row-by-row로 생성되고, psip_8x8_dir이 1이라는 것은, psip 패턴 코드가 column-by-column로 생성된다는 것을 나타낸다.
psip_8x8_code_diff 는 -8에서 7까지의 범위에서 2개의 인접하는 row 또는 column 간의 패턴 코드의 차이를 나타낸다.
만약 디블록킹 필터링 전에 구축된 밝기 샘플들인 16개의 주변 샘플들 p[x,y] (x=-1, y=0~7 및 x=0~7, y=-1)이 "available for Intra_8x8_prediction"로 마킹된 경우, Psip8x8Available는 1로 설정될 수 있다.
psip_16x16_dir은 Intra_16x16_DC_PSIP mode lumma block에 대한 패턴 코드 방향을 나타낸다. psip_16x16_dir이 0이라는 것은, psip 패턴 코드가 row-by-row로 생성되고, psip_16x16_dir이 1이라는 것은, psip 패턴 코드가 column-by-column로 생성된다는 것을 나타낸다.
psip_16x16_code_diff 는 -16에서 15까지의 범위에서 2개의 인접하는 row 또는 column 간의 패턴 코드의 차이를 나타낸다.
만약 address mbAddrA 및 mbAddrB를 가지는 매크로블록 모두가 사용가능한 경우, Psip16x16Available는 1로 설정될 수 있다.
(i) PSIP에서 Intra4x4PredMode는 다음과 같은 과정을 통해 처리될 수 있다. 
먼저, Intra4x4PredMode[ luma4x4BlkIdx ]의 이름은 하기 표 13과 같다.
Intra4x4PredMode[luma4x4BlkIdx] Name of Intra4x4PredMode[ luma4x4BlkIdx ]
0 Intra_4x4_Vertical (prediction mode)
1 Intra_4x4_Horizontal (prediction mode)
2 Intra_4x4_DC_PSIP(prediction mode)
3 Intra_4x4_Diagonal_Down_Left (prediction mode)
4 Intra_4x4_Diagonal_Down_Right (prediction mode)
5 Intra_4x4_Vertical_Right (prediction mode)
6 Intra_4x4_Horizontal_Down (prediction mode)
7 Intra_4x4_Vertical_Left (prediction mode)
8 Intra_4x4_Horizontal_Up (prediction mode)
여기서, Intra_4x4_DC는 Intra_4x4_DC_PSIP로 대체될 수 있다.
Intra4x4PredMode[luma4x4BliIdx]는 하기 표 14의 신택스에 따라 도출될 수 있다.
-predIntra4x4PredMode = Min( intraMxMPredModeA, intraMxMPredModeB )
is replaced by
if(psip_flag)
predIntra4x4PredMode = Intra_4x4_DC_PSIP_MODE;
else
predIntra4x4PredMode = Min( intraMxMPredModeA, intraMxMPredModeB )
RepVal4x4 및 PredictionMap4x4의 도출 과정은 다음과 같다.
만약, Intra4x4PredMod가 2이고, Psip4x4Available가 1이며, nal_unit_type이 21인 경우, RepVal4x4 및 PredictionMap4x4이 도출될 수 있다.
이 과정에서 입력은 다음과 같다.
-4x4 luma block luma4x4BlkIdx의 인덱스
- (PicWidthInSamplesL)x(PicHeightInSamplesL) array cSL
array SL은 주변 매크로블록들의 디블록킹 필터링 전에 구축된 밝기 샘플들이다.
그리고, 이 과정에서 출력은 변수 RepVal4x4[luma4x4BlkIdx][i] (i=0,1)과 PredictionMap4x4[luma4x4BlkIdx][x,y](x,y=0~3)이다.
RepVal4x4[luma4x4BlkIdx]의 도출과정은 다음의 표 15의 신택스를 통해 도출될 수 있다.
Let p0[x] = p[x,-1], with x=0..3, and p0[y+4] = p[-1,y], with y=0..3.
Let Th = ( Min(p0[0], .. , p0[7] ) + Max(p0[0], .., p0[7]) ) >> 1.
Set sum1 = sum2 = n1 = n2 = 0.
For each n from 0 through 7 inclusive, sum1 = sum1 + p0[n] and n1 = n1 + 1, if p0[n] <= Th.
For each n from 0 through 7 inclusive, sum2 = sum2 + p0[n] and n2 = n2 + 1, if p0[n] > Th.
Set avg1 = sum1 ÷ n1, avg2 = sum2 ÷n2.
Set RepVal4x4[luma4x4BlkIdx][0] = avg1, RepVal4x4[luma4x4BlkIdx][1] = avg2.
Reset Th = ( avg1 + avg2 ) >> 1.
그리고, PredictionMap4x4[luma4x4BlkIdx]는 다음의 표 16의 신택스를 통해 도출될 수 있다.
- If psip4x4_dir[luma4x4BlkIdx] is equal to 0,
1. If p[x,-1] <= Th, set PredictionMap4x4[luma4x4BlkIdx][x,-1] = 0, with x=0..3. Otherwise, set PredictionMap4x4[luma4x4BlkIdx][x,-1] = 1.
2. Convert PredictionMap4x4[luma4x4BlkIdx][x,-1], with x=0..3. to PredictionCode[-1].
3. For each n from 0 through 3 inclusive, PredictionCode[n] = (PredictionCode[n-1] + psip4x4_code_diff[luma4x4BlkIdx][n]+8)%8
4. For each n from 0 through 3 inclusive, convert PredictionCode[n] to PredictionMap4x4[luma4x4BlkIdx][x,n] with x=0..3

- If psip4x4_dir [luma4x4BlkIdx] is equal to 1,
1. If p[-1,y] <= Th, set PredictionMap4x4[luma4x4BlkIdx][-1,y] = 0, with y=0..3. Otherwise, set PredictionMap4x4[luma4x4BlkIdx][-1,y] = 1.
2. Convert PredictionMap4x4[luma4x4BlkIdx][-1,y], with y=0..3. to PredictionCode[-1].
3. For each n from 0 to 3 inclusive, PredictionCode[n] = ( PredictionCode[n-1] + psip4x4_code_diff[luma4x4BlkIdx][n]+8) % 8
4. For each n from 0 to 3 inclusive, , convert PredictionCode[n] to PredictionMap4x4[luma4x4BlkIdx][n,y] with y=0..3
PredictionCode 및 PredictionMap는 아래 표 17에 의해 특정될 수 있다.
PredictionCode PredictionMap4x4[luma4x4BlkIdx][x,A] with x=0...3
PredictionMap4x4[luma4x4BlkIdx][B,y] with y=0...3
0 0 0 0 0
1 0 0 0 1
2 0 0 1 1
3 0 1 1 1
4 1 1 1 1
5 1 1 1 0
6 1 1 0 0
7 1 0 0 0
Intra_4x4_DC_PSIP prediction mode는 다음 과정을 통해 특정될 수 있다.
만약, p[x, -1] (x=0~3)와 p[-1,y](y=0~3)이 모두 "available for Intra_4x4 prediction"로 마킹된 경우, 예측 샘플들인 pred4x4L[ x, y ] (x,y=0~3)의 값들은 하기 수학식 12에 따라 도출될 수 있다.
Figure pat00018
만약, p[x, -1] (x=0~3)와 p[-1,y](y=0~3)이 모두 "available for Intra_4x4 prediction"로 마킹되고, 이 과정의 입력이 RepVal[luma4x4BlkIdx] [n] (n=0,1)과 PredictionMap4x4[luma4x4BlkIdx][x,y](x,y=0~7)인 경우, 예측 샘플들인 pred4x4L[ x, y ] (x,y=0~3)의 값들은 하기 수학식 13에 따라 도출될 수 있다.
Figure pat00019
(ii) PSIP에서 Intra8x8PredMode는 다음과 같은 과정을 통해 처리될 수 있다. 
먼저, Intra8x8PredMode[ luma8x8BlkIdx ]의 이름은 하기 표 18과 같다.
Intra8x8PredMode[ luma8x8BlkIdx ] Name of Intra8x8PredMode[ luma8x8BlkIdx ]
0 Intra_8x8_Vertical (prediction mode)
1 Intra_8x8_Horizontal (prediction mode)
2 Intra_8x8_DC_PSIP(prediction mode)
3 Intra_8x8_Diagonal_Down_Left (prediction mode)
4 Intra_8x8_Diagonal_Down_Right (prediction mode)
5 Intra_8x8_Vertical_Right (prediction mode)
6 Intra_8x8_Horizontal_Down (prediction mode)
7 Intra_8x8_Vertical_Left (prediction mode)
8 Intra_8x8_Horizontal_Up (prediction mode)
여기서, Intra_8x8_DC는 Intra_8x8_DC_PSIP로 대체될 수 있다.
Intra8x8PredMode[luma4x4BliIdx]는 하기 표 19의 신택스에 따라 도출될 수 있다.
-predIntra8x8PredMode = Min( intraMxMPredModeA, intraMxMPredModeB )
is replaced by
if(psip_flag)
predIntra8x8PredMode = Intra_8x8_DC_PSIP_MODE;
else
predIntra8x8PredMode = Min( intraMxMPredModeA, intraMxMPredModeB )
 RepVal8x8 및 PredictionMap8x8의 도출 과정은 다음과 같다.
만약, Intra8x8PredMod가 2이고, Psip8x8Available가 1이며, nal_unit_type이 21인 경우, RepVal8x8 및 PredictionMap8x8이 도출될 수 있다.
이 과정에서 입력은 다음과 같다.
-8x8 luma block luma8x8BlkIdx의 인덱스
- (PicWidthInSamplesL)x(PicHeightInSamplesL) array cSL
array SL은 주변 매크로블록들의 디블록킹 필터링 전에 구축된 밝기 샘플들이다.
그리고, 이 과정에서 출력은 변수 RepVal8x8[luma8x8BlkIdx][i] (i=0,1)과 PredictionMap8x8[luma8x8BlkIdx][x,y](x,y=0~7)이다.
RepVal8x8[luma8x8BlkIdx]의 도출과정은 다음의 표 20의 신택스를 통해 도출될 수 있다.
1. Let p0[x] = p[x,-1], with x=0..7, and p0[y+8] = p[-1,y], with y=0..7.
2. Let Th = ( Min(p0[0], .. , p0[15] ) + Max(p0[0], .., p0[15]) ) >> 1.
3. Set sum1 = sum2 = n1 = n2 = 0.
4. For each n from 0 through 15 inclusive, sum1 = sum1 + p0[n] and n1 = n1 + 1, if p0[n] <= Th.
5. For each n from 0 through 15 inclusive, sum2 = sum2 + p0[n] and n2 = n2 + 1, if p0[n] > Th.
6. Set avg1 = sum1÷n1, avg2 = sum2 ÷n2.
7. Set RepVal8x8 [luma8x8BlkIdx][0] = avg1, RepVal8x8[luma8x8BlkIdx][1] = avg2.
8. Reset Th = ( avg1 + avg2 ) >> 1.
그리고, PredictionMap8x8[luma8x8BlkIdx]는 다음의 표 21의 신택스를 통해 도출될 수 있다.
- If psip8x8_dir[luma8x8BlkIdx] is equal to 0,
1. If p[x,-1] <= Th, set PredictionMap8x8[luma8x8BlkIdx][x,-1] = 0, with x=0..7. Otherwise, set PredictionMap8x8[luma8x8BlkIdx][x,-1] = 1.
2. Convert PredictionMap8x8[luma8x8BlkIdx][x,-1], with x=0..7. to PredictionCode[-1].
3. For each n from 0 through 7 inclusive, PredictionCode[n] = ( PredictionCode[n-1] + psip8x8_code_diff[luma8x8BlkIdx][n]+16)%16
4. For each n from 0 through 7 inclusive, convert PredictionCode[n] to PredictionMap8x8[luma8x8BlkIdx][x,n] with x=0..7 by Table 8-5.

- If psip8x8_dir [luma8x8BlkIdx] is equal to 1,
1. If p[-1,y] <= Th, set PredictionMap8x8[luma8x8BlkIdx][-1,y] = 0, with y=0..7. Otherwise, set PredictionMap8x8[luma8x8BlkIdx][-1,y] = 1.
2. Convert PredictionMap8x8[luma8x8BlkIdx][-1,y], with y=0...7. to PredictionCode[-1].
3. For each n from 0 through 7 inclusive , PredictionCode[n] = ( PredictionCode[n-1] + psip8x8_code_diff[luma8x8BlkIdx][n]+16)%16
4. For each n from 0 through 7 inclusive, convert PredictionCode[n] to PredictionMap8x8[luma8x8BlkIdx][n,y] with y=0..7.
PredictionCode 및 PredictionMap는 아래 표 22에 의해 특정될 수 있다.
PredictionCode PredictionMap8x8[luma8x8BlkIdx][x,A] with x=0..7
PredictionMap8x8[luma8x8BlkIdx][B,y] with y=0..7
0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 1 1
3 0 0 0 0 0 1 1 1
4 0 0 0 0 1 1 1 1
5 0 0 0 1 1 1 1 1
6 0 0 1 1 1 1 1 1
7 0 1 1 1 1 1 1 1
8 1 1 1 1 1 1 1 1
9 1 1 1 1 1 1 1 0
10 1 1 1 1 1 1 0 0
11 1 1 1 1 1 0 0 0
12 1 1 1 1 0 0 0 0
13 1 1 1 0 0 0 0 0
14 1 1 0 0 0 0 0 0
15 1 0 0 0 0 0 0 0
 
Intra_8x8_DC_PSIP prediction mode는 다음 과정을 통해 특정될 수 있다.
만약, p[x, -1] (x=0~37)와 p[-1,y](y=0~7)이 모두 " available for Intra_8x8 prediction"로 마킹된 경우, 예측 샘플들인 pred8x8L[ x, y ] (x,y=0~7)의 값들은 하기 수학식 14에 따라 도출될 수 있다.
Figure pat00020
만약, p[x, -1] (x=0~7)와 p[-1,y](y=0~7)이 모두 "available for Intra_8x8 prediction"로 마킹되고, 이 과정의 입력이 RepVal[luma8x8BlkIdx] [n] (n=0,1)과 PredictionMap8x8[luma8x8BlkIdx][x,y](x,y=0~7)인 경우, 예측 샘플들인 pred8x8L[ x, y ] (x,y=0~7)의 값들은 하기 수학식 15에 따라 도출될 수 있다.
Figure pat00021
(iii) PSIP에서 Intra16x16PredMode는 다음과 같은 과정을 통해 처리될 수 있다. 
 먼저, Intra4x4PredMode의 이름은 하기 표 23과 같다.
Intra16x16PredMode Name of Intra16x16PredMode
0 Intra_16x16_Vertical (prediction mode)
1 Intra_16x16_Horizontal (prediction mode)
2 Intra_16x16_DC_PSIP(prediction mode)
3 Intra_16x16_Plane (prediction mode)
 
RepVal16x16 및 PredictionMap16x16의 도출 과정은 다음과 같다.
만약, Intra16x16PredMod가 2이고, Psip16x16Available가 1이며, nal_unit_type이 21인 경우, RepVal16x16 및 PredictionMap16x16이 도출될 수 있다.
이 과정에서 입력은 다음과 같다.
- (PicWidthInSamplesL)x(PicHeightInSamplesL) array cSL
array SL은 주변 매크로블록들의 디블록킹 필터링 전에 구축된 밝기 샘플들이다.
그리고, 이 과정에서 출력은 변수 RepVal16x16 [i] (i=0,1)과 PredictionMap16x16 [x,y](x,y=0~15)이다.
RepVal16x16의 도출과정은 다음의 표 24의 신택스를 통해 도출될 수 있다.
1. Let p0[x] = p[x,-1], with x=0..15, and p0[y+16] = p[-1,y], with y=0..15.
2. Let Th = ( Min(p0[0], .. , p0[31] ) + Max(p0[0], .., p0[31]) ) >> 1.
3. Set sum1 = sum2 = n1 = n2 = 0.
4. For each n from 0 through 31 inclusive, sum1 = sum1 + p0[n] and n1 = n1 + 1, if p0[n] <= Th.
5. For each n from 0 through 31 inclusive, sum2 = sum2 + p0[n] and n2 = n2 + 1, if p0[n] > Th.
6. Set avg1 = sum1÷n1, avg2 = sum2 ÷n2.
7. Set RepVal16x16 [0] = avg1, RepVal16x16 [1] = avg2.
8. Reset Th = ( avg1 + avg2 ) >> 1.
그리고, PredictionMap16x16는 다음 표 25의 신택스를 통해 도출될 수 있다.
-If psip16x16_dir is equal to 0,
1. If p[x,-1] <= Th, set PredictionMap16x16[x,-1] = 0, with x=0..15. Otherwise, set PredictionMap16x16[x,-1] = 1.
2. Convert PredictionMap16x16[x,-1], with x=0..15. to PredictionCode[-1].
3. For each n from 0 to 15 inclusive, PredictionCode[n] = ( PredictionCode[n-1] + psip16x16_code_diff[n]+32)%32
4. For each n from 0 to 15 inclusive, convert PredictionCode[n] to PredictionMap16x16 [x,n] with x=0..15 by Table 8-7.

-If psip16x16_dir is equal to 1,
1. If p[-1,y] <= Th, set PredictionMap16x16[-1,y] = 0, with y=0..15. Otherwise, set PredictionMap16x16[-1,y] = 1.
2. Convert PredictionMap16x16[-1,y], with y=0..15. to PredictionCode[-1].
3 For each n from 0 to 15 inclusive, PredictionCode[n] = ( PredictionCode[n-1] + psip16x16_code_diff[n]+32) %32
4. For each n from 0 to 15 inclusive, convert PredictionCode[n] to PredictionMap16x16n,y] with y=0..15.
PredictionCode 및 PredictionMap는 아래 표 26에 의해 특정될 수 있다.
Prediction
Code
PredictionMap16x16[x,A] with x=0..15
PredictionMap16x16[B,y] with y=0..15
Prediction
Code
PredictionMap16x16[x,A] with x=0..15
PredictionMap16x16[B,y] with y=0..15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 17 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 19 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 20 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 21 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
6 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 22 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 23 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 24 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 25 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 26 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
11 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 27 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
12 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 28 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
13 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 29 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
14 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 30 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 31 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 
Intra_16x16_DC_PSIP prediction mode는 다음 과정을 통해 특정될 수 있다.
만약, p[x, -1] (x=0~15)와 p[-1,y](y=0~15)이 모두 " available for Intra_16x16 prediction"로 마킹된 경우, 예측 샘플들인 pred16x16L[ x, y ] (x,y=0~15)의 값들은 하기 수학식 16에 따라 도출될 수 있다.
Figure pat00022
만약, p[x, -1] (x=0~15)와 p[-1,y](y=0~15)이 모두 "available for Intra_16x16 prediction"로 마킹되고, 이 과정의 입력이 RepVal[n] (n=0,1)과 PredictionMap16x16 [x,y](x,y=0~15)인 경우, 예측 샘플들인 pred16x16L[ x, y ] (x,y=0~15)의 값들은 하기 수학식 17에 따라 도출될 수 있다.
Figure pat00023
(iv) I_PCM macroblocks을 위해 샘플을 구축하는 과정은 다음과 같다.
Intra4x4PredMode[luma4x4BliIdx]은 하기 표 27의 신택스에 의해 도출될 수 있다.
-predIntra4x4PredMode = Min( intraMxMPredModeA, intraMxMPredModeB )
 is replaced by

if(psip_flag)
predIntra4x4PredMode = Intra_4x4_DC_PSIP_MODE;
else
predIntra4x4PredMode = Min( intraMxMPredModeA, intraMxMPredModeB )
Intra8x8PredMode[luma8x8BliIdx]은 하기 표 28의 신택스에 의해 도출될 수 있다.
-predIntra8x8PredMode = Min( intraMxMPredModeA, intraMxMPredModeB )
 is replaced by
 
  if(psip_flag)
 predIntra8x8PredMode = Intra_8x8_DC_PSIP_MODE;
 else
 predIntra8x8PredMode = Min( intraMxMPredModeA, intraMxMPredModeB )
(v) 밝기 컨텐츠에 의존적인 경계 필터링 강도(boundary filtering strength)의 도출 과정은 다음과 같다.
경계 필터링 강도의 도출 과정은 "Output of this process is the variable bS"과 같은 구문을 추가함으로써 시작된다.
변수 bS는 PSIP가 사용가능한 경우에 도출된다. 그리고, 앞서 언급했던 DISP에서의 변수 bS의 조건들도 PSIP에 동일하게 적용될 수 있다.
-만약, psip_flag가 1이고, 샘플 p0와 q0가 I16x16 Mode로 코딩된 매크로블록 내부에 있고, 샘플 p0와 q0가 Intra_16x16_DC_PSIP_MODE로 코딩된 매크로블록 내부에 있는 경우, 변수 bS는 0으로 출력된다.
-만약, psip_flag가 1이고, 샘플 p0와 q0가 I8x8 Mode로 코딩된 매크로블록 내부에 있고, 샘플 p0와 q0가 Intra_8x8_DC_PSIP_MODE로 코딩된 매크로블록 내부에 있는 경우, 변수 bS는 0으로 출력된다.
-만약, psip_flag가 1이고, 샘플 p0와 q0가 I4x4 Mode로 코딩된 매크로블록 내부에 있고, 샘플 p0와 q0가 Intra_4x4_DC_PSIP_MODE로 코딩된 매크로블록 내부에 있는 경우, 변수 bS는 0으로 출력된다.
-만약, psip_flag가 1이고, 샘플 p0와 q0가 I8x8 Mode로 코딩된 매크로블록 내부에 있고, 샘플 p0와 q0가 Intra_8x8_DC_PSIP_MODE로 코딩된 매크로블록 내부에 있는 경우, 다음 과정이 적용될 수 있다.
-만약, 블록 경계(block edge)가 매크로블록 경계인 경우, bS는 1로 출력된다.
-만약, psip_flag가 1이고, 샘플 p0와 q0 중 어느 하나가 I8x8 Mode 및 Intra_8x8_DC_PSIP_MODE로 코딩된 매크로블록 내부에 있는 경우, 다음 과정이 적용된다.
-만약, 블록 경계가 매크로블록 경계인 경우, bS는 1로 출력된다.
-그렇지 않은 경우, bS는 0으로 출력된다.
-만약, psip_flag가 1이고, 샘플 p0와 q0 중 어느 하나가 I4x4 Mode 및 Intra_4x4_DC_PSIP_MODE로 코딩된 매크로블록 내부에 있는 경우, 다음 과정이 적용된다.
-만약, 블록 경계가 매크로블록 경계인 경우, bS는 1로 출력된다.
-그렇지 않은 경우, bS는 0으로 출력된다.
(vi) 초기화 과정
ctxIdx로 인덱스된 CABAC context 변수는 초기화될 수 있다. CABAC context 변수의 초기화에 사용되는 변수 n과 m은 신택스 요소인 mb_ivmp_flag, mb_vsskip_flag, 및 mb_direct_type_flag로 할당될 수 있다. 그리고, CABAC context 변수의 초기화에 사용되는 변수 n과 m은 신택스 요소인 mb_disp_flag, psip4x4_dir, psip4x4_code_diff, psip8x8_dir, psip8x8_code_diff, psip16x16_dir, 및 psip16x16_code_diff로 할당될 수 있다. 또한, CABAC context 변수의 초기화에 사용되는 변수 n과 m은 신택스 요소인 mb_alc_skip_flag and mb_alc_flag로 할당될 수 있다.
초기화 과정에서 ctxIdx 및 신택스 요소는 표 29와 같다.
Syntax element Slice type
  I P B
psip4x4_dir 1046 1046 1046
psip4x4_code_diff 1047..1048 1047..1048 1047..1048
psip8x8_dir 1046 1046 1046
psip8x8_code_diff 1047..1048 1047..1048 1047..1048
psip16x16_dir 1046 1046 1046
psip16x16_code_diff 1047..1048 1047..1048 1047..1048
 
그리고, ctxIdx에 대해 변수 m과 n이 1031에서 1033일 때, 다음 표 30으로 결정되고, 1034에서 1042일 때 다음 표 31로 결정될 수 있다.
Initialisation variables ctxIdx
1031 1032 1033
m 0 0 0
n 64 64 64
Value of cabac_init_idc Initialisation variables ctxIdx
1034 1035 1036 1037 1038 1039 1040 1041 1042
0 m 23 23 21 18 9 29 -46 -20 1
n 33 2 0 64 43 0 127 104 67
1 m 22 34 16 26 19 40 -45 -15 -4
n 25 0 0 34 22 0 127 101 76
2 m 29 25 14 20 20 29 -32 -22 -2
n 16 0 0 40 10 0 127 -117 74
그리고, ctxIdx에 대해 변수 m과 n이 1032에서 1048일 때, 다음 표 32으로 결정되고, 1049에서 1054일 때 다음 표 33으로 결정될 수 있다.
Initialisation variables ctxIdx
1043 1044 1045 1046 1047 1048
m 0 0 0 0 0 0
n 64 64 64 64 64 64
Initialisation variables ctxIdx
1049 1050 1051 1052 1053 1054
m 14 14 10 14 14 10
n 4 27 52 4 27 52
한편, binarization, maxBinIdxCtx, and ctxIdxOffset에 대한 신택스 요소는 다음 표 34와 같다.
Syntax element Type of binarization maxBinIdxCtx ctxIdxOffset
psip4x4_dir
psip8x8_dir
psip16x16_dir
FL, cMax=1 0 1046
psip4x4_code_diff
psip8x8_code_diff
psip16x16_code_diff
as specified in subcluase J.9.3.2.1 0 1047
 
(vii) 바이너리를 위한 psip4x4_code_diff, psip8x8_code_diff, 및 psip16x16_code_diff
바이너리의 입력은 psip4x4_code_diff, psip8x8_code_diff, 및 psip16x16_code_diff이다. 그리고, 바이너리의 출력은 신택스 요소의 바이너리 결과이다.
psip4x4_code_diff, psip8x8_code_diff, 및 psip16x16_code_diff의 빈 스트링(bin string)은 신택스 요소의 매핑된 값의 U 바이너리를 통해 도출될 수 있다. 그리고, psip4x4_code_diff, psip8x8_code_diff, 및 psip16x16_code_diff의 부호를 할당하는 룰(rule)이 특정될 수 있다.
DISP 모드는 기존의 Intra 16x16 예측 모드 중 CBP(coded block pattern)가 0인 경우를 SKIP 모드로 활용할 수 있다. 이 때, CBP가 0인 경우는 Intra 16x16 예측 모드 중 수직 방향, 수평 방향 또는 DC 방향을 나타내는 경우를 의미한다. 다시 말해서, 매크로블록이 Intra 16x16 예측 모드 중 수직 방향, 수평 방향, DC 방향으로 예측된다면, 이를 SKIP 모드로 설정하여 매크로블록 모드의 정보와 잔차 신호를 부호화하지 않음으로써, 부호화 효율을 높일 수 있다. 이 때, 매크로블록의 방향성은 매크로블록의 주변 블록을 이용하여 도출되며, 매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들 중 보다 복잡도가 높은 라인으로 방향성이 예측될 수 있다.
DISP 모드는 SKIP 모드로 동작하기 때문에 부호화 효율을 높일 수 있도록 다른 부호화 모드에 비해 최상위 또는 차상위에 위치하여 적용될 수 있다. 그리고, DISP 모드는 기존의 SKIP 모드와 Direct 모드를 Intra 기반의 예측 방법으로 바꾼 것이므로, 잔차 신호를 부호화하지 않을 수 있다. 또한, 예측된 매크로블록의 방향성도 부호화하지 않을 수 있다.
DISP 모드는 깊이 영상의 부호화에 적합하도록 매크로블록 모드를 재정의하고, 우선 순위를 결정할 수 있다. 먼저, 매크로블록의 사이즈, 밝기 성분의 예측 방향성을 부호화 또는 밝기 성분의 잔차 신호 부호화를 고려하여 인트라 모드를 정의할 수 있다. 또한, 매크로블록의 사이즈, 매크로블록 당 움직임 벡터의 부호화 또는 잔차 신호 부호화를 고려하여 인터 모드를 정의할 수 있다. 이 때, 움직임 벡터의 부호화는 매크로블록당 하나의 움직임 벡터만 부호화하거나 또는 부호화하지 않을 수 있다. 또한, 2개의 움직임 벡터는 고려되지 않는다. 
그런 다음, DISP 모드에 의하면, 다음과 같이 우선 순위를 결정할 수 있다.
먼저, 매크로블록의 사이즈가 클수록 매크로블록 모드의 우선 순위가 높게 설정된다. 그리고, 인트라 부호화를 수행할 때, 방향성을 부호화하지 않는 모드는 방향성을 부호화하는 모드보다 우선 순위가 높게 설정된다. 그리고, 인트라 부호화를 수행할 때, 잔차 신호를 부호화하지 않는 모드는 잔차 신호를 부호화하는 모드보다 우선 순위가 높게 설정될 수 있다. 또한, 인트라 부호화를 수행할 때, 방향성이 있는 모드는 방향성이 없는 모드보다 우선 순위가 높게 설정될 수 있다.
 한편, 인터 부호화를 수행할 때, 인트라 모드는 인터 모드보다 우선 순위가 높게 설정될 수 있다. 그리고, 인터 부호화를 수행할 때, 움직임 벡터를 부호화하지 않는 모드는 움직임 벡터를 부호화하는 모드보다 우선 순위가 높게 설정될 수 있다. 그리고, 인터 부호화를 수행할 때 잔차 신호를 부호화하지 않는 모드는 잔차 신호를 부호화하는 모드보다 우선 순위가 높게 설정될 수 있다. 또한, 부호화 모드의 발생 확률에 따라 우선 순위는 적응적으로 재조정될 수 있다. 앞서 설명한 DISP 모드는 평탄(flat)한 특성을 가지는 다른 영상 데이터(예를 들면, 컬러 영상, 의료 영상 등)를 부호화할 때 이용될 수 있다.
그리고, PSIP 모드는 깊이 영상에서 객체의 경계와 같이 깊이값의 변화가 존재하는 영역에 적용할 수 있다. 구체적으로, PSIP 모드는 깊이 영상을 부호화할 때 매크로블록을 복수 개(k)의 영역으로 분리하고, 각 영역별 대표값으로 예측 및 부호화하는 것을 의미한다.
이 때, PSIP 모드에 의하면, K개 영역으로 분할된 영역 각각에 포함된 예측된 픽셀과 대표값을 서로 매칭한 정보인 예측 맵은 별도의 부가 정보로서 부호화하여 전송될 수 있다. 그리고, 픽셀의 예측을 위해 사용되는 대표값은, 매크로블록의 주변에 이미 복호화된 픽셀들의 평균, 중간값, 최소값과 최대값을 이용하여 결정될 수 있다. 대표값은 매크로블록의 주변에 존재하는 픽셀들에 기초하여 설정되기 때문에, 복호화 장치에 별도로 전송되지 않을 수 있다. 또는, 대표값은 현재 매크로블록을 가장 잘 반영하는 값으로 선정되며, 이러한 대표값들은 따로 부호화되어 전송될 수도 있다.
매크로블록은 설정된 대표값으로 예측되며, 매크로블록의 각 영역에 속한 픽셀의 픽셀값과 가장 가까운 대표값으로 예측될 수 있다. 매크로블록의 분리된 영역 개수(k)는 영상의 시퀀스의 특성을 고려하여 프레임별, GOP별, 일절 영역별로 가변적으로 적용될 수 있다.
 앞서 설명한 예측맵은 일정한 패턴 코드로 정의되어 부호화될 때 비트량이 감소될 수 있다. 이 때, 패턴 코드는 row 방향, column 방향 또는 일정 사이즈의 영역 중 어느 하나로 정의될 수 있다.
한편, 예측맵에서 정의된 패턴 코드를 부호화할 때, 패턴 코드 간의 차분값, 패턴 코드 간의 관계를 나타내는 모델 정보, 패턴 코드 간의 상호 관계를 고려하여 부호화함으로써 부호화 효율이 향상될 수 있다. 
한편, 예측맵을 부호화할 때, 영역의 개수(k)가 3이상인 경우, 예측 맵은 (k-1)개의 바이너리 예측맵으로 변환되어 부호화될 수 있다. PSIP 모드는 기존의 예측 모드들 중 한가지 모드(ex. DC 모드)와 공유함으로써, PSIP 모드를 나타내는 플래그 비트를 줄일 수 있으며, 제안된 모드와 기존 모드 간의 구분은 주변 픽셀들을 이용하여 판단될 수 있다.
PSIP 모드가 적용된 경우, 깊이 영상의 부호화 장치는 대표값을 따로 부호화하여 전송하지 않을 수 있다. 이 경우, 복호화 장치는 매크로블록의 주변 픽셀값을 이용하여 대표값을 설정하고, 부가 정보로 전송된 예측맵을 이용하여 예측값을 복호화할 수 있다. 
일실시예에 따르면, 다시점 깊이 영상 부호화 시 깊이 영상에 대한 부호화 효율을 효과적으로 개선할 수 있다. 특히, 기존의 다양한 매크로블록 모드를 깊이 영상에 적합하게 재정의 및 우선순위를 변경함으로써, 깊이 영상의 부호화 효율을 향상시킬 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
 이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
101: 부호화 장치
102: 복호화 장치

Claims (42)

  1. 깊이 영상의 매크로블록 모드가 인트라 예측 모드인지 여부를 판단하는 단계;
    상기 매크로블록 모드가 인트라 예측 모드인 경우, 매크로블록의 방향성을 예측하는 단계;
    상기 방향성을 고려하여 매크로블록을 깊이 인트라 스킵 예측에 따라 부호화하는 단계
    를 포함하는 부호화 방법.
  2. 제1항에 있어서,
    상기 판단하는 단계는,
    상기 매크로블록 모드가 인트라 16x16 모드인지 여부를 판단하는 부호화 방법.
  3. 제2항에 있어서,
    상기 매크로블록의 방향성을 예측하는 단계는,
    상기 매크로블록 모드가 인트라 16x16 모드인 경우, 매크로블록의 주변 블록을 고려하여 매크로블록의 방향성을 예측하고,
    상기 매크로블록 모드가 인트라 16x16 모드가 아닌 경우, 미리 설정된 복수의 방향들 중 비용 함수롤 고려하여 매크로블록을 위한 최적의 방향성을 선택하는 부호화 방법.
  4. 제1항에 있어서,
    상기 매크로블록의 방향성을 예측하는 단계는,
    매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들을 이용하여 매크로블록의 방향성을 예측하는 부호화 방법.
  5. 제1항에 있어서,
    상기 매크로블록의 방향성을 예측하는 단계는,
    매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들 각각의 변화 횟수(NOC: number of change)를 이용하여 매크로블록의 방향성을 예측하는 부호화 방법.
  6. 제1항에 있어서,
    상기 부호화하는 단계는,
    매크로블록의 방향성이 인트라 16x16 예측의 수직 방향(vertical direction), 수평 방향(horizontal direction) 및, DC 방향(DC direction) 중 어느 하나의 방향성을 나타내는 경우, 매크로블록을 깊이 인트라 스킵 예측에 따라 부호화하는 부호화 방법.
  7. 제1항에 있어서,
    상기 깊이 인트라 스킵 예측은,
    상기 매크로블록이 앵커 프레임에 속하는 경우, SKIP 모드로 이용되고,
    상기 매크로블록이 논 앵커 프레임에 속하는 경우, DIRECT 모드로 이용되는 부호화 방법.
  8. 제1항에 있어서,
    상기 부호화하는 단계는,
    상기 매크로블록이 깊이 인트라 스킵 예측에 따라 부호화되었는지를 나타내는 플래그를 매크로블록마다 시그널링하는 부호화 방법.
  9. 제1항에 있어서,
    상기 매크로블록이 깊이 인트라 스킵 예측에 따라 부호화하는 경우, 경계 강도가 조절된 디블록킹 필터링을 수행하는 단계
    를 더 포함하는 부호화 방법.
  10. 제1항에 있어서,
    상기 매크로블록 모드는,
    인트라 예측 모드가 인터 예측 모드보다 우선 순위가 높게 설정되고, 양방향 예측과 관련된 예측 모드는 제거되거나 우선 순위가 낮게 설정되는 부호화 방법.
  11. 깊이 영상의 매크로블록의 주변 픽셀들을 복수의 그룹으로 분할하는 단계;
    상기 분할된 그룹을 고려하여 상기 매크로블록을 예측하는 단계;
    상기 예측의 결과에 기초하여 매크로블록을 부호화하는 단계
    를 포함하는 부호화 방법.
  12. 제11항에 있어서,
    상기 분할하는 단계는,
    상기 매크로블록의 상위 라인 및 왼쪽 라인의 사용가능한(available) 픽셀들을 복수의 그룹으로 분할하는 부호화 방법.
  13. 제11항에 있어서,
    상기 분할하는 단계는,
    상기 매크로블록의 상위 라인 및 왼쪽 라인의 사용가능한(available) 픽셀들을 이용하여 기준값을 계산하고, 기준값을 고려하여 복수의 그룹으로 분할하는 부호화 방법.
  14. 제11항에 있어서,
    상기 예측하는 단계는,
    상기 분할된 그룹에 속한 주변 픽셀들을 이용하여 각 그룹별로 대표값을 설정하고, 상기 매크로블록에 포함된 현재 픽셀들을 대표값에 기초하여 예측하는 부호화 방법.
  15. 제11항에 있어서,
    상기 부호화하는 단계는,
    상기 매크로블록에 포함된 현재 픽셀을 예측할 때 사용된 대표값을 예측맵으로 설정하여 부호화하는 부호화 방법.
  16. 제15항에 있어서,
    상기 예측맵은,
    미리 설정된 패턴 코드에 따라 행(row) 방향 또는 열(column) 방향으로 부호화되는 부호화 방법.
  17. 제15항에 있어서,
    상기 예측맵은,
    행(row) 방향 또는 열(column) 방향으로 패턴 코드 간의 차분값으로 부호화되는 부호화 방법.
  18. 깊이 영상에 포함된 매크로블록의 부호화 모드가 깊이 인트라 스킵 예측에 기초한 인트라 예측 모드인지 여부를 판단하는 단계;
    상기 부호화 모드가 인트라 예측 모드인 경우, 매크로블록의 방향성을 예측하는 단계;
    상기 방향성을 고려하여 매크로블록을 인트라 복호화하는 단계
    를 포함하는 복호화 방법.
  19. 제18항에 있어서,
    상기 판단하는 단계는,
    상기 매크로블록 모드가 인트라 16x16 모드인지 여부를 판단하는 복호화 방법.
  20. 제19항에 있어서,
    상기 매크로블록의 방향성을 예측하는 단계는,
    상기 매크로블록 모드가 인트라 16x16 모드인 경우, 매크로블록의 주변 블록을 고려하여 매크로블록의 방향성을 예측하고,
    상기 매크로블록 모드가 인트라 16x16 모드가 아닌 경우, 부호화 장치로부터 전달된 방향성을 이용하는 복호화 방법.
  21. 제18항에 있어서,
    상기 매크로블록의 방향성을 예측하는 단계는,
    매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들을 이용하여 매크로블록의 방향성을 예측하는 복호화 방법.
  22. 제18항에 있어서,
    상기 매크로블록의 방향성을 예측하는 단계는,
    매크로블록의 상위 라인의 블록들과 왼쪽 라인의 블록들 각각의 변화 횟수(NOC: number of change)를 이용하여 매크로블록의 방향성을 예측하는 복호화 방법.
  23. 제18항에 있어서,
    상기 복호화하는 단계는,
    예측된 매크로블록의 방향성을 이용하여 매크로블록을 인트라 예측에 따라 복호화하는 복호화 방법.
  24. 제18항에 있어서,
    상기 깊이 인트라 스킵 예측은,
    상기 매크로블록이 앵커 프레임에 속하는 경우, SKIP 모드로 이용되고,
    상기 매크로블록이 논 앵커 프레임에 속하는 경우, DIRECT 모드로 이용되는 복호화 방법.
  25. 제18항에 있어서,
    상기 판단하는 단계는,
    상기 매크로블록이 깊이 인트라 스킵 예측에 따라 부호화되었는지를 나타내는 플래그를 이용하여 깊이 인트라 스킵 예측에 기초한 인트라 예측 모드인지 여부를 판단하는 복호화 방법.
  26. 제18항에 있어서,
    상기 매크로블록이 인트라 복호화되는 경우, 경계 강도가 조절된 디블록킹 필터링을 수행하는 단계
    를 더 포함하는 복호화 방법.
  27. 제18항에 있어서,
    상기 매크로블록 모드는,
    인트라 예측 모드가 인터 예측 모드보다 우선 순위가 높게 설정되고, 양방향 예측과 관련된 예측 모드는 제거되거나 우선 순위가 낮게 설정되는 복호화 방법.
  28. 깊이 영상의 매크로블록의 주변 픽셀들을 복수의 그룹으로 분할하는 단계;
    상기 분할된 그룹의 대표값을 결정하는 단계;
    비트스트림으로부터 매크로블록과 관련된 예측맵을 복호화하는 단계;
    상기 예측맵을 이용하여 매크로블록에 포함된 현재 픽셀의 예측값을 복호화하는 단계;
    상기 비트스트림으로부터 현재 픽셀의 예측 결과로 도출된 잔차 신호를 복호화하는 단계;
    상기 현재 픽셀의 예측값과 잔차 신호를 이용하여 매크로블록을 복원하는 단계
    를 포함하는 복호화 방법.
  29. 제28항에 있어서,
    상기 분할하는 단계는,
    상기 매크로블록의 상위 라인 및 왼쪽 라인의 사용가능한(available) 픽셀들을 복수의 그룹으로 분할하는 복호화 방법.
  30. 제28항에 있어서,
    상기 분할하는 단계는,
    상기 매크로블록의 상위 라인 및 왼쪽 라인의 사용가능한(available) 픽셀들을 이용하여 기준값을 계산하고, 기준값을 고려하여 복수의 그룹으로 분할하는 복호화 방법.
  31. 제28항에 있어서,
    상기 대표값을 결정하는 단계는,
    상기 분할된 그룹에 속한 주변 픽셀들을 이용하여 각 그룹별로 대표값을 결정하는 복호화 방법.
  32. 제28항에 있어서,
    상기 예측맵은,
    상기 매크로블록에 포함된 현재 픽셀을 예측할 때 사용된 대표값과 현재 픽셀과의 매칭 관계를 나타내는 복호화 방법.
  33. 제28항에 있어서,
    상기 예측맵은,
    미리 설정된 패턴 코드에 따라 행(row) 방향 또는 열(column) 방향으로 부호화되어 비트스트림에 포함되는 복호화 방법.
  34. 제28항에 있어서,
    상기 예측맵은,
    행(row) 방향 또는 열(column) 방향으로 패턴 코드 간의 차분값으로 부호화되어 비트스트림에 포함되는 복호화 방법.
  35. 깊이 영상에서 깊이값의 변화를 이용하여 평탄 영역인지 또는 객체의 경계 영역인지 여부를 판단하는 단계;
    상기 평탄 영역인 경우, 깊이 인트라 스킵 예측(DISP: Depth Intra SKIP Prediction)에 따라 부호화하고, 상기 경계 영역인 경우, 평면 분할 기반의 인트라 예측(PSIP: Plane Segmentation based Intra Prediction)에 기초하여 부호화하는 단계
    를 포함하는 부호화 방법.
  36. 제35항에 있어서,
    상기 평탄 영역은, 깊이값의 변화가 미리 설정된 범위보다 작은 영역을 나타내고,
    상기 경계 영역은, 깊이값의 변화가 미리 설정된 범위보다 크거가 같은 영역을 나타내는 부호화 방법.
  37. 깊이 영상에서 깊이값의 변화를 이용하여 평탄 영역인지 또는 객체의 경계 영역인지 여부를 판단하는 단계;
    상기 평탄 영역인 경우, 깊이 인트라 스킵 예측(DISP: Depth Intra SKIP Prediction)에 따라 부호화하고, 상기 경계 영역인 경우, 평면 분할 기반의 인트라 예측(PSIP: Plane Segmentation based Intra Prediction)에 기초하여 복호화하는 단계
    를 포함하는 복호화 방법.
  38. 제37항에 있어서,
    상기 평탄 영역은, 깊이값의 변화가 미리 설정된 범위보다 작은 영역을 나타내고,
    상기 경계 영역은, 깊이값의 변화가 미리 설정된 범위보다 크거가 같은 영역을 나타내는 복호화 방법.
  39. 부호화 방법을 수행하는 적어도 하나의 프로세스를 포함하는 부호화 장치에 있어서,
    상기 프로세스는,
    깊이 영상의 매크로블록 모드가 인트라 예측 모드인지 여부를 판단하는 단계;
    상기 매크로블록 모드가 인트라 예측 모드인 경우, 매크로블록의 방향성을 예측하는 단계;
    상기 방향성을 고려하여 매크로블록을 깊이 인트라 스킵 예측에 따라 부호화하는 단계
    를 포함하는 부호화 방법을 수행하는 부호화 장치.
  40. 부호화 방법을 수행하는 적어도 하나의 프로세스를 포함하는 부호화 장치에 있어서,
    상기 프로세스는,
    깊이 영상의 매크로블록의 주변 픽셀들을 복수의 그룹으로 분할하는 단계;
    상기 분할된 그룹을 고려하여 상기 매크로블록을 예측하는 단계;
    상기 예측의 결과에 기초하여 매크로블록을 부호화하는 단계
    를 포함하는 부호화 방법을 수행하는 부호화 장치.
  41. 복호화 방법을 수행하는 적어도 하나의 프로세스를 포함하는 복호화 장치에 있어서,
    상기 프로세스는,
    깊이 영상에 포함된 매크로블록의 부호화 모드가 깊이 인트라 스킵 예측에 기초한 인트라 예측 모드인지 여부를 판단하는 단계;
    상기 부호화 모드가 인트라 예측 모드인 경우, 매크로블록의 방향성을 예측하는 단계;
    상기 방향성을 고려하여 매크로블록을 인트라 복호화하는 단계
    를 포함하는 복호화 방법을 수행하는 복호화 장치.
  42. 복호화 방법을 수행하는 적어도 하나의 프로세스를 포함하는 복호화 장치에 있어서,
    상기 프로세스는,
    깊이 영상의 매크로블록의 주변 픽셀들을 복수의 그룹으로 분할하는 단계;
    상기 분할된 그룹의 대표값을 결정하는 단계;
    비트스트림으로부터 매크로블록과 관련된 예측맵을 복호화하는 단계;
    상기 예측맵을 이용하여 매크로블록에 포함된 현재 픽셀의 예측값을 복호화하는 단계;
    상기 비트스트림으로부터 현재 픽셀의 예측 결과로 도출된 잔차 신호를 복호화하는 단계;
    상기 현재 픽셀의 예측값과 잔차 신호를 이용하여 매크로블록을 복원하는 단계
    를 포함하는 복호화 방법을 수행하는 복호화 장치.
KR1020130041663A 2012-04-16 2013-04-16 깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법 KR20130118250A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2013/003199 WO2013157822A1 (ko) 2012-04-16 2013-04-16 깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261624555P 2012-04-16 2012-04-16
US61/624,555 2012-04-16
US201261651269P 2012-05-24 2012-05-24
US61/651,269 2012-05-24
US201261667976P 2012-07-04 2012-07-04
US61/667,976 2012-07-04

Publications (1)

Publication Number Publication Date
KR20130118250A true KR20130118250A (ko) 2013-10-29

Family

ID=49636658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130041663A KR20130118250A (ko) 2012-04-16 2013-04-16 깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20130118250A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465663B1 (ko) * 2013-12-19 2014-11-28 성균관대학교산학협력단 압축 센싱을 사용하는 깊이 맵 부복호화 방법 및 장치
WO2016056772A1 (ko) * 2014-10-07 2016-04-14 삼성전자 주식회사 다 시점 영상 부호화/복호화 방법 및 장치
WO2019078629A1 (ko) * 2017-10-18 2019-04-25 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN114205614A (zh) * 2021-12-16 2022-03-18 福州大学 一种基于hevc标准的帧内预测模式并行硬件方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465663B1 (ko) * 2013-12-19 2014-11-28 성균관대학교산학협력단 압축 센싱을 사용하는 깊이 맵 부복호화 방법 및 장치
WO2016056772A1 (ko) * 2014-10-07 2016-04-14 삼성전자 주식회사 다 시점 영상 부호화/복호화 방법 및 장치
US10554966B2 (en) 2014-10-07 2020-02-04 Samsung Electronics Co., Ltd. Multi-view image encoding/decoding method and apparatus
WO2019078629A1 (ko) * 2017-10-18 2019-04-25 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11375185B2 (en) 2017-10-18 2022-06-28 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium having bitstream stored therein
US11924412B2 (en) 2017-10-18 2024-03-05 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium having bitstream stored therein
CN114205614A (zh) * 2021-12-16 2022-03-18 福州大学 一种基于hevc标准的帧内预测模式并行硬件方法
CN114205614B (zh) * 2021-12-16 2023-08-04 福州大学 一种基于hevc标准的帧内预测模式并行硬件方法

Similar Documents

Publication Publication Date Title
US20200396456A1 (en) Methods and apparatus for determining quantization parameter predictors from a plurality of neighboring quantization parameters
EP2608540B1 (en) Method and apparatus for encoding video, and decoding method and apparatus
US10230983B2 (en) Simplification of delta DC residual coding in 3D video coding
US20170006309A1 (en) Constrained depth intra mode coding for 3d video coding
US10306265B2 (en) Simplification of segment-wise DC coding of large prediction blocks in 3D video coding
EP3085094A1 (en) Large blocks and depth modeling modes (dmm&#39;s) in 3d video coding
WO2015085449A1 (en) Signaling of simplified depth coding (sdc) for depth intra-and inter – prediction modes in 3d video coding
CA2852899A1 (en) Method and apparatus for encoding/decoding image
CA3162583C (en) Image encoding/decoding method and device using lossless color transform, and method for transmitting bitstream
US20160255371A1 (en) Method and apparatus for coding/decoding 3d video
WO2015131388A1 (en) Simplification of depth intra mode coding in 3d video coding
US11876967B2 (en) Method and device for encoding/decoding image using color space conversion, and method for transmitting bitstream
WO2015042751A1 (en) Residual coding for depth intra prediction modes
KR20220057613A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
KR20220047628A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
KR20130099852A (ko) 화면 내 예측 모드의 부호화 방법 및 복호화 방법
CN113243106B (zh) 一种用于视频图像的预测块的帧内预测的设备和方法
KR20130118250A (ko) 깊이 영상의 부호화 장치 및 방법, 그리고 복호화 장치 및 방법
KR20230111257A (ko) 향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들
KR20220127937A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
AU2020375518B2 (en) Image coding method based on transform, and device therefor
KR20220061181A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
KR20220058584A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
KR20220024499A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
EP3122050A1 (en) 3d video encoding/decoding method and device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application