#24 Digital Audioの伝送について(S/PDIF編 その4)

0 comments

Posted on 26th 6月 2008 by admin in ものつくりの現場から

 今回は音楽データがリニアPCMの場合のS/PDIFのFrameのフォーマットについて説明します。

 リニアPCMを伝送する場合の基本単位(Sub Frame)は前回(#23)の図-2のように、32bitの長さで構成されています。先頭の4bitは同期検出用のSyncコードで、’B’,’M’,’W’の三種類があります。これらは4bit長ですが、リニアPCMのデータ部に合わせて2倍のビットレートに展開されるため(BMCでエンコードされるという訳ではありません)、表-1のようなビットパターンになります。

24_table1_3
表-1 Syncコード(プリアンブル)部のビットパターン

ちょっと見るとBMCエンコードされているように見えますが、’0’あるいは’1’が3個連続している部分が含まれています。BMCエンコードを行ったデータは’0’もしくは’1’は2個しか連続しない(データが’0’の場合)という約束になっていました。S/PDIFのレシーバは、この3個の’1’もしくは’0’が連続しているのを目ざとく検出してSub Frameの始まりと種類を検出しているということになります。 当然、先行するSub Frameの最後が’1’の場合や’0’の場合は’1’が3個以上続いたり、’0’が3個以上続いたりしてしまわないよう、論理をひっくり返します。つまり、直前のSub Frameの最後が’1’ならSyncコード(プリアンブル)を’000’で始め、’0’なら’111’で始めるよう決められています。このあたりは表-1を参照してください。

 Syncコード(プリアンブル)の次はAudio Sampleデータフィールドです。bit4からbit27までの24bitの長さがあります。I2Sから入力されBMCエンコードされたbit列がここにはめ込まれます。本blogの#20(2008年4月4日掲載)の図-1をもう一度参照してください。I2Sでは最長24bitまでのAudio SampleデータがMSB(最上位bit、b23)を先頭にして、順番に送り出され、LSB(b0)が最後に送り出されます。ところが前回(#23)の図-2を参照してください。この順番はLSB(b0)が先で、MSB(B23)が最後というように逆順に並べ替えられています。また、16bit長のデータは図-1のように右詰めで送り出されますので、Sub Frameのb4からb11までの8bitはダミーとなり’0’でパディングされます。b4からb7までの4bitはAUX bitとして使用される場合もあります。

24_fig1_2
図-1 Sub FrameのAudio Sample データフィールドのフォーマット
注) 16bit data, 20bit data, 24bit dataのbit番号はI2S入力のSDATAに合わせています。

 Audio Sampleデータフィールドに続くb28,29,30,31の4bitはフラグやステイタスを表すbitとして表-2のように使用されています。

24_table2_2
表-2 Sub Frameのb28からb31まで、V,U,C,P bitの意味。
注) UおよびCbitはFrame#0から#191までのbitをつなげて192bit長のbit列データとして使用されます。

V-bitはS/PDIFで送り出す前にセット/リセットされていますので、受信した方は、「このSub Frameは無効」と通知されても処置に困ってしまいます。Computer間の通信のようにエラー訂正のプロトコルが決められていれば、再送要求を出せますがAudio伝送では決められていませんので、V bitは受信側で無視するのが妥当なところだと思います。本来はCDプレイヤなどで、何度も読み出しエラーが発生した場合などに送信側でSetするようなものだと思います。iTunesなどでCDをリッピングする際に、「エラー訂正のために再読み込みを可能にする」という機能をONにするようなことができればよいのですが。
 bit31のP bitは送信側でbit4からb30までのbit列のParity bitです。受信側では受信したbit4からbit30までのbit列のParityを計算し、このP bitの値と一致するかどうか比較します。一致しなければ、通信の途中でどこかのbitが化けたということになります。再送を要求するか、無視してそのまま続行するかは上位のプロトコルで決められますが、現状のAudio伝送では無視して続行するしかありません。ただし、これはSync Codeが正しく検出できた場合の話で、同軸ケーブルを使用した場合は、送受信のレベルが低いのでノイズの影響を受けやすく、Sync Codeに同期できず、Sub Frame自体を検出できない場合があります。アナログ信号の場合、ノイズがのっても場合によっては「味付け」になりますが、Digital伝送の場合はノイズによってデータそのものが検出できないことがあるので、エラー訂正や再送プロトコルのない伝送には注意が必要です。
 bit29のU bitはUserが自由に使用できるbitです。ほとんどの場合、未使用(’0’)ですがCDプレイヤからのS/PDIF出力ではCDのSub-Qデータを送り出すために使用されている場合があります。この場合は、192個のFrameを構成するSub FrameのU bitを順番に並べて全体で192bit長のbit列をつくります。ひとつのFrame内に2個のSub FrameがあるからU bitの数は192×2で384ではないのか、と思いますが、同一Frame内のSub Frameは同じU bit(C bitも)を持っているので192個で間違いではありません。Sub-QデータというのはCDプレイヤで表示されるTrack番号や時間、現在演奏中の位置を示す時間データなどです。このデータは当然I2Sには全く含まれていませんので、CDメカの制御回路から直接取り出す必要があります。

 bit30のC bitも同じようにFrame#0から1bitずつ取り出して並べるとチャンネルステイタスと呼ばれるデータを再現することができます。実際は先頭のFrame#0から#31までに含まれている32bitに意味があり、EIAJで各bitの意味が規格化されています。C bitに関しては次回説明いたします。

RAL-Cettia1B 出荷遅延のご連絡とお詫び。

0 comments

Posted on 25th 6月 2008 by admin in お知らせ

Ralcettia1b 2008年5月29日に発表いたしましたワイヤレスオーディオシステムRAL-Cettia1Bは、当初6月下旬出荷開始予定としておりましたが、部材調達の遅延により7月上旬出荷開始予定へと変更させていただきますことを、ご連絡申し上げます。

この度の発売延期により、お客様並びに関係者の皆様に多大なご迷惑をお掛けしましたことを、心よりお詫び申し上げます。弊社では皆さまによりよい製品をご提供できるよう、一層の努力をしてまいりますので、今後とも弊社製品への変わらぬご愛顧を賜りますようお願い申し上げます。

●対象製品 ワイヤレスオーディオシステム RAL-Cettia1B
●出荷時期
[発表当初] 2008年6月下旬
[変更後] 2008年7月上旬

#23 Digital Audioの伝送について(S/PDIF編 その3)

0 comments

Posted on 10th 6月 2008 by admin in ものつくりの現場から

 S/PDIF編と謳いながら、序章のような内容が2回続いてしまい申し訳ありませんでした。今回からは直接S/PDIFに関するお話をしたいと思います。これまでに説明したようにマイクロホンなどで拾った楽器や歌声などのアナログ信号をDigital信号に変換した基本波形はI2S(最近はDSDも多いようですが)です。I2S信号の伝送には最低でも3本の信号線が必要になり、DataとClockが別々の信号線上を流れることにより外来ノイズやJitterなどの影響を受けやすくなります。極端な場合、Dataラインが断線あるいはショートしていてもWCLKとBCLKが伝送されていれば、無音なのか何なのか分かりません。同じような問題を抱えていたComputer間の通信(Ethernet/802.3)では、前回紹介したMancheter Codeという方法でエンコードを行い、Clockとデータを重畳させ1本の信号線で伝送できるように工夫されています。

 Audio信号の場合も同様に、Data(I2SのSDATA)とClock(SCLKまたはBCLK)をBMC(Biphase Mark Code)と呼ばれる方式でエンコードを行い、1本の信号線で伝送できるようにClockとDataを重畳させています。BMCエンコード方式もLogic Levelの’0’や’1’が連続して続いた場合であっても、断線と間違えることがないよう、必ずDataの1bit単位で信号が変化するように考えられています(図-1参照)。

Spdif_bmc_fig1_2

図-1 Biphase Mark Code(BMC)エンコード。
#22の図-4と比較してください。

そのため、BMC化された信号のシンボルレートは元々のI2S信号のBCLKの2倍の値が必要になります。I2SのSDATAの’1’はBMCにより10もしくは01にエンコードされ、I2SのSDATA’0’は00もしくは11という同じデータ2個のbit列で表現されるようになります。そして、個々のCell(1bitのDataをエンコードしたもの)の先頭は、直前のCellの最後のLogicレベルが反転されたものになります。こうしておかないと、直前のCellの最後が、仮に’1’だった場合、後続するCellの先頭も’1’であれば’11’となってしまい、元のデータが’0’であると誤認してしまう可能性があるからです。そのように、常に極性がCell間で重ならないように反転させている結果、BMCは信号の極性が反転していても全く影響されずに通信できるという面白い性質を持っています。したがって、S/DIFのOPT(光)接続で、Logic’1’の場合に点灯し、’0’の場合に消灯していても、その逆であっても正しくデータを伝えることができるという優れた特徴を持っています。ただし、エンコードを行うために元のClockの2倍のClockが必要になるのでComputer間通信のような高速通信(10Mbps, 100Mbps, 1Gbps)などには向いていないので、比較的低速でも問題がないDigital Audioで使用されているのではないかと思います。でも、前途のような優れた点が多いのでDigital Audio信号伝送用として標準的に使用されているものと思います。

 上記のようにBMCエンコードという方法によってI2Sのデータとクロック(SDATA,SCLK)を1本の信号線にまとめることができるということ、およびどのようにまとめられているかということがおわかりだと思います。しかし、DataとClockのBMCエンコードだけでは、WCLK(Word Clock)が含まれていませんので、どこがLch.データか、どこがRch.データか判別できないので、Audioデータとしては使えません。そこで、#21でお話した同期方式という方法が使用されることになります。

Spdif_subframe_fig2_2
図-2 S/PDIFのSub Frameのフォーマット

 S/PDIFではBMCエンコードされたひとつのAudioデータを図-2のようなSub Frame(サブフレーム)と呼ばれる情報単位としています。ひとつのSub Frameは32bitで構成され、先頭の4bitは同期検出のためのSync Code(プリアンブル)と呼ばれる同期検出用のビットパターンです。この部分は同期検出用でI2Sの元データからは独立していますので、BMCでエンコードはされていません。S/PDIFではこのSub Frame2個でひとつのFrameを構成し、FrameひとつでChennel#1(Left), Channel#2(Right)を伝送できるように考えられています。さらにこのFrameを#0から#191までの192個をひとまとめにして1ブロックを構成させています。したがって、I2SによるリニアPCM信号を伝送する場合には、ひとつのブロックで192個のデータを送り出すことができます。

 S/PDIFによるAudioデータの伝送はリニアPCMデータだけでなく、Dolby 5.1ch.などの圧縮データ(Non-PCMデータ)の伝送にも使用されています。LPCMとそれらのNon-PCMでは個々のSub-FrameやFrameの内容、Block内部のFormatは異なりますが、Sync+BMCエンコードされたデータ やbit streamという構成、Sub-Frame、Frame、Blockという構成は同じです。

Spdif_frame_fig3
図-3 S/PDIFのFrameフォーマット

 次回はLPCMの伝送についてSub FrameやFrame、Blockのフォーマットについて説明して行きたいと思います。