PowerPC版について 2007/01/14
昨年末のことなのですが、空き巣に入られ、PowerPC Macを盗まれてしまいました。現状、ビルド関係やテストを行うことができないこともあり、今後このバイナリのアップデートは予定しておりません。っていうかできません。
deadzone 2006/12/10
最近のx264のオプションにdeadzoneというものがついたらしい。よくはわからないけど、デフォルトより小さい値をセットすると、輪郭などのディテールが向上する、、、らしい。
というわけで、実験的に搭載してみました。ビットレートが高い時に効き目が出てくるみたいなので、そのように設定しています。
ちなみに、こんな感じ
i_luma_deadzone
normal-> 11
high -> 9
very high -> 7
i_luma_deadzone
normal-> 11
high -> 9
very high -> 7
CPU使用率 2006/11/23
プログラムの終了処理の挙動を改良しようとしていたところ、偶然にもCPU使用率の問題を発見。EspOSXLightの動作中のCPU使用率は、平均して135%(2Coreなので)。
全然、全開まで使っていないじゃん。いろいろ調べていると、どうやらnice や setpriorityなどでは、改善しないみたい。つまり、コードの中に効率的にCPUを使うようにスレッドルーチンを組み込む必要がある。というわけで、どうしようか考えています。
簡単に考えると、sequentialな処理だけど、各コンポーネントに処理を非同期に行わせて良い場合なので、、、
あー、わけがわからなくなるパターンだなこりゃ。
Deinterlace 2006/11/18
最近、デインターレース機能についていろいろ考えています。というのも、libavcodecのデインターレース機能はちょっとしょぼくて、出来上がったもののクオリティがあまり良くないからです。今は、強引にインターレースのジャギー付きの画像でエンコードして、プレイヤーで解除していますが、この方法でムービーを作ると、プレイヤーを選択しなくてはいけなくなります。
という訳で、いろんなソースをあたり始めているのですが、いわゆるアルゴリズムのソースなので、よーわかりません。個人的に、VLCプレイヤーのブレンドフィルタをターゲットにエンコードステージにインポートしたいなと野望をもっています。
音声の波打ち-その後 2006/11/11
QuicktimeでMP4ムービーを再生しているときに生じる、音声の不具合なのですが、原因は特定できませんでした。MP4Optimizeを使ってもQuicktimeだけ再生がおかしくなるんですよ、音声のみのムービーを作っても。
で、Quicktimeの'可能な場合は高品質な、、、'っていうオプションを有効にしたところ、よくなった、、、ような気がします。
音声の波打ち 2006/10/30
何故かQuicktimeで再生すると音声が波打つように聞こえるわけですが、ちょっと原因が分からず仮説を考えている状況です。
多分、パケットデータをもっときちんと並べてあげる必要があるんだろうな、ってことを思っています。これは簡単にできますが、試すには時間がないなー。
まあ、VLCで再生すると問題無いんですけどね。うーむ。
Dual Core 2006/10/29
うちのマックは、Intel Core 2 Duo を搭載していて、実質CPUが2つ乗っている状態です。そこで、試しにpthreadやx264の設定を複数CPUにしたところ1.4倍ぐらいにエンコードがスピードアップしました。調子がいいと20FPSぐらいでちゃいます。
ということで、multi threadを考慮して再コンパイルしたバージョンをアップしました。
ブランク 2006/10/29
結構前回の改良から日にちが経っていて、特にAPIや仕様の変更があったのを知らずにビルドしてバグ発生なことが結構ありました。うーん、変更ログとかみていたんですけどね、やっぱり作ってテストをすると結構認識とことなる部分てあるもんですね。
というわけで、IntelMac版は、ほぼ収束してきました。いい感じだと思います。
EspOSXLight 2006/10/29
MacOSX (IntelCPU用) Lightバージョンを公開しました。
と同時に問題が。どういうわけか、生成されたムービの再生がQuicktimeではスムースに再生されてくれません。ビットレートが2.4Mbpsだから悪いのかわかりませんが、とにかくなんかおかしいです。音声が波打って聞こえます。
作成にあたり、内部エンジンには全く手を加えていないので、更新したライブラリ等も疑ってみましたが、白でした。ちなみに、VLCでは全く問題なく再生されます。
うーむ。ま、いっか。
EspOSXLight 2006/10/28
できました。Mac Light版。制御もほぼ完璧。もうすぐ公開できそう。
EspOSXLight 2006/10/28
思い立ったが吉日。作成中。期限今日まで。でも出来上がるのはいつのことやら。とりあえず現時点でエンコードとストップ処理ができ、モノは動く状態です。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (EspOSXL1111.jpg)
Rosetta 2006/10/08
Intel Macに搭載されている、エミュレーションのような機能のRosettaで、PPCビルドを動かしてみちゃいました。以前メインだった、PowerPC G4 PowerBookといい勝負なぐらいのスピードが出てました。
はっきり言って驚き。想像以上に速いんだねあれ。Macいいんじゃない。Windowsマシン買わなくても、今のマックならWindows入れられるし。生活のなかのパソコンとしてはMacがやはりベストでしょう。
話がそれましたー。
Interlaced output 2006/10/07
x264に実装された(そうな)インターレース出力をテストしてみました。結果として、どうやったら再生できるんだ。というところで終了しました。
はっきり言って、再生環境が整っていないようです。Quicktimeは白くなって音声のみになりましたし、VLCはソフトが固まって、強制終了しなければいけませんでした。
というわけで、面白い進歩ではあるインターレース出力ですが、まだ周りの環境が整っていない状況のようです。
インターレース 2006/10/05
最近、libx264でインターレースサポートがなされたようですね。今まで私のソフトでは、インターレース素材をそのままエンコードするって感じに、力技でなんちゃってインターレース出力をしていたのですが、この本質的な対応によってどうかわるのか、調査中です。
っていいながらも、あまり調査してないんですけどね。
Intel Mac Binary 2006/10/01
できました。Intel Mac版バイナリ。恐ろしく速いです。明らかにPPC G4の頃とは比べ物にならない速さがでています。
libx264のIntel Mac の正しい形式でバイナリを作る方法としては、common/i386/i386.asm にパッチを当てることで正しいバイナリが生成できます。
以下その方法、 ; section instead until NASM is fixed. %macro SECTION_RODATA 0 ; %ifidn __OUTPUT_FORMAT__,macho ; SECTION .text ; fakegot: ; %else SECTION .rodata data align=16 ; %endif %endmacro
って感じでコメントアウトします。アラインメントの問題だそうです。
Intel Mac build 2006/09/29
Intel Mac バージョンでレッツトライ。とりあえず、すべてのライブラリをコンパイルできたとこまできましたが、libx264へ制御が移った瞬間に、
packet: video stream duration 3003 ffmpeg: cur 37419 - out 3003 - real 3003 - diff 0 sys: video processing 1 Illegal instruction
ってなって落ちました。調べてみると、x264_encoder_encode() で落ちてるみたい。よくわからんが、MacとPPCとIntelのごちゃごちゃなところで問題があるのだろうか。 今日はとりあえずこんな感じで。うーんコンパイルのオプションが悪いのか、よく探ってみなくては。