KR100910209B1 - 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치 - Google Patents

세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치 Download PDF

Info

Publication number
KR100910209B1
KR100910209B1 KR1020070073071A KR20070073071A KR100910209B1 KR 100910209 B1 KR100910209 B1 KR 100910209B1 KR 1020070073071 A KR1020070073071 A KR 1020070073071A KR 20070073071 A KR20070073071 A KR 20070073071A KR 100910209 B1 KR100910209 B1 KR 100910209B1
Authority
KR
South Korea
Prior art keywords
search
block
minsad
motion vector
initial
Prior art date
Application number
KR1020070073071A
Other languages
English (en)
Other versions
KR20080048384A (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 한양대학교 산학협력단
Publication of KR20080048384A publication Critical patent/KR20080048384A/ko
Application granted granted Critical
Publication of KR100910209B1 publication Critical patent/KR100910209B1/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
    • H04N19/527Global motion vector 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/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

Landscapes

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

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법 및 그 장치에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 탐색 영역을 여러 개의 영역으로 분할한 상태에서 나선형 탐색 순서 또는 십자형 탐색 순서에 따라 움직임을 예측하거나[제1 실시예], 중간값 예측기를 이용해 구한 초기 minSAD를 토대로 그 영역 탐색 순서에 따라 움직임을 예측하거나[제2 실시예], 영상 복잡도를 이용해 계산한 후보 블록 탐색 비용을 토대로 그 영역 탐색 순서에 따라 움직임을 예측하거나[제3 실시예], 상기의 영상 복잡도 계산 과정, 상기의 중간값 예측 과정 및 상기의 탐색 영역 분할 과정을 토대로 그 서브 블록 탐색 순서에 따라 움직임 벡터를 결정(움직임 예측)하는[제4 실시예], 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법 및 그 장치를 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 움직임을 예측하는 장치에 있어서, 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 초기 minSAD 계산부; 상기 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 탐색 영역을 여러 개의 탐색 영역으로 분할하는 탐색 영역 분할부; 상기 탐색 영역 분할부에서 분할한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 분할 영역 탐색부; 및 상기 제거된 후보 블록을 제외한 나머지 블록의 블록합과 상기 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 움직임 벡터 결정부를 포함함.
4. 발명의 중요한 용도
본 발명은 비디오 부호화(영상 압축) 등에 이용됨.
움직임 예측(Motion Estimation), 고속 전영역 탐색(Fast Full Search), 블록 정합 알고리즘(Block Matching Algorithm), 영상 복잡도, 탐색 영역 분할, minSAD, 탐색 순서

Description

세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법 및 그 장치{Apparatus and Method for the fast full search motion estimation using the partitioned search window}
본 발명은 비디오 부호화(영상 압축)하는데 있어 움직임을 예측하는 방법 및 그 장치에 관한 것으로, 더욱 상세하게는 탐색 영역을 여러 개의 영역으로 분할한 상태에서 나선형 탐색 순서 또는 십자형 탐색 순서에 따라 움직임을 예측하거나[제1 실시예], 중간값 예측기를 이용해 구한 초기 minSAD를 토대로 그 영역 탐색 순서에 따라 움직임을 예측하거나[제2 실시예], 영상 복잡도를 이용해 계산한 후보 블록 탐색 비용을 토대로 그 영역 탐색 순서에 따라 움직임을 예측하거나[제3 실시예], 상기의 영상 복잡도 계산 과정, 상기의 중간값 예측 과정 및 상기의 탐색 영역 분할 과정을 토대로 그 서브 블록 탐색 순서에 따라 움직임 벡터를 결정(움직임 예측)하는[제4 실시예], 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법 및 그 장치에 관한 것이다.
블록 정합 알고리즘(Block Matching Algorithm)은 주어진 탐색 영역에서 최소의 비용을 갖는 후보 블록을 찾는 알고리즘으로서, 영상의 시간적 중복성을 최소화시켜 비디오 부호화를 효율적으로 한다. 이러한 블록 정합 알고리즘은 입력 영상을 고정된 크기의 매크로블록(MB; Macroblock)으로 나눈 상태에서 이 매크로블록에 가장 비슷한 블록을 이전 참조 영상에서 찾아 그 움직임 벡터를 예측한다.
일반적으로 매크로블록의 크기를 16×16으로 설정해 비디오 부호화를 수행하는데, 블록의 크기가 이보다 크면 움직임 벡터의 개수가 줄어들어 그 연산량도 줄어들지만, 세밀한 영역에 관한 움직임 벡터를 제대로 예측하지 못하게 되어 예측 에러가 증가하는 단점이 있다. 반대로, 블록의 크기가 이보다 작으면 세밀한 영역에 관한 움직임 벡터를 제대로 예측할 수는 있지만, 움직임 벡터의 개수가 증가되어 그 연산량이 증가하는 단점이 있다.
한편, 앞서 언급한 블록 정합 알고리즘을 기반으로 하는 전영역 탐색 알고리즘(Full Search Algorithm)은 탐색 영역 상의 모든 후보 블록들의 비용을 계산하여 최소의 비용을 갖는 움직임 벡터를 구하는 알고리즘이다. 다만, 전영역 탐색 알고리즘은 비디오 부호화에 있어 그 압축 효율을 높일 수 있지만, 탐색 영역 상의 모든 후보 블록들의 비용을 모두 계산해야 되므로 방대한 연산량에 따른 과다한 부하를 발생시키고 있는 형편이다.
위와 같은 문제점을 개선하기 위해, 최근에는 고속 움직임 예측 알고리즘(Fast Motion Estimation Algorithm)이 연구되고 있다. 예컨대, "W. Li and E. Salari, "Successive elimination algorithm for motion estimation", IEEE Trans. Image Processing, vol. 4, pp. 105~107, Jan. 1995."에 제시된 "SEA(Successive Elimination Algorithm)", "X,Q. Gao, C.J. Duanmu, and C.R. Zou, "A multilevel successive elimination algorithm for block matching motion estimation", IEEE Trans. Image Processing, vol. 9, pp. 501~504, Mar. 2000."에 제시된 "다단계 연속 제어 알고리즘(MSEA: Multilevel Successive Elimination Algorithm)" 및 "김종남, "영상 복잡도와 다양한 정합 스캔을 이용한 고속 전영역 움직임 예측 알고리즘", 정보과학회논문지, 소프트웨어 및 응용 제32권 제10호, pp. 949~955, Oct. 2005."에 제시된 "PDE(Partial Distortion Elimination)" 등을 들 수 있다.
상기와 같은 고속 움직임 예측 알고리즘들은 영상의 화질 저하없이 움직임 예측의 연산량을 줄일 수 있는 방식(lossless motion estimation algorithm)으로서, 수학적인 방정식을 통해 불필요한 연산량을 줄여 비디오 부호화 속도 향상을 도모할 수 있다.
그러나, 상기와 같은 종래 기술에 따른 고속 움직임 예측 알고리즘들도 탐색 영역의 중앙점에서부터 현재 블록과 후보 블록간을 서로 비교하는 연산을 상당히 많이 수행해야 되며, 이러한 불필요한 연산으로 인해 최적의 정합 블록을 빠른 시간 내에 찾을 수 없는 문제점이 있다.
그럼, 이하 본 발명의 이해를 도모하고자 상기와 같은 종래 기술에 따른 고속 움직임 예측 알고리즘들에 대해 살펴보기로 한다.
덧붙여, 본 발명에서 제시하는 알고리즘 및 종래 기술에 따른 알고리즘에 있 어 후보 블록을 찾는 비용[후보 블록 탐색 비용]은 SAD(Sum of Absolute Difference)를 이용한다. 여기서, SAD는 현재 탐색 영역의 중앙점에 대해 현재 블록과 이전 프레임에서 현재 탐색 영역에 대응되는 가장 닮은 정합 블록간 화소차의 절대값 합을 의미한다.
도 1은 종래 기술(SEA)에 따른 고속 전영역 탐색 알고리즘에 있어 블록합 고속 계산 과정을 설명하기 위한 일실시예 설명도이다.
SEA에서는 현재 프레임 상의 기준 블록의 블록합(sum norm)과 참조 프레임 상의 탐색 영역 내에 있는 후보 블록의 블록합과 현재까지 수행한 비디오 부호화 과정에 있어 그 최소 SAD(minimum SAD, 이하 "minSAD"라 함)를 이용하여 SAD를 계산하는데 불필요한 후보 블록을 미리 제거하는 알고리즘이다.
다음의 [수학식 1]은 SEA에서 이용하는 기본적인 부등식을 나타낸다.
Figure 112007052884200-pat00001
상기 [수학식 1]을 블록의 SAD와 블록합에 적용하면, 다음과 같은 [수학식 2]로 표현할 수 있다.
Figure 112007052884200-pat00002
상기 [수학식 2]에서
Figure 112007052884200-pat00003
각각은 현재 블록의 블록합과 탐색 영역 내의 (n,m) 위치에 해당되는 후보 블록의 블록합을 각각 나타내며, 이를 다음의 [수학식 3] 및 [수학식 4]와 같이 표현할 수 있다.
Figure 112007052884200-pat00004
Figure 112007052884200-pat00005
한편, 상기 [수학식 2]의 SAD를 다음의 [수학식 5]로 표현할 수 있다.
Figure 112007052884200-pat00006
상기 [수학식 5]에서
Figure 112009031334849-pat00007
는 기준 블록의 화소값을 나타내고,
Figure 112009031334849-pat00008
는 (x,y) 위치에서 후보 블록의 화소값을 나타낸다.
위와 같은 수학식들을 설정한 상태에서, SEA에서는 미리 구해 놓은
Figure 112007052884200-pat00009
를 토대로
Figure 112007052884200-pat00010
와 현재까지 수행한 비디오 부호화 과정에서 구한 minSAD간을 서로 비교한다.
상기 비교 결과,
Figure 112007052884200-pat00011
의 값이 현재까지의 minSAD보다 크면 상기 [수학식 2]의 조건을 만족하지 못하므로 현재 위치(n,m)에서는 SAD를 계산할 필요가 없다. 한편,
Figure 112007052884200-pat00012
의 값이 현재까지의 minSAD보다 작으면 현재 위치(n,m)에서 SAD를 새 로이 계산하고, 만약 이 계산한 SAD가 minSAD보다 작으면 minSAD를 갱신한다.
특히, SEA에서는 앞서 언급한
Figure 112007052884200-pat00013
를 계산하는데 소요되는 연산량을 줄이기 위해서 하기에서 도 1을 참조해 후술하는 블록합 고속 계산 과정을 채택하고 있다. 도 1에는 참조 영상이 도시되어 있는데, 각각의 정사각형은 하나의 화소를 나타낸다. 블록의 크기는 16×16이라고 하자.
먼저, 첫번째 화소 위치에서 가로 방향으로 16개 화소의 합(
Figure 112007052884200-pat00014
)인 RowSum(0)을 구한다. 그러면, 두번째 화소 위치에서 RowSum(1)은
Figure 112007052884200-pat00015
가 된다. 이런 방식으로 참조 영상에서 가로 방향으로 RowSum을 모두 구한 후에 이 RowSum들을 토대로 앞서 언급한 방식과 같이 세로 방향으로 계산해서 각 위치에서의 블록합을 구한다.
참조 영상의 가로 크기, 세로 크기가 적당히 크다고 가정하면, 상기와 같은 방식으로 블록합을 구하는데 걸리는 연산량은 4N2이 된다. 여기서, N2은 하나의 후보 블록 위치에서 SAD를 구할 때의 연산량이므로 4개 후보 블록의 블록합을 구하는 연산량으로서 하나의 프레임에 대한 블록합을 계산할 수 있다.
도 2는 종래 기술(MSEA)에 따른 고속 전영역 탐색 알고리즘에 있어 각 레벨에서의 서브 블록 크기를 보여주기 위한 일실시예 설명도이다.
다단계 연속 제어 알고리즘(MSEA)에서는 매크로블록을 정사각형의 서브 블록으로 나누어서 서브 블록의 합을 비교하는데, 이는 상기 [수학식 2]에 표현된 경계 조건을 다음의 [수학식 6]과 같이 더욱 좁게 설정함으로서 움직임 벡터로는 불가능한 후보 블록들을 제거하는 것이다. 이로서 MSEA에서는 불필요한 SAD 연산량을 어느 정도 줄일 수 있다.
Figure 112007052884200-pat00016
상기 [수학식 6]에서
Figure 112007052884200-pat00017
l은 레벨(level)을 나타내고, k는 해당 레벨에서의 서브 블록의 번호를 나타낸다. Si는 레벨 l에 해당되는 서브 블록의 개수를 나타낸다.
Figure 112007052884200-pat00018
는 해당 레벨 l에서 각각 현재 블록과 후보 블록의 k번째 서브 블록의 블록합을 나타낸다.
상기 [수학식 6]의 좌측에서 알 수 있듯이, 레벨이 증가할수록 현재 블록의 서브 블록과 후보 블록의 서브 블록간 블록합의 차이의 절대값 합은 증가되는데, 이는 경계 조건을 좁게 해 주는 것을 의미한다. 그리고, 매크로블록에서 레벨이 4인 경우에 상기 [수학식 6]의 좌측에 있는
Figure 112007052884200-pat00019
부분은 R 위치에서 SAD를 의미한다.
MSEA와 도 1을 참조해 설명했던 SEA간을 비교해 보면, SEA에서는 후보 블록 판단을 위한 레벨이 하나만 존재하는 반면에, MSEA에서는 후보 블록 판단을 위한 레벨이 4개가 존재한다.
즉, MSEA에서는 여러 개의 레벨을 둔 상태에서 후보 블록의 SAD를 계산할지 여부를 상기 [수학식 6]에 의해 각 레벨(l=0,1,2,3)별로 판단한 후에 최종적으로 SAD를 계산한다.
마지막으로, PDE에 대해 살펴보기로 한다.
한편, 보편적인 블록 정합 알고리즘이 블록의 SAD를 계산한 후에 현재까지의 minSAD와의 비교 결과를 통해 SAD를 계산하는데 반해, PDE에서는 부분적으로 계산한 SAD[PartialSAD]와 minSAD간을 서로 비교한 후에, PartialSAD가 minSAD보다 크면 남은 부분의 SAD 계산을 중단하는 알고리즘이다.
다음의 [수학식 7]은 PDE의 대표적인 예시로서, 행 단위로 SAD를 계산한 후에 minSAD간 비교를 하는 것을 표현하고 있다.
Figure 112007052884200-pat00020
상기 [수학식 7]에서 PartialSAD(k)는 k번째 행까지 계산한 절대 오차 합(SAD)을 의미한다.
[수학식 7]에 있어 "k=N-1"이면 참조 영상의 탐색 영역에서 (x,y) 위치에서의 SAD가 된다. 만약에, PartialSAD가 k=x(여기서 x=0,1,2,…,N-2)일 때 minSAD보다 커서 SAD 계산이 중단된다면 "N-x-1"개의 행만큼 SAD 연산량을 줄일 수 있게 되는 것이다.
그러나, 상기와 같은 종래 기술에 따른 고속 움직임 예측 알고리즘들도 탐색 영역의 중앙점에서부터 현재 블록과 후보 블록간을 서로 비교하는 연산을 상당히 많이 수행해야 되며, 이러한 불필요한 연산으로 인해 최적의 정합 블록을 빠른 시간 내에 찾을 수 없는 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.
본 발명은 상기와 같은 문제점을 해결하고 상기와 같은 요구에 부응하기 위하여 제안된 것으로, 탐색 영역을 여러 개의 영역으로 분할한 상태에서 나선형 탐색 순서 또는 십자형 탐색 순서에 따라 움직임을 예측하거나[제1 실시예], 중간값 예측기를 이용해 구한 초기 minSAD를 토대로 그 영역 탐색 순서에 따라 움직임을 예측하거나[제2 실시예], 영상 복잡도를 이용해 계산한 후보 블록 탐색 비용을 토대로 그 영역 탐색 순서에 따라 움직임을 예측하거나[제3 실시예], 상기의 영상 복잡도 계산 과정, 상기의 중간값 예측 과정 및 상기의 탐색 영역 분할 과정을 토대로 그 서브 블록 탐색 순서에 따라 움직임 벡터를 결정(움직임 예측)하는[제4 실시예], 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법 및 그 장치를 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기의 목적을 달성하기 위한 본 발명은, 움직임을 예측하는 장치에 있어서, 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 초기 minSAD 계산부; 상기 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 탐색 영역을 여러 개의 탐색 영역으로 분할하는 탐색 영역 분할부; 상기 탐색 영역 분할부에서 분할한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 분할 영역 탐색부; 및 상기 제거된 후보 블록을 제외한 나머지 블록의 블록합과 상기 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 움직임 벡터 결정부를 포함한다. 또한, 본 발명의 장치는, 상기 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하는 기준 블록 복잡도 계산부; 상기 기준 블록 복잡도 계산부에서 계산한 블록 중에서 현재 블록에 관한 움직임 벡터의 중간값을 추정하여, 상기 추정한 움직임 벡터의 위치에서 상기 초기 minSAD가 구해질 수 있도록 상기 초기 minSAD 계산부로 출력하는 움직임 벡터 추정부; 및 상기 분할 영역 탐색부에서 제거되지 않고 남은 블록에 대하여, 상기 기준 블록 복잡도 계산부에서 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하는 후보 블록 정합 스캔부를 더 포함하는 것을 특징으로 한다.
한편, 본 발명은, 움직임을 예측하는 방법에 있어서, 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 초기minSAD계산단계; 상기 구한 초기 minSAD를 토대로 탐색 영역을 여러 개의 탐색 영역으로 분할하는 탐색영역분할단계; 상기 분할한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 분할영역탐색단계; 및 상기 제거한 후보 블록을 제외한 나머지 블록의 블록합과 상기 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 움직임벡터결정단계를 포함한다. 또한, 본 발명의 방법에서, 상기 초기minSAD계산단계는, 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하는 영상복잡도계산단계; 상기 영상 복잡도를 계산한 블록 중에서 현재 블록에 관한 움직임 벡터의 중간값을 추정하는 움직임벡터추정단계; 및 상기 추정한 움직임 벡터의 위치에서 상기 초기 minSAD를 구하는 계산 단계를 포함하는 것을 특징으로 한다. 또한, 본 발명의 방법은 상기 분할영역탐색단계에서 제거되지 않고 남은 블록에 대하여, 상기 영상복잡도계산단계에서 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하는 후보블록정합스캔단계를 더 포함하는 것을 특징으로 한다.
한편, 본 발명은, 움직임을 예측하는 장치에 있어서, 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하는 기준 블록 복잡도 계산부; 상기 기준 블록 복잡도 계산부에서 계산한 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 초기 minSAD 계산부; 상기 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 해당 블록에 관한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 영역 탐색부; 상기 영역 탐색부에서 제거되지 않고 남은 블록에 대하여, 상기 기준 블록 복잡도 계산부에서 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하는 후보 블록 정합 스캔부; 및 상기 후보 블록 정합 스캔부에서 제거한 후보 블록을 제외한 나머지 블록의 블록합과 상기 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 움직임 벡터 결정부를 포함한다.
한편, 본 발명은, 움직임을 예측하는 방법에 있어서, 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하는 영상복잡도계산단계; 상기 계산한 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 단계; 상기 구한 초기 minSAD를 토대로 해당 블록에 관한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 영역 탐색 단계; 상기 영역 탐색 단계에서 제거되지 않고 남은 블록에 대하여, 상기 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하는 후보블록정합스캔단계; 및 상기 제거한 후보 블록을 제외한 나머지 블록의 블록합과 상기 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 단계를 포함한다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
상기와 같은 본 발명은 비디오 부호화 등을 수행하는데 있어 그 움직임 예측에 사용되는 블록 정합 알고리즘의 계산량을 현저히 줄이는 효과가 있다.
또한, 본 발명은 탐색 영역을 여러 개의 영역으로 세분화한 후에 영역 단위별, 각 영역 내부에서 제안된 탐색 순서에 따라 움직임 예측을 수행함으로써 움직임이 많은 영상에 대해 그 움직임을 제대로 예측하는 효과가 있다.
또한, 본 발명은 움직임 벡터 결정에 있어 영상 복잡도에 따라 최적의 순서로 비용을 계산하여 불필요한 계산을 감소시키는 효과가 있다.
또한, 본 발명은 영상의 화질 손실없이도 계산량을 상당히 줄일 수 있으며, 움직임이 많은 영상에 있어서 보다 빠르게 최소 정합 에러를 찾을 수 있으며 결과적으로 SAD 계산량을 현저히 줄일 수 있는 효과가 있다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실 시예를 상세히 설명하기로 한다.
도 3a 및 도 3b는 본 발명에서 제시하는 알고리즘(세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 알고리즘)이 적용되는 영상의 움직임 벡터 분포를 나타낸 일실시예 그래프로서, 도 3a에는 움직임이 적은 "Akiyo" 영상[300 프레임]의 움직임 벡터 분포가, 도 3b에는 움직임이 많은 "footballⅠ" 영상[90 프레임]의 움직임 벡터 분포가 도시되어 있다.
본 발명에서 제시하는 제1 실시예, 예컨대 "탐색 영역을 여러 개의 영역으로 분할한 상태에서 나선형 탐색 순서 또는 십자형 탐색 순서에 따라 움직임을 예측하는 알고리즘"에 있어 그 적응적인 탐색 순서를 설명하면 다음과 같다.
종래 기술(고속 전영역 탐색 알고리즘)에 있어, 주로 사용되는 나선형 탐색 방식은 탐색 영역의 중심에서 시작해 탐색 지점을 나선형으로 이동하면서 그 움직임 예측을 수행한다. 이러한 나선형 탐색 방식은 최적의 움직임 벡터가 (0,0) 부근에 위치하는 경우에 효과적으로 움직임을 예측할 수 있다.
예컨대, 도 3a에 도시된 바와 같이 "Akiyo" 영상과 같은 움직임이 적은 영상의 그 움직임 벡터가 (0,0) 주위에 몰려 있는데, 이러한 경우에 기존의 나선형 탐색 방식이 매우 적은 비용으로 움직임 예측을 수행할 수 있다.
그러나, 모든 영상이 도 3a에 도시된 움직임 벡터 분포를 갖지는 않는다. 예컨대, 도 3b에 도시된 바와 같이 "footballⅠ" 영상과 같이 움직임이 많은 영상의 그 움직임 벡터가 (0,0)으로부터 멀리 떨어져 있는 부분 곳곳에 위치함을 알 수 있다. 이러한 경우에는 기존의 나선형 탐색 방식이 움직임 예측에 많은 탐색 비용이 든다.
이에, 본 발명에서는 "footballⅠ" 영상 등과 같이 움직임이 많은 영상의 그 다수의 움직임 벡터가 (0,0)으로부터 멀리 떨어져 위치하는 점을 고려해, 탐색 영역을 여러 개의 영역으로 분할한 상태에서 그 탐색 순서를 결정한다.
즉, 기존의 나선형 탐색 방식이 (0,0)에서 시작해 나선형으로 화소 단위 탐색을 수행하기 때문에 움직임이 많은 영상의 움직임 벡터를 찾는데 탐색 비용이 많이 드나, 본 발명에서 제시하는 바와 같이 탐색 영역을 여러 개의 영역으로 분할한 상태에서 탐색을 수행하면 (0,0)으로부터 멀리 떨어진 다수의 움직임 벡터를 최소 탐색 비용으로 찾는 것이 가능하다.
그렇다면, 이하 도 4 내지 도 6b를 참조해 본 발명의 제1 실시예에 따른 "탐색 영역을 여러 개의 영역으로 분할한 상태에서 그 탐색 순서를 결정하는 과정"을 설명하기로 한다.
도 4는 본 발명에서 제시하는 알고리즘에 있어 탐색 영역을 여러 개의 영역으로 분할하는 과정을 설명하기 위한 일실시예 설명도이고, 도 5는 본 발명에서 제시하는 알고리즘에 있어 도 4에서 분할한 영역들을 탐색하는 순서를 보여주기 위한 일실시예 설명도이고, 도 6a는 도 5에 도시된 각 분할 영역 내에서의 나선형 탐색 순서를 보여주기 위한 일실시예 설명도이고, 도 6b는 도 5에 도시된 각 분할 영역 내에서의 십자형 탐색 순서를 보여주기 위한 일실시예 설명도이다.
도 4에 도시된 바와 같이, 탐색 영역의 크기가 ±R인 경우, 본 발명에서는 N ×N 크기의
Figure 112007052884200-pat00021
개의 분할 영역(partitioned region)으로 그 탐색 영역을 분할한다. 여기서, 도 4에 도시된 흑색점은 각 분할 영역에 있어 그 탐색 시작점을 의미한다.
그리고 나서, 본 발명에서는 앞서 언급한 바와 같이 탐색 영역을 여러 개의 영역으로 분할한 상태에서, 여러 개의 분할된 영역 단위로 도 5에 도시된 탐색 순서대로 이동하면서 공지의 MSEA를 이용해 그 움직임 벡터 예측을 수행한다[주; 도 5에 있어 "숫자"는 탐색 순서를 의미한다].
즉, 대부분의 영상이 가로 방향 또는/및 세로 방향으로 움직임이 많다는 점에 착안해, 본 발명에서는 여러 개의 분할 영역들에 대해 도 5에 도시된 탐색 순서를 제시한다. 도 5에 도시된 바와 같이, 그 탐색 순서를 탐색 중앙점으로부터 시작해서 그 가로 방향에 위치한 지점, 그 세로 방향에 위치한 지점 및 그 대각선 방향에 위치한 지점 순서대로 탐색을 수행한다.
기존의 나선형 탐색 방식이 중앙점 (0,0)에서 시작해서 한 화소씩 나선형으로 이동하면서 움직임 예측을 수행하는데 반해, 본 발명에서는 움직임이 많은 영상에서 보다 빠르게 최소 정합 에러를 찾을 수 있을 뿐더러 결과적으로 SAD 계산에 소요되는 연산량을 현저하게 줄일 수 있다.
한편, 본 발명에서는 앞서 도 5를 참조해 설명한 여러 개로 분할한 영역들을 탐색하는 순서뿐만 아니라, 이 각 분할 영역 내에서의 탐색 순서에 대해서도 제시한다.
즉, 본 발명에서는 도 6a에 도시된 바와 같이 각 분할 영역 내에서 나선형으로 탐색을 수행하거나, 도 6b에 도시된 바와 같이 각 분할 영역 내에서 십자형, 예컨대 탐색 중앙점으로부터 시작해서 그 위쪽 방향에 위치한 지점, 그 아래쪽 방향에 위치한 지점, 그 왼쪽 방향에 위치한 지점, 그 오른쪽 방향에 위치한 지점, 그 좌상단 방향에 위치한 지점, 그 우하단 방향에 위치한 지점, 그 우상단 방향에 위치한 지점 및 그 좌하단 방향에 위치한 지점 순서대로 탐색을 수행한다. 덧붙여, 대부분의 영상이 가로 방향 또는/및 세로 방향으로 움직임이 많은 점을 고려컨대, 각 분할 영역 내에서는 도 6b에 도시된 십자형 탐색 순서의 효율이 우수하다.
일례로서, 다음의 [표 1]에서는 탐색 영역(R=16)의 분할된 영역(N=3) 내에서 나선형 탐색 순서와 십자형 탐색 순서에 따라 계산되는 전체 행의 수를 비교하였다.
덧붙여, 본 발명에서 제시하는 알고리즘들의 성능 검증에 있어, CIF 크기의 30Hz 표준 영상인 "foreman" 영상[300 프레임], "mobile" 영상[300 프레임), "footballⅠ" 영상[90 프레임], "footballⅡ" 영상[150 프레임] 및 "coastguard" 영상[300 프레임] 등을 사용하였다. 여기서, "foreman" 영상, "football I" 영상 및 "football II" 영상은 다른 영상들에 비해 움직임이 많으며, "coastguard" 영상은 특히 가로 방향으로 움직임이 많으며, "mobile" 영상은 다른 영상들에 비해 상대적으로 움직임이 적다.
Figure 112007052884200-pat00022
상기 [표 1]을 통해 알 수 있듯이, 각 분할 영역 내에서는 십자형 탐색 순서가 "coastguard" 영상을 제외한 모든 영상에 있어 나선형 탐색 순서보다 그 움직임 예측 계산에 소요되는 연산량을 감소시킴을 확인하였다. 이로서, 대부분의 영상이 가로 방향 또는/및 세로 방향으로 움직임이 많다는 전제 또한 증명됨을 알 수 있다.
도 7은 본 발명에서 제시하는 알고리즘에 있어 중간값 예측기를 이용하여 움직임 벡터를 추정하는 과정을 설명하기 위한 일실시예 설명도이다.
본 발명에서 제시하는 제2 실시예, 예컨대 "중간값 예측기를 이용해 구한 초기 minSAD를 토대로 그 영역 탐색 순서에 따라 움직임을 예측하는 알고리즘"에 있어 그 탐색 영역 내에서 최소 정합 에러를 초기에 찾아서 SAD 계산에 소요되는 연산량을 줄이는 과정을 설명하면 다음과 같다.
위에서도 언급했지만, 고속 전영역 탐색 알고리즘에 있어 무엇보다도 최대한 탐색 영역 내에서 최소 정합 에러를 초기에 찾아서 SAD 계산에 소요되는 연산량을 많이 줄이는 것이 알고리즘 성능 향상의 관건이다.
이에, 본 발명에서는 최대한 빠르게 최소 정합 에러를 초기, 예컨대 minSAD 비교 과정에 앞서 찾기 위해서 중간값 예측기(median predictor)를 이용하여 움직임 벡터를 추정(예측)한다.
도 7에는 중간값 예측기가 참조하는 움직임 벡터들의 공간적인 위치가 도시되어 있다.
도 7에 도시된 바와 같이, 이웃한 블록들간에는 움직임 연관성이 존재하는데, 이러한 사실을 토대로 현재 블록의 움직임 벡터를 효과적으로 추정하는 것이 가능하다.
즉, 각 블록이 하나의 움직임 벡터를 갖고 있는 점에 착안해, 본 발명에서는 추정되는 현재 블록의 움직임 벡터를 바로 전 블록의 움직임 벡터, 윗 블록의 움직임 벡터 및 우상단 블록의 움직임 벡터의 중간값으로 추정한다.
위와 같이 중간값 예측기를 이용해 움직임 벡터를 추정한 상태에서, 본 발명에서는 이 추정한 움직임 벡터의 위치에서 초기 minSAD를 구한 후에 그 탐색 영역에 대해 탐색을 순서대로 수행해 최종적인 움직임 벡터를 결정하면 된다.
도 8은 본 발명에서 제시하는 알고리즘에 있어 영상 복잡도를 이용해 적응적으로 후보 블록 탐색 비용을 계산하는 과정을 설명하기 위한 일실시예 설명도이다.
한편, 도 9a는 종래 기술에 따른 서브 블록 내에서의 블록 정합 스캔 순서를 보여주기 위한 일실시예 설명도이며, 도 9b는 본 발명에 따른 영상 복잡도를 이용한 서브 블록 내에서의 블록 정합 스캔 순서를 보여주기 위한 일실시예 설명도이다.
본 발명에서 제시하는 제3 실시예, 예컨대 "영상 복잡도를 이용해 계산한 후보 블록 탐색 비용을 토대로 그 영역 탐색 순서에 따라 움직임을 예측하는 알고리즘"에 있어 영상 복잡도를 이용해 적응적인 후보 블록 탐색 비용을 계산하는 과정을 설명하면 다음과 같다.
본 발명에서는 후보 블록 위치에서 정합 에러를 계산하는데 있어 정합 에러가 큰 영역부터 작은 영역 순서대로 후보 블록 탐색 비용을 계산하면 좀 더 불필요한 정합 에러 계산을 피할 수 있다는 점에 착안해, 영상 복잡도를 이용해 적응적인 후보 블록 탐색 비용을 계산하는 과정을 제시한다.
즉, 영상 복잡도를 계산하고서 그 영상 복잡도가 큰 영역부터 후보 블록 탐색 비용을 계산하기 위해, 본 발명에서는 현재 부호화할 매크로블록을 16개의 4×4 크기의 서브 블록으로 나눈 상태에서 기준 블록의 복잡도를 계산한 후에 그 부호화할 매크로블록의 영상 복잡도 크기 순서대로 후보 블록 위치에서의 정합 에러를 계산한다.
다음의 [수학식 8]은 아다마르 변환(Hadamard Transform)이다. 이러한 아다마르 변환은 덧셈과 뺄셈만으로 구성되어져 그 계산 과정이 간단하고 영상을 주파수 성분으로 분해하는 성능이 우수하다.
Figure 112007052884200-pat00023
상기 [수학식 8]에서 X는 4×4 크기의 입력 영상을, H는 입력 영상 X에 해당되는 아다마르 계수들을 의미한다.
본 발명에서는 [수학식 8]을 통해 각 서브 블록을 아다마르 변환시키는데, 이는 도 8에 도시된 아다마르 변환이 적용된 서브 블록들과 같다.
도 8에 도시된 바와 같이, 아다마르 변환을 통해 획득한 변환 계수들은 그에 대응되는 서브 블록 영상의 복잡도와 상당한 관계가 있으며, 이러한 아다마르 변환 계수를 이용하여 서브 블록 영상의 복잡도를 계산(판별)할 수 있다.
본 발명에서는, 위와 같이 [수학식 8]을 통해 획득한 AC(Alternating Current) 계수들의 절대값 합(sum of absolute AC coefficient)을 "SumAC"라고 정의하고, 도 8에 도시된 바와 같이 각 서브 블록의 DC 계수 16개를 구할 수 있고, 이 전체 DC(Direct Current) 계수의 평균을 "AverageDC"라고 정의하고, 각 서브 블록의 DC 계수를 "SubDC"라고 정의한다.
그렇다면, 본 발명에서는 상기 정의 사항을 토대로 최종 i번째 서브 블록의 영상 복잡도를 다음의 [수학식 9]를 통해 계산할 수 있다.
Figure 112009031334849-pat00024

여기서, "SumAC(i)"는 i번째 서브블록의 AC(Alternating Current) 계수들의 절대값 합, "SubDC(i)"는 i번째 서브 블록의 DC 계수를 나타낸다.
그리고서, 본 발명에서는 상기 [수학식 9]를 통해 계산한 서브 블록의 영상 복잡도를 토대로 그 영상 복잡도가 큰 순서대로 후보 블록 탐색 비용을 계산, 예컨대 "PartialSAD"를 계산한다[블록 정합 스캔 순서].
도 9b에는 위와 같은 과정이 적용된 서브 블록 내에서의 블록 정합 스캔 순 서가 도시되어 있는데, 이는 도 9a에 도시된 기존의 순차적 블록 정합 스캔 순서에 비해 적은 후보 블록 탐색 비용으로도 움직임 예측을 효율적으로 수행할 수 있다[주; 도 9a 및 도 9b 각각에 있어 "숫자"는 블록 정합 스캔 순서를 의미한다].
도 3a 내지 도 9b를 참조해 설명한 본 발명의 제1 실시예, 제2 실시예 및 제3 실시예를 모두 결합시키거나 그 중에서 선택적으로 결합시켜 움직임 예측 알고리즘을 수행할 수도 있다.
예컨대, 이하 후술할 본 발명의 제4 실시예에서는, 본 발명의 제3 실시예에서 제시한 영상 복잡도 계산 과정, 본 발명의 제2 실시예에서 제시한 중간값 예측 과정 및 본 발명의 제1 실시예에서 제시한 탐색 영역 분할 과정을 토대로 그 서브 블록 탐색 순서에 따라 움직임 벡터를 결정한다.
이하, 본 발명의 제4 실시예에 대해서는 본 발명의 제1 실시예, 제2 실시예 및 제3 실시예를 모두 결합시킨 구성으로서 설명하기로 하며, 이러한 장치에 대해서는 도 10을, 이러한 방법에 대해서는 도 11을 각각 참조하여 후술하기로 한다.
도 10은 본 발명에 따른 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치에 대한 일실시예 구성도이다.
도 10에 도시된 바와 같이, 본 발명에 따른 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치[제4 실시예]는 기준 블록 복잡도 계산부(11), 움직임 벡터 추정부(12), 초기 minSAD 계산부(13), 탐색 영역 분할부(14), 분할 영역 탐색부(15), 후보 블록 정합 스캔부(16) 및 움직임 벡터 결정부(17)를 포함한다.
본 발명의 제4 실시예에서 제시하는 장치는 MSEA를 기반으로 하여, 예컨대 초기 minSAD를 토대로 그 움직임 예측[움직임 벡터 결정]을 수행한다.
상기 기준 블록 복잡도 계산부(11)는 외부로부터 입력받은 영상에 대해 그 현재 프레임 상의 기준 블록의 영상 복잡도를 계산한다. 예컨대, 본 발명에서는 현재 부호화할 매크로블록을 16개의 4×4 크기의 서브 블록으로 나눈 상태에서 기준 블록의 영상 복잡도를 상기 [수학식 9]를 통해 계산한다.
상기 움직임 벡터 추정부(12)는 기준 블록 복잡도 계산부(11)에서 서브 블록으로 나눈 블록에 대해 중간값 예측기를 이용해 현재 블록의 움직임 벡터를 바로 전 블록의 움직임 벡터, 윗 블록의 움직임 벡터 및 우상단 블록의 움직임 벡터의 중간값으로 추정한다.
상기 초기 minSAD 계산부(13)는 움직임 벡터 추정부(12)에서 추정한 움직임 벡터의 위치에서 초기 minSAD를 구한다.
상기 탐색 영역 분할부(14)는 초기 minSAD 계산부(13)에서 구한 초기 minSAD를 토대로 그 탐색 영역의 크기가 ±R인 경우에 N×N 크기의
Figure 112007052884200-pat00025
개의 분할 영역(partitioned region)으로 그 탐색 영역을 분할한다.
상기 분할 영역 탐색부(15)는 탐색 영역 분할부(14)에서 분할한 영역에 대해 탐색을 수행하는데, 1차적으로는 상기 여러 개로 분할된 영역 단위로 이동하면서 탐색을 수행하고서, 2차적으로는 각 분할된 영역 내에서 이동하면서 탐색을 수행한다.
예컨대, 본 발명에 있어 대부분의 영상이 가로 방향 또는/및 세로 방향으로 움직임이 많다는 점에 착안해, 분할 영역 탐색부(15)에서는 여러 개로 분할된 영역에 관한 1차 탐색 순서를 탐색 중앙점으로부터 시작해서 그 가로 방향에 위치한 지점, 그 세로 방향에 위치한 지점 및 그 대각선 방향에 위치한 지점 순서대로 결정해 그 탐색을 수행한다.
그리고, 상기 분할 영역 탐색부(15)에서는 각 분할된 영역 내부에 관한 2차 탐색 순서를 나선형 탐색 순서 또는 십자형 탐색 순서로 결정해 그 탐색을 수행한다. 바람직하게는, 대부분의 영상이 가로 방향 또는/및 세로 방향으로 움직임이 많다는 점에 착안해, 분할 영역 탐색부(15)에서는 각 분할된 영역 내부에 관한 2차 탐색 순서를 십자형 탐색 순서, 예컨대 탐색 중앙점으로부터 시작해서 그 위쪽 방향에 위치한 지점, 그 아래쪽 방향에 위치한 지점, 그 왼쪽 방향에 위치한 지점, 그 오른쪽 방향에 위치한 지점, 그 좌상단 방향에 위치한 지점, 그 우하단 방향에 위치한 지점, 그 우상단 방향에 위치한 지점 및 그 좌하단 방향에 위치한 지점 순서대로 결정해 그 탐색을 수행한다.
상기 후보 블록 정합 스캔부(16)는 분할 영역 탐색부(15)에서 탐색한 결과를 토대로 기준 블록 복잡도 계산부(11)에서 계산한 영상 복잡도 순서, 예컨대 영상 복잡도가 큰 서브 블록부터 영상 복잡도가 작은 서브 블록 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거한다. 바람직하게는, 이러한 후보 블록 정합 스캔부(16)는 분할 영역 탐색부(15)에서 MSEA의 레벨 3까지 탐색을 수행한 결과로도 제거되지 못한 후보 블록에 대해 그 블록 정합 스캔을 수행한다. 또한, 여기 서의 블록 정합 스캔은 후보 블록 탐색 비용을 계산, 예컨대 "PartialSAD"를 계산하는 것이다.
상기 움직임 벡터 결정부(17)는 후보 블록 정합 스캔부(16)에서 제거한 후보 블록을 제외한 나머지 블록의 블록합과 초기 minSAD 계산부(13)에서 계산한 minSAD간을 비교하여 최종적인 움직임 벡터를 결정한다. 여기서, 움직임 벡터 결정부(17)에서는 그 블록합이 minSAD보다 작거나 같은 위치에 대응되는 움직임 벡터를 최종적인 움직임 벡터로 결정한다.
도 11은 본 발명에 따른 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법에 대한 일실시예 흐름도이다.
외부로부터 영상을 입력받으면 이 영상에 대해 그 현재 프레임 상의 기준 블록의 영상 복잡도를 계산한다(201, 202). 이때, 현재 부호화할 매크로블록을 16개의 4×4 크기의 서브 블록으로 나눈 상태에서 기준 블록의 영상 복잡도를 상기 [수학식 9]를 통해 계산한다.
그리고서, 상기 서브 블록으로 나뉘어진 블록에 대해 중간값 예측기를 이용해 현재 블록의 움직임 벡터를 바로 전 블록의 움직임 벡터, 윗 블록의 움직임 벡터 및 우상단 블록의 움직임 벡터의 중간값으로 추정한다(203).
그리고서, 상기 추정한 움직임 벡터의 위치에서 초기 minSAD를 구한다(204).
그런 후, 상기 구한 초기 minSAD를 토대로 그 탐색 영역의 크기가 ±R인 경우에 N×N 크기의
Figure 112007052884200-pat00026
개의 분할 영역(partitioned region)으로 그 탐색 영역을 분할한다(205).
위와 같이 탐색 영역을 분할한 상태에서, 1차적으로는 상기 여러 개로 분할된 영역 단위로 이동하면서 탐색을 수행하고서(206), 2차적으로는 각 분할된 영역 내에서 이동하면서 탐색을 수행한다(207). 이때, 여러 개로 분할된 영역에 관한 1차 탐색 순서를 탐색 중앙점으로부터 시작해서 그 가로 방향에 위치한 지점, 그 세로 방향에 위치한 지점 및 그 대각선 방향에 위치한 지점 순서대로 결정해 그 탐색을 수행한다. 그리고, 각 분할된 영역 내부에 관한 2차 탐색 순서를 나선형 탐색 순서 또는 십자형 탐색 순서로 결정해 그 탐색을 수행한다. 바람직하게는, 각 분할된 영역 내부에 관한 2차 탐색 순서를 십자형 탐색 순서, 예컨대 탐색 중앙점으로부터 시작해서 그 위쪽 방향에 위치한 지점, 그 아래쪽 방향에 위치한 지점, 그 왼쪽 방향에 위치한 지점, 그 오른쪽 방향에 위치한 지점, 그 좌상단 방향에 위치한 지점, 그 우하단 방향에 위치한 지점, 그 우상단 방향에 위치한 지점 및 그 좌하단 방향에 위치한 지점 순서대로 결정해 그 탐색을 수행한다.
그런 후, 상기 탐색한 결과를 토대로 상기 계산한 영상 복잡도 순서, 예컨대 영상 복잡도가 큰 서브 블록부터 영상 복잡도가 작은 서브 블록 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거한다(208). 바람직하게는, MSEA의 레벨 3까지 탐색을 수행한 결과로도 제거되지 못한 후보 블록에 대해 그 블록 정합 스캔을 수행한다. 또한, 여기서의 블록 정합 스캔은 후보 블록 탐색 비용을 계산, 예컨대 "PartialSAD"를 계산하는 것이다.
마지막으로, 상기 제거한 후보 블록을 제외한 나머지 블록의 블록합과 초기 minSAD간을 비교하여 움직임 벡터를 결정한다(209). 이때, 그 블록합이 minSAD보다 작거나 같은 위치에 대응되는 움직임 벡터를 최종적인 움직임 벡터로 결정한다.
한편, 전술한 본 발명의 제1 실시예에 따른 장치는 초기 minSAD 계산부, 탐색 영역 분할부, 분할 영역 탐색부 및 움직임 벡터 결정부로 구성된다.
상기 초기 minSAD 계산부는 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록에 관한 움직임 벡터의 위치에서 초기 minSAD를 구하고, 상기 탐색 영역 분할부는 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 탐색 영역을 여러 개의 탐색 영역으로 분할하고, 상기 분할 영역 탐색부는 탐색 영역 분할부에서 분할한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하고, 상기 움직임 벡터 결정부는 분할 영역 탐색부에서 제거한 후보 블록을 제외한 나머지 블록의 블록합과 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여 움직임 벡터를 결정한다. 한편, 이러한 본 발명의 제1 실시예에 따른 방법도 이와 같은 과정을 수행하기에 별도의 설명을 생략하기로 한다.
한편, 전술한 본 발명의 제2 실시예에 따른 장치는 움직임 벡터 추정부, 초기 minSAD 계산부, 영역 탐색부 및 움직임 벡터 결정부로 구성된다.
상기 움직임 벡터 추정부는 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록에 관한 움직임 벡터의 중간값을 추정하고, 상기 초기 minSAD 계산부는 움직임 벡터 추정부에서 추정한 움직임 벡터의 위치에서 초기 minSAD를 구하고, 상기 영역 탐색부는 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 해당 블록에 관한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하고, 움직임 벡터 결정부는 영역 탐색부에서 제거한 후보 블록을 제외한 나머지 블록의 블록합과 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여 움직임 벡터를 결정한다. 한편, 이러한 본 발명의 제2 실시예에 따른 방법도 이와 같은 과정을 수행하기에 별도의 설명을 생략하기로 한다.
한편, 전술한 본 발명의 제3 실시예에 따른 장치는 기준 블록 복잡도 계산부, 초기 minSAD 계산부, 영역 탐색부, 후보 블록 정합 스캔부 및 움직임 벡터 결정부로 구성된다.
상기 기준 블록 복잡도 계산부는 외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하고, 상기 초기 minSAD 계산부는 기준 블록 복잡도 계산부에서 계산한 블록에 관한 움직임 벡터의 위치에서 초기 minSAD를 구하고, 상기 영역 탐색부는 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 해당 블록에 관한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하고, 상기 후보 블록 정합 스캔부는 영역 탐색부에서 탐색한 결과를 토대로 기준 블록 복잡도 계산부에서 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하고, 상기 움직임 벡터 결정부는 후보 블록 정합 스캔부에서 제거한 후보 블록을 제외한 나머지 블록의 블록합과 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여 움직임 벡터를 결정한다. 한편, 이러한 본 발명의 제3 실시예에 따른 방법도 이와 같은 과정을 수행하기에 별도의 설명을 생략하기로 한다.
도 12a 내지 도 12e는 본 발명에서 제시한 알고리즘 성능을 보여주기 위한 일실시예 그래프이다.
이하에서는 도 12a 내지 도 12e와, [표 2] 내지 [표 10]을 참조하여 본 발명에서 제시한 제1 알고리즘, 제2 알고리즘, 제3 알고리즘 및 제4 알고리즘의 각 성능 검증 결과에 대해 후술한다.
덧붙여, 본 발명에서 제시한 알고리즘 성능 검증에는 앞서 언급했던 CIF 크기의 30Hz 표준 영상인 "foreman" 영상[300 프레임], "mobile" 영상[300 프레임), "footballⅠ" 영상[90 프레임], "footballⅡ" 영상[150 프레임] 및 "coastguard" 영상[300 프레임] 등을 사용하였다.
또한, 본 발명에서 제시한 알고리즘 성능 검증 결과값은 PSNR(Peek Signal to Noise Rate), 테스트 영상의 전체 프레임에서 SAD 계산에 소요되는 연산 횟수(이하 "SAD 계산 횟수"라고도 함), 다른 후보 블록을 탐색하는 횟수(early termination) 및 계산되는 전체 행의 횟수로 나타내었다.
또한, 본 발명에서 제시한 알고리즘 성능 검증에서는 기존의 33×33 크기의 탐색 영역을 121개의 3×3 블록으로 분할한 상태에서 고속 전영역 탐색 알고리즘을 수행하였다.
도 12a는 기존의 MSEA 대비 본 발명에서 제시한 알고리즘(특히 제3 알고리즘) 각각에 있어 "foreman" 영상의 각 행에서 제거되는 행의 수를 로그 스케일로 나타낸 그래프이고, 도 12b는 기존의 MSEA 대비 본 발명에서 제시한 알고리즘 각각에 있어 "mobile" 영상의 각 행에서 제거되는 행의 수를 로그 스케일로 나타낸 그래프이고, 도 12c는 기존의 MSEA 대비 본 발명에서 제시한 알고리즘 각각에 있어 "footballⅠ" 영상의 각 행에서 제거되는 행의 수를 로그 스케일로 나타낸 그래프 이고, 도 12d는 기존의 MSEA 대비 본 발명에서 제시한 알고리즘 각각에 있어 "footballⅡ" 영상의 각 행에서 제거되는 행의 수를 로그 스케일로 나타낸 그래프이고, 도 12e는 기존의 MSEA 대비 본 발명에서 제시한 알고리즘 각각에 있어 "coastguard" 영상의 각 행에서 제거되는 행의 수를 로그 스케일로 나타낸 그래프이다.
도 12a 내지 도 12e를 통해 알 수 있듯이, 본 발명에서 제시한 제3 알고리즘이 기존의 MSEA보다 불가능한 후보 블록들을 빨리 제거(early termination)함을 확인하였다. 예컨대, 본 발명에서는 크기가 작은 행에서 다수의 후보 블록들이 일찍 제거되며, 크기가 큰 행에서는 기존 알고리즘들에 비해 적은 수의 후보 블록들이 제거된다. 이로서 움직임 예측 계산에 소요되는 전체 연산량을 상당히 줄일 수 있겠다.
그럼, 이하 본 발명에서 제시한 각 알고리즘에 대해 그 성능을 검증하기로 한다.
먼저, 본 발명에서 제시한 제1 알고리즘에 대해 그 성능을 검증한다.
본 발명 대비 기존의 알고리즘들[나선형 전영역 탐색 알고리즘(spiral FS), 나선형 MSEA]의 성능을 검증하는데 있어 모든 조건은 동일하게 하고 탐색 순서만 바꾸어 그 성능을 검증한다.
하기의 [표 2]는 "foreman" 영상의 각 행에서 제거되는 횟수 및 SAD 계산 횟수를 나타낸 표이고, [표 3]은 "mobile" 영상의 각 행에서 제거되는 횟수 및 SAD 계산 횟수를 나타낸 표이고, [표 4]는 "footballⅠ" 영상의 각 행에서 제거되는 횟 수 및 SAD 계산 횟수를 나타낸 표이고, [표 5]는 "footballⅡ" 영상의 각 행에서 제거되는 횟수 및 SAD 계산 횟수를 나타낸 표이고, [표 6]은 "coastguard" 영상의 각 행에서 제거되는 횟수 및 SAD 계산 횟수를 나타낸 표이다.
하기의 [표 2] 내지 [표 6]에 보이는 바와 같이, 15가지 행(Line)의 수치값은 행 단위 PDE 알고리즘을 사용하는 과정에서 각 행에서의 PartialSAD와 기존의 minSAD를 비교하였을 때 PartialSAD가 큰 경우의 횟수를 나타낸다. 예를 들어, 행 5의 경우에 있어서는 블록 내에서 5번째 행까지의 PartialSAD가 minSAD보다 큰 경우의 횟수를 나타낸다.
Figure 112007052884200-pat00027
Figure 112007052884200-pat00028
Figure 112007052884200-pat00029
Figure 112007052884200-pat00030
Figure 112007052884200-pat00031
상기 [표 2] 내지 [표 6]을 통해 알 수 있듯이, PartialSAD가 minSAD보다 크게 되면 더 이상의 탐색 비용 계산을 수행할 필요가 없어진다. 이는 본 발명이 불가능한 후보 블록을 쉽게 판단할 수 있으며, 특히 작은 행(Line1, Line2,…)에서 제거될수록 불필요한 연산량을 줄일 수 있다.
또한, 모든 영상에서 화질의 열화없이 SAD 계산량이 현저히 줄어드는 것을 확인할 수 있다.
덧붙여, [표 2] 내지 [표 6]에 있어 본 발명, 기존의 알고리즘들[나선형 전영역 탐색 알고리즘(spiral FS), 나선형 MSEA]은 탐색 영역의 중심(0,0)에서 초기 minSAD를 갖고서 움직임 예측을 수행하는데, 본 발명에서는 모든 조건이 동일한 상황에서도 세분화한 탐색 영역 및 이를 제안하는 순서대로 탐색을 수행함으로서 계산량을 상당히 줄일 수 있음을 확인하였다.
[표 2] 내지 [표 6]을 정리하면, 나선형 전영역 탐색 알고리즘은 제거되는 행의 횟수가 많은 반면에, 본 발명에서는 레벨을 통해 불가능한 후보 블록들을 많이 제거하기 때문에 그 제거되는 행의 횟수가 적은 것도 확인하였다.
하기의 [표 7]은 본 발명 대비 기존의 알고리즘들[나선형 전영역 탐색 알고리즘(spiral FS), 나선형 MSEA]의 전체 행 계산 횟수 및 SAD 계산량 감소율(%)을 나타낸 표이다.
Figure 112007052884200-pat00032
상기 [표 7]은 다음의 [수학식 10]에 보이는 바와 같이, 1~16까지의 행 크기를 가중치로 하여 상기 [표 2] 내지 [표 6]에서의 각 행에 해당되는 수치값을 곱하여 누적한 값을 나타낸다.
Figure 112007052884200-pat00033
상기 [수학식 10]에서 i는 블록 내에서 i번째 행, 예컨대 행의 크기를 의미한다.
상기 [수학식 10]을 통해 테스트 영상의 모든 프레임에서 계산되어지는 전체 행의 횟수를 획득할 수 있다. 이러한 값이 작을수록 SAD 계산량이 줄어드는 것을 의미하는데, 본 발명에서는 이 값을 SAD 계산량의 척도로 사용한다.
상기 [표 7]을 정리하면, 본 발명에서는 기존 알고리즘들과 모든 조건을 동 일하게 설정한 경우에 있어서 그 탐색 순서만을 변경하는 것으로서 각 영상의 SAD 계산량을 현저히 감소시킴을 확인하였다.
예컨대, "foreman" 영상, "footballⅠ" 영상과 같은 움직임이 많은 영상은 움직임 벡터가 탐색 영역의 중심에서 멀리 존재할 가능성이 높기 때문에 기존의 나선형 탐색 알고리즘을 사용하면 불필요한 후보 블록의 SAD 계산을 수행하게 되어져 SAD 계산량이 증가한다. 이에 반해, 본 발명에서는 분할된 영역별로 탐색을 수행하기 때문에 보다 넓은 영역을 좀 더 빨리 탐색함으로서 SAD 계산량을 감소시킬 수 있는 것이다.
또한, 앞서 언급한 움직임이 많은 영상뿐만 아니라 움직임이 적은 영상들에 있어서도, 본 발명을 사용하게 되면 31~54%의 SAD 계산량 감소를 얻을 수 있었다.
다음으로, 본 발명에서 제시한 제2 알고리즘에 대해 그 성능을 검증하기로 하며, 기존의 MSEA를 그 알고리즘 성능 검증 대상으로 삼았다.
하기의 [표 8]은 본 발명 대비 기존 MSEA 각각에 있어 전체 행 계산 횟수 및 계산량 감소율(%)을 나타낸다.
Figure 112007052884200-pat00034
상기 [표 8]을 통해 알 수 있듯이, 본 발명에서는 최적의 초기 minSAD를 구하는 것이 가능하며, 이 초기 minSAD를 토대로 많은 수의 불가능한 후보 블록들을 일찍 제거할 수 있다.
예컨대, PDE 알고리즘을 사용할 때 비교하는 초기 minSAD가 원래의 minSAD와 비슷하기 때문이다. 따라서, 본 발명에서는 모든 영상에서 전체 행 계산량이 감소하는 것을 확인할 수 있으며, 영상에 따라 25~61%의 계산량을 감소시킬 수 있었다.
다음으로, 본 발명에서 제시한 제3 알고리즘에 대해 그 성능을 검증하기로 하며, 기존의 MSEA를 그 알고리즘 성능 검증 대상으로 삼았다.
하기의 [표 9]는 본 발명 대비 기존 MSEA 각각에 있어 전체 서브 블록 계산량 및 계산량 감소율(%)을 나타낸다.
Figure 112007052884200-pat00035
상기 [표 9]를 통해 알 수 있듯이, 본 발명이 모든 영상에 대해 기존의 MSEA보다 적은 계산량으로 움직임 예측을 수행할 수 있음을 확인하였다. 예컨대, 본 발명에서는 영상 복잡도를 토대로 그 복잡한 서브 블록 순서대로 탐색을 수행함으로서 불가능한 후보 블록들을 일찍 제거할 수 있는 것이며, 영상에 따라 35~61%의 전체 서브 블록 계산량 감소를 확인하였다.
마지막으로, 전술한 제1 알고리즘, 제2 알고리즘 및 제3 알고리즘을 결합시킨 본 발명의 제4 알고리즘에 대해 그 성능을 검증하기로 하며, 기존의 알고리즘들[나선형 전영역 탐색 알고리즘(spiral FS), 나선형 MSEA]를 그 알고리즘 성능 검증 대상으로 삼았다.
하기의 [표 10]은 나선형 전영역 탐색 알고리즘을 기준으로 하여 나선형 MSEA 및 본 발명 각각의 전체 행 계산량을 비교한 표이다.
Figure 112007052884200-pat00036
상기 [표 10]을 통해 알 수 있듯이, 본 발명이 기존 알고리즘들에 비해 전체 행 계산량을 가장 많이 감소시킴을 확인할 수 있었으며, 특히 기존의 나선형 전영역 탐색 알고리즘에 비해 모든 영상에 있어 92% 이상의 계산량 감소를 보이고 있다.
또한, 움직임이 많은 "footballⅠ" 영상과 "foreman" 영상에 있어 본 발명이 다른 알고리즘에 비해 더욱 좋은 성능을 보임을 확인할 수 있으며, 이는 본 발명이 특히 움직임이 많은 영상에 적합함을 의미한다. 물론, 움직임이 상대적으로 적은 "mobile" 영상과 "coastguard" 영상에 있어서도 본 발명이 전체 행 계산량을 99% 이상 감소시킴을 확인하였다.
본 발명의 다양한 알고리즘에 대해 종합해 보면, 탐색 영역을 여러개의 N×N 분할 영역으로 나눈 상태에서 고속 전영역 탐색을 수행함으로서 기존 알고리즘들의 국소적인 특성을 개선하는 것이 가능해졌다.
또한, 본 발명에서는 탐색 영역 내에서 분할된 영역들의 탐색 순서와 각각의 분할 영역 내에서의 탐색 순서를 제안함으로서 최소 정합 에러를 구하는데 필요한 계산량을 기존의 나선형 전영역 탐색 알고리즘 대비 최대 99%까지 줄일 수 있었다.
또한, 본 발명에서는 여러 개의 블록 단위로 탐색하는 것이 화소 단위로 탐색하는 것보다 큰 간격으로 탐색을 수행하기 때문에 움직임이 많은 영상에 적용하면 화질 열화없이 계산량을 상당히 줄일 수 있었으며, 이는 움직임이 많은 영상에 대해 더욱 많은 양의 계산이 줄어듬을 확인하였다.
또한, 본 발명에서는 최적의 초기 최소 비용을 구하였으며 기존의 행 단위 PDE 알고리즘 대신 영상의 복잡도를 고려하여 복잡한 영역 순서대로 PDE 알고리즘을 수행함으로서 불가능한 후보 블록들을 일찍 제거할 수 있었으며, 이로부터 불필요한 계산량을 최대한 줄일 수 있었다.
전술한 바와 같은 본 발명은 H.264/AVC, MPEG-2 등 비디오 부호화, 동영상 압축 등에 적용할 수 있으며, DMB, DTV 등과 같은 동영상 코덱칩에 적용해 그 성능을 백분 발휘할 수 있을 것으로 기대된다.
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
도 1은 종래 기술(SEA)에 따른 고속 전영역 탐색 알고리즘에 있어 블록합 고속 계산 과정을 설명하기 위한 일실시예 설명도,
도 2는 종래 기술(MSEA)에 따른 고속 전영역 탐색 알고리즘에 있어 각 레벨에서의 서브 블록 크기를 보여주기 위한 일실시예 설명도,
도 3a 및 도 3b는 본 발명에서 제시하는 알고리즘(세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 알고리즘)이 적용되는 영상의 움직임 벡터 분포를 나타낸 일실시예 그래프,
도 4는 본 발명에서 제시하는 알고리즘에 있어 탐색 영역을 여러 개의 영역으로 분할하는 과정을 설명하기 위한 일실시예 설명도,
도 5는 본 발명에서 제시하는 알고리즘에 있어 도 4에서 분할한 영역들을 탐색하는 순서를 보여주기 위한 일실시예 설명도,
도 6a는 도 5에 도시된 각 분할 영역 내에서의 나선형 탐색 순서를 보여주기 위한 일실시예 설명도,
도 6b는 도 5에 도시된 각 분할 영역 내에서의 십자형 탐색 순서를 보여주기 위한 일실시예 설명도,
도 7은 본 발명에서 제시하는 알고리즘에 있어 중간값 예측기를 이용하여 움직임 벡터를 추정하는 과정을 설명하기 위한 일실시예 설명도,
도 8은 본 발명에서 제시하는 알고리즘에 있어 영상 복잡도를 이용하여 적응적으로 후보 블록 탐색 비용을 계산하는 과정을 설명하기 위한 일실시예 설명도,
도 9a는 종래 기술에 따른 서브 블록 내에서의 블록 정합 스캔 순서를 보여주기 위한 일실시예 설명도,
도 9b는 본 발명에 따른 영상 복잡도를 이용한 서브 블록 내에서의 블록 정합 스캔 순서를 보여주기 위한 일실시예 설명도,
도 10은 본 발명에 따른 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치에 대한 일실시예 구성도,
도 11은 본 발명에 따른 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법에 대한 일실시예 흐름도,
도 12a 내지 도 12e는 본 발명에서 제시한 알고리즘 성능을 보여주기 위한 일실시예 그래프이다.
* 도면의 주요 부분에 대한 부호 설명
11 : 기준 블록 복잡도 계산부 12 : 움직임 벡터 추정부
13 : 초기 minSAD 계산부 14 : 탐색 영역 분할부
15 : 분할 영역 탐색부 16 : 후보 블록 정합 스캔부
17 : 움직임 벡터 결정부

Claims (36)

  1. 움직임을 예측하는 장치에 있어서,
    외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 초기 minSAD 계산부;
    상기 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 탐색 영역을 여러 개의 탐색 영역으로 분할하는 탐색 영역 분할부;
    상기 탐색 영역 분할부에서 분할한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 분할 영역 탐색부; 및
    상기 제거된 후보 블록을 제외한 나머지 블록의 블록합과 상기 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 움직임 벡터 결정부
    를 포함하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  2. 제 1 항에 있어서,
    상기 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하는 기준 블록 복잡도 계산부; 및
    상기 기준 블록 복잡도 계산부에서 계산한 블록 중에서 현재 블록에 관한 움직임 벡터의 중간값을 추정하여, 상기 추정한 움직임 벡터의 위치에서 상기 초기 minSAD가 구해질 수 있도록 상기 초기 minSAD 계산부로 출력하는 움직임 벡터 추정부
    를 더 포함하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  3. 제 2 항에 있어서,
    상기 분할 영역 탐색부에서 제거되지 않고 남은 블록에 대하여, 상기 기준 블록 복잡도 계산부에서 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하는 후보 블록 정합 스캔부
    를 더 포함하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  4. 제 3 항에 있어서,
    상기 기준 블록 복잡도 계산부는,
    현재 부호화할 매크로블록을 여러 개의 서브 블록으로 나눈 상태에서 기준 블록의 영상 복잡도를 계산하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  5. 제 3 항에 있어서,
    상기 움직임 벡터 추정부는,
    상기 기준 블록 복잡도 계산부에서 서브 블록으로 나눈 블록에 대해 중간값 예측기를 이용해 현재 블록의 움직임 벡터를 바로 전 블록의 움직임 벡터, 윗 블록의 움직임 벡터 및 우상단 블록의 움직임 벡터의 중간값으로 추정하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  6. 제 1 항에 있어서,
    상기 탐색 영역 분할부는,
    상기 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 탐색 영역의 크기가 ±R인 경우에 N×N 크기의
    Figure 112009031334849-pat00037
    개의 분할 영역으로 탐색 영역을 분할하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 분할 영역 탐색부는,
    상기 탐색 영역 분할부에서 분할한 영역에 대해 1차적으로는 여러 개로 분할된 영역 단위로 이동하면서 탐색을 수행하고서, 2차적으로는 각 분할된 영역 내에서 이동하면서 탐색을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  8. 제 7 항에 있어서,
    상기 분할 영역 탐색부는,
    여러 개로 분할된 영역에 관한 1차 탐색 순서를, 탐색 중앙점으로부터 시작해서 가로 방향에 위치한 지점, 세로 방향에 위치한 지점 및 대각선 방향에 위치한 지점 순서대로 결정해 탐색을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  9. 제 7 항에 있어서,
    상기 분할 영역 탐색부는,
    각 분할된 영역 내부에 관한 2차 탐색 순서를, 탐색 중앙점으로부터 시작해서 위쪽 방향에 위치한 지점, 아래쪽 방향에 위치한 지점, 왼쪽 방향에 위치한 지점, 오른쪽 방향에 위치한 지점, 좌상단 방향에 위치한 지점, 우하단 방향에 위치한 지점, 우상단 방향에 위치한 지점 및 좌하단 방향에 위치한 지점 순서대로 결정해 탐색을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  10. 제 3 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 후보 블록 정합 스캔부는,
    상기 분할 영역 탐색부에서 탐색한 결과를 토대로 상기 기준 블록 복잡도 계산부에서 계산한 영상 복잡도 순서를 통해 영상 복잡도가 큰 서브 블록부터 영상 복잡도가 작은 서브 블록 순서대로 블록 정합 스캔을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  11. 제 10 항에 있어서,
    상기 후보 블록 정합 스캔부는,
    상기 분할 영역 탐색부에서 다단계 연속 제어 알고리즘(MSEA: Multilevel Successive Elimination Algorithm)의 레벨 3까지 탐색을 수행한 결과로도 제거되지 않은 후보 블록에 대해 블록 정합 스캔을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  12. 제 3 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 움직임 벡터 결정부는,
    상기 후보 블록 정합 스캔부에서 제거한 후보 블록을 제외한 나머지 블록의 블록합과 상기 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여, 블록합이 minSAD보다 작거나 같은 위치에 대응되는 움직임 벡터를 최종적인 움직임 벡터로 결정하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  13. 움직임을 예측하는 방법에 있어서,
    외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 초기minSAD계산단계;
    상기 구한 초기 minSAD를 토대로 탐색 영역을 여러 개의 탐색 영역으로 분할하는 탐색영역분할단계;
    상기 분할한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 분할영역탐색단계; 및
    상기 제거한 후보 블록을 제외한 나머지 블록의 블록합과 상기 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 움직임벡터결정단계
    를 포함하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
  14. 제 13 항에 있어서,
    상기 초기minSAD계산단계는,
    외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하는 영상복잡도계산단계;
    상기 영상 복잡도를 계산한 블록 중에서 현재 블록에 관한 움직임 벡터의 중간값을 추정하는 움직임벡터추정단계; 및
    상기 추정한 움직임 벡터의 위치에서 상기 초기 minSAD를 구하는 계산 단계
    를 포함하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
  15. 제 14 항에 있어서,
    상기 분할영역탐색단계에서 제거되지 않고 남은 블록에 대하여, 상기 영상복잡도계산단계에서 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하는 후보블록정합스캔단계
    를 더 포함하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
  16. 제 15 항에 있어서,
    상기 영상복잡도계산단계는,
    다음의 [수학식]을 사용해 영상 복잡도(Complexity of Sub-block)를 계산하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
    [수학식]
    Figure 112009031334849-pat00038
    여기서, "SumAC(i)"는 i번째 서브블록의 AC(Alternating Current) 계수들의 절대값 합, "AverageDC"는 서브블록의 DC(Direct Current) 계수의 평균, "SubDC(i)"는 i번째 서브 블록의 DC 계수를 나타냄.
  17. 제 15 항에 있어서,
    상기 움직임벡터추정단계는,
    현재 블록의 움직임 벡터를 바로 전 블록의 움직임 벡터, 윗 블록의 움직임 벡터 및 우상단 블록의 움직임 벡터의 중간값으로 추정하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
  18. 제 13 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 분할영역탐색단계는,
    복수 개로 분할된 영역에 대하여 탐색('1차 탐색')을 수행한 후, 각 분할된 영역 내부에 대하여 탐색('2차 탐색')을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
  19. 제 18 항에 있어서,
    상기 1차 탐색은,
    탐색 중앙점으로부터 시작해서 가로 방향에 위치한 지점, 세로 방향에 위치한 지점 및 대각선 방향에 위치한 지점의 순서대로 탐색을 수행하고;
    상기 2차 탐색은,
    상기 탐색 중앙점으로부터 시작해서 위쪽 방향에 위치한 지점, 아래쪽 방향에 위치한 지점, 왼쪽 방향에 위치한 지점, 오른쪽 방향에 위치한 지점, 좌상단 방향에 위치한 지점, 우하단 방향에 위치한 지점, 우상단 방향에 위치한 지점 및 좌하단 방향에 위치한 지점의 순서대로 탐색을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
  20. 제 15 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 후보블록정합스캔단계는,
    다음의 [수학식]을 사용해 후보 블록 탐색 비용을 계산하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
    [수학식]
    Figure 112009031334849-pat00039
    여기서, PartialSAD(k)는 k번째 행까지 계산한 절대오차 합(SAD),
    Figure 112009031334849-pat00040
    는 기준 블록의 화소값,
    Figure 112009031334849-pat00041
    는 (x,y) 위치에서 후보 블록의 화소값을 나타냄.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 움직임을 예측하는 장치에 있어서,
    외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하는 기준 블록 복잡도 계산부;
    상기 기준 블록 복잡도 계산부에서 계산한 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 초기 minSAD 계산부;
    상기 초기 minSAD 계산부에서 구한 초기 minSAD를 토대로 해당 블록에 관한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 영역 탐색부;
    상기 영역 탐색부에서 제거되지 않고 남은 블록에 대하여, 상기 기준 블록 복잡도 계산부에서 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하는 후보 블록 정합 스캔부; 및
    상기 후보 블록 정합 스캔부에서 제거한 후보 블록을 제외한 나머지 블록의 블록합과 상기 초기 minSAD 계산부에서 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 움직임 벡터 결정부
    를 포함하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  27. 제 26 항에 있어서,
    상기 기준 블록 복잡도 계산부는,
    현재 부호화할 매크로블록을 여러 개의 서브 블록으로 나눈 상태에서 기준 블록의 영상 복잡도를 계산하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  28. 제 26 항 또는 제 27 항에 있어서,
    상기 후보 블록 정합 스캔부는,
    상기 영역 탐색부에서 탐색한 결과를 토대로 상기 기준 블록 복잡도 계산부에서 계산한 영상 복잡도 순서를 통해 영상 복잡도가 큰 서브 블록부터 영상 복잡도가 작은 서브 블록 순서대로 블록 정합 스캔을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  29. 제 28 항에 있어서,
    상기 후보 블록 정합 스캔부는,
    상기 영역 탐색부에서 다단계 연속 제어 알고리즘(MSEA: Multilevel Successive Elimination Algorithm)의 레벨 3까지 탐색을 수행한 결과로도 제거되지 않은 후보 블록에 대해 블록 정합 스캔을 수행하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 장치.
  30. 움직임을 예측하는 방법에 있어서,
    외부로부터 입력받은 영상 중에서 현재 프레임 상의 기준 블록의 영상 복잡도를 계산하는 영상복잡도계산단계;
    상기 계산한 블록에 관한 움직임 벡터의 위치에서 절대오차 합(SAD)의 최소값('초기 minSAD')을 구하는 단계;
    상기 구한 초기 minSAD를 토대로 해당 블록에 관한 영역에 대해 탐색을 수행해 불필요한 후보 블록을 제거하는 영역 탐색 단계;
    상기 영역 탐색 단계에서 제거되지 않고 남은 블록에 대하여, 상기 계산한 영상 복잡도 순서대로 블록 정합 스캔을 수행해 불필요한 후보 블록을 제거하는 후보블록정합스캔단계; 및
    상기 제거한 후보 블록을 제외한 나머지 블록의 블록합과 상기 계산한 minSAD간을 비교하여 움직임 벡터를 결정하는 단계
    를 포함하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
  31. 제 30 항에 있어서,
    상기 영상복잡도계산단계는,
    다음의 [수학식]을 사용해 영상 복잡도(Complexity of Sub-block)를 계산하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
    [수학식]
    Figure 112009031334849-pat00042
    여기서, "SumAC(i)"는 i번째 서브블록의 AC(Alternating Current) 계수들의 절대값 합, "AverageDC"는 서브블록의 DC(Direct Current) 계수의 평균, "SubDC(i)"는 i번째 서브 블록의 DC 계수를 나타냄.
  32. 제 30 항 또는 제 31 항에 있어서,
    상기 후보블록정합스캔단계는,
    다음의 [수학식]을 사용해 후보 블록 탐색 비용을 계산하는 것을 특징으로 하는 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임 예측 방법.
    [수학식]
    Figure 112009031334849-pat00043
    여기서, PartialSAD(k)는 k번째 행까지 계산한 절대오차 합(SAD),
    Figure 112009031334849-pat00044
    는 기준 블록의 화소값,
    Figure 112009031334849-pat00045
    는 (x,y) 위치에서 후보 블록의 화소값을 나타냄.
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020070073071A 2006-11-28 2007-07-20 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치 KR100910209B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060118317 2006-11-28
KR1020060118317 2006-11-28

Publications (2)

Publication Number Publication Date
KR20080048384A KR20080048384A (ko) 2008-06-02
KR100910209B1 true KR100910209B1 (ko) 2009-07-30

Family

ID=39804608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070073071A KR100910209B1 (ko) 2006-11-28 2007-07-20 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100910209B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100924642B1 (ko) * 2007-11-27 2009-11-02 한양대학교 산학협력단 블록 정합 알고리즘을 이용하는 움직임 추정 방법
KR101037070B1 (ko) * 2009-06-05 2011-05-26 중앙대학교 산학협력단 전역탐색기법에 의한 고속 움직임 예측 방법
KR101037743B1 (ko) * 2009-10-29 2011-05-27 숭실대학교산학협력단 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치
KR101221227B1 (ko) * 2012-05-10 2013-01-11 상명대학교 산학협력단 다중코어기반 영역 할당을 이용한 움직임 추정 방법 및 장치
KR102472462B1 (ko) * 2015-10-13 2022-12-01 한국전자통신연구원 영상 복잡도에 기반한 적응적 부호화 및 복호화를 위한 방법 및 장치
MX2021015811A (es) 2019-06-17 2022-02-03 Beijing Dajia Internet Information Tech Co Ltd Metodos y aparatos para el refinamiento del vector de movimiento en el decodificador en la codificacion de video.

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000045075A (ko) * 1998-12-30 2000-07-15 윤종용 움직임 추정방법
KR20000057040A (ko) * 1999-02-22 2000-09-15 이형도 영상복잡도에 기초한 적응 매칭스캔을 이용한 움직임 고속예측방법
KR20040055518A (ko) * 2002-12-21 2004-06-26 한국전자통신연구원 Sad 추정을 통한 움직임 추정 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000045075A (ko) * 1998-12-30 2000-07-15 윤종용 움직임 추정방법
KR20000057040A (ko) * 1999-02-22 2000-09-15 이형도 영상복잡도에 기초한 적응 매칭스캔을 이용한 움직임 고속예측방법
KR20040055518A (ko) * 2002-12-21 2004-06-26 한국전자통신연구원 Sad 추정을 통한 움직임 추정 방법

Also Published As

Publication number Publication date
KR20080048384A (ko) 2008-06-02

Similar Documents

Publication Publication Date Title
KR101344200B1 (ko) 모션 추정 검색 범위 및 확장된 모션 벡터 범위의 동적 선택 방법, 및 인코더
KR100829169B1 (ko) H.264 코딩의 압축모드 예측 장치 및 방법
JP4555758B2 (ja) ビデオ圧縮におけるイントラ予測の符号化モード選択方法
US8467448B2 (en) Apparatus and method for fast intra/inter macro-block mode decision for video encoding
EP1574038B1 (en) Method and apparatus for estimating a motion vector
KR100910209B1 (ko) 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치
KR100929608B1 (ko) 고속 전역탐색 블록정합 알고리즘을 이용한 동영상 움직임추정 방법 및 장치
KR20050119422A (ko) 움직임 보상에 기반한 입력 영상의 노이즈 예측 및 그장치와, 이를 사용한 노이즈 제거 및 동영상 부호화 방법,이를 수행하기 위한 프로그램이 기록된 기록 매체
JP4494803B2 (ja) 動き補償に基づいた改善されたノイズ予測方法及びその装置とそれを使用した動画符号化方法及びその装置
US20050074064A1 (en) Method for hierarchical motion estimation
JP5566786B2 (ja) 誤差絶対値和の推定システム及び推定方法
KR20070000702A (ko) 탐색영역 재설정을 이용한 고속 움직임 예측 장치 및 방법
US20080130749A1 (en) Method for Performing Pattern-Based Block Motion Estimation
KR100508975B1 (ko) 다층 레벨 연속 제거 알고리즘을 이용한 동영상 움직임추정 방법
KR100978596B1 (ko) 고속 다중 참조프레임 선택 절차에 의한 움직임 추정 방법
KR100987581B1 (ko) 고속 움직임 추정을 위한 부분 블록정합 방법
KR100859073B1 (ko) 움직임 추정 방법
CN117294861B (zh) 一种基于帧间预测的编码块划分方法及编码器
KR101037743B1 (ko) 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치
CN109495739B (zh) 图像编码方法及其设备
JP5913911B2 (ja) 画像符号化装置
KR101610029B1 (ko) 가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치
JP5622613B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2011182167A (ja) 画像符号化装置
KR0128875B1 (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: 20130628

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140703

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160705

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 11