- 博客(445)
- 收藏
- 关注
原创 SVT-AV1源码学习-EbMotionEstimation.h 学习
svt_aom_open_loop_intra_search_mb,用于对宏块进行开放环路intra搜索结果搜索,返回错误类型。open_loop_intra_search_sb, //用于在开放环路模式下对超块进行intra 帧内搜索,返回错误类型。extern EbErrorType svt_aom_open_loop_intra_search_mb(//声明外部函数。extern EbErrorType av1_open_loop_intra_search(//声明外部函数。
2025-05-08 17:31:58
908
原创 AV1中的维纳滤波器
AV1中的维纳滤波器是其环路滤波技术的重要组成部分,主要用于提升压缩视频的视觉质量。以下是对该技术的详细分析。(通常为32x32或64x64)(如纹理复杂度,运动强度)(维纳/双滤波/关闭)(如噪声和信号功率)
2025-05-07 19:08:04
292
原创 SVTAV1源码-set_all_ref_frame_type
函数的主要作用是为当前图像设置所有可能用到的参考帧类型并将这些参考帧类型存储到一个数组中同时记录总共有多少个参考帧类型以下是该函数的各部分解释初始化和准备MvReferenceFramerf2];totrefframes0;定一个大小为2的类型的数组rf用于暂时存储参考帧类型将totrefframes变量。
2025-04-30 16:51:42
511
原创 SVT-AV1源码分析-函数svt_aom_motion_estimation_kernel
如果启用了 HME(Hierarchical Motion Estimation),加载 1/4 和 1/16 下采样块数据。:调用 `svt_aom_motion_estimation_b64` 函数进行运动估计。:如果启用了开放环路内块估计,处理每个 64x64 块的内块估计。// 加载 1/4 和 1/16 下采样块数据。// 获取 64x64 块的索引和起始位置。// 加载 64x64 块数据到中间缓冲区。// 处理开放环路内块估计。// 64x64 块循环。// 处理全局运动估计。
2025-04-27 18:03:09
611
原创 X265代码分析--meSearch半像素逻辑
if ((qmv.y < qmvmin.y) | (qmv.y > qmvmax.y)) //Y方向边界检查。if (wl.hpel_satd) //如果在半像素精度下使用SATD作为比较函数。
2025-04-27 10:59:28
270
原创 深度学习-数值稳定性和模型初始化
到目前为止,我们实现的每个模型都是根据某个预先制定的分布来初始化模型的参数,有人会认为初始化方案时理所当然的,忽略了如何做出这些选择的细节,甚至有人可能会觉得,初始化方案的选择并不是特别重要,实际上,初始化方案的选择在神经网络学习中起着举足轻重的作用,保持数值稳定性至关重要。换而言之,该剃度是L-1 个矩阵M(L) ... M(l + 1) 与梯度向量v(l)的乘积。遗憾的是,这会使上面的问题更为严重,矩阵M可能是各种各样的特征值,可能很小,也可能很大,而他们的乘积可能非常大,也可能非常小。
2025-04-24 23:25:54
404
原创 SVT-AV1编码器初始化函数
这个函数SVT-AV1编码器初始化的核心函数,负责配置编码器组件,分配资源并启动编码线程,以下时对每一行的详细解释。函数签名和参数检查EB_API EbErrorType svt_av1_enc_init(EbComponentType *svt_enc_component) {if (svt_enc_component == NULL)return EB_ErrorBadParameter;作用,检查输入的编码器组件指针是否为NULL,如果是则返回错误码EB-ErrorBadParameter关键点 参数
2025-04-22 22:58:13
931
原创 hevc芯片设计--分像素运动估计
8个1/4像素点和1个1/2像素点)8个1/2像素点和1个整像素点)(用于1/2像素插值)(用于1/4像素插值)
2025-04-17 23:41:20
904
原创 深度学习--前向传播,反向传播和计算图
梯度的自动计算大大简化了深度学习算法的实现。在自动微分之前,即使是对复杂模型的微小调整也需要手动重新计算复杂的导数(特征),学术论文也不得不分配大量页面来推导更新规则。本节将铜鼓一些基本的数学和计算图,深入探讨反向传播的细节。首先,我们重点放在带权重衰减的单隐藏曾多层感知机上。然而当实现该算法时,我们只考虑了通过前向传播,所涉及的计算。在计算梯度时,我们只调用了深度学习框架提供的反向传播函数。我们将一步步研究单隐藏层神经网络的机制,假设输入样本是X。前向传播指的是,按顺序计算和存储神经网络中每层的结果。
2025-04-16 23:53:36
341
原创 深度学习--激活函数
激活函数通过计算加权和并加上偏置来确定神经元是否应该倍激活它们将输入信号转换为输出的可微运算。大多数激活函数都是非线性的由于激活函数是深度学习的基础下面简要介绍一些常见的激活函数。1RelU函数最受欢迎的激活函数是修正线性单元ReLU因为它实现起来简单同时在各种高预测任务中表现良好。ReLU提供了一种非常简单的非线性变化给定元素xRelU。
2025-04-15 23:56:22
438
原创 hevc编码芯片学习-VLSI实现
在Fan等的工作中,寻址控制逻辑是微特定整像素运动估计算法设计的,相较于其它硬件设计,BD-Rate 的损失较小,但是缺少灵活性,本节提出的IME架构重新设计了寻址控制逻辑,用以支持提出的微代码可编程的功能。在运动估计的过程中,如果搜索的候选点时垂直移动的,那么却是的参考像素就可以从水平参考像素存储器H SRAM中很方便的获得,相反的,如果搜索的候选点时水平移动的,那么缺失的参考像素就可以从垂直参考像素存储器V SRAM中很方便的获得。(3)在时钟周期4,参考像素寄存器阵列右移1行,同时写入第1个块的。
2025-04-14 22:42:32
554
原创 SVT-AV1学习-函数selfguided_restoration_fast_internal
selfguided_resration_fast_internal 是SVT-AV1编码器中用于自引导恢复的一个关键组件,通过自引导滤波技术对输入的去燥图像数据进行处理,生成一个去燥版本的图像,用于进一步的图像恢复和优化,该函数的参数设计使其能够灵活的适应不同的图像处理需求。参数控制 通过sgr_params_idx个radius_idx参数,可以灵活的选择不同的去燥强度和方式,以适应不同图像的处理需求。去燥 该函数的主要作用是通过自引导滤波技术对输入图像进行去燥处理,生成一个去燥版本的图像。
2025-04-08 14:45:33
521
原创 SVT-AV1学习-svt_aom_get_sg_filter_level,svt_av1_selfguided_restoration_c
(如ENC_MO,ENC_M3等, 通常表示编码复杂度,数值越小模式越低)svt_av1_selfguided_restoration_c函数注释。INPUT_SIZE_360p_RANGE等)(如INPUT_SIZE_8k_RANGE,定义了垂直和水平方向的扩展宽度。二 sg filter详解。
2025-04-07 18:45:37
865
原创 SVT-AV1学习--compute_subpel_params函数
总结 compute_subpel_params 函数在视频变啊吗中扮演着重要角色,通过计算呀像素精度的运动补偿参数,提高了编码效率和视频质量。1 亚像素精度运动补偿,在视频编码中,运动估计通常在整像素级别进行,但是为了获得更高的编码效率,需要进行呀像素精度的运动补偿,该函数通过计算亚像素参数,使得运动补偿能够在亚像素级别进行,从而提高编码质量。2 计算亚像素位置 根据输入的运动矢量和块的位置,计算出亚像素级别的位置坐标。
2025-04-07 09:56:57
680
原创 SVT-AV1学习--update_cdf函数
这个函数updatecdf时一个用于更新累积分布函数CDF的函数通常在概率模型中使用比如在视频编码或压缩算法中。它的作用时根据当前符号的值val更新CDF数组cdf以反映符号出现的概率变化以下时每一行代码的解释和注释staticINLINEvoidupdatecdfint32trate;更新速率。
2025-04-02 00:48:37
431
原创 深度学习--softmax回归
{婴儿,儿童,青少年,中年人,老年人}3.4.3 全链路层的参数开销。3.4.1 分类问题。3.4.2 网络架构。
2025-04-02 00:11:38
387
原创 SVTAV1函数分析-svt_av1_cost_coeffs_txb
这是End of block的缩写,表示块中最后一个非零系数的位置,在视频编码中,特别是在变换和量化之后, 块中的许多系数可能变为零,EOB值可以额帮助快速定位到最后一个非零系数,从而提高编码效率。这个参数可能与变换块跳过(Transform Block Skip)的上下文有关,某些情况下,如果块中的系数非常稀疏或者满足某些条件,可以跳过变换和量化过程,以计生计算资源和编码时间。这是一个布尔标志,用于指示是否使用简化的变换集,在某些编码配置下,为了减少计算复杂度,可能会限制可用的变换类型。
2025-03-29 22:07:43
625
原创 SVTAV1热点函数-svt_ext_all_sad_calculation_8x8_16x16_avx2
/ 对sad16x16_16中的每个16位元素,找到最小值及其位置索引,存储到minpos16x16中。// 再次计算ref02和src0123之间的SAD值,模式为101 101,并累加到sad02中。// 再次计算ref13和src0123之间的SAD值,模式为111 111,并累加到sad13中。// 再次计算ref02和src0123之间的SAD值,模式为101 101,并累加到sad02中。// 再次计算ref13和src0123之间的SAD值,模式为111 111,并累加到sad13中。
2025-03-27 22:25:10
961
原创 LLVM学习-DragonEgg工具
222使用DragonEgg和LLVM工具了解编译流程如果希望看到前端的运行情况请使用Sfpluginargdragoneggemitir标志该标志将产生以LLVMIR代码表示的人工可读文件。一旦编译器将程序转换为IR则停止编译并将内存中的表示内容写入磁盘的能力是LLVM的一个独有特征。大多数其他编译器无法做到这一点在。
2025-03-26 23:13:01
848
原创 LLVM学习--Compiler-RT
例如,32位目标通常缺少支持64位除法的指令,CompilerRT通过提供特定于目标并经过优化的功能来解决这个问题,该功能在使用32位指令的同时实现了64位除法,提供相同的功能,因此是LLVM项目中libgcc的替代品,此外,还具有对地址内存清洗工具的运行时支持,你可以从。如果你仍然没有这个组件,记住将其源代码放入LLVM源代码树中的projects 文件夹内,如下命令序列所示。要查看编译器运行时库启动时的典型情况,可以编写一个执行64位除法的C程序来做一个简单的实验。
2025-03-26 10:17:38
744
原创 深度学习--随机变量
(如果呈阳性,则为1,如果呈阴性,则为0)(如果呈阳性,则为1,如果呈阴性,则为0)(如果呈阳性,则为1,如果呈阳性,则为0)
2025-03-23 08:54:42
345
原创 深度学习--概率
1.1 假设我们掷骰子,想知道1而不是看到另一个数字的概率,如果骰子是公司,那么所有6个结果(1..6),都有相同的可能发生,因此,我们可以说1发生的概率为1/6.然而现实生活中,对于我们从工厂收到的真实骰子,我们需要检查它是否有瑕疵,
2025-03-22 23:42:10
501
原创 深度学习--链式法则
可以链接一个多元函数对其所有变量的偏导数的方式来计算梯度。偏导计算示例设函数zfx,y)3x2y2xy2求z对x和y的偏导数对x求偏导数把y看作事常熟对x求导数3x2xy2y2对y求偏导数3x22xx3y2244链式法则用上吗的方法可能很难找到梯度因为在深度学习中多元函数通常是复合的所以。
2025-03-21 00:38:55
618
原创 LLVM学习-- 构建和安装
例如,从版本3.3到版本3.4的更新时次要版本更新,一旦次要号码达到9,下一个版本号就会在主版本号加1,就像LLVM 2.9之后更新的LLVM 3.0, 与其前任版本相比,主要修订版本的更新不一定会产生很大的变化,但是与上一个主要版本相比,这个主要版本更新一般代表近5年来编译器的发展过程。依赖于LLVM的项目通常使用其Trunk 主干版本,即SVN存储库汇总最新可用的版本,然而使用这个版本的代价在于这个版本可能不稳定,最近,从版本3.4开始,LLVM社区致力于修正发布,引入新的修订版本号。
2025-03-18 22:46:11
867
原创 hevc编码芯片设计-数据重用
因此,Zhou等将搜索窗设置为水平+-211 垂直 +-106的菱形,适用于动态较大的视频场景,首先以菱形方式粗搜,而后以全搜索方式进一步精搜,但是,这种复杂的搜索模式会导致非常大的的仿存带宽。Kim等首先分析了 不同尺寸分块的最佳运动矢量分布,发现大块的运动矢量与其下小块的运动矢量的大小非常相似,因此该方案只对尺寸小于或者等于16x16的块做运动估计,而对尺寸大于16x16的块直接取左上角16x16块的MV作为其最佳MV。Hu等同样采用了两步搜索方案。因此,该方案可以减少搜索点数目,大幅缩短搜索时间。
2025-03-16 08:41:05
467
原创 hevc视频编码-搜索窗口和快速搜索
因此,第四步的搜索步长是逐步收敛的,从先前的最优步长逐步递减到1(同样以2的指数递减。BD-Rate 是衡量图像编码效率的评判标准,表征的是在相同PSNR 图像质量下,不同编码方法之间的BitRate 的情况,以下实验基于HEVC测试视频系列,在HM 平台完成,采用帧间搜索的默认设置,但仅采用1帧参考帧。搜索的开始先判断第二步 得到的最佳匹配位置与搜索中心之间的距离,若该距离为0,则直接跳过这一步的搜索过程;若该距离比预设值iRaster 要大,则要进行一次以iRaster为步长的光栅搜索,即全搜索;
2025-03-15 23:45:05
331
原创 linux内核mmap映射区域
当用户使用malloc申请大于128KB的堆内存时内存分配器会通过mmap系统调用在linux进程虚拟空间中直接映射一片内存给用户使用这片使用mmap映射的内存区域比较神秘。当我们运行一个程序时需要从磁盘上将该可执行文件加载到内存。将文件加载到内存有两种常用的操作方法一种是通过常规的文件IO操作如readwrite等系统。
2025-03-15 08:29:06
438
原创 SVT-AV1源码分析函数 svt_av1_cost_coeffs_txb
/更新基础CDF update_cdf(ec_ctx->coeff_base_cdf[txs_ctx][plane_type][coeff_ctx], AOMMIN(level, 3), 4);//定义存储系数级别的缓冲区。int16_t txb_skip_ctx, //变换块是否跳过上下文索引,用于熵编码概率模型的选择。
2025-03-12 16:27:53
839
原创 SVT-AV1源码分析函数 svt_av1_optimize_b
1.1 量化处理,根据量化参数对输入的变换系数进行量化,得到量化后的系数存储在qcoeff_ptr中,量化过程会会根据picture_qp, delta_q_present 等参数调整量化步长,以控制编码后的比特率质量。2 去量化处理,对量化后的系数进行去量化,得到去量化后的系数存储在dqcoeff_ptr中,,反量化后的系数用于后续的重建过程,以生成预测块。
2025-03-12 00:12:51
771
原创 SVT-AV1源码分析build_intra_predictors函数
build_intra_predictors函数作用。:指向宏块解码结构体的指针,包含当前宏块的解码信息。三 考虑多种因素进行预测。(如角度预测模式等)
2025-03-10 23:45:12
533
原创 SVT-AV1帧内编码
svt_av1_predict_intra_block_16bit 16bits深度帧内预测编码。svt_av1_intra_prediction_cl 帧内预测chroma luma。svt_av1_predict_intra_block 帧内块预测编码。seq_header_ptr->sb_size, // 超级块尺寸。row_off, col_off, // 变换块偏移。mi_row, mi_col, // 宏块位置。
2025-02-28 18:36:33
673
原创 SVT-AV1接入ffmpeg说明
1 << pack_mode_10bit 如果pack_mode_10bit 为1,则乘以2,否则乘以1,这用语计算10位编码时的额外数据大小。//如果同时支持8位和10位编码,则两者的大小相加。
2025-02-25 18:42:05
937
转载 WebRTC拥塞控制算法--GCC介绍
网络拥塞是基于IP协议的数据报交换网络中常见的一种网络传输问题,对网络传输的质量有严重的影响,网络拥塞是导致吞吐降低,网络丢包等的主要原因之一,这些问题使得上层应用无法有效的利用网络带宽获得高质量的网络传输效果。特别是在通信领域,网络拥塞导致的丢包,延迟,抖动等问题,严重的影响了通信质量,如果不能很好的解决这些问题,一个通信产品就无法在现实环境中正常使用。
2025-01-09 11:57:52
94
原创 libaom 源码分析线程结构
/设置宏块解码器上下文的错误信息。三 libaom 线程调用关系。一 libaom线程启动函数。二 libaom线程调用栈。
2025-01-03 16:04:30
742
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人