




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 視頻信息處理與傳輸題目:AVI、MPG、WMV、ASF、RM等視頻文件格式和相應(yīng)的結(jié)構(gòu)體函數(shù)文件(C語言格式)摘要:視頻是利用人的視覺暫留特性產(chǎn)生的動感可視媒體。根據(jù)視覺暫留原理,當(dāng)靜止圖像以每秒2530幀的速度按一定順序播放時,人眼是無法辨別單獨的靜態(tài)畫面的,看上去是平滑連續(xù)的視覺效果。專門包含影像及同步聲音信息等視頻內(nèi)容的文件叫視頻文件,它一般分為影像文件(Video Forma)。隨著計算機(jī)技術(shù)的迅猛發(fā)展和互聯(lián)網(wǎng)的普及,多媒體信息的傳播日益顯示其重要的地位。大量的音頻、視頻、動畫等多媒體文件的編碼及播放成為人們研究的熱點。雖然視頻文件的格式有許多種,但從上面的簡單說明里我們可以知道,這
2、些格式文件的應(yīng)用都有著兩大使用環(huán)境,即本地播放和網(wǎng)絡(luò)播放,因此根據(jù)這兩大使用環(huán)境我們可以將視頻格式分為影像文件格式(Video Format)和流式視頻文件格式(Stream Video Format)這么兩大類。本文介紹常用的視頻文件格式,包括AVI、MPG、WMV、ASF、RM等視頻文件格式及其C語言格式的結(jié)構(gòu)體函數(shù)文件。關(guān)鍵字:視頻文件格式、AVI、MPG、WMV、ASF、RM、結(jié)構(gòu)體函數(shù)前言:從早期的幕布電影,發(fā)展到現(xiàn)在的高清晰數(shù)字影片,從媒體格式以前的WMV、WMA等也發(fā)展到如今RMVB、RM、AVI等主流媒體格式在IT領(lǐng)域,我們常說的“格式”通常指文件的格式、數(shù)據(jù)的輸入輸出格式、數(shù)
3、據(jù)的傳送格式等??茖W(xué)技術(shù)的發(fā)展使得這些視頻信息處理的應(yīng)用日益廣泛且向多元化發(fā)展。正文:一、AVI格式(Audio Video Interleaved,即音頻視頻交錯格式):所謂“音頻視頻交錯”,就是可以將視頻和音頻交織在一起進(jìn)行同步播放,在AVI文件中,其便是將運動圖像和伴音數(shù)據(jù)以交織的方式來進(jìn)行存儲地,并且這種存儲完全獨立于硬件設(shè)備,這就保證了它在不同平臺下均可以獲得較好的支持。AVI文件包含三部分: 文件頭、數(shù)據(jù)塊和索引塊。數(shù)據(jù)塊: 包含實際數(shù)據(jù)流, 即圖像和聲音序列數(shù)據(jù)。這是文件的主體, 也是決定文件容量的主要部分。視頻文件的容量等于該文件的數(shù)據(jù)率乘以該視頻播放的時間長度。索引塊: 包括
4、數(shù)據(jù)塊列表和他們在文件中的位置, 以提供文件內(nèi)數(shù)據(jù)隨機(jī)存取能力。文件頭: 包括文件的通用信息, 定義數(shù)據(jù)格式, 所用的壓縮算法等參數(shù)。只要遵循這個標(biāo)準(zhǔn),任何視頻編碼方案都可以使用在A V I文件中。這意味著 AV I 有著非常好的擴(kuò)充性。AVI文件是一種RIFF( Resource Interchange File Format, 資源交換文件格式) 格式文件。1、信息塊,一個ID為"hdrl"的LIST塊,定義AVI文件的數(shù)據(jù)格式。2、數(shù)據(jù)塊,一個ID為 "movi"的LIST塊,包含AVI的音視頻序列數(shù)據(jù)。3、索引塊,ID為 "idxl&q
5、uot;的子塊,定義 "movi"LIST塊的索引數(shù)據(jù),是可選塊。"avih"子塊的內(nèi)容可由如下的結(jié)構(gòu)定義:typedef struct DWORD dwMicroSecPerFrame ; /顯示每楨所需的時間ns,定義avi的顯示速率DWORD dwMaxBytesPerSec; / 最大的數(shù)據(jù)傳輸率DWORD dwPaddingGranularity; /記錄塊的長度需為此值的倍數(shù),通常是2048DWORD dwFlages; /AVI文件的特殊屬性,如是否包含索引塊,音視頻數(shù)據(jù)是否交叉存儲DWORD dwTotalFrame; /文件中的總楨數(shù)D
6、WORD dwInitialFrames; /說明在開始播放前需要多少楨DWORD dwStreams; /文件中包含的數(shù)據(jù)流種類DWORD dwSuggestedBufferSize; /建議使用的緩沖區(qū)的大小,/通常為存儲一楨圖像以及同步聲音所需要的數(shù)據(jù)之和DWORD dwWidth; /圖像寬DWORD dwHeight; /圖像高DWORD dwReserved4; /保留值MainAVIHeader;"strl" LIST塊用于記錄AVI數(shù)據(jù)流,每一種數(shù)據(jù)流都在該LIST塊中占有3個子塊,他們的ID分別是"strh","strf&qu
7、ot;, "strd";"strh"子塊由如下結(jié)構(gòu)定義。typedef struct FOURCC fccType; /4字節(jié),表示數(shù)據(jù)流的種類 vids 表示視頻數(shù)據(jù)流/auds 音頻數(shù)據(jù)流FOURCC fccHandler;/4字節(jié) ,表示數(shù)據(jù)流解壓縮的驅(qū)動程序代號DWORD dwFlags; /數(shù)據(jù)流屬性WORD wPriority; /此數(shù)據(jù)流的播放優(yōu)先級WORD wLanguage; /音頻的語言代號DWORD dwInitalFrames;/說明在開始播放前需要多少楨DWORD dwScale; /數(shù)據(jù)量,視頻每楨的大小或者音頻的采樣大小DW
8、ORD dwRate; /dwScale /dwRate = 每秒的采樣數(shù)DWORD dwStart; /數(shù)據(jù)流開始播放的位置,以dwScale為單位DWORD dwLength; /數(shù)據(jù)流的數(shù)據(jù)量,以dwScale為單位DWORD dwSuggestedBufferSize; /建議緩沖區(qū)的大小DWORD dwQuality; /解壓縮質(zhì)量參數(shù),值越大,質(zhì)量越好DWORD dwSampleSize; /音頻的采樣大小RECT rcFrame; /視頻圖像所占的矩形AVIStreamHeader;"strf"子塊緊跟在"strh"子塊之后,其結(jié)構(gòu)視&qu
9、ot;strh"子塊的類型而定,如下所述;如果 strh子塊是視頻數(shù)據(jù)流,則 strf子塊的內(nèi)容是一個與windows設(shè)備無關(guān)位圖的BIMAPINFO結(jié)構(gòu),如下:typedef struct tagBITMAPINFOBITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors1; /顏色表BITMAPINFO;typedef struct tagBITMAPINFOHEADERDWORD biSize;LONG biWidth;LONG biHeight;WORD biPlanes;WORD biBitCount;DWORD biCompression;
10、DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;BITMAPINFOHEADER;如果 strh子塊是音頻數(shù)據(jù)流,則strf子塊的內(nèi)容是一個WAVEFORMAT結(jié)構(gòu),如下:typedef struct WORD wFormatTag; WORD nChannels; /聲道數(shù)DWORD nSamplesPerSec; /采樣率DWORD nAvgBytesPerSec; /WAVE聲音中每秒的數(shù)據(jù)量WORD nBlockAlign; /數(shù)據(jù)塊的對齊標(biāo)
11、志W(wǎng)ORD biSize; /此結(jié)構(gòu)的大小WAVEFORMAT"strd"子塊緊跟在strf子塊后,存儲供壓縮驅(qū)動程序使用的參數(shù),不一定存在,也沒有固定的結(jié)構(gòu)。"strl" LIST塊定義的AVI數(shù)據(jù)流依次將 "hdrl " LIST 塊中的數(shù)據(jù)流頭結(jié)構(gòu)與"movi" LIST塊中的數(shù)據(jù)聯(lián)系在一起,第一個數(shù)據(jù)流頭結(jié)構(gòu)用于數(shù)據(jù)流0,第二個用于數(shù)據(jù)流1,依次類推。數(shù)據(jù)塊中存儲視頻和音頻數(shù)據(jù)流,數(shù)據(jù)可直接存于 "movi" LIST塊中。數(shù)據(jù)塊中音視頻數(shù)據(jù)按不同的字塊存放,其結(jié)構(gòu)如下所述,音頻字塊&q
12、uot;#wb"Wave 數(shù)據(jù)流視頻子塊中存儲DIB數(shù)據(jù),又分為壓縮或者未壓縮DIB,"#db"RGB數(shù)據(jù)流 "#dc"壓縮的圖像數(shù)據(jù)流(如果第一個流是音頻,則4字符碼為00wb;第二個流是視頻,則4字符碼為00db或00dc) . (網(wǎng)上原話,可能是01db或01dc) 看到了吧,avi文件的圖像數(shù)據(jù)可以是壓縮的,和非壓縮格式的。對于壓縮格式來說,也可采用不同的編碼,也許你曾經(jīng)遇到有些avi沒法識別,就是因為編 碼方式不一樣,如果沒有相應(yīng)的解碼,你就沒法識別視頻數(shù)據(jù)。AVI的編碼方式有很多種,比較常見的有 mpeg2,mpeg4,divx等。
13、 索引塊,索引快包含數(shù)據(jù)塊在文件中的位置索引,能提高avi文件的讀寫速度,其中存放著一組AVIINDEXENTRY結(jié)構(gòu)數(shù)據(jù)。如下,這個塊并不是必需的,也許不存在。typedef struct DWORD ckid; /記錄數(shù)據(jù)塊中子塊的標(biāo)記DWORD dwFlags; /表示chid所指子塊的屬性DWORD dwChunkOffset; /子塊的相對位置DWORD dwChunkLength; /子塊長度;二、MPG又稱MPEG(Moving Pictures Experts Group)即動態(tài)圖像專家組,由國際標(biāo)準(zhǔn)化組織ISO(International Standards Organiza
14、tion)與IEC(International Electronic Committee)于1988年聯(lián)合成立,專門致力于運動圖像(MPEG視頻)及其伴音編碼(MPEG音頻)標(biāo)準(zhǔn)化工作。2.0Mpeg-1數(shù)據(jù)流分析2.1視頻序列層(VideoStream):Video_Streamunsigned int h_size; /* Horiz. size in pixels. */ unsigned int v_size; /* Vert. size in pixels. */ unsigned int mb_height; /* Vert. size in mblocks. */ unsigne
15、d int mb_width; /* Horiz. size in mblocks. */ unsigned char aspect_ratio; /* Code for aspect ratio. */ unsigned char picture_rate; /* Code for picture rate. */ unsigned int bit_rate; /* Bit rate. */ unsigned int vbv_buffer_size; /* Minimum buffer size. */ BOOLEAN const_param_flag; /* Contrained para
16、meter flag. */ unsigned char intra_quant_matrix88; /* Quantization matrix for intracoded frames. */ unsigned char non_intra_quant_matrix88; /* Quanitization matrix for non intracoded frames. */ char *ext_data; /* Extension data. */ char *user_data; /* User data. */ GoP group; /* Current group of pic
17、t. */ Pict picture; /* Current picture. */ Slice slice; /* Current slice. */ Macroblock mblock; /* Current macroblock. */ Block block; /* Current block. */ int state; /* State of decoding. */ int bit_offset; /* Bit offset in stream. */ unsigned int *buffer; /* Pointer to next byte in buffer. */ int
18、buf_length; /* Length of remaining buffer.*/ unsigned int *buf_start; /* Pointer to buffer start. */ int max_buf_length; /* Max lenght of buffer. */ PictImage *past; /* Past predictive frame. */ PictImage *future; /* Future predictive frame. */ PictImage *current; /* Current frame. */ PictImage *rin
19、gRING_BUF_SIZE; /* Ring buffer of frames. */ Video_Stream; 具體的序列標(biāo)題的結(jié)構(gòu)的部分是這樣的:序列sequence_headerSEQ_START_CODE 0x000001b3; /* 常量 ,作用使用來定位視頻序列的序列頭 */ unsigned int h_size; /* Horiz. size in pixels. */ unsigned int v_size; /* Vert. size in pixels. */ unsigned int mb_height; /* Vert. size in mblocks. */ u
20、nsigned int mb_width; /* Horiz. size in mblocks. */ unsigned char aspect_ratio; /* Code for aspect ratio. */ unsigned char picture_rate; /* Code for picture rate. */ unsigned int bit_rate; /* Bit rate. */ unsigned int vbv_buffer_size; /* Minimum buffer size. */ BOOLEAN const_param_flag; /* Contraine
21、d parameter flag. */ unsigned char load_intra_quantizer_matrix; unsigned char intra_quant_matrix88; /* Quantization matrix for intracoded frames. 這個結(jié)構(gòu)是可選的,要看 load_intra_quantizer_matrix的值,為真則有這個部分,否則沒有,因為 intra_quant_matrix是量化表的值,而Sequence_header結(jié)構(gòu)在視頻序列中是可重復(fù)的,即在每個畫面組之前都有可能再次給出一個sequence_header,并且可以在
22、新的sequence_header 中重新定義量化表*/ unsigned char load_non_intra_quantizer_matrix; unsigned char non_intra_quant_matrix88; /* Quanitization matrix for non intracoded frames. 也是可選。愿意于intra_quant_matrix可選的原因相同。當(dāng)load_non_intra_quant_matrix的值為真的時候需要定義。 */ char *ext_data; /* Extension data. */ char *user_data;
23、/* User data. */由上面的分析,可以看出來的是:video_sequence() next_start_code() do sequence_header(); do group_of_pictures() ; /畫面組 while (nextbits()=GROUP_START_CODE) while(nextbits()=SEQUENCE_HEADER_CODE) SEQUENCE_END_CODE;2.2畫面組層(GOP):typedef struct GoP BOOLEAN drop_flag; /* Flag indicating dropped frame. */ u
24、nsigned int tc_hours; /* Hour component of time code. */ unsigned int tc_minutes; /* Minute component of time code. */ unsigned int tc_seconds; /* Second component of time code. */ unsigned int tc_pictures; /* Picture counter of time code. */ BOOLEAN closed_gop; /* Indicates no pred. vectors to prev
25、ious group of pictures. */ BOOLEAN broken_link; /* B frame unable to be decoded. */ char *ext_data; /* Extension data. */ char *user_data; /* User data. */ GoP;當(dāng)然每個畫面組層都是開始與標(biāo)志碼:GOP_START_CODE該層次語法上的定義是group_of_pictures GOP_START_CODE Time_code; tc_hours,tc_minutes,tc_seconds,tc_pictures Closed_gop;
26、Broken_link; Next_start_code; If(nextbits=extension_start_code) Extension_start_code; While(nextbits()=”0000 0000 0000 0000 0000 0001”) Group_extension_data; next_start_code() if(nextbits=user_data_start_code) user_data_start_code while(nextbits()!=0000 0000 0000 0000 0000 0001) user_data; next_star
27、t_code() do picture() while(nextbits=picture_start_code)2.3畫面層(Pictures):picture() picture_start_code temprol_reference /*時序編號,通常一組畫面的編號都在1024以內(nèi),如果超過那么在1025幅畫面出復(fù)位為0,重新計數(shù)。 */ picture_coding_type vbv_delay/*對于固定比特率的視頻流,vbv_delay用與解碼過程開始和隨機(jī)存取之后,以保證在第一幅畫面被顯示之前,解碼器 已經(jīng)讀到正確數(shù)目的比特數(shù)。*/ if(picture_coding_type=
28、2) | picture_coding_type=3) full_pel_foward_vector /*全象素前向矢量,給定前向矢量的精度,在P和B畫面的標(biāo)題中出現(xiàn)*/ forward_f_code if(picture_coding_type=3) full_pel_backward_vector back_f_code while(nextbits()=1) extra_bit_picture extra_information_picture extra_bit_picture next_start_code if(nextbits()=extension_start_code) ex
29、tension_start_code while(nextbits()!=0000 0000 0000 0000 0000 0001) picture_extension_data next_start_code() if(nextbits()=user_data_start_code) user_data_start_code while(nextbits()!=0000 0000 0000 0000 0000 0001) user_data next_start_code() do slice() while(nextbits()=slice_start_code)整個畫面單元結(jié)構(gòu)是這樣的
30、:typedef struct pict unsigned int temp_ref; /* Temporal reference. */ unsigned int code_type; /* Frame type: P, B, I */ unsigned int vbv_delay; /* Buffer delay. */ BOOLEAN full_pel_forw_vector; /* Forw. vectors specified in full pixel values flag. */ unsigned int forw_r_size; /* Used for vector deco
31、ding. */ unsigned int forw_f; /* Used for vector decoding. */ BOOLEAN full_pel_back_vector; /* Back vectors specified in full pixel values flag. */ unsigned int back_r_size; /* Used in decoding. */ unsigned int back_f; /* Used in decoding. */ char *extra_info; /* Extra bit picture info. */ char *ext
32、_data; /* Extension data. */ char *user_data; /* User data. */ Pict;2.4片層(Slice):首先給出識別出Slice層數(shù)據(jù)的頭標(biāo)slice_start_code#define SLICE_MIN_START_CODE 0x00000101#define SLICE_MAX_START_CODE 0x000001afslice slice_start_code /*從中可以計算出slice_vertical_position 片中第一個宏塊,以宏塊為單位的垂直位置*/ quantizer_scale /*設(shè)置量化步長尺寸。13
33、1*/ while(nextbits()=1) extra_bit_slice 1 extra_information_slice extra_bit_scale 0 do macroblock() while(nextbits()!=0000 0000 0000 0000 0000 0000) next_start_code()typedef struct slice unsigned int vert_pos; /* Vertical position of slice. */ unsigned int quant_scale; /* Quantization scale. */ char
34、 *extra_info; /* Extra bit slice info. */ Slice;2.5宏塊層(Macroblock):macroblock() while(nextbits()=0000 0001 111) macroblock_stuffing /*宏塊填料,為了防止下溢出,由編碼器填入的數(shù)據(jù),有它固定的11位bit格式就是0000 0001 111,當(dāng)然 解決下溢出的方法還有很多,編碼器可以在標(biāo)題之前就加入填料位,或者可以減小quant_scale獲得更多的編碼系數(shù)等等*/ while(nextbits()=0000 0001 000) macroblock_escape
35、/*固定模式的bit串,當(dāng)macroblock_address與previous_macroblock_address的差大于33時將用到該碼。 使得后繼的macroblock_increment所表示的值加33。 macroblock_address_increment /*用于表示macroblock_address和previous_macorblock_ address之間的差值。 最大值為33,當(dāng)前兩者差大于33時用macroblock_escape補(bǔ)充。 Macroblock_address表示的是宏塊在畫面中的絕對位置,最左上角的宏塊的macroblock_address為0,p
36、revious_macroblock_address指示片中最后一個非跳空宏塊的位置。*/ macroblock_type if(macroblock_motion_forward) motion_horizontal_forward_code if(forward_f!=1) && (motion_horizontal_forward_code!=0) motion_horizontal_forward_r motion_vertical_forward_code if(forward_f!=1) && (motion_vertical_forward_cod
37、e!=0) motion_vertical_forward_r if(macroblock_motion_backward) motion_horizontal_backward_code if(backward_f!=1) && (motion_horizontal_backward_code!=0) motion_horizontal_backward_r motion_vertical_backward_code if(backward_f!=1) && (motion_vertical_backward_code!=0) motion_vertical_
38、backward_r if(macroblock_pattern) coded_block_pattern /*可以得到宏塊宏塊的pattern_codei(i=0:5),從而確定該宏塊接收到的塊的種類有哪些。*/ for(i=0;i<6;i+) block(i) if(picture_coding_type=4) end_of_marcoblock片被分為16pixels*16lines的象素宏塊。每個宏塊都有它的標(biāo)題。包含了宏塊的地址、類型、量化器標(biāo)尺信息等等。標(biāo)題之后是該宏塊的6個塊的數(shù)據(jù)。在Xmplay代碼中給出的macrblock的定義:typedef struct macro
39、block int mb_address; /* Macroblock address. */ int past_mb_addr; /* Previous mblock address. */ int motion_h_forw_code; /* Forw. horiz. motion vector code. */ unsigned int motion_h_forw_r; /* Used in decoding vectors. */ int motion_v_forw_code; /* Forw. vert. motion vector code. */ unsigned int mot
40、ion_v_forw_r; /* Used in decdoinge vectors. */ int motion_h_back_code; /* Back horiz. motion vector code. */ unsigned int motion_h_back_r; /* Used in decoding vectors. */ int motion_v_back_code; /* Back vert. motion vector code. */ unsigned int motion_v_back_r; /* Used in decoding vectors. */ unsign
41、ed int cbp; /* Coded block pattern. */ BOOLEAN mb_intra; /* Intracoded mblock flag. */ BOOLEAN bpict_past_forw; /* Past B frame forw. vector flag. */ BOOLEAN bpict_past_back; /* Past B frame back vector flag. */ int past_intra_addr; /* Addr of last intracoded mblock. */ int recon_right_for_prev; /*
42、Past right forw. vector. */ int recon_down_for_prev; /* Past down forw. vector. */ int recon_right_back_prev; /* Past right back vector. */ int recon_down_back_prev; /* Past down back vector. */ Macroblock;2.6塊層(Block):typedef struct block short int dct_recon88; /* Reconstructed dct coeff matrix. */
43、 short int dct_dc_y_past; /* Past lum. dc dct coefficient. */ short int dct_dc_cr_past; /* Past cr dc dct coefficient. */ short int dct_dc_cb_past; /* Past cb dc dct coefficient. */ Block;解析塊的語法結(jié)構(gòu)是:block(i) if(pattern_codei) if(macroblock_intra) if(i<4) dct_dc_size_luminance if(dc_size_luminance!
44、=0) dct_dc_differential else dct_dc_size_chrominance if(dc_size_chrominance!=0) dct_dc_differential else dct_coeff_first if(picture_coding_type!=4) while(nextbits()!=10) dct_coeff_next end_of_block 2.7加密位置的思考。三、WMV(Windows Media Video): 采用獨立編碼方式并且可以直接在網(wǎng)上實時觀看視頻節(jié)目的文件壓縮格式。WM V格式的主要優(yōu)點包括: 相比MPE
45、G 、VOB 格式同等畫質(zhì)時文件相對較小、本地或網(wǎng)絡(luò)回放、可擴(kuò)充的媒體類型、部件下載、 可伸縮的媒體類型、流的優(yōu)先級化、多語言支持、環(huán)境獨立性、豐富的流間關(guān)系以及擴(kuò)展性。它是由 A SF( A dva n c ed S tr e a m For m at ) 格式升級延伸來的。在同等視頻質(zhì)量下, WM V格式的體積非常小 ( RM格式也特小,不同的技術(shù)相同的應(yīng)用 ), 因此也很適合在網(wǎng)上播放和傳輸。頭16個字節(jié)是固定的;接下來的8個字節(jié)為一個整數(shù),表示整個WMA文件頭部的大小;頭部后面的是音頻信息;從文件開始偏移量為31開始,里面存放了很多幀,有我們需要的標(biāo)準(zhǔn)Tag信息,擴(kuò)展Tag信息,WMA文件控制信息等等。每個幀不是等長的,但是幀頭是固定的24個字節(jié),其中前16字節(jié)是用來標(biāo)識這個幀的名字,后8個字節(jié)是用來表示這個幀(包括幀頭)的大小。四、ASF(Advanced Streaming format):ASF是一種數(shù)據(jù)格式,音頻,視頻,圖像以及控制命令腳本等多媒體信息通過這種格式,以網(wǎng)絡(luò)數(shù)據(jù)包的形式傳輸,實現(xiàn)流式多媒體內(nèi)容發(fā)布。ASF 頭對象:文件屬性對象(File Proper
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第五單元 第4章 第1節(jié) 細(xì)菌和真菌的分布(新教學(xué)設(shè)計)2023-2024學(xué)年八年級上冊生物(人教版)
- Unit 3 Could you please clean your room Section A 1a~1c 教學(xué)設(shè)計 -2024-2025學(xué)年人教版八年級英語下冊
- Module7 Unit3(教學(xué)設(shè)計)-2023-2024學(xué)年外研版英語八年級下冊
- 寧夏固原市2023-2024學(xué)年高二上學(xué)期期末考試地理試題(解析版)
- 湖南省名校聯(lián)考聯(lián)合體2023-2024學(xué)年高二上學(xué)期第三次聯(lián)考地理試題(解析版)
- 10 的認(rèn)識和加減(教學(xué)設(shè)計)-2024-2025學(xué)年一年級上冊數(shù)學(xué)冀教版
- 腦梗死患者個案護(hù)理
- 2025至2030年中國抗菌切菜板數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國打氣輪數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國手動多葉調(diào)節(jié)閥數(shù)據(jù)監(jiān)測研究報告
- 阿里巴巴管理精髓管理者必修的24招
- 西漢-北京大學(xué)歷史學(xué)系教學(xué)課件
- DB3202-T 1026-2022 無錫市安全生產(chǎn)技術(shù)服務(wù)單位等級評定規(guī)范
- 產(chǎn)品設(shè)計材料及工藝PPT完整版全套教學(xué)課件
- 普通地質(zhì)學(xué)教材
- 多重耐藥菌相關(guān)知識
- 2021年云南省中考地理試卷(附答案詳解)
- 教師資格證幼兒教育真題及答案近五年合集
- 物業(yè)管理工作流程圖全套2
- 防蠅防鼠防蟲害情況記錄表
- 化學(xué)檢驗工高級工理論知識試題題及答案
評論
0/150
提交評論