*IRCを利用した同期表示端末の作成 [#ae454a8d]
RIGHT:川俣吉広 / 45回EBUG会合 @銀座堂ネット(三条市)~
2013年2月16日

**aclkの開発 [#ded06423]
現在、地上テレビ放送の運行はコンピュータシステムにより殆どが自動化されているが、
くの無人運用が可能な訳ではなく、人手による業務もかなり残されている。
-例
--放送用素材の填/調整の確認
--不定期にる回線運用、素材収録
--etc...(設備投資←→人件費のトレードオフ)

#ref(Manual/aclk/aclk.gif,wrap,around,right)
TeNYでは、このような人手による業務を確実に実行するためにaclk (Alarm CLocK)と呼ばれるソフトウェアを自製した。
(2006年頃)
-特徴
--スタンドアロンで動作
--指定時刻に映像・音声などを出力し、オペレータに注意喚起
--放送機器制御用の端末(APC)に似せたヒューマンインターフェース
--制御データファイルのinclude機能

-実
--Tcl/Tkにて記述
--映音の出力には、外部プログラムを起動
#img(,clear)

**機能追加 ... ネットワーク対応 [#zd4e684f]
aclkの開発後数年間は当初の仕様で運用してきたが、
その後端末を複数台接続し、連携して動作させたいという要望が発生した(2009~2010年頃)。

運用イメージ
|&ref(P2150360.JPG,,25%);|&ref(P2150362.JPG,,25%);|
-要望
--表示専用端末と力/編集用端末を分けたい
--力/編集用端末の操作が表示専用端末にも反映されるように
--端末は任意の台数繋ぎたい

-実の検討 → 複数の端末に対して「同報メッセージ」を送る
--UDP~
... Tcl/Tkに適当なライブラリが見つからない~
... あったとしても、再送制御とか自前で実するの面倒
--IRC~
... 同様に適当なライブラリはないようだ(実はあった)~
... が、クライアント~サーバ間のプロトコルは割りかし単純 → 基本的には行単位のコマンド+引数を送りつけるだけ → 書いてみっか

|&ref(Manual/aclk/aclknet.gif);|
|各クライアントは同一のIRCチャンネルにJOINし、同期メッセージを送りあう|

-実したもの
--Tclで記述した、IRCプロトコル~
...RFC1549の部分実... とりあえずは JOINとPRIVMSGくらいあればOK(あと、非同期にPING~PONG応答)。~
...このライブラリを使用して、サンプルプログラム(IRCモニタ)を書いてみる。

--IRCプロトコル上で動作する、同期メッセージを送りあうための「俺プロトコル」を制定~
...端末が個々にデータを持っているが、それらは全て同じデータ ~
...操作を行った端末は「操作の種類+対象データ」を同報する ~
...同報を受け取った端末は、操作端末と同じ操作を自分の持っているデータに対して行う ~
...あと、他端末と次端末のデータを強制的に同じにする機能

--スタンドアロン版のaclk端末に前項、前項の機能を組込んで動作テスト。

-実行
--ネットワーク接続報は、初期設定ファイルに記述
--実行後のネットワーク機能はGUIの設定パネルより操作

*IRCネットワーク上の測定器制御 [#if269bc1]

**ラウドネス規格への対応 [#pe9a6737]
テレビ放送では、CMや番組の変り目で急激な音量の変化を感じることがあり、従来より議論されてきたが2011年、これを解消するための要件が勧告された;
-規格
--国際/海外規格 ... ITU-R BS.1770-2 / EBU R128, TECH3314 / ATSC A85など
--日本国
---電波産業会(ARIB) ... デジタルテレビ放送番組におけるラウドネス運用規定 ([[ARIB TR-B32>http://www.arib.or.jp/english/html/overview/doc/4-TR-B32v1_0.pdf]])
---民放連 ... テレビ放送における音声レベル運用規準 ([[NAB技術規準T-032>http://www.j-ba.or.jp/loudness/T032-2011.pdf]])

#ref(Project/Loudness/手動測定/VU.gif,around,right)
#img(,clear)
#ref(Project/Loudness/手動測定/LM.gif,around,right)
-測定方法
--測定の尺度として「ラウドネス(単位: LKFS)」を用いる
--ラウドネスは「感覚量」であり、物理的な音声の大小に対し聴覚の特性を適用して算出 →「[[ラウドネスメータ>http://www.miranda.com/Kaleido-Solo]]」を使用
--瞬時値ではなく、指定された期間の音声信号から値を算出
--→''ラウドネスメータに対し「測定開始」、「測定終了」を指示する要がある。''

-問題点
--番組単位での「測定開始」、「測定終了」をどうするか? ... 各局によってI/F, データフォーマットが異なり既成品が存在しない
--測定結果の記録、表示をどうするか? ... 非技術部門も参する

#img(,clear)
**測定ソリューション [#ya14a5a4]
ラウドネスメータ自動測定のための制御指示を前で説明したaclkネットワーク上に載せる。
|&ref(Project/Loudness/自動測定/LMCtrlDiagram.gif);|
|システム構成|

-以下のハードウェアを追加
--LMS (Loudness Meter Scheduler) - 番組報を取得し、測定制御指示を生成。

--LMC (Loudness Meter Controller) - 測定制御指示に従い、ラウドネスメータを実際に制御

--測定制御指示はaclk端末上ではテキストメッセージとして見えるので、端末からのモニタリングや修正作業などが可能

-作成したもの
--aclkプロトコルに制御指示のための書式を追加

--LMS, LMCのスクリプト
---Perlで記述し、migw.pl のコードを流用 ... IRCプロトコル部分は Net::IRC を使用
---aclk端末ではTcl/Tkで実したaclkプロトコルをPerlで再実装
---LMS, LMCそれぞれに固有な部分のコーディング

|&ref(Project/Loudness/自動測定/LMNetDiagram.gif);|
|ネットワーク構成|

--ハードウェア的なもの
---LMC→ラウドネスメータへの接点制御 ~
... 単に「スイッチをON/OFF」するためだけだが適当なものが意外とない ~
... OpenBSDでパラレルポート使ってLED点けてる人が[[Youtubeにいた>http://www.youtube.com/watch?v=BwecZofkoqs]] ~
... →i386_set_ioperm(2) を使ってI/Oポート直叩き
|試作回路|
|&ref(Project/Loudness/自動測定/ifbox.gif);|
|インターフェース条件 ... PCからの制御出力&br;パラレルポート D0, D1 を使用&br;GNDに対し、Low=0.07V, High=3.4V (実測値)&br;出力電流規格値: Sink=20mA, Source=2mA max|

**測定結果の取得と表示 [#cbd4a16d]
-ロギング生データ取得 ... ラウドネスメータのオプションソフトウェア(Windows上で動作)を使用

-結果の解析
--ロガーからデータをFTP転送

--ログの容(バイナリ)を解析 ... RE上等

--結果を[[測定日報>Project/Loudness/測定日報]]として集計し、ウェブベースで
|&ref(Project/Loudness/自動測定/GenSummary.gif);|


Front page   New Page list Search Recent changes   Help   RSS of recent changes