是否可以“无损”裁剪基于宏块的视频流,例如 h.264?

Posted

技术标签:

【中文标题】是否可以“无损”裁剪基于宏块的视频流,例如 h.264?【英文标题】:Is it possible to 'losslessly' crop a macroblock-based video stream such as h.264? 【发布时间】:2013-06-24 12:36:23 【问题描述】:

我想“无损”(即不进行转码)裁剪我使用 h.264 编码的视频。这可能吗?

我不详细了解 h.264 的工作原理,但我了解一般原理(宏块、I 帧、光流/推动像素组)。在我的想象中,裁剪操作(仅限于宏块边界)可以简单地去除不需要的宏块,留下更小的图片帧,更新数据包元数据以匹配。这行得通吗?

[edit] 我希望能够在服务器端执行此操作,因此在显示上进行裁剪是不够的。

【问题讨论】:

【参考方案1】:

不,它不完全裁剪宏块,你必须解码整个帧,然后你可以只显示你想看到的部分(使用显示功能裁剪)。如果您正在传输它,那么您需要按原样传输整个帧并在远端执行上述操作。

【讨论】:

谢谢,但根据我对问题的编辑,我希望能够在服务器上执行此操作。

以上是关于是否可以“无损”裁剪基于宏块的视频流,例如 h.264?的主要内容,如果未能解决你的问题,请参考以下文章

x264宏块及子块划分方式

H.264/AVC视频编解码技术详解二十六帧间预测编码:宏块的帧间预测解码

H.264/AVC视频编解码技术详解二十六帧间预测编码:宏块的帧间预测解码

H.264/AVC视频编解码技术详解十熵编码算法:H.264使用CAVLC解析宏块的残差数据

H.264/AVC视频编解码技术具体解释十熵编码算法:H.264使用CAVLC解析宏块的残差数据

H.264/AVC视频编解码技术详解十三熵编码算法:H.264使用CAVLC解析宏块的残差数据