Skip to content

Commit

Permalink
Removed Cortex-A from comment (#9)
Browse files Browse the repository at this point in the history
* Removed Cortex-A from comment
* Use CMSIS-DSP intrinsics rather than arm_acle for better portability (and to reenable the web build)
* Fix ubuntu version in gh action
  • Loading branch information
christophe0606 authored Jan 28, 2025
1 parent 550ded1 commit 615d2bd
Show file tree
Hide file tree
Showing 39 changed files with 324 additions and 232 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/runtest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permissions:

jobs:
CI_test_run:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

steps:
- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion ARM.CMSIS-CV.pdsc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<components>
<!-- CMSIS-CV component -->
<component Cclass="CMSIS" Cgroup="CV" Cvariant="Source" Cversion="0.0.0" isDefaultVariant="true" condition="CMSISDSPLIB">
<description>CMSIS-CV Library for Cortex-M and Cortex-A</description>
<description>CMSIS-CV Library for Cortex-M</description>
<files>
<!-- CPU independent -->
<file category="doc" name="Documentation/html/index.html"/>
Expand Down
2 changes: 1 addition & 1 deletion Documentation/Doxygen/src/mainpage.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Introduction

This user manual describes the CMSIS CV software library, a suite of common computer vision processing functions for use on Cortex-M and Cortex-A processor based devices.
This user manual describes the CMSIS CV software library, a suite of common computer vision processing functions for use on Cortex-M processor based devices.

It is a work in progress that has just started. API is not yet stable and will evolve for a few releases.

Expand Down
2 changes: 1 addition & 1 deletion Include/arm_cv.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: General header from CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Include/arm_cv_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: Common declarations for CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Include/arm_cv_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: Datatypes CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Include/arm_cv_types_f16.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: float16 types for CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Include/cv/color_transforms.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: Color transforms for CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Include/cv/feature_detection.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: Feature detection for CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Include/cv/image_transforms.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: Image transformations for CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Include/cv/linear_filters.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: Linear 2D filters for CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion PrivateInclude/arm_image_resize_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_image_resize_common.h
* Description: Common declarations for CMSIS-CV image resize functions
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 Himax Technologies, Inc. or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion PrivateInclude/arm_linear_filter_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_image_resize_common.h
* Description: Common declarations for CMSIS-CV image resize functions
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 Himax Technologies, Inc. or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion PrivateInclude/arm_linear_filter_generator.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: common code used by different linear filter functions
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

CMSIS-CV is an optimized computer vision library for embedded systems.

It provides optimized compute kernels for Cortex-M and for Cortex-A.
It provides optimized compute kernels for Cortex-M.

Different variants are available according to the core and most of the functions are using a vectorized version when the Helium or Neon extension is available.

Expand Down
2 changes: 1 addition & 1 deletion Source/ColorTransforms/arm_bgr_8U3C_to_gray8.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_bgr_8U3C_to_gray8
* Description: Convertion of planar BGR to gray8
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ColorTransforms/arm_bgr_8U3C_to_rgb24.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_bgr_8U3C_to_rgb24
* Description: Convertion of planar BGR to RGB24
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ColorTransforms/arm_gray8_to_rgb24.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_gray8_to_rgb24
* Description: Convertion of gray8 to rgb24
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ColorTransforms/arm_rgb24_to_gray8.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_rbg24_to_gray8
* Description: Convertion of rgb24 to gray8
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ColorTransforms/arm_yuv420_to_gray8.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_yuv240_to_gray8
* Description: Convertion of yuv240 to gray8
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ColorTransforms/arm_yuv420_to_rgb24.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_yuv240_to_rgb24
* Description: Convertion of yuv240 to rgb24
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/FeatureDetection/arm_cannysobel.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* filter)
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ImageTransforms/arm_crop_gray8.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_crop_gray8
* Description: Cropping of grayscale image
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ImageTransforms/arm_crop_rgb24.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_crop_gray8
* Description: Cropping of grayscale image
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ImageTransforms/arm_image_resize_bgr_8U3C_f32.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_image_resize_bgr_8U3C
* Description: image resize of planar BGR
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 Himax Technologies, Inc. or its affiliates. All rights reserved.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_image_resize_bgr_8U3C_to_rgb24_f32
* Description: image resize of planar BGR8U3C to RGB24
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 Himax Technologies, Inc. or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ImageTransforms/arm_image_resize_common_f32.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_image_resize_common
* Description: common code used by different resize functions
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 Himax Technologies, Inc. or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/ImageTransforms/arm_image_resize_gray8_f32.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Title: arm_image_resize_gray8
* Description: image resize of gray8
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 Himax Technologies, Inc. or its affiliates. All rights reserved.
Expand Down
8 changes: 5 additions & 3 deletions Source/LinearFilters/arm_gaussian.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* filter
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand All @@ -27,7 +27,9 @@

#include "cv/linear_filters.h"
#include "dsp/basic_math_functions.h"
#include "arm_acle.h"
#include "dsp/none.h"


// The kernel applied by this filter is [1,2,1]
// [2,4,2]
// [1,2,1]
Expand All @@ -37,7 +39,7 @@
// This macro is in fact two operation at once,
// first the conversion from q6 to uint8/q0
// second the division per 16, necessary to have the sum of the coeficients in our gaussian equal to 1
#define CONVERSION_GAUSSIAN_Q6TO_U8_AND_DIV_16(a) __ssat(((a) >> 10),16)
#define CONVERSION_GAUSSIAN_Q6TO_U8_AND_DIV_16(a) __SSAT(((a) >> 10),16)

// Apply a kernel [1,2,1] in q3 so [0x08,0x10,0x08] to the input data
// This macro will be applied two time on each pixel.
Expand Down
8 changes: 5 additions & 3 deletions Source/LinearFilters/arm_gaussian_5x5.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* filter
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand All @@ -27,7 +27,9 @@

#include "cv/linear_filters.h"
#include "dsp/basic_math_functions.h"
#include "arm_acle.h"
#include "dsp/none.h"


// The kernel applied by this filter is [1, 4, 6, 4, 1] /256
// [4,16,24,16, 4]
// [6,24,36,24, 6]
Expand All @@ -36,7 +38,7 @@
// it also can be seen as applying the kernel [1,4,6,4,1] one time on the line and one time on the column sum is 256

// Macro dividing the input value by 256, necessary to normalise the kernel of the gaussian
#define DIV_256(a) __ssat(((a) >> 8), 16)
#define DIV_256(a) __SSAT(((a) >> 8), 16)

// Apply the kernel [1, 4, 6, 4, 1] to the input values
#define VERTICAL_COMPUTE_SCALAR(data_0, data_1, data_2, data_3, data_4) \
Expand Down
9 changes: 5 additions & 4 deletions Source/LinearFilters/arm_gaussian_7x7_buffer_15.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* filter
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand All @@ -27,7 +27,8 @@

#include "cv/linear_filters.h"
#include "dsp/basic_math_functions.h"
#include "arm_acle.h"
#include "dsp/none.h"

// #define BUFFER_TYPE q15_t
// The kernel applied by this filter is [ 4, 14, 28, 36, 28, 14, 4] /4096
// [14, 49, 98,126, 98, 49,14]
Expand All @@ -41,7 +42,7 @@
// 256

// Macro dividing the input value by 256, necessary to normalise the kernel of the gaussian
#define DIV_256(a) __ssat(((a) >> 8),16)
#define DIV_256(a) __SSAT(((a) >> 8),16)

// Apply the kernel [2, 7, 14, 18, 14, 7, 2] to the input values
#define KERNEL_APPLICATION(data_0, data_1, data_2, data_3, data_4, data_5, data_6) \
Expand All @@ -52,7 +53,7 @@
// value of 64 * 255, the second application can lead to a max value of 64*64 ** 255 that can overflow int16 this shift
// lead to a loss of precision in some cases
#define VERTICAL_COMPUTE_SCALAR(data_0, data_1, data_2, data_3, data_4, data_5, data_6) \
__ssat(KERNEL_APPLICATION(data_0, data_1, data_2, data_3, data_4, data_5, data_6) >> 4, 16)
__SSAT(KERNEL_APPLICATION(data_0, data_1, data_2, data_3, data_4, data_5, data_6) >> 4, 16)

// The horizontal computation consist of applying the kernel and shifting by 8 on the left. the sum of the coeficient of
// the kernel is 4096, so shift by 12, but we already shifted by 4 in the vertical part
Expand Down
6 changes: 3 additions & 3 deletions Source/LinearFilters/arm_gaussian_7x7_buffer_31.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* filter
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand All @@ -27,7 +27,7 @@

#include "cv/linear_filters.h"
#include "dsp/basic_math_functions.h"
#include "arm_acle.h"
#include "dsp/none.h"

// #define BUFFER_TYPE q15_t
// The kernel applied by this filter is [ 4, 14, 28, 36, 28, 14, 4] /4096
Expand All @@ -42,7 +42,7 @@
// 256

// Macro dividing the input value by 256, necessary to normalise the kernel of the gaussian
#define DIV_256(a) __ssat(((a) >> 8), 32)
#define DIV_256(a) __SSAT(((a) >> 8), 32)

// Apply the kernel [2, 7, 14, 18, 14, 7, 2] to the input values
#define KERNEL_APPLICATION(data_0, data_1, data_2, data_3, data_4, data_5, data_6) \
Expand Down
2 changes: 1 addition & 1 deletion Source/LinearFilters/arm_sobel_horizontal.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: Sobel filter on y axis filter CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion Source/LinearFilters/arm_sobel_vertical.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Description: Sobel filter on x axis filter CMSIS-CV
*
*
* Target Processor: Cortex-M and Cortex-A cores
* Target Processor: Cortex-M
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2014 ARM Limited or its affiliates. All rights reserved.
Expand Down
Loading

0 comments on commit 615d2bd

Please sign in to comment.