- 博客(37)
- 资源 (3)
- 收藏
- 关注
原创 jrtplib中组播代码发送端和接收端的实现
文章里面主要是把发送端课接收端代码的实现提了出来,和重要函数里的源码贴出来辅助学习,看到网上有人说好久做不出来,建议看看对应加入组播的源码,注意细节,话不多说,代码直接贴出来,各位朋友有意见多多交流。发送端:#include "rtpsession.h"#include "rtpudpv4transmitter.h"#include "rtpipv4address.h"#includ
2016-05-10 10:22:43
3464
4
原创 HEVC之码流K0103研究
码率控制算法主要解决的问题:视频图像在经过编码器编码后,在到达解码器之前码率控制主要是为了在有限的缓冲区容量和信道带宽下的传输高质量的视频序列。 K0103主要讲了R-λ的模型建立,以及这个模型上的码率控制算法。在这之前,主要提议的两个R-D模型是:exponential function: (1) Hyperbolic function: (2)
2016-04-08 09:48:17
1083
原创 HEVC之码率 TEncRateCtrl.h的理解
不多说,直接上代码,主要是参考K0103提案看的。/* The copyright in this software is being made available under the BSD * License, included below. This software may be subject to other third party * and contributor ri
2016-03-24 21:23:16
935
原创 ffplay中的FrameQueue的自我理解
最近在研究ffplay,以下是本人今天在研究FrameQueue的时候整理的笔记,如有错误还请有心人指出来~//这个队列是一个循环队列,windex是指其中的首元素,rindex是指其中的尾部元素.typedef struct FrameQueue { Frame queue[FRAME_QUEUE_SIZE ]; i
2016-03-03 16:31:23
2983
2
原创 获得最终CU深度信息
参考了CJL的一些信息:http://blog.csdn.net/hevc_cjl/article/details/8275260对CU最终的划分有些困惑主要原因是CU总是递归分割,这就导致了CU的分割位置比较难找寻,一直不懂HM是怎么把最后递归分割的那些cu的信息给一开始的CTU的,不过最近看着看着代码我也基本懂了,xcompresscu在递归分割后有这样一行代码:
2015-10-30 21:09:04
2265
转载 Void TEncSearch::xPatternSearchFast()èxTZSearch()
柯兄写的文档,直接贴上来的。调用处:Void TEncSearch::xPatternSearchFast()èxTZSearch() 1. 相关结构TZ_SEARCH_CONFIGURATION : 控制搜索过程ntTZSearchStruct cStruct : 存放搜索过程的中间最优结果搜索结构定义如下: typedef s
2015-10-08 17:13:35
741
原创 帧间预测(一)Void TComDataCU ::getInterMergeCandidates
对应Merge模式的建立/** Constructs a list of merging candidates * \param uiAbsPartIdx * \param uiPUIdx * \param uiDepth * \param pcMvFieldNeighbours * \param puhInterDirNeighbours * \param n
2015-10-02 10:27:27
566
原创 帧内预测之 fillReferenceSamples函数记录
今天抽空看了看 fillReferenceSamples函数,主要功能是针对帧内预测时所需要的参考像素进行填充功能,如果得不到任何参考像素,则每个值赋值为128,如果每个参考值都能找到,则将其原样复制给重建的参考值,如果是一部分知道的话具体参考draft 8.4.4.2.2,代码里一些重要部分的解释都给了,如果有不对的地方还请指出:Void fillReferenceSamples(
2015-08-13 19:43:34
673
转载 hevc代码阅读框架
北京工业大学 朱维佳邮箱: sparkjj@emails.bjut.edu.cn(欢迎探讨任何关于编码的问题)如转发本文章,请注明出处1. 环境配置这个文档描述的版本是HM6.0运行的方法如下可参考之前的文章:2. 编码端主函数的调用主函数中会调用create函数,但是这里面是空函数,所以不做任
2015-08-13 10:45:47
2712
转载 关于类里面依赖,聚合,继承之间的关系
http://blog.csdn.net/kevin_darkelf/article/details/11371353这个网址上讲的很好继承、实现、依赖、关联、聚合、组合的联系与区别分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在
2015-08-09 15:30:20
757
原创 leetcode 237 Delete Node in a Linked List
problem: Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the th
2015-07-23 20:00:40
380
原创 c++关于文件打开目录的问题
之前一直以为打开文件路径中必须用转义字符,后来发现这样的。 路径问题: 可以用斜杠,也可以用反斜杠,比如: char *name="c:/test.txt";
2015-07-20 11:11:18
914
转载 sizeof与strlen的区别
摘自百度百科:http://baike.baidu.com/link?url=b2xF2Mvkhbp8HFbX8tPg95rnj73n6GGZShPNjZElJkeQdLNRnramJOE_jl1iphcXEB52OPZLdXWj7Vw6FYf51tNQCYxKT0bJOERa96JU0p7extern unsigned int strlen(char *s);在Vis
2015-07-20 09:38:59
600
原创 关于在C++类里面建立线程
不多说了,直接上代码:lll.h#include#includeusing namespace std;int flag=1;class realtask{public:friend UINT task(LPVOID param);BOOL starttask();void display(){int b;coutcin>>b;
2015-06-28 13:55:40
2901
原创 关于ffmpeg封装h264为mp4的问题
照着ffmpeg里的例子封装h264为mp4的答题思路是对的,但是,还是要加一些东西才行~下面是之前查东西的一些收获: 对于h264文件来说,h264有两种封装, 一种是annexb模式,传统模式,有startcode,SPS和PPS是在ES中 一种是mp4模式,一般mp4 mkv会有,没有startcode,SPS和PPS以及其它信息被封装在container
2015-06-15 20:40:50
7415
3
原创 关于ffmpeg的avpacket里的pts问题
在进行存储视频流的时候,必须将avpacket里的pts设置好,否则会出现视频过快或过慢的情况,在此主要用到ffmpeg里的av_rescale_rnd函数,可看之前的博客。 //time_base:time_base.num/time_base.den,1/9000 AV
2015-06-15 20:28:45
13556
1
转载 关于wireshark识别h264的问题
原文教程:http://hi.baidu.com/zjxiaoyu3/blog/item/22f9f18f32b45de5f11f3670.html抓到完整的流媒体包之后,用wireshark打开,其中的包可能不会自动映射成RTP+AMR/H263/H264的包,做如下修改操作即可:1. 把UDP 包解析成RTP/RTCP包。选中UDP包,右键,选择Decode As
2015-06-12 17:53:59
1092
1
原创 ffmpeg 音频播放器的播放没声音的问题
在网上博客上看到一位大神的关于ffmpeg音频播放器的实现,调用了一下他的代码,发现一切都可以正常运行,就是没有声音,最后发现是SDL的问题,播放声音也必须在初始化后设置VIDEO ,在SDL_INIT之后加上SDL_Surface *screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE);就OK了~
2015-06-07 20:44:33
4475
转载 关于fopen的模式问题
http://www.cnblogs.com/ai616818/archive/2012/04/26/2470918.htmlFILE * fopen(const char * path,const char * mode);参数mode字符串则代表着流形态。 mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 r+
2015-06-04 20:42:01
463
转载 关于FFMPEG里读取的h264的AVPACKET存储nalu成为h264问题
转载http://blog.csdn.net/leixiaohua1020/article/details/11800877经过试验确实是这样 在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的视频数据码流。只需要在每次调用av_read_frame()之后将得到的视频的AVPacket存为本地文件即可。经试验,在分离MPEG2码流的时候,直接存储AVP
2015-06-01 18:29:02
11762
转载 strlen 与 sizeof的区别
转自http://www.cnblogs.com/carekee/articles/1630789.html一、sizeofsizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分
2015-05-30 19:10:09
336
原创 利用ffmpeg进行摄像头提取视频编码为h264通过RTP发送数据到指定的rtp地址
话不多说命令如下: ffmpeg -f dshow -i video="Logitech QuickCam Easy/Cool" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtp rtp://127.0.0.1:6666>sd.sdp
2015-05-29 09:28:08
3272
原创 HEVC之帧内预测的predIntraAng讲解
Void TComPrediction::predIntraAng( const ComponentID compID, UInt uiDirMode, Pel* piOrg /* Will be null for decoding */, UInt uiOrgStride, Pel* piPred, UInt uiStride, TComTU &rTu, Bool bAbove, Bool bL
2015-05-21 14:53:29
1966
1
原创 关于HEVC HM中的xPredIntraAng帧内预测的方向性预测代码说明
此函数是针对HEVC draft中的8.4.4.2.6部分的解释/** Function for deriving the simplified angular intra predictions. * \param pSrc pointer to reconstructed sample array * \param srcStride the stride of the rec
2015-05-21 11:13:25
1011
转载 SODP RBSP
H.264 的功能分为两层:视频编码层(VCL, Video Coding Layer)和网络提取层(NAL,Network Abstraction Layer)。VCL 数据即编码处理的输出,它表示被压缩编码后的视频数据序列。 VCL存在三种封装形式:SODB, RBSP, EBSP.SODB:数据比特串,即编码后的最原始的数据;RBSP:原始字节序列载荷,即在
2015-05-15 11:36:00
840
转载 IDR、CRA、BLA、RASL、RADL、closed-gop、open-gop
相对于H.264编码的每个GOP是相互独立的,GOP切换用I帧,帧间搜索不再参考前一个GOP。而HEVC切换则可以“软切换”。 BLA、CRA、IDR是文献中提到过的三种随机接入点(RAP),在文献中的解释的确不是很容易理解。 (1)关于GOP。这是图像组(Group of Pictures)的意思,表示编码的视频序列分成了一组一组的有序的帧的集合进行编码。每个GOP一定是以一个I
2015-05-15 10:48:36
2563
转载 IDR和I的区别
IDR(Instantaneous Decoding Refresh)--即时解码刷新。 I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能
2015-05-15 10:36:24
1933
原创 关于用g_auiRasterToZscan将HEVC上的输出信息打印出来
本文的前面参考的基础是http://blog.csdn.net/hevc_cjl/article/details/8183144,博主将光栅扫描转为Z扫描的技术原理讲的很清楚,看到有人问博主怎么将这些信息打印出来的,在此我稍微讲述一下:本人是在TComRom.cpp里加了几行代码,具体代码为:在Void initRasterToZscan ( UInt uiMaxCUWidth, UInt
2015-05-14 19:56:30
1336
原创 关于 ffmpeg 中av_rescale_rnd 和avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt, 的含义
int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq, enum AVRounding) av_const;这个函数在ffmpeg中主要是将编码视频的pts等由原来的容器中规定的转化为现在容器规定的大小,总的来说是这样的:
2015-04-13 19:51:18
1424
原创 _BLOCK_TYPE_IS_VALID assertion failed
网上看到的说明是这样的:原因:1.内存泄漏;所以当程序退出时,系统会收回分配的内存,于是调析构函数,由于内存已被错误地释放,于是就会出现“Debug Assertion Failed”的错误。2.这个assert说明什么问题呢?说明有一块内存在被释放的时候,它的头部里面的信息已经被改掉了,和预期的不一样。内存分配的程序往往在被分配出的内存块头部放上一些校验信息。这个信息内存的用户是
2015-04-10 16:56:31
515
翻译 H264帧内帧间预测的遇到的概念记录
RDO(rate distortion optimization):拉格朗日率失真优化,通过遍历所有的可能的编码模式,最后选择最小率失真代价模式作为最佳帧内预测模式。SSD(sum of squared difference):差值平方和。bitstream switching:流间切换。splicing:拼接。random access:随即接入。fast forward、f
2015-04-10 09:20:59
742
转载 lib和dll文件的区别和联系
什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37) (1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期
2015-04-01 16:52:55
407
原创 Qt中显示图片的例子
这两天一直被Qt显示图片的代码搞的恼火,在网上查的时候发现Qt明明支持对.bmp文件格式的图片显示,但是一直显示不了,最后改为.png就可以了,代码简单,但是确实对这个问题表示不解:#ifndef XIANSHI_H#define XIANSHI_H#include #include "ui_xianshi.h"#include#include#include
2015-03-23 10:09:20
889
原创 error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
在用vs编译的时候碰到这种问题,网上提供的办法是:1:VC2008步骤:主菜单“项目”, “属性”, “配置属性”, “链接器”, “输入”, “忽略特定库”, 添加库“LIBCMTD.lib”,即可。2:项目--属性--C/C++--预编译头--不实用预编译头 项目--属性--链接器--子系统--windows本人用了两种都没效果,我的程序一开始是这样的:int
2015-03-21 11:11:17
482
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人