0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RIFF文件格式簡介

嵌入式那些事 ? 來源:嵌入式那些事 ? 2023-10-07 16:25 ? 次閱讀

1、簡介

RIFF(Resources Interchange File Format)中文翻譯為資源互換文件格式,是Windows下大部分多媒體文件遵循的一種文件結構。

RIFF文件所包含的數據類型由該文件的擴展名來標識,能以RIFF格式存儲的數據有:

音頻視頻交錯格式數據 .AVI;

波形格式數據 .WAV;

位圖數據格式 .RDI;

MIDI格式數據 .RMI;

調色板格式 .PAL;

多媒體電影 .RMN;

動畫光標 .ANI;

其他的RIFF文件 .BND;

2、chunk

chunk(區(qū)塊)是RIFF文件的基本單元,RIFF文件由不同數量的chunk組成,每個chunk由“標識符”、“數據大小”和“數據”三個部分組成,“標識符”和“數據大小”都是占用 4 個字節(jié)空間,chunk的基本結構如下所示:

structchunk
{
uint32_tID;//塊標識符
uint32_tSize;//塊數據大小
uint8_tData[Size];//塊數據
};

ID:由4個ASCII字符組成,用以識別塊中所包含的數據。如:'RIFF','LIST','fmt ','data','WAV ','AVI '等,這種文件結構最初是由Microsoft和IBM為PC機所定義,所以RIFF文件是按照小端字節(jié)順序寫入的。

Size:塊數據大小,存儲在Data域中的數據長度,不包含ID和Size的大小。

Data:塊數據,數據以字為單位存放,如果數據長度為奇數(字節(jié)為單位),則最后添加一個空字節(jié)。

chunk是可以嵌套的,但是只有塊標識符為'RIFF'或者'LIST'的chunk才能包含其他的chunk。

3、FourCC

FourCC(Four Character Codes)是一個4字節(jié)32位的標識符,通常用來標識文件的數據格式。例如,在音視頻播放器中,可以通過文件的FourCC來決定調用哪種CODEC進行音視頻的解碼。例如:DIV3,DIV4,DIVX,H264等,對于音頻則有:WAV,MP3等。FourCC是4個ASCII字符,不足四個字符的則在最后補充空格(不是空字符)。比如,FourCC fmt,實際上是'f' 'm' 't' ' '。

4、RIFF chunk和LIST chunk

塊標識符ID為'RIFF'的chunk是比較特殊的,每一個RIFF文件首先存放的必須是一個RIFF chunk,并且只能有一個標識符為'RIFF'的chunk。RIFF chunk的數據域的起始位置是一個4字節(jié)的FormType(FourCC格式),用于標識RIFF chunk數據域中所包含的chunk的數據類型。緊接著FormType之后的數據域的內容則是RIFF chunk所包含的subchunk。一個簡單的RIFF chunk的示意圖如下所示:

f7ba09ee-64e2-11ee-939d-92fbcf53809c.png

riff1

上圖中的RIFF chunk包含有兩個subchunk,可以看出RIFF chunk的數據域首先是4字節(jié)的FormType,接著是兩個subchunk,每一個subchunk又包含有自己的標識符、數據域的大小以及數據域。

除了RIFF chunk可以嵌套其他的chunk外,另一個可以包含subchunk的就是LIST chunk,其示意圖如下所示:

f7d0f884-64e2-11ee-939d-92fbcf53809c.png

riff2

上圖中,首先是RIFF文件必須的RIFF chunk,其數據域又包含有兩個subchunk,其中一個subchunk的類型為'LIST',該LIST chunk又包含了兩個subchunk。

RIFF chunk和LIST chunk的基本結構如下所示:

structchunk
{
uint32_tID;//塊標識符:'RIFF'或者'LIST'
uint32_tSize;//塊數據大小
structChunkData{//塊數據
uint32_tType;//包含的subchunk的數據類型,與上面圖中的FormType和ListType對應
uint8_tData[Size-4];//包含的subchunk
};
};

備注:一個RIFF文件的總大小為:RIFF chunk的Size+8,這里的8是ID和Size所占用的空間。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7492

    瀏覽量

    163828
  • ASCII
    +關注

    關注

    5

    文章

    172

    瀏覽量

    35102

原文標題:RIFF文件格式詳解

文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MP3 文件格式資料

    MP3 文件格式資料
    發(fā)表于 04-08 03:37 ?22次下載

    如何光繪輸出AutoCAD文件格式

    教你光繪輸出AutoCAD文件格式
    發(fā)表于 06-07 15:16 ?36次下載

    .mpp文件格式打開軟件下載

    .mpp文件格式打開
    發(fā)表于 07-07 13:14 ?2517次下載

    適用于IPTV大并發(fā)應用的文件格式

    分析交互式網絡電視(IPTV)大并發(fā)應用的特性,提出一種適用于IPTV大并發(fā)應用的服務器內部文件格式cl4文件格式。該文件格式采用了符合IPTV大并發(fā)應用特性的音視頻數據交織、媒體數
    發(fā)表于 04-15 10:02 ?17次下載

    LabVIEW數據文件格式的視頻教程

    LabVIEW數據文件格式的視頻教程 LabVIEW數據文件格式之華山論
    發(fā)表于 03-26 12:16 ?113次下載

    MD產品支持文件格式

    MD產品支持文件格式              支持文件
    發(fā)表于 12-22 10:06 ?1515次閱讀

    數碼相機伴侶的文件格式

    數碼相機伴侶的文件格式              文件格式指的是數碼相機伴侶獨特的文件系統(tǒng)結構在
    發(fā)表于 12-23 10:05 ?879次閱讀

    GIF圖形文件格式文檔

    GIF圖形文件格式文檔 GIF圖形文件格式文檔 GIF圖形文件格式文檔
    發(fā)表于 05-24 10:53 ?2次下載

    GIF文件格式詳解

    GIF文件格式詳解 GIF文件格式詳解 GIF文件格式詳解
    發(fā)表于 05-24 10:53 ?2次下載

    了解LabVIEW數據文件格式

    LabVIEW數據文件格式之華山論劍視頻教程
    的頭像 發(fā)表于 06-25 00:13 ?4835次閱讀
    了解LabVIEW數據<b class='flag-5'>文件格式</b>

    解開PCB文件格式的神秘面紗:Gerber與CAD

    PCB 文件格式可能不是 PCB 設計中最令人興奮的部分,但它們在傳達如何在制造廠實現您的設計的生命中起著關鍵作用。在本文中,我們將介紹您會遇到的兩種最流行的文件格式背后的基礎知識: Gerber
    的頭像 發(fā)表于 09-17 19:32 ?8350次閱讀

    STM32--hex文件格式

    ? ? hex 是 Intel 公司制定的一種使用 ASCII 文本記錄機器碼或常量數據的文件格式,它可以燒錄到MCU中,被MCU執(zhí)行的一種文件格式。一個hex文件由多條記錄組成,而每條記錄由5個
    發(fā)表于 12-06 11:21 ?4次下載
    STM32--hex<b class='flag-5'>文件格式</b>

    WAV文件格式詳解

    WAV是微軟公司開發(fā)的一種音頻格式文件,用于保存Windows平臺的音頻信息資源,它符合資源互換文件格式(Resource Interchange File Format,RIFF)文件
    的頭像 發(fā)表于 10-21 09:52 ?5340次閱讀
    WAV<b class='flag-5'>文件格式</b>詳解

    常用對象文件格式

    電子發(fā)燒友網站提供《常用對象文件格式.pdf》資料免費下載
    發(fā)表于 10-15 09:25 ?0次下載
    常用對象<b class='flag-5'>文件格式</b>

    EPS文件格式如何轉換 EPS和SVG文件的區(qū)別

    EPS文件格式轉換 EPS(Encapsulated PostScript)是一種用于存儲矢量圖形的文件格式,最初由Adobe公司開發(fā)。由于EPS文件在打印時能夠保持極高的質量,并且廣泛被各種
    的頭像 發(fā)表于 11-19 10:31 ?500次閱讀