アセンブラWAVプログラミング
SIMDによる高速化と音響処理
- 著者 北山洋幸
- 判型 B5変型判、320頁
- 本体価格 3,800円
- CD-ROM付き
- ISBN 978-4-87783-244-5
本書について
CPUやハードウェアなどの知識を蓄えることは現代においても重要です。ソフトウェアエンジニアであっても、レベルの高い開発に携わりたいなら、CPUやハードウェアの基礎を習得することは大事です。とは言え、コンピュータ全体を理解するのは並大抵ではありません。
本書では、系統立てて細かなアセンブリ命令を解説する訳ではなく、興味を持ちながらCPUの一端を理解することを目的とします。比較的簡単な音響処理をC++/アセンブリ言語/SIMD命令を含むアセンブリ言語で開発します。単にアセンブリ命令の羅列を解説しても、退屈なだけで楽しく学習することはできません。そこで、このように簡単なアプリケーションソフトウェアを、C++言語と対比しながらアセンブリ言語で開発することとしました。また、単にx86のアセンブリ命令だけでなく、SIMD命令まで含め、より高度な知識を習得することも目的とします。
本書の読者対象は、
・アセンブリ言語を学習したい人
・SIMD命令を学習したい人
・音響プログラミング入門者
です。
目 次
- 第0章 導入部
- 第1章 左チャンネルを無音化
- 1-1 共通処理の説明
- 1-2 左チャンネル無音化をC言語で実装
- 1-3 左チャンネル無音化をアセンブリ言語で実装
- 1-4 左チャンネル無音化をSIMD命令で実装(SSE2命令まで)
- 1-5 左チャンネル無音化をSSSE3命令で実装
- 第2章 右チャンネルを無音化
- 2-1 WAVファイル処理用クラスの開発
- 2-2 右チャンネルを無音化
- 2-3 SSSE3命令を使用して実装
- 第3章 チャンネル入れ換え
- 3-1 概要
- 3-2 C++言語/SIMD命令で入れ換え
- 3-3 SIMD命令で入れ換え・その2
- 3-4 SSSE3命令で入れ換え
- 第4章 モノラル化
- 4-1 概要
- 4-2 C++言語/アセンブリ言語で左チャンネルからモノラル化
- 4-3 SIMD命令で左チャンネルからモノラル化
- 4-4 SIMD命令で右チャンネルからモノラル化
- 4-5 C++言語/SIMD命令で右チャンネルからモノラルWAVファイルを生成
- 4-6 SSSE3命令で右チャンネルからモノラル化
- 4-7 SSSE3命令で右チャンネルからモノラルWAVファイルを生成
- 4-8 C++言語/SIMD命令で左右チャンネルを合成してモノラルWAVファイルを生成
- 4-9 SSSE3命令で左右チャンネルを合成してモノラルWAVファイルを生成
- 4-10 8ビットWAVデータと16ビットWAVデータの符号化について
- 第5章 サンプリングビット数の変換
- 5-1 概要
- 5-2 C++言語/SIMD命令で16ビットWAVファイルを8ビットWAVファイルへ
- 5-3 SSSE3命令で16ビットWAVファイルを8ビットWAVファイルへ
- 5-4 C++言語/SIMD命令で8ビットWAVファイルを16ビットWAVファイルへ
- 5-5 SSSE3命令で8ビットWAVファイルを16ビットWAVファイルへ
- 第6章 カラオケ化
- 6-1 概要
- 6-2 C++言語/アセンブリ言語でボーカルを削除
- 6-3 SIMD命令でボーカルを削除
- 6-4 SSSE3命令でボーカルを削除
- 第7章 二重唱
- 7-1 概要
- 7-2 C++言語/SIMD命令で二重唱
- 第8章 エコー
- 8-1 概要
- 8-2 C++言語/SIMD命令でエコー処理
- 8-3 浮動小数点を使用したエコー処理
- 第9章 モノラルを疑似ステレオ化
- 9-1 概要
- 9-2 C++言語/SIMD命令でモノラルを疑似ステレオ化
- 9-3 SSSE3命令でモノラルを疑似ステレオ化
- 9-4 モノラルをステレオ化する別の方法
- 第10章 二つの音源の算術処理
- 10-1 二つの音源を減算(差分)
- 10-2 二つの音源を加算
- 第11章 二つの音源を合成
- 11-1 概要
- 11-2 C++言語/アセンブリ言語で二つの音源を合成
- 11-4 SSSE3命令で二つの音源を合成
- 第12章 二つの音源をブレンド
- 12-1 概要
- 12-2 C++言語/アセンブリ言語で二つの音源をブレンド
- 12-3 SIMD命令で二つの音源をブレンド