自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 H264码流解析

h264理论知识参考。

2023-11-03 11:42:51 40

原创 BMP基础

BMP是比较常见的使用RGB模式的文件格式,BMP全称Bitmap-File,是微软出的图像文件格式。BMP 格式 由以下部分组成。BMP文件是由BITMAPFILEHEADER、BITMAPINFOHEADER、RGB像素数据共3个部分构成,它的结构如下图所示。

2023-11-02 11:52:19 51

原创 YUV基础

YUV中的Y代表亮度,U代表色调,V代表色饱和度。平时看到的YCbCr,其实就是YUV的一种,Cb就是U,Cr就是V。

2023-11-02 10:12:32 42

原创 策略模式

  定义:定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。Strategy及其子类为组件提供了一系列可重用的算法,从而可以使得类型在运行时方便地根据需要在各个算法之间进行切换;Strategy模式提供了用条件判断语句以外的另一种选择,消除条件判断语句,就是在解耦合。含有许多条件判断语句的代码通常都需要Strategy模式。如果Strategy对象没有实例变量,那么各个上下文可以共享一个Strategy对象,从而

2020-10-31 15:22:48 153

原创 设计原则

1. 单一职责原则(SRP: The Single Responsibility Principle)一个类应该仅有一个引起它变化的原因;变化的方向隐含着类的责任。2. 开放-封闭原则(OCP: The Open Closed Principle)open——模块的行为必须是开放的、支持扩展的,而不是僵化的。closed——在对模块的功能进行扩展时,不应该影响或大规模影响已有的程序模块。一句话概括:一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。核心思想就是对抽象编程,而不对具

2020-10-31 09:53:37 64

原创 状态模式

  状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。它将一群行为封装在状态对象中,context的行为随时可委托到那些状态对象中的一个。随着时间的流逝,当前状态在状态对象中游走改变,以反映出context内部的状态,因此context的行为也会跟着改变。但是context的客户对于状态对象了解不多,甚至是浑然不觉。  状态模式类图如下所示:Context(上下文)是一个类,它可以拥有一些内部状态。不管什么时候,只要有人调用Context的request()方法,它就会被委托

2020-10-25 16:22:52 166

原创 【深入理解计算机系统】IEEE浮点表示

一、基本表示  在IEEE标准中,一个浮点数表示如下:V=(−1)s×M×2EV=(-1)^s\times M\times 2^EV=(−1)s×M×2E其中:s表示符号(sign),s=1表示负数,s=0表示正数;M表示尾数(significand);E表示阶码(exponent)。  在单精度浮点格式中,符号位、阶码和尾数的位数分别为1、8、23;在双精度浮点数中,符号位、阶码和尾数的位数分别为1、11、52。二、三种情况1.规格化值  当阶码的编码不全为0且不全为1时,该浮点数

2020-07-07 10:24:46 590

原创 【深入理解计算机系统】虚拟地址空间

  虚拟地址空间由大量准确定义的区构成,每个区都有专门的功能,这些区又分为两大部分:内核空间和用户空间。虚拟地址空间的构成如下图所示:程序代码和数据:对所有进程来说,代码是从同一固定地址开始的,紧接着的是和全局变量相对应的数据位置。代码和数据区是按照可执行目标文件的内容初始化的。堆:代码和数据区后是运行时堆。当使用malloc和free这样的C标准库时,堆可以在运行时动态地扩展和收缩。共享库:大约在地址空间的中间部分是一块用来存放像C标准库函数和数学库这样的共享库的代码和数据的区域。栈:位于虚拟

2020-06-21 15:32:33 391

原创 【深入理解计算机系统】C语言编译过程

  C语言的编译过程分为四个阶段:预处理、编译、汇编链接,其过程如下图所示,其中hello.c是一个输出字符串“hello world”的C程序。预处理阶段:预处理器(cpp)根据以字符#开头的命令,修改原始的C程序,得到一个新的C程序,保存为预编译文件,以.i作为文件扩展名。编译阶段:编译器(ccl)将预编译文件转换成汇编语言程序,保存为汇编文件,文件扩展名为.s。汇编阶段:汇编器(as)将汇编文件转换为机器码,生成可重定位目标文件,文件扩展名为.o,这是一个二进制文件。链接阶段:链接器(ld

2020-06-20 11:02:02 201

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除