KR101405913B1 - 블록 매칭 모션 평가에서 모션 벡터를 수정하기 위한시스템 및 방법 - Google Patents

블록 매칭 모션 평가에서 모션 벡터를 수정하기 위한시스템 및 방법 Download PDF

Info

Publication number
KR101405913B1
KR101405913B1 KR1020070118529A KR20070118529A KR101405913B1 KR 101405913 B1 KR101405913 B1 KR 101405913B1 KR 1020070118529 A KR1020070118529 A KR 1020070118529A KR 20070118529 A KR20070118529 A KR 20070118529A KR 101405913 B1 KR101405913 B1 KR 101405913B1
Authority
KR
South Korea
Prior art keywords
motion vector
frame
motion
video
block
Prior art date
Application number
KR1020070118529A
Other languages
English (en)
Other versions
KR20080112075A (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 삼성전자주식회사
Publication of KR20080112075A publication Critical patent/KR20080112075A/ko
Application granted granted Critical
Publication of KR101405913B1 publication Critical patent/KR101405913B1/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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

본 발명은 블록 매칭 모션 평가에서 모션 벡터를 수정하기 위한 시스템 및 방법에 관한 것이다. 본 발명에 의한 비디오 데이터 프로세싱 방법은 제 1 비디오 프레임 및 제 2 비디오 프레임을 수신하는 단계(여기서 비디오 프레임들은 화소들로 구성된 복수의 블록들을 포함하며); 제 1 프레임 및 제 2 프레임 간의 복수의 매칭 블록(matching block)들의 위치를 식별하는 모션 벡터 정보를 획득하는 단계; 제 1 프레임 내의 제 1 블록에 대한 제 1 모션 벡터와 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간 각도와 관련된 크기(measure)를 계산하는 단계(상기 제 2 블록은 제 1 모션 벡터에 의해 식별되는 제 2 프레임 내의 프레임 위치 주변의 제 1 프레임 내의 프레임 포지션에 위치한다.); 상기 계산된 각도 크기에 기초하여 제 1 및 제 2 모션 벡터들이 상충(conflicting)하는지 판단하는 단계; 및 만약 제 1 및 제 2 모션 벡터들이 상충하는 것으로 판단되는 경우 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상을 수정(modifying)하는 단계를 포함하는 것을 특징으로 한다.

Description

블록 매칭 모션 평가에서 모션 벡터를 수정하기 위한 시스템 및 방법{ System and method for correcting motion vectors in block matching motion estimation}
본 발명은 비디오 프로세싱에 관한 것으로, 특히 비디오 데이터의 재포맷(reformatting)에 사용되는 모션 정보를 수정하는 것에 관한 것이다.
멀티미디어 프로세싱 시스템들, 예를 들면 비디오 인코더들은 MPEG-x 및 H.26x 등의 국제 표준들에 기초한 인코딩 방식들을 이용하여 멀티미디어 데이터를 인코딩한다. 이러한 인코딩 방식들은 일반적으로 전송 및/또는 저장을 위해 멀티미디어 데이터를 압축하도록 되어 있다. 압축이란 넓게 보면 데이터로부터 중복된 부분을 제거하는 프로세스이다. 게다가 비디오 표시 시스템들은 다양한 목적을 위해 멀티미디어 데이터를 변환코딩(transcode) 또는 변환(transform)하기도 하는데 이러한 변환코딩 또는 변환의 목적은 NTSC, HDTV 또는 PAL 같은 디스플레이 표준과의 호환성을 확보하기 위한 목적, 인식된 모션의 흐림(blur)을 감소시키기 위해 프레임 레이트를 증가시키거나 디스플레이 장치의 프레임 레이트와는 다른 프레임 레이트를 갖는 콘텐츠의 부드러운 모션 묘사를 수행하기 목적 등이 있다. 이러한 변 환 코딩 방식은 프레임 레이트(frame rate) 변환, 역-인터레이싱(deinterlacing) 등을 위한 인코딩 방식과 유사한 기능을 수행한다.
비디오 신호는 일련의 사진들(pictures)로서 표현되는데 여기서 사진들이란 프레임들(하나의 완전한 사진)로 구성되거나 필드들(예:하나의 사진의 교번(alternating)하는 홀수 또는 짝수 라인들만의 필드들을 포함하는 인터레이스된 비디오 스트림)만으로 구성될 수 있다. 프레임이란 일반적으로 사진, 프레임 또는 필드를 가리키는 의미로 사용될 수 있다. 멀티미디어 프로세서들, 가령 비디오 인코더들은 블록들 또는, 예를 들면, 16X16 화소들로 구성된 매크로블록(macroblock)들로 분할함으로써 프레임을 인코딩할 수도 있다. 인코더는 각각의 매크로블록을 서브시스템블록(subblock)으로 다시 분할하기도 한다. 각각의 서브시스템블록은 부가적인 서브시스템블록들을 포함하기도 한다. 예를 들면 하나의 매크로블록의 서브시스템블록들은 16X8 및 8X16의 서브시스템블록들을 가질 수 있으며, 8X16 서브시스템블록들의 서브시스템블록들은 8X8 서브시스템블록들을 갖는 식으로 각 서브시스템블록은 더 작은 서브시스템블록들로 구성될 수 있다. 명세서 내의 문맥(context)에 따라, 블록이란 용어는 매크로블록 또는 서브시스템블록 중 어느 하나를 가리키거나 심지어 하나의 화소를 가리키는 것으로 쓰이게 된다.
비디오 시퀀스들(video sequences)은 수신 장치에 의해 압축된 포맷으로 수신된 후 수신 장치 내의 디코더에 의해 신장될(decompressed) 수 있다. 비디오 시퀀스는 또한 비압축된 상태로 수신될 수도 있다. 어떠한 경우이건 상기 비디오 시퀀스는 최소한 프레임 레이트, 수평 및 수직 화소 해상도에 의해 특징지어진다. 종 종 상기 수신 장치와 연관된 디스플레이 장치는 다른 프레임 레이트 및/또는 화소 해상도를 요구하기도 하고 하나 이상의 비디오 프레임들의 비디오 복원(reconstruction)을 수행할 수도 있다. 비디오 프레임들의 복원은 2 이상의 이미 수신한(또는 수신 및 신장된) 비디오 프레임들 사이에서 비디오 프레임을 평가하는 과정을 포함할 수도 있다. 복원은 모션 평가(motion estimation) 및 모션 보상(motion compensation)으로 알려진 테크닉들을 포함할 수 있다. 2 이상의 이미 수신한 비디오 프레임들 간에 매칭(matching)되는 비디오 프레임들의 부분들은 모션 벡터(motion vector)를 가지고 구별할 수 있다. 상기 모션 벡터는 모션 보상 과정에서 매칭되는 블록들의 상대적인 위치들을 포함한다. 이러한 매칭 블록들(matching blocks) 및 모션 벡터들은 모션 보상 과정에 의해 중간 프레임(intermediate frame)의 부분들을 복원하는데 이용된다.
프레임 레이트 변환, 역-인터레이싱 및 변환코딩은 일련의 프로세스들(processes)의 예들인데, 이 프로세스들이란 디코더 장치들이 이미 복원된 비디오 데이터에 기초하여 새로운 데이터를 생성하는 과정을 말한다. 그 밖에도 이러한 모션 보상 기법(techniques)은 새로 생성된 프레임들을 평가하기 위해 복원된 비디오 데이터는 물론 모션 벡터들 및 잔류 오류(residual error)와 같은 인코딩된 데이터를 이용하기도 한다.
배경(background)의 앞쪽의 사물들, 전경(foreground) 뒤쪽의 사물들 그리고 다른 사물들의 앞쪽 또는 뒤쪽의 사물들의 모션은 소위 폐색(occlusion)이라 일컬어지는 현상을 야기시킨다. 비디오 시퀀스에서 발생하는 폐색은 모든 모션 평가/보상 알고 리즘에 문제를 야기한다. 폐색은, 예를 들면, 하나의 사물에 의한 또 다른 사물의 중첩(covering)(여기서 배경은 사물로서 간주됨) 및 다른 사물의 동작에 기인한 하나의 사물의 중첩 해제(uncovering)를 포함한다. 전형적으로 폐색 영역 근처에서 평가된 모션 벡터들은 부정확하고 이러한 벡터들을 모션 보상을 위해 직접 사용할 경우 시각적 결함(visual artifacts)을 야기한다. 2 개의 프레임들 간 프레임 레이트 변환에 사용되는 부정확한 모션 벡터들은 특히 시각적 결함의 공통된 원인이 될 수 있다. 프레임 레이트 변환은 일반적으로 2 개의 프레임들 간 매칭 블록들을 식별해 주는 모션 벡터 정보를 이용한다. 이러한 모션 벡터들 및 매칭 블록들은 2 개의 프레임들 사이에서 다양한 위상(phase position)에 위치한 프레임의 부분들을 구성하기 위한 다양한 모션 보상 기법(schemes)에 의해 이용되고 있다. 이러한 모션 벡터들이 중간 프레임(intermediate frame)의 구성에 이용될 경우 2 개의 프레임들 간 부정확한 모션 벡터들의 식별 및 수정을 위한 테크닉들은 복잡하고 부정확할 수 있다.
본 발명이 해결하고자 하는 과제는 비디오 수신 장치가 수신한 비디오 데이터의 재포맷하는데 있어, 재포맷에 이용할 모션 정보의 오류를 수정하는 방법 및 장치를 제공하는데 있다.
본 발명에 의한 시스템 및 방법은 다양한 실시예들(aspects)을 가지므로 다음에 기재된 실시예들 중 어느 하나의 실시예만으로 본 발명의 바람직한 속성들을 전부 설명할 수는 없을 것이다. 이하 본 발명의 대표적인 특징들을 간단히 설명하기로 한다. 그러나 이러한 특징들이 특허청구범위에 의해 표현된 본 발명의 범위를 국한하는 것으로 해석되어서는 아니될 것이다.
당업자라면 이하의 설명, 특히 “발명의 상세한 설명”부분을 읽고 난 후 본 발명의 예시적인 특징들이 어떻게 본 발명의 장점들을 제공하는지 이해할 수 있을 것이며 상기 장점들은 부정확한 모션 벡터들을 포함하는 비디오 시퀀스들의 재포맷을 위한 보다 강건하고 효율적인 방법을 제공할 것이다.
본 발명에 의한 일 측면(aspect)에 의하면 비디오 데이터 프로세싱 방법을 제공한다. 이 측면에 의한 방법은 제 1 비디오 프레임 및 제 2 비디오 프레임을 수신하는 단계(여기서 비디오 프레임들은 화소들로 구성된 복수의 블록들을 포함하며); 제 1 프레임 및 제 2 프레임 간의 복수의 매칭 블록(matching block)들의 위치를 식별하는 모션 벡터 정보를 획득하는 단계; 제 1 프레임 내의 제 1 블록 에 대한 제 1 모션 벡터와 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간 각도와 관련된 크기(measure)를 계산하는 단계(상기 제 2 블록은 제 1 모션 벡터에 의해 식별되는 제 2 프레임 내의 프레임 위치 주변의 제 1 프레임 내의 프레임 포지션에 위치한다.); 상기 계산된 각도 크기에 기초하여 제 1 및 제 2 모션 벡터들이 상충(conflicting)하는지 판단하는 단계; 및 만약 제 1 및 제 2 모션 벡터들이 상충하는 것으로 판단되는 경우 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상을 수정(modifying)하는 단계를 포함한다.
본 발명에 의한 또 다른 측면은 비디오 데이터 처리(processing) 시스템을 제공한다. 이러한 측면의 시스템은 화소들로 구성된 복수의 블록들을 포함하는 제 1 비디오 프레임 및 제 2 비디오 프레임을 수신하고, 상기 제 1 프레임과 상기 제 2 프레임 간 매칭하는 복수의 매칭 블록들의 위치를 식별하기 위한 모션 벡터 정보를 획득하는 모션 평가 서브시스템; 및 상기 제 1 프레임 내의 제 1 블록에 대한 제 1 모션 벡터와 상기 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간의 각도에 관련된 크기를 계산하고, 상기 계산된 각도 크기에 근거하여 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는지 판단하고 만약 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는 것으로 판단될 경우 상기 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상을 수정하는 상충 검출 서브시스템을 포함하고, 상기 제 2 블록은 제 1 모션 벡터에 의해 식별된 상기 제 2 프레임 내의 프레임 위치의 주변 내에 존재하는 제 1 프레임 내의 프레임 위치에 위치되는 것을 특징으로 한다.
본 발명에 의할 경우 비디오 수신 장치가 수신한 비디오 데이터를 재포맷하기에 앞서, 모션 벡터 정보의 오류를 수정한 후 이 수정된 모션 벡터 정보를 가지고 비디오 데이터를 재포맷함으로써 복원된 비디오의 시각적 결함의 발생을 최소화할 수 있다.
이하, 본 발명에 의한 예시적인 실시예들을 설명한다. 단, 본 발명은 특허청구범위에 의해 정해진 범위 내에서 매우 다양한 방법으로 구현될 수 있다. 이하의 설명에서는 유사한 구성요소에 대해서는 유사한 식별부호를 사용하기로 한다.
이하, "비디오 신호"란 용어는 일련의 사진들, 프레임들 및 필드들 중 어느 하나를 의미하는 것으로 이해되어야 한다. 또한 "프레임"이란 용어는 프로그레시브(progressive) 비디오 신호의 프레임들 또는 필드들을 포괄하는 의미로 쓰이기도 하고 인터레이싱된(interlaced) 비디오 신호의 프레임들 또는 필드들을 의미하는 것으로 이해되어야 한다.
상충(conflicting)하는 모션 벡터들을 식별하여 수정함으로써 비디오 데이터를 처리하는 방법의 실시예들을 이하 설명하기로 한다. 이하, 만약 모션 벡터들 중 하나 이상이 가리키는(reference) 비디오 데이터의 일부분이 하나의 프레임에선 부분적으로나마 폐색(occluded)되지만 다른 프레임에서는 폐색되지 않는다면 상기 한 쌍의 모션 벡터들은 상충하는 것으로 본다. 이러한 프로세싱은 비디오 디코더, 비디오 트랜스코더(transcoder) 또는 비디오 표시 시스템에서 수행될 수 있다. 제 1 프레임로부터 제 2 프레임로의 비디오 데이터의 매칭 블록들의 모션 벡터들을 분석 하고(이는 모션 평가 기법에 의해 결정된다), 상충되는 모션 벡터들을 식별한 후 상기 모션 벡터들을 수정하는 과정들을 이하 설명할 것이다. 다양한 비디오 재포맷에 모션 벡터를 이용하기에 앞서 상충하는 모션 벡터들을 수정하는 방법에 대해서도 이하 설명하기로 한다.
도 1은 예시적인 통신 시스템(100)의 기능 블록도를 보여준다. 시스템(100)은 비디오 소스(video source)(102) 및 비디오 수신 장치(video reception device)(104)를 포함한다. 이 실시예에서 비디오 소스(102)는 비압축 비디오 소스(106)으로부터 원 비디오(raw 또는 uncompressed video) 를 획득하여 비디오 압축 요소(element)(108)를 이용하여 비디오를 압축한 후 저장하거나 통신 요소(element)(110)를 이용하여 압축된 비디오 데이터를 전송한다. 비디오 수신 장치(104)는 프로세서(processor) 및/또는 수신기(receiver)(112)를 포함하며 비디오 신장 요소(decompression element)(114) 및 재포맷(reformatting) 서브시스템(116)도 포함한다. 압축된 비디오는 네트워크(101)를 통해 비디오 소스(102)로부터 비디오 수신 장치(104)로 전송된다.
비압축 비디오 소스(106)는 비디오 카메라 또는 메모리(예: 디스크 드라이브) 등이 될 수 있다. 비압축 비디오 소스(106)는 비압축 비디오 데이터를 휘도(luminance)와 색차(chrominance)의 형태 또는 개별적인 색 크기(individual color intensities)(예:적색, 녹색 및 청색)의 형태로 공급한다.
비디오 압축 요소(108)는 비압축 비디오 데이터로부터 리던던시(redundancy)을 제거하기 위한 온갖 종류의 비디오 인코딩 기법들을 수행한다. 변환(transform coding)은 프레임 내의 공간 리던던시를 제거함으로써 상대적으로 높은 공간 주파수(spatial frequency) 성분들을 제거하기 위해 사용될 수도 있다. 대부분의 비디오 압축 기법(scheme)들은 일종의 모션 평가(예: 블록 매칭/모션 보상 예측 또는 광 흐름(optical flow) 등)을 포함한다. 모션 평가 기법의 목적은 비디오 시퀀스의 프레임들 간에 시간 리던던시(temporal redundancy)를 제거하는 것이다. 물론 당업자에게 알려진 다른 형태의 비디오 압축 기법들도 비디오 압축 요소(108)에 의해 이용될 수 있다.
통신 요소(110)로서 인터넷에 연결되고 압축된 비디오를 저장할 수 있는 서버가 채택할 수 있다. 또한 통신 요소(110)로서 네트워크(101)를 통해 압축된 비디오를 전송하도록 구성된 송신기(transmitter)를 채택할 수 있다. 네트워크(101)는 하나 이상의 유/무선 통신 시스템을 포함할 수 있다. 이 유/무선 이 시스템은 다음 중 하나 이상을 포함할 수 있다.
이더넷(Ethernet), 전화(예:POTS), 케이블, 전력선(power line) 및 광 통신 시스템, 및/또는 코드 분할 다중 액세스(CDMA, CDMA2000) 통신 시스템, 코드 분할 다중 액세스(FDMA) 시스템, 시간 분할 다중 액세스(TDMA) 시스템(예:GSM/GPRS(General Packet Radio Service)/EDGE(enhanced data GSM enviroment)), TETRA(Terrestrial Trunked Radio) 이동 전화 시스템, 광대역 CDMA(WCDMA) 시스템, 고속 데이터 전송(1xEV-DO 또는 1xEV-DO Gold Multicast) 시스템, IEEE 802.11 시스템, DMB(Digital Multimedia Broadcasting) 시스템, OFDM(orthgonal frequency division multiple access) 시스템, DVB-H(Digital Video Broadcasting-Handheld) 시스템 등.
비디오 수신 장치(104)의 프로세서/수신기(112)는 네트워크(101)를 통해 압축된 비디오를 수신한다. 또 다른 실시예에서는 프로세서/수신기는 DVD, 하드 디스크 드라이브, 메모리 카드 등의 메모리 저장 장치로부터 압축 비디오를 수신할 수도 있다. 프로세서/수신기(112)는 개인용 컴퓨터, 셋탑 박스(sep-top box), 휴대용 장치 등에 탑재될 수도 있다.
비디오 신장 요소(114)는 수신한 압축 비디오 데이터를 디코딩(신장;decompress)한다. 비디오 신장 요소(114)는 인코딩 프로세스에서 압축되었던 비디오 프레임을 복원한다. 이러한 복원 과정은 변환 계수를 이용한 역변환(예: 이산 코사인 변환(DCT)), 공간 예측 데이터의 복원 그리고 시간 예측 데이터의 복원을 포함한다. 비디오 신장 요소(114)는 프로세서/수신기(112)와 함께 하나의 장치로서 구현될 수도 있고 독립된 장치로서 구현될 수도 있다. 비디오 수신 장치(104)는 셋탑 박스, DVD 플레이어, PC 등의 일부로서 구현될 수 있다. 다른 실시예에서는 비디오 수신 장치(104)는 비압축 비디오를 수신할 수도 있다(예: 비압축 비디오 소스(106)). 이러한 실시예에서 비디오 신장 요소(114)는 생략될 수 있다.
비디오 요소(114)로부터 출력된 복원된 비디오의 포맷은 비디오 인코더에 의해 인코딩된 포맷에 따른다. 예를 들면 디지털 비디오 포맷들은 다른 프레임 레이트(frame rates), 다른 수의 라인들(lines) 및 화소로 구성된 행(rows)을 가질 수 있고, 어떤 것은 인터레이스(interlaced)되는 반면 다른 것들은 인터레이스되지 않은 것일 수 있다. 예를 들면 영화들은 전형적으로 24fps(frames per second) 포맷 으로 생성되지만 NTSC는 30fps를 가지며 PAL은 25fps를 가진다. 포맷은 인터레이싱되었거나(interlaced) 프로그레시브(progressive)일 수 있다. 재포맷 서브시스템(116)은 비디오 신호를 비디오 수신 장치(104)에 연결된 디스플레이 장치(118)의 포맷에 맞게 변환한다. 디스플레이 장치는 텔레비전 세트(예: NTSC, PAL 또는 HDTV)이거나 컴퓨터 모니터(예: 프레임 레이트: 70Hz, 75Hz, 80Hz 등)일 수 있다. 재포맷 서브시스템(116)은 비디오 신장 요소(114) 및/또는 프로세서/수신기(112)와 동일한 장치의 일부로서 구현될 수도 있다. 위에서 상술한 실시예들 중 일부 예에서는 비디오 수신 장치(104)에 의해 수신된 비디오는 비압축 비디오(예: 비압축 비디오 소스(106)으로부터)일 수 있는데 이 경우 비디오 신장 요소(114)는 불필요해진다. 이러한 실시예에서 재포맷 서브시스템(116)이 비압축 비디오를 재포맷하게 된다.
상기 재포맷 서브시스템(116)에 의해 수행되는 프로세스는 압축된 비디오 데이터를 인코딩하기 위해 이용되는 인코딩 기법과 매우 유사할 수 있다. 모션 평가/보상은 상기 복원된 프레임들 사이에 중간프레임들을 생성하여 넣기 위한 프레임 레이트 변환을 위해 이용될 수 있다. 따라서 인코딩 장치에서 이용되는 공간 예측 방법(spatial prediction) 및 시간 예측 방법(temporal prediction)은 디코더에서 비디오를 재포맷하기 위해 이용될 수 있다. 재포맷 서브시스템(116)은 재포맷을 수행하기 위해 복원된 비디오 데이터 및/또는 압축된 비디오 데이터(예: 모션 벡터, 잔류 오류 값 등)를 이용할 수 있다.
도 2는 도 1에 도시된 통신 시스템에 포함된 비디오 수신 장치(104)로서 이 용되는 비디오 수신 시스템(200)의 하나의 실시예를 보여주는 기능 블록도이다. 이 실시예에서 비디오 수신 시스템(200)은 프로세서 요소(205), 메모리 요소(210), 선택적인 수신 요소(215), 모션 평가 서브시스템(200), 상충 검출 서브시스템(210) 및 선택적인 재포맷 서브시스템(230)을 포함한다. 프로세서(205)는 하나 이상의 범용 프로세서 및/또는 디지털 신호 프로세서 및 /또는 특정 어플리케이션 고유한 하드웨어 프로세서를 포함할 수 있다. 메모리(210)는, 예를 들면, 하나 이상의 집적회로 또는 디스크 기반의 스토리지 또는 읽기/쓰기 가능한 랜덤 액세스 메모리 장치를 포함할 수 있다. 프로세서(205)는 다른 요소들의 다양한 동작들을 수행하기 위해 메모리(210) 및 다른 요소들과 결합한다. 일부 실시예에서는 수신기(215)는 네트워크(101)를 통해 비디오 데이터를 수신한다. 다른 실시예에서는 다른 요소들(예:모션 평가 서브시스템(220))이 메모리 요소(210) 또는 하나 이상의 외부 메모리 장치들로부터 직접 비디오 데이터를 수신할 수도 있다. 상기 외부 메모리 장치의 예로는 메모리 디스크, 메모리 카드, 인터넷 서버 메모리 등이 있다. 상기 네트워크(101)를 통해 메모리 요소(210) 또는 하나 이상의 외부 메모리 장치들로부터 수신한 비디오 데이터는 압축된 것일 수도 있고 압축되지 않은 비디오 데이터일 수 있다. 메모리 요소(210) 또는 외부 메모리 장치들에 저장된 압축된 비디오 데이터의 경우에, 상기 압축 비디오 데이터는 도 1의 비디오 소스(102)와 같은 인코딩 장치에 의해 사전에 미리 생성될 수 있다.
위에서 상술한 바와 같이 모션 평가 서브시스템(220)은 2 이상의 프레임시퀀스들로부터 시간 리던던시(temporal redundancy)를 보여주는 비디오 부분을 식별한 다. 프레임 레이트 변환 또는 역-인터레이싱(deinterlacing)에서와 같이, 상기 시간 리던던시를 포함하는 비디오 데이터의 식별된 부분은 새로운 비디오 프레임들을 복원하는데 이용될 수 있다. 상기 모션 평가 서브시스템(220)에 의해 식별된 기준 프레임(reference frame)들의 부분들은 재포맷 서브시스템(230)에 의해 이용될 수 있다. 이 기준 프레임들의 부분들은 상기 기준 프레임들을 참조하여 다른 프레임들 또는 비디오 데이터 부분을 구성하기 위해 이용된다. 이 때 모션 평가 데이터들도 함께 이용된다. 모션 평가 데이터의 예로는 인코딩/압축된 데이터로부터 획득된 모션 벡터 또는 모션 평가 서브시스템(220)에 의해 결정된 모션 벡터 등이 있다. 본 발명의 일 실시예에서 모션 벡터는 다른 프레임의 부분을 구성하는데 이용될 이미 복원된 기준 프레임의 부분들의 위치를 파악하기 위해 이용된다. 다른 측면에서 모션 평가 서브시스템(220)은 제 1 프레임 내의 각 블록들에 대해 제 2 프레임 내의 (화소들로 구성된) 매칭 블록들을 식별한다. 잔류 오류 크기(예:SAD(sum of absolute differences), MSE(mean square error))는 매칭 기준 부분(들)(matching reference portions)을 식별하는데 이용되며 재포맷 서브시스템(230)은 이 매칭 기준 부분(들)은 가지고 다른 비디오 프레임들을 구성하는데 이용할 수 있다. 이하 도 3의 흐름도를 참조하여 상기 모션 평가 서브시스템(220)에 의해 수행되는 동작들은 구체적으로 설명하기로 한다.
상충 검출 서브시스템(225)은 특정한 기준 블록들을 식별하기 위해 제 1 프레임 및 제 2 프레임 내의 모션 벡터나 (화소들로 구성된) 대응 블록들(corresponding blocks)과 같은 모션 평가 데이터를 이용하는데 상기 특정한 기준 블록들이란 상충하는 모션 벡터들을 가지고 있어 재포맷 서브시스템(230)이 모션 벡터들을 가지고 다른 비디오 프레임들을 구성하는 경우 시각적 결점(visual artifacts)를 야기할 가능성이 높은 블록들을 의미한다. 하나의 비디오가 다른 비디오를 지나치거나 다른 비디오 쪽으로 접근하는지 여부는 모션 벡터들을 통해 알 수 있다. 모션 벡터들은 수신한 데이터 내에 인코딩되어 있거나 모션 평가 서브시스템(220)에 의해 결정된다. 그런데 다른 비디오를 지나치거나 다른 비디오 쪽으로 접근하는 비디오들은 하나 이상의 부정확한 모션 벡터들을 가질 확률이 높다. 상충하는 모션 벡터들은 폐색(occlusion)이 발생하는 비디오 프레임의 부분들에서 발생하기도 한다. 상기 폐색이란 하나의 객체(object)가 다른 객체를 가리는(cover)는 현상을 일컫는다. 이러한 상황하에서 만약 모션 평가 서브시스템(220)이 제 1 프레임 내의 하나의 블록에 대해 제 2 프레임 내의 매칭 블록을 식별하려고 시도하고 동시에 제 1 프레임 내의 블록의 이미지가 제 2 프레임 내에서 폐색된다면 모션 벡터는 부정확할 가능성이 높다. 이 부정확한 모션 벡터는 제 1 프레임 모션 벡터과 제 2 프레임의 모션 벡터의 충돌을 야기할 가능성이 크며, 또한 재포맷에 이용되는 경우 아마도 시각적 결점(artifacts)를 야기할 것이다. 상충 검출 서브시스템은 그러한 상충 모션 벡터들을 식별하여 하나 이상의 모션 벡터들을 수정함으로써 재포맷을 하는 동안 시각적 결점(artifacts)가 덜 발생하도록 도와준다. 상기 상충 검출 서브시스템(225)에 의해 수행되는 구체적인 기능들은 이하 도 3에 도시된 방법을 참조하여 이하 자세히 설명하기로 한다.
재포맷 서브시스템(230)는 복원된 비디오를 특정한 비디오 포맷(예: 프레임 레이트, 행 및/또는 열 당 화소의 갯수 등)을 갖는 비디오 디스플레이 장치 상에 표시하기 위해 복원된 비디오 데이터를 재포맷하는데 이용된다. 상기 재포맷 서브시스템(230)는 앞에서 상술한 비디오 수신기(104)의 재포맷 서브시스템(116)와 같은 기능들을 수행할 수 있다. 또 다른 실시예에서는 재포맷 서브시스템(230)는 디스플레이 장치의 프레임 레이트에 일치시키기 위해 복원된 프레임들 사이에 하나 이상의 새로운 프레임들을 생성한다. 또 다른 측면에서 상기 프레임 레이트 변환을 위한 중간 프레임들을 생성하기 위해 앞에서 상술한 기법과 유사한 모션 보상 기법들이 이용될 수 있다. 재포맷 서브시스템은 상충 검출 서브시스템에 의해 식별되고 수정된 모션 벡터들을 이용한다.
다른 실시예에서는 도 2의 비디오 수신 시스템(200)의 하나 이상의 요소들은 재배열되거나 및/또는 결합될 수 있다. 상기 요소들은 하드웨어 , 소프트웨어, 펌웨어, 미들웨어, 마이크로코드 또는 이들의 결합에 의해 구현될 수 있다. 비디오 수신 시스템(200)의 요소들에 의해 수행되는 구체적인 동작들에 대해서는 이하 도 3에 도시된 방법들을 참조하여 설명하기로 한다.
도 3은 도 1에 도시된 시스템에 의해 수행되는 상충 모션 벡터 검출 방법 및 수정 방법의 예를 보여주는 흐름도이다. 프로세스 300에서는, 예를 들면, 도 2의 비디오 수신 시스템(200)과 같은 비디오 수신 장치에 의해 수행될 수 있다. 프로세스 300에서는 프레임 레이트 변환, 역-인터레이싱(de-interlacing) 및 변환코딩(transcoding)과 같은 재포맷의 목적으로 쓰여질 비디오의 매칭 부분들 간에 상충하는 모션 벡터들을 식별한다. 상기 식별된 모션 벡터들은 수정 과정을 거 치는데 이 과정을 거침으로써 재포맷 시 시각적 결점(artifacts)이 발생할 가능성이 감소된다. 프로세스 300은 이전 프레임 및 다음 프레임으로부터 얻은 비디오 데이터에 기초하여 중간 프레임의 블록들을 구성하는 시나리오를 설명할 것이다. 물론 프로세스 300은 다른 시나리오들에 기초하여 설명될 수도 있다. 예를 들어 미래의 프레임은 이전의 2 프레임들로부터 얻은 비디오 데이터를 가지고 구성될 수도 있고 또는 과거의 프레임은 다음의 2 프레임들로부터 얻은 비디오 데이터에 기초하여 구성될 수도 있다.
프로세스 300의 첫 번째 단계는 단계 305인데 이 단계에서 수신 장치가 제 1 프레임 및 제 2 프레임의 비디오 데이터를 수신한다. 비디오 데이터 프레임들은 복수의 화소들을 포함하는데 이 화소들은 복수의 블록으로 분리될 수도 있다. 화소 블록들은 다양한 크기 및 모양을 가질 수 있다. 가령 하나의 픽셀에서부터 2x1, 2x2, 2x4, 4x4,4x8, 8x8, 8x16, 16x16 화소 등의 크기를 가질 수 있다. 수신한 프레임들은 다양한 소스들로부터 획득할 수 있는데, 그 예로 압축된 비디오, 비압축 비디오 및 인코딩된 비디오가 있다. 만약 프레임들이 압축 비디오를 포함한다면, 비디오 처리 모듈은 상기 프레임들을 비압축 포맷으로 신장(decompress)할 수 있다. 마찬가지로 인코딩된 비디오 프레임들은 관련된 비디오 처리 모듈에 의해 디코딩될 수 있다. 도 2의 수신 시스템(200)의 수신기 요소(215)는 단계 305에서 상기 기능들을 수행할 수 있다.
프로세스 300은 단계 305에서 비디오 데이터 프레임을 수신하면 단계 310으로 옮겨가며, 여기서 비디오 수신 장치는 모션 벡터 정보를 획득하게 된다. 모션 벡터 정보는 제 1 프레임 내의 일군의 블록들을 구성하는 각각의 블록들에 대해 그 매칭 블록(matching block)들을 식별한다. 일 측면에서 만약 단계 305에서 압축된 비디오 프레임이 수신된 경우라면 이전 프레임에 기초한 예측 인코딩 기법으로 현재 프레임은 전부 또는 일부 인코딩되어 있을 것이다. 이러한 측면에서 현재 프레임은 이전 프레임으로부터 예측될 수 있고, 이전 프레임 내의 매칭 블록들은 현재 프레임 내의 각 블록에 대한 인코딩된 모션 벡터들을 이용하여 쉽게 획득할 수 있다.
이전 프레임으로부터 예측되지 아니한 블록들에 대해서는(단, 단계 305에서 비압축 비디오를 수신한 경우에는 모든 블록에 대해), 단계 310에서 모션 벡터 정보를 얻기 위해 블록 매칭을 수행할 것이다. 본 발명에 의한 일실시예로서 전방향 블록 매칭 모션 평가(forward block-matching motion estimation)를 가지고 설명하기로 한다. 전방향 블록 매칭 모션 평가란 현재 프레임 n 내의 각 블록과 다음의 프레임 n-1의 블록들 중 최선의 매칭을 보이는(가장 일치하는) 블록들을 식별하는 것이다. 그러나 단계 310에서는 후방향 블록 매칭(backward block-matching motion)을 대신 수행할 수 있음을 주목하여야한다.
도 4는 도 3에 도시된 방법에 사용되는 블록 매칭의 예를 보여준다. 도 4는 전방향 모션 평가의 개념을 보여준다. 현재의 비디오 프레임 400(프레임 n) 내의 각 블록 405에 대해 다음(또는 미래의) 비디오 프레임 410(프레임 n+1) 내의 검색 영역 420 내의 최선의 매칭(가장 일치하는) 블록 415를 결정한다. 모션 벡터 425, MV는 검색 중인 블록 405에 관련된 매칭 블록 415의 위치를 나타낸다. 이 검색 영 역 420은 프레임 400의 블록 405과 동일한 위치에 있는 프레임 410 내의 블록 405A를 둘러싸고 있는 주변 블록들로 미리 설정할 수 있다. 여기서 동일한 위치란 함은 하나의 프레임 내에서 동일한 수직 및 수평 위치를 갖는 것을 말한다. 상기 미리 설정된 검색 영역은 다양한 크기를 가질 수 있는데, 가령 하나의 블록 크기로부터 하나의 프레임에 대응하는 크기까지 갖도록 설정될 수 있다. 프레임의 구석이나 가장자리에 위치한 블록에 대해서는 블록 패딩(block padding)이 이용될 수 있다. 상기 검색 영역은 적응적인(adaptive) 경우도 있다. 잔류 오류 크기를 나타내는 SAD(sum of abolute differences), MSE(mean square error) 등이 매칭 블록을 식별하기 위해 이용될 수 있다. 최선의 오류값(best error measurement)을 갖는 블록이 매칭 블록(matching block)으로 결정된다. 단계 310에서의 블록 매칭은 전체 프레임 400 내의 각각의 블록에 대해 수행될 수도 있다.
블록 310에서 획득된 모션 벡터 정보는 잔류 오류값, 화소 오류 편차(pixel error variance) 및 회전 정보(rotational information)를 포함한다. 또한 모션 벡터 정보는 단지 선형 트랜슬레이션(linear translation) 이외에 더 많은 자유도(degree of freedom)를 포함할 수 있다.
단계 310에서 모션 벡터 정보를 획득한 후 프로세스 300은 단계 315로 옮겨 간다. 단계 315에서 비디오 수신 시스템은 제 1 프레임 내의 제 1 블록에 대한 제 1 모션 벡터와 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간의 각도에 관련된 값을 계산하는데 상기 제 2 블록은 제 1 모션 벡터에 의해 식별된 프레임 위치의 주변에 존재한다. 제 1 블록들과 제 2 블록들은 제 1 프레임로부터 제 2 프레 임로 움직이거나 반대로 움직이는데, 상기 1 모션 벡터와 제 2 모션 벡터 간의 각도에 관련된 값은 제 1 블록과 제 2 블록 간의 상대적 동작들(예를 들면, 모션 평가 방법에 의해 식별된)을 식별하는데 이용된다. 만약 상기 각도가 제 1 블록과 제 2 블록이 서로를 향해 움직이고 있음을 나타내는 경우 이것은 모션 벡터들이 상충(conflicting)함을 의미한다.
이하 단계 315에서 제 1 모션 벡터과 제 2 모션 벡터 간의 각도에 관련된 값을 계산하는 방법론을 도해하기로 한다. 도 5는 도 3에 도시된 방법을 이용하여 상충 모션 벡터들을 검출하고 수정하기 위한 비디오 시퀀스(video sequences)의 예를 보여준다. 현재 프레임(500)은 2 개의 객체(objects)들을 포함하는데 하나는 원(circle)(505)이고 다른 하나는 삼각형(510)이다. 미래 프레임(515)에서 원(505)은 삼각형(510) 쪽으로 이동하여 원(505)는 삼각형(510)의 일부를 가리게 된다. 설명의 편의를 위해 프레임(500)에 점선 이미지(505A)를 표시하였는데 이 점선 이미지는 프레임(515) 내에서의 원(505)의 위치에 대응된다.
제 1 프레임 내의 제 1 블록(520)은 제 2 프레임 내의 매칭 블록(535)(점선으로 표시)를 식별하는 모션 벡터(530)을 갖는다. 이 매칭 블록(535)는 프레임(515) 내의 다른 블록들과 일치하지 않는다(offset). 하지만 블록(535)는 다른 블록들에 비해 블록(540)과 가장 많이 매칭된다. 따라서 블록(540)이 가장 근접한 또는 가장 매칭되는 블록으로 간주된다. 다른 말로 하면 제 1 프레임(500) 내의 블록(540)은 제 1 모션 벡터(530)에 의해 식별된 제 2 프레임(515) 내의 매칭 블록(535)과 실질적으로 동일한 프레임 위치에 위치한다. 제 1 프레임 내의 (500) 동일 위치를 갖는 블록(540)은 제 2 프레임(515) 내의 자신의 매칭 블록(도시되지 않음)을 식별하는 모션 벡터(545)를 갖는다. 1 모션 벡터(530) 및 2 모션 벡터(545)는 자신들 사이의 각도(550)를 갖는다. 상기 프로세스 300의 단계 315에서 계산된 각도 크기(measure)는 각도(550)의 크기를 나타낸다. 상기 제 1 모션 벡터(530)과 제 2 모션 벡터(545) 간의 각도(550)의 측정값은 아크-탄젠트(arc-tangent) 함수 또는 당업자에 알려진 다른 방법을 이용하여 계산될 수 있다.
제 1 프레임(500) 내의 블록(540)은 삼각형(510)의 일부분에 위치하는데 이 삼각형은 제 2 프레임(515) 내에서 원(505)에 의해 대부분 가려져 있다. 이러한 이유로 모션 벡터(545)(여기서 모션 벡터는 전방 블록 매칭 기법에 의해 평가되었다.)는 부정확하게 원(510) 내의 일부분을 가리키고 있다. 프로세스 300에 의해 상충하는 것으로 식별된 모션 벡터의 부정확한 예이다.
단계 315에서 1 모션 벡터과 제 2 모션 벡터 사이의 각도와 관련된 값을 계산한 후, 프로세스 300은 단계 320로 이동한다. 이 단계에서는 상기 계산된 각도 값에 기초하여 제 1 모션 벡터과 제 2 모션 벡터가 상충(conflicting)하는지 결정된다. 상기 계산된 각도의 크기가 120~240의 범위에 위치하는 경우 제 1 모션 벡터과 제 2 모션 벡터가 상충할 수 있음이 밝혀졌다. 그러나 상기 각도 범위 이외에도 125-235, 130-230, 135-225, 140-220, 145-215-, 150-210, 155-205 또는 160-200 도의 범위도 모션 벡터들이 상충하는 각도 범위이다. 다른 범위들도 이용될 수 있다. 만약 제 1 모션 벡터 및 제 2 모션 벡터 간의 각도가 이러한 범위 밖이라면 이 는 폐색 상태의 발생 가능성이 낮고 모션 벡터들도 상충할 가능성이 낮다고 볼 수 있다.
만약 단계 320에서 한 쌍의 모션 벡터들이 상충하는 것으로 판단되면 프로세스는 단계 325로 이동한다. 이 단계에서 모션 벡터들 중 하나 또는 둘 다 수정될 수 있다. 이 크기의 수정은 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상의 크기를 미리 설정된 계수로 곱하거나 나눔으로써 구현될 수 있다. 상기 미리 설정된 계수는 배수로서 대략 1/1.1 내지 1/2.0의 범위 내에 존재한다. 다른 실시예에 따르면 단계 310에서 결정되거나 획득된 모션 벡터 정보는 제 1 모션 벡터과 제 2 모션 벡터에 의해 식별된 매칭 블록들 사이의 화소값(pixel values)들과 관련된 잔류 오류 값들을 포함한다. 이러한 실시예에서, 제 1 모션 벡터 또는 제 2 모션 벡터를 수정하는 과정은 잔류 오류 값에 비례하여 제 1 모션 벡터 또는 제 2 모션 벡터의 크기를 감소하는 과정을 포함할 수 있다. 상대적으로 큰 잔류 오류는 모션 벡터가 부정확할 가능성이 높음을 의미하므로 모션 벡터를 큰 폭으로 줄이더더라도 안전할 것이다. 상대적으로 작은 잔류 오류는 모션 벡터가 부정확할 가능성이 낮다는 것을 의미하므로 모션 벡터의 크기를 상대적으로 작은 폭으로 줄이거나 아예 줄이지 않는 것이 안전할 것이다.
프로세스 300의 단계 315, 320 및 325는 상충 검출 단계로 불리우는 상위 단계 350를 구성한다. 상충 검출 단계(350)의 기능들은 도 3의 비디오 수신 시스템(200)의 상충 검출 서브시스템(225)에 의해 수행될 수 있다. 앞에서 도 5를 참조해 설명한 실시예에서, 상충 검출 단계(350)는 제 1 블록의 매칭 블록과 실질 적으로 동일한 위치에 위치한 하나의 제 2 블록에 대해 수행되었다. 그러나 다른 실시예에서는, 상충 검출 단계(350)는 제 1 블록의 매칭 블록의 주변에 위치한 복수의 제 2 블록들에 대해 수행될 수도 있다. 이러한 주변 블록들은 매칭 블록에 의해 매칭되는 블록(1 내지 4개)으로 선택할 수도 있고, 가장 매칭되는 블록을 둘러싸는 3x3 블록 그룹을 선택할 수도 있고(단, 프레임 가장자리에 위치한 블록들에 있어서는 3x3 블록 그룹보다 작을 수 있다), 아니면 보다 큰 그룹의 블록들을 선택할 수도 있을 것이다.
앞에서 설명한 예에서는 매칭 블록을 식별하기 위해 전방 블록 매칭을 이용하였다. 다른 실시예의 프로세스 300의 단계 310에서는 후방 블록 매칭을 이용하여 이전 프레임으로부터 현재 프레임 내의 매칭 블록을 예측할 수 있다. 이러한 측면에서 모션 벡터들은 현재 프레임으로부터 다음 프레임을 가리킬(point) 수도 있다. 이러한 후방 블록 매칭이 이용되는 경우에도 단계 320에서 상충 모션 벡터들을 결정하기 위해 이용된 기준들과 동일한 기준들이 사용될 수 있다. 프로세스 300을 구성하는 단계들은 여러 가지 방식으로 재구성될 수 있다. 즉 서로 결합, 그 일부를 생략, 또는 그 순서를 재배열할 수 있고 또한 이러한 재구성 방식의 하나 이상을 다시 결합한 형태로 재구성할 수도 있다.
상충 검출 단계(350)의 기능들을 수행한 후에라도 상충 모션 벡터들은 여전히 존재할 수 있다. 상충 모션 벡터들이 존재하는 한 이러한 모션 벡터들을 가지고 재포맷을 하게 되면 시각적 결함이 발생할 가능성이 있다. 따라서 상충 검출 단계(350)를 반복함으로써, 수정 후에도 상충하는 모션 벡터들을 반복해서 식별하 고 수정하는 것이 바람직하다. 그러한 반복적 상충 검출 프로세스를 비디오 재포맷 프로세스와 결합하여 실시하는 것에 대해 이하 설명하기로 한다.
도 6은 도 3의 방법을 이용하여 비디오를 재포맷하는 방법의 예를 보여주는 흐름도이다. 프로세스 600은 앞에서 설명한 프로세스 300의 상충 검출 단계 350(단계 315, 320 및 325 포함)의 기능들을 수행하는 것으로 시작된다. 이 실시예에서는 상충 검출 단계(350)은 제 1 프레임 및/또는 제 2 프레임 내의 각 블록들에 대해 수행될 것이다. 다른 실시예에서는 상충 검출 단계(350)의 기능들은 서브세트(subset)의 블록들에 대해 수행될 수 있다.
상충 검출 단계(350)의 기능들이 완료된 다음 프로세스 600은 결정 단계 605를 수행한다. 이 단계에서 상충 검출 단계를 다시 반복할 필요가 있는지 판단한다. 앞에서 설명한 바와 같이 상충 모션 벡터들을 수정한 후에도 여전히 상충이 존재할 수 있다. 따라서 상충 검출 단계(350)을 추가적으로 반복함으로써 잔존하는 상충들을 제거할 수 있을 것이다. 일부 실시예에서는 상충 검출 단계(350)의 반복 횟수를 일정한 값(예: 2, 3, 4 등)으로 정할 수도 있다. 다른 실시예에서는 프로세스 600은 마지막 패스(final pass)가 완료될 때까지 상충 검출 단계(350) 및 단계 605를 반복할 수 있다. 또 다른 실시예에서는 프로세스 600은 상충이 더 이상 존재하지 않을 때까지 상충 검출 단계(350) 및 단계 605를 반복할 수 있다. 또 다른 실시예에서는 프로세스 600은 상충이 임계값(또는 임계 퍼센트)보다 작아질 때까지 상충 검출 단계(350)를 반복할 것이다(도시되지 않음).
프로세스 600이 상충 검출 단계(350)으로 귀환하는 경우 이전 패스(pass)에 서 수정된 모션 벡터들을 이용한다. 이런 식의 수정(예: 크기를 일정 양 줄임)은 상충이 모두 제거되거나 패스(pass) 숫자가 최대값에 이를 때까지 반복되게 된다. 단계 325에서는 일정한 배수 감소 계수들(multiplicative reduction factor)을 이용하여 상충 벡터들을 수정하게 될 것이다. 계수(예: 1/1.1)가 작을수록 상충 검출 단계(350)는 더 많이 반복되어야 하므로 계산 복잡도(computational complexity)를 증가시킬 수도 있다. 반면 상대적으로 큰 계수(예: 1/2.0)는 반복 횟수를 줄일 수는 있지만 원하는 크기 이상으로 모션 벡터들을 감소시키는 결과를 초래할 수도 있다.
앞에서 설명한 바와 같이 상충 검출 단계(350)을 처음 수행하게 되면(즉 최초 패스(first pass)에서는), 먼저 제 1 프레임 내의 제 1 블록에 대한 제 1 모션 벡터와 상기 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간의 각도에 관련된 값을 계산하게 된다(단계 315). 이때 상기 제 2 블록은 제 1 모션 벡터에 의해 식별된 상기 제 2 프레임 내의 프레임 위치의 주변 내에 존재하는 제 1 프레임 내의 프레임 위치에 위치한다. 또한 최초 패스는 단계 320에서는 상기 계산된 각도 크기에 근거하여 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는지 판단하고(단계 320), 만약 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는 것으로 판단될 경우 상기 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상을 수정하게 된다.
만약 최초 패스에서 최소한 제 1 모션 벡터의 크기가 감소되었다고 가정한다면(물론 제 2 모션 벡터의 크기도 동시에 감소될 수도 있다), 상충 검출 단계(350)를 반복하는 두번째 패스에서는 감소된 제 1 모션 벡터와 제 1 프레임 내의 제 3 블록에 대한 모션 벡터 간의 각도(에 관련된) 크기를 계산한다. 이때 상기 제 3 블록은 상기 감소된 제 1 모션 벡터에 의해 식별된 제 2 프레임 내의 프레임 위치의 주변 내에 위치하는 제 1 프레임 내의 프레임 위치에 위치한다. 더 나아가 두번째 패스는 상기 계산된 각도의 크기에 근거하여 감소된 제 1 모션 벡터와 제 3 블록에 대한 모션 벡터가 상충하는지 판단한 후 만약 상충하는 것으로 판단된 경우 상기 감소된 제 1 모션 벡터 또는 제 3 블록의 모션 벡터를 수정하는 단계를 더 포함한다.
만약 상충 검출 단계(350)에서 아무런 상충이 발견되지 않는 경우에는 프로세스 600은 단계 610으로 이동한다. 이 단계에서는 단계 350에서 수정된 모션 벡터들에 기초하여 제 3 프레임 내의 화소 블록들을 평가하게 된다. 제 3 프레임은 제 1 프레임 및 제 2 프레임 사이의 중간 프레임일 수도 있다. 상기 제 3 프레임 내의 화소 블록들은 공지된 여러 가지의 모션 보상 기법들 중 어느 하나를 이용하여 평가될 수 있다. 모션 보상 기법들은 제 1 프레임 및/또는 제 2 프레임으로부터 얻은 데이터를 이용하기도 하는데 이 데이터들은 휘도 신호(luma), 색차 신호(chroma) 등의 화소 값들을 포함한다. 다른 데이터, 예를 들면 잔류 오류값들도 모션 보상 기법을 위해 이용될 수 있음은 물론이다. 수정된 모션 벡터들은 제 1 프레임 및 제 2 프레임과 대비한 제 3 프레임의 시공간 위치(temporal position)에 기초하여 제 3 프레임을 가리키도록 스케일이 조정되거나 보간된다(scaled or interpolated). 도 3에 도시된 수신 시스템(200) 내의 재포맷 서브시스템(230)은 단계 610의 기능들을 수행할 수 있다. 프로세스 600을 구성하는 단계들은 여러 가지 방식으로 재구 성될 수 있다. 즉 서로 결합, 그 일부를 생략, 또는 그 순서를 재배열할 수 있고 또한 이러한 재구성 방식의 하나 이상을 다시 결합한 형태로 재구성할 수도 있다.
이하 본 발명에 의한 비디오 데이터 프로세싱 시스템의 또 다른 실시예를 설명한다. 이 시스템은 화소들로 구성된 복수의 블록들을 포함하는 제 1 비디오 프레임 및 제 2 비디오 프레임을 수신하기 위한 수단, 상기 제 1 프레임과 상기 제 2 프레임 간 매칭하는 복수의 매칭 블록들의 위치를 식별하기 위한 모션 벡터 정보를 획득하기 위한 수단 및 상기 제 1 프레임 내의 제 1 블록에 대한 제 1 모션 벡터와 상기 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간의 각도 크기를 계산하기 위한 수단를 포함하는데, 상기 제 2 블록은 제 1 모션 벡터에 의해 식별된 상기 제 2 프레임 내의 프레임 위치의 주변 내에 존재하는 제 1 프레임 내의 프레임 위치에 위치한다. 더 나아가 이 프로세싱 시스템은 상기 계산된 각도 크기에 근거하여 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는지 판단하기 위한 수단 및 만약 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는 것으로 판단될 경우 상기 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상을 수정하기 위한 수단을 포함한다. 이 프로세싱 시스템을 도 2의 실시예와 비교하여 보면, 수신 수단은 수신기(215)에 대응하고, 모션 벡터 정보 획득 수단은 모션 평가 서브시스템(220)에 대응하고, 계산 수단은 상충 검출 서브시스템(225)에, 결정 수단은 상충 검출 서브시스템(225)에 그리고 수정 수단은 상충 검출 서브시스템(225)에 대응된다고 볼 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본 질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명에 의한 시스템 및 방법의 하나의 실시예에 따라 압축된 디지털 비디오 데이터를 인코딩하거나 디코딩하기 위한 통신 시스템의 예를 보여주는 기능 블록도이다.
도 2는 도 1에 도시된 통신 시스템에 포함되며, 비디오 수신에 이용되는 비디오 수신 시스템의 일 실시예를 보여주는 기능 블록도이다.
도 3은 도 1에 도시된 시스템에 의해 수행되는 상충 모션 벡터 검출 방법 및 수정 방법의 예를 보여주는 흐름도이다.
도 4는 도 3에 도시된 방법에 사용되는 블록 매칭의 예를 보여준다.
도 5는 도 3에 도시된 방법을 이용하여 상충 모션 벡터들을 검출하고 수정하기 위한 비디오 시퀀스의 예를 보여준다.
도 6은 도 3의 방법을 이용하여 비디오를 재포맷하는 방법의 예를 보여주는흐름도이다.

Claims (23)

  1. 화소들로 구성된 복수의 블록들을 포함하는 제 1 비디오 프레임 및 제 2 비디오 프레임을 수신하는 단계;
    상기 제 1 프레임과 상기 제 2 프레임 간 매칭하는 복수의 매칭 블록들의 위치를 식별하기 위한 모션 벡터 정보를 획득하는 단계;
    상기 제 1 프레임 내의 제 1 블록에 대한 제 1 모션 벡터와 상기 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간의 각도 크기를 계산하는 단계;
    상기 계산된 각도 크기에 근거하여 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는지 판단하는 단계; 및
    만약 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는 것으로 판단될 경우 상기 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상을 수정하는 단계를 포함하며,
    상기 제 2 블록은 제 1 모션 벡터에 의해 식별된 상기 제 2 프레임 내의 프레임 위치의 주변 내에 존재하는 제 1 프레임 내의 프레임 위치에 위치되는것을 특징으로 하고
    상기 획득된 모션 벡터 정보는 수신된 제 1비디오 프레임 또는 제 2비디오 프레임내에 인코딩되어 있는 것을 특징으로 하는 비디오 데이터 처리 방법.
  2. 삭제
  3. 제 1항에 있어서, 상기 획득된 모션 벡터 정보는 상기 제 1 프레임 및 제 2 프레임의 블록들 간 잔류 오류의 크기가 최소화함으로써 매칭 블록들과 모션 벡터 정보를 결정하는 단계를 포함하는 비디오 데이터 처리 방법.
  4. 제 1항에 있어서, 상기 제 1 프레임 내의 제 2 블록은 제 1 모션 벡터에 의해 식별된 제 2 프레임 내의 매칭 블록과 실질적으로 동일한 프레임 위치에 위치되는 비디오 데이터 처리 방법.
  5. 제 1항에 있어서, 상기 비디오 데이터 처리 방법은 상기 수정된 모션 벡터들에 기초한 모션 보상 기법을 이용하여 제 3 비디오 프레임 내의 블록을 평가하는 단계를 더 포함하는 비디오 데이터 처리 방법.
  6. 제 1항에 있어서, 상기 비디오 데이터 처리 방법은 미리 설정된 계수에 의해 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상의 크기를 곱하거나 나누는 단계를 더 포함하는 비디오 데이터 처리 방법.
  7. 제 6항에 있어서, 상기 미리 설정된 계수는 배수로서 1/1.1 내지 1/2.0의 범위 내에 존재하는 비디오 데이터 처리 방법.
  8. 제 1항에 있어서, 상기 비디오 데이터 처리 방법은
    제 1 모션 벡터와 제 1 프레임 내의 하나 이상의 제 3 블록들에 대해 구해진 모션 벡터들 간의 각도에 관련된 크기를 계산하는 단계;
    상기 각도의 크기에 근거하여 상기 제 1 블록과 제 3 블록들이 상충하는지 여부를 판단하는 단계; 및
    만약 제 1 모션 벡터와 제 3 모션 벡터들이 상충하는 것으로 판단된 경우 상기 제 3 블록들의 모션 벡터를 하나 이상을 수정하는 단계를 포함하고,
    상기 제 3 블록들은 상기 제 1 모션 벡터에 의해 식별된 제 2 프레임의 프레임 위치의 주변에 위치하는 것을 특징으로 하는 비디오 데이터 처리 방법.
  9. 제 1 항에 있어서, 만약 제 1 모션 벡터의 크기를 감소시켜 모션 벡터를 수정하는 경우, 상기 비디오 데이터 처리 방법은
    상기 감소된 제 1 모션 벡터의 크기와 상기 제 1 프레임 내의 제 3 블록에 대한 제 3 모션 벡터 간의 각도에 관련된 크기를 계산하는 단계;
    상기 계산된 각도의 크기에 기초하여 상기 크기가 감소된 제 1 모션 벡터와 제 3 모션 벡터들이 상충하는 여부를 결정하는 단계; 및
    만약 상기 모션 벡터들이 상충하는 것으로 판단된 경우 상기 제 1 모션 벡터 또는 제 3 모션 벡터의 크기를 수정하는 단계를 더 포함하며,
    상기 제 3 모션 벡터는 상기 크기가 감소된 제 1 모션 벡터에 의해 식별된 제 2 프레임의 프레임 위치의 주변에 존재하는 제 1 프레임 내의 프레임 위치에 위치하는 것을 특징으로 하는 비디오 데이터 처리 방법.
  10. 제 1 항에 있어서, 상기 비디오 데이터 처리 방법은 상기 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상에 의해 식별된 상기 매칭 블록들 간 화소값들에 관련된 잔류 오류 크기를 결정하는 단계; 및
    및 상기 잔류 오류 크기에 비례하여 제 1 모션 벡터 또는 제 2 모션 벡터들의 크기를 감소시킴으로써 제 1 모션 벡터 또는 제 2 모션 벡터를 수정하는 단계를 비디오 데이터 처리 방법.
  11. 제 1 항에 있어서, 상기 비디오 데이터 처리 방법은 만약 상기 계산된 각도가 120도 내지 240도의 범위에 있다면 제 1 모션 벡터와 제 2 모션 벡터가 상충하는 것으로 판단하는 단계를 더 포함하는 비디오 데이터 처리 방법.
  12. 화소들로 구성된 복수의 블록들을 포함하는 제 1 비디오 프레임 및 제 2 비디오 프레임을 수신하고, 상기 제 1 프레임과 상기 제 2 프레임 간 매칭하는 복수의 매칭 블록들의 위치를 식별하기 위한 모션 벡터 정보를 획득하는 모션 평가 서브시스템; 및
    상기 제 1 프레임 내의 제 1 블록에 대한 제 1 모션 벡터와 상기 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간의 각도에 관련된 크기를 계산하고, 상기 계산된 각도 크기에 근거하여 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는지 판단하고 만약 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는 것으로 판단될 경우 상기 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상을 수정하는 상충 검출 서브시스템을 포함하고,
    상기 제 2 블록은 제 1 모션 벡터에 의해 식별된 상기 제 2 프레임 내의 프레임 위치의 주변 내에 존재하는 제 1 프레임 내의 프레임 위치에 위치되는 것을 특징으로 하고
    상기 획득된 모션 벡터 정보는 수신된 제 1 비디오 프레임 또는 제 2 비디오 프레임 내에 인코딩되어 있는 것을 특징으로 하는 비디오 데이터 처리 시스템.
  13. 삭제
  14. 제 12항에 있어서, 상기 모션 평가 서브시스템은 상기 제 1 프레임 및 제 2 프레임의 블록들 간 잔류 오류의 크기가 최소화함으로써 매칭 블록들과 모션 벡터 정보를 결정하도록 구성된 비디오 데이터 처리 시스템.
  15. 제 12항에 있어서, 상기 제 1 프레임 내의 제 2 블록은 제 1 모션 벡터에 의해 식별된 제 2 프레임 내의 매칭 블록과 실질적으로 동일한 프레임 위치에 위치되는 비디오 데이터 처리 시스템.
  16. 제 12항에 있어서, 상기 비디오 데이터 처리 시스템은 상기 수정된 모션 벡터들에 기초한 모션 보상 기법을 이용하여 제 3 비디오 프레임 내의 블록을 평가하도록 구성된 재포맷 서브시스템을 더 포함하는 비디오 데이터 처리 시스템.
  17. 제 12항에 있어서, 상기 상충 검출 서브시스템은 미리 설정된 계수에 의해 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상의 크기를 곱하거나 나눔으로써 제 1 모션 벡터 또는 제 2 모션 벡터를 수정하도록 구성되는 비디오 데이터 처리 시스템.
  18. 제 17항에 있어서, 상기 미리 설정된 계수는 배수로서 1/1.1 내지 1/2.0의 범위 내에 존재하는 비디오 데이터 처리 시스템.
  19. 제 12항에 있어서, 상기 상충 검출 서브시스템은
    제 1 모션 벡터과 제 1 프레임 내의 하나 이상의 제 3 블록들에 대해 구해진 모션 벡터들 간의 각도에 관련된 크기를 계산하며, 상기 각도의 크기에 근거하여 상기 제 1 블록과 제 3 블록들이 상충하는지 여부를 판단하고, 만약 제 1 모션 벡터와 제 3 모션 벡터들이 상충하는 것으로 판단된 경우 상기 제 3 블록들의 모션 벡터를 하나 이상을 수정하도록 구성되는데,
    상기 제 3 블록들은 상기 제 1 모션 벡터에 의해 식별된 제 2 프레임의 프레임 위치의 주변에 위치하는 것을 특징으로 하는 비디오 데이터 처리 시스템.
  20. 제 12항에 있어서, 상기 상충 검출 서브시스템은
    제 1 모션 벡터의 크기를 감소시켜 모션 벡터를 수정하고;
    상기 감소된 제 1 모션 벡터의 크기와 상기 제 1 프레임 내의 제 3 블록에 대한 제 3 모션 벡터 간의 각도에 관련된 크기를 계산하고;
    상기 계산된 각도의 크기에 기초하여 상기 크기가 감소된 제 1 모션 벡터와 제 3 모션 벡터들이 상충하는 여부를 결정하고;
    만약 상기 모션 벡터들이 상충하는 것으로 판단된 경우 상기 제 1 모션 벡터 또는 제 3 모션 벡터의 크기를 수정하도록 구성되는데,
    상기 제 3 모션 벡터는 상기 크기가 감소된 제 1 모션 벡터에 의해 식별된 제 2 프레임의 프레임 위치의 주변에 존재하는 제 1 프레임 내의 프레임 위치에 위치하는 것을 특징으로 하는 비디오 데이터 처리 시스템.
  21. 제 12항에 있어서, 상기 상충 검출 서브시스템은
    상기 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상에 의해 식별된 상기 매칭 블록들 간 화소값들에 관련된 잔류 오류 크기를 결정하고;
    상기 잔류 오류 크기에 비례하여 제 1 모션 벡터 또는 제 2 모션 벡터들의 크기를 감소시킴으로써 제 1 모션 벡터 또는 제 2 모션 벡터를 수정하도록 구성된 비디오 데이터 처리 시스템.
  22. 제 12항에 있어서, 상기 상충 검출 서브시스템은
    만약 상기 계산된 각도가 120도 내지 240도의 범위에 있다면 제 1 모션 벡터와 제 2 모션 벡터가 상충하는 것으로 판단하도록 구성된 비디오 데이터 처리 시스템.
  23. 화소들로 구성된 복수의 블록들을 포함하는 제 1 비디오 프레임 및 제 2 비디오 프레임을 수신하기 위한 수단;
    상기 제 1 프레임과 상기 제 2 프레임 간 매칭하는 복수의 매칭 블록들의 위치를 식별하기 위한 모션 벡터 정보를 획득하기 위한 수단;
    상기 제 1 프레임 내의 제 1 블록에 대한 제 1 모션 벡터와 상기 제 1 프레임 내의 제 2 블록에 대한 제 2 모션 벡터 간의 각도 크기를 계산하기 위한 수단;
    상기 계산된 각도 크기에 근거하여 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는지 판단하기 위한 수단; 및
    만약 상기 제 1 모션 벡터와 제 2 모션 벡터가 상충하는 것으로 판단될 경우 상기 제 1 모션 벡터 및 제 2 모션 벡터 중 하나 이상을 수정하기 위한 수단을 포함하며,
    상기 제 2 블록은 제 1 모션 벡터에 의해 식별된 상기 제 2 프레임 내의 프레임 위치의 주변 내에 존재하는 제 1 프레임 내의 프레임 위치에 위치되는 것을 특징으로 하고
    상기 모션 벡터 정보는 수신된 제 1 비디오 프레임 또는 제 2 비디오 프레임 내에 인코딩되어 있는 것을 특징으로 하는 비디오 데이터 처리 시스템.
KR1020070118529A 2007-06-19 2007-11-20 블록 매칭 모션 평가에서 모션 벡터를 수정하기 위한시스템 및 방법 KR101405913B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/765,381 US8792556B2 (en) 2007-06-19 2007-06-19 System and method for correcting motion vectors in block matching motion estimation
US11/765,381 2007-06-19

Publications (2)

Publication Number Publication Date
KR20080112075A KR20080112075A (ko) 2008-12-24
KR101405913B1 true KR101405913B1 (ko) 2014-06-13

Family

ID=40136457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070118529A KR101405913B1 (ko) 2007-06-19 2007-11-20 블록 매칭 모션 평가에서 모션 벡터를 수정하기 위한시스템 및 방법

Country Status (2)

Country Link
US (1) US8792556B2 (ko)
KR (1) KR101405913B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010049755A1 (en) * 2008-10-29 2010-05-06 Nds Limited Video signature
US20100178038A1 (en) * 2009-01-12 2010-07-15 Mediatek Inc. Video player
JP5149861B2 (ja) * 2009-05-01 2013-02-20 富士フイルム株式会社 中間画像生成装置およびその動作制御方法
JP2011146980A (ja) * 2010-01-15 2011-07-28 Sony Corp 画像処理装置および方法
JP2012089986A (ja) * 2010-10-18 2012-05-10 Mitsubishi Electric Corp 画像処理装置及び方法、並びに画像表示装置及び方法
US20120294366A1 (en) * 2011-05-17 2012-11-22 Avi Eliyahu Video pre-encoding analyzing method for multiple bit rate encoding system
WO2013006386A1 (en) * 2011-07-01 2013-01-10 General Instrument Corporation Motion vector prediction design simplification
US9357161B1 (en) * 2011-10-17 2016-05-31 Pixelworks, Inc. Motion vector interpolation for motion compensation
WO2013067440A1 (en) 2011-11-04 2013-05-10 General Instrument Corporation Motion vector scaling for non-uniform motion vector grid
EP2602997B1 (en) * 2011-12-07 2015-12-02 Thomson Licensing Method and apparatus for processing occlusions in motion estimation
US9172970B1 (en) 2012-05-29 2015-10-27 Google Inc. Inter frame candidate selection for a video encoder
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
KR101908388B1 (ko) * 2012-07-19 2018-10-17 삼성전자 주식회사 폐색 영역 복원 장치, 폐색 영역을 복원하는 비디오 디코딩 장치 및 폐색 영역 복원 방법
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
US11184635B2 (en) * 2018-08-31 2021-11-23 Tencent America LLC Method and apparatus for video coding with motion vector constraints
WO2024020825A1 (en) * 2022-07-27 2024-02-01 Qualcomm Incorporated Block searching procedure for motion estimation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050092306A (ko) * 2004-03-15 2005-09-21 삼성전자주식회사 회전 매칭을 통해 움직임을 예측하는 영상 부호화 장치 및방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08336165A (ja) * 1995-06-09 1996-12-17 Canon Inc 複眼撮像装置
US6628711B1 (en) * 1999-07-02 2003-09-30 Motorola, Inc. Method and apparatus for compensating for jitter in a digital video image
US7408988B2 (en) * 2002-12-20 2008-08-05 Lsi Corporation Motion estimation engine with parallel interpolation and search hardware
US7382846B1 (en) * 2004-09-29 2008-06-03 Rockwell Collins, Inc. Off-symbol correlation technique
US20060133498A1 (en) * 2004-11-29 2006-06-22 Park Seung W Method and apparatus for deriving motion vectors of macroblocks from motion vectors of pictures of base layer when encoding/decoding video signal
JP4398925B2 (ja) * 2005-03-31 2010-01-13 株式会社東芝 補間フレーム生成方法、補間フレーム生成装置および補間フレーム生成プログラム
TWI305109B (en) * 2005-12-30 2009-01-01 Altek Corp Method for processing motion image
US8130845B2 (en) * 2006-11-02 2012-03-06 Seiko Epson Corporation Method and apparatus for estimating and compensating for jitter in digital video

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050092306A (ko) * 2004-03-15 2005-09-21 삼성전자주식회사 회전 매칭을 통해 움직임을 예측하는 영상 부호화 장치 및방법

Also Published As

Publication number Publication date
US8792556B2 (en) 2014-07-29
US20080317127A1 (en) 2008-12-25
KR20080112075A (ko) 2008-12-24

Similar Documents

Publication Publication Date Title
KR101405913B1 (ko) 블록 매칭 모션 평가에서 모션 벡터를 수정하기 위한시스템 및 방법
US8289444B2 (en) System and method for reducing visible halo in digital video with covering and uncovering detection
CN110024398B (zh) 针对屏幕远程处理场景的局部的基于散列的运动估计
US8254444B2 (en) System and method for phase adaptive occlusion detection based on motion vector field in digital video
US8630346B2 (en) System and method for introducing virtual zero motion vector candidates in areas of a video sequence involving overlays
US8514939B2 (en) Method and system for motion compensated picture rate up-conversion of digital video using picture boundary processing
US8175163B2 (en) System and method for motion compensation using a set of candidate motion vectors obtained from digital video
KR101240119B1 (ko) 역 텔레시네 기술
JP6352173B2 (ja) プリプロセッサ方法および装置
US8699574B2 (en) System and method for boundary motion vector correction in motion compensated frame rate
US20100201870A1 (en) System and method for frame interpolation for a compressed video bitstream
US8259225B2 (en) System and method for reducing visible halo in digital video with dual motion estimation
US20110026596A1 (en) Method and System for Block-Based Motion Estimation for Motion-Compensated Frame Rate Conversion
US6931062B2 (en) Decoding system and method for proper interpolation for motion compensation
US9615102B2 (en) Method and apparatus for processing components of an image
JP2009532741A6 (ja) プリプロセッサ方法および装置
US20130121419A1 (en) Temporal luminance variation detection and correction for hierarchical level frame rate converter
JP2007122232A (ja) 画像処理装置及びプログラム
US6909750B2 (en) Detection and proper interpolation of interlaced moving areas for MPEG decoding with embedded resizing
US8767831B2 (en) Method and system for motion compensated picture rate up-conversion using information extracted from a compressed video stream
US8848793B2 (en) Method and system for video compression with integrated picture rate up-conversion
US8077257B2 (en) Detection of progressive pulldown in a video sequence
US20140269895A1 (en) Integrated downscale in video core

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