自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

音视频图像相关

音视频图像相关

  • 博客(74)
  • 资源 (7)
  • 收藏
  • 关注

原创 SRS简介及简单demo

SRS()是一款开源的实时流媒体服务器,专注于解决直播、实时互动等场景的流媒体传输问题。SRS 的设计目标是 “简单、稳定、高效”,专门针对实时流媒体协议(如 RTMP、HLS、HTTP-FLV、WebRTC 等)进行优化,专注于解决 “低延迟、高并发” 的实时音视频传输需求。核心功能多协议支持低延迟优化高并发能力丰富的扩展功能跨平台部署。

2025-08-06 16:18:11 184

原创 pulseaudio实现音频的网络传输

前面关于pulseaudio的介绍都是概念性的,本文以一个例子来说明pulseadui的网络使用,假设局域网有两个主机A和B,实现A和B之间的音频双向传输。

2025-07-01 10:03:13 188

原创 pulseaudio的配置文件

强制所有的设备使用统一的采样率,和在daemon.conf中设置默认采样率效果一样。

2025-06-13 13:59:26 503

原创 pulseaudio的相关API

这篇文章主要介绍pulseaudio playback的相关API,pulseaudio playback的具体实例可以参考。如果用pulseaudio实现playback,简单地说就是创建一个playback stream,然后指定这个stream的sink,再定期的向这个stream中写数据。

2024-10-23 19:42:59 1192

原创 Aloop虚拟声卡

●需要保证arecord中的命令参数中的format和loopback的format一致,如果loopback的采样率为44100Hz,这里设置48000Hz,或者channel和sample_format不一致,保存的wav文件播放是按照你设定的参数来的,但是里面的PCM数据为实际声卡的参数。●audio.wav播放到loopback声卡,card 2 device 0,subdevice 4,以上是一些准备工作,现在看如何aplay,arecord回环,打开两个shell,在其中一个输入。

2024-10-22 16:20:37 1589

原创 pulseaudio基本功能

pulseaudio最基本的作用就是播放和录制,你只用它创建一个流,然后指定一个device,作为流的源头和目的。然后需要做的就是向流中写入数据,然后就一切交给pulseaudio。就像把大象放到冰箱一样,不用管怎么放,只要知道需要把大象放到冰箱即可。

2024-10-17 16:56:58 1186

原创 pulseaudio概述

PulseAudio 是一个针对 POSIX 操作系统的音频服务器系统,。它是所有相关现代 Linux 发行版的核心组成部分,并被多个厂商用于各种移动设备中。在音频数据从应用程序传输到硬件的过程中,PulseAudio 可以执行高级操作,例如将音频传输到另一台机器、更改采样格式或声道数量,以及将多个声音混合到一个输入/输出流中,这些都可以通过 PulseAudio 轻松实现,pulseaudio运行于音频驱动之上。

2024-10-16 19:43:13 1842

原创 coredump设置

如果是ubuntu系统,上述设置方法不生效,因为ubuntu中默认开启了系统错误诊断,这项配置会阻止"echo /home/core-%e-%p >/proc/sys/kernel/core_pattern "的操作。临时修改:echo ‘/var/log/%e.core.%p’ > /proc/sys/kernel/core_pattern。永久修改: /sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p。设置coredump长度,不限长。

2024-10-11 15:27:19 1952

原创 H264参考帧列表管理

仅有前向参考,只有List0。

2024-09-22 11:23:47 1478

原创 MVP的推导过程

MbPartWidth和MbPartHeight分别为8和16,(xP,yP)为(15,0), 根据公式(1)计算得MbPartIdx =1,和 预期一致。

2024-08-29 17:45:44 296

原创 B宏块的MV预测

本文介绍B宏块的MV预测,旨在归纳B宏块预测的脉络,对一些特殊的情况可能并未涉及,详细的内容需要详细阅读[1]。B宏块的和P宏块的不同之处是B宏块可以有B宏块可以有两个参考帧,也可以有一个参考帧,且如果有两个参考帧,这两个参考帧可以一个在List0中,一个在List1中,也可以两个参考帧都在List0或者List1中。List0和List1中的参考帧并没有时序关系,没有规定List0是前向参考帧,List1中是后向参考帧。[1]中中例举了B Block的类型和B Block的划分方式图1。

2024-08-29 17:44:49 172

原创 AQ mode

复杂宏块使用大的QP,简单宏块使用小的QP。x264如何定义复杂?x264是根据宏块内像素值的方差来评价宏块复杂性,方差越大,宏块的越复杂,方差用亮度和色度的方差之和来计算。它这么做基于一个原则,即人眼对平坦的区域比较敏感,对细节较多的区域不敏感,所以对简单的宏块使用较小的QP保证图像质量;对复杂的宏块使用较大的QP,可以适当降低质量。

2024-07-05 17:57:50 281

原创 x264_ratecontrol_mb解析

为x264_ratecontrol_start中计算得来的最大frame size,max_frame_error为一个比例,设定这里计算出来的max frame size和x264_ratecontrol_start的误差系数,max_frame_error的范围时0.05-0.25,所以这里的max_frame_size应为x264_ratecontrol_start的75%- 95%之间,为了防止vbv buffer overflow,最终的max_frame_size还要加以限制。

2024-07-05 17:51:53 261

原创 环路滤波器

在粗略地估算滤波边界强度后,我们需要区分这个边界强度是由于对块进行DCT变换量化引起的块效应(虚假边界)还是视频图像原有的边界(真实边界)。环路滤波有两个预先要解决的问题,一个是计算边界强度(边界两边的像素差距),只有先预算出边界的强度才可以选择合适的参数进行滤波;块效应指视频边界不连续的变化,我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact)。如果边界强度为0,不用进行滤波。

2024-06-26 16:53:16 203

原创 JM日志文件解析

JM代码是对H264协议支持最全面的,不但还有编码还包括解码,通过它生成的trace文件可以对码流做一个很好的解读,目前很多码流分析工具也是基于JM的trace文件进行分析,研究它可以更深刻的理解H264协议。标识的slice中第一个宏块的位置,目前设置了4个Slice,每个Slice 2040个MB,共编码5帧,所以共20个slice,每帧的first_mb_in_slice依次为0,2040,4080,6120.当前slice的第第一个MB的QP为。

2024-06-26 15:42:33 581

原创 x264 的各种码率控制方式

在"x264帧级码率控制解析"中提到,x264三种码率控制方式,CRF,ABR和CQP,本文再更深入地探讨这三种码率控制方式。

2024-06-03 09:47:30 259

原创 x264帧级码率控制解析

目前x264代码中表面看到的码率控制方式有CQP,CRF和ABR三种。x264的帧级码率控制涉及三个重点函数,。为码率控制的初始化参数配置,在x264_encoder_open中调用在一帧编码前调用;在一帧编码结束后调用。

2024-06-03 09:33:34 378

原创 x264码率控制基础

x264码率控制也是基于率失真模型即,D为失真,R为码率,为拉格朗日因子,当取值较大时,倾向于低码率高失真的情况;当取值较小时,倾向于高码率低失真的情况。由拉格朗日乘数法知,参考[1], x264采用的是高码率下码率和失真之间的关系为常数因子,由(2)得由(1)和(3)得,高码率下失真又近似满足(5)其中QUANT为,由(4)和(5)为常数,根据经验值,QUANT为量化因子,和QP存在转换关系,最终可以把表示为:通过公式(8)可以看出QP值和的关系,当QP增加时,增加;

2024-05-23 15:46:30 377

原创 HEVC预测编码

以上这句话如何理解?如果对于只存在一个参考帧的情况col_pic和cur_ref是同一帧,如果存在多参考帧,则col_pic和cur_ref可能不是同一帧,举例说明,假如当前有5个短期参考帧,分别是当前帧的前五帧,假如不存在B帧,当前帧的帧号是100,那么这五个参考帧的帧号分别为95,96,97,98,99。所不同的是,AMVP的候选列表长度为2,且存在MVD。的PU,它有两个候选位置,如下图所示,最大的实线框为CTU,C3为col_pic中和cur_PU同位置的PU,H为C3所在的CTU的右下方的PU。

2024-04-07 11:14:03 178

原创 HEVC的编码结构

CTU(Coding Tree Unit)和CU组成了一个四叉树的层级结构,CTU的尺寸为64 x 64,32 x 32,16 x 16,一个CTU可以分为一个或四个CTU,对标H264的MB。CU/CBCU/CB(Coding Unit/Coding Block),CU为亮度和色度编码单元的统称,CB特指某一个分量的的编码单元。CU包括一个亮度编码块和两个色度编码块。CU为预测模式划分的最小单位,一个CU只能是一种预测模式,不是帧内或者帧间。

2024-03-21 15:01:26 363

原创 ffmpeg深度学习滤镜

运行过程中会出现一些错误,主要是因为代码中用的tensorflow api和环境中的tensorflow版本不匹配导致,修改接口名称即可解决,最终生成srcnn.pb文件。当前所用显卡为NVIDIA的P6000,在英伟达的官网上查看对应的驱动, 下载NVIDIA-Linux-x86_64-535.104.05.run并安装。通过[2]查看cuda和tensorflow的对应关系,下载对应版本的tensorflow.用nvcc --version查看,cuda的版本为11.8,下载。所用ffmpeg版本为。

2024-02-23 16:54:57 406

原创 ffmpeg 硬件加速介绍

参考[2],基于windows的硬件加速都是基于DirectX API,我们可以用ffmpeg -hwaccels查看当前环境支持的硬件加速接口,如下为windows上的执行ffmpeg --hwaccels的结果。

2024-02-20 10:17:29 906

原创 H264中的DCT变换和量化

下图为intra16x16 block的正向变换和反向变换过程,和非intra16x16 block相比,intra16x16 会进一步把这16个小块的DC分量再做哈达玛变换,然后再量化,所以对于每个小块中的16个系数,DC系数为先做DCT变换再做哈达玛变换的结果,15个AC系数为DCT变换的结果。反向变换和正向变换的顺序相反。反向变换为先对16个小块的DC分量做反哈达玛变换,然后再把每个小块的DC分量和它的AC分量放在一起,组成16个系数,然后对它再做反量化,接着IDCT,恢复block中的像素值。

2024-01-09 10:12:19 1232

原创 ooura fft库

注意Real DFT的反变换和频域之间系数是2.0 / n.这点可以这样理解:因为Real DFT的时域信号都是实数,所以它的频率肯定是关于X轴对称的,因为只有这样才可以在Y轴上相互抵消。可以看出,和cdft的结果一致,剩下频率的关于中心对称,但是特殊的,刚好频域有64这个中间位置,而相位只存了前面一半的值,所以用rdft的话采样频率一半的相位信息无法获得。注意输入数据长度为N,只含有实部,因为fft后的输出关于X轴对称,所以数据量也减少一半,数据长度也为N,也是实部虚部实部虚部......,这样存放。

2023-12-27 09:19:00 1160

原创 H264一致性

以下是Decoder侧CBP的大小随时间变化的趋势,因为有0.8秒的缓冲,所以在0.8秒时,CPB的大小为5000x0.8=4000,下来每隔0.2秒Decoder会解一帧数据。中,因为每一帧的大小是不固定的,所以可以认为进入Encoder Buffer的速率是不固定的,但是我们希望能够控制H264的码率,所以希望从Encoder Buffer出来,进入CPB的速度的恒定的,然后Decoder从CPB中取出码流进行解码,解码的数据放入DPB,Decoder可能还要用DBP中的数据进行参考。

2023-12-26 09:55:07 1065

原创 x264中的线程池

x264的线程池定义在threadpool.h/threadpool.c中。

2023-12-22 16:52:51 952

原创 H264帧间预测

所以它们的MV分别乘以对应的权值,更新后的mv为(+3,-3)和(+1.5,-2.5),smv(+3,-3)将被传输,此时list1和list0对应的mv之差为(-1.5,0.5),这个mv也将被传输。还有一种情况是A,B,C的被划分成更小的partition,如下图中第二个图所示,那么A,B,C都取和E最接近的partition,A取E的相邻宏块的右上方的partition,B取E上方宏块左下方的partition,C取E右上方宏块的左下方的partition。多个参考帧的情况会增加DPB的存储量。

2023-12-20 16:23:22 1298

原创 Slice和MB

CAVLC熵编码的都是按照4x4的块进行的,但是当transform_size_8x8_flag为1时,CAVLC的编解码需要8x8,所以解码时按照4x4解码,对一个8x8的块对应4个4x4的块,然后再把这4个4x4块的解码结果合成为一个8x8的块的结果,如上图红色框所示。至于4x4到8x8的合成方法,这里不做深入讨论,后面另起章节讨论。

2023-12-12 09:24:33 852

原创 H264帧内预测介绍

如果rem_intra4x4_pred_mode大于等于当前的最大可能模式,最终预测模式设置为rem_intra4x4_pred_mode + 1,所以f rem intra4×4 pred mode的取值范围是0-7,3bit就可以表示,再加上pre intra4x4 pred mode,一共4bit,所以如果most probable prediction mode 命中,能够节省3/4的码流,否则没有节省码流。,最终的预测模式为rem_intra4x4_pred_mode;为A,B预测模式的最小值。

2023-12-11 14:05:54 1354

原创 CAVLC(基于上下文自适应的可变长编码)

最后一个非零系数前0的个数如下面红色表示,total_zeros为330 01 -1 -10通过Table9.7通过total_zeros和TotalCoeffs=5,查表得编码结果为111.当前得编码码流为通过Table9-7可知,最后一个非零系数前0的数目为3 ,1 1110 1100。

2023-12-11 11:17:44 1040

原创 JM中ref_pic_list_modification bug记录

我用一些码流分析工具播放H264码流正常,用一些播放器播放也都存在花屏,不过大多数播放器都是调用的ffmpeg接口,所以需要定位为何ffmpeg播放会报错。看到17这个数字就很敏感了,因为设置的Log2MaxFNumMinus4=0,所以码流中内部帧号16帧一个循环,再看第17帧的码流结构,ref_pic_list_reordering句法中,而有的解码器做了些容错机制,所以用码流分析工具播放未见问题,ffmpeg中是严格遵循协议的,所以会报此错误。的情况,max_pic_num为16。

2023-12-07 16:39:51 1136

原创 poc_order_cnt_type

如果解码顺序和播放顺序一致(不存在B帧),最好用poc_order_type=2,这样最省码流,推导也方便。如果解码顺序和播放顺序不一致(存在B帧),poc_order_cnt_type为0最灵活,也好推导,但是码流大些,如果poc_order_cnt_type为1,码流会小些,但是灵活度不够,解码帧必须呈周期性的关系才可以。

2023-11-30 10:51:11 1176

原创 Coded Block Pattern

Coded Block Pattern简称CBP,在H264协议7.3.2.1中有介绍,CBP表征了MB中的亮度和色度块的残差做DCT后的系数是否为0的情况,CBP可以拆分为CodedBlockLuma和CodedBlockChroma,分别对应亮度和色度块的残差系数是否为0,它们的具体含义后面会做介绍,首先我们要获取CodedBlockLuma和CodedBlockChroma,协议中规定根据MB type类型的不同获取CodedBlockLuma和CodedBlockChroma的语法也相同。

2023-11-24 15:22:58 1127

原创 H264短期参考帧和长期参考帧

从以上例子看,解码器内部帧号的循环范围是16,也就是说,如果多个短期参考帧存在并且最远的短期参考帧和当前帧的实际帧号大于等于16,会造成参考帧列表顺序错乱。在解码端,如果当前帧号为13,有两个参考帧帧号分别为9,10,那么解码器认为帧号10距离当前帧较近,它排序参考帧列表为[10,9];在大多数的帧都没有问题,但是在个别帧的位置会发生参考帧列表中帧的顺序和预期不一致的情况,我在第28帧的两个参考帧为13帧和27帧,然后把27帧unused,但是当第29帧时参考帧列表为[13,28]。X264代码中定义的。

2023-10-18 10:11:36 705

原创 vbv介绍

VBV即Video Buffer Verifier(视频缓冲区校验器)。本质是encoder端的一个虚拟buffer,可以将VBV当做一个容量受限的管道,有一个上限容量值和下限容量值,在经过此管道的调节之后能限制编码码率在上限容量值和下限容量值之间。VBV对标NetEq中的那几个buffer(decoder buffer,algorithm buffer,sync buffer),也可以对标WebRtc中的video jitter buffer。

2023-10-18 10:03:30 2475

原创 Open GOP 和close GOP

Close GOP是说在当前GOP中,所有的P帧和B帧只会参考GOP内部的I帧或P帧;而Open GOP是说当前GOP中的B帧会参考邻近GOP的I帧。因为GOP第一帧为IDR帧,会清空DPB,以下图Close GOP为例,当前GOP的最后一个frame为B帧,它要参考下一个GOP的I帧和它前面的P帧,所以要现对I帧编码,如果I帧为IDR帧,会把所有参考帧都清除,包括P帧,B帧没法参考P帧了,所以GOP的第一帧为IDR帧,它只能是Close GOP。

2023-10-08 09:37:06 535

原创 时域维纳滤波

时域维纳滤波介绍

2023-01-07 10:19:16 355

原创 NetEq(五) ---- 算法处理 expand

NetEq expnad的处理流程

2022-05-22 15:14:33 563

原创 NetEq(四)-算法处理(加速、减速、Merge)

NetEq的加速、减速,以及merge流程

2022-05-19 20:39:26 572

原创 NetEq(三) 算法处理(Normal)

如果经过前面介绍的决策判定,该帧需要正常播放,那么正常播放又分为以下几种情况:上一包是PLC (expand,丢包)需要计算平滑系数,使上一包和当前包"过渡自然".平滑系数计算:D为解码后的数据,即input中的数据,BNG为背景噪声(用默认的初始值)。muteFactor为expand中的muteFactor,64即为8ms数据。const int fs_mult = fs_hz_ / 8000; size_t energy_length = std:

2022-05-17 21:57:19 560

字符识别python代码,基于tensorflow

字符识别python代码,基于tensorflow

2024-11-20

姿态估计资料,值得收藏

姿态估计资料,值得收藏

2024-11-17

valgrind 用户手册

valgrind 用户手册

2024-11-15

arm-cortex-a76-software-optimization-guide,值得收藏

arm-cortex-a76-software-optimization-guide,值得收藏

2024-11-13

机器学习考试资料,请收藏

机器学习考试资料,请收藏

2024-11-13

统计学的相关经典资料,非常好

统计学的相关经典资料,非常好

2024-10-31

annoattion-train数据集, https://www.crowdhuman.org/download.h

annoattion-train数据集, https://www.crowdhuman.org/download.h

2024-10-30

上海航芯单总线安全认证芯片方案介绍

上海航芯单总线安全认证芯片方案介绍

2024-10-28

sift算子资料,可用于图像识别

sift算子资料,可用于图像识别

2024-10-28

FLAC编解码代码,供参考

FLAC编解码代码,供参考

2024-10-25

webrtc的matlab测试资源,值得收藏

webrtc的matlab测试资源,值得收藏

2024-10-19

NetEq论文,特别好,应该是全网最好的资料了

NetEq论文,特别好,应该是全网最好的资料了

2024-10-11

软硬件融合-V0.7-超异构计算革命,值得收藏

软硬件融合-V0.7-超异构计算革命,值得收藏

2024-10-10

stanford deep learning 课程代码

stanford deep learning 课程代码

2024-10-07

国嵌嵌入式视频教程,非常好

国嵌嵌入式视频教程,非常好

2024-10-07

计算机视觉资料,值得收藏

计算机视觉资料,值得收藏

2024-10-06

opencv图像处理实例编程

opencv图像处理实例编程

2024-10-06

deep learning basic,值得收藏

deep learning basic,值得收藏

2024-10-06

卷积神经网络的python代码,值得收藏

卷积神经网络的python代码,值得收藏

2024-10-06

PCIe接口与系统配合.值得保存

PCIe接口与系统配合.值得保存

2024-10-05

这篇文章详细介绍了专项行业数据分析领域的开源项目资源与源码合集,涵盖了从通用工具到特定行业的应用 以下是主要内容的总结:

内容概要:本文详细介绍了专项行业数据分析领域的开源项目资源与源码合集。涵盖了通用数据分析工具(如 Jupyter Notebook、R语言与RStudio、Python数据分析库)、大数据处理与分析平台(如 Apache Spark、Apache Hadoop、Apache Flink)、机器学习与数据挖掘工具(如 Scikit-learn、TensorFlow、PyTorch)、数据可视化与商业智能工具(如 Tableau Public、Metabase、Apache Superset)、数据仓库与数据库(如 MongoDB、PostgreSQL、Apache Cassandra)、数据集成与管道工具(如 Apache Airflow、Apache NiFi、Apache Kafka),以及特定行业的数据分析项目(如医疗健康、金融风控与量化分析、物联网与传感器、社交媒体与文本数据分析)。每个项目都介绍了其功能用途、架构组成、社区支持、典型应用场景、使用教程和最佳实践,并附上参考资料来源。 适用人群:从事数据分析、数据科学、大数据处理、机器学习、商业智能、数据库管理等相关领域的研发人员和技术爱好者。 使用场景及目标:①为初学者提供入门指导,帮助他们快速上手并掌握各种开源工具的使用;②为有一定经验的研发人员提供深入学习和应用开发的资源,助力解决实际项目中的复杂问题;③为企业和组织提供构建数据分析平台、处理海量数据、实现智能化决策的支持。 其他说明:文中强调了每个开源项目背后的活跃社区和完善的文档资源,鼓励用户根据自身需求选择合适的工具,并遵循最佳实践确保项目的高效和稳定运行。此外,文章还提醒用户在使用开源工具时需注意数据隐私和合规性问题,以确保合法合规地挖掘数据价值。

2025-08-21

算法面试手撕代码高频题总结:数据结构与算法解题技巧及公司面试特点分析了技术面试中

内容概要:本文详细介绍了技术面试中手撕代码环节的高频题目及其解题思路。文章首先概述了手撕代码的重要性,并指出LeetCode上的“Top 100 面试题”是备考的重点。随后,文章按照数据结构(数组、哈希表、字符串、链表、树、栈、队列、图)和算法思想(动态规划、双指针、滑动窗口、二分查找等)两大类别,逐一剖析了各个领域的高频题目及解题模板。针对不同数据结构,文章不仅列举了具体的高频题,还提供了详细的解题技巧,如双指针法、滑动窗口、前缀和等。此外,文章还总结了各大科技公司(Google、Amazon、Microsoft、Facebook、字节跳动、阿里巴巴、腾讯)在面试中偏好的题目类型,帮助求职者更有针对性地准备。 适合人群:具备一定编程基础,正在准备技术面试的研发人员,尤其是工作1-3年的程序员。 使用场景及目标:①帮助求职者了解各大科技公司面试中常见的手撕代码题目类型;②提供详细的解题思路和技巧,提升求职者的解题能力;③指导求职者根据目标公司特点进行有针对性的复习。 阅读建议:本文内容详尽,涵盖了众多数据结构和算法思想,建议读者分模块学习,先掌握基础概念和解题模板,再结合具体题目进行实践。同时,应多做练习,尤其是LeetCode上的高频题,以加深理解和提高实战能力。

2025-08-14

### 【版本控制系统】Git高级技巧全解析:分支管理、冲突解决及协作工作流优化

内容概要:本文详细介绍了Git的高级技巧,涵盖分支管理与合并策略、变基与合并的区别、挑选提交、交互式变基、解决合并冲突的高级技巧、历史记录管理与调试工具、大型仓库性能优化、高级协作与工作流程(如Fork工作流、Git Flow、GitHub Flow、主干开发)、钩子与自动化、以及其他高级命令和技巧。文章不仅讲解了每个功能的具体用法,还提供了最佳实践和团队协作建议,帮助团队更高效、安全地使用Git。 适合人群:具备一定Git基础,希望深入理解和掌握Git高级功能的研发人员和团队负责人。 使用场景及目标:①掌握Git的高级分支管理和合并策略,优化团队协作流程;②理解变基与合并的区别,选择合适的方式整合分支更改;③学会使用cherry-pick、交互式变基等工具精细管理提交历史;④掌握解决合并冲突的高级技巧,减少开发中断;⑤利用历史记录管理与调试工具(如git bisect、git reflog)高效定位和解决问题;⑥优化大型仓库性能,提升克隆、拉取等操作的速度;⑦选择合适的协作工作流程(如Fork工作流、Git Flow、GitHub Flow、主干开发),适应不同项目需求;⑧通过钩子实现自动化任务,如代码检查、测试运行、提交消息校验等;⑨掌握其他高级命令和技巧,提升开发效率。 阅读建议:本文内容丰富,建议读者结合实际开发场景逐步实践,重点关注团队协作中可能用到的功能和技巧。对于高级功能,务必小心使用,特别是涉及历史改写的操作,确保不会影响团队的现有工作。此外,定期复习和更新Git知识,跟随Git的发展不断优化工作流程。

2025-08-13

openH264代码,C++编写,值得学习

openH264代码,C++编写,值得学习

2025-08-07

h264,H265码流分析工具

h264,H265码流分析工具

2025-07-02

本文介绍了清华大学新闻学院与人工智能学院双聘教授沈阳团队的DeepSeek和DeepResearch项目

内容概要:本文介绍了清华大学新闻学院与人工智能学院双聘教授沈阳团队的DeepSeek和DeepResearch项目,旨在让科研像聊天一样简单。DeepSeek+DeepResearch通过编写代码采集、清洗、分析、挖掘和可视化数据,实现从数据采集到可视化的全流程自动化。文中详细描述了DeepSeek R1、Open AI o3mini、Claude 3.5 sonnet和Kimi k1.5四个模型在不同任务中的表现,包括爬虫数据采集、文件数据读取、文本数据处理、数据分析和数据可视化等方面的能力和特点。此外,还探讨了DeepSeek R1在多个领域的应用潜力,如智能中文古籍修复、法律文本分析、医疗数据分析、金融风险预测等,并强调了其低成本高性能的优势。最后,文章介绍了DeepSeek的发展历程及其在全球AI产业中的影响力,特别是在中美技术竞争中的作用。 适用人群:科研人员、数据科学家、AI开发者、高校师生等从事科研或数据分析工作的专业人士。 使用场景及目标:①科研人员可以通过DeepSeek+DeepResearch简化科研流程,提高研究效率;②数据科学家可以利用其强大的数据处理和分析能力,快速生成高质量的分析报告;③AI开发者可以借鉴其架构设计和技术实现,推动AI技术的创新和发展;④高校师生可以将其应用于教学实践中,培养学生的科研能力和实践技能。 其他说明:DeepSeek R1在多个基准测试中表现出色,尤其在推理能力、数学解题和代码生成等方面接近或超越国际顶尖模型。其开源策略和低成本优势有助于推动AI技术的普及和发展,同时也在中美技术竞争中为中国AI产业提供了新的突破口。

2025-06-24

测试video demo,作为测试集

测试video demo,作为测试集

2025-06-24

【嵌入式开发】ARM NEON SIMD指令集详解:C++开发者指南与优化技巧

内容概要:本文档《ARM NEON for C++ Developers》详细介绍了ARM NEON指令集及其在C++开发中的应用。NEON是ARM架构下的SIMD(单指令多数据)扩展,支持高效并行计算。文档首先解释了SIMD的基本概念及其优势,特别是通过减少分支预测错误和优化内存访问来提高性能。接着,文档深入探讨了NEON的数据类型(如16字节和8字节向量)、内存访问方式、位运算指令、浮点数和整数运算指令,以及向量间的转换与操作。此外,还介绍了如何初始化向量寄存器、执行水平操作和向量洗牌等高级技巧。最后,文档提供了一些实用建议,如保持数据结构SIMD友好、利用现有库避免重复造轮子、优化编译选项等。 适合人群:具备一定C++编程基础,尤其是对嵌入式系统或移动平台开发感兴趣的开发者。 使用场景及目标:①帮助开发者理解NEON指令集的工作原理,掌握如何在C++中高效使用NEON进行SIMD编程;②优化嵌入式设备(如手机、平板电脑)上的高性能计算任务,如图形处理、音频处理等;③通过实际案例和最佳实践指导,提升代码性能,特别是在处理大量数据时。 阅读建议:本文档不仅涵盖了NEON指令的具体用法,还强调了性能优化的原则和方法。因此,在学习过程中应结合具体的编程实例进行实践,同时注意理解底层硬件机制,以便更好地发挥NEON的优势。此外,对于复杂算法或性能瓶颈部分,建议参考现有的优秀库(如DirectXMath、Eigen等),以节省开发时间和精力。

2025-06-13

C++编程C++ Primer第五版:面向对象与泛型编程基础及高级特性详解

内容概要:《C++ Primer, Fifth Edition》是C++编程语言的经典教材,由Stanley B. Lippman、Josée Lajoie和Barbara E. Moo合著。本书详细介绍了C++的基础语法、面向对象编程、泛型编程以及高级特性。它从基础的变量定义、输入输出操作开始,逐步深入到类的设计与实现、模板编程、异常处理、命名空间、多重继承、智能指针、动态内存管理等复杂主题。书中不仅涵盖了标准库的使用方法,还涉及了容器、迭代器、算法、关联容器、动态内存分配、运行时类型识别等多个方面。每个章节末尾都配有总结和术语表,帮助读者巩固所学内容。此外,书中提供了大量实例代码,并鼓励读者通过编写程序来加深理解。 适合人群:适用于有一定编程基础的C++初学者及希望深入学习C++的中级开发者,尤其是那些希望通过系统学习掌握C++核心概念和技术的人群。 使用场景及目标:①作为C++课程的教科书或自学指南;②帮助读者理解并应用C++中的面向对象编程和泛型编程;③指导读者编写高效、可维护的C++代码;④为解决实际编程问题提供理论支持和技术指导。 其他说明:本书强调实践操作,鼓励读者动手编写示例代码,并通过练习题加深对知识点的理解。同时,书中也提及了一些编译器相关的问题,如不同版本编译器对新特性的支持情况等。读者可以访问官方网站获取更多资源和支持。

2025-06-12

基于openCV的特征提取代码

基于openCV的特征提取代码

2025-01-20

圣诞老人插画,请收藏之

圣诞老人插画,请收藏之

2024-12-27

新年海报,讲稿,文案封面

新年海报,讲稿,文案封面

2024-12-27

deetctron代码,值得收藏

deetctron代码,值得收藏

2024-12-23

linux学习资料,值得收藏

linux学习资料,值得收藏

2024-12-16

webrtc matlab代码

webrtc matlab代码

2024-12-11

SIFT算法介绍,值得收藏

SIFT算法介绍,值得收藏

2024-12-09

决策树就和随机森林实践,非常好的教程

决策树就和随机森林实践,非常好的教程

2024-11-29

毕业设计,角点检测,值得收藏

毕业设计,角点检测,值得收藏

2024-11-24

情感识别算法资料,值得收藏

情感识别算法资料,值得收藏

2024-11-24

OpenCV特征匹配代码

OpenCV特征匹配代码

2024-11-24

空空如也

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

TA关注的人

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