版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一種通用的基于FPGA的視頻和圖像處理可重構(gòu)平臺(tái)Jie Li, Haibo He, Hong Man史蒂文斯科技學(xué)院電子與計(jì)算機(jī)工程系美國(guó)新澤西州07030霍博肯 jli8,hhe,Hong.Man Sachi Desai美國(guó)陸軍武器研究發(fā)展和工程中心(ARDEC)新澤西州07806皮卡汀尼 sachi.desai 摘要本文提出了一種通用的多任務(wù)可重構(gòu)的視頻和圖像處理的平臺(tái)。如今在許多視頻和圖像處理應(yīng)用中,對(duì)處理能力的要求越來(lái)越高。所以超越軟件實(shí)現(xiàn),提供實(shí)時(shí)、低成本、高性能、可擴(kuò)展硬件平臺(tái)很重要。在本論文中,我們提出一個(gè)系統(tǒng),在現(xiàn)場(chǎng)可編程門陣列(FPGA)中運(yùn)用強(qiáng)大的并行處理結(jié)構(gòu)來(lái)實(shí)現(xiàn)這一目標(biāo)
2、。根據(jù)擬議系統(tǒng)的層次體系結(jié)構(gòu)和設(shè)計(jì)策略,在Xilinx的Virtex - II FPGA的嵌入式一體化處理器,內(nèi)存控制和接口技術(shù)上開(kāi)發(fā)了一個(gè)原型系統(tǒng)。我們的系統(tǒng)包括不同的功能模塊,如邊緣檢測(cè),放大和縮小的功能,根據(jù)不同的應(yīng)用要求,它使該系統(tǒng)作為通用的視頻處理平臺(tái)的靈活性很強(qiáng)。最終的系統(tǒng)利用了20的邏輯資源,50的片內(nèi)存儲(chǔ)器,總功率消耗約203mw。關(guān)鍵詞可重構(gòu)系統(tǒng),F(xiàn)PGA設(shè)計(jì),視頻和圖像處理,邊緣檢測(cè),圖像縮放。1、引言視頻和圖像處理在當(dāng)今消費(fèi)電子產(chǎn)品社會(huì)中發(fā)揮了重要作用。在過(guò)去幾十年來(lái),關(guān)于這種技術(shù),我們目睹了巨大的技術(shù)發(fā)展。隨著這方面不斷的技術(shù)革新,在消費(fèi)類電子產(chǎn)品的研究團(tuán)體中已經(jīng)提出許
3、多新的機(jī)遇和挑戰(zhàn)。例如,視頻切換技術(shù)從標(biāo)準(zhǔn)清晰度(SD)到高清晰度(HD)處理的數(shù)據(jù)需要增加6倍1。視頻監(jiān)控也在不斷變化,從傳統(tǒng)的通用中間格式(CIF)到D1的標(biāo)準(zhǔn)。為此,要增加處理能力的要求,如帶寬,實(shí)時(shí)計(jì)算,低延遲,高產(chǎn)能和低功耗,一直是學(xué)術(shù)界和工業(yè)界主要努力研究的焦點(diǎn)。視頻和圖像處理傳統(tǒng)的計(jì)算通常需要高性能的專用硬件實(shí)現(xiàn)。雖然這樣的專用集成電路(ASIC)通??梢蕴峁└呙芏裙?jié)能系統(tǒng),但它需要一個(gè)復(fù)雜的設(shè)計(jì)過(guò)程。幸運(yùn)的是,亞微米和深亞微米技術(shù)的發(fā)展使FPGA成為許多應(yīng)用程序的強(qiáng)大的硬件平臺(tái)23。例如,一個(gè)命名為Winscale的使用區(qū)域像素模型的圖像縮放算法在FPGA已實(shí)施4。此實(shí)現(xiàn)有五個(gè)
4、功能塊,包括預(yù)分頻器、行緩沖器、win濾波器、過(guò)濾器窗口內(nèi)插器和濾波參數(shù)發(fā)生器。經(jīng)過(guò)綜合,最終的系統(tǒng)總共有29000個(gè)NAND等效門。在文獻(xiàn)5中,有一個(gè)基于FPGA的 SPIHT算法,一個(gè)基于小波的圖像壓縮編碼器。各類離散小波的變換結(jié)構(gòu),是利用三個(gè)Xilinx Virtex 2000E FPGA程序在WildStar處理器板實(shí)現(xiàn)。據(jù)報(bào)道,最終的系統(tǒng)實(shí)現(xiàn)了對(duì)一個(gè)微處理器解決方案450倍提速。在文獻(xiàn)6中提出了一個(gè)基于FPGA的實(shí)時(shí)光流處理系統(tǒng)。該系統(tǒng)采用流水線結(jié)構(gòu),并在Xilinx XCV2000E的Virtex FPGA中實(shí)現(xiàn)。軟件仿真和硬件測(cè)試結(jié)果都說(shuō)明了該方法的有效性。在文獻(xiàn)7中,提出了一種
5、液晶電視視頻處理引擎,具有精確的運(yùn)動(dòng)檢測(cè)和人工消除鋸齒能力。該系統(tǒng)使用視頻領(lǐng)域的時(shí)間和空間信息來(lái)作精確運(yùn)動(dòng)檢測(cè),并通過(guò)一個(gè)窗口擴(kuò)大搜索方法來(lái)低角度邊緣檢測(cè)。并提交了系統(tǒng)級(jí)FPGA架構(gòu)以及各種仿真和驗(yàn)證結(jié)果。在文獻(xiàn)8中,提出一種實(shí)施低成本電視機(jī)頂盒(STB)的方法能擴(kuò)大跡象圖像,解碼非公開(kāi)字幕的方法。 這個(gè)系統(tǒng)的FPGA實(shí)現(xiàn)關(guān)鍵包括一個(gè)27 MHz的8位微控制器,一個(gè)圖像擴(kuò)展器和一個(gè)屏幕上顯示單元。據(jù)報(bào)道,該系統(tǒng)能解碼泰語(yǔ)和英文字幕。文獻(xiàn)9中,提出一個(gè)多窗口的部分緩沖(MWPB)計(jì)劃,作為圖像和視頻處理的二維卷積器。與所有備選計(jì)劃相比較,MWPB計(jì)劃使片上資源的利用和外部存儲(chǔ)器總線帶寬可以良好的
6、平衡?;贔PGA的視頻和圖像處理系統(tǒng)的其他工程包括運(yùn)動(dòng)的數(shù)字電影攝影機(jī)系統(tǒng)的JPEG2000 10,在Xilinx的Virtex - II的 FPGA實(shí)現(xiàn)的一個(gè)完全頻率復(fù)用平面濾波器模塊(FMFPM) 11等等。現(xiàn)有的FPGA設(shè)計(jì)大多集中在實(shí)施具體算法領(lǐng)域的具體應(yīng)用。如果有的話,目前也只有極少數(shù)通用硬件平臺(tái)支持和促進(jìn)復(fù)雜的視頻和圖像處理。因此,重構(gòu)、成本低、可擴(kuò)展的平臺(tái)對(duì)于這一領(lǐng)域是高度可取的。為此,我們提出了一個(gè)包括嵌入式處理器、內(nèi)存控制和接口技術(shù)的基于FPGA的系統(tǒng)來(lái)實(shí)現(xiàn)這一目標(biāo)。本文的其余部分組織如下。第二節(jié)介紹了所提出的FPGA平臺(tái)的系統(tǒng)高層體系結(jié)構(gòu)。在第三節(jié)中,我們提出了詳細(xì)的實(shí)施
7、以及設(shè)計(jì)出不同功能模塊的結(jié)構(gòu)。第四節(jié)給出了在不同的視頻處理應(yīng)用各種實(shí)驗(yàn)結(jié)果。最后,第五節(jié)得出了結(jié)論并簡(jiǎn)單討論了對(duì)今后的研究方向。2、基于FPGA的視頻和圖像處理平臺(tái) 2.1、系統(tǒng)級(jí)體系結(jié)構(gòu)一般來(lái)說(shuō),一個(gè)復(fù)雜的視頻應(yīng)用程序需要在不同的模塊同步處理數(shù)據(jù)。為這樣一個(gè)目的,F(xiàn)PGA的高度并行的數(shù)據(jù)操作的特點(diǎn)使它的應(yīng)用具有獨(dú)特的優(yōu)勢(shì)。根據(jù)不同的應(yīng)用需求和規(guī)格,不同類別FPGA的芯片可以被使用。在我們目前的設(shè)計(jì),我們使用一個(gè)低成本高端FPGA產(chǎn)品,以Virtex - II Pro系列(XC2VP30)為原型平臺(tái)。在0.13微米工藝技術(shù)下制備的Virtex - II Pro系列提供一個(gè)良好的平臺(tái),以滿足不同
8、的設(shè)計(jì)要求。例如, XC2VP30 FPGA包括雙電源PC的核心、超過(guò)三萬(wàn)邏輯元件和2Mbits嵌入式RAM 12。相對(duì)于傳統(tǒng)的DSP,根據(jù)設(shè)計(jì),XC2VP30 FPGA可以有效地并行實(shí)現(xiàn)乘法和累加(MAC)操作,另外,每個(gè)處理器的行為或周邊核心可定制。圖 1提供了所提出的視頻處理平臺(tái)系統(tǒng)級(jí)體系結(jié)構(gòu)。圖1所設(shè)計(jì)的系統(tǒng)級(jí)體系結(jié)構(gòu)在我們的系統(tǒng),視頻模擬數(shù)字轉(zhuǎn)換板(ADC)用于捕獲國(guó)家電視系統(tǒng)委員會(huì)(NTSC)信號(hào)及將其數(shù)字化成CCIR 601/656格式。圖1所示體系結(jié)構(gòu)展示了實(shí)施不同的視頻和圖像處理功能模塊的靈活性。在我們目前的設(shè)計(jì),我們已經(jīng)實(shí)施了三個(gè)處理功能:放大、縮小和邊緣檢測(cè)。圖 2顯示了
9、所提出系統(tǒng)的數(shù)據(jù)處理流程。人們可以輕松地?cái)U(kuò)展此架構(gòu),以包括更多的模塊,或測(cè)試自己的設(shè)計(jì)理念,或者以此平臺(tái)為基礎(chǔ)的算法。從圖2我們可以看到,所提出系統(tǒng)的FPGA實(shí)現(xiàn)包括五大功能模塊(突出顯示的省略號(hào)):用戶的特定圖2 所設(shè)計(jì)系統(tǒng)的數(shù)據(jù)處理流程功能模塊、視頻混合器模塊、色彩空間轉(zhuǎn)換器模塊、反交錯(cuò)模塊和跨集成電路(I2C)的配置模塊。用戶特定的功能模塊根據(jù)不同的視頻處理應(yīng)用實(shí)施大部分功能。這個(gè)功能盒在不同的應(yīng)用場(chǎng)景均可擴(kuò)展。視頻混合器模塊可以運(yùn)用Alpha混合混頻器功能混合不同視頻層。該模塊對(duì)子母畫面混合和圖像融合都支持。每個(gè)視頻層可在運(yùn)行時(shí)間獨(dú)立顯示。色彩空間轉(zhuǎn)換器模塊在色彩空間之間轉(zhuǎn)換傳入的視頻
10、數(shù)據(jù),這些數(shù)據(jù)用三個(gè)坐標(biāo)值指定。該模塊支持在預(yù)先定義的標(biāo)準(zhǔn)顏色之間的空間轉(zhuǎn)換,并允許用戶指定系數(shù)的兩種任何三值的色彩空間的轉(zhuǎn)換。隔行掃描視頻是常用的電視標(biāo)準(zhǔn)如相交替線(PAL)和NTSC。然而,液晶顯示器需要逐行掃描視頻。因此,反交錯(cuò)模塊將隔行掃描視頻轉(zhuǎn)換成逐行掃描視頻。我們使用嵌入式 PowerPC405微處理器,通過(guò)編程該模擬裝置的運(yùn)作模式即視屏的ADV7183B解碼器在子卡上以實(shí)現(xiàn)的I2C配置功能。從圖2可以看到,所提出系統(tǒng)的優(yōu)點(diǎn)之一是它提供了一個(gè)可擴(kuò)展模塊,可以根據(jù)不同的應(yīng)用需求實(shí)現(xiàn)不同的功能。這提供了運(yùn)用這種系統(tǒng)作為一個(gè)通用的視頻和圖像處理平臺(tái)在不同應(yīng)用程序域的靈活性。在我們目前的研
11、究中,我們實(shí)現(xiàn)了邊緣檢測(cè)和縮放(放大和縮?。┕δ?,這些在許多復(fù)雜的視頻處理應(yīng)用中是重要的步驟。 2.2四個(gè)方向的邊緣檢測(cè)邊緣檢測(cè)是多數(shù)圖像處理應(yīng)用程序中特征提取和對(duì)象分割前獲得有用信息的根本和關(guān)鍵技術(shù)。這個(gè)過(guò)程在對(duì)象與背景之間檢測(cè)對(duì)象輪廓和邊界。在本研究中,我們實(shí)現(xiàn)了在邊緣檢測(cè)中的四個(gè)方向索貝爾算子13。在運(yùn)行時(shí)間期間該檢測(cè)分辨率和濾波器系數(shù)可以動(dòng)態(tài)地改變。 一般來(lái)說(shuō),索貝爾算子是基于一個(gè)圖片二維空間梯度測(cè)量上檢測(cè)邊緣。這是通過(guò)運(yùn)用一個(gè)過(guò)濾掩飾器(卷積積分)計(jì)算圖像的卷積來(lái)計(jì)算近似梯度幅值13。通常情況下,卷積核是逐個(gè)像素和逐行掃描整個(gè)圖像,可定義為: 其中,gi,j代表卷積核,n和m是卷積內(nèi)
12、核在兩個(gè)維度的大小,fi,j和hi,j分別代表原圖像和過(guò)濾圖像。在我們的設(shè)計(jì)中一個(gè)3*3內(nèi)核是用于產(chǎn)生強(qiáng)度梯度圖。這是通過(guò)運(yùn)用四個(gè)方向的卷積內(nèi)核源視頻幀計(jì)算四個(gè)方向的梯度。圖3說(shuō)明了這種想法。 圖3四個(gè)方向的邊緣檢測(cè)為了實(shí)現(xiàn)這四個(gè)方向的邊緣檢測(cè),圖4提出了一般的二維圖像過(guò)濾器。在這個(gè)設(shè)計(jì)中,兩線緩沖器和六個(gè)寄存器用于存儲(chǔ)數(shù)據(jù)流并提供訪問(wèn)相鄰像素。該傳入的像素是通過(guò)線緩沖轉(zhuǎn)移從而創(chuàng)造一個(gè)延遲線,與所有有關(guān)的視頻線路像素同時(shí)發(fā)送到過(guò)濾器陣列。在每一個(gè)過(guò)濾器節(jié)點(diǎn),這個(gè)像素乘以適當(dāng)?shù)臑V波器系數(shù),如圖3所示。所有的乘數(shù)結(jié)果加起來(lái)在加法器樹(shù)產(chǎn)考過(guò)濾器的中間點(diǎn)輸出結(jié)果。從圖4可以看出,計(jì)算的卷積的結(jié)果需要四
13、個(gè)加法器和九個(gè)乘法器。圖4 四個(gè)方向的邊緣檢測(cè)的設(shè)計(jì) 2.3縮放功能:圖像放大和縮小縮放是另一個(gè)在許多視頻處理應(yīng)用廣泛使用的技術(shù)。 在本研究中,我們?cè)跀U(kuò)展功能模塊中實(shí)現(xiàn)了放大和縮小功能。目前關(guān)于放大功能方面有幾種流行的算法,如最近鄰法和雙線性插值法14。我們目前的設(shè)計(jì)支持這兩種方法,可配置更改的方案以及在運(yùn)行期間設(shè)置濾波器系數(shù)。圖5作為一個(gè)例子給出了雙線性插值方法詳細(xì)的設(shè)計(jì)架構(gòu)。不失一般性,我們假定高端的因素有兩個(gè),一個(gè)需要放大為原始圖像四倍。圖5說(shuō)明了用來(lái)生成圖像新的像素和新行的方法。首先, n行 和n +1行之間的新的像素由各行1/2原素結(jié)合而成。然后,生成兩垂直像素線之間的新像素。在我們
14、的設(shè)計(jì),需用兩路視頻幀緩沖區(qū):一個(gè)是用來(lái)存儲(chǔ)亮度信號(hào),另一個(gè)是用來(lái)存放色度信號(hào)。圖5視頻處理放大功能設(shè)計(jì)圖6說(shuō)明了實(shí)施縮小功能的設(shè)計(jì)。為了消除混頻效應(yīng),傳入的圖像首先通過(guò)一個(gè)低通濾波器。然后運(yùn)用雙線性插值方法計(jì)算新的像素。假設(shè)縮小圖像是原始圖像的四分之一,圖6顯示的數(shù)據(jù)流來(lái)實(shí)現(xiàn)這一點(diǎn),其中Cb和Cr代表視頻色度數(shù)據(jù),Y代表視頻亮度數(shù)據(jù)。圖6視頻圖像縮小功能的設(shè)計(jì) 3系統(tǒng)實(shí)現(xiàn)與實(shí)驗(yàn)結(jié)果 3.1系統(tǒng)的實(shí)現(xiàn)我們基于Xilinx Virtex - II Pro的開(kāi)發(fā)系統(tǒng)來(lái)實(shí)現(xiàn)整個(gè)平臺(tái)。圖7顯示了硬件平臺(tái)與主要部件。電路板XC2VP30 FPGA芯片有大約30816個(gè)邏輯單元,136個(gè)18位乘法器,2,
15、448 KB的RAM塊,以及兩個(gè)PowerPC處理器。DDR SDRAM DIMM內(nèi)存可分配高達(dá)2GB的RAM。此板也有很多有用的接口端口,如10/100以太網(wǎng)端口、CF卡插槽、XSGA視頻端口、RS - 232端口,等等。它也有不同的擴(kuò)展連接器來(lái)擴(kuò)大該板的可用性,以滿足不同的視頻的要求和圖像處理應(yīng)用。我們對(duì)這一系統(tǒng)的主要目的是落實(shí)整個(gè)硬件平臺(tái),以提供一個(gè)通用的視頻圖像處理解決方案,并通過(guò)各種應(yīng)用場(chǎng)景證明其有效性。圖7所提到的FPGA平臺(tái)為了驗(yàn)證時(shí)序和邏輯功能,整個(gè)系統(tǒng)由Xilinx集成軟件環(huán)境(ISE 9.1i)工具包模擬進(jìn)行廣泛的仿真和邏輯分析。圖8顯示了系統(tǒng)邏輯快照和時(shí)序模擬結(jié)果。該系統(tǒng)
16、操作的時(shí)鐘是27MHz(CLK 27信號(hào))。 pcount信號(hào)記錄行像素?cái)?shù), firstline數(shù)據(jù)、secondline數(shù)據(jù)和thirdline數(shù)據(jù)是三線輸入的視頻數(shù)據(jù)。我們通過(guò)fifo wen和fifo ren信號(hào)操作行緩沖區(qū),通過(guò)從原始輸入視頻流延遲適當(dāng)數(shù)目的時(shí)鐘生成background信號(hào)(background7)。圖8一個(gè)系統(tǒng)的快照邏輯模擬由混合背景信號(hào)與處理視頻數(shù)據(jù)(f數(shù)據(jù)信號(hào)),我們可以得到最后的輸出信號(hào)(SDI O信號(hào))。從圖8可以看到,一個(gè)像素的操作需要10個(gè)時(shí)鐘脈沖處理時(shí)間。表1總結(jié)了最終系統(tǒng)的主要資源利用率特點(diǎn),從中可以看到最后的系統(tǒng)利用大約20的邏輯資源,50的片上存儲(chǔ)
17、器,總功率消費(fèi)約203mw。硬件資源可用已用利用率占用的片4輸入LUT總數(shù)27392529319%鍵合IBO的數(shù)量556427%PPC405的數(shù)量2150%RAM塊數(shù)量1367051%MULT18X18的數(shù)量13653%CCLK的數(shù)量16212%3.2實(shí)驗(yàn)結(jié)果在本節(jié)中,我們展示了硬件系統(tǒng)在不同的視頻處理應(yīng)用的效能。輸入視頻可以通過(guò)攝像系統(tǒng)或其他視頻設(shè)備得到。圖9顯示的結(jié)果是使用相機(jī)系統(tǒng)從不同的環(huán)境捕捉到的圖像數(shù)據(jù)。圖9(a)為原始圖像,圖9(b)說(shuō)明了邊緣檢測(cè)功能作用。圖9(c)在同一窗口展示了所有的功能模塊,包括邊緣檢測(cè)、放大和縮小。所有這些功能可以通過(guò)在FPGA上
18、板按鈕簡(jiǎn)單地控制(系統(tǒng)詳細(xì)信息見(jiàn)圖7)。圖9基于攝像機(jī)輸入數(shù)據(jù)的系統(tǒng)性能4結(jié)論和未來(lái)工作展望在本論文中,我們提出了一種基于FPGA的通用的和多任務(wù)的視頻和圖像處理原型系統(tǒng)。本文給出了系統(tǒng)級(jí)硬件結(jié)構(gòu)和詳細(xì)的設(shè)計(jì)方案。最終的系統(tǒng)實(shí)施使用具有XC2VP30 FPGA芯片的 Xilinx Virtex - II Pro的開(kāi)發(fā)系統(tǒng)。綜合結(jié)果表明,整個(gè)系統(tǒng)采用了只有約20的邏輯資源,50的片上存儲(chǔ)器,總功率消耗約為203mw。該系統(tǒng)提供了一個(gè)可擴(kuò)展和實(shí)時(shí)重構(gòu)平臺(tái),以滿足多種視頻處理應(yīng)用的需求。此外,該系統(tǒng)的可重構(gòu)和可擴(kuò)展特性,使其易于修改,以將不同的視頻和圖像處理方案嵌入。各種各種實(shí)驗(yàn)結(jié)果證實(shí)了文中提到的
19、的原型有效性。在今后的工作中,整合更加復(fù)雜視頻處理模塊到這個(gè)平臺(tái)的將是很有趣的。例如,在本研究中的邊緣檢測(cè)功能的基礎(chǔ)上,大物體的識(shí)別算法實(shí)施到這個(gè)系統(tǒng)上是非常有用的。此外,由于計(jì)算機(jī)學(xué)習(xí)技術(shù)已被廣泛用于視頻和圖像處理,在此原型基礎(chǔ)上發(fā)展各種學(xué)習(xí)算法將是很有趣的。例如,我們目前正在設(shè)計(jì)一個(gè)基于FPGA的遞增式學(xué)習(xí)視頻應(yīng)用系統(tǒng)。關(guān)鍵的思想是在硬件上發(fā)展增量學(xué)習(xí)體系結(jié)構(gòu),以達(dá)到學(xué)習(xí)和積累多樣的目標(biāo)識(shí)別和定位知識(shí)的目的。通過(guò)本文中我們的研究啟發(fā),我們相信這樣的基于FPGA的系統(tǒng)在現(xiàn)實(shí)世界的視頻和圖像處理應(yīng)用中將提供一個(gè)有力的平臺(tái)。致謝這項(xiàng)工作部分由皮卡汀尼美國(guó)陸軍裝備研究發(fā)展和工程中心(ARDEC)支
20、持完成.根據(jù)批準(zhǔn)號(hào)NO.W15QKN - 05 - D - 0011。參考文獻(xiàn) 1. Video and Image Processing Design Using FPGAs, Altera Corporation,/literature/wp/wp-video0306.pdf2. Benkrid, K., Crookes, D., Benkrid, A.: Towards a General Framework for FPGABased Image Processing Using Hardware Skeletons. Parallel Computing 28(7-8),114111
21、54 (2002)3. Johnston, C.T., Gribbon, K.T., Bailey, D.G.: Implementing Image Processing Algorithmson FPGAs. In: Proc. Electronics New Zealand Conference, PalmerstonNorth, New Zealand, pp. 118123 (2004)4. Kim, C.H., Seong, S.M., Lee, J.A., Kim, L.S.: An Image-Scaling Algorithm Using anArea Pixel Model
22、. IEEE Trans. Circuits and Systems for Video Technology 13(6),549553 (2003)5. Fry, T.W., Hauck, S.A.: SPIHT Image Compression on FPGAs. IEEE Trans. Circuitsand Systems for Video Technology 15(9), 11381147 (2005)6. Daz, J., Ros, E., Pelayo, F., Ortigosa, E.M., Mota, S.: FPGA-Based Real-TimeOptical-Fl
23、ow System. IEEE Trans. Circuits and Systems for Video Technology16(2), 274279 (2006)7. Ku, C.C., Liang, R.K.: Accurate Motion Detection and Sawtooth Artifacts RemoveVideo Processing Engine for LCD TV. IEEE Trans. Consumer Electronics 50(4),11941201 (2004)8. Leelarasmee, E.: A TV Sign Image Expander
24、with Built-in Closed Caption Decoder.IEEE Trans. Consumer Electronics 51(2), 682687 (2005)9. Zhang, H., Xia, M., Hu, G.: A Multiwindow Partial Buffering Scheme for FPGABased2-D Convolvers. IEEE Trans. Circuits and Systems, Part II 54(2), 200204(2007)10. Fel, S., Fttinger, G., Mohr, J.: Motion JPEG20
25、00 for High Quality Video Systems.IEEE Trans. Consumer Electronics 49(4), 787791 (2003)11. Madanayake, A., Bruton, L.: A Fully Multiplexed First-Order Frequency-PlanarModule for Fan, Beam, and Cone Plane-Wave Filters. IEEE Trans. Circuits andSystems, Part II 53(8), 697701 (2006)附錄資料:不需要的可以自行刪除 perl函
26、數(shù)應(yīng)用一、進(jìn)程處理函數(shù)1、進(jìn)程啟動(dòng)函數(shù)函數(shù)名eval調(diào)用語(yǔ)法eval(string)解說(shuō)將string看作Perl語(yǔ)句執(zhí)行。正確執(zhí)行后,系統(tǒng)變量$為空串,如果有錯(cuò)誤,$中為錯(cuò)誤信息。例子$print = print (hello,worldn);eval ($print);結(jié)果輸出hello, world函數(shù)名system調(diào)用語(yǔ)法system(list)解說(shuō)list中第一個(gè)元素為程序名,其余為參數(shù)。system啟動(dòng)一個(gè)進(jìn)程運(yùn)行程序并等待其結(jié)束,程序結(jié)束后錯(cuò)誤代碼左移八位成為返回值。例子proglist = (echo, hello,world!);system(proglist);結(jié)果輸出he
27、llo, world!函數(shù)名fork調(diào)用語(yǔ)法procid = fork();解說(shuō)創(chuàng)建程序的兩個(gè)拷貝-父進(jìn)程和子進(jìn)程-同時(shí)運(yùn)行。子進(jìn)程返回零,父進(jìn)程返回非零值,此值為子程序的進(jìn)程ID號(hào)。例子$retval = fork();if ($retval = 0) # this is the child process exit; # this terminates the child process else # this is the parent process結(jié)果輸出無(wú)函數(shù)名pipe調(diào)用語(yǔ)法pipe (infile, outfile);解說(shuō)與fork合用,給父進(jìn)程和子進(jìn)程提供通信的方式。送到ou
28、tfile文件變量的信息可以通過(guò)infile文件變量讀取。步驟:1、調(diào)用pipe2、用fork將程序分成父進(jìn)程和子進(jìn)程3、一個(gè)進(jìn)程關(guān)掉infile,另一個(gè)關(guān)掉outfile例子pipe (INPUT, OUTPUT);$retval = fork();if ($retval != 0) # this is the parent process close (INPUT); print (Enter a line of input:n); $line = ; print OUTPUT ($line); else # this is the child process close (OUTPUT)
29、; $line = ; print ($line); exit (0);結(jié)果輸出$programEnter a line of input:Here is a test lineHere is a test line$函數(shù)名exec調(diào)用語(yǔ)法exec (list);解說(shuō)與system類似,區(qū)別是啟動(dòng)新進(jìn)程前結(jié)束當(dāng)前程序。常與fork合用,當(dāng)fork分成兩個(gè)進(jìn)程后,子進(jìn)程用exec啟動(dòng)另一個(gè)程序。例子 結(jié)果輸出函數(shù)名syscall調(diào)用語(yǔ)法syscall (list);解說(shuō)調(diào)用系統(tǒng)函數(shù),list第一個(gè)元素是系統(tǒng)調(diào)用名,其余為參數(shù)。如果參數(shù)是數(shù)字,就轉(zhuǎn)化成C的整型數(shù)(type int)。否則傳遞字符串
30、的指針。詳見(jiàn)UNIX的幫助或Perl文檔。使用syscall必須包含文件syscall.pl,即:require (syscall.ph); 例子結(jié)果輸出2、進(jìn)程終止函數(shù)函數(shù)名Die調(diào)用語(yǔ)法die (message);解說(shuō)終止程序并向STDERR輸出錯(cuò)誤信息。message可以為字符串或列表。如果最后一個(gè)參數(shù)不包含換行符,則程序文件名和行號(hào)也被輸出。例子die (Cannot open input file);結(jié)果輸出Cannot open input file at myprog line 6.函數(shù)名warn調(diào)用語(yǔ)法warn (message);解說(shuō)與die類似,區(qū)別是不終止程序。例子war
31、n(Danger! Danger!n);結(jié)果輸出Danger! Danger!函數(shù)名exit調(diào)用語(yǔ)法exit (retcode);解說(shuō)終止程序并指定返回值。例子exit(2);結(jié)果輸出無(wú)函數(shù)名kill調(diào)用語(yǔ)法kill (signal, proclist);解說(shuō)給一組進(jìn)程發(fā)送信號(hào)。signal是發(fā)送的數(shù)字信號(hào),9為殺掉進(jìn)程。proclist是進(jìn)程ID列表。詳見(jiàn)kill的UNIX幫助。例子結(jié)果輸出3、進(jìn)程控制函數(shù)函數(shù)名sleep調(diào)用語(yǔ)法sleep (time);解說(shuō)將程序暫停一段時(shí)間。time是停止的秒數(shù)。返回值為實(shí)際停止的秒數(shù)。例子sleep (5);結(jié)果輸出無(wú)函數(shù)名wait調(diào)用語(yǔ)法procid
32、 = wait();解說(shuō)暫停程序執(zhí)行,等待子進(jìn)程終止。不需要參數(shù),返回值為子進(jìn)程ID,如果沒(méi)有子進(jìn)程,返回-1。例子結(jié)果輸出函數(shù)名waitpid調(diào)用語(yǔ)法waitpid (procid, waitflag);解說(shuō)暫停程序執(zhí)行,等待特定的子進(jìn)程終止。procid為等待的進(jìn)程ID例子$procid = fork();if ($procid = 0) # this is the child process print (this line is printed firstn); exit(0); else # this is the parent process waitpid ($procid, 0
33、); print (this line is printed lastn);結(jié)果輸出$ programthis line is printed firstthis line is printed last$4、其它控制函數(shù)函數(shù)名caller調(diào)用語(yǔ)法subinfo = caller();解說(shuō)返回調(diào)用者的程序名和行號(hào),用于Perl Debugger。返回值為三元素的列表:1、調(diào)用處的包名2、調(diào)用者文件名3、調(diào)用處的行號(hào)例子結(jié)果輸出函數(shù)名chroot調(diào)用語(yǔ)法chroot (dir);解說(shuō)改變程序的根目錄,詳見(jiàn)chroot幫助。例子結(jié)果輸出函數(shù)名local調(diào)用語(yǔ)法local($variable);解說(shuō)
34、在語(yǔ)句塊(由大括號(hào)包圍的語(yǔ)句集合)中定義局域變量,僅在此語(yǔ)句塊中起作用,對(duì)其的改變不對(duì)塊外同名變量造成影響。千萬(wàn)不要在循環(huán)中使用,否則每次循環(huán)都定義一個(gè)新的局域變量!例子結(jié)果輸出函數(shù)名times調(diào)用語(yǔ)法timelist = times解說(shuō)返回該程序及所有子進(jìn)程消耗的工作時(shí)間。返回值為四個(gè)浮點(diǎn)數(shù)的列表:1、程序耗用的用戶時(shí)間2、程序耗用的系統(tǒng)時(shí)間3、子進(jìn)程耗用的用戶時(shí)間4、子進(jìn)程耗用的系統(tǒng)時(shí)間例子結(jié)果輸出二、數(shù)學(xué)函數(shù)函數(shù)名sin調(diào)用語(yǔ)法retval = sin (value);解說(shuō)參數(shù)為弧度值。函數(shù)名cos調(diào)用語(yǔ)法retval = cos (value);解說(shuō)參數(shù)為弧度值。函數(shù)名atan2調(diào)用語(yǔ)
35、法retval = atan2 (value1, value2);解說(shuō)運(yùn)算并返回value1除以value2結(jié)果的arctan值,單位為弧度,范圍在-PIPI。應(yīng)用例:角度轉(zhuǎn)化成弧度子程序。sub degrees_to_radians local ($degrees) = _; local ($radians);11: $radians = atan2(1,1) * $degrees / 45;函數(shù)名sqrt調(diào)用語(yǔ)法retval = sqrt (value);解說(shuō)平方根函數(shù)。value為非負(fù)數(shù)。函數(shù)名exp調(diào)用語(yǔ)法retval = exp (value);解說(shuō)返回e的value次方。函數(shù)名lo
36、g調(diào)用語(yǔ)法retval = log (value);解說(shuō)以e為底的自然對(duì)數(shù)。函數(shù)名abs調(diào)用語(yǔ)法retval = abs (value);解說(shuō)絕對(duì)值函數(shù)。(Perl 4中沒(méi)有)函數(shù)名rand調(diào)用語(yǔ)法retval = rand (num);解說(shuō)隨機(jī)數(shù)函數(shù),返回0和整數(shù)num之間的一個(gè)浮點(diǎn)數(shù)。函數(shù)名srand調(diào)用語(yǔ)法srand (value);解說(shuō)初始化隨機(jī)數(shù)生成器。保證每次調(diào)用rand真正隨機(jī)。三、字符串處理函數(shù)函數(shù)名index調(diào)用語(yǔ)法position = index (string, substring, position);解說(shuō)返回子串substring在字符串string中的位置,如果不存
37、在則返回-1。參數(shù)position是可選項(xiàng),表示匹配之前跳過(guò)的字符數(shù),或者說(shuō)從該位置開(kāi)始匹配。函數(shù)名rindex調(diào)用語(yǔ)法position = rindex (string, substring, position);解說(shuō)與index類似,區(qū)別是從右端匹配。函數(shù)名length調(diào)用語(yǔ)法num = length (string);解說(shuō)返回字符串長(zhǎng)度,或者說(shuō)含有字符的數(shù)目。函數(shù)名pos調(diào)用語(yǔ)法offset = pos(string);解說(shuō)返回最后一次模式匹配的位置。函數(shù)名substr調(diào)用語(yǔ)法substr (expr, skipchars, length)解說(shuō)抽取字符串(或表達(dá)式生成的字符串)expr中
38、的子串,跳過(guò)skipchars個(gè)字符,或者說(shuō)從位置skipchars開(kāi)始抽取子串(第一個(gè)字符位置為0),子串長(zhǎng)度為length,此參數(shù)可忽略,意味著取剩下的全部字符。當(dāng)此函數(shù)出現(xiàn)在等式左邊時(shí),expr必須為變量或數(shù)組元素,此時(shí)其中部分子串被等式右邊的值替換。函數(shù)名study調(diào)用語(yǔ)法study (scalar);解說(shuō)用一種內(nèi)部格式提高變量的訪問(wèn)速度,同一時(shí)刻只對(duì)一個(gè)變量起作用。函數(shù)名lcuc調(diào)用語(yǔ)法retval = lc(string);retval = uc(string);解說(shuō)將字符串全部轉(zhuǎn)換成小/大寫字母。函數(shù)名lcfirstucfirst調(diào)用語(yǔ)法retval = lcfirst(stri
39、ng);retval = ucfirst(string);解說(shuō)將第一個(gè)字母轉(zhuǎn)換成小/大寫。函數(shù)名quotameta調(diào)用語(yǔ)法newstring = quotemeta(oldstring);解說(shuō)將非單詞的字母前面加上反斜線()。語(yǔ)句 : $string = quotemeta($string);等效于:$string = s/(W)/$1/g;常用于模式匹配操作中,確保字符串中沒(méi)有字符被看作匹配操作符。函數(shù)名join調(diào)用語(yǔ)法join (joinstr, list);解說(shuō)把字符串列表(數(shù)組)組合成一個(gè)長(zhǎng)的字符串,在每?jī)蓚€(gè)列表元素間插入串joinstr。函數(shù)名sprintf調(diào)用語(yǔ)法sprintf (
40、string, fields);解說(shuō)與printf類似,區(qū)別是結(jié)果不輸出到文件,而作為返回值賦給變量。例子$num = 26;$outstr = sprintf(%d = %x hexadecimal or %o octaln,$num, $num, $num);print ($outstr);結(jié)果輸出26 = 1a hexadecimal or 32 octal四、標(biāo)量轉(zhuǎn)換函數(shù)函數(shù)名chop調(diào)用語(yǔ)法$lastchar = chop (var);解說(shuō)var可為變量或數(shù)組,當(dāng)var為變量時(shí),最后一個(gè)字符被刪除并賦給$lastchar,當(dāng)var為數(shù)組/列表時(shí),所有元素的最后一個(gè)字符被刪除,最后一個(gè)
41、元素的最后一個(gè)字母賦給$lastchar。函數(shù)名chomp調(diào)用語(yǔ)法result = chomp(var);解說(shuō)檢查字符串或字符串列表中元素的最后一個(gè)字符是否為由系統(tǒng)變量$/定義的行分隔符,如果是就刪除。返回值為實(shí)際刪除的字符個(gè)數(shù)。函數(shù)名crypt調(diào)用語(yǔ)法result = crypt (original, salt);解說(shuō)用DES算法加密字符串,original是將要加密的字符串,salt是兩個(gè)字符的字符串,定義如何改變DES算法,以使更難解碼。返回值為加密后的串。函數(shù)名hex調(diào)用語(yǔ)法decnum = hex (hexnum);解說(shuō)將十六進(jìn)制數(shù)(字符串形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名int調(diào)用語(yǔ)法i
42、ntnum = int (floatnum);解說(shuō)將浮點(diǎn)數(shù)舍去小數(shù)部分轉(zhuǎn)化為整型數(shù)。函數(shù)名oct調(diào)用語(yǔ)法decnum = oct (octnum);解說(shuō)將八進(jìn)制數(shù)(字符串形式)或十六進(jìn)制數(shù)(0 x.形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名ord調(diào)用語(yǔ)法asciival = ord (char);解說(shuō)返回單個(gè)字符的ASCII值,與PASCAL中同名函數(shù)類似。函數(shù)名chr調(diào)用語(yǔ)法$char = chr (asciival);解說(shuō)返回ASCII值的相應(yīng)字符,與PASCAL中同名函數(shù)類似。函數(shù)名pack調(diào)用語(yǔ)法formatstr = pack(packformat, list);解說(shuō)把一個(gè)列表或數(shù)組以在實(shí)際機(jī)器存
43、貯格式或C等編程語(yǔ)言使用的格式轉(zhuǎn)化(包裝)到一個(gè)簡(jiǎn)單變量中。參數(shù)packformat包含一個(gè)或多個(gè)格式字符,列表中每個(gè)元素對(duì)應(yīng)一個(gè),各格式字符間可用空格或tab隔開(kāi),因?yàn)閜ack忽略空格。除了格式a、A和外,重復(fù)使用一種格式多次可在其后加個(gè)整數(shù),如: $twoints = pack (i2, 103, 241);把同一格式應(yīng)用于所有的元素則加個(gè)*號(hào),如: $manyints = pack (i*, 14, 26, 11, 83);對(duì)于a和A而言,其后的整數(shù)表示要?jiǎng)?chuàng)建的字符串長(zhǎng)度,重復(fù)方法如下: $strings = pack (a6 x 2, test1, test2);格式的情況比較特殊,其
44、后必須加個(gè)整數(shù),該數(shù)表示字符串必須的長(zhǎng)度,如果長(zhǎng)度不夠,則用空字符(null)補(bǔ)足,如: $output = pack (a 6 a, test, test2);pack函數(shù)最常見(jiàn)的用途是創(chuàng)建可與C程序交互的數(shù)據(jù),例如C語(yǔ)言中字符串均以空字符(null)結(jié)尾,創(chuàng)建這樣的數(shù)據(jù)可以這樣做: $Cstring = pack (ax, $mystring);下表是一些格式字符與C中數(shù)據(jù)類型的等價(jià)關(guān)系:字符 等價(jià)C數(shù)據(jù)類型CcharddoubleffloatiintIunsigned int (or unsigned)llongLunsigned longsshortSunsigned short完整的
45、格式字符見(jiàn)下表。 格式字符 描述a用空字符(null)補(bǔ)足的字符串A用空格補(bǔ)足的字符串b位串,低位在前B位串,高位在前c帶符號(hào)字符(通常-128127)C無(wú)符號(hào)字符(通常8位)d雙精度浮點(diǎn)數(shù)f單精度浮點(diǎn)數(shù)h十六進(jìn)制數(shù)串,低位在前H十六進(jìn)制數(shù)串,高位在前i帶符號(hào)整數(shù)I無(wú)符號(hào)整數(shù)l帶符號(hào)長(zhǎng)整數(shù)L無(wú)符號(hào)長(zhǎng)整數(shù)n網(wǎng)絡(luò)序短整數(shù)N網(wǎng)絡(luò)序長(zhǎng)整數(shù)p字符串指針s帶符號(hào)短整數(shù)S無(wú)符號(hào)短整數(shù)u轉(zhuǎn)化成uuencode格式vVAX序短整數(shù)VVAX序長(zhǎng)整數(shù)x一個(gè)空字節(jié)X回退一個(gè)字節(jié)以空字節(jié)(null)填充函數(shù)名unpack調(diào)用語(yǔ)法list = unpack (packformat, formatstr);解說(shuō)unpack
46、與pack功能相反,將以機(jī)器格式存貯的值轉(zhuǎn)化成Perl中值的列表。其格式字符與pack基本相同(即上表),不同的有:A格式將機(jī)器格式字符串轉(zhuǎn)化為Perl字符串并去掉尾部所有空格或空字符;x為跳過(guò)一個(gè)字節(jié);為跳過(guò)一些字節(jié)到指定的位置,如4為跳過(guò)4個(gè)字節(jié)。下面看一個(gè)和X合同的例子: $longrightint = unpack (* X4 L, $packstring);此語(yǔ)句將最后四個(gè)字節(jié)看作無(wú)符號(hào)長(zhǎng)整數(shù)進(jìn)行轉(zhuǎn)化。下面看一個(gè)對(duì)uuencode文件解碼的例子:1 : #!/usr/local/bin/perl2 : 3 : open (CODEDFILE, /u/janedoe/codefile)
47、 |4 : die (Cant open input file);5 : open (OUTFILE, outfile) |6 : die (Cant open output file);7 : while ($line = ) 8 : $decoded = unpack(u, $line);9 : print OUTFILE ($decoded);10: 11: close (OUTFILE);12: close (CODEDFILE); 當(dāng)將pack和unpack用于uuencode時(shí),要記住,雖然它們與UNIX中的uuencode、uudecode工具算法相同,但并不提供首行和末行,如果
48、想用uudecode對(duì)由pack的輸出創(chuàng)建的文件進(jìn)行解碼,必須也把首行和末行輸出(詳見(jiàn)UNIX中uuencode幫助)。函數(shù)名vec調(diào)用語(yǔ)法retval = vec (vector, index, bits);解說(shuō)顧名思義,vec即矢量(vector)函數(shù),它把簡(jiǎn)單變量vector的值看作多塊(維)數(shù)據(jù),每塊含一定數(shù)目的位,合起來(lái)即一個(gè)矢量數(shù)據(jù)。每次的調(diào)用訪問(wèn)其中一塊數(shù)據(jù),可以讀取,也可以寫入。參數(shù)index就象數(shù)組下標(biāo)一樣,提出訪問(wèn)哪一塊,0為第一塊,依次類推,要注意的是訪問(wèn)次序是從右到左的,即第一塊在最右邊。參數(shù)bits指定每塊中的位數(shù),可以為1,2,4,8,16或32。例子1 : #!/
49、usr/local/bin/perl2 : 3 : $vector = pack (B*, 11010011);4 : $val1 = vec ($vector, 0, 4);5 : $val2 = vec ($vector, 1, 4);6 : print (high-to-low order values: $val1 and $val2n);7 : $vector = pack (b*, 11010011);8 : $val1 = vec ($vector, 0, 4);9 : $val2 = vec ($vector, 1, 4);10: print (low-to-high orde
50、r values: $val1 and $val2n); 結(jié)果high-to-low order values: 3 and 13low-to-high order values: 11 and 12函數(shù)名defined調(diào)用語(yǔ)法retval = defined (expr);解說(shuō)判斷一個(gè)變量、數(shù)組或數(shù)組的一個(gè)元素是否已經(jīng)被賦值。expr為變量名、數(shù)組名或一個(gè)數(shù)組元素。如果已定義,返回真,否則返回假。函數(shù)名undef調(diào)用語(yǔ)法retval = undef (expr);解說(shuō)取消變量、數(shù)組或數(shù)組元素甚至子程序的定義,回收其空間。返回值始終為未定義值,此值與空串等效。五、數(shù)組和列表函數(shù)函數(shù)名grep調(diào)
51、用語(yǔ)法foundlist = grep (pattern, searchlist);解說(shuō)與同名的UNIX查找工具類似,grep函數(shù)在列表中抽取與指定模式匹配的元素,參數(shù)pattern為欲查找的模式,返回值是匹配元素的列表。例子list = (This, is, a, test);foundlist = grep(/tT/, list);結(jié)果foundlist = (This, test);函數(shù)名splice調(diào)用語(yǔ)法retval = splice (array, slipelements, length, newlist);解說(shuō)拼接函數(shù)可以向列表(數(shù)組)中間插入元素、刪除子列表或替換子列表。參數(shù)skipelements是拼接前跳過(guò)的元素?cái)?shù)目,length是被替換的元素?cái)?shù),newlist是將要拼接進(jìn)來(lái)的列表。當(dāng)newlist的長(zhǎng)度大于length時(shí),后面的元素自動(dòng)后移,反之則向前縮進(jìn)。因此,當(dāng)length=0時(shí),就相當(dāng)于向列表中插入元素,而形如語(yǔ)句splice (array, -1, 0, Hello);則向數(shù)組末尾添加元素。而當(dāng)newlist為空時(shí)就相當(dāng)于刪除子列表,這時(shí),如果length為空,就從第skipelements個(gè)元
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026中國(guó)醫(yī)學(xué)科學(xué)院北京協(xié)和醫(yī)學(xué)院直屬學(xué)院招聘20人筆試模擬試題及答案解析
- 2026西藏林芝米林市洋確贊布勞務(wù)有限責(zé)任公司招錄6人筆試備考試題及答案解析
- 2026浙江寧波市鎮(zhèn)海區(qū)招聘事業(yè)編制教師30人(第二批)考試備考試題及答案解析
- 2026云南省上海師范大學(xué)附屬官渡實(shí)驗(yàn)學(xué)校(中學(xué))招聘1人考試備考試題及答案解析
- 2026年員工敬業(yè)度提升策略培訓(xùn)
- 2026年體育舞蹈教學(xué)技巧培訓(xùn)
- 2026江西省歐潭人力資源集團(tuán)有限公司招聘見(jiàn)習(xí)生3人筆試模擬試題及答案解析
- 2026年九江市八里湖新區(qū)國(guó)有企業(yè)面向社會(huì)公開(kāi)招聘工作人員崗位計(jì)劃調(diào)整筆試備考試題及答案解析
- 2026年度合肥市肥東縣事業(yè)單位公開(kāi)招聘工作人員51名筆試模擬試題及答案解析
- 2026年流體力學(xué)與熱力學(xué)的關(guān)系
- GB/T 44828-2024葡萄糖氧化酶活性檢測(cè)方法
- 青海省西寧市2023-2024學(xué)年高一上學(xué)期物理期末試卷(含答案)
- 科大訊飛招聘在線測(cè)評(píng)題
- 醫(yī)療護(hù)具租賃合同模板
- 兒童性格發(fā)展與個(gè)性獨(dú)立性的培養(yǎng)
- 2024常壓儲(chǔ)罐檢驗(yàn)人員能力評(píng)價(jià)導(dǎo)則
- 物流管理概論王勇1
- 大學(xué)生預(yù)征對(duì)象登記表模板
- 胸外科-胸部創(chuàng)傷
- 2023版設(shè)備管理體系標(biāo)準(zhǔn)
- 劍橋英語(yǔ)PET真題校園版
評(píng)論
0/150
提交評(píng)論