KR100987581B1 - 고속 움직임 추정을 위한 부분 블록정합 방법 - Google Patents

고속 움직임 추정을 위한 부분 블록정합 방법 Download PDF

Info

Publication number
KR100987581B1
KR100987581B1 KR1020090016302A KR20090016302A KR100987581B1 KR 100987581 B1 KR100987581 B1 KR 100987581B1 KR 1020090016302 A KR1020090016302 A KR 1020090016302A KR 20090016302 A KR20090016302 A KR 20090016302A KR 100987581 B1 KR100987581 B1 KR 100987581B1
Authority
KR
South Korea
Prior art keywords
pixels
block matching
pixel
block
macroblock
Prior art date
Application number
KR1020090016302A
Other languages
English (en)
Other versions
KR20100097387A (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 KR1020090016302A priority Critical patent/KR100987581B1/ko
Publication of KR20100097387A publication Critical patent/KR20100097387A/ko
Application granted granted Critical
Publication of KR100987581B1 publication Critical patent/KR100987581B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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

Abstract

본 발명에서는 효율적인 고속 전역 탐색 알고리즘을 이용한 동영상 움직임 추정 방법을 개시한다. 블록정합 알고리즘을 기반으로 하였으며 현재 부호화하고자 하는 블록의 히스토그램 특성을 고려하여 대표 화소를 추정하고 블록정합을 할 화소의 개수를 적응적으로 결정한다. 이렇게 함으로써 블록정합 비용을 구하는 연산량을 줄일 수 있으므로 고속 움직임 추정이 가능하다. 더 나아가 복잡도를 줄일 뿐만 아니라 복원된 영상의 화질을 동일하게 유지할 수 있다.
부분 블록정합, 히스토그램 특성, 매크로 블록, 움직임 추정

Description

고속 움직임 추정을 위한 부분 블록정합 방법{Method of Partial Block Matching for Fast Motion Estimation}
본 발명은 동영상의 움직임 추정에 관한 것으로, 보다 상세하게는 고속 움직임 추정을 위한 부분 블록정합 방법에 관한 것이다.
정보통신기술의 비약적인 발전으로 인하여, 화상 회의 시스템, 와이브로(Wibro), 차세대 이동통신, 고품질의 무선랜 등이 연구 개발되면서, 고속의 멀티미디어 데이터 통신에 대한 관심과 요구가 증대되고 있다. 이러한 멀티미디어 데이터 통신 중에서 현재 가장 관심을 많이 받고 있는 분야가 무선망을 통한 다양한 정보의 송수신이다. 현재 무선 데이터 송수신의 전송속도가 비약적으로 향상됨에 따라 데이터 크기가 큰 동영상 데이터까지도 무선 통신 네트워크를 통해 실시간으로 송수신할 수 있게 되었다.
그런데, 동영상 데이터는 정보 전달 능력이 뛰어난 것에 반하여 용량이 상당히 크기 때문에 일반적으로 저장과 전송에 어려움이 존재한다. 또한, 어플리케이션의 요구에 따라서 방대한 동영상 정보가 적절히 처리되어야 하므로, 동영상을 처리하기 위한 시스템 또한 높은 사양이 요구된다. 이러한 문제점들을 해결할 수 있는 방법으로, 동영상 데이터를 작은 정보로 변환시키는 기술인 동영상 압축 알고리즘이 활발히 연구되어 오고 있다. 현재까지 연구된 동영상 압축과 관련된 대표적인 국제 표준에는 ISO/IEC의 엠펙(MPEG) 시리즈와 ITU-T의 H.26x 시리즈가 있다.
동영상 데이터의 압축 방식은 크게 무손실 압축(Lossless Compression)과 손실 압축(Lossy Compression)으로 나눌 수 있다. 무손실 압축은 압축 과정에서 원본 데이터의 손실이 없어서, 복호기에서 원래 영상 신호(부호기로 입력되는 영상 신호)와 완전히 동일한 영상을 재생할 수 있는 방식이다. 반면, 손실 압축은 압축 과정에서 데이터의 손실이 발생하기 때문에, 복호기에서 복원된 영상은 원래의 영상과 동일하지 않으며, 화질이 다소 열화된 영상을 재생할 수 있는 방식이다. 그러나 손실 압축은 무손실 압축에 비하여 더 높은 압축율을 가지며 또한 화질의 열화도 크지 않으므로, 영상 또는 동영상 데이터 처리에는 손실 압축 방식이 일반적으로 사용된다.
동영상 데이터는 그 특성상 3가지 중복성이 존재한다. 이와 같은 중복성에는 시간적 (temporal), 공간적(spatial), 통계적(statistical) 중복성이 있다. 시간적 중복성은 연속되는 프레임 사이에 존재하는 중복성을 의미하는데, 연속되는 프레임에서 같은 위치에 존재하는 화소의 밝기 값은 통계적으로 유사한 상관성을 가진다는 것으로, "프레임간(inter-frame) 중복성"이라고도 한다. 그리고 공간적 중복성은 프레임 내에 존재하는 중복성을 의미하는데, 하나의 화소의 밝기 값은 이웃하는 화소들의 밝기 값과 유사한 상관성을 가진다는 것으로, 이것을 "프레임내(intra-frame) 중복성"이라고도 한다. 마지막으로, 통계적 중복성은 부호화된 데이터들 간 의 중복성을 의미하는데, 화소 간의 중복성과 부호화에서의 중복성을 말한다.
현재 알려져 있는 동영상 부호화 표준에서는, 이와 같은 상기 3가지 중복성을 제거함으로써 방대한 양의 동영상을 보다 작은 데이터로 압축할 수 있다. 예를 들어, 이산 코사인 변환(Discrete Cosine Transform, DCT) 등과 같은 변환 과정과 양자화 과정은 공간적 중복성을, 가변장 부호화 등과 같은 엔트로피 코딩은 통계적 중복성을, 움직임 추정 및 보상은 시간적 중복성을 제거하기 위한 목적으로 동영상 코덱의 국제 표준에 채택되어 사용된다.
이 중에서 시간적 중복성을 제거하기 위한 움직임 추정 및 보상(motion estimation/compensation) 방식은 크게 화소(pixel) 단위로 추정하는 방식과 블록 (block) 단위로 추정하는 방식으로 나누어진다. 일반적으로, 동영상 압축시 움직입 추정에 여러 효율적인 면을 고려하여 화소 단위로 추정하는 방식보다는 블록 단위로 움직임을 추정하는 방식이 많이 사용된다. 블록 단위로 움직임을 추정하는 방식을 블록정합 알고리즘(Block Matching Algorithm, BMA)이라고 하며, 움직임 추정의 결과 해당 블록에 대한 움직임 벡터(MV)가 얻어 진다.
블록정합 알고리즘(BMA)은 크게 전역탐색 블록정합(full search block matching) 알고리즘과 고속탐색 블록정합(fast search block matching) 알고리즘의 두 가지가 구분할 수 있다. 전역탐색 블록정합 알고리즘은 탐색 영역(search range) 내의 모든 후보 블록에 대해서 정합 여부에 대한 계산을 수행하는 방식이다. 이에 의하면, 가장 정합이 잘 되는 후보 블록을 정합 블록으로 선택하기 때문에 최적의 움직임 벡터를 찾을 수 있는 장점이 있으나, 많은 연산량이 요구되는 단 점이 있다. 따라서 전역 탐색 블록정합 알고리즘은 실시간 동영상 압축 및 전송이 필요한 어플리케이션보다는 저장 매체를 위한 동영상의 압축 및 복원에 일반적으로 이용된다.
반면에, 고속탐색 블록정합 알고리즘은 탐색 영역 내의 일부 후보 블록에 대해서만 탐색을 한다. 따라서 전역 탐색에 비하여 연산량이 적으며 그 결과 처리 속도가 빠르기 때문에 실시간 동영상의 전송이 요청되는 어플리케이션의 경우에 적합하다. 그러나 일부의 후보 블록에 대해서만 탐색을 하기 때문에, 경우에 따라서는 최적의 움직임 벡터를 찾을 수 없는 단점을 가진다. 이는 화질의 저하 및 비트스트림(bit stream)의 증가를 야기한다. 이러한 고속탐색 블록정합 움직임 추정의 종류로는 3단계 탐색(3 step search), 계층적 탐색(hierarchical search), 다이아몬드 탐색(diamond search) 등이 있다.
한편, 보다 진일보된 움직임 추정 방식으로, 전역 탐색 블록정합 알고리즘과 고속탐색 블록정합 알고리즘의 장점을 모두 만족시키는 고속 전역탐색 블록정합(fast full search block matching) 알고리즘이 제안되었다. 이 알고리즘은 전역탐색을 하므로 최적의 해를 구할 수가 있으며, 일반적으로 절대차의 합(Sum of Absolute Difference, SAD)의 계산에 앞서 SAD보다 연산량이 작은 평균합(sum norm)을 이용하여 후보 블록에 대한 SAD의 계산 여부를 결정하므로 연산량이 전역탐색 블록정합 알고리즘에 비하여 적다. 이와 같은 고속 전역탐색 블록정합 알고리즘으로는 연속 제거 알고리즘(Successive Elimination Algorithm, SEA), 다층 레벨 연속 제거 알고리즘(Multi-level SEA, MSEA), 및 확장된 연속 제거 알고리 즘(Extended SEA, ESEA) 등이 있다.
이 중에서 MSEA는 SEA를 일반화한 알고리즘으로서, 매크로블록을 정사각형의 서브 블록으로 나누어서 서브 블록의 합을 비교한다. 이에 의하면, SEA의 경계 조건을 더 좁게 설정하는 것이 가능하기 때문에, 정합 블록이 될 가능성이 거의 없는 후보 블록들에 대해서는 불필요한 SAD 계산을 하지 않을 수가 있다.
Figure 112009011974612-pat00001
수학식 1은 MSEA을 보여 주는 수학식이다. 수학식 1에서
Figure 112009011974612-pat00002
은 레벨(level)을 의미하며, k는 해당 레벨에서의 서브 블록의 번호이다. Sl은 레벨
Figure 112009011974612-pat00003
에 해당하는 서브 블록의 개수를 나타낸다.
Figure 112009011974612-pat00004
Figure 112009011974612-pat00005
는 해당 레벨
Figure 112009011974612-pat00006
에서 각각 현재 매크로블록과 후보 매크로블록의 k번째 서브 블록의 블록 합(sum norm)을 의미한다. 수학식 1의 좌측에서 알 수 있듯이, 레벨이 증가 할수록 현재 매크로블록의 서브 블록과 후보 매크로블록의 서브 블록간 블록 합의 차이의 절대값의 합은 증가한다. 이것은 MSEA에서 경계 조건을 좁게 해주는 것을 의미한다.
그리고 매크로블록에서 레벨이 4일 때 수학식 1의 좌측에 있는
Figure 112009011974612-pat00007
성분은 현재 매크로블록과 후보 매크로블록간의 SAD를 의미하게 된다. 이것은 후보 매크로블록 판단 레벨이 하나만 존재하는 SEA와는 달리, MSEA에서는 후보 매크로블 록 판단 레벨이 4개가 존재한다는 것을 의미한다. MSEA는 여러 개의 레벨을 두어서 후보 매크로블록의 SAD를 계산할지의 여부를 수학식 1에 의하여 각 레벨 별로(l = 0, 1, 2, 3) 판단한 뒤, 최종 레벨에서도 SAD를 구해야 하는 것으로 판단되는 경우에만, SAD를 계산한다. 도 1은 MSEA에서 각 레벨에서의 서브 블록의 크기를 나타낸다.
그런데 MSEA를 비롯한 기존의 고속 전역탐색 블록정합 알고리즘에서 화소별(pixel-by-pixel) 정합 순서를 결정함에 있어서, FFSSD(Fast Full Search with Sorting by Distortion) 또는 FFSSG(Fast Full Search with Sorting by Distortion)가 이용되었다. FFSSD는 참조 프레임의 후보 매크로블록과 현재 매크로블록간에 화소별 왜곡(distortion)을 구한 후에, 그 값이 큰 순서대로 화소별 정합을 하는 알고리즘이다. 그리고 FFSSG는 현재 매크로블록에서 각 화소의 기울기(gradient)를 구한 후 기울기 값이 큰 순서대로 화소별 정합을 하는 알고리즘이다.
그러나 FFSSD든 또는 FFSSG든 모두 화소간 왜곡값이든 또는 기울기값이든 모든 화소에 대하여 그 값을 전부 구해보고 그 크기순(예컨대, 내림차순)으로 화소별 정합 순서를 결정한다. 그러나 이러한 방식은 영상의 특성을 충분히 고려하지 못하기 때문에, SAD 계산을 최소한으로 줄이기에는 부적법하다. 즉, 내림차순으로 정렬을 할 때 동일한 왜곡값이나 기울기 값이 존재할 가능성이 상당히 높은데, 기존의 FFSSD 알고리즘이나 FFSSG 알고리즘은 이러한 상황을 충분히 고려하지 못하고 있다. 그 결과, 기존의 FFSSD 알고리즘이나 FFSSG 알고리즘에서는 보다 많은 화소에 대해서 SAD 계산을 수행해야 하므로, 연산량 감소의 효과가 그다지 높지 않다.
한편, 종래의 움직임 추정 절차에서는 초기 최소 SAD(initial minimum SAD)를 가능한 일찍 발견하여 탐색 지점을 최대한 많이 제거할 수 있도록 예측 움직임 벡터를 사용하였다. 현재 대부분의 동영상 표준들은 예측 움직임 벡터를 찾기 위해 현재 매크로블록의 주변 블록들의 움직임 벡터의 중간값을 예측 움직임 벡터로 사용한다. 이 방법은 상당히 적은 복잡도와 신뢰할만한 성능을 보여 주지만 경우에 따라서는 실제 움직임 벡터와 예측된 움직임 벡터 사이에 상당한 에러를 발생시키기도 한다.
본 발명이 해결하고자 하는 다른 과제는 영상의 특성을 고려하여 화소별 정합 순서를 효율적으로 결정함으로써 부분 SAD의 계산을 최소화하여 연산량을 감소시켜서 처리 속도를 향상시킬 수 있는 부분 블록정합 알고리즘을 이용한 움직임 추정 방법을 제공하는 것이다.
상기 과제를 해결하기 위한 본 발명의 실시예에 따른 동영상 움직임 추정을 위한 화소 대 화소 기반의 블록 정합 방법에 있어서, 현재 매크로블록의 각 화소값들로부터 히스토그램을 구하고 히스토그램 특성을 이용하여 부분 블록정합에 참여할 화소를 선택하고 선택된 화소를 상기 현재 매크로블록과 후보 매크로블록에서 화소 대 화소로 정합시켜 고속 움직임 추정을 위한 블록정합 방법을 수행한다.
본 발명의 실시예에 의하면, 에지 부분에 왜곡이 크게 발생하는 영상을 특성을 고려하여 히스토그램을 이용하여 부분 블록정합에 참여할 화소를 선택하고 선택된 화소들만으로 화소대 화소 부분 블록정합을 수행하여 전역 탐색 방법(FSA: full search algorithm)과 본 발명에서 개시하는 방법에 의하였을 때의 계산 복잡도와 영상의 화질을 각각 비교하여 보면 움직임 추정에서 많은 비중을 차지하는 SAD(sum of absolute difference) 연산 수에 있어 더 작은 값을 가지며 전역 탐색과 비교하여 영상의 특성에 따라 최대 25%의 연산량을 줄이는 동시에 PSNR(Peak Signal-to-Noise Ratio)를 척도로 한 화질면에서 거의 차이가 없는 영상을 얻을 수 있다.
이하, 첨부 도면들을 참조하여 본 발명의 실시예에 대하여 상세하게 설명한다.
도 2는 고속 전역 탐색 블록정합 절차를 보여 주는 흐름도이다.
도 2를 참조하면, 우선 탐색 범위 내에서 현재 매크로블록에 대한 예측 움직임 벡터(Motion Vector, MV)를 구한다(S11). 예측 움직임 벡터는 블록정합 절차를 개시하기 위한 시작점을 가리키며, 또한 초기 최소 SAD를 제공한다. 예측 움직임 벡터를 구하는데 있어서, 현재 매크로블록에 이웃하는 세 개의 매크로블록, 즉 좌측으로 인접하는 매크로블록(left), 위쪽으로 인접하는 매크로블록(upper), 및 우 상쪽으로 인접하는 매크로블록(upper-right)의 움직임 벡터들과 상기 세 개의 움직임 벡터의 중간값으로 이루어진 움직임 벡터(median), 및 참조 프레임에서 현재 매크로블록의 위치에 대응하는 위치에 있는 매크로블록(도 2에서 (0, 0)으로 표기)의 움직임 벡터, 총 다섯 개의 움직임 벡터를 이용한다. 상기 다섯 개의 움직임 벡터가 지시하는 매크로블록들을 후보 블록으로 해서, 각 후보 블록의 블록합을 이용하여 예측 움직임 벡터를 구한다.
고속 전역탐색 블록정합 알고리즘에서 예측 움직임 벡터를 사용하는 이유는 블록정합에서 보다 많은 양의 후보 매크로블록을 조기에 제거함으로써, 고속탐색을 효과적으로 수행하기 위해서이다. 고속탐색의 관건은 초기 최소 SAD(initial minimum SAD)를 최대한 일찍 발견함으로써 탐색 지점을 조기에 최대한 많이 제거하는 것이기 때문에, 예측 움직임 벡터를 보다 정확하게 구하는 것이 중요하다.
전술한 바와 같이, 기존의 대부분의 동영상 코덱 기법들은 인접 블록의 움직임 벡터들의 중간값을 예측 움직임 벡터로써 사용한다. 이러한 중간값을 사용하는 방법은 상당히 적은 복잡도와 신뢰할 만한 성능을 보여 주고 있기 때문에, 고속탐색 기법에서도 널리 이용되고 있다. 그러나 이러한 기존의 방법은 여전히 실제 움직임 벡터와 예측 움직임 벡터 사이에 상당한 에러를 발생시키는 한계가 있다.
예측 움직임 벡터를 구하는데 있어서 정확도를 더욱 향상시기 위하여 현재 매크로블록에 이웃한 세 개의 매크로블록들의 움직임 벡터, 상기 세 개의 움직임 벡터들의 중간값으로 구해지는 움직임 벡터(중간값 움직임 벡터), 및 참조 프레임에서 현재 매크로블록에 대응되는 위치의 매크로블록의 움직임 벡터를 이용하여, 예측 움직임 벡터를 구한다.
이와 같이, 전술한 다섯 개의 후보 예측 움직임 벡터들 중에서 하나를 예측 움직임 벡터로 결정하고 예측 움직임 벡터를 결정함에 있어서, 상기 다섯 개의 후보 예측 움직임 벡터가 가리키는 참조 프레임의 탐색 영역 내의 매크로블록들 각각의 블록합(sun norm)을 이용한다. 블록합은 매크로블록의 복잡도를 나타내기 때문에, 현재 매크로블록과 다섯 개의 후보 예측 매크로블록 사이의 공간적 연관성을 도출할 수가 있다.
이러한 매크로블록 간의 공간적 연관성은 블록합의 차로 쉽게 얻을 수가 있다. 따라서 본 발명의 실시예에 의하면, 최적의 예측 움직임 벡터는 현재 매크로블록과 다섯 개의 후보 예측 매크로블록 중에서 최소의 절대차를 갖는 후보 예측 매크로블록의 움직임 벡터로 결정한다. 수학식 2는 이러한 본 발명의 실시예에 따라서 블록합을 이용하여 예측 움직임 벡터를 구하는 과정을 수학식으로 나타낸 것이다.
Figure 112009011974612-pat00008
수학식 2에서, diff i i위치의 후보 예측 매크로블록과 현재 매크로블록간 블록합의 절대차의 합을 의미한다. 그리고 i의 값들 중에서 left, upper, upper- right, median, (0, 0)은 각각 현재 매크로블록의 왼쪽, 위쪽, 우상쪽의 매크로블록의 움직임 벡터가 지시하는 매크로블록, 중간값이 지시하는 매크로블록, 및 대응 위치의 움직임 벡터가 가리키는 매크로블록을 의미한다. 그리고 수학식 2에서 l은 MSEA에서 레벨 0에서부터 3을 의미한다.
수학식 2를 참조하면, diff i 에서 최소 블록합의 차를 갖는 매크로블록의 움직임 벡터를 최적의 예측 움직임 벡터로 결정한다. 그리고 매크로블록간의 블록합을 효과적으로 계산하기 위해 연산량이 많은 SAD(레벨 4)의 계산을 피하기 위해 MSEA에서 각 레벨에서의 서브 블록합의 차를 척도로 사용한다. 레벨값이 올라갈수록 정확한 매크로블록간 정합 에러를 예측할 수 있기 때문에, 본 발명의 실시예에 따라서 예측 움직임 벡터를 구하는 알고리즘의 정확도는 높아진다.
이러한 본 발명의 실시예에 의하면, MSEA 알고리즘을 사용할 때 참조 프레임의 매크로블록과 각 레벨에서의 서브 블록들의 블록합이 계산되기 때문에, 이 값들이 다시 재활용될 수 있으며 따라서 블록합을 이용하는데 따른 연산량의 증가는 크기 않다. 그리고 예측 움직임 벡터를 결정하는데 있어서 SAD를 사용하지 않고 블록합을 이용하기 때문에, 연산량을 감소시킬 수 있다.
계속해서 도 2를 참조하면, 단계 S11에서 결정된 예측 움직임 벡터가 가리키는 참조 매크로블록과 현재 매크로블록 사이의 절대 차의 합(Sum of Absolute Difference, SAD)을 구하여, 이를 초기 최소 SAD(min SAD)로 한다(S12).
그리고 현재 매크로블록의 화소값(예컨대, 휘도값) 히스토그램을 구하여, 후 술하는 블록정합 절차에서 적용할 화소별(pixel-by-pixel) 정합 순서를 결정한다(S13). 본 단계는 반드시 S12 후에 수행될 필요가 없으며, 단계 S14의 이전이면 언제든지 수행될 수 있다.
예측 움직임 벡터를 구하고 나면, 상기 예측 움직임 벡터를 시작으로 소정의 알고리즘에 따른 매크로블록의 순서대로 블록정합을 수행한다. 이러한 매크로블록들의 탐색 순서를 특정하는 알고리즘(예컨대, 매크로블록들의 탐색 순서를 예측 움직임 벡터가 지시하는 매크로블록을 기점으로 나선형(spiral)으로 할 수 있다)에는 아무런 제한이 없다.
화소 대 화소(pixel-by-pixel)을 기반으로 하는 고속 정합을 효과적으로 수행하기 위해서는 현재 매크로블록과 후보 매크로블록을 정합할 때, 왜곡(distortion)이 큰 화소부터 순서대로 정합을 하는 것이 바람직하다. 왜냐하면, 왜곡이 큰 순서대로 정합을 해야지만 초기에 부적합한 후보 매크로블록을 제거할 수 있기 때문이다. 따라서 본 발명의 실시예에서는 초기에 부적합한 후보 매크로블록을 제거할 수 있는 새로운 알고리즘을 제시한다.
대부분의 영상(촬영을 통해 획득한 자연 영상)은 배경에 비해 에지 화소의 개수가 상대적으로 적다. 그리고 화소간 왜곡(Distortion)은 배경 보다는 에지 부분에서 크게 발생한다. 그러므로 본 발명의 실시예에서는 최적의 블록정합 순서를 결정하는데 있어서, 이러한 영상의 특성을 이용한다. 보다 구체적으로, 본 발명의 실시예에 의하면, 최적의 정합 순서를 결정하기 위하여 배경 화소인지 에지 화소인지를 구분하는데 있어서 매크로블록의 히스토그램 특성을 이용하며, 이 히스토그램 특성으로부터 에지 부분부터 왜곡을 계산한다.
보다 구체적으로, 본 발명의 실시예에 의하면, 현재 매크로블록이 포함하고 있는 화소값(intensity)들로부터 히스토그램을 구한다. 히스토그램의 값이 작으면 그 만큼 발생 빈도가 낮은 것이므로, 에지에 해당될 확률이 높은 반면, 히스토그램의 값이 크면 그 만큼 발생 빈도가 높은 것이므로, 배경에 해당될 확률이 높다.
계속해서 도 2를 참조하면, 단계 S13에서 구한 히스토그램을 이용하여 상기 히스토그램의 값이 작은 순서대로, 즉 히스토그램의 값이 증가하는 순서(increasing order)대로 블록정합을 수행한다(S14). 본 발명의 실시예와 같이, 히스토그램의 값이 증가하는 순서대로 블록정합을 수행하면, 매크로블록에서 에지 부분을 초기에 정합할 수가 있으며, 결과적으로 정합 과정 초기에 전체 매크로블록 왜곡의 대부분을 차지하는 왜곡을 계산해낼 수가 있다. 이와 같이 결정된 히스토그램 기반 정합 순서는 현재 매크로블록에서 한 번 정해진 후에 탐색 영역 내의 모든 후보 매크로블록과 정해진 순서대로 정합이 이루어진다.
그리고 본 단계(S14)에서 히스토그램의 값을 이용하여 결정된 순서대로 소정 크기의 화소 단위로 부분 SAD(Partial SAD, SAD i )를 구한다. 예컨대, 부분 SAD는 16화소 단위 또는 8화소 단위로 수행할 수 있는데, 본 발명의 실시예에서는 8화소 단위로 수행하는 것이 바람직하다. 이에 의하면, 히스토그램의 값이 작은 순서대로 8화소의 왜곡값의 합(즉, 부분 SAD 1 )을 구한다.
계속해서, 상기 부분 SAD 1 과 최소 SAD의 크기를 비교한다(S15). 비교 결과, 부분 SAD 1 가 최소 SAD 이상이 되면, 해당 후보 매크로블록에 대해서는 다른 화소에 대해서는 더 이상 SAD를 구할 필요가 없이, 정합 블록이 될 수 있는 후보 매크로블록에서 제외한다(S16).
반면, 부분 SAD1가 최소 SAD보다 작으면, i가 32인지를 판단한다(S17). 본 과정에서는 상기 i=1이므로(즉, i가 32이 아니면), 단계 S18로 진행하여 i의 값을 1 증가시킨다(S18). 그리고 전술한 단계 S14(i=2)부터 절차를 계속하며, 이 경우에 단계 S15에서는 부분 SAD0과 부분 SAD1의 합과 최소 SAD의 크기를 비교한다.
단계 S17에서 i=32인 것으로 판단되면, 해당 후보 매크로블록과 현재 매크로블록의 부분 SAD의 총합이 min SAD보다 작은 경우에 해당되므로, 이 경우에는 단계 S15에서 사용되는 min SAD를 업데이트한다(S19). 그리고 본 절차를 거친 후보 매크로블록이 탐색 영역 내의 마지막 후보 매크로블록인지를 판단한 다음(S20), 만일 마지막 후보 매크로블록이 아닌 경우에는 매크로블록의 탐색 순서(예컨대, 나선 모양)에 따라서 다음 후보 매크로블록에 대하여 도 2에 개시된 절차를 시작한다. 반대로, 마지막 매크로블록이이거나 또는 단계 S16에서 제거된 블록이 마지막 매크로블록인 경우에는, 본 발명의 실시예에 따른 고속 전역 블록정합 알고리즘에 따른 절차를 종료한다.
본 발명에 따른 실시예로 화소 대 화소을 기반으로 하는 고속 정합에 있어서 해당 매크로 블록의 모든 화소를 정합시키지 아니하고 상기 매크로 블록의 일부 화소만을 부분 블록정합하여 움직임을 추정할 수 있다. 기존의 블록정합 절차에 본 발명에 따른 블록정합에 참여할 화소의 선택 절차가 부가되어 기존의 블록정합 절차내에서 본 발명의 일 실시예에 따라 선택된 매크로블록의 일부 화소만을 정합하여 움직임을 추정하므로 연산량 감소와 복잡도를 감소시키는 효과를 얻을 수 있다.
영상의 화질 저하 없이 부분 블록정합을 수행하려면 영상에 적응적으로 적절한 블록정합 화소를 결정해야 한다. 블록정합은 현재 블록내 화소들의 복잡도에 의존하기 때문에 복잡도를 추정해야 한다. 블록의 복잡도를 추정하는 종래의 방법은 블록내 화소간의 기울기(gradient) 또는 분산을 이용한다. 그러나 이 방법들은 많은 연산량을 요구하므로 본 발명에서는 히스토그램을 이용하여 블록정합 화소를 결정한다.
블록내 화소들을 1차원 배열로 나타내면 [0,L-1] 그레이 레벨 (gray level)를 갖는 블록의 히스토그램은 이산 함수
Figure 112009011974612-pat00009
로 나타낼수 있다. rk는 k번째 그레이 레벨을 나타내며 nk는 rk를 갖는 화소의 개수를 나타낸다.
도 3은 현재 블록 내에서 가장 많은 그레이 레벨의 화소의 개수 Hmax(hist_max)와 현재 블록의 표준편차의 관계를 나타낸 것이다. 도 3에서 상기 Hmax와 상기 현재 블록의 표준편차와의 상관관계를 확인할 수 있다. 도 3에 나타나는 그래프 형태의 유사성으로부터 히스토그램을 이용하여 블록의 복잡도를 효과적으로 추정할 수 있는 것을 알 수 있다.
도 4는 기존의 블록정합 수행절차 내에서 본 발명의 일 실시예로서 블록정합에 참여할 화소의 결정 과정을 나타내는 흐름도이다. 도 4를 참조하면 단계 S410에 서 현재 매크로 블록의 각 화소값들로부터 히스토그램을 구하고, 단계 S420에서 현재 매크로블록내에서 부분 블록 정합에 참여할 화소를 선택한다. 이후 단계 S430에서 단계 S420에서 선택된 화소를 현재 매크로 블록과 후보 매크로 블록에서 화소대 화소로 정합시킨다. 이하에서 각 단계와 관련하여 더 상세히 설명한다.
Figure 112009011974612-pat00010
수학식 3에서 N은 블록의 크기를 나타내며 n'L -1은 상기 수학식 1의 nk값의 크기에 따라 히스토그램 기반으로 오름차순으로 재정렬하였을 때 L-1번째 항의 값이다. 현재 블록에서 가장 특정 그레이 레벨을 갖는 화소의 개수의 값 중 가장 큰 화소 개수의 값이다.(n'L -1=max(nk)) 그리고, nback은 배경으로 간주된 화소들의 개수이다. 즉, 상대적으로 개수가 많은 화소 집합의 원소 개수이다. nback 은 수학식 4와 같이 나타낼 수 있다. 여기에서 t 값은 L보다 작은 값으로 가변적이다.
Figure 112009011974612-pat00011
수학식 3과 같이 블록내 전체 화소 개수(N×N)와 nback의 비를 이용하여 최종 블록정합 화소 개수 NMP (number of matching pixels)를 결정한다. 상기 블록내 전체 화소 개수(N×N)와 nback의 비가 0.5보다 작으면 배경을 구성하는 화소들의 개수가 상대적으로 적다고 판단하여 상기 블록내 전체 화소 개수(N×N)에서 첫 번째(n'L -1)와 두 번째(n'L -2)로 많은 화소 개수를 빼며, 0.5 보다 크거나 같은 경우에는 배경을 구성하는 화소들의 개수가 상대적으로 많다고 판단하여 상기 블록내 전체 화소 개수(N×N)에서 첫 번째(n'L -1), 두 번째(n'L -2), 세 번째(n'L -3)로 많은 화소 개수를 뺀다. 이때, 부분 블록정합을 할 화소 MP(matching pixels)는 상기 개수 결정과정에서 제외된 화소들 이외의 화소들로 결정된다.
상기 방법에 따라 영상의 특성을 반영하여 적응적으로 부분 블록정합을 할 화소들을 결정한다. 도 5는 상기 본 발명의 실시예에 따라 결정된 부분 블록 정합에 사용되는 화소들을 보여준다. 검은색 화소들은 블록정합 과정에서 제외되는 화소들을 의미한다.
부분 블록정합에 의한 움직임 추정에서 본 발명의 성능을 확인하기 위해서 전역 탐색 방법 (FSA: full search algorithm)의 계산 복잡도와 영상의 화질을 비교한다. 각각 CIF(Common Intermediate Format)형식의 100프레임(frame)을 갖는 7개의 영상(Table Tennis, Mobile Calendar, Akiyo, News, Container, Stefan, Coastguard)을 실험에 사용하였다. 도 6 내지 도 12는 각각 상기 7개 실험 영상 Table Tennis, Mobile Calendar, Akiyo, News, Container, Stefan, Coastguard의 대표 프레임이다.
탐색영역내에서 원점을 중심으로 나선형으로 탐색을 하는 나선형 탐색을 사 용하였으며 초기 최소 SAD (sum of absolute difference)를 구하기 위해 중간값 예측기를 사용하였다. 중간값 예측기는 공간 움짐익 벡터 예측기로서 인접 블록들 (왼쪽, 위쪽, 오른쪽 위)의 움직임 벡터들의 중값을 예측하는 움직임 벡터로 결정한다. 탐색영역의 크기는 16으로 하였으며 블록 크기는 16x16으로 하였다. 일반적으로, 블록정합 알고리즘은 참조프레임의 탐색영역내에서 한 화소씩 이동하면서 SAD를 구하고 그 중 가장 작은 SAD를 갖는 블록의 위치를 움직임 벡터로 선택한다. 움직임 추정에서 SAD 계산 과정이 많은 부분을 차지하므로 알고리즘의 복잡도를 SAD 연산의 수로 측정할 수 있다. SAD 연수 수는 블록정합 화소의 개수와 동일하다.
Figure 112009011974612-pat00012
수학식 5는 전역 탐색에서 각 프레임에서 블록당 평균 블록정합 화소 개수를 나타낸다. 여기에서 C와 L은 프레임내 수직, 수평 방향으로 블록 개수이다.
Figure 112009011974612-pat00013
수학식 6은 부분 블록정합에서 각 프레임에서 블록당 평균 블록정합 화소 개수이다. 수학식 5와 수학식 6으로부터 본 발명의 실시예에 따른 부분 블록정합에서 감소되는 연산량을을 통해서 블록 16x16 SAD는 256개의 뺄셈과 256개의 절대값과 255개의 덧셈을 포함하므로 현재 블록마다 히스토그램 기반 정렬의 연산은 무시 할 수 있다. 도 13은 모든 실험 영상들에 대해 하나의 프레임에서 블록당 평균적으로 사용되는 블록정합 화소 개수를 나타낸다. 도 12의 Coastguard 영상이 빠른 움직임과 복잡한 블록을 많이 포함하기 때문에 평균적으로 블록정합되는 화소의 개수가 상대적으로 많은 것을 볼 수 있다. 반면에, 도 8의 Akiyo 영상은 느린 움직임과 단순한 블록들이 많기 때문에 평균적으로 블록정합되는 화소의 개수가 상대적으로 적은 것을 확인할 수 있다.
Figure 112009011974612-pat00014
표 1은 모든 실험 영상들에 대한 PSNR(Peak Signal-to-Noise Ratio)과 NMP의 감소율을 보여주고 있다. 표 1로부터 영상의 화질이 전역탐색과 거의 동일하다는 것을 볼 수 있다. 여기에서 영상의 화질을 나타내는 척도로 PSNR을 사용하였다. 또한 표 1에서 모든 영상의 100프레임에 대해서 전역 탐색과 비교한 총 블록정합 화소의 개수의 감소율을 확인할 수 있다. 영상의 특성에 따라 최대 25%의 연산량을 줄일 수 있음을 확인할 수 있다.
상술한 모든 방법은 상기 방법을 수행하도록 코딩된 소프트웨어나 프로그램 코드 등에 따른 마이크로프로세서, ASIC(Application Specific Integrated Circuit) 등과 같은 프로세서에 의해 수행될 수 있다. 상기 코드의 설계, 개발 및 구현은 본 발명의 설명에 기초하여 당업자에게 자명하다고 할 것이다.
이상에서 본 발명을 특정의 바람직한 실시예를 예로 들어서 도시하고 설명하였으나, 본 발명은 상기한 실시예에 한정되지 아니한다. 본 발명의 실시예는 후술하는 특허청구범위에 의하여 특정되는 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의하여 다양한 변경과 수정이 가능할 것이다.
도 1은 MSEA에서 각 레벨에서의 서브 블록의 크기를 나타내는 도면이다.
도 2는 고속 전역 탐색 블록정합 절차를 보여 주는 흐름도이다.
도 3은 블록당 hist_max와 표준 편차의 관계를 나타내는 그래프이다.
도 4는 기존의 블록정합 수행절차 내에서 본 발명의 일 실시예로서 블록정합에 참여할 화소의 결정 과정을 보여주는 흐름도이다.
도 5는 블록 정합에 선택된 화소를 나타낸다.
도 6은 실험에 사용된 Table tennis 영상의 대표 프레임이다.
도 7은 실험에 사용된 Mobile calendar 영상의 대표 프레임이다.
도 8은 실험에 사용된 Akiyo 영상의 대표 프레임이다.
도 9는 실험에 사용된 News 영상의 대표 프레임이다.
도 10은 실험에 사용된 Container 영상의 대표 프레임이다.
도 11은 실험에 사용된 Stefan 영상의 대표 프레임이다.
도 12는 실험에 사용된 Coastguard 영상의 대표 프레임이다.
도 13은 실험에 사용된 영상의 각 프레임에서 블록당 평균 블록 정합 화소 개수를 보여 주는 그래프이다.

Claims (4)

  1. 동영상 움직임 추정을 위한 화소 대 화소 기반의 블록정합 방법에서 블록정합에 참여할 화소를 선택하는 과정으로,
    현재 매크로블록의 각 화소값들로부터 히스토그램을 구하는 단계; 및
    부분 블록정합에 참여할 화소를 선택하는 단계; 및
    선택된 상기 부분 블록정합에 참여할 화소를 상기 현재 매크로블록과 후보 매크로블록에서 화소 대 화소로 정합시키는 단계를 포함하는 고속 움직임 추정을 위한 부분 블록정합 방법.
  2. 제 1항에 있어서,
    상기 부분 블록 정합에 참여할 화소는 상기 현재 매크로블록의 화소들의 히스토그램 특성에 따라 적응적으로 결정되는 것을 특징으로 하는 고속 움직임 추정을 위한 부분 블록정합 방법.
  3. 제 2항에 있어서,
    상기 부분 블록정합에 참여할 화소의 개수 NMP(number of matching pixels)는 다음식과 같이 결정되는 것을 특징으로 하는 고속 움직임 추정을 위한 부분 블록정합 방법.
    Figure 112010039568916-pat00015
    단, 상기 N은 상기 현재 매크로블록의 크기, 상기 nback은 배경으로 간주된 화소들의 개수, 상기 n'L-1은 상기 현재 매크로블록에서 특정 그레이 레벨을 갖는 화소 개수의 값 중 가장 큰 값, 상기 n'L-2는 상기 현재 매크로블록에서 특정 그레이 레벨을 갖는 화소 개수의 값 중 두 번째로 큰 값, 상기 n'L-3은 상기 현재 매크로블록에서 특정 그레이 레벨을 갖는 화소 개수의 값 중 세 번째로 큰 값이다.
  4. 제 3항에 있어서,
    상기 배경으로 간주되는 화소들은
    상기 현재 매크로블록내에서 화소들을 특정 그레이 레벨(gray level)을 갖는 화소들의 개수에 따라 내림차순으로 정리하였을 때, 첫번째부터 세번째에 해당하는 상기 그레이 레벨을 갖는 화소들로 결정되는 것을 특징으로 하는 고속 움직임 추정을 위한 부분 블록정합 방법
KR1020090016302A 2009-02-26 2009-02-26 고속 움직임 추정을 위한 부분 블록정합 방법 KR100987581B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090016302A KR100987581B1 (ko) 2009-02-26 2009-02-26 고속 움직임 추정을 위한 부분 블록정합 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090016302A KR100987581B1 (ko) 2009-02-26 2009-02-26 고속 움직임 추정을 위한 부분 블록정합 방법

Publications (2)

Publication Number Publication Date
KR20100097387A KR20100097387A (ko) 2010-09-03
KR100987581B1 true KR100987581B1 (ko) 2010-10-12

Family

ID=43004614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090016302A KR100987581B1 (ko) 2009-02-26 2009-02-26 고속 움직임 추정을 위한 부분 블록정합 방법

Country Status (1)

Country Link
KR (1) KR100987581B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102543025A (zh) * 2012-02-03 2012-07-04 福州瑞芯微电子有限公司 通过动态背光调节方式增强显示屏显示对比度的电路

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014107762A1 (en) * 2013-01-09 2014-07-17 Vincenzo Liguori Method and apparatus for comparing two blocks of pixels

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100527810B1 (ko) 2002-12-21 2005-11-15 한국전자통신연구원 Sad 추정을 통한 움직임 추정 방법
JP2007134755A (ja) 2005-11-08 2007-05-31 Hitachi Ltd 動画像符号化装置及び画像記録再生装置
KR20090079286A (ko) * 2008-01-17 2009-07-22 한양대학교 산학협력단 고속 전역탐색 블록정합 알고리즘을 이용한 동영상 움직임추정 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100527810B1 (ko) 2002-12-21 2005-11-15 한국전자통신연구원 Sad 추정을 통한 움직임 추정 방법
JP2007134755A (ja) 2005-11-08 2007-05-31 Hitachi Ltd 動画像符号化装置及び画像記録再生装置
KR20090079286A (ko) * 2008-01-17 2009-07-22 한양대학교 산학협력단 고속 전역탐색 블록정합 알고리즘을 이용한 동영상 움직임추정 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102543025A (zh) * 2012-02-03 2012-07-04 福州瑞芯微电子有限公司 通过动态背光调节方式增强显示屏显示对比度的电路

Also Published As

Publication number Publication date
KR20100097387A (ko) 2010-09-03

Similar Documents

Publication Publication Date Title
US7764738B2 (en) Adaptive motion estimation and mode decision apparatus and method for H.264 video codec
US8467448B2 (en) Apparatus and method for fast intra/inter macro-block mode decision for video encoding
KR100955152B1 (ko) 비디오 인코딩을 위한 다차원 인접 블록 예측
EP1147668B1 (en) Improved motion estimation and block matching pattern
EP1797722B1 (en) Adaptive overlapped block matching for accurate motion compensation
WO2010035370A1 (ja) 動画像符号化方法および動画像復号化方法
KR100929608B1 (ko) 고속 전역탐색 블록정합 알고리즘을 이용한 동영상 움직임추정 방법 및 장치
US20060182174A1 (en) Method for coding mode selection of intra prediction in video compression
JP2005535228A (ja) 高品質の高速予測動き検索を実行する方法および装置
JP2008523724A (ja) 動画像符号化のための動き推定技術
US7961789B2 (en) Method and apparatus for determining search range for adaptive motion vector for use in video encoder
KR20050119422A (ko) 움직임 보상에 기반한 입력 영상의 노이즈 예측 및 그장치와, 이를 사용한 노이즈 제거 및 동영상 부호화 방법,이를 수행하기 위한 프로그램이 기록된 기록 매체
US7433407B2 (en) Method for hierarchical motion estimation
KR100961760B1 (ko) 이산코사인변환 계수를 참조하는 움직임 추정 방법 및 장치
US20090028241A1 (en) Device and method of coding moving image and device and method of decoding moving image
JP4494803B2 (ja) 動き補償に基づいた改善されたノイズ予測方法及びその装置とそれを使用した動画符号化方法及びその装置
US6408101B1 (en) Apparatus and method for employing M-ary pyramids to enhance feature-based classification and motion estimation
US9055292B2 (en) Moving image encoding apparatus, method of controlling the same, and computer readable storage medium
KR20080048384A (ko) 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치
JP5639444B2 (ja) 動きベクトル生成装置、動きベクトル生成方法及びコンピュータプログラム
KR100987581B1 (ko) 고속 움직임 추정을 위한 부분 블록정합 방법
WO2012123321A1 (en) Method for reconstructing and coding an image block
KR100508975B1 (ko) 다층 레벨 연속 제거 알고리즘을 이용한 동영상 움직임추정 방법
KR101241508B1 (ko) 분류기를 이용한 움직임 벡터 추정 방법 및 이러한 방법을 사용하는 장치
US20130170565A1 (en) Motion Estimation Complexity Reduction

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: 20130930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140923

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee