KR20110133597A - 비디오 데이터의 모션 벡터들을 프로세싱하는 시스템 및 방법 - Google Patents

비디오 데이터의 모션 벡터들을 프로세싱하는 시스템 및 방법 Download PDF

Info

Publication number
KR20110133597A
KR20110133597A KR1020117023412A KR20117023412A KR20110133597A KR 20110133597 A KR20110133597 A KR 20110133597A KR 1020117023412 A KR1020117023412 A KR 1020117023412A KR 20117023412 A KR20117023412 A KR 20117023412A KR 20110133597 A KR20110133597 A KR 20110133597A
Authority
KR
South Korea
Prior art keywords
block
blocks
motion
inter
video data
Prior art date
Application number
KR1020117023412A
Other languages
English (en)
Other versions
KR101275066B1 (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 KR20110133597A publication Critical patent/KR20110133597A/ko
Application granted granted Critical
Publication of KR101275066B1 publication Critical patent/KR101275066B1/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

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 세트의 인터-블록들이 식별되며, 인터-블록들의 세트에서 각각의 인터-블록은 이들과 연관되는 모션 벡터를 갖는다. 제 1 및 제2 세트들의 인터-블록들의 데이터는 제 1 및 제 2 세트들 각각과 연관되는 에러를 결정하기 위해 평가된다. 최소 에러를 갖는 세트의 인터-블록들의 모션 벡터들과 연관되는 모션 벡터가 결정된다. 결정된 모션 벡터는 식별된 인트라-블록과 연관된다.

Description

비디오 데이터의 모션 벡터들을 프로세싱하는 시스템 및 방법{SYSTEM AND METHOD TO PROCESS MOTION VECTORS OF VIDEO DATA}
[0001] 본 개시물은 전반적으로 비디오 데이터의 모션 벡터들을 프로세싱하는 것과 관련된다.
[0002] 기술에서의 진보는 더 작고 더욱 강력한 컴퓨팅 및 비디오 프로세싱 디바이스들을 산출했다. 예를 들어, 현재 휴대용 무선 전화, PDA(personal digital assistant)들, 및 작고 가벼워 사용자들에 의해 쉽게 보유되는 페이징 디바이스들과 같은 무선 컴퓨팅 디바이스들을 포함하는 다양한 휴대용 개인용 컴퓨팅 디바이스들이 존재한다. 또한, 이러한 다수의 휴대용 또는 무선 컴퓨팅 디바이스들은 이러한 디바이스들이 디지털 스틸 카메라, 디지털 비디오 카메라, 디지털 리코더, 및 오디오 파일 플레이어의 기능을 제공하는 것을 가능케 하는 하드웨어 또는 소프트웨어 컴포넌트들을 포함한다. 또한, 이러한 전화기들은 인터넷을 액세스하는데 이용될 수 있는 웹 브라우저 애플리케이션과 같은 소프트웨어 애플리케이션들의 실행가능한 명령들을 프로세싱할 수 있다. 이처럼, 이러한 전화기들 및 다른 디바이스들은 상당한 컴퓨팅 능력들 및 이미지 프로세싱 능력들을 포함할 수 있다.
[0003] 셀 전화들, PDA들, 비디오 플레이어들 및 다른 디바이스들과 같은 다수의 디바이스들은 인터넷을 액세스하고 비디오를 프로세싱하고 디스플레이할 수 있기 때문에, 다수의 이러한 디바이스들은 디바이스에 의해 프로세싱되도록 디스플레이될 비디오 데이터를 인터넷 또는 다른 네트워크로부터 수신할 수 있다. MPEE(Moving Pictures Expert Group) 표준들 및 다른 비디오 프로세싱 표준들에 따라, 비디오 전송 디바이스에 의해 전송되는 비디오 데이터는 비디오 데이터의 연속 프레임들로서 체계화된다(organized). 동영상의 비디오 데이터의 비디오 프로세싱은 단위 시간 당 전송 채널을 통해 전송될 수 있는 비디오 프레임들의 수를 증가시키고 제시된 용량의 저장 매체에 저장될 수 있는 프레임들의 수를 증가시키는 것을 시도한다. 효율적으로 이러한 증가들을 달성하기 위해, 비디오 인코더는 비디오 수신기에서 동영상의 실질적 재구성(substantial reconstruction)을 가능케하기 위해 전송되고 저장되어야 하는 정보의 양을 최소화시키는 것을 시도한다. 일부 인코더들에서, 각각의 비디오 프레임은 16x16 픽셀 매크로 블록들 또는 다른 블록 크기로 분할될 수 있다. 이러한 데이터의 실질적 압축(substantial compression)은 각각의 매크로 블록의 4개의 8x8 픽셀 서브-블록들 각각에 대해 이산 코사인 변환(Discrete Cosine Transform)을 적용함으로써 달성될 수 있다. 다른 블록 크기들이 사용될 수 있으며 다른 변환들이 적용될 수 있다. 결과적으로 변환된 이미지는 연속적으로 양자화되고, 인코딩되고 전송된다.
[0004] 모션 프로세싱은 비디오 데이터의 모션을 추정 및 예측함으로써 비디오 수신기에서 동영상의 실질적 재구성을 가능케하기 위해 요구되는 데이터의 양을 추가로 감소시킨다. 모션으로 인해, 프레임의 블록에서 표현되는 데이터는 이전에 인코딩된 프레임의 데이터 블록과 근사하게 매칭될 수 있다. 예를 들어, 이동 객체(moving object)는 비디오 스트림의 인접한 프레임들에서 흔히 식별될 수 있다. 이동 객체는 동일하게 유지될 수 있으나, 모션으로 인해 단지 이동 객체의 위치가 변위될 수 있다. 이동 객체의 모션은 적어도 이동 객체를 표현하는 데이터의 위치를 변화시킴으로써 부분적으로 재현될 수 있기 때문에, 수신기에서 비디오를 재현(reproduce)하기 위해 전송되는 데이터의 양이 감소될 수 있다.
[0005] 모션에 의해 야기되는 상이한 프레임들에서의 데이터들 간의 유사성(similarity) 활용으로, 모션 추정기는 연속하는 프레임들 간에 가장근사한 매칭 블록을 찾도록 시도할 수 있다. 블록 모션의 검출되는 양과 같은 크기를 갖는 블록 모션의 검출되는 방향에서의 벡터는 모션 벡터(motion vector)로 불린다. 차동(differential)의 "인터-프레임(inter-frame)" 모드에서 동작할 때, 비디오 인코더는 인접한 프레임이 재구성될 수 있는 블록들과 연관되는 모션 벡터들 및 현재 프레임에 대한 데이터를 전송한다. 따라서, 비디오 수신기에서 전체(full) 프레임들을 실질적으로 재구성하는데 있어 인터-프레임 모드에서 보다 적은(less) 데이터가 전송되게 요구된다. 비-차동의 "인트라-프레임(intra-frame)" 모드에서 동작할 때, 비디오 인코더는 모션 벡터들 없이 현재 블록을 전송할 수 있다.
[0006] 인터-프레임 모드에서, 비디오 수신기는 프레임의 블록의 모션을 "예측"하기 위해 비디오 데이터 스트림에 수신된 각각의 모션 벡터를 이용한다. 이런 방식에서, 비디오 수신기는 현재 프레임으로부터의 인접한 프레임에 대한 프레임 데이터 및 모션 벡터 데이터를 재구성한다. 모션 벡터는 프레임들 사이에 프레임을 보간(interpolate)하거나 또는 차동 프레임 데이터로부터 프레임을 외삽(extrapolate)하는데 이용될 수 있다. 이런 방식으로, 데이터는 상대적으로 낮은 프레임 레이트(rate)로 전송되고 더 높은 프레임 레이트로 수신기에서 상향-변환될 수 있다. 수신기에서 프레임들의 정확한 재구성은 부분적으로는, 수신된 비디오 데이터 스트림의 모션 벡터들의 정확도 또는 신뢰도와 관련된다.
[0007] 본 명세서에 개시된 실시예들에 따라, 비디오 데이터를 프로세싱하는 방법들, 장치들 및 컴퓨터 판독가능 매체가 개시된다. 예를 들어, 실시예들은 셀 전화들 및 다른 비디오 재생(playing) 디바이스들을 포함할 수 있다. 특히, 비디오 수신기에 의해 수신된 비디오 데이터의 모션 벡터들은 비디오 데이터를 재구성하고 데이터의 프레임 레이트를 증가시키도록 프로세싱된다. 일부 실시예들에서, 인터-블록들의 수신된 모션 벡터들은 인트라-블록들에 대한 모션 벡터들을 유추(derive)하는데 이용된다.
[0008] 특정 실시예에서, 비디오 데이터를 프로세싱하는 방법이 개시된다. 방법은 비디오 데이터의 비디오 프레임내의 인트라-블록을 식별하는 단계를 포함한다. 또한, 방법은 인트라-블록에 인접하는 인터-블록들의 제 1 세트 및 제 2 세트를 식별하는 단계를 포함한다. 인트라-블록들의 세트에서 각각의 인터-블록은 모션 벡터와 연관된다. 방법은 제 1 세트 및 제 2 세트 중 어느 세트가 상기 세트와 연관된 최소 에러(least error)를 갖는지를 결정하기 위해 인터-블록들의 제 1 세트 및 제 2 세트의 데이터를 평가하는 단계를 포함할 수 있다. 일부 실시예들에서, 동일 세트에 있는 모션 벡터들 간의 제곱 에러(squared error)가 결정된다. 또한, 방법은 최소 에러를 갖는 세트 내의 인터-블록들의 모션 벡터들과 연관된 모션 벡터를 결정하는 단계를 더 포함하며, 결정된 모션 벡터는 인트라-블록과 연관된다.
[0009] 또 다른 특정 실시예에서, 모션 벡터들을 유추하고 모션 벡터들을 인트라-블록들에 할당하기 위한 장치가 개시된다. 장치는 상기 장치에 의해 수신되는 비디오 데이터의 비디오 프레임의 인트라-블록을 식별하는 인트라-블록 식별자를 포함한다. 또한, 장치는 인트라-블록에 인접하는 인터-블록들의 적어도 하나의 세트를 식별하는 인터-블록 세트 식별자를 포함한다. 인터-블록들의 세트에서 각각의 인터-블록은 수신된 비디오 데이터의 각각의 모션 벡터와 연관된다. 에러 계산기는 각각의 세트에 대해 세트에 있는 인터-블록들의 모션 벡터들 또는 데이터와 연관되는 에러를 결정한다. 세트 선택기는 최소 에러를 갖는 세트를 선택한다. 또한, 장치는 선택된 세트의 인터-블록들의 모션 벡터들의 중간(median)을 결정하는 중간 벡터 계산기를 포함하며, 중간 모션 벡터는 식별된 인트라-블록과 연관된다.
[0010] 또 다른 특정 실시예에서, 컴퓨터 판독가능 실체적(tangible) 매체는 컴퓨터로 하여금 인트라-블록을 식별하게 하고 모션 벡터를 유추하게 하고 모션 벡터를 인접하는 블록들로부터 인트라-블록에 할당하기 위한 컴퓨터 코드를 포함한다. 매체는 컴퓨터로 하여금 비디오 데이터의 수신된 스트림에 있는 인트라-블록을 식별하게 하는 컴퓨터 코드를 포함한다. 매체는 컴퓨터로 하여금 인트라-블록에 인접하는 인터-블록들의 적어도 하나의 세트를 식별하게 하는 컴퓨터 코드를 더 포함한다. 또한, 매체는 컴퓨터로 하여금 각각의 세트에 대한 에러를 결정하기 위해 각각의 세트의 인터-블록들의 데이터와 연관되는 에러를 결정하게 하는 컴퓨터 코드를 포함한다. 매체는 컴퓨터로 하여금 최소 에러를 갖는 식별된 세트를 선택하거나 또는 단지 하나의 세트가 식별될 경우에만 세트를 선택하게 하는 컴퓨터 코드를 더 포함한다. 또한, 매체는 컴퓨터로 하여금 선택된 세트의 인터-블록들의 모션 벡터들로부터 중간 모션 벡터를 결정하게 하는 컴퓨터 코드를 포함하며, 중간 모션 벡터는 인트라-블록과 연관된다.
[0011] 또 다른 특정 실시예에서, 장치는 인트라-블록에 인접하는 인터-블록들의 적어도 하나의 세트를 결정하기 위한 수단을 포함한다. 장치는 인터-블록들의 적어도 하나의 세트와 연관된 에러를 결정하기 위한 수단을 더 포함한다. 또한, 장치는 세트와 연관된 에러에 기초하여 세트를 선택하기 위한 수단을 포함한다. 또한, 장치는 선택된 세트의 인터-블록들의 모션 벡터들의 중간 벡터를 결정하기 위한 수단을 포함하며, 중간 모션 벡터는 인트라-블록과 연관된다.
[0012] 따라서, 본 발명의 일 양상은 종래의 시스템들과의 비교시 비디오 데이터를 재구성하고 비디오 데이터의 프레임 레이트를 증가시키기 위해 모션 벡터들의 개선된 프로세싱을 제공한다.
[0013] 본 개시물의 다른 양상들, 장점들 및 특징들은 하기의 도면의 간단한 설명, 구체적인 설명 및 청구항들의 섹션들을 포함하는 전체 명세서의 검토 후에 명확해질 것이다.
[0014] 도 1은 인트라-블록에 인접하는 인터-블록들에 대한 다수의 가능한 세트들을 도시하는 비디오 데이터의 수신기 및 비디오 데이터의 소스의 실시예의 블록 다이어그램이다.
[0015] 도 2는 도 1의 비디오 데이터 소스 및 비디오 수신기의 상세한 블록 다이어그램이다.
[0016] 도 3은 프레임 레이트 상향-변환(up-conversion) 유니트의 실시예의 블록 다이어그램이다.
[0017] 도 4는 프로세싱을 위해 더 작은 블록들로 하위세분화된(subdivided) 매크로 블록의 블록 다이어그램이다.
[0018] 도 5는 모션 벡터 예비프로세싱 및 할당 방법의 실시예의 흐름도이다.
[0019] 도 6은 정적 프레임 핸들러의 실시예의 블록 다이어그램이다.
[0020] 도 7은 정적 프레임들을 핸들링하는 방법의 실시예의 흐름도이다.
[0021] 도 8은 패닝 분석기의 실시예의 블록 다이어그램이다.
[0022] 도 9는 패닝 분석 방법의 실시예의 흐름도이다.
[0023] 도 10은 모션 벡터 프로세서의 실시예의 블록 다이어그램이다.
[0024] 도 11은 센터 블록에 인접한 블록들의 블록 다이어그램이다.
[0025] 도 12는 모션 벡터들의 공간적 연속성(spatial continuity)을 액세스하는 방법의 실시예의 흐름도이다.
[0026] 도 13은 모션 벡터들의 시간적 연속성(temporal continuity)을 액세스하는 방법의 실시예의 흐름도이다.
[0027] 도 14는 모션 추정 엔진을 이용하여 모션 벡터들을 계산하는 것과 프로세싱된 모션 벡터들을 이용하는 것 중 하나를(between) 선택하는 방법의 실시예의 흐름도이다.
[0028] 도 15는 경계 검출기 및 교정기의 실시예의 블록 다이어그램이다.
[0029] 도 16은 매크로 블록 또는 프레임의 경계에 인접한 블록들의 실시예의 블록 다이어그램이다.
[0030] 도 17은 경계 모션 벡터들의 검출 및 교정 방법의 실시예의 흐름도이다.
[0031] 도 18은 모션 적응식 포스트프로세서의 실시예의 블록 다이어그램이다.
[0032] 도 19는 로우(row) 레벨 포스트프로세싱 방법의 실시예의 흐름도이다. 그리고
[0033] 도 20은 경계 강도 값들을 할당하기 위한 방법의 실시예의 흐름도이다.
[0034] 개시된 설명은 압축된 비디오 데이터의 모션 벡터들을 프로세싱하기 위한 시스템들 및 방법들을 개시한다. 예시적 실시예에서, 인트라-블록(intra-block)은 수신된 비디오 데이터 스트림에서 연관되는 모션 벡터가 없는 비디오 데이터의 블록이다. 또한, 본 명세서에 개시된 방법들은 디코더에서 추정되는 모션 벡터들의 사용에 의해 이용될 수 있다. 디코더에서 추정되는 모션 벡터들에 대해 이러한 방법들을 적용할 때, 인트라-블록들은 이들의 연관된 왜곡 메트릭(distortion metirc)이 임계치 이상인 것으로서 결정된다. 실시예에서, 인트라-블록에는 인트라-블록에 인접한 인터-블록들의 모션 벡터들로부터 유추되는(derived) 모션 벡터가 할당된다. 보다 특정하게, 인트라-블록 벡터는 인터-블록들과 인접하는 데이터와 연관되는 최소 에러를 갖는 인접하는 인터-블록들의 모션 벡터들로부터 유추된다. 또한, 모션 벡터들의 프로세싱은 비디오 프레임들의 비디오 콘텐츠가 정적인 경우 프레임 레이트 상향-변환을 디스에이블링하는 단계를 포함할 수 있다. 모션 벡터들의 프로세싱은 비디오 콘텐츠에 패닝(panning)이 존재하는지를 결정하고, 만약 그렇다면 양방향성 모션 보상 예측과 같은 패닝-적응 프로세싱을 수행하는 것을 포함할 수 있다. 모션 벡터들의 프로세싱은 모션 벡터들의 공간 및 시간적 연속성의 측정치(measure)를 결정하는 것을 포함할 수 있다. 모션 벡터 프로세싱의 이러한 및 다른 양상들이 본 명세서에 개시된다.
[0035] 도 1은 비디오 데이터의 소스 및 비디오 데이터의 수신기의 실시예의 블록 다이어그램이다. 도 1은 인트라-블록에 인접한 인터-블록들의 세트들을 식별하고 인터-블록들의 세트로부터 모션 벡터를 유추하기 위한 사항들을 도시한다. 유추된 모션 벡터는 이동하는 벡터의 프로세싱의 보다 효율적 구성을 위해 인트라-블록과 연관될 수 있다. 도 1에서, 비디오 데이터는 비디오 데이터 소스(100)로부터 수신된다. 비디오 데이터 소스(100)는 텔레비전 스테이션 또는 웹사이트 또는 비디오 데이터의 다른 소스일 수 있다. 비디오 수신기(102)는 비디오 데이터 소스(100)로부터 데이터를 수신하며, 비디오 데이터를 프로세싱하고, 비디오 디스플레이(114) 상에 프로세싱된 비디오 데이터를 디스플레이한다. 수신된 비디오 데이터의 일부 프로세싱은 모션 벡터 프리프로세서 및 할당 모듈(103)에 의해 수행된다.
[0036] 모션 벡터 프리프로세서 및 할당 모듈(103)은 모션 벡터들을 유추하고 모션 벡터들을 인트라-블록들에 할당하도록 구성된다. 인트라-블록은 수신된 비디오 데이터에서 이와 연관되는 모션 벡터를 갖지 않는 블록일 수 있다. 모션 벡터들이 디코더에서 추정되는 또 다른 시나리오에서, 인트라-블록은 그의 모션 추정 왜곡 매트릭이 임계치 이상인 블록일 수 있다. 모션 벡터 프리프로세서 및 할당 모듈(103)은 수신된 비디오 데이터의 인트라-블록을 식별하는 인트라-블록 식별자(104)를 포함한다. 인접하는 인트라-블록 세트 식별자(106)는 인트라-블록에 인접하는 인터-블록들의 하나 이상의 세트들을 식별한다. 인터-블록은 상이한 데이터를 가지며 이와 연관된 모션 벡터를 갖는다. 특히, 도 1은 하나 이상의 인트라-블록들이 인접하는 인터-블록 세트들의 상이한 패턴들 A, B 및 C을 도시한다. 대표적인 인트라-블록(120)이 I로 표시되며, 대표적인 인터-블록(122)이 P로 표시된다. 패턴 A는 코너 패턴이며, 패턴 B는 사이드 패턴이며, 패턴 C는 인접한 쌍들의 패턴이다. 일부 실시예들에서, 각각의 블록은 4×4 그룹의 픽셀들을 나타낸다. 각각의 패턴은 인트라-블록에 인접하는 음영화된 인터-블록들의 2개 세트를 도시한다. 패턴들은 데이터의 인트라-블록들의 구성에 기초하여 선택된다. 인터-블록들의 다른 패턴들이 검출될 수 있다.
[0037] 세트 데이터 평가기(108)는 각각의 식별된 세트와 연관되는 에러를 결정하기 위해 인터-블록들의 각각의 식별된 세트의 데이터를 평가한다. 예시적 실시예에 따라, 각각의 세트와 연관된 에러는 세트의 인터-블록들의 모션 벡터들의 제곱 평균 에러일 수 있다. 다른 에러 측정들이 사용될 수 있다. 예를 들어, 인터-블록들의 패턴은 프레임들의 객체(object)의 모션 때문에 프레임들 사이에서 데이터의 최소 변환을 나타내는 데이터를 포함할 수 있다. 다음, 인터-블록 세트 선택기는 최소 에러를 가지는 인터-블록들의 세트를 선택할 수 있다. 단지 하나의 식별된 세트가 있다면, 선택기(110)는 단지 하나의 세트를 선택한다. 세트가 선택되면, 중간 모션 벡터 계산기(112)는 선택된 세트의 인터-블록들의 모션 벡터들의 중간 벡터를 계산한다. 중간 모션 벡터는 인터-블록들의 모션 벡터들의 상위 절반부와 인터-블록들의 모션 벡터들의 하위 절반부 사이에 위치되는 벡터이다. 이러한 중간 모션 벡터는 인트라-블록에 할당된다. 일부 실시예들에서, 선택된 세트의 모션 벡터들의 평균 값 모션 벡터는 인트라-블록에 할당된다. 다른 측정치들이 사용될 수 있다.
[0038] 도 1을 참조로 기능적으로 개시된 것처럼, 특정 실시예에서, 비디오 수신기(102)는 장치에 의해 수신된 비디오 데이터의 비디오 프레임의 인트라-블록을 식별하는 인트라-블록 식별자를 포함하는 장치이며, 수신된 비디오 데이터의 모션 벡터는 식별된 인트라-블록과 연관되지 않는다. 또한, 장치는 식별된 인트라-블록에 인접하는 8개의 블록들 중에서 인트라-블록에 인접하는 인터-블록들의 적어도 하나의 세트를 식별하는 인접 세트 식별자를 포함한다. 에러 계산기는 인접하는 인터-블록들의 각각이 세트와 연관되는 에러를 결정한다. 세트 선택기는 단지 하나의 세트가 식별될 때에만 세트를 선택하거나 또는 최소 에러를 갖는 세트를 선택한다. 중간 벡터 계산기는 선택된 패턴의 모션 벡터들의 중간 모션 벡터를 결정한다. 할당 모듈은 식별된 인트라-블록과 중간 모션 벡터를 연관시킨다. 최소 에러를 갖는 인터-블록 세트의 모션 벡터들의 중간 모션 벡터를 선택함으로써, 인트라-블록에 대한 모션 예측이 실질적으로 개선된다.
[0039] 도 2는 비디오 데이터 소스(100) 및 비디오 수신기(102)의 특정 실시예의 상세도이다. 비디오 데이터 소스(100)는 비디오 데이터를 인코딩하기 위한 비디오 인코더(202)를 포함한다. 비디오 인코더(202)는 낮은 프레임 레이트 비디오 데이터(204)에서 야기되는 낮은 프레임 레이트로 압축 및 인코딩된 비디오 데이터를 생성하기 위해 비디오 데이터의 공간적 및 시간적 리던던시(redundancy)를 이용한다. 낮은 프레임 레이트 비디오 데이터(204)는 인터-블록들과 연관된 모션 벡터들을 포함한다. 비디오 수신기(102)는 낮은 프레임 레이트 데이터를 수신하는 수신기 인터페이스(208)를 포함한다. 일부 실시예들에서, 수신기 인터페이스(208)는 RF(무선 주파수) 통신들에 의해 비디오 데이터를 수신하기 위한 무선 트랜시버이다. 따라서, 비디오 수신기(102)는 비디오 데이터 소스(100)로부터 낮은 프레임 레이트 비디오 데이터(204)를 수신할 수 있다. 일 실시예에서, 프레임 레이트 상향-변환 유니트(210)는 수신기 인터페이스(208)로부터 낮은 프레임 레이트 비디오 데이터(204)를 수신하며 디스플레이를 위해 비디오 데이터의 프레임 레이트를 증가시키기 위해 보간된(interpolated) 프레임들을 생성한다. 일부 실시예들에서, 비디오 데이터는 유선(wireline) 접속에 의해 수신된다.
[0040] 일부 실시예들에서, 프레임 레이트 상향-변환 유니트(210)는 모션 벡터 프리프로세서 및 할당 모듈(103)을 포함한다. 다른 실시예들에서, 프레임 레이트 상향-변환 유니트(210)는 도 3을 참조로 개시되는 엔트로피 디코더(304)를 포함하며 모션 벡터 프리프로세서 및 할당 모듈(103)은 프레임 레이트 상향-변환 유니트를 선행한다. 모션 벡터 프리프로세서 및 할당 모듈(103)은 모션 벡터, 이를 테면 인트라-블록에 인접하는 인터-블록들의 모션 벡터들의 중간을 결정하며, 인트라-블록에 결정된 중간 모션 벡터를 할당한다. 모션 추정 엔진(212)은 프로세싱된 모션 벡터들이 모션 검출에 대해 적합하지 않다고 간주될 때 프레임에 대한 모션 벡터들을 생성하기 위해 인접 프레임들을 분석하는데 이용된다. 모션 적응 포스트 프로세서(motion adaptive post processor)(216)는 프레임 레이트 상향-변환 유니트(210)로부터 프레임들을 수신하며 하기 개시되는 것처럼, 비디오 데이터의 객체들의 모션과 연관되는 비디오 데이터의 아티팩트(artifact)들을 감소 또는 삭제한다.
[0041] 모션 적응 포스트 프로세서(216)로부터의 비디오 데이터의 프레임들은 프레임 버퍼(218)에 저장된다. 프레임들은 높은 프레임 레이트 비디오(220)에서 버퍼의 출력에 제공된다. 높은 프레임 레이트 비디오(220)의 프레임 레이트는 프레임 상향-변환으로 인해, 낮은 프레임 레이트 비디오 데이터(204)의 프레임 레이트 보다 높다. 높은 프레임 레이트 비디오(220)는 비디오 디스플레이(114)에 의해 디스플레이된다. 일부 실시예들에서, 비디오 수신기(102)는 본 명세서에 개시된 것처럼 비디오 프로세싱 기능들을 수행하기 위해 비디오 수신기(102) 내의 프로세서에 의해 실행되는 프로세서 명령들을 저장하는 메모리(224)를 포함한다. 예를 들어, 프레임 레이트 상향 변환 유니트(210), 모션 추정 엔진(212), 및 모션 적응 포스트 프로세서(216)는 개시된 기능들을 수행하기 위해 명령들을 실행하는 프로세서로서 구현될 수 있다. 대안적으로, 또는 추가적으로, 프레임 레이트 상향 변환 유니트(210), 모션 추정 엔진(212), 및/또는 모션 적응 포스트 프로세서(216)는 특정 회로, 또는 필드 프로그램가능 게이트 어레이들(FPGA)과 같은 하드웨어 컴포넌들을 포함할 수 있다.
[0042] 도 3은 프레임 레이트 상향-변환 유니트(210), 모션 추정 엔진(212), 및 모션 적응 포스트 프로세서(216)의 실시예를 도시한다. 일 실시예에서, 프레임 레이트 상향-변환 유니트(210)는 수신기 인터페이스(208)로부터 낮은 프레임 레이트 비디오 데이터를 수신한다. 일부 실시예들에서, 수신기 인터페이스(208)는 무선 트랜시버이다. 또 다른 실시예에서, 비디오 데이터는 유선(wireline)으로 수신된다. 엔트로피 디코더(304)는 비디오 데이터를 수신하고 데이터의 엔트로피 디코딩을 수행한다. 모션 벡터 프리프로세싱 및 할당 모듈(103)은 디코딩된 비디오 데이터를 수신하며 앞서 개시된 것처럼, 인접하는 인터-블록들의 모션 벡터들의 값들에 기초하여 데이터의 인트라-블록들에 모션 벡터들을 할당한다. 일부 실시예들에서, 프레임 레이트 상향-변환 유니트(210)는 이를 테면 4×4 블록들의 픽셀들에 해당하는 데이터와 같은 데이터의 블록들로 데이터를 세분화한다.
[0043] 정적 프레임 핸들러(308)는 프레임이 인접 프레임과 관련하여 정적인지를 결정한다. 일반적으로, 프레임은 프레임과 인접 프레임 간에 실질적으로 모션이 없는 경우 정적이다. 프레임이 정적인 것으로 간주될 경우, 정적 프레임들에 대해 프레임 레이트 상향-변환 프로세스가 발생하지 않으며, 이는 정적 프레임이 재연(replay)될 수 있기 때문이다. 프레임 레이트 상향-변환이 발생하지 않을 때, 프레임 레이트 상향-변환 동안의 전력 소모 및 보간된 프레임 데이터를 디스플레이로 전송할 때 소모되는 전력이 절감될 수 있다. 정적이지 않은 비디오 데이터에 대해, 패닝 분석기(310)는 데이터에 패닝이 존재하는지를 결정하고 만약 그렇다면 모션 보상 예측기(320)를 갖는 모션 추정 엔진(212)으로 하여금 모션 보상 예측을 수행하게 한다. 또 다른 실시예에서, 패닝 분석은 보다 나은 모션 벡터들을 산출하도록 모션 벡터 프로세서 유니트(312)를 보조할 수 있다. 패닝이 존재하는 시기를 결정하는 것이 도 8 및 도 9를 참조로 하기에 추가로 개시된다.
[0044] 모션 벡터 프로세서(312)는 프레임 레이트 상향-변환 유니트(210)에 의해 프로세싱되는 모션 벡터들의 공간적 연속성 및 시간적 연속성을 평가하고 또한 모션 추정 엔진(212)에 의해 모션 추정을 수행할지 또는 프로세싱된 모션 벡터들을 사용할지에 대해 결정한다. 경계 검출기 및 교정기(314)는 프레임의 경계에 대한 블록들의 모션 벡터들을 검출하며 검출된 모션 벡터들을 경계상에 있지 않은 인접 블록들의 모션 벡터들로 교체한다. 프레임 레이트 상향-변환 유니트(210)의 출력은 비디오 콘텐츠가 디스플레이될 때 원치않은 아티팩트들이 디스플레이되는 것을 제거 또는 감소시킨다.
[0045] 도 4는 프로세싱을 위해 더 작은 블록들로 하위분할되는 매크로 블록(400)의 실시예의 예시도이다. 수신된 데이터 스트림에서, 비디오 데이터의 각각의 프레임은 16×16 픽셀 매크로 블록들, 이를 테면 매크로 블록(400)으로 세분화될 수 있다. 본 명세서에 개시된 일부 실시예들에서, 각각의 매크로 블록은 4×4 픽셀 블록들, 이를 테면 대표 블록(402)으로 추가로 하위분할된다. 더 작은 블록들로의 하위분할은 더 작은 객체의 모션 검출을 가능케 한다.
[0046] 도 5는 모션 벡터 프리프로세싱 및 할당 방법의 실시예에 대한 흐름도이다. 특정 실시예에서, 방법은 도 1-3의 모션 벡터 프리프로세서 및 할당 모듈(103)에 의해 수행될 수 있다. 502에서, 인트라-블록이 식별된다. 504에서, 인접하는 인터-블록 세트들이 식별된다. 506에서, 인접하는 인터-블록들의 각각의 식별된 세트에 대해, 세트에서 인접하는 인터-블록들의 데이터의 제곱 평균 에러가 각각의 세트에 대해 계산된다. 508에서, 최소 에러를 갖는 세트가 선택된다. 510에서, 선택된 세트의 블록들의 모션 벡터들의 중간이 계산된다. 512에서, 중간 벡터는 인트라-블록과 중간 벡터를 연관시킴으로써 인트라-블록에 할당된다.
[0047] 도 6은 도 3에 도시된 정적 프레임 핸들러(308)의 실시예의 블록 다이어그램이다. 정적 프레임 핸들러는 2개의 컴포넌트들, 즉 정적 프레임 분류기(604) 및 프레임 레이트 상향-변환 디스에이블러(disabler)(606)를 포함한다. 정적 프레임 핸들러(308)의 정적 프레임 분류기(604)는 수신된 프레임들의 시퀀스내에서 프레임에서 프레임으로의 모션이 실질적으로 없다면, 이를 테면 결정된 모션 양이 임계치 미만이면 프레임을 정적인 것으로 분류한다. 정정 프레임이 검출될 때, 프레임 레이트 상향-변환기 디스에이블러(606)는 정적 프레임들에 대한 프레임 레이트 상향-변환을 디스에이블링시키며 정적 프레임이 복제될 수 있다(duplicate). 다른 실시예들에서, 정적 프레임 핸들러 다음에 프레임 보간 결정 블록이 이어지며, 여기서는 모션 및 품질 검사를 통해 프레임 레이트 상향 변환을 수행할지 또는 수행하지 않을지 여부가 결정된다.
[0048] 도 7은 정적 프레임들을 핸들링하기 위한 방법의 실시예의 흐름도이다. 예시적 실시예에서, 방법은 정적 프레임 핸들러(308)에 의해 수행된다. 702에서, 프레임이 정적인지를 결정하기 위해 순차적 프레임들이 비교된다. 따라서, 프레임들을 비교함으로써, 704에서, 하나의 프레임은 프레임들의 시퀀스에서 다른 프레임과 관련하여 정적인 것으로 결정될 수 있다. 정적 프레임이 검출될 경우, 706에서, 프레임 레이트 상향-변환은 순차적 프레임들에 대해 디스에이블링된다. 그렇지 않은 경우, 708에서, 프로세스는 하기에 논의될 패닝 분석을 지속한다.
[0049] 도 7과 관련하여 기능적으로 개시된 것처럼, 일부 실시예들은 비디오 데이터의 비디오 프레임이 정적인 시기를 결정하고 정적 비디오 프레임이 검출될 때 프레임 레이트 상향-변환 프로세스를 선택적으로 일시중단시키기 위해 정적 프레임 핸들러를 포함한다. 또 다른 실시예에 따라, 방법은 비디오 데이터의 프레임의 콘텐츠가 정적인지를 결정하는 단계를 포함한다. 콘텐츠가 정적인 것으로 발견될 때, 프레임 레이트 상향-변환은 디스에이블링될 수 있다.
[0050] 도 8은 도 3의 패닝 분석기(310)의 실시예에 대한 블록 다이어그램이다. 패닝 분석기(310)는 최대값, 평균값 및 변량(variance)과 같은, 프레임의 모션 벡터들의 통계치들을 수집하는 통계치 수집기(804)를 포함한다. 통계치 수집기(804)가 수집하는 통계치들은 비디오 데이터에 의해 패닝이 표시되는 것을 결정하기 위해 사용된다. 예를 들어, 패닝 메트릭, 이를 테면 평균값이 미리결정된 레벨 이상이고 모션 벡터들의 x 및 y 컴포넌트들의 변량이 임계치 미만이면, 패닝이 결정될 수 있다. 중간 벡터 계산기(806)는 패닝 벡터를 생성하기 위해 프레임의 모션 벡터들의 중간을 결정한다. 임계치 비교기(808)는 패닝 벡터가 임계치를 초과하는지를 결정한다. 또한, 모션 벡터 비교기(810)는 모션 벡터에 해당하는 블록이 패닝되고 있는지를 결정하기 위해 프레임내의 각각의 모션 벡터를 패닝 벡터와 비교한다. 패닝이 검출되면, 모션 보상 예측기(320)는 단방향성 모션 보상 예측 대신에, 양방향성 모션 보상 예측 또는 다른 패닝-적응 예측을 수행할 수 있다. 양방향성 모션 보상 예측은 시간적 프레임 예측의 정확도 개선을 산출할 수 있다.
[0051] 따라서, 실시예는 비디오 데이터가 패닝 모션을 나타내는 시기를 결정하는 패닝 분석기, 및 패닝이 결정될 때 양방향성 모션 보상 예측을 수행하는 양방향성 모션 보상 예측기를 포함할 수 있다.
[0052] 도 9는 패닝 분석을 위한 방법의 실시예의 흐름도이다. 예시적 실시예에서, 방법은 패닝 분석기(310)에 의해 구현될 수 있다. 902에서, 모션 벡터들의 통계치들이 결정된다. 이러한 통계치들은 프레임의 모션 벡터들의 최대값 및 평균값을 포함할 수 있다. 904에서, 패닝 벡터를 산출하기 위해 프레임의 모션 벡터들의 중간이 계산된다. 906에서, 프레임의 각각의 모션 벡터는 패닝되는 블록들의 수를 결정하기 위해 패닝 벡터와 비교된다. 따라서, 908에서, 모션 벡터와 패닝 벡터 간의 차는 미리결정된 임계치와 비교된다. 차(difference)가 프레임들 간의 패닝을 식별하기 위해 선택된 미리결정된 임계치 미만이면, 910에서, 모션 벡터에 대응하는 블록이 패닝 블록들의 그룹에 할당된다. 그렇지 않다면, 912에서, 프로세스는 패닝 벡터가 임계치를 초과하는지를 결정하도록 진행된다. 패닝 벡터가 임계치를 초과하면, 914에서, 패닝 플래그(flag)가 설정된다. 패닝 벡터가 임계치를 초과하지 않으면, 916에서 패닝 플래그는 제로로 유지된다.
[0053] 도 9에서처럼, 실시예는 비디오 데이터의 프레임이 패닝 모션을 표시하는지 여부를 결정하는 단계, 및 패닝 모션이 표시될 때 비디오 데이터의 차후 프레임에서 블록의 양방향성 모션-보상 예측을 수행하는 단계를 포함하는 방법일 수 있다.
[0054] 도 10은 모션 벡터 프로세서(312)의 실시예의 블록 다이어그램이다. 모션 벡터 프로세서(312)는 공간적 연속성 모듈(1004), 시간적 연속성 모듈(1006), 및 모션 추정 결정 모듈(1008)을 포함한다. 공간적 연속성 모듈(1004)은 중앙 블록의 모션 벡터를 인접 블록들의 모션 벡터들과 비교함으로써 모션 벡터들의 연속성을 평가한다. 공간적 연속성 모듈(1006)은 하나의 프레임에서 블록의 모션 벡터의 연속성을 또 다른 프레임에서 해당 블록의 모션 벡터에 대해 평가한다. 모션 추정 결정 모듈(1008)은 모션 벡터 프리프로세싱 및 할당 모듈(103)에 의해 결정되는 프로세싱된 모션 벡터를 사용할지 또는 블록에 대한 모션 벡터를 결정하기 위해 모션 추정을 수행할지 여부를 결정한다.
[0055] 도 11은 블록들 중에서 공간적 연속성을 결정하는 실시예를 개시하기 위해 이용되는 프레임 내의 블록들의 예시도이다. 블록들의 세트(1150)에서, 다수의 블록들이 중앙 블록 C(1100)에 인접하게 위치된다. 도 11에서, 중앙 블록 C(1100)은 상부 블록 T(1102), 바닥 블록 B(1104), 및 측면 블록 L(1106) 및 측면 블록 R(1108)에 인접한다. 도 12를 참조로 개시되는 것처럼, 공간적 연속성은 이러한 인접한 블록들 T, B, L 및 R(1102, 1104, 1106 및 1108)을 사용하여 평가된다. 중앙 블록의 모션 벡터와 인접 블록들의 모션 벡터들의 평균치 간의 차는 크지만, 인접 블록들의 모션 벡터들 간의 차가 작다면, 중앙 벡터의 프로세싱된 모션 벡터가 사용되지 않을 수 있고 대신 인접 모션 벡터들의 평균치가 사용될 수 있다.
[0056] 도 12는 모션 벡터들의 공간적 연속성을 평가하는 방법의 실시예의 흐름도이다. 예시적 실시예에서, 방법은 도 3의 모션 벡터 프로세서(312)에 의해 수행될 수 있다. 1024에서, 공간적 연속성에 대해 분석되지 않았던 도 11의 중앙 블록 C(1100)과 같은 중앙 블록이 프레임 내에 유지되는 것으로 결정되면, 1206에서, 중앙 블록의 대향 측(opposite side)에 대해 인접 블록의 모션 벡터 및 하나의 인접 블록의 모션 벡터 간의 차가 결정된다. 예를 들어, 도 11의 블록 L(1106) 및 블록 R(1108)의 모션 벡터들 간의 차가 결정된다. 1208에서, 차는 제 1 임계치와 비교된다. 차가 제 1 임계치를 초과하면, 1204에서, 다음 중앙 블록이 평가된다. 중앙 블록이 남아있지 않다면, 1214에서 프로세스가 종료된다. 차가 제 1 임계치를 초과하지 않으면, 1210에서, 중앙 벡터의 모션 벡터는 제 2 임계치가 초과되었는지를 결정하기 위해 인접 블록들의 모션 벡터들의 평균값과 비교된다. 예를 들어, 블록 C(1100)의 모션 벡터가 블록 L(1106) 및 블록 R(1108)의 모션 벡터들의 평균값과 비교된다, 이를 테면 차감된다. 제 2 임계치가 초과되지 않으면, 1204에서, 다음 중앙 블록이 평가된다. 제 2 임계치가 초과되면, 1212에서, 인접 블록들의 모션 벡터들의 평균치가 중앙 블록에 할당된다. 예를 들어, 도 11의 예에서, 블록 C(1110)의 모션 벡터는 블록 L(1106) 및 블록 R(1108)의 모션 벡터들의 평균치인 것으로 할당될 수 있다.
[0057] 도 12와 관련하여 기능적으로 개시된 것처럼, 일부 실시예들은 중앙 블록에 인접한 2개의 블록들의 모션 벡터들 간의 제 1 차를 제 1 임계치와 비교하는 것을 포함한다. 제 1 차가 제 1 임계치 미만이면, 중앙 블록의 모션 벡터와 인접 블록들의 모션 벡터들의 평균 모션 벡터간의 제 2 차가 제 2 임계치를 초과하는지가 결정된다. 제 2 차가 제 2 임계치를 초과하면, 인접 블록들의 모션 벡터의 평균치인 모션 벡터는 중앙 블록에 할당된다.
[0058] 도 13은 모션 벡터들의 시간적 연속성을 평가하는 방법의 실시예의 흐름도이다. 예시적 실시예에서, 방법은 도 3의 모션 벡터 프로세서(312)에 의해 수행될 수 있다. 1304에서, 현재 블록의 프로세싱된 모션 벡터가 인접한 또는 인근의 프레임의 해당 블록의 모션 벡터와 유사한지를 결정하기 위한 비교가 이루어진다. 2개의 모션 벡터들 간의 차를 임계치와 비교함으로써 유사성(similarity)이 결정될 수 있다. 2개의 모션 벡터들이 유사한 경우, 1308에서 프로세스가 지속된다. 비교되는 2개의 모션 벡터들이 유사하지 않다면, 즉 2개의 모션 벡터들의 차가 임계치를 초과하면, 1306에서, 현재 블록의 모션 벡터는 현재 블록에 해당하는 비디오 수신기(106)에 의해 수신되는 비디오 데이터 비트 스트림에 수신된 프로세싱되지 않은 모션 벡터와 동일하게 설정된다.
[0059] 1308에서, 현재 블록의 코딩된 블록 패턴(CBP)은 임계치와 비교된다. CBP가 임계치 미만이면, 1310에서, 현재 블록의 프로세싱된 모션 벡터는 현재 블록에 해당하는 비디오 데이터 비트 스트림에 수신된 프로세싱되지 않은 모션 벡터로 설정된다. 1312로 진행되어, 현재 블록의 모션 벡터 및 인접 프레임의 해당 블록의 모션 벡터의 가중된 차(weighted difference)가 계산된다. 또한, 가중된 차 방식은 공동-위치된(co-located) 레퍼런스 블록 및 그의 인접부들(neighbors)로부터 현재 블록의 모션 벡터의 차를 입수하는 것(taking)을 수반할 수 있다. 1314로 계속되어, 가중된 차가 제 2 임계치와 비교된다. 가중된 차가 제 2 임계치보다 크지 않다면, 1318에서 프로세스가 종료된다. 그렇지 않다면, 현재 블록의 모션 벡터는 윈도우의 중앙 블록으로서 현재 블록을 포함하는 블록들의 윈도우의 블록들의 모션 벡터들의 중간인 중간 모션 벡터와 동일하게 설정된다. 일부 실시예들에서, 윈도우는 블록들이 3×3 어레이를 포함한다.
[0060] 도 14는 모션 추정 엔진(112)을 사용하여 모션 벡터들을 계산하는 것과 프로세싱된 모션 벡터를 이용하는 것 중 하나를(between) 선택하는 방법의 실시예의 흐름도이다. 예시적 실시예에서, 방법은 도 3의 모션 벡터 프로세서(312)에 의해 수행된다. 1404에서, 프레임의 모션 벡터들의 변량이 결정된다. 또 다른 실시예들에서, 변량 이외의 통계적 메트릭이 사용될 수 있다. 1406에서, 모션 벡터들의 변량은 임계치와 비교된다. 변량이 임계치보다 크면, 1408에서, 모션 추정 엔진(112)은 프레임에 대한 모션 벡터들을 결정하는데 이용된다. 그렇지 않고, 변량이 임계치보다 크지 않다면, 1410에서, 프레임의 프로세싱된 모션 벡터들이 사용된다. 모션 추정 엔진이 턴온되는 시기를 결정하기 위해 다른 메트릭들이 사용될 수도 있다. 이러한 메트릭들은 비트-스트림의 인트라 블록들의 수, 인트라-블록들의 클러스터, 및 모션 벡터들의 길이들 및 다른 모션 벡터 통계치들, 이를 테면 모션 벡터의 히스토그램을 포함한다.
[0061] 도 15는 경계 검출기 및 교정기(314)의 특정 실시예의 블록 다이어그램이다. 경계 검출기 및 교정기(314)는 측면 블록의 모션 벡터를 검출하고 교정하기 위해 코너 블록 및 측면 모션 벡터 교정기(1506)의 모션 벡터를 검출하고 교정하는 코너 모션 벡터 교정기(1504)를 포함한다. 도 16을 참조로 논의되는 것처럼, 경계 검출기 및 교정기(314)는 매크로 블록 또는 프레임의 경계상의 블록들의 잘못된(erroneous) 모션 벡터들을 교정한다. 통상적으로, 잘못된 모션 벡터들은 프레임을 벗어나는 또는 진입하는 객체들/픽셀들로 인해 프레임 경계들에서 발생하며 이는 레퍼런스 프레임들의 이러한 객체들에 대한 대응물(correspondence)을 찾는 것을 어렵게 한다.
[0062] 도 16은 경계 검출기 및 교정기(314)의 동작을 예시하기 위해 매크로 블록 또는 프레임의 경계에 인접한 블록들의 예시도이다. 예를 들어, 블록 A(1601)는 코너 블록이며 블록 E(1602)는 측면 블록이다. 블록 A(1601)의 인접부들은 블록 B(1603), 블록 C(1605), 및 블록 D(1607)이다. 경계상에 있지 않는 블록 E(1602)의 인접부들은 블록 F(1606), 블록 G(1604), 및 블록 H(1608)이다.
[0063] 도 17은 경계 모션 벡터들의 검출 및 교정 방법의 실시예의 흐름도이다. 예시적 실시예에서, 방법은 도 3의 경계 검출기 및 교정기(314)에 의해 수행될 수 있다. 1704에서, 블록이 코너 블록인지 여부가 결정된다. 1706에서, 블록이 코너 블록이면, 코너 블록 및 인접 블록들의 모션 벡터 간의 차들의 절대값들이 계산된다. 예를 들어, 도 16을 참조로, 방법은 블록 A(1601)의 모션 벡터와 블록들(블록 B(1603), 블록 C(1605), 및 블록 D(1607))의 모션 벡터들 간의 차들의 절대값들을 계산한다. 1708에서, 계산된 절대값들의 평균값이 계산된다. 1710에서 평균값은 임계치와 비교된다. 평균값이 임계치를 초과하면, 1712에서, 코너 블록의 모션 벡터는 인접 블록의 모션 벡터와 동일하게 설정된다. 마찬가지로 평균치 이외의 값들/메트릭들이 본 발명에 사용될 수 있다. 특히, 코너 블록 A(1601)의 모션 벡터는 인접하는 블록 D(1607)의 모션 벡터와 동일하게 설정될 수 있다. 그렇지 않다면, 1714로 프로세스가 진행된다.
[0064] 1714에서, 측면 블록이 검출되는지가 결정된다. 측면 블록이 검출되지 않는다면, 1704에서, 다음 블록에 대한 프로세스가 지속된다. 측면 블록이 검출되면, 1716에서, 측면 블록 및 인접 블록들의 모션 벡터 간의 차들의 절대값들이 계산된다. 도 16을 참조로, 방법은 블록 E(1602)의 모션 벡터와 블록들(블록 F(1606), 블록 G(1604) 및 블록 H(1608))의 모션 벡터들 간의 차들의 절대값들을 계산할 수 있다. 1718에서, 계산된 절대값들의 평균값이 계산된다. 1720에서, 평균값이 임계치와 비교된다. 평균값이 임계치를 초과하면, 1722에서, 측면 블록의 모션 벡터는 인접하는 블록의 모션 벡터와 동일하게 설정된다. 예를 들어, 측면 블록 E(1602)의 모션 벡터는 인접하는 블록 F(1606)의 모션 벡터와 동일하게 설정될 수 있다. 1704에서, 다음 블록에서 대한 프로세스가 지속된다.
[0065] 도 18은 도 2를 참조로 개시되는 모션 적응 포스트프로세서(126)의 실시예의 블록 다이어그램이다. 모션 적응 포스트프로세서(216)는 블록들에 의해 이미지를 프로세싱하는 시퀀스로서 잘못된 픽셀 값들인 블록킹 아티팩트들을 감소시키도록 구성된다. 보다 특정하게, 모션 적응 포스트프로세서(216)는 블록에 적용되는 필터링 세기를 결정하는 각각의 블록에 대한 경계 세기를 결정한다. 모션 적응 포스트프로세서(216)는 프레임에서 한번에 블록들이 하나의 로우(row)를 선택하는 로우 선택기(1804)를 포함한다. 모션 벡터 비교기(1806)는 로우에 있는 각각의 블록의 모션 벡터들을 임계치와 비교한다. 모션 벡터 카운터(1808)는 임계치를 초과하는 로우의 모션 벡터들의 수를 계수한다(count). 카운트 비교기(1810)는 임계치를 초과하는 모션 벡터들의 전체 수를 제 2 임계치와 비교한다. 카운트가 제 2 임계치를 초과하면, 경계 세기 결정기(1812)는 선택된 로우에 있는 각각의 블록에 대한 경계 세기를 결정한다. 따라서, 장치의 실시예는 블록과 연관된 경계 세기를 평가하기 위해 모션 적응 포스트프로세서(216)를 포함할 수 있다.
[0066] 도 19는 로우-레벨 포스트프로세싱의 방법의 실시예의 흐름도이다. 예시적 실시예에서, 방법은 도 3의 모션 적응 포스트프로세서(216)에 의해 수행될 수 있다. 1904에서, 제 1 임계치를 초과하는 로우에 있는 블록들의 모션 벡터들의 수가 결정된다. 1906에서, 제 1 임계치를 초과하는 모션 벡터들이 수는 제 2 임계치와 비교된다. 제 1 임계치를 초과하는 모션 벡터들의 수가 제 2 임계치를 초과하지 않는다면, 1908에서 로우 레벨 포스트-프로세싱이 턴오프된다. 그렇지 않다면, 1910에서 로우 레벨 포스트프로세싱이 턴온된다. 1912에서는 임의의 남아있는 로우들이 있는지에 대한 결정이 이루어진다. 만약 그렇다면, 1904에서 다음 로우가 프로세싱된다.
[0067] 도 20은 경계 세기 값들을 할당하는 방법의 실시예이다. 예시적인 실시예에서, 방법은 도 3의 모션 적응 포스트프로세서(216)에 의해 수행될 수 있다. 2004에서, 특정 로우에 대해 로우 레벨 포스트 프로세싱이 턴온되는지 여부가 결정된다. 로우 레벨 프로세싱이 로우에 대해 턴오프되면, 2008에서는 또 다른 로우가 있는지에 대한 결정이 이루어진다. 또 다른 로우가 있다면, 2004에서 프로세스가 지속된다. 그렇지 않다면, 2010에서 프로세스가 종료된다. 2004에서 지속하여, 로우 레벨 포스트 프로세싱이 턴온될 경우, 2006으로 프로세스가 진행되며, 여기서는 블록에 대한 모션 벡터가 임계치를 초과하는지 여부에 따라 로우에 있는 블록들에 대한 경계 세기들이 결정된다. 2008로 진행되어, 프로세싱될 또 다른 로우가 있는지 여부에 대한 결정이 이루어진다. 만약 그런 경우, 프로세스는 2004로 지속된다. 그렇지 않다면, 2010에서 프로세스는 종료된다. 프로세싱 전력이 풍족한 애플리케이션들에서, 로우-레벨 결정은 무시될 수 있으며, 모션-적응 경계 세기가 각각의 블록에 대해 그리고 보간될 프레임의 각각의 로우에 대해 계산될 수 있다.
[0068] 당업자들은 본 명세서에 개시되는 실시예들과 관련하여 개시되는 다양한 예시적인 논리 블록들, 구성들, 모듈들, 회로들 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합들로서 구현될 수 있다는 것을 추가로 인식할 것이다. 하드웨어 및 소프트웨어의 상호호환성을 명확하게 예시 하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 구성들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 전반적으로 기술되었다. 이러한 기능이 하드웨어로 구현되는지, 또는 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 대해 부가된 설계 제한들에 의존한다. 당업자는 이러한 기능들을 각각의 특정 애플리케이션에 대해 다양한 방식으로 구현할 수 있지만, 이러한 구현 결정들이 본 개시물의 범주를 이탈하는 것으로 해석해서는 안된다.
[0069] 상술한 방법의 단계들 및 알고리즘은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈들은 랜덤 액세스 메모리(RAM); 플래쉬 메모리; 판독 전용 메모리(ROM); 프로그램가능한 ROM(PROM); 소거가능 프로그램가능한 ROM(EEPROM); 레지스터들; 하드디스크; 이동식 디스크; 콤팩트 디스크 ROM(CD-ROM); 또는 업계에 공지된 임의의 다른 저장 매체로서 존재할 수 있다. 예시적인 저장 매체는 프로세서와 결합되어, 프로세서가 저장 매체로부터 정보를 판독하여 저장 매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 이러한 프로세서 및 저장매체는 ASIC에 상주할 수 있다. ASIC는 컴퓨팅 디바이스 또는 사용자 단말에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말에서 이산 컴포넌트로서 상주할 수 있다.
[0070] 일부 실시예들에 따라, 개시된 하나 이상의 방법들의 일부는 범용성 프로세서 또는 디지털 신호 프로세서(DSP)와 같은 컴퓨터로 하여금 인트라-블록을 식별하고 인접하는 블록들로부터 인트라-블록에 모션 벡터를 할당하게 유도하게 하기 위한 컴퓨터 코드를 포함하는 컴퓨터 판독가능한 실체적(tangible) 매체로서 구현될 수 있다. 매체는 컴퓨터로 하여금 비디오 데이터의 수신된 스트림에 있는 인트라-블록을 식별하게 하는 컴퓨터 코드를 포함하며, 인트라-블록은 비디오 데이터의 수신된 스트림에서 이와 연관되는 모션 벡터를 갖지 않는다. 또한, 매체는 컴퓨터로 하여금 인트라-블록에 인접하는 인터-블록들의 적어도 하나의 세트를 결정하게 하는 컴퓨터 코드를 포함한다. 또한, 컴퓨터 코드는 컴퓨터로 하여금 적어도 하나의 세트에 있는 모션 블록들의 벡터들과 연관되는 에러를 결정하게 한다. 또한 매체는 컴퓨터로 하여금 적어도 하나의 세트 중에서 최소 에러를 갖는 세트를 선택하거나 또는 단지 하나의 세트가 식별되는 경우에만 세트를 선택하게 하는 컴퓨터 코드를 포함한다. 또한, 컴퓨터 코드는 컴퓨터로 하여금 선택된 세트의 인터-블록들의 모션 벡터들로부터 중간 모션 벡터를 결정하게 한다. 또한, 매체는 컴퓨터로 하여금 인트라-블록과 중간 모션 벡터를 연관시키게 하는 컴퓨터 코드를 포함한다.
[0071] 일부 실시예들에서, 매체는 컴퓨터로 하여금 비디오 데이터에서의 패닝 모션을 검출하고 패닝 모션이 검출될 때 양방향성 모션 보상 예측을 수행하게 하는 컴퓨터 코드를 더 포함한다. 일부 실시예들에서, 컴퓨터 코드는 비디오 데이터의 프레임의 컨텐츠가 정적인지를 결정하고 프레임의 컨텐츠가 정적인 것으로 결정될 때 프레임 레이트 상향-변환을 디스에이블링시키게 한다. 또한, 일부 실시예들에서, 컴퓨터 코드는 컴퓨터로 하여금 블록의 모션 벡터를 인접 블록들의 모션 벡터들과 비교함으로써 비디오 데이터의 블록의 공간적 연속성을 평가하게 한다. 또한, 일부 실시예들에서, 컴퓨터 코드는 컴퓨터로 하여금 이전 프레임에서 해당 블록의 모션 벡터에 대해 블록의 프로세싱된 모션 벡터간의 차를 결정하게 한다.
[0072] 따라서, 본 명세서에 개시되는 방법들 중 일부 또는 전체는 마이크로로프로세서 또는 마이크로-제어기를 포함할 수 있는 컴퓨터에 의해 수행될 수 있다. 대안적으로 또는 부가적으로 일부 또는 모든 방법들은 애플리케이션 특정 접적회로, 또는 프로그램가능 로직 어레이들에 의해 수행될 수 있다.
[0073] 개시된 실시예들의 이전 설명은 임의의 당업자들이 개시된 실시예들을 구성 또는 사용할 수 있게 하기 위해 제공된다. 이러한 실시예들에 대한 다양한 변형들을 당업자들은 쉽게 인식할 수 있을 것이며, 본 명세서에 정의되는 원리들은 본 개시물의 범주를 이탈하지 않는 다른 실시예들에도 적용될 수 있다. 따라서, 본 개시물은 본 명세서에 개시되는 실시예들로 제한되게 의도되는 것은 아니지만 하기 청구항들에 의해 정의되는 것처럼 원리들 및 신규한 특징들과 가능한 일치하는 넓은 범주를 따르도록 의도된다.

Claims (29)

  1. 비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법으로서,
    비디오 데이터의 비디오 프레임내의 인트라-블록(intra-block)을 식별하는 단계;
    상기 인트라-블록에 인접하는 인터-블록들(inter-blocks)의 제 1 세트를 식별하는 단계 및 상기 인트라-블록에 인접하는 인터-블록들의 제 2 세트를 식별하는 단계 ―상기 제 1 세트 및 제 2 세트 내의 상기 인터-블록들 각각은 상기 제 1 세트 및 제 2 세트 내의 상기 인터-블록들과 연관되는 모션 벡터를 가짐 ―;
    상기 인터-블록들의 상기 제 1 세트 및 제 2 세트의 중 어느 것이 이들과 연관되는 최소 에러(least error)를 갖는지를 결정하기 위해, 상기 인터-블록들의 제 1 세트 및 상기 인터-블록들의 제 2 세트의 데이터를 평가(evaluating)하는 단계; 및
    상기 최소 에러를 갖는 것으로 결정된 인터-블록들의 상기 세트의 상기 모션 벡터들과 연관된 모션 벡터를 결정하는 단계 ―상기 결정된 모션 벡터는 상기 인트라-블록과 연관됨―
    를 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  2. 제 1 항에 있어서,
    상기 인터-블록들의 상기 세트들 중 적어도 하나는 상기 인트라-블록에 인접하는 인터-블록들의 코너(corner) 패턴을 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  3. 제 1 항에 있어서,
    상기 인터-블록들의 상기 세트들 중 적어도 하나는 상기 인트라-블록에 인접하는 인터-블록들의 측면 패턴을 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  4. 제 1 항에 있어서,
    인터-블록들의 상기 제 1 세트 및 제 2 세트내의 각각의 인터-블록은 4×4 픽셀 그룹들로 표현되는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  5. 제 1 항에 있어서,
    상기 비디오 데이터의 상기 비디오 프레임의 콘텐츠가 정적인지를 결정하는 단계; 및
    상기 프레임의 상기 콘텐츠가 정적이라는 결정에 응답하여 프레임 레이트 상향-변환을 디스에이블링(disabling)하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  6. 제 1 항에 있어서,
    상기 비디오 프레임이 패닝 모션(panning motion)을 나타내는지를 결정하는 단계; 및
    상기 패닝 모션(panning motion)이 나타난다는 결정에 응답하여 차후 비디오 프레임내의 블록의 패닝-적응 예측(panning-adaptive prediction)을 수행하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  7. 제 6 항에 있어서,
    상기 비디오 프레임과 연관된 모션 벡터들의 통계치들(statistics)에 기초하여 패닝 모션이 식별되는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  8. 제 6 항에 있어서,
    상기 비디오 프레임과 연관되는 모션 벡터들의 중간 값(median value)에 기초하여 패닝의 양이 결정되는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  9. 제 6 항에 있어서,
    상기 패닝 모션을 나타내는 블록들의 수를 결정하기 위해 상기 비디오 프레임내의 다수의 블록들 각각에 대한 모션 벡터 및 패닝 벡터 간의 차를 계산하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  10. 제 6 항에 있어서,
    상기 비디오 프레임이 상기 패닝 모션을 나타낸다는 결정에 응답하여, 패닝 모션을 이용함으로써 상기 비디오 프레임에 대한 모션 벡터들을 유추(deriving)하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  11. 제 1 항에 있어서,
    중앙 블록에 인접한 2개의 블록들의 모션 벡터들 간의 제 1 차를 제 1 임계치와 비교하는 단계;
    상기 제 1 임계치 미만인 제 1 차에 응답하여, 상기 중앙 블록의 모션 벡터 와 상기 2개의 블록들의 모션 벡터들의 평균 모션 벡터 간의 제 2 차가 제 2 임계치를 초과하는지 결정하는 단계; 및
    상기 제 2 임계치를 초과하는 상기 제 2 차에 응답하여, 상기 2개의 블록들의 상기 모션 벡터들의 평균치인 모션 블록을 상기 중앙 블록에 할당하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  12. 제 1 항에 있어서,
    상기 비디오 프레임의 제 1 블록의 프로세싱된 모션 벡터와 상기 비디오 데이터의 이전 프레임의 해당 블록의 모션 벡터 간의 가중된 차(weighted difference)를 계산하는 단계;
    상기 가중된 차를 임계치와 비교하는 단계; 및
    상기 임계치를 초과하는 상기 가중된 차에 응답하여, 프로세싱된 모션 벡터에 해당하는 제 1 블록을 포함하는 3개의 블록 어레이에 의해, 프로세싱된 모션 벡터를 3개의 블록내에 있는 인접하는 블록들의 모션 벡터들의 중간 값인 교체(replacement) 모션 벡터로 교체하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  13. 제 1 항에 있어서,
    비디오 비트 스트림의 측정된 파라미터와 임계치의 비교에 기초하여, 모션을 예측하기 위해 수신된 비디오 비트 스트림에 제공되는 모션 벡터들의 사용 및 모션 벡터들을 결정하기 위해 상기 비디오 수신기에서의 모션 보상 예측의 사용 중 하나를(between) 선택하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  14. 제 1 항에 있어서,
    상기 비디오 프레임의 경계에 인접한 블록을 검출하는 단계;
    상기 경계에 인접하는 상기 블록의 모션 벡터와 상기 경계에 인접한 상기 블록에 인접하는 블록들의 모션 벡터들 간의 차들의 절대값들의 평균값을 결정하는 단계;
    상기 평균값을 임계치와 비교하는 단계; 및
    상기 임계치를 초과하는 상기 평균값에 응답하여, 상기 경계에 인접한 상기 블록에 인접하는 블록의 모션 벡터와 동일하게 상기 경계에 인접한 상기 블록의 상기 모션 벡터를 설정하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  15. 제 1 항에 있어서,
    로우(row)내에 있는 각각의 블록에 대한 경계 세기(boundary strength)를 결정하는 단계를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  16. 제 1 항에 있어서,
    제 1 임계치를 초과하는 제 1 로우의 블록들내의 블록들의 모션 벡터들의 수를 결정하는 단계;
    상기 제 1 임계치를 초과하는 상기 모션 벡터들의 수가 제 2 임계치를 초과하는지를 결정하는 단계; 및
    상기 제 2 임계치를 초과하는 상기 제 1 임계치를 초과하는 상기 모션 벡터들의 수에 응답하여, 상기 제 1 로우에서 각각의 블록에 대한 경계 세기를 결정하는 단계
    를 더 포함하는,
    비디오 수신기에서 수신된 비디오 데이터를 프로세싱하는 방법.
  17. 장치로서,
    비디오 데이터의 비디오 프레임의 인트라-블록(intra-block)을 식별하는 인트라-블록 식별자;
    상기 인트라-블록에 인접하는 인터-블록들(inter-blocks)의 적어도 하나의 세트를 식별하는 인접하는 인터-블록 세트 식별자 ―각각의 인터-블록은 수신되는 비디오 데이터내의 각각의 모션 벡터와 연관됨 ―;
    인터-블록들의 식별된 각각의 세트의 상기 인터-블록들의 데이터와 연관되는 에러를 결정하는 에러 계산기(an error calculator);
    하나 보다 많은 세트가 식별될 때 최소 에러(least error)를 갖는 세트를 선택하는 세트 선택기; 및
    인터-블록들의 선택된 세트의 상기 모션 벡터들의 중간 모션 벡터를 결정하는 중간 벡터 계산기 ―상기 중간 모션 벡터는 식별된 인트라-블록과 연관됨―
    을 포함하는,
    장치.
  18. 제 17 항에 있어서,
    상기 비디오 데이터의 상기 비디오 프레임이 정적인지를 결정하고 상기 비디오 프레임이 정적이라는 결정에 응답하여 프레임 레이트 상향-변환 프로세스를 선택적으로 일시중단(suspend)하는 정적 프레임 핸들러(handler)를 더 포함하는,
    장치.
  19. 제 17 항에 있어서,
    상기 비디오 데이터가 패닝 모션을 나타내는지를 결정하는 패닝 분석기; 및
    상기 패닝 모션이 나타난다는 결정에 응답하여, 패닝-적응 예측을 수행하는 패닝-적응 예측 유니트를 더 포함하는,
    장치.
  20. 제 17 항에 있어서,
    상기 블록의 상기 모션 벡터를 인접 블록들의 모션 벡터들과 비교함으로써 상기 비디오 데이터의 블록의 모션 벡터의 공간적 연속성(spatial continuity)을 평가하는 모션 벡터 프로세서를 더 포함하는,
    장치.
  21. 제 17 항에 있어서,
    프로세싱된 모션 벡터와 연관된 시간적 연속성(temporal continuity)을 평가하기 위해 이전 프레임내의 대응 블록의 모션 벡터에 대해 블록의 상기 프로세싱된 모션 벡터 간의 차를 결정하는 모션 벡터 프로세서를 더 포함하는,
    장치.
  22. 제 17 항에 있어서,
    매크로 블록의 경계에 인접한 블록들의 모션 벡터들을 검출하고 교정하는 모듈을 더 포함하는,
    장치.
  23. 제 17 항에 있어서,
    상기 비디오 프레임내의 블록의 에지들에서 에러의 양과 연관되는 블로킹 세기(blocking strength)를 평가하는 모션 적응 포스트-프로세서(motion adaptive post-processor)를 더 포함하는,
    장치.
  24. 제 17 항에 있어서,
    상기 비디오 데이터를 수신하도록 구성된 수신기를 더 포함하는,
    장치.
  25. 제 17 항에 있어서,
    상기 비디오 데이터에 의해 인코딩된 비디오 콘텐츠를 디스플레이하도록 구성된 비디오 디스플레이를 더 포함하는,
    장치.
  26. 컴퓨터 코드를 저장하는 컴퓨터 판독가능 실체적(tangible) 매체로서, 상기 컴퓨터 코드는,
    컴퓨터로 하여금 비디오 데이터의 수신된 스트림내의 인트라-블록을 식별하게 하는 컴퓨터 코드;
    상기 컴퓨터로 하여금 상기 인트라-블록에 인접하는 인터-블록들의 적어도 하나의 세트를 식별하게 하는 컴퓨터 코드;
    상기 컴퓨터로 하여금 상기 적어도 하나의 세트에서 상기 인터-블록들의 데이터와 연관되는 에러를 결정하게 하는 컴퓨터 코드;
    상기 컴퓨터로 하여금 상기 적어도 하나의 세트의 최소 에러를 갖는 세트를 선택하게 하는 컴퓨터 코드; 및
    상기 컴퓨터로 하여금 선택된 세트의 상기 인터-블록들의 모션 벡터들의 중간 모션 벡터를 결정하게 하는 컴퓨터 코드 ―상기 중간 모션 벡터는 상기 인트라-블록과 연관됨―
    를 포함하는,
    컴퓨터 판독가능 실체적 매체.
  27. 제 26 항에 있어서,
    상기 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금, 상기 비디오 데이터내의 패닝 모션을 검출하게 하고 그리고 상기 패닝 모션의 검출에 응답하여 양방향성 모션 보상 예측을 수행하게 하는 컴퓨터 코드를 더 포함하는,
    컴퓨터 판독가능 실체적 매체.
  28. 장치로서,
    인트라-블록에 인접하는 인터-블록들의 적어도 하나의 세트를 식별하기 위한 수단;
    상기 적어도 하나의 세트의 상기 인터-블록들과 연관되는 에러를 결정하기 위한 수단;
    상기 세트와 연관된 상기 에러에 기초하여 상기 적어도 하나의 세트 중 한 세트를 선택하기 위한 수단;
    선택된 세트의 상기 인터-블록들의 모션 벡터들의 중간 모션 벡터를 결정하기 위한 수단 ; 및
    상기 중간 벡터를 상기 인트라-블록과 연관시키기 위한 수단
    을 포함하는,
    장치.
  29. 제 28 항에 있어서,
    상기 인터-블록들을 포함하는 프레임의 패닝 모션을 검출하기 위한 수단을 더 포함하는,
    장치.
KR1020117023412A 2009-03-05 2010-03-05 비디오 데이터의 모션 벡터들을 프로세싱하는 시스템 및 방법 KR101275066B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/398,379 US8320455B2 (en) 2009-03-05 2009-03-05 System and method to process motion vectors of video data
US12/398,379 2009-03-05
PCT/US2010/026399 WO2010102233A1 (en) 2009-03-05 2010-03-05 System and method to process motion vectors of video data

Publications (2)

Publication Number Publication Date
KR20110133597A true KR20110133597A (ko) 2011-12-13
KR101275066B1 KR101275066B1 (ko) 2013-06-17

Family

ID=42173920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117023412A KR101275066B1 (ko) 2009-03-05 2010-03-05 비디오 데이터의 모션 벡터들을 프로세싱하는 시스템 및 방법

Country Status (7)

Country Link
US (2) US8320455B2 (ko)
EP (1) EP2404450A1 (ko)
JP (1) JP2012520025A (ko)
KR (1) KR101275066B1 (ko)
CN (1) CN102342106A (ko)
TW (1) TW201127064A (ko)
WO (1) WO2010102233A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8514939B2 (en) * 2007-10-31 2013-08-20 Broadcom Corporation Method and system for motion compensated picture rate up-conversion of digital video using picture boundary processing
US8320455B2 (en) 2009-03-05 2012-11-27 Qualcomm Incorporated System and method to process motion vectors of video data
US8213506B2 (en) * 2009-09-08 2012-07-03 Skype Video coding
GB2476271B (en) * 2009-12-17 2015-09-02 Skype Coding data streams
US20130235274A1 (en) * 2010-11-17 2013-09-12 Mitsubishi Electric Corporation Motion vector detection device, motion vector detection method, frame interpolation device, and frame interpolation method
FR2969351A1 (fr) * 2010-12-20 2012-06-22 St Ericsson Sa Procede de realisation d'une image panoramique et appareil de mise en oeuvre.
FR2969352B1 (fr) * 2010-12-20 2012-12-14 St Ericsson Sa Procede de realisation d'une image panoramique et appareil de mise en oeuvre.
JP2012142702A (ja) * 2010-12-28 2012-07-26 Sony Corp 画像処理装置および方法、並びにプログラム
GB2488816A (en) * 2011-03-09 2012-09-12 Canon Kk Mapping motion vectors from a plurality of reference frames to a single reference frame
JP2013038490A (ja) * 2011-08-04 2013-02-21 Jvc Kenwood Corp スクロール判定装置及び方法
JP5737072B2 (ja) * 2011-08-29 2015-06-17 株式会社Jvcケンウッド 動き補償フレーム生成装置及び方法
JP5887763B2 (ja) * 2011-08-29 2016-03-16 株式会社Jvcケンウッド 動き補償フレーム生成装置及び方法
US9344727B2 (en) 2012-05-14 2016-05-17 Ati Technologies Ulc Method of using a reduced number of macroblock coding modes in a first view based on total coding mode complexity values of macroblocks in second view
TW201406166A (zh) 2012-07-27 2014-02-01 Novatek Microelectronics Corp 視訊編碼方法與視訊編碼裝置
US9756346B2 (en) 2012-10-08 2017-09-05 Google Inc. Edge-selective intra coding
US9369732B2 (en) 2012-10-08 2016-06-14 Google Inc. Lossless intra-prediction video coding
US9210432B2 (en) * 2012-10-08 2015-12-08 Google Inc. Lossless inter-frame video coding
US9407915B2 (en) 2012-10-08 2016-08-02 Google Inc. Lossless video coding with sub-frame level optimal quantization values
CN104871541A (zh) * 2012-11-07 2015-08-26 Lg电子株式会社 处理视频信号的方法和设备
US10116933B2 (en) * 2013-10-14 2018-10-30 Mediatek Inc. Method of lossless mode signaling for video system with lossless and lossy coding
CN111988606B (zh) 2014-09-15 2022-09-20 寰发股份有限公司 去区块滤波方法、相应地编码装置和存储介质
EP3469794B1 (en) * 2016-06-09 2022-04-27 INTEL Corporation Method and system of motion estimation with neighbor block pattern for video coding
JP6918661B2 (ja) * 2017-09-22 2021-08-11 キヤノン株式会社 符号化装置、符号化方法及びプログラム
WO2020005031A1 (ko) * 2018-06-28 2020-01-02 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020058257A1 (en) * 2018-09-21 2020-03-26 Telefonaktiebolaget Lm Ericsson (Publ) Intra block carrying inter information
US10812756B2 (en) * 2019-02-19 2020-10-20 Novatek Microelectronics Corp. Movement detection circuit, motion estimation circuit, and associated movement detection method capable of recognizing movement of object in background
US20200128271A1 (en) * 2019-12-20 2020-04-23 Intel Corporation Method and system of multiple channel video coding with frame rate variation and cross-channel referencing

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4985768A (en) * 1989-01-20 1991-01-15 Victor Company Of Japan, Ltd. Inter-frame predictive encoding system with encoded and transmitted prediction error
JP3727954B2 (ja) * 1993-11-10 2005-12-21 キヤノン株式会社 撮像装置
US6763069B1 (en) * 2000-07-06 2004-07-13 Mitsubishi Electric Research Laboratories, Inc Extraction of high-level features from low-level features of multimedia content
JP2002165109A (ja) * 2000-11-24 2002-06-07 Matsushita Electric Ind Co Ltd 動きベクトル検出装置および動きベクトル検出方法
US7266148B2 (en) * 2001-01-05 2007-09-04 Lg Electronics Inc. Video transcoding apparatus
US7450641B2 (en) * 2001-09-14 2008-11-11 Sharp Laboratories Of America, Inc. Adaptive filtering based upon boundary strength
JP2003092761A (ja) * 2001-09-18 2003-03-28 Toshiba Corp 動画再生装置、動画再生方法及び音声再生装置
JP2003259369A (ja) * 2002-02-28 2003-09-12 Techno Mathematical Co Ltd 動画像の電子透かしを用いたエラー隠蔽方法
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
JP2003339029A (ja) * 2002-05-20 2003-11-28 Sony Corp 動きベクトル補正回路及び方法
US7376186B2 (en) * 2002-07-15 2008-05-20 Thomson Licensing Motion estimation with weighting prediction
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
KR20060109247A (ko) * 2005-04-13 2006-10-19 엘지전자 주식회사 베이스 레이어 픽처를 이용하는 영상신호의 엔코딩/디코딩방법 및 장치
KR101018563B1 (ko) * 2003-06-10 2011-03-03 소니 주식회사 텔레비전 수상기 및 화상 처리 방법
US20050047504A1 (en) * 2003-09-03 2005-03-03 Sung Chih-Ta Star Data stream encoding method and apparatus for digital video compression
JP3879741B2 (ja) * 2004-02-25 2007-02-14 ソニー株式会社 画像情報符号化装置および画像情報符号化方法
WO2006012375A1 (en) * 2004-07-20 2006-02-02 Qualcomm Incorporated Method and apparatus for motion vector processing
US7463755B2 (en) * 2004-10-10 2008-12-09 Qisda Corporation Method for correcting motion vector errors caused by camera panning
US20070030894A1 (en) * 2005-08-03 2007-02-08 Nokia Corporation Method, device, and module for improved encoding mode control in video encoding
US20100002009A1 (en) * 2005-12-22 2010-01-07 Yoshiki Takata Display device, a receiving device and a method for driving the display device
US20070152908A1 (en) * 2005-12-30 2007-07-05 Khan Mionul H Adaptive image block fusion
EP1841232A1 (en) 2006-03-31 2007-10-03 Sony Deutschland Gmbh Method and apparatus to improve the convergence speed of a recursive motion estimator
US8582660B2 (en) * 2006-04-13 2013-11-12 Qualcomm Incorporated Selective video frame rate upconversion
US20080025390A1 (en) * 2006-07-25 2008-01-31 Fang Shi Adaptive video frame interpolation
KR100803611B1 (ko) * 2006-11-28 2008-02-15 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR101365574B1 (ko) * 2007-01-29 2014-02-20 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
JP2008263391A (ja) * 2007-04-12 2008-10-30 Hitachi Ltd 映像処理装置
JP4788649B2 (ja) * 2007-04-27 2011-10-05 株式会社日立製作所 動画像記録方法及びその装置
TW200910971A (en) * 2007-08-22 2009-03-01 Univ Nat Cheng Kung Direction detection algorithms for H.264 intra prediction
US8208552B2 (en) * 2008-01-25 2012-06-26 Mediatek Inc. Method, video encoder, and integrated circuit for detecting non-rigid body motion
WO2009131508A2 (en) * 2008-04-23 2009-10-29 Telefonaktiebolaget Lm Ericsson (Publ) Template-based pixel block processing
US8150181B2 (en) * 2008-11-17 2012-04-03 Stmicroelectronics S.R.L. Method of filtering a video sequence image from spurious motion effects
US8320455B2 (en) 2009-03-05 2012-11-27 Qualcomm Incorporated System and method to process motion vectors of video data

Also Published As

Publication number Publication date
EP2404450A1 (en) 2012-01-11
KR101275066B1 (ko) 2013-06-17
US8320455B2 (en) 2012-11-27
US9060177B2 (en) 2015-06-16
JP2012520025A (ja) 2012-08-30
US20120281762A1 (en) 2012-11-08
WO2010102233A1 (en) 2010-09-10
CN102342106A (zh) 2012-02-01
US20100226436A1 (en) 2010-09-09
TW201127064A (en) 2011-08-01

Similar Documents

Publication Publication Date Title
KR101275066B1 (ko) 비디오 데이터의 모션 벡터들을 프로세싱하는 시스템 및 방법
US9154795B2 (en) Method and apparatus for estimating channel induced distortion
JP4565010B2 (ja) 画像復号装置および画像復号方法
KR100736041B1 (ko) 에러 은닉 방법 및 장치
CN100531400C (zh) 基于宏块级和像素级运动估计的视频差错掩盖方法
US20100322309A1 (en) Method for spatial error concealment
US10681371B2 (en) Method and device for performing deblocking filtering
KR20060109249A (ko) 영상신호의 엔코딩/디코딩시에 베이스 레이어 픽처의모션벡터를 사용하여 영상블록을 위한 모션벡터를 예측하는방법 및 장치
US9615102B2 (en) Method and apparatus for processing components of an image
JP2009524364A (ja) 誤り隠蔽に関連する歪み値に基づいてエンコード方法を決定する方法および装置
TW201016019A (en) Digital video coding with interpolation filters and offsets
KR20050084266A (ko) 디지털 비디오 처리용 통합 규준
JP4774315B2 (ja) 画像復号化装置及び画像復号化方法
JP2001204029A (ja) ノイズ検出方法、ノイズ検出装置及び画像復号化装置
US9432694B2 (en) Signal shaping techniques for video data that is susceptible to banding artifacts
KR20040106416A (ko) 저비율 애플리케이션들을 위한 디지털 이미지들의 처리 방법
CN117221534A (zh) 帧间预测方法、视频编解码方法、装置及介质
US11082688B2 (en) Restricted overlapped block motion compensation
JP4266227B2 (ja) 動画像信号処理装置
JP3800435B2 (ja) 動画像信号処理装置
KR101241508B1 (ko) 분류기를 이용한 움직임 벡터 추정 방법 및 이러한 방법을 사용하는 장치
KR100987581B1 (ko) 고속 움직임 추정을 위한 부분 블록정합 방법
Lee et al. The video spatial error concealment algorithm using separately-directional interpolation technique
CN110611819B (zh) 一种提升h.264中b帧质量的编码方法
Shen et al. A new error concealment algorithm for H. 264/AVC

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee