Setting Default Parameters...
Parsing Configfile encoder.cfg............................................................................................................................................................................................................................
Parsing command line string 'IGNORED'.
Parsing command line string 'IGNORED'.
Parsing command line string 'IGNORED'.

------------------------------- JM 12.1 (FRExt) --------------------------------
 Input YUV file                    : foreman_part_qcif_444.yuv 
 Output H.264 bitstream            : Output/test.264 
 Output YUV file                   : Output/test_rec.yuv 
 YUV Format                        : YUV 4:2:2 
 Frames to be encoded I-P/B        : 8/7
 PicInterlace / MbInterlace        : 0/0
 Transform8x8Mode                  : 1
-------------------------------------------------------------------------------
  Frame  Bit/pic    QP   SnrY    SnrU    SnrV    Time(ms) MET(ms) Frm/Fld Ref  
-------------------------------------------------------------------------------
0000(NVB)       0 
0000(IDR)       0   28  37.492  37.535  39.793         0       0    FRM    1
0002(P)         0   28  43.547  38.497  36.904         0       0    FRM    1
0001(B)         0   30  43.308  32.833  33.469         0       0    FRM    0
0004(P)         0   28  44.991  33.902  34.510         0       0    FRM    1
0003(B)         0   30  35.568  36.845  38.115         0       0    FRM    0
0006(P)         0   28  36.908  37.322  39.341         0       0    FRM    1
0005(B)         0   30  42.171  38.433  36.416         0       0    FRM    0
0008(P)         0   28  43.508  39.754  38.446         0       0    FRM    1
0007(B)         0   30  42.371  32.743  33.310         0       0    FRM    0
0010(P)         0   28  44.658  33.887  34.472         0       0    FRM    1
0009(B)         0   30  36.034  37.083  38.584         0       0    FRM    0
0012(P)         0   28  36.888  37.454  38.867         0       0    FRM    1
0011(B)         0   30  42.237  39.691  38.114         0       0    FRM    0
0014(P)         0   28  43.365  39.852  38.752         0       0    FRM    1
0013(B)         0   30  41.805  32.659  33.524         0       0    FRM    0
-------------------------------------------------------------------------------
 Total Frames:  15 (8) 
 Leaky BucketRateFile does not have valid entries.
 Using rate calculated from avg. rate 
-------------------------------------------------------------------------------
 Freq. for encoded bitstream       : 15
 ME Metric for Refinement Level 0  : SAD
 ME Metric for Refinement Level 1  : Hadamard SAD
 ME Metric for Refinement Level 2  : Hadamard SAD
 Mode Decision Metric              : Hadamard SAD
 Motion Estimation for components  : Y
 Image format                      : 176x144
 Error robustness                  : Off
 Search range                      : 16
 Total number of references        : 5
 References for P slices           : 5
 List0 references for B slices     : 5
 List1 references for B slices     : 1
 Sequence type                     : I-B-P-B-P (QP: I 28, P 28, B 30) 
 Entropy coding method             : CABAC
 Profile/Level IDC                 : (144,40)
 Motion Estimation Scheme          : Fast Full Search
 Search range restrictions         : none
 RD-optimized mode decision        : used
 Data Partitioning Mode            : 1 partition 
 Output File Format                : H.264 Bit Stream File Format 
------------------ Average data all frames  -----------------------------------
 PSNR Y(dB)                        : 40.99
 PSNR U(dB)                        : 36.57
 PSNR V(dB)                        : 36.84
 cSNR Y(dB)                        : 39.71 ( 6.96)
 cSNR U(dB)                        : 35.79 (17.15)
 cSNR V(dB)                        : 36.22 (15.51)
 Total bits                        : 199896 (I 21480, P 94872, B 83368 NVB 176) 
 Bit rate (kbit/s)  @ 30.00 Hz     : 399.79
 Bits to avoid Startcode Emulation : 0 
 Bits for parameter sets           : 176 
-------------------------------------------------------------------------------
Exit JM 12 (FRExt) encoder ver 12.1 
exit 0
