![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
编码视界
fangliangsong@foxmail.com
https://zhuanlan.zhihu.com/c_157245427
展开
-
HEVC参考软件准则(提案JCTVC-H1001)
以下归则强制适用于所有软件实现的工作。不符合这些规则的改变将不被软件协调者接收。1 版权许可1.1 版权/许可状态版权放弃声明不应该被改变。每当增加一个文件,如下所示的相同的版权放弃声明,应该包含在文件的开头。/* The copyright in this software is being made available under the BSD * License, i翻译 2017-01-10 22:17:15 · 1129 阅读 · 0 评论 -
HM工程组织
在HM参考软件文件夹下有一文件.\doc\mainpage.h,这个文件的功能的介绍: This document is automatically generated from the source code and special documentation tags. For more details on the used documentation system see h原创 2017-01-11 20:55:18 · 1414 阅读 · 0 评论 -
lambda表达式在C++/MATLAB/Python语言中的实现
说到函数式编程,必然会让人想起lambda表达式。lambda表达式用来定义匿名函数。本文介绍lambda表达式在C++/MATLAB/Python中相应的语法,介绍时。C++11增加了lambda表达式,用于替换在class中重载了调用运算符的函数对象(functor)和函数指针。定义匿名函数的格式是[] () {},例如:auto sum_xy=[](int x,int y){re原创 2016-12-31 16:36:50 · 4430 阅读 · 0 评论 -
HM Inter/Merge模式的TMVP的计算
HM16.9支持的预测类型有两种:MODE_INTER和MODE_INTRA。 /// supported prediction type enum PredMode { MODE_INTER = 0, ///< inter-prediction mode MODE_INTRA = 1, ///< in原创 2016-12-07 16:34:15 · 1759 阅读 · 0 评论 -
C标准库的随想
C语言的设计者把标准输入输出放在标准库中,而不是作为语言本身的一部分。这无意间体现了C语言设计的思想和奥姆剃须刀的原则:“Everything should be made as simple as possible, but no simpler.” 也就是说,即使是”标准库“,也并不是必要的。比如,在单片机普遍使用的Keil C 中,它确实不需要标准输入输出,因为它的输入并不是键原创 2014-03-28 10:01:41 · 937 阅读 · 0 评论 -
关于EOF、switch语句和NULL
EOF:end of file,windows下的快捷键:Ctrl+Z。switch语句后面必须加花括号,因为他后面一定不止一条语句。switch判断语句部分既可以是字符型也可以整形变量。case语句后面既可以跟字符(比如‘a’),也可以跟整数(比如1)。for、while、if这些控制语句后面并不一定要跟花括号,因为它们后面可能只有一条语句。NULL就是0啦,没有特定快捷键,对于整形而言原创 2014-03-05 23:01:16 · 1120 阅读 · 0 评论 -
类std::iterator的类型成员
此程序探讨C++模板库中迭代器的类型成员,在VC2010中测试通过,没有语法错误。但在其他版本的IDE里可能有问题,因为标准库中容器的实现细节并不一样。#include #include #include #include #include using namespace std;int main(){/*测试容器的迭代器都含有:* difference_type、it原创 2015-03-04 21:33:39 · 2787 阅读 · 0 评论 -
判断是不是回文:使用string类型的迭代器和反向迭代器遍历
#include#includeusing namespace std;int main(){string s;cout cin >> s;string::iterator it1 = s.begin();string::reverse_iterator it2 = s.rbegin();while(it1 != s.begin()+s.size()/2原创 2013-04-24 22:02:53 · 1110 阅读 · 0 评论 -
寻找水仙花数(枚举法)
代码如下:#includeusing namespace std;int main(){int a,b,c,m,n;while(cin>>m>>n){int count = 0;if(m999||m>n)//m小于n,其m和n的范围在100到999break;for(int i=m;i{a=i/100; //求百位c=i%10; //求个位原创 2014-03-01 23:20:14 · 2494 阅读 · 0 评论 -
求交错级数的部分和(C++实现)
#include#include//程序中使用到了setprecision函数using namespace std;int main(){while(1){double add=0.0;int n, i=1;cin>>n;if(n>=100||nreturn 0;for(int j=1;j//程序的核心代码{add=add+(1原创 2014-03-01 22:28:41 · 4095 阅读 · 1 评论 -
帧内预测二维线性插值滤波器的实现分析(不含乘除法)
在PC平台下,乘除法的运算时间远高于加减法;在FPGA平台下,做乘除法需要专门的乘法器和除法器。线性滤波器中,滤波器系数乘以信号,存在乘法。本文以HM中的TComPrediction::xPredIntraPlanar函数为例,介绍如何实现没有乘除法的线性滤波器。TComPrediction::xPredIntraPlanar实现的是帧内预测中的planar模式,planar模式使用水平和垂直原创 2016-11-21 14:45:46 · 1068 阅读 · 0 评论 -
使用std::bitset容器将字符转换成二进制形式
我不知道怎么使用fstream::binary文件模式。所以用的是bitset将字符转换成二进制形式。 #include#include#include#includeusing namespace std;//我不知道怎么用binary形式操作文件有什么用istream& rd(istream & istr)//以二进制形式输出文件{ char a;原创 2013-03-09 11:42:25 · 1318 阅读 · 0 评论 -
VS配置管理器
可以在VS的配置管理器中,配置当前活动解决方案采用debug和release模式,还可以设置活动解决方案平台,即win32或x64。还可以配置整个解决方案哪些项目需要生成,哪些不用,在多项目编译时间较长的情况下还是挺有作用的。原创 2016-11-23 15:50:05 · 13991 阅读 · 0 评论 -
使用C++头文件iomanip控制输出精度
/*setprecision函数控制输出流显示浮点数的有效位数 * 如果和fixed合用的话,控制小数点右面的位数,fixed的意思是从小数点开始计数*/#include#include //setprecision函数在这个头文件using namespace std;int main(){cout //输出8位有效数字cout cou原创 2014-03-01 22:09:52 · 2582 阅读 · 0 评论 -
条件编译在JM、HM、JEM中的应用
在制定视频编码标准的过程中,不断会有新的提案出来以期替换原来的技术,但原来的技术又不能立即删掉,于是条件编译在JM、HM、JEM中被广泛地使用。只要有代码的地方,就可以使用条件编译。条件编译既可以出现在头文件,又可以出现在源文件;既可以出现在类定义体、函数体中,又可以出现在类定义体、函数体外。需要注意的一点是,函数(成员函数)声明的地方用了条件编译,函数(成员)定义的地方也相应地要用条件编译。原创 2016-11-14 15:56:01 · 1225 阅读 · 0 评论 -
C++对象模型之成员函数的指针
面试的时候,一个面试官问C++ 32位程序中成员函数的指针占多少个字节。当时意识到这里有坑,但还是硬着头皮说4个字节。这个问题留在心中很久,今天来回答下这个问题。指向成员函数的指针的声明方式:struct T { int foo(); /* ... */};int (T::*pmf) ();使用类型定义(typedef)来声明:typedef int (T::*PMA)();PMA原创 2017-02-13 20:58:07 · 559 阅读 · 0 评论