C1-1 进制与信息编码

任务一:用(0)和(1)绘图

二进制绘图

C1-1 进制与信息编码_第1张图片

任务二:掌握进制编辑器

进制

十进制,二进制,十六进制,八进制

转换

4个二进制为十六进制,3个二机制为八进制,
十进制转二进制可用1,2,4,8,16,32去一个一个的去凑

1.我们截一张8×8的纯白bng格式的图片,将其用进制编辑器打开

C1-1 进制与信息编码_第2张图片

2.分析PNG格式

C1-1 进制与信息编码_第3张图片

首先是文件头标识,标识它是png文件:(00-07,00000000){89 50 4E 47 0D 0A 1A 0A}

接下来就是IHDR数据块:

       IHDR头块长度为13: (08-0B,00000000){00 00 00 0D}------【(0D)16=(13)10】

             IHDR 标识 :        (0C-0F,00000000){49 48 44 52}

下面就是IHDR实际内容了

        图像的宽为8像素      (00-03,00000010){00 00 00 08}

        图像的高为8像素      (04-07,00000010){00 00 00 08}

       后面的

       {08}表示色深,这里是2^8=256,即这是一个256色的图像

       {06}颜色类型,查表可知这是带α通道数据的真彩色图像

       {00}PNG Spec规定此处总为0(非0值为将来使用更好的压缩方法预留),表示使压缩方法(LZ77派生算法)

       {00}非隔行扫描

       {C4 0F BE 8B}CRC校验

其他块的分析方法类似,比如接下来的就是tEXt块了,很简单,不做分析了。(当然这里还有重要的IDAT块,这是图像的实际内容)

具体的PNG文件格式学习请参考:PNG文件格式详解

扩展:修改游戏存档

       这块就是对上面 进制编辑器的运用 作为一个小的实战练习,除了植物大战僵尸,大家还可以找一些类似的游戏练习一下,我之前做过就不再这里展示了。

自测

题目1:110101010001转十六进制是多少? 有什么最快的计算方法能得到结果?

二 进 制 :1101 0101 0001

十六进制: D       5     1

将二进制数分为4个一组,最前面少位的补0,转化为十六进制数再组合起来就是结果。

题目2:101011.101011对应的十进制数是多少?

(101011.101011)2=1*2^5+0*2^4+1*2^3+0*2^2+1*2^1+1*2^0+1*2^-1+0*2^-2+1*2^-3+0*2^-4+1*2^-5+1*2^-6=(43.671875)10

题目3:常见的音频编码格式有哪些?

PCM编码,WAV格式,MP3编码,OGG编码,MPC编码,mp3PRO编码,WMA格式,RA格式,APE格式

题目4:常见的视频编码格式有哪些?

现在常见的,H264 , VP8, AVS, RMVB,WMV,QuickTime(mov)

现在 未来可能流行的H265, VP9, AV1(最可能成为主流),

现在不太常见或者小众的:

H263,H261, MPEG2, MPEG4, RMHD(RMVB升级版本),etc

题目5:一个尺寸8×8大小的png全黑图片前四个字节的十六进制值是什么?

89 50 4e 47(见上面PNG格式分析)

题目6:UTF8三字节的编码方式为∶1110xxxx 10xxxx 10xxxx,汉字【中】的Unicode编码十六进制值是0x4e2d,Unicode编码按三字节编码转换到十六进制的UTF8编码的计算过程是什么?

十六进制:    4       e        2       d      (0x4e2d)

 二 进 制:0100  1110  0010  1101

utf-8的三字节 1110xxxx 10xxxxxx 10xxxxxx

从地位到高位一一对应,位数不够就用0补位

(utf-8 )二  进 制:11100100 10111000 10101101

 (utf-8)十六进制:    E   4         B   8         A   D    

题目7:如果要提供一个实时的流媒体服务器,除了ffm peg,还需要使用哪个组件?

实时流媒体服务器除了ffmpeg还需要啥
主要有四个东西
1.ffmpeg 2.ffserver 3.ffserver.conf 4.feed1.ffm
1. ffmpeg,负责媒体文件的transcode工作,把你服务器上的源媒体文件转换成要发送出去的流媒体文件。
 
2. ffserver,负责响应客户端的流媒体请求,把流媒体数据发送给客户端。
 
3.ffserver.conf,ffserver启动时的配置文件,在这个文件中主要是对网络协议,缓存文件feed1.ffm(见下述)和要发送的流媒体文件的格式参数做具体的设定。
 
4.feed1.ffm,可以看成是一个流媒体数据的缓存文件,ffmpeg把转码好的数据发送给ffserver,如果没有客户端连接请求,ffserver把数据缓存到该文件中。

 

 

你可能感兴趣的:(程序人生,恰饭,经验分享,其他)