国家人力资源和社会保障部、国家工业和信息化部信息专业技术人才知识更新工程(“653工程”)指定教材 C/C++ 多媒体开发案例实战
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 《国家人力资源和社会保障部、国家工业和信息化部信息专业技术人才知识更新工程(“653工程”)指定教材 》编委会 主编
出 版 社: 中国电力出版社
出版时间: 2008-9-1字数: 595000版次: 1页数: 406印刷时间: 2008/09/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787508372143包装: 平装内容简介
本书是一本使用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.6SIMD技术的使用
1.7数据纠错
第2章数字图像、数字视频基础
2.1RGB位图和RGB格式
2.2RGB16、24、32的转换
2.3Yuv格式
2.4YUV格式之间的转换
2.5RGB到YUV的转换
2.6Yuv到RGB的转换
2.7数字视频压缩和相关标准
第3章get_bits函数
3.1get_bits操作
3.2常见的C语言实现
3.3改进版本
3.4MMX版本
3.5性能测试
第4章CABAC过程
4.1CABAC介绍
4.2CABAC的解码器程序
4.3CABAC的解码器优化
4.4C代码
4.5MMX优化
第5章IDCT反离散余弦变换
5.1二维反余弦变换的基本算法:AAN和2D算法
5.2快速算法和快速通道的结合
5.3快速通道的MMX优化
第6章空间预测
6.1空间预测的基本方式
6.2MMX技术在空间预测上的应用
第7章矩阵置换
7.1矩阵置换的C函数
7.2MMX、SSE2优化
7.3性能测试
7.4使用矩阵转置进行位图的旋转
第8章去隔行
8.1隔行图像毛刺现象的成因
8.2测试用例
8.3去隔行API
第9章图像处理
9.1RGB色度、亮度的调整
9.2YUV色度、亮度的调整
9.3图像的锐化
……
第10章MMX整数运算在音频解码中的使用
第11章大整数运算
第12章多线程开发
书摘插图
第1章程序优化
1.1确定需要优化的重点——性能瓶颈
一般来说,多媒体程序使用C语言开发,Visual C(简称VC)环境下,具体适用于SIMD技术的函数,使用ASM函数,或者在C函数内部使用_asm{}语句块。
做多媒体开发的时候,一般情况下,我们很少从0开始写一个模块,基本上是由一个能初步运行的代码再作一些改动就可以了,这中间很重要的一部分工作就是性能优化。
作为商用软件,虽然性能指标很重要,但是开发代价也是必须要考虑的。
优化工作的基本思路,简单地说,就是提升模块中运行时最为耗时的代码的执行速度,也就是把优化的重点指向性能瓶颈部分。所以开始动手优化之前的工作,或者说优化的第一步,就是要确定对哪里进行优化。对于整个模块来说,要确定耗时的函数;对于一个函数来说,要确定耗时的语句。
……