コグノスケ


link 未来から過去へ表示  link 過去から未来へ表示(*)

link もっと前
2018年5月23日 >>> 2018年6月1日
link もっと後

2018年5月26日

Linux DVB Frontendドライバ

目次: Linux

会社でLinux用のフロントエンド(チューナー、デモジュレータ、デマルチプレクサ)のドライバを書いていました。商品に使うかどうかは知りませんけどね……。

この辺の機能はDVB Frontend APIとか、単にDVB APIと呼ばれて(わかりやすい図)いるようです。Video For Linux 2(V4L2)と共に、Linux Media Subsystemという名前のSubsystem(ドキュメント)を構成しています。

DVBという名前は欧州の放送規格のDVBに由来していますが、現在はDVBに限らず他の放送規格にも対応しています。

衛星(ISDB-S)と地上波(ISDB-T)

私は日本在住なので、とりあえず日本の放送が映れば嬉しいです。ISDB-S, ISDB-T用のチューナー、デモジュレーターのドライバを作ってみました。

無事、会社の開発ボードで放送波が受信でき、開発ボード → PCにTSを投げつけることで、PCのVLCプレーヤーでワンセグを拝めました。VLCプレーヤー便利です。

フロントエンドって何ですか?状態のド素人からの出発で、1人でセカセカ3週間くらいでした。チューナーもデモジュレーターも、単品で独立したLSIが多いのでわかりやすい(※)です。フロントエンド系に詳しくて、Linuxのドライバ開発に慣れている人なら、もっと早くできるでしょう。

実装したドライバはLinuxの開発MLに送ってみたけれど、今のところ特にお返事ありません。悲しい…。

Linuxのフロントエンドドライバの対応状況は結構偏っています。DVBは手厚いですがATSC, DTMB, ISDBは手薄に見えます。もしご興味ある方はDVB以外にトライしてみると、喜ばれるのではないでしょうか?

(※)悲しいことに、一番訳が分からなくて手間が掛かるのは、いつも自社のSoCです。未だに良くわからん部分があり、Linuxの開発MLに投稿できていません。

メモ: 技術系の話はFacebookから転記しておくことにした。加筆あり。

編集者:すずき(2023/05/15 03:54)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年5月27日

ワンセグよりフルセグ

ISDB-Tを受信できるようになり、ワンセグを見ることができるようになりましたが、ワンセグは解像度が低く細かいところが見えません。動きもカクカク(15fps)です。

フルセグの動画も拝みたいところですが、日本でフルセグを見るためにはスクランブルを解除しなければなりません。

日本はなぜか無料放送にスクランブルが掛かっています。ISDB仲間のブラジルではスクランブルは無いそうです。日本は変な国ですね…。

テレビを作るわけではないのでPAT, PMT, ECMだけ処理して、B-CASとの通信部分、Multi2の暗号/復号処理(※)を実装すれば、動作チェックくらいならできるはず。たぶん。

(※)CBCとOFBモードを両方使うので、復号するために、暗号処理が要ります。気になる方はWikipediaをご覧あれ(暗号利用モード - Wikipedia)。

久しぶりに読んだ

久しぶりにARIBの仕様書(ARIB STD-B25)読みました。日本語はありがたいですけど、やや読むのは辛いです。

できればB-CASに送るINSコマンドの値をコマンド例と一緒に書いてくれれば見やすいのになあ。なぜ仕様書の最後に書くんでしょうか。見づらい。

暗号に関しては割と書いてあっても、復号に関する記述が適当で、受信機の設計者はこれ見て作れます??と要らん心配をしてしまいます。

有料になっていた

以前はARIBの仕様書は気前良く無料で公開されていましたが、有料に変わっていました。お金無くなったんでしょうか?天下のARIBが貧乏臭くなっちゃって……。

これも今の日本のテレビ業界の斜陽を表しているのかもしれません。

単純なデスクランブル

会社のテレビソフトウェアを使えば、ハードウェアでデスクランブル(=処理負荷が低くて優秀)できますが、要らんシステムがゴチャゴチャくっ付いて来て外せないので死ぬほどウザいです。デスクランブルだけ行うのは不可能じゃないはずですが……ちと面倒です。

ソフトウェアデスクランブルだけ出来ても、番組表も字幕も録画も何もないので、会社で役立つことはほぼなさそうです。お役立ちは目指してないし、個人的にはPCにフルセグが映ったら十分なので、他は要らねっすわ。

メモ: 技術系の話はFacebookから転記しておくことにした。加筆あり。

編集者:すずき(2018/05/28 02:07)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年5月28日

白髪の原因

病気やストレスで「白髪」になるのは、免疫システムの働きだった:研究結果 - WIRED.jp を読んで。

ずっとストレス=白髪は俗説だと思っていたけど、関係あるんですね。あくまでも、マウスによる実験なので人間にそのまま適用できるかどうか、まだわからないです。

白髪が多いのは昔からなので気にしていませんが、大きな病気とか、ストレスと関連していると言われると、ちょっと気になってしまいます。

今までは頭の上が白くて、前髪やサイドは黒かったのですが、サイドがかなり白髪に侵略されていて、白くなってきました。最近はストレスフリーな生活してるのに変だなー……?

メモ: 技術系の話はFacebookから転記しておくことにした。加筆あり。

編集者:すずき(2018/05/30 01:57)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年5月30日

ISDB-S/ISDB-Tのデスクランブル

無料放送のデスクランブルはうまくいきました。会社のPCにフルセグが映って満足です。画面が綺麗になったお陰か、仕事中についテレビに目が行ってしまい危険です……。

デスクランブルの実装に速度的な工夫は皆無ですが、PCで実行しているので性能は余裕です。CPU利用率はCore i7 1コア12%程度、地上波の全番組(10番組で十分)を同時処理してもお釣りが来ます。

CPU性能とは別の問題があって、3番組以上同時にデスクランブルしようとすると、B-CASカードorカードリーダーが変な動きをして死にます。エラーも何も出ないので、理由が良くわかりません…。

Facebookにて「B-CASカード内のマイコンかバスの性能限界が2番組では?」と教えていただきました。となるとB-CAS 2枚差しに対応したら、4番組まで処理できそうですね。

データ転送は何か考えた方が良さそうです。今は素朴にMPEG2-TSをUDPに載せて垂れ流していますが、ネットワークへの負荷がハンパじゃありません。1番組で20Mbps強、帯域を浪費します。

プログラム番号を指定して、どのPMTを通すか決め、要らないPIDのパケットは捨てるフィルタを入れた方が良さそうです。家ならば、ギガビットイーサネット前提にした力尽くの解決でも良いです。Wi-Fiだと厳しいかな……。

振り返り

かれこれ1週間くらいで作れましたが、知識ゼロから書き始めたらこんなにうまく行かなかったでしょう。スムーズに進んだ要因は2つかな?

1つ目は昔買ったEarthsoft PT2です。PT2は有志の方によりLinuxドライバが開発されました。お陰でLinux PCがあれば、スクランブル掛かったMPEG2-TSが簡単に取得できました。

会社の開発ボード+先日作ったドライバでもMPEG2-TSは取得できますが、会社から取得したデータを持って帰ってくる方法が無いんですよね。

2つ目は昔のコードです。MULTI2復号/暗号や、デスクランブル処理は、以前Javaで書いたことがあって、そこから流用しました。一番難しい部分を瞬殺できたのは大きかったです。

細かい中身を忘れてたせいなのか、自分で納得して書いたコードだと確信できるのに、どうしてこれで動くのかちょっと悩んだりする、不思議な体験をしました。

いやはや、昔の自分はほぼ他人ですね。

メモ: 技術系の話はFacebookから転記しておくことにした。加筆あり。

編集者:すずき(2018/05/31 03:47)

コメント一覧

  • 通りすがりですみません。さん(2018/06/02 16:42)
    私のPC(Win10)ではB−CAS1枚でもアースソフトのPT2の2枚刺しに対応できているので方法はあるかもしれませんね。ただし、カード1枚にドライバ1個を起動して対応してます。技術屋ではないので、中身まではよくわかりませんですが。
  • すずきさん(2018/06/02 17:27)
    情報ありがとうございます。PT2 2枚差しということは、同時 8ch(1枚で地デジ x 2 + 衛星 x 2 の 4ch、2枚で 8ch)のデスクランブルが出来ているということでしょうか?

    だとすると、私の書いたプログラムの制御が良くないのかもしれません。時間を見つけて追いかけてみようと思います。
open/close この記事にコメントする



2018年5月31日

DVB APIの不思議な仕様

Linux DVB APIの仕様を完全に誤解していました。DVB APIではチャンネルを選局する際に、DTV_FREQUENCYプロパティにチャンネルの周波数を指定します。

この仕様がかなり変わっていて、衛星系はkHzで指定しますが、地上波やケーブル系はHzで指定する(ドキュメントへのリンク)んです。

私は今までどちらもHzだと思っていたので、テスト用のアプリを思い切り間違って書いていました。テストアプリでPT2を制御しようとすると、ISDB-Sだけエラーになって選局が出来なかったので、何かおかしいな??とは思っていたのですが、まさかこんな仕様だったとは……。

メモ: 技術系の話はFacebookから転記しておくことにした。追記あり。

編集者:すずき(2018/06/02 17:23)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年6月1日

VLCプレイヤーとARIB字幕

スクランブルを解除したストリームを再生して初めて、VLCプレイヤーがARIB字幕に対応していることを知りました。


VLCプレイヤーがARIB字幕(青色の字)を表示しているところ

すごいなVLCプレイヤー……。

Nullパケットの多さにびっくり

ネットワーク帯域食いすぎ問題は、試しにNullパケット(PID: 0x1fff)を全て捨てたところ、帯域が半分(地デジで30Mbps → 16Mbps)くらいになりました。

追加でワンセグ、字幕、音声も捨ててみましたが、あまり帯域は変わりません。1Mbps変わるくらいかな…。

VLCプレイヤーさん曰く、動画の平均ビットレートが13Mbpsほどらしいので、TS化のオーバーヘッドと、UDP/IPのオーバヘッドも考えるとこんなもんなんでしょう。


Nullパケットを捨ててBSプレミアムをUDPで送った時の帯域

我が家のPT2は元々Nullパケットを捨てているらしく、デスクランブラ側でNullパケットを捨てようが捨てまいが、特に帯域は変わりませんでした。写真はBSプレミアムのときの帯域です。地デジよりはちょっと高目かな?

メモ: 技術系の話はFacebookから転記しておくことにした。加筆あり。

編集者:すずき(2018/06/02 17:45)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2018年5月23日 >>> 2018年6月1日
link もっと後

管理用メニュー

link 記事を新規作成

<2018>
<<<05>>>
--12345
6789101112
13141516171819
20212223242526
2728293031--

最近のコメント20件

  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」
  • link 24年1月24日
    KKKさん (02/19 02:30)
    「追伸です。\nネットで調べたらマイクロソ...」
  • link 24年1月24日
    KKKさん (02/19 02:25)
    「私もエラーで困ってます\n手動での回復パ...」
  • link 24年1月24日
    すずきさん (02/13 11:48)
    「ありがとうございます。\n私のPCはもう...」
  • link 24年1月24日
    えはらさん (02/12 15:00)
    「Powershellのスクリプトは以下の...」
  • link 24年2月2日
    すずきさん (02/02 18:17)
    「サーバー側の設定はとても簡単でした。ちょ...」
  • link 24年2月2日
    hdkさん (02/02 08:54)
    「さくらのレンタルサーバの設定でLet's...」
  • link 24年1月24日
    すずきさん (01/28 11:35)
    「ご指摘ありがとうございます。確かに間違っ...」
  • link 24年1月24日
    通りすがりさん (01/27 14:05)
    「Powershellで解決しなかったのは...」
  • link 23年11月29日
    すずきさん (12/04 00:38)
    「あ、そうか。1nsですね。ありがとうござ...」
  • link 23年11月29日
    hdkさん (12/03 18:49)
    「>(本来1usなのに1msになって...」
  • link 23年11月29日
    すずきさん (12/03 00:35)
    「大山先生、お久しぶりです。コメントありが...」
  • link 23年11月29日
    大山恵弘さん (12/02 18:53)
    「すずきさんのX(旧Twitter)へのポ...」
  • link 20年7月12日
    すずきさん (10/19 11:17)
    「ご指摘ありがとうございます。9月の編集は...」
  • link 20年7月12日
    通り縋りさん (10/18 19:08)
    「上の記事2023年9月編集という事ですが...」
  • link 23年9月22日
    すずきさん (09/23 21:14)
    「そうなんですよ。賢いなーと思って自分でも...」
  • link 23年9月22日
    hdkさん (09/23 14:56)
    「+1だから、繰り上がる時は必ず下のほうに...」
  • link 23年9月2日
    すずきさん (09/06 18:21)
    「dアカウント自体はMNPと関係なく存在す...」

最近の記事3件

  • link 24年3月25日
    すずき (03/26 03:20)
    「[Might and Magic Book One TASのその後] 目次: Might and Magicファミコン版以前(...」
  • link 21年10月4日
    すずき (03/26 03:14)
    「[Might and Magicファミコン版 - まとめリンク] 目次: Might and Magicファミコン版TASに挑...」
  • link 24年3月19日
    すずき (03/20 02:52)
    「[モジュラージャックの規格] 古くは電話線で、今だとEthernetで良く見かけるモジュラージャックというコネクタとレセプタク...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 03/26 03:20