KR20070090242A - 비디오 통신을 위한 모션 벡터의 일시적 추정 - Google Patents

비디오 통신을 위한 모션 벡터의 일시적 추정 Download PDF

Info

Publication number
KR20070090242A
KR20070090242A KR1020077015762A KR20077015762A KR20070090242A KR 20070090242 A KR20070090242 A KR 20070090242A KR 1020077015762 A KR1020077015762 A KR 1020077015762A KR 20077015762 A KR20077015762 A KR 20077015762A KR 20070090242 A KR20070090242 A KR 20070090242A
Authority
KR
South Korea
Prior art keywords
frame
motion vectors
motion vector
motion
macroblock
Prior art date
Application number
KR1020077015762A
Other languages
English (en)
Other versions
KR100964407B1 (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 KR20070090242A publication Critical patent/KR20070090242A/ko
Application granted granted Critical
Publication of KR100964407B1 publication Critical patent/KR100964407B1/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
    • 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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment

Landscapes

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

Abstract

본 발명은 비디오 데이터를 프로세싱하는 방법 및 시스템에 관한 것이다. 후보 모션 벡터의 세트는 비디오 데이터의 제1 프레임 내의 매크로 블록들과 관련된 모션 벡터들, 및 비디오 데이터의 제2 프레임 내의 매크로 블록들과 관련된 모션 벡터들로부터 선택된다. 세트의 통계적 측정이 결정된다. 통계적 측정은 제2 프레임 내의 관심 매크로 블록에 대한 모션 벡터를 한정한다.

Description

비디오 통신을 위한 모션 벡터의 일시적 추정{TEMPORAL ESTIMATION OF A MOTION VECTOR FOR VIDEO COMMUNICATIOINS}
본 발명의 실시예는 멀티미디어 데이터의 프로세싱에 관한 것으로, 특히 비디오 데이터의 디코딩(압축해제)에 관한 것이다.
미디어 시스템들은 비디오데이터와 같은 미디어 데이터를 무선 및/또는 무선 채널을 통해 전송한다. 이러한 채널을 통해 전송된 데이터는 손실 또는 훼손들 수도 있으며, 목적지에 늦게 도달하는 것처럼 도중에 지연될 수도 있다. 지연 또는 훼손된 데이터는 MPEG(동영상 전문가 그룹) 엔코딩과 같은 기술을 이용하여 예측적으로 엔코딩(압축)되는 비디오 데이터에 대해 특히 문제를 일으킬 수 있지만, 이는 MPEG에 한정되는 것은 아니다. 예측적 엔코딩은 엔코딩된 데이터에서 종속성을 도입하여, 소정의 데이터의 엔코딩은 다른 데이터의 디코딩에 의존한다. 예측적 엔코딩이 통상적으로 압축의 양을 향상시키지만, 이는 또한 다른 데이터의 디코딩에 대해 의존하는 데이터가 손실 또는 지연 도달되는 에러 전파를 초래할 수 있다. 소정의 지연 또는 손실 데이터는 재구성된(디코딩된 또는 압축해제된) 비디오 데이터의 품질에 영향을 미칠 수 있다. 그러나 에러가 기준 프레임에 의존하는 다른 프레임들로 전파할 것이기 때문에, 만일 손실 또는 지연 데이터가 모션 보상 예측 을 위해 사용된 기준 프레임의 일부일 경우 영향은 악화될 수 있다.
예를 들어, 비디오 데이터의 연속한 프레임들에서 상이한 위치에서 발생하는 이동하는 객체를 생각해 보자. 예측 엔코딩 기술을 이용하면, 객체는 제1 프레임에서 데이터로 표현되지만, 제2 프레임에서 객체는 어떻게 객체가 제1 프레임으로부터 제2 프레임으로 이동되는 지를 설명하는 모션 벡터를 이용하여 표현된다. 따라서, 단지 모션 벡터에 대한 데이터만이 제2 프레임으로 전송될 필요가 있으며, 객체를 표현하는 데이터가 전송될 필요가 없기 때문에 압축의 양을 향상시킨다. 그러나 만일 모션 벡터가 수신되지 않으면, 객체는 제2 프레임이 비디오 이미지로 재구성될 때 적절하게 묘사되지 않을 수 있으며, 결국 재구성된 비디오의 품질을 감소시킨다. 연속한 프레임들이 제2 프레임에서 객체의 적절한 배치에 의존하기 때문에, 객체가 나타나는 연속한 프레임들이 영향을 받을 수 있다.
재구성된 비디오의 품질에 대한 부재(예를 들어, 누락, 손실, 지연 또는 올바르지 않은 수신) 데이터의 영향을 완화시키기 위해, 비디오 디코더는 수신된 데이터에 대한 에러 복구(예를 들어, 에러 은폐) 프로세스를 적용할 수 있다. 재구성된 비디오의 품질은 만일 모션 벡터가 복구(예를 들어, 추정)될 수 있다면 현저히 개선될 수 있다는 연구 결과가 있다. 일시적 에러 은폐는 현재의 프레임 및/또는 선행 프레임들로부터 적절하게 수신된 정보를 이용하여 현재 프레임에서 누락 또는 올바르지 않게 수신된 모션 벡터들을 추정함으로써 재구성된 비디오의 품질을 개선시킨다. 다시 말해, 일시적 에러 은폐의 목적은 모션 벡터들의 공간적 및 일시적 결합을 이용하여 모션 벡터들을 추정하는 것이다.
통상의 일시적 에러 은폐 기술은 픽셀 도메인에 기반한다. 프레임의 영역(예를 들어, 관심 매크로 블록)이 관련된 모션 벡터가 누락된 프레임(현재 프레임)을 고려해 보자. 모션 벡터의 세트는 현재 프레임에서 관심 매크로 블록을 둘러싼 매크로 블록과 관련된 모션 벡터들, 및 기준 프레임에서 콜로케이트된 매크로 블록을 둘러싼 매크로 블록과 관련한 모션 벡터들을 선택함으로써 형성된다(콜로케이트된 매크로 블록은 현재 프레임에서 관심 매크로 블록이 위치하는 것과 동일하게 기준 프레임에 위치한 매크로 블록임). 픽셀-도메인 방식을 이용하여, 왜곡의 크기가 세트에서 각각의 모션 벡터에 대해 계산된다. 왜곡을 평가하기 위해, 픽셀 값은 재구성된 프레임 버퍼로부터 취해진다. 모션 선택 기술에서, 왜곡 크기를 최소화하는 모션 벡터가 부재 모션 벡터에 대한 대체를 위해 선택된다. 모션 탐색 기술에서, 왜곡 크기를 최소화하는 모션 벡터에 대한 탐색은 예를 들어, 매크로 블록의 3×3 윈도 내에서 실행된다.
픽셀-도메인 에러 은폐는 계산적으로 복잡하고 시간 소모적이기 때문에 문제가 있다. 각각의 포텐셜 모션 벡터에 대한 왜곡을 평가하는 것은 많은 계산을 필요로 할 수 있어서, 계산 리소스를 소비하고 디코딩 프로세스에서 지연을 초래한다. 픽셀 도메인 에러 은폐는 디코더가 프레임의 디코딩을 완료한 후 실행될 때 가장 효과적이며; 따라서, 픽셀 도메인에서 에러 은폐에 의해 유도된 지연은 하나의 프레임 기간과 동일할 수도 있다. 더욱이, 왜곡 평가에 대한 픽셀 값들을 검색하기 위한 재구성된 프레임 버퍼를 액세스하는 것은 시간이 소모되며, 이는 지연을 가중시킨다.
결론적으로, 계산 복잡성 및 디코딩 지연을 감소시킬 수 있는 방법 및/또는 시스템이 바람직하다.
비디오 데이터를 프로세싱하는 방법 및 시스템이 설명된다. 일 실시예에서, 후보 모션 벡터의 세트가 비디오 데이터의 제1 프레임에서 매크로 블록과 관련된 모션 벡터, 및 비디오 데이터의 제2 프레임에서 매크로 블록과 관련된 모션 벡터로부터 선택된다. 일 실시예에서, 제1 프레임은 디스플레이의 순서로 제2 프레임보다 선행한다. 세트의 통계적 측정이 결정된다. 예를 들어, 후보 모션 벡터들의 평균 또는 중간값이 결정될 수 있다. 통계적 측정은 제2 프레임에서 관심 매크로 블록에 대한 모션 벡터를 한정한다.
다양한 방법이 후보 모션 벡터를 선택하기 위해 사용될 수 있다. 후보 모션 벡터의 선택 및 대체 모션 벡터의 결정은 픽셀 도메인 대신에 모션 벡터 도메인에서 실행된다. 결론적으로, 계산 복잡성 및 지연이 감소된다. 부가의 장점으로서, 하드웨어 변경이 요구되지 않는다.
도1은 디코딩 비디오 데이터에 대한 시스템의 일례의 블록도이다.
도2는 매크로 블록으로서 구성된 이미지 데이터의 두 개의 프레임의 예이다.
도3은 하나의 플레임으로부터 다음 프레임으로의 객체의 모션을 도시한 두 개의 이미지 프레임의 예이다.
도4는 데이터 엔코딩 프로세스로부터 데이터 디코딩 프로세스로 데이터의 흐 름을 나타내는 데이터 흐름 다이어그램이다.
도5는 모션 벡터 도메인 기반의 일시적 에러 은폐 방법의 흐름도이다.
도6은 도5의 방법에 따른 정보의 흐름을 도시한다.
도7은 모션 벡터 도메인 기반의 일시적 에러 은폐 프로세스에 사용된 후보 모션 벡터들을 선택하는 방법의 흐름도이다.
도8은 도7의 방법에 따른 정보의 흐름을 도시한다.
도9는 프레임 대 프레임 모션 변경을 검출하고, 모션 벡터 도메인 기반의 일시적 에러 은폐 프로세스에 사용된 후보 모션 벡터를 선택하는데 사용되는 방법의 흐름도이다.
도10은 프레임 대 프레임 변경을 검출하고, 모션 벡터 도메인 기반의 일시적 에러 은폐 프로세스에 사용된 후보 모션 벡터들을 선택하는데 사용되는 또다른 방법의 흐름도이다.
도11은 프레임 내에서 모션 경계를 위치시키고 모션 벡터 도메인 기반의 일시적 에러 은폐 프로세스에 사용된 후보 모션 벡터들을 선택하는데 사용되는 방법의 흐름도이다.
도12는 도11의 방법에 따른 정보의 흐름을 도시한다.
도13은 모션 벡터 도메인 기반의 일시적 에러 은폐 프로세스에 사용된 후보 모션 벡터를 선택하기 위해 이동하는 객체의 궤도를 이용하는 방법의 흐름도이다.
도14는 도13의 방법을 설명하는 도면이다.
이하의 상세한 설명에서, 개시된 개념의 완전한 이해를 제공하기 위해 많은 세부 항목들이 제공된다. 그러나 본 발명의 실시예는 세부 항목 없이 또는 이와 등가물로 실행될 수도 있음이 당업자에게는 명백할 것이다. 다른 예에서, 공지된 방법, 절차 및 구성 요소는 이러한 실시예의 불필요하게 불명료한 특징이 아닌 것에 관해 상세하게 설명되지 않는다.
후술되는 상세한 설명의 일부는 절차, 단계, 로직 블록, 프로세싱, 및 컴퓨터 메모리에서 실행될 수 있는 데이터 비트들에 대한 연산의 다른 심볼 표현의 형태로 제공된다. 이러한 설명 및 표현은 기술 분야의 다른 당업자에게 작업의 실체를 가장 효율적으로 전달하기 위해 데이터 프로세싱의 당업자에 의해 사용되는 수단이다. 절차, 컴퓨터 실행 단계, 로직 블록, 프로세스 등은 본 명세서에서 그리고 일반적으로 원하는 결과를 도출하는 단계 또는 명령의 사리에 맞는 시퀀스로 이해된다. 단계들은 물리적 양의 물리적 조절을 필요로 한다. 필수적이지는 않지만, 통상적으로 이러한 양은 저장되고, 전송되고, 결합되고, 비교되고 그리고 그렇지 않으면 컴퓨터 시스템 또는 유사한 전자 계산 장치에서 조작될 수 있는 전기 또는 자기 신호의 형태를 갖는다. 때때로, 이러한 신호들을 비트, 값, 엘리먼트, 심볼, 문자, 기간, 숫자 등으로 언급하는 것이 통상적인 사용이라는 이유로 편리한 것이 증명되었다.
그러나 모든 이러한 그리고 유사한 용어들이 적절한 물리적 양과 관련되고 단지 이러한 양에 적용된 편리한 라벨임을 알아야 한다. 이하의 설명으로부터 명백한 것으로 특별히 언급되지 않으면, 본 발명의 실시예를 통해 "선택", 또는 "결 정" 또는 "비교" 또는 "카운팅" 또는 "결심" 등은 컴퓨터 시스템의 레지스터 및 메모리 내의 물리적(전기적) 양으로서 표현되는 데이터를 컴퓨터 시스템 메모리 또는 레지스터 또는 기타 정보 저장, 전송 또는 디스플레이 장치로서 유사하게 표현되는 다른 데이터 조작 및 변환하는, 컴퓨터 시스템 또는 유사한 전자 계산 장치의 작용 및 프로세스를 의미하는 것으로 이해되어야 한다.
일 실시예에서, 컴퓨터 판독가능 프로그램 코드가 포함된 컴퓨터 이용가능 매체가 구현된다. 컴퓨터 시스템은 통상적으로 정보 및 명령을 프로세싱하는 프로세서, 정보 및 명령을 저장하는 랜덤 액세스 (휘발성) 메모리(RAM), 정적 정보 및 명령을 저장하는 판독 전용 (비휘발성) 메모리(ROM), 정보 및 명령을 저장하는 자기 또는 광 디스크 및 디스크 드라이브와 같은 데이터 저장 장치, 컴퓨터 사용자에게 정보를 디스플레이하는 디스플레이 장치(예를 들어, 모니터)와 같은 선택적인 사용자 출력 장치, 정보 및 명령 선택을 프로세서에 통신하는 영숫자 및 기능키(예를 들어, 키보드)를 포함하는 선택적 사용자 입력 장치, 및 사용자 입력 정보 및 명령 선택을 프로세서에 통신하는 커서 제어 장치(예를 들어, 마우스)와 같은 선택적 사용자 입력 장치를 포함할 수 있다. 컴퓨터 시스템은 무선 또는 유선 통신 인터페이스를 이용하여 컴퓨터 시스템과 네트워크 사이에 물리적 통신 링크를 제공하는 입력/출력 장치를 포함할 수도 있다.
도1은 실시예가 구현될 수 있는 시스템(10)의 블록도이다. 시스템(10)은 실시예의 소정 기능을 구현하기 위한 실행 플랫폼의 구성 요소를 도시한다. 도1에 도시된 바와 같이, 시스템(10)은 호스트 인터페이스(11)를 통해 디지털 신호 처리 기(DSP)(15)에 연결된 마이크로프로세서(12)(예를 들어, 진보된 감소 명령 세트 컴퓨터 머신, 또는 ARM, 프로세서)를 포함한다. 호스트 인터페이스(11)는 마이크로프로세서(12)와 DSP(15) 사이를 통과하는 데이터 및 명령을 그들 각각의 포맷으로 번역한다. 본 발명의 실시예에서, 마이크로프로세서(12) 및 DSP(15)는 메모리 제어기(16)를 통해 메모리(17)에 연결된다. 시스템(10)의 실시예에서, 메모리(17)는 공유 메모리(17)이며, 그로 인해, 메모리(17)는 마이크로프로세서(12) 및 DSP(15)에 대한 명령 및 데이터를 저장한다. 공유 메모리(17)로의 액세스는 메모리 제어기(16)을 통한다. 공유 메모리(16)는 또한 커플링된 디스플레이(18)를 구동하는 픽셀 데이터를 저장하기 위한 비디오 프레임 버퍼를 포함한다.
전술한 바와 같이, 실시예의 소정의 프로세스 및 단계가 컴퓨터 시스템(예를 들어, 시스템(10))의 컴퓨터 판독가능 메모리(예를 들어, 메모리(17)) 내에 상주하고 시스템(10)의 마이크로프로세서(12) 및 DSP(15)에 의해 실행되는 명령의 시리즈(예를 들어, 소프트웨어 프로그램 또는 프로그램들)로서, 적어도 하나의 실시예에서 구현된다. 실행될 때, 명령은 시스템(10)이 후술되는 바와 같이 실시예의 기능을 구현하게 한다. 다른 실시예에서, 본 발명의 소정의 프로세스 및 단계가 하드웨어에서 구현된다.
개시된 설명 및 예는 비디오 기반 데이터(또한 미디어 데이터 도는 멀티미디어 데이터 또는 콘텐츠로서 불려짐)의 환경에서 논의되지만, 본 발명은 이에 한정되지 않는다. 예를 들어, 실시예는 이미지 기반 데이터, 웹 페이지 기반 데이터, 그래픽 기반 데이터 등 및 이들의 조합과 함께 사용될 수도 있다.
본 발명의 실시예는 MPEG-1, MPEG-2,MPEG-4와 같은 동영상 전문가 그룹(MPEG) 압축(엔코딩) 방식, 및 H.261, H.263 및 H.264와 같은 국제 통신 기구 엔코딩 방식과 함께 사용될 수 있지만, 본 발명은 이에 한정되지 않는다. 통상적으로, 실시예들은 일시적 리던던시 또는 모션 리던던시를 이용하는 엔코딩 방식, 필수적으로, 압축의 양(압축률)을 증가시키기 위해 모션 벡터를 이용하는 엔코딩 방식과 함께 사용될 수 있다.
도2는 이미지 또는 비디오 데이터의 두 프레임(21 및 22)의 예를 도시한다. 도2의 예에서, 프레임(22)(또한 제1 프레임 또는 기준 프레임으로도 언급됨)은 디스플레이 순서에서 프레임(22)(또한 제2 프레임 또는 현재 프레임으로도 언급됨)보다 선행한다. 각각의 프레임(21 및 22)은 매크로 블록(23)에 의해 예시된 다수의 매크로 블록으로 구성된다. 일 실시예에서, 매크로 블록은 16픽셀×16픽셀의 크기를 갖지만, 본 발명은 이에 한정되지 않으며, 매크로 블록은 16픽셀×16픽셀이 아닌 크기를 가질 수 있다. 비록 도2는 소정 수의 매크로 블록을 도시하지만 본 발명은 이에 한정되지 않는다.
도2의 예에서, 모션 벡터는 각각의 매크로 블록과 관련된다. 모션 벡터는 자신의 길이(크기)를 설명하는 디멘존 및 자신의 방향(각)을 설명하는 디멘존을 갖는다. 모션 벡터는 0의 크기를 가질 수도 있다. 설명을 위해, 디코더에서 적절하게 수신된 모션 벡터는 매크로 블록 내에서 화살표(예를 들어, 화살표 24)로 표현된다. 관련된 모션 벡터가 적절하게 수신되지 않은 매크로 블록(예를 들어, 매크로 블록 25)은 음영으로 도2에 표시된다. 프레임(22)은 또한 "X"로 표시되는 관심 매크로 블록(28)을 포함하는데, 여기서 모션 벡터는 적절하게 수신되지 않는다. 모션 벡터는 만일 모션 벡터를 나타내는 데이터가 지연, 훼손 또는 누락되면 적절하게 수신되지 않는다.
도2에 도시된 바와 같이, 몇몇 매크로 블록들에 대한 모션 벡터들(즉, 하나 이상의 연속한 매크로 블록으로 구성된 매크로 블록의 조각)이 적절하게 수신되지 않은 예가 있을 수도 있다. 알 수 있듯이, 실시예에 따라, 모션 벡터는 모션 벡터가 적절하게 수신되지 않은 조각에서 각각의 매크로 블록에 대해 추정될 수 있다. 그러나 일반적으로, 모션 벡터는 적절하게 수신되도록 하기 위한 요구가 있는 소정의 매크로 블록에 대해 추정될 수 있다.
일 실시예에서, 현재 프레임(22)에서 매크로 블록(28)에 대한 모션 벡터를 추정하기 위해, 기준 프레임(21)에서의 매크로 블록(29)이 식별된다. 매크로 블록(29)은 관심 매크로 블록(28)이 프레임에 있는 것과 동일하게 프레임(21)내에 위치한다. 결론적으로, 매크로 블록(28) 및 매크로 블록(29)은 콜로케이트되었다고 한다. 더욱이, 매크로 블록(28)에 이웃한 현재 프레임(22)의 제1 다수(윈도우 26)의 매크로 블록이 식별되며, 기준 프레임(21)의 매크로 블록(29)에 이웃한 기준 프레임(21)의 제2 다수(윈도우 27)의 매크로 블록이 또한 식별된다. 일 실시예에서, 윈도우(27)는 윈도우(26)가 프레임(22)에 있는 것과 동일하게 프레임(21) 내에 위치한다. 결론적으로, 윈도우(26) 및 윈도 우(27)는 또한 콜로케이트되었다고 한다. 일반적으로, "콜로케이트"라는 용어는 하나의 프레임의 영역(예를 들어, 매크로 블록 또는 매크로 블록의 윈도우) 및 다른 프레임의 대응하는 영역이 그들 각각 의 프레임 내의 동일 위치에 있음을 나타내는데 사용된다. 콜로케이트된 매크로 블록(108 및 109)의 쌍이 또한 표시되는데, 즉 매크로 블록(108)은 윈도우(27) 내의 소정 위치에 위치하는데, 이는 윈도우(26) 내의 매크로 블록(109)의 위치와 동일하다.
통상적으로, 실시예에 따라, 모션 벡터는 관심 매크로 블록에 인접한 현재 프레임(22)에서 매크로 블록과 관련된 적절하게 수신된 모션 벡터를 고려하고, 관심 매크로 블록과 콜로케이트된 매크로 블록에 인접한 기준 프레임(21)에서 매크로 블록과 관련된 적절하게 수신된 모션 벡터를 고려함으로써 프레임(22)에서 소정의 관심 매크로 블록에 대해 추정될 수 있다.
일 실시예에서, 윈도우(26)의 매크로 블록의 어레이는 관심 매크로 블록(28)을 둘러싼다. 이러한 실시예에서, 윈도우(26) 및 윈도우(27)는 각각 매크로 블록의 3×3 어레이를 포함한다. 정사각 형태가 아닌 윈도우들을 포함하는 상이한 디멘존을 갖는 윈도우들이 선택될 수 있다. 또한, 윈도우는 특히, 관심 매크로 블록이 프레임의 에지에 위치하는 경우, 반드시 관심 매크로 블록을 둘러싸야 하는 것은 아니다.
도3은 일 실시예에 따른 연속한 두 이미지 프레임(제1 프레임(32) 및 제2 프레임(34))을 도시한다. 도3의 예에서, 제2 프레임(34)은 디스플레이 순서에서 제1 프레임(32) 다음에 온다. MPEG 압축 방식에서, 제1 프레임(32)은 예를 들어, I 프레임 또는 P 프레임에 대응할 수 있으며, 제2 프레임(34)은 예를 들어, P 프레임에 대응할 수 있다. 통상적으로, 제1 프레임(32) 및 제2 프레임(34)은 "인터코 딩(inter-coded)(예를 들어, 인터코딩된 프레임은 다른 프레임들에 의존하여 엔코딩됨)"된다.
도3의 실시예에서, 객체(33)는 제1 프레임(32) 내의 소정 위치에 위치하며, 동일한 객체(33)는 제2 프레임(34) 내의 다른 위치에 위치된다. MPEG 압축 방식은 프레임들 사이의 차를 엔코딩함으로써 동작한다. 모션 벡터(35)는 프레임(32)과 프레임(34) 사이에서 이미지의 변경을 통신하는 가장 간단한 방식으로서 사용된다; 즉, 객체(33)의 이미지는 단지 이미지가 이동하기 때문에 다시 전송되어야만 하는 것은 아니다. 유사한 방식으로, 모션 벡터는 프레임에서 매크로 블록(예를 들어, 도2의 매크로 블록)과 관련될 수 있다.
도4는 일실시예에 따라 엔코더로부터 디코더로 데이터의 흐름을 도시한 데이터 흐름도(40)이다. 엔코더에서, 엔코딩 프로세스(42)는 MPEG-1, MPEG-2, MPEG-4, H.261, H.263 또는 H.264와 같은 엔코딩 방식을 이용하여 데이터를 압축(엔코딩)한다. 압축된 데이터(43)는 채널(44)을 통해 엔코더로부터 디코더(예를 들어, 도1의 시스템(10))로 전송되는데, 상기 채널은 유선 또는 무선 채널일 수 있다. 수신된 데이터(45)는 적절하게 수신된 데이터 및 훼손된 데이터를 포함할 수 있다. 또한, 소정의 데이터는 전송 동안 손실되거나 디코더에 지연 도달할 수도 있다. 디코딩 프로세스(46)는 수신된 데이터(45)를 압축해제(재구성)하여 재구성된 데이터(47)를 생성한다.
도5는 모션 벡터 도메인 기반 일시적 에러 은폐 방법의 일 실시예의 흐름도(50)이다. 비록 특정한 단계가 도5의 흐름도(50)(또한 각각 도7, 9, 10, 11 및 13의 흐름도 70, 90, 100, 110 및 130)로 개시되었지만, 이러한 단계는 예이다. 즉, 다른 실시예가 흐름도(50, 70, 90, 100, 110 및 130)에서 인용된 다양한 단계 또는 다양한 다른 단계를 실행함으로써 구성될 수도 있다. 흐름도(50, 70, 90, 100, 110 및 130)에서 단계들이 제시된 것과 상이한 순서로 실행될 수도 있고, 흐름도(50, 70, 90, 100, 110 및 130)의 단계들이 도시된 순서로 반드시 실행되어야 하는 것은 아니라는 것을 이해해야 한다.
도5는 도6과 또한 관련하여 설명된다. 도6은 기준 프레임(61)으로부터 선택된 매크로 블록의 3×3 윈도우(63), 및 현재 프레임(62)으로부터 선택된 매크로 블록의 3×3 윈도우(64)를 도시한다. 기준 프레임(61) 및 현재 프레임(62)은 각각 윈도우(63 및 64)에 포함된 매크로 블록들 외에 매크로 블록들을 포함한다.
윈도우(63) 및 윈도우(64)는 콜로케이트된다. 본 실시예에서, 관심 매크로 블록(MB)(68), 즉 모션 벡터가 추정될 매크로 블록은 윈도우(64)의 중앙에 위치하지만, 전술한 바와 같이, 반드시 그래야 하는 것은 아니다.
윈도우(63 및 64)는 3×3 윈도우와 다를 수 있다는 것이 이해된다. 예를 들어, 5×5 윈도우가 사용될 수도 있다. 또한, 만일 관심 매크로 블록이 현재 프레임(62)의 한 에지를 따르면, 형태가 정사각형이 아닌 윈도우(예를 들어, 3×2 또는 2×3 윈도우)가 사용될 수도 있다.
일 실시예에서, 기준 프레임(61)은 디스플레이 순서에서 현재 프레임(62)보다 선행한다. 다른 실시예에서, 기준 프레임(61)은 디스플레이 순서에서 현재 프레임(62) 이후에 오는 프레임일 수도 있다; 즉, 기준 프레임(61)은 "미래의 프레 임"일 수도 있다. 또 다른 실시예에서, 현재 프레임(62)에 선행하는 프레임 및 현재 프레임(62) 이후의 미래의 프레임은 설명된 에러 은폐 방법에 대해 고려될 수도 있다.
미래의 프레임의 사용은 지연을 디코딩 프로세스로 유도할 수도 있다. 그러나 지연이 용인될 수 있는 애플리케이션에서, 미래의 프레임으로부터의 모션 벡터가 에러 은폐를 위해 사용될 수도 있다. 또한, 미래의 프레임으로부터의 모션 벡터가 현재 프레임(62)이 프레임들의 시퀀스에서 제1 프레임(예를 들어, I-프레임)인 예에서 사용될 수도 있다.
개략적으로, 흐름도(50)의 방법의 목적 중 하나는 프레임(61 및 62)의 매크로 블록과 관련된 적절하게 수신된 모션 벡터들로부터 후보 모션 벡터들의 세트(65)를 지혜롭게 선택하는 것이다. 일 실시예에서, 일단 후보 모션 벡터의 세트(65)가 식별되면, 벡터 중앙 필터(VMF:Vector Median Filter)(66)가 세트(65)의 벡터에 적용된다. VMF(66)의 출력은 관심 매크로 블록(68)에 대한 추정된 모션 벡터(MV)이다.
일 실시예의 경우, 도5의 블록(51)에서, 윈도우(63) 및 (64)가 식별된다. 윈도우(63)에서 매크로 블록과 관련된 올바르게 수신된 모션 벡터들, 및 윈도우(64)에서 매크로 블록과 관련된 올바르게 수신된 모션 벡터들이 액세스된다.
일 실시예의 경우, 블록(52)에서, (특히, 윈도우(63)에서) 기준 프레임(61)의 모션 벡터들이 후보 모션 벡터들의 세트(65)에 포함되기에 적격인 지에 관한 결정이 행해진다. 이러한 결정을 하기 위해 사용된 방법의 실시예들은 도7, 8, 9 및 10과 관련하여 설명된다.
일 실시예의 경우, 도5의 블록(53)에서, 만일 기준 프레임의 모션 벡터가 후보 모션 벡터의 세트(65)에 포함될 수 있다면, 윈도우(63) 및 윈도우(64)로부터의 모션 벡터가 지혜롭게 선택되고 세트(65)에 포함된다. 윈도우(63) 및 (64)로부터 모션 벡터를 선택하기 위해 사용된 방법의 실시예는 도11, 12, 13 및 14와 관련하여 설명된다.
일 실시예의 경우, 도5의 블록54에서, 만일 기준 프레임의 모션 벡터가 후보 모션 벡터의 세트(65)에 포함되기에 적격이지 않으면, 단지 윈도우(64)로부터의 모션 벡터만이 선택되어 세트(65)에 포함된다. 윈도우(64)가 어떠한 적절하게 수신된 모션 벡터도 포함하지 않는 예가 존재할 수 있음을 이해해야 한다. 도7 및 8의 방법은 이러한 예들을 설명하기 위해 사용될 수 있다.
일 실시예의 경우, 도5의 블록(55)에서, 후보 모션 벡터의 세트(65)의 통계적 크기가 결정된다. 통계적 크기는 관심 매크로 블록(68)에 대한 모션 벡터(67)를 한정한다. 이어 모션 벡터(67)는 관심 매크로 블록(68)에 적용될 수 있다.
일 실시예에서, 통계적 크기는 후보 모션 벡터의 세트(65)의 중앙값이다. 이러한 실시예에서, 세트(65)의 중앙값(특히, 중앙 벡터)이 다음과 같이 결정된다.
Figure 112007050187002-PCT00001
인, N개의 m-디멘존 벡터의 화살표의 경우, 중앙 벡터(
Figure 112007050187002-PCT00002
)는 이하의 제한을 만족시키는 벡터이다:
Figure 112007050187002-PCT00003
여기서 p는 벡터들 사이의 p-놈(norm) 메트릭들을 나타낸다. 간략화를 위해, 일 실시예에서, p=1이 사용된다. 2-디멘존 벡터
Figure 112007050187002-PCT00004
의 경우,
Figure 112007050187002-PCT00005
Figure 112007050187002-PCT00006
사이의 1-놈 거리는:
Figure 112007050187002-PCT00007
1
따라서, 일 실시예에서, 관심 매크로 블록(68)에 대한 추정된 모션 벡터(67)는 후보 모션 벡터의 세트(65)의 중앙값이다. 중앙값이 아닌 후보 모션 벡터의 세트(65)의 통계적 크기가 결정될 수 있으며, 추정된 모션 벡터(67)에 대해 사용될 수 있다. 예를 들어, 세트(65)의 평균이 결정되고 사용될 수 있다.
통상적으로, 후보 모션 벡터의 세트(65)가 식별된다. 이어 세트(65)는 관심 매크로 블록(68)에 대한 추정 모션 벡터(67)를 결정하기 위해 소정의 방식으로 동작된다. 추정된 모션 벡터(67)는 세트(65)에서의 모션 벡터들 중 하나일 수 있거나, 추정된 모션 벡터(67)는 세트(65)에 대해 동작함으로써 결정된 모션 벡터일 수도 있다.
중요한 것은, 추정된 모션 벡터(67)가 모션 벡터 도메인에서 결정되고 픽셀 도메인에서 결정되지 않는다는 것이다. 특히, 픽셀 값은 에러 은폐를 위해 사용되지 않으며, 후보 모션 벡터들 각각과 관련된 왜곡 값들은 에러 은폐를 위해 계산되지 않는다. 결론적으로, 계산 복잡성 및 관련된 디코딩 지연이 감소된다. 또한, 픽셀 값들을 검색하기 위해 프레임 버퍼를 액세스할 필요가 없으며, 이는 추가 디코딩 지연의 근원을 제거한다. 더욱이, 후보 모션 벡터의 세트(65)에 포함될 모션 벡터들을 지혜롭게 선택함으로써, 픽셀 기반 에러 은폐 기술과 관련한 피크 신호 대 잡음비(PSNR)보다 더 우수하지 않을 경우, 이에 필적하는 피크 신호 대 잡음 비(PSNR)가 달성된다.
도7은 모션 벡터 도메인-기반 일시적 에러 은폐 프로세스에서 사용되는 후보 모션 벡터를 선택하는 방법의 일 실시예의 흐름도(70)이다. 흐름도(70)는 도5의 블록(52, 53 및 54)을 구현하기 위한 방법의 일 실시예를 개시한다. 도7은 또한 도8을 참조로 기술된다.
일 실시예의 경우, 도7의 블록(71)에서, (기준 프레임(81)에서) 윈도우(83) 및 (현재 프레임(82)에서) 윈도우(84)가 식별된다. 기준 프레임(81) 및 현재 프레임(82)은 각각 윈도우(83) 및 (84)에 포함된 매크로 블록들 외에 매크로 블록들을 포함하고 있음이 이해된다.
윈도우(83)에서 매크로 블록들과 관련하여 적절하게 수신된 모션 벡터, 및 윈도우(84)에서 매크로 블록과 관련된 적절하게 수신된 모션 벡터들이 액세스될 수 있다. 윈도우(83)에서 적절하게 수신된 모션 벡터들은 문자 A를 이용하여 식별되는 반면, 윈도우(84)에서 적절하게 수신된 모션 벡터들은 문자 B를 이용하여 식별된다.
블록(72)에서, 윈도우(83) 및 (84) 내의 콜로케이트된 매크로 블록들의 각각의 쌍에 경우, 윈도우(84)에서 매크로 블록에 대해 적절하게 수신된 모션 벡터가 존재하는 지에 대한 결정이 행해진다.
블록(73)에서, 만일 윈도우(84)에서 매크로 블록에 대해 적절하게 수신된 모션 벡터가 존재하면, 모션 벡터는 후보 모션 벡터들의 세트(85)에 포함되며, 윈도우(83)에서 콜로케이트된 매크로 블록에 대한 모션 벡터는 세트(85)에 포함되지 않는다. 예를 들어, (기준 프레임(81)의 윈도우(83)에서) 매크로 블록(87)에 대한 적절하게 수신된 모션 벡터, 및 (현재 프레임(82)의 윈도우(84)에서) 매크로 블록(89)에 대한 적절하게 수신된 모션 벡터가 존재한다. 일 실시예에 따라, 매크로 블록(89)과 관련된 모션 벡터(현재 프레임(82))가 세트(85)에 포함되며, 매크로 블록(87)과 관련된 모션 벡터(기준 프레임(81))는 세트(85)에 포함되지 않는다.
블록(74)에서, 만일 윈도우(84)에서 매크로 블록에 대한 적절하게 수신된 모션 벡터가 존재하지 않으면, 윈도우(83)에서 콜로케이트된 매크로 블록에 대한 모션 벡터가 후보 모션 벡터의 세트(85)에 포함된다. 예를 들어, 관심 매크로 블록(88)에 대한 적절하게 수신된 모션 벡터가 존재하지 않으며, (기준 프레임(81)에서) 콜로케이트된 매크로 블록(86)과 관련된 모션 벡터가 세트(85)에 포함된다.
전술한 바와 같이, 후보 모션 벡터의 세트(85)의 통계적 크기가 결정(도5 및 6의 논의 참조)된다.
소정의 예에서, 하나의 프레임에서 다음 프레임으로의 모션은 연속적이지 않을 수도 있다. 예를 들어, 기준 프레임은 하나의 모션 타입을 포함할 수도 있는 반면, 현재 프레임의 모션은 방향을 변경하거나 정지할 수도 있다. 더욱이, 기준 프레임의 객체는 관심 매크로 블록의 이웃으로부터 이동할 수도 있어서, 후보 모션 벡터의 세트에서 객체에 대한 모션 벡터를 포함하는 것이 적당하지 않을 수도 있다.
도9는 프레임 대 프레임 모션 변화를 검출하는 방법의 일 실시예의 흐름도(90)이다. 도10은 프레임 대 프레임 모션 변화를 검출하는 방법의 또다른 실시예의 흐름도(100)이다. 흐름도(90) 및 (100) 중 하나 또는 둘 모두는 앞선 문단에서 언급된 포인트를 해결하기 위해, 후보 모션 벡터의 세트에 기준 프레임으로부터의 모션 벡터가 포함될 지를 결정하는데 사용될 수 있다.
도9를 우선 참조하면, 흐름도(90)는 도5의 블록(52)을 구현하는 방법의 일 실시예를 설명한다. 블록(91)에서, 기준 프레임과 관련한 모션 벡터에 대한 값의 제1 범위가 결정된다. 블록(92)에서, 현재 프레임과 관련한 모션 벡터에 대한 값의 제2 범위가 결정된다. 블록(93)에서, 값들의 제1 및 제2 범위가 비교되며, 기준 프레임과 관련한 모션 벡터는 비교의 결과에 따른 후보 모션 벡터의 세트에 포함된다.
도9는 도2를 참조하여 또한 설명된다. 일 실시예의 경우, 블록(91)에서, 모션 벡터 통계가 기준 프레임(21)과 관련하여 적절하게 수신된 모션 벡터들에 대해 계산된다.
일 실시예의 경우, 블록(92)에서, 모션 벡터 통계가 현재 프레임(22)과 관련하여 적절하게 수신된 모션 벡터에 대해 계산된다.
일 실시예에서, 기준 프레임(21) 및 현재 프레임(22)과 관련한 모든 모션 벡터들은 모션 벡터 통계의 계산에 포함된다. 다른 실시예에서, 단지 모션 벡터의 서브 세트가 모든 모션 벡터들을 대신하여 사용된다. 후자의 실시예에서, 예를 들어, 서브 세트는 두 프레임에 대한 모션 벡터가 적절하게 수신되는 매크로 블록과 관련한 모션 벡터만을 포함할 수도 있다. 즉, 예를 들어, 기준 프레임(21)에서 매크로 블록에 대한 모션 벡터는 만일 현재 프레임(22)에서 콜로케이트된 매크로 블록에 대한 모션 벡터가 또한 적절하게 수신되는 경우, 제1 서브 세트에만 포함된다. 유사하게, 현재 프레임(22)에서 매크로 블록에 대한 모션 벡터는 만일 기준 프레임(21)에서 콜로케이트된 매크로 블록에 대한 모션 벡터가 또한 적절하게 수신된 경우, 제2 서브 세트에만 포함된다.
일 실시예에서, 각각의 프레임의 경우, 계산된 통계는 모션 벡터 디멘존(크기/길이 및 방향/각)의 평균 및 표준 편차를 포함한다. / 를 모션 벡터 통계의 계산에 포함된 모션 벡터들(
Figure 112007050187002-PCT00008
)의 지수의 세트라고 하고, M 을 세트 /의 크기라고 하자. 이어 크기(mag) 및 각(ang)에 대한 평균 및 표준 편차(std)가 기준 프레임(21) 및 현재 프레임(22)에 대해 아래와 같이 계산된다.
Figure 112007050187002-PCT00009
Figure 112007050187002-PCT00010
Figure 112007050187002-PCT00011
Figure 112007050187002-PCT00012
여기서, 첨자 "frm"은 현재 프레임 또는 기준 프레임을 의미한다. 일단 평균 및 표준 편차가 계산되면, 범위(
Figure 112007050187002-PCT00013
Figure 112007050187002-PCT00014
)가 현재 및 기준 프레임 각각에 대해 형성된다.
일 실시예의 경우, 블록(93)에서, 기준 프레임(21) 및 현재 프레임(22)에 대한 모션 벡터 크기의 범위가 비교되며, 기준 프레임(21) 및 현재 프레임(22)에 대한 모션 벡터 각들의 범위가 또한 비교된다. 일 실시예에서, 만일 기준 프레임(21)에 대한 모션 벡터 크기의 범위가 현재 프레임(22)에 대한 모션 벡터의 크기의 범위와 중첩하고, 현재 프레임(21)에 대한 모션 벡터 각의 범위가 현재 프레임(22)에 대한 모션 벡터 각의 크기와 중첩하면, 기준 프레임(21) 및 현재 프레임(22)은 유사한 모션을 갖도록 판단된다. 결론적으로, 기준 프레임(21)으로부터 모션 벡터는 후보 모션 벡터의 세트(예를 들어, 도6의 세트(65))에 포함되는데 적격이다.
이제 도10을 참조하면, 흐름도(100)는 도5의 블록(52)을 구현하기 위한 방법 의 다른 실시예를 설명한다. 블록(101)에서, 모션 벡터의 쌍의 디멘존은 각각의 쌍에서 모션 벡터들이 서로 유사한지를 결정하기 위해 비교된다. 모션 벡터의 각각의 쌍은 기준 프레임에서 소정 위치에 있는 제1 매크로 블록과 관련된 제1 모션 벡터, 및 현재 프레임에서 상기 위치에 있는 제2 매크로 블록과 관련된 제2 모션 벡터를 포함한다.
블록(102)에서, 유사한 기준 및 현재 프레임에서 모션 벡터의 쌍의 수가 카운팅된다. 블록(103)에서, 기준 프레임으로부터 모션 벡터는 수가 임계치를 초과할 경우 후보 모션 벡터의 세트에 포함되기에 적격이다.
도10은 또한 도2를 참조하여 추가로 설명된다. 일 실시예의 경우, 블록(101)에서 콜로케이트된 매크로 블록의 각각의 쌍의 디멘존이 비교된다. 도2의 매크로 블록(108) 및 (109)는 콜로케이트된 매크로 블록의 쌍의 예이다.
비교를 용이하게 하기 위해, 일 실시예에서, 기준 프레임(21)에서 각각의 수신된 모션 벡터(21) 및 현재 프레임(22)에서 각각의 수신된 모션 벡터에는 크기 라벨 및 방향 라벨이 주어진다. 이러한 실시예에서, 크기 라벨은 자신의 상대적인 크기에 따라 0 또는 1의 값 중 하나를 갖는다. 예를 들어, 2 픽셀보다 작거나 같은 크기를 갖는 모션 벡터에는 0의 크기 라벨이 할당되고, 2 픽셀보다 큰 크기를 갖는 모션 벡터에는 1의 크기 라벨이 할당된다. 일 실시예에서, 방향 라벨은 0, 1, 2 또는 3의 값을 갖는다. 예를 들어, 프레임에서 수직 라인에 대해서, -45도 이상이고 45도 미만의 각을 갖는 모션 벡터에는 0의 방향 라벨이 할당될 수 있으며, 45도 이상이고 135도 미만의 각을 갖는 모션 벡터에는 1의 방향 라벨이 할당될 수 있다. 모션 벡터의 크기 및 방향을 라벨링하는 다른 방식이 사용될 수 있다.
일 실시예에서, 콜로케이트된 매크로 블록의 각각의 쌍의 경우, 상기 쌍에서 2 모션 벡터들의 크기 라벨이 비교되고, 상기 쌍에서 2 모션 벡터의 방향 라벨이 비교된다. 일 실시예에서, 만일 크기 라벨이 동일하고 방향 라벨이 쌍에서 2 모션 벡터들에 대해 반대이지 않으면, 모션 벡터의 상기 쌍은 유사한 것으로 한정된다. 본 발명에서, 유사하다고 고려될 쌍에서 2 모션 벡터들에 대한 순서에서 방향 라벨이 반드시 동일해야하는 것은 아니다. 예를 들어, 전술한 방식을 이용하여, 0의 방향 라벨이 0, 1, 또는 3의 방향 라벨에 유사하다고 고려될 수 있지만, 2의 방향 라벨과 반대이다. 무엇이 유사한 모션 벡터를 구성하는 지를 한정하는 다른 규칙이 사용될 수 있다.
일 실시예의 경우, 도10의 블록(102)에서, 유사한 모션 벡터를 포함하는 콜로케이트된 매크로 블록의 쌍들의 수가 카운팅된다. 다시 말해, 유사한 모션 벡터의 쌍들의 수가 카운팅된다.
일 실시예의 경우, 블록(103)에서, 기준 프레임(21)으로부터의 모션 벡터는 블록(102)에서 행해진 카운트가 임계치를 초과할 경우 후보 모션 벡터의 세트(예를 들어, 도6의 세트(65))에 포함되기에 적격이다. 일 실시예에서, 임계치는 두 프레임(21 또는 22) 중 하나에서 매크로 블록의 수의 절반과 동일하다.
관심 매크로 블록의 이웃에서, 모션 경계가 있을 수 있으며-모션 경계의 일측상의 객체는 모션 경계의 다른 측 상의 객체와 상이하게 이동할 수도 있다. 도11은 모션 경계를 위치시키는 방법의 일 실시예의 흐름도(110)이다. 흐름도(110) 는 도5의 블록(53)을 구현하는 방법의 일 실시예를 개시한다. 일 실시예에서, 블록(53)(따라서 흐름도(110)의 방법)은 도5의 블록(52)의 결과에 따라 구현된다.
도11의 블록(111)에서, 모션 경계는 기준 프레임에서 한정된다. 블록(112)에서, 후보 모션 벡터의 세트는 현재 프레임에서 관심 매크로 블록과 콜로케이트된 기준 프레임의 매크로 블록과 동일한 측의 모션 경계에 놓인 기준 프레임의 매크로 블록과 관련된 모션 벡터만을 포함한다.
도11은 또한 도12를 참조하여 추가로 설명된다. 도12는 기준 프레임(121)에서 윈도우(125), 및 현재 프레임(122)에서 윈도우(126)를 도시한다. 기준 프레임(121) 및 현재 프레임(122)이 각각 윈도우(125) 및 (126)에 포함된 매크로 블록 외에 매크로 블록을 포함하는 것이 이해된다.
일 실시예의 경우, 매크로 블록(111)에서, 모션 경계(129)는 기준 프레임(121)에서 식별된다. 일 실시예에서, 모션 경계(129)는 이하의 방법으로 식별된다. 기준 프레임(121)에서의 윈도우(125)에서 매크로 블록과 관련된 모션 벡터 각각에는 크기 라벨 및 방향 라벨이 할당된다. 도10과 관련한 전술한 논의는 모션 벡터들을 라벨링하기 위한 하나의 방법을 설명한다.
현재 프레임(122)에서의 관심 매크로 블록과 동일한 위치에 있는 기준 프레임(121)의 매크로 블록(124)과 관련된 모션 벡터는 클래스 0으로 분류된다. 즉, 매크로 블록(124)은 관심 매크로 블록(123)과 콜로케이트되며, 매크로 블록(124)과 관련된 모션 벡터는 특정 클래스(예를 들어, 클래스 0)의 제1 멤버로서 식별된다.
윈도우(125)와 관련한 다른 모션 벡터들의 크기 라벨은 매크로 블록(124)과 관련된 모션 벡터의 크기 라벨과 각각 비교되며, 윈도우(125)의 다른 모션 벡터의 방향 라벨은 매크로 블록(124)이 관련한 모션 벡터의 방향 라벨에 각각 비교된다.
일 실시예에서, 만일 모션 벡터에 대한 크기 라벨이 매크로 블록(124)과 관련한 모션 벡터의 크기 라벨과 동일하고, 상기 모션 벡터에 대한 각 라벨이 매크로 블록과 관련된 모션 벡터의 각 라벨과 반대이지 않으면, 모션 벡터는 매크로 블록(124)과 관련한 모션 벡터와 유사한 것으로 한정되며, 모션 벡터는 또한 클래스 0으로 분류된다. 언급한 바와 같이, 설명된 프로세스는 로컬 모션 클래스 맵(127)을 생성하기 위해 윈도우(125)와 관련된 각각의 모션 벡터에 대해 반복된다.
일 실시예의 경우, 블록(112)에서, 단지 매크로 블록(124)과 관련된 모션 벡터와 동일한 클래스에 있는 윈도우(125)와 관련된 모션 벡터들이 후보 모션 벡터의 세트(126)에 포함된다. 다시 말해서, 본 발명의 실시예에서, 매크로 블록(124)(관심 매크로 블록(123)과 콜로케이트된 매크로 블록)과 동일한 측의 모션 경계(129)에 있는 기준 프레임(121)의 윈도우(125)의 모션 벡터만이 후보 모션 벡터의 세트(128)에 포함된다. 즉, 도12의 예에서, 단지 클래스 0으로 분류된 모션 벡터가 세트(128)에 포함된다. 전술한 바와 같이, 후보 모션 벡터의 세트(128)의 통계적 크기가 결정(도5 및 6의 논의 참조)된다.
현재 프레임(122)의 윈도우(126)와 관련된 적절하게 수신된 모션 벡터들은 이들이 관심 매크로 블록(123)으로서 모션 경계의 동일한 측면에 또한 위치한 매크로 블록과 관련된 경우 세트(128)에 포함될 수 있다. 예를 들어, 맵(127)이 결정 된 후, 클래스 0으로 분류된 윈도우(127)에서 매크로 블록과 콜로케이트된 윈도우(126)에서 매크로 블록은 클래스 0으로 또한 분류될 수 있으며, 윈도우(126)에서 매크로블로과 관련된 모션 벡터는 세트(128)에 포함될 수 있다.
도13은 후보 모션 벡터를 선택하기 위해 이동하는 객체의 궤도를 이용하는 방법의 실시예의 흐름도(130)이다. 흐름도(130)는 도5의 블록(53)을 구현하는 방법의 일 실시예를 구현한다.
도13의 블록(131)에서, 기준 프레임의 제1 매크로 블록의 객체가 식별된다. 블록(132)에서, 객체와 관련된 모션 벡터는 객체가 현재 프레임에서 콜로케이트된 제2 매크로 블록과 충분히 중첩하면 후보 모션 벡터의 세트에 포함(즉, 제1 매크로 블록 및 제2 매크로 블록은 자신들의 각각의 프레임 내의 동일 위치에 존재함)된다.
도13은 또한 도14를 참조하여 추가로 설명된다. 도14는 기준 프레임(141)의 윈도우(147) 및 현재 프레임(142)의 윈도우(148)를 도시한다. 매크로 블록(143)은 매크로 블록(146)과 콜로케이트된다. 기준 프레임(141) 및 현재 프레임(142)이 각각 윈도우(147) 및 (148)에 포함된 매크로 블록 외에 매크로 블록을 포함하는 것이 이해된다.
일 실시예의 경우, 블록(131)에서, 기준 프레임 내의, 그리고 매크로 블록(146)과 콜로케이트된 매크로 블록(143)과 관련된 객체(144)가 식별된다. 현재 프레임(142)에서, 객체(144)는 상이한 위치로 이동하며, 매크로 블록(145)과 관련된다.
일 실시예의 경우, 블록(132)에서, 객체(144)를 포함하는 매크로 블록(145)이 충분한 양만큼 매크로 블록(146)을 중첩하는 지에 대한 결정이 행해진다. 만일 그렇다면, 객체(144)와 관련된 모션 벡터는 후보 모션 벡터의 세트(예를 들어 도6의 세트(65))에 포함될 수 있다. 만일 그렇지 않다면, 객체(144)와 관련된 모션 벡터는 세트에 포함되지 않는다.
도13 및 14와 관련하여 설명된 방법은 윈도우(147) 및 (148) 내의 소정의 매크로 블록에 유사하게 적용될 수 있다. 즉, 비록 윈도우(147) 및 (148)의 중앙 매크로 블록에 대해 기술되었지만, 본 발명은 이에 한정되지 않는다.
일 실시예에서, 25 퍼센트 이상의 중첩이 충분히 고려된다. 다양한 기술이 매크로 블록(145)이 상기 양만큼 매크로 블록(146)을 중첩하는 지를 결정하기 위해 사용될 수 있다. 일 실시예에서, 매크로 블록(145) 및 (146)은 각각 현재 프레임(142) 내의 각각의 위치를 한정하는 두 방향 좌표의 세트와 관련된다. 이러한 좌표를 이용하면, 예를 들어, 매크로 블록(145) 및 (146) 중 하나의 코너는 중첩의 양이 25 퍼센트를 초과하는 지를 결정하기 위해 다른 매크로 블록의 측면의 중앙점과 비교될 수 있다. 25 퍼센트가 아닌 임계치가 사용될 수 있다.
도9-14의 실시예는 본 발명의 실시예의 소정의 특징을 더욱 명확하게 설명하기 위해 개별적으로 설명된다; 그러나 실시예는 이러한 실시예의 상이한 특징을 결합하여 구현될 수도 있다. 일 실시예에서, 도9 및 10과 관련하여 설명된 방법들 중 하나는 도11-14와 관련하여 설명된 방법들 중 하나와 결합된다.
요약하면, 본 발명에 따른 실시예는 픽셀 도메인에서 픽셀 값들이 아닌 모션 벡터 도메인에서 모션 벡터를 이용하여 일시적 에러 은폐를 위한 방법 및 시스템을 제공한다. 결론적으로, 계산 복잡성은 왜곡 평가가 에러 은폐와 관련하여 제거될 수 있기 때문에 감소된다; 계산 단계의 수는 85퍼센트만큼 감소될 수도 있다. 지연을 디코딩하는 것은 하나의 프레임에서 매크로 블록의 하나의 슬라이스로 감소된다; 즉, 부재 모션 벡터를 추정하도록 이웃한 모션 벡터들을 이용하기 위해, 매크로 블록들의 슬라이스(예를 들어, 1행)만의 프로세싱이 지연될 수도 있다. 메모리 액세스 시간, 및 관련된 디코딩 지연은 픽셀 값들을 검색하기 위한 메모리 액세스가 에러 은폐와 관련하여 제거될 수 있기 때문에 감소된다. 하지만, 설명된 실시예는 픽셀 기반 에러 은폐 기술과 관련한 PSNR보다 우수하지 않을 경우 비교가능한 PSNR을 유도한다. 더욱이, 실시예는 하드웨어 변경을 하지 않고 실행될 수 있다.
설명된 개념은 에러 은폐 기술이 아닌 애플리케이션에 사용될 수 있다. 예를 들어, 실시예는 엔코더에서 모션 추정에 사용될 수 있다. 예를 들어, 통상의 계층적 모션 추정에서, 가장 낮은 공간 해상도에서 발견되는 모션 벡터가 더 높은 해상도에 대한 모션 벡터의 초기 추정으로서 사용된다. 대신에, 전술된 바와 같이 선택된 모션 벡터는 엔코더에서 모션 추정을 가속시키기 위해 초기 추정으로서 사용될 수 있다.
본 발명의 실시예가 설명된다. 본 발명이 다양한 상이한 실시예에 의해 설명되는 반면, 본 발명은 이러한 실시예에 국한되는 것은 아니며 이하의 청구항에 따라 해석된다.

Claims (35)

  1. 비디오 데이터를 프로세싱하는 방법으로서,
    상기 비디오 데이터의 제1 프레임 내의 제1 다수의 매크로 블록과 관련한 제1 다수의 모션 벡터, 및 상기 비디오 데이터의 제2 프레임 내의 제2 다수의 매크로 블록과 관련한 제2 다수의 모션 벡터로부터 모션 벡터들의 세트를 선택하는 단계;
    상기 모션 벡터들의 세트의 통계적 측정 -상기 통계적 측정은 상기 제2 다수의 매크로 블록 내의 관심 매크로 블록에 대한 모션 벡터를 한정함- 을 결정하는 단계; 및
    상기 모션 벡터를 상기 관심 매크로 블록에 적용하는 단계를 포함하는,
    비디오 데이터 프로세싱 방법.
  2. 제1항에 있어서,
    상기 결정 단계는 상기 세트의 중앙값을 결정하는 단계를 포함하며, 상기 관심 매크로 블록에 대한 모션 벡터는 상기 중앙값인 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  3. 제1항에 있어서,
    상기 결정 단계는 상기 세트의 평균을 결정하는 단계를 포함하며, 상기 관심 매크로 블록에 대한 상기 모션 벡터는 상기 평균인 것을 특징으로 하는 비디오 데 이터 프로세싱 방법.
  4. 제1항에 있어서, 상기 세트는,
    상기 제2 다수의 모션 벡터; 및
    상기 제1 다수의 매크로 블록의 선택된 매크로 블록들에 대한 모션 벡터를 포함하며, 만일 상기 제1 프레임 내의 위치에서 제1 매크로 블록에 대한 제1 모션 벡터가 존재하고 또한 상기 제2 프레임 내의 상기 위치에서 제2 매크로 블록에 대한 제2 모션 벡터가 존재하면, 상기 제2 모션 벡터는 상기 세트에 포함되며, 상기 제1 모션 벡터는 상기 세트에 포함되지 않는 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  5. 제1항에 있어서,
    상기 제1 다수의 모션 벡터로부터의 모션 벡터들이 상기 세트에 포함되기에 적합한지를 판단하는 단계를 더 포함하는 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  6. 제5항에 있어서, 상기 판단 단계는,
    상기 제1 프레임과 관련된 모션 벡터들에 대한 제1 범위의 값들을 결정하는 단계;
    상기 제2 프레임과 관련된 모션 벡터들에 대한 제2 범위 값들을 결정하는 단 계; 및
    상기 제1 범위의 값들과 상기 제2 범위의 값들을 비교하는 단계를 포함하며, 만일 상기 제1 및 제2 범위들이 특정한 양만큼 중첩하면, 상기 제1 다수의 모션 벡터로부터의 모션 벡터들은 상기 세트에 포함되기에 적합한 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  7. 제5항에 있어서, 상기 판단 단계는,
    모션 벡터들의 쌍들의 디멘존을 비교하여 상기 각각의 쌍들의 모션 벡터들이 서로 유사한지를 결정하는 단계를 포함하는데, 모션 벡터들의 상기 쌍들 각각은 상기 제1 프레임 내의 위치에서 제1 매크로 블록과 관련된 제1 모션 벡터 및 상기 제2 프레임 내의 상기 위치에서 제2 매크로 블록과 관련된 제2 모션 벡터를 포함하는데, 상기 벡터들은 이들이 규칙을 만족시키면 유사하며; 및
    유사한 상기 제1 및 제2 프레임들 내의 모션 벡터들의 쌍의 수를 카운팅하는 단계를 포함하며, 상기 제1 다수의 모션 벡터로부터의 모션 벡터는, 상기 수가 임계치를 초과하면 상기 세트에 포함되기에 적합한 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  8. 제5항에 있어서,
    상기 세트는 상기 관심 매크로 블록과 동일한 위치에서 상기 제1 프레임 내의 매크로 블록과 동일한 모션 경계의 측면에 놓인 상기 제1 다수의 매크로 블록의 매크로 블록들과 관련된 모션 벡터를 포함하는 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  9. 제5항에 있어서,
    상기 세트는 상기 관심 매크로 블록과 동일한 위치에 있는, 상기 제1 다수의 매크로 블록 내의 매크로 블록에 대한 모션 벡터와 유사한 상기 제1 다수의 모션 벡터들로부터의 모션 벡터들을 포함하며, 상기 모션 벡터는 이들이 규칙을 만족하면 유사한 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  10. 제1항에 있어서,
    상기 제2 프레임 내의 제2 매크로 블록과 동일 위치의 상기 제1 프레임 내의 제1 매크로 블록에 포함된 객체와 관련된 모션 벡터는, 상기 제2 프레임에서 상기 객체가 특정한 양만큼 상기 제2 매크로 블록과 중첩하면, 상기 세트에 포함되는 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  11. 제1항에 있어서,
    상기 제1 프레임은 디스플레이 순으로 상기 제2 프레임에 선행하는 것을 특징으로 하는 비디오 데이터 프로세싱 방법.
  12. 디코딩 장치가 비디오 데이터 프로세싱 방법을 실행하도록 하기 위해, 내장 된 컴퓨터 판독 가능 프로그램 코드를 갖는 컴퓨터 판독 가능 매체로서, 상기 프로세싱 방법은,
    상기 비디오 데이터의 제1 프레임 내의 제1 다수의 매크로 블록과 관련한 제1 다수의 모션 벡터, 및 상기 비디오 데이터의 제2 프레임 내의 제2 다수의 매크로 블록과 관련한 제2 다수의 모션 벡터로부터 모션 벡터들의 세트를 선택하는 단계;
    상기 모션 벡터들의 세트의 통계적 측정 -상기 통계적 측정은 상기 제2 다수의 매크로 블록 내의 관심 매크로 블록에 대한 모션 벡터를 한정함- 을 결정하는 단계; 및
    상기 모션 벡터를 상기 관심 매크로 블록에 적용하는 단계를 포함하는,
    컴퓨터 판독 가능 매체.
  13. 제12항에 있어서, 상기 세트는,
    상기 제2 다수의 모션 벡터; 및
    상기 제1 다수의 매크로 블록의 선택된 매크로 블록들에 대한 모션 벡터를 포함하며, 만일 상기 제1 프레임 내의 위치에서 제1 매크로 블록에 대한 제1 모션 벡터가 존재하고 또한 상기 제2 프레임 내의 상기 위치에서 제2 매크로 블록에 대한 제2 모션 벡터가 존재하면, 상기 제2 모션 벡터는 상기 세트에 포함되며, 상기 제1 모션 벡터는 상기 세트에 포함되지 않는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
  14. 제12항에 있어서,
    상기 제1 프레임과 관련된 모션 벡터들에 대한 제1 범위의 값들을 결정하는 단계;
    상기 제2 프레임과 관련된 모션 벡터들에 대한 제2 범위 값들을 결정하는 단계; 및
    상기 제1 범위의 값들과 상기 제2 범위의 값들을 비교하는 단계를 더 포함하며, 만일 상기 제1 및 제2 범위들이 특정한 양만큼 중첩하면, 상기 제1 다수의 모션 벡터로부터의 모션 벡터들은 상기 세트에 포함되기에 적합한 것을 특징으로 하는 컴퓨터 판독 가능 매체.
  15. 제12항에 있어서,
    모션 벡터들의 쌍들의 디멘존을 비교하여 상기 각각의 쌍들의 모션 벡터들이 서로 유사한지를 결정하는 단계를 포함하는데, 모션 벡터들의 상기 쌍들 각각은 상기 제1 프레임 내의 위치에서 제1 매크로 블록과 관련된 제1 모션 벡터 및 상기 제2 프레임 내의 상기 위치에서 제2 매크로 블록과 관련된 제2 모션 벡터를 포함하는데, 상기 벡터들은 이들이 규칙을 만족시키면 유사하며; 및
    유사한 상기 제1 및 제2 프레임들 내의 모션 벡터들의 쌍의 수를 카운팅하는 단계를 더 포함하며, 상기 제1 다수의 모션 벡터로부터의 모션 벡터는, 상기 수가 임계치를 초과하면 상기 세트에 포함되기에 적합한 것을 특징으로 하는 컴퓨터 판독 가능 매체.
  16. 제12항에 있어서,
    상기 세트는 상기 관심 매크로 블록과 동일한 위치에서 상기 제1 프레임 내의 매크로 블록과 동일한 모션 경계의 측면에 놓인 상기 제1 다수의 매크로 블록의 매크로 블록들과 관련된 모션 벡터를 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
  17. 제12항에 있어서,
    상기 제2 프레임 내의 제2 매크로 블록과 동일 위치의 상기 제1 프레임 내의 제1 매크로 블록에 포함된 객체와 관련된 모션 벡터는, 상기 제2 프레임에서 상기 객체가 특정한 양만큼 상기 제2 매크로 블록과 중첩하면, 상기 세트에 포함되는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
  18. 제12항에 있어서,
    상기 제1 프레임은 디스플레이 순으로 상기 제2 프레임에 선행하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
  19. 비디오 데이터를 프로세싱하는 시스템으로서,
    상기 비디오 데이터의 제1 프레임 내의 제1 다수의 매크로 블록과 관련한 제1 다수의 모션 벡터, 및 상기 비디오 데이터의 제2 프레임 내의 제2 다수의 매크로 블록과 관련한 제2 다수의 모션 벡터로부터 모션 벡터들의 세트를 선택하는 수단;
    상기 모션 벡터들의 세트의 통계적 측정 -상기 통계적 측정은 상기 제2 다수의 매크로 블록 내의 관심 매크로 블록에 대한 모션 벡터를 한정함- 을 결정하는 수단; 및
    상기 모션 벡터를 상기 관심 매크로 블록에 적용하는 수단을 포함하는,
    비디오 데이터 프로세싱 시스템.
  20. 제19항에 있어서, 상기 세트는,
    상기 제2 다수의 모션 벡터; 및
    상기 제1 다수의 매크로 블록의 선택된 매크로 블록들에 대한 모션 벡터를 포함하며, 만일 상기 제1 프레임 내의 위치에서 제1 매크로 블록에 대한 제1 모션 벡터가 존재하고 또한 상기 제2 프레임 내의 상기 위치에서 제2 매크로 블록에 대한 제2 모션 벡터가 존재하면, 상기 제2 모션 벡터는 상기 세트에 포함되며, 상기 제1 모션 벡터는 상기 세트에 포함되지 않는 것을 특징으로 하는 비디오 데이터 프로세싱 시스템.
  21. 제19항에 있어서,
    상기 제1 다수의 모션 벡터로부터의 모션 벡터들이 상기 세트에 포함되기에 적합한지를 판단하는 수단을 더 포함하는 것을 특징으로 하는 비디오 데이터 프로세싱 시스템.
  22. 제21항에 있어서, 상기 판단 수단은,
    상기 제1 프레임과 관련된 모션 벡터들에 대한 제1 범위의 값들을 결정하는 수단;
    상기 제2 프레임과 관련된 모션 벡터들에 대한 제2 범위 값들을 결정하는 수단; 및
    상기 제1 범위의 값들과 상기 제2 범위의 값들을 비교하는 수단을 포함하며, 만일 상기 제1 및 제2 범위들이 특정한 양만큼 중첩하면, 상기 제1 다수의 모션 벡터로부터의 모션 벡터들은 상기 세트에 포함되기에 적합한 것을 특징으로 하는 비디오 데이터 프로세싱 시스템.
  23. 제21항에 있어서, 상기 판단 수단은,
    모션 벡터들의 쌍들의 디멘존을 비교하여 상기 각각의 쌍들의 모션 벡터들이 서로 유사한지를 결정하는 수단을 포함하는데, 모션 벡터들의 상기 쌍들 각각은 상기 제1 프레임 내의 위치에서 제1 매크로 블록과 관련된 제1 모션 벡터 및 상기 제2 프레임 내의 상기 위치에서 제2 매크로 블록과 관련된 제2 모션 벡터를 포함하는데, 상기 벡터들은 이들이 규칙을 만족시키면 유사하며; 및
    유사한 상기 제1 및 제2 프레임들 내의 모션 벡터들의 쌍의 수를 카운팅하는 수단을 포함하며, 상기 제1 다수의 모션 벡터로부터의 모션 벡터는, 상기 수가 임계치를 초과하면 상기 세트에 포함되기에 적합한 것을 특징으로 하는 비디오 데이 터 프로세싱 시스템.
  24. 제21항에 있어서,
    상기 세트는 상기 관심 매크로 블록과 동일한 위치에서 상기 제1 프레임 내의 매크로 블록과 동일한 모션 경계의 측면에 놓인 상기 제1 다수의 매크로 블록의 매크로 블록들과 관련된 모션 벡터를 포함하는 것을 특징으로 하는 비디오 데이터 프로세싱 시스템.
  25. 제21항에 있어서,
    상기 세트는 상기 관심 매크로 블록과 동일한 위치에 있는, 상기 제1 다수의 매크로 블록 내의 매크로 블록에 대한 모션 벡터와 유사한 상기 제1 다수의 모션 벡터들로부터의 모션 벡터들을 포함하며, 상기 모션 벡터는 이들이 규칙을 만족하면 유사한 것을 특징으로 하는 비디오 데이터 프로세싱 시스템.
  26. 제19항에 있어서,
    상기 제2 프레임 내의 제2 매크로 블록과 동일 위치의 상기 제1 프레임 내의 제1 매크로 블록에 포함된 객체와 관련된 모션 벡터는, 상기 제2 프레임에서 상기 객체가 특정한 양만큼 상기 제2 매크로 블록과 중첩하면, 상기 세트에 포함되는 것을 특징으로 하는 비디오 데이터 프로세싱 시스템.
  27. 제19항에 있어서,
    상기 제1 프레임은 디스플레이 순으로 상기 제2 프레임에 선행하는 것을 특징으로 하는 비디오 데이터 프로세싱 시스템.
  28. 마이크로프로세서; 및
    상기 마이크로프로세서에 연결된 메모리 유닛을 포함하는 장치로서, 상기 메모리 유닛은 상기 마이크로프로세서에 의해 실행될 때 비디오 데이터를 프로세싱하는 방법을 구현하는 명령들을 포함하며, 상기 방법은,
    상기 비디오 데이터의 제1 프레임 내의 제1 다수의 매크로 블록과 관련한 제1 다수의 모션 벡터, 및 상기 비디오 데이터의 제2 프레임 내의 제2 다수의 매크로 블록과 관련한 제2 다수의 모션 벡터로부터 모션 벡터들의 세트를 선택하는 단계;
    상기 모션 벡터들의 세트의 통계적 측정 -상기 통계적 측정은 상기 제2 다수의 매크로 블록 내의 관심 매크로 블록에 대한 모션 벡터를 한정함- 을 결정하는 단계; 및
    상기 모션 벡터를 상기 관심 매크로 블록에 적용하는 단계를 포함하는,
    장치.
  29. 제28항에 있어서, 상기 세트는,
    상기 제2 다수의 모션 벡터; 및
    상기 제1 다수의 매크로 블록의 선택된 매크로 블록들에 대한 모션 벡터를 포함하며, 만일 상기 제1 프레임 내의 위치에서 제1 매크로 블록에 대한 제1 모션 벡터가 존재하고 또한 상기 제2 프레임 내의 상기 위치에서 제2 매크로 블록에 대한 제2 모션 벡터가 존재하면, 상기 제2 모션 벡터는 상기 세트에 포함되며, 상기 제1 모션 벡터는 상기 세트에 포함되지 않는 것을 특징으로 하는 장치.
  30. 제28항에 있어서, 상기 방법은,
    상기 제1 프레임과 관련된 모션 벡터들에 대한 제1 범위의 값들을 결정하는 단계;
    상기 제2 프레임과 관련된 모션 벡터들에 대한 제2 범위 값들을 결정하는 단계; 및
    상기 제1 범위의 값들과 상기 제2 범위의 값들을 비교하는 단계를 더 포함하며, 만일 상기 제1 및 제2 범위들이 특정한 양만큼 중첩하면, 상기 제1 다수의 모션 벡터로부터의 모션 벡터들은 상기 세트에 포함되기에 적합한 것을 특징으로 하는 장치.
  31. 제28항에 있어서, 상기 방법은,
    모션 벡터들의 쌍들의 디멘존을 비교하여 상기 각각의 쌍들의 모션 벡터들이 서로 유사한지를 결정하는 단계를 포함하는데, 모션 벡터들의 상기 쌍들 각각은 상기 제1 프레임 내의 위치에서 제1 매크로 블록과 관련된 제1 모션 벡터 및 상기 제2 프레임 내의 상기 위치에서 제2 매크로 블록과 관련된 제2 모션 벡터를 포함하는 데, 상기 벡터들은 이들이 규칙을 만족시키면 유사하며; 및
    유사한 상기 제1 및 제2 프레임들 내의 모션 벡터들의 쌍의 수를 카운팅하는 단계를 더 포함하며, 상기 제1 다수의 모션 벡터로부터의 모션 벡터는, 상기 수가 임계치를 초과하면 상기 세트에 포함되기에 적합한 것을 특징으로 하는 장치.
  32. 제28항에 있어서,
    상기 세트는 상기 관심 매크로 블록과 동일한 위치에서 상기 제1 프레임 내의 매크로 블록과 동일한 모션 경계의 측면에 놓인 상기 제1 다수의 매크로 블록의 매크로 블록들과 관련된 모션 벡터를 포함하는 것을 특징으로 하는 장치.
  33. 제28항에 있어서,
    상기 세트는 상기 관심 매크로 블록과 동일한 위치에 있는, 상기 제1 다수의 매크로 블록 내의 매크로 블록에 대한 모션 벡터와 유사한 상기 제1 다수의 모션 벡터들로부터의 모션 벡터들을 포함하며, 상기 모션 벡터는 이들이 규칙을 만족하면 유사한 것을 특징으로 하는 장치.
  34. 제28항에 있어서,
    상기 제2 프레임 내의 제2 매크로 블록과 동일 위치의 상기 제1 프레임 내의 제1 매크로 블록에 포함된 객체와 관련된 모션 벡터는, 상기 제2 프레임에서 상기 객체가 특정한 양만큼 상기 제2 매크로 블록과 중첩하면, 상기 세트에 포함되는 것 을 특징으로 하는 장치.
  35. 제28항에 있어서,
    상기 제1 프레임은 디스플레이 순으로 상기 제2 프레임에 선행하는 것을 특징으로 하는 장치.
KR1020077015762A 2004-12-22 2005-12-22 비디오 통신을 위한 모션 벡터의 일시적 추정 KR100964407B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/022,362 2004-12-22
US11/022,362 US20060133495A1 (en) 2004-12-22 2004-12-22 Temporal error concealment for video communications

Publications (2)

Publication Number Publication Date
KR20070090242A true KR20070090242A (ko) 2007-09-05
KR100964407B1 KR100964407B1 (ko) 2010-06-15

Family

ID=36177977

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077015762A KR100964407B1 (ko) 2004-12-22 2005-12-22 비디오 통신을 위한 모션 벡터의 일시적 추정

Country Status (9)

Country Link
US (2) US20060133495A1 (ko)
EP (1) EP1829383B1 (ko)
JP (2) JP5021494B2 (ko)
KR (1) KR100964407B1 (ko)
CN (1) CN101116345B (ko)
AT (1) ATE494735T1 (ko)
DE (1) DE602005025808D1 (ko)
TW (1) TW200637375A (ko)
WO (1) WO2006069297A1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366462B2 (en) 2003-10-24 2008-04-29 Qualcomm Incorporated Method and apparatus for seamlessly switching reception between multimedia streams in a wireless communication system
US8948262B2 (en) 2004-07-01 2015-02-03 Qualcomm Incorporated Method and apparatus for using frame rate up conversion techniques in scalable video coding
WO2006012384A2 (en) 2004-07-20 2006-02-02 Qualcomm Incorporated Method and apparatus for encoder assisted-frame rate up conversion (ea-fruc) for video compression
US8553776B2 (en) 2004-07-21 2013-10-08 QUALCOMM Inorporated Method and apparatus for motion vector assignment
US20060133495A1 (en) * 2004-12-22 2006-06-22 Yan Ye Temporal error concealment for video communications
GB0500332D0 (en) * 2005-01-08 2005-02-16 Univ Bristol Enhanced error concealment
US8514933B2 (en) * 2005-03-01 2013-08-20 Qualcomm Incorporated Adaptive frame skipping techniques for rate controlled video encoding
CN100459717C (zh) * 2005-04-20 2009-02-04 华为技术有限公司 基于h.264的压缩视频传输误码消除方法
US7660354B2 (en) * 2005-05-11 2010-02-09 Fang Shi Temporal error concealment for bi-directionally predicted frames
KR100843083B1 (ko) * 2005-12-14 2008-07-02 삼성전자주식회사 움직임 추정 기반 프레임 보간을 위한 장치 및 방법
US8401082B2 (en) 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US8634463B2 (en) 2006-04-04 2014-01-21 Qualcomm Incorporated Apparatus and method of enhanced frame interpolation in video compression
US8750387B2 (en) 2006-04-04 2014-06-10 Qualcomm Incorporated Adaptive encoder-assisted frame rate up conversion
US8213509B2 (en) * 2006-10-06 2012-07-03 Calos Fund Limited Liability Company Video coding on parallel processing systems
KR101365567B1 (ko) * 2007-01-04 2014-02-20 삼성전자주식회사 영상의 예측 부호화 방법 및 장치, 그 복호화 방법 및 장치
FR2915342A1 (fr) * 2007-04-20 2008-10-24 Canon Kk Procede et dispositif de codage video
US8683213B2 (en) 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
EP2240905B1 (en) * 2008-01-11 2012-08-08 Zoran (France) Sparse geometry for super resolution video processing
US9641861B2 (en) * 2008-01-25 2017-05-02 Mediatek Inc. Method and integrated circuit for video processing
US8948822B2 (en) * 2008-04-23 2015-02-03 Qualcomm Incorporated Coordinating power management functions in a multi-media device
US8908763B2 (en) * 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
US8599920B2 (en) * 2008-08-05 2013-12-03 Qualcomm Incorporated Intensity compensation techniques in video processing
US8964828B2 (en) * 2008-08-19 2015-02-24 Qualcomm Incorporated Power and computational load management techniques in video processing
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
US8619856B2 (en) 2008-10-03 2013-12-31 Qualcomm Incorporated Video coding with large macroblocks
US8634456B2 (en) 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
CN102131095B (zh) * 2010-01-18 2013-03-20 联发科技股份有限公司 移动预测方法及视频编码方法
US9036692B2 (en) * 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
US8976873B2 (en) * 2010-11-24 2015-03-10 Stmicroelectronics S.R.L. Apparatus and method for performing error concealment of inter-coded video frames
TWI628950B (zh) * 2011-06-27 2018-07-01 三星電子股份有限公司 影像解碼裝置
JP5649523B2 (ja) * 2011-06-27 2015-01-07 日本電信電話株式会社 映像符号化方法,装置,映像復号方法,装置およびそれらのプログラム
MX2014000159A (es) 2011-07-02 2014-02-19 Samsung Electronics Co Ltd Metodo y aparato para la codificacion de video, y metodo y aparato para la decodificacion de video acompañada por inter prediccion utilizando imagen co-localizada.
US20150195521A1 (en) * 2014-01-09 2015-07-09 Nvidia Corporation Candidate motion vector selection systems and methods
US9888421B2 (en) 2014-09-16 2018-02-06 Mediatek Inc. Method of enhanced bearer continuity for 3GPP system change
US9800825B2 (en) * 2015-03-02 2017-10-24 Chih-Ta Star Sung Semiconductor display driver device, mobile multimedia apparatus and method for frame rate conversion

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737022A (en) 1993-02-26 1998-04-07 Kabushiki Kaisha Toshiba Motion picture error concealment using simplified motion compensation
US5621467A (en) 1995-02-16 1997-04-15 Thomson Multimedia S.A. Temporal-spatial error concealment apparatus and method for video signal processors
EP0897247A3 (de) * 1997-08-14 2001-02-07 Philips Patentverwaltung GmbH Verfahren zur Berechnung von Bewegungsvektoren
US6865227B2 (en) * 2001-07-10 2005-03-08 Sony Corporation Error concealment of video data using motion vector data recovery
EP1659802B1 (en) * 2001-10-05 2008-07-23 Mitsubishi Electric Information Technology Centre Europe B.V. Method and apparatus for compensating for motion vector errors in image data
EP1395061A1 (en) 2002-08-27 2004-03-03 Mitsubishi Electric Information Technology Centre Europe B.V. Method and apparatus for compensation of erroneous motion vectors in video data
US7336720B2 (en) * 2002-09-27 2008-02-26 Vanguard Software Solutions, Inc. Real-time video coding/decoding
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US20060133495A1 (en) * 2004-12-22 2006-06-22 Yan Ye Temporal error concealment for video communications

Also Published As

Publication number Publication date
KR100964407B1 (ko) 2010-06-15
JP5420600B2 (ja) 2014-02-19
TW200637375A (en) 2006-10-16
US20060133495A1 (en) 2006-06-22
JP2011254508A (ja) 2011-12-15
CN101116345B (zh) 2010-12-22
JP5021494B2 (ja) 2012-09-05
CN101116345A (zh) 2008-01-30
DE602005025808D1 (de) 2011-02-17
US8817879B2 (en) 2014-08-26
EP1829383B1 (en) 2011-01-05
ATE494735T1 (de) 2011-01-15
EP1829383A1 (en) 2007-09-05
WO2006069297A1 (en) 2006-06-29
JP2008526119A (ja) 2008-07-17
US20100118970A1 (en) 2010-05-13

Similar Documents

Publication Publication Date Title
KR100964407B1 (ko) 비디오 통신을 위한 모션 벡터의 일시적 추정
CN100525462C (zh) 错误隐藏方法及设备
JP5373626B2 (ja) 複数の動きベクトル・プレディクタを使用して動きベクトルを推定する方法、装置、エンコーダ、デコーダ及びデコーディング方法
CN101268701B (zh) 一种由电子处理器执行的方法以及由其实现的设备
US7606313B2 (en) System, method, and apparatus for error concealment in coded video signals
US20130022121A1 (en) Methods and apparatus for concealing corrupted blocks of video data
KR970025185A (ko) 특징적 기반 움직임 추정을 이용하여 비디오 신호를 부호화 및 복호화하는 장치
KR20000014401A (ko) 오류 은폐 방법
GB2497915A (en) Estimating the quality of a video signal
KR100873317B1 (ko) 에러 은폐 방법 및 장치
JP2000224593A (ja) フレーム補間方法および装置およびこの方法を記録した記録媒体
US20100128791A1 (en) Video coding method and device
JP2001186521A (ja) 画像復号化装置及び方法
TWI423167B (zh) 壓縮視訊源之多圖框移動外推技術
JP2007142883A (ja) 画像処理装置及び画像処理方法
JPH10341440A (ja) 動画像符号化方法および装置
JP3150627B2 (ja) 復号信号の再符号化方法
KR20010072745A (ko) 이미지 전체 모션 벡터를 이용하여 디지털화된 이미지를코딩하기 위한 방법 및 장치
KR20040027047A (ko) 예측 스캐닝을 이용한 영상 부호화/복호화 방법 및 장치
JP2000350209A (ja) リアルタイム動映像符号化のための高速動き推定方法及びその装置
JPH04277982A (ja) 映像信号の高能率符号化装置
CN110868611B (zh) 视频编码、解码方法及装置
KR100388802B1 (ko) 오류은폐장치및방법
KR20090093675A (ko) 곡선 보간을 이용한 에러복원방법
JP6188550B2 (ja) 画像復号装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 9