TWI769054B - 適用於多鏡頭照相機之多處理器系統及其方法 - Google Patents

適用於多鏡頭照相機之多處理器系統及其方法 Download PDF

Info

Publication number
TWI769054B
TWI769054B TW110130196A TW110130196A TWI769054B TW I769054 B TWI769054 B TW I769054B TW 110130196 A TW110130196 A TW 110130196A TW 110130196 A TW110130196 A TW 110130196A TW I769054 B TWI769054 B TW I769054B
Authority
TW
Taiwan
Prior art keywords
image
lens
processor element
images
vertex
Prior art date
Application number
TW110130196A
Other languages
English (en)
Other versions
TW202310601A (zh
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 信驊科技股份有限公司
Priority to TW110130196A priority Critical patent/TWI769054B/zh
Application granted granted Critical
Publication of TWI769054B publication Critical patent/TWI769054B/zh
Publication of TW202310601A publication Critical patent/TW202310601A/zh

Links

Images

Landscapes

  • Cameras In General (AREA)
  • Stereoscopic And Panoramic Photography (AREA)

Abstract

本發明揭露一個適用於多鏡頭照相機之多處理器系統。該系統包含多個處理器元件及多個鏈結。各處理器元件包含多個輸入/輸出(I/O)埠以及一處理單元。該多鏡頭照相機捕捉一個具有X度水平視域及Y度垂直視域的視野,其中X<=360及Y<180。各鏈結係連接該些處理器元件之一的該些I/O埠之一至該些處理器元件之另一的該些I/O埠之一,以致於各處理器元件以二個或更多鏈結連接至一個或二個鄰近處理器元件,各鏈結被規劃為以單一方向傳輸資料。

Description

適用於多鏡頭照相機之多處理器系統及其方法
本發明係有關於影像處理,特別地,尤有關於一種適用於多鏡頭照相機之多處理器系統及其方法。
傳統上,利用集中式(centralized)處理器系統來處理多鏡頭照相機所產生的影像資料是市場上的主流架構,集中式處理器系統的優點是低硬體成本及低功率消耗等等。然而,隨著照相機擷取影像或視訊的解析度越來越高以及鏡頭數目越來越多,以該集中式處理器系統提供給前述照相機的缺點是:就計算資源、記憶體頻寬、計算速度及處理效能而言,處理影像的代價是高的。故業界亟需一種新架構及方法來解決上述問題,因此,提出本發明。
有鑒於上述問題,本發明的目的之一是提供一種適用於多鏡頭照相機之多處理器系統,藉以增加記憶體頻寬及計算速度,並改善處理效能。
根據本發明之一實施例,係提供一種多處理器系統,包含多個處理器元件及多個鏈結。該些處理器元件,耦接至一個多鏡頭照相機,各處理器元件包含多個輸入/輸出(I/O)埠以及一處理單元,該處理單元耦接至該些I/O埠。該多鏡頭照相機捕捉一個具有X度水平視域及Y度垂直視域的視野,其中X<=360及Y<180。各鏈結係連接該些處理器元件之一的該些I/O埠之一至該些處理器元件之另一的該些I/O埠之一,以致於各處理器元件以二個或更多鏈結連接至一個或二個鄰近處理器元件,各鏈結被規劃為以單一方向傳輸資料。
本發明之另一實施例,係提供一種影像處理方法,適用於一個耦接一個多鏡頭照相機的多處理器系統,該多鏡頭照相機捕捉一個具有X度水平視域及Y度垂直視域的視野,該多處理器系統包含多個處理器元件以及多個鏈結,各處理器元件以二個或更多鏈結連接至一個或二個鄰近處理器元件,各鏈結被規劃為以單一方向傳輸資料,該方法包含:於一處理器元件j:取得從該多鏡頭照相機捕捉的n j個鏡頭影像;於一第一傳輸階段,選擇性地收發與該n j個鏡頭影像及零個或更多個負責重疊區有關的輸入及輸出第一邊緣影像資料往及來自該一個或二個鄰近處理器元件;根據一第一頂點次列表、該n j個鏡頭影像及該輸入邊緣影像資料,決定該負責重疊區的多個負責控制區的最佳接合係數;於一第二傳輸階段,選擇性地收發輸入及輸出接合係數往及來自該一個或二個鄰近處理器元件;以及,根據該第一頂點次列表、該些最佳接合係數、該輸入接合係數、該輸入邊緣影像資料及該n j個鏡頭影像,產生n j個工作面影像,其中,n j>=1、X<=360及Y<180。其中,根據該些負責控制區,從該些最佳接合係數中選出該些輸出接合係數;其中,該第一頂點次列表包含多個具有第一資料結構的第一頂點,該些第一資料結構定義該n j個鏡頭影像及一投影影像之間的第一頂點映射,其中該投影影像是有關於來自全部處理器元件的工作面影像。
茲配合下列圖示、實施例之詳細說明及申請專利範圍,將上述及本發明之其他目的與優點詳述於後。
在通篇說明書及後續的請求項當中所提及的「一」及「該」等單數形式的用語,都同時包含單數及複數的涵義,除非本說明書中另有特別指明。在通篇說明書及後續的請求項當中所提及的相關用語定義如下,除非本說明書中另有特別指明。在通篇說明書中,具相同功能的電路元件使用相同的參考符號。
本發明的特色之一是利用一個多處理器架構來處理來自多鏡頭照相機之影像資料,以充分利用計算資源、增加記憶體頻寬與計算速度以及改善處理效能。
圖1係根據本發明,顯示一個適用於多鏡頭照相機之多處理器系統的方塊架構圖。參考圖1,多處理器系統100,用來處理來自一多鏡頭照相機110之影像資料,包含一主要處理器元件(processor component,PC) 120、m個輔助處理器元件 121~12m以及多個鏈結(link)(顯示於圖4A/8/9A),其中m>=1。該照相機110的鏡頭分成(m+1)個鏡頭群組140~14m,分別透過輸入/輸出埠(I/O port)151耦接至該主要處理器元件120及該m個輔助處理器元件 121~12m,其中
Figure 02_image001
,….,
Figure 02_image003
>=1。根據本發明,各處理器元件12j之實施可使用積體電路裝置(device),如可程式化(programmable)處理器、特殊應用積體電路(ASIC)及專屬處理器元件等,其中0<=j<=m。一實施例中,該多處理器系統100/400/800/900是系統單晶片(system on a chip,SOC),可以被併入一計算裝置(如手機、平板電腦、穿戴式(wearable)電腦)以針對照像機110所擷取的影像或視訊進行影像處理。
該多鏡頭照相機110可擷取靜止或動態影像。該多鏡頭照相機110可以是一全景照相機(如圖2A之四鏡頭照相機110A)或一廣角照相機(如圖2B-2C之三鏡頭照相機110B及二鏡頭照相機110C),對應地,一接收器180從系統100接收編碼視訊流(en 或en0~enm)以形成一投影影像,該投影影像可以是一全景影像或一廣角影像。在圖2B-2C中,照相機110B/C的架構11B/C的二個邊緣或工作面(鏡頭K0及K1分別架設於該二個邊緣之上)形成120度角。請注意,該120度角只是示例,而非本發明之限制,實際實施時,該架構11B/C的二個邊緣可形成其他角度。該多鏡頭照相機110可同時捕捉到一個涵蓋X度水平視域(field of view,FOV)以及Y度的垂直FOV的視野,以產生多個鏡頭影像,其中X<=360,Y<180,例如360
Figure 02_image005
160或180
Figure 02_image005
90等。舉例而言,圖2A之照相機110A,其包含四個鏡頭(圖未示)且分別架設在一立方體架構11A的四個工作面上,以同時捕捉到一個具有360度水平視域FOV及90度垂直FOV的視野,以產生四個鏡頭影像。請注意,只要能捕捉到一個X度水平FOV及Y度垂直FOV的視野,本發明不會限制該照相機110的鏡頭數量,其中X<=360,Y<180,必要條件是任二個鄰近鏡頭的視野之間應有足夠的重疊,以助影像拼接。
各處理器元件12j包含一處理單元12j-1、一局部非揮發性記憶體(local nonvolatile memory,NVM)16j、一局部揮發性記憶體(VM)17j以及多個I/O埠151~15
Figure 02_image007
,其中0<=j<=m及
Figure 02_image007
>=3。各處理器元件12j與其本身的局部非揮發性記憶體16j及局部揮發性記憶體17j一起運作。請注意,各處理器元件12j的I/O埠的數目t j是隨著以下的因素而改變:該主要處理器元件120是否合併來自其他輔助處理器元件的工作面影像/強化影像、數目m的大小、照相機類型(全景或廣角照相機)、處理器元件12j的類型(主要或輔助)及相對於主要處理器元件120的位置。前述I/O埠151~15
Figure 02_image007
可以是一般傳統設計,或是包含電路以修改資料來符合一高速串列介面(serial interface)標準,例如,但不受限於,移動產業處理器介面(mobile industry processor interface,MIPI)。以下實施例中,各I/O埠151~15
Figure 02_image007
係以MIPI埠做說明,應理解的是I/O埠151~15
Figure 02_image007
並不以此為限,現存或將來發展出來之高速串列介面標準可適用於本發明之概念。I/O埠151~15
Figure 02_image007
可以各自被規劃(configured)為輸入MIPI埠或輸出MIPI埠。各鏈結連接該些處理器元件之一的該些I/O埠之一至該些處理器元件之另一的該些I/O埠之一。
各處理單元12j-1包含一影像訊號處理器(image signal processor,ISP)131、一圖像處理單元(graphics processing unit,GPU)、一影像品質強化(image quality enhancement,IQE)單元133以及一編碼暨傳送單元134。請注意,IQE單元133並非本發明之必要元件,因此在圖1 中以虛線表示。局部揮發性記憶體170~17m用來儲存前述處理單元120-1~12m-1會用到的各種資料,例如包含程式或從照相機110取得的影像資料。局部非揮發性記憶體160~16m包含多個程式或指令,分別由前述處理單元120-1~12m-1執行,以便執行圖4B-4C及7A-7B的方法的所有步驟,該些方法將於後面詳述。另外,處理單元120-1執行儲存於局部非揮發性記憶體160中的程式,以對從照相機110的
Figure 02_image001
個鏡頭140取得並儲存資料於局部揮發性記憶體170的影像資料進行各種資料處理或運算,以及控制該多處理器系統100的所有運作,包含控制該照相機110及該m個輔助處理器元件 121~12m。各輔助處理器元件 12j的處理單元12j-1係獨立於該主要處理器元件 120之外來運作,執行儲存於局部非揮發性記憶體16j中的程式,以對從照相機110的
Figure 02_image009
個鏡頭14j取得並儲存於局部揮發性記憶體17j的影像資料進行各種資料處理或運算,其中1<=j<=m。具體而言,該些ISP 131分別透過本身的輸入埠151,接收來自照相機110的對應鏡頭群組14j的影像感應器(sensor,圖未示)的電訊號,並將該些電訊號轉換成多個數位鏡頭影像;根據多個鏡頭影像、原始與修正主要頂點次列表、m個原始與m個修正輔助頂點次列表,該些GPU 132分別執行儲存於局部非揮發性記憶體160~16m中的程式,以決定最佳接合係數以及進行柵格化(rasterization)、紋理映射(texture mapping)及混和操作,以形成一主要工作面(face)影像及m個輔助工作面影像F1~Fm(將於後面詳述)。該些IQE單元133對該主要工作面影像及該m個輔助工作面影像F1~Fm進行對比強化、低通濾波及銳化(sharpness)處理,以產生一主要強化影像F0’及m個輔助強化影像F1’~Fm’。最後,各處理器元件 120~12m的編碼暨傳送單元134分別將該主要強化影像F0’及該m個輔助強化影像F1’~Fm’編碼為(m+1)個編碼視訊流en0~enm,再將該(m+1)個編碼視訊流en0~enm傳送給一接收器180,以便產生一全景影像或一廣角影像。
在通篇說明書及後續的請求項當中所提及的相關用語定義如下,除非本說明書中另有特別指明。「紋理座標」一詞指的是一紋理空間(如一紋理影像或鏡頭影像)中的座標;「柵格化操作」一詞指的是將場景幾何形狀(scene geometry)(或一投影影像)映射至各鏡頭影像的紋理座標的計算過程。「 收發(tranceive)」一詞指的是:傳送以及/或接收。「投影」一詞指的是:將一球體表面攤平成一個二維(2D)平面,例如一投影影像。
本發明多處理器系統100適用多種投影方式。該些投影包含,但不受限於,等距長方投影、圓柱(cylindrical)投影以及修正圓柱投影。修正圓柱形投影包含,但不受限於,米勒(Miller)投影、墨卡托(Mercator)投影、蘭伯特圓柱等面積(Lambert cylindrical equal area)投影、帕尼尼(Pannini)投影等。據此,上述投影影像包含但不限於:一等距長方投影影像、一圓柱投影影像以及一修正圓柱投影影像。圖3B-3C係有關等距長方投影。至於圓柱投影以及修正圓柱投影的實施方式已為本領域技術人士所熟知,在此不予贅述。
為清楚及方便描述,以下的例子及實施例僅以等距長方投影及等距長方全景影像作說明,並假設全景照相機110A包含四個鏡頭K0~K3且分別架設在立方體架構11A的四個工作面(右面、左面、正面、背面)上。須注意的是,本發明多處理器系統100的運作方式亦適用於廣角照相機、上述圓柱投影以及修正圓柱投影。
圖3A係顯示一立方體架構11A與一球體12之間的關係。如圖2A及3A所示,四個鏡頭照相機110A包含四個鏡頭K0~K3且分別架設在一立方體架構11A的四個工作面上,該四個工作面的任二個鄰近面係實質上正交,例如分別朝向虛擬球體12的經度(longitude)0度、90度、180度及270度,以同時捕捉到一個具有360度水平FOV及90度垂直FOV的視野,並產生四個鏡頭影像。請參考圖3D,區域A(0)~A(3)內的像素是由二個鏡頭/紋理影像重疊而成,而其他區域b0~b3內的像素則來自於單一鏡頭/紋理影像。因此,可對該些重疊區域13進行拼接(stitch)或混和操作,以形成一等距全景影像。一般而言,重疊區域(如圖3D的A(0)~A(3))的大小會隨著照相機110A的鏡頭FOA、鏡頭感應器解析度及鏡頭架設角度而改變。
多處理器系統100的處理管線(pipeline)分為離線階段(offline phase)和連線階段(online phase)。於離線階段,一旦照相機110A的鏡頭FOA、鏡頭感應器解析度及鏡頭架設角度被固定,重疊區域A(0)~A(3)的大小也會固定。然後,該照相機110A的四個鏡頭分別被校正,接著,採用適合的影像對準(registration)技術來產生一原始頂點列表,因此該原始頂點列表中的各頂點提供該等距長方全景影像及該些鏡頭影像之間(或該等距長方座標及該些紋理座標之間)的映射關係。例如,半徑2公尺(r=2)的球體12表面上被劃出許多圓圈,當作經度及緯度,其多個交叉點被視為多個校正點。四個鏡頭K0~K3捕捉該些校正點,且該些校正點於該些鏡頭影像上的位置為已知。然後,因為該些校正點的視角(view angle)和該些紋理座標被連結,故可建立該等距長方全景影像及該些鏡頭影像之間的映射關係。在本說明書中,具上述映射關係的校正點被定義為一個”頂點”。簡言之,在離線階段中,對各頂點在該等距長方全景影像及該些鏡頭影像之間的關係進行校正,以得到該原始頂點列表。
圖3B顯示一個三角形網格(mesh),係用以模型化一球體表面。參考圖3B,利用一個三角形網格來模型化一球體12的表面。圖3C顯示一個多邊形網格,係用以組成/模型化該等距長方全景影像。透過對圖3B三角形網格進行一等距長方投影而產生圖3C多邊形網格,而圖3C多邊形網格是多個四邊形或/及多個三角形的集合。
於離線階段,根據該等距長方全景影像及該些鏡頭影像的幾何形狀,對多邊形網格(圖3C)的各頂點,計算其等距長方座標及紋理座標,以產生一原始頂點列表。於離線階段,在照相機110A的鏡頭FOA、鏡頭感應器解析度及鏡頭架設角度被固定後,只需計算/產生一次該原始頂點列表。該原始頂點列表是多個頂點的列表,該些頂點形成該多邊形網格(圖3C)的多個四邊形或/及三角形,且各頂點由一相對應資料結構所定義。該資料結構定義了一目的空間及一紋理空間之間(或該等距長方座標及該紋理座標之間)的頂點映射關係。表一顯示該原始頂點列表中各頂點之資料結構的一個例子。
                                  表 一
屬性 說明  
(x, y) 等距長方座標  
N 涵蓋/重疊的鏡頭影像數目  
ID 1 第一個鏡頭影像的ID  
(u 1, v 1) 在第一個鏡頭影像中的紋理座標  
(idx 10, idx 11) 第一個鏡頭影像的接合係數索引  
Alpha 1 第一個鏡頭影像中接合係數的混合權值  
….. ……….  
ID N 第N個鏡頭影像的ID  
(u N, v N) 在第N個鏡頭影像中的紋理座標  
(idx N0, idx N1) 在第N個鏡頭影像中的接合係數索引  
Alpha N 第N個鏡頭影像中接合係數的混合權值  
圖4A係根據本發明一實施例,顯示一個適用於四鏡頭照相機之四處理器系統的方塊架構圖。參考圖4A,四處理器系統400,用來處理來自一四鏡頭照相機110A之影像資料,包含一主要處理器元件 120、三個輔助處理器元件 121~123以及九個鏈結,且各鏈結係連接二個處理器元件,其中鏈結481並非必須。透過輸入埠151,四個處理器元件 120~123分別連接至照相機110A之四個鏡頭K0~K3,為清楚及方便描述,圖4A僅顯示四個處理器元件 120~123與其包含的I/O埠及該九個鏈結,並於後面詳述。於本實施例中,主要處理器元件 120包含六個I/O埠151~155及157、輔助處理器元件 121/123包含五個I/O埠151~155以及輔助處理器元件 122包含六個I/O埠151~156。其中,I/O埠151、153~154及157被規劃為輸入埠,而I/O埠152及155~156被規劃為輸出埠,各鏈結係連接一處理器元件的輸入埠至另一處理器元件的輸出埠。請注意,雖然圖4A, 8及9A顯示連接一處理器元件的輸入埠至另一處理器元件的輸出埠之間有多個鏈結,但實際上,該多個鏈結指的仍是相同鏈結,該多個鏈結僅表示該二個處理器元件之間、透過相同鏈結於多個不同時間點的資料傳輸;例如圖4A處理器元件120的I/O埠152及處理器元件121的I/O埠154之間的二鏈結482係表示透過鏈結482,於二個不同時間點(傳輸階段二及三)所進行的資料傳輸;圖8處理器元件121的I/O埠152及處理器元件120的I/O埠153之間的四個鏈結801係表示透過鏈結801,於四個不同時間點(於不同傳輸階段一至四)所進行的資料傳輸。
另請注意,圖4A, 8及9A顯示處理器元件的連接拓樸(topology),不一定是處理器元件的實體配置方式。類似地,在通篇說明書及後續的請求項當中,應理解:以「鄰近」或「附近」用語來形容該些處理器元件時指的是連接拓樸,而不是特定的實體配置方式。
在離線階段中,因為四處理器系統400包含四個處理器元件120~123,故根據等距長方座標,該原始頂點列表(如表一)被分成四個原始頂點次列表,即一個原始主要頂點次列表or0及三個原始輔助頂點次列表or1~or3,而且該四個原始頂點次列表or0~or3分別被儲存於四個局部非揮發性記憶體160~163,以進行後續影像處理。
圖4B-4C係根據本發明,顯示適用於多處理器系統100/400/800 /900的影像處理方法之流程圖。以下,依據圖4B-4C的流程,依序說明該四處理器系統400的運作方式。於步驟S402,各處理器元件12j的ISP 131透過MIPI輸入埠151,接收及解析(parse) MIPI封包(packet)、將該些電訊號轉換為一數位鏡頭影像iKj(包含與照相機110A的一對應鏡頭的影像感應器有關的電訊號),以及根據封包標頭(header)的資料型態(如0x2A),將該數位鏡頭影像iKj儲存於其本身的局部揮發性記憶體17j,其中0<=j<=3。
在圖4A的例子中,各處理器元件負責單一的重疊區,如圖3D所示。一實施例中,四個處理器元件120~123分別取得鏡頭影像iK0~iK3,及分別負責四個重疊區A(3)、A(0)、A(1)、A(2)。為清楚及方便描述,以下的例子及實施例的說明係假設四個處理器元件120~123分別取得鏡頭影像iK0~iK3,及分別負責重疊區A(0)、A(1)、A(2)、A(3)。
於步驟S404(即傳輸階段一),為形成前述四個重疊區,各處理器元件需透過輸出埠155,傳送本身鏡頭影像的左邊緣資料至一鄰近處理器元件,並透過輸入埠153,從另一鄰近處理器元件接收鄰近右鏡頭影像的左邊緣資料。對各處理器元件,輸出的本身鏡頭影像的左邊緣資料係位在其負責的重疊區域的對面邊緣;同時,其本身鏡頭影像的右邊緣資料以及其接收到的鄰近右鏡頭影像的左邊緣資料形成其負責的重疊區域,並且上述本身鏡頭影像的右邊緣資料以及其接收到的鄰近右鏡頭影像的左邊緣資料的大小係有關於其負責重疊區域的大小;例如邊緣資料rK0’及iK1’形成重疊區A(0) 且邊緣資料rK0’及iK1’ 的大小與A(0)的大小有關。如上所述,一旦照相機110A的鏡頭FOA、鏡頭感應器解析度及鏡頭架設角度被固定,就會決定重疊區域A(0)~A(3)的大小。假設一鏡頭影像的左邊緣資料及右邊緣資料分別指的是該鏡頭影像最左側的四分之一(即H*W/4;H及W分別表示本身鏡頭影像的高與寬)及最右側的四分之一,為方便描述,以下將” 四分之一”簡稱為” 夸特(quarter)”。因為處理器元件120取得鏡頭影像iK0及負責重疊區A(0),處理器元件120的ISP 131需透過輸出埠155,傳送本身鏡頭影像iK0的最左側夸特iK0’至處理器元件123,而處理器元件120的GPU 132透過輸入埠153,從處理器元件121的ISP 131接收及解析MIPI封包(包含鄰近右鏡頭影像iK1的最左側夸特iK1’),並根據封包標頭的資料型態(如0x30,代表輸入的邊緣資料),將該最左側夸特iK1’儲存於其本身的局部揮發性記憶體170,以致於該最左側夸特iK1’及本身鏡頭影像iK0的最右側夸特rK0’形成重疊區A(0)。於步驟S404中,其餘處理器元件121~123的運作方式類似於處理器元件120。
在理想狀況下,該四個鏡頭K0~K3同時位在該立方體架構11A的相機系統中心53,因此一物體55的單一理想成像位置(imaging point)50係位在半徑2公尺(r=2)的成像平面(image plane)12上,如第5A圖的左側所示。以鏡頭K1及K2為例,因為鏡頭影像iK1的理想成像位置50與鏡頭影像iK2的理想成像位置50相符,在完成影像拼接/混合操作後,該等距長方全景影像就會呈現出完美的拼接/混合結果。然而,在實際狀況下,鏡頭影像iK1與鏡頭影像iK2的鏡頭中心56及57相對於系統中心53有一偏移量ofs,結果,在完成影像拼接/混合操作後,該等距長方全景影像就會清楚呈現出不匹配的影像缺陷。
圖3D顯示一等距長方全景影像中具有四個重疊區域A(1)~A(4)及二十個控制區R(1)~R(20)的例子。請參考圖3D,各重疊區A(1)~A(4)包含排成一行(column)的P1個控制區,其中P1>=3。以下的例子及實施例係以等距長方全景影像的各重疊區包含5個(P1=5)控制區為例做說明。在圖3D的例子中,該等距長方全景影像有二十個控制區R(1)~R(20),且該些控制區R(1)~R(20)分別具有二十個接合(warping)係數C(1)~C(20),該二十個接合係數分別表示該二十個控制區R(1)~R(20)的不同接合程度。
在量測模式下,根據最接近一目標頂點之二個控制區的”測試”接合係數及該目標頂點一對應接合係數的混合權值,各GPU修改前述原始頂點次列表or0~or3中各頂點於各鏡頭影像的紋理座標,以產生各控制區的區域誤差(步驟S705&706);而在顯像模式下,根據最接近一目標頂點之二個控制區的”最佳”接合係數及該目標頂點一對應接合係數的混合權值,各GPU修改前述原始頂點次列表or0~or3中各頂點於各鏡頭影像的紋理座標,以極小化上述不匹配的影像缺陷 (步驟S409)。圖5B顯示於鏡頭影像iK1中該目標頂點P及十個控制區R(1)~R(10)間位置關係之一示例。在圖5B的例子中,該角度
Figure 02_image011
為順時針方向且形成於一第一向量V1及一第二向量V2之間;該第一向量V1以影像中心51(具紋理座標(u center, v center))為起點,以啟始控制區R(8)的位置52為終點,而該第二向量V2以影像中心51為起點,以該目標頂點P(u P, v P)為終點。假設
Figure 02_image011
=119. 5 o,因為該鏡頭影像iK1的左側及右側分別有五個控制區,故90 o/4=22.5 o、 idx =
Figure 02_image011
/22.5 o=5 及
Figure 02_image011
mod 22.5 o=
Figure 02_image011
-idx
Figure 02_image005
22.5 o=7 o。在離線階段時,就可決定哪二個控制區(如R(4)及R(5))最鄰近該目標頂點P,並將其索引值(4及5)寫入/儲存至原始頂點次列表or1中頂點P的資料結構之鏡頭影像iK1的” 接合係數索引”欄位中(如表一);此外,在離線階段時,亦計算並儲存接合係數(C(4)及C(5))的混合權值(=7/22.5) 至原始頂點次列表or1中頂點P的資料結構之鏡頭影像iK1的” 接合係數的混合權值(Alpha)”欄位中。請注意,量測模式下的一組二十個測試接合係數(C t(1)~C t(20))以及顯像模式下的一組二十個最佳接合係數(C(1)~C(20))分別被安排為一維(1D)的接合係數陣列或一維的資料串流。再者,於量測模式下(步驟S702),根據圖5A的偏移量ofs,來指定該組二十個測試接合係數(C t(1)~C t(20))的值;於量測模式(步驟S406及S772)結束時會決定該組二十個最佳接合係數(C(1)~C(20))的值,該些最佳接合係數的值係使用於顯像模式下(步驟S409)。
本發明特色之一是於量測模式下,在一預設的迴圈數目(圖7A中的max)內決定二十個控制區的最佳接合係數。該預設的迴圈數目係有關於一偏移量ofs,該偏移量ofs係上述照相機110A的鏡頭中心56偏離其相機系統中心53的距離(參考圖5A)。在量測模式下,根據圖5A的偏移量ofs,將二十個測試接合係數C t(1)~C t(20)設定至不同數值範圍,以量測該些區域誤差量E(1)~E(20),且每一次(或每一次迴圈)係將該二十個測試接合係數設定至相同值。例如,假設ofs=3公分,該二十個測試接合係數C t(1)~C t(20)被設定至數值範圍0.96~1.04,倘若每次增量是0.01,總共會量測九次(圖7A中的max=9);假設ofs=1公分,該二十個測試接合係數C t(1)~C t(20)被設定至數值範圍0.99~1.00,若每次增量是0.001,總共會量測十次(圖7A中的max=10)。請注意,於離線階段,便已偵測出或決定該偏移量ofs,故該二十個測試接合係數C t(1)~C t(20)的值也被預先決定,並預先儲存於局部非揮發性記憶體16j中,其中,0<=j<=3。
於步驟S406中,於量測模式下,執行圖7A之決定控制區之最佳接合係數之方法。以下,為清楚及方便描述,圖7A之決定控制區R(6)~R(10)之最佳接合係數C(6)~C(10)之方法及圖7B之係數決策操作之方法,是以輔助處理器元件 121的GPU 132為例作說明,並假設ofs=3公分。應理解的是:圖7A之決定控制區之最佳接合係數之方法及圖7B之係數決策操作之方法亦適用於處理器元件 120及122~123的GPU 132,以分別產生最佳接合係數C(1)~C(5)及C(11)~C(20)。
步驟S702:將迴圈數目Q1及測試接合係數分別設成新值。一實施例中,第一次迴圈中將Q1設為1,之後每次迴圈都將Q1增加1;若ofs=3公分,第一次迴圈中將該些測試接合係數C t(1)~C t(20)都設為0.96(即C t(1)=…=C t(20)=0.96),並在後續迴圈中,依序將該些接合係數C t(1)~C t(20)設為0.97,…., 1.04。
步驟S704:將所有區域誤差量E(i)清除為0,其中,i=6,…,10。
步驟S705:根據測試接合係數C t(1)~C t(10)的值及原始輔助頂點次列表or1,產生一修正頂點次列表m1。以下,再次以圖5B為例做說明。於接收來自局部非揮發性記憶體161的原始輔助頂點次列表or1後,輔助處理器元件 121的GPU 132根據該目標頂點P的資料結構中在該鏡頭影像iK1的”接合係數索引”欄位(即4及5),從一維的測試接合係數陣列中擷取出二個測試接合係數(C t(4)及C t(5)),再根據該目標頂點P的資料結構中在該鏡頭影像iK1 (請參考表一)的” 接合係數的混合權值(Alpha)”欄位(即7/22.5),根據下列方程式計算出內插接合係數C’ :C’=C t(4)
Figure 02_image013
(7/22.5)+C t(5)
Figure 02_image013
(1-7/22.5)。之後,處理器元件 121的GPU 132根據下列方程式,計算該目標頂點P在鏡頭影像iK1中的修正紋理座標(u P’, v P’):u P’=(u P- u center)* C’ + u center; v P’=(v P- v center)*C’ + v center。依此方式,處理器元件 121的GPU 132根據該十個測試接合係數C t(1)~C t(10),依序修正來自該原始輔助頂點次列表or1之各頂點之鏡頭影像iK1的紋理座標,以產生一修正輔助頂點次列表m1。同樣地,處理器元件 120及122~123的GPU 132亦根據該二十個測試接合係數C t(1)~C t(20),依序修正來自三個原始輔助頂點次列表or0及or2~or3之各頂點之鏡頭影像iK0及iK2~iK3的所有紋理座標,以產生三個修正頂點次列表m0及m2~m3。表二顯示該修正頂點列表中各頂點之資料結構的一個例子。
                              表 二
屬性 說明
(x, y) 等距長方座標
N 涵蓋/重疊的鏡頭影像數目
ID 1 第一個鏡頭影像的ID
(u 1’, v 1’) 在第一個鏡頭影像中的修正紋理座標
….. ……….
ID N 第N個鏡頭影像的ID
(u N’, v N’) 在第N個鏡頭影像中的修正紋理座標
步驟S706:由處理器元件 121的GPU 132,根據該修正輔助頂點次列表m1、鏡頭影像iK1及輸入的最左側夸特iK2’,量測該等距長方全景影像的五個控制區R(6)~R(10)的區域誤差量E(6)~E(10)(將於圖6詳述)。為方便描述,利用E(i)=f(C t(i))來代表本步驟S706,其中,i=6,…,10,以及f()代表(由處理器元件 121的GPU 132)根據該修正輔助頂點次列表m1、鏡頭影像iK1及輸入的最左側夸特iK2’,量測該些區域誤差量E(6)~E(10)。
步驟S708:儲存所有區域誤差量E(6)~E(10)及所有測試接合係數的值於一個二維(2D)誤差表格中。表三顯示當ofs=3公分(測試接合係數的數值範圍0.96~1.04)時,該2D誤差表格的一個例子。於表三中,有五個區域誤差量E(6)~E(10)及九個測試接合係數的數值。
                                 表三
  1st 2nd 3rd ---- 7th 8th 9th
測試接合係數 0.96 0.97 0.98 ---- 1.02 1.03 1.04
E(6)            
E(7)       ----      
E(8)            
E(9)            
E(10)            
步驟S710:決定迴圈次數Q1是否到達上限max(=9)。若是,跳到步驟S712,否則,回到步驟702。
步驟S712:根據上述2D誤差表格,進行係數決策操作。
步驟S714:輸出最佳接合係數C(i),其中,i=6,…,10。
圖7B係根據本發明一實施例,顯示步驟S712之進行係數決策操作之方法流程圖。
步驟S761:將Q2設為0以進行初始化。
步驟S762:從上述2D誤差表格中,擷取出一選定之決策群組。回到圖3D,通常各控制區係分別鄰接二個控制區,一選定之控制區及其鄰接的二個控制區形成一選定之決策群組,以決定該選定之控制區之最佳接合係數。例如,一選定控制區R(9)及其鄰接的二個控制區R(8)及R(10)形成一選定之決策群組。然而,若一選定之控制區(如R(6))係位在重疊區A(1)的頂部或底部,則該選定之控制區R(6)就只會與其唯一鄰接的控制區R(7)形成一選定之決策群組,以決定其最佳接合係數C(6)。後續步驟的說明係假設選定一控制區R(7),且R(7)與其鄰接的二個控制區R(6)及R(8)形成一選定之決策群組,以決定其最佳接合係數C(7)。
步驟S764:在該選定決策群組的各控制區的區域誤差量中,決定局部最小值。表四顯示R(6)~R(8) 的區域誤差量及測試接合係數C t(6)~ C t(8)的一個例子。
                               表 四
索引 測試接合係數 R(6)的區域誤差量 R(7)的區域誤差量 R(8)的區域誤差量
1 0.96 1010 2600(*) 820
2 0.97 1005 2650 750
3 0.98 1000 2800 700
4 0.99 900 3000 600(*)
5 1.00 800(*) 2700 650
6 1.01 850 2500 580
7 1.02 950 2400(*) 500(*)
8 1.03 960 2820 700
9 1.04 975 2900 800
如表四所示,在R(6)的九個區域誤差量中只有一個局部最小值,而在R(7)及R(8)的九個區域誤差量中各有二個局部最小值,其中表四中各局部最小值旁分別標出星號(*)。
步驟S766:根據該些局部最小值,選出候選者。表五顯示從表四之該些局部最小值中,選出候選者,其中ID表示索引、WC表示接合係數,而RE表示區域誤差量。候選者的數目等於表四中該些局部最小值的數目。
                                 表 五
  R(6) R(7) R(8)
局部最小值的數目 1 2 2
  ID WC RE ID WC RE ID WC RE
候選者[0] 5 1.00 800 1 0.96 2600 4 0.99 600
候選者[1]       7 1.02 2400 7 1.02 500
步驟S768:根據表五的該些候選者,建立一連結計量(link metric)。如圖7C所示,根據表五的該些候選者,建立一連結計量。
步驟S770:在該連結計量的所有路徑中,決定連結計量值的最小總和。關於二個連結計量值
Figure 02_image015
=0.03 及
Figure 02_image017
=0.06,其二者間的最小值
Figure 02_image019
=min(
Figure 02_image021
)=0.03。關於二個連結計量值
Figure 02_image023
=0.03及
Figure 02_image025
=0.00,其二者間的最小值
Figure 02_image027
=min(
Figure 02_image029
)=0.00。 之後,分別計算路徑0-0-0 及 路徑0-1-1的連結計量值的總和如下:
Figure 02_image031
+
Figure 02_image019
=0.04+0.03=0.07 及
Figure 02_image033
+
Figure 02_image027
=0.02+0.00=0.02。因為
Figure 02_image035
,故可決定
Figure 02_image037
(路徑0-1-1)是該連結計量的所有路徑中,連結計量值的最小總和,如第7C圖中的實線路徑。
步驟S772:決定該選定控制區之最佳接合係數。關於步驟S770所舉的例子中,因為
Figure 02_image039
(路徑0-1-1)是所有路徑中連結計量值的最小總和,故決定1.02為控制區R(7)之最佳接合係數。然而,若結束計算時有二條或更多路徑的連結計量值總和相同,就選擇具最小區域誤差量之節點的接合係數,當作該選定控制區之最佳接合係數。在此,將迴圈次數Q2的值遞增1。
步驟S774:決定迴圈次數Q2是否到達上限5。若是,結束本流程,否則,回到步驟S762以處理下一個控制區。依此方式,各處理器元件 120~123的GPU 132分別形成本身的2D誤差表格,再決定各自負責重疊區內五個控制區的五個最佳接合係數。
圖6係根據本發明一實施例,顯示GPU的示意圖。請參考圖6,各處理器元件的GPU 132包含一柵格化引擎610、一紋理映射電路620、一混和單元630(由一控制訊號CS2所控制)以及一量測單元650(由一控制訊號CS1所控制)。請注意,在量測模式下,若一點的等距長方座標落在其負責的五個控制區內,透過二個控制訊號CS1及CS2,該混和單元630會被禁能(disabled)以及該量測單元650會被致能(enabled);在顯像模式下,透過二個控制訊號CS1及CS2,該混和單元630會被致能以及該量測單元650會被禁能。該紋理映射電路620包含二個紋理映射引擎621~622。圖3C的多邊形網格是多個四邊形或/及多個三角形的集合。因此,柵格化引擎610可對來自一修正頂點次列表的各組四個頂點所形成之一個四邊形(如圖3C)內的各像素進行四邊形柵格化操作,或者對來自該修正頂點次列表的各組三個頂點所形成一個三角形(如圖3C)內的各像素進行三角形柵格化操作。
在進行四邊形柵格化操作的情況下,假設來自該修正主要頂點次列表m0的一組四個頂點(A、B、C、D)(形成多邊形網格的一個四邊形)係位在重疊區A(0)的五個控制區之一的範圍內且被二個鏡頭影像所重疊(iK0及iK1;N=2),該四個頂點(A、B、C、D)分別包含以下資料結構:頂點A:{(x A, y A), 2, ID iK0, (u 1A, v 1A), w 1A, ID iK1, (u 2A, v 2A), w 2A};頂點B:{(x B, y B), 2, ID iK0, (u 1B, v 1B), w 1B, ID iK1, (u 2B, v 2B), w 2B};頂點C:{(x C, y C), 2, ID iK0, (u 1C, v 1C), w 1C, ID iK1, (u 2C, v 2C), w 2C,};頂點D:{(x D, y D), 2, ID iK0, (u 1D, v 1D), w 1D, ID iK1, (u 2D, v 2D), w 2D}。處理器元件120(負責A(0))的柵格化引擎610直接對四邊形ABCD內的各點/像素進行四邊形柵格化操作。具體而言,處理器元件120的該柵格化引擎610利用以下步驟,對一個點Q(具有等距長方座標(x, y)且位在該多邊形網格的該四邊形ABCD內)計算各鏡頭影像的紋理座標:(1)利用一雙線性內插(bi-linear interpolation)方法,根據等距長方座標(x A, y A, x B, y B, x C, y C, x D, y D, x, y),計算四個空間權值(a, b, c, d);(2) 計算鏡頭影像iK0中一取樣點Q iK0(對應該點Q)之工作面混合權值:fw 1=a*w 1A+b*w 1B+c*w 1C+d*w 1D;計算一鏡頭影像iK1中一取樣點Q iK1(對應該點Q)之工作面混合權值:fw 2=a*w 2A+ b*w 2B+ c*w 2C+ d*w 2D;(3) 計算該鏡頭影像iK0中該取樣點Q iK0(對應該點Q)之紋理座標:(u1, v1) = (a*u 1A+b*u 1B+c*u 1C+d*u 1D, a*v 1A+b*v 1B+c*v 1C+d*v 1D);計算該鏡頭影像iK1中該取樣點Q iK1(對應該點Q)之紋理座標:(u2, v2) = (a*u 2A+b*u 2B+c*u 2C+d*u 2D, a*v 2A+b*v 2B+c*v 2C+d*v 2D)。最後,處理器元件120的柵格化引擎610將該二個紋理座標(u1, v1)及(u2, v2)平行傳送給該二個紋理映射引擎621~622。其中,a+b+c+d=1及fw 1+ fw 2=1。根據該二個紋理座標(u1, v1) 及(u2, v2),該二個紋理映射引擎621~622利用任何合適的方法(例如最近相鄰內插(nearest-neighbour interpolation)法、雙線性內插法、或三線性(trilinear)內插法),紋理映射鏡頭影像iK0及iK1的紋理資料,以產生二個取樣值s1、s2。其中,各該取樣值可以是一亮度(luma)值、一色度(chroma)值、一邊緣(edge)值,一像素顏色值(RGB)或一移動向量(motion vector)。
在進行三角形柵格化操作的情況下,處理器元件120的柵格化引擎610及二個紋理映射引擎621~622對來自該修正主要頂點次列表m0的任三個頂點所形成一個三角形(如圖3C)內的各像素進行類似的操作(類似上述四邊形柵格化操作的情況)以產生二個對應的取樣值s1、s2,除了柵格化引擎610於步驟(1)中是利用一重心加權(barycentric weighting)方法,而非利用上述雙線性內插方法,根據等距長方座標(x A, y A, x B, y B, x C, y C,  x, y),計算三個頂點(A,B,C)的三個空間權值(a, b, c)。
接著,處理器元件120的柵格化引擎610根據該點Q的等距長方座標(x,y),判斷該點Q是否落入該五個負責控制區R(1)~R(5)之一,若判斷該點Q落入該五個負責控制區之一,即將控制訊號CS1設為有效(asserted)使量測單元650開始量測該控制區的區域誤差量。處理器元件120的量測單元650可利用任何已知的演算法,例如絕對差值和(sum of absolute differences,SAD)、平方差值和(sum of squared differences,SSD)、中位數絕對誤差(median absolute deviation,MAD)等等,估計/量測該些控制區的區域誤差量。舉例而言,若判斷該點Q落入控制區R(1),該量測單元650利用下列方程式:E= |s1-s2|; E(1) += E,來累積該鏡頭影像iK0中控制區R(1)的各點與該鏡頭影像iK1中控制區R(1)的對應點之間的取樣值差異的絕對值,以得到一SAD值當作該控制區R(1)的區域誤差量E(1)。依此方式,該量測單元650量測五個控制區R(1)~R(5)的區域誤差量E(1)~E(5)。依同樣的方式,處理器元件121的量測單元650,根據該修正輔助頂點次列表m1、鏡頭影像iK1及其鄰近右邊鏡頭影像iK2的最左側夸特iK2’,量測五個控制區R(6)~R(10)的區域誤差量E(6)~E(10);處理器元件122的量測單元650,根據該修正輔助頂點次列表m2、鏡頭影像iK2及其鄰近右邊鏡頭影像iK3的最左側夸特iK3’,量測五個控制區R(11)~R(15)的區域誤差量E(11)~E(15);處理器元件123的量測單元650,根據該修正輔助頂點次列表m3、鏡頭影像iK3及其鄰近右邊鏡頭影像iK0的最左側夸特iK0’,量測五個控制區R(16)~R(20)的區域誤差量E(16)~E(20)(步驟S706)。
於步驟S408(即傳輸階段二),各處理器元件的GPU 132透過輸出埠152,傳送本身負責重疊區中五個控制區的最佳接合係數至一鄰近處理器元件的GPU 132,並透過輸入埠154,從另一鄰近處理器元件接收鄰近左邊重疊區內五個控制區的最佳接合係數。例如,處理器元件122的GPU 132透過輸出埠152,傳送本身負責的重疊區A(2)中五個控制區R(11)~R(15)的最佳接合係數C(11)~C(15)至處理器元件123的GPU 132,並透過輸入埠154,從處理器元件121的GPU 132接收及解析MIPI封包(包含五個控制區R(6)~R(10)的最佳接合係數C(6)~C(10)),並根據封包標頭的資料型態(如0x31,代表輸入的最佳接合係數),將輸入最佳接合係數C(6)~C(10)儲存於其本身的局部揮發性記憶體172。其他處理器元件120~121及123的GPU 132的運作方式類似於處理器元件122的GPU 132。
在步驟S409,類似於步驟S705,根據上述二十個最佳接合係數C(1)~C(20),處理器元件120~123的GPU 132分別修正前述原始頂點次列表or0~or3中各頂點於四鏡頭影像iK0~iK3的紋理座標,產生一修正主要頂點次列表m0’及三個修正輔助頂點次列表m1’~m3’。 以下,再次以圖5B為例做說明。於接收來自處理器元件120的五個最佳接合係數C(1)~C(5)後,輔助處理器元件 121的GPU 132根據該目標頂點P的資料結構中在該鏡頭影像iK1的”接合係數索引”欄位(即4及5),從一維的測試接合係數陣列中擷取出二個測試接合係數(C(4)及C(5)),再根據該目標頂點P的資料結構中在該鏡頭影像iK1的” 接合係數的混合權值(Alpha)”欄位(即7/22.5),根據下列方程式計算出內插接合係數C’ :C’=C(4)
Figure 02_image013
(7/22.5)+C(5)
Figure 02_image013
(1-7/22.5)。之後,處理器元件 121的GPU 132根據下列方程式,計算該目標頂點P在鏡頭影像iK1中的修正紋理座標(u P’, v P’):u P’=(u P- u center)* C’ + u center; v P’=(v P- v center)*C’ + v center。依此方式,處理器元件 121的GPU 132根據該十個最佳接合係數C(1)~C(10),依序修正來自該原始輔助頂點次列表or1之各頂點之鏡頭影像iK1的紋理座標,以產生一修正輔助頂點次列表m1’。於根據二十個最佳接合係數C(1)~C(20)修正完四個原始頂點次列表or0~or3中各頂點於四鏡頭影像iK0~iK3的紋理座標之後,因照相機110A的鏡頭中心偏移(亦即一鏡頭中心56相對於其系統中心53有一個偏移量ofs的距離)而造成的不匹配影像缺陷問題即可大幅改善(即實際成像位置58會被推向理想成像位置50),如圖5A所示。請注意,因為球體12是虛擬的,故物體55有可能位在球體12的外面、裡面或表面。
在步驟S410中,各處理器元件的柵格化引擎610、紋理映射電路620及混和單元630一起運作,以根據本身鏡頭影像、其鄰近右邊鏡頭影像的最左側夸特及本身的修正頂點次列表,產生一工作面影像。例如,處理器元件123的柵格化引擎610、紋理映射電路620及混和單元630一起運作,以根據本身鏡頭影像iK3、其鄰近右邊鏡頭影像iK0的最左側夸特iK0’及本身的修正頂點次列表m3’,產生一工作面影像F3。「工作面(face)影像」一詞指的是源自於照相機110的一對應鏡頭影像的投影而產生的影像;該投影例如等距長方投影、圓柱投影、米勒投影、墨卡托投影、蘭伯特圓柱等面積投影或帕尼尼(Pannini)投影等。於本發明中,各工作面影像包含一非重疊區及一重疊區。例如,如圖3D所示,因為處理器元件123負責重疊區A(3),處理器元件123會產生一工作面影像F3,其包含一非重疊區b3及一重疊區A(3)。
回到圖6,顯像模式下,柵格化引擎610及紋理映射電路620的運作方式如同在量測模式下。以下,再次以上述的例子(一個點Q具有等距長方座標(x, y)且位在該多邊形網格的四邊形ABCD內,並且該四邊形ABCD被二個鏡頭影像所重疊(iK0及iK1;N=2))做說明。在處理器元件120的二個紋理映射引擎621~622紋理映射鏡頭影像iK0及iK1的紋理資料以產生二個取樣值s1、s2後,處理器元件120的混和單元630以下列方程式混和二個取樣值s1、s2,以產生點Q的混和值Vb:Vb= fw 1*s1+ fw 2*s2。最後,處理器元件120的混和單元630將點Q的混和值Vb儲存於局部揮發性記憶體170。依此方式,處理器元件120的混和單元630將所有混和值Vb儲存於局部揮發性記憶體170,直到四邊形ABCD內的點都處理完為止,一旦處理完所有四邊形及三角形,局部揮發性記憶體170內就會儲存一工作面影像F0。同樣地,處理器元件121的GPU 132,根據本身鏡頭影像iK1、其鄰近右邊鏡頭影像iK2的最左側夸特iK2’及本身的修正頂點次列表m1’,產生一工作面影像F1;處理器元件122的GPU 132,根據本身鏡頭影像iK2、其鄰近右邊鏡頭影像iK3的最左側夸特iK3’及本身的修正頂點次列表m2’,產生一工作面影像F2;處理器元件123的GPU 132,根據本身鏡頭影像iK3、其鄰近右邊鏡頭影像iK0的最左側夸特iK0’及本身的修正頂點次列表m3’,產生一工作面影像F3。
於步驟S412(即傳輸階段三),各處理器元件120~123的GPU 132將本身工作面影像切割成多個具有預設大小的圖磚(tile)、計算本身鏡頭影像最左側一行(column) 圖磚及最右側一行圖磚的直方圖(histogram)Hl及Hr,再傳送本身工作面影像的預設區段及前述直方圖Hl及Hr至二鄰近處理器元件。一實施例中,該些圖磚的預設大小等於64x64,而前述工作面影像的預設區段為該工作面影像的最左側八行像素及最右側八行像素。須注意的是,前述圖磚的預設大小及前述工作面影像的預設區段僅為示例,而非本發明之限制,於實際實施時,可採用其他大小的圖磚及其他行數的像素。在圖4A中,處理器元件123的GPU 132透過輸出埠152,傳送工作面影像F3最右側一行圖磚的直方圖Hr3及最右側八行的像素Fr3至處理器元件120的IQE單元133,及透過輸出埠155,傳送工作面影像F3最左側一行圖磚的直方圖Hl及最左側八行的像素Fl3至處理器元件122的IQE單元133。處理器元件123的IQE單元133透過輸入埠153及154,從處理器元件120及122接收及解析MIPI封包(包含直方圖Hl0及Hr2及區段Fl0及Fr2),並根據封包標頭的資料型態(如0x32,代表輸入直方圖;如0x33,代表輸入區段),將直方圖Hl0及Hr2及區段Fl0及Fr2儲存於其本身的局部揮發性記憶體173。其他處理器元件120~122的GPU 132及IQE單元133的運作方式類似於處理器元件123的GPU 132 及IQE單元133。
於步驟S414中,於接收到來自二鄰近處理器元件的二鄰近工作面影像的圖磚直方圖及區段之後,各處理器元件的IQE單元133對本身工作面影像進行影像品質強化處理。該影像品質強化處理包含,但不受限於,對比強化、低通濾波及影像銳化處理。該對比強化可使用任何已知的演算法來實施,例如:限制對比度自適應直方圖均衡(contrast limited adaptive histogram equalization,CLAHE)。舉例而言,處理器元件123的IQE單元133根據直方圖Hl0及Hr2及區段Fl0及Fr2,對工作面影像F3進行影像品質強化處理,以產生一強化影像F3’。 其他處理器元件120~122的IQE單元133的運作方式類似於處理器元件123的IQE單元133。
於步驟S414完成後,圖4C的流程可直接進入到步驟S416(以下稱為”方法一”,不須鏈結481及步驟S415);於步驟S416中,四個編碼暨傳送單元134分別將四個強化影像F0’~F3’編碼成四個編碼視訊流en0~en3,再傳送該四個編碼視訊流en0~en3至該接收器180,以便產生一全景影像。或者,圖4C的流程可經過步驟S415再進入到步驟S416(以下稱為”方法二”;需鏈結481),具體運作如下;於步驟S415(傳輸階段四)中,三個輔助處理器元件121~123的IQE單元133分別透過輸出埠155、156及152,將三個強化影像F1’~F3’傳送至處理器元件120的編碼暨傳送單元134。處理器元件120的編碼暨傳送單元134透過輸入埠153、157及154,接收及解析MIPI封包(包含三個強化影像F1’~F3’),並根據封包標頭的資料型態(如0x34,代表輸入強化影像),將三個強化影像F1’~F3’儲存於其本身的局部揮發性記憶體170。於步驟S416中,處理器元件120的編碼暨傳送單元134將三個強化影像F1’~F3’併入強化影像F0’,形成單一位元流,再將該單一位元流編碼成單一編碼視訊流en,再傳送該單一編碼視訊流en至該接收器180。請注意,於方法二中,只有處理器元件120的編碼暨傳送單元134是必須的,其他處理器元件121~123的編碼暨傳送單元134可捨棄。
請注意,如上所述,於各處理器元件及方法二,IQE單元133並非必須,故步驟S412、S414及S415也並非必須,因此在圖4B-4C中以虛線顯示。假設電路捨棄所有IQE單元133的情況下,各處理器元件的GPU132在產生工作面影像F0~F3後,分別將各自的工作面影像F0~F3傳送給各自的編碼暨傳送單元134以進行後續編碼暨傳送操作(方法一;捨棄步驟S412、S414及S415);或者,三個輔助處理器元件121~123的GPU132分別將三個工作面影像F1~F3傳送至處理器元件120的編碼暨傳送單元134以進行後續編碼暨傳送操作(方法二;需步驟S415及捨棄步驟S412及S414)。
圖8係根據本發明另一實施例,顯示一個適用於四鏡頭照相機之雙處理器系統的方塊架構圖。參考圖8,雙處理器系統800,用來處理來自一四鏡頭照相機110A之四個鏡頭K0~K3影像資料,包含一主要處理器元件 120、一個輔助處理器元件 121以及四個鏈結。請同時參考圖1,透過輸入埠151,處理器元件 120連接至照相機110A之二個鏡頭K0~K1,而處理器元件 121連接至照相機110A之二個鏡頭K2~K3。為清楚及方便描述,圖8僅顯示二個處理器元件 120~121與其包含的I/O埠及該四個鏈結,並於後面詳述運作方式。於本實施例中,各處理器元件 120/121包含三個I/O埠151~153。在離線階段中,因為雙處理器系統800包含二個處理器元件120~121,故根據等距長方座標,該原始頂點列表(表一)被分成二個原始頂點次列表,即一個原始主頂點次列表or01(由處理器元件120所使用)及一個原始輔助頂點次列表or23(由處理器元件121所使用),而且該二個原始頂點次列表or01~ or23分別被儲存於二個局部非揮發性記憶體160~161,以進行後續影像處理。
以下,依據圖4B-4C的流程,說明該雙處理器系統800的運作方式。於步驟S402,處理器元件120的ISP 131透過MIPI輸入埠151,接收及解析包含與照相機110A的鏡頭K0及K1的影像感應器有關的電訊號之MIPI封包、將該些電訊號轉換為二個鏡頭影像iK0及iK1,以及根據封包標頭的資料型態(如0x2A),將該二個鏡頭影像iK0及iK1儲存於其本身的局部揮發性記憶體170;處理器元件121的ISP 131的運作方式類似於處理器元件120的ISP 131。請注意,各處理器元件負責二個重疊區,如圖3D所示。一實施例中,處理器元件120取得鏡頭影像iK0~iK1,及負責二個重疊區A(3)及A(0);處理器元件121取得鏡頭影像iK2~iK3,及負責二個重疊區A(1)及A(2)。為清楚及方便描述,以下的例子及實施例的說明係假設處理器元件120取得鏡頭影像iK0~iK1及負責二個重疊區A(0)及A(1),而處理器元件121取得鏡頭影像iK2~iK3,及負責二個重疊區A(2)及A(3)。
於步驟S404(傳輸階段一),為形成前述四個重疊區,各處理器元件需透過輸出埠152,傳送本身二個鏡頭影像的左邊緣資料至另一處理器元件,並透過輸入埠153,從另一處理器元件接收鄰近二個鏡頭影像的左邊緣資料。對各處理器元件,要輸出的本身二個鏡頭影像的左邊緣資料係位在其負責的二個重疊區域的對面邊緣,同時,其本身二個鏡頭影像的右邊緣資料以及其接收到的鄰近二個右邊鏡頭影像的左邊緣資料形成一對應重疊區域,並且上述本身二個鏡頭影像的右邊緣資料以及其接收到的鄰近二個右邊鏡頭影像的左邊緣資料與該對應重疊區域的大小有關;例如邊緣資料rK1’及K2’形成重疊區A(1) 且與A(1)的大小有關。如上所述,一旦照相機110A的鏡頭FOA、鏡頭感應器解析度及鏡頭架設角度被固定,就會決定重疊區域A(0)~A(3)的大小。假設上述本身二個鏡頭影像的左邊緣資料及右邊緣資料分別指的是該二個鏡頭影像中的左邊鏡頭影像最左側的夸特(即H*W/4)及右邊鏡頭影像最右側的夸特,因為處理器元件120取得鏡頭影像iK0~iK1及負責重疊區A(0)~A(1),處理器元件120的ISP 131需透過輸出埠152,傳送鏡頭影像iK0的最左側夸特iK0’至處理器元件121,而處理器元件120的GPU 132透過輸入埠153,從處理器元件121的ISP 131接收及解析MIPI封包(包含鄰近右鏡頭影像iK2的最左側夸特iK2’),並根據封包標頭的資料型態(如0x30,代表輸入的邊緣資料),將該最左側夸特iK2’儲存於其本身的局部揮發性記憶體170,以致於該最左側夸特iK2’及本身二鏡頭影像iK0~iK1的最右側夸特rK1’形成重疊區A(1)。於步驟S404中,處理器元件121的 ISP 131及GPU 132的運作方式類似於處理器元件120的 ISP 131及GPU 132。
於步驟S406中,根據圖7A及圖7B之方法,處理器元件 120的GPU 132形成一2D誤差表格(如表三),包含有前述二十個測試接合係數的不同數值(係相關於圖5A的偏差量ofs)以及十個控制區R(1)~R(10)(位在其負責重疊區域A(0)~A(1)內)的區域誤差量E(1)~E(10),該2D誤差表格用以決定該十個控制區R(1)~R(10)的最佳接合係數C(1)~C(10);處理器元件 121的GPU 132形成一2D誤差表格(如表三),包含有前述二十個測試接合係數的不同數值及十個控制區R(11)~R(20)(位在其負責重疊區域A(2)~A(3)內)的區域誤差量E(11)~E(20),該2D誤差表格用以決定該十個控制區R(11)~R(20)的最佳接合係數C(11)~C(20)。
於步驟S408(即傳輸階段二),處理器元件120的GPU 132透過輸出埠152,傳送本身負責的重疊區A(1)中五個控制區R(6)~R(10)的最佳接合係數C(6)~C(10)至處理器元件121,並透過輸入埠153,從處理器元件121的GPU 132接收及解析MIPI封包(包含五個控制區R(16)~R(20)的最佳接合係數C(16)~C(20)),並根據封包標頭的資料型態(如0x31,代表輸入的最佳接合係數),將最佳接合係數C(16)~C(20)儲存於其本身的局部揮發性記憶體170。處理器元件121的GPU 132的運作方式類似於處理器元件120的GPU 132。
在步驟S409中,根據最佳接合係數C(1)~C(10)及C(16)~C(20),主要處理器元件120的GPU 132修正前述原始主要頂點次列表or01中各頂點於二個鏡頭影像iK0~iK1的紋理座標,產生一修正主要頂點次列表m01’;根據最佳接合係數C(6)~C(20),輔助處理器元件121的GPU 132修正前述原始輔助頂點次列表or23中各頂點於二個鏡頭影像iK2~iK3的紋理座標,產生一修正輔助頂點次列表m23’。在步驟S410中,主要處理器元件120的柵格化引擎610、紋理映射電路620及混和單元630一起運作,以根據本身二個鏡頭影像iK0~iK1、最左側夸特iK2’及本身的修正主要頂點次列表m01’,產生二個工作面影像F0~F1;輔助處理器元件121的柵格化引擎610、紋理映射電路620及混和單元630一起運作,以根據本身二個鏡頭影像iK2~iK3、最左側夸特iK0’及本身的修正輔助頂點次列表m23’,產生二個工作面影像F2~F3。
於步驟S412(即傳輸階段三),各處理器元件120~121的GPU 132將各工作面影像切割成多個具有預設大小的圖磚(e.g., 64x64),並計算本身二個鏡頭影像最左側一行圖磚的直方圖Hl及最右側一行圖磚的直方圖Hr。處理器元件120的GPU 132透過輸出埠152,傳送工作面影像F1最右側一行圖磚的直方圖Hr1與一預設區段(如最右側八行的像素)Fr1,以及工作面影像F0最左側一行圖磚的直方圖Hl0與一預設區段(最左側八行的像素)Fl0至處理器元件121的IQE單元133;處理器元件120的IQE單元133透過輸入埠153,從處理器元件121接收及解析MIPI封包(包含直方圖Hl2及Hr3及區段Fl2及Fr3),並根據封包標頭的資料型態(如0x32,代表輸入直方圖;0x33,代表輸入區段),將直方圖Hl2及Hr3及區段Fl2及Fr3儲存於其本身的局部揮發性記憶體170。其他處理器元件121的GPU 132及IQE單元133的運作方式類似於處理器元件120的GPU 132 及IQE單元133。
於步驟S414中,根據接收到的直方圖Hl2及Hr3及區段Fl2及Fr3,處理器元件120的IQE單元133對二個工作面影像F0及F1進行影像品質強化處理,以產生二個強化影像F0’及F1’; 根據接收到的直方圖Hl0及Hr1及區段Fl0及Fr1,處理器元件121的IQE單元133對二個工作面影像F2及F3進行影像品質強化處理,以產生二個強化影像F2’及F3’。
若進行方法一:於步驟S416中,二個編碼暨傳送單元134分別將四個強化影像F0’~F3’編碼成二個編碼視訊流en01~en23,再傳送該二個編碼視訊流en01~en23至該接收器180,以便產生一全景影像。若進行方法二:於步驟S415(傳輸階段四)中,輔助處理器元件121的IQE單元133透過輸出埠152,將二個強化影像F2’~F3’傳送至處理器元件120的編碼暨傳送單元134,接著,處理器元件120的編碼暨傳送單元134透過輸入埠153,接收及解析MIPI封包(包含二個強化影像F2’~F3’),並根據封包標頭的資料型態(如0x34,代表輸入強化影像),將二個強化影像F2’~F3’儲存於其本身的局部揮發性記憶體170;接著,於步驟S416中,處理器元件120的編碼暨傳送單元134將二個強化影像F2’~F3’併入強化影像F0’~F1’,形成單一位元流,將該單一位元流編碼成單一編碼視訊流en,再傳送該單一編碼視訊流en至該接收器180。
圖9A係根據本發明另一實施例,顯示一個適用於三鏡頭照相機之三處理器系統的方塊架構圖。請注意,三處理器系統900係用來產生三個工作面影像,以便形成如圖9B之廣角影像,而四處理器系統400及雙處理器系統800係用來產生四個工作面影像,以便形成如圖3D之全景影像。參考圖9A,三處理器系統900,用來處理來自三鏡頭照相機110B之三個鏡頭K0~K0的影像資料,包含一主要處理器元件 120、二個輔助處理器元件 121~122以及五個鏈結,其中鏈結901並非必須。於本實施例中,處理器元件 120/122包含四個I/O埠,而處理器元件 121包含五個I/O埠。在離線階段中,因為三處理器系統900包含三個處理器元件120~122,故根據等距長方座標,該原始頂點列表(如表一)被分成三個原始頂點次列表,即一個原始主要頂點次列表or0(由處理器元件120使用)及二個原始輔助頂點次列表or1~or2(分別由處理器元件121及122使用),而且該三個原始頂點次列表or0~or2分別被儲存於三個局部非揮發性記憶體160~162,以進行後續影像處理。
以下,依據圖4B-4C的流程,說明該三處理器系統900的運作方式。於步驟S402,三處理器系統900的三個ISP 131取得三個鏡頭影像iK0~iK2的方式,類似於四處理器系統400的ISP 131。一實施例中,處理器元件121負責重疊區A(0)、處理器元件122負責重疊區A(1),但處理器元件120不負責任何重疊區。為清楚及方便描述,以下的例子及實施例的說明係假設處理器元件120負責重疊區A(0)、處理器元件121負責重疊區A(1),但處理器元件122不負責任何重疊區。
於步驟S404(傳輸階段一),為形成二個重疊區,處理器元件121的ISP131透過輸出埠155,傳送本身鏡頭影像iK1的左邊緣資料(如最左側夸特iK1’)至處理器元件120;而處理器元件121的GPU 132透過輸入埠153,從處理器元件122接收及解析MIPI封包(包含鄰近鏡頭影像iK2的最左側夸特iK2’),並根據封包標頭的資料型態(如0x30,代表輸入的邊緣資料),將該最左側夸特iK2’儲存於其本身的局部揮發性記憶體171,以致於該最左側夸特iK2’及本身鏡頭影像iK1的最右側夸特rK1’形成重疊區A(1)。因為處理器元件120取得鏡頭影像iK0並負責重疊區A(0),處理器元件120的GPU132透過輸入埠153,從處理器元件121接收及解析MIPI封包(包含鄰近鏡頭影像iK1的最左側夸特iK1’),並根據封包標頭的資料型態(如0x30),將該最左側夸特iK1’儲存於其本身的局部揮發性記憶體170,以致於該最左側夸特iK1’及本身鏡頭影像iK0的最右側夸特rK0’形成重疊區A(0)。因為處理器元件122取得鏡頭影像iK2且不負責任何重疊區,處理器元件122的ISP 131透過輸出埠155,傳送本身鏡頭影像iK2的最左側的夸特iK2’至處理器元件121的GPU132。
於步驟S406中,根據圖7A及圖7B之方法,處理器元件 120的GPU 132形成一2D誤差表格(如表三),包含有十個測試接合係數的不同數值(係相關於圖5A的偏差量ofs)以及五個控制區R(1)~R(5)(位在其負責重疊區域A(0)內)的區域誤差量E(1)~E(5),該2D誤差表格用以決定五個控制區R(1)~R(5)的最佳接合係數C(1)~C(5);處理器元件 121的GPU 132形成一2D誤差表格(如表三),包含有前述十個測試接合係數的不同數值及五個控制區R(6)~R(10)(位在其負責重疊區域A(1)內)的區域誤差量E(6)~E(10),該2D誤差表格用以決定五個控制區R(6)~R(10)的最佳接合係數C(6)~C(10)。
於步驟S408(即傳輸階段二),處理器元件120的GPU 132透過輸出埠152,傳送本身負責的重疊區A(0)中五個控制區R(1)~R(5)的最佳接合係數C(1)~C(5)至處理器元件121;處理器元件121的GPU 132,透過輸出埠152,傳送本身負責的重疊區A(1)中五個控制區R(6)~R(10)的最佳接合係數C(6)~C(10)至處理器元件122,以及透過輸入埠154從處理器元件120的GPU 132接收及解析MIPI封包(包含五個最佳接合係數C(1)~C(5)),並根據封包標頭的資料型態(如0x31),將最佳接合係數C(1)~C(5)儲存於其本身的局部揮發性記憶體171。處理器元件122的GPU 132,透過輸入埠154從處理器元件121的GPU 132接收及解析MIPI封包(包含五個最佳接合係數C(6)~C(10)),並根據封包標頭的資料型態,將最佳接合係數C(6)~C(10)儲存於其本身的局部揮發性記憶體172。
在步驟S409中,根據最佳接合係數C(1)~C(5),主要處理器元件120的GPU 132修正前述原始主要頂點次列表or0中各頂點於鏡頭影像iK0的紋理座標,產生一修正主要頂點次列表m0’;根據最佳接合係數C(1)~C(10),輔助處理器元件121的GPU 132修正前述原始輔助頂點次列表or1中各頂點於鏡頭影像iK1的紋理座標,產生一修正輔助頂點次列表m1’ ;根據最佳接合係數C(6)~C(10),輔助處理器元件122的GPU 132修正前述原始輔助頂點次列表or2中各頂點於鏡頭影像iK2的紋理座標,產生一修正輔助頂點次列表m2’。在步驟S410中,主要處理器元件120的柵格化引擎610、紋理映射電路620及混和單元630一起運作,以根據本身鏡頭影像iK0、輸入的最左側夸特iK1’及本身的修正主要頂點次列表m0’,產生一工作面影像F0(如圖9B);輔助處理器元件121的柵格化引擎610、紋理映射電路620及混和單元630一起運作,以根據本身鏡頭影像iK1、輸入的最左側夸特iK2’及本身的修正輔助頂點次列表m1’,產生一工作面影像F1(如圖9B);輔助處理器元件122的柵格化引擎610、紋理映射電路620及混和單元630一起運作,以根據本身鏡頭影像iK2及本身的修正輔助頂點次列表m2’,產生一工作面影像F2(如圖9B)。
於步驟S412(即傳輸階段三),各處理器元件120~122的GPU 132將各工作面影像切割成多個具有預設大小的圖磚(如64x64)、計算本身工作面影像的最左側一行圖磚的直方圖Hl或/及最右側一行圖磚的直方圖Hr,以及傳送本身工作面影像的一預設區段至一或二個鄰近處理器元件。一實施例中,前述工作面影像的預設區段為該工作面影像的最左側八行像素及/或最右側八行像素。如圖9A所示,處理器元件120的GPU 132透過輸出埠152傳送工作面影像F0最右側一行圖磚的直方圖Hr0與最右側八行像素Fr0至處理器元件121的IQE單元133、再透過輸入埠153從處理器元件121接收及解析MIPI封包(包含工作面影像F1最左側一行圖磚直方圖Hl1及最左側八行像素Fl1),並根據封包標頭的資料型態,將直方圖Hl1及最左側八行像素Fl1儲存於其本身的局部揮發性記憶體170。處理器元件121的GPU 132透過輸出埠152傳送工作面影像F1最右側一行圖磚的直方圖Hr1與最右側八行像素Fr1至處理器元件122的IQE單元133、透過輸出埠155傳送工作面影像F1最左側一行圖磚的直方圖Hl1與最左側八行像素Fl1至處理器元件120的IQE單元133、透過輸入埠153接收及解析MIPI封包(包含工作面影像F2最左側一行圖磚直方圖直方圖Hl2及最左側八行像素Fl2) 、透過輸入埠154接收及解析MIPI封包(包含工作面影像F0的直方圖Hr0與區段Fr0),並根據封包標頭的資料型態,將直方圖Hr0及Hl2及區段Fr0及Fl2儲存於其本身的局部揮發性記憶體171。處理器元件122的GPU 132透過輸出埠155傳送工作面影像F2最左側一行圖磚的直方圖Hl2與最左側八行像素Fl2至處理器元件121的IQE單元133、透過輸入埠154接收及解析MIPI封包(包含工作面影像F1的直方圖Hr1及區段Fr1),並根據封包標頭的資料型態,將直方圖Hr1及區段Fr1儲存於其本身的局部揮發性記憶體172。
於步驟S414中,根據接收到的直方圖Hl1及區段Fl1,處理器元件120的IQE單元133對工作面影像F0進行影像品質強化處理,以產生一強化影像F0’; 根據接收到的直方圖Hl2及Hr0及區段Fl2及Fr0,處理器元件121的IQE單元133對工作面影像F1進行影像品質強化處理,以產生一強化影像F1’; 根據接收到的直方圖Hr1及區段Fr1,處理器元件122的IQE單元133對工作面影像F2進行影像品質強化處理,以產生一強化影像F2’。 若進行方法一(無鏈結901):於步驟S416中,處理器元件120~122的編碼暨傳送單元134分別將三個強化影像F0’~F3’編碼成三個編碼視訊流en0~en2,再傳送該三個編碼視訊流en0~en2至該接收器180,以便產生一廣角影像。若是進行方法二(包含有鏈結901):於步驟S415(傳輸階段四)中,輔助處理器元件121~122的IQE單元133透過輸出埠155及152,將二個強化影像F1’~F2’傳送至處理器元件120的編碼暨傳送單元134,接著,處理器元件120的編碼暨傳送單元134透過輸入埠153~154,接收及解析MIPI封包(包含二個強化影像F1’~F2’),並根據封包標頭的資料型態(如0x34),將二個強化影像F1’~F2’儲存於其本身的局部揮發性記憶體170;於步驟S416中,處理器元件120的編碼暨傳送單元134將二個強化影像F1’~F2’併入強化影像F0’,形成單一位元流,再將該單一位元流編碼成單一編碼視訊流en,再傳送該單一編碼視訊流en至該接收器180。
請注意,因為多處理器系統400及800係用來產生四個工作面影像以便形成一全景影像,在傳輸階段一至三中,其多個處理器元件會連接成一個環狀拓譜(ring topology);特別地,對多處理器系統400而言,在傳輸階段一及二中,其多個處理器元件會連接形成一個單向環狀拓譜,而在傳輸階段三中,其多個處理器元件會連接形成一個雙向環狀拓譜。相對而言,三處理器系統900係用來產生三個工作面影像以便形成如圖9B之廣角影像,在傳輸階段一至三中,其多個處理器元件會連接成一個線狀拓譜(linear topology);特別地,在傳輸階段一及二中,其多個處理器元件會連接形成一個單向線狀拓譜,而在傳輸階段三中,其多個處理器元件會連接形成一個雙向線狀拓譜。在傳輸階段一及二中,其多個處理器元件之間的資料傳輸方向是相反的。
上述僅為本發明之較佳實施例而已,而並非用以限定本發明的申請專利範圍;凡其他未脫離本發明所揭示之精神下所完成的等效改變或修飾,均應包含在下述申請專利範圍內。
11A:立方體架構 11B、11C:照相機的架構 12:球體 50:理想成像位置 54:影像中心 55:物體 56、57:鏡頭中心 58:實際成像位置 100:多處理器系統 110:多鏡頭照相機 110A:多鏡頭照相機 110B:三鏡頭照相機 110C:雙鏡頭照相機 120:主要處理器元件 121~12m:輔助處理器元件 120-1~12m-1:處理單元 131:影像訊號處理器 132:圖像處理單元 133:影像品質強化單元 134:編碼暨傳送單元 140~14m:鏡頭群 151~157、15t 0/t m:I/O埠 160~16m:局部非揮發性記憶體 170~17m:局部揮發性記憶體 180:接收器 400:四處理器系統 481、482、901:鏈結 610:柵格化引擎 620:紋理映射電路 621~622:紋理映射引擎 630:混和單元 650:量測單元 800:雙處理器系統 900:三處理器系統
[圖1]係根據本發明,顯示一個適用於多鏡頭照相機之多處理器系統的方塊架構圖。 [圖2A] 係一個四鏡頭照相機之二個不同側視圖。 [圖2B] 係一個三鏡頭照相機之二個不同側視圖。 [圖2C] 係一個雙鏡頭照相機之二個不同側視圖。 [圖3A]係顯示一立方體架構與一球體之間的關係。 [圖3B]顯示一個三角形網格的例子,係用以模型化一球體表面。 [圖3C]顯示一個多邊形網格的例子,係用以組成/模型化該等距長方全景影像。 [圖3D]例示一等距長方全景影像中具有四個重疊區域A(0)~A(3)及二十個控制區R(1)~R(20)。 [圖4A]係根據本發明一實施例,顯示一個適用於四鏡頭照相機之四處理器系統的方塊架構圖。 [圖4B-4C]係根據本發明,顯示適用於多處理器系統100/400/800/900的影像處理方法之流程圖。 [圖5A]顯示根據最佳接合係數,修改所有頂點於各鏡頭影像的紋理座標後,一物體之不匹配的影像缺陷如何被改善。 [圖5B]例示於鏡頭影像iK1中該目標頂點P及十個控制區R(1)~R(10)間的關係。 [圖6]係根據本發明一實施例,顯示圖像處理單元(graphics processing unit,GPU)的示意圖。 [圖7A]係根據本發明一實施例,顯示於一量測模式下,決定所有控制區之最佳接合係數之方法流程圖。 [圖7B]係根據本發明一實施例,顯示由GPU 132進行步驟S712之係數決策操作之方法流程圖。 [圖7C]例示一連結計量。 [圖8]係根據本發明一實施例,顯示一個適用於四鏡頭照相機之雙處理器系統的方塊架構圖。 [圖9A]係根據本發明一實施例,顯示一個適用於三鏡頭照相機之三處理器系統的方塊架構圖。 [圖9B]例示一廣角影像中具有二個重疊區域A(0)~A(1)及十個控制區R(1)~R(10)。
100:多處理器系統
110:多鏡頭照相機
120:主要處理器元件
121~12m:輔助處理器元件
120-1~12m-1:處理單元
131:影像訊號處理器
132:圖像處理單元
133:影像品質強化單元
134:編碼暨傳送單元
140~14m:鏡頭群
151~15t0/tm:I/O埠
160~16m:局部非揮發性記憶體
170~17m:局部揮發性記憶體
180:接收器

Claims (26)

  1. 一種多處理器系統,包含:多個處理器元件,耦接至一個多鏡頭照相機,其中該多鏡頭照相機捕捉一個具有X度水平視域及Y度垂直視域的視野,各處理器元件包含:多個輸入/輸出(I/O)埠;以及一處理單元,耦接至該些I/O埠,產生至少一工作面影像;以及多個鏈結,各鏈結係連接該些處理器元件之一的該些I/O埠之一至該些處理器元件之另一的該些I/O埠之一,以致於各處理器元件以二個或更多鏈結連接至一個或二個鄰近處理器元件,各鏈結被規劃為以單一方向傳輸資料,其中X<=360及Y<180;其中一投影影像是有關於來自全部處理器元件的工作面影像;以及其中若該投影影像為一全景影像,該些處理器元件連接成一個環狀拓譜,以及若該投影影像為一廣角影像,該些處理器元件連接成一個線狀拓譜。
  2. 如請求項1之系統,其中一處理單元j包含:一影像訊號處理器(ISP),用來取得從該多鏡頭照相機捕捉的nj個鏡頭影像,以及選擇性地傳送與該nj個鏡頭影像以及零個或更多個負責重疊區有關的輸出的第一邊緣資料給一鄰近處理器元件;以及一圖像處理單元(GPU),耦接至該ISP以及用來進行一組操作,該組操作包含:(1)選擇性地從另一鄰近處理器元件接收輸入的第一邊緣資料,(2)根據一第一頂點次列表、該nj個鏡頭影像及該輸入第一邊緣資料,決定該負責重疊區內多個負責控制區的最佳接合係數,(3)對該一個或二個鄰近處理器 元件,選擇性地收發多個輸入的及輸出的接合係數,以及(4)根據該第一頂點次列表、該些最佳接合係數、該輸入接合係數、該輸入第一邊緣資料及該nj個鏡頭影像,產生nj個工作面影像,其中,nj>=1;其中,根據該些負責控制區,從該些最佳接合係數中選出該些輸出接合係數;以及其中,該第一頂點次列表包含多個具有第一資料結構的第一頂點,該些第一資料結構定義該nj個鏡頭影像及該投影影像之間的第一頂點映射。
  3. 如請求項2之系統,其中該輸出第一邊緣資料係位在該nj個鏡頭影像的第一邊緣,以及具有該些輸出接合係數的負責控制區係位在該nj個鏡頭影像的第二邊緣,其中該第一邊緣位在該第二邊緣的對向。
  4. 如請求項2之系統,其中該輸出第一邊緣資料的大小係有關於各重疊區的大小,以及各重疊區的大小隨著該多鏡頭照相機的鏡頭視域、鏡頭感應器解析度及鏡頭架設角度而改變。
  5. 如請求項2之系統,其中該處理單元j更包含:一編碼暨傳送單元,用以將該nj個工作面影像編碼成一編碼視訊流,並傳送該編碼視訊流。
  6. 如請求項2之系統,其中該些處理器元件包含一主要處理器元件及至少一輔助處理器元件,且各輔助處理器元件更以該些鏈結之一連接至該主要處理器元件,其中各輔助處理器元件之GPU用來傳送至少一工作面影像至該主要處理器元件,以及其中該主要處理器元件的處理單元更包含: 一編碼暨傳送單元,用以接收來自該至少一輔助處理器元的至少一輸入工作面影像,將該至少一輸入工作面影像及來自該主要處理器元件之GPU的工作面影像編碼成單一編碼視訊流,並傳送該單一編碼視訊流。
  7. 如請求項2之系統,其中該組操作更包含:選擇性地傳送輸出的第二邊緣資料及輸出的圖磚直方圖至該一個或二個鄰近處理器元件,其中該輸出的第二邊緣資料及該輸出的圖磚直方圖係選自該nj個工作面影像,其中該處理單元j更包含:一影像品質強化單元,用來從該一個或二個鄰近處理器元件接收輸入的第二邊緣資料及輸入的圖磚直方圖,以及根據該輸入的第二邊緣資料及該輸入的圖磚直方圖,對該nj個工作面影像進行影像品質強化以產生nj個強化影像;其中,該輸出的第二邊緣資料係位在該nj個工作面影像的最左側邊緣及最右側邊緣之其一或二者,以及該輸出的圖磚直方圖包含該nj個工作面影像的最左側邊緣的圖磚直方圖及最右側邊緣的圖磚直方圖之其一或二者。
  8. 如請求項7之系統,其中該處理單元j更包含:一編碼暨傳送單元,耦接至該影像品質強化單元,用以將該nj個強化影像編碼成一編碼視訊流,並傳送該編碼視訊流。
  9. 如請求項7之系統,其中該些處理器元件包含一主要處理器元件及至少一輔助處理器元件,且各輔助處理器元件更以該些鏈結之一連接至該主要處理器元件,其中各輔助處理器元件之GPU用來傳送至少一強化影像至該主要處理器元件,以及其中該主要處理器元件的處理單元更包含: 一編碼暨傳送單元,用以接收來自該至少一輔助處理器元的至少一輸入強化影像,將該至少一輸入強化影像及來自該主要處理器元件之GPU的強化影像編碼成單一編碼視訊流,並傳送該單一編碼視訊流。
  10. 如請求項2之系統,其中該(2)決定該些最佳接合係數之操作包含:根據該多鏡頭照相機的一鏡頭中心相對於該多鏡頭照相機之系統中心的偏移量,決定多個測試接合係數;根據該些測試接合係數,修正該第一頂點次列表中各第一頂點於各鏡頭影像的紋理座標,以產生一第二頂點次列表;根據該第二頂點次列表、該輸入第一邊緣資料及該nj個鏡頭影像,形成一個二維誤差表格,該二維誤差表格包含該些測試接合係數的不同數值及該些負責控制區中的對應累積像素值誤差量;以及根據該二維誤差表格中各負責控制區之一個或二個最鄰近控制區的累積像素值誤差量的至少一局部最小值,決定各負責控制區的最佳接合係數;其中,該第二頂點次列表包含多個具有第二資料結構的第二頂點,該些第二資料結構定義該nj個鏡頭影像及該投影影像之間的第二頂點映射。
  11. 如請求項2之系統,其中該(4)產生該nj個工作面影像之操作包含:根據該些最佳接合係數及該些輸入接合係數,修正該第一頂點次列表中各第一頂點於各鏡頭影像的紋理座標,以產生一第三頂點次列表;以及 根據該nj個鏡頭影像,對來自該第三頂點次列表的各組第三頂點所形成的各多邊形內的各點,進行柵格化、紋理映射及混和操作,以產生該nj個工作面影像;其中,該第三頂點次列表包含多個具有第三資料結構的第三頂點,該些第三資料結構定義該nj個鏡頭影像及該投影影像之間的第三頂點映射。
  12. 如請求項2之系統,其中各工作面影像是源自於該多鏡頭照相機的一對應鏡頭影像之一預設投影。
  13. 如請求項12之系統,其中該預設投影是等距長方投影、米勒投影、墨卡托投影、蘭伯特圓柱等面積投影以及帕尼尼投影之其一。
  14. 如請求項2之系統,其中各重疊區包含P1個排成一行的控制區,且P1>=3。
  15. 一種影像處理方法,適用於一個多處理器系統,該多處理器系統耦接一個多鏡頭照相機,該多鏡頭照相機捕捉一個具有X度水平視域及Y度垂直視域的視野,該多處理器系統包含多個處理器元件以及多個鏈結,各處理器元件以二個或更多鏈結連接至一個或二個鄰近處理器元件,各鏈結被規劃為以單一方向傳輸資料,該方法包含:於一處理器元件j:取得從該多鏡頭照相機捕捉的nj個鏡頭影像;於一第一傳輸階段,對該一個或二個鄰近處理器元件,選擇性地收發與該nj個鏡頭影像及零個或更多個負責重疊區有關的輸入的及輸出的第一邊緣資料; 根據一第一頂點次列表、該nj個鏡頭影像及該輸入第一邊緣資料,決定該負責重疊區內多個負責控制區的最佳接合係數;於一第二傳輸階段,對該一個或二個鄰近處理器元件,選擇性地收發輸入的及輸出的接合係數;以及根據該第一頂點次列表、該些最佳接合係數、該輸入接合係數、該輸入第一邊緣資料及該nj個鏡頭影像,產生nj個工作面影像,其中,nj>=1、X<=360及Y<180;其中,根據該些負責控制區,從該些最佳接合係數中選出該些輸出接合係數;其中,該第一頂點次列表包含多個具有第一資料結構的第一頂點,該些第一資料結構定義該nj個鏡頭影像及一投影影像之間的第一頂點映射;其中該投影影像是有關於來自全部處理器元件的工作面影像;以及其中該投影影像是一全景影像以及一廣角影像之一。
  16. 如請求項15之方法,其中該輸出第一邊緣資料係位在該nj個鏡頭影像的第一邊緣,以及具有該輸出接合係數的負責控制區係位在該nj個鏡頭影像的第二邊緣,其中該第一邊緣是反向於該第二邊緣。
  17. 如請求項15之方法,其中該輸出第一邊緣資料的大小係有關於各重疊區的大小,以及各重疊區的大小隨著該多鏡頭照相機的鏡頭視域、鏡頭感應器解析度及鏡頭架設角度而改變。
  18. 如請求項15之方法,更包含:於該處理器元件j:將該nj個工作面影像編碼成一編碼視訊流;以及 傳送該編碼視訊流。
  19. 如請求項15之方法,更包含:於至少一輔助處理器元件之每個:傳送至少一工作面影像至一主要處理器元件;於該主要處理器元件:接收來自該至少一輔助處理器元件的至少一輸入工作面影像;將該至少一輸入工作面影像及該主要處理器元件產生之工作面影像編碼成單一編碼視訊流;以及傳送該單一編碼視訊流;其中該些處理器元件包含該主要處理器元件及該至少一輔助處理器元件,且各輔助處理器元件更以該些鏈結之一連接至該主要處理器元件。
  20. 如請求項15之方法,其中於該第一及第二傳輸階段中,於該些處理器元件之間的資料傳輸方向是相反的。
  21. 如請求項15之方法,更包含:於該處理器元件j:對該一個或二個鄰近處理器元件,選擇性地收發輸入的及輸出的第二邊緣資料與輸入的及輸出的圖磚直方圖;以及根據該輸入第二邊緣資料及該輸入圖磚直方圖,對該nj個工作面影像進行影像品質強化以產生該nj個強化影像;其中,該輸出第二邊緣影像資料係位在該nj個工作面影像的最左側邊緣及最右側邊緣之其一或二者,以及該輸出圖磚直方圖包含該nj個工作面影像的最左側邊緣的圖磚直方圖及最右側邊緣的圖磚直方圖之其一或二者。
  22. 如請求項21之方法,更包含:於該處理器元件j:將該nj個強化影像編碼成一編碼視訊流;以及傳送該編碼視訊流。
  23. 如請求項21之方法,更包含:於至少一輔助處理器元件之每個:傳送至少一強化影像至一主要處理器元件;於該主要處理器元件:接收來自該至少一輔助處理器元件的至少一輸入強化影像;將該至少一輸入強化影像及該主要處理器元件產生之強化影像編碼成單一編碼視訊流;以及傳送該單一編碼視訊流;其中,該些處理器元件包含該主要處理器元件及該至少一輔助處理器元件,且各輔助處理器元件更以該些鏈結之一連接至該主要處理器元件。
  24. 如請求項15之方法,其中該決定該些最佳接合係數之步驟包含:根據該多鏡頭照相機的一鏡頭中心相對於該多鏡頭照相機之系統中心的偏移量,決定多個測試接合係數;根據該些測試接合係數,修正該第一頂點次列表中各第一頂點於各鏡頭影像的紋理座標,以產生一第二頂點次列表; 根據該第二頂點次列表、該輸入第一邊緣資料及該nj個鏡頭影像,形成一個二維誤差表格,該二維誤差表格包含該些測試接合係數的不同數值及該些負責控制區的對應累積像素值誤差量;以及根據該二維誤差表格中各負責控制區之一個或二個最鄰近控制區的累積像素值誤差量的至少一局部最小值,決定各負責控制區的最佳接合係數;其中,該第二頂點次列表包含多個具有第二資料結構的第二頂點,該些第二資料結構定義該nj個鏡頭影像及該投影影像之間的第二頂點映射。
  25. 如請求項15之方法,其中該產生該nj個工作面影像之步驟包含:根據該些最佳接合係數及該些輸入接合係數,修正該第一頂點次列表中各第一頂點於各鏡頭影像的紋理座標,以產生一第三頂點次列表;以及根據該nj個鏡頭影像,對來自該第三頂點次列表的各組第三頂點所形成的各多邊形內的各點,進行柵格化、紋理映射及混和操作,以產生該nj個工作面影像;其中,該第三頂點次列表包含多個具有第三資料結構的第三頂點,該些第三資料結構定義該nj個鏡頭影像及該投影影像之間的第三頂點映射。
  26. 如請求項15之方法,其中各重疊區包含P1個排成一行的控制區,且P1>=3。
TW110130196A 2021-08-17 2021-08-17 適用於多鏡頭照相機之多處理器系統及其方法 TWI769054B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW110130196A TWI769054B (zh) 2021-08-17 2021-08-17 適用於多鏡頭照相機之多處理器系統及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110130196A TWI769054B (zh) 2021-08-17 2021-08-17 適用於多鏡頭照相機之多處理器系統及其方法

Publications (2)

Publication Number Publication Date
TWI769054B true TWI769054B (zh) 2022-06-21
TW202310601A TW202310601A (zh) 2023-03-01

Family

ID=83104174

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110130196A TWI769054B (zh) 2021-08-17 2021-08-17 適用於多鏡頭照相機之多處理器系統及其方法

Country Status (1)

Country Link
TW (1) TWI769054B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064773A (zh) * 2006-04-26 2007-10-31 杭州草莓资讯有限公司 多镜头实景合成数码照像机系统与方法
US20080235490A1 (en) * 2004-06-18 2008-09-25 Anthony Mark Jones System for configuring a processor array
US20200077070A1 (en) * 2016-12-28 2020-03-05 Sony Corporation Generation device, identification information generation method, reproduction device, and image reproduction method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235490A1 (en) * 2004-06-18 2008-09-25 Anthony Mark Jones System for configuring a processor array
CN101064773A (zh) * 2006-04-26 2007-10-31 杭州草莓资讯有限公司 多镜头实景合成数码照像机系统与方法
US20200077070A1 (en) * 2016-12-28 2020-03-05 Sony Corporation Generation device, identification information generation method, reproduction device, and image reproduction method

Also Published As

Publication number Publication date
TW202310601A (zh) 2023-03-01

Similar Documents

Publication Publication Date Title
TWI622021B (zh) 具接合功能的全景影像產生方法及裝置
TWI728620B (zh) 基於全景影像內控制區的紋理座標調整方法
CN103685917B (zh) 图像处理器、图像处理方法和成像系统
CN108600576B (zh) 图像处理装置、方法和系统以及计算机可读记录介质
CN104301677B (zh) 面向大场景的全景视频监控的方法及装置
CN105243637B (zh) 一种基于三维激光点云进行全景影像拼接方法
CN107492069B (zh) 基于多镜头传感器的图像融合方法
CN108629829B (zh) 一种球幕相机与深度相机结合的三维建模方法和系统
CN106534670B (zh) 一种基于固联鱼眼镜头摄像机组的全景视频生成方法
TWI783423B (zh) 全景影像中鄰近鏡頭影像間顏色差的補償方法
CN105635551A (zh) 一种球型摄像机生成全景图像的方法及球型摄像机
CN106056539A (zh) 一种全景视频拼接方法
CN105324791A (zh) 坐标计算装置和方法、以及图像处理装置和方法
CN108269234A (zh) 一种全景相机镜头姿态估计方法及全景相机
CN115942103A (zh) 适用于多镜头照相机的多处理器系统及影像处理方法
TWI769054B (zh) 適用於多鏡頭照相機之多處理器系統及其方法
d'Annibale et al. From panoramic photos to a low-cost photogrammetric workflow for cultural heritage 3D documentation
WO2021020062A1 (ja) 三次元変位計測方法及び三次元変位計測装置
JP2016114445A (ja) 3次元位置算出装置およびそのプログラム、ならびに、cg合成装置
CN116437165A (zh) 影像处理系统及其方法
JP2017103695A (ja) 画像処理装置、画像処理方法、及びそのプログラム
TW202248951A (zh) 以縮放調整及接縫拼接來產生投影影像的方法
JP4548228B2 (ja) 画像データ作成方法
ES2912076T3 (es) Almacenamiento y señalización de parámetros de pupila de entrada para medios inmersivos
Limonov et al. Stereoscopic realtime 360-degree video stitching