![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据压缩实验指导
文章平均质量分 68
weixin_45101561
这个作者很懒,什么都没留下…
展开
-
H264编码
1.解码更改decode.cfg参数得到其分辨率为854x480,4:2:0采样格式,解码得到demo_dec.yuv文件一共有60帧2.解码更改decode.cfg参数更改输入文件名,输入输出宽高,输入为60帧修改比特控制使能端为1,在下面Bitrate中修改比特率修改每个I帧的周期修改插入B帧的个数,HierarchicalCoding改成0。GOP为IBBPBBP…且大小等于 15时当码率接近1000Kbps时PSNR=44.188同理记录其他码率和不同GOP结构下的原创 2021-07-14 23:55:59 · 96 阅读 · 1 评论 -
H264码流部分
SPSPPS原创 2021-06-23 15:19:30 · 121 阅读 · 0 评论 -
MPEG编码
MPEG编码原理解释两条主线第一条线:通过子带分析滤波器组使信号具有高的时间分辨率,确保在短暂冲击信号情况下,编码的声音信号具有足够高的质量。第二条线:使信号通过FFT运算具有高的频率分辨率,计算信号中不可听觉感知的部分,即计算信号的掩蔽阈值,信掩比SMR,第二条线是重点。矛盾点频域分解力分得很细,但到了子带却映射到很粗的范围上,即按临界频带去分析,在临界频带内分析,每个临界频带得到掩蔽阈值,最后又要返回到32个子带中去,一个子带又可能跨越好几个临界频域。临界频带临界频带表征了人类最主要的听原创 2021-06-14 22:32:21 · 112 阅读 · 0 评论 -
JPEG解码实验
JPEG编解码原理完善的代码部分输出YUV文件static void write_yuv(const char *filename, int width, int height, unsigned char **components){ FILE *F; char temp[1024]; snprintf(temp, 1024, "%s.yuv", filename); F = fopen(temp, "wb"); fwrite(components[0], width,原创 2021-06-05 18:53:29 · 112 阅读 · 0 评论 -
c++实现差分预测编码DPCM以及PSNR的计算
编程需要知道的知识点:我们这次实现左向预测DPCM对于第一列像素点,我们假设它左边的像素点值为128,先用第一列原始图像像素点的值减去128,得到当前位置的残差,再用当前位置的残差加上左边的像素点值,得到当前位置的重建图像像素点。对于其他像素点,我们用当前位置的原始图像像素点的值减去重建图像当前位置左边那个像素点,得到当前位置的残差,再用当前位置得到的残差加上重建图像当前位置左边那个像素点的值,得到当前位置的重建图像像素点量化对于每一个残差像素点的量化具体实现为:由于残差的取值范围为-255~原创 2021-05-05 23:20:51 · 383 阅读 · 0 评论 -
C语言实现LZW编码
LZW编码算法思想首先我们有一个0到255的ASCII码表,然后得到若干字符串对其进行编码,再对编码后的码流进行解码以验证。编码:初始化:前缀P为空,第一个字符进入后缀C判断:P+C(P为a,C为b时,P+C为ab)是否在字典中?是的话将P+C赋给前缀,下一个字符进入后缀,回到判断否的话将P码字输出,P+C写入词典,C赋给前缀,下一个字符进入后缀,回到判断解码:初始化:第一个码字赋值给cW,并在字典中查找到对应的字符并输出,cW再赋值给pW依次进入码字判断:该码字是否在字典中有记录原创 2021-04-20 21:59:20 · 1007 阅读 · 0 评论 -
BMP文件序列转YUV文件再转成GIF文件上传
Week4_BMP文件序列转YUV文件bmp文件由四个部分组成:1.位图文件头2. 位图信息头3. 调色板4.实际的位图数据也就是我们需要处理的bgr数据实验思路之前一直在用c++写这次实验,但是wingdi.h的库导入老是报错,索性还是用c语言写了,在前面加个windows.h就可以用wingdi.h库了。由于我们使用的是24位真彩色图像,所以无调色板。在将bgr数据转为yuv数据之前,我们需要先读取文件头和信息头,并且可以从信息头中获取图片的宽高等数据,再用第一周实验的rgb转yu原创 2021-04-05 13:54:19 · 124 阅读 · 0 评论 -
TGA图片格式解析
Week3_TGA图片格式解析准备工作1.下一个FlexHex工具用于以二进制方式打开文件2.拿一张好看点的图片,先在ps里面打开, 再在“另存为“里面存储为TGA格式TGA格式TGA格式文件结构由五部分组成1.文件头由图像信息字段长度、颜色表类型、图像类型、颜色表规范和图像规范五个字段组成,总计18字节。类型子类型2.图像/颜色表数据...原创 2021-03-24 17:30:41 · 1195 阅读 · 0 评论 -
使用C++将YUV文件和RGB文件相互转换
要求1.编写C++将RGB格式图片转换为YUV格式2.编写C++将YUV格式图片转换为RGB格式,并分析与原RGB图像的误差简介1.图片分辨率为256x256,YUV格式文件为4:2:0格式采样2.软件用的是Visual studio 2019,用fstream库读写文件3.虽然老师给了代码,但还是想自己写哈哈,途中只遇到了一个小问题,特此感谢李老师的帮助:出现一些小红点和小蓝点,原来是unsigned char类型的数据上限只有255,下限是0,如果给一个数260就会变成5,实际上应该把它变成原创 2021-03-17 22:59:27 · 1146 阅读 · 0 评论 -
使用python分析同一幅图的rgb格式和yuv格式对应的三个通道的概率分布并计算各自的熵
要求对一幅图的rgb格式文件和yuv格式文件分析三个通道的概率分布,并计算各自的熵。(编程实现)两个文件的分辨率均为256*256,yuv为4:2:0采样空间,存储格式为:rgb文件按每个像素BGR分量依次存放;YUV格式按照全部像素的Y数据块、U数据块和V数据块依次存放。简介我们在这里使用python进行编程,用到的库主要是numpy,``实现首先是打开rgb文件,我试了下用matplotlib好像不太行,然后按照百度上直接用open打开,然后把数据转换为int类型。# -*- coding:原创 2021-03-09 00:13:15 · 354 阅读 · 1 评论 -
分析浊音、清音、爆破音的时域及频域特性
要求使用Audacity分析浊音、清音、爆破音的时域及频域特性简介我们安装好Audacity工具后,就可以选择播录->录制->录制,分别录制英文字母A,音标/f/,英文字母P三段音频,并通过对时域进行放大观察时域波形,然后选择分析->频谱分析观察频域波形,并从频谱的分布和短时周期性进行分析,个人学识可能不够丰富,如有错误请多指正。实现浊音英文字母A的时域波形英文字母A的频域波形清音音标/f/的时域波形 音标/f/的频域波形爆破音英文字母P的时域波形英文字原创 2021-03-08 18:04:49 · 700 阅读 · 0 评论