KR100232971B1 - 가변블럭 적용이 가능한 움직임 추정기 - Google Patents

가변블럭 적용이 가능한 움직임 추정기 Download PDF

Info

Publication number
KR100232971B1
KR100232971B1 KR1019960009253A KR19960009253A KR100232971B1 KR 100232971 B1 KR100232971 B1 KR 100232971B1 KR 1019960009253 A KR1019960009253 A KR 1019960009253A KR 19960009253 A KR19960009253 A KR 19960009253A KR 100232971 B1 KR100232971 B1 KR 100232971B1
Authority
KR
South Korea
Prior art keywords
data
unit
input
receives
motion estimator
Prior art date
Application number
KR1019960009253A
Other languages
English (en)
Other versions
KR970068664A (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 KR1019960009253A priority Critical patent/KR100232971B1/ko
Publication of KR970068664A publication Critical patent/KR970068664A/ko
Application granted granted Critical
Publication of KR100232971B1 publication Critical patent/KR100232971B1/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/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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

Abstract

가변블럭 적용이 가능한 움직임 추정기에 관한 것으로 제어신호를 조작함으로써 동일 회로를 이용하여 여러 기준블럭 크기의 데이타 입력을 융통적으로 처리하고, 움직임 추정시 예측오차의 개선 및 낮은 전송 정보량을 대해서 입력되는 기준 블럭 데이타의 크기를 고정적으로 국한시키지 않고, 제어신호를 조작함으로써 가변 기준 블럭 크기의 입력 데이타를 동일한 회로를 이용하여 융통적으로 처리할수 있는 이점을 지닌다.

Description

가변블럭 적용이 가능한 움직임 추정기
제1도는 본 발명에 대한 움직임 추정기의 구조도.
제2도는 제1도이 움직임 추정기내 입력부의 세부 구조도.
제3도는 제1도의 움직임 추정기내 저장부의 세부 구조도.
제4도는 제1도의 움직임 추정기내 제어부의 세부 구조도.
제5도는 제1도의 움직임 추정기내 처리부의 세부 구조도.
제6도는 제4도의 제어부에 입력되는 클럭의 타이밍도.
제7도는 평균 절대값 오차 연산 수행을 하는 데이타 처리기의 구조도.
제8도는 종래의 움직임 추정기이다.
* 도면의 주요부분에 대한 부호의 설명
1,2,3,4 : 앤드(AND) 게이트 5,6 : 오아(OR) 게이트
10 : 탐색영역 데이타 입력부 20 : 기준블럭 데이타 입력부
21,22 : 앤드(AND) 게이트 23 : 오아(OR) 게이트
100 : 입력부 200 : 저장부
210 : 레지스터부 211,212,213,214,215 : 레지스터
220 : 다중화부 221,222,223,224,225 : 먹스(MUX)
300 : 제어부 310 : 제어기
311,312 : 앤드(AND) 게이트 313 : 오아(OR) 게이트
400 : 처리부 410,420,430,440,450 : 데이타 처리기
411 : 뺄셈 연산부 412 : 제1래치부
413 : 절대값 연산부 414 : 제2래치부
415 : 시그마 연산부 416 : 제3래치부
460 : 데이타 처리부 470 : 데이타 저장부
471,472,473,474,475 : 저장기 500 : 비교부
본 발명은 가변블럭 적용이 가능한 움직임 추정기에 관한 것으로 제어신호를 조작함으로써, 동일 회로를 이용하여 여러 기준블럭 크기의 데이타 입력을 융통적으로 처리할 수 있도록 한 것이다.
일반적으로 움직임 추정기는 영상전화, 영상회의 시스템 및 영상부호기등의 연속되는 화면에서 중복되는 부분을 제거하고, 그 차이만을 추출하여 전송할 데이타량을 압축하는 데 사용하는 기법으로, 종래의 움직임 추정기는 제8도에 도시한 바와 같다.
두 데이타의 차를 구하는 감산부(16)와, 상기 감산부(16)에서 감산한 데이타를 제1레지스터(11)에 저장한 후 절대값 처리기(12)로 절대값을 처리하고, 다시 제2레지터(13)에 저장하는 절대값처리부(17)와, 제3레지스터(15)를 이용해 전체블럭에 대해 모두 더하는 축적기(14)를 포함하는 연산부(18)로 구성한다.
그러나 상기와 같은 종래의 구성은 기기가 생산될 경우 미리 정해진 규격의 데이타만을 수용하는 문제점이 발생되고, 상기 기기에 입력하고자 하는 데이타는 블럭의 크기를 일치시켜야만 정확하게 입력되었다고 판단하는 문제점이 있다.
상기 종래의 회로에서 움직임 추정을 위해 사용되는 전역탐색 고정 블럭정합방법은 입력되는 기준 블럭 데이타의 크기가 고정되어 있었고, 이러한 방식은 빠른 움직임이나 물체가 변형될 경우 영상의 국부적인 움직임 특성을 정확히 반영하지 못하는 경우가 발생할 수 있으며, 기준블럭 데이타의 크기가 가변일 경우 동일한 회로를 이용하여 입력된 가변블럭을 처리할 수 없었다.
따라서 본 발명은 이러한 문제점을 해결하고자 움직임 추정시 예측오차의 개선 및 낮은 전송 정보량에 대해서 입력되는 기준 블럭 데이타의 크기를 고정적으로 국한시키지 않고 제어신호를 조작함으로써, 가변기준 블럭 크기의 입력 데이타를 동일한 회로를 이용하여 융통적으로 처리할 수 있는 특징을 지닌다.
즉 본 발명은 여러 크기의 기준블럭 데이타 및 탐색영역 데이타가 제어 신호를 통해 선별적으로 저장부에 입력되도록 하는 입력부와; 상기 입력부에서 입력된 신호를 수신하여 입력되는 데이타의 탐색 범위에 해당하는 데이타를 저장하고, 상기 저장 후 제어부의 제어에 의해 처리부로 데이타를 전송하는 저장부와; 입력부로 입력되는 블럭의 크기에 대한 클럭 입력신호를 입력받아서 처리한 후에 저장부와 처리부에 제어신호를 인가하는 제어부와; 상기 제어부에서 인가된 제어신호와 저장부에서 전송된 데이타를 수신하여 평균 절대값 오차(Mean Absolute Difference : 이하 MAD라 칭한다.)연산을 수행한 후에 비교기로 상기 평균 절대값 오차연산시 발생된 오차값을 비교부로 전송하는 처리부 및;
상기 처리부에서 전송된 오차값을 수신하고, 상기 처리부에서 전송되고 있는 오차값들을 비교부에 입력되어 있는 오차값과 비교하여 비교부에 입력되어 있는 오차값보다 큰 오차값이 입력되면 버리고 더 작은 오차값이 입력되면 그 값으로 갱신되어 저장되도록 하며, 최종 오차값을 판별하여 모션벡터(motion vector : mv)와 오차의 위치를 나타내는 위치 값을 출력하는 비교부로 이루어짐을 특징으로 하는 가변블럭 적용을 위한 움직임 추정기를 제공하려는 것이다.
이하 도면을 참조로 본 발명의 실시예를 상세히 설명하면 다음과 같다.
제1도는 본 발명에 대한 움직임 추정기의 구조도로서, 여러 크기의 기준블럭 데이타 및 탐색영역 데이타가 입력되어 논리 소자 및 제어신호를 통해 선별적으로 저장부(200)에 입력되는 입력부(100)와; 상기 입력부(100)에서 입력된 신호를 수신하여 입력되는 데이타의 탐색 범위에 해당하는 데이타를 저장하고, 상기 저장 후 제어부(300)의 제어에 의해 처리부(400)로 데이타를 전송하는 저장부(200)와; 입력부(100)로 입력되는 블럭의 크기에 대한 클럭 입력신호를 인가받아서 처리한 후에 저장부(200))에 제어신호를 인가하는 제어부(300)와; 상기 제어부(300)에서 저장부(200)로 인가된 제어신호와 저장부(200)에서 전송된 데이타를 수신하여 평균 절대값 오차연산을 수행한 후에 비교기로 상기 평균 절대값 오차연산시 발생된 오차값을 비교부(500)로 전송하는 처리부(400) 및; 상기 처리부(400)에서 전송된 오차값을 수신하고, 상기 처리부에서 전송되고 있는 오차값들을 비교부에 입력되어 있는 오차값과 비교하여 비교부에 입력되어 있는 오차값보다 큰 오차값이 입력되면 버리고 더작은 오차값이 입력되면 그 값으로 갱신되어 저장되도록 하며, 최종 오차값을 판별하여 모션벡터(motion vector : mv)와 오차의 위치를 나타내는 위치값을 출력하는 비교부(500)로 이루어진다.
상기 구성에 대한 동작을 설명하면, 탐색영역 데이타와 기준블럭 데이타를 입력부(100)에서 수신하고, 상기 입력부(100)에 수신된 탐색영역 데이타(f)는 저장부(200)에 전송하며, 상기 입력부(100)에 수신된 기준블럭 데이타(d)는 처리부(400)에 전송하고, 저장부(200)에서는 상기 입력부(100)에서 전송된 탐색영역 데이타를 순차적으로 저장하고 있다가 제어부(300)에서 발생되는 제어신호를 입력받아서 상기 처리부(400)로 탐색영역 데이타를 선별적으로 전송하고, 상기 처리부(400)로 전송된 탐색영역 데이타와 기준블럭 데이타를 수신하여 오차값을 계산하고, 상기 계산된 오차값을 순차적으로 비교부(500)에 출력하고, 수신된 오차값을 비교부(500)에서 비교할 때 현재 오차값보다 큰 오차값이 입력되면 버리고 더 작은 오차값이 입력되면 그 값으로 갱신되어 저장되도록 하는 동작을 수행하고, 이러한 오차값 비교를 통해 오차의 위치와 최소 오차값을 판별하고, 상기 판별된 값을 통해 모션 벡터값을 출력하도록 동작함으로써 가변블럭에도 적용될 수 있도록 한 것이다.
상기 동작과정에 있어서, 입력부(100)로 입력되는 기준블럭인 4×4 블럭에 대한 탐색영역의 데이타는 제6도의 제1 클럭신호가 하이액티브가 될 때에 데이타를 리치하고, 기준블럭인 2×2블럭에 대한 탐색영역의 데이타는 제6도의 제2 클럭신호가 하이액티브 될 때에 데이타를 래치하는 동작을 수행함으로 하여 입력되는 탐색영역의 데이타를 순차적으로 수신할 수 있다.
제2도는 제1도의 움직임 추정기내 입력부(100)의 세부 구조도로서, 선택신호(sel) 및, 탐색영역 데이타인 입력데이타를 수신하고, 상기 수신된 데이타와 선택신호(sel)를 앤드게이트(1)(2)(3)(4)에 입력하고, 입력된 데이타는 제1 앤드게이트(1)와 제3 앤드게이트(3)에 입력되는 신호는 제1 오아게이트(5)에 입력되어 출력신호(F1)를 저장부(200)로 발생시키도록 하고, 제2 앤득이트(3)와 제4 앤드게이트(4)에 입력되는 신호는 제2 오아게이트(6)에 입력되어 출력신호(F2)를 저장부(200)로 발생시키도록 하며, 상기 구성으로 탐색영역데이타를 수신하는 탐색영역 데이타 입력부(10) 및; 선택신호(sel) 및, 기준블럭 데이타인 입력데이타를 수신하고, 상기 수신된 데이타와 선택신호(sel)를 앤드게이트(21)(22)에 입력되고, 입력된 데이타는 제5 앤드게이트(21)와 제6 앤드게이트(22)를 통해 제3 오아게이트(23)에 입력되어 출력신호(c)를 처리부(400)로 발생시키도록 하는 기준 블럭 데이타를 순차적으로 입력받아서 동작하는 기준 블럭 데이타 입력부(20)로 이루어지는 입력부(100)의 구성이다.
상기 구성에 대한 동작을 설명하면, 입력부(100)로 입력되는 탐색영역 데이타 및 기준블럭 데이타중에서 탐색영역 데이타를 수신한 탐색영역 데이타 입력부(10)에서는 선택신호(sel)가 로우상태일 경우 액티브되어 각각의 앤드게이트(1)(2)(3)(4)를 통해 입력되는 탐색영역 데이타를 수신하고, 상기 수신된 탐색영역 데이타는 앤드게이트(1)(2)(3)(4)를 통해 오아게이트(5)(6)로 전송될 때에 제1 앤드게이트의 출력 및 제3 앤드게이트의 출력은 제1 오아게이트의 입력단에 수신되고, 제2 앤드게이트의 출력 및 제4 앤드게이트의 출력은 제2 오아게이트의 입력단에 수신되고, 상기 각각 오아게이트로 수신된 데이타는 오아게이트를 통해 자장부로 출력신호(f)의 형태로 전송되고;
상기 기준블럭 데이타는 선택신호(sel)신호가 로우상태일 경우 액티브 되어 기준블럭 데이타를 앤드게이트(21)(22)로 수신되게 하고, 수신된 기준블럭 데이타는 제5 앤드게이트(21) 및 제6 앤드게이트(22)를 통해 제3 오아게이트로 출력되도록 하며, 상기 제3 오아게이트(23)를 통해 출력된 기준블럭 데이타(c)는 처리부(400)에 입력되도록 하는 동작수행을 한다.
제3도는 제1도의 움직임 추정기내 저장부(200)의 세부 구조도로서, 제2도에서 출력되는 출력신호(F1,F2)를 입력받고, 상기 입력되는 신호를 순차적으로 수신하여 5개의 레지스터(211)(212)(213)(214)(215)에 입력되도록 하는 데, 이때 사용되는 레지스터의 갯수는 탐색범위에 따른 블럭정합의 횟수에 의해서 정해지는 것으로써, 상기 5개의 레지스터의 예는 탐색범위를 ±2화소(P=2)로 가정하여 (2P+1)이라는 식을 통해 5개의 레지스터 갯수를 생성하게 되는 것이며, 우측단에 연결되는 먹스(221)(222)(223)(224)(225)는 레지스터(211)(212)(213)(214)(215)의 갯수와 일치토록 하고, 상기 레지스터(211)(212)(213)(214)(215)로 입력된 데이타를 일시 저장하였다가 다중화부(220)로 출력하는 레지스터부(210)와; 상기 레지스터부(210)에서 출력되는 데이타를 각각의 먹스(221)(222)(223)(224)(225)로 인가받고, 제어부(300)에서 발생되는 신호(g)를 수신하며, 상기 수신된 제어신호(g)에 의해 선별된 탐색영역데이타(d)를 처리부(400)로 출력하는 다중화부(220)로 이루어진 저장부(200)의 구성이다.
상기 구성에 대한 동작을 설명하면, 입력부(100)에서 수신한 기준블럭 데이타(f)를 수신한 레지스터부(210)는 갯수가 정해진 레지스터(211)(212)(213)(214)(215)에 순차적으로 데이타를 저장하고, 상기 레지스터에 저장된 데이타를 수신한 다중화부(220)에서는 제어부(300)에서 인가하는 제어신호를 수신하고, 상기 수신된 제어신호에 의해 각각의 먹스(221)(222)(223)(224)(225)로 수신된 데이타(d)를 선별적으로 처리부(400)에 전송하는 동작을 수행한다.
상기 동작에 있어서, 선택신호에 의해 기준블럭 4×4에 대한 탐색영역 데이타는 제1클럭의 라이징 에지시 선택하고, 기준블럭 2×2에 대한 탐색영역 데이타는 제2클럭의 라이징에지시 선택되어 상기 동작을 수행한다.
제4도는 제1도의 움직임 추정기내 제어부(300)의 세부 구조도로서, 입력되는 선택신호(sel) 및, 제1 및 2 클럭신호를 앤드게이트(311)(312)로 수신하고, 상기 입력된 신호를 수신한 제1 앤드게이트(311)와 제2 앤드게이트(312)에서 출력되는 신호를 제4 오아게이트(313)에서 수신하며, 상기 제4 오아게이트(313)에서 출력신호(g)를 저장부(200)로 발생하는 제어기(310)로 이루어진 제어부(300)의 구성이다.
상기 구성에 대한 동작을 설명하면, 앤드게이트(311)(312)로 입력되는 선택신호(sel)가 로우액티브일 경우 동작되어 클럭신호가 선택되어지도록 함으로써, 선택신호가 로우일때 기준블럭 데이타의 4×4블럭에 대한 클럭신호인 제1 클럭신호가 입력되고, 선택신호가 하이일 경우 기준블럭 데이타의 2×2블럭에 대한 제2 클럭 신호가 입력되도록 하며;
상기 입력된 클럭신호는 앤드게이트(311)(312)를 통해 제4 오아게이트(313)로 입력되어 제어신호(g)를 발생시키는 동작을 수행한다.
제5도는 제1도의 움직임 추정기내 처리부(400)의 세부 구조도로서, 상기 다중화부(220)에서 출력된 탐색영역 데이타(d)를 수신하고, 기준블럭 데이타 입력부(20)에서 전송한 기준블럭 데이타(c)를 수신하며, 수신된 탐색영역 데이타(d) 및, 기준블럭 데이타(c)의 오차값을 계산하여 발생시키는 데이타 처리부(460) 및; 상기 데이타 처리부(460)에서 발생된 데이타는 순차적으로 데이타 저장부(470)내의 저장기(471)(472)(473)(474)(475)에 입력되었다가 저장된 값(e)을 순차적으로 비교부(500)로 발생시키는 데이타 저장부(470)로 이루어진 처리부(400)이다.
상기 구성에 대한 동작을 설명하면, 저장부(200)에서 전송된 탐색영역 데이타(d) 및, 입력부(100)에서 전송된 기준블럭 데이타(c)를 수신한 데이타 처리부(460)에서는 평균절대값오차(MAD)를 연산하는 기능을 수행하고, 데이타 처리부(460)에서 연산한 값을 데이타 저장부(470)에서 저장하는데, 저장된 값들은 순차적으로 다중화부(220)의 먹스(221)(222)(223)(224)(225)단에서 출력하여 비교부(500)에 입력되는 동작을 수행한다.
제6도는 제4도의 제어부(300)에 입력되는 클럭의 타이밍도로서, 제1 클럭신호의 주기는 제2 클럭 신호 주기의 2배이고, 제1 클럭신호는 4×4블럭에 대한 주기신호이며, 제2 클럭신호는 2×2블럭에 대한 주기신호이며, 여기에서 입력부(100)로 입력되는 각각의 블럭크기에 대한 데이타 래치부분은 제1 및 2 클럭신호에 대한 라이징에지시에 데이타를 래치하게 된다.
상기 클럭신호의 주기는 기준블럭의 크기에 해당하는 것으로 기준블럭의 크기가 2×2일 때 제2 클럭신호에 의해 제어되고, 기준블럭의 크기가 4×4일 때 제 1 클럭신호에 의해 제어되는 것으로, 상기 클럭신호의 입력에 따라서 여러 기준크기의 데이타를 입력하여 처리할 수 있도록 한 것이다.
제7도는 평균 절대값 오차 연산(MAD) 수행을 하는 데이타 처리부(460)의 구조도로서, 제5도에서 도시된 처리부(400)내의 데이타 처리부(460)로 입력되는 기준블럭 데이타(c)는 a(k, 1)의 형태로 나타내고, 탐색영역 데이타(d)는 b(i, j)의 형태로 나타내며, 상기 신호 a 및 b를 입력받아서 뺄셈 연산을 수행하는 뺄셈 연산부(411)와; 상기 뺄셈 연산부(411)에서 출력된 연산치를 래치하는 제1 래치부(412)와; 상기 제2 래치부(412)에서 래치한 연산치를 입력받아서 절대값 연산을 수행하는 절대값 연산부(411)와; 상기 절대값 연산부(411)에서 발생시키는 절대치를 래치하는 제2 래치부(414)와; 상기 제2 래치부(414)에서 래치한 절대치를 수신하고, 전단계에서 발생시킨 시그마값을 피드백시키므로써 수신받아 시그마 연산을 수행하는 시그마 연산부(411) 및; 상기 시그마 연산부에서 연산된 데이타를 래치하여 데이타 저장부(470)로 전송하는 제3 래치부(416)로 이루어진 데이타 처리부(460)이다.
상기 구성에 대한 동작을 설명하면, 데이타 처리부(460)의 뺄셈 연산부(411)로 입력되는 기준블럭 데이타(c)는 a(k, l)의 형태로 나타내고, 탐색영역 데이타(d)는 b(i, j)의 형태로 나타내며, 상기 신호를 수신하는 뺄셈 연산부(411)의 입력선 a에는 a(k, l)신호를 입력하고, 입력선 b에는 b(i, j)를 입력받아서 뺄셈 연산을 수행시키고, 상기 연산후에 출력되는 값을 순간적으로 제1 래치부(412)에서 래치하고, 상기 래치된 값을 절대값 연산부(411)에서 수신하며, 상기 수신된 값을 절대값으로 연산하여 절대치를 출력하며, 상기 출력되는 데이타를 순간적으로 제2 래치부(414)에서 래치하고, 상기 제2 래치부(414)에서 래치했던 데이타를 시그마 연산부(411)에서 수신하여 시그마 연산으로 처리하고, 상기 처리된 데이타를 순간적으로 제3 래치부(416)에서 래치하여 데이타 저장부(470)로 출력하는 동작을 통해 평균절대값오차 연산을 수행하며;
상기 탐색영역 데이타인 b(i, j)및, 기준블럭 데이타인 a(k, l)의 k, l, i, j에 있어서, 기준블럭이 2×2인 경우 기준블럭의 크기에 의해 k, l = 1~2 이고, 상기 k,l값에 탐색측정범위인 p=2를 상하좌우에 더하여 i, j = 1~6이 되며, 기준블럭이 4×4인 경우 기준블럭의 크기에 의해 k, 1 = 1~4이고, 상기 k, 1값에 탐색측정범위인 p=2를 상하좌우에 더하여 i, j = 1~8이 되며, 하기 표 1에서 (a)는 2×2블럭에 대한 블럭 매칭 알고리즘(Block Matching Algoriithm : 이하 BMA라 칭한다.)이고,
[표 1]
블럭의 폭에 해당하는 첫번째행인 mj=1일때 m1=1~6을 수행한 것이 되고, 상기 표 1에서 나타낸 2×2인 경우 PE의 값은 아래의 그림 1의 형태로 나타낼 수 있으며, 아래 그림 1과 같은 형태로 2×2에 탐색범위인 p=2의 값에 의해 상하좌우에 각각 2×2 의 실질적인 범위가 주어지며.
[그림 1]
상기 그림 1에서 보이는 바와 같이 각각의 소블럭간의 접합부분은 가로세로 각각 1~5 로 나타낼 수 있으므로 총 25개의 매칭 횟수를 가지게 되고, 상기 표 1에서 a(1,1)-b(1,1)은 탐색영역 데이타에서 기준블럭 데이타를 뺀 값이 기준블럭과 탐색영역간에 발생한 오차를 보이는 것이고, 상기 PE(1)의 a(1,1)-b(1,1)에서 PE(2)의 a(1,1)-b(1,2)로 가는 것은 상기 그림 1의 가로세로간의 매칭이 발생되는 첫번째부분에서 가로방향으로 두번째부분으로 옮아가는 것을 나타낸 것으로써 표 1에서 PE(1) 내지 PE(5)의 첫줄에 기재된 내용은 탐색영역 데이타가 그림 1의 가로방향으로 옮겨가면서 오차 연산을 수행하는 것으로, 아래 그림 2에서 보이는 2×2 블럭에 대한 오차측정을 위해 상기 표 1에서 기재된 그림 1의 위치에 해당하는 표 1에 기재된 위치에 대한 제7도에서 보이는 MAD연산을 수행하고, 제1도에서 보이는 비교부(500)에서 가로방향에 대한 최소 오차값을 최종적으로 출력하게 되며, 세로 방향의 오차값을 출력하고자 할 경우에는 PE(1)의 첫 항이 a(2,1)-b(2,1)의 형태가 되어서 표 1의 형태처럼 순차적으로 위치에 해당값을 값을 출력할 수 있게 된다.
하기 표 2에서 (b)는 4×4블럭에 대한 BMA이고,
[표 2]
상기 표 2는 4×4의 데이타 블럭으로써 상기 표 1의 형태와 마찬가지로 4×4의 블럭 상하좌우에 탐색범위인 p=2의 값에 해당하는 블럭의 수를 덧붙여서 수행된 것으로 매칭 횟수는 그림 1과 같이 구성하며 25회가 나오게 되고, 실질적으로 8×8의 세로방향에 대한 MAD연산이 수행될 오차값들의 화소 위치값이며, 기준블럭에 대한 모션 벡터에서 mj=1일 때 mi=1~8을 수행한 것이며, 한 화소씩 이동시켜서 동작을 수행하며, mj=2~6인 경우에 대해 위 과정을 반복하면 2×2블럭에 대해 수행하고, mj=2~8인 경우에 대해 위 과정을 반복하면 4×4블럭에 해당하는 전체 탐색영역에 대해 BMA를 수행하며;
상기 MAD연산은 하기 식 1의 식에 의해 이루어지도록 구현된 것이고,
(상기 식에서 i,j는 탐색영역의 위치를 나타내는 임의의 공간좌표이고, Sk(m, n)은 M×N크기인 현재 블럭내의 화소값이며, Sk-1(m+i, n+j)은 이전화면의 탐색 범위내에서의 화소값이다.)
상기 식 1에서 블럭 정합 알고리즘의 움직임 추정은 (k-1)번째 프레임에서 (M+2p)×(N+2p)의 탐색영역을 정하고, K번째 프레임에서의 M×N 크기의 블럭에 대해, (k-1)번째 프레임에서 같은 크기의 블럭을 탐색영역을 벗어나지 않도록 하여 서로간의 유사도를 계산하여 가장 알맞은 블럭을 찾아 이때 변위를 계산하여 해당 블럭의 움직임 벡터로 하며, 상기 p는 탐색범위를 나타내며, 유사도를 측정하는 평가함수로 하드웨어 비용을 고려하여 평균절대값 오차를 연산을 수행한다.
이상과 같이 본 발명은 제어신호를 조작함으로써 여러기준 블럭 크기의 입력 데이타에 대해 동일한 회로를 이용하여 유휴시간 없이 융통적으로 처리할 수 있도록 하는 이점이 있다.

Claims (13)

  1. 움직임 추정기에 있어서, 여러 크기의 기준블럭 데이타 및 탐색영역 데이타가 제어 신호를 통해 선별적으로 저장부(200)에 입력되도록 하는 입력부(100)와; 상기 입력부(100)에서 입력된 신호를 수신하여 입력되는 데이타의 탐색 범위에 해당하는 데이타를 저장하고, 상기 저장 후 제어부(300)의 제어에 의해 처리부(400)로 데이타를 전송하는 저장부(200)와; 입력부(100)로 입력되는 블럭의 크기에 대한 클럭 입력신호를 인가받아서 처리한 후에 저장부(200)와 처리부(400)에 제어신호를 인가하는 제어부(300)와; 상기 제어부(300)에서 인가된 제어신호와 저장부(200)에서 전송된 데이타를 수신하여 평균 절대값 오차 연산을 수행한후에 비교기로 상기 평균 절대값 오차연산시 발생된 오차 값을 비교부(500)로 전송하는 처리부(400) 및; 상기 처리부(400)에서 전송된 오차값을 수신하고, 상기 처리부(400)에서 전송되고 있는 오차값들을 비교부에 입력되어 있는 오차값과 비교하여 비교부에 입력되어 있는 오차값보다 큰 오차값이 입력되면 버리고 더작은 오차값이 입력되면 그 값으로 갱신되어 저장되도록 하며, 최종 오차값을 판별하여 모션벡터(motion vector : mv)와 오차의 위치를 나타내는 위치값을 출력하는 비교부(500)로 이루어짐을 특징으로 하는 가변블럭 적용을 위한 움직임 추정기.
  2. 제1항에 있어서, 상기 입력부(100)는 탐색영역데이타를 수신하는 탐색영역 데이타 입력부(10)와, 기준블럭 데이타를 순차적으로 입력받아서 동작하는 기준블럭 데이타 입력부(20)로 이루어짐을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기.
  3. 제2항에 있어서, 상기 탐색영역 데이타 입력부(10)는 선택신호(sel) 및, 탐색영역 데이타인 입력데이타를 수신하고, 상기 수신된 데이타와 선택신호(sel)를 앤드게이트(1)(2)(3)(4)에 입력되고, 입력된 데이타는 제1 앤드게이트(1)와 제3 앤드게이트(3)에 입력되는 신호는 제1 오아게이트(5)에 입력되어 출력신호(F1)를 저장부(200)로 발생시키도록 하고, 제2 앤드게이트(3)와 제4 앤드게이트(4)에 입력되는 신호는 제2 오아게이트(6)에 입력되어 출력신호(F2)를 저장부(200)로 발생시키도록 구성됨을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기.
  4. 제2항에 있어서, 상기 기준블럭 데이타 입력부(20)는 선택신호(sel) 및, 기준블럭 데이타인 입력데이타를 수신하고, 상기 수신된 데이타와 선택신호(sel)를 앤드게이트(21)(22)에 입력되고, 입력된 데이타는 제5 앤드게이트(21)와 제6 앤드게이트(22)를 통해 제3 오아게이트(23)에 입력되어 출력신호(c)를 처리부(400)로 발생시키도록 가변블럭 적용이 가능한 움직임 추정기.
  5. 제1항에 있어서, 상기 저장부(200)는 입력되는 데이타를 순차적으로 수신하고, 수신된 데이타를 일시 저장하였다가 다중화부(220)로 출력하는 레지스터부(210) 및; 상기 레지스터부(210)에서 출력되는 데이타 및, 제어부(300)에서 발생되는 신호(g)를 수신하며, 상기 수신된 제어신호(g)에 의해 선별된 탐색영역 데이타(d)를 처리부(400)로 출력하는 다중화부(220)로 이루어짐을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기.
  6. 제5항에 있어서, 상기 레지스터부(210)는 여러개의 레지스터로 구성되는 데, 상기 레지스터의 갯수는 탐색범위를 P로 가정하여 갯수=(2P+1)이라는 식을 통해 레지스터의 갯수를 생성하게 됨으로 하여 구성됨을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기
  7. 제5항에 있어서, 상기 레지스터부(210)는 출력되는 출력신호(F1,F2)를 입력받고, 상기 입력되는 신호를 순차적으로 수신하여 레지스터(211)(212)(213)(214)(215)에 입력되도록 하고, 상기 레지스터부(210)에서 출력되는 데이타를 각각의 먹스(221)(222)(223)(224)(225)로 인가받고, 제어부(300)에서 발생되는 신호(g)를 수신하여 처리부(400)로 출력토록 구성됨을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기
  8. 제7항에 있어서, 상기 다중화부(220)는 여러개의 먹스로 구성되는 데, 상기 구성시 탐색범위를 P로 가정하여 갯수=(2P+1)이라는 식을 통해 먹스의 갯수를 생성하게 됨으로 이루어짐을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기.
  9. 제1항에 있어서, 상기 제어부(300)는 입력되는 선택신호(sel) 및, 제1 및 2 클럭신호를 앤드게이트(311)(312)로 수신하고, 상기 입력된 신호를 수신한 제1 앤드게이트(311)와 제2 앤드게이트(312)에서 출력되는 신호를 제4 오아게이트(313)에서 수신하며, 상기 제4 오아게이트(313)에서 출력신호(g)를 저장부(200)로 발생하는 제어기(310)로 이루어짐을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기.
  10. 제1항에 있어서, 상기 처리부(400)는 다중화부(220)에서 출력된 탐색영역 데이타(d)를 수신하고, 기준 블럭 데이타 입력부(20)에서 전송한 기준블럭 데이타(c)를 수신하며, 수신된 탐색영역 데이타(d) 및, 기준블럭 데이타(c)의 오차값을 계산하여 발생시키는 데이타 처리부(460) 및; 상기 데이타 처리부(460)에서 발생된 데이타는 순차적으로 데이타 저장부(470)에 입력되었다가 저장된 값(e)을 순차적으로 비교부(500)로 발생시키는 데이타 저장부(470)로 이루어짐을 특징으로 하는 기변블럭 적용이 가능한 움직임 추정기.
  11. 제10항에 있어서, 상기 데이타 저장부(470)는 여러개의 저장기로 이루어지는 데, 상기 저장기의 갯수는 탐색범위를 P로 가정하여 갯수=(2P+1)이라는 식을 통해 먹스의 갯수를 생성하게 됨으로 이루어짐을 특징으로 하는 가변 블럭 적용이 가능한 움직임 추정기.
  12. 제10항에 있어서, 상기 데이타 처리부(460)는 여러개의 데이타 처리기로 이루어지는데, 상기 데이타 처리기의 갯수는, 탐색범위를 P로 가정하여 갯수=(2P+1)이라는 식을 통해 먹스의 갯수를 생성하게 됨으로 이루어짐을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기.
  13. 제12항에 있어서, 상기 데이타 처리기는 입력부(100)에서 전송된 기준블럭 데이타 및 저장부에서 발생된 탐색영역 데이타를 입력받아서 뺄셈 연산을 수행하는 뺄셈 연산부(411)와; 상기 뺄셈 연산부(411)에서 출력된 연산치를 래치하는 제1 래치부(412)와; 상기 래치부에서 래치한 연산치를 입력받아서 절대값 연산을 수행하는 절대값 연산부(411)와; 상기 절대값 연산부(411)에서 발생시키는 절대치를 래치하는 제2 래치부(414)와; 상기 제2 래치부(414)에서 래치한 절대치를 수신하고, 전단계에서 발생시킨 시그마값을 피드백시키서 수신받으므로써 시그마 연산을 수행하는 시그마 연산부(411) 및; 상기 시그마 연산부에서 연산된 데이타를 래치하여 데이타 저장부(470)로 전송하는 제3 래치부(416)로 이루어짐을 특징으로 하는 가변블럭 적용이 가능한 움직임 추정기.
KR1019960009253A 1996-03-29 1996-03-29 가변블럭 적용이 가능한 움직임 추정기 KR100232971B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960009253A KR100232971B1 (ko) 1996-03-29 1996-03-29 가변블럭 적용이 가능한 움직임 추정기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960009253A KR100232971B1 (ko) 1996-03-29 1996-03-29 가변블럭 적용이 가능한 움직임 추정기

Publications (2)

Publication Number Publication Date
KR970068664A KR970068664A (ko) 1997-10-13
KR100232971B1 true KR100232971B1 (ko) 1999-12-01

Family

ID=19454529

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960009253A KR100232971B1 (ko) 1996-03-29 1996-03-29 가변블럭 적용이 가능한 움직임 추정기

Country Status (1)

Country Link
KR (1) KR100232971B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4501676B2 (ja) * 2004-12-22 2010-07-14 日本電気株式会社 動画像圧縮符号化方法と動画像圧縮符号化装置並びにプログラム

Also Published As

Publication number Publication date
KR970068664A (ko) 1997-10-13

Similar Documents

Publication Publication Date Title
US5512962A (en) Motion vector detecting apparatus for moving picture
KR100273629B1 (ko) 이동 벡터 평가 방법 및 장치
EP0309251B1 (en) Motion estimator
US6690730B2 (en) Motion estimator
EP0654946A1 (en) Apparatus for determining motion vector
JPH04294469A (ja) 相関装置
US6108378A (en) Video encoder and decoder image motion estimation system with reduced computation
JPH07115646A (ja) 画像処理装置
KR940010831A (ko) 실시간 움직임 추정장치 및 그 방법
KR970068661A (ko) 반화소 움직임 추정장치(A Half pel motion estimator)
EP1761062A1 (en) Generating and storing image data
KR100732683B1 (ko) 움직임 보상을 수행하는 영상변환장치 및 움직임 보상방법
KR0151922B1 (ko) 필드 및 프레임 움직임 추정 장치
KR100232971B1 (ko) 가변블럭 적용이 가능한 움직임 추정기
US6240062B1 (en) Fast fourier transform calculating apparatus and fast fourier transform calculating method
JP2811425B2 (ja) 運動ベクトル抽出装置
EP1420595A1 (en) Motion vector selection in a video motion estimator based on a preferred reference point
GB2214751A (en) Video signal coding
US6968011B2 (en) Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices
US5715175A (en) Device for providing pixels to a series of operators of a circuit for compressing motion pictures
JP2885039B2 (ja) 動きベクトル検出回路
KR100926440B1 (ko) 영상부호화를 위한 블록 매칭 움직임 추정 장치
KR100189876B1 (ko) 후보블럭 데이타공급 장치
KR20000037705A (ko) 저 전송률 비디오 코덱을 위한 움직임 예측장치
KR0178890B1 (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: 20050822

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee