我以IBPBP的编码结构编了15帧(在encoder.cfg中令FramesToBeEncoded = 15 ),但编码完成后实际编码的帧数是29(1I帧,14P帧,14B帧),不太明白实际编码的帧数为什么与FramesToBeEncoded的设置不同,另外对解码后的结果如下:
----------------------------- JM 10.2 (FRExt) -----------------------------
Decoder config file : decoder.cfg
--------------------------------------------------------------------------
Input H.264 bitstream : test.264
Output decoded YUV : test_dec.yuv
Output status file : log.dec
Input reference file : test_rec.yuv
--------------------------------------------------------------------------
POC must = frame# or field# for SNRs to be correct
--------------------------------------------------------------------------
Frame POC Pic# QP SnrY SnrU SnrV Y:U:V Time(ms)
--------------------------------------------------------------------------
0000(I) 0 0 28 0.0000 0.0000 0.0000 4:2:0 188
0002(P) 4 1 28 0.0000 0.0000 0.0000 4:2:0 187
0001(B) 2 2 30 0.0000 0.0000 0.0000 4:2:0 203
0004(P) 8 2 28 0.0000 0.0000 0.0000 4:2:0 188
0003(B) 6 3 30 0.0000 0.0000 0.0000 4:2:0 187
0006(P) 12 3 28 0.0000 0.0000 0.0000 4:2:0 203
0005(B) 10 4 30 0.0000 0.0000 0.0000 4:2:0 204
0008(P) 16 4 28 0.0000 0.0000 0.0000 4:2:0 187
0007(B) 14 5 30 0.0000 0.0000 0.0000 4:2:0 203
0010(P) 20 5 28 0.0000 0.0000 0.0000 4:2:0 188
0009(B) 18 6 30 0.0000 0.0000 0.0000 4:2:0 218
0012(P) 24 6 28 0.0000 0.0000 0.0000 4:2:0 188
0011(B) 22 7 30 0.0000 0.0000 0.0000 4:2:0 203
0014(P) 28 7 28 0.0000 0.0000 0.0000 4:2:0 188
0013(B) 26 8 30 0.0000 0.0000 0.0000 4:2:0 203
0016(P) 32 8 28 0.0000 0.0000 0.0000 4:2:0 187
0015(B) 30 9 30 0.0000 0.0000 0.0000 4:2:0 219
0018(P) 36 9 28 0.0000 0.0000 0.0000 4:2:0 187
0017(B) 34 10 30 0.0000 0.0000 0.0000 4:2:0 219
0020(P) 40 10 28 0.0000 0.0000 0.0000 4:2:0 188
0019(B) 38 11 30 0.0000 0.0000 0.0000 4:2:0 203
0022(P) 44 11 28 0.0000 0.0000 0.0000 4:2:0 203
0021(B) 42 12 30 0.0000 0.0000 0.0000 4:2:0 203
0024(P) 48 12 28 0.0000 0.0000 0.0000 4:2:0 203
0023(B) 46 13 30 0.0000 0.0000 0.0000 4:2:0 219
0026(P) 52 13 28 0.0000 0.0000 0.0000 4:2:0 187
0025(B) 50 14 30 0.0000 0.0000 0.0000 4:2:0 219
0028(P) 56 14 28 0.0000 0.0000 0.0000 4:2:0 188
0027(B) 54 15 30 0.0000 0.0000 0.0000 4:2:0 172
POC是解码后的显示顺序,这里我有个疑问为什么POC不连续(0,2,4,6.....)并且还都是偶数另外Pic# P帧和B帧出现了相同的数字(例如0001(B) 2 2 和0004(P) 8 2 )且为什么第一个P帧无与之重复的B帧
解码后SnrY SnrU SnrV 为什么都为0呢,都为0,说明什么问题呢
请高手指点一二
1、实际编码的帧数为什么与FramesToBeEncoded的设置不同
——FramesToBeEncoded 只包括 I、P 帧;
2、为什么POC不连续(0,2,4,6.....)并且还都是偶数
——因为你是用的帧编码。如果是场编码顶场是偶数,低场是奇数;
3、Pic# P帧和B帧出现了相同的数字(例如0001(B) 2 2 和0004(P) 8 2 )
——看毕厚杰书上 175 页对 frame_num 的解释;
4、解码后SnrY SnrU SnrV 为什么都为0呢
——test_rec.yuv 与 test_dec.yuv 完全相同或者没有 test_rec.yuv。
Q:量化等级为28,test_rec.yuv 与 test_dec.yuv 应该不完全相同吧
A:无论量化等级为几,编码重建和解码重建都完全相同。JM 某些版本在开启 RC 的时候会出现不同的情况,那是属于 JM 的 bug,在 JM 高版本中已经修正了。 |