KR100912209B1 - 계층적 움직임 추정장치 및 방법 - Google Patents

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

Info

Publication number
KR100912209B1
KR100912209B1 KR1020070028809A KR20070028809A KR100912209B1 KR 100912209 B1 KR100912209 B1 KR 100912209B1 KR 1020070028809 A KR1020070028809 A KR 1020070028809A KR 20070028809 A KR20070028809 A KR 20070028809A KR 100912209 B1 KR100912209 B1 KR 100912209B1
Authority
KR
South Korea
Prior art keywords
layer
motion estimation
motion
block
frame
Prior art date
Application number
KR1020070028809A
Other languages
English (en)
Other versions
KR20080086737A (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 KR1020070028809A priority Critical patent/KR100912209B1/ko
Publication of KR20080086737A publication Critical patent/KR20080086737A/ko
Application granted granted Critical
Publication of KR100912209B1 publication Critical patent/KR100912209B1/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
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/172Methods 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 picture, frame or field
    • 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/423Methods 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 characterised by memory arrangements
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission

Landscapes

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

Abstract

본 발명은 실시간 동영상 부호화에서 복잡도 개선을 위해 많이 사용되는 계층적 움직임 추정 방법의 속도를 향상시키기 위한 프레임 저장과 움직임 추정 방법에 관한 것으로, 계층적 움직임 추정에서 각 계층의 움직임 추정을 위해 기준 프레임이 저장된 외부 메모리로부터 데이터를 읽는 속도를 향상 시키기 위해서 하위 계층 프레임 하나만을 저장하지 않고, 각 계층의 프레임을 모두 저장하는 방식을 사용하며, 각 계층의 프레임을 저장할 때 움직임 추정 부에서 데이터를 끊김 없이 연속적으로 읽을 수 있도록 화소 및 블록의 순서 그리고 화소의 비트수를 변환하여 프레임을 구성한다.
부호화, 계층적, 움직임 추정, 화소 순서, 블록 순서, ME

Description

계층적 움직임 추정장치 및 방법 {Apparatus and Method for Hierarchical Motion Estimation}
도 1은 본 발명의 바람직한 실시예에 따른 비디오 부호화 장치의 블록도이다.
도 2는 본 발명의 바람직한 실시예에 따른 계층적 움직임 추정장치의 블록도이다.
도 3은 본 발명에서의 계층적 움직임 추정에 적용된 영상의 계층구조를 보여주는 도면이다.
도 4는 도 2의 기준 프레임 제공부의 상세 구성도이다.
도 5는 도 2의 움직임 추정부의 상세 구성도이다.
도 6은 본 발명에서의 마크로 블록 및 최상위 다운 샘플링된 블록의 구조를 보여주는 도면이다.
도 7은 본 발명에 따라 화소 및 블록 순서가 변환된 프레임 구조를 보여주는 도면이다.
도 8은 본 발명에 따라 특정 마크로 블록의 움직임 추정을 위해 필요한 프레임 내에서의 움직임 추정 영역을 설명하는 도면이다.
도 9는 일반적인 프레임에서 블록내 화소의 순서를 설명하는 도면이다.
※ 도면의 주요부분에 대한 부호의 설명 ※
201 : 기준 프레임 제공부 203 : 프레임 메모리부
205 : 움직임 추정부 401, 403 : 다운 샘플링부
405, 407, 409 : 화소 순서 변환부 411, 413, 415 : 블록 순서 변환부
417 : 비트수 변환부 419 : 블록 저장부
501 : 현재 프레임 저장부 503 : 기준 프레임 로더부
505, 507, 509 : 움직임 추정영역 저장부 511 : 움직임 벡터 예측부
513 : SAD 계산부 515, 516, 517 : 움직임 추정부
519, 521 : 다운 샘플링부
본 발명은 비디오 부호화기의 움직임 추정에 관한 것으로, 더욱 상세하게는 실시간 동영상 부호화에서 복잡도 개선을 위해 많이 사용되고 있는 계층적 움직임 추정의 속도를 향상시키기 위한 계층적 움직임 추정장치 및 방법에 관한 것이다.
비디오 데이터의 부호화 기술 중 하나인 움직임 추정은 소정의 측정 함수를 이용하여 현재 프레임 내의 마크로 블록과 가장 유사한 마크로 블록을 이전 프레임에서 탐색하여 양 마크로 블록의 위치의 차이를 나타내는 움직임 벡터를 구하는 과정으로, 비디오 데이터의 부호화 과정에서 가장 많은 계산량을 필요로 한다.
이러한 계산량의 감소를 위해, 움직임 추정시 수행할 계산량을 줄이기 위한 이른바 계층적 움직임 추정 기술이 연구되었다. 계층적 움직임 추정 기술은 원래의 프레임을 다양한 해상도의 프레임으로 나누고 각 해상도의 프레임에 대하여 계층적으로 움직임 벡터를 생성하는 기술이며, 이중 현재 널리 알려진 방식으로 다해상도 다중 후보 탐색법(Multi-Resolution Multiple Candidate Search : MRMCS)이 있다.
계층적 탐색 방법의 예를 살펴보면, 한국등록특허 제10-0407691호와 한국등록특허 제10-0529331호에서는 하위 계층을 위한 기준 프레임 하나만을 저장하고 상위 계층은 하위 계층의 기준 프레임에서 다운 샘플링으로 구현하고 있다. 또한, 한국등록특허 제10-0601618호에서는 기준 프레임 영상의 하위 계층은 저장하지 않고 상위 계층 하나만을 저장하는 방식으로 구현하고 있다.
그러나, 이와 같은 방법은 속도 향상이라는 장점을 제공하지만 움직임 추정의 정확도가 저하되므로 화질 열화의 원인이 될 수 있다.
한편, 부호화기의 동작 속도는 기준 프레임이 저장되어있는 외부 메모리에서 움직임 추정을 위한 화소들을 읽는 과정이 많은 부분을 차지하게 된다.
비디오 부호화는 블록단위로 부호화가 이루어진다. 이와 같은 블록단위 부호화는 SDRAM과 같이 일반적으로 많이 사용되는 메모리들에서 화소들을 읽는데 시간이 많이 걸리게 되는 요인이 된다.
참고 문헌 1(Hae-Yong Kang, et al, “MPEG4 AVC/H.264 decoder with scalable bus architecture and dual memory controller”, ISCAS 2004, II-145 ~ II ? 148.)을 살펴보면, DRAM에서 데이터를 읽을 때 라인이 다른 경우에는 읽는 준비를 위해서 6 싸이클 이상이 소요되고, 여기에 DMA 셋업 기간을 포함하면 13싸이클이 데이터를 읽는 준비기간이 된다.
도 9를 참조하면, 비디오 코덱의 하나인 H.264는 움직임 추정시 처리되는 블록의 기본 크기가 4x4 블록이다. 이 블록의 경우, 4 화소가 하나의 워드(word)이므로 4워드를 읽게 되는데, 각 워드는 라인이 달라서 연속해서 읽을 수 없다.
도 9에서, 4x4 블록은 프레임의 일부분이고, 4x4 블록의 첫번째 라인과 2번째 라인은 연속해 있지 않고 프레임에서 라인이 떨어져 있게 되어 4x4 블록의 2번째 라인 첫번째 화소는 프레임에서 724번째 화소가 되고 3번째 라인의 첫번째 화소는 프레임에서 1444번째 화소가 된다.
이와 같이, 4x4 블록의 각 라인을 읽을 때에는 앞에서 언급한 13싸이클의 준 비기간이 각각 필요하다. 즉, 1워드를 읽는데 1싸이클이 필요하지만 준비기간이 13싸이클이 필요하므로 실제는 각 워드를 읽는데 14싸이클이 필요하게 되어 4x4 블록을 읽는데 56(14x4) 싸이클이 필요하게 된다.
D1(720x480) 크기의 경우, 영상의 1프레임이 32,400 블록이므로 프레임당 1.8M 싸이클이 필요하며, 초당 30 프레임의 경우 초당 54M 싸이클이 필요하다. 결과적으로, 움직임 추정을 위해서 기준 프레임의 블록들을 중복해서 가져와야 하므로 움직임 추정시 이보다 몇 배 많은 수의 싸이클이 필요하다.
따라서, 계층적 움직임 추정에서 각 계층이 움직임 추정을 위해 외부 메모리로부터 데이터를 읽는 속도를 향상시킬 필요성이 존재한다.
본 발명은 상기한 문제점들을 해결하기 위해 안출된 것으로, 본 발명의 목적은 각 계층의 프레임을 모두 저장하거나 또는 특정 계층의 프레임을 저장하고 각 계층의 프레임을 저장할 때 끊김 없이 읽을 수 있는 화소 수를 늘림으로써 계층적 움직임 추정시 외부 메모리에서 데이터를 읽는 속도를 최대화하는 것이다.
상술한 바와 같은 본 발명의 목적을 달성하기 위해, 본 발명의 특징에 의하면, 계층적 움직임 추정장치는, 복수개의 계층을 갖는 기준 프레임에 대해 각 계층의 기준 프레임을 제공하는 기준 프레임 제공부; 상기 기준 프레임 제공부에서 제 공된 각 계층의 기준 프레임을 저장하고 있는 프레임 메모리부; 및 입력되는 현재 프레임과 상기 프레임 메모리부에 저장된 각 계층의 기준 프레임을 이용하여 계층적 움직임 추정을 수행하는 움직임 추정부를 포함하는 것을 특징으로 한다.
상기 기준 프레임 제공부는 각 계층의 마크로 블록의 화소 순서를 변환하는 각 계층의 화소 순서 변환부, 상기 화소 순서 변환부에서 화소 순서가 변환된 각 계층의 마크로 블록의 순서를 변환하는 각 계층의 블록 순서 변환부, 상기 블록 순서 변환부에서 블록 순서가 변환된 마크로 블록들의 각 화소의 비트 수를 변환하는 비트수 변환부, 및 상기 비트수 변환부에서 비트수가 변환된 마크로 블록을 프레임 메모리에 저장하는 블록 저장부로 구성된다.
상기 각 계층의 화소 순서 변환부는 마크로 블록 내의 화소들의 순서를 1차원으로 변환한 후 연속하여 저장하며, 상기 각 계층의 블록 순서 변환부는 상기 화소 순서 변환부에서 1차원으로 변환된 마크로 블록들을 수직방향 마크로 블록 순서대로 연속하여 저장한다.
상기 움직임 추정부는 현재 프레임에서 움직임 추정하고자 하는 마크로 블록을 읽어서 저장하는 현재 프레임 저장부, 상기 프레임 메모리로부터 움직임 추정을 위해 필요한 각 계층의 기준 프레임을 로딩하는 기준 프레임 로더부, 각 계층의 기준 프레임으로부터 읽은 각 계층의 움직임 영역을 저장하는 각 계층의 움직임 추정 영역 저장부, 현재 프레임과 기준 프레임의 화소정보를 입력받아 예측 움직임 벡터를 계산하는 움직임 벡터 예측부, 현재 프레임과 기준 프레임의 화소정보를 입력받아 SAD를 계산하는 SAD 계산부, 및 상기 현재 프레임의 블록과 기준 프레임의 움직 임 추정 영역, 예측 움직임 벡터, SAD값을 이용하여 움직임 추정을 수행하는 각 계층의 움직임 추정기를 포함하여 구성된다.
또한, 본 발명에 따른 영상 프레임을 복수개의 계층으로 나누어 움직임을 추정하는 계층적 움직임 추정방법에 있어서, 복수개의 계층을 갖는 기준 프레임에 대해 각 계층의 기준 프레임을 제공하는 제1 단계; 상기 각 계층의 기준 프레임을 프레임 메모리부에 저장하는 제2 단계; 및 입력되는 현재 프레임과 상기 각 계층의 기준 프레임을 이용하여 계층적 움직임 추정을 수행하는 제3 단계를 포함하는 것을 특징으로 한다.
상기 제1 단계는 각 계층의 마크로 블록의 화소 순서를 변환하는 제1-1단계, 상기 화소 순서가 변환된 각 계층의 마크로 블록의 순서를 변환하는 제1-2단계, 상기 블록 순서가 변환된 마크로 블록들의 각 화소의 비트 수를 변환하는 제1-3단계, 및 상기 비트수가 변환된 마크로 블록을 상기 프레임 메모리에 저장하는 제1-4단계를 더 포함하는 것을 특징으로 한다.
상기 제3 단계는 현재 프레임에서 움직임 추정하고자 하는 마크로 블록을 읽어서 저장하는 제3-1 단계, 상기 프레임 메모리로부터 움직임 추정을 위해 필요한 각 계층의 기준 프레임을 로딩하는 제3-2 단계, 각 계층의 기준 프레임으로부터 읽은 각 계층의 움직임 영역을 저장하는 제3-3 단계, 및 현재 프레임의 블록과 기준 프레임의 움직임 추정 영역, 예측 움직임 벡터, SAD값을 이용하여 움직임 추정을 수행하는 제3-4 단계를 더 포함하는 것을 특징으로 한다.
본 발명과 본 발명의 동작성의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 비디오 부호화 장치의 블록도이다.
도 1을 참조하면, 비디오 부호화 장치는 변환/양자화(Transform/Quantizer)부(101), 역양자화/역변환(Dequantizer/Inverse transform)부(103), 디블록킹 필터(Deblocking filter)(105)부, 기준 프레임 제공부(107), 프레임 메모리부(109), 움직임 추정(Motion estimator)부(111), 움직임 보상(Motion compensated predictor)부(113), 프레임내 예측(Intra prediction)부(115), 엔트로피 부호화부(Entropy coding)(117)를 포함하여 구성된다.
16×16 사이즈의 마크로 블록 단위로 비디오 데이터가 부호화 장치로 입력된다.
변환/양자화부(101)는 입력 마크로 블록을 소정 방식에 따라 변환한 후 양자화한다. 대표적인 영상 변환 기술로는 DCT(Discrete Cosine Transform)가 있다.
역양자화/역변환부(103)는 변환/양자화부(101)로부터 변환 후 양자화된 영상 데이터를 입력받아 역양자화 및 역변환한다.
디블록킹 필터부(105)는 역양자화/역변환부(103)로부터 역양자화 및 역변환된 영상 데이터를 입력받아 블록킹 효과를 제거하기 위한 필터링을 수행한다.
기준 프레임 제공부(107)는 필터링된 영상 데이터를 디블록킹 필터부(133)로부터 입력받고 각 계층의 기준 프레임을 제공한다.
프레임 메모리부(109)는 기준 프레임 제공부(107)에서 제공된 각 계층의 기준 프레임을 저장하고 있다. 프레임 메모리부(109)에 저장된 다수의 기준 프레임은 움직임 추정을 위해 제공되는 프레임으로서 이하에서는 기준 프레임이라 한다.
움직임 추정부(111)는 부호화할 현재 마크로 블록을 입력받고, 프레임 메모리부(109)에 저장된 적어도 하나의 참조 픽쳐를 제공받아 본 발명에 따른 계층적 움직임 추정 방법을 수행하여 블록 모드, 움직임 벡터를 나타내는 인덱스를 포함한 움직임 데이터 등을 출력한다.
움직임 보상부(113)는 움직임 추정부(111)로부터 입력된 움직임 데이터에 따라, 프레임 메모리(109)에 저장된 다수의 기준 프레임 움직임 추정에 이용된 기준 프레임으로부터, 입력 마크로 블록에 대응하는 마크로 블록을 추출하여 출력한다.
프레임내 예측부(115)는 기준 프레임을 이용하여 프레임간 예측 부호화가 아닌 프레임내 예측 부호화를 수행한다.
엔트로피 부호화부(117)에서는 움직임 추정부(111)와 움직임 보상부(113)에서 추정된 움직임 벡터(MV)에 따라 양자화된 영상 데이터의 통계적 중복성이 제거되어 출력 비트 스트림이 생성된다.
도 2는 본 발명의 바람직한 실시예에 따른 계층적 움직임 추정장치의 블록도이다.
도 2를 참조하면, 본 발명의 계층적 움직임 추정장치는 기준 프레임 제공부(201), 프레임 메모리부(203) 및 움직임 추정부(205)를 포함하여 구성된다.
기준 프레임 제공부(201)는 각 블록을 최상위 계층, 중간계층, 최하위 계층에 맞게 프레임 메모리부(203)에 저장한다. 저장된 프레임은 기준 프레임이 되며, 움직임 추정부(205)에서 현재 프레임의 블록과 최상위 계층, 중간계층, 최하위 계층의 기준 프레임을 사용하여 움직임을 추정한다.
즉, 기준 프레임 제공부(201)는 복수개의 계층을 갖는 기준 프레임에 대해 각 계층의 기준 프레임을 제공하고, 프레임 메모리부(203)는 기준 프레임 제공부(201)에서 제공된 각 계층의 기준 프레임을 저장하고 있으며, 움직임 추정부(205)는 입력되는 현재 프레임과 프레임 메모리부(203)에 저장된 각 계층의 기준 프레임을 이용하여 계층적 움직임 추정을 수행하게 된다.
도 3은 본 발명에서의 계층적 움직임 추정에 적용된 영상의 계층구조를 보여주는 도면이다.
앞서 언급한 바와 같이, 16×16 사이즈의 마크로 블록 단위로 비디오 데이터가 부호화 장치로 입력되는데, 도 3에 도시된 바와 같이 본 발명에서는 기준 프레임이 계층적 구조를 갖도록 구성한다.
계층의 수는 특정될 필요는 없으나, 본 실시예에서는 최상위 계층(301), 중간 계층(303), 최하위 계층(305)인 경우를 예를 들어 설명한다.
도 4는 도 2의 기준 프레임 제공부의 상세 구성도이다.
도 4를 참조하면, 기준 프레임 제공부(201)는 최상위 계층 다운 샘플링부(401), 중간 계층 다운 샘플링부(403), 최상위 계층 화소 순서 변환부(405), 중간 계층 화소 순서 변환부(407), 최하위 계층 화소 순서 변환부(409), 최상위 계층 블록 순서 변환부(411), 중간 계층 블록 순서 변환부(413), 최하위 계층 블록 순서 변환부(415), 비트수 변환부(147), 및 블록 저장부(419)로 구성되어 있다.
기준 프레임 제공부(201)는 입력되는 마크로 블록을 처리하게 되는데, 마크로 블록은 도 6에 도시된 바와 같이 16x16의 크기이며, 최상위 계층과 중간 계층에 대해 다운 샘플링을 수행한다.
최상위 계층 다운 샘플링부(401)가 최상위 계층의 다운 샘플링을 수행하고, 중간 계층 다운 샘플링부(403)가 중간 계층의 다운 샘플링을 수행한다.
최상위 계층의 다운 샘플링은 도 6의 마크로 블록을 4x4 크기의 블록으로 나누어 대표 화소 하나씩을 취하여 16개의 화소로 구성한다.
또한, 중간 계층의 다운 샘플링은 도 6의 마크로 블록을 2x2 크기의 블록으 로 나누어 각 블록의 대표 화소 하나씩을 취하여 64개의 화소로 구성한다.
이때, 최하위 계층에 대해서는 다운 샘플링이 수행되지 않는다. 따라서, 최하위 계층은 다운 샘플링 없이 256개의 화소로 구성한다.
각 계층의 화소 순서 변환부는 각 계층의 마크로 블록의 화소 순서를 변환한다.
구체적으로, 최상위 계층 화소 순서 변환부(405)는 최상위 계층 다운 샘플링에서 구성된 16개의 화소를 움직임 추정기에서 끊김 없이 읽을 수 있도록 순서를 변환하고, 중간 계층 화소 순서 변환부(407)는 중간 계층 다운샘플링에서 구성된 64개의 화소의 순서를 변환하며, 최하위 계층 화소 순서 변환부(409)는 다운 샘플링 되지 않은 256개의 화소의 순서를 변환한다.
각 계층의 블록 순서 변환부는 각 계층의 화소 순서 변환부에서 화소 순서가 변환된 각 계층의 마크로 블록의 순서를 변환한다.
구체적으로, 최상위 계층 블록 순서 변환부(411)는 최상위 계층 화소 순서 변환부(405)에서 변환된 마크로 불록들을 움직임 추정부(205)에서 끊김 없이 읽을 수 있도록 마크로 블록의 순서를 변환하고, 중간 계층 블록 순서 변환부(413)는 중간 계층 화소 순서 변환부(407)에서 변환된 마크로 불록의 순서를 변환하며, 최하위 계층 블록 순서 변환부(415)는 최하위 계층 화소 순서 변환부(409)에서 변환된 마크로 불록의 순서를 변환한다.
도 6은 본 발명에서의 마크로 블록 및 최상위 다운 샘플링된 블록의 구조를 보여주는 도면이고, 도 7은 본 발명에 따라 화소 및 블록 순서가 변환된 프레임 구 조를 보여주는 도면이다.
이해를 돕기 위해서, 도 4, 도 6 및 도 7를 참고로 최상위 계층에 대한 다운 샘플링, 화소 순서 변환 및 블록 순서 변환에 대해 살펴보면 다음과 같다.
최상위 계층 화소 순서 변환부(405)에서는 최상위 계층 다운 샘플링을 통해 16x16크기의 마크로 블록을 4x4 크기의 마크로 블록으로 만든 후 4x4 크기의 마크로 블록을 1차원으로 변환하여 16개의 화소를 연속해서 저장한다.
이때, 1차원으로 변환하는 순서에 있어서, 도 6에서 다운 샘플링된 4x4 크기의 마크로 블록 화소들은 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15의 순서 또는 0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15의 순서로 저장된다. 이와 같이 1차원으로 변환을 하면 다운 샘플링된 마크로 블록의 16개의 화소를 끊김 없이 연속해서 읽을 수 있게 된다.
또한, 최상위 계층 블록순서 변환부(411)는 저장되는 마크로 블록의 순서를 변환한다.
도 7에서, 720x480 크기의 일반적 기준 프레임은 16x16 크기의 마크로 블록 (MB)들로 나누어지고 수평방향의 래스터 스캔 방식으로 각 마크로 블록의 순서를 MB 0-0(여기서, MB 0-0는 라인 번호-각 라인의 MB 번호)에서 MB 30-45 까지 1350개의 마크로 블록으로 구성된다.
각 마크로 블록은 앞서 설명한 최상위 계층 다운 샘플링부(401)와 최상위 계층 화소 순서 변환부(405)를 거쳐 16개의 1차원 화소 열로 구성되는 1차원 마크로 블록이 된다. 1차원 마크로 블록들은 일반적인 래스터 스캔 방식이 아닌 수직방향 으로 마크로 블록 순서가 변환된다. 즉, 도 7의 본 발명에 따른 기준 프레임과 같이 MB0-0, MB 1-0, MB 2-0 … 와 같은 순서로 수직방향으로 마크로 블록 순서가 변환된다.
이와 같이, 마크로 블록의 저장 순서를 수직 방향으로 변환하는 것은 이후에 설명될 움직임 추정부(205)가 수직 방향의 마크로 블록 여러 개를 순차적으로 읽을 때 여러 개의 마크로 블록내의 화소들을 끊김 없이 읽을 수 있도록 하기 위한 것이다.
비트수 변환부(417)는 각 계층의 블록 순서 변환부에서 블록 순서가 변환된 마크로 블록들의 각 화소의 비트 수를 변환한다.
일반적인 영상의 화소는 8비트로 표현하며, 예를들어 최상위 계층 블록순서 변환부(405)의 출력 역시 각 화소가 8비트이다. 비트 수 변환부(417)에서는 메모리에 저장되는 비트 수를 줄이고 메모리에 쓰고 읽는 속도를 높이기 위해서 화소당 비트수를 줄인다. 바람직하게, 8 비트 중 하위 (8-k) 비트는 버리고 상위 k 비트 만을 취한다. 여기서, k는 1~7 비트 중 하나를 선택한다. 예를 들면, k가 4인 경우 하위 4비트는 버리고 상위 4 비트 만을 사용하게 되므로 저장되는 프레임의 비트수가 반으로 줄어들게 되고 메모리에 쓰고 읽는 속도가 2배로 높여지게 된다.
또한, 블록 저장부(419)는 비트수 변환부(417)에서 비트수가 변환된 마크로 블록을 프레임 메모리(203)에 저장한다. 블록 저장부(49)는 비트 수 변환부(405)에서 비트 수가 변환된 화소들을 모아서 16비트, 32비트 또는 64비트 단위로 메모리에 저장한다.
위와 같이, 화소와 마크로 블록의 순서가 변환된 각 계층의 마크로 블록은 비트 수 변환부(417)에서 비트 수를 줄이며 블록 저장부(419)에서 순차적으로 프레임 메모리(203)에 저장된다.
바람직하게, 상기 블록저장부(419)는 모든 계층(최상위 계층, 중간계층, 최하위 계층) 또는 그 중 일부 계층의 블록을 각각의 프레임 메모리(203)에 저장한다.
도 5는 도 2의 움직임 추정부의 상세 구성도로서, 각 계층의 움직임 추정부에서는 현재 프레임의 블록과 기준 프레임의 움직임 추정 영역 및 예측 움직임 벡터를 사용하여 움직임 추정을 수행한다.
도 5를 참조하면, 움직임 추정부(205)는 현재 프레임 저장부(501), 기준 프레임 로더부(503), 최상위 계층 움직임 추정영역 저장부(505), 중간 계층 움직임 추정영역 저장부(507), 최하위 계층 움직임 추정영역 저장부(509), 움직임 벡터 예측부(511), SAD 계산부(513), 최상위 계층 움직임 추정부(515), 중간 계층 움직임 추정부(516), 최하위 계층 움직임 추정부(517), 최상위 계층 다운 샘플링부(519), 및 중간 계층 다운 샘플링부(521)로 구성되어 있다.
현재 프레임 블록 저장부(501)는 현재 프레임에서 움직임 추정하고자 하는 마크로 블록을 읽어서 저장한다.
기준 프레임 로더부(503)에서는 최상위 계층, 중간 계층, 최하위 계층의 프레임을 읽어서 각각 최상위 계층 움직임 추정 영역 저장부(505), 중간 계층 움직임 추정 영역 저장부(507), 최하위 계층 움직임 추정 영역 저장부(509)로 보낸다.
각 계층의 움직임 추정 영역 저장부(505, 507, 509)에서는 움직임 추정을 위해서 필요한 영역을 저장하고 관리한다.
움직임 벡터 예측부(511)는 현재 프레임과 기준 프레임의 화소정보를 입력받아 예측 움직임 벡터를 계산한다.
SAD 계산부(513)는 현재 프레임과 기준 프레임의 화소정보를 입력받아 SAD(Sum of Absolute Difference)를 계산한다.
각 계층의 움직임 추정부(515, 516, 517)에서는 현재 프레임의 블록과 기준 프레임의 움직임 추정 영역, 예측 움직임 벡터, SAD값을 이용하여 움직임 추정을 수행한다.
최상위 계층 다운 샘플링부(519)에서는 16x16 마크로 블록을 다운 샘플링 하여 4x4 블록으로 만들고, 중간 계층 다운 샘플링부(521)에서는 16x16 마크로 블록을 다운 샘플링하여 8x8 블록으로 만든다.
최상위 계층 움직임 추정부(515)에서는 최상위 계층 다운 샘플링부(519)에서 받는 4x4 크기의 현재 프레임 블록에 대해 최상위 계층 움직임 영역 저장부(505)에서 받는 최상위 계층 움직임 추정 영역에서 움직임을 추정한다. 비디오 인코더에서는 프레임을 부호화한 정보와 함께 움직임 정보를 보내게 되는데, 움직임 추정시 이 정보의 크기를 구하기 위해서 움직임 벡터 예측부(511)에서 구한 움직임 예측 정보를 사용한다.
중간 계층 움직임 추정부(516)에서는 중간 계층 다운 샘플링부(521)에서 받 는 8x8 크기의 현재 프레임 블록에 대해 중간 계층 움직임 영역 저장부(507)에서 받는 중간 계층 움직임 추정 영역에서 움직임을 추정한다.
최하위 계층 움직임 추정부(517)에서는 현재 프레임 블록 저장부(501)에서 받는 16x16 크기의 현재 프레임 블록에 대해 최하위 계층 움직임 영역 저장부(509)에서 받는 최하위 계층 움직임 추정 영역에서 움직임을 추정한다.
도 8은 본 발명에 따라 특정 마크로 블록의 움직임 추정을 위해 필요한 프레임 내에서의 움직임 추정 영역을 설명하는 도면이다.
앞서 살펴본 바와 같이, 도 4의 최상위 계층 블록 순서 변환부(411)에서는 수직방향 블록들을 연속해서 저장하며, 이와 같이 수직방향으로 연속해서 블록들을 저장하면 도 5의 각 계층의 움직임 추정부에서 기준 프레임을 끊김 없이 연속해서 읽을 수 있게 되는데, 이에 대해 살펴보면 다음과 같다.
도 8에서, MB 2-2의 움직임을 추정하기 위해서는 MB 2-2주위의 영역을 프레임 메모리에서 읽어 저장한다. 도 5의 최상위 계층 움직임 추정 영역 저장부(505)는 움직임을 추정하고자 하는 마크로 블록의 주위 영역을 저장하는 역할을 한다. 예를들어, 수직으로 +32 와 -32 영역 그리고 수평으로 역시 +32와 -32영역에서 움직임을 찾는 경우, 하나의 마크로 블록에 대한 움직임 추정을 위해 기준 프레임에서 80x80 영역이 필요하고 이것은 25개의 마크로 블록에 해당된다.
도 8에서, MB 2-2의 움직임 추정을 위해서 기준 프레임의 MB 0-0 에서 MB 4-4까지의 25개 마크로 블록이 필요하다. 움직임 추정 영역이 커지거나 줄어듦에 따 라서 기준 프레임으로부터 읽는 마크로 블록 수는 p×n개의 마크로 블록을 읽게 된다. 여기서, 0〈 p ≤ (영상 프레임의 수평 화소수), 0〈 n ≤ (영상 프레임의 수wlr 화소수)이다.
움직임 추정을 위해 기준 프레임에서 움직임 추정 영역을 로드하는 단계는 다음과 같다.
각 마크로 블록의 첫번째 마크로 불록인 경우, 예를 들어 세번째 마크로 블록 라인의 첫번째 마크로 블록인 MB 2-0의 움직임 추정을 위해서 MB 0-0 ~MB 0-2 그리고 MB 4-2까지 15개의 마크로 블록을 읽는다.
다음에, MB 2-1의 움직임을 추정하기 위해서는 MB 0-0 ~ MB 4-3 의 20개의 마크로 블록이 필요하다. 여기서, 15개의 마크로 블록은 이전에 읽었으므로 추가로 읽는 부분은 네 번째 마크로 블록들인 MB 0-3 ~ MB 4-3의 5개 마크로 블록을 읽는다. 다음에 MB 2-2의 움직임 추정을 위해서 5번째 마크로 블록들인 MB 0-4 ~ MB 4-4의 5개 마크로 블록을 기준 프레임 메모리에서 읽는다.
각 라인의 첫 번째 마크로 블록을 제외한 나머지 마크로 블록들을 움직임 추정하기 위해서는 앞서 설명한 바와 같이 MB 0-3 ~ MB 4-3 , MB 0-4 ~ MB 4-4 의 세로 5개의 마크로 블록을 읽는다.
움직임 추정 영역이 k×m(여기서, k는 움직임 추정영역의 수평 화소수이고, m은 수직 화소수임)인 경우에 크기에 따라서 수직으로 n( n= m/16)개의 마크로 블록을 읽게 된다. 이와 같은 경우, 세로 순서의 마크로 블록들을 메모리에 연속해서 저장하면 끊김 없이 연속해서 읽을 수 있게 된다.
한편, 도 4의 각 계층의 블록 순서 변환부(411, 413, 415)는 마크로 블록의 순서를 변환하여 메모리에 저장한다. 도 7과 같이, 본 발명에 따른 기준 프레임은 MB 0-0, MB 1-0의 순서로 일반적인 기준 프레임의 수직 마크로 블록 순서를 수평으로 저장하게 된다.
중간 계층과 최하위 계층 역시 최상위 계층과 마찬가지로 화소 순서와 블록 순서를 변환하여 기준 프레임을 저장하여 속도를 개선한다.
이런 방식으로, 본 발명에서는 도 6에서와 같이 마크로 블록내의 화소들의 순서를 변환하여 1차원으로 연속해서 저장하고 도 7에서와 같이 수직 마크로 블록들을 연속해서 저장하면, 하나의 마크로 블록들을 추정하기 위해서 기준 프레임의 움직임 추정 영역을 읽을 때 끊김 없이 읽을 수 있게 된다.
본 발명에 따르면, 최상위 계층의 기준 프레임은 5개의 마크로 블록을 연속해서 읽게 되는데, 하나의 마크로 블록이 16개의 화소이고 5개의 마크로 블록이므로 80개의 화소가 저장되고 각 화소는 4비트로 구성되므로 320비트가 저장된다. 메모리는 워드 단위로 저장되고 1 워드는 32비트이므로 5개의 마크로 블록을 저장하는데 10싸이클과 준비를 위해 13사이클이 필요하므로 23싸이클이 소요된다. 기존 방식에서는 1개의 마크로 블록을 읽는데 4라인이고 각 라인당 약 14싸이클이므로 5개의 마크로 블록을 읽는데 280싸이클이 필요하다. 제안 방식은 마크로 블록의 순서와 화소의 순서를 변환하지 않는 기존의 방식에 비해서 10배 이상의 메모리 로딩 시간이 개선된다.
본 발명은 도면에 도시된 일실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이, 본 발명에서는 각 계층의 프레임을 모두 저장하거나 또는 계층의 일부를 저장하고 각 계층에서 화소의 순서와 마크로 블록의 순서를 변환함으로써 계층적 움직임 추정에서 속도에 영향을 크게 미치는 움직임 추정 영역의 로드 시간을 크게 감소시킬 수 있다는 효과를 제공한다.

Claims (38)

  1. 삭제
  2. 복수개의 계층을 갖는 기준 프레임에 대해 각 계층의 기준 프레임을 제공하는 기준 프레임 제공부;
    상기 기준 프레임 제공부에서 제공된 각 계층의 기준 프레임을 저장하고 있는 프레임 메모리부; 및
    입력되는 현재 프레임과 상기 프레임 메모리부에 저장된 각 계층의 기준 프레임을 이용하여 계층적 움직임 추정을 수행하는 움직임 추정부를 포함하는 것을 특징으로 하는 계층적 움직임 추정장치에 있어서,
    상기 기준 프레임 제공부는,
    각 계층의 마크로 블록의 화소 순서를 변환하는 각 계층의 화소 순서 변환부,
    상기 화소 순서 변환부에서 화소 순서가 변환된 각 계층의 마크로 블록의 순서를 변환하는 각 계층의 블록 순서 변환부,
    상기 블록 순서 변환부에서 블록 순서가 변환된 마크로 블록들의 각 화소의 비트 수를 변환하는 비트수 변환부, 및
    상기 비트수 변환부에서 비트수가 변환된 마크로 블록을 프레임 메모리에 저장하는 블록 저장부로 구성되는 것을 특징으로 하는 계층적 움직임 추정장치.
  3. 제2항에 있어서,
    상기 각 계층의 화소 순서 변환부는 마크로 블록 내의 화소들의 순서를 1차원으로 변환한 후 연속하여 저장하는 것을 특징으로 하는 계층적 움직임 추정장치.
  4. 제3항에 있어서,
    상기 각 계층의 블록 순서 변환부는 상기 화소 순서 변환부에서 화소들의 순서가 1차원으로 변환된 마크로 블록들을 수직방향 마크로 블록 순서대로 연속하여 저장하는 것을 특징으로 하는 계층적 움직임 추정장치.
  5. 제2항에 있어서,
    상기 비트수 변환부는 화소 당 비트수를 줄이기 위해서 8비트 중 상위 k 비트(여기서, k는 1에서 7 사이의 자연수) 만을 취하는 것을 특징으로 하는 계층적 움직임 추정장치.
  6. 제2항에 있어서,
    상기블록 저장부는 모든 계층(최상위 계층, 중간계층 및 최하위 계층) 또는 이들 중 일부 계층의 블록을 각각의 프레임 메모리에 저장하는 것을 특징으로 하는 계층적 움직임 추정장치.
  7. 제2항 또는 제6항에 있어서, 상기 기준 프레임 제공부는,
    최상위 계층의 다운 샘플링을 수행하는 최상위 계층 다운 샘플링부, 및
    중간 계층의 다운 샘플링을 수행하는 중간 계층 다운 샘플링부를 더 포함하는 것을 특징으로 하는 계층적 움직임 추정장치.
  8. 제7항에 있어서,
    상기 최상위 계층의 다운 샘플링부는 마크로 블록을 4x4 크기의 블록으로 나누어 대표 화소 하나씩을 취하여 16개의 화소로 구성하는 것을 특징으로 하는 계층적 움직임 추정장치.
  9. 제7항에 있어서,
    상기 중간 계층의 다운 샘플링부는 마크로 블록을 2x2 크기의 블록으로 나누어 각 블록의 대표 화소 하나씩을 취하여 64개의 화소로 구성하는 것을 특징으로 하는 계층적 움직임 추정장치.
  10. 제6항에 있어서,
    상기 최하위 계층은 다운 샘플링 없이 256개의 화소로 구성하는 것을 특징으로 하는 계층적 움직임 추정장치.
  11. 제2항에 있어서, 상기 움직임 추정부는,
    현재 프레임에서 움직임 추정하고자 하는 마크로 블록을 읽어서 저장하는 현재 프레임 저장부,
    상기 프레임 메모리로부터 움직임 추정을 위해 필요한 각 계층의 기준 프레임을 로딩하는 기준 프레임 로더부,
    각 계층의 기준 프레임으로부터 읽은 각 계층의 움직임 영역을 저장하는 각 계층의 움직임 추정 영역 저장부,
    현재 프레임과 기준 프레임의 화소정보를 입력받아 예측 움직임 벡터를 계산하는 움직임 벡터 예측부,
    현재 프레임과 기준 프레임의 화소정보를 입력받아 SAD를 계산하는 SAD 계산부, 및
    상기 현재 프레임의 블록과 기준 프레임의 움직임 추정 영역, 예측 움직임 벡터, SAD값을 이용하여 움직임 추정을 수행하는 각 계층의 움직임 추정기를 포함하는 것을 특징으로 하는 계층적 움직임 추정장치.
  12. 제11항에 있어서,
    상기 기준 프레임 로더부는 상기 움직임 추정 영역의 크기가 k × m(여기서, k는 움직임 추정영역의 수평 화소수이고, m은 움직임 추정영역의 수직 화소수임)인 경우에 수직으로 n개(n= m/16)의 마크로 블록을 로딩하는 것을 특징으로 하는 계층적 움직임 추정장치.
  13. 제11항에 있어서, 상기 각 계층의 움직임 추정 영역 저장부는,
    최상위 계층의 프레임으로부터 특정 마크로 블록의 움직임 추정을 위해 필요한 움직임 영역을 저장하고 관리하는 최상위 계층 움직임 영역 저장부,
    중간 계층의 프레임으로부터 특정 마크로 블록의 움직임 추정을 위해 필요한 움직임 영역을 저장하고 관리하는 중간 계층 움직임 영역 저장부, 및
    최하위 계층의 프레임으로부터 특정 마크로 블록의 움직임 추정을 위해 필요한 움직임 영역을 저장하고 관리하는 최하위 계층 움직임 영역 저장부로 구성되는 것을 특징으로 하는 계층적 움직임 추정장치.
  14. 제11항에 있어서, 상기 각 계층의 움직임 추정기는,
    현재 프레임 블록에 대해 최상위 계층 움직임 추정 영역에서 움직임을 추정하는 최상위 계층 움직임 추정기,
    현재 프레임 블록에 대해 중간 계층 움직임 추정 영역에서 움직임을 추정하는 중간 계층 움직임 추정기, 및
    현재 프레임 블록에 대해 최하위 계층 움직임 추정 영역에서 움직임을 추정하는 최하위 계층 움직임 추정기로 구성되는 것을 특징으로 하는 계층적 움직임 추정장치.
  15. 제11항에 있어서, 상기 움직임 추정부는,
    최상위 계층의 다운 샘플링을 수행하는 최상위 계층 다운 샘플링부, 및
    중간 계층의 다운 샘플링을 수행하는 중간 계층 다운 샘플링부를 더 포함하는 것을 특징으로 하는 계층적 움직임 추정장치.
  16. 제14항 또는 제15항에 있어서,
    상기 최상위 계층 움직임 추정기는 상기 최상위 계층 다운 샘플링부로부터 입력받은 4x4 크기의 현재 프레임 블록에 대해 움직임을 추정하는 것을 특징으로 하는 계층적 움직임 추정장치.
  17. 제14항 또는 제15항에 있어서,
    상기 중간 계층 움직임 추정기는 상기 중간 계층 다운 샘플링부로부터 입력받은 8x8 크기의 현재 프레임 블록에 대해 움직임을 추정하는 것을 특징으로 하는 계층적 움직임 추정장치.
  18. 제14항에 있어서,
    상기 최하위 계층 움직임 추정기는 16x16 크기의 현재 프레임 블록에 대해 움직임을 추정하는 것을 특징으로 하는 계층적 움직임 추정장치.
  19. 삭제
  20. 영상 프레임을 복수개의 계층으로 나누어 움직임을 추정하는 계층적 움직임 추정방법에 있어서,
    복수개의 계층을 갖는 기준 프레임에 대해 각 계층의 기준 프레임을 제공하는 제1 단계;
    상기 각 계층의 기준 프레임을 프레임 메모리부에 저장하는 제2 단계; 및
    입력되는 현재 프레임과 상기 각 계층의 기준 프레임을 이용하여 계층적 움직임 추정을 수행하는 제3 단계를 포함여 이루어지되,
    상기 제1 단계는,
    각 계층의 마크로 블록의 화소 순서를 변환하는 제1-1단계,
    상기 화소 순서가 변환된 각 계층의 마크로 블록의 순서를 변환하는 제1-2단계,
    상기 블록 순서가 변환된 마크로 블록들의 각 화소의 비트 수를 변환하는 제1-3단계, 및
    상기 비트수가 변환된 마크로 블록을 상기 프레임 메모리에 저장하는 제1-4단계를 더 포함하는 것을 특징으로 하는 계층적 움직임 추정방법.
  21. 제20항에 있어서,
    상기 제1-1 단계에서, 마크로 블록 내의 화소들의 순서를 1차원으로 변환한 후 연속하여 저장하는 것을 특징으로 하는 계층적 움직임 추정방법.
  22. 제20항에 있어서,
    상기 제1-2 단계에서, 상기 화소 순서가 1차원으로 변환된 마크로 블록들을 수직방향 마크로 블록 순서대로 연속하여 저장하는 것을 특징으로 하는 계층적 움직임 추정방법.
  23. 제20항에 있어서,
    상기 제1-3 단계에서, 화소 당 비트수를 줄이기 위해서 8비트 중 상위 k 비트(여기서, k는 1에서 7 사이의 자연수) 만을 취하는 것을 특징으로 하는 계층적 움직임 추정방법.
  24. 제20항에 있어서,
    상기 복수개의 계층은 최상위 계층, 중간계층 및 최하위 계층을 포함하는 것을 특징으로 하는 계층적 움직임 추정방법.
  25. 제24항에 있어서, 상기 제2 단계에서,
    상기 모든 계층(최상위 계층, 중간계층 및 최하위 계층) 또는 이들 중 일부 계층의 기준 프레임을 각각 프레임 메모리에 저장하는 것을 특징으로 하는 계층적 움직임 추정방법.
  26. 제24항에 있어서, 상기 제2 단계에서,
    상기 최상위 계층 및 최하위 계층의 기준 프레임만을 프레임 메모리에 저장하는 것을 특징으로 하는 계층적 움직임 추정방법.
  27. 제20항, 제25항 또는 제26항 중 어느 한항에 있어서, 상기 제1 단계는,
    최상위 계층의 다운 샘플링을 수행하는 제1-5 단계, 및
    중간 계층의 다운 샘플링을 수행하는 제1-6 단계를 더 포함하는 것을 특징으로 하는 계층적 움직임 추정방법.
  28. 제27항에 있어서,
    상기 제1-5 단계에서, 마크로 블록을 4x4 크기의 블록으로 나누어 대표 화소 하나씩을 취하여 16개의 화소로 구성하는 것을 특징으로 하는 계층적 움직임 추정방법.
  29. 제27항에 있어서,
    상기 제1-6 단계에서, 마크로 블록을 2x2 크기의 블록으로 나누어 각 블록의 대표 화소 하나씩을 취하여 64개의 화소로 구성하는 것을 특징으로 하는 계층적 움직임 추정방법.
  30. 제25항 또는 제26항에 있어서,
    상기 최하위 계층은 다운 샘플링 없이 256개의 화소로 구성하는 것을 특징으로 하는 계층적 움직임 추정방법.
  31. 제20항에 있어서, 상기 제3 단계는,
    현재 프레임에서 움직임 추정하고자 하는 마크로 블록을 읽어서 저장하는 제3-1 단계,
    상기 프레임 메모리로부터 움직임 추정을 위해 필요한 각 계층의 기준 프레임을 로딩하는 제3-2 단계,
    각 계층의 기준 프레임으로부터 읽은 각 계층의 움직임 영역을 저장하는 제3-3 단계, 및
    현재 프레임의 블록과 기준 프레임의 움직임 추정 영역, 예측 움직임 벡터, SAD값을 이용하여 움직임 추정을 수행하는 제3-4 단계를 더 포함하는 것을 특징으로 하는 계층적 움직임 추정방법.
  32. 제31항에 있어서, 상기 제3-2 단계에서,
    상기 움직임 추정 영역의 크기가 k × m(여기서, k는 움직임 추정영역의 수평 화소수이고, m은 움직임 추정영역의 수직 화소수임)인 경우에 수직으로 n개(n= m/16)의 마크로 블록을 로딩하는 것을 특징으로 하는 계층적 움직임 추정방법.
  33. 제31항에 있어서, 상기 제3-3 단계는,
    최상위 계층의 프레임으로부터 특정 마크로 블록의 움직임 추정을 위해 필요한 움직임 영역을 저장하고 관리하는 단계,
    중간 계층의 프레임으로부터 특정 마크로 블록의 움직임 추정을 위해 필요한 움직임 영역을 저장하고 관리하는 단계, 및
    최하위 계층의 프레임으로부터 특정 마크로 블록의 움직임 추정을 위해 필요한 움직임 영역을 저장하고 관리하는 단계를 더 포함하는 것을 특징으로 하는 계층적 움직임 추정방법.
  34. 제31항에 있어서, 상기 제3-4 단계는,
    현재 프레임 블록에 대해 최상위 계층 움직임 추정 영역에서 움직임을 추정 하는 제3-4-1 단계,
    현재 프레임 블록에 대해 중간 계층 움직임 추정 영역에서 움직임을 추정하는 제3-4-2 단계, 및
    현재 프레임 블록에 대해 최하위 계층 움직임 추정 영역에서 움직임을 추정하는 제3-4-3 단계를 포함하는 것을 특징으로 하는 계층적 움직임 추정방법.
  35. 제20항에 있어서, 상기 제3 단계는,
    최상위 계층의 다운 샘플링을 수행하는 제3-4-4 단계, 및
    중간 계층의 다운 샘플링을 수행하는 제3-4-5 단계를 더 포함하는 것을 특징으로 하는 계층적 움직임 추정방법.
  36. 제34항에 있어서,
    상기 제3-4-1 단계에서, 상기 최상위 계층 다운 샘플링된 4x4 크기의 현재 프레임 블록에 대해 움직임을 추정하는 것을 특징으로 하는 계층적 움직임 추정방법.
  37. 제34항에 있어서,
    상기 제3-4-2 단계에서, 상기 중간 계층 다운 샘플링된 8x8 크기의 현재 프레임 블록에 대해 움직임을 추정하는 것을 특징으로 하는 계층적 움직임 추정방법.
  38. 제34항에 있어서,
    상기 제3-4-3 단계에서, 16x16 크기의 현재 프레임 블록에 대해 움직임을 추정하는 것을 특징으로 하는 계층적 움직임 추정방법.
KR1020070028809A 2007-03-23 2007-03-23 계층적 움직임 추정장치 및 방법 KR100912209B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070028809A KR100912209B1 (ko) 2007-03-23 2007-03-23 계층적 움직임 추정장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070028809A KR100912209B1 (ko) 2007-03-23 2007-03-23 계층적 움직임 추정장치 및 방법

Publications (2)

Publication Number Publication Date
KR20080086737A KR20080086737A (ko) 2008-09-26
KR100912209B1 true KR100912209B1 (ko) 2009-08-14

Family

ID=40025898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070028809A KR100912209B1 (ko) 2007-03-23 2007-03-23 계층적 움직임 추정장치 및 방법

Country Status (1)

Country Link
KR (1) KR100912209B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08265763A (ja) * 1995-03-20 1996-10-11 Graphics Commun Lab:Kk 動きベクトル検出方法及びその装置
KR19990005915A (ko) * 1997-06-25 1999-01-25 유재희 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치
JP2004159157A (ja) 2002-11-07 2004-06-03 Kddi R & D Laboratories Inc 階層符号化された動画像の復号装置
KR20050115779A (ko) * 2004-06-05 2005-12-08 삼성전자주식회사 다 해상도 기반의 동 영상 부호화 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08265763A (ja) * 1995-03-20 1996-10-11 Graphics Commun Lab:Kk 動きベクトル検出方法及びその装置
KR19990005915A (ko) * 1997-06-25 1999-01-25 유재희 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치
JP2004159157A (ja) 2002-11-07 2004-06-03 Kddi R & D Laboratories Inc 階層符号化された動画像の復号装置
KR20050115779A (ko) * 2004-06-05 2005-12-08 삼성전자주식회사 다 해상도 기반의 동 영상 부호화 방법 및 시스템

Also Published As

Publication number Publication date
KR20080086737A (ko) 2008-09-26

Similar Documents

Publication Publication Date Title
RU2714364C1 (ru) Способ и устройство для кодирования или декодирования изображения с предсказанием информации движения между уровнями в соответствии со схемой сжатия информации движения
KR100727989B1 (ko) 동영상 부호화시의 인터 모드 결정 방법 및 장치
CN101107861B (zh) 重叠平滑与环路内解块之分段处理
US6757330B1 (en) Efficient implementation of half-pixel motion prediction
CN115243051B (zh) 用于运动向量修正的受限存储器访问窗口
RU2536366C2 (ru) Способ и устройство кодирования видео с предсказанием
CN100435586C (zh) 用于预测运动的方法和设备
US8902994B1 (en) Deblocking filtering
US20090097557A1 (en) Image Encoding Apparatus, Image Encoding Method, Image Decoding Apparatus, and Image Decoding Method
CN102884793B (zh) 运动向量预测编码方法、运动向量预测解码方法、活动图像编码装置及活动图像解码装置
CN102742276B (zh) 运动向量预测编码方法、运动向量预测解码方法、活动图像编码装置、活动图像解码装置及其程序
CN105282558A (zh) 帧内像素预测方法、编码方法、解码方法及其装置
CN102369730A (zh) 压缩动态图像编码装置、压缩动态图像解码装置、压缩动态图像编码方法及压缩动态图像解码方法
CN101540911A (zh) 产生图像数据流的方法和设备及重建图像的方法和设备
CN101472176A (zh) 基于边界强度因子进行去块效应滤波的解码方法和装置
WO2022067805A1 (zh) 图像预测方法、编码器、解码器以及计算机存储介质
CN1968420B (zh) 应用于影像译码器与编码器的影像处理方法
CN102238386A (zh) 画面序列编码与重构方法、序列的编码数据流
CN114531596A (zh) 图像处理方法和装置
CN114762331A (zh) 视频编解码方法、装置、可移动平台和存储介质
KR100912209B1 (ko) 계층적 움직임 추정장치 및 방법
CN106063268A (zh) 将视频数据从h.264转码成h.265的方法和设备
JP4383367B2 (ja) 動きベクトル検出装置
KR100899658B1 (ko) 고속 동작을 위한 mpeg2/h.264 디지털 비디오트랜스코딩 시스템 및 방법
WO2022246809A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质

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
LAPS Lapse due to unpaid annual fee