AIFF 小檔案

AIFF 全名 audio interchange file format, 我們沒說要支援, 結果播起來有聲音, 被客戶發 bug, 成了傷腦筋的問題.

為什麼沒有支援也可以播呢?因為它有時並沒有壓縮, 和純 PCM 的 wave 檔差不多.

如果名稱是 *.AIFF 或 *.AIF, 檔案是 little endian. 如果名稱是 *.AIFC, 則為 big endian.

不過 iTune 的 AIFF 內容其實是 AIFC. 這就是為何我們改口說 "乾脆支援 AIFF 算了!" 結果反而又被發 3 個 bug 的原因.

 AIFF 和 WAV (RIFF)  檔簡單比較一下:

RIFF Note AIFF Note
Chunk ID RIFF Chunk ID FORM
Chunk Size 4 Bytes Chunk Size 4 Bytes
RIFF DATA WAVE form data AIFF
 一到多個 chunk   各種 chunk 1
Offset Size Description Value
0x00 4 Chunk ID "fmt " (0x666D7420)
0x04 4 Chunk Data Size 16 + extra format bytes
0x08 2 Compression code 1 – 65,535
0x0a 2 Number of channels 1 – 65,535
0x0c 4 Sample rate 1 – 0xFFFFFFFF
0x10 4 Average bytes per second 1 – 0xFFFFFFFF
0x14 2 Block align 1 – 65,535
0x16 2 Significant bits per sample 2 – 65,535
0x18 2 Extra format bytes 0 – 65,535
0x1a Extra format bytes *
Common Chunk
Sound Data Chunk
Name Chunk
Author Chunk
Copyright Chunk
Annotation Chunk
Audio Recording Chunk
Application Chunk
ID3 Chunk
MIDI Data Chunk
未壓縮
Code Description
0 (0x0000) Unknown
1 (0x0001) PCM/uncompressed
2 (0x0002) Microsoft ADPCM
6 (0x0006) ITU G.711 a-law
7 (0x0007) ITU G.711 µ-law
17 (0x0011) IMA ADPCM
19 (0x0013) ADPCM (Sierra)
20 (0x0016) ITU G.723 ADPCM (Yamaha)
49 (0x0031) GSM 6.10
64 (0x0040) ITU G.721 ADPCM
80 (0x0050) MPEG
257 (0x0101) IBM µ-law
258 (0x0102) IBM a-law
259 (0x0103) IBM AVC Adaptive Differential PCM
65,536 (0xFFFF) Experimental

NONE (未壓縮)

fl32 (32 bits floating)
fl64 (64 bits floating)
a-law
u-law
FL32 (32 bits floating)
ADP4 (4:1 Intel/DVI ADPCM)
ima4 (IMA 4:1)
ACE2 (ACE 2-to-1)
ACE8 (ACE 8-to-3)
DWVW(Delta With Variable Word Width)
MAC3 (MACE 3-to-1)
MAC6 (MACE 6-to-1)
Qclp (Qualcomm PureVoice)
QDMC (QDesign Music)
rt24 (RT24 50:1)
rt29 (RT29 50:1) 

壓縮格式, 寫在 Common chunk

 
 

TIFF 小檔案

TIFF 全名 Tagged Image File Format, 有時候檔名是 TIF 結尾.早期的 TIFF 只能用在二值化的影像 (binary image), 作為掃瞄器的儲存格式之用. 隨著掃瞄器的進步, TIFF 也可以儲存灰階影像 ( gray level image), 和彩色影像.

TIFF 並不是一種單純的影像格式, 它就像 audio 的 AIFF 一樣, 可以當做 container 來用. 包括把 JPEG 或是 Packbits (一種 lossless run-length 壓縮)當做 TIFF 的內容. TIFF 也可以封裝一個 LZW 壓縮的檔案, 當然它也是 lossless.

簡化的 TIFF 稱為 baseline TIFF, 沒有 layer 的觀念, 沒有 JPEG, 也沒有 LZW, 但是仍然有 Packbits.

TIFF 可以是 little endian 或是 big endian, 最前面的 2 bytes 是 'll' 表示前者, 如果是 'MM' 表示後者.

正常的 TIFF 只能支援 4GB 大小, 因為裡面的 offset 是 32 bits. BigTIFF 是 TIFF 的特大號版, 因為 offset 擴充到 64 bits, 所以可以支援到 2^64 bytes 這麼大.


SCMS 小註解

 

根據 Microsoft 的文件, Digital Audio Protection 可以分為在 HDMI 或是 SPDIF 兩種情況. 如果 audio 走 HDMI, 那麼應該以 HDCP 保護. 如果 audio 走 SPDIF, 應該以 SCMS 保護. SCMS  的全名是 Serial Copy Management System, 討厭它的人以諧音稱之為 SCUMS (廢物, 人渣).

那麼 SPDIF 要怎麼保護 SCMS 呢?SPDIF  有 192 bits 的 channel status, 其中 bit 2 就是 SCMS 了.

Byte 0

Bit 0: 0: S/PDIF
       1: AES/EBU (ignored by consumer equipment)

Bit 1: 0: Digital Audio
       1: Non-audio (ignored by consumer audio equipment)

Bit 2: 0: SCMS enabled (default state)
       1: SCMS disabled (this allows unlimited generation digital copying)

…. 等等!SCMS 不是應該有 2 bits 嗎?根據 WIKI:

SCMS copy protection looks for bits written in the subcode data in a digital link. There are three states of these bits: copy allowed (00), copy once (11) and copy prohibited (10). If the source has the copy bits 00, and a copy is made of the source, the copy itself will have the bit set as 00 as well, allowing copies to be made from copies. If the source has the copy bits set as 11, every copy of this material will have the bits set to 10, and making a copy from the copy would be prohibited.

 

對於 SPDIF 輸出端, 只要做好 SCMS = 0 還是挺容易的. 不過這樣還是不夠, 如果 bit 2 是 0, 還要再看 bit 15. 


L bit 不能 record 時的值 Note
DVD-R and DVR-RW 1
CD-R, CD-RW, and DVD 0
CD-DA 也就是俗稱的 CD 未定義, 要看 bit 2 bit 2 以 4-10 Hz 交替 0 與 1

完整的 2 bits 表示法, 會出現在 DAT 或 MiniDisc 的播放或錄製裝置上, 而不是定義在介面.

DTS++ 小註解

 

最近收到一張認證申請表要填寫, 其中 DTS 又分為 DTS, DTS-HD, 和 DTS++ 三個選項.
 

DTS++ 這個名詞看來新潮, 直覺上認為會是個新規格結. 不過在 DTS 的網站上沒有相關訊息, 相關的同仁朋友, 不管是達人還是正妹也都說沒聽過. 

小查了 Google 一下, 我想它應該是指 DTS-HD MA (lossless).
 
DTS++ 是 DTS-HD 還沒有正式命名前用的名詞 . 或許是要拿來對抗 Dolby Digital Plus, 所以比多對手多一個 plus (?).

2004 年, BD 和 HD-DVD 規格底定之後, DTS++ 才正名為 DTS-HD. 

事實上, DTS-HD 這個名詞同樣讓人混淆. 到底是 lossy 還是 lossless? DTS-HD HR (high resolution) 還是 DTS-HDMA (master audio)? 據說 DTS-HD HR 要 phase out 了, 這樣規格的確會比較單純易懂.

既然 DTS-HD 和 DTS++ 並列, 我猜前者應指 lossy (DTS-HD HR), 後者應指 lossless (DTS-HD MA).

由於這個名詞在 2004 年以前才存在, 比我們 project 還稍微老一點點, 難怪大家都耳不熟, 只能投降囉!

White Christmas

這是一個特別的聖誕節.

印象中, 人人都應該陶醉於歡樂的音樂, 放鬆地在爐火旁欣賞銀白的雪景和五光十色的聖誕燈飾.

事實上, 我們在家裡忙著粉刷牆壁, 遮掩工人修補漏水所遺留下來的水泥色塊.

水泥漆隨著不規則律動的手勢繽紛落地, 牆壁上分佈著新的白, 舊的白, 和交界處模糊不清的白.

喔! 這也算是 white christmas 嘛!

無端地這樣巧合.

我的朋友阿錠就在這天中午拋下一身的病痛, 安靜地離開了人世.

阿錠交遊廣闊, 很多人都從不同的角度認識她.

我曾經以為阿錠人生中最輝煌的經歷, 可能僅止於擔任過總統專機的空服員了.

阿錠不是空服員中最漂亮的一個, 英文或日文也不是特別犀利.

不過她在菜鳥的時期, 就懂得按照 SOP, 對機上突然發病的乘客實施急救.

因為處置得得宜, 據說組員們還被張榮發先生喻為七個小天使.

以考績優異入選服務總統專機, 我覺得已經是職場中最高的典範.

然而, 即使自詡認識她 20 年之久, 我還是小看她了.

在她罹患癌症之後, 她又幫自己的人生寫了精彩的另一章.

阿錠永遠懂得如何 “活在當下", 這點我會銘記在心, 時時反省.

繼續閱讀「White Christmas」