From 21be9122aadf7824efe3fc19b2a09ff253a688e1 Mon Sep 17 00:00:00 2001 From: lixia zhang Date: Wed, 4 Jul 2018 18:40:48 +0800 Subject: libyuv:loongson optimize compare/row/scale/rotate files with mmi. Currently, libyuv supports MIPS SIMD Arch(MSA), but libyuv does not supports MultiMedia Instruction(MMI)(such as loongson3a platform). In order to improve performance of libyuv on loongson3a platform, this provides optimize 98 functions with mmi. BUG=libyuv:804 Change-Id: I8947626009efad769b3103a867363ece25d79629 Reviewed-on: https://chromium-review.googlesource.com/1122064 Commit-Queue: Frank Barchard Reviewed-by: Frank Barchard --- source/convert_from.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source/convert_from.cc') diff --git a/source/convert_from.cc b/source/convert_from.cc index 6fa25323..cb5b4b51 100644 --- a/source/convert_from.cc +++ b/source/convert_from.cc @@ -302,6 +302,14 @@ int I420ToYUY2(const uint8_t* src_y, } } #endif +#if defined(HAS_I422TOYUY2ROW_MMI) + if (TestCpuFlag(kCpuHasMMI)) { + I422ToYUY2Row = I422ToYUY2Row_Any_MMI; + if (IS_ALIGNED(width, 8)) { + I422ToYUY2Row = I422ToYUY2Row_MMI; + } + } +#endif for (y = 0; y < height - 1; y += 2) { I422ToYUY2Row(src_y, src_u, src_v, dst_yuy2, width); @@ -381,6 +389,14 @@ int I422ToUYVY(const uint8_t* src_y, } } #endif +#if defined(HAS_I422TOUYVYROW_MMI) + if (TestCpuFlag(kCpuHasMMI)) { + I422ToUYVYRow = I422ToUYVYRow_Any_MMI; + if (IS_ALIGNED(width, 8)) { + I422ToUYVYRow = I422ToUYVYRow_MMI; + } + } +#endif for (y = 0; y < height; ++y) { I422ToUYVYRow(src_y, src_u, src_v, dst_uyvy, width); @@ -448,6 +464,14 @@ int I420ToUYVY(const uint8_t* src_y, } } #endif +#if defined(HAS_I422TOUYVYROW_MMI) + if (TestCpuFlag(kCpuHasMMI)) { + I422ToUYVYRow = I422ToUYVYRow_Any_MMI; + if (IS_ALIGNED(width, 8)) { + I422ToUYVYRow = I422ToUYVYRow_MMI; + } + } +#endif for (y = 0; y < height - 1; y += 2) { I422ToUYVYRow(src_y, src_u, src_v, dst_uyvy, width); -- cgit v1.2.3