上篇中是编码,现在是解码。再次介绍下H.264
H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC)而明确的说明它两方面的开发者。 H264标准各主要部分有Access Unit delimiter(访问单元分割符),SEI(附加增强信息),primary coded picture(基本图像编码),Redundant Coded Picture(冗余图像编码)。还有Instantaneous Decoding Refresh(IDR,即时解码刷新)、Hypothetical Reference Decoder(HRD,假想参考解码)、Hypothetical Stream Scheduler(HSS,假想码流调度器)
源码下载:Decoder
H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC)而明确的说明它两方面的开发者。 H264标准各主要部分有Access Unit delimiter(访问单元分割符),SEI(附加增强信息),primary coded picture(基本图像编码),Redundant Coded Picture(冗余图像编码)。还有Instantaneous Decoding Refresh(IDR,即时解码刷新)、Hypothetical Reference Decoder(HRD,假想参考解码)、Hypothetical Stream Scheduler(HSS,假想码流调度器)
// The following ifdef block is the standard way of creating macros which make exporting // from a DLL simpler. All files within this DLL are compiled with the DECODER264_EXPORTS // symbol defined on the command line. this symbol should not be defined on any project // that uses this DLL. This way any other project whose source files include this file see // DECODER264_API functions as being imported from a DLL, wheras this DLL sees symbols // defined with this macro as being exported. #include "stdafx.h" #ifdef DECODER264_EXPORTS #define DECODER264_API __declspec(dllexport) #else #define DECODER264_API __declspec(dllimport) #endif // This class is exported from the Decoder264.dll class DECODER264_API CDecoder264 { public: CDecoder264(void); // TODO: add your methods here. }; extern DECODER264_API int nDecoder264; DECODER264_API int fnDecoder264(void); #ifndef DECODER_H #define DECODER_H //错误代号定义 #define ERR_UNDEFINED_ERRFUNC -1 //无错误函数定义 #define ERR_UNDEFINED_ENDDECODER -2 //无解压完函数注册 #define ERR_SAVEFILE_ERROR -3 //存储文件错误 //#include "framefunc.h" //解压完成后事件 typedef int (* De_FrameFinish_t)(unsigned char* Y,unsigned char* U,unsigned char* V); //错误编号 typedef int (* De_ErrHandler_t)(char *errText,int errNo); //错误报告 void ErrHandFunc(char *errText,int errNum); void FrameEndFunc(unsigned char* Y,unsigned char* U,unsigned char* V); extern "C" DECODER264_API int De_Init(); //解压初始化 extern "C" DECODER264_API int De_RegErrHandler(De_ErrHandler_t errFunc);//错误处理事件注册 extern "C" DECODER264_API int De_SetSave(bool bSave); //true存储,false不存储 extern "C" DECODER264_API int De_SetQCIF(bool QCif); //设置图形格式QCIF 176*144,CIF 352*228 extern "C" DECODER264_API int De_SetDisplay(bool bDisplay); //true显示,false不显示 extern "C" DECODER264_API int De_SetSaveFile(char* saveFile); //设置存储名 extern "C" DECODER264_API int De_DecoderFrame(char* bstream,int size);//解压 bstream,264数据流,size,数据流大小,pos数据流依稀位置,第一次调用时,设置Pos为0 extern "C" DECODER264_API int De_RegDecoderEnd(De_FrameFinish_t De_FrameFinishFunc); extern "C" DECODER264_API void ConvertYUVtoRGB(unsigned char *src0, unsigned char *src1, unsigned char *src2, unsigned char *dst_ori, int width, int height ); #endif
源码下载:Decoder
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2305
- 用户1336
- 访客11335148
每日一句
Life is more about giving than taking.
人生重在给予,而非索取。
人生重在给予,而非索取。
VirtualXposed,让你无需Root也能使用Xposed框架!
macOS系统盘爆满之罪魁祸首——向日葵远程
手机屏幕碎了怎么备份操作?
在Google Play商店中展示Android应用的八大技巧
利用Internet Download Manager下载Google云盘大文件
ndk神奇问题之non-numeric second argument to `wordlist' function: '8.7z'
font-awesome-to-png快速将Font-Awesome字体保存为PNG图片
Android Studio3.4.1更新及槽点
C++实现远程下载EXE并执行
Android上app_process启动java进程
C++ 11新语法获取系统盘符
软文实现月收入多几千的赚钱法
关于Android Studio不能查看源码
新会员