版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JPEG標(biāo)準(zhǔn)的工作原理和實(shí)現(xiàn)技術(shù)2010.4.1611.位圖文件格式簡介 位圖(BMP)文件是Windows系統(tǒng)下最常用的獨(dú)立于設(shè)備的位圖文件。BMP格式是基于RGB顏色模式,且一般不壓縮原始圖像。BMP位圖文件默認(rèn)的文件擴(kuò)展名是BMP或bmp。讀取BMP文件中每個(gè)像素點(diǎn)的R、G、B值是非常重要的,它是之后整個(gè)圖像壓縮編碼的基礎(chǔ)。首先需要清楚地知道BMP文件的詳細(xì)結(jié)構(gòu)。2BMP文件大體上分成四個(gè)部分,如下圖所示:位圖文件頭BITMAP位圖信息頭BITMAPINFOHEADER調(diào)色板Palette實(shí)際的位圖數(shù)據(jù)ImageData31.1位圖文件頭 BITMAP是一個(gè)結(jié)構(gòu),定義如下:typedef
2、 struct tagBITMAP WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; BITMAP;該結(jié)構(gòu)的長度固定,為14個(gè)字節(jié)(WORD為無符號16位整數(shù),DWORD為無符號32位整數(shù)),各個(gè)域的說明如下:bfType:指定文件類型,必須是0 x424D,即字符串“BM”,所有.bmp文件的頭兩個(gè)字節(jié)都是“BM”。bfSize:文件大小,包括位圖文件頭的14個(gè)字節(jié)。bfReserved1,bfReserved2:為保留字,不用考慮。bfOffBits:從文件頭到實(shí)際的位圖數(shù)據(jù)的偏移
3、字節(jié)數(shù),即表2中前三個(gè)部分的長度之和。41.2位圖信息頭 BITMAPINFOHEADER也是一個(gè)結(jié)構(gòu),定義如下:typedef struct tagBITMAPINFOHEADER DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; BITMAPINFO
4、HEADER;5該結(jié)構(gòu)長度固定為40個(gè)字節(jié)(LONG為32位整數(shù)),各個(gè)域的說明如下:biSize:指定這個(gè)結(jié)構(gòu)的長度,為40。biWidth:指定圖像的寬度,單位是像素。biHeight:指定圖像的高度,單位是像素。biPlanes:必須是1,不用考慮。biBitCount:指定表示顏色時(shí)要用到的位數(shù)。常用的位數(shù)值有:1(黑白兩色圖),4(16色圖),8(256色圖),24(真彩色圖)。biCompression:指定位圖是否壓縮。一般為BI_RGB,表示不壓縮。biSizeImage:指定實(shí)際的位圖數(shù)據(jù)占用的字節(jié)數(shù)。biXPelsPerMeter:指定目標(biāo)設(shè)備的水平分辨率,單位是每米的像素
5、個(gè)數(shù)。biYPelsPerMeter:指定目標(biāo)設(shè)備的垂直分辨率,單位是每米的像素個(gè)數(shù)。biClrUsed:指定本圖像實(shí)際用到的顏色數(shù),如果該值為零,則用到的顏色數(shù)為2的biBitCount次方。biClrImportant:重要的顏色數(shù),如果該值為零,則認(rèn)為所有的顏色都重要。61.3調(diào)色板 調(diào)色板是對那些需要調(diào)色板的位圖文件而言的。有些位圖,如真彩色圖,是不需要調(diào)色板的,BITMAPINFOHEADER之后直接是位圖數(shù)據(jù)。調(diào)色板實(shí)際上是一個(gè)數(shù)組,共有biClrUsed個(gè)元素,若biClrUsed為零,則有2 的biBitCount次方個(gè)元素。數(shù)組中每個(gè)元素的類型是一個(gè)RGBQUAD結(jié)構(gòu),占4個(gè)
6、字節(jié),其定義如下:typedef struct tagRGBQUAD BYTE rgbBlue; /該顏色的藍(lán)色分量 BYTE rgbGreen; /該顏色的綠色分量 BYTE rgbRed; /該顏色的紅色分量 BYTE rgbReserved; /保留值 RGBQUAD;71.4 實(shí)際的圖像數(shù)據(jù) 對于用到調(diào)色板的位圖,圖像數(shù)據(jù)是該像素顏色在調(diào)色板中的索引值,對于真彩色圖,圖像數(shù)據(jù)是實(shí)際的B,G,R值。256色圖,一個(gè)字節(jié)恰好可以表示1個(gè)像素。真彩色圖:三個(gè)字節(jié)表示一個(gè)像素。81.5 BMP文件讀取和顯示的過程可以概括為以下幾步:在BMP文件的相應(yīng)位置讀出文件的有關(guān)信息,如文件類型(bfTy
7、pe)、圖像的寬度(biWidth)、圖像的高度(biHeight)、表示顏色時(shí)要用到的位數(shù)(biBitCount)。Windows規(guī)定一個(gè)掃描行所占的字節(jié)數(shù)必須是4的倍數(shù)(即以long為單位),不足的以0填充。所以要根據(jù)biWidth和biBitCount計(jì)算補(bǔ)齊的字節(jié)數(shù)。 計(jì)算補(bǔ)齊的字節(jié)數(shù)externWidth的代碼為: externWidth = biWidth * (biBitCount / 8) % 4; if (externWidth != 0) externWidth = 4 - externWidth;9若是8位圖,需要先讀取調(diào)色板的數(shù)據(jù),再根據(jù)像素點(diǎn)顏色在調(diào)色板中的索引值獲得
8、每個(gè)像素點(diǎn)的R、G、B值;若是24位圖,直接讀取每個(gè)像素點(diǎn)的值即可。根據(jù)每個(gè)像素點(diǎn)的值顯示圖片。需要注意一點(diǎn),BMP文件的數(shù)據(jù)是從下到上、從左到右的。從文件中最先讀到的是圖像最下面一行的左邊第一個(gè)像素,然后是左邊第二個(gè)像素接下來是倒數(shù)第二行左邊第一個(gè)像素,然后是左邊第二個(gè)像素依次類推,最后得到的是最上面一行的最右邊的一個(gè)像素。102. 靜態(tài)圖像壓縮標(biāo)準(zhǔn)JPEG 2.1 JPEG簡介 JPEG(Joint Photographic Experts Group)是聯(lián)合圖像專家小組的英文縮寫,這個(gè)專家組開發(fā)的算法稱為JPEG算法,并且成為國際上的彩色、灰度、靜止圖像的第一個(gè)國際標(biāo)準(zhǔn),因此又稱為JPE
9、G標(biāo)準(zhǔn)。JPEG是一個(gè)適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標(biāo)準(zhǔn),不僅適用于靜止圖像的壓縮,也常常被用于電視圖像序列的幀內(nèi)圖像壓縮編碼。目前JPEG專家組開發(fā)了兩種基本的壓縮算法:一種是采用以離散余弦變換DCT為基礎(chǔ)的有損壓縮算法;另一種是采用以預(yù)測技術(shù)為基礎(chǔ)的無損壓縮算法。使用有損壓縮算法時(shí),在壓縮比為25:1的情況下,壓縮后還原得到的圖像和原始圖像相比較,非圖像專家難以找到它們之間的區(qū)別,因此得到了廣泛的應(yīng)用。例如在V-CD和DVD-Video電視圖像壓縮技術(shù)中,就使用JPEG的有損壓縮算法來取消空間方向上的冗余數(shù)據(jù)。 11基于DCT的JPEG壓縮算法是有損壓縮,它利用了人的視角系統(tǒng)的特性,使用量
10、化和無損壓縮編碼相結(jié)合來去掉視角的冗余信息和數(shù)據(jù)本身的冗余信息。JPEG算法框圖如圖1所示,壓縮編碼大致分成三個(gè)步驟:(1)使用正向離散余弦變換(Forward Discrete Cosine Transform,F(xiàn)DCT)把空間域表示的圖變換成頻率域表示的圖。 (2)使用加權(quán)函數(shù)對DCT系數(shù)進(jìn)行量化,這個(gè)加權(quán)函數(shù)對于人的視覺系統(tǒng)是最佳的。 (3)使用哈夫曼可變字長編碼器對量化系數(shù)進(jìn)行編碼。 譯碼或者叫做解壓縮的過程與壓縮編碼過程正好相反。12132.2 JPEG壓縮的基本原理基于DCT編碼的JPEG壓縮算法可由如下的幾個(gè)步驟實(shí)現(xiàn):顏色模式轉(zhuǎn)換及采樣;正向離散余弦變換(FDCT);量化(Qua
11、ntization);編碼: (1)Z字形編碼(Zigzag Scan); (2)使用差分脈沖編碼調(diào)制(DPCM)對直流系數(shù)(DC)進(jìn)行編碼; (3)使用行程長度編碼(RLE)對交流系數(shù)(AC)進(jìn)行編碼; (4)熵編碼;142.2.1顏色模式轉(zhuǎn)換及采樣JPEG 的圖片使用的是 YCrCb 顏色模型, 而不是計(jì)算機(jī)上最常用的 RGB. YCrCb 模型更適合圖形壓縮. 因?yàn)槿搜蹖D片上的亮度 Y 的變化遠(yuǎn)比色度 C 的變化敏感. 從RGB轉(zhuǎn)換成YCrCb: Y0.299R+0.587G+0.114B Cr(0.500R-0.4187G-0.0813B)+128 Cb(-0.1687R-0.331
12、3G+0.500B)+128常用的采樣格式有4:1:1和1:1:1 1:1:1采樣就是保留所有的YCrCb值,相當(dāng)于每個(gè)像素點(diǎn)用1個(gè)Y樣本、1個(gè)Cr樣本、1個(gè)Cb樣本表示。而4:1:1采樣是指對于一個(gè)22像素的數(shù)據(jù)塊,取4個(gè)亮度Y樣本、1個(gè)紅色差Cr樣本、1個(gè)藍(lán)色差Cb樣本 。 152.2.2正向離散余弦變換(FDCT)(1)DCT要求輸入數(shù)據(jù)是一個(gè)88的矩陣,且每個(gè)矩陣元素具有8bit精度,分為從128到127,故DCT變換前,每個(gè)像素值的分量先要減去128。(2)把一幅圖像劃分成一系列的圖像塊,每個(gè)圖像塊包含88個(gè)像素。若圖像的高或?qū)挷皇?的整數(shù)倍,必須擴(kuò)展其下邊或右邊到8的整數(shù)倍。如果原
13、始圖像有640480個(gè)像素,則圖片將包含80列60行的方塊。如果圖像是彩色的,那么每個(gè)像素可以用24比特、相當(dāng)于三個(gè)8位比特的組合來表示。因此,可以用三個(gè)8行8列的二維數(shù)組表示這個(gè)88的像素方塊。每一個(gè)數(shù)組表示其中一個(gè)八位比特組合的像素值。離散余弦變換作用于每個(gè)數(shù)組。 16DCT變換是做什么的 ?簡單的說,是用一個(gè)8行8列的二維數(shù)組產(chǎn)生另一個(gè)同樣包含8行8列二維數(shù)組的函數(shù),也就是說,把一個(gè)數(shù)組通過一個(gè)變換,變成另一個(gè)數(shù)組。如圖下圖所示,對每個(gè)圖像塊做離散余弦變換。通過DCT變換可以把能量集中在矩陣左上角少數(shù)幾個(gè)系數(shù)上。 f(i,j)經(jīng)DCT變換之后得到F(i,j),其中F(0,0)是直流系數(shù),
14、稱為DC系數(shù),其他為交流系數(shù),稱為AC系數(shù)。 圖2 離散余弦變換17(3)用f表示像素值的數(shù)組,f(i ,j)表示i行j列的值,則離散余弦變換后定義一個(gè)新的數(shù)組F (u ,v),表示u行v列的值。 DCT變換使用公式(1)計(jì)算:(1) 它的逆變換使用公式(2)計(jì)算:(2) 上面兩式中,C(u), C(v) = ,當(dāng)u, v =0;C(u), C(v) = 1,其他。 18圖3顯示了對源圖像的88的圖像樣本的原始數(shù)組應(yīng)用離散余弦變換的結(jié)果。在對源數(shù)組f進(jìn)行變換之前首先對源圖像中的每個(gè)樣本數(shù)據(jù)減去128。然后再按公式(1)分別計(jì)算出結(jié)果數(shù)組F中每個(gè)數(shù)組元素的值。比如說,計(jì)算F(0,0)的值過程如下
15、:235.6(因?yàn)閏os(0)=1)這樣再繼續(xù)計(jì)算出數(shù)組中其余元素的值,得到數(shù)組F。19圖3 離散余弦變換的數(shù)組f(i,j)經(jīng)DCT變換之后得到F(i,j),其中F(0,0)是直流系數(shù),稱為DC系數(shù),其他為交流系數(shù),稱為AC系數(shù)。20(4)在計(jì)算二維的DCT變換時(shí),也可使用下面的計(jì)算式(3)、(4)進(jìn)行簡化,把二維的DCT變換變成一維的DCT變換,如圖4所示為二維DCT變換方法。(3) (4) 圖4 兩維DCT變換方法212.2.3量化為了達(dá)到壓縮數(shù)據(jù)的目的,DCT系數(shù)需做量化。量化是對經(jīng)過FDCT變換后的頻率系數(shù)進(jìn)行量化,這是一個(gè)多到一映射的過程。量化的目的是減小非0系數(shù)的幅度以及增加0值系
16、數(shù)的數(shù)目,在一定的主觀保真的前提下,丟掉那些對視覺效果影響不大的信息,量化是圖像質(zhì)量下降的最主要原因。對于有損壓縮算法,JPEG算法使用如圖5所示的均勻量化器進(jìn)行量化,量化步距是量化表的元素,它由系數(shù)所在的位置和每種顏色分量的色調(diào)值來確定。因?yàn)槿搜蹖α炼刃盘柋葘ι钚盘柛舾?,因此使用了兩種量化表:如表1所示的色度量化值(針對Cr,Cb)和表2所示的亮度量化值(針對Y)。此外,由于人眼對低頻分量的圖像比對高頻分量的圖像更敏感,因此圖中左上角的量化步距要比右下角的量化步距小。表1和表2中的數(shù)值對CCIR 601標(biāo)準(zhǔn)(國際無線電咨詢委員會(huì)CCIRInternational Radio Consul
17、tative Committee在20世紀(jì)80年代初制定的彩色電視圖像數(shù)字化標(biāo)準(zhǔn))電視圖像已經(jīng)是最佳的。如果不使用這兩種表,你也可以用自己的量化表替換它們。注意:JPEG文件中量化表中的64個(gè)值是按z字形順序排列的22表1 色度量化值表2 亮度量化值圖5 均勻量化器23對于上面的例子,我們用表2的量化表對其進(jìn)行量化,得到數(shù)組Q(i,j)。量化的公式為:Q(i,j)=Integer(F(i,j)/U(i,j)其中:U(i,j)為量化數(shù)組中對應(yīng)的數(shù)組元素。也就是用數(shù)組F中的各元素分別除以量化數(shù)組Q中的相應(yīng)元素,如圖6所示。圖6 用量化表量化的數(shù)組24以上是編碼時(shí)對圖像塊的正向離散余弦變換和量化過程
18、,解碼的時(shí)候要進(jìn)行逆量化和逆向離散余弦變換,圖6說明了解碼的過程,并且在逆向離散余弦變換之后對重構(gòu)圖像中的每個(gè)樣本數(shù)據(jù)加了128,最后得到重構(gòu)圖像樣本:圖6 JPEG壓縮編碼舉例252.2.4編碼階段(1)Z字形編排。對于量化后的二維數(shù)組,我們還要對其進(jìn)行線性化,然后再進(jìn)行壓縮加以傳輸。為保證低頻分量先出現(xiàn),高頻分量后出現(xiàn),以增加行程中連續(xù)“0”的個(gè)數(shù),63個(gè)AC系數(shù)采用z字形排列。(2)直流系數(shù)的編碼。88圖像塊經(jīng)過DCT變換之后得到的DC直流系數(shù)有兩個(gè)特點(diǎn),一是系數(shù)的數(shù)值比較大,二是相鄰88圖像塊的DC系數(shù)值變化不大。根據(jù)這個(gè)特點(diǎn),JPEG算法使用了差分脈沖調(diào)制編碼(DPCM)技術(shù),對相鄰
19、圖像塊之間量化DC系數(shù)的差值進(jìn)行編碼 。Delta = Dc(0,0)k-Dc(0,0)k1 (5)圖7 量化DCT系數(shù)編排26(3)熵編碼 為了進(jìn)一步達(dá)到壓縮數(shù)據(jù)的目的,需對量化后的DC系數(shù),和行程編碼后的AC系數(shù)進(jìn)行基于統(tǒng)計(jì)特性的熵編碼。JPEG建議兩種熵編碼方法:哈夫曼(Huffman)編碼和自適應(yīng)二進(jìn)制算術(shù)編碼。熵編碼可分成兩步進(jìn)行,首先把DC和AC系數(shù)轉(zhuǎn)換成一個(gè)中間格式的符號序列,第二步是給這些符號賦以變長碼字。a 熵編碼的中間符號表示DC系數(shù): 符號1 符號2 (尺寸)(幅值) “尺寸”表示DC差值的幅值編碼所需的比特?cái)?shù),由于計(jì)算機(jī)中將負(fù)數(shù)存為反碼或補(bǔ)碼的形式,當(dāng)幅值DIFF為負(fù)數(shù)
20、時(shí),DIFF的有效位數(shù)為(-DIFF)的有效位數(shù)。AC系數(shù): 符號1 符號2 (行程,尺寸)(幅值) “行程”表示“Z”形掃描時(shí)所遇到前后兩個(gè)非零AC系數(shù)之間連續(xù)0 的個(gè)數(shù);“尺寸”是后一個(gè)非零AC系數(shù)的幅值表示所需要的比特?cái)?shù)。 27 “行程”用一個(gè)字節(jié)的高4 位表示。當(dāng)兩個(gè)非零AC系數(shù)之間連續(xù)零的個(gè)數(shù)超過15時(shí),用增加擴(kuò)展符號“(15,0)”的個(gè)數(shù)來擴(kuò)充, “(15,0)” 表示16個(gè)零。當(dāng)一串連續(xù)為零的系數(shù)包含最后的AC系數(shù) 。這時(shí)以標(biāo)記(0,0)表示后面的系數(shù)全為零,此塊(Block)的數(shù)據(jù)結(jié)束,(0,0)一般稱為EOB(End of block)。b 可變長度熵編碼 熵編碼的下一步工作
21、就是將中間符號編碼,對DC系數(shù)和AC系數(shù)中的符號1采用huffman表中的可變長度碼(Variable-length Code,VLC)進(jìn)行編碼。符號2用變長整數(shù)(Variable-Length Integer,VLI)表示。28亮度DC系數(shù)表 29亮度AC系數(shù)表(部分) 302.2.5組成位數(shù)據(jù)流JPEG編碼的最后一個(gè)步驟是把各種標(biāo)記代碼和編碼后的圖像數(shù)據(jù)組成一幀一幀的數(shù)據(jù),這樣做的目的是為了便于傳輸、存儲(chǔ)和譯碼器進(jìn)行譯碼,這樣組織的數(shù)據(jù)通常稱為JPEG位數(shù)據(jù)流 。31繼續(xù)前面的例子說明編碼過程:假設(shè)前一Block的DC系數(shù)為12,將系數(shù)轉(zhuǎn)為中間符號的序列為:(2)(3)(1,2)(-2)(
22、0,1)(-1)(0,1)(-1)(0,1)(-1)(2,1)(-1)(0,0)進(jìn)行熵編碼:對于(2)(3):2查DC亮度Huffman表得到011,3經(jīng)過VLI編碼為11;對于(1,2)(-2):(1,2)查AC亮度Huffman表得到11011,-2是2的反碼,為01;對于(0,1)(-1):(0,1)查AC亮度Huffman表得到00,-1是1 的反碼,為0;依次類推,可以得到這個(gè)8*8的子塊經(jīng)壓縮后最后的數(shù)據(jù)流為01111,000,000,000,111000,1010 (31位) Z字形掃描后得1*64的數(shù)組:15,0,-2,-1,-1,-1,0,0,-1,55個(gè)0量化后得到Q數(shù)組:
23、322.2.6生成JPEG文件 JPEG編碼的最后一個(gè)步驟是把各種標(biāo)記代碼和編碼后的圖像數(shù)據(jù)寫入文件。標(biāo)記碼由兩個(gè)字節(jié)構(gòu)成,其前一個(gè)字節(jié)是固定值0 xFF,每個(gè)標(biāo)記之前還可添加數(shù)目不限的0 xFF填充字節(jié)。標(biāo)記碼部分給出了JPEG圖像的所有信息,如圖像的寬、高、哈夫曼表、量化表等,標(biāo)記碼有很多,但絕大多數(shù)的JPEG文件只包含以下幾種。SOI 0 xD8 圖像開始,可作為JPEG格式的判據(jù)APP0 0 xE0 JFIF應(yīng)用數(shù)據(jù)塊APPn 0 xE1 0 xEF 其它的應(yīng)用數(shù)據(jù)塊(n,115)DQT 0 xDB 量化表SOF0 0 xC0 幀開始DHT 0 xC4 哈夫曼表SOS 0 xDA 掃描
24、線開始EOI 0 xD9 圖像結(jié)束332.2.7哈夫曼編碼在圖像壓縮中的實(shí)現(xiàn)哈夫曼表一般是事先確定的,(也可以在線實(shí)時(shí)調(diào)整)。下面以JPEG中的一個(gè)哈夫曼表(表3)為例,來說明如何實(shí)現(xiàn)哈夫曼編碼,解碼。表3JPEG標(biāo)準(zhǔn)中推薦的亮度信息哈夫曼表碼值 碼字的長度 碼字0 2 001 3 0102 3 0113 3 1004 3 1015 3 1106 4 11107 5 111108 6 1111109 7 111111010 8 1111111011 9 11111111034在JPEG文件格式中,哈夫曼表以哈夫曼碼字中位數(shù)相同的個(gè)數(shù)和所有的哈夫曼碼值的形式存儲(chǔ),實(shí)際上是存儲(chǔ)了一個(gè)哈夫曼樹。下面以亮度DC系數(shù)表(表3)為例說明哈夫曼表構(gòu)造的整個(gè)過程。由表3可以得到兩個(gè)數(shù)組:bits17 = 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 ;huffval = 0, 1, 2, 3, 4,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)場停車位建設(shè)合同
- 地下雨水處理廠深基坑施工合同
- 自愿解除婚姻合同
- 設(shè)備租賃合同:建筑工具
- 酒吧公益活動(dòng)策劃合作協(xié)議
- 建筑裝飾彩鋼房施工協(xié)議
- 2024版花崗巖大宗買賣專項(xiàng)協(xié)議版B版
- 建筑供照明聯(lián)合施工合同
- 辦公區(qū)飲料店租賃協(xié)議樣本
- 體育場館附近便利店租賃合同
- 《生物安全培訓(xùn)》課件-2024鮮版
- 機(jī)動(dòng)車交通事故快速處理協(xié)議書(最新格式)
- 最新拉鏈廠安全操作規(guī)程
- 述職報(bào)告評分表
- 變壓器交接試驗(yàn)報(bào)告(1250)
- LOI外貿(mào)采購意向(標(biāo)準(zhǔn)樣本)
- 水電交接確認(rèn)單(共2頁)
- CTG-MBOSS CRM20 分總冊_普訓(xùn)版_圖文
- 2022年薄壁空心墩施工安全專項(xiàng)方案
- 消防安全知識壁報(bào)-04火災(zāi)逃生十訣別4
- ProCAST后處理及結(jié)果分析2009-003
評論
0/150
提交評論