基于HTTP的动态自适应视频流的控制理论方法

SIGCOMM 2015的一篇论文,讲的是码率自适应算法R-MPC。

在互联网视频应用中,用户感知的体验质量(QoE)是至关重要,因为它会影响内容提供商和分发系统的收入。鉴于网络中很少提供优化此类措施的支持,瓶颈可能出现在分发系统的任何地方。因此,客户端中健壮的码率自适应算法对于确保良好的用户体验至关重要。先前的研究表明了最新的商业解决方案的关键局限性,并提出了一系列启发式解决方案。尽管提出了一些建议,但在以下方面仍然明显缺乏共识:(1)如何最好地设计这种客户端码率自适应逻辑(例如,使用估计带宽与缓冲区占用率);(2)在不同的网络环境下特定类别的方法表现如何(例如,高吞吐量可变性);(3)实际中,如何平衡不同的QoE目标(例如,启动延迟与缓冲)。为此,本文做出了三个关键的技术贡献。首先,为了给这个空间带来一些严谨性,我们开发了一种合理的控制理论模型来分析各种方法。其次,我们提出了一种新颖的模型预测控制算法,该算法可以有效结合吞吐量和缓冲区占用信息,从而优于传统方法。第三,实现了一个播放器实例,并使用真实的trace来验证我们的算法。

JNI程序规范和指南5——JNI中的局部引用和全局引用

这是一个关于JNI的系列文章。

JNI以不透明引用(opaque references)的方式提供了一些实例和数组类型(jobject, jclass, jstring, jarray等)以供本地方法使用。本地代码不能直接访问不透明引用所指向的内容,而只能借助JNI方法去访问这些数据结构,这样开发者就不用考虑JVM中的对象的存储方式。这样的话,必须要了解JNI中的几种引用:

JNI程序规范和指南4——字段和方法

这是一个关于JNI的系列文章。

上一篇文章介绍了JNI如何访问基本类型和引用类型数据,本文将继续介绍如何访问任意对象的字段和方法。在本地代码中调用Java中实现的方法,也就是常说的回调函数callback
本文会介绍如何使用JNI函数访问对象的字段和调用回调函数,后面也会介绍如何使用缓存来使得对象操作更加简便和有效率。在文章的最后,还会讨论以下Java调用C/C++方法,C/C++访问Java对象字段和调用callback的性能。

JNI程序规范和指南3——基本类型, 字符串和数组

这是一个关于JNI的系列文章。

一个开发者在Java和本地代码交互的过程中最常见的问题是Java的数据类型是如何映射到C/C++中去的。在上一章的例子中我们没有给本地方法传递参数,本地方法也没有返回结果。但是实际中,大多数程序是需要传递参数给本地方法以及从本地方法中获取返回值的。本文将介绍如何在Java和C/C++之间交换参数。

JNI程序规范和指南0——前言

这是一个关于JNI的系列文章。

最近在做一些播放器相关的工作,其中Android端使用FFmpeg库,需要通过JNI来调用,查看了不少文档,觉得Java Native Interface-Programmer’s Guide and Specification一书讲得很清楚,所以想自己总结一下这本书的内容,以便日后查看。这个系列的每一篇文章对应着书的一个章节。

MSYS2的一些事

原来是想记录一下在MSYS2上使用git时无法生成ssh-key的小坑,后面的话也会记录一点MSYS2的使用技巧。

偶然在msys2中使用git clone一个加密的仓库…

Pagination