文件编码IO
文章平均质量分 75
FreedomRoad~
专注于app底层/架构/算法/业务工作流程,记录进步的足迹和感悟。
展开
-
计算机数值和非数值数据编码基础
数值的存储都是小端模式:little endian,网络的传输是大端模式:big endian。1.整数用补码表示正数和0的补码是自身;负数的补码是符号位不变,其余各位取反,最后加1(加1是因为二进制最大只能表示到模减1大小)。 正数原创 2015-01-19 00:01:46 · 4890 阅读 · 0 评论 -
简单的JPEG解码程序
转载自:http://blog.csdn.net/lpt19832003/article/details/1713708// JPGFile.cpp : Defines the entry point for the console application.//#include "stdafx.h"// simplejpeg.cpp : Defines the entry p转载 2015-04-30 08:20:05 · 2850 阅读 · 2 评论 -
手机游戏中图片格式选择整理
整理自:http://zengrong.net/post/2070.htmhttp://blog.csdn.net/langresser_king/article/details/8426708http://blog.csdn.net/laogong5i0/article/details/8637425一、选择:ios上图片当然是用pvr(pvrtc4)格式,推荐pvr.c转载 2015-05-02 12:24:27 · 5382 阅读 · 0 评论 -
PVR图像文件格式初探
ios上图片当然是用pvr(pvrtc2/pvrtc4)格式,推荐pvr.ccz的rgb565/rgba4444格式。1.PVR格式优点:1. cpu上,解压速度快,读取后直接交给显卡,不需要转换为ARGB形式就可以提交个显卡。2. 内存和显存上,读取后直接提交给显卡,不用开辟临时内存来读取像素数据,避免了内存的申请释放消耗和内存的飙升。3.文件原创 2015-05-03 08:49:00 · 28385 阅读 · 0 评论 -
JPG文件格式初步认识
优点:1).照相机几乎都是保存为jpg格式,摄影作品或写实作品支持高级压缩,广泛应用于照相和互联网中。2)JPEG能提高无损和有损的高压缩比。3) JPEG一直在不断发展,JPEG 2000的压缩比更高,而且不会产生原先的基于离散余弦变换的JPEG标准产生的块状模糊瑕疵。JPEG 2000同时支持有损数据压缩和无损数据压缩。另外,JPEG 2000也支持更复杂的渐进式显示和原创 2015-05-01 22:00:58 · 4168 阅读 · 0 评论 -
Jpeglib读取jpg文件
整理自:http://hi.baidu.com/lewutian/item/e8eed42664ee61122a0f1c89http://blog.csdn.net/mcgrady_tracy/article/details/74390661.下载编译库下载库:http://www.ijg.org/ 网址下面的windows版本的。本文下载的是jpe转载 2015-05-01 23:50:09 · 6709 阅读 · 0 评论 -
PNG文件格式总结
参考文档:http://blog.csdn.net/yongzhewuwei_2008/article/details/1007130http://blog.csdn.net/flyingghost/article/details/251110http://www.cnblogs.com/xiaoxiaoboke/archive/2012/02/13/2349765.htm原创 2015-04-25 21:47:02 · 12309 阅读 · 0 评论 -
TGA文件格式整理
整理自:http://dev.gameres.com/Program/Visual/Other/TGAFormat.htmhttp://blog.csdn.net/yyfzy/article/details/785948http://tech.watchstor.com/management-115327.htmhttp://baike.baidu.com/subview/1879转载 2015-05-02 11:30:08 · 9667 阅读 · 0 评论 -
浮点数表示和需要注意的问题
// 计算机底层数字转换: //1.10进制转换为n进制,正数除以进制,倒转取余(通过16进制和2进制转换更方便);小数乘以进制数,顺序取整。 //2.N进制数转换为10进制数,Ax(2^1) + Bx(2 ^0) + Cx(2^-1)数列形式表示,无论正数负数都一样。 //3.浮点数表示:符号位,指数位(0-127表示负数,(127-256)表示正数),尾数(去掉前原创 2015-01-14 23:56:53 · 8696 阅读 · 0 评论 -
DDS文件格式
DX中开发的游戏DDS是首选,就类似ios中的pvr格式一样强大,因为那是显卡支持的。一、DX下DDS文件的优点:1.cpu上运算速度快,不需要解析为RGB数据就可以直接由DX函数加载提交给显卡渲染贴图。2.内存占用少效率高,因为不需要创建临时的内存来存放解析的数据,所以避免了内存和申请释放和内存飙升。3.压缩效率高,通过更少为位数有损压缩,但是画质也非常好,压缩效原创 2015-05-03 00:10:47 · 13816 阅读 · 0 评论 -
数字信号思想-映射接口规范-引入中间层减少错误-中间层重构-时分复用服务-客户规范接口
现代计算机技术和通信技术都是建立在数字信号上面,无论是在传输中,还是在电子装置的内部。映射接口规范:数字信号最主要是将如何采用,如何量化,和如何编码;其中最核心的思想就是映射,按照规定映射,将物理电磁波信号映射为离散的01数字,用了数学中的转换思想。所以一个大的软件架构体系,一个良好设计的体系结构,都要有提早设计好的接口映射规范(无论是面向对象的接口,还是面向过程的函数指针),当新原创 2016-07-05 09:42:03 · 881 阅读 · 0 评论 -
DDS支持的Mipmap Texture/Cubemap Texture/Volume Texture 纹理理解
1)DDS支持的mipmap Texture多级渐进纹理映射技术(DX Texture Tool 默认):在三维计算机图形的贴图渲染中有一个常用的技术被称为Mipmapping。为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MIP map 或者 mipmap。这个技术在三维游戏中被非常广泛的使用。“MIP”来自于拉丁语 multum转载 2015-05-03 00:13:50 · 5451 阅读 · 0 评论 -
deflate算法总结
一、LZ77算法基本概念LZ77算法的说明网上很多,本文为个人见解,仅供参考。本人认为LZ77算法其实是字典压缩的一个变种,与字典压缩不同的是,它的字典是动态生成的并且只有一个,一般选取一定数量的最近压缩过数据。保存 这些数据的结构叫做滑动窗口,所以LZ77有被常称作滑动窗口算法。至于这么生成字典的原因,其实很简单,因为我们认为一个要压缩的字符串很有可能与上下 文相关,也就是说很有可能转载 2015-04-21 08:55:29 · 21178 阅读 · 4 评论 -
字节字符和整数转换-大小端转换-结构体内存(文件)对齐规则之总结
1.char*,unsigned char*字节,char,unsigned char字符和整型的转换的理解char*,unsigned char*记录的就是二进制转换到的十六进制的字节码[整(整数补码(正整数还是原码负整数补码),浮点数IEEE74原码,字符编码原码),存放顺序是先入先存放的,超过一个字节就会区分大小端存放。char*,unsigned char*指针转换到char,un原创 2015-04-23 08:40:30 · 3603 阅读 · 0 评论 -
C/C++快速读写磁盘数据的方法-块读取/异步/优化分析算法/内存文件映射的原理和使用
快速读写磁盘数据的方法:1.一下子将数据读取到内存的(无论是文本还是二进制),而不是一行行的读取。2.异步的IO,创建多线程,或者使用重叠IO,IO复用,异步的事件回调通知机制(可以用事件对象,信号驱动来实现)。3.使用内存文件映射, window是CreateFileMapping,MapViewOfFile,UnmapViewOfFile,CloseHandle;linux是用原创 2015-03-08 18:18:00 · 14644 阅读 · 8 评论 -
位操作基础篇之位操作全面总结
位操作基础篇之位操作全面总结分类: C/C++/C#基础2012-03-19 09:34 42471人阅读 评论(128) 收藏 举报CC++位操作判断奇偶-交换两数-变换符号求绝对值-位操作压缩空间位操作趣味应用位操作笔试面试目录(?)[+]Title: 位操作基础篇之位操作全面总结Author: MoreWindowsE-mail:转载 2015-03-05 07:57:18 · 786 阅读 · 0 评论 -
C语言二进制文件读取解析
// FileDefine.h#ifndef _FILEDEFINE_H_#define _FILEDEFINE_H_#include using namespace std;/*文件操作,对磁盘的读写:fopen 打开模式 和 缓存区大小打开模式:r:read 读没有文件会读取失败w:write 写会清空文件,没有可以创建文件a:append 写追原创 2015-01-25 23:59:48 · 8979 阅读 · 0 评论 -
MD5算法使用简述
总结:文件的MD5算法是用二进制方式读取的文件内容(不经过任何翻译处理)作为输入的,具体运算时候会对输入进行分组筛选,四轮循环运算,得到4个unsigned long的整型,然后将存储中的小端模式翻转作为正确的一个个字符串输出。原创 2015-03-10 23:13:46 · 1149 阅读 · 0 评论 -
计算机数值中的乘法除法原理
乘法:被分解为左移累加。除法:被分解为右移累减去,减法可以转换为加法。浮点数的运算:S x 2(^F) x M浮点数是原码表示法,S符号位,F阶码 + 127, M尾数舍弃前面的1(如果FF阶码用的表示法是偏移码(无符号整型表示,并不是书本说的移码,阶码加减运算的时候,应该用了寄存器处理,不是移码运算,因为位数都不够)。浮点数加减:阶码对齐; 尾数加减,处理溢出,规格化即可转载 2015-03-05 07:55:05 · 12995 阅读 · 1 评论 -
C++文件读取操作详解
一、文件打开的方式和默认选项// 附加到末尾,原来的数据不变ios::app Opens an output file for appending.// 文件打开后定位到文件尾,ios:app就包含有此属性ios::ate Opens an existing file (either input or output) and seeks the end.//附加到末尾原来的数据原创 2015-03-11 00:01:45 · 9052 阅读 · 0 评论 -
IO性能的优化
一、加载前1.预读取,避免后面一下子读取任务太多:使用预先读取,分步读取,避免内存峰值突然上升。二、加载时2.异步加载,最有效的提高读取性能:使用多线程,异步加载,可以有效的提高读取资源的速度。3.使用内存文件映射,建立映射避免内核缓存,更快的读取速度当读取的数据较大时,可以使用内存文件映射,windows中用CreateFileMapping系列函数,原创 2015-03-13 23:11:19 · 1820 阅读 · 0 评论 -
Huffman霍夫曼压缩编码算法实现分析
/*霍夫曼编码模型:思想是压缩数据出现概率高的用短编码,出现概率低的用长编码,且每个字符编码都不一样。压缩数据单个字符出现的概率抽象为叶子节点的权值,huffman树叶子节点到根节点的编码(是父节点左子节点那么填0,否则填1)作为字符的唯一编码.实现时候需要注意的规则:1)最左的放置在左边,作为父节点的左节点。2)每次都从没有设置父节点的所用节点中(叶子和分支节点一样对待),从数组小原创 2015-04-12 20:11:16 · 5551 阅读 · 0 评论 -
结构体内存对齐规则总结-整体单个排列/成员之间没有边界只有最后的填充/最后是最大类型整数倍
int _tmain(int argc, _TCHAR* argv[]){ // 结构体读取网络和文件数据: // 结构体类型解析数据,例如从文件中直接读取到结构体中(因为写入和读取二进制时候都是相同的结构体内存对齐模式,所以字节赋值和转换值会成功) // 1.结构体内存对齐之基本原则: // 结构体内存对齐之成员和序列: // 1原创 2015-01-21 23:43:29 · 1357 阅读 · 0 评论 -
PNG图片CRC校验码的计算过程和总结
/*问题:一张PNG图片HIDR Chunk中的数据为:00 00 00 0D 49 48 44 52 00 00 00 DC 00 00 00 DC 10 06 00 00 00 4B CA 13 C2Chunk Type Code域和Chunk Data部分是:49 48 44 52 00 00 00 DC 00 00 00 DC 10 06 00 00 00如何验证用该数据计原创 2015-04-12 10:17:09 · 13135 阅读 · 2 评论 -
windows下文本文件读取和二进制文件读写的区别
一、写 二进制方式写,当遇到整型和浮点数时是以小端模式的整个十六进制值写入到文件中(和内存中一样),当遇到ascii字符和utf-16(unicode)类型的字符时候是用该编码的key值(unicode 16字节时候不作为小端模式而是书写模式存储)写入到文件中(和内存中一样)。 文本方式写,文本方式会根据当前程序使用的编码方式,将所有整型/浮点数/字符,都当做字符一个个映射到编原创 2015-03-10 08:31:48 · 7219 阅读 · 2 评论