KR20060046205A - 비디오 인코딩을 위한 비-정수 픽셀 공유 - Google Patents

비디오 인코딩을 위한 비-정수 픽셀 공유 Download PDF

Info

Publication number
KR20060046205A
KR20060046205A KR1020050044705A KR20050044705A KR20060046205A KR 20060046205 A KR20060046205 A KR 20060046205A KR 1020050044705 A KR1020050044705 A KR 1020050044705A KR 20050044705 A KR20050044705 A KR 20050044705A KR 20060046205 A KR20060046205 A KR 20060046205A
Authority
KR
South Korea
Prior art keywords
motion
integer pixel
video
pixel values
pixel value
Prior art date
Application number
KR1020050044705A
Other languages
English (en)
Other versions
KR100964515B1 (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 KR20060046205A publication Critical patent/KR20060046205A/ko
Application granted granted Critical
Publication of KR100964515B1 publication Critical patent/KR100964515B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

본 발명은 비디오 인코딩 기술 및 그러한 기술을 구현하는 비디오 인코딩 장치에 관한 것이다. 일 실시형태에서, 본 발명은 모션 추정에 관한 비-정수 픽셀을 생성하기 위한 모션 추정기를 포함하는 비디오 인코딩 장치를 설명하며, 모션 추정기는 정수 픽셀값의 3 개이상의 입력을 수신하는 필터를 포함하는 모션 보정기를 포함한다. 또한 본 비디오 인코딩 장치는 모션 추정기에 의해 생성된 비-정수 픽셀 값들을 저장하는 메모리 및 모션 보정에 관한 저장된 비-정수 픽셀 값들을 이용하는 모션 보정기를 포함한다.
비-정수 픽셀, 모션 추정기, 모션 보정기

Description

비디오 인코딩을 위해 공유하는 비-정수 픽셀 {NON-INTEGER PIXEL SHARING FOR VIDEO ENCODING}
도 1 은 소스 디지털 비디오 장치가 디지털 비디오 장치를 수신하기 위해 비디오 데이터의 인코딩된 시퀀스를 송신하는 시스템을 나타내는 블록도.
도 2 는 비디오 인코더를 포함하는 장치에 관한 예시적인 블록도.
도 3 은 비디오 인코더를 포함하는 장치에 관한 또 다른 예시적인 블록도.
도 4 는 ¼-픽셀×¼-픽셀 비디오 블록에 따른 위치에 형성되는 예시적인 탐색 공간에 관한 도.
도 5 는 ½-픽셀 값의 열을 포함하는 예시적인 탐색 공간에 관한 도.
도 6 은 ½-픽셀 값의 행 및 열을 포함하는 예시적인 탐색 공간에 관한 도.
도 7 은 탐색 공간 및 디코딩을 지원하기 위해 탐색 공간으로부터 생성될 수 있는 다양한 픽셀들에 관한 도.
도 8 은 비디오 인코딩 기술을 나타내는 흐름도.
※ 도면의 주요부분에 대한 부호의 설명※
26A : 모션 추정기 28A : 모션 보정기
본 발명은 디지털 비디오 프로세싱에 관한 것으로, 보다 상세하게는, 비디오 시퀀스 인코딩에 관한 것이다.
디지털 비디오 이용가능성은, 디지털 텔레비젼, 디지털 다이렉트 방송 시스템, 무선 통신 장치, 개인용 디지털 보조수단 (PDA), 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 디지털 리코딩장치, 셀룰러 또는 위성 무선 전화 등을 포함하는 광범위한 장치로 병합될 수 있다. 디지털 비디오 장치는 종래의 아날로그 비디오 시스템에 비해 완전한 이동 비디오 시퀀스를 생성, 수정, 송신, 저장, 리코딩, 및 재생함에 있어서 중요한 개선점을 제공할 수 있다.
많은 상이한 비디오 인코딩 표준들이 디지털 비디오 시퀀스 인코딩에 관하여 확립되었다. 예를 들어, 동영상 전문가 그룹 (MPEG;Moving Picture Experts Group) 은 MPEG-1, MPEG-2 및 MPEG-4 를 포함하여 많은 표준들을 발전시켰다. 다른 표준들은 국제 텔레커뮤니케이션 연합 (ITU) H.263 표준, 캘리포니아 쿠퍼티노의 애플 컴퓨터에 의해 개발된 퀵타임TM (Quick Time TM) 기술, 워싱턴 레드몬드의 마이크로소프트사에 의해 개발된 윈도우에 관한 비디오TM (Video for Windows TM), 인텔사에 의해 개발된 인디오TM(IndeoTM), 워싱턴 시애틀의 리얼네트워크사의 리얼비디오TM (RealVideoTM), 슈퍼맥사에 의해 개발된 시네팩TM (CinepakTM) 을 포함한다. ITU H.264 표준 및 많은 사유 표준들을 포함하여, 새로운 표준들이 계속 나타나고 발전된다.
많은 비디오 인코딩 표준들은 압축 방식으로 데이터를 인코딩함에 의해 비디오 시퀀스의 개선된 송신 레이트를 허용한다. 압축은 비디오 프레임의 효율적인 송신을 위해 송신될 필요가 있는 전체 데이터량을 감소시킬 수 있다. 예를 들어, 대부분의 비디오 인코딩 표준들은 압축 없이 달성될 수 있다기 보다는, 더 좁은 주파수 대역폭을 통한 비디오 및 영상 송신을 수월하게 하기 위해 설계되는 그래픽 및 비디오 압축 기술을 활용한다.
예를 들어, MPEG 표준과 ITU H.263 및 ITU H.264 표준은 일시적인 또는 인터-프레임 상관관계라고 불리는, 연속 비디오 프레임들 사이의 유사점을 활용하는 비디오 인코딩 기술을 지원하여, 인터-프레임 압축을 제공한다. 인터-프레임 압축 기술은 비디오 프레임의 픽셀-기반 표상을 이동 표상으로 변환함에 의해 프레임을 가로지르는 데이터 중복을 활용한다. 또한, 몇몇 비디오 인코딩 기술은 공간의 또는 인터-프레임 상관관계라고 불리는, 프레임 내에서 유사점들을 활용하여, 비디오 프레임을 더욱 압축할 수도 있다.
압축을 지원하기 위해, 디지털 비디오 장치는 일반적으로, 디지털 비디오 시퀀스를 압축하는 인코터, 및 디지털 비디오 시퀀스의 압축을 푸는 디코더를 포함한다. 많은 경우에 있어서, 인코더 및 디코더는 비디오 영상의 시퀀스를 정의하는 프레임 내의 픽셀 블록 상에서 동작하는 통합된 인코더/디코더 (CODEC) 를 형성한다. 예를 들어, MPEG-4 표준에서, 인코더는 일반적으로 송신될 비디오 프레임을 "매크로블록" 으로 나누고, 그것은 16×16 픽셀 어레이를 포함한다. ITU H.264 표준은 16×16 비디오 블록, 16×8 비디오 블록, 8×16 비디오 블록, 8×8 비디오 블록, 8×4 비디오 블록, 4×8 비디오 블록, 및 4×4 비디오 블록을 지원한다.
비디오 프레임 내의 각각의 비디오 블록에 대하여, 인코더는 하나 이상의 바로 선행하는 비디오 프레임 (또는 바로 뒤의 프레임) 에 관한 유사한 크기의 비디오 블록을 탐색하여, "최상의 예측" 이라고 불리는 가장 유사한 비디오 블록을 식별한다. 현재 비디오 블록을 다른 프레임의 비디오 블록과 비교하는 프로세스는 일반적으로 모션 추정이라고 불린다. 일단, 비디오 블록에 관하여 "최상의 예측" 이 식별되면, 인코더는 현재 비디오 블록과 최상의 예측 사이의 차이를 인코딩할 수 있다. 현재 비디오 블록과 최상의 예측 사이의 차이를 인코딩하는 이러한 프로세스는 모션 보정이라고 불리는 프로세스를 포함한다. 모션 보정은, 인코딩될 현재 비디오 블록과 최상의 예측 사이의 차이를 나타내는, 차이 블록을 생성하는 프로세스를 포함한다. 모션 보정은 보통 모션 벡터를 이용하여 최상의 예측 블록을 불러오고, 그 후 입력 블록으로부터 최상의 예측을 감하여 차이 블록을 생성하는 행위에 관한 것이다.
모션 보정이 차이 블록을 생성한 이후에, 추가적인 일련의 인코딩 단계가 차이 블록을 인코딩하기 위해 일반적으로 수행된다. 이러한 추가적인 인코딩 단계는 이용되는 인코딩 표준에 의존할 수도 있다. 예를 들어, MPEG 4 컴플라이언트 인코더에서, 추가적인 인코딩 단계는 8×8 이산 코사인 변환을 포함할 수도 있고, 스칼라 양자화, 래스터-투-지그재그 리코딩, 실행-범위 (run-length) 인코 딩, 호프만 인코딩이 잇따라 일어난다.
인코딩된 차이 블록은, 이전의 프레임으로부터 어느 비디오 블록이 인코딩을 위해 이용되었는지를 나타내는 모션 벡터와 함께 송신될 수 있다. 디코더는 모션 벡터 및 인코딩된 차이 블록을 수신하고, 수신된 정보를 디코딩하여 비디오 시퀀스를 재건한다.
많은 표준들에 있어서, 모션 추정 및 모션 보정 동안에 ½-픽셀 값이 또한 생성된다. 예를 들어, MPEG 4 에서, 두 인접 픽셀 사이의 평균 픽셀 값으로서 ½-픽셀 값이 생성된다. ½-픽셀은 후보 비디오 블록에서 이용되고, 모션 추정 동안에 식별되는 최상의 예측의 일부분을 형성할 수도 있다. 상대적으로 단순한 2-탭 필터는, 모션 추정 및 모션 보정 프로세스에서 필요하기 때문에, ½-픽셀 값을 생성하는 데에 이용될 수 있다. 비-정수 픽셀 값의 생성은 인터-프레임 상관관계 분석을 개선할수 있지만, 일반적으로 인코딩 및 디코딩 프로세스를 복잡하게 한다.
본 발명은 비디오 인코딩 기술 및 그러한 기술을 구현하는 비디오 인코딩 장치를 설명한다. 설명되는 비디오 인코딩 기술은 모션 추정 및 모션 보정에서의 비-정수 픽셀 값을 고려하는 다양한 인코딩 표준에 관하여 유용할 수도 있다. 특히, 모션 추정 및 모션 보정에서 ½-픽셀 및 ¼-픽셀 값을 이용하는 ITU H.264 표준과 같은 비디오 인코딩 표준은 여기서 설명되는 기술에 의해 특히 이익을 얻을 수도 있다. 보다 일반적으로, 예를 들어, 수직 또는 수평의 주어진 차원에서의 비-정수 픽셀 값의 생성에 있어서 3-탭 필터 또는 더 큰 값을 특정하는 어떠한 표준도 여기서 설명되는 기술에 의해 이익을 얻을 수도 있다. 본 기술은 프로세싱 오버헤드가 장치 크기 및 배터리 소비에 중대한 영향을 미칠 수 있는 휴대용 장치에 대해 특히 유용하다.
일 실시형태에서, 본 발명은 모션 추정에 관하여 비-정수 픽셀 값을 생성하는 모션 추정기를 포함하는 비디오 인코딩 장치, 적어도 3 개의 정수 픽셀 값 입력을 수신하는 필터를 포함하는 모션 추정기를 설명한다. 본 장치는 또한 모션 추정기에 의해 생성되는 비-정수 픽셀 값을 저장하는 메모리, 모션 보정에 관하여 저장된 비-정수 픽셀 값을 이용하는 모션 보정기를 포함한다. 예를 들어, ITU H.264 표준에 따라, 모션 추정기는 6-탭 필터를 이용하여 ½-픽셀 값을 생성하고, 모션 추정 및 이동 보상 모두에서의 이용을 위해 ½-픽셀 값을 저장할 수도 있다. 모션 추정기는 또한 2-탭 필터를 이용하여 ¼-픽셀 값을 생성하고, 모션 보정을 위해 ¼-픽셀 값을 저장하지 않고, 모션 추정에서 ¼-픽셀 값을 이용할 수도 있다. 그러한 경우에, 모션 보정기는 모션 추정기에 의해 생성된 저장된 ½-픽셀 값을 이용하지만, 또 다른 2-탭 필터를 이용하여 ¼-픽셀 값을 재-생성한다. 어떤 경우에는, 수평 및 수직 인터폴레이션 모두에 관하여 별개의 필터가 구현되지만, (3-탭 또는 더 큰 값의) 어떠한 큰 필터의 출력도 모션 추정 및 모션 보정에 관하여 재이용된다. 다른 경우에, 동일한 큰 필터는 수평 및 수직 인터폴레이션 모두에 관하여 이용될 수도 있다. 그러나 그러한 경우에는, 인코디 장치의 클록 속 도는 증가될 필요가 있을 수도 있다.
이들 및 여기서 설명되는 다른 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 그들에 관한 어떤 조합에서 디지털 비디오 장치로 구현될 수도 있다. 만약 소프트웨어에서 구현된다면, 그 기술은 프로그램 코드를 포함하는 컴퓨터 판독가능 매체에 관한 것일 수도 있고, 실행되는 경우, 여기서 설명되는 하나 이상의 인코딩 기술을 수행한다. 다양한 실시형태에 관한 추가적인 세부사항이 첨부되는 도면 및 이하의 설명에서 나타난다. 다른 특징, 목적, 및 이점이 설명, 도면, 및 청구항으로부터 명확해질 것이다.
도 1 은 소스 장치 (12) 가 통신 링크 (15) 를 통하여 장치 (14) 를 수신하기 위해 비디오 데이터의 인코딩된 시퀀스를 송신하는 예시적인 시스템 (10) 을 나타내는 블록도이다. 소스 장치 (12) 및 수신 장치 (14) 는 모두 디지털 비디오 장치이다. 특히, 소스 장치 (12) 는 ITU H.264 비디오 인코딩 표준과 같은 비디오 표준과 일치하는 비디오 데이터를 인코딩한다. 시스템 (10) 은 비-정수 픽셀 값이 생성되고, 저장되고, 모션 추정 및 모션 보정에 관하여 이용되는 기술을 구현한다. 이것은, 동일한 비-정수 픽셀 값을 생성하기 위한 모션 추정기 및 모션 보정기 모두에서의 큰 필터의 필요성을 없앤다. 여기서 설명되는 기술은, 수직 또는 수평 인터폴레이션에 관한 것과 같은 주어진 차원에의 비-정수 픽셀 값 생성에서 3-탭 필터 또는 그 보다 큰 값을 특징짓는 어떠한 공개된 또는 특허된 표준에 대해 특히 유용할 수도 있다. 그러나, 본 발명에 따라, 더 작은 필터 (2-탭 필터) 에 의해 생성되는 어떠한 비-정수 픽셀 값도, 추후의 이용을 위한 이러한 값들의 저장 없이, 필요한 경우에 생성될 수도 있다.
통신 링크 (15) 는 무선 링크, 물리적 송신선, 광섬유, 지역-범위 네트워크, 광-범위 네트워크와 같은 패킷 기반 네트워크, 또는 인터넷과 같은 글로벌 네트워크, 공중 전화망 (PSTN), 또는 데이터 전송이 가능한 어떤 다른 통신 링크를 포함할 수도 있다. 따라서 통신 링크 (15) 는, 장치 (12) 로부터 비디오 데이터를 수신 장치 (14) 로 송신함에 있어서, 어떤 적절한 통신 매체, 또는 아마도 상이한 네트워크 및 링크의 집합을 나타낸다.
소스 장치 (12) 는 인코딩 및 비디오 데이터 송신이 가능한 어떠한 디지털 비디오 장치일 수도 있다. 소스 장치 (12) 는 디지털 비디오 시퀀스를 저장하기 위한 비디오 메모리 (16), 시퀀스를 인코딩하기 위한 비디오 인코더 (18), 통신 링크 (15) 를 통하여 소스 장치 (14) 로 인코딩된 시퀀스를 송신하기 위한 송신기 (20) 를 포함할 수도 있다. 비디오 인코더 (18) 는 예를 들어, 다양한 하드웨어, 소프트웨어 또는 펌웨어, 또는 여기서 설명된 바와 같이, 비디오 인코딩 기술을 제어하기 위해 프로그램가능한 소프트웨어 모듈을 실행하는 하나 이상의 디지털 신호 프로세서 (DSP) 를 포함할 수도 있다. 연관된 메모리 및 논리 회로는 비디오인코딩 기술을 제어하는 DSP 를 지원하도록 제공될 수도 있다. 설명될 바와 같이, 비디오 인코더 (18) 는 비-정수 픽셀 값을 생성하기 위해 구성될 수도 있고, 생성된 비-정수 픽셀 값을 모션 추정 및 모션 보정 모두를 위해 이용할 수도 있다.
소스 장치 (12) 는 또한 비디오 시퀀스를 캡쳐하고, 캡쳐한 시퀀스를 메모리 (16) 에 저장하기 위해, 비디오 카메라와 같은, 비디오 캡쳐 장치 (23) 를 포함할 수도 있다. 특히, 비디오 캡쳐 장치 (23) 는 전하결합소자 (CCD), 전하주입소자, 포토다이오드의 어레이, 상보성 금속 산화물 반도체 (CMOS), 또는 비디오 영상 또는 디지털 비디오 시퀀스를 캡쳐하는 것이 가능한 어떤 다른 감광 장치를 포함할 수도 있다.
추가적인 예로서, 비디오 캡쳐 장치 (23) 는, 예를 들어, 텔레비젼, 비디오 카세트 리코더, 캠코더, 또는 또 다른 비디오 장치로부터의 아날로그 비디오 데이터를, 디지털 비디오 데이터로 변환하는 비디오 변환기일 수도 있다. 몇몇 실시형태에서, 소스 장치 (12) 는 통신 링크 (15) 를 통하여 실시간 비디오 시퀀스를 송신하기 위해 구성될 수도 있다. 그러한 경우에, 수신 장치 (14) 는 실시간 비디오 시퀀스를 수신하고, 비디오 시퀀스를 사용자에게 디스플레이할 수도 있다. 다른 방법으로, 소스 장치 (12) 는 수신 장치 (14) 에 비디오 데이터 파일로 전송된, 즉, 실시간이 아닌 비디오 시퀀스를 캡쳐하고 인코딩할 수도 있다. 따라서, 소스 장치 (12) 및 수신 장치 (14) 는 비디오 클립 녹음재생, 비디오 메일, 또는, 예를 들어, 이동 무선 네트워크에서의 비디오 회의와 같은 애플리케이션을 지원할 수도 있다. 장치 (12 및 14) 는 도 1 에서 특별히 도시하지 않은 다양한 다른 구성요소를 포함할 수도 있다.
수신 장치 (14) 는 비디오 데이터의 수신 및 디코딩이 가능한 어떠한 디지털 비디오 장치의 형태를 취할 수도 있다. 예를 들어, 수신 장치 (14) 는 예컨대, 중간 링크, 라우터, 다른 네트워크 장비 등을 통하여 송신기 (20) 로부터 인코딩된 디지털 비디오 시퀀스를 수신하는 수신기 (22) 포함할 수도 있다. 수신 장치 (14) 는 또한 시퀀스를 디코딩하는 비디오 디코더 (24), 시퀀스를 사용자에게 디스플레이하는 디스플레이 장치 (26) 를 포함할 수도 있다. 그러나, 몇몇 실시형태에서, 수신 장치 (14) 는 통합된 디스플레이 장치 (14) 를 포함하지 않을 수도 있다. 그러한 경우에, 수신 장치 (14) 는, 예를 들어, 텔레비젼 또는 모니터와 같은 이산 디스플레이 장치를 구동하기 위해, 수신된 비디오 데이터를 디코딩하는 수신기로서 기능할 수도 있다.
소스 장치 (12) 및 수신 장치 (14) 에 관한 실시예 장치는 컴퓨터 네트워크상에 위치하는 서버, 워크 스테이션 또는 다른 데스크탑 연산 장치, 및 랩탑 컴퓨터 또는 개인용 디지털 보조수단 (PDA) 과 같은 이동 연산 장치를 포함한다. 다른 실시예는 디지털 텔레비젼 방송 위성 및 디지털 텔레비젼, 디지털 카메라, 디지털 비디오 카메라 또는 다른 디지털 리코딩 장치, 비디오 성능을 가지는 이동 전화기와 같은 디지털 비디오 전화기, 비디오 성능을 가지는 직접 양-방향 통신 장치, 다른 무선 비디오 장치 등을 포함한다.
몇몇 경우에, 소스 장치 (12) 및 수신 장치 (14) 는 디지털 비디오 데이터를 인코딩 및 디코딩하기 위해 각각 인코더/디코더 (CODEC) (도시되지 않음) 을 포함한다. 특히, 소스 장치 (12) 및 수신 장치 (14) 는 모두 송신기 및 수신기 뿐만 아니라, 메모리 및 디스플레이를 포함할 수도 있다. 이하에서 약술하는 많은 인코딩 기술은 인코더를 포함하는 디지털 비디오 장치의 컨텍스트 (context) 에서 설명된다. 그러나, 인코더가 CODEC 의 일부를 형성할 수도 있다는 것을 알 고 있다. 그러한 경우에, CODEC 는 하드웨어, 소프트웨어, 펌웨어, DSP, 마이크로프로세서, 주문형 집적회로 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA), 이산 하드웨어 구성용소, 또는 그들에 관한 다양한 조합 내에서 구현될 수도 있다. 또한, 여기서 설명되는 인코딩 기술은 다양한 디지털 필터 또는 인코딩 및 디코딩 애플리케이션 모두에 관하여 사용되는 하드웨어 구성요소를 고려할 수도 있다.
소스 장치 (12) 내에 있는 비디오 인코더 (18) 는, 비디오 데이터를 인코딩하기 위해 비디오 프레임의 시퀀스 내에 있는 픽셀 블록 상에서 동작한다. 예를 들어, 비디오 인코더 (18) 는, 송신될 비디오 프레임이 픽셀 블록 (비디오 블록이라 불림) 으로 나누어지는 모션 추정 및 모션 보정 기술을 실행할 수도 있다. 비디오 블록은, 설명의 목적으로, 어떠한 크기의 블록도 포함할 수도 있고, 주어진 비디오 시퀀스 내에서 변화할 수도 있다. 일 예로서, ITU H.264 표준은 16×16 비디오 블록, 16×8 비디오 블록, 8×16 비디오 블록, 8×8 비디오 블록, 8×4 비디오 블록, 4×8 비디오 블록, 및 4×4 비디오 블록을 지원한다. 더 작은 비디오 블록은 인코딩에 있어서 더 나은 해상도를 제공할 수 있고, 더 높은 레벨의 디테일을 포함하는 비디오 프레임의 위치에 관하여 특히 이용될 수도 있다. 또한, 이하에서 설명되는 바와 같이, 비디오 인코더 (18) 는 파이프라인 방식으로 4×4 비디오 블록 상에서 동작하도록 설계될 수도 있고, 필요하다면, 4×4 비디오 블록으로부터 더 큰 비디오 블록을 복원할 수도 있다.
비디오 블록의 각 픽셀은, 색차 및 휘도 값에서의 색 및 강도와 같은 픽셀의 시각적인 특성을 정의하는, n-비트 값 예를 들어, 8 비트로 나타날 수도 있다. 그러나, 사람의 시각은 색차보다는 휘도의 변화에 더욱 민감하기 때문에 모션 추정은 오직 휘도 성분에 대해서만 종종 수행된다. 따라서, 모션 추정의 목적을 위해, 전체 n-비트 값은 주어진 픽셀에 대하여 휘도를 정량화할 수도 있다. 그러나, 본 발명의 원리는 픽셀의 형태에 한정되지 않고, 더 단순하고 더 작은-비트의 픽셀 형태 또는 더 복잡하고 더 큰-비트의 픽셀 형태를 이용하는 것으로 확장될 수도 있다.
비디오 프레임의 각각의 비디오 블록에 있어서, 소스 장치 (12) 의 비디오 인코더 (18) 는, 유사한 비디오 블록을 식별하기 위해 이미 송신된 하나 이상의 이전의 비디오 프레임 (또는 뒤이은 비디오 프레임) 에 관하여 메모리 (16) 에 저장된 비디오 블록을 탐색하는 것에 의해 모션 추정을 수행한다. 앞서의 또는 뒤이은 비디오 프레임으로부터 "최상의 예측" 을 결정함에 있어서, 비디오 인코더 (18) 는 인코딩될 현재 비디오 블록과 최상의 예측 간의 차이를 나타내는 차이 블록을 생성하기 위해 모션 보정을 수행한다. 모션 보정은 보통 모션 벡터를 이용하여 최상의 예측 블록을 불러오고, 그 후 차이 블록을 생성하기 위해 입력 블록으로부터 최상의 예측을 감산하는 작용에 관한 것이다.
모션 보정 프로세스가 차이 블록을 생성한 이후에, 일련의 추가적인 인코딩 단계가 차이 블록을 인코딩하기 위해 일반적으로 수행된다. 이러한 추가적인 인코딩 단계는 이용되는 인코딩 표준에 의존할 수도 있다. 예를 들어, MPEG4 컴플라이언스 인코더에서, 추가적인 인코딩 단계는 8×8 이산 코사인 변환을 포함할 수도 있고, 스칼라 양자화, 래스터-투-지그재그 리코딩, 실행-범위 인코딩, 호 프만 인코딩이 잇따라 일어난다.
일단 인코딩되면, 인코딩된 차이 블록은, 인코딩에 이용되었던 이전의 프레임 (또는 뒤이은 프레임) 으로부터 비디오 블록을 식별하는 모션 벡터와 함께 송신될 수 있다. 이러한 방식으로, 각각의 프레임을 독립적인 상 (picture) 으로서 인코딩하는 것 대신에, 비디오 인코더 (18) 는 인접한 프레임들 간의 차이를 인코딩한다. 그러한 기술은 비디오 시퀀스의 각 프레임을 정확하게 나타내기 위해 필요한 데이터의 양을 매우 감소시킬 수 있다.
모션 벡터는, 비록 모션 벡터에 관한 다른 형태가 이용될 수 있다 할지라도, 인코딩되는 비디오 블록의 상위-좌측부 코너에 대응하는 픽셀 위치를 정의할 수도 있다. 어떠한 경우에도, 모션 벡터를 이용하여 비디오 블록을 인코딩하는 것에 의해, 비디오 데이터의 송신에 관하여 요구되는 주파수 대역폭이 매우 감소될 수 있다.
어떤 경우에는, 비디오 인코더 (18) 는 프레임 내의 인코딩에 더하여, 프레임 내의 인코딩을 지원할 수 있다. 프레임 내의 인코딩은, 공간의 또는 프레임 내의 상관관계라고 불리는, 프레임 내에서의 유사점을 활용하여, 비디오 프레임을 더욱 압축한다. 프레임 내의 압축은 일반적으로, 이산 코사인 변환 (DCT) 인코딩과 같은, 정지한 영상을 압축하는 것에 관한 텍스쳐 인코딩에 기초한다. 프레임 내의 압축은 종종 프레임 사이의 압축과 연계되어 이용되지만, 어떤 구현에 있어서는 대안으로서 또한 이용될 수도 있다.
수신 장치 (14) 의 수신기 (22) 는 모션 벡터의 형태로 인코딩된 비디오 데 이터와, 인코딩되는 비디오 블록과 모션 추정에서 사용되는 최상의 예측 사이의 인코딩된 차이를 나타내는 인코딩된 차이 블록을 수신할 수도 있다. 디코더 (24) 는 디스플레이 장치 (26) 를 통하여 사용자에게 디스플레이하기 위한 비디오 시퀀스를 생성하기 위해 비디오 디코딩을 수행한다. 수신 장치 (14) 의 디코더 (24) 는 또한 인코더/디코더 (CODEC) 로서 구현될 수도 있다. 그러한 경우에, 소스 장치 (12) 및 수신 장치 (14) 는 모두 디지털 비디오 시퀀스의 인코딩, 송신, 수신 및 디코딩이 가능할 수도 있다.
본 발명에 따르면, 주어진 차원 (수평 또는 수직) 에서의 비디오 인코딩 동안에 3 이상의 입력 픽셀 값으로부터 생성되는 비-정수 픽셀 값은 비디오 인코더 (18) 의 로컬 메모리에 저장될 수 있다. 저장된 비-정수 픽셀 값은, 비-정수 픽셀 값이 필요한 경우에 위치되고 식별될 수 있는 한, 독립적으로 버퍼링되거나, 또는 어떠한 특정한 메모리 위치에도 할당될 수도 있다. 반면에, 주어진 차원에서 두 개의 입력 픽셀 값으로부터 생성되는 비-정수 픽셀 값은 어떠한 상당한 양의 시간 동안에도 저장될 필요가 없지만, 모션 추정 또는 모션 보정에 관하여 필요한 것으로서 일반적으로 계산될 수 있다.
도 2 는 비디오 인코더 (18A) 를 포함하는 예시적인 블록도이다. 도 2 의 장치 (12A) 는 도 1 의 장치 (12) 에 대응할 수도 있다. 도 2 에서 나타내는 바와 같이, 장치 (12A) 는 비디오 시퀀스를 인코딩하는 비디오 인코더 (18A) 와, 인코딩 전후에 비디오 시퀀스를 저장하는 비디오 메모리 (16A) 를 포함한다. 장치 (12A) 는 또한 인코딩된 시퀀스를 또 다른 장치로 송신하는 송신기 (20A) 와, 비디오 시퀀스를 캡쳐하고 캡쳐한 시퀀스를 메모리 (16A) 에 저장하는, 아마도 비디오 카메라와 같은, 비디오 캡쳐 장치 (23A) 를 포함할 수도 있다. 장치 (12A) 의 다양한 구성요소가 통신 버스 (35A) 를 통하여 통신적으로 연결될 수도 있다. 프레임 내의 인코더 구성요소, 다양한 필터, 또는 다른 구성요소와 같은 다양한 다른 구성요소들은 또한 장치 (12A) 에 포함될 수도 있지만, 단순화를 위해 특별히 설명되지는 않는다.
비디오 메모리 (16A) 는 일반적으로 상대적으로 큰 메모리 공간을 포함한다. 비디오 메모리 (16A) 는 ,예를 들어, 동적 랜덤 액세스 메모리 (DRAM), 또는 플래시 메모리를 포함할 수도 있다. 다른 실시예에서, 비디오 메모리 (16A) 는 비-휘발성 메모리 또는 어떤 다른 데이터 저장 장치를 포함할 수도 있다.
비디오 인코더 (18A) 는 로컬 메모리 (25A) 를 포함하고, 그것은 비디오 메모리 (16A) 와 관계되는 더 작고 더 빠른 메모리 공간을 포함할 수도 있다. 예를 통하여, 로컬 메모리 (25A) 는 동기식 랜덤 액세스 메모리 (SRAM) 를 포함할 수도 있다. 로컬 메모리 (25A) 는, 프로세서-집중 인코딩 프로세스 동안 데이터에 대해 매우 빠른 액세스를 제공하기 위해 비디오 인코더 (18A) 의 다른 구성요소와 통합되는 "온-칩" 메모리를 또한 포함할 수도 있다. 주어진 비디오 프레임에서의 인코딩 동안에, 인코딩될 현재의 비디오 블록은 비디오 메모리 (16A) 로부터 로컬 메모리 (25A) 로 로딩될 수도 있다. 최상의 예측의 위치를 결정하는 데에 이용되는 탐색 공간도 또한 비디오 메모리 (16A) 로부터 로컬 메모리 (25A) 로 로딩될 수도 있다. 탐색 공간은 하나 이상의 이전의 비디오 프레임 (또는 뒤이은 프레임) 의 픽셀 서브세트를 포함할 수도 있다. 선택된 서브세트는 인코딩될 현재의 비디오 블록과 거의 대등한 최상의 예측의 식별을 위한 적당한 위치로서 미리 식별될 수도 있다.
많은 비디오 표준에서, 분수 픽셀 또는 비-정수 픽셀은 인코딩 프로세스 동안에도 또한 고려된다. 예를 들어, MPEG-4 에서, ½ 픽셀 값은 두 개의 인접한 픽셀 사이의 평균으로서 계산된다. MPEG-4 컴플라이언스 인코더에서, 두 개의 인접한 픽셀 사이의 평균은, 일반적으로 2-탭 디지털 필터라고 불리는, 두 개의 입력과 한 개의 출력을 가지는 상대적으로 단순한 디지털 필터를 이용하여, 필요에 따라, 주어진 차원에 관하여 쉽게 생성될 수 있다.
예를 통하여, 단순한 MPEG2 또는 MPEG4 의 경우에 있어서, 만약 인터폴레이션이 수평적으로와 수직적으로 모두 수행된다면, 2-탭 디지털 필터는 각각의 차원에 관하여 이용될 수 있다. 다른 방법으로, 2-차원에서의 인터폴레이션은 단일 4-탭 평균 필터로서 행해질 수 있다. 필터가 주어진 차원에서 3 이상의 입력, 또는 2-차원 인터폴레이션에 관하여 6 이상의 입력을 지정하는 경우, 여기서 설명되는 기술은 매우 유용하게 된다.
디지털 필터의 탭 가중치는 인코딩 표준에 의해 특정된다. MPEG-4 를 지원하기 위해, 모션 추정기 (26A) 및 모션 보정기 (28A) 는 유사한 2-탭 디지털 필터를 포함할 수도 있고, 그것은 로컬 메모리 (25A) 에서 로딩된 탐색 공간의 정수 픽셀 값들을 이용하여 임의의 시간에도 수평 또는 수직 차원에 관하여 ½ 픽셀 값이 생성되도록 한다.
그러나, 어떠한 더 새로운 어떤 표준에 있어서, 비-정수 픽셀은 더욱 복잡하다. 예를 들어, 많은 새로운 표준들은 주어진 차원에서, 3 이상 픽셀의 가중치 합에 기초하여 ½ 픽셀 값의 생성을 특정한다. 하나의 특정 예로서, ITU H.264 표준은 수평 및 수직 차원 모두에서 ½ 픽셀 값의 계산을 6 픽셀들 사이의 가중치 평균으로서 특정한다. 부분적인 수평 픽셀에 있어서, ½ 픽셀 값의 좌측에 있는 세 개의 픽셀은 ½ 픽셀 값의 우측에 있는 세 개의 픽셀과 유사하게 가중치된다. 부분적인 수직 픽셀에 있어서, ½ 픽셀 값의 최상부에 있는 세 개의 픽셀은 ½ 픽셀 값의 최하부에 있는 세 개의 픽셀과 유사하게 가중치된다. 두 경우 모두에 있어서, 6 개의 입력과 1 개의 출력을 가지는 필터 (6-탭 디지털 필터) 는 ½ 픽셀 값을 생성하기 위해 일반적으로 필요하다.
또한, ITU H.264 표준도 ¼ 픽셀 값의 생성을 특정하고, 그것은 정수 픽셀과 인접한 ½ 픽셀 사이의 평균으로서 계산된다. 따라서, ¼ 픽셀 값의 생성은 일반적으로 ½ 픽셀 값을 생성하는 6-탭 필터의 이용과, 뒤이은 ¼ 픽셀 값을 생성하는 2-탭 필터의 이용을 포함한다. 많은 사유 표준들은 또한 비-정수 픽셀 생성에 관하여 다른 가중치 평균 룰을 이용하고, 그것은 비-정수 픽셀 값의 생성에 대해 중요한 복잡성을 더할 수 있다.
본 발명에 따라, 주어진 차원에서 세 개이상의 입력 픽셀 값으로부터 생성되는 비-정수 픽셀 값은 탐색 공간의 일부분으로서 로컬 메모리 (25A) 에 저장될 수 있다. 저장된 비-정수 픽셀 값은, 비-정수 픽셀 값이 필요에 따라 위치되고 식별될 수 있는 한, 독립적으로 버퍼링되거나, 또는 어떤 특정한 메모리 위치에 할당 될 수도 있다. 반면에, 두 개의 입력 픽셀 값으로부터 생성되는 비-정수 픽셀 값은 어떠한 상당한 양의 시간 동안에도 저장될 필요가 없지만, 일반적으로 필요에 따라 계산될 수 있다.
본 발명은 상당한 시간 동안에 어떠한 비-정수 픽셀 값도 저장하는 로컬 메모리 (25A) 에서의 추가적인 메모리 공간의 필요와, 입력을 필터링하고 비-정수 픽셀 값을 생성하기 위해 필요한 하드웨어 또는 프로세싱 전력 사이에서의 트레이드-오프를 인식한다. 2-탭 필터는 하나의 차원에서 구현하기에 매우 단순하고 따라서, 2-탭 필터는 필요에 따라 두 개의 입력으로부터 비-정수 픽셀 값을 생성하는 비디오 인코더의 많은 위치에서 이용될 수 있다. 그러나, 하나의 차원에 대한 세 개의 입력보다 더 큰 값을 가지는 필터와, 특히 ITU H.264 표준에 따라 이용하는 6-탭 필터는 더욱 복잡하다. 이러한 더욱 큰 필터가 필요한 경우에, 세 개 이상의 입력을 수신하는 단일 필터를 구현하는 것이 더 유익하고, 그 후 필요한 경우에, 인코딩 프로세스에서의 재사용을 위해 로컬 메모리 (25A) 에서의 더욱 큰 필터의 출력을 저장하거나 또는 버퍼링한다.
예를 들어, 비디오 인코더 (18A) 는 모션 추정기 (26A) 및 모션 보정기 (28A) 를 포함하고, 그것을 각각 비디오 인코딩 프로세스에서 모션 추정 및 모션 보정을 수행한다. 도 2 에서 도시하고 있는 바와 같이, 모션 추정기 (26A) 및 모션 보정기 (28A) 는 하나 이상의 비-정수 픽셀 계산 유닛 (32A 및 36A) 을 각각 포함한다. 비-정수 픽셀 계산 유닛 (32A 및 36A) 은 하나 이상의 디지털 필터를 포함할 수도 있다. 그러나, 2-탭 디지털 필터가 비-정수 계산 유닛 (32A 및 36A) 모두에서 중복될 수도 있는 반면에, 어떠한 N-탭 필터 (여기서 N 은 3 보다 크거나 같은 정수를 나타낸다) 도 유닛 (32A 및 36A) 중의 하나에서만 구현될 수도 있다. 4 개 이상의 입력을 가지는 필터의 출력은 이후의 사용 및 인코딩 프로세스에서의 재-사용을 위해 로컬 메모리 (25A) 에 저장될 수 있다.
몇몇 경우에서, 별개의 필터는 수평 및 수직 인터폴레이션 모두에 있어서 구현되지만, (세 개의 탭 또는 더 큰 값의) 어떠한 큰 필터의 출력도 모션 추정 및 모션 보정에 관하여 재사용될 수 있다. 다른 경우에, 동일한 큰 필터가 수평 및 수직 인터폴레이션 모두에 관하여 이용될 수도 있고, 큰 필터의 출력은 모션 추정 및 모션 보정 모두에서의 이용을 위해 저장될 수 있다. 그러나, 그러한 경우에, 단일 필터가 수평 및 수직 인터폴레이션 모두에 관하여 이용되기 때문에, 클록 속도는 증가될 필요가 있을 수도 있고, 그것은 전력 소비를 증가시킬 수도 있다.
로컬 메모리 (25A) 는 인코딩될 현재 비디오 블록 및 탐색 공간과 함께 로딩되고, 그것은 프레임 간의 인코딩에 이용되는 하나 이상의 상이한 비디오 프레임의 일부 또는 전부를 포함한다. 모션 추정기 (26A) 는 최상의 예측을 식별하기 위해 탐색 공간에서 현재 비디오 블록을 다양한 비디오 블록과 비교한다. 그러나, 몇몇 경우에, 인코딩에 관한 적절한 매치는 모든 가능한 후보를 특별히 체크하지 않고, 더욱 빠르게 식별될 수도 있고, 그러한 경우에, 적절한 매치는 효과적인 비디오 인코딩에 있어서 적절하기는 하나, 사실상 "최상의" 예측이 아닐 수도 있다.
모션 추정기 (26A) 는 비-정수 픽셀 값을 이용하는 인코딩 방식을 지원한다. 특히, 비-정수 픽셀 계산 유닛 (32A) 은 탐색 공간을 부분적인 또는 비-정수 픽셀 값으로 확장하는 비-정수 픽셀 값을 생성할 수도 있다. 수평의 비-정수 픽셀 값 및 수직의 비-정수 픽셀 값 모두가 생성될 수도 있다. 두 개의 입력으로부터 생성되는 임의의 비-정수 픽셀 값이 이용될 수도 있고, 필요에 따라 두 개의 입력으로부터 생성되는 이러한 비-정수 픽셀 값이 쉽게 재-생성됨에 따라, 그 후 로컬 메모리 (25A) 에서 버려지거나 또는 중복된다. 그러나, 세 개 이상의 입력으로부터 생성되는 임의의 비-정수 픽셀 값은 생성 및 재-생성하기에 더욱 복잡함에 따라, 세 개 이상의 입력으로부터 생성되는 임의의 비-정수 픽셀 값을 인코딩 프로세스에서의 후속 이용을 위해 로컬 메모리 (25A) 에서 이용되고 유지될 수도 있다.
비디오 블록 매칭 유닛 (34A) 은 인코딩될 현재 비디오 블록과, 비-정수 픽셀 계산 유닛 (32A) 에 의해 생성되는 비-정수 픽셀 값을 포함하는 어떠한 후보 비디오 블록도 포함하는, 메모리 (25A) 의 탐색 공간에서의 후보 비디오 블록간의 비교를 수행한다. 예를 들어, 비디오 블록 매칭 유닛 (34A) 은 상이한 프로세서, 또는 최상의 예측을 식별하기 위해 감산을 수행하는 소프트웨어 루틴을 포함할 수도 있다.
예를 통하여, 만약 요구된다면, 비디오 블록 매칭 유닛 (34A) 은 SAD 기술 (차의 절대값의 합 기술), SSD 기술 (차의 제곱의 합 기술), 또는 다른 비교 기술들을 수행할 수도 있다. SAD 기술은 현재 비디오 블록이 비교되는 후보 비디오 블록의 픽셀 값들을 이용하여, 인코딩될 현재 비디오 블록의 픽셀 값들 사이의 차의 절대값 계산을 수행하는 작업을 포함한다. 이러한 차의 절대값 계산 결과는 현재 비디오 블록과 후보 비디오 블록 간의 차이를 나타내는 차의 값을 정의하기 위해 합산, 즉, 축적된다. 8×8 픽셀 영상 블록에 있어서, 64 차이는 계산되고 합산될 수도 있고, 16×16 픽셀 매크로 블록에 있어서, 256 차이는 계산되고 합산될 수도 있다. 모든 계산의 전체 합산은 후보 비디오 블록에 관한 차이 값을 정의할 수 있다.
일반적으로 더 낮은 차이 값은 후보 비디오 블록이 더 나은 매치이고, 따라서 더 높은 차이 값, 즉 증가된 변형을 가져오는 다른 후보 비디오 블록보다 모션 추정 인코딩에서의 이용에 관하여 더 나은 후보임을 나타낸다. 몇몇 경우에서, 비록 다른 후보 비디오 블록을 아직 고려하지 않았더라도, 계산은 축적된 차이 값이 정의되는 임계치를 초과하는 경우 또는 적절한 매치가 미리 식별되는 경우에 소거될 수도 있다.
SSD 기술은 또한 후보 비디오 블록의 픽셀 값을 이용하여 인코딩될 현재 비디오 블록의 픽셀 값들 사이의 차이 계산을 수행하는 작업을 포함한다. 그러나, SSD 기술에서, 감산 결과는 제곱하고, 그 후 제곱한 값을 더해지며, 즉, 현재 비디오 블록과 현재 매크로 블록이 비교되는 후보 비디오 블록 간의 차이를 나타내는 차이 값을 정의하기 위해 축적된다. 다른 방법으로, 비디오 블록 매칭 유닛 (34A) 은 평균 제곱 에러 (Mean Square Error; MSE), 표준화된 상관관계 함수 (Normalized Cross Correlaton Function; NCCF), 또는 또 다른 적절한 비교 알고리 즘과 같은 다른 비교 기술을 이용할 수도 있다.
결국, 비디오 블록 매칭 유닛 (34A) 은 인코딩될 비디오 블록과 가장 근사하게 매칭하는 후보 비디오 블록인 "최상의 예측" 을 식별할 수 있다. 그러나, 많은 경우에, 적절한 매치가 최상의 예측 이전에 놓여질 수도 있고, 그러한 경우에, 적절한 매치는 인코딩을 위해 이용될 수도 있다. 이하의 설명에서, 참조는 비디오 블록 매칭 유닛 (34A) 에 의해 식별되는 "최상의 예측" 에 대해 만들어지지만, 본 발명은 그러한 점에 한정되지 않고, 어떠한 적절한 매치도 이용될 수도 있고, 아마도 최상의 예측보다 더 빠르게 식별될 수 있다는 것이 알려져 있다.
몇몇 실시형태에서, 비디오 블록 매칭 유닛 (34A) 은 파이프라인 방식으로 구현될 수도 있다. 예를 들어, 비디오 블록 매칭 유닛 (34A) 은 동시에 2 이상의 비디오 블록을 처리하는 프로세싱 파이프라인을 포함할 수도 있다. 또한, 몇몇 경우에, 비록 인코딩될 비디오 블록의 크기가 4-픽셀×4-픽셀 비디오 블록보다 크다 할지라도, 프로세싱 파이프라인은 4-픽셀×4-픽셀 비디오 블록 상에서 동작하기 위해 설계될 수도 있다. 그러한 경우에, 4-픽셀×4-픽셀 비디오 블록의 인접한 세트에 관한 감산은, 예를 들어, 2 개의 4-픽셀×4-픽셀 후보를 포함하는 4-픽셀×8-픽셀 비디오 블록, 2 개의 4-픽셀×4-픽셀 후보를 포함하는 8-픽셀×4-픽셀 비디오 블록, 4 개의 4-픽셀×4-픽셀 후보를 포함하는 8-픽셀×8-픽셀 비디오 블록, 8 개의 4-픽셀×4-픽셀 후보를 포함하는 8-픽셀×16-픽셀 비디오 블록, 8 개의 4-픽셀×4-픽셀 후보를 포함하는 16-픽셀×8-픽셀 비디오 블록, 16 개의 4-픽셀×4-픽셀 후보를 포함하는 16-픽셀×16-픽셀 비디오 블록 등의 더 큰 비디오 블록 에 관한 감산을 나타내기 위해 합산될 수도 있다.
어떠한 경우에도, 일단 최상의 예측이 비디오 블록에 관하여 비디오 매칭 유닛 (34A) 에 의해 식별되면, 모션 보정기 (28A) 는 현재 비디오 블록과 최상의 예측간의 차이를 나타내는 차이 블록을 생성한다. 비디오 블록 인코더 (39A) 는 차이 블록을 압축하기 위해 차이 블록을 더욱 인코딩할 수도 있고, 인코딩된 차이 블록은 탐색 공간으로부터의 어느 후보 비디오 블록이 인코딩을 위해 이용되었는지를 나타내는 모션 벡터를 통하여, 또 다른 장치로의 송신을 위해 포워딩될 수 있다. 단순화를 위해, 모션 보정 이후에 인코딩을 수행하는 데에 이용되는 추가적인 구성요소는, 특정한 구성요소가 지원되는 특정한 표준에 따라 변화함에 따라, 차이 블록 인코더 (39A) 로서 일반화된다. 다시 말해서, 차이 블록 인코더 (39A) 는 차이 블록 상에서 하나 이상의 종래의 인코딩 기술을 수행할 수도 있고, 그것은 전술한 바와 같이 생성된다.
모션 보정기 (28A) 는 최상의 예측의 어떠한 비-정수 픽셀을 생성하는 것에 관한 비-정수 픽셀 계산 유닛들 (36A) 을 포함한다. 그러나, 위에서 약술한 바와 같이, 모션 보정기 (28A) 의 비-정수 픽셀 계산 유닛들 (36A) 은 주어진 차원에 관하여 단지 2-탭 디지털 필터만을 포함하고, 모션 추정기 (26A) 의 비-정수 픽셀 계산 유닛들 (32A) 의 어떤 더 큰 디지털 필터의 출력도 모션 추정 및 모션 보정 모두에서의 이용을 위해 로컬 메모리 (25A) 에 저장되기 때문에, 일반적으로 더 큰 디지털 필터를 포함하지 않는다. 따라서, 모션 보정기 (28A) 에서의 주어진 차원에 있어서 3 개 이상의 입력을 요구하는 디지털 필터를 구현할 필요가 없어질 수 있다.
차이 블록 계산 유닛 (38A) 은 차이 블록을 생성하고, 그것은 일반적으로 현재 비디오 블록과 최상의 예측 간의 차이를 나타낸다. 차이 블록은 또한 "예측 매트릭스" 또는 "잔여" 라고 불릴 수도 있다. 차이 블록은 일반적으로 최상의 예측의 픽셀 값과 현재 비디오 블록 간의 차이를 나타내는 값의 매트릭스이다. 다시 말해서:
차이 블록 = 최상의 예측의 픽셀 값 - 현재 비디오 블록의 픽셀 값
비디오 블록 인코더 (39) 는 차이 블록을 압축하기 위해 차이 블록을 인코딩하고, 그 후 인코딩된 비디오 블록은 또 다른 장치로의 송신을 위해 송신기 (20A) 로 포워딩된다. 몇몇 경우에, 인코딩된 비디오 블록은 일시적으로 비디오 메모리 (16A) 에 저장될 수도 있고, 거기서 인코딩된 비디오 블록은 축적되고 그 후 비디오 프레임의 스트림으로서 송신기 (20A) 에 의해 전송된다. 어떠한 경우에도, 인코딩된 비디오 블록은 인코딩된 차이 블록 및 모션 벡터의 형태를 취할 수도 있다. 차이 블록은 최상의 예측의 픽셀 값과 현재 비디오 블록 간의 차이를 나타낸다. 모션 벡터는, 프레임 내에서 또는 프레임으로부터 생성되는 부분적인 픽셀 내에서, 최상의 예측의 위치를 식별한다. 상이한 비디오 표준에 있어서 어느 프레임에 모션 벡터가 적용되는지를 식별하는 여러가지 방법들이 있다. 예를 들어, H.264 에서 참조 그림 인덱스를 활용하고, MPEG4 또는 MPEG2 에서 이 정보는 매크로블록 헤더 정보에서 전달된다.
도 3 은 비디오 인코더 (18B) 를 포함하는 장치 (12B) 의 또 다른 예시적인 블록도이다. 도 3 의 장치 (12B) 는 도 1 의 장치 (12) 에 대응할 수도 있고, 도 2 의 장치 (12A) 와 유사하다. 도 3 의 장치 (12B) 는 도 2 에서 나타내는 장치 (12A) 의 더욱 특정한 실시형태를 나타낸다. 예를 들어, 장치 (12B) 는 ITU H.264 비디오 인코딩 표준과 일치할 수도 있다.
도 3 에서 도시하는 바와 같이, 장치 (12B) 는 비디오 시퀀스를 인코딩하는 비디오 인코더 (18B), 인코딩 이전 및 이후에 비디오 시퀀스를 저장하는 비디오 메모리 (16B) 를 포함한다. 장치 (12B) 는 또한 인코딩된 시퀀스를 또 다른 장치로 송신하는 송신기 (20B), 비디오 시퀀스를 캡쳐하고 캡쳐한 시퀀스를 메모리 (16B) 에 저장하는 아마도 비디오 카메라와 같은 비디오 캡쳐 장치 (23B) 를 포함할 수도 있다. 장치 (12B) 의 다양한 구성요소가 통신 버스 (35B) 를 통하여 통신적으로 연결될 수도 있다. 프레임 내의 인코더 구성요소, 다양한 필터, 또는 다른 구성요소와 같은 다양한 다른 구성요소가 장치 (12B) 에 또한 포함될 수도 있지만, 간략화를 위해 특별히 설명하지는 않는다.
비디오 메모리 (16B) 는 일반적으로 상대적으로 큰 메모리 공간을 포함한다. 예로써, 비디오 메모리 (16B) 는 DRAM, FLASH 메모리, 아마도 비-휘발성 메모리, 또는 어떤 다른 데이터 저장 장치를 포함할 수도 있다.
비디오 인코더 (18B) 는 로컬 메모리 (25B) 를 포함하고, 그것은 비디오 메모리 (16B) 에 관계되는 더 작고 더 빠른 메모리 공간을 포함할 수도 있다. 예를 통하여, 로컬 메모리 (25B) 는 동기식 랜덤 액세스 메모리 (SRAM) 를 포함할 수도 있다. 로컬 메모리 (25B) 는 또한 프로세서-집중 인코딩 프로세스 동안에 빠른 액세스를 제공하기 위해 비디오 인코더 (18B) 의 다른 구성요소와 통합되는 "온-칩" 메모리를 포함할 수도 있다. 주어진 비디오 프레임에서의 인코딩 동안에, 인코딩될 현재 비디오 블록은 비디오 메모리 (16B) 로부터 로컬 메모리 (25B) 로 로딩될 수도 있다.
모션 추정기 (26B) 는 최상의 예측을 식별하기 위해 현재 비디오 블록을 탐색 공간의 다양한 비디오 블록들과 비교한다. 모션 추정기 (26B) 는 ½-픽셀 값 및 ¼-픽셀 값을 이용하는 ITU H.264 인코딩 방식을 지원한다. 특히, 비-정수 픽셀 계산 유닛 (32B) 은 ½-픽셀 인터폴레이션에 관하여 6-탭 필터 (31) 를 포함할 수도 있고, ¼-픽셀 인터폴레이션에 관하여 2-탭 필터 (33) 를 포함할 수도 있다. 수평의 ½- 및 ¼-픽셀 값 및 수직의 ½- 및 ¼-픽셀 값 모두가 생성될 수도 있다.
½-픽셀 값은, ITU H.264 비디오 인코딩 표준에 따라, 6 개의 연속적인 픽셀의 중요한 평균으로서 6-탭 필터 (31) 에 의해 생성된다. ¼-픽셀 값은 정수 픽셀 값 및 인접한 ½-픽셀 값의 평균으로서 2-탭 필터 (33) 에 의해 생성된다. 다시 말해서, 비록 본 발명이 그 점에 한정되지는 않지만, 필터의 탭의 가중치는 ITU H.264 비디오 인코딩 표준에 의해 특정될 수도 있다.
몇몇 경우에, 별개의 6-탭 필터는 수평 및 수직 인터폴레이션 모두에 관하여 모션 추정기 (26B) 에서 구현되고, 두 6-탭 필터의 출력은 모션 추정 및 모션 보정에서 이용될 수 있다. 다른 경우에, 동일한 6-탭 필터는 수평 및 수직 인터폴레이션 모두에 관하여 이용될 수도 있다. 그러나, 나중의 경우에, 클록 속도가 증가될 필요가 있을 수도 있고, 그것은 전력 소비를 증가시킬 것이다. 따라서, 모션 추정에서의 별개의 수평 및 수직 인터폴레이션에 관하여 두 개의 6-탭 디지털 필터를 구현하고, 그 후 모션 보정에서 수평 및 수직 인터폴레이션에 관하여 양자의 6-탭 디지털 필터의 출력을 재사용하는 것이 더욱 바람직할 수도 있다. 모션 추정기 (26B) 가 2 개의 수평 및 수직 ½-픽셀 인터폴레이션 6-탭 필터를 구현하는지의 여부 또는 단일 6-탭 필터가 수평 및 수직 ½-픽셀 인터폴레이션 양자에 관하여 이용되는지의 여부를 고려하지 않고, 단일 2-탭 디지털 필터는 ¼-픽셀 인터폴레이션에 관하여 각각의 모션 추정기 (26B) 및 모션 보정기 (28B) 에서 구현될 수도 있다. 그러나, 프로세싱 속도를 증가시키기 위해 추가적인 2-탭 필터가 또한 포함될 수도 있다.
어떠한 경우에도, 본 발명에 따라, 6-탭 필터 (31) 의 ½-픽셀 출력은 모션 추정 및 모션 보정 모두에 관하여 이용된다. 다시 말해서, 6-탭 필터 (31) 의 ½-픽셀 출력은 모션 추정에 관하여 이용되고, 그 후 모션 보정에서의 뒤이은 이용을 위해 메모리 (25B) 에 저장된다. 반면에, 2-탭 필터 (33) 의 ¼-픽셀 출력은 오직 모션 추정에 관하여만 이용되고, 그 후 메모리 (25B) 에서 버려지거나 또는 중복된다.
비디오 블록 매칭 유닛 (34B) 은 인코딩될 현재 비디오 블록과, 비-정수 픽셀 계산 유닛 (32B) 에 의해 생성되는 ¼- 또는 ½-픽셀 값을 포함하는 어떠한 후보 비디오 블록도 포함하는, 메모리 (25B) 의 탐색 공간에서의 후보 비디오 블록 간의 비교를 수행한다. 예를 들어, 비디오 블록 매칭 유닛 (34B) 은 상이한 프 로세서, 또는 최상의 예측 (또는 단순히 적절한 예측) 을 식별하기 위한 감산을 수행하는 소프트웨어 루틴을 포함할 수도 있다. 예로써, 비디오 블록 매칭 유닛 (34A) 은 SAD 기술, SSD 기술이나, 또는 평균 제곱 에러 (MSE), 표준화된 크로스 상관관계 함수 (NCCF), 또는 또 다른 적당한 비교 알고리즘과 같은 다른 비교 기술을 수행할 수도 있다.
결국, 비디오 블록 매칭 유닛 (34B) 은 "최상의 예측" 을 식별할 수 있고, 그것은 인코딩될 비디오 블록에 가장 가깝게 매칭하는 후보 비디오 블록이다. 몇몇 실시형태에서, 비디오 블록 매칭 유닛 (34B) 은 파이프라인 방식으로 구현될 수도 있다. 예를 들어, 비디오 블록 매칭 유닛 (34B) 은 둘 이상의 비디오 블록을 동시에 처리하는 프로세싱 파이프라인을 포함할 수도 있다. 또한, 몇몇 경우에, 비록 인코딩될 비디오 블록의 크기가 4-픽셀×4-픽셀 비디오 블록보다 크다고 할지라도, 프로세싱 파이프라인은 4-픽셀×4-픽셀 비디오 블록 상에서 동작하도록 설계될 수도 있다. 파이프라인 실시형태에서, ¼-픽셀 저장에 할당되는 메모리는 일단 픽셀이 파이프라인에서 고려되면 중복될 수도 있고, 그것은 필요한 메모리의 양을 감소시킬 수 있다. 물론, 여기서 약술한 바와 같이, ½-픽셀 값은 뒤이은 이용을 위해 저장된다.
일단, 비디오 블록에 관한 비디오 매칭 유닛 (34B) 에 의해 최상의 예측이 식별되면, 모션 보정기 (28B) 는 현재 비디오 블록과 최상의 예측 간의 차이를 나타내는 차이 블록을 생성할 수 있다. 모션 보정기 (28B) 는 그 후 차이 블록을 차이 블록 인코더 (39B) 로 포워딩하고, 그것은 ITU H.264 인코딩 표준에 의해 지 원되는 다양한 추가적인 인코딩을 수행한다. 차이 블록 인코더 (39B) 는, 인코딩을 위해 어느 후보 비디오 블록이 이용되는지를 가리키는 모션 벡터를 따라서, 또 다른 장치로의 송신을 위해 버스 (35B) 를 통하여 인코딩된 차이 블록을 송신기 (20B) 로 포워딩한다.
모션 보정기 (28B) 는, 로컬 메모리 (25B) 에 미리 저장되지 않은 최상의 예측의 어떠한 비-정수 픽셀도 생성하는 비-정수 픽셀 계산 유닛 (36B) 을 포함한다. 모션 보정기 (28B) 의 비-정수 픽셀 계산 유닛 (36B) 은 오직 ¼-픽셀 값을 생성하기 위한 2-탭 디지털 필터 (37) 만을 포함하고, 6-탭 디지털 필터 (31) 모션 추정기 (26B) 가 모션 추정 및 모션 보정 모두에서의 이용을 위해 로컬 메모리 (25B) 에 저장되기 때문에, 일반적으로 ½-픽셀 값을 생성하기 위한 6-탭 디지털 필터는 포함하지 않는다. 따라서, 모션 보정기 (28B) 에서 6-탭 디지털 필터 (31) 를 구현할 필요성은 없어질 수 있다. 또한, 2-탭 디지털 필터는 중요한 칩 회로 영역의 요구 없이 매우 쉽게 구현될 수 있다. 반면에, 6-탭 디지털 필터는 훨씬 더 복잡하다. 따라서, 주어진 비디오 블록의 인코딩 프로세스 동안의 중요한 시간량 동안 6-탭 디지털 필터 (31) 의 ½-픽셀 출력을 버퍼링하기 위해 요구되는 추가적인 메모리 공간은, 그것이 추가적인 6-탭 디지털 필터에 관한 필요를 없앨 수 있기 때문에 가치가 있다.
차이 블록 계산 유닛 (38B) 은 차이 블록을 생성하고, 그것은 일반적으로 현재 비디오 블록과 최상의 예측 간의 차이를 나타낸다. 또한, 차이 블록은 일반적으로 이하와 같이 계산된다:
차이 블록 = 최상의 예측의 픽셀 값 - 현재 비디오 블록의 픽셀 값
모션 보정기 (28B) 는 차이 블록을 차이 블록 인코더 (39B) 로 포워딩하고, 그것은 차이 블록을 인코딩 및 압축하고 또 다른 장치로의 송신을 위해 인코딩된 차이 블록을 송신기 (20B) 로 송신한다. 송신된 정보는 인코딩된 차이 블록 및 모션 벡터의 형태를 취할 수도 있다. 차이 블록은 최상의 예측의 픽셀 값과 현재 비디오 블록 간의 차이를 나타낸다. 모션 벡터는, 프레임 내 또는 프레임으로부터 생성되는 부분적인 픽셀 내에서 최상의 예측의 위치를 식별한다.
도 4 는 4-픽셀×4-픽셀 비디오 블록에 대응하는 위치를 따라 형성된 예시적인 탐색 공간 (40) 에 관한 도이다. 특히, 탐색 공간 (40) 은 앞서의 또는 뒤이은 비디오 프레임의 픽셀을 포함할 수도 있다. 인코딩될 현재 비디오 블록은 탐색 공간 (40) 의 정 중앙의 픽셀 (42) 의 위치에 대응하는 현재 프레임의 4-픽셀×4-픽셀 비디오 블록을 포함할 수도 있다.
도 5 는 ½-픽셀 값의 열을 포함하는 예시적인 탐색 공간 (50) 에 관한 도이다. "Bxx" 라고 불리는 픽셀 값은 수평의 ½-픽셀 값에 대응하고, 여기서 설명되는 바와 같이, 6-탭 디지털 필터에 의해 생성될 수도 있다. 예를 들어, 픽셀 B00은 픽셀 A00-A05 (도 4) 의 가중치 평균을 포함할 수도 있다. 필터의 탭-가중치는 상이한 정수 픽셀에 주어지는 가중치를 정의할 수 있고, 지원되는 표준에 의해 특정될 수 있다. "Bxx" 라고 불리는 수평의 ½-픽셀 값은, 여기서 설명된 바와 같이, 로컬 메모리에 저장되고, 모션 추정 및 모션 보정 모두에 관하여 재-사용될 수도 있다. 실제 저장 방식은 상이한 구현에 있어서 변할 수도 있다. 일 실시예에서, 수평 버퍼는 특히 수평의 ½-픽셀 값, 즉, "Bxx" 라고 불리는 것을 저장하기 위해 로컬 메모리에서 유지된다.
도 6 은 ½-픽셀 값의 행과 열을 포함하는 예시적인 탐색 공간 (60) 에 관한 또 다른 도이다. "Cxx" 라고 불리는 픽셀 값들은 수직의 ½-픽셀 값에 대응하고, 여기서 설명되는 바와 같이, 모션 추정기의 6-탭 디지털 필터에 의해 생성될 수도 있다. 예를 들어, 픽셀 C00 은 픽셀 A02-A52 (도 5) 의 가중치 평균을 포함할 수도 있고, 픽셀 C01 은 픽셀 B00-B05 (도 5) 의 가중치 평균을 포함할 수도 있다. "Cxx" 라고 불리는 수직의 ½-픽셀 값은, 여기서 설명되는 바와 같이, 로컬 메모리에 저장되고, 모션 추정 및 모션 보정 모두에 관하여 재-사용될 수도 있다. 그러나, 저장 방식은 상이한 구현에 있어서 변할 수도 있다. 일 실시예에서, 수직 버퍼는 특히 수직의 ½-픽셀 값, 즉, "Cxx" 라고 불리는 것을 저장하기 위해 로컬 메모리에서 유지된다.
추가적인 버퍼가 ¼-픽셀 값에 관하여 할당될 수도 있지만, 이 버퍼는 크기에 있어서 더욱 한정될 수도 있다. ¼-픽셀 값은 ¼-픽셀 버퍼에 저장될 수 있지만, 고려되는 이후로, 그 후 다른 ¼-픽셀 값과 중복된다. 본 발명은, 칩-구현 관점으로부터, 주어진 비디오 블록의 전체 인코딩 프로세스에 관하여 생성되는 모든 ¼-픽셀 값을 저장하기 위해 다른 방법으로 필요한 추가적인 메모리 공간 보다 2-탭 디지털 필터가 비용이 덜 든다는 것을 인식한다.
또한, 동일한 하드웨어가 인코딩 및 디코딩 모두에 관하여 이용될 수도 있다. 디코딩 방식은 덜 집중적이고, 일반적으로 필요에 따라, 픽셀 값의 생성을 요구한다. 본 발명에 따라, 모션 추정기 및 모션 보정기에서 이용되는 동일한 디지털 필터는 또한 어떠한 비-정수 픽셀 값을 생성하기 위해서라도 디코딩에서 이용될 수도 있다.
도 7 은 4-픽셀×4-픽셀 비디오 블록을 디코딩하기 위해 이용될 수도 있는 탐색 공간 (70) 에 관한 도이다. 그러한 경우에, 만약 어떠한 수평 또는 수직의 픽셀 값이 탐색 공간 (70) 에 기초하여 생성될 필요가 있다면, 모션 추정기의 6-탭 디지털 필터가 이용될 수도 있다. 픽셀 (72) 의 세트는, 6-탭 디지털 필터가 ITU H.264 표준에 따라 이용되는 경우에 탐색 공간 (70) 으로부터 생성될 수도 있는 모든 수평의 픽셀 값들을 정의한다. 도시되는 바와 같이, 픽셀 B00 은 픽셀 A00-A05 의 가중치 합을 포함하고, 픽셀 B31 은 픽셀 A31-A36 의 가중치 합을 포함한다. 정수 픽셀의 가중치 합에 대응하는 수직의 ½-픽셀 값은 유사한 방식으로 생성될 수 있지만, 간략화를 위해 특별히 설명하지는 않는다.
또한, 추가적인 수직의 ½-픽셀 값은 또 다른 세트의 픽셀 (74) 을 정의하기 위해 픽셀 (72) 의 세트로부터 생성될 수도 있다. 예를 들어, 픽셀 C03 은 픽셀 B03-B53 의 가중치 합을 포함할 수도 있다. 어떠한 ¼-픽셀 값도 입력이 정수 픽셀 값 및 인접한 ½-픽셀 값인 2-탭 디지털 필터를 이용하여, 필요에 따라 유사하게 생성될 수도 있다. 예를 들어, 픽셀 A02 및 픽셀 A02 에 더 가까운 A03 사이의 ¼-픽셀 값은 A02 및 B00 의 평균일 것이다. 유사하게, 픽셀 A02 및 픽셀 A03 에 더 가까운 A03 사이의 ¼-픽셀 값은 B00 및 A03 의 평균일 것이다.
중요하게, 인코딩에 이용되는 동일한 하드웨어, 즉, 6-탭 디지털 필터 및 다 양한 2-탭 디지털 필터는 탐색 공간 (70) 을 입력으로 기초로 하여, 디코딩에 필요한 어떠한 출력을 생성하는 데에도 이용될 수 있다. 따라서, 여기서 설명되는 인코딩 기술은, 동일한 하드웨어가 인코딩 및 디코딩 모두에 관하여 이용될 수 있는 디코딩 방식과 전체적으로 일치한다.
도 8 은 비디오 인코딩 기술을 나타내는 흐름도이다. 설명의 목적으로, 도 8 은 도 3 의 장치 (12B) 의 관점으로부터 설명될 것이다. 비디오 인코딩 기술은 도 8 에서 도시되는 모든 단계, 또는 설명되는 단계의 서브세트를 포함할 수도 있다. 도 8 에서 설명되는 바와 같이, 비디오 인코더 (18B) 는 정수 픽셀의 탐색 영역을 비디오 메모리 (16B) 로부터 로컬 메모리 (25B) 로 로딩한다 (81). 그 후 비디오 블록 매칭 유닛 (34B) 은 정수 비디오 블록, 즉, 오직 정수 픽셀 값 만을 가지는 비디오 블록 (82) 에 관하여 모션 추정 감산의 수행을 즉시 시작할 수 있다. 한편, 6-탭 디지털 필터 (31) 는 정수 픽셀의 다양한 서브세트의 가중치 합에 기초하여 ½-픽셀 값을 생성한다. 중요하게도, 비디오 인코더 (18B) 는 모션 추정 뿐만 아니라, 뒤이은 모션 보정에서의 사용을 위해서 생성된 ½-픽셀 값을 저장한다 (84).
이러한 관점에서, 비디오 블록 매칭 유닛 (34B) 은 ½-정수 비디오 블록, 즉, ½-정수 픽셀 값을 포함하는 어떤 비디오 블록에 관한 모션 추정 감산을 수행할 수 있다 (85). 2-탭 디지털 필터 (33) 는, 예를 들어, 정수 픽셀 값과 인접한 ½-픽셀 값의 평균으로서 ¼-픽셀 값을 생성한다 (86). ¼-픽셀 값은 모션 추정에 관하여 이용될 수 있지만, 어떠한 뒤이은 이용에 관하여도 저장될 필요는 없 다. 비디오 블록 매칭 유닛 (34B) 은 ¼-정수 비디오 블록, 즉, ¼-정수 픽셀 값을 포함하는 어떤 비디오 블록에 관한 모션 추정 감산을 수행할 수 있다 (87).
일단, ½-픽셀 블록 및 ¼-픽셀 블록을 포함하여 모든 후보 비디오 블록이 인코딩될 현재 비디오 블록과 비교되면, 모션 추정기 (26B) 는 최상의 예측을 식별한다 (88). 그러나, 전술한 바와 같이, 본 발명은 또한 적절한 매치의 이용을 고려하고, 그것은 효과적인 비디오 인코딩 및 압축을 위한 적절한 매치이기는 하지만 "최상의" 매치일 필요는 없다. 그 후 모션 보정이 수행된다.
모션 보정 동안에 모션 보정기 (28B) 는 6-탭 필터 (31) 에 의해 생성되고 로컬 메모리 (25B) 에 저장되는 ½-픽셀 값을 이용한다 (89). 그러나, 2-탭 필터 (37) 는 모션 보정을 위해 필요한 어떠한 ¼-픽셀 값도 생성한다 (90). 그러한 경우에, 2-탭 필터 (37) 는 이전에 2-탭 디지털 필터 (33) 에 의해 생성된 ¼-픽셀 값의 적어도 몇몇이라도 재-생성할 수도 있다. 차이 블록 계산 유닛 (38A) 은 예를 들어, 인코딩될 현재 비디오 블록과 최상의 예측 비디오 블록간의 차이를 나타내는 차이 블록을 생성한다 (91). 그 후 차이 블록은 인코딩될 수 있고, 비디오 인코딩에 관하여 이용되는 후보 비디오 블록의 위치를 식별하는 모션 벡터와 함께 송신될 수 있다.
수 개의 상이한 실시형태가 설명되었다. 본 기술은 로컬 메모리 공간과 비-정수 픽셀 계산을 수행하기 위해 이용되는 하드웨어사이의 효율적인 균형을 달성함에 의해 비디오 인코딩 개선을 가능하게 할 수도 있다. 이들 및 아마도 다른 방식으로, 본 기술은 어떤 다양한 특허된 표준을 포함하여, ITU H.264 또는 비- 정수 픽셀 값을 이용하는 어떤 다른 비디오 인코딩 표준과 같은 표준에 따라 비디오 인코딩을 개선시킬 수 있다. 특히, 본 기술은 특정한 차원에서의 비-정수 픽셀 값의 생성에 있어서, 비디오 인코딩 표준이 3-탭 필터 또는 더 큰 값을 요구할 때마다 특별히 유용하다. 다시 말해서, 본 기술은 1-차원 인터폴레이션에 관하여 비디오 인코딩 표준이 3-탭 필터 또는 더 큰 값을 요구할 때마다 특별히 유용하다. 본 기술은 또한, 만약 2-차원 인터폴레이션에 관하여 5-탭 필터 또는 더 큰 값을 이용하여 표준이 구현될 수 있다면 유용할 수도 있다. 지원되는 주어진 표준은 다양한 필터의 탭 가중치를 특정할 수도 있다.
본 기술은 하드웨어, 소프트웨어, 펌웨어, 또는 그들에 관한 어떤 조합에서 구현될 수도 있다. 만약 소프트웨어에서 구현된다면, 본 기술은, 비디오 시퀀스를 인코딩하는 장치에서 실행되는 경우에 전술한 하나 이상의 방법을 수행하는, 프로그램 코드를 포함하는 컴퓨터 판독가능 매체에 관한 것일 수도 있다. 그러한 경우에, 컴퓨터 판독가능 매체는 동기식 동적 랜덤 액세스 메모리 (SDRAM), 읽기-전용 메모리 (ROM), 비-휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 삭제가능한 프로그램가능 읽기-전용 메모리 (EEPROM), 플래시 메모리 등과 같은 랜덤 액세스 메모리 (RAM) 를 포함할 수도 있다.
프로그램 코드는 컴퓨터 판독가능 명령의 형태로 메모리에 저장될 수도 있다. 그러한 경우에, DSP 와 같은 프로세서는 여기서 설명되는 하나 이상의 기술을 수행하기 위해 메모리에 저장된 명령을 실행할 수도 있다. 몇몇 경우에, 본 기술은 인코딩 프로세스를 가속화하기 위해 모션 추정기와 같은 다양한 하드웨 어 구성요소를 불러오는 DSP 에 의해 실행될 수도 있다. 다른 경우에, 비디오 인코더는 마이크로프로세서, 하나 이상의 주문형 반도체 (ASIC), 하나 이상의 프로그램가능 게이트 어레이 (FPGA), 또는 어떤 다른 하드웨어-소프트웨어 조합으로서 구현될 수도 있다. 이들 및 다른 실시형태들은 이하의 청구항의 범위 내에 있다.
본 발명에 의하면 로컬 메모리 공간과 비-정수 픽셀 계산을 수행하기 위해 이용되는 하드웨어사이의 효율적인 균형을 달성함에 의해 비디오 인코딩 개선을 가능하게 하고, ITU H.264 또는 비-정수 픽셀 값을 이용하는 어떤 다른 비디오 인코딩 표준과 같은 표준에 따라 비디오 인코딩을 개선시킬 수 있다.
특히, 본 발명은 특정한 차원에서의 비-정수 픽셀 값의 생성에 있어서, 비디오 인코딩 표준이 3-탭 필터 또는 더 큰 값을 요구할 때마다 특별히 유용하며, 또한, 만약 2-차원 인터폴레이션에 관하여 5-탭 필터 또는 더 큰 값을 이용하여 표준이 구현될 수 있다면 유용하다.

Claims (35)

  1. 모션 추정에 관하여 비-정수 픽셀 값을 생성하는 모션 추정기로서, 상기 모션 추정기는 1-차원 인터폴레이션에 관하여 정수 픽셀값의 3 개 이상의 입력을 수신하는 필터는 포함하는, 모션 추정기;
    상기 모션 추정기에 의해 생성되는 상기 비-정수 픽셀 값을 저장하는, 메모리; 및
    모션 보정에 관하여 상기 저장된 비-정수 픽셀 값을 이용하는 모션 보정기를 구비하는, 비디오 인코딩 장치.
  2. 제 1 항에 있어서,
    상기 비-정수 픽셀 값은 ½-픽셀 값을 포함하며,
    상기 모션 추정기는 모션 보정에 관한 ¼-픽셀 값의 저장 없이, 상기 모션 추정에 관한 상기 ½-픽셀 값을 이용하여 상기 ¼-픽셀 값을 생성하고;
    상기 모션 보정기는 상기 모션 보정에 관한 상기 ½-픽셀 값을 이용하여 상기 ¼-픽셀 값을 재-생성하는, 비디오 인코딩 장치.
  3. 제 2 항에 있어서,
    상기 모션 추정기는 모션 추정 및 모션 보정에 관한 상기 ½-픽셀 값을 생성하기 위한 6-탭 필터, 및 모션 추정에 관한 상기 ¼-픽셀 값을 생성하기 위한 2-탭 필터를 구비하고;
    상기 모션 보정기는 모션 보정에 관한 상기 ¼-픽셀 값을 재-생성하기 위한 또 다른 2-탭 필터를 구비하는, 비디오 인코딩 장치.
  4. 제 2 항에 있어서,
    상기 모션 추정기는 수평 및 수직 인터폴레이션에 있어서의 모션 추정 및 모션 보정에 관한 상기 ½-픽셀 값을 생성하기 위한 2 개의 6-탭 필터 및 수평 및 수직 인터폴레이션에 있어서 모션 추정에 관한 ¼-픽셀 값을 생성하는 하나의 2-탭 필터를 구비하고;
    상기 모션 보정기는 수평 및 수직 인터폴레이션에 있어서의 모션 보정에 관한 상기 ¼-픽셀 값을 재-생성하기 위한 또 다른 2-탭 필터를 구비하는, 비디오 인코딩 장치.
  5. 제 4 항에 있어서,
    상기 장치는 ITU H.264 비디오 인코딩 표준과 일치하고, 상기 6-탭 및 2-탭 필터에 관한 탭 가중치는 상기 ITU H.264 비디오 인코딩 표준에 의해 특정되는, 비디오 인코딩 장치.
  6. 제 1 항에 있어서,
    상기 모션 추정기는 상기 저장된 비-정수 픽셀 값에 기초하여 모션 추정에 관한 추가적인 비-정수 픽셀 값을 생성하는 제 2 필터를 구비하는, 비디오 인코딩 장치.
  7. 제 6 항에 있어서,
    상기 모션 추정기는 모션 보정에 관한 상기 추가적인 비-정수 픽셀 값의 저장 없이, 모션 추정에 관한 상기 추가적인 비-정수 픽셀 값을 생성하고, 상기 모션 보정기는 모션 보정에 관한 상기 추가적인 비-정수 픽셀 값을 재-생성하기 위해 제 3 필터를 구비하는, 비디오 인코딩 장치.
  8. 제 1 항에 있어서,
    상기 장치는 4-픽셀×4-픽셀 비디오 블록 상에서 상기 모션 추정 및 상기 모션 보정을 수행하는, 비디오 인코딩 장치.
  9. 제 8 항에 있어서,
    상기 장치는, 상기 4-픽셀×4-픽셀 서브-비디오 블록보다 큰 비디오 블록에 관한 모션 벡터 및 차이 매트릭스를 생성하기 위해 파이프라인 방식으로 상기 모션 추정 및 상기 모션 보정을 수행하는, 비디오 인코딩 장치.
  10. 제 1 항에 있어서,
    상기 장치는 하나 이상의 디지털 텔레비젼, 무선 통신 장치, 개인용 디지털 보조수단, 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 디지털 리코딩 장치, 비디오 성능을 가지는 셀룰러 무선전화기, 및 비디오 성능을 가지는 위성 무선전화기를 구비하는, 비디오 인코딩 장치.
  11. 제 1 항에 있어서,
    상기 메모리는 로컬 온-칩 (on-chip) 메모리를 포함하고, 상기 장치는 버스를 통하여 상기 로컬 온-칩 메모리에 전기적으로 연결된 오프-칩 (off-chip) 비디오 메모리를 더 구비하는, 비디오 인코딩 장치.
  12. 제 1 항에 있어서,
    상기 모션 추정기 및 상기 모션 보정기에 의해 인코딩된 비디오 프레임을 송신하는 송신기를 더 구비하는, 비디오 인코딩 장치.
  13. 제 12 항에 있어서,
    실-시간으로 비디오 프레임을 캡쳐하는 비디오 캡쳐 장치, 실-시간으로 상기 비디오 프레임을 인코딩하도록 구성되는 상기 모션 추정기 및 상기 모션 보정기, 및 실-시간으로 상기 인코딩된 비디오 프레임을 송신하도록 구성되는 상기 송신기를 더 구비하는, 비디오 인코딩 장치.
  14. 제 1 항에 있어서,
    상기 비-정수 픽셀 값의 생성은 수평 또는 수직의 픽셀 인터폴레이션을 구비하는, 비디오 인코딩 장치.
  15. 모션 추정 및 모션 보정에 관한 비-정수 픽셀 값을 생성하기 위해 정수 픽셀 값의 3 개 이상의 입력을 수신하는 제 1 필터;
    상기 모션 추정에 관한 추가적인 비-정수 픽셀 값을 생성하기 위해 상기 비-정수 픽셀 값 입력을 수신하는 제 2 필터; 및
    상기 모션 보정에 관한 추가적인 비-정수 픽셀 값을 생성하기 위해 상기 비-정수 픽셀 값 입력을 수신하는 제 3 필터를 구비하는, 비디오 인코딩 장치.
  16. 제 15 항에 있어서,
    상기 제 1 필터는 상기 모션 추정 및 상기 모션 보정에 관한 상기 비-정수 픽셀 값을 생성하기 위해 정수 픽셀 값의 6 개의 입력을 수신하는 6-탭 필터를 구비하고;
    상기 제 2 필터는 상기 모션 추정에 관한 상기 추가적인 비-정수 픽셀 값을 생성하기 위해 상기 비-정수 픽셀 값의 2 개의 입력을 수신하는 2-탭 필터를 구비하고;
    상기 제 3 필터는 상기 모션 보정에 관한 상기 추가적인 비-정수 픽셀 값을 생성하기 위해 상기 비-정수 픽셀 값의 2 개의 입력을 수신하는 2-탭 필터를 구비하는, 비디오 인코딩 장치.
  17. 제 15 항에 있어서,
    상기 장치는 ITU H.264 비디오 인코딩 표준에 일치하고, 상기 6-탭 및 2-탭 필터에 관한 탭 가중치는 상기 ITU H.264 비디오 인코딩 표준에 의해 특정되는, 비디오 인코딩 장치.
  18. 제 15 항에 있어서,
    상기 필터는 수평 인터폴레이션에 관하여 상기 비-정수 픽셀 값을 생성하는, 비디오 인코딩 장치.
  19. 제 18 항에 있어서,
    수직 인터폴레이션에 있어서의 상기 모션 추정 및 상기 모션 보정에 관한 비-정수 픽셀 값을 생성하기 위해 정수 픽셀 값의 6 개의 입력를 수신하는 6-탭 필터를 구비하는 또 다른 제 1 필터;
    수직 인터폴레이션에 있어서의 상기 모션 추정에 관한 상기 추가적인 비-정수 픽셀 값을 생성하기 위해 상기 비-정수 픽셀 값의 2 개의 입력을 수신하는 2-탭 필터를 구비하는 또 다른 제 2 필터; 및
    수직 인터폴레이션에 있어서의 상기 모션 보정에 관한 상기 추가적인 비-정수 픽셀 값을 생성하기 위해 상기 비-정수 픽셀 값의 2 개의 입력을 수신하는 2-탭 필터를 구비하는 또 다른 제 3 필터를 더 구비하는, 비디오 인코딩 장치.
  20. 수평 또는 수직 인터폴레이션에 관하여 정수 픽셀 값의 3 개 이상의 입력을 수신하는 필터를 이용하여 모션 추정에 관한 비-정수 픽셀 값을 생성하는 단계;
    모션 추정에 관한 상기 비-정수 픽셀 값을 이용하는 단계;
    상기 비-정수 픽셀 값을 저장하는 단계; 및
    상기 모션 보정에 관한 상기 저장된 비-정수 픽셀 값을 이용하는 단계를 포함하는, 비디오 인코딩 방법.
  21. 제 20 항에 있어서,
    상기 비-정수 픽셀 값은 ½-픽셀 값을 포함하고,
    상기 방법은,
    모션 보정에 관한 ¼-픽셀 값의 저장 없이 상기 모션 추정에 관한 상기 ¼-픽셀 값을 생성하는 단계; 및
    상기 모션 보정에 관한 상기 ¼-픽셀 값을 재-생성하는 단계를 더 포함하는, 비디오 인코딩 방법.
  22. 제 21 항에 있어서,
    상기 ½-픽셀 값을 생성하는 단계는 6-탭 필터를 적용하는 단계를 포함하고;
    상기 ¼-픽셀 값을 재-생성하는 단계는 2-탭 필터를 적용하는 단계를 포함하는, 비디오 인코딩 방법.
  23. 제 22 항에 있어서,
    상기 방법은 ITU H.264 비디오 인코딩 표준과 일치하고, 상기 6-탭 및 2-탭 필터에 관한 탭 가중치는 상기 ITU H.264 비디오 인코딩 표준에 의해 특정되는, 비디오 인코딩 방법.
  24. 제 20 항에 있어서,
    상기 저장된 비-정수 픽셀 값에 기초하여 모션 추정에 관한 추가적인 비-정수 픽셀 값을 생성하는 단계를 더 포함하는, 비디오 인코딩 방법.
  25. 제 24 항에 있어서,
    모션 보정에 관한 상기 추가적인 비-정수 픽셀 값의 저장 없이 모션 추정에 관한 상기 추가적인 비-정수 픽셀 값을 생성하는 단계, 및 모션 보정에 관한 상기 추가적인 비-정수 픽셀 값을 재-생성하는 단계를 더 포함하는, 비디오 인코딩 방법.
  26. 제 20 항에 있어서,
    4-픽셀×4-픽셀 비디오 블록 상에서 상기 모션 추정 및 상기 모션 보정을 수행하는 단계를 더 포함하는, 비디오 인코딩 방법.
  27. 제 26 항에 있어서,
    4-픽셀×4-픽셀 서브-비디오 블록보다 큰 비디오 블록에 관한 모션 벡터 및 차이 매트릭스를 생성하기 위해 파이프라인 방식으로 상기 모션 추정 및 상기 모션 보정을 수행하는 단계를 포함하는, 비디오 인코딩 방법.
  28. 실행되는 경우에,
    수평 또는 수직 인터폴레이션에 관한 정수 픽셀 값의 3 개 이상의 입력을 수신하는 필터를 이용하여 비-정수 픽셀 값을 생성하고;
    모션 추정에 관한 상기 비-정수 픽셀 값을 이용하고;
    상기 비-정수 픽셀 값을 저장하고;
    모션 보정에 관한 상기 저장된 비-정수 픽셀 값을 이용하는 명령을 포함하는, 컴퓨터 판독가능 매체.
  29. 제 28 항에 있어서,
    상기 비-정수 픽셀 값은 ½-픽셀 값을 포함하고,
    상기 컴퓨터 판독가능 매체는, 실행되는 경우에,
    모션 보정에 관한 상기 ¼-픽셀 값의 저장 없이 상기 모션 추정에 관한 ¼-픽셀 값을 생성하고;
    상기 모션 보정에 관한 상기 ¼-픽셀 값을 재-생성하는 명령을 포함하는, 컴퓨터 판독가능 매체.
  30. 제 29 항에 있어서,
    실행되는 경우에,
    6-탭 필터를 적용하는 것에 의해 상기 ½-픽셀 값을 생성하고;
    2-탭 필터를 적용하는 것에 의해 상기 ¼-픽셀 값을 생성하는, 컴퓨터 판독가능 매체.
  31. 제 28 항에 있어서,
    실행되는 경우에, 4-픽셀×4-픽셀 비디오 블록 상에서 상기 모션 추정 및 상기 모션 보정을 수행하는 명령을 더 포함하는, 컴퓨터 판독가능 매체.
  32. 제 31 항에 있어서,
    실행되는 경우에, 4-픽셀×4-픽셀 서브-비디오 블록보다 큰 비디오 블록에 관한 모션 벡터 및 차이 매트릭스를 생성하기 위해 파이프라인 방식으로 상기 모션 추정 및 상기 모션 보정을 수행하는 명령을 더 포함하는, 컴퓨터 판독가능 매체.
  33. 수직 또는 수평 인터폴레이션에 관한 정수 픽셀 값의 3 개 이상의 입력을 이용하여 모션 추정에 관한 비-정수 픽셀 값을 생성하는 수단;
    모션 추정에서의 상기 비-정수 픽셀 값을 이용하는 수단;
    상기 비-정수 픽셀 값을 저장하는 수단; 및
    모션 보정에 관한 상기 저장된 비-정수 픽셀 값을 이용하는 수단을 구비하는, 장치.
  34. 제 33 항에 있어서,
    정수 픽셀 값의 6 개의 입력을 이용하여 상기 모션 추정에 관한 상기 비-정수 픽셀 값을 생성하는 수단;
    저장된 비-정수 픽셀 값의 2 개의 입력을 이용하여 상기 모션 추정에 관한 추가적인 비-정수 픽셀 값을 생성하는 수단; 및
    저장된 비-정수 픽셀 값의 2 개의 입력을 이용하여 상기 모션 보정에 관한 상기 추가적인 비-정수 픽셀 값을 생성하는 수단을 구비하는, 장치.
  35. 모션 추정에 관한 비-정수 픽셀 값을 생성하는 모션 추정기로서, 상기 모션 추정기는 2-차원 인터폴레이션에 관하여 정수 픽셀의 5 개 이상의 입력을 수신하는 필터를 구비하는, 모션 추정기;
    상기 모션 추정기에 의해 생성된 상기 비-정수 픽셀 값을 저장하는 메모리; 및
    모션 보정에 관한 상기 저장된 비-정수 픽셀 값을 이용하는 모션 보정기를 구비하는, 비디오 인코딩 장치.
KR1020050044705A 2004-10-27 2005-05-26 비디오 인코딩을 위한 비-정수 픽셀 공유 KR100964515B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/975,731 2004-10-27
US10/975,731 US20060088104A1 (en) 2004-10-27 2004-10-27 Non-integer pixel sharing for video encoding

Publications (2)

Publication Number Publication Date
KR20060046205A true KR20060046205A (ko) 2006-05-17
KR100964515B1 KR100964515B1 (ko) 2010-06-21

Family

ID=35840669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050044705A KR100964515B1 (ko) 2004-10-27 2005-05-26 비디오 인코딩을 위한 비-정수 픽셀 공유

Country Status (5)

Country Link
US (1) US20060088104A1 (ko)
EP (1) EP1653744A1 (ko)
JP (1) JP2006129436A (ko)
KR (1) KR100964515B1 (ko)
CN (1) CN1767644A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190062814A (ko) * 2017-11-29 2019-06-07 전자부품연구원 비디오 부호화기에서 보간 필터를 이용한 고속 움직임 예측을 수행하기 위한 장치 및 이를 위한 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050111545A1 (en) 2003-11-25 2005-05-26 Ram Prabhakar Dynamic packet size control for MPEG-4 data partition mode
US20060088104A1 (en) 2004-10-27 2006-04-27 Stephen Molloy Non-integer pixel sharing for video encoding
US20060133507A1 (en) * 2004-12-06 2006-06-22 Matsushita Electric Industrial Co., Ltd. Picture information decoding method and picture information encoding method
US7859574B1 (en) * 2005-07-19 2010-12-28 Maxim Integrated Products, Inc. Integrated camera image signal processor and video encoder
JP5053275B2 (ja) * 2005-07-28 2012-10-17 トムソン ライセンシング 階層的キャッシュを使うビデオ動き処理最適化のための方法および装置
US8265151B1 (en) 2005-12-14 2012-09-11 Ambarella Taiwan Ltd. Mode decision using approximate 1/2 pel interpolation
US8705630B2 (en) * 2006-02-10 2014-04-22 Nvidia Corporation Adapting one type of encoder to another type of encoder
US8208553B2 (en) * 2006-05-04 2012-06-26 Altera Corporation Methods and apparatus for quarter-pel refinement in a SIMD array processor
TWI326433B (en) * 2006-09-19 2010-06-21 Ind Tech Res Inst Method for saving interpolation data
US9014280B2 (en) * 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
KR100926752B1 (ko) 2007-12-17 2009-11-16 한국전자통신연구원 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치
US8098957B2 (en) * 2008-02-13 2012-01-17 Qualcomm Incorporated Shared block comparison architechture for image registration and video coding
DE102011119177A1 (de) * 2011-11-23 2013-05-23 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Verfahren zum Erstellen eines ersten Parametersatzes
KR20130082304A (ko) * 2012-01-11 2013-07-19 한국전자통신연구원 고해상도용 상세단위 움직임 추정 장치
KR102301232B1 (ko) 2017-05-31 2021-09-10 삼성전자주식회사 다채널 특징맵 영상을 처리하는 방법 및 장치
CN112215782B (zh) * 2020-10-29 2022-10-14 中国科学院长春光学精密机械与物理研究所 一种卷帘快门成像装置图像校正方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5461423A (en) * 1992-05-29 1995-10-24 Sony Corporation Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal
US5453799A (en) * 1993-11-05 1995-09-26 Comsat Corporation Unified motion estimation architecture
US5596369A (en) * 1995-01-24 1997-01-21 Lsi Logic Corporation Statistically derived method and system for decoding MPEG motion compensation and transform coded video data
KR100226684B1 (ko) * 1996-03-22 1999-10-15 전주범 반화소 움직임 추정장치
US6707853B1 (en) * 2000-01-10 2004-03-16 Intel Corporation Interface for performing motion compensation
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7630566B2 (en) * 2001-09-25 2009-12-08 Broadcom Corporation Method and apparatus for improved estimation and compensation in digital video compression and decompression
US20030169818A1 (en) * 2002-03-06 2003-09-11 Pere Obrador Video transcoder based joint video and still image pipeline with still burst mode
US8284844B2 (en) * 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
MXPA05000335A (es) * 2002-07-09 2005-03-31 Nokia Corp Metodo y sistema para seleccionar tipo de filtro de interpolacion en codificacion de video.
US7408988B2 (en) * 2002-12-20 2008-08-05 Lsi Corporation Motion estimation engine with parallel interpolation and search hardware
US20060088104A1 (en) 2004-10-27 2006-04-27 Stephen Molloy Non-integer pixel sharing for video encoding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190062814A (ko) * 2017-11-29 2019-06-07 전자부품연구원 비디오 부호화기에서 보간 필터를 이용한 고속 움직임 예측을 수행하기 위한 장치 및 이를 위한 방법

Also Published As

Publication number Publication date
KR100964515B1 (ko) 2010-06-21
US20060088104A1 (en) 2006-04-27
EP1653744A1 (en) 2006-05-03
JP2006129436A (ja) 2006-05-18
CN1767644A (zh) 2006-05-03

Similar Documents

Publication Publication Date Title
KR100964515B1 (ko) 비디오 인코딩을 위한 비-정수 픽셀 공유
KR100955152B1 (ko) 비디오 인코딩을 위한 다차원 인접 블록 예측
US11856220B2 (en) Reducing computational complexity when video encoding uses bi-predictively encoded frames
JP2008523724A (ja) 動画像符号化のための動き推定技術
US8340172B2 (en) Rate control techniques for video encoding using parametric equations
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
US8160144B1 (en) Video motion estimation
CN100584010C (zh) 功率最佳化的共位运动估测方法
US20130170565A1 (en) Motion Estimation Complexity Reduction
KR100900058B1 (ko) 다양한 멀티미디어 코덱에 사용되는 움직임 추정 연산 방법및 그 연산회로
KR100617598B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100757832B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100757830B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR19990058255A (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법.
KR100757831B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100757829B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR20120129629A (ko) 루프 내 전처리 필터링을 이용한 움직임 추정 및 보상 방법
KR20070063479A (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
Goto et al. H. 264 video encoder implementation on a low-power DSP with low and stable computational complexity
WO2023205371A1 (en) Motion refinement for a co-located reference frame
KR100928272B1 (ko) 동영상 부호화를 위한 움직임 추정 방법 및 장치
Shahid et al. A high quality adjustable complexity motion estimation algorithm for video encoders
Shen Motion drift modeling and correction for downscale video transcoding
Jiang et al. Large-range motion estimation for high-parallelism video processor
JP2006261950A (ja) 周波数領域中のブロックマッチングの動き推定方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee