當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]嵌入式零樹小波EZW編碼及其算法改進

在基于小波變換的圖象壓縮方案中,嵌入式零樹小波 EZW(Embedded Zerotree Wavelets)[1]編碼很好地利用小波系數(shù)的特性使得輸出的碼流具有嵌入特性。近年來,在對EZW改進的基礎上,提出了許多新的性能更好的算法,如多級樹集合分裂算法(SPIHT :Set Partitioning In Hierarchical Trees)[2],集合分裂嵌入塊編碼(SPECK:Set Partitioned Embedded bloCK coder),可逆嵌入小波壓縮算法(CREW:Compression with Reversible Embedded Wavelets)[3] 。本文對這些算法進行了原理分析、性能比較,說明了嵌入式小波圖象編碼的研究方向。

  1. 嵌入式零樹小波編碼算法EZW

  1. 1算法原理:
 

  內嵌編碼[1](embedded coding)就是編碼器將待編碼的比特流按重要性的不同進行排序,根據(jù)目標碼率或失真度大小要求隨時結束編碼;同樣,對于給定碼流解碼器也能夠隨時結束解碼,并可以得到相應碼流截斷處的目標碼率的恢復圖象。內嵌編碼中首先傳輸?shù)氖亲钪匾男畔?,也就是幅值最大的變換系數(shù)的位信息。圖1顯示了一個幅度值由大到小排序后的變換系數(shù)的二進制列表。表中每一列代表一個變換系數(shù)的二進制表示,每一行代表一層位平面,最上層為符號位,越高層的位平面的信息權重越大,對于編碼也越重要。內嵌編碼的次序是從最重要的位(最高位)到最不重要的位(最低位)逐個發(fā)送,直到達到所需碼率后停止。

  由圖1可知內嵌編碼的輸出信息主要包括兩部分:排序信息和重要象素的位信息。其中,位信息是編碼必不可少的有效信息,對應于表中箭頭所劃過的比特位;而排序信息則是輔助信息,按其重要性從左到右排列,反映了重要象素在原圖上的空間位置,用于恢復原始的數(shù)據(jù)結構。因此,內嵌算法中排序算法的優(yōu)劣和排序信息的處理決定了整個編碼算法的效率。

  一副圖象經過三級小波分解后形成了十個子帶,如圖2所示。小波系數(shù)的分布特點是越往低頻子帶系數(shù)值越大,包含的圖象信息越多,如圖2中的LL3子帶。而越往高頻子帶系數(shù)值越小,包含的圖象信息越少。就是在數(shù)值相同的情況下,由于低頻子帶反映的是圖象的低頻信息,對視覺比較重要,而高頻子帶反映的是圖象的高頻信息,對視覺來說不太重要。這樣對相同數(shù)值的系數(shù)選擇先傳較低頻的系數(shù)的重要比特,后傳輸較高頻系數(shù)的重要比特。正是由于小波系數(shù)具有的這些特點,它非常適合于嵌入式圖象的編碼算法。在JPEG2000標準中以小波變換作為圖象編碼的變換方法。

  EZW算法利用小波系數(shù)的特點較好地實現(xiàn)了圖象編碼的嵌入功能,主要包括以下三個過程:零樹預測,用零樹結構編碼重要圖,逐次逼近量化。

  1) 零樹預測

  一副經過小波變換的圖象按其頻帶從低到高形成一個樹狀結構,樹根是最低頻子帶的結點,它有三個孩子分別位于三個次低頻子帶的相應位置,見圖2左上角,其余子帶(最高頻子帶除外)的結點都有四個孩子位于高一級子帶的相應位置(由于高頻子帶分辨率增加,所以一個低頻子帶結點對應有四個高頻子帶結點,即相鄰的2×2矩陣,見圖2)。這樣圖2所示的三級小波分解就形成了深度為4的樹。

  定義一個零樹的數(shù)據(jù)結構:一個小波系數(shù)x,對于一個給定的門限T,如果|x|

  2) 用零樹結構編碼重要圖

  重要圖包括三種要素:即重要系數(shù)、孤立零和零樹根。其中,對于一個給定的閾值T,如果系數(shù)X本身和它的所有的子孫都小于T,則該點就稱為零樹根;如果系數(shù)本身小于T,但其子孫至少有一個大于或等于T,則該點就稱為孤立零點。在編碼時分別用三種符號與之對應。當編碼到最高分辨率層的系數(shù)時,由于它們沒有子孫,零樹根不再存在,只需其余兩種符號即可。為了有利于內嵌編碼,將重要系數(shù)的符號與重要圖一起編碼,這樣就要使用四種符號:零樹根、孤立零、正重要系數(shù)、負重要系數(shù)。

  3) 逐次逼近量化(Successive-Approximation Quantization,SAQ)

  內嵌編碼的核心在于采用了逐次逼近的量化方法(SAQ)。SAQ按順序使用了一系列閾值T0、T1,┄,TN-1來判決重要性,其中Ti=Ti-1/2,初始閾值T0按如下條件選擇,∣Xj∣<2T0,其中Xj表示所有變換系數(shù)。

  在編(譯)碼過程中,始終保持著兩個分離的列表:主表和輔表。主表對應于編碼中的不重要的集合或系數(shù),其輸出信息起到了恢復各重要值的空間位置結構的作用,而輔表是編碼的有效信息,輸出為各重要系數(shù)的二進制值。編碼分為主、輔兩個過程:在主過程中,設定閾值為Ti,按上述原理對主表進行掃描編碼,若是重要系數(shù),則將其幅值加入輔表中,然后將該系數(shù)在數(shù)組中置為零,這樣當閾值減小時,該系數(shù)不會影響新零樹的出現(xiàn);在輔過程中,對輔表中的重要系數(shù)進行細化,細化過程類似于比特平面編碼。對閾值Ti來說,重要系數(shù)的所在區(qū)間為[Ti,2Ti],若輔表中的重要系數(shù)位于[Ti,3Ti/2],則用符號“0”表示,否則用符號“1”表示。編碼在兩個過程中交替進行,在每個主過程前將閾值減半。譯碼時系數(shù)的重構值可以位于不確定區(qū)間的任意處,如果采用MMSE準則,則重構值應位于不確定區(qū)間的質心處。實際中為簡單起見使用區(qū)間的中心作為重構值。

  1. 2算法分析:

  研究表明,在圖象的低比特率編碼中,用來表示非零系數(shù)所在位置的開銷遠遠大于用來表示非零系數(shù)值的開銷。零樹結構正是一種描述圖象經過小波變換后非零數(shù)值位置的有效方法。EZW的編碼思想是不斷掃描變換后的圖象,生成多棵零樹來對圖象編碼:一棵零樹的形成需要對圖象進行兩次掃描。在生成第一棵零樹時,首先找出變換后圖象的最大絕對值系數(shù),用它對應的T0作初始閾值,對圖象進行第一次掃描。將圖象中絕對值小于閾值系數(shù)都看作零,然后按前面的符號定義形成零樹。在第二次掃描中,對那些絕對值大于閾值的結點(POS和NEG)按其絕對值是否大于閾值的1.5倍附加一個比特1或0來描述其精度。這樣做的目的是減小非零結點系數(shù)值的變化范圍,使其適應下一次閾值減半后的比特附加(具體細節(jié)見文[1])。而后將閾值減半,再經兩次掃描生成第二棵零樹,在第一次掃描生成零樹時,以前已經大于閾值的結點不再考慮,而第二次掃描附加比特時則要考慮以前數(shù)值較大的結點以保證精度。如此重復下去,不斷生成零樹,直到達到需要的編碼精度為止。

  研究發(fā)現(xiàn)EZW算法存在的問題是:

  (1).由于編碼時它形成多棵零樹,因而要多次掃描圖象,造成效率很低。而且每一棵樹必須在前一棵樹形成之后才能形成,所以也很難用并行算法優(yōu)化。

  (2).對所有的頻域進行等同重要度的編碼,不能充分利用小波變換的特點。改進辦法之一是把最低頻子圖與其它子圖分開處理,對其進行單獨的無失真編碼。

  (3).在一棵零樹中包含的元素越多,則越有利于數(shù)據(jù)壓縮。在EZW算法中存在這樣的樹間冗余,在SPIHT算法中則進一步利用了這種樹間冗余。

  (4).通過對小波系數(shù)的分析發(fā)現(xiàn),在同一子帶中相鄰元素間有一定的相關性,尤其在高頻子帶存在大量的低值元素,所以可以通過子帶中的集合把大量的這種低值元素組織到一起,達到數(shù)據(jù)壓縮的目的。而EZW算法并沒有充分利用這種相關性。在SPECK算法中利用這種相關性達到了數(shù)據(jù)壓縮的目的。

  2. 多級樹集合分裂算法 SPIHT

  原理分析:

  EZW算法是一種基于零樹的嵌入式圖象編碼算法,雖然在小波變換系數(shù)中,零樹是一個比較有效的表示不重要系數(shù)的數(shù)據(jù)結構,但是,在小波系數(shù)中還存在這樣的樹結構,如圖2,即它的樹根是重要的,除樹根以外的其它結點是不重要的。對這樣的系數(shù)結構零樹就不是一種很有效的表示方法。A.Said和W.A.Pearlman根據(jù)Shapiro零樹編碼算法(EZW)的基本思想,提出了一種新的且性能更優(yōu)的實現(xiàn)方法,即基于分層樹集合分割排序(Set Partitioning in Hierarchical Trees,SPIHT)的編碼算法。它采用了空間方向樹(SOT:spatial orientation tree)、集合D(i,j)和L(i,j)更有效地表示這樣的系數(shù)結構,從而提高了編碼效率。

  1)SPIHT算法中用到的概念

  算法中的一些符號和概念說明如下:

  ● H:空間方向樹所有根結點的坐標集合;

  ● Z(i,j):點(i,j)及其所有的后代的坐標集合,即指空間方向樹;

  ● D(i,j):點(i,j)的所有后代(子孫)的坐標集合,不包括(i,j)點本身;

  ● O(i,j):點(i,j)的直接后代(兒子)的坐標集合,在分層塔形結構的最高層H有O(i,j)={(i+LL,j),(i,j+LL),(i+LL,j+LL)},除此之外的結點有O(i,j)={(2i,2j),(2i,2j+1),(2i+1,2j), (2i+1,2j+1)},這里LL為最高層H的尺度。

  ● L(i,j):點(i,j)除直接后代外所有后代坐標的集合;[!--empirenews.page--]SPIHT算法是EZW算法的改進,它繼承了圖2所示的小波系數(shù)的零樹結構,這里稱作“空間方向樹”結構。

 

  基于以上概念,在SPIHT算法中,集合的分割策略如下式所示:

  2)排序過程

  編碼中使用了三個表:不重要系數(shù)表LIP(the list of insignificant pixels)、重要系數(shù)表LSP(the list of significant pixels)和不重要集合表LIS(the list of insiginificant sets)。LSP初始化為空表,LIP用最低頻子帶系數(shù)(如三級分解中的LL3、LH3、HL3、HH3中的系數(shù))初始化,LIS用每一個空間方向樹的根結點(如三級分解中的LH3、HL3、HH3中的系數(shù)位置)來初始化。

  對重要圖的確定主要是通過空間方向樹的多次分裂來實現(xiàn)的。一個三級空間方向樹T(i,j)在初始化時分裂成樹頭結點c(i,j)和剩余集合D(i,j),見公式(1)。對c(i,j)判斷其重要性,若重要則轉到LSP中。對集合D(i,j) 進行重要性測試,若D(i,j)是不重要的,則D(i,j)用一個符號就可以表示出來。若D(i,j)是重要的,則D(i,j)繼續(xù)分裂為兩個集合O(i,j)和L(ij),如公式(2)。對O(i,j)中的每個元素分別進行重要性測試,把重要元素轉到LSP中。對L(i,j)集合進行重要性測試,若L(i,j)不重要,則用一個符號就可以表示該集合,若L(i,j)重要,則L(i,j)分裂為四部分,每部分由相應空間方向樹的位置上的元素構成,每一部分與O(i,j)中的四個元素分別構成四棵新樹,由于每棵新樹的頭結點已經判斷,只對新樹的剩余部分也就是L(i,j)分裂出的四個集合即進行判斷,見公式(3) 。如此重復對每棵樹進行分裂和判斷直到找出每棵樹中的所有重要元素,把它們轉到LSP中??梢钥吹絊PIHT算法對重要圖的排序是通過一系列的集合分裂完成的,即一棵樹T(i,j)分裂成頭結點元素c(i,j)和剩余部分D(i,j),對重要的D(i,j)繼續(xù)分裂成頭結點的直接四個孩子O(i,j)和剩余部分L(i,j),對重要的集合L(i,j)再繼續(xù)分裂為四棵新樹的剩余部分。

  對每棵樹的分裂不是一次進行到底的,而是要按照一定的掃描順序進行。對各個子帶的掃描順序與EZW算法的掃描順序相同。對由最低頻子帶(如LL3)和頭結點構成的LIP中的元素是按從上到下、從左到右的順序進行掃描的。而對其它子帶則是按2×2的塊為單位從上到下、從左到右依次掃描。對每個2×2塊中元素還是按從上到下、對每個2×2塊中元素還是按從上到下、從左到右順序掃描。

  3) 量化過程:

  SPIHT采用與EZW算法相同的逐次逼近量化。

  與EZW算法的比較:

  SPIHT算法繼承了EZW算法中的小波系數(shù)的零樹結構,這里稱為“空間方向樹結構”。該算法不但把零樹作為一個集合,而且把剩余樹(即除去頭結點的零樹)也作為一個集合處理。如圖2,假設在HH3中的某個元素C(i,j)是重要的,而其后所對應的HH2、HH1中的元素是不重要的,則在EZW算法中第一次掃描把C(i,j)賦予符號P,對其后的所有元素形成四棵零樹ZTR(2i,2j)、ZTR(2i,2j+1)、ZTR(2i+1,2j)、ZTR(2i+1,2j+1)。共用PZZZZ五個符號表示這樣的一個結構。在SPIHT中C(i,j)即放在LIP中,又放在LIS中。對LIP中元素的比較之后把C(i,j)轉到LSP中。而對LIS比較之后發(fā)現(xiàn)D(i,j)是不重要的(D(i,j_)是指以(i,j)為樹根的樹除去根結點外所有的結點),可用一個符號來表示。整個結構可用兩個符號表示出來。所以該算法比EZW算法提高了壓縮率。

  SPIHT算法初始化過程、細化過程類似與EZW算法,它改進了EZW 重要圖的表示方法,也就是重要系數(shù)在表中的排序信息,使得集合的表示更為精簡,從而提高了編碼效率。SPIHT算法在不同的比特率下比EZW算法的峰值信噪比都有所提高[2]。

3.集合分裂嵌入塊編碼器SPECK

  3.1原理分析:

  對小波變換系數(shù)的分析可以看出,在系數(shù)中存在許多的不重要系數(shù),尤其對于高頻子帶更是如此。在EZW算法和SPIHT算法中,主要是利用樹結構來表示這些不重要系數(shù)。這兩種方法雖然利用了子帶間不重要系數(shù)的相關性,但是沒有充分利用同一子帶中不重要系數(shù)的相關性。為此 Asad 和 Pearlman提出了SPECK算法,該算法是近期嵌入式分級圖象編碼算法中性能較好的一種。

  1)算法中用到的概念和定義

  集合定義:LIS——不重要系數(shù)集合列表 ,用最低頻子帶系數(shù)初始化(如三級分解中的LL3)。

  LSP——重要系數(shù)列表,存放重要系數(shù)以便進一步量化。

  集合S——放置待處理的塊,用最低頻子帶系數(shù)初始化(如三級分解中的LL3)。

  集合I——放置除了S之外的剩余塊集合,I=X-S,X是所有塊的集合。

  塊:相應小波分解的每一個子帶定義一個相應的塊。塊可以是只包含單個元素,如8×8系數(shù)陣經過三級分解后對應的LL3、HL3、LH3和HH3都只包含一個元素。一般一個塊中包含22N(N=0,1,2,…,n)個元素,其中,n-1是小波分解的層數(shù)。

  2)排序過程

  對于只包含一個元素的塊,若重要則把它轉到LSP中,以便進行進一步量化。對于包含2N×2N個元素的塊,如果是不重要的,可以只用一個符號表示它。對于重要的塊,則要等分為四個子塊,然后從上到下、從左到右對各個子塊進行重要性判斷,對重要的子塊繼續(xù)分解,如此重復直到找出塊中所有的重要系數(shù),并把它轉到LSP表中,以便進一步量化。

  對各個塊的處理順序是與EZW算法對子帶的掃描順序是相同的,即從低頻塊(子帶)依次到高頻塊(子帶)。具體在SPECK算法中,采用一種稱為倍頻程分裂的方法,來決定各塊掃描順序。初始化時集合X由所有塊構成,集合S是由最低頻塊(如LL3)來初始化,而剩余集合I=X-S。集合I依次分解出三個最低頻的塊(如HL3,LH3,HH3)和剩余集合I。然后對剩余集合I再進行一次分裂,分解出三個次最低頻的塊(如HL2,LH2,HH2),如此重復直到把所有的塊分裂出來,直到剩余集合I變?yōu)榭占_@樣就可以把各個塊依次排列,重要圖掃描就是以此順序來進行。

  通過以上兩步,就可以把重要系數(shù)重要性放到表LSP中,以便下一步的逐次量化。

  3)量化過程

  SPECK算法的量化、求初始閾值與EZW算法相同。

  SPECK算法的特點如下:①以上三種算法在掃描順序和量化過程是一樣的,差別在于對不重要系數(shù)的表示方法,EZW采用零樹結構,SPIHT采用空間方向樹,SPECK采用塊結構。SPIHT算法在一個集合中包含了更多的不重要系數(shù),提高了壓縮率,而SPECK算法采用易于計算和并行處理的塊結構,提高了編碼速度。 ②另外,SPECK算法還有其它一些特點。需要小的動態(tài)存儲,有強的容錯性。因為塊間是獨立編碼的,在傳輸發(fā)生誤碼時,只有誤碼所在的塊受到影響。而在EZW和SPIHT中誤碼將影響到整個樹結構,對圖象的破壞較大。[!--empirenews.page--]4可逆嵌入小波壓縮CREW(Compression with Reversible Embedded Wavelets)

 

  雖然EZW、SPIHT和SPECK算法提供了從無損到有損的編碼方法。編碼可以在任何地方截斷得到一個有損壓縮,也可以一直編碼直到一個準無損的壓縮文件。在這里使用準無損是因為這三種算法沒有考慮使用可逆的小波變換,即整數(shù)到整數(shù)的變換。這樣在小波變換中就引入了量化誤差。在一些場合要求實現(xiàn)從有損到無損的漸進傳輸,如醫(yī)學圖象的傳輸?shù)?。針對這一要求, 可逆嵌入小波壓縮(CREW)強調了小波變換在漸進圖象編碼中的重要性。

  現(xiàn)在研究用于圖象編碼的可逆小波變換的越來越多,這些變換在有限算術精度意義上是可逆的,是把整數(shù)變換為整數(shù),它們是從準線性小波變換得來的。正是由于這些特性,這種小波變換非常適用于無損編碼、最小內存占用、最小計算復雜性的壓縮系統(tǒng)中。另外,這些變換對漸進從有損到無損的圖象恢復以及有損壓縮中感興趣區(qū)的無損恢復特別有利。

  對無損壓縮,圖象內容是一個影響變換效率的重要內容。對光滑圖象,5/11-C,5/11-A及13/7-T變換最為有效,而5/3變換對含有大量高頻信息的圖象特別合適。

  表1 圖象編碼常用的可逆的小波變換

  顯然,沒有一種變換對所有圖象不但具有低的計算復雜性還有好的有損和無損壓縮性能。所以,使用時要根據(jù)具體情況加以選擇。例如,在需要低的計算復雜性時,5/3變換是合適的選擇,因為它在具有相當好的無損有損壓縮性能同時具有低的計算復雜性[18]。

  CREW是一個包含了有損和無損靜態(tài)圖象壓縮系統(tǒng)。它使用了一個最好小波濾波器的可逆近似。對小波系數(shù)的編碼使用了與EZW相似的Horizon方法,該方法利用了變換域中空間及頻率信息的基于內容的編碼。它提供了最新的對醫(yī)學圖象的無損壓縮(深度大于8比特)的方法,也提供了在一個系統(tǒng)中對8比特深的圖象的從有損到無損的壓縮.

  表1是一些常用的用于無損壓縮的小波濾波器,根據(jù)具體使用可以選擇。

  5 結論:

  由以上分析可見,在嵌入式小波編碼的研究主要從以下三個方面進行。一是對小波系數(shù)的合理組織。研究表明,在圖象的低比特率編碼中,用來表示非零系數(shù)所在位置的開銷遠遠大于用來表示非零系數(shù)數(shù)值的開銷[15]。因此,內嵌算法中排序算法的優(yōu)劣和排序信息的處理決定了整個編碼算法的效率[14]。對這些系數(shù)進行合理排序,就可以得到更高的壓縮比如SPIHT算法以及快的編碼速度如SPECK算法。以上三種編碼算法的根本區(qū)別在于對重要圖的排序方法,如何以快的排序速度和少的重要圖編碼來尋找重要圖是嵌入式編碼算法研究的一個主要研究方向。二是從對重要系數(shù)的量化方法上進行研究,進一步提高數(shù)據(jù)的壓縮率。三是從小波濾波器的構造出發(fā),找出適合具體應用的可逆小波變換,以實現(xiàn)圖象的從有損到無損的壓縮。

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

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

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

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉