! / 1392656062 0 0 0 13344 ` 4d4d4d4d4d4d4dېېېېېېېېېېېېېېېWWWWWWWWWWWWWWW<<<<<<ظظظظظظظظظظظظظظ L L L L L L L L L L L L L L L L L@,,,LLL<<<<<hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh V V V V V V V X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 3 yp 0 0 0 0 0 0 0 0 0 0 0 0&t&t&t&t2|2|2|2|2|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@lhlhlhlhlhlhlhlhlhlhlhlhlhlhlhlhlhlhx264_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/ 1392656044 0 0 100644 23328 ` 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 Ѝ/-%z @z\p'j'Z@`jEzᐪP@ TYz%YPejZzFjzgzzwzZz/; 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>5>Y@ . tEX 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/ 1392656046 0 0 100644 97232 ` ELF(lX4( -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@嗗)8 05 0p/ 0pp( 0p"0 0pp00 0` ЍO- Mp0@ `@P0 04 0 0p 0ppپ 0`Ӿ ЍO- Mp4@ `@P0¾ 0廾8 0岾 0pᬾ 0pp奾 0p៾0 0pp嘾00 0`ᑾ ЍE-@P@`  0〾  0pzpp  0q  0pkpp  0b  0@\O-{?]G G] U,E| t^u t  d3 @`J a w  $t    % ) % : P @<g @ dAp D E G H    ) C \ u      ) I f       ' C _ z      /G_w/Gaz'Lqpixel.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_end4$dpixel_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_8x8x264_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_neoneeeeee0edf|fffff fD g\ gt g g g g g$ h< hT hl h h h h i i4 iL i i i i j j j, j` jx j j k k k k@ kX kp k m n omXnor$sDtrlsXtXwlxy${$|$}(%{&|8(})0 6`<<<@w@x(AyH U,V~0Vz4V8V0( 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<Sr ,;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 m , 0` `PdP, 0` `P dPC00S  0[ 4HQ0 08/0;0Q0 10{ ,; `pP40Rr ̐s% bkpX%S#Q1(;/0,0`  p ԰ qذP 0ఝ 0o<h p``GP0`mXP<]d ( R!s  R $    k K C 3 + #  h { [ S S䰝0 ! 0( 1, *0( d0 ,0`0800\p00 0瓻#0 010 0 瓻#00108 璻#0010T d  ",;40pY ` r R ̐>v%!pQQ_v%!QQP Q```8a`` QQ C- K- k- s-A_<0  ;` Ra(,0 00) RRP0P00 R5)0P\ 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  p80" 808$0Q0P 0080Q(PP,080(' 0$0 ?>  10S 8 >\ /  00/ 0 $Z4 / 0 S0ࠠ$ 440! 0R* R $ 0 1 00/ 0 8 ,;0R(  z 0/  0?00N?00^?00<ST DЍ; 0$$ 1 ,P 0廠08廠 Q $P(P,8张 P0帠 0 P <SWW00 Wj 0+ 0: 0 0/ダ>   10S+ 8 >\ /   00/ 0 ,㤈 0/ 0 <0 04 4 <  ?>? R( 00Rm<@X0P 000  2=( n<,0 n<Ѐ -4n\ P  ō00 -  8 - $    20; 0 o<0 ?00?00?00 Z`   0$/4  $4  ? >? 4> ? 4> ? ;;0 P0 \0; Q0 R    /    "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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4ď  %+082LG0<&Pb`pb5p ( h"h36,38 @ 3H-P-3LETE3hh3zz33HM3RbPol {33 @   t :DXdhtX4Dx 071Vh$w}Dmacroblock.c$ax264_mb_mc_0xywhx264_mb_mc_1xywh$dx264_mb_mc_01xywh.LC0.LC1x264_size2pixelleft_indicesoffset.9250x264_mb_type_fixx264_scan8x264_mb_chroma_pred_mode_fix__func__.9398x264_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)5H-L-,/906060606l18286666@8B8B8LEPEhE5R9<\8]8hy-z-zz}-~8~88x888588888ĉ8888`88(2>frame.o/ 1392656047 0 0 100644 18232 ` ELF(:4( $0O-0CAM S M0 0\. ! Px800`(0$`@P 0/p80t( 2 @ ?p XX,P0JP~ pQ 0O p p 0p OJHP  ` 嗈,@P 0PAˌ  0 S[``H ``@P  $ p,0~S00\0p00 0$p0xJp`0 $S00 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|  pXA0LS \a   lp p L mXhp `ph  $`0 ` ` 0qV0✀  ` (XX^X ` Q 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  `X@- 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4 8 E  %T8+T80T8828 G0:&P&:`p&:5[:p< * A   $, (186T; , 3@E 33J 34O 45 5T0^0l@zTl (,,Lx#A)a$+h.11 12  2$2P9l2,I2Xb3Tul334@55T$6878p7X57Q7$k7,frame.c$ax264_frame_new$dget_plane_ptr.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7CSWTCH.57__func__.9176__func__.9199__func__.9204__func__.9214x264_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+* +(+X+h,-$ D,L,/--- $(2l22 22$2l!2!2%2%2('2t'2(2)2*2+2-2-202123? 3333?333<4=`4?4444>5+(5+5=5?5555>6*T7.l7,7*7+7Gdct.o/ 1392656048 0 0 100644 38692 ` 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4 2P %+0#80X+&A~+Qp~+5+a-p  d0    $ (   |  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/ 1392656048 0 0 100644 39352 ` ELF(\4(p@-@`Q`  \P\PP p@4  ,  $    \TP0( 0@- MP@0 Q Q +C Ѝ00@- MP @0S 0S 00 Ѝ08@-P@P P |P hP8TP8@P00888t`L8O-/@pŸP`0 H0L0( |0h  @XpP`fPfC`$`P P8P4PxZ>V Ѝ0xpP ZPP Pxx3pZPhPGTPxx3x3xZ *0|0 x0 0| P ؙ Z pPZ  pPP0|  P @00@0@S& xx@P ,P P P P P P P P P xP dP PP <P (P P! P P P Pxxx3X | |0U 0Sx x3PWP| |0U 0Sx xx3x-P#x0x30x x | |0U 0Sx x3xyx| |0U 0Sx x3 P x 0x3(0xT x||0U1 A 0S 0x0 xZ xx3! @{ zxx x3PTn,1.?Pxx3bPd P6P x1x3`0Jxp{zzzzzgx?x33 p{z1xxx3`)x0x33P P#x`0xP`xd3xP 3x xx3(xxx3\LPX 8PK $P= P P P PA P# P P6p| 0P ` 0Px0x30xT xp3 pPy 0x x3 0x< x|xL 3dx qxH 38x fdxD 3,x [<x@ 3x Px< 3x FlJzD h P , l ` L 8 $  p\H4  LD0lP|T,xdP<(|hT@,pHt`|hT|H4t`L8$8p 4@ 0P @ 0Px3xVxx3x_ xxGxx3pxP xlxpHx0ShP  x*xh|0P DP XP lP P P P P P P P PO P= x0x30(xxx3x l| x00x0S x3xx !xx3|xx0S t xx xt(P x0x30TP hP |P Pj PR PA P0 P P P P 0P DP XP lP02Pw pr0  ppp4p0p,p(p$ptppplphpdp`p\pXpTpPpLpHpDp@pL 0 00H030D0|@<0"!"8ox3xxsxx3x0@ 03x0@ 0x0x x0@ 03x0@ 0x0x x00 3x x00 3x x00 3x ~x00 3x sx0 03x0 0x0x ax0 03x0 0x0x Ox0@ 03x0@ 0x0x0@ 0x0x0@ 0x0x /x0 03x0 0x0x0 0x0x0 0x0x x3xpP P P xxx x P P P x/3x xsxx3hP$ |P P PxSxx3$x".3x x@xx3 P 4Px,xx3(|hP |Pxxx3,hP Pxxx30TP P P 4Pw HPi \P\ pPO PA P3 P% P P Pdxx0x3p2txx0x3p2xxx3Hxxx3dxxx3`x xDx x@xtxx3<x} x8xv x4xo xTꓯ%~@ 0PExx3P0 P! P P P/x+xx3x{x#xx3sxxx3{zjxx0x3p2{z_  0Pxx3SP Pxxx3|? 0Pxx33P lPxxx38 P x0x3P2P P zxzx3x0x3L2P2x{P1 P# lP XP DP!xjxx3{zxaxx3{zxkxx3xcxx3P Px<xx3{z\Ps HPd 4PO P? P0 P# P P Pxxx3{z_xxx3{zVx xOxxx3{zFx3x<xxx3P00? 0"2-xxx3{z$xxx3(knN0 xd,xdP<T@,t`L8$p\H4\P pP P P P P P P P P $P 8P| LPo `Pb tPT PG P: P- Pxxx34mx& x0p03 3cx x [x xTx3xMx3x<Fx x0?x x,8xxx30x x()x x$"x x@x0 3Ex x xp3x xx xx xp3xxx3x xx xlx xh\/?τ/N@xx3Px3xxu xx]xx3xf xxNxx3PxFxx3Lx>xx3Hx6xx3Dx.xx3@~ -Pp@-M@ !R00  E$ L0 SP Z a` hl oX vt }    8 (=H? L?LHH 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((+    % 4 P0= D1XV 3h 3Dt } 3d X5  d5$ 5       (=x - =D d>T Z a h n u L?    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.9036x264_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_fastfirstpassx264_param_parsestrdupstrncmpfreestrtok_rstrcasecmpstrstrx264_cpu_namesx264_logx264_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     TUPQhQQQQQW X,W<WLW\WlW|WWW!hS|[S\\QQX]QQQ Q4XL[x^_^],QDQ\QtQQQQQQ Q Q4 QL Qd Q| Q Q Q Q Q Q, Ut U Q Up U Q T R Q Q ` Q QDQQQQQQ(Q@QXQpQRRRt 8$<@%D&HL'P&TX(\&`)d`ah*l+p,t-x.|/0123456789:;<=&>?@ABCD<EFGHIJKLMNO P<<< <$<(O,Q0R4S8T<U@VDWHXLYPZT[X\\]`^d<h_l`patbxc|defghijklmnopqrstuvwxyz<{|}~<  $(,048XRxRdQ|QQQQQQ Q$Q<QTQlQ``QQQ Q$Q<QTQlQQQQQQQQ4``l```` [Xt@l(D`|[4QLQdQQQQ HQ`QxQQ Q, Qd Q| Q Q Q!Q!Q4!QL!Qd!Q|!Q!Q!Q!Q!Q!Q "Q$"Q#R#Q#Q$Q$Q0$Q$R%Q %Q`%R%Q%Q%R &Q(&\&Q&Q&Q&Q&Q'Q'Q'Q'Q (Q$(Q<(QT(Ql(Q(Q(Q<)[H)[)))))))))*** ***** *$*(*,*0*4*8*<*@*D*H*L*P*T*X*\*`*d*h*l*p*t*x*|***********<**Q*Q*Q+Q+Q0+QH+Q`+Qx+Q+Q+Q+Q+Q+Q,Q ,Q8,QP,Qh,Q-[ -[- /RH/[0N0O(1,1`P01 41 81 <1 @1 `1_1b82bp2_2_2_2_2_3b 3b@3b\3bl3p3t3x3|333333333W3f3b344d4eT59`5]p5h5W5V5U5_6_6_46_L6_d6_|6_6_6_6_,7k47eH7lX7m7m7n7n`8n8b8n 9h,9nH9n9b<:nX:n,;n<b<h<b<<<<<<<<<<<<<<<<=== ===== =$=P=ol=o=p=p=r>rD>rX>rp>u>v>w>v>e>x?y,?y@?hH?l?kt?e?{?{?{?{$@{<@{T@{x@{@{@{@{@{@{ A{$A{@0  R @T1A0PpS00UG@0@O- -M4M1͍`pL0L@2 ?OdP`" a@ b 0T@0 0 0 2S0T0L`L"̌= 0 V 0@ `10S` Ѝ  > tl > pk`@ 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes8 *( %+0T824 4G0h!&P!`p!5!p<$ - <(  #((-027<< Ad |FKPV\bhnt$z $8H$lH@@   %,3 CMZky$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_uldivmodx264_cqm_initmemcmpx264_mallocpowx264_cqm_parse_filex264_slurp_filestrcspnstrchr-0.\-/0/ 1@1X2x3     55l5x55555h5p55999966X 7 6 6 6, 6p 7 : ;$:8:L:h:|:4:::::p;,6X67|766766107\666<67766,6T6746\67\;;;@;=>2?5t1|quant.o/ 1392656049 0 0 100644 8344 ` ELF(\4( 0p-@`\Pl 0 Е LȠl,Ƞ|րS@| @p/0p-P@`T@d@0 М LȠl,Ƞ| S@| Pp/0-@ p`༠PV `f`ЕEXPe%XuP \PDuPpp p0S/ 00-@\PlБ %ȠLȠl|P@| @0/0S0c0@-БC80c#8s0\@l@а0s0DH@d$Ht@\@t@@0l0БC80c#8s0\ l 0s00Aa!qֶq/: :B0-?CS00B J3 @ , P0/P 3Rl @ R"R, P: :B0-?CS00B4 J0C@ , P0/P 0CRl@ R"R, P: :B0-?C@S0 J B #Dt 00 P0/ BP@d#\ 0S#S40 P-Z ZBMC@ ```lp_E @ `kpg0C  @ jU0@ ` @d 0i pg`i `0c d p@ Ià    0 @B#@C3 PJKDCES"6ᰨ᰺L^Ѝ/: :B-MBPp@?C`@dP`f @ B@ hp@dS  p gp3j p @dh p`dP i b j @ `  p  DAI 0B#FcGsLàC3ᰰᴐ `p0Ѝ/-MP 0@ b0c `@lPc   2 0"| s0ɒ0 r 00y0 S3S0;  @0 00XS/ pw0S)  j @` Pl@ f`d@ b b `B `& @˲ @$ ` @"+ ` " R#R 0 XЍ/-`M 0@`@bP c 0 j bp0c00 0 `0l@pgP 0 0c000Pe`0d @c0 `gp . R# , 傎^,XUSnVc炮 ZN .TC R#( . 0(R#004P08`S3<S@@D L0u  0@@ PH0L@0US Pe /  r`$`@0S\ $p g @  b p@ lP` Pe P Pl @ Pe  j`l pg  k `kefp ,P傎(`N DC& H%Ⴎ 0@Ό4PJ$8`L%K&<~@I*.DGs+B#, R#R 00L0 PH`UL`Ѝ/S-ڃ0P`pOPP%`UP`&P`d`Cv`V`\/p- `0 qR0S*p/r  RP0C@Ps R   \R0Cs r  0CR@   00-rQ0S*0/q  RP0C@Ps  R  |R0Csr  0CR@ 0-?00S*: qR r  RP0C@Ps  R  |R0Cs 0/r  0CR@ 0S/0S/0S0S//0S/0S/0S/0S/0S/0S/0S0S//0P/1 sR / 0P/1 sR /0?P/1 sR /0-\  \ \ \P  P`p R@t\ RZP/0-\ \ \ \ \  \ \ \P  P`p R@t\ RZP/0 -p\ R*SP`p R@t\ RZP/0  -p\ R*SP`p R@t\ RZP/-HM@@ß8 ((ßD ß($,   0 $4 $(8 (,< ,0@ 804BD0 @@48<@ <@ `B`@ @@@"@2 $@0(@(,0  40,$0 r bRp`<Px |0D@ p`P8H04 80<@@T 0@ 10x0D0= @x1 00h100`10 0X100P100H100@100810001,1D$1H@T1!0p `hX@l\Ptd00000 HЍ/ @88D4t tPD0P@\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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4 @ %P+P0PT80 &A Qp 5 a@ 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/ 1392656050 0 0 100644 10352 ` 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4" H(( %#+#0#480H#&An#Qpn#5#a%  d'  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/ 1392656050 0 0 100644 1348 ` ELF(T4( Q0-*0RRP @PT \PQQ 0SQ0/3p@-SP@`  0S00204 03/3Se0@0CC(C4 0Pp@-@ 000GCC: (GNU) 4.6 20120106 (prerelease)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.comment.note.GNU-stack.ARM.attributes4l < %+00&9Ip5Y   P "h%5@,Ibitstream.c$ax264_nal_escape_c$dx264_nal_encodex264_bitstream_initmemsetT analyse.o/ 1392656055 0 0 100644 230660 ` ELF(t74(;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<$-@ P `0 !RPP!Q"RP(pP"q#(R#ġ<0<08018P/-0+CMl@P(<0Pɿ0@0\,0P i 08{'&^'P` 0aSR*4p!081!RU@P2+CpP00);#"bn#r1+S 0bSRC:"R<@P2+CpP00);#"bn#r1+S 0cSR4:c`Vp"=P0p !;#"bn#r0+S 0cSR*#< 04p< 08 880= 818Ѝ/4p"(081(@p#4 0<0(080(0818`<3R3-3R `3PB ApP@P (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 103/ 0_K03/ 0  1S0 S 2/ 0 0Y3/ 0 0Y3/? 00Y3/ 0 0Y3/  00y- 0 0p@10 S4 10 Sp7-6?0 0 _0p@=0 S 10 Sp8c6 00 -0p@\86 L00a -0L7/,6  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 < QM0$  $  ;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(0 p刀0, 往,0 D0 2 Y$D` " 0 p  5; 6\9\!0  0 P  70  0D`8 0Y#00 #80 0  YU 10S;(Z( `pB?0`0;0  0 0O? OO/  Q QV#0D`H 0 00R$QS40U00  D$ ` $  ;0S lBp0 A     X 00m 0 Q Y[R  P0 0 0 40 04.( (, 4, Vx  FR+ @S.P ⁁qJA05  P X Px 05\ P $ |05Q P Q \ |05P Q p05;0S1 S0S0S0S`  0Z 0Z Xo< 0 !`VN(,pf10S= ; R= >005S;03 S3 0 ;00!000 0YH Y ; R 0`V $ 0 50Vc3=00V ;0S 10S$0 0r0HsH8 aP oD$`瀀縀$ rR%H sS5H00`- a0R 0$  $  ;0S8H ?B"ቃ0pₒD 0 FbB?( , p80 `_0$  $ ` `00mm<    e0g0R0Q0$  $ ` `00mm<    e0g0R0Q0$  $ ` `00mm<    e0g0R0Q0$  $ ` `,0 (( 8 0l/S:00mm<    e0g0R0Q ( < `0LD 0,4 4@ <@ `z 0H0ZXo  0Π < 0 0<3 Z0X 010  0 " Zo0X 1 0Ȁ Z0X1 0 0Z0Xo  0ZX 0Z X0 010Z4y@8 0R=p000  2 r R  8 ;0 (  , 4 (0 4( , , 00 (( ,, 00 (( ,, 00(00 00,0 0R ?0S0 :0wxz y0 005;0S񏐥c D20p0 Q00 0_ Q' 35 \00 0(  0``98`0    * 0<0 7`8p p0(` L0 吋@TX <`L(`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 - 4; Z?C00S&|=〠`(0(0`pHL@H 0Y@L@ @;0S) ZBhpPpB_`㸂 0m<00S 0m<00S 0m<00S `P0m<00SYpʜ; L 0<0 D;pW Lk; , 00` (0 8 40 @0 H0 h%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# 70Z LXPp8x@p@D8T20Y D0# 0p00 05+!6 \  ` 0Q0 07  D `08  (" Z "8 0 0 0 Z ! R4;礁Z`B?0`0;0  0 0O? OO/  Q QԻV,"- dD$ 0p 0 0 DP"= `, 00 m, 00 3/%m,  0 03/m, 0 03/m, 0 03/,0D0#T+0! `0 0+:+3 3@c0z 0s0001 0#00 _V 0`@2$=0`.`$ $ 0sS1 00q@@c@@Qa0;09D?0 p000 08   ! " 0 034 \00 0` 08?0 00 00 005+ 0   ؅   \7\O $R - 006+ 0 $R - 006+ 0 $R - 006+ 0 $R - 00?0S=S D7+ 0 $R - 00|7+ 0 $R - 007+ 0 $R - 007+ 0 $R - 00$8+ 004S  0"T8+ 004S  08+ 004S  08+ 004S  08+ 004S9+ 004S9+ 004S89+ 004SW  0Q$-. $  {"  "  "   D-0 `#00 0 0$0 00 000*D0B`#C !0 "0 #0 0 # D00 \ HI0JK  ! \ L~0,   \} ! \ Lp " 0   \ ! \} L~0 "   \g ! \' Lp0 "   HQI0JK 3<+ 004S 0៺=+ 004S  0㒺@=+ 004S  0ㅺp=+ 004S  0x?0S3ڰ=+ 004S  0g=+ 004S  0Z>+ 004S  0M@>+ 004S  0@p>+ 004S 0+8?0>+ 004S 0 YDDB`0 C !0 " 0 #0  0D0 0Z+!E@-\    0Q00F 05 0G Y"  "G 0 0 0 Y ! R;焌Z 0`pB/ ` +   O/ OOό  Q 0 Q:V0 p?ń0S S=  ;0r0 0 5{!` +D0B`#C !0 "0 #0 0 # D00 \ HI0JK  ! \A Lp, 0   \ ! \ L~0 "   \ ! \v Lp " 0   \ ! \ Lq " 0  HQI0JK 9+ 004S8+ 004S8+ 004S8+ 004Sx?0Sژ8+ 004S|8+ 004S`8+ 004SzD8+ 004Sl(8+ 004S 08?07+ 004S 0 8?000#႐0,0 0 , 0 S 0 ?0 000S 0 ?c0 ?0000 ?000r"  "F 0 0 0 0#႐0,0  0 , 0#႐0,0  0, 0 R#႐0,0 0 , 0 o 0 0 0 0} 0wr 0qd 0kV 0e 0_~ 0Yp 0SbO- ,MkSM`P@D P<p? } 0pBq;  ,p <\ \ ,8O?Ȑ\㊡0 $s040 L 2 <  ˎ& 1| 3/2|0H <L 0&Y"6Z!0> 01D0   0 QLpH@ a0`R bS0c0( 0 0C4L0 <@  0̈́4 |x  帠R 8 0$ L H$ @ @TB?<\ 00m 0 0 0 S  0$ LH $ @ @\p Xl 0$"# ,(p$4 (<0?  K I,@0 045SI@ 65Si , \@00)700C8@ o 13/M<͌L  0^ StB8d7 b@0 L7  R0TK8aࠢK7ˌpv7f@2K$A AJK0 2B0*K0K٭ 0ጢ ٭p ᐢ  ऒF=K%0CPR pR 0ᐒ$ $` b 3/ἢZ` V  K 0 \000jKzK83 Kpb$J$PK@03/K:?O`% @@BNpI Kab@cjKe7pbzKr 0W|K0H G0GG0FGE0G:KBK$Hb2P0U SX KP :KjKzK2$pGb  l5@0 (`0 !zK8@r('zK$pG8ajKA"BJ-K0 B#~r1 Ap Y*@! SR@1P1" !SR@1P1#1SR02 Q  KPt4@0tBrpr  0༒2JKjKs0zKBbtr O#OD00#N W KP 0H jKzK-/ObrjKbp 30jKprp!rprprpprbpjKpb0zKb$pK0`zK\X2K`DT00 B4NA$NK"tr |Krtr"|hrl T J]KIK PEK N ZK$A`p `I}K0pGImKR`F `P IKK L$N`p `PI]KPE PεK}OP KlrY(:jK lrpGlr0Si`zK$pG a(`0(@YP a`8P8HpXX qxph Hh0!x@q*A 0QP@1P1010 QP@1P101@ QP@1P101P QP@1P101` QP@1P101QPp02zK0Rb $@K0AV @O$ dK`pas0bO#ODcdzK `rpezKP``rWpfg KKjKDTb0 #0 `0K $Kr0\22`K 0 C4@B$@"txr x |K xr t|r "|r* TX J KjKIKI}K APZK$PE PpGbp`ٵJKIK A N P`pʵ0 P*K0 $ B?*KJ=KK"K$LB`C K`Vp$KMK@DI-K IK N% 0 BK DVg0 PJmKKzKI-K$pGP 0p BIKNI]K PE O FIK pzKLPrpzKD3r0 IjK 2pep5v*K=$K?O`Xbb\b`P*K:KzKJK"$@D2@ 0 b!BΆBK}KIMKImKG0@D `Fp" JMKK @D1+CIK 2+Cq GzK`$pG p1+CpN0 Q0 3 0J-KjK BI=KZK 0C$PE0I}KpG0 P bp`IKK0L IK L `p`P9K50 M p 03/`K`500@ PeO- JKMMzKpLpM@lP7\㤒p4` K @ZK@p @D 0p;M @01HPL2;PTX0\KFZK\(  B$ K4P}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`PRbd;<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#"70005嵠IK0JJK✢ J K@0RJKA *KBbrK@P\.FmKzK4`Flr$1K`"|SV  zKʼnrᵠ P KQppĒtrp K  2Hn K5H Kp jKK$PKKrJmK`F1@jKQ F=Cb p@T_JmK`F"p@ 2Bl |2 04xZKp|ZDcB? JKK⠂B">0R^ SKK0@ B AjK  25Ar8ᴢ`|40 t2h4pY|"K-$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 @c J]KKIKIK@ L `A@JKpl O*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 0,%  K⨂ KK| !⁀KK K|KΏ.ΏH KK\Y| "$K K K\"!K@Ġl P KJ-K B| K KT&|K K"L$"-(| `!KK L KK| K 0 KJKK0n?#:K2 KLKKx(KP`2^nx 1!  JKԀXLPTLC Tm KJ KIK LPI]Kp PE`P lJK NIKHp`P 0`pP KKJKI1 |B$H!x咂T JK)"L K0 CK*KKKl"IK@Il0B KKHI-K B%ВJK$ @IԀH@T PJKTn0`pPdJKKI-K0 BPI]K`PEJKlIKP I WK Hp ` lP KJKI K1 B$HK!KxKZKjK|RzKb 0lr D=$K Pp$$@p:.@$⤢@0 aK*Kpx X KK* KK0NKⵝⴂ@( Kጒ"崂8+ 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 @DKRIKNPl彍JKA Z*K:KZK"l2@ 0 B! J KIK @0A✂JK@A@PHPqKIK LJK HlIKA R0P0p`@Tꒂ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 @! ``S;8B b X  } Ph 90  R0D>0E> 0SZXB10SBpQPpPXB`1<1UX1$K S`BpQVP; T08B=pKX0  X!d r p    0`SM4@2 K 0 00{?K QP 5 5X5@7Xa5 B 5XXB; bX!`0 ;0SCI|,`p@K " ,B┬̟ Xbr Y~!mFd2 |" 圢 x B `b r t 2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 嘢db 0XB~>␂0$1 ? 0q\0 (0! 01 0 吂   QZ(2  Q0S  @TB  b_|\r rQ?K 0@o?pPA0爣Ä 0  p1 `$ @ `"0 01 `2 0 3/8T0S  3 T0L2 3 3  0LKr m̆m\PP` p0@2 0 $3/8T0S  3 T0p2 30 3 = $@0p| 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 + 0<+ RZ R R * {ʟ Bό L00 R;81skg0,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@Jz T zzwzw:0r1?m?O-qO@Pl2qM0W` Ѝ@  Pu jj9 A1|jzFZz?p'ZGZezzN:Ns0FW00l㬱1 0="p ZQ ZG  _0 \SՑqSBZ 2PSڃ2S `0v~AA?#S0SyOOP :0!̀0@>  Sp W {0`0BSB 00BSG\@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 S000)n0 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 @f@Q\.;0  l) R : P !m ! P`QU- QSS @`P00T0 m8*0 Tp00PPp S`0 X0 IX \ \H Xy00UQL I| UQ L``L` TpSPP D pcTPP`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"q<2Sg 80S 4b ^ 0H3/U_ 0 3/};0SSU7RDP <P.̔\\8+ \l\ \"RP<P? ] 0P5580S 2SQk0S H Z 2  0.3/0Sx  |2  0.3/tX0,0PP@`0 T0 THpWH PPP _ Z 2  0.3/0S@PpDp a@+0S 80S Z Z Z Z 80S9 10Ss @8!r }@P8! b@@8!@,0 P0,0 P P V@`p0Dp 0V0p`Dp V`4!0D0 pR0p`0D0 @P0SJDYG W Z: Z Z  Z=@;PU U U U@0q P y0P 0P 0P;PU Um UY U@0 P 0P 0P 0P;PU1 U U  U@0 P  0P  0P  0P;PU U U  U@ 0 P@` 0 P 0P 0P DR00ST  _\P`q܁   0RV` , S   HLDP DP\   p  X  `\w  1#0$0tx1 !00  T00Ddl  0|p dp p: p8/0pSppq  0YpqHPULPHp 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|7 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  0VXpqHPUwhpHPK< `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ƒja=2Sp`Dp hHp  K<P90S 90S 90S 90S38 P,2 0_ 23/U,8Z@PP 5lel&`6``pbq 5 &6 000aFpbeR 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@0; ."$(,0 4$8(<, @ @p@^jv@ @o0!d0# $   (   ,   0  4 $  8 (  < , 0@090Siڰ90Seڋ=pWpڤ60Wp=0Sڤ& Sp=0Sڤ& Sp=0Sڤ& Sp=0Sڤ& Sp=0Sڤ& SpW2@@ @81s 3p81@1!># $   (   ,   0  4 $  8 (  < , 0@0p ."$(,0 4$8(<, @ P p `_l 0 P# $   (   ,   0  4 $  8 (  < , 0@0W. t."$(,0 4$8(<, @ ͔\lx˒P  \f0+0S@p;+0  |11p Dp u? 0 S3 S\8@“6 L02a -012Ss   3 S( S 8“6 02@ 0c-@0 @@P a 0@p0 @`0c 12Ss   R S3 SL7@“6 0`' @P0 @p0u 0@0w 0`\"D L`x2 f̔ B3S30R00@p0 T0 ~8 >00SD x@`\03b02`s@q@Py7|g|(`8``])` V@ 0o2`J@P0 0PV 0 0P@P0 P@` 0F P@p0 @P0 0P@`0R 0P@pP0 PB  0P@0 @P0l 0P@p0 P`@P0 P 0PQ 0 0# 0I@L7b0P drh `t@ `x] p0 pP _0P:@ 0 \8[[[ Č[0|b@pdav` `0```pc 0p@p 0y 0@` 0 @P 0 PJ  0P@ 0 @a2S; Z D> J y0 0H 4S[h>0 04S<; Z > J ~0 0H 4Sy>0 04SZ; Z > J |0 0H 4S>0 04Sv; Z ? J p0 0H 4S!@?0 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`K@PaE@e @P 0 P 0 P@P 0 0PZ 0 0Pd RYD ,T@006|H RH 0P0 PPLpPW8*0 00S 0x"00S|"3R3 SpddX@@\"s0≐0i2X! H0X!SH1 b "@l%剐0il5X! H0X!S@H1l bO--0M@M 0L\S` Р \ 0  b0`@ N PB@ 111111†222=p-؂ 00`   $zzgz``@zKp `=` `1J[ dj-Ѓ* z00`dz'zzz zK   zzgz*`1zK-Ej ؃=p 00dz`z'zzz zK   zzGz1  dZ@jz[z *0:jdZZ&jZKzjKZzwJjzXJjzZzpJjzZz`CN` ENJjzZzCN EDJjzZz@CN@ E:JjzZz`CN` E0J@@ ,@=p-؂ 00`   $zzgz1`0!@zKJdj`R0:@ ` zEz'zzz zK>P0B 10 1 0 0 @`KL@K ` @zzgz7` @ zzz1Zz `4K0 zSgz7&zzz&Z0 0$ (0,0@@@ T/ `!0|03R0S& @0P@@ ~??~@@~AA~BC|?<BÀ@T `4K@0 zS'zi @j Q A{:S}S0$0Sʸ1$0Sx z `@;@`\0pC&  0\`@ p` t@ Rp ` V x`\0"0@0  9)  c0R S0/?0 Smz)J[t0`X <:@ |@ h` d@ z'gŊ!jj@z`zjgjfjwjvj*0Srqj_qj_fz7  z''zz'zwzYY`0l S0R S``l VMʀ@T@q&Rh Pd@ 5h 53| 5dx 5 l0r0V@0S6l T3t 0(@$ 3/0 p S`0Rhpt(@ 0 $3/`0 p QWd@ x | dpl0q0V@0Sl\hp @`@@ V|`V |`V x0t@d`\00V00SJ[,ZdzEz'銴x@X2 t` d0$@ `(3/2s@`!0v03R0S`0 0@\- P1Q  T@Q0CP0@T@ @0@@S@@TS,A)Q B0C#T@P0@T@T@0CP0@T@Q& ` 2Q0C 0S SQj @0C \ PX2 03/Q `X2 03/@1TS P@K `x1 @P@ ` `0  "`0*0K0$01$0Sx @@;` 0 @`t` '[`0p p @Q `zZ㚚  0`z[`l@| d h@ @0210C`ペ` @〚@  @    t\x@0  R0  x0 t `@ Gz]z'zgj Q`0 0(@ Ak:S j0SI0SD0S?0S:0S50S- @0``S0$0<1 @$`Tt x`  e ` K0@@@%`@; 0 `0p p DP ` `@  @ `     BCBO-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,P00C0 S8 H B8\ LP8 ( (8 !1Po8 ( (8 0 !,YQ t8 p8p8Xt t Ra\TG-(M@pLHPXa 2So 0PPPgji $4 d q`qR\0 lz{z'gzRA\0z'z'+ +r;b++XX o^p(P tQRPʕ Pn  P p (ЍlQ\ ʐz*z'z'zU BPEzw b bj*jgzzz7\0 Y@O-$ML@ \PHTF p0SC t R    X  X pPLa  0pPQPT 00CSPpXT \(aP@p @LX0  p-P0 pP`X@L1 !P$ЍH  0L$ЍO!0L0X O--4Mp``Pu3@S$[00Tz'8UT !1 R  3 RXQUD1x( ( @Jz$\, ' H 1\ Q 00R0S0L @1 @DTP0C  Q R$(P\ 0fx0 D dL|0^ S^,3 T P  0PFPH  0PESU0lPL0P0H  S$ UPEZP$\4Ѝό 0x D 1 TP' pW@` @` 0 P` H  0 gSPE U`0aPA 0 @P pH  0QS( \,BTB (H  R|0,S \ "R H 0À4ЍOR @< 0xH D1 0 4!4ЍOx8 D1 ( 0@ 0H RD1(  kU{ `jO--0MjK M=M00CS K/@Р0P@Vp80t( SR*ʒ$$ 2zK4 R S&*K7 20S jK0V00dUPV ;0S, R zK`;4K?Ov W,0 0SSKjKAP, !P0 SzK̙A.LQ\0 Œv-HWP %%-   P (Q(pK(pSw  `+4PK/OlzK$$  Q`\ ``Kg7 FR 'T"R "RK7  h0S JK*KjKR]KG4PES-K@ W B0v p_P0*KRK04AJKSK A'ppWWU KSKA0 S*K:K'R   '2Sl0S3KK\-K`g WG4pKU1PR=C^ 0C0 0S 0D4pK!RA AAQ SKA 2@0CAQ@V*K W:K7SK*K 'Q 0BSmK`F1p S 0K"R S-K  BpL0C B*K'RK7YJK GRSjKPWPjKgV  KH( h*d  `:.0 $4 t@Th T  K*K'Pp@RS]K`PE@@0QTJK4PK`;?OG!0  WPTPnh0@`ES KS-K  B0  kP 4K`;!?O0  JKGT:K@ G#0FW2jKKPp W w S ZK`0S-K w BgS0p K 4 WjKgVyKC K F @dCK NCK A y(x(GK?Vng c'B d ' JKp6S06SpvrN*Ky8x8GZK&[ Kf @Cf*KAfjK&1aP20cccC=K 0C[K LB&[K []K A PE0S K`PNKPS@ K@0 @PR*K 0S-K B@`V}|0S 0hKS6 V00T0S :KS-K  B0PP@`VUKP0SQ K*KK0 S-K B` KV00P  R KF@:KS-K B 0PP@`V00T  RZKFKPU00S *K 0S-KP B@P`VUKP0SV KKp K&*KVFQ0D6)f0&cczKyxGKv[MK @D`? f 1c20cC}K pGccK\pp` Kg0AJKGT>zK$0SK06L \P04`K`+/OJK  KPKZK0F7GBT` -b@`zKKw WJKPK4 K1VK`+/ORCW\`p HV K 4 KJKK 0RMCS-K @D B000CS00 02S 2SrK0 j1Z=8 K4KJK=V R-B  &. ]0͌a V 0K& L@  @LZKF@jKBZKf(6@L@ZKVPIWL1.  KP!0:g *MN` @Ag1 A a  K4K*KzK&0R=CPWMN p @A1 A a JKKGP\; K0SKLw=!& G&6Al\ T T TzKL! w`g *ag1 A a  K4KzKM> 0P R-B` B 1F@'&B pvzK(7vU1 A a K(7 c :KS-K Bp7 P2S v"1R0Z>0=K K 16*K4Kv'0qvv KR=C ` 0`jḰ6v606`b|K`b,IKK^M> 0tL1 0*g0:g}KSK A'p6PH6GW Cw0 eZKKV0\!4KRA AQKS K@ @ VQ 0P K1 ` KKV K^*KKKF6G\z K66 0*`0g:gJKSK A6 0)H KC=K 0CZK CmK `FCaAa DJKWS=K G0C$DpBP S4K`;?O 0 oK&G&FK V5U5EK/`@ KPCVvKV&KPS-K0A BF PpP4K0+R=CF 0C0 R*!R-B` B KVJK4PK`;?OGT!0  zK40Sp0LQpK W03Sp|*K0 S-K B:KS-K B0p@ KS-K0 BP  (K*K(@P4@K 1`R=C 0C0 q4K0Kp R=C 0C R 0U  xS-K Bp K10 SV Kp0PQQ!x0*K20cKCOS-K  BS@Kσ@0@(hKo>gpG(0 P4 K@1R=C 0`04KSKpA0 KSK0A pp@ K0 SKAPP@ @` ]4K@1R=C zK 4 :Kgz*KpgvKpgr K@0R=C 4K`+1/O K`xZK0$6zKwpO--8M$4 @=M00C4 Р0R0 0 r VL1 b>0 *P1h)`0g, :  pg$W pW0  pp P  Q Ɣ\ a>0W R1 A a {z  &  x`RY0G0x 4 *0 a>W0` & Rʠ02S \ P$t ,0aP\40S, 7waQ00 pė0 SS S0S000l \R \}$$ `  bPvSS0S0 R000Sx RU SS$4 d 0 aQ0 R  h R h0| S[ p RN $$  , QG S S00Qa0S| RRRQ X \\0   0$4  0 , X H$ 0!0 ,  炀| RXZX#,01  p2S2S3 $4 0,p0X\00 & 0㌠ 0 0 0P`ს U1 A a 8K p p0Si t0Sf $4 0CS`=0炀p2St X$4 P pX !K 0p, 0 ,0 K0PPEU 0 PA X UP 2 SM  K 02 WC pKP` 0P K!0p0SPU0@0SK1  R h0S2S2Sz 2Sw ! 0S0 $4 00S000S\ CR'SR$$  , \$4 0XH ,0`| a 01 0Z1 \0   00E  0 C$T  ,pPP 0,p  D$$ 0LP,pg  g@ `ᔠP (; O-P0$MCQdSh ;0`0`c coય`ʠ pfa;,↱( 00 F> 0AT2S "RK 2S3, (+t@$1 ! 0  BR   !l0S 2S (;000S) $Ѝ00 Z>0Ap``p`a 0`CV@ 2S  0`CzUz'zgt8Pzz,;`О80 Q(" $10q0 ଲ)[")L$b@H 0 L Rt8\80( $ 0. 0CC 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rel.text.unlikely.rodata.rel.data.rel.ro.local.rodata.str1.4.comment.note.GNU-stack.ARM.attributes8P  fP% + K4 d0 C!O2K b22q0|6&z6p656:1 ,Sh " %"` p<p"X dZd"h t|t " "l tth" " 4"   "     "@ HH" ( lJ% dd"`<&0"X' l'l'*,-<"0 0  0%0"B B<B"D DXD "0G @GwPPR\TD"Y YY"Z ZZL@`b"`g g(g4?h "m mVm"|q qmq"4y PyPy\"| ||"} }}" " ( (,"D T%TX" A"l "T "h ]w"x " m r " " p"\1 1wx? " K (K"N dO"n o"xw w"$ H"h "Ԫ " " 0%" 0"p " 0"p L"4#p       L  < #,0"6$ *p 0$ 6660"E ESFhIvJ8"PR XR"T TW| " p Hp"p " " "P " " " l"h l"0 ( < T L "X    , "< &h ",=X3c< |LTJ08@"P8lGtXg"4L$2;T m   0 (D 0X 4e Dw    d d td     ((  < N , ] T l l     "  " "   $6 7" 7, 7@ I L   K a w    H   P @    P  , 3 S f    @ @ , 9 U e v        t14?Qp|(K*+GvUwpp +ENgQXRTp`U6K[`ws0Hbt$  6Ranalyse.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.9177next_suffix.9162count_cat.9178x264_mb_partition_listX_tablei_mb_b16x8_cost_tablecoeff_abs_levelgt1_ctxblock_idx_xblock_idx_y__func__.9568i_mb_bits.9632x264_mb_type_list_tablex264_transform_allowedctx_cat_planebase_ctx.9652lut.3618subpartition_p_to_golombsubpartition_b_to_golombmb_type_b_to_golombcbp_to_golombct_indexsatd_shift_x.9906satd_shift_y.9907satd_offset.9908hadamard_shift_x.9894hadamard_shift_y.9895hadamard_offset.9896x264_pixel_sizex264_zigzag_scan4x264_zigzag_scan2x4x264_zigzag_scan2x2ctx_ac.10416x264_zigzag_scan8i16x16_mode_availableblock_idx_xy_fdeci4x4_mode_availableblock_idx_xy_fenci8x8_mode_availablex264_pred_i4x4_neighborsi16x16_thresh_lut.10695intra_analysis_shortcut.10691cost_div_fix8.10730i8x8_thresh.10731__func__.10859__func__.11407check_mv_lists.11522weight_check_distance.11859__func__.12319delta_tfi_divisor__func__.12421x264_b_pyramid_namescabac_size_5onescabac_transition_5onesx264_cost_refzero.9921zero.9909x264_cost_i4x4_modezero.10660_GLOBAL_OFFSET_TABLE_x264_cabac_transitionx264_cabac_entropyx264_cabac_size_unaryx264_lambda_tabx264_lambda2_tabx264_weight_none__aeabi_idivx264_exp2_lutx264_me_search_refmemcpyroundx264_log2_lutx264_log2_lz_lutmemsetx264_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_cache_mvd_func_tablex264_macroblock_encode_p4x4x264_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_skipx264_analyse_prepare_costsx264_malloclogfx264_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_ul2fx264_weights_analysesqrtf__aeabi_uldivmodx264_opencl_lowres_initx264_opencl_finalize_costx264_opencl_flushx264_opencl_motionsearch__aeabi_idivmod__aeabi_l2dx264_slicetype_analysex264_opencl_slicetype_prepx264_opencl_slicetype_endstrspnx264_opencl_precalculate_frame_costx264_slicetype_decidex264_ratecontrol_slice_typex264_rc_analyse_slice`dhlX1\2`3hl`3p`2`2`3l`3p`3123123  1 2 3 1 4 3    @`3D`2`5`6L'8X'\'`'d'h'0`9;:@<;B`7@C<D`=D`>E8P?Q@S@TAYY1Y2Y3YYY4YBYY ZAZZZZZ]A^:_C`D0aDaDaDbDDbDtbDbDbD`g1dgEhgFlgGpg2tg3xg4|gBggggm1m3m2|qq`3q`4q`2q4y18y3?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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4t \ %+080T&AzQpz5a + p   !!DCTC0`4`x`|`fftuu0*/(60>DYLh\ r|003d @H_X4`H|`p+ARcf{ume.c$arefine_subpel$dx264_pixel_sizehex2mod6m1square1x264_pixel_size_shift.9141range_mul.9172hex4.9200subpel_iterationsdia4d.9425x264_scan8block_idx_xy_fdecblock_idx_xblock_idx_yzero.9221x264_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 0 {pn 圱,!8/1 3/q̈́#p44p  00#;/ (Zy,P!1 琀# 0 I( h#4 垕( 00(  ^0А8 K0( @\3 a,0p8렡Pi n7/1 3/1p0 3/g E eR<65<72` c6U\7Re P !8\ "0"q"q"!"x0 03/  # 0#^0)PR2 hq' x0 0q']3/1 أ` 0#8P& ` PZ,0"3/0圹(аP# 0# 03/0 哺*瓬*4 ,8/ᕥऀ08+  = P  %ĠP ̌*$ l أ$0 , b3/4@,P<`$"Ġ̌ "$,bl[zzjjZaJZJFZEj Jjf a [jJZ@ZFZZ߽jZ&jZZFjZ/C--6P`p@hQ Jl21A@RRq0C@2S@ L1"0f0:R G > ;Q R+4 Ad  ڠzz1 Qgzw*2+S P  00S0QF T 0S z ;a ^c N0I D  zJ{14 Q+S; +4 Adz 0:zgz7z'j z ' ' @z?@z?@zt?@z?Y?6O- -P@$z@z$M!`T@Z˒0S 0Sڸ"R :Jzpj;1  1zZ K`ZZD{cǺKkX{ fzgf [ z[ `y mj( !M@0 S+p@/  P %@0 S+r@  C0CS( e R P001R S z jzjz{zg'z qP b+` rg g ^kfNCJ[c y J `[c[[ ڮkYZ{@'zez(;T* ;+` c+I ͠+d K qC+xy+Z ;d a `Ρkf kf `k[fkf^L 0SʻJ̻KLJ $Ѝ zzwzwz  zg z$z'zwȊ7(z  'ʷ?)\(?Y?V V K["+   !zZZ z :;JbKcKQZD {zgz b{c{b ^Z d; c NnZ;a++k gΣ Πkfk{N E U{^'zezKkNr Z kf{'zezXt0Sqz \2jzz`"R `zDkz&zJ>(;I00X q6 Q A Q A QI81 A q q +a2 Q  A w I H1 Q AL@0!Rr+ K[^lZ y a NZ [db b Όa a [Z+ꚙ?6yG--P4@M⨜02,`V @  ^ $ğ $  0`Y  8 x8 p+S1 A싸1V㈛ ]  ~`aRZ fV\#Ц 3.;Bp bȁp\3% 0Rt qz`0 QL1 Q\ 0 WvX R ȋȊ AFy`NJ ``!0`fj ɛ*zBz  !J `` Q+S1 A 0 Qɚ2 A")ɛz'Z |zz0Sɪ 'jzzFz J^ON+#`⛷ɪ aRD S (\Qz z  jF R%jj!jz&zFzz)Ȋt RtS r H H `t ȋ60qI Ѝv Q fW"z  h  A k6 QX _0H !03 A됊 2 A"+ra `   ` )DY@r1?Y?;:  0!z(0!L^ p@ࠃࠓW0pp\+@{Pɚɛ zw8z'ɚ!9ɛt0ɚS 9Vɛ 0Sz\bGz9z'Z4;0jzz>!;0:ZKj_zE &jez&Ȋt0S r 60H H {t qzzg9z'jjz_ &[2(+KSz*4[2; aK K`;c e[}ڿS+#p0`40``\db^ , p;s4 2;{zi .( \ 0S0S 6 0#0a RS:ˁ ,۵ PNN  Z Q h+ AM6 p a NJa a ʪ *ʫ2^IWgF b0cR b*zS0c: z'jz z'50F:  h  A {7 Q :bK^aKN|v26 \ H Y 6Sp"R .#``+! ;;cS&K NʪF᫷z'z zz   'jzzFz0WH @z?@zt?@z?@z???Y?r1?SX ૴`C`NJ ૴`` ) 9 )I?Ck  Q j拸 8 0?C a Va A({ Q z竸Z0  A 8t6겛ɫ`CJ ૴J`` ) 9 )I?C{  Q z狸 8 0?C Z K VK1 A!(1 Qś ;K[˃ A  j p +j Kt!xb˴bNt  Fj   0 W!PS! 姊xt(p Rzxzjz jfj6j&jf''J7y 0~41! 1(1p80P3o P zz'zwzwzgsp80xX41 ! 81 ! ;0S 0SH!0, Z\0 O-0DM A3(P U@ Q$@!PAT(41R$0 Pzb00S!TqzzgzT/ @ ;0S# x8\(PH1 sj@41zGjzjz:S0 S?`CS?0<5S4ײ0 R@$0A1DЍ41(@0QQ0A失aڬp8 `F  , @ 4@100P@ p崡@[0i  pzSS0jSzzF@z T p   0,\0@P0 04@PP㨑ڰt8 P  PB0 0[`p帡Y0!  2zSS0j SzzF` Vzp0@00SG` Vzzp@z Tz p;* Dx<P1 ?P !b1!P?0S P|   @:0P1$02   + Pp8tM-M60M@ P0P@ RG;K8h\pK `(` ,". R`p!R"\K0P0Q K1 @p(;`00; RK0O--`Q6 M@P0Sp2S "R{ژPx 0 S"*" k:P0 {S0Ϡˠ`{ p p_V``V-*: ; t+Qj x!0p K ;KaK b+K +aqKK`++ 00Ì0@bNQ D0 W) zzz* b b N J+ zb { ޠaP10:zG +a2 Q0  S0p"R 0 Ѝ zP3琺LoL2\ojHS X0Asȏ`1Ri  0) a0Id:`hg[: `fk 7KS{N N*oA lB;+`c +e+q{k o `PӐP\m\o aQQ=@@@?A@,Y?p0x(S"P0x0Rz:  *+p1 Q " {1+Szz _{8 {7{ Azgz7z'j)z_ 'zg 6 j "jzz*+J +`+{$ %z(z@z zzwz$zh  00+H  ЍO2"R00 0 `<O--_MFPn  p@Q4@  "0r03Q0 R4@ 3 S #R :*dz2SEz'z  z 4 0J+ Szx80@ 0A 000b Q?C,a  2S00S4@̋ J40S4` 0S) p{$㷋'DQz z 4@'zw:?C@!D1%D"   `N 0?C Ax k Q 001 A i. `( 告4@ z `8 t2:+840 ;r;s zJzKd+t:K+r q{ kk:ESE0?80;*ERE /< * 1+S !20D!1 pdP P\ 4P`l@EF@p2Sz zzwzwJ )ze F jzzwj )zg T JzwZW )zf Z >ڈ0? 008@ R Jd@8@* @@@{Gz?r1?Y?hlXD0h`@$|8$4,`5<V%1}!傊!P%1!?4"12(@4PFb@V\RX@0"0 R RB0z SQ SOQz^XPhPlE h20C0!lB0!0 50l2P0 /hP l• 0, Q,R02Sm P8 P 2S\ @P PP @ 0PiJZz2 3S03C4z1:!'z'z'  P @ P@0P3 S@^PP d PBxP  P|P  P6P  PqP  P}P , Pe@P T PqhP 0S(3S D@ PXP $``0  ^   @ P4P p2SJ TP1 hP | P 0SSt0p0S2S P  P02`x @;@PT ,04SAjSsʄ@4P  10#Q0@ 2 @0D8 "8\ "@@VFPp4380`d0h@x;`P pP00뜰[1[ 勰d C0TDDL HT$JjjzzZJh Zjjz @z(Z%Ze(j&jfz'zgZZZjZjjzjzzzP   ! PP X`㨀f fwP b V0XZd^\ `Pf Pff0bS B0C  'S񏐧H 04@90D!2Sl 4P5 20?C"hH  4  Ѝ x8( :{{z'Z z۴@S@C 'zz'ɚJ0S#  jz#  1:+  h b  ۴6x2 * /ZS '# 2S2S 2S2S  04!1 Zz:*ej,jz'f&-''.j/ Q  A{0 Qz0zz Ak Qj1jz Ak QJ2j0S0 AK:3J 8P000  8 8D4 Q4P |0S 2SD04[108 S 4P01P 8P lP尰PA@HɚӤ0@P P ZZ)jjTBz zjz6gjjU'Z'zvQzzz,ڬ!0` z  @@Y?r1?=tPZz0zwHJzJGdzJhzSz'z7zP0z'zg0SzjvX P[X4D8 H弱!0S'46n\&_p@`㬫`@T4/T `o P /@0 T /4`!  4PPAt!0 @`b/r'j* 4P 0   A fk Qx1 A { Q 3 A + qq #  XP\K 02 R \/R02 R0P6 2S@8$ C S \3P0H@`0TPd@H@`8T P`R` PD@` 0 `P009ڜ0`0S@@2@DP8T @@8\"P /  20T3  =pP @P P ! 0 @P` 0P`d0P@  @PD! 0 3 4@S p@@! 80 @2S vS @ 4P,0A 3S3 @@\ 0 }p0 S \  q9B.?O@L 4|Ld8 t`$D lD$dd`Y?2? S}   6|0 S   *0 S   l0 S} !  0 S   \ 00`0[ X( @hT!^@ p@DK˰* Y{ QH 0 A )+J 0:" ` p h < ;4Z10hT0 QP ᄿC2K dSp@ H`O A m J `a# SC A`{J Z{zz'z Hkk )Z@D` R@!d@@@zt?i@@z?-C6?8Xt(DtJ 00T00SC Q PJ d#_:* ™!?C3+C\@O; A+mk Q +a J+b;`;; _\!:?C+CG  A & 0:D J* zz` p'z h+ +@V _"*૴<!;Z AX X {zt Q\'@!  xp! @ ! !  {4@wȠ4"0D A h`"  a"  Z"  T"  MK˰3K˰/z+ D@@ b A!f  k:0 @@@P` J n[[Pd 1S @P x P@/ !0U@1F8 A   Z#3˟ 0a, ,0hx |0T 0 010@!D1k0R +S <1S A J H F  @`pPT L 1 1P U@! F @SuJP`尒僡S20D0T& 1 0hP Jl@p T TpAp0SF+F  S SQQH+#` ⋴J⋴bށS$ S01 SD0 Z:zz'z ]zIkk{ƻ'j ˺UzP Nj0 zz'jG p k kPN W 0Sz *@DPEt1[PSh@P`d H#@  8P\D@X0@ Q@X0HRR@T !8 ; Q  @Hz>Y?r1?p$ X\8 ZD0@@ HP0@8 PD0@@HP \0Sl@dpt T 1T8} 1  S@   | 0 TzzH P`z!S#ASH+2 RJ]01U+J 0HL@!D18!<1UDx 0[.HP@pD@H0j: P `k QT1 A 1T 1 0R !8 U@pXz 0: -NP 0 ,0 PTz0 ,0zz*Z"0j ۴J 400c:z'8z Q0A:|2抸ȊJ: H z,; 0P0L0XT{z7zz :ESE0X?D0"z!z@060WP;N+ CbP N qWN 0qЍ S p2S 0Q| yz'j z| zz't,{ (1ж! ,1! 01!|(; 11y?1 L1P!f˸ 0 G۸ A k\  `  Y A j3.;B!o  \3% 0Rt qz + `a `8J"8ɋI^ Z IjL 0HNS`9 ( S 40 Q `4 0QP$00dQ!Q`$ p(t :* a ݡ` r z'z   K e= 1D!1ffffff?}A_w?@Y?Dr1?,;0t0S 8 400?0:NJ2ST0sC0p0qz_Xsuz_gz0&x z|"'zwz:S/S/"0Rz ,+j zt R(+6-4!8!jj !zgj6&j&z'·zwzx|"zwz:S/S/LBB@--@6PPk 1Sjʰ90S t"0h:4 yyzzwzzz z&'zj Ij )zzjGzzwz  pk:ESE0?<0zz zf'zgj S .` Pv\>Sb XP.T>ΔPeP_2S. (;0t R) "R&x\o4z { [:s0#40 Ro 0P6 xh0 0P-:0S! z<zS(gz7z 'Zzjz&  'zf'zg 8(;. 0z:+0 C+a a(+. 0SY`00S6x(`t\# Px1P1pWO P1XpX'1#PP (ȏ$P0L`ͱh&%X&L` +CkX5[[2S eQP*P1~a0 eX1p 3!0cP001 [?Ÿ! Au \`X1, Ipp0, SF (;`\0S;# +0\L10 琊0 ᡋtx0+CpEeW 30cWpq p@@Y?XXt1 *pz=`+ q  0 A f 0`tЍ<SC(;d"0X` d"0S: zz\bgz7z'Z4;0z`>!;0: d&Z0d2%pQP 101&xw|HDp` 0 0Sڠ0 `S p  P! 00cS/--L10(+ kD@ p'!&e0`pefe>؄L1 0X*0F:fz +=| R4 A;d"8axy ;\ 0⠋0t"x2p|1 0S= = =a 7z@`j*zgz7z'Zz %ɚpC`NSZ ) 9 )I?Ck  Qj拸 8 0?C a Wa A({ Qz相 0:  A 8:*jzz |P gz7z'Zz%Z  kJqP lzZ 'b(;0t^bBz(;0^iIsZ+ q ppåzE $z@z A  zzwzz& 6 D'Z1zjjj& z a ze'zg 8tL>S|Pd 6  z''h H  = @?Y?tTP1\ÐO--`@$0&,M0P)Ѐ? ! 0x1 0ئᜄϠᔜ)  @Zp?A U T*@@ PP   z  0 z   `,p 1KU $0P;  ,Ё@$0 ;d,Ѝ @@zO--PЦ M `zgz7z'jFz0T ''Syx @P y0TS0@T0 .|&1Y1y?1[ t @ W 5ESY,+$ 0S *j p 0qqzzzFzz(z v X0Y/ t @ + Shm v RFv+q tK + Rvav RS_   S v {qz Ѝ 0BjS;_7+v@ 2e ` [[[{^v[zw^^Q[@v[  F Rv p  Rv `v & tK ??Y?6O--QM`pN֟P^2 S05 Œ ^@ ,;$@00 S@p8 n0z z60  0'z Pzgz7z'jJ 0z E ZU zz'zwTT  T zQPЍ  ' 0  * t0ꚙY?PO-Pp`r F NN     FF    && ''   `` xx     U&0  Jj؋ЫdJtjx2dtx2Q6p-P`0 A ANJBB! `A `+B NP `0Qp/O- -M@ p` D^`R &P犡 0L P 填 O `9  + *g * g 3 A+cb @8 J``0ɫ+S 00T0S R@ ˴ 00R00 S  @p1S0 0 RS 0 Ѝ 蚙??@--P6@p a`P 81 QS@H  PBIx264_ratecontrol_newinfinite init_pass2x264_ratecontrol_startslice=%c but 2pass stats say %c MB-tree frametype %d doesn't match actual frametype %d. Incomplete MB-tree stats file. VBV buffer size cannot be smaller than one frame, using %d kbit VBV parameters cannot be changed when NAL HRD is in use CRF max must be greater than CRF bff0faketffconstant rate-factor is incompatible with 2pass. HRD with very large timescale and bufsize not supported bitrate tolerance too small, using .01 /%d,%d,q=%d%n%d,%d,b=%f%n%d,%d%ninvalid zone: "%s" invalid zone param: %s = %s ,invalid zone: start=%d end=%d invalid zone: bitrate_factor=%f failed to parse zones encoder/ratecontrol.ch->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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rel.text.unlikely.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes8 0 %+40  CPK2 Z0&csp5ȪP D#1D4;tx>x;HJ;PhYhp;PmP ;   ;   ;;p;;H; !;"#;0'T';$-$`@-;x33;X5l5;9(\$h t#)\/l5;A GMlS,Xx^djpXv| t :;D 4xD;H 0 l I;Ol0<   40#$)/50;@ AH GL MSY_Te(j$ou\ {d|O;X48@lX;\p $\;`  `;d $e;(g  0  Hg;`h l |h;j j;Xp p;qq; vv;xzz;H}P};  ' .$ ;p5D < C J ; Q4 <;X _  ;̎fx m tl ؎;Xx;(,;{, 8;    +8?HMchy#(0).t/Dl51Yeu}!Hg4:|hPRX_fvjq d|@|P}X-h BIVb t؎x,Tratecontrol.c$apredict_row_sizefix_underflowqp2qscale$dqscale2bitsfind_underflowcount_expected_bitsx264_ac_energy_mbupdate_predictor.part.0get_qscaleclip_qscalerate_estimate_qscale.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.LC82.LC78.LC81.LC80.LC83.LC20.LC22.LC89.LC90.LC91.LC12.LC11.LC19.LC13.LC14.LC16.LC15.LC18.LC17.LC84.LC76.LC9.LC39.LC45.LC42.LC48.LC54.LC51.LC57.LC96.LC97.LC98.LC26.LC27.LC28.LC21.LC7.LC6.LC36.LC99.LC60.LC69.LC35.LC67.LC79.LC23.LC24.LC25.LC72.LC75.LC65.LC64.LC30.LC10.LC77.LC32.LC85.LC86.LC87.LC88.LC92.LC93.LC95.LC94.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC112.LC111.LC110.LC114.LC115.LC113slice_type_to_char__func__.9385__func__.9998__func__.9513__aeabi_idivpowfpow__aeabi_l2d__aeabi_d2ulzx264_prefetch_fenc__isfinitelogexp__aeabi_idivmod__aeabi_d2lz__aeabi_ul2dmemcpyx264_loglogfx264_rc_analyse_slicesqrt__aeabi_uldivmodx264_adaptive_quant_frame_GLOBAL_OFFSET_TABLE_x264_exp2_lutx264_log2_lutx264_log2_lz_lutmemsetx264_macroblock_tree_readfreadx264_reference_build_list_optimalx264_ratecontrol_init_reconfigurablex264_ratecontrol_newx264_mallocx264_slurp_filestrncmpstrchrsscanfstrstrstrcmpsprintfstrlenceilx264_reduce_fraction64strcpystrcspnx264_freestrtok_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_weightsx264_ratecontrol_endfwrite__aeabi_ul2f__aeabi_l2fx264_hrd_fullnessx264_threads_distribute_ratecontrolx264_threads_merge_ratecontrolx264_thread_sync_ratecontrol `$t, l   ( h T Pt#4ld8  !p!!L"""""%%%@'D'H'L''((4-`8-.<-/`-----..`/132 4D4x4545d55h56556h7777888(9T99:9:::; :<$:=(:>,:?0:@4:A8:B<:C@:DD:EH:FL:GP:HT:IX:J\:K`:Ld:Mh:Nl:p:Ot:Px:Q|:R:S:T:U:V:W:X;;;;P<x<<<==@=x======> >8>P>h>>>>>? ?$?x??????@H@`@@@@AABPpPdpp᠐(P` Up``P! `X |ZP`\PPQ``VPZPPUPX`lpUPUPQZ``EX(``(`PaZ``W`0VpVPP[ Z 勰`` $`VpVP$PYPX,P(SU 4`p8``4`P袒2c `첒Q 0<0@PHPL0TZ 80DPS\4Q`0d0\0<0AS00Sh0 0Asl@`0DV`#p0Pt` \H0pL SPPx0Q|p U0 \PPSPj 0|0Va 0p0T0CQQ003S Q=000X0$P0X䀄 ("00!R B*zzΐ Lz 'zz:000 ЍP\`PY X C0PXEP V`.0p3ShPPe4` p8LPS QU0dZQ Mpr1?0-@ 0ddA0 @dT@ 2/2̠ PdĠ@2Ō <ϿD P\0 0 02/ @  0 00@DT@ 2/  @0 00@L @ T` dĠ6"@2/ 0 `0@0  RBȠ0p PpP\LĠPzp PPUrpd6o`@d0` d p00P UPl̠2Ō @e<Ͽ0c\ 0@0L\ PLX0p `p`UET`ypPP``Tp$2/ @d0 @d p0@0`T`dDX 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rel.data.rel.ro.local.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4|V k@ %V+V0V<8] 8 n@ O2X]^0P_&gv_wpv_5_bD h    2308@8XD|D@FDFG %p*tGHHJJQQ8RC <%R3@`@8< o|DDFGHJ9LKTNTnQ 够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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4 ؾ( %Ĵ+Ĵ0Ĵ80&AQp5a4 ) $@ x % %&p..= >xaaxx`Бp*354>DJTVdht z ""9KR8$l %%.>$m">Tj,macroblock.c$a$dx264_mb_encode_i16x16x264_scan8lut.3618block_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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4b Xp %b+b0b82\dG0pd&Pd`pd5dpDg ; $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.9099coeff_abs_level1_ctxcoeff_abs_levelgt1_ctx_chroma_dccoeff_abs_level_transitioncoeff_abs_levelgt1_ctxblock_idx_xblock_idx_y__func__.9139x264_mb_pred_mode16x16_fixx264_mb_pred_mode4x4_fixx264_mb_partition_listX_tablei_mb_bits.9203x264_mb_type_list_tablex264_transform_allowedctx_cat_planebase_ctx.9223lut.3618x264_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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack.ARM.attributes4,E TQ0 %`E+`E0`E80xH&AHQpH5HaK 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.9018next_suffix.9003count_cat.9019i_offsets.9163subpartition_p_to_golombsubpartition_b_to_golombx264_mb_partition_listX_tablex264_mb_type_list_tablemb_type_b_to_golombcbp_to_golombx264_transform_allowedct_indexlut.3618x264_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/ 1392656061 0 0 100644 79236 ` ELF(4( -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@0kQA--@M@P# p耟p``1 A 1 A   1 A  P1 A 0+SЍAd`dp`p1 A 1 A   1 A  Ѝ\\@-d00@\S=02S:hp j D1 p$0  0 0P1 @1 p$0 0 0L 0S1 9 2 S  RI h  0 @ j L( H1  $0 0 0@1  $0  0 0L T1 0S1 dQ 0R 1  01 1  0 1  0 (  08@-@5@ Ŕ0cU01lRS00l0X3S (+1-B 3/505S8PP %"5U0588RG-@P= X6 T600cS6ԅ`P7 u02 0p 3/% gT&PU`ܕ॔ p0 pܕॄ5p05  U  0eԅ%50cQO--,;EP<pelM@wE@Pt`,@@Z(,``p`Z @@pWpZ!R7 R4 pWd Wp4p !p4pXQ U p <sU,;0bf @dS80`<@? 0 @ST:Q7ڀ(<0px`@$`DP$0`PPS  VBYT 0&`26a ,;0  0"@ 0S  YT,+$@@$@T@DPt0S 0 `SV  pW 02t( S e,KPq P 0  0 弬0|03Z0S 6S,;t0S4pW h2< Z SX 0@y|⏌p( d`1&02 S! V`(,; @00P0 @00 A!@<#P@P@S& ,;0@(; 80P `l (0UPVl@ ^!0N#`X `y,$ p$ & p& l2S+ ,;(`(;0V0p ```PyL p (00(PG `fT`@9T    8(@lЍ n N$.4@~ 8^D<H>DHL$@ DpHp^ $pL@ @``p@,q( * WpX 4pp,@8`TP0 0 O--0RM@P0\ $`F QVV S 2rQ* R*80Sl40Si0Sl 0YIS $ 0  Si Y 000SaڀS00S^ R0 6 03S 0S 0S83S 43S%`0SMS1`0SJ "R U/"6 jz"$zBx | P|" S00Q0R0*:+rzsgz+  0+ S C0 S CQ 002C0q00SRprW10S0$30Sz }J Jkz j pJv =[ujzzt20"zESE0Z R ?z/t20"fzfzWzzH U WW |2x"ESE0R?|2 S  2x"ES E S40@ QW" z 4㔂0@ZXʯȏᘢ唂 J' {Zz) WO XW l  똂S P  003(Z j {Gz?I@>A #<hDXD#@/H3R?@D#H3> S0H3 R S ppBGrW  0A 0S 0PSLP3SPPP30SX \0R R SX 0S0h \0R0"0h02S0R?2SX! 02`0p SxCRQ  dPdYPxxRp |t QR /|t lpW Q X0S\0S " lp0X0W\0 0S[`0Q P~  Fzfz'zd R g&f&FϠᒃB!l*zzzNj^*N*^RڣȀX”" Z dR \z zj/j*z:'zgzzj  gjGjjpZj#„R3 #R0 #R* z /J z{Sz zGz "WS 2S U 2S020㐠 㔀\`ZdXp P Zᐠ0 Q Xᔀ0?0W 2 S $"0 2R`d $" R+$"RS0$2S 82S XQìz "3180 2 02 Q0"2 <2""S0?<2R /" C"EJ  @ Dð"@z !R h"l"U h”\l"RT”\" z zz {SCXZ"zQz z{0zPj&z'p Ρ pkΐzSpxzz'z'zg  p{p Q QUV V\ \ \F  \ \7 Q  Q„RQ HQ PHSa 002(0SLa` R S  4 Sz f4 Q`! ЍL#PRD3LS@3S T"R \7 pp 0 0 pT”<2\"P"{G {QzY (z\p2唢S2S2Ճ0є2Ղ \` 0`4 0R(0 # 4Php CTH\D (40S 40ff PP(2SS` 0,R&R00(2R0UPS_R( 0S0$t02 @prSV%U%E /BS QA V5U5E哱C(1!0 0S 03P00S0YY 00V0h 2SxUcژ! 022S T2S02 Q,2SC$("S0S0 PSP"0 ,Rzzz# #z0Cz2Ez0C2E0C2E00S?S000S< RU= S72"S " 000+ #Rz  Zz_ z Ä#}U|p0pZX X\0Wp”R (S0\|[p0p@DlX \0d„$Rzz "QH0z_Xq b080400S 0 S00?00000 0 60`0 0lX \ S#0Pd0p2h2l22<2@2H2T2p0R 2z :ƊxH zGHj  zjƊhzNFz^0S0CzFz<Szj**ERE /hzgz00zJShgȊK 0222pr 8k:ESE0?ESE0?|2 0 HsBQ  +zj602j:jd00S 0 2@ dPdYp Pxxt|PR"tt " m0`S6(2j+?r1? xT@\L,\LB$I0002000 0 R 0S 0YpZl`XRpW”p`V`PUP\RSP 0U S SP P S$SpPl`„P$S(SP P(SP P 0 00,300 0r4b8Rp@”p`D`PTP,3@„h”D l” T”0„” r4b„”8R0h"l02=Z_jz_ "R \\ "r pH2S" # rX#W!0# 22j*X# `0lp 02S:S;zzzCSlzzzCSl 6X# @0$ 0H#($ 딢@$ rr\$ 0R 2}|$ 0PR$ 043tplQ $t p$ lp0|0W)% @ <% 220T% {x%  s%0 %  d% [0% P0& 00F4& D& T& d& t& )0&P P {zά"Ţʬ"{EX3G-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 ”x0h0X 匠h0\2吀r"2匠吀r"$2t$"Sq0"幏H2R P0( $0 0  R,<0 4 0t0"Po(;`0P0#z U"  \c< U5pW5 0@< 2   0p0,5\T y y*먌,;0"zn PH!Q`y,av̄zq q  p?q   ?P ˄@   ?Q 8P0`, ?,8P- ?m-( `V/Bm} 0ɚh"1R `P y l2SX,; 0I0"z6  XBP0   `   )`  $P\T y y*4pT y y*0{ R;lP8`U PQ :S  UPy H`Pt 0S \ 0 0P S|( 0,   \3̠010S  Y! R&2pP 0q 00  0PU10S  YS% P8 0PZ,; @0P  4/ 0  0 Ѝ<P@]^ P@3#S bPb9 cbS l/Pb20  ! 0PqUŔneUإl…^p2P࠱P00PVA"PP<0`<P_X10S Ŕ 5] `UŔ c2P`"  P"u 0R SS S 5@`C0`Cb "@XiX;` aq+0 #I1K[! +I+! I  KI K [I [먌pP? [8U 5`  R  0< u0 Q 1 A;a0 Q 1 A a0 Q 1 A a0 Q 1 A at!1gfFϠrB!lC1`>00 @|=Y@ Dx|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  5:P<,0(0 2S K v/X0 09P5 00 :ͅ‎; R,X0 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 PJ5S5S1X5 60pP$`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ƄH:80S40S ]0P   0<;! 00b?<P0 00APA\upX t(0x80P0t8\p0 * 0^0 `"V` ` &S `P B     |0S00QXpPjPWpP 0::Ph b ;V``r [`$k`rpj;̄n`0 !!: P Pt*P  :  ! x*P & !p  6p*P p 6   !2S |*P &"P1a΄L1 43cP P0 P\# bn0| 6⒌Ԡ⼐T $ p(`   Q     %0S> aM6 0aw?0S< S_ Sj f`PUy 0$0d6p00P6P00H600 @00@0S pPU9   P P P P  P0 UW 0U d $pP$0U0$0[ (%0 `P xR|23U3PU9|2S6 PP @Ѝۍ08t\p0{PyS  ! `^*`t"Rv pp20CS\h0S^ ` PPH'?0Sob?(0(0?oSo f0fFp"URfC1:狸c z 0+Szzz N ^1 A a h J f0fFp"RfC1:狸7 z 0+Szzz N ^1 A a h{*0?0D0%5Pv  Pq 0Sn Rk0#R \CR0SnoP 0R0Se PPR $/z 0+S0 A  (2 pk?`0P00?C?<0 a?Cpj?`0P00?C>@0 (2 r?%; >Cu?0  $2 pk?`0P00?C}?<0 =C3@"0@ @y0$00S:UnP `0S2 P$ Pb`` .A THDTp@ `p8$l\D8,$$ 0SgLs_`p,X`(\#0 5S 5S Xu0$ SC LsXVpV`X  0 0SrPn! 0 g(4 PP0! 00Sz 0+S0 A! L! F03Sc P>0S oP0SPP.P*00S\P0` PP 0`P@0: S}00BSR MSS dS[ nSR zS00} Sx SPpgfFF4#>? L1cN0 SP S? 00mS ʀ#0 P0031# 0 # P#t10 $x1 0TP$TP00S 0P(Ŕ%lUub"\2q`0p0P PP xP%5 0UE-0{0@`S%2S"PP! ;m0/`1(+ .B:" Њ0+; S00t;<  5 \3`&/pA-Q`@P$l\'5a\sf>0 T =Q n!RQ,;!R>  $     O--(lM`T Ml p \PD  vWX` Mڤ51\C1\sT\X 6 =0S .0S=Q `Q,>  #/v v. ((/66X `eNU0@`@ ЀplM @P&  P p(0 S *0S\0 - *  R Se 3;|p0 QS  Rgx;̆ ^!0x0^ 2S 2SBP T0S P3/ ;0S:* 6 0cRDpJ6060S 0(+S ^ 0@ 0Œ\ES 6&0CR""6S(K0XQ 0XT3S 3/0 X ,[@t0S 6S P@ (; P> 0S=0S- 0S0SP |0S\0*ʠ Q `   Q Q Q d L \0 .p>W؁ttj Wu= x v>1]X0S  R0x06 S 3 3S00x0.t( 0 S pX%,;@ 00>1S ,;P@p(K0 Rꭆzꭆ pꝠ 0S P@0@S  0R$4  0 ""(;0[4{0Sf.,;,;00@?0,R =0S -h Q ;T110S(; @=0Lh t x0  0ԛ q;,P@D8 PH 0S@] p< P8 $%P  P R0(8 0>p08 S  3/ 00P> @0S5aȅ Еc^‰إ0࠱ <0RPP0P P@pPp@@dTS0 ;,0@P'S  S"80 08@T d%`7@ 0Xl 0;0`PV"<冑(+ "Q N 0$ R( R0;, 0`PVX0`\ S @0[P  Q\P~WP>X3T>0;  01g v>1 %A@P!% %@ Q `2/ a5%05<S  3;|-ppS 0 Q  % pƖN-=<0Ɩ0 pp60#p6jp80:`pz8;,;0 z@PzZ@dO@ Zuzzzfz W `P p k g `z|5 ]U cŖue2PP "  0P)%5Q2  0S R  (+ UP@pPp@@dT ^,80 "2L 0 0P~w~40S >\PΆP> 0>dPt@UE6L 06 6S0à5X@ 0S%R5XPP$= R @ 0S,;@(;P000: d L  ` \0R\0\Z06P P \ 0 0P@P@@dTS0P@pPp@@dTS0 0 ~/00;@00"R!"0DR0\0 (;ATn 0!R` l  (;@1s0;@00&~TT`\m 8 L\ T @@b5]NŖ% c<@ Mb1S Q R\A0PFDPQ : 0L  c,;@(;P:/ X10S 5 U]cŖu e2PP"@  CP<%5Q2  0S& 00(+ 0$,Ru! Sopp8,0:z= `z0Se 00Sa " 2  0$X PU8 pWLÖ -Q@, @P{* \,R  @D;p0  n |0@.Q S RS (+:,0P @ c:/ 0S |0*Sd L 0002R P@P@@dT QP@pPp@@dT Qx0 t @h0 /v /Lx;Pp㬜0缌嘓#TULLD3S5 ,RN 笜|0  8 ၐ|08吘 0Cᡏ80Ȁ3#PXᰌհLPt尜X⬜0 0Q cLQ 0St8/P0 P H,;P ,0CⰌTH3 hRc(;P0@W> 0!p;  ld L S$ ,+:(0@ P c:/ : d  L u* rD`L 0S_@p0E᠅@0TS@0@T0Sy\vL@φᘐD 娙᐀P⠠"A" {̊X},˜5 QOCQvHq0KE4Y0,ˌ `3 `1 AH堛H@p (-M0 A1 A 2 A  Q ;4 A  +S5 A  @8 H0 Y@l ( 9p9 00ppW|zLx8[{,2K:68; +p礋x;(r{y K{(rP@ [튨0Xu"$k;@P˒*zlu،(r8s$42 4 0K8sXp5 Q8 %s(۞ 0嗋SLH@1 A  ' 8 = 84I!=01 (x+tXp5kW\HPKtkp+;0xpv p xwx0r|0xw08pr (q2 Q줨0t 100x 0 0r0tˍxvۍ+8xp4p @_@Y@lDrO `Ph*>⑥!ωPPX@ @0KE _q!H+Rr SH B1 Q1+SPPX@ }PH@U`F" qK[qk+;qxqqxwrxw8pq0 Q죨1 0 0 0 ˍۍ$ 10S 렋B@ A Q1 A a Q 2 A b Q  4 A d Q   5 A e   2Sڰ9 Rڡ>* v0:3!  ++b++0:+b  뤁 Q@1P@0XPl0XPPPQ@D}L@  0+C 9P QU H`p@p1 A Q슋!2 A" 0+SW`P@ HP0l @PZP@@P@Tl2 S$ z,z<,0 p. p틋ȋ Ȋ p { D   Y@|=x4h2S z\z<`@k &;xP[h@kv$ *+Kz"{(q d+rKt vq+rKtz:˄ 2 Ab a 9 #  ˍ P P  6S5t:\x:p:|:\s Q"_`0 5S \@ T ;=@0P :S  T `V0SU^@ P@0S0`SIJ1_ ⋟ 0SV/@=0S ܁M@̡0S .0S.ڸ.00C0S0S@,P  0S#0C.S0 @0`F05vhߍ 00 0 01 A  9狸y<@8 y?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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rel.data.rel.ro.local.rodata.str1.4.comment.note.GNU-stack.ARM.attributes88 X %p+p0p< 8 d5 O20^0&gwp5    %,69>$C,H8 $M$0XTe80h 6Lp 46`<T@ 6h$H  tD#T)$/`5;AGDLRX,^dLilntz@p %+p8.64/d $?$@$Ap''''(((()()P)))))$*D*l*****+0+D+X+l++-X-- .(.h.../4/F8/G22<33377748\88`99:(:0:8:;;;h<,=|===,>\>>l?????@(@@@L@M@N@O@P@@P P$P(P,P0P4P8PУH?@ABCDE F,G&H<I.T TT $`J+,9̴8 ̶(9ع90ĻԻ0KL(MhN.hOP -PQS TU44lH|$X $T(,048Hh|h4PTX\`hV|$H|L\t  @Xt4TdtPptx |,WXXYZ[[[[UU\]^8DUd TT $(,04 `(4Ld| 4Ld| $8Ph  (@Xp lookahead.o/ 1392656061 0 0 100644 3524 ` 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4  %+082@G0X&P~`p~5p,    4" 0PDPWqxP %A$Zt ,Llookahead.c$a$d.LC0.LC1.LC2__func__.8901x264_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/ 1392656061 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/ 1392656061 0 0 100644 3020 ` 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.comment.note.GNU-stack.ARM.attributes4 %<+<00<&9bIpb5Y  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/ 1392656061 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)A4aeabi*7-A A   ,.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&gHwpH5HK 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.8942x264_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/ 1392656062 0 0 100644 26868 ` 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)A4aeabi*7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.rodata.str1.4.comment.note.GNU-stack.ARM.attributes4U L^ %U+U0U482UG0 W&P2W`p2W5gWpY ! \|,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__.9067__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"aeabi7-A A   ,.symtab.strtab.shstrtab.rel.text.data.bss.rodata.ARM.attributes.note.GNU-stack44 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/ 1392656062 0 0 100644 4836 ` ELF( 4(  HXhx(8BHBh@/T`/V"1/ HXhx(8BHBh@`8(/0 ,