10bit 视频是什么?相比起 8bit 视频有什么优势?

关注者
435
被浏览
528,580

16 个回答

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

实际体验上,更细致的颜色分级意味着渐变色更细腻。在8bit编码下,有些时候一些渐变色块由于色彩变化范围很小而面积很大,容易导致一端到另一端总共只出现了很少的几种颜色,这就使得画面看上去不是渐变色带而是几块颜色,这种现象叫做banding。10bit由于颜色级数是8bit的4倍,色块就不容易出现,同时由于相邻颜色区别更小,人眼也难以看出色块之间的界限。

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

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

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

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

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

问的是10bit视频啊,这都跑题跑到哪去了

Bit depth越高,画面信息的精度越高,这个

Junius Lu

已经解释了

首先,目前市面上民用级别的片源都是8bit的,但是工业上的后期处理基本都是10bit

所以在把影像转换成消费产品的时候必须要吧10bit的内容转换成8bit,而这个过程中有个很重要的工序dither(抖动),如果没有dither的话,10bit的原始视频转换成8bit以后就会出现色彩分层现象,当然这种现象一般是在像二维动画这种画面干净细节少的片源上才会很明显。

问题在于dither会产生大量高频信号,这种细节在重编码的时候很难保留,所以色彩分层(Banding)就成了动画视频重编码的一个老大难问题

而x264的10bit编码的出现在很大程度上解决了这个问题。有人可能会认为,目前消费级的片源都是8bit的,并且绝大多数人所用的显示设备的精度只有6-8bit,所以10bit完全没有意义,这是一种想当然的想法。10bit在以下两方面有优势,1,凭借更高的精度,10bit在实际应用中具有比8bit更好的压缩效率(不要想当然地认为那多出来的2bit一定会消耗更多的码率),尤其是画面的细节更容易被保留。2,8bit片源转换成10bit进行编码和10bit视频被解码然后转换成8bit最终在显示器上显示,这个过程会经历两次dither,所以能非常有效地消除动画片的色彩分层现象。

涉及一些比较具体测试的文章:

10bit视频编码--特性及全面播放方法介绍

当然10bit视频的缺点也是显而易见的——硬件支持基本为0,移动设备几乎全军覆没,软件解码对处理器的性能也有一定程度上的要求,所以虽然10bit视频具备更好的压缩效率,目前仍然只在动画片压制领域被较广泛地使用(一方面是因为10bit视频在动画上优势更明显,另一方面是动画片压制者相对来说更容易接纳新技术)。