TWI870095B - 管線元素的資料交換方法及電腦程式產品 - Google Patents
管線元素的資料交換方法及電腦程式產品 Download PDFInfo
- Publication number
- TWI870095B TWI870095B TW112143367A TW112143367A TWI870095B TW I870095 B TWI870095 B TW I870095B TW 112143367 A TW112143367 A TW 112143367A TW 112143367 A TW112143367 A TW 112143367A TW I870095 B TWI870095 B TW I870095B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- universal
- docking
- pipeline
- processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
一種管線元素的資料交換方法適用於處理資料流的管線,該方法包含:以管線中的通用元素處理資料流中的第一原始資料以產生第一分析資料,以第一對接元素接收第一分析資料,及處理第一分析資料以產生第一回饋資料,以及以通用元素接收關聯於第一回饋資料的資料,並根據關聯於第一回饋資料的資料處理資料流中的第二原始資料。
Description
本發明係關於一種管線元素的資料交換方法及電腦程式產品。
利用基於管線(pipeline)的多媒體架構來構建應用程式是一種常見且方便的開發方式,可以將特有的功能(例如,取像、編碼、解碼)建構成單一元素(element)。由於元素具有可抽換及快速組合的特性,可輕鬆達到資料交的換目的。
然而,一旦被執行管線後,便很難獲取其中途的內部訊息,造成串流資料的重複利用性低。再者,受限於管線的架構,如需在運行的過程更改相關的參數,則需要重新啟動管線。
鑒於上述,本發明提供一種解決上述問題的管線元素的資料交換方法及電腦程式產品。
依據本發明一實施例的管線元素的資料交換方法適用於處理資料流的管線,該方法包含:以管線中的通用元素處理資料流中的第一原始資料以產生第一分析資料;以第一對接元素接收第一分析資料,及處理第一分析資料以產生第一回饋資料;以及以通用元素接收關聯於第一回饋資料的資料,並根據關聯於第一回饋資料的資料處理資料流中的第二原始資料。
依據本發明一實施例的管線元素的電腦程式產品經由電腦載入而執行如上述的管線元素的資料交換方法。
綜上所述,依據本發明上述實施例的管線元素的資料交換方法及電腦程式產品可使管線中的元素進行動態的資料交換,串流資料的重複利用性高。透過對接元素,可同步執行其他資料運算,亦可於對接元素內執行另一條管線,而使管線的應用方式更為廣泛。
以上之關於本揭露內容之說明及以下之實施方式之說明係用以示範與解釋本發明之精神與原理,並且提供本發明之專利申請範圍更進一步之解釋。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。以下之實施例係進一步詳細說明本發明之觀點,但非以任何觀點限制本發明之範疇。
需先說明的是,本文所述的管線元素(element)可用於以管線(pipeline)為基礎的多媒體框架(例如,GStreamer),所述元素可以是具有取像、編碼、解碼、影像處理、執行演算法、推論及儲存資料等功能的模組。管線元素間的資料傳輸方式可以是透過探針回調函數(probe callback)、系統記憶體映射的事件(event)回調函數或其他通訊或程序間通訊(inter-process communication,IPC)協定。此外,管線元素處理的資料型態可包括人工智慧的推論資料、資料日誌及監控、排程守衛(scheduling guard)的結果及管線控制狀態等。所述排程守衛可以是透過訪問每個管線上的元素以判斷元素的狀態及資訊是否符合預期,排程守衛亦可以是透過一或多個下述的對接元素偵測其所連接的通用元素的狀態及資訊。據此,可確保管線在運作過程中的穩定性及正確性。另外,排程可包括執行上述訪問的週期等,且排程的方式可由使用者定義,本發明不予以限制。
請參考圖,圖1係依據本發明一實施例所繪示的管線元素及其資料交換方法的示意圖。在圖1中,管線中包括通用(generic)元素10,且第一對接(dock)元素11跨接於通用元素10的兩端。通用元素10及第一對接元素11可由同一個處理器執行,亦可由分別由不同處理器執行,本發明不予以限制。本文所述的處理器例如為中央處理器、繪圖處理器、微控制器、可程式化邏輯控制器或其他具有運算功能的處理器。
通用元素10用於處理資料流中的資料,及將處理後的資料輸入至第一對接元素11。第一對接元素11對所述處理後的資料進行處理,並將處理結果回饋至通用元素10,使通用元素10可據以處理資料流中的下一筆資料。所述資料流的來源可以是資料流產生裝置或上游(upstream)元素等,而原始資料可以是資料流中的至少一筆資料或上游元素輸出的資料。舉例而言,資料流產生裝置為攝影機,資料流為連續的影像序列,原始資料為影像幀。
為了更詳細說明以上內容,請一併參考圖1及圖2,其中圖2係依據本發明一實施例所繪示的管線元素的資料交換方法的流程圖。管線元素的資料交換方法適用於處理資料流的管線,所述方法包括:步驟S101:以管線中的通用元素處理資料流中的原始資料以產生第一分析資料;步驟S103:以第一對接元素接收第一分析資料,及處理第一分析資料以產生第一回饋資料;以及步驟S105:以通用元素接收關聯於第一回饋資料的資料,並根據關聯於第一回饋資料的該資料處理資料流中的另一原始資料。
於步驟S101,通用元素10處理資料流中的第一原始資料而產生第一分析資料。通用元素10可預存第一演算法,通用元素10根據第一演算法處理第一原始資料。舉例而言,資料流為連續的影像序列,原始資料為影像幀,第一演算法為物件追蹤演算法。第一分析資料可包括物件追蹤演算法的結果。
於步驟S103,第一對接元素11從通用元素10接收第一分析資料,及處理第一分析資料而產生第一回饋資料。第一分析資料可以包括處理第一分析資料的結果。第一對接元素11可預存第二演算法,第一對接元素11根據第二演算法處理第一分析資料。舉例而言,第一分析資料為物件追蹤的結果,第二演算法為光流(optical flow)演算法。步驟S103的一實施方式可以是第一對接元素11接收使用者指令,及根據使用者指令處理第一分析資料而產生第一回饋資料。以物件追蹤為例,使用者指令可以是外部的軌跡預測結果。
於步驟S105,通用元素10從第一對接元素11接收關聯於第一回饋資料的資料,並根據關聯於第一回饋資料的該資料處理資料流中的第二原始資料。步驟S105的實施方式可包括通用元素10直接自第一對接元素11接收第一回饋資料。接續前述物件追蹤演算法及光流演算法的例子,通用元素10可進一步根據第一回饋資料分析第二原始資料中物件的運動狀況,例如,速度、方向及/或加速度等。並且,通用元素10在處理第二原始資料後產生的第二分析資料可被輸入至第一對接元素11、使用者裝置(例如,電腦、智慧型手機等)、資料儲存裝置及/或下一個通用元素。另外,步驟S105的實施方式亦可包括通用元素10自另一元素接收關聯於第一回饋資料的資料,且該資料是所述另一元素處理第一回饋資料而產生。
透過上述利用對接元素建立資料迴路(loopback)的方式,可輕易地重複利用管線中的資料,且不會增加管線的複雜度,讓多媒體框架及人工智慧的運作更有效率。
請一併參考圖1及圖3,其中圖3係繪示對接元素根據通用元素產生的多個分析結果處理資料的流程圖。圖3可視為圖2之步驟S103的一實施例的細部流程圖,且包括:步驟S201:以第一對接元素儲存第一原始資料及第二原始資料;以及以第一對接元素處理第一原始資料及第二原始資料以產生第一回饋資料。
於步驟S201,第一對接元素11儲存第一原始資料及第二原始資料,且第二原始資料的產生時間點晚於第一原始資料的產生時間點。換言之,通用元素10在處理第一原始資料後,可將第一原始資料輸出至第一對接元素11。於步驟S203,第一對接元素11處理第一原始資料及第二原始資料以產生第一回饋資料。
以前述光流演算法為例,第一原始資料及第二原始資料為連續兩個影像幀,第一對接元素11對第一原始資料及第二原始資料執行光流演算法以產生物件的位移向量,及將所述位移向量作為輸出至通用元素10的第一回饋資料。
請參考圖4,其中圖4係依據本發明一實施例所繪示的管線元素的細部架構圖。如圖4所示,通用元素10可包括緩衝器101及運算器102,且緩衝器101連接於運算器102。相似地,第一對接元素11可包括緩衝器111及運算器112,緩衝器111連接於運算器112,其中運算器112可以連接呈現使用者介面的應用程式,以取得前述的使用者指令。緩衝器可用於儲存資料,運算器可用於預存演算法、處理緩衝器中儲存的資料及控制其他元素等。進一步而言,運算器可以是對接處理器(handler)或邏輯控制器,本發明不予以限制。
此外,所述的元素的資料交換方法可更包含於通用元素10定義槽端(sink pad)10a及源端(source pad)10b;於第一對接元素11定義源端11a及槽端11b;以及將通用元素10的槽端10a連接於第一對接元素11的源端11a,及將通用元素10的源端10b連接於第一對接元素11的槽端11b。另外,通用元素10可更設有槽端10c及源端10d。槽端係用於接收資料,源端係用於輸出資料。各元素的運算器、緩衝器、槽端及源端可依使用需求增減,圖4中所示的各元素的運算器、緩衝器、槽端及源端的數量僅為示例,本發明不予以限制。
若一個元素連接於對接元素,則該元素的緩衝器及運算器可分別連接於各自的槽端及源端,如圖4中的通用元素10。若一個元素未連接於對接元素,則該元素的緩衝器及運算器可串聯,且緩衝器連接於槽端,運算器連接於源端,如圖4中的第一對接元素11。
為了更詳細說明圖4的管線元素的運作方式,請一併參考圖4及圖5,其中圖5係依據圖4所繪示的管線元素的運作示例圖。需特別說明的是,圖5的管線架構與圖4的管線架構相似,不同處在於圖5的通用元素10’包括兩個運算器,分別為第一運算器102及第二運算器103。第一運算器102可用於處理原始資料,第二運算器103可用於判斷需傳送哪些資料至第一對接元素11。在圖5中,資料流為連續的影像序列,原始資料為影像幀。
通用元素10’透過槽端10c接收第一原始資料D1,緩衝器101儲存第一原始資料D1。第一運算器102對第一原始資料D1執行物件追蹤演算法而產生元資料(例如,物件框)。第二運算器103將元資料作為第一分析資料D2,及透過源端10b輸出第一分析資料D2至第一對接元素11。第二運算器103更可透過源端10b輸出第一原始資料D1至第一對接元素11。第一對接元素11處理第一分析資料D2以產生第一回饋資料,及將第一回饋資料輸出至通用元素10的槽端10a。同時,通用元素10’的源端10d可輸出另一原始資料D3至其下游元素,其中原始資料D3是通用元素10’及第一對接元素11已處理完成的資料。並且,在取得第一回饋資料後,通用元素10’的源端10d可輸出元資料及/或第一原始資料D1至其下游元素。
請接著參考圖6,圖6係依據本發明另一實施例所繪示的管線元素及其資料交換方法的示意圖。在圖6中,管線中包括第一通用元素21以及第二通用元素22,第一對接元素11跨接於第一通用元素21以及第二通用元素22的兩端。第一對接元素11、第一通用元素21以及第二通用元素22可由同一個處理器執行,亦可由分別由不同處理器執行,本發明不予以限制。第一通用元素21連接於第二通用元素22。第一通用元素21及第二通用元素22的實現方式可與圖1的通用元素10相同,第一對接元素11可與圖1的第一對接元素11相同。
第一對接元素11及第二通用元素22適用於圖2到圖5的運作方式,且圖2的步驟S105的實現方式可包括第二通用元素22根據來自第一通用元素21的中間資料處理第二原始資料,其中所述中間資料係第一通用元素21處理第一回饋資料而產生。換言之,在第一對接元素11從第二通用元素22接收第一分析資料且輸出第一回饋資料至第一通用元素21後,第一通用元素21處理第一回饋資料產生中間資料,第二通用元素22根據中間資料處理第二原始資料。
舉例而言,第一通用元素21用於執行人工智慧推論引擎,第二通用元素22用於執行演算法,第一對接元素11為連接於雲端的模組。第一對接元素11執行推論產生推論結果(中間資料),第二通用元素22進一步對推論結果執行演算法而產生演算結果(第一分析資料)。若第一對接元素11在處理演算結果後判斷第一對接元素11的推論引擎不適合,則產生引擎更換指令及/或取得新的推論引擎(第一回饋資料),使第一通用元素21可據以更新推論引擎。
另外,與圖4的實施例相同,第一對接元素11、第一通用元素21以及第二通用元素22可各自設有運算器、緩衝器、槽端及源端,且數量可根據使用需求而調整。第一對接元素11的源端可與任意上游元素的槽端連接,並且可向上游元素傳遞資料及對上游元素執行指定的任務。根據本發明的管線元素資料交換方法可協調不同元素合作,最佳化資料處理流程,且根據圖6的架構,可使上游元素根據需求執行特定任務,提高資料的處理及傳遞效率。
圖7係依據本發明又一實施例所繪示的管線元素及其資料交換方法的示意圖。在圖7中,管線中包括第一通用元素21以及第二通用元素22,第一對接元素11跨接於第二通用元素22的兩端,第二對接元素12跨接於第一通用元素21以及第二通用元素22的兩端。第一對接元素11、第二對接元素12、第一通用元素21以及第二通用元素22可由同一個處理器執行,亦可由分別由不同處理器執行,本發明不予以限制。第一通用元素21連接於第二通用元素22。第一對接元素11、第一通用元素21及第二通用元素22的實現方式可分別與圖6的第一對接元素11、第一通用元素21及第二通用元素22相同。
第二對接元素12可從第二通用元素22接收第一分析資料,及處理第一分析資料以產生第二回饋資料。第二對接元素12可將第二回饋資料輸出至第一通用元素21,亦可輸出第二回饋資料至另一管線或外部裝置。
請一併參考圖7及圖8,其中圖8係依據本發明又一實施例所繪示的管線元素的細部架構圖。本發明的管線元素的資料交換方法可包括於第一對接元素11定義源端11a以及槽端11b;於第二對接元素12定義源端12a以及槽端12b;於第一通用元素21定義槽端21a及21c以及源端21b及21d;於第二通用元素22定義槽端22a及22c以及源端22b及22d;將第一通用元素21的槽端21a連接於第二對接元素12的源端12a;將第一通用元素21的源端21d連接於第二通用元素22的槽端22c;將第二通用元素22的槽端22a連接於第一對接元素11的源端11a;將第二通用元素22的源端22b連接於第一對接元素11的槽端11b及第二對接元素12的槽端12b。
第二通用元素22是從第一通用元素21接收第一原始資料,第一通用元素21從第二對接元素12接收第二回饋資料,且圖2的步驟S105的實現方式可包括第二通用元素22根據來自第一通用元素21的中間資料處理第二原始資料,其中中間資料是第一通用元素21處理第二回饋資料而產生。
為了更詳細說明圖7及圖8的管線元素的運作方式,請參考圖9(a)到圖9(h),其中圖9(a)到圖9(h)係繪示將圖7的管線元素用於影像分析及攝影機控制的運作示例圖,且圖9(a)到圖9(h)分別對應第一時間點到第八時間點。在圖9(a)到圖9(h)中,資料流為連續的影像序列,原始資料為影像幀。在圖9(a)到圖9(h)中更包括連接於第二通用元素22的下游元素23。第一通用元素21係用於控制攝影機,第二通用元素22係用於執行物件追蹤演算法,第一對接元素11係用於執行光流演算法,第二對接元素12係用於計算攝影機的控制參數。
於圖9(a)的第一時間點,第一通用元素21接收第一原始資料f(1)。第一通用元素21尚未收到第二對接元素12的控制參數,且不處理第一原始資料f(1),並把第一原始資料f(1)傳送至第二通用元素22。
於圖9(b)的第二時間點,第一通用元素21接收第二原始資料f(2)。第一通用元素21尚未收到第二對接元素12的控制參數,且不處理第二原始資料f(2),並把第二原始資料f(2)傳送至第二通用元素22。第一原始資料f(1)抵達第二通用元素22。由於第二通用元素22尚未收到第一對接元素11的光流演算法之結果,故不處理第一原始資料f(1),及將第一原始資料f(1)傳往第一對接元素11及下游元素23作後續處理。
於圖9(c)的第三時間點,第一通用元素21接收第三原始資料f(3)。第一通用元素21尚未收到第二對接元素12的控制參數,且不處理第三原始資料f(3),並把第三原始資料f(3)傳送至第二通用元素22。第二原始資料f(2)抵達第二通用元素22。由於第二通用元素22尚未收到第一對接元素11的光流演算法之結果,故不處理第二原始資料f(2),第二通用元素22將第二原始資料f(2)傳往第一對接元素11及下游元素23作後續處理。
於圖9(d)的第四時間點,第一通用元素21接收第四原始資料f(4)。第一通用元素21尚未收到第二對接元素12的控制參數,且不處理第四原始資料f(4),並把第四原始資料f(4)傳送至第二通用元素22。第三原始資料f(3)抵達第二通用元素22。由於第二通用元素22尚未收到第一對接元素11的光流演算法之結果,故不處理第三原始資料f(3),第二通用元素22將第三原始資料f(3)傳往第一對接元素11及下游元素23作後續處理。此時,第一對接元素11的緩衝器中存有第一原始資料f(1)及第二原始資料f(2)。
於圖9(e)的第五時間點,第一通用元素21接收第五原始資料f(5)。第一通用元素21尚未收到第二對接元素12的控制參數,且不處理第五原始資料f(5),並把第五原始資料f(5)傳送至第二通用元素22。第四原始資料f(4)抵達第二通用元素22。由於第二通用元素22尚未收到第一對接元素11的光流演算法之結果,故不處理第四原始資料f(4),第二通用元素22將第四原始資料f(4)傳往第一對接元素11及下游元素23作後續處理。此時,第一對接元素11的緩衝器中存有第一原始資料f(1)、第二原始資料f(2)及第三原始資料f(3)。第一對接元素11使用第一原始資料f(1)及第二原始資料f(2)作為參考計算當前影像中的光流的位移向量以得到每個特徵點的運動軌跡,並將位移向量傳往第二通用元素22。第一對接元素11在完成位移向量的運算後,可將第一原始資料f(1)自緩衝器中移除。
於圖9(f)的第六時間點,第一通用元素21接收第六原始資料f(6)。第一通用元素21尚未收到第二對接元素12的控制參數,且不處理第六原始資料f(6),並把第六原始資料f(6)傳送至第二通用元素22。第二通用元素22收到第一對接元素11的光流演算法之結果,且不處理第五原始資料f(5),第二通用元素22將第五原始資料f(5)傳往第一對接元素11及下游元素23作後續處理。此時,第一對接元素11的緩衝器中存有第二原始資料f(2)、第三原始資料f(3)及第四原始資料f(4)。第一對接元素11使用第二原始資料f(2)及第三原始資料f(3)作為參考計算當前影像中的光流的位移向量以得到每個特徵點的運動軌跡,並將位移向量傳往第二通用元素22。第二通用元素22可一步分析物件的運動方向,及將運動方向輸出至第二對接元素12。第一對接元素11在完成位移向量的運算後,可將第二原始資料f(2)自緩衝器中移除。
於圖9(g)的第七時間點,第一通用元素21接收第七原始資料f(7)。第一通用元素21尚未收到第二對接元素12的控制參數,且不處理第七原始資料f(7),並把第七原始資料f(7)傳送至第二通用元素22。第二通用元素22收到第一對接元素11的光流演算法之結果,且不處理第六原始資料f(6),第二通用元素22將第六原始資料f(6)傳往第一對接元素11及下游元素23作後續處理。此時,第一對接元素11的緩衝器中存有第三原始資料f(3)、第四原始資料f(4)及第五原始資料f(5)。第一對接元素11使用第三原始資料f(3)及第四原始資料f(4)作為參考計算當前影像中的光流的位移向量以得到每個特徵點的運動軌跡,並將位移向量傳往第二通用元素22。第二通用元素22可一步分析物件的運動方向,及將運動方向輸出至第二對接元素12。第二對接元素12根據運動方向判斷攝影機的拍攝角度需調整,故產生對應之控制參數。所述控制參數可包括平移(pan)參數、俯仰(tilt)參數、對焦(zoom)參數及類比控制中的至少一者。第一對接元素11在完成位移向量的運算後,可將第三原始資料f(3)自緩衝器中移除。
於圖9(h)的第八時間點,第一通用元素21接收第八原始資料f(8)。由於第一通用元素21收到第二對接元素12的控制參數,第一通用元素21根據控制參數控制攝影機的拍攝角度。第一通用元素21不處理第八原始資料f(8),並把第八原始資料f(8)傳送至第二通用元素22。第二通用元素22收到第一對接元素11的光流演算法之結果,且不處理第七原始資料f(7),第二通用元素22將第七原始資料f(7)傳往第一對接元素11及下游元素23作後續處理。此時,第一對接元素11的緩衝器中存有第四原始資料f(4)、第五原始資料f(5)及第六原始資料f(6)。第一對接元素11使用第四原始資料f(4)及第五原始資料f(5)作為參考計算當前影像中的光流的位移向量以得到每個特徵點的運動軌跡,並將位移向量傳往第二通用元素22。第二通用元素22可一步分析物件的運動方向,及將運動方向輸出至第二對接元素12。第一對接元素11在完成位移向量的運算後,可將第四原始資料f(4)自緩衝器中移除。
另外,在圖7、圖8及圖9(a)到圖9(h)的實施例中,亦可省略第一通用元素21的設置,使第二通用元素22直接接收資料流,而第二對接元素12產生的第二回饋資料可經由源端12a輸出至另一管線或外部裝置(例如,攝影機的控制元件)等。
本發明上述實施例所述的方法中的全部或部分步驟可以由電腦程式實現,例如應用程式、驅動程式、作業系統等任意組合。所屬技術領域中具有通常知識者可將本發明上述實施例的方法撰寫成電腦程式碼,並作為電腦程式產品,為求簡明不再加以描述。依據本發明上述實施例的方法實施的電腦程式產品可儲存於適當的非暫態電腦可讀取媒體,例如DVD、CD-ROM、隨身碟、硬碟,也可置於可透過網路(例如,網際網路,或其他適當介質)存取的網路伺服器。於一實施例中,非暫態電腦可讀取媒體存有上述實施例的電腦程式產品,所述電腦程式產品在被電腦等資料處理設備載入時執行管線元素的資料交換方法。
綜上所述,依據本發明上述實施例的管線元素的資料交換方法及電腦程式產品可使管線中的元素進行動態的資料交換,串流資料的重複利用性高,且不需重新啟動管線即可線上(online)更改相關的參數。透過對接元素,可同步執行其他資料運算,亦可於對接元素內執行另一條管線,而使管線的應用方式更為廣泛。並且,管線中的元素與元素之間,或是管線中的元素與外部元素之間可直接進行資料交換或控制。因此,對接元素可向外部傳遞管線中的資料,可提高資料透明度。此外,由於基於管線的多媒體框架的日誌(log)或除錯(debug)系統中可能存有大量資料,透過以對接元素單獨讀取某個元素的資料,可使產生的訊息更為單純簡潔,且可更簡易地判斷管線是否異常。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
10,10’:通用元素
21:第一通用元素
22:第二通用元素
11:第一對接元素
12:第二對接元素
23:下游元素
D1,D3:原始資料
D2:第一分析資料
10b,10d,11a,12a,21b,21d,22b,22d:源端
10a,10c,11b,12b,21a,21c,22a,22c:槽端
101,111:緩衝器
102,103,112:運算器
f(1)~f(8):原始資料
S101,S103,S105,S201,S203:步驟
圖1係依據本發明一實施例所繪示的管線元素及其資料交換方法的示意圖。
圖2係依據本發明一實施例所繪示的管線元素的資料交換方法的流程圖。
圖3係繪示對接元素根據通用元素產生的多個分析結果處理資料的流程圖。
圖4係依據本發明一實施例所繪示的管線元素的細部架構圖。
圖5係依據圖4所繪示的管線元素的運作示例圖。
圖6係依據本發明另一實施例所繪示的管線元素及其資料交換方法的示意圖。
圖7係依據本發明又一實施例所繪示的管線元素及其資料交換方法的示意圖。
圖8係依據本發明又一實施例所繪示的管線元素的細部架構圖。
圖9(a)到圖9(h)係繪示將圖7的管線元素用於影像分析及攝影機控制的運作示例圖。
10:通用元素
11:第一對接元素
Claims (9)
- 一種管線元素的資料交換方法,適用於處理一資料流的一管線,該方法包含:以該管線中的一通用元素處理該資料流中的一第一原始資料以產生一第一分析資料;以一第一對接元素接收該第一分析資料,及處理該第一分析資料以產生一第一回饋資料;以及以該通用元素接收關聯於該第一回饋資料的資料,並根據關聯於該第一回饋資料的該資料處理該資料流中的一第二原始資料,其中該通用元素係連接於一第一通用元素的一第二通用元素,以該通用元素接收關聯於該第一回饋資料的該資料,並根據關聯於該第一回饋資料的該資料處理該資料流中的該第二原始資料包含:以該第二通用元素根據來自該第一通用元素的中間資料處理該第二原始資料,其中該中間資料係該第一通用元素處理該第一回饋資料而產生。
- 如請求項1所述的管線元素的資料交換方法,更包含:以一第二對接元素接收該第一分析資料,及處理該第一分析資料以產生一第二回饋資料。
- 如請求項2所述的管線元素的資料交換方法,其中該第一通用元素從該第二對接元素接收該第二回饋資料,該第二通用元素係從該第一通用元素接收該第一原始資料,以該通用元素接收關聯於該第 一回饋資料的該資料,並根據關聯於該第一回饋資料的該資料處理該資料流中的該第二原始資料更包含:以該第二通用元素根據來自該第一通用元素的中間資料處理該第二原始資料,其中該中間資料係該第一通用元素處理該第二回饋資料而產生。
- 如請求項1所述的管線元素的資料交換方法,更包含:分別於該通用元素及該第一對接元素定義槽端及源端;以及將該通用元素的該槽端連接於該第一對接元素的該源端,及將該通用元素的該源端連接於該第一對接元素的該槽端。
- 如請求項2所述的元素的資料交換方法,更包含:分別於該通用元素、該第一對接元素及該第二對接元素定義槽端及源端;以及將該通用元素的該槽端連接於該第一對接元素的該源端,及將該通用元素的該源端連接於該第一對接元素的該槽端及該第二對接元素的該槽端。
- 如請求項3所述的管線元素的資料交換方法,更包含:分別於該第一通用元素、該第二通用元素、該第一對接元素及該第二對接元素定義槽端及源端;將該第一通用元素的該槽端連接於該第二對接元素的該源端;將該第二通用元素的該槽端連接於該第一對接元素的該源端;以及將該第二通用元素的該源端連接於該第一對接元素的該槽端及該第二對接元素的該槽端。
- 如請求項1所述的管線元素的資料交換方法,其中以該第一對接元素接收該第一分析資料,及處理該第一分析資料以產生該第一回饋資料包含:以該第一對接元素儲存該第一原始資料及該第二原始資料;以及以該第一對接元素處理該第一原始資料及該第二原始資料以產生該第一回饋資料。
- 如請求項1所述的管線元素的資料交換方法,其中以該第一對接元素接收該第一分析資料,及處理該第一分析資料以產生該第一回饋資料包含:以該第一對接元素接收一使用者指令;以及根據該使用者指令處理該第一分析資料以產生該第一回饋資料。
- 一種電腦程式產品,經由電腦載入而執行如請求項1~8中任一項所述的管線元素的資料交換方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW112143367A TWI870095B (zh) | 2023-11-10 | 2023-11-10 | 管線元素的資料交換方法及電腦程式產品 |
| US18/398,805 US20250156191A1 (en) | 2023-11-10 | 2023-12-28 | Data exchanging method of pipeline elements and non-transitory computer readable medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW112143367A TWI870095B (zh) | 2023-11-10 | 2023-11-10 | 管線元素的資料交換方法及電腦程式產品 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI870095B true TWI870095B (zh) | 2025-01-11 |
| TW202520068A TW202520068A (zh) | 2025-05-16 |
Family
ID=95151745
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112143367A TWI870095B (zh) | 2023-11-10 | 2023-11-10 | 管線元素的資料交換方法及電腦程式產品 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20250156191A1 (zh) |
| TW (1) | TWI870095B (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107506329B (zh) * | 2017-08-18 | 2018-06-19 | 浙江大学 | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 |
| US20190228340A1 (en) * | 2017-08-19 | 2019-07-25 | Wave Computing, Inc. | Data flow graph computation for machine learning |
| TWI700637B (zh) * | 2017-10-20 | 2020-08-01 | 英商葛夫科有限公司 | 用於控制時序之計算機程式、計算計算機中之功能的方法、及相關計算機 |
| CN111008042B (zh) * | 2019-11-22 | 2022-07-05 | 中国科学院计算技术研究所 | 基于异构流水线的高效通用处理器执行方法及系统 |
| CN115525399A (zh) * | 2021-06-25 | 2022-12-27 | 英特尔公司 | 用于图形环境中的抢占的屏障状态保存和恢复 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7570267B2 (en) * | 2004-05-03 | 2009-08-04 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
| US7595805B2 (en) * | 2006-04-11 | 2009-09-29 | Qualcomm Incorporated | Techniques to facilitate use of small line buffers for processing of small or large images |
| EP2018030A1 (en) * | 2007-07-18 | 2009-01-21 | Blue Bee Limited | A docking station and a kit for a personal electronic device |
| WO2015186002A2 (en) * | 2014-06-03 | 2015-12-10 | Mobileye Vision Technologies Ltd. | Systems and methods for detecting an object |
| GB2554633B (en) * | 2016-06-24 | 2020-01-22 | Imperial College Sci Tech & Medicine | Detecting objects in video data |
| EP3672228B1 (en) * | 2018-12-20 | 2025-03-19 | Axis AB | Method and system for adjusting an image pipeline setting |
| CN113781519A (zh) * | 2020-06-09 | 2021-12-10 | 华为技术有限公司 | 目标跟踪方法和目标跟踪装置 |
-
2023
- 2023-11-10 TW TW112143367A patent/TWI870095B/zh active
- 2023-12-28 US US18/398,805 patent/US20250156191A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107506329B (zh) * | 2017-08-18 | 2018-06-19 | 浙江大学 | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 |
| US20190228340A1 (en) * | 2017-08-19 | 2019-07-25 | Wave Computing, Inc. | Data flow graph computation for machine learning |
| TWI700637B (zh) * | 2017-10-20 | 2020-08-01 | 英商葛夫科有限公司 | 用於控制時序之計算機程式、計算計算機中之功能的方法、及相關計算機 |
| CN111008042B (zh) * | 2019-11-22 | 2022-07-05 | 中国科学院计算技术研究所 | 基于异构流水线的高效通用处理器执行方法及系统 |
| CN115525399A (zh) * | 2021-06-25 | 2022-12-27 | 英特尔公司 | 用于图形环境中的抢占的屏障状态保存和恢复 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202520068A (zh) | 2025-05-16 |
| US20250156191A1 (en) | 2025-05-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109375951B (zh) | 一种用于执行全连接层神经网络正向运算的装置和方法 | |
| WO2016206047A1 (en) | Techniques for reliable primary and secondary containers | |
| US10366084B2 (en) | Optimizing pipelining result sets with fault tolerance in distributed query execution | |
| CN108334407B (zh) | 在硬件线程调度程序上调度基于并行块的数据处理任务 | |
| US10467106B2 (en) | Data processing method, data processing system, and non-transitory computer program product for controlling a workload delay time | |
| WO2020206637A1 (zh) | 基于数据流的深度网络加速方法、装置、设备及存储介质 | |
| US20140173558A1 (en) | Efficient execution of human machine interface applications in a heterogeneous multiprocessor environment | |
| WO2021136512A1 (zh) | 基于深度学习节点计算的调度方法、设备及存储介质 | |
| CN104216766A (zh) | 对流数据进行处理的方法及装置 | |
| CN111753994B (zh) | Ai芯片的数据处理方法、装置和计算机设备 | |
| CN115543538A (zh) | 一种面向物联网的机器学习容器镜像下载系统及其方法 | |
| US20180114130A1 (en) | Method And System For Pre-Processing Data Received From Data Sources To Deduce Meaningful Information | |
| WO2016008317A1 (zh) | 数据处理方法和中心节点 | |
| CN116107728B (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
| TWI870095B (zh) | 管線元素的資料交換方法及電腦程式產品 | |
| WO2021036451A1 (zh) | 一种分布式系统内实时通讯方法、装置及分布式系统 | |
| CN114185667B (zh) | 数据处理方法及装置以及相关产品 | |
| Cannella et al. | Adaptivity support for MPSoCs based on process migration in polyhedral process networks | |
| US20210319282A1 (en) | Electronic device for controlling data processing of modularized neural network, and method for controlling same | |
| CN119991741A (zh) | 管线元素的数据交换方法及非暂态计算机可读取媒体 | |
| Tsao et al. | Performance evaluation of inter-processor communication for an embedded heterogeneous multi-core processor | |
| CN116820713A (zh) | 流水控制方法、加速器和电子设备 | |
| WO2022218510A1 (en) | Method for scheduling software tasks on at least one heterogeneous processing system using a backend computer system, wherein each processing system is situated in a respective vehicle of a vehicle fleet, and control framework for at least one vehicle | |
| CN111857538B (zh) | 数据处理方法、装置及存储介质 | |
| US20140359625A1 (en) | Detection and correction of race conditions in workflows |