
多媒体
文章平均质量分 57
volvet
Mail: volvet2002@gmail.com
展开
-
OpenMedia: 下一代免费的视频编解码器
Open. Fast. Royalty-free.WE ARE INDUSTRY LEADING COMPANIES FOCUSED ON DEVELOPING NEXT-GENERATION MEDIA CODECS, FORMATS AND TECHNOLOGIES IN THE PUBLIC INTEREST.Launched in 2015, the Alliance fo转载 2016-04-13 19:53:16 · 1729 阅读 · 0 评论 -
3d 绘制中的光照
In order to start constructing realistic scenes, we need a way to model how light interacts with surfaces. Fortunately, much of computer graphics concerns itself with figuring out clever ways to appro转载 2016-04-04 09:37:37 · 733 阅读 · 0 评论 -
MTLRenderPassDescriptor
在创建MTLRenderCommandEncoder对象的时候需要传入 MTLRenderPassDescriptor 作为参数, 那么MTLRenderPassDescritpor 是个什么东西, 应该如何设置其中的参数呢? 1. 创建 MTLRenderPassDescriptor+ (MTLRenderPassDescriptor *)renderPassDescr原创 2016-04-03 13:38:21 · 1910 阅读 · 0 评论 -
非常好的opengl 教程
非常好的opengl 教程, step by step 的从最简单的三角形 开始 一直复杂的3d 场景绘制http://ogldev.atspace.co.uk/index.html转载 2016-01-13 18:00:46 · 1714 阅读 · 0 评论 -
Lua 编程: 如何给文件写入二进制数据
Lua 是很轻量级的脚本语言, 功能也很强大, 但是Lua 的IO 中的文件操作却没有提供直接写入数值的方法, 用file::write写入整数的时候 发现整数是先被转成String, 然后作为String 写入文件的, 这个多半不是期望的结果吧, 那么如何写入二进制数据呢? 这里有一个小技巧, 请看如下代码local function writebytes(f,x)原创 2016-02-21 17:02:26 · 8747 阅读 · 0 评论 -
GLKit Framework 浅析
GLKit Framework GLKit 框架的设计目标是为了简化基于OpenGL或者OpenGL ES的应用开发。 GLKit 主要的功能: 1. 纹理加载(Texture loading): GLKTextuerLoader Class. 2. 性能卓越的科学运算库, 支持矢量, 四元数,矩阵运算等。 3. 实现的常见的标准Sh原创 2016-01-16 20:44:23 · 5104 阅读 · 0 评论 -
Introduction to RTP Proxy (2) - RTPProxy 的运行参数
运行rtpproxy的命令大致这样: rtpproxy -l localip -s udp:localip:port -F, 那么其含义是什么呢? 且听下文细细道来。 RTPProxy的命令语法定义如下: rtpproxy [-?] [-2] [-f] [-v] [-R] [-l addr1[/addr2]] [-6addr1[/addr2]] [原创 2015-11-22 12:48:36 · 3427 阅读 · 0 评论 -
Using Apple’s vDSP/Accelerate FFT
原文地址: https://gerrybeauregard.wordpress.com/2013/01/28/using-apples-vdspaccelerate-fft/If you want to write code for signal processing on the Mac or iOS, you really should take advantage of转载 2015-08-26 12:38:04 · 1360 阅读 · 0 评论 -
H264 extractor plugin for Wireshark
做了一个Wireshark的插件, 可以从RTP Packets 中抓取H264 stream https://github.com/volvet/h264extractor原创 2015-07-26 16:59:11 · 1336 阅读 · 0 评论 -
Introduction to RTP Proxy (1)
顾名思义, RTP Proxy 是一个高性能而且开源的RTP流(RTP Stream)软件代理(Software Proxy). 在现代多媒体服务中得到了广泛应用. 其典型应用就是作为OpenSIP服务器的子模块, 为SIP Call 提供的Video/Audio RTP Stream的转发.原创 2015-06-07 19:41:47 · 1418 阅读 · 0 评论 -
Metal 着色语言编程指南 五
(.) 操作符访问矢量成员 Metal 也支持(.) 操作符来访问矢量成员, (.) 操作符后面跟随字符来表示坐标或者颜色: .xyzw 或者 .rgba。 示例代码如下int4 test = int4(0, 1, 2, 3);int a = test.x; // a = 0int b = test.y; // b = 1int c = test.z; //翻译 2016-04-16 19:16:03 · 535 阅读 · 0 评论 -
Metal 着色语言编程指南 六
下面所描述的对矢量成员的访问是非法的, 会引起编译错误: 访问越界的矢量成员, 一个二维矢量只能访问 .xy 或者 .rg 成员, 三维矢量只能访问 .xyz 或者 rgb 成员:float2 pos;pos.x = 1.0f; // is legal; so is ypos.z = 1.0f; // is illegal; so is w float3 pos;po翻译 2016-04-17 13:16:12 · 563 阅读 · 0 评论 -
Metal 着色语言编程指南 二四
常量地址空间(Constant Address Space) constant修饰符用来表示在设备内存池上分配的只读内存. 在程序域(Program Scope)中声明的变量必须是constant型的,而且在声明的位置被初始化. 用于声明constant类型变量的值必须是在编译期就可以获取的. 在程序域声明的constant变量其生命期与程序相同, 而且其值在任意的函数调用中都保翻译 2016-06-09 10:16:21 · 541 阅读 · 0 评论 -
Metal 着色语言编程指南 十九
函数, 变量和修饰符本章阐述函数, 函数参数, 变量是如何被定义的, 用来声明一些比较特殊限制的修饰符也会被详细说明. 函数修饰符函数修饰符用于限制函数被调用的方式, Metal 着色语言中的函数修饰符有:kernel kernel函数是用于并行运算的函数, 它可以在1-, 2-, 3-维的线程网格(grid: 此处是指 中执行翻译 2016-05-09 22:12:48 · 1191 阅读 · 0 评论 -
Metal 着色语言编程指南 十一
采样器(Samplers) Metal 着色语言中, 采样器类型决定了如何对纹理进行采样. Metal 框架允许你创建一个采样器对象, 并将其作为参数传递给graphics 或者 kernel 函数, 除了在Metal 框架中创建采样器对象, Metal 着色语言中也可以创建采样器对象. 但是在着色语言中创建的采样器对象, 只能设定部分的采样器状态: 寻址模式, 滤波模式, 归一化坐标和比较函数.翻译 2016-04-24 09:45:27 · 1636 阅读 · 0 评论 -
Metal 着色语言编程指南 十
纹理(Texture) 纹理数据类型是一个指向1, 2 或者3维纹理数据的句柄. 纹理数据则是一个纹理的某个等级(level)的mipmap的全部或者部分数据. enum class access { sample, read, write };texture1dtexture1d_arraytexture2dtexture2d_arraytexture3dtex翻译 2016-04-23 10:45:30 · 1590 阅读 · 0 评论 -
Metal 着色语言编程指南 十七
比较操作符(Rational and Equality Operators) 比较操作符(>, =, 如果至少一个操作数为NaN(Not a number), 则 == 操作符返回为false, != 操作符返回为true. 其他的比较操作符都返回false. 对于返回的布尔矢量, 可以用着色语言内建函数any 或者 all 来判断矢量的某一个分翻译 2016-05-07 10:39:46 · 514 阅读 · 0 评论 -
Metal 着色语言编程指南 十六
操作符(Operators)算数操作符(+, -, *, /, %) 返回值类型与操作数相同(矢量或标量, 整型或浮点型). 除和取模运算有可能返回未定义的值: 除操作可能会导致越界返回值(Out-Of-Range Value). 以整型而言, 除操作返回的值如果越界的话, 会被限制为整型可以表示的最大或者最小值, 比如, 带符号整型的最小值为: TYPE_MIN/(翻译 2016-05-07 09:06:22 · 559 阅读 · 0 评论 -
Metal 着色语言编程指南 十五
操作符(Operators) 本章讲述Metal 着色语言的操作符, 第一部分讲述矢量和标量操作符, 所谓标量操作数, 就是指整型, 浮点型或者布尔型的变量. 所谓矢量操作书是指其成员为整型, 浮点型或者布尔型的 1-, 2-, 3-, 4- 维矢量. 第二部分讲述矩阵操作符, 矩阵操作符应用于至少有一个操作数为矩阵的场合, 另一个操作数可以为标量, 矢量或者矩阵.翻译 2016-05-06 21:43:22 · 598 阅读 · 0 评论 -
Metal 着色语言编程指南 二一
变量和参数的地址空间修饰符 Metal 着色语言使用地址空间修饰符来辨识函数的变量或者参数是分配在哪块地址空间的. 下面的修饰符就是Metal着色语言所支持的的不同的地址空间类型:devicethreadgroupconstantthread Graphics函数(vertex或者fragment)和并行运算函数(kernel)的参数,如果是指针或者引用的话,翻译 2016-05-17 20:41:29 · 673 阅读 · 0 评论 -
Metal 着色语言编程指南 二三
线程组地址空间(Threadgroup Address Space) 线程组地址空间用于为kernel函数的变量分配地址空间, 用threadgroup 修饰符定义的变量将被线程组中的所有线程共享. Graphics函数无法访问用threadgroup修饰的变量. kernel函数中, 每个线程组就会分配独立的threadgroup变量, 其生命周期与该线程组相同.翻译 2016-05-29 20:40:18 · 783 阅读 · 0 评论 -
Metal 着色语言编程指南 九
缓存(Buffer)Metal 着色语言中的缓存(buffer)指的是指向内建类型或者用户自定义类型, 并且被定义在device 或者 constant 的地址空间。 (关于device, constant 可以参看 Address Space Qualifiers for Variables and Arguments for a full description of these翻译 2016-04-20 20:52:47 · 672 阅读 · 0 评论 -
Metal 着色语言编程指南 三
Data Type 这一章将会详细讲述Metal Shading 语言的数据类型, 包括矢量和矩阵, 原子类型, 缓存(buffer), 纹理(texture), 采样器(Samplers), 数组 和用户定义结构, 另外, 类型对齐和转换也会被提到.翻译 2016-04-14 21:29:20 · 771 阅读 · 0 评论 -
Metal 着色语言编程指南 二二
设备地址空间 device 地址空间修饰符用来表示一块从设备内存池分配的可读写的内存对象. 内存对象可以是指针或者引用, 该指针或引用指向的可以是标量, 矢量或者用户定义结构体. 内存对象的大小由Host代码中使用Metal framework API 时指定, 代码实例如下:// an array of a float vector with 4 componentsdevi翻译 2016-05-28 06:57:15 · 628 阅读 · 0 评论 -
Metal 着色语言编程指南 二十
Fragment 函数的属性修饰符 Fragment 函数可以用 early_fragment_tests 来声明, 其含义为: 在执行fragment 着色程序前先进行fragment 测试. 下面是例子:fragment [[ early_fragment_tests ]] float4my_frag_shader( ... ){ ...}翻译 2016-05-15 14:31:08 · 716 阅读 · 0 评论 -
Metal 着色语言编程指南 八
构造矩阵对象同矢量对象的构造相似, 矩阵对象也可以从标量或者矢量集合来构造, 当矩阵初始化时,其构造器参数决定了它是如何被创建的。 例如, 如果构造器参数仅仅是一个标量, 那么这个矩阵的对角线上的成员被初始化为这个标量,其他成员被初始化为0.0。 下面的这个调用float4x4(fval);构造的矩阵为:fval 0.0 0.0 0.00.0 fval翻译 2016-04-18 22:01:56 · 841 阅读 · 0 评论 -
Metal 着色语言编程指南 七
访问矩阵成员 floatnxm 和 halfnxm 矩阵可以被看成是类型为floatm和halfm的数组. 类似二维数组, 矩阵的成员可以用二维下标来寻址. 矩阵对象后面跟一个下标可以被看作是一个列矢量. 如同数组, 列矢量的计数也是从0开始, 矩阵对象的第二个下标就如同是对矢量对象进行寻址。 所以, 矩阵对象后面跟两个下标就表示了矩阵其中一个成员, 第一个下标是翻译 2016-04-17 20:14:30 · 689 阅读 · 1 评论 -
PTP Payload Format for MPEG-4 Elementary Stream
1. 说明本文的目的是描述 MPEG4 Video ES 在 RTP 中的传输格式,本文的主要内容参考了 RFC-3016 和 RFC-3640 ,写作本文是为了帮助理解这两篇 RFC 的内容。如果描述有与这两篇 RFC 不一致的地方,应该以 RFC 为准。 2. MIME Format在 RFC-3016 和 RFC-3640 中,建议 MPEG4 ES 的信原创 2015-06-06 21:49:29 · 766 阅读 · 0 评论