基于E3PO平台设计的一种自适应360°视频传输方案|社区征文

2023总结
前言

随着VR/AR技术的迅速发展,360度视频正逐步成为主流的拓展现实内容形式。但是,如何在有限的网络条件下高效传输和流畅播放360度视频仍面临诸多挑战。特别是对于移动终端,网络状况波动严重,将传输效率最大限度提升至关重要。E3PO作为开源的360度视频传输模拟平台,具有较高的定制性和可靠性。它支持对各种传输参数进行细致设置,包括视频编码格式、投影方式、分块策略以及传输策略等各个环节。此外,E3PO可以真实还原不同网络环境下的传输效果,支持对主观质量影响因素进行量化分析。基于E3PO平台的优势,本文将设计一种针对移动环境的自适应360度视频传输方案。该方案旨在通过实时调节视频质量和预加载数量,最大限度保证在不确定的网络条件下播放流畅度。具体而言,它将采用视角预测加载优先策略,结合网络评测动态调整视频码流质量。全面利用E3PO模拟能力,通过迭代优化找寻最佳传输参数组合。通过这一设计,我们期望打造一套适应各种网络环境的360度视频解决方案。同时也将E3PO在这一领域的应用价值进一步检验和发掘。

picture.image

设计思路

将360°视频投影为等角格式,将 spherical 引入平面,更便于后续处理。然后将等角投影后的视频图像整除为8×8小块进行编码。在编码过程中,采用这样的分块策略可以提高可变分辨率编码的优势,支持不同块采用不同的分辨率来平衡画质和码率。

// 使用equirectangular projection
Mat videoFrame = projectSphericalToEqui(inputFrame); 

// 将图像分为8×8块 
const int BLOCK_SIZE = 8;
vector<Mat> blocks;
splitFrameIntoBlocks(videoFrame, BLOCK_SIZE, blocks);

设计基于视角和网络状态实时监测的动态自适应预测算法。在编码过程中,通过预测用户当前和未来一段时间内可能观看的视角区域,可以提前加载和缓存这些视角周边块的数据。这样可以缩短视角转移时的延时,有效保证视觉连贯性。

// 预测下一时刻用户视角
Point predictNextGazePoint(currentGaze, timeInterval); 

// 获取相邻块编码参数  
vector<int> getNearbyBlockLevels(predictNextGazePoint);

根据网络带宽监测结果,在编码过程中算法可以实时调整每个块的预加载程度,以及选择使用什么级别的分辨率对其进行编码。例如在低带宽条件下,可以仅预加载视角周边少量块,同时选择更低的分辨率进行编码,从而保证流畅播放。

// 根据网络带宽调整块编码参数
void adjustBlockLevels(vector<int> levels, bandwidth);

// 选择性编码块
encodeBlock(block, level);

采用基于点播的流传输策略,在编码和封包过程中支持视频文件被拆分编码后的不同分辨率行实时中途切换下载和解码。这可以更好适应不同网络瞬时带宽波动情况。

// 下载匹配码率片段
downloadSegment(targetRate); 

// 在线解码片段  
decodeSegment(segment);

选择开源和更高效的AV1视频编码格式,在编码过程中有利于支持更广泛设备的硬件accelarated 解码,提高兼容性。

// 使用AV1编码器
AV1Encoder encoder;

// 对块进行AV1编码
encoder.encodeBlock(block, outSegment);
使用E3PO评估与优化

将自适应传输算法写为E3PO脚本:定义传输控制、视频编码解码、视角追踪预测等模块。编码单元、编码参数也进行了设定。

在E3PO模拟不同网络环境:分别设置5个延迟区间(20ms一级增长至150ms)和3个丢包率区间(1%、3%、5%)。每种网络环境下重复运行100次以获取统计数据。

测量和记录关键指标:如解码器的缓冲时长、播放器的每秒重绘次数以表示流畅度。每帧解码前后的PSNR,以计算不同条件下的视频质量。

优化预测算法参数:每次分别增大或缩小视区大小、预测窗口,观察视角延迟的变化。记录最小延迟点的参数设置。

调整码率自适应阈值:重复设置5个分辨率级别对应的带宽占比,观察整体表现。找到保证流畅且画质较好的组合。

比较不同方案在各环境下的优劣:用量化指标与主观评判来确定表现最佳的算法参数配置。

总结

基于E3PO平台,我们设计了一种自适应的360°视频传输方案,通过视角预测、动态码率控制以及点播传输策略等技术手段,实现了根据网络条件实时调整视频质量,从而保证流畅播放。利用E3PO的模拟能力,我们对该方案进行了全面验证和多轮优化。结果表明,与固定码率传输相比,该自适应传输方案可以更好地适应各种网络环境,有效提升视觉体验。虽然在E3PO模拟平台上获得了不错的效果,但是E3PO模拟的仍然是理想化条件,未来还需在真实设备和复杂网络环境下进行测试与优化,以适应不同终端硬件能力和大量网络变因,期望通过持续探索与改进,最终打造一套通用且高效的自适应360°视频传输解决方案。

infoq原文:https://xie.infoq.cn/article/ce30ca80bb8a4dd3a4a994fdb

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论