自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序人生

音视频、算法分享

  • 博客(41)
  • 资源 (7)
  • 论坛 (2)
  • 收藏
  • 关注

原创 从多样性谈起到dpp

在推荐算法中,除了要考虑个性化,还要兼顾多样性,不然用户很快就会觉得单调无趣。在衡量推荐结果的多样性时,自然而然能想到的是统计推荐结果中含有不同tag的个数,tag的个数越多,多样性越好。但是这种指标有个问题,它与用户看的内容条数正相关,用户看的内容条数越多,自然tag个数会越多。假设一条feed平均有3个tag,只看了1条feed用户的多样性指标是3;看了10条feed的用户,总共有30个 tag,假设有50%的重合度,有15个不同tag,大大高于看了1条feed的用户。为了抵消feed条数的影响,于

2021-04-10 16:54:49 48

原创 推荐模型可解释性

推荐算法中各种深度学习模型层出不穷,但是万变不离其宗,我们从最原始的矩阵分解模型MF谈起MF模型是求解方程UIT=ZUI^T=ZUIT=Z,Z是label矩阵,格式如下:[10x⋯00x1⋯x⋮⋮⋮⋱⋮x01⋯1]\begin{bmatrix}1&0&\text{x}&\cdots&0\\0&\text{x}&1&\cdots&\text{x}\\\vdots&\vdots&\vdots&\ddots&amp

2021-03-28 15:39:48 40 1

原创 EE探索在推荐召回中应用

bandit EE的算法网上有很多文章介绍,这里就不再赘述了。本文主要介绍EE UCB算法在推荐召回中的实际应用。UCB的公式如下:C:topic点击次数; T:topic展示次数; t:该用户展现总次数 。该公式前半部分计算topic的实际点击率;后半部分计算探索概率。在topic展现次数较大时,主要依赖前半部分的值,即实际点击率的置信度较高。在topic展现次数较小时,点击率的置信度较低,此时对该topic主要靠探索值来排名。在推荐召回中,根据上述公式计算用户对每个topic的score,

2021-03-13 12:37:49 89 2

原创 tensorflow参数分割存储

在tensorflow的分布式训练中,默认将参数以变量名的维度分布式存储在不同ps上。如将item_embedding存储在ps0上,item_bias存储在ps1上。默认不会将同一个变量存储在不同的ps上。在实际情况中,有的变量行数很多,如item_embedding的行数一般有几百万量级,如果存储在同一个ps上,会导致该ps成为性能瓶颈。为了解决以上问题,在tensorflow中可以通过定义partitioner的方式将同一个变量分布式存储在不同ps上。具体使用方法如下:self.partition

2021-02-27 10:27:24 47

原创 batch内负采样

一般在计算softmax交叉熵时,需要用tf.nn.log_uniform_candidate_sampler多itemid做随机负采样。但是在类似dssm这种双塔模型中,item侧特征除了itemid外,还有其他meta特征,此时负样本对itemid做负采样后,还需要取相应负样本的meta特征。可是在tf训练数据中并不方便建立itemid与各类meta特征的映射表。为了解决dssm类模型的负采样问题,可以取一个batch内其他用户的正样本做为本用户的负样本,以解决负采样meta特征问题。好了,废话少说,

2021-02-17 09:18:56 394

原创 推荐算法入门书籍

本文列出推荐算法入门基础知识。每个知识点都能在网上找到更详细的讲解,适合入门者使用。

2021-01-02 11:39:25 155

原创 licode服务架构及流程

1,licode模块licode服务端主要由nuve、erizoController、erizoAgent和erizoJS组成。模块之间的关系借用网络上图片如下所示详情可参阅文章https://zhuanlan.zhihu.com/p/40462946。简单点理解:nuve管理多个erizoControllererizoController管理多个会议室room,一个room有一个或多...

2020-02-01 22:00:18 1589

原创 webrtc video jitter详解(二)

1,kalman滤波原理https://www.zhihu.com/question/23971601假设你有两个传感器,测的是同一个信号。可是它们每次的读数都不太一样,怎么办?取平均。再假设你知道其中贵的那个传感器应该准一些,便宜的那个应该差一些。那有比取平均更好的办法吗?加权平均。怎么加权?假设两个传感器的误差都符合正态分布,假设你知道这两个正态分布的方差,用这两个方差值,(此处...

2020-01-31 15:38:23 700 1

原创 webrtc video jitter详解(一)

webrtc jitter中缓存最近一段时间内的视频数据包,供解码线程取出解码显示。本文以h264视频为例讲解缓存机制。webrtc先将接收到的rtp包组装成帧数据(vcmframe)1,h264 rtp传输格式h264在rtp包中的封装格式如下,以下为借用网络图片上图的左边的打包流程对应的场景是“NALU的长度 <= MTU”,直接将NALU的header拷贝到H264 RTP...

2020-01-30 21:28:34 1906

原创 scala中rdd与dataframe的各种创建方式

创建RDD1,从字符串创建rddsc.parallelize(xxx)如:val testrdd=sc.parallelize(Seq((1,Array("1.0"),3),(2,Array("2.0"),6),(3,Array("3.0"),7),(1,Array("3.0"),7)))2,从文件创建rdd读文本文件val citylevel = sc.textFile(...

2019-12-14 11:10:34 650

原创 tensorflow维度理解

tensor维度本质就是逐层脱去括号。脱第一层括号后,紧挨着的一层整体只有一个元素,故为1脱掉第二层括号后,里面整体有三个元素,即三行脱掉第四层,里面整体依然有三个元素,比如[1],[2],[3]再往里面看,只有一个元素故最后得到的是1*3*3*1。越高层的维度在越里面,具体到深度学习里,如tf.nn.embedding_lookup(itememb, batchite...

2019-11-20 19:46:48 206

原创 录像存储mp4格式

视频录像为mp4格式,采用的libmp4v2库来实现。初始化文件mp4fileHandle_ = MP4Create(filename);//创建mp4文件 //MP4SetTimeScale(mp4fileHandle_, 90000);//添加h264 track mp4VideoTrack_ = MP4AddH264VideoTrack(mp4fileHa...

2019-04-27 08:30:59 954

原创 vr h5播放器开发

不需要用户安装客户端,实现在pc和手机浏览器中浏览vr视频。基于videojs-panorama实现,该插件依赖videojs和threejs,通过videojs播放各种格式的视频文件,然后将解码后的视频用threejs来渲染实现浏览3d视频的效果。代码处理流程如下:在plugin.js中设置player回调onPlayerReady=》 (1)如果不支持webgl,显示“不支持webgl显示”...

2018-05-24 14:15:25 3126 1

原创 ios中使用webrtc流程

介绍在ios app中调用webrtc的流程

2017-12-28 18:49:47 2985 1

原创 licode发布订阅流程

licode提供的客户端例子是web的,如果需要开发移动端,需要弄清楚底层的信令协议。本文详细讲解licode与客户端之间的发布订阅协议。

2017-12-26 19:08:32 3533 3

原创 licode安装使用

licode实现了webrtc的转发服务,通过socketio与客户端进行信令通信,媒体层走webrtc。1,准备环境操作系统ubuntu16.04如果需要外网使用,最好准备一个域名和ssl证书,现在很多云服务申请域名都提供一个二级域名的免费证书。2,安装licode1, 下载licode代码git clone https://github.com/lynckia/l...

2017-12-25 18:41:33 5315 1

原创 BimServer安装使用

介绍bimserver的安装及安装中遇到的问题解决,讲解怎么导入工程文件到bimserver中并能在线浏览3d模型

2017-12-06 18:51:33 9817 16

原创 音频采样率转换

介绍使用ffmpeg libresample库转换pcm数据的采样率

2017-11-20 15:29:37 3805 2

原创 使用fdkaac编码

介绍使用fdk-aac库编码pcm数据流程

2017-11-17 19:21:31 6219 1

原创 将h264和aac码流合成flv文件

将实时接收到音视频流合成为flv文件

2017-11-10 19:27:22 1282 1

原创 鱼眼镜头的选型

介绍vr相机开发中鱼眼镜头的选型及各种参数指标的意义

2017-10-19 19:50:20 3153

原创 h264码流类型

h264码流分为rbsp和mp4两种格式,详细讲解这两种码流格式的区别及解码

2015-12-12 21:04:01 2519

原创 rtcp字段计算方法

详细讲解了rtcp中几个难懂字段的计算方法,以及怎么根据rtcp包计算出抖动、延迟值。

2015-12-05 07:10:54 2661

原创 用wireshark解析应用层存储包

利用wireshark解析应用层存储包,对数据包做分析统计

2015-07-04 11:42:31 3391

原创 sdp中aac config字段计算

在rtsp和sip协议中,生成sdp信息时经常要计算aac config字段。本文主要讲述aac config字段的计算方法。

2014-01-08 21:51:10 4382 1

原创 android linphone中opengl显示的实现

以linphone为例介绍了android中用opengl显示的实现方法,特别针对视频数据流来自ndk层,怎样与java层opengl交互实现显示。

2014-01-06 23:04:02 2006

原创 gsmmuxd实现原理

介绍了gsmmuxd实现原理,通过多路复用,可以控制at模块实现同时拨号上网和接打电话

2014-01-05 22:32:54 4204 1

原创 directshow filter的编写

介绍了directshow filter的编写方法。

2014-01-04 23:22:13 876

原创 rtsp时间戳计算方法

介绍了rtsp实现中时间戳的计算方法,这块对实现拖放、快放、慢放很有用。

2014-01-03 21:46:24 6546 1

原创 lvs安装配置

安装Tar xzvf ipvsadm-1.26.tar.gz 修改makefile,去掉LIBS           += -lnl修改libipvs/Makefile,去掉CFLAGS         +=-DLIBIPVS_USE_NL MakeMake  install  配置Director 配置: ipvsadm -A -t 218.2

2014-01-02 22:20:20 857

原创 ejabberd代码分析

ejabberd服务器代码分析,主要分析了presence消息流程;添加好友时的各种状态变化、消息发送。

2014-01-01 21:42:42 2968 1

原创 ejabberd服务器安装配置

介绍了ejabberd服务器的安装和配置,特别是集群的搭建

2014-01-01 21:31:29 1898

原创 vitamio开发者大会

vitamio开发者大会,主要介绍移动端(android和ios)多媒体开发,涵盖ffmpeg软件编解码、android omx硬件编解码、播放器实现、视频直播实现。

2013-12-29 20:52:27 2191

原创 android native开发环境搭建

用ndk开发android native应用,不需要搭建android源码编译环境。

2013-12-23 22:12:26 976

原创 基于live555实现rtsp视频直播

email:lipku@foxmail.com现有的安防监控设备视频传输都是用的各家私有协议,鲜有用标准协议rtsp的。如果能用rtsp来传输,那很多标准的rtsp客户端都能连上观看,真正做到互联互通。Live555是目前实现rtsp协议最短小精悍的开源代码,能很方便的移植到各种嵌入式系统中,而且该开源项目更新速度很快,基本每个月都有更新版本。Live555目前已经实现了基于udp和tcp的传

2011-11-20 22:52:59 14380 40

原创 用JpegLib压缩YUV

此处的YUV数据指I420,I422应该做一下修改也能用,这个我没有测试。Jpeg的宽度、和高度可以是任意的,原来在网上找的都只能是16的倍数才行。下面的函数经过测试可用,有什么问题可以与我联系 lipku@pku.org.cn 函数实现如下:参数说明:Filename:jpg文件名字yuvData:输入的yuv缓存地址quality:压缩质量 1-100ima

2010-01-07 15:41:00 2951 4

原创 DirectShow使用点滴

1,时间戳// Set the graph clock.    IMediaFilter *pMediaFilter = 0;    hr=m_pBuilder->QueryInterface(IID_IMediaFilter, (void**)&pMediaFilter);pMediaFilter->SetSyncSource(NULL);通过如上设置,可以使文件尽快解码完成

2009-12-12 10:07:00 1009

转载 Linux2.6内核驱动与2.4的区别

随着Linux2.6的发布,由于2.6内核做了新的改动,各个设备的驱动程序在不同程度上要进行改写。为了方便各位Linux爱好者我把自己整理的这分 文档share出来。该文当列举了2.6内核同以前版本的绝大多数变化,可惜的是由于时间和精力有限没有详细列出各个函数的用法。1、 使用新的入口 必须包含 module_init(your_init_func); module_exit(your_ex

2008-05-19 20:54:00 596

转载 linux驱动指南

一、linux的设备驱动程序与外界的接口可以分为三个部分:  1.驱动程序与操作系统内核的接口。通过file_operations(include/linux/fs.h)数据结构来完成的。  2.驱动程序与系统引导的接口。这部分利用驱动程序对设备进行初始化。  3.驱动程序与设备的接口。这部分描述了驱动程序如何与设备进行交互,与具体的设备密切相关。  二、根据功能划

2008-05-18 20:50:00 556

原创 T264中内存的使用

T264中内存的使用lipku@pku.org.cnT264_open()中分配所有内存。这里着重解释一下参考帧序列的内存分配。其代码段如下:  uint8_t* p = T264_malloc(t->edged_width * t->edged_height + (t->edged_width * t->edged_height >> 1), CACHE_SIZE);t->refn[i].Y[0

2005-08-03 11:21:00 1694 1

实时流合成为flv文件

将实时接收的h264和aac码流数据合成为flv文件保存,具体使用http://blog.csdn.net/lipku/article/details/78502582

2017-11-16

bimserver war包

bimserver编译后生成的war包,不需要配置来安装plugin。

2017-12-06

flv合成实现

将实时接收的h264和aac码流数据合成为flv文件保存,具体使用http://blog.csdn.net/lipku/article/details/78502582

2017-11-10

bimviews jar包

bimview插件,解决找不到js的问题,与bimserver war包配合使用

2017-12-06

webrtc.licode.pub.har

licode客户端与服务端soketio信令交互格式,在chrome里用开发者模式,点击import按钮查看

2020-02-01

彩色YUV视频序列转成灰度Y序列

能将彩色YUV视频序列转成灰度Y序列,能够播放Y序列视频

2009-12-12

jpeg压缩库(vc6)

能够压缩yuv(I420)数据到jpeg图片 调用代码参考博文:http://blog.csdn.net/lipku/article/details/5151119

2012-06-07

请问VC下怎么显示灰度矩阵

发表于 2004-05-05 最后回复 2004-05-06

请教一个SQL SERVER2000的问题(十万火急)

发表于 2001-08-06 最后回复 2001-08-12

空空如也

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

TA关注的人 TA的粉丝

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