- 博客(376)
- 资源 (26)
- 收藏
- 关注

原创 关于视频技术发展趋势的一些理解
视频行业近几年经历了飞速的发展,一些新的视频用语和应用逐步进入我们的生活中,例如VR,短视频,视频云,智能视频等。这些炫酷的词语可能让你眼花缭乱,不知所云。 本文试图从一个较高层次对视频的未来进行总结和分析,主要目的是抛砖引玉,并增进对视频系统技术发展趋势的理解。 视频技术的发展主要是随着“互联网+”和人工智能AI等新技术的发展而不断往前推进,它与云计算和...
2018-03-18 15:52:54
8146

转载 AMD ROCm 平台简介
最近,AMD 发布 MIOpen。至此,AMD 始于15年的打造 GPU 计算生态的 Boltzmann Initiative,有了阶段性的成果。下面本文从深度学习计算的视角来审视一下 AMD 推出的 ROCm 生态。当然, ROCm 是一个完整的 GPGPU 生态,这里的讨论大体也适用于其他应用领域。 1. OverviewROCm 的目标是建立可替代 CUDA 的生态(图1),并在源码级别...
2018-02-26 20:00:49
10885
1

原创 数字视频编解码基础
1. 绪论人类社会的三大支柱是物质、能量和信息。具体而言,农业现代化的基础是物质,工业现代化的支柱是能量,而信息化的支柱是信息。90 年代以来,随着Internet和移动通信的迅猛发展,视频信息和多媒体信息在Internet 网络和移动网络中的处理和传输成为了当前我国信息化中的热点技术,数字视频技术在通信和广播领域获得了日益广泛的应用。视频信息具有直观性、确切性、高效性、广泛
2015-03-07 12:35:01
4260
1

原创 Using valgrind to detect memory errors使用valgrind检测内存错误
原创作品,转载请注明出处1 OverviewThis document makes a investigation on issue of resource leaks and how to detect them using valgrind.1.1 Document OrganizationAfter a brief introduction of the conce
2014-12-24 16:53:01
3404

原创 "select一直返回0"的问题解决和总结
场景:一个简单的TCP 服务器我在linux平台下,创建一个TCP套接字,绑定到49156端口,向UPNP SERVER发一个subscribe订阅请求,超时时间设置为5minutes.然后开启一个Thread_Main主接收线程。该线程完成以下工作:(1)调用select监听是否有数据可读,设置4s的超时;(2)如果select返回值正常(>0),则调用accept,接收客户
2013-12-24 16:45:30
33369
7

原创 gSOAP C++移植和开发总结
1.cannot open file "custom/duration.h" for reading:解决办法:把gsoap2.8.15/gsoap/custom目录拷贝到当前工作目录2.stdsoap2.cpp:8888: undefined reference to `namespaces解决办法make file:CFLAGS := -g -O2 -Wall -W
2013-10-21 22:49:56
12683
1

原创 从总体上把握Linux内存管理
1.建立内存碎片的概念 内存碎片分为:内部碎片和外部碎片 1.1 内部碎片 内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间; 内部碎片是处于区域内部或页面内部的存储块。占有这些区域或页面的进程并不使用这个块。而在进程占有这块存储存储块时,系统无法利用它。直到进程释放它,或进程结束时,系统才有可能利用这个存储块。
2013-04-07 15:00:24
1849

原创 快速上手Gobject
What is G-object?—很多人被灌输了这样一种概念:要写面向对象程序,那么就需要学习一种面向对象编程语言,例如C++、Java、C#等等,而C语言是用来编写结构化程序的。—事实上,面向对象只是一种编程思想,不是一种编程语言。换句话说,面向对象是一种游戏规则,它不是游戏。—Gobject,亦称Glib对象系统,是一个程序库,它可以帮助我们使用C语言编写面向对象程序;它提供了一
2012-07-24 10:12:52
29218
5

原创 深入浅出gstreamer开发
Gstreamer解决什么问题?—上层接口和应用方式的相对稳定与底层接口、平台环境的多样化。例如:codec不同种类不同实现,音视频处理不同,硬件输入、输出、采集播放不同,芯片不同,操作系统不同。—通用组件不灵活与需求的多变。色彩空间转换、缩放、编解码等组件功能是单一的。通过对这些组件进行组合,就可以满足多变的需求。要想拥有模块性、可移植性和通用的功能,通常是以极高的复杂性为代价。—计
2012-07-24 09:48:37
15634
2

原创 相见恨晚之gstreamer核心源码走读typefind原理和对象关系浅析(三) .
mark>待完善 Smith先生版权所有, 如需转载,请注明出处:本博客链接http://blog.youkuaiyun.com/acs713/article/details/7742976
2012-07-17 17:26:55
5548
1

原创 B-树学习笔记
B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。按照翻译,B 通常认为是Balance的简称.这个数据结构一般用于数据库的索引,综合效率较高。 B-tree中
2011-10-17 10:28:04
16660
原创 环形链表是否
给定一个链表,返回链表开始入环的第一个节点。从链表的头节点开始沿着。指针进入环的第一个节点为环的入口节点。如果链表无环,则返回。来表示链表尾连接到链表中的位置(索引从 0 开始)。为了表示给定链表中的环,我们使用整数。,则在该链表中没有环。不允许修改给定的链表。
2024-06-06 16:11:10
178
原创 请分别介绍下UART、I2C、SPI等协议的共同点,不同之处以及适用场景
UART:适用于对实时性要求不高、传输距离相对较远的场合,如远程控制、简单设备间通信。I2C:适合于设备密度高、空间受限的环境,如电路板上的传感器和微控制器之间的通信。SPI:在需要高速数据交换和系统内部通信时更为合适,尤其是在那些对数据传输速率有较高要求的场景。
2024-06-06 09:03:36
735
原创 实时计算及异构计算随笔笔记
同时,GPU还会引入新的算法,会将画面先分为若干独立区域,利用面部模型先排除掉完全无人脸特征的区域,然后对剩下的区域进行并行计算(识别),效率可大幅提升。而在AFDS 2012上,这一技术的升级版再度出击——与去年不同的是,如今,你使用APU平台笔记本,抑或是使用带有AMD独显,就能实实在在地感受到这一技术带来的良好特性。人脸识别是生物识别这个大范畴中的一类,目前广泛地运用在日常的娱乐生活中,相机拍照、摄像头人脸识别登录,甚至是目前很火的摄像头动作感应游戏,都是基于人脸识别系统的。3、异构计算的典型应用。
2024-05-26 19:51:00
197
原创 AMD ROCm-HIP Programming model reference
【代码】AMD ROCm-HIP Programming model reference。
2024-05-24 19:19:43
731
原创 AMD GPUhttps://rocm.docs.amd.com/projects/HIP/en/latest/understand/hardware_implementation.html
hostdevicehostdevice。
2024-05-23 21:33:54
786
原创 音视频基础概念对比
比如,8 bit 位深可以拥有 48 分贝的动态范围,16 bit 位深可以拥有 96 分贝的动态范围,24 bit 位深可以拥有 144 分贝的动态范围,32 bit 位深可以拥有 192 分贝的动态范围。对声音进行数字化,首先要使用特定的设备对声音进行采集,比如麦克风就是常见的声音采集设备。声音是一种纵波,会压缩空气也会压缩这层碳膜,碳膜在受到挤压时也会发出振动,在碳膜的下方就是一个电极,碳膜在振动的时候会接触电极,接触时间的长短和频率与声波的振动幅度和频率有关,这样就完成了声音信号到电信号的转换。
2024-05-20 22:18:37
950
原创 What Is a Framework?
A framework is a structure that you can build software on. It serves as a foundation, so you’re not starting entirely from scratch. Frameworks are typically associated with a specific programming language and are suited to different types of tasks.Let’s sa
2024-05-16 09:28:53
738
1
原创 请介绍下H264的多参考帧技术及其应用场景,并请说明下为什么要有多参考帧?
H.264和H.265都采用了多参考帧技术来提高帧间预测的准确性。通过允许编码器在编码当前帧时参考多个之前已编码的帧,这两种标准都能够在提高编码效率的同时减少失真。然而,H.265在继承H.264技术的基础上进行了更多的优化和改进,包括支持更多的参考帧数量、改进参考帧管理机制和采用更灵活的编码结构等。这些改进使得H.265在视频编码方面具有更高的效率和更好的质量。H265(HEVC)和H264(AVC)在支持的最大参考帧数量上有所不同。在H.265标准中,最大参考帧的默认值通常设置为4。
2024-05-15 03:15:00
1401
原创 glFinish和glFlush的区别
glFinish():与glFlush()不同,glFinish()函数会阻塞调用线程,直到命令队列中的所有OpenGL命令都执行完毕,并且图形硬件完成了所有相关操作。glFlush():当你想确保OpenGL命令被发送并开始执行,但不想等待它们完成时,可以使用glFlush()。例如,在连续渲染多帧的动画中,你可能希望在每帧结束时调用glFlush(),以确保命令被发送到硬件,但不需要等待它们完成就可以继续处理下一帧。相比之下,glFlush()是异步的,它不会阻塞调用线程,因此通常具有更好的性能。
2024-05-14 21:47:10
562
原创 0514媒体处理面试题
选择HLG还是PQ主要取决于内容的传播方式、目标观众的观看设备以及是否需要高度精确的动态范围控制。HLG更倾向于广播和兼容性,而PQ则更专注于提供最高质量的HDR体验,特别是在点播和预录制内容的场景中。HLG(Hybrid Log-Gamma)本身作为一种高动态范围(HDR)的传输标准,并没有严格规定一个“最大支持的显示亮度”。相反,HLG设计的初衷是为了提供更好的亮度和色彩范围适应性,能够在不同亮度级别的显示设备上工作,从标准动态范围(SDR)到高动态范围(HDR)显示设备。
2024-05-14 12:48:13
764
原创 MLT剪辑sample
/ 将Filter附加到Producer上。// 设置亮度为+20%// mlt_producer_seek(producer, 10.0);// 跳转到第10秒。// 加载素材(这里假设我们有一个名为"video.mp4"的视频文件)// 创建一个Consumer(这里假设我们输出到文件)// 创建一个Filter(这里以亮度调整为例)// 设置播放位置(如果需要的话)// 运行并渲染剪辑。
2024-05-14 08:09:40
317
原创 弱网对抗的策略有哪些?
在弱网环境下,数据传输可能会面临丢包、延迟、抖动等问题,因此采取合适的弱网对抗策略对于确保数据传输的稳定性和可靠性至关重要。这些策略可以根据具体的应用场景和需求进行选择和组合,以达到最佳的弱网对抗效果。
2024-05-14 03:45:00
753
原创 高性能计算基础
答:1. CUDA的线程组织结构 CUDA(Compute Unified Device Architecture)是NVIDIA推出的一种并行计算平台和编程模型,它使得开发者能够利用GPU的强大并行计算能力来加速计算密集型任务。CUDA的线程组织结构是其核心概念之一,主要包括三个层次:线程(Thread)、线程块(Block)和网格(Grid)。下面是对这三个概念的简要说明:线程(Thread): 线程是最小的执行单元。在CUDA编程中,程序员编写所谓的“核函数”(Kernel Function),这
2024-05-13 19:17:15
1152
原创 弱网对抗的策略有哪些?
它有两种类型:静态的和动态的。而动态抖动缓冲器则是基于软件的,由网络管理员配置以适应网络延迟的改变。具体来说,Jitter Buffer是一个共享的数据区域,用于缓存和处理实时音视频数据。它的工作原理是通过存储和重新排序接收到的数据包,以消除网络传输中的抖动和延迟。在弱网环境下,数据传输可能会面临丢包、延迟、抖动等问题,因此采取合适的弱网对抗策略对于确保数据传输的稳定性和可靠性至关重要。总的来说,Jitter Buffer是一种关键的机制,用于确保实时音视频通信的质量和稳定性。弱网对抗的策略有哪些?
2024-05-13 00:45:00
540
原创 GPU prompt
顶点着色器和像素着色器都是在同一单元中执行的(在原来的架构中vs和ps的确是分开的,后来nv把这个统一了)vs是按照三角形来处理的,ps是按照像素来并行处理的vs和ps中数据是通过L1和L2缓存传递的warp和thread都是逻辑上的概念,sm和sp都是物理上的概念,线程数!= 流处理器数尽量使用自己拓展的几何实例化替代Unity提供的静态合批、动态合批、前者将合并mesh增加vbo的内存占用,后者则会增加cpu端的耗时开销。
2024-05-12 17:25:44
1104
原创 CUDA专项
1、讲讲shared memory bank conflict的发生场景?以及你能想到哪些解决方案?CUDA中的共享内存(Shared Memory)是GPU上的一种快速内存,通常用于在CUDA线程(Thread)之间共享数据。然而,当多个线程同时访问共享内存的不同位置时,可能会遇到bank conflict(银行冲突)的问题,这会导致性能下降。
2024-05-11 22:52:18
1533
1
原创 讲讲C++四种类型转换
静态类型转换(Static Cast):用于基础数据类型和指针/引用之间的转换,但不包括不安全的向下转型。动态类型转换(Dynamic Cast):用于类层次结构中的安全向下转型。重新解释类型转换(Reinterpret Cast):提供低级别的位模式转换,告诉编译器如何解释给定的数据。常量类型转换(Const Cast):用于移除对象的常量性或挥发性。
2024-05-11 22:34:49
419
原创 单例模式如何实现?
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。在 C++ 中,可以通过将构造函数设为私有,并提供一个静态方法来获取或创建类的实例来实现单例模式。在 C++11 及以后的版本中,我们可以使用更简洁和线程安全的方式来实现单例模式。
2024-05-11 22:24:18
301
原创 static关键字作用
在函数内部定义的静态局部变量在函数调用结束后不会被销毁,而是保留其值,直到程序结束。静态成员变量是类的所有实例共享的变量。在全局作用域中定义的静态变量只能被定义它的源文件中的函数访问。这意味着静态全局变量提供了文件作用域,使得变量仅在该文件中可见,而对其他文件是隐藏的。静态函数(非类的静态成员函数)在全局作用域中定义,并且只能被定义它的文件中的其他函数访问。是不合法的,因为构造函数和析构函数与类的实例紧密相关。包括静态成员变量和静态成员函数,它们与类关联,但不与类的任何特定实例关联。
2024-05-11 22:15:31
299
原创 为什么我们做C++项目的时候,需要写头文件
扩展名)的使用是组织代码、提高可重用性和维护性的关键部分。总之,头文件在C++项目中起着至关重要的作用,它们帮助我们组织代码、提高可重用性和维护性,并确保类型安全性。在C++项目中,头文件(通常具有。
2024-05-11 22:12:39
824
原创 C++ 实现整数的整数次幂
在C++中,你可以使用一个简单的循环或递归来实现整数的整数次幂。然而,递归在处理大指数时可能会导致堆栈溢出,所以通常推荐使用循环。函数使用了快速幂算法,它通过每次将指数减半来减少必要的乘法次数,从而显著提高了大指数时的计算效率。
2024-05-11 13:43:43
506
原创 【无标题】
然而,在视频编码和处理的上下文中,"全局运动向量" 或 "全局运动估计" 的概念经常与背景建模、场景稳定化(去抖动)或视频拼接等任务相关联。在视频编码中,每个宏块(Macroblock, MB)或更小的单元(如子宏块、树形编码块等)通常会有自己的运动向量(Motion Vector, MV),这些向量描述了从当前帧到参考帧中相应块的位移。需要注意的是,全局运动向量的估计和补偿是可选的,并且可能需要根据具体的应用场景和需求进行实现和优化。此外,不同的编码器实现可能会有不同的方法和算法来估计和补偿全局运动。
2024-05-11 13:33:09
894
原创 H264 SP帧等知识笔记
参考帧是用于预测其他帧的帧。H.264视频编码标准中定义的SP帧(Switchable P frame)是一种特殊类型的P帧(Predictive frame,预测帧),旨在解决定期插入I帧(Intra frame,帧内编码帧)带来的视频流数据量急剧增加和流间切换引起的漂移问题。P帧是参考之前的I帧或P帧进行编码的帧,而B帧则是参考前后两个帧进行编码的帧。需要注意的是,SP帧的编码过程中使用的量化参数SPQP和PQP可以不同,这允许对预测块系数采用引入失真更小的量化参数,从而使产生的重建误差更小。
2024-05-10 17:30:13
663
深入浅出gSOAP C++移植和开发
2013-11-18
Linux/unix shell-scriptting编程经典PPT
2011-05-01
嵌入式Linux应用程序开发详解(完整版)
2011-04-04
GNU/Linux Application Programming(英文版)
2011-04-04
Linux_Posix多线程编程原理与实践(中文版)
2011-04-04
Object-Oriented+Programming+And+The+Objective-C+Language.pdf
2010-03-31
ubuntu系统管理教程
2009-05-14
Teach Yourself C in 21 Days
2009-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人