HEVC学习笔记5-x265中cuGeom

Pre HEVC学习笔记系列目录 从compressCTU里面,根据rd值划分了不同的编码帧内CU的方法,rd设置为5或6才符合HEVC标准,则接下来进行函数compressInterCU_rd5_6的解析。 void more ...

HEVC学习笔记4-x265中编码CTU

Pre 接下来直接看x265中对CTU块的编码,从对一个CTU的编码开始,CTU的四叉树划分,PU的划分,sad值计算,然后选择最佳匹配块,我将尽可能把我的理解以正确的方式写出来,欢迎大家批评指正。 HEVC学习笔记系列目录 我的x265的版本(hg log查看到的): changeset more ...

HEVC学习笔记3-PU划分及CTU结构

Pre HEVC学习笔记系列目录 视频压缩时,先分割为若干个小的图像组(Group Of Pictures,GOP),每个GOP又被划分为多个片(Slice),一幅图像可以被分割为一个或者多个Slice,每个slice由一个或多个片段(Slice Segement,SS)组成,一个SS在编码时,先被分割为相同大小的树形结构单元(Coding Tree Unit,CTU),每个CTU包括一个亮度属性编码块(Coding Tree Block,CTB)和两个色差CTB, more ...

HEVC学习笔记3-PU划分及CTU结构

Pre HEVC仅仅是一个标准,而落实到代码上,官方给出了HM,截止目前(2015.8.27)为止,版本已经到了16.6。 HEVC官网 HM移植到Arm平台 而x265则是民间的实现,而且支持多线程,速度比HM快很多,但是也忽略了HEVC的一些标准细节。 官网:x265.org docs: more ...

CUDA零复制内存

Pre 之前的博客CUDA锁页内存和零复制只是简单介绍了下零复制内存,并没有详细说明,这里参考《CUDA并行程序设计-GPU编程指南》这本书再详细说明下。 零复制(Zero Copy)(零拷贝内存) 零复制是一种特殊形式的内存映射,它允许你将主机内存直接映射到GPU内存空间上。因此,当你对GPU上的内存解引用时,如果它是基于GPU的,那么你就获得了全局内存的高速带宽(180GB/s)。如果GP more ...

简易HttpServer(500行左右代码)

简易HttpServer 1.说明 该httpserver主要是对Tinyhttpd的中文注释以及一些bug的修复以及几个新功能的添加。 Code: gitOSC开源中国 2.HTTP GET 根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的 。 HTTP请求: more ...

HEVC学习笔记1-帧间预测编码

HEVC帧间预测 预测编码(Prediction Coding)是指利用已编码的一个或几个样本值,根据某种模型或方法,对当前的样本值进行预测,并对样本真实值和预测值之间的差值进行编码。视频预测编码技术主要分为两大类: 帧内预测,即利用当前图像内已经编码的像素生成预测值 帧间预测,即利用当前图像之间已经编码图像的重建像素生成预测值 帧间预测:主要原理是为当前图像的每个像素块在之前已经编码的图像中找一个最佳匹配块,该过程称为运动估计(Motion Estimation,ME),其中,用于预测的图像称为参 more ...

x265常用参数配置

Pre 最近在做关于HEVC的的东西,现在使用的是x265,一个开源的编码项目。 本文只介绍一些我用到的,会逐渐补充。 最好的方式是查询官方的手册。也不是很长。 在阅读x265代码的时候要注意,它的代码和HM的代码有比较大的区别,很多算法实验也有非常精巧的方法。让我大开眼界,建议一定先搞懂算法原理,然后看一下HM里面的实现,再看x265的代码,一定要花时间磨。磨代码的过程很重要。 移植到Arm ~~# more ...

树莓派无线网卡的配置

淘宝上免驱动的一般都要30+,感觉很坑人。。。。 运行后,实际上只要运行ifconfig显示出的有wlan0,一般就是成功加载了。 (1)配置网络 sudo nano /etc/network/interfaces 关于wlan0部分的内容默认应该是 auto wlan0 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default in more ...

OpenGL三维绘图学习4裁剪(画半球体)

图像变换 使用opengl一定要建立一个观念,所有的变化都是矩阵变换,可以变换,也就可以还原。即push和pop matrix 示例 GLdouble eqn [4]={0.0,0.0,-1.0,0.0}; glClipPlane(GL_CLIP_PLANE0,eqn); glEnable(GL_CLIP_PLANE0); glutSolidSphere(headR,slices,slices); //截完了之后,再撤消,防止对其他部分产生影响。该实验 more ...