KR20090065195A - 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치 - Google Patents

동영상 부호화를 위한 미세 움직임 추정 방법 및 장치 Download PDF

Info

Publication number
KR20090065195A
KR20090065195A KR1020070132665A KR20070132665A KR20090065195A KR 20090065195 A KR20090065195 A KR 20090065195A KR 1020070132665 A KR1020070132665 A KR 1020070132665A KR 20070132665 A KR20070132665 A KR 20070132665A KR 20090065195 A KR20090065195 A KR 20090065195A
Authority
KR
South Korea
Prior art keywords
pixel
unit
pixels
buffer
motion
Prior art date
Application number
KR1020070132665A
Other languages
English (en)
Other versions
KR100926752B1 (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 KR1020070132665A priority Critical patent/KR100926752B1/ko
Priority to EP08161800.1A priority patent/EP2076050B1/en
Priority to US12/191,733 priority patent/US8139643B2/en
Publication of KR20090065195A publication Critical patent/KR20090065195A/ko
Application granted granted Critical
Publication of KR100926752B1 publication Critical patent/KR100926752B1/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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

Landscapes

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

Abstract

본 발명은 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호를 이용하여 1화소 단위 화소를 저장하는 1화소 단위 화소 버퍼, 상기 현재 프레임의 매크로 블록 및 상기 1화소 단위 화소 버퍼에 저장된 화소에 상응하여 1화소 단위 모션 벡터 및 최소 비용을 계산하는 1화소 추정부, 상기 1화소 단위 화소 버퍼에 저장된 화소를 이용하여 1/2화소 단위 움직임 보간을 수행하는 1/2화소 보간부 및 상기 1/2화소 보간된 화소를 저장하는 1/2화소 버퍼, 상기 1/2화소 버퍼에 저장된 화소, 상기 1화소 추정부에서 계산된 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/2화소 단위 모션 벡터 및 최소 비용을 계산하는 1/2화소 추정부, 상기 1/2화소 버퍼에 저장된 화소 및 상기 1화소 버퍼에 저장된 화소를 이용하여 1/4 화소 단위 움직임 보간을 수행하는 1/4화소 보간부 및 상기 1/4화소 보간된 화소를 저장하는 1/4화소 버퍼 및 상기 1/4화소 버퍼에 저장된 화소, 상기 1/2화소 추정부에서 계산된 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/4화소 단위 모션 벡터 및 최소 비용을 계산하는 1/4화소 추정부를 포함하는 동영상 부호화에서 움직임 추정 장치를 제공할 수 있다.
H.264, 움직임 추정, 움직임 보상

Description

동영상 부호화를 위한 미세 움직임 추정 방법 및 장치{Apparatus and Method for fine motion estimation for moving picture coding}
본 발명은 동영상 부호화를 위한 움직임 추정 방법 및 장치에 관한 것이다. 특히 본 발명은 H.264 동영상 부호화를 위하여 실행되는 움직임 추정 방법에서 프로세서가 효율적으로 동작하기 위한 움직임 추정 방법 및 장치에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-026-01, 과제명: MPCore 플랫폼 기반 모바일 멀티미디어 SoC]
국제 비디오 부호화 표준기관인 ITU-T와 ISO가 함께 JVT를 구성하고 H.264를 발표하였다. H.264표준은 기존의 비디오 부호화 방식들과 마찬가지로, 이미 부호화된 이전 프레임으로부터의 움직임을 추정(Motion Estimation)하여 추정신호를 구성하고, 추정오류 신호를 움직임 보상(Motion Compensation)과 DCT 변환 방법을 혼합하여 구성한다. 이기서 H.264 표준에서는 압축 성능을 높이기 위해 기존의 방식에 비해 더 작은 블록 사이즈인 4x4 블록 단위까지 움직임 추정을 수행하고, 1/4 화소 단위까지 움직임 보정을 수행한다. 이러한 기술들을 기반으로 H.264 비디오 부호화 표준은 기존의 비디오 부호화 표준인 MPEG-4 ASP에 비하여 2배의 압축성능을 가지게 되었다. 그리하여 다양한 멀티미디어 통신 서비스에 사용될 핵심 기술로 그 응용이 기대되고 있고 H.264 비디오 코덱을 이용한 비디오 데이터를 압축하는 기술과 성능 향상을 위한 연구가 활발히 되고 있다.
그러나 H.264 코덱 표준 부호화기술은 구현시 요구되는 메모리 대역폭과 연산의 복잡도가 높기 때문에 실시간 응용에 적용하는데 어려움이 있다. 특히 기존의 1/2 화소 단위보다 복잡도가 높은 1/4 화소 단위의 움직임 추정을 수행함으로 인해 효율적인 화소 보간 방식과 움직임 추정 방식이 요구되었다.
본 발명은 동영상 부호화를 위한 움직임 추정 방법 및 장치를 제공하는 것을 목적으로 한다.
또한 본 발명은 H.264 동영상 부호화시 1/4 단위로 보간된 화소를 이용하여 움직임 추정을 할 때 계층적 움직임 추정 알고리즘을 고려한 설계에서 1 단위와 1/2 단위, 1/4단위 움직임 추정 및 추정에 효율적인 동영상 부호화를 위한 움직임 추정 방법 및 장치를 제공하는 것을 목적으로 한다.
상술한 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면, 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호를 이용하여 1화소 단위 화소를 저장하는 1화소 단위 화소 버퍼, 상기 현재 프레임의 매크로 블록 및 상기 1화소 단위 화소 버퍼에 저장된 화소에 상응하여 1화소 단위 모션 벡터 및 최소 비용을 계산하는 1화소 추정부, 상기 1화소 단위 화소 버퍼에 저장된 화소를 이용하여 1/2화소 단위 움직임 보간을 수행하는 1/2화소 보간부 및 상기 1/2화소 보간된 화소를 저장하는 1/2화소 버퍼, 상기 1/2화소 버퍼에 저장된 화소, 상기 1화소 추정부에서 계산된 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/2화소 단위 모션 벡터 및 최소 비용을 계산하는 1/2화소 추정부, 상기 1/2화소 버퍼에 저장된 화소 및 상기 1화소 버퍼에 저장된 화소를 이용하여 1/4 화소 단위 움직임 보간을 수행하는 1/4화소 보간부 및 상기 1/4화소 보간된 화소를 저장하는 1/4화소 버퍼 및 상기 1/4화소 버퍼에 저장된 화소, 상기 1/2화소 추정부에서 계산된 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/4화소 단위 모션 벡터 및 최소 비용을 계산하는 1/4화소 추정부를 포함하는 동영상 부호화에서 움직임 추정 장치를 제공할 수 있다.
바람직한 실시예에 있어서, 상기 단위 화소 버퍼는 물리적으로 단일 메모리로 구성되고, 24x24개의 화소를 저장 할 수 있는 것을 특징으로 할 수 있다. 또한, 상기 1/2 화소 버퍼는 물리적으로 분리된 3개의 메모리로 구성되고 각각 17x16, 16x17 및 17x17개의 화소를 저장할 수 있되, 상기 단위 화소 버퍼에 포함된 화소 중 상기 1화소 추정부에서 결정된 화소에 상응하여 1/2 화소 보간된 화소를 저장하는 것을 특징으로 할 수 있다.
또한,상기 1/2 화소 버퍼는 물리적으로 분리된 3개의 메모리로 구성되며, 상기 단위 화소 버퍼에 포함된 화소 중 상기 1화소 추정부에서 결정된 화소에 상응하여 1/2 화소 보간된 화소를 저장하는 것을 특징으로 할 수 있다. 또한, 상기 1/2화소 보간된 화소가 차지하는 검색 창상의 위치는 상기 1화소 추정부에서 결정된 움직임 추정 벡터를 기준으로 좌측으로 1/2화소 단위로 이동된 지점, 상단으로 1/2화소 단위로 이동된 지점 및 좌측 및 상단 모두로 1/2화소 단위로 이동된 지점으로부터 1 화소 단위마다 위치하되, 각각 17x16, 16x17 및 17x17개인 것을 특징으로 할 수 있다.
또한, 상기 3개의 메모리는 상기 1화소 추정부에서 결정된 화소가 검색 창(Search Window)상에서 차지하는 위치를 기준으로 좌측으로 1/2화소 단위로 이동된 지점으로부터 17x16 개의 화소를 저장하는 메모리, 상기 1화소 추정부에서 결정된 화소가 검색 창(Search Window)상에서 차지하는 위치를 기준으로 상단으로 1/2화소 단위로 이동된 지점으로부터 16x17 개의 화소를 저장하는 메모리 및 상기 1화소 추정부에서 결정된 화소가 검색 창(Search Window)상에서 차지하는 위치를 기준으로 상단 및 좌측으로 모두 1/2화소 단위로 이동된 지점으로부터 개의 17x17 화소를 저장하는 메모리를 포함하는 것을 특징으로 할 수 있다.
또한,상기 1/4 화소 버퍼는 물리적으로 분리된 8개의 메모리로 구성되고 각각 16x16개의 화소를 저장할 수 있되, 상기 1/2화소 버퍼에 포함된 화소 중 상기 1/2화소 추정부에서 결정된 화소에 상응하여 1/4 화소 보간된 화소를 저장하는 것을 특징으로 할 수 있다. 또한, 상기 1/4화소 보간된 화소가 차지하는 검색 창상의 위치는 상기 1/2화소 추정부에서 결정된 화소가 검색창에서 차지하는 위치를 중심으로 3x3 블록에 포함되는 외곽 8개의 화소로부터 1화소 단위 마다 위치하되, 각각 16x16개인 것을 특징으로 할 수 있다.
또한, 상기 1/2화소 추정부에서 결정된 화소가 검색 창상에서 차지하는 위치를 중심으로 설정한 3x3 블록에 포함되는 외곽 8개의 지점으로부터 각각 16x16 화소를 저장하되, 상기 각 메모리는 상기 외곽 8개의 지점 중 한 지점으로부터 계산되는 화소값을 저장하는 것을 특징으로 할 수 있다.
본 발명의 다른 일 측면을 참조하면, 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호 매크로 블록을 이용하여 단위 화소를 저장하는 단계, 상기 저장된 1화소 단위 화소 및 상기 현재 프레임의 매크로 블록에 상응하여 1화소 단위 모션 벡터 및 최소 비용을 계산하는 단계, 상기 단위 화소를 이용하여 1/2화소 단위로 움직임을 보간하는 단계, 상기 1/2화소 단위로 보간된 화소를 저장하는 단계, 상기 1/2화소 단위로 보간된 화소, 상기 1화소 단위 화소 단위로 계산된 최소 비용 및 모션 벡터 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/2화소 단위로 모션 벡터 및 최소 비용을 계산하는 단계, 상기 1/2화소 단위로 보간된 화소를 이용하여 1/4화소 단위로 움직임을 보간하는 단계, 상기 1/4화소 단위로 보간된 화소를 저장하는 단계 및 상기 1/4화소 단위로 보간된 화소, 상기 1/2 화소 단위로 계산된 최소 비용 및 모션 벡터 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/4화소 단위로 모션 벡터 및 최소 비용을 계산하는 단계를 포함하는 동영상 부호화에서 움직임 추정 방법을 제공할 수 있다.
바람직한 실시예에 있어서, 상기 1/2화소 보간된 화소가 차지하는 검색 창상의 위치는 상기 1화소 추정부에서 결정된 움직임 추정 벡터를 기준으로 좌측으로 1/2화소 단위로 이동된 지점, 상단으로 1/2화소 단위로 이동된 지점 및 좌측 및 상단 모두로 1/2화소 단위로 이동된 지점으로부터 1 화소 단위마다 위치하되, 각각 17x16, 16x17 및 17x17개인 것을 특징으로 할 수 있다. 또한, 상기 1/4화소 보간된 화소가 차지하는 검색 창상의 위치는 상기 1/2화소 추정부에서 결정된 화소가 검색창에서 차지하는 위치를 중심으로 3x3 블록에 포함되는 외곽 8개의 화소로부터 1화소 단위 마다 위치하되, 각각 16x16개인 것을 특징으로 할 수 있다.
본 발명에 따르면 동영상 부호화를 위한 움직임 추정 방법 및 장치를 제공할 수 있다.
또한 본 발명에 따르면 H.264 동영상 부호화시 1/4 단위로 보간된 화소를 이용하여 움직임 추정을 할 때 계층적 움직임 추정 알고리즘을 고려한 설계에서 1 단위와 1/2 단위, 1/4단위 움직임 추정 및 추정에 효율적인 동영상 부호화를 위한 움직임 추정 방법 및 장치를 제공할 수 있다.
이하 첨부된 도면을 참조하여 본 발명에 따른 동영상 부호화를 위한 움직임 추정 방법 및 장치에 대하여 상세히 설명한다.
본 도면의 설명에서 화점은 본 명세서에서 임의로 정의한 표현으로 매크로 블록의 1화소를 4 화점으로 정의한다. 즉 4 화점은 1화소를 구성한다.
도 1은 본 발명이 적용되는 H.264 부호화 장치를 전체적으로 설명하는 구성도이다.
도 1을 참조하면 본 발명이 적용되는 H.264 부호화 장치는 양자화부(101), 역양자화부(103), 엔트로피 부호화부(105), 블록 해제부(107), 참조 프레임 재현부(109), 움직임 보상부(111), 움직임 추정부(113) 및 인트라 예측부(115)를 포함 한다.
양자화부(101)는 외부에서 입력되는 매크로 블록을 소정 방식에 따라 변환한 후 양자화하는 역할을 담당한다. 이러한 양자화부(101)에서 양자화하는 대표적인 영상 변환 기법으로는 DCT(Discrete Cosine Transform)이 있다.
역양자화부(103)는 양자화부(101)로부터 변환 후 양자화된 영상 데이터를 입력받아 역양자화 및 역변환하는 역할을 담당한다.
엔트로피 부호화부(105)는 최종 h.264 부호화 작업이 종료된 최종 매크로 블록을 엔트로피 부호화하여 출력 비트 스트림을 생성하는 역할을 담당한다.
블록 해제부(107) 역양자화된 매크로 블록의 블록을 해제하여 자연스러운 화상을 제공하는 역할을 담당한다.
참조 프레임 재현부(109)는 상기 블록 해제부(107)로부터 입력받은 화상을 이용하여 다수의 참조 프레임 화상을 생성하고 저장하는 역할을 담당한다. 이러한 참조 프레임은 움직임 추정이나 움직임 보상을 할 때 참조 화면으로 사용되는 복수의 프레임 화상이다.
움직임 보상부(111)는 상기 참조 프레임 재현부(109)에서 저장된 참조 프레임 및 움직임 추정부(113)에서 추정된 모션 벡터 및 비용값을 기준으로 매크로 블록을 보상하는 역할을 담당한다.
움직임 추정부(113)는 상기 참조 프레임 재현부(109)에서 저장된 참조 프레임을 이용하여 현재 매크로 블록의 움직임을 추정하여 그 모션 벡터 및 비용을 계산하는 역할을 담당한다. 이러한 움직임 추정부는 기존의 MPEG 방식과 달리 1/4 화 소 단위의 움직임까지 추정하므로 계산이 매우 많고 복잡하다. 특히 상기 움직임 추정부(113)에서 움직임을 추정하는 방법은 본 발명의 핵심적인 부분으로 이하의 도면에서 더욱 상세히 설명하도록 한다.
인트라 예측부(115)는 기 참조 프레임 재현부(109)에서 저장된 참조 프레임을 이용하여 매크로 블록 내의 예측 부호화 즉 인트라 예측을 수행하는 역할을 담당한다.
도 2는 본 발명에 따른 움직임 추정부의 구조를 설명하는 도면이다.
도 2를 참조하면 본 발명에 따른 움직임 추정부(220)는 단위 화소 색도 버퍼(201), 단위 화소 버퍼(203), 현재 프레임 매크로 버퍼(205), 1/2 화소 보간(interpolation)부(207), 1/2 화소 버퍼(209), 1 화소 추정부(211), 1/2 화소 추정부(213), 1/4 화소 보간부(215), 1/4 화소 버퍼(217), 1/4 색도 화소 보간부(219), 1/4 색도 화소 버퍼(221) 및 1/4 화소 추정부(223)를 포함한다.
움직임 추정부(220)는 참조 프레임 재현부에 포함된 참조 프레임 및 현재 프레임을 모두 저장하고 있는 메모리(210)로부터 필요한 매크로 블록의 정보를 수신하여 1/4 화소 단위로 움직임을 추정하여 그에 따른 모션 벡터 및 비용값을 움직임 보상부(230)로 전달하고, 그 값을 받은 움직임 보상부(203)에서는 움직임 보상 블록(225)에서 움직임을 보상하여 움직임 보상 매크로 버퍼(227)에서 보상된 매크로 블록을 저장한다.
이러한 움직임 추정부(220)에서 단위 화소 색도 버퍼(201)는 움직임 보상할 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 매크로 블록에서 색도(U,V) 값을 따로 저장한 매크로 블록을 1화소 단위로 저장하는 버퍼이다.
단위 화소 버퍼(203)는 움직임 보상할 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 매크로 블록에서 1화소 단위로 저장하는 버퍼이다.
현재 프레임 매크로 버퍼(205)는 메모리(210)에 존재하는 현재 프레임의 화소 값 중에서 실제로 현재 연산되는 매크로 블록의 값만을 저장하는 버퍼이다.
1/2 화소 보간부(207)는 상기 단위 화소 버퍼(203)에서 저장된 1화소 보간된 값을 이용하여 1/2 화소 보간을 수행하는 역할을 담당한다. 이러한 1/2 화소 보간에 대한 설명은 다음에 자세히 하도록 한다.
1/2 화소 버퍼(209)는 상기 1/2 화소 보간된 결과 화소값을 저장하는 역할을 담당한다. 이러한 1/2 화소 버퍼(209)는 물리적으로 3개의 메모리로 구성되어 각 메모리에 동시에 접근이 가능할 수 있도록 구성된다.
1 화소 추정부(211)는 상기의 단위 화소 버퍼(203) 및 현재 프레임 매크로 버퍼(205)에 저장된 값을 이용하여 현재 매크로 블록을 1화소 단위로 추정하는 역할을 담당한다. 1화소 단위 추정이란 매크로 블록에서 4화점 단위로 참조 프레임의 매크로 블록과 현재 프레임의 매크로 블록의 이동 방향 및 이동 정도를 계산하는 것을 말한다. 여기서 비용(cost)이 가장 적은 값 및 그때의 모션 벡터가 결정된다.
1/2 화소 추정부(213)는 상기 1/2 화소 버퍼(209)에 저장된 값, 현재 프레임 매크로 버퍼(205)에 저장된 값 및 1화소 추정부에서 추정한 값을 이용하여 현재 매크로 블록을 1/2화소 단위로 추정하는 역할을 담당한다.
1/4 화소 보간부(215)는 상기 1/2 화소 버퍼(209)에서 저장된 1/2화소 보간된 값을 이용하여 1/4 화소 보간을 수행하는 역할을 담당한다. 이러한 1/4 화소 보간에 대한 설명은 다음에 자세히 하도록 한다.
1/4 화소 버퍼(217)는 상기 1/4 화소 보간된 결과 화소값을 저장하는 역할을 담당한다. 이러한 1/4 화소 버퍼(217)는 물리적으로 8개의 메모리로 구성되어 각 메모리에 동시에 접근이 가능할 수 있도록 구성된다.
1/4 색도 화소 보간부(219)는 상기 단위 화소 색도 버퍼(201)에 저장된 값을 이용하여 1/4 화소 단위로 색도 화소를 보간하는 역할을 담당한다.
1/4 색도 화소 버퍼(221)는 상기 1/4 색도 화소 보간부(219)에서 보간된 값을 저장하는 역할을 담당한다.
1/4 화소 추정부(223)는 상기 1/4 화소 버퍼(217)에 저장된 값, 1/2 화소 추정부에서 추정된 값(213) 및 상기 현재 프레임 매크로 버퍼(205)에 저장된 값을 이용하여 1/4화소 단위로 현재 매크로 블록을 추정하는 역할을 담당한다.
이러한 구성으로 이루어지는 움직임 추정부(220)는 1화소 단위 값, 1/2 화소 단위로 보간된 값 및 1/4 화소 단위로 보간된 값이 단계적으로 각각 다른 버퍼에 저장되고 각 버퍼는 32 비트씩 화소를 저장하기 때문에, 메모리의 참조 프레임의 검색창(Search Window)에서 직접 추정 값을 연산하는 것 보다 빠르고 효율적인 추정 연산이 가능하다.
도 3은 본 발명이 적용되는 휘도 움직임 추정을 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명에서 적용되는 휘도 움직임 추정은 현재 입력되는 프레임의 매크로 블록(300) 및 과거의 복수의 프레임으로부터 설정되는 참조 프레임의 매크로 블록(310)과의 차이 값(Δx,Δy)을 이용하여 움직임 벡터 및 그 비용을 계산하는 방식이다. 이러한 움직임 추정이 가능한 경우 움직임을 추정한 값을 보상한 프레임 과 그 움직임의 차이 값을 나타내는 움직임 벡터만을 전송하면 연속적인 화면의 구성이 가능하여 동영상 신호의 크기를 크게 줄일 수 있다.
여기서 움직임 추정은 상기 현재 프레임 매크로 블록(300)과 참조 프레임 매크로 블록(310)의 화소의 절대 값의 차를 구하여 그 비용을 계산하고, 참조 프레임의 검색 창 과 현재 프레임 매크로 블록(300)과의 가장 적은 비용을 가지는 화소 지점(Δx,Δy)을 움직임 벡터로 정의할 수 있다.
이러한 움직임 벡터 및 비용값은
Motion Vector = (Δx,Δy)MinCost
MINCOST = MIN{Cost(Δx,Δy)}
단, Cost(Δx,Δy) =
Figure 112007090740797-PAT00001
Figure 112007090740797-PAT00002
로 계산될 수 있다. 여기서 Luma는 휘도를 나타낸다.
도 4는 본 발명이 적용되는 색도 보간 방식을 설명하기 위한 도면이다.
도 4를 참조하면, 본 발명에서 적용되는 색도 보간 방식은 상기 대문자로 표시되는 A,B,C,D 화소에서 보간되는 화소가 지점 A로부터 dx 및 dy 만큼 이동된 지점 a 라고 하면,
a = {(4-dx)(4-dy)A+dx(4-dy)B+(4-dx)dyC+dxdyD+16}/32
단 A = (xa , ya), a = (xa+dx , ya+dy)
로서 계산될 수 있다.
이러한 방식으로 dx 및 dy의 값에 따라서 색도 매크로 블록의 값을 보간할 수 있다.
도 5는 본 발명이 적용되는 휘도 신호의 보간 위치를 참조 프레임 내의 검색창에서 나타내는 도면이다.
도 5를 참조하면, 상기 도면에서 원 모양으로 지정되는 화소 지점(501, 503)은 16x16 매크로 블록에서 1 화소 단위 지점을 나타낸다. 이러한 1화소 단위 값은 도면에서 확인 할 수 있는 바와 같이 참조 프레임의 매크로 블록에서 4칸마다 하나씩 결정되는 값이다. 이 때 매크로 블록에서 1칸을 1화점이라고 지칭하기로 한다.
이렇게 1화소 저장을 하면, 그 값을 이용해서 1화소 단위 움직임을 추정하고 그에 따라 모션 벡터가 결정된다.
그렇게 결정된 모션 벡터를 A(501)이라 하면 1/2 화소 단위 보간은 상기 A(501) 화소 지점을 기준으로 1/2 화소 단위 즉 매크로 블록에서 A(501) 화소 지점을 기준으로 2 화점 단위로 떨어진 5x5 블록에서 외각 8개의 지점(511, 513)을 1/2 화소 단위 움직임 추정 벡터 후보로 하게 된다.
이렇게 설정된 각 지점의 휘도 값은 상기 각 지점의 휘도 값이 b라고 하면
b = (E-5×F+20×G+20×H+5×I+J+16)/32
단 E,F,G,H,I,J는 수평으로 나열된 1 화소 단위의 휘도 값 및 b 값은 G,H 화소 사이의 1/2 화소 단위 휘도 값으로서 계산된다.
이러한 방식으로 계산하여 상기 1/2 화소 단위 보간된 휘도값이 상기 참조번호 513, 511 위치에 적용되고, 이렇게 보간된 값을 이용하여 1/2 화소 단위 움직임 추정을 수행하면, 상기 8개의 값 중에서 1값이 모션 벡터로 설정되는 예를 들어 본다.
이렇게 모션 벡터로 설정되는 값이 a(511)이라면, 1/4 화소 단위 보간은 상기 a(501) 화소 지점을 기준으로 1/4 화소 단위 즉 매크로 블록에서 a(511) 화소 지점을 기준으로 1 화점 단위로 떨어진 3x3 블록에서 외각 8개의 지점(521, 523)을 1/4 화소 단위 움직임 추정 벡터 후보로 하게 된다.
이렇게 지정되는 위치의 값은
a = (G+b+1)/2
단 a 는 G 와 b 사이의 1/4 화소 단위의 휘도값이고, G는 단위 화소 보간된 값이고 b는 1/2 화소 보간된 값으로서 계산된다.
도 6은 본 발명이 적용되는 휘도 신호의 보간 값을 계산하는 경우 프로세스을 나타내는 도면이다.
도 6을 참조하면, 상기 도 5의 설명에서 확인할 수 있는 바와 같이, 각 보간 값들을 계산할 때는 4 화점 단위로 읽히고 저장이 됨을 알 수 있다.
예를 들어 1화소 단위 경우 참조 프레임 매크로 블록에서 4 화점마다 하나씩 선택하여 설정되고 그 설정된 값이 1/2 화소 단위 보간에서 동일하게 사용된다.
그러한 경우 참조 프레임이 저장되는 메모리는 상기 601에서와 같은 메모리 맵을 가질 것이다. 즉 각 화점 단위로 각각 다른 값이 설정되어 있다. 이러한 경우 일반적인 32 비트 환경에서 동작하므로 상기 각 각 화점의 휘도 값은 8비트의 값을 가지므로 한번의 프로세스에서 얻는 화점은 4화점이 될 것이다.
그렇게 되면 1/2 화소 단위 보간을 수행할 경우 상기 601의 메모리에서 수행한다면 상기 603의 방식과 같이 상기 601의 화점 값을 4개 단위로 한번씩 읽어서 1 화소 단위 값을 읽은 다음, 다시 그 값을 이용하여 1/2 화소 단위 보간을 수행한다. 즉, 상기 도면 5의 수식에서 살펴보면 b 값을 결정하기 위해서는 우선 E, F, G, H, I, J 값을 알아야 하는데 이러한 값을 알기위해서는 E 값을 찾기 위해서 1번의 읽기 동작이 필요하고, F 값까지 찾기 위해서는 2번의 읽기 동작이 필요한 것이 되어 모두 6 번의 프로세서 동작이 필요하다.
그러나 본 발명에 의하면, 우선 1 화소 단위 보간 작업을 수행할 경우에 상기 프로세서의 단위 동작인 4 화점 단위로 보간 결과 값을 묶어서 버퍼(605)에 저장을 한다. 이렇게 중간 값들을 버퍼에 따로 저장한다면 그 다음 1/2 화소 단위 보간을 할 경우에 상기의 예시에서 E, F, G, H, I, J 값은 2번의 읽기 동작하면 결정된다. 또한 1화소 단위 추정을 수행할 경우에도 동일하게 4 화점 단위로 (Δx,Δy) 값을 계산해야 하는데 이러한 경우에도 상기와 같은 버퍼를 이용하는 경우 훨씬 더 효율적인 계산이 가능하다.
도 7은 본 발명의 일 실시예에 따른 참조 프레임 재현부에 저장되는 1/4 화 소 단위 보간을 끝낸 참조 프레임의 검색창의 일부를 나타낸 도면이다.
상기 도 7의 화면의 화점에 표현된 문자 및 숫자들은 상기 도 8, 도 9 및 도 10에서 동일하게 사용되어 설명될 것이다.
도 7에서 4 화점 단위로 표시되는 영문 대문자(701)들은 1 화소 단위 값이다. 또한 영문 소문자(703)들은 1/2 화소 단위 보간하여 결정되는 값이며, 숫자(705)들은 1/4 단위 보간하여 결정되는 값이다.
도 8, 도9 및 도 10은 본 발명의 일 실시예에 따른 1 화소 단위 값 및, 1/2 화소 및 1/4 화소 단위 보간된 값이 저장되는 버퍼의 메모리 맵을 나타내는 도면이다.
도 8을 참조하면 상기 도 8에서 저장되는 값들은 모두 상기 도 7에서 표현되는 영문 대문자 값이다. 이러한 메모리 맵으로 값이 단위 화소 버퍼에 설정되면 1 화소 단위 추정을 연산할 경우에는 상기 버퍼에 설정된 1화소 값만이 필요하므로, 참조 프레임의 검색창을 전체적으로 조회할 필요 없이 상기 단위 화소 버퍼의 값만을 조회할 수 있어 프로세서의 동작이 매우 효율적으로 수행될 수 있다.
이러한 1화소 단위 값은 단위 화소 버퍼에 저장될 수 있는데, 아래와 같은 수식에서 결정되는 화소로 총 24x24개가 저장된다.
(Xcurrent _ MB + Xime _ mv - 4 + i, Ycurrent _ MB + Yime _ mv - 4 + j),
단, i,j=0, 23인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(Xime _ mv, Yime _ mv) = IME(Intra motion estimation) 단계에서 추정된 화소 지점
도 9를 참조하면, 상기 도 9에서 저장되는 값들은 1화도 단위 움직임 벡터가 G라고 가정한 경우에 저장되는 영문 소문자 값이다. 이러한 메모리 맵으로 값이 1/2 화소 버퍼에 설정되면 1/2 화소 단위 추정을 연산할 경우에는 상기 버퍼에 설정된 1/2 화소 보간된 값만이 필요하므로, 참조 프레임의 검색창을 전체적으로 조회할 필요 없이 상기 1/2 화소 버퍼의 값만을 조회할 수 있어 프로세서의 동작이 매우 효율적으로 수행될 수 있다. 특히 1/2 화도 단위 추정에서 비용을 계산할 경우에는 상기 도면에서 1화소 단위 움직임 벡터가 G 이므로 a,b,c,i,j,m,n,o 값에 따른 비용을 각각 계산하여야하는데 이러한 경우 독립적인 3개의 메모리 버퍼가 존재하는 경우 a, c, m, o를 포함하는 비용 연산과 b, n를 포함하는 비용 연산 그리고, i, j를 포함하는 비용 연산을 동시에 할 수 있다.
이러한 1/2화소 단위 보간된 값은 1/2 화소 버퍼에 저장될 수 있는데, 아래와 같은 수식에서 결정되는 화소로 각각 17x16, 16x17 및 17x17개가 저장된다.
각 버퍼에 저장되는 화소는 다음과 같다.
1) 좌측으로 1/2화소 단위로 이동된 지점을 포함하는 화소들
(Xcurrent _ MB + X1pel _ mv - 0.5 + i, Ycurrent _ MB + Y1pel _ mv + j),
단, i=0, 15, j=0, 16 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1pel _ mv, Y1pel _ mv) = 1화소 추정부에서 계산된 움직임 추정 벡터
2) 상단으로 1/2화소 단위로 이동된 지점을 포함하는 화소들
(Xcurrent _ MB + X1pel _ mv + i, Ycurrent _ MB + Y1pel _ mv - 0.5 + j),
단, i,=0, 16, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1pel _ mv, Y1pel _ mv) = 1화소 추정부에서 계산된 움직임 추정 벡터
3) 좌측 및 상단 모두로 1/2화소 단위로 이동된 지점을 포함하는 화소들
(Xcurrent _ MB + X1pel _ mv - 0.5 + i, Ycurrent _ MB + Y1pel _ mv - 0.5 + j),
단, i,=0, 16, j=0, 16 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1pel _ mv, Y1pel _ mv) = 1화소 추정부에서 계산된 움직임 추정 벡터
도 10을 참조하면, 상기 도 10에서 저장되는 값들은 1/2화도 단위 움직임 벡터가 a라고 가정한 경우에 저장되는 숫자 값이다. 이러한 메모리 맵으로 값이 1/4 화소 버퍼에 설정되면 1/4 화소 단위 추정을 연산할 경우에는 상기 버퍼에 설정된 1/4 화소 보간된 값만이 필요하므로, 참조 프레임의 검색창을 전체적으로 조회할 필요 없이 상기 1/4 화소 버퍼의 값만을 조회할 수 있어 프로세서의 동작이 매우 효율적으로 수행될 수 있다. 특히 1/4 화소 단위 추정에서 비용을 계산할 경우에는 상기 도면에서 1/2화소 단위 움직임 벡터가 a 이므로 1,5,49,9,53,57,61,65 값에 따른 비용을 각각 계산하여야하는데 이러한 경우 각각의 화점을 포함하는 8개의 독립적인 메모리 버퍼가 존재해야 하여 각 화점을 포함하는 비용(Cost) 연산을 동시에 할 수 있다.
이러한 1/4화소 단위 보간된 값은 1/4 화소 버퍼에 저장될 수 있는데, 아래와 같은 수식에서 결정되는 화소로 16x16개 이다.
1) 상기 1/2화소 추정부에서 결정된 움직임벡터를 중심으로 좌표가 (-1/4, -1/4) 지점을 포함하는 화소들
(Xcurrent _ MB + X1 /2 pel _ mv - 0.25 + i , Ycurrent _ MB + Y1 /2 el _ mv - 0.25 + j),
단, i, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1 /2 pel _ mv, Y1 /2 el _ mv) = 1/2화소 추정부에서 계산된 움직임 추정 벡터
2) 상기 1/2화소 추정부에서 결정된 움직임벡터를 중심으로 좌표가 (0,-1/4) 지점을 포함하는 화소들
(Xcurrent _ MB + X1 /2 pel _ mv + i , Ycurrent _ MB + Y1 /2 el _ mv - 0.25 + j),
단, i, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1 /2 pel _ mv, Y1 /2 el _ mv) = 1/2화소 추정부에서 계산된 움직임 추정 벡터
3) 상기 1/2화소 추정부에서 결정된 움직임벡터를 중심으로 좌표가 (1/4, -1/4) 지점을 포함하는 화소들
(Xcurrent _ MB + X1 /2 pel _ mv + 0.25 + i , Ycurrent _ MB + Y1 /2 el _ mv - 0.25 + j),
단, i, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1 /2 pel _ mv, Y1 /2 el _ mv) = 1/2화소 추정부에서 계산된 움직임 추정 벡터
4) 상기 1/2화소 추정부에서 결정된 움직임벡터를 중심으로 좌표가 (-1/4, 0) 지점을 포함하는 화소들
(Xcurrent _ MB + X1 /2 pel _ mv - 0.25 + i , Ycurrent _ MB + Y1 /2 el _ mv + j),
단, i, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1 /2 pel _ mv, Y1 /2 el _ mv) = 1/2화소 추정부에서 계산된 움직임 추정 벡터
5) 상기 1/2화소 추정부에서 결정된 움직임벡터를 중심으로 좌표가 (1/4, 0) 지점을 포함하는 화소들
(Xcurrent _ MB + X1 /2 pel _ mv + 0.25 + i , Ycurrent _ MB + Y1 /2 el _ mv + j),
단, i, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1 /2 pel _ mv, Y1 /2 el _ mv) = 1/2화소 추정부에서 계산된 움직임 추정 벡터
6) 상기 1/2화소 추정부에서 결정된 움직임벡터를 중심으로 좌표가 (-1/4, 1/4) 지점을 포함하는 화소들
(Xcurrent _ MB + X1 /2 pel _ mv - 0.25 + i , Ycurrent _ MB + Y1 /2 el _ mv + 0.25 + j),
단, i, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1 /2 pel _ mv, Y1 /2 el _ mv) = 1/2화소 추정부에서 계산된 움직임 추정 벡터
7) 상기 1/2화소 추정부에서 결정된 움직임벡터를 중심으로 좌표가 (0,1/4) 지점을 포함하는 화소들
(Xcurrent _ MB + X1 /2 pel _ mv + i , Ycurrent _ MB + Y1 /2 el _ mv + 0.25 + j),
단, i, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1 /2 pel _ mv, Y1 /2 el _ mv) = 1/2화소 추정부에서 계산된 움직임 추정 벡터
8) 상기 1/2화소 추정부에서 결정된 움직임벡터를 중심으로 좌표가 (1/4, 1/4) 지점을 포함하는 화소들
(Xcurrent _ MB + X1 /2 pel _ mv + 0.25 + i , Ycurrent _ MB + Y1 /2 el _ mv + 0.25 + j),
단, i, j=0, 15 인 정수
(Xcurrent _ MB,Ycurrent _ MB) = 현재 매크로 블록 좌표
(X1 /2 pel _ mv, Y1 /2 el _ mv) = 1/2화소 추정부에서 계산된 움직임 추정 벡터
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.
도 1은 본 발명이 적용되는 H.264 부호화 장치를 전체적으로 설명하는 구성도.
도 2는 본 발명에 따른 움직임 추정부의 구조를 설명하는 도면.
도 3은 본 발명이 적용되는 휘도 움직임 추정을 설명하기 위한 도면.
도 4는 본 발명이 적용되는 색도 보간 방식을 설명하기 위한 도면.
도 5는 본 발명이 적용되는 휘도 신호의 보간 위치를 참조 프레임 내의 검색창에서 나타내는 도면.
도 6은 본 발명이 적용되는 휘도 신호의 보간 값을 계산하는 경우 프로세스의 효율을 나타내는 도면.
도 7은 본 발명의 일 실시예에 따른 참조 프레임 재현부에 저장되는 1/4 화소 단위 보간을 끝낸 참조 프레임의 검색창의 일부를 나타낸 도면.
도 8은 본 발명의 일 실시예에 따른 1 화소 단위 값이 저장되는 버퍼의 메모리 맵을 나타내는 도면.
도9는 본 발명의 일 실시예에 따른 1/2 화소 단위 보간된 값이 저장되는 버퍼의 메모리 맵을 나타내는 도면.
도 10은 본 발명의 일 실시예에 따른 1/4 화소 단위 보간된 값이 저장되는 버퍼의 메모리 맵을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
210 : 메모리 220 : 움직임 추정부
230 : 움직임 보상부 201 : 단위 화소 색도 버퍼
203 : 단위 화소 버퍼 205 : 현재 프레임 매크로 버퍼
207 : 1/2 화소 보간(interpolation)부 209 : 1/2 화소 버퍼
211 : 1 화소 추정부 213 : 1/2 화소 추정부
215 : 1/4 화소 보간부 217 : 1/4 화소 버퍼
219 : 1/4 색도 화소 보간부 221 : 1/4 색도 화소 버퍼
223 : 1/4 화소 추정부 225 : 움직임 보상 블록
227 : 움직임 보상 매크로 버퍼

Claims (12)

  1. 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호를 이용하여 1화소 단위 화소를 저장하는 1화소 단위 화소 버퍼;
    상기 현재 프레임의 매크로 블록 및 상기 1화소 단위 화소 버퍼에 저장된 화소에 상응하여 1화소 단위 모션 벡터 및 최소 비용을 계산하는 1화소 추정부;
    상기 1화소 단위 화소 버퍼에 저장된 화소를 이용하여 1/2화소 단위 움직임 보간을 수행하는 1/2화소 보간부 및 상기 1/2화소 보간된 화소를 저장하는 1/2화소 버퍼;
    상기 1/2화소 버퍼에 저장된 화소, 상기 1화소 추정부에서 계산된 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/2화소 단위 모션 벡터 및 최소 비용을 계산하는 1/2화소 추정부;
    상기 1/2화소 버퍼에 저장된 화소 및 상기 1화소 버퍼에 저장된 화소를 이용하여 1/4 화소 단위 움직임 보간을 수행하는 1/4화소 보간부 및 상기 1/4화소 보간된 화소를 저장하는 1/4화소 버퍼 및
    상기 1/4화소 버퍼에 저장된 화소, 상기 1/2화소 추정부에서 계산된 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/4화소 단위 모션 벡터 및 최소 비용을 계산하는 1/4화소 추정부
    를 포함하는 동영상 부호화에서 움직임 추정 장치.
  2. 제1항에 있어서,
    상기 단위 화소 버퍼는 물리적으로 단일 메모리로 구성되고, 24x24개의 화소를 저장 할 수 있는 것을 특징으로 하는 동영상 부호화에서 움직임 추정 장치.
  3. 제1항에 있어서,
    상기 1/2 화소 버퍼는 물리적으로 분리된 3개의 메모리로 구성되고 각각 17x16, 16x17 및 17x17개의 화소를 저장할 수 있되, 상기 단위 화소 버퍼에 포함된 화소 중 상기 1화소 추정부에서 결정된 화소에 상응하여 1/2 화소 보간된 화소를 저장하는 것을 특징으로 하는 동영상 부호화에서 움직임 추정 장치.
  4. 제1항에 있어서,
    상기 1/2 화소 버퍼는 물리적으로 분리된 3개의 메모리로 구성되며, 상기 단위 화소 버퍼에 포함된 화소 중 상기 1화소 추정부에서 결정된 화소에 상응하여 1/2 화소 보간된 화소를 저장하는 것을 특징으로 하는 동영상 부호화에서 움직임 추정 장치.
  5. 제1항에 있어서,
    상기 1/2화소 보간된 화소가 차지하는 검색 창상의 위치는 상기 1화소 추정부에서 결정된 움직임 추정 벡터를 기준으로 좌측으로 1/2화소 단위로 이동된 지점, 상단으로 1/2화소 단위로 이동된 지점 및 좌측 및 상단 모두로 1/2화소 단위로 이동된 지점으로부터 1 화소 단위마다 위치하되, 각각 17x16, 16x17 및 17x17개인 것을 특징으로 하는 동영상 부호화에서 움직임 추정 장치.
  6. 제4항에 있어서,
    상기 3개의 메모리는
    상기 1화소 추정부에서 결정된 화소가 검색 창(Search Window)상에서 차지하는 위치를 기준으로 좌측으로 1/2화소 단위로 이동된 지점으로부터 17x16 개의 화소를 저장하는 메모리;
    상기 1화소 추정부에서 결정된 화소가 검색 창(Search Window)상에서 차지하는 위치를 기준으로 상단으로 1/2화소 단위로 이동된 지점으로부터 16x17 개의 화소를 저장하는 메모리 및
    상기 1화소 추정부에서 결정된 화소가 검색 창(Search Window)상에서 차지하는 위치를 기준으로 상단 및 좌측으로 모두 1/2화소 단위로 이동된 지점으로부터 개의 17x17 화소를 저장하는 메모리를 포함하는 것을 특징으로 하는 동영상 부호화에서 움직임 추정 장치.
  7. 제1항에 있어서,
    상기 1/4 화소 버퍼는 물리적으로 분리된 8개의 메모리로 구성되고 각각 16x16개의 화소를 저장할 수 있되, 상기 1/2화소 버퍼에 포함된 화소 중 상기 1/2화소 추정부에서 결정된 화소에 상응하여 1/4 화소 보간된 화소를 저장하는 것을 특징으로 하는 동영상 부호화에서 움직임 추정 장치.
  8. 제1항에 있어서,
    상기 1/4화소 보간된 화소가 차지하는 검색 창상의 위치는 상기 1/2화소 추정부에서 결정된 화소가 검색창에서 차지하는 위치를 중심으로 3x3 블록에 포함되는 외곽 8개의 화소로부터 1화소 단위 마다 위치하되, 각각 16x16개인 것을 특징으로 하는 동영상 부호화에서 움직임 추정 장치.
  9. 제7항에 있어서,
    상기 8개의 메모리는
    상기 1/2화소 추정부에서 결정된 화소가 검색 창상에서 차지하는 위치를 중심으로 설정한 3x3 블록에 포함되는 외곽 8개의 지점으로부터 각각 16x16 화소를 저장하되, 상기 각 메모리는 상기 외곽 8개의 지점 중 한 지점으로부터 계산되는 화소값을 저장하는 것을 특징으로 하는 동영상 부호화에서 움직임 추정 장치.
  10. 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호 매크로 블록을 이용하여 단위 화소를 저장하는 단계;
    상기 저장된 1화소 단위 화소 및 상기 현재 프레임의 매크로 블록에 상응하여 1화소 단위 모션 벡터 및 최소 비용을 계산하는 단계;
    상기 단위 화소를 이용하여 1/2화소 단위로 움직임을 보간하는 단계;
    상기 1/2화소 단위로 보간된 화소를 저장하는 단계;
    상기 1/2화소 단위로 보간된 화소, 상기 1화소 단위 화소 단위로 계산된 최소 비용 및 모션 벡터 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/2화소 단위로 모션 벡터 및 최소 비용을 계산하는 단계;
    상기 1/2화소 단위로 보간된 화소를 이용하여 1/4화소 단위로 움직임을 보간하는 단계;
    상기 1/4화소 단위로 보간된 화소를 저장하는 단계 및
    상기 1/4화소 단위로 보간된 화소, 상기 1/2 화소 단위로 계산된 최소 비용 및 모션 벡터 값 및 상기 현재 프레임의 매크로 블록에 상응하여 1/4화소 단위로 모션 벡터 및 최소 비용을 계산하는 단계
    를 포함하는 동영상 부호화에서 움직임 추정 방법.
  11. 제10항에 있어서,
    상기 1/2화소 보간된 화소가 차지하는 검색 창상의 위치는 상기 1화소 추정부에서 결정된 움직임 추정 벡터를 기준으로 좌측으로 1/2화소 단위로 이동된 지점, 상단으로 1/2화소 단위로 이동된 지점 및 좌측 및 상단 모두로 1/2화소 단위로 이동된 지점으로부터 1 화소 단위마다 위치하되, 각각 17x16, 16x17 및 17x17개인 것을 특징으로 하는 동영상 부호화에서 움직임 추정 방법.
  12. 제10항에 있어서,
    상기 1/4화소 보간된 화소가 차지하는 검색 창상의 위치는 상기 1/2화소 추정부에서 결정된 화소가 검색창에서 차지하는 위치를 중심으로 3x3 블록에 포함되는 외곽 8개의 화소로부터 1화소 단위 마다 위치하되, 각각 16x16개인 것을 특징으로 하는 동영상 부호화에서 움직임 추정 방법.
KR1020070132665A 2007-12-17 2007-12-17 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치 KR100926752B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070132665A KR100926752B1 (ko) 2007-12-17 2007-12-17 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치
EP08161800.1A EP2076050B1 (en) 2007-12-17 2008-08-05 Motion estimation apparatus and method for moving picture coding
US12/191,733 US8139643B2 (en) 2007-12-17 2008-08-14 Motion estimation apparatus and method for moving picture coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070132665A KR100926752B1 (ko) 2007-12-17 2007-12-17 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090065195A true KR20090065195A (ko) 2009-06-22
KR100926752B1 KR100926752B1 (ko) 2009-11-16

Family

ID=40377678

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070132665A KR100926752B1 (ko) 2007-12-17 2007-12-17 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치

Country Status (3)

Country Link
US (1) US8139643B2 (ko)
EP (1) EP2076050B1 (ko)
KR (1) KR100926752B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120066305A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 비디오 움직임 예측 및 보상용 캐싱 장치 및 방법
PL2717574T3 (pl) * 2011-05-31 2021-09-13 JVC Kenwood Corporation Urządzenie do dekodowania ruchomego obrazu wizyjnego, sposób dekodowania ruchomego obrazu wizyjnego i program do dekodowania ruchomego obrazu wizyjnego
CN103139562B (zh) * 2011-11-30 2016-05-04 富士通株式会社 运动估计方法和装置
US20140355665A1 (en) * 2013-05-31 2014-12-04 Altera Corporation Adaptive Video Reference Frame Compression with Control Elements

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594813A (en) * 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
JPH07250328A (ja) * 1994-01-21 1995-09-26 Mitsubishi Electric Corp 動きベクトル検出装置
US7408988B2 (en) 2002-12-20 2008-08-05 Lsi Corporation Motion estimation engine with parallel interpolation and search hardware
KR100618910B1 (ko) 2004-04-03 2006-09-01 (주)씨앤에스 테크놀로지 최적화된 연산복잡도를 갖는 움직임 추정 장치 및 그 방법
US8018463B2 (en) * 2004-05-10 2011-09-13 Nvidia Corporation Processor for video data
US20060088104A1 (en) 2004-10-27 2006-04-27 Stephen Molloy Non-integer pixel sharing for video encoding
US7653132B2 (en) * 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
KR100734858B1 (ko) * 2005-12-07 2007-07-03 한국전자통신연구원 효율적인 1/4 화소 단위 움직임 예측을 위한 1/4 화소 단위메모리 인덱싱 방법
KR100801974B1 (ko) 2005-12-08 2008-02-12 한국전자통신연구원 저비용 움직임 추정 장치 및 움직임 추정 방법
US9319708B2 (en) * 2006-06-16 2016-04-19 Via Technologies, Inc. Systems and methods of improved motion estimation using a graphics processing unit
US20080260023A1 (en) * 2007-04-18 2008-10-23 Chih-Ta Star Sung Digital video encoding and decoding with refernecing frame buffer compression

Also Published As

Publication number Publication date
EP2076050A1 (en) 2009-07-01
US20090154564A1 (en) 2009-06-18
US8139643B2 (en) 2012-03-20
KR100926752B1 (ko) 2009-11-16
EP2076050B1 (en) 2018-08-01

Similar Documents

Publication Publication Date Title
JP6261660B2 (ja) 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
RU2317654C2 (ru) Способ интерполяции значений подпикселов
US11902563B2 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
KR100739281B1 (ko) 움직임 추정 방법 및 장치
EP1466477B1 (en) Coding dynamic filters
KR20110039516A (ko) 움직임 추정을 위한 방법, 시스템 및 애플리케이션
KR20110036886A (ko) 움직임 추정 반복 탐색의 개선 방법 및 시스템, 다음 탐색 영역의 중심점 결정 방법 및 시스템, 지역적 최소값의 회피 방법 및 시스템
KR100926752B1 (ko) 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치
KR101691380B1 (ko) 시프팅 매트릭스를 이용한 dct 기반의 부화소 단위 움직임 예측 방법
TW202029747A (zh) 對於視訊寫碼中最壞情況頻寬縮減之限制
JP2013098713A (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
KR100928272B1 (ko) 동영상 부호화를 위한 움직임 추정 방법 및 장치
JPH09261661A (ja) 2つの基準ピクチャから双方向コード化ピクチャを形成するための方法
CN111247804A (zh) 图像处理的方法与装置
KR19990038002A (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: 20121031

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131024

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141027

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151105

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171101

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181106

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191106

Year of fee payment: 11