一、X264性能分析

测试环境

测试环境:Intel Pentium4 3.00GHz  (双核cpu),开启超线程
内存:    DDR 1.00G
操作系统: Windows sever 2003 Enterprise Edition
分析软件: Intel(R) VTune(TM) Performance Analyzer 8.0(评估版lic)
编译软件: VC71+nasm0.98
Bus Speed: 800MHz
测试程序: X264 20060506 编码器

1、Debug版本
编码参数:
X264 -fps -o foreman.264 forman.cif 352x288
编码400frames,编码效率:23fps左右(libx264 debug版本),35fps(libx264 release版本),提高了10fps以上,比较可观

2、
编码参数:
X264 -fps --no-asm -o foreman.264 forman.cif 352x288
--no-asm,Disable all CPU optimizations即未使用mmx,mmxext, sse,sse2,3dNow,3dnow ext,altivec等汇编指令优化。
编码400frames,编码效率2.67fps(libx264 debug版本),12.67fps(libx264 release版本),提高了10fps


Clockticks per Instructions Retired (CPI)表示该程序段的平均执行一条指令所需的时钟周期数,CPI越大表示该程序段调用的浮点数操作,乘法,除法,I/O处理,系统调用或文

件访问等代价昂贵的操作较多。
Instructions Retired events, 表示执行的指令数,越大表示该模块调用的较多.
Clockticks events 则表示该模块所消耗的时钟周期数,一般Clockticks events = Instructions Retired events * Clockticks per Instructions Retired (CPI),越大表示该模块消耗的时间越多,后面的Clockticks %则表示该模块的在所有程序中的时耗百分比.

这里有一点需要注意:(还是举例吧),例如要分析视频编码中去块滤波器算法/程序的时耗,并不是一个 x264_frame_deblocking_filter函数的时间消耗就是所有x264编解码过程中的时间消耗,由于 x264_frame_deblocking_filter调用deblck_edge,x264_clip3(该函数也被其他函数所调用)函数,而 deblock_edge下又调用x264_deblock_v8_luma_mmxext, x264_deblock_h_luma_mmxext,x_264_deblock_h_chroma_mmxext, deblock_luma_intra_c, x264_deblock_v_chroma_mmxext(这些函数通过指针重定义的方式以适应于不同的硬件平台,比如Intel,AMD的CPU采用 不同的指令系统,其实Mplayer,FFMPEG,T264等软件都采用类似的重定义方式,已达到一个软件使用与不同构架/平台,如 arm,powerpc,x86等)等函数。那么这里如果统计去块滤波器的算法的时间消耗百分比,就需要将该函数及其所有调用的子函数的时间消耗都计算在 内,x264_deblock_****都是唯一被deblock_edge调用,但对于x264_clip3,并不仅仅是去块滤波器部分调用,那么就只 能部分计算在去块滤波器之内,至于部分是多少要根据个函数的调用次数,这里不确定。

相关x264时耗分析数据后面的表格。deblock占4.3%左右,quant+dequant占3.3%左右,DCT+IDCT占1.1%左 右,主要是运动估计和运动补偿,ME中大量的sad/satd的计算,MC中的六阶滤波器tap_filter是主要时耗,具体我没有太细统计将近20% 左右,x264中由于采用了算法优化,程序优化及mmx,sse,sse2等指令优化,将原本消耗较大的去块滤波器等都有了较大程度地优化。

这里再讨论一下程序性能优化技术,程序性能优化可以大致从3个部分考虑。
1、算法结构优化,实现同样的应用功能可采用多种不同的算法和方 法,比如H.264种的运动估计全搜索和快速运动估计算法,实现的编码效率基本一致,但是处理时间可以节省10~20倍,所以需要选择高效的算法。还有递 归算法非递归化,递归算法使得程序结构清晰,可读性高,但却需要执行大量的过程调用,堆栈保存等,运行效率低下。

2、编译优化,现在很多编译器都实现了较强的代码优化功能,多数编译器都基于数据流分析以实现别名分析(通过变量重命名来消除数据相关,提高流水线 的执行效率),常数折叠,公共子表达式消除、冗余代码删除,循环逆转和循环展开等与体系结构无关的优化,例如GNU gcc就是个很好的编译工具。还有借用并行程序设计技术,进行相关性分析,并通过相应技术是程序具有更好的局部性以提高Cashe命中率。对于GCC中采 用-O -O2 -O3 -O4等选项选择针对速度/面积等性能优化,另外debug版本由于程序中加入较多的debug参数,影响程序效率,上面x264的debug和 release运行效率的对比可见一斑.编译优化属于静态优化,由编译器自动完成,但是编译器很难得到程序的语义信息,算法流程等信息。所以需要我们手工 编程优化以最大程度提高程序运行效率

3、程序优化,包括a)使用inline函数,很多编译器支持inline关键字,减少函数调用开销却增加了代码量。b)针对程序运行平台,如 x86(Intel),Xscale,ARM,DSP等不同构架,可采用相应的汇编优化,将主要时耗部分/循环调用等,进行汇编指令优化 MMX,SSE,WiMMX,ARM/Thumb指令,DSP汇编等,或者采用专用的库函数,如针对Intel CPU/Xscale构架的嵌入式系统(PXA255,PXA270等)可使用IPP/GPP库,提高程序效率。c)对于DSP系统,由于有多个并行处理 单元,编译器会并行优化,所以需要尽量减少频繁小循环跳转,将循环展开,同时减少循环或内层循环也可以提高CPU的流线效率,尽量不断流。d)在 Switch语句中根据发生频率排序case语句,编译器对于switch语句将生成if-else-if的嵌套代码,按概率排序可提高效率 (FPGA/CPLD等逻辑器件中,采用VHDL语言描述的switch是生成多个逻辑器件,并且完全并行的)。e)减少函数调用参数. f)减少耗时的浮点数操作,除法操作等降低CPI。

SizeFunctionClockticks per Instructions Retired (CPI)Instructions Retired eventsClockticks eventsClockticks %Source File
4917refine_subpel3.050938338111900000034140000006.582219909f:\x264-060506\x264-060506\encoder\me.c
176x264_mc_chroma_mmxext1.463709677223200000032670000006.298802707 
21502x264_me_search_ref2.51592356794200000023700000004.569379374f:\x264-060506\x264-060506\encoder\me.c
880x264_pixel_satd_8x8_sse21.43551797141900000020370000003.927352652 
99RTC_CheckStackVars3.56315789557000000020310000003.915784603 
3296x264_pixel_satd_16x16_sse21.54047619126000000019410000003.742263867 
237get_ref_mmx1.72592592681000000013980000002.695355428f:\x264-060506\x264-060506\common\i386\mc-c.c
1183block_residual_write_cabac3.1586206943500000013740000002.649083232f:\x264-060506\x264-060506\encoder\cabac.c
6480x264_macroblock_analyse24.055555565400000012990000002.504482619f:\x264-060506\x264-060506\encoder\analyse.c
272x264_pixel_satd_4x4_mmxext1.229850746100500000012360000002.383018104 
80x264_pixel_avg_w16_mmxext2.09604519853100000011130000002.145873099 
232x264_mb_decimate_score1.35408560377100000010440000002.012840534f:\x264-060506\x264-060506\encoder\macroblock.c
64x264_pixel_avg_w8_mmxext1.7569060775430000009540000001.839319799 
2413x264_frame_deblocking_filter1.7039106155370000009150000001.76412748f:\x264-060506\x264-060506\common\frame.c
2491x264_macroblock_cache_save2.1521739134140000008910000001.717855284f:\x264-060506\x264-060506\common\macroblock.c
656x264_center_filter_mmxext1.2118644077080000008580000001.654231014 
146quant_4x42.9892473122790000008340000001.607958818f:\x264-060506\x264-060506\encoder\macroblock.c
5930x264_macroblock_cache_load2.0902255643990000008340000001.607958818f:\x264-060506\x264-060506\common\macroblock.c
206x264_cabac_encode_renorm2.1259842523810000008100000001.561686622f:\x264-060506\x264-060506\common\cabac.c
83array_non_zero_count1.1919642866720000008010000001.544334548f:\x264-060506\x264-060506\encoder\macroblock.h
96memset9.464285714840000007950000001.532766499F:\VS70Builds\3077\vc\crtbld\crt\src\intel\memset.asm
363predict_16x16_p1.0954356857230000007920000001.526982474f:\x264-060506\x264-060506\common\predict.c
184x264_cabac_encode_decision2.3714285713150000007470000001.440222107f:\x264-060506\x264-060506\common\cabac.c
37_RTC_CheckEsp1.7071428574200000007170000001.382381861 
3693x264_macroblock_encode2.8902439022460000007110000001.370813812f:\x264-060506\x264-060506\encoder\macroblock.c
47x264_clip_uint81.3173652695010000006600000001.272485395f:\x264-060506\x264-060506\common\clip1.h
304x264_quant_4x4_core15_mmx1.6747967483690000006180000001.191509052 
2091x264_mb_analyse_intra1.8440366973270000006030000001.162588929f:\x264-060506\x264-060506\encoder\analyse.c
1680x264_pixel_satd_8x16_sse21.1445086715190000005940000001.145236856 
1696x264_pixel_satd_16x8_sse21.4496124033870000005610000001.081612586 
164motion_compensation_chroma_mmxext1.4596774193720000005430000001.046908439f:\x264-060506\x264-060506\common\mc.c
328deblock_edge1.5940594063030000004830000000.931227948f:\x264-060506\x264-060506\common\frame.c
363predict_8x8c_p1.4537037043240000004710000000.90809185f:\x264-060506\x264-060506\common\predict.c
176x264_macroblock_cache_mv1.6626506022490000004140000000.798195384f:\x264-060506\x264-060506\common\macroblock.h
71x264_clip31.6666666672160000003600000000.694082943f:\x264-060506\x264-060506\common\common.h
121x264_macroblock_cache_ref2.3333333331530000003570000000.688298918f:\x264-060506\x264-060506\common\macroblock.h
272x264_horizontal_filter_mmxext1.2164948452910000003540000000.682514894 
1104x264_pixel_sad_x4_16x16_sse24.423076923780000003450000000.66516282 
480x264_pixel_satd_8x4_sse21.4303797472370000003390000000.653594771 
496x264_deblock_v8_luma_mmxext1.0666666673150000003360000000.647810747 
432x264_pixel_sad_x4_8x8_mmxext1.6716417912010000003360000000.647810747 
288x264_pixel_sad_16x16_sse24.608695652690000003180000000.6131066 
910x264_mb_predict_mv2.3636363641320000003120000000.601538551f:\x264-060506\x264-060506\common\macroblock.c
106bs_write12.6666666671170000003120000000.601538551f:\x264-060506\x264-060506\common\bs.h
224x264_sub4x4_dct_mmx1.160919542610000003030000000.584186477 
211scan_zigzag_4x4full1.6727272731650000002760000000.532130256f:\x264-060506\x264-060506\encoder\macroblock.c
656x264_deblock_h_luma_mmxext3.214285714840000002700000000.520562207 
227predict_16x16_dc2.3783783781110000002640000000.508994158f:\x264-060506\x264-060506\common\predict.c
496x264_pixel_satd_4x8_mmxext1.2428571432100000002610000000.503210134 
960x264_pixel_ssd_16x16_sse24.315789474570000002460000000.474290011 
33abs1.8604651161290000002400000000.462721962f:\vs70builds\3077\vc\crtbld\crt\src\abs.c
864x264_pixel_sad_x3_16x16_sse23.391304348690000002340000000.451153913 
962x264_mb_analyse_inter_p8x81.9487179491170000002280000000.439585864f:\x264-060506\x264-060506\encoder\analyse.c
3064x264_macroblock_write_cabac2.62962963810000002130000000.410665741f:\x264-060506\x264-060506\encoder\cabac.c
1209x264_mb_encode_8x8_chroma2.379310345870000002070000000.399097692f:\x264-060506\x264-060506\encoder\macroblock.c
829memcpy11180000001980000000.381745619F:\VS70Builds\3077\vc\crtbld\crt\src\intel\memcpy.asm
386predict_8x8c_dc2.52750000001890000000.364393545f:\x264-060506\x264-060506\common\predict.c
202bs_write1.909090909990000001890000000.364393545f:\x264-060506\x264-060506\common\bs.h
352x264_pixel_sad_x3_8x8_mmxext2.172413793870000001890000000.364393545 
144x264_pixel_sad_8x8_mmxext2.384615385780000001860000000.358609521 
156predict_16x16_h2900000001800000000.347041471f:\x264-060506\x264-060506\common\predict.c
178predict_16x16_v2.52173913690000001740000000.335473422f:\x264-060506\x264-060506\common\predict.c
128x264_mc_copy_w16_mmx9.666666667180000001740000000.335473422 
405x264_cabac_mb_mvd_cpn2.192307692780000001710000000.329689398f:\x264-060506\x264-060506\encoder\cabac.c
161x264_cabac_putbit1.41200000001680000000.323905373f:\x264-060506\x264-060506\common\cabac.c
304x264_dequant_4x4_mmx2.545454545660000001680000000.323905373 
592x264_pixel_sad_x4_16x8_sse22.291666667720000001650000000.318121349 
103x264_median2.6600000001560000000.300769275f:\x264-060506\x264-060506\common\common.h
398predict_4x4_ddl1.5625960000001500000000.289201226f:\x264-060506\x264-060506\common\predict.c
272x264_add4x4_idct_mmx1.1395348841290000001470000000.283417202 
418x264_cabac_mb_cbp_luma2.666666667540000001440000000.277633177f:\x264-060506\x264-060506\encoder\cabac.c
414predict_4x4_ddr2.285714286630000001440000000.277633177f:\x264-060506\x264-060506\common\predict.c
405predict_4x4_vl1.777777778810000001440000000.277633177f:\x264-060506\x264-060506\common\predict.c
1455x264_mb_predict_mv_ref16x163.692307692390000001440000000.277633177f:\x264-060506\x264-060506\common\macroblock.c
1181x264_mb_analyse_inter_p16x164.6300000001380000000.266065128f:\x264-060506\x264-060506\encoder\analyse.c
176x264_macroblock_cache_mvd1.769230769780000001380000000.266065128f:\x264-060506\x264-060506\common\macroblock.h
816x264_pixel_sad_x4_8x16_mmxext1.769230769780000001380000000.266065128 
199scan_zigzag_4x42.045454545660000001350000000.260281104f:\x264-060506\x264-060506\encoder\macroblock.c
446predict_4x4_mode_available2.25600000001350000000.260281104f:\x264-060506\x264-060506\encoder\analyse.c
1148x264_mb_analyse_inter_p16x83.142857143420000001320000000.254497079f:\x264-060506\x264-060506\encoder\analyse.c
1746x264_mb_analyse_init8.2150000001230000000.237145005f:\x264-060506\x264-060506\encoder\analyse.c
511x264_mb_analyse_intra_chroma2.733333333450000001230000000.237145005f:\x264-060506\x264-060506\encoder\analyse.c
425predict_4x4_hd1.28125960000001230000000.237145005f:\x264-060506\x264-060506\common\predict.c
425predict_4x4_vr1.413793103870000001230000000.237145005f:\x264-060506\x264-060506\common\predict.c
122predict_8x8c_h1.952380952630000001230000000.237145005f:\x264-060506\x264-060506\common\predict.c
425x264_mb_encode_i4x42.105263158570000001200000000.231360981f:\x264-060506\x264-060506\encoder\macroblock.c
464x264_pixel_sad_x3_16x8_sse25240000001200000000.231360981 
672x264_pixel_sad_x3_8x16_mmxext2.666666667450000001200000000.231360981 
297predict_4x4_hu1.772727273660000001170000000.225576956f:\x264-060506\x264-060506\common\predict.c
120predict_8x8c_v3.083333333360000001110000000.214008907f:\x264-060506\x264-060506\common\predict.c
464x264_deblock_h_chroma_mmxext1.166666667900000001050000000.202440858 
240x264_pixel_sad_8x16_mmxext1.888888889540000001020000000.196656834 
1104x264_mb_analyse_inter_p8x16333000000990000000.190872809f:\x264-060506\x264-060506\encoder\analyse.c
176x264_pixel_sad_16x8_sse23.66666666727000000990000000.190872809 
194x264_cabac_encode_bypass1.19230769278000000930000000.17930476f:\x264-060506\x264-060506\common\cabac.c
836x264_cabac_mb_cbf_ctxidxinc1.87548000000900000000.173520736f:\x264-060506\x264-060506\encoder\cabac.c
80x264_mc_copy_w8_mmx330000000900000000.173520736 
1385x264_slice_write4.83333333318000000870000000.167736711f:\x264-060506\x264-060506\encoder\encoder.c
680deblock_luma_intra_c2.15384615439000000840000000.161952687f:\x264-060506\x264-060506\common\frame.c
503x264_mb_mc_0xywh1.85714285742000000780000000.150384638f:\x264-060506\x264-060506\common\macroblock.c
134predict_4x4_dc515000000750000000.144600613f:\x264-060506\x264-060506\common\predict.c
577x264_mb_predict_mv_16x162.530000000750000000.144600613f:\x264-060506\x264-060506\common\macroblock.c
324plane_expand_border6.2512000000750000000.144600613f:\x264-060506\x264-060506\common\frame.c
272x264_deblock_v_chroma_mmxext1.64285714342000000690000000.133032564 
123x264_sub8x8_dct_mmx1.11111111154000000600000000.11568049f:\x264-060506\x264-060506\common\i386\dct-c.c
1359x264_macroblock_probe_skip2.71428571421000000570000000.109896466f:\x264-060506\x264-060506\encoder\macroblock.c
305x264_cabac_mb_mvd3.415000000510000000.098328417f:\x264-060506\x264-060506\encoder\cabac.c
1880x264_analyse_update_cache412000000480000000.092544392f:\x264-060506\x264-060506\encoder\analyse.c
64array_non_zero4.6666666679000000420000000.080976343f:\x264-060506\x264-060506\encoder\macroblock.h
271x264_mb_dequant_2x2_dc3.512000000420000000.080976343f:\x264-060506\x264-060506\common\quant.c
266mc_luma_mmx2.16666666718000000390000000.075192319f:\x264-060506\x264-060506\common\i386\mc-c.c
199dct2x2dc3.2512000000390000000.075192319f:\x264-060506\x264-060506\common\dct.c
149quant_2x2_dc133000000330000000.06362427f:\x264-060506\x264-060506\encoder\macroblock.c
320x264_cabac_mb_cbp_chroma2.7512000000330000000.06362427f:\x264-060506\x264-060506\encoder\cabac.c
61_alloca_probe 0330000000.06362427F:\VS70Builds\3077\vc\crtbld\crt\src\intel\chkstk.asm
38x264_me_search2.512000000300000000.057840245f:\x264-060506\x264-060506\encoder\analyse.c
145x264_mb_predict_intra4x4_mode130000000300000000.057840245f:\x264-060506\x264-060506\common\macroblock.c
194x264_mb_predict_mv_pskip 0300000000.057840245f:\x264-060506\x264-060506\common\macroblock.c
279x264_nal_encode215000000300000000.057840245f:\x264-060506\x264-060506\common\common.c
172x264_cabac_mb_skip39000000270000000.052056221f:\x264-060506\x264-060506\encoder\cabac.c
59predict_4x4_v4.56000000270000000.052056221f:\x264-060506\x264-060506\common\predict.c
1253x264_mb_mc39000000270000000.052056221f:\x264-060506\x264-060506\common\macroblock.c
74x264_deblock_v_luma_mmxext1.12524000000270000000.052056221f:\x264-060506\x264-060506\common\frame.c
227predict_8x8chroma_mode_available46000000240000000.046272196f:\x264-060506\x264-060506\encoder\analyse.c
47bs_size_te 0240000000.046272196f:\x264-060506\x264-060506\common\bs.h
1131x264_cabac_mb_type121000000210000000.040488172f:\x264-060506\x264-060506\encoder\cabac.c
80predict_4x4_h3.56000000210000000.040488172f:\x264-060506\x264-060506\common\predict.c
17x264_ratecontrol_qp 0180000000.034704147f:\x264-060506\x264-060506\encoder\ratecontrol.c
55scan_zigzag_2x2_dc29000000180000000.034704147f:\x264-060506\x264-060506\encoder\macroblock.c
115x264_macroblock_encode_skip29000000180000000.034704147f:\x264-060506\x264-060506\encoder\macroblock.c
279x264_mb_analyse_transform63000000180000000.034704147f:\x264-060506\x264-060506\encoder\analyse.c
138x264_sub16x16_dct_mmx1.512000000180000000.034704147f:\x264-060506\x264-060506\common\i386\dct-c.c
125bs_size_ue118000000180000000.034704147f:\x264-060506\x264-060506\common\bs.h
142x264_me_refine_qpel2.56000000150000000.028920123f:\x264-060506\x264-060506\encoder\me.c
233x264_mb_analyse_load_costs1.6666666679000000150000000.028920123f:\x264-060506\x264-060506\encoder\analyse.c
14_security_check_cookie2.56000000150000000.028920123f:\vs70builds\3077\vc\crtbld\crt\src\secchk.c
444x264_cabac_mb8x8_mvd43000000120000000.023136098f:\x264-060506\x264-060506\encoder\cabac.c
312x264_cabac_mb_qp_delta43000000120000000.023136098f:\x264-060506\x264-060506\encoder\cabac.c
207predict_16x16_dc_top26000000120000000.023136098f:\x264-060506\x264-060506\common\predict.c
213predict_8x8c_dc_top 0120000000.023136098f:\x264-060506\x264-060506\common\predict.c
39x264_cabac_pos43000000120000000.023136098f:\x264-060506\x264-060506\common\cabac.h
368x264_deblock_h_chroma_intra_mmxext1.3333333339000000120000000.023136098 
5058x264_encoder_encode 090000000.017352074f:\x264-060506\x264-060506\encoder\encoder.c
768x264_mb_cache_mv_p8x8 090000000.017352074f:\x264-060506\x264-060506\encoder\analyse.c
211predict_16x16_dc_left1.5600000090000000.017352074f:\x264-060506\x264-060506\common\predict.c
299predict_8x8c_dc_left0.751200000090000000.017352074f:\x264-060506\x264-060506\common\predict.c
91x264_cabac_encode_terminal 090000000.017352074f:\x264-060506\x264-060506\common\cabac.c
104_aulldiv3300000090000000.017352074F:\VS70Builds\3077\vc\crtbld\crt\src\intel\ulldiv.asm
341x264_macroblock_encode_pskip 060000000.011568049f:\x264-060506\x264-060506\encoder\macroblock.c
130x264_psnr 060000000.011568049f:\x264-060506\x264-060506\encoder\encoder.c
950x264_slice_header_write 060000000.011568049f:\x264-060506\x264-060506\encoder\encoder.c
161x264_cabac_encode_ue_bypass1600000060000000.011568049f:\x264-060506\x264-060506\encoder\cabac.c
100x264_add8x8_idct_mmx0.3333333331800000060000000.011568049f:\x264-060506\x264-060506\common\i386\dct-c.c
69plane_copy 060000000.011568049f:\x264-060506\x264-060506\common\csp.c
142x264_cabac_context_init2300000060000000.011568049f:\x264-060506\x264-060506\common\cabac.c
3526_output 060000000.011568049f:\vs70builds\3077\vc\crtbld\crt\src\output.c
52_allmul2300000060000000.011568049F:\VS70Builds\3077\vc\crtbld\crt\src\intel\llmul.asm
173__add_12 060000000.011568049 
600_log_pentium4 060000000.011568049 
96x264_quant_2x2_dc_core16_mmxext 060000000.011568049 
802x264_ratecontrol_start 030000000.005784025f:\x264-060506\x264-060506\encoder\ratecontrol.c
1051x264_mb_encode_i16x161300000030000000.005784025f:\x264-060506\x264-060506\encoder\macroblock.c
139x264_nal_end 030000000.005784025f:\x264-060506\x264-060506\encoder\encoder.c
426x264_slice_init 030000000.005784025f:\x264-060506\x264-060506\encoder\encoder.c
227predict_16x16_mode_available1300000030000000.005784025f:\x264-060506\x264-060506\encoder\analyse.c
1625x264_cqm_init 030000000.005784025f:\x264-060506\x264-060506\common\set.c
430x264_mb_dequant_4x4_dc 030000000.005784025f:\x264-060506\x264-060506\common\quant.c
137predict_16x16_dc_128 030000000.005784025f:\x264-060506\x264-060506\common\predict.c
101predict_8x8c_dc_128 030000000.005784025f:\x264-060506\x264-060506\common\predict.c
575x264_macroblock_slice_init 030000000.005784025f:\x264-060506\x264-060506\common\macroblock.c
929x264_mb_mc_8x8 030000000.005784025f:\x264-060506\x264-060506\common\macroblock.c
338i420_to_i420 030000000.005784025f:\x264-060506\x264-060506\common\csp.c
29bs_pos1300000030000000.005784025f:\x264-060506\x264-060506\common\bs.h
172bs_write_ue 030000000.005784025f:\x264-060506\x264-060506\common\bs.h
1100_read 030000000.005784025f:\vs70builds\3077\vc\crtbld\crt\src\read.c
1242I10_OUTPUT1300000030000000.005784025 
62__addl 030000000.005784025 
332__dtold 030000000.005784025 
1007__ld12mul0.5600000030000000.005784025 
389_cftof 030000000.005784025 
675x264_pixel_ssd_wxh0600000000f:\x264-060506\x264-060506\common\pixel.c
108write_string0300000000f:\vs70builds\3077\vc\crtbld\crt\src\output.c
467_filbuf0300000000f:\vs70builds\3077\vc\crtbld\crt\src\_filbuf.c

3、设置set.c中的sps->b_vui = 0;表示vui信息不出现在码流中 sps->b_frame_mbs_only = 1;表示采用所有图像均帧编码

4、屏蔽掉:cavlc.c中的else if( i_mb_type == B_8x8 ),else if( i_mb_type!= B_DIRECT ), else if( i_mb_type == B_DIRECT ),else if( i_mb_type == B_8x8 )等相关内容,编码级别为baseline没有B帧。

5、去掉common.h中的CHECKED_MALLOC中的if(!var)...(即检查分配内存成功与否) 

6、屏蔽掉ratecontrol_en.c中的x264_ratecontrol_new中的if( h->param.rc.i_rc_method == X264_RC_CRF)..和if( h->param.rc.b_stat_read )...等相关内容,因为已经设置i_rc_method == X264_RC_NONE,参数i_rc_method表示码率控制,CQP

x264优化(二)

1、去掉assert()语句

2、去掉common.c中的x264_param_parse()函数,及其相关定义和调用,这个主要是用来检查参数赋值对不对。 并将i_rc_method直接赋值为X264_RC_CQP。

3、去掉analyse.c中的static const int i_mb_b_cost_table[19]类似的数组(B帧用到的),以及以if( h->sh.i_type == SLICE_TYPE_B )...开头的语句。

4、去掉analyse.c中的x264_mb_analyse_inter_direct(),x264_mb_analyse_inter_b16x16(),x264_mb_analyse_inter_b8x8,x264_mb_analyse_inter_b16x8,x264_mb_analyse_inter_b8x16()等五个函数,这五个函数是用来进行B帧帧间预测的,不需要用到。

5、去掉有h->sh.i_type == SLICE_TYPE_B的语句。

6、将以for(i_list = 0;i_list<(h->sh.i_type == SLICE_TYPE_B ? 2 : 1 );i_list++ )的循环去掉,因为不使用B帧只执行一次,不需循环,但需加入i_list = 0;置初值。

7、analyse.c中的x264_mb_analyse_b_rd(),和x264_refine_bidir()函数去掉。

8、去掉cavlc_en.c中的uint8_t mb_type_b_to_golomb[3][9]和sub_mb_type_b_to_golomb[13]数组

9、去掉common.c中的parse_enum

x264优化(三)

1、去掉ratecontrol.c中的parse_zones相关的三处代码

2、去掉encoder.c中的x264_encoder_close()函数中的x264_ratecontrol_summary()函数及在ratecontrol.c中的相应代码(因为在这个函数中调用了if(rc->b_abr)...;

3、去掉rate_estimate_qscale()函数,clip_qscale()函数。

4、int x264_me_refine_bidir( x264_t *h, x264_me_t *m0, x264_me_t *m1,int i_weight ) 函数(me_en.c中)及其相关函数去掉,在程序中未能调用,且有内联,占用了大量的空间。

5、bs.h中int型数据改为short型,函数返回int的除外。

6、去掉 if( analysis.i_mbrd >= 2 && h->mb.i_type != I_PCM )的内容。

7、删除me.c中的COST_MV_RD宏。

8、删除analyse.c中的x264_intra_rd_refine函数,x264_intra_rd函数,x264_mb_analyse_p_rd()x264_mb_analyse_transform_rd() (可以考虑删除所有以_rd结尾的函数或变量)

9、删除x264_rd_cost_mb,x264_rd_cost_subpart,x264_rd_cost_part,uint64_t x264_rd_cost_i8x8,x264_rd_cost_i4x4,x264_rd_cost_i8x8_chroma

10、删除me.c中COST_BIMV_SATD宏里面if(rd)的内

x264优化(四)

1、删除x264_macroblock_encode_p8x8,x264_mb_analyse_inter_p8x8_mixed_ref,x264_mb_cache_mv_b8x8,sub16x16_dct8,sub8x8_dct8,x264_psy_trellis_init。

2、删除x264_mb_predict_mv_direct16x16,static int x264_mb_predict_mv_direct16x16_spatial。

3、删除x264_mb_mc_01xywh(可能是对后向参考帧计算的,或者和B帧有关),x264_macroblock_bipred_init, x264_mb_load_mv_direct8x8,x264_mb_mc_1xywh。

4、删除x264_ratecontrol_mb,predict_row_size和predict_size函数

5、删除x264_predict_8x8_filter,scaling_list_write,transpose函数

6、删除quant_8x8,dequant_8x8。set.c中的x264_cqm_parse_file,x264_cqm_parse_jmlist,common.c中的x264_encoder_headers,x264_encoder_reconfig。

7、 frame.c中删除x264_frame_expand_border_mod16(),macroblock_en.c中删除x264_denoise_dct()

8、删除x264_mb_transform_8x8_allowed,x264_mb_analyse_transform,x264_cabac_mb_transform_size,x264_psy_trellis_init,x264_mb_cache_fenc_satd(和rd有关的函数),去掉和b_transform_8x8相关的东西。i_mb_c

x264优化(五)

1、删除和dequant8_mf有关的一个循环。h->mb.pic.p_integral,h->sh.i_num_ref_idx_l1_active,去掉(m)->integral = &h->mb.pic.p_integral[list][ref][(xoff)+(yoff)*(m)->i_stride[0]]和common.h中的uint16_t *p_integral[2][16];

2、删除void x264_rdo_init,static ALWAYS_INLINE int quant_trellis_cabac(),删除trellis_node_t结构体,x264_cabac_size_decision_noup2。

3、删除 cabac.c,cabac1.c和cabac.h文件。

4、删除x264_macroblock_cache_skip

5、去掉和cpu相关的代码。

6、去掉rdo率失真优化相关东西。

7、去掉ssim相关的代码。SSIM(structural similarity index) 一种衡量两幅图像相似度的新指标,其值越大越好,最大为1,经常用到图像处理中,特别在图像去噪处理中在图像相似度评价上全面超越SNR(signal to noise ratio)和PSNR(peak signal to noise ratio)。

x264优化(六)

1、删除get_diff_limited_q,get_qscale,parse_zone函数

2、去掉和zones相关的结构体,代码。

3、去掉类似于b_have_lowres这样的变量,这样的变量赋了初始值之后,以后if(该变量)的语句是可以预测到的,若始终为0,那么这样的if判断是可以去掉的。去掉i_aq_mode相关的一些if判断语句。 

4、2pass 多次压缩码率控制 int b_stat_write; Enable stat writing in psz_stat_out char *psz_stat_out; int 

x264优化(七)

1、去掉有关信噪比的计算PSNR

2、去掉x264_rc_analyse_slice,x264_lowres_context_init,函数。

3、由于DIA菱形搜索算法是最快的,这里只保留菱形搜索法,将其他算法删去。

4、i_rd16x16bi,i_rd16x16direct,i_rd16x16,i_rd16x8bi,int i_rd8x16bi,i_rd8x8bi。

5、删除x264_slicetype_mb_cost,x264_slicetype_frame_cost,x264_slicetype_path,x264_slicetype_path_search函数。

6、删除ssd_mb,ssd_plane,sum_sa8d,sum_satd。

7、删除matroska.h和matroska.c文件。

8、删除gcd函数,删除muxer.h和muxer.c文件中有关y4m,mkv,thread相关的一些内容,因为这里输入只有YUV的原始数据额格式,最后编码出来的数据也是.264的原始编码数据。

9、bs.h文件,bs_write32,bs_align_0,bs_align_1。 common.h文件,x264_predictor_difference。

10、去掉和SLICE_TYPE_B,B_SKIP,B_BI_BI,B_BI_L1,B_BI_LO,B_L1_BI,B_L1_L1,B_L1_L0,B_L0_L1,B_L0_L0,B_DIRECT有关的条件,赋值等语句。

x264优化(八)

1、 D_L1_4x4 = 4, D_L1_8x4 = 5, D_L1_4x8 = 6, D_L1_8x8 = 7, D_BI_4x4 = 8, D_BI_8x4 = 9, D_BI_4x8 = 10, D_BI_8x8 = 11, D_DIRECT = 12, 可删除。

2、x264_mb_partition_count_table[]删除,x264_pixel_ssd_wxh()删除。

3、去掉x264_mb_analysis_t里的i_mbrd变

 x264优化(九)1、analyse.c文件中去掉WEIGHTED_AVG宏,删除scenecut()函数,x264_zigzag_scan2数组。2、去掉b_bframe_pyramid,i_bframe,X264_TYPE_B,X264_TYPE_BREF变量和相关代码。3、去掉Encode函数,for( i_frame = 0, i_file = 0;(i_frame < i_frame_total || i_frame_total == 0); )循环中的parse_qpfile()函数。4、去掉encode.c文件中x264_thread_sync_context()函数。5、stdint.h文件中将不必要的宏去掉。6、common.h文件中dist_scale_factor,bipred_weight,map_col_to_list0_buf,map_col_to_list0数组去掉,b_direct_auto_read,b_direct_auto_write,b_direct_spatial_mv_pred,b_sp_for_swidth,i_qs_delta,i_delay,fenc_dct8,fenc_dct4,fenc_satd,fenc_satd_sum,fenc_sa8d,fenc_sa8d_sum,i_neighbour_transform_size,i_neighbour_interlaced,i_cbp_top,i_cbp_left,i_last_dqp,i_misc_bits,i_direct_score,i_ssd_global,i_ssd,f_slice_qp,i_consecutive_bframes,i_direct_frames删除。if( h->frames.i_input <= h->frames.i_delay )循环去掉。 在Encodex264优化(十) 1、去掉局部变量未使用的变量。2、根据CCS的调试结果,去掉i_update_interval,opterr,print_errors变量。i_yuv_size,lambda2_tab[2][52],LAMBDA_BITS变量,i_left_type,i_top_type。def_dequant8,def_quant8数组。square1,hex2,mod6m1数组,quant8_scale,dequant8_scale,quant8_scan。x264_mb_cache_mv_b8x16()函数,x264_mb_cache_mv_b8x16()函数。predict_8x8_vl(),predict_8x8_hd(),predict_8x8_vr()munge_cavlc_nnz(),restore_cavlc_nnz_row(),munge_cavlc_nnz_row(),x264_atoi(),x264_atof(),3、去掉ratecontrol.c文件的expected_bits_sum,wanted_bits_window,short_term_cplxsum,short_term_cplxsum,short_term_cplxcount,rate_factor_constant,last_satd,last_rceq,cplxr_sum,cbr_decay变量,qscale2bits()函数,qscale2qp()函数。4、去掉x264_frame_t *last_nonb;5、删除slicetype.c文件。

原文地址: X264性能优化_liuchen1206的专栏-CSDN博客

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Vue3

    Vue3 npm init viteVite与Webpack webpack打包是递归依赖,构建AST抽象语法树,再把抽象语法树转成浏览器可识别的代码 Vite通过劫持浏览器请求,将文件进行分解和整合&#xff0c;无需打包编译&#xff0c;速度很快。webpack使用NodeJS实现&#xff0c;Vite使用Go语言编写的esb…...

    2024/4/21 17:41:57
  2. LightOJ - 1274 Beating the Dataset(概率期望)

    题目链接&#xff1a;Beating the Dataset - LightOJ 1274 - Virtual Judge (ppsucxtt.cn) 简化版题意&#xff1a;某人在蒙题&#xff0c;题目答案只有yes和no两种答案&#xff0c;总共有n道题&#xff0c;一开始你知道了n道题中答案为yes的题目数&#xff0c;你每蒙一道题之…...

    2024/4/21 17:41:54
  3. 注释-标识符-关键字

    文章目录注释标识符关键字注释 注释在代码当中是不会被执行的&#xff0c;注释在代码中只是为了能够更好的理解代码&#xff0c;或者说对代码进行一个说明。 Java中的注释有三种&#xff0c;分别是&#xff1a; 单行注释 单行注释表示的是注释当前所在行&#xff0c;对当前行进…...

    2024/4/21 17:41:54
  4. PAT 甲级 1012 The Best Rank (25 分)(Java)

    文章目录PAT 甲级 1012 The Best Rank (25 分)&#xff08;Java&#xff09;题目大体题意解题思路解法解法一PAT 甲级 1012 The Best Rank (25 分)&#xff08;Java&#xff09; 题目 题目链接 大体题意 一组学生成绩&#xff0c;每个学生分别有c语言、数学、英语三门课的成…...

    2024/4/19 19:31:18
  5. USB转串口线的极限波特率

    你有没有遇到过明明好使的串口线&#xff0c; 在这个设备上怎么改波特率&#xff0c;打印的信息就是乱码&#xff1f; 那就要考虑手中的串口线是否支持特定波特率的问题了。 网上有许多 USB 转串口线&#xff0c;按芯片来分&#xff0c;主要有以下几种&#xff1a; CH340 …...

    2024/4/20 13:48:36
  6. 笔记:python

    官网&#xff1a;https://www.python.org downloads 下载 python 最新版安装程序 安装后将安装路径配至环境变量...

    2024/4/20 13:48:34
  7. 18.BigInteger与BigDecimal 、Math与Random

    BigDecimal(常用) BigDecimal&#xff1a;用于存储比double更精确的值 public class BigDecimailTest {public static void main(String[] args) {double a 0.1;double b 0.09;System.out.println(a-b);BigDecimal big1 new BigDecimal("0.1");BigDecimal big2 …...

    2024/4/20 13:48:34
  8. PAT 甲级 1011 World Cup Betting (20 分)(Java)

    文章目录PAT 甲级 1011 World Cup Betting (20 分)&#xff08;Java&#xff09;题目解法解法一PAT 甲级 1011 World Cup Betting (20 分)&#xff08;Java&#xff09; 题目 题目链接 解法 解法一 import java.util.ArrayList; import java.util.List; import java.util.…...

    2024/4/20 13:48:33
  9. 学go必会的并发知识(2)

    channel通道 前面有说过哈&#xff0c;channel是一种引用类型&#xff0c;make函数初始化以后才可以进行使用 chan1 : make(chan int) chan2 : make(chan int, 10 )带数字的表示拥有缓存区 带缓存区的通道和没有带缓存区的通道&#xff1a; 无缓存的通道必须要有人进行接收…...

    2024/4/20 13:48:31
  10. MySQL数据库与sql语句

    MySQL安装 MYSQL卸载 安装目录 数据目录 数据库范式 数据库备份 事务 一个完整的业务逻辑对多表操作同时成功或失败&#xff08;更新多表时才需要事务控制&#xff09;&#xff0c;事务就是保证多表操作同时成功或失败的监督员 同一时间可以只允许一个事务进行操作&#xff…...

    2024/4/20 13:48:30
  11. 《深入理解计算机系统》学习笔记——程序的机器级表示

    计算机系统——程序的机器级表示程序的机器级表示程序编码机器级代码关于格式的注解数据格式访问信息操作数指示符数据传送指令压入和弹出栈数据算术和逻辑操作加载有效地址一元和二元操作移位操作特殊的算术操作符控制条件码访问条件码跳转指令跳转指令的编码用条件控制来实现…...

    2024/4/23 19:46:40
  12. Redis作为单线程 为什么我用它还是出现了超卖的情况?

    实战说明 最近在一个项目营销活动中&#xff0c;一位同事用到了Redis来实现商品的库存管理。在压测的过程中&#xff0c;发现存在超卖的情况。这里总结一篇如何正确使用Redis来解决秒杀场景下&#xff0c;超卖的情况。 演示步骤 这里不会直接给大家说明&#xff0c;该怎么去…...

    2024/4/21 17:41:52
  13. 线程的生命周期

    操作系统中线程的生命周期 JDK中用Thread.State类定义了线程的几种状态 要想实现多线程&#xff0c;必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程&#xff0c;在它的一个完整的生命周期中通常要经历如下的五种状态&#xff1a; >新建&a…...

    2024/4/21 17:41:52
  14. nginx模块介绍

    使用configure命令配置构建。它定义了系统的各个方面&#xff0c;包括允许nginx用于连接处理的方法。最后&#xff0c;它会创建一个Makefile。 该configure命令支持以下参数&#xff1a; –help 打印帮助信息。–prefixpath 定义将保留服务器文件的目录。此相同目录还将用于设…...

    2024/4/21 17:41:50
  15. 2021ccpc网络赛重赛

    05 Monopoly题意&#xff1a;有n个点&#xff0c;每个点有一个分数。兔子从0开始一个点一个点的往前跳&#xff0c;跳到这个点就会拿到这个点的分数&#xff0c;跳到n点下一步会跳回1然后继续跳。给定目标分数&#xff0c;问兔子最少要跳几次才能达到这个目标分数。 先求前缀和…...

    2024/4/21 17:41:49
  16. 硬件基础(一)

    硬件基础&#xff1a; 1、CPU CPU简介: 中央处理器。由控制器和运算器构成&#xff0c;是整个计算机系统中的重要组成部分 CPU性能指标 主频&#xff1a;*主频是CPU的时钟频率(CPU Clock Speed) 。一般说来&#xff0c;主频越高&#xff0c;CPU的速度越快。由于内部结构不…...

    2024/4/21 17:41:49
  17. C++ 模板(template)——深入了解类模板

    目录 1.类模板的使用 1.1为什么需要类模板 1.2类模板定义 1.3单个类模板的使用 2.继承中类模板的使用 2.1父类是一般类&#xff0c;子类是模板类 2.2子类是一般类&#xff0c;父类是模板类 2.3父类和子类都是模板类 1.类模板的使用 1.1为什么需要类模板 类模板与函数模板…...

    2024/4/21 17:41:47
  18. leetcode【简单】501、二叉搜索树中的众数

    思路&#xff1a; 正常来说&#xff0c;中序遍历得到非递减数组&#xff0c;然后求数组众数即可&#xff0c;但消耗额外空间&#xff1b; 已知遍历顺序肯定是非递减&#xff0c;如果有相同的数肯定连在一起&#xff0c;可以在遍历途中维护一个表示当前数字出现几次的count&…...

    2024/4/21 17:41:47
  19. 【算法题】动态规划-最长上升子序列模型

    前言 最长上升子序列模型(LIS)(LIS)(LIS)属于线性DP的一种&#xff0c;基础模板题讲解传送门&#xff1a;【模板题】线性DP&#xff08;数字三角形、LIS、LCS、编辑距离&#xff09;&#xff0c;本文将通过一系列该模型的扩展题对其进行更加深入的分析。 一、AcWing 1017. 怪…...

    2024/4/25 1:36:04
  20. 概率统计概念复习:MAPMLE

    1 似然函数与概率函数 对于条件概率函数P(x∣θ)&#xff1a; 如果θ是已知确定的&#xff0c;x是变量&#xff0c;这个函数叫做概率函数(probability function)&#xff0c;它描述对于不同的样本点x&#xff0c;其出现概率是多少。如果x是已知确定的&#xff0c;θ 是变量&a…...

    2024/4/21 17:41:45

最新文章

  1. vue3前端请求后端接口动态渲染菜单

    //获取数据 请求接口 export function parkEnterPrise(address: string, methods: string) { const res instance({ url: address, method: methods, }); return res; } //页面 <el-menu default-active"2" class"el-menu-vertical-demo" …...

    2024/4/27 6:48:15
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Linux中的错误处理艺术:理解错误编号与头文件引用

    引言 在Linux环境下开发程序时&#xff0c;准确且有效地处理错误是至关重要的。操作系统通过错误编号&#xff08;Error Number&#xff09;向程序反馈各种异常情况&#xff0c;帮助开发者定位和修复问题。本文将深入探讨Linux错误处理机制&#xff0c;并介绍如何查找特定错误…...

    2024/4/23 1:07:04
  4. Mac brew 安装软件

    Mac brew 安装软件 homebrew 速度慢 将brew 切换到国内镜像源 # 速度一般 # 步骤一 cd "$(brew --repo)" git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git# 步骤二 cd "$(brew --repo)/Library/Taps/homebrew/homebr…...

    2024/4/26 7:26:05
  5. Dapr(一) 基于云原生了解Dapr

    (这期先了解Dapr&#xff0c;之后在推出如何搭建Dapr&#xff0c;以及如何使用。Dapr(二) 分布式应用运行时搭建及服务调用--Dapr(二) 分布式应用运行时搭建及服务调用-CSDN博客) 目录 引言&#xff1a; Service Mesh定义 Service Mesh解决的痛点 Istio介绍 Service Mes…...

    2024/4/24 13:15:30
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/25 18:39:22
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/25 18:39:22
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/26 21:56:58
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/25 16:48:44
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/26 16:00:35
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/26 22:01:59
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/25 18:38:58
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/25 18:38:57
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57