KR100601618B1 - 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법 - Google Patents

계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법 Download PDF

Info

Publication number
KR100601618B1
KR100601618B1 KR19990035841A KR19990035841A KR100601618B1 KR 100601618 B1 KR100601618 B1 KR 100601618B1 KR 19990035841 A KR19990035841 A KR 19990035841A KR 19990035841 A KR19990035841 A KR 19990035841A KR 100601618 B1 KR100601618 B1 KR 100601618B1
Authority
KR
South Korea
Prior art keywords
data
sram
sdram
motion
unit
Prior art date
Application number
KR19990035841A
Other languages
English (en)
Other versions
KR20010019443A (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 KR19990035841A priority Critical patent/KR100601618B1/ko
Priority to US09/637,993 priority patent/US6748017B1/en
Priority to CNB001262009A priority patent/CN1140134C/zh
Priority to JP2000256372A priority patent/JP2001103494A/ja
Publication of KR20010019443A publication Critical patent/KR20010019443A/ko
Application granted granted Critical
Publication of KR100601618B1 publication Critical patent/KR100601618B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/207Analysis of motion for motion estimation over a hierarchy of resolutions
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그 방법이 개시되어 있다. 본 발명은 현재프레임이미지와 이전 프레임 이미지를 저장하는 SDRAM, 상기 현재 및 이전의 매크로 블럭 이미지 데이터를 저장하는 SRAM, 움직임 벡터 및 절대차분치합(SAD)을 발생하는 움직임 추정기를 구비한 데이터공급 방법에 있어서, 상기 움직임추정기에 소정 비트의 데이터를 공급하는 과정, 상기 움직임추정기가 매크로 블럭 단위로 데이터를 처리한 후 발생되는 움직임 벡터, SAD값을 포함하는 소정개수의 소정길이비트로 이루어진 데이터들을 상기 SRAM을 거쳐 일정개수로 합친 비트길이의 데이터로 변환하여 상기 SDRAM에 저장하는 과정, 상기 SDRAM에 저장된 데이터를 소정의 버스트 길이로 호스트가 리드하는 과정을 포함하며, 본 발명에 의하면 움직임 추정기를 위한 전체 프레임 대신에 상위 계층의 이미지 블럭 사이즈만을 저장하여 최적의 데이터를 공급함으로서 최소의 메모리 사이즈를 구현할 수있다.

Description

계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그 방법{Apparatus for supplying the opimul data for hierachical motion estimator and method thereof}
도 1은 본 발명에 따른 계층적 움직임 추정기를 위한 최적의 데이터 공급장치를 보이는 전체블록도이다.
도 2는 도 1의 SDRAM리드부(210)의 상세도이다.
도 3은 도 2의 타이밍도이다.
도 4는 도 1의 SDRAM라이트부(280)의 상세도이다.
도 5는 도 4의 타이밍도이다.
도 6은 도 1의 ME_FIFO부(250)의 상세도이다.
도 7은 도 1의 MV_FIFO부(270)의 상세도이다.
도 8은 도 1의 SRAM리드부(230)의 상세도이다.
도 9는 도 1의 MV_SRAM라이트부(294)의 상세도이다.
본 발명은 움직임 추정을 위한 데이터 공급 장치 및 그 방법에 관한 것으로 서, 특히 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그 방법에 관한 것이다.
일반적으로 디지털 텔레비젼 동영상 스토리지 다바이스, 동영상 원격회의, 영상 전화기와 같은 영상 통신 시스템은 실시간 동영상을 비록한 수많은 정보를 주고 받는다. 이들 정보들은 갈수록 복잡해지고있지만 이들을 전달하기 위한 통신망은 이에 맞추어 변화하지 못하고 있다. 특히 이들 멀티미디어 정보중에서 동영상은 가장 많은 비율을 차지하기 때문에 압축 기술을 필요로한다. 이 압축 기술중에서 가장 기본적인 아이디어는 비디오 시퀀스(video sequence)에서의 공간적 및 시간적 리던던시를 제거하는 것이다. 이들 정보들의 대표적인 리던던시(redundancy)제거 방법은 움직임 보상 예측 코딩(motion compensated predictive coding)이다.
이 코딩의 목적은 과거프레임(t-1)과 현재프레임(t)사이에 가장 일치하는 매칭 블록의 위치를 서치하여 시간축에서 본 이미지의 움직임을 추정할 수있다. 이러한 움직임 추정 알고리듬에는 풀서치(full search) 방법과 계층적 탐색 (hierarchical search)이 제안되어 있다. 이중 풀서치(full search) 방법은 성능면에서 우수하나 현재 이미지중 매크로블럭(macro block)만큼 이전 이미지중 서치영역만큼의 이미지 정보를 저장할 이미지 버퍼(예를 들면 SRAM:Static RAM, SDRAM:Synchronous DRAM)를 가지고 있어야하므로 계산량면에서 불리하다. 마찬가지로 계층적 탐색은 계산량이 현저히 줄어듬에도 불구하고 이 역시 일반적으로 풀서치와 같은 이미지 저장 버퍼를 구비해야만한다. 따라서 종래의 움직임 추정 알고리듬을 실현하는 하드웨어는 움직임 추정기만을 위해 적지 않은 사이즈의 이미지 저 장을 위한 메모리가 필요하여 칩 면적을 증가시키는 문제점이 있다.
본 발명이 이루고자하는 기술적 과제는 움직임 추정기를 위한 전체 프레임 대신에 상위 계층의 이미지 블럭 사이즈만을 저장하여 최적의 데이터를 공급함으로서 최소의 메모리 사이즈를 구현하도록한 데이터 공급장치 및 그 방법을 제공하는 데있다.
상기의 기술적 과제를 해결하기 위하여, 본 발명은 메모리 사용을 중계하는 중계기, 현재프레임이미지와 이전 프레임 이미지를 저장하는 SDRAM, 상기 현재 및 이전의 매크로 블럭 이미지 데이터를 저장하는 SRAM, 움직임 벡터 및 절대차분치합(SAD)을 발생하는 움직임 추정기를 구비한 데이터공급장치에 있어서,
상기 SDRAM에 저장된 현재프레임 이미지와 이전 프레임 이미지 데이터를 매크로 블럭 단위로 리드하여 SRAM에 저장하고, 상기 움직임 추정기로 부터 하나의 매크로 블럭 단위로 생성된 움직임 벡터와 SAD를 상기 SRAM에서 상기 SDRAM으로 라이트하는 어드레스를 발생하는 SDRAM어드레스발생부;
상기 SDRAM에서 버스트로 프레임 이미지 데이터를 리드하여 상기 SRAM에 저장하고, SRAM에서 움직임벡터와 SAD를 버스트(burst)로 상기 SDRAM에 전송하는 FIFO부;
상기 SRAM에 저장된 현재 및 이전 매크로 이미지 데이터중 계층적 레벨에 따라 데이터를 리드하여 상기 움직임 추정기 내부의 레지스터들에 라이트하고, 상기 움직임추정기로 부터 움직임 벡터 및 SAD값을 상기 SRAM에 라이트하는 어드레스를 발생하는 SRAM어드레스발생부를 포함하는 데이터공급장치이다.
이하 첨부된 도면을 참조로하여 본 발명의 바람직한 실시예를 설명하기로 한다.
도 1은 본 발명에 따른 계층적 움직임 추정기를 위한 최적의 데이터 공급장치를 보이는 전체블록도이다.
도 1의 움직임예측용 데이터공급장치는 메모리 사용을 중계하는 중계기(110), 현재프레임이미지와 이전 프레임 이미지를 저장하는 SDRAM(120), 상기 현재 및 이전의 매크로 블럭 이미지 데이터를 저장하는 SRAM(140), 움직임 벡터(MV) 및 절대차분치합(SAD)을 발생하는 움직임 추정기(ME:130), 상기 중계기(110) 및 SDRAM(120) 및 움직임추정기(130) 및 SRAM(140)사이에서 움직임 추정에 필요한 데이터를 송수신하는 데이터 공급부(200)로 구성된다. 상기 데이터 공급부(200)는 레지스터파일(240)로 초기데이터를 설정하는 데이터설정모듈, SDRAM리드부(210) 및 SDRAM라이트부(280)를 포함하는 SDRM어드레스발생모듈, ME_FIFO부(250) 및 MV_FIFO부(270)를 포함하는 FIFO(First In First Out)모듈, SRAM라이트부(220) 및 SRAM리드부(230) 및 MV_SRAM리드부(290) 및 MV_SRAM라이트부 (294)를포함하는 SRAM어드레스발생모듈, 16비트-8비트변환모듈(260)로 구성된다.
도 1의 데이터 공급장치는 움직임추정기(130), SDRAM(120), SRAM(140)사이에서 움직임 추정에 필요한 8비트 데이터(DO_8)를 움직임 추정기(ME:130)에 제공하며, 움직임추정기(130)가 하나의 매크로 블럭을 처리한 후 최종 결과로 발생되는 MV(Motion Vector), 최종SAD(Sum of Adsolute Difference:절대차분치합), 4개의 중간 SAD값을 포함한 총 6개의 16비트 데이터들을 버스트 길이(burst length) 3으로 움직임 보정기(도시안됨)와 호스트(host)가 리드해나가도록 SRAM(140)과 MV_FIFO부(270)를 거쳐 6개의 16비트 데이터를 3개의 32비트 데이터(DO_32)로 변환하며, 그 데이터를 SDRAM(120)에 저장한다.
다음은 도 2 내지 도 9에 도시된 블럭도 및 타이밍도를 참조하여 도 1의 데이터 공급 장치를 모듈별로 설명한다.
먼저, 초기데이터설정모듈인 레지스터파일(240)은 움직임 추정용 데이터공급에 필요한 명령(command)과 초기 어드레스 옵셋(address offset)값을 호스트가 가변적으로 설정한다. 이 레지스터파일(240)은 단순히 32비트 데이터 버스(D1_32)를 통하여 입력되는 데이터값과 중계기(110)로 부터 입력되는 신호를 이용하여 원하는 스타트 옵셋값이나 명령을 인에이블(enable) 혹은 디세이블(disable)한다.
SDRAM어드레스발생모듈은 기본적으로 버스트 길이(burst length), CIF/QCIF, 데이터폭(data width)에 따라서 발생되며, 이 결과는 제어모듈(도시안됨)에서 출력되는 데이터 리퀘스트(data_req), 버스트길이(burst_length), nRW와 타이밍을 맞추어 중계기(110)로 입력된다. 또한 SDRAM어드레스발생모듈은 SDRAM(120)에 저장된 현재프레임 이미지와 이전 프레임 이미지 데이터를 매크로 블럭 단위로 리드한다. SDRAM(120)의 데이터폭이 32비트이고 SRAM(140)의 데이터폭이 16비트이며, 그리고 움직임추정기(130)가 처리하는 픽셀 데이터폭이 8비트이므로 16×16의 픽셀 데이터를 SDRAM(120)으로 부터 리딩하기 위한 32비트 데이터는 실제로 전체 매크로 픽셀 수의 4분의 1만 필요하다. 그리고 SDRAM어드레스발생모듈이 32비트데이터를 버스트길이 4로 리드했을 때 실제 발생되는 어드레스는 16개만 필요하다. 그리고 SDRAM어드레스발생모듈은 현재 16×16 매크로 데이터의 리딩이 종료하면 바로 이어 48×48 픽셀수의 이전 이미지 데이터를 SDRAM(120)에 저장된 이미지 프레임으로 부터 리드한다. 이 작업은 동작단위(operation unit) 수만큼 연속적으로 진행되며 하나의 이미지 프레임에 대한 동작이 끝나면 호스트로 부터 새로운 현재/이전 시작 어드레스 옵셋값을 입력하여 새로운 프레임에 대한 동작을 시작한다. 도 2는 SDRAM어드레스발생에 관련된 SDRAM리드부(210)의 상세도이며, 리셋(reset), 클럭(CLK), 인에이블(enable), 옵셋-엎데이트(offset_update), 신호(Me_cif), 신호 (Me_pre_sdram_start), 신호(Me_curr_sdram_start)를 입력하여 SDRAM리드어드레스 (SDRAM read address)를 발생한다. SDRAM리드부(210)는 SDRAM(140)에 저장된 현재 프레임 데이터와 이전 프레임 데이터를 매크로블럭단위로 동작 단위 수만큼 연속적으로 리드한다. 도 2에 도시된 바와 같이 두개의 시작 어드레스 옵셋(start address offset)값이 초기 어드레스의 설정을 위해 입력되며 CIF/QCIF를 구분하기 위한 신호(Me_cif)가 입력된다. 그리고 어드레스 옵셋(address offset)값이 리셋 이후에 레지스터에 설정되는 것을 막기 위해 SDRAM리드부(210)에 인에이블(enable)신호가 입력되기 전에 이미 시작 어드레스 옵셋(start address offset)값이 SDRAM리드부(210)로 로드되는 옵셋-엎데이트 (offset_update)신호가 있다. 또한 SDRAM(120)의 어드레스를 중계기(110)로 인가할 때는 도 3에 도시된 타이밍도에 도시된 바와 같이 몇가지 다른 신호들(nRW, data_req, burst_length, ACK, Data_in_trans)과의 타이밍을 고려해야한다.
도 4는 SDRAM라이트부(280)의 상세도이며, 리셋(reset), 클럭(CLK), 인에이블(enable), MV옵셋-엎데이트(MV_offset_update), 신호(Me_cif), 신호 (Me_MV_sdram_start)를 입력하여 MV SDRAM라이트어드레스 (MV sdram write addr)를 발생한다. 도 4에 도시된 바와 같이 SDRAM라이트부(280)는 움직임추정기(130)로 부터 하나의 매크로블럭에 대해 생성된 움직임 벡터(MV)와 SAD들을 SRAM(140)으로 부터 SDRAM(120)에 저장하기 위한 SDRAM어드레스(MV sdram write_addr)를 생성한다. 여기서 한개의 시작 어드레스 옵셋값이 움직임 벡터(MV)와 SAD값을 저장하기 위한 초기 어드레스로 사용되며, CIF/QCIF를 구분하기 위한 신호(me_cif)가 입력된다. 그리고 어드레스 옵셋값이 리셋이후에 레지스터에 설정되지 못하게 SDRAM리드부(210)의 인에이블(enable) 신호가 입력되기 전에 이미 시작 어드레스 옵셋값이 SDRAM리드부(210)로 로드되도록하는 옵셋-엎데이트(offset_update) 신호가 입력된다. 또한 SDRAM(120)의 어드레스와 실제 저장하고자하는 데이터를 중계기(110)로 인가할 때는 도 5에 도시된 타이밍도에 도시된 바와 같이 몇가지 다른 신호(CLK, nRW, data_req, burst_length, ACK, data_in_trans)들과의 타이밍을 고려해야한다.
ME_FIFO부(250) 및 MV_FIFO부(270)로 구성되는 FIFO모듈은 SRAM(140)에서 움직임벡터와 SAD를 버스트(burst)로 SDRAM(120)에 전송한다. SDRAM(120)에 데이터를 어드레스와 함께 요구한 후 실제 데이터를 입력할 때 까지는 약 7클럭의 딜레이가 존재한다. 이때 매번 하나의 번지수의 데이터를 읽는다는 것은 밴드폭측면에서 큰 손실이다. 따라서 이를 해결하기 위해 FIFO모듈은 시스템의 전체 속도를 향상시키기 위해 버스트(burst)로 데이터를 SDRAM(120)으로 부터 리드하도록한다. 그러나 사용하는 SRAM(140)의 데이터폭이 16이고 SDRAM(120)의 데이터폭이 32이므로 32비트이미지 데이터를 리드하여 저장할 수있는 버스트 길이의 크기만한 FIFO를 필요로한다. 예를 들면 버스트 길이가 4와 3이면 데이터폭이 32이고 깊이(depth)가 4인 FIFO와 데이터폭이 32이고 깊이(depth)가 3인 두개의 FIFO가 사용된다. FIFO모듈로 입력되는 데이터는 도 5에 도시된바와 같이 중계기(110)로 부터 입력되는 데이터 인 트랜스(data_in_trans) 및 ACK와 밀접한 타임밍을 요구한다. SDRAM(120)으로 부터 32비트 이미지 데이터를 리드할 때의 버스트 길이는 4이므로 기본적으로 FIFO모듈은 데이터폭이 32이고 깊이(depth)가 4이다.
따라서 FIFO모듈의 동작을 보면, 도 6은 FIFO모듈중의 ME_FIFO부(250)의 상세도이며, 리드/라이트(read/write)신호를 발생하는 ME_FIFO제어부(610)와 실제로 FIFO동작을 수행하는 ME_FIFO부(620)로 구성된다. 도 6을 참조하면 ME_FIFO제어부(610)는 인에이블(enable) 신호를 인가받으면 라이트 인에이블(WE)과 리드 인에이블(RE)을 각각 4, 8클럭동안 발생하며, FSM에서의 상태 천이를 위하여 신호(fifo_W_end)를 출력한다. 그리고 ME_FIFO부(250)는 버스트 길이 4로 4클럭 동안에 발생하는 라이트 신호(write signal)에 의해 연속적으로 SDRAM(120)으로 부터 4개의 32비트 이미지 데이터를 리드하여 FIFO 내부 레지스터에 저장한 후 8클럭 동안 발생하는 리드 신호(read signal)를 32비트에서 16비트로 변환하여 SRAM 라이트 어드레스(sram write address)와 함께 SRAM(140)으로 16비트 데이터(D0_16)를 출력한다. 이때 FIFO모듈은 하나의 32비트 데이터를 16비트 데이터로 변환시키기 위해서 2클럭 동안의 시간이 요구된다.
또한 도 7은 FIFO모듈중의 MV_FIFO부(270)의 상세도이며, 리드/라이트 (read/write)신호를 발생하는 MV_FIFO제어부(710)와 실제로 FIFO동작을 수행하는 MV_FIFO부(720)로 구성된다. 여기서 MV_FIFO제어부(710)는 FSM에서의 상태 천이를 위하여 신호(fifo_W_end)를 출력한다. 그리고 MV_FIFO부(710)는 기본적으로 6 클럭 동안 연속적으로 SRAM(140)으로 부터 6개의 16비트 데이터(움직임 벡터(MVx), 움직임 벡터(MVy), 최종 SAD, 4개의 중간 SAD)를 리드하여 FIFO내부 레지스터에 저장한 후 3클럭동안 32비트로 변환시켜 버스트(길이=3)로 SDRAM(120)에 라이트될 데이터로 중계기(110)로 부터 입력되는 ACK, 데이터 인 트랜스(data_in_trans)신호와 함께 도 5에서 도시된 타이밍대로 출력된다. 이때 MV_FIFO부(670)는 하나의 16비트 데이터를 32비트로 변환시키는 데 각각 1클럭동안의 시간이 소비된다.
다음 SRAM어드레스발생모듈은 SRAM라이트부(220) 및 SRAM리드부(230) 및 MV_SRAM리드부(290) 및 MV_SRAM라이트부(294)로 구성되며 비동기(Asynchronous) SRAM에 데이터를 리드/라이트하기 위한 12비트 SRAM 어드레스를 발생한다. SRAM라이트부(220)는 SDRAM(120)으로 부터의 이미지 데이터를 SRAM(140)에 라이트하며, 단순히 카운터를 증가시키다가 인에이블되어 있을 때 매 클럭마다 1씩 어드레스를 0부터 1279까지 증가시킨다. 여기서 0부터 255까지는 현재 이미지 데이터이고 256부터 1279까지는 이전 이미지 데이터이다. 그리고 SRAM리드부(230)는 SRAM(140)에 저장된 이미지 데이터를 움직임추정기(130)에 공급하며, SRAM(140)에 저장된 현재 및 이전 매크로 이미지 데이터중 움직임추정기(130)가 필요로하는 시간에 원하는 데이터를 공급하여 움직임추정기(130) 내부의 레지스터들에 저장한다. 도 8은 SRAM리드부(230)의 상세도이며, 움직임 추정기(130)와 서로 신호를 주고 받으며 상태를 제어하는 신호(state, cnt, v_n_state)와 SRAM리드엔드신호(sdram_read_end)를 출력하는 SRAM리드제어부(810), 제어신호(Me_res) 및 벡터값(Mvx, Mvy)에 따라 실제로 어드레스(ADDR)를 발생하는 어드레스발생부(820)로 구성된다. 먼저 상위 레벨에서의 데이터 공급을 위하여 어드레스는 0, 2, 4, 6...과 같이 2개 건너 하나씩 16비트 데이터를 리드할 수 있도록 발생되며 이 어드레스의 LSB(Least Significent Bit)를 제거한다. 따라서 4개 건너 하나씩의 8 비트 픽셀 데이터를 공급할 수있다. 그리고 중간 레벨에서는 매 클럭 마다 1씩 증가하는 어드레스를 생성 한 후 LSB를 제거함으로써 2분의 1 서브-샘플링(sub-sampling)하도록 어드레스가 공급된다. 하위 레벨에서는 2클럭에 1씩 어드레스를 증가시켜 LSB를 제거한 후 매 클럭마다 하나씩의 데이터가 순차적으로 리드된다.
도 9는 MV_SRAM라이트부(294)의 상세도이며, 최대카운트값(Max_cnt)이 입력되며, 또한 인에이블(enable) 신호를 받으면 라이드어드레스신호 (MV_sram_write_addr)를 출력하며, 출력신호중에서 MVSRAM라이트엔드 (MV_sram_write_end)신호와 MV라이트프레임엔드(mv_write_frame_end)신호는 제어기 (도시안됨)에서 상태천이를 알린다. 도 9를 참조하면, MV_SRAM라이트부(294)는 움직임추정기(130)으로 부터 최종 MV, SAD값을 SRAM(140)에 라이트하는 역할을 수행하며, 이를 위해 단순히 카운터를 증가시키다가 인에이블되어 있을 때 매 클럭마다 1씩 어드레스를 1280부터 증가시킨다. 여기서 어드레스는 이미 0번지 부터 1279번지까지 이미지 데이터로 저장되어 있기 때문에 1280번지 부터 사용된다. 그리고 마지막 번지의 어드레스 값은 동작단위(Operation Unit)와 크게 관계가 있다. 예를 들어 동작 단위가 3이라면 이는 3개의 매크로 블럭이 기본 단위로 3번에 걸쳐서 3개의 움직임 벡터, 3개의 최종 SAD, 그리고 12개의 중간 SAD가 SRAM(140)에 저장되어야한다. 따라서 최종 어드레스는 1280 + 18인 1298값이 된다. 여기서 동작 단위는 언제나 3의 배수가 되어야한다.
상술한 바와 같이 본 발명에 의하면, 움직임 추정장치를 위한 전체 프레임 이미지 대신에 상위 계층의 이미지 블럭 사이즈만을 저장함으로써 일반적으로 사용되는 전체프레임 사이즈만한 움직임 추정 전용 메모리의 사용을 배제하고 적은 용량의 메모리의 사용이 가능하므로 칩사이즈를 최소화할 수있다.

Claims (6)

  1. 메모리 사용을 중계하는 중계기, 현재프레임이미지와 이전 프레임 이미지를 저장하는 SDRAM, 상기 현재 및 이전의 매크로 블럭 이미지 데이터를 저장하는 SRAM, 상기 SDRAM 및 SRAM을 이용하여 상, 중, 하 레벨을 갖는 계층적 레벨의 프레임 구조하에서 움직임 벡터 및 절대차분치합(SAD)을 발생하는 움직임 추정기, 상기 움직임 추정기가 움직임 추정에 필요한 데이터를 공급하는 데이터공급부를 구비한 데이터 공급 장치에 있어서,
    상기 데이터 공급부는
    상기 SDRAM에 저장된 현재프레임 이미지와 이전 프레임 이미지 데이터를 매크로 블럭 단위로 리드하여 상기 SRAM에 저장하고, 상기 움직임 추정기로 부터 매크로 블럭 단위로 생성된 움직임 벡터와 SAD를 상기 SRAM에서 상기 SDRAM으로 라이트하는 어드레스를 발생하는 SDRAM어드레스발생부;
    상기 SDRAM에서 버스트로 프레임 이미지 데이터를 리드하여 상기 SRAM에 저장하고, SRAM에서 움직임벡터와 SAD를 버스트(burst)로 상기 SDRAM에 전송하는 FIFO부;
    상기 SRAM에 저장된 현재 및 이전 매크로 이미지 데이터중 상기 계층적 레벨에 따라 데이터를 리드하여 상기 움직임 추정기 내부의 레지스터들에 라이트하고, 상기 움직임추정기로 부터 움직임 벡터 및 SAD값을 상기 SRAM에 라이트하는 어드레스를 발생하는 SRAM어드레스발생부를 포함하는 데이터공급장치.
  2. 제1항에 있어서, 상기 SDRAM어드레스발생부는 상기 SDRAM에 저장된 현재 프레임 데이터와 이전 프레임 데이터를 매크로블럭단위로 소정의 동작 단위 수만큼 연속적으로 리드하는 SDRAM리드부;
    상기 움직임추정기로 부터 하나의 매크로 블럭 단위로 생성된 움직임 벡터와 SAD들을 상기 SRAM으로 부터 상기 SDRAM에 라이트하는 SDRAM라이트부를 포함하는 데이터 공급장치.
  3. 제1항에 있어서, 상기 FIFO부는 상기 소정의 버스트 길이에 의해 소정 클럭동안 연속적으로 상기 SDRAM으로 부터 이미지 데이터를 리드하여 내부 레지스터에 저장하고, 그 리드된 이미지 데이터 비트를 소정의 리드 클럭을 통해 소정 비트로 변환하여 상기 SRAM으로 출력하는 움직임추정FIFO부;
    소정 클럭동안 연속적으로 상기 SRAM으로 부터 움직임벡터 및 SAD를 리드하여 내부 레지스터에 저장한 후 소정 클럭동안 버스트로 상기 SDRAM에 저장하는 움직임벡터FIFO부를 포함하는 것을 특징으로 하는 데이터 공급장치.
  4. 제1항에 있어서, 상기 SRAM어드레스발생부는 SRAM에 저장된 현재 및 이전 매크로 이미지 데이터중 상기 움직임 예측기가 필요로하는 시간에 상기 계층적 레벨의 프레임 구조하에서 상, 중, 하 레벨에 따라 그 데이터들을 리드하여 상기 움직임 추정기 내부의 레지스터들에 저장하는 SRAM리드부;
    상기 움직임추정기로 부터 최종적인 움직임 벡터 및 SAD값을 동작 단위에 따라 상기 SRAM에 라이트하는 SRAM라이트부를 포함하는 것을 특징으로 하는 데이터 공급장치.
  5. 제4항에 있어서, 상기 SRAM리드부는 상기 계층적 레벨의 프레임 구조중 상위 레벨에서 소정개 건너 하나씩의 데이터를 리드하는 어드레스를 발생하며, 중간 레벨에서 매클럭마다 1씩 증가시킨 후 최하위비트를 제거하여 서브샘플링되는 어드레스를 발생하며, 하위 레벨에서 2클럭에 1씩 증가시키고 최하위비트를 제거한 후 매 클럭마다 하나씩의 데이터를 순차적으로 리드하는 어드레스를 발생하는 것임을 특징으로 하는 데이터 공급장치.
  6. 현재프레임이미지와 이전 프레임 이미지를 저장하는 SDRAM, 상기 현재 및 이전의 매크로 블럭 이미지 데이터를 저장하는 SRAM, 상기 SDRAM 및 SRAM을 통해 움직임 벡터 및 절대차분치합 (SAD)을 발생하는 움직임 추정기를 구비한 데이터공급 방법에 있어서,
    상기 움직임추정기에 소정 비트의 데이터를 공급하는 과정;
    상기 움직임추정기가 매크로 블럭 단위로 데이터를 처리한 후 발생되는 움직임 벡터, SAD값을 포함하는 소정개수의 소정길이비트로 이루어진 데이터들을 상기 SRAM을 거쳐 일정개수로 합친 비트길이의 데이터로 변환하여 상기 SDRAM에 저장하는 과정;
    상기 SDRAM에 저장된 데이터를 소정의 버스트 길이로 리드하는 과정을 포함하는 데이터 공급방법.
KR19990035841A 1999-08-27 1999-08-27 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법 KR100601618B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR19990035841A KR100601618B1 (ko) 1999-08-27 1999-08-27 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법
US09/637,993 US6748017B1 (en) 1999-08-27 2000-08-15 Apparatus for supplying optimal data for hierarchical motion estimator and method thereof
CNB001262009A CN1140134C (zh) 1999-08-27 2000-08-25 用于向分级运动估计器提供最佳数据的装置及其方法
JP2000256372A JP2001103494A (ja) 1999-08-27 2000-08-25 階層的動き推定器のための最適のデータ供給装置及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR19990035841A KR100601618B1 (ko) 1999-08-27 1999-08-27 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법

Publications (2)

Publication Number Publication Date
KR20010019443A KR20010019443A (ko) 2001-03-15
KR100601618B1 true KR100601618B1 (ko) 2006-07-14

Family

ID=19608927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR19990035841A KR100601618B1 (ko) 1999-08-27 1999-08-27 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법

Country Status (4)

Country Link
US (1) US6748017B1 (ko)
JP (1) JP2001103494A (ko)
KR (1) KR100601618B1 (ko)
CN (1) CN1140134C (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6987866B2 (en) * 2001-06-05 2006-01-17 Micron Technology, Inc. Multi-modal motion estimation for video sequences
US20040042551A1 (en) * 2002-09-04 2004-03-04 Tinku Acharya Motion estimation
US7266151B2 (en) * 2002-09-04 2007-09-04 Intel Corporation Method and system for performing motion estimation using logarithmic search
US20040057626A1 (en) * 2002-09-23 2004-03-25 Tinku Acharya Motion estimation using a context adaptive search
EP1644835A4 (en) * 2003-07-15 2011-12-07 Thomson Licensing MOTION ESTIMATION WITH FAST SEARCH BLOCK COMPARISON
KR20050078706A (ko) * 2004-01-31 2005-08-08 삼성전자주식회사 메모리 액세스 방법 및 메모리 액세스 장치
KR100694050B1 (ko) * 2004-06-11 2007-03-12 삼성전자주식회사 움직임 예측 방법 및 그 장치
CN100339976C (zh) * 2004-08-09 2007-09-26 Thomson宽带研发(北京)有限公司 多模多尺度运动估计的超大规模集成电路体系结构及方法
US8306122B2 (en) * 2008-06-23 2012-11-06 Broadcom Corporation Method and apparatus for processing image data
US9100636B2 (en) * 2012-09-07 2015-08-04 Intel Corporation Motion and quality adaptive rolling intra refresh
US9350989B2 (en) * 2012-12-11 2016-05-24 Megachips Corporation Moving image coding apparatus, code amount control method, and storage medium
US20140301719A1 (en) * 2013-04-08 2014-10-09 Broadcom Corporation Processing cache for multiple bit precisions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0730899Y2 (ja) * 1989-10-31 1995-07-19 株式会社ユニシアジェックス 内燃機関のピストン構造
KR0132037B1 (ko) * 1993-06-30 1998-04-24 김영욱 평균 피라미드를 이용한 계층적 고속 이동 벡터 추정장치
JPH10233999A (ja) * 1997-02-18 1998-09-02 Nippon Telegr & Teleph Corp <Ntt> 階層的映像記録方法および提示方法
KR0178231B1 (ko) * 1995-08-10 1999-05-01 배순훈 계층적인 움직임 추정 기법을 이용하는 움직임 벡터 검출 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
US6011870A (en) * 1997-07-18 2000-01-04 Jeng; Fure-Ching Multiple stage and low-complexity motion estimation for interframe video coding
US6014181A (en) * 1997-10-13 2000-01-11 Sharp Laboratories Of America, Inc. Adaptive step-size motion estimation based on statistical sum of absolute differences
US6130912A (en) * 1998-06-09 2000-10-10 Sony Electronics, Inc. Hierarchical motion estimation process and system using block-matching and integral projection
US6421698B1 (en) * 1998-11-04 2002-07-16 Teleman Multimedia, Inc. Multipurpose processor for motion estimation, pixel processing, and general processing
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0730899Y2 (ja) * 1989-10-31 1995-07-19 株式会社ユニシアジェックス 内燃機関のピストン構造
KR0132037B1 (ko) * 1993-06-30 1998-04-24 김영욱 평균 피라미드를 이용한 계층적 고속 이동 벡터 추정장치
KR0178231B1 (ko) * 1995-08-10 1999-05-01 배순훈 계층적인 움직임 추정 기법을 이용하는 움직임 벡터 검출 방법 및 장치
JPH10233999A (ja) * 1997-02-18 1998-09-02 Nippon Telegr & Teleph Corp <Ntt> 階層的映像記録方法および提示方法

Also Published As

Publication number Publication date
US6748017B1 (en) 2004-06-08
CN1286573A (zh) 2001-03-07
CN1140134C (zh) 2004-02-25
JP2001103494A (ja) 2001-04-13
KR20010019443A (ko) 2001-03-15

Similar Documents

Publication Publication Date Title
US5315388A (en) Multiple serial access memory for use in feedback systems such as motion compensated television
KR100601618B1 (ko) 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법
JP3686155B2 (ja) 画像復号装置
JP5245004B2 (ja) 高性能ビデオプロセッサ用の低電力メモリ階層
US8451901B2 (en) High-speed motion estimation apparatus and method
US5754234A (en) Moving picture decoding system
US5457481A (en) Memory system for use in a moving image decoding processor employing motion compensation technique
US20020080880A1 (en) Effective motion estimation for hierarchical search
US6160850A (en) Motion estimator employing a three-step hierachical search block-matching algorithm
KR100451584B1 (ko) 웨이블릿 변환과 움직임 추정을 이용한 동영상 부호화 및복호화 장치
KR100472564B1 (ko) 화상처리장치
KR20080092418A (ko) 이미지 및 비디오 프로세싱을 위한 메모리 구성 방법 및제어기 구조
JP2963269B2 (ja) 動き補償予測装置
KR20200079408A (ko) 영상 복호화 장치 및 방법
KR950005649B1 (ko) 움직임보상회로
KR100240005B1 (ko) 동영상 신호의 압축을 위한 프레임 메모리 제어방법 및 장치
JP2002152756A (ja) 動画像符号化装置
JP3262464B2 (ja) 画像復号化装置
KR970003801B1 (ko) 영상 디코더의 비-프레임(b-frame)처리장치와 비-프레임을 고려한 반화소 단위의 움직임 보상장치
JP3307856B2 (ja) 画像処理装置
JPH08130741A (ja) 画像復号化装置
KR100779636B1 (ko) 버퍼 메모리 시스템 및 방법
KR960012495B1 (ko) 고화질 티브이의 매크로블럭 어드레스 저장 장치
KR0180168B1 (ko) 영상부호화를 위한 프레임 재배열 장치
JP2005079848A (ja) 順次走査線変換装置および映像信号処理システム

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: 20130627

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee