關於 CD book 紅皮書 frame 的意義

討論MP3、WAV、MIDI、WMA甚至其他數位音訊的播放、製作、轉換等。

版主: DearHoney

回覆文章
Cameron Wu
初學者
文章: 3
註冊時間: 2004-11-09 06:18

關於 CD book 紅皮書 frame 的意義

文章 Cameron Wu »

在網友 LukeLo 的「漫談數位音樂」文章裡並沒有詳細說明 frame 的意義,就我目前所知 1 秒有75 Frame,1 Frame 有75 block(frame),而 1 block(frame) 又有 588 bits(暫且不理有無意義),是否有大大可詳細說明一下Frame 與 frame 與 block 之間的關聯? 是不是有分音樂CD與DATA CD?

在紅皮書上提到(以下轉載自紅皮書):

*************************************************
Frame format

Each frame contains:
- a synchronization pattern of 24 bits.
- 24 data symbols of 8 bits each.
- 8 error correction parity symbols of 8 bits each.
- a control & display symbol of 8 bits.


The total number of channel bits per frame is:
- sync pattern : 24 channel bits
- control & display : 1 x 14 channel bits
- data : 24 x 14 channel bits
- error correction : 8 x 14 channel bits
- merging and LF suppression : 34 x 3 channel bits
----------------
Total 588 channel bits

**************************************************
有大大可以幫忙解釋一下這些數值的來源與關係嗎?

感激不盡~

如果想要直接討論請加入我的MSN吧! 謝謝。
hotball
神人
文章: 322
註冊時間: 2001-09-28 08:00
聯繫:

文章 hotball »

應該是 1 Block = 98 Frames,然後每個 Frame 的內容就是像你寫的這樣。
一個 Frame 所存放的真正資料量只有 24 bytes(就是那個 24 data symbols of 8 bits each)。不過一個 frame 實際上還有 24 bits 的 sync,8 bits 的 subcode(control & display),和 8 bits 的 CIRC error correction。這些資料在真正放在 CD 上面時,並不是對應成 pit 和 land,而是要再經過 modulation,以避免太長或太短的 pit 或是 land。所以在轉成 channel bits 時,sync 還是 24 bits,但其它的東西都是 8 bits -> 14 bits(即 EFM)。每個 14 bits 中間還要加上 3 bits 的 merging & LF suppression,以避免兩個相鄰的 code 中間產生問題。在 sync 的後面,和每個 8 bits 資料的後面,都需要一個 3 bits,所以總共有 34 個 3 bits。這些全部加起來就是 588 channel bits。但是實際上它只存放了 24 bytes 的可用資料(再加上 1 byte 的 subcode)。

一個 Block 有 98 frames,而每個 frame 存放 24 bytes 資料,所以一個 Block 有 98x24 = 2352 bytes。在 Audio CD 中,一個 block 是存放 1/75 秒的聲音(即每秒有 75 Blocks),所以它是完全符合 44.1kHz 16 bits 立體聲的資料量(44,100x2x2 = 176,400 bytes = 2,352x75)。

在 data CD 的情形,每個 block 就不是都拿來存資料了。因為 data CD 的資料正確性要求更高。所以 data CD 只使用了 2,352 bytes 中的 2,048 bytes 存放實際資料,其它的部份則是 header、EDC、和 ECC。大致上是:

- sync: 12 bytes
- header: 4 bytes
- data: 2,048 bytes
- EDC: 4 bytes
- unused: 8 bytes
- ECC: 276 bytes

Mode 2 Form 1 則把 unused 的 8 bytes 拿來存放 subheader。

Video CD 和其它使用 Mode 2 Form 2 的格式,則把 ECC 去掉,因此每個 Block 可存放的資料量就變成 2,324 bytes(2,048 + 276)。不過因為少了 ECC,它的資料保護能力就差了一些。
Cameron Wu
初學者
文章: 3
註冊時間: 2004-11-09 06:18

文章 Cameron Wu »

總歸你的資料:
-------------------------------------------------------------------
1s=75blocks
1block=98frames
1frame=588bits
1frame(真正可用資料)=24bytes
1block(真正可用資料)=24bytesx98=2352bytes
1block=24+14+24x14+8x24+3x34=588bits
--------------------------------------------------------------------
Q1:是這樣換算的嗎?大大有更好的算法?
Q2:能請大大幫忙解答為什麼1byte=6bits? byte與bit之間的對應關係原理?
Q3:CD標準規格44.1KHz 16bits 立體聲的資料量為什麼是44100x2x2(感覺像是44100x2) ,而2352x75是每秒的資料量,這兩個為什麼是恆等式?
Q4:以上是 Audio CD 的部份 ,那 Data CD 的 2048bytes 是如何計算出來的?
Q5:也有一種說法是1block=1Frame所以1Frame=98frames(跟1block=98frames一樣)是嗎?還有1byte=6bits是嗎?所謂的byte是指有意義的資料而bit是指所謂的channel bit是嗎?

謝謝大大解答,感激不盡~
hotball
神人
文章: 322
註冊時間: 2001-09-28 08:00
聯繫:

文章 hotball »

Q1: 1 block 不是 588 bits。1 frame 是 588 channel bits。

Q2: 1 byte = 8 bits,不是 6 bits。

Q3: 16 bits 是指各個聲道 16 bits,所以立體聲的話就要兩倍。16 bits = 2 bytes,所以每秒需要的資料量是 44,100x2x2 bytes。因此 Audio CD 的資料儲存上,至少每秒要能存放(和傳送)這麼多的資料。Audio CD 的每個 block 大小是 2,352 bytes,每秒 75 個 blocks,剛好和 44,100 Hz 16 bits 立體聲的資料量相同。

Q4: Data CD 的格式我在前面有提到。

Q5: 我覺得特別分 Frame 和 frame 的意義不大,因為 block 和 "Frame" 是一樣的,而 Frame 和 frame 容易搞混,所以我認為最好就是 1 block = 98 frames。不需要再特別有 1 block = 1 Frame, 1 Frame = 98 frames。

1 byte = 8 bits 的 bit 並不是指 channel bit。Channel bit 是指光碟上實際儲存時用的格式(對應 pit 和 land)。由於讀取上的限制,pit 和 land 的長度不能太長(也就是說 channel bit 不能有大量連續的 1 或 0),也不能太短(例如 1010 交錯出現)。因此,實際上資料並不是直接就以 pit 和 land 方式存放,而是要先經過一個 EFM(eight-to-fourteen modulation),把 8 bits 變成 14 channel bits,實際上是一個簡單的查表動作。這個 modulation 的目的就是要確保不會出現太長或太短的 1 或 0。不過,光是 EFM 還不夠,因為兩個相鄰的 bytes 可能會造成問題,而且還要讓 0 和 1 的數目儘量接近,所以兩個 bytes 中間還會加上 3 bits 的 merging bits。因此,實際上 8 bits 的資料,在放在 CD 上面時,已經用掉 17 bits。再加上每個 frame 前面的 sync 等等,實際上 24 bytes 的資料,在 CD 上是用 588 channel bits 存放的。也就是說,平均起來每個資料 bit 需要 3 個 channel bits 存放。
回覆文章