RGBA 编码为 YUV420SP【NEON】
RGBA >> YUV420SP
- C/C++ 朴素实现版
void encodeYUV420SP_CPU(unsigned char *__restrict__ yuv420sp,unsigned char *__restrict__ argb, int width, int height) {int frameSize = width * height;int yIndex = 0;int uvIndex = frameSize;for (int j = 0; j < height; j++) {for (int i = 0; i < width; i++) {uint8_t R = argb[2];uint8_t G = argb[1];uint8_t B = argb[0];argb += 4;// well known RGB to YUV algorithmuint8_t Y = ((66 * R + 129 * G + 25 * B + 128) >> 8) + 16;uint8_t U = ((-38 * R - 74 * G + 112 * B + 128) >> 8) + 128;uint8_t V = ((112 * R - 94 * G - 18 * B + 128) >> 8) + 128;// NV21有一个 Y 平面和 V-U 交叉平面,每一个平面的采样值都是 2// 意思是每4个 Y 像素(上下左右,不是横向连续的四个)对应1个 V 和1个 U// 像素和其他扫描线。yuv420sp[yIndex++] = Y;if (j % 2 == 0 && i % 2 == 0) {yuv420sp[uvIndex++] = V;yuv420sp[uvIndex++] = U;}}}
}
- Neon 实现版(Github上找的)
void encodeYUV420SP_NEON_Intrinsics(unsigned char *__restrict__ yuv420sp,unsigned char *__restrict__ argb, int width, int height) {const uint16x8_t u16_rounding = vdupq_n_u16(128);const int16x8_t s16_rounding = vdupq_n_s16(128); // +128, u/v 中内层的 +128const int8x8_t s8_rounding = vdup_n_s8(128); // -128,即 0x80,最高成了符号位,实际只有 7 位用来表示数字,用来处理符号位, u/v 中外层的 +128const uint8x16_t offset = vdupq_n_u8(16);const uint16x8_t mask = vdupq_n_s16(255);// 测试
// int16x8_t test = vaddl_s8 (s8_rounding, s8_rounding);// -256
// int8x8_t test_0 = vdup_n_s8(127); // 正常为 127
// int8x8_t test_1 = vadd_s8(test_0, test_0); // -2,因为计算溢出到符号位int frameSize = width * height;int yIndex = 0;int uvIndex = frameSize;int i;int j;for (j = 0; j < height; j++) {for (i = 0; i < width >> 4; i++) {// Load rgbuint8x16x4_t pixel_argb = vld4q_u8(argb);argb += 4 * 16;uint8x8x2_t uint8_r;uint8x8x2_t uint8_g;uint8x8x2_t uint8_b;uint8_r.val[0] = vget_low_u8(pixel_argb.val[2]);uint8_r.val[1] = vget_high_u8(pixel_argb.val[2]);uint8_g.val[0] = vget_low_u8(pixel_argb.val[1]);uint8_g.val[1] = vget_high_u8(pixel_argb.val[1]);uint8_b.val[0] = vget_low_u8(pixel_argb.val[0]);uint8_b.val[1] = vget_high_u8(pixel_argb.val[0]);// Y = ((66 * R + 129 * G + 25 * B + 128) >> 8) + 16;uint16x8x2_t uint16_y;uint8x8_t scalar = vdup_n_u8(66);uint8x16_t y;uint16_y.val[0] = vmull_u8(uint8_r.val[0], scalar);uint16_y.val[1] = vmull_u8(uint8_r.val[1], scalar);scalar = vdup_n_u8(129);uint16_y.val[0] = vmlal_u8(uint16_y.val[0], uint8_g.val[0], scalar);uint16_y.val[1] = vmlal_u8(uint16_y.val[1], uint8_g.val[1], scalar);scalar = vdup_n_u8(25);uint16_y.val[0] = vmlal_u8(uint16_y.val[0], uint8_b.val[0], scalar);uint16_y.val[1] = vmlal_u8(uint16_y.val[1], uint8_b.val[1], scalar);uint16_y.val[0] = vaddq_u16(uint16_y.val[0], u16_rounding);uint16_y.val[1] = vaddq_u16(uint16_y.val[1], u16_rounding);y = vcombine_u8(vqshrn_n_u16(uint16_y.val[0], 8), vqshrn_n_u16(uint16_y.val[1], 8));y = vaddq_u8(y, offset);vst1q_u8(yuv420sp + yIndex, y);yIndex += 16;// 在偶数行中计算 U 和 Vif (j % 2 == 0) {// uint8_t U = ((-38 * R - 74 * G + 112 * B + 128) >> 8) + 128;
// uint8_t V = ((112 * R - 94 * G - 18 * B + 128) >> 8) + 128;int16x8_t u_scalar = vdupq_n_s16(-38);int16x8_t v_scalar = vdupq_n_s16(112);#if 1// 因为 u,v 的值只有 y 的一半,所以只取高位计算int16x8_t r = vreinterpretq_s16_u16(vandq_u16(vreinterpretq_u16_u8(pixel_argb.val[2]), mask));// 测试
// uint16x8_t test_0 = vreinterpretq_u16_u8(pixel_argb.val[2]);
// uint16x8_t test_1 = vandq_u16(test_0, mask);
// int16x8_t test_2 = vreinterpretq_s16_u16(test_1);int16x8_t g = vreinterpretq_s16_u16(vandq_u16(vreinterpretq_u16_u8(pixel_argb.val[1]), mask));int16x8_t b = vreinterpretq_s16_u16(vandq_u16(vreinterpretq_u16_u8(pixel_argb.val[0]), mask));
#else // 两者效果是一样的,但是没第一种快int16x8_t r = vreinterpretq_s16_u16(vmovl_u8(vqshrn_n_u16(vshlq_n_u16(vreinterpretq_u16_u8(pixel_argb.val[2]), 8), 8)));int16x8_t g = vreinterpretq_s16_u16(vmovl_u8(vqshrn_n_u16(vshlq_n_u16(vreinterpretq_u16_u8(pixel_argb.val[1]), 8), 8)));int16x8_t b = vreinterpretq_s16_u16(vmovl_u8(vqshrn_n_u16(vshlq_n_u16(vreinterpretq_u16_u8(pixel_argb.val[0]), 8), 8)));// vshlq_n_u16,结果是 uint16x8_t// vqshrn_n_u16,结果是 uint8x8_t// vmovl_u8,结果是 uint16x8_t
#endifint16x8_t u;int16x8_t v;uint8x8x2_t uv;u = vmulq_s16(r, u_scalar);v = vmulq_s16(r, v_scalar);u_scalar = vdupq_n_s16(-74);v_scalar = vdupq_n_s16(-94);u = vmlaq_s16(u, g, u_scalar);v = vmlaq_s16(v, g, v_scalar);u_scalar = vdupq_n_s16(112);v_scalar = vdupq_n_s16(-18);u = vmlaq_s16(u, b, u_scalar);v = vmlaq_s16(v, b, v_scalar);u = vaddq_s16(u, s16_rounding);v = vaddq_s16(v, s16_rounding);uv.val[1] = vreinterpret_u8_s8(vadd_s8(vqshrn_n_s16(u, 8), s8_rounding));
// 测试
// int8x8_t test_3 = vqshrn_n_s16(u, 8);
// int8x8_t test_4 = vadd_s8(test_3, s8_rounding); //
// uint8x8_t test_5 = vreinterpret_u8_s8(test_4);uv.val[0] = vreinterpret_u8_s8(vadd_s8(vqshrn_n_s16(v, 8), s8_rounding));vst2_u8(yuv420sp + uvIndex, uv);uvIndex += 2 * 8;}}// 处理余数的好办法for (i = ((width >> 4) << 4); i < width; i++) {uint8_t R = argb[2];uint8_t G = argb[1];uint8_t B = argb[0];argb += 4;// well known RGB to YUV algorithmuint8_t Y = ((66 * R + 129 * G + 25 * B + 128) >> 8) + 16;uint8_t U = ((-38 * R - 74 * G + 112 * B + 128) >> 8) + 128;uint8_t V = ((112 * R - 94 * G - 18 * B + 128) >> 8) + 128;// NV21有一个 Y 平面和 V-U 交叉平面,每一个平面的采样值都是 2// 意思是每4个 Y 像素(上下左右,不是横向连续的四个)对应1个 V 和1个 U// 像素和其他扫描线。yuv420sp[yIndex++] = Y;if (j % 2 == 0 && i % 2 == 0) {yuv420sp[uvIndex++] = V;yuv420sp[uvIndex++] = U;}}}
}
通过 objdump 生成 so 库的反汇编
命令行如下:
>J:\Programs\Android\sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-objdump.exe -d libnative-lib.so > objdump_d.txt
一. arm-linux-objdump
常用来显示二进制文件信息,常用来查看反汇编代码
二. 常用选项:
1.-b bfdname 指定目标码格式
2.—disassemble或者-d 反汇编可执行段
3.—dissassemble-all或者-D 反汇编所有段
4.-EB,-EL指定字节序
5.—file-headers或者-f 显示文件的整体头部摘要信息
6.—section-headers,--headers或者-h 显示目标文件中各个段的头部摘要信息
7.—info 或者-I 显示支持的目标文件格式和CPU架构
8.—section=name或者-j name显示指定section 的信息
9.—architecture=machine或者-m machine 指定反汇编目标文件时使用的架构
三. 示例
Arm-linux-objdump –D elf_file > dis_file 或者
Arm-linux-objdump –D –b binary –m arm bin_file > dis_file
- C/C++ 实现版:
000410dc <_Z18encodeYUV420SP_CPUPhS_ii>:410dc: b5b0 push {r4, r5, r7, lr}410de: af02 add r7, sp, #8410e0: b08f sub sp, #60 ; 0x3c410e2: 469c mov ip, r3410e4: 4696 mov lr, r2410e6: 460c mov r4, r1410e8: 4605 mov r5, r0410ea: 900e str r0, [sp, #56] ; 0x38410ec: 910d str r1, [sp, #52] ; 0x34410ee: 920c str r2, [sp, #48] ; 0x30410f0: 930b str r3, [sp, #44] ; 0x2c410f2: 980c ldr r0, [sp, #48] ; 0x30410f4: 990b ldr r1, [sp, #44] ; 0x2c410f6: 4348 muls r0, r1410f8: 900a str r0, [sp, #40] ; 0x28410fa: 2000 movs r0, #0410fc: 9009 str r0, [sp, #36] ; 0x24410fe: 990a ldr r1, [sp, #40] ; 0x2841100: 9108 str r1, [sp, #32]41102: 9007 str r0, [sp, #28]41104: f8cd c00c str.w ip, [sp, #12]41108: f8cd e008 str.w lr, [sp, #8]4110c: 9401 str r4, [sp, #4]4110e: 9500 str r5, [sp, #0]41110: e7ff b.n 41112 <_Z18encodeYUV420SP_CPUPhS_ii+0x36>41112: 9807 ldr r0, [sp, #28]41114: 990b ldr r1, [sp, #44] ; 0x2c41116: 4288 cmp r0, r141118: f280 808c bge.w 41234 <_Z18encodeYUV420SP_CPUPhS_ii+0x158>4111c: e7ff b.n 4111e <_Z18encodeYUV420SP_CPUPhS_ii+0x42>4111e: 2000 movs r0, #041120: 9006 str r0, [sp, #24]41122: e7ff b.n 41124 <_Z18encodeYUV420SP_CPUPhS_ii+0x48>41124: 9806 ldr r0, [sp, #24]41126: 990c ldr r1, [sp, #48] ; 0x3041128: 4288 cmp r0, r14112a: da7e bge.n 4122a <_Z18encodeYUV420SP_CPUPhS_ii+0x14e>4112c: e7ff b.n 4112e <_Z18encodeYUV420SP_CPUPhS_ii+0x52>4112e: 980d ldr r0, [sp, #52] ; 0x3441130: 7880 ldrb r0, [r0, #2]41132: f807 0c2d strb.w r0, [r7, #-45]41136: 980d ldr r0, [sp, #52] ; 0x3441138: 7840 ldrb r0, [r0, #1]4113a: f807 0c2e strb.w r0, [r7, #-46]4113e: 980d ldr r0, [sp, #52] ; 0x3441140: 7800 ldrb r0, [r0, #0]41142: f807 0c2f strb.w r0, [r7, #-47]41146: 980d ldr r0, [sp, #52] ; 0x3441148: 3004 adds r0, #44114a: 900d str r0, [sp, #52] ; 0x344114c: f817 0c2d ldrb.w r0, [r7, #-45]41150: eb00 1040 add.w r0, r0, r0, lsl #541154: f817 1c2e ldrb.w r1, [r7, #-46]41158: eb01 11c1 add.w r1, r1, r1, lsl #74115c: eb01 0040 add.w r0, r1, r0, lsl #141160: f817 1c2f ldrb.w r1, [r7, #-47]41164: 2219 movs r2, #2541166: fb11 0002 smlabb r0, r1, r2, r04116a: 3080 adds r0, #128 ; 0x804116c: 2110 movs r1, #164116e: eb01 2010 add.w r0, r1, r0, lsr #841172: f88d 0014 strb.w r0, [sp, #20]41176: f817 0c2d ldrb.w r0, [r7, #-45]4117a: f06f 0125 mvn.w r1, #37 ; 0x254117e: fb10 f001 smulbb r0, r0, r141182: f817 1c2e ldrb.w r1, [r7, #-46]41186: 224a movs r2, #74 ; 0x4a41188: fb01 0012 mls r0, r1, r2, r04118c: f817 1c2f ldrb.w r1, [r7, #-47]41190: ebc1 01c1 rsb r1, r1, r1, lsl #341194: eb00 1001 add.w r0, r0, r1, lsl #441198: 3080 adds r0, #128 ; 0x804119a: 2180 movs r1, #128 ; 0x804119c: eb01 2010 add.w r0, r1, r0, lsr #8411a0: f807 0c31 strb.w r0, [r7, #-49]411a4: f817 0c2d ldrb.w r0, [r7, #-45]411a8: ebc0 00c0 rsb r0, r0, r0, lsl #3411ac: f817 2c2e ldrb.w r2, [r7, #-46]411b0: 235e movs r3, #94 ; 0x5e411b2: fb12 f203 smulbb r2, r2, r3411b6: ebc2 1000 rsb r0, r2, r0, lsl #4411ba: f817 2c2f ldrb.w r2, [r7, #-47]411be: eb02 02c2 add.w r2, r2, r2, lsl #3411c2: eba0 0042 sub.w r0, r0, r2, lsl #1411c6: 3080 adds r0, #128 ; 0x80411c8: eb01 2010 add.w r0, r1, r0, lsr #8411cc: f807 0c32 strb.w r0, [r7, #-50]411d0: f89d 0014 ldrb.w r0, [sp, #20]411d4: 990e ldr r1, [sp, #56] ; 0x38411d6: 9a09 ldr r2, [sp, #36] ; 0x24411d8: 1c53 adds r3, r2, #1411da: 9309 str r3, [sp, #36] ; 0x24411dc: 5488 strb r0, [r1, r2]411de: 9807 ldr r0, [sp, #28]411e0: eb00 71d0 add.w r1, r0, r0, lsr #31411e4: f021 0101 bic.w r1, r1, #1411e8: 1a40 subs r0, r0, r1411ea: 2800 cmp r0, #0411ec: d118 bne.n 41220 <_Z18encodeYUV420SP_CPUPhS_ii+0x144>411ee: e7ff b.n 411f0 <_Z18encodeYUV420SP_CPUPhS_ii+0x114>411f0: 9806 ldr r0, [sp, #24]411f2: eb00 71d0 add.w r1, r0, r0, lsr #31411f6: f021 0101 bic.w r1, r1, #1411fa: 1a40 subs r0, r0, r1411fc: 2800 cmp r0, #0411fe: d10f bne.n 41220 <_Z18encodeYUV420SP_CPUPhS_ii+0x144>41200: e7ff b.n 41202 <_Z18encodeYUV420SP_CPUPhS_ii+0x126>41202: f817 0c32 ldrb.w r0, [r7, #-50]41206: 990e ldr r1, [sp, #56] ; 0x3841208: 9a08 ldr r2, [sp, #32]4120a: 1c53 adds r3, r2, #14120c: 9308 str r3, [sp, #32]4120e: 5488 strb r0, [r1, r2]41210: f817 0c31 ldrb.w r0, [r7, #-49]41214: 990e ldr r1, [sp, #56] ; 0x3841216: 9a08 ldr r2, [sp, #32]41218: 1c53 adds r3, r2, #14121a: 9308 str r3, [sp, #32]4121c: 5488 strb r0, [r1, r2]4121e: e7ff b.n 41220 <_Z18encodeYUV420SP_CPUPhS_ii+0x144>41220: e7ff b.n 41222 <_Z18encodeYUV420SP_CPUPhS_ii+0x146>41222: 9806 ldr r0, [sp, #24]41224: 3001 adds r0, #141226: 9006 str r0, [sp, #24]41228: e77c b.n 41124 <_Z18encodeYUV420SP_CPUPhS_ii+0x48>4122a: e7ff b.n 4122c <_Z18encodeYUV420SP_CPUPhS_ii+0x150>4122c: 9807 ldr r0, [sp, #28]4122e: 3001 adds r0, #141230: 9007 str r0, [sp, #28]41232: e76e b.n 41112 <_Z18encodeYUV420SP_CPUPhS_ii+0x36>41234: b00f add sp, #60 ; 0x3c41236: bdb0 pop {r4, r5, r7, pc}
- Neon 实现版:
00041238 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii>:41238: b5f0 push {r4, r5, r6, r7, lr}4123a: af03 add r7, sp, #124123c: e92d 0b00 stmdb sp!, {r8, r9, fp}41240: f5ad 6d35 sub.w sp, sp, #2896 ; 0xb5041244: 466c mov r4, sp41246: f36f 0403 bfc r4, #0, #44124a: 46a5 mov sp, r44124c: f50d 6cd6 add.w ip, sp, #1712 ; 0x6b041250: f10d 0e30 add.w lr, sp, #48 ; 0x3041254: 461c mov r4, r341256: 4615 mov r5, r241258: 460e mov r6, r14125a: 4680 mov r8, r04125c: f8df 9c0c ldr.w r9, [pc, #3084] ; 41e6c <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xc34>41260: 44f9 add r9, pc41262: f8d9 9000 ldr.w r9, [r9]41266: f8d9 9000 ldr.w r9, [r9]4126a: f8cd 9024 str.w r9, [sp, #36] ; 0x244126e: 906f str r0, [sp, #444] ; 0x1bc41270: 916e str r1, [sp, #440] ; 0x1b841272: 926d str r2, [sp, #436] ; 0x1b441274: 936c str r3, [sp, #432] ; 0x1b041276: 2080 movs r0, #128 ; 0x8041278: f8ad 01ee strh.w r0, [sp, #494] ; 0x1ee4127c: f50d 71f7 add.w r1, sp, #494 ; 0x1ee41280: f9e1 0c7f vld1.16 {d16[]-d17[]}, [r1 :16]41284: a970 add r1, sp, #448 ; 0x1c041286: f941 0aef vst1.64 {d16-d17}, [r1 :128]4128a: f961 0aef vld1.64 {d16-d17}, [r1 :128]4128e: a974 add r1, sp, #464 ; 0x1d041290: f941 0aef vst1.64 {d16-d17}, [r1 :128]41294: f961 0aef vld1.64 {d16-d17}, [r1 :128]41298: a968 add r1, sp, #416 ; 0x1a04129a: f941 0aef vst1.64 {d16-d17}, [r1 :128]4129e: f8ad 0a4e strh.w r0, [sp, #2638] ; 0xa4e412a2: f60d 214e addw r1, sp, #2638 ; 0xa4e412a6: f9e1 0c7f vld1.16 {d16[]-d17[]}, [r1 :16]412aa: f50d 6122 add.w r1, sp, #2592 ; 0xa20412ae: f941 0aef vst1.64 {d16-d17}, [r1 :128]412b2: f961 0aef vld1.64 {d16-d17}, [r1 :128]412b6: f50d 6123 add.w r1, sp, #2608 ; 0xa30412ba: f941 0aef vst1.64 {d16-d17}, [r1 :128]412be: f961 0aef vld1.64 {d16-d17}, [r1 :128]412c2: a964 add r1, sp, #400 ; 0x190412c4: f941 0aef vst1.64 {d16-d17}, [r1 :128]412c8: f88d 0a1f strb.w r0, [sp, #2591] ; 0xa1f412cc: f60d 201f addw r0, sp, #2591 ; 0xa1f412d0: f9e0 2c0f vld1.8 {d18[]}, [r0]412d4: edcc 2bd6 vstr d18, [ip, #856] ; 0x358412d8: eddc 2bd6 vldr d18, [ip, #856] ; 0x358412dc: edcc 2bd8 vstr d18, [ip, #864] ; 0x360412e0: eddc 2bd8 vldr d18, [ip, #864] ; 0x360412e4: edce 2b56 vstr d18, [lr, #344] ; 0x158412e8: 2010 movs r0, #16412ea: f88d 0a07 strb.w r0, [sp, #2567] ; 0xa07412ee: f60d 2007 addw r0, sp, #2567 ; 0xa07412f2: f9e0 0c2f vld1.8 {d16[]-d17[]}, [r0]412f6: f50d 601e add.w r0, sp, #2528 ; 0x9e0412fa: f940 0aef vst1.64 {d16-d17}, [r0 :128]412fe: f960 0aef vld1.64 {d16-d17}, [r0 :128]41302: f50d 601f add.w r0, sp, #2544 ; 0x9f041306: f940 0aef vst1.64 {d16-d17}, [r0 :128]4130a: f960 0aef vld1.64 {d16-d17}, [r0 :128]4130e: a85c add r0, sp, #368 ; 0x17041310: f940 0aef vst1.64 {d16-d17}, [r0 :128]41314: 20ff movs r0, #255 ; 0xff41316: f8ad 09de strh.w r0, [sp, #2526] ; 0x9de4131a: f60d 10de addw r0, sp, #2526 ; 0x9de4131e: f9e0 0c7f vld1.16 {d16[]-d17[]}, [r0 :16]41322: f50d 601b add.w r0, sp, #2480 ; 0x9b041326: f940 0aef vst1.64 {d16-d17}, [r0 :128]4132a: f960 0aef vld1.64 {d16-d17}, [r0 :128]4132e: f50d 601c add.w r0, sp, #2496 ; 0x9c041332: f940 0aef vst1.64 {d16-d17}, [r0 :128]41336: f960 0aef vld1.64 {d16-d17}, [r0 :128]4133a: a858 add r0, sp, #352 ; 0x1604133c: f940 0aef vst1.64 {d16-d17}, [r0 :128]41340: 986d ldr r0, [sp, #436] ; 0x1b441342: 996c ldr r1, [sp, #432] ; 0x1b041344: 4348 muls r0, r141346: 9057 str r0, [sp, #348] ; 0x15c41348: 2000 movs r0, #04134a: 9056 str r0, [sp, #344] ; 0x1584134c: 9957 ldr r1, [sp, #348] ; 0x15c4134e: 9155 str r1, [sp, #340] ; 0x15441350: 9053 str r0, [sp, #332] ; 0x14c41352: f8cd c020 str.w ip, [sp, #32]41356: f8cd e01c str.w lr, [sp, #28]4135a: 9406 str r4, [sp, #24]4135c: 9505 str r5, [sp, #20]4135e: 9604 str r6, [sp, #16]41360: f8cd 800c str.w r8, [sp, #12]41364: e7ff b.n 41366 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0x12e>41366: 9853 ldr r0, [sp, #332] ; 0x14c41368: 996c ldr r1, [sp, #432] ; 0x1b04136a: 4288 cmp r0, r14136c: f280 856d bge.w 41e4a <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xc12>41370: e7ff b.n 41372 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0x13a>41372: 2000 movs r0, #041374: 9054 str r0, [sp, #336] ; 0x15041376: e7ff b.n 41378 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0x140>41378: 9854 ldr r0, [sp, #336] ; 0x1504137a: 996d ldr r1, [sp, #436] ; 0x1b44137c: ebb0 1f21 cmp.w r0, r1, asr #441380: f280 84d5 bge.w 41d2e <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xaf6>41384: e7ff b.n 41386 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0x14e>41386: 986e ldr r0, [sp, #440] ; 0x1b841388: f960 010d vld4.8 {d16,d18,d20,d22}, [r0]!4138c: f960 110f vld4.8 {d17,d19,d21,d23}, [r0]41390: ef66 81f6 vorr q12, q11, q1141394: ef62 a1f2 vorr q13, q9, q941398: ef64 c1f4 vorr q14, q10, q104139c: ef60 e1f0 vorr q15, q8, q8413a0: f50d 602c add.w r0, sp, #2752 ; 0xac0413a4: f940 eacf vst1.64 {d30-d31}, [r0]413a8: f100 0120 add.w r1, r0, #32413ac: f941 cacf vst1.64 {d28-d29}, [r1]413b0: 4602 mov r2, r0413b2: f962 caed vld1.64 {d28-d29}, [r2 :128]!413b6: f942 aacf vst1.64 {d26-d27}, [r2]413ba: 3030 adds r0, #48 ; 0x30413bc: f940 8acf vst1.64 {d24-d25}, [r0]413c0: f50d 6330 add.w r3, sp, #2816 ; 0xb00413c4: f103 0c20 add.w ip, r3, #32413c8: f961 8aef vld1.64 {d24-d25}, [r1 :128]413cc: f94c 8aef vst1.64 {d24-d25}, [ip :128]413d0: 4619 mov r1, r3413d2: f941 caed vst1.64 {d28-d29}, [r1 :128]!413d6: f962 8aef vld1.64 {d24-d25}, [r2 :128]413da: f941 8aef vst1.64 {d24-d25}, [r1 :128]413de: f103 0230 add.w r2, r3, #48 ; 0x30413e2: f960 8aef vld1.64 {d24-d25}, [r0 :128]413e6: f942 8aef vst1.64 {d24-d25}, [r2 :128]413ea: 986e ldr r0, [sp, #440] ; 0x1b8413ec: 3040 adds r0, #64 ; 0x40413ee: 906e str r0, [sp, #440] ; 0x1b8413f0: f96c 8aef vld1.64 {d24-d25}, [ip :128]413f4: f50d 601a add.w r0, sp, #2464 ; 0x9a0413f8: f940 8aef vst1.64 {d24-d25}, [r0 :128]413fc: f960 8aef vld1.64 {d24-d25}, [r0 :128]41400: eeb0 0b68 vmov.f64 d0, d2441404: 9808 ldr r0, [sp, #32]41406: ed80 0bba vstr d0, [r0, #744] ; 0x2e84140a: ed90 0bba vldr d0, [r0, #744] ; 0x2e84140e: f50d 622b add.w r2, sp, #2736 ; 0xab041412: f902 071d vst1.8 {d0}, [r2 :64]!41416: f96c 8aef vld1.64 {d24-d25}, [ip :128]4141a: f50d 6c18 add.w ip, sp, #2432 ; 0x9804141e: f94c 8aef vst1.64 {d24-d25}, [ip :128]41422: f96c 8aef vld1.64 {d24-d25}, [ip :128]41426: eeb0 0b69 vmov.f64 d0, d254142a: ed80 0bb2 vstr d0, [r0, #712] ; 0x2c84142e: ed90 0bb2 vldr d0, [r0, #712] ; 0x2c841432: ed82 0b00 vstr d0, [r2]41436: f961 8aef vld1.64 {d24-d25}, [r1 :128]4143a: f50d 6c16 add.w ip, sp, #2400 ; 0x9604143e: f94c 8aef vst1.64 {d24-d25}, [ip :128]41442: f96c 8aef vld1.64 {d24-d25}, [ip :128]41446: eeb0 0b68 vmov.f64 d0, d244144a: ed80 0baa vstr d0, [r0, #680] ; 0x2a84144e: ed90 0baa vldr d0, [r0, #680] ; 0x2a841452: f50d 6c2a add.w ip, sp, #2720 ; 0xaa041456: f90c 071d vst1.8 {d0}, [ip :64]!4145a: f961 8aef vld1.64 {d24-d25}, [r1 :128]4145e: f50d 6114 add.w r1, sp, #2368 ; 0x94041462: f941 8aef vst1.64 {d24-d25}, [r1 :128]41466: f961 8aef vld1.64 {d24-d25}, [r1 :128]4146a: eeb0 0b69 vmov.f64 d0, d254146e: ed80 0ba2 vstr d0, [r0, #648] ; 0x28841472: ed90 0ba2 vldr d0, [r0, #648] ; 0x28841476: ed8c 0b00 vstr d0, [ip]4147a: f963 8aef vld1.64 {d24-d25}, [r3 :128]4147e: f50d 6112 add.w r1, sp, #2336 ; 0x92041482: f941 8aef vst1.64 {d24-d25}, [r1 :128]41486: f961 8aef vld1.64 {d24-d25}, [r1 :128]4148a: eeb0 0b68 vmov.f64 d0, d244148e: ed80 0b9a vstr d0, [r0, #616] ; 0x26841492: ed90 0b9a vldr d0, [r0, #616] ; 0x26841496: f50d 6129 add.w r1, sp, #2704 ; 0xa904149a: f901 071d vst1.8 {d0}, [r1 :64]!4149e: f963 8aef vld1.64 {d24-d25}, [r3 :128]414a2: f50d 6310 add.w r3, sp, #2304 ; 0x900414a6: f943 8aef vst1.64 {d24-d25}, [r3 :128]414aa: f963 8aef vld1.64 {d24-d25}, [r3 :128]414ae: eeb0 0b69 vmov.f64 d0, d25414b2: ed80 0b92 vstr d0, [r0, #584] ; 0x248414b6: ed90 0b92 vldr d0, [r0, #584] ; 0x248414ba: ed81 0b00 vstr d0, [r1]414be: 2342 movs r3, #66 ; 0x42414c0: f88d 38f7 strb.w r3, [sp, #2295] ; 0x8f7414c4: f60d 03f7 addw r3, sp, #2295 ; 0x8f7414c8: f9a3 0c0f vld1.8 {d0[]}, [r3]414cc: ed80 0b8c vstr d0, [r0, #560] ; 0x230414d0: ed90 0b8c vldr d0, [r0, #560] ; 0x230414d4: ed80 0b8e vstr d0, [r0, #568] ; 0x238414d8: ed90 0b8e vldr d0, [r0, #568] ; 0x238414dc: 9b07 ldr r3, [sp, #28]414de: ed83 0b44 vstr d0, [r3, #272] ; 0x110414e2: f50d 6400 add.w r4, sp, #2048 ; 0x800414e6: ed94 0bac vldr d0, [r4, #688] ; 0x2b0414ea: ed93 1b44 vldr d1, [r3, #272] ; 0x110414ee: ed80 0b8a vstr d0, [r0, #552] ; 0x228414f2: ed80 1b88 vstr d1, [r0, #544] ; 0x220414f6: ed90 0b8a vldr d0, [r0, #552] ; 0x228414fa: ed90 1b88 vldr d1, [r0, #544] ; 0x220414fe: ffc0 8c01 vmull.u8 q12, d0, d141502: f50d 6e0c add.w lr, sp, #2240 ; 0x8c041506: f94e 8aef vst1.64 {d24-d25}, [lr :128]4150a: f96e 8aef vld1.64 {d24-d25}, [lr :128]4150e: f50d 6e27 add.w lr, sp, #2672 ; 0xa7041512: f94e 8aef vst1.64 {d24-d25}, [lr :128]41516: ed92 0b00 vldr d0, [r2]4151a: ed93 1b44 vldr d1, [r3, #272] ; 0x1104151e: ed80 0b82 vstr d0, [r0, #520] ; 0x20841522: ed80 1b80 vstr d1, [r0, #512] ; 0x20041526: ed90 0b82 vldr d0, [r0, #520] ; 0x2084152a: ed90 1b80 vldr d1, [r0, #512] ; 0x2004152e: ffc0 8c01 vmull.u8 q12, d0, d141532: f50d 620a add.w r2, sp, #2208 ; 0x8a041536: f942 8aef vst1.64 {d24-d25}, [r2 :128]4153a: f962 8aef vld1.64 {d24-d25}, [r2 :128]4153e: 2281 movs r2, #129 ; 0x8141540: f88d 289f strb.w r2, [sp, #2207] ; 0x89f41544: f60d 029f addw r2, sp, #2207 ; 0x89f41548: f9a2 0c0f vld1.8 {d0[]}, [r2]4154c: ed80 0b76 vstr d0, [r0, #472] ; 0x1d841550: ed90 0b76 vldr d0, [r0, #472] ; 0x1d841554: ed80 0b78 vstr d0, [r0, #480] ; 0x1e041558: ed90 0b78 vldr d0, [r0, #480] ; 0x1e04155c: ed83 0b44 vstr d0, [r3, #272] ; 0x11041560: 4672 mov r2, lr41562: f962 aa6d vld1.16 {d26-d27}, [r2 :128]!41566: f942 8aef vst1.64 {d24-d25}, [r2 :128]4156a: ed90 0bfc vldr d0, [r0, #1008] ; 0x3f04156e: ed93 1b44 vldr d1, [r3, #272] ; 0x11041572: f50d 6405 add.w r4, sp, #2128 ; 0x85041576: f944 aaef vst1.64 {d26-d27}, [r4 :128]4157a: ed80 0b66 vstr d0, [r0, #408] ; 0x1984157e: ed80 1b64 vstr d1, [r0, #400] ; 0x19041582: f964 8aef vld1.64 {d24-d25}, [r4 :128]41586: ed90 0b66 vldr d0, [r0, #408] ; 0x1984158a: ed90 1b64 vldr d1, [r0, #400] ; 0x1904158e: ed80 0b74 vstr d0, [r0, #464] ; 0x1d041592: ed80 1b72 vstr d1, [r0, #456] ; 0x1c841596: ed90 0b74 vldr d0, [r0, #464] ; 0x1d04159a: ed90 1b72 vldr d1, [r0, #456] ; 0x1c84159e: ffc0 ac01 vmull.u8 q13, d0, d1415a2: f50d 6406 add.w r4, sp, #2144 ; 0x860415a6: f944 aaef vst1.64 {d26-d27}, [r4 :128]415aa: f964 aaef vld1.64 {d26-d27}, [r4 :128]415ae: ef58 88ea vadd.i16 q12, q12, q13415b2: f50d 6403 add.w r4, sp, #2096 ; 0x830415b6: f944 8aef vst1.64 {d24-d25}, [r4 :128]415ba: f964 8aef vld1.64 {d24-d25}, [r4 :128]415be: f94e 8aef vst1.64 {d24-d25}, [lr :128]415c2: f962 8aef vld1.64 {d24-d25}, [r2 :128]415c6: ed9c 0b00 vldr d0, [ip]415ca: ed93 1b44 vldr d1, [r3, #272] ; 0x110415ce: f50d 6c00 add.w ip, sp, #2048 ; 0x800415d2: f94c 8aef vst1.64 {d24-d25}, [ip :128]415d6: ed80 0b52 vstr d0, [r0, #328] ; 0x148415da: ed80 1b50 vstr d1, [r0, #320] ; 0x140415de: f96c 8aef vld1.64 {d24-d25}, [ip :128]415e2: ed90 0b52 vldr d0, [r0, #328] ; 0x148415e6: ed90 1b50 vldr d1, [r0, #320] ; 0x140415ea: ed80 0b5e vstr d0, [r0, #376] ; 0x178415ee: ed80 1b5c vstr d1, [r0, #368] ; 0x170415f2: ed90 0b5e vldr d0, [r0, #376] ; 0x178415f6: ed90 1b5c vldr d1, [r0, #368] ; 0x170415fa: ffc0 ac01 vmull.u8 q13, d0, d1415fe: f50d 6c01 add.w ip, sp, #2064 ; 0x81041602: f94c aaef vst1.64 {d26-d27}, [ip :128]41606: f96c aaef vld1.64 {d26-d27}, [ip :128]4160a: ef58 88ea vadd.i16 q12, q12, q134160e: f50d 6cfc add.w ip, sp, #2016 ; 0x7e041612: f94c 8aef vst1.64 {d24-d25}, [ip :128]41616: f96c 8aef vld1.64 {d24-d25}, [ip :128]4161a: f942 8aef vst1.64 {d24-d25}, [r2 :128]4161e: f04f 0c19 mov.w ip, #2541622: f88d c7df strb.w ip, [sp, #2015] ; 0x7df41626: f20d 7cdf addw ip, sp, #2015 ; 0x7df4162a: f9ac 0c0f vld1.8 {d0[]}, [ip]4162e: ed80 0b46 vstr d0, [r0, #280] ; 0x11841632: ed90 0b46 vldr d0, [r0, #280] ; 0x11841636: ed80 0b48 vstr d0, [r0, #288] ; 0x1204163a: ed90 0b48 vldr d0, [r0, #288] ; 0x1204163e: ed83 0b44 vstr d0, [r3, #272] ; 0x11041642: f96e 8aef vld1.64 {d24-d25}, [lr :128]41646: ed90 0bf8 vldr d0, [r0, #992] ; 0x3e04164a: ed93 1b44 vldr d1, [r3, #272] ; 0x1104164e: f50d 6cf2 add.w ip, sp, #1936 ; 0x79041652: f94c 8aef vst1.64 {d24-d25}, [ip :128]41656: ed80 0b36 vstr d0, [r0, #216] ; 0xd84165a: ed80 1b34 vstr d1, [r0, #208] ; 0xd04165e: f96c 8aef vld1.64 {d24-d25}, [ip :128]41662: ed90 0b36 vldr d0, [r0, #216] ; 0xd841666: ed90 1b34 vldr d1, [r0, #208] ; 0xd04166a: ed80 0b44 vstr d0, [r0, #272] ; 0x1104166e: ed80 1b42 vstr d1, [r0, #264] ; 0x10841672: ed90 0b44 vldr d0, [r0, #272] ; 0x11041676: ed90 1b42 vldr d1, [r0, #264] ; 0x1084167a: ffc0 ac01 vmull.u8 q13, d0, d14167e: f50d 6cf4 add.w ip, sp, #1952 ; 0x7a041682: f94c aaef vst1.64 {d26-d27}, [ip :128]41686: f96c aaef vld1.64 {d26-d27}, [ip :128]4168a: ef58 88ea vadd.i16 q12, q12, q134168e: f50d 6cee add.w ip, sp, #1904 ; 0x77041692: f94c 8aef vst1.64 {d24-d25}, [ip :128]41696: f96c 8aef vld1.64 {d24-d25}, [ip :128]4169a: f94e 8aef vst1.64 {d24-d25}, [lr :128]4169e: f962 8aef vld1.64 {d24-d25}, [r2 :128]416a2: ed91 0b00 vldr d0, [r1]416a6: ed93 1b44 vldr d1, [r3, #272] ; 0x110416aa: f50d 61e8 add.w r1, sp, #1856 ; 0x740416ae: f941 8aef vst1.64 {d24-d25}, [r1 :128]416b2: ed80 0b22 vstr d0, [r0, #136] ; 0x88416b6: ed80 1b20 vstr d1, [r0, #128] ; 0x80416ba: f961 8aef vld1.64 {d24-d25}, [r1 :128]416be: ed90 0b22 vldr d0, [r0, #136] ; 0x88416c2: ed90 1b20 vldr d1, [r0, #128] ; 0x80416c6: ed80 0b2e vstr d0, [r0, #184] ; 0xb8416ca: ed80 1b2c vstr d1, [r0, #176] ; 0xb0416ce: ed90 0b2e vldr d0, [r0, #184] ; 0xb8416d2: ed90 1b2c vldr d1, [r0, #176] ; 0xb0416d6: ffc0 ac01 vmull.u8 q13, d0, d1416da: f50d 61ea add.w r1, sp, #1872 ; 0x750416de: f941 aaef vst1.64 {d26-d27}, [r1 :128]416e2: f961 aaef vld1.64 {d26-d27}, [r1 :128]416e6: ef58 88ea vadd.i16 q12, q12, q13416ea: f50d 61e4 add.w r1, sp, #1824 ; 0x720416ee: f941 8aef vst1.64 {d24-d25}, [r1 :128]416f2: f961 8aef vld1.64 {d24-d25}, [r1 :128]416f6: f942 8aef vst1.64 {d24-d25}, [r2 :128]416fa: f96e 8aef vld1.64 {d24-d25}, [lr :128]416fe: a968 add r1, sp, #416 ; 0x1a041700: f961 aaef vld1.64 {d26-d27}, [r1 :128]41704: f50d 6ce2 add.w ip, sp, #1808 ; 0x71041708: f94c 8aef vst1.64 {d24-d25}, [ip :128]4170c: f50d 64e0 add.w r4, sp, #1792 ; 0x70041710: f944 aaef vst1.64 {d26-d27}, [r4 :128]41714: f96c 8aef vld1.64 {d24-d25}, [ip :128]41718: f964 aaef vld1.64 {d26-d27}, [r4 :128]4171c: ef58 88ea vadd.i16 q12, q12, q1341720: f50d 6cde add.w ip, sp, #1776 ; 0x6f041724: f94c 8aef vst1.64 {d24-d25}, [ip :128]41728: f96c 8aef vld1.64 {d24-d25}, [ip :128]4172c: f94e 8aef vst1.64 {d24-d25}, [lr :128]41730: f962 8aef vld1.64 {d24-d25}, [r2 :128]41734: f961 aaef vld1.64 {d26-d27}, [r1 :128]41738: f50d 61dc add.w r1, sp, #1760 ; 0x6e04173c: f941 8aef vst1.64 {d24-d25}, [r1 :128]41740: f50d 6cda add.w ip, sp, #1744 ; 0x6d041744: f94c aaef vst1.64 {d26-d27}, [ip :128]41748: f961 8aef vld1.64 {d24-d25}, [r1 :128]4174c: f96c aaef vld1.64 {d26-d27}, [ip :128]41750: ef58 88ea vadd.i16 q12, q12, q1341754: f50d 61d8 add.w r1, sp, #1728 ; 0x6c041758: f941 8aef vst1.64 {d24-d25}, [r1 :128]4175c: f961 8aef vld1.64 {d24-d25}, [r1 :128]41760: f942 8aef vst1.64 {d24-d25}, [r2 :128]41764: f96e 8aef vld1.64 {d24-d25}, [lr :128]41768: a948 add r1, sp, #288 ; 0x1204176a: f941 8aef vst1.64 {d24-d25}, [r1 :128]4176e: f961 8aef vld1.64 {d24-d25}, [r1 :128]41772: ff88 0938 vqshrn.u16 d0, q12, #841776: ed83 0b3a vstr d0, [r3, #232] ; 0xe84177a: ed93 0b3a vldr d0, [r3, #232] ; 0xe84177e: ed83 0b38 vstr d0, [r3, #224] ; 0xe041782: ed93 0b38 vldr d0, [r3, #224] ; 0xe041786: f962 8aef vld1.64 {d24-d25}, [r2 :128]4178a: a940 add r1, sp, #256 ; 0x1004178c: f941 8aef vst1.64 {d24-d25}, [r1 :128]41790: f961 8aef vld1.64 {d24-d25}, [r1 :128]41794: ff88 1938 vqshrn.u16 d1, q12, #841798: ed83 1b32 vstr d1, [r3, #200] ; 0xc84179c: ed93 1b32 vldr d1, [r3, #200] ; 0xc8417a0: ed83 1b30 vstr d1, [r3, #192] ; 0xc0417a4: ed93 1b30 vldr d1, [r3, #192] ; 0xc0417a8: ed80 0b02 vstr d0, [r0, #8]417ac: ed80 1b00 vstr d1, [r0]417b0: ed90 0b02 vldr d0, [r0, #8]417b4: ed90 1b00 vldr d1, [r0]417b8: eef0 8b40 vmov.f64 d24, d0417bc: eef0 9b41 vmov.f64 d25, d1417c0: f50d 61d4 add.w r1, sp, #1696 ; 0x6a0417c4: f941 8aef vst1.64 {d24-d25}, [r1 :128]417c8: f961 8aef vld1.64 {d24-d25}, [r1 :128]417cc: a94c add r1, sp, #304 ; 0x130417ce: f941 8aef vst1.64 {d24-d25}, [r1 :128]417d2: f961 8aef vld1.64 {d24-d25}, [r1 :128]417d6: aa5c add r2, sp, #368 ; 0x170417d8: f962 aaef vld1.64 {d26-d27}, [r2 :128]417dc: f50d 62d2 add.w r2, sp, #1680 ; 0x690417e0: f942 8aef vst1.64 {d24-d25}, [r2 :128]417e4: f50d 6cd0 add.w ip, sp, #1664 ; 0x680417e8: f94c aaef vst1.64 {d26-d27}, [ip :128]417ec: f962 8aef vld1.64 {d24-d25}, [r2 :128]417f0: f96c aaef vld1.64 {d26-d27}, [ip :128]417f4: ef48 88ea vadd.i8 q12, q12, q13417f8: f50d 62ce add.w r2, sp, #1648 ; 0x670417fc: f942 8aef vst1.64 {d24-d25}, [r2 :128]41800: f962 8aef vld1.64 {d24-d25}, [r2 :128]41804: f941 8aef vst1.64 {d24-d25}, [r1 :128]41808: f961 8aef vld1.64 {d24-d25}, [r1 :128]4180c: a938 add r1, sp, #224 ; 0xe04180e: f941 8aef vst1.64 {d24-d25}, [r1 :128]41812: 9a6f ldr r2, [sp, #444] ; 0x1bc41814: f8dd c158 ldr.w ip, [sp, #344] ; 0x15841818: 4462 add r2, ip4181a: f961 8aef vld1.64 {d24-d25}, [r1 :128]4181e: f942 8a0f vst1.8 {d24-d25}, [r2]41822: 9956 ldr r1, [sp, #344] ; 0x15841824: 3110 adds r1, #1641826: 9156 str r1, [sp, #344] ; 0x15841828: 9953 ldr r1, [sp, #332] ; 0x14c4182a: eb01 72d1 add.w r2, r1, r1, lsr #314182e: f022 0201 bic.w r2, r2, #141832: 1a89 subs r1, r1, r241834: 2900 cmp r1, #041836: f040 8274 bne.w 41d22 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xaea>4183a: e7ff b.n 4183c <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0x604>4183c: f64f 70da movw r0, #65498 ; 0xffda41840: f8ad 066e strh.w r0, [sp, #1646] ; 0x66e41844: f20d 606e addw r0, sp, #1646 ; 0x66e41848: f9e0 0c7f vld1.16 {d16[]-d17[]}, [r0 :16]4184c: f50d 60c8 add.w r0, sp, #1600 ; 0x64041850: f940 0aef vst1.64 {d16-d17}, [r0 :128]41854: f960 0aef vld1.64 {d16-d17}, [r0 :128]41858: f50d 60ca add.w r0, sp, #1616 ; 0x6504185c: f940 0aef vst1.64 {d16-d17}, [r0 :128]41860: f960 0aef vld1.64 {d16-d17}, [r0 :128]41864: a834 add r0, sp, #208 ; 0xd041866: f940 0aef vst1.64 {d16-d17}, [r0 :128]4186a: 2170 movs r1, #112 ; 0x704186c: f8ad 163e strh.w r1, [sp, #1598] ; 0x63e41870: f20d 623e addw r2, sp, #1598 ; 0x63e41874: f9e2 0c7f vld1.16 {d16[]-d17[]}, [r2 :16]41878: f50d 62c2 add.w r2, sp, #1552 ; 0x6104187c: f942 0aef vst1.64 {d16-d17}, [r2 :128]41880: f962 0aef vld1.64 {d16-d17}, [r2 :128]41884: f50d 62c4 add.w r2, sp, #1568 ; 0x62041888: f942 0aef vst1.64 {d16-d17}, [r2 :128]4188c: f962 0aef vld1.64 {d16-d17}, [r2 :128]41890: aa30 add r2, sp, #192 ; 0xc041892: f942 0aef vst1.64 {d16-d17}, [r2 :128]41896: f50d 6330 add.w r3, sp, #2816 ; 0xb004189a: f103 0c20 add.w ip, r3, #324189e: f96c 0aef vld1.64 {d16-d17}, [ip :128]418a2: f50d 6cc0 add.w ip, sp, #1536 ; 0x600418a6: f94c 0aef vst1.64 {d16-d17}, [ip :128]418aa: f96c 0aef vld1.64 {d16-d17}, [ip :128]418ae: f50d 6cbe add.w ip, sp, #1520 ; 0x5f0418b2: f94c 0aef vst1.64 {d16-d17}, [ip :128]418b6: f96c 0aef vld1.64 {d16-d17}, [ip :128]418ba: f50d 7cb0 add.w ip, sp, #352 ; 0x160418be: f96c 2aef vld1.64 {d18-d19}, [ip :128]418c2: f50d 6ebc add.w lr, sp, #1504 ; 0x5e0418c6: f94e 0aef vst1.64 {d16-d17}, [lr :128]418ca: f50d 64ba add.w r4, sp, #1488 ; 0x5d0418ce: f944 2aef vst1.64 {d18-d19}, [r4 :128]418d2: f96e 0aef vld1.64 {d16-d17}, [lr :128]418d6: f964 2aef vld1.64 {d18-d19}, [r4 :128]418da: ef40 01f2 vand q8, q8, q9418de: f50d 6eb8 add.w lr, sp, #1472 ; 0x5c0418e2: f94e 0aef vst1.64 {d16-d17}, [lr :128]418e6: f96e 0aef vld1.64 {d16-d17}, [lr :128]418ea: f50d 6eb6 add.w lr, sp, #1456 ; 0x5b0418ee: f94e 0aef vst1.64 {d16-d17}, [lr :128]418f2: f96e 0aef vld1.64 {d16-d17}, [lr :128]418f6: f50d 6eb4 add.w lr, sp, #1440 ; 0x5a0418fa: f94e 0aef vst1.64 {d16-d17}, [lr :128]418fe: f96e 0aef vld1.64 {d16-d17}, [lr :128]41902: f10d 0eb0 add.w lr, sp, #176 ; 0xb041906: f94e 0aef vst1.64 {d16-d17}, [lr :128]4190a: f103 0410 add.w r4, r3, #164190e: f964 0aef vld1.64 {d16-d17}, [r4 :128]41912: f50d 64b2 add.w r4, sp, #1424 ; 0x59041916: f944 0aef vst1.64 {d16-d17}, [r4 :128]4191a: f964 0aef vld1.64 {d16-d17}, [r4 :128]4191e: f50d 64b0 add.w r4, sp, #1408 ; 0x58041922: f944 0aef vst1.64 {d16-d17}, [r4 :128]41926: f964 0aef vld1.64 {d16-d17}, [r4 :128]4192a: f96c 2aef vld1.64 {d18-d19}, [ip :128]4192e: f50d 64ae add.w r4, sp, #1392 ; 0x57041932: f944 0aef vst1.64 {d16-d17}, [r4 :128]41936: f50d 65ac add.w r5, sp, #1376 ; 0x5604193a: f945 2aef vst1.64 {d18-d19}, [r5 :128]4193e: f964 0aef vld1.64 {d16-d17}, [r4 :128]41942: f965 2aef vld1.64 {d18-d19}, [r5 :128]41946: ef40 01f2 vand q8, q8, q94194a: f50d 64aa add.w r4, sp, #1360 ; 0x5504194e: f944 0aef vst1.64 {d16-d17}, [r4 :128]41952: f964 0aef vld1.64 {d16-d17}, [r4 :128]41956: f50d 64a8 add.w r4, sp, #1344 ; 0x5404195a: f944 0aef vst1.64 {d16-d17}, [r4 :128]4195e: f964 0aef vld1.64 {d16-d17}, [r4 :128]41962: f50d 64a6 add.w r4, sp, #1328 ; 0x53041966: f944 0aef vst1.64 {d16-d17}, [r4 :128]4196a: f964 0aef vld1.64 {d16-d17}, [r4 :128]4196e: ac28 add r4, sp, #160 ; 0xa041970: f944 0aef vst1.64 {d16-d17}, [r4 :128]41974: f963 0aef vld1.64 {d16-d17}, [r3 :128]41978: f50d 63a4 add.w r3, sp, #1312 ; 0x5204197c: f943 0aef vst1.64 {d16-d17}, [r3 :128]41980: f963 0aef vld1.64 {d16-d17}, [r3 :128]41984: f50d 63a2 add.w r3, sp, #1296 ; 0x51041988: f943 0aef vst1.64 {d16-d17}, [r3 :128]4198c: f963 0aef vld1.64 {d16-d17}, [r3 :128]41990: f96c 2aef vld1.64 {d18-d19}, [ip :128]41994: f50d 63a0 add.w r3, sp, #1280 ; 0x50041998: f943 0aef vst1.64 {d16-d17}, [r3 :128]4199c: f50d 6c9e add.w ip, sp, #1264 ; 0x4f0419a0: f94c 2aef vst1.64 {d18-d19}, [ip :128]419a4: f963 0aef vld1.64 {d16-d17}, [r3 :128]419a8: f96c 2aef vld1.64 {d18-d19}, [ip :128]419ac: ef40 01f2 vand q8, q8, q9419b0: f50d 639c add.w r3, sp, #1248 ; 0x4e0419b4: f943 0aef vst1.64 {d16-d17}, [r3 :128]419b8: f963 0aef vld1.64 {d16-d17}, [r3 :128]419bc: f50d 639a add.w r3, sp, #1232 ; 0x4d0419c0: f943 0aef vst1.64 {d16-d17}, [r3 :128]419c4: f963 0aef vld1.64 {d16-d17}, [r3 :128]419c8: f50d 6398 add.w r3, sp, #1216 ; 0x4c0419cc: f943 0aef vst1.64 {d16-d17}, [r3 :128]419d0: f963 0aef vld1.64 {d16-d17}, [r3 :128]419d4: ab24 add r3, sp, #144 ; 0x90419d6: f943 0aef vst1.64 {d16-d17}, [r3 :128]419da: f96e 0aef vld1.64 {d16-d17}, [lr :128]419de: f960 2aef vld1.64 {d18-d19}, [r0 :128]419e2: f50d 6c96 add.w ip, sp, #1200 ; 0x4b0419e6: f94c 0aef vst1.64 {d16-d17}, [ip :128]419ea: f50d 6594 add.w r5, sp, #1184 ; 0x4a0419ee: f945 2aef vst1.64 {d18-d19}, [r5 :128]419f2: f96c 0aef vld1.64 {d16-d17}, [ip :128]419f6: f965 2aef vld1.64 {d18-d19}, [r5 :128]419fa: ef50 09f2 vmul.i16 q8, q8, q9419fe: f50d 6c92 add.w ip, sp, #1168 ; 0x49041a02: f94c 0aef vst1.64 {d16-d17}, [ip :128]41a06: f96c 0aef vld1.64 {d16-d17}, [ip :128]41a0a: f10d 0c80 add.w ip, sp, #128 ; 0x8041a0e: f94c 0aef vst1.64 {d16-d17}, [ip :128]41a12: f96e 0aef vld1.64 {d16-d17}, [lr :128]41a16: f962 2aef vld1.64 {d18-d19}, [r2 :128]41a1a: f50d 6e90 add.w lr, sp, #1152 ; 0x48041a1e: f94e 0aef vst1.64 {d16-d17}, [lr :128]41a22: f50d 658e add.w r5, sp, #1136 ; 0x47041a26: f945 2aef vst1.64 {d18-d19}, [r5 :128]41a2a: f96e 0aef vld1.64 {d16-d17}, [lr :128]41a2e: f965 2aef vld1.64 {d18-d19}, [r5 :128]41a32: ef50 09f2 vmul.i16 q8, q8, q941a36: f50d 6e8c add.w lr, sp, #1120 ; 0x46041a3a: f94e 0aef vst1.64 {d16-d17}, [lr :128]41a3e: f96e 0aef vld1.64 {d16-d17}, [lr :128]41a42: f10d 0e70 add.w lr, sp, #112 ; 0x7041a46: f94e 0aef vst1.64 {d16-d17}, [lr :128]41a4a: f64f 75b6 movw r5, #65462 ; 0xffb641a4e: f8ad 545e strh.w r5, [sp, #1118] ; 0x45e41a52: f20d 455e addw r5, sp, #1118 ; 0x45e41a56: f9e5 0c7f vld1.16 {d16[]-d17[]}, [r5 :16]41a5a: f50d 6586 add.w r5, sp, #1072 ; 0x43041a5e: f945 0aef vst1.64 {d16-d17}, [r5 :128]41a62: f965 0aef vld1.64 {d16-d17}, [r5 :128]41a66: f50d 6588 add.w r5, sp, #1088 ; 0x44041a6a: f945 0aef vst1.64 {d16-d17}, [r5 :128]41a6e: f965 0aef vld1.64 {d16-d17}, [r5 :128]41a72: f940 0aef vst1.64 {d16-d17}, [r0 :128]41a76: f64f 75a2 movw r5, #65442 ; 0xffa241a7a: f8ad 542e strh.w r5, [sp, #1070] ; 0x42e41a7e: f20d 452e addw r5, sp, #1070 ; 0x42e41a82: f9e5 0c7f vld1.16 {d16[]-d17[]}, [r5 :16]41a86: f50d 6580 add.w r5, sp, #1024 ; 0x40041a8a: f945 0aef vst1.64 {d16-d17}, [r5 :128]41a8e: f965 0aef vld1.64 {d16-d17}, [r5 :128]41a92: f50d 6582 add.w r5, sp, #1040 ; 0x41041a96: f945 0aef vst1.64 {d16-d17}, [r5 :128]41a9a: f965 0aef vld1.64 {d16-d17}, [r5 :128]41a9e: f942 0aef vst1.64 {d16-d17}, [r2 :128]41aa2: f96c 0aef vld1.64 {d16-d17}, [ip :128]41aa6: f964 2aef vld1.64 {d18-d19}, [r4 :128]41aaa: f960 4aef vld1.64 {d20-d21}, [r0 :128]41aae: adfc add r5, sp, #1008 ; 0x3f041ab0: f945 0aef vst1.64 {d16-d17}, [r5 :128]41ab4: aef8 add r6, sp, #992 ; 0x3e041ab6: f946 2aef vst1.64 {d18-d19}, [r6 :128]41aba: f50d 7874 add.w r8, sp, #976 ; 0x3d041abe: f948 4aef vst1.64 {d20-d21}, [r8 :128]41ac2: f965 0aef vld1.64 {d16-d17}, [r5 :128]41ac6: f966 2aef vld1.64 {d18-d19}, [r6 :128]41aca: f968 4aef vld1.64 {d20-d21}, [r8 :128]41ace: ef52 09e4 vmla.i16 q8, q9, q1041ad2: adf0 add r5, sp, #960 ; 0x3c041ad4: f945 0aef vst1.64 {d16-d17}, [r5 :128]41ad8: f965 0aef vld1.64 {d16-d17}, [r5 :128]41adc: f94c 0aef vst1.64 {d16-d17}, [ip :128]41ae0: f96e 0aef vld1.64 {d16-d17}, [lr :128]41ae4: f964 2aef vld1.64 {d18-d19}, [r4 :128]41ae8: f962 4aef vld1.64 {d20-d21}, [r2 :128]41aec: acec add r4, sp, #944 ; 0x3b041aee: f944 0aef vst1.64 {d16-d17}, [r4 :128]41af2: ade8 add r5, sp, #928 ; 0x3a041af4: f945 2aef vst1.64 {d18-d19}, [r5 :128]41af8: aee4 add r6, sp, #912 ; 0x39041afa: f946 4aef vst1.64 {d20-d21}, [r6 :128]41afe: f964 0aef vld1.64 {d16-d17}, [r4 :128]41b02: f965 2aef vld1.64 {d18-d19}, [r5 :128]41b06: f966 4aef vld1.64 {d20-d21}, [r6 :128]41b0a: ef52 09e4 vmla.i16 q8, q9, q1041b0e: ace0 add r4, sp, #896 ; 0x38041b10: f944 0aef vst1.64 {d16-d17}, [r4 :128]41b14: f964 0aef vld1.64 {d16-d17}, [r4 :128]41b18: f94e 0aef vst1.64 {d16-d17}, [lr :128]41b1c: f8ad 137e strh.w r1, [sp, #894] ; 0x37e41b20: f20d 317e addw r1, sp, #894 ; 0x37e41b24: f9e1 0c7f vld1.16 {d16[]-d17[]}, [r1 :16]41b28: a9d4 add r1, sp, #848 ; 0x35041b2a: f941 0aef vst1.64 {d16-d17}, [r1 :128]41b2e: f961 0aef vld1.64 {d16-d17}, [r1 :128]41b32: a9d8 add r1, sp, #864 ; 0x36041b34: f941 0aef vst1.64 {d16-d17}, [r1 :128]41b38: f961 0aef vld1.64 {d16-d17}, [r1 :128]41b3c: f940 0aef vst1.64 {d16-d17}, [r0 :128]41b40: f64f 71ee movw r1, #65518 ; 0xffee41b44: f8ad 134e strh.w r1, [sp, #846] ; 0x34e41b48: f20d 314e addw r1, sp, #846 ; 0x34e41b4c: f9e1 0c7f vld1.16 {d16[]-d17[]}, [r1 :16]41b50: a9c8 add r1, sp, #800 ; 0x32041b52: f941 0aef vst1.64 {d16-d17}, [r1 :128]41b56: f961 0aef vld1.64 {d16-d17}, [r1 :128]41b5a: a9cc add r1, sp, #816 ; 0x33041b5c: f941 0aef vst1.64 {d16-d17}, [r1 :128]41b60: f961 0aef vld1.64 {d16-d17}, [r1 :128]41b64: f942 0aef vst1.64 {d16-d17}, [r2 :128]41b68: f96c 0aef vld1.64 {d16-d17}, [ip :128]41b6c: f963 2aef vld1.64 {d18-d19}, [r3 :128]41b70: f960 4aef vld1.64 {d20-d21}, [r0 :128]41b74: a8c4 add r0, sp, #784 ; 0x31041b76: f940 0aef vst1.64 {d16-d17}, [r0 :128]41b7a: a9c0 add r1, sp, #768 ; 0x30041b7c: f941 2aef vst1.64 {d18-d19}, [r1 :128]41b80: acbc add r4, sp, #752 ; 0x2f041b82: f944 4aef vst1.64 {d20-d21}, [r4 :128]41b86: f960 0aef vld1.64 {d16-d17}, [r0 :128]41b8a: f961 2aef vld1.64 {d18-d19}, [r1 :128]41b8e: f964 4aef vld1.64 {d20-d21}, [r4 :128]41b92: ef52 09e4 vmla.i16 q8, q9, q1041b96: a8b8 add r0, sp, #736 ; 0x2e041b98: f940 0aef vst1.64 {d16-d17}, [r0 :128]41b9c: f960 0aef vld1.64 {d16-d17}, [r0 :128]41ba0: f94c 0aef vst1.64 {d16-d17}, [ip :128]41ba4: f96e 0aef vld1.64 {d16-d17}, [lr :128]41ba8: f963 2aef vld1.64 {d18-d19}, [r3 :128]41bac: f962 4aef vld1.64 {d20-d21}, [r2 :128]41bb0: a8b4 add r0, sp, #720 ; 0x2d041bb2: f940 0aef vst1.64 {d16-d17}, [r0 :128]41bb6: a9b0 add r1, sp, #704 ; 0x2c041bb8: f941 2aef vst1.64 {d18-d19}, [r1 :128]41bbc: aaac add r2, sp, #688 ; 0x2b041bbe: f942 4aef vst1.64 {d20-d21}, [r2 :128]41bc2: f960 0aef vld1.64 {d16-d17}, [r0 :128]41bc6: f961 2aef vld1.64 {d18-d19}, [r1 :128]41bca: f962 4aef vld1.64 {d20-d21}, [r2 :128]41bce: ef52 09e4 vmla.i16 q8, q9, q1041bd2: a8a8 add r0, sp, #672 ; 0x2a041bd4: f940 0aef vst1.64 {d16-d17}, [r0 :128]41bd8: f960 0aef vld1.64 {d16-d17}, [r0 :128]41bdc: f94e 0aef vst1.64 {d16-d17}, [lr :128]41be0: f96c 0aef vld1.64 {d16-d17}, [ip :128]41be4: a864 add r0, sp, #400 ; 0x19041be6: f960 2aef vld1.64 {d18-d19}, [r0 :128]41bea: a9a4 add r1, sp, #656 ; 0x29041bec: f941 0aef vst1.64 {d16-d17}, [r1 :128]41bf0: aaa0 add r2, sp, #640 ; 0x28041bf2: f942 2aef vst1.64 {d18-d19}, [r2 :128]41bf6: f961 0aef vld1.64 {d16-d17}, [r1 :128]41bfa: f962 2aef vld1.64 {d18-d19}, [r2 :128]41bfe: ef50 08e2 vadd.i16 q8, q8, q941c02: a99c add r1, sp, #624 ; 0x27041c04: f941 0aef vst1.64 {d16-d17}, [r1 :128]41c08: f961 0aef vld1.64 {d16-d17}, [r1 :128]41c0c: f94c 0aef vst1.64 {d16-d17}, [ip :128]41c10: f96e 0aef vld1.64 {d16-d17}, [lr :128]41c14: f960 2aef vld1.64 {d18-d19}, [r0 :128]41c18: a898 add r0, sp, #608 ; 0x26041c1a: f940 0aef vst1.64 {d16-d17}, [r0 :128]41c1e: a994 add r1, sp, #592 ; 0x25041c20: f941 2aef vst1.64 {d18-d19}, [r1 :128]41c24: f960 0aef vld1.64 {d16-d17}, [r0 :128]41c28: f961 2aef vld1.64 {d18-d19}, [r1 :128]41c2c: ef50 08e2 vadd.i16 q8, q8, q941c30: a890 add r0, sp, #576 ; 0x24041c32: f940 0aef vst1.64 {d16-d17}, [r0 :128]41c36: f960 0aef vld1.64 {d16-d17}, [r0 :128]41c3a: f94e 0aef vst1.64 {d16-d17}, [lr :128]41c3e: f96c 0aef vld1.64 {d16-d17}, [ip :128]41c42: a818 add r0, sp, #96 ; 0x6041c44: f940 0aef vst1.64 {d16-d17}, [r0 :128]41c48: f960 0aef vld1.64 {d16-d17}, [r0 :128]41c4c: efc8 6930 vqshrn.s16 d22, q8, #841c50: 9807 ldr r0, [sp, #28]41c52: edc0 6b0a vstr d22, [r0, #40] ; 0x2841c56: edd0 6b0a vldr d22, [r0, #40] ; 0x2841c5a: edc0 6b08 vstr d22, [r0, #32]41c5e: edd0 6b08 vldr d22, [r0, #32]41c62: edd0 7b56 vldr d23, [r0, #344] ; 0x15841c66: edc0 6b82 vstr d22, [r0, #520] ; 0x20841c6a: edc0 7b80 vstr d23, [r0, #512] ; 0x20041c6e: edd0 6b82 vldr d22, [r0, #520] ; 0x20841c72: edd0 7b80 vldr d23, [r0, #512] ; 0x20041c76: ef46 68a7 vadd.i8 d22, d22, d2341c7a: edc0 6b7e vstr d22, [r0, #504] ; 0x1f841c7e: edd0 6b7e vldr d22, [r0, #504] ; 0x1f841c82: edc0 6b7c vstr d22, [r0, #496] ; 0x1f041c86: edd0 6b7c vldr d22, [r0, #496] ; 0x1f041c8a: edc0 6b7a vstr d22, [r0, #488] ; 0x1e841c8e: edd0 6b7a vldr d22, [r0, #488] ; 0x1e841c92: 9908 ldr r1, [sp, #32]41c94: edc1 6bee vstr d22, [r1, #952] ; 0x3b841c98: f96e 0aef vld1.64 {d16-d17}, [lr :128]41c9c: aa10 add r2, sp, #64 ; 0x4041c9e: f942 0aef vst1.64 {d16-d17}, [r2 :128]41ca2: f962 0aef vld1.64 {d16-d17}, [r2 :128]41ca6: efc8 6930 vqshrn.s16 d22, q8, #841caa: edc0 6b02 vstr d22, [r0, #8]41cae: edd0 6b02 vldr d22, [r0, #8]41cb2: edc0 6b00 vstr d22, [r0]41cb6: edd0 6b00 vldr d22, [r0]41cba: edd0 7b56 vldr d23, [r0, #344] ; 0x15841cbe: edc0 6b78 vstr d22, [r0, #480] ; 0x1e041cc2: edc0 7b76 vstr d23, [r0, #472] ; 0x1d841cc6: edd0 6b78 vldr d22, [r0, #480] ; 0x1e041cca: edd0 7b76 vldr d23, [r0, #472] ; 0x1d841cce: ef46 68a7 vadd.i8 d22, d22, d2341cd2: edc0 6b74 vstr d22, [r0, #464] ; 0x1d041cd6: edd0 6b74 vldr d22, [r0, #464] ; 0x1d041cda: edc0 6b72 vstr d22, [r0, #456] ; 0x1c841cde: edd0 6b72 vldr d22, [r0, #456] ; 0x1c841ce2: edc0 6b70 vstr d22, [r0, #448] ; 0x1c041ce6: edd0 6b70 vldr d22, [r0, #448] ; 0x1c041cea: edc1 6bec vstr d22, [r1, #944] ; 0x3b041cee: f50d 6226 add.w r2, sp, #2656 ; 0xa6041cf2: f962 0acf vld1.64 {d16-d17}, [r2]41cf6: f50d 6225 add.w r2, sp, #2640 ; 0xa5041cfa: f942 0acf vst1.64 {d16-d17}, [r2]41cfe: 9b6f ldr r3, [sp, #444] ; 0x1bc41d00: f8dd c154 ldr.w ip, [sp, #340] ; 0x15441d04: 4463 add r3, ip41d06: f962 671d vld1.8 {d22}, [r2 :64]!41d0a: edd2 7b00 vldr d23, [r2]41d0e: eef0 0b66 vmov.f64 d16, d2241d12: eef0 1b67 vmov.f64 d17, d2341d16: f943 080f vst2.8 {d16-d17}, [r3]41d1a: 9a55 ldr r2, [sp, #340] ; 0x15441d1c: 3210 adds r2, #1641d1e: 9255 str r2, [sp, #340] ; 0x15441d20: e7ff b.n 41d22 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xaea>41d22: e7ff b.n 41d24 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xaec>41d24: 9854 ldr r0, [sp, #336] ; 0x15041d26: 3001 adds r0, #141d28: 9054 str r0, [sp, #336] ; 0x15041d2a: f7ff bb25 b.w 41378 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0x140>41d2e: 986d ldr r0, [sp, #436] ; 0x1b441d30: f020 000f bic.w r0, r0, #1541d34: 9054 str r0, [sp, #336] ; 0x15041d36: e7ff b.n 41d38 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xb00>41d38: 9854 ldr r0, [sp, #336] ; 0x15041d3a: 996d ldr r1, [sp, #436] ; 0x1b441d3c: 4288 cmp r0, r141d3e: da7e bge.n 41e3e <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xc06>41d40: e7ff b.n 41d42 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xb0a>41d42: 986e ldr r0, [sp, #440] ; 0x1b841d44: 7880 ldrb r0, [r0, #2]41d46: f88d 002f strb.w r0, [sp, #47] ; 0x2f41d4a: 986e ldr r0, [sp, #440] ; 0x1b841d4c: 7840 ldrb r0, [r0, #1]41d4e: f88d 002e strb.w r0, [sp, #46] ; 0x2e41d52: 986e ldr r0, [sp, #440] ; 0x1b841d54: 7800 ldrb r0, [r0, #0]41d56: f88d 002d strb.w r0, [sp, #45] ; 0x2d41d5a: 986e ldr r0, [sp, #440] ; 0x1b841d5c: 3004 adds r0, #441d5e: 906e str r0, [sp, #440] ; 0x1b841d60: f89d 002f ldrb.w r0, [sp, #47] ; 0x2f41d64: eb00 1040 add.w r0, r0, r0, lsl #541d68: f89d 102e ldrb.w r1, [sp, #46] ; 0x2e41d6c: eb01 11c1 add.w r1, r1, r1, lsl #741d70: eb01 0040 add.w r0, r1, r0, lsl #141d74: f89d 102d ldrb.w r1, [sp, #45] ; 0x2d41d78: 2219 movs r2, #2541d7a: fb11 0002 smlabb r0, r1, r2, r041d7e: 3080 adds r0, #128 ; 0x8041d80: 2110 movs r1, #1641d82: eb01 2010 add.w r0, r1, r0, lsr #841d86: f88d 002c strb.w r0, [sp, #44] ; 0x2c41d8a: f89d 002f ldrb.w r0, [sp, #47] ; 0x2f41d8e: f06f 0125 mvn.w r1, #37 ; 0x2541d92: fb10 f001 smulbb r0, r0, r141d96: f89d 102e ldrb.w r1, [sp, #46] ; 0x2e41d9a: 224a movs r2, #74 ; 0x4a41d9c: fb01 0012 mls r0, r1, r2, r041da0: f89d 102d ldrb.w r1, [sp, #45] ; 0x2d41da4: ebc1 01c1 rsb r1, r1, r1, lsl #341da8: eb00 1001 add.w r0, r0, r1, lsl #441dac: 3080 adds r0, #128 ; 0x8041dae: 2180 movs r1, #128 ; 0x8041db0: eb01 2010 add.w r0, r1, r0, lsr #841db4: f88d 002b strb.w r0, [sp, #43] ; 0x2b41db8: f89d 002f ldrb.w r0, [sp, #47] ; 0x2f41dbc: ebc0 00c0 rsb r0, r0, r0, lsl #341dc0: f89d 202e ldrb.w r2, [sp, #46] ; 0x2e41dc4: 235e movs r3, #94 ; 0x5e41dc6: fb12 f203 smulbb r2, r2, r341dca: ebc2 1000 rsb r0, r2, r0, lsl #441dce: f89d 202d ldrb.w r2, [sp, #45] ; 0x2d41dd2: eb02 02c2 add.w r2, r2, r2, lsl #341dd6: eba0 0042 sub.w r0, r0, r2, lsl #141dda: 3080 adds r0, #128 ; 0x8041ddc: eb01 2010 add.w r0, r1, r0, lsr #841de0: f88d 002a strb.w r0, [sp, #42] ; 0x2a41de4: f89d 002c ldrb.w r0, [sp, #44] ; 0x2c41de8: 996f ldr r1, [sp, #444] ; 0x1bc41dea: 9a56 ldr r2, [sp, #344] ; 0x15841dec: 1c53 adds r3, r2, #141dee: 9356 str r3, [sp, #344] ; 0x15841df0: 5488 strb r0, [r1, r2]41df2: 9853 ldr r0, [sp, #332] ; 0x14c41df4: eb00 71d0 add.w r1, r0, r0, lsr #3141df8: f021 0101 bic.w r1, r1, #141dfc: 1a40 subs r0, r0, r141dfe: 2800 cmp r0, #041e00: d118 bne.n 41e34 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xbfc>41e02: e7ff b.n 41e04 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xbcc>41e04: 9854 ldr r0, [sp, #336] ; 0x15041e06: eb00 71d0 add.w r1, r0, r0, lsr #3141e0a: f021 0101 bic.w r1, r1, #141e0e: 1a40 subs r0, r0, r141e10: 2800 cmp r0, #041e12: d10f bne.n 41e34 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xbfc>41e14: e7ff b.n 41e16 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xbde>41e16: f89d 002a ldrb.w r0, [sp, #42] ; 0x2a41e1a: 996f ldr r1, [sp, #444] ; 0x1bc41e1c: 9a55 ldr r2, [sp, #340] ; 0x15441e1e: 1c53 adds r3, r2, #141e20: 9355 str r3, [sp, #340] ; 0x15441e22: 5488 strb r0, [r1, r2]41e24: f89d 002b ldrb.w r0, [sp, #43] ; 0x2b41e28: 996f ldr r1, [sp, #444] ; 0x1bc41e2a: 9a55 ldr r2, [sp, #340] ; 0x15441e2c: 1c53 adds r3, r2, #141e2e: 9355 str r3, [sp, #340] ; 0x15441e30: 5488 strb r0, [r1, r2]41e32: e7ff b.n 41e34 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xbfc>41e34: e7ff b.n 41e36 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xbfe>41e36: 9854 ldr r0, [sp, #336] ; 0x15041e38: 3001 adds r0, #141e3a: 9054 str r0, [sp, #336] ; 0x15041e3c: e77c b.n 41d38 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xb00>41e3e: e7ff b.n 41e40 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xc08>41e40: 9853 ldr r0, [sp, #332] ; 0x14c41e42: 3001 adds r0, #141e44: 9053 str r0, [sp, #332] ; 0x14c41e46: f7ff ba8e b.w 41366 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0x12e>41e4a: 4809 ldr r0, [pc, #36] ; (41e70 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xc38>)41e4c: 4478 add r0, pc41e4e: 6800 ldr r0, [r0, #0]41e50: 6800 ldr r0, [r0, #0]41e52: 9909 ldr r1, [sp, #36] ; 0x2441e54: 4288 cmp r0, r141e56: d106 bne.n 41e66 <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xc2e>41e58: e7ff b.n 41e5a <_Z30encodeYUV420SP_NEON_IntrinsicsPhS_ii+0xc22>41e5a: f1a7 0418 sub.w r4, r7, #2441e5e: 46a5 mov sp, r441e60: e8bd 0b00 ldmia.w sp!, {r8, r9, fp}41e64: bdf0 pop {r4, r5, r6, r7, pc}41e66: f7f8 ec6e blx 3a744 <__stack_chk_fail@plt>41e6a: bf00 nop41e6c: 001ef0f8 .word 0x001ef0f841e70: 001ee50c .word 0x001ee50c
Neon 版在我的手机上是 “负优化” 。。。跑得比朴素 CPU 还慢。。。看来网上给的 NEON 代码也未必靠谱,还是得亲自实践对比!
经过我的优化后,NEON 版达到了 53ms 左右,展开(一次)版是51 ms左右,原图大小为 1600*1873
RGBA 编码为 YUV420SP【NEON】相关推荐
- RGBA、YUV色彩格式及libyuv的使用
最近一段时间因为工作的需要,要使用到libyuv.因为之前写录制视频的时候,也要用到rgb转yuv,自己结合网上的资料做了个实现,记录了点笔记,现在索性一起整理下. 常用的色彩格式 常见的色彩格式主要 ...
- ARM Cortex-A 系列编程指南之ARMv8-A(AArch64浮点与NEON)
目录 AArch64浮点与NEON技术 AArch64中NEON和浮点的新特性 NEON和浮点架构 浮点 标量数据和 NEON 浮点参数 AArch64 NEON指令格式 NEON 编码的替代方案 A ...
- android视频处理之动态时间水印效果
最近的项目中遇到一个非常头痛的需求,在android端录制视频的时候动态添加像监控画面一样的精确到秒的时间信息,关键是,并不是说只在播放器的界面显示时间就可以了,而是录制到视频里面去,这个MP4在电脑 ...
- 虚幻引擎 4 14 版发布
Share on Facebook Share on Twitter Share on Google+ Share on LinkedIn 此版包含 Epic 的数百项更新,以及 GitHub 虚幻引 ...
- android手机远程视频移动检测的实践
家中老人高龄,为防止意外跌倒,需要时刻看护,于是想到用视频监控代替部分注意力.远程视频移动监测的方案有很多种,因为以前在手机上做了类似工作,参见用安卓手机实现视频监控,在此基础之上增加移动监测报警功能 ...
- OpenCV图像知识
关于mat函数 看不懂系列:不过感觉好像挺全的,就粘过来了 https://blog.csdn.net/listener51/article/details/46117601#t0 (全) http: ...
- android camera 预览 数据流,camera,SurfaceView实时预览获取帧数据,在手机上总是闪退...
请教各位关于用camera类做一个关于预览SurfaceView,然后通过 public void onPreviewFrame(byte[] data, Camera camera)获取data转换 ...
- 虚幻引擎 4.14 版发布!
Share on Facebook Share on Twitter Share on Google+ Share on LinkedIn 此版包含 Epic 的数百项更新,以及 GitHub 虚幻引 ...
- dm8127 A8 yuv420sp 送入到videoM3编码--已经解决
NULL link->ipcFrameoutHost->ipcFramesIn(vidoeFromHost)->enclink->ipcFramesOut(videoToHos ...
最新文章
- 省高校计算机等级考试二级,湖南省高校计算机等级考试二级考试0810.ppt
- 多线程--GCD的基本用法
- 【STM32】PWM 输出实验代码详解
- JAVA面试常考系列十
- 斗地主AI算法——第三章の数据处理
- 关于JVM的几个问题
- java在线支付---05_在线支付_编写用于准备请求数据的Servlet
- Tipard Screen Capture for Mac如何掌握音频?速来看
- linux工程常用的应用命令总结:
- java jtable 监听_【Java】在JTable中设置鼠标监听器,点击操作对应数据
- matlab 模拟滤波器,基于MATLAB的模拟滤波器设计
- 小程序车型品牌车系三级选择(地区也一样)
- T检验和p-value含义及计算公式
- 家庭“好用”优化师:每一件好物都是在积攒生活闪光
- 批量更改图像分辨率到统一大小
- IDF2012媒体日:全新云计算解决方案
- JStorm和Storm比较
- 逗塔战争TD新人入门图文攻略
- 【算法】如何给100亿个数字排序?
- 怎么把文字在线转换成语音?