专利汇可以提供다 계층 기반의 비디오 프레임을 효율적으로 예측하는 방법및 그 방법을 이용한 비디오 코딩 방법 및 장치专利检索,专利查询,专利分析的服务。并且본 발명은 다 계층 구조를 사용하는 비디오 코딩에 있어서, 인트라 모드 및 인트라 BL 모드의 장점을 모두 이용하여 비디오 프레임을 효율적으로 예측하는 방법 및 장치에 관한 것이다.
본 발명에 따른 다 계층 기반의 비디오 프레임을 효율적으로 예측하는 방법은, 하위 계층의 인트라 블록을 상기 인트라 블록 주변의 기 복원된 제1 주변 블록을 이용하여 복원하는 단계와, 상기 제1 주변 블록에 대응되는 상위 계층의 기 복원된 제2 주변 블록에서 상기 제1 주변 블록을 차분하는 단계와, 상기 차분 결과 생성되는 가상의 차분 주변 블록을 이용하여 인트라 예측을 수행함으로써 소정의 인트라 예측 모드에 따른 차분 예측 블록을 생성하는 단계와, 상기 차분 예측 블록과 상기 복원된 인트라 블록을 가산하는 단계와, 상기 인트라 블록에 대응되는 상위 계층의 블록에서 상기 가산 결과 생성되는 예측 블록을 차분하는 단계로 이루어진다.
비디오, 인트라 예측, 다계층, 스케일러빌리티,下面是다 계층 기반의 비디오 프레임을 효율적으로 예측하는 방법및 그 방법을 이용한 비디오 코딩 방법 및 장치专利的具体信息内容。
도 1은 H.264에서 정의하는 인트라 예측 모드 별 예측 방향을 나타내는 도면.
도 2는 도 1의 인트라 예측 모드를 설명하기 위한 라벨링의 예를 나타낸 도면.
도 3은 도 1의 인트라 예측 모드의 각각을 보다 자세히 나타낸 도면.
도 4는 종래의 3가지 예측 방법을 설명하는 개략도.
도 5는 본 발명의 일 실시예에 따른 예측 방법의 개념을 설명하는 도면.
도 6은 본 발명의 일 실시예에 따른 비디오 인코더의 구성을 나타낸 블록도.
도 7은 도 6의 비디오 인코더에 포함되는 부호화부의 개략적 구성을 나타낸 블록도.
도 8은 도 6의 비디오 인코더에 포함되는 복호화부의 개략적 구성을 나타낸 블록도.
도 9는 본 발명의 다른 실시예에 따른 비디오 인코더의 구성을 나타낸 블록도.
도 10은 본 발명의 또 다른 실시예에 따른 비디오 인코더의 구성을 나타낸 블록도.
도 11은 vertical 모드에 대한 인접 방향을 보여주는 도면.
도 12는 방향성을 갖는 8개의 인트라 예측 모드에 대하여, 인접 방향을 설명하는 도면.
도 13은 계층간 해상도가 다른 경우에 계층간에 대응되는 영역을 나타내는 도면.
도 14는 본 발명의 일 실시예에 따른 비디오 디코더의 구성을 도시한 블록도.
(도면의 주요부분에 대한 부호 설명)
10 : 현재 블록 15 : 현재 블록의 주변 블록들
20 : 현재 블록에 대응되는 인트라 블록 25 : 인트라 블록의 주변 블록들
30 : 차분 예측 블록 35 : 차분 주변 블록들
40 : 예측 블록 50 : 잔여 블록
100, 300, 400 : 비디오 인코더 105, 125 : 부호화부
110, 130, 210, 220 : 복호화부 115, 215 : 인트라 부호화부
120 : 인트라 복호화부 145, 235 : 차분 예측 블록 생성부
185, 190 : 모드 선택부 170 : 변환부
175 : 양자화부 180 : 엔트로피 부호화부
200 : 비디오 디코더 205 : 엔트로피 복호화부
245 : 역 양자화부 250 : 역 변환부
본 발명은 비디오 압축 방법에 관한 것으로, 보다 상세하게는 다 계층 구조를 사용하는 비디오 코딩에 있어서, 인트라 모드 및 인트라 BL 모드의 장점을 모두 이용하 여 비디오 프레임을 효율적으로 예측하는 방법 및 장치에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 정보를 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로 하며 전송시에 넓은 대역폭을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축 코딩 기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy) 요소를 제거하는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주파수에 둔감한 것을 고려한 심리시각 중복을 제거함으로써 데이터를 압축할 수 있다.
이러한 동영상 압축 방법으로서, 최근에 MPEG-4(Moving Picture Experts Group-4)에 비해 압축 효율을 한층 향상시킨 H.264/AVC(Advanced Video Coding)에 대한 관심이 높아지고 있다. 압축 효율을 향상시키기 위한 스킴(scheme)의 하나로서, H.264는 한 프레임 내의 공간적인 유사성을 제거하기 위해 방향적 인트라 예측(directional intra-prediction)을 사용한다.
방향적 인트라 예측은 하나의 서브 블록(sub-block)에 대해 상방향, 좌방향의 인접 픽셀들을 이용하여 정해진 방향으로 복사함으로써 현재 서브 블록의 값들을 예측하고, 그 차분만을 부호화하는 방법이다.
H.264에서, 현재 블록에 대한 예측 블록은 앞선 코딩 순서를 갖는 다른 블록을 기반으로 생성된다. 그리고, 상기 현재 블록과 상기 예측 블록을 뺀 값이 코딩된다. 휘도 성분에 대하여, 예측 블록은 각각의 4×4 블록 또는 16×16 매크로블록 단위로 생성된다. 각각의 4×4 블록에 대한 선택 가능한 예측 모드는 9가지가 존재하며, 각각의 16×16 블록에 대해서는 4가지가 존재한다. H.264에 따른 비디오 인코더는 각각의 블록에 대하여, 상기 예측 모드들 중에서 현재 블록과 예측 블록과의 차이가 최소가 되는 예측 모드를 선택한다.
상기 4×4 블록에 대한 예측 모드로서, H.264에서는 도 1에서 도시하는 바와 같이 총 8개의 방향성을 갖는 모드(0, 1, 3 내지 8)와, 인접 8개의 픽셀의 평균 값을 사용하는 DC 모드(2)를 포함한 9가지 예측 모드를 사용한다.
도 2는 상기 9가지 예측 모드를 설명하기 위한 라벨링(labelling)의 예를 나타낸 것이다. 이 경우, 미리 디코딩 되는 샘플들(A 내지 M)을 이용하여 현재 블록에 대한 예측 블록(a 내지 p를 포함하는 영역)을 생성한다. 만약, 여기서 E, F, G, H가 미리 디코딩 될 수 없는 경우라면 그들의 위치에 D를 복사함으로써 E, F, G, H를 가상으로 생성할 수 있다.
도 3을 참조하여 9가지 예측 모드 각각에 관하여 자세히 살펴 보면, 모드 0인 경우에는 예측 블록의 픽셀들은 상위 샘플들(A, B, C, D)을 이용하여 수직방향으로 외삽추정(extrapolation)되고, 모드 1인 경우에는 좌측 샘플들(I, J, K, L)을 이용하 여 수평 방향으로 외삽추정된다. 또한, 모드 2인 경우에는 예측 블록의 픽셀들은 상위 샘플들(A, B, C, D) 및 좌측 샘플들(I, J, K, L)의 평균으로 동일하게 대치된다.
한편, 모드 3인 경우에는 예측 블록의 픽셀들은 좌하(lower-left) 및 우상(upper-right) 사이에서 45° 각도로 내삽추정(interpolation)되고, 모드 4인 경우에는 우하 방향으로 45° 각도로 외삽추정된다. 또한, 모드 5인 경우에는 예측 블록의 픽셀들은 수직에서 오른쪽으로 약 26.6° 각도(너비/높이 = 1/2)로 외삽추정된다.
한편, 모드 6인 경우에는 예측 블록의 픽셀들은 수평에서 약 26.6°아래쪽 방향으로 외삽추정되고, 모드 7인 경우에는 수직에서 좌측으로 약 26.6°방향으로 외삽추정된다. 마지막으로 모드 8인 경우에는 예측 블록의 픽셀들은 수평에서 약 26.6°위쪽 방향으로 내삽추정된다.
도 3의 화살표들은 각 모드에서 예측 방향을 나타낸다. 모드 3 내지 모드 8에서 예측 블록의 샘플들은 미리 디코딩 되는 참조 샘플들 A 내지 M의 가중 평균으로부터 생성될 수 있다. 예를 들어, 모드 4의 경우, 예측 블록의 우상단에 위치한 샘플(d)은 다음의 수학식 1과 같이 추정될 수 있다. 여기서, round(.) 함수는 입력값을 정수 자리로 반올림하는 함수이다.
한편, 휘도 성분에 대한 16×16 예측 모델에는 0, 1, 2, 3의 네 가지 모드가 있다. 모드 0의 경우, 예측 블록의 픽셀들은 상위 샘플들(H)로부터 외삽추정되고, 모드 1 의 경우에는 좌측 샘플들(V)로부터 외삽추정된다. 그리고, 모드 2의 경우에는, 예측 블록의 픽셀들은 상위 샘플들(H) 및 좌측 샘플들(V)의 평균으로 계산된다. 마지막으로, 모드 3의 경우에는, 상위 샘플들(H) 및 좌측 샘플들(V)에 맞는 선형 "plane" 함수를 이용한다. 이 모드는 휘도가 부드럽게 변하는 영역에 보다 적합하다.
한편, 이와 같이 비디오 코딩의 효율을 향상시키려는 노력과 함께, 다양한 네트워크 환경에 따라 전송 비디오 데이터의 해상도, 프레임율, 및 SNR(Signal-to-Noise Ratio)을 가변적으로 조절할 수 있게 해 주는, 즉 스케일러빌리티(scalability)를 지원하는 비디오 코딩 방법에 관한 연구도 활발하게 진행되고 있다.
이러한 스케일러블 비디오 코딩 기술에 관하여, 이미 MPEG-21(moving picture experts group-21) PART-13에서 그 표준화 작업을 진행 중에 있다. 이러한 스케일러빌리티를 지원하는 방법 중에서, 다 계층(multi-layered) 기반의 비디오 코딩 방법이 유력한 방식으로 인식되고 있다. 예를 들면, 기초 계층(base layer), 제1 향상 계층(enhanced layer 1), 제2 향상 계층(enhanced layer 2)을 포함하는 다 계층을 두어, 각각의 계층은 서로 다른 해상도(QCIF, CIF, 2CIF), 또는 서로 다른 프레임율(frame-rate)을 갖도록 구성할 수 있다.
상기 진행중인 스케일러블 비디오 코딩 표준에서는, 기존의 H.264에서 현재 블록 내지 매크로블록에 대한 예측을 위하여 사용되는 인터 예측(inter prediction) 및 방향적 인트라 예측(directional intra prediction; 이하 단순히 인트라 예측이라고 함)이외에도, 현재 블록과 이에 대응되는 하위 계층 블록 간의 상관성을 이용하 여 현재 블록이 속한 계층을 예측하는 방법을 추가적으로 도입하고 있다. 이러한 예측 방법을 상기 표준에서는 "인트라 BL(intra_BL) 예측"이라고 하고, 이러한 예측을 사용하여 부호화하는 경우를 "인트라 BL 모드"라고 한다.
도 4는 상기 3가지 예측 방법을 설명하는 개략도로서, 현재 프레임(1)의 어떤 매크로블록(4)에 대하여 인트라 예측을 하는 경우(①)와, 현재 프레임(1)과 다른 시간적 위치에 있는 프레임(2)을 이용하여 인터 예측을 하는 경우(②)와, 상기 매크로블록(4)과 대응되는 기초 계층 프레임(3)의 영역(6)에 대한 텍스쳐 데이터를 이용하여 인트라 BL 예측을 하는 경우(③)를 각각 나타내고 있다.
이와 같이, 상기 스케일러블 비디오 코딩 표준에서는 매크로블록 단위로 상기 세가지 예측 방법 중 유리한 하나의 방법을 선택하고, 그에 따라서 해당 매크로블록을 부호화하는 방법을 이용한다. 즉, 하나의 매크로블록에서는 인터 예측, 인트라 예측 및 인트라 BL 예측 중 하나의 예측 방법이 선택적으로 사용된다. 그러나, 인트라 BL 예측을 이용하여 생성되는 차분 블록은 여전히 주변 차분과 상당한 연관성을 가지고 있다. 따라서, 인트라 BL 예측 및 인트라 예측의 장점을 모두 고려한 예측 기술을 개발할 필요성이 있다. 이와 같은 관점에서 생각한다면, 인트라 BL 예측 및 인터 예측의 장점을 모두 고려한 예측 방법도 생각할 수 있겠지만, 인트라 BL 예측 또는 인트라 예측의 특징에 비하여 인터 예측의 특징은 매우 이질적이므로 이 같은 방법은 바람직하지 않을 것이다.
본 발명은 상기한 필요성을 고려하여 창안된 것으로, 인트라 BL 예측 및 인트라 예 측을 모두 이용한 예측 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 상기 예측 방법을 통하여 비디오 코딩 효율을 향상시키는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 다 계층 기반의 비디오 프레임을 효율적으로 예측하는 방법은, 하위 계층의 인트라 블록을 상기 인트라 블록 주변의 기 복원된 제1 주변 블록을 이용하여 복원하는 단계; 상기 제1 주변 블록에 대응되는 상위 계층의 기 복원된 제2 주변 블록에서 상기 제1 주변 블록을 차분하는 단계; 상기 차분 결과 생성되는 가상의 차분 주변 블록을 이용하여 인트라 예측을 수행함으로써 소정의 인트라 예측 모드에 따른 차분 예측 블록을 생성하는 단계; 상기 차분 예측 블록과 상기 복원된 인트라 블록을 가산하는 단계; 및 상기 인트라 블록에 대응되는 상위 계층의 블록에서 상기 가산 결과 생성되는 예측 블록을 차분하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 다 계층 기반의 비디오 인코딩 방법은, 하위 계층의 인트라 블록을 상기 인트라 블록 주변의 기 복원된 제1 주변 블록을 이용하여 복원하는 단계; 상기 제1 주변 블록에 대응되는 상위 계층의 기 복원된 제2 주변 블록에서 상기 제1 주변 블록을 차분하는 단계; 상기 차분 결과 생성되는 가상의 차분 주변 블록을 이용하여 인트라 예측을 수행함으로써 소정의 인트라 예측 모드에 따른 차분 예측 블록을 생성하는 단계; 상기 차분 예측 블록과 상기 복원된 인트라 블록을 가산하는 단계; 상기 인트라 블록에 대응되는 상위 계 층의 블록에서 상기 가산 결과 생성되는 예측 블록을 차분하는 단계; 및 상기 차분 결과 생성되는 잔여 블록을 부호화하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 다 계층 기반의 비디오 디코딩 방법은, 하위 계층의 인트라 블록을 상기 인트라 블록 주변의 기 복원된 제1 주변 블록을 이용하여 복원하는 단계; 상기 제1 주변 블록에 대응되는 상위 계층의 기 복원된 제2 주변 블록에서 상기 제1 주변 블록을 차분하는 단계; 상기 차분 결과 생성되는 가상의 차분 주변 블록을 이용하여 인트라 예측을 수행함으로써 소정의 인트라 예측 모드에 따른 차분 예측 블록을 생성하는 단계; 상기 차분 예측 블록과 상기 복원된 인트라 블록을 가산하는 단계; 상기 인트라 블록에 대응되는 상위 계층의 블록을 복원하는 단계; 및 상기 복원된 상위 계층의 블록과 상기 가산 결과 생성되는 예측 블록을 가산하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 다 계층 기반의 비디오 인코더는, 하위 계층의 인트라 블록을 상기 인트라 블록 주변의 기 복원된 제1 주변 블록을 이용하여 복원하는 수단; 상기 제1 주변 블록에 대응되는 상위 계층의 기 복원된 제2 주변 블록에서 상기 제1 주변 블록을 차분하는 수단; 상기 차분 결과 생성되는 가상의 차분 주변 블록을 이용하여 인트라 예측을 수행함으로써 소정의 인트라 예측 모드에 따른 차분 예측 블록을 생성하는 수단; 상기 차분 예측 블록과 상기 복원된 인트라 블록을 가산하는 수단; 상기 인트라 블록에 대응되는 상위 계층의 블록에서 상기 가산 결과 생성되는 예측 블록을 차분하는 수단; 및 상기 차분 결과 생성되는 잔여 블록을 부호화하는 수단을 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 다 계층 기반의 비디오 디코더는, 하위 계층의 인트라 블록을 상기 인트라 블록 주변의 기 복원된 제1 주변 블록을 이용하여 복원하는 수단; 상기 제1 주변 블록에 대응되는 상위 계층의 기 복원된 제2 주변 블록에서 상기 제1 주변 블록을 차분하는 수단; 상기 차분 결과 생성되는 가상의 차분 주변 블록을 이용하여 인트라 예측을 수행함으로써 소정의 인트라 예측 모드에 따른 차분 예측 블록을 생성하는 수단; 상기 차분 예측 블록과 상기 복원된 인트라 블록을 가산하는 수단; 상기 인트라 블록에 대응되는 상위 계층의 블록을 복원하는 수단; 및 상기 복원된 상위 계층의 블록과 상기 가산 결과 생성되는 예측 블록을 가산하는 수단을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도 5는 본 발명의 일 실시예에 따른 예측 방법의 개념을 설명하는 도면이다. 여기서, 상위 계층에 속하는 현재 블록의 원래 이미지(10; 이하 단순히 현재 블록이라고 함)에 대한 예측 블록(40)을 어떻게 생성하는가가 주안점이 된다. 이하 본 발명 에서, "블록"은 종래의 H.264에서 인트라 블록의 크기와 동일한 크기를 갖는 것으로 정의할 수 있다. 그런데, 종래의 인트라 블록은 휘도 성분(luminance component)에 대하여 4×4, 및 16×16 모드가 존재하고, 색차 성분(chrominance component)에 대하여 8×8 모드가 존재하므로 이에 따라서 본 발명에서의 "블록"도 다양한 크기를 가질 수 있다.
상위 계층에서, 현재 블록(10)에 대한 예측을 수행하기 이전에 현재 블록(10)의 주변 블록들(15)은 이미 어떠한 예측 방식으로 부호화/복호화 되어 있다. 상기 주변 블록들(15)은 인터 예측, 인트라 예측, 또는 인트라 BL 예측 등 기타 어떤 예측 방법에 의하여 부호화/복호화되더라도 무방하다.
이와 같이 현재 블록(10)을 예측하기 위해서는 주변 블록들(15)의 원래 이미지가 아니라 부호화 및 복호화(폐루프)를 거친 이미지가 사용된다. 현재 대부분의 코덱들은 이와 같이 폐루프 부호화를 이용하여 비디오 인코더단과 비디오 디코더단 간에 발생되는 드리프팅 에러(drifting error)를 제거하고 있으므로, 본 발명에서도 현재 블록의 예측시 이용되는 기존 블록의 이미지도 복원(부호화후 복호화)된 이미지를 이용하기로 한다. 그러나, 기존 블록의 원래 이미지를 이용하는 방식(개루프 방식)에도 본 발명을 적용할 수 있음은 당업자에게는 자명한 사항이다.
하위 계층에서, 현재 블록(10)에 대응되는 블록(이하 "대응 블록"이라고 함)은 도 3과 같은 인트라 예측에 의하여 부호화/복호화된 인트라 블록(20)이다. 그리고, 상기 인트라 블록(20)의 주변 블록들(25)도 상기 상위 계층의 주변 블록들(15)과 마찬가지로 어떠한 예측 방법에 의하여 부호화/복호화되더라도 무방하다. 상기 하위 계층의 주변 블록들(25)은 상기 상위 계층의 주변블록들(15) 각각과 대응되는 위치에 존재한다.
그런데, 상위 계층의 해상도와 하위 계층의 해상도는 같을 수도 있고 다를 수도 있다. 만약, 양 계층에서의 해상도가 동일하다면 상위 계층에서의 블록들(10, 15)과 하위 계층의 블록들(20, 25)의 크기는 동일하겠지만, 그렇지 않다면 상위 계층의 블록들(10, 15)의 크기가 더 클 수도 있다. 예를 들어, 상위 계층의 해상도가 하위 계층의 해상도의 2배라고 하고, 하위 계층의 블록(20, 25)이 4×4 크기를 갖는다면, 상위 계층의 블록은 8×8 크기를 가질 수 있다.
또한, 본 발명에서 "주변 블록"은 인트라 예측시 참조되는 좌측, 좌상측, 상측, 및 우상측의 4개의 블록을 의미하는 것으로 하여 설명할 것이지만, 인트라 예측시 참조되는 블록의 형태가 달라진다면 이에 따라 주변 블록의 개수 및 위치도 달라질 수 있음을 밝혀 둔다.
이와 같이, 상위 계층의 주변 블록들(15), 하위 계층의 인트라 블록(20), 및 주변 블록들(25)이 모두 복원되었다고 할 때, 이들을 이용하여 현재 블록(10)에 대한 예측 블록(40)을 생성할 수 있다. 예측 블록(40)을 생성하는 과정을 자세히 살펴 보면 다음과 같다.
먼저, 복원된 상위 계층의 주변 블록들(15)에서 복원된 하위 계층의 주변 블록들(25)을 차분하여 가상의 차분 주변 블록들(35)을 생성한다. 물론, 상기 차분은 양 계층에서 대응되는 블록들 간에 이루어진다. 이와 같이 생성된 차분 주변 블록들(35)에 대하여 도 3과 같은 방향적 인트라 예측을 적용하면 9개의 모드 각각에 대 한 차분 예측 블록(30)을 생성할 수 있다.
그리고, 상기 생성된 9개의 차분 예측 블록(30)을 각각 인트라 블록(20)과 가산한 후 그 가산된 9개의 예측 블록 후보들 중에서 최적의 후보를 선택한다. 예를 들어, 상기 선택 과정은 상기 9개의 후보들과 현재 블록(10)과의 이미지 차이(image difference)가 최소가 되는 것을 선택하는 방식으로 수행될 수 있다. 또는, 다른 예로서, 상기 9개 각각의 예측 블록(40) 후보들을 이용하여 현재 블록(10)을 예측하고 상기 예측 결과를 부호화한 후 RD 비용 함수(rate-distortion cost function)를 이용하여 최적의 후보를 선택하는 방법을 이용할 수도 있다. 전자의 방법은 계산량이 적고 간단히 수행될 수 있다는 장점이 있고, 후자의 방법은 보다 정확한 후보를 선택할 수 있다는 장점이 있다.
예측 블록(40)의 후보들 중에서 선택된 예측 블록(40)이 결정되면, 그 다음으로는 상기 예측 블록(40)을 이용하여 현재 블록(10)을 예측한다. 즉, 현재 블록(10)에서 상기 예측 블록(40)을 차분하여 잔여 블록(residual block; 50)을 생성한다. 그리고, 상기 잔여 블록(50)을 부호화함으로써 본 발명의 기본적인 동작은 완료된다.
이상에서 본 발명의 개략적 동작을 살펴보았는데, 이하에서는 종래의 인트라 BL 모드를 이용하는 방법에 비하여 본 발명에서 제시하는 방법의 개념적 차이를 간단히 비교한다. 현재 블록(10)의 이미지를 C 1 이라고 하고, 하위 계층의 복원된 인트라 블록(20)을 C 0 라고 한다면, 종래의 인트라 BL 모드에서는 수학식 2와 같이 C 0 가 C 1 과 유사하다는 가정하에 C 0 를 C 1 의 예측 블록으로 그대로 이용한다.
1 -C
0
0
반면에, 본 발명에서는 단순히 C 0 을 예측 블록으로 이용하는 것이 아니라, 다음의 수학식 3과 같은 연관성을 이용한다. 여기서, INT(.)는 방향적 인트라 예측을 수행하는 함수를 의미하고, N 1 은 상위 계층의 주변 블록들을 N 0 은 하위 계층의 주변 블록들을 의미한다.
1 -C
0
INT(N
1 -N
0 )
≠0
수학식 3에서 보는 바와 같이, 현재 블록 C 0 와 대응되는 하위 계층 블록 C 1 과의 차분은, 상위 계층의 주변블록들 N 1 과 하위 계층의 주변 블록들 N 0 와의 차분을 이용하여 인트라 예측을 수행한 결과와 상당한 연관성(correlation)을 갖는다. 따라서, 본 발명에 따른 현재 블록 C 1 은 다음의 수학식 4에 따라서 보다 정밀하게 예측될 수 있다.
1 C
0 + INT(N
1 -N
0 )
여기서, C 1 , C 0 , 및 INT(N 1 -N 0 )는 각각 도 5의 현재 블록(10), 복원된 인트라 블록(20), 및 차분 예측 블록(30)에 해당된다.
도 6은 본 발명의 일 실시예에 따른 비디오 인코더(100)의 구성을 나타낸 블록도이다. 비디오 인코더(100)는 현재 블록 및 주변 블록 이미지와, 현재 블록의 하위 계층에서의 대응 블록 및 그 주변 블록 이미지를 입력으로 하여, 현재 블록을 부호화한 데이터를 출력하는 구성으로 나타나 있다.
부호화부(105)는 현재 블록의 주변 블록 이미지를 부호화하고, 복호화부(110)는 상기 부호화된 결과를 복호화한다. 상기 부호화 과정 및 복호화 과정은 일반적인 비디오 부호화/복호화 과정을 따른다. 부호화부(105)는 도 7과 같은 개략적인 구성으로 나타낼 수 있다. 입력된 주변 블록 이미지는 선택부(61)에 의하여 인터 예측, 인트라 예측, 및 인트라 BL 예측 중 하나의 예측 방법이 선택된다. 상기 선택된 예측 방법에 따라서 인터 예측부(62), 인트라 예측부(63), 및 인트라 BL 예측부(64) 중 하나의 구성요소는 입력된 이미지로부터 잔여 블록을 생성한다. 변환부(65)는 DCT 변환, 웨이블릿 변환 등의 변환 알고리즘을 이용하여 상기 잔여 블록으로부터 변환 계수를 생성하고, 양자화부(66)는 상기 변환 계수를 양자화한다.
또한, 복호화부(110)는 도 8과 같은 개략적인 구성으로 나타낼 수 있다. 역 양자화부(71)는 부호화부(105)에서 출력되는 신호를 역 양자화하고, 역 변환부(72)는 상기 역 양자화된 결과에 대하여 변환부(65)에서의 변환 과정을 역으로 수행한다. 그리고, 선택부(73)는 부호화부(105)에서 선택된 예측 방법과 대응되는 역 예측 방법을 선택한다. 상기 선택에 따라서 역 인터 예측부(74), 역 인트라 예측부(75), 또는 역 인트라 BL 예측부(76)는 역 변환된 결과 신호에 대하여 부호화부(105)에서의 예측 과정의 역 과정, 즉 역 예측을 수행하여 주변 블록을 복원한다. 상기 복원된 주변 블록은 차분기(135)로 입력된다.
한편, 인트라 부호화부(115)는 대응 블록 이미지를 부호화하고, 인트라 복호화부(120)는 상기 부호화된 결과를 복호화한다. 여기서 주목할 것은 본 발명에서 대응 블록은 인트라 예측에 의하여 부호화되어야 한다는 점이다. 다만, 현재 블록의 주변 블록이나 대응 블록의 주변 블록은 어떠한 예측 방법에 의하여 부호화되더라도 무방하다.
따라서, 인트라 부호화부(115)는 도 7의 구성도에서의 인트라 예측부(63), 변환부(65), 및 양자화부(66)로 구성될 수 있으며, 마찬가지로 인트라 복호화부(120)는 도 8의 구성도에서 역 양자화부(71), 역 변환부(72), 및 역 인트라 예측부(75)로 구성될 수 있다.
인트라 복호화부(120)에서 출력되는 신호, 즉 복원된 대응 블록(인트라 블록)은 선택적으로 업샘플러(150)를 거쳐서 가산기(160)로 입력된다. 업샘플러(150)는 상위 계층과 하위 계층의 해상도가 일치하면 사용되지 않고, 상기 해상도가 일치하지 않으면 복원된 인트라 블록을 상위 계층의 해상도가 되도록 업샘플링한다.
한편, 부호화부(125)는 대응 블록의 주변 블록 이미지를 부호화하고, 복호화부(130)는 상기 부호화된 결과를 복호화한다. 부호화부(125)는 도 7과 마찬가지의 구성을, 복호화부(130)는 도 8과 마찬가지의 구성을 가질 수 있다.
복호화부(130)에서 출력되는 신호, 즉 복원된 주변 블록은 선택적으로 업샘플러(140)를 거쳐서 차분기(135)로 입력된다. 업샘플러(135)는 상위 계층과 하위 계층의 해상도가 일치하면 사용되지 않고, 상기 해상도가 일치하지 않으면 복원된 인트 라 블록을 상위 계층의 해상도가 되도록 업샘플링한다.
차분기(135)는 복호화부(110)로부터 입력되는 신호에서, 복호화부(130)로부터 입력되거나 업샘플러(140)로부터 입력되는 신호를 차분함으로써 차분 주변 블록을 구한다.
차분 예측 블록 생성부(145)는 상기 차분 주변 블록을 이용하여 방향적 인트라 예측을 수행함으로 소정 개수의 모드 별 차분 예측 블록을 생성한다. 예를 들어, 도 3과 같이 H.264에서는 8개의 방향성을 갖는 모드와 1개의 DC 모드를 포함하여 총 9개의 모드를 이용할 수 있다. 이러한 각각의 모드 별로 9개의 차분 예측 블록을 생성하고 생성된 차분 예측 블록들을 가산기(160)에 제공한다.
가산기(160)는 인트라 복호화부(120)로부터 입력되거나 업샘플러(150)로부터 입력되는 신호에 상기 모드별 차분 예측 블록을 가산한다. 그 결과 상기 모드 개수만큼의 예측 블록 후보들이 생성된다.
모드 선택부(190)는 상기 예측 블록 후보들이 갖는 각각의 모드 중에서 최적의 모드(인트라 예측 모드)를 선택하고, 상기 선택된 모드에 따라서 상기 예측 블록 후보들 중 최적의 예측 블록을 선택한다. 이러한 모드 선택은 전술한 바와 같이 상기 예측 블록 후보들 중에서 현재 블록과의 차이(difference)가 최소가 되는 경우의 모드를 선택하는 방식으로 수행된다. 여기서, 상기 블록간의 차이란 블록간의 대응되는 화소값의 차이의 합을 의미한다.
그리고, 차분기(165)는 입력된 현재 블록의 이미지에서 상기 선택된 예측 블록을 차분하여 잔여 블록을 생성한다.
변환부(170)는 상기 잔여 블록에 대하여 공간적 변환을 수행하여 변환 계수를 생성한다. 이러한 공간적 변환법으로는 DCT(Discrete Cosine Transform), 웨이블릿 변환(wavelet transform) 등이 사용될 수 있다. 만약, 공간적 변환으로 DCT를 사용하는 경우 상기 변환 계수는 DCT 계수를 의미하고, 웨이블릿 변환을 사용하는 경우 상기 변환 계수는 웨이블릿 계수를 의미한다.
양자화부(175)는 상기 변환 계수를 양자화한다. 양자화(quantization)란 임의의 실수값으로 표현되는 상기 변환 계수를 일정 구간으로 나누어 불연속적인 값(discrete value)으로 나타내고, 이를 소정의 인덱스로 매칭(matching)시키는 작업을 의미한다. 특히, 공간적 변환 방법으로 웨이블릿 변환을 이용하는 경우에는 양자화 방법으로서 엠베디드 양자화(embedded quantization) 방법을 이용하는 경우가 많다. 이러한 엠베디드 양자화 방법으로는 EZW(Embedded Zerotrees Wavelet Algorithm), SPIHT(Set Partitioning in Hierarchical Trees), EZBC(Embedded ZeroBlock Coding) 등이 있다.
엔트로피 부호화부(180)는 양자화부(175)에 의하여 양자화된 변환 계수와, 모드 선택부(190)에서 선택된 모드 정보를 무손실 부호화한다. 이러한 무손실 부호화 방법으로는, 산술 부호화(arithmetic coding), 가변 길이 부호화(variable length coding) 등이 사용될 수 있으며, 그 결과 현재 블록에 대한 부호화된 데이터가 출력된다.
도 9는 본 발명의 다른 실시예에 따른 비디오 인코더(300)의 구성을 나타낸 블록도이다. 도 9의 실시예는 도 6의 실시예와는 달리 모드 선택부(185)가 엔트로피 부호 화부(180)에 의하여 무손실 부호화된 결과를 이용하는 방식이다. 따라서, 차분 예측 블록 생성부(145)에서 차분 예측 블록은 각 모드별(예를 들어, 9개의 인트라 예측 모드별)로 생성될 뿐만 아니라, 그 이후의 예측 블록, 잔여 블록, 변환 계수, 및 양자화 계수 모두 모드 별로 각각 구해지며, 모드 선택부(185)에서의 비교를 통하여 최종적으로 최적의 모드를 선택하게 된다.
모드 선택부(185)는 엔트로피 부호화부(180)에서 무손실 부호화된 각 모드별 부호화 데이터에 대하여 RD 비용 함수를 적용하여 상기 비용 함수가 최소가 되는 모드를 선택한다. 이와 같은 RD 비용 함수는 다음의 수학식 5와 같이 정의될 수 있다. 여기서, E는 부호화된 데이터를 복원한 신호(복원된 현재 블록)와 원 신호(현재 블록의 원 이미지)와의 차이를 의미하고, B는 각 방법을 수행하는데 소요되는 비트량을 의미한다. 또한, λ는 라그랑지안 계수로서 E와 B의 반영 비율을 조절할 수 있는 계수를 의미한다.
모드 선택부(185)에서 선택된 모드는 엔트로피 부호화부(180)에 전달되며, 엔트로피 부호화부(180)는 상기 선택된 모드 정보를 무손실 부호화하고 이를 상기 모드에 해당되는 현재 블록의 부호화 데이터와 함께 출력한다.
이상, 도 6 및 도 9에서 제안된 방법은 기존의 인트라 BL 예측에 비하여 더 많은 심볼 비트(simbol bit)가 요구된다. 왜냐하면 기존의 인트라 BL 예측은 별다른 모드 정보를 요하지 않지만 본 발명에 따른 예측 방법은 별도의 모드 정보(9개)를 요 하기 때문이다. 이러한 방향적 인트라 예측 모드에 따른 오버헤드(overhead)는 기초 계층의 인트라 예측 모드를 그대로 이용함으로써 제거될 수 있다.
도 10은 이와 같이 하위 계층에서 인트라 예측시 사용된 인트라 예측 모드를 차분 주변 블록(도 5의 35)으로부터 차분 예측 블록(도 5의 30)을 생성하는데 그대로 이용하는 경우의 비디오 인코더(400)의 구성을 도시한 것이다.
도 10의 구성도 도 6 또는 도 9의 구성과 대부분 유사하지만, 인트라 부호화부(115)에서 제공되는 모드 정보는 차분 예측 블록 생성부(145) 및 엔트로피 부호화부(180)에 입력된다는 점에서 차이가 있다. 차분 예측 블록 생성부(145)는 상기 모드 정보에 따른 하나의 차분 예측 블록을 생성하는데, 도 6 및 도 9의 실시예에서는 모드별 개수만큼의 차분 예측 블록들을 생성한다.
그리고, 엔트로피 부호화부(180)는 현재 블록의 모드 정보를 별도로 부호화할 필요 없이, 이에 대응되는 하위 계층의 대응 블록의 모드 정보만을 부호화하면 된다. 따라서, 기존의 인트라 BL 예측에 비하여 오버헤드가 증가되지 않는다.
이상, 도 6, 도 9, 및 도 10의 실시예에서는 본 발명에 따라서 현재 블록을 부호화하는 과정을 설명하였지만, 이와 같이 부호화된 현재 블록 및 기 부호화된 주변 블록을 조합하면 결국 하나의 비디오 프레임을 부호화할 수 있음은 당업자라면 충분히 알 수 있을 것이다.
한편, 도 6 및 도 9의 실시예와 같이 별도의 예측 모드를 계산하는 경우에는 상기 예측 모드로 인한 오버헤드를 다소 나마 감소시킬 수 있는 방법을 개발할 필요가 있다. 따라서, 본 발명에서는 현재 블록에 대한 모드 정보를 그대로 부호화하는 것 이 아니라, 상기 대응 블록의 예측 모드와의 "방향 차분" 만을 부호화하는 방법을 사용한다.
도 11은 대응 블록의 최적 예측 방향이 vertical 모드(모드 0)일 때, 현재 블록에서는 이 방향의 인접 방향만을 탐색하는 방법을 도시한 것이다. 즉, 대응 블록의 최적 예측 모드가 세로 방향을 나타내므로, 현재 블록의 최적 예측 모드는 vertical 모드(모드 0), vertical left 모드(모드 7), 또는 vertical right 모드(모드 5)일 가능성이 높다고 볼 수 있다. 따라서, 이들 방향에 해당하는 모드만을 탐색함으로써 방향적 인트라 예측시의 연산량을 낮출 수 있다. 또한, 시계 방향으로의 인접 방향을 -1로 표현하고, 반시계 방향으로의 인접 방향은 +1, 동일한 방향을 +0으로 표현하고, 이를 부호화 함으로써 최적 방향을 부호화하기 위한 비트 수를 효과적으로 감소시킬 수 있다.
이와 같이, 모드 번호에 무관하게 그 방향만을 고려하여 차분으로 표시할 수 있는데, 본 발명에서는 이러한 차분을 "방향 차분(directional difference)" 라고 정의하기로 한다. 예를 들어, 모드 0을 기준으로 할 때, 모드 6의 방향 차분은 +3이고, 모드 3의 방향 차분은 -2이다.
도 12는 방향성을 갖는 8개의 인트라 예측 모드에 대하여, 인접 방향을 설명하는 도면이다. 예를 들어, 모드 7의 인접 모드는 모드 3 및 모드 0이고, 모드 0의 인접 모드는 모드 7 및 모드 0이다. 문제는 모드 3 및 모드 8의 인접 모드는 어떻게 되는가가 문제인데, 본 발명의 일 실시예로서 인접 모드는 인접한 거리에 무관하게 시계 방향 및 반시계 방향으로 가장 근접한 두 개의 모드로 정의될 수 있다. 따라 서, 모드 3의 인접 모드는 모드 8 및 모드 7이 되고, 모드 8의 인접 모드는 모드 1 및 모드 3이 된다. 이와 같이 하면 특정 모드에 대한 인접 모드는 -1, 또는 1로 표시할 수 있게 되며, 방향성을 갖는 모든 인트라 예측 모드에 대하여 통일성을 갖게 된다.
그러나, 실제로 모드 3과 모드 8은 거의 반대 방향을 가리키므로 그 예측 범위에 든다고 보기 어려우므로, 본 발명의 다른 실시예로서, 모드 3 및 모드 8의 경우에는 인접 모드가 하나만 존재하는 것으로 생각할 수도 있다. 이 경우, 모드 3의 인접 모드는 모드 7이 되고, 모드 8의 인접 모드는 모드 1이 된다.
그런데, 현재 계층과 그 하위 계층 간의 해상도가 다른 경우에는 현재 블록에 대응되는 하위 계층 블록은 1대1 대응이 되지 않는다. 도 13의 예에서 살펴 보면, 하위 계층의 해상도가 현재 계층의 1/2이라고 하면 하위 계층의 하나의 블록(85)은 상위 계층의 4개의 블록(81 내지 84)에 대응된다. 따라서, 이 경우에는 현재 계층의 4개의 블록(81 내지 84) 각각에 대응되는 하위 계층 블록은 모두 블록 85임에 유의할 필요가 있다.
이와 같이 현재 블록에 대한 모드를 방향 차분을 이용하여 나타내고, 상기 방향 차분을 엔트로피 부호화함으로써, 오버헤드를 다소간 감소시킬 수 있다.
도 14는 본 발명의 일 실시예에 따른 비디오 디코더(200)의 구성을 도시한 블록도이다.
엔트로피 복호화부(205)는 입력된 비트스트림을 무손실 복호화하여, 현재 블록의 주변 블록 데이터, 대응 블록 데이터, 대응 블록의 주변 블록 데이터, 현재 블록 데이터, 및 현재 블록의 모드 정보를 추출한다.
복호화부(210)는 현재 블록의 주변 블록 데이터를 복호화하여 그 결과를 차분기(230)에 제공한다. 복호화부(210)는 도 6의 복호화부(110)와 동일한 구성으로 이루어질 수 있다. 그리고, 인트라 복호화부(215)는 대응 블록 데이터를 복호화하여 그 결과를 가산기(240)에 제공한다. 이러한 인트라 복호화부(215)는 도 6의 인트라 복호화부(120)와 동일한 구성을 가질 수 있다.
또한, 복호화부(220)는 대응 블록의 주변 블록 데이터를 복호화하여 그 결과를, 업샘플러(225)를 선택적으로 거쳐, 차분기(230)에 제공한다. 복호화부(220)는 도 6의 복호화부(130)과 동일한 구성으로 이루어질 수 있다. 업샘플러(225)는 상위 계층과 하위 계층의 해상도가 일치하면 사용되지 않고, 상기 해상도가 일치하지 않으면 복호화부(220)에서 복호화된 주변 블록을 상위 계층의 해상도가 되도록 업샘플링한다.
차분기(230)는 복호화부(210)로부터 입력되는 신호에서, 복호화부(220)로부터 직접 입력되거나 업샘플러(225)를 거쳐서 입력되는 신호를 차분하여 차분 주변 블록을 생성한다.
그리고, 차분 예측 블록 생성부(235)는 상기 차분 주변 블록을 이용하여 엔트로피 복호화부(205)로부터 전달되는 모드 정보에 따른 인트라 예측을 수행한다. 그 결과 차분 예측 블록이 생성된다.
가산기(240)는 인트라 복호화부(215)에서 출력되는 신호, 즉 복원된 대응 블록(인트라 블록) 및 상기 차분 예측 블록을 가산하여 예측 블록을 생성한다.
한편, 엔트로피 복호화부(205)에서 출력되는 현재 블록 데이터는 역 양자화부(245)로 입력되는데, 역 양자화부(245)는 상기 현재 블록 데이터를 역 양자화한다. 이러한 역 양자화 과정은 비디오 인코더(100, 300, 또는 400)단의 양자화부(175)에서 수행되는 양자화 과정의 역에 해당되며, 소정의 인덱스로 표현된 값과 매칭되는 양자화된 계수를 찾는 과정이다.
역 변환부(250)는 상기 역 양자화된 결과를 역 변환하여 잔여 블록을 복원한다. 상기 역 변환은 비디오 인코더(100, 300, 또는 400)단의 변환부(170)에서 수행되는 변환 과정의 역에 해당된다. 만일, 상기 변환 과정이 DCT 변환이라면, 상기 역 변환은 역 DCT 변환이 될 것이고, 상기 변환 과정이 웨이블릿 변환이라면, 상기 역 변환은 역 웨이블릿 변환이 될 것이다.
마지막으로, 가산기(255)는 상기 생성된 예측 블록 및 상기 복원된 잔여 블록을 가산하여 현재 블록을 복원한다.
지금까지 도 6, 도 9, 도 10, 및 도 14의 각 구성요소는 소프트웨어(software) 또는, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.
본 발명에 따르면, 인트라 BL 예측의 장점 및 인트라 예측의 장점을 모두 고려함으로써, 비디오 코딩 효율을 향상시킬 수 있다.
본 발명에 따르면, 모드 정보를 보다 효율적으로 표시할 수 있다.
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种基于机器学习的内容自适应视频编码方法 | 2020-05-08 | 839 |
向后兼容的HDR视频多层压缩技术 | 2020-05-12 | 152 |
压缩/解压缩的装置和系统、芯片、电子装置、方法 | 2020-05-08 | 169 |
处理和传输媒体数据的方法和装置 | 2020-05-11 | 992 |
用于基于三维色彩映射模型参数优化的系统和方法 | 2020-05-08 | 959 |
一种针对多路h.264视频会议的GPU解码方法 | 2020-05-11 | 800 |
BIO中的时间梯度计算的改善 | 2020-05-08 | 174 |
针对多层视频编码的层间参考图片增强的设备 | 2020-05-11 | 799 |
用于对视频数据进行编码的方法、装置和设备 | 2020-05-12 | 62 |
解码器、解码方法、编码器和编码方法 | 2020-05-08 | 403 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。