Craster’s Parabolic Projection(CPP)——克拉斯特抛物线投影,是一种伪圆柱等积投影,被用于360视频投影,具有最小的形状失真和相同的空间分辨率,性能优于ERP格式。

1.推导

参考:
http://www.progonos.com/furuti/MapProj/Normal/CartHow/HowCPar/howCPar.html
CPP是东北象限图像如下,H大于0,赤道半径是北极到原点距离的2倍:

设φ,λ为球坐标的仰角和方位角,东北象限0≤φ≤π/2,0≤λ≤π。对于伪圆柱映射,有

约束如下:

当xb=0时,y=H,可以得到k=2/H,因此

下面来求东北象限的面积


对于φ=π/2,Y=H时

可以求得R与H的关系

xb可用R表示为

可以得到S(y)表达式

带入S(y) - πxR^2xsinφ = 0

求解上式得:

求得根的表达式较为复杂,使用p和q替代式子,来进行简化

用tk表示根,k=0,1,2,表达式为

三个根的大小关系为:t2≤t1≤t0。
通过根的分布图可知,最小正根为t1

对于-π/2≤α≤π/2,arccos(-sinα)=α+π/2,则



同时可以求得二维横纵坐标为:

2.360视频CPP格式

在360视频中,球坐标到CPP投影坐标的变换关系如下:

其逆变换,从CPP投影坐标到球坐标的变换关系如下:

ERP格式冗余过多,使用CPP格式表示,可以得到更优的编码效率。在JVET-D0027中提出了使用CPP作为中间投影格式,由ERP变换为CPP格式后,再由CPP变换为目标投影格式,可以提高编码性能。

同时JVET-D0027在360tools中增加了ERP->CPP的变换工具:
360tools_conv -w WI -h HI -i origERP -o CPP -l WI -m HI -f 0 -n 1 -x 1 -y 1
-f 0格式为ERP->CPP格式的变换,变换前的ERP格式和变换后CPP格式分辨率大小相同。

之前学习的中,有人提出过对CPP格式360视频编码的优化想法。
http://blog.csdn.net/lin453701006/article/details/53212788

3.CPP格式没有被作为输入格式的个人理解

网友iPersevere在评论中的问的问题很好,来专门写一下吧。这一点我之前也思考过,不过只能算是个人理解,并不一定正确。比较懒,直接复制我给这位网友的回复了:

问:既然CPP相比其他投影格式,为什么不直接将CPP投影之后的图像作为编码器的输入呢?
答:这主要是因为目前大多360视频采集设备采用的是ERP,ERP相比其他格式处理较为简单。我已经好久没跟360了,不知道现在是否有变化,之前对于输入图像格式还是在讨论中的,不知道是否有变化。

这个问题让我想起了当初学习YCgCo颜色空间的时候,我问过我导师类似问题。老师的回复一针见血,告诉我学术界与工业界是不一样的。学术界讲求的是理论性能,而工业界还要考虑成本、兼容性等各种问题。

视频编码标准是要应用的,是由工业界主导的,主要的贡献者以各大公司为首。标准制定中必然要考虑工业界的需求,而不是谁性能好谁就好。

Craster's Parabolic Projection(CPP)相关推荐

  1. 学术前沿 | 图像质量量化评估标准综述

    点上方蓝字视学算法获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :知乎:MrZH,已获授权 来源: ...

  2. 图像质量量化评估标准综述

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:MrZH | 来源:知乎 https://zhuanlan.zhihu.com/p/120254 ...

  3. osg编译日志-release

    1>------ 已启动生成: 项目: ZERO_CHECK, 配置: Release x64 ------ 1> Checking Build System 1> CMake do ...

  4. 投影矩阵的推导(Deriving Projection Matrices)

    本文乃<投影矩阵的推导>译文,原文地址为: http://www.codeguru.com/cpp/misc/misc/math/article.php/c10123__1/Derivin ...

  5. 投影矩阵的推导(Deriving Projection Matrices)(转)

    本文乃<投影矩阵的推导>译文,原文地址为: http://www.codeguru.com/cpp/misc/misc/math/article.php/c10123__1/Derivin ...

  6. (转)投影矩阵的推导(Deriving Projection Matrices)

    转自:http://blog.csdn.net/gggg_ggg/article/details/45969499 本文乃<投影矩阵的推导>译文,原文地址为: http://www.cod ...

  7. 四足机器人中不同优先级任务的执行——Null-Space Projection方法

    1. 背景 最近看了一篇论文, 是 MIT 的关于四足机器人全身动力学控制 (Whole Body Control, WBC[1]), 文中有一节是关于不同优先级任务的执行 (Prioritized ...

  8. osgEarth的Rex引擎原理分析(三十五)osgEarth地球椭球体ellipsoid 大地基准面datum 地图投影Projection详解

    目标:(二十九)中的问题83 地球椭球体的中心为地心,形状为椭球体 大地基准面是适应某一区域的椭球体,球体中心不一定在地心 地图投影是球面和平面映射关系的方法 Horizontal Datum A d ...

  9. C++ .h(头文件) 与 .cpp(源文件) 的使用

    .h 文件: .h是头文件 ,里面主要是写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等, 注意.h文件写的时候有特定的格式就是开头和结尾 #ifndef TEST_HEAD ...

最新文章

  1. 京东商城背后的AI技术能力揭秘 - 基于关键词自动生成摘要
  2. html制作固定列的表格,带固定列的简单HTML表格
  3. Linux安装Java JDK:方式yum
  4. 使用最新版mysql 8.0.11会出现的一些问题
  5. python antlr4需要的python 版本_python多版本管理器pyenv
  6. “内部人”的信息安全架构---信任体系
  7. hql Hibernate.gethibernatetemplate()
  8. Kubernetes与Docker基本概念与常用命令对照
  9. 【面试篇】Java多线程并发-Java中的CAS机制算法
  10. Android View 自定义RangeSeekBar范围选择器
  11. Bailian1833 POJ1833 排列【全排列】
  12. 个人开发—进度记录(十五)
  13. DirectX终极游戏开发指南引擎源码分析
  14. 计算机excer试题,计算机电子表格excel练习题
  15. 【C实现算法00】一个数组中除一个(两个)数只出现一次外其它数字都出现了两次,找出这个数,编程实现。
  16. w ndows无法识别usb,surface pro3 windows无法识别USB设备
  17. MongoDB填充因子和更新优化
  18. python 离散数学 判断单射 双射 满射
  19. 从 sourcemap 中获取源码
  20. Oracle表格误删,Oracle误删表空间文件

热门文章

  1. PHP运算口诀,超级实用的数学计算知识顺口溜
  2. 【运维面试】金山科技8月份最新面试题-自动化运维岗位
  3. 易语言c编译程序集,植物大战僵尸。易语言.版本 2.程序集 窗口程序集1.程序集...
  4. oracle direct path read temp,Oracle中的direct path read事件(转)
  5. java 高级for循环
  6. 生活杂谈-电影中的那些【神级】台词
  7. KMP算法--子串查找问题
  8. java从文本中读取,从Java中的文本文件中读取long类型
  9. JavaSE学习笔记-Day1
  10. java 测试内存溢出_浅析软件测试人员如何对JVM进行内存溢出检测