[x264-devel] PPC profile/benchmarks/computational complexity

Guillaume POIRIER gpoirier at mplayerhq.hu
Tue Dec 9 22:08:14 CET 2008


Hello,

On Tue, Dec 9, 2008 at 9:37 PM, Roberta <opensource at musemagic.com> wrote:
> It has to do with a project I am looking at and
> I cannot enable verbose mode on a PPC because I do not possess a PPC to
> run the code on.  I need the numbers to consider a particular effort in
> a port.

Ok, I guess my sarcasm doesn't didn't survive the translation. I
meant: please give more details of what _exactly_ you want to do.

x264 already has a PPC port with routines vectorized with
Altivec/VMX/VelocityEngine instructions, but there are still a lot to
do if we want to bring PPC port on par with x86 port. Any help is more
than welcome.

I _think_ that you were requesting a profile of x264 on an PPC
machine. Here's one on a G4 with quite extreme setting (the ones you'd
use for extra good picture quality):

8.5%           pixel_sad_x4_16x16_altivec x264
8.4%             pixel_sad_x4_8x8_altivec x264
7.7%                      get_ref_altivec x264
5.3%                   x264_me_search_ref x264
4.8%                    pixel_hadamard_ac x264
3.7%                    mc_chroma_altivec x264
3.1%           block_residual_write_cabac x264
3.0%                      pixel_avg_16x16 x264
3.0%               x264_quant_8x8_trellis x264
2.9%              pixel_sad_16x16_altivec x264
2.8%               pixel_satd_8x8_altivec x264
2.4%                   x264_pixel_sad_4x4 x264
2.3%             pixel_satd_16x16_altivec x264
1.8%               pixel_satd_4x4_altivec x264
1.4%                             __memcpy /usr/lib/libSystem.B.dylib
1.3%            pixel_sad_x4_8x16_altivec x264
1.3%                        refine_subpel x264
1.3%                pixel_sad_8x8_altivec x264
1.1%               x264_quant_4x4_altivec x264
1.1%               x264_macroblock_encode x264
1.1%            x264_mb_encode_8x8_chroma x264
0.9%            x264_add8x8_idct8_altivec x264
0.8%               x264_quant_4x4_trellis x264
0.8%           x264_macroblock_size_cabac x264
0.8%                        pixel_avg_8x8 x264
0.8%              x264_sub8x8_dct_altivec x264
0.8%                    x264_cabac_mb_mvd x264
0.7%             x264_sub8x8_dct8_altivec x264
0.7%             x264_add4x4_idct_altivec x264
0.7%            pixel_sad_x4_16x8_altivec x264
0.7%                zigzag_scan_8x8_frame x264
0.7%          pixel_sa8d_8x8_core_altivec x264
0.7%                x264_mb_analyse_intra x264
0.7%              pixel_satd_8x16_altivec x264
0.6%                   x264_pixel_sad_4x8 x264
0.6%              x264_macroblock_analyse x264
0.6%           x264_macroblock_cache_load x264
0.6%                x264_decimate_score64 x264
0.5%                   x264_pixel_sad_8x4 x264
0.5%             x264_dequant_8x8_altivec x264
0.5%               x264_quant_8x8_altivec x264
0.5%                      mc_luma_altivec x264
0.5%                   x264_mb_predict_mv x264
0.5%              pixel_satd_16x8_altivec x264
0.5%             pixel_sad_x3_8x8_altivec x264
0.5%             x264_dequant_4x4_altivec x264
0.5%            x264_partition_size_cabac x264
0.4%               frame_init_lowres_core x264
0.4%          x264_mb_predict_mv_ref16x16 x264
0.4%                x264_decimate_score15 x264
0.4%                x264_decimate_score16 x264
0.3%         x264_cabac_encode_decision_c x264
0.3%   x264_zigzag_scan_4x4_frame_altivec x264
0.3%                pixel_ssd_8x8_altivec x264
0.3%           pixel_sad_x3_16x16_altivec x264
0.3%              pixel_ssd_16x16_altivec x264
0.3%               x264_me_refine_qpel_rd x264
0.3%                            ssim_end4 x264
0.3%                       x264_mb_mc_8x8 x264
0.3%            ml_set_interrupts_enabled              /mach_kernel
0.2%              x264_sub4x4_dct_altivec x264
0.2%              x264_me_refine_bidir_rd x264
0.2%           x264_macroblock_cache_save x264
0.2%                    x264_mb_mc_01xywh x264
0.2%          x264_macroblock_write_cabac x264
0.2%             x264_hpel_filter_altivec x264
0.2%                    x264_coeff_last64 x264
0.2%                    x264_rd_cost_part x264
0.2%            x264_analyse_update_cache x264
0.2%               pixel_sad_8x16_altivec x264
0.2%                    x264_coeff_last16 x264
0.2%                           x264_mb_mc x264
0.2%          x264_macroblock_encode_p8x8 x264
0.2%              ssim_4x4x2_core_altivec x264
0.2%              x264_predict_8x8_filter x264
0.2%            x264_me_refine_bidir_satd x264
0.2%       x264_mb_predict_mv_direct16x16 x264
0.2%                x264_pixel_sad_x4_4x4 x264
0.2%                 x264_intra_rd_refine x264
0.2%                 x264_pixel_var_16x16 x264
0.2%               pixel_satd_8x4_altivec x264
0.2%               pixel_sad_16x8_altivec x264
0.2%                              mc_copy x264
0.1%            x264_quant_2x2_dc_altivec x264
0.1%                      x264_rd_cost_mb x264
0.1%               pixel_satd_4x8_altivec x264
0.1%                       predict_8x8c_p x264
0.1%                              __bzero /usr/lib/libSystem.B.dylib
0.1%         x264_mb_analyse_inter_b16x16 x264
0.1%                  x264_mb_encode_i4x4 x264
0.1%           x264_mb_analyse_inter_b8x8 x264
0.1%           x264_mb_analyse_inter_p4x4 x264
0.1%                       predict_8x8_vr x264
0.1%              predict_16x16_p_altivec x264
0.1%               x264_slicetype_mb_cost x264
0.1%                       predict_8x8_vl x264
0.1%                x264_mb_cache_mv_b8x8 x264
0.1%                        pixel_avg_4x4 x264
0.1%                   x264_pixel_var_8x8 x264
0.1%                      predict_8x8_ddr x264
0.1%                      predict_8x8_ddl x264
0.1%                    x264_cabac_mb_ref x264
0.1%     x264_cabac_mb_intra4x4_pred_mode x264
0.1%         x264_pixel_hadamard_ac_16x16 x264
0.1%                  x264_pixel_ssd_8x16 x264
0.1%                x264_pixel_sad_x3_4x4 x264
0.1%         x264_mb_analyse_inter_p16x16 x264
0.1%                       predict_8x8_hu x264
0.1%                       predict_8x8_hd x264
0.1%                  x264_ratecontrol_mb x264
0.1%                       predict_4x4_vr x264
0.1%                  x264_mb_encode_i8x8 x264
0.1%             x264_mb_predict_mv_16x16 x264
0.1%                   x264_cabac_mb_type x264
0.1%            pixel_sad_x3_8x16_altivec x264
0.1%                    x264_slices_write x264
0.1%                   x264_pixel_ssd_4x8 x264
0.1%                      predict_8x8c_dc x264
0.1%                      predict_4x4_ddr x264
0.1%            pixel_sad_x3_16x8_altivec x264
0.1%                 x264_mb_analyse_p_rd x264
0.1%                       pixel_avg_8x16 x264
0.1%                       pixel_avg_16x8 x264
0.1%                   deblock_v_chroma_c x264
0.1%                 x264_mb_mc_direct8x8 x264
0.1%                x264_mb_cache_mv_p8x8 x264
0.1%             x264_cabac_mb_cbp_chroma x264
0.1%                       predict_4x4_hd x264

Note that I didn't include the routines which weighted less than 0.1%
Guillaume
-- 
Only a very small fraction of our DNA does anything; the rest is all
comments and ifdefs.

Franklin P. Jones  - "All women should know how to take care of
children. Most of them will have a husband some day."


More information about the x264-devel mailing list