摘要: 一、引子 自从看了老坏猫(江湖人称猫总)的SharpSCADA项目后,让我感觉耳目一新同时也对自动化数据采集有了更深入的认识,我相信有不少做上位机的朋友和我一样对这个项目非常好奇。我们做上位机的应用场景相比SCADA系统还是有很大差别的,比如我们再跟plc通讯的时候,每一次通讯数据很少存入数据库,还 阅读全文
posted @ 2019-05-04 21:15 程序员小张 阅读(12520) 评论(5) 推荐(6) 编辑
摘要: DCT变换可谓是JPEG编码原理里面数学难度最高的一环,我也是因为DCT变换的算法才对JPEG编码感兴趣(真是不自量力)。这一章我就把我对DCT的研究心得体会分享出来,希望各位大神也不吝赐教。 1.离散余弦变换(DCT)介绍 如果想深入了解这一章,就需要从傅里叶变换开始。学过《信号与系统》或者《数学 阅读全文
posted @ 2019-08-07 17:27 程序员小张 阅读(2128) 评论(0) 推荐(1) 编辑
摘要: 熵编码这一过程可以算是JPEG过程中最为复杂一部分,本身的数学难度并不大,但是概念太多很容易搞混。比如很多博客直接将这部分省略成霍夫曼编码,我认为这种说法很不准确,因为这里的熵编码是多种编码技术综合运用的。 1.编码过程 上一章,我们将原始图像数据进行量化,得到一个8*8的数据块,这个数据块还要经历 阅读全文
posted @ 2019-08-04 16:54 程序员小张 阅读(2772) 评论(0) 推荐(1) 编辑
摘要: 最近在看GitHub上的一个很火的项目是:ImageSharp。这是一个纯.net core的图像处理库,没有使用其他的任何依赖。在看这个项目过程中激发了我对图像文件编码解码的兴趣。于是从最简单的BMP图像开始看,到GIF格式卡了一段时间(主要卡在lzw编码过程和数据块中),到最后的JPEG格式(P 阅读全文
posted @ 2019-08-04 16:50 程序员小张 阅读(3035) 评论(2) 推荐(1) 编辑
摘要: JPEG编码中的采样过程其实就是一个图像数据转换成若干个8*8数据块的过程,如下图将原始图像分成8*8个小块(block),每个block中有64个像素: ImageSharp源码中关于采样有有两种选择,一种叫JpegSubsample.Ratio444,一种叫JpegSubsample.Ratio 阅读全文
posted @ 2019-08-04 16:50 程序员小张 阅读(2289) 评论(0) 推荐(1) 编辑
摘要: 最近一两年都没写过wpf相关的项目了,本来就不太熟的一些技巧全忘光啦,为了重新拾起这点东西,就花了几天时间做了个小demo,大致功能就是读取豆瓣电台api,获取歌单列表听歌。最开始是参考网上现有的例子(界面非常好看,符合豆瓣小清新的风格),后面我用MahApps库来重构了UI,更换了豆瓣最新的api 阅读全文
posted @ 2019-07-24 09:52 程序员小张 阅读(607) 评论(1) 推荐(2) 编辑
摘要: LitDB里面索引的数据结构是用跳表来实现的,我知道的开源项目中使用跳表的还包括Redis,大家可以上网搜索关于Redis的跳表功能的实现。在这一章,我将结合LiteDB中的示例来讲解跳表。 1.跳表与其他数据结构对比 我们经常能够听说B树,红黑树,AVL树,Splay Tree, Treep,但是 阅读全文
posted @ 2019-06-26 19:39 程序员小张 阅读(958) 评论(2) 推荐(2) 编辑
摘要: 在这一章,我们将了解LiteDB里面几个基本数据结构包括索引结构和数据块结构,我也会试着说明前辈数据之巅在博客中遇到的问题,最后对比mysql进一步深入了解LiteDB的索引原理。 1.LiteDB的五种基本数据结构 在LiteDB的Structures中定义了五个基本数据结构,分别为PageAdd 阅读全文
posted @ 2019-06-19 18:59 程序员小张 阅读(1367) 评论(1) 推荐(2) 编辑
摘要: 在这一篇里,我将用图文的方式展示LiteDB中页的结构及作用,内容都是原创,在描述的过程中有不准确的地方烦请指出。 1.LiteDB页的技术工作原理 LiteDB虽然是单个文件类型的数据库,但是数据库有很多信息,例如索引,集合,文件等。为了管理这些信息,LiteDB实现了数据库页的概念。页是一个拥有 阅读全文
posted @ 2019-06-14 22:47 程序员小张 阅读(1963) 评论(3) 推荐(3) 编辑
摘要: 最近利用端午假期,我把LiteDB的源码仔细的阅读了一遍,酣畅淋漓,确实收获了不少。后面将编写一系列关于LteDB的文章分享给大家,希望这么好的源码不要被埋没。 1.LiteDB是什么 这是一个小型的.NET平台开源的NoSQL类型的轻量级文件数据库。特点是小和快,由于完全由C#'编写,所以可以支持 阅读全文
posted @ 2019-06-14 22:44 程序员小张 阅读(4026) 评论(4) 推荐(3) 编辑