KR20010083717A - 움직임 추정 방법 및 장치 - Google Patents

움직임 추정 방법 및 장치 Download PDF

Info

Publication number
KR20010083717A
KR20010083717A KR1020000008221A KR20000008221A KR20010083717A KR 20010083717 A KR20010083717 A KR 20010083717A KR 1020000008221 A KR1020000008221 A KR 1020000008221A KR 20000008221 A KR20000008221 A KR 20000008221A KR 20010083717 A KR20010083717 A KR 20010083717A
Authority
KR
South Korea
Prior art keywords
motion vector
motion
macroblock
estimation
estimate
Prior art date
Application number
KR1020000008221A
Other languages
English (en)
Other versions
KR100739281B1 (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 KR1020000008221A priority Critical patent/KR100739281B1/ko
Priority to US09/782,568 priority patent/US6778606B2/en
Publication of KR20010083717A publication Critical patent/KR20010083717A/ko
Application granted granted Critical
Publication of KR100739281B1 publication Critical patent/KR100739281B1/ko

Links

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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66CCRANES; LOAD-ENGAGING ELEMENTS OR DEVICES FOR CRANES, CAPSTANS, WINCHES, OR TACKLES
    • B66C7/00Runways, tracks or trackways for trolleys or cranes
    • B66C7/16Devices specially adapted for limiting trolley or crane travel; Arrangements of buffer-stops
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66CCRANES; LOAD-ENGAGING ELEMENTS OR DEVICES FOR CRANES, CAPSTANS, WINCHES, OR TACKLES
    • B66C15/00Safety gear
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Mechanical Engineering (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 디지털 동영상 부호화의 움직임 벡터 추정 방법 및 장치, 특히, 움직임 벡터 추정에 앞서 주위 매크로블록들의 움직임 벡터 정보와 움직임 보상에 의한 오차 정보를 이용하여 현재 매크로블록의 움직임 벡터의 예측 움직임 벡터를 얻고 이 예측 움직임 벡터를 이용하여 움직임 보상 후 얻어진 오차를 주위 매크로블록들의 움직임 보상 오차와 비교함으로써, 움직임 벡터 추정 과정을 수행하여 현재 매크로블록의 움직임 벡터를 찾을 것인지 예측된 움직임 벡터를 현재 매크로블록의 움직임 벡터로 사용할 것인지를 판단하여 움직임 벡터 추정 과정을 선택적으로 수행함으로써 소프트웨어적으로 구현되었을 경우 부호화 시간을 감소시키고 하드웨어적으로 구현될 경우 부호화 시간을 감소시킬 뿐만 아니라 움직임 벡터 추정 장치에서 소요되는 전력을 절감할 수 있는 저전력 움직임 추정 방법 및 장치에 관한 것이다.

Description

움직임 추정 방법 및 장치{MOTION ESTIMATION METHOD AND APPRATUS}
본 발명은 디지털 동영상 부호화 장치중의 움직임 벡터 추정 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 움직임 벡터 추정에 앞서 움직임 벡터 추정 과정의 수행 여부를 결정하여 움직임 벡터 추정 과정을 선택적으로 수행하도록 함으로써 소모 전력을 절감할 수 있는 움직임 추정 방법 및 장치에 관한 것이다.
동영상 신호의 압축 부호화 및 복호화는 저속 채널(low rate channel)을 통한 영상 정보의 전송을 가능하게 할 뿐만 아니라 해당 영상을 저장하는데 요구되는 메모리의 용량을 감소시킬 수 있기 때문에, 이러한 압축 부호화 및 복호화 기술은 영상의 저장(storage), 전송(transmission) 등의 응용(application)을 요구하는 멀티미디어(multimedia) 산업에 있어서 매우 중요한 기술이다.
도 1은 종래의 동영상 부호화 장치의 블록도이다. 동영상을 효율적으로 압축 부호화하기 위한 방법으로 현재 영상을 부호화할 때 이전의 영상을 참조하여 움직임 벡터(motion vector)를 추정(estimation)하고, 추정된 움직임 벡터를 이용하여 움직임 보상 예측(motion compensation prediction)을 수행하여, 예측 오차 (prediction error)를 부호화하는 방법이 일반적으로 사용되어 왔다. 도 1을 참조하면, 종래의 동영상 부호화 장치는 입력된 현재 영상과 움직임 예측기(10)에서 얻어진 예측 영상(prediction frame)과의 차 영상(frame difference)을 변환하는 변환기(20), 이 변환계수를 데이터 압축을 위하여 양자화하는 양자화기(30), 양자화된 변환 계수(transform coefficient)들을 가변길이부호화(VLC; Variable Length Coding)하는 가변길이부호화기(40), 역양자화기(50) 및 역변환기(60)로 구성된다. 이러한 부호화 장치에서 역양자화기(50) 및 역변환기(60)를 통해 복원된 차 영상은 움직임 예측기(10)에 입력되어 움직임 보상 예측된 영상과 더해져 복원 영상을 얻는데 사용된다. 한편, 움직임 예측기(10)는 입력을 통해 들어온 현재 영상과 이전 영상을 이용하여 움직임 벡터 추정을 수행하고 이를 이용하여 예측 영상을 찾는다. 또한 움직임 예측기(10)는 움직임 보상 예측을 수행하며, 추정된 움직임 벡터는 가변길이부호화기(40)에 입력되어 변환 계수와 함께 가변길이부호화되어 전송된다. 가변길이부호화기(40)로부터 출력된 영상 정보 비트스트림은 수신단으로 전송되거나, 다른 신호들과 다중화하기 위하여 다중화기로 전송된다.
일반적인 동영상 부호화 방법 및 장치에서는 전체 영상 단위로 움직임 예측 및 보상 등을 행하는 대신에, 일정한 크기(가로 방향으로 M 화소, 세로 방향으로 N화소(통상적으로 M×N으로 표시))의 화소(picture element 또는 pixel)의 집합 단위로 움직임 예측 및 보상 등을 수행하는데, 이러한 화소의 집합을 매크로블록(macroblock)이라 일컫는다. 일반적으로 동영상 부호화 방법 및 장치에서는 매크로블록의 크기를 가로로 16 화소, 세로로 16 화소(이하에서는 이러한 크기를 "16×16"으로 표기)로 규정한다. 본 발명에서는 매크로블록의 크기를 특정 크기로 제한할 필요는 없으나, 설명의 용이성을 위하여 16×16의 경우를 예로 들어 설명한다. 움직임 벡터는 2차원 정보로, 이전 프레임과 현재 프레임에서 물체의 이동을 X-Y 이차원 좌표상의 이동량으로 표시한 것이다. 즉, 움직임 벡터는 가로 방향의 움직임 크기와 세로 방향의 움직임 크기로 구성된다.
도 2는 도 1의 동영상 부호화 장치 중의 움직임 예측기(10)의 세부 구성도이다. 종래의 움직임 예측기(10)는 움직임 보상을 수행하는 움직임 보상부(motion compensation unit)(11), 움직임 벡터 추정을 수행하는 움직임 추정부(motion estimation unit)(12), 예측 영상을 얻기 위해 사용되는 이전 영상의 복원 영상을 얻는 이전 영상 복원부(previous image reconstruction unit)(13)로 구성되어 있다. 이전 영상 복원부(13)는 역변환기(60)로부터 입력된 차 영상의 복원 영상과 내부적으로 저장하고 있던 과거의 복원 영상을 더함으로써 부호화된 영상의 복원 영상을 얻고, 다음 입력 영상의 움직임 추정시 움직임 추정부(12)의 입력으로 사용된다. 움직임 추정부(12)는 이전 영상 복원부(13)로부터의 입력과 현재 입력된 영상을 통하여 현재 영상의 부호화를 위한 움직임 추정을 수행하여 움직임 벡터를 출력한다. 출력된 움직임 벡터는 가변길이부호화를 위해 가변길이부호화기(40)로 전달되는데, 가변길이부호화기(40)는 발생 빈도가 높은 값에 대하여는 적은 수의 비트를 할당하고, 발생 빈도가 낮은 값에 대하여는 많은 수의 비트를 할당함으로써 고정 길이 부호화(Fixed Length Coding; FLC)에 비하여 훨씬 적은 비트 수로 부호화할 수 있다. 한편, 움직임 추정부(12)로부터 출력된 움직임 벡터는 움직임 보상부(11)에 입력되고, 움직임 보상부(11)는 입력된 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 최종적으로 예측 영상을 출력한다.
움직임 추정할 때 입력영상으로 이전의 복원 영상 대신 이전의 원 영상이 사용될 수 있다. 원 영상이 사용되는 경우에는 도 2에 이전의 원 영상을 저장할 메모리가 필요하다. 주의할 점은 참조영상으로 이전의 원 영상이 사용될 때라도 이는 움직임 추정할 때만이며, 움직임 보상부의 입력은 복원 영상이 사용된다. 이는 복호화장치에서 동일한 영상을 복원해야 하는데, 복호화장치에서는 이전 영상으로 복원 영상만을 가질 수 있기 때문이다. 이하의 본 명세서에서는 이들을 통칭하여 참조 영상이라 일컫는다.
움직임 벡터는 영상의 특성상 주변 블록 혹은 매크로블록의 움직임 벡터와 밀접한 연관성(correlation)을 갖는다. 따라서 움직임 벡터를 그대로 가변길이부호화하지 않고, 인접하는 블록 혹은 매크로블록의 움직임 벡터들을 이용하여 추정한 움직임 벡터와의 차이 벡터(difference vector)를 가변길이부호화하면 차이 벡터가 0 또는 0에 근접하는 값을 갖는 빈도가 크게 증가하므로 부호화 효율(coding efficiency)을 높일 수 있다.
도 3은 가장 일반적으로 사용되는, 현재 부호화할 매크로블록의 움직임 벡터와 이 움직임 벡터의 예측에 사용되는 주위 매크로블록의 위치와 각각의 움직임 벡터를 보여준다. 인접 움직임 벡터를 이용하여 예측 움직임 벡터를 구할 때 일반적으로 사용되는 방법은 현재 부호화할 매크로블록(MB_X) 주위의 3개의 매크로블록, 즉 좌단 (MB_A), 상단 (MB_B), 및 우상단 (MB_C) 매크로블록의 움직임 벡터들의 중간값 (median value)을 취하여 예측 움직임 벡터를 결정하며, 이 예측 움직임 벡터와 추정된 움직임 벡터와의 차를 구하여 가변길이부호화하는 방법이다. 이러한 방법은 ITU-T의 H.263 및 ISO/IEC MPEG-4에서 사용되고 있다.
도 4는 종래의 도 2의 움직임 예측기(10)중의 움직임 추정부(12)의 세부 블록도이다. 일반적으로 움직임 벡터 추정 방법에는 전역탐색 (full search), 피라미드 탐색 (pyramidal search), 3단계 탐색 (three-step search), 4단계 탐색 (four-step search) 등이 있는데, 그 방법에 따라 계산 복잡도 (computational complexity)가 다르다. 특히, 전역탐색 방법은 매우 많은 계산량을 요구하는 대신 성능은 가장 우수한 특성을 갖고 있다. 기존에 동영상 부호화기에서 움직임 추정부(12)는 크게 두 파트로 구성된다. 보다 상세하게, 제 1 움직임 추정부(121)는 정수 단위 (integer-pixel unit)의 움직임 벡터 추정을 행하는데, 예를 들어, 전역 탐색 방법에서는 1 화소 단위로, 피라미드 탐색 방법에서는 1 화소 단위 또는 2 화소 단위 이상으로 움직임 벡터 추정을 행한다. 즉, 이 단위는 탐색 방법에 의존한다. 제 2 움직임 추정부(122)는 제 1 움직임 추정부(121)에 의해 구해진 움직임 벡터 1 주위에 대해 좀 더 세밀한 단위로 움직임 벡터를 탐색하는데, 일반적으로 0.5 화소 단위 (half-pixel unit)까지 찾는다. 제 1 움직임추정부(121) 및 제 2 움직임 추정부(122)는 메모리(123)에 저장된 영상들을 이용하여 각자의 역할을 수행하게 된다.
앞서 설명한 바와 같이, 움직임 벡터 추정 또한 매크로블록 단위로 이루어지는데, 움직임 벡터 추정이란 현재 영상의 블록과 가장 닮은 부분을 참조 영상 (reference frame)에서 찾는 과정을 말한다. 일반적으로 참조 영상은 시간적으로 현재 부호화할 영상의 직전의 이전 영상이지만, MPEG-2의 B 영상 (Bidirectional predicted frame)인 경우 시간적으로 이후의 영상이 될 수도 있다. 그러므로, 도 1, 도 2 및 설명에서 이전 영상이라고 표현한 것은 정확히 말하면 참조영상이다. 그리고 상기한 바와 같이 참조 영상은 원 영상일 수도 있고 복원 영상일 수도 있다.
종래의 움직임 벡터 추정은 주위 매크로블록에 대한 정보를 이용하지 않고 단지, 현재 영상의 매크로블록과 가장 닮은 부분을 이전 영상에서 찾는 방법으로 이루어졌다. 또한, 모든 블록에 대하여 획일적으로 움직임 벡터 추정을 행하였는데, 동영상 부호화에 있어서 움직임 벡터 추정 과정은 가장 많은 계산을 요구하는 과정이므로 이와 같이 모든 블록에 대하여 움직임 추정을 행하면 소프트웨어적으로 구현될 경우 부호화 시간이 증가하고 하드웨어적으로 구현될 경우 부호화 시간이 증가함은 물론 움직임 추정 장치에서 소모되는 전력이 커지는 문제점이 발생한다.
본 발명의 목적은 상술한 종래 기술의 문제점을 극복하는 것으로, 움직임 벡터를 찾아야 할 현재 블록 주위의 블록들의 움직임 벡터를 이용하여 현재 블록의 움직임 벡터 추정을 수행할 것인지 여부를 판단하여, 수행하지 않아도 된다고 판단된 블록에 대해서는 움직임 벡터 추정을 수행하지 않음으로써 부호화 시간 및 소모전력을 줄일 수 있는 움직임 추정 방법 및 장치를 제공하는 것이다.
즉, 본 발명의 하나의 양상은
현재 부호화하고자 하는 매크로블록 주위의 매크로블록의 움직임 벡터와 움직임 추정 오차를 입력 받아서 움직임 벡터 추정 과정의 수행 여부를 판단하는 움직임 벡터 추정여부 판단부;
상기 움직임 벡터 추정 여부 판단부로부터 움직임 벡터 추정부를 구동시키는 신호를 입력받아 움직임 벡터 추정을 행하는 움직임 벡터 추정부;
상기 움직임 벡터 추정 여부 판단부의 판단 결과에 따라 움직임 벡터 추정 여부 판단부의 출력과 움직임 벡터 추정부의 출력 가운데 하나를 선택하는 스위치; 및
입력 영상 신호와 이전 복원 영상 신호를 저장하고 있는 메모리를 포함하는 것을 특징으로 하는 움직임 추정 장치를 제공하는 것이다.
본 발명의 두 번째 양상은 현재 부호화하고자 하는 매크로블록 주위의 매크로블록의 움직임 벡터와 움직임 추정 오차를 입력 받아서 움직임 벡터 추정 과정의 수행 여부를 판단하는 움직임 벡터 추정여부 판단부;
상기 움직임 벡터 추정 여부 판단부로부터 움직임 벡터 추정부를 구동시키는 신호를 입력받아 상대적으로 큰 화소 단위로 움직임 벡터 추정을 행하는 제 1 움직임 벡터 추정부;
상기 움직임 벡터 추정 여부 판단부의 판단 결과에 따라 움직임 벡터 추정 여부 판단부의 출력과 제 1 움직임 벡터 추정부의 출력 가운데 하나를 선택하는 스위치;
상기 스위치의 결과를 이용하여 상대적으로 세밀한 화소 단위의 움직임 벡터추정을 행하는 제 2 움직임 벡터 추정부; 및
부호화할 입력 영상과 이전 복원 영상을 저장하고 있는 메모리를 포함하는 것을 특징으로 하는 움직임 추정 장치를 특징으로 한다.
본 발명의 또 다른 양상은 동영상 압축 부호화시 움직임 추정을 행함에 있어서,
현재 움짐임 벡터를 추정할 매크로블록 주위의 복수 개의 매크로블록의 움직임 벡터 중에서 한 개의 예측 움직임 벡터를 선정하는 제 1 단계;
상기 제 1 단계에서 선정된 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 추정할 매크로블록을 움직임 보상 예측하여 움직임 추정 오차를 구하는 제 2 단계;
현재 움직임 벡터를 추정할 매크로블록의 주위의 복수 개의 매크로블록의 움직임 추정 오차를 이용하여 임계치를 결정하는 제 3 단계;
제 2 단계에서 구한 현재 매크로블록의 움직임 추정 오차가 제 3단계에서 구한 임계치 보다 작거나 같은가를 판단하는 제 4 단계;
제 4 단계의 판단 결과 현재 매크로블록의 움직임 추정 오차가 제 3단계에서구한 임계치 보다 작거나 같은 경우, 움직임 예측을 수행하지 않고 제 1단계에서 예측된 움직임 벡터를 움직임 벡터로 결정하는 제 5 단계; 및
제 4 단계의 판단 결과 현재 매크로블록의 움직임 추정 오차가 제 3단계에서 구한 임계치 보다 큰 경우, 움직임 벡터 추정을 수행하여 움직임 벡터를 결정하는 제 6 단계를 포함하는 것을 특징으로 하는 움직임 벡터 추정 방법을 특징으로 한다.
도 1은 기존의 디지털 동영상 부호화 장치의 블록도,
도 2는 도 1의 디지털 동영상 부호화 장치중의 움직임 예측기의 세부 블록도,
도 3은 움직임 벡터 추정 여부 판단에 사용되는 현재 부호화할 매크로블록 주위의 매크로블록들의 위치(MB_A, MB_B, MB_C)를 설명한 도면,
도 4는 종래의 도 2의 움직임 추정부의 세부 블록도,
도 5는 본 발명의 움직임 추정장치의 일실시예의 블록도,
도 6은 도 5의 움직임 추정장치 중의 움직임 추정 여부 판단부의 세부 블록도,
도 7은 본 발명의 움직임 추정 장치의 다른 실시예의 블록도,
도 8은 본 발명의 움직임 추정 방법의 플로우 챠트이다.
* 도면의 주요 부분에 대한 부호의 설명*
10 : 움직임 예측기 20 : 변환기
30 : 양자화기 40 : 가변길이부호화기
50 : 역양자화기 60 : 역변환기
11 : 움직임 보상부 12 : 움직임 추정부
13 : 이전영상 복원부 121 : 제 1 움직임 추정부
122: 제 2 움직임 추정부 123 : 메모리
110: 움직임 벡터 추정여부 판단부 120 : 움직임 벡터 추정부
130: 스위치 111 : 임계치 결정부
112: 예측움직임 벡터 결정부 113 : 움직임 보상부
114: 비교기
이하에서 첨부 도면을 참조하여 본 발명을 더욱 상세히 설명하면 다음과 같다. 본 발명의 상세한 설명에 앞서 본원에서 사용되는 약어의 정의를 설명한다.
본 발명에서 "MB_X"는 현재 부호화하고자 하는 매크로블록을 의미한다.
본 발명에서 "MB_A"는 MB_X의 바로 좌측에 위치한 매크로블록을 의미한다.
본 발명에서 "MB_B"는 MB_X의 바로 윗쪽에 위치한 매크로블록을 의미한다.
본 발명에서 "MB_C"는 MB_X의 바로 우측 위쪽에 위치한 매크로블록을 의미한다.
본 발명에서 "MV_m"는 매크로블록 m(m=A,B,C)의 움직임 벡터를 의미하는 것이다.
본 발명에서 "MVp"는 MV_X에 대한 예측 움직임 벡터를 의미한다.
본 발명에서 "SAD"는 N×N 크기의 매크로블록 U와 V의 절대 오차 합(SAD; Sum of Absolute Difference)을 의미하는 것으로, 하기 수학식 1에 의해 정의된다.
본 발명에서 "SAD_m"은 MV_m으로 움직임 보상을 수행했을 때 얻어지는 매크로블록의 m(m=A,B,C)의 SAD이다.
본 발명에서 "SAD_X"는 MVp로 움직임 보상을 수행했을 때 얻어지는 SAD이다.
본 발명에서 "Median()"는 괄호 안의 요소들의 중간값을 반환하는 함수를 의미한다. 예를 들어, Median(1,3,7)= 3이다.
도 5는 본 발명의 움직임 추정장치의 일실시예의 블록도이다. 본 발명의 움직임 추정 장치에서 움직임 벡터 추정 여부 판단부(110)는 현재 부호화할 매크로블록 주위의 매크로블록의 움직임 벡터(MV_A, MV_B, MV_C)와 오차 (SAD_A, SAD_B, SAD_C)를 입력 받아 움직임 벡터 추정을 행할지 여부를 판단한다. 움직임 추정 여부 판단부(110)의 판단 장치의 출력 '판단 결과'는 다음과 같이 두 가지 값을 가질 수 있다.
경우 1: 상기 움직임 추정여부 판단부(110)가 움직임 벡터 추정을 행하지 않는 것으로 판단할 경우, 이러한 '판단 결과'는 움직임 벡터 추정부(120)의 입력에 연결되어 움직임 벡터 추정부(120)를 동작시키지 않도록(이 장치의 동작을 OFF)하고 움직임 추정여부 판단부(110)로부터 출력되는 예측된 움직임 벡터(A)가스위치(130)로 입력되도록 한다. 상기 '판단 결과'는 또한 스위치(130)의 선택 단자로 연결되어 있어 예측된 움직임 벡터(A)를 선택하여 출력하도록 한다.
경우 2: 움직임 추정여부 판단부(110)가 움직임 벡터 추정을 행하는 것으로 판단할 경우에는 종래의 움직임 벡터 추정 과정과 동일하게 진행된다. 즉, 움직임 벡터 추정부(120)가 동작되어 그 결과 얻어진 움직임 벡터(B)가 스위치(130)로 입력되고 '판단 결과'는 스위치(130)가 선택 단자로 연결되어 있어 경우 1과 달리 움직임 벡터(B)를 선택하여 출력하도록 한다. 도 5에서 메모리(150)는 부호화할 입력 영상과 참조 영상을 저장하는 역할을 담당한다.
상기 설명에 있어서 현재 부호화할 매크로블록의 주위 매크로블록을 3 개 사용하며, 움직임 추정 오차로서 SAD를 사용하는 것으로 설명하였지만 본 발명에서는 주위 매크로블록의 개수나 움직임 추정 오차의 정의를 특정 방식으로 제한하지 않는다. 예를 들어 주위 매크로블록으로 4 개 이상을 사용할 수도 있고, 움직임 추정 오차 계산시 SAD 이외의 방식을 이용할 수도 있다. 그러나 일단 본 명세서 이하에서는 설명의 편의를 위하여 주위 3개의 매크로블록을 이용하고, 예측오차로서 SAD를 사용하는 것으로 설명한다.
도 6은 본 발명의 움직임 추정 장치중의 움직임 추정여부 판단부(110)의 세부 구성도이다. 이러한 본 발명의 움직임 추정여부 판단부(110)는 현재 부호화하고자 하는 매크로블록 주위의 매크로블록들의 움직임 추정 오차(SAD_A, SAD_B, SAD_C)를 입력 받아서 임계치를 결정하는 임계치 결정부(111); 주위 매크로블록들의 움직임 벡터(MV_A, MV_B, MV_C)를 입력 받아서 예측 움직임 벡터(MVp))를 결정하는 예측 움직임 벡터 결정부(112); 상기 결정된 예측 움직임 벡터를 이용하여 움직임 보상을 행하는 움직임 보상부(113); 및 상기 임계치 결정부(111)로부터 임계치(SAD_TH)를 입력 받고 상기 움직임 보상부(113)로부터 예측 움직임 벡터를 이용한 경우의 움직임 보상 오차(SAD_X)를 입력 받아서 비교하는 비교기(114)를 포함한다. 도 6에 도시하지 않았지만 움직임 보상부(113)의 입력으로는 도 5에서와 같이 움직임 보상 오차를 구하기 위한 현재 영상과 참조 영상들이 입력되어야 한다.
본 발명에서 상기 주위 매크로블록들 (MB_A, MB_B, MB_C)은 현재 매크로블록 (MB_X)의 부호화 시점에서는 이미 모두 부호화 완료된 매크로블록들이므로 주위 매크로블록들의 움직임 벡터(MV_A, MV_B, MV_C)와 그 움직임 벡터에 의해 움직임 보상했을 때의 오차 (SAD_A, SAD_B, SAD_C)는 모두 알 수 있는 값들이다. 도 6에 명시하지는 않았지만 구해진 움직임 벡터와 예측 오차들은 이후 매크로블록 움직임 벡터 추정에 이용하기 위하여 저장을 해야하며, 이를 위한 메모리가 요구된다.
임계치 결정부(111)는 SAD_A, SAD_B, SAD_C를 이용하여 임계치 SAD_TH를 결정하여 출력한다. 결정하는 방법은 SAD_TH를 SAD_A, SAD_B, SAD_C의 최대값으로 결정한다. 이 밖에도 SAD_TH를 SAD_A, SAD_B, SAD_C의 중간값, 최소값으로 결정하는 방법도 있다. 예측 움직임 벡터(MVp) 결정부(112)는 MV_A, MV_B, MV_C을 이용하여 예측 움직임 벡터(MVp)를 출력한다. 예측 움직임 벡터(MVp)는 MV_A, MV_B, MV_C의 중간값으로 결정한다. 여기서 MV_A, MV_B, MV_C는 x방향과 y방향의 성분으로 이루어진 벡터이므로 중간값은 하기 수학식 2에 나타낸 바와 같이 각 방향에 대해 수행된다. 즉,
MVp(x) = Median(MV_A(x), MV_B(x), MV_C(x))
MVp(y) = Median(MV_A(y), MV_B(y), MV_C(y))
여기서 MVp(x), MV_A(x), MV_B(x), MV_C(x)는 해당 움직임 벡터의 x 방향의 성분이고, MVp(y), MV_A(y), MV_B(y), MV_C(y)는 해당 움직임 벡터의 y 방향의 성분이다.
MVp를 중간값으로 결정하는 대신 MV_A, MV_B, MV_C의 최대값 또는 최소값으로 결정하는 방법도 가능하지만, 주의할 점은 이 결정이 움직임 벡터의 부호화방법과 밀접한 연관이 있다는 점이다. 예를 들어, 상기한 H.263이나 MPEG-4의 경우는 움직임 벡터를 예측부호화시 주위 매크로블록의 움직임 벡터의 중간값과 현재 움직임 벡터 값과의 차이를 가변길이부호화한다. 그러므로 도 6에서 움직임 벡터를 구할 때 중간값으로 결정하면 결국 가변길이부호화할 움직임 벡터값은 0이 되므로 가장 적은 비트수가 나와서 부호화효율이 가장 좋다.
예측 움직임 벡터(MVp) 결정부(112)로부터 얻어진 예측 움직임 벡터(MVp)를 이용하여 움직임 보상부(113)는 움직임 보상을 수행한다. 참조 영상을 P(i,j)라고 하고, 현재 영상을 C(i,j)라고 하자. MB_X의 좌측 상단 좌표를 (m,n)이라고 할 때, SAD_X는 하기 수학식 3으로 주어진다.
도 6에서 비교기(114)는 임계치 결정부(111)의 출력인 SAD_TH와 움직임 보상부(113)의 출력 SAD_X를 비교하여 SAD_X가 작거나 같으면 도 5의 움직임 벡터 추정부(120)의 동작을 정지시키는 신호와 예측된 움직임 벡터(MVp)를 출력한다. 한편, SAD_X가 SAD_TH 보다 크면 움직임 벡터 추정부(120)를 동작시키는 신호를 출력한다. 비교기(114)의 판단결과 신호는 도 5의 스위치(130)의 선택 신호로 사용되어 판단 결과에 따라 예측된 움직임 벡터(A) 또는 움직임 벡터 추정에 의해 구한 움직임 벡터(B)가 선택되도록 한다.
본 발명에서 예측된 움직임 벡터(MVp)가 반화소 해상도(half precision) 보다 정밀한 해상도를 가질 경우, 움직임 보상부(113)는 움직임 보상을 위해 보간(interpolation) 과정을 수행하게 되는데, 이것은 계산량을 증가시키므로 MVp를 절삭(truncation)함으로써 정수 해상도로 만들어 움직임 보상을 수행할 수도 있다. 여기서 정수 해상도로 언급하였지만, 해상도는 설계자에 의해 자유롭게 조절될 수 있다. 또한, 주위 블록의 움직임 벡터가 반화소 해상도가 유효하지 않을 경우가 존재할 때도 정수 해상도의 움직임 벡터를 사용할 수 있다. 예를 들어, MB_A의 움직임 벡터는 정수 해상도를 가지지만, MB_B, MB_C는 반화소 해상도를 가질 수 있다.
한편, 다른 구현예에 있어서, 움직임 벡터 추정부(120)가 동작시 받아들인 입력 데이터들을 이용하여 움직임 추정여부 판단부(110)를 동작시킴으로써 메모리 접근 횟수를 줄일 수 있도록 움직임 추정여부 판단부(110)가 움직임 벡터 추정부(120)의 내부에 위치할 수 있다. 즉, 도 5에서 움직임 벡터 추정부(120)와움직임 벡터 추정 여부 판단부(110) 모두 입력 영상 및 참조 영상 정보를 저장하고 있는 메모리를 엑세스하는데 도 5에서와 같이 각자가 엑세스하지 않고 동시에 이용할 수도 있다는 것이다.
도 7은 본 발명의 디지털 동영상 압축 부호화 장치에서의 움직임 추정 장치의 다른 구현예를 도시한 것으로, 도 7의 장치는 현재 부호화하고자 하는 매크로블록 주위의 매크로블록의 움직임 벡터와 움직임 추정 오차를 입력 받아서 움직임 벡터 추정 과정의 수행 여부를 판단하는 움직임 벡터 추정여부 판단부(210); 상기 움직임 벡터 추정 여부 판단부로부터 움직임 벡터 추정부를 구동시키는 신호를 입력받아 상대적으로 큰 화소 단위로 움직임 벡터 추정을 행하는 제 1 움직임 벡터 추정부(220); 상기 움직임 벡터 추정 여부 판단부의 판단 결과에 따라 움직임 벡터 추정 여부 판단부의 출력과 제 1 움직임 벡터 추정부의 출력 가운데 하나를 선택하는 스위치(230); 상기 스위치의 결과를 이용하여 상대적으로 세밀한 화소 단위의 움직임 벡터추정을 행하는 제 2 움직임 벡터 추정부(240); 및 부호화할 입력 영상과 이전 복원 영상을 저장하고 있는 메모리(250)를 포함하는 것을 특징으로 한다.
도 7에서 스위치(230)는 선택단자의 입력에 따라 2개의 입력 중 하나를 선택하여 출력하는 장치이다. 움직임 벡터 1은 스위치(230)의 출력으로써 제 2 움직임 추정부(240)의 입력으로 사용된다. 제 2 움직임 추정부(240)는 움직임 벡터 1 을 중심으로 좀 더 세밀한 단위로 움직임 벡터를 찾아 움직임 벡터 2를 출력한다.
도 4에서 설명한 바와 같이, 도 7에서도 탐색 방법에 의존하여 상대적으로 큰 화소 단위의 움직임 벡터 추정과 상대적으로 세밀한 화소 단위의 움직임 벡터추정 방식이 사용되지만, 본 발명에서는 움직임 벡터 탐색 방법을 특정 방법으로 제한하지 않는다. 예를 들어, 본 발명에서 제 1 움직임 벡터 추정부(220)는 정수 단위 (integer-pixel unit), 예컨대, 1 화소 단위 또는 2 화소 단위 이상으로 움직임 벡터 추정을 행하고, 제 2 움직임 벡터 추정부(240)는 제 1 움직임 벡터 추정부(220)에 의해 구해진 움직임 벡터 1 주위에 대해 좀 더 세밀한 단위, 예컨대, 0.5 화소 단위 (half-pixel unit)까지 움직임 벡터 추정을 행한다.
도 8은 본 발명의 움직임 추정 방법의 플로우 챠트로서, 현재 매크로블록의 움직임 벡터 추정을 수행할 것인지에 대한 판단 과정을 보여준다. 도 8의 본 발명의 움직임 추정 방법은 동영상 압축 부호화시 움직임 추정을 행함에 있어서, 현재 움직임 벡터를 추정할 매크로블록 주위의 복수 개의 매크로블록의 움직임 벡터 중에서 한 개의 예측 움직임 벡터를 선정하는 제 1 단계; 상기 제 1 단계에서 선정된 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 추정할 매크로블록을 움직임 보상 예측하여 움직임 추정 오차를 구하는 제 2 단계; 현재 움직임 벡터를 추정할 매크로블록의 주위의 복수 개의 매크로블록의 움직임 보상 예측 오차들을 이용하여 임계치를 결정하는 제 3 단계; 제 2 단계에서 구한 현재 매크로블록의 움직임 추정 오차가 제 3단계에서 구한 임계치 보다 작거나 같은가를 판단하는 제 4 단계; 제 4 단계의 판단 결과 현재 매크로블록의 움직임 추정 오차가 제 3단계에서 구한 임계치 보다 작거나 같은 경우, 움직임 예측을 수행하지 않고 제 1단계에서 예측된 움직임 벡터를 움직임 벡터로 결정하는 제 5 단계; 및 제 4 단계의 판단 결과 현재매크로블록의 움직임 추정 오차가 제 3단계에서 구한 임계치 보다 큰 경우, 움직임 벡터 추정을 수행하여 움직임 벡터를 결정하는 제 6 단계를 포함하여 구성된다.
본 발명의 방법에서 주위 매크로블록으로서 현재 부호화하고자 하는 매크로블록 주위의 3개 또는 4개의 매크로블록의 움직임 벡터 및 움직임 보상 예측을 이용하는 것이 가능하나, 이용가능한 주위 매크로블록의 수는 특별히 제한되지 않는다. 그러나 본 발명의 방법이 H.263이나 MPEG-4와 같이 움직임 벡터 부호화 방법에 도3과 같이 좌측, 상측, 우측 매크로블록 등 3개의 매크로블록이 사용되는 경우에는, 움직임 벡터 부호화 방법과 동일한 매크로블록을 사용하는 것이 메모리 사용을 공유하고 부호화 효율이 더 좋은 등의 장점을 가질 수 있다.
본 발명에서 예측 움직임 벡터를 선정하는 방법 및 움직임 추정 오차의 정의들은 특정 방법으로 제한되지 않는다. 그러나, 도 6과 이하 설명에서는 설명의 용이성을 위하여 주위 매크로블록들은 도 3의 좌측(MB_A), 상측(MB_B), 우상측(MB_C) 매크로블록들로 정의하고, 움직임 추정 오차 신호도 세 개의 매크로블록들의 것으로 정의한다. 그리고 움직임 추정 오차의 정의는 SAD(Sum of Absolute Difference)로 한다.
본 발명의 움직임 추정 방법을 더욱 상세히 설명하면 다음과 같다.
제 1단계(S1)에서는 현재 움직임 벡터 추정을 하려고 하는 매크로블록 주위의 움직임 벡터들(MV_A, MV_B, MV_C)을 이용하여 예측움직임 벡터(MVp)를 결정한다. 본 발명에서 MVp를 결정하는 하나의 예로는 중간값(median value)을 이용하는 방법이 있다. 즉, MVp = Median(MV_A, MV_B, MV_C)이다. 여기서 MVp는 x 방향의 MV와 y방향의 MV에 대해 각각 얻어진다(수학식 2 참조). MVp를 중간값으로 정하는 것은 하나의 실시예로서, 이러한 방법 이외에 평균 (average value), 최소값 (minimum value), 최대값 (maximum value) 등으로 설정할 수 있다.
제 2 단계(S2)에서는 제 1 단계에서 구한 MVp를 이용하여 움직임 보상을 수행하여 현재 매크로블록의 움직임 추정 오차(SAD_X)를 구한다.
제 3 단계(S3)에서는 주위 매크로블록의 SAD들을 이용하여 임계치(SAD_TH)를 결정한다. 본 발명에서 임계치를 결정하는 하나의 예로는 중간값을 이용하는 방법이 있다. 즉, SAD_TH = Median(SAD_A, SAD_B, SAD_C)이다. SAD_TH는 주위 매크로블록의 SAD들의 중간값 뿐만 아니라 평균, 최소값, 최대값 등으로 설정할 수 있다.
제 4 단계(S4)에서는 제 2 단계에서 구한 SAD_X가 제 3 단계에서 구한 SAD_TH를 비교하여 움직임 벡터 추정을 행할 것인지 여부를 결정한다. 만약 SAD_X가 SAD_TH 보다 작거나 같으면 움직임 벡터 추정을 행하지 않고 제 1 단계에서 예측된 움직임 벡터(MVp)를 출력한다. 한편, SAD_X가 SAD_TH 보다 크면 움직임 벡터 추정을 행하여 움직임 벡터를 출력한다.
이제까지 도 6, 도 7, 도 8 등의 제안 방법 및 장치는 가장 일반적인 경우를 중심으로 기술한 것이다. 이외에도 여러 가지 변형이 가능하며, 특정한 상황에서 고려를 해 주어야할 것들이 있다.
첫째, 현재 부호화하는 매크로블록이 영상의 가장자리에 위치하여 일부 혹은전부의 주위 매크로블록이 영상 바깥에 위치하는 경우를 들 수 있다. 이 경우는 주위 매크로블록의 움직임 벡터와 움직임 보상 오차를 일정한 방법으로 정의해 주어야 한다. 움직임 벡터의 경우에는 움직임 벡터 부호화 방법에 따라 결정하는 것이 가장 바람직하다. 만일 본 발명이 MPEG-4 부호화 장치 및 방법에 사용되는 경우에는 MPEG-4에서 움직임 벡터 부호화방법을 위해 정의된 방법과 동일하게 정의를 해 주면 된다. 움직임 보상 오차는 가능한한 영상 바깥에 위치하는 주변 매크로블록의 영향을 최소화하기 위하여 임의로 큰 값으로 정의해주는 것이 바람직하다. 예를 들어, SAD_A=100, SAD_B=200이고 SAD_C가 유효하지 않을 경우 SAD_A와 SAD_B 중 큰 값을 SAD_C로 정한다. 즉, SAD_C=SAD_B이다.
둘 째, 주위 매크로블록이 한 매크로블록 당 4개의 움직임 벡터를 사용하여 움직임 보상하는 경우를 들 수 있다. 이 방법은 한 매크로블록을 좌상, 좌하, 우상, 우하의 4개의 겹치지 않는 블록으로 나누고 각 블록에 대해 최적의 움직임 벡터를 구하여 움직임 보상을 하도록 하는 것이다. 이러한 모드는 H.263과 MPEG-4에서 사용되는데 영상 크기가 작은 경우에 효과가 큰 방식이다. 만일 주위 매크로블록이 이 모드인 경우에는 MPEG-4에 정의된 방법을 사용하여 MVp를 결정한다. 움직임 보상 오차는 해당 블록의 오차를 4배하여 다른 모드의 매크로블록의 오차와 비교한다. 이는 4개의 움직임 벡터를 사용하는 모드의 경우 오차를 구하는 화소수가 1개의 움직임 벡터를 사용하는 기존의 모드에 비교하여 1/4이기 때문에 화소 수를 일치하도록 해 주어야 하기 때문이다.
본 발명의 움직임 벡터 추정 방법 및 장치는 움직임 벡터 추정이 필요없다고 판단되는 블록에 대해서는 예측 움직임 벡터(MVp)를 부호화에 사용함으로써 움직임 벡터 추정 장치에서 소요되는 계산량 및 파워 소모를 절감할 수 있는 효과를 제공한다.

Claims (40)

  1. 현재 부호화하고자 하는 매크로블록 주위의 매크로블록의 움직임 벡터와 움직임 추정 오차를 입력 받아서 움직임 벡터 추정 과정의 수행 여부를 판단하는 움직임 벡터 추정여부 판단부;
    상기 움직임 벡터 추정 여부 판단부로부터 움직임 벡터 추정부를 구동시키는 신호를 입력받아 움직임 벡터 추정을 행하는 움직임 벡터 추정부;
    상기 움직임 벡터 추정 여부 판단부의 판단 결과에 따라 움직임 벡터 추정 여부 판단부의 출력과 움직임 벡터 추정부의 출력 가운데 하나를 선택하는 스위치; 및
    입력 영상 신호와 참조 영상 신호를 저장하고 있는 메모리를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  2. 제 1항에 있어서, 상기 움직임 벡터 추정여부 판단부가
    현재 부호화하고자 하는 매크로블록 주위의 매크로블록들의 움직임 추정 오차를 입력 받아서 임계치를 결정하는 임계치 결정부;
    주위 매크로블록들의 움직임 벡터를 입력 받아서 예측 움직임 벡터를 결정하는 예측 움직임 벡터 결정부;
    상기 결정된 예측 움직임 벡터를 이용하여 움직임 보상을 행하는 움직임 보상부; 및
    상기 임계치 결정부로부터 임계치를 입력 받고 상기 움직임 보상부로부터 예측 움직임 벡터를 이용한 경우의 움직임 보상 오차를 입력 받아서 비교하는 비교기를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  3. 제 1항 또는 제 2항에 있어서, 상기 움직임 벡터 추정 여부 판단부가 주위 매크로블록으로서 현재 부호화하고자 하는 매크로블록 주위의 3개의 매크로블록을 사용하는 것임을 특징으로 하는 움직임 추정 장치.
  4. 제 1항 또는 제 2항에 있어서, 상기 임계치 결정부가 움직임 추정 오차로서 참조 영상과 현재 영상 사이의 하나의 매크로블록의 절대 오차 합(SAD; Sum of Absolute Difference)을 이용하는 수단인 것을 특징으로 하는 움직임 추정 장치.
  5. 제 2항에 있어서, 상기 비교기가 예측 움직임 벡터를 이용한 경우의 움직임 보상 오차가 임계치 보다 작거나 같으면 움직임 벡터 추정부를 동작시키지 않는 신호를 출력하고, 크면 움직임 벡터 추정부를 구동시키는 신호를 출력하는 수단인 것을 특징으로 하는 움직임 추정 장치.
  6. 제 2항에 있어서, 상기 임계치 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 추정 오차값들의 중간값을 임계치로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  7. 제 2항에 있어서, 상기 임계치 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 추정 오차값들의 최대값을 임계치로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  8. 제 2항에 있어서, 상기 임계치 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 추정 오차값들의 최소값을 임계치로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  9. 제 2항에 있어서, 상기 임계치 결정부가 현재 움직임 벡터를 추정할 매크로블록이 영상의 가장 자리에 위치하거나 영상내 부호화 모드인 경우에는 해당 매크로블록의 움직임 추정 오차값들중 큰 값을 해당 매크로블록의 움직임 추정 오차값으로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  10. 제 2항에 있어서, 상기 예측 움직임 벡터 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 중간값을 예측 움직임 벡터로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  11. 제 2항에 있어서, 상기 예측 움직임 벡터 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 최대값을 예측 움직임 벡터로 결정하는것임을 특징으로 하는 움직임 추정 장치.
  12. 제 2항에 있어서, 상기 예측 움직임 벡터 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 최소값을 예측 움직임 벡터로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  13. 제 2항에 있어서, 상기 예측 움직임 벡터 결정부가 현재 움직임 벡터를 추정할 매크로블록이 영상의 가장 자리에 위치하거나 영상내 부호화 모드인 경우에는 해당 매크로블록의 움직임 벡터를 0으로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  14. 현재 부호화하고자 하는 매크로블록 주위의 매크로블록의 움직임 벡터와 움직임 추정 오차를 입력 받아서 움직임 벡터 추정 과정의 수행 여부를 판단하는 움직임 벡터 추정여부 판단부;
    상기 움직임 벡터 추정 여부 판단부로부터 제 1 움직임 벡터 추정부를 구동시키는 신호를 입력받아 상대적으로 큰 화소 단위로 움직임 벡터 추정을 행하는 제 1 움직임 벡터 추정부;
    상기 움직임 벡터 추정 여부 판단부의 판단 결과에 따라 움직임 벡터 추정 여부 판단부의 출력과 제 1 움직임 벡터 추정부의 출력 가운데 하나를 선택하는 스위치;
    상기 스위치의 결과를 이용하여 상대적으로 세밀한 화소 단위의 움직임 벡터추정을 행하는 제 2 움직임 벡터 추정부; 및
    부호화할 입력 영상과 참조 영상을 저장하고 있는 메모리를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  15. 제 14항에 있어서, 상기 움직임 벡터 추정여부 판단부가
    현재 부호화하고자 하는 매크로블록 주위의 매크로블록들의 움직임 추정 오차를 입력 받아서 임계치를 결정하는 임계치 결정부;
    주위 매크로블록들의 움직임 벡터를 입력 받아서 예측 움직임 벡터를 결정하는 예측 움직임 벡터 결정부;
    상기 결정된 예측 움직임 벡터를 이용하여 움직임 보상을 행하는 움직임 보상부; 및
    상기 임계치 결정부로부터 임계치를 입력 받고 상기 움직임 보상부로부터 예측 움직임 벡터를 이용한 경우의 움직임 추정 오차를 입력 받아서 비교하는 비교기를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  16. 제 14항에 있어서, 상기 제 1 움직임 벡터 추정부가 정수 화소 단위의 움직임 벡터 탐색을 수행하는 수단인 것을 특징으로 하는 움직임 추정 장치.
  17. 제 14항에 있어서, 상기 제 1 움직임 벡터 추정부가 2-화소 단위의 움직임벡터 탐색을 수행하는 수단인 것을 특징으로 하는 움직임 추정 장치.
  18. 제 14항에 있어서, 상기 제 2 움직임 벡터 추정부가 반화소 단위의 움직임 벡터 탐색을 수행하는 수단인 것을 특징으로 하는 움직임 추정 장치.
  19. 제 15항에 있어서, 상기 움직임 벡터 추정 여부 판단부가 주위 매크로블록으로서 현재 부호화하고자 하는 매크로블록 주위의 3 개의 매크로블록을 사용하는 것임을 특징으로 하는 움직임 추정 장치.
  20. 제 15항에 있어서, 상기 임계치 결정부가 움직임 추정 오차로서 이전 영상과 현재 영상 사이의 하나의 매크로블록의 절대 오차 합(SAD; Sum of Absolute Difference)을 이용하는 수단인 것을 특징으로 하는 움직임 추정 장치.
  21. 제 15항에 있어서, 상기 비교기가 예측 움직임 벡터를 이용한 경우의 움직임 보상 오차가 임계치 보다 작거나 같으면 제 1 움직임 벡터 추정부를 동작시키지 않는 신호를 출력하고, 크면 제 1 움직임 벡터 추정부를 구동시키는 신호를 출력하는 수단인 것을 특징으로 하는 움직임 추정 장치.
  22. 제 15항에 있어서, 상기 임계치 결정부가 현재 움직임 벡터를 추정할 매크롤블록 주위의 매크로블록들의 움직임 추정 오차값들의 중간값을 임계치로 결정하는것임을 특징으로 하는 움직임 추정 장치.
  23. 제 15항에 있어서, 상기 임계치 결정부가 현재 움직임 벡터를 추정할 매크롤블록 주위의 매크로블록들의 움직임 추정 오차값들의 최대값을 임계치로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  24. 제 15항에 있어서, 상기 임계치 결정부가 현재 움직임 벡터를 추정할 매크롤블록 주위의 매크로블록들의 움직임 추정 오차값들의 최소값을 임계치로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  25. 제 15항에 있어서, 상기 임계치 결정부가 현재 움직임 벡터를 추정할 매크로블록이 영상의 가장 자리에 위치하거나 영상내 부호화 모드인 경우에는 해당 매크로블록의 움직임 추정 오차값들중 큰 값을 해당 매크로블록의 움직임 추정 오차값으로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  26. 제 15항에 있어서, 상기 예측 움직임 벡터 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 중간값을 예측 움직임 벡터로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  27. 제 15항에 있어서, 상기 예측 움직임 벡터 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 최대값을 예측 움직임 벡터로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  28. 제 15항에 있어서, 상기 예측 움직임 벡터 결정부가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 최소값을 예측 움직임 벡터로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  29. 제 15항에 있어서, 상기 예측 움직임 벡터 결정부가 현재 움직임 벡터를 추정할 매크로블록이 영상의 가장 자리에 위치하거나 영상내 부호화 모드인 경우에는 해당 매크로블록의 움직임 벡터를 0으로 결정하는 것임을 특징으로 하는 움직임 추정 장치.
  30. 동영상 압축 부호화시 움직임 추정을 행함에 있어서,
    현재 움직임 벡터를 추정할 매크로블록 주위의 복수 개의 매크로블록의 움직임 벡터 중에서 한 개의 예측 움직임 벡터를 선정하는 제 1 단계;
    상기 제 1 단계에서 선정된 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 추정할 매크로블록을 움직임 보상 예측하여 움직임 추정 오차를 구하는 제 2 단계;
    현재 움직임 벡터를 추정할 매크로블록의 주위의 복수 개의 매크로블록의 움직임 추정 오차를 이용하여 임계치를 결정하는 제 3 단계;
    제 2 단계에서 구한 현재 매크로블록의 움직임 추정 오차가 제 3단계에서 구한 임계치 보다 작은가를 판단하는 제 4 단계;
    제 4 단계의 판단 결과 현재 매크로블록의 움직임 추정 오차가 제 3단계에서 구한 임계치 보다 작거나 같은 경우, 움직임 예측을 수행하지 않고 제 1단계에서 예측된 움직임 벡터를 움직임 벡터로 결정하는 제 5 단계; 및
    제 4 단계의 판단 결과 현재 매크로블록의 움직임 추정 오차가 제 3단계에서 구한 임계치 보다 큰 경우, 움직임 벡터 추정을 수행하여 움직임 벡터를 결정하는 제 6 단계를 포함하는 것을 특징으로 하는 움직임 벡터 추정 방법.
  31. 제 30항에 있어서, 상기 제 4 단계가 현재 부호화할 매크로 블록 주위의 매크로블록으로서 현재 부호화하고자 하는 매크로블록 주위의 3개의 매크로블록을 사용하는 단계인 것을 특징으로 하는 움직임 추정 장치.
  32. 제 30항에 있어서, 상기 제 3 단계가 움직임 추정 오차로서 이전 영상과 현재 영상 사이의 하나의 매크로블록의 절대 오차 합(SAD; Sum of Absolute Difference)을 이용하는 단계인 것을 특징으로 하는 움직임 추정 방법.
  33. 제 30항에 있어서, 상기 제 3 단계가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 추정 오차값들의 중간값을 임계치로 결정하는 단계임을 특징으로 하는 움직임 추정 방법.
  34. 제 30항에 있어서, 상기 제 3 단계가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 추정 오차값들의 최대값을 임계치로 결정하는 단계임을 특징으로 하는 움직임 추정 방법.
  35. 제 30항에 있어서, 상기 제 3 단계가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 추정 오차값들의 최소값을 임계치로 결정하는 단계임을 특징으로 하는 움직임 추정 방법.
  36. 제 30항에 있어서, 상기 제 3 단계가 현재 움직임 벡터를 추정할 매크로블록이 영상의 가장 자리에 위치하거나 영상내 부호화 모드인 경우에는 해당 매크로블록의 움직임 추정 오차값들중 큰 값을 해당 매크로블록의 움직임 추정 오차값으로 결정하는 단계임을 특징으로 하는 움직임 추정 방법.
  37. 제 30항에 있어서, 상기 제 1 단계가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 중간값을 예측 움직임 벡터로 결정하는 단계임을 특징으로 하는 움직임 추정 방법.
  38. 제 30항에 있어서, 상기 제 1 단계가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 최대값을 예측 움직임 벡터로 결정하는 단계임을 특징으로 하는 움직임 추정 방법.
  39. 제 30항에 있어서, 상기 제 1 단계가 현재 움직임 벡터를 추정할 주위 매크롤블록들의 움직임 벡터들의 최소값을 예측 움직임 벡터로 결정하는 단계임을 특징으로 하는 움직임 추정 방법.
  40. 제 30항에 있어서, 상기 제 1 단계가 현재 움직임 벡터를 추정할 매크로블록이 영상의 가장 자리에 위치하거나 영상내 부호화 모드인 경우에는 해당 매크로블록의 움직임 벡터를 0으로 결정하는 단계임을 특징으로 하는 움직임 추정 방법.
KR1020000008221A 2000-02-21 2000-02-21 움직임 추정 방법 및 장치 KR100739281B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020000008221A KR100739281B1 (ko) 2000-02-21 2000-02-21 움직임 추정 방법 및 장치
US09/782,568 US6778606B2 (en) 2000-02-21 2001-02-13 Selective motion estimation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000008221A KR100739281B1 (ko) 2000-02-21 2000-02-21 움직임 추정 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20010083717A true KR20010083717A (ko) 2001-09-01
KR100739281B1 KR100739281B1 (ko) 2007-07-12

Family

ID=19648335

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000008221A KR100739281B1 (ko) 2000-02-21 2000-02-21 움직임 추정 방법 및 장치

Country Status (2)

Country Link
US (1) US6778606B2 (ko)
KR (1) KR100739281B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100692600B1 (ko) * 2005-02-22 2007-03-13 삼성전자주식회사 움직임 추정 장치 및 방법
US7760952B2 (en) 2003-09-09 2010-07-20 Lg Electronics Inc. Method for setting motion vector of digital video

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563953B2 (en) * 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US6987866B2 (en) * 2001-06-05 2006-01-17 Micron Technology, Inc. Multi-modal motion estimation for video sequences
AU2002351389A1 (en) * 2001-12-17 2003-06-30 Microsoft Corporation Skip macroblock coding
US20050074059A1 (en) * 2001-12-21 2005-04-07 Koninklijke Philips Electronics N.V. Coding images
US6925123B2 (en) * 2002-08-06 2005-08-02 Motorola, Inc. Method and apparatus for performing high quality fast predictive motion search
NO318167B1 (no) * 2002-11-27 2005-02-14 Tandberg Telecom As Vektorprediksjon
US7113543B2 (en) * 2003-02-03 2006-09-26 Texas Instruments Incorporated Video encoding
JP2004282576A (ja) * 2003-03-18 2004-10-07 Matsushita Electric Ind Co Ltd 情報端末装置及びそれを用いた通信方法
US7978769B2 (en) * 2003-06-30 2011-07-12 Ntt Docomo, Inc. Method and apparatus for coding motion information
KR20050011068A (ko) * 2003-07-21 2005-01-29 삼성전자주식회사 필름모드 판별장치 및 그 방법
KR100579542B1 (ko) * 2003-07-29 2006-05-15 삼성전자주식회사 블럭 간의 상관성을 고려한 움직임 추정 장치 및 방법
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7634793B2 (en) * 2004-06-03 2009-12-15 Hillcrest Laboratories, Inc. Client-server architectures and methods for zoomable user interfaces
US20090079874A1 (en) * 2004-11-22 2009-03-26 Koninklijke Philips Electronics, N.V. Display device with time-multiplexed led light source
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
KR20070055212A (ko) * 2005-11-25 2007-05-30 삼성전자주식회사 프레임 보간장치, 프레임 보간방법 및 움직임 신뢰성평가장치
KR100827152B1 (ko) * 2006-10-20 2008-05-02 삼성전자주식회사 Nal 유닛 에러 검출을 위한 효율적인 h.264 복호 방법및 장치
JP2009081727A (ja) * 2007-09-26 2009-04-16 Canon Inc 画像符号化装置及びその制御方法、プログラム
US9055301B2 (en) * 2008-03-18 2015-06-09 Texas Instruments Incorporated Changing motion estimation precision to maintain encoding within desired time
JP5422168B2 (ja) 2008-09-29 2014-02-19 株式会社日立製作所 動画像符号化方法および動画像復号化方法
EP2377323B1 (fr) * 2008-12-22 2019-09-25 Orange Prédiction d'images par repartionnement d'une portion de zone causale de référence, codage et decodage utilisant une telle prédiction
WO2011115659A1 (en) * 2010-03-16 2011-09-22 Thomson Licensing Methods and apparatus for implicit adaptive motion vector predictor selection for video encoding and decoding
PT3367687T (pt) 2011-06-24 2021-04-26 Ntt Docomo Inc Método e aparelho para a previsão da compensação de movimento
KR101818037B1 (ko) * 2011-12-13 2018-01-16 한국전자통신연구원 움직임 추정장치 및 그 방법
JP6468703B2 (ja) * 2013-12-20 2019-02-13 キヤノン株式会社 動き検出装置、動き検出方法及びプログラム
US9838710B2 (en) * 2014-12-23 2017-12-05 Intel Corporation Motion estimation for arbitrary shapes
JP2017103744A (ja) * 2015-12-04 2017-06-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、及び画像符号化復号装置
EP3648059B1 (en) * 2018-10-29 2021-02-24 Axis AB Video processing device and method for determining motion metadata for an encoded video

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2591441B2 (ja) 1993-09-28 1997-03-19 日本電気株式会社 動画像信号の動ベクトル検出装置
KR970019667A (ko) * 1995-09-06 1997-04-30 구자홍 부호화기의 움직임 추정 방법
US6058140A (en) * 1995-09-08 2000-05-02 Zapex Technologies, Inc. Method and apparatus for inverse 3:2 pulldown detection using motion estimation information
KR0181069B1 (ko) * 1995-11-08 1999-05-01 배순훈 움직임 추정장치
JPH09182081A (ja) * 1995-12-25 1997-07-11 Nippon Telegr & Teleph Corp <Ntt> 動き補償予測符号化装置
US5973742A (en) 1996-05-24 1999-10-26 Lsi Logic Corporation System and method for performing motion estimation with reduced memory loading latency
KR100226722B1 (ko) 1997-07-30 1999-10-15 구자홍 동영상 움직임 벡터 추정 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760952B2 (en) 2003-09-09 2010-07-20 Lg Electronics Inc. Method for setting motion vector of digital video
KR100692600B1 (ko) * 2005-02-22 2007-03-13 삼성전자주식회사 움직임 추정 장치 및 방법
US8045619B2 (en) 2005-02-22 2011-10-25 Samsung Electronics Co., Ltd. Motion estimation apparatus and method

Also Published As

Publication number Publication date
US20010026590A1 (en) 2001-10-04
US6778606B2 (en) 2004-08-17
KR100739281B1 (ko) 2007-07-12

Similar Documents

Publication Publication Date Title
KR100739281B1 (ko) 움직임 추정 방법 및 장치
KR100619377B1 (ko) 움직임 추정 방법 및 장치
US8233542B2 (en) Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
KR0148154B1 (ko) 움직임크기에 따른 동영상데이타의 부호화방법 및 장치
JP5044568B2 (ja) 予測誘導間引き探索を使用する動き推定
US20070268964A1 (en) Unit co-location-based motion estimation
KR100242406B1 (ko) 디지탈 비디오 동화상의 움직임 보상 방법
EP1863289A2 (en) Apparatus and method for image coding and decoding and communication apparatus
US20060120455A1 (en) Apparatus for motion estimation of video data
US7236634B2 (en) Image encoding of moving pictures
KR20230165870A (ko) 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩
KR20110039516A (ko) 움직임 추정을 위한 방법, 시스템 및 애플리케이션
KR20080046238A (ko) 비디오 인코딩을 위한 다차원 인접 블록 예측
KR100246167B1 (ko) 듀얼프라임 움직임 추정시스템 및 방법
US8175159B2 (en) Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
KR20110036886A (ko) 움직임 추정 반복 탐색의 개선 방법 및 시스템, 다음 탐색 영역의 중심점 결정 방법 및 시스템, 지역적 최소값의 회피 방법 및 시스템
CN115052162A (zh) 用于解码端运动矢量修正的基于误差面的子像素精确修正方法
KR20040070490A (ko) 비월 주사 방식의 동영상 부호화/복호화 방법 및 그 장치
KR20020067192A (ko) 프레임 레이트 변환 기능을 갖는 비디오 디코더 및 그 방법
KR20090065195A (ko) 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치
KR100602148B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100617598B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100240620B1 (ko) 양방향의 반화소 움직임 추정을 위한 대칭 탐색 윈도우를 형성하는 방법 및 장치
KR100757830B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100757832B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
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: 7

FPAY Annual fee payment

Payment date: 20140704

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150706

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 10