局ロゴのデータをビットマップ形式や生データ形式のまま保存できるものがある。
ビットマップ形式ならそのままPC等で表示できるが、通常の環境では透過までは再現されない。それにこれは変換されたデータであり、局オリジナルのデータではない!
生データ形式こそが局オリジナルのデータのはずだが、独自仕様でありそのままではPC等では表示できない。そこでこれをPCでも扱えるようにして、透過も含めて完全再現してみることにした。
局ロゴデータの形式とは?
独自仕様と思われている生データのバイナリを見ると、実はPNGファイルの構造となっている。内容は通常のPNGファイルのように、PNGシグネチャ+IHDRチャンク+IDATチャンク+IENDチャンクとなっているが、拡張子を.pngに変えたところでPC等では表示できない。IHDRチャンクのカラータイプの設定値が3(インデックスカラー)なのに、その場合に必須となる色情報(PLTEチャンク)が存在しないのが原因らしい。
この件で大変参考になる情報が以下のNo.33にてサンプルデータ付きで公開されていた。
局ロゴの表示に必要な色情報は受信機側に入っており、ロゴデータ側からは容量削減のために削除されているとのこと。PC等は当然この配色を知らないので、汎用PNGファイルとして扱うにはこの配色の情報を入れる(戻す)必要がある。
ご親切にも生データの時点で既にPNGの構造にはなっているので、あとは色情報さえ戻してあげるだけでPNGファイルとして表示できるはず。
不足している情報を復元する
色情報の復元
配色は共通となっておりARIB TR-B14で決められている。無料の英語版でも第2分冊の350頁で確認できるので、これを基に色情報を作っていく。
PNGの色情報は、PLTEチャンクで指定できる。
RGB×128色で384バイト 00 00 01 80 の、PLTE 50 4C 54 45。
規格書を見ながら、インデックス値0は 00 00 00(黒)、インデックス値1は FF 00 00(赤)、インデックス値2は 00 FF 00(緑)…と128色分を順番に並べて書いていく。
末尾はCRC 91 FB 1F A7 で以下のようになる。
00 00 01 80 50 4C 54 45 00 00 00 FF 00 00 00 FF
00 FF FF 00 00 00 FF FF 00 FF 00 FF FF FF FF FF
00 00 00 AA 00 00 00 AA 00 AA AA 00 00 00 AA AA
00 AA 00 AA AA AA AA AA 00 00 55 00 55 00 00 55
55 00 55 AA 00 55 FF 00 AA 55 00 AA FF 00 FF 55
00 FF AA 55 00 00 55 00 55 55 00 AA 55 00 FF 55
55 00 55 55 55 55 55 AA 55 55 FF 55 AA 00 55 AA
55 55 AA AA 55 AA FF 55 FF 00 55 FF 55 55 FF AA
55 FF FF AA 00 55 AA 00 FF AA 55 00 AA 55 55 AA
55 AA AA 55 FF AA AA 55 AA AA FF AA FF 00 AA FF
55 AA FF AA AA FF FF FF 00 55 FF 00 AA FF 55 00
FF 55 55 FF 55 AA FF 55 FF FF AA 00 FF AA 55 FF
AA AA FF AA FF FF FF 55 FF FF AA 00 00 00 FF 00
00 00 FF 00 FF FF 00 00 00 FF FF 00 FF 00 FF FF
FF FF FF AA 00 00 00 AA 00 AA AA 00 00 00 AA AA
00 AA 00 AA AA AA AA AA 00 00 55 00 55 00 00 55
55 00 55 AA 00 55 FF 00 AA 55 00 AA FF 00 FF 55
00 FF AA 55 00 00 55 00 55 55 00 AA 55 00 FF 55
55 00 55 55 55 55 55 AA 55 55 FF 55 AA 00 55 AA
55 55 AA AA 55 AA FF 55 FF 00 55 FF 55 55 FF AA
55 FF FF AA 00 55 AA 00 FF AA 55 00 AA 55 55 AA
55 AA AA 55 FF AA AA 55 AA AA FF AA FF 00 AA FF
55 AA FF AA AA FF FF FF 00 55 FF 00 AA FF 55 00
FF 55 55 FF 55 AA FF 55 FF FF AA 00 FF AA 55 FF
AA AA FF AA FF FF FF 55 91 FB 1F A7
(396バイト)1
バイナリエディタでこれをIHDRチャンクとIDATチャンクの間に挿入すれば、色付きのPNG画像として表示される。
透過情報の復元
PLTEチャンクを挿入した時点で画像としての表示はできるが、透過情報はまだ反映されていない。実際に透過色を使っている局は非常に少ないものの、ロゴに透過を使っているNCCのような希少な局もあるため、透過情報もきちんと反映させてみる。
PNGの透過情報は、tRNSチャンクで指定できる。
128色分で128バイト 00 00 00 80 の、tRNS 74 52 4E 53。
規格書を見ながら、インデックス値0は FF(不透明)、インデックス値1も FF(不透明)…インデックス値8は 00(透明)…インデックス値65からは 80(半透明)…と128色分を1バイトずつ順番に並べて書いていく。
末尾はCRC CE B6 B1 6C で以下のようになる。
00 00 00 80 74 52 4E 53 FF FF FF FF FF FF FF FF
00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 CE B6 B1 6C
(140バイト)2
これを先ほどのPLTEチャンクの下に挿入すれば、透過情報も再現される。
まとめ
これで生データ形式の局ロゴファイルも汎用PNGファイルとしてPC等で扱えるようになり、ビットマップでは再現が難しかった透過部分も再現できるようになった。
貴重な透過ロゴ採用局のNCCの局ロゴも、透過部分を含めて完全再現に無事成功!


