这是一本关于使用C/C++语言进行多媒体编程的书,其内容重点放在代码优化上面,也就是如何将相对简单的原理性代码优化为具有实用价值的、高效、稳定的程序。内容共有12章,分别介绍了数字图像、数字视频的一些基本概念和常用的编码解码过程,以及后期处理的重要函数。第1章为程序优化,介绍程序优化的基本原则和方法。第2章为数字图像、数字视频基础。第3章为get_bits函数。第4章为CABAC过程。第5章为IDCT反离散余弦变换。第6章为空间预测。第7章为矩阵置换。第8章为去隔行。第9章为图像处理。第10章为MMX整数运算在音频解码中的使用。第11章为大整数运算。第12章为多线程开发。
本书是一本使用C/C++语言进行多媒体编程的书,其内容重点放在代码优化上面,也就是如何将相对简单的原理性代码优化为具有实用价值的、高效、稳定的程序。书中的代码大部分是C代码,MMX、SSEZ的版本都在本书所附的光盘中的工程范例里面。
本书内容共有12章,分别介绍了数字图像、数字视频的一些基本概念和常用的编码解码过程,以及后期处理的重要函数。章节安排如下:第1章为程序优化,主要介绍程序优化的基本原则和方法;第2章为数字图像、数字视频基础;第3章为get_bits函数;第4章为CABAC过程;第5章为IDCT反离散余弦变换;第6章为空间预测;第7章为矩阵置换;第8章为去隔行;第9章为图像处理;第10章为MMX整数运算在音频解码中的使用;第11章为大整数运算;第12章为多线程开发。
本书主要作为信息专业技术人才知识更新工程指定教材,也可作为普通高等学校计算机及相关专业的教材。同时,除了适合从事多媒体开发的程序员作为参考材料以外,也可作为计算机相关专业硕士生的有关多媒体的补充材料。
丛书序
本书序
前言
第1章 程序优化
1.1 确定需要优化的重点——性能瓶颈
1.2 循环展开
1.3 分支程序
1.4 乘法和除法、定点和浮点
1.5 表格的使用
1.6 SIMD技术的使用
1.7 数据纠错
第2章 数字图像、数字视频基础
2.1 RGB位图和RGB格式
2.2 RGB 16、24、32 的转换
2.3 YUV格式
2.4 YUV格式之间的转换
2.5 RGB到YUV的转换
2.6 YUV到RGB的转换
2.7 数字视频压缩和相关标准
第3章 get_bits函数
3.1 get_bits操作
3.2 常见的C语言实现
3.3 改进版本
3.4 MMX版本
3.5 性能测试
第4章 CABAC过程
4.1 CABAC介绍
4.2 CABAC的解码器程序
4.3 CABAC的解码器优化
4.4 C代码
4.5 MMX优化
第5章 IDCT反离散余弦变换
5.1 二维反余弦变换的基本算法:AAN和2D算法
5.2 快速算法和快速通道的结合
5.3 快速通道的MMX优化
第6章 空间预测
6.1 空间预测的基本方式
6.2 MMX技术在空间预测上的应用
第7章 矩阵置换
7.1 矩阵置换的C函数
7.2 MMX、SSE2优化
7.3 性能测试
7.4 使用矩阵转置进行位图的旋转
第8章 去隔行
8.1 隔行图像毛刺现象的成因
8.2 测试用例
8.3 去隔行API
第9章 图像处理
9.1 RGB色度、亮度的调整
9.2 YUV色度、亮度的调整
9.3 图像的锐化
9.4 图像的缩放
9.5 图像的旋转
第10章 MMX整数运算在音频数码中的使用
10.1 利用MMX PMADDWD指令实现高精度乘法的原理
10.2 程序实现
第11章 大整数运算
11.1 大整数的表示
11.2 大整数加法
11.3 大整数减法和大整数取反
11.4 大整数比较和移位
11.5 大整数乘法
11.6 大整数除法
11.7 大整数开平方
11.8 用十进制字符串表示二进制大整数
11.9 用C++封装大整数类型
11.10 大数割圆法
第12章 多线程开发
12.1 线程模型
12.2 设计原则
12.3 测试用例