由于 x.265 编码器在解码后生成重建的 yuv 视频文件,我知道,在开源 x.265 编码器中,您输入原始 yuv 视频,它会为您生成 HEVC 文件以及重建的 YUV 文件。
我的问题是,我可以直接输入 HEVC 文件来生成重建的 yuv 文件吗?如果是,如何?
由于 x.265 编码器在解码后生成重建的 yuv 视频文件,我知道,在开源 x.265 编码器中,您输入原始 yuv 视频,它会为您生成 HEVC 文件以及重建的 YUV 文件。
我的问题是,我可以直接输入 HEVC 文件来生成重建的 yuv 文件吗?如果是,如何?
不可以。您不能将 HEVC 文件直接输入到 HEVC 编码器,因为编码器没有任何熵解码模块(它包括其他解码模块,如运动补偿、IDCT、Inverse Qunat 等)。但编码器的重点是将原始视频编码为 HEVC 比特流。相反,您可以将 HEVC 流提供给 HEVC 解码器并获得完全相同的重构 YUV。位匹配编码器使用标准解码器解码的 YUV 重构 YUV,确保编码器正常工作
x.265 编码器在解码后生成重构的 yuv 视频文件
[..]
它为您生成 HEVC 文件以及重建的 YUV 文件
让我澄清一下。是的,x265(和其他编码器)可以在编码期间创建 YUV 文件。但是,它不是用于解码目的。它用于调试目的。编码器的目的是创建可由解码器解码的视频流。为了做到这一点,编码器和解码器需要就中间交换格式达成一致,即标准化比特流格式。
这似乎很明显——在这种情况下,我指的是 HEVC——但您必须了解编码器(和解码器)可能存在错误。您如何找到这些错误?你测试!你如何测试?您查看编码器生成的比特流,以及编码器认为解码器在解码时会创建的 YUV 表示。然后使用独立解码器解码文件,并检查 2 个 YUV 文件是否相同。
这里重要的是编码器实际上并没有解码它。相反,YUV 是编码器认为应该由解码器在给定比特流中指定的块/模式选择的情况下重建的实际内部位图表示。编码器从未解码。它只是按照它认为解码器会做的那样重建位图,然后将重建信息编码到比特流中。(对于参考帧,位图随后用作后续编码帧的目标参考。)
X.265 是 HEVC 的编码器,而不是解码器。您可以使用 ffmpeg 或 openHEVC 来解码 HEVC 流。