KR101494957B1 - 병렬 스케일러 프로세싱 - Google Patents

병렬 스케일러 프로세싱 Download PDF

Info

Publication number
KR101494957B1
KR101494957B1 KR20130020149A KR20130020149A KR101494957B1 KR 101494957 B1 KR101494957 B1 KR 101494957B1 KR 20130020149 A KR20130020149 A KR 20130020149A KR 20130020149 A KR20130020149 A KR 20130020149A KR 101494957 B1 KR101494957 B1 KR 101494957B1
Authority
KR
South Korea
Prior art keywords
pixels
vertical
scaler
scalers
horizontal
Prior art date
Application number
KR20130020149A
Other languages
English (en)
Other versions
KR20130097689A (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 KR20130097689A publication Critical patent/KR20130097689A/ko
Application granted granted Critical
Publication of KR101494957B1 publication Critical patent/KR101494957B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)

Abstract

소스 이미지로부터의 복수의 픽셀을 동시에 스케일링하기 위한 병렬 스케일러 유닛이 개시된다. 스케일러 유닛은 복수의 수직 스케일러 및 복수의 수평 스케일러를 포함한다. 소스 이미지로부터의 픽셀들의 컬럼은 수직 스케일러들에 제공되고, 각각의 수직 스케일러는 스케일링을 위해 픽셀들의 컬럼으로부터 적절한 픽셀들을 선택한다. 각각의 수직 스케일러는 선택된 픽셀들을 수직 방향으로 스케일링한 다음, 수직 스케일링된 픽셀들을 대응하는 수평 스케일러에 전달한다. 각각의 수평 스케일러는 수신된 픽셀들을 수평 방향으로 스케일링한다.

Description

병렬 스케일러 프로세싱{PARALLEL SCALER PROCESSING}
본 발명은 일반적으로 그래픽 정보 프로세싱에 관한 것이고, 구체적으로는, 이미지를 스케일링(scaling)하기 위한 방법들 및 메커니즘들에 관한 것이다.
그래픽 프로세싱 능력들을 갖는 전자 장치들은, 특히 이들 장치들이 일반 소비자에게 더욱더 쉽게 입수가능하게 되고 있기 때문에 최근에 점차 대중적이 되었다. 많은 상이한 요소들 및 기능 유닛들, 예를 들어, 스케일러 유닛들을 이용하여 이들 전자 장치들 내의 그래픽 프로세싱을 수행한다. 스케일러 유닛들, 즉 스케일러들은 통상적으로 이미지 또는 비디오 프레임의 사이즈를 스케일링하는 데 이용된다. 예를 들어, 하나의 특정 시나리오에서, 소스 이미지는 800x600 픽셀들의 오리지널 포맷 사이즈로 될 수 있고, 특정 디스플레이 타입에 맞도록 1024x768 픽셀들로 스케일링될 필요가 있을 수 있다. 통상적으로, 스케일러들은 클록당 1 픽셀에 대해 직렬로 동작하고, 스케일링은 종종 각각의 픽셀에 대해 필요한 데이터를 인출(fetching) 및 재인출(refetching)하는 것을 수반한다. 이러한 타입의 스케일링은 비효율적이고 그래픽 프로세싱 시스템의 메모리에 매우 많은 스트레스를 준다.
일 실시예에서, 스케일러 유닛을 포함하는 그래픽 프로세싱 시스템이 고려되고, 스케일러 유닛은 복수의 수직 스케일러들 및 수평 스케일러들을 포함할 수 있다. 그래픽 프로세싱 시스템은 복수의 스테이지들의 파이프라인을 포함할 수 있고, 상이한 타입의 프로세싱이 각각의 스테이지에서 소스 이미지에 대해 수행될 수 있다. 소스 이미지는 스케일러 유닛에 전달되기 전에 하나 이상의 파이프라인 스테이지들에 의해 프로세싱 또는 조작(예를 들어, 회전)될(manipulated) 수 있다. 일 실시예에서, 수직 스케일러들은 스케일러 유닛의 프런트 엔드(front end)에 배치될 수 있다. 수직 스케일러들은 그래픽 프로세싱 파이프라인의 스케일러 유닛에 선행하는 스테이지일 수 있는 회전 유닛으로부터 소스 이미지 픽셀들을 인출 또는 수신할 수 있다.
일 실시예에서, 스케일러 유닛은 4개의 수직 스케일러들을 포함할 수 있고, 4개의 수직 스케일러들 각각은 수직 방향으로 픽셀들을 스케일링하도록 구성될 수 있다. 각각의 수직 스케일러는 수직 스케일링을 수행하기 위한 멀티-탭 다상 필터(multi-tap polyphase filter)를 포함할 수 있다. 각각의 수직 스케일러는 멀티-탭 다상 필터의 각각의 탭에 대응하는 멀티플렉서를 포함할 수 있고, 멀티플렉서는 수직 스케일러에 제공되는 픽셀들의 컬럼(column)으로부터 적절한 픽셀을 선택하도록 구성될 수 있다.
각각의 수직 스케일러의 출력은 대응하는 수평 스케일러에 전달될 수 있다. 수평 스케일러들은 수직 스케일러들로부터 수신되는 픽셀들의 수평 스케일링을 수행하도록 구성될 수 있다. 일 실시예에서, 스케일러 유닛에는 각각의 수직 스케일러에 대해 수평 스케일러가 존재할 수 있다. 각각의 수평 스케일러는 멀티-탭 다상 필터 및 멀티-탭 다상 필터의 탭들에 결합되는 시프트 레지스터들의 체인(chain of shift registers)을 포함할 수 있다. 대응하는 수직 스케일러로부터 출력된 각각의 수직으로 스케일링된 픽셀은 수평 스케일러의 시프트 레지스터들의 체인을 통해 시프트될 수 있다.
일 실시예에서, 소스 이미지는 복수의 타일들(tiles)로 분할될 수 있다. 스케일러 유닛은 타일별로(on a tile-by-tile basis) 소스 이미지를 프로세싱하도록 구성될 수 있다. 하나 이상의 타일들에 걸치는(spanning) 픽셀들의 컬럼은 수직 스케일러들에 의해 인출될 수 있고, 이미지의 좌측 상단 타일의 가장 좌측의 컬럼으로 시작한다. 그 다음, 타일의 가장 좌측의 컬럼이 인출된 후에, 우측으로 다음 컬럼이 인출될 수 있고, 타일의 우측 에지에 도달할 때까지, 이와 같이 인출될 수 있다. 그 다음, 좌측 상단 타일 아래의 타일이 프로세싱될 수 있고, 이 패턴은 내내 이미지 내의 타일들의 가장 좌측의 컬럼 아래까지 이어서 계속할 수 있다. 그 다음, 우측으로 타일들의 다음 컬럼이 프로세싱될 수 있고, 이 프로세스는 이미지의 타일들의 컬럼들 전부가 프로세싱될 때까지 계속할 수 있다.
이들 및 다른 특징들 및 이점들은 본원에 제시된 접근법들의 다음의 상세한 설명들에 비추어 이 기술분야의 통상의 기술자에게 명백하게 될 것이다.
본 발명의 방법들 및 메커니즘들의 상기 및 추가 이점들은 첨부 도면들과 결부하여 다음의 설명을 참조함으로써 더 잘 이해될 수 있다.
도 1은 그래픽 프로세싱 파이프라인의 일 실시예를 도시하는 블록도이다.
도 2는 하나 이상의 실시예들에 따른 복수의 타일들로 분할되는(partitioned) 소스 이미지이다.
도 3은 하나 이상의 실시예들에 따른 수직 스케일러의 프런트 엔드의 블록도이다.
도 4는 하나 이상의 실시예들에 따른 수직 멀티-탭 다상 필터를 도시하는 블록도이다.
도 5는 수평 멀티-탭 다상 필터의 일 실시예의 블록도이다.
도 6은 타일들의 작업 세트(a working set of tiles)의 일 실시예의 블록도이다.
도 7은 수직 스케일러 유닛에 제공되는 픽셀들의 컬럼의 일 실시예의 블록도이다.
도 8은 제1 수평 패스(pass)에서 수직 스케일러들에 의한 픽셀들의 선택의 일 실시예의 블록도이다.
도 9는 제2 수평 패스에서 수직 스케일러들에 의한 픽셀들의 선택의 일 실시예의 블록도이다.
도 10은 수직 및 수평 스케일러들 사이의 접속들의 일 실시예의 블록도이다.
도 11은 소스 이미지를 스케일링하기 위한 방법의 일 실시예를 도시하는 일반화된 흐름도이다.
도 12는 픽셀들을 스케일링하기 위한 방법의 일 실시예를 도시하는 일반화된 흐름도이다.
도 13은 시스템의 일 실시예의 블록도이다.
도 14는 컴퓨터 판독 가능한 매체의 일 실시예의 블록도이다.
다음의 설명에서, 본원에 제시된 방법들 및 메커니즘들의 철저한 이해를 제공하기 위해 다수의 특정 상세들이 제시된다. 그러나, 이 기술분야의 통상의 기술자는 이들 특정 상세들 없이 다양한 실시예들이 실시될 수 있다는 것을 인식해야 한다. 일부 경우들에서, 잘 알려진 구조들, 컴포넌트들, 신호들, 컴퓨터 프로그램 명령들, 및 기법들은 본원에 설명된 접근법들을 불명료하게 하는 것을 피하기 위해 상세하게 나타내지 않았다. 예시의 간단함 및 명확함을 위해, 도면들에 도시된 요소들은 반드시 비례적으로 그려지지는 않았다는 것을 알 것이다. 예를 들어, 요소들의 일부의 치수들은 다른 요소들에 비해 과장될 수 있다.
이 명세서는 "일 실시예"에 대한 참조들을 포함한다. 상이한 문맥들에서 "일 실시예에서"라는 구절의 출현은 반드시 동일한 실시예를 가리키지는 않는다. 특정 특징들, 구조들, 또는 특성들은 본 개시와 일관되는 임의의 적절한 방식으로 결합될 수 있다. 또한, 이 출원 전체에 걸쳐서 이용되는 바와 같이, 단어 "~할 수 있다(may)"는 의무적인 의미(즉, ~해야 한다(must)는 의미)라기보다는, 허용적인 의미(즉, ~할 가능성이 있다는 의미)로 이용된다. 유사하게, 단어들 "포함한다(include)", "포함하는(including)", 및 "포함한다(includes)"는 포함하지만 그것으로 한정되지 않음을 의미한다.
전문용어. 다음 단락들은 본 개시(첨부된 청구항들을 포함함)에서 발견되는 용어들에 대한 정의들 및/또는 문맥을 제공한다:
"포함하는(comprising)". 이 용어는 오픈 엔드형(open-ended)이다. 첨부된 청구항들에서 이용되는 바와 같이, 이 용어는 부가적인 구조 또는 단계들을 배제하지 않는다. "복수의 수직 스케일러들을 포함하는 장치..."라고 기재하는 청구항을 고려한다. 이러한 청구항은 장치가 부가적인 컴포넌트들(예를 들어, 프로세서, 캐시, 메모리 컨트롤러)을 포함하는 것을 배제하지 않는다.
"~하도록 구성되는(configured To)". 다양한 유닛들, 회로들, 또는 다른 컴포넌트들은 태스크 또는 태스크들을 수행"하도록 구성되는" 것으로서 설명 또는 청구될 수 있다. 이러한 문맥들에서, "~하도록 구성되는"은 유닛들/회로들/컴포넌트들이 동작 동안 태스크 또는 태스크들을 수행하는 구조(예를 들어, 회로)를 포함함을 표시함으로써 구조를 함축(connote)하는 데 이용된다. 이와 같이, 유닛/회로/컴포넌트는 특정된 유닛/회로/컴포넌트가 현재 동작하지 않을 때에도(예를 들어, 온(on) 상태가 아닐 때에도) 태스크를 수행하도록 구성되어 있다고 말할 수 있다. "~하도록 구성되는" 언어와 이용되는 유닛들/회로들/컴포넌트들은 하드웨어 - 예를 들어, 회로들, 동작을 구현하기 위해 실행 가능한 프로그램 명령어들을 저장하는 메모리, 등을 포함한다. 유닛/회로/컴포넌트가 하나 이상의 태스크를 수행"하도록 구성"된다는 기재는 그 유닛/회로/컴포넌트에 대해, 35 U.S.C. §112, 6절을 적용하지(invoke) 않도록 명백하게 의도된다. 부가적으로, "~하도록 구성되는"은 문제가 되고 있는 태스크(들)를 수행할 수 있는 방식으로 동작하기 위해 소프트웨어 및/또는 펌웨어(예를 들어, FPGA 또는 소프트웨어를 실행하는 범용 프로세서)에 의해 조작되는 일반적인 구조(예를 들어, 일반적인 회로)를 포함할 수 있다. "~하도록 구성되는"은 또한 하나 이상의 태스크들을 구현 또는 수행하도록 적응되는 장치들(예를 들어, 집적 회로들)을 제조하기 위해 제조 프로세스(예를 들어, 반도체 제조 설비)를 적응시키는 것을 포함할 수 있다.
"~에 기초한(Based On)". 본원에 이용되는 바와 같이, 이 용어는 결정에 영향을 미치는 하나 이상의 인자들을 설명하는 데 이용된다. 이 용어는 결정에 영향을 미칠 수 있는 부가적인 인자들을 배제하지 않는다. 즉, 결정은 단지 그의 인자들에 기초하거나 그의 인자들에 적어도 부분적으로 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 구절을 고려한다. B가 A의 결정에 영향을 미치는 인자일 수 있고, 그러한 구절은 A의 결정이 C에도 기초하는 것을 배제하지 않는다. 다른 경우들에서, A는 B에만 기초하여 결정될 수 있다.
이제 도 1을 참조하면, 그래픽 프로세싱 파이프라인의 일 실시예를 예시하는 블록도가 도시된다. 다양한 실시예들에서, 파이프라인(10)은 시스템 온 칩(system on chip; SoC), ASIC(application specific integrated circuit), 장치, 프로세서, 프로세서 코어 또는 다양한 다른 유사한 장치들 중 임의의 것 내에 통합될 수 있다. 일부 실시예들에서, 파이프라인(10)의 하나 이상의 인스턴스들(instances)은 SoC 또는 다른 장치 내에 포함될 수 있다.
소스 이미지(34)는 메모리(12)에 저장될 수 있고, 소스 이미지(34)는 스틸 이미지 또는 비디오 스트림의 프레임일 수 있다. 다른 실시예들에서, 소스 이미지(34)는 다른 장소들에 저장될 수 있다. 소스 이미지(34)는 메모리(12)에 저장되어 파이프라인(10)에 의해 프로세싱될 수 있는 임의의 수의 이미지들, 비디오들, 또는 그래픽 데이터를 나타낸다. 메모리(12)는 임의의 수 및 타입의 메모리 장치들(예를 들어, DRAM(dynamic random access memory), 캐시)을 나타낸다.
소스 이미지(34)는 픽셀들이라고 알려진 다수의 개별 화소로 나타낼 수 있다. 디지털 이미징에서, 이미지 또는 비디오 프레임 내의 정보의 가장 작은 항목을 "픽셀"이라고 할 수 있다. 픽셀들은 일반적으로 규칙적인 2차원 격자로 배열된다. 소스 이미지(34) 내의 각각의 픽셀은 하나 이상의 픽셀 성분(component)들로 나타낼 수 있다. 픽셀 성분들은 이미지가 표현되는 컬러 공간에서 각각의 컬러에 대한 컬러 값들을 포함할 수 있다. 예를 들어, 컬러 공간은 적색-녹색-청색(RGB) 컬러 공간일 수 있다. 따라서, 각각의 픽셀은 적색 성분, 녹색 성분, 및 청색 성분으로 나타낼 수 있다. 일 실시예에서, 컬러 성분의 값은 0 내지 2N-1의 범위에 있을 수 있고, 'N'은 값을 나타내는 데 이용되는 비트들의 수이다. 각각의 컬러 성분의 값은 그 픽셀에서 대응하는 컬러의 밝기(brightness) 또는 세기(intensity)를 나타낼 수 있다. 루미넌스(luminance) 및 크로미넌스(chrominance) 표현(YCrCb)과 같은 다른 컬러 공간들도 이용될 수 있다. 또한, 부가적인 픽셀 성분들이 포함될 수 있다. 예를 들어, 블렌딩을 위한 알파 값이 ARGB 컬러 공간을 형성하기 위해 RGB 성분들과 포함될 수 있다. 각각의 픽셀을 저장하는 데 이용되는 비트들의 수는 이용되는 특정 포맷에 의존할 수 있다. 예를 들어, 일부 시스템들의 픽셀들은 8 비트들을 요구할 수 있지만, 다른 시스템들의 픽셀들은 10 비트들을 요구할 수 있는 등등이고, 픽셀당 비트들의 다양한 수 중 임의의 것이 다양한 시스템들에서 이용된다.
파이프라인(10)은 픽셀당 최대 4개의 컬러 성분을 프로세싱하기 위해 4개의 개별 채널들(14-20)을 포함할 수 있다. 각각의 채널은 회전 유닛, 타일 버퍼들의 세트, 수직 스케일러들의 세트, 및 수평 스케일러들의 세트를 포함할 수 있다. 일 실시예에서, 채널(14)은 알파 채널을 프로세싱할 수 있다. 다른 실시예들에서, 채널(14)은 이용되지 않을 수 있고, 그 대신 3개의 컬러 성분에 대응하는 3개의 채널(16-20)만이 이용될 수 있다. RDMA(read direct memory access) 유닛(22)은 메모리(12)로부터 그래픽 데이터(예를 들어, 소스 이미지(34))를 판독하도록 구성될 수 있다. RDMA 유닛(22)은 4개의 회전 유닛들, 4개의 타일 버퍼들, 및 DMA 버퍼(도시되지 않음)를 포함할 수 있다. 4개의 타일 버퍼는 소스 이미지(34)의 회전된 타일들을 저장하기 위해 이용될 수 있다.
소스 이미지의 각각의 컬러 성분에 대해 복수의 수직 스케일러들 및 수평 스케일러들이 존재할 수 있다. 각각의 세트의 수직 스케일러들은 대응하는 세트의 타일 버퍼들로부터 픽셀들의 컬럼을 인출할 수 있다. 다른 실시예에서, 픽셀들은 타일 버퍼들로부터 수직 스케일러들로 전달될 수 있다. 채널당 각각의 세트의 수직 스케일러들은 임의 수의 수직 스케일러들을 포함할 수 있다. 일 실시예에서, 각각의 컬러 성분 채널에 대해 파이프라인(10) 내에 4개의 개별 수직 스케일러들이 존재할 수 있다. 다른 실시예들에서, 다른 수의 수직 스케일러들이 컬러 성분 채널당 이용될 수 있다.
소스 이미지(34)는 복수의 타일들로 분할될 수 있고, 타일별로 회전 유닛들에 의해 프로세싱될 수 있고, 회전되는 타일들은 각각의 컬러 성분 채널에서 타일 버퍼들 중 하나에 저장될 수 있다. 일 실시예에서, 채널당 4개의 타일 버퍼가 존재할 수 있지만, 다른 실시예들에서는, 다른 수의 타일 버퍼들이 이용될 수 있다. 일 실시예에서, 수직 스케일러들은 대응하는 타일 버퍼들로부터 픽셀들의 컬럼을 인출할 수 있다. 픽셀들의 컬럼은 소스 이미지의 하나 이상의 타일들에 걸쳐서 확장할 수 있다.
픽셀들의 컬럼은 수직 스케일러들의 프런트 엔드에 있는 멀티플렉서들에 전달될 수 있다. 각각의 수직 스케일러는 복수의 멀티플렉서를 포함할 수 있고, 수직 스케일러의 멀티-탭 다상 필터의 각각의 탭에 대해 하나의 멀티플렉서가 존재한다. 각각의 멀티플렉서는 픽셀들의 컬럼으로부터 적절한 픽셀을 선택할 수 있고, 적절한 픽셀은 수행되는 스케일링의 타입에 기초하여 결정된다. 수직 스케일러들의 세트 중의 각각의 수직 스케일러는 하나 이상의 픽셀들을 프로세싱하고 단일의 수직으로 스케일링된 픽셀을 출력하도록 구성될 수 있다.
소스 이미지(34)가 프로세싱되고 있을 때, 수직 스케일러들은 디지털 미분 해석기(digital differential analyzer; DDA)를 이용하여 소스 이미지 내의 현재 위치를 추적하도록 구성될 수 있다. DDA는 초기 위치 및 DDA가 이미지에 걸쳐서 각각의 스텝(step) 동안 이동하는 소스 이미지(34)의 픽셀들 또는 서브 픽셀들이 몇 개인지를 결정하는 스텝을 포함할 수 있다. 용어 "서브 픽셀"은 스텝 사이즈가 단일 픽셀보다 작을 때 또는 DDA가 소수점 이후의 소수 부분(fractional portion)을 갖는 스텝 사이즈로 인해 픽셀들 사이의 어딘가에 다다르는(land) 경우 픽셀의 일부분을 가리킨다. 스텝 사이즈는 1보다 작은 스텝은 업스케일링(upscaling)에 대응하고 1보다 큰 스텝은 다운스케일링(downscaling)에 대응하도록, 스케일링 인자를 제어한다.
소스 이미지(34)는 타일들로 분할될 수 있고, 일 실시예에서, 타일들은 16 로우의 픽셀들×128 컬럼의 픽셀들일 수 있다. 그러나, 타일 사이즈는 다른 실시예들에서 변할 수 있다. 소스 이미지(34)의 폭은 복수의 타일들이 소스 이미지(34)의 각각의 로우를 형성하는 데 이용될 수 있도록 타일의 폭보다 클 수 있다. 또한, 소스 이미지(34)의 길이는 복수의 타일들이 소스 이미지(34)의 각각의 컬럼을 형성하는 데 이용될 수 있도록 타일의 길이보다 클 수 있다.
수직 스케일러들의 세트 각각은, 소스 이미지(34)의 좌측 최상단 타일에서 시작하여 한 타일씩 소스 이미지(34)를 프로세싱할 수 있다. 일 실시예에서, 수직 스케일러들은 단일 클록 사이클에서 소스 이미지(34)의 단일 컬럼으로부터 픽셀들을 인출할 수 있다. 수직 스케일러들은 단일 컬럼으로부터 요구된 양의 픽셀들을 인출하는 데 필요한 만큼의 인출을 수행할 수 있다. 요구된 양의 픽셀들은 수직 스케일러들의 수, 각각의 수직 스케일러의 멀티-탭 다상 필터의 탭들의 수, 및 수행되는 스케일링의 타입에 기초할 수 있다. 일부 실시예들에서, 요구된 양의 픽셀들은 소스 이미지(34)의 하나 이상의 타일에 걸칠 수 있다.
타일의 컬럼으로부터 픽셀들 전부를 스케일링한 후에, 수직 스케일러들은 타일 내에서 우측으로 하나의 컬럼을 이동하고, 이 컬럼으로부터 픽셀들을 인출할 수 있다. 수직 스케일러들은 타일의 우측 에지에 도달할 때까지 우측으로 이동을 계속할 수 있다. 그 다음, 수직 스케일러들은 타일을 더 낮은 로우들로 아래로 이동하여 전체 타일이 인출될 때까지 이 프로세스를 계속할 수 있다. 일부 경우들에서, 제1 패스에서 프로세싱된 픽셀들의 수가 타일의 컬럼의 픽셀들의 수와 같거나 큰 경우, 타일에 걸쳐 단일의 패스만이 필요할 수 있다. 타일이 수직으로 스케일링된 후에, 수직 스케일러들은 막 완성된 타일이 이미지의 최하단 타일이 아닌 한, 막 완성된 타일 바로 아래의 타일로 이동할 수 있다. 이 경우, 이미지로부터 타일들의 전체 컬럼이 인출되어 수직으로 스케일링된 후에, 수직 스케일러들은 타일들의 다음 컬럼으로 우측으로 이동하고, 전체 이미지로부터 픽셀들 전부가 인출되어 수직으로 스케일링될 때까지 이 패턴을 계속할 수 있다.
각각의 수직 스케일러는 각각의 클록 사이클에서 수직으로 스케일링된 픽셀을 생성하고 그 픽셀을 대응하는 수평 스케일러에 전달하도록 구성될 수 있다. 일 실시예에서, 각각의 컬러 성분 채널에 대해 파이프라인 내에 4개의 개별 수평 스케일러들이 존재할 수 있지만, 다른 실시예들에서는, 다른 수의 수평 스케일러들이 컬러 성분 채널당 이용될 수 있다. 다양한 실시예들에서, 파이프라인(10)의 각각의 컬러 성분 채널 내에 각각의 수직 스케일러에 대응하는 수평 스케일러가 존재할 수 있다.
각각의 수평 스케일러는 대응하는 수직 스케일러로부터 수직으로 스케일링된 픽셀을 수신할 수 있고, 수직으로 스케일링된 픽셀은 시프트 레지스터들의 체인의 입력에 결합될 수 있다. 수평 스케일러의 멀티-탭 다상 필터의 각각의 탭에 대해 시프트 레지스터가 존재할 수 있다. 수평 스케일러는 수신된 픽셀들로부터 수평으로 스케일링된 픽셀들을 생성할 수 있다.
각각의 컬러 성분 채널에서, 수평 스케일러들은 수직으로 및 수평으로 스케일링된 픽셀들을 정규화 유닛(24)에 출력할 수 있다. 일 실시예에서, 정규화 유닛(24)은 0.0 내지 1.0의 범위로 수신된 픽셀 값들을 변환(convert)하도록 구성될 수 있다. 예를 들어, 일 실시예에서, 수평 스케일러로부터 출력된 10-비트 픽셀 값들은 0 내지 1023의 값들을 취할 수 있다. 이러한 실시예에서, 정규화 유닛(24)은 값의 범위를 변경하기 위해 수평 스케일러로부터 수신된 값을 1023으로 나눌 수 있다. 다른 실시예들에서, 정규화 유닛(24)은 픽셀 값들을 나타내는 데 이용되는 비트들의 수에 의존하는 다른 값들로 나눌 수 있다. 또한, 정규화 유닛(24)은 픽셀 값들 중 하나 이상으로부터 부가적 오프셋(optional offset)을 제거하도록 구성될 수 있다. 도 1에 도시된 바와 같이, 채널(14)의 수평 스케일러들은 디더(dither) 유닛(32)에 결합된다. 일 실시예에서, 채널(14)은 알파 채널을 프로세싱할 수 있고, 채널(14)의 수평 스케일러들의 출력들은 디더 유닛(32)에 전달될 수 있다.
정규화 유닛(24)은 CSC(color space conversion) 유닛(26)에 정규화된 픽셀 값들을 전달할 수 있다. CSC 유닛(26)은 2개의 상이한 컬러 공간들 사이에서 변환하도록 구성될 수 있다. 예를 들어, 일 실시예에서, 픽셀 값들은 RGB 컬러 공간에 의해 소스 이미지(34)에서 나타내어질 수 있다. 이 실시예에서, 파이프라인(10)의 출력은 YCbCr 컬러 공간에 있을 필요가 있을 수 있고, 이에 따라 CSC 유닛(26)은 RGB 컬러 공간으로부터 YCbCr 컬러 공간으로 픽셀들을 변환할 수 있다. 다른 실시예들에서는 다른 다양한 컬러 공간들이 이용될 수 있고, CSC 유닛(26)은 이들 다양한 컬러 공간들 사이에서 픽셀들을 변환하도록 구성될 수 있다.
일 실시예에서, CSC 유닛(26)은 채도 다운샘플링 유닛(chroma downsampling unit)(28)에 픽셀들을 전달할 수 있다. 채도 다운샘플링 유닛(28)은 수행되는 다운샘플링의 타입(예를 들어, 4:2:2, 4:2:0)에 기초하여 픽셀들의 채도 성분들을 다운샘플링하도록 구성될 수 있다. 예를 들어, 일 실시예에서, 목적지 이미지가 4:2:0 구조를 이용하도록 특정되면, 채도 다운샘플링 유닛(28)은 소스 이미지의 채도 픽셀 성분들의 수직 및 수평 다운샘플링을 수행할 수 있다. 일부 시나리오들에서, 채도 다운샘플링 유닛(28)은 채도 픽셀 성분들의 다운샘플링이 존재하지 않으면 통과(passthrough) 유닛일 수 있다.
채도 다운샘플링 유닛(28)은 재포맷화 유닛(reformatting unit)(30)에 결합될 수 있다. 재포맷화 유닛(30)은 정규화 유닛(24)에 의해 수행된 정규화를 리버스(reverse) 하도록 구성될 수 있다. 따라서, 픽셀 값들은 픽셀들이 정규화 유닛(24)에 의해 정규화되기 전에 이용된 이전 범위의 값들로 리턴될 수 있다. 픽셀들은 재포맷화된 후에 디더 유닛(32)을 통과할 수 있고, 디더 유닛(32)은 양자화 에러를 랜덤화(randomize)하기 위해 잡음을 삽입할 수 있다. 디더 유닛(32)으로부터의 출력은 프로세싱된 목적지 이미지일 수 있다. 다양한 실시예들에서, 프로세싱된 목적지 이미지는 프레임 버퍼에, 메모리(12)에, 디스플레이 컨트롤러에, 디스플레이에, 또는 다른 장소에 기입될 수 있다. 다른 실시예들에서, 그래픽 프로세싱 파이프라인(10)은 다른 스테이지들 또는 유닛들을 포함할 수 있고/있거나 도 1에 도시된 유닛들 중 일부는 상이한 순서로 배열될 수 있다. 파이프라인(10)은 그래픽 프로세싱 파이프라인의 일례이고, 본원에 설명된 방법들 및 메커니즘들은 상이한 타입들의 다른 그래픽 프로세싱 파이프라인들과 이용될 수 있다.
다른 실시예들은 도 1에 도시된 컴포넌트들 및/또는 다른 컴포넌트들의 서브세트들 또는 수퍼세트들을 포함한 컴포넌트들의 다른 결합들을 포함할 수 있다는 것을 주목한다. 주어진 컴포넌트의 1개의 인스턴스가 도 1에 도시될 수 있지만, 다른 실시예들은 주어진 컴포넌트의 2개 이상의 인스턴스를 포함할 수 있다. 유사하게, 이 상세한 설명 전체에 걸쳐서, 1개만이 도시되더라도 주어진 컴포넌트의 2개 이상의 인스턴스가 포함될 수 있고/있거나 복수의 인스턴스가 도시되더라도 1개의 인스턴스만을 포함하는 실시예들이 이용될 수 있다.
이제 도 2를 보면, 복수의 타일들로 분할된 소스 이미지의 일 실시예의 블록도가 도시된다. 일 실시예에서, 소스 이미지(34)는 수평 방향에서 M개의 타일 및 수직 방향에서 N개의 타일로 분할될 수 있다. 제1 컬럼의 타일들은 (0,0), (0,1)로 번호 붙여지고, 이와 같이 (0, N-1)까지 아래로 번호 붙여진다. 제1 로우의 타일들은 (0,0), (1,0)으로 번호 붙여지고, 이와 같이 (M-1, 0)까지 번호 붙여진다.
개별 타일의 사이즈는 실시예마다 상이할 수 있다. 예를 들어, 일 실시예에서, 개별 타일은 각각의 라인이 128 픽셀들을 포함하도록 16 라인×128 컬럼일 수 있다. 다른 실시예에서, 이미지 타일 라인들은 타일의 좌측 및 우측 측면들에서 인접하는 타일들로부터 부가적인 7 픽셀들을 인출함으로써 142 픽셀들로 확장될 수 있다. 소스 이미지(34)의 좌측 에지에서, 가장 좌측의 픽셀은 7회 반복될 수 있고, 소스 이미지(34)의 우측 에지에서, 가장 우측의 픽셀은 7회 반복될 수 있다. 타일의 우측 및 좌측 에지들에서 인접하는 타일들로부터 픽셀들을 인출하는 것(또는 에지 픽셀들을 반복하는 것)은 각각의 수평 스케일러의 15-탭 다상 필터를 용이하게 하도록 수행될 수 있어, 타일의 에지에서의 픽셀이 수평으로 스케일링되고 있을 때, 타일의 좌측 에지에 대해 좌측 측면에 7개의 여분의 픽셀들 및 타일의 우측 에지에 대해 우측 측면에 7개의 여분의 픽셀들이 존재하게 된다. 이것은 15-탭 다상 필터가 일관된 방식으로 에지 픽셀들을 스케일링할 수 있게 한다. 다른 실시예들에서, 수평 다상 필터에 다른 수의 탭을 갖는 경우, 다른 수의 픽셀들이 타일들의 에지들에서 인출 또는 반복될 수 있다.
일 실시예에서, 스케일러 유닛 내의 아키텍처는 복수의 수평 스케일러들에 의해 뒤따르는 복수의 수직 스케일러들로 시작할 수 있다. 일 실시예에서, 병렬로 픽셀 데이터에 대해 동작하는 4개의 수직 스케일러들이 존재할 수 있다. 다른 실시예들에서, 병렬로 입력 픽셀 데이터에 대해 동작하기 위해 다른 수의 수직 스케일러들이 이용될 수 있다. 수직 스케일러 아키텍처/블록들은 이미지의 좌측 최상단, 타일 (0, 0)에서 시작하여 타일 (0, N-1)에 도달할 때까지 제1 컬럼을 아래로 이동함으로써 타일에 대해 동작할 수 있다. 제1 컬럼에 대해 동작한 후에, 수직 스케일러들은 다음 컬럼의 최상단인 타일 (1, 0)로 이동할 수 있다. 수직 스케일러들은 제2 컬럼의 타일들에 걸쳐서 컬럼의 최하단까지 횡단(traverse)할 수 있고, 이미지의 우측 최하단 타일 (M-1, N-1)에 도달할 때까지 이 패턴을 계속할 수 있다.
이제 도 3을 참조하면, 수직 스케일러의 프런트 엔드의 일 실시예의 블록도가 도시된다. 수직 스케일러의 프런트 엔드는 소스 이미지로부터 픽셀들을 인출하기 위한 인출 유닛(36)을 포함할 수 있다. 일 실시예에서, 인출 유닛(36)은 그래픽 파이프라인의 이전 스테이지에 의해 프로세싱된 픽셀들을 저장할 수 있는 타일 버퍼들로부터 픽셀들을 인출할 수 있다. 다른 실시예에서, 소스 이미지는 메모리에 저장될 수 있고, 인출 유닛(36)은 메모리로부터 픽셀들을 인출할 수 있다. 용어 "소스 이미지"는 메모리에 저장된 이미지 또는 그래픽 프로세싱 파이프라인의 이전 스테이지(예를 들어, 회전 유닛)로부터 수신된 이미지를 가리킬 수 있다. 부가적으로, 용어 "소스 이미지"는 실제 이미지 또는 비디오 스트림으로부터의 프레임을 가리킬 수 있다. 또한, 용어들 "인출 유닛" 및 "인출 로직"은 본 개시에 걸쳐서 교환가능하게 이용될 수 있다.
일 실시예에서, 전체 스케일러 유닛 내의 수직 스케일러들 전부에 대해 단일 인출 유닛(36)이 존재할 수 있다. 다른 실시예에서, 각각의 수직 스케일러는 별개의 인출 유닛을 가질 수 있다. 인출 유닛(36)은 픽셀들의 컬럼을 인출하여 그 픽셀들의 컬럼을 멀티플렉서들(40A-E)에 제공할 수 있다. 멀티플렉서들(40A-E)은 수직 스케일러 내에 이용될 수 있는 임의 수의 멀티플렉서를 나타낸다. 일 실시예에서, 수직 스케일러 내의 다상 필터의 각각의 탭에 대해 멀티플렉서가 존재할 수 있다. 멀티플렉서들(40A-E) 각각으로부터의 출력은 다상 필터의 대응하는 탭에 전달될 수 있다.
제어 로직(38)은 멀티플렉서들(40A-E)에 대한 선택 신호들을 제어할 수 있다. 제어 로직(38)은 DDA(digital differential analyzer)를 이용하여 소스 이미지 내의 현재 픽셀 위치를 추적할 수 있다. DDA는 초기 위치, 및 DDA가 타일들의 작업 세트에 걸쳐서 각각의 패스에서 이동하는 소스 이미지의 픽셀들 또는 서브 픽셀들이 몇 개인지를 결정하는 스텝을 갖는다. 일 실시예에서, DDA 값들 및 스텝 사이즈들은 제어 로직(38)에 배치된 레지스터들에 저장될 수 있다. 스텝 사이즈는 스케일링 인자를 제어한다. 1보다 작은 스텝은 업스케일링을 일으키고, 1보다 큰 스텝은 다운스케일링을 일으킨다.
일 실시예에서, 초기 DDA 값은 4.20 2의 보수 포맷으로 24 비트 레지스터로부터 판독될 수 있다. 4.20 포맷은 20-비트 소수 부분을 갖는 4-비트 정수 부분으로서 정의될 수 있고, "."은 값의 소수 부분으로부터 정수를 분리하는 소수점을 나타낸다. 초기 DDA 값의 4.20 포맷은 소스 이미지의 픽셀 (0, 0)에 대해 -8 내지 +7의 최소 또는 최대 초기 DDA 값을 나타낼 수 있다. 소스 이미지의 입력 픽셀들에 걸쳐서 스케일러들이 반복함에 따라, 스텝 값은 현재 DDA 값에 더해질 수 있고, 다음 DDA 값을 생성한다. 일 실시예에서, 라운딩(rounding)은 DDA 값의 소수 부분의 비트 15가 '1'이면, 4-비트 계수 인덱스(coefficient index)(비트들 19:16)가 라운드업(round up)될 수 있도록 구현될 수 있다. 또한, DDA 값의 최상위 소수 비트(19)가 '1'이면, 값의 4-비트 정수 부분은 라운드 업될 수 있다. 일 실시예에서, 최대 스텝 값은 4일 수 있다. 이 실시예에서, 스텝 값은 3.20 포맷에서 23-비트 무부호 수(unsigned number)일 수 있고, 스텝 값은 2의 보수 계산에 이용하기 위한 4.20 포맷으로 제로 확장(zero-extend)될 수 있다. 다른 실시예들에서, 최대 스텝 값은 다른 값들일 수 있다.
다른 실시예에서, DDA 값은 16.20 포맷에서 36-비트, 2의 보수일 수 있다. 다른 실시예에서, DDA 값들의 다른 사이즈들 및 표현이 이용될 수 있다. 16.20 포맷이 DDA 값을 나타내는 데 이용될 때, 16-비트 정수 부분(라운딩 이후)이 소스 이미지의 픽셀 위치를 결정하는 데 이용될 수 있다. 수직 경우에서 8로 나누어지고 수평 경우에서 128로 나누어지는 이 값은 또한 어느 타일이 참조되고 있는지를 표시할 수 있다. 20-비트 소수 성분은 계수 테이블로의 인덱스로서 이용될 수 있다. 일 실시예에서, 16개의 위상에 대응하는, 계수 테이블에 저장된 16개의 값이 존재할 수 있다. 이 실시예에서, 소수 성분(라운딩 이후)의 상위 4 비트들은 탭당 16 계수들 사이에서 선택하는 데 이용될 수 있다. 다른 실시예들에서, 다른 수의 위상들이 계수 테이블에 저장될 수 있고, 소수 성분의 다른 수의 비트들이 이들 위상들 사이에서 선택하는 데 이용될 수 있다.
수직 스케일러들의 출력은 수평 스케일러들의 입력에 공급될 수 있고, 수평 스케일러들은 15-탭 다상 필터들을 이용할 수 있다. 수평 스케일러들의 탭들은 시프트 레지스터처럼 제공될 수 있다(fed like). 필터들을 고려하기 위하여, 일 실시예에서, 타일들은 타일의 좌측 측면에서 7개의 픽셀에 대해 각각의 라인의 제1 픽셀을 반복함으로써, 및 타일의 우측 측면에서 7개의 픽셀에 대해 각각의 라인의 마지막 픽셀을 반복함으로써 수평 방향으로 확장될 수 있다. 일 실시예에서, 제어 로직(38)은 소스 이미지의 에지들에서 필요한 수의 멀티플렉서들의 출력으로서 에지 픽셀을 선택하도록 구성될 수 있다.
이제 도 4를 보면, 수직 멀티-탭 다상 필터의 일 실시예의 블록도가 도시된다. 각각의 수직 스케일러는 수직 멀티-탭 다상 필터(50)를 포함할 수 있다. 일 실시예에서, 멀티-탭 다상 필터(50)는 5-탭 수직 스케일러일 수 있고, 5개의 탭 각각은 계수 테이블을 포함할 수 있다. 일 실시예에서, 각각의 계수 테이블은 16개의 엔트리를 포함할 수 있다. 픽셀 값들은 픽셀 변수 Y에 중심을 둘 수 있고, 필터(50)에 입력되는 픽셀 값들은 Y-2, Y-1, Y, Y+1, 및 Y+2를 포함할 수 있다. 각각의 픽셀은 테이블들(52-60)의 대응하는 계수 테이블로부터의 계수로 곱해질 수 있다. 그 다음, 5개의 멀티플렉서(62A-E) 및 라운딩 항(64)으로부터의 출력들은 가산기(66)에 의해 함께 더해질 수 있고, 그 다음 결과는 클램프 유닛(68)에 의해 클램핑될 수 있다. 클램프 유닛(68)으로부터의 출력은 수직으로 스케일링된 픽셀일 수 있고, 이 값은 대응하는 수평 스케일러의 입력에 전달될 수 있다. 일 실시예에서, 파이프라인 로직(pipelined logic)은 멀티플렉서들(62A-E) 및 가산기(66)를 구현하기 위해 이용될 수 있다.
일 실시예에서, 수직 스케일러들에 대한 입력 픽셀 성분들은 10.0 무부호 포맷에서 10 비트들일 수 있다. 일부 실시예들에서, 10.0 성분들은 11-비트(11.0) 2의 보수 값으로 확장될 수 있다. 일 실시예에서, (계수 테이블 내의) 계수들은 4.12 2의 보수 포맷에서 16 비트들일 수 있다. 성분 입력 및 대응하는 계수는 필터의 각각의 탭에서 함께 곱해질 수 있어, 27-비트(15.12) 2의 보수를 산출한다. 5 탭 곱셈기들의 출력들은 30-비트(18.12) 2의 보수를 생성하기 위해 (라운딩 성분과 함께) 함께 더해질 수 있다. 그 다음, 0보다 작거나 1보다 큰 픽셀 값들은 14-비트(10.4) 무부호 수로 클램핑될 수 있다. 0보다 작은 값들은 모두 0으로 클램핑될 수 있고, 1023보다 크거나 같은(≥) 값들은 1023(0x3FF0)으로 클램핑될 수 있다.
이제 도 5를 참조하면, 수평 멀티-탭 다상 필터의 일 실시예의 블록도가 도시된다. 각각의 수평 스케일러는 멀티-탭 다상 필터(90)를 포함할 수 있다. 일 실시예에서, 필터(90)는 15-탭 다상 필터일 수 있다. 다른 실시예들에서, 필터(90)는 다른 수의 탭들을 포함할 수 있다. 각각의 탭은 대응하는 계수 테이블(84-98)을 포함할 수 있다. 일 실시예에서, 각각의 계수 테이블은 16개의 계수 엔트리를 포함할 수 있다. 다른 실시예들에서, 각각의 계수 테이블은 다른 수의 계수 엔트리들을 포함할 수 있다.
도 5에 예시된 바와 같이, 픽셀 값들은 변수 X 주위에 중심을 둘 수 있고, 픽셀 값들은 X+7, ..., X+1, X, X-1, ..., X-7을 포함할 수 있다. 시프트 레지스터들(70-82)의 체인 내의 각각의 픽셀은 대응하는 계수 테이블(84-98)로부터의 계수로 곱해질 수 있다. 계수들은 계수 테이블들(84-98) 내의 프로그램 가능한 레지스터들에 저장될 수 있다. 곱셈기들(100A-I) 및 라운딩 항(102)으로부터의 출력들은 가산기(104)에서 함께 합산될 수 있고, 그 다음에 가산기(104)로부터의 결과는 클램프 유닛(106)에서 클램핑될 수 있다. 클램프 유닛(106)으로부터의 출력은 수평으로 스케일링된 픽셀일 수 있고, 이 값은 정규화 유닛(도시되지 않음)의 입력에, 다른 파이프라인 스테이지에, 또는 다른 위치에 전달될 수 있다. 일 실시예에서, 수평 스케일러는 곱셈기들(100A-I) 및 가산기(104)를 구현하기 위해 파이프라인 로직을 이용할 수 있다.
일 실시예에서, 4개의 수평 스케일러가 존재할 수 있다. 다른 실시예들에서, 다른 수의 수평 스케일러들이 이용될 수 있다. 4개의 수평 스케일러는 모두 동일한 수평 DDA 값에서 그러나 상이한 수직 픽셀들에서 작업하고 있을 수 있다. 일부 경우들에서, 수직 스케일러가 로우의 가장 좌측의 픽셀을 수평 스케일러들에 전달할 때, 수평 스케일러들은 수평 필터의 15개의 탭 전부에 픽셀을 플래시-기입(flash-write)할 수 있다. 수평 스케일러들은 또한 네거티브 초기 DDA X 값의 경우에 적절한 픽셀 레플리케이션(pixel replication)을 보장하기 위해서 컬럼 시작 픽셀 -7을 가리키도록 중심 탭을 설정할 수 있다. 다른 경우들에서, 여분의 픽셀들은 수평 스케일러들이 복수의 탭들에 대한 에지 픽셀들을 반복하지 않고 에지 픽셀들에 대해 동작할 수 있도록 인접하는 타일들로부터 인출될 수 있다.
수직 스케일러가 픽셀들을 프로세싱하여 픽셀들을 수평 스케일러에 전달할 때, 픽셀들은 탭들에 걸쳐서 시프트되어, 중심 탭의 포인터를 증가시킨다. 수평 스케일러는 중심 탭을 현재 DDA 값에 의해 요구되는 픽셀과 비교할 수 있고, 일단 값들이 매칭되면, 수평 스케일러는 출력 픽셀들을 생성하는 것을 시작할 수 있다. 수평 스케일러가 스케일링된 출력 픽셀을 생성하고 있는 임의의 주어진 클록에서, 다음 DDA 값이 또한 현재의 중심 탭 값과 매칭되면, 수평 스케일러는 새로운 픽셀에 시프트하지 않을 수 있고, 대응하는 수직 스케일러가 새로운 픽셀에 푸시(push)하지 못하게 할 수 있다.
타일들의 새로운 컬럼에 걸친 제1 패스에서, 수평 스케일러가 동일한 컬럼에 걸친 후속 패스들의 시작에서 이 값을 재로드할 필요가 있을 수 있기 때문에, 수평 스케일러는 DDA 값의 사본을 스냅(snap)할 수 있다. 일 실시예에서, 수직 스케일러들은 새로운 컬럼이 시작되는 경우 수평 스케일러들에 통지할 수 있다. 후속 컬럼들에서, 다음 DDA 값은 현재의 DDA 값 플러스 DDA 스텝 사이즈일 수 있다.
일 실시예에서, 수평 스케일러들은 하나 이상의 경계 조건들을 결정하도록 구성될 수 있다. 수평 시프트 체인의 제1 탭은 그것이 소스 이미지의 가장 우측의 픽셀을 갖는지를 검출할 수 있고, 이 조건을 검출하는 것에 응답하여, 수평 시프트 레지스터 체인은 수직 스케일러로부터 임의의 더 많은 픽셀을 수락하지 않을 수 있다. 수평 스케일러는 DDA 값의 증분을 계속할 수 있고, 스케일러는 탭 값들의 시프트를 계속할 수 있지만, 새로운 픽셀들이 시프트 레지스터 체인으로 시프트되고 있지 않기 때문에, 이미지의 가장 우측의 픽셀은 시프트 레지스터 체인의 입력에서 레플리케이트될(replicated) 수 있다. 일 실시예에서, 각각의 수평 스케일러는 또한 생성된 픽셀들의 수가 스케일링된 출력 이미지에서 기대되는 양과 같은지를 검출할 수 있다. 수평 스케일러가 이 조건을 검출할 때, 수평 스케일러는 출력 픽셀들의 생성을 중지하고 이미지의 끝에 도달하였음을 표시하는 플래그를 설정할 수 있다. 그 다음, 수평 스케일러는 수직 스케일러들에 의해 시작될 새로운 패스를 기다릴 수 있다.
일 실시예에서, 수평 스케일러에 대한 입력 픽셀 성분들은 10.4 무부호 포맷에서 14 비트들일 수 있고, 이들 성분들은 15-비트(11.4) 2의 보수 값으로 확장될 수 있다. 탭 계수들은 16-비트(4.12) 2의 보수 값일 수 있다. 입력들 및 계수들은 함께 곱해질 수 있어, 31-비트(15.16) 2의 보수 값을 산출한다. 15 탭 곱셈기들의 출력들은 라운딩 성분과 더불어, 함께 더해질 수 있어, 35-비트(19.16) 2의 보수를 생성할 수 있다. 그 다음, 픽셀 값들은 14-비트 10.4 무부호 수로 클램핑될 수 있다.
위에 설명된 예시들과, 상이한 컴포넌트들 및 값들의 상이한 포맷들 및 비트 길이들은 하나의 가능한 실시예를 표현한 것이다. 다른 실시예들에서는 수직 및 수평 스케일러들 내의 다양한 상이한 값들의 포맷들 및 비트 길이들이 변경될 수 있음을 유의한다.
이제 도 6을 보면, 하나 이상의 실시예에 따른 타일들의 작업 세트(working set of tiles)가 도시되어 있다. 일 실시예에서, 타일의 크기는 128x8 픽셀일 수 있고, 타일들의 작업 세트는 3개의 타일(타일(112, 120 및 128))을 포함할 수 있다. 일 실시예에서, 타일들의 작업 세트는 회전 유닛의 출력 스테이지에서 타일 버퍼들에 저장될 수 있다. 또한 타일 버퍼들은 스케일러 유닛의 입력 스테이지에 결합될 수 있다. 일 실시예에서, 각각의 타일들(112, 120 및 128)은 별개의 타일 버퍼 내에 저장될 수 있다. 도 6에 도시된 예는 오직 예시를 위한 것이며, 다른 실시예들에서는 타일들의 작업 세트가 다른 개수의 타일을 포함할 수 있고 타일 크기가 변경될 수 있다.
다른 실시예들에서, 작업 세트의 선택 및 크기는 각각의 수직 스케일러의 멀티탭 다상 필터 내의 탭의 개수에 의존할 수 있고, 스케일러 유닛 내의 수직 스케일러의 개수에 의존할 수 있다. 또한 타일들의 작업 세트의 선택 및 크기는 스케일러 유닛에 의해 수행되는 수직 업스케일링 또는 다운스케일링의 양에도 의존할 수 있다. 이러한 인자들은 매 클록 사이클마다 얼마나 많은 픽셀들이 인출되어 스케일러 유닛 내의 복수의 수직 스케일러에 제공되어야 하는지를 결정할 수 있다. 예를 들어, 일 실시예에서, 스케일러 유닛 내에 4개의 수직 스케일러가 존재할 수 있고, 각각의 수직 스케일러는 5탭 다상 필터를 포함할 수 있으며, 수직 스케일러들은 계수 4에 의해 다운스케일링하고 있을 수 있다. 이러한 실시예에서, 스케일러 유닛 내의 수직 스케일러들의 탭들 전부에 대한 충분한 픽셀들을 인출하기 위해서는, 단일 클록 사이클 내에서 단일 컬럼으로부터 적어도 17개의 픽셀이 인출될 필요가 있을 수 있다. 각각의 타일이 컬럼 당 8개의 픽셀을 포함하므로, 이러한 실시예에서는 적어도 3개의 타일이 인출될 필요가 있을 수 있다.
4개의 별개의 수직 스케일러에 3개의 타일로부터의 24 픽셀의 전체(entire) 수직 컬럼이 공급될 수 있다. 수직 스케일러들 각각은 5탭 다상 필터일 수 있어서, 각각의 수직 스케일러는 단일의 수직 스케일링된 픽셀을 만들어내도록 5개의 픽셀을 선택하고 이용할 수 있다. 24 픽셀의 수직 컬럼이 수직 스케일러들에 제공될 수 있고, 4개의 다상 필터의 20개의 탭 각각은 자신이 스케일링된 출력을 생성하는 데에 필요한 픽셀을 고를 수 있다. 일 실시예에서, 멀티탭 다상 필터의 각각의 탭은 픽셀들의 컬럼으로부터 선택하기 위해 멀티플렉서를 포함할 수 있다. 최상위의 수직 스케일러는 상부 픽셀들에 작용할 수 있고, 다음으로 3개의 나머지 수직 스케일러들 각각은 인접 수직 스케일러보다 한 스텝 아래에서 작업할 수 있고, 그에 의해 클록당 총 4개의 연속적인 수직 스케일링된 픽셀을 만들어낸다.
스텝 사이즈 4에 대응하는 다운스케일링 사례의 일례에서, 각각의 수직 스케일러는 클록당 4개의 픽셀을 소비할 수 있고, 클록당 하나의 수직 다운스케일링된 픽셀을 생성할 수 있다. 마찬가지로, 각각의 수평 스케일러는 4 클록마다 픽셀을 생성할 수 있어서, 소스 이미지는 클록 당 16 픽셀의 최종 속도(net rate)로 소비되며, 스케일링된 출력 이미지는 클록 당 1 픽셀의 최종 속도로 생성될 것이다.
업스케일링 사례의 일례에서, 각각의 수직 스케일러는 클록 당 0.25개의 픽셀을 소비하여, 클록 당 1개의 수직 업스케일링된 픽셀을 생성할 수 있다. 각각의 수평 스케일러는 클록 당 하나의 픽셀을 생성할 수 있어서, 입력 이미지는 클록 당 1 픽셀의 최종 속도로 소비되고, 스케일링된 출력 이미지는 클록 당 4 픽셀의 최종 속도로 생성될 수 있다.
이미지의 시작에서, 수직 스케일러들은 인출 로직이 3개의 128x8 버퍼를 픽셀들로 채우고 그들을 24 픽셀의 컬럼들로서 수직 스케일러들에게 제공하도록 기다릴 수 있다. 스케일러 제어 로직은 4개의 수직 스케일러에 대해 처음 4개의 DDA 값을 계산할 수 있다. 제1 수직 스케일러는 제1 DDA 값(DDA-Init)에서 동작을 시작할 수 있고, 제2 수직 스케일러는 (DDA-Init + 1 스텝)에서 동작을 시작할 수 있고, 제3 수직 스케일러는 (DDA-Init + 2 스텝)에서 동작을 시작할 수 있고, 제4 수직 스케일러는 (DDA-Init + 3 스텝)에서 동작을 시작할 수 있다.
인출 로직은 수직 스케일러들에 클록마다 24 픽셀의 컬럼을 제공할 수 있고, 최우측 픽셀을 접할 때까지 타일을 가로질러 수평으로 스텝핑할 수 있다. 현재의 4 DDA 스텝의 세트에 대해 동작하는 동안, 스케일러 로직은 다음의 스텝들의 세트를 검토(look at)할 수 있다. 다음 반복에서, 현재의 선두(leading) 타일 버퍼가 필요하지 않은 경우, 스케일러 로직은 그 버퍼가 더 이상 필요하지 않다는 신호를 인출 로직에 어써트(assert)할 수 있다. 이 신호가 어써트된 것에 응답하여, 인출 로직이 수직 스케일러들에 최우측 픽셀을 제공한 때, 인출 로직은 소스 이미지의 다음 타일을 인출할 수 있고, 이 타일을 작업 세트에 더할 수 있다. 이 신호가 어써트되지 않은 경우, 인출 로직은 작업 세트의 후속 수평 패스를 위해 현재의 버퍼들의 세트를 계속하여 스케일러 제어 로직에 제공할 수 있다.
이러한 프로세스는 스케일러 제어 로직이 소스 이미지의 최하단 에지를 검출할 때까지 계속될 수 있다. 스케일러 제어 로직이 검출할 다수의 상이한 경계 조건이 존재할 수 있다. 한 조건은 수직 스케일러 탭들 중 임의의 것이 소스 이미지의 최종 픽셀을 넘어서는 픽셀을 필요로 하는지일 수 있다. 이러한 조건이 검출되면, 스케일러 제어 로직은 최하단 픽셀을 그것을 필요로 하는 임의의 탭에 공급함으로써 최하단 픽셀을 복제할 수 있다. 일 실시예에서, 스케일러 제어 로직은 또한 수직 스케일링된 픽셀이 얼마나 많이 생성되었는지를 추적할 수 있다. 다음 반복에서, 모든 수직 스케일러가 스케일링된 출력 이미지의 단부를 넘어서는 픽셀들을 생성할 경우, 스케일러 제어 로직은 "현재 컬럼 완료" 신호를 인출 로직에 어써트할 수 있다.
타일들의 다음 컬럼으로 이동할 때, 수직 스케일러 DDA들은 DDA-Init 값들(4개의 별개의 수직 스케일러에 대해 +0, 1, 2 및 3 스텝)로 재설정될 수 있는데, 왜냐하면 그들이 다음 컬럼에서 다시 이미지의 최상단에 있을 것이기 때문이다. 수직 스케일러들은 수평 스케일러 제어 로직이 이미지의 우측 에지에 도달했다고 판정할 때까지 컬럼들의 프로세싱을 계속할 수 있다. 소스 이미지의 최하단 우측 타일에 도달한 때, 수직 스케일러들은 "이미지 소스 완료" 신호를 어써트할 수 있다. 일부 경우들에서, 인출 로직은 수직 및 수평 스케일러에 독립하여 이것을 판정할 수 있을 수 있다.
타일들의 작업 세트는 또한 타일들(112, 120 및 128) 좌측의 섹션들(114, 122 및 130)에 여분의 픽셀들을 각각 포함할 수 있다. 이러한 여분의 7개의 픽셀은 수평 스케일러의 멀티탭 다상 필터에 충당(accommodate)하도록 타일들의 작업 세트의 일부로서 인출되고 포함될 수 있다. 일 실시예에서, 수평 스케일러는 15탭 다상 필터를 포함할 수 있다. 그러한 실시예에서, 타일들 좌측의 여분의 7개의 픽셀이 타일들의 작업 세트 내에 포함될 수 있다. 수평 스케일러가 타일(112)의 최좌측 픽셀에 중심을 둘 때, 섹션(114) 내의 7개의 여분의 픽셀은 15탭 필터가 수평 스케일링을 정상적인 방식으로 수행하기에 충분한 픽셀들로 채워질 수 있게 한다. 다른 실시예들에서, 타일 좌측의 여분의 픽셀들이 타일들의 작업 세트에 포함되거나 인출되지 않을 때, 에지 픽셀들이 스케일러 인출 로직에 의해 반복될 수 있다. 우측 섹션들(116, 124 및 132) 내의 여분의 7개의 픽셀은 15탭 필터가 각각 타일들(112, 120 및 128)의 최우측 픽셀에 중심을 둘 때 유사한 목적으로 역할을 할 수 있다.
타일들의 작업 세트의 먼 우측에 있는 섹션들(섹션들(118, 126 및 134)을 포함함)은 그래픽 프로세싱 파이프라인의 나중의 스테이지에서의 다운스케일링을 수용하도록 타일들의 작업 세트에 포함될 수 있다. 나중의 스테이지에서 채도 다운스케일링(chroma downscaling)이 가능해지는 경우, 채도 다운스케일링 유닛이 적절하게 기능할 수 있도록, 스케일링 유닛에 의해 생성되는 각각의 타일은 각각의 로우 내에 짝수 개의 픽셀을 가질 필요가 있을 수 있다. 4:4:4로부터 4:2:2로 변환하는 것과 같은 채도 다운샘플링의 일례에서, 하나의 픽셀을 생성하기 위해 2개의 수평 픽셀이 이용된다. 그러므로, 각각의 로우는 짝수 개의 픽셀들을 가질 필요가 있을 것이다. 수행될 수 있는 스케일링의 유형은 각각의 실시예에 달라질 수 있고, 많은 경우들에서 그러한 유형의 스케일링은 홀수 개의 픽셀을 생성할 수 있다. 이러한 경우들에서, 섹션들(118, 126 및 134) 내의 여분의 픽셀들은 스케일링된 타일들의 각각의 로우가 짝수 개의 픽셀을 갖도록 여분의 픽셀을 생성하기 위해 이용될 수 있다. 다른 실시예들에서, 섹션들(118, 126 및 134)은 타일들의 작업 세트로부터 생략될 수 있다. 수직 스케일러들이 타일(112)의 픽셀들 전부를 이용하고 나면, 타일(112)은 사용중지(retire)될 수 있다. 다음으로, 인출 유닛은 다음 타일을 인출할 수 있고, 타일들의 새로운 작업 세트로서 타일들(120 및 128)과 함께 이 타일을 포함할 수 있다.
이제 도 7을 참조하면, 픽셀들의 컬럼이 수직 스케일러 유닛에 제공되는 일 실시예의 블록도가 도시되어 있다. 수직 스케일러(142)는 수직 스케일러 유닛(140)의 최상단에 있고, 다른 3개의 수직 스케일러(144-148) 각각은 인접 수직 스케일러보다 1 DDA 스텝 아래에 있을 수 있다. 컬럼 내의 픽셀들은 타일들 (X,Y), (X,Y+1) 및 (X,Y+2)에 걸쳐 있을 수 있다. 도 7에 도시된 픽셀들은 소스 이미지의 단일 컬럼으로부터 온 것이고, 그 단일 컬럼은 도 6에 도시된 것과 같은 타일들의 작업 세트로부터 온 것일 수 있다. 일 실시예에서, 타일들의 작업 세트로부터의 전체 컬럼은 24개의 픽셀을 포함할 수 있다. 다른 실시예들에서, 타일들의 작업 세트로부터의 전체 컬럼은 다른 개수의 픽셀을 포함할 수 있다. 예를 들어, 다른 실시예에서, 4개의 타일로 이루어진 작업 세트가 채택될 수 있고, 각각의 타일은 16 로우를 가질 수 있으며, 따라서 이러한 실시예를 위한 전체 컬럼의 픽셀은 64 픽셀일 수 있다.
이제 도 8을 보면, 제1 수평 패스에서의 수직 스케일러들에 의한 픽셀들의 선택의 일 실시예의 블록도가 도시되어 있다. 수직 스케일러 유닛(140)은 4개의 수직 스케일러(142-148)를 포함하고, 점선들은 각각의 수직 스케일러에 의해 어느 픽셀들이 이용될지를 나타낸다. 수직 스케일러(142)는 타일 (X, Y)의 로우 0으로부터의 픽셀에 중심을 두고, 수직 스케일러(144)는 타일 (X, Y)의 로우 2로부터의 픽셀에 중심을 두고, 수직 스케일러(146)는 타일 (X, Y)의 로우 4로부터의 픽셀에 중심을 두고, 수직 스케일러(148)는 타일 (X, Y)의 로우 6으로부터의 픽셀에 중심을 둔다. 이러한 예에서, 최초의 DDA 값은 0이고, 스텝 사이즈는 2이다. 일 실시예에서, 타일 (X, Y-1)의 최하단의 2개의 픽셀은 타일 (X, Y)의 로우 0으로부터의 픽셀에 중심을 두는 수직 스케일러(142)의 5탭 필터에 충당되도록 픽셀들의 컬럼 내에서 컬럼의 최상단에 포함될 수 있다. 다른 실시예에서, 타일 (X, Y)의 로우 0으로부터의 픽셀이 수직 스케일러(142)의 최상위 3개의 멀티플렉서에 의해 반복되고 선택될 수 있으며, 5탭 다상 필터의 최상위 3개의 탭에 의해 이용될 수 있다.
일 실시예에서, 수직 스케일러들(142-148) 중의 각각의 수직 스케일러는 5탭 다상 필터를 포함할 수 있다. 수직 스케일러들(142-148) 중 각각의 수직 스케일러도 5개의 멀티플렉서를 포함할 수 있고, 각각의 멀티플렉서는 다상 필터의 대응 탭을 위한 픽셀을 선택하도록 구성될 수 있다. 도 8에 도시된 예에서, 각각의 수직 스케일러에 의해 선택된 5개의 픽셀은 5개의 탭에 순서대로 할당될 수 있다. 예를 들어, 타일 (X, Y-1)의 로우 6으로부터의 픽셀은 수직 스케일러(142)의 다상 필터의 최상위 탭에 결합된 멀티플렉서에 의해 선택될 수 있고, 타일(X, Y-1)의 로우 7로부터의 픽셀은 다상 필터의 최상위 탭으로부터 두번째 필터에 결합된 멀티플렉서에 의해 선택될 수 있는 등이다. 다른 수직 스케일러들 각각은 마찬가지의 방식으로 그들의 다상 필터들의 탭들에 결합된 멀티플렉서들을 이용하여 픽셀들을 선택할 수 있다.
도 8에 예시된 예는 수직 다운스케일링 계수 2에 대해 픽셀들의 컬럼으로부터의 픽셀들을 선택하는 것을 보여준다. 수직 다운스케일링 계수 2는 스케일링된 이미지 내의 로우의 개수가 소스 이미지 내의 로우의 개수의 절반일 것임을 나타낸다. 이러한 예는 오직 예시를 위한 것이며, 다른 실시예들에서, 수직 스케일러들(142-148)은 상이한 픽셀들에 할당될 수 있고, 스케일러들 간의 간격은 수행 중인 다운스케일링 또는 업스케일링의 유형에 따라 달라질 수 있다.
일 실시예에서, 수직 스케일러들(142-148)은 제1 수평 패스에서 타일들의 작업 세트의 좌측 에지에서 시작하여 타일들의 작업 세트를 가로질러 우측으로 수평 이동하면서 픽셀들의 컬럼을 프로세싱할 수 있다. 타일들의 작업 세트를 가로질러 좌측 에지로부터 우측 에지까지 완전히 이동한 후, 수직 스케일러들(142-148) 각각은 DDA 스텝 사이즈의 4배만큼 타일들의 작업 세트를 내려갈 수 있다. 예를 들어, 이러한 특정한 다운스케일링 예에 대해서 DDA 스텝 사이즈는 2이고, 따라서 타일들의 작업 세트의 우측 에지에 도달한 후, 수직 스케일러 유닛(140) 내의 각각의 수직 스케일러는 픽셀들의 컬럼 내에서 8 픽셀 아래로 내려올 수 있고, 타일들의 작업 세트를 통과하는 제2 수평 패스에서는 이러한 위치들로부터의 픽셀들을 선택할 수 있다.
이제 도 9를 참조하면, 타일들의 작업 세트를 통과하는 제2 수평 패스 동안 타일들의 작업 세트로부터 픽셀들을 선택하는 것의 일 실시예의 블록도가 도시되어 있다. 제2 수평 패스에서, 수직 스케일러 유닛(140)의 각각의 수직 스케일러는 선행 위치들로부터 픽셀들의 컬럼을 4 DDA 스텝 사이즈 내려온 위치로부터 픽셀들을 선택할 수 있다. 제2 패스에 대하여, 수직 스케일러(142)는 타일 (X, Y+1)의 로우 0으로부터의 픽셀에 중심을 두고, 수직 스케일러(144)는 타일 (X, Y+1)의 로우 2로부터의 픽셀에 중심을 두고, 수직 스케일러(146)는 타일 (X, Y+1)의 로우 4로부터의 픽셀에 중심을 두고, 수직 스케일러(148)는 타일 (X, Y+1)의 로우 6로부터의 픽셀에 중심을 둔다. 타일들의 작업 세트를 통과하는 이러한 수평 패스들의 프로세스는 타일들의 컬럼 전체가 스케일링될 때까지 소스 이미지를 계속하여 내려올 수 있다. 다음으로, 프로세스는 우측에 있는 다음 타일 컬럼의 최상단으로 이동할 수 있고, 그 컬럼을 내려올 수 있고, 전체 이미지가 수직 스케일링될 때까지 그렇게 계속할 수 있다. 이러한 예는 도 8에 도시된 예의 연속이며, DDA 스텝 사이즈 2는 계수 2에 의한 수직 다운스케일링에 대응한다. 다른 실시예들은 다른 스텝 사이즈들, 다운스케일링 또는 업스케일링 인자들, 다른 개수의 인출된 픽셀들, 및 다른 개수의 수직 스케일러들을 이용할 수 있다.
이제 도 10을 보면, 수직 스케일러와 수평 스케일러 간의 접속의 일 실시예의 블록도가 도시되어 있다. 일 실시예에서, 수직 스케일러 유닛(140)의 각각의 수직 스케일러(142-148)는 수평 스케일러 유닛(150)의 대응 수평 스케일러(152-158)에 결합될 수 있다. 수직 스케일러(142)는 클록 사이클당 단일의 수직 스케일링된 픽셀을 수평 스케일러(152)에 출력할 수 있고, 수직 스케일러(144)는 클록 사이클당 단일의 수직 스케일링된 픽셀을 수평 스케일러(154)에 출력할 수 있고, 수직 스케일러(146)는 클록 사이클당 단일의 수직 스케일링된 픽셀을 수평 스케일러(156)에 출력할 수 있고, 수직 스케일러(148)는 클록 사이클당 단일의 수직 스케일링된 픽셀을 수평 스케일러(158)에 출력할 수 있다.
수평 스케일러들(152-158)은 스케일링된 픽셀들을 그래픽 파이프라인의 다음 스테이지(도시되지 않음)에 출력할 수 있다. 일 실시예에서, 다음 스테이지는 정규화 유닛일 수 있다. 다른 실시예에서, 수평 스케일러들(152-158)은 스케일링된 픽셀들을 디스플레이 유닛 또는 디스플레이 제어기에 출력할 수 있다. 또 다른 실시예에서, 수평 스케일러들(152-158)은 스케일링된 픽셀들을 메모리에 출력할 수 있다. 다른 실시예들에서는, 다른 개수의 수직 및 수평 스케일러가 있을 수 있다.
이제 도 11을 보면, 소스 이미지를 스케일링하기 위한 방법의 일 실시예가 도시되어 있다. 논의를 위하여, 본 실시예의 단계들은 순차적으로 도시되어 있다. 이하에 설명되는 방법의 다양한 실시예들에서는, 설명된 요소들 중 하나 이상이 동시에 또는 도시된 것과는 다른 순서로 수행될 수 있고, 아니면 완전히 생략될 수도 있음에 유의해야 한다. 다른 추가의 요소들도 원하는 대로 수행될 수 있다.
일 실시예에서, 소스 이미지의 복수의 픽셀이 스케일러 유닛에 의해 수신될 수 있다(블록(160)). 다양한 실시예들에서, 소스 이미지는 메모리 내에 저장되고, 타일 버퍼들 내에 저장되고, 그래픽 프로세싱 파이프라인 내의 선행 스테이지에 의해 스케일러 유닛에 전달되거나, 또는 다양한 다른 위치들 중 임의의 것에 저장되거나 다양한 다른 유닛들 중 임의의 것에 의해 전달될 수 있다. 그러면, 픽셀들의 컬럼이 복수의 수직 스케일러에 제공될 수 있다(블록(162)). 다음으로, 각각의 수직 스케일러는 DDA 값 및 DDA 스텝 사이즈에 기초하여 픽셀들의 컬럼으로부터 픽셀들을 선택할 수 있다(블록(164)). 일 실시예에서, 각각의 수직 스케일러는 5탭 다상 필터를 포함할 수 있고, 각각의 수직 스케일러는 필터의 5개의 탭을 위해 5개의 픽셀을 선택할 수 있다.
블록(164) 이후에, 선택된 픽셀들은 복수의 수직 스케일러 각각에 의해 수직 스케일링될 수 있다(블록(166)). 일 실시예에서, 4개의 수직 스케일러가 이용될 수 있지만, 다른 실시예들에서는 다른 개수의 수직 스케일러들이 이용될 수 있다. 그 다음, 수직 스케일링된 픽셀들이 복수의 수평 스케일러에 전달될 수 있다(블록(168)). 일 실시예에서, 각각의 수직 스케일러는 대응하는 수평 스케일러에 결합될 수 있다. 4개의 수직 스케일러를 갖는 실시예에서는 4개의 수평 스케일러가 존재할 수 있다.
다음으로, 수직 스케일링된 픽셀들은 복수의 수평 스케일러에 의해 수평 스케일링될 수 있다(블록(170)). 복수의 수평 스케일러 각각은 수직 스케일링된 픽셀들을 시프트 레지스터들의 체인 내로 통과시켜 시프트시킬 수 있고, 체인이 수직 스케일링된 픽셀들로 채워진 후, 수평 스케일러는 수평 스케일링된 픽셀을 생성할 수 있다. 그 다음, 수직 및 수평 스케일링된 픽셀들은 그래픽 프로세싱 파이프라인의 다음 스테이지로 전달될 수 있다(블록(172)). 일 실시예에서, 파이프라인의 다음 스테이지는 정규화 유닛일 수 있다. 대안적으로, 다른 실시예들에서, 수직 및 수평 스케일링된 픽셀들은 메모리 위치, 디스플레이 제어기 또는 디스플레이 유닛에 전달될 수 있다.
이제 도 12를 참조하면, 픽셀들을 스케일링하는 방법의 일 실시예가 도시되어 있다. 논의를 위해, 본 실시예에서의 단계들은 순차적으로 도시되어 있다. 이하에 설명되는 방법의 다양한 실시예들에서, 설명된 요소들 중 하나 이상은 동시에 또는 도시된 것과는 다른 순서로 수행될 수 있고, 아니면 완전히 생략될 수도 있음에 유의해야 한다. 다른 추가의 요소들도 원하는 대로 수행될 수 있다.
일 실시예에서, 복수의 픽셀이 하나 이상의 타일 버퍼로부터 인출될 수 있다(블록(180)). 소스 이미지는 복수의 타일로 구획화될 수 있고, 각각의 타일 버퍼는 소스 이미지로부터의 단일 타일을 저장할 수 있다. 일 실시예에서, 복수의 인출된 픽셀은 소스 이미지의 단일 컬럼 내에 위치될 수 있다. 다음으로, 복수의 인출된 픽셀은 복수의 수직 스케일러에 의해 수직 방향으로 스케일링될 수 있다(블록(182)). 복수의 수직 스케일러는 복수의 인출된 픽셀을 동시에 스케일링하도록 구성될 수 있다. 복수의 수직 스케일러 중의 각각의 수직 스케일러는 인출된 픽셀들을 스케일링하기 위한 멀티탭 다상 필터를 포함할 수 있다.
각각의 클록 사이클 동안, 하나 이상의 수직 스케일링된 픽셀이 각각의 수직 스케일러로부터 각자의 수평 스케일러에 전달될 수 있다(블록(184)). 다음으로, 복수의 수직 스케일링된 픽셀은 복수의 수평 스케일러에 의해 수평 방향으로 스케일링될 수 있다(블록(186)). 각각의 수평 스케일러는 수신된 픽셀들을 스케일링하기 위한 멀티탭 다상 필터를 포함할 수 있다. 또한, 각각의 수평 스케일러는 수신된 픽셀들 내에서 시프트하기 위해 시프트 레지스터들의 체인을 포함할 수 있고, 멀티탭 다상 필터의 각각의 탭에 대응하는 시프트 레지스터가 존재할 수 있다.
다음으로 도 13을 보면, 시스템(190)의 일 실시예의 블록도가 도시되어 있다. 도시된 바와 같이, 시스템(190)은 데스크탑 컴퓨터(200), 랩탑 컴퓨터(210), 태블릿 컴퓨터(220), 셀 폰(230) 등의 칩, 회로망, 컴포넌트들 등 또는 기타를 나타낼 수 있다. 도시된 실시예에서, 시스템(190)은 외부 메모리(192)에 결합된 집적 회로(198)의 적어도 하나의 인스턴스를 포함한다. 집적 회로(198)는 파이프라인(10)(도 1)의 하나 이상의 인스턴스 또는 파이프라인(10)의 하나 이상의 부분을 포함할 수 있다.
집적 회로(198)는 하나 이상의 주변장치(194) 및 외부 메모리(192)에 결합된다. 집적 회로(198)에 공급 전압을 공급하는 것은 물론, 메모리(192) 및/또는 주변장치들(194)에 하나 이상의 공급 전압을 공급하는 전력 공급장치(196)도 제공된다. 다양한 실시예들에서, 전력 공급장치(196)는 배터리(예를 들어, 스마트폰, 랩탑 또는 태블릿 컴퓨터 내의 재충전가능한 배터리)를 나타낼 수 있다. 일부 실시예들에서, 집적 회로(198)의 둘 이상의 인스턴스가 포함될 수 있다(또한, 둘 이상의 외부 메모리(192)도 포함될 수 있음).
메모리(192)는 DRAM(dynamic random access memory), SDRAM(synchronous DRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM(mDDR3 등과 같은 SDRAM의 모바일 버전 및/또는 LPDDR2 등과 같은 SDRAM의 저전력 버전을 포함), RDRAM(RAMBUS DRAM), 정적 RAM(SRAM) 등과 같은 임의의 유형의 메모리일 수 있다. 하나 이상의 메모리 디바이스는 회로 보드에 결합되어, SIMM(single inline memory module) 및 DIMM(dual inline memory module)과 같은 메모리 모듈들을 형성할 수 있다. 대안적으로, 디바이스들은 칩-온-칩 구성, 패키지-온-패키지 구성, 또는 멀티칩 모듈 구성으로 집적 회로(198)에 탑재될 수 있다.
주변장치들(194)은 시스템(190)의 유형에 따라 임의의 원하는 회로망을 포함할 수 있다. 예를 들어, 일 실시예에서, 주변장치들(194)은 wifi, 블루투스, 셀룰러, GPS(global positioning system) 등과 같은 다양한 유형의 무선 통신을 위한 디바이스들을 포함할 수 있다. 주변장치들(194)은 RAM 스토리지, 고체상태 스토리지 또는 디스크 스토리지를 포함하는 추가의 스토리지를 포함할 수 있다. 주변장치들(194)은 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린을 포함하는 디스플레이 스크린, 키보드 또는 다른 입력 디바이스, 마이크로폰, 스피커 등과 같은 사용자 인터페이스 디바이스들을 포함할 수 있다.
이제 도 14를 보면, (도 1의) 파이프라인(10) 내에 포함된 회로망을 표현하는 하나 이상의 데이터 구조를 포함하는 컴퓨터 판독가능한 매체(240)의 블록도의 일 실시예가 도시되어 있다. 일반적으로 말하면, 컴퓨터 판독가능한 매체(240)는 비일시적(non-transitory) 자기 또는 광학 매체(예를 들어, 디스크, CD-ROM 또는 DVD-ROM), RAM(예를 들어, SDRAM, RDRAM, SRAM 등), ROM 등과 같은 휘발성 또는 비휘발성 메모리 매체와, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달된 전기, 전자기 또는 디지털 신호와 같은 신호 또는 전송 매체를 통해 액세스가능한 매체를 포함할 수 있다.
일반적으로, 컴퓨터 판독가능한 매체(240) 상의 회로망의 데이터 구조(들)는 프로그램에 의해 판독될 수 있고, 회로망을 포함하는 하드웨어를 제조하기 위해 직접적으로 또는 간접적으로 이용될 수 있다. 예를 들어, 데이터 구조(들)는 Verilog 또는 VHDL과 같은 하이레벨 설계 언어(HDL)로 된, 하드웨어 기능성의 하나 이상의 행동 레벨(behavioral-level) 디스크립션 또는 레지스터-트랜스퍼 레벨(RTL: register-transfer level) 디스크립션을 포함할 수 있다. 디스크립션(들)은 디스크립션을 합성(synthiesize)하여 합성 라이브러리로부터의 게이트들의 리스트들을 포함하는 하나 이상의 네트리스트를 생성할 수 있는 합성 툴에 의해 판독될 수 있다. 네트리스트(들)는 회로망을 포함하는 하드웨어의 기능성을 또한 표현하는 게이트들의 세트를 포함한다. 그러면, 네트리스트(들)는 마스크들에 적용될 기하학적 형상을 기술하는 하나 이상의 데이터 세트를 생성하기 위해 배치되고 라우팅될 수 있다. 다음으로, 마스크들은 회로망에 대응하는 반도체 회로 또는 회로들을 생성하기 위해 다양한 반도체 제조 단계들에서 이용될 수 있다. 대안적으로, 컴퓨터 판독가능한 매체(240) 상의 데이터 구조(들)는 원하는 대로, 네트리스트(들)(합성 라이브러리를 가질 수도 있고 갖지 않을 수도 있음) 또는 데이터 세트(들)일 수 있다. 또 다른 대안에서, 데이터 구조는 계통적 프로그램(schematic program)의 출력, 또는 그로부터 도출된 네트리스트(들) 또는 데이터세트(들)를 포함할 수 있다.
컴퓨터 판독가능한 매체(240)는 파이프라인(10)의 표현을 포함하지만, 다른 실시예들은 파이프라인(10)(예를 들어, 수직 스케일러, 수평 스케일러 등)의 임의의 부분 또는 부분들의 조합의 표현을 포함할 수 있다.
상기 설명된 실시예들은 한정적이지 않은 구현예들에 지나지 않음을 강조하고자 한다. 본 기술분야의 통상의 기술자들에게 충분히 이해되면, 다수의 변형 및 변경들이 명백해질 것이다. 이하의 청구항들을 그러한 변형들 및 변경들 전부를 포괄하는 것으로 해석되도록 의도된 것이다.

Claims (26)

  1. 복수의 수직 스케일러 - 상기 복수의 수직 스케일러에는 픽셀들이 병렬로 제공되고, 각각의 수직 스케일러는 상기 픽셀들 중에서 수직 스케일링할 픽셀들을 선택하고 수직 스케일링된 픽셀을 생성하도록 구성됨 - ;
    복수의 수평 스케일러 - 각각의 수평 스케일러는 각자의 수직 스케일러의 출력에 결합되고, 상기 각자의 수직 스케일러로부터 수신된 픽셀들에 대해 수평 스케일링을 수행하도록 구성됨 - ; 및
    소스 이미지를 상기 복수의 수직 스케일러에 전달되기 전에 회전시키도록 구성되는 회전 유닛
    을 포함하는 장치.
  2. 제1항에 있어서,
    상기 복수의 수평 스케일러 중의 각각의 수평 스케일러는 각자의 수직 스케일러로부터 수신된 수직 스케일링된 픽셀들을 저장하기 위한 시프트 레지스터들의 체인을 포함하는 장치.
  3. 제1항에 있어서,
    인출(fetch) 유닛을 더 포함하고, 상기 인출 유닛은,
    하나 이상의 타일 버퍼로부터 픽셀들의 컬럼을 인출하고 - 각각의 타일 버퍼는 소스 이미지의 주어진 타일을 저장함 -;
    상기 픽셀들의 컬럼을 상기 복수의 수직 스케일러에 전달하도록
    구성되는 장치.
  4. 제1항에 있어서,
    상기 픽셀들은 소스 이미지의 단일 컬럼 내에 위치되어 있고, 상기 단일 컬럼은 상기 소스 이미지의 하나 이상의 타일에 걸쳐 있는(span) 장치.
  5. 제4항에 있어서,
    상기 소스 이미지의 하나 이상의 타일은 하나 이상의 타일 버퍼 내에 저장되는 장치.
  6. 제4항에 있어서,
    각각의 수직 스케일러는 또한, 소스 이미지를 스케일링하기 위해, DDA(digital differential analyzer) 값 및 DDA 스텝 사이즈를 이용하도록 구성되는 장치.
  7. 제6항에 있어서,
    상기 복수의 수직 스케일러는 각각의 픽셀들의 컬럼의 상이한 수직 부분을 프로세싱하도록 수직 컬럼 내에 배열되고, 각각의 수직 스케일러는 인접 수직 스케일러로부터 단일 DDA 스텝만큼 떨어져 있는 장치.
  8. 삭제
  9. 제1항에 있어서,
    상기 복수의 수직 및 수평 스케일러 각각은 픽셀들을 스케일링하기 위한 멀티탭 다상 필터(multi-tap polyphase filter)를 포함하고, 상기 멀티탭 다상 필터의 각각의 탭은 계수 테이블을 포함하며, 상기 계수 테이블은 복수의 프로그래밍가능한 레지스터를 포함하는 장치.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 하나 이상의 타일 버퍼로부터 복수의 픽셀을 인출하는 단계;
    복수의 수직 스케일러를 이용하여, 복수의 인출된 픽셀을 수직 방향으로 스케일링하는 단계;
    각각의 클록 사이클 동안 하나 이상의 수직 스케일링된 픽셀을 각각의 수직 스케일러로부터 각자의 수평 스케일러에 전달하는 단계;
    복수의 수평 스케일러를 이용하여, 복수의 수직 스케일링된 픽셀을 수평 방향으로 스케일링하는 단계; 및
    소스 이미지를 상기 복수의 수직 스케일러에 전달되기 전에 회전시키는 단계
    를 포함하는 방법.
  21. 제20항에 있어서,
    상기 복수의 인출된 픽셀은 소스 이미지의 단일 컬럼 내에 위치되는 방법.
  22. 제20항에 있어서,
    상기 복수의 수직 스케일러는 상기 복수의 인출된 픽셀을 동시에 스케일링하도록 구성되는 방법.
  23. 제20항에 있어서,
    각각의 수직 스케일러 및 각각의 수평 스케일러는 멀티탭 다상 필터를 포함하는 방법.
  24. 제23항에 있어서,
    상기 복수의 수평 스케일러 중의 각각의 수평 스케일러는 체인으로 접속된 복수의 시프트 레지스터를 포함하고, 상기 체인은 상기 멀티탭 다상 필터의 각각의 탭에 대응하는 시프트 레지스터를 포함하는 방법.
  25. 하나 이상의 타일 버퍼로부터 복수의 픽셀을 인출하는 단계;
    복수의 수직 스케일러를 이용하여, 상기 인출된 복수의 픽셀을 수직 방향으로 스케일링하는 단계;
    각각의 클록 사이클 동안 하나 이상의 수직 스케일링된 픽셀을 각각의 수직 스케일러로부터 각자의 수평 스케일러에 전달하는 단계; 및
    복수의 수평 스케일러를 이용하여, 복수의 수직 스케일링된 픽셀을 수평 방향으로 스케일링하는 단계를 포함하고,
    각각의 수직 스케일러 및 각각의 수평 스케일러는 멀티탭 다상 필터를 포함하는, 방법.
  26. 복수의 수직 스케일러 - 상기 복수의 수직 스케일러에는 픽셀들이 병렬로 제공되고, 각각의 수직 스케일러는 상기 픽셀들 중에서 수직 스케일링할 픽셀들을 선택하고 수직 스케일링된 픽셀을 생성하도록 구성됨 - ; 및
    복수의 수평 스케일러 - 각각의 수평 스케일러는 각자의 수직 스케일러의 출력에 결합되고, 상기 각자의 수직 스케일러로부터 수신된 픽셀들에 대해 수평 스케일링을 수행하도록 구성됨 - 를 포함하고,
    상기 복수의 수직 스케일러 및 상기 복수의 수평 스케일러 각각은 픽셀들을 스케일링하기 위한 멀티탭 다상 필터를 포함하는, 장치.
KR20130020149A 2012-02-24 2013-02-25 병렬 스케일러 프로세싱 KR101494957B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/404,850 2012-02-24
US13/404,850 US8687922B2 (en) 2012-02-24 2012-02-24 Parallel scaler processing

Publications (2)

Publication Number Publication Date
KR20130097689A KR20130097689A (ko) 2013-09-03
KR101494957B1 true KR101494957B1 (ko) 2015-02-23

Family

ID=47722182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130020149A KR101494957B1 (ko) 2012-02-24 2013-02-25 병렬 스케일러 프로세싱

Country Status (7)

Country Link
US (1) US8687922B2 (ko)
EP (1) EP2631869B1 (ko)
JP (1) JP5991722B2 (ko)
KR (1) KR101494957B1 (ko)
CN (1) CN103473735B (ko)
TW (1) TWI489443B (ko)
WO (1) WO2013126330A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI447828B (zh) * 2011-06-22 2014-08-01 Inotera Memories Inc 製程原始資料的壓縮方法及壓縮系統
KR102023501B1 (ko) * 2013-10-02 2019-09-20 삼성전자주식회사 설정가능한 이미지 처리 파이프라인을 포함하는 시스템 온 칩과, 상기 시스템 온 칩을 포함하는 시스템
KR102114233B1 (ko) * 2013-12-13 2020-05-25 삼성전자 주식회사 영상 처리 장치
KR102117075B1 (ko) 2014-03-11 2020-05-29 삼성전자주식회사 재구성 가능한 이미지 스케일링 회로
KR102248789B1 (ko) * 2014-10-07 2021-05-06 삼성전자 주식회사 이미지 해상도에 따라 리소스를 공유할 수 있는 애플리케이션 프로세서와 이를 포함하는 장치들
KR102254676B1 (ko) * 2014-10-31 2021-05-21 삼성전자주식회사 이미지를 실시간으로 처리할 수 있는 이미지 처리 회로와 이를 포함하는 장치들
US20160132284A1 (en) * 2014-11-07 2016-05-12 Qualcomm Incorporated Systems and methods for performing display mirroring
KR102317789B1 (ko) 2015-02-12 2021-10-26 삼성전자주식회사 하나의 이미지로부터 다양한 해상도를 갖는 이미지들을 생성할 수 있는 스케일러 회로와 이를 포함하는 장치들
US9679356B2 (en) * 2015-03-19 2017-06-13 Xerox Corporation Vectorized two stage tile-based scaling
CN104767910A (zh) * 2015-04-27 2015-07-08 京东方科技集团股份有限公司 视频图像拼接系统及方法
CN105243966A (zh) * 2015-11-03 2016-01-13 京东方科技集团股份有限公司 一种图像显示装置及图像显示方法
US10755380B2 (en) * 2015-11-11 2020-08-25 Texas Instruments Incorporated Down scaling images in a computer vision system
GB2551745B (en) * 2016-06-29 2020-04-08 Advanced Risc Mach Ltd Data processing systems
US11386644B2 (en) * 2017-10-17 2022-07-12 Xilinx, Inc. Image preprocessing for generalized image processing
KR102459652B1 (ko) * 2018-03-08 2022-10-28 엘지전자 주식회사 표시장치와 그 영상 처리 방법
US20190139184A1 (en) * 2018-08-01 2019-05-09 Intel Corporation Scalable media architecture for video processing or coding
US11042735B2 (en) * 2018-09-25 2021-06-22 Drägerwerk AG & Co. KGaA System and method for verifying whether text will be properly rendered in a target area of a user interface and/or a graphics file
US10972744B2 (en) 2018-11-12 2021-04-06 Analog Devices International Unlimited Company Image scaling
CN115150566A (zh) * 2022-09-01 2022-10-04 杭州雄迈集成电路技术股份有限公司 一种多路多分辨率视频实时输出方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724948B1 (en) * 1999-12-27 2004-04-20 Intel Corporation Scaling images for display
US20090256859A1 (en) * 2008-04-09 2009-10-15 Harris Corporation Video multiviewer system with switcher and distributed scaling and related methods

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384912A (en) 1987-10-30 1995-01-24 New Microtime Inc. Real time video image processing system
US5204916A (en) 1991-08-06 1993-04-20 Eastman Kodak Company Tile-oriented technique for collectively performing image rotation, scaling and digital halftone screening
US5353056A (en) * 1992-10-27 1994-10-04 Panasonic Technologies, Inc. System and method for modifying aberration and registration of images
US5574572A (en) * 1994-09-07 1996-11-12 Harris Corporation Video scaling method and device
JPH10133643A (ja) * 1996-10-29 1998-05-22 Shimadzu Corp デジタル画像処理装置
JPH10134176A (ja) * 1996-10-29 1998-05-22 Sony Corp 画像信号処理方法及び装置
JPH10304184A (ja) * 1997-05-02 1998-11-13 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
US6903733B1 (en) * 1997-11-24 2005-06-07 Pixelworks, Inc. Ultra-high bandwidth multi-port memory system for image scaling applications
JP3763394B2 (ja) * 2000-10-31 2006-04-05 株式会社デジタル 画像縮小方法およびその装置
EP1304650B1 (en) * 2001-10-10 2009-12-16 Texas Instruments Incorporated Image scaling system and method
US6924948B2 (en) * 2003-08-21 2005-08-02 Arc Design, Inc. Multifocal lens system for digital cameras
FI20045157A (fi) * 2004-04-29 2005-10-30 Nokia Corp Menetelmä ja laitteisto digitaalisen matriisikuvan alaspäin skaalaamiseksi
TWI267031B (en) * 2004-12-14 2006-11-21 Vxis Technology Corp Image scaling controller and method thereof
US20070041662A1 (en) * 2005-08-22 2007-02-22 Eric Jeffrey Efficient scaling of image data
US7477323B2 (en) * 2005-11-07 2009-01-13 Kolorific, Inc. Method and system for digital image magnification and reduction
TWI370439B (en) * 2007-05-18 2012-08-11 Au Optronics Corp Video scaling apparatus and method of the same
US8195008B2 (en) * 2007-06-28 2012-06-05 Broadcom Corporation Method and system for processing video data in a multipixel memory to memory compositor
CN100570701C (zh) * 2007-11-16 2009-12-16 炬力集成电路设计有限公司 一种图像缩放装置、方法及图像显示设备
US7852531B2 (en) * 2007-12-12 2010-12-14 Xerox Corporation Digital correction for alignment of a plurality of color channels of a color image forming device
TWI351873B (en) * 2007-12-13 2011-11-01 Magima Digital Information Co Ltd A picture scaling device and a picture scaling met
US8121434B2 (en) * 2008-06-13 2012-02-21 Microsoft Corporation Multi-pass image resampling
US8593483B2 (en) * 2009-10-20 2013-11-26 Apple Inc. Temporal filtering techniques for image signal processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724948B1 (en) * 1999-12-27 2004-04-20 Intel Corporation Scaling images for display
US20090256859A1 (en) * 2008-04-09 2009-10-15 Harris Corporation Video multiviewer system with switcher and distributed scaling and related methods

Also Published As

Publication number Publication date
WO2013126330A1 (en) 2013-08-29
US20130223764A1 (en) 2013-08-29
KR20130097689A (ko) 2013-09-03
CN103473735A (zh) 2013-12-25
TW201342358A (zh) 2013-10-16
US8687922B2 (en) 2014-04-01
TWI489443B (zh) 2015-06-21
CN103473735B (zh) 2016-04-20
JP5991722B2 (ja) 2016-09-14
EP2631869B1 (en) 2017-12-20
JP2015513837A (ja) 2015-05-14
EP2631869A1 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
KR101494957B1 (ko) 병렬 스케일러 프로세싱
KR101977453B1 (ko) 분할된 디스플레이를 구동하는 다수의 디스플레이 파이프라인들
US20200320161A1 (en) Interpolating a Sample Position Value by Interpolating Surrounding Interpolated Positions
CN114402289A (zh) 多模式运算电路
EP3093757B1 (en) Multi-dimensional sliding window operation for a vector processor
US20230196500A1 (en) Image data storage method, image data processing method and system, and related apparatus
US9191551B2 (en) Pixel normalization
US9123278B2 (en) Performing inline chroma downsampling with reduced power consumption
WO2012170274A1 (en) Inline scaling unit for mirror mode
US5905661A (en) Method for handling an overflow condition in a processor
US8655063B2 (en) Decoding system and method operable on encoded texture element blocks
CN100401348C (zh) 显示装置及其控制电路
US11094038B1 (en) Variable scaling ratio systems and methods
CN111354049A (zh) Astc内插
US9558536B2 (en) Blur downscale
US9691349B2 (en) Source pixel component passthrough
JP2009098692A (ja) 画像のサイズ変更方法、サイズ変更器、画像処理装置および電子機器
US10169040B2 (en) System and method for sample rate conversion
US9472169B2 (en) Coordinate based QoS escalation
US20230368496A1 (en) Super resolution device and method
EP4425375A1 (en) Inference device, calculation device, setting method, calculation method, and calculation program
US20210272232A1 (en) Filter Independent L1 Mapping Of Convolution Data Into General Purpose Register
CN111355862A (zh) 自适应可缩放纹理压缩插值
CN118261784A (zh) 一种固定缩放的优化实现方法
TW202020600A (zh) 可減少多工器數量的查找表配置方法及利用其之資訊處理裝置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 6