KR100907843B1 - 비디오 모션 보상용 캐싱 방법 및 장치 - Google Patents

비디오 모션 보상용 캐싱 방법 및 장치 Download PDF

Info

Publication number
KR100907843B1
KR100907843B1 KR1020077008039A KR20077008039A KR100907843B1 KR 100907843 B1 KR100907843 B1 KR 100907843B1 KR 1020077008039 A KR1020077008039 A KR 1020077008039A KR 20077008039 A KR20077008039 A KR 20077008039A KR 100907843 B1 KR100907843 B1 KR 100907843B1
Authority
KR
South Korea
Prior art keywords
cache
motion compensation
memory
data
pixels
Prior art date
Application number
KR1020077008039A
Other languages
English (en)
Other versions
KR20070088608A (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 KR20070088608A publication Critical patent/KR20070088608A/ko
Application granted granted Critical
Publication of KR100907843B1 publication Critical patent/KR100907843B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

모션 보상 회로에 커플링된 캐시 메모리를 사용하여 모션 보상을 위한 방법 및 장치가 개시된다. 그 모션 보상 방법은, 상당한 공간적 중첩이 통상적으로 모션 추정 알고리즘에서 매크로블록을 구성하는 복수의 블록들 사이에 존재한다는 사실을 이용한다. 따라서, 픽셀의 영역은 캐시 메모리에 저장될 수도 있고, 그 캐시 메모리는, 메인 메모리에 액세스해야만 하지 않고도 공간적으로 인접한 데이터의 블록에 관해 보간 기술을 수행하도록 반복적으로 액세스될 수도 있으며, 후자는 매우 비효율적이고 메모리 대여폭의 낭비한다.
비디오 디코딩, 매크로블록, 모션 보상, 보간법

Description

비디오 모션 보상용 캐싱 방법 및 장치{CACHING METHOD AND APPARATUS FOR VIDEO MOTION COMPENSATION}
배경
기술분야
본 발명은 비디오 기술에 관한 것으로, 더 상세하게는, 비디오 모션 보상에서 캐싱 기술의 사용에 관한 것이다.
배경기술
비디오 기능의 이동 전화기, 개인 휴대 정보 단말기 (PDA) 및 다른 핸드헬드 (handheld) 디바이스내로의 통합은 오늘날의 소비자 전자 시장에서 주류가 되고 있다. 이미징 회로를 이들 핸드헬드 디바이스에 부가하는 이러한 현재의 능력은, MPEG-4 및 H.264와 같은 진보된 압축 기술의 가용성에 부분적으로 기인한다. H.264 또는 또 다른 적절한 압축 방식을 사용하여, 비디오 클립은 카메라에 의해 취해져 다른 디바이스에 무선으로 송신될 수 있다.
일반적으로, 비디오는, 특히, 이동 전화기, PDA, 및 다른 핸드헬드 또는 소형 디바이스에 이식된 칩셋 및 디지털 신호 프로세서와 같은 대용량-애플리케이션 (application-heavy) 프로세싱 디바이스상에서 메모리 대역폭의 가장 높은 소스들 중 하나이다. 이러한 높은 메모리 대역폭 요건은 일반적으로 메모리 버스 설계에서, 특히, 비디오 애플리케이션에 대한 메모리 페치 (fetch) 의 효율성을 최적화 하는 프로세서-투-메모리 방식의 구성에서 문제를 초래한다.
비디오 대역폭 사용의 일 예는 모션 보상의 콘텍스트내에서 통상 발생한다. 모션 보상은 비디오 디코딩 단계이며, 여기서, 가변 오프셋을 갖는 픽셀 (화상 엘리먼트) 의 블록은 메모리로부터 페치되고, 멀티-탭 필터를 사용하여 부분적인 오프셋에 보간 (interpolate) 된다.
일반적으로, 모션 보상 판독을 위해 페치된 블록 사이즈는 작고, 프로세서와 메모리 사이에서 데이터를 인터페이스하기 위해 종래의 시스템에서 통상 사용되는 "2의-거듭제곱 (power-of-two)" 버스 폭에 불량하게 매칭될 수도 있는 폭이다. 통상의 사용에서 그러한 2의-거듭제곱 버스 폭 인터페이스는 25 폭 (32비트) 및 26 폭 (64비트) 일 수도 있다. 상기의 관점에서, 데이터의 블록을 페치하기 위해, 프로세서가 블록과 관련된 픽셀의 신규한 행을 페치하기 위해 신규한 어드레스를 판독하는 것을 스킵 (skip) 해야 하는 바와 같이, 단지 짧은 버스트 길이가 통상적으로 사용될 수도 있다. 이들 짧은 버스트 길이는, 다른 타입의 메모리들 중에서, 종래의 SDRAM (Synchronous Dynamic Random Access Memory) 에 대해 매우 비효율적인 것으로 공지되어 있다. 그 결과, 픽셀의 블록의 메모리 판독이 비교적 느려질 수도 있고, 잠재적으로 수용불가능한 메모리 대역폭의 양이 이미지 렌더링 기능을 수행하기 위해 소비될 수도 있다.
도 1은 종래의 시스템의 메모리로부터 데이터의 블록을 판독하는 것과 관련된 비효율성의 예시를 도시한다. 매트릭스 (100) 는 12개의 픽셀 각각의 9개의 행의 임의의 블록을 나타낸다. 이러한 예를 위해, 픽셀의 소정의 행에서 각각의 픽셀은, 수평으로 인접한 엘리먼트의 일 바이트 (8비트) 로서 메모리에 저장된다. 즉, 메모리의 12개의 연속적인 바이트는 스크린상의 디스플레이에 대해 12개의 수평으로 인접한 픽셀에 대응한다. 또한, 이러한 예시는, 25 메모리 버스 폭 (즉, 4바이트) 이 논쟁중인 시스템의 하드웨어 구조에서 구현되고 SDRAM-기반 메모리 시스템이 이용된다고 가정한다.
또한, 논쟁중인 디코딩 방식은 프로세서가 픽셀의 9×9 블록의 모션 보상 판독을 수행하는 소정의 인스턴스에서 위임한다고 가정한다. 9×9 블록은 도 1의 "*" 심볼 (112) 로서 표현된다. 각각의 * 심볼은 이러한 구현에서 8비트의 데이터를 구성한다. 또한, "+" 심볼 (110) 의 그룹은 이러한 예에서 8-비트 픽셀을 구성한다. 그러나, + 픽셀은 판독될 9×9 블록의 외부에 있다. * 심볼 (112) 및 + 심볼 (110) 의 9개의 행 (108) 은 집합적으로 메모리에서 12×9 직사각형 영역을 나타낸다.
32-비트 버스를 사용하면, 예시적인 픽셀의 9×9 블록의 모션 보상 판독은 실제로 12×9 픽셀 블록의 페치를 요구한다. 상세하게, 이러한 예에서 메모리 제어기는 32비트 (4바이트) 의 3개의 페치를 각각 수행한다. 제 1 페치 동안, 제 1 행의 4개의 픽셀 (102) 에 대응하는 바이트가 판독된다. 제 2 페치 동안, 제 1 행의 4개의 픽셀 (104) 에 대응하는 바이트가 판독된다. 제 3 페치 동안, 제 1 행의 4개의 픽셀 (106) 에 대응하는 바이트가 판독된다. 이들 판독들은 9 개의 행 각각에 대해 반복된다. 이러한 예에서 12×9 픽셀 블록은 3개의 12개의 별개의 버스트로서 수행된다. 매크로블록이 16개의 블록과 동일한 경우, 화상의 각각의 매크로블록은 3개의 144개의 버스트를 요구할 수 있다.
요약하면, 이러한 예시에서 32비트 버스 구조는, + 심볼 (110) 이 9×9 블록의 일부가 아니라도 그 심볼들에 의해 표현된 픽셀이 판독되는 것을 요구한다. 따라서, + 픽셀 (110) 은 낭비된 메모리 대역폭을 나타낸다. 큰 수의 홀수-사이즈 블록의 모션 보상 판독이 페치됨에 따라, 낭비된 대역폭은 매우 현저해질 수 있으며, 그에 따라, 성능을 열화시켜 이미지 데이터의 매우 비효율적인 디코딩에 기여한다.
다양한 프로세서-기반 시스템에서 더 많은 메모리 대역폭에 대한 요건을 증가시킨 결과, 메모리 버스의 폭을 증가시키는 경향이 최근에 극적으로 증가되어 왔다. 불행히도, MPEG 및 다른 압축 방식과 관련된 모션 보상 애플리케이션에 있어서, 상술된 효율성은 단지 더 높은 버스 대역폭에 의해 악화될 수도 있다. 26=64비트=8바이트 메모리 버스 폭을 이용하는 도 2의 예를 고려한다. 이전과 같이, 픽셀의 9×9 블록 (208, 212) 은, 모션 보상 회로에 의한 사용을 위해 메모리로부터 페치될 블록에 대응한다. 이러한 예시의 버스가 64-비트 인터페이스를 구성하기 때문에, 메모리 판독은 그 판독이 2개의 페치 (202 및 204) 의 각각의 9개의 버스트로서 수행되는 것을 요구한다. 제 1 페치 (202) 에서, 픽셀 데이터 (202) 의 8바이트가 판독된다. 제 2 페치에서, 픽셀 데이터의 부가적인 8바 이트가 판독된다. 2개의 페치의 9개의 버스트 이후, 픽셀의 16×9 블록은 9×9 블록 (202, 208) 을 페치하기 위해 판독되어 진다. + 심볼 (210) 에 의해 표현된 픽셀은, 페치의 결과로서 효과적으로 낭비된 데이터의 45%를 표현한다.
2의 거듭제곱이 아닌 매크로블록 또는 서브-블록을 페치할 시의 문제는, 많은 시스템에서 외부 메모리 액세스가 레지스터 액세스 또는 캐시 메모리로부터의 액세스보다 더 느려지는 사실에 의해 더 악화된다. SDRAM 및 다른 타입의 메모리 기술이 속도 및 성능에서 개선되어 왔지만, 통상적으로 이들 개선들은 모션 보상에 대한 홀수-사이즈 블록의 메모리 페치와 관련된 불필요한 데이터의 판독과 동일하지는 않다.
또 다른 문제는 외부 메모리 판독과 관련된 높은 소비 전력과 관련 있다. 간단히, 비디오 디코딩 기술의 경우, 불필요한 데이터 판독은 전력 소비의 비효율성에 기여한다.
일반적으로, 매크로블록이 사용되고 또한 서브-블록으로 분할되는 대부분의 압축 방식에서, 매크로블록을 포함하고 보간될 서브-블록의 집합은, 그들의 개별 모션 벡터에 의해 오프셋되더라도, 공간적으로 근접하는 경향이 있다. 예를 들어, H.264 표준에서, 매크로블록을 구성하는 4×4 블록의 집합이 일반적으로 근접하는 것이 가능하다. 따라서, 12×9 픽셀 영역이 페치되는 경우, 중첩의 양이 사전에 공지되지 않더라도 각각의 블록에 대한 그 12×9 픽셀 영역이 중첩하는 것이 매우 가능하다. 실제로, 16×16 매크로블록을 구성하는 4×4 서브-블록들 중 임의의 블록에서 중첩이 존재하지 않는 일 예로서 H.264 표준이 사용되면, 그 4 ×4 서브-블록은 48×36 픽셀 영역에 걸쳐 확산되어야 할 것이다. 각각의 매크로블록의 4×4 서브-블록이 이러한 방식으로 동시에 및 일관되게 분배될 수 있다는 것은 통계적으로 가능하지 않다. 모션 보간을 수행하는 경우, 종래의 시스템은 이러한 중첩을 이용하지 않는다. 대신, 이러한 예시에서와 같이, 메인 메모리로부터의 별개의 페치가 각각의 서브-블록에 대해 발생한다.
따라서, 비디오 디코딩에서 모션 보상 동작에서의 사용을 위해 데이터에 액세스하는 더 신속하고 더 효율적인 방법을 제공하는 필요성이 당업계에 존재한다.
요약
본 발명의 일 양태에서, 모션 보상 회로로 입력될 픽셀 데이터를 저장하는 캐시 메모리에 커플링된 모션 보상 회로를 사용하여 이미지 데이터를 디코딩하는 방법은, 기준 블록으로부터의 가변 오프셋을 갖는 픽셀의 하나 이상의 블록을 포함하는 캐시 메모리에 그 픽셀 데이터를 저장하는 단계, 그 캐시 메모리로부터 그 픽셀 데이터를 검색하는 단계, 그 픽셀 데이터를 그 모션 보상 회로에 입력하는 단계, 및 픽셀의 하나 이상의 블록의 부분적인 오프셋에 그 픽셀 데이터를 보간하는 단계를 포함한다.
본 발명의 또 다른 양태에서, 이미지 데이터를 디코딩하는 장치는, 제어 인터페이스, 그 제어 인터페이스에 커플링되고 디스플레이 상에서 픽셀의 영역을 포함하는 이미지 데이터를 보유하도록 구성되는 캐시 메모리, 그 제어 인터페이스에 커플링되는 메모리 버스 인터페이스, 그 캐시 메모리에 커플링되는 모션 보상 보간 데이터 경로, 및 그 모션 보상 보간 데이터 경로에 커플링하는 모션 보상 회로를 포함한다.
본 발명의 또 다른 양태에서, 이미지 데이터를 디코딩하는 장치는, 제어 인터페이스, 그 제어 인터페이스에 커플링되는 좌표-캐시 (coordinate-to-cache) 어드레스 변환 회로, 그 좌표-캐시 어드레스 변환 회로에 커플링되고 픽셀 데이터의 블록을 저장하도록 구성되는 캐시 메모리, 그 캐시 메모리에 커플링되는 모션 보상 보간 데이터 경로, 그 모션 보간 데이터 경로에 커플링되고 그 캐시 메모리로부터 수신된 픽셀 데이터의 블록을 보간하도록 구성되는 모션 보상 회로, 그 캐시 메모리에 커플링되는 캐시-물리 어드레스 변환 회로, 및 그 캐시-물리 어드레스 변환 회로에 커플링되는 메모리 버스 인터페이스를 포함한다.
본 발명의 또 다른 양태에서, 이미지 데이터를 디코딩하기 위해 이동 디바이스에 통합된 장치는, 픽셀 데이터 좌표를 수신하는 제어 인터페이스 수단, 좌표 데이터를 캐시 어드레스로 변환하는 좌표 어드레스 변환 수단, 캐시 어드레스를 물리 어드레스로 변환하는 물리 어드레스 변환 수단, 픽셀 데이터의 영역을 저장하는 캐시 메모리, 메인 메모리에 판독 커맨드를 발송하는 메모리 버스 인터페이스, 및 그 캐시 메모리에 커플링되고 픽셀 데이터의 영역을 수신하며 그 영역내에서 픽셀의 블록을 보간하는 모션 보상 수단을 포함한다.
본 발명의 또 다른 양태에서, 모션 보상 회로에 입력될 픽셀 데이터를 저장하는 캐시 메모리에 커플링된 모션 보상 회로를 사용하여 이미지 데이터를 디코딩하는 방법을 수행하는 컴퓨터 프로그램에 의해 실행가능한 명령의 프로그램을 수록하는 컴퓨터-판독가능 매체로서, 그 방법은, 기준 블록으로부터의 가변 오프셋을 갖는 픽셀의 하나 이상의 블록을 포함하는 캐시 메모리에 픽셀 데이터를 저장하는 단계, 그 캐시 메모리로부터 그 픽셀 데이터를 검색하는 단계, 그 픽셀 데이터를 그 모션 보상 회로에 입력하는 단계, 및 픽셀의 하나 이상의 블록의 부분적인 오프셋에 그 픽셀 데이터를 보간하는 단계를 포함한다.
본 발명의 다른 실시형태는 다음의 상세한 설명으로부터 당업자에게 용이하게 명백할 것이며, 여기서, 단지 예시로서 본 발명의 수 개의 실시형태가 도시되고 설명된다는 것을 알 수 있다. 실현될 바와 같이, 본 발명은 다른 및 상이한 실시형태가 가능하고, 본 발명의 수 개의 디테일은 다양한 다른 관점에서 변형이 가능하며, 이 모두는 본 발명의 사상 및 범위를 벗어나지 않는다. 따라서, 도면 및 상세한 설명은 제한하는 것이 아니라 사실상 예시로서 간주될 것이다.
도면의 간단한 설명
본 발명의 양태는 첨부한 도면에서 제한이 아닌 예로서 도시된다.
도 1은 모션 보상 알고리즘의 일부로서 페치될 픽셀의 그룹의 다이어그램이다.
도 2는 모션 보상 알고리즘의 일부로서 페치될 픽셀의 그룹의 또 다른 다이어그램이다.
도 3은 H.264 표준에서 사용되는 다양한 매크로블록 파티션의 예시이다.
도 4는 H.264 표준에서 사용되는 다양한 매크로블록 서브-파티션의 예시이다.
도 5a 내지 5c는 H.264 표준에서 사용되는 서브-픽셀 보간의 예시를 나타낸 다.
도 6은 본 발명의 일 실시형태에 따른 프로세싱 시스템의 블록도이다.
도 7은 본 발명의 일 실시형태에 따른 모션 보상 회로에 캐시를 커플링하는 방법을 도시한 플로우차트이다.
도 8은 본 발명의 일 실시형태에 따른 캐싱 (caching) 장치를 사용하는 예시적인 디코딩 방법의 내부 컴포넌트의 블록도이다.
도 9는 H.264 표준의 가이드라인을 따른 서브-블록의 최악의 경우의 분배를 설명하는 픽셀의 영역을 도시한다.
상세한 설명
첨부된 도면과 함께 아래에서 개시되는 상세한 설명은 본 발명의 다양한 실시형태의 설명으로서 의도되며, 본 발명이 실행할 수도 있는 실시형태만을 나타내는 것으로 의도되지는 않는다. 본 발명에서 설명되는 각각의 실시형태는 본 발명의 일 예 또는 예시로서만 제공되며, 다른 실시형태 보다 반드시 바람직하거나 유리한 것으로 변환되어야 하는 것은 아니다. 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해 특정한 디테일을 포함한다. 그러나, 본 발명이 이들 특정한 디테일없이도 실행될 수도 있다는 것은 당업자에게 명백할 것이다. 일부 예시에서, 널리-공지된 구조 및 디바이스는, 본 발명의 개념을 불명료하게 하는 것을 피하기 위해 블록도 형태로 도시된다. 두문자어 (acronym) 및 다른 설명적인 용어는 편의 및 명확화를 위해서만 사용될 수도 있으며, 본 발명의 범위를 제한하는 것으로 의도되지는 않는다.
H.264는 ISO/IEC MPEG (Moving Picture Experts Group) 및 ITU-TVCEG의 JVT (Joint Video Team) 에 의해 개발된 ISO/IEC 압축 표준이다. H.264는, 멀티미디어 환경에서 비디오 데이터의 효율적인 저장, 송신 및 조작에 대한 코어 기술을 제공하는 신규한 압축 표준이다. H.264는 전 세계의 수 많은 연구원 및 기술자를 포함하는 국제적인 노력의 결과이다. H.264의 초점은, 다른 결과들 중에서, 비디오 코딩에 대해 매우 스케일러블 (scalable) 하고 유연한 알고리즘 및 비트스트림 구성, 무선 채널에 걸친 높은 에러 회복 및 복원, 및 매우 네트워크-독립적인 접속도를 달성하는 표준을 개발하는 것이다. 예를 들어, H.264-기반 코딩에 의해, 32kbit/s 데이터 레이트 미만을 사용하여 일부 애플리케이션에서 양호한 화상 품질을 달성하는 것이 가능하다.
MPEG-4 및 H.264는 이전의 기술들 (MPEG-1 및 MPEG-2) 의 성공 위에 세워졌고, 다른 것들 중, 디지털 텔레비젼, 상호작용하는 그래픽 애플리케이션, 및 상호작용하는 멀티미디어와 같은 기술들을 구현하기 위해 표준화된 엘리먼트의 세트를 제공한다. 이러한 기술의 강인성, 높은 품질, 및 낮은 비트 레이트로 인해, MPEG-4는 무선 전화기, PDA, 디지털 카메라, 인터넷 웹 페이지, 및 다른 애플리케이션으로 구현되어 왔다. MPEG-4 비디오 표준에 대한 광범위한 범위의 도구는, 인코딩, 디코딩, 및 내추럴 비디오의 표현, 정지 이미지, 및 합성 그래픽 오브젝트를 허용한다. 의심할 여지없이, 훨씬 더 큰 유연성 및 더 강인한 이미징을 제공하는 미래의 압축 방식의 구현이 임박해 오고 있다.
MPEG-4 및 H.264는 모션 추정 알고리즘을 포함한다. 모션 추정 알고리즘은 연속적인 비디오 프레임들 사이의 모션을 계산하기 위해 보간 필터를 사용하고, 이전에 송신된 프레임으로부터 계산된 모션 정보를 사용하여 현재의 프레임을 구성하는 정보를 예측한다. MPEG 코딩 방식에서, 프레임의 픽셀의 블록은 이전의 프레임의 영역에 상관되고, 블록들과 그 블록들의 상관된 영역 사이의 차이만이 인코딩 및 저장된다. 블록에 가장 근접하게 매칭하는 영역과 그 블록 사이의 변환 벡터는 모션 벡터로 지칭된다.
(또한, MPEG-4 Part 10 "Advanced Video Coding" 표준으로 지칭되는) H.264 표준은 서브-블록 사이즈의 범위 (4×4까지) 에 대한 지원을 포함한다. 이들 서브-블록들은, 4×4, 8×4, 4×8, 및 8×8을 포함하는 파티션의 범위를 포함할 수도 있다. 일반적으로, 별개의 모션 벡터는 각각의 파티션 또는 서브-파티션에 대해 요구된다. 소정의 애플리케이션에 대해 사용할 파티션 사이즈의 선택은 변할 수도 있다. 일반적으로, 더 큰 파티션 사이즈는 화상의 동질의 (homogenous) 영역에 대해 적절할 수도 있지만, 더 작은 파티션 사이즈는 상세한 영역에 대해 더 적절할 수도 있다.
H.264 표준 (MPEG-4 Part 10, "Advanced Video Coding") 은, 16×16 루미넌스 (luminance) 샘플과 4×4 루미넌스 샘플사이의 수 많은 옵션으로 16×16로부터 4×4 루미넌스 샘플까지의 범위인 모션 보상 블록 사이즈를 지원한다. 도 3에 도시된 바와 같이, 각각의 매크로블록 (16×16 샘플) 의 루미넌스 컴포넌트는 4개의 방식, 즉, 16×16 (매크로블록 (300)), 16×8 (매크로블록 (302)), 8×16 (매크로블록 (304)), 또는 8×8 (매크로블록 (306)) 으로 분할될 수도 있다. 8×8 모드가 선택된 경우 (매크로블록 (306)), 그 매크로블록내의 파티션은 도 4에 도시된 바와 같이 4개의 방식으로 또한 분할될 수도 있다. 여기에서, 서브-블록 또는 서브-파티션은 1개의 8×8 서브-블록 (400), 2개의 8×4 서브-블록 (402), 2개의 4×8 서브-블록 (404), 또는 4개의 4×4 서브-블록 (406) 을 포함할 수도 있다.
별개의 모션 벡터는 각각의 매크로블록 또는 서브-블록을 위해 H.264에서 요구된다. 일반적으로, 디코딩 디바이스에 송신되는 압축된 비트-스트림은 각각의 서브-백터에 대한 코딩된 모션 벡터뿐만 아니라 파티션의 선택을 포함한다. 일반적으로, 더 큰 서브-블록 (예를 들어, 16×16, 16×8, 8×16) 을 선택하는 것은, 모션 벡터(들)의 선택 및 서브-블록의 타입을 신호로 알리기 위해 더 작은 수의 비트를 요구한다. 그러나, 이러한 인스턴스에서, 모션 보상된 나머지는 높은 디테일 (high detail) 을 갖는 프레임 영역에서 상당한 양의 에너지를 포함할 수도 있다. 이와 대조적으로, 작은 서브-블록 사이즈 (예를 들어, 8×4, 4×4 등) 를 선택하는 것은, 일반적으로 모션 벡터(들) 및 서브-블록(들) 의 선택을 신호로 알리기 위해 더 큰 수의 비트를 요구하지만, 모션 보상 이후 나머지에 더 낮은-에너지를 제공할 수도 있다. 따라서, 서브-블록 또는 파티션 사이즈의 선택은 압축 성능에 상당한 영향을 줄 수도 있다. 상술된 바와 같이, 더 큰 서브-블록 사이즈는 프레임의 동질한 영역에 대해 적절할 수도 있고, 더 작은 파티션 사이즈는 더 세부적인 영역에 대해 유익할 수도 있다.
서브-픽셀 모션 벡터
H.264 표준에서, 인터-코딩된 (inter-coded) 매크로블록에서 각각의 서브-블 록은 일반적으로 기준 이미지에서 동일한 사이즈의 대응하는 영역으로부터 예측된다. 서브-블록과 기준 서브-블록 사이의 분리를 정의하는 모션 벡터는, 루마 (luma) 컴포넌트에 대해, 1/4-픽셀의 해상도를 포함한다. 서브-픽셀 위치에서의 샘플이 기준 이미지에 존재하지 않기 때문에, 그 샘플들은 인접한 이미지 샘플로부터 보간을 사용하여 생성되어야 한다. 서브-픽셀 보간의 일 예가 도 5에 도시되어 있다. 도 5a는 기준 이미지에서의 예시적인 4×4 픽셀 서브-블록 (500) 을 도시한다. 도 5a의 서브-블록 (500) 은 기준 화상의 인접한 영역으로부터 예측된 것이다. 도 5b의 예시에서 도시된 바와 같이, 모션 벡터의 수평 및 수직 컴포넌트가 정수 (1, -1) 이면, 기준 블록의 적용가능한 샘플 (502) 이 실제로 존재한다. 그러나, 하나 또는 양 벡터의 컴포넌트가 분수 (비-정수) 값 (0.75, -0.5) 이면, 서브 블록 (503) 을 형성하는 예측 샘플은 기준 프레임에서의 인접한 픽셀 샘플들 사이에서 보간함으로써 생성된다.
서브-픽셀 모션 보상은, 증가된 복잡도를 희생하여, 정수-픽셀 보상에 걸쳐 실질적으로 개선된 압축 성능을 제공할 수도 있다. 픽셀 정확도가 더 선명해질 수록, 더 양호한 화상이 획득된다. 예를 들어, 1/4-픽셀 정확도는 1/2-픽셀 정확도보다 성능이 뛰어나다.
루마 컴포넌트에서, 1/2-픽셀 위치에서의 서브-픽셀 샘플이 먼저 생성될 수도 있고, 일 구성에서 6-탭 유한한 임펄스 반응 필터를 사용하여 이웃한 정수-픽셀 샘플로부터 보간될 수도 있다. 이러한 구성에서, 각각의 1/2-픽셀 샘플은 6개의 이웃한 정수 샘플의 가중된 합을 나타낸다. 일단 1/2-픽셀 샘플 모두가 이 용가능하면, 각각의 1/4-픽셀 샘플은 이웃한 1/2-픽셀 샘플과 정수-픽셀 샘플 사이의 쌍선형 (bilinear) 보간을 사용하여 생성될 수도 있다.
모션 벡터 예측
각각의 파티션에 대해 모션 벡터를 인코딩하는 것은, 특히 작은 서브-블록 사이즈가 선택되면, 상당한 수의 비트가 취해질 수도 있다. 이웃한 서브-블록에 대한 모션 벡터는 매우 상관될 수도 있으므로, 각각의 모션 벡터는 근방의, 이전에 코딩된 서브-블록의 벡터로부터 예측될 수도 있다. 예측된 벡터 MVP는 이전에 계산된 모션 벡터에 기초하여 형성될 수도 있다. 현재의 벡터와 예측된 벡터 사이의 차이 MVD가 인코딩되어 송신된다. 예측된 벡터 MVP를 형성하는 방법은, 모션 보상 서브-블록 사이즈 및 근방의 벡터의 이용가능성에 의존한다. 일부 구현에서 기본 예측기는, 현재의 블록 또는 서브-블록의 바로 위, 대각선 위의 오른쪽, 및 바로 왼쪽의 매크로 서브-블록의 모션 벡터의 중앙값이다. 예측기는, (a) 16×8 또는 8×16 서브-블록이 선택 및/또는 (b) 이웃한 파티션의 일부가 예측기로서 이용가능하지 않으면, 변형될 수도 있다. 현재의 매크로블록이 스킵되면 (즉, 송신되지 않으면), 예측된 벡터는, 매크로블록이 16×16 파티션 모드에서 코딩되었던 바과 같이 생성될 수도 있다.
디코더에서, 예측된 모션 벡터 MVP는 동일한 방식으로 형성되어 디코딩된 벡터 차이 MVD에 부가될 수도 있다. 스킵된 매크로블록의 경우, 디코딩된 벡터가 존재하지 않으므로, 모션-보상된 매크로블록은 MVP의 크기에 따라 생성될 수도 있 다.
본 발명의 제 1 양태에 따르면, 모션 보상 회로는 메모리 성능을 극적으로 개선시키기 위해 적절한-사이즈의 캐시 메모리에 커플링된다. 여기에서 사용된 바와 같은 기술은 구현에 의존하여 70% 이상 감소되는 모션 보상 대역폭을 초래할 수 있다. 또한, 최상의 경우의 블록 사이즈와 최악의 경우의 블록 사이즈 사이의 대역폭에서의 확산은 80% 이상 감소될 수도 있다. 일 실시형태에서, 모든 정렬되지 않은 홀수-길이 페치는 캐시 라인 로드에 정렬된 2의-거듭제곱 워드가 되며, 메모리 액세스 효율성을 증가시킨다.
간단한 쌍선형 필터링의 사용보다 (H.264에서와 같이) 긴 보간 필터의 증가된 사용, 작은 블록 사이즈 (예를 들어, H.264에 대한 4×4 서브-블록) 의 존재 및 모션 보상에 대한 워드-지향 (word-oriented) 메모리 인터페이스는, 매크로블록의 렌더링을 위해 필요한 서브-블록 페치들 사이에서 상당한 공간 중첩을 초래한다. 본 발명의 일 양태에서, 작은 캐시는 모션 보간 하드웨어에 커플링된다. 캐시 라인은 화상의 1차원 또는 2차원 영역을 보유하도록 구성될 수도 있다. 대부분의 구성에서, 캐시 자체는 픽셀의 2차원 영역을 보유하도록 구성된다. 중첩한 블록들 사이의 공간적 집약성 (spatial locality) 은, 많은 판독들이 훨씬 더 느린 외부 메모리보다는 매우 고속인 캐시로부터 발생하게 하도록 본 발명의 원리를 사용하여 활용될 수 있다.
후술될 바와 같은 캐시의 적절한 구성을 통해, 달성된 픽셀-당 히트 (hit) 레이트가 매우 높아질 수도 있다 (일부 인스턴스에서는, 95% 보다 더 크다). 히트 레이트가 높은 경우, 캐시 필 (fill) 과 관련된 메모리 대역폭이 낮아진다. 따라서, 메모리 대역폭을 감소시키는 목적이 해결된다. 본 발명의 원리를 사용하여 실제의 고-모션 비디오 테스트 클립에 관한 시뮬레이션 동안, 대역폭은 70%만큼 감소되는 것으로 나타난다.
따라서, 높은 히트 레이트를 달성하는 적절하게 구성된 캐시에 있어서, 대부분의 서브-블록들은 캐시로부터 직접 판독될 수도 있다. 이러한 통상적인 경우, 매 매크로블록에 기초한 캐시로의 평균 판독 대역폭은 매크로블록 자체의 픽셀의 수와 동일하다. 이러한 구성은, 매크로블록이 서브-블록으로 분할되는 방법에 판독 대역폭의 민감도를 디커플링할 수도 있다. 최악의 경우의 모드 (예를 들어, 4×4 서브-블록) 와 최상의 경우의 모드 (예를 들어, 단일의 16×16 매크로블록) 사이의 대역폭 확산을 감소시키는 상술된 이점이 실현될 수도 있다. 시뮬레이션은 실제의 비디오 테스트 클립에 관한 대역폭 확산에서 80%보다 더 큰 감소가 달성될 수도 있다는 것을 나타낸다. 따라서, 설계자는, 논쟁중인 압축 표준에서 사용되는 모든 블록 사이즈에 대해 작동하는 하나의 메모리 대역폭 제약을 특정할 수도 있다.
더 상세히 후술될 바와 같이, 캐시 자체는 워드-정렬 및 2의-거듭제곱 버스트 길이를 갖는 캐시 라인을 포함할 수도 있다. 따라서, 캐시 라인은, 캐시가 사용되지 않는 경우 많은 시스템에 대해 필요한 정렬되지 않은 홀수-길이의 짧은 버스트에 대한 긴 버스트 판독으로 정렬될 수도 있다. 이들 캐시 필은 DRAM을 효율적으로 사용한다.
도 6은 본 발명의 일 실시형태에 따른 예시적인 프로세싱 시스템 (600) 의 블록도이다. 프로세싱 시스템 (600) 은, 비디오 재생을 수행하고 모션 예측된 보상을 사용하는 임의의 타입의 프로세싱 디바이스를 사실상 구성할 수도 있다. 그러한 프로세싱 시스템 (600) 의 일 예시는, 다른 목적들 중 비디오 애플리케이션을 프로세싱하기 위한 진보된 이동 전화기, PDA 등과 같은 핸드헬드 디바이스에서의 칩셋 또는 프린팅된 회로 카드일 수도 있다. 다양한 컴포넌트의 특정한 구성은, 본 발명의 범위를 벗어나지 않고, 위치 및 품질에서 변할 수도 있고, 도 6의 구현은 사실상 예시적인 것으로 설계된다. 프로세서 (602) 는, 이동 통신을 수신 및 송신 또는 사운드를 프로세싱하는 기능을 수행하기 위해, 다양한 커맨드를 변환하고 전용 코드를 구동하는 디지털 신호 프로세서 (DSP) 를 포함할 수도 있다. 다른 실시형태에서, 2개 이상의 DSP가 이용될 수도 있고, 또는 범용 프로세서 또는 다른 타입의 CPU가 사용될 수도 있다. 이러한 실시형태에서, 프로세서 (602) 는, 그 프로세서 (602) 가 프로세싱 시스템 (600) 의 메인 메모리 RAM (610) 에 대해 판독 및 기입을 수행하게 하도록 메모리 버스 인터페이스 (608) 에 커플링된다. 또한, 일 실시형태에 따른 프로세서 (602) 는, 모션 예측을 수행하기 위해 하나 또는 복수의 멀티-탭 필터를 포함할 수도 있는 모션 보상 회로 (604) 에 커플링된다. 또한, 전용 캐시 (606) 는, 여기에서 설명되는 원리에 따라 필요한 픽셀 데이터의 모션 보상 회로 (604) 로의 초고속 송신을 가능하게 하기 위해 모션 보상 하드웨어 (604) 에 커플링된다. 도시의 명확화 및 용이함을 위해, 일부 구현에서 존재할 수도 있는 버퍼, FIFO, 및 범용 캐시와 같은 하드웨어 블록이 도면에서 생략되어 있다는 것을 알 수 있다.
비디오 능력 및 32-비트 메모리 인터페이스를 갖는 이동 유닛과 같은 프로세싱 시스템을 포함하는 일 예에서, H.264 또는 유사한 MPEG 표준에 기초하는 모션 예측이 구현된다. 이러한 실시형태에서, 보간되는 각각의 4×4 서브-블록에 대해, 12×9 픽셀의 픽셀 영역이 실제로 페치된다. 그러나, 일반적으로 12×9 픽셀 영역은, 낭비된 픽셀을 포함하지 않는다. 본 발명의 이러한 양태는, 집합적으로 매크로블록을 포함하는 4×4 서브-블록의 집합이 그 서브-블록의 개별 모션 벡터에 의해 오프셋되더라도 공간적으로 근접하는 것이 가능하다는 사실을 이용한다. 이와 같이, 각각의 블록에 대한 12×9 픽셀 영역이 중첩하는 것이 매우 가능하다. 실제의 중첩의 양은 사전에 공지되어 있지 않다. 그러나, 16×16 매크로블록을 구성하는 4×4 서브-블록들 중 임의의 블록에서 중첩이 존재하지 않으면, 4×4 블록은 48×36 픽셀 영역에 걸쳐 확산되어야 할 것이다. 각각의 매크로블록의 4×4 서브-블록이 이러한 근본적인 방식으로 동시에 및 일관되게 분배될 수 있다는 것은 통계적으로 가능하지 않다. 이러한 원리는 더 상세히 후술된다. 또한, 많은 실시형태에서, 모든 상이한 모션 벡터를 인코딩하기 위해 사용되어야 하는 비트의 수가 차동적으로 인코딩되기 때문에, 비디오 인코더는 이러한 방식으로 블록을 결코 분배하지 않을 것이다. 따라서, 서브-블록들 모두가 상이한 경우, 많은 데이터는 모션 벡터를 코딩하는데 소비되어야 할 것이다.
본 발명의 이러한 양태에 따르면, 캐싱 메커니즘은 리던던트 페칭 (redundant fetching) 및 외부 메모리로부터의 불필요한 판독을 제거하기 위해, 중 첩의 이들 영역을 활용하도록 사용된다. H.264 표준의 콘텍스트에서 제공되지만, 본 발명은 모션 보상된 예측을 수행하는 임의의 디바이스에 대해 동등하게 적용가능하다. H.264가 본 발명의 개념이 적용가능한 각각의 애플리케이션인 브로드캐스트 텔레비전, 차세대 DVD, 이동 애플리케이션, 및 다른 구현에 대해 고려되고 있기 때문에, H.264 표준의 예시가 여기에서 사용된다.
일 실시형태에서, 메모리 캐시는, 서브-픽셀 보간을 수행하기 위해 하나 이상의 멀티-탭 필터를 포함할 수도 있는 비디오 모션 보상 하드웨어 블록에 커플링된다. 이러한 실시형태에서, 시스템은, 제어 인터페이스, 좌표-캐시 어드레스 변환기, 캐시-물리 어드레스 변환기, 캐시 메모리, 메모리 버스 인터페이스, FIFO 버퍼와 같은 메모리 수신 버퍼, 및 모션 보상 보간 데이터 경로를 포함할 수도 있으며, 그 데이터 경로는 모션 예측 회로로 안내한다.
도 7은 본 발명의 일 실시형태에 따라 모션 보상 회로에 캐시를 커플링하는 방법을 도시한 플로우차트이다. 플로우차트는 모션 예측을 달성하기 위해 스크린상의 픽셀과 관련된 좌표를 페치하는 프로세스를 설명한다. 단계 702에서, 제어 인터페이스는 좌표를 수신한다. 제어 인터페이스는, 수신, 버퍼링, 및/또는 일 영역으로부터 또 다른 영역으로 데이터를 전달하는 다양한 회로 또는 하드웨어를 포함할 수도 있다. 특히, 제어 인터페이스는 프레임 버퍼 인덱스 (즉, 프레임 버퍼 메모리에서의 위치에 관한 좌표의 위치를 설명하는 정보), 모션 벡터 MVP, 매크로블록 X 및 Y 어드레스, 서브-블록 X 및 Y 어드레스, 및 블록 사이즈를 수신할 수도 있다. 편리함을 위해, 파라미터의 이러한 집합은 2차원 공간에서 "좌표" 어드레스로 지칭된다. 특정한 압축 방식 또는 사용된 코덱에 의존하여, 좌표 어드레스는 변하거나 상이한 또는 다른 파라미터를 포함할 수도 있다.
그 후, 좌표-캐시 어드레스 변환기는 제어 인터페이스 정보를 적절한 태그 어드레스 및 캐시 라인 번호로 변환할 수도 있다 (단계 704). 어드레스를 매핑하는 수 많은 방법은 이러한 단계에서 당업계에 공지된 바와 같이 사용될 수도 있다. 일 실시형태에서, 좌표 어드레스를 X 및 Y 좌표로 변환하고, 태그 어드레스 및 캐시 라인 번호를 형성하기 위해 X 및 Y 좌표의 서브-필드로 프레임 버퍼 인덱스를 연쇄적으로 연결하는 매핑이 사용된다.
따라서, 단계 706에 나타낸 바와 같이, 태그 어드레스는 메모리 캐시와 관련된 하나 이상의 태그 RAM에 전송될 수도 있다. 태그 어드레스가 태그 메모리들 중 임의의 메모리에서 히트를 나타내는 경우 (판정 브렌치 708), 캐시 라인으로부터의 데이터는 데이터 RAM으로부터 판독된다 (단계 720). 그 후, 픽셀 데이터는 적절한 데이터 보간 인터페이스를 통해 모션 보상 회로로 전달될 수도 있다 (단계 722).
그 대신, 태그 어드레스가 캐시 미스 (miss) 를 초래하는 경우 (판정 브렌치 708), 표준 판독 요청이 메모리 버스 인터페이스를 통해 송신될 수도 있다. 일 실시형태에서, 캐시 미스 표시자를 나타내는 플래그 (flag) 가 설정된다 (단계 710). 그 후, 캐시-물리 어드레스 변환기는 메인 메모리와 관련된 물리 어드레스로 캐시 어드레스를 변환한다 (단계 712). 그 후, 단계 714에 나타낸 바와 같이, 메인 메모리로부터의 판독 요청은 메모리 제어기에 의해 송신된다. 적용가능한 픽셀 데이터는 검색되어, 모션 보상 회로로 전달된다 (단계 716). 또한, 캐시 미스의 경우, 캐시는 추가적으로 후술될 방식으로 RAM으로부터 검색된 데이터에 의해 업데이트될 수도 있다 (단계 723).
도 8은 본 발명의 실시형태에 따라 캐싱 장치를 사용하는 예시적인 디코딩 방법의 내부 컴포넌트의 블록도이다. 도 8은 직접-매핑된 캐시의 사용을 가정하지만, 다른 실시형태에서, 세트 결합 캐시를 포함하는 다른 캐시 구성을 사용하는 것이 동일하게 가능할 수도 있다. 제어 인터페이스 회로 (802) 는, 메모리로부터 페치된 좌표를 캐시 어드레스로 변환하기 위해 캐시 어드레스 변환 로직 (804) 에 커플링될 수도 있다. 차례로, 캐시 변환 로직 (804) 는 태그 어드레스를 저장하기 위해 캐시의 태그 RAM (806) 에 커플링될 수도 있다. 태그 RAM (806) 은 데이터 RAM (812) 에서 이용가능한 어드레스를 나타내는 데이터를 포함한다. 이러한 실시형태에서, 태그 RAM (806) 은 종래의 FIFO 버퍼와 같은 옵션적인 버퍼 (808) 에 커플링된다. 일 구성에서 버퍼 (808) 가 레이턴시를 숨기도록 사용되어 다수의 캐시 미스가 시스템 RAM에 계류중일 수 있도록 사용된다. 데이터 RAM (812) 은 픽셀 데이터를 저장한다. 또한, 물리 어드레스 변환 로직 (810) 은, 메인 메모리 판독을 위해 메인 메모리에서 태그 어드레스 및 캐시 라인 번호를 물리 어드레스로 변환하기 위해 존재한다. 물리 어드레스는, 캐시 미스의 경우 메인 메모리 (816) 에서 판독을 수행하는 메모리 버스 인터페이스 (814) 에 전달된다. 또한, 캐시 라인은, 캐시 미스의 결과로서 시스템 RAM으로부터 판독되는 데이터로 업데이트될 수도 있다. 일정한 구성에서, 신규한 엔트리에 대한 공간을 형성기 위해, 캐시는 기존의 엔트리를 "퇴거" 시켜야만 할 수도 있다. 퇴거시킬 엔트리를 선택하기 위해 사용되는 특정한 발견법은 "대체 정책 (replacement policy)" 으로 지칭된다. 일반적으로, 이러한 단계는 도 7의 단계 723로서 도시되지만, 명확화를 위해 도 8로부터는 생략된다. 다양한 대체 정책이 가능하다. 예는 FIFO (first-in-first out) 또는 LRU (least-recently used) 를 포함한다.
최종적으로, 캐시와 관련된 데이터 RAM (812) 으로부터의 데이터 또는 시스템 RAM (818) 중 어느 하나의 데이터는 모션 보상된 보간 데이터 경로 (818) 를 통해 모션 예측 회로 (820) 로 전달된다. 캐시 미스의 인스턴스에서 적어도 2개의 판독 정책이 가능하다. 일 구성에서, 미스된 판독 데이터는 캐시에 송신되고, 요구된 픽셀은 모션 보상 데이터 경로 (818) 에 즉시 포워딩된다. 또 다른 구성에서, 미스된 판독 데이터는 캐시에 송신되고 캐시의 데이터 RAM (812) 에 기입된다. 그 후, 픽셀 데이터는 데이터 RAM (812) 외부로 판독되어 모션 보상 데이터 경로로 전달되며, 여기서, 랜덤하게 오프셋된 서브-픽셀 값은 분수 값으로 변환된다.
여기에서 설명된 바와 같이, 메모리 캐시의 비디오 모션 보상 하드웨어 블록으로의 커플링은, 그 하드웨어 블록이 서브-블록을 신속하게 검색할 수 있게 하며, 이것은 서브-블록의 변위의 적절한 보간 및 모션의 적절한 표현을 위해 필요하다. 일 실시형태에서, YCbCR이 RGB 픽셀 대신에 사용된다. 또 다른 실시형태에서, 모션 보상 하드웨어는, 기존의 비디오 애플리케이션에서 사용되는 통상적인 쌍 선형 필터의 탭의 수 보다 더 큰 수의 탭을 갖는 필터를 포함한다. 사용되는 탭이 더 많아질 수록, 상당한 공간이 중첩하는 가능도가 검색된 서브-블록들 사이에서 더 크게 존재할 것이다.
일 실시형태에서, 캐시의 데이터 메모리는 불필요한 데이터의 페치를 피하기 위해 최적화된다. 상세하게, 캐시 메모리는 이미지 매크로블록의 정수를 보유하기 위해 사이즈된다. 데이터 메모리는 N/L 개의 캐시 라인을 포함할 수도 있으며, 여기서, N은 캐시에서의 바이트 수를 나타내고, L은 단일 캐시 라인에서의 바이트의 수를 나타낸다. 일 예시로서, 캐시는 64×32 윈도우의 픽셀을 포함할 수도 있으며, 여기서, N=2K 바이트이고 L=32 바이트이다. 대부분의 실시형태에서, L은 메모리 버스 인터페이스 버스트 길이의 배수이도록 선택된다. 캐시 라인은 2차원 영역의 픽셀을 포함할 수도 있다. 데이터 메모리는 데이터 메모리 어드레스 발생기로부터 어드레스를 수신할 수도 있다. 따라서, 데이터 메모리의 출력은 보간 회로로 송신될 수도 있다. 통상적인 사이즈는 애플리케이션에 의존하여 변할 수도 있지만, 일부 실시형태에서는, 모두 32-바이트 캐시 라인으로 구성되는 1KB 또는 2KB일 수도 있다. 캐시 라인은 8×4 또는 32×1 등과 같은 1차 또는 2차원 영역을 보유할 수도 있다.
보간 회로는 수평 및 수직 필터링 로직을 포함할 수도 있다. 상술된 바와 같이 일 실시형태에서, 사용되는 필터는 2개의 필터 탭보다 더 많다. 보간 회로의 출력은 모션-보상된 예측기를 나타낸다. 일 예시적인 필터는 H.264 표준에서 현재 구현되는 6-탭 필터이다. 3개 이상의 탭이 사용되는 (즉, 쌍선형 이상의 필터링이 수행되는) 이들 구성에서, 본 발명은, 실질적인 공간 중첩을 갖는 서브-블록의 재사용 및 보간 회로에 커플링된 적절하게-사이즈된 캐시의 관점에서, 최대 메모리 대역폭 절약을 나타낼 수도 있다.
보간 필터 길이로 인한 서브-블록들 사이의 중첩
여기에서, H.264 표준의 콘텍스트에서 모션 보상된 보간을 시연한다. 상술된 바와 같이, 다른 모션 보상-기반 표준이 동등하게 적합하고, 본 발명의 원리는 이들 다른 표준들에 동등하게 적용가능할 수도 있다. H.264의 6 탭 필터를 사용하는 4×4 블록의 모션 보상된 보간은 9×9 블록의 페치를 요구한다. 매크로블록을 구성하는 16개의 9×9 블록들은, 그들의 개별 모션 벡터의 크기 및 방향에 의존하여, 중첩할 수 있다. 다른 서브젝트의 형상들 (예를 들어, 8×8, 8×4 등) 도 동일하다. 최악의 경우, 4×4/8×4/4×8/8×8 서브-블록 모션 벡터가 최상의 16×16 모션 벡터로부터 +/- M 픽셀로 변위되면, 모든 서브-블록들에 의해 스팬 (span) 된 영역은 많아야 (16+5+2M)2 픽셀을 커버링할 수 있다.
도 9는 예시적인 H.264 표준의 가이드라인에 따라 서브-블록의 최악의 분배를 설명하는 픽셀의 영역을 도시한다. 빗금친 영역의 16개의 사각형 (906) 은 변위 이전의 매크로블록을 포함하는 16개의 4×4 블록의 위치를 도시한다. 16개의 사각형 (902) 은 중첩이 존재하지 않는 방식으로 변위된 4×4 블록을 도시하며, 각각의 블록에 대해 메모리 페치에서 중첩이 존재하지 않도록 가능한 많이 4×4 블록을 확산시킨다. 남아 있는 주변 영역 (904) 은, 이러한 매크로블록을 디 코딩하도록 보간 필터를 적절히 적용하기 위해 페치되어야 하는 여분의 픽셀에 대응하는 영역을 나타낸다. M=4에 의하면, 이러한 총 픽셀 영역은 29×29 픽셀을 측정한다.
각각의 서브-블록이 독립적으로 페치되면, (여기에서, P로서 지칭되는) 매크로블록 당 페치되는 픽셀의 총 수는 M과는 관계없이 고정된다. 예시적인 값들이 다음의 테이블에 요약된다.
Figure 112007027033208-pct00001
따라서, M=4인 이전의 예가 주어지고, 디코더가 4×4 블록을 개별적으로 페치하면, 총 1296의 픽셀이 매크로블록이 29×29=841 픽셀만을 커버링할 지라도, 판독되어야 한다. 이러한 경우, 디코더는 필요한 것보다 약 50% 더 많은 픽셀을 판독해야 할 것이며, 유용한 메모리 대역폭의 낭비를 초래한다.
(16+5+2M)2 <P 인 조건을 해결하는 것은, 설계자가 어느 조건하에서 서브 -블록 중첩이 발생해야 하는지 및 얼마나 많은 그러한 중첩이 실제로 존재하는지를 결정할 수 있게 한다. 이러한 이차 방정식을 해결하는 경우, 중첩은 다음의 조건하에서 발생해야 한다고 나타낼 수 있다.
Figure 112007027033208-pct00002
중첩이 존재해야 하는 곳까지의 최대 모션 벡터 크기는 아래의 테이블에 요약된다.
Figure 112007027033208-pct00003
예를 들어, 4×4 모드에서, 4×4 서브-블록의 개별 모션 벡터가 +/- M 픽셀까지의 임의의 양만큼 상이해지면, 페치는 중첩해야 한다. 중첩이 활용되지 않으면 페치될 리던던트 픽셀의 일부는,
Figure 112007027033208-pct00004
이다.
메모리 버스 폭으로 인한 서브-블록들 사이의 중첩
다음으로, 메인 메모리 버스가 효과적으로 8바이트 (32비트 DDR) 인 일 예가 고려된다. 선형 프레임 버퍼 포맷이 사용되면, 일 실시형태에서 페치될 픽셀의 수평 스팬은 8 픽셀 폭의 배수이다. 일반적으로, 메모리로의 경로가 더 넓어질수록, 픽셀의 작은 블록을 페치하는 효율성이 더 떨어진다 (즉, 페치 당 낭비되는 픽셀이 더 많아진다). 최악의 경우에서, 모든 서브-블록 모션 벡터가 최상의 16×16 모션 벡터로부터 +/- M 픽셀로 변위되면, 그 서브-블록에 의해 스팬된 총 영역은 (16+5+2M)×(28+2M) 으로 증가한다. 각각의 서브-블록이 이러한 시나리오로 독립적으로 페치되면, (P로 지칭되는) 매크로블록 당 페치되는 픽셀의 총 수는 아래에 도시된 바와 같이 증가한다.
Figure 112007027033208-pct00005
(16+5+2M)×(28+2M)<P 인 조건에 대해 해결하는 것은, 설계자가 어느 조건하에 서 서브-블록 중첩이 발생해야 하는지 및 얼마나 많은 그러한 중첩이 존재하는지를 결정할 수 있게 한다. 중첩이 다음과 같은 경우마다 발생해야 한다고 나타낼 수 있다.
Figure 112007027033208-pct00006
중첩이 존재해야 하는 곳까지의 최대 모션 벡터 크기는 아래의 테이블에 요약된다.
Figure 112007027033208-pct00007
이러한 실시형태에서, 더 폭 넓은 메모리 인터페이스로 인해, 페치들 사이의 더 많은 중첩이 존재할 가능성이 있다는 것을 알 수 있다. 또한, 중첩이 활용되지 않으면 페치될 리던던트 픽셀의 일부는 간단히, 1-((16+5+2M)×(28+2M)/P) 이다.
공간적으로-인접한 매크로블록들 사이의 중첩
상술된 바와 같이, 예시적인 H.264 표준을 사용하여 구성에서 필터 보간 길이가 주어지고 폭넓은 메모리 버스 인터페이스의 예시가 주어지면, 각각의 매크로 블록에 대해 페치되는 픽셀의 영역은, (16+5+2M)×(28+2M) 이다. 0부터 8까지의 M의 변화는 28×21로부터 44×37까지 변하는 픽셀의 사각형 윈도우를 나타낸다.
일 구성을 따르는 VGA 사이즈 화상에서, 1200개의 16×16 매크로블록은 640×480=307,200 픽셀의 영역을 커버링한다. 각각의 매크로블록이 28×21 픽셀의 최소-사이즈 페치를 요구하면, 총 1200×28×21=705,600 픽셀이 매 화상 당 페치된다. 화상이 307,200개의 고유한 픽셀만을 포함하기 때문에, 매크로블록 페치가 모두 중첩되지 않는 것은 불가능하다. 사실, 페치될 픽셀의 1/2보다 약간 이상이 리던던트이고 2번 페치될 것이다 (705,600-307,200=398,400 리던던트 픽셀이 프레임당 페치한다).
중첩의 활용
따라서, 매크로블록내의 서브-블록의 페치는, 서브-블록의 모션 벡터들 사이의 일부의 최대 델타 값까지 중첩될 수도 있다. 또한, 이러한 구성에서 중첩은 공간적으로 인접한 매크로블록의 페치들 사이에 존재해야 한다. 이러한 중첩은, 주로 (1) 보간 필터의 사용, (2) 많은 시스템의 더 폭넓은 메모리 버스 폭 특성, 및 (3) 이웃한 매크로블록과의 중첩으로 인해서이다.
따라서, 캐시는, 그 집약성이 정확히 어디에 존재하는지가 불분명하더라도 (즉, 모션 벡터가 디코딩될 때까지, 페치가, 수행될 수도 있는 임의의 이전의 페치에 관해 어디에 있는지가 결정될 수 없다) 메모리의 집약성이 존재하도록 하는 표준이 사용될 때마다 모션 보간 로직과 함께 사용하기 위한 유용한 메커니즘이다. 그러나, 중첩한 서브-블록으로 인한 중첩을 활용하는 시스템에 있어서, 적절한 캐시 사이즈가 , 즉, 예를 들어, (16+5+2M)×(28+2M) 루마 픽셀과 같은 매크로블록의 기대된 공간 범위의 사이즈와 거의 동일하다고 합리적으로 가정된다. 0으로부터 최대 8까지 M을 변경하는 것은, 적절한 캐시 사이즈가 512바이트로부터 2K바이트까지의 범위일 수도 있다는 것을 의미한다.
개시되어 있는 실시형태들에 대한 이전의 설명은 당업자로 하여금 본 발명을 제조 또는 이용할 수 있도록 제공된다. 당업자는 이들 실시형태에 대한 다양한 변형들을 명백히 알 수 있으며, 여기에서 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고도 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 여기에서 설명된 실시형태들에 제한되는 것이 아니라, 이하 청구항에 의해 정의된 바와 같은 원리 및 신규한 특징들과 부합하는 최광의 범위를 부여하려는 것이다.

Claims (46)

  1. 모션 보상 회로에 입력될 픽셀 데이터를 저장하는 캐시 메모리에 커플링된 상기 모션 보상 회로를 사용하여 이미지 데이터를 디코딩하는 방법으로서,
    메모리로부터 픽셀 데이터를 요청하는 단계로서, 상기 픽셀 데이터는 픽셀의 하나 이상의 블록으로부터의 데이터 및 상기 하나 이상의 블록에 공간적으로 인접한 픽셀로부터의 데이터를 포함하는, 상기 픽셀 데이터 요청 단계;
    상기 캐시 메모리에 상기 픽셀 데이터를 저장하는 단계로서, 상기 픽셀의 하나 이상의 블록은 기준 블록으로부터의 가변 오프셋을 갖는, 상기 픽셀 데이터 저장 단계;
    상기 캐시 메모리로부터 상기 픽셀 데이터를 검색하는 단계;
    상기 모션 보상 회로에 상기 픽셀 데이터를 입력하는 단계; 및
    상기 공간적으로 인접한 픽셀을 사용하여 상기 하나 이상의 블록을 보간함으로써, 상기 픽셀의 하나 이상의 블록의 부분적인 오프셋에 상기 픽셀 데이터를 보간하는 단계를 포함하는, 이미지 데이터 디코딩 방법.
  2. 제 1 항에 있어서,
    YCbCr 픽셀 포맷이 사용되는, 이미지 데이터 디코딩 방법.
  3. 제 1 항에 있어서,
    상기 모션 보상 회로는 멀티-탭 보간 필터를 포함하는, 이미지 데이터 디코딩 방법.
  4. 제 3 항에 있어서,
    상기 멀티-탭 보간 필터는 3개 이상의 탭을 포함하는, 이미지 데이터 디코딩 방법.
  5. 제 3 항에 있어서,
    상기 멀티-탭 보간 필터는 4개의 탭을 포함하는, 이미지 데이터 디코딩 방법.
  6. 제 3 항에 있어서,
    상기 멀티-탭 보간 필터는 6개의 탭을 포함하는, 이미지 데이터 디코딩 방법.
  7. 제 3 항에 있어서,
    상기 멀티-탭 보간 필터는 수평 및 수직 필터링 수단을 포함하는, 이미지 데이터 디코딩 방법.
  8. 제 1 항에 있어서,
    상기 캐시 메모리에 커플링된 메모리 버스를 더 포함하며,
    상기 캐시 메모리는 각각 L바이트인 복수의 캐시 라인을 더 포함하고, 상기 L은 상기 메모리 버스 폭의 정수배를 포함하는, 이미지 데이터 디코딩 방법.
  9. 제 1 항에 있어서,
    상기 캐시 메모리는 상기 픽셀의 하나 이상의 블록의 정수를 저장하도록 구성되는, 이미지 데이터 디코딩 방법.
  10. 제 1 항에 있어서,
    상기 하나 이상의 블록은 이미지 매크로블록을 포함하는, 이미지 데이터 디코딩 방법.
  11. 제 1 항에 있어서,
    상기 캐시 메모리는 복수의 캐시 라인을 포함하고, 각각의 캐시 라인은 1차원 영역의 픽셀 데이터를 포함하는, 이미지 데이터 디코딩 방법.
  12. 제 1 항에 있어서,
    상기 캐시 메모리는 복수의 캐시 라인을 포함하고, 각각의 캐시 라인은 2차원 영역의 픽셀 데이터를 포함하는, 이미지 데이터 디코딩 방법.
  13. 제 1 항에 있어서,
    상기 캐시 메모리 및 상기 모션 보상 회로는 이동 디바이스에 통합되는, 이미지 데이터 디코딩 방법.
  14. 제 13 항에 있어서,
    상기 이동 디바이스는 이동 핸드셋을 포함하는, 이미지 데이터 디코딩 방법.
  15. 제어 인터페이스;
    상기 제어 인터페이스에 커플링되고, 메모리로부터, 디스플레이상에서 픽셀의 영역을 포함하는 이미지 데이터를 보유하도록 구성되는 캐시 메모리로서, 상기 이미지 데이터는 픽셀의 하나 이상의 블록으로부터의 데이터 및 상기 하나 이상의 블록에 공간적으로 인접한 픽셀로부터의 데이터를 포함하는, 상기 캐시 메모리;
    상기 제어 인터페이스에 커플링된 메모리 버스 인터페이스;
    상기 캐시 메모리에 커플링된 모션 보상 보간 데이터 경로; 및
    상기 모션 보상 보간 데이터 경로에 커플링된 모션 보상 회로로서, 상기 모션 보상 회로는 상기 공간적으로 인접한 픽셀을 사용하여 상기 하나 이상의 블록을 보간하도록 구성된, 상기 모션 보상 회로를 포함하는, 이미지 데이터 디코딩 장치.
  16. 제 15 항에 있어서,
    상기 캐시 메모리는 정수의 이미지 매크로블록을 보유하도록 구성되는, 이미지 데이터 디코딩 장치.
  17. 제 15 항에 있어서,
    상기 캐시 메모리는, N/L 개의 캐시 라인을 포함하며,
    N은 상기 캐시의 바이트 수를 포함하고, L은 캐시 라인의 바이트 수를 포함하며, L은 상기 메모리 버스 인터페이스 폭의 배수를 포함하는, 이미지 데이터 디코딩 장치.
  18. 제 15 항에 있어서,
    YCbCr 픽셀 포맷이 사용되는, 이미지 데이터 디코딩 장치.
  19. 제 15 항에 있어서,
    상기 모션 보상 회로는 멀티-탭 보간 필터를 포함하는, 이미지 데이터 디코딩 장치.
  20. 제 19 항에 있어서,
    상기 멀티-탭 보간 필터는 3개 이상의 탭을 포함하는, 이미지 데이터 디코딩 장치.
  21. 제 19 항에 있어서,
    상기 멀티-탭 보간 필터는 4개의 탭을 포함하는, 이미지 데이터 디코딩 장치.
  22. 제 19 항에 있어서,
    상기 멀티-탭 보간 필터는 6개의 탭을 포함하는, 이미지 데이터 디코딩 장치.
  23. 제 19 항에 있어서,
    상기 멀티-탭 보간 필터는 수평 및 수직 필터링 수단을 포함하는, 이미지 데이터 디코딩 장치.
  24. 제 15 항에 있어서,
    상기 제어 인터페이스에 커플링된 좌표에서 캐시로의 어드레스 변환 수단을 더 포함하는, 이미지 데이터 디코딩 장치.
  25. 제 24 항에 있어서,
    상기 메모리 인터페이스에 커플링된 캐시에서 물리로의 어드레스 변환 수단을 더 포함하는, 이미지 데이터 디코딩 장치.
  26. 제 25 항에 있어서,
    상기 메모리 버스 인터페이스 및 상기 모션 보상 보간 회로에 커플링된 버퍼를 더 포함하는, 이미지 데이터 디코딩 장치.
  27. 제어 인터페이스;
    상기 제어 인터페이스에 커플링된 좌표에서 캐시로의 어드레스 변환 회로;
    상기 좌표에서 캐시로의 어드레스 변환 회로에 커플링되고, 메모리로부터 픽셀 데이터의 블록을 저장하도록 구성되는 캐시 메모리로서, 상기 픽셀 데이터는 픽셀의 하나 이상의 블록으로부터의 데이터 및 상기 하나 이상의 블록에 공간적으로 인접한 픽셀로부터의 데이터를 포함하는, 상기 캐시 메모리;
    상기 캐시 메모리에 커플링된 모션 보상 보간 데이터 경로;
    상기 모션 보간 데이터 경로에 커플링되고, 상기 공간적으로 인접한 픽셀을 사용하여 상기 하나 이상의 블록을 보간하도록 구성되는 모션 보상 회로;
    상기 캐시 메모리에 커플링된 캐시에서 물리로의 어드레스 변환 회로; 및
    상기 캐시에서 물리로의 어드레스 변환 회로에 커플링된 메모리 버스 인터페이스를 포함하는, 이미지 데이터 디코딩 장치.
  28. 제 27 항에 있어서,
    상기 캐시 메모리는 정수의 이미지 매크로블록을 저장하도록 구성되는, 이미지 데이터 디코딩 장치.
  29. 제 27 항에 있어서,
    상기 캐시 메모리는 N/L 개의 캐시 라인을 포함하며,
    N은 상기 캐시의 바이트 수를 포함하고, L은 캐시 라인의 바이트 수를 포함하며, L은 상기 메모리 버스 인터페이스 폭의 배수를 포함하는, 이미지 데이터 디코딩 장치.
  30. 제 27 항에 있어서,
    YCbCr 픽셀 포맷이 사용되는, 이미지 데이터 디코딩 장치.
  31. 제 27 항에 있어서,
    상기 모션 보상 회로는 멀티-탭 보간 필터를 포함하는, 이미지 데이터 디코딩 장치.
  32. 제 31 항에 있어서,
    상기 멀티-탭 보간 필터는 3개 이상의 탭을 포함하는, 이미지 데이터 디코딩 장치.
  33. 제 31 항에 있어서,
    상기 멀티-탭 보간 필터는 4개의 탭을 포함하는, 이미지 데이터 디코딩 장치.
  34. 제 31 항에 있어서,
    상기 멀티-탭 보간 필터는 6개의 탭을 포함하는, 이미지 데이터 디코딩 장치.
  35. 제 31 항에 있어서,
    상기 멀티-탭 보간 필터는 수평 및 수직 필터링 수단을 포함하는, 이미지 데이터 디코딩 장치.
  36. 제 27 항에 있어서,
    상기 좌표에서 캐시로의 어드레스 변환 회로의 각각의 좌표는 프레임 버퍼 인덱스, 모션 벡터, 매크로블록 어드레스, 및 블록 사이즈를 포함하는, 이미지 데이터 디코딩 장치.
  37. 제 27 항에 있어서,
    상기 모션 보상 회로는 H.264 표준에 의해 정의된 포맷에서 픽셀 영역을 보간하도록 구성되는, 이미지 데이터 디코딩 장치.
  38. 제 27 항에 있어서,
    상기 모션 보상 회로는 MPEG 표준에 의해 정의된 포맷에서 픽셀 영역을 보간하도록 구성되는, 이미지 데이터 디코딩 장치.
  39. 이동 디바이스에 통합되어, 이미지 데이터를 디코딩하는 장치로서,
    픽셀 데이터 좌표를 수신하는 제어 인터페이스 수단;
    좌표 데이터를 캐시 어드레스로 변환하는 좌표 어드레스 변환 수단;
    상기 캐시 어드레스를 물리 어드레스로 변환하는 물리 어드레스 변환 수단;
    메모리로부터 픽셀 데이터의 영역을 저장하는 캐시 메모리로서, 상기 픽셀 데이터는 픽셀의 하나 이상의 블록으로부터의 데이터 및 상기 하나 이상의 블록에 공간적으로 인접한 픽셀로부터의 데이터를 포함하는, 상기 캐시 메모리;
    판독 커맨드를 메인 메모리에 송신하는 메모리 버스 인터페이스; 및
    상기 캐시 메모리에 커플링되고, 상기 픽셀 데이터의 영역을 수신하고, 상기 공간적으로 인접한 픽셀을 사용하여 상기 영역내에서 픽셀의 블록을 보간하는 모션 보상 수단을 포함하는, 이미지 데이터 디코딩 장치.
  40. 제 39 항에 있어서,
    상기 모션 보상 수단은 또한 H.264 표준에 대응하는 픽셀의 블록을 보간하도록 구성되는, 이미지 데이터 디코딩 장치.
  41. 제 39 항에 있어서,
    상기 모션 보상 수단은 멀티-탭 보간 필터를 포함하는, 이미지 데이터 디코딩 장치.
  42. 제 41 항에 있어서,
    상기 모션 보상 수단은 4개의-탭 보간 필터를 포함하는, 이미지 데이터 디코딩 장치.
  43. 제 41 항에 있어서,
    상기 멀티-탭 보간 필터는 4개의 탭을 포함하는, 이미지 데이터 디코딩 장치.
  44. 제 39 항에 있어서,
    상기 픽셀 데이터 좌표 각각은, 프레임 버퍼 인덱스, 모션 벡터, 매크로블록 어드레스, 및 블록 사이즈를 포함하는, 이미지 데이터 디코딩 장치.
  45. 모션 보상 회로에 입력될 픽셀 데이터를 저장하는 캐시 메모리에 커플링된 모션 보상 회로를 사용하여 이미지 데이터를 디코딩하는 방법을 수행하는 컴퓨터 프로그램에 의해 실행가능한 명령의 프로그램을 수록한 컴퓨터-판독가능 매체로서,
    상기 방법은,
    메모리로부터 픽셀 데이터를 요청하는 단계로서, 상기 픽셀 데이터는 픽셀의 하나 이상의 블록으로부터의 데이터 및 상기 하나 이상의 블록에 공간적으로 인접한 픽셀로부터의 데이터를 포함하는, 상기 픽셀 데이터 요청 단계;
    상기 캐시 메모리에 상기 픽셀 데이터를 저장하는 단계로서, 상기 픽셀의 하나 이상의 블록은 기준 블록으로부터의 가변 오프셋을 갖는, 상기 픽셀 데이터 저장 단계;
    상기 캐시 메모리로부터 상기 픽셀 데이터를 검색하는 단계;
    상기 픽셀 데이터를 상기 모션 보상 회로에 입력하는 단계; 및
    상기 공간적으로 인접한 픽셀을 사용하여 상기 하나 이상의 블록을 보간함으로써, 상기 픽셀의 하나 이상의 블록의 부분적인 오프셋에 상기 픽셀 데이터를 보간하는 단계를 포함하는, 컴퓨터 판독-가능 매체.
  46. 제 45 항에 있어서,
    상기 명령의 프로그램은, H.264 표준에 기초하여 이미지 데이터를 디코딩하도록 구성되는, 컴퓨터 판독-가능 매체.
KR1020077008039A 2004-09-09 2005-09-08 비디오 모션 보상용 캐싱 방법 및 장치 KR100907843B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/939,183 US20060050976A1 (en) 2004-09-09 2004-09-09 Caching method and apparatus for video motion compensation
US10/939,183 2004-09-09
PCT/US2005/032340 WO2006029382A2 (en) 2004-09-09 2005-09-08 Caching method and apparatus for video motion compensation

Publications (2)

Publication Number Publication Date
KR20070088608A KR20070088608A (ko) 2007-08-29
KR100907843B1 true KR100907843B1 (ko) 2009-07-14

Family

ID=35645749

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077008039A KR100907843B1 (ko) 2004-09-09 2005-09-08 비디오 모션 보상용 캐싱 방법 및 장치

Country Status (7)

Country Link
US (1) US20060050976A1 (ko)
EP (2) EP1787479A2 (ko)
JP (1) JP2008512967A (ko)
KR (1) KR100907843B1 (ko)
CN (1) CN101116341B (ko)
TW (1) TWI364714B (ko)
WO (1) WO2006029382A2 (ko)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8463282B2 (en) 2003-12-03 2013-06-11 Qualcomm Incorporated Overload detection in a wireless communication system
US20060159170A1 (en) * 2005-01-19 2006-07-20 Ren-Wei Chiang Method and system for hierarchical search with cache
US7536487B1 (en) * 2005-03-11 2009-05-19 Ambarella, Inc. Low power memory hierarchy for high performance video processor
US20060291743A1 (en) * 2005-06-24 2006-12-28 Suketu Partiwala Configurable motion compensation unit
US7965773B1 (en) * 2005-06-30 2011-06-21 Advanced Micro Devices, Inc. Macroblock cache
US20070008323A1 (en) * 2005-07-08 2007-01-11 Yaxiong Zhou Reference picture loading cache for motion prediction
EP1908295A2 (en) * 2005-07-28 2008-04-09 Thomson Licensing Method and apparatus for video motion process optimization using a hierarchical cache
US7427990B2 (en) * 2006-01-30 2008-09-23 Ati Technologies, Inc. Data replacement method and circuit for motion prediction cache
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US8559514B2 (en) * 2006-07-27 2013-10-15 Qualcomm Incorporated Efficient fetching for motion compensation video decoding process
JP4535047B2 (ja) * 2006-09-06 2010-09-01 ソニー株式会社 画像データ処理方法、画像データ処理方法のプログラム、画像データ処理方法のプログラムを記録した記録媒体及び画像データ処理装置
TWI326433B (en) * 2006-09-19 2010-06-21 Ind Tech Res Inst Method for saving interpolation data
CN101166272B (zh) * 2006-10-17 2010-05-12 财团法人工业技术研究院 补差点数据储存方法
US8514237B2 (en) * 2007-05-22 2013-08-20 International Business Machines Corporation Two dimensional memory caching apparatus for high definition video
US8665946B2 (en) * 2007-10-12 2014-03-04 Mediatek Inc. Macroblock pair coding for systems that support progressive and interlaced data
KR100944995B1 (ko) * 2007-12-12 2010-03-05 재단법인서울대학교산학협력재단 움직임 보정장치
US20090222448A1 (en) * 2008-02-29 2009-09-03 Microsoft Corporation Elements of an enterprise event feed
WO2009109891A1 (en) * 2008-03-03 2009-09-11 Nxp B.V. Processor comprising a cache memory
US8577165B2 (en) * 2008-06-30 2013-11-05 Samsung Electronics Co., Ltd. Method and apparatus for bandwidth-reduced image encoding and decoding
KR101611408B1 (ko) 2008-06-30 2016-04-12 삼성전자주식회사 점유 대역폭의 감소를 위한 영상 부호화 방법 및 장치, 그리고 영상 복호화 방법 및 장치
US8411749B1 (en) * 2008-10-07 2013-04-02 Zenverge, Inc. Optimized motion compensation and motion estimation for video coding
US20100226437A1 (en) * 2009-03-06 2010-09-09 Sony Corporation, A Japanese Corporation Reduced-resolution decoding of avc bit streams for transcoding or display at lower resolution
US8732384B1 (en) 2009-08-04 2014-05-20 Csr Technology Inc. Method and apparatus for memory access
US9349156B2 (en) 2009-09-25 2016-05-24 Arm Limited Adaptive frame buffer compression
GB0916924D0 (en) * 2009-09-25 2009-11-11 Advanced Risc Mach Ltd Graphics processing systems
JP5751782B2 (ja) * 2009-09-25 2015-07-22 アーム・リミテッド グラフィックス処理システム
US8988443B2 (en) * 2009-09-25 2015-03-24 Arm Limited Methods of and apparatus for controlling the reading of arrays of data from memory
US9406155B2 (en) 2009-09-25 2016-08-02 Arm Limited Graphics processing systems
US8225043B1 (en) * 2010-01-15 2012-07-17 Ambarella, Inc. High performance caching for motion compensated video decoder
CN102823245B (zh) * 2010-04-07 2016-05-11 文森索·利古奥里 具有减少的内存需求的视频传输系统
CN102340662B (zh) * 2010-07-22 2013-01-23 炬才微电子(深圳)有限公司 一种视频处理设备和方法
US9041817B2 (en) * 2010-12-23 2015-05-26 Samsung Electronics Co., Ltd. Method and apparatus for raster output of rotated interpolated pixels optimized for digital image stabilization
US9122609B2 (en) * 2011-03-07 2015-09-01 Texas Instruments Incorporated Caching method and system for video coding
GB201105716D0 (en) 2011-04-04 2011-05-18 Advanced Risc Mach Ltd Method of and apparatus for displaying windows on a display
US20130188732A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Multi-Threaded Texture Decoding
KR101885885B1 (ko) 2012-04-10 2018-09-11 한국전자통신연구원 비디오 데이터의 병렬 인트라 예측 방법
US20140071146A1 (en) * 2012-09-07 2014-03-13 Texas Instruments Incorporated Methods and systems for multimedia data processing
US20140184630A1 (en) * 2012-12-27 2014-07-03 Scott A. Krig Optimizing image memory access
US10085016B1 (en) 2013-01-18 2018-09-25 Ovics Video prediction cache indexing systems and methods
US9363524B2 (en) * 2013-08-26 2016-06-07 Amlogic Co., Limited Method and apparatus for motion compensation reference data caching
US9195426B2 (en) 2013-09-20 2015-11-24 Arm Limited Method and apparatus for generating an output surface from one or more input surfaces in data processing systems
US20150146784A1 (en) * 2013-11-26 2015-05-28 Vixs Systems Inc. Motion compensation with moving window
GB2524467B (en) 2014-02-07 2020-05-27 Advanced Risc Mach Ltd Method of and apparatus for generating an overdrive frame for a display
GB2528265B (en) 2014-07-15 2021-03-10 Advanced Risc Mach Ltd Method of and apparatus for generating an output frame
US9762919B2 (en) 2014-08-28 2017-09-12 Apple Inc. Chroma cache architecture in block processing pipelines
GB2540562B (en) 2015-07-21 2019-09-04 Advanced Risc Mach Ltd Method of and apparatus for generating a signature representative of the content of an array of data
US10841610B2 (en) * 2017-10-23 2020-11-17 Avago Technologies International Sales Pte. Limited Block size dependent interpolation filter selection and mapping
JP7406206B2 (ja) 2020-04-28 2023-12-27 日本電信電話株式会社 参照画像キャッシュ、削除先決定方法及びコンピュータプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570574B1 (en) 2000-01-10 2003-05-27 Intel Corporation Variable pre-fetching of pixel data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2646854B2 (ja) * 1990-12-18 1997-08-27 三菱電機株式会社 マイクロプロセッサ
JP2883592B2 (ja) * 1991-05-31 1999-04-19 株式会社東芝 動画像復号化装置及び動画像復号化方法
US6788347B1 (en) * 1997-03-12 2004-09-07 Matsushita Electric Industrial Co., Ltd. HDTV downconversion system
US6335950B1 (en) * 1997-10-14 2002-01-01 Lsi Logic Corporation Motion estimation engine
JP3123496B2 (ja) * 1998-01-28 2001-01-09 日本電気株式会社 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体
JPH11328369A (ja) * 1998-05-15 1999-11-30 Nec Corp キャッシュシステム
US6707853B1 (en) * 2000-01-10 2004-03-16 Intel Corporation Interface for performing motion compensation
US6956617B2 (en) * 2000-11-17 2005-10-18 Texas Instruments Incorporated Image scaling and sample rate conversion by interpolation with non-linear positioning vector
EP1241892A1 (de) * 2001-03-06 2002-09-18 Siemens Aktiengesellschaft Hardware-Accelerator eines Systems zur Videoverarbeitung
WO2003005731A1 (en) * 2001-07-06 2003-01-16 Koninklijke Philips Electronics N.V. Motion estimation and compensation with controlled vector statistics
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
FI114679B (fi) * 2002-04-29 2004-11-30 Nokia Corp Satunnaisaloituspisteet videokoodauksessa

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570574B1 (en) 2000-01-10 2003-05-27 Intel Corporation Variable pre-fetching of pixel data

Also Published As

Publication number Publication date
EP2184924A2 (en) 2010-05-12
KR20070088608A (ko) 2007-08-29
EP1787479A2 (en) 2007-05-23
US20060050976A1 (en) 2006-03-09
EP2184924A3 (en) 2010-07-28
CN101116341A (zh) 2008-01-30
WO2006029382A2 (en) 2006-03-16
TW200625196A (en) 2006-07-16
JP2008512967A (ja) 2008-04-24
CN101116341B (zh) 2013-03-27
WO2006029382A3 (en) 2006-09-21
TWI364714B (en) 2012-05-21

Similar Documents

Publication Publication Date Title
KR100907843B1 (ko) 비디오 모션 보상용 캐싱 방법 및 장치
US20230196503A1 (en) Upscaling Lower Resolution Image Data for Processing
US5978509A (en) Low power video decoder system with block-based motion compensation
US9351003B2 (en) Context re-mapping in CABAC encoder
US9762919B2 (en) Chroma cache architecture in block processing pipelines
JP5290429B2 (ja) デコードされたピクチャのインテリジェントなバッファリング
US20060188021A1 (en) Motion vector detecting device
JP5059058B2 (ja) 高速動き探索装置及びその方法
US8565312B2 (en) Image processing method and image information coding apparatus using the same
EP1147671B1 (en) Method and apparatus for performing motion compensation in a texture mapping engine
US20050047510A1 (en) Data processing device for MPEG
TWI418219B (zh) 用於動態補償系統之資料映像方法及快取記憶體系統
KR101085799B1 (ko) 핸드헬드 디바이스에서의 이미지 처리 방법 및 장치
Kim et al. Cache organizations for H. 264/AVC motion compensation
US20130127887A1 (en) Method for storing interpolation data
KR100556341B1 (ko) 메모리 대역폭이 감소된 비디오 디코더 시스템
JP2011097488A (ja) 映像圧縮符号化装置
JP2011039660A (ja) メモリコントローラ、画像処理システムおよびメモリアクセスの制御方法
Liu et al. Design of an H. 264/AVC decoder with memory hierarchy and line-pixel-lookahead
AU2008255265A1 (en) Prediction region memory access reduction
KR100672376B1 (ko) 움직임 보상 방법
JP2008033431A (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
FPAY Annual fee payment

Payment date: 20130628

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee