- 博客(14)
- 资源 (44)
- 收藏
- 关注
原创 【H2645】帧间预测
1、帧间预测原理先看下图,对比前后两帧图像,只有圆的位置发生变化,因此我们可以根据前一帧图像以及圆移动的信息,合成后一帧图像。这样少编码一帧图像,大大压缩了数据。实际情况如下图,比对前后两帧,背景一样,只有两人身体发生微小变化,找出并记录这些变化信息,就是帧内预测。2、帧间预测步骤2.1 找出最佳匹配块以上面的第一张图为例,就是找到前后两帧中圆的位置。在H.264中将这一过程叫做运动估计,它是将16x16的亮度宏块,分成16x16、16x8、8x16和8x8的子块进行帧间预测。对于8x8的块
2020-07-30 23:33:50 1213
原创 【H2645】帧内预测
1、帧内预测的原理帧内预测的原理:压缩编码传输的并不是像素本身的值,而是一个预测值和实际值只差。预测值是该像素周围像素值加权求和(比如平均值)P,它和实际值相减后得到的差值q,差值q比较小,就达到压缩编码的目的。...
2020-07-30 00:29:24 652
原创 【Qt】QtCreator导入cmake工程
1、配置cmake编译套件在QtCreator中依次点击“工具”–>“选择”–>“Kits”;首先配置cmake,点击“Add”,选择cmake的所在的路径。然后配置“构建套件Kit”2、导入cmake工程在QtCreator中依次点击“文件”–>“打开文件或项目”;选择需要导入cmake项目所在的目录,选项CMakeLists.txt,打开配置工程时选择cmake(cmake是我配置的构建套件Kit的名字),点击“Configure Project”即可。...
2020-07-27 16:15:23 7156 1
原创 【经验】代码统计工具cloc
1、简介cloc是一个命令行程序,用于统计代码,它可以统计文件、目录甚至压缩包中的代码。统计结果如下:$ cloc clipp/ 378 text files. 373 unique files. 53 files ignored.http://cloc.sourceforge.net v 1.60 T=2.26 s (161.0 files/s, 19419.3 lines/s)
2020-07-27 15:35:46 627
原创 【H2645】H.264的宏块和H.265的编码树单元总结
一、H.264宏块1、什么是宏块?先看下面两张图,就能大体知道宏块指的是哪了。将连续几帧图像分为一组(GOP)在H264中称为一个序列(sequence);将每帧图像(Frame)划拉几道分成片(slice);将每片(slice)按照16x16的大小横着竖着划拉成宏块(Maroblock);将宏块(Maroblock)再划拉成4块,每块大小8x8,称为子块。还有一个块的概念,注意和子块做区分:图像首先划分成4x4大小的块,也就是说宏块包含整数个4x4的块。H.264编码时主要以4×4块为单
2020-07-26 01:03:07 2380
原创 【H.265】H.265(HEVC)编码过程和名词解释
一、H.265(HEVC)编码过程和H.264一样,H.265编码由帧内预测、帧间预测、量化、线性变换等步骤。过程大致如下;1、分块一帧画面首先被切分成多个互不重叠的块状区域,称为编码单元(H.264称为宏块),分别传输给解码器。2、帧内预测图像序列的第一个画面(以及每一个可被拖放的帧)只使用帧内预测编码(只使用同一帧中其它区域进行预测,不依赖其他帧)。3、帧间预测其它帧中的块大多数使用帧间预测编码,过程包括选择预测模式、参考图像的运动数据和生成每个块的运动矢量(MV)。 编码器通过旁路传
2020-07-25 00:21:47 4108
原创 【Ubuntu】解决问题:tcp :8080: bind: address already in use
1、问题描述在ubuntu中启动一个web程序时报错tcp :8080: bind: address already in use2、原因查找查找占用8080的服务:sudo netstat -tanlp注意:不加sudo权限时,不显示PID和程序名字$ sudo netstat -tanlp激活Internet连接 (服务器和已建立连接的)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
2020-07-24 16:58:38 4065
原创 【FFmpeg】设置H264参数
一、设置x264参数的接口// 获取编码器AVCodec *codec = avcodec_find_encoder(AV_CODEC_ID_H264); // 创建编码器上下文AVCodecContext *codecContext = avcodec_alloc_context3(codec);// 准备编码器参数AVDictionary *codecOptions = nullptr;av_dict_set(&codecOptions, "profile", "main",
2020-07-21 20:46:54 5786
原创 【FFmpeg】打印日志函数分析(可以根据不同级别打印不同颜色的日志)
FFmpeg的打印日志实现在FFmpeg-n4.2.1/libavutil/log.c中。一、设置log等级1、设置日志级别日志默认级别是AV_LOG_INFOstatic int av_log_level = AV_LOG_INFO;使用av_log_set_level将日志级别设置为调试级别(AV_LOG_DEBUG)av_log_set_level(AV_LOG_DEBUG);源码:void av_log_set_level(int level){ av_log_leve
2020-07-15 23:05:47 905
原创 【FFmpeg】AVOutputFormat/AVInputFormat 成员变量 flags 总结
1、分类AVOutputFormat中flags允许的值:AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_NOTIMESTAMPS,AVFMT_GLOBALHEADER,AVFMT_VARIABLE_FPS,AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH,AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVEAVInputFormat中flags允许的值:AVFMT_NOFILE,
2020-07-15 00:50:37 1100
原创 【FFmpeg】ffmpeg中函数返回的错误码:AVERROR及AVERROR_*
1、AVERRORFFmpeg的错误码大部分使用的PIOSIX标准中错误码的负值。AVERROR定义在文件 FFmpeg-n4.2.1/libavutil/error.h 中#define AVERROR(e) (-(e)) // Returns a negative error code from a POSIX error code, to return from library functions.//FFmpeg库的错误码是POSIX错误码的负值。2、av_strerror 将错误
2020-07-15 00:19:39 6621
原创 【FFmpeg】通过编解码ID(AV_CODEC_ID_*)获取编解码器AVCodec指针的过程分析
一、简述在使用FFmpeg编程时,通过编解码ID(AV_CODEC_ID_*)即可获取对应编解码器AVCodec指针,例如:AVCodec *codec = avcodec_find_encoder(AV_CODEC_ID_H264);下面以libx264为例,分析源码,探索编解码器从注册、获取到使用的过程。二、注册1、说明在旧版本中,需要使用 avcodec_register_all 来注册所有编解码器#if LIBAVCODEC_VERSION_INT < AV_VERSION_I
2020-07-13 23:44:25 3130
原创 【FFmpeg】警告:[mpegts] H.264 bitstream error, startcode missing, size 0
1、问题描述在使用FFmpeg编程,编码成h.264后,再封装成hls时,报警告[mpegts] H.264 bitstream error, startcode missing, size 02、原因分析根据警告提示信息可知:264位流错误,开始码丢失,大小为0。根据警告信息搜索源码,在 FFmpeg-n4.2.2/libavformat/mpegtsenc.c文件的函数ff_check_h264_startcode中,打印该警告信息。源码如下:int ff_check_h264_start
2020-07-12 22:10:01 1170
原创 【FFmpeg】警告:[hls] pkt.duration = 0, maybe the hls segment duration will not precise
1、问题描述在使用ffmpeg编程生成m3u8文件时,报警告[hls @ 0x7f26b4181840] pkt->duration = 0, maybe the hls segment duration will not precise2、原因分析根据警告提示信息, AVPacket.duration的值设为了0,可能会导致hls在分段时时间不精确。根据警告信息搜索源码,在FFmpeg-n4.2.2/libavformat/hlsenc.c文件的hls_write_packet函数中有
2020-07-12 21:28:37 1646 11
Ubuntu20.04.6+Qt5.15.2+QtCreator10.0.1中文输入法
2024-04-03
linux(ubuntu)上测试手柄的程序jstest
2023-05-05
NVIDIA TX2 PyTorch-GPU安装包V1.10
2022-09-15
STM32 ST-LINK UtilityV4.0.0
2022-08-14
毕业设计:学生管理系统源码,界面为Qt,数据库为sqlite 代码里可以借鉴 sql 语句的操作
2022-06-19
在编译部署emq的qmqtt过程中,需要整理出qmqtt的头文件,资源中对应qmqtt版本为1.0.0
2022-04-11
qtmqtt在编译部署过程中需要将头文件导出,资源中是整理后的头文件,对应qtmqtt版本为5.14.2
2022-04-11
iperf-3.1.3-win64.zip
2020-11-25
Camera的结构介绍以及Sensor参数和内部功能简介.ppt
2020-11-02
valgrind测试代码
2020-09-04
视频编解码资源:test_h264_aac.mp4
2020-07-22
视频编解码资源:test_h265.mp4
2020-07-22
图像编解码测试资源:test.y4m(YUV4MPEG2)
2020-07-22
sqliteman.zip
2019-11-18
HDF5-1.10.5-win64.msi
2019-07-31
mnist.tar.gz
2019-06-28
libcudnn7_7.1.4.18-1+cuda8.0_amd64.deb
2019-05-22
libcudnn7-doc_7.1.4.18-1_cuda8.0_amd64.deb
2019-05-22
libcudnn7-dev_7.1.4.18-1_cuda8.0_amd64.deb
2019-05-22
设备树执行标准翻译
2018-10-16
QObject::moveToThread用例
2018-08-16
【Qt】使用QCamera获取摄像头,并使用图像视图框架QGraphics*来显示
2018-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人