KR20040045112A - 움직임 추정 방법 - Google Patents

움직임 추정 방법 Download PDF

Info

Publication number
KR20040045112A
KR20040045112A KR1020020073133A KR20020073133A KR20040045112A KR 20040045112 A KR20040045112 A KR 20040045112A KR 1020020073133 A KR1020020073133 A KR 1020020073133A KR 20020073133 A KR20020073133 A KR 20020073133A KR 20040045112 A KR20040045112 A KR 20040045112A
Authority
KR
South Korea
Prior art keywords
vector
motion vector
pixel region
motion
candidate
Prior art date
Application number
KR1020020073133A
Other languages
English (en)
Other versions
KR100617177B1 (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 KR1020020073133A priority Critical patent/KR100617177B1/ko
Publication of KR20040045112A publication Critical patent/KR20040045112A/ko
Application granted granted Critical
Publication of KR100617177B1 publication Critical patent/KR100617177B1/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
    • H04N19/513Processing of motion vectors
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

본 발명은 MPEG(Moving Picture Experts Group)-2 또는 기타 규격의 압축 방식에 의하여 디지털 동영상을 부호화할 때, 두 개의 영상 프레임 사이에서 발생하는 움직임을 추정하는 방법에 관한 것으로서, 특히 부호화할 현재 매크로 블록에 대하여 계산되어진 풀 화소 영역의 최적의 움직임 벡터와 이미 부호화된 인접 매크로 블록의 움직임 벡터를 사용하여 반화소 영역에서 실제 왜곡값을 구할 m개의 후보 벡터를 선택함으로써, 반화소 영역의 실제 왜곡 값을 계산하기 위한 후보 벡터의 수를 줄일 수 있으므로 디지털 동영상 부호화기의 부호화 시간 단축 및 연산량 감소의 효과가 있다.

Description

움직임 추정 방법{Motion estimation method}
본 발명은 MPEG(Moving Picture Experts Group)-2 또는 기타 규격의 압축 방식에 의하여 디지털 동영상을 부호화하는 장치에 관한 것으로서, 특히 두 개의 영상 프레임 사이에서 발생하는 움직임(motion)을 추정(estimation)하는 방법에 관한 것이다.
MPEG-2 부호화 방식은 디지털 동영상을 압축하고 부호화하는 방법 중에서 가장 대표적인 것으로, 현재 ATSC, DVB와 같은 디지털 방송 규격에서 비디오의 압축 방식으로 사용되고 있다. 이러한 MPEG-2 방식에서 동영상의 압축을 위한 기본적인 원리는 동영상에 존재하는 공간적인 중복성(Spatial Redundancy)을 제거하기 위해 이산 코사인 변환(DCT, Discrete Cosine Transform)과 양자화(Quantization)를 이용하며, 시간적인 중복성(Temporal Redundancy)을 제거하기 위해 각 프레임을 16x16 크기의 매크로블록으로 분할한 후 각 매크로블록에 대하여 움직임 벡터를 추정하여 보상한다.
도 1은 이러한 MPEG-2 부호화 장치의 일반적인 구성 블록도로서, 입력되는 데이터가 인트라(intra) 타입 즉, I 픽쳐이면 그대로, 인터(inter) 타입 즉, P나 B 픽쳐이면 움직임 보상부(109)에서 움직임 보상된 데이터와의 차분 데이터가 감산기(101)를 통해 DCT부(102)로 출력된다. 상기 DCT부(102)는 입력되는 데이터를 DCT한 후 양자화부(103)로 출력하여 양자화한다.
상기 양자화부(103)에서 양자화된 데이터는 가변 길이 코딩(Variable Length Coding ; VLC)부(104)로 출력되고, 상기 VLC부(104)는 자주 나오는 값은 적은 수의 비트로, 드물게 나오는 값은 많은 수의 비트로 표시하여 전체 비트 수를 줄인 후 전송을 위해 출력한다.
또한, 상기 양자화부(103)에서 양자화된 DCT 계수는 다시 IQ부(105)로 입력되어 역양자화된 후 IDCT부(106)로 출력된다. 상기 IDCT부(106)는 역 양자화된 DCT 계수를 IDCT하여 가산기(107)로 출력한다. 상기 가산기(107)는 IDCT된 데이터가 인트라 타입이면 그대로, 인터 타입이면 움직임 보상된 값을 더하여 최종 픽셀값인 완전한 영상으로 복원한 후 움직임 보상을 위해 앵커 프레임 메모리(108)에 저장한다. 상기 움직임 보상(Motion Compensation ; MC)부(109)는 움직임 추정(Motion Estimation ; ME)부(110)의 추정 결과에 따라 앵커 프레임 메모리(108)로부터 읽어온 이전 프레임을 이용하여 움직임 보상을 수행한 후 감산기(101)와 가산기(107)로 출력한다.
상기 움직임 추정부(110)는 부호화 과정에서 보다 정확한 움직임 추정을 위해 반화소(half-pel) 또는 1/4 화소와 같은 분수 단위(fractional)로 움직임 벡터를 계산한다. 이를 위해 먼저 풀-화소(full-pel) 단위로 최적의 움직임 벡터를 추정한 후 이 추정된 움직임 벡터를 기준으로 반화소 단위로 추가적인 움직임 추정 연산을 수행한다.
이때, 상기 움직임 벡터 추정 과정은 각 후보 벡터에 해당되는 기준 영상(reference frame)의 후보 블록과 현재 블록과의 왜곡 값을 구하는 연산이 요구된다. 일 예로, 후보 블록과 현재 블록과의 왜곡 값을 구하는 함수로는 각 대응 화소의 차이의 절대값의 합(Sum of Absolute Difference, 이하 SAD로 표시)을 사용하며, 후보 블록이 많을수록 연산량은 비례적으로 증가한다. 즉, 상기 SAD 값은 후보 블록과 현재 블록과의 차의 절대값을 의미한다.
따라서, 실시간 부호화를 요구하는 환경에서 이러한 연산량은 디지털 동영상 부호화 시스템의 전체적인 성능에 큰 영향을 끼칠 수 있다. 특히 HD급 비디오와 같이 방대한 양의 데이터를 실시간 부호화해야 하는 경우 전체적인 성능을 어느 정도 유지함과 동시에 연산량의 감소를 수반하는 효율적인 움직임 벡터 추정 방법이 필요하다.
디지털 동영상 부호화를 위한 종래의 움직임 추정 방법 중 미국특허 US 6,141,382에서 제안한 방법(Krishnamurthy et al., Using estimated distortion values ; 참고 문헌이라 함)은 보다 적은 연산량으로 반화소 단위의 움직임 벡터를 추정하는 방식이다.
도 2는 상기 참고 문헌의 방법에 의한 움직임 벡터 추정 과정을 요약한 대표도로서, 단계 201에서 풀 화소(integer-pel, full-pel과 같은 의미임) 단위로 최적의 움직임 벡터를 추정한다. 즉, 풀 화소 단위로 현재 부호화할 블록과 기준 영상의 탐색 범위 내의 블록과의 왜곡 값(예를 들면, SAD 값)을 구한 후 그 중 가장 작은 왜곡 값을 갖는 풀 화소를 최적 풀 화소 위치로 결정하며, 상기 최적 풀 화소 위치의 움직임 벡터가 풀화소 단위로 추정한 최적의 움직임 벡터가 된다. 그리고, 상기 최적의 움직임 벡터에 해당하는 풀 화소 주변의 8개의 풀 화소의 움직임 벡터를 후보 벡터로 결정한다.
그 다음 202 단계에서는 상기 단계 201에서 추정된 각 후보 벡터의 왜곡 값에 선형 보간법을 적용하여 반화소 단위의 벡터에 해당되는 왜곡 값을 추정한다. 즉, 이미 얻어진 풀 화소 영역의 후보 벡터에 대한 왜곡 값에 선형 보간법을 적용하여 반화소 단위의 후보 벡터에 대한 왜곡 값을 추정하는 방법이다. 이 방법은 반화소 단위의 후보 벡터에 대한 왜곡 값을 직접 계산하지 않으므로 왜곡 값의 계산에 필요한 연산량을 줄일 수 있는 효과가 있다. 이러한 과정에 의하여 결과적으로 반화소 영역의 8개의 후보 벡터에 대한 추정 왜곡 값이 결정되며 이들 중 추정 왜곡 값이 가장 작은 n(n < 8)개의 후보 벡터를 선택한다(단계 203). 이때, n개의 후보 벡터를 선택하는 방법은 정렬 및 소팅(sorting) 등의 알고리즘을 이용한다. 이렇게 선택된 n개의 반화소 영역의 후보 벡터에 대하여 실제 왜곡 값을 직접 계산한 다음(단계 204), 최종적으로 최적의 반화소 단위의 움직임 벡터를 계산한다(단계 205). 즉, 상기된 방법은 반화소 단위의 움직임 벡터에 필요한 8개의 후보 벡터에 대한 추가적인 왜곡 값의 계산에 소모되는 연산을 n개로 줄인다는 의미가 있다.
그러나, 상기된 종래의 방법은 반화소 영역의 후보 벡터의 개수를 줄이기 위한 사전 작업으로 인해 추가적인 부담이 존재한다. 즉, 풀 화소 영역에서 얻어진 최적의 움직임 벡터를 중심으로 8개의 반화소 영역의 후보 벡터에 대한 왜곡 값을 추정하기 위해 선형 보간법을 수행해야 하므로 이를 위한 부가적인 회로가 필요하다. 또한, 반화소 영역의 8개의 후보 벡터 중에서 실제 왜곡 값을 계산하기 위한 n개의 후보 벡터를 선택하는 과정에서 이들 8개의 후보 벡터의 왜곡 추정 값을 저장하는 수단 및 n개의 후보 벡터를 선택하기 위한 정렬(sort) 연산을 수행하기 위해 추가적인 회로가 필요하다. 즉, 이를 위해 8개의 후보 벡터에 해당되는 왜곡 값 및 후보 벡터를 저장하기 위한 메모리가 필요하다는 문제점이 존재한다.
아울러 실제 풀 화소 영역에서 움직임 벡터를 추정하기 위한 탐색을 실시하는 과정에서 최적의 벡터를 구했을 때, 주변의 후보 벡터의 왜곡 값의 일부는 존재하지 않을 수 있다. 실제로 4, 2, 1의 스텝-사이즈(step-size)를 갖는 3단계 블록 정합 알고리즘의 경우에는 주변 8개의 벡터의 왜곡 값이 존재한다. 하지만 전(full) 영역 탐색과 같은 방법을 사용할 때, 탐색 영역 내부의 모든 벡터의 왜곡 값을 저장하거나 최적 벡터를 중심으로 주변 벡터의 왜곡 값을 다시 계산하지 않는 한 제한된 숫자의 왜곡 값만을 가지고 반화소 영역의 후보 벡터를 선택해야 하므로 그 정확성에 문제가 발생 할 수 있다. 또한 왜곡 값의 경우 그 범위가 크기 때문에 이를 저장하기 위한 메모리 역시 하드웨어적 부담으로 존재하는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 디지털 동영상을 MPEG 등과 같은 압축 방식으로 부호화 할 때, 보다 적은 연산량을 사용하고 하드웨어적 요구 사항을 최소화하면서 프레임간 움직임 추정을 효과적으로 수행하는 움직임 추정 방법을 제공함에 있다.
본 발명의 다른 목적은 반화소 영역의 8개의 후보 벡터를 선택하는 과정에서 후보 벡터의 왜곡 값에 대한 정렬 연산 및 저장에 필요한 메모리부를 생략하여 하드웨어적 부담을 최소화하는 움직임 추정 방법을 제공함에 있다.
도 1은 일반적인 MPEG-2 부호화 장치의 구성 블록도
도 2는 종래의 움직임 추정 방법의 흐름도
도 3은 풀-화소(full-pel) 영역에서의 최적 움직임 벡터 및 주변의 후보 벡터와 반화소(half-pel) 영역에서의 후보 벡터의 위치를 표시한 개념도
도 4는 현재 매크로블록과 인접 매크로블록의 배치를 나타낸 개념도
도 5는 본 발명에 따른 움직임 추정 방법의 일 실시예를 나타낸 흐름도
도면의 주요부분에 대한 부호의 설명
101 : 감산기102 : DCT부
103 : 양자화부104 : VLC부
105 : IQ부106 : IDCT부
107 : 가산기108 : 앵커 프레임 메모리
109 : 움직임 보상부110 : 움직임 추정부
상기와 같은 목적을 달성하기 위한 본 발명에 따른 움직임 추정 방법은, 부호화 과정 중 디지털 동영상의 시간적 중복성(temporal redundancy)을 제거하기 위한 프레임간 움직임 추정 과정에서 풀 화소 단위의 움직임 추정 과정으로부터 얻어진 정보와 이미 계산된 이전 매크로 블록의 움직임 벡터를 활용하여 반화소 영역의 실제 왜곡값을 계산할 m개의 후보 벡터를 선택함으로써, 현재 매크로블록에 대한 반화소 단위의 움직임 벡터의 추정 과정에서 소모되는 연산량과 그에 따른 부가적인 하드웨어 및 연산 시간을 줄이는데 그 특징이 있다.
상기된 특징을 구체화한 본 발명에 따른 움직임 추정 방법은, 다수의 풀 화소 위치들에 대한 왜곡값들을 비교하여 부호화할 현재 매크로 블록의 최적의 움직임 벡터를 결정하는 단계와, 현재 영상의 이미 부호화된 적어도 하나 이상의 매크로 블록의 움직임 벡터를 선형 조합하여 선형 조합 벡터를 산출하는 단계와, 상기 풀 화소 영역의 최적의 움직임 벡터와 상기 선형 조합 벡터를 비교하여 반화소 영역의 실제 왜곡값을 계산할 m(m<8)개의 후보 움직임 벡터를 선택하는 단계와, 상기 반화소 영역의 m개의 후보 움직임 벡터에 대해 실제 왜곡값을 계산하는 단계와, 상기 풀 화소 영역의 최적의 움직임 벡터의 왜곡값과 상기 반화소 영역의 m개의 후보 움직임 벡터에 대한 실제 왜곡값을 비교하여 가장 작은 왜곡값을 갖는 움직임 벡터를 현재 매크로 블록의 움직임 벡터로 최종 결정하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
상기 선형 조합 벡터 산출 단계는 현재 매크로 블록과 인접한 이미 부호화된 K(K≥1)개의 매크로 블록의 움직임 벡터들의 대표값을 선형 조합 벡터로 결정하는 것을 특징으로 한다.
상기 선형 조합 벡터 산출 단계는 현재 매크로 블록과 인접한 이미 부호화된 K(K≥1)개의 매크로 블록의 움직임 벡터들의 평균값을 선형 조합 벡터로 결정하는것을 특징으로 한다.
상기 선형 조합 벡터 산출 단계는 현재 영상의 이미 부호화된 K(K≥1)개의 매크로 블록의 움직임 벡터들을 이용하여 선형 조합 벡터 산출시 상기 부호화된 매크로 블록의 위치에 따라 가중치를 부여하여 선형 조합 벡터를 산출하는 것을 특징으로 한다.
상기 반화소 영역의 m개의 후보 벡터 선택 단계는 풀 화소 영역의 최적의 움직임 벡터의 주변에 위치한 반화소 영역의 n(n≥8)개의 후보 움직임 벡터 중 상기 선형 조합 벡터와 방향이 일치하는 움직임 벡터를 실제 왜곡값을 계산할 최적의 후보 움직임 벡터로 결정한 후, 반화소 영역의 나머지 n-1개의 후보 움직임 벡터 중 m-1개의 움직임 벡터는 상기 반화소 영역의 최적의 후보 움직임 벡터와의 유사 정도에 따라 선택하는 것을 특징으로 한다.
이와 같이 본 발명은 풀 화소 영역에서 계산된 최적 움직임 벡터 주변의 8개의 움직임 벡터에 해당되는 왜곡 값을 이용하지 않고 이미 부호화된 이전 매크로 블록의 움직임 벡터를 이용하여 반화소 영역에서 실제 왜곡값을 계산할 m개의 후보 벡터를 결정한다. 즉, 풀 화소 영역에서 최적의 움직임 벡터가 결정되면 상기 최적의 움직임 벡터를 이미 부호화된 K개의 매크로블록의 움직임 벡터들에 가중치를 부여하여 구한 선형 조합 벡터와 비교하고, 비교 결과에 따라 반화소 영역의 8개의 후보 벡터 중 실제 왜곡값을 계산할 최적의 후보 움직임 벡터를 선택한 다음 나머지 7개의 후보 벡터 중에서 (m-1)개의 움직임 벡터는 상기 반화소 영역의 최적의 후보 움직임 벡터의 유사 정도에 따라 선택한다.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예의 구성과 그 작용을 설명하며, 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 상기한 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명은 반화소 영역에서 수행하는 추가적인 8번의 실제 왜곡 값의 연산을 간소화하여 보다 적은 연산량을 사용하고 하드웨어적 요구 사항을 최소화하면서 반화소 단위의 움직임 벡터를 효과적으로 추정할 수 있게 하는데 있다. 이를 위해 본 발명은 미리 설정한 개수의 후보 벡터들에 대해서만 실제 왜곡 값을 구하여 반화소 단위의 최적의 움직임 벡터를 추출함으로써, 반화소 영역에서의 움직임 추정 과정에서 요구되는 추가적인 회로를 최소화할 수 있다. 즉, 풀 화소 영역에서 추정된 각 후보 벡터의 왜곡 값에 선형 보간법을 적용하여 반화소 단위의 벡터에 해당되는 왜곡 값을 추정하는 과정이 본 발명에서는 수행되지 않는다.
또한, 본 발명은 실제 왜곡 값을 계산할 m개(m < 8)의 후보 벡터를 선택하는 기준을 왜곡 값이 아닌 기존에 이미 구한 활용 가능한 움직임 벡터를 사용함으로써, 반화소 영역의 8개의 후보 벡터를 선택하는 과정에서 풀 화소 영역의 후보 벡터의 왜곡 값에 대한 정렬 연산 및 저장에 필요한 메모리 부를 생략할 수 있으므로 하드웨어적 부담을 최소화하는데 있다. 즉, 풀 화소 영역에서 현재 매크로블록의 최적의 움직임 벡터가 결정되면 현재 매크로블록과 인접한 매크로블록 중 이미 부호화된 매크로블록의 움직임 벡터 정보를 이용하여 반화소 영역에서 m개의 후보 벡터를 결정하는 방식을 사용한다. 따라서, 풀 화소 영역의 후보 벡터들의 왜곡 값을 사용하지 않음으로써, 결과적으로 적은 하드웨어적 부담으로 반화소 단위의 움직임 벡터를 추정할 수 있게 된다.
상기된 본 발명의 특징을 좀 더 구체적으로 설명하면 다음과 같다.
즉, 반화소 단위의 움직임 벡터를 추정하기 위해서 먼저 풀 화소 영역에서 최적의 움직임 벡터를 추정해야 한다. 상기 풀 화소 영역에서의 움직임 벡터 추정은 전영역 탐색(full search) 알고리즘을 사용할 수도 있으며 경우에 따라서는 계층적 탐색과 같은 간소화된 알고리즘을 사용할 수도 있다. 본 발명에서는 풀 화소 영역에서의 움직임 벡터 추정에 관한 자세한 설명은 하지 않기로 한다.
도 3은 풀 화소 영역 및 반화소 영역에서의 움직임 벡터의 기준 영상 내의 상대적인 위치를 표시하기 위한 개념도이다.
도 3을 보면, 풀 화소 영역에서 최적의 움직임 벡터(x*, y*)가 결정되면 이를 중심으로 8개의 반 화소 영역에서의 후보 벡터가 존재하며 이는 도 3에 0번부터 7번까지의 번호로 표시되어 있다. 이때, 풀 화소 영역에서 움직임 벡터를 추정하는 과정에서 최적의 움직임 벡터(x*, y*)와 기타 8개의 후보 벡터에 대한 총 9개의 왜곡 값이 존재한다. 각 후보 벡터에 대한 왜곡 값을 구하는 함수를 D(.)이라고 정의한다면 하기의 수학식 1과 같은 관계가 성립한다.
상기된 수학식 1과 같은 관계에 의해 풀 화소 영역에서 최적의 움직임 벡터(x*, y*)가 결정되면 0번부터 7번까지의 번호로 표시된 반화소 단위의 후보 벡터에 대하여 왜곡 값을 구해야 한다. 즉, 반화소 단위의 움직임 벡터를 추정하기 위해서는 8개의 추가적인 왜곡 함수 연산을 수행해야 한다.
그러나, 본 발명에서는 반화소 영역의 8개의 후보 벡터에 대하여 왜곡 값을 전부 계산하지 않고 이들 중에서 m개의 후보 벡터들에 대해서만 실제 왜곡 값을 계산한다.
본 발명의 실시예에서는 왜곡 값을 구하는 함수 D(.)로 SAD를 사용하며, 기타 실시예에서는 SSD(Sum of Squared Difference) 등과 같은 다른 종류의 왜곡 함수를 사용할 수도 있다.
이때, 전술한 종래의 방법에서는 실제 왜곡 값을 계산하기 위한 m개의 후보 벡터를 선택하기 위하여 풀 화소 영역의 후보 벡터들의 왜곡 값에 선형 보간법을 적용하여 반화소 영역의 후보 벡터의 왜곡 값을 추정한 다음 이들 중 왜곡 값이 가장 작은 m개의 후보 벡터를 선택하였는데, 본 발명에서는 이 과정이 수행되지 않는다.
대신 본 발명에서는 풀 화소 영역에서 움직임 벡터를 추정할 때, 최적 벡터 주변의 8개의 반화소 후보 벡터 중에서 실제 왜곡값을 구할 m개의 후보 벡터를 선택하여 이들의 정보를 저장한다. 이는 풀 화소 영역에서 움직임 벡터를 추정하는 과정에서 이미 반화소 영역에서 실제 왜곡 값을 계산할 후보 벡터가 결정됨을 의미한다.
즉, 본 발명은 현재 매크로블록에 대하여 계산되어진 풀 화소 영역의 최적의 움직임 벡터와, 이미 부호화된 적어도 하나 이상의 매크로블록의 움직임 벡터들의 선형 조합을 사용하여 반화소 영역의 8개의 후보 벡터 중 실제 왜곡값을 구할 m개의 후보 벡터를 선택한다. 다시 말해, 반화소 영역의 8개의 후보 벡터 중 선형 조합의 결과로 얻은 움직임 벡터와 방향이 일치하는 움직임 벡터를 반화소 영역의 최적의 움직임 벡터로 결정하고, 나머지 7개의 후보 벡터 중에서 (m-1)개의 벡터를 벡터의 유사 정도에 따라 선택하면, 실제 왜곡값을 구할 m개의 후보 벡터가 선택된다.
따라서, 반화소 영역에서의 모든 후보 벡터들에 대하여 실제 왜곡 값을 계산하지 않아도 되며, 선택된 m개의 후보 벡터에 대해서만 실제 왜곡 값을 계산하면 된다.
도 4는 현재 움직임 벡터를 구하고자 하는 매크로블록을 M(i)라고 정의하였을 때, 현재 매크로블록과 주변의 매크로블록의 영상 내 위치를 개념적으로 나타낸 것이다. 도 4의 괄호안의 인덱스는 각 매크로블록의 어드레스를 의미한다. 또한, S는 슬라이스의 크기 또는 한 개의 슬라이스에 포함되는 매크로블록의 개수를 의미한다. 현재 프레임의 각 매크로블록을 라스터 스캔(raster-scan)과 같은 순서로 부호화한다고 가정할 때, 현재 매크로블록을 기준으로 위쪽 및 왼쪽에 위치한 매크로블록에 대해서는 부호화가 완료되어 있는 상태이다. 따라서 도 4에서 어둡게 표시된 부분은 현재 매크로블록 M(i)를 기준으로 이미 부호화가 완료된 블록이다. 즉, 이들 매크로블록에 대해서는 반화소 단위의 움직임 벡터의 추정이 완료된 상태이다. 따라서 일반적인 경우, 현재 매크로블록 M(i)을 중심으로 4개의 인접한 매크로블록(M(i-S-1), M(i-S), M(i-S+1), M(i-1))에 대해서 움직임 벡터가 활용 가능한 상태이다.
도 5는 본 발명에 따른 움직임 추정 방법의 일 예를 보인 동작 흐름도로서, 풀 화소 영역에서 현재 매크로 블록의 최적의 움직임 벡터 (x*,y*)가 결정되면(단계 501), 현재 매크로 블록과 인접한 매크로 블록 중 이미 부호화된 매크로 블록의 움직임 벡터 정보의 선형 조합 벡터(xc,yc)를 계산한다(단계 502). 여기서, 상기 선형 조합 벡터(xc,yc)의 계산시 매크로 블록의 위치에 따라 가중치를 부여할 수도 있다.
이때, 이미 부호화된 움직임 벡터들의 가중치를 부여한 선형 조합 벡터(xc, yc)를 구하는 식은 하기의 수학식 2와 같다.
여기서, MV(i)는 현재 매크로블록에 인접한 이미 부호화된 i번째 매크로블록의 움직임 벡터이며, 선형 조합 과정에서 이 움직임 벡터에 적용하는 가중치를alpha (i)로 표시한다. 즉, 풀 화소 영역에서 현재 매크로 블록의 최적의 움직임 벡터가 결정되면, 현재 매크로블록에 인접한 이미 부호화된 K개의 매크로 블록의 움직임 벡터를 사용하여 가중치를 부여한 선형 조합 벡터(xc, yc)를 계산한다. 이때, 각 벡터는 반화소 단위의 움직임 벡터이다.
상기 선형 조합에 사용되는 움직임 벡터의 개수에는 제한이 없으며 가장 간단한 실시예의 경우에 1개만을 사용할 수 있다. 그리고, 가중치 역시 조합에 사용되는 모든 벡터에 동일한 값을 적용할 수 있으며, 적응적으로 다른 값을 할당할 수도 있다. 또한, 보다 일반화된 실시예의 경우에, 선형 조합 벡터를 계산할 때 인접한 매크로블록 이외에 이미 부호화된 다른 매크로블록의 움직임 벡터를 사용할 수도 있으며 이 경우에 가중치를 적응적으로 할당하는 방법을 사용할 수 있다.
상기 단계 502에서 선형 조합 벡터(xc,yc)가 계산되면, 현재 매크로블록의 풀 화소 영역의 최적 벡터(x*,y*)와 인접 매크로블록의 움직임 벡터의 선형 조합 벡터(xc, yc)를 비교하여 반화소 영역의 8개의 후보 벡터 중 실제 왜곡 값을 계산할 최적의 후보 벡터(xh, yh)를 결정한다(단계 503).
상기 반화소 영역에서 실제 왜곡값을 계산할 최적의 후보 벡터(xh, yh)의 결정 기준은 하기의 수학식 3과 같다.
예를 들어, 반화소 영역에서 실제 왜곡 값을 계산할 후보 벡터의 개수를 m개로 설정하였을 경우에, 상기 수학식 3에 의해 계산된 반화소 영역의 실제 왜곡값을 계산할 최적의 움직임 벡터(xh, yh)와, (x*, y*)주변의 나머지 7개의 반화소 영역의 후보 벡터 중에서 상기 움직임 벡터(xh, yh)와의 거리가 가장 가까운 (m-1)개의 움직임 벡터를 선택한다. 그러면, 반화소 영역에서 실제 왜곡값을 계산할 m개의 후보 벡터가 결정된다. 예를 들어, m=3인 경우의 반화소 단위 움직임 벡터 추정의 일 실시예에서, (xc,yc) = (a,b)이고, a > x*, b < y*인 관계가 성립한다면 실제 왜곡 값을 계산할 후보 벡터는 (x*+0.5, y*-0.5)이며, 이는 도 3을 참고로 했을 때 2번 위치에 해당된다. 결과적으로 나머지 2개의 후보 벡터는 도 3을 참고했을 때 상기 2번 위치와 거리가 가장 가까운 1번과 4번의 위치에 해당되는 (x*, y*-0.5)과 (x*+0.5, y*)가 된다.
상기된 과정을 통해 반화소 영역에서 m개의 후보 벡터가 결정되면, 상기 m개의 후보 벡터에 대해 실제 왜곡값을 계산한다. 그리고 나서, 상기 풀 화소 영역의 최적의 움직임 벡터의 왜곡값 D(x*,y*)과 상기 반화소 영역의 m개의 후보 벡터의 실제 왜곡값을 비교하여 그 중 가장 작은 왜곡값을 갖는 움직임 벡터를 현재 매크로블록의 움직임 벡터로 최종 결정한다(단계 504).
이때, m의 개수는 8보다 작은 값을 사용하며 가장 간단한 실시예의 경우에 m=1이 된다.
이상에서와 같이 본 발명에 따른 움직임 추정 방법에 의하면, 현재 매크로 블록에 대하여 계산되어진 풀 화소 영역의 최적의 움직임 벡터와 이미 부호화된 인접 매크로 블록의 움직임 벡터를 사용하여 반화소 영역에서 실제 왜곡값을 구할 m개의 후보 벡터를 선택함으로써, 반화소 영역의 실제 왜곡 값을 계산하기 위한 후보 벡터의 수를 줄일 수 있으므로 즉, 반화소 영역의 8개의 후보 벡터의 왜곡 함수를 모두 구하지 않아도 되므로 디지털 동영상 부호화기의 부호화 시간 단축 및 연산량 감소의 효과가 있다.
또한, 본 발명은 풀 화소 영역의 최적 움직임 벡터 주변의 8개의 후보 벡터의 왜곡 값에 대한 정렬 연산 및 저장에 필요한 수단이 필요 없으므로, 반화소 영역에서 실제 왜곡 값을 계산할 벡터의 선택 과정에서 필요한 메모리 및 연산량이 감소하는 효과가 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (8)

  1. (a) 다수의 풀 화소 위치들에 대한 왜곡값들을 비교하여 부호화할 현재 매크로 블록의 최적의 움직임 벡터를 결정하는 단계;
    (b) 현재 영상의 이미 부호화된 적어도 하나 이상의 매크로 블록의 움직임 벡터를 선형 조합하여 선형 조합 벡터를 산출하는 단계;
    (c) 상기 풀 화소 영역의 최적의 움직임 벡터와 상기 선형 조합 벡터를 비교하여 반화소 영역의 실제 왜곡값을 계산할 m(m<8)개의 후보 움직임 벡터를 선택하는 단계;
    (d) 상기 반화소 영역의 m개의 후보 움직임 벡터에 대해 실제 왜곡값을 계산하는 단계; 그리고
    (e) 상기 풀 화소 영역의 최적의 움직임 벡터의 왜곡값과 상기 반화소 영역의 m개의 후보 움직임 벡터에 대한 실제 왜곡값을 비교하여 가장 작은 왜곡값을 갖는 움직임 벡터를 현재 매크로 블록의 움직임 벡터로 최종 결정하는 단계를 포함하여 이루어지는 것을 특징으로 하는 움직임 추정 방법.
  2. 제 1 항에 있어서, 상기 (b) 단계는
    현재 매크로 블록과 인접한 이미 부호화된 K(K≥1)개의 매크로 블록의 움직임 벡터들의 대표값을 선형 조합 벡터로 결정하는 것을 특징으로 하는 움직임 추정 방법.
  3. 제 1 항에 있어서, 상기 (b) 단계는
    현재 매크로 블록과 인접한 이미 부호화된 K(K≥1)개의 매크로 블록의 움직임 벡터들의 평균값을 선형 조합 벡터로 결정하는 것을 특징으로 하는 움직임 추정 방법.
  4. 제 1 항에 있어서, 상기 (b) 단계는
    현재 영상의 이미 부호화된 K(K≥1)개의 매크로 블록의 움직임 벡터들을 이용하여 선형 조합 벡터 산출시 상기 부호화된 매크로 블록의 위치에 따라 가중치를 부여하여 선형 조합 벡터를 산출하는 것을 특징으로 하는 움직임 추정 방법.
  5. 제 1 항에 있어서, 상기 (b) 단계는
    하기의 수학식을 적용하여 선형 조합 벡터(xc,yc)를 산출하는 것을 특징으로 하는 움직임 추정 방법.
    여기서, MV(i)는 현재 매크로 블록에 인접한 이미 부호화된 i번째 매크로블록의 움직임 벡터이고, alpha (i)는 상기 움직임 벡터에 적용하는 가중치임.
  6. 제 1 항에 있어서, 상기 (c) 단계는
    상기 풀 화소 영역의 최적의 움직임 벡터의 주변에 위치한 반화소 영역의 n(n≥8)개의 후보 움직임 벡터 중 상기 선형 조합 벡터와 방향이 일치하는 움직임 벡터를 실제 왜곡값을 계산할 최적의 후보 움직임 벡터로 결정하는 것을 특징으로 하는 움직임 추정 방법.
  7. 제 6 항에 있어서, 상기 (c) 단계는
    상기 반화소 영역에서 실제 왜곡값을 계산할 최적의 후보 움직임 벡터(xh, yh)는 하기의 식을 적용하여 결정하는 것을 특징으로 하는 움직임 추정 방법.
    여기서, (x*,y*)는 풀 화소 영역의 최적의 움직임 벡터, (xc,yc)는 선형 조합 벡터임.
  8. 제 6 항에 있어서, 상기 (c) 단계는
    반화소 영역의 최적의 후보 움직임 벡터가 결정되면 반화소 영역의 나머지 n-1개의 후보 움직임 벡터 중 m-1개의 움직임 벡터는 상기 반화소 영역의 최적의후보 움직임 벡터와의 유사 정도에 따라 선택하는 것을 특징으로 하는 움직임 추정 방법.
KR1020020073133A 2002-11-22 2002-11-22 움직임 추정 방법 KR100617177B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020073133A KR100617177B1 (ko) 2002-11-22 2002-11-22 움직임 추정 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020073133A KR100617177B1 (ko) 2002-11-22 2002-11-22 움직임 추정 방법

Publications (2)

Publication Number Publication Date
KR20040045112A true KR20040045112A (ko) 2004-06-01
KR100617177B1 KR100617177B1 (ko) 2006-08-31

Family

ID=37341150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020073133A KR100617177B1 (ko) 2002-11-22 2002-11-22 움직임 추정 방법

Country Status (1)

Country Link
KR (1) KR100617177B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100778469B1 (ko) * 2000-12-12 2007-11-21 엘지전자 주식회사 움직임 추정 최적화 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2765528B2 (ja) * 1995-09-25 1998-06-18 日本電気株式会社 半画素精度動きベクトル探索装置
US6141382A (en) * 1998-09-18 2000-10-31 Sarnoff Corporation Using estimated distortion values

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100778469B1 (ko) * 2000-12-12 2007-11-21 엘지전자 주식회사 움직임 추정 최적화 방법 및 장치

Also Published As

Publication number Publication date
KR100617177B1 (ko) 2006-08-31

Similar Documents

Publication Publication Date Title
US20220321905A1 (en) Reducing computational complexity when video encoding uses bi-predictively encoded frames
KR100739281B1 (ko) 움직임 추정 방법 및 장치
KR101403343B1 (ko) 부화소 움직임 추정을 이용한 인터 예측 부호화, 복호화방법 및 장치
EP0637894B1 (en) Apparatus and method for detecting motion vectors to half-pixel accuracy
US20070268964A1 (en) Unit co-location-based motion estimation
US20090067504A1 (en) Real-time video coding/decoding
US20060120455A1 (en) Apparatus for motion estimation of video data
US20050232360A1 (en) Motion estimation apparatus and method with optimal computational complexity
KR100246167B1 (ko) 듀얼프라임 움직임 추정시스템 및 방법
KR19980041898A (ko) 디지탈 비디오 데이타 스트림의 일시적인 압축 방법 및 탐색 프로세서
EP1413144A2 (en) Methods and apparatus for sub-pixel motion estimation
KR20010082934A (ko) 움직임 추정 방법 및 장치
US20010031004A1 (en) Method and apparatus for updating motion vector memories
KR100994768B1 (ko) 동영상 부호화를 위한 움직임 추정 방법 및 이를 구현하기위한 프로그램이 기록된 기록 매체
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
US20220360814A1 (en) Enhanced motion vector prediction
KR20040070490A (ko) 비월 주사 방식의 동영상 부호화/복호화 방법 및 그 장치
JP3674535B2 (ja) 動画像符号化方法および装置
US20120163462A1 (en) Motion estimation apparatus and method using prediction algorithm between macroblocks
US6141449A (en) Coding mode determination system
KR100723840B1 (ko) 영상 움직임 추정 장치
KR100269129B1 (ko) 부화소단위의움직임추정방법및이를위한장치
KR100617177B1 (ko) 움직임 추정 방법
KR20020046059A (ko) 움직임 추정 최적화 방법 및 장치
KR20060109440A (ko) 전력 최적화 콜로케이팅된 움직임 추정 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120727

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130724

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140724

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150724

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee