Android 我可以将BMP图像的传入流显示为视频吗?(安卓应用程序)

Android 我可以将BMP图像的传入流显示为视频吗?(安卓应用程序),android,streaming,distributed-computing,low-latency,Android,Streaming,Distributed Computing,Low Latency,是否可以将BMP图像的传入流播放为超低延迟的视频(图像显示时间不到20毫秒) 这些图像的频率为每秒20个图像 这种简单的解决方案是可能的,还是应该使用H.264/5对图像进行编码 如何处理这个问题 友好的问候 Q:“这种天真的解决方案可能吗…” 对 你可能也喜欢阅读这篇文章 Q:“…图像应该使用H264/5编码吗?” 那要看情况了 考虑到上述20 Hz BMP图像进入率,对于(主要分布的)MVC系统的所有V可视部分,每个图像大约有50[ms] 在这50毫秒内,应该不会浪费任何时间&任何东

是否可以将BMP图像的传入流播放为超低延迟的视频(图像显示时间不到20毫秒)

这些图像的频率为每秒20个图像

这种简单的解决方案是可能的,还是应该使用H.264/5对图像进行编码

如何处理这个问题

友好的问候


Q:“这种天真的解决方案可能吗…”


你可能也喜欢阅读这篇文章


Q:“…图像应该使用H264/5编码吗?”


那要看情况了

考虑到上述20 Hz BMP图像进入率,对于(主要分布的)MVC系统的所有V可视部分,每个图像大约有
50[ms]

在这50毫秒内,应该不会浪费任何时间&任何东西都不会阻塞

因此,接收引擎必须保持入口的稳定数据流,没有任何其他不协调的带宽(内存、I/O等)食客造成的流量过载(BMP图像的大小尚未提及),并且必须提供一些方法,在“下一步”的情况下,将什么输入到演示引擎中-要显示的数据不完整或根本不存在

那么压缩呢? 压缩是一把双刃剑——你明显地减少了数据量(使用一些SER/DES编解码器,即使是以丢失部分原始数据丰富性为代价的,是的,确切地说,是故意有损压缩方案),同时通常会添加一些额外的数据重帧,也许还有R/S或其他“行代码”错误检测/错误纠正,因此xmit的最终数据量不必像纯压缩部分本身在理论上允许的那么小

结果如何? 所有这些都要付出巨大的代价——在SER/coder端和解码器/DES端,两者都是为了尽可能少地将数据传输到(通常是不可管理的低带宽/模糊延迟)传输中

因此,假设20 Hz刷新率为一帧重绘留下的总时间不超过50 ms,则接收器引擎处理和演示者引擎处理的总和不能超过每帧50 ms。任何解码相关和反序列化相关的处理都是这方面的决定因素

然而,如果正确的设计和完美的工程能够做到这一点,并且足够强大,人们可能会成功

检查目标设备是否存在以下所有问题:

  • 运输资源限制
    (即每次到达时消耗的时间和分配/锁定的资源)
  • 内存I/O
    (任何交错数据流模式的延迟和内存I/O并发限制)
  • 缓存层次结构(如果设备上存在)大小、成本和I/O限制
  • 处理限制
    (如果是多核,NUMA越多,注意非统一内存I/O陷阱)
  • 演示者引擎硬件瓶颈
    (内存I/O、显示设备缓冲区I/O限制和任何其他附加延迟)
因为这些细节中的任何一个都可能会使您的(抗错误)数据流变得平滑,以便最终在目标设备上显示,以达到预期的20 FPS的目标

祝你好运

没有好处:
如果您可以在源代码上利用数据缩减,抓住机会并这样做,就像在任何情况下一样,您事先知道所有目标演示者-引擎都是黑白的,决不“发送”彩色BMP,去掉所有每帧颜色表和高级颜色配置技巧,只传输原始的、大小合适的光栅数据,这些数据与目标终端设备的最坏情况处理和延迟上限情况相匹配。
仔细查看所有这些冗余和主要浪费的数据(重复)通用BMP数据格式定义的一部分,不重新广播


Q:“这种天真的解决方案可能吗…”


你可能也喜欢阅读这篇文章


Q:“…图像应该使用H264/5编码吗?”


那要看情况了

考虑到上述20 Hz BMP图像进入率,对于(主要分布的)MVC系统的所有V可视部分,每个图像大约有
50[ms]

在这50毫秒内,应该不会浪费任何时间&任何东西都不会阻塞

因此,接收引擎必须保持入口的稳定数据流,没有任何其他不协调的带宽(内存、I/O等)食客造成的流量过载(BMP图像的大小尚未提及),并且必须提供一些方法,在“下一步”的情况下,将什么输入到演示引擎中-要显示的数据不完整或根本不存在

那么压缩呢? 压缩是一把双刃剑——你明显地减少了数据量(使用一些SER/DES编解码器,即使是以丢失部分原始数据丰富性为代价的,是的,确切地说,是故意有损压缩方案),同时通常会添加一些额外的数据重帧,也许还有R/S或其他“行代码”错误检测/错误纠正,因此xmit的最终数据量不必像纯压缩部分本身在理论上允许的那么小

结果如何? 所有这些都要付出巨大的代价——在SER/coder端和解码器/DES端,两者都是为了尽可能少地将数据传输到(通常是不可管理的低带宽/模糊延迟)传输中

因此,假设20 Hz刷新率为一帧重绘留下的总时间不超过50 ms,则接收器引擎处理和演示者引擎处理的总和不能超过每帧50 ms