自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 基于G.1070的视频质量无参考打分集成回顾

一、前言摆在面前的一个问题:视频会议在大规模使用后,如何评估、如何监控线上视频质量?视频质量的评估方法通常有有参考评估、无参考评估、半参考评估。其中:有参考评估需要原始视频和经过损伤的有损视频,通常原始视频不易获取,并且评估耗时较多;无参考评估仅需要有损视频即可进行,但结果与主观打分的符合度相对有参考要差一些,但好在耗时不多;半参考评估比较鸡肋,虽然不需要原始视频,但需要原始视频的部...

2019-05-24 23:25:44 1108 1

原创 WebRTC视频数据统计之延时、抖动与丢包

一、前言这篇文章主要想说明的是WebRTC内部对视频上下行延时、抖动、丢包如何更新,上层又怎么获取到这些统计信息的。对应的WebRTC版本:63。二、背景最近在内网情况下测试视频会议,视频下行延时很大,很多时候超过100ms。另外,视频的上下行抖动总是稳定在30~40ms这个区间。这些统计在内网环境下是不正常的,于是决定看看是哪里导致这些问题的。在解决这些问题的过程中,也对WebRT...

2019-04-25 21:43:13 6420 1

原创 C/C++ 日期时间整理备忘

在平时的开发过程中,难免会遇到时间相关的处理,比如心跳、定时任务、超时处理等等,总是很难在众多时间处理函数中选择一个。在假期这几天把经常用到的一些时间处理函数整理了一下,算是个梳理也是备忘吧。一、一些常用时间类型1、time_t在VS2015中,time_t的定义为:#ifndef _CRT_NO_TIME_T #ifdef _USE_32BIT_TIME_T...

2018-04-07 17:11:22 1180

原创 什么是devops,基于Gitlab从零开始搭建自己的持续集成流水线(Pipeline)

持续集成 devops pipeline CI/CD Gitlab 运维

2017-12-12 01:27:30 36605 17

原创 建造者模式——设计模式之创建型

建造者模式介绍及如何在代码中使用该模式

2017-08-07 21:43:25 779

原创 GNU profiler(gprof)使用介绍及遇到的问题总结

GNU profiler、gprof、性能测试分析、图形化调用关系

2017-02-24 14:08:24 5121 5

原创 Google开源协议Protobuf的简介及其序列化原理

protobuf介绍及其序列化原理什么是probobuf、作用是什么:   Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。protobuf协议是以一个 .pro

2016-11-17 14:13:49 32771 2

原创 仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示

这篇博客介绍一下在公司实习时选做的一个项目,虽然实习期间没有全部完成,但觉得这个项目做好的话挺有意思的,就在之后几天赶着完善了这个项目。 博客最后给出代码地址这个项目是仿照迅雷,实现一个下载工具。 (开发平台: Ubuntu 16)功能:能由一个基于HTTP协议的网络资源链接,把该链接对应的资源下载到本地,并且显示下载时的状态(进度条、下载百分比、已下载时间、当前下载速度、自己又在后面...

2016-11-04 18:58:37 7383 1

原创 SGI-STL内存池实现及简单使用

这篇博客主要讲一下SGI-STL中的空间配置器的工作流程。我自己实现模仿STL实现了一个空间配置器,并且用两个容器list和vector测试使用了空间配置器。这里只给出模型,如果要看源码,请到https://github.com/common1994/Project/tree/master/STL下载。源码中的注释比较多,也比较全。下面是工程目录: 现在介绍一下工程目录:List.h、Vecto

2016-08-15 12:51:26 3487

原创 STL算法之 copy、copy_backward、copy_n

这些函数都定义在stl_algobase.h里面,使用时只需要包含 algorithm 头文件就行。copy :STL 的SGI版本中的copy函数声明如下:template <class InputIterator, class OutputIterator>inline OutputIterator copy(InputIterator first, InputIterator last, O

2016-07-20 23:03:46 2860

原创 文件压缩(平台Linux & 语言C++)

这篇博文没有给出源码,如果需要这个项目的源码,可以到https://github.com/common1994/Project/tree/master/FileCompress下载。 (1)项目背景:练习哈夫曼树时,了解了哈夫曼树的应用,开始着手写这个文件压缩项目。 (2)项目描述:哈夫曼树:根据一系列权值,每次选出其中最小的两个作为两个树节点,把这两个节点的和作为他们的根节点并把根节点放入

2016-07-13 23:11:31 3214

原创 GitHub版本控制使用(命令行实际操作图解Git使用方法)

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目Git的优势: (说到优势,那么自然是相对与SVN而言的)版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。

2016-06-14 18:26:33 16637

原创 外排序的实现(平台Linux & 语言C++)

前面两篇博客介绍了一下内部排序,也就是待排序的文件或数据可以一次加载进内存,之后进行排序; 读者可以参考之前的博客: http://blog.csdn.net/chengzi_comm/article/details/51429165 http://blog.csdn.net/chengzi_comm/article/details/51494251 与之相对的就是外排序,即文件很大,不能一

2016-05-24 23:32:25 1170

原创 两种非比较排序的原理和实现(计数排序和基数排序)

前些天总结并实现了一些常见的比较排序算法,主要有这三大类: 插入排序、交换排序、选择排序,读者可以参考一下之前的博文:http://blog.csdn.net/chengzi_comm/article/details/51429165 这些排序方法都是直接或间接比较两个数之间的大小,从而得出数据间的大小关系。 今天这篇博客想要介绍一下两种重要的 非比较排序 算法,下面来看一下不用比较的排序是

2016-05-24 22:43:39 1027

原创 常见比较排序算法的实现(归并排序、快速排序、堆排序、选择排序、插入排序、希尔排序)

这篇博客主要实现一些常见的排序算法。例如: //冒泡排序 //选择排序 //简单插入排序 //折半插入排序 //希尔排序 //归并排序 //双向的快速排序 //单向的快速排序 //堆排序对于各个算法的实现原理,这里不再多说了,代码中注释较多,结合注释应该都能理解算法的原理,读者也可自己google一下。另外,注释中有很多点,比如边界条件、应用场景等已经用 * 标记,* 越多,越应

2016-05-16 22:27:55 8511

原创 静态链表(C++实现)

对于线性链表,用一维数组来进行描述。这种描述方法便于在没有指针类型的高级程序设计语言中使用链表结构。

2016-05-13 18:23:17 6156 1

原创 Linux I/O复用中select poll epoll模型的介绍及其优缺点的比较

**关于I/O多路复用:**I/O多路复用(又被称为“事件驱动”),首先要理解的是,操作系统为你提供了一个功能,当你的某个socket可读或者可写的时候,它可以给你一个通知。这样当配合非阻塞的socket使用时,只有当系统通知我哪个描述符可读了,我才去执行read操作,可以保证每次read都能读到有效数据而不做纯返回-1和EAGAIN的无用功。写操作类似。操作系统的这个功能通过select/pol

2016-04-22 14:48:10 12716 2

原创 基于HTTP协议的Web服务器

这篇博文只给出运行截图,没有附上源代码。 如果想要参考源码,请到 https://github.com/common1994/httpd.git * 下载。**下面简单讲述一下HTTP协议和项目描述:* HTTP协议是一个属于应用层的协议,主要特点可概括如下: 1)支持客户/服务器模式。 2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法

2016-03-22 17:05:55 3325 2

原创 【C++】二叉树的创建方法及其遍历的递归与非递归方法总结

二叉树的创建方法及其遍历的递归与非递归方法总结

2015-09-15 11:00:51 1861

原创 数组和指针的区别

C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。        数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变;数组实际上就是一个常量指针,例如:    char ar[10];  就相当于char * const ar;  即数组名对应一块空间, 该数组名不

2015-09-03 21:29:06 2576

原创 vld 内存泄露检测工具vld的实现

Visual Leak Detector (vld)内存检测工具的实现

2015-09-01 21:00:44 1491

原创 哈希表与哈希函数 C实现

用C实现哈希函数,并实现其插入与显示方法

2015-08-25 16:03:05 2001

原创 gcc hello.c 的背后是什么

$gcc hello.c 的背后编译器的做法(预编译、编译、汇编、链接)

2015-05-23 09:47:50 4196

原创 \r \n 与转义字符

\r \n \t 与转义字符之间的关系

2015-05-22 17:24:01 7889 1

原创 双链表 C语言实现

用c语言实现数据结构中的双链表

2015-05-03 10:45:47 900

原创 单循环链表(C语言实现)

//CList.h //结构体定义以及函数声明#ifndef CLIST_H#define CLIST_H#include <stdio.h>#include <assert.h>#include <malloc.h>#include <iostream>typedef int ElemType;typedef struct Node{ ElemType data;

2016-05-12 20:08:44 14912 1

翻译 Java中的对象和对象引用

Java中的对象和对象引用以及和C++中引用的异同

2015-06-14 23:34:00 668

翻译 默认产生的类成员函数

c++中的默认类成员函数

2015-05-19 22:56:40 671

原创 求两个数的最大公约数

#includeint fun(int m,int n){    if(0 == m%n)                      // 如果m 整除 n ,则n是最大公约数        return n;    else        return fun(n,m%n);        }int main(){    printf("%d\n"

2015-05-01 11:42:01 617

原创 浮点数在内存中的存储

浮点数的内存表示

2015-05-01 11:34:21 586

原创 折半查找

折半查找的实现

2015-05-01 10:27:03 974

原创 单链表 C语言实现

实现单链表的各种增删改查 以及排序,逆置,显示,清空等功能

2015-04-30 12:56:47 889

原创 线性表顺序实现(C语言)

用C语言实现一个动态线性表,具有各种形式的增删改查的功能

2015-04-24 16:23:07 928

WebRTC视频数据统计之延时、抖动与丢包

WebRTC视频数据统计之延时、抖动与丢包,包含WebRTC如何更新、客户端如何获取等流程结构图

2019-04-25

tesseract-ocr 安装包

默认可以识别英文字符及数字,若需要识别中文字符,转至 https://download.csdn.net/download/chengzi_comm/10714777 页面下载。 识别引擎使用方式: 1. 解压安装到系统安装目录,比如"C:\Program Files (x86)\Tesseract-OCR" 2. pip install pytesseract 3. 将包pytesseract文件中的pytesseract.py中的tesseract_cmd关联到第一步安装的tesseract上,即注释掉tesseract_cmd = 'tesseract'这一行,并添加 tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe',最后的tesseract.exe路径需要根据第一步解压目录来决定。

2018-10-11

tesseract-ocr 中文识别引擎

解压后,将chi_sim.traineddata拷贝至Tesseract-OCR安装目录中的tessdata目录,如"C:\Program Files (x86)\Tesseract-OCR\tessdata"

2018-10-11

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除