libvorbis SSE高速化パッチ Lancer 20060131 |
$Revision: 1.13 $ |
$Date: 2006-01-31 12:34:05+09 $ |
このプログラムについて |
Xiph.org Foundationによりパテントフリーな音声圧縮技術として開発されたOgg Vorbisのエンコード/デコード速度を高速化するパッチです。
動作環境 |
CPU SSE拡張命令をサポートしているCPU
Intel(R) Pentium3以降の製品
AMD AthlonXP以降の製品OS Windows95/NT不可(SSE非対応のため)
配布パッケージの説明 |
よくある質問 |
参考
47275244バイトの44.1KHz, 2chのWAVファイルをq4でエンコードした場合のoggファイルの出力結果 (aoTuV pb4-20050412使用) |
使用したエンコーダ | 出力されたoggファイルのバイト数 |
GCC FPU使用 | 4,668,312 |
GCC SSE使用 | 4,668,381 |
ICL(P3 optimized) | 4,668,483 |
Lancer 20050528 | 4,668,403 |
技術情報 |
このパッチは以下の環境でコンパイル可能なことを確認しています。
gcc version 3.3.1 (mingw special 20030804-1)
Visual Studio .NET 2003+Intel C++ Compiler 9.0.022
gcc 3.4では正常に動作せず(gcc 3.4 is not available.)
コンパイル時にはシンボル__SSE__が定義されている必要があります。gccのみ__SSE2__を定義することによってSSE2対応になります。
gprofでは検出できませんがblock.cとmapping.cにあるmemcpy,
memoveでかなりの処理時間が掛かっています。
更新履歴 |
2006/01/31 Lancer 20060131
liboggを1.1.3にアップデート
oggencをVer.2.8にアップデート
oggdropXPdを1.8.7にバージョンアップ
mapping_forward, _2classのSSE最適化でICLの解析不完全に対応
2005/11/21 Lancer 20051121
ベースコードをaotuv-b4.51_20051117に変更
2005/11/18 Lancer 20051118
ベースコードをaotuv-b4.5_20051105に変更
ICLを9.0.022にバージョンアップ
psy.c内の無駄な定数テーブルを削除
メンテナンス向上のためgcc用とICL用に分かれていたコードを統一
2005/08/13
ICLを9.0.021にバージョンアップ
oggdropXPdを1.8.6にバージョンアップ
libvorbis.dllをリリース
2005/07/09 Lancer 20050709
ベースコードをaotuv-b4_20050617_111mergedに変更
ICLを9.0.020にバージョンアップ
コンパイル時のワーニングを消去、抑制
ICLの最適化オプションを見直し
2005/06/21 Lancer 20050621
ベースコードをaotuv-b4_20050617に変更
ICLを9.0.019にバージョンアップ
min_indemnity_dipole_hypot_psをb4に合わせ修正
_vp_offset_and_mixをb4に合わせ修正
_vp_coupleをb4に合わせ修正
oggencをVer.2.6にアップデート
oggencのワイルドカード機能を凍結
oggdropXPdをVer.1.8.4にアップデート
2005/05/28 Lancer 20050528_1
oggenc2.exeでのパイプ経由でのエンコードの不具合を修正
2005/05/28 Lancer 20050528
Archer RC4から移行
ICLを8.1.026にバージョンアップ
ICLの2パス最適化コンパイルを使用開始
ベースコードをaotuv-pb4_20050412に変更
バージョン表記を日付のみに変更
バージョン管理にrcsを導入
oggencをoggenc2 Ver.2.5にアップデート
oggenc2のエンコード処理時間の計測精度向上
oggenc2をワイルドカード入力に対応(日本語対応?)
oggdropXPdをVer.1.8.3にアップデート
oggdropXPdのアニメーションイメージを変更
リサンプル用ライブラリlibsamplerateを導入
コンパイル時のワーニングを消去、抑制
DLLのUPX圧縮を廃止
ICL用とGCC用にコードを分離
3〜4命令の連結スケジューリング最適化を実施(ICLのみ)
キャッシュ関連最適化を廃止
メモリアクセスを_mm_load_ps, _mm_store_ps等で統一
GCC専用SSE2コードの追加
FFTコードの再SSE最適化
min_indemnity_dipole_hypot_psを追加
sqrtpsをrsqrtpsを使用した高速化コードに変更
mapping_forward内で確保後未使用のバッファを一時バッファに転用
bark_noise_hybridmp内でSSE最適化を追加
_vp_offset_and_mixにSSE最適化を追加
_vp_offset_and_mix内でSSE最適化を変更、追加
_vp_offset_and_mix内で使用されていない無駄な最適化部を削除
max_seedsを一部SSE最適化
seed_curveのSSE最適化を変更
_vp_coupleをpb4の変更に合わせてSSE最適化
_2classのSSE最適化を変更
mdct_backwardのSSE最適化を変更
vorbis_book_decodevv_addのSSE最適化を変更
ov_read_float2pcmのSSE最適化を変更
免責事項 |
このプログラムを使用したことにより生じたいかなる損害も当方は一切責任を持ちません。
自己責任の上でのご利用をお願いします。
著作権について |
このパッチはパブリック・ドメインとします。配布・転載は自由です。
THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2005
by the Xiph.org Foundation, http://www.xiph.org/