! / 1392656091 0 0 0 13344 ` 4d4d4d4d4d4d4dܼܼܼܼܼܼܼܼܼܼܼܼܼܼܼYYYYYYYYYYYYYYY>>>>>>00000000000000l\\\pppHHHhhhhhhhhظظ<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< n n n n n n n                   1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ f f f : : : : : : : : : : : :,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,            !!!!!!!!!!!!!!!!!!!!!!!!!!x264_plane_copy_interleave_cx264_plane_copy_deinterleave_v210_cx264_plane_copy_cx264_frame_init_lowresx264_mc_initx264_frame_filterx264_weight_nonex264_predict_16x16_dc_cx264_predict_16x16_h_cx264_predict_16x16_v_cx264_predict_16x16_p_cx264_predict_8x8c_dc_cx264_predict_8x8c_h_cx264_predict_8x8c_v_cx264_predict_8x8c_p_cx264_predict_8x16c_dc_cx264_predict_8x16c_h_cx264_predict_8x16c_v_cx264_predict_8x16c_p_cx264_predict_4x4_dc_cx264_predict_4x4_h_cx264_predict_4x4_v_cx264_predict_8x8_dc_cx264_predict_8x8_h_cx264_predict_8x8_v_cx264_predict_16x16_initx264_predict_8x8c_initx264_predict_8x16c_initx264_predict_8x8_initx264_predict_4x4_initx264_intra_satd_x3_16x16x264_intra_sad_x3_16x16x264_intra_satd_x3_8x16cx264_intra_sad_x3_8x16cx264_intra_sad_x3_8x8cx264_intra_satd_x3_4x4x264_intra_sad_x3_4x4x264_intra_sad_x3_8x8x264_intra_sa8d_x3_8x8x264_intra_satd_x3_8x8cx264_pixel_ssd_wxhx264_pixel_ssd_nv12x264_pixel_ssim_wxhx264_field_vsadx264_pixel_initx264_mb_mc_8x8x264_mb_mcx264_macroblock_cache_allocatex264_macroblock_cache_freex264_macroblock_thread_allocatex264_macroblock_thread_freex264_macroblock_slice_initx264_macroblock_thread_initx264_prefetch_fencx264_copy_column8x264_macroblock_cache_load_progressivex264_macroblock_cache_load_interlacedx264_macroblock_deblock_strengthx264_macroblock_cache_savex264_macroblock_bipred_initx264_frame_deletex264_frame_copy_picturex264_frame_expand_borderx264_frame_expand_border_filteredx264_frame_expand_border_lowresx264_frame_expand_border_chromax264_frame_expand_border_mod16x264_expand_border_mbpairx264_frame_cond_broadcastx264_frame_cond_waitx264_threadslice_cond_broadcastx264_threadslice_cond_waitx264_frame_new_slicex264_frame_pushx264_frame_popx264_frame_unshiftx264_frame_shiftx264_frame_push_unusedx264_frame_pop_unusedx264_frame_push_blank_unusedx264_frame_pop_blank_unusedx264_weight_scale_planex264_frame_delete_listx264_sync_frame_list_initx264_sync_frame_list_deletex264_sync_frame_list_pushx264_sync_frame_list_popx264_dct_initx264_zigzag_initx264_dct8_weight2_tabx264_dct4_weight2_tabx264_dct4_weight_tabx264_dct8_weight_tabx264_cpu_detectx264_cpu_num_processorsx264_cpu_namesx264_cabac_initx264_cabac_contextsx264_cabac_context_initx264_cabac_encode_init_corex264_cabac_encode_initx264_cabac_encode_decision_cx264_cabac_range_lpsx264_cabac_renorm_shiftx264_cabac_transitionx264_cabac_encode_bypass_cx264_cabac_encode_ue_bypassx264_cabac_encode_terminal_cx264_cabac_encode_flushx264_cabac_entropyx264_param_defaultx264_param_apply_fastfirstpassx264_param_parsex264_logx264_param_apply_profilex264_picture_initx264_mallocx264_picture_allocx264_freex264_picture_cleanx264_param_default_presetx264_reduce_fractionx264_reduce_fraction64x264_slurp_filex264_param2stringx264_chroma_formatx264_bit_depthx264_mdatex264_cache_ref_func_tablex264_cache_mvd_func_tablex264_cache_mv_func_tablex264_cqm_deletex264_cqm_initx264_cqm_parse_filex264_decimate_table4x264_decimate_table8x264_quant_initx264_frame_deblock_rowx264_macroblock_deblockx264_deblock_initx264_cavlc_initx264_level_tokenx264_run_beforex264_total_zeros_2x4_dcx264_total_zeros_2x2_dcx264_total_zerosx264_coeff_tokenx264_coeff0_tokenx264_mb_predict_mvx264_mb_predict_mv_16x16x264_mb_predict_mv_pskipx264_mb_predict_mv_direct16x16x264_mb_predict_mv_ref16x16x264_nal_encodex264_bitstream_initx264_cabac_size_unaryx264_lambda_tabx264_lambda2_tabx264_exp2_lutx264_log2_lutx264_log2_lz_lutx264_cabac_transition_unaryx264_last_coeff_flag_offsetx264_significant_coeff_flag_offsetx264_coeff_flag_offset_chroma_422_dcx264_cabac_block_residual_8x8_rd_cx264_coeff_abs_level_m1_offsetx264_significant_coeff_flag_offset_8x8x264_last_coeff_flag_offset_8x8x264_cabac_block_residual_rd_cx264_count_cat_m1x264_rd_cost_partx264_rdo_initx264_quant_luma_dc_trellisx264_quant_chroma_dc_trellisx264_quant_4x4_trellisx264_quant_8x8_trellisx264_analyse_prepare_costsx264_analyse_init_costsx264_analyse_free_costsx264_analyse_weight_framex264_macroblock_analysex264_weights_analysex264_slicetype_analysex264_slicetype_decidex264_rc_analyse_slicex264_me_search_refx264_me_refine_qpelx264_me_refine_qpel_refdupex264_me_refine_bidir_satdx264_iter_kludgex264_me_refine_bidir_rdx264_me_refine_qpel_rdx264_adaptive_quant_framex264_macroblock_tree_readx264_reference_build_list_optimalx264_ratecontrol_init_reconfigurablex264_ratecontrol_newx264_ratecontrol_summaryx264_ratecontrol_deletex264_ratecontrol_startx264_ratecontrol_mbx264_ratecontrol_qpx264_ratecontrol_mb_qpx264_ratecontrol_slice_typex264_ratecontrol_set_weightsx264_ratecontrol_endx264_hrd_fullnessx264_threads_distribute_ratecontrolx264_threads_merge_ratecontrolx264_thread_sync_ratecontrolx264_sei_writex264_sps_initx264_sps_writex264_pps_initx264_pps_writex264_sei_recovery_point_writex264_sei_version_writex264_sei_buffering_period_writex264_sei_pic_timing_writex264_sei_frame_packing_writex264_filler_writex264_sei_dec_ref_pic_marking_writex264_sei_avcintra_umid_writex264_sei_avcintra_vanc_writex264_validate_levelsx264_levelsx264_mb_encode_chromax264_predict_lossless_chromax264_predict_lossless_4x4x264_predict_lossless_8x8x264_predict_lossless_16x16x264_macroblock_encodex264_macroblock_probe_skipx264_noise_reduction_updatex264_macroblock_encode_p8x8x264_macroblock_encode_p4x4x264_cabac_mb_skipx264_cabac_block_residual_cx264_macroblock_write_cabacx264_macroblock_write_cavlcx264_encoder_open_142x264_encoder_reconfig_applyx264_encoder_reconfigx264_encoder_parametersx264_encoder_headersx264_weighted_reference_duplicatex264_encoder_intra_refreshx264_encoder_invalidate_referencex264_encoder_encodex264_encoder_closex264_encoder_delayed_framesx264_encoder_maximum_delayed_framesx264_lookahead_initx264_lookahead_deletex264_lookahead_put_framex264_lookahead_is_emptyx264_lookahead_get_framesx264_mc_init_armx264_predict_4x4_init_armx264_predict_8x8c_init_armx264_predict_8x8_init_armx264_predict_16x16_init_armx264_opencl_load_libraryx264_opencl_close_libraryx264_opencl_lookahead_deletex264_opencl_lookahead_initx264_opencl_frame_deletex264_opencl_flushx264_opencl_lowres_initx264_opencl_motionsearchx264_opencl_finalize_costx264_opencl_slicetype_prepx264_opencl_slicetype_endx264_opencl_precalculate_frame_costx264_cpu_neon_testx264_cpu_enable_armv7_counterx264_cpu_disable_armv7_counterx264_cpu_fast_neon_mrc_testx264_pixel_sad_4x4_armv6x264_pixel_sad_4x8_armv6x264_pixel_sad_4x4_neonx264_pixel_sad_4x8_neonx264_pixel_sad_8x4_neonx264_pixel_sad_8x8_neonx264_pixel_sad_8x16_neonx264_pixel_sad_16x8_neonx264_pixel_sad_16x16_neonx264_pixel_sad_aligned_4x4_neonx264_pixel_sad_aligned_4x8_neonx264_pixel_sad_aligned_8x4_neonx264_pixel_sad_aligned_8x8_neonx264_pixel_sad_aligned_8x16_neonx264_pixel_sad_aligned_16x8_neonx264_pixel_sad_aligned_16x16_neonx264_pixel_sad_aligned_8x4_neon_dualx264_pixel_sad_aligned_8x8_neon_dualx264_pixel_sad_aligned_8x16_neon_dualx264_pixel_sad_aligned_16x8_neon_dualx264_pixel_sad_aligned_16x16_neon_dualx264_pixel_sad_x3_4x4_neonx264_pixel_sad_x3_4x8_neonx264_pixel_sad_x3_8x4_neonx264_pixel_sad_x3_8x8_neonx264_pixel_sad_x3_8x16_neonx264_pixel_sad_x3_16x8_neonx264_pixel_sad_x3_16x16_neonx264_pixel_sad_x4_4x4_neonx264_pixel_sad_x4_4x8_neonx264_pixel_sad_x4_8x4_neonx264_pixel_sad_x4_8x8_neonx264_pixel_sad_x4_8x16_neonx264_pixel_sad_x4_16x8_neonx264_pixel_sad_x4_16x16_neonx264_pixel_ssd_4x4_neonx264_pixel_ssd_4x8_neonx264_pixel_ssd_8x4_neonx264_pixel_ssd_8x8_neonx264_pixel_ssd_8x16_neonx264_pixel_ssd_16x8_neonx264_pixel_ssd_16x16_neonx264_pixel_var_8x8_neonx264_var_endx264_pixel_var_16x16_neonx264_pixel_var2_8x8_neonx264_pixel_satd_4x4_neonx264_pixel_satd_4x8_neonx264_satd_4x8_8x4_end_neonx264_pixel_satd_8x4_neonx264_pixel_satd_8x8_neonx264_satd_8x8_neonx264_pixel_satd_8x16_neonx264_satd_8x4v_8x8h_neonx264_pixel_satd_16x8_neonx264_satd_16x4_neonx264_pixel_satd_16x16_neonx264_pixel_sa8d_8x8_neonx264_sa8d_8x8_neonx264_pixel_sa8d_16x16_neonx264_pixel_hadamard_ac_8x8_neonx264_hadamard_ac_8x8_neonx264_pixel_hadamard_ac_8x16_neonx264_pixel_hadamard_ac_16x8_neonx264_pixel_hadamard_ac_16x16_neonx264_pixel_ssim_4x4x2_core_neonx264_pixel_ssim_end4_neonx264_prefetch_ref_armx264_prefetch_fenc_armx264_memcpy_aligned_neonmemcpy_aligned_16_16_neonmemcpy_aligned_8_16_neonmemcpy_aligned_16_8_neonmemcpy_aligned_8_8_neonx264_memzero_aligned_neonx264_pixel_avg_4x2_neonx264_pixel_avg_w4_neonx264_pixel_avg_weight_w4_add_sub_neonx264_pixel_avg_weight_w4_add_add_neonx264_pixel_avg_weight_w4_sub_add_neonx264_pixel_avg_4x4_neonx264_pixel_avg_4x8_neonx264_pixel_avg_8x4_neonx264_pixel_avg_w8_neonx264_pixel_avg_weight_w8_add_sub_neonx264_pixel_avg_weight_w8_add_add_neonx264_pixel_avg_weight_w8_sub_add_neonx264_pixel_avg_8x8_neonx264_pixel_avg_8x16_neonx264_pixel_avg_16x8_neonx264_pixel_avg_w16_neonx264_pixel_avg_weight_w16_add_sub_neonx264_pixel_avg_weight_w16_add_add_neonx264_pixel_avg_weight_w16_sub_add_neonx264_pixel_avg_16x16_neonx264_pixel_avg2_w4_neonx264_pixel_avg2_w8_neonx264_pixel_avg2_w16_neonx264_pixel_avg2_w20_neonx264_mc_weight_w20_neonx264_mc_weight_w16_neonx264_mc_weight_w8_neonx264_mc_weight_w4_neonx264_mc_weight_w20_nodenom_neonx264_mc_weight_w16_nodenom_neonx264_mc_weight_w8_nodenom_neonx264_mc_weight_w4_nodenom_neonx264_mc_weight_w20_offsetadd_neonx264_mc_weight_w16_offsetadd_neonx264_mc_weight_w8_offsetadd_neonx264_mc_weight_w4_offsetadd_neonx264_mc_weight_w20_offsetsub_neonx264_mc_weight_w16_offsetsub_neonx264_mc_weight_w8_offsetsub_neonx264_mc_weight_w4_offsetsub_neonx264_mc_copy_w4_neonx264_mc_copy_w8_neonx264_mc_copy_w16_neonx264_mc_copy_w16_aligned_neonx264_mc_chroma_neonx264_hpel_filter_v_neonx264_hpel_filter_c_neonx264_hpel_filter_h_neonx264_frame_init_lowres_core_neonx264_dct4x4dc_neonx264_idct4x4dc_neonx264_sub4x4_dct_neonx264_sub8x4_dct_neonx264_sub8x8_dct_neonx264_sub16x16_dct_neonx264_sub8x8_dct8_neonx264_sub16x16_dct8_neonx264_add4x4_idct_neonx264_add8x4_idct_neonx264_add8x8_idct_neonx264_add16x16_idct_neonx264_add8x8_idct8_neonx264_add16x16_idct8_neonx264_add8x8_idct_dc_neonx264_add16x16_idct_dc_neonx264_sub8x8_dct_dc_neonx264_zigzag_scan_4x4_frame_neonx264_quant_2x2_dc_neonx264_quant_4x4_dc_neonx264_quant_4x4_neonx264_quant_4x4x4_neonx264_quant_8x8_neonx264_dequant_4x4_neonx264_dequant_8x8_neonx264_dequant_4x4_dc_neonx264_coeff_last4_armx264_coeff_last15_neonx264_coeff_last16_neonx264_coeff_last64_neonx264_deblock_v_luma_neonx264_deblock_h_luma_neonx264_deblock_v_chroma_neonx264_deblock_h_chroma_neonx264_predict_4x4_h_armv6x264_predict_4x4_dc_armv6x264_predict_4x4_dc_top_neonx264_predict_4x4_ddr_armv6x264_predict_4x4_ddl_neonx264_predict_8x8_dc_neonx264_predict_8x8_h_neonx264_predict_8x8_v_neonx264_predict_8x8_ddl_neonx264_predict_8x8_ddr_neonx264_predict_8x8_vl_neonx264_predict_8x8_vr_neonx264_predict_8x8_hd_neonx264_predict_8x8_hu_neonx264_predict_8x8c_dc_top_neonx264_predict_8x8c_dc_left_neonx264_predict_8x8c_dc_neonx264_predict_8x8c_h_neonx264_predict_8x8c_v_neonx264_predict_8x8c_p_neonx264_predict_16x16_dc_top_neonx264_predict_16x16_dc_left_neonx264_predict_16x16_dc_neonx264_predict_16x16_h_neonx264_predict_16x16_v_neonx264_predict_16x16_p_neonmc.o/ 1392656073 0 0 100644 23624 ` ELF(O4( L2 0,0/-M(,P 0X(`$p [H@U@0 痡!Qa@qϠ|0S@0 Y Ѝ/[U l,@lO|tQ X -MЍ-MЍ-M Ѝ-MЍ-MЍ-M{Ѝ- MH@DPT~@`fpp`vr@p  @L`g pP P @ @ b @ b  "@br Ot  P PU5Lp`@`p@a`dad pp|Gu@g`wpOtp p\ p`P@`pP@a`d padppr@gwpOtp p\0H@@\  Ѝ/@pO-M\q@D@p  J DAP哤* BPrH` L@瓫" / pT01Q pppV00S Z pPp,0S  p`0@ЍPp,Q p`@P0L-M48@p` P`@fW p <<1!00 2" 000S0p *x'p pGspp 0 *x'p pGsppP @pP0 0 0Ѝ/-(p\ $XP@```@T`P Z p/-(\ $pW P@```P`@T X /-8 `\(,04pPW  @@@@@@Q8$ Z ` /-,(p\'$` W @PPP%UPPW%ZPPPP%UPP@%ZP, ` X /0-\&@P@ TPPPPPPPPPPPPPPPPPP PP PP PP PP PP PP 0P0///R00-P@0 @0 B 0 P@@@@@Rl 00/R0-p`P@ @p B``P@00 0@@@@Rl 0/R-PBq0P @`@@d@0S"0㳀@p`@d@@f@0S/Q/@ 00c0 P/-M@@T0@4 Pp`pppppp p`pppp p`pppppp pp`pp  \ @  @@@@8P  0 Ѝ/O- M@p4 8[%ڋP000` P `? U Ѝ E-@ `pPV X P@E-@ `pPV X P@E-@ `pPV X P@O-M`8<@ @ @ PLL!K p PD⓼+ @u@ @P哴$HDp@+ W0 \ U0    0SY@@,0S  08@ J %h>+h>00h>&9>Ip>7>Y@ . xEX t+pGd`c ~ @X< x4$@?@Yp !"."H%x_(xv,\d0P4 \8: :\; |;; <= 8=>LP`.TEX[HqL<8T$,`D$L#:$$O$Hdl:|:|;<4(8=>predict.c$ax264_predict_16x16_dc_left_cx264_predict_16x16_dc_top_cx264_predict_16x16_dc_128_cx264_predict_8x8c_dc_128_cx264_predict_8x8c_dc_left_cx264_predict_8x8c_dc_top_cx264_predict_8x16c_dc_128_cx264_predict_8x16c_dc_left_cx264_predict_8x16c_dc_top_cx264_predict_4x4_dc_128_cx264_predict_4x4_dc_left_cx264_predict_4x4_dc_top_cx264_predict_4x4_ddl_cx264_predict_4x4_ddr_cx264_predict_4x4_vr_cx264_predict_4x4_hd_cx264_predict_4x4_vl_cx264_predict_4x4_hu_cx264_predict_8x8_filter_cx264_predict_8x8_dc_128_cx264_predict_8x8_dc_left_cx264_predict_8x8_dc_top_cx264_predict_8x8_ddl_cx264_predict_8x8_ddr_cx264_predict_8x8_vr_cx264_predict_8x8_hd_cx264_predict_8x8_vl_cx264_predict_8x8_hu_c$dx264_predict_16x16_dc_cx264_predict_16x16_h_cx264_predict_16x16_v_cx264_predict_16x16_p_cx264_predict_8x8c_dc_cx264_predict_8x8c_h_cx264_predict_8x8c_v_cx264_predict_8x8c_p_cx264_predict_8x16c_dc_cx264_predict_8x16c_h_cx264_predict_8x16c_v_cx264_predict_8x16c_p_cx264_predict_4x4_dc_cx264_predict_4x4_h_cx264_predict_4x4_v_cx264_predict_8x8_dc_cx264_predict_8x8_h_cx264_predict_8x8_v_cx264_predict_16x16_initx264_predict_16x16_init_arm_GLOBAL_OFFSET_TABLE_x264_predict_8x8c_initx264_predict_8x8c_init_armx264_predict_8x16c_initx264_predict_8x8_initx264_predict_8x8_init_armx264_predict_4x4_initx264_predict_4x4_init_arm:A:B:0:/:.:1X;D\;B`;4l;3t;2x;5;B;8;7;6<9=G=`? =`>=`=>I >`<>`;>`:pixel.o/ 1392656075 0 0 100644 97416 ` ELF(X4( -p@ ` PPeUPe\@pW /-p@ ` PPeUPe\@pW /-M0@P lpYiPdUPe@ ` g\lp dZjP@ `aV`f pgWpg@d aT@d\l0S@  Ѝ/-MP@ a0̟,̟Ip@d0T@d`cpQa0 plWpgcXh@ l0,GP@Pc 0UPelcP0,G@XhPc0l,G@ c0UPel@,G 0Zj lP ,G@0 kXhl̿,̿K@  p倐 iXh b"Gl Xh@ b"GlpYi p @  k剰b`P` ʟ*ʟI b`¯"¯J aXh b `"G aXh b"GaYip p` `bV`f`  k p剰 bPʟ*ʟI¯"¯J 0 P c0 bXhPo"oF pc` bǯ'ǯJ0 ¯"¯J PcXh  Pp0 PkUPe`@`fV`fp`` pgWpgPl@UPe@l `flPV`fT@d ep`Zj PXh@ P`fV`f PkUPep`` pgWpgpPaUPe `fV`faPP` e`Zja Xh`fPV`f pPk@UPep0 l`R bPpc 0Wpg@Pe`UPep c \l0p`dP pV`f0c@S0c `Pl0 b%AR b 0cS0cЍ/-M@`pPf0Yi0Pg@UPep@cT@d0`@ gZjp`c0PV`f@ gpXhPd`UPe @ gp`dP@ZjpgPd@V`f `d@Wpg fpUPe`@Zj`fp Xh V`fp` p @P g+Gp hXhbpP``p `f V`f ``k [k Zjb pXh  ` pgǯ'ǯJ p@P`kƿ&ƿKp Pd`@UPe pg0WpgP`d p@V`fc0Qapl`p\l0cPS0c@ `a&@0 dR b0cS0cЍ/-@`PpPeUPe`g@pPXh `f@PeV`fUPe\@@ /-pM`P@f[kp d` j@\l`fpZj@i T@d p &L p` j`Zj `  @lT@d @i ̿,̿K `P`  bR b P kɯ)ɯJ  ` P`e P bYiP R b P j[kpi` Yi pg `Wpg `  `fV`f@`  kp Zj `l g[kp ` Zj pgWpg @ p  `j烀V`fP hiP`Zjp P `Xh ` pg@PWpg j0[k@i 0T@d b0p\l a0P` bR b0cS0cЍ/-@`MpPgPf[kUPe j PZj pPpgWpgPpPj`Zji PYi ` PpkWpg k Xhb Yip   kP`[k@piWpg 0`eV`f0lP0@\l `a0&@ dR b0cS0cЍ/-pP ` @\@dT%pW /-pP ` @\@dT%pW /-@P\p`pePG'`e@ dv&k@ pdPj* `i@Pi (@i'v&e%T$/-M@p` @dP flJ*P@`PP d,@ k@@ 倰  k 噩)0 kH $ i@0, 噩) $(, i$4 jD0<8(嚺*,<4 j4<8L j,H(四+L84H< k,8 j4< jH8@嚺*L< i@ $ bLD +H   b$  噹) b<   bD   bL  四+ b   b(P  吰 , b pTT b(  噹(b p b, 4 8吀( b4  p bT  囋( b8  p b@X  吀( bpP`H@ ` \囋&` HP b`  $ b$ `& p bPd <k&  bP< Dp bh g"`D@P@dl@L@ Pp$"@ `L%" `pl'"@`t*" `P(P@%"`x@ `|)" @d@@,p(" `(@ `4l@*"` `,Tp k `@'"P00 80`0 "`c0PeXc@0p@c0 *0 c0c0p@ 0c咢*H p`\吠*$咢"`**d 吠 <"h**D 吠 l"L**p 吠 "t**P 吠 x"|**  ("** 吠 ",** )四+%V&h($L,!#7 Ѝ/-8M@P` Pep f`pfY)P` PP h'  k,pp k  嚺* j( j, $噩),$$ i , i 0四+ 0 k$ i,0( 盛+$,(00 k$ 4 j($四+0,4 k j,(僠 j咒" `,)" ` j0)"j  j `4k+`j $P僰Pe0k@) @d0 b) a0 c)(0 0c嚊* ` p `,p 0p *吠 '4z*p吠 & e%[+$L,!"##9) 8Ѝ/-@P@Tppe`P'`fP` v& he%P /-HMPp@ Pe`@dlT$`pP`` PePL,P@@@ @ Pe@PP$(@ l@,$唴$ @(@ d( @$, @d 0 ,@  $  $ D l8 @$ 40 b0   $@@4 D@ d  (@ b@< *,偐@ b*(   b8@偀@ p 唤* bpg ,  0 b4 8p p圬*pgpp pg0pp<pg@吠"DppP`("(ipg P``epPp@()Pe@lp@lp 嘘)g p g, p$ 0`)pp0`4 p吐) g $pg8p 嗗'Dr"0p'' y)p咒"''v&pe%T$L,(*!#;+ HЍ/-M@P` Pep f`pfY)P` PP h'  kpp k  皚* k j癹)b b ```` `iP@` 0`P<)lP0Pe嚚*0`+"&&d$A!,%S Ѝ/-M`4p8@<P`0`&000 000S 0  p0``cP Pe ?  ?W 40YЍ/00-P @ R4#PU 0/0-p pW@  ) `0P:*@ (&e%T$B# /-MP@ 9# `p 00  0000嘸+ 疦*$, $'堰  $0 `P0 `{'` `4<Dpp(pp8`DpH``{+@pDPLHP ,p PL PH p噉),ppLPp堰p@ PT Xp$pP0\PPp`@@4dp@@pP四)(@lph@p8Pp@嗗)x?HU-F_x tt  7 N tf P`}    $t    $%- )C X m  P< @ tAp D E( G H  * C \ v       < \ |      " = Z v      1Jbz.Gbz4Zpixel.c$ax264_pixel_sad_16x16x264_pixel_sad_16x8x264_pixel_sad_8x16x264_pixel_sad_8x8x264_pixel_sad_8x4x264_pixel_sad_4x16x264_pixel_sad_4x8x264_pixel_sad_4x4x264_pixel_ssd_16x16x264_pixel_ssd_16x8x264_pixel_ssd_8x16x264_pixel_ssd_8x8x264_pixel_ssd_8x4x264_pixel_ssd_4x16x264_pixel_ssd_4x8x264_pixel_ssd_4x4pixel_ssd_nv12_corex264_pixel_var_16x16x264_pixel_var_8x16x264_pixel_var_8x8x264_pixel_var2_8x16x264_pixel_var2_8x8x264_pixel_satd_4x4x264_pixel_satd_8x4x264_pixel_satd_16x16x264_pixel_satd_16x8x264_pixel_satd_8x16x264_pixel_satd_8x8x264_pixel_satd_4x16x264_pixel_satd_4x8sa8d_8x8x264_pixel_sa8d_8x8x264_pixel_sa8d_16x16pixel_hadamard_acx264_pixel_hadamard_ac_16x16x264_pixel_hadamard_ac_16x8x264_pixel_hadamard_ac_8x16x264_pixel_hadamard_ac_8x8x264_pixel_sad_x3_16x16x264_pixel_sad_x4_16x16x264_pixel_sad_x3_16x8x264_pixel_sad_x4_16x8x264_pixel_sad_x3_8x16x264_pixel_sad_x4_8x16x264_pixel_sad_x3_8x8x264_pixel_sad_x4_8x8x264_pixel_sad_x3_8x4x264_pixel_sad_x4_8x4x264_pixel_sad_x3_4x8x264_pixel_sad_x4_4x8x264_pixel_sad_x3_4x4x264_pixel_sad_x4_4x4x264_pixel_satd_x3_16x16x264_pixel_satd_x4_16x16x264_pixel_satd_x3_16x8x264_pixel_satd_x4_16x8x264_pixel_satd_x3_8x16x264_pixel_satd_x4_8x16x264_pixel_satd_x3_8x4x264_pixel_satd_x4_8x4x264_pixel_satd_x3_4x4x264_pixel_satd_x4_4x4ssim_4x4x2_coressim_end4pixel_vsadpixel_asd8x264_pixel_ads4x264_pixel_ads2x264_pixel_ads1x264_pixel_satd_x4_16x16_neonx264_pixel_satd_x3_16x16_neonx264_pixel_satd_x4_16x8_neonx264_pixel_satd_x3_16x8_neonx264_pixel_satd_x4_8x16_neonx264_pixel_satd_x3_8x16_neonx264_pixel_satd_x4_8x8_neonx264_pixel_satd_x3_8x8_neonx264_pixel_satd_x4_8x4_neonx264_pixel_satd_x3_8x4_neonx264_pixel_satd_x4_4x8_neonx264_pixel_satd_x3_4x8_neonx264_pixel_satd_x4_4x4_neonx264_pixel_satd_x3_4x4_neonx264_pixel_satd_x3_4x8x264_pixel_satd_x4_4x8x264_pixel_satd_x3_8x8x264_pixel_satd_x4_8x8$d__aeabi_i2f__aeabi_fmul__aeabi_fdiv__aeabi_faddx264_pixel_satd_16x16_neonx264_pixel_satd_16x8_neonx264_pixel_satd_8x16_neonx264_pixel_satd_8x8_neonx264_pixel_satd_8x4_neonx264_pixel_satd_4x8_neonx264_pixel_satd_4x4_neonx264_intra_satd_x3_16x16x264_predict_16x16_v_cx264_predict_16x16_h_cx264_predict_16x16_dc_cx264_intra_sad_x3_16x16x264_intra_satd_x3_8x16cx264_predict_8x16c_dc_cx264_predict_8x16c_h_cx264_predict_8x16c_v_cx264_intra_sad_x3_8x16cx264_intra_sad_x3_8x8cx264_predict_8x8c_dc_cx264_predict_8x8c_h_cx264_predict_8x8c_v_cx264_intra_satd_x3_4x4x264_predict_4x4_v_cx264_predict_4x4_h_cx264_predict_4x4_dc_cx264_intra_sad_x3_4x4x264_intra_sad_x3_8x8x264_predict_8x8_v_cx264_predict_8x8_h_cx264_predict_8x8_dc_cx264_intra_sa8d_x3_8x8x264_intra_satd_x3_8x8cx264_pixel_ssd_wxhx264_pixel_ssd_nv12x264_pixel_ssim_wxhx264_field_vsadx264_pixel_initmemset_GLOBAL_OFFSET_TABLE_x264_pixel_sad_4x8_armv6x264_pixel_sad_4x4_armv6x264_pixel_sad_16x16_neonx264_pixel_sad_16x8_neonx264_pixel_sad_8x16_neonx264_pixel_sad_8x8_neonx264_pixel_sad_8x4_neonx264_pixel_sad_aligned_16x16_neonx264_pixel_sad_aligned_16x8_neonx264_pixel_sad_aligned_8x16_neonx264_pixel_sad_aligned_8x8_neonx264_pixel_sad_aligned_8x4_neonx264_pixel_sad_x3_16x16_neonx264_pixel_sad_x3_16x8_neonx264_pixel_sad_x3_8x16_neonx264_pixel_sad_x3_8x8_neonx264_pixel_sad_x3_8x4_neonx264_pixel_sad_x3_4x8_neonx264_pixel_sad_x3_4x4_neonx264_pixel_sad_x4_16x16_neonx264_pixel_sad_x4_16x8_neonx264_pixel_sad_x4_8x16_neonx264_pixel_sad_x4_8x8_neonx264_pixel_sad_x4_8x4_neonx264_pixel_sad_x4_4x8_neonx264_pixel_sad_x4_4x4_neonx264_pixel_ssd_16x16_neonx264_pixel_ssd_16x8_neonx264_pixel_ssd_8x16_neonx264_pixel_ssd_8x8_neonx264_pixel_ssd_8x4_neonx264_pixel_ssd_4x8_neonx264_pixel_ssd_4x4_neonx264_pixel_hadamard_ac_16x16_neonx264_pixel_hadamard_ac_16x8_neonx264_pixel_hadamard_ac_8x16_neonx264_pixel_hadamard_ac_8x8_neonx264_pixel_sa8d_8x8_neonx264_pixel_sa8d_16x16_neonx264_pixel_var_8x8_neonx264_pixel_var_16x16_neonx264_pixel_var2_8x8_neonx264_pixel_ssim_4x4x2_core_neonx264_pixel_ssim_end4_neonx264_pixel_sad_aligned_16x16_neon_dualx264_pixel_sad_aligned_16x8_neon_dualx264_pixel_sad_aligned_8x16_neon_dualx264_pixel_sad_aligned_8x8_neon_dualx264_pixel_sad_aligned_8x4_neon_dualx264_pixel_sad_4x8_neonx264_pixel_sad_4x4_neonx264_pixel_sad_aligned_4x8_neonx264_pixel_sad_aligned_4x4_neonaaba0a@bPc\deeeee(e@etfffff f fT gl g g g g g g4 hL hd h| h h h h i, iD i\ i i i i j j$ j< jp j j j k k k kP kh k k m n omhnor4sTtr|shthw|xy${$|%}8%{&|H(})006p<<<@w@x8AyPGdIHUhV~lVzpVtVxVv|VVuVqVpVlVVVVVVVVVVVVVVVVVVVWWW WWW$W,W4W8W0( S S"_!, ` 4<! $ ̀4報 (!0 , ́00 嘡    ,p0\rpSpHpťw4PpHp <a 0_|p 20 T0!  0@P`⌔ P L `d $aύP40 0L0t( 1 >Pq0S  ZP@Q\ PP' 0S0T@S-\@LPpL~x \3TS 0@P.PS 0SP>P P $(2 Q00lR\C –!B,+\  00 P  Q  R00nA-@Q`30S R \#TRL0@TSp㸁00W0P@SQ\0T P@@0S0T@0pS00W> >AO-,;0@1p0P`4;P:䪞芞ʞt+00(:p0`9J<O? 10P ;,4 00S<Sa S; m P 0;0SڼZ,;8+0p`F"Pp0P`0c W` 00<    | )0)0)0)0p)0  R "R,&P (\N v ;-0 S!p ?   U E- 00S;p6  60Slv\ `P;8P 00 S8 0 Q 0S0Sis00E0Sb00E;v,4 00Sp? R<-S B0" @ M 4Q) S<R   DrW1h! K<p`p0po0?O\P?R@@0Q,  ?00  /S(p DrW M, S< /@00pSpS(Rp8   RR B A-0 PHpM`.@ X'  C0Q00\0PH ,R (P `_c`$`,;0(+ (P `!̐>㕶%,0 ` `PdP v%!`̠/  0  `P dP8/   @  @0 Z! C0 Z! C;0S?P;_,4 00`Shpa 0<Sv ,;0T!Rj P`㕺%RP0  ;0+S8TL`LV@N 0_< ` `ϯJPR `mXP<]d 080u1s 0 S00$      k-0K-0C-03-0+-0#-0-0h 0{-0[-0S-0Y  0S Y  0S(; 04\ 0Pm|,`p E0@P`<`<`,Ro\P$pPYp!1 L PT0X(@ ``` J `( D 0 S m,m<0L 0 D m4+@ RQQ*8HpR:  04&0 P9 0     0+[/B   pr 00;@0 /00q s00(0`@0X__c_c,;0(+(`$ P А喺%!> , 0` `PdP, 0` `P dPC00S  0[ 4HQ0 08/0;0Q0 10} ,; `pP40Rr ̐s% bkpX%S#Q1(;/0,0`  v%!pQQ_v%!QQP Q```8a`` QQ C- K- k- s-?_<0  ;` Ra(,0 00) RRP0P00 R3).P\ R)) QQQPP@Y0Y0``ip?PX[e<0 ̈́0 P Q`````````! 009P  R(,0 00 S9  0;H 0O-SDM@PL;0S 10S 8+0 Q3 R 00S9P)0000,R P < @\\ IA Q@ `  So"m<R RP! RL P)  4 \ 4+ \    R+ R" &-- $ 㼠 6-㲀.-p Ⱀ,`ᱰ Yp ` ȠV ``d``Ch0q 0 Q" 0 V4m`  4{p0S 10000?0#V4a} Xp 4Q ` p`p8W} p 4Q ` `p9W$} p 4Q ` `p:W$} p 4Q ` `p;W,} p 4Q ` `p<W,} p 4Q ` `p=W4} p 4Q ` 90`>V4m`  4{p0S 10000?0800<00P90 <;>C 80 S ( S8 $0QZ?0 @ 8 \ 4 \ \m 090800Sc 0;0:0=0S8Qm< 0Q9Q!Q:Q"Q;Q#c \ `8`a`V 4k` R R   9 8 R   ; : - R 8 R  0  R 9 R  1  R : R  2 0S0;0S0030^ $ DЍOn !" P3#0Q3R 3 S03!" #0@  +    ༀp`p pmp}T q `q p "p``8``$ ` p9, `q 00:0a  4=0!;<=>  00?0800:00<00>00900;00=00?00P90  i `p$8` ", ``9`p a 00:0q 4=0!;<=>  00?0q2 8(  0 DЍO0000008+O-@`DM?00  p80Q  "<080Q 080$PP (00808,080. 0(0 ?>  10S 8 0 R3/2 0/  0(Z0 ?  [ࠠ0(0 0 1404>10S+ S (0 >  00/ 0 8 ,;0R(  { 0/  0N^ PX DЍ; P ቱQP,P(㵐   10S! 8 0 R3/ 2 0/  0 ,㤈 0/ܱ 0  0 044   ?>? N 00Rm<9X0P 00)  2=$P n<,0(n Ѐ4 - n\0P0ō -  < - 8    20; 0 Ѐ?00?00?00 Z`   0"4 /4( (   ? >? 4> ? 4> ? ;;0 P0 \0; Q0 R    0    "0 ,1!06#0hsDS0S @05Q  R) S'? +Q@0c0F4;@0p6S0+@@Q@ʼ<@Z@@`@VL@S$Ѝ0 ; /#/B  喛)?;?O hY Y I y0DZY A1q@s  { 0!! %%  !! !%  $%&'45<=67>?DELMFGNO\]de^_fglmtunovw(Px264_macroblock_bipred_initcommon/macroblock.cdist_scale_factor >= -63 && dist_scale_factor <= 127GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4܏ Ԛ %+082LG0T&Pz`pz7p, ( h"h36,38 @ 3D-L-3\EdE3hh3zz33ЏHM3RbPol {33 @   t :DXdhtX4Dx0071Vh$w}Dmacroblock.c$ax264_mb_mc_0xywhx264_mb_mc_1xywh$dx264_mb_mc_01xywh.LC0.LC1x264_size2pixelleft_indicesoffset.8412x264_mb_type_fixx264_scan8x264_mb_chroma_pred_mode_fix__func__.8560x264_weight_nonex264_mb_mc_8x8x264_mb_mcx264_macroblock_cache_allocatex264_mallocmemsetx264_macroblock_cache_freex264_freex264_macroblock_thread_allocatex264_macroblock_thread_free__aeabi_idivx264_macroblock_slice_initx264_macroblock_thread_initx264_prefetch_fencx264_copy_column8x264_macroblock_cache_load_progressivememcpyx264_mb_predict_mv_pskipx264_macroblock_cache_load_interlacedx264_macroblock_deblock_strengthx264_macroblock_cache_savex264_macroblock_bipred_init__assert2`(8 < `(X)d)p)),T-|/,D,,,$,////-82#6$6$8%6%6&8&8)5D-H-Џԏ؏frame.o/ 1392656076 0 0 100644 18228 ` ELF(:4( $0O-0CAM S M0 0T. ! Px800`(0$`@P~ 0/p80t( 2 @ ?p XX,0PJu pQP P 0O p p 0p NJHP  ` 嗈,@P 0PAˌ  0 S[``H@P `$ 00Π$\0p0 0 0`, pR0> >  x dedcJp`0 $0S㊠  0 P `VPZp P  `X[%[Up^ PZqPppk h0 Z0 P\: (A(0p <( p q <  zG pA} pq p0p14p08p~  0 pR ʣ0? p1  *  A< Nz0p01A`( 2ajFS!< p(,p0,10  `ڴ Ap0 $dA`0 <000S At  !`*B>00pX2S Ax  !`*B>00P V a06V ,\ P$` E0rp0\!V3Q 0 l!000$ @0@ `  [ %[@UPVPPp`U `Pl XA䀂h萂젂p`qa@@ ̀p0 W@Xe :  ":R0:ڜ $d1  0T1(4  > LЍڍ`V0 0 0 p/p$G ~`pX̠ 0A} p\NS   Ll nXhp `ph 0 $0   0qV`0✀  ` (XX^X ` X p0:\d ;0S40 0A ?p` `0p@0⮾BA 0pD@+@8P"+R0`\1` 0 0 0x 0  <`\$0x 8P`0 a``P0B͎ S*@@   @ U%00 00000PD<`DpP0PU A (` pD!1D@CW=08P`0)(州 ጠ p@嚡! P 0PA|+ 0 Sp W``H@ Pp2S] Ax80!!B4p!4  48Z 8 `C 0 A= H0 `06P ;0S 0xx`? @ x;#;Sp0 P P DHL!PS bPan` P!p0S  R(p=|   2Se x8 H1 \@]HP P@- M` p A0S .3/ 0S ~ RP` 0 ` P3/0S>0.3/$O-P|pX..\00 W.Xx0', < G P,0E ,n, 0x0 Wc3'0 B p圀@QP4/<Ѝ ,0 <P  ,0H 00Ȑ0Y K00 `p2 0 D PP0@ 00SS@0 SQ0 D PP0@ 00SS@0 S ^ __OPg@`gP @ P@TI @㙷%( PE H P@T0 SЍt8 0O-Q0  pH$M\à @ P\Q30|8B@P@0tpQsG @0c|`  E0 CPCCP X 0 W㰒ŅP WPX0P00㳐PU 00S 0eP0PWe 0SᵐP U00Sa  ȉP WPXf0P00㳐PU 00S 0eP0PW 0UᵐP U00S0`ZPU%ooO`dd@ L@p`P  PU`0 @PC&( `F H P U`$Ѝ尐 ȉwX尐 0PPPx 0PPPr0PPP 0PPP0O-S,M` 0@ 0\ a |8 00S X p8t0 P2 e00SURZO UM S0ᜀ$`p` C00C0A0\7&F0k 0 \㱀, \\`F 㰀Y Pi\  QṀY\Q pW ` $`Q  Up 0 lHL1 p1! W @0  St,Ѝ ``  (+0O- MP*t  p  `rb@R1WqS  CP@F(F$ PU@(+0 RZ  ( Ѝ>/>0Q//5Q/P3S R>  P3R//0S 00 R/0@-S@ 0S  00Q1   0 0 0 0@-S0 0@ T!0Cs/8@-@T  00 QP PU8 0 @ 0 p@-^0@`S 0C.S0p0> 0ap@8 440 T 00.0C0Sp($$8@-> 0P10 R @T 00 |0R , H 8@p@-^0@`S 0C.S0p|:p@8 440 l 00.0C0Sp($$@-|:0S P.0:00P.0:0O-MpH`@PLP+D  D 0B " @#200Z H@X,0P  @ 0i_reference_count > 0GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes48 E  %L8+L80L8828 G09&P:`p:7U:p< * A   , 186T; $3@E 33J 3x4O 45 5T0^0l@zTl  ,$Lp#Ax)a+h.11 11 2$2P9d2,I2Xb3Tud334855T6078h7X57Q7$k7,frame.c$ax264_frame_new$dget_plane_ptr.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7CSWTCH.57__func__.8338__func__.8361__func__.8366__func__.8376x264_mallocmemsetx264_freex264_logx264_frame_deletex264_opencl_frame_deletex264_frame_copy_picturex264_frame_expand_bordermemcpyx264_frame_expand_border_filteredx264_frame_expand_border_lowresx264_frame_expand_border_chromax264_frame_expand_border_mod16x264_expand_border_mbpairx264_frame_cond_broadcastx264_frame_cond_waitx264_threadslice_cond_broadcastx264_threadslice_cond_waitx264_frame_new_slicex264_frame_pushx264_frame_pop__assert2x264_frame_unshiftx264_frame_shiftx264_frame_push_unusedx264_frame_pop_unusedx264_frame_push_blank_unusedx264_frame_pop_blank_unusedx264_weight_scale_planex264_frame_delete_listx264_sync_frame_list_initx264_sync_frame_list_deletex264_sync_frame_list_pushx264_sync_frame_list_popT*h+* +$+T+d,- <,D,/--- 2d22222d!2!2%2%2 '2l'2(2)2*2*2-2-202122?33 33?33344=X4?x4|444> 5+ 5+x5=5?5555>6*L7.d7,7*7+7Gdct.o/ 1392656077 0 0 100644 38696 ` ELF(4( -PM 0ppbc y0z`A bP 0c! 0wp1 b 0c!v`x0uP1@( a 0c{ $0q 0y@s@0sy0yy y$y( ഑( jhฑᴂ c 0Pe `d2 @0zBx@ pka`ఒ b d2ᴐuPv`0wp2{Aqr 02 020000 h0 Pe l($ 0ka g `  p@f ` l  l k  $$ b i( pg( c`f0@ 00a,00  @0P$0@(`P`˰00` 0ʠ 00$0`$@ 00(0p@ɐ00,0 (p0 0P0`P`@ (ư`庐ᰠ 岠崠嶠$帠 1qQᶱaAἁPЍ/-`M 0ppbc y0z`A bP 0c!0wp1 b !0c01v`,x0c uP (0@0@ ar@${ yqsy0y y$y(y, ฑ, jh༑pz 市Pe `d @B @c 030xb` c b  pg t0Bv`渐wpq @uPBr {4@C@@@@ h@@ g@a` ` `4pk4@ Pe0x$ @,`l(@r 0quP  @ `@kp<@`c$0(@4w8sp`t@{` ,00@|@{st04@t@ @8@t@@<@t@@@t@@ @ `f@``a @ $ pg b,pPp c l 0 `(`k@ip张ᰰp $pPᴰp(,pḰp!1aẁAᾑ`Ѝ/-M"0tfH\ b`f* ~ l b@Pgppppp p ezpP @d fyu`|zPt@{r ಠPeఐ `dPpg` Pbp P 02468:<>Ѝ/-M!P0@0e"AP!pl"@lB`pe P `f0Ph f`0` 0c `pc0f @`#P(p `f#p0C0 pg1Pcpgb0aPep h2p,儷dPpc$0g`p`P `f Pe03cPe  k b8p < , k北l pcr0 (4zwrp拷k r` P< {P8 r{ ఱ jz@B$@|@4C@pg b༳ Pewp`!"0{ ḁt(@ 1 0h00@R@l P @xBP!S @Ac$@ @g@ C0kSp@wpC@@e(@@,@ b0P@ uP $@ 4| `d  ,8'bj (4 剗i @劧j0${8Gd 7EfRJk_r{szs?DThF]ZJa[8RL}]WMG?DT>A=8B@=N24 #, &-.,32!>lde[^XTVSW^FHJ;fd_KHKG.E>A%H 96> H    % !-:>= & -' * ,- ) 1"* 73.Y!%!(&!()&)%#&&%&*#'0%< DaG*26>:?HJ[C',.@DNMV\7<>AILPXnaTOIJV`auN!05>GOVZa]TOBG><;K>:BOGD ,>$( ,$ *0 >. @ha`XUUUXBMLL :LSc__LJFKDAI>>DK 7@ F    ,(/#2 9?MR^ Em$$ %,""(!#!&! # :#""$" #" ' "'B2xprU\YGQPDF8D2J(1,-,"!6RK"+67=@D\jaZZXIOVIFEB@:; #$C{szs?DThF]Z{szs?DThF]Z]WMG?DT>A=8B@=N24 #, &-.,32!>lde[^XTVSW^FHJ;]WMG?DT>A=8B@=N24 #, &-.,32!>lde[^XTVSW^FHJ;    % !-:>= & -' * ,- ) 1"* 73.Y!%!(&!()&)    % !-:>= & -' * ,- ) 1"* 73.Y!%!(&!()&)xprU\YGQPDF8D2JjaZZXIOVIFEB@:;(1,-,"!6R #$CK"+67=@D\xprU\YGQPDF8D2JjaZZXIOVIFEB@:;(1,-,"!6R #$CK"+67=@D\]TOBG><;K>:BOGD ,>$( ,$ *0 >. @ha`XUUUXBMLL :LS]TOBG><;K>:BOGD ,>$( ,$ *0 >. @ha`XUUUXBMLL :LS    ,(/#2 9?MR^ Em$$ %,""(!#!&! # :    ,(/#2 9?MR^ Em$$ %,""(!#!&! # :G*26>:?HJ[C',.@DNMV\7<>AILPXnG*26>:?HJ[C',.@DNMV\7<>AILPXnF]ZF]ZF]Z6J6Jh563! 1v9NA> 1I2@ +CZ hhCNA>V_= -EQ`7CVX:L^6EQXCJJPH:)???SVaH )>-N`~beCR^Sn[f]\Y`l.A9]J\W~6<;E0DEXUNKM62D2*Q?FC9L #@= #   $]II . 1d 555=88?<>9E9'3 D@= ?2',4 0<;;!,+N< E (,1.,3/'>.66:?39547 -$5R7N.T " %"FC; C #&+) ? ; @^YlL,-4@;FKRfM*07;GSWw:$&+7:@JZF*;:HQa:  (:FOUjjWrnbnjgklp`_[]^V CPUF< := 2216 ).314 )/7 ) ,25 1?@E;F ,  +5" &4 ( ,& 2 9+     "'*).&-50A+' 9RKa}" ! ),/AG<?A ( *95= V ( 3;OGEFBDIEFC>FBA? !')-1 -$;B#*-08<>BLUQMQPIJSGC=BB;;!'.3<=7"*>\Y`l.A9]J\W~\Y`l.A9]J\W~UNKM62D2*Q?FC9L #@= #   $]II . 1d 555=88?<>9E9'3 DUNKM62D2*Q?FC9L #@= #   $]II . 1d 555=88?<>9E9'3 D (,1.,3/'>.66:?39547 -$5R7N.T " %"F (,1.,3/'>.66:?39547 -$5R7N.T " %"FOGEFBDIEFC>FBA?UQMQPIJSGC=BB;; !')-1 -$;!'.3<=7"*>B#*-08<>BLOGEFBDIEFC>FBA?UQMQPIJSGC=BB;; !')-1 -$;!'.3<=7"*>B#*-08<>BLjjWrnbnjgklp`_[]^V CPUF< := 2216 ).314 )/7 ) ,25 1?@jjWrnbnjgklp`_[]^V CPUF< := 2216 ).314 )/7 ) ,25 1?@     "'*).&-50A+' 9RKa}" ! ),/AG     "'*).&-50A+' 9RKa}" ! ),/AGL,-4@;FKRfM*07;GSWw:$&+7:@JZL,-4@;FKRfM*07;GSWw:$&+7:@JZJ\W~J\W~J\W~6J6Jh563" )vAGO4 2F 6"(9)$EeLGO4EZ4+ER`;KWd8JU;QV_BMFVH=)???SVaH )> 3P[`QbfawcnfPY^\'ATIh[787=5DJXg[Y\LWniNpcBNGH;7FKYwK 6=:<=CTJA49=EF7G:= ) + /,3.&B& * "Y-  !4#&"' f8! %3'4EC, 7 $!"$&&"#" %# )KHM##-*-6B8 I CtpG=5BMPTWe'5=KM[kozL,49:HEEJVB" 47CIY4 %=IFN~|n~|iyufutz_d_orYPRUQH@C 8EEEECM@=C@9AB> 3BGKFH<%/# % ) )0 ) );2(B2!!%'*/-1) E?BM64)$(% 7 A%'(&.*(1&(&., 0 1-!"*'2 F6G S 16UQMQPIJSGC=BB;; *15@D B/9G$*49?ACRQLHNHDFLB>9=<6: *15@D B/9PY^\'ATIh[PY^\'ATIh[g[Y\LWniNpcBNGH;7FKYwK 6=:<=CTJA49=EF7g[Y\LWniNpcBNGH;7FKYwK 6=:<=CTJA49=EF7-  !4#&"' f8! %3'4EC, 7 $!"$&&"#" %# )-  !4#&"' f8! %3'4EC, 7 $!"$&&"#" %# )UQMQPIJSGC=BB;;QLHNHDFLB>9=<6: *15@D B/9 *15@D B/9G$*49?ACRUQMQPIJSGC=BB;;QLHNHDFLB>9=<6: *15@D B/9 *15@D B/9G$*49?ACR~|n~|iyufutz_d_orYPRUQH@C 8EEEECM@=C@9AB> 3BGK~|n~|iyufutz_d_orYPRUQH@C 8EEEECM@=C@9AB> 3BGK!!%'*/-1) E?BM64)$(% 7 A%'(&.*(1&(&.,!!%'*/-1) E?BM64)$(% 7 A%'(&.*(1&(&.,pG=5BMPTWe'5=KM[kozL,49:HEEJVpG=5BMPTWe'5=KM[kozL,49:HEEJVIh[Ih[Ih[6J6Jh5633>cUf99I9( 6%* auJUf9]X,7Ygt9:T`?Uj?KZe7OKa2<)???SVaH )>"X[_TVY[LgZ PLTN7=SOh[AOH\8DGbVXRHCHYE;B9GG:J,E>3/*)5LNS 4CZCHKPS@@^ K?J# [AEMB>DQJB|%,2'*" %*(! + $/7:<, ,*084 % 1: 0 -E!?#! "4'$!"I",$$ *]89&sR>5;UY^\d9CGMUXhbR0=BFKOS\lOEK::NSQcQ&>:;ILVSWxruvuqvx|^fcj\9V^[MGI@Q@9CDCDM@DN7;A6,<FLV F@F 78EAJ66LRMM*%)*0'.4.4+ =8>Q-#"'&-6O$%% ""#!)$/>$)*<4<N{58=!2=NJHHKG?FKHC5;4D !! %&@G%,18;?CDONJHHKG?FKHC5;4D !! %&@ PLTN7=SOh[ PLTN7=SOh[VXRHCHYE;B9GG:J,E>3/*)5LNS 4CZCHKPS@@^ K?J# [VXRHCHYE;B9GG:J,E>3/*)5LNS 4CZCHKPS@@^ K?J# ['*" %*(! + $/7:<, ,*084 % 1: 0 -E!?#! "4'$!"I'*" %*(! + $/7:<, ,*084 % 1: 0 -E!?#! "4'$!"INJHHKG?FKHC5;4DNJHHKG?FKHC5;4D !! %&@ !! %&@G%,18;?CDONJHHKG?FKHC5;4DNJHHKG?FKHC5;4D !! %&@ !! %&@G%,18;?CDOxruvuqvx|^fcj\9V^[MGI@Q@9CDCDM@DN7;A6,<Fxruvuqvx|^fcj\9V^[MGI@Q@9CDCDM@DN7;A6,<F%)*0'.4.4+ =8>Q-#"'&-6O$%% ""#!)$/>%)*0'.4.4+ =8>Q-#"'&-6O$%% ""#!)$/>sR>5;UY^\d9CGMUXhbR0=BFKOS\lsR>5;UY^\d9CGMUXhbR0=BFKOS\lOh[Oh[Oh[h@~@ p \ I 6 #    ubO<(!#{%h'U)A+..0369<@DHLnPZUGZ4`!f lszs`M:'2323454545 67 67 67898989:;:;<=<=<= >?!">?#$@A%&BC'(BC)*BC+,DE-.DE/0FG12HI34HI56JK78JK9:LM;NO?@PQABRSCDRSEFTUGHTUIJXYKLXYMNZ[OPZ[QR^_ST^_UV`aWX`aYZde[\de]^fg_`hiabhicdlmeflmghnoijpqklrsmntuopvwqrvwstz{uvz{wx|}yz~{|~}                 !# %!'#)%+!'-#)0%+2 '.5!)08#+3;%-6>'08A)2;E+5?H.8BL0;EP3>IU5AMY8EQ^;HVc>LZhBP_nEUdtIYizM^oQcuUh{Zn_tdziot{̀؀〰GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4 2P %+0#80X+&A~+Qp~+7+a-p  h0    $ (   |  X \ )D @O_@sP(D$h,"@!@!%@\$\y\H@ cabac.c$a$dx264_cabac_context_init_Ix264_cabac_context_init_PBbypass_lutx264_cabac_initx264_cabac_contextsx264_cabac_context_initmemcpyx264_cabac_encode_init_corex264_cabac_encode_initx264_cabac_encode_decision_cx264_cabac_range_lpsx264_cabac_renorm_shiftx264_cabac_transitionx264_cabac_encode_bypass_cx264_cabac_encode_ue_bypassx264_cabac_encode_terminal_cx264_cabac_encode_flushx264_cabac_entropy` $`T`` `!|X` common.o/ 1392656078 0 0 100644 40040 ` ELF(\4(p@-@`Q`  \P\PP p@4  ,  $    \TP0( 0@- MP@0S 0S 00 Ѝ00@- MP @0S 0S 00 Ѝ08@-P@P P |P hP8TP8@P00888t`L8O-/@pŸP`0  H0@L0|0`(XhfpfCPP`$`P P8P4PxZ>V Ѝ0xpP `^PXP DPxx3^PPGPxx3x3xZ -0|0 x0 0| P Z pPZ  pPP0|  P @00@0@S& xxP P P P P P tP `P> LP0 8P $P P P P P P/ P P P pPxxx3X | |0U 0Sx x3ZP| |0U 0Sx xx3x-P#x0x30x x | |0U 0Sx x3xyx| |0U 0Sx x3P x 0x3(0xT x||0U 0S 0x0 00DxP  0$0D 0?Cx3x(rxx3PTh1.?Pxx3\Pl P>lP& x1x3`0DxpP lDP zDx3 0?C?x3#xxx3`x0x33tP `P#x`0xP`xd3 xP 3x xx3(xxx3\P P P PR pP% \P' HPA 4P# P Pp 0P  0Px0x30xF xp3| pP 0x x3 0ux. xn(xL 3dx cxH 38x XxD 3,x Mx@ 3x Bx< 3x 88p`4@ 0P @ 0Px3#xxx3x xxxx3p x xlxpx0ShP  xxhPPN <P@ (P2 P$ P P  P P PA P1 P= tP`P= x0x30xExx3x| x00x0S x3x?x!&xx3|vx/x0S tm xx xteXP x0x30Y,\P<  l X D 0   | h xdlX|hT@,pxP0H4  lXPp\H4 x D0Hxd0|hT@t`L|h,x8$$P 8P LP `Pj tPR PA P0 P P P P P P (P <PP02Pw pr0  ppp4p0p,p(p$ptppplphpdp`p\pXpTpPpLpHpDp@pL 0 00H030D0|@<0"!"8ox3xxTxx3x0@ 03x0@ 0x0x x0@ 03x0@ 0x0x x00 3x ux00 3x jx00 3x _x00 3x Tx0 03x0 0x0x Bx0 03x0 0x0x 0x0@ 03x0@ 0x0x0@ 0x0x0@ 0x0x x0 03x0 0x0x0 0x0x0 0x0x x3x@P TP hP xxx x P P Px/3x xTxx38P$ LP `P tPx4xx3$x".3x yx!xx3qP Px xx3(]8P LPxxx3,IP Pxxx305P P P Pw Pi ,P\ @PO TPA hP3 |P% P P Pdxx0x3p2txx0x3p2x{xx3Hxsxx3dxkxx3`xt xDxm x@xUxx3<x^ x8xW x4xP xTꓯ%~0 0PExx3\P0 pP! P P P/x xx3x\xxx3Txx3xKxx30xp2@P 0Pxx34|P Pxxx3|  0Pxx3P Pxxx38 P] x0x3P2hP| P( nD x|xx3P1 P# P P P(xUx3xxLx3xxSxx3xKxx3x0x3L2P2P Px x3xPs Pd PO tP? `P0 LP# 8P $P PKxx3x@xx3x7x x0xx3x'x3xxxx3P00? 0"2xx3xxxx3P P P P |P hP TP @P ,P P P P| Po Pb PT PG P: xP- dPx3xx34x< x0p03 3yx2 x qx* xjx3xcx3x<\x x0Ux x,Nxxx3Fx x(?x x$8x x1x0 3Ex &x xp3x xx xx xp3xxx3x xx xlx xh/?τ/N@xx3Px3xx xxsxx3x| xxdxx3Px\xx3LxTxx3HxLxx3DxDxx3@lXD0t`L8$p\ -Pp@-M@ !R00 CP2LPO  P  P&ZPX0p S 0Ӑ00< X>Cp L29 ?C2 P+ZPK  0  PZP0, D/C""?$`2d2< PL?C"2Ѝ P  P5ZPT02ZP⬢T  00001L2333?CP29 ?C2t0hX0p  08<t= P  P-0p 0JE0 2X02 00"8<20 "02X08<2 08X00020202 PPZPLX 2Q  , 0L.CXP"f&2/C"0X000202020 20" t00X 2202"0  2 0t0<2<0X"2"0  2 0t0<20$p0<0X"2 0 x 0 t`L8$xtt,DhA-p`PWU@Q@PQO-P@ 00 0S  0`p0 `p 0P@  0  0A-PP`&  ` o@oT`V`P  0p00S S00  pT``C-@MPP pP; UP0#R X P  P2"P "801 Px0"PdT"PT2SP@@8"0$"P4"P<"P "P Pd2`"P@"P"P Px Pd PL#RPP#R@#RD#RH#RH"D"P0SP(3S[ &  P,#RP p Pp0SP"`/` RP @Pl,h0d 2SP2S "2Pp"R R5 % p2 CRPS 2S 0%2 !!P/L "RPPp2St2S  e`0 p0SP 2S "2SP"R Ѝ 3S $ `2S  x| t0bT@@ Pe<P.(P%PPP LPß 0  PPt  0x#3P`#3PH PPV,@PZP P"RR"Qz " %SL 2"0Pbx|”`Q0 2SPJ2S P"p2SP(b` 0P" " t"Pa` 0P! a` 0P! xa` 0P@ 0  P! p\4(p\X< |H|L4  pX@  D$t4@-@pP`P``QA-M|`Pp`@ ,P 0S S 0@TPP Ѝl, 4 < D P T \ d , h l p t , p | X p t , p | t , p   (08(@HpTX\`d(l  $0errorwarninginfodebugunknownx264 [%s]: %d1trueyes0falsenox264_2pass.logno-asmauto,threadslookahead-threadssliced-threadssync-lookaheaddeterministicn-deterministiccpu-independentlevellevel-idc1bbluray-compatavcintra-classsar%d:%d%d/%doverscanvideoformatfullrangecolorprimtransfercolormatrixchromalocfps%u/%urefframerefdpb-sizekeyintinfinitemin-keyintkeyint-minscenecutintra-refreshbframesb-adaptb-biasb-pyramidopen-gopnffilterdeblock%d,%dslice-max-sizeslice-max-mbsslice-min-mbsslicesslices-maxcabaccabac-idcinterlacedtffbffconstrained-intracqmflatjvtcqmfilecqm4cqm8cqm4icqm4pcqm4iycqm4iccqm4pycqm4pccqm8icqm8plogdump-yuvanalysepartitionsalli4x4i8x8p8x8p4x4b8x88x8dctweightbweight-bweightpdirectdirect-predchroma-qp-offsetmemerangeme-rangemvrangemv-rangemvrange-threadmv-range-threadsubmesubqpsy-rd%f:%f%f,%f%f|%f%fpsychroma-memixed-refstrellisfast-pskipdct-decimatedeadzone-interdeadzone-intranrbitrateqpqp_constantcrfcrf-maxrc-lookaheadqpminqp-minqpmaxqp-maxqpstepqp-stepratetolinfvbv-maxratevbv-bufsizevbv-initipratioip-factorpbratiopb-factoraq-modeaq-strengthpassstatsqcompmbtreeqblurcplxblurcplx-blurzonescrop-rect%u,%u,%u,%upsnrssimaudsps-idglobal-headerrepeat-headersannexbforce-cfrnal-hrdfillerpic-structfake-interlacedframe-packingstitchableopenclopencl-clbinopencl-devicebaselinemainhighhigh10high422high444%s profile doesn't support lossless %s profile doesn't support 4:4:4 %s profile doesn't support 4:2:2 baseline profile doesn't support interlacing baseline profile doesn't support fake interlacing invalid profile: %s malloc of size %d failed ultrafastsuperfastveryfastfasterfastmediumslowslowerveryslowplaceboinvalid preset '%s' ,./-+filmanimationgrainstillimagefastdecodezerolatencytouhouinvalid tune '%s' only 1 psy tuning can be used: ignoring tune %s rbfake2passcqpabrcbr%dx%d fps=%u/%u timebase=%u/%u bitdepth=%d opencl=%d cabac=%d ref=%d deblock=%d:%d:%d analyse=%#x:%#x me=%s subme=%d psy=%d psy_rd=%.2f:%.2f mixed_ref=%d me_range=%d chroma_me=%d trellis=%d 8x8dct=%d cqm=%d deadzone=%d,%d fast_pskip=%d chroma_qp_offset=%d threads=%d lookahead_threads=%d sliced_threads=%d slices=%d slices_max=%d slice_max_size=%d slice_max_mbs=%d slice_min_mbs=%d nr=%d decimate=%d interlaced=%s bluray_compat=%d stitchable=%d constrained_intra=%d bframes=%d b_pyramid=%d b_adapt=%d b_bias=%d direct=%d weightb=%d open_gop=%d weightp=%d keyint=infinite keyint=%d keyint_min=%d scenecut=%d intra_refresh=%d rc_lookahead=%d rc=%s mbtree=%d crf=%.1f bitrate=%d ratetol=%.1f qcomp=%.2f qpmin=%d qpmax=%d qpstep=%d cplxblur=%.1f qblur=%.1f vbv_maxrate=%d vbv_bufsize=%d crf_max=%.1f qp=%d nal_hrd=%s filler=%d crop_rect=%u,%u,%u,%u frame-packing=%d ip_ratio=%.2f pb_ratio=%.2f aq=%d:%.2f zones=%s zonesundefshowcropcomponentpalntscsecammacoffonbt709bt470mbt470bgsmpte170msmpte240mbt2020linearlog100log316iec61966-2-4bt1361eiec61966-2-1bt2020-10bt2020-12GBRfccYCgCobt2020ncbt2020cnonestrictnormalspatialtemporaldiahexumhesatesavbrGCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rel.text.unlikely.rodata.rel.data.rel.ro.local.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4I p%I+I4I0 CJtODLPK Hb2Mpq0\&z*\p*\7a\_N DxK   ! &( + 0 5 :  ?HJHT4 Y@cDm0z8 < D H L T X h l p | x    4 @ L X d p %| + 1 7 = C I O U [ a g m s y    ( , 4 $ < , D T d t |              ! ' - 3  9 ? E$ K, Q0 W< ]D cP iT o\ ud {l t |                $ H L X d l x # * 1 8 ? F M, T [ b i p w4 ~  <   D    ( 4 @ (/H T \ h p |       & - 4 ; B I P W ^ e  l, s4 z< H X h t |   p0H1 d13 p          @ 34 4l5 p5<    " ) 0  7 > E$ L0 SP Z a` hl oX vt }    8 @=`? d?HH T \ p            $ < H %` , 3 : A H O V0 ] d k r y       $ <     t  <    ,     ! (( /l 6 = D K R Y `P g nl, 8,dD0(>Q$,     cktyH   ' 6 E R ^ T+o v ~      p0   d1P 3 3D  4d# p5 - |5$@ 5Z a h o {   @=x  = |>      d?`  " ) l< pcommon.c$ax264_log_default$d.LC3.LC5.LC2.LC1.LC0.LC4parse_enumparse_cqm.LC6x264_atofx264_atoix264_atobool.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC18.LC19.LC17.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC28.LC29.LC30.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC42.LC43.LC27.LC41.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC31.LC59.LC32.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC112.LC128.LC129.LC130.LC131.LC132.LC113.LC133.LC134.LC114.LC135.LC136.LC115.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.LC155.LC156.LC158.LC159.LC160.LC161.LC162.LC163.LC164.LC165.LC166.LC167.LC168.LC169.LC170.LC171.LC172.LC173.LC174.LC157.LC175.LC185.LC181.LC176.LC177.LC178.LC179.LC180.LC186.LC182.LC183.LC184.LC187.LC188.LC189.LC190.LC191.LC192.LC193.LC194.LC195.LC196.LC197.LC199.LC208.LC201.LC202.LC200.LC203.LC204.LC205.LC206.LC207.LC198.LC209.LC220.LC221.LC222.LC223.LC224.LC225.LC226.LC228.LC229.LC230.LC231.LC232.LC233.LC234.LC235.LC236.LC237.LC238.LC239.LC245.LC246.LC210.LC247.LC248.LC250.LC251.LC253.LC255.LC256.LC257.LC212.LC258.LC266.LC268.LC269.LC271.LC273.LC274.LC252.LC244.LC243.LC242.LC241.LC240.LC227.LC219.LC215.LC216.LC217.LC218.LC267.LC249.LC254.LC213.LC260.LC261.LC263.LC264.LC265.LC272.LC211.LC259.LC270.LC262.LC214x264_csp_tab.8198x264_overscan_namesx264_vidformat_namesx264_fullrange_namesx264_colorprim_namesx264_transfer_namesx264_colmatrix_namesx264_b_pyramid_namesx264_direct_pred_namesx264_motion_est_namesx264_nal_hrd_namesx264_preset_namesfprintfvfprintf__sFstrcmpsscanfstrchrstrtodstrtolx264_param_defaultmemsetx264_cpu_detectx264_param_apply_fastfirstpass__aeabi_dcmplt__aeabi_dmul__aeabi_dadd__aeabi_d2iz__aeabi_d2f__aeabi_fcmpgt__aeabi_fcmple__aeabi_fmul__aeabi_f2dx264_param_parsestrdupstrncmpfreestrtok_rstrcasecmpstrstrx264_cpu_namesx264_log__aeabi_fadd__aeabi_f2izx264_param_apply_profilex264_picture_initx264_mallocmemalignx264_picture_allocx264_freex264_picture_cleanx264_param_default_presetstrlenstrcpystrtokstrncasecmp__aeabi_uidivmod__aeabi_uidivx264_reduce_fraction__aeabi_uldivmodx264_reduce_fraction64x264_slurp_filefopenfseekoftellofreadfclosex264_param2stringsprintfmemcpyx264_chroma_formatx264_bit_depthHN\O`P     TUDQ\QtQQQQ WX W0W@WPW`WpWWW!\SpdSeeQQLfQQQQ(X@dlghgf Q8QPQhQQQQQQQ Q( Q@ QX Qp Q Q Q Q Q Q Uh U Q Ud U Q T$ ZH [X \d ] R Q Q i< ^H _` `x a b \ ]QQpQQQ Q$Q<QTQlQQQRR<R$LxRRQQQQQQQ,QDQ\QtQQii$%&'&(&)`j* +,-./ 0$1(2,3044586<7@8D9H:L;P<T=X\&`>d?h@lApBtCxD|<EFGHIJKLMNOP<<<<<OQRSTUVWXYZ[\]^<_ `abcd e$f(g,h0i4j8k<l@mDnHoLpPqTrXs\t`udvhwlxpytzx<|{|}~<  $4QLQdQ|QQQQQQ Q$Q<QTQlQQiHii0iXiti|d,X$Pl4PldQQQ$Q<QTQ|QQQ QH  Q Q Q Q$!Q}0>}\>}p>}>>>>>p>(?D?X?s`??v?p???@<@T@l@@@@@@A$A@0  R @T1A0PpS00UG@0@O-M `10S` Ѝ  > l > p`@ 0 `\4 t`0   33{.B4b'b$? { rM  #*!-#! 3(&$ :".+33,Q/Ay<.J*J2+:7b'"j>%1.$$ A:".+ g3<(1&r2-#!    % %* "   !!$!$&!$&(!$&(*    ! !#INT%dbad coefficient in list '%s' ,0123456789not enough coefficients in list '%s' Impossible QP constraints for CQM (min=%d, max=%d) can't open file '%s' INTRA4X4_LUMAINTER4X4_LUMAINTRA4X4_CHROMAINTER4X4_CHROMAINTRA8X8_LUMAINTER8X8_LUMAINTRA8X8_CHROMAINTER8X8_CHROMAGCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4X! |-8 %!+!0!T82"4G0$&P:$`p:$7q$p&p - \+   #((-027<< Ad ,!FKPV\bhnt$z $8H$lH@@   %,3 CMZkwx4$set.c$ax264_cqm_parse_jmlist$d.LC0.LC3.LC4.LC1.LC5.LC2.LC6.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC7dequant4_scalequant4_scalequant8_scandequant8_scalequant8_scalex264_cqm_jvt4ix264_cqm_jvt4px264_cqm_jvt8ix264_cqm_jvt8pstrstrstrlenstrpbrksscanfx264_logmemsetmemcpyx264_cqm_deletex264_free__aeabi_idiv__aeabi_uldivmod__aeabi_i2d__aeabi_ddiv__aeabi_dmul__aeabi_dsub__aeabi_dadd__aeabi_dcmplt__aeabi_d2uizx264_cqm_initmemcmpx264_mallocpowx264_cqm_parse_filex264_slurp_filestrcspnstrchr-0.\-/0/ 1@1X2x3     55l5x55555h5p55@@@ @66d 7 6 6 68 6| 7 A 8 8 9:9$B8:L;`:p<=>AAAA$A84PAdAxAAA88 9:,9@BT:h;t:<=> 6867`76676617H6t66D6776646\67<6d67<8P8X9h:x9B:;:<=>@8L8\9l:|9B:;:<=>L8`8h9x:9B:;:<= >`8l8|9:9B:;:<=>PDhEx2F 5$!1,!0!4!8!P@\p\`eV`fR`dV`fS\P\@``T@dR aR bS `R bS څ 0 0 0B!C1 L0/`eV`fSڈP@@@PDAEQPL@PdUPeSڇ@ p@LDA@@`eV`fSڈP@@@PDAEQP@@PdUPeS}ڇ@p@@DA@Lr`eV`fS_ڈP@@@PDAEQPL@TPdUPeS?ڇ@ p@LDA@@4PdUPeS!ڇ@ p@LDA@@-_aaP@0`pfZjc RYif [ ڇ0`0`0`Zj [C1Fa0@`L\/-AP@`P PdpUPeRPlUPeSP@`P PdpUPeRPlUPeSP@\p\`eV`fR`dV`fS\@`\PdpUPeRP`UPeStP@PpP`eV`fR`dV`fSTP@`P PdpUPeRPlUPeS6P@PpP`eV`fR`dV`fSP@`P PdpUPeRPlUPeSP@PpP`eV`fR`dV`fSP@`P PdpUPeRPlUPeSP@PpP`eV`fR`dV`fSP@`P PdpUPeRPlUPeS|P@PpP`eV`fR`dV`fS\P@`P PdpUPeRPlUPeS>P@\p\`eV`fR`dV`fS\P\@``T@dR aR bS `R bS څ 0 0 0B!C1 L0/`eV`fSڈP@@@PDAEQPL@PdUPeSڇ@ p@LDA@@`eV`fSڈP@@@PDAEQP@@PdUPeS}ڇ@ p@LDA@@r`eV`fS_ڈP@@@PDAEQP@@TPdUPeS?ڇ@ p@LDA@@4`eV`fS!ڈP@@@PDAEQP@@PdUPeSڇ@ p@LDA@@`eV`fSڈP@@@PDAEQP@@PdUPeSڇ@ p@LDA@@`eV`fSڈP@@@PDAEQP@@PdUPeSڇ@p@@DA@Lz`eV`fSgڈP@@@PDAEQPL@\PdUPeSGڇ@ p@LDA@@<PdUPeS)ڇ@ p@LDA@@-@PP`P peWpglRZjpe S چP` `WpgSHFa@`PP`P peWpglRZjpe S چP` `WpgSHFa@`@T/-M44p4 (p 4 p尀0娐Y4堠@00 pcc P0ᴠc X ! \`c ! t! ! x <4 4$堐 (  P圐`8 d夐| 倐@4 ࠠD4@, 圐 lh夀嘐  H4L 4p pऐppp4嘀`pPT匐 Z Z0ܠᴠܠᴐ Y  Z Zܠᴠܠᴐ Y  Z Z,ܠᴠܠᴐ Y  Z Z$(ܠᴠܠᴐ Y X\XXt\xtp<xP8<@$8($ (`` d`|d倠|@倠D@D,, h lhl刐H刐LHLpp唐P唐TP0T0M⨠Z Ѝ/o\JHᴐLᴐ jZjZMHLᴠᴐ jؐZj YAܠZY=PᴐTᴐ jZjZ PTᴠᴐ jؐZj YܠZ|<ᴐ8ᴐ jZjZ5<8ᴠᴐ jؐZj Y)ܠZ%@ᴐDᴐ jZjZ@Dᴠᴐ jؐZj YܠZ"ꄠ刐ܠᴠܠᴐ Yhlᴠᴐ jZjZhlᴠᴐ jؐZj Yڅ|倐ܠᴠܠᴐ Y`dᴠᴐ jZjZ`dᴠᴐ jؐZj Yڼꐠ唐Рᴠܠᴐ Y匠 ip圐ᴠ ഠY jഠZjZyYᴐpᴐ jؐZj YmZtxܠᴠܠᴐ YX\ᴠᴐ jZjZX\ᴠᴐ jؐZj YW-M@a8P`PPu\``PpPgPXhR fXhS gXhS`\\fp\Yi R `Yi SfYi Sp`PPgPXhR fXhS gXhS^p`PPgPXhR fXhS gXhS @TЍ/ fu XhS) gXhSU PPePP娀PiU XPPf iPkȁX[ PP`Pe`foPev``@_uPP fu XhS gXhSU PPePP娀PiU XPPf iPkȁX[ PP`Pe`foPev``@_uPPP[` ` u Yi S fZj SU P e PP P奰Ph UZ P`phiQPQ UY  `j`pL`fov```PV fXhS5 g XhSU PlPPPPiU U PP f iPk \ [ P P`Pe`foPev``@_uPPP[U l 娰ીj X X  @U i 婠 媠g Z6 LhU  h娰ીj X @ U  h娰ીj X @  [ [ Y -@0MPAB!` @ P @0 a `@@ P0$H PaUPeYw$P(劐PPPPPPPP( ((ʡPEQPPdUPe[K P刐P(PP(PP`勠P pPppQP P@pDAq@p0S* @Pdp UPeY`pa˟+˟I [dɿ)ɿK Y Uچ@@@ADA@0S0Ѝ/@APPPEQP 1 O-M0@  P|  C0r0`0!,;``\0l(V ᜀQ"T  ` bx p(x 4pR\D@TP@p eD`D4pbFP刀h`p᐀l /倰 t /t Xp` |` 080 0呚([SP9 8 ?00S 0 ( `x0A␑&\y HU`y p  (PU Y < PS@ ia[P`]`PQ S [P`[`PQ (`] p 4Q LP`P,VTDP``W r0` b \g,p, P@pk&pа pa0S S S $pW+,Xf 1p `0`   S 3 (p 0QRX0 Sq0S S S ,\ 10So Xp80   S4P,;*P (P 0Y , [ P%90TP,0 p`p00 0V`R˰ `V x` V`  ,+) x`V`\a t& p`  0 p0RSa0S S S6# `p0 0 0 p0RS 8H p0  `{p `3 R%`\ 0S00S `V l?8|`0qx 0    p`6/.  q 3P 0 0P0QS p0 S0/@x> w0Ppp p `wp `3 R`\ 0S00S `V >P|`0 x 8  0    p`6/8  =p0炰H) 00 0RX 00À\  r 3` < 0p(pWp`V `\6`<p0 `(V ppW8 =0 `0 0p0Rp0W0À0  r 3 ;`0 `Vpp\W B`pW;0 ` V RppW 08 @01 2 3 ;/ a<L! " # 7/<aL 8 0  $p\X. Q, $10 0  $% %& $&' ';/$0 S? $0  0$% %& $&' ';/ S ,a$ $- %. &/ `'9/S  $ % $& ';/Sr $ $% %& $&' ';/WSD $  $ % & '8/- ă 5 , 0p ` pRVpp W ,  0 $  $- %. &/ '9/,0S?u ,  0$-%.&/'?                   GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4 D %P+P0PT80 &A Qp 7 aD P      (9IpaPyhHH vlc.c$a$drun_beforex264_cavlc_initx264_level_tokenx264_run_beforex264_total_zeros_2x4_dcx264_total_zeros_2x2_dcx264_total_zerosx264_coeff_tokenx264_coeff0_token ``mvpred.o/ 1392656079 0 0 100644 10356 ` ELF($4( <ß-  Mp⊡]G @000 `H ``H`` vm<p Y 0Y   凝 ِ P5 Q^ Qe l q  Q  V RF @`0 a/ b0c?0c c/000 a/ b0c?0c c/00 Ѝ/l HVm` }@t ?C ? 0 "> 0,r 0#00;Q =^0= 00,P "X> 0r % 0#00 Q @`00lЍr=Pn<=m n<\ 1!P!Ptp``w`\`R  R .]`- ppPj$ g_(ȏp iaPeɟ h ipaPjg_ȏpథuP] P|L P00 P .               - R1! Q !Q`aPvPRP\\ڬ.P. `qh$pf0 ( `j0clʯ g?j`c hf  `അeT0X  M   .0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 08`:t ` d (Pp  PZ X.  @ r&PU`PdP0U ; PP8㼤80ຜ0 p(r'! 瀠 SX:p  \f 0S9%0Rs%Sp%p 4SKUe e0XP SUS2Dڃ0m0Cఋ0PԨ  PXyڄ;80t+p 0 R0 S080000h! R  ,, Qh ##1 0S0cS0S0cSQ  t10 13/QD1p40 13/;k80z00S8P0ʐ 000` 0d 00J`c pc`XX,p$0Sbq000=P,P 0YP04P0(Pm` `F078 @t P/ R (    Q)p ⃐l0 0 p≑13/0 13/! 2/ PZ*0h!,pRQ Ԙ(p(  0  ,Pv eJㇰp r' 4P$pq8ɠό j|怠JK ZE l PB q0<00 80b20 B$8 1D3/80D  sT213/< 8pDa Ƞ1q3/` ` Pp  PQ U;PPhdg q0<0 l0 @ 0帮> 0 80  0弭 p=`0徭 P0̭ 0έ; > 0   pp` `P P  ` /0?`: pp00000 t [& [M 8 R) 0Q``d` p0&W$ 0`$0;p` 00p,p,kP`   Ph ` hPhUPeR bR  r&d`PP@000 Th0 T0,0  0 0b$b/!/BS0cR  ,R#00d`0pc cYWˠY0B4S @00CSz  @ 0[ 0     +R Pqp>00 $(T0\ Upu-$(P  @ 0X 0    \ U p $pP(R \ q$T(*=p  0 =`PQ 00(yA*/=P 00 `' ~ %Z p "` + 0p*r 00@ S0@00Qlz@00Q"Ccpc`X$`Xp,0`VS W ;$ 0 0,s .|$P(r0.$0T(r>0 $T0(M| . $ pP(0uP-$ PpP('|> $ T(@p00E@00A@0Z0=-B̐PJ]M P\Q R k`V lV YPU?DELMFGNO\]de^_fglmtunovw(PGCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4" L(( %#+#0#480H#&An#Qpn#7#a%  h'  D H @ L 3H.H4G|h`mvpred.c$a$dx264_scan8x264_mb_predict_mvx264_mb_predict_mv_16x16x264_mb_predict_mv_pskipx264_mb_predict_mv_direct16x16_GLOBAL_OFFSET_TABLE_x264_cache_ref_func_tablex264_cache_mv_func_tablex264_mb_predict_mv_ref16x16D @DHbitstream.o/ 1392656079 0 0 100644 1352 ` ELF(X4( Q0-*0RRP @PT \PQQ 0SQ0/3p@-SP@`  0S00204 03/3Se0@0CC(C4 0Pp@-@ 000GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.comment.note.GNU-stack.ARM.attributes4l @ %+00&9Ip7Y  P "h%5@,Ibitstream.c$ax264_nal_escape_c$dx264_nal_encodex264_bitstream_initmemsetT analyse.o/ 1392656084 0 0 100644 233504 ` ELF(<4(;P 0 SX00 0R# s40(  r ARڐ00B40/Q8Q`QR 000/S40CQ-C `A\qQ P Ep`U`e`eB/ @ @+K@P P@ P@ OOPO/O_@Ѡ P@Z  R T``\eS 0+ 0 L!00`e/X P PK@ Q\e !  `ePD|L0Q-0%  Bh @Ph 0`iP`@p$B!@p@p P$@P `P, @P i0 0/8h @"   h  000 0; ?C 0 p-L!  @  :@900S R0d@0 $  gPRX@@`$@`@g  R  ‚ 0 p/|H 0  0- 0@@B!Ӏ LhQdKLPe$@L`dp`b ነ` 0 PbP!@*LbP$ c$@x0 爰0p( @p$$`@p& @p $@$ P"0@ @/h$0 00-0@ 00 00\ r0+P T0| R@Q@TPSP \q 0@@,$@$0 0 00/0 q0 000 0`;P RX <1 -0 @b? \  RPP$000@ @/< @XjP`PPU\@ô0-  0 @!0  \P  Rڀp| 0 RLZ` `PZP@ Z0 0Z @ @/ p - 0AP}1Q`CC P`נPZ |3uPU_PU ] @00Sڀ p|  0SLZ` `PZP@ Z0 0Z @ @/0p0-_!_E M`E @? p0VB$$  @ bD"C# 5 V`BE Y0p,HB0# 0@ Hp@00 " pt0E pAsS00"!p0@ H0 ppOᗔ)(" .)2Ѐ 0Ѐp YX 倀@@UH) h9#  U#0!3V``!  0` H0 kq'&".'2 pYX@1@$ Ѝ/ 0ES,`, ` H  X0D0E0!, @E $tptT<$-@ ` P0 !R``!a"R`(p`"q#(R#<0<08018`/-M┢PP! 8 L0 @`<Ϡ 0L Ѐ(0! 4 0r1<剀 0 (  0<800 4 "0 80* ! (P 0 P P 9/\0S 0 $ 0 0@pr 8( 00 01 4   004(080(BpJ,r 0P  ! P0 0@ 00r10`0` `p p 0D` p0  0!1\쪐0 A0 0ਡ  ! 1 0H S^t800C^ ?K D!1 0 QK1 L00 1$K?O.K_0!H03/ 0_K03/ 0  1S0 S 2/ 0 0Z3/ 0 0Z3/? 00Z3/ 0 0Z3/  0 0tC?C$p8h  GO-0y- 0 0p@10 S4 10 Sp7-6?0 0 _0p@=0 S 10 Sp8c6 00 -0p@\86 L00a -0L7/,6! 0$"$QP:"!R0.ʏ "<# 0!( 3 0 0 800 ! ">! 0$"$QP:#!R02? 00"x&=t ((0  僳!0  08 00 ! 2!" $ "$QP?:$!R02? 00"%L ((0  僳!0  08 00 ! 2!" $ "%QP:%!R02 0"ʿ$\(0 (` c`!` 0 8 000 ! ">! 0$"&QP:&!R003ʿl(n` (c3 0 00 0! 0 800 ! ">! 0$"'QP_:'!R0H||K( 0  |2၃` 2`0 0#ʟ 0 # 08 0*9#"#(,# 0#SR*' |0 l|0<2 x0  | ("  x0x0| < 81xpp@Ѝ/0@So1 @0"40480(Yl0  0Sd00S; PUz}В,pd q!? 0   Q ʠ@0 0@lʠ Q@00 05 ( QP! R9 8!<    'g g BRzWpp05Y  oZp*B B RppcW}> p R p,0 p0G hR,0p p0 058 <0    O- wM?M/m^KM0PE'@0C S@ n( @T' 6  hg (|!R%90S!ڰ90Sڋ=& 0S6 0ь- R& 0- R& 0- S& 0- S& 0- S& 6(wSe}pXw  R (m|⼝|8u-s͊<< " P' Wn- K\ TI.l' |-H @( t' P`-w  pDg 0gp 8W m^K PEx' + L H!V P`爐g @ $ 47 0l0  af 邐4V` 2`gQኣ 4 `|  4 dg ` d/X0V :\ \ 6 Z7 (n~KP pGw p w 0 |'`H LP0g!hWXVw0 $0S @3P;6 2gTv_\daf \gHp=P`v ,g ` 07 vp `0p!0P0zv Sw 0Xp  '0Q 0  0D0 ? 8 \\"0" $ 7&w岠0㸠Tp ' `!7!E/wl0 4 l R02 0 ,3/h 00l00c0\ `0 " #$ ($ (,,0 048<@0WfP wU(`pW f w FDa $W(u}HX5P Q.mK@ A ŭ<P P TK0C06 >06 m 8$gPT0<0 l0$Hg `(  !B D0\%$Ŝ80010C7 0  R 00 ` 0̉ \Š   0L0_ 8 ŘPT0x`W0808 d(\% d La 8$5   R%Lh  ̀PT h\ŠK0C07 >07  8㰗`T0ⴧ00, ̗   L080̌ 0ZƠ 10C7 40   \Ơ   K0C07 >07 a 8㸗`T080|̌A0 X8$0 0 |10C7 0ᨑ 00S 0 ̀ ̌  $`@0P0T @00<@@@ m < Q0$  $  ;0S @@HYL`@IdBP `@8 H4` b4`p 08 Z>0p 8 0(0  p   Y ` 0(0m 0 0 Q0R  S0 0 D0 D84 0(∀, p往,0 D0 2 YD` " 0 p  5; 6(5\!0  0 P  70 X0D`8 0Y#00 #80 0  Y\ 10Sf;Z( `pB?0`0;0  0 0O? OO/  Q QV*|0D`H 0 00R$QS40U00 D$ ` $  ;0S 8Bp0 A     X 00m 0 Q Y[R  P0 0 0 40 04.( (, 4, V{  FR +L @S.P ⁁qJA05 P X Px 05\ P |05Q P Q ( |05P Q Tp05;0S1 S0S0S0SE  0f? 0 Z Xo< 0 !`VM(,pq10SD ; R< X:005S;0: S: 0 ;00!000 0YH Y ; R 0`V  0 50Vc3=00V ;0S 10S$0 0r0HsH8 aP kD$`瀀縀$ rR%H sS5H00`- a0R 0$  $  ;0S8H 0<B"ቃ0pₒD 0 FbB?( , 80 `_0$  $ ` `00mm<    e0g0R0Q 0$  $ ` `00mm<    e0g0R0Q0$  $ ` `00mm<    e0g0R0Q0$  $ ` `,0 (( 8 0l/S:00mm<    e0g0R0Q ( < `0LD 0,4 4@ <@ `z 00ZXo  0Π < 0 0< Z0X 010  0  Zo0X 1 0Ȁ Z0X1 0 0Z0Xo  0}ZX 0qZ X0e 010[4y@8 0S=p000  2 r R  8 ?0 (  , 4 (0 4( , , 00 (( ,, 00 (( ,, 00(00 00,0 0R ?0S0 >0wxz y0 005;0S񏐥ocD20p0 Q00 0d Q, 35 \00 0(  0``8`0     09 04 0/ 0) 0$ 0 0 0 0 0  0w 0 0z 0 0o 0 0 0 0Z 0 03 0 0(D 0(<0 0< ,4 4@ <@ `J( < 0LD 0,4 4@ <@ `( < @0LD 0,4 4@ <@ `;0S(0 f 3H`0D00 <3冃0 `8 4 @ (` pc0$  $ p p80 10mm<    ]0_0R0Q0$  $ p p40 10mm<    ]0_0R0Q0$  $  @p0 10mm<0  0  ]_R  S C 0$  p p p(`,V 005 0Vc(` a, 010mm<    ]0_0R  Q~  2 P B< p0,< <L PL pl$2 pB<`.`L` ` L0` p x\4p2 P B< 0,< <L PL a2 P B< 0,< <L PL p+ pY;0SY 0! 05S;0 S 0  ;0 !0"000 0(`V ;V0S$ P90(0 @ 4;0,0 90,0S#mCK ks-0㈠ 猠 琠 甠 瘠 00h 00009,00S+3mS[ {-0P d l p t 00x 0000( 4; Z?C00Sm<d   | (08 瀠 儀 0@3剣D0 Y> 0<0 `3`8p p0(` L0 吋@TX <`Lh#`H` `H0DZ>0 00 ,0  0 8  T`< 0(5`0TC,110mm<0  0  R  S0 0  3 =H 00.4 04刀4 84@ @ (@<`@(@ T`<` P9@0/ 4+ Qp㌀吐p┠ `hp `p RP+-dl p` tp x` p 5 4; Z?C00S.|=〠`(0(0`$"pHL@H 0Y@L@ @;0S) xVBhpPpB_`㸂 0m<00S 0m<00S 0m<00S `P0m<00SYp 7 L 0<0 D;pW LPgP7 , X00` (0 8 40 @0 H0 ht%00 %(` 40a`mDp0H0< ( ,0 m 0$ (   L0, 10mm<    R  P  0$ (   H0, 10mm<    R  P  0$ (   <0, 10mm<0  0  R  S J 0$ (p 籀 0Z 8p4 05 0 p8Z0 q0,10mm<    R  P p hl 2B< ,d (p0dP Pd ld \$2 B<p.dp (p@ P d0pPP Pp p l 2B<@ ,d (0dP Pd ld f l 2B<@ ,d (0dP Pd ld *4php4p Wh şD `#00# 70[\20L%D0# 0p00 05+!6$\  ` 0Q0 07 ( D `08  (" Z "8 0 0 0A ZB ! Rf;縃Z`B?0`0;0  0 0O? OO/  Q QV,"- xD$ 0p 0 0 DX#= `, 00 +m, 00 3/Sm,  0 03/?m, 0 03/-m, 0 03/,0D0#TŸ+0! `0 0+k+3 3@c0z 00001 0#00 V 0`@2$=0`.`$ $ 0sS1 00q@@c@@Qa0;0gD?0 p000 0g   ! " 0 0. p p ` t@`0hLp@p@x,x\D34 \00 0h 08?0 00 00 00D1+ 0   ؅   \7\K $R - 001+ 0 $R - 00,2+ 0 $R - 00d2+ 0 $R - 00?0S=Sn 2+ 0 $R - 002+ 0 $R - 00$3+ 0 $R - 00\3+ 0 $R - 003+ 004S  03+ 004S  03+ 004S  0$4+ 004S  0}T4+ 004Sp4+ 004S4+ 004S4+ 004S9  0X3$-. $ x"  "  "   $D-0 `#00 0 0]$0 00 000%D0B`#C !0 "0 #0 0 # D00 \ HI0JK  ! \ L~0,   \y ! \ Lp " 0   \ ! \y L~0 "   \c ! \# Lp0 "   HQI0JK 3T8+ 004S 0᧹8+ 004S  0㚹8+ 004S  0㍹8+ 004S  0〹?0S3$9+ 004S  0oT9+ 004S  0b9+ 004S  0U9+ 004S  0H9+ 004S 08?00:+ 004S 0 80 04&\"H 6Z!< 0΃  < H@0` aS0cR b0( 0 0C4<0 8p  0͇D   帠R 0 0$ H <$ @ @dB?8\ 00m 0 0 0 S  0/$ H< $ @ @Tp Xp 0$"d#tl,(  @)P_@ K B,@0 045S|B@ 65S , \ @0ᆾ0"700C0@ o 13/j8͌H  8p< 2p,B 0D0 B?@@m,mL@0 0 00 S00R0062$0@%00058@T B?D@@m4 00w@#o<A 0! 2/,  A0@o$ 4140 ,  A0@ o$ 4 01  0  0\Ǡx @0'xD 2 4@ 0@40B!1o 3/CX0 LX Dl X  0^ StB8|7 b@0 d7  R0TK8aࠢK8ˌpv7f@2K$A AJK0 2B0*K0K٭ 0ጢ ٭p ᐢ  ऒF=K%0CPR pR 0ᐒ$ $` b 3/ἢZ` V  K 0 \000jKzK83 Kpb$J@03/$K K\P}r` p>⠒ <pᄣS8j_3DX0 HSLsT \@03@p= $P,#(4CbP`R=<2@D2jKKZKKcJKS1B/SK@K@( JK| m< ` ఢB P0JK c P R$  ( ,4S0C0jK0K0K000008c0 @ `<0܂ R |Bb  , R30CXK K ܢBR@ 00S 0  Km̌0KPR`PRb;<0 01m,0 0JK KZKRSKJAFmK4`FCehb3 3bltrKⰢ@⌂ Ԃq ᜢ 匒圢 ฒ専 qKKr x㴂弪 KȢ|崐B倠JK⤒BzKKQYBJt @grrzK⤢Ȃ ยr倠zKJ @hं市ɈKLr嬂d@* \'zKszKⵍɟ(⸂r zKrzKrzKPS市 eZKrR啇,ZKR\l(zK r(LK⬂YlL,KK PጒL wpp@ :KBT0pK0`t0K t \5zKKr̒P@K\lXP KL  zKK₀|rLT pᔒ @P s0020PK⬂ 0Ls 㨒ZKlrPRzKlR Z0r57BR0005KKJ-K B| ᜂ :K*KP|B"lrB@ R"r#"D70005嵠IK0JJK✢ J K@0RJKA *KBbrK@P\.FmKzK4`Flr$1K`"|SV  zKʼnrᵠ P KQppĒtrp K  2H K5H Kp jKK$PKKrJmK`F1@jKQ F=Cb p@T_JmK`F"p@ 2Bl |2 04xZKp|ZDcB? JKK⠂B">0R^ SKK0@ B AjK  2,5Ar8ᴢ`40 t24pYK-$K/OX堒\K(EKK t"t PQ|B hq !崒XJKHI K K0@" !猒噂@ K⒑)p KIK0HJKԀHAK|@ `J=KKKKx|X㙂1#JKK x) J-KJKH U  KUBR J]KKKK EI]K0PEIK@E L `@J]KpPEIMK@Dl @) J]KKIKIK@ L `A@JKpl *KtP OKLKy ) Kt@t 0Sc8@8( 0P(@P KHHXXhLh Kyx x0!A 0QP@1P1010 QP@1P101@ QP@1P101P QP@1P101` QP@1P101QPp02 K0Rb$pK!0*BV@ O$KKs0O#OD4"D᠒ 5尒 K 00%  K⨂ KK| !⁀KK K|KΏ.ΏH KK\Y| "$K K K\"!K@Ġl P KJ-K B| K KX&|K K"L$"-(| `!KK L KK| K 0 KJKK0n?#:K2 KLKKx(KP`2^nx 1!  JKԀXLPTLC Tm KJ KIK LPI]Kp PE`P lçJK NIKHp`P ᵧ0`pP KKJKI1 |B$H!x咂T JK)"L K0 ƤK*KKKl"IK@Il0B KKHI-K B%ВJK$ @IԀH@T PJKT0`pPdJKKI-K0 BPI]K`PEJKlIKP I ܤK Hp ` lP KJKI K1 B$HK!Kx:KjKK(2|bzKl 0r =$ PK$$@t:.@$@0JK i*K"p002m X KK* KK0NKⵝⴂ@( Kጒ"崂<+ K"|"嬂`!K|JK⑁KN1K2|20JK2?ᙂKK lK#t00 K Kt  Kt儒刂#LK#Kx^n(KJ=K"x J-KԀI-K0 BXΟCB P̟J K@LIKJK0NZKIMKL N @DKRIKNPlnjJKA Z*K:KZK"l2@ 0 B! J KIK @0A✂JK@A@PHPzKIK LJK HlIKA R0P0p`@SꒂK-J K@ Kℒ""嬂IK0A!:K♂2@AKKp|咃#K `p2IK0HJ=KԀHC? ?00 0cJKL K1# K.㰒OH!K8!  K⼒K⨒K( .t ᎀ t K‐ KtKᄒ幀Kt""$K  K\X"=KK?!JK?A00 0c:K|2@K`J=K⌒噂C:K2咓):K‒Z*K02O- M1PMN;0 P @! ppS;8B r X  w Pi 90  R0<>0E> 0S[XB10SB"pQQpPXB`1<1UX1$K S`BpQVP< T08B=pKX0  X!d r p KB 0`SM4@. K 0 00>K QP*K@X B XaXXB; rX!p0 ;0SF̟I,`⠬pK " ,BLX 唂嘢 Y!Hd2 |" B x r ` 倢 t 2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 Bd0Xr~>B0$1 ? 0\0 (0 ! 01 0 B  rQZ(2 ✂ Q0S РZ  B_| 0P@?pA0爣Ä 0  p1 `$ @ `"0 K*Ԁ Ġ$ @ CYX*r tNK2p儢xrfB Z `m ` ``@``` 0%KA\b01 `2 0 3/8T0S  3 T0L2 3 3  0L?0 0  K QP*q;`@BpT02  "vK|2Kℒ`m`0@ࠐ@ⱀY尀 !K'.Kr@Tr A qA倢@XXT uK"|b>Kr m̆m\PP` p0@2 0 $3/8T0S  3 T0p2 30 3 = $@0pHBRR+ ` r`@b@@ OO/ @ O4P  AR p R儃  , B %$ ;0S H00m<00S;D0q `T`m,ml0 0 00,"S0000 `R6,l-8 0005`T`m,ml0 0 00 S`00R006-8 0005`T$`m,ml0 0 00 S`00R006T.8 0005`|>`m,ml0  R` Q 06.8 0005p W@u5\B1 q OA C1 3/13/p|BvKr/KnK0m™pZᱠ@'Gg0尠`0 !K'.KNr 3=00  P`B@r @0ࠢ;L0$`B ZHBr @ L HB |rr?Kⴂ.KuK m\mlP \`p'Gg0 I@ "B, 张W TB m,p 2 0 0 3/dB0 3/ 0 0 "B, 唠"B,p 加"B, 倠 Pn?t0d 0  | 0~>C0C#?0 0t0 ?$P h?0R??0,00Sl,0`V`l`p+Qp` 1!<0 I\< `c\Ps0-pd͟ $.pPL`(0\`P=xPP`0h\` P00 T4P2 0  03/m<+0q070p$P4T4 Tdǀ$` 0 B/P8`刂a`` \` HX @P0OO?PP0 0hQDQ㈁\`Y 820 0  Q ($?P0 5/1 PU 0S $`t†` 0I 5/G0yl 0<4Pp@ \0<S;8H`p0;0 /d0 0$@PSD`i`2 `0 3/80S80S  0P @ pPm<P0YWD :"$0D<`,ΌL`4T\0(P2 B 0 p3/; m\G! (PpP(PD`凐00$`B~΃.P ⼠P X$ 0OόO?P0 `40P PQ4(0 0SZ0(02 H Q0  10R0V4801 0S Rt` F3/ G,0r@`0(p@\0,SD;d0$ ?0R0 ``2 `0 3/80S80S  0A pm\Pv ;G!B " 2 0p3/3 t0 3/d2 0 3/]W $20Yߍ0S$@1 X00 P3/p0,04P ,0LQ84$P 08 0,LR$`0,  L [`>P03/? X 0PC3 0P0000  B02 p0.3/[<`0$SP` 1 V @P  0+ 004S| 0  .0 0 0 0 0; R @>004S= 6-4s00 0 p60 0 0 0=+ 004S 0IA  .0 0 0 0 0; R |=004S 6-4s00 0 60 0 0 0(=+ 004SZ 0  .0 0 0 0 0 6S1ڀ;0S-[ <Pp C0r0S$Ѝ  0 `0  +9 0 +80 p+ 0 \+  "8!L0r + 0J+ RZ R R * {ʟ Bό L00 R;81sk)g0,4s00 0,04s00 0 04s00 0,04s00 081L s; C;0S S Sk ) 6 5-4s00 0;%0$r   &$r  &$r  S@2%O00     .0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 ; 繁㶁㳁㰁 5-4s00 0t p50 0 0 0p5.0 0 0 0;0S񏐲5.0 0 0 0;0SseWIp6P.0 0 0 0;0S4& 6X.0 0 0 06X.00 0 70\.0 0t2X.00 030 0 0g-X> 0. 0. 0/ Z\& T5P.00 0 60T.0 01P.00 020 0 0+P> 0, 0, 0- % 4.00 0 50.0 0s0.00 010 0 0f)> 0* 0* 0+ Y$ S3.00 0 40.0 04?.0 000 0 0('> 0( 0( 0) P$ L7-0480 070 480 070d 0 0 0 0 0 0 0 0080 3! 004S L7-0480 070t 0 0 0 0 0 0 0 0$3! 004S -04s00 0>0.=-04s00 0`>0G/0 0 0 0c S Sv S|1-480 0 0 0!0                -    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l 0 0 0 0 0 0 0 0)H2- 004S \8-04s00 0 0 0c=0d 0 0 0 0 0 0 0 02- 004S 0    .0 0 0 0 0 0 0t 0 0 0 0|3! 004SC 8-04s00 0 0 0e=0j 0 0 0 0 0 0 0 04! 004Sa 0    .0 0 0 0 0 0 0p 0 0 0 0|1-480 0 0 0d 1y\8-04s00 0 0 080-4s00 0 0 0c=0b 0 0 0 0 0 0 0 0e=0.0 0 0 0  ~X00!0@00? 0 ~<00!0@00? 0 }800!0@00? 0 x}\00!0@00? 0  0IA  .0 0 0 0 0 0 0 P 0  T.0 0 0 0 0 0 0 0 0 0 0 0  .0 0 0 0 0 0 0 0 0 0 0F 0  .0 0 0 0 0 0 0 0 0 0 0 0    .0 0 0 0 0 0 0 0 0 0 0 0    .0 0 0 0 0 0 0 0 0 0 0F0-04s00 0 0 0010 L0-04s00 0 0 000 0 0 0 0 0 0 0 0@1-480 0 0 0d `20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 090-480 0 0 0P:0 00     .0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l90.B480 0 0 090 O- DM1M@!0p`@SH P0  ?0SHKP ,? 0.B PS< 1 PX\`H LP1Jd,T ,(0Sl Kl0h  bR 'X X laR bQaQ 0l0SH0 H L?P00SRH!_< PaH  D  } 0$0+k<L 0 †̌ PT  D0T0 0S`  D0KLKPD KL08 1pU1p t" l002 0 P3/?00S|1) 48000010S 6S $#  3. 00+S S<2B@BSQ 80S |1S0!0Rh Kt2P p0$(4 ,08 0< @0s4R ^ 0H3/T _ 0 3/P ;  0 90R 6S ! 1. 080S 2SO[0S l!Z 2  0.3/0SM M!0 %=X 0pK@ @(PM\'@0@8 8 X   ?0S( 0Ӑ8 ?0SKL<0 X0<0P? "K`A`PAX1 ( )P  \H`L10e_͉h0 P 10Uyv0Ĉ ` 2 0dbõ!` 0J,y_l $K , ( 0` 8  +!p0!1U8Q p0  (aQa00cS0cQø aڼP0` 10 Saڸ  Uh 0R 0D0  , 0$0  d0T PKN  8N(8ll |0 l R02 0 3/6 P0( ,48(,$00<@Y;   KhĈv0 Y00S:Y h5ب 0 RXK0B L0 3/g e0  Y3/h&̌0!@ _l⼐`ᤡ K@ "AP@ @ K0C08 <08  8@T0 ̆1 0 X8 0L0š1 0C (b"  0&. ᨡ 0 IS 0(  ̆  ̆  7?C0@1CmCTO-M2 q/  0 岠 AT Ѝ@ 0Py i\a pAP` ?D?P p0@0 T0f qP1 p0=p|`p"@UR UH 0/ P SՒ r S PB`U 2S0P2S 加0 z~.B B? #S0SI`ROOoOpP :0!̀0@>  S@Tw0㳠0BSPB`0᳐0BSt@p@-qn`@FP0S C 08S C 4 @8 @< @PU@p0;0O-S$MP ,.R@ ,.R@T$Ѝ@;  `̠(qn  地O㴐 X \@䰗i   S001bn ` R …O 0@̌` ( 圠q   j 0Sʦ02O-P@MQCQQ SSڜP S000Am0 S|81> ?C08P,( R d 0 4R0$0Q <+S ,B(p p`@mbbcp`F\  pp \ Q  Q l  P S8{~pc FX,kpnF`RQ (L AR0) Ag Ra"S Ap"`! !V   / ' / '/' / '! R, , bR&ڸ \\ڰ \ \ \ \S8 ʜQ ` R9P+ S ,+( RRb0 0Ѝ(㠐   &̔R2C pq,p; P 0SL`G%;\8P0 `  0*  iXSpW*0PS0,SȀ렐`q접 D(p a p `"  <2SkHq3g0kVc k0`p`&"# "0SR030#WppWA  H D  p     ]A A  T P L ` A |   ptW)b b#`A \  pQY \ AX)" H LG p`  0 $ O- UM@=M00CР(P0QR@P  0 Q!X2S ,;80x P0 @}\U< U U @c@Q\.;0  l) R : P !m ! P`QU- QSS @`P00T0 x8*0 Tp00PPp S`0 X0 IX \ \H Xy00UQL I| UQ L``L` TpSPP D pQTPP`x"00R2|"3R3 R-Y\pP 0x"00S"|"3R3 R D Q\ ,@0T 0X H0XS H 0P0 WPpPL UX| L IX TPX 0 RX PP 2ƙ y-0 0f@2S Q 02S @0(0"n<2S_ 80S 4b ^ 0H3/U_ 0 3/};0SSU7RDP <P.̔\\8+ \l\ \"RP<P? ] 0Po| 嬞_̠0D 0 >^0Ȑ ` |@`@p0 >q~̠ 0P Pp 0 ܀ p Qኃ`  0 LP T8$TP P h , hpTx H ! p0HQ3\0 |8d x.#h PX Pl \p t R dDRXlHptLdPD D\  X  P \ HXX`[ \ " $ ̈\ k͈H \! \ H",l 2H `WΌ \ H   p T 0lD00L dLp 0X pXp 0h0xpX!4  !h0 8<0hpR| |0 1x Psh1,x |  S H LDPdD DP D   t PX X t `\ | 1#0$0H\l! 1 0t 0T0t0X  0Ddp  0Lphp 0x0!t4 !h0 8<0R |ht0 1P| xp sx h   t 0, |S| |HLdPD| |DP   P|   tX\|`  2# 0$0H\ !1 0t  l0T0t0 0Ddp  0Lphp 0x0!t4 !h0 8<0R| |ht0 1P xp sx |h   t 0, S HLdPDd dDP   Pd   tX\d`  | 1# 0$0H\ !1 l00 T0D0dp  0xphpT! 0 }|'| 8 0 S 10H0 1  0ZHH !TP0Q'xz `p H0l50Sr 0K< 0  0RcG4 ꬀1  1! $ \ ~܀1`@P2ppbSh6v !p Dp  ĠN- ˌ0  0! ! $ *  01  ! TPT- Pp " q0T 0 ̈ Q 01/  LPK `p h 0^ 8$ <0pQ̠x Ġp l0 pd |8l| !\P P,#PP |P RxtP    R DR t HLPD D\  p  \ \  lpX`/ x " $ ̈t k͈x t! t x", 2x tx  T 0L dD00T=0l0 l 0p |p 0p \t1p!8|  à1p ! pR | |  >, S   HLDP DP\   p  X  `\|  1#0$0tx1 !00  T00Ddl  0|p dp p: p8/0pSppq  0XpqHPULPHp h `pK<ˆ 0 ̆04\ 倀 P|0 8< 0|pQ\ d!x0 |8 px .#| Pt  P R DRtHLPD D\  t  \ d xXt\`? ." $ ̈t k͈x t! t x", 2x tx  T 0L dD00l 0|8 Xp 0p 0t4!|p L0 8 !<0LR |0  1\pL1,|   S H LDP D^    \p X  `\  1#0$0tx 1!00X  T00Ddl  0pL|p d0N-;  80 pSp0pq  0sWpqHPUwhpHPK< `p 0l50cpp t_ 儐 X T T\ ` d ؐ XX \$\ `儐` dd X(\0`,d4 8<@ ꘀ7xl`"0|p200'2@V`pÈ%ř6`1"0 2Dp 0 1ƒia=2Sp`Dp hHp  K<P90S 90S 90S 90S88 P,2 0_ 23/U18Z@PP 5lel&`6``pbz 5 &6 000aFpbnR R R 07`Q2@UPa=2SPp2SP;pp pu0Dp  2S 10Sa@V  `B! >@P,0P 02@SD (P @@8!r q8!leQl6` &``pb 0!|0# $   (   ,   0  4 $  8 (  < , 0@01!t># $   (   ,   0  4 $  8 (  < , 0@0D7`6 ."$(,0 4$8(<, @ @p@iv@ @o0!d0# $   (   ,   0  4 $  8 (  < , 0@090Siڰ90Seڋ=pWpڤ60Wp=0Sڤ& Sp=0Sڤ& Sp=0Sڤ& Sp=0Sڤ& Sp=0Sڤ& SpW2@@ @81s >p81@1!># $   (   ,   0  4 $  8 (  < , 0@0k ."$(,0 4$8(<, @ P p `_l 0 P# $   (   ,   0  4 $  8 (  < , 0@0R. t."$(,0 4$8(<, @ ͔\lx˒P  \f0+0S@p;+0  |11p Dp u? 0 W 380@X! @ 00# 0 X!U Uږ ?X X` P< 0 0# 06@0 @0s 0@@P  0=2Ss   > S3 S\8@“6 L02a -012Ss   3 S( S8“6 02@ 0c- @0 @@P a 0@p0 @`0c 12Ss   R S3 SL7@“6 0`X, @P0 @p0u 0@0w 0`\"D L`x2 f̔ B3S30R00@p0 T0 ~8 >00SD @`\03b02`@q@Py7|g|(`8``n*` g@ 0o2`[@P0 0PV 0 0P@P0 P@` 0F P@p0 @P0 0P@`0R 0P@pP0 PB  0P@0 @P0l 0P@p0 Pj@P0 P 0P[ 0 0# 0[@L7b0P drh `t@ `x] p0 pP _0PL@ 0 #\8[[[ Č[0|b@pdav` `0```pc 0p@p 0y 0@` 0 @P 0 PJ  0P@ 0 @a2S; Z 5 J y0 0H 4S[50 04S<; Z 5 J ~0 0H 4Sy50 04SZ; Z l5 J |0 0H 4SH50 04Sv; Z $5 J p0 0H 4S!50 04S@0@@ܮ"y0≐0i2X! H0X!SH1 b "@&剐0i6X! H0X!S@H1 b@@ܭ"u0≐0i2X! H0X!SH1 b "@%剐0i5X! H0X!Sw@H1 bn@@\"w0≐0i2X! H0X!SwH1 b "o@l&剐0il6X! H0X!S[@H1l bR@`]_7b02`U@PaO@e @P 0 P 0 P@P 0 0PZ 0 0Pd RYD ,T@00S|H RH 0P0 PPLpPW8*0 00S 0x"00S|"3R3 Spd'dX'@@\"s0≐0i2X! H0X!SH1 b "@l%剐0il5X! H0X!S@H1l b t L `DO- MSM0N \\ Р@ b@0  B0@ 1N111112221| P @ pQӀ 00`@ P@0 H `< P1Ӏ `0 @ P@0 D P!8 P1Ӏ `, @ P`0@ @P!4 DP~C( P ~CPCPa~DP ~DPDP DP~~DP ~DPxDP DPV~DP ~DPPEP@ P *P pAӀ|P 00`CTP P P`0 H P< 0 PxP Pp X xP:00 < K00K  ?P# x@H0KP 0 0$ (0,0p@@p@ T3 |@!0t03R0S* x@0P@x@ p\ xH0K@ @PP00$0Sʸ1$@0Sh@  P@;@`\0pC& p 0\`@ `` d@ Rp \ @Th@02  0)90 0b S0R ?/ Rd@t0 l @X ?T@ x0Kt px@0A|P\, 1Q  T@Q0CP0@T@ @0@@S@@TS,A)Q B0C#T@P0@T@T@0CP0@T@Q& |P 2Q0C 0S SQp |@0C \ |PX2 03/Q |X2 03/|@P1US @KP x1` @P@  P0  "P0* K0$01$@0Sh@ rp@;P 0 @d@ Zp0P` `  Q tCP PRD P  0`ZPT@l@ T@ X |@0210CCĠ@ @ @P@DP @ @ @ BDP@ P @D@ ATP CH@p0 0(P$PTPOPJPEP@P8 @PP$<1 @d T$h  e P K0@@@.P@; 0 P0` ` ]O d\h@0  R0  h0 d 0 0 @00000L O-M@  c4Q `@448 D0@(0F. aV!"R1S p8t(0S%ʓ4o ?Q`Ѝ<0100s \  4 1: ?c ~ P \0 @ 1,;?c0| 0RT0`ǟ ,S@  1,;  \0 k4 0t >0Ô劁`\X`qpZ%U>(0X0,0(0 0P 0 P(0t8(0 ⥯(0 0ʠ癨 08 ( 0器 $0$0cPQ   $P,0 U ` p aq0P \ <1D0`4S@!0Q.0, FZ 8 , aa! Q0 J4po.X , !< 0p`S;<10 \<   S  6    Z>0  2S 0 <10SB 00p8`00008SD40 \@0 F> 0a<1  xdx ?`D40@0F> 0aP0C@  ` p Q R;Xß ,4 !*08 ( P0ST0S| \ (8 0 0D40@0F> 0a4 o>01 +80 !΅T0, Hń ᰕ   t0 0 0崢Za p8  0B 0HP0 @Ҭ<08 P  PHLPP8P堈< \ 0( `p0,O00C0 S8 H B8\ LP8 ( (8 !1Po8 ( (8 0 !,YQ t8 p8p8Xt t Ra\TO-LM@`tpZ Q 2S 0 `f!$4 1!\ h,4p0 0Y0D pgd` X X00CWJ 0,$C 00 t00\P' onp8`0t(aS`1ʘ 0,f0QP 0CФ40 p` 0LЍl0SW  X0CH  h h \00\ O-$ML@ \PHTF p0SC t R    X  X pPLa  0pP$PT 00CSPpXT \(aP@p @LX0  pP0 pP`X@L1 !P$ЍH  0L$ЍO!0L0X O-017:K!$K&0. R=C- K [=K0CKC [=K0C C  6HWL1r[KNP1[-K BB|:KSK A&6`eGKZKJK B KVF e`0JKZKFV0U!$KRA AQSKN Q 0P:K 61 L*K&RJKK KV6V^|KfKL1[KP1N[-K BBKSK A6 0 GKC-KC]K BPECnAn DJK:K F7$CS=K0CpBP S$K`;?O 0 mK6f6K V5U5EK/`NKCvKV&KPS-K0 BA FPpP+$K0R=C 0C0 R*!R-B` B KVJK$PK`;?OFT!0  K40Sp0LQpK W 03Sp{KS-K B0 S-K B0@ K p*K0S-K KP B @P$ K`1 R=C 0C0 q$@K0Kp R=C 0CĆ R 0U  vS K@p K10 ST Kp0PQQ!x0CK20c  S-K@  BSKσ:K0@@;Ko>gpG0 P$ K@1R=C 0`05zKSKA0v K pSK0A pp@ SK A0PP@ @c `$K@1R=C JK 4 :Kf|*KpfxKpftK 0@R=C $K`+1/O KxZK0$6zKvpO- M$4 00 =M00CР0400 \ v WÐL1Pp P1`, K(6 K@9K00 'V `\! R0 0#@K)K)K 6\V\8 K& ƊpP\ڈ0F\0x 4 *0 Vp P\&K(62S! \ڌ0@$d ,0 Q@\04 Rʌ0 p7g Q, 0|0 `ง A0SS S0S000l \R \|$$ `  bPuSS0S0 R000Sw RT SR$4 d 0 aQ0 R  g R i0| SZ p RM $$  , QF Sp S00 A Q0S| RQRQ X \\0   0$4  0 , Y I$ 0!0 ,  炐| RYWY#p,01  p2S2S2 $4 0,`0Y\00 & p0tp p0 0$K @B t Q!P0P$K!H1!"0 H0!!AB$4 0,`cΊpP 匐  U 0 `  MN! @AD$ 0L,`P!K1K'K(K 0MN @PpA'K(K U K `Kp0Sh t0Se $4 00CS`=0炐p2St X$4 @`Y !hK 0`,| l0 ,0 |l K0@@DT 0 @|Y TP 2SM  l K 0VC p l`K@p0@ l K0`0S@ T0P0S|lK1  R h0S2S2Sz 2Sw !  0S0 $4 00S000S\ CR'SR$$  , \$4 0YI ,0 P| Q 0 1 0W0 \ 0 | 00F  0 C$D  ,`PP 0,`  C$ 0L,`P!KKPp8 (; O-P0MCQdSh ;0`0`c coય`ʠ fpa;,↱( 0p0 F> 0 AT2S "RK 2S3, ({+t@$1 ! 0  BR   !l0S 2S (;000S) Ѝ0 0 Z>0Ap```pa 0`BV@ 2S  0`BDt8\,;pЮ80 ``Q(`"͠$1 0 0`⬲ [) `")F$b`H@ ``0`FČn Rt8 [80$   0. 0C O-LM $ \\ D00b `?401  /Q$DD> Ȱ<8aD(@`,0'a 4 `P@0`p p8/ p, l 0 `$(Q/T@`888< Xa Q0`@DLЍ  $%&'45<=67>?DELMFGNO\]de^_fglmtunovw(P.:I\u&rKH- Y!$=.B:fIz\t͒%q6K#lGH, \ Y!a$p=.=B:fIz\{t͒%q6K #7?      !("#)0*$%&'+12,-./3894567:;<=>?      @D HLĈ    Ux264_mb_analyse_inter_p16x16x264_macroblock_analysex264_slicetype_analysePx264_rc_analyse_sliceAAAAAAAAAAAAAAAApA`APA@A0A AAA@@@@@@@? 72>X>#>!.>T:8>-`B>KvL>zV>n`>Oj>!t>]}>ȃ>>_>>oؖ> >1>Ԥ>Yn>>>>L>>>Tt>+>%@>>o>>>Ӈ>>>i:>j>>A>>W>????d ? ? ??X?t??u??y?]?>?!?"?$?6&?s(?S*?_$,?g-?w/?1? P3?5?6?8?X:?AEHLPSW[^bfjnrvz~$-9H[s"mD3 m f$I$-9Ho[3s$޶fI"mDy$33I m ff$%I$-9JH.o[33s$\޶ff*I"mUDry$333  $(-39@HQ[frCj?-} Y!??? <KYhwRao~`o}ix-$2AD%4CQ              t|encoder/cabac.c0internal error P_L0 and partition=%d internal error internal error (invalid MB type) internal error (MV out of thread range) mb type: %d mv: l%dr%d (%d,%d) limit: %d mb_xy: %d,%d completed: %d recovering by using intra mode encoder/analyse.ch->mb.cache.pskip_mv[1] <= h->mb.mv_max_spel[1] || h->i_thread_frames == 1a->l0.me16x16.mv[1] <= h->mb.mv_max_spel[1] || h->i_thread_frames == 1internal error (!8x8 && !4x4) scene cut at %d Icost:%d Pcost:%d ratio:%.4f bias:%.4f gop:%d (imb:%d pmb:%d) encoder/slicetype.ch->frames.b_have_lowresBB-ref at frame %d incompatible with B-pyramid %s B-ref at frame %d incompatible with B-pyramid %s and %d reference frames normalspecified frame type (%d) at %d is not compatible with keyframe interval specified frame type is not compatible with max B-frames cost >= 0nonestrictGCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rel.text.unlikely.rodata.rel.data.rel.ro.local.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4$ lH#%%+ %K4 %d0 C&Ox7K b27q0 ;&z2;p2;7i;>$ Si 8DQUtlx}VXp(Y+XdlwCZe %?Qjv2L HdD!analyse.c$ax264_cavlc_qp_delta$dx264_cavlc_mb_header_ix264_cabac_intra4x4_pred_modex264_cabac_intra_chroma_pred_modex264_cabac_cbp_lumax264_cabac_cbp_chromax264_cabac_qp_deltax264_cabac_ref_px264_cabac_ref_btrellis_dc_shortcuttrellis_coef0_0trellis_coef1_0x264_mb_analyse_init_qpx264_mb_analyse_inter_p4x4_chromax264_mb_load_mv_direct8x8x264_weight_cost_init_lumax264_weight_slice_header_costx264_weight_cost_lumax264_weight_cost_chromax264_weight_cost_chroma444x264_slicetype_frame_cost_recalculatex264_calculate_durationsx264_slicetype_mb_costx264_macroblock_tree_finishx264_macroblock_tree_propagatex264_weight_cost_init_chroma444x264_weight_cost_init_chromax264_cabac_mvdx264_cavlc_mvdx264_mb_analyse_inter_p8x16x264_refine_bidirx264_cabac_block_residual_422_dc.isra.4trellis_coef0_1.isra.5trellis_coef1_1.isra.6trellis_coefn_0.isra.7trellis_coefn_1.isra.8x264_mb_analyse_intra_chroma.part.15x264_lowres_context_initx264_cavlc_block_residual_internalx264_mb_analyse_inter_b8x8_mixed_refx264_mb_analyse_inter_b8x8x264_mb_analyse_inter_b8x16x264_mb_analyse_inter_b16x8x264_rd_cost_mb.LC4.LC3x264_rd_cost_chromax264_intra_rd_refinex264_mb_analyse_intrax264_analyse_update_cache.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC7.LC5.LC6x264_mb_analyse_inter_p16x16.LC15.LC17.LC16x264_mb_analyse_inter_b16x16x264_mb_analyse_b_rdx264_intra_rdx264_mb_analyse_p_rdx264_mb_analyse_init.LC18x264_slicetype_frame_costscenecut_internal.LC19scenecutx264_macroblock_tree.LC20.LC21.LC23.LC24.LC25.LC26.LC27.LC28.LC29x264_ue_size_tabx264_mb_pred_mode16x16_fixx264_scan8x264_mb_pred_mode4x4_fixx264_mb_chroma_pred_mode_fixx264_trellis_lambda2_tabx264_chroma_lambda2_offset_tabcoeff_abs_level1_ctxcoeff_abs_levelgt1_ctx_chroma_dccoeff_abs_level_transitionchroma_mode_availablectz_index.8339next_suffix.8324count_cat.8340x264_mb_partition_listX_tablei_mb_b16x8_cost_tablecoeff_abs_levelgt1_ctxblock_idx_xblock_idx_y__func__.8730i_mb_bits.8794x264_mb_type_list_tablex264_transform_allowedctx_cat_planebase_ctx.8814lut.2780subpartition_p_to_golombsubpartition_b_to_golombmb_type_b_to_golombcbp_to_golombct_indexsatd_shift_x.9068satd_shift_y.9069satd_offset.9070hadamard_shift_x.9056hadamard_shift_y.9057hadamard_offset.9058x264_pixel_sizex264_zigzag_scan4x264_zigzag_scan2x4x264_zigzag_scan2x2ctx_ac.9578x264_zigzag_scan8i16x16_mode_availableblock_idx_xy_fdeci4x4_mode_availableblock_idx_xy_fenci8x8_mode_availablex264_pred_i4x4_neighborsi16x16_thresh_lut.9857intra_analysis_shortcut.9853cost_div_fix8.9892i8x8_thresh.9893__func__.10021__func__.10569check_mv_lists.10684weight_check_distance.11021__func__.11481delta_tfi_divisor__func__.11583x264_b_pyramid_namescabac_size_5onescabac_transition_5onesx264_cost_refzero.9083zero.9071x264_cost_i4x4_modezero.9822_GLOBAL_OFFSET_TABLE_x264_cabac_transitionx264_cabac_entropyx264_cabac_size_unaryx264_lambda_tabx264_lambda2_tabx264_weight_none__aeabi_idiv__aeabi_fmul__aeabi_fadd__aeabi_f2izx264_exp2_lutx264_me_search_refmemcpy__aeabi_f2d__aeabi_dcmpgt__aeabi_dcmplt__aeabi_ddiv__aeabi_dmul__aeabi_d2iz__aeabi_fcmpgt__aeabi_fsubroundx264_log2_lutx264_log2_lz_lut__aeabi_d2fmemsetx264_frame_expand_border_chromax264_mb_predict_mvx264_cabac_transition_unaryx264_me_refine_qpel_refdupex264_me_refine_bidir_satdx264_last_coeff_flag_offsetx264_significant_coeff_flag_offsetx264_coeff_flag_offset_chroma_422_dcx264_predict_lossless_chromax264_predict_lossless_16x16x264_run_beforex264_coeff_tokenx264_level_tokenx264_total_zerosx264_total_zeros_2x4_dcx264_total_zeros_2x2_dcx264_cabac_block_residual_8x8_rd_cx264_coeff_abs_level_m1_offsetx264_significant_coeff_flag_offset_8x8x264_last_coeff_flag_offset_8x8x264_cabac_block_residual_rd_cx264_count_cat_m1x264_macroblock_encodex264_macroblock_deblock__assert2x264_coeff0_tokenx264_mb_encode_chromax264_rd_cost_partx264_macroblock_encode_p8x8x264_macroblock_encode_p4x4x264_cache_mvd_func_tablex264_rdo_initx264_quant_luma_dc_trellisx264_quant_chroma_dc_trellisx264_quant_4x4_trellisx264_dct4_weight_tabx264_dct4_weight2_tabx264_quant_8x8_trellisx264_dct8_weight_tabx264_dct8_weight2_tabx264_predict_lossless_4x4x264_predict_lossless_8x8x264_logx264_mb_predict_mv_16x16x264_mb_predict_mv_ref16x16x264_macroblock_probe_skip__aeabi_i2f__aeabi_fdivx264_analyse_prepare_costsx264_malloclogf__aeabi_fcmplt__aeabi_f2uizx264_analyse_init_costsx264_analyse_free_costsx264_freex264_analyse_weight_framex264_weight_scale_planex264_frame_cond_wait__aeabi_ldivmodx264_macroblock_analysex264_ratecontrol_mb_qpx264_mb_mcx264_mb_predict_mv_direct16x16x264_me_refine_bidir_rdx264_me_refine_qpel_rdx264_me_refine_qpel__aeabi_ul2f__aeabi_ui2fx264_weights_analysesqrtf__aeabi_uldivmodx264_opencl_lowres_initx264_opencl_finalize_costx264_opencl_flushx264_opencl_motionsearch__aeabi_i2d__aeabi_dsub__aeabi_dcmpge__aeabi_idivmod__aeabi_ui2d__aeabi_l2dx264_slicetype_analysex264_opencl_slicetype_prepx264_opencl_slicetype_endstrspnx264_opencl_precalculate_frame_costx264_slicetype_decidex264_ratecontrol_slice_typex264_rc_analyse_slice`dhlX$\%`&hl`&p`%`%`&l`&p`&$%&$%&  $ % & $ ' &    h`&l`%8`(<`)@Dt'+'''''.,.-..<0`/;0x<1B`*B2,C3HC4`C2C3C4C5C6C:C7D84D9@D,D-E-E9 E-,E,R?T?V@[[$[%[&[[['[A[[[@\\\\\_@_0aBbCcCpcCcCcC,dC\dCdCdCHi$LiDPiETiFXi%\i&`i'diAhilipitip$p&p%tt`&t`'t`%t(}$,}&0}'4}%8}A<}@}}GHHt$IJKLMN@0 `*@ؘ0@08`*<@DD@`0`*@0``*dhlpH$LEPPTDXQ\%`Rd&h'lAptx|\$`PdDhElTp%t&x'|AU\V$$(,048t<u@DtHLuPTX\`dh&lptx|%<SSO0S,WW(SSSS S,048<@DHLPTX\`dhlXp&tx%S@S(OH S SS8SSSSpS048<@DHXLPTX\`dhlptx|&%9%999999999999999999&::: ::::: :$:4FYHSDKSKSLSMSMSN$N%N&NNXNNXO[W\$]S]S^S`^Sl^$p^t^x^|^^^^^^^^^^^]^^^^^^^^^^^^^^^^^^^^^^___ _____% _&$_(_,_0_XHaOaSaSbSkShkSkS lSlSlO mOmOto[o[tWt\du\xy|yyy%y&yyyyyuytyy]y{${A {%${&({',{1\1܈$XEDP&11$XED &Fh>|11$XEDP&bc>T1t$x|XEDPR&efQR&xGga0S$)%& X`hd0OOOPO%&Hdx aXghh|g,048<@DHLPTX\`d(i@ihiiiiiHi\i i!iL"i"i&&&&''' ''''' '$'(','0'4'8'<'@'D'H'L'P'T'X'\'`'d'6j@6k\60<7W7BH8l8WD:H:L:P:T:X:\:`:d:=j=k=0XI\I`*tQZ RZRZSZUpUmUqUnU-U-`VpVmV,V-VrVsXpX`(XXXXXvXvXvYvYvZxT_y_wxd|j}o@ p0p~q~sWssssssttt t0~~~\x}lH}TlB ~ }4Ld|؈Ld|؉ $`Uȏ̏Џԏ؏܏ȑ@0@0(@D0@Ę0 @X0D@l0X@t0x@0@0Ti@Ԭ0@ܮ0ȱ@0ȳ@0Զll$Bz(Lpx\l4z|L<d`\(L`,<T`lxi i8H`Lipdpi Pl Hd$@d| d$(4Xx\nmnn,8n<Tmdlnnnm n (n@rXrprrrrrrrr0rHr`rnm n$nh9tr9r4,82<:@7Pmhmp,m,n9-.9,n-.n,8hxr ,2:7/hT++4+X>h>1P1hP>d>t`*x`*5=8,\,ht26 5@lim,mn9m,mn-<P->mn>8>>1<>>Wl>1>1>1 1    6 58 @ 6H 5        6$565($Lp4<6D5H=0,ip1 6(5LT6\5 1id i i   !(!,!0!4!8!?OFr.App0TPx@HspJ00@0S䐝\ `(`p8` L`@ 1<0?OK P.A8@0 (08 \䠍L`80S48p(@8LP(#8(!(Q 8`,DpadWd@0l0h00l0p L80S !Ý d1  ~ 0ߍe0pt(` 8P $HHLV#p@@$0<   0CTS V8堐0epXp ll0 g(pQP1 gPTi\dpE,D`q@p ؀  (8`p찍p pp`E4$吰\`pp\U \9 0p[L  d` |p&00cï#ïJ0lS0cQp|0p`p  0a b^n\lP pp300 0D ?SY}>SY>SYW 1W  W <4t010L Ktt`TpV ʐF─Z (`D8pO㌱|娰G⌠吰P`,P pk8j| jT j0|GHFL 0<@ Y0A Y`0= Y0B Y 0 Y R  Pt哊#$@@8@(00tQꐀtꐠFxZUϠ 0e8 `,pO|P kqp1(pk(0j*aDP``pk\L 0|@H<  0 0`0?Z0@P($P40|\807`p,P\)(  B\VPT)q < QMs0D0SI 900CQDDPUA$&0N0P0442 0P$&4 Ll LpFv@Et@pExp3/4T 40 0 00XP 0HL`P8 400PU2t4Z$q `L@`| 800>,Y?Q 0P dw   X< S?DELMFGNO\]de^_fglmtunovw(P  GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4 p %+080d&AQp7a +    !!DCTC0`4`x`|`fftuuD*/(60>DYLh\ r|003d @H_X4`H|`p+ARcf{ume.c$arefine_subpel$dx264_pixel_sizehex2mod6m1square1x264_pixel_size_shift.8303range_mul.8334hex4.8362subpel_iterationsdia4d.8587x264_scan8block_idx_xy_fdecblock_idx_xblock_idx_yzero.8383x264_me_search_refx264_me_refine_qpelx264_me_refine_qpel_refdupex264_me_refine_bidir_satd_GLOBAL_OFFSET_TABLE_x264_iter_kludgex264_weight_nonex264_me_refine_bidir_rdx264_rd_cost_partx264_mb_predict_mvx264_cache_mv_func_tablex264_cache_mvd_func_tablex264_me_refine_qpel_rd !!!!!!DCHCLCPC0`x`f/fffff0f1f 厌 P n@ [P,(!8/1 3/Q (PD DP@ 0( `p`P"CР?C! 0!:tC?C 0 @DD YC`pO-M*XX@#@-`1P`cp`dP9 `0S PUXp2S hcbXph@|刐l@\pg\fp AAfaphb@ t@ptp%\@T B(I'  0 d jP !P= X({ 0@" 0 "0S$ m}⋍` pCTP001T!C@@@ 0 0P 0  0! P  P @ 0"0  0S @C0CS$(@TM T `أЇX@PL0\@AA@ t@p tpX`pX@P!0 @0PPQ_CS: C 0  0P  0 0 ) 9 )I?C@PP- 0?CP P_C@ 0  0 g@P 0P  0 0 0#P tp@ @@`r%@P  0 0tp\pW0S\B`bXpP"V(;\@p] P@ T ` 0Ш@P  0P 0@P 06   0 f' 0@P 0P  0 0?C 0@P 0 P@ P 0 0?C"@PPB@T#PBC$PP0S6#P$Pe dcЍ\@DD YC$PP\@DD YC`p@P 0 0@P  0 0?C 00L 0?C 0C 0 0ЍOCC@P@" 0?C& 0?C`p@P 0 P @P 0P ),8"L?ClPPlP@h0TS0\h0S[tp ) 9 )I?C`p@P 0P!P@PA`Vk  0Pd ),8"L?Clpplp@bc '@P'Їf  0 0?CP+  0  0 0?Cp`Pp`C  0 1 tpP PPأzI Y II_C 0?CPp`Cp01S Їأc`p`+(;p<6O-EM.0   0 @T !@P@P!aq~B! 0@VPC!X P* -0Q!1Ҁ@B VU\#v3.;B؃`@H`f a@\3%0Rؠ  0P! 0!T HFaV!R 0# 0?Cp`Pp`C 1P`q 0 e!P: j 0P2 @P 0 0Y0D 0@PP@P  0?CPP_C@ 0 0@P  0 YC1CD@D`V\ @P 0P 0P BD #PpQ@>T V P(;0\0S 0 F?T @ <1AP>@P@0SG>@V r0р  >P@ P P6@Eߍ F VT`p 0! 0aV0F !03@P 0 0C@P 0 0?C@PP0 ?C 0?C 0 PF V P;( 00P@AYD[pQ`q ."T 5 ?.t0S 0?C@P 0@X@D 0SD\R 4;0>!;p YC`>`p`0S r р0 >P  u<P @D\@D YCp  0?C` 0?C  (;@8RU CC !P!P ؄U:!?C?C  0 0 0?Cl` 0   P0Cc0p" Rh000P` * \0 P 0S`"0S^ P &3bASP} 0@P! 0P  0?CPP@_C  0# 0  0?C 0?CPf 1P@QA!`Y[@ d@Yi d O,ODp` `pE8F؃= 0tC?C$,V  ) 9 )I?CP  0?C@P@t@l) 9 )I?C 0) 9 )I?C 0h 0?CP 0?C"TC 0 0?C 0 0@pP0 >`@P@  ) 9 )I?CP 0?C@ЁP@t@l) 9 )I?C 0 `p) 9 )I?C 0hf 0?CPp`CTC 0 0?C'@P 0`p 0@pP 0 0H&`p 0 0 0?C !P!# ) 9 )I?CPB"P]: 0?C@P@t@l) 9 )I?C0 ) 9 )I?C 0 hІ 0?C PCTpC`  0 0?C'@P 0`p 0@pP 0 0`p# 0P @P 0P 0P "@PP , < ,L?C) 9 )I?C`pPo i y iIC@s `)"@ 6P\D+@P_CA PU Fp2T~S~ =#PӀ 0р !) 9 )I?CP. T,!`p  0P  ` YC1CD@D\ 0 /`p, < ,L?CP  !." 0?C 0p| 0?C 0`mS @#P؂ꚉ 㙙 㙉I㹟C@7\-P@P_CA(`[ `0SZ01SW =N %P@DD YC`vD YC) 9 )I?C`pPh 0?CPPPuPl) 9 )I?C0 ) 9 )I?C 0 hІ 0?C PCUpC`  0 0?C 0 0`pp0 >`p`Ёiꚉ 㙙 㙉I㹟C@? 0P؂Ci y iICP 0?CP4  @#P@DD YC` (;+0@P@P 0@P 0@Pi #PC@PrO-1Pbpp0@1p0$M\1pV0 A P Yf x8X ڝ=C 410 0S  p ;0S# X!H141p爀` *LDP0 P?@#?T500<2S40`V2Sg t8`V#ppZP  0PZt8`pW P r1㨱 `?ϠЀᑁ 80 0|80 ۀ SW" ఑ՀS `؀?ϠX1 Ё W"`ς?̿ X఑ `Vp`$ЍVS Ct8`p8VŞZ`4:ڬ2儘 pSl'0 \  ; 810R  H1 *LDpP0  P?t? @3 ,3S40` Vt8`XYt8`p8 V(Z`4 0> 0  g#`   pZt8p`Vʰx8p  `D?  k 0 00P3o,R,  fDp ep8xh41 ! 81! ;0S 0Sڃ0H!, 0SD\0 O-0\M A3,@P8U@( , !R< ,@qᘁX@@41QPW |A `!@@, PHPd! ^h! 0P1L1` 0?C ?/O1DP o `1 0?C 0  <0D 0?C/o bR R  Y= Yo1 hX.ʈ1t! 0@Sx1P!!Ё 0 ( &) 9 )I?C@PG  0?C 0 ! 0C 0P@PP@0 0CpRU ZI BPЦ 0 0@P 0P@ PP 0@ 0?CP@ 0B P1@P 00  S0p"R 0Ѝ00D!;XX 0t!Sx1@PV !Qpx80PPx2S@P  0C 0+0D"C 0@P 0  0@DD YC 0 ^`!2 0R SBh  0@PP; 0?CPC0)Xꌂ@PP d  @0E ?C18  ЍO2"R00 0=PX,O-EMOVPPpP  pBPT,P0@P0P SU `PP2S 5,p2 P0PP?C"0 PS090D0D,pPx8T 00Q?C0,P2S! P00S,{DZGD_C 0P,@0SPP,p` 0S5 p2{$'DS:?C 8D {$:'D?C,NϠ"%DPx8@P 0?C{$:'D?C`p 0! 001 P@1C 00D,P1C 00DPp,@tPN4,n0  0?C 0EPE,@< 0?C 0?CEPE8PP; 00D 0 0 Π20D8 !8p =p0pdP P\ ,pP?Tx@e @p2SD @DD YC,F?.Zx( @DD YC( |@DD YC0 R,8 0 00 P R `Pd@%T0䑇!aQ1!bR2(p,PP\bVrWP0`P0b bV' VEPpR@pSP STPW`@phrpPlu h2PP0C0!`p0!lB0 50l2P^ P/hP l— 0, Q,R0P@2S. P2 P P2Sw @Pu PP @ 0P`PpP@2`S,AaPp p33C0\P @ T 0PP@3 Sxp@^uP  PJP  PWP  P>P p PM\P H PN4P  PO P  PPP P@0S(3pS F@,PLP x&`P<  `^   @   @ P P P@p2SQ P# P  P 0SSPp0SP@2S xP d P0Pp2P( @;@PT P,,0ASkS_ʄ@,P  10#P 0@ 2 @0D "\#! @@xttD,|pdtd4p80h@p0倀;hT P000S`!S 0 pC@00THD L HT$`X`    D0DH0HL0| LP `P ! PP`P UP崆ᲆwP hb V0XZd^\ `P㴆 P㴆0bS B0C  'S񏐎vhZ~}|{zyxwvutsrqpon]lkjihg2 s 3T lPS,00P, PP090D!2S,PK P P Eߍ X4|hT@,h4p\(\XXt,plLT(0@T P X FCP A PU@P( 0?C{$:'D?CQPp aV AP #PU@@ 0  YC1CD@D#`pP@tPU0S!P PB@! 90D0  aP#P PxB 0P TP "0 P@2SP2S 2SPp2S  ` @,paAPPpp``@@ᐐHH !P@0S p0␐0 1 倀, A,pP3 P|0S 2S&0H,p Y11倀S ,01P H P 0|0P |@0H@xpH xP xpP@ XPp pHxY㤁Y?X? 0 ?1@@`00@8@hh @PX@P,xp@0ap `T`p` @ PPPPTpT`@P@T8 X 8 80H@0P`pSP0P|x|Xxd,@PQPp0S(6n\,p&@_p`Pp嬫`@T,/T `o P/@0 T /,'P ,BPAt!0 @`b/r'm. , 0 PP`pPx1@P)B>.O?C)B>.O?C`p 0)B>.O?C@P  0 9O0DP l)P sPhf hP02 R P/R02 R0PpPN 2S@ zԀpJ@0h`P(:T0Hp0X|@HP@0X5@R@ PT80@0 @P00:00S@280X @`0hPboP /  4;0T3 =P @P P +P 0 @Tp 0P@|0T  P+P0 XX ,P80 0,2S sS`, @ ,p,0A 3S L@ \ ,P0 Pp0 S ,P P2? S -  |P@|0 S <- oPpl0 S l- bP0 S -  UP0 S -P HR@P  ,P(@P P@P , dP2S 2S P,P` @q@0HP0 3X XD8P@DP8PD YC 0P- P@0H003@P0H003@P0H003@0HP00 3x=R@P7  ,,@Qk(P 0P0`<0H0lXP PP,H@$H@@(P @zPt01R @P  P,pR@@P p ,AP T DP),'P @'P0 6Pp2S& l0  &P "8&P &]6  0l& @@PFPP,3S  0 0?C13P3Ppp2SL16P1@P 0AT Q` `P 0 V 0P`p 90D 0px8В \rP0x0T B Q` 0` VЈYX:` p 0 0?C0 P`0v`|`P0s00pp\ @jT|@␀pCxC 0?C& 0 P &P ؆VD㔟CC`0 0 0C 0-#6+N?CPd 0i0D@ 0  0 0?C 0 0 ' 0  0&Pp 1p0jTk QP 0PbVwtC 0?C& 0vt!P \!P ꀀC( P |@PF? 1 b 1,0,00(P_C@͠"0R@@P@ 0 &qJ?W>F? @`P&PPuqU 0@#01@WJR2凑 0Pp0P6I !` P ph2HPS J0l"!0APT0Tq BP0F?W# 1P W WXH0S=# 0$P&$P$#1W? W0q W:HpDN00(0(0 0 0C YC1CD@D 0 0?C 0U 0S 0 0iP @DJt[q|XRWژ㔐@匑hX@0pp0P 0 Pg P@pp 0PD0DX@PcP@ U` TT 0Sh1P@` 0?C U$p@吀XPZhpPXPphp0pW@PC 0ї6@v`  00 1T  @SP 0P  0؃8P@CЃ|PPP圐Y @P|p_CDPnꄟCC 0P&Ps ؆V:!?C?C e 0i0D$  0 0?CJ 0 0 & 0D@0 0 0C 0-#6+N?CP$P@pG&P@ U@@T 1@ 0PbV 0tC?C&؄#APpZ|PP Q|pf! J@ 90D 0  0PP"( ( PH0S%W#CW'R 0?CPJ?0q=N?R?lPp 0xp@PD 0D pX@0PcP@U`2 j0 0  0 0 T01T 1 0Rh1 0 00@Ap@x 8"N . P$ 0㠂hP P %0j%#g#P ( 0?C( P|PUڜ0SV Pp6x`|pPX @PXCP0 0C 0P@РЄj, 4t#I?C؄ P0 X T0PP# 7 p-C?C 0 P 0?C  0?C@PP  0P:( +'7)M?C@PP? , < ,L?CPL \ LL_CP 0CР C @D@DA00P X T0PPPPPmh 0?CP %0+GWIM_C$C 0$%#0u 0ꔀ圀U P|BD 0P DTP\ 0 L  @  0S 0S P TH<6C-@P M0S p2S Ѝ ' .?(D?CP px80PPx2S`p  0C 0+0D`p"C 0 *+`P YCP1CD@D 0 P6p@-P@pM0S P`a &1R``V^0S P`G &1R``VXP \ l2S hl"Q`P0P`0S T3S 3/hl"QpЍp`j9F`s``j)F`r`P •L 0 P  0 @ 6O-TMp(;H P0h"( R\ Jl21 B`PPr0C`2pbS0 (;0\@T1Tt'}pp7 8 06,0@R !# @  0S㨼[(;00`20S0SU[a 14@V 0S 40 c@(Y I@x0 |2P  0PЀ 0 ?X NT P0L0@,;0H@EP E X/D @@6`f6@ ?Cf&f&F]f&f6f&F?CЀ 0?C[ 0[ 0TЍS] p2S 0QV S, YC1CD@D먼@t,K (1Ж! ,1! 01!먼(; 11y?1L1P1@(#$\Õ 0 @, ,Z@d3.;B!Lp@`p @\#5 PS>  !P !! 0P'"P" ,  TLpP"`PmHB0 @,0S ( S 40 R  `4@ 0R 00R$dS%6Set(p80%_0 }!Dw?C Pk 00D[S@ r e= 1D ,;0t0S 8 400?@2S|T0sC0q0P0@ @T9 v?t8 LC@P LC@T@ @) [@p pOֿ`0S P`vϠ p T@v  50CZ <Sh H@ 88"@DD YCUZ` ,;(!0 !0Z`u@W  @MT` Z@` ,; (101P Z@ LC<P<$4S ? 0S H@$Pc ," 0P ?8 0P  P> \P9 ?@DHD YC5ZPp (! !0ZPe@V  @TP H@$`P0PP,h 0, 0P0S]  "9 ?C 0P <P&' "9 ?C 0P: ?@DHD YC5ZPp (! !0ZPe@V  @UTP H@0P`P4P] @, 0' 0Pr ! 0P9 ?@DHD YC5ZPp (! !0ZPe@T  @TP HP4`P6 @$P; <$D@0P02 <?@P<`p 0P$`p 0P,;P(!P@X0 L@TH  ` /L0T PX ) 0 \@0P0@j 0FH6H@DD YC5ZPp ,+(! !0ZPe@V  @WTP6Q0 @@P' 0 0P $HD0P0 ,;(!@X0P $@TLH@  ` 8+,L @@ `0 A QP0`v`VPV0@0PH@0P0@H@t@PI6?0@-@Hx2|"PP00"60Rp@-@HP ,;0t0S(;6= 41810LDaPP?x2|"PP00pDD`@-@6PP1Sʰ9P0t240@DD YC YC1CD@D 0?CEP0E0t?<0@DD YCba YC1CD@D 0?C(!1 EPE8!t2 t0S/PU2Of p0p \ ppQp""t h " 130 0?CEP0E0Pt0l  @-&2` @S\0 !؃0S6S%1X2 !03/6SXr %1!03/6&2„"03/O-6Pp6 ,M 0p v<h8@ p00pl @@ R@,;x847@`LTL儠` `\2S <S SP l00S9|9330 `Qs`(;͟0 X\PXƕp XУ$L!L6`6` 0p (,`04p8@<@PXP2S @0 Rm@`!P@0 T@2S,>S . P\>S XP.T>ΕPhP{2S/ (;0t R* BT'x,X 4!q`爀 0p0Dp 4@T 0PQ xH0 0PH:0S5 <L@DS Djh YC@) 0 0l(;0 8!+ 0 0Sl`00S6x(@t\# Px1pP1X`VK P1h`hئ&1#ZZ'@%Z0T`Tg&T` e ` pef2S Хe[Z*P1 p ᇡ᧾ 0  إ T1` 3!0cP001?¿!% R0&lpX+`  0+P0M (;@\0S;͠0 0 tx <0D =L1e0`P1lp`V 30cV`ah t1`p 0 0?`p`}=`%&%!0Ѝ<S?(;d"0h` d"0S6 L@DD\B4;0>!; Ddr`bP 0d2%`QP 101&nwl⼦D`@ 0p0Sjڠ0 @S ` p Ph& 0t` 0cS t`-`L1X0(+X lD@ p'!&`0pefL1 }P1e>ؤZ%& 1Хt <0D0 |0S ; 00lx2|10t"S` ?Ӡ=(@@j@e@DD YC) 9 )I?CP 㙹 㙩I㹿C`) 9 )I?C 0) 9 )I?C 0 0?CP 0?C%VC 0 0?C 0 0` p 0 0 +L@DLD눰l DPLP( YCa`hP 0 gL(;0t Rb B (;0 Ri I  x <0D0 |10SO'Ѡ PЧ=r  0?C`P`v`^ L 0 `LP\HLP<l!6 LئLDЪ`h YC@`p) 0 0  0i>SP 6 ئL YC 0D  x ` \\pP1\ÐG-&@$0`P0).(MҀ? ! 0x1 0؆ᜄϠᔜ)  @BTPp?؁BYX*@@PP 0$PЁ P , A 0P;  ,@ 0Ё ;d(Ѝ @@O-v@$M@DH@D YCFT[_yo0x @S y T[p O@P@TP . PPlP1[1y?1~  0Pw5Ŕ S ,+$! !0 S `0@aa000v?PpU YG N 0P>[@fPv0@Ж0 T 0@@ @ voAP0 P @ UP0S[֟ @vvo0@P[$Ѝv?@[֟PЦvo p@5c 0C) 9 )I?C9 "?C P 0P @ 0 U 0@f Pv0@0 T 0Pvvo0P@ U60PO@LO-6$MP`[Q֯@"0R&p9 œ ^ ,+$   Rp( n&   & &  00L@DD̕  DP T LLT T00T0L [@$Ѝ  YC01! 0  0 0 PO-Pp`r F NN     FF    && ''   `` xx     U6 ͠0kKЊk`Kتd"tBxR``d"tBxR`O-@Q6@0MPp 01 a$`أ P $PؤФ 0 P P$ $ Wp# ppp3@P TЍO-param.rc.psz_stat_inratecontrol_init: can't open stats file .mbtreerbratecontrol_init: can't open mbtree stats file #options:options list in stats file not valid #options: %dx%dresolution specified in stats file not valid timebase=timebase=%u/%utimebase specified in stats file not valid timebase mismatch with 1st pass (%u/%u vs %u/%u) bitdepth=bitdepth=%ddifferent bitdepth setting than first pass (%d vs %d) weightp=weightp=%ddifferent weightp setting than first pass (%d vs %d) bframes=bframes=%ddifferent bframes setting than first pass (%d vs %d) b_pyramid=b_pyramid=%ddifferent b_pyramid setting than first pass (%d vs %d) intra_refresh=intra_refresh=%ddifferent intra_refresh setting than first pass (%d vs %d) open_gop=open_gop=%ddifferent open_gop setting than first pass (%d vs %d) bluray_compat=bluray_compat=%ddifferent bluray_compat setting than first pass (%d vs %d) interlaced=interlaced=%4sdifferent interlaced setting than first pass (%s vs %s) keyint=%d different keyint setting than first pass (%.*s vs %.*s) qp=01st pass was lossless, bitrate prediction will be inaccurate direct=3direct=auto not used on the first pass b_adapt=b_adapt=%db_adapt method specified in stats file not valid rc_lookahead=rc_lookahead=%dempty stats file 2nd pass has fewer frames than 1st pass (%d vs %d) 2nd pass has more frames than 1st pass (%d vs %d) in:%d bad frame number (%d) at stats line %d in:%*d out:%*d type:%c dur:%lld cpbdur:%lld q:%f aq:%f tex:%d mv:%d misc:%d imb:%d pmb:%d smb:%d d:%cref: %dw:%hd,%hd,%hd,%hd,%hd,%hd,%hd,%hdstatistics are damaged at line %d, parser out=%d requested bitrate is too low. estimated minimum is %d kbps qscale[i] >= 0rce->new_qscale >= 0vbv-maxrate issue, qpmax or vbv-maxrate too low Error: 2pass curve failed to converge target: %.2f kbit/s, expected: %.2f kbit/s, avg QP: %.4f try reducing target bitrate or reducing qp_min (currently %d) try reducing target bitrate try increasing target bitrate or increasing qp_max (currently %d) try increasing target bitrate internal error .tempwb#options: %s .mbtree.tempfinal ratefactor: %.2f failed to rename "%s" to "%s" frame >= 0 && frame < rc->num_entries2nd pass has more frames than 1st pass (%d) continuing anyway, at constant QP=%d disabling adaptive B-frames in:%d out:%d type:%c dur:%lld cpbdur:%lld q:%.2f aq:%.2f tex:%d mv:%d misc:%d imb:%d pmb:%d smb:%d d:%c ref:w:%d,%d,%d,%d,%d,%d,%d,%d ; VBV underflow due to CRF-max (frame %d, %.0f bits) VBV underflow (frame %d, %.0f bits) ratecontrol_end: stats file could not be written to underflowoverflowCPB %s: %.0lf bits in a %.0lf-bit buffer GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rel.text.unlikely.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4 \7 %+40 t) CPK2` Z0&c6sp67mH D #18;GVxjt| `p HL,,4,(>8>TC$``CLM](\$h t#)\/l5;A GMlS,Xx^djpXv| t  4x  0 l l0<   40#)$/5;0A@ GH ML ^wSY_eTk$p(u{\ d|l4@8  p (=C`CterD,M< 07?HY_qylhP0 8+ D?dV@r@ ' Lratecontrol.c$apredict_row_sizefix_underflowqp2qscaleqscale2bitsfind_underflowcount_expected_bitsx264_ac_energy_mbupdate_predictor.part.0get_qscaleclip_qscalerate_estimate_qscale$d.LC0.LC1.LC2.LC3.LC5.LC4.LC29.LC31.LC33.LC34.LC37.LC38.LC40.LC41.LC43.LC44.LC46.LC47.LC49.LC50.LC52.LC53.LC55.LC56.LC58.LC8.LC59.LC61.LC63.LC66.LC68.LC70.LC71.LC73.LC74.LC81.LC78.LC82.LC80.LC83.LC20.LC22.LC88.LC89.LC90.LC91.LC12.LC11.LC19.LC13.LC14.LC16.LC15.LC18.LC17.LC84.LC76.LC9.LC39.LC45.LC42.LC48.LC51.LC54.LC57.LC96.LC97.LC98.LC26.LC27.LC28.LC21.LC6.LC7.LC36.LC99.LC60.LC69.LC35.LC79.LC23.LC24.LC67.LC32.LC30.LC77.LC10.LC64.LC65.LC75.LC72.LC25.LC86.LC87.LC85.LC93.LC92.LC94.LC95.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC112.LC111.LC110.LC114.LC115.LC113slice_type_to_char__func__.8547__func__.9160__func__.8675__aeabi_i2f__aeabi_fmul__aeabi_fadd__aeabi_fdiv__aeabi_fcmple__aeabi_fcmpgt__aeabi_idiv__aeabi_dcmplt__aeabi_dcmpgt__aeabi_dmul__aeabi_dcmpeq__aeabi_fsubpowf__aeabi_i2d__aeabi_dadd__aeabi_ddivpow__aeabi_l2d__aeabi_ui2d__aeabi_dsub__aeabi_dcmpge__aeabi_dcmple__aeabi_d2ulzx264_prefetch_fenc__aeabi_f2d__aeabi_d2f__aeabi_fcmpge__isfinite__aeabi_fcmpeqlogexp__aeabi_idivmod__aeabi_d2lz__aeabi_ul2dmemcpyx264_loglogfsqrtx264_rc_analyse_slice__aeabi_f2iz__aeabi_uldivmod__aeabi_ui2fx264_adaptive_quant_framememset_GLOBAL_OFFSET_TABLE_x264_exp2_lutx264_log2_lz_lutx264_log2_lutx264_macroblock_tree_readfreadx264_reference_build_list_optimal__aeabi_d2izx264_ratecontrol_init_reconfigurable__aeabi_fcmpltx264_ratecontrol_newx264_mallocx264_slurp_filestrncmpstrchrsscanfstrstrstrcmpsprintfstrlenx264_freeceilx264_reduce_fraction64strcpystrcspnstrtok_rx264_param_parsefopenx264_param2stringfprintf__assert2x264_ratecontrol_summaryx264_ratecontrol_deletefstatfcloserename__aeabi_ldivmodx264_ratecontrol_startx264_encoder_reconfig_applyx264_levelsx264_ratecontrol_mbx264_ratecontrol_qpx264_ratecontrol_mb_qpx264_ratecontrol_slice_typex264_ratecontrol_set_weights__aeabi_d2uizx264_ratecontrol_endfwrite__aeabi_ul2f__aeabi_l2fx264_hrd_fullnessx264_threads_distribute_ratecontrolx264_threads_merge_ratecontrolx264_thread_sync_ratecontrol<DL\h$pt,@Tl,<P8 H T d t            $ , < D T    @ P       ,Pt(48@X` Pdx$(<Ph ,4LT`dx 4Pp 4@LP| (48t(8D\t$<`t $(8HXt8HTp(,@`|@Plx<4,Tdt$ D H X `       !!$!0!@!L!P!d!h!t!!!!!!!"P"d"""""""#<#h#x########$ $4$8$P$|$$,%4%8%@%D%T%p%%%%%%%%&&&(&,&d&&&&&&&&' ','D'|''''''($(x(((()),)<)X)d)|))))))))8*@*L*T*`*l*x***++(+<+P+`+l+++++++,,,0,8,P,l,,,,,,,-<-L-`-x-------.$.8.`.t...... //8/l/|///////00 080T0d0t000000011$1111112(2<2@2L2X2d2p222222 33(3@3P3T334 44$404<4H4T4`4l4x4|4444445$505P55555556p6666666677,7@7x7788894:::0;8;L;;;;L<T<|<<<<<<<===$=x=====(>,>0>4>>>T?`?d?@@B BBBBC8CTC`XC\C DDD4E<^?@^@D^AH^BL^CP^DT^EX^F\^G`^Hd^Ih^Jl^Kp^Lt^Mx^N|^O^P^`^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_^_(_0_ <_L_h________```,```t`x```````` a4aaaaaaaaaaaa bbb(b,b0bDbHbLbbc(cHclcccccc dd(d0dDd\d`dddddddeeDef(flffffffggg gDghg|ggggggg hThh i|iiiiiij@jpjjjkPkkkk$lXllllllllm(m0mmmmmmmmnnnnnnnoooHo`opooooopp0p8pHpPpdppppq$qHqtqqqqqqqr0rDrxrrrrrrr sxssss`txttttttttu$u4uX 0N 0 P@QP@0XX^  0 P@QP@0XXn/  0P@QP@0 X0AQ\L0 0@DpPH`P00\`T0 0X00D0PD@S\  \0D0PDS D0PDS@00σ/D?HLPT X0\ `0@<E-`0@P a0a0刁 a03?3 { Rp0B80 SC40 P0pa80 a p00Q0a `200 00Q0A80p pSC4zp00 Pd0p,l2/  0 l p00 P p` 0l, p`1 2/ 0000G S0 .0 1 0 0 0 R0B80 SpC4 ɟ 00ȀX0`1 0 ` 00 X0l h280 00 R0B80 SC400Q0p`7pp0 ` 00Q0` c200 00 R0B80 SpC4T00P0a<Ͽ0 a 00Pp` 0a `2 2/ 0000H S0p p`0 7p0 00 0  $00CppwpAd7WG00ӠQ>0b" `7 2/ 0 p00(00C|A6\L0 0 ӠP0a c<10 00,0qA6QAt0p0 Ӡ0 Rpb 0 ` pb1Œ <Ͽ0000G0 S0 0 1 4000 B80R  0 1  000<0S@P01 R I0 1@ p0 0 0 \M `0,qAşQAT P Ӡ\ `1  l 0000R 10 00  "2/ 0 10c00@B00P 0 1@0\ 00  0 0C0S0 0 3?0 0 00   0@P0 0 3?00 00<0S} 1 S  p G40R  ;01  800 0 B=P1b0 ` 00x` qa pS sh P>PP U `e@`eD4O@PU%ePff e2U5_P^   P0EAP! b  c 0>! R BB Q!hЍpP^ @4O@P @P`"@^n@ `2 2/ U%@2/ tp@-`MPP @P  pp0 l0 P0 Ѝpx``\0 A- R P`Bh0p@p@VhMFd0@qp`>`>@` V pf@pfU5_P`V&@f`gw @f2f6o`0^/@n$c02/ ^NBQ!hЍ[`^nPnpdD Pg6G4O@+^ @n.eU @n2> P@P@` Td @`>>A-0hM0 @ \2/2$PU^5]@n$c02/ ^NBQ!hЍ(kPpPf UH`fe Pe ED Ph6H4O@@P T$@dpeU2W @g5_P^ (T@DxP`E"Pd$6%@2/  xPRU `({`@T P@4O@ @xPPRU P@P@` Td @`>>|"p@-rLhM30@RE@] ^ AR   BRPBb`P"2/ UBE@U5_P^dPN`P>U E U5_PRPB@bP@ 2.2/ EPCE @ @Pe20! b  c -0>! R BB Q!hЍp([\-0H @cc1A 0c0<Ͽ0SÌc0a c<33?000S d30S^ 1S[MM8Pp (@$p^`N`Π<Ͽ[aK`0k`9;0SC 0QA Qan `>Qa` a313?00P@S^> 3?0^N>n103?001@c0Ġc <Ͽ ^0NBQ!tЍSCcÁ0n c11^ld3 01SÌm(p@-M`! l0U-I$D0 ->  PP @`P] !0$")܍p`p7Rp@-]M0MP` `0V!N#D0 -> @]  0wލڍp0  T 0 0O-`p MyWpÛ p( Z $4  Q `4@ QUʓ!R RYY [Y\0"S0C1RY` 2W pGqSY`(–0\Yd000s03\Yf(Ö SYm#R Ö0 !? @PR Y !@ ЍnW p dWppX! 1  !0   Ϡ0 Ϡ 0p  0  0P000s03P  0(@@A Hp@$        (!  ")081*#$+29:3,%&-4;<5.'/6=>7?      !("#)0*$%&'+12,-./3894567:;<=>?    (!   P!   @! c     % %* "   !!$!$&!$&(!$&(*    ! !#EH, #I>Gp{d7* c@@@ c^@@ @ pH @ h.H @h.H @XM@OT@4T'' PF66< KP N N<( Na<) P$*"P$2 @V@XX34$$4t4tx264 - core %d%s - H.264/MPEG-4 AVC codec - Copy%s 2003-2014 - http://www.videolan.org/x264.html - options: %sleftAVC-Intra SEI is too large (%d) frame MB size (%dx%d) > level limit (%d) DPB size (%d frames, %d mbs) > level limit (%d frames, %d mbs) VBV bitrate (%lld) > level limit (%d) VBV buffer (%lld) > level limit (%d) MV range (%lld) > level limit (%d) interlaced (%lld) > level limit (%d) fake interlaced (%lld) > level limit (%d) MB rate (%lld) > level limit (%d) GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rel.data.rel.ro.local.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4pV kX %V+V0V<,] 8 o@ O2L]^0D_&gj_wpj_7_bB h 22$848LDpD4F8FF %p*tGHHJJQQ,R0RR/|RHV4:?D I4N\SX^ p 3@$4@t@      !0<IVdi <%x2@48< pD8FG(HBJ_LqHNTQ0RRset.c$ascaling_list_write$d.LC0.LC1.LC2.LC3.LC11.LC4.LC5.LC6.LC7.LC8.LC9.LC10x264_zigzag_scan4x264_zigzag_scan8x264_ue_size_tabsar.8151x264_cqm_flat16x264_cqm_jvt4ix264_cqm_jvt4px264_cqm_jvt8ix264_cqm_jvt8puuid.8197num_clock_tsavcintra_uuidx264_cqm_jvtmemcmpx264_sei_write__aeabi_i2f__aeabi_fdiv__aeabi_f2izx264_sps_initlogfx264_sps_writex264_pps_initx264_pps_writex264_sei_recovery_point_writex264_sei_version_writex264_param2stringstrlenx264_mallocmemcpysprintfx264_freex264_sei_buffering_period_writex264_sei_pic_timing_writex264_sei_frame_packing_writex264_filler_writex264_sei_dec_ref_pic_marking_writex264_sei_avcintra_umid_writememsetx264_sei_avcintra_vanc_writex264_log__aeabi_idiv__aeabi_ldivmodx264_validate_levelsx264_levelsHBhB$B,:,,:,,,,| D H E F,,,,,,,,,,,,,,,,,,,,, ,,2,2,$8,(8:,8:08,LD,PD,TD,XD,\D,`D,dD,hD,lD,EC4F,HFNXFO`FP|FQFRFOFCFSFSFSF,FFG$HCH,xICJ,J,LCQCQ,Q,QZRC,R,XRZRCR\R,R!xT^T\ U\(U]LU\|U\U\U\U\4V\HV``LV$PV%TV&XV'\V(`V)dV*hV+lV``,,, ,,,,,macroblock.o/ 1392656088 0 0 100644 50436 ` ELF(X4( 10O-SqMX  Qxx3<  够0 甠 @@ 0Là;/ $ Px?0 00 0 Pa AUF$  U ](P13/Ѝp  c  `帏0,0I,dt0b04`傰$0 (0 d00S1 2 B 0  pm|3/; Ep! PU ,` p`Qp;` (d  d0R0͌( 13/d00S`2 $0  3/80S 3 $>C3 0P 0 SSPP(>` 0 SS``?̄<0_, p`p p  0 000;0S?Pa ?  0P` 0 SS``(>p 0 SSpp?㠁 _<P0  ̄P PC 3 = $@0C 3 = 4@0C 3 = 8@0C 3 = <@0$3 03/$3 03/D$3 03/D$3 03/$3 03/8s$3 03/$3 03/5$3 03/GB 02 p0.3/0P W02 00@-3/0n(3 03/@\@DP DP P00` P(3 03/@P@  DPP P0\`(3 03/@P@DPD0 P(3 03/P ` `$ (`,``8`4``PP<`Y(3 03/$`(P `$`8`4`(,,< Pe(3 03/$`(P `$`,`Px# 0 v;PUPP( P! 3 0Q3 0s`9`Dd0ld0  0 $4 p \0Vbᇂ\RB\pP3/ x, 03/[$ 03/lV p 0\ 00m< F3 00Pc ̃|ȣ 0 PO?O | p0  @ S ,    0?OzR᳠80R?n^_Ox<㵀0̄_, xz  ?OxR᳀80RPP?n<OuP̄_,P0 u0x 0  0 S ,    0ᰞ04R &0  3/pP& 0 3/Pz(H XZ8PUhr   03/PRTV,03/XZ\^L`(` P8`D@2 &L 0 3/pP) D娲 Wz# $( 043/ 03/PUA/2  0,  `@0D4080C3 0C3 0?DELMFGNO\]de^_fglmtunovw(P@D HLĈ           GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4 ܾ( %Ĵ+Ĵ0Ĵ80&AQp7a8 ) (@ x % %&p..= >xaaxx`Бp*354>DJTVdht z ""9KR8$l %%.>$m">Tj,macroblock.c$a$dx264_mb_encode_i16x16x264_scan8lut.2780block_idx_yblock_idx_xblock_idx_xy_fencblock_idx_xy_fdecblock_idx_yx_1dblock_idx_xy_1dctx_cat_planex264_pred_i4x4_neighborsx264_mb_encode_chromax264_quant_4x4_trellisx264_lambda2_tabx264_quant_chroma_dc_trellisx264_predict_lossless_chromax264_copy_column8memcpyx264_predict_lossless_4x4x264_predict_lossless_8x8x264_predict_lossless_16x16x264_quant_luma_dc_trellisx264_macroblock_encodex264_mb_mcx264_quant_8x8_trellisx264_macroblock_probe_skip__aeabi_uldivmodx264_noise_reduction_updatex264_dct8_weight2_tabx264_dct4_weight2_tabx264_macroblock_encode_p8x8x264_mb_mc_8x8x264_macroblock_encode_p4x4***T*@ D H L P T X \ ` d h l p `+t `+D****,4,\ , ,D",l",h#.x#.#.#.$/4$/%'2+*`-3p.t.x.|....../01*304*6-6)|95=====>>> >>>>>|@1A6E5 p@ZPQR 0@G-M`Sp`@P 00 a o<a 0FFm-ap8 p!0 P0pp S  PS00-Xt` wp`bw%( 'tV Ư&ƯJ/ Z3Z HRP:p;P p /U2 0 0;/@ȟ(ȟI( YCY :;P  ( U1 0 0;(R2 3 4 5 5 5 5 5  JBZ `B`dxЍ+ , - . . . . .  IBY BV'tg/ PDO-MD0 $@$  P$ 8S 0P p  3/0尐YP4 @0岐Y 崐Y 嶐Y{ 帐Y 庐Y 弐Y@ 0∰ᾐ 0ఘCD3 00030 00y)G `WɟD5 W@@L`0@T`  @TW   \XJ{ ` 0ఘCZ   G  TXZЍ ` 0ఘCZe 0 帐Yw  ` 0ఘCZP 0 庐Yk  ` 0ఘCZ; 0 ^ ` 0ఘCZ) 0 1 ` 0ఘCZ 0 l0 㰑@`Z   0 14,< S O-Ԙ @cS ` " ßM 000P0p;/2 0?Ze `@㲐 Y   0ఘC 0\  @Z0⊠∰Ẑ 0ఘC$2 0020 00y)G `WɟD# W@@d`0@T`  @TW    \X J{ G  TXZЍ0@ C 1030 0ఘC 0 S! 00@?T  Y0 @?T ∰ᾗ 0ఘC  80 0 0y 1 0O-@S 0P blM 0@ Q1 0* 80 8)80 0c0SS8U? 90Q  S8P7 h F 9 lV5Y Y  Y Y$ +?0 0{`;    R      Y@ 10SE ;p[ V`FE E pEF!W D ˌ000 0j٪:ZZ V pW0&Y k 狱 j7 a0a㉑ n11^Π`nN 11  R_  XQ`j ^Nr t n79 ^NQ n~9r7p ^pQN t n79 ^QN n~9r7p ^pQN t n79 ^QN n~9r7p ^QN  n19 ^N n91 `XV \ a"2/ 6 a k  VP90  )Y Y +: 0{0`;    R       Y@ 10S ;0p[ V`FE E pEF!W D ˌ000 0j٪:ZZ V pWp 6  b  狱 j  Y# $0 0000` V s{ MR  X RQT0S0 V 10SF ; R L800D1S< ;0S0;0S8Y  6 a k lЍQ1 0* 80 88 ^?0 b0SS8U? 90Q  S8P 0 hF  9 lVu VP90`  ) 90SY Y +6 0{0`;    R    Y 10S;p[ V`FE E EF!pW D ˌ000 0j٪:ZZ V Y Y  Y YL +50 0{`;    Rr  Y 10S ;hp[ V`FE E EF! pW7 D ˌ000 0j٪:ZZ V 90S0; c;0S Y```BY ;Z 0`V p0 1p0pVc3=00V;0S 10S$00 s 0s408= aR  = 0$0 0sS0sS50`= aR@  = 0;0Sg8` 1Bs0 pp` b<00m  e0g0QRo00m  e0g0QRT00m  e0g0QR: ` 0k/S 200m  e0g0QR  `0H 0 $ H \8H 4x  0 0H 0 @0H 0;X c ` H 000m,m<   ]0_0QRi000m,m<   ]0_0QRH000m,m<   ]0_0QR'X 01 0X 1 q0m,m<   ]0_0QR  2B< p0 2B< 0 2B< 0 2B< 0 ;pW W   ?0S  0``8`0 ȀC00S#}CmKk s0DHL PT00X0 000900S+3}Sm[{ 0 (,00400 000BD6剃H0V? 0d600 `V< p@0[?0 0 3= 00@V$ 0 1@0 pVc mm̌000  0S00\ @V@` [``P90/ 4+ QDHLP` TX`  R+- `( ,` 0 4`  ` 4; Z?C00S8=<@(0(0 )Q Q 90S SY  Y 0IS);0  0`p  gF!R   !V" "R   ?㰉0S q 1S 0S ;0S S 00]?0SO0S 0SI k0S S 00H0S S 1c S 0S} ;0S S08 S 0S 0 ?000+3 3@ c0r0   ;pW  W:  G ~ ;`V V,  F | ;`V V  0F s ;`V V  F { ?0S    K<凰,p0(` 0$ 00S񏐺wN 0\P-o< 0l|  !`Vp 0?=o 0 l|000  ,, ,,! 0 0 10  0|>o 0 |l00 0  0 1 0 0?o0 |l00 0 0   0   0 10](y$ 0VY\ 0-0 0QRS4U+;0S! @}Bp`ppG 0 `V 0 0m̃0^0Y[QS   = 00s$ 00 s408= aR  - &$00sS% 00 sS50`= aR=  - ;B+p0` V/``( ,` 0 `V?`V 0 0 0[/Q S:000m< RL  2= 0;0S1 ` \-`Lr(p`, (0[?Ⱐ 0X p 0 0m̃0^0 QS  `0\` `)cᨹ` 0V/  ) ;X t)   0[?ⰐK 0  m+ 000S?+ 000S4?+ 000SP?+ 000S?0S|?+ 000SR?+ 000SD?+ 000S6?+ 000S(?+ 000S 08?0?+ 000S 0 + 000S 0 ?0>+ 000S 0 ?0H>+ 000S 0 ?0=+ 000SG 0 ?0: 5;00S0 0 s?0 00 00 00 1SM 0W8?0 00 00 004 c 0h X  > ' 0V ?0S ' # 0``8`0 Ȁ X?0 00>% & ' ' x R   S 0 ?0 000Sq 0 ?GS 08?0 000S 0 X?D0  0  0 0 0 0 0  0 0% & ' ' n & ' '  & ' ' a ^ & ' ' ; $%&'45<=67>?DELMFGNO\]de^_fglmtunovw(P x264_cabac_8x8_mvd1)5-Cc=/9%SsKk[{Gg!    UY]aeencoder/cabac.c0GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4b \p %b+b0b82\dG0pd&Pd`pd7dpHg ; (l1    P T1T S g{@ PP  8    $!> X?T_ _34<DL%T@dWlc|o} "LD Xl) 2Ob~ 28 $E\ XasRcabac.c$ax264_cabac_ref_p$dx264_cabac_ref_bx264_cabac_intra_chroma_pred_modex264_cabac_cbp_lumax264_cabac_qp_deltax264_cabac_mvdx264_cabac_block_residual_422_dc.isra.2.LC1.LC0x264_scan8x264_mb_chroma_pred_mode_fixctxes.8261coeff_abs_level1_ctxcoeff_abs_levelgt1_ctx_chroma_dccoeff_abs_level_transitioncoeff_abs_levelgt1_ctxblock_idx_xblock_idx_y__func__.8301x264_mb_pred_mode16x16_fixx264_mb_pred_mode4x4_fixx264_mb_partition_listX_tablei_mb_bits.8365x264_mb_type_list_tablex264_transform_allowedctx_cat_planebase_ctx.8385lut.2780x264_cabac_encode_decision_cx264_mb_predict_mvx264_cabac_encode_ue_bypassx264_cabac_encode_bypass_c_GLOBAL_OFFSET_TABLE_x264_significant_coeff_flag_offsetx264_last_coeff_flag_offsetx264_coeff_abs_level_m1_offsetx264_coeff_flag_offset_chroma_422_dcx264_cabac_mb_skipx264_cabac_block_residual_cx264_count_cat_m1x264_significant_coeff_flag_offset_8x8x264_last_coeff_flag_offset_8x8x264_macroblock_write_cabacx264_cabac_encode_terminal_cx264_cabac_encode_init_core__assert2x264_cabac_encode_flush\;|;!,;L;P!;;;!d;|;;;x;;<;;;@;\;;;;;;;;;(;8;H=T>;;;;;;;;=>8;@!D!H!L!;;4;X;|;;;H ;l ; ; > ; ; = ;$ >\ ;x ; ; ; ; ;L ;h ; ; ; ; ; ; ? @$ A( B, C0 !4 !X ;( ;L ; ;; ;8>T=`;p>;;0;d;;?BA@F!!GH;;; J<;X;l;|;;;;;;;`K;J$;@;T;d;t;;;;;t;,;X;;<;DJ`;x;;;;;;;;;;J;0;@;P;;;;;L;;E;E;Ed;;;< ; ; E ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !!!!!! !!!!!!!!! !!,!;@!EL!;d!Ep!;!E!; ";|";";T#;p#E|#;#E#;#E#;#E#;$;,$;<$;%;';'EX(;);<*;L*;h*;x*;*;*;,,;<,;L,;l,;,;,;,;,;,; -;$-;<-;\-;x-;-;01L81;1;1;1E02;<2;T2E2;2;3;4Ex4;4E4;,5;5;6;p6;6;X7;x7E7;7E7;7E8;8E08;X8;h8;$9;09M9;9M9;9;:;$:;4:;D:;T:;d:;:;:J:;:;:;;;;;L;;|;;;;;;;;4<;=;(=;8=;>K>!>!>!>!>!>!>!?!?!?! ?!??!??! ?!$?!(?!,?!0?!4?!8?! 0m<00S, `P0m<00S[pO c%35HŔ a%+ 0;0S 0;0Sy 0;0S񏐫XL@9%0Q?Ŕbe a"3!2/ %5 %nl%0Q/Ŕbe a"3!2/ %5 %=%0QŔbe a"3!2/ %5 %  a%15 a%156 a%15 a%15%0a5$  |  L `\T($hlL U|PU\ c30< l3?05% %0cP0SQa PpgŔPa01 Pe% U%3?0 5 Ŕ(10c05 _ 0W Q 5_P0 0 0 RRpb B Q Ā  [V _ ZQEu`~t d5"@2/ T0 P@00 pQzT d7"@2/ T0 p@00 PQqt d5"@2/ T0 P@00 pQhT d7"@2/ T0 p@00 PQ_t d5"@2/ T0 P@00 pQV dT7"@2/ T0 p@00 QMt d1"@2/ T0 @00 pE d7"`2/ @ 0ZV p0@0> TR|@DTT@ PpQ@DtT p@PQ@DTT P@pQ@DtT p@PQ@DTT P@pQ@DtT p@Q@DT @p `t@DZV p@p\5 @ 0bh ` b p``! g5 5U0܅3?325CUስ pPz5 %0p< / , PXPm< r  0 0 0S0 ml0` 00 R2f<%0QŔbe a"3!2/ %5 %;0S>  W;dBoFp`Fp&%0\ b a2UŔ"3!2/ %5 %W ` PPm3?0% %0S+S=Ӏ; 800S-0`8 0c0% 腄5%P   8 \ c30< l3?050ń50  05%m, 00 3/m,  0 03/m, 0 03/m, 0 03/S蕔c38;3?0%腄 % a%15  Ln@@Qc a3013?05 050 %Sj \ 1S 0S0S 0S 0S;0S1E S  0(0S  0 0S  00S5  0c350l 00`5 `%  ЀRa , XM1a h08% 0 %S=0 0-0 0S%0a c<?0%0 ń%S=0 - 0 R# a3 b15%Q PŔb2 `103?050셄5Qa08 0%腄 %|0`5K#c%0 S>腔 c  3<95ń05>+ 0 ! 0SŔa 0h21%54 SqŔc# 0a0!2/ % 5%+  ! SVŔc 0a21%5P;Ŕc3 `103?050셄5?0S/ Q/;0 01S/;0 01Swl;001SV?0S@/ Q$/;0 01S/;0 01S;001S>+ 001S  0>+ 001S  0p>+ 001S  0@>+ 001S  0>+ 001S  0=+ 001S  0}=+ 001S  0p=+ 001Ss  0cm 0]g 0W 0R\ 0L 0GQ 0A 0< 07 02< 0, 0' 0! 0u 0 0 0  0` 0 0G 0 0< 0 0 0 0' 0 0 0 0 0 0 0 00CS50 3?0%0 %2A05%0a5 0HA(Q% 00%5 0%CC 0CS5 03?00% %QQ   Pc `3103?050ń5 0>5%] CSF腔c31>3?0% %0S+S=Ӏ 4800S0`8 0c0% 腄5%P  ǟ \Y c30< l3?050ń5 0 ŔCń 0`%5!0a%50a5#0c%5y? =0RN 0%QC腔bŔ a"3!2/ %505?=0Qn 0 Rc腔 aŔ b3"2/ %5050 `5%? =0R2 0%Q'腔bŔ a"3!2/ %505?>Q0 0 R腔 aŔ b3"2/ %505n?=0Q 0 Q腔 aŔ b3"2/ %505MS=0b 0 QW腔 aŔ b3"2/ %505.=0 A0#R0%5}% 3?0 5055sÌc=ń0W?=0Q 0 R腔 aŔ b3"2/ %505$S=0 0 R腔 aŔ b3"2/ %505Sc0SZ0SQ0S  \ 1S\ 0S1S~0S  =0A0#Qń% 0<Ͽ%5? 0Ŕ% B!R0%5%3?0 5%05=h02 b5% 0 0 0~b25w%0# B%R05n%3?0 5%05e a%15o%0# B%R05f%3?0 5%05] 0Hzb25m%0# B%R05d%3?0 5%05[= = b259|`4d4 t  ,%0# B%R05%3?0 5%05=  U=  Ob25%0# B%R05%3?0 5%050l5 0C S503?0 5%050c 50@(S51 %0 %0l5ŔCńb25%0# B%R05%3?0 5%05 a%15%0# B%R05%3?0 5%05b25%0# B%R05}%3?0 5%05t%0`5CŔP!053?0 5%05=  =  0c 5 0@(S5 1 %0 % 0C S503?0 5%05   $%&'45<=67>?DELMFGNO\]de^_fglmtunovw(P 0@@@                  !$"%,(#-&)'*+./ % &  !"#'$()*+,. -/ GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4,E XQ0 %`E+`E0`E80xH&AHQpH7HaK 0 N  4 0 4#4  2  >  U 8   D @   @ A x34< LT\l|#< U"sL  1BZrD4cavlc.c$ax264_cavlc_qp_delta$dx264_cavlc_mvdbs_write_tex264_cavlc_mb_header_ix264_cavlc_block_residual_internalx264_ue_size_tabx264_scan8x264_mb_pred_mode16x16_fixx264_mb_pred_mode4x4_fixx264_mb_chroma_pred_mode_fixctz_index.8180next_suffix.8165count_cat.8181i_offsets.8325subpartition_p_to_golombsubpartition_b_to_golombx264_mb_partition_listX_tablex264_mb_type_list_tablemb_type_b_to_golombcbp_to_golombx264_transform_allowedct_indexlut.2780x264_mb_predict_mv_GLOBAL_OFFSET_TABLE_x264_run_beforex264_coeff_tokenx264_level_tokenx264_total_zerosx264_total_zeros_2x4_dcx264_total_zeros_2x2_dcx264_macroblock_write_cavlcx264_coeff0_token0P01 2$(3,40485<6@7@ 1D H L P T X \ ` d h l p t x |     9           @@@@@@@@@@@@@@@@@AAencoder.o/ 1392656090 0 0 100644 86620 ` ELF(t4( -MP0 x(@ `2@ S`` B 0 `4` @`P @$@( ,@0@4@8@<@w hl  @\PUy ; @0  DH L P0T@S! 1;<0Z 0L ,Pp务4@0w;̌pG4 0p@dTPPT@d S`DXP`@\``[ ``P0@ P8 $C03R3 P@lS # 00 00 R@@`8P @T\  $00Ѝ/ P p@T "R@B@t@3|kp8k`p`W@P{T 3 30R00@0p C0r0@0kM-M`80DHL$@ D HpLp $`N PP`pp@&(q *X 4 W,8@Z0 0 O-04MRp0$,\ `)$@D Q @/TMV @THS vB2BRQ* R*80S40S0S 0V`@(@Fc(`S / 0  S (0S00SڀS00S R0 6z 03S 0S  0S83S 43S`QQ`Q 2$S0[?2> 2$Cx"0||b 0P0 Q0?R0V``P` 0?C{$:'D?CQP` 0?C{$:'D?CQ@2P`S002 C0r0`VpBT0S0$30S 0PP   9I0DPPLRD PR 0P   9I0DPLD b  t#C0EXE Y ȏɟt0뤢  #CP g #lCbP #CT㤢 $[ T;TR |2xRESE0U?|2PSPP2儂ES E S40@ XTȏxR"儂 b4R0@V`UPo_bR 0P   4>1DP  D V T UCT * R S t* 003UrD#@/H3R?@D#H3 S0H3 R SU @@BDBT2  0A 0S$ 0PS+LP3SPPP30STX \0R R SX 0S0h \0R0"0h02S0R?2S) 02`@p0Tx D SR00dQdY Qxx Sp0 | t0R S0/?| t0lPU R2 X0S\0S X( lP0X0U\0 0S`@cV X  dP g6f6F/Cb P  Pڤ?00S2唲帒[dY[ɟ0 0 000 00  P{[  P 3S 3S 3S  0P   0?CP T P 02UT 2S  $@T 2S020P @\`UPdT@ P UP0 Q T@0?0^ 2 S $"0 2R`d $" R+$"RS0$2S 82S XQ"3180 8- H- X- h- x- $!0- $   0$0DPR DR8X3G-S@`\ V%0b0 S `Q%0S VqDp52 PQ  όpqDp R 0p5WU;pV5R*0S+ S) 0000 0Rp   `  R 0 p/ 5` PS V0U`pPP XV 5`  R  0Uu 408@-M@ ` 08P4p0 0 SR 0 0U S 8 4  \ VP  080 040Ѝ$  WV@O-` 80P@S40Sڱhx0QX rx0h0X 匀h0W2"2匀"$2v$"Ss0"τH2R@8H202LP02W 8P0( $0 0  R,<0 .0t0"P(;8a0@0S \c E5pW5 0@ 2   `p0X5\U y y*|,;0@ny͇, ` a  ? W$ 0v z. ?\.B˅@A * ?Q*=  A$1 `4#1 %<70X0@70Xx0800$ ?$8x00 ? 8【00 ? 8㌐0t0 ? 8㔐00 ? 8t00 ? # ?#$ḝ ᔐ% ?"# " V.@̌/ ?hP/`hVWD` Åw̌@} , ? Q,`LV3p)Ӏ t xŸр ̟  ?W 2S3, \Q#P 0  3 (; 0y=<0008N @A h2Sl2S,;f@01W6Ip WBpPp00 p 0 @   x*@  $\U y y*pU y y*0{ R;l@8`T @Q :S  TPy `Pt 0S \ 0 0P S|( 0,   \3̠010S  Y! R&2p@ 0q 00  0@T10S  YS% @8 0@Z,; P0@  5/ 0  0 EߍP@]N @@3#S b@b9 cbS l/@b20  w 0PqEŕneEإl„^p2@࠱@00!PVAPP0`POX10Sy ŕ 5] `Eŕ c2P`"  P"u 0B SS S 5`C0`Cb "6jW00* p `0O-SMP@  0 `0p0`   R0B80 SC40@0 Pd `p0l 0c̠<Ͽ `0P[`c3 l2<3?00 00Q0A80` `SC4 n`0@0 \vp` 0`2/   0c `0\a` c3 `103?00 0000S C(0` `RB$Pm` @ P<`1 l l`    P'` l̠ b3Œ<Ͽ 0  ` R``0 l1<3?00 0080 S (0S/0SC0 QA 0̟ @PH `pb a"2/  `  P2`a `31 0 000 Q0 80Sp0S SS  BP0R   0 1 P0S H0S 0Ռ` 0M2 b b3?P00 0 0Xb" i1)2/ 0 00\00S C(0 RB$  @ R1` `  R<``3 i0 0H Q4XQA0 P@ @ P ` P `   0`0P  ` H`2Q b 0 R/2 3?R00 0 0'0b03 3?00 0 00S] 0X0SV 0SS1S 1X0SC0 QA ǟ @P `pb a"2/  `  P` a b3"2/  0  Q A(0 ``RB$ `,ǟ  @  R`03?`0 `` 0  P``0 l1<3?00 0 0H0SڔƟ0㌦ Ɵ |Ɵ tƟ  BR  ` 1  ```Wl `匀x⌀AXHtpp@` \p b" `l8,2/   ` !ppwpAWG  @ Vwff l7l6o` p  ! ``v`AVF @ QW a i61 `  qqAtQAp p@ \6pl̠ h1Ȍ<Ͽ  H0\WڌaV`p1  BR   1  \a 匀x⌀A XH @ R b" k8+2/    !qA QA @ [ k5 l̠ k1ˌ <Ͽ)b 9 `V (0S 0BS 0 00 00 000S4 0S1 300SC0 ``P@ `LŸ @Ps` b b1R`   j`b"3 `<Ͽ 0 00300s0ASCd`@ P`b" `3 2/  0   0 R]Ѝ80 b S  B 0R   0 1  0S  B$0R 0 0 3? 00000 ` 0 ` l ,0l 0L , (4xpH\Xhhdx,#Q A(0 ``RB$`p @ ``\ p<l3?00 l p  `\`l̠ f1ƌ<Ͽ0 0 030Sl ;00pA$1P@d0`0@0 0R0b c033?00 0 0400s0ASCTP@ RPb" a3!2/  000/0` 0&<00SC0 QA < @P? bp a`"P2/  `  6`a `31 0000 S]  B@0R 0 0 3?0 0J$0,S 0b  c133?00 0 00 P- P*0pAP@t p``@\`2 b0< l3?00    `R B0 0QA0@0P 0fp  0cf6o`` 0+$4 ( 0000 ` 0 `  BT0R   0 1 T0S L0S 08` 0M2 b b3?P00 0 0Xb" i1)2/ 0 0000S C(0 RB$  @ R1` `  R` i3 0 0 L`QsQA0 P@ @ P ` P `  0`0   c   `P 0 ` 0 - ` R  `   BR  ځ1 B0 00 S< `  c  T h  ii `rb p`l `nqpp`k 2 b 0 yb e f  6 f 0 BR   01 00 0d B0 SR  0 1  0Sx9Mͅ`(00N0P1p0 00I0 `p;10 000S C(0 PPRB$P @ PPP3p7` p `p ppPPP` e30 0 00d3`0S-RBpP pq@p p e  %e   BD0R   0 1 D0SS0*R P 10  0 00R0b3 0 0 00G b  ;2b 0'0` 01 a 0 R23?0 0 0 0R0b03 3?00 0 0H0SC0 ``QA` @Qr pb` `"2/  p   R\p` a31 0 000SLQ0A80` `SC4m`0@000SK` <Ͽ b b`  0S50b  c133?00  s1SC@ B  ~ B 1 B0 0" l  Nƒ b  `aa ` c  0Eà c  O- lM@W-M B3РPS%P R@0QL`< `\` D p8Ŕ`,; ^5`l` t`lVlHx ap` h Q5  d h 0aa` aa503?3<5ŔQf2ବࠡub`] ` ,8 1&3P030 0n0 0S٭eT` X 0,p8pX009| | , <- 4 0 t 0\Ŕ8 ŔD H L P  ,0 (0 (\0\,Q '@p  6p0W(0 60(`0 PąT4 <\ l@H3 `R! 0S 80S , 80<+@ 0<0S,  {0SaQQ <S/ 04S C(0 RB$ @ Qw腔 ` b0%Q`b 3 a<Ͽ%5 %+0S= P̔000^PT0T0  0 060- 0S <@\ڼ<S , ;QQk <S  %0u<pg `p\Ŕlqp, Q ,& QX?:00A00CV*< R R R`@`V:< hl< Qڨ;0S9 ;  T8 `XH 0`L 0D!lP10cP;0\v-8 !SppSS( ?S= ;0 S# <01   X0S0ڨm, 0Ap8 Qw Qw Qw ( Pw08S\=ڐ;+0  Q '̌"SW  R" ! 'S00S <'@7p(P00y=(0  !d\̔@\ <S( ,pp 0,0 W \, " ŔT X % T60  Cm1a5Ŕ a%ń\0p(p0 \ p,, 0  57P<,0(0 2S K v/X0 09P5 00 :ͅ‎; R,U0 505ń"2/ 5%10c05 Pp80 0CP%5Uc6Q`60l c6} 0S&,; >0S Q` AP[ K"R  T600S0(10!4@R[C. T60. C ,+|0 |0P( <0 x@\lH# 0`Sx0b\)(T 6 < 80@,cS̄  0 H-  'H ,H"- 8 $- D  D8 " R H  L- "8 D- 8 Rt-l-  R  !, 'H ,"&- 8 - D  D8 " R H  N- "8 F- 8 Rv-n-  R  !, 'H ,"4- 8 ,- D  D8 " R H  \- "8 T- 8 R-|-  R  ! 'H ,"6- 8 .- D  D8 " R H  ^- "8 V- 8 R-~-  R  !f 0x8 P0S,t( Q0 0(W˅`˅[ ͅ@; 0,0 0!8  80 D , D!000000000;0<(0! !< 0<50, q5 5 !!<50 !! !! ! C.T600S>sv  T600SD7rS\ < cQ\0 <0 <0 \ լ”H%ŔR10CRb" a3!2/ %5 %٭03?0 5  l1u c3\ 030? ń ń %T6`ŔX` T  a5%Ql0b5 a ń05腔%5 T605a1%5U5S PG5S5S1X5 30pP$`ST6 0XV;   0`,V0 ?C@`  "0F2,̄^3/,; 000a U@`F̄0p+S60 m@`; ̄ 8 Lp8 "0 2,L̄ vT60D'x` CHÔ|l T60  Cl|O-MMP @P $ /T3S 3/_PQ PP P 1  0QPƄpƄJ:80S40S w]0P   0<?! 00b?<P0 00APA\upX t(0x80P0t8\p0 * 0^0 `"V` ` &S `P B     |0S00QXpPjPWpP 0::Ph R ;UPP  P` a P0 PD   :  t*P  :  ! x*P & !p  6p*P p 6   !2S |*P &"P1L1 `p`40cΠ\3쐅``#0 6(6l|Ԡ⼀T  $ p(`   Q    %0SZ aJh; 0aw?0S S SZ 0,k`PU 0$0;p00:쪟00:00 @00@0S pPU9   P P P P < P0 UW 0U  $pP$0U0$0[ )0 `P xR|23U3PU8|2S5 PP @Ѝۍ08t\p0{PyS  ! `^*`t"Rv pp20CS\h0S^ P PPH'?0Swb?(0(0?oSw0 Up2S t0 ffCfFR`pP0 ?C 0 0  4.1DP0 p2S* t0 ffCfFR`pP0 ?C  0 0?0D05PZ  PU 0SR RO0#R \CR0StoP 0R0Sk PP60 $x 0fffFC 0  $2 pk?`0P00?C}?<0 =Cpj?`0P00?C>@0   (2 pk?`0P00?C?<0 a?C(2 r?%; >Cu?0 \3@0@@s0$00SUnP `0S P$ P 0IRPPt$ 0SmLs_`p,X`(\#0 5S 5S Xu0$ SI LsXVpV`X  0 0SqPm# 0 f(4 PP0" 00S x 0fffFC 0" E" ?03Sc P70S oP0SPP'P#00S\P0` PP 0`P@0: S00BSR MSv dS~ nSu zS00 S dQPpgfFFL!>? L1cN0 Ss Sb 00mS !0 P0031  0  P t10 x1 0dPP\ $ $ 4 $x`8p``P8, 0PP00S HPPPPP00S00 BSMS|  F"(. 00PPr 2 f 2 _PPbSPP^PP[0@- M PZ@ T  Ѝ0 0 0S \Ð0p@-`6M/1\CU/ 1PP06 /6ލpŐ0/ 1\O-@]p5`hh∎hԵ0P p∁ቑhe ^e ࠱ń셄 䥄0`0蕄`.0PE-Ŕ< `UlŽP⅂0ZA00P(Ŕ%lUub"\2q`0p0PPP P%5 0UE-0{0@`S%2S"PP! ;m0/`1(+ .B:" Њ0+; S00t;<  5 \3`&/pA-Q`@P#l\&5ah6\s T =Q n!RQ,;!R>  $     O- tM`T Mh l \PD  vWX` Mڤ51\C1\sT\X 6 =0S .0S=Q `Q,>  #/v v. ((/66X `X6l@ Uhe  @P'  P!p(0 S *؁0S\0** R S 3S; x  ; Q0x0Q 2S 2SP T0S P3/ ;0S(:* 6 0cRpJ6060Sl 0(+S ^ 0@ 0Œ\ES 6&0CR 6S(K0XQ 0XT3S 3/0 X ,[@t0S 6S P@ (; > 0S=0S- 0S0SP |0S\0*ʠ Q `   Q Q\ QC d P \0p .P> Utptp| vU:؂  X0"v>1(;0S,;0oh&k{ R %- ؁t( 0 S pX$,;@ 00>1S ,;P@h K0 Rꭆzꭆ pꝠ 0S P@0@S  0RX0S  R0x0 S 3 3S00x0""(;0S,;0 ,@?R00[4{ =0Sx -` Q ;T110S(; @=0L` p t0  0ԛ q;,P@D8 PH Pa%52  l0d@PS(;FƆ@ 0 CRgS |0S 2S FT (;@>0SP] p<  4 $%P  PR0(4 0>N04 S   3/ 00p> P0S5aȥ Ec^„ؕ0࠱ <0rp@@p0P P@pPp@@dT.S0 ;,0@N2S  S-40 04@T %6@ 0Xv 0;0`PV"<冑(+ "Q N 0$ R( R0;, 0`PVX(`\ S @0[P  Q\P~WP>X3T>0;  01e؂v>1 f%A@P!% %. Q `2/ a5%05*S  :  X0 3SPx5 ]U cŖue2PP "  =P`%5Q2  0S R  (+ pƖN-=<0Ɩ0 pp60#p6,;`P 0pp80 @0 0@0c?0<0  4 .<>ppP4 X`6S 0?C@ 0 P1  0`&p | P@pPp@@dTj ^!40 "` `;P 0 0P~w~ ,0S >\PΆP> 0>dPt@UE6P 06 6S0à5lX@ 0S%R5XPP" 6S 06= R @ 0S,;@(;000:P dP P  ` \0Q p\0)'\ 0 0P@P@@dTS0P@pPp@@dTS0}P Ps ct-x x= ~/00;@00"R!"0DR0\0 (;ATe 0!RW - (;@1s`0;@00&_\Z 8 L\ T @@Op:| Q̆0d S) ^& P\\`0 ^ S r 3Q  R :0s  =0S@ @P{* \,R @D+p 0 n0|@>1S Q R%]NŖ5 b<@  c -Q@, @P{* \,R  @D;p0  n |0@.Q S RS (+:,0 @ c:/ 0S |0*Sd P 0000S 00S " 2  0$07Q : 0PPP  c,;@(;:/ X10S 5 U]cŖu e2PP"@  P%5Q2  0S 00(+@,RN! SHI,;p(P0.0`6>h l0NDX  D(00C(0 0!S} :(0,+@  c:/ :P dP  P * r~0SP 0(;0@5A 0b05%aUbr\lt0 p @`0 0?C0.<0Ȏ4~ 0?Cp80C P(;@(;@P;P^Í,;@(; 0S R00 O P Z 101X2 03/D0A $0X2  @0( 3/  0a^%]ŖU  bEue"\P200PP%5Q2 J 0SGR000(+ ,( D K=H@D 01P @@Av ` 0ᴐO`?OT p H\ T ਐ L@T p@T\0l@0`̎ ( 0;.0@J0O-|(0M   p S̠00P(<@ O@`: p 렀 0S(4 00 \ 0 0P S QХ_̅@ u堐0(k@%R  0^ 0 T5 1\C &@ 6`0c)0P6U_h2.S`h 렠0 9 0 0x 0 0 0` 0 0 0D0H - <)M=C`pP pYpD`PFI0#@ FcAGAHBGB`9PU^h2*`S 렠0 9 0 0h 0 0 0P 0 0 0D08 - <)M=C`pP pYpD`PFP04"@ FcAGAHBGB`9PUgh2*`Sl 렠0 9 0 0p 0 0 0X 0 0 0D0@ - <)M=Cp`Pp`YpD 0$0L`pPFB0؆@Gt BЈ GcC`pP 90S\0`P`qh(h$0\ \1 -; @ί @AOD 0^ PX90Sx(K^hP@ 0Y0DP 0_ h0 `90SMx(~hp,a 0Y0Dp`z &? 00D 0.O 0 0΍ @L 0 0@;& h0P90Sx(n{Lh`x@ 0Y0D` 0 $(, ό0p. ί N@P  0 0. @/PN  0 Q`= p@0`O@PH=UO./O``` 0@ύ 0ѠG_@F.A`gf'`p0f`O' 0'0 `CQpG`hT 0Y0DPh 00D@΍Lh@'΍ L '' 0`< 0) 0P1 p%h0 렀99 00Z<@>C J?F@Ӏ>C@0`x;GPf`@0H@>C`0gf`pfp`0i`>C =C0p000&'@P; (@xP`pF‰`࠰pxP: `P p P@F@p〰GP@⼰HP@IpPEG렠: 9@9㠠Ӡ0 @ P( 9_0D@0S^hP9 Fᬠ崰 H0 0GI 0G0P1 @T P@T P^hP eP3H@ 0Y0D  0 h 10S =Ӡ0P1 w 0Y0D@I@  0  h@@P2S 30S 30S 9P1G P!0SUT: @TP  5#1 0Y0D$ 01@P 0Y0D&1 0Y0D& 0 h@10S :ZP J7#@PP1 0Y0D& 01 0Y0D 01 0Y0D 0h` 0 `.렐堰1/Ӏ<Ӡ0OӀ0F0 @ PӠ@0` P@P`0 pࠐ @O P `Ӏ pѠ'OOΟο@ЀPܠ`p)@ЅPЦ ا؄ بЇ ί Ѕ`p=?O ؄ Ї `@=0`0<0p0P`kh`@V,*ǎ/@@  0Q  0<[HpW`=?O0#̍83Ӏ0@/Ӡ0`0 ࠐh / Ӡ(``pX3P Ӏ0  `@ p)E1^؀L@E`Рp%GF'G(L@PGE1΍`pPG@L`3 @10S. K@ 0Y0D&  0Y0D&  0Y0D& 0Y0D& P2S"ڰ9P3?DELMFGNO\]de^_fglmtunovw(P  !""##$$%%%&&&''''''''''''''''  x264_reference_build_listx264_weighted_pred_initx264_encoder_close`hpxI16..4%s: %4.1f%% %4.1f%% %4.1f%%..PCM %4.1f%%psnrssiminvalid width x height (%dx%d) invalid CSP (only I420/YV12/NV12/I422/YV16/NV16/I444/YV24/BGR/BGRA/RGB supported) width not divisible by 2 (%dx%d) height not divisible by 4 (%dx%d) height not divisible by 2 (%dx%d) invalid crop-rect %u,%u,%u,%u not compiled with thread support! OpenCL: frame size is too small, disabling opencl OpenCL: device id and device skip count configured; dropping skip broken ffmpeg default settings detected use an encoding preset (e.g. -vpre medium) preset usage: -vpre -vpre speed presets are listed in x264 --help profile is optional; x264 defaults to high no ratecontrol method specified %2d-bit AVC-Intra is not widely compatible 10-bit x264 is required to encode AVC-Intra bitrate not specified VBV is incompatible with constant QP, ignored. VBV maxrate unspecified, assuming CBR VBV bufsize set but maxrate unspecified, ignored max bitrate less than average bitrate, assuming CBR VBV maxrate specified, but no bufsize, ignored interlace + slice-min-mbs is not implemented slice-min-mbs > row mb size (%d) not implemented subme=0 + direct=temporal is not supported b-pyramid normal + intra-refresh is not supported ref > 1 + intra-refresh is not supported intra-refresh is not compatible with open-gop lookaheadless mb-tree requires intra refresh or infinite keyint --%s used with psy on: results will be invalid! --ssim used with AQ off: results will be invalid! --psnr used with AQ on: results will be invalid! --tune %s should be used if attempting to benchmark %s! invalid level_idc: %d interlace + me=esa is not implemented interlace + weightp is not implemented using mv_range_thread = %d NAL HRD parameters require VBV parameters CBR HRD requires constant bitrate cannot create valid sample aspect ratio using SAR=%d/%d invalid DTS: PTS is less than DTS PSNR Y:%5.2f U:%5.2f V:%5.2f SSIM Y:%.5fframe=%4d QP=%.2f NAL=%d Slice:%c Poc:%-3d I:%-4d P:%-4d SKIP:%-4d size=%d bytes%s r+bencoder/encoder.c(first_y&1) == 0slice-max-size violated (frame %d, cause: slice-min-mbs) MainConstrained BaselineHighHigh 4:4:4 PredictiveHigh 10High 4:2:2High 4:4:4 IntraHigh 4:2:2 IntraHigh 10 IntraEffective timebase denominator %u exceeds H.264 maximum using cpu capabilities:SSESSE2SSE3SSE4.1BMI1 %s none!%s MV cost test failed: x264 has been miscompiled! CLZ test failed: x264 has been miscompiled! failed to load OpenCL HRD bitrate: %i bits/sec CPB size: %i bits wdump_yuv: can't write to %s dump_yuv: incompatible with non-regular file %s %d.%d1bprofile %s, level %s profile %s, level %s, %s %d-bit x264_encoder_invalidate_reference is not supported with B-frames enabled x264_encoder_invalidate_reference is not supported with intra refresh enabled non-strictly-monotonic PTS h->i_ref[0] + h->i_ref[1] <= X264_REF_MAXx264_clip3( denom, 0, 7 ) == denomh->sh.weight[j][i].i_denom == denomuvuvDCuvACh->thread[i]->fenc->i_reference_count == 1frame %c:%-5d Avg QP:%5.2f size:%6.0f frame %c:%-5d Avg QP:%5.2f size:%6.0f PSNR Mean Y:%5.2f U:%5.2f V:%5.2f Avg:%5.2f Global:%5.2f consecutive B-frames:%s mb I %s mb P %s P16..4: %4.1f%% %4.1f%% %4.1f%% %4.1f%% %4.1f%% skip:%4.1f%% B16..8: %4.1f%% %4.1f%% %4.1f%% direct:%4.1f%% skip:%4.1f%% L0:%4.1f%% L1:%4.1f%% BI:%4.1f%%mb B %s inter:%.1f%% skip:%.1f%%field mbs: intra: %.1f%%%s 8x8 transform intra:%.1f%%%s direct mvs spatial:%.1f%% temporal:%.1f%% inter: %.1f%% %.1f%% %.1f%%coded y,%s,%s intra: %.1f%% %.1f%% %.1f%%%s i16 v,h,dc,p: %2.0f%% %2.0f%% %2.0f%% %2.0f%% i%d v,h,dc,ddl,ddr,vr,hd,vl,hu: %2.0f%% %2.0f%% %2.0f%% %2.0f%% %2.0f%% %2.0f%% %2.0f%% %2.0f%% %2.0f%% i8c dc,h,v,p: %2.0f%% %2.0f%% %2.0f%% %2.0f%% Weighted P-Frames: Y:%.1f%% UV:%.1f%% ref %c L%d:%s PBSSIM Mean Y:%.7f (%6.3fdb) PSNR Mean Y:%6.3f U:%6.3f V:%6.3f Avg:%6.3f Global:%6.3f kb/s:%.2f kb/s:%.2f (*frame)->i_reference_count > 04:0:04:2:04:2:24:4:4GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rel.data.rel.ro.local.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4 1h %P+P0P<8 $C,H8 @M@0XpeT0P6`Lp<T@H  tD#T)$/`5;AGDLRX,^dLilntz@p  .pp06l1d t1t136D-3L9?E DKD6DTcPid Toc60tx Lt6|         @ ,   t    D `   0 " (x . 4:  6@ F`  6L R X ^  6xdX j p, w8 ~  0|H P  6Hh@4   @ D P!(  6/(I(W@h@3st|^,@TL 626   CO\dkr~,@Ziv %2;IUj9?FMTfx ) A X t       7 L \ v       t} 3 : H V d |         # 5 I Y ` {        ) > D _ n d  X ؐ  'Iexē5 ,F_p/FZ|1Ut&/AZrw# encoder.c$ax264_slice_header_initx264_print_intra$d.LC0.LC1.LC2.LC3mbcmp_initx264_nal_endx264_bitstream_check_buffer_internalx264_fdec_filter_rowx264_validate_parameters.LC12.LC26.LC13.LC31.LC33.LC40.LC4.LC36.LC39.LC42.LC43.LC45.LC30.LC23.LC38.LC35.LC27.LC34.LC29.LC28.LC24.LC41.LC44.LC14.LC5.LC37.LC32.LC11.LC25.LC6.LC7.LC21.LC22.LC20.LC10.LC8.LC15.LC16.LC17.LC18.LC19.LC9x264_encoder_encapsulate_nalsx264_set_aspect_ratio.part.7.LC47.LC46x264_encoder_try_reconfigx264_encoder_frame_end.part.6.LC51.LC52.LC48.LC50.LC49x264_slice_header_write.LC53.LC54x264_slice_write.LC55.LC66.LC68.LC69.LC67.LC70.LC71.LC72.LC74.LC73.LC65.LC77.LC75.LC76.LC80.LC59.LC83.LC85.LC86.LC78.LC79.LC57.LC56.LC60.LC58.LC84.LC64.LC82.LC81.LC62.LC61.LC63.LC87.LC88.LC89.LC92.LC91.LC90.LC97.LC99.LC101.LC102.LC103.LC105.LC108.LC109.LC111.LC95.LC96.LC112.LC114.LC115.LC116.LC118.LC117.LC119.LC120.LC122.LC121.LC98.LC100.LC104.LC113.LC93.LC94.LC110.LC107.LC106lookahead_thread_div.8518__func__.8431x264_ue_size_tabx264_scan8x264_mb_chroma_pred_mode_fixi_chroma_qp_tablex264_luma2chroma_pixel__func__.8767__func__.8719__func__.9149x264_mb_partition_pixel_tablex264_mb_type_list_tablex264_mb_pred_mode4x4_fixsubsampling.8586__aeabi_l2d__aeabi_ddivsprintfmemcpymemsetx264_mallocx264_free__aeabi_f2d__aeabi_daddx264_frame_deblock_rowx264_frame_expand_borderx264_frame_filterx264_frame_expand_border_filteredx264_pixel_ssd_wxhx264_pixel_ssd_nv12x264_pixel_ssim_wxhx264_frame_cond_broadcast__aeabi_fcmpeq__aeabi_dsub__aeabi_dcmplt__aeabi_dcmpgt__aeabi_d2f__aeabi_fcmpgt__aeabi_fadd__aeabi_f2iz__aeabi_i2f__aeabi_fdiv__aeabi_fmul__aeabi_fsub__aeabi_fcmplt__aeabi_d2iz__aeabi_idiv__aeabi_ui2fx264_logx264_sps_initx264_levelsx264_validate_levelsx264_cpu_num_processorslogfx264_nal_encodex264_reduce_fraction__aeabi_i2d__aeabi_dmul__aeabi_dcmplex264_frame_push_unusedx264_ratecontrol_endx264_noise_reduction_updatex264_frame_push_blank_unusedfopenfseekofwritefclosex264_filler_writex264_hrd_fullnessx264_sei_buffering_period_writememmovestrlensnprintflog10__aeabi_idivmod__assert2x264_macroblock_thread_initx264_ratecontrol_mb_qpx264_macroblock_cache_load_interlacedx264_macroblock_analysex264_macroblock_encodex264_macroblock_write_cavlcx264_cabac_encode_terminal_cx264_cabac_mb_skipx264_macroblock_write_cabacx264_macroblock_cache_savex264_ratecontrol_mbx264_macroblock_cache_load_progressivex264_macroblock_deblock_strengthx264_frame_new_slicex264_field_vsadx264_expand_border_mbpairx264_cabac_context_initx264_cabac_encode_initx264_cabac_encode_flushx264_threadslice_cond_broadcastx264_threadslice_cond_wait__aeabi_uldivmodx264_encoder_open_142x264_cqm_parse_filestrdupx264_pps_initx264_cqm_initx264_rdo_initx264_predict_16x16_initx264_predict_8x8c_initx264_predict_8x16c_initx264_predict_8x8_initx264_predict_4x4_initx264_pixel_initx264_dct_initx264_zigzag_initx264_mc_initx264_quant_initx264_deblock_initx264_bitstream_initx264_cabac_initstrcmpx264_analyse_prepare_costsx264_analyse_init_costspowx264_cavlc_initx264_frame_pop_unusedx264_macroblock_cache_allocatex264_opencl_load_libraryx264_lookahead_initx264_macroblock_thread_allocatex264_ratecontrol_newfstatx264_opencl_lookahead_initx264_cpu_namesx264_encoder_reconfig_applyx264_ratecontrol_init_reconfigurablex264_encoder_reconfigx264_encoder_parametersx264_encoder_headersx264_sps_writex264_pps_writex264_sei_version_writex264_weighted_reference_duplicatex264_frame_pop_blank_unusedx264_frame_unshiftx264_encoder_intra_refreshx264_encoder_invalidate_reference__aeabi_dcmpgex264_encoder_encodex264_thread_sync_ratecontrolx264_frame_copy_picturex264_frame_expand_border_mod16x264_adaptive_quant_framex264_lookahead_put_framex264_frame_shiftx264_frame_pushx264_sei_writex264_sei_recovery_point_writex264_sei_frame_packing_writex264_sei_pic_timing_writex264_weight_nonex264_sei_avcintra_umid_writex264_sei_avcintra_vanc_writex264_ratecontrol_startx264_ratecontrol_qpx264_reference_build_list_optimalx264_macroblock_slice_initx264_frame_init_lowresx264_sei_dec_ref_pic_marking_writex264_frame_popx264_macroblock_tree_readx264_ratecontrol_set_weightsx264_analyse_weight_framex264_threads_distribute_ratecontrolx264_threads_merge_ratecontrolx264_macroblock_bipred_initx264_lookahead_get_framesx264_lookahead_is_emptyx264_weight_scale_plane__aeabi_dcmpeqx264_encoder_closex264_lookahead_deletex264_opencl_lookahead_deletex264_frame_deletex264_ratecontrol_summaryx264_ratecontrol_deletefreex264_cqm_deletex264_analyse_free_costsx264_frame_delete_listx264_macroblock_cache_freex264_macroblock_thread_freex264_opencl_close_libraryx264_encoder_delayed_framesx264_encoder_maximum_delayed_frames 0P\ht  , 0 4 8 < |(8PdtP`(0L   P d |     HPl|L`DhH\` ht 0@P`t4H8X(@hl| 0`dhlpt`x|` !"#$%&'()*+,-,./0123456 7 8 9 : ; < =< 8!!,"@"X"p""#$$% %%$%0%<%H%P%`%%%%%%& &\&p&t&&)))**\*|**** +,+P+x+++,$,L,p,,,,,$-D-X-l-----L///D0`000(1P1l1Bp1C334485x55546H6999d::::$;;(<<<<<==D>>,??@(@D@T@`@@@@@ A$A@APA`ApA|AAAAAAAAB$BXBhBxBBBBC(C8CPC`C|CCCCCCDD`DpDDDHDIDJDKDLE EDTHTLTPTTTXT\T`TdThTlTpTtTxT|TTTTTTTTTPTQTTTT8Yleef,fgggh$i`iiijjmnnHopr8shsst0t4t8tX&p?@<AlBC8/&dDԚC&xC4EFȦGH}P~P P`I\J(KȪLЪM NOĮPDlQLT`lxв<lD/xRdSܵT7Ct45(DܻC0C< 7,U4Vl  WH`h,ttXlYZ0@D\hp|( H6[4^<_`<>L> 8LXh|(HXd|$ $<Tdp4x|PL\$<HT`| $@X`\ (a4D|HXl,(8@Tdl$4@P`l,DT\l|$4@P`l,<L`t 4P4@H`l 8@bTchcpd|effffP`L`ghi`(D`h4@hx4DThx  (@HLPTX \`dhlptPx|P (8DP`lx (4Lh ,Hhx$HXt 8H`p lookahead.o/ 1392656090 0 0 100644 3528 ` ELF((4( p@-P\`@PA \ P/0$ 0S @"`0R0c042S.0`P"j,PDPPp0$ Q\S`PP00ĥpp2S 20s038@-@0S$T , Q D$4 8@$4 P0P01\01\01\0S$4 ,$4 04 RLp3//0O-S M@ $d 0L RS0S Ѝp:00S$T 040S 0 , Q 0,  D`⼁,P⸡p఑    pGL0   0S  0w 0  B (  pGR 0/ 0S0!1 0Dpz0PPED0uPEL  BL $T 0 R   BRL R Dpz$d 0PPED0uPEL  BL x0x264_lookahead_shiftencoder/lookahead.cdst->i_size < dst->i_max_sizesrc->i_sizeGCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4  %+082@G0X&P~`p~7p0    4" 0PDPWqxP %A$Zt ,Llookahead.c$a$d.LC0.LC1.LC2__func__.8063x264_lookahead_initx264_mallocmemsetx264_sync_frame_list_initmemcpyx264_macroblock_cache_allocatex264_macroblock_thread_allocatex264_freex264_lookahead_deletex264_sync_frame_list_deletex264_frame_push_unusedx264_macroblock_cache_freex264_macroblock_thread_freex264_lookahead_put_framex264_sync_frame_list_pushx264_lookahead_is_emptyx264_lookahead_get_framesx264_slicetype_decidex264_frame_shift__assert2x264_frame_pushx264_slicetype_analyse$ (p|  #L$%%$&p$|&'   mc-c.o/ 1392656090 0 0 100644 5448 ` ELF(4( O-M !<`8@ P@NDAUDp PN H@!   ,Q& I Vn6Ng'Hj !8Pmc-c.c$amc_luma_neon$dget_ref_neonhpel_filter_neonx264_weight_cache_neonhpel_ref0hpel_ref1x264_pixel_avg_wtab_neonx264_mc_copy_wtab_neonx264_mc_offsetsub_wtab_neonx264_mc_offsetadd_wtab_neonx264_mc_nodenom_wtab_neonx264_mc_wtab_neonx264_hpel_filter_v_neonx264_hpel_filter_c_neonx264_hpel_filter_h_neonx264_mc_init_arm_GLOBAL_OFFSET_TABLE_x264_prefetch_fenc_armx264_prefetch_ref_armx264_mc_copy_w16_neonx264_mc_copy_w16_aligned_neonx264_mc_copy_w8_neonx264_mc_copy_w4_neonx264_pixel_avg_16x16_neonx264_pixel_avg_16x8_neonx264_pixel_avg_8x16_neonx264_pixel_avg_8x8_neonx264_pixel_avg_8x4_neonx264_pixel_avg_4x8_neonx264_pixel_avg_4x4_neonx264_pixel_avg_4x2_neonx264_mc_chroma_neonx264_frame_init_lowres_core_neonx264_memcpy_aligned_neonx264_memzero_aligned_neonx264_pixel_avg2_w4_neonx264_pixel_avg2_w8_neonx264_pixel_avg2_w16_neonx264_pixel_avg2_w20_neonx264_mc_weight_w4_offsetsub_neonx264_mc_weight_w8_offsetsub_neonx264_mc_weight_w16_offsetsub_neonx264_mc_weight_w20_offsetsub_neonx264_mc_weight_w4_offsetadd_neonx264_mc_weight_w8_offsetadd_neonx264_mc_weight_w16_offsetadd_neonx264_mc_weight_w20_offsetadd_neonx264_mc_weight_w4_nodenom_neonx264_mc_weight_w8_nodenom_neonx264_mc_weight_w16_nodenom_neonx264_mc_weight_w20_nodenom_neonx264_mc_weight_w4_neonx264_mc_weight_w8_neonx264_mc_weight_w16_neonx264_mc_weight_w20_neon48<@\`d !"$%&'()*+ ,-. /$0(1,2034485<678 99:* )(',;0;4<8=<=@>D?H?L@PATAXB\C`CdDhElEpFtGxG|HIIJpredict-c.o/ 1392656090 0 0 100644 3024 ` ELF(4( P00/D   8   0   /$  (  0 0/HT00/H  @   8   0   (   0 0/Lx00/l  d   \   T   L   D   <   4  , 00/pT00/H   @   8   0   (  0 0/LGCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.comment.note.GNU-stack.ARM.attributes4 %<+<00<&9bIpb7Y  D X p h p-C\vpx:Sl6Ohx*predict-c.c$a$dx264_predict_4x4_init_arm_GLOBAL_OFFSET_TABLE_x264_predict_4x4_h_armv6x264_predict_4x4_dc_armv6x264_predict_4x4_ddr_armv6x264_predict_4x4_dc_top_neonx264_predict_4x4_ddl_neonx264_predict_8x8c_init_armx264_predict_8x8c_dc_neonx264_predict_8x8c_dc_top_neonx264_predict_8x8c_dc_left_neonx264_predict_8x8c_h_neonx264_predict_8x8c_v_neonx264_predict_8x8c_p_neonx264_predict_8x8_init_armx264_predict_8x8_ddl_neonx264_predict_8x8_ddr_neonx264_predict_8x8_vl_neonx264_predict_8x8_vr_neonx264_predict_8x8_dc_neonx264_predict_8x8_h_neonx264_predict_8x8_hd_neonx264_predict_8x8_hu_neonx264_predict_8x8_v_neonx264_predict_16x16_init_armx264_predict_16x16_dc_neonx264_predict_16x16_dc_top_neonx264_predict_16x16_dc_left_neonx264_predict_16x16_h_neonx264_predict_16x16_v_neonx264_predict_16x16_p_neonX\`dhlhlp t!x"|#$%&')*+,-.opencl.o/ 1392656091 0 0 100644 89080 ` ELF(xI4( D T 8@-@P0 0S   8@ @-t@P t <P $P P P P P P P P hP$ PP(} 8P,v P0o P4h P8a P<Z P@S PDL PHE xPL> `PP7 HPT0 0PX) P\" P` Pd Ph Pl Pp@4 x`H0pX@(@-@P@@-(T `@V44 PP 803/P`t P d03/00dt P d03/00ht P d03/00tt P d03/00xt P d03/00t P d03/00t P d03/00t P d03/00t P d03/00t P d03/00t P d03/00t P d03/008t P l03/00@t P h03/00lt P h03/00pt P h03/00|t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/00t P h03/004T P \03/00,T P`03/00(4 O-_Mp^/01"L03/P@`\P P8 L0\ 3/P`\0S< x?`x80<0d?40D@0\0`S_ 0x@1/P@`x0S xP x 0@@1/P`xQ %ˈ P0@0@T*830$ S  S^?  #  Dp@-@PUpnP h03/00nP h03/00/lP h03/00oP h03/00oP h03/00 oP h03/00oP h03/00oP h03/00oP h03/00oP h03/00 oPph03/00pc8ef3d10dedcd2579b7ae8c9f0d18028#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics : enable constant sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST; /* 7.18.1.1 Exact-width integer types */ typedef signed char int8_t; typedef unsigned char uint8_t; typedef short int16_t; typedef unsigned short uint16_t; typedef int int32_t; typedef unsigned uint32_t; typedef uint8_t pixel; typedef uint16_t sum_t; typedef uint32_t sum2_t; #define LOWRES_COST_MASK ((1<<14)-1) #define LOWRES_COST_SHIFT 14 #define COST_MAX (1<<28) #define PIXEL_MAX 255 #define BITS_PER_SUM (8 * sizeof(sum_t)) /* Constants for offsets into frame statistics buffer */ #define COST_EST 0 #define COST_EST_AQ 1 #define INTRA_MBS 2 #define COPY2_IF_LT( x, y, a, b )\ if((y)<(x))\ {\ (x) = (y);\ (a) = (b);\ } constant int2 dia_offs[4] = { {0, -1}, {-1, 0}, {1, 0}, {0, 1}, }; inline pixel x264_clip_pixel( int x ) { return (pixel) clamp( x, (int) 0, (int) PIXEL_MAX ); } inline int2 x264_median_mv( short2 a, short2 b, short2 c ) { short2 t1 = min(a, b); short2 t2 = min(max(a, b), c); return convert_int2(max(t1, t2)); } inline sum2_t abs2( sum2_t a ) { sum2_t s = ((a >> (BITS_PER_SUM - 1)) & (((sum2_t)1 << BITS_PER_SUM) + 1)) * ((sum_t)-1); return (a + s) ^ s; } #define HADAMARD4( d0, d1, d2, d3, s0, s1, s2, s3 ) {\ sum2_t t0 = s0 + s1;\ sum2_t t1 = s0 - s1;\ sum2_t t2 = s2 + s3;\ sum2_t t3 = s2 - s3;\ d0 = t0 + t2;\ d2 = t0 - t2;\ d1 = t1 + t3;\ d3 = t1 - t3;\ } #define HADAMARD4V( d0, d1, d2, d3, s0, s1, s2, s3 ) {\ int2 t0 = s0 + s1;\ int2 t1 = s0 - s1;\ int2 t2 = s2 + s3;\ int2 t3 = s2 - s3;\ d0 = t0 + t2;\ d2 = t0 - t2;\ d1 = t1 + t3;\ d3 = t1 - t3;\ } #define SATD_C_8x4_Q( name, q1, q2 )\ int name( q1 pixel *pix1, int i_pix1, q2 pixel *pix2, int i_pix2 )\ {\ sum2_t tmp[4][4];\ sum2_t a0, a1, a2, a3;\ sum2_t sum = 0;\ for( int i = 0; i < 4; i++, pix1 += i_pix1, pix2 += i_pix2 )\ {\ a0 = (pix1[0] - pix2[0]) + ((sum2_t)(pix1[4] - pix2[4]) << BITS_PER_SUM);\ a1 = (pix1[1] - pix2[1]) + ((sum2_t)(pix1[5] - pix2[5]) << BITS_PER_SUM);\ a2 = (pix1[2] - pix2[2]) + ((sum2_t)(pix1[6] - pix2[6]) << BITS_PER_SUM);\ a3 = (pix1[3] - pix2[3]) + ((sum2_t)(pix1[7] - pix2[7]) << BITS_PER_SUM);\ HADAMARD4( tmp[i][0], tmp[i][1], tmp[i][2], tmp[i][3], a0, a1, a2, a3 );\ }\ for( int i = 0; i < 4; i++ )\ {\ HADAMARD4( a0, a1, a2, a3, tmp[0][i], tmp[1][i], tmp[2][i], tmp[3][i] );\ sum += abs2( a0 ) + abs2( a1 ) + abs2( a2 ) + abs2( a3 );\ }\ return (((sum_t)sum) + (sum>>BITS_PER_SUM)) >> 1;\ } /* * Utility function to perform a parallel sum reduction of an array of integers */ int parallel_sum( int value, int x, volatile local int *array ) { array[x] = value; barrier( CLK_LOCAL_MEM_FENCE ); int dim = get_local_size( 0 ); while( dim > 1 ) { dim >>= 1; if( x < dim ) array[x] += array[x + dim]; if( dim > 32 ) barrier( CLK_LOCAL_MEM_FENCE ); } return array[0]; } int mv_cost( uint2 mvd ) { float2 mvdf = (float2)(mvd.x, mvd.y) + 1.0f; float2 cost = round( log2(mvdf) * 2.0f + 0.718f + (float2)(!!mvd.x, !!mvd.y) ); return (int) (cost.x + cost.y); } /* Mode selection routines, select the least SATD cost mode for each lowres * macroblock. When measuring B slices, this includes measuring the cost of * three bidir modes. */ /* Four threads cooperatively measure 8x8 BIDIR cost with SATD */ int bidir_satd_8x8_ii_coop4( read_only image2d_t fenc_lowres, int2 fencpos, read_only image2d_t fref0_planes, int2 qpos0, read_only image2d_t fref1_planes, int2 qpos1, int weight, local sum2_t *tmpp, int idx ) { volatile local sum2_t( *tmp )[4] = (volatile local sum2_t( * )[4])tmpp; sum2_t b0, b1, b2, b3; sum2_t sum = 0; int2 fref0Apos = (int2)(qpos0.x>>2, qpos0.y>>2); int hpel0A = ((qpos0.x&2)>>1) + (qpos0.y&2); int2 qpos0B = (int2)qpos0 + (int2)(((qpos0.x&1)<<1), ((qpos0.y&1)<<1)); int2 fref0Bpos = (int2)(qpos0B.x>>2, qpos0B.y>>2); int hpel0B = ((qpos0B.x&2)>>1) + (qpos0B.y&2); int2 fref1Apos = (int2)(qpos1.x>>2, qpos1.y>>2); int hpel1A = ((qpos1.x&2)>>1) + (qpos1.y&2); int2 qpos1B = (int2)qpos1 + (int2)(((qpos1.x&1)<<1), ((qpos1.y&1)<<1)); int2 fref1Bpos = (int2)(qpos1B.x>>2, qpos1B.y>>2); int hpel1B = ((qpos1B.x&2)>>1) + (qpos1B.y&2); uint mask_shift0A = 8 * hpel0A, mask_shift0B = 8 * hpel0B; uint mask_shift1A = 8 * hpel1A, mask_shift1B = 8 * hpel1B; uint vA, vB; uint enc, ref0, ref1; uint a0, a1; const int weight2 = 64 - weight; #define READ_BIDIR_DIFF( OUT, X )\ enc = read_imageui( fenc_lowres, sampler, fencpos + (int2)(X, idx) ).s0;\ vA = (read_imageui( fref0_planes, sampler, fref0Apos + (int2)(X, idx) ).s0 >> mask_shift0A) & 0xFF;\ vB = (read_imageui( fref0_planes, sampler, fref0Bpos + (int2)(X, idx) ).s0 >> mask_shift0B) & 0xFF;\ ref0 = rhadd( vA, vB );\ vA = (read_imageui( fref1_planes, sampler, fref1Apos + (int2)(X, idx) ).s0 >> mask_shift1A) & 0xFF;\ vB = (read_imageui( fref1_planes, sampler, fref1Bpos + (int2)(X, idx) ).s0 >> mask_shift1B) & 0xFF;\ ref1 = rhadd( vA, vB );\ OUT = enc - ((ref0 * weight + ref1 * weight2 + (1 << 5)) >> 6); #define READ_DIFF_EX( OUT, a, b )\ READ_BIDIR_DIFF( a0, a );\ READ_BIDIR_DIFF( a1, b );\ OUT = a0 + (a1<>BITS_PER_SUM)) >> 1; } /* * mode selection - pick the least cost partition type for each 8x8 macroblock. * Intra, list0 or list1. When measuring a B slice, also test three bidir * possibilities. * * fenc_lowres_mvs[0|1] and fenc_lowres_mv_costs[0|1] are large buffers that * hold many frames worth of motion vectors. We must offset into the correct * location for this frame's vectors: * * CPU equivalent: fenc->lowres_mvs[0][b - p0 - 1] * GPU equivalent: fenc_lowres_mvs0[(b - p0 - 1) * mb_count] * * global launch dimensions for P slice estimate: [mb_width, mb_height] * global launch dimensions for B slice estimate: [mb_width * 4, mb_height] */ kernel void mode_selection( read_only image2d_t fenc_lowres, read_only image2d_t fref0_planes, read_only image2d_t fref1_planes, const global short2 *fenc_lowres_mvs0, const global short2 *fenc_lowres_mvs1, const global short2 *fref1_lowres_mvs0, const global int16_t *fenc_lowres_mv_costs0, const global int16_t *fenc_lowres_mv_costs1, const global uint16_t *fenc_intra_cost, global uint16_t *lowres_costs, global int *frame_stats, local int16_t *cost_local, local sum2_t *satd_local, int mb_width, int bipred_weight, int dist_scale_factor, int b, int p0, int p1, int lambda ) { int mb_x = get_global_id( 0 ); int b_bidir = b < p1; if( b_bidir ) { /* when mode_selection is run for B frames, it must perform BIDIR SATD * measurements, so it is launched with four times as many threads in * order to spread the work around more of the GPU. And it can add * padding threads in the X direction. */ mb_x >>= 2; if( mb_x >= mb_width ) return; } int mb_y = get_global_id( 1 ); int mb_height = get_global_size( 1 ); int mb_count = mb_width * mb_height; int mb_xy = mb_x + mb_y * mb_width; /* Initialize int frame_stats[4] for next kernel (sum_inter_cost) */ if( mb_x < 4 && mb_y == 0 ) frame_stats[mb_x] = 0; int bcost = COST_MAX; int list_used = 0; if( !b_bidir ) { int icost = fenc_intra_cost[mb_xy]; COPY2_IF_LT( bcost, icost, list_used, 0 ); } if( b != p0 ) { int mv_cost0 = fenc_lowres_mv_costs0[(b - p0 - 1) * mb_count + mb_xy]; COPY2_IF_LT( bcost, mv_cost0, list_used, 1 ); } if( b != p1 ) { int mv_cost1 = fenc_lowres_mv_costs1[(p1 - b - 1) * mb_count + mb_xy]; COPY2_IF_LT( bcost, mv_cost1, list_used, 2 ); } if( b_bidir ) { int2 coord = (int2)(mb_x, mb_y) << 3; int mb_i = get_global_id( 0 ) & 3; int mb_in_group = get_local_id( 1 ) * (get_local_size( 0 ) >> 2) + (get_local_id( 0 ) >> 2); cost_local += mb_in_group * 4; satd_local += mb_in_group * 16; #define TRY_BIDIR( mv0, mv1, penalty )\ {\ int2 qpos0 = (int2)((coord.x<<2) + mv0.x, (coord.y<<2) + mv0.y);\ int2 qpos1 = (int2)((coord.x<<2) + mv1.x, (coord.y<<2) + mv1.y);\ cost_local[mb_i] = bidir_satd_8x8_ii_coop4( fenc_lowres, coord, fref0_planes, qpos0, fref1_planes, qpos1, bipred_weight, satd_local, mb_i );\ int cost = cost_local[0] + cost_local[1] + cost_local[2] + cost_local[3];\ COPY2_IF_LT( bcost, penalty * lambda + cost, list_used, 3 );\ } /* temporal prediction */ short2 dmv0, dmv1; short2 mvr = fref1_lowres_mvs0[mb_xy]; dmv0 = (mvr * (short) dist_scale_factor + (short) 128) >> (short) 8; dmv1 = dmv0 - mvr; TRY_BIDIR( dmv0, dmv1, 0 ) if( as_uint( dmv0 ) || as_uint( dmv1 ) ) { /* B-direct prediction */ dmv0 = 0; dmv1 = 0; TRY_BIDIR( dmv0, dmv1, 0 ); } /* L0+L1 prediction */ dmv0 = fenc_lowres_mvs0[(b - p0 - 1) * mb_count + mb_xy]; dmv1 = fenc_lowres_mvs1[(p1 - b - 1) * mb_count + mb_xy]; TRY_BIDIR( dmv0, dmv1, 5 ); #undef TRY_BIDIR } lowres_costs[mb_xy] = min( bcost, LOWRES_COST_MASK ) + (list_used << LOWRES_COST_SHIFT); } /* * parallel sum inter costs * * global launch dimensions: [256, mb_height] */ kernel void sum_inter_cost( const global uint16_t *fenc_lowres_costs, const global uint16_t *inv_qscale_factor, global int *fenc_row_satds, global int *frame_stats, int mb_width, int bframe_bias, int b, int p0, int p1 ) { int y = get_global_id( 1 ); int mb_height = get_global_size( 1 ); int row_satds = 0; int cost_est = 0; int cost_est_aq = 0; int intra_mbs = 0; for( int x = get_global_id( 0 ); x < mb_width; x += get_global_size( 0 )) { int mb_xy = x + y * mb_width; int cost = fenc_lowres_costs[mb_xy] & LOWRES_COST_MASK; int list = fenc_lowres_costs[mb_xy] >> LOWRES_COST_SHIFT; int b_frame_score_mb = (x > 0 && x < mb_width - 1 && y > 0 && y < mb_height - 1) || mb_width <= 2 || mb_height <= 2; if( list == 0 && b_frame_score_mb ) intra_mbs++; int cost_aq = (cost * inv_qscale_factor[mb_xy] + 128) >> 8; row_satds += cost_aq; if( b_frame_score_mb ) { cost_est += cost; cost_est_aq += cost_aq; } } local int buffer[256]; int x = get_global_id( 0 ); row_satds = parallel_sum( row_satds, x, buffer ); cost_est = parallel_sum( cost_est, x, buffer ); cost_est_aq = parallel_sum( cost_est_aq, x, buffer ); intra_mbs = parallel_sum( intra_mbs, x, buffer ); if( b != p1 ) cost_est = (int)((float)cost_est * 100.0f / (120.0f + (float)bframe_bias)); if( get_global_id( 0 ) == 0 ) { fenc_row_satds[y] = row_satds; atomic_add( frame_stats + COST_EST, cost_est ); atomic_add( frame_stats + COST_EST_AQ, cost_est_aq ); atomic_add( frame_stats + INTRA_MBS, intra_mbs ); } } /* * downscale lowres luma: full-res buffer to down scale image, and to packed hpel image * * -- * * fenc_img is an output image (area of memory referenced through a texture * cache). A read of any pixel location (x,y) returns four pixel values: * * val.s0 = P(x,y) * val.s1 = P(x+1,y) * val.s2 = P(x+2,y) * val.s3 = P(x+3,y) * * This is a 4x replication of the lowres pixels, a trade-off between memory * size and read latency. * * -- * * hpel_planes is an output image that contains the four HPEL planes used for * subpel refinement. A read of any pixel location (x,y) returns a UInt32 with * the four planar values C | V | H | F * * launch dimensions: [lowres-width, lowres-height] */ kernel void downscale_hpel( const global pixel *fenc, write_only image2d_t fenc_img, write_only image2d_t hpel_planes, int stride ) { int x = get_global_id( 0 ); int y = get_global_id( 1 ); uint4 values; fenc += y * stride * 2; const global pixel *src1 = fenc + stride; const global pixel *src2 = (y == get_global_size( 1 )-1) ? src1 : src1 + stride; int2 pos = (int2)(x, y); pixel right, left; right = rhadd( fenc[x*2], src1[x*2] ); left = rhadd( fenc[x*2+1], src1[x*2+1] ); values.s0 = rhadd( right, left ); // F right = rhadd( fenc[2*x+1], src1[2*x+1] ); left = rhadd( fenc[2*x+2], src1[2*x+2] ); values.s1 = rhadd( right, left ); // H right = rhadd( src1[2*x], src2[2*x] ); left = rhadd( src1[2*x+1], src2[2*x+1] ); values.s2 = rhadd( right, left ); // V right = rhadd( src1[2*x+1], src2[2*x+1] ); left = rhadd( src1[2*x+2], src2[2*x+2] ); values.s3 = rhadd( right, left ); // C uint4 val = (uint4) ((values.s3 & 0xff) << 24) | ((values.s2 & 0xff) << 16) | ((values.s1 & 0xff) << 8) | (values.s0 & 0xff); write_imageui( hpel_planes, pos, val ); x = select( x, x+1, x+1 < get_global_size( 0 ) ); right = rhadd( fenc[x*2], src1[x*2] ); left = rhadd( fenc[x*2+1], src1[x*2+1] ); values.s1 = rhadd( right, left ); x = select( x, x+1, x+1 < get_global_size( 0 ) ); right = rhadd( fenc[x*2], src1[x*2] ); left = rhadd( fenc[x*2+1], src1[x*2+1] ); values.s2 = rhadd( right, left ); x = select( x, x+1, x+1 < get_global_size( 0 ) ); right = rhadd( fenc[x*2], src1[x*2] ); left = rhadd( fenc[x*2+1], src1[x*2+1] ); values.s3 = rhadd( right, left ); write_imageui( fenc_img, pos, values ); } /* * downscale lowres hierarchical motion search image, copy from one image to * another decimated image. This kernel is called iteratively to generate all * of the downscales. * * launch dimensions: [lower_res width, lower_res height] */ kernel void downscale1( read_only image2d_t higher_res, write_only image2d_t lower_res ) { int x = get_global_id( 0 ); int y = get_global_id( 1 ); int2 pos = (int2)(x, y); int gs = get_global_size( 0 ); uint4 top, bot, values; top = read_imageui( higher_res, sampler, (int2)(x*2, 2*y) ); bot = read_imageui( higher_res, sampler, (int2)(x*2, 2*y+1) ); values.s0 = rhadd( rhadd( top.s0, bot.s0 ), rhadd( top.s1, bot.s1 ) ); /* these select statements appear redundant, and they should be, but tests break when * they are not here. I believe this was caused by a driver bug */ values.s1 = select( values.s0, rhadd( rhadd( top.s2, bot.s2 ), rhadd( top.s3, bot.s3 ) ), ( x + 1 < gs) ); top = read_imageui( higher_res, sampler, (int2)(x*2+4, 2*y) ); bot = read_imageui( higher_res, sampler, (int2)(x*2+4, 2*y+1) ); values.s2 = select( values.s1, rhadd( rhadd( top.s0, bot.s0 ), rhadd( top.s1, bot.s1 ) ), ( x + 2 < gs ) ); values.s3 = select( values.s2, rhadd( rhadd( top.s2, bot.s2 ), rhadd( top.s3, bot.s3 ) ), ( x + 3 < gs ) ); write_imageui( lower_res, pos, (uint4)(values) ); } /* * Second copy of downscale kernel, no differences. This is a (no perf loss) * workaround for a scheduling bug in current Tahiti drivers. This bug has * theoretically been fixed in the July 2012 driver release from AMD. */ kernel void downscale2( read_only image2d_t higher_res, write_only image2d_t lower_res ) { int x = get_global_id( 0 ); int y = get_global_id( 1 ); int2 pos = (int2)(x, y); int gs = get_global_size( 0 ); uint4 top, bot, values; top = read_imageui( higher_res, sampler, (int2)(x*2, 2*y) ); bot = read_imageui( higher_res, sampler, (int2)(x*2, 2*y+1) ); values.s0 = rhadd( rhadd( top.s0, bot.s0 ), rhadd( top.s1, bot.s1 ) ); values.s1 = select( values.s0, rhadd( rhadd( top.s2, bot.s2 ), rhadd( top.s3, bot.s3 ) ), ( x + 1 < gs) ); top = read_imageui( higher_res, sampler, (int2)(x*2+4, 2*y) ); bot = read_imageui( higher_res, sampler, (int2)(x*2+4, 2*y+1) ); values.s2 = select( values.s1, rhadd( rhadd( top.s0, bot.s0 ), rhadd( top.s1, bot.s1 ) ), ( x + 2 < gs ) ); values.s3 = select( values.s2, rhadd( rhadd( top.s2, bot.s2 ), rhadd( top.s3, bot.s3 ) ), ( x + 3 < gs ) ); write_imageui( lower_res, pos, (uint4)(values) ); } /* OpenCL 1.2 finally added a memset command, but we're not targeting 1.2 */ kernel void memset_int16( global int16_t *buf, int16_t value ) { buf[get_global_id( 0 )] = value; } /* Lookahead lowres intra analysis * * Each intra analysis function has been implemented twice, once for scalar GPUs * (NV) and once for vectorized GPUs (AMD pre-Southern Islands). x264 detects * the GPU type and sets the -DVECTORIZE compile flag accordingly. * * All the intra analysis functions were based on their C versions in pixel.c * and produce the exact same results. */ /* force all clamp arguments and return value to int, prevent ambiguous types */ #define clamp_int( X, MIN, MAX ) (int) clamp( (int)(X), (int)(MIN), (int)(MAX) ) #if VECTORIZE int satd_8x4_intra_lr( const local pixel *data, int data_stride, int8 pr0, int8 pr1, int8 pr2, int8 pr3 ) { int8 a_v, d_v; int2 tmp00, tmp01, tmp02, tmp03, tmp10, tmp11, tmp12, tmp13; int2 tmp20, tmp21, tmp22, tmp23, tmp30, tmp31, tmp32, tmp33; d_v = convert_int8( vload8( 0, data ) ); a_v.s01234567 = (d_v - pr0).s04152637; HADAMARD4V( tmp00, tmp01, tmp02, tmp03, a_v.lo.lo, a_v.lo.hi, a_v.hi.lo, a_v.hi.hi ); data += data_stride; d_v = convert_int8( vload8( 0, data ) ); a_v.s01234567 = (d_v - pr1).s04152637; HADAMARD4V( tmp10, tmp11, tmp12, tmp13, a_v.lo.lo, a_v.lo.hi, a_v.hi.lo, a_v.hi.hi ); data += data_stride; d_v = convert_int8( vload8( 0, data ) ); a_v.s01234567 = (d_v - pr2).s04152637; HADAMARD4V( tmp20, tmp21, tmp22, tmp23, a_v.lo.lo, a_v.lo.hi, a_v.hi.lo, a_v.hi.hi ); data += data_stride; d_v = convert_int8( vload8( 0, data ) ); a_v.s01234567 = (d_v - pr3).s04152637; HADAMARD4V( tmp30, tmp31, tmp32, tmp33, a_v.lo.lo, a_v.lo.hi, a_v.hi.lo, a_v.hi.hi ); uint8 sum_v; HADAMARD4V( a_v.lo.lo, a_v.lo.hi, a_v.hi.lo, a_v.hi.hi, tmp00, tmp10, tmp20, tmp30 ); sum_v = abs( a_v ); HADAMARD4V( a_v.lo.lo, a_v.lo.hi, a_v.hi.lo, a_v.hi.hi, tmp01, tmp11, tmp21, tmp31 ); sum_v += abs( a_v ); HADAMARD4V( a_v.lo.lo, a_v.lo.hi, a_v.hi.lo, a_v.hi.hi, tmp02, tmp12, tmp22, tmp32 ); sum_v += abs( a_v ); HADAMARD4V( a_v.lo.lo, a_v.lo.hi, a_v.hi.lo, a_v.hi.hi, tmp03, tmp13, tmp23, tmp33 ); sum_v += abs( a_v ); uint4 sum2 = sum_v.hi + sum_v.lo; uint2 sum3 = sum2.hi + sum2.lo; return ( sum3.hi + sum3.lo ) >> 1; } #else SATD_C_8x4_Q( satd_8x4_lp, const local, private ) #endif /**************************************************************************** * 8x8 prediction for intra luma block ****************************************************************************/ #define F1 rhadd #define F2( a, b, c ) ( a+2*b+c+2 )>>2 #if VECTORIZE int x264_predict_8x8_ddl( const local pixel *src, int src_stride, const local pixel *top ) { int8 pr0, pr1, pr2, pr3; pr0.s0 = ( 2 + top[0] + 2*top[1] + top[2] ) >> 2; pr0.s1 = ( 2 + top[1] + 2*top[2] + top[3] ) >> 2; pr0.s2 = ( 2 + top[2] + 2*top[3] + top[4] ) >> 2; pr0.s3 = ( 2 + top[3] + 2*top[4] + top[5] ) >> 2; pr0.s4 = ( 2 + top[4] + 2*top[5] + top[6] ) >> 2; pr0.s5 = ( 2 + top[5] + 2*top[6] + top[7] ) >> 2; pr0.s6 = ( 2 + top[6] + 2*top[7] + top[8] ) >> 2; pr0.s7 = ( 2 + top[7] + 2*top[8] + top[9] ) >> 2; pr1.s0 = ( 2 + top[1] + 2*top[2] + top[3] ) >> 2; pr1.s1 = ( 2 + top[2] + 2*top[3] + top[4] ) >> 2; pr1.s2 = ( 2 + top[3] + 2*top[4] + top[5] ) >> 2; pr1.s3 = ( 2 + top[4] + 2*top[5] + top[6] ) >> 2; pr1.s4 = ( 2 + top[5] + 2*top[6] + top[7] ) >> 2; pr1.s5 = ( 2 + top[6] + 2*top[7] + top[8] ) >> 2; pr1.s6 = ( 2 + top[7] + 2*top[8] + top[9] ) >> 2; pr1.s7 = ( 2 + top[8] + 2*top[9] + top[10] ) >> 2; pr2.s0 = ( 2 + top[2] + 2*top[3] + top[4] ) >> 2; pr2.s1 = ( 2 + top[3] + 2*top[4] + top[5] ) >> 2; pr2.s2 = ( 2 + top[4] + 2*top[5] + top[6] ) >> 2; pr2.s3 = ( 2 + top[5] + 2*top[6] + top[7] ) >> 2; pr2.s4 = ( 2 + top[6] + 2*top[7] + top[8] ) >> 2; pr2.s5 = ( 2 + top[7] + 2*top[8] + top[9] ) >> 2; pr2.s6 = ( 2 + top[8] + 2*top[9] + top[10] ) >> 2; pr2.s7 = ( 2 + top[9] + 2*top[10] + top[11] ) >> 2; pr3.s0 = ( 2 + top[3] + 2*top[4] + top[5] ) >> 2; pr3.s1 = ( 2 + top[4] + 2*top[5] + top[6] ) >> 2; pr3.s2 = ( 2 + top[5] + 2*top[6] + top[7] ) >> 2; pr3.s3 = ( 2 + top[6] + 2*top[7] + top[8] ) >> 2; pr3.s4 = ( 2 + top[7] + 2*top[8] + top[9] ) >> 2; pr3.s5 = ( 2 + top[8] + 2*top[9] + top[10] ) >> 2; pr3.s6 = ( 2 + top[9] + 2*top[10] + top[11] ) >> 2; pr3.s7 = ( 2 + top[10] + 2*top[11] + top[12] ) >> 2; int satd = satd_8x4_intra_lr( src, src_stride, pr0, pr1, pr2, pr3 ); pr0.s0 = ( 2 + top[4] + 2*top[5] + top[6] ) >> 2; pr0.s1 = ( 2 + top[5] + 2*top[6] + top[7] ) >> 2; pr0.s2 = ( 2 + top[6] + 2*top[7] + top[8] ) >> 2; pr0.s3 = ( 2 + top[7] + 2*top[8] + top[9] ) >> 2; pr0.s4 = ( 2 + top[8] + 2*top[9] + top[10] ) >> 2; pr0.s5 = ( 2 + top[9] + 2*top[10] + top[11] ) >> 2; pr0.s6 = ( 2 + top[10] + 2*top[11] + top[12] ) >> 2; pr0.s7 = ( 2 + top[11] + 2*top[12] + top[13] ) >> 2; pr1.s0 = ( 2 + top[5] + 2*top[6] + top[7] ) >> 2; pr1.s1 = ( 2 + top[6] + 2*top[7] + top[8] ) >> 2; pr1.s2 = ( 2 + top[7] + 2*top[8] + top[9] ) >> 2; pr1.s3 = ( 2 + top[8] + 2*top[9] + top[10] ) >> 2; pr1.s4 = ( 2 + top[9] + 2*top[10] + top[11] ) >> 2; pr1.s5 = ( 2 + top[10] + 2*top[11] + top[12] ) >> 2; pr1.s6 = ( 2 + top[11] + 2*top[12] + top[13] ) >> 2; pr1.s7 = ( 2 + top[12] + 2*top[13] + top[14] ) >> 2; pr2.s0 = ( 2 + top[6] + 2*top[7] + top[8] ) >> 2; pr2.s1 = ( 2 + top[7] + 2*top[8] + top[9] ) >> 2; pr2.s2 = ( 2 + top[8] + 2*top[9] + top[10] ) >> 2; pr2.s3 = ( 2 + top[9] + 2*top[10] + top[11] ) >> 2; pr2.s4 = ( 2 + top[10] + 2*top[11] + top[12] ) >> 2; pr2.s5 = ( 2 + top[11] + 2*top[12] + top[13] ) >> 2; pr2.s6 = ( 2 + top[12] + 2*top[13] + top[14] ) >> 2; pr2.s7 = ( 2 + top[13] + 2*top[14] + top[15] ) >> 2; pr3.s0 = ( 2 + top[7] + 2*top[8] + top[9] ) >> 2; pr3.s1 = ( 2 + top[8] + 2*top[9] + top[10] ) >> 2; pr3.s2 = ( 2 + top[9] + 2*top[10] + top[11] ) >> 2; pr3.s3 = ( 2 + top[10] + 2*top[11] + top[12] ) >> 2; pr3.s4 = ( 2 + top[11] + 2*top[12] + top[13] ) >> 2; pr3.s5 = ( 2 + top[12] + 2*top[13] + top[14] ) >> 2; pr3.s6 = ( 2 + top[13] + 2*top[14] + top[15] ) >> 2; pr3.s7 = ( 2 + top[14] + 3*top[15] ) >> 2; return satd + satd_8x4_intra_lr( src + (src_stride << 2), src_stride, pr0, pr1, pr2, pr3 ); } int x264_predict_8x8_ddr( const local pixel *src, int src_stride, const local pixel *top, const local pixel *left, pixel left_top ) { int8 pr0, pr1, pr2, pr3; pr3.s0 = F2( left[1], left[2], left[3] ); pr2.s0 = pr3.s1 = F2( left[0], left[1], left[2] ); pr1.s0 = pr2.s1 = pr3.s2 = F2( left[1], left[0], left_top ); pr0.s0 = pr1.s1 = pr2.s2 = pr3.s3 = F2( left[0], left_top, top[0] ); pr0.s1 = pr1.s2 = pr2.s3 = pr3.s4 = F2( left_top, top[0], top[1] ); pr0.s2 = pr1.s3 = pr2.s4 = pr3.s5 = F2( top[0], top[1], top[2] ); pr0.s3 = pr1.s4 = pr2.s5 = pr3.s6 = F2( top[1], top[2], top[3] ); pr0.s4 = pr1.s5 = pr2.s6 = pr3.s7 = F2( top[2], top[3], top[4] ); pr0.s5 = pr1.s6 = pr2.s7 = F2( top[3], top[4], top[5] ); pr0.s6 = pr1.s7 = F2( top[4], top[5], top[6] ); pr0.s7 = F2( top[5], top[6], top[7] ); int satd = satd_8x4_intra_lr( src, src_stride, pr0, pr1, pr2, pr3 ); pr3.s0 = F2( left[5], left[6], left[7] ); pr2.s0 = pr3.s1 = F2( left[4], left[5], left[6] ); pr1.s0 = pr2.s1 = pr3.s2 = F2( left[3], left[4], left[5] ); pr0.s0 = pr1.s1 = pr2.s2 = pr3.s3 = F2( left[2], left[3], left[4] ); pr0.s1 = pr1.s2 = pr2.s3 = pr3.s4 = F2( left[1], left[2], left[3] ); pr0.s2 = pr1.s3 = pr2.s4 = pr3.s5 = F2( left[0], left[1], left[2] ); pr0.s3 = pr1.s4 = pr2.s5 = pr3.s6 = F2( left[1], left[0], left_top ); pr0.s4 = pr1.s5 = pr2.s6 = pr3.s7 = F2( left[0], left_top, top[0] ); pr0.s5 = pr1.s6 = pr2.s7 = F2( left_top, top[0], top[1] ); pr0.s6 = pr1.s7 = F2( top[0], top[1], top[2] ); pr0.s7 = F2( top[1], top[2], top[3] ); return satd + satd_8x4_intra_lr( src + (src_stride << 2), src_stride, pr0, pr1, pr2, pr3 ); } int x264_predict_8x8_vr( const local pixel *src, int src_stride, const local pixel *top, const local pixel *left, pixel left_top ) { int8 pr0, pr1, pr2, pr3; pr2.s0 = F2( left[1], left[0], left_top ); pr3.s0 = F2( left[2], left[1], left[0] ); pr1.s0 = pr3.s1 = F2( left[0], left_top, top[0] ); pr0.s0 = pr2.s1 = F1( left_top, top[0] ); pr1.s1 = pr3.s2 = F2( left_top, top[0], top[1] ); pr0.s1 = pr2.s2 = F1( top[0], top[1] ); pr1.s2 = pr3.s3 = F2( top[0], top[1], top[2] ); pr0.s2 = pr2.s3 = F1( top[1], top[2] ); pr1.s3 = pr3.s4 = F2( top[1], top[2], top[3] ); pr0.s3 = pr2.s4 = F1( top[2], top[3] ); pr1.s4 = pr3.s5 = F2( top[2], top[3], top[4] ); pr0.s4 = pr2.s5 = F1( top[3], top[4] ); pr1.s5 = pr3.s6 = F2( top[3], top[4], top[5] ); pr0.s5 = pr2.s6 = F1( top[4], top[5] ); pr1.s6 = pr3.s7 = F2( top[4], top[5], top[6] ); pr0.s6 = pr2.s7 = F1( top[5], top[6] ); pr1.s7 = F2( top[5], top[6], top[7] ); pr0.s7 = F1( top[6], top[7] ); int satd = satd_8x4_intra_lr( src, src_stride, pr0, pr1, pr2, pr3 ); pr2.s0 = F2( left[5], left[4], left[3] ); pr3.s0 = F2( left[6], left[5], left[4] ); pr0.s0 = pr2.s1 = F2( left[3], left[2], left[1] ); pr1.s0 = pr3.s1 = F2( left[4], left[3], left[2] ); pr0.s1 = pr2.s2 = F2( left[1], left[0], left_top ); pr1.s1 = pr3.s2 = F2( left[2], left[1], left[0] ); pr1.s2 = pr3.s3 = F2( left[0], left_top, top[0] ); pr0.s2 = pr2.s3 = F1( left_top, top[0] ); pr1.s3 = pr3.s4 = F2( left_top, top[0], top[1] ); pr0.s3 = pr2.s4 = F1( top[0], top[1] ); pr1.s4 = pr3.s5 = F2( top[0], top[1], top[2] ); pr0.s4 = pr2.s5 = F1( top[1], top[2] ); pr1.s5 = pr3.s6 = F2( top[1], top[2], top[3] ); pr0.s5 = pr2.s6 = F1( top[2], top[3] ); pr1.s6 = pr3.s7 = F2( top[2], top[3], top[4] ); pr0.s6 = pr2.s7 = F1( top[3], top[4] ); pr1.s7 = F2( top[3], top[4], top[5] ); pr0.s7 = F1( top[4], top[5] ); return satd + satd_8x4_intra_lr( src + (src_stride << 2), src_stride, pr0, pr1, pr2, pr3 ); #undef PRED } int x264_predict_8x8_hd( const local pixel *src, int src_stride, const local pixel *top, const local pixel *left, pixel left_top ) { int8 pr0, pr1, pr2, pr3; pr0.s0 = F1( left_top, left[0] ); pr0.s1 = (left[0] + 2 * left_top + top[0] + 2) >> 2; pr0.s2 = F2( top[1], top[0], left_top ); pr0.s3 = F2( top[2], top[1], top[0] ); pr0.s4 = F2( top[3], top[2], top[1] ); pr0.s5 = F2( top[4], top[3], top[2] ); pr0.s6 = F2( top[5], top[4], top[3] ); pr0.s7 = F2( top[6], top[5], top[4] ); pr1.s0 = F1( left[0], left[1] ); pr1.s1 = (left_top + 2 * left[0] + left[1] + 2) >> 2; pr1.s2 = F1( left_top, left[0] ); pr1.s3 = (left[0] + 2 * left_top + top[0] + 2) >> 2; pr1.s4 = F2( top[1], top[0], left_top ); pr1.s5 = F2( top[2], top[1], top[0] ); pr1.s6 = F2( top[3], top[2], top[1] ); pr1.s7 = F2( top[4], top[3], top[2] ); pr2.s0 = F1( left[1], left[2] ); pr2.s1 = (left[0] + 2 * left[1] + left[2] + 2) >> 2; pr2.s2 = F1( left[0], left[1] ); pr2.s3 = (left_top + 2 * left[0] + left[1] + 2) >> 2; pr2.s4 = F1( left_top, left[0] ); pr2.s5 = (left[0] + 2 * left_top + top[0] + 2) >> 2; pr2.s6 = F2( top[1], top[0], left_top ); pr2.s7 = F2( top[2], top[1], top[0] ); pr3.s0 = F1( left[2], left[3] ); pr3.s1 = (left[1] + 2 * left[2] + left[3] + 2) >> 2; pr3.s2 = F1( left[1], left[2] ); pr3.s3 = (left[0] + 2 * left[1] + left[2] + 2) >> 2; pr3.s4 = F1( left[0], left[1] ); pr3.s5 = (left_top + 2 * left[0] + left[1] + 2) >> 2; pr3.s6 = F1( left_top, left[0] ); pr3.s7 = (left[0] + 2 * left_top + top[0] + 2) >> 2; int satd = satd_8x4_intra_lr( src, src_stride, pr0, pr1, pr2, pr3 ); pr0.s0 = F1( left[3], left[4] ); pr0.s1 = (left[2] + 2 * left[3] + left[4] + 2) >> 2; pr0.s2 = F1( left[2], left[3] ); pr0.s3 = (left[1] + 2 * left[2] + left[3] + 2) >> 2; pr0.s4 = F1( left[1], left[2] ); pr0.s5 = (left[0] + 2 * left[1] + left[2] + 2) >> 2; pr0.s6 = F1( left[0], left[1] ); pr0.s7 = (left_top + 2 * left[0] + left[1] + 2) >> 2; pr1.s0 = F1( left[4], left[5] ); pr1.s1 = (left[3] + 2 * left[4] + left[5] + 2) >> 2; pr1.s2 = F1( left[3], left[4] ); pr1.s3 = (left[2] + 2 * left[3] + left[4] + 2) >> 2; pr1.s4 = F1( left[2], left[3] ); pr1.s5 = (left[1] + 2 * left[2] + left[3] + 2) >> 2; pr1.s6 = F1( left[1], left[2] ); pr1.s7 = (left[0] + 2 * left[1] + left[2] + 2) >> 2; pr2.s0 = F1( left[5], left[6] ); pr2.s1 = (left[4] + 2 * left[5] + left[6] + 2) >> 2; pr2.s2 = F1( left[4], left[5] ); pr2.s3 = (left[3] + 2 * left[4] + left[5] + 2) >> 2; pr2.s4 = F1( left[3], left[4] ); pr2.s5 = (left[2] + 2 * left[3] + left[4] + 2) >> 2; pr2.s6 = F1( left[2], left[3] ); pr2.s7 = (left[1] + 2 * left[2] + left[3] + 2) >> 2; pr3.s0 = F1( left[6], left[7] ); pr3.s1 = (left[5] + 2 * left[6] + left[7] + 2) >> 2; pr3.s2 = F1( left[5], left[6] ); pr3.s3 = (left[4] + 2 * left[5] + left[6] + 2) >> 2; pr3.s4 = F1( left[4], left[5] ); pr3.s5 = (left[3] + 2 * left[4] + left[5] + 2) >> 2; pr3.s6 = F1( left[3], left[4] ); pr3.s7 = (left[2] + 2 * left[3] + left[4] + 2) >> 2; return satd + satd_8x4_intra_lr( src + (src_stride << 2), src_stride, pr0, pr1, pr2, pr3 ); } int x264_predict_8x8_vl( const local pixel *src, int src_stride, const local pixel *top ) { int8 pr0, pr1, pr2, pr3; pr0.s0 = F1( top[0], top[1] ); pr1.s0 = F2( top[0], top[1], top[2] ); pr2.s0 = pr0.s1 = F1( top[1], top[2] ); pr3.s0 = pr1.s1 = F2( top[1], top[2], top[3] ); pr2.s1 = pr0.s2 = F1( top[2], top[3] ); pr3.s1 = pr1.s2 = F2( top[2], top[3], top[4] ); pr2.s2 = pr0.s3 = F1( top[3], top[4] ); pr3.s2 = pr1.s3 = F2( top[3], top[4], top[5] ); pr2.s3 = pr0.s4 = F1( top[4], top[5] ); pr3.s3 = pr1.s4 = F2( top[4], top[5], top[6] ); pr2.s4 = pr0.s5 = F1( top[5], top[6] ); pr3.s4 = pr1.s5 = F2( top[5], top[6], top[7] ); pr2.s5 = pr0.s6 = F1( top[6], top[7] ); pr3.s5 = pr1.s6 = F2( top[6], top[7], top[8] ); pr2.s6 = pr0.s7 = F1( top[7], top[8] ); pr3.s6 = pr1.s7 = F2( top[7], top[8], top[9] ); pr2.s7 = F1( top[8], top[9] ); pr3.s7 = F2( top[8], top[9], top[10] ); int satd = satd_8x4_intra_lr( src, src_stride, pr0, pr1, pr2, pr3 ); pr0.s0 = F1( top[2], top[3] ); pr1.s0 = F2( top[2], top[3], top[4] ); pr2.s0 = pr0.s1 = F1( top[3], top[4] ); pr3.s0 = pr1.s1 = F2( top[3], top[4], top[5] ); pr2.s1 = pr0.s2 = F1( top[4], top[5] ); pr3.s1 = pr1.s2 = F2( top[4], top[5], top[6] ); pr2.s2 = pr0.s3 = F1( top[5], top[6] ); pr3.s2 = pr1.s3 = F2( top[5], top[6], top[7] ); pr2.s3 = pr0.s4 = F1( top[6], top[7] ); pr3.s3 = pr1.s4 = F2( top[6], top[7], top[8] ); pr2.s4 = pr0.s5 = F1( top[7], top[8] ); pr3.s4 = pr1.s5 = F2( top[7], top[8], top[9] ); pr2.s5 = pr0.s6 = F1( top[8], top[9] ); pr3.s5 = pr1.s6 = F2( top[8], top[9], top[10] ); pr2.s6 = pr0.s7 = F1( top[9], top[10] ); pr3.s6 = pr1.s7 = F2( top[9], top[10], top[11] ); pr2.s7 = F1( top[10], top[11] ); pr3.s7 = F2( top[10], top[11], top[12] ); return satd + satd_8x4_intra_lr( src + ( src_stride << 2 ), src_stride, pr0, pr1, pr2, pr3 ); } int x264_predict_8x8_hu( const local pixel *src, int src_stride, const local pixel *left ) { int8 pr0, pr1, pr2, pr3; pr0.s0 = F1( left[0], left[1] ); pr0.s1 = (left[0] + 2 * left[1] + left[2] + 2) >> 2; pr0.s2 = F1( left[1], left[2] ); pr0.s3 = (left[1] + 2 * left[2] + left[3] + 2) >> 2; pr0.s4 = F1( left[2], left[3] ); pr0.s5 = (left[2] + 2 * left[3] + left[4] + 2) >> 2; pr0.s6 = F1( left[3], left[4] ); pr0.s7 = (left[3] + 2 * left[4] + left[5] + 2) >> 2; pr1.s0 = F1( left[1], left[2] ); pr1.s1 = (left[1] + 2 * left[2] + left[3] + 2) >> 2; pr1.s2 = F1( left[2], left[3] ); pr1.s3 = (left[2] + 2 * left[3] + left[4] + 2) >> 2; pr1.s4 = F1( left[3], left[4] ); pr1.s5 = (left[3] + 2 * left[4] + left[5] + 2) >> 2; pr1.s6 = F1( left[4], left[5] ); pr1.s7 = (left[4] + 2 * left[5] + left[6] + 2) >> 2; pr2.s0 = F1( left[2], left[3] ); pr2.s1 = (left[2] + 2 * left[3] + left[4] + 2) >> 2; pr2.s2 = F1( left[3], left[4] ); pr2.s3 = (left[3] + 2 * left[4] + left[5] + 2) >> 2; pr2.s4 = F1( left[4], left[5] ); pr2.s5 = (left[4] + 2 * left[5] + left[6] + 2) >> 2; pr2.s6 = F1( left[5], left[6] ); pr2.s7 = (left[5] + 2 * left[6] + left[7] + 2) >> 2; pr3.s0 = F1( left[3], left[4] ); pr3.s1 = (left[3] + 2 * left[4] + left[5] + 2) >> 2; pr3.s2 = F1( left[4], left[5] ); pr3.s3 = (left[4] + 2 * left[5] + left[6] + 2) >> 2; pr3.s4 = F1( left[5], left[6] ); pr3.s5 = (left[5] + 2 * left[6] + left[7] + 2) >> 2; pr3.s6 = F1( left[6], left[7] ); pr3.s7 = (left[6] + 2 * left[7] + left[7] + 2) >> 2; int satd = satd_8x4_intra_lr( src, src_stride, pr0, pr1, pr2, pr3 ); pr0.s0 = F1( left[4], left[5] ); pr0.s1 = (left[4] + 2 * left[5] + left[6] + 2) >> 2; pr0.s2 = F1( left[5], left[6] ); pr0.s3 = (left[5] + 2 * left[6] + left[7] + 2) >> 2; pr0.s4 = F1( left[6], left[7] ); pr0.s5 = (left[6] + 2 * left[7] + left[7] + 2) >> 2; pr0.s6 = left[7]; pr0.s7 = left[7]; pr1.s0 = F1( left[5], left[6] ); pr1.s1 = (left[5] + 2 * left[6] + left[7] + 2) >> 2; pr1.s2 = F1( left[6], left[7] ); pr1.s3 = (left[6] + 2 * left[7] + left[7] + 2) >> 2; pr1.s4 = left[7]; pr1.s5 = left[7]; pr1.s6 = left[7]; pr1.s7 = left[7]; pr2.s0 = F1( left[6], left[7] ); pr2.s1 = (left[6] + 2 * left[7] + left[7] + 2) >> 2; pr2.s2 = left[7]; pr2.s3 = left[7]; pr2.s4 = left[7]; pr2.s5 = left[7]; pr2.s6 = left[7]; pr2.s7 = left[7]; pr3 = (int8)left[7]; return satd + satd_8x4_intra_lr( src + ( src_stride << 2 ), src_stride, pr0, pr1, pr2, pr3 ); } int x264_predict_8x8c_h( const local pixel *src, int src_stride ) { const local pixel *src_l = src; int8 pr0, pr1, pr2, pr3; pr0 = (int8)src[-1]; src += src_stride; pr1 = (int8)src[-1]; src += src_stride; pr2 = (int8)src[-1]; src += src_stride; pr3 = (int8)src[-1]; src += src_stride; int satd = satd_8x4_intra_lr( src_l, src_stride, pr0, pr1, pr2, pr3 ); pr0 = (int8)src[-1]; src += src_stride; pr1 = (int8)src[-1]; src += src_stride; pr2 = (int8)src[-1]; src += src_stride; pr3 = (int8)src[-1]; return satd + satd_8x4_intra_lr( src_l + ( src_stride << 2 ), src_stride, pr0, pr1, pr2, pr3 ); } int x264_predict_8x8c_v( const local pixel *src, int src_stride ) { int8 pred = convert_int8( vload8( 0, &src[-src_stride] )); return satd_8x4_intra_lr( src, src_stride, pred, pred, pred, pred ) + satd_8x4_intra_lr( src + ( src_stride << 2 ), src_stride, pred, pred, pred, pred ); } int x264_predict_8x8c_p( const local pixel *src, int src_stride ) { int H = 0, V = 0; for( int i = 0; i < 4; i++ ) { H += (i + 1) * (src[4 + i - src_stride] - src[2 - i - src_stride]); V += (i + 1) * (src[-1 + (i + 4) * src_stride] - src[-1 + (2 - i) * src_stride]); } int a = 16 * (src[-1 + 7 * src_stride] + src[7 - src_stride]); int b = (17 * H + 16) >> 5; int c = (17 * V + 16) >> 5; int i00 = a - 3 * b - 3 * c + 16; int pix = i00; int8 pr0, pr1, pr2, pr3; pr0.s0 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s1 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s2 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s3 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s4 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s5 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s6 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s7 = x264_clip_pixel( pix >> 5 ); i00 += c; pix = i00; pr1.s0 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s1 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s2 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s3 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s4 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s5 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s6 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s7 = x264_clip_pixel( pix >> 5 ); i00 += c; pix = i00; pr2.s0 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s1 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s2 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s3 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s4 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s5 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s6 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s7 = x264_clip_pixel( pix >> 5 ); i00 += c; pix = i00; pr3.s0 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s1 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s2 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s3 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s4 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s5 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s6 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s7 = x264_clip_pixel( pix >> 5 ); i00 += c; int satd = satd_8x4_intra_lr( src, src_stride, pr0, pr1, pr2, pr3 ); pix = i00; pr0.s0 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s1 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s2 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s3 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s4 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s5 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s6 = x264_clip_pixel( pix >> 5 ); pix += b; pr0.s7 = x264_clip_pixel( pix >> 5 ); i00 += c; pix = i00; pr1.s0 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s1 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s2 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s3 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s4 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s5 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s6 = x264_clip_pixel( pix >> 5 ); pix += b; pr1.s7 = x264_clip_pixel( pix >> 5 ); i00 += c; pix = i00; pr2.s0 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s1 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s2 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s3 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s4 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s5 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s6 = x264_clip_pixel( pix >> 5 ); pix += b; pr2.s7 = x264_clip_pixel( pix >> 5 ); i00 += c; pix = i00; pr3.s0 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s1 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s2 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s3 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s4 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s5 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s6 = x264_clip_pixel( pix >> 5 ); pix += b; pr3.s7 = x264_clip_pixel( pix >> 5 ); i00 += c; return satd + satd_8x4_intra_lr( src + ( src_stride << 2 ), src_stride, pr0, pr1, pr2, pr3 ); } int x264_predict_8x8c_dc( const local pixel *src, int src_stride ) { int s0 = 0, s1 = 0, s2 = 0, s3 = 0; for( int i = 0; i < 4; i++ ) { s0 += src[i - src_stride]; s1 += src[i + 4 - src_stride]; s2 += src[-1 + i * src_stride]; s3 += src[-1 + (i+4)*src_stride]; } int8 dc0; dc0.lo = (int4)( (s0 + s2 + 4) >> 3 ); dc0.hi = (int4)( (s1 + 2) >> 2 ); int satd = satd_8x4_intra_lr( src, src_stride, dc0, dc0, dc0, dc0 ); dc0.lo = (int4)( (s3 + 2) >> 2 ); dc0.hi = (int4)( (s1 + s3 + 4) >> 3 ); return satd + satd_8x4_intra_lr( src + ( src_stride << 2 ), src_stride, dc0, dc0, dc0, dc0 ); } #else /* not vectorized: private is cheap registers are scarce */ int x264_predict_8x8_ddl( const local pixel *src, int src_stride, const local pixel *top ) { private pixel pred[32]; for( int y = 0; y < 4; y++ ) { for( int x = 0; x < 8; x++ ) { pixel x_plus_y = (pixel) clamp_int( x + y, 0, 13 ); pred[x + y*8] = ( 2 + top[x_plus_y] + 2*top[x_plus_y + 1] + top[x_plus_y + 2] ) >> 2; } } int satd = satd_8x4_lp( src, src_stride, pred, 8 ); for( int y = 4; y < 8; y++ ) { for( int x = 0; x < 8; x++ ) { pixel x_plus_y = (pixel) clamp_int( x + y, 0, 13 ); pred[x + ( y - 4 )*8] = ( 2 + top[x_plus_y] + 2*top[x_plus_y + 1] + top[x_plus_y + 2] ) >> 2; } } pred[31] = ( 2 + top[14] + 3*top[15] ) >> 2; satd += satd_8x4_lp( src + ( src_stride << 2 ), src_stride, pred, 8 ); return satd; } int x264_predict_8x8_ddr( const local pixel *src, int src_stride, const local pixel *top, const local pixel *left, pixel left_top ) { private pixel pred[32]; #define PRED( x, y ) pred[(x) + (y)*8] PRED( 0, 3 ) = F2( left[1], left[2], left[3] ); PRED( 0, 2 ) = PRED( 1, 3 ) = F2( left[0], left[1], left[2] ); PRED( 0, 1 ) = PRED( 1, 2 ) = PRED( 2, 3 ) = F2( left[1], left[0], left_top ); PRED( 0, 0 ) = PRED( 1, 1 ) = PRED( 2, 2 ) = PRED( 3, 3 ) = F2( left[0], left_top, top[0] ); PRED( 1, 0 ) = PRED( 2, 1 ) = PRED( 3, 2 ) = PRED( 4, 3 ) = F2( left_top, top[0], top[1] ); PRED( 2, 0 ) = PRED( 3, 1 ) = PRED( 4, 2 ) = PRED( 5, 3 ) = F2( top[0], top[1], top[2] ); PRED( 3, 0 ) = PRED( 4, 1 ) = PRED( 5, 2 ) = PRED( 6, 3 ) = F2( top[1], top[2], top[3] ); PRED( 4, 0 ) = PRED( 5, 1 ) = PRED( 6, 2 ) = PRED( 7, 3 ) = F2( top[2], top[3], top[4] ); PRED( 5, 0 ) = PRED( 6, 1 ) = PRED( 7, 2 ) = F2( top[3], top[4], top[5] ); PRED( 6, 0 ) = PRED( 7, 1 ) = F2( top[4], top[5], top[6] ); PRED( 7, 0 ) = F2( top[5], top[6], top[7] ); int satd = satd_8x4_lp( src, src_stride, pred, 8 ); PRED( 0, 3 ) = F2( left[5], left[6], left[7] ); PRED( 0, 2 ) = PRED( 1, 3 ) = F2( left[4], left[5], left[6] ); PRED( 0, 1 ) = PRED( 1, 2 ) = PRED( 2, 3 ) = F2( left[3], left[4], left[5] ); PRED( 0, 0 ) = PRED( 1, 1 ) = PRED( 2, 2 ) = PRED( 3, 3 ) = F2( left[2], left[3], left[4] ); PRED( 1, 0 ) = PRED( 2, 1 ) = PRED( 3, 2 ) = PRED( 4, 3 ) = F2( left[1], left[2], left[3] ); PRED( 2, 0 ) = PRED( 3, 1 ) = PRED( 4, 2 ) = PRED( 5, 3 ) = F2( left[0], left[1], left[2] ); PRED( 3, 0 ) = PRED( 4, 1 ) = PRED( 5, 2 ) = PRED( 6, 3 ) = F2( left[1], left[0], left_top ); PRED( 4, 0 ) = PRED( 5, 1 ) = PRED( 6, 2 ) = PRED( 7, 3 ) = F2( left[0], left_top, top[0] ); PRED( 5, 0 ) = PRED( 6, 1 ) = PRED( 7, 2 ) = F2( left_top, top[0], top[1] ); PRED( 6, 0 ) = PRED( 7, 1 ) = F2( top[0], top[1], top[2] ); PRED( 7, 0 ) = F2( top[1], top[2], top[3] ); satd += satd_8x4_lp( src + ( src_stride << 2 ), src_stride, pred, 8 ); return satd; #undef PRED } int x264_predict_8x8_vr( const local pixel *src, int src_stride, const local pixel *top, const local pixel *left, pixel left_top ) { private pixel pred[32]; #define PRED( x, y ) pred[(x) + (y)*8] PRED( 0, 2 ) = F2( left[1], left[0], left_top ); PRED( 0, 3 ) = F2( left[2], left[1], left[0] ); PRED( 0, 1 ) = PRED( 1, 3 ) = F2( left[0], left_top, top[0] ); PRED( 0, 0 ) = PRED( 1, 2 ) = F1( left_top, top[0] ); PRED( 1, 1 ) = PRED( 2, 3 ) = F2( left_top, top[0], top[1] ); PRED( 1, 0 ) = PRED( 2, 2 ) = F1( top[0], top[1] ); PRED( 2, 1 ) = PRED( 3, 3 ) = F2( top[0], top[1], top[2] ); PRED( 2, 0 ) = PRED( 3, 2 ) = F1( top[1], top[2] ); PRED( 3, 1 ) = PRED( 4, 3 ) = F2( top[1], top[2], top[3] ); PRED( 3, 0 ) = PRED( 4, 2 ) = F1( top[2], top[3] ); PRED( 4, 1 ) = PRED( 5, 3 ) = F2( top[2], top[3], top[4] ); PRED( 4, 0 ) = PRED( 5, 2 ) = F1( top[3], top[4] ); PRED( 5, 1 ) = PRED( 6, 3 ) = F2( top[3], top[4], top[5] ); PRED( 5, 0 ) = PRED( 6, 2 ) = F1( top[4], top[5] ); PRED( 6, 1 ) = PRED( 7, 3 ) = F2( top[4], top[5], top[6] ); PRED( 6, 0 ) = PRED( 7, 2 ) = F1( top[5], top[6] ); PRED( 7, 1 ) = F2( top[5], top[6], top[7] ); PRED( 7, 0 ) = F1( top[6], top[7] ); int satd = satd_8x4_lp( src, src_stride, pred, 8 ); PRED( 0, 2 ) = F2( left[5], left[4], left[3] ); PRED( 0, 3 ) = F2( left[6], left[5], left[4] ); PRED( 0, 0 ) = PRED( 1, 2 ) = F2( left[3], left[2], left[1] ); PRED( 0, 1 ) = PRED( 1, 3 ) = F2( left[4], left[3], left[2] ); PRED( 1, 0 ) = PRED( 2, 2 ) = F2( left[1], left[0], left_top ); PRED( 1, 1 ) = PRED( 2, 3 ) = F2( left[2], left[1], left[0] ); PRED( 2, 1 ) = PRED( 3, 3 ) = F2( left[0], left_top, top[0] ); PRED( 2, 0 ) = PRED( 3, 2 ) = F1( left_top, top[0] ); PRED( 3, 1 ) = PRED( 4, 3 ) = F2( left_top, top[0], top[1] ); PRED( 3, 0 ) = PRED( 4, 2 ) = F1( top[0], top[1] ); PRED( 4, 1 ) = PRED( 5, 3 ) = F2( top[0], top[1], top[2] ); PRED( 4, 0 ) = PRED( 5, 2 ) = F1( top[1], top[2] ); PRED( 5, 1 ) = PRED( 6, 3 ) = F2( top[1], top[2], top[3] ); PRED( 5, 0 ) = PRED( 6, 2 ) = F1( top[2], top[3] ); PRED( 6, 1 ) = PRED( 7, 3 ) = F2( top[2], top[3], top[4] ); PRED( 6, 0 ) = PRED( 7, 2 ) = F1( top[3], top[4] ); PRED( 7, 1 ) = F2( top[3], top[4], top[5] ); PRED( 7, 0 ) = F1( top[4], top[5] ); satd += satd_8x4_lp( src + ( src_stride << 2 ), src_stride, pred, 8 ); return satd; #undef PRED } inline uint32_t pack16to32( uint32_t a, uint32_t b ) { return a + (b << 16); } inline uint32_t pack8to16( uint32_t a, uint32_t b ) { return a + (b << 8); } int x264_predict_8x8_hd( const local pixel *src, int src_stride, const local pixel *top, const local pixel *left, pixel left_top ) { private pixel pred[32]; int satd; int p1 = pack8to16( (F1( left[6], left[7] )), ((left[5] + 2 * left[6] + left[7] + 2) >> 2) ); int p2 = pack8to16( (F1( left[5], left[6] )), ((left[4] + 2 * left[5] + left[6] + 2) >> 2) ); int p3 = pack8to16( (F1( left[4], left[5] )), ((left[3] + 2 * left[4] + left[5] + 2) >> 2) ); int p4 = pack8to16( (F1( left[3], left[4] )), ((left[2] + 2 * left[3] + left[4] + 2) >> 2) ); int p5 = pack8to16( (F1( left[2], left[3] )), ((left[1] + 2 * left[2] + left[3] + 2) >> 2) ); int p6 = pack8to16( (F1( left[1], left[2] )), ((left[0] + 2 * left[1] + left[2] + 2) >> 2) ); int p7 = pack8to16( (F1( left[0], left[1] )), ((left_top + 2 * left[0] + left[1] + 2) >> 2) ); int p8 = pack8to16( (F1( left_top, left[0] )), ((left[0] + 2 * left_top + top[0] + 2) >> 2) ); int p9 = pack8to16( (F2( top[1], top[0], left_top )), (F2( top[2], top[1], top[0] )) ); int p10 = pack8to16( (F2( top[3], top[2], top[1] )), (F2( top[4], top[3], top[2] )) ); int p11 = pack8to16( (F2( top[5], top[4], top[3] )), (F2( top[6], top[5], top[4] )) ); vstore4( as_uchar4( pack16to32( p8, p9 ) ), 0, &pred[0 + 0 * 8] ); vstore4( as_uchar4( pack16to32( p10, p11 ) ), 0, &pred[4 + 0 * 8] ); vstore4( as_uchar4( pack16to32( p7, p8 ) ), 0, &pred[0 + 1 * 8] ); vstore4( as_uchar4( pack16to32( p9, p10 ) ), 0, &pred[4 + 1 * 8] ); vstore4( as_uchar4( pack16to32( p6, p7 ) ), 0, &pred[0 + 2 * 8] ); vstore4( as_uchar4( pack16to32( p8, p9 ) ), 0, &pred[4 + 2 * 8] ); vstore4( as_uchar4( pack16to32( p5, p6 ) ), 0, &pred[0 + 3 * 8] ); vstore4( as_uchar4( pack16to32( p7, p8 ) ), 0, &pred[4 + 3 * 8] ); satd = satd_8x4_lp( src, src_stride, pred, 8 ); vstore4( as_uchar4( pack16to32( p4, p5 ) ), 0, &pred[0 + 0 * 8] ); vstore4( as_uchar4( pack16to32( p6, p7 ) ), 0, &pred[4 + 0 * 8] ); vstore4( as_uchar4( pack16to32( p3, p4 ) ), 0, &pred[0 + 1 * 8] ); vstore4( as_uchar4( pack16to32( p5, p6 ) ), 0, &pred[4 + 1 * 8] ); vstore4( as_uchar4( pack16to32( p2, p3 ) ), 0, &pred[0 + 2 * 8] ); vstore4( as_uchar4( pack16to32( p4, p5 ) ), 0, &pred[4 + 2 * 8] ); vstore4( as_uchar4( pack16to32( p1, p2 ) ), 0, &pred[0 + 3 * 8] ); vstore4( as_uchar4( pack16to32( p3, p4 ) ), 0, &pred[4 + 3 * 8] ); satd += satd_8x4_lp( src + ( src_stride << 2 ), src_stride, pred, 8 ); return satd; } int x264_predict_8x8_vl( const local pixel *src, int src_stride, const local pixel *top ) { private pixel pred[32]; int satd; #define PRED( x, y ) pred[(x) + (y)*8] PRED( 0, 0 ) = F1( top[0], top[1] ); PRED( 0, 1 ) = F2( top[0], top[1], top[2] ); PRED( 0, 2 ) = PRED( 1, 0 ) = F1( top[1], top[2] ); PRED( 0, 3 ) = PRED( 1, 1 ) = F2( top[1], top[2], top[3] ); PRED( 1, 2 ) = PRED( 2, 0 ) = F1( top[2], top[3] ); PRED( 1, 3 ) = PRED( 2, 1 ) = F2( top[2], top[3], top[4] ); PRED( 2, 2 ) = PRED( 3, 0 ) = F1( top[3], top[4] ); PRED( 2, 3 ) = PRED( 3, 1 ) = F2( top[3], top[4], top[5] ); PRED( 3, 2 ) = PRED( 4, 0 ) = F1( top[4], top[5] ); PRED( 3, 3 ) = PRED( 4, 1 ) = F2( top[4], top[5], top[6] ); PRED( 4, 2 ) = PRED( 5, 0 ) = F1( top[5], top[6] ); PRED( 4, 3 ) = PRED( 5, 1 ) = F2( top[5], top[6], top[7] ); PRED( 5, 2 ) = PRED( 6, 0 ) = F1( top[6], top[7] ); PRED( 5, 3 ) = PRED( 6, 1 ) = F2( top[6], top[7], top[8] ); PRED( 6, 2 ) = PRED( 7, 0 ) = F1( top[7], top[8] ); PRED( 6, 3 ) = PRED( 7, 1 ) = F2( top[7], top[8], top[9] ); PRED( 7, 2 ) = F1( top[8], top[9] ); PRED( 7, 3 ) = F2( top[8], top[9], top[10] ); satd = satd_8x4_lp( src, src_stride, pred, 8 ); PRED( 0, 0 ) = F1( top[2], top[3] ); PRED( 0, 1 ) = F2( top[2], top[3], top[4] ); PRED( 0, 2 ) = PRED( 1, 0 ) = F1( top[3], top[4] ); PRED( 0, 3 ) = PRED( 1, 1 ) = F2( top[3], top[4], top[5] ); PRED( 1, 2 ) = PRED( 2, 0 ) = F1( top[4], top[5] ); PRED( 1, 3 ) = PRED( 2, 1 ) = F2( top[4], top[5], top[6] ); PRED( 2, 2 ) = PRED( 3, 0 ) = F1( top[5], top[6] ); PRED( 2, 3 ) = PRED( 3, 1 ) = F2( top[5], top[6], top[7] ); PRED( 3, 2 ) = PRED( 4, 0 ) = F1( top[6], top[7] ); PRED( 3, 3 ) = PRED( 4, 1 ) = F2( top[6], top[7], top[8] ); PRED( 4, 2 ) = PRED( 5, 0 ) = F1( top[7], top[8] ); PRED( 4, 3 ) = PRED( 5, 1 ) = F2( top[7], top[8], top[9] ); PRED( 5, 2 ) = PRED( 6, 0 ) = F1( top[8], top[9] ); PRED( 5, 3 ) = PRED( 6, 1 ) = F2( top[8], top[9], top[10] ); PRED( 6, 2 ) = PRED( 7, 0 ) = F1( top[9], top[10] ); PRED( 6, 3 ) = PRED( 7, 1 ) = F2( top[9], top[10], top[11] ); PRED( 7, 2 ) = F1( top[10], top[11] ); PRED( 7, 3 ) = F2( top[10], top[11], top[12] ); satd += satd_8x4_lp( src + ( src_stride << 2 ), src_stride, pred, 8 ); return satd; #undef PRED } int x264_predict_8x8_hu( const local pixel *src, int src_stride, const local pixel *left ) { private pixel pred[32]; int satd; int p1 = pack8to16( (F1( left[0], left[1] )), ((left[0] + 2 * left[1] + left[2] + 2) >> 2) ); int p2 = pack8to16( (F1( left[1], left[2] )), ((left[1] + 2 * left[2] + left[3] + 2) >> 2) ); int p3 = pack8to16( (F1( left[2], left[3] )), ((left[2] + 2 * left[3] + left[4] + 2) >> 2) ); int p4 = pack8to16( (F1( left[3], left[4] )), ((left[3] + 2 * left[4] + left[5] + 2) >> 2) ); int p5 = pack8to16( (F1( left[4], left[5] )), ((left[4] + 2 * left[5] + left[6] + 2) >> 2) ); int p6 = pack8to16( (F1( left[5], left[6] )), ((left[5] + 2 * left[6] + left[7] + 2) >> 2) ); int p7 = pack8to16( (F1( left[6], left[7] )), ((left[6] + 2 * left[7] + left[7] + 2) >> 2) ); int p8 = pack8to16( left[7], left[7] ); vstore4( as_uchar4( pack16to32( p1, p2 ) ), 0, &pred[( 0 ) + ( 0 ) * 8] ); vstore4( as_uchar4( pack16to32( p3, p4 ) ), 0, &pred[( 4 ) + ( 0 ) * 8] ); vstore4( as_uchar4( pack16to32( p2, p3 ) ), 0, &pred[( 0 ) + ( 1 ) * 8] ); vstore4( as_uchar4( pack16to32( p4, p5 ) ), 0, &pred[( 4 ) + ( 1 ) * 8] ); vstore4( as_uchar4( pack16to32( p3, p4 ) ), 0, &pred[( 0 ) + ( 2 ) * 8] ); vstore4( as_uchar4( pack16to32( p5, p6 ) ), 0, &pred[( 4 ) + ( 2 ) * 8] ); vstore4( as_uchar4( pack16to32( p4, p5 ) ), 0, &pred[( 0 ) + ( 3 ) * 8] ); vstore4( as_uchar4( pack16to32( p6, p7 ) ), 0, &pred[( 4 ) + ( 3 ) * 8] ); satd = satd_8x4_lp( src, src_stride, pred, 8 ); vstore4( as_uchar4( pack16to32( p5, p6 ) ), 0, &pred[( 0 ) + ( 0 ) * 8] ); vstore4( as_uchar4( pack16to32( p7, p8 ) ), 0, &pred[( 4 ) + ( 0 ) * 8] ); vstore4( as_uchar4( pack16to32( p6, p7 ) ), 0, &pred[( 0 ) + ( 1 ) * 8] ); vstore4( as_uchar4( pack16to32( p8, p8 ) ), 0, &pred[( 4 ) + ( 1 ) * 8] ); vstore4( as_uchar4( pack16to32( p7, p8 ) ), 0, &pred[( 0 ) + ( 2 ) * 8] ); vstore4( as_uchar4( pack16to32( p8, p8 ) ), 0, &pred[( 4 ) + ( 2 ) * 8] ); vstore4( as_uchar4( pack16to32( p8, p8 ) ), 0, &pred[( 0 ) + ( 3 ) * 8] ); vstore4( as_uchar4( pack16to32( p8, p8 ) ), 0, &pred[( 4 ) + ( 3 ) * 8] ); satd += satd_8x4_lp( src + ( src_stride << 2 ), src_stride, pred, 8 ); return satd; } int x264_predict_8x8c_h( const local pixel *src, int src_stride ) { private pixel pred[32]; const local pixel *src_l = src; vstore8( (uchar8)(src[-1]), 0, pred ); src += src_stride; vstore8( (uchar8)(src[-1]), 1, pred ); src += src_stride; vstore8( (uchar8)(src[-1]), 2, pred ); src += src_stride; vstore8( (uchar8)(src[-1]), 3, pred ); src += src_stride; int satd = satd_8x4_lp( src_l, src_stride, pred, 8 ); vstore8( (uchar8)(src[-1]), 0, pred ); src += src_stride; vstore8( (uchar8)(src[-1]), 1, pred ); src += src_stride; vstore8( (uchar8)(src[-1]), 2, pred ); src += src_stride; vstore8( (uchar8)(src[-1]), 3, pred ); return satd + satd_8x4_lp( src_l + ( src_stride << 2 ), src_stride, pred, 8 ); } int x264_predict_8x8c_v( const local pixel *src, int src_stride ) { private pixel pred[32]; uchar16 v16; v16.lo = vload8( 0, &src[-src_stride] ); v16.hi = vload8( 0, &src[-src_stride] ); vstore16( v16, 0, pred ); vstore16( v16, 1, pred ); return satd_8x4_lp( src, src_stride, pred, 8 ) + satd_8x4_lp( src + (src_stride << 2), src_stride, pred, 8 ); } int x264_predict_8x8c_p( const local pixel *src, int src_stride ) { int H = 0, V = 0; private pixel pred[32]; int satd; for( int i = 0; i < 4; i++ ) { H += (i + 1) * (src[4 + i - src_stride] - src[2 - i - src_stride]); V += (i + 1) * (src[-1 + (i + 4) * src_stride] - src[-1 + (2 - i) * src_stride]); } int a = 16 * (src[-1 + 7 * src_stride] + src[7 - src_stride]); int b = (17 * H + 16) >> 5; int c = (17 * V + 16) >> 5; int i00 = a - 3 * b - 3 * c + 16; for( int y = 0; y < 4; y++ ) { int pix = i00; for( int x = 0; x < 8; x++ ) { pred[x + y*8] = x264_clip_pixel( pix >> 5 ); pix += b; } i00 += c; } satd = satd_8x4_lp( src, src_stride, pred, 8 ); for( int y = 0; y < 4; y++ ) { int pix = i00; for( int x = 0; x < 8; x++ ) { pred[x + y*8] = x264_clip_pixel( pix >> 5 ); pix += b; } i00 += c; } satd += satd_8x4_lp( src + ( src_stride << 2 ), src_stride, pred, 8 ); return satd; } int x264_predict_8x8c_dc( const local pixel *src, int src_stride ) { private pixel pred[32]; int s0 = 0, s1 = 0, s2 = 0, s3 = 0; for( int i = 0; i < 4; i++ ) { s0 += src[i - src_stride]; s1 += src[i + 4 - src_stride]; s2 += src[-1 + i * src_stride]; s3 += src[-1 + (i+4)*src_stride]; } uchar8 dc0; dc0.lo = (uchar4)( (s0 + s2 + 4) >> 3 ); dc0.hi = (uchar4)( (s1 + 2) >> 2 ); vstore8( dc0, 0, pred ); vstore8( dc0, 1, pred ); vstore8( dc0, 2, pred ); vstore8( dc0, 3, pred ); int satd = satd_8x4_lp( src, src_stride, pred, 8 ); dc0.lo = (uchar4)( (s3 + 2) >> 2 ); dc0.hi = (uchar4)( (s1 + s3 + 4) >> 3 ); vstore8( dc0, 0, pred ); vstore8( dc0, 1, pred ); vstore8( dc0, 2, pred ); vstore8( dc0, 3, pred ); return satd + satd_8x4_lp( src + ( src_stride << 2 ), src_stride, pred, 8 ); } #endif /* Find the least cost intra mode for 32 8x8 macroblocks per workgroup * * Loads 33 macroblocks plus the pixels directly above them into local memory, * padding where necessary with edge pixels. It then cooperatively calculates * smoothed top and left pixels for use in some of the analysis. * * Then groups of 32 threads each calculate a single intra mode for each 8x8 * block. Since consecutive threads are calculating the same intra mode there * is no code-path divergence. 8 intra costs are calculated simultaneously. If * the "slow" argument is not zero, the final two (least likely) intra modes are * tested in a second pass. The slow mode is only enabled for presets slow, * slower, and placebo. * * This allows all of the pixels functions to read pixels from local memory, and * avoids re-fetching edge pixels from global memory. And it allows us to * calculate all of the intra mode costs simultaneously without branch divergence. * * Local dimension: [ 32, 8 ] * Global dimensions: [ paddedWidth, height ] */ kernel void mb_intra_cost_satd_8x8( read_only image2d_t fenc, global uint16_t *fenc_intra_cost, global int *frame_stats, int lambda, int mb_width, int slow ) { #define CACHE_STRIDE 265 #define BLOCK_OFFSET 266 local pixel cache[2385]; local int cost_buf[32]; local pixel top[32 * 16]; local pixel left[32 * 8]; local pixel left_top[32]; int lx = get_local_id( 0 ); int ly = get_local_id( 1 ); int gx = get_global_id( 0 ); int gy = get_global_id( 1 ); int gidx = get_group_id( 0 ); int gidy = get_group_id( 1 ); int linear_id = ly * get_local_size( 0 ) + lx; int satd = COST_MAX; int basex = gidx << 8; int basey = (gidy << 3) - 1; /* Load 33 8x8 macroblocks and the pixels above them into local cache */ for( int y = 0; y < 9 && linear_id < (33<<3)>>2; y++ ) { int x = linear_id << 2; uint4 data = read_imageui( fenc, sampler, (int2)(x + basex, y + basey) ); cache[y * CACHE_STRIDE + 1 + x] = data.s0; cache[y * CACHE_STRIDE + 1 + x + 1] = data.s1; cache[y * CACHE_STRIDE + 1 + x + 2] = data.s2; cache[y * CACHE_STRIDE + 1 + x + 3] = data.s3; } /* load pixels on left edge */ if( linear_id < 9 ) cache[linear_id * CACHE_STRIDE] = read_imageui( fenc, sampler, (int2)( basex - 1, linear_id + basey) ).s0; barrier( CLK_LOCAL_MEM_FENCE ); int j = ly; top[lx*16 + j] = ( cache[BLOCK_OFFSET + 8*lx - CACHE_STRIDE + clamp_int( j - 1, -1, 15 )] + 2*cache[BLOCK_OFFSET + 8*lx - CACHE_STRIDE + clamp_int( j, 0, 15 )] + cache[BLOCK_OFFSET + 8*lx - CACHE_STRIDE + clamp_int( j + 1, 0, 15 )] + 2 ) >> 2; j += 8; top[lx*16 + j] = ( cache[BLOCK_OFFSET + 8*lx - CACHE_STRIDE + clamp_int( j - 1, -1, 15 )] + 2*cache[BLOCK_OFFSET + 8*lx - CACHE_STRIDE + clamp_int( j, 0, 15 )] + cache[BLOCK_OFFSET + 8*lx - CACHE_STRIDE + clamp_int( j + 1, 0, 15 )] + 2 ) >> 2; left[lx*8 + ly] = ( cache[BLOCK_OFFSET + 8*lx - 1 + CACHE_STRIDE*(ly - 1)] + 2*cache[BLOCK_OFFSET + 8*lx - 1 + CACHE_STRIDE*ly] + cache[BLOCK_OFFSET + 8*lx - 1 + CACHE_STRIDE*clamp((ly + 1), 0, 7 )] + 2 ) >> 2; if( 0 == ly ) { left_top[lx] = ( cache[BLOCK_OFFSET + 8*lx - 1] + 2*cache[BLOCK_OFFSET + 8*lx - 1 - CACHE_STRIDE] + cache[BLOCK_OFFSET + 8*lx - CACHE_STRIDE] + 2 ) >> 2; cost_buf[lx] = COST_MAX; } barrier( CLK_LOCAL_MEM_FENCE ); switch( ly ) { case 0: satd = x264_predict_8x8c_h( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE ); break; case 1: satd = x264_predict_8x8c_v( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE ); break; case 2: satd = x264_predict_8x8c_dc( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE ); break; case 3: satd = x264_predict_8x8c_p( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE ); break; case 4: satd = x264_predict_8x8_ddr( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE, &top[16*lx], &left[8*lx], left_top[lx] ); break; case 5: satd = x264_predict_8x8_vr( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE, &top[16*lx], &left[8*lx], left_top[lx] ); break; case 6: satd = x264_predict_8x8_hd( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE, &top[16*lx], &left[8*lx], left_top[lx] ); break; case 7: satd = x264_predict_8x8_hu( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE, &left[8*lx] ); break; default: break; } atom_min( &cost_buf[lx], satd ); if( slow ) { switch( ly ) { case 0: // DDL satd = x264_predict_8x8_ddl( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE, &top[16*lx] ); atom_min( &cost_buf[lx], satd ); break; case 1: // VL satd = x264_predict_8x8_vl( &cache[BLOCK_OFFSET + 8*lx], CACHE_STRIDE, &top[16*lx] ); atom_min( &cost_buf[lx], satd ); break; default: break; } } barrier( CLK_LOCAL_MEM_FENCE ); if( (0 == ly) && (gx < mb_width) ) fenc_intra_cost[gidy * mb_width + gx] = cost_buf[lx]+ 5*lambda; if( gx < 2 && gy == 0 ) frame_stats[gx] = 0; #undef CACHE_STRIDE #undef BLOCK_OFFSET } /* * parallel sum intra costs * * global launch dimensions: [256, mb_height] */ kernel void sum_intra_cost( const global uint16_t *fenc_intra_cost, const global uint16_t *inv_qscale_factor, global int *fenc_row_satds, global int *frame_stats, int mb_width ) { int y = get_global_id( 1 ); int mb_height = get_global_size( 1 ); int row_satds = 0; int cost_est = 0; int cost_est_aq = 0; for( int x = get_global_id( 0 ); x < mb_width; x += get_global_size( 0 )) { int mb_xy = x + y * mb_width; int cost = fenc_intra_cost[mb_xy]; int cost_aq = (cost * inv_qscale_factor[mb_xy] + 128) >> 8; int b_frame_score_mb = (x > 0 && x < mb_width - 1 && y > 0 && y < mb_height - 1) || mb_width <= 2 || mb_height <= 2; row_satds += cost_aq; if( b_frame_score_mb ) { cost_est += cost; cost_est_aq += cost_aq; } } local int buffer[256]; int x = get_global_id( 0 ); row_satds = parallel_sum( row_satds, x, buffer ); cost_est = parallel_sum( cost_est, x, buffer ); cost_est_aq = parallel_sum( cost_est_aq, x, buffer ); if( get_global_id( 0 ) == 0 ) { fenc_row_satds[y] = row_satds; atomic_add( frame_stats + COST_EST, cost_est ); atomic_add( frame_stats + COST_EST_AQ, cost_est_aq ); } } /* Hierarchical (iterative) OpenCL lowres motion search */ inline int find_downscale_mb_xy( int x, int y, int mb_width, int mb_height ) { /* edge macroblocks might not have a direct descendant, use nearest */ x = select( x >> 1, (x - (mb_width&1)) >> 1, x == mb_width-1 ); y = select( y >> 1, (y - (mb_height&1)) >> 1, y == mb_height-1 ); return (mb_width>>1) * y + x; } /* Four threads calculate an 8x8 SAD. Each does two rows */ int sad_8x8_ii_coop4( read_only image2d_t fenc, int2 fencpos, read_only image2d_t fref, int2 frefpos, int idx, local int16_t *costs ) { frefpos.y += idx << 1; fencpos.y += idx << 1; int cost = 0; if( frefpos.x < 0 ) { /* slow path when MV goes past left edge. The GPU clamps reads from * (-1, 0) to (0,0), so you get pixels [0, 1, 2, 3] when what you really * want are [0, 0, 1, 2] */ for( int y = 0; y < 2; y++ ) { for( int x = 0; x < 8; x++ ) { pixel enc = read_imageui( fenc, sampler, fencpos + (int2)(x, y) ).s0; pixel ref = read_imageui( fref, sampler, frefpos + (int2)(x, y) ).s0; cost += abs_diff( enc, ref ); } } } else { uint4 enc, ref, costs = 0; enc = read_imageui( fenc, sampler, fencpos ); ref = read_imageui( fref, sampler, frefpos ); costs += abs_diff( enc, ref ); enc = read_imageui( fenc, sampler, fencpos + (int2)(4, 0) ); ref = read_imageui( fref, sampler, frefpos + (int2)(4, 0) ); costs += abs_diff( enc, ref ); enc = read_imageui( fenc, sampler, fencpos + (int2)(0, 1) ); ref = read_imageui( fref, sampler, frefpos + (int2)(0, 1) ); costs += abs_diff( enc, ref ); enc = read_imageui( fenc, sampler, fencpos + (int2)(4, 1) ); ref = read_imageui( fref, sampler, frefpos + (int2)(4, 1) ); costs += abs_diff( enc, ref ); cost = costs.s0 + costs.s1 + costs.s2 + costs.s3; } costs[idx] = cost; return costs[0] + costs[1] + costs[2] + costs[3]; } /* One thread performs 8x8 SAD */ int sad_8x8_ii( read_only image2d_t fenc, int2 fencpos, read_only image2d_t fref, int2 frefpos ) { if( frefpos.x < 0 ) { /* slow path when MV goes past left edge */ int cost = 0; for( int y = 0; y < 8; y++ ) { for( int x = 0; x < 8; x++ ) { uint enc = read_imageui( fenc, sampler, fencpos + (int2)(x, y) ).s0; uint ref = read_imageui( fref, sampler, frefpos + (int2)(x, y) ).s0; cost += abs_diff( enc, ref ); } } return cost; } else { uint4 enc, ref, cost = 0; for( int y = 0; y < 8; y++ ) { for( int x = 0; x < 8; x += 4 ) { enc = read_imageui( fenc, sampler, fencpos + (int2)(x, y) ); ref = read_imageui( fref, sampler, frefpos + (int2)(x, y) ); cost += abs_diff( enc, ref ); } } return cost.s0 + cost.s1 + cost.s2 + cost.s3; } } /* * hierarchical motion estimation * * Each kernel launch is a single iteration * * MB per work group is determined by lclx / 4 * lcly * * global launch dimensions: [mb_width * 4, mb_height] */ kernel void hierarchical_motion( read_only image2d_t fenc, read_only image2d_t fref, const global short2 *in_mvs, global short2 *out_mvs, global int16_t *out_mv_costs, global short2 *mvp_buffer, local int16_t *cost_local, local short2 *mvc_local, int mb_width, int lambda, int me_range, int scale, int b_shift_index, int b_first_iteration, int b_reverse_references ) { int mb_x = get_global_id( 0 ) >> 2; if( mb_x >= mb_width ) return; int mb_height = get_global_size( 1 ); int mb_i = get_global_id( 0 ) & 3; int mb_y = get_global_id( 1 ); int mb_xy = mb_y * mb_width + mb_x; const int mb_size = 8; int2 coord = (int2)(mb_x, mb_y) * mb_size; const int mb_in_group = get_local_id( 1 ) * (get_local_size( 0 ) >> 2) + (get_local_id( 0 ) >> 2); cost_local += 4 * mb_in_group; int i_mvc = 0; mvc_local += 4 * mb_in_group; mvc_local[mb_i] = 0; int2 mvp =0; if( !b_first_iteration ) { #define MVC( DX, DY )\ {\ int px = mb_x + DX;\ int py = mb_y + DY;\ mvc_local[i_mvc] = b_shift_index ? in_mvs[find_downscale_mb_xy( px, py, mb_width, mb_height )] : \ in_mvs[mb_width * py + px];\ mvc_local[i_mvc] >>= (short) scale;\ i_mvc++;\ } /* Find MVP from median of MVCs */ if( b_reverse_references ) { /* odd iterations: derive MVP from down and right */ if( mb_x < mb_width - 1 ) MVC( 1, 0 ); if( mb_y < mb_height - 1 ) { MVC( 0, 1 ); if( mb_x > b_shift_index ) MVC( -1, 1 ); if( mb_x < mb_width - 1 ) MVC( 1, 1 ); } } else { /* even iterations: derive MVP from up and left */ if( mb_x > 0 ) MVC( -1, 0 ); if( mb_y > 0 ) { MVC( 0, -1 ); if( mb_x < mb_width - 1 ) MVC( 1, -1 ); if( mb_x > b_shift_index ) MVC( -1, -1 ); } } #undef MVC mvp = (i_mvc <= 1) ? convert_int2_sat(mvc_local[0]) : x264_median_mv( mvc_local[0], mvc_local[1], mvc_local[2] ); } /* current mvp matches the previous mvp and we have not changed scale. We know * we're going to arrive at the same MV again, so just copy the previous * result to our output. */ if( !b_shift_index && mvp.x == mvp_buffer[mb_xy].x && mvp.y == mvp_buffer[mb_xy].y ) { out_mvs[mb_xy] = in_mvs[mb_xy]; return; } mvp_buffer[mb_xy] = convert_short2_sat(mvp); int2 mv_min = -mb_size * (int2)(mb_x, mb_y) - 4; int2 mv_max = mb_size * ((int2)(mb_width, mb_height) - (int2)(mb_x, mb_y) - 1) + 4; int2 bestmv = clamp(mvp, mv_min, mv_max); int2 refcrd = coord + bestmv; /* measure cost at bestmv */ int bcost = sad_8x8_ii_coop4( fenc, coord, fref, refcrd, mb_i, cost_local ) + lambda * mv_cost( abs_diff( bestmv, mvp ) << (2 + scale) ); do { /* measure costs at offsets from bestmv */ refcrd = coord + bestmv + dia_offs[mb_i]; int2 trymv = bestmv + dia_offs[mb_i]; int cost = sad_8x8_ii( fenc, coord, fref, refcrd ) + lambda * mv_cost( abs_diff( trymv, mvp ) << (2 + scale) ); cost_local[mb_i] = (cost<<2) | mb_i; cost = min( cost_local[0], min( cost_local[1], min( cost_local[2], cost_local[3] ) ) ); if( (cost >> 2) >= bcost ) break; bestmv += dia_offs[cost&3]; bcost = cost>>2; if( bestmv.x >= mv_max.x || bestmv.x <= mv_min.x || bestmv.y >= mv_max.y || bestmv.y <= mv_min.y ) break; } while( --me_range > 0 ); int2 trymv = 0, diff = 0; #define COST_MV_NO_PAD( L )\ trymv = clamp( trymv, mv_min, mv_max );\ diff = convert_int2_sat(abs_diff( mvp, trymv ));\ if( diff.x > 1 || diff.y > 1 ) {\ int2 refcrd = coord + trymv;\ int cost = sad_8x8_ii_coop4( fenc, coord, fref, refcrd, mb_i, cost_local ) +\ L * mv_cost( abs_diff( trymv, mvp ) << (2 + scale) );\ if( cost < bcost ) { bcost = cost; bestmv = trymv; } } COST_MV_NO_PAD( 0 ); if( !b_first_iteration ) { /* try cost at previous iteration's MV, if MVP was too far away */ int2 prevmv = b_shift_index ? convert_int2_sat(in_mvs[find_downscale_mb_xy( mb_x, mb_y, mb_width, mb_height )]) : convert_int2_sat(in_mvs[mb_xy]); prevmv >>= scale; trymv = prevmv; COST_MV_NO_PAD( lambda ); } for( int i = 0; i < i_mvc; i++ ) { /* try cost at each candidate MV, if MVP was too far away */ trymv = convert_int2_sat( mvc_local[i] ); COST_MV_NO_PAD( lambda ); } if( mb_i == 0 ) { bestmv <<= scale; out_mvs[mb_xy] = convert_short2_sat(bestmv); out_mv_costs[mb_xy] = min( bcost, LOWRES_COST_MASK ); } } /* OpenCL lowres subpel Refine */ /* Each thread performs 8x8 SAD. 4 threads per MB, so the 4 DIA HPEL offsets are * calculated simultaneously */ int sad_8x8_ii_hpel( read_only image2d_t fenc, int2 fencpos, read_only image2d_t fref_planes, int2 qpos ) { int2 frefpos = qpos >> 2; int hpel_idx = ((qpos.x & 2) >> 1) + (qpos.y & 2); uint mask_shift = 8 * hpel_idx; uint4 cost4 = 0; for( int y = 0; y < 8; y++ ) { uint4 enc, val4; enc = read_imageui( fenc, sampler, fencpos + (int2)(0, y)); val4.s0 = (read_imageui( fref_planes, sampler, frefpos + (int2)(0, y)).s0 >> mask_shift) & 0xFF; val4.s1 = (read_imageui( fref_planes, sampler, frefpos + (int2)(1, y)).s0 >> mask_shift) & 0xFF; val4.s2 = (read_imageui( fref_planes, sampler, frefpos + (int2)(2, y)).s0 >> mask_shift) & 0xFF; val4.s3 = (read_imageui( fref_planes, sampler, frefpos + (int2)(3, y)).s0 >> mask_shift) & 0xFF; cost4 += abs_diff( enc, val4 ); enc = read_imageui( fenc, sampler, fencpos + (int2)(4, y)); val4.s0 = (read_imageui( fref_planes, sampler, frefpos + (int2)(4, y)).s0 >> mask_shift) & 0xFF; val4.s1 = (read_imageui( fref_planes, sampler, frefpos + (int2)(5, y)).s0 >> mask_shift) & 0xFF; val4.s2 = (read_imageui( fref_planes, sampler, frefpos + (int2)(6, y)).s0 >> mask_shift) & 0xFF; val4.s3 = (read_imageui( fref_planes, sampler, frefpos + (int2)(7, y)).s0 >> mask_shift) & 0xFF; cost4 += abs_diff( enc, val4 ); } return cost4.s0 + cost4.s1 + cost4.s2 + cost4.s3; } /* One thread measures 8x8 SAD cost at a QPEL offset into an HPEL plane */ int sad_8x8_ii_qpel( read_only image2d_t fenc, int2 fencpos, read_only image2d_t fref_planes, int2 qpos ) { int2 frefApos = qpos >> 2; int hpelA = ((qpos.x & 2) >> 1) + (qpos.y & 2); int2 qposB = qpos + ((qpos & 1) << 1); int2 frefBpos = qposB >> 2; int hpelB = ((qposB.x & 2) >> 1) + (qposB.y & 2); uint mask_shift0 = 8 * hpelA, mask_shift1 = 8 * hpelB; int cost = 0; for( int y = 0; y < 8; y++ ) { for( int x = 0; x < 8; x++ ) { uint enc = read_imageui( fenc, sampler, fencpos + (int2)(x, y)).s0; uint vA = (read_imageui( fref_planes, sampler, frefApos + (int2)(x, y)).s0 >> mask_shift0) & 0xFF; uint vB = (read_imageui( fref_planes, sampler, frefBpos + (int2)(x, y)).s0 >> mask_shift1) & 0xFF; cost += abs_diff( enc, rhadd( vA, vB ) ); } } return cost; } /* Four threads measure 8x8 SATD cost at a QPEL offset into an HPEL plane * * Each thread collects 1/4 of the rows of diffs and processes one quarter of * the transforms */ int satd_8x8_ii_qpel_coop4( read_only image2d_t fenc, int2 fencpos, read_only image2d_t fref_planes, int2 qpos, local sum2_t *tmpp, int idx ) { volatile local sum2_t( *tmp )[4] = (volatile local sum2_t( * )[4])tmpp; sum2_t b0, b1, b2, b3; int2 frefApos = qpos >> 2; int hpelA = ((qpos.x&2)>>1) + (qpos.y&2); int2 qposB = qpos + (int2)(((qpos.x&1)<<1), ((qpos.y&1)<<1)); int2 frefBpos = qposB >> 2; int hpelB = ((qposB.x&2)>>1) + (qposB.y&2); uint mask_shift0 = 8 * hpelA, mask_shift1 = 8 * hpelB; uint vA, vB; uint a0, a1; uint enc; sum2_t sum = 0; #define READ_DIFF( OUT, X )\ enc = read_imageui( fenc, sampler, fencpos + (int2)(X, idx) ).s0;\ vA = (read_imageui( fref_planes, sampler, frefApos + (int2)(X, idx) ).s0 >> mask_shift0) & 0xFF;\ vB = (read_imageui( fref_planes, sampler, frefBpos + (int2)(X, idx) ).s0 >> mask_shift1) & 0xFF;\ OUT = enc - rhadd( vA, vB ); #define READ_DIFF_EX( OUT, a, b )\ {\ READ_DIFF( a0, a );\ READ_DIFF( a1, b );\ OUT = a0 + (a1<>BITS_PER_SUM)) >> 1; } constant int2 hpoffs[4] = { {0, -2}, {-2, 0}, {2, 0}, {0, 2} }; /* sub pixel refinement of motion vectors, output MVs and costs are moved from * temporary buffers into final per-frame buffer * * global launch dimensions: [mb_width * 4, mb_height] * * With X being the source 16x16 pixels, F is the lowres pixel used by the * motion search. We will now utilize the H V and C pixels (stored in separate * planes) to search at half-pel increments. * * X X X X X X * F H F H F * X X X X X X * V C V C V * X X X X X X * F H F H F * X X X X X X * * The YX HPEL bits of the motion vector selects the plane we search in. The * four planes are packed in the fref_planes 2D image buffer. Each sample * returns: s0 = F, s1 = H, s2 = V, s3 = C */ kernel void subpel_refine( read_only image2d_t fenc, read_only image2d_t fref_planes, const global short2 *in_mvs, const global int16_t *in_sad_mv_costs, local int16_t *cost_local, local sum2_t *satd_local, local short2 *mvc_local, global short2 *fenc_lowres_mv, global int16_t *fenc_lowres_mv_costs, int mb_width, int lambda, int b, int ref, int b_islist1 ) { int mb_x = get_global_id( 0 ) >> 2; if( mb_x >= mb_width ) return; int mb_height = get_global_size( 1 ); int mb_i = get_global_id( 0 ) & 3; int mb_y = get_global_id( 1 ); int mb_xy = mb_y * mb_width + mb_x; /* fenc_lowres_mv and fenc_lowres_mv_costs are large buffers that * hold many frames worth of motion vectors. We must offset into the correct * location for this frame's vectors. The kernel will be passed the correct * directional buffer for the direction of the search: list1 or list0 * * CPU equivalent: fenc->lowres_mvs[0][b - p0 - 1] * GPU equivalent: fenc_lowres_mvs[(b - p0 - 1) * mb_count] */ fenc_lowres_mv += (b_islist1 ? (ref-b-1) : (b-ref-1)) * mb_width * mb_height; fenc_lowres_mv_costs += (b_islist1 ? (ref-b-1) : (b-ref-1)) * mb_width * mb_height; /* Adjust pointers into local memory buffers for this thread's data */ int mb_in_group = get_local_id( 1 ) * (get_local_size( 0 ) >> 2) + (get_local_id( 0 ) >> 2); cost_local += mb_in_group * 4; satd_local += mb_in_group * 16; mvc_local += mb_in_group * 4; int i_mvc = 0; mvc_local[0] = mvc_local[1] = mvc_local[2] = mvc_local[3] = 0; #define MVC( DX, DY ) mvc_local[i_mvc++] = in_mvs[mb_width * (mb_y + DY) + (mb_x + DX)]; if( mb_x > 0 ) MVC( -1, 0 ); if( mb_y > 0 ) { MVC( 0, -1 ); if( mb_x < mb_width - 1 ) MVC( 1, -1 ); if( mb_x > 0 ) MVC( -1, -1 ); } #undef MVC int2 mvp = (i_mvc <= 1) ? convert_int2_sat(mvc_local[0]) : x264_median_mv( mvc_local[0], mvc_local[1], mvc_local[2] ); int bcost = in_sad_mv_costs[mb_xy]; int2 coord = (int2)(mb_x, mb_y) << 3; int2 bmv = convert_int2_sat( in_mvs[mb_xy] ); /* Make mvp and bmv QPEL MV */ mvp <<= 2; bmv <<= 2; #define HPEL_QPEL( ARR, FUNC )\ {\ int2 trymv = bmv + ARR[mb_i];\ int2 qpos = (coord << 2) + trymv;\ int cost = FUNC( fenc, coord, fref_planes, qpos ) + lambda * mv_cost( abs_diff( trymv, mvp ) );\ cost_local[mb_i] = (cost<<2) + mb_i;\ cost = min( cost_local[0], min( cost_local[1], min( cost_local[2], cost_local[3] ) ) );\ if( (cost>>2) < bcost )\ {\ bmv += ARR[cost&3];\ bcost = cost>>2;\ }\ } HPEL_QPEL( hpoffs, sad_8x8_ii_hpel ); HPEL_QPEL( dia_offs, sad_8x8_ii_qpel ); fenc_lowres_mv[mb_xy] = convert_short2_sat( bmv ); /* remeasure cost of bmv using SATD */ int2 qpos = (coord << 2) + bmv; cost_local[mb_i] = satd_8x8_ii_qpel_coop4( fenc, coord, fref_planes, qpos, satd_local, mb_i ); bcost = cost_local[0] + cost_local[1] + cost_local[2] + cost_local[3]; bcost += lambda * mv_cost( abs_diff( bmv, mvp ) ); fenc_lowres_mv_costs[mb_xy] = min( bcost, LOWRES_COST_MASK ); } /* Weightp filter a downscaled image into a temporary output buffer. * This kernel is launched once for each scale. * * Launch dimensions: width x height (in pixels) */ kernel void weightp_scaled_images( read_only image2d_t in_plane, write_only image2d_t out_plane, uint offset, uint scale, uint denom ) { int gx = get_global_id( 0 ); int gy = get_global_id( 1 ); uint4 input_val; uint4 output_val; input_val = read_imageui( in_plane, sampler, (int2)(gx, gy)); output_val = (uint4)(offset) + ( ( ((uint4)(scale)) * input_val ) >> ((uint4)(denom)) ); write_imageui( out_plane, (int2)(gx, gy), output_val ); } /* Weightp filter for the half-pel interpolated image * * Launch dimensions: width x height (in pixels) */ kernel void weightp_hpel( read_only image2d_t in_plane, write_only image2d_t out_plane, uint offset, uint scale, uint denom ) { int gx = get_global_id( 0 ); int gy = get_global_id( 1 ); uint input_val; uint output_val; input_val = read_imageui( in_plane, sampler, (int2)(gx, gy)).s0; uint4 temp; temp.s0 = input_val & 0x00ff; temp.s1 = (input_val >> 8) & 0x00ff; temp.s2 = (input_val >> 16) & 0x00ff; temp.s3 = (input_val >> 24) & 0x00ff; temp = (uint4)(offset) + ( ( ((uint4)(scale)) * temp ) >> ((uint4)(denom)) ); output_val = temp.s0 | (temp.s1 << 8) | (temp.s2 << 16) | (temp.s3 << 24); write_imageui( out_plane, (int2)(gx, gy), output_val ); } (8HOpenCL: %s OpenCL: fatal error, aborting encode libOpenCL.soclBuildProgramclCreateBufferclCreateCommandQueueclCreateContextclCreateImage2DclCreateKernelclCreateProgramWithBinaryclCreateProgramWithSourceclEnqueueCopyBufferclEnqueueMapBufferclEnqueueNDRangeKernelclEnqueueReadBufferclEnqueueWriteBufferclFinishclGetCommandQueueInfoclGetDeviceIDsclGetDeviceInfoclGetKernelWorkGroupInfoclGetPlatformIDsclGetProgramBuildInfoclGetProgramInfoclGetSupportedImageFormatsclReleaseCommandQueueclReleaseContextclReleaseKernelclReleaseMemObjectclReleaseProgramclSetKernelArg(SI)-DVECTORIZE=1OpenCL: Unable to query installed platforms OpenCL: malloc of installed platforms buffer failed OpenCL: %s does not support required image formats x264_lookahead.clbinOpenCL: Unable to find a compatible device Advanced Micro Devices, Inc.libatiadlxx.soADL_Main_Control_CreateADL_Main_Control_DestroyADL_Adapter_NumberOfAdapters_GetADL_PowerXpress_Scheme_GetOpenCL acceleration disabled, switchable graphics detected OpenCL acceleration enabled with %s %s %s rbCompiling OpenCL kernels... OpenCL: unable to create program wbOpenCL: unable to open clbin file for write OpenCL: Unable to query program binary size, no cache file generated OpenCL: Unable to query program binary, no cache file generated OpenCL: Compilation failed, unable to query build log OpenCL: Compilation failed, unable to alloc build log OpenCL: Compilation failed, unable to get build log x264_kernel_build_log.txtwOpenCL: Compilation failed, unable to create file x264_kernel_build_log.txt OpenCL: kernel build errors written to x264_kernel_build_log.txt OpenCL: Unable to compile kernel '%s' (%d) OpenCL: Unable to allocate page-locked buffer, error '%d' OpenCL: Unable to map page-locked buffer, error '%d' mb_intra_cost_satd_8x8sum_intra_costdownscale_hpeldownscale1downscale2memset_int16weightp_scaled_imagesweightp_hpelhierarchical_motionsubpel_refinemode_selectionsum_inter_costGCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rel.data.rel.ro.local.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4d U %+0t$< @08 [` O2<@X^0H&gHwpH7HK Z R  T&L).  T3T&F4KDPTUdZ|_dintz $8P\t $8H\p 0&P|\ "(.T4:8@FLRX^djpvL|8T X `&!$P$&0&   X#*08B0 \P\y<|opencl.c$ax264_opencl_error_notify$d.LC0.LC1adl_malloc_wrapper.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC36.LC38.LC39.LC32.LC46.LC47.LC48.LC54.LC33.LC50.LC52.LC63.LC61.LC37.LC34.LC40.LC41.LC42.LC43.LC44.LC31.LC49.LC56.LC53.LC57.LC58.LC60.LC51.LC45.LC62.LC55.LC35.LC59x264_opencl_source_hashx264_opencl_sourcekernelnames.8104x264_logx264_mallocx264_opencl_load_librarymemsetdlopendlsymdlclosex264_freex264_opencl_close_libraryx264_opencl_lookahead_deletex264_opencl_lookahead_initstrcmpfopenfseekoftellorewindfreadstrlenfclosestrncmpfwritefputsfputcx264_opencl_frame_delete0ZHZLP T[`]^____ _(_D_`_|______$_@_\_x______ _<_X_t__`a  !"#$% &$'((,)@`La[ a [4 ZT a\ ad a e Z f g h i( [@ jL kt l| a ZZac,a8[8mdkmkm(kPmlafXZ`lhaZZZ^_(_<_P_<`Z[$ZD[ZfnlZZXZpZZopopopopn Z8ZZZ,-./012N/34N56R789:; <=>? @$@(A,B0C4D8E<F@GD:HHLIPNTJXK\LUUU UUUUU U$U(U,Uslicetype-cl.o/ 1392656091 0 0 100644 26872 ` ELF(W4( G-M(  `@8pPp!0  @ H 0T H pD$ 0W  <$ 44  10&p pp0X @(0 0@D1/4>X @(0 A C0@D1/4/<X @(0 0@D1/4?X$0   1/4 ?\+ 0  1/40S(0 %$0p (呈!1/4?\p 0呈(1/40/Sp, 0 !1/4? X p 0 !1/40 /S H(0 t(p8, 04   10 00(@@,D1/44 \ @0 0 0( @D1/4|4 X? @(0 0@D1/44 X& @(0 A C0@D1/44 X  @(0 0@D1/44 X$ 0 1/4\(  0  1/44 \  01/40$ S$, 0 1/44 [0  1/44 \0 1/44 ^ 0 1/44 [0  1/44 Zt 0 1/44 [ 0 1/44 Z0 1/4l4 [ 01/40p$ Sr t#0  X#0 0T4   #00 pT4   "00 d "0 Z T$ x"0 K`"0 0B  8"0  8  "0  .  !0s $  !0    !0s   !0    `!0s T$ 4!0 !0 0 0Ä  ( 00 0 0  0  8dHlP(tP( lH$xP,lH$|`8  0  |  0  r  0  h  0  ^T$ !0 S4!0 0J  \!0s @x!0 07 !0s -  !0s #(! 00 "0  "0Ä  0@"0  0 h"0s "0Ä  0"0  " 00Ä  "0  0#0  0(#0  H#0  0T$ x#0 #0  0  #0s   #0s #0 0  $0s z D$0s pO-M@( p< !W80P0 H ,0SE p8Td  00Q!` 1d00x 㻝80p 0/<0 00T$ )0 T$ )0 T$ |)0 T$ T)0 T$ ,)0 T$ )0 T$ 0(0c   (00    |(00    H(00  tr  (00  fdT   0'0 WTd XR0t p=80 0!R,Ѝi p  T  RT!  1: ?c0q00 T0 0 1,; ? c0r0 0^:! $ 0S1 ,; ^o>0 1 Y   fP ᅀ F>Z 00 S/ R  0@2 S  R+$1 :    0   0$   !0>$0x264_opencl_alloc_lockedclCreateImage2D error '%d' clCreateBuffer error '%d' encoder/slicetype-cl.cbytes < PAGE_LOCKED_BUF_SIZEclEnqueueWriteBuffer error '%d' clSetKernelArg error '%d' clEnqueueNDRangeKernel error '%d' clEnqueueReadBuffer error '%d' clEnqueueCopyBuffer error '%d' GCC: (GNU) 4.6 20120106 (prerelease)A6aeabi,Cortex-A8 A ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4U P^ %U+U0U482UG0 W&P2W`p2W7iWpY ! \|,0/84P9p>CHMR,,8W9,$PP,RR,U,], kytX,!t?TP  1RKXRslicetype-cl.c$ax264_optimal_launch_dims$d.LC4.LC5.LC6.LC3.LC2.LC7.LC8.LC9.LC10__func__.8229__aeabi_uidivx264_opencl_flushmemcpyx264_opencl_lowres_init__assert2x264_logx264_opencl_motionsearchx264_opencl_finalize_costx264_opencl_slicetype_prepx264_weights_analysex264_weight_nonex264_opencl_slicetype_end__aeabi_idivx264_opencl_precalculate_frame_cost4!T!d!0## %x %%#@&h%|"(&8"&$&4"@"L"x&&&" &0&X&&&&& &H&t&&&&&$&048 <@D HLP T X\` d h l p t x |                                    $(H&p&&&&&8&\&&&&&&<&d&&&&& &@ &d & & & &!&(!&P!&x!&(/&T/&/&/&/&0&40&h0&0&0&1&P1&`5%p6&6&6&7&<7&x7&7&7&8&D8&p8&8&8&88 8 8 8 8 999 9 9 9 9 9 9$9 (9 ,9 09 49 89 <9 @9 D9 H9 L9 P9 T9 X9 \9 `9 d9 h9 l9 p9 t9 x9 |99 9 9 9 9 9 9 9 9 9 9 99 9 9 99 999&|:&:&:&;&@;&h;&;&;&\<"h<"<&<&<&=&,=&X=&=&=&=&=& >&H>&p>&>&>&>&?&@?&h?&F%G%J&J&J&K& @;ˮ@H$Bh&l nH$l("nh&@DFB&FfT V-R  01Cj#V  / A*aeabi Cortex-A8 A   ,D.symtab.strtab.shstrtab.rel.text.data.bss.rodata.ARM.attributes.note.GNU-stack44 DC %<4+<40@4@8p4+H44X6   ;h 0!<(,346O8hPt4T<t`xB8 h   d h !=Yv@8P7,!O|!g "l"#l$|%'|(("(;)T*m*d*+x+0++,D-.,I-bH.u-/0/80 0.d2N 3$dmask_ffmask_ac4mask_ac8$avar16_loopssim_skipx264_pixel_sad_4x4_armv6x264_pixel_sad_4x8_armv6x264_pixel_sad_4x4_neonx264_pixel_sad_4x8_neonx264_pixel_sad_8x4_neonx264_pixel_sad_8x8_neonx264_pixel_sad_8x16_neonx264_pixel_sad_16x8_neonx264_pixel_sad_16x16_neonx264_pixel_sad_aligned_4x4_neonx264_pixel_sad_aligned_4x8_neonx264_pixel_sad_aligned_8x4_neonx264_pixel_sad_aligned_8x8_neonx264_pixel_sad_aligned_8x16_neonx264_pixel_sad_aligned_16x8_neonx264_pixel_sad_aligned_16x16_neonx264_pixel_sad_aligned_8x4_neon_dualx264_pixel_sad_aligned_8x8_neon_dualx264_pixel_sad_aligned_8x16_neon_dualx264_pixel_sad_aligned_16x8_neon_dualx264_pixel_sad_aligned_16x16_neon_dualx264_pixel_sad_x3_4x4_neonx264_pixel_sad_x3_4x8_neonx264_pixel_sad_x3_8x4_neonx264_pixel_sad_x3_8x8_neonx264_pixel_sad_x3_8x16_neonx264_pixel_sad_x3_16x8_neonx264_pixel_sad_x3_16x16_neonx264_pixel_sad_x4_4x4_neonx264_pixel_sad_x4_4x8_neonx264_pixel_sad_x4_8x4_neonx264_pixel_sad_x4_8x8_neonx264_pixel_sad_x4_8x16_neonx264_pixel_sad_x4_16x8_neonx264_pixel_sad_x4_16x16_neonx264_pixel_ssd_4x4_neonx264_pixel_ssd_4x8_neonx264_pixel_ssd_8x4_neonx264_pixel_ssd_8x8_neonx264_pixel_ssd_8x16_neonx264_pixel_ssd_16x8_neonx264_pixel_ssd_16x16_neonx264_pixel_var_8x8_neonx264_var_endx264_pixel_var_16x16_neonx264_pixel_var2_8x8_neonx264_pixel_satd_4x4_neonx264_pixel_satd_4x8_neonx264_satd_4x8_8x4_end_neonx264_pixel_satd_8x4_neonx264_pixel_satd_8x8_neonx264_satd_8x8_neonx264_pixel_satd_8x16_neonx264_satd_8x4v_8x8h_neonx264_pixel_satd_16x8_neonx264_satd_16x4_neonx264_pixel_satd_16x16_neonx264_pixel_sa8d_8x8_neonx264_sa8d_8x8_neonx264_pixel_sa8d_16x16_neonx264_pixel_hadamard_ac_8x8_neonx264_hadamard_ac_8x8_neonx264_pixel_hadamard_ac_8x16_neonx264_pixel_hadamard_ac_16x8_neonx264_pixel_hadamard_ac_16x16_neonx264_pixel_ssim_4x4x2_core_neonx264_pixel_ssim_end4_neon(:`*?+B8+BD+B,F,F,F,F,F-F-D-I-I-I.I.I/L 0L0LP0L\0L0L0L0L0L44mc-a.o/ 1392656091 0 0 100644 11084 ` ELF(4(  B@  1/@- n l@@  !0X 00  B !   B!R @ R!B!B/0  B !   B!R @ R!B!B/0  B !   B!R @ R!B!B/0 B!  B !   B!R @ R!B!B!/PP.Q/p@- \A @`|\p@- \A @`|\p@- \A @`|\p@- \A @`|\p@- \A @`|\p@- \A @`|\p@- \A @`|\p@- \A @`|\k^ . /,KYLgud  \  D   T   # : Q0 il    ,\h`&4B O(\m<@1I`|Ht1W}$HP,4SpzP<@ & =8 T t,   @ |  7 X zX    (X<PHh$amemcpy_tabler1alignr3align$dmemzero_loopavg2_w4_loopavg2_w8_loopavg2_w16_loopavg2_w20_loopweight20_loopweight16_loopweight8_loopweight4_loopweight20_nodenom_loopweight16_nodenom_loopweight8_nodenom_loopweight4_nodenom_loopweight20_offsetadd_loopweight16_offsetadd_loopweight8_offsetadd_loopweight4_offsetadd_loopweight20_offsetsub_loopweight16_offsetsub_loopweight8_offsetsub_loopweight4_offsetsub_loopcopy_w4_loopcopy_w8_loopcopy_w16_loopcopy_w16_aligned_loopmc_chroma_w8mc_chroma_w4mc_chroma_w2st2filter_v_loopfilter_c_loopfilter_h_looplowres_ylooplowres_xlooplowres_xloop_endx264_prefetch_ref_armx264_prefetch_fenc_armx264_memcpy_aligned_neonmemcpy_aligned_16_16_neonmemcpy_aligned_8_16_neonmemcpy_aligned_16_8_neonmemcpy_aligned_8_8_neonx264_memzero_aligned_neonx264_pixel_avg_4x2_neonx264_pixel_avg_w4_neonx264_pixel_avg_weight_w4_add_sub_neonx264_pixel_avg_weight_w4_add_add_neonx264_pixel_avg_weight_w4_sub_add_neonx264_pixel_avg_4x4_neonx264_pixel_avg_4x8_neonx264_pixel_avg_8x4_neonx264_pixel_avg_w8_neonx264_pixel_avg_weight_w8_add_sub_neonx264_pixel_avg_weight_w8_add_add_neonx264_pixel_avg_weight_w8_sub_add_neonx264_pixel_avg_8x8_neonx264_pixel_avg_8x16_neonx264_pixel_avg_16x8_neonx264_pixel_avg_w16_neonx264_pixel_avg_weight_w16_add_sub_neonx264_pixel_avg_weight_w16_add_add_neonx264_pixel_avg_weight_w16_sub_add_neonx264_pixel_avg_16x16_neonx264_pixel_avg2_w4_neonx264_pixel_avg2_w8_neonx264_pixel_avg2_w16_neonx264_pixel_avg2_w20_neonx264_mc_weight_w20_neonx264_mc_weight_w16_neonx264_mc_weight_w8_neonx264_mc_weight_w4_neonx264_mc_weight_w20_nodenom_neonx264_mc_weight_w16_nodenom_neonx264_mc_weight_w8_nodenom_neonx264_mc_weight_w4_nodenom_neonx264_mc_weight_w20_offsetadd_neonx264_mc_weight_w16_offsetadd_neonx264_mc_weight_w8_offsetadd_neonx264_mc_weight_w4_offsetadd_neonx264_mc_weight_w20_offsetsub_neonx264_mc_weight_w16_offsetsub_neonx264_mc_weight_w8_offsetsub_neonx264_mc_weight_w4_offsetsub_neonx264_mc_copy_w4_neonx264_mc_copy_w8_neonx264_mc_copy_w16_neonx264_mc_copy_w16_aligned_neonx264_mc_chroma_neonx264_hpel_filter_v_neonx264_hpel_filter_c_neonx264_hpel_filter_h_neonx264_frame_init_lowres_core_neon098:@;D<\9d:l;p<9:;<@ABC@ABC @AB C8G@HHILJdGlHtIxJ9@@G354 6dct-a.o/ 1392656091 0 0 100644 4844 ` ELF( 4(  HXhx(8BHBh@/T`/V"1/ HXhx(8BHBh@`8(/0 ,