TWI775805B - 可組態及可程式化影像處理器單元、由其執行之方法及計算系統 - Google Patents

可組態及可程式化影像處理器單元、由其執行之方法及計算系統 Download PDF

Info

Publication number
TWI775805B
TWI775805B TW107103419A TW107103419A TWI775805B TW I775805 B TWI775805 B TW I775805B TW 107103419 A TW107103419 A TW 107103419A TW 107103419 A TW107103419 A TW 107103419A TW I775805 B TWI775805 B TW I775805B
Authority
TW
Taiwan
Prior art keywords
image
image processor
execution
data
processor
Prior art date
Application number
TW107103419A
Other languages
English (en)
Other versions
TW201901607A (zh
Inventor
法比茲歐 巴索
德華 章
丹尼爾 費雷德里克 芬徹斯坦
提摩西 奈特
威廉 R 馬克
阿爾伯特 邁克斯納
沙利亞 拉比
傑森 鲁珀特 雷德格雷夫
真澄 蘭德斯
歐佛爾 沙強姆
唐納 史塔克
米雪兒 托馬斯科
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 TW201901607A publication Critical patent/TW201901607A/zh
Application granted granted Critical
Publication of TWI775805B publication Critical patent/TWI775805B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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/4015Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/95Computational photography systems, e.g. light-field imaging systems
    • H04N23/951Computational photography systems, e.g. light-field imaging systems by using two or more images to influence resolution, frame rate or aspect ratio

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Psychiatry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Social Psychology (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Logic Circuits (AREA)

Abstract

本發明描述一種影像處理器單元。該影像處理器單元包含用以接收至少一個輸入影像之複數個輸入。該影像處理器單元包含用以提供至少一個輸出影像之複數個輸出。該影像處理器單元包含耦合至該複數個輸入及該複數個輸出之一網路。該網路用以將該等輸入之至少一者耦合至該等輸出之至少一者。該影像處理器單元包含耦合至該網路之一影像處理器電路。該網路用以將在該等輸入之一者處接收之一輸入影像選路傳送至該影像處理器電路。該影像處理器電路用以執行影像信號處理程式碼以自該輸入影像產生一經處理輸出影像。該網路用以將該經處理輸出影像選路傳送至該等輸出之至少一者。

Description

可組態及可程式化影像處理器單元、由其執行之方法及計算系統
本發明領域大體上係關於運算科學且更特定言之係關於一種可組態及可程式化影像處理器單元。
影像處理通常涉及組織成一陣列之像素值之處理。此處,一空間組織二維陣列擷取影像之二維性質(額外維度可包含時間(例如二維影像之一序列)、深度(例如一卷積神經網路中之一中間層之深度)及資料類型(例如色彩))。在一典型案例中,藉由已產生一靜態影像或一圖框序列以擷取運動影像之一相機提供陣列像素值。傳統影像處理器通常落在兩個極端情況之任一側上。
第一種極端情況將影像處理任務作為在一通用處理器或類似通用處理器(例如具有向量指令增強之一通用處理器)上執行之軟體程式執行。儘管第一種極端情況通常提供一高度多樣化應用軟體開發平台,但其使用與相關聯額外耗用(例如,指令提取及解碼、晶片上及晶片外資料之處理、臆測執行)組合之更大細粒度資料結構最終導致在程式碼之執行期間每資料單位消耗更大量的能量。
第二種相對極端情況將固定功能硬接線電路應用至大得多的資料區 塊。直接應用至客製設計電路之較大(相對於較小細粒度)資料區塊之使用大幅減少每資料單位之功率消耗。然而,客製設計固定功能電路之使用通常導致處理器能夠執行之有限一組任務。因而,在第二種極端情況中缺乏(與第一種極端情況相關聯之)廣泛多樣化程式化環境。
提供高度多樣化應用軟體開發機會連同每資料單位之改良功率效率兩者之一技術平台仍為一期望但缺失之解決方案。
本發明描述一種影像處理器單元。該影像處理器單元包含接收至少一個輸入影像之複數個輸入。該影像處理器單元包含提供至少一個輸出影像之複數個輸出。該影像處理器單元包含耦合至該複數個輸入及該複數個輸出之一網路。該網路用以將該等輸入之至少一者耦合至該等輸出之至少一者。該影像處理器單元包含耦合至該網路之一影像處理器電路。該網路用以將在該等輸入之一者處接收之一輸入影像選路傳送至該影像處理器電路。該影像處理器電路用以執行影像信號處理程式碼以自該輸入影像產生一經處理輸出影像。該網路用以將該經處理輸出影像選路傳送至該等輸出之至少一者。
100:典型設計
101:大規模系統單晶片/應用處理器
102:處理核心
102_1至102_N:通用處理核心
103:主記憶體控制器
104:顯示介面
105:周邊裝置或「I/O」控制集線器
106:內部網路
107:主記憶體
108:顯示器
109:相機/嵌入式影像信號處理器
109_1:相機
109_2:相機
110:影像信號處理器
110_1:影像信號處理器
110_2:影像信號處理器
111:相機驅動器軟體
112:應用軟體程式/作業系統
114:原始影像資料
115:控制信號
116:統計資料產生
117:控制信號
118:較高階軟體
200:影像處理器架構/處理器
201:執行道陣列
202:二維移位暫存器陣列
203:邊角執行道
204:邊角移位暫存器位置
205:邊角執行道
206:邊角移位暫存器位置
301:應用處理器
302:通用處理核心
309:相機
310:應用處理器
320:影像處理器
321:周圍邏輯
322:離散影像處理器晶片/影像處理器單元
323:虛線邊界
330:主記憶體控制器
331:主記憶體
401:應用處理器
402:通用中央處理單元(CPU)核心
407:主記憶體
409_1至409_3:相機
410_1:嵌入式影像信號處理器
410_2:嵌入式影像信號處理器
411:相機驅動器軟體
411_1:驅動器軟體
411_2:驅動器軟體
412:應用軟體
420:影像處理器
421:周圍邏輯
422:影像處理器晶片
431_1至431-3:輸入
432_1:輸出
432_2:輸出
433:周邊I/O介面
434:PCIe介面/周邊介面
435:嵌入式通用處理器
436:韌體/驅動器軟體
451:原始資料
433:周邊I/O介面
520:影像處理器
522:影像處理器晶片
531_1至531_3:原始相機影像輸入
532_1:輸出
532_2:輸出
533:周邊介面
535:嵌入式處理器
537_1:輸出多工器
537_2:輸出多工器
538:記憶體控制器
540:局部記憶體
545_1:線
545_2:線
601:步驟
602:步驟
603:步驟
604:步驟
701_1至701_M:線緩衝器單元
702_1至702_N:模板處理器單元
703_1至703_N:表單產生器單元
704:網路
705:大型I/O單元
801:影像資料
802:重疊模板
803:陰影區域/線群組
804:初始表單/第一表單
805:新表單/第二表單
900:模板處理器架構
901:資料運算單元
902:純量處理器
903:記憶體
904:I/O單元
905:執行道陣列
906:二維移位陣列結構
907:隨機存取記憶體
909:程式控制器
951:純量指令
952:ALU指令
953:記憶體指令
954:欄位
1001:資料運算組件
1005:執行道陣列
1006:二維移位暫存器陣列結構
1007:隨機存取記憶體
1009:光暈區域
1105:圖框
1107:第一陣列
1110:執行道
1111:執行道位置
1201:執行道
1202:暫存器檔案
1203:輸出多工器
1204:輸入多工器
1300:系統
1301:中央處理單元
1302:系統記憶體
1303:顯示器
1304:局部有線點對點鏈路介面
1305:網路I/O功能
1306:無線區域網路介面
1307:無線點對點鏈路介面
1308:全球定位系統介面
1309_1至1309_N:感測器
1310:相機
1311:電池
1312:功率管理控制單元
1313:揚聲器及麥克風
1314:音訊編碼器/解碼器
1315_1至1315_N:通用處理核心
1316:圖形處理單元/GPU
1317:記憶體管理功能
1318:I/O控制功能
1319:影像處理器單元
1350:應用處理器/多核心處理器
以下描述及隨附圖式用於繪示本發明之實施例。在圖式中:圖1a、圖1b及圖1c展示一先前技術運算系統及其影像信號處理功能之整合;圖2展示用於一新影像處理器架構之一執行道陣列及二維移位暫存器陣列之一描繪;圖3展示將一影像處理器單元整合至一系統中之一高階視圖; 圖4a、圖4b、圖4c、圖4d、圖4e、圖4f、圖4g及圖4h展示影像處理器單元之不同組態;圖5展示一影像處理器單元之一實施例;圖6展示由一影像處理器單元執行之一方法;圖7展示一影像處理器硬體架構之一實施例;圖8a、圖8b、圖8c、圖8d及圖8e描繪將影像資料剖析成一線群組、將一線群組剖析成一表單及運用重疊模板對一表單執行之操作;圖9a展示一模板處理器之一實施例;圖9b展示模板處理器之一指令字組之一實施例;圖10展示一模板處理器內之一資料運算單元之一實施例;圖11a、圖11b、圖11c、圖11d、圖11e、圖11f、圖11g、圖11h、圖11i、圖11j及圖11k描繪將二維移位陣列及一執行道陣列用於運用重疊模板判定一對相鄰輸出像素值之一實例;圖12展示用於一整合執行道陣列及二維移位陣列之一單元胞之一實施例;圖13展示一例示性運算系統。
1.0 當前影像信號處理器系統整合
圖1a展示用於諸如一智慧型電話之一行動運算系統之一典型設計100。如在圖1中可觀察到,運算系統包含含有許多基礎運算系統元件之一大規模系統單晶片(SOC)101(亦稱為一應用處理器)。此等包含一或多個通用處理核心102_1至102_N、一主記憶體控制器103、一顯示介面104、一周邊裝置或「I/O」控制集線器105及一內部網路106。主記憶體 控制器103介接至一主記憶體107(亦稱為系統記憶體)。顯示介面104提供輸出資料以顯示於諸如一平板觸控螢幕之一顯示器108上。
內部網路106提供例如應用處理器之組件102至105之各者之間的資料傳送。例如,內部網路106允許透過主記憶體控制器103將由處理核心102執行之軟體之程式碼指令及資料自主記憶體107傳送至處理核心102。同樣地,可透過主記憶體控制器103將由執行軟體而產生之任何資料自處理核心102傳送至主記憶體107。此外,待顯示於顯示器108上之資料可例如藉由主記憶體控制器103自主記憶體107讀取且轉發至顯示介面104。
其他基礎資料移動包含透過周邊控制集線器105將在一周邊裝置處產生或接收之資料傳送至主記憶體控制器103以用於寫入至主記憶體107中或傳送至處理核心102以用於藉由系統軟體處理或傳送至顯示介面104以用於呈現於顯示器108上。儘管未在圖1中描繪,但一或多個網路介面(諸如一蜂巢式網路介面、一無線區域網路介面(例如一WiFi介面)或點對點鏈路介面(例如一藍芽介面))可經耦合至周邊控制集線器105,使得可根據上文描述之資料流之任一者引導自運算系統所連接之一網路/鏈路接收之資料。
應注意,未必需要周邊控制集線器105。即,可在不具有一中間周邊控制集線器之情況下將一些或所有周邊裝置耦合至網路106。為易於論述,本論述之其餘部分將假定存在一周邊控制集線器105。內部網路106可由各種網路拓撲(例如環、縱橫制交換機、多點式匯流排)之一或多個互連網路組成。
如在圖1a中描繪,各分別耦合至應用處理器101上之其自身影像信號處理器110_1、110_2之一對相機109_1、109_2構成系統之周邊裝置或I/O 複合體之部分。此處,例如,一第一相機109_1可為駐留於一智慧型電話之一前表面上之一前側相機,且一第二相機109_2可為駐留於智慧型電話之一後表面上之一後側相機。相機109_1、109_2通常產生紅色(R)、綠色(G)及藍色(B)像素之「原始」(RAW)未處理或經適度處理之光柵掃描串流。在更先進系統中,相機亦可提供紅外像素串流及/或深度資訊(例如飛行時間)像素或其他信號串流。串流通常經格式化,使得可自其等辨別個別影像圖框。接著藉由影像信號處理器110_1、110_2處理原始影像。
由影像信號處理器110_1、110_2執行之典型程序包含偏移校正、雜訊減少、自動白平衡、去馬賽克、銳化、透鏡陰影校正及色彩校正。其他程序可包含各種重定大小操作,諸如用以增大或減小影像尺寸之升頻轉換或降頻轉換或用以減小影像資料佔用面積/大小之壓縮。通常,影像信號處理器110_1、110_2將影像處理為一非原始行業標準格式,諸如JPEG或TIFF(用於靜態圖)或MPEG(用於視訊影像串流)。
圖1b展示諸如圖1a之運算系統之一運算系統內之典型影像資料流。如在圖1b中可觀察到(且如上文論述),原始影像資料114由一相機109產生且轉發至駐留於應用處理器101上之一影像信號處理器110。影像信號處理器110接著產生例如一行業標準格式化靜態影像或視訊串流。
影像信號處理器110亦產生其處理之影像之各種統計資料(例如任何/所有其輸入及/或輸出串流/影像之平均像素值、最大像素值、最小像素值等)。藉由在運算系統之CPU核心102之一或多者上執行之相機驅動器軟體111處理影像及統計資料兩者。在處理影像及統計資料之後,驅動器軟體產生控制信號115,該等控制信號115經傳送回至影像信號處理器110(例如以控制影像信號處理器之自動白平衡、透鏡陰影校正或色彩校正程序) 及相機109(例如以控制相機之自動聚焦機構或自動曝光設定)。
來自影像信號處理器110之影像亦通常傳送至在處理核心102上執行之一應用軟體程式112(例如一相機應用程式、一視訊聊天應用程式等)及/或傳送至系統顯示器。應注意,影像及統計資料兩者在由影像信號處理器產生之後,通常儲存於主記憶體107中。隨後,藉由在CPU核心102上執行之驅動器/應用程式自主記憶體107讀取影像及統計資料以供進一步處理/使用及/或自主記憶體107讀取且傳送至顯示器以用於呈現於顯示器上。
參考回圖1a,影像處理器110_1、110_2通常對原始影像資料之模板進行操作。此處,如在此項技術中已知,一模板係用作一基本資料單位之影像表面區域之一圖塊(亦稱為一「區塊」)。例如,由影像信號處理器110_1產生之一輸出影像中之一特定「輸出」像素位置之一新值可經計算為圍繞該特定像素位置之原始輸入影像資料之一區域中之像素值之一平均值。例如,若模板具有3像素×3像素之一尺寸,則特定輸出像素位置可對應於原始輸入影像資料之一3×3像素陣列之中間像素且可對3×3原始像素陣列內之所有九個像素計算平均值。此處,可期望在模板內執行不同模板大小及/或不同功能。因而,理想地,影像處理器110_1、110_2能夠容易地提供其等執行之功能之使用者定義及/或可程式化性之某形式。
不幸地,影像信號處理器110_1、110_2並不非常適於執行使用者定義或可程式化操作。即,為在一廣泛範圍之應用可能性內可接受地執行其等影像處理改良,影像信號處理器110_1、110_2可經容易地組態,使得其等可在各種模板大小及成像條件等內執行各種處理演算法。另外,尤其在諸如智慧型電話之電池供電裝置之情況中,演算法之處理應消耗較小功率而非較大功率。然而,如在背景中論述及特定言之關於對模板執行之操 作,影像信號處理器110_1、110_2係類似硬接線ASIC且因此消耗較小功率但並非非常多樣化或係更傳統類似處理器且儘管更多樣化但消耗過大功率。
參考圖1c,在又其他資料流案例中,應用處理器101上之嵌入式影像信號處理器110較大程度上或完全繞開(未用於)影像處理目的且主要僅用於統計資料產生116。此處,來自相機109之原始影像資料114經寫入至主記憶體以用於藉由在(若干)CPU核心102上執行之程式碼進行後續處理。在(若干)CPU核心102上執行之相機驅動器軟體111產生控制信號117以用於例如自原始影像資料之自動白平衡、透鏡校正及色彩校正。例如在CPU核心102之一或多者上執行之作業系統113內且取代嵌入式影像信號處理器110之較高階軟體118執行自原始資料之實際影像處理以產生例如JPEG/MPEG影像(例如較高階軟體118執行偏移校正、雜訊減少、自動白平衡、去馬賽克、銳化、透鏡陰影校正、色彩校正、色調映射及時頻變換(例如包含快速傅立葉變換之傅立葉變換等))。
此處,繞開嵌入式影像信號處理器110且替代地在(若干)CPU核心102上執行影像處理之決策可為執行更複雜(sophisticated或complex)影像處理任務所需之必要處理能力及記憶體容量之某組合。即,CPU處理核心102通常擁有比嵌入式影像信號處理器110更大之整體處理能力、多樣性及記憶體分配。因而,更複雜影像處理技術可替代地在CPU核心102上實施而非在嵌入式影像信號處理器110上實施。
一種此複雜影像處理技術(稱為HDR+且其係具有由加利福尼亞州山景城之Google,Inc.提供之Android作業系統之系統中之一組件)使來自相機109之影像圖框之一運行串流排成佇列且對佇列中之圖框執行特定操 作。例如,佇列中之更多影像圖框用於擷取一影像之曝光不足部分,而佇列中之較少影像圖框用於擷取影像之曝光過度部分。藉由將不同部分摻合在一起,增強影像擷取程序之整體動態範圍(擷取強信號及弱信號兩者之能力)。作為另一實例,為減少來自影像及/或相機移動之模糊,HDR+將分析佇列中之影像之各者以判定具有最少模糊內容之一最佳分鏡(shot)。HDR+亦將RGB格式化為YUV、Y’UV、YCbCr或考量人類感知之任何其他色彩空間格式。然而,如上文暗示,對諸如處理核心102之傳統通用處理器執行複雜操作增大技術實施方案之功率消耗。
2.0 新影像處理器架構
如在此項技術中已知,用於執行程式碼之基本電路結構包含一執行階段及暫存器空間。執行階段含有用於執行指令之執行單元。將用於待執行之一指令之輸入運算元自暫存器空間提供至執行階段。將自執行階段執行一指令產生之結果寫回至暫存器空間。
一傳統處理器上之一軟體線程之執行需要透過執行階段之一系列指令之依序執行。最常見地,操作在自一單一輸入運算元組產生一單一結果之意義上係「純量」。在「向量」處理器之情況中,藉由執行階段之一指令之執行將自輸入運算元組之一向量產生一結果向量。
圖2展示一獨特影像處理器架構200之指令執行資源及暫存器資源之一描繪,該獨特影像處理器架構200包含耦合至呈硬體之二維移位暫存器陣列202之呈硬體之一執行道陣列201。在圖2之處理器架構中,執行道陣列201中之各執行道可被視為含有執行由處理器200支援之指令集所需之執行單元之一離散執行階段。在各種實施例中,各執行道接收一相同指令以在一相同機器循環中執行,使得處理器作為二維單指令多資料(SIMD) 處理器操作。
另外,各執行道在二維移位暫存器陣列202內之一對應位置中具有其自身專用暫存器空間。例如,邊角執行道203在邊角移位暫存器位置204中具有其自身專用暫存器空間,邊角執行道205在邊角移位暫存器位置206中具有其自身專用暫存器空間,以此類推。
此外,移位暫存器陣列202能夠使其內容移位,使得各執行道能夠自其自身暫存器空間直接操作在一先前機器循環期間駐留於另一執行道之暫存器空間中之一值。例如,一+1水平移位導致各執行道之暫存器空間接收來自其最左側相鄰者之暫存器空間之一值。由於使值沿著一水平軸在向左方向及向右方向兩者上移位及使值沿著一垂直軸在向上方向及向下方向兩者上移位之一能力,處理器能夠有效處理影像資料之模板。即,傳統處理器傾向於在處理一模板時多次重讀相同資料值,此導致增大功率消耗。相比之下,圖2之處理器之架構更善於一次自記憶體讀取一值且在其保持於暫存器空間中時多次再使用它。
根據圖1之處理器200之各種操作實施例,執行道陣列201之各執行道負責計算處理器所產生之一輸出影像中之一特定位置之一像素值。因此,繼續上文提及之3×3模板求平均值實例,在輸入像素資料之一初始載入及移位暫存器陣列202內之八個移位操作之一協調移位序列之後,執行道陣列201中之各執行道將接收計算其對應像素位置之平均值所需的所有九個像素值至其局部暫存器空間中。
處理器執行程式碼且因此係廣泛可組態/可調適的。另外,如上文暗示,由於影像資料自記憶體被叫用至暫存器空間中且保持在那裡直至較大程度上(或完全)耗盡其用途,故處理器比一傳統處理器消耗顯著更小功 率。由於圖2之處理器架構尤其善於將影像模板處理為其二維陣列結構之一結果,故其亦可被稱為一模板處理器。
3.0 新影像處理器之系統整合
圖3展示包含具有如上文描述之一執行道陣列及二維移位暫存器之一影像處理器320之一改良運算系統設計。如在圖3中可觀察到,將影像處理器320及其周圍邏輯321插入相機309與應用處理器301之間。
如描繪,影像處理器320及其周圍邏輯321經實施為一離散影像處理器晶片322,該離散影像處理器晶片322自一或多個相機309接收原始輸入資料且將原始相機資料、經處理原始相機資料及/或相關聯統計資料之任一者提供至應用處理器301。虛線邊界323指示,在一些實施例中,影像處理器320及其周圍邏輯321可經整合至應用處理器301上。在又其他實施例中,儘管未描繪,但影像處理器320及其周圍邏輯321可經整合至相機309之一者中(且其他「用戶端」相機將其等原始資料傳送至具有影像處理器之「主機」相機)。因而,影像處理器320及其周圍邏輯321可更一般地被稱為一影像處理器單元322。然而,為簡單起見,其餘論述將係指其中影像處理器320及其周圍邏輯321經實施為一離散半導體晶片322之一實施例。
在各種組態中,影像處理器320能夠憑藉比整合於應用處理器301及/或應用處理器之(若干)通用CPU核心301上之一傳統嵌入式影像信號處理器310更低之功率消耗、更大之處理效能及/或更大之多樣性對由相機309產生之原始影像資料執行影像處理任務。應注意,通用處理核心302、主記憶體控制器330及主記憶體331可被視為用於整個運算系統之一主機系統之主要組件。即,一般言之,整個運算系統可被視為包含一主機系統, 該主機系統包含通用處理核心302及主記憶體子系統(其包含主記憶體控制器330及主記憶體331),而諸如顯示器、影像處理器單元322及相機309之其他更多周邊單元係耦合至主機系統中之組件。
圖4a至圖4h詳述影像處理器及其周圍邏輯之一些可能組態及用途。為易於論述,影像處理器420及其周圍邏輯421將被統稱為影像處理器晶片422。然而,應牢記,影像處理器晶片422之電路可經整合於應用處理器401上或可甚至整合於相機409之一者內。
圖4a至圖4h亦描繪具有三個相機409_1、409_2、409_3之一系統。此處,例如,系統對應於一智慧型電話,其中智慧型電話之一側具有一單一相機409_1,而智慧型電話之另一側具有兩個相機409_2、409_3(例如用於立體攝影,擷取寬視場對窄視場影像,擷取彩色對單色影像,改良信雜比(SNR)等)。
因而,在圖4a至圖4h之實施例中,影像處理器晶片422具有三個輸入431_1、431_2、431_3(其等可經實施為例如三個離散MIPI輸入)及兩個輸出432_1、432_2(其等可經實施為例如兩個離散MIPI輸出)以例如將輸入串流提供至應用處理器401上之該對嵌入式影像信號處理器410_1、410_2。亦如將在下文進一步描述,影像處理器晶片包含一周邊I/O介面433(諸如一PCIe介面),使得影像處理器晶片432可被應用處理器之通用CPU核心402之一或多者用作例如一協同處理器。
如在圖4a中可觀察到,描繪一第一旁路模式,其中未使用影像處理器420。在此情況中,影像處理器晶片在其輸入431_1之一者處自相機409_1之一者接收原始資料451且將相同原始資料451自其輸出432_1之一者轉發至應用處理器401上之一影像信號處理器410_1。支援圖4a之組 態,使得例如系統可退回至在上文關於圖1b論述之傳統系統組態之任一者。此處,應用處理器401及軟體驅動器411如在上文關於圖1b描述般操作。
圖4b展示影像處理器晶片支援不同多個旁路組態之能力之多樣性。如在圖4b中描繪,影像處理器晶片422可被視為一3:2多工器,其中提供至晶片之三個MIPI輸入431_1、431_2、431_3之任一者之原始相機資料可經轉發至晶片之兩個輸出432_1、432_2之任一者。應注意,此包含廣播配置,其中在輸入431_1、431_2、431_3之一者處接收之一單一輸入影像經同時選路傳送至輸出432_1、432_2之一者以上(且可甚至經選路傳送至周邊介面433,不過此特定路徑未在圖4b中明確展示)。圖4b亦可被解釋為包含並聯配置,其中分別在輸入431_1、431_2、431_3處接收之兩個或兩個以上輸入影像經分別選路傳送至兩個或兩個以上輸出432_1、432_2、433(例如在輸入431_1處接收之一第一輸入影像串流經選路傳送至輸出432_1且同時在輸入431_2處接收之一第二輸入影像串流經選路傳送至輸出432_2)。
如在圖4c中可觀察到,不同於圖4a及圖4b之旁路模式,影像處理器420用於處理來自一原始影像串流之影像,而應用處理器401上之一影像信號處理器410_2用於處理影像之統計資料。在此情況中,來自一相機409_2之原始影像資料在影像處理器晶片422內引導至影像處理器420(用於影像處理)及輸出432_2之一者用於被應用處理器401接收。在圖4c之組態中,影像處理器420有效執行一影像信號處理器之影像處理演算法(偏移校正、雜訊減少、自動白平衡、去馬賽克、銳化、透鏡陰影校正、色彩校正、色調映射及時頻變換(例如包含快速傅立葉變換之傅立葉變換等)), 且將例如JPEG或TIFF靜態影像或MPEG視訊影像提供至影像處理器晶片之周邊介面433。
在圖4c之特定實施例中,由於在應用處理器之嵌入式影像信號處理器410_1、410_2「之前」產生經處理影像,故影像處理器晶片422將經處理影像自其周邊介面433發送至應用處理器,使得藉由應用處理器401透過其標準周邊介面之一者(諸如一PCIe介面434)接收經處理影像。相機驅動器軟體411對統計資料及影像操作。儘管未在圖4c中描繪,但相機驅動器軟體411基於其對所接收影像及統計資料執行之操作將控制信號發送至相機及影像處理器420。
圖4d展示其中圖4a之旁路模式及圖4c之影像處理器組態經組合以便同時對一相同系統操作之另一組態。此處,例如,圖4a之旁路模式可用於一第一相機409_1,而離散影像處理器可用於處理來自一第二相機409_2或第二相機409_2及第三相機409_3之影像(例如以實施立體影像處理)。
此處,應用處理器401之影像信號處理器410_1之一者處理第一相機409_1之影像及統計資料兩者,而應用處理器401上之嵌入式影像信號處理器410_2之一第二者僅處理第二相機409_2或第二相機409_2及第三相機409_3之統計資料。因而,自影像處理器晶片422之一第一輸出432_1引導第一相機之原始資料且自影像處理器晶片422之一第二輸出432_2引導第二(或第二及第三)相機之原始資料。
在圖4d之組態中,用於第一相機409_1之驅動器軟體411_1將控制信號發送至第一相機及正在處理第一相機之影像及統計資料之嵌入式影像信號處理器410_1。同時,用於第二相機409_2(或第二相機409_2及第三相機409_3)之驅動器軟體411_2將控制信號發送至第二相機409_2(或第二相 機409_2及第三相機409_3)及影像處理器晶片422上之影像處理器420。
如在圖4e中可觀察到,離散影像處理器用於處理影像以及產生統計資料。此處,可透過一周邊介面433/434(例如,PCIe)而非透過輸出432_1、432_2之任一者將經處理影像及統計資料兩者轉發至應用處理器。在圖4e之組態中,相機驅動器基於其自影像處理器420接收之經處理影像及統計資料將控制信號發送至相機及影像處理器420。儘管未描繪,但圖4e之組態亦可同時與例如圖4a之旁路組態組合,使得例如應用處理器401之一嵌入式影像信號處理器410_1或410_2用於處理來自一第一相機409_1之影像及統計資料而離散影像處理器用於處理一第二相機409_2(或第二相機409_2及第三相機409_3)之影像及統計資料。
如上文暗示,使用影像處理器晶片422上之影像處理器420以處理來自一相機之原始影像之任何組態可對影像資料的模板進行處理以利用影像處理器之較低功率二維陣列架構。再者,可對模板進行處理以在離散影像處理器上執行以下項目之任一者:(僅作為一些實例)偏移校正、雜訊減少、自動白平衡、去馬賽克、銳化、透鏡陰影校正、色彩校正、色調映射及時頻變換(例如包含快速傅立葉變換之傅立葉變換等)。
而且,可在影像處理器420上執行更複雜影像處理演算法(諸如在上文關於HDR+論述之演算法)以實施演算法,同時消耗比在於應用處理器401之通用CPU核心402之一或多者上執行此等演算法的情況下將另外消耗之功率顯著更小之功率。例如,為支援HDR+模式,影像之一運行串流可在影像處理器晶片之局部記憶體(為易於繪示,未在圖4a至圖4g中展示)中排成佇列。影像處理器420可接著對準影像且合併較多曝光不足部分與較少曝光過度部分以實現一高動態範圍影像處理通道。此外,影像處理器 420可分析其局部記憶體中之佇列中之數個影像以自相機或所擷取物件移動判定具有最小模糊之一最佳靜態分鏡。影像處理器亦可將RGB格式化原始資料轉換成YUV、Y’UV、YCbCr或考量人類感知之任何其他色彩空間格式。
額外複雜影像處理任務包含例如雙相機融合,其處理來自兩個相機之影像資料以實施例如立體成像、擷取寬視場對窄視場影像、擷取彩色對單色影像、改良信雜比(SNR)等。更進一步複雜影像處理任務包含例如神經網路之執行以例如實施機器學習功能,諸如面部偵測(例如一卷積神經網路、一深度神經網路、一遞迴神經網路、一長短期記憶體網路等)、面部辨識、產品辨識(特定銷售產品之辨識)、場景辨識及/或語言翻譯。此外,至少關於圖4e之組態,影像處理器420用於在由於其陣列硬體架構而不消耗大量功率之情況下計算統計資料。
儘管未在圖4e中特別描繪,在各種組態中,將由影像處理器420產生之經處理影像引導至輸出432_1、432_2之任一者或兩者而非介面433。(若干)影像信號處理器410_1、410_2可進一步處理經處理影像或被繞開。在後一情況中,例如可將自輸出432_1、432_2接收之經處理影像直接轉發至系統/主記憶體或一顯示器。
圖4f展示其中影像處理器420處理輸入原始資訊且亦發射透過處理器之輸出432_2傳輸之原始輸出資訊或經處理影像之另一組態。在圖4f之組態中,例如,影像處理器晶片422上之影像處理器420執行一些影像信號處理任務,而應用處理器上之一嵌入式影像信號處理器410_2執行其他影像信號處理任務或繞開影像信號處理器410_2。
圖4g展示其中離散影像處理晶片具有一嵌入式通用處理器435,使得 可在影像處理器晶片422而非應用處理器401之一(若干)通用CPU核心402上直接執行用於相機409_1、409_2、409_3之至少一者之韌體/驅動器軟體436之又一組態。此處,圖4g包含圖4e之影像處理器晶片組態,其中影像處理器420不僅用於處理影像而且用於產生統計資料。在由影像處理器420產生影像及統計資料兩者之情況下,影像及統計資料可由嵌入式處理器435(例如直接或透過影像處理器晶片之局部記憶體)存取,使得在嵌入式處理器435上執行之韌體/驅動器軟體436可自影像處理器晶片本端產生用於影像處理器及一或多個相機之控制信號。再者,可透過輸出410_1、410_2之任一者或兩者引導由影像處理器產生之經處理影像及/或統計資料。
應注意,圖4g之方法可與例如圖4a之方法組合,使得例如一或多個相機具有在影像處理器晶片422上本端產生之其等影像、統計資料及控制資訊(圖4g),而另一相機具有由應用處理器401上之影像信號處理器410_1、410_2之一者產生之其影像、統計資料及控制資訊。
實際上,在上文關於圖4a至圖4g論述之一特定相機或相機對之資料流之任一者可彼此組合以實現大量可能系統及影像處理器晶片組態。即,在上文關於圖4a至圖4g描繪或論述之一特定相機(或相機對)之任何資料流可用於一第一相機(或相機對)。經組態資料流可接著與在上文關於圖4a至圖4g論述之一特定相機或相機對之任何資料流組合以用於另一不同相機(或相機對)。應注意,此包含一相同資料流組態之多個例項(例如圖4g之組態可例示兩次,針對兩個不同相機之各者各一次)。因此,強調圖4a至圖4g僅描繪一組有限總數個可能組態係重要的。
圖4h展示其中影像處理器420用作應用處理器401之CPU核心402之 一或多者之一協同處理器之另一組態。在圖4h之組態中,取代接收來自一相機之原始影像資料且即時處理原始資料,替代地,例如可已由在應用處理器401之通用CPU核心402之任一者/全部上執行之應用軟體412產生輸入資料。此處,應用處理器401之通用處理核心及主記憶體子系統可更一般地被視為調用影像處理器之協同處理功能之一主機系統。在應用軟體412達到其中需要一極其有效影像處理引擎以進一步處理其所致力於之資料之一點之後,應用軟體412將調用影像處理器420之使用以處理資料。
因而,影像處理器420所操作之輸入資料例如自運算系統之主記憶體407被引導至影像處理器之局部記憶體(未在圖4h中展示)。應用軟體412亦將一或多個命令發送至影像處理器420,描述待執行之(若干)特定演算法(例如用以實施前述機器學習程序之任一者之一卷積神經網路演算法)。影像處理器420接著對輸入資料執行特定演算法以產生所得輸出資料,該所得輸出資料可在轉發至主記憶體407之前儲存於影像處理器晶片之局部記憶體中(或輸出資料可經直接轉發至主記憶體407)。一旦由影像處理器420產生之所得輸出資料駐留於主記憶體407中,應用軟體412可推進其程式執行且對所得輸出資料進行操作。應注意,離散影像處理器與(若干)CPU核心之間的資料及命令之通信可在周邊介面433/434上發生。
應注意,圖4h之協同處理器組態亦可與在上文關於圖4a至圖4g論述之各種相機資料流之一或多者組合,使得藉由影像處理器晶片422同時支援原始影像相機處理及協同處理。
圖5展示影像處理器晶片522及其局部記憶體540之一實施例。如在圖5中可觀察到,晶片522包含具有例如複數個模板處理器之一影像處理器520,該複數個模板處理器各包含如在上文關於圖2論述之一執行道陣列 及二維移位暫存器陣列。晶片522內之周圍電路支援在上文關於圖4a至圖4h論述之各種組態。
此處,影像處理器晶片包含用於同時接收例如來自三個不同相機之RGB串流之三個原始相機影像輸入531_1、531_2、531_3。三個輸入之各者亦經選路傳送至一對輸出多工器537_1、537_2及一記憶體控制器538。因此,除被直接饋送至影像處理器520以外,三個輸入531_1、531_2、531_3之任一者亦可經直接轉發至一輸出532_1、532_2(例如針對一旁路模式)或局部記憶體540(例如以將影像圖框排成佇列)。記憶體控制器538在自輸入531_1、531_2、531_3之任一者、影像處理器520或周邊介面533對局部記憶體540作出之存取請求之間進行仲裁。此處,如上文論述可用於將已完成輸出資料發送至應用處理器及/或自應用處理器接收輸入資料或命令(例如當在一協同處理器模式中時)之周邊介面533亦經耦合至影像處理器520及記憶體控制器538兩者以允許應用處理器與影像處理器520及/或局部記憶體540之間的直接通信。記憶體控制器538亦可經耦合至該對輸出埠532_1、532_2以支援自局部記憶體540至輸出埠532_1、532_2之任一者之資訊傳遞。
影像處理器晶片522亦包含一嵌入式(例如,通用)處理器535。在各種實施例中,嵌入式處理器535回應於藉由例如在應用處理器上執行之系統組態韌體/軟體設定之影像處理器晶片522之組態暫存器空間而管理影像處理器晶片522之內部設定(例如以實現圖4a至圖4h之影像處理器單元組態之任一者或影像處理器單元之其他組態)。如在上文關於圖4h論述,嵌入式處理器535亦可執行用於影像處理器520及/或一相機之韌體/驅動器軟體,以便自應用處理器之通用CPU核心卸載此等任務。
應注意,輸出埠532_1、532_2之各者及周邊介面533可被視為包含影像處理器晶片522之一輸出。如上文論述,在一實施例中,輸出埠532_1、532_2經實施為MIPI介面且周邊介面533經實施為一PCIe介面。一般言之,MIPI介面係支援主要一個方向上之訊務流之較低階實體層介面(單向介面),而一PCIe介面包含較高階功能(例如資料鏈路及交易層)且容易地支援兩個方向上(雙向)之訊務流。無論如何,輸出埠532_1、532_2及周邊介面533之各者可用於自影像處理器晶圓522發送資訊且因此可經特性化為包含影像處理器晶片522之一輸出。
應注意,在各種組態中,可透過一相同輸出多工化不同輸出串流(諸如透過周邊介面533轉發不同輸出串流)。此外,在各種組態中,可自輸出之一者以上廣播一相同輸出串流(例如可自輸出532_1、532_2、533之一者以上發射例如在輸入531_1、531_2、531_3之一者處接收之一單一輸出串流)。同樣地,在又一組態可能性中,(例如在輸入之一者處接收之)一相同輸入串流可經直接引導至一輸出埠及影像處理器520及/或記憶體介面538兩者。另外,如上文陳述,在各自不同輸入處接收之兩個或兩個以上不同輸入串流可經同時選路傳送至兩個或兩個以上不同輸出(例如在輸入531_1處接收之一輸入串流經選路傳送至輸出532_1而在輸入531_2處接收之一輸入串流經選路傳送至輸出532_2)。
此外,在各自不同輸入處接收之兩個或兩個以上不同輸入影像串流可經直接及/或間接(經由記憶體介面538及記憶體540)選路傳送至影像處理器520。影像處理器520可處理兩個輸入影像串流以產生兩個各自不同經處理輸出影像串流,該兩個各自不同經處理輸出影像串流經例如引導至兩個不同各自輸出(例如輸出532_1及輸出532_2)。替代地,影像處理器 520可處理多個輸入影像串流以產生一單一輸出影像串流,該單一輸出影像串流經選路傳送至例如一或多個不同輸出。此外,一單一輸入影像串流可在輸入531_1、531_2、531_3之一者處接收且直接或間接選路傳送至影像處理器520。影像處理器可接著處理輸入影像串流以產生一個以上經處理輸出影像串流。多個經處理輸出影像串流可接著經選路傳送至影像處理晶片522之不同各自輸出(例如輸出532_1、532_2)。
此處,在線545_1、545_2之間可觀察到之電路可被視為影像處理器晶片522內之一內部網路,該內部網路使影像處理器晶片522能夠支援上文詳細描述之各種/不同組態及相關聯內部資料流。在各種實施例中,藉由經由嵌入式處理器535設定適當網路組態參數而針對網路組態一特定選路傳送方案。儘管為易於繪示而未在圖5中描繪,但網路亦可包含輸入531_1、531_2、531_3之任一者與周邊介面533之間的選路傳送路徑,使得周邊介面533可用作例如用於在輸入531_1、531_2、531_3之任一者處接收之一輸入影像串流之一旁路配置之一輸出。
在各種實施例中,藉由影像處理器執行之程式碼可經儲存於非揮發性儲存器(例如一非揮發性記憶體裝置、一硬碟機等)中。非揮發性儲存器可為主機系統之主要非揮發性儲存器或例如較大程度上與影像處理器單元相關聯之一非揮發性儲存組件。在啟動期間及/或在運行時間期間視需要,例如程式碼自非揮發性儲存器載入至影像處理器從其中執行之記憶體(例如記憶體540)中。非揮發性記憶體可經耦合在影像處理器單元內或外部。
圖6展示操作如上文描述之一影像處理器單元之一方法。該方法包含將一第一輸入影像選路傳送至影像處理器單元之一第一輸出601。該方法 亦包含將一第二輸入影像選路傳送至一影像處理器,該影像處理器包括一執行道陣列及二維移位暫存器陣列602。該方法亦包含在影像處理器上執行影像信號處理程式碼以產生一經處理影像,其中程式碼之執行導致二維移位暫存器陣列使資料在由執行道陣列執行之影像信號處理運算之間移位603。該方法亦包含將經處理影像選路傳送至影像處理器單元之一第二輸出604。
4.0 影像處理器及模板處理器實施例
圖7展示用於影像處理器之硬體架構700之一實施例。可例如藉由一編譯器標定影像處理器,該編譯器將針對一模擬環境內之一虛擬處理器寫入之程式碼轉換成實際上藉由硬體處理器執行之程式碼。如在圖7中可觀察到,架構700包含複數個線緩衝器單元701_1至701_M,其等透過一網路704(例如一晶片上網路(NOC),其包含一晶片上交換網路、一晶片上環形網路或其他類型之網路)互連至複數個模板處理器單元702_1至702_N及對應表單產生器單元703_1至703_N。在一實施例中,任何線緩衝器單元可透過網路704連接至任何表單產生器及對應模板處理器。
在一實施例中,程式碼經編譯且載入至一對應模板處理器702上以執行先前由一軟體開發者定義之影像處理操作(亦可例如取決於設計及實施方案將程式碼載入至模板處理器之相關聯表單產生器703上)。在至少一些例項中,可藉由將用於一第一管線階段之一第一核心程式載入至一第一模板處理器702_1中、將用於一第二管線階段之一第二核心程式載入至一第二模板處理器702_2中等而實現一影像處理管線,其中第一核心執行管線之第一階段之功能,第二核心執行管線之第二階段之功能等,且額外控制流方法經安裝以將來自管線之一個階段之輸出影像資料傳送至管線之下一 階段。因而,例如,一影像處理管線可經容易地建構為具有一偏移校正階段、一雜訊減少階段、一自動白平衡階段、一去馬賽克階段、一銳化階段、一透鏡陰影校正階段、一色彩校正階段、一色調映射階段及一時頻變換階段。
在其他組態中,影像處理器可經實現為具有操作相同核心程式碼之兩個或兩個以上模板處理器702_1、702_2之一平行機。例如,可藉由使圖框跨過多個模板處理器(其等之各者執行相同功能)散佈而處理影像資料之一高度密集且高資料速率串流。
在又其他組態中,可藉由在DAG設計中將各自模板處理器組態為具有其等自身的各自程式碼核心且將適當控制流掛鉤(hook)組態至硬體中以將來自一個核心之輸出影像引導至下一核心之輸入而將核心之本質上任何DAG載入至硬體處理器上。
作為一般流程,影像資料之圖框被一大型I/O單元705接收且按逐圖框基礎傳送至線緩衝器單元701之一或多者。一特定線緩衝器單元將其影像資料之圖框剖析成一較小影像資料區域(稱為一「線群組」)且接著透過網路704將線群組傳送至一特定表單產生器。一完整或「完全」單一線群組可由例如一圖框之多個連續完整列或行之資料組成(為簡單起見,本說明書將主要參考連續列)。表單產生器進一步將影像資料之線群組剖析成一較小影像資料區域(稱為一「表單」)且將表單呈現至其對應模板處理器。
在具有一單一輸入之一影像處理管線或一DAG流之情況中,一般言之,輸入圖框經引導至相同線緩衝器單元701_1,該線緩衝器單元701_1將影像資料剖析成線群組且將線群組引導至表單產生器703_1,該表單產 生器703_1之對應模板處理器702_1執行管線/DAG中之第一核心之程式碼。在模板處理器702_1對其處理之線群組之操作完成之後,表單產生器703_1將輸出線群組發送至一「下游」線緩衝器單元701_2(在一些使用情況中,輸出線群組可被發送回至先前已發送輸入線群組之相同線緩衝器單元701_1)。
表示在其等自身各自其他表單產生器及模板處理器(例如,表單產生器703_2及模板處理器702_2)上執行之管線/DAG中之下一階段/操作之一或多個「消費者」核心接著自下游線緩衝器單元701_2接收由第一模板處理器702_1產生之影像資料。以此方式,在一第一模板處理器上操作之一「產生者」核心將其輸出資料轉發至在一第二模板處理器上操作之一「消費者」核心,其中消費者核心依據整個管線或DAG之設計在產生者核心之後執行下一組任務。
一模板處理器702經設計以同時對影像資料之多個重疊模板操作。模板處理器之多個重疊模板及內部硬體處理能力有效判定一表單之大小。此處,在一模板處理器702內,執行道陣列一致地操作以同時處理由多個重疊模板覆蓋之影像資料表面區域。
如將在下文更詳細描述,在各種實施例中,影像資料之表單經載入至模板處理器702內之二維暫存器陣列結構中。表單及二維暫存器陣列結構之使用據信藉由以例如一單一載入操作將大量資料移動至大量暫存器空間中,緊接其後藉由一執行道陣列對資料直接執行處理任務而有效提供功率消耗改良。另外,一執行道陣列及對應暫存器陣列之使用提供可容易地程式化/組態之不同模板大小。
圖8a至圖8e繪示一線緩衝器單元701之剖析活動、一表單產生器單元 703之較小細粒度剖析活動兩者以及耦合至表單產生器單元703之模板處理器702之模板處理活動之一高階實施例。
圖8a描繪影像資料801之一輸入圖框之一實施例。圖8a亦描繪一模板處理器經設計以操作之三個重疊模板802之一輪廓(各具有3像素×3像素之一尺寸)。各模板分別針對其產生輸出影像資料之輸出像素以黑色實線突顯。為簡單起見,三個重疊模板802經描繪為僅在垂直方向上重疊。應認識到,實際上,一模板處理器可經設計以具有垂直及水平方向兩者上之重疊模板。
如在圖8a中可觀察到,由於模板處理器內之垂直重疊模板802,存在一單一模板處理器可操作之圖框內之一寬影像資料頻帶。如將在下文更詳細論述,在一實施例中,模板處理器以跨影像資料自左至右方式處理其等重疊模板內之資料(且接著以自上至下順序針對下一組線重複)。因此,隨著模板處理器繼續其等操作,實心黑色輸出像素區塊之數目將水平向右增長。如上文論述,一線緩衝器單元701負責剖析來自足以使模板處理器在擴充數目個即將來臨循環內操作之一即將來臨圖框之輸入影像資料之一線群組。一線群組之一例示性描繪經繪示為一陰影區域803。在一實施例中,線緩衝器單元701可理解用於將一線群組發送至一表單產生器/自一表單產生器接收一線群組之不同動力學。例如,根據被稱為「全群組」之一個模式,在一線緩衝器單元與一表單產生器之間傳送影像資料之完整全寬線。根據被稱為「實際上高」之一第二模式,首先使用全寬列之一子組傳送一線群組。接著以較小(小於全寬)塊依序傳送其餘列。
在輸入影像資料之線群組803已由線緩衝器單元界定且傳送至表單產生器單元之情況下,表單產生器單元進一步將線群組剖析成更精確配合於 模板處理器之硬體限制之較精細表單。更特定言之,如將在下文進一步更詳細描述,在一實施例中,各模板處理器由二維移位暫存器陣列構成。二維移位暫存器陣列本質上使影像資料在一執行道陣列「下方」移位,其中移位之型樣導致各執行道對其自身各自模板內之資料進行操作(即,各執行道處理其自身資訊模板以產生該模板之一輸出)。在一實施例中,表單係「填充」或另外載入至二維移位暫存器陣列中之輸入影像資料之表面區域。
如將在下文更詳細描述,在各種實施例中,存在可在任何循環內移位之實際上多個層二維暫存器資料。為方便起見,本描述之大部分將簡單使用術語「二維移位暫存器」及類似物以指代具有可移位之一或多個此等層之二維暫存器資料之結構。
因此,如在圖8b中可觀察到,表單產生器剖析來自線群組803之一初始表單804且將其提供至模板處理器(此處,資料表單對應於大體上由參考數字804識別之陰影區域)。如在圖8c及圖8d中可觀察到,模板處理器藉由以自左至右方式在表單上方有效移動重疊模板802而對輸入影像資料之表單進行操作。如圖8d,可針對其自表單內之資料計算一輸出值(其他像素位置皆不具有自表單內之資訊判定之一輸出值)之像素數目耗盡。為簡單起見,已忽略影像之邊界區域。
如在圖8e中可觀察到,表單產生器接著為模板處理器提供下一表單805以繼續操作。應注意,模板在開始其等對下一表單上之操作時之初始位置係自第一表單上之耗盡點向右之下一進程(如先前在圖8d中描繪)。對於新表單805,模板將簡單地繼續向右移動,因為模板處理器以相同於第一表單之處理之方式對新表單進行操作。
應注意,由於圍繞一輸出像素位置之模板之邊界區域,故第一表單804之資料與第二表單805之資料之間存在某重疊。可簡單地藉由表單產生器重新傳輸重疊資料兩次來處理重疊。在替代實施方案中,為將下一表單饋送至模板處理器,表單產生器可繼續僅發送新資料至模板處理器且模板處理器再使用來自先前表單之重疊資料。
圖9展示一模板處理器架構900之一實施例。如在圖9中可觀察到,模板處理器包含一資料運算單元901、一純量處理器902及相關聯記憶體903以及一I/O單元904。資料運算單元901包含一執行道陣列905、二維移位陣列結構906及與陣列之特定列或行相關聯之分開隨機存取記憶體907。
I/O單元904負責將自表單產生器接收之「輸入」資料表單載入至資料運算單元901中且將來自模板處理器之「輸出」資料表單儲存至表單產生器中。在一實施例中,將表單資料載入至資料運算單元901中需要將一所接收表單剖析成影像資料之列/行且將影像資料之列/行載入至二維移位暫存器結構906或執行道陣列之列/行之各自隨機存取記憶體907中(在下文更詳細描述)。若首先將表單載入至記憶體907中,則執行道陣列905內之個別執行道可接著在適當時將表單資料自隨機存取記憶體907載入至二維移位暫存器結構906中(例如,作為緊接在對表單之資料之操作之前的一載入指令)。在(無論直接自一表單產生器或自記憶體907)將一資料表單載入至暫存器結構906中完成之後,執行道陣列905之執行道對資料進行操作且最終將已完成資料作為一表單直接「寫回」至表單產生器或至隨機存取記憶體907中。若為後者,則I/O單元904自隨機存取記憶體907提取資料以形成一輸出表單,該輸出表單接著經轉發至表單產生器。
純量處理器902包含一程式控制器909,該程式控制器909自純量記憶 體903讀取模板處理器之程式碼之指令且將指令發出至執行道陣列905中之執行道。在一實施例中,一單一相同指令經廣播至陣列905內之所有執行道以實現來自資料運算單元901之一類似SIMD行為。在一實施例中,自純量記憶體903讀取且發出至執行道陣列905之執行道之指令之指令格式包含一極長指令字組(VLIW)型格式,該格式包含每指令一個以上運算碼。在又一實施例中,VLIW格式包含引導藉由各執行道之ALU執行之一數學函數之一ALU運算碼(如下文描述,在一實施例中,其可指定一個以上傳統ALU操作)及一記憶體運算碼(其引導一特定執行道或執行道組之一記憶體操作)。
術語「執行道」係指能夠執行一指令之一組一或多個執行單元(例如,可執行一指令之邏輯電路)。然而,在各種實施例中,一執行道可包含除僅執行單元以外的更多類似處理器功能性。例如,除一或多個執行單元以外,一執行道亦可包含解碼一所接收指令之邏輯電路或(在更多類似MIMD設計之情況中)提取及解碼一指令之邏輯電路。關於類似MIMD方法,儘管已在本文中較大程度上描述一集中式程式控制方法,但可在各種替代實施例中實施一更分散式方法(例如包含陣列905之各執行道內之程式碼及一程式控制器)。
一執行道陣列905、程式控制器909及二維移位暫存器結構906之組合提供用於廣泛範圍之可程式功能之一廣泛可調適/可組態硬體平台。例如,考慮到個別執行道能夠執行廣泛範圍之功能且能夠在接近於任何輸出陣列位置處容易地存取輸入影像資料,應用軟體開發者能夠程式化具有廣泛範圍之不同功能能力以及尺寸(例如模板大小)之核心。
除充當用於藉由執行道陣列905操作之影像資料之一資料儲存器以 外,隨機存取記憶體907亦可保持一或多個查找表。在各種實施例中,亦可在純量記憶體903內例示一或多個純量查找表。
一純量查找涉及將來自相同索引之相同查找表之相同資料值傳送至執行道陣列905內之執行道之各者。在各種實施例中,上文描述之VLIW指令格式經擴展以亦包含一純量運算碼,該純量運算碼將藉由純量處理器執行之一查找操作引導至一純量查找表中。指定與運算碼結合使用之索引可為一立即運算元或自某其他資料儲存位置提取。無論如何,在一實施例中,自純量記憶體內之一純量查找表之一查找本質上涉及在相同時脈循環期間將相同資料值傳播至執行道陣列905內之所有執行道。在下文進一步提供關於查找表之使用及操作之額外細節。
圖9b概述上文論述之(若干)VLIW指令字組實施例。如在圖9b中可觀察到,VLIW指令字組格式包含三個分開指令之欄位:1)一純量指令951,其藉由純量處理器執行;2)一ALU指令952,其藉由執行道陣列內之各自ALU以SIMD方式傳播及執行;及3)一記憶體指令953,其以一部分SIMD方式傳播及執行(例如,若沿著執行道陣列中之一相同列之執行道共用一相同隨機存取記憶體,則來自不同列之各者之一個執行道實際上執行指令(記憶體指令953之格式可包含識別來自各列之哪一執行道執行指令之一運算元))。
亦包含一或多個立即運算元之一欄位954。可在指令格式中識別哪一指令951、952、953使用哪一立即運算元資訊。指令951、952、953之各者亦包含其等自身各自輸入運算元及所得資訊(例如,用於ALU操作之局部暫存器及用於記憶體存取指令之一局部暫存器及一記憶體位址)。在一實施例中,在執行道陣列內之執行道執行其他指令952、953之任一者之 前藉由純量處理器執行純量指令951。即,VLIW字組之執行包含執行純量指令951之一第一循環,其後接著可執行其他指令952、953之一第二循環(應注意,在各種實施例中,可平行執行指令952及953)。
在一實施例中,藉由純量處理器執行之純量指令包含發出至表單產生器以自資料運算單元之記憶體或2D移位暫存器載入表單/將表單儲存至資料運算單元之記憶體或2D移位暫存器中之命令。此處,表單產生器之操作可取決於線緩衝器單元之操作或防止表單產生器完成藉由純量處理器發出之任何命令將花費之循環數目之運行時間之前的理解之其他變量。因而,在一實施例中,任何VLIW字組(其之純量指令951對應於或另外導致一命令發出至表單產生器)亦包含其他兩個指令欄位952、953中之無操作(NOOP)指令。程式碼接著進入指令欄位952、953之NOOP指令之一迴圈直至表單產生器完成其至資料運算單元之載入/自資料運算單元之儲存。此處,在將一命令發出至表單產生器之後,純量處理器可設定表單產生器在完成命令之後重設之一互鎖暫存器之一位元。在NOOP迴圈期間,純量處理器監測互鎖位元之位元。當純量處理器偵測到表單產生器已完成其命令時,正常執行再次開始。
圖10展示一資料運算組件1001之一實施例。如在圖10中可觀察到,資料運算組件1001包含邏輯地定位於二維移位暫存器陣列結構1006「上方」之一執行道陣列1005。如上文論述,在各種實施例中,由一表單產生器提供之影像資料之一表單經載入至二維移位暫存器1006中。執行道接著對來自暫存器結構1006之表單資料進行操作。
執行道陣列1005及移位暫存器結構1006相對於彼此固定在適當位置中。然而,移位暫存器陣列1006內之資料以一戰略性且協調方式移位以 導致執行道陣列中之各執行道處理資料內之一不同模板。因而,各執行道判定所產生之輸出表單中之一不同像素之輸出影像值。自圖10之架構,應明白,重疊模板不僅垂直配置而且水平配置,因為執行道陣列1005包含垂直相鄰執行道以及水平相鄰執行道。
資料運算單元1001之一些顯著架構特徵包含具有寬於執行道陣列1005之尺寸之移位暫存器結構1006。即,執行道陣列1005外部存在暫存器之一「光暈(halo)」1009。儘管光暈1009經展示為存在於執行道陣列之兩側上,但取決於實施方案,光暈可存在於執行道陣列1005之較少(一個)或較多(三個或四個)側上。在資料在執行道1005「下方」移位時,光暈1009用於為溢出執行道陣列1005之邊界外部之資料提供「外溢」空間。作為一簡單情況,以執行道陣列1005之右邊緣為中心之一5×5模板在模板之最左像素被處理時,將需要進一步向右之四個光暈暫存器位置。為易於繪製,當在一標稱實施例中,任一側(右側、底側)上之暫存器將具有水平連接及垂直連接兩者時,圖10將光暈之右側之暫存器展示為僅具有水平移位連接且將光暈之底側之暫存器展示為僅具有垂直移位連接。在各種實施例中,光暈區域並不包含用以執行影像處理指令之對應執行道邏輯(例如,不存在ALU)。然而,個別記憶體存取單元(M)存在於光暈區域位置之各者中,使得個別光暈暫存器位置可個別地自記憶體載入資料及將資料儲存至記憶體。
藉由耦合至陣列中之各列及/或各行或其部分之隨機存取記憶體1007提供額外外溢空間(例如,一隨機存取記憶體可經指派至跨越4個執行道列及2個執行道行之執行道陣列之一「區域」。為簡單起見,本申請案之其餘部分將主要參考基於列及/或行之分配方案。)此處,若一執行道之核心 操作要求其處理二維移位暫存器陣列1006外部之像素值(一些影像處理常式可能要求此),則影像資料平面能夠例如自光暈區域1009進一步外溢至隨機存取記憶體1007中。例如,考量一6×6模板,其中硬體包含在執行道陣列之右邊緣上之一執行道之右側之僅四個儲存元件之一光暈區域。在此情況中,資料將需要進一步移位至光暈1009之右邊緣之右側以完全處理模板。移位至光暈區域1009外部之資料將接著外溢至隨機存取記憶體1007。下文進一步提供圖9之隨機存取記憶體1007及模板處理器之其他應用。
圖11a至圖11k示範影像資料如上文暗示般在執行道陣列「下方」之二維移位暫存器陣列內移位之方式之一工作實例。如在圖11a中可觀察到,在一第一陣列1107中描繪二維移位陣列之資料內容且藉由一圖框1105描繪執行道陣列。而且,簡單化地描繪執行道陣列內之兩個相鄰執行道1110。在此簡單化描繪1110中,各執行道包含可自移位暫存器接受資料、自一ALU輸出(例如,表現為跨循環之一累加器)接受資料或將輸出資料寫入至一輸出目的地中之一暫存器R1。
各執行道亦可在一局部暫存器R2中獲得二維移位陣列中其「下方」之內容。因此,R1係執行道之一實體暫存器,而R2係二維移位暫存器陣列之一實體暫存器。執行道包含可對由R1及/或R2提供之運算元進行操作之一ALU。如將在下文進一步更詳細描述,在一實施例中,實際上使用每陣列位置之多個儲存器/暫存器元件(之一「深度」)實施移位暫存器,但移位活動限於儲存元件之一個平面(例如,儲存元件之僅一個平面可在每循環移位)。圖11a至圖11k描繪如用於儲存來自各自執行道之結果X之此等較深暫存器位置之一者。為易於繪示,較深所得暫存器經繪製成並排於其 對應暫存器R2而非在其對應暫存器R2下方。
圖11a至圖11k集中於兩個模板之計算,兩個模板之中心位置與在執行道陣列內描繪之該對執行道位置1111對準。為易於繪示,該對執行道1110經繪製成水平相鄰者,實際上,當根據以下實例時,其等係垂直相鄰者。
如最初在圖11a中可觀察到,執行道以其等中心模板位置為中心。圖11b展示藉由兩個執行道執行之目的碼。如在圖11b中可觀察到,兩個執行道之程式碼導致移位暫存器陣列內之資料向下移位一個位置且向右移位一個位置。此將兩個執行道對準至其等各自模板之左上角。程式碼接著導致定位於(R2中)其等各自位置中之資料經載入至R1中。
如在圖11c中可觀察到,程式碼接著導致該對執行道使移位暫存器陣列內之資料向左移位一個單位,此導致在各執行道之各自位置之右側之值移位至各執行道之位置中。R1中之值(先前值)接著與已移位至執行道之位置中(R2中)之新值相加。結果經寫入至R1中。如在圖11d中可觀察到,重複相同於上文針對圖11c描述之程序,此導致結果R1現在包含上執行道中之值A+B+C及下執行道中之F+G+H。此時,兩個執行道已處理其等各自模板之上列。應注意,外溢至執行道陣列之左側上之一光暈區域中(若一個光暈區域存在於左手側上)或至隨機存取記憶體中(若一光暈區域不存在於執行道陣列之左手側上)。
如在圖11e中可觀察到,程式碼接著導致移位暫存器陣列內之資料向上移位一個單位,此導致兩個執行道與其等各自模板之中間列之右邊緣對準。兩個執行道之暫存器R1當前包含模板之頂列及中間列之最右值之總和。圖11f及圖11g示範跨兩個執行道之模板之中間列向左移動之連續進 展。累積加法繼續,使得在圖11g之處理結束時,兩個執行道包含其等各自模板之頂列及中間列之值之總和。
圖11h展示使各執行道與其對應模板之最下列對準之另一移位。圖11i及圖11j展示完成對兩個執行道之模板之進程之處理之連續移位。圖11k展示使各執行道與其在資料陣列中之正確位置對準且將結果寫入至其之額外移位。
在圖11a至圖11k之實例中,應注意,用於移位操作之目的碼可包含識別在(X,Y)座標中表達之移位之方向及量值之一指令格式。例如,用於向上移位一個位置之目的碼可在目的碼中表達為SHIFT 0,+1。作為另一實例,向右移位一個位置可在目的碼中表達為SHIFT +1,0。在各種實施例中,亦可在目的碼中指定具有較大量值之移位(例如SHIFT 0,+2)。此處,若2D移位暫存器硬體僅支援每循環一個位置之移位,則指令可藉由機器解釋為需要多個循環執行,或2D移位暫存器硬體可經設計以支援每循環一個以上位置之移位。下文進一步更詳細描述後者之實施例。
圖12展示用於一執行道及對應移位暫存器結構之單元胞之另一更詳細描繪(在各種實施例中,光暈區域中之暫存器不包含一對應執行道但包含一記憶體單元)。在一實施例中,藉由在執行道陣列之各節點處例示圖12中可觀察到之電路而實施與執行道陣列中之各位置相關聯之執行道及暫存器空間。如在圖12中可觀察到,單元胞包含耦合至由四個暫存器R2至R5構成之一暫存器檔案1202之一執行道1201。在任何循環期間,執行道1201可自暫存器R1至R5之任一者讀取或寫入至暫存器R1至R5之任一者。對於需要兩個輸入運算元之指令,執行道可自R1至R5之任一者擷取兩個運算元。
在一實施例中,藉由在一單一循環期間允許暫存器R2至R4之(僅)一者之任一者之內容透過輸出多工器1203移「出」至其相鄰者之暫存器檔案之一者且使暫存器R2至R4之(僅)一者之任一者之內容替換為透過輸入多上器1204自其相鄰者之一對應者移「入」之內容,使得相鄰者之間的移位在一相同方向上(例如所有執行道向左移位、所有執行道向右移位等)而實施二維移位暫存器結構。儘管一相同暫存器使其內容移出且替換為在一相同循環內移入之內容可為常見的,但多工器配置1203、1204允許一相同循環期間之一相同暫存器檔案內之不同移位源及移位目標暫存器。
如在圖12中描繪,應注意,在一移位序列期間,一執行道將使內容自其暫存器檔案1202移出至其左、右、頂部及底部相鄰者之各者。結合相同移位序列,執行道亦將使內容自其左、右、頂部及底部相鄰者之一特定者移入至其暫存器檔案中。再者,移出目標及移入源應與所有執行道之一相同移位方向一致(例如若移出係至右相鄰者,則移入應係自左相鄰者)。
儘管在一項實施例中,每循環每執行道僅允許移位一個暫存器之內容,但其他實施例可允許移入/移出一個以上暫存器之內容。例如,若在圖12中可觀察到之多工器電路1203、1204之一第二例項經併入至圖12之設計中,則可在一相同循環期間移出/移入兩個暫存器之內容。當然,在其中每循環僅允許移位一個暫存器之內容之實施例中,可藉由消耗更多時脈循環用於數學運算之間的移位而在數學運算之間發生自多個暫存器之移位(例如,藉由消耗數學運算之間的兩個移位操作而在數學運算之間移位兩個暫存器之內容)。
若在一移位序列期間移出一執行道之暫存器檔案之少於所有內容, 則應注意,各執行道之未移出暫存器之內容保持在適當位置中(未移位)。因而,未替換為移入內容之任何未移位內容跨移位循環留存在執行道本端。在各執行道中可觀察到之記憶體單元(「M」)用於自與執行道陣列內之執行道之列及/或行相關聯之隨機存取記憶體空間載入資料/將資料儲存至該隨機存取記憶體空間。此處,M單元充當一標準M單元,其中其通常用於載入/儲存無法自執行道之自身暫存器空間載入/無法儲存至執行道之自身暫存器空間之資料。在各種實施例中,M單元之主要操作係將資料自一局部暫存器寫入至記憶體中及自記憶體讀取資料且將其寫入至一局部暫存器中。
關於藉由硬體執行道1201之ALU單元支援之ISA運算碼,在各種實施例中,藉由硬體ALU支援之數學運算碼包含(例如ADD、SUB、MOV、MUL、MAD、ABS、DIV、SHL、SHR、MIN/MAX、SEL、AND、OR、XOR、NOT)。恰如上文描述,可藉由執行道1201執行記憶體存取指令以自其等相關聯隨機存取記憶體提取資料/將資料儲存至其等相關聯隨機存取記憶體。另外,硬體執行道1201支援移位操作指令(右、左、上、下)以使資料在二維移位暫存器結構內移位。如上文描述,較大程度上藉由模板處理器之純量處理器執行程式控制指令。
5.0_實施方案實施例
應指出,上文描述之各種影像處理器架構特徵不必限於傳統意義上之影像處理且因此可經應用至可(或可不)導致重新特性化影像處理器之其他應用。例如,若上文描述之各種影像處理器架構特徵之任一者待用於建立及/或產生及/或呈現動畫(相對於處理實際相機影像),則影像處理器可經特性化為一圖形處理單元。另外,上文描述之影像處理器架構特徵可經 應用至其他技術應用,諸如視訊處理、視覺處理、影像辨識及/或機器學習。以此方式應用,影像處理器可(例如作為一協同處理器)與一更通用處理器(例如,其係運算系統之一CPU或其之部分)整合或可為一運算系統內之一獨立處理器。
上文論述之硬體設計實施例可體現於一半導體晶片內及/或體現為以一半導體製程為最終目標之一電路設計之一描述。在後一情況中,此等電路描述可採用一(例如,VHDL或Verilog)暫存器轉移層級(RTL)電路描述、一閘極層級電路描述、一電晶體層級電路描述或遮罩描述或其等之各種組合之形式。電路描述通常體現於一電腦可讀儲存媒體(諸如一CD-ROM或其他類型之儲存技術)上。
自前述章節應認識到,如上文描述之一影像處理器可體現於一電腦系統上之硬體中(例如,作為處理來自手持裝置之相機之資料之一手持裝置之系統單晶片(SOC)之部分)。在其中影像處理器體現為一硬體電路之情況中,應注意,可自一相機直接接收藉由影像處理器處理之影像資料。此處,影像處理器可為一離散相機之部分或具有一整合相機之一運算系統之部分。在後一情況中,可自相機或自運算系統之系統記憶體直接接收影像資料(例如,相機將其影像資料發送至系統記憶體而非影像處理器)。亦應注意,在前述章節中描述之許多特徵可應用至一圖形處理器單元(其呈現動畫)。
圖13提供一運算系統之一例示性描繪。下文描述之運算系統之許多組件可應用至具有一整合相機及相關聯影像處理器之一運算系統(例如,一手持式裝置,諸如一智慧型電話或平板電腦)。一般技術者將能夠容易地區分兩者。另外,圖13之運算系統亦包含一高效能運算系統(諸如一工 作站或超級電腦)之許多特徵。
如在圖13中可觀察到,基本運算系統可包含一中央處理單元1301(其可包含例如安置於一多核心處理器或應用處理器上之複數個通用處理核心1315_1至1315_N及一主記憶體控制器1317)、系統記憶體1302、一顯示器1303(例如觸控螢幕、平板)、一局部有線點對點鏈路(例如,USB)介面1304、各種網路I/O功能1305(諸如乙太網路介面及/或蜂巢式數據機子系統)、一無線區域網路(例如,WiFi)介面1306、一無線點對點鏈路(例如,藍芽)介面1307及一全球定位系統介面1308、各種感測器1309_1至1309_N、一或多個相機1310、一電池1311、一功率管理控制單元1312、一揚聲器及麥克風1313及一音訊編碼器/解碼器1314。
一應用處理器或多核心處理器1350可包含其CPU 1201內之一或多個通用處理核心1315、一或多個圖形處理單元1316、一記憶體管理功能1317(例如,一記憶體控制器)、一I/O控制功能1318及一影像處理器單元1319。通用處理核心1315通常執行運算系統之作業系統及應用軟體。圖形處理單元1316通常執行圖形密集功能以例如產生呈現於顯示器1303上之圖形資訊。記憶體控制功能1317與系統記憶體1302介接以將資料寫入至系統記憶體1302/自系統記憶體1302讀取資料。功率管理控制單元1312通常控制系統1300之功率消耗。
可根據在上文之前述章節中詳細描述之影像處理器單元實施例之任一者實施影像處理器單元1319,包含例如整合於駐留於系統之相機與系統之應用處理器之間的一影像處理器單元晶片上。替代地或組合地,影像處理器單元1319可經耦合至GPU 1316及CPU 1301之任一者或兩者以作為其之一協同處理器。另外,在各種實施例中,可使用上文詳細描述之影像 處理器特徵之任一者實施GPU 1316。影像處理器單元亦可整合於一應用處理器上。
觸控螢幕顯示器1303、通信介面1304至1307、GPS介面1308、感測器1309、相機1310及揚聲器/麥克風編解碼器1313、1314之各者皆可被視為關於整個運算系統(亦適當地包含一整合周邊裝置(例如,一或多個相機1310))之I/O(輸入及/或輸出)之各種形式。取決於實施方案,此等I/O組件之各者可整合於應用處理器/多核心處理器1350上或可定位於晶粒之外或應用處理器/多核心處理器1350之封裝外部。
在一實施例中,一或多個相機1310包含能夠量測相機與其視場中之一物件之間的深度之一深度相機。在一應用處理器或其他處理器之一通用CPU核心(或具有用以執行程式碼之一指令執行管線之其他功能區塊)上執行之應用軟體、作業系統軟體、裝置驅動器軟體及/或韌體可執行上文描述之功能之任一者。
本發明之實施例可包含如上文陳述之各種程序。程序可體現為機器可執行指令。指令可用於導致一通用或專用處理器執行某些程序。替代地,可藉由含有用於執行程序之硬接線及/或可程式化邏輯之特定硬體組件或藉由程式化電腦組件及客製硬體組件之任何組合執行此等程序。
本發明之元件亦可提供為用於儲存機器可執行指令之一機器可讀媒體。機器可讀媒體可包含(但不限於)軟碟、光碟、CD-ROM及磁光碟、FLASH記憶體、ROM、RAM、EPROM、EEPROM、磁卡或光學卡、傳播媒體或適於儲存電子指令之其他類型的媒體/機器可讀媒體。例如,本發明可作為一電腦程式下載,該電腦程式可藉由體現於一載波或其他傳播媒體中之資料信號經由一通信鏈路(例如,一數據機或網路連接)自一遠端 電腦(例如,一伺服器)傳遞至一請求電腦(例如,一用戶端)。
在前述說明書中,已參考本發明之特定例示性實施例描述本發明。然而,將顯而易見,在不脫離如隨附發明申請專利範圍中陳述之本發明之更廣泛精神及範疇之情況下,可對其作出各種修改及改變。因此,本說明書及圖式應被視為一繪示性意義而非一限制性意義。
在下文中描述一些例示性實施例。
實例1:一種影像處理器單元,其包括:複數個輸入,其等用以接收至少一個輸入影像;複數個輸出,其等用以提供至少一個輸出影像;一網路,其經耦合至該複數個輸入及該複數個輸出,該網路用以將該等輸入之至少一者耦合至該等輸出之至少一者;及一影像處理器電路,其經耦合至該網路,該網路用以將在該等輸入之一者處接收之一輸入影像選路傳送至該影像處理器電路,該影像處理器電路用以執行影像信號處理程式碼以自該輸入影像產生一經處理輸出影像,該網路用以將該經處理輸出影像選路傳送至該等輸出之至少一者。
實例2:如實例1之影像處理器單元,其中該網路用以在該輸入影像經選路傳送至該影像處理器電路時,將在該等輸入之一者處接收之一第二輸入影像選路傳送至該等輸出之一者。
實例3:如實例1或2之影像處理器單元,其中藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以執行以下之任一者:偏移校正;雜訊減少;自動白平衡; 去馬賽克;銳化;透鏡陰影校正;色彩校正;色調映射;一時頻變換。
實例4:如前述實例之至少一者之影像處理器單元,其中藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以實施一影像信號處理管線。
實例5:如前述實例之至少一者之影像處理器單元,其中藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以產生影像統計資料。
實例6:如前述實例之至少一者之影像處理器單元,其進一步包括至一主機系統之一介面,該介面用以自該主機系統接收輸入資料,該網路用以將該輸入資料選路傳送至該影像處理器電路,該影像處理器電路用以對該輸入資料執行影像處理程式碼以產生所得資料,該網路用以將該所得資料選路傳送至該主機。
實例7:如前述實例之至少一者之影像處理器單元,其中藉由該影像處理器電路之該影像處理程式碼之該執行係用以執行以下之任一者:神經網路處理;機器學習;面部偵測;面部辨識;產品辨識; 場景辨識;語言翻譯。
實例8:如前述實例之至少一者之影像處理器單元,其進一步包括用以將一記憶體耦合至該影像處理器單元之一記憶體介面,該網路用以:在藉由該影像處理器電路處理該輸入影像之前將該輸入影像選路傳送至該記憶體;及/或將來自該記憶體之一輸出影像選路傳送至該等輸出之一者。
實例9:如實例8之影像處理器單元,其中該記憶體用以儲存多個影像且藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以:摻合該多個影像之較多曝光不足區域與該多個影像之較少曝光過度區域;及/或分析該多個影像以判定一最佳靜態分鏡。
實例10:如前述實例之至少一者之影像處理器單元,其進一步包括用以執行相機驅動器程式碼之一嵌入式處理器電路。
實例11:如前述實例之至少一者之影像處理器單元,其中在一應用處理器上實施該影像處理器單元。
實例12:如前述實例之至少一者之影像處理器,其中該影像處理器之架構包含耦合至呈硬體之二維移位暫存器陣列之呈硬體之一執行道陣列。
實例13:如前述實例之至少一者之影像處理器,其中在至少一個旁路模式中,輸入資料經轉發至至少一個輸出及/或影像處理器晶片經組態為一多工器。
實例14:如前述實例之至少一者之影像處理器,其經組態以處理及/ 或產生影像之統計資料。
實例15:如前述實例之至少一者之影像處理器,其經組態以在影像資料之模板上對原始影像進行處理,特定言之可對模板進行處理以執行偏移校正、雜訊減少、自動白平衡、去馬賽克、銳化、透鏡陰影校正、色彩校正、色調映射及/或時頻變換。
實例16:如前述實例之至少一者之影像處理器,其進一步與一模板處理器耦合。
實例17:如前述實例之至少一者之影像處理器,其中一資料運算單元包括具有寬於該執行道陣列之尺寸之一移位暫存器結構,特定言之該執行道陣列外部存在暫存器。
實例18:一種運算系統,其包括:一主機系統,其包括複數個通用處理器及一主記憶體子系統;一或多個相機;一儲存媒體,其用以儲存影像信號處理程式碼;一影像處理器單元,其經耦合在該一或多個相機與該主機系統之間,該影像處理器單元包括下文之a)、b)、c)及d):a)複數個輸入,其等用以接收至少一個輸入影像;b)複數個輸出,其等用以提供至少一個輸出影像;c)一網路,其經耦合至該複數個輸入及該複數個輸出,該網路用以將該等輸入之至少一者耦合至該等輸出之至少一者;及d)一影像處理器電路,其經耦合至該網路,該網路用以將在該等輸入之一者處接收之一輸入影像選路傳送至該影像處理器電路,該影像處理器電路用以執行該影像信號處理程式碼以自該輸入影像產生一經處理輸出 影像,該網路用以將該經處理輸出影像選路傳送至該等輸出之至少一者。
實例19:如實例18之運算系統,其中該網路用以在該輸入影像經選路傳送至該影像處理器電路時,將在該等輸入之一者處接收之一第二輸入影像選路傳送至該等輸出之一者。
實例20:如實例18或19之運算系統,其中藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以執行以下之任一者:偏移校正;雜訊減少;自動白平衡;去馬賽克;銳化;透鏡陰影校正;色彩校正;色調映射;一時頻變換。
實例21:如實例18至20之至少一者之運算系統,其進一步包括至一主機系統之一介面,該介面用以自該主機系統接收輸入資料,該網路用以將該輸入資料選路傳送至該影像處理器電路,該影像處理器電路用以對該輸入資料執行影像處理程式碼以產生所得資料,該網路用以將該所得資料選路傳送至該主機。
實例22:如實例18至21之至少一者之運算系統,其中藉由該影像處理器電路之該影像處理程式碼之該執行係用以執行以下之任一者:神經網路處理; 機器學習;面部偵測;面部辨識;產品辨識;場景辨識;語言翻譯。
實例23:如實例18至22之至少一者之運算系統,其進一步包括用以將一記憶體耦合至該影像處理器單元之一記憶體介面,該網路用以:在藉由該影像處理器電路處理該輸入影像之前將該輸入影像選路傳送至該記憶體;及/或將來自該記憶體之一輸出影像選路傳送至該等輸出之一者。
實例24:如實例18至23之至少一者之運算系統,其中該記憶體用以儲存多個影像且藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以:摻合該多個影像之較多曝光不足區域與該多個影像之較少曝光過度區域;及/或分析該多個影像以判定一最佳靜態分鏡。
實例25:如實例18至24之至少一者之運算系統,其中該影像處理器之架構包含耦合至呈硬體之二維移位暫存器陣列之呈硬體之一執行道陣列。
實例26:如實例18至25之至少一者之運算系統,其中在至少一個旁路模式中,輸入資料經轉發至至少一個輸出及/或影像處理器晶片經組態為一多工器。
實例27:如實例18至26之至少一者之運算系統,其經組態以處理及/或產生影像之統計資料。
實例28:如實例18至27之至少一者之運算系統,其經組態以在影像資料之模板上對原始影像進行處理,特定言之可對模板進行處理以執行偏移校正、雜訊減少、自動白平衡、去馬賽克、銳化、透鏡陰影校正、色彩校正、色調映射及/或時頻變換。
實例29:如實例18至28之至少一者之運算系統,其中一資料運算單元包括具有寬於該執行道陣列之尺寸之一移位暫存器結構,特定言之該執行道陣列外部存在暫存器。
實例30:一種由一影像處理器單元執行之方法,其包括:將一第一輸入影像選路傳送至該影像處理器單元之一第一輸出;將一第二輸入影像選路傳送至一影像處理器電路,該影像處理器電路包括一執行道陣列及二維移位暫存器陣列;在該影像處理器上執行影像信號處理程式碼以產生一經處理影像,該影像信號處理程式碼之該執行導致該二維移位暫存器陣列使資料在由該執行道陣列執行之影像信號處理運算之間移位;及將該經處理影像選路傳送至該影像處理器單元之一第二輸出。
實例31:如實例30之方法,其中該影像信號處理程式碼之該執行執行以下之任一者:偏移校正;雜訊減少;自動白平衡;去馬賽克; 銳化;透鏡陰影校正;色彩校正;色調映射;一時頻變換。
520:影像處理器
522:影像處理器晶片
531_1至531_3:原始相機影像輸入
532_1:輸出
532_2:輸出
533:周邊介面
535:嵌入式處理器
537_1:輸出多工器
537_2:輸出多工器
538:記憶體控制器
540:局部記憶體
545_1:線
545_2:線

Claims (28)

  1. 一種影像處理器單元,其包括:複數個輸入,其等用以接收至少一個輸入影像;複數個輸出,其等用以提供至少一個輸出影像;一網路,其經耦合至該複數個輸入及該複數個輸出,該網路用以將該等輸入之至少一者耦合至該等輸出之至少一者,其中該影像處理器單元包含硬體中的一執行道陣列(an array of execution lanes),該執行道陣列耦合至硬體之一個二維移位暫存器陣列;及一影像處理器電路,其經耦合至該網路,該網路用以將在該等輸入之一者處接收之一輸入影像路由(route)至該影像處理器電路,該影像處理器電路用以執行影像信號處理程式碼以自該輸入影像產生一經處理輸出影像,該網路用以將該經處理輸出影像路由至該等輸出之至少一者,及其中該影像處理器單元操作在至少一個旁路(by-pass)模式中,其中輸入資料經轉發至至少一個輸出,且該影像處理器單元實施在一應用處理器上,或經組態以處理或產生影像之統計資料(statics)。
  2. 如請求項1之影像處理器單元,其中該網路用以在該輸入影像經路由至該影像處理器電路時,將在該等輸入之一者處接收之一第二輸入影像路由至該等輸出之一者。
  3. 如請求項1或2之影像處理器單元,其中藉由該影像處理器電路之該 影像信號處理程式碼之該執行係用以執行以下之任一者:偏移校正;雜訊減少;自動白平衡;去馬賽克;銳化;透鏡陰影校正;色彩校正;色調映射;一時頻變換。
  4. 如請求項1或2之影像處理器單元,其中藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以實施一影像信號處理管線。
  5. 如請求項1或2之影像處理器單元,其中藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以產生影像統計資料。
  6. 如請求項1或2之影像處理器單元,其進一步包括至一主機系統之一介面,該介面用以自該主機系統接收輸入資料,該網路用以將該輸入資料路由至該影像處理器電路,該影像處理器電路用以對該輸入資料執行影像處理程式碼以產生所得資料,該網路用以將該所得資料路由至該主機。
  7. 如請求項1或2之影像處理器單元,其中藉由該影像處理器電路之該 影像處理程式碼之該執行係用以執行以下之任一者:神經網路處理;機器學習;面部偵測;面部辨識;產品辨識;場景辨識;語言翻譯。
  8. 如請求項1或2之影像處理器單元,其進一步包括用以將一記憶體耦合至該影像處理器單元之一記憶體介面,該網路用以:在藉由該影像處理器電路處理該輸入影像之前將該輸入影像路由至該記憶體;及/或將來自該記憶體之一輸出影像路由至該等輸出之一者。
  9. 如請求項8之影像處理器單元,其中該記憶體用以儲存多個影像且藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以:摻合該多個影像之較多曝光不足區域與該多個影像之較少曝光過度區域;及/或分析該多個影像以判定一最佳靜態分鏡。
  10. 如請求項1或2之影像處理器單元,其進一步包括用以執行相機驅動器程式碼之一嵌入式處理器電路。
  11. 如請求項1或2之影像處理器,其中在至少一個旁路模式中,輸入資料經轉發至至少一個輸出及/或影像處理器晶片經組態為一多工器。
  12. 如請求項1或2之影像處理器,其經組態以處理及/或產生影像之統計資料。
  13. 如請求項1或2之影像處理器,其經組態以在影像資料之模板上對原始影像進行處理,特定言之可對模板進行處理以執行偏移校正、雜訊減少、自動白平衡、去馬賽克、銳化、透鏡陰影校正、色彩校正、色調映射及/或時頻變換。
  14. 如請求項1或2之影像處理器,其進一步與一模板處理器耦合。
  15. 如請求項1或2之影像處理器,其中一資料運算單元包括具有寬於該執行道陣列之尺寸之一移位暫存器結構,特定言之該執行道陣列外部存在暫存器。
  16. 一種運算系統,其包括:一主機系統,其包括複數個通用處理器及一主記憶體子系統;一或多個相機;一儲存媒體,其用以儲存影像信號處理程式碼;一影像處理器單元,其經耦合在該一或多個相機與該主機系統之 間,該影像處理器單元包括下文之a)、b)、c)及d):a)複數個輸入,其等用以接收至少一個輸入影像;b)複數個輸出,其等用以提供至少一個輸出影像;c)一網路,其經耦合至該複數個輸入及該複數個輸出,其中該影像處理器單元包含硬體中的一執行道陣列,該執行道陣列耦合至硬體之一個二維移位暫存器陣列;及d)一影像處理器電路,其經耦合至該網路,該網路用以將在該等輸入之一者處接收之一輸入影像路由至該影像處理器電路,該影像處理器電路用以執行該影像信號處理程式碼以自該輸入影像產生一經處理輸出影像,該網路用以將該經處理輸出影像路由至該等輸出之至少一者,其中該影像處理器單元操作在至少一個旁路模式中,其中輸入資料經轉發至至少一個輸出,且該影像處理器單元實施在一應用處理器上,或經組態以處理或產生影像之統計資料。
  17. 如請求項16之運算系統,其中該網路用以在該輸入影像經路由至該影像處理器電路時,將在該等輸入之一者處接收之一第二輸入影像路由至該等輸出之一者。
  18. 如請求項16或17之運算系統,其中藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以執行以下之任一者:偏移校正;雜訊減少;自動白平衡; 去馬賽克;銳化;透鏡陰影校正;色彩校正;色調映射;一時頻變換。
  19. 如請求項16或17之運算系統,其進一步包括至一主機系統之一介面,該介面用以自該主機系統接收輸入資料,該網路用以將該輸入資料路由至該影像處理器電路,該影像處理器電路用以對該輸入資料執行影像處理程式碼以產生所得資料,該網路用以將該所得資料路由至該主機。
  20. 如請求項16或17之運算系統,其中藉由該影像處理器電路之該影像處理程式碼之該執行係用以執行以下之任一者:神經網路處理;機器學習;面部偵測;面部辨識;產品辨識;場景辨識;語言翻譯。
  21. 如請求項16或17之運算系統,其進一步包括用以將一記憶體耦合至 該影像處理器單元之一記憶體介面,該網路用以:在藉由該影像處理器電路處理該輸入影像之前將該輸入影像路由至該記憶體;及/或將來自該記憶體之一輸出影像路由至該等輸出之一者。
  22. 如請求項16或17之運算系統,其中該記憶體用以儲存多個影像且藉由該影像處理器電路之該影像信號處理程式碼之該執行係用以:摻合該多個影像之較多曝光不足區域與該多個影像之較少曝光過度區域;及/或分析該多個影像以判定一最佳靜態分鏡。
  23. 如請求項16或17之運算系統,其中在至少一個旁路模式中,輸入資料經轉發至至少一個輸出及/或影像處理器晶片經組態為一多工器。
  24. 如請求項16或17之運算系統,其經組態以處理及/或產生影像之統計資料。
  25. 如請求項16或17之運算系統,其經組態以在影像資料之模板上對原始影像進行處理,特定言之可對模板進行處理以執行偏移校正、雜訊減少、自動白平衡、去馬賽克、銳化、透鏡陰影校正、色彩校正、色調映射及/或時頻變換。
  26. 如請求項16或17之運算系統,其中一資料運算單元包括具有寬於該 執行道陣列之尺寸之一移位暫存器結構,特定言之該執行道陣列外部存在暫存器。
  27. 一種由一影像處理器單元執行之方法,其包括:將一第一輸入影像路由至該影像處理器單元之一第一輸出;將一第二輸入影像路由至一影像處理器電路,該影像處理器電路包括硬體中的一執行道陣列,該執行道陣列耦合至硬體之一個二維移位暫存器陣列;在該影像處理器上執行影像信號處理程式碼以產生一經處理影像,其中該影像信號處理程式碼之該執行導致該二維移位暫存器陣列使資料在由該執行道陣列執行之影像信號處理運算之間移位;及將該經處理影像路由至該影像處理器單元之一第二輸出,其中該影像處理器單元操作在至少一個旁路模式中,其中輸入資料經轉發至至少一個輸出,且該影像處理器單元實施在一應用處理器上,或經組態以處理或產生影像之統計資料。
  28. 如請求項27之方法,其中該影像信號處理程式碼之該執行執行以下之任一者:偏移校正;雜訊減少;自動白平衡;去馬賽克;銳化;透鏡陰影校正; 色彩校正;色調映射;一時頻變換。
TW107103419A 2017-05-15 2018-01-31 可組態及可程式化影像處理器單元、由其執行之方法及計算系統 TWI775805B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/595,289 US10489878B2 (en) 2017-05-15 2017-05-15 Configurable and programmable image processor unit
US15/595,289 2017-05-15

Publications (2)

Publication Number Publication Date
TW201901607A TW201901607A (zh) 2019-01-01
TWI775805B true TWI775805B (zh) 2022-09-01

Family

ID=61132901

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107103419A TWI775805B (zh) 2017-05-15 2018-01-31 可組態及可程式化影像處理器單元、由其執行之方法及計算系統

Country Status (7)

Country Link
US (2) US10489878B2 (zh)
EP (1) EP3625756A1 (zh)
JP (1) JP7066732B2 (zh)
KR (1) KR102279119B1 (zh)
CN (1) CN110300989B (zh)
TW (1) TWI775805B (zh)
WO (1) WO2018212795A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017015390A1 (en) * 2015-07-20 2017-01-26 University Of Maryland, College Park Deep multi-task learning framework for face detection, landmark localization, pose estimation, and gender recognition
US10735646B2 (en) * 2016-09-26 2020-08-04 Rockchip Electronics Co., Ltd. Image-processing microprocessor for supporting an application processor
US10489878B2 (en) * 2017-05-15 2019-11-26 Google Llc Configurable and programmable image processor unit
CN109460690B (zh) * 2017-09-01 2022-10-14 虹软科技股份有限公司 一种用于模式识别的方法和装置
US11528400B2 (en) * 2017-11-08 2022-12-13 Fuzhou Rockchip Electronics Co., Ltd. Image-processing microprocessor for supporting an application processor and multiple cameras
US11468302B2 (en) 2018-03-13 2022-10-11 Recogni Inc. Efficient convolutional engine
CN114341805A (zh) * 2019-07-03 2022-04-12 华夏芯(北京)通用处理器技术有限公司 纯函数语言神经网络加速器系统及结构
US11410027B2 (en) 2019-09-16 2022-08-09 SambaNova Systems, Inc. Performance estimation-based resource allocation for reconfigurable architectures
US20210081691A1 (en) * 2019-09-16 2021-03-18 SambaNova Systems, Inc. Efficient Execution of Operation Unit Graphs on Reconfigurable Architectures Based on User Specification
KR102371880B1 (ko) * 2020-02-04 2022-03-08 엘지전자 주식회사 특정 기능을 강화하여 이미지 데이터를 생성하는 이미지 프로세서, 인공 지능 장치 및 그 방법
TWM600051U (zh) * 2020-04-15 2020-08-11 聯詠科技股份有限公司 影像裝置及其影像處理積體電路
CN113837937A (zh) * 2020-06-24 2021-12-24 Oppo广东移动通信有限公司 多媒体处理芯片、电子设备图像融合方法和图像裁剪方法
CN114071007A (zh) * 2020-08-07 2022-02-18 Oppo广东移动通信有限公司 图像处理方法、多媒体处理芯片以及电子设备
CN114071036A (zh) * 2020-08-10 2022-02-18 Oppo广东移动通信有限公司 多媒体处理芯片、电子设备和动态图像数据处理方法
US11223780B1 (en) * 2020-10-23 2022-01-11 Black Sesame Technologies Inc. Two-stage method to merge burst image frames
CN114945019B (zh) * 2021-02-10 2023-11-21 Oppo广东移动通信有限公司 数据传输方法、装置及存储介质
CN113096029A (zh) * 2021-03-05 2021-07-09 电子科技大学 基于多分支编解码器神经网络的高动态范围图像生成方法
CN113421209B (zh) * 2021-06-21 2022-12-30 安谋科技(中国)有限公司 图像处理方法、片上系统、电子设备和介质
WO2023022251A1 (ko) * 2021-08-18 2023-02-23 엘지전자 주식회사 무선 통신 시스템에서 신호 전송 방법 및 장치
CN117176933B (zh) * 2023-11-02 2024-01-23 摩尔线程智能科技(北京)有限责任公司 一种图像信号处理方法及装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160316107A1 (en) * 2015-04-23 2016-10-27 Google Inc. Two dimensional shift array for image processor
TW201640422A (zh) * 2014-12-19 2016-11-16 英特爾股份有限公司 用於在類神經網路中協同式及分散式計算的方法及設備

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4955024A (en) 1987-09-14 1990-09-04 Visual Information Technologies, Inc. High speed image processing computer with error correction and logging
US6642956B1 (en) 1998-05-29 2003-11-04 Agilent Technologies, Inc. Digital image processor for a digital camera
AU2003232964A1 (en) 2003-04-17 2004-11-04 Nokia Corporation An improved mobile camera telephone
JP4290034B2 (ja) 2004-02-20 2009-07-01 三菱電機株式会社 赤外線固体撮像装置
SG137754A1 (en) 2006-05-12 2007-12-28 Nvidia Corp Antialiasing using multiple display heads of a graphics processor
US8184117B2 (en) * 2007-05-01 2012-05-22 Advanced Micro Devices, Inc. Stencil operations
US10115221B2 (en) * 2007-05-01 2018-10-30 Advanced Micro Devices, Inc. Stencil compression operations
US8786625B2 (en) * 2010-09-30 2014-07-22 Apple Inc. System and method for processing image data using an image signal processor having back-end processing logic
EP2579591A1 (en) * 2011-10-04 2013-04-10 Thomson Licensing Method of and device for encoding an HDR image, method of and device for reconstructing an HDR image and non-transitory storage medium
CN102665049B (zh) * 2012-03-29 2014-09-17 中国科学院半导体研究所 基于可编程视觉芯片的视觉图像处理系统
US10140129B2 (en) * 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US10382674B2 (en) 2013-04-15 2019-08-13 Qualcomm Incorporated Reference image selection for motion ghost filtering
JP2014222473A (ja) 2013-05-14 2014-11-27 日本電気株式会社 データ処理装置、データ処理方法、データ処理制御装置、プログラムおよび記録媒体
KR102023501B1 (ko) 2013-10-02 2019-09-20 삼성전자주식회사 설정가능한 이미지 처리 파이프라인을 포함하는 시스템 온 칩과, 상기 시스템 온 칩을 포함하는 시스템
US9374526B2 (en) 2014-07-31 2016-06-21 Apple Inc. Providing frame delay using a temporal filter
EP3035204B1 (en) * 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
EP3035203A1 (en) * 2014-12-19 2016-06-22 Intel Corporation Fine-grain storage interface and method for low power accelerators
US9965824B2 (en) * 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US10291813B2 (en) * 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9785423B2 (en) * 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US9756268B2 (en) * 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US10313641B2 (en) * 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US10204396B2 (en) * 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US20180007302A1 (en) * 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180005059A1 (en) * 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
US10410314B2 (en) * 2017-04-27 2019-09-10 Apple Inc. Systems and methods for crossfading image data
US10430919B2 (en) * 2017-05-12 2019-10-01 Google Llc Determination of per line buffer unit memory allocation
US10789202B2 (en) * 2017-05-12 2020-09-29 Google Llc Image processor with configurable number of active cores and supporting internal network
US10872393B2 (en) * 2017-05-15 2020-12-22 Google Llc Image processor with high throughput internal communication protocol
US10489878B2 (en) * 2017-05-15 2019-11-26 Google Llc Configurable and programmable image processor unit
JP7005284B2 (ja) * 2017-11-01 2022-01-21 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、及び、プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201640422A (zh) * 2014-12-19 2016-11-16 英特爾股份有限公司 用於在類神經網路中協同式及分散式計算的方法及設備
US20160316107A1 (en) * 2015-04-23 2016-10-27 Google Inc. Two dimensional shift array for image processor

Also Published As

Publication number Publication date
US20180330466A1 (en) 2018-11-15
WO2018212795A1 (en) 2018-11-22
TW201901607A (zh) 2019-01-01
EP3625756A1 (en) 2020-03-25
JP7066732B2 (ja) 2022-05-13
US10489878B2 (en) 2019-11-26
JP2020516981A (ja) 2020-06-11
CN110300989A (zh) 2019-10-01
US11250537B2 (en) 2022-02-15
KR20190107107A (ko) 2019-09-18
US20200167890A1 (en) 2020-05-28
KR102279119B1 (ko) 2021-07-19
CN110300989B (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
TWI775805B (zh) 可組態及可程式化影像處理器單元、由其執行之方法及計算系統
US10719905B2 (en) Architecture for high performance, power efficient, programmable image processing
US11153464B2 (en) Two dimensional shift array for image processor
US20200186667A1 (en) Sheet Generator For Image Processor
US10915773B2 (en) Statistics operations on two dimensional image processor
JP2019507922A (ja) 画像プロセッサのためのコンパイラ管理メモリ
US10996988B2 (en) Program code transformations to improve image processor runtime efficiency
CN110574067A (zh) 图像处理器i/o单元

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent