[go: up one dir, main page]

跳到正文
>sdcb.ai
Microsoft MVP · 2023 – 至今

ServingdotNET,constructingbrilliance.

我是 ZHOU Jie(周杰),2023 年起连任微软 MVP,《.NET骚操作》作者。十多年来我用 C# 把 OCR、大模型、音视频和高性能计算带进 .NET——如今,连图像编解码、推理引擎和 GMP 级的高精度算术也是纯 C# 写的。

Decode.cs
// Sdcb.SimdCodecs —— 零原生依赖的图像解码
byte[] file = File.ReadAllBytes("IMG_0001.heic");  // HEIC · JPEG · PNG · WebP · TIFF · JP2 · JBIG2 …

// 任意像素布局,按 EXIF 转正,需要的话缩小 1/2–1/8
using PixelBuffer image = ImageCodecs.Decode(file, PixelFormat.Bgra32,
    new DecodeOptions { ApplyOrientation = true, ScaleDenominator = 4 });

// 同一个门面编码,ICC / Exif 一并带上
ImageCodecs.Encode(image.Pixels, image.Width, image.Height, image.Format,
    ImageFormat.Webp, output, stride: image.Stride, metadata: image.Metadata);
JPEG、PNG、WebP、TIFF、JPEG 2000 与 JBIG2 图片,全部由 Sdcb.SimdCodecs 解码
JPEG 0.82× libjpeg-turbo · 0 B alloc · 0 native deps
打开浏览器打不开的 TIFF / JPEG 2000 / JBIG2

最近在忙

刚发布的,和在途中的

新发布latest v2.0.0 118

SimdCodecs 2.0

纯托管 C# 的图像编解码:HEIC、JPEG、PNG、WebP、GIF、TIFF、BMP、ICO、QOI、Netpbm、JPEG 2000、JBIG2,外加 EXIF 与 ICC。2.0 把它们收进一个门面 ImageCodecs:每种格式都能按任意像素布局、缩放、裁剪、转正解码,带着元数据编码;PNG 还能像 pngquant 那样量化。没有原生 DLL,JPEG 解码用时只有 libjpeg-turbo 的 0.82 倍。

  • 零原生依赖,一个 NuGet 包搞定
  • JPEG 解码快过 libjpeg-turbo,0 B 分配
  • HEIC 解码:8 核是 libheif 的 0.32×
  • PNG 解码是 libpng 的 0.88×
  • AVX2 / SSE / AdvSimd · NativeAOT · WASM

演进

从“绑定原生库”,到“用 C# 重写推理引擎”

五年时间,同一个问题的三种答案:怎样让 .NET 开发者用上最好的 OCR?

  1. 2021206.4 万 次下载

    PaddleSharp

    绑定 Paddle Inference 原生库

    paddle_inference.dllmkldnnOpenCvSharp
  2. 202320.1 万 次下载

    OpenVINO.NET

    绑定 Intel OpenVINO™ 原生运行时

    openvino.dlltbbOpenCvSharp
  3. 20261.7 万 次下载

    SimdPaddleOCR

    推理引擎本身就是 C#

    零原生依赖

开源

被大量使用的开源项目

全部项目

社区

来群里一起骚操作

3 个 QQ 群、5 个微信群和一个公众号。遇到问题、想交流想法,或者只是想看看别人用 .NET 做了什么,都欢迎。

加入社区
  • .NET骚操作交流群QQ 495782587加群
  • C#/.NET 计算机视觉技术交流QQ 579060605加群
  • Sdcb Chats 交流群QQ 498452653加群
ZHOU Jie

从 2013 年写 Direct2D 的 C++ 程序员,到今天手写 SIMD 推理内核的 .NET 开发者。我相信 C# 能做的事远比大多数人以为的多——这个网站上的每一个项目,都是在证明这一点。

关于我