當(dāng)前位置:首頁 > 電源 > 功率器件
[導(dǎo)讀]摘要:在高性能計(jì)算、娛樂和科學(xué)計(jì)算市場,OpenCL的采用在持續(xù)增長。OpenCL的靈活性和便攜性使之成為了一個(gè)開發(fā)圖像處理應(yīng)用的優(yōu)秀平臺(tái)。然而,OpenCL尚未應(yīng)用到硬拷貝打印

摘要:在高性能計(jì)算、娛樂和科學(xué)計(jì)算市場,OpenCL的采用在持續(xù)增長。OpenCL的靈活性和便攜性使之成為了一個(gè)開發(fā)圖像處理應(yīng)用的優(yōu)秀平臺(tái)。然而,OpenCL尚未應(yīng)用到硬拷貝打印機(jī)和多功能打印機(jī)(MFP)市場。傳統(tǒng)上,打印機(jī)/MFP市場使用全定制系統(tǒng)級(jí)芯片(SoC或ASIC)、專用集成電路進(jìn)行圖像處理。在本文中,我們探討了配合Altera SoC FPGA(現(xiàn)場可編程門陣列)的OpenCL在核心MFP圖像處理流水線中的應(yīng)用。核心圖像處理流水線以每分鐘大于90頁信紙大小的全色RGB持續(xù)速率運(yùn)行,圖像分辨率為600DPI(每英寸點(diǎn)數(shù)),同時(shí)采用了成本有效的FPGA器件。相比運(yùn)行在嵌入式CPU上的基于C語言的軟件流水線,OpenCL流水線可實(shí)現(xiàn)至少40倍的性能提升,在高端臺(tái)式CPU上的運(yùn)行改善了5倍。

I. 引言

歷史上,MFP和打印機(jī)廠商都是開發(fā)定制ASIC或SoC器件來執(zhí)行圖像處理操作。這些ASIC/SoC器件包括圖像流水線,用以接受來自CCD或CIS傳感器的RGB數(shù)據(jù),執(zhí)行濾波、縮小/放大、色彩空間轉(zhuǎn)換、圖像分割和半色調(diào)操作。然后,由此產(chǎn)生的經(jīng)處理的圖像使用減色著色劑進(jìn)行打印:青色、品紅、黃色和黑色。其目標(biāo)是在打印副本上精確地再現(xiàn)原始文檔,而不引入視覺假像。

在底層技術(shù)(如DDR內(nèi)存和USB連接)變得過時(shí)之前,ASIC/SoC器件通常有三年的有限壽命。隨著硅技術(shù)的不斷萎縮,開發(fā)一個(gè)定制ASIC/SoC所需的投資在繼續(xù)增加。一個(gè)采用雙核處理器、必要的連接、DDR3內(nèi)存控制器、圖像處理、GPU、LCD控制器等的28納米SoC的設(shè)計(jì)、開發(fā)和交付需要花費(fèi)超過1000萬美元的成本。

取決于許多因素,大型SoC/ASIC器件的開發(fā)周期要花18至30個(gè)月,包括新IP的數(shù)量和大小、利用以往設(shè)計(jì)的能力、設(shè)計(jì)團(tuán)隊(duì)經(jīng)驗(yàn)和成熟的有針對(duì)性的硅技術(shù)。

打印機(jī)/MFP市場的產(chǎn)品周期是24到36個(gè)月的時(shí)間。打印機(jī)/MFP市場成長速度平緩,增加了以較低成本和較短開發(fā)周期提供更多功能的競爭壓力[1]。

隨著ASIC/SoC開發(fā)周期接近同一時(shí)間MFP產(chǎn)品的生命周期,MFP/打印機(jī)廠商需要一個(gè)新的平臺(tái)來縮短開發(fā)和部署周期?;赟oC的OpenCL和FPGA的組合為解決這一難題提供了一個(gè)有趣的解決方案。

II. MFP圖像處理流水線背景

一個(gè)重要的研究機(jī)構(gòu)已經(jīng)在文檔圖像處理領(lǐng)域積累了近20年的經(jīng)驗(yàn)[2][3]。大部分早期工作都側(cè)重于圖像處理的基礎(chǔ)知識(shí),包括提供統(tǒng)一色彩的校準(zhǔn)輸入傳感器數(shù)據(jù)、去除來自傳感器噪聲的濾波,實(shí)現(xiàn)圖像尺寸縮小或放大的縮放算法,以及實(shí)現(xiàn)使用二進(jìn)制像素打印連續(xù)色調(diào)圖像數(shù)據(jù)的半色調(diào)。當(dāng)前的文檔圖像處理研究和開發(fā)處于圖像分析、內(nèi)容提取和數(shù)據(jù)壓縮技術(shù)領(lǐng)域。[4][5][6]

所有MFP文檔圖像處理產(chǎn)品都可執(zhí)行一系列基本功能——復(fù)印、掃描和打印。圖1用圖形說明了一臺(tái)個(gè)MFP設(shè)備的基本功能或流水線。復(fù)印和掃描的操作相類似,開始于從一個(gè)掃描設(shè)備到設(shè)備無關(guān)的彩色空間的原始RGB數(shù)據(jù)轉(zhuǎn)換。復(fù)印操作進(jìn)一步處理設(shè)備無關(guān)的色彩空間圖像,并創(chuàng)建用于打印的CMYK圖像。掃描操作在設(shè)備無關(guān)的色彩空間圖像上執(zhí)行一組不同的圖像處理操作。這些操作可以包括:圖像分析、用不同頻率內(nèi)容將圖像分割為多個(gè)圖像層、OCR、光學(xué)字符識(shí)別和數(shù)據(jù)壓縮。然后,所產(chǎn)生的圖像轉(zhuǎn)被移到任一本地存儲(chǔ)介質(zhì),如USB閃存驅(qū)動(dòng)器或網(wǎng)絡(luò)設(shè)備。

 

 

圖字:

來自CCD或基于CIS掃描儀的RGB;分割

掃描儀接口;校準(zhǔn)和調(diào)整;CST(RGB到Lab);濾波器;縮放R & E;CST(Lab到CMYK);調(diào)整;誤差擴(kuò)散;無損或有損壓縮;解壓縮調(diào)整和/或操作

來自網(wǎng)絡(luò)的PS/PCL/其他PDL;解譯;顯示列表;渲染器;位圖或字節(jié)圖;調(diào)整;半色調(diào);無損壓縮;圖像存儲(chǔ);無損解壓縮;圖像調(diào)整;引擎接口

有損解壓縮;有損壓縮;至引擎

出口處理;至網(wǎng)絡(luò)

外部接口;微觀圖像處理操作;圖像存儲(chǔ);通用CPU操作;宏觀圖像處理操作

打印功能接收一個(gè)采用PDL(頁面描述語言)的編碼,或圖形顯示接口格式的文件。在采用PDL文件的情況下,MFP設(shè)備必須首先解釋文檔語言,并創(chuàng)建一個(gè)原始對(duì)象列表。渲染器捕獲這些對(duì)象,并將其轉(zhuǎn)換成數(shù)字CMYK位圖/位圖圖像。所產(chǎn)生的數(shù)字圖像可被進(jìn)一步處理和隨意壓縮。GDI打印機(jī)不需要解釋過程,因?yàn)閭魉偷酱蛴C(jī)的圖像是一個(gè)顯示對(duì)象的列表。

一旦打印或復(fù)印流水線創(chuàng)建了CMYK位圖/位圖圖像,圖像即被發(fā)送到引擎在所需介質(zhì)上打印。

本文的重點(diǎn)是一個(gè)OpenCL MFP核心復(fù)印流水線(CCP)的開發(fā),如圖2所示。

 

 

圖字:

濾波器;縮放R & E;CST(Lab到CMYK);調(diào)整;誤差擴(kuò)散

圖像存儲(chǔ)

源圖像5100x6600x24位LAB;目標(biāo)圖像5100x6600x32位CMYK

III. MFP核心復(fù)印流水線

CCP由5個(gè)內(nèi)核組成:7×7濾波器;用pad/crop縮放或減小與放大;色彩空間轉(zhuǎn)換;調(diào)整和誤差擴(kuò)散。我們將簡要地回顧各個(gè)算法和相關(guān)的內(nèi)存需求。

A. 7×7濾波器

7×7濾波器是一個(gè)2D對(duì)稱濾波器,可降低圖像噪聲。它的每一行需要跨連續(xù)7行乘連續(xù)7個(gè)像素的49個(gè)像素的上下文(context)。MFP應(yīng)用通常使用一組系數(shù)來實(shí)現(xiàn)一個(gè)平均或銳化濾波器。7×7濾波器的一般形式是:

 

 

 

 

由于系數(shù)值經(jīng)常重復(fù),濾波處理可以避免重復(fù)的乘法和加法。相反,乘以相同系數(shù)的像素可首先加入,然后與濾波器系數(shù)相乘一次。圖4直觀地顯示了潛在的優(yōu)化。這個(gè)數(shù)字僅為了清晰起見,并不代表OpenCL設(shè)計(jì)。

 

 

圖字:

M每頁掃描線

N每掃描線像素

像素;減少的濾波矩陣;有相同顏色的條目分享共同系數(shù)

工作矩陣對(duì)稱濾波器計(jì)算的高度概括,針對(duì)左到右滑動(dòng)進(jìn)行了優(yōu)化,包括:

1. 針對(duì)每一個(gè)加載的新的像素欄3種加法A

2. 針對(duì)屬于圖4所示4×7矩陣中相同濾波器系數(shù)像素的18種加法

3. 針對(duì)每個(gè)系數(shù)一個(gè)C0至C9的10種乘法M

4. 計(jì)算系數(shù)乘法最終結(jié)果的9種加法

那么,計(jì)算的總數(shù)是10M + 3A + 18A + 9A = 10M + 30A。圖5示出了計(jì)算樹。

 

 

隨著濾波器在圖像上從左至右的滑動(dòng),僅需要加載最右側(cè)像素列,即7個(gè)像素。邏輯上,這涉及將內(nèi)部像素列移到左邊,并在右側(cè)加上新的像素列。

B. 縮放

縮放模塊使用雙線性插值來減小和/或放大一幅圖像。雙線性插值是一個(gè)眾所周知的算法,在所需的新輸出像素周圍使用了4個(gè)輸入像素。圖6示出了要測試像素的雙線性插值輸入和輸出網(wǎng)格。

 

 

 

 

C. 色彩空間轉(zhuǎn)換

CCP采用設(shè)備無關(guān)的色彩空間數(shù)據(jù),通常是LAB格式,并將其轉(zhuǎn)換為設(shè)備相關(guān)的CMYK色彩空間。不幸的是,沒有公式化的方法來直接轉(zhuǎn)換L*a*b*至CMYK。每臺(tái)打印機(jī)的著色劑以非線性方式進(jìn)行交互。打印行業(yè)的公認(rèn)方法是打印測試斑點(diǎn),測量所得色,并創(chuàng)建一組C、M、Y和K查找表,即LUT。關(guān)鍵是要盡量減少LUT的大小,同時(shí)提供最高的色彩保真度。為了計(jì)算這些存儲(chǔ)在LUT之間的值,我們必須使用一個(gè)插值方案。有許多方法來執(zhí)行插值,但四面體插值法被廣泛認(rèn)為是最準(zhǔn)確的。

顧名思義,四面體插值法使用4個(gè)已知點(diǎn)來計(jì)算一個(gè)中間點(diǎn)。在我們的L*a*b*情況下,這些已知點(diǎn)的每一個(gè)都具有對(duì)應(yīng)于輸入色彩空間的三個(gè)維度。三個(gè)輸入維度L、a、b形成一個(gè)我們可以用來確定輸出像素的立方體。圖7示出了色彩空間和LUT概念。注意每個(gè)輸出彩色平面都有獨(dú)立的LUT。

 

 

圖字:

第一張圖:

L*a*b* 色彩空間

下方注解:

對(duì)于每24位輸入L*a*b*像素,可能有224個(gè)32位CMYK輸出像素。這相當(dāng)于64MB LUT!

第二張圖:

青色點(diǎn)陣

單位立方體

格點(diǎn)——憑經(jīng)驗(yàn)測量

感興趣的像

要使LUT大小降低到一個(gè)合理水平,我們可執(zhí)行以下操作:

每彩色平面有各自的LUT

每個(gè)LUT有代表點(diǎn)陣點(diǎn)的4096個(gè)條目

算法首先發(fā)現(xiàn)期望像素點(diǎn)駐留的單位立方體

一旦算法確定了哪一個(gè)單位立方體包含要測試的輸出像素,我們必須從一組8個(gè)已知像素中計(jì)算出輸出像素。這是三線性插值的實(shí)際情形。四面體插值法利用一個(gè)單位立方體可以被劃分成一組6個(gè)非重疊四面體的方法,其每個(gè)終點(diǎn)都位于單位立方體的頂點(diǎn)。使用一個(gè)四面體(有4個(gè)點(diǎn))內(nèi)插來削減一半像素?cái)?shù)時(shí),我們必須使用插值結(jié)果。圖8以圖形示出了六個(gè)四面體。

 

 

CST算法首先確定了輸出像素(P)駐留在哪個(gè)四面體中,并使用了4個(gè)已知輸出像素插入最終結(jié)果——見圖7。圖9示出了四面體5中的像素P。該算法計(jì)算了每個(gè)單位立方體軸端點(diǎn)和像素dx、dy、dz之間的距離,并使用了已知點(diǎn)之間的線性插值距離。

 

 

D. TRC調(diào)整

TRC調(diào)整算法是一個(gè)簡單的LUT。它允許C、M、Y、K值的進(jìn)一步調(diào)整,以校正非線性色調(diào)再現(xiàn)。具體C、M、Y、K LUT條目憑經(jīng)驗(yàn)來測量。

E. 誤差擴(kuò)散

最后階段執(zhí)行半色調(diào)功能。彩色激光MFP產(chǎn)品使用一個(gè)激光系統(tǒng)來消除感光介質(zhì)上的電荷。無論電荷清除的是C、M、Y、K,墨粉都不能轉(zhuǎn)移到感光體。激光束掃過移動(dòng)的感光體,被調(diào)制來創(chuàng)建一個(gè)倒置的圖像。調(diào)制的最小時(shí)間周期是一個(gè)像素。在反轉(zhuǎn)圖像被寫入感光體后,它經(jīng)過一個(gè)墨粉分配器附近。然后,帶有相反電荷的墨粉被吸引到電荷存在的感光區(qū)。墨粉“粘”到感光體上。最后一個(gè)步驟是將感光體上的圖像轉(zhuǎn)印到紙張或其他介質(zhì)上。單個(gè)像素或開或關(guān),實(shí)現(xiàn)二進(jìn)制的1過程。來自TRC內(nèi)核的8位CMYK像素必須半色調(diào)或二進(jìn)制化,以驅(qū)動(dòng)打印機(jī)中的激光系統(tǒng)。有許多算法可以將連續(xù)色調(diào)數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)。誤差擴(kuò)散是MFP/打印機(jī)中使用的一種通用算法。我們選擇了實(shí)施眾所周知的弗洛伊德-斯坦伯格(Floyd-Steinberg)誤差擴(kuò)散算法的一個(gè)變種,它有簡單的算術(shù)修正系數(shù)[7]。[!--empirenews.page--]

弗洛伊德-斯坦伯格誤差擴(kuò)散量化了基于一個(gè)閾值陣列的輸入像素,然后將剩余誤差分配到相鄰像素。在我們的案例中,我們將一個(gè)8位輸入像素減少到二進(jìn)制輸出像素。因此,我們的閾值陣列是一個(gè)127的值。大于127的輸入像素成為了邏輯1。≤127的像素成為了0。該算法定義如下:

 

 

1. IP(x,y)是當(dāng)前輸入像素

2. EPP是來自以前像素的剩余閾值誤差,IP(x-1,y)

3. EP是來自以前掃描線的誤差矢量,y-1。

IV. ALTERA OpenCL編譯器

超出實(shí)際OpenCL代碼的OpenCL系統(tǒng)的最關(guān)鍵部分是編譯器。針對(duì)OpenCL 13.1,Altera SDK提供了一些獨(dú)特的功能,包括[8]:

A. 通道

B. I/O通道

C. 內(nèi)存訪問合并(coalescing)

D. 自動(dòng)循環(huán)流水線

E. 移位寄存器推理

A. 通道

標(biāo)準(zhǔn)OpenCL模型假設(shè)內(nèi)核運(yùn)行在基于全局內(nèi)存的數(shù)據(jù)集。由內(nèi)核#1從全局內(nèi)存讀取一個(gè)輸入塊,經(jīng)處理將其結(jié)果寫回全局內(nèi)存的不同部分。如果第二個(gè)內(nèi)核需要進(jìn)一步處理來自內(nèi)核#1的結(jié)果,就必須等待,直到內(nèi)核#1完成,所有輸出數(shù)據(jù)被寫回全局內(nèi)存。只有這樣,內(nèi)核#2才能讀取和處理數(shù)據(jù)。顯然,這個(gè)連續(xù)過程導(dǎo)致了流水線延遲,每個(gè)額外內(nèi)核都以最佳線性增加的。而且,內(nèi)存的每一次進(jìn)出都增加了全局內(nèi)存帶寬,并降低了流水線吞吐量。為了解決這個(gè)問題,Altera提供了內(nèi)核通道的概念,它允許來自內(nèi)核#1的輸出結(jié)果直接轉(zhuǎn)到內(nèi)核#2的輸入。Altera離線編譯(AOC)增加了所有必要的同步邏輯和FIFO存儲(chǔ)器,允許數(shù)據(jù)從子內(nèi)核n傳遞給內(nèi)核n+1。圖10顯示了標(biāo)準(zhǔn)OpenCL和Altera廠商擴(kuò)展通道數(shù)據(jù)流。

 

 

圖字:

標(biāo)準(zhǔn)OpenCL模型:

系統(tǒng)內(nèi)存

主機(jī)CPU

核心1;核心N

全局內(nèi)存DDR3;內(nèi)核接口

FIFO、DMA、DDR控制器、內(nèi)存聚結(jié)器、結(jié)構(gòu)總線轉(zhuǎn)向、PLL時(shí)鐘交錯(cuò),等

內(nèi)核N;內(nèi)核;內(nèi)核;內(nèi)核1;內(nèi)核M;內(nèi)核;內(nèi)核;內(nèi)核N

本地內(nèi)存——RAM塊

內(nèi)核

FPGA

有通道廠商擴(kuò)展的OpenCL:

系統(tǒng)內(nèi)存

主機(jī)CPU

核心1;核心N

全局內(nèi)存DDR3;內(nèi)核接口

FIFO、DMA、DDR控制器、內(nèi)存聚結(jié)器、結(jié)構(gòu)總線轉(zhuǎn)向、PLL時(shí)鐘交錯(cuò),等

內(nèi)核N;內(nèi)核2;內(nèi)核3;內(nèi)核4;內(nèi)核N;內(nèi)核M;內(nèi)核N+1;內(nèi)核N+2

本地內(nèi)存——RAM塊

內(nèi)核

FPGA

B. IO通道

IO通道是一個(gè)擴(kuò)展通道概念,它允許外部IO直接連接到OpenCL內(nèi)核。IO通道允許外部端口,如以太網(wǎng)、串行LVDS或OEM專用接口連接到內(nèi)核,而無需首先進(jìn)入全局內(nèi)存。

在我們的MFP例子中,IO通道可以允許RGB掃描儀數(shù)據(jù)饋送到校準(zhǔn)內(nèi)核,然后連接到CCP。此外,CCP誤差擴(kuò)散輸出視頻數(shù)據(jù)可以饋送到在彩色打印機(jī)上打印圖像數(shù)據(jù)的一個(gè)引擎內(nèi)核。(請(qǐng)注意,我們尚未實(shí)現(xiàn)IO通道。這是留給未來的工作。)圖11示出了IO通道數(shù)據(jù)流。

 

 

圖字:

有通道和直接IO通道廠商擴(kuò)展的OpenCL

系統(tǒng)內(nèi)存

主機(jī)CPU

核心1;核心N

全局內(nèi)存DDR3;內(nèi)核接口

FIFO、DMA、DDR控制器、內(nèi)存聚結(jié)器、結(jié)構(gòu)總線轉(zhuǎn)向、PLL時(shí)鐘交錯(cuò),等

IO接口

IO接口

內(nèi)核1;內(nèi)核2;內(nèi)核3;內(nèi)核4;內(nèi)核N;內(nèi)核M;內(nèi)核N+1;內(nèi)核N+2

本地內(nèi)存——RAM塊

內(nèi)核

FPGA

左邊紅字注解:直接IO通道允許外部IO(如以太網(wǎng)或串行Lite)和內(nèi)核之間的直接連接

右邊紅字注解:通道允許內(nèi)核之間的直接連接,而不需要訪問全局內(nèi)存

C. 內(nèi)存訪問合并

DDR內(nèi)存對(duì)于隨機(jī)訪問非常低效。它對(duì)長脈沖串順序數(shù)據(jù)效果最好。Altera的OpenCL編譯器提供靜態(tài)和動(dòng)態(tài)內(nèi)存合并。編譯器將嘗試靜態(tài)識(shí)別OpenCL內(nèi)核代碼中的多個(gè)連續(xù)請(qǐng)求,并創(chuàng)建硬件來發(fā)出一個(gè)寬請(qǐng)求。例如,如果一個(gè)整數(shù)陣列被連續(xù)訪問,則編譯器將創(chuàng)建硬件用一個(gè)DDR控制器請(qǐng)求來一次抓取八個(gè)整數(shù)。此外,Altera的OpenCL內(nèi)存系統(tǒng)提供動(dòng)態(tài)數(shù)據(jù)重新排序。DDR輸入隊(duì)列按順序接受它們收到的來自不同內(nèi)核的內(nèi)存訪問請(qǐng)求。內(nèi)部數(shù)據(jù)重新排序模塊,檢查輸入隊(duì)列地址和操作類型,然后動(dòng)態(tài)重新排序請(qǐng)求。重新排序請(qǐng)求以優(yōu)化排序存儲(chǔ)在重新排序緩沖器中。內(nèi)存控制器器讀取重新排序緩沖器,并以優(yōu)化形式存儲(chǔ)/檢索數(shù)據(jù)。圖12示出了有排序緩沖器的高電平DDR控制器。

 

 

圖字:

全局內(nèi)存DDR3;DDR控制器;DDR隊(duì)列重新排序;DDR輸入重新排序;全局內(nèi)存總線PCIe

內(nèi)核接口

FIFO、DMA、DDR控制器、內(nèi)存聚結(jié)器、結(jié)構(gòu)總線轉(zhuǎn)向、PLL時(shí)鐘交錯(cuò),等

IO接口

IO接口

內(nèi)核1;內(nèi)核2;內(nèi)核3;內(nèi)核4;內(nèi)核N;內(nèi)核M;內(nèi)核N+1;內(nèi)核N+2

本地內(nèi)存——RAM塊

FPGA

輸入隊(duì)列檢查器

D. 自動(dòng)循環(huán)流水線 - ALP

OpenCL內(nèi)核通常描述一個(gè)單線程的工作,目的在于啟動(dòng)大量這樣的線程來處理一個(gè)數(shù)據(jù)集。但是,一些問題最好表達(dá)為單線程算法。濾波和誤差擴(kuò)散是兩個(gè)這樣的例子。使用多線程進(jìn)行濾波要么將需要過多的內(nèi)存讀取,這將在稍后討論,要么需要線程之間過多的通信。由于從當(dāng)前像素到其鄰近像素的誤差傳播,用在CCP的佛洛伊德-斯坦伯格誤差擴(kuò)散算法很難并行化。

Altera OpenCL編譯器以單線程算法提供了自動(dòng)流水線循環(huán)。ALP允許以自然方式表達(dá)這類算法,并仍然獲得了FPGA加速的全部好處。對(duì)于這個(gè)項(xiàng)目,濾波和誤差擴(kuò)散內(nèi)核都通過編譯器形成了自動(dòng)流水線,實(shí)現(xiàn)了每個(gè)時(shí)鐘周期一個(gè)像素的理想流水線效率。

E. 移位寄存器推理

Altera的OpenCL編譯支持所謂移位寄存器推理(SRI)的優(yōu)化。SRI對(duì)于濾波等滑動(dòng)窗口操作特別有用,通常適用于上述循環(huán)流水線功能。從軟件的角度來看,一個(gè)滑動(dòng)窗口操作由一個(gè)固定大小陣列(通常比要處理的數(shù)據(jù)量小得多)和定義在該陣列中固定位置的元素操作組成。此時(shí),要處理的數(shù)據(jù)被轉(zhuǎn)換成陣列的一個(gè)元素,固定大小陣列的每個(gè)值下移一個(gè)位置,以容納新的值。每個(gè)轉(zhuǎn)移的數(shù)據(jù)值出現(xiàn)一個(gè)輸出值。圖13示出了用于7×7濾波器的移位寄存器陣列概念。

 

 

圖字:

Line Buffer 行緩沖區(qū)

乘法器/加法器樹——流水線的性能

結(jié)果

以黃色顯示了移位寄存器陣列、D型觸發(fā)器

通用時(shí)鐘到所有邏輯沒有顯示

7×7濾波器要求來自7條輸入線的7個(gè)輸入像素來計(jì)算一個(gè)輸出像素。一種簡單方法是讀取所有49個(gè)像素,計(jì)算一個(gè)輸出像素,然后重復(fù)上述過程,讀取接下來的49個(gè)像素等。但是這非常低效,因?yàn)槟阕罱K會(huì)讀取圖像N×M*49次,其中N是圖像寬度,M是圖像長度。

減少內(nèi)存帶寬的理想解決方案是一次讀取一個(gè)圖像像素,并把它們存儲(chǔ)在本地移位寄存器的末端。在每個(gè)讀取的像素上,移位寄存器被左移一位,濾波值是通過訪問49個(gè)抽頭點(diǎn)(tap point)來計(jì)算的。要執(zhí)行7×7濾波器,移位寄存器必須是6條掃描線加7個(gè)像素長。一個(gè)新輸出像素計(jì)算的是每個(gè)輸入像素讀取,除了第6條掃描線讀取。另外,圖像讀取正好一次。不過,F(xiàn)PGA片上存儲(chǔ)器的成本是很高的。對(duì)于一個(gè)7×7濾波器和寬度為5100像素的掃描線,6條掃描線+7個(gè)像素移位寄存器陣列是5100×6+7 = 30,607像素。在每個(gè)像素3個(gè)字節(jié)時(shí),片上RAM塊幾乎是90KB或717Kbits。圖14是編譯器如何實(shí)例化一個(gè)移位寄存器和行緩沖陣列,減少了全局內(nèi)存帶寬的框圖:

 

 

圖字:

全局內(nèi)存;DMA讀取通道;7×7濾波器矩陣

乘法器/加法器樹——流水線的性能

Altera OpenCL編譯器可自動(dòng)識(shí)別來自O(shè)penCL內(nèi)核代碼的移位寄存器設(shè)計(jì)模式,而無需編譯器提示(如程序)的幫助。你可以簡單斷言用作代碼中移位寄存器的一個(gè)固定大小陣列,而AOC將創(chuàng)建所需的硬件。

F. CCP數(shù)據(jù)流

CCP利用了所有Altera OpenCL編譯器的改進(jìn),以提供最佳的性能。第一個(gè)CCP階段是濾波,在邏輯上實(shí)現(xiàn)了3個(gè)并聯(lián)濾波器操作。每個(gè)濾波器處理3個(gè)輸入色彩空間(L*、a*和b*)中的一個(gè)。7×7濾波器從全局內(nèi)存提取數(shù)據(jù),填補(bǔ)移位寄存器,執(zhí)行濾波功能,最終結(jié)果存回全局內(nèi)存。存儲(chǔ)在全局內(nèi)存中的原始輸入數(shù)據(jù)以隔行掃描線(SI)格式結(jié)構(gòu)化。SI數(shù)據(jù)被定義為連續(xù)存儲(chǔ)的一個(gè)彩色平面接著下一個(gè)彩色平面的整個(gè)掃描線,即N個(gè)像素。SI數(shù)據(jù)是突發(fā)讀取全局內(nèi)存的理想選擇。我們選擇這個(gè)格式實(shí)現(xiàn)未來的CCP增強(qiáng),其中的輸入數(shù)據(jù)將直接來自掃描儀。所有CCP數(shù)據(jù)均作為uchar4讀取。

CCP縮放算法目前不能進(jìn)行結(jié)構(gòu)化來接受SI數(shù)據(jù)。由于縮放內(nèi)核在濾波器輸出上運(yùn)行,我們要確保濾波結(jié)果以像素隔行格式寫入全局內(nèi)存。此外,后續(xù)內(nèi)核、CST、調(diào)整和ED都需要像素隔行數(shù)據(jù)。像素隔行數(shù)據(jù)被定義為一個(gè)連續(xù)存儲(chǔ)像素的所有四個(gè)彩色平面——Ci、Mi、Yi Ki Ci+1、Mi+1、Yi+1 Ki+1。圖15示出了CCP數(shù)據(jù)流和數(shù)據(jù)格式。

 

 

圖字:

LAB輸入圖像(掃描線交錯(cuò));LAB過濾后的圖像(像素交錯(cuò));存儲(chǔ)在內(nèi)存中的CMYK半色調(diào)圖像(像素交錯(cuò))

EHPS DDR內(nèi)存

可選FPGA DDR內(nèi)存

uchar4(L1,A1,B1,X1)

為了保持內(nèi)存BW像素隔行數(shù)據(jù)隨uchar4寫入,

第4像素未使用。雖然這增加了33%的內(nèi)存緩

沖區(qū),仍會(huì)大大改善內(nèi)存BW

BWuchar4(Ci,Mi,Yi,Ki)

為了便于觀看PC上的結(jié)果,誤差擴(kuò)散位沒有被打包成二進(jìn)制8位量,

而是留作字節(jié),無論是0x00或0xFF(uchar4)。在一臺(tái)真正的MFP

應(yīng)用中,二進(jìn)制輸出將打包成字節(jié),然后進(jìn)行存儲(chǔ)

濾波器;縮放R&E;CST(Lab到CMYK);調(diào)整;誤差擴(kuò)散

通道數(shù)據(jù)通路

全局內(nèi)存數(shù)據(jù)通路

V. OPENCL系統(tǒng)級(jí)接口

一旦OpenCL內(nèi)核代碼被寫入并進(jìn)行了編譯,它必須加以打包、加載并在參考板上執(zhí)行。Altera提供了完整的SW架構(gòu)來實(shí)現(xiàn)FPGA的匯編構(gòu)建、加載和利用[8][9]。Altera OpenCL編譯器采用OpenCL內(nèi)核,并創(chuàng)建了一個(gè)優(yōu)化的Verilog RTL映射。然后,采用Altera的AOC設(shè)計(jì)流程來處理Verilog代碼,從而得到FPGA二進(jìn)制編程文件,名為.sof。與創(chuàng)建FPGA.sof文件并行,一個(gè)標(biāo)準(zhǔn)C編譯器(如gcc)用來編譯與OpenCL內(nèi)核通信的C主機(jī)代碼。通信機(jī)制是通過一組鏈接到主機(jī)可執(zhí)行文件的Altera OpenCL運(yùn)行程序庫實(shí)現(xiàn)的。圖16示出了創(chuàng)建.sof和.exe文件的Altera OpenCL工具流程[9][10]。

 

[!--empirenews.page--]

 

圖字:

LLVM前端;系統(tǒng)描述;C編譯器;AC運(yùn)行程序庫

未優(yōu)化LLVM IR

優(yōu)化程序

優(yōu)化的LLVM IR

RTL發(fā)生器;Verilog

A. Altera參考板

Altera提供與OpenCL兼容的多種解決方案:可作為PCIe子卡的FPGA板和獨(dú)立的SoC/FPGA板。我們選擇了Altera Cyclone V SoC FPGA作為開發(fā)平臺(tái)[11]。OpenCL Cyclone V SoC參考平臺(tái)包含以下內(nèi)容:

● 雙核ARM Cortex A9 - 800MHz

● 1GB的DDR3 HPS,硬處理器系統(tǒng),內(nèi)存采用Linux,也可以直接訪問FPGA。它是OpenCL全局內(nèi)存的首選地點(diǎn)。

● 1GB的DDR31GB只可訪問FPGA。它可用作OpenCL內(nèi)核的“暫存(scratch pad)”全局內(nèi)存。

● 千兆以太網(wǎng)與外部PC的通信

● Cyclone V FPGA5CSXFC6D6F31C8N FPGA

圖17是我們的設(shè)計(jì)和測試中所使用的Altera參考板的框圖[12]:

 

 

B. Altera OpenCL接口

OpenCL定義了4個(gè)一組的模型:平臺(tái);執(zhí)行;內(nèi)存和編程[13]。在平臺(tái)模型級(jí)別,主機(jī)是Cyclone V SoC ARM內(nèi)核,器件是FPGA架構(gòu)。在器件內(nèi),我們采用了多個(gè)計(jì)算單元(CU)。

Altera OpenCL將內(nèi)核模擬為通過其工作項(xiàng)目流動(dòng)的深度流水線硬件架構(gòu)。它定義了作為1個(gè)計(jì)算單元的內(nèi)核流水線實(shí)例。程序員可以選擇指定計(jì)算單元內(nèi)核實(shí)例化的數(shù)量,以實(shí)現(xiàn)空間與吞吐量的權(quán)衡。指定較大數(shù)量的計(jì)算單元可消耗更多的FPGA架構(gòu),并在提高有效吞吐量的同時(shí)帶來了全局內(nèi)存爭用和恒定緩存爭用。在CCP例子中,我們采用了5個(gè)OpenCL內(nèi)核,即7×7濾波器、縮放、CST、調(diào)整和誤差擴(kuò)散,每個(gè)都同時(shí)作為1個(gè)計(jì)算單元運(yùn)行。

執(zhí)行模型采用Altera的OpenCL上下文、命令隊(duì)列和內(nèi)存對(duì)象。CCP流水線是在一個(gè)ARM內(nèi)核上運(yùn)行的基于C語言的程序。它管理FPGA加速器架構(gòu)中的主機(jī)程序和CU之間的所有切換。圖18是一個(gè)簡化系統(tǒng)軟件接口圖,示出了哪些單元是由用戶提供的,Altera公司又提供了什么。

 

 

圖字:

應(yīng)用SW MFP復(fù)印流水線

程序;OpenCL上下文;OpenCL命令隊(duì)列;內(nèi)存對(duì)象

內(nèi)核;內(nèi)核

OpenCL HAL

OpenCL用戶空間驅(qū)動(dòng)程序

FPGA非OpenCL部分Linux內(nèi)核空間驅(qū)動(dòng)程序;OpenCLLinux內(nèi)核空間驅(qū)動(dòng)程序

器件——FPGA

內(nèi)核;本地內(nèi)存;內(nèi)核;本地內(nèi)存;內(nèi)核;本地內(nèi)存

VI. 效果

所有CCP算法都是采用運(yùn)行在x86 PC的標(biāo)準(zhǔn)C語言開發(fā)的。我們創(chuàng)建了一個(gè)簡單的基于C語言的CCP流水線來順序執(zhí)行算法。然后,在x86和Cyclone V SoC ARM Cortex A9 CPU上同時(shí)執(zhí)行基于C語言的流水線。基于C語言的流水線性能和效果是我們的標(biāo)準(zhǔn)參考。

之后,將每個(gè)基于C語言的CCP算法移植到OpenCL,并在x86上重新測試內(nèi)核。然后,使用AOC重新編譯標(biāo)準(zhǔn)OpenCL內(nèi)核,并在Cyclone V SoC開發(fā)平臺(tái)上進(jìn)行測試。最后一步是修改OpenCL內(nèi)核和包括Altera的通道廠商特定優(yōu)化。

基于C語言的CCP運(yùn)行于頻率為3.1GHz的單核i7-3770,以及輸出16.6 PPM的32GB的DDR3內(nèi)存。同樣基于C語言的CCP在一個(gè)Cyclone V SoC Cortex A9內(nèi)核上執(zhí)行,運(yùn)行頻率為800MHz,還有輸出1.4PPM的1GB的DDR3內(nèi)存。

 

 

請(qǐng)注意,在基于C語言的CCP實(shí)驗(yàn)中,我們使用了最高水平的GCC Linux優(yōu)化——O3選項(xiàng)。不過沒有嘗試使用GPU/NEON協(xié)處理器。

在一個(gè)CSXFC6D6F31C8N Cyclone V器件上以74MHz運(yùn)行的標(biāo)準(zhǔn)OpenCL內(nèi)核輸出10PPM。包括Altera的廠商增強(qiáng)的優(yōu)化的CCP實(shí)現(xiàn)了72PPM。由于Altera的通道最大限度地減少了進(jìn)/出全局內(nèi)存的讀取/寫入結(jié)果,以及內(nèi)核中的循環(huán)流水線,性能提升了7倍。

 

 

A. CCP多頁性能

利用Altera通道擴(kuò)展,具體內(nèi)核執(zhí)行時(shí)間不再是疊加性的。一旦數(shù)據(jù)進(jìn)行了處理,并由內(nèi)核N生成了結(jié)果,內(nèi)核N+1即可開始其處理。這種并行處理使得CCP以最緩慢的內(nèi)核速度執(zhí)行,可忽略因流水線充填和排空造成的延遲。圖19 CCP通道排序顯示了這些通道的性能優(yōu)勢。

由于非順序輸入訪問模式,我們當(dāng)前的縮放內(nèi)核實(shí)現(xiàn)方法不能接收來自通道的數(shù)據(jù)。像這樣的濾波器結(jié)果必須首先寫入內(nèi)存,然后可以啟動(dòng)縮放內(nèi)核。進(jìn)一步的通道優(yōu)化有可能消除中間全局內(nèi)存存儲(chǔ)/檢索操作。三個(gè)通道和每個(gè)通道2行緩沖陣列將消除濾波器到定標(biāo)器(Scaler)全局內(nèi)存操作。

 

 

圖字:

輸入圖像;每幅圖像約100MB

濾波器內(nèi)核

縮放內(nèi)核

CST內(nèi)核

TRC內(nèi)核;每幅圖像約132MB

誤差擴(kuò)散內(nèi)核;每幅圖像約16MB

FCOT;2-N COT;流水線完成延遲

N份總時(shí)間;時(shí)間

首次復(fù)印時(shí)間(FCOT)是測量完成第一張圖像處理需要多長時(shí)間。2-N-COT是處理第二張和任何后續(xù)圖像所需要的時(shí)間。在圖19中我們看到,在濾波器和擴(kuò)展內(nèi)核處理完第一張圖像后,它們可以立即開始處理第二張圖像。隨著處理的圖像數(shù)目增加,CCP啟動(dòng)延遲和空延遲可以分?jǐn)偟綀D像總數(shù)N。

 

 

圖字:

OpenCL復(fù)印流水線加速

輸入頁數(shù)

在C8速度等級(jí)測量的OpenCL CCP性能是最低成本/最低性能的Cyclone V系列。圖20示出了作為輸入頁面數(shù)量函數(shù)的基準(zhǔn)CCP性能。Cyclone V C6速度等級(jí)最快,會(huì)增加20%的性能。

相比Cyclone V C6,Altera的Arria V SoC系列FPGA預(yù)計(jì)將提高15%的性能。圖21顯示了三個(gè)速度等級(jí)的實(shí)際和預(yù)期性能。

 

 

圖字:

OpenCL復(fù)印流水線加速

Cyclone V PPM C6速度等級(jí) Cyclone V PPM C8速度等級(jí)

Cyclone V PPM C6速度等級(jí)

Arria V SoC PPM

輸入頁數(shù)

B. 器件利用率

與所有Altera的擴(kuò)展一起優(yōu)化的CCP消耗83%的5CSXFC6D6F31C8N邏輯資源。崩潰(breakdown)總結(jié)于表3中。

 

 

VII. 擴(kuò)展和增強(qiáng)

A. 擴(kuò)展CCP到整個(gè)系統(tǒng)

下一步驟是采用CCP并將其連接到數(shù)據(jù)輸入的掃描裝置和數(shù)據(jù)輸出的打印裝置。這將需要增加一個(gè)校準(zhǔn)內(nèi)核和簡單的CST將RGB轉(zhuǎn)換為L*a*b*。根據(jù)在掃描設(shè)備中使用的傳感器陣列類型,即電荷耦合器件或接觸式圖像傳感器,紅、綠和藍(lán)行數(shù)據(jù)可能無法在垂直方向?qū)?zhǔn)。行數(shù)據(jù)的對(duì)準(zhǔn)可能需要幾十行緩沖區(qū),這在FPGA內(nèi)存資源方面是非常昂貴的。為了緩解這一問題,原始RGB數(shù)據(jù)將使用DMA暫時(shí)保存在HPS內(nèi)存中。然后,紅、綠、藍(lán)、行數(shù)據(jù)的對(duì)準(zhǔn)可以使用DMA指針和偏移來完成。然后校準(zhǔn)對(duì)準(zhǔn)的RGB數(shù)據(jù),并通過通道傳遞到基本CST內(nèi)核。

基本CST內(nèi)核將依次使用通道直接將數(shù)據(jù)傳遞到濾波器輸入模塊。我們的期望是,這些額外內(nèi)核將適合未使用的邏輯和內(nèi)存資源。圖22顯示了完整的復(fù)印流水線。請(qǐng)注意,除了有全掃描儀接口的CCP,分割、無損壓縮模塊和引擎級(jí)都不適合Cyclone V SoC器件。完整的圖像路徑將需要更大型的FPGA。

B. ARM內(nèi)核和NEON協(xié)處理

除了FPGA架構(gòu)和OpenCL,Altera SoC系列器件還采用了雙核ARM Cortex A9內(nèi)核和NEON協(xié)處理器。圖像處理流水線的某些模塊可以卸載到CPU。在分割操作和完成壓縮/解壓縮功能的特定部分可以使用NEON提供的有SIMD加速的CPU來完成。

C. 動(dòng)態(tài)FPGA可重編程性

Altera SoC FPGA提供的動(dòng)態(tài)重新配置允許用戶重新編程FPGA架構(gòu),同時(shí)CPU運(yùn)算繼續(xù)運(yùn)行。這個(gè)特點(diǎn)在MFP中特別有用,而其中的一些操作永遠(yuǎn)不可能同時(shí)發(fā)生。例如,掃描和復(fù)印操作共享6個(gè)共同輸入功能,如圖22所示。其余的復(fù)印操作、CST壓縮,以及剩下的掃描輸入功能、JPEG壓縮將永遠(yuǎn)不會(huì)同時(shí)運(yùn)行。因此,我們可以創(chuàng)建兩套內(nèi)核,其中包括共同的掃描儀功能和多種后端功能。這些流水線可以在給定所需時(shí)間基于MFP操作來動(dòng)態(tài)加載。在一個(gè)傳統(tǒng)ASIC中,這些模塊和數(shù)據(jù)通路都必須包括在內(nèi)。動(dòng)態(tài)圖像路徑的重新配置可以實(shí)現(xiàn)更小的FPGA,從而實(shí)現(xiàn)更低成本的圖像路徑。

D. Arria V和Arria 10 SoC

Altera的Arria V和最近發(fā)布的Arria10 SoC為功能齊全的MFP圖像路徑解決方案提供了一個(gè)可擴(kuò)展平臺(tái)。增加的內(nèi)存、更快的時(shí)鐘速度,加上更高性能ARM內(nèi)核的大型FPGA架構(gòu)為圖像處理和一般計(jì)算要求提供了完整解決方案。

 

 

圖字:

復(fù)印流水線

來自CCD或基于CIS掃描儀的RGB;分割;圖像內(nèi)存;無損解壓縮;圖像調(diào)整;引擎接口

掃描儀接口;校準(zhǔn)和調(diào)整;CST(RGB到Lab);濾波器;縮放R & E;CST(Lab到CMYK);調(diào)整;誤差擴(kuò)散;無損壓縮;至引擎

掃描出口流水線

來自CCD或基于CIS掃描儀的RGB;分割;圖像內(nèi)存;JGEG解壓縮;至網(wǎng)絡(luò)

掃描儀接口;校準(zhǔn)和調(diào)整;CST(RGB到Lab);濾波器;縮放R & E;JGEG壓縮;JGEG壓縮;出口處理;無損壓縮

通用內(nèi)核/模塊;流水線特定內(nèi)核/模塊

VIII. 總結(jié)和結(jié)論

OpenCL和Altera的工具鏈有助于2名全職OpenCL軟件工程師、1名全職硬件工程師和其他兼職人員的一個(gè)小型團(tuán)隊(duì)在約4.5個(gè)月內(nèi)實(shí)現(xiàn)CCP。團(tuán)隊(duì)可從C語言算法開始,創(chuàng)建一個(gè)高水平的基于C語言的CCP圖像流水線,將算法移植到OpenCL,在x86平臺(tái)上測試OpenCL以驗(yàn)證基本功能,增加廠商特定擴(kuò)展,學(xué)會(huì)Altera OpenCL工具流程,最后在Altera的參考平臺(tái)上測試結(jié)果。團(tuán)隊(duì)還可開發(fā)一個(gè)測試環(huán)境來驗(yàn)證位級(jí)別OpenCL結(jié)果的正確性。此外,團(tuán)隊(duì)可創(chuàng)建一個(gè)基于Web的應(yīng)用,允許用戶選擇源圖像,通過一個(gè)基于C語言的CCP和OpenCL加速的CCP運(yùn)行圖像,顯示半色調(diào)圖像,并提供計(jì)時(shí)結(jié)果。軟件工程師可以沒有以往的FPGA經(jīng)驗(yàn),硬件工程師也可以沒有以往的OpenCL經(jīng)驗(yàn)。

這種新模式演示了一個(gè)小型團(tuán)隊(duì)如何可以快速從一組算法到全面功能,優(yōu)化以硬件實(shí)現(xiàn)的流水線。大約50%的開發(fā)時(shí)間專注于優(yōu)化,包括最大限度地提高性能和最大限度地減少FPGA資源利用。該團(tuán)隊(duì)預(yù)計(jì),后續(xù)項(xiàng)目開發(fā)時(shí)間可減少50%。

MFP廠商不再需要投入數(shù)百萬美元和多年時(shí)間來開發(fā)ASIC或SoC。OpenCL和Altera SoC器件提供了一種在最短時(shí)間內(nèi)實(shí)現(xiàn)高性能、低成本MFP控制器的新模式。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉