KR101037743B1 - 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치 - Google Patents

효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치 Download PDF

Info

Publication number
KR101037743B1
KR101037743B1 KR1020090103227A KR20090103227A KR101037743B1 KR 101037743 B1 KR101037743 B1 KR 101037743B1 KR 1020090103227 A KR1020090103227 A KR 1020090103227A KR 20090103227 A KR20090103227 A KR 20090103227A KR 101037743 B1 KR101037743 B1 KR 101037743B1
Authority
KR
South Korea
Prior art keywords
search
zones
search order
motion vector
motion
Prior art date
Application number
KR1020090103227A
Other languages
English (en)
Other versions
KR20110046701A (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 KR1020090103227A priority Critical patent/KR101037743B1/ko
Publication of KR20110046701A publication Critical patent/KR20110046701A/ko
Application granted granted Critical
Publication of KR101037743B1 publication Critical patent/KR101037743B1/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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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

본 발명은 비디오의 시간적 중복성을 제거하기 위한 움직임 추정의 속도를 향상시키는 방법 및 장치에 관한 것이다. 입력 프레임을 부호화하는 비디오 인코딩 장치에 사용되는 움직임 추정 방법은, 상기 입력 프레임에 포함되는 현재 블록의 움직임 벡터에 대한 예측 값을 계산하는 단계와, 움직임 추정을 위한 탐색 영역을 복수의 구역들로 분할하는 단계와, 상기 계산된 예측 값을 이용하여, 상기 복수의 구역들에 대한 탐색 순서를 결정하는 단계와, 상기 복수의 구역들에 대하여, 상기 결정된 탐색 순서에 따라 조기 중단 기반의 움직임 벡터 탐색을 수행하는 단계로 이루어진다.
Figure R1020090103227
움직임 추정기, 다단계 탐색 기법, 조기 중단 기법

Description

효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치{Method for motion estimation using an efficient early termination scheme, and apparatus for video encoding using the same}
본 발명은 비디오 압축 방법에 관한 것으로, 보다 상세하게는 비디오의 시간적 중복성을 제거하기 위한 움직임 추정의 속도를 향상시키는 방법 및 장치에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 정보를 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로 하며 전송 시에 넓은 대역폭을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축코딩기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(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)에 관한 움직임 보상이 이루어진다.
움직임 추정에는 화소단위로 구하는 화소반복법과 블록단위로 구하는 블록 정합법이 있으나 비용 대비 성능비가 좋은 블록 정합법을 주로 사용한다. 유사도를 구하는 방법에는 SAD(sum of absolute difference), MSE(mean square error)등의 방법이 있다. U×V의 크기를 갖는 블록에 대한 SAD를 구하는 방법은 다음의 수학식 1에 따른다.
Figure 112009066340091-pat00001
이를 이용해 탐색하고자 하는 탐색영역의 전 영역에 대해서 SAD연산을 수행하는 전역탐색방법(full search method)과 특정 표본지점에 대해서만 연산을 하는 고속 탐색방법으로 나누어진다. 고속탐색방식의 대표적인 방법 중 하나가 "다단계(예: 3단계) 탐색 기법"이다. 도 2는 이러한 다단계 탐색 기법, 특히 3단계 탐색 기법의 예를 보여준다.
이 방법은 n단계에서 정해진 크기(step size) S=2n-1을 구하고, 원점을 중심으로 ±S만큼의 8개의 지점에 대해서 유사도를 측정하고 가장 큰 유사도를 가지는 지점을 기준으로 다시 다음 스텝 크기만큼의 8지점을 측정하여 최종적으로 S가 1이 되는 지점까지 반복하여서 최종 선택된 지점을 이용하여 움직임 벡터를 구하는 방식을 말한다. 최대 탐색지점은 25개의 지점으로 전역 탐색 방식에 비해 연산해야 할 탐색 지점이 크게 줄어들지만 좋은 성능을 보여 고속 탐색 기법 중 가장 많이 사용되는 방법이다.
한편, 상기 다단계 탐색 기법과 더불어, 고속탐색방식으로 많이 사용되는 기법으로 "조기 중단 기법"이 있다. 움직임 추정 과정은 기본적으로 가장 유사도가 높은 지점을 찾는 연산에 기초한다. 유사도가 가장 높은 지점은 두 영상의 차분 값인 SAD값이 가장 작은 지점을 의미한다. 다시 말해 움직임 추정연산은 최소 SAD지점을 찾는 연산을 의미하는 것이다.
이를 이용하여 기존에 구하여진 최소 SAD의 값보다 현재 연산중인 SAD의 값이 커질 경우 더 이상 연산을 수행하지 않고 다음 표본에 대해서 연산을 수행하는 방법을 조기 중단 기법(early termination scheme)이라고 한다. 도 3은 이러한 조기 중단 기법을 구현하는 의사 코드(pseudo-code)를 예시한다. 조기 중단 기법을 사용할 경우 의미가 없는 잉여 연산을 수행하지 않으므로 연산량을 크게 줄일 수 있다. 이러한 조기중단 기법은 SAD의 값이 작을수록, 최소의 SAD값이 나오는 지점에 대한 연산을 빨리 종료할 수 있어 연산효율이 좋아진다.
본 발명은 상기한 필요성을 감안하여 창안된 것으로, 움직임 추정의 계산 속도를 향상시키기 위하여 조기 중단(early termination) 기반의 움직임 추정 기법에 있어서, 탐색 순서를 보다 정확히 추정함으로써 연산량을 감소시키는 것을 목적으로 한다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른, 입력 프레임을 부호화하는 비디오 인코딩 장치에 사용되는 움직임 추정 방법은, 상기 입력 프레임에 포함되는 현재 블록의 움직임 벡터에 대한 예측 값을 계산하는 단계; 움직임 추정을 위한 탐색 영역을 복수의 구역들로 분할하는 단계; 상기 계산된 예측 값을 이용하여, 상기 복수의 구역들에 대한 탐색 순서를 결정하는 단계; 및 상기 복수의 구역들에 대하여, 상기 결정된 탐색 순서에 따라 조기 중단 기반의 움직임 벡터 탐색을 수행하는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 비디오 인코딩 장치는, 입력 프레임에 포함되는 현재 블록의 움직임 벡터에 대한 예측 값을 계산하는 움직임 벡터 예측부; 움직임 추정을 위한 탐색 영역을 복수의 구역들로 분 할하는 구역 분할부; 상기 계산된 예측 값을 이용하여, 상기 복수의 구역들에 대한 탐색 순서를 결정하는 탐색 순서 결정부; 상기 복수의 구역들에 대하여, 상기 결정된 탐색 순서에 따라 조기 중단 기반의 움직임 벡터 탐색을 수행하는 움직임 추정부; 상기 입력 프레임에서, 상기 움직임 벡터에 의해 참조 프레임을 보상한 움직임 보상 프레임을 차분하여 잔차 프레임을 얻는 차분기; 및 상기 잔차 프레임을 부호화하는 수단을 포함한다.
본 발명에 따르면 종래의 다단계 탐색 기법이나 조기 종단 기법에 비하여, 속도는 훨씬 향상되면서도 시각적 화질은 그대로 유지될 수 있는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명에 따른 움직임 추정 방법은 예를 들어, 다단계 탐색기법에 있어서 조기중단기법이 가장 효율적으로 적용될 수 있도록 가장 먼저 최소의 SAD값이 나올 것으로 예상되는 지점을 연산의 시작점으로 하여 연산을 수행한다. 즉, 연산의 중단이 조기에 이루어질 수 있도록 탐색 순서를 재정렬한다. 탐색 순서를 재정렬하기 위해서 먼저 수행해야 하는 부분이 SAD값이 최소가 나올 것으로 예측되는 구역이다.
도 4는 본 발명의 일 실시예에 따른 움직임 추정 방법을 구현하는 비디오 인코딩 장치(100)의 구성을 도시한 블록도이다.
비디오 인코딩 장치(100)는 블록 분할부(110), 구역 분할부(120), 움직임 벡터 예측부(130), 탐색 순서 결정부(140), 움직임 추정부(150), 움직임 보상부(160), 차분기(165), 공간적 변환부(170), 양자화부(180) 및 엔트로피 부호화부(190)를 포함하여 구성될 수 있다.
블록 분할부(110)는 입력 프레임을 움직임 벡터의 할당 단위인 블록(예: 매크로블록, 또는 서브 매크로블록)의 크기로 분할한다.
구역 분할부(120)는 움직임 추정을 위한 탐색 영역을 복수의 구역들로 분할한다. 이와 같이, 움직임 벡터를 탐색하기 위한 구역을 분할하는 구체적인 방법은, 예를 들면, 다단계 탐색 기법의 특정 스텝에 존재하는 9개의 점이 각각의 구역의 중심이 되도록 하는 것이다. 도 5는 이러한 다단계 탐색 기법의 n번째 스텝에서의 구역 분할의 예를 보여준다. 도 5에 따르면, 9개의 구역들 각각은 2n-1의 크기를 갖는다.
예를 들어, 3단계 탐색 기법에서 정수 단위 픽셀까지 움직임 추정을 한다고 할 때, 각각의 탐색 거리 및 분할 거리는 다음과 같다.
스텝 탐색 거리 분할 거리
3 4 2
2 2 1
1 1 1
여기서, 탐색 거리는 하나의 구역의 가로 또는 세로 크기를 의미하고, 분할 거리는 구역의 중심으로부터 경계선까지의 거리를 의미한다. 그런데, 정수 단위 픽셀까지 움직임을 추정한다고 가정하면 분할 거리는 정수 이하의 값이 될 수 없으므로, 스텝 3의 경우 스텝 2의 경우와 같이 분할 거리는 1이 되며, 스텝 3에서는 각각의 구역이 중첩될 수 있음을 의미한다.
움직임 벡터 예측부(130)는 입력 프레임에 포함되는 현재 블록의 움직임 벡터에 대한 예측 값을 계산한다. 일반적으로 움직임 벡터는 주변의 움직임 벡터와 연관관계가 높으므로 비슷한 벡터 값을 가지고 있을 확률이 높아서 H.264와 같은 표준에서는 이미 움직임 벡터의 예측을 실시하고 있다.
움직임 벡터의 예측 방법에는 여러 가지 형태의 방법들이 있으나, 일반적으로는 먼저 구해진 현재 블록의 주변 블록들의 움직임 벡터들(MVa)을 사용하는데, 일반적으로는 주변 블록들의 움직임 벡터들의 중간값(median)을 사용하게 된다. 도 6a 및 6b는 H.264에서 사용되고 있는 움직임 벡터들을 예측 기법, 즉, 현재 블록(E)에 대한 예측 값을 구하는 예를 보여준다. 이 중에서 도 6a는 주변 블록들(A, B, C)의 크기가 현재 블록(E)과 같은 경우를, 도 6b는 주변 블록들(A, B, C)의 크기가 현재 블록(E)과 다른 경우를 각각 보여준다. 결국, 움직임 벡터 예측부(130)는 연산이 끝난 블록들인 블록 A, 블록 B, 블록 C의 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 예측한다. 예측 움직임 벡터 값이 없을 경우는 간단한 연산을 통해서 예측할 수 있으며, 이러한 예측방법이 정확할수록 제안하는 알고리즘이 연산을 조기 중단시킬 수 있는 확률이 높아 효율적인 연산을 수행할 수 있는 것이다.
탐색 순서 결정부(140)는 상기 계산된 예측 값(예: 현재 블록에 대한 예측 움직임벡터)를 이용하여, 구역 분할부(120)에서 분할된 복수의 구역들에 대한 탐색 순서를 결정한다. 예를 들어, 탐색 순서 결정부(140)는, 다단계 탐색 기법에 있어서 각 스텝 별로 9개의 구역에 대해서 각각 탐색 순서(1에서 9까지)를 부여할 수 있다.
이 경우, 탐색 순서 결정부(140)는 먼저, 상기 복수의 구역들 중에서 상기 현재 블록에 대한 예측 움직임벡터가 지시하는 방향에 대응하는 구역에 가장 앞선 탐색 순서(1)를 부여한다. 그 다음부터는 다음의 순서에 따라서 나머지 구역들의 탐색 순서를 결정한다.
1. 상기 가장 앞선 탐색 순서가 부여된 구역에 기하학적인 거리가 가까울수록 앞선 순위가 부여된다.
2. 상기 거리가 동일한 경우에는, 종방향 보다 횡방향에 위치한 블록에 앞선 순위가 부여된다(즉, 횡방향 거리가 클수록 앞선 순위가 부여됨).
3. 거리 및 방향이 모두 동일한 경우에는 우측보다는 좌측에, 하측보다는 상측에 앞선 순위가 부여된다.
이는, 상기 가장 앞선 탐색 순서(1)가 부여된 구역에 가까운 거리에 위치할 SAD의 최소값이 발생할 가능성이 높다는 점이 고려되어 있다. 만약 복수의 구역들이 동일한 거리를 갖는 경우에는 종방향에 비해서는 횡방향에 우선권이 주어지도록 되어 있다. 왜냐하면, 통상의 비디오 프레임의 경우에는 카메라 무빙 워크나 사물의 움직임 방향이 종방향 보다는 횡방향으로 이루어질 가능성이 높기 때문이다.
이와 같이 탐색 순서를 보다 잘 선택하게 되면, 조기 중단 기법의 적용 시에 앞선 구역에서 최소의 SAD가 발생할 가능성이 높아지게 된다. 이는 이후의 구역에 대해서는 조기 중단에 의하여 연산량이 급격하게 감소될 수 있음을 의미한다.
도 7은 본 발명의 일 실시예에 따른 탐색 순서를 정하는 구체적인 방법을 보여주는 도면이다. 여기에는, 9개의 구역들 각각에 최선 순위가 부여되어 있을 경우, 최선 순위가 부여되지 않은 나머지 구역들에 탐색 순서를 부여하는 방법을 보여준다.
예를 들어, 좌상단 구역에 최선 순위가 부여된 첫 번째 예제에서, 상기 좌상단 구역에 가까운 거리에 있을수록 앞선 순위가 부여되고 있고, 동일한 거리에 있는 경우라면 횡방향의 거리가 클수록 앞선 순위가 부여되어 있음을 알 수 있다.
또한, 상단 구역에 최선 순위가 부여된 두 번째 예제에서, 상기 상단 구역과 동일한 거리에 있는 좌상단 구역 및 우상단 구역 중에는 상대적으로 좌측에 위치한 좌상단 구역에 앞선 순위가 부여된다.
도 7에서는 가운데 구역에는 순위가 부여되어 있지 않은데, 첫 번째 스텝(스텝 3)을 제외하고는 이미 계산된 값이 있으므로 별도의 연산을 수행할 필요가 없다는 뜻이다. 물론, 첫 번째 스텝의 경우에 탐색 순서를 부여한다면 가운데 구역에도 당연히 상기 3가지 원칙에 따라 순위가 부여되어야 할 것이다.
그런데, 첫 번째 스텝(스텝 3)에서는 현재 블록에 대한 예측 움직임벡터가 바로 현재 블록의 예측 값으로 사용될 수 있지만, 그 이후의 스텝(스텝 2, 1)에 대해서는 다음의 수학식 2와 같이 중심의 좌표가 이동한 데에 따른 예측 값의 보정이 필요하다.
MVp'= MVp - Vc
여기서, MVp는 이전 스텝에서의 현재 블록의 예측 값을 의미하고, MVp'는 다음 스텝에서의 현재 블록의 예측 값(보정된 예측 값)을 의미하며, Vc는 이전 스텝의 중심점의 위치와 현재 스텝의 중심점의 위치간의 변위를 나타내는 벡터를 의미한다.
움직임 추정부(150)는, 상기 복수의 구역들에 대하여, 상기 결정된 탐색 순서에 따라 상기 현재 블록에 대한 조기 중단 기반의 움직임 벡터를 구한다. 이러한 움직임 벡터를 구하는 과정은 상기 입력 프레임을 구성하는 모든 블록에 대하여 수행될 때까지 반복될 수 있다.
상기 조기 중단 기반의 움직임 벡터 탐색은, 상기 현재 블록의 픽셀들과, 이에 대응되는 참조 영상에서의 픽셀들 간의 차이의 합이, 기존의 절대 차이의 합(SAD)보다 큰 경우에 현재 구역을 생략하고, 다음 탐색 순서를 갖는 구역에 대하 여 움직임 벡터 탐색을 진행하는 과정으로 이루어진다.
예를 들어, 9개의 구역에 대하여 SAD를 각각 계산하여 최소의 SAD를 갖는 구역의 움직임 벡터를 최종 움직임 벡터로 설정한다고 가정한다면, 움직임 추정부(150)는 먼저, 탐색 순서 결정부(140)에 의해 최선 탐색 순위가 부여된 구역에서 SAD를 구한다. 그 후, 움직임 추정부(150)는 두 번째 탐색 순위가 부여된 구역에서 SAD를 구하기 위하여 현재 블록과 참조 영상 간에 대응되는 픽셀들 간의 차이의 절대값을 누적해 나가다가 그 누적 값이 상기 SAD를 초과하면 그대로 연산을 조기 중단하고, 세 번째 탐색 순위가 부여된 구역에 대하여 움직임 벡터의 탐색을 진행하게 된다. 만약, 두 번째 탐색 순위가 부여된 구역에서 SAD를 구한 결과가 첫 번째 탐색 순위가 부여된 구역에서 구한 SAD보다 작으면, 이제 최소 SAD는 새로운 값으로 갱신된다. 이러한 방식으로 마지막 구역까지 모두 완료될 때까지 조기 종료 기반의 움직임 벡터를 구하는 과정은 계속된다.
다시 도 4를 참조하면, 차분기(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), 허프만 부호화 등이 있다.
지금까지 도 4의 각 구성요소는 소프트웨어(software) 또는, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 움직임추정 방법을 구체적으로 도시하는 흐름도이다.
먼저, 움직임 추정부(150)는 중심 구역(예: 9개의 구역들 중 중심 구역)에 대한 SAD를 계산한다(S5). 또한, 움직임 벡터 예측부(130)는 현재 블록의 움직임 벡터에 대한 예측 값, 즉 예측 움직임 벡터를 계산한다(S10). 상기 S5 및 S10은 첫 번째 스텝(스텝 3)에서만 수행되면 된다. 특히, 중심 구역의 SAD는 이후 스텝(스텝 2, 1)에서는 이미 계산되어 있는 값이므로 별도의 계산은 불필요하다.
그 다음, 움직임 벡터 예측부(130)는 이후 스텝(스텝 2, 1)인 경우에는 전술한 수학식 2에서와 같이, 예측 움직임 벡터를 보정하여야 한다(S15).
탐색 순서 결정부(140)는, 도 7에 예시한 바와 같이, 상기 계산된 예측 값(예측 움직임 벡터 또는 보정된 값)을 이용하여, 상기 복수의 구역들에 대한 탐색 순서를 결정한다(S17).
그 다음, 움직임 추정부(150)는, 탐색 순서 결정부(140)에 의해 최선 탐색 순위가 부여된 구역에서 SAD를 구한다(S20). 물론, 조기 중단이 적용되어야 하므로, 현재 블록에 대한 SAD를 바로 구하는 것이 아니라, 현재 블록과 참조 영상 간에 대응되는 픽셀들 간의 차이의 절대값을 누적해 나가다가(즉, 누적 합을 구하다가), 상기 누적 합이 현재 저장된 최소 SAD보다 크면(S25의 예), 누적 합 계산을 중단하고 다음 탐색 순위가 부여된 구역으로 대상을 변경한다. 만약, 그러한 과정이 마지막 스텝 및 마지막 블록에 대하여 완료되었다면, 움직임 추정부(150)는 최 소 SAD를 갖는 지점에 의하여 움직임 벡터를 결정한다(S40).
S25 단계에서, 현재 누적 합이 최소 SAD보다 크기 않다면(S25의 아니오), 모든 블록에 대하여 이러한 누적 합의 계산이 완료되었는지를 판단하게 된다(S45).
S45의 단계에서, 완료되지 않았다면(S20), 현재 블록의 다음 픽셀에 대하여 절대 값의 차이를 계산하고 이를 다시 누적하여 누적 합을 계산하는 과정을 반복하게 된다.
S45의 단계에서, 현재 블록의 모든 픽셀에 대하여 누적 합이 계산되었다는 것은 현재 블록의 SAD가 최소 SAD라는 것을 의미하므로, 움직임 추정부(150)는 현재 블록의 SAD를 최소 SAD로 업데이트한다(S50).
한편, S35 단계에서 "아니오"인 경우에는, 현재의 블록이 움직임 추정의 대상 중 마지막 블록이면(S55의 예), 움직임 벡터 예측부(130)는 다음 스텝으로 진행하여 예측 움직임 벡터를 보정하게 된다(S15). 그리고, 현재의 블록이 마지막 블록이 아니면(S55의 아니오), 움직임 추정부(150)는 다시 다음 블록에 대하여 누적 합을 계산하는 과정을 반복하게 된다.
본 발명의 효과의 검증을 여러 영상 부호화 방법 중 현재 많이 사용되고 있는 H.264를 비교 실험예로 선택하였다. 본 실험은 baseline 프로파일에 대해서만 이루어 졌으며, 움직임 벡터 예측은 중간값을 사용하였고, CIF(common intermediate format: 352 × 288)크기의 영상에 대해서 탐색영역의 크기는 16, QP(quality parameter)값은 28인 정수연산에 대해서 실시하였다.
비교 실험예에는 일반적인 3단계 탐색기법(3SS로 표시함)과, 재정렬 기법을 사용하지 않는 일반적인 조기중단기법을 사용한 3단계 탐색방법(3SSET으로 표시함)이 포함되며, 본 발명에 따른 재정렬 기법을 사용한 3단계 탐색 방법과 비교된다. 본 실험에서는 통상 많이 사용되는 대표적 영상샘플들이 사용된다.
예를 들면, 3SSET에 따르면, 도 9a에 도시한 바와 같이, 예측 움직임 벡터를 고려하지 않기 때문에, 상기 예측 움직임 벡터의 방향과는 상관없이 순차적으로 9개의 구역을 탐색하게 된다. 그러나, 본 발명의 일 실시예에 따르면, 도 9b에 도시한 바와 같이, 예측 움직임 벡터를 고려하여 탐색 순서를 재정렬하므로 직관적으로도, 기존의 3SSET에 비하여 연산량이 감소될 것이 예상된다. 3SSET 및 본 발명에 따른 방법에 있어서는, 첫 번째 스텝을 제외한 나머지에서는 이미 중심 구역에 대한 연산된 값을 가지고 있다. 따라서, 총 25개의 표본 지점(즉, 25개의 구역)에 대한 실험이 수행되었다. 300프레임의 실험 영상들에 대한 SAD 연산수는 다음의 표 2에 기재된 바와 같다.
시퀀스 방법 연산수 PSNR
(db)
감소율
(%)
akiyo 3SS 5.72e+19 39.72 -
3SSET 1.81e+19 39.72 68.35 
본 발명 1.39e+19 39.72 23.28 
coastguard 3SS 5.72e+19 35.12 -
3SSET 2.47e+19 35.12 56.74 
본 발명 2.05e+19 35.20 17.01 
container 3SS 5.72e+19 36.29 -
3SSET 2.30e+19 36.29 59.80 
본 발명 1.87e+19 38.28 18.39 
flower 3SS 4.77e+19 36.17 -
3SSET 1.65e+19 36.17 65.39
본 발명 1.30e+19 36.17 21.19
foreman 3SS 5.72e+19 36.17 -
3SSET 2.46e+19 36.17 56.89 
본 발명 2.04e+19 36.17 17.01 
hall 3SS 5.72e+19 38.13  
3SSET 2.04e+19 38.13 64.38 
본 발명 1.61e+19 38.13 20.64 
이상의 표 2에서 살펴 본 바와 같이, 본 발명에 따른 방법은 기존의 3SS나 3SSET와 비교할 때, PSNR값은 거의 차이가 없는 반면에, 연산량은 상당 폭 감소하는 것을 알 수 있다. 특히, 기존의 3SSET와 비교해서도, 대략 20%내외의 연산이 감소함을 알 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.
도 1은 블록 단위의 움직임 추정의 개념을 보여주는 도면.
도 2는 종래의 3단계 탐색 기법의 예를 보여주는 도면.
도 3은 종래의 조기 중단 기법을 구현하는 의사 코드를 예시하는 도면.
도 4는 본 발명의 일 실시예에 따른 움직임 추정 방법을 구현하는 비디오 인코딩 장치의 구성을 도시한 블록도.
도 5는 본 발명의 일 실시예에 따른, 탐색 영역을 복수의 구역들로 분할하는 예를 보여주는 도면.
도 6a 및 6b는 H.264에서 사용되고 있는 움직임 벡터들을 예측 기법을 보여주는 도면들.
도 7은 본 발명의 일 실시예에 따른 탐색 순서를 정하는 구체적인 방법을 보여주는 도면.
도 8은 본 발명의 일 실시예에 따른 움직임추정 방법을 구체적으로 도시하는 흐름도.
도 9a 및 9b는 종래의 3SSET에 따른 탐색 순서와, 본 발명의 일 실시예에 따른 탐색 순서를 비교하여 보여주는 도면들.
(도면의 주요부분에 대한 부호 설명)
100: 비디오 인코딩 장치 110: 블록 분할부
120: 구역 분할부 130: 움직임 벡터 예측부
140: 탐색 순서 결정부 150: 움직임 추정부
160: 움직임 보상부 165: 차분기
170: 공간적 변환부 180: 양자화부
190: 엔트로피 부호화부

Claims (19)

  1. 입력 프레임을 부호화하는 비디오 인코딩 장치에 사용되는 움직임 추정 방법에 있어서,
    상기 입력 프레임에 포함되는 현재 블록의 움직임 벡터에 대한 예측 값을 계산하는 단계;
    상기 움직임 추정을 위한 탐색 영역을 복수의 구역들로 분할하는 단계;
    상기 계산된 예측 값을 이용하여, 상기 복수의 구역들에 대한 탐색 순서를 결정하는 단계; 및
    상기 복수의 구역들에 대하여, 상기 결정된 탐색 순서에 따라 조기 중단 기반의 움직임 벡터 탐색을 수행하는 단계를 포함하는 움직임 추정 방법.
  2. 제1항에 있어서, 상기 예측 값은,
    상기 현재 블록 주변의 블록들이 갖는 움직임 벡터들의 중간 값으로 계산되는 움직임 추정 방법.
  3. 제1항에 있어서, 상기 탐색 순서를 결정하는 단계는,
    상기 복수의 구역들 중에서 상기 예측된 움직임 벡터가 지시하는 방향에 대응하는 구역에 가장 앞선 탐색 순서를 부여하는 단계를 포함하는 움직임 추정 방법.
  4. 제3항에 있어서, 상기 탐색 순서를 결정하는 단계는,
    상기 복수의 구역들 중에서 상기 대응하는 구역에 근접할 수록 앞선 탐색 순서를 부여하는 단계를 더 포함하는 움직임 추정 방법.
  5. 제4항에 있어서, 상기 탐색 순서를 결정하는 단계는,
    상기 복수의 구역들 중에서 상기 대응하는 구역과의 거리가 동일한 구역들에 대해서는, 상기 대응하는 구역과 횡방향의 거리가 멀수록 앞선 탐색 순서를 부여하는 단계를 더 포함하는 움직임 추정 방법.
  6. 제5항에 있어서, 상기 탐색 순서를 결정하는 단계는,
    상기 복수의 구역들 중에서 상기 대응하는 구역과의 거리 및 방향이 동일한 구역들에 대해서는, 좌측 또는 상측의 구역에 앞선 탐색 순서를 부여하는 단계를 더 포함하는 움직임 추정 방법.
  7. 제1항에 있어서, 상기 조기 중단 기반의 움직임 벡터 탐색은,
    상기 현재 블록의 픽셀들과, 이에 대응되는 참조 영상에서의 픽셀들 간의 차이의 합이, 기존의 절대 차이의 합(SAD)보다 큰 경우에 현재 구역을 생략하고, 다음 탐색 순서를 갖는 구역에 대하여 움직임 벡터 탐색을 진행하는 과정을 포함하는 움직임 추정 방법.
  8. 제1항에 있어서, 상기 복수의 구역들은,
    다단계 탐색 기법의 기준 지점들을 각각 포함하도록 분할되는 움직임 추정 방법.
  9. 제8항에 있어서, 상기 예측 값은,
    상기 현재 블록 주변의 블록들이 갖는 움직임 벡터들의 중간 값으로 계산되는 제1 벡터에서, 상기 다단계 탐색 기법의 현재 스텝에서의 중심 지점과 이전 스텝에서의 중심 지점간의 차이를 나타내는 제2 벡터를 뺀 결과인 움직임 추정 방법.
  10. 입력 프레임에 포함되는 현재 블록의 움직임 벡터에 대한 예측 값을 계산하는 움직임 벡터 예측부;
    움직임 추정을 위한 탐색 영역을 복수의 구역들로 분할하는 구역 분할부;
    상기 계산된 예측 값을 이용하여, 상기 복수의 구역들에 대한 탐색 순서를 결정하는 탐색 순서 결정부;
    상기 복수의 구역들에 대하여, 상기 결정된 탐색 순서에 따라 조기 중단 기반의 움직임 벡터 탐색을 수행하는 움직임 추정부;
    상기 입력 프레임에서, 상기 움직임 벡터에 의해 참조 프레임을 보상한 움직임 보상 프레임을 차분하여 잔차 프레임을 얻는 차분기; 및
    상기 잔차 프레임을 부호화하는 수단을 포함하는 비디오 인코딩 장치.
  11. 제10항에 있어서, 상기 잔차 프레임을 부호화하는 수단은,
    상기 잔차 프레임을 주파수 도메인으로 변환하여 변환 계수를 생성하는 공간적 변환부;
    상기 변환계수를 양자화하는 양자화부; 및
    상기 양자화의 결과와 상기 움직임 벡터를 무손실 부호화하는 엔트로피 부호화부를 포함하는 비디오 인코딩 장치.
  12. 제10항에 있어서, 상기 움직임 벡터 예측부는,
    상기 현재 블록 주변의 블록들이 갖는 움직임 벡터들의 중간 값으로부터 상기 예측 값을 계산하는 비디오 인코딩 장치.
  13. 제10항에 있어서, 상기 탐색 순서 결정부는,
    상기 복수의 구역들 중에서 상기 예측된 움직임 벡터가 지시하는 방향에 대응하는 구역에 가장 앞선 탐색 순서를 부여하는 비디오 인코딩 장치.
  14. 제13항에 있어서, 상기 탐색 순서 결정부는,
    상기 복수의 구역들 중에서 상기 대응하는 구역에 근접할 수록 앞선 탐색 순서를 부여하는 비디오 인코딩 장치.
  15. 제14항에 있어서, 상기 탐색 순서 결정부는,
    상기 복수의 구역들 중에서 상기 대응하는 구역과의 거리가 동일한 구역들에 대해서는, 상기 대응하는 구역과 횡방향의 거리가 가까울수록 앞선 탐색 순서를 부여하는 비디오 인코딩 장치.
  16. 제15항에 있어서, 상기 탐색 순서 결정부는,
    상기 복수의 구역들 중에서 상기 대응하는 구역과의 거리 및 방향이 동일한 구역들에 대해서는, 좌측 또는 상측의 구역에 앞선 탐색 순서를 부여하는 비디오 인코딩 장치.
  17. 제10항에 있어서, 상기 조기 중단 기반의 움직임 벡터 탐색은,
    상기 현재 블록의 픽셀들과, 이에 대응되는 참조 영상에서의 픽셀들 간의 차이의 합이, 기존의 절대 차이의 합(SAD)보다 큰 경우에 현재 구역을 생략하고, 다음 탐색 순서를 갖는 구역에 대하여 움직임 벡터 탐색을 진행하는 과정을 포함하는 비디오 인코딩 장치.
  18. 제10항에 있어서, 상기 복수의 구역들은,
    다단계 탐색 기법의 기준 지점들을 각각 포함하도록 분할되는 비디오 인코딩 장치.
  19. 제18항에 있어서, 상기 예측 값은,
    상기 현재 블록 주변의 블록들이 갖는 움직임 벡터들의 중간 값으로 계산되는 제1 벡터에서, 상기 다단계 탐색 기법의 현재 스텝에서의 중심 지점과 이전 스텝에서의 중심 지점간의 차이를 나타내는 제2 벡터를 뺀 결과인 비디오 인코딩 장치.
KR1020090103227A 2009-10-29 2009-10-29 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치 KR101037743B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090103227A KR101037743B1 (ko) 2009-10-29 2009-10-29 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090103227A KR101037743B1 (ko) 2009-10-29 2009-10-29 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치

Publications (2)

Publication Number Publication Date
KR20110046701A KR20110046701A (ko) 2011-05-06
KR101037743B1 true KR101037743B1 (ko) 2011-05-27

Family

ID=44238093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090103227A KR101037743B1 (ko) 2009-10-29 2009-10-29 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치

Country Status (1)

Country Link
KR (1) KR101037743B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116074533B (zh) * 2023-04-06 2023-08-22 湖南国科微电子股份有限公司 运动矢量预测方法、系统、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000057040A (ko) * 1999-02-22 2000-09-15 이형도 영상복잡도에 기초한 적응 매칭스캔을 이용한 움직임 고속예측방법
KR20080048384A (ko) * 2006-11-28 2008-06-02 한양대학교 산학협력단 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치
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
KR20000057040A (ko) * 1999-02-22 2000-09-15 이형도 영상복잡도에 기초한 적응 매칭스캔을 이용한 움직임 고속예측방법
KR20080048384A (ko) * 2006-11-28 2008-06-02 한양대학교 산학협력단 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치
KR20090079286A (ko) * 2008-01-17 2009-07-22 한양대학교 산학협력단 고속 전역탐색 블록정합 알고리즘을 이용한 동영상 움직임추정 방법 및 장치

Also Published As

Publication number Publication date
KR20110046701A (ko) 2011-05-06

Similar Documents

Publication Publication Date Title
KR102026856B1 (ko) 다중 참조를 허용하는 비디오 코덱에서 모션 벡터를 예측하는 방법, 및 그 방법을 이용한 모션 벡터 부호화/복호화 장치
KR100803611B1 (ko) 영상의 부호화, 복호화 방법 및 장치
KR100714698B1 (ko) 향상된 움직임 추정 방법, 상기 방법을 이용한 비디오인코딩 방법 및 장치
US20070268964A1 (en) Unit co-location-based motion estimation
US10652570B2 (en) Moving image encoding device, moving image encoding method, and recording medium for recording moving image encoding program
US20120008686A1 (en) Motion compensation using vector quantized interpolation filters
CN1956544A (zh) 采用连续/交错区域预测的影像数据处理方法及系统
EP1389875A2 (en) Method for motion estimation adaptive to DCT block content
US20090046779A1 (en) Method and apparatus for determining block mode using bit-generation probability estimation in moving picture coding
KR100910209B1 (ko) 세분화된 탐색 영역을 기반으로 하는 고속 전영역 움직임예측 방법 및 그 장치
KR101037743B1 (ko) 효율적인 조기중단 기법을 사용하는 움직임 추정 방법 및 이를 이용한 비디오 인코딩 장치
US20100080295A1 (en) Method and apparatus for scalable motion estimation
KR101610029B1 (ko) 가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치
JP4243205B2 (ja) 動画像符号化装置、その方法及びそのプログラム
KR101610028B1 (ko) 고속 모션 추정 방법 및 장치, 이를 이용한 비디오 인코딩 장치
KR20110065105A (ko) 서브 픽셀 정밀도를 갖는 모션 추정 방법 및 장치, 이를 이용한 비디오 인코더
KR101037070B1 (ko) 전역탐색기법에 의한 고속 움직임 예측 방법
KR101543200B1 (ko) 다중 참조를 허용하는 비디오 코덱에서 모션 벡터를 예측하는 방법, 및 그 방법을 이용한 모션 벡터 부호화/복호화 장치
KR20110039030A (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: 20140318

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170410

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee