视频编解码
文章平均质量分 75
Spark!
路人
展开
-
视频编解码——C语言实现霍夫曼编码
#include <stdio.h>#include <stdlib.h>#include <string.h>//#include <iostream> #define MAXBIT 100#define MAXVALUE 10000#define MAXLEAF 30#define MAXNODE MAXLEAF*2 -1 typedef struct { int bit[MAXBIT]; i原创 2021-06-03 09:24:37 · 806 阅读 · 0 评论 -
视频编解码——实现指数哥伦布解码
// ExpColum.cpp#include <assert.h>#include <stdio.h>typedef unsigned char UINT8;static int get_bit_at_position(UINT8 *buf, UINT8 &bytePotion, UINT8 &bitPosition){ UINT8 mask = 0, val = 0; mask = 1 << (7 - bitPosition);原创 2021-06-02 14:55:40 · 156 阅读 · 0 评论 -
视频编解码——指数哥伦布编码的原理与分类
目录指数哥伦布编码与霍夫曼编码对比指数哥伦布编码的分类ue(v)—0阶无符号指数哥伦布编码指数哥伦布编码与霍夫曼编码对比相同点:指数哥伦布编码同哈夫曼编码一样,都属于变长编码的一种即,针对不同的码原,每个码字的长度也是不一样的(唯一共同点)不同点:信源相关性:哈夫曼编码依赖于信源的概率分布,对于不同信源,构建出的霍夫曼码表是不同的;指数哥伦布编码与信源无关,所有信源的编码规则都是一致的额外信息:哈夫曼编码的数据必须额外携带与该信源匹配的码表;指数哥伦布编码无须携带任何额外信息(与上一条相原创 2021-05-28 15:34:44 · 1342 阅读 · 0 评论 -
视频编解码——霍夫曼编码的实现
目录原理分析代码实现输入文件.c原理视频编解码——熵编码—哈夫曼编码的原理及实现分析首先制作一个输入文件,文件中包含很多字符。程序以输入文件中字符出现的评论不同作为huffman树生成的依据统计字符出现的概率。此处有两个熟悉,字符名和出现次数,可以使用结构体进行设计构建huffuman树存储huffuman码表和编码后的文件难点主要是所有字符的排序生成huffuman树及码字的分配统计完字符的出现次数后,需要对其进行先后顺序的排列。如果使用的是c++,就可以用c++的stl提供的数据结原创 2021-05-27 14:16:53 · 572 阅读 · 1 评论 -
视频编解码——熵编码的概念
这里写自定义目录标题熵的概念熵与混乱程度熵编码的思想常用熵编码算法熵的概念熵:热力学与化学概念,用于度量能量退化的指标熵越高,物体/系统做功的能力越低后来信息论的奠基人香农讲化学与热力学 中熵的概念引入到了信息学信息学中的熵:用于度量消息的平均信息量,和信息的不确定性越是随机的、前后不相关的信息,其熵越高信息论中香农提出了信源编码定理:说明了香农熵与信源符号概率之间的关系信息的熵为信源无损编码后平均码长的下限(任何无损编码方式都不可能使编码过后每个码原的平均码长小于香农熵,原创 2021-05-19 08:53:54 · 469 阅读 · 0 评论 -
视频编解码——主流视频编码标准的发展(H.261/H.263/MPEG-1/MPEG-2/MPEG-4))
目录制定标准的组织两种编码方式基于波形的编码基于内容的编码H.261系统图信源编码器复合编码器H.263MPEG-1码流结构MPEG-2码流结构MPEG-4制定标准的组织这些标准主要由两个组织制定。国际电信联盟——ITU-T国际标准化组织——ISO目前世界上影响力最强的视频编码标准基本都出自于这两个组织。除了这两个组织,还有Google——VP8/VP9Microsoft——VC-1国产自主标准——AVS/AVS+/AVS2两种编码方式基于波形的编码特点编码的数据正对每原创 2021-04-28 09:50:41 · 3192 阅读 · 0 评论 -
视频编解码——视频编解码器工作原理
目录什么是视频编解码器为什么需要视屏编解码器视频编码器与数字视频容器时评编码器的历史什么是视频编解码器简单来说就是用于压缩或解压数字视频的软件或硬件编码是信息从一种形式或格式转换为另一种形式的过程,解码是编码的反向。适用于视频编码是将视频、音频的原始格式的文件通过压缩技术转换成另一种格式(视频如h.264,h.265,m-jpeg等)。解码是编码的反向过程。应用中,一般是将h.264,h.265格式数据解码成如YUV格式裸流交给显示器显示。为什么需要视屏编解码器需要在有限的带宽或存储空间原创 2021-04-27 14:48:05 · 8861 阅读 · 0 评论 -
视频编解码——消除视频冗余的方法及原理
目录为什么要消除冗余颜色、亮度和眼睛帧类型时间冗余(帧间预测)查看运动向量空间冗余(帧内预测)查看帧内预测编码冗余视觉冗余为什么要消除冗余首先来计算一下一个一小时的视频大小。假设分辨率为720p,帧率为30fps,则内存为1280x720x24x30x3600,共占用278GB。仅仅使用无损数据压缩算法——如 DEFLATE(被PKZIP, Gzip, 和 PNG 使用)——也无法充分减少视频所需的带宽,我们需要找到其它压缩视频的方法。为此,我们可以利用视觉特性:和区分颜色相比,我们区分亮度要原创 2021-04-26 19:04:12 · 4035 阅读 · 3 评论 -
视频编解码——帧类型
目录I 帧(帧内编码,关键帧)P 帧(预测)B 帧(双向预测)总结假设我们一段 30fps 的影片,这是最开始的 4 帧我们可以在帧内看到很多重复内容,如蓝色背景,从 0 帧到第 3 帧它都没有变化。为了解决这个问题,我们可以将它们抽象地分类为三种类型的帧。I 帧(帧内编码,关键帧)I 帧(可参考,关键帧,帧内编码)是一个自足的帧。它不依靠任何东西来渲染,I 帧与静态图片相似。第一帧通常是 I 帧,但我们将看到 I 帧被定期插入其它类型的帧之间。P 帧(预测)P 帧利用了一个事实:当前的画面原创 2021-04-26 15:04:55 · 1567 阅读 · 0 评论 -
视频编解码——基础知识(图像、分辨率、宽高比、帧率与码率)
目录图像编码彩色图像的其它方法其他的图像编码方式分辨率宽高比举例帧率码率/比特率图像视频的本质就是图像,一段视频是由大量图像按照一定速度播放产生的。一个图像可以视作一个二维矩阵。如果将色彩考虑进来,我们可以做出推广:将这个图像视作一个三维矩阵——多出来的维度用于储存色彩信息。如果我们选择三原色(红、绿、蓝)代表这些色彩,这就定义了三个平面:第一个是红色平面,第二个是绿色平面,最后一个是蓝色平面。我们把这个矩阵里的每一个点称为像素(图像元素)。像素的色彩由三原色的强度(通常用数值表示)表示。例原创 2021-04-26 14:12:37 · 3404 阅读 · 0 评论