KR100719939B1 - 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한영상 압축방법 - Google Patents

영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한영상 압축방법 Download PDF

Info

Publication number
KR100719939B1
KR100719939B1 KR1020040080533A KR20040080533A KR100719939B1 KR 100719939 B1 KR100719939 B1 KR 100719939B1 KR 1020040080533 A KR1020040080533 A KR 1020040080533A KR 20040080533 A KR20040080533 A KR 20040080533A KR 100719939 B1 KR100719939 B1 KR 100719939B1
Authority
KR
South Korea
Prior art keywords
data
sad
search
motion estimator
image
Prior art date
Application number
KR1020040080533A
Other languages
English (en)
Other versions
KR20060031478A (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 KR1020040080533A priority Critical patent/KR100719939B1/ko
Publication of KR20060031478A publication Critical patent/KR20060031478A/ko
Application granted granted Critical
Publication of KR100719939B1 publication Critical patent/KR100719939B1/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
    • 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/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
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

본 발명은 영상을 전송 또는 보관을 위하여 그 용량을 축소시키는 MPEG-4 AVC/H.264표준을 만족함은 물론, 압축 과정을 신속하게 처리할 수 있는 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한 영상 압축방법에 관한 것으로서, 그 특징적인 구성은 현재 프레임과 참조 프레임의 픽셀정보를 입력받아 SAD를 계산하는 비교부(PE array)(1)와, 참조 프레임의 정보를 임시적으로 저장하는 탐색 영역 메모리(search area SRAM)(2)와, 4x4 SAD 값을 입력받아 더 큰 부분의 SAD를 생성해내고 최소값과 그에 해당하는 움직임 벡터를 저장하는 가산기와 비교기(adder & comparator)(3)와, 탐색 영역 메모리(search area SRAM)의 주소와 다른 블록의 제어 신호(control signal)을 생성해내는 제어부(ME control)(4)를 포함하여서 된 것이다.
영상, 압축, 움직임 추정기, 프레임

Description

영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한 영상 압축방법{Image Motion Estimator and the image Motion Estimator use image packing method}
도 1은 종래의 압축 과정을 나타낸 개략도.
도 2는 종래 다른 실시예의 압축 과정을 나타낸 개략도.
도 3은 종래 또 다른 실시예의 압축 과정을 나타낸 개략도.
도 4는 본 발명에 따른 움직임 추정기를 나타낸 블록도.
도 5는 본 발명에 따른 움직임 추정기의 PE 영역에서 현재 블록과 탐색 영역 데이터의 데이터 경로를 나타낸 개략도.
도 6a는 본 발명에 따른 움직임 추정기의 PE 구조를 나나낸 블록도.
도 6b는 본 발명에 따른 움직임 추정기의 매크로 블록을 설명하기 위한 개략도.
도 7은 본 발명에 따른 움직임 추정기로 SAD결과를 만드는 과정을 설명하기위한 개략도.
도 8은 본 발명에 따른 움직임 추정기의 탐색 영역 메모리를 나타낸 구조도.
도 9는 본 발명에 따른 움직임 추정기로 구하여진 SAD 블록의 덧셈 및 비교과정을 설명하기 위한 개략도.
※도면의 주요부분에 대한 부호의 설명※
1 : 비교부 2 : 저장부
3 ; 연산부 4 : 제어부
본 발명은 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한 영상 압축방법에 관한 것으로서, 더욱 상세하게는 영상을 전송 또는 보관을 위하여 그 용량을 축소시키는 MPEG-4 AVC/H.264표준을 만족함은 물론, 압축 과정을 신속하게 처리할 수 있는 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한 영상 압축방법에 관한 것이다.
일반적으로 영상을 보관 및 전송할 때에는 그 영상의 블록단위 이미지와 가장 유사한 위치인 움직임 벡터를 추정하는 움직임 추정기(ME : Motion Estimator)를 이용하고 있으며, 상기 움직임 추정기에서 추정된 움직임 벡터를 기준으로 이전 프레임 데이터와 인코딩 할 이미지 데이터의 차분치를 구하고 있다.
종래에는 영상을 압축할 때에는 도 1에 나타내 바와 같이 압축할 이미지 프레임(7*7) 내부의 고정된 크기(3*3)를 갖는 블록을 이전 프레임 데이터의 영역을 탐색하고 비교값을 출력하면서 압축하고 있다.
즉, 블록을 기준으로 이전 프레임 데이터의 영역을 탐색하는 것으로서, 탐색하기 위한 블록의 크기가 고정되어 있고, 탐색영역에 해당하는 데이터가 이동하면 서 한 번 사용한 데이터를 재 사용하는 형식으로 되어 있다.
이러한 종래의 방법은 간단하게 2차원 구조를 구현했다는 장점이 있으나, S R(shift register)을 사용하여 데이터를 이동시키므로 탐색 범위가 넓어질 경우에는 그에 따르는 SR의 개수도 늘어나 로직의 크기도 커진다는 단점과 이동하는 동안 SAD(sum of absolute difference)를 구하지 못하는 시간이 있어 PE(Processing Element)의 활용도가 낮게되는 문제점이 있었다.
또는 종래의 다른 방법은 도 2에 나타낸 바와 같이 탐색 영역 데이터를 M0~M15의 메모리에 저장하고, 탐색 블록 데이터를 PE에서 그림과 같은 형태로 가로, 세로 방향으로 순환시켜 SAD를 구하는 것으로서, 이 방법은 PE의 활용도가 높고 메모리에 데이터를 한 번만 저장하면 되므로 메모리의 폭방향 크기가 낮다는 장점이 있으나. PE마다 하나의 메모리가 존재하므로 PE의 수가 많아지면 그만큼 메모리 숫자도 증가하여(16x16 PE면 256개의 메모리) 접근이 어려워지게되고, 현재 블록 데이터가 이동하여 4x4나 8x4 등 작은 블록 사이즈의 SAD를 구하기 힘들고, 탐색 영역 데이터를 모두 저장해야 하므로 내부 메모리(on-chip memory)의 양이 증가되는 등의 문제점이 있었다.
또는 종래의 또 다른 방법은 도 3에 나타낸 바와 같이 2차원 데이터를 재 사용하는 방법을 사용하면서도, SR(shift register)를 이용하지 않고 탐색 블록 데이터를 가로 방향으로 이동시키고 탐색 영역 데이터를 세로 방향으로 이동시키며 PE를 하는 것이다.
그러나 이러한 종래의 방법은 탐색 블록 데이터가 매 사이클 마다 움직여 작 은 블록에 대한 SAD를 구하기 힘들고, 탐색 영역 데이터에 대한 컨트롤이 복잡하게 되는 문제점이 있었다.
본 발명은 상기한 문제점을 해결하기 위하여 발명한 것으로서, 그 목적은 영상을 전송 또는 보관을 위하여 그 용량을 축소시키는 MPEG-4 AVC/H.264표준을 만족함은 물론, 압축 과정을 신속하게 처리할 수 있는 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한 영상 압축방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 특징적인 구성을 설명하면 다음과 같다.
본 발명의 영상 움직임 추정기는 현재 프레임과 참조 프레임의 픽셀정보를 입력받아 SAD를 계산하는 비교부(PE array)와, 참조 프레임의 정보를 임시적으로 저장하는 탐색 영역 메모리(search area SRAM)와, 4x4 SAD 값을 입력받아 더 큰 부분의 SAD를 생성해내고 최소값과 그에 해당하는 움직임 벡터를 저장하는 가산기와 비교기(adder & comparator)와, 탐색 영역 메모리(search area SRAM)의 주소와 다른 블록의 제어 신호(control signal)을 생성해내는 제어부(ME control)를 포함하여서 된 것이다.
또한 본 발명의 영상 움직임 추정기를 이용한 영상 압축방법은 PE 영역에서는 매 사이클마다 수평 방향으로 탐색 영역 데이터를 이동시키고, 탐색 위치가 수직 방향으로 바뀔 때마다 수직 방향으로 현재 블록 데이터를 이동시키는 단계와; PE내에서 매 클럭마다 현재 블록 레지스터(CBR : current block register)과 참조 블록 레지스터(RBR : reference block register)에 있는 값의 차의 절대치를 계산하고 예비 블록 레지스터(Preload register)는 현재 프레임의 다음 매크로블록 데이터를 저장하고 있며, 그 저장된 데이터는 현재 매크로블록에 대해 연산이 끝나면 CBR로 데이터를 가져오는 단계와; 현재 탐색중인 가로줄 탐색이 끝나고 새로운 가로줄에 대해서 탐색을 시작할 때 탐색 데이터 버퍼(search data buffer)에 저장된 데이터를 가져오는 단계와; 16x4 PE 에서 16개의 1x4 SAD 결과를 합해 4개의 4x4 SAD 결과를 만들고 1x4 PE의 결과와 가산기(adder) 사이에 선택기(selector)를 추가하여 1x4 SAD가 올바로 가산기(adder)로 입력되도록 하는 단계와; 4x4 SAD들은 더하기 전에 레지스터에 저장되어 임계 경로(critical path)를 없애 준 뒤 다음 클럭 때 가산기(adder)를 거쳐 8x4, 4x8, 8x8, 16x8, 8x16, 16x16 SAD를 생성하는 단계 및 41개의 SAD에 대해 최소값을 비교하여 41개의 최소 SAD와 그에 해당하는 움직임 벡터를 저장하는 단계를 포함하여서 된 것이다.
이와 같은 특징을 갖는 본 발명을 상세하게 설명하면 다음과 같다.
본 발명은 MPEG-4 AVC/H.264 표준을 지원하기 위한 움직임 추정기로서, 그 특징은 첫째, 전역 탐색(full search)알고리듬을 이용하여 현재 프레임(current frame)과 참조 프레임(reference frame) 간의 움직임 벡터(motion vector)를 다양한 크기(16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4)를 갖는 7가지의 블록에 대하여 동시에 구할 수 있고, 둘째, 2차원 배열 구조(2-D array architecture)를 사용하면서 가로 방향으로는 참조 프레임 데이터(data)를 움직이고 세로 방향으로는 현재 프레임 데이터만 움직이도록 하여 PE(Processing Element)를 효과적으로 활용함과 동시에 간단한 데이터패스를 구현할 수 있는 것이다.
이하에서 일예로 설명하는 움직임 추정기는 -32 ~ +32의 탐색 범위를 지원하고 하나의 매크로블록에 대한 움직임 추정을 4226 클럭만에 수행할 수 있으며, 최대 4CIF 15 fps(frame per sec)에 대한 움직임 추정을 수행할 수 있는 것이다.
먼저, MPEG-4 AVC/H.264 Motion Estimator의 구조를 설명하면 다음과 같다.
본 발명의 움직임 추정기는 전역 탐색을 지원하는 2차원 배열 구조이고, 가별 블록 크기 움직임 추정(VBSME : Variable Block Size Motion Estimation)을 지원하여 다양한 크기(16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4)를 갖는 7개의 블록에 대해 움직임 벡터를 모두 구할 수 있다.
상기 2차원 배열 구조는 데이터의 변화에 따라 크게 다음과 같은 세 가지 경우로 나뉘어질 수 있다.
첫째, 현재 블록 데이터가 PE 내에서 바뀌고, 탐색 영역 데이터는 변화하지 않는 경우.
둘째, 현재 블록 데이터가 PE 내에서 고정되고, 탐색 영역 데이터의 위치는 바뀌는 경우.
셋째, 현재 블록 데이터와 탐색 영역 데이터의 위치가 모두 바뀌는 경우이다.
VBSME 구조에서는 PE내에서 현재 블록 데이터의 위치가 바뀌면 16x16 PE 내의 4x4블록의 위치도 바뀌게 된다. 첫째의 경우와 같이 현재 블록 데이터의 위치가 매 사이클마다 바뀌면 4x4 블록들의 위치도 매번 바뀌게 되어 4x4 블록의 SAD(sum of absolute difference)를 올바로 구하려면 매우 복잡한 처리 과정이 필요하게 된 다.
둘째의 경우에는 탐색 영역 데이터가 매번 바뀌는데, 이는 PE의 활용도를 높게 유지하면서도 간단한 데이터 경로로 PE 영역을 구성하기 매우 어렵게 한다. 따라서 본 발명은 셋째의 방법을 사용하여 PE 효과적인 활용도와 간단한 데이터 경로를 갖는 PE를 구성하는 것이다.
도 3은 본 발명에 따른 움직임 추정기의 블록 다이어그램을 나타낸 것으로서, 여기에서 참조되는 바와 같이 본 발명의 움직임 추정기는 크게 4가지 부분으로 구성되어 있다.
현재 프레임과 참조 프레임의 픽셀정보를 입력받아 SAD를 계산하는 비교부(PE array)(1)와, 참조 프레임의 정보를 임시적으로 저장하는 탐색 영역 메모리(search area SRAM)(2)와, 4x4 SAD 값을 입력받아 더 큰 부분의 SAD를 생성해내고 최소값과 그에 해당하는 움직임 벡터를 저장하는 가산기와 비교기(adder & comparator)(3)와, 탐색 영역 메모리(search area SRAM)의 주소와 다른 블록의 제어 신호(control signal)을 생성해내는 제어부(ME control)(4)로 이루어져 있다.
상기 PE array는 16x16의 PE로 구성되어 있으므로, 한 번에 16x16 매크로블록의 SAD를 계산할 수 있는 것으로서, 매 클럭마다 SAD를 계산하려면 PE 영역에 16개의 새로운 탐색 영역 데이터가 입력되어야 한다. 본 발명에서는 16개의 내부 메모리을 PE 영역과 연결하여 매 클럭마다 SAD를 계산할 수 있도록 하였다.
도 5는 PE 영역에서 현재 블록과 탐색 영역 데이터의 데이터 경로를 나타낸 것이다.
여기에서 참조되는 바와 같이 PE 영역에서는 매 사이클마다 수평 방향(도면상 오른쪽에서 왼쪽)으로 탐색 영역 데이터를 이동시키고, 탐색 위치가 수직 방향으로 바뀔 때마다 수직 방향(도면상 위에서 아래)으로 현재 블록 데이터를 이동시킨다.
그리고 도 6a는 PE의 구조를 나나낸 블록도로서, PE내에는 현재 블록 레지스터(CBR : current block register)과 참조 블록 레지스터(RBR : reference block register)과, 예비 블록 레지스터(PR : preload register)과, 탐색 데이터 버퍼(search data buffer)와, SAD 계산기 및 다중화기(multiplexer) 등이 내장되어 있다.
따라서, 매 클럭마다 CBR과 RBR에 있는 값의 차의 절대치가 계산되고, 예비 블록 레지스터(Preload register)는 현재 프레임의 다음 매크로블록 데이터를 저장하고 있으며, 그 저장된 데이터는 현재 매크로블록에 대해 연산이 끝나면 CBR로 데이터를 가져온다.
한편, 탐색 데이터 버퍼(search data buffer)에는 탐색 영역 내의 한 가로줄에서 처음 탐색을 시작할 때의 초기 데이터가 들어 있어 한 가로줄의 탐색이 끝나고 다음 가로줄의 탐색을 시작할 때 기다림 없이 탐색을 계속 진행할 수 있도록 해 준다.
예를 들어 도 6b에서와 같이 현재 프레임의 매크로블록의 위치가 4이고, 탐색 범위가 -16 ~ +15라고 하면, 참조 프레임의 탐색 영역은 그림에서 0~8의 영역이 된다.
이 때, 맨 처음 PE에서 SAD를 계산하기 위해서는 0의 영역이 16x16 PE의 RBR에 저장되어 있어야 하는데, PE에는 한번에 16개의 데이터만 입력 가능하므로 16x16 PE의 RBR에 모두 채우려면 적어도 16 사이클이 필요하다.
이러한 현상은 그림에서 짙은 색의 부분을 탐색할 때 공통적으로 발생하여 PE의 실용성을 감소시키는 원인이 된다.
따라서, 이를 해결하기 위하여 한 가로줄의 탐색이 끝나고 새로운 가로줄에 대해서 탐색을 시작할 때에는 짙은 부분의 데이터를 탐색 데이터 버퍼(search data buffer)에 저장해 놓았다가 가져와 바로 탐색이 시작되도록 한다.
그리고, 현재 프레임에서 다음 매크로블록인 5에 대해 탐색 데이터 버퍼(search data buffer)에 저장되어야 할 1, 4, 7의 영역은 현재 매크로블록인 4에 대해서 탐색을 수행하는 동안 0, 3, 6의 영역이 필요 없게 된 후 RBR에서 탐색 데이터 버퍼(search data buffer)로 쓰여지게 된다.
또한, 매크로블록 파이프라인을 구현하기 위하여 예비 블록 레지스터(Preload register)가 PE 안에 있다. 4의 위치의 현재 매크로블록 데이터에 대해 탐색을 수행하는 동안, 5의 위치에 해당하는 현재 프레임의 다음 매크로블록 데이터가 PE의 예비 블록 레지스터(Preload register)로 전달된다. 예비 블록 레지스터(Preload register)에 저장된 데이터는 다음 매크로블록의 탐색을 시작하기 전에 CBR로 즉시 전달되어 매크로블록 파이프라인을 가능하게 한다.
이는 현재 블록 데이터가 PE 내에서 이동하므로, 16x16 PE 내의 4x4 블록들의 위치도 같이 이동하게 되는 것이다.
도 7에 나타낸 바와 같이 16x4 PE 에서 16개의 1x4 SAD 결과를 합해 4개의 4x4 SAD 결과를 만들고 있는데, 1x4 PE의 결과와 가산기(adder) 사이에 선택기(selector)를 추가하여 1x4 SAD가 올바로 가산기(adder)로 입력되도록 하였다. 16x16 PE는 위와 같은 16x4 PE 4개를 서로 연결하여 만들 수 있다.
[표 1]
Figure 112004045832291-pat00001
표 1에 -16 ~ +15 탐색 범위에 대한 PE 내에서의 데이터 이동이 나타나 있 다.
여기에서 C(x,y)는 현재 블록 데이터이고 R(x,y)은 탐색 영역 데이터를 나타낸다. Clock 0에서 31까지는 현재 블록 데이터는 변하지 않고 탐색 영역 데이터만 왼쪽에서 오른쪽으로 이동하면서 가로 방향으로 움직임 벡터를 찾는다.
그리고, 하나의 가로줄에 대해 탐색이 끝나는 clock 31 이후 현재 블록 데이터가 위에서 아래로 하나씩 이동한 후 clock 32부터 다음 가로줄에 대해 탐색을 계속하게 된다.
도 8은 본 발명에 따른 탐색 영역 메모리(search area SRAM)의 구조를 나타낸 것이다.
여기에서 참조되는 바와 같이 PE 영역에는 16개의 탐색 영역 메모리(search area SRAM)가 연결되어 있다. 테이블의 데이터 흐름을 잘 살펴보면, 첫 번째 가로줄과 두 번째 가로줄 탐색 시 PE의 첫 번째 줄을 제외한 나머지 줄에 대해서는 같은 탐색 영역 데이터가 사용됨을 알 수 있다.
또한, PE의 첫 번째 줄에는 이전보다 16줄 아래의 탐색 영역 데이터가 사용된다. 마찬가지로, 새로운 가로줄에 대해 탐색을 시작할 때, 16개의 SRAM 중 하나의 주소만 바꾸어 주면 되고, 이 주소는 이전보다 16줄 아래를 가리키게 된다.
따라서, 16개 SRAM은 각기 탐색 영역에서 매 16번째 줄만 저장하면 되는 것이다. 즉, k번째 SRAM(k=0,1,2,...,15)은 그림에서와 같이 탐색 영역의 (16i+k)번째 줄(i는 정수)만 포함하고 있으면 되는 것이며, 참조 프레임 데이터를 SRAM으로 옮길 때 16줄만큼 떨어진 데이터를 저장하는 것은 간단히 주소 버스를 조작함으로써 구현할 수 있는 것이다.
상술한 바와 같은 과정을 통하여 구하여진 SAD 블록의 덧셈 및 비교과정은 도 9와 같다.
즉, 16x16 PE 영역의 결과인 16개의 4x4 SAD는 가산기(adder) & 비교기(comparator) 블록으로 입력된다.
여기에서 4x4 SAD들은 더하기 전에 레지스터에 저장되어 임계 경로(critical path)를 없애 준 뒤 다음 클럭 때 가산기(adder)를 거쳐 8x4, 4x8, 8x8, 16x8, 8x16, 16x16 SAD를 생성한다. 비교기(comparator)는 모두 41개의 SAD에 대해 최소값을 비교하여 41개의 최소 SAD와 그에 해당하는 움직임 벡터를 저장한다.
이 값들은 레이트 디스토션 최적화(rate-distortion optimization equation)에 사용되어 최적의 블록 크기를 찾을 수 있게되는 것이다.
이와 같이 본 발명은 탐색 영역 데이터를 매 주기(cycle)마다 가로 방향으로 움직이고 현재 블록 데이터(current block data)는 한 줄의 탐색이 끝날 때마다 세로 방향으로 움직여 search area data에 대한 컨트롤을 간단히 함과 동시에 사용하는 메모리 개수를 최소화 할 수 있게 되는 것이며, PE 내부에 버퍼를 두어 한 줄의 탐색 후 다음 줄을 탐색할 때 새로운 데이터를 실시간으로 로딩하여 신속한 처리가 가능하게 되는 특유의 효과가 있다.

Claims (2)

  1. 현재 프레임과 참조 프레임의 픽셀정보를 입력받아 SAD를 계산하는 비교부(PE array)(1)와, 참조 프레임의 정보를 임시적으로 저장하는 탐색 영역 메모리(search area SRAM)(2)와, 4x4 SAD 값을 입력받아 더 큰 부분의 SAD를 생성해내고 최소값과 그에 해당하는 움직임 벡터를 저장하는 가산기와 비교기(adder & comparator)(3)와, 탐색 영역 메모리(search area SRAM)의 주소와 다른 블록의 제어 신호(control signal)을 생성해내는 제어부(ME control)(4)를 포함함을 특징으로 하는 영상 움직임 추정기
  2. PE 영역에서는 매 사이클마다 수평 방향으로 탐색 영역 데이터를 이동시키고, 탐색 위치가 수직 방향으로 바뀔 때마다 수직 방향으로 현재 블록 데이터를 이동시키는 단계와; PE내에서 매 클럭마다 현재 블록 레지스터(CBR : current block register)과 참조 블록 레지스터(RBR : reference block register)에 있는 값의 차의 절대치를 계산하고 예비 블록 레지스터(Preload register)는 현재 프레임의 다음 매크로블록 데이터를 저장하고 있며, 그 저장된 데이터는 현재 매크로블록에 대해 연산이 끝나면 CBR로 데이터를 가져오는 단계와; 현재 탐색중인 가로줄 탐색이 끝나고 새로운 가로줄에 대해서 탐색을 시작할 때 탐색 데이터 버퍼(search data buffer)에 저장된 데이터를 가져오는 단계와; 16x4 PE 에서 16개의 1x4 SAD 결과를 합해 4개의 4x4 SAD 결과를 만들고 1x4 PE의 결과와 가산기(adder) 사이에 선택기(selector)를 추가하여 1x4 SAD가 올바로 가산기(adder)로 입력되도록 하는 단계와; 4x4 SAD들은 더하기 전에 레지스터에 저장되어 임계 경로(critical path)를 없애 준 뒤 다음 클럭 때 가산기(adder)를 거쳐 8x4, 4x8, 8x8, 16x8, 8x16, 16x16 SAD를 생성하는 단계 및 41개의 SAD에 대해 최소값을 비교하여 41개의 최소 SAD와 그에 해당하는 움직임 벡터를 저장하는 단계를 포함함을 특징으로 하는 영상 움직임 추정기를 이용한 영상 압축방법.
KR1020040080533A 2004-10-08 2004-10-08 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한영상 압축방법 KR100719939B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040080533A KR100719939B1 (ko) 2004-10-08 2004-10-08 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한영상 압축방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040080533A KR100719939B1 (ko) 2004-10-08 2004-10-08 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한영상 압축방법

Publications (2)

Publication Number Publication Date
KR20060031478A KR20060031478A (ko) 2006-04-12
KR100719939B1 true KR100719939B1 (ko) 2007-05-18

Family

ID=37141233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040080533A KR100719939B1 (ko) 2004-10-08 2004-10-08 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한영상 압축방법

Country Status (1)

Country Link
KR (1) KR100719939B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI295540B (en) * 2005-06-15 2008-04-01 Novatek Microelectronics Corp Motion estimation circuit and operating method thereof
KR100951847B1 (ko) * 2007-05-22 2010-04-12 한국전자통신연구원 가변 블록 움직임 추정을 위한 sad 계산 방법 및 장치
US8731059B2 (en) 2007-05-22 2014-05-20 Electronics And Telecommunications Research Institute Apparatus and method for calculating sum of absolute differences for motion estimation of variable block

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000023163A (ja) 1998-06-30 2000-01-21 Sharp Corp 動きベクトル検出装置
JP2000102005A (ja) 1998-09-21 2000-04-07 Nippon Telegr & Teleph Corp <Ntt> 再構成可能アーキテクチャを用いた画像符号化方法及びそのための装置、及びそのための方法を記述したプログラムを記録した記録媒体
JP2000295613A (ja) 1999-04-09 2000-10-20 Nippon Telegr & Teleph Corp <Ntt> 再構成可能なハードウェアを用いた画像符号化方法,画像符号化装置および画像符号化のためのプログラム記録媒体
KR20040000907A (ko) * 2002-06-26 2004-01-07 이문기 영상부호화를 위한 블록 매칭 움직임 추정 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000023163A (ja) 1998-06-30 2000-01-21 Sharp Corp 動きベクトル検出装置
JP2000102005A (ja) 1998-09-21 2000-04-07 Nippon Telegr & Teleph Corp <Ntt> 再構成可能アーキテクチャを用いた画像符号化方法及びそのための装置、及びそのための方法を記述したプログラムを記録した記録媒体
JP2000295613A (ja) 1999-04-09 2000-10-20 Nippon Telegr & Teleph Corp <Ntt> 再構成可能なハードウェアを用いた画像符号化方法,画像符号化装置および画像符号化のためのプログラム記録媒体
KR20040000907A (ko) * 2002-06-26 2004-01-07 이문기 영상부호화를 위한 블록 매칭 움직임 추정 장치

Also Published As

Publication number Publication date
KR20060031478A (ko) 2006-04-12

Similar Documents

Publication Publication Date Title
Kim et al. A fast VLSI architecture for full-search variable block size motion estimation in MPEG-4 AVC/H. 264
CN100471275C (zh) 用于h.264/avc编码器的运动估计方法
US20050238102A1 (en) Hierarchical motion estimation apparatus and method
CN103220488A (zh) 一种视频帧率上转换装置及方法
KR101578052B1 (ko) 움직임 추정 장치 및 이를 구비하는 동영상 부호화 장치
Yang et al. High performance VLSI architecture of fractional motion estimation in H. 264 for HDTV
EP1761062A1 (en) Generating and storing image data
JP2010119084A (ja) 高速動き探索装置及びその方法
EP2425622B1 (en) Efficient internal cache for hardware motion estimation
KR100719939B1 (ko) 영상 움직임 추정기 및 그 영상 움직임 추정기를 이용한영상 압축방법
US8644380B2 (en) Integer pixel motion estimation system, motion estimation system for quarter-pixel luminance, motion estimation system for quarter-pixel chrominance, motion estimation system for combined luminance, motion estimation system for combined luminance and chrominance, and motion estimation system for quarter-pixel luminance and chrominance
CN101443808B (zh) 用于图像和视频处理的存储器组织方案和控制器结构
Wang et al. Motion compensation architecture for 8K UHDTV HEVC decoder
Goel et al. An efficient data reuse motion estimation engine
Huang et al. Three-level pipelined multi-resolution integer motion estimation engine with optimized reference data sharing search for AVS
CN101321288B (zh) 参考数据载入方法、装置及视频编码器
Pyen et al. An efficient hardware architecture for full-search variable block size motion estimation in H. 264/AVC
Zhaoqing et al. High data reuse VLSI architecture for H. 264 motion estimation
CN117440168B (zh) 一种实现并行螺旋搜索算法的硬件架构
Bae et al. Quarter-pel interpolation architecture in H. 264/AVC decoder
US20130177086A1 (en) Fine motion estimation device for high resolution
KR100836534B1 (ko) 저전력 서브 픽셀 보간 블록 구조
JP4982907B2 (ja) 1/4画素色差用動き予測機構及び1/4画素輝度・色差用動き予測機構
Pyen et al. An efficient VLSI architecture for full-search variable block size motion estimation in H. 264/AVC
KR100248653B1 (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
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130508

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140428

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170421

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180425

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee