- 博客(61)
- 收藏
- 关注
原创 查看 .so 库(共享对象库)的依赖
如果你是在使用基于 RPM 的发行版(如 Red Hat, CentOS, Fedora 等),可以使用 rpm 命令来查找 .so 文件属于哪个 RPM 包。readelf 命令可以读取 ELF 格式的文件信息,包括 .so 文件。objdump 命令也可以用来查看 .so 文件的依赖库。通过上述方法,你可以轻松地查看 .so 文件的依赖库,并且找到它们在系统上的位置。在 Linux 中查看 .so 库(共享对象库)的依赖,可以使用几个不同的命令。输出将会显示 .so 文件所属的 RPM 包名称。
2024-09-30 17:50:19
1798
原创 undefined reference to `dladdr@GLIBC_2.34` 和 `std::__exception_ptr::exception_ptr::_M_rel
在/etc/apt/sources.list文件末尾增加:deb http://mirrors.aliyun.com/ubuntu/ jammy main。运行 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI。安装完后运行,sudo apt --fix-broken install。然后ldd --version再查看下版本是否升级好了。ldd --version 查看GLIBC的版本。上面只是安装了C库,C++库没有更新,
2024-09-29 15:32:46
660
原创 ls 命令出现段错误(Segmentation Fault)
通过以上步骤,你可以逐步排查 ls 命令出现段错误的原因。关键在于生成并分析核心转储文件,使用 gdb 和 strace 等工具来深入了解问题发生的上下文。同时,检查系统日志和使用内存检测工具也能提供额外的帮助。
2024-09-26 09:06:56
965
原创 dlopen函数的执行过程
其中:filename:要加载的共享库文件的路径。flag:指定打开共享库的方式,常见的标志位有 RTLD_LAZY 和 RTLD_NOW。dlopen 函数的具体操作打开文件dlopen 首先会打开指定的共享库文件,并检查其格式是否为有效的 ELF 文件。如果文件不是有效的 ELF 文件,则返回 NULL 并设置 dlerror。映射到内存将共享库文件映射到进程的虚拟地址空间中。这通常通过 mmap 系统调用完成。映射完成后,共享库中的代码和数据段会被加载到内存中。重定位。
2024-09-25 14:29:20
658
原创 Utgard风格的平铺和Arm FrameBuffer Compression(AFBC)
Utgard风格的平铺和Arm FrameBuffer Compression(AFBC)是两种不同的纹理和帧缓冲区压缩技术,它们在性能上有显著差异。
2024-09-19 16:16:07
1535
原创 解析查看elf文件的构成
x86下用clang编译一段c代码,编译成elf文件,读elf文件,dump出里面的所有段,并打印出段中的数据和含义以及汇编的内容。
2024-09-05 12:00:00
472
原创 片上存储、DDR、Shared Memory以及DRAM的区别
片上存储(On-chip Memory)、DDR(Double Data Rate SDRAM)、Shared Memory(共享内存)以及DRAM(Dynamic Random Access Memory)都是计算机系统中用于存储数据的机制,但它们各自有不同的特性和用途。
2024-09-04 19:12:57
1251
原创 IR的表示形式分类
AST是一种表示源代码结构的树形结构,其中每个节点代表一个语法元素,例如表达式、语句或函数。AST是许多编译器的前端的一部分,用于解析和检查源代码。
2024-09-03 13:28:34
425
原创 程序运行过程
操作系统在加载可执行程序时,会将程序的各个段映射到内存中,并为程序分配必要的内存资源。堆和栈的大小在程序启动时由操作系统预先分配,堆的大小可以动态增长,而栈的大小可以通过编译器选项或环境变量来调整。动态链接器(Dynamic Linker)负责将程序所需的动态库加载到内存中,并更新相应的符号引用。加载器负责将程序的各个部分从磁盘加载到内存中,并设置好相应的内存布局。编译好的程序在运行时涉及多个步骤,包括加载、链接、初始化和执行。加载器负责将程序的各个部分从磁盘加载到内存中,并设置好相应的内存布局。
2024-09-02 12:50:13
688
原创 glsl中使用自定义的struct
opengl的glsl spec说可以使用自定义的struct,这里做下测试,验证下,整体来说,这个struct对uniform单独使用没有什么作用,是给shader程序中数据整理用的。glGetUniform的时候和数组一样,name要指定到最基本的类型中,unform没有给自定义的类型设置值的,这个要在高版本中用uniform block。和C中不一样,glsl的语法中的是不需要typedef,struct定义完了直接就是类型。
2024-08-28 10:19:59
255
原创 AEC10 SA计算整理 --- ADRCCapSA & AuxRoleFrameSA & AFBrktFrameSA
在计算 TriggerCtrlADRCCap 时,需要综合考虑多个限制条件,包括闪烁检测、曝光次数限制等。优化后的公式如下:触发控制自动动态范围压缩(ADRC)的能力值计算TriggerCtrlADRCCap, # 初始或预设值ADRCFlickerCap, # 基于闪烁检测的限制ADRCExposureCountCap # 基于曝光次数的限制如果人脸检测置信度极低,则可能使用不同的计算方式(但原公式似乎有误,未明确展示不同计算)
2024-07-30 10:38:25
974
原创 AEC10 SA计算整理 --- ADRCCapSA & AuxRoleFrameSA & AFBrktFrameSA
在计算 TriggerCtrlADRCCap 时,需要综合考虑多个限制条件,包括闪烁检测、曝光次数限制等。优化后的公式如下:触发控制自动动态范围压缩(ADRC)的能力值计算TriggerCtrlADRCCap, # 初始或预设值ADRCFlickerCap, # 基于闪烁检测的限制ADRCExposureCountCap # 基于曝光次数的限制如果人脸检测置信度极低,则可能使用不同的计算方式(但原公式似乎有误,未明确展示不同计算)
2024-07-15 18:00:10
633
原创 AEC10 SA计算整理 --- ExtremeColorSA & SaliencySA
在图像处理中,自动曝光算法对于提升图像质量至关重要,特别是在光线变化复杂的环境下。本文将详细介绍并优化两种自动曝光算法:SaliencySA 和 ExtremeColorSA,通过调整曝光参数以适应不同的光照条件和颜色特性。
2024-07-11 09:01:47
553
原创 AEC10 SA计算整理 --- 基础SA
LuxSALuma: 计算16x16区域的平均亮度(Luma值)。LuxSATarget: 通过参数设置获取目标亮度值(通常与当前光线条件相关)。LuxSAAdjRatio: 计算调整比例,即目标亮度与当前亮度的比值。
2024-07-09 09:07:28
527
原创 AEC10 SA计算整理 --- YHistSA & BrightenImgSA
在YHistSA部分,我们主要对图像的亮度直方图进行动态调整,以适应不同的光照条件。
2024-07-08 10:41:33
941
原创 AEC10 SA计算整理 --- 3HDR相关
在探讨Safe3HDRSnapshotSA的计算时,我们首先需要明确其调整比例(AdjRatio)的计算方式。这一比例是基于SafeAggSA模式下的3HDR安全曝光值(SafeExp)与触发控制短曝光值(TriggerCtrlShortExp)之间的比值来确定的。
2024-07-08 10:40:56
935
原创 AEC10 SA计算整理 --- Agg相关
在SafeAggSA模块中,我们旨在通过最小化加权绝对差异来优化调整比例,以达到最佳的图像质量。具体计算如下:计算HDR安全曝光下的调整因子计算EV0下的安全调整因子最终确定SafeAggSA的调整比例。
2024-07-05 19:09:27
1545
1
原创 AEC10 SA计算整理 --- SatPrev & DarkPrev
在SatPrevSA的计算中,我们首先定义亮部预览的亮度(Luma)为SatPrevHighPCTLLuma。目标饱和度(SATarget)通过参数设置获取,形式为[setparam/tr:lux+lux](这里假设lux为变量占位符,实际使用中需替换为具体值)。接着,我们计算调整比率(Adjustment Ratio)的帧内平均目标值(FSATgt),该值基于目标饱和度、当前帧与目标帧的亮度比。
2024-07-05 19:03:37
780
原创 AEC10 SA计算整理 --- Depth & Tracker
DepthSALuma=NormalizedWeightedSum(DepthLuma,FrameLumaBE16x16)DepthSATarget=[setparam/tr:lux+lux]DepthSADistanceStorage=(TriggerCtrlDistance>0.0)?TriggerCtrlDistance:DepthSADistanceStorageDepthSALumaWeight=[setparam/tr:lux+DepthSADistanceStorage]DepthSA
2024-07-04 17:07:18
403
原创 用Chromatix进行tuning流程
初始化可以中需要的配置:target(硬件MSM8x16等),version(ISP的版本),driver info(sensor的驱动信息:fps,line cnt,gain,bayer patern,crop和black level等),image info(图像信息:宽高等)c、MCC照片:70%视野,D65、D50、TL84、CWF、A、室外1000lux或最亮各拍一张,TL84在500lux、200lux、100lux、50lux、10lux,D65在10lux各一张。
2024-07-03 15:06:03
1586
原创 GPU性能相关的工具
一般常见的都是这种。android提供的一个工具GPU Debugger,可以分析GLES程序的GPU 性能:http://tools.android.com/tech-docs/gpu-profiler。GPU的性能测试工具比较多,已知的各个开发厂家是有自己开发的性能测试工具,一般市场上开源或通用的性能测试工具,主要是跑定制的渲染场景,统计平均帧率,经过包装得到跑分值。AMD的GPU性能呢个工具:https://gpuopen.com/radeon-gpu-profiler-1-4/
2024-06-18 14:02:31
1465
原创 libdrm 2.4.107 needed because amdgpu has the highest requirement
原因是前面解决llvm-config版本不对时,把/usr/bin/llvm-config删掉了,直接用cp /usr/bin/llvm-config-12 /usr/bin/llvm-config。打开"/usr/lib/python3/dist-packages/mesonbuild/dependencies/dev.py的前面备注的是LLVM的环境库的查找。改用ln -s /usr/bin/llvm-config-12 /usr/bin/llvm-config。
2024-06-17 19:20:02
799
原创 VSCode的几种配置方法
可以参考:https://blog.csdn.net/Wannna/article/details/105109375。可能不同的编译器配置的方式不同,主要是编译选项和方式写法不同。问题点是,要通过windows的命令窗口打开工程。编译器用cl.exe。
2024-06-17 19:18:08
461
原创 glmark2代码阅读总结
glmark2代码阅读总结一、总体用输入参数生成testbench项用scene和benchmark管理进行复用通过类的重载,创建出不同的分支和具体的实现点,如scene和mainloop类用例执行又规划,每个scene都统一有setup,等使用scene的继承关系,整体的调用流程就比较简单,好组织二、小技巧1. 一组字符串添加间隔方法用一个static的变量控制第一个std::string Values;for (iterator It = Map.begin(); I
2024-06-17 19:11:51
918
原创 ioquake笔记
这里写自定义目录标题边际成本平均成本功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入边际成本MC:产量增加1个单位引擎的总成本的增量。计算方法是总成本的变动量除以产量增加的变动量。平均成本平均成本AC分成:平均固定成本AF
2024-06-17 19:09:20
760
1
原创 SHA-1哈希算法简介
该算法的主要思想是将任意长度的输入数据(通常称为“消息”或“明文”)通过一系列复杂的数学和逻辑运算,转换为一个固定长度(通常为160位,即20字节或40个十六进制数)的输出值,这个输出值被称为“哈希值”、“消息摘要”或“散列值”。由于SHA-1能够生成固定长度的哈希值,因此它被广泛用于验证数据的完整性和生成数字签名。然而,随着计算机技术的发展,SHA-1算法的安全性已经受到了一定的挑战,因此在需要更高安全性的应用中,建议使用更安全的哈希算法,如SHA-256或SHA-3。
2024-06-12 10:38:12
1220
原创 【Mesa EGL代码分析 --- 环境配置】
enable_drienable_glxenable_eglenable_gbmzlib1g-devpkg-configdrm:cd drmmake -j8。
2024-06-02 15:33:53
719
1
原创 内存管理【侯捷】——— const和new
内存管理【侯捷】——— const和new相关资料:书籍:《Small Memory Software》《Modern C++ Design》C++ Applications| | | C++ Library| | C++ primitives(new,new[], operator new)| CRT(malloc/free)OS API (HeapAlloc, VitualAlloc)...
2022-09-23 16:54:22
218
原创 glmark2代码分析8(其他scene)
Effect2D 主要实现的功能和测试点:实现方式:只有一个类 SceneEffect2Dcreate_convolution_fragment_shader:创建图像卷积的shader程序,用字符串替换的方式,传入的参数是:图像的宽高、卷积因子kernel_printout: 打印shader函数parse_matrix:将矩阵的字符串形式转成数字矩阵normalize:对kernel矩阵进行Normalizessetup:查找纹理 effect-2d,加载shader,解析输入参数,创建g
2022-09-23 16:52:54
1290
原创 Linux下查看和监控GPU 信息的工具汇总
GPU信息查看要获取显卡信息,只有两种可能,一种是通过系统的API访问,或者直接读取/dev/下相关文件的状态,另一种方式是通过BIOS读取。1. 通过PCI查看通用的方法,通过lspci查看:lspci | grep -i vga前边的序号 "00:0f.0"是显卡的代号,然后lspci -v -s 00:0f.0其他方法:监控程序glances与其GPU monitoring plug-in一起使用:开源安装:sudo apt-get install -y python-pi
2022-09-23 16:52:13
7967
1
原创 纹理压缩(二) ETC格式
ETC:每个子块中只存储一个基色,剩下的由亮度变换得到。先存一个基色和一个luma index值,通过luma index从亮度表中查出亮度四个亮度修改值,然后加到基色上得到四个基色,再按照后面的索引表中的索引进行填充即可。ETC1:两个ETC拼在一起,做一个4x4的像素块,分两中模式,individual模式中两个基色color0、color1都是444格式的,differential模式中,color0用555格式,color1用3bit的差值存储,R1=R0+dR0得到。剩下两个标志位:d
2022-05-06 17:09:33
3122
原创 纹理压缩(一)BC格式
BC系列:从BTC和CCC演变过来的BC1(S3TC、DXT1):是CCC中将索引改成两位表示,用64bit压缩16个像素,压缩比4bpp。两个32bit的数,第一个32bit中存了两个基色color0和color1,第二个32bit中存了一个4x4的索引表,每个索引是2bit。通过color0和color1算出另外两个基色,计算方法有两种,先比较两个基色大小,如果是color0<=color1,就表示图像中有alpha值,这个alpha只能表示1bit的值,即:全透明或不透明联众,blac
2022-05-06 09:56:49
2072
原创 编译AMD Compressonator遇到的问题
Compressonator有有Windows版本的可以直接下载安装,但是想加一些debug的输出,Windows下用visual studio编译需要安装cmake qt等一些列配置,以及VS工程配置,还是觉得Linux下编译比较方便。
2022-04-28 18:47:34
495
原创 Could not find a package configuration file provided by “Qt5WebEngineWidgets“ with any of the follow
问题:Could not find a package configuration file provided by “Qt5WebEngineWidgets” with any of the follow解决方法:安装:下面两个库:sudo apt-get install -y libqt5webenginewidgets5sudo apt-get install -y qtwebengine5-dev
2022-04-28 15:34:53
1508
原创 Could not find a package configuration file provided by “Qt5Qml“
解决方法:sudo apt-get install qtdeclarative5-dev
2022-04-28 14:53:29
788
原创 WSL登录失败:未授权用户再次计算机上的请求登录类型
WSL登录失败:未授权用户再次计算机上的请求登录类型问题:解决方法:问题:电脑安装东西后重启WSL中的Ubuntu,提示:登录失败:未授权用户再次计算机上的请求登录类型重启之前是正常的解决方法:Win+R用管理者权限打开shell,重启虚拟机:Get-Service vmcompute | Restart-Service...
2022-04-25 10:41:06
4299
1
原创 Linux 下 Qt工具使用过程问题记录
find -name Qt1.进入Qt5.5.1的安装目录:例如我的目录:cd /opt/Qt5.5.1;2.运行命令:./MaintenanceTool;3.进入图形化界面,按照操作卸载即可。
2021-03-16 11:18:39
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人