视频压缩算法名词解释
常见视频压缩算法中的基本概念总结
视频压缩关键词
空间冗余一幅静态图像,比如人脸。背景,人脸,头发等处的亮度,颜色,都是平缓变化的。相邻的像素和色度信号值比较接近。具有强相关性,如果直接用采样数来表示亮度和色度信息,数据中存在较多的空间冗余。如果先去除冗余数据再编码,表示每个像素的平均比特数就会下降,这就是通常说的图像的帧内编码,即以减少空间冗余进行数据压缩。
时间冗余视频是时间轴方向的帧图像序列,相邻帧图像的相关性也很强。通常用降低帧间的方法来减少时间冗余。采用运动估计和运动补偿的技术满足解码重建图像的质量要求。
符号冗余用相同码表示概率不同的符号,会造成比特数的浪费。比如10,11,13三个数,如果我们都用1bytes来表示,就是3bytes(即3×8 = 24bits),但是如果我们表00b表示10,01b表示11,02b表示13,这样,三个数合起来才用了6bits,较之前可以节省18bits。可变长编码技术的原理就如此,概论大的用较短的码字,概率小的用较长的码字。
结构冗余对于图像内部,各个部分也存在某种关系。我们可以通过这种关系,减少信息的码字表达。比 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post$ hexo new "My New Post"
More info: Writing
Run server$ hexo server
More info: Server
Generate static files$ hexo generate
More info: Generating
Deploy to remote sites$ hexo deploy
More info: Deployment
fiddler界面讲解及抓包教程
学校的打卡老是忘,所以准备抓个包写一个自动打卡的脚本,这里记录一下fiddler软件的界面以及https配置和手机抓包教程。
界面介绍菜单栏不介绍,和其他应用程序一样
工具栏
winconfig: 打开对windows IE浏览器的配置气泡: 对选中的session添加被指replay: 重发选中的session叉: 删除列表中的sessionGO: 当有断点时,继续断点的运行Stream: 流模式;使用流模式不能控制服务器的响应,服务器响应什么数据就展示什么数据,流模式更接近于浏览器本身真实的行为。
不点开为缓冲模式:可控制服务器的响应,如对响应的数据进行修改等等。
Decode: 自动对数据进行解码Keep All sessions: session在列表中显示的个数target: 点击长按拖动到某一程序,可以仅查看这一进程的数据包find: 搜索某文本save: 保存列表中的session为saz文件截图: 不知道为啥需要截图定时器: 计时功能Browse: 打开浏览器Clear Cache: 清除浏览器缓存TextWizard: 编码转换窗口 ...
win10 cuda9.1安装pytorch
前言之前一直想学深度学习,奈何我的显卡是七年前的gtx970m,cuda只支持cuda9.1。去pytorch官网上看了一下没有这个版本的,所以深度学习一直只停留在理论层面。这两天好好折腾了一下,终于把pytorch装上了,下面介绍方法。
步骤
安装CUDA和cuDNN(用于深度神经网络的GPU加速库)
安装anaconda(pytorch的版本要和python的版本对应,所以需要anaconda进行版本管理,我的torch0.4.0需要python3.6)
安装pytorch和torchversionm
CUDA和cuDNN安装CUDA安装windows10 版本安装 CUDA ,需要下载两个安装包
CUDA toolkit(toolkit就是指工具包)
cuDNN
首先你需要知道自己的显卡支持的CUDA版本,桌面->右键->NVIDIA控制面板->系统信息(左下角)->组件。第三行产品名称一栏可以看到CUDA的驱动版本。去CUDA官网下载对应的toolkit(下载链接)下载好后直接双击安装就行了
注意:安装cuda时,第一次会让设置临时解压目录,第二 ...
电路元件
二极管特性: 单向导通、伏安特性二极管盗用后,它的分压是0.7v发光二极管导通后分得的电压为1-2V,电流值为5-20mAV正向电压很小时二极管不导通,二极管正向导通电压为0.5V
稳压二极管、
整流二极管用于把交流电编程脉动直流电
开关二极管由导通变为截止或由截止变为导通所需要的时间比一般二极管短主要作用:防止反向电流烧坏精密器件
电容作用:旁路、去耦、滤波、储能。旁路:1. 使输入电压均匀化,减小噪声对后级影响 2. 储能,当外界信号变化过快时,及时进行补偿
去耦: 去耦电容和旁路电容作用差不多,都是滤除干扰信号的作用。旁路电容针对输入信号,去耦电容针对输出信号。 去耦电容一般比较大,10uf或更大。旁路电容一般根据谐振频率是0.1uf或0.01uf
滤波: 滤除杂波,大电容滤低频,小电容滤高频
储能:收集电荷
电容应用中的问题铝电解电容: 长脚+,短脚-,或电容上银色为负极
瓷片电容和独石电容无极性
注意:耐压值、防止短接
晶体三极管特点: 用输入电流控制输出电流的流控制型器件三种工作状态: 放大、饱和、截止状态
三极管主要参数
共发射极电流放大系 ...
jpeg压缩算法(四):编码
前言JPEG压缩的最后一步是对数据进行哈弗曼编码(Huffman coding),哈弗曼几乎是所有压缩算法的基础,它的基本原理是根据数据中元素的使用频率,调整元素的编码长度,以得到更高的压缩比。举个例子,比如下面这段数据
AABCBABBCDBBDDBAABDBBDABBBBDDEDBD
这段数据里面包含了33个字符,每种字符出现的次数统计如下如果我们用我们常见的定长编码,每个字符都是3个bit。那么这段文字共需要333 = 99个bit来保存,但如果我们根据字符出现的概率,使用如下的编码那么这段文字共需要$36 + 115 + 42 + 29 + 41 = 63$个bit来保存,压缩比为63%,哈弗曼编码一般都是使用二叉树来生成的,这样得到的编码符合前缀规则,也就是较短的编码不能够是较长编码的前缀,比如上面这个编码,就是由下面的这颗二叉树生成的。
首先,学习JPEG编码步骤我们需要先了解一下霍夫曼编码(Huffman coding)和行程编码(RLE)
霍夫曼编码原理TODO…
行程编码原理(RLE)TODO…
JPEG中的编码我们回到JPEG压缩上,回顾上一节的 ...
jpeg压缩算法(二):离散余弦变换
步骤三:离散余弦变换(DCT)简介离散余弦变换属于傅里叶变换的另外一种形式,没错,就是大名鼎鼎的傅里叶变换。傅里叶是法国著名的数学家和物理学家,1807年,39岁的傅里叶在他的一篇论文里提出了一个想法,他认为任何周期性的函数,都可以分解为为一系列的三角函数的组合,这个想法一开始并没有得到当时科学界的承认,比如当时著名的数学家拉格朗日提出质疑,三角函数无论如何组合,都无法表达带有“尖角”的函数,一直到1822年拉格朗日死后,傅里叶的想法才正式在他的著作《热的解析理论》一书中正式发表。金子总会闪光,傅里叶变换如今广泛应用于数学、物理、信号处理等等领域,变换除了它在数学上的意义外,还有其哲学上的伟大意义,那就是,世上任何复杂的事物,都可以分解为简单的事物的组合,而这个过程只需要借助数学工具就可以了。但是当年拉格朗日的质疑是正确的,三角函数的确无法表达出尖角形状的函数,不过只要三角函数足够多,可以无限逼近最终结果。比如下面这张动图,就动态描述了一个矩形方波,是如何做傅里叶分析的。
离散数据DCT当我们要处理的不再是函数,而是一堆离散的数据时,并且这些数据是对称的话,那么傅里叶变化出来的函 ...
jpeg压缩算法(三):量化
量化经过上一节介绍的离散余弦变换,图像数据虽然已经面目全非,但仍然是处于“可逆”的状态,也就是说我们还没有进入“有损”的那一步。这次我们来玩真的,看一下数据中的细节是如何被滤去的。先来考察一下要对付的问题是什么,经过颜色空间转换和离散余弦变换,每一个8X8的图像块都变成了三个8X8的浮点数矩阵,分别表示Y,Cr,Cb数据,比如以其中某个亮度数据矩阵举例,它的数据如下
原理我们的问题是,在可以损失一部分精度的情况下,如何用更少的空间存储这些浮点数?答案是使用量子化(Quantization),简称量化。“量子”这个概念来自于物理学,意思是说连续的能量可以看做是一个个单元体的组合,看起来高端大气,其实很简单,比如游戏中在处理角色面朝方向时,一般并不是使用0到2π这样的浮点数,而是把方向分成16个区间,用0到16这样的整数来表示,这样只用4个bit就足够了。JPEG提供的量子化算法如下:$$B_{ij}=round(\frac {G_{i,j}}{Q_{i,j}})$$其中G是我们需要处理的图像矩阵,Q称作量化系数矩阵(Quantization matrices),JPEG算法 ...
jpeg压缩算法(一):图像分割+色域空间转换
步骤一:图像分割JPEG算法的第一步,图像被分割成大小为8X8的小块,这些小块在整个压缩过程中都是单独被处理的。后面我们会以一张非常经典的图为例,这张图片名字叫做Lenna,据说是世界上第一张JPG图片,这张图片自从诞生之日开始,就和图像处理结下渊源,陪伴了无数理工宅男度过了的一个个不眠之夜,可谓功勋卓著,感兴趣的朋友可以在这里了解到这张图片的故事。
步骤二:颜色空间转换RGB->YCbCr所谓“颜色空间”,是指表达颜色的数学模型,比如我们常见的“RGB”模型,就是把颜色分解成红绿蓝三种分量,这样一张图片就可以分解成三张灰度图,数学表达上,每一个8X8的图案,可以表达成三个8X8的矩阵,其中的数值的范围一般在[0,255]之间。
不同的颜色模型各有不同的应用场景,例如RGB模型适合于像显示器这样的自发光图案,而在印刷行业,使用油墨打印,图案的颜色是通过在反射光线时产生的,通常使用CMYK模型,而在JPEG压缩算法中,需要把图案转换成为YCbCr模型,这里的Y表示亮度(Luminance),Cb和Cr分别表示绿色和红色的“色差值”。“色差”这个概念起源于电视行业,最早的电视都是黑白 ...
jpeg算法简介
JPEG图片压缩有多重要,可能很多人可能并没有一个直观上的认识,举个例子,一张800X800大小的普通图片,如果未经压缩,大概在1.7MB左右,这个体积如果存放文本文件的话足够保存一部92万字的鸿篇巨著《红楼梦》,现如今互联网上绝大部分图片都使用了JPEG压缩技术,也就是大家使用的jpg文件,通常JPEG文件相对于原始图像,能够得到1/8的压缩比,如此高的压缩率是如何做到的呢?JPEG能够获得如此高的压缩比是因为使用了有损压缩技术,所谓有损压缩,就是把原始数据中不重要的部分去掉,以便可以用更小的体积保存,这个原理其实很常见,比如485194.200000000001这个数,如果我们用485194.2来保存,就是一种“有损”的保存方法,因为小数点后面的那个“0.000000000001”属于不重要的部分,所以可以被忽略掉。JPEG整个压缩过程基本上也是遵循这个步骤:
把数据分为“重要部分”和“不重要部分”
滤掉不重要的部分
保存
特点: 图片尺寸小,清晰度高原理: 删除人眼不易察觉的元素
工序
色彩空间转换Y 亮度Cb 蓝色色度Cr 红色色度
色度缩减采样以2 ...