KR101610029B1 - 가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치 - Google Patents

가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치 Download PDF

Info

Publication number
KR101610029B1
KR101610029B1 KR1020090126232A KR20090126232A KR101610029B1 KR 101610029 B1 KR101610029 B1 KR 101610029B1 KR 1020090126232 A KR1020090126232 A KR 1020090126232A KR 20090126232 A KR20090126232 A KR 20090126232A KR 101610029 B1 KR101610029 B1 KR 101610029B1
Authority
KR
South Korea
Prior art keywords
mode
partition
submodes
skip
motion estimation
Prior art date
Application number
KR1020090126232A
Other languages
English (en)
Other versions
KR20110069482A (ko
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 KR1020090126232A priority Critical patent/KR101610029B1/ko
Publication of KR20110069482A publication Critical patent/KR20110069482A/ko
Application granted granted Critical
Publication of KR101610029B1 publication Critical patent/KR101610029B1/ko

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 비디오 영상의 시간적 중복성을 제거하기 위한 가변 크기 블록 매칭(variable-size block matching) 기반의 모션 추정에 있어서, 연산량을 감소시키는 방법 및 장치에 관한 것이다.
가변 크기 블록 매칭 기반의 모션 추정 방법은, 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 단계와, 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 단계와, 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여 상기 복수의 서브 모드 중에서 적어도 일부의 모드를 스킵하는 단계와, 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 단계로 이루어진다.
가변 크기 블록 매칭, 인터 프레임 코딩, 모션 추정, H.264, 스킵 모드

Description

가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치{Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same}
본 발명은 비디오 압축 방법에 관한 것으로, 보다 상세하게는 비디오 영상의 시간적 중복성을 제거하기 위한 가변 크기 블록 매칭(variable-size block matching) 기반의 모션 추정에 있어서, 연산량을 감소시키는 방법 및 장치에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 정보를 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로 하며 전송 시에 넓은 대역폭을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축코딩기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy) 요소를 제거 하는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주파수에 둔감한 것을 고려한 심리시각 중복을 제거함으로써 데이터를 압축할 수 있다.
이러한 동영상 압축 기법의 표준화를 위하여, MPEG(Moving Picture Experts Group)-2, MPEG-4, H.264 등 다양한 비디오 코딩 표준들이 등장하고 있다. 도 1에 도시된 바와 같이, 모든 비디오 코딩 기술들은 인접한 비디오 프레임들 간의 시간적 중복성을 제거하기 위하여 블록 모션 추정(block motion estimation)이라는 기법을 채택하고 있다. 예를 들어, 현재 프레임(10) 내의 어떤 블록(30)을 부호화하기 위해서는, 현재 프레임(10)과 다른 시간적 위치에 있는 참조 프레임(20)에서 상기 블록(30)과 매칭되는 블록(40)을 찾는다. 이 후, 현재 프레임(10)의 블록(30)과 참조 프레임(20)의 블록(40) 간의 차분(residual)를 구한 후, 이 차분을 부호화함으로써 부호화 효율을 높이는 것이다. 여기서, 블록들 간의 변위는 모션 벡터로서 표시되며, 모션 벡터에 의하여 참조 프레임(20)에 관한 모션 보상이 이루어진다.
최근의 비디오 코딩 표준인 H.264는 코딩 효율의 측면에서 이전의 표준들을 훨씬 능가하는 것으로 알려져 있다. H.264는 인터 프레임 코딩에 있어서, 4x4에서 16x16에 이르는 가변 블록 크기를 채용하는데, 이는 고정된 크기의 매크로블록(MB)을 코딩하는 종래의 기법에 비하여 코딩 효율에 있어서 상당한 향상을 나타낸다.
또한, 이외에도 다중 참조 기법, 1/4 픽셀 정밀도의 모션 벡터 추정, 다양한 방향들에 대한 인트라 프레임 코딩 기법, 및 적응적 디블록 필터링 기법 등 다양한 새로운 기술들이 H.264에 채용되고 있다.
그러나, 이러한 새로운 기법들이 코딩 효율의 향상에 상당히 기여한 것은 사실이지만, 이에 따라 H.264 인코더에는 훨씬 높은 연산 복잡성이 요구되는 문제도 아울러 존재한다. 특히, 상기 "가변 크기 블록 매칭(variable size block matching)" 기법은 H.264에서 새로운 도입되어 코딩 효율의 향상에 상당히 기여한 기술이지만 상대적으로 매우 많은 연산량의 증가가 초래된다. 이러한 "가변 크기 블록 매칭" 기술의 구체적인 내용을 살펴보면 다음과 같다.
인터 프레임 코딩에 있어서, 최적의 코딩 성능을 나타내는 블록의 크기를 찾기 위하여는, 하나의 매크로블록을 다양한 크기의 서브블록들로 나누고, 나누어진 서브블록들 각각에 대하여 실제 코딩을 수행하는 반복적인 과정이 필요하다.
인터 블록 모드의 결정에서 사용되는 블록의 크기들은 다섯 가지의 서로 다른 모드(MD)를 갖는다. 그것은 "움직임 없음"을 나타내는 모드(MD0), 16x16 크기의 블록 모드(MD1), 16x8 크기의 블록 모드(MD2), 8x16 크기의 블록 모드(MD3) 및 8x8 크기의 블록 모드(MD8)를 포함한다. 물론, 상기 8x8 크기의 블록 모드(MD8)는 다시 8x8(MD4), 8x4(MD5), 4x8(MD6) 및 4x4(MD7) 크기의 블록 모드로 세분화될 수 있다. 이러한 블록 모드는 다음의 도 2와 같은 계층적 구조를 갖는다.
H.264는 다양한 크기의 블록 모드들 중 최적의 블록 모드를 결정하기 위하여 율-왜곡(rate-distortion) 최적화라는 기법을 사용한다. 가능한 모든 모드들에 대하여 율-왜곡 최적화를 수행하기 위하여, H.264는 각각의 모드와 연관된 율-왜곡에 기초한 코딩 비용(이하, 율-왜곡 비용이라고 함)을 모두 계산한 후에 상기 코딩 비용이 최소가 되는 모드를 찾는다. 그러나, 이러한 방법은 시각적 화질 및 코딩 비트레이트의 관점에서 최적의 결과를 얻을 수 있지만, 필연적으로 매우 많은 연산량을 소요할 수 밖에 없다.
따라서, 이러한 가변 크기 블록 매칭 기술에 있어서, 몇몇 블록 모드에 대한 율-왜곡 비용을 계산하지 않고 스킵할 수 있다면 상기 연산량은 상당히 감소될 수 있을 것이다. 물론, 이러한 연산량 감소는 일정 수준 이하로 화질이 감소되지 않을 것을 전제로 하여야 할 것이다. 만약, 화질을 감소를 초래한다면 이와 같은 가변 크기 블록 매칭 기술의 적용 자체가 의미 없는 것이 될 수 있기 때문이다. 결국, 가변 크기 블록 매칭에 기초한 모션 추정에 있어서 화질의 감소를 최소화하면서 연산량을 감소시킬 수 있는 방법을 강구할 필요가 있다.
본 발명은 상기한 필요성을 감안하여 창안된 것으로, 연산량을 최소화하면서도 정확한 모션 추정이 가능한 모션 추정 기법을 제공하는 것을 목적으로 한다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 가변 크기 블록 매칭 기반의 모션 추정 방법은, (a) 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 단계; (b) 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 단계; (c) 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여 상기 복수의 서브 모드 중에서 적어도 일부의 모드를 스킵하는 단계; 및 (d) 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 비디오 인코딩 장치는, 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 파티션 분할부; 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 최적 선택부; 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여 상기 복수의 서브 모드 중에서 적어도 일부의 모드를 스킵하는 스킵 결정부; 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 모션 추정부; 상기 입력 프레임으로부터, 상기 모션 추정에 의하여 구해진 모션 벡터에 의해 참조 프레임을 보상한 모션 보상 프레임을 차분하여 잔차 프레임을 얻는 차분기; 및 상기 잔차 프레임을 부호화하는 수단을 포함한다.
본 발명에 따르면 통상의 모션 추정 기법이나, 종래의 가변 크기 블록 매칭 기반의 모션 추정 기법에 비하여, 연산량을 상당히 감소시킬 수 있는 장점이 있다. 그럼에도 불구하고, 모션 추정의 에러를 크게 발생시키지 않기 때문에 가변 크기 블록 매칭 기반의 모션 추정에 따른 화질의 저하를 방지할 수 있는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알 려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다시 도 2를 참조하면, H.264의 모션 추정에 있어서, 16x16 픽셀 크기를 갖는 하나의 매크로블록은 우선, 율-왜곡 비용을 기초로, MD0, MD1, MD2, MD3, MD8 중의 하나의 모드를 갖도록 선택된다(제1 계층의 선택). 상기 MD0는 모션 벡터가 0인, 즉 모션이 없는 경우를 의미한다. 만약, MD8 이외의 모드가 선택되는 경우에는 추가적인 블록 모드의 선택(다음 계층으로의 진행)은 이루어지지 않는다. 그러나, 이 중에서 MD8이 선택되는 경우에는, 하나의 매크로블록은 4개의 8x8 블록으로 나뉘어지고 각각의 8x8 블록에 대해서는 다시, MD4, MD5, MD6 및 MD7 중에서 하나의 모드가 선택된다(제2 계층의 선택). 이와 같이, H.264는 2계층 구조의 가변 크기 블록 매칭을 사용하고 있다.
그런데, 다양한 샘플 영상에 대하여 제1 계층에서의 각각의 모드가 선택되는 비율(%)을 살펴보면, 다음의 표 1에서 정리한 바와 같다. 표 1에서 CIF 영상 100 프레임에 대하여 QP(quantization parameter)는 28로 선택되었다.
Figure 112009078185620-pat00001
표 1에서 보면, MD0의 빈도가 가장 낮고 MD1과 MD8의 빈도가 가장 높다는 것을 알 수 있다. H.264 이전의 비디오 코딩에서 더 작은 단위를 선택하지 않고, 16x16 또는 8x8 블록 단위의 모션 벡터 검색을 수행하였던 것은 블록 단위를 작게 할 수록 에러는 감소하겠지만, 연산량이 증가하고 그 만큼 모션 벡터의 수가 증가하게 되므로 적절한 트레이드 오프가 필요하였기 때문이다. 사실, MD8 이하로 분할되는 모드가 전체적으로 보면, 그렇게 많지 않을 것이지만, 어쨌든 H.264와 같이 연산량 관점보다는 코딩 효율의 관점에 치중하는 비디오 표준에서는 이러한 분할이 목표에 부합한다고도 볼 수 있는 것이다.
실제로, MD8 이하의 계층(제2 계층)에 속하는 모드들의 비율을 살펴보면 다음의 표 2 및 3에서와 같다(여기서도, CIF 영상 100 프레임에 대하여 QP는 28로 선택됨). 이 중에서도 표 2는 MD8이 결국 최적으로 선택된 경우를, 표 3은 MD8이 결국 최적으로 선택되지 않은 경우를 각각 나타낸다.
Figure 112009078185620-pat00002
Figure 112009078185620-pat00003
표 2 및 3을 검토하면, 어느 경우에도 MD4가 가장 압도적인 비율을 차지하고, MD5 및 MD6은 그 분포가 비슷하며, MD7이 가장 적게 발생된다는 것을 알 수 있다. 따라서, 스킵에 의한 영향이 가장 작은 모드가 MD7일 것이고, 그 다음이 MD5 및 MD6일 것이다. 따라서, 스킵 대상으로는 우선적으로 MD7이 고려되어야 하고, 그 다음 MD5 및 MD6도 고려될 수 있다. 만약, 모션 추정의 정확성을 기하기 위하여 스킵 대상을 두 가지 모드로만 한정한다면, MD7 및 MD6이 포함되도록 하는 것이 바람직하다. 표 2 및 3에서는 MD5가 MD6에 비하여 약간 높은 정도에 그쳤으나 일반적인 많은 영상들에 있어서는 화소의 가로 방향 관련성이 세로 방향 관련성 보다 높기 때문에 MD5 보다는 MD6을 스킵 대상으로 포함시키는 것이 바람직하기 때문이다. 특히, 가로 방향으로 카메라가 움직이는 경우, 가로 방향으로 물체가 움직이는 경우 등의 영상에서는 그 차이가 확연하다. 이하, 본 발명의 일 실시예에 있어서는, 특정한 조건이 만족되면 MD6 및 MD7을 스킵하는 것으로 하여 설명할 것이다.
도 3은 본 발명의 일 실시예에 따른 모션 추정 방법을 구현하는 비디오 인코딩 장치(100)의 구성을 도시한 블록도이다.
비디오 인코딩 장치(100)는 파티션 분할부(110), 최적 선택부(130), 스킵 결정부(140), 모션 추정부(150), 모션 보상부(160), 차분기(165), 공간적 변환부(170), 양자화부(180) 및 엔트로피 부호화부(190)를 포함하여 구성될 수 있다.
파티션 분할부(110)는 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할한다. 상기 메인 모드라 함은 계층적 방식의 가변 크기 블록 매칭에 있어서, 첫 번째 계층에 속하는 파티션 모드를 의미한다. 예를 들면, 도 2에서, 메인 모드란 MD1, MD2, MD3 및 MD8을 의미하는 것이다(모션 벡터가 없는 MD0는 제외). 한편, 상기 메인 모드 중 일부의 모드(현재 H.264의 경우 MD8이 해당됨)의 경우에는 추가적인 서브 모드에 따른 분할을 하는데, 이와 같은 두 번째 계층에 속하는 파티션 모드를 서브 모드라고 정의할 수 있다. 도 2에서, 서브 모드는 MD4, MD5, MD6 및 MD7이다. 여기서 구분되어야 할 것은, MD8과 MD4이다. MD8은 일단 메인 모드에서 8x8 네 개의 파티션으로 분할하는 것이 최적이라는 것을 의미하고, 각각의 파티션에 대하여 다시 서브 모드로 분할을 하게 된다. 그 결과, MD4라는 것은 서브 모드에 따른 최종 결과가 8x8이라는, 즉, 서브 분할을 하지 않는 모드를 의미할 뿐이다.
최적 선택부(130)는 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하고 그 결과를 스킵 결정부(140)에 제공한다. 최적 선택부(130)는 상기 모드의 선택에 있어서, 예를 들면, 영상의 에러 및 비트량의 선형 조합으로 계산되는 율-왜곡 비용을 기초로 할 수 있다. 이러한 율-왜곡 비용(C)는 다음의 수학식 1과 같이 정의될 수 있다.
Figure 112009078185620-pat00004
여기서, E는 영상의 에러를, B는 비트량을 각각 나타낸다. 구체적으로, 상기 E는 특정 모드의 블록을 기초로 인터 프레임을 수행한 경우의 SAD(sum of absolute difference)(원래 영상과 코딩 후 복원된 영상 간의 에러의 합)이고, B는 상기 특정 모드의 블록을 코딩하기 위하여 필요한 비트량이다. 상기 λ는 라그랑지안 계수로서 에러의 크기의 감소에 중시할지, 또는 비트량의 크기의 감소를 중시할지를 조절하는 파라미터이다.
수학식 1과 같은 계산을 위해서, 최적 선택부(130)는 양자화부(180)로부터 출력되는 신호, 즉 인코딩 된 데이터의 비트량(B)을 계산하고, 상기 인코딩된 데이 터를 복원하여 원래 영상과의 차이를 계산하여 에러(E)를 계산할 수 있다.
결국, 최적 선택부(130)는 상기 복수의 메인 모드들 중에서 이러한 율-왜곡 비용이 최소가 되는 하나의 모드를 선택하는 것이다.
스킵 결정부(140)는, 상기 최적 선택부(130)에 의하여 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여 상기 복수의 서브 모드 중에서 적어도 일부의 모드를 스킵한다(이하, 본 발명에서는 "서브 모드 스킵"이라고 함). 예를 들어, H.264의 경우 MD8은 복수의 서브 모드들을 가지지만, MD1, MD2 및 MD3는 자체로 완결되며 추가적인 서브 모드들을 가지지 않는다.
이와 같이, 스킵 결정부(140)가 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하는 방식은, 기본적으로 주변 파티션이 상기 메인 모드들에 따른 분할 이후에 추가적으로 분할되지 않은 경우에 한하여 상기 스킵을 수행하도록 할 수 있다. 도 2의 예에서 보면, 8x8 파티션을 기준으로 할 때, 주변 파티션이 MD1, MD2, MD3 및 MD4만 중에 어느 하나의 모드를 가지는 경우, 즉, 제2 계층에서의 추가적인 분할이 이루어지지 않는 경우를 의미한다. 도 2에서 보면, MD4는 제2 계층에 속하는 것을 표시되어 있기는 하지만, 실제로는 추가적인 분할이 이루어지지 않은 경우이다. 만약, 8x8 크기의 현재 파티션에서의 서브 모드의 스킵 여부를 결정하기 위해서는 참조되는 주변 파티션도 당연히 8x8 크기이어야 한다. 그러나, 실제로는 주변 파티션은 그 모드에 따라 8x8 크기보다 더 클 수도 있지만, 더 큰 파티션이 8x8의 크기로 분할된 것으로 생각하면 간단하다. 예를 들어, MD1의 경우에는 매크로블록 내의 4개의 8x8 블록이 모두 MD1을 갖는 것으로 생각하면 될 것이다.
따라서, 이러한 주변 파티션이 가질 수 있는 모드는 MD1, MD2, MD3, MD4, MD5, MD6, MD7 중 하나일 것이다(MD0은 제외함). MD8은 8x8 크기의 파티션이 최종적으로 갖는 모드가 아니고 추가적으로 서브 모드가 결정되어야 하기 때문에 제외된다고 볼 수 있다. 주변 파티션으로부터 현재 파티션의 서브 모드 스킵 여부를 판단하는 구체적인 일 실시예는 도 4 및 도 5의 설명을 통하여 후술하기로 한다.
모션 추정부(150)는 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드(스킵되지 않은 서브 모드)로, 상기 현재 파티션에 대한 모션 추정을 수행한다. 이러한 모션 추정 과정은 블록 매칭(block matching) 알고리즘, 즉, 주어진 모션 블록을 참조 프레임의 특정 탐색 영역 내에서 픽셀단위로 움직이면서 그 에러가 최저가 되는 경우의 변위를 모션 벡터로 결정할 수 있다. 그런데, 상기 에러를 측정하는 기준으로는 일반적으로는 SAD(절대 차이의 합)이 사용된다. 결국, 메인 모드 및 스킵되지 않은 서브 모드를 포함한 모드들 중에서 최적의 모드가 최종적으로 선택되며, 그 선택된 최종 모드와 그 때의 모션 벡터가 모션 추정부(150)의 최종적인 출력이다.
모션 보상부(160)는 모션 추정부(150)로부터 제공되는 선택된 최종 모드와 모션 벡터를 이용하여 참조 프레임에 대하여 모션 보상을 수행함으로써 모션 보상 프레임(motion compensated frame)을 얻는다.
한편, 차분기(165)는 상기 입력 프레임에서, 상기 모션 벡터에 의해 참조 프레임을 보상한 모션 보상 프레임을 차분하여 잔차 프레임(residual frame)을 얻는다. 본 발명의 일 실시예에 있어서, 상기 잔차 프레임을 부호화하는 수단으로는 공간적 변환부(170), 양자화부(180) 및 엔트로피 부호화부(190)가 사용된다.
공간적 변환부(170)는 소정의 공간적 변환법을 이용하여, 상기 잔차 프레임을 주파수 도메인으로 변환한다. 이러한 공간적 변환법으로는 주로 DCT(Discrete Cosine Transform)가 사용되며, 때로는 웨이브렛 변환(wavelet transform)이 사용되기도 한다. 공간적 변환 결과 구해지는 계수들을 변환 계수라고 하는데, 공간적 변환으로 DCT를 사용하는 경우 DCT 계수라고 하고, 웨이브렛 변환을 사용하는 경우 웨이브렛 계수라고 한다.
양자화부(180)는 공간적 변환부(170)에서 구한 변환 계수를 양자화한다. 양자화(quantization)란 임의의 실수 값으로 표현되는 상기 변환 계수를 일정 구간으로 나누어 불연속적인 값(discrete value)으로 나타내고, 이를 소정의 인덱스로 매칭(matching)시키는 과정을 의미한다. 특히, 공간적 변환 방법으로 웨이브렛 변환을 이용하는 경우에는 양자화 방법으로서 임베디드 양자화(embedded quantization)가 이용되기도 한다.
엔트로피 부호화부(190)는 양자화부(180)에 의하여 양자화된 변환 계수와, 모션 추정부(150)에 의하여 제공되는 최종 모드 및 모션 벡터를 무손실 부호화하여 출력 비트스트림을 생성한다. 이러한 무손실 부호화 방법으로는, 산술 부호화(arithmetic coding), 가변 길이 부호화(variable length coding), 허프만 부호 화 등이 있다.
지금까지 도 3의 각 구성요소는 소프트웨어(software) 또는, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현할 수도 있다.
다음의 도 4 및 도 5는 본 발명의 일 실시예에 따른 "서브 모드 스킵"을 구현하는 구체적인 알고리즘을 설명하기 위한 도면들이다.
현재의 MB가 만약 MD8이 아니라 MD1, MD2나 MD3로 결정된다면 서브 모드 자체를 고려할 필요가 없으므로 본원 발명에서 제안하는 서브 모드 스킵은 고려할 필요가 없다. 그러나, 현재의 MB가 MD8이라면 현재의 MB는 일단 4개의 8x8의 블록으로 분할되고 각각의 8x8 블록에 대하여 서브 모드 스킵 여부가 결정되어야 한다.
도 4를 참조하면, 현재 매크로블록(MB)의 서브 모드 스킵 여부를 결정하기 위하여 참조되는 주변 파티션들은 A, B, C 및 D의 4가지 종류가 존재할 수 있다. 케이스 A는 현재 매크로블록이 프레임 또는 슬라이스의 좌측 경계에 접한 경우이고, 케이스 B는 현재 매크로블록이 프레임 또는 슬라이스의 상측 경계에 접한 경우이며, 케이스 C는 현재 매크로블록이 프레임 또는 슬라이스의 우측 경계에 접한 경 우이다. 일반적으로 현재 매크로블록이 경계에 접해있지 않은 경우에는 종류 D와 같이 4개의 주변 매크로블록을 모두 참조할 수 있다. 주의할 것은, 도 4의 주변 매크로블록이 모두 4개의 파티션으로 분할 된 것으로 표시되었다고 해서도 이것들이 모두 MD8로 분할되었다는 것은 아니며, 참조하기 위한 파티션을 식별하기 위한 번호를 부가하기 위하여 가상적으로 분할 표시를 한 것 뿐이다. 전술한 바와 같이, 좌상측의 매크로블록이 MD1라고 하면, 그 내부에 포함된 것으로 생각할 수 있는 4개의 파티션은 모두 MD1이라고 생각하면 될 것이다.
아무튼, 이러한 주변 매크로블록과 현재 매크로블록의 파티션은 각각 4개의 8x8 파티션으로 나뉜 것으로 생각하면 순서대로 0 내지 3으로 넘버링할 수 있다.
도 5는 현재 매크로블록에 속하는 4개의 파티션들이 주변의 파티션들을 참조하는 방향을 예시하는 도면이다. 이와 같은 참조의 기본 개념은 (a) 및 (b)에서 보여진다. (a)는 주변 파티션으로부터 참조하는 방향을, (b)는 현재 매크로블록 내의 다른 파티션으로부터 참조하는 방향을 각각 보여준다.
(a), (b)에서 수직 방향으로 참조하는 경우를 예로 든 것이 (c)이다. (a), (b)에서 수평 방향으로 참조하는 경우를 예로 든 것이 (d)이다. (a), (b)에서 우하향 대각선 방향으로 참조하는 경우를 예로 든 것이 (e)이다. 또한, (a), (b)에서 좌하향 대각선 방향으로 참조하는 경우를 예로 든 것이 (f)이다.
예를 들어, 도 4의 넘버링을 기준으로 할 때, 현재 매크로블록의 3번 파티션이 참조할 수 있는 주변 파티션은 다음과 같다. 우선 (c)에 따르면, 상측 매크로블록의 3번 파티션과 현재 매크로블록의 1번 파티션을 참조할 수 있고, (d)에 따르 면, 좌측 매크로블록의 3번 파티션과 현재 매크로블록의 2번 파티션을 참조할 수 있다. 또한, (e)에 따르면, 좌상측 매크로블록의 3번 파티션과 현재 매크로블록의 0번 파티션을 참조할 수 있고, (f)에 따르면, 우상측 매크로블록의 3번 파티션을 참조할 수 있다. 따라서, 현재 매크로블록에 대한 서브 모드 스킵을 적용하기 위한 참조 가능한 파티션은 총 7개이다. 그러나, 실제로는 이러한 참조 가능한 파티션을 모두 참조하여야 하는 것은 아니고 필요에 따라 전부 또는 일부를 참조할 수 있음은 물론이다. 현재 매크로블록의 나머지 0, 1, 2번 파티션도 마찬가지로 서브 모드 스킵을 적용하기 위하여 주변 파티션을 참조할 수 있다.
다음의 도 6 및 7은 상기 서브 모드 스킵을 적용하기 위한 의사 코드(pseudo code)이다. 여기서, 사용되는 용어의 의미는 각각 다음의 표 4와 같다.
용어 의미
CMB 현재 매크로블록
LMB 현재 매크로블록을 기준으로 좌측 매크로블록
C8B 현재 매크로블록의 8x8 파티션의 번호
LRM 좌측 참조 모드
UMB 현재 매크로블록을 기준으로 상측 매크로블록
URM 상측 참조 모드
LUMB 현재 매크로블록을 기준으로 좌상측 매크로블록
LURM 좌상측 참조 모드
RUMB 현재 매크로블록을 기준으로 우상측 매크로블록
RURM 우상측 참조 모드
C8B0 현재 매크로블록 중 0의 위치에 있는 8x8 파티션의 최적 모드
C8B1 현재 매크로블록 중 1의 위치에 있는 8x8 파티션의 최적 모드
C8B2 현재 매크로블록 중 2의 위치에 있는 8x8 파티션의 최적 모드
먼저, 도 6은 이상의 도 4 및 5에 따른 참조 방식을 코드로서 구현한 의사 코드의 예이다. 도 6을 참조하면 도 4의 경계 조건을 고려하여, 도 5와 같은 방식으로 참조를 하기 위하여 주변 파티션들이 가지는 모드(최적으로 이미 결정되어 있는 모드)들을 저장하고 있음을 알 수 있다.
다음의 도 7은 도 6과 같이 저장되어 있는 주변 파티션들이 가지는 모드를 이용하여, 실제로 대상이 되는 8x8 파티션(현재 파티션)에서 MD6 및 MD7의 스킵 여부를 결정하는 의사 코드의 예를 보여준다. 정리하면, 현재 파티션에 의하여 참조되는 모든 파티션들이 MD1 또는 MD4를 가지는 경우에 한하여 현재의 파티션에 서브 모드 스킵(본 예에서는 서브 모드 중에서 MD6 및 MD7만 스킵)을 적용한다는 것을 알 수 있다. 물론, 이는 어디까지나 일 실시예이기 때문에, 스킵되는 서브 모드의 종류도 더 추가하거나 줄일 수도 있으며, 판단 기준을 MD1 또는 MD4만 아니니라, MD1, MD2, MD3 및 MD4 중에 어느 하나를 가지는 경우에 한하는 것으로 수정할 수도 있다.
도 7의 마지막 두 행에서, 표시된 부분은 서브 모드 스킵이 적용되지 않는 것으로 결정되었다고 하더라도 특정한 조건이 만족되면, 적어도 MD7은 스킵하겠다는 의미이다. 그 판단 조건은 MD5의 율-왜곡 비용(RDC)이 MD4의 율-왜곡 비용(RDC)보다 크면 만족된다. 이와 같은 조건이 만족된다는 것은, MD4가 MD5보다 최적에 가깝다는 것을 의미한다. 따라서, 이 경우에는 8x8 파티션이 분할되는 쪽 보다는 분할되지 않는 쪽에서 최적이 결정될 가능성이 높다는 의미이므로, MD7에서 최적이 결정된 가능성은 매우 희박하다. 따라서, 이러한 MD7의 스킵이 가능한 것이다.
다음의 표 5는 다양한 시퀀스들에 대하여, 본 발명에 따른 서브 모드 스킵을 적용한 결과, 화질(PSNR), 비트율(BR) 및 코딩 시간(T)의 변화를 보여주는 도면이다. 이러한 시퀀스들로는 CIF 영상 100 프레임을 이용하였으며, 양자화 파라미터는 28로 선택하였다. 또한, 참조되는 프레임의 수는 5개로 하고, 고속 완전 검색(fast full search)를 적용하였다.
Figure 112009078185620-pat00005
표 5를 참조하면, 본 발명을 적용한 경우 평균적으로 PSNR은 0.001% 감소, 비트율은 0.22% 증가로 매우 미미한 데에 비하여, 코딩 시간은 4.5% 정도나 감소시킬 수 있었다. 이는 단순히 모션 추정 과정만이 아니라 전체 비디오 코딩에서 절감된 시간을 의미하므로, 모션 추정 과정만을 비교한다면 코딩 시간의 절감 비율을 훨씬 더 크다고 볼 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.
도 1은 블록 모션 추정 기법을 사용하는 인터 프레임 코딩의 기본 개념을 보여주는 도면이다.
도 2는 H.264에서 정의하는 계층적 분할 방식에 따른 복수의 블록 모드들을 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 모션 추정 방법을 구현하는 비디오 인코딩 장치의 구성을 도시한 블록도이다.
도 4는 현재 매크로블록의 위치에 따라 참조하는 주변 매크로블록의 수가 달라질 수 있음을 보여주는 도면이다.
도 5는 현재 매크로블록에 속하는 4개의 파티션들이 주변의 파티션들을 참조하는 방향을 예시하는 도면이다.
도 6은 이상의 도 4 및 5에 따른 참조 방식을 코드로서 구현한 의사 코드의 예를 보여주는 도면이다.
도 7은 도 6에서와 같이 저장되어 있는 주변 파티션들이 가지는 모드를 이용하여, 실제로 대상이 되는 현재 파티션에서 서브 모드 스킵 여부를 결정하는 의사 코드의 예를 보여주면 도면이다.
(도면의 주요부분에 대한 부호 설명)
100: 비디오 인코딩 장치 110: 파티션 분할부
130: 최적 선택부 140: 스킵 결정부
150: 모션 추정부 160: 모션 보상부
165: 차분기 170: 공간적 변환부
180: 양자화부 190: 엔트로피 부호화부

Claims (19)

  1. (a) 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 단계;
    (b) 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 단계;
    (c) 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여, 상기 복수의 서브 모드 중에서 스킵 가능한 모드가 발견되지 않는다면 상기 선택된 모드도 스킵을 하고, 상기 복수의 서브 모드 중에서 스킵 가능한 모드가 발견된다면 상기 선택된 모드는 스킵하지 않고 연산을 하는 단계; 및
    (d) 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 단계를 포함하되,
    상기 스킵 가능한 모드인지 여부는,
    미리 상기 복수의 서브 모드의 발현되는 빈도수를 참조하여 설정되는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  2. 제1항에 있어서, 상기 (b) 단계는
    영상의 에러 및 비트량의 선형 조합으로 계산되는 율-왜곡 비용을 기초로 상기 최적인 하나의 모드를 선택하는 단계를 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  3. 제1항에 있어서, 상기 복수의 메인 모드들은
    16x16 파티션 모드(MD1), 16x8 파티션 모드(MD2), 8x16 파티션 모드(MD3) 및 8x8 파티션 모드(MD8)를 포함하고,
    상기 선택된 모드가 복수의 서브 모드들을 갖는 경우는 상기 선택된 모드가 MD8인 경우를 의미하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  4. 제1항에 있어서, 상기 복수의 서브 모드들은
    8x8 파티션 모드(MD4), 8x4 파티션 모드(MD5), 4x8 파티션 모드(MD6), 4x4 파티션 모드(MD7)를 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  5. 제4항에 있어서, 상기 스킵가능한 모드는 적어도
    상기 MD7을 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  6. 제5항에 있어서, 상기 스킵가능한 모드는
    상기 MD6을 더 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  7. 제1항에 있어서, 상기 주변 파티션은
    상기 현재 파티션에 대하여 위치적으로 좌측 파티션, 상측 파티션, 좌상측 파티션 및 우상측 파티션 중에서 적어도 하나 이상을 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  8. 제1항에 있어서, 상기 (c) 단계는
    상기 주변 파티션이 상기 메인 모드들에 따른 분할된 이후에 추가적으로 분 할되지 않은 경우에 한하여 수행되는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  9. 제8항에 있어서, 상기 (c) 단계는
    상기 주변 파티션이 16x16 파티션 모드(MD1) 및 8x8 파티션 모드(MD4)를 갖는 경우에 한하여 수행되는, 가변 크기 블록 매칭 기반의 모션 추정 방법.
  10. 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 파티션 분할부;
    상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 최적 선택부;
    상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여, 상기 복수의 서브 모드 중에서 스킵 가능한 모드가 발견되지 않는다면 상기 선택된 모드도 스킵을 하고, 상기 복수의 서브 모드 중에서 스킵 가능한 모드가 발견된다면 상기 선택된 모드는 스킵하지 않고 연산을 하는 스킵 결정부;
    상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 모션 추정부;
    상기 입력 프레임으로부터, 상기 모션 추정에 의하여 구해진 모션 벡터에 의해 참조 프레임을 보상한 모션 보상 프레임을 차분하여 잔차 프레임을 얻는 차분기; 및
    상기 잔차 프레임을 부호화하는 수단을 포함하되,
    상기 스킵 가능한 모드인지 여부는,
    미리 상기 복수의 서브 모드의 발현되는 빈도수를 참조하여 설정되는, 비디오 인코딩 장치.
  11. 제10항에 있어서, 상기 잔차 프레임을 부호화하는 수단은,
    상기 잔차 프레임을 주파수 도메인으로 변환하여 변환 계수를 생성하는 공간적 변환부;
    상기 변환 계수를 양자화하는 양자화부; 및
    상기 양자화의 결과와 상기 모션 벡터를 무손실 부호화하는 엔트로피 부호화부를 포함하는 비디오 인코딩 장치.
  12. 제10항에 있어서, 상기 최적 선택부는
    영상의 에러 및 비트량의 선형 조합으로 계산되는 율-왜곡 비용을 기초로 상기 최적인 하나의 모드를 선택하는, 비디오 인코딩 장치.
  13. 제10항에 있어서, 상기 복수의 메인 모드들은
    16x16 파티션 모드(MD1), 16x8 파티션 모드(MD2), 8x16 파티션 모드(MD3) 및 8x8 파티션 모드(MD8)를 포함하고,
    상기 선택된 모드가 복수의 서브 모드들을 갖는 경우는 상기 선택된 모드가 MD8인 경우를 의미하는, 비디오 인코딩 장치.
  14. 제10항에 있어서, 상기 복수의 서브 모드들은
    8x8 파티션 모드(MD4), 8x4 파티션 모드(MD5), 4x8 파티션 모드(MD6), 4x4 파티션 모드(MD7)를 포함하는, 비디오 인코딩 장치.
  15. 제14항에 있어서, 상기 스킵가능한 모드는 적어도
    상기 MD7을 포함하는, 비디오 인코딩 장치.
  16. 제15항에 있어서, 상기 스킵가능한 모드는
    상기 MD6을 더 포함하는, 비디오 인코딩 장치.
  17. 제10항에 있어서, 상기 주변 파티션은
    상기 현재 파티션에 대하여 위치적으로 좌측 파티션, 상측 파티션, 좌상측 파티션 및 우상측 파티션 중에서 적어도 하나 이상을 포함하는, 비디오 인코딩 장치.
  18. 제10항에 있어서, 상기 스킵 결정부는
    상기 주변 파티션이 상기 메인 모드들에 따른 분할 이후에 추가적으로 분할되지 않은 경우에 한하여 상기 스킵을 수행하는, 비디오 인코딩 장치.
  19. 제18항에 있어서, 상기 스킵 결정부는
    상기 주변 파티션이 16x16 파티션 모드(MD1) 및 8x8 파티션 모드(MD8)를 갖는 경우에 한하여 상기 스킵을 수행하는, 비디오 인코딩 장치.
KR1020090126232A 2009-12-17 2009-12-17 가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치 KR101610029B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090126232A KR101610029B1 (ko) 2009-12-17 2009-12-17 가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090126232A KR101610029B1 (ko) 2009-12-17 2009-12-17 가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치

Publications (2)

Publication Number Publication Date
KR20110069482A KR20110069482A (ko) 2011-06-23
KR101610029B1 true KR101610029B1 (ko) 2016-04-08

Family

ID=44401300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090126232A KR101610029B1 (ko) 2009-12-17 2009-12-17 가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치

Country Status (1)

Country Link
KR (1) KR101610029B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105898297B (zh) * 2016-04-29 2019-03-15 上海高智科技发展有限公司 一种基于hevc的快速模式选择方法及系统

Also Published As

Publication number Publication date
KR20110069482A (ko) 2011-06-23

Similar Documents

Publication Publication Date Title
KR102026856B1 (ko) 다중 참조를 허용하는 비디오 코덱에서 모션 벡터를 예측하는 방법, 및 그 방법을 이용한 모션 벡터 부호화/복호화 장치
CN107396116B (zh) 视频编码和解码设备及非暂时性计算机可读存储介质
WO2011101451A1 (en) Data compression for video
EP2520095A2 (en) Data compression for video
KR100944333B1 (ko) 스케일러블 비디오 부호화에서 계층간 예측모드 고속결정방법
WO2011101449A1 (en) Data compression for video
KR101610029B1 (ko) 가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치
KR101505815B1 (ko) 서브 픽셀 정밀도를 갖는 모션 추정 방법 및 장치, 이를 이용한 비디오 인코더
KR101610028B1 (ko) 고속 모션 추정 방법 및 장치, 이를 이용한 비디오 인코딩 장치
KR101619739B1 (ko) 고속 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치
KR101543200B1 (ko) 다중 참조를 허용하는 비디오 코덱에서 모션 벡터를 예측하는 방법, 및 그 방법을 이용한 모션 벡터 부호화/복호화 장치
KR20110046701A (ko) 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190402

Year of fee payment: 4