首页 > 编程知识 正文

8bit和10bit视频对比,10bit视频多吗

时间:2023-05-06 18:20:42 阅读:283743 作者:1415

知乎链接:https://www.zhihu.com/question/20100081


作者:背后的秀发
链接:https://www.zhihu.com/question/20100081/answer/26246588
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

简单说,10bit视频是指一种视频编码的特征,意思是每个颜色通道用10个bit来表达。这样,每个颜色通道的色彩级数从8bit的256级提高到了1024级,就可以更细致地表达颜色。

实际体验上,更细致的颜色分级意味着渐变色更细腻。在8bit编码下,有些时候一些渐变色块由于色彩变化范围很小而面积很大,容易导致一端到另一端总共只出现了很少的几种颜色,这就使得画面看上去不是渐变色带而是几块颜色,这种现象叫做banding。10bit由于颜色级数是8bit的4倍,色块就不容易出现,同时由于相邻颜色区别更小,人眼也难以看出色块之间的界限。
<img src="https://pic1.zhimg.com/79825c585b2b6b8b32cbc3b68f0b9c2c_b.jpg" data-rawwidth="480" data-rawheight="360" class="origin_image zh-lightbox-thumb" width="480" data-original="https://pic1.zhimg.com/79825c585b2b6b8b32cbc3b68f0b9c2c_r.jpg">(从wiki偷来的banding效果图,左边是banding,中间是dithering,右边是高bit数下的效果)

(从wiki偷来的banding效果图,左边是banding,中间是dithering,右边是高bit数下的效果)

虽然直观上感觉10bit比8bit多占用25%的数据量,但实际上在实践中10bit往往能带来更高的压缩率。这是由于10bit更能准确地描述颜色,提升了信噪比。例如为了解决banding,8bit编码技术可以通过一种称为dither(抖动)的方法,也就是在色块边缘混入细碎的相邻色的色点,来模糊色块边缘。但是由于这些色点的存在大幅提高了画面的复杂度,产生了许多冗余信息量。由于8bit必须采用这些技术来提高视觉观感,所以8bit编码往往要引入大量冗余信息,而10bit不需要dither也能实现一样的画面感受,所以往往10bit编码出来的视频大小小于同等质量的8bit视频。

<img src="https://pic4.zhimg.com/25db8d653c4cc29e5b13ee7a8a7e1a37_b.jpg" data-rawwidth="641" data-rawheight="641" class="origin_image zh-lightbox-thumb" width="641" data-original="https://pic4.zhimg.com/25db8d653c4cc29e5b13ee7a8a7e1a37_r.jpg">(一张关于各种dithering算法的图)

(一张关于各种dithering算法的图)

有人可能关心10bit编码并没有意义,因为最终用户的屏幕可能只有6bit或者8bit。这不会使10bit变得没有意义,因为最终在输出阶段画面会经由输出硬件或渲染软件抖动。这样就能够在6bit/8bit的设备上实现类似10bit的输出效果。

当然10bit不是没有缺点。首先,计算机系统处理数据的单位往往是byte,也就是8bit。使用10bit,可能会浪费一部分硬件数据传输和处理能力,使得处理性能低于8bit编码。这也是为什么一直以来使用8bit的原因。同时,该技术较新,很多硬件和软件尚没有提供较好的支持,使得应用起来往往存在播放困难、消耗太多资源等等问题。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。