Google 3D压缩项目Draco简析

  • 编译
  • 编码
  • 解码

2017年1月份时,google发布了名为“Draco”的开源3D图形压缩库
github源码下载地址: https://github.com/google/draco

编译

我在Windows下成功编译,用的是VS2017,首先下载好源码后,用CMAKE-GUI对源码进行编译。会生成 draco_encoder 和 draco_decoder 两个可执行文件,也可以用VS看其源码。

编码

使用 draco_encoder 压缩 obj 或 ply 的文件,其中 ply文件格式只包含顶点信息,而obj文件包含顶点信息和面的信息。顶点信息就是该点的物体坐标、法线向量、纹理坐标等,如果绑定了骨骼,还有各块骨骼的权重。
面的信息指怎么由顶点围成面,它是一系列顶点索引的集合。
obj文件编码:

./draco_encoder -i in.obj -cl 10  -qp 10

其中-i是输入文件;-cl是压缩等级,等级范围是(0—10),压缩等级越大压缩效果越好,压缩时间越长;-qp是顶点坐标量化位数,默认为14位。
ply文件编码:

,/draco_encoder  -point_cloud -i in.ply -cl 10  -qp 10

其中-i是输入文件;-point_cloud表示不压缩面信息,只压缩顶点信息;-cl是压缩等级;-qp是顶点坐标量化位数,默认为14位。
注意:当qp等于0时表示不进行量化,进行无损压缩。-point_cloud情况下除了浮点型数据无损压缩用SequentialAttributeEncodersController方法进行压缩,其余情况用KdTreeAttributesEncoder方法进行压缩。

常用的输入参数如下:

-h | -?        show help
-i <input>     input file name
-o <output>    output file name
-point_cloud   forces the input to be encoded as a point cloud
-qp <value>    quantization bits for the position attribute, default=14
-qt <value>    quantization bits for the texture coordinate attribute, default=12
-qn <value>    quantization bits for the normal vector attribute, default=10
-qg <value>    quantization bits for any generic attribute, default=8
-cl <value>    compression level [0-10], most=10, least=0, default=7
--skip         ATTRIBUTE_NAME skip a given attribute (NORMAL, TEX_COORD, GENERIC)
--metadata     use metadata to encode extra information in mesh files

解码

./draco_decoder -i in.drc -o out.obj

其中-i是输入文件,-o是输出文件。

项目代码整体框架分为两部分压缩mesh(顶点信息以及面信息)以及压缩pointcloud(只有顶点信息)。

其中包含面信息的压缩方法比较多,主要是用 edge breaker 算法去压缩面的信息,并产生 CornerTable,用平行四边形差分方式压缩顶点属性信息。当输入文件不包含面时压缩顶点属性值的算法主要是kd树,将所有属性组合成一个多维向量进行压缩。

相比MPEG的G-PCC点云压缩项目而言,Draco的压缩效率比较低,但是压缩、解压速度却比它快得多,因此Draco适合用在一些实时性要求高的项目中。

Google 3D压缩项目Draco简析相关推荐

  1. Scrapy项目 - 数据简析 - 实现腾讯网站社会招聘信息爬取的爬虫设计

    一.数据分析截图 本例实验,使用Weka 3.7对腾讯招聘官网中网页上所罗列的招聘信息,如:其中的职位名称.链接.职位类别.人数.地点和发布时间等信息进行数据分析,详见如下图: 图1-1 Weka 3 ...

  2. Scrapy项目 - 数据简析 - 实现斗鱼直播网站信息爬取的爬虫设计

    一.数据分析截图(weka数据分析截图 2-3个图,作业文字描述) 本次将所爬取的数据信息,如:房间数,直播类别和人气,导入Weka 3.7工具进行数据分析.有关本次的数据分析详情详见下图所示:   ...

  3. 《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》——2.1节简析Android安装文件...

    本节书摘来自异步社区<Android多媒体应用开发实战详解:图像.音频.视频.2D和3D>一书中的第2章,第2.1节简析Android安装文件,作者 王石磊 , 吴峥,更多章节内容可以访问 ...

  4. 《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》——2.3节简析Android安装文件...

    本节书摘来自异步社区<Android多媒体应用开发实战详解:图像.音频.视频.2D和3D>一书中的第2章,第2.3节简析Android安装文件,作者 王石磊 , 吴峥,更多章节内容可以访问 ...

  5. Google服务器架构图解简析

    无意间发现一个自己比较感兴趣的google的文章,挺不错的还,转载一下!!!虽然可靠性无法查证 PS:Google,无疑是互联网时代最闪亮的明星.截止到今天为止,Google美国主站在Alexa排名已 ...

  6. 【Android项目】本地FM收音机开发及源码简析

    [Android项目]本地FM收音机开发及源码简析 目录 1.概述 2.收音机的基本原理 3.收音机其他信息 RDS功能 4.Android开发FM收音机源码解析 5.App层如何设计本地FM应用 6 ...

  7. Google服务器架构图解简析。

    无疑是互联网时代最闪亮的明星.截止到今天为止,Google美国主站在Alexa排名已经连续3年第一,Alexa Top100中,各国的Google分站竟然霸占了超过20多个名额,不得不令人感叹Goog ...

  8. Google服务器架构图解简析(转载)

    PS:Google,无疑是互联网时代最闪亮的明星.截止到今天为止,Google美国主站在Alexa排名已经连续3年第一,Alexa Top100中,各国的Google分站竟然霸占了超过20多个名额,不 ...

  9. brief analysis of the classification, application and prospect of lidar/激光雷达的分类、应用现状及前景简析

    brief analysis of the classification, application and prospect of lidar uestc Glasgow 2017 zhaojingy ...

  10. Android Jetpack组件App Startup简析

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

最新文章

  1. 一种用户-系统协同的概念模型
  2. ---西游记~~中的公司政治
  3. 这家剑桥校友创办的苏州AI独角兽,再获4.1亿投资,将在国内IPO
  4. RabbitMQ(六)整合SpringBoot
  5. UIAutomator 2
  6. 如何通过 反射 调用某个对象的私有方法?
  7. python数字类型floatcomplexint_浅谈python 四种数值类型(int,long,float,complex)
  8. (140)FPGA面试题-FPGA IP简介
  9. mongodb的安装和sql操作
  10. .Net资源文件全球化
  11. 用python简单查找大文件
  12. java .net 图形界面_Aspose.Words for .NET是一个无图形用户界面的.NET和JAVA Word文档的报告控件...
  13. 花生壳内网穿透实践指南
  14. quartz定时任务时间设置
  15. ijkplayer 自定义解码器
  16. 我卖掉北京500万的房产,在老家生活的这两年……
  17. Maximum upload size exceeded
  18. Docker - debian 7 安装
  19. Transforms的结构和用法
  20. 第二篇 自制系统内核

热门文章

  1. QT记录博客总结(内有对应电子书与源代码)
  2. 如何添加PR视频特效?
  3. 怎么把win10右下角的隐藏图标调出来(把倒三角调出来)
  4. java囧囧西游之大闹天宫下载_最新囧囧西游之大闹天宫榜单下载_九游
  5. 时空知识图谱应用初探
  6. k线顶分型 python_顶分型K线形态形态特征及操作要领
  7. ESP32 micropython 应用填坑(一):蓝牙
  8. linux中的各文件的颜色含义
  9. android 实现广告弹窗,Android实现自适应屏幕的弹窗广告
  10. k8s部署rabbitMQ集群