Press "Enter" to skip to content

Posts tagged as “prores”

Apple ProRes 实战分析 | 码率 | 压缩比 | 信噪比

ProRes是苹果推出的一组有损视频编码格式,经常用作视频剪辑时候的中间编码。现在也有不少相机提供机内录制ProRes的选项。

ProRes优点有

  • All-Intra/帧内编码(每一帧都是独立压缩)
  • 编解码效率高(使用硬件加速的情况下)
  • 全线支持10bit 422(也有444和4444的选项)
  • 可变码率(”简单”的画面压缩比高)

当然一切都是有代价的,All-Intra就意味着在相同画质的情况下,码率会比LongGOP帧间编码(H.265 / HEVC)高不少。好在ProRes提供了一些预设来满足不同的画质/码率需求,码率从高到低分别是:

  • HQ (High Qaulity) 高画质
  • ST (Standard) 标准
  • LT (Light) 轻量级
  • Proxy 代理

接下来我们就来一起看下不同预设在不同场景下的表现。

测试环境和方法:由于ProRes是All-Intra的,所以拿照片和视频得到的结论是一样的,为了方便起见我就都用单张照片来进行测试。

照片是RAW转16bit TIFF,3840×2160,再用ffmpeg压缩成ProRes 30fps,编码器使用的是Mac上的硬件编码器prores_videotoolbox,默认参数。硬件编码器的画质肯定不如CPU编码,但速度要快上好几个数量级。

首先出场的是最难压缩的东西:噪声,来测试一下ProRes码率的上限和画质的下限。

Profile Bitrate (Mbps) Compression Ratio PSNR
HQ 941.82 5.04 13.86
ST 647.12 7.33 13.07
LT 373.77 12.70 12.71
PROXY 143.35 33.11 12.69

首先我们看到的是PSNR惨不忍睹,就算HQ的码率高达942Mbps,信噪比也不到14,信噪比随着码率下降而下降,不过不到1dB。

接下来看一下风光照,一般光圈比较小,场景中有大量的纹理细节。

Profile Bitrate (Mbps) Compression Ratio PSNR
HQ 872.01 5.44 41.67
ST 570.42 8.32 38.96
LT 394.29 12.04 36.36
PROXY 175.28 27.08 31.72

这个时候就很明显的看到各档拉出了明显的差距,信噪比从最高的HQ的近42dB,慢慢降低到Proxy的32dB。但就算全屏观看(不放大),Proxy的画质也相当能打了。30dB是”高画质”底线。

再看另一张,无论是码率还是信噪比都惊人的接近。

Profile Bitrate (Mbps) Compression Ratio PSNR
HQ 882.20 5.38 41.47
ST 568.93 8.34 39.06
LT 398.37 11.91 36.25
PROXY 178.90 26.53 30.82

之前的强度太强了,我们来一个easy case。有大量平滑色块和很强的背景虚化的照片,这种就属于比较容易压缩的。

Profile Bitrate (Mbps) Compression Ratio PSNR
HQ 749.11 6.34 48.48
ST 555.70 8.54 47.95
LT 386.50 12.28 47.27
PROXY 93.45 50.79 45.73

对于简单场景,连Proxy都拿到了近46dB的PSNR,拉不开差距,而且各档码率都下降了不少。

人像

接着我们来看几张人像,结果介于风光和简单场景之间。

Profile Bitrate (Mbps) Compression Ratio PSNR
HQ 852.40 5.57 43.33
ST 568.61 8.35 42.58
LT 372.84 12.73 41.47
PROXY 157.54 30.13 39.78
Profile Bitrate (Mbps) Compression Ratio PSNR
HQ 886.42 5.35 39.72
ST 553.79 8.57 39.55
LT 350.24 13.55 39.24
PROXY 188.87 25.13 38.58
Profile Bitrate (Mbps) Compression Ratio PSNR
HQ 850.07 5.58 34.12
ST 537.04 8.84 34.06
LT 392.76 12.08 34.00
PROXY 160.87 29.50 33.77

不知道为什么对于一些人像照片来说,各个档位拉不开差距。还用什么HQ,直接Proxy得了。

总结

Profile 4K 30fps
Bitrate (Mbps)
4K 60fps
Bitrate (Mbps)
Compression Ratio Avg
PSNR
HQ 880.00 1760.00 5.39 40.06
ST 570.00 1140.00 8.33 38.84
LT 400.00 800.00 11.87 37.46
PROXY 180.00 360.00 26.37 34.94

ProRes HQ/ST虽然画质不错,但仅有5-8的压缩比做为录制编码来说码率太高了,不太实用,要知道NRAW压缩比也在5左右。ProRes LT压缩比为12:1左右,4K30 “仅需” 400Mbps,在码率和画质上取得一个不错的平衡点。但4K 60码率就翻倍了达到800Mbps。这也算是All-intra的一个弊端了,码率和帧率成正比, 即便是ProRes LT 4K 120fps也要1600Mbps。Proxy可以提供30:1的压缩比,4K 60也就360Mbps,都和H.265差不多了,平均35的PSNR估计是要比H.265低一些, 不过对于一般的情况来说也够用了。希望相机厂商能提供更多的ProRes编码选项,其实也就是几组参数的事情。个人希望加一个Proxy的高码率版,压缩比20:1左右,4K 60 475Mbps左右,V60的SD就行了,那就非常Nice了。

想当年,JPEG以8:1~12:1的压缩比傲视群雄,我的第一台单反D90就能拍摄720p的MJPEG,同样也是All-Intra,720p超过25Mbps的码率(压缩比13.5:1) 在当时来说高的吓人。但仅从画质上来讲,ProRes系列并没有比(目前最好的)MJPEG好多少。毕竟帧内压缩是有极限的,个人感觉40:1 – 50:1估计到头了。AI超分+帧生成或许是以后的发展方向,码率降到1/16不是梦。

Nikon Z8/Z9 Video Format / Bitrate / Compression ratio | NRAW | ProRes | ProRes RAW | H.265

The Nikon official site didn’t provide the birate for ProRes / ProRes RAW, I did some test my self, here’re the results. I only tested fullframe (FX) in ~4K resolution.

ProRes Raw 12Bit

Resolution / FPSBitrate (Mbps)Compression Ratio
4140 x 2330 60p33501.977
4140 x 2330 50p28101.964
4140 x 2330 30p16202.044
4140 x 2330 25p13602.029
4140 x 2330 24p12802.070

ProRes Raw has a very low compression ratio of 2, which suggests that it might be lossless compressed, which takes more spaces than Nikon’s lossy N-RAW, 2.5x of the high quality and 4.5x of the normal quality!

ProRes HQ 422 10Bit

Resolution / FPSBitrate (Mbps)Compression Ratio
3840 x 2160 60p18005.273
3840 x 2160 50p15005.273
3840 x 2160 30p9105.215
3840 x 2160 25p7605.204
3840 x 2160 24p7305.201

With compression ratio of 5.2, ProRes is still 2x the size of the normal quality n-raw! Though the former one has 1.5x number of pixels to deal with (YUV422 vs Bayer).

I hope Nikon could provide more options for ProRes via firmware updates. A 10x~12x compression ratio version (ProRes LT 422) will be very useful to balance between quality and disk space.

H.265 420 10 bit

Resolution / FPSBitrate (Mbps)Compression Ratio
7680 x 4320 30p40047.461
7680 x 4320 25p40039.551
7680 x 4320 24p40037.969
3840 x 2160 120p40047.461
3840 x 2160 100p40039.551
3840 x 2160 60p34027.918
3840 x 2160 50p34023.265
3840 x 2160 30p19024.979
3840 x 2160 25p19020.816
3840 x 2160 24p19019.984

For H.265, there is no option for all-intra, and only in 420. Compression ratio is much higher given long GOP. One thing to note, that bitrate is variable depend on the content, i.e. very dark scene will have a much lower bitrate (<100Mbps for 4K60).

NRAW High Quality 12 bit

Resolution / FPSBitrate (Mbps)Compression Ratio
8256 x 4644 60p57804.555
8256 x 4644 50p48104.561
8256 x 4644 30p28904.555
8256 x 4644 25p24104.552
8256 x 4644 24p23104.559
4128 x 2322 120p38403.428
4128 x 2322 100p29003.783
4128 x 2322 60p17403.783
4128 x 2322 50p14503.783
4128 x 2322 30p8703.783
4128 x 2322 25p7303.757
4128 x 2322 24p7003.761

First of all, given 4.5 compression ratio, NRAW is definitely a lossy codec. Interesting thing is that 8K’s compression ratio is higher than 4K’s. 4.5 vs 3.7.

NRAW Normal Quality 12 bit

Resolution / FPSBitrate (Mbps)Compression Ratio
8256 x 4644 60p34707.587
8256 x 4644 50p28907.591
8256 x 4644 30p17407.565
8256 x 4644 25p14507.565
8256 x 4644 24p13907.576
4128 x 2322 120p17507.522
4128 x 2322 100p14607.513
4128 x 2322 60p8807.479
4128 x 2322 50p7307.513
4128 x 2322 30p4407.479
4128 x 2322 25p3707.412
4128 x 2322 24p3507.522

For normal quality, the compression ratio is even higher, reaching 7.5:1 which is not bad for all-intra.