檔案「位元序列」中位元的相對位置

檔案「位元序列」中位元的相對位置

每個文件都被寫成位&位&位&......等等。

此外,每個文件都有兩種類型的元資料:

  1. 作業系統元資料:寫入作業系統本身的檔案位置、擁有者、權限等(例如:Linux 的 inode 中)
  2. 非作業系統元資料:版權資訊、色彩深度、影像解析度、快門速度等寫入檔案本身。

我的問題是,實際文件資料和寫入文件元資料在整個文件的「位元序列」中的相對位置是什麼?在「位元序列」中,元資料先出現還是實際文件內容先出現?

被告知:如果答案很大程度取決於檔案類型,那麼請優先選擇 .mp3 檔案類型。

答案1

每個文件都被寫成位&位&位&......等等。

在大多數作業系統中,檔案是位元組作業系統層級的序列 - 即它們只能作為 8 位元單元定址,而不能作為單獨的位元尋址。

某些檔案格式可能被指定為將位元組重新解釋為位元流(或更常見的是位元流“資料包”的集合),但這不是一般情況。

在「位元序列」中,元資料先出現還是實際文件內容先出現?

非常取決於文件​​類型:這實際上是文件類型的很大一部分定義

某些檔案格式指定將元資料放在開頭,其他檔案格式放在末尾,還有一些檔案格式使用結構化格式(例如RIFF 或PNG 區塊),其中元資料區塊可以位於任何位置,只要使用特定標識符進行標記即可。

  • MP3 檔案使用 ID3v2 標籤格式 - 元資料區塊的位置和佈局在 ID3 中定義v2.3.0或者v2.4.0規格。 (例如,後一個連結中的第 5 節表示標籤應該就在開頭。

    然而,許多 MP3 檔案也在檔案的最末尾(最後 256 位元組)包含 ID3v1 標記區塊,有些甚至可能只有 ID3v1 而沒有 ID3v2。其實本來就是MP3檔案格式沒有首先對嵌入元資料有任何規定,而且我認為 ID3v2 標籤的結構仍然是假裝是無法播放的音訊幀(為了相容性)。

  • PNG 檔案使用標記區塊關鍵元資料所在的結構“IDAT”和其他具有特定標籤的區塊—無論它們在檔案中的偏移量如何。 (唯一的限制是它們必須位於實際的「資料」區塊之前。)

    JPEG 檔案也使用標記段,並且它們將元資料保存在埃克斯夫格式,這是...嵌入在 JPEG 段中的整個 TIFF 文件,因此您必須解釋三層格式 - 首先是 JPEG,然後是 TIFF,最後是 Exif。也可以看看。同樣,段的位置可能會有所不同 - 它透過其類型標籤被識別為包含元資料。

  • PE/COFF 檔案 (Windows .exe) 是一個混合體:它們在開頭附近有一個固定的偏移量,但它只包含一個指針到真正的PE頭,所以實際的標題偏移量因檔案而異。該標頭在固定偏移處有一些元數據,然後有一個部分列表,只要它具有特定的部分名稱,就可以在任意位置保存更多元資料。

  • Microsoft Office (.docx/.xlsx) 和 OpenDocument (.odt/.ods) 檔案實際上是 Zip 存檔,因此它們末尾有 Zip 級元資料(「目錄」),而實際的文檔元資料儲存在該Zip 存檔中的特定「檔案」 - 因此您必須解釋Zip 檔案目錄才能找到Office 元資料。

  • 某些文件類型沒有嵌入的元資料。例如,文字 (.txt) 檔案僅包含任意文字。

相關內容