Skip to content

Commit a5162cf

Browse files
committed
Update README.md
1 parent 285ae3b commit a5162cf

File tree

1 file changed

+40
-37
lines changed

1 file changed

+40
-37
lines changed

README.md

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -15,51 +15,54 @@
1515

1616
## Features
1717

18-
#### In this version ( ver1.1.0)
18+
#### In this version (ver1.1.0)
1919

20-
The Arm-2D library provides **Low-Level 2D Image Processing Services** that are mainly used in **Deep Embedded Display system**. The supported features include but not limited to:
20+
The Arm-2D library provides **Low-Level 2D Image Processing Services** mainly used in **Deep Embedded Display system**. The supported features include but not limited to:
2121

22-
- **Support Accelerating LVGL** (**v8.3.0** or newer)
22+
- **Supports Accelerating LVGL** (**v8.3.0** or newer)
2323
- **CMSIS-Pack is available.**
24-
- **Alpha-Blending** / **Alpha-Masking**
24+
- **Alpha-Blending** / **Masks**
2525
- With or without Colour-Keying
26-
- Filling-Colour with an Alpha-Mask
27-
- For drawing icons/texts with anti-alias in a specified colour
28-
- Supports an optional ***Opacity*** ratio can be applied.
26+
- Filling-Colour with an mask
27+
- For drawing anti-alias icons/texts in a specified colour
28+
- Supports an optional ***Opacity***.
29+
- Supports A2, A4 and A8 masks
2930
- **Image Copy (Tiling)**
30-
- With or without Colour-Keying (a.k.a colour masking)
31+
- With or without Colour-Keying
3132
- Supports four mirroring modes: No-mirroring, X-mirroring, Y-mirroring and XY-mirroring
32-
- Supports **alpha masks** on the source side and/or the target side
33+
- Supports **masks** on the source side and/or the target side
3334
- **Supported Colour formats**
34-
- **Gray8 (8-bit Grayscale)**, **RGB565** and **RGB888**
35-
- Generic **8bit colour**, **RGB16** and **RGB32**
36-
- Converting colour formats among **GRAY8**, **RGB565** and **RGB888** for any given tiles
37-
- A2, A4 and A8 masks
38-
- **Region/Window Clipping**
35+
- **GRAY8 (8-bit Grayscale)**, **RGB565** and **RGB888**
36+
- Generic **C8BIT (8bit colour)**, **RGB16** and **RGB32**
37+
- Converting colour formats among **GRAY8**, **RGB565** and **RGB888**
38+
- **Region Clipping**
3939
- **Generic Partial Frame-buffer (PFB)**
40-
- Transparent for upper layer software/GUI services
40+
- Transparent for software/GUI services on upper layers
4141
- Easy to Use
42-
- No limitation on target screen resolution
43-
- No limitation on PFB size and shape (it could be a line or a rectangular with any size)
44-
- Supports the **Dirty Regions** when performing the low level refreshing
42+
- No limitation on screen resolution **(See note)**
43+
- No limitation on PFB size and shape (it could be a line or a rectangular with any size) **(See note)**
44+
- Supports **Dirty Regions** for refreshing specified areas only
4545
- Supports swapping high and low bytes for RGB16 pixels
4646
- Introduce a **Scene Player** with various scene switching modes (Fade-In-Fade-Out, Slide, Erase etc.)
47-
- Support Various Buffer Modes with a built-in framebuffer pool.
47+
- Support various Buffer Modes with a built-in framebuffer pool.
4848
- Single Buffer/Double-Buffers/Three-Buffers
4949
- Direct Mode
5050
- Enhanced Asynchronous Flushing Support (i.e. DMA + ISR)
51+
52+
**NOTE**: As long as the size is smaller than 32767 * 32767.
53+
5154
- **Transform** (i.e. rotation and scaling)
52-
- Supports Colour-keying by default
55+
- Supports Colour-keying
5356
- Supports an optional **Opacity** ratio
54-
- Supports the Anti-Alias feature.
55-
- You can enable it by defining macro `__ARM_2D_HAS_ANTI_ALIAS_TRANSFORM__` to `1` at **compile-time**.
56-
- Support source masks
57+
- Supports Anti-Alias.
58+
- You can enable it by defining the macro `__ARM_2D_HAS_ANTI_ALIAS_TRANSFORM__` to `1` at **compile-time**.
59+
- Supports source masks
5760
- **An Unified and User-Friendly Programmers' Model**
58-
- APIs can be used in **Synchronous** manner ( **Classic and Blocking** ) and/or **Asynchronous** manner ( **Event-Driven** )
59-
- Supports both **bare-metal** and **RTOS** environment
61+
- APIs can be used in **Synchronous** manner ( **Classic Blocking-code** ) and/or **Asynchronous** manner ( **Event-Driven** )
62+
- Supports both **bare-metal** and **RTOS** environments
6063
- Ultra small memory footprint
6164
- **Support Virtual Resource**
62-
- Support loading resources from external memories which is not mapped to 4G memory space
65+
- Supports loading resources in on-demand manner from external memories that are not mapped into the 4G memory space.
6366

6467

6568

@@ -68,7 +71,7 @@ The Arm-2D library provides **Low-Level 2D Image Processing Services** that are
6871

6972
- Image Filters, e.g. Generic Anti-aliasing algorithms
7073
- Stretch and Perspective Transform
71-
- DMAC-350 Support
74+
- Supports DMAC-350
7275

7376

7477

@@ -133,9 +136,9 @@ When we look at the traditionally embedded GUI architecture(as shown in **Figur
133136

134137
**The library is designed with ACI (Arm Custom Instructions) in mind.** Accelerations implemented with user-defined instructions can be integrated into the library easily without modifying the existing Arm-2D library or upper-layer software.
135138

136-
**The library is designed with 2D image accelerators in mind and following the feature agnostic principle.** The Support for accelerators can be added easily without modifying the existing Arm-2D library or upper-layer software.
139+
**The library is designed with 2D image accelerators in mind and following the feature-agnostic principle.** The Support for accelerators can be added easily without modifying the existing Arm-2D library or upper-layer software.
137140

138-
**The library is designed with resource constraints in mind.** **For Cortex-M processors with 4K~32K SRAM that cannot afford a full-frame-buffer**, Arm-2D introduces a feature called **Generic Partial Frame-buffer** enabling those existing MCUs to run GUI applications by practicing time-space exchange schemes while still enjoying a decent frame rate.
141+
**The library is designed with resource constraints in mind.** **For Cortex-M processors with 4K~32K SRAM that cannot afford a complete-framebuffer**, Arm-2D introduces a feature called **Generic Partial Framebuffer** enabling those existing MCUs to run GUI applications in a decent frame rate.
139142

140143

141144

@@ -153,12 +156,12 @@ When we look at the traditionally embedded GUI architecture(as shown in **Figur
153156

154157
#### 1.5.1 Summary
155158

156-
| Projects | Description | Folder | Note |
157-
| ---------------------------------- | ------------------------------------------------------------ | ------------------------------------------- | ------------------------- |
158-
| benchmark | It is an **ALL-IN-ONE** example that demonstrates almost all features provided by Arm-2D. By setting different PFB sizes, you can evaluate the 2D image processing capability for the target system. | examples/benchmark | Can be used as benchmark. |
159-
| watch_panel | It is a dedicated example of a smart-watch-like panel. A pointer and two gears rotate at different angular velocities on a translucent watch panel with a dynamic background. | examples/watch_panel | Can be used as benchmark |
160-
| \[template\]\[bare-metal\]\[pfb\] | It is a project template for the bare-metal environment. | examples/\[template\]\[bare-metal\]\[pfb\] | Project Template |
161-
| \[template\]\[cmsis-rtos2\]\[pfb\] | It is a project template for the RTOS environment, which use CMSIS-RTO2 as an example to show how Arm-2D can work with an RTOS. | examples/\[template\]\[cmsis-rtos2\]\[pfb\] | Project Template |
159+
| Projects | Description | Folder | Note |
160+
| ---------------------------------- | ------------------------------------------------------------ | ------------------------------------------- | ---------------------- |
161+
| benchmark | It is an **ALL-IN-ONE** example that demonstrates almost all features provided by Arm-2D. By setting different PFB sizes, you can evaluate the 2D image processing capability for the target system. | examples/benchmark | **Used as benchmark.** |
162+
| watch_panel | It is a dedicated example of a smart-watch-like panel. A pointer and two gears rotate at different angular velocities on a translucent watch panel with a dynamic background. | examples/watch_panel | **Used as benchmark** |
163+
| \[template\]\[bare-metal\]\[pfb\] | It is a project template for the bare-metal environment. | examples/\[template\]\[bare-metal\]\[pfb\] | Project Template |
164+
| \[template\]\[cmsis-rtos2\]\[pfb\] | It is a project template for the RTOS environment, which use CMSIS-RTO2 as an example to show how Arm-2D can work with an RTOS. | examples/\[template\]\[cmsis-rtos2\]\[pfb\] | Project Template |
162165

163166

164167

@@ -353,7 +356,7 @@ def_low_lv_io(__ARM_2D_IO_FILL_RGB32, __arm_2d_rgb32_sw_tile_fill);
353356
- The generic Anti-aliasing algorithms haven't been introduced, but anti-alias in transform (i.e. rotation and scaling) is supported.
354357
- The library currently only provides default software algorithms and a **[Helium](https://developer.arm.com/architectures/instruction-sets/simd-isas/helium) based acceleration library**.
355358
- Although planned and implemented, the [ACI (Arm Custom Instruction)](https://developer.arm.com/architectures/instruction-sets/custom-instructions) acceleration solutions are not open-source for now. Please contact local Arm FAE for details.
356-
- The provided example projects only run on [MPS2](https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps2), [MPS3](https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3), [FVP](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/cortex-m-platforms-software) and some 3rd party development platforms, e.g. **STM32F746G-Discovery** and **Raspberry Pi Pico**.
359+
- The provided example projects only run on [MPS2](https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps2), [MPS3](https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3), [FVP](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/cortex-m-platforms-software) and some 3rd party development platforms, e.g. **STM32F746G-Discovery**.
357360
- Feel free to try the library on your own devices. The library depends on no specific peripheral.
358361
- Most of the example projects are created in MDK.
359362
@@ -384,4 +387,4 @@ Thank you for your time.
384387
385388
***Arm-2D Development Team.***
386389
387-
07 Oct 2022
390+
01 Dec 2022

0 commit comments

Comments
 (0)