meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
arm:neon [2025/11/12 21:14] – created niziakarm:neon [2025/11/16 13:19] (current) niziak
Line 3: Line 3:
 ===== Bayer RAW10 packed to Y16 ===== ===== Bayer RAW10 packed to Y16 =====
  
-Data is organised in 5 bytes chunks to store 4 x RAW10 pixel data: +Data is organised in 5 bytes packed chunks to store 4 x RAW10 pixel data:
-  * 4 bytes of 8bit MSB of 10bit +
-  * 1 byte of 4 x 2bit LSB+
  
 General idea: General idea:
Line 30: Line 28:
   * [[https://developer.arm.com/documentation/den0018/a/NEON-Code-Examples-with-Optimization/Converting-color-depth/Converting-from-RGB565-to-RGB888]]   * [[https://developer.arm.com/documentation/den0018/a/NEON-Code-Examples-with-Optimization/Converting-color-depth/Converting-from-RGB565-to-RGB888]]
   * [[https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/coding-for-neon---part-4-shifting-left-and-right|Coding for Neon - Part 4: Shifting Left and Right]]   * [[https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/coding-for-neon---part-4-shifting-left-and-right|Coding for Neon - Part 4: Shifting Left and Right]]
 +
 +
 Useful info: Useful info:
   * [[https://stackoverflow.com/questions/57363580/neon-unpacking-int8x16-t-into-a-pair-of-int16x8-packing-a-pair-of-int16x8-t-i|Unpacking int8x16_t into a pair of int16x8 & packing a pair of int16x8_t into a int8x16_t]]   * [[https://stackoverflow.com/questions/57363580/neon-unpacking-int8x16-t-into-a-pair-of-int16x8-packing-a-pair-of-int16x8-t-i|Unpacking int8x16_t into a pair of int16x8 & packing a pair of int16x8_t into a int8x16_t]]
-  * [[https://stackoverflow.com/questions/44353277/how-to-code-ai-bci-on-arm-neon-simd-intrinsic-function]]+  * [[https://stackoverflow.com/questions/44353277/how-to-code-ai-bci-on-arm-neon-simd-intrinsic-function|How to code "a[i]=b[c[i]]" on ARM NEON SIMD Intrinsic function]] (lookup table load)
   * [[https://github.com/yszheda/rgb2yuv-neon/blob/master/yuv444.cpp#L105C21-L105C30|rgb2yuv-neon]]   * [[https://github.com/yszheda/rgb2yuv-neon/blob/master/yuv444.cpp#L105C21-L105C30|rgb2yuv-neon]]
   * [[http://0x80.pl/notesen/2017-01-07-base64-simd-neon.html|ARM Neon and Base64 encoding & decoding]]   * [[http://0x80.pl/notesen/2017-01-07-base64-simd-neon.html|ARM Neon and Base64 encoding & decoding]]
   * [[https://lemire.me/blog/2017/07/10/pruning-spaces-faster-on-arm-processors-with-vector-table-lookups/|Pruning spaces faster on ARM processors with Vector Table Lookups]]   * [[https://lemire.me/blog/2017/07/10/pruning-spaces-faster-on-arm-processors-with-vector-table-lookups/|Pruning spaces faster on ARM processors with Vector Table Lookups]]
 +  * [[https://en.eeworld.com.cn/news/mcu/eic309253.html|ARM processor NEON programming and optimization techniques - shift operations such as left shift and right shift]]
  
 From [[https://stackoverflow.com/questions/71554911/how-to-vectorize-2d-array-using-neon-intrinsics]]: From [[https://stackoverflow.com/questions/71554911/how-to-vectorize-2d-array-using-neon-intrinsics]]: