图像和视频的主要格式与编码格式。 您所在的位置:网站首页 图像常见的格式 图像和视频的主要格式与编码格式。

图像和视频的主要格式与编码格式。

2023-05-20 07:42| 来源: 网络整理| 查看: 265

图像格式

图像的基本数据结构:RGB,RGBA,A为透明通道。图像是二维数据,数据在内存中只能一维存储,二维转一维有不同的对应方式。比较常见的只有两种方式: 按像素“行排列”从上往下或者从下往上。

不过好像只有bmp图片格式以及windows下的GDI,GDI+是从下往上排列,其它比如DirectX,OpenGL,Cocoa(NSImage, UIImage),OpenCV等都是从上往下排列。

不同图形库中每个像素点中RGBA的排序顺序可能不一样。有可能是RGB,RBG等六种情况。如果是RGB24位图,会存在一个32位对齐的问题,也就是内存对齐。先介绍x86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义。cpu的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量,依次类推。在x86体系下,cpu一次处理32整数倍的数据会更快,图像处理中经常会按行为单位来处理像素。24位图,宽度不是4的倍数时,其行字节数将不是32整数倍。这时可以采取在行尾添加冗余数据的方式,使其行字节数为32的倍数。

 jpeg,png文件之于图像,就相当于zip,rar格式之于普通文件(用zip,rar格式对普通文件进行压缩)。用到压缩算法。

BMP格式

bmp格式没有压缩像素格式,存储在文件中时先有文件头、再图像头、后面就都是像素数据了,上下颠倒存储。 用windows自带的mspaint工具保存bmp格式时,可以发现有四种bmp可供选择: 单色: 一个像素只占一位,要么是0,要么是1,所以只能存储黑白信息 16色位图: 一个像素4位,有16种颜色可选 256色位图: 一个像素8位,有256种颜色可选 24位位图: 就是图(1)所示的位图,颜色可有2^24种可选,对于人眼来说完全足够了。

这里为了简单起见,只详细讨论最常见的24位图的bmp格式。

文件头信息:

bfType=2字节:一定为19778,其转化为十六进制为0x4d42,对应的字符串为BM。

bfSize=4字节:文件大小

bfReserved1=2;一般为0 

bfReserved2=2;一般为0 

bfOffBits=4:从文件开始处到像素数据的偏移,也就是这两个结构体大小之和.

bmp图片结构头 字段大小(字节) 描述  biSize 4此结构体的大小  biWidth 4 图像的宽biHeight  4图像的高 biPlanes  2图像的帧数,一般为1 biBitCount  2一像素所占的位数,一般是24biCompression  4一般为0 biSizeImage  4像素数据所占大小,即上面结构体中文件大小减去偏移(bfSize-bfOffBits) biXPelsPerMeter  4 一般为0biXPelsPerMeter  4  一般为0biClrUsed  4  一般为0biClrImportant  4  一般为0

 

bmp格式也是可以压缩.bmp格式也可以有颜色板。颜色板就是一个颜色的索引,上面说过bmp格式一个像素可以只有2个,16个或256个取值。就拿单色位图来说明,默认为0对应RGB(0,0,0) 1,对应RGB(255, 255, 255) 如果颜色板这样定义:  0对应 RGB(255,0, 0)红 1对应 RGB(0, 255, 0)绿 这样黑白图就成了红绿图 JPEG格式 jpeg是有损压缩格式, 将像素信息用jpeg保存成文件再读取出来,其中某些像素值会有少许变化。在保存时有个质量参数可在[0,100]之间选择,参数越大图片就越保真,但图片的体积也就越大。一般情况下选择70或80就足够了。jpeg没有透明信息。jpeg比较适合用来存储相机拍出来的照片,这类图像用jpeg压缩后的体积比较小。其使用的具体算法核心是离散余弦变换、Huffman编码、算术编码等技术,有兴趣的同学可以在网上找一大堆资料,本文就不详细介绍了。 PNG格式 png是一种无损压缩格式, 压缩大概是用行程编码算法。png可以有透明效果。png比较适合适量图,几何图。 比如本文中出现的这些图都是用png保存,比用joeg保存体积要小。

再强调一下: jpeg比较适合存储色彩“杂乱”的拍摄图片,png比较适合存储几何特征强的图形类图片。

GIF格式

上面提到的bmp,jpeg,png图片都只有一帧,而gif可以保存多帧图像.gif中有个参数可以控制图片变化的快慢。在程序中可以使用这个参数,也可以自己定义一个参数,这就是为什么gif图片,在不同程序中查看时其变化速度不一样。

webp

google开发的一种有损、透明图片格式,相当于jpeg和png的合体,google声称其可以把图片大小减少40%。

视频格式

视频文件格式(简称:文件格式),视频封装格式(简称:视频格式),视频编码方式(简称:视频编码)。

文件格式:windows设置后缀名的目的是让相应的应用程序来打开相应的文件。可以随意更改后缀名,不会更改文件的内部数据格式。

视频封装格式:一种存储视频信息的容器。视频封装格式不同,也不会影响视频数据,主要是一种对视频数据的组合。因此,视频转换需要设置的本质就是:A设置需要的视频编码、B设置需要的音频编码、C选择需要的容器封装。一个完整的视频转换设置都至少包括了上面3个步骤。主要格式如下:

视频编码格式:对原始视频数据进行编码或解码的程序或算法。属于有损压缩。

1.h26x系列。

2.MPEG系列等。

现在我用的是MPEG封装,h264编码,MP4后缀名。

H.264分为Baseline Profile,Main Profile和High Profile,代表编码复杂程度。

H.264编码的GOP(Group of Picture)是由关键帧I,预测帧P、B组成。GOP越长,一个循环中包含的预测帧也就越多,压缩率越高,编解码难度越高,越不容易精确到帧(视频编辑要求精确到每一帧,也就是每一秒可以分离成24/29/30个画面)。使用是目前最理想的方案。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有