Processing

Please wait...

Settings

Settings

Goto Application

1. KR1020160148005 - 인트라 블록 카피 모드 부호화를 위한 블록 벡터 예측 방법

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ KO ]
인트라 블록 카피 모드 부호화를 위한 블록 벡터 예측 방법{METHOD OF BLOCK VECTOR PREDICTION FOR INTRA BLOCK COPY MODE CODING}
기 술 분 야
 관련 출원에 대한 교차 참조
 본 출원은 2014년 5월 6일자 출원된 미국 가특허 출원 제61/989,055호 및 2014년 6월 23일자 출원된 미국 가특허 출원 제62/015,711호를 우선권 주장하며, 상기 가특허 출원들은 인용에 의해 그 전부가 본원에 통합된다.
 기술 분야
 본 발명은 인트라 블록 카피(Intra-block copy, 인트라BC) 모드를 이용한 영상 부호화에 관한 것으로, 특히 스크린 콘텐츠 부호화 또는 영상 부호화를 위한 인트라 블록 카피(인트라BC) 부호화 모드의 수행을 개선하는 기술에 관한 것이다.
배경기술
 고효율 영상 부호화(High Efficiency Video Coding, HEVC) 표준의 현재 개발중인 범위 확장(range extension, RExt) 또는 스크린 콘텐츠 부호화에서는 스크린 콘텐츠의 부호화 효율의 개선에 기인하여 몇 가지 툴(tool)들이 채용되고 있다. 인트라 블록의 경우에는 종래의 접근법에 따른 인트라 예측이 이웃 블록들로부터의 재구성된 화소에 기초한 예측을 이용하여 수행된다. 인트라 예측은 수직 모드, 수평 모드 및 각종 각도 예측 모드를 포함한 인트라 모드 집합으로부터 인트라 모드를 선택할 수 있다. HEVC 범위 확장 및 스크린 콘텐츠 부호화의 경우에는 인트라 블록 카피(인트라BC)라고 부르는 새로운 인트라 부호화 모드가 사용되었다. IntraBC 기술은 2013년 4월 18-26일에 대한민국의 인천에서 개최된 ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11의 영상 부호화에 대한 합동 협력 팀(Joint Collaborative Team on Video Coding, JCT-VC)의 13차 회의에서 'AHG8: 인트라 모션 보상을 이용한 영상 부호화'(AHG8: Video coding using Intra motion compensation)의 명칭으로 부다가비(Budagavi)에 의해 문서 JCTVC-M0350(이하, JCTVC-M0350이라고 부른다)에서 최초로 제안되었다. JCTVC-M0350에 따른 일 예가 도 1에 도시되어 있고, 여기에서는 현재 부호화 단위(CU)(110)가 인트라 모션 보상(motion compensation, MC)을 이용하여 부호화된다. 예측 블록(120)은 현재 CU 및 변위 벡터(112)로부터 위치 지정된다. 이 예에서, 검색 구역은 현재 부호화 트리 단위(CTU), 좌측 CTU 및 좌측-좌측 CTU로 제한된다. 예측 블록은 이미 재구성된 영역으로부터 획득된다. 그 다음에, 모션 벡터(MV)라고도 부르는 변위 벡터 및 현재 CU에 대한 잔여(residual)가 부호화된다. HEVC가 영상 데이터를 부호화하기 위한 기본 단위로서 CTU 및 CU 블록 구조를 채용하는 것은 잘 알려져 있다. 각각의 화상은 복수의 CTU로 나누어지고, 각각의 CTU는 복수의 CU로 회귀적으로 나누어진다. 예측 단계에서, 각각의 CU는 예측 처리를 수행하기 위해 예측 단위(PU)라고 부르는 복수의 블록으로 나누어질 수 있다. 예측 잔여가 각각의 CU에 대하여 형성된 후, 각각의 CU와 관련된 잔여는 변환(예를 들면, 이산 코사인 변환(DCT))을 적용하기 위해 변환 단위(transform unit, TU)라고 부르는 복수의 블록으로 나누어진다.
 JCTVC-M0350에서, 인트라 MC는 적어도 하기의 구역에서 인터 예측을 위해 사용되는 모션 보상과 상이하다.
 ㆍ MV는 인터 예측이 2-D 모션 추정을 이용하는 동안 인트라 MC의 1-D(즉, 수평 또는 수직)로 제한된다.
 ㆍ 이진화는 인터 예측이 지수 골롬(exponential-Golomb)을 이용하는 동안 인트라 MC에 대하여 길이가 고정된다.
 ㆍ 인트라 MC는 MV가 수평인지 수직인지를 신호하기 위해 새로운 구문 요소를 도입한다.
 JCTVC-M0350에 기초해서, 일부 수정이 2013년 7월 25일부터 8월 2일까지 오스트리아의 비엔나에서 개최된 ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11의 영상 부호화에 대한 합동 협력 팀(JCT-VC)의 14차 회의에서 '비-RCE3: 2-D MV에 의한 인트라 모션 보상'(Non-RCE3: Intra motion compensation with 2-D MVs)의 명칭으로 팡(Pang) 등에 의해 문서 JCTVC-N0256(이하, JCTVC-N0256이라고 부른다)에서 개시되어 있다. 먼저, 인트라 MC는 2-D MV를 지원하도록 확장되고, 그래서 양측의 MV 성분이 동시에 0이 아닐 수 있다. 이것은 본래 접근법보다 인트라 MC에 대하여 더 많은 융통성을 제공하고, 이때 MV는 엄격하게 수평 또는 수직으로 제한된다.
 JCTVC-N0256에서는 2개의 MV 부호화 방법이 개시되어 있다.
 ㆍ 방법 1- 모션 벡터 예측. 좌측 또는 상측 MV가 MV 예측자(predictor)로서 선택되고 결과적인 모션 벡터 차(motion vector difference, MVD)가 부호화된다. 플래그를 이용하여 MVD가 0인지 표시한다. MVD가 0이 아니면 제3차의 지수 골롬 코드를 이용하여 MVD의 나머지 절대 레벨를 부호화한다. 다른 플래그를 이용하여 부호(sign)를 부호화한다.
 ㆍ 방법 2: 비 모션 벡터 예측. MV는 HEVC에서 MVD에 대하여 사용된 지수 골롬 코드를 이용하여 부호화된다.
 JCTVC-N0256에 개시되어 있는 다른 차이는 2-D 인트라 MC가 파이프라인 친화적 접근법으로 추가로 결합되는 것이다.
 1. 보간 필터를 사용하지 않는다.
 2. MV 검색 구역이 제한된다. 2개의 경우가 개시되어 있다.
                 a.  검색  구역은  현재  CTU와  좌측  CTU이다.  또는
                 b.  검색  구역은  현재  CTU,  및  좌측  CTU의  최우측  4열  샘플이다.
 JCTVC-N0256의 제안된 방법들 중에서, 2-D 인트라 MC, 보간 필터의 제거, 및 현재 CTU와 좌측 CTU에 대한 검색 구역 구속은 신 버전 드래프트 표준에서 채용되었다.
 인트라BC 모드 부호화시에, 각각의 인트라BC 모드 부호화 블록에 대하여, 블록 벡터(BV)가 시그널링되어야 하고, BV 시그널링과 연관된 데이터의 양은 풍부할 수 있다. BV에 대한 효율적인 부호화 방법을 개발하는 것이 바람직하다.
발명의 상세한 설명
   해결하려는 과제
 본 발명에 따른 영상 부호화 시스템에서 인트라BC 모드(인트라 블록 카피 모드) 부호화 블록에 대한 블록 벡터(BV) 예측 방법이 개시된다. 복수의 BV 후보 리스트가 현재 블록의 이웃 블록으로부터 도출된다. BV 후보 리스트는 현재 블록의 BV에 대한 BV 예측자로서 선택된다. 현재 블록은 현재 블록의 BV에 따라 위치된 인트라 참조 블록에 기초하여 부호화된다.
   과제의 해결 수단
 일 실시형태에 있어서, 복수의 BV 후보 리스트는 제1 BV 후보 리스트 및 제2 BV 후보 리스트에 대응한다. 제1 BV 후보 리스트는 제1의 위치 관련 우선순위에 따라 선택된 제1 위치의 하나 이상의 제1 이웃 블록으로부터 발생되고, 제2 BV 후보 리스트는 제2의 위치 관련 우선순위에 따라 선택된 제2 위치의 하나 이상의 제2 이웃 블록으로부터 발생된다. 제1 BV 후보 리스트는 인트라BC 모드를 이용하여 부호화된 제1의 이용 가능한 제1 이웃 블록으로부터의 BV에 의해 채워지고, 제2 BV 후보 리스트는 인트라BC 모드를 이용하여 부호화된 제1의 이용 가능한 제2 이웃 블록의 BV에 의해 채워진다. 예를 들면, 제1 이웃 블록은 현재 블록의 좌측-최하부(left-bottom, LB) 위치에 있는 단일의 제1 공간 이웃 블록에 대응하고 제2 이웃 블록은 상측-우측(above-right, AR) 위치에 있는 단일의 제2 공간 이웃 블록에 대응할 수 있다. 2개의 BV 후보 리스트의 경우에, 인덱스는 제1 BV 후보 리스트와 제2 BV 후보 리스트 사이에서 선택하기 위한 1-비트 코드에 대응한다.
 제2 BV 후보 리스트가 발생되기 전에 제1 BV 후보 리스트가 발생된 때, 만일 제1 BV 후보 리스트가 선택된 제1 위치의 제1 이웃 블록으로부터 채워질 수 없으면 상기 선택된 위치의 제2 이웃 블록이 상기 제1 BV 후보 리스트를 채우기 위해 사용된다. 만일 이용 가능한 BV 후보가 상기 선택된 제1 위치의 제1 이웃 블록으로부터 또는 상기 선택된 제1 위치의 제1 이웃 블록 및 상기 선택된 제2 위치의 제2 이웃 블록 둘 다로부터 제1 BV 후보 리스트에 대하여 발견되지 않으면, 상기 제1 BV 후보 리스트에 대하여 디폴트 BV가 사용된다. 또한, 만일 이용 가능한 BV 후보가 상기 선택된 제2 위치의 제2 이웃 블록으로부터 제2 BV 후보 리스트에 대하여 발견되지 않으면, 상기 제2 BV 후보 리스트에 대하여 디폴트 BV가 사용된다.
 각각의 BV 후보 리스트는 위치 관련 우선순위에 따라 선택된 위치의 이웃 블록들로부터 발생된다. 만일 BV 후보 리스트와 연관된 선택된 위치의 이웃 블록이 BV 후보 리스트를 채우는데 이용할 수 없으면, BV 후보 리스트에 대하여 디폴트 BV를 사용할 수 있다. 예를 들면, 디폴트 BV는 (0, 0), (-2w, 0), (-w, 0), (0, -2w) 및 (0, -w)를 포함한 그룹으로부터 선택될 수 있고, 여기에서 w는 블록 폭에 대응한다.
 다른 실시형태에 있어서, 만일 BV 후보 리스트와 연관된 선택된 위치의 이웃 블록이 BV 후보 리스트를 채우는데 이용할 수 없으면, BV 후보 리스트에 대하여 이전의 인트라BC 모드 부호화 블록에 대응하는 대체 BV를 사용할 수 있다. 만일 2개의 BV 후보 리스트가 사용되면, 2개의 버퍼를 이용하여 이전의 인트라BC 모드 부호화 블록에 대응하는 대체 BV를 저장할 수 있다. 2개의 버퍼에 저장된 BV는 서로 다르다. 2개의 버퍼는 (-2w, 0) 및 (-w, 0)에 대응하는 2개의 초기 BV 값을 이용하여 초기화될 수 있고, 여기에서 w는 블록 폭에 대응한다. 복수의 BV 후보 리스트가 하나의 BV 후보 리스트에 대응할 수 있고, 하나의 버퍼가 이전의 인트라BC 모드 부호화 블록에 대응하는 대체 BV를 저장하기 위해 사용된다.
 BV 후보 리스트는 현재 블록의 하나 이상의 시간 이웃 블록으로부터 도출된 시간 BV 후보 리스트를 포함할 수 있다. 시간 이웃 블록은 현재 화상의 공존 화상 내 중앙(center, CTR) 블록, 외측의 최하부-우측(bottom-right, BR) 블록, 상부-좌측(upper-left, UL) 블록 및 내측의 최하부-우측(BR2) 블록을 포함한 그룹으로부터 선택된 하나 이상의 공존 블록에 대응할 수 있다. 또한, BV 후보 리스트는 하나 이상의 이전에 부호화된 BV에 대응하는 하나 이상의 공간 BV 후보 리스트, 하나 이상의 시간 BV 후보 리스트 및 하나 이상의 저장된 BV 후보 리스트로 이루어진 그룹으로부터 선택된 2개 이상의 BV 후보 리스트를 포함할 수 있다. BV 예측자(BVP) 리스트는 하나 이상의 새로운 BV 후보 리스트를 이전의 BVP 리스트에 추가함으로써 BV 후보 리스트를 도출하도록 구성될 수 있다. BVP 리스트는 하나 이상의 새로운 BV 후보 리스트를 이전의 BVP 리스트에 추가하기 전에 또는 후에 임의의 용장성 BV 후보 리스트를 제거하기 위해 프루닝될(pruned) 수 있다. 만일 최종 BVP 리스트의 크기가 N보다 더 크면, 최종 BVP 리스트 중 N개의 BV 후보 리스트만이 사용되고, 여기에서 N은 1보다 더 큰 정수이다. 만일 최종 BVP 리스트의 크기가 N보다 더 작으면, 하나 이상의 미리 규정된 BV가 최종 BVP 리스트에 추가된다. 상기 미리 규정된 BV는 (0, 0), (-2w, 0), (-w, 0), (-1.5w, 0), (0, -2w), (0, -w) 및 (0, -1.5w)를 포함한 그룹으로부터 선택된 하나 이상의 미리 규정된 값에 대응할 수 있고, 여기에서 w는 블록 폭에 대응한다.
도면의 간단한 설명
 도 1은 수평 변위 벡터를 사용하는 경우에 인트라 블록 카피(인트라BC) 모드에 따른 인트라 모션 보상의 예를 보인 도이다.
도 2는 모션 벡터 예측(MVP) 후보 집합이 고효율 영상 부호화(HEVC)에서 고급 MVP를 위해 사용되는 것을 보인 도이다.
도 3은 블록 벡터(BV) 후보 리스트를 도출하기 위한 본 발명의 실시형태에 따른 이웃 블록의 예를 보인 도이다.
도 4는 본 발명의 실시형태에 따른 블록 벡터(BV) 예측을 통합한 인트라BC(인트라 블록 카피) 모드 인코딩을 위한 예시적인 흐름도이다.
도 5는 본 발명의 실시형태에 따른 블록 벡터(BV) 예측을 통합한 인트라BC(인트라 블록 카피) 모드 디코딩을 위한 예시적인 흐름도이다.
발명을 실시하기 위한 구체적인 내용
 인트라 블록 카피(인트라BC) 모드를 이용하여 부호화한 블록에 대한 블록 벡터(BV) 부호화의 수행을 개선하기 위해, 본 발명은 BV 예측을 위한 복수의 BV 후보 리스트의 사용을 개시한다.
 계류중인 PCT 출원 일련번호 PCT/CN2015/073225에는 고급 모션 벡터 예측(advanced motion vector prediction, AMVP)을 이용하여 인트라BC 모드에서 부호화된 BV에 대한 블록 벡터 예측 방법이 설명되어 있고, 여기에서는 이웃 블록과 연관된 블록 벡터들이 현재 블록 벡터의 블록 벡터 예측 후보로서 사용된다. HEVC에서는 공간 AMVP(고급 모션 벡터 예측) 외에, 시간 MV 예측자가 인터-슬라이스 모션 보상을 위해 또한 사용된다. 도 2에 도시된 바와 같이, 시간 예측자는 공존 화상 내에 위치된 블록(T BR 또는 T CTR)으로부터 도출되고, 여기에서 상기 공존 화상은 참조 리스트 0 또는 참조 리스트 1에서 제1 참조 화상이다. 도 2에서, 중앙(T CTR) 및 외측 최하부-우측(T BR) 공존 블록 외에, 상부-좌측(T UL) 및 내측 최하부-우측(T BR2) 공존 블록과 같은 다른 공존 블록들도 또한 사용될 수 있다. 블록과 연관된 시간 MVP가 2개의 MV, 즉 참조 리스트 0으로부터의 하나의 MV와 참조 리스트 1로부터의 하나의 MV를 가질 수 있기 때문에, 시간 MVP는 하기의 규칙에 따라 참조 리스트 0 또는 참조 리스트 1로부터의 MV로부터 도출된다.
 1. 현재 화상과 교차하는 MV가 먼저 선택된다.
 2. 만일 양측의 MV가 현재 화상을 교차하거나 또는 둘 다 교차하지 않으면, 현재 리스트와 동일한 참조 리스트를 가진 MV가 선택될 것이다.
 계류중인 PCT 출원 일련번호 PCT/CN2015/073225에서 예시적인 블록 벡터 예측 후보는 도 3에 도시되어 있고, 여기에서는 이전에 부호화된 이웃 블록 위치 내의 복수의 가능한 블록 벡터 후보가 도시된다. 표 1에 이러한 위치들이 자세히 묘사되어 있다.
 
표 1
위치 설명
0-LL 현재 블록의 하부-좌측(lower-left) 위치
1-LB 현재 블록의 좌측-최하부(left-bottom) 위치
2-UR 현재 블록의 상부-우측(upper-right) 위치
3-AR 현재 블록의 상측-우측(above-right) 위치
4-UL 현재 블록의 상부-좌측(upper-left) 위치
5-LT 현재 블록의 좌측-최상부(left-top) 위치
6-AL 현재 블록의 상측-좌측(above-left) 위치
 계류중인 PCT 출원 일련번호 PCT/CN2015/073225에는 리스트 0 및 리스트 1이라고 부르는 2개의 후보 리스트가 구성된다. 리스트 0의 경우에, 위치 0이 먼저 체크된다. 만일 이 위치 내의 블록이 인트라BC 부호화되면, 그 블록 벡터가 리스트 0을 채우기 위해 선택된다. 그렇지 않으면, 위치 1이 체크될 것이다. 만일 이 위치 내의 블록이 인트라BC 부호화되면, 그 블록 벡터가 리스트 0을 채우기 위해 선택된다.
 만일 상기 2개의 위치 중 어느 것도 인트라BC 부호화되지 않으면, 위치 2, 3, 4가 하나씩 체크될 것이다. 제1 인트라BC 부호화 블록의 BV가 리스트 0에 채워질 것이다. 만일 리스트 0이 위치 0 또는 위치 1로 채워져 있으면, 위치 2, 3, 4가 하나씩 체크되고, 제1 인트라BC 부호화 블록의 BV가 리스트 1에 채워질 것이다.
 이웃 위치에 충분한 인트라BC 부호화 블록이 없는 경우에는 전술한 5개의 위치를 체크한 후에, 채워지지 않은 리스트를 채우기 위해 디폴트 벡터를 이용할 것이다.
 각각의 인트라BC 부호화 블록에 대하여, 상기 2개의 리스트(리스트 0 및 리스트 1)로부터의 2개의 BV 예측 후보가 있다. 플래그는 상기 2개의 BV 예측자 중 어느 것이 현재 블록에서 BV의 예측을 위해 실제로 사용되는지 표시하기 위해 사용된다. 그 다음에, BV 예측 차가 추가로 엔트로피 부호화된다.
 이하에서, 만일 블록이 존재하고 그 블록이 인트라BC 모드와 같은 소정의 모드에서 부호화되면 1 블록의 BV가 "이용가능"으로 간주된다. 리스트는 만일 이 리스트의 후보 BV 중 어느 것도 이용할 수 없으면 "공백"(empty)으로서 표시된다. 본 발명은 블록 벡터 예측을 추가로 개선하기 위한 것이고, 각종의 실시형태를 이하에서 설명한다.
  실시형태 1. 위치 관련 우선순위를 이용한 BV 예측: 1→0; 3→2→4
 도 3에서, 위치들이 1(LB) 및 0(LL)의 순서로 하나씩 체크되고 제1의 이용 가능한 BV가 리스트 0을 채우기 위해 사용된다. 위치들이 리스트 0((리스트 0이 아직 채워지지 않은 경우) 또는 리스트 1(리스트 0이 채워진 경우)을 채우기 위해 3(AR), 2(UR) 및 4(UL)의 순서로 하나씩 체크된다. 모든 위치들을 체크한 후의 공백 리스트에 대하여, 디폴트 블록 벡터가 리스트를 채우기 위해 사용될 수 있다.
 전술한 바와 같이, 선택된 위치 내의 이웃 블록들이 위치 관련 우선순위에 따라 조사된다. 예를 들면, 리스트 0을 도출하기 위한 선택된 위치는 위치 1(LB) 및 0(LL)에 대응한다. 위치 1(LB)은 이 예에서 위치 0(LL)보다 더 높은 우선순위를 갖는다. 반면에, 리스트 0 또는 리스트 1을 도출하기 위한 선택된 위치는 위치 3(AR), 2(UR) 및 4(UL)에 대응한다. 이 예에서 위치 3(AR)은 위치 2(UR)보다 더 높은 우선순위를 갖고, 위치 2(UR)는 위치 4(UL)보다 더 높은 우선순위를 갖는다.
  실시형태 2. 위치 관련 우선순위를 이용한 BV 예측: 1→0; 3→2
 도 3에서, 위치들이 1(LB) 및 0(LL)의 순서로 하나씩 체크되고 제1의 이용 가능한 BV가 리스트 0을 채우기 위해 사용된다. 위치들이 리스트 0((리스트 0이 아직 채워지지 않은 경우) 또는 리스트 1(리스트 0이 채워진 경우)을 채우기 위해 3(AR) 및 2(UR)의 순서로 하나씩 체크될 것이다. 모든 위치들을 체크한 후의 공백 리스트에 대하여, 디폴트 벡터가 리스트를 채우기 위해 사용될 수 있다.
  실시형태 3. 위치 관련 우선순위를 이용한 BV 예측: 1; 3→4
 도 3에서, 위치 1(LB)이 리스트 0을 채우기 위해 체크될 것이다. 위치들이 리스트 0((리스트 0이 아직 채워지지 않은 경우) 또는 리스트 1(리스트 0이 채워진 경우)을 채우기 위해 3(AR) 및 4(UL)의 순서로 하나씩 체크될 것이다. 모든 위치들을 체크한 후의 공백 리스트에 대하여, 디폴트 블록 벡터가 리스트를 채우기 위해 사용될 수 있다.
  실시형태 4. 위치 관련 우선순위를 이용한 BV 예측: 1; 3
 도 3에서, 위치 1(LB)이 리스트 0을 채우기 위해 체크될 것이다. 위치 3(AR)이 리스트 0((리스트 0이 아직 채워지지 않은 경우) 또는 리스트 1(리스트 0이 채워진 경우)을 채우기 위해 체크될 것이다. 모든 위치들을 체크한 후의 공백 리스트에 대하여, 디폴트 블록 벡터가 리스트를 채우기 위해 사용될 수 있다.
  실시형태 5. 위치 관련 우선순위를 이용한 BV 예측: 1→5; 3→6
 도 3에서, 위치들이 1(LB) 및 5(LT)의 순서로 하나씩 체크되고 제1의 이용 가능한 BV가 리스트 0을 채우기 위해 사용된다. 위치들이 리스트 0((리스트 0이 아직 채워지지 않은 경우) 또는 리스트 1(리스트 0이 채워진 경우)을 채우기 위해 3(AR) 및 6(AL)의 순서로 하나씩 체크될 것이다. 모든 위치들을 체크한 후의 공백 리스트에 대하여, 디폴트 벡터가 리스트를 채우기 위해 사용될 수 있다.
  실시형태 6. 위치 관련 우선순위를 이용한 BV 예측: 1→5; 3→6→4
 도 3에서, 위치들이 1(LB) 및 5(LT)의 순서로 하나씩 체크되고 제1의 이용 가능한 BV가 리스트 0을 채우기 위해 사용된다. 위치들이 리스트 0((리스트 0이 아직 채워지지 않은 경우) 또는 리스트 1(리스트 0이 채워진 경우)을 채우기 위해 3(AR), 6(AL) 및 4(UL)의 순서로 하나씩 체크될 것이다. 모든 위치들을 체크한 후의 공백 리스트에 대하여, 디폴트 벡터가 리스트를 채우기 위해 사용될 수 있다.
  실시형태 7. 위치 관련 우선순위를 이용한 BV 예측: 5→1; 6→3
 도 3에서, 위치들이 5(LT) 및 1(LB)의 순서로 하나씩 체크되고 제1의 이용 가능한 BV가 리스트 0을 채우기 위해 사용된다. 위치들이 리스트 0((리스트 0이 아직 채워지지 않은 경우) 또는 리스트 1(리스트 0이 채워진 경우)을 채우기 위해 6(AL) 및 3(AR)의 순서로 하나씩 체크될 것이다. 모든 위치들을 체크한 후의 공백 리스트에 대하여, 디폴트 벡터가 리스트를 채우기 위해 사용될 수 있다.
  실시형태 8. 위치 관련 우선순위를 이용한 BV 예측: 5; 6
 도 3에서, 위치 5(LT)가 리스트 0을 채우기 위해 체크될 것이다. 위치 6(AL)이 리스트 0((리스트 0이 아직 채워지지 않은 경우) 또는 리스트 1(리스트 0이 채워진 경우)을 채우기 위해 체크될 것이다. 모든 위치들을 체크한 후의 공백 리스트에 대하여, 디폴트 벡터가 리스트를 채우기 위해 사용될 수 있다.
  실시형태 9. 다른 리스트 구성을 이용한 BV 예측
 실시형태 1 내지 실시형태 8에서 설명한 전술한 후보 위치 선택들은 모두 만일 후보 BV의 제1 집합이 이용불능이면 리스트 0이 공백이 되는 규칙을 따른다. 그 경우에는 후보 BV의 제2 집합이 리스트 0을 채우기 위해 사용된다. 그러므로 이 경우에는 리스트 1이 공백으로 될 것이다. 전술한 방법들은 모두 상이한 리스트 구성 옵션을 가질 수 있다. 예를 들면, 실시형태 1에서, 만일 제1 집합 내의 위치(위치 1 및 0)들 중 어느 것도 이용할 수 없으면, 리스트 0이 디폴트 BV로 채워질 수 있고 위치 3, 2 및 4로부터의 제1의 이용 가능한 BV가 리스트 1을 채우기 위해 항상 사용된다. 상기 3개의 위치 내의 어떠한 BV도 이용할 수 없으면, 리스트 1이 디폴트 BV로 채워질 수 있다.
  실시형태 10. 디폴트 블록 벡터를 이용한 BV 예측
 디폴트 BV 값은 1개 또는 2개의 리스트가 공백인 경우에 사용된다. 리스트 1을 채우기 위한 디폴트 BV 값은 리스트 0을 채우기 위한 디폴트 BV 값과 동일할 수도 있고 다를 수도 있다. 디폴트 값은 (0, 0), (-2w, 0), (-w, 0), (0, -2w) 또는 (0, -w)에 대응할 수 있다. 예를 들어서, 만일 단지 하나의 리스트가 공백이면 (-2w, 0)이 사용될 수 있다. 만일 2개의 리스트가 공백이면 (-2w, 0) 및 (-w, 0)이 상기 2개의 리스트를 채우기 위해 사용될 수 있다. 여기에서 및 본 명세서 전체에 걸쳐서 "w"는 현재 블록(즉, 현재 CU)의 폭을 말한다.
  실시형태 11. 저장된 블록 벡터를 이용한 BV 예측
 공백 리스트를 채우는 다른 하나의 방법은 이전에 부호화된 블록의 BV를 저장하는 것이다. 1개 또는 2개의 리스트가 공백일 때, 상기 저장된 벡터를 이용하여 리스트를 채울 수 있다.
 예를 들면, 2개의 버퍼(유닛 0 및 유닛 1)를 이용하여 상이한 값을 가진 최근에 부호화된 BV를 저장할 수 있다. 초기화를 위해, 소정의 디폴트 값을 이용하여 상기 2개의 유닛을 채운다. 예를 들면, (-2w, 0) 및 (-w, 0)이 상기 2개의 버퍼에 대한 초기치로서 사용될 수 있다. 블록이 동일 모드로 부호화되고 그 BV 값이 상기 2개의 유닛 중 어느 하나와 상이할 경우에는 유닛 1의 값이 유닛 0을 채우고 현재의 새로운 BV 값이 유닛 1을 채울 것이다.
  실시형태 12. 시간 BV를 이용한 벡터 예측
 인트라BC BV 예측을 위하여, 시간 BV가 또한 BV 예측을 위해 사용될 수 있다. 전술한 바와 같이 공존 화상 내에 위치된 블록(예를 들면, 도 2의 T BR, T CTR, T UL 또는 T BR2)의 BV가 BV 예측자 중의 하나로서 사용될 수 있다.
  실시형태 13. 공간/시간 BV 및 저장된 벡터 둘 다를 이용한 BV 예측
 이전에 부호화된 블록의 BV는 BV 예측자로서 저장되고 사용될 수 있다. 만일 복수의 저장된 BV가 사용되면, FIFO 메카니즘을 적용할 수 있다. 예를 들면, 2개의 유닛(유닛 0 및 유닛 1)을 이용하여 상이한 값을 가진 최근에 부호화된 BV를 저장한다. 초기화를 위해, 소정의 디폴트 값을 이용하여 상기 2개의 유닛을 채운다. 예를 들면, (-2w, 0) 및 (-w, 0)이 사용될 수 있다. 블록이 동일 모드로 부호화되고 그 BV 값이 상기 2개의 유닛 중 어느 하나와 상이할 경우에는 유닛 1의 값이 유닛 0을 채우고 현재의 새로운 BV 값이 유닛 1을 채울 것이다.
 BV 예측자(BVP) 리스트가 구성될 수 있다. 리스트 0 및 리스트 1로부터의 공간 BV, 시간 BV, 저장된 BV가 BVP 리스트에 넣어질 수 있다. 예를 들면, BVP 리스트는 {리스트 0으로부터의 공간 BV(리스트 0 BV), 리스트 1로부터의 공간 BV(리스트 1 BV)}, {리스트 0 BV, 리스트 1 BV, 시간 BV}, {리스트 0 BV, 리스트 1 BV, 유닛 0에 저장된 BV(저장된 BV 0)}, {리스트 0 BV, 리스트 1 BV, 저장된 BV 0, 유닛 1에 저장된 BV(저장된 BV 1)}, {리스트 0 BV, 저장된 BV 0, 리스트 1 BV}, {저장된 BV 0, 리스트 0 BV, 리스트 1 BV}, {리스트 0 BV, 리스트 1 BV, 시간 BV, 저장된 BV 0} 또는 {리스트 0 BV, 리스트 1 BV, 저장된 BV 0, 시간 BV}일 수 있다.
 BVP가 구성된 후에, 용장성 BV를 제거하기 위해 프루닝 처리를 적용할 수 있다. 프루닝은 전부 프루닝 또는 부분 프루닝(예를 들면, 저장된 BV를 가진 리스트 0 BV만을 프루닝 및/또는 저장된 BV를 가진 리스트 1 BV만을 프루닝)일 수 있다. 프루닝 후에, 기껏해야 N(예를 들면, N=2)개의 BV가 최종 BV 예측자로서 선택된다. 만일 N개 미만의 BV가 선택되면, 미리 규정된 디폴트 BV, 저장된 BV 또는 시간 BV가 N개의 BV 예측자에 대한 BVP 리스트를 채우기 위해 사용될 수 있다.
 미리 규정된 BV 중의 일부를 사용할 수 있다. 미리 규정된 BV는 (0, 0), (-2w, 0), (-w, 0), (-1.5w, 0), (0, -2w), (0, -w) 및 (0, -1.5w)를 포함한 그룹으로부터 선택될 수 있다.
  MV, BV 인트라 예측 모드에 대한 정보 계승
 인트라 모드 및 인트라BC 모드 부호화 블록에서는 MV가 이용불능으로서 설정된다. 인터 모드 및 인트라 모드 부호화 블록에서는 BV가 이용불능으로서 설정된다. 인터 모드 및 인트라BC 모드 부호화 블록에서는 인트라 예측 모드(IPM)가 이용불능으로서 설정된다.
 부호화 효율을 개선하기 위해, 만일 정보가 갱신되지 않으면 이웃 블록 또는 부호화 블록으로부터의 MV/BV/IPM 정보의 계승이 사용된다.
 일 실시형태에 있어서, 만일 현재 블록이 인터 모드, 인트라 모드 또는 팔레트(palette) 모드로 부호화되면, 이 블록의 BV는 최종 부호화 BV로 또는 그 좌측 블록의 BV로 설정된다.
 다른 실시형태에 있어서, 만일 현재 블록이 인트라BC 모드 또는 팔레트 모드로 부호화되면, 이 블록의 MV는 이 블록의 합병 후보 중의 하나, 예를 들면, 제1 합병 후보로 설정된다.
 또 다른 실시형태에 있어서, 만일 현재 블록이 인터 모드 또는 팔레트 모드로 부호화되면, 이 블록의 IPM은 가장 개연성 높은 인트라 모드(most probable Intra mode, MPM) 중의 하나, 예를 들면, 제1 MPM으로 설정된다.
 본 발명의 실시형태를 통합한 시스템의 성능은 SCM 1.0(2014년 3월 27일부터 4월 4일까지 스페인의 발렌시아에서 개최된 ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11의 영상 부호화에 대한 합동 협력 팀(JCT-VC)의 17차 회의에서 '스크린 콘텐츠 부호화 테스트 모델 1(SCM 1)(screen content coding test model 1(SCM 1))의 명칭으로 발표된 문서 JCTVC-Q1014)에 기초한 앵커(anchor) 시스템과 비교된다. SCM 1.0에 기초한 앵커 시스템에 있어서, 각 인트라BC 모드 부호화 블록의 BV는 BV 예측을 이용하지 않고 부호화된다. 3개의 상이한 구성이 표 2에 나타낸 것처럼 각종 테스트 영상에 대한 모든 인트라 모드 설정하에서 SCM 1.0과 비교하기 위해 사용된다. 구성 I에 있어서, 리스트 0 파생물(derivation)은 위치 1(LB)만을 이용하고 리스트 1 파생물은 위치 3(AR)만을 이용한다. 구성 II에 있어서, 1(LB)에 기초한 리스트 0 및 3(AR)에 기초한 리스트 1을 제외하고, 하나의 최종 BV(즉, 최종 인트라BC 모드 부호화 블록의 BV)가 사용된다. 구성 III에 있어서, 1(LB)에 기초한 리스트 0 및 3(AR)에 기초한 리스트 1을 제외하고, 2개의 최종 BV가 사용된다. 공지된 BD-레이트 성능 측정이 성능 비교를 위해 사용된다. 표 2에서 음의 값은 본 발명의 대응하는 실시형태에 의해 달성된 BD-레이트 감소의 개선을 표시한다. 표 2에 나타낸 바와 같이, 특히 텍스트 또는 그래픽 자료를 내포한 영상에 대하여 실질적인 개선이 관측되었다. 표시된 개선은 약 8.2%이다. 따라서 본 발명은 인트라BC 모드에 대한 부호화 효율의 수행을 실질적으로 개선할 수 있다.
 
표 2
  구성 I 구성 II 구성 III
RGB, 텍스트 및 움직임이 있는 그래픽, 1080p -7.3% -7.5% -7.6%
RGB, 텍스트 및 움직임이 있는 그래픽, 720p -4.2% -4.4% -4.5%
RGB, 혼합 콘텐츠, 1440p -2.9% -3.0% -3.1%
RGB, 혼합 콘텐츠, 1080p -3.5% -3.7% -3.7%
RGB, 애니메이션, 720p -0.1% -0.2% -0.2%
RGB, 카메라 포착, 1080p 0.0% 0.0% 0.0%
YUV, 텍스트 및 움직임이 있는 그래픽, 1080p -7.7% -8.2% -8.2%
YUV, 텍스트 및 움직임이 있는 그래픽, 720p -4.7% -4.9% -5.2%
YUV, 혼합 콘텐츠, 1440p -3.3% -3.5% -3.6%
YUV, 혼합 콘텐츠, 1080p -3.7% -3.9% -4.0%
YUV, 애니메이션, 720p -0.1% -0.2% -0.3%
YUV, 카메라 포착, 1080p 0.0% 0.0% 0.0%
 도 4는 본 발명의 실시형태에 따른 블록 벡터(BV) 예측을 통합한 인트라BC(인트라 블록 카피) 모드 인코딩을 위한 예시적인 흐름도이다. 시스템은 단계 410에서 현재 화상 내 현재 블록과 연관된 입력 데이터를 수신한다. 입력 데이터는 메모리(예를 들면, 컴퓨터 메모리, 버퍼(RAM 또는 DRAM) 또는 다른 매체)로부터 또는 프로세서로부터 검색될 수 있다. 현재 화상에 인트라 참조 블록을 위치시키기 위한 현재 블록에 대한 현재 BV가 단계 420에서 결정된다. 단계 430에서, 복수의 BV 후보 리스트가 현재 블록의 이웃 블록으로부터 도출된다. 단계 440에서, BV 후보 리스트가 현재 블록에 대한 BV 예측자로서 선택된다. 단계 450에서, 현재 BV가 BV 예측자에 기초하여 인코딩된다. 단계 460에서, 복수의 BV 후보 리스트로부터 선택된 상기 하나의 BV 후보 리스트를 식별하기 위한 인덱스가 신호되고, 이때 상기 인덱스는 2개의 BV 후보 리스트 중에서 선택하기 위한 1-비트 코드에 대응하고 3개의 BV 후보 리스트 중에서 선택하기 위한 2-비트 코드에 대응한다. 단계 470에서, 현재 블록이 예측자로서 인트라 참조 블록을 이용하여 인코딩된다.
 도 5는 본 발명의 실시형태에 따른 블록 벡터(BV) 예측을 통합한 인트라BC(인트라 블록 카피) 모드 디코딩을 위한 예시적인 흐름도이다. 시스템은 단계 510에서 현재 화상의 부호화 데이터를 포함한 비트스트림을 수신한다. 비트스트림은 메모리(예를 들면, 컴퓨터 메모리, 버퍼(RAM 또는 DRAM) 또는 다른 매체)로부터 또는 프로세서로부터 검색될 수 있다. 단계 520에서, 복수의 BV 후보 리스트가 현재 블록의 인트라BC 모드 부호화 이웃 블록으로부터 도출된다. 단계 530에서, 인덱스가 상기 복수의 BV 후보 리스트로부터 하나의 BV 후보 리스트를 선택하기 위해 비트스트림으로부터 결정된다. 단계 540에서, 부호화 BV가 비트스트림으로부터 결정된다. 단계 550에서, 현재 BV가 상기 부호화된 BV 및 상기 하나의 BV 후보 리스트에 대응하는 BV 예측자에 기초하여 디코딩된다. 단계 560에서, 현재 화상 내의 인트라 참조 블록이 현재 BV에 기초하여 결정된다. 단계 570에서, 현재 블록이 인트라 참조 블록을 이용하여 디코딩된다.
 전술한 흐름도는 본 발명에 따른 인트라BC 부호화의 예를 설명하기 위한 것이다. 당업자라면 본 발명의 정신으로부터 벗어나지 않고 본 발명을 실시하기 위해 각 단계를 수정하거나, 단계들을 재배열하거나, 단계를 분할하거나 또는 단계들을 결합할 수 있다. 본 명세서에서 특정 구문 및 어의론은 본 발명의 실시형태를 구현하는 예를 설명하기 위해 사용되었다. 당업자라면 본 발명의 정신으로부터 벗어나지 않고 상기 구문 및 어의론을 등가적인 구문 및 어의론으로 대체하여 본 발명을 실시할 수 있다.
 전술한 설명은 당업자가 특정 응용 및 그 필요조건과 관련하여 제공된 대로 본 발명을 실시할 수 있게 하기 위해 제시된다. 당업자에게는 설명한 실시형태에 대한 각종 수정이 명백할 것이고, 여기에서 규정된 일반 원리는 다른 실시형태에 적용될 수 있다. 그러므로 본 발명은 도시되고 설명된 특정 실시형태로 제한되지 않고, 여기에서 개시된 원리 및 신규 특징과 일치하는 최광의의 범위로 고려되어야 한다. 전술한 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위해 각종의 특정 세부들이 설명되었다. 그러나 당업자라면 그러한 세부 없이 본 발명이 실시될 수 있다는 것을 이해할 것이다.
 전술한 본 발명의 실시형태는 각종 하드웨어, 소프트웨어 코드 또는 이들의 조합으로 구현될 수 있다. 예를 들면, 본 발명의 실시형태는 여기에서 설명한 처리를 수행하도록 비디오 압축 칩에 집적된 회로 또는 비디오 압축 소프트웨어에 통합된 프로그램 코드일 수 있다. 본 발명의 실시형태는 또한 여기에서 설명한 처리를 수행하도록 디지털 신호 프로세서(DSP)에서 실행되는 프로그램 코드일 수 있다. 본 발명은 컴퓨터 프로세서, 디지털 신호 프로세서, 마이크로프로세서 또는 현장 프로그램가능 게이트 어레이(FPGA)에 의해 수행되는 다수의 기능을 또한 수반할 수 있다. 이러한 프로세서들은 본 발명에 의해 구현되는 특수 방법들을 규정하는 기계 판독가능 소프트웨어 코드 또는 펌웨어 코드를 실행함으로써, 본 발명에 따른 특정 태스크를 수행하도록 구성될 수 있다. 상기 소프트웨어 코드 또는 펌웨어 코드는 상이한 프로그래밍 언어 및 상이한 포맷 또는 스타일로 개발될 수 있다. 상기 소프트웨어 코드는 다른 타겟 플랫폼용으로 또한 컴파일될 수 있다. 그러나 소프트웨어 코드의 다른 코드 포맷, 스타일 및 언어, 및 본 발명에 따른 태스크를 수행하도록 코드를 구성하는 다른 수단은 본 발명의 정신 및 범위로부터 벗어나지 않을 것이다.
 본 발명은 그 정신 또는 본질적 특성으로부터 벗어나지 않고 다른 특정 형태로 구현될 수 있다. 전술한 예들은 모든 점에서 예시하는 것이지 제한하는 것이 아닌 것으로 생각하여야 한다. 그러므로 본 발명의 범위는 전술한 상세한 설명보다는 첨부된 특허 청구범위에 의해 규정된다. 특허 청구범위의 균등물의 의미 및 범위 내에 있는 모든 변화들은 본 발명의 범위 내에 포함되어야 한다.