KR100723840B1 - 영상 움직임 추정 장치 - Google Patents

영상 움직임 추정 장치 Download PDF

Info

Publication number
KR100723840B1
KR100723840B1 KR1020050087023A KR20050087023A KR100723840B1 KR 100723840 B1 KR100723840 B1 KR 100723840B1 KR 1020050087023 A KR1020050087023 A KR 1020050087023A KR 20050087023 A KR20050087023 A KR 20050087023A KR 100723840 B1 KR100723840 B1 KR 100723840B1
Authority
KR
South Korea
Prior art keywords
motion
macroblock
macroblocks
submacroblock
submacroblocks
Prior art date
Application number
KR1020050087023A
Other languages
English (en)
Other versions
KR20060064509A (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 US11/290,651 priority Critical patent/US20060120455A1/en
Publication of KR20060064509A publication Critical patent/KR20060064509A/ko
Application granted granted Critical
Publication of KR100723840B1 publication Critical patent/KR100723840B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or 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/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
    • 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

Abstract

본 발명은 영상 움직임 추정 장치를 개시한다.
본 발명에 의하면, 영상 데이터를 입력받아 영상의 각 프레임의 SAD 값을 계산하는 SAD계산부, 영상 데이터의 각 프레임을 소정 크기의 매크로블록 및 부매크로블록들로 분할하여 각 매크로블록 및 부매크로블록 주변의 매크로블록이나 부매크로블록의 움직임 벡터 및 예측 벡터를 이용하여 움직임 벡터 추정값을 계산하는 움직임벡터계산부 및 소정 크기의 매크로블록 및 부매크로블록별로 이웃한 매크로블록이나 부매크로블록에 SAD계산부에서 계산된 SAD값과 상기 움직임벡터계산부의 움직임 벡터 추정값을 이용하여 상기 영상 데이터의 움직임을 추정하는 움직임갱신부를 포함하여, 이웃 블럭을 참조하여 움직임 추정을 할 수 있으므로 종래의 움직임 추정 장치에 비해 장치를 구현하기 위해 필요한 장치의 크기나 경제적인 비용이 크게 줄어들며, 움직임 추정을 위해 저전력으로 동작할 수 있는 효과가 있다.

Description

영상 움직임 추정 장치 {Apparatus for motion estimation of image data}
도 1은 종래의 움직임 추정 장치의 일 예를 도시한 것이다.
도 2는 본 발명에 따른 영상 움직임 추정 장치의 구성을 블록으로 도시한 것이다.
도 3은 본 발명에 따른 영상 움직임 추정 장치의 구성의 예를 그 주변 구성까지 포함하여 블록으로 도시한 것이다.
도 4a 내지 도 4i는 본 발명에 따라 모드별 계산을 하는 과정을 설명하기 위한 도면이다.
본 발명은 영상 데이터 압축에 관한 것으로서, 영상의 움직임을 추정하는 장치에 관한 것이다.
도 1은 종래의 움직임 추정 장치의 일 예로서, 특히 OPGS(One-Pixel Greedy Search) 알고리즘과 HSBM(Hierarchical Search Block Matching) 알고리즘을 결합한 움직임 추정 장치를 나타내 보인 블록도이다.
도 1을 참조하면, 종래의 움직임 추정 장치는 후보 벡터 예측부(100), 알고 리즘 선택부(110), 움직임 추정부(120), 메모리(130) 및 반화소 움직임 추정부(140)를 포함하여 구성된다.
후보 벡터 예측부(100)는, 영상 데이터를 입력받아서, 현재 추정하고자 하는 매크로 블록(macro block)을 위한 후보 벡터를 예측한다. 이때 후보 벡터 예측부(100)는 제로 움직임 벡터, 이전 움직임 벡터, 이웃한 블록들의 움직임 벡터들 중에서 가장 최적으로 정합되는 움직임 벡터를 후보 움직임 벡터로 최종 선택한다.
알고리즘 선택부(110)는 후보 벡터 예측부(100)에서 예측된 후보 벡터의 SAD(Sum of Absolute Difference)와 미리 설정된 임계치를 비교하여 움직임 추정 알고리즘을 선택한다. 즉 알고리즘 선택부(110)에 의해 OPGS 알고리즘과 HSBM 알고리즘 중에서 하나가 선택된다.
움직임 추정부(120)는, 입력되는 영상 데이터의 정 화소 움직임 추정을 수행하고 그에 따른 움직임 벡터를 출력하는데, 이때 사용되는 알고리즘은 알고리즘 선택부(110)에 의해 선택된 OPGS 알고리즘 또는 HSBM 알고리즘이다.
메모리(130)는 움직임 추정부(120)에 의해 출력되는 움직임 벡터를 저장하여 후보 벡터 예측부(100)에 인가한다. 그리고 상기 반화소 움직임 추정부(140)는 움직임 추정부(17)에 의해 추정된 정 화소 움직임 추정치의 위치를 참조하여 입력되는 영상 데이터로부터 매크로 블록, 서브 블록의 반 화소 움직임을 추정한다.
이와 같은 도 1의 종래의 움직임 추정 장치는, 움직임 벡터를 예측하고 그 예측치가 임계치 범위 내에 포함될 경우 OPGS 알고리즘에 따라 탐색 영역보다 정수만큼 적은 탐색 영역에 대해서만 움직임 추정 동작을 수행하고, 상기 예측치가 임 계치 범위 내에 포함되지 않을 경우 HSNM 알고리즘에 따라 전체 탐색 영역에 대해서 움직임 추정 동작을 수행하도록 함으로써, 움직임 추정에 대한 효율성을 증대시킬 수 있다는 장점을 제공한다.
그러나 상기 종래의 움직임 추정 장치는, 각각의 알고리즘에 대응하는 별도의 독립적인 메모리를 갖는 구조이므로 움직임 추정 시 연산량이 많게 되며, 이에 따라 실시간 동영상 부호화기 내에 적용하기가 용이하지 않다는 문제가 있다. 또한 상기 종래의 움직임 추정 장치는 그 내부에 움직임 벡터를 저장하기 위한 부가 메모리를 포함하여야 하므로 장치가 차지하는 면적 및 소모 전력 감소에 한계를 나타낸다. 또한 고정된 알고리즘을 사용하므로, 영상의 종류 및 응용 분야에 따라 불필요한 연산을 수행하여 효율적인 결과를 제공하기 어렵다는 문제가 있다.
본 발명이 이루고자 하는 기술적인 과제는, 효율적으로 움직임 추정을 할 수 있는 장치를 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 영상 움직임 추정 장치는, 영상 데이터를 입력받아 영상의 각 프레임의 SAD 값을 계산하는 SAD계산부; 상기 영상 데이터의 각 프레임을 소정 크기의 매크로블록 및 부매크로블록들로 분할하여 각 매크로블록 및 부매크로블록 주변의 매크로블록이나 부매크로블록의 움직임 벡터 및 예측 벡터를 이용하여 움직임 벡터 추정값을 계산하는 움직임벡터계산부; 및 상기 소정 크기의 매크로블록 및 부매크로블록별로 이웃한 매크로블록이나 부매크로블록의 상기 SAD계산부에서 계산된 SAD값과 상기 움직임벡터계산부의 움직임 벡터 추정값을 이용하여 상기 영상 데이터의 움직임을 추정하는 움직임갱신부;를 포함하는 것을 특징으로 한다.
H.264는 국제적인 동영상 표준 제정 그룹인 ITU의 VCEG과 ISO의 MPEG이 공동으로 개발하고 있는 표준이다. 이 표준은 매우 높은 압축율을 주요 기술적 목표로 하고 있으며, 저장매체, 인터넷, 위성방송 등의 거의 모든 전송미디어 및 다양한 동영상 해상도의 환경에서 사용될 수 있는 범용 동영상 부호화 기술이다.
전통적으로 ITU의 국제 표준은 유선 통신 매체를 기반으로 한 H.261, H.263 등의 동영상 부호화 표준을 제정하여 왔으며, MPEG은 저장매체나 방송매체에서의 동영상 처리를 위한 MPEG-1, MPEG-2 등을 표준으로 제정하였다. MPEG은 또한 멀티미디어 전반에 걸친 부호 표준인 MPEG-4에서 객체 기반 동영상 부호를 중요한 특징으로 하는 다양한 기능과 고압축율을 실현한 MPEG-4 동영상 표준 제정을 완료하였다.
ITU의 VCEG 그룹에서는 MPEG-4 동영상 표준 제정 이후에도 계속 H.26L이라는 이름으로 고압축율의 동영상 표준을 제정하여 왔는데, MPEG에서의 공식적인 비교 실험에서, 비슷한 기능의 MPEG-4 동영상 표준(advanced simple profile)보다 압축률의 측면에서 큰 우위성을 나타내었다. 이에 따라 MPEG은 H.26L을 기반으로 ITU VCEG 그룹과 공동으로 JVT 동영상 표준인 H.264/AVC를 개발하기로 하였다. H.264/AVC은 다양한 우수한 특성들을 가지고 있지만, 그 중 최적 부호화 모드의 결정 방법이 성능 개선에 크게 기여한다.
최적 부호화 모드 결정 모듈은 부호화의 기본 단위인 매크로블록의 부호화 모드를 결정하는 부분으로서, 움직임 추정이 그 핵심에 위치하고 있다. 그 특징으로는, 매크로블록을 다양한 모양의 부매크로블록 혹은 부블록들로 나누어질 수 있으며, 각 부블록이 별도의 움직임 벡터를 가질 수 있다. 또한 한장의 참조영상만을 사용하는 기존의 움직임 추정 방법과는 달리 다수의 참조영상을 사용할 수 있도록 허용함으로써 상당한 압축 효율을 얻을 수 있도록 하였다. 그러나 이러한 특징들은 계산량의 증가를 가져온다. 따라서, H.264/AVC에서의 움직임 추정 알고리즘은 예측 오차의 측면과 계산량의 측면을 잘 고려하여 설계되어야 한다.
본 발명은 H.264 규격에서 동작할 수 있으며, 이하의 설명에서 별도로 설명되지 않는 기술적인 부분도 H.264 규격에 따라 동작하는 것으로 보고 별도의 설명을 생략할 수도 있다.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.
도 2는 본 발명에 따른 영상 움직임 추정 장치의 구성을 블록으로 도시한 것이다. 이 장치는 영상 데이터를 입력받아 영상의 각 프레임의 SAD 값을 계산하는 SAD계산부(200), 상기 영상 데이터의 각 프레임을 소정 크기의 매크로블록 및 부매크로블록들로 분할하여 각 매크로블록 및 부매크로블록 주변의 매크로블록이나 부매크로블록의 움직임 벡터 및 예측 벡터를 이용하여 움직임 벡터 추정값을 계산하는 움직임벡터계산부(210) 및 상기 소정 크기의 매크로블록 및 부매크로블록별로 이웃한 매크로블록이나 부매크로블록에 대해 SAD계산부(200)에서 계산된 SAD값과 움직임벡터계산부(210)의 움직임 벡터 추정값을 이용하여 상기 영상 데이터의 움직임을 추정하는 움직임갱신부(220)를 포함한다.
도 3은 본 발명에 따른 영상 움직임 추정 장치의 구성의 예를 그 주변 구성까지 포함하여 블록으로 도시한 것이다.
영상 데이터인 입력 데이터는 어드레스 생성부(340)에서 생성된 어드레스 값에 따른 주소로 메모리부(330)에 저장되고, 이 저장된 영상 데이터는 SAD계산부(300)로 입력된다.
움직임갱신부(320)는 SAD가 계산된 영상을 16x16 화소로 구성되는 매크로블록들로 나누어 움직임을 갱신하는 16x16모드 계산부(322), 16x16의 매크로블록들을 각각 16x8 화소 크기의 부매크로블록들로 나누어 움직임을 갱신하는 16x8모드 계산부(324), 16x16의 매크로블록들을 각각 8x16 화소 크기의 부매크로블록들로 나누어 움직임을 갱신하는 8x16모드 계산부(326) 및 16x16의 매크로블록들을 각각 8x8 화소 크기의 부매크로블록들로 나누어 움직임을 갱신하는 8x8모드 계산부(328)를 포함한다.
메모리부(330)에 영상 데이터가 저장되고, 메모리부(330)에서 SAD계산부(300)로 그리고 SAD계산부(300)와 움직임벡터계산부(310)에서 움직임갱신부(320)로 데이터가 전달되는 과정은 제어부(350)의 제어에 의해 실행된다. 제어부(350)는 본 발명에 따른 움직임 추정 장치가 시스템과 데이터를 주고 받을 수 있도록 버스와 연결되도록 한다.
영상 데이터는 메모리부(330)에 저장되며, 이때에 프레임 단위로 저장될 수 있다. 혹은 메모리부(330)에 저장되었던 영상 데이터는 프레임 단위로 SAD계산부(300)로 입력될 수 있다.
SAD계산부(300)에서는 영상 데이터를 입력받아 프레임에 포함된 각 매크로블록마다 두 블록간의 화소들 차의 절대값을 모두 합한 값인 SAD를 계산한다. 이때에 움직임갱신부(220)의 모드와 맞추어 16x16 크기의 매크로블록은 물론이며, 매크로블록들 내에 포함된 16x8, 8x16 및 8x8 크기의 부매크로블록들에 대해서도 SAD를 계산한다.
상기와 같은 각 크기별 매크로블록 혹은 부매크로블록들에 대한 SAD는 움직임갱신부(320)의 각 대응하는 모드계산부(322 내지 328)로 전달된다.
또한 메모리부(330)에 저장된 영상 데이터는 움직임벡터계산부(310)로도 전달된다. 도 3에는 다른 구성요소들과의 연결 관계를 보이기 위해 메모리부(330)와 움직임벡터계산부(310) 간의 연결을 표시하는 것이 생략되었다.
움직임벡터계산부(310)에서는 영상 데이터의 각 프레임들에 포함된 16x16 크기의 매크로블록과 매크로블록들 내에 포함된 16x8, 8x16 및 8x8 크기의 부매크로블록들에 대한 움직임 벡터를 계산한다.
본 발명에 따른 움직임 추정 장치는 부호화 모드를 결정하는 기능에 종속되어 있는 관계로 볼 수 있다. 부호화 모드 결정 과정에서 움직임 추정의 결과인 SAD(Sum of Absolute Difference) 또는 SATD(Sum of Absolute Transform Difference)와 움직임 벡터를 이용하기 때문이다.
본 발명에서도 사용되는 고복잡도 모드(high complexity mode)에서는 저복잡도 모드에서 고려하지 않았던 부호화에 필요한 비트량의 개념을 도입하여 RD(Rate-Distortion) 최적화 기법을 사용한다. 고복잡도 모드는 복잡도가 별로 문제가 되지 않는 경우, 예를 들면 연산 능력(computational power)이 충분히 주어지는 경우에 보다 나은 압축 및 오류 방지 성능을 얻어내기 위해서 사용하게 된다.
움직임벡터 계산부(310)에서는 다음의 수학식과 같이 RD(Rate Distortion) 최적화 기법을 사용하여 최적의 움직임 벡터를 계산한다.
Figure 112005052067470-pat00001
위의 수학식 1에서 SA(T)D 라는 표기는 SAD 혹은 SATD 를 나타낸다.
이때에
Figure 112005052067470-pat00002
움직임 벡터이며,
Figure 112005052067470-pat00003
예측 벡터이고,
Figure 112005052067470-pat00004
는 Lagrangian 계수
Figure 112005052067470-pat00005
이다.
움직임 벡터는 현재 매크로블록이나 부매크로블록에 대한 것이며, 예측 벡터는 현재의 분할 블록 이전의 블록에 대한 데이터를 참조해서 얻은 예측벡터이다. s는 참조영상이며, c는 현재영상에 대한 것을 나타낸다. 즉, c(m)은 현재 영상에 대한 움직임 벡터를 나타낸다.
그리고
Figure 112005052067470-pat00006
는 최종적으로 부호화되어야 할 움직임 정보의 비트수이다. 이때에 R이 레이트 왜곡(Rate Distortion)의 정도이다. 즉,
Figure 112005052067470-pat00007
는 움직임 벡터에서 예측 벡터를 뺀 벡터의 레이트 왜곡의 정도가 된다.
이때에 수학식 1에서 SAD는 다음과 같이 구해진다. 이는 SAD계산부(300)에서 실행된다.
Figure 112005052067470-pat00008
수학식 2에서 사용된 기호들의 정의는 수학식 1에서 사용된 것과 동일하다.
이때에 m은 움직임 벡터로서 첫 번째 분할 블록일 경우, 첫 번째 분할블록인 매크로블록 혹은 부매크로블록은 움직임 예측을 위해 참고할 블록이 주변에 없기 때문에 임의의 값으로 혹은 그 이전의 프레임에 대한 값을 이용할 수도 있다. 이때의 m은 움직임벡터계산부(310)의 입장에서는 외부로부터 입력받을 수 있다.
움직임 추정시, 정수 화소가 아닌 분수 화소(fractional pel)의 위치에서의 모드 결정에는 SAD가 아닌 SATD를 사용한다. 이것은 H.264/AVC 또한 기존의 국제 동영상 부호화 표준과 같이 잔차 신호(residual signal)를 변환한 후에, 변환 계수를 부호화하는 기법을 취하고 있기 때문이다. 즉, 상기와 같이 계산된 SAD를 모드 결정의 기준으로 삼을 경우, 변환된 계수의 특성을 완전하게 반영하지 못하여 최적의 움직임 벡터 혹은 공간 예측 모드를 얻어내는 것이 용이하지 않을 수 있다는 문제점을 해결하기 위해서이다. 따라서 변환에는 H.264/AVC에서 채택한 정수 변환(integer transform)을 채택하여 사용하는 것이 보다 최적의 모드를 결정하는데 더 효과적이겠으나, SATD를 사용할 경우에 야기될 수 있는 구현상에서의 복잡함을 제거하기 위해서 수학식 3에서 정의된 바와 같은 기저(Kernel)를 가지는 하다마드 변환(Hadamard transform)을 사용한다. 수학식 3에서 정의된 바와 같은 기저를 가지는 하다마드 변환을 2차원으로 행하여 DiffT를 구한 후 최종적으로 SATD를 구한다.
Figure 112005052067470-pat00009
수학식 3에서 정의된 기저를 이용하여, 다음의 수학식 4와 같이 DiffT를 구할 수 있다.
Figure 112005052067470-pat00010
여기서 H[]는 하다마드 변환 연산자(Hadamard transform operator)이다. 하다마드 변환은 수직 방향 및 수평 방향으로 수행함으로써 변환된 결과를 얻는다. 최종적으로 SATD는 다음과 같은 수학식에 의해 결정된다.
Figure 112005052067470-pat00011
상기와 같이 구해진
Figure 112005052067470-pat00012
을 최소화하는 움직임 벡터값을 구하여, 결과적으로 RD 최적화를 이용한 최적의 움직임 벡터를 구할 수 있다.
SAD계산부(300)는 한 영상의 16x16 화소 크기의 매크로블록 영역을 4개의 8x8 크기의 부매크로불록 영역으로 나누고, 각각의 8x8 크기의 부매크로 블록 영역에 대해 SAD를 계산할 수 있다. 8x8 크기의 부매크로불록 영역에 대한 SAD 계산값을 SAD8_8로 하면, 4개의 부매크로불록 영역 각각에 대한 SAD 값을 SAD8_08[0], SAD8_08[1], SAD8_08[2], SAD8_08[3]이라고 서로를 구분해서 표시할 수 있다. 이때에 이 4개의 SAD 계산값을 SAD8_8[0..3]라고 표시할 수 있다.
SAD계산부(300)는 SAD8_8[0..3]을 계산하는 모듈(SAD calculator)과 이를 저장하기 위한 버퍼모듈(Buffer for Storing SAD8_8)을 포함하며, 각 버퍼모듈에 저장된 SAD8_8을 움직임갱신부(320)의 각 모드별 계산부(322 내지 328)로 전달한다. 이와 같은 버퍼모듈은 하나의 후보 벡터당 4개의 SAD8_8을 저장하여 이를 병렬적으로 움직임갱신부(320)에 공급하므로 그 결과 움직임갱신부(320)에 포함된 4개의 모드 계산부(322 내지 328)가 동시에 동작할 수 있도록 한다.
16x16 모드 계산부(322)에는 SAD8_08[0..3]의 전부를 더한 결과를 공급하고, 16x8 모드 계산부(324)에는 SAD8_08[0]과 SAD8_08[1]을 더한 결과를 공급하고, SAD8_08[2]와 SAD8_08[3]을 더한 결과를 그 다음에 공급한다. 8x16 모드 계산부(326)에는 SAD8_08[0]과 SAD8_08[2]를 더한 결과를 공급하고, SAD8_08[1]과 SAD8_08[3]을 더한 결과를 그 다음에 공급한다. 또한 8x8 모드 계산부(328)에는 SAD8_08[0], SAD8_08[1], SAD8_08[2], SAD8_08[3]의 결과를 차례로 공급한다.
상기와 같은 블록별 동시 동작을 지원하기 위해 본 발명에서는 종래와는 다르게 부매크로블록에 대한 움직임 벡터를 이용해서 각 블록별로 움직임을 동시에 추정한다.
종래에는 부매크로블록 및 부블록에 대한 움직임 벡터를 순차적으로 얻어서 움직임을 추정해야 한다. 예를 들어, 16x8 분할 모드의 경우, 첫번째 16x8 부매크로블록의 움직임 벡터가 결정되어야 두번째 16x8 부매크로블록의 움직임 예측 벡터를 얻을 수 있다. 이러한 이유로 부매크로블록 및 부블록에 대한 움직임 벡터를 순차적으로 구할 수 밖에 없다. 이는 움직임 추정기의 구현에 있어서 중대한 문제를 야기시킨다. 부호기 계산량의 상당 부분을 차지하는 움직임 추정기의 속도를 개선하기 위해, 일반적으로 하드웨어로 구현하지만, 고복잡도 모드의 움직임 추정기는 병렬적으로 움직임 추정을 할 수 없기 때문에 움직임 추정기의 속도 개선에 한계를 가진다.
이런 한계를 개선하기 위하여 본 발명에서는 이웃하는 블록의 위치를 이용하여 움직임갱신부(320)의 각 모드별 계산부(322 내지 328)를 동시에 동작시키면서 영상 데이터의 움직임을 추정한다.
도 4a 내지 도 4i는 본 발명에 따라 모드별 계산을 하는 과정을 설명하기 위한 도면이다. 도면에서 굵게 표시된 부분은 매크로블록의 경계를 표시한 것이며, 가늘게 표시된 부분은 블록의 경계를 표시한다.
도 4a는 16x16 화소 크기의 매크로블록 단위로 화면이 구분된 것을 도시한 것이다. 이와 같이 구분한 단위로 16x16 모드 계산부(322)에서 움직임을 추정한다.
도 4a에서 X로 표시된 매크로블록을 기준으로 할 때, 이전 영상의 움직임 벡터 값들은 각각 A, B, C 위치에 대응되는 매크로블록들의 움직임 벡터값들이다. 이들 벡터들의 중간값(median)으로 움직임을 추정한다. 이 경우 만일 블록 C가 유효하지 않는 경우에는 A의 윗쪽(upper) 블록인 D로 대체된다.
이와 같이 움직임 벡터 추정값을 계산하거나 움직임을 추정할 때에 이웃한 매크로블록 혹은 부매크로블록을 참조하는 것은 현재의 매크로블록 혹은 부매크로블록을 기준으로 상단(upper), 상우단(upper right) 및 좌단(left)에 위치한 매크로블록 혹은 부매크로블록들을 참조하는 것이 바람직하며, 부매크로블록에 포함된 영상의 움직임을 추정할 때에 한 매크로블록 내부에 포함된 모든 부매크로블록에 대해 움직임을 추정한 후에 다음의 매크로블록에 포함된 부매크로블록에 대한 움직임을 추정하는 것이 바람직하다.
그리고 부매크로블록에 포함된 영상의 움직임을 추정할 때에 현재의 부매크로블록을 기준으로 상단(upper), 상우단(upper right) 및 좌단(left)의 부매크로블록들 중에 움직임 추정이 되지 않은 부매크로블록이 있는 경우 그 부매크로블록은 제외하고 움직임을 추정하며, 부매크로블록에 포함된 영상의 움직임을 추정할 때에 현재의 부매크로블록을 기준으로 상단(upper), 상우단(upper right) 및 좌단(left)의 부매크로블록들 중에 현재의 부매크로블록이 포함된 매크로블록 이후에 처리될 매크로블록에 속한 부매크로블록이 있는 경우 그 부매크로블록은 제외하고 상좌단(upper left) 부매크로블록을 포함시켜 움직임을 추정하는 것이 바람직하다.
도 4b와 4c는 16x8 크기의 부매크로블록으로 16x16의 매크로블록을 나눈 모습을 도시한 것이다. 16x8 모드 계산부(324)는 이와 같이 나누어진 블록들 단위로 움직임을 추정한다. 도 4b의 경우는 도 4a와 같이 현재 위치 X를 위해 A, B, C의 부매크로블록들이 참조된다. 그러나 도 4c의 경우 현재 위치 X에 대해서 C의 부매크로블록은 참조될 수 없다. B의 부매크로블록에 대해 움직임 추정을 한 후 X 블록에 대한 움직임 추정을 하므로 아직 부매크로블록 C에 대해서는 어떤 추정도 되지 않은 상태이기 때문이다.
도 4d와 4e는 16x16 화소 크기의 매크로블록을 8x16 크기로 구분한 것을 도시한 것이다. 8x16 모드 계산부(326)에서 이 부매크로블록 단위로 움직임을 추정한다. 이 경우는 도 4a과 같은 방법으로 각 블록들에 대해 움직임이 추정된다.
도 4f 내지 도 4i는 8x8 크기의 부매크로블록으로 16x16의 매크로블록을 나눈 모습을 도시한 것이다. 8x8 모드 계산부(328)는 이와 같이 나누어진 블록들 단위로 움직임을 추정한다.
도 4f 내지 4h의 경우에는 도 4a와 마찬가지로 이웃한 블록들을 참조하여 움직임을 추정하나 도 4i의 경우에는 현재 위치 X에 대해 C 부매크로블록을 참조하지 않고 D 부매크로블록을 참조하여 움직임을 추정한다. 도 4i의 경우 D, B, A의 부매 크로블록들에 대해 움직임을 추정한 후에 X에 대해 움직임을 추정하게 되며, 이 경우 C의 부매클블록은 아직 움직임이 추정된 것이 아니므로 X에 대한 움직임 추정에는 참고되지 않는 것이다.
영상의 특성상 이웃하는 영역의 값은 서로 유사성을 가지므로 본 발명과 같은 움직임 추정은 신뢰성있는 결과를 얻을 수 있다는 것을 알 수 있다.
또한 본 발명에 따라 움직임 추정을 위한 벡터값을 주변 매크로블록 혹은 부매크로블록으로부터 얻고, 이를 모든 분할 블록에 대해 적용한다면 움직임 추정을 위한 장치의 구조는 고복잡도이지만 저복잡도 모드의 움직임 추정기의 구조와 유사하게 만들어질 수 있다.
또한 상기와 같이 본 발명을 통해 움직임 추정을 위한 연산과 각 블록의 면적 혹은 크기를 줄일 수 있으므로 종래에 비해 움직임 추정을 위한 소자 동작에 필요한 전력이 작아도 되며, 실장 면적을 줄일 수 있는 이점을 제공받을 수 있다
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 상기의 설명에 포함된 예들은 본 발명에 대한 이해를 위해 도입된 것이며, 이 예들은 본 발명의 사상과 범위를 한정하지 않는다. 상기의 예들 외에도 본 발명에 따른 다양한 실시 태양이 가능하다는 것은, 본 발명이 속한 기술 분야에 통상의 지식을 가진 사람에게는 자명할 것이다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있 는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
또한 본 발명에 따른 상기의 각 단계는 일반적인 프로그래밍 기법을 이용하여 소프트웨어적으로 또는 하드웨어적으로 다양하게 구현할 수 있다는 것은 이 분야에 통상의 기술을 가진 자라면 용이하게 알 수 있는 것이다.
본 발명에 의하면, 영상 데이터를 입력받아 영상의 각 프레임의 SAD 값을 계산하는 SAD계산부, 영상 데이터의 각 프레임을 소정 크기의 매크로블록 및 부매크로블록들로 분할하여 각 매크로블록 및 부매크로블록 주변의 매크로블록이나 부매크로블록의 움직임 벡터 및 예측 벡터를 이용하여 움직임 벡터 추정값을 계산하는 움직임벡터계산부 및 소정 크기의 매크로블록 및 부매크로블록별로 이웃한 매크로블록이나 부매크로블록에 SAD계산부에서 계산된 SAD값과 상기 움직임벡터계산부의 움직임 벡터 추정값을 이용하여 상기 영상 데이터의 움직임을 추정하는 움직임갱신부를 포함하여, 이웃 블럭을 참조하여 움직임 추정을 할 수 있으므로 종래의 움직임 추정 장치에 비해 장치를 구현하기 위해 필요한 장치의 크기나 경제적인 비용이 크게 줄어들며, 움직임 추정을 위해 저전력으로 동작할 수 있는 효과가 있다.

Claims (6)

  1. 영상 데이터를 입력받아 영상의 각 프레임의 SAD 값을 계산하는 SAD계산부;
    상기 영상 데이터의 각 프레임을 소정 크기의 매크로블록 및 부매크로블록들로 분할하여 각 매크로블록 및 부매크로블록 주변의 매크로블록이나 부매크로블록의 움직임 벡터 및 예측 벡터를 이용하여 움직임 벡터 추정값을 계산하는 움직임벡터계산부; 및
    상기 소정 크기의 매크로블록 및 부매크로블록별로 이웃한 매크로블록이나 부매크로블록의 상기 SAD계산부에서 계산된 SAD값과 상기 움직임벡터계산부의 움직임 벡터 추정값을 이용하여 상기 영상 데이터의 움직임을 추정하는 움직임갱신부;를 포함하는 것을 특징으로 하는 영상 움직임 추정 장치.
  2. 제1항에 있어서,
    상기 움직임갱신부는 상기 SAD계산된 각 프레임을 16x16 화소 크기의 매크로블록과 상기 매크로블록에 포함되며 매크로블록을 16x8, 8x16 및 8x8 화소 크기로 분할한 부매크로블록으로 나누어 각 블록별로 동시에 움직임 벡터 추정값을 계산하는 것을 특징으로 하는 영상 움직임 추정 장치.
  3. 제2항에 있어서,
    상기 움직임 벡터 추정값을 계산하거나 움직임을 추정할 때에 이웃한 매크로 블록 혹은 부매크로블록을 참조하는 것은 현재의 매크로블록 혹은 부매크로블록을 기준으로 상단(upper), 상우단(upper right) 및 좌단(left)에 위치한 매크로블록 혹은 부매크로블록들을 참조하는 것을 특징으로 하는 영상 움직임 추정 장치.
  4. 제2항 또는 제3항에 있어서,
    상기 부매크로블록에 포함된 영상의 움직임을 추정할 때에 한 매크로블록 내부에 포함된 모든 부매크로블록에 대해 움직임을 추정한 후에 다음의 매크로블록에 포함된 부매크로블록에 대한 움직임을 추정하는 것을 특징으로 하는 영상 움직임 추정 장치.
  5. 제4항에 있어서,
    상기 부매크로블록에 포함된 영상의 움직임을 추정할 때에 현재의 부매크로블록을 기준으로 상단(upper), 상우단(upper right) 및 좌단(left)의 부매크로블록들 중에 움직임 추정이 되지 않은 부매크로블록이 있는 경우 그 부매크로블록은 제외하고 움직임을 추정하는 것을 특징으로 하는 영상 움직임 추정 장치.
  6. 제4항에 있어서,
    상기 부매크로블록에 포함된 영상의 움직임을 추정할 때에 현재의 부매크로블록을 기준으로 상단(upper), 상우단(upper right) 및 좌단(left)의 부매크로블록들 중에 현재의 부매크로블록이 포함된 매크로블록 이후에 처리될 매크로블록에 속 한 부매크로블록이 있는 경우 그 부매크로블록은 제외하고 상좌단(upper left) 부매크로블록을 포함시켜 움직임을 추정하는 것을 특징으로 하는 영상 움직임 추정 장치.
KR1020050087023A 2004-12-08 2005-09-16 영상 움직임 추정 장치 KR100723840B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/290,651 US20060120455A1 (en) 2004-12-08 2005-11-30 Apparatus for motion estimation of video data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040103062 2004-12-08
KR20040103062 2004-12-08

Publications (2)

Publication Number Publication Date
KR20060064509A KR20060064509A (ko) 2006-06-13
KR100723840B1 true KR100723840B1 (ko) 2007-05-31

Family

ID=37160060

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050087023A KR100723840B1 (ko) 2004-12-08 2005-09-16 영상 움직임 추정 장치

Country Status (1)

Country Link
KR (1) KR100723840B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101365570B1 (ko) 2007-01-18 2014-02-21 삼성전자주식회사 인트라 예측 부호화, 복호화 방법 및 장치
KR100994983B1 (ko) 2008-11-11 2010-11-18 한국전자통신연구원 고속 움직임 탐색 장치 및 그 방법
WO2011099792A2 (ko) * 2010-02-10 2011-08-18 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
CN107087168B (zh) * 2017-03-31 2020-07-31 武汉斗鱼网络科技有限公司 一种对帧内预测模式的判断方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990069287A (ko) * 1998-02-06 1999-09-06 구본준 엠펙-2에 따른 움직임 벡터 추정 장치
KR20050005302A (ko) * 2003-07-01 2005-01-13 삼성전자주식회사 B-픽처의 움직임 보상 모드 결정방법 및 장치
KR20050033099A (ko) * 2003-10-04 2005-04-12 삼성전자주식회사 고속 움직임 추정 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990069287A (ko) * 1998-02-06 1999-09-06 구본준 엠펙-2에 따른 움직임 벡터 추정 장치
KR20050005302A (ko) * 2003-07-01 2005-01-13 삼성전자주식회사 B-픽처의 움직임 보상 모드 결정방법 및 장치
KR20050033099A (ko) * 2003-10-04 2005-04-12 삼성전자주식회사 고속 움직임 추정 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
1019990069287
1020050005302
1020050033099

Also Published As

Publication number Publication date
KR20060064509A (ko) 2006-06-13

Similar Documents

Publication Publication Date Title
JP4724351B2 (ja) 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
KR101192026B1 (ko) 소스 픽쳐의 시퀀스를 코딩하는 방법 또는 장치
US9100664B2 (en) Image encoding device, image decoding device, image encoding method, and image decoding method
JP5081305B2 (ja) フレーム間予測符号化の方法および装置
KR100739281B1 (ko) 움직임 추정 방법 및 장치
US6618439B1 (en) Fast motion-compensated video frame interpolator
US20060120455A1 (en) Apparatus for motion estimation of video data
US9172973B2 (en) Method and system for motion estimation in a video encoder
EP1993292B1 (en) Dynamic image encoding method and device and program using the same
JP5490823B2 (ja) 画像の系列を表すストリームを復号化する方法、画像の系列を符号化する方法及び符号化データ構造
JP4694903B2 (ja) 符号化方法およびこの方法を実施するための回路装置
US8204118B2 (en) Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media which store the programs
US10798414B2 (en) Method and device for selective multi-sample intra-prediction
US20060222074A1 (en) Method and system for motion estimation in a video encoder
CN102752593A (zh) 估计运动矢量的方法和设备,编码器/解码器和解码方法
JP2004518342A (ja) スケーラブルビデオトランスコーディング方法及び装置
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
JP3866624B2 (ja) 動画像符号化方法,動画像復号方法,動画像符号化装置および動画像復号装置
KR100723840B1 (ko) 영상 움직임 추정 장치
JP2009260421A (ja) 動画像処理システム、符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
KR100926752B1 (ko) 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치
KR20120072205A (ko) 매크로블록 간의 예측 기법을 이용한 움직임 추정 장치 및 방법
CN1568009A (zh) 用于视频编码的运动矢量预测方法
KR100801974B1 (ko) 저비용 움직임 추정 장치 및 움직임 추정 방법
KR100671040B1 (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: 20120509

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee