飞视通科技 高清数字 解码矩阵H.265
4K高清直播H.265VBR编码格式技术参数优化与分析

DOI:10.19551/ki.issn1672-9129.2021.04.1154K高清直播H.265VBR编码格式技术参数优化与分析张春磊(天津网络广播电视台有限公司㊀300070)摘要:基于平台的4K高清直播做应用开发及数据变成,它是一个可以走得更远的方向,真正有价值的地方在于与具体的业务方向结合 ㊂这边文章将详细简介如何搭建最简单的编码合适及视频编码的基本知识㊂通过对音视频直播技术架构的简单分析,以对此提供技术参考㊂关键词:视频;参数分析;编码方式中图分类号:TN919㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1672-9129(2021)04-0114-01㊀㊀1㊀视频编码考虑要素编码计算量和码率带宽,实时视频会运行在移动端上,需要保证实时性就需要编码足够快,码率尽量小㊂基于这个原因现阶段一般认为H.264是最佳的实时视频编码器,而且各个移动平台也支持它的硬编码技术㊂2㊀常用的编码分类基础(1)变换编码:消除图像的帧内冗余㊂涉及到图像学里面的两个概念:空域和频域㊂空域就是我们物理的图片,频域就是将物理图片根据其颜色值等映射为数字大小㊂而变换编码的目的是利用频域实现去相关和能量集中㊂(2)运动估计和运动补偿:消除帧间冗余㊂视频压缩还存在时间上的关联性㊂例如,针对一些视频变化,背景图不变而只是图片中部分物体的移动,针对这种方式,可以只对相邻视频帧中变化的部分进行编码㊂(3)熵编码:提高压缩效率,熵编码主要是针对码节长度优化实现的㊂原理是针对信源中出现概率大的符号赋予短码,对于概率小的符号赋予长码,然后总的来说实现平均码长的最小值㊂编码方式(可变字长编码)有:霍夫曼编码㊁算术编码㊁游程编码等㊂3㊀常见的编码方式(1)I帧(I-frame):学名叫做:picture㊂也可以叫做独立帧㊂该帧是编码器随机挑选的参考图像,换句话说,一个I 帧本身就是一个静态图像㊂它是作为B,P帧的参考点㊂对于它的压缩,只能使用熵和变化编码这两种方式进行帧内压缩㊂(2)P帧(Pframe):又叫做Predicted picture–前向预测帧㊂即,他会根据前面一张图像,来进行图片间的动态压缩,它的压缩率和I帧比起来要高一些㊂(3)B帧(Bframe):又叫做Bi-predictive picture 双向预测㊂它比P帧来说,还多了后一张图像的预测,所以它的压缩率更高㊂考虑到不同帧传输的无序性,我们还需要引入PTS与DTS来进行控制,使用DTS来解码,PTS来进行播放㊂(4)PTS(presentation time stamps):显示时间戳,显示器从接受到解码到显示的时间㊂(5)DTS(decoder):解码时间戳㊂也表示该sample在整个流中的顺序㊂4㊀H.26X系列组成形式(1)H.261:主要在老的视频会议和视频电话产品中使用㊂(2)H.263:主要用在视频会议㊁视频电话和网络视频上㊂(3)H.264:H.264/MPEG-4第十部分,或称AVC(Ad-vanced Video Coding,高级视频编码),是一种视频压缩标准,一种被广泛使用的高精度视频的录制㊁压缩和发布格式㊂(4)H.265:高效率视频编码(High Efficiency Video Cod-ing,简称HEVC)是一种视频压缩标准,H.264/MPEG-4 AVC的继任者㊂HEVC被认为不仅提升图像质量,同时也能达到H.264/MPEG-4AVC两倍之压缩率㊂(5)H.264是由ITU和MPEG两个组织共同提出的标准,整个编码器包括帧内预测编码㊁帧间预测编码㊁运动估计㊁熵编码等过程,支持分层编码技术(SVC)㊂(6)H.264为了防止丢包和减小带宽还引入一种双向预测编码的B帧,B帧以前面的I或P帧和后面的P帧为参考帧㊂H.264为了防止中间P帧丢失视频图像会一直错误它引入分组序列(GOP)编码,也就是隔一段时间发一个全量I帧,上一个I帧与下一个I帧之间为一个分组GOP㊂5㊀视频与音频解码(1)视频解码:解码时间戳,决定什么时候解码㊂该帧数据显示时间戳,决定什么时候显示该帧图像㊂以参考时钟为基准,超前参考时钟则等待,落后(在30ms与500ms之间)参考时钟则快速渲染,十分落后(超过500ms)参考时钟则丢弃该帧㊂关键帧与非关键帧:关键帧:I帧为关键帧,所以I帧可以直接解码还原出一个图像㊂非关键帧:P帧与B 帧为非关键帧,需要依赖关键帧才能解码㊂组包与拼帧:有些封装格式会把一帧数据拆成若干包,因为关键帧数据可能比较大;RTP封装数据时,也会把一帧拆成若干包,因为MTU规定网络层最大传输单元为1500bytes㊂(2)音频解码㊂planar:每个声道数据单独存储㊂以立体声道为例,L表示左声道,R表示右声道㊂那么存储格式为LLLLRRRR㊂类似视频的YUV420SP,Y独立存储,UV交错存储,4个Y分量对应一组UV分量㊂2㊁量化位数:量化位数:量化位是对模拟音频信号的幅度轴数字化,它决定了模拟信号数字化的动态范围㊂量化位数越大,质量越好㊂结束语:视频实际上就是一帧一帧的图片,拼接起来进行播放;标准的图像格式使用RGB三字节描述像素颜色值,会占用较大的存储空间与带宽㊂视频编解码器会根据前后图像的变化做运动检测,通过各种压缩把变化的结果发送到对方㊂为后续的高清直播做出更有利的判断,呈现出最优的视听效果㊂参考文献:[1]美]埃里克㊃马瑟斯(Eric)著,袁国忠译.Python编程从入门到实践第2版([M].中国工信出版集团:北京, 2018:221.[2]埃里克㊃马瑟斯(Eric),Al,t,等.Python编程三剑客:Python编程从入门到实践+快速上手+极客编程[M].中国工信出版社:北京,2016:54.[3]零壹快学.零基础C++从入门到精通语言程序设计电脑编程零基础C++软件编程入门自学书籍R零基础C++从入门到精通[M].广东人民出版社:广东,2018:112.㊃411㊃。
H.265编码器产品介绍-1215

③ H.265 AV编码器,电视信号视频编码,支持4CIF、D1
H.265 DVI编码器(XT2501D)
采用H.265编码标准,适用于DVI/VGA信号源,支持1024×768~1920×1200分辨率等;
实现功能:
支持采集DVI/VGA/HDMI视频源(最高 1920*1200) 支持平衡立体声采集 支持H.265视频编码 支持AAC,G.711音频编码 支持平衡立体声输出 支持云镜控制 支持网络传输,支持RTP和RTCP协议 支持WEB访问,进行视频预览、参数配置 支持回复出厂设置 支持OSD字符叠加 支持图像黑边调节
支持采集sdi视频源最高1080p支持单声道平衡立体声采集支持h265的视频编码支持aacg711音频编码协议支持平衡立体声输出支持sdi视频环出支持云镜控制支持网络传输支持rtp和rtcp协议支持web访问进行视频预览参数配置支持回复出厂设置支持osd字符叠加支持图像黑边调节h265视频编码器xt2501f技术参数序号项目数量立体声lineout输出35mm接口线性电平阻抗
H.265 视频编码器(XT2501F)
技术参数
序号 1 2 3 4 项目 视频输入 视频环出 音频输入 音频输出 数量 说 明 1 HD-SDI输入,BNC接口(电平:1.0Vp-p,阻抗:75欧姆); 1 HD-SDI环出,BNC接口 1 1 1 1 立体声,LINE IN 输入,3.5mm接口(电平:2.0Vp-p,阻抗:1K欧) 立体声,LINE OUT 输出,3.5mm接口(线性电平,阻抗:600欧) RS232接口 RJ45 1000M网口 AC 220V 127W 运行温度:-10°C ~ 45°C 存储温度: -40°C ~ 60°C 运行湿度:10%~90% 存储湿度:0~95% 430×250×45mm 6.5kg
HEVC/H.265视频解决方案出炉

HEVC/H.265视频解决方案出炉
王柳
【期刊名称】《软件和信息服务》
【年(卷),期】2014(000)005
【摘要】英特尔公司和北京视骏科技有限公司(以下简称视骏科技)近日宣布就HEVC/H.265视频解决方案在国内普及推广达成战略合作。
【总页数】1页(P63-63)
【作者】王柳
【作者单位】《软件和信息服务》编辑部
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.H.265/HEVC视频的时间域篡改检测 [J], 王宇飞;刘琲贝;胡永健;朱美能
2.新一代视频编解码技术HEVC/H.265分析及应用前景研究 [J], 张晓斌
3.泰克为Sentry视频质量监测解决方案提供HEVC/H.265支持 [J],
4.H.265/HEVC视频编码标准性能评估与分析 [J], 谢佳;徐山峰;王兆伟;孙治水;王行建
5.泰克为Sentry视频质量监测解决方案提供HEVC/H.265支持最新版Sentry软件扩展了4K/UHD OTT监测产品组合 [J],
因版权原因,仅展示原文概要,查看原文内容请购买。
H.265HEVC码率控制总体框架与代码解读(中)

H.265HEVC 码率控制总体框架与代码解读(中)第⼆部分接着第⼀部分,介绍初始化之后的具体⽐特分配操作。
附上传送门如下上:介绍码率控制的初始化部分中:介绍码率控制的具体实现下:介绍码率控制的应⽤以及码率控制的⼀些研究⽅向2.码率控制的⽐特分配部分从初始化部分可以看出,码率控制从GOP,frame,LCU逐级分配⽐特数,在frame与LCU这两块中还要根据⽐特数计算出对应的QP,从⽽运⽤于实际编码之中。
码率控制相较于整个HEVC框架⽽⾔是简单的,初始化的函数部分基本就占据了TEncRateCtrl.cpp的⼀半篇幅,剩下的部分⼤致分为三块:⽐特分配、QP计算以及数据更新。
接下来就从这三块进⾏解读。
2.1⽐特分配2.1.1 GOP⽐特分配⾸先是GOP的⽐特分配,在1.2节中提到的xEstGOPTargetBits( ) 函数指明了对应的分配⽅法。
代码如下2.1.2 frame的⽐特分配根据2.1.1中GOP分配的⽐特数,可以得到GOP内各帧的⽐特数,代码如下2.1.3 LCU的⽐特分配得到各帧的⽐特数后,可以对帧内各个LCU进⾏⽐特分配,代码如下Int TEncRCGOP::xEstGOPTargetBits( TEncRCSeq* encRCSeq, Int GOPSize ){Int realInfluencePicture = min( g_RCSmoothWindowSize, encRCSeq->getFramesLeft() ); //这⾥⽤到了滑动窗⼝g_RCSmoothWindowSize 的概念,realInfluencePicture 取滑动窗⼝40与编码剩余⽐特数的较⼩值,以精确计算GOP 应得Int averageTargetBitsPerPic = (Int)( encRCSeq->getTargetBits() / encRCSeq->getTotalFrames() );Int currentTargetBitsPerPic = (Int)( ( encRCSeq->getBitsLeft() - averageTargetBitsPerPic * (encRCSeq->getFramesLeft() - realInfluencePicture) ) / realInfluencePicture );Int targetBits = currentTargetBitsPerPic * GOPSize;if ( targetBits < 200 ){targetBits = 200; // at least allocate 200 bits for one GOP}return targetBits;}Int TEncRCPic::xEstPicTargetBits( TEncRCSeq* encRCSeq, TEncRCGOP* encRCGOP ){Int targetBits = 0;Int GOPbitsLeft = encRCGOP->getBitsLeft();Int i;Int currPicPosition = encRCGOP->getNumPic()-encRCGOP->getPicLeft();Int currPicRatio = encRCSeq->getBitRatio( currPicPosition ); //对应1.1节的各帧权重Int totalPicRatio = 0;for ( i=currPicPosition; i<encRCGOP->getNumPic(); i++ ){totalPicRatio += encRCSeq->getBitRatio( i );}targetBits = Int( ((Double)GOPbitsLeft) * currPicRatio / totalPicRatio ); //2.1.1中给GOP 分配的⽐特数乘上当前帧所占的权重,得到对应⽐特数,即JCTVC-0103(9),图附在代码块之后if ( targetBits < 100 ){targetBits = 100; // at least allocate 100 bits for one picture}if ( m_encRCSeq->getFramesLeft() > 16 ) //对targetBits 进⾏微调,对应的算法暂未找到{targetBits = Int( g_RCWeightPicRargetBitInBuffer * targetBits + g_RCWeightPicTargetBitInGOP * m_encRCGOP->getTargetBitInGOP( currPicPosition ) );}return targetBits;}Double TEncRCPic::getLCUTargetBpp(SliceType eSliceType){Int LCUIdx = getLCUCoded();//当前LCU 的序号Double bpp = -1.0;Int avgBits = 0;if (eSliceType == I_SLICE){Int noOfLCUsLeft = m_numberOfLCU - LCUIdx + 1;Int bitrateWindow = min(4,noOfLCUsLeft); //类似于之前的滑动窗⼝Double MAD = getLCU(LCUIdx).m_costIntra; //计算出每个LCU 对应的MAD 值if (m_remainingCostIntra > 0.1 ) //m_remainingCostIntra 为当前帧的总MAD{Double weightedBitsLeft = (m_bitsLeft*bitrateWindow+(m_bitsLeft-getLCU(LCUIdx).m_targetBitsLeft)*noOfLCUsLeft)/(Double)bitrateWindow;avgBits = Int( MAD*weightedBitsLeft/m_remainingCostIntra );}else{avgBits = Int( m_bitsLeft / m_LCULeft );}m_remainingCostIntra -= MAD; //分配完⼀个LCU ⽐特后,更新剩余的m_remainingCostIntra}else //⾮I 帧{Double totalWeight = 0;for ( Int i=LCUIdx; i<m_numberOfLCU; i++ ){totalWeight += m_LCUs[i].m_bitWeight;}Int realInfluenceLCU = min( g_RCLCUSmoothWindowSize, getLCULeft() );avgBits = (Int)( m_LCUs[LCUIdx].m_bitWeight - ( totalWeight - m_bitsLeft ) / realInfluenceLCU + 0.5 );}if ( avgBits < 1 ){avgBits = 1;}bpp = ( Double )avgBits/( Double )m_LCUs[ LCUIdx ].m_numberOfPixel; //求出的⽐特数转化为bpp(bits per pixel)计算m_LCUs[ LCUIdx ].m_targetBits = avgBits;return bpp;}2.2 QP计算计算出GOP,frame,LCU的⽐特之后,为了进⾏编码,需要传递QP值给编码器。
基于H265编码码率调节和虚拟资源池配置的视频监控存储优化方法

基于H265编码码率调节和虚拟资源池配置的视频监控存储优化方法概述:随着视频监控技术的不断发展,对于监控视频的存储和传输也提出了更高的要求。
本文将介绍一种基于H265编码码率调节和虚拟资源池配置的视频监控存储优化方法,通过合理调整编码码率和资源分配,达到存储空间的最优利用和视频质量的最优化。
一、H265编码码率调节优化方法H265编码技术是一种高效的视频压缩编码技术,通过减少视频数据的冗余,来达到减小视频文件大小和降低传输带宽的目的。
因此,在存储监控视频时,采用H265编码是一个重要的优化方法。
而码率则是影响视频画质和文件大小的关键因素。
因此,通过调节H265编码码率来优化存储空间和视频质量是本文的关注点。
1.码率自适应策略:对于监控视频,不同的场景和需求对于画质和文件大小有不同的要求。
因此,为了达到最佳的视频质量和存储空间利用,可以采用码率自适应策略。
即根据当前环境和需求,动态调整编码的码率。
当环境变化幅度较小且要求画质较高时,适应性调整较小,以保持画质的稳定性;当环境变化幅度较大时,适应性调整较大,以保证良好的播放效果和传输速度。
2.动态区域编码技术:监控视频画面中,不同区域的变化程度和重要性不同。
因此,可以采用动态区域编码技术,根据画面中各个区域的运动状态和重要性,动态调整码率。
对于静止不动的区域,可以采用低码率编码,以减小存储空间占用;对于动态变化的区域和重要信息区域,可以采用高码率编码,以保证视频质量的清晰度和准确度。
二、虚拟资源池配置优化方法虚拟资源池配置是指将存储和计算资源进行合理分配和管理,以达到最优的存储效果和性能提升。
在视频监控存储方面,通过虚拟化技术对存储资源进行优化可以有效降低存储成本和提高存储性能。
1.存储资源的虚拟化:通过将多个存储设备或存储节点进行虚拟化,形成一个存储资源池,可以将存储容量进行统一管理和有效利用。
对于监控视频存储,可以将不同摄像头产生的视频数据分配到不同的存储设备或存储节点上,以平衡存储负载,提高存储性能。
一种基于H.265编码标准的视频加密算法[发明专利]
![一种基于H.265编码标准的视频加密算法[发明专利]](https://img.taocdn.com/s3/m/ab7c216902d276a201292e32.png)
专利名称:一种基于H.265编码标准的视频加密算法专利类型:发明专利
发明人:任亮,李文祥,郭俊峰
申请号:CN201710496963.9
申请日:20170626
公开号:CN107396106A
公开日:
20171124
专利内容由知识产权出版社提供
摘要:本发明提供一种基于H.265编码标准的视频加密算法,包括以下步骤,S1:确定H.265编码标准的MV预测技术Merge模式,Merge模式候选列表中预测MV有5个;使用混沌伪随机序列发生器为随机序列产生一比特密钥,该比特密钥为1或0;如果比特密钥为1,则跳转至步骤S3,否则跳转至步骤S5;S3:如果index=4,则执行步骤S7,否则执行步骤S4;S4:用2个比特的混沌伪随机序列与index进行异或操作,并将新的值赋给index,执行步骤S6;S5:执行4‑index操作,并将新值赋给index;当该bit=0时,新的索引号等于4‑index,则此时索引号index为2的不参与加密,S6:将新的索引号index输入到熵编码器;Merge index加密结束,并进行熵编码加密,本发明以微小的码率增加和压缩性能降低为代价,实现了对视频内容更大程度上地扰乱。
申请人:深圳市亿联智能有限公司
地址:518000 广东省深圳市宝安区福永街道桥头天福路红牌科技园1号厂房A区二层、三层国籍:CN
代理机构:广东广和律师事务所
代理人:王少强
更多信息请下载全文后查看。
【知识点】H264,H265硬件编解码基础及码流分析
【知识点】H264,H265硬件编解码基础及码流分析前⾔⾳视频开发需要你懂得⾳视频中⼀些基本概念,针对编解码⽽⾔,我们必须提前懂得编解码器的⼀些特性,码流的结构,码流中⼀些重要信息如sps,pps,vps,start code以及基本的⼯作原理,⽽⼤多同学都只是⼀知半解,所以导致代码中的部分内容虽可以简单理解却不知其意,所以,在这⾥总结出了当前主流的H.264,H.265编码相关的原理,以供学习.1. 概览1.1. 为什么要编码众所周知,视频数据原始体积是巨⼤的,以720P 30fps的视频为例,⼀个像素⼤约3个字节,如下所得,每秒钟产⽣87MB,这样计算可得⼀分钟就将产⽣5.22GB。
数据量/每秒=1280*720*33*3/1024/1024=87MB因此,像这样体积重⼤的视频是⽆法在⽹络中直接传输的.⽽视频编码技术也就因运⽽⽣.关于视频编码原理的技术可以参考本⼈其他⽂章,这⾥不做过多描述.1.2. 编码技术经过很多年的开发迭代,已经有很多⼤⽜实现了视频编码技术,其中最主流的有H.264编码,以及新⼀代的H.265编码,⾕歌也开发了VP8,VP9编码技术.对移动端⽽⾔,苹果内部已经实现了如H.264,H.265编码,我们需要使⽤苹果提供的VideoToolbox框架来实现它.1.3. 编码分类软件编码(简称软编):使⽤CPU进⾏编码。
硬件编码(简称硬编):不使⽤CPU进⾏编码,使⽤显卡GPU,专⽤的DSP、FPGA、ASIC芯⽚等硬件进⾏编码。
优缺点软编:实现直接、简单,参数调整⽅便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常⽐硬编码要好⼀点。
硬编:性能⾼,低码率下通常质量低于硬编码器,但部分产品在GPU硬件平台移植了优秀的软编码算法(如X264)的,质量基本等同于软编码。
iOS系统中的硬编码苹果在iOS 8.0系统之前,没有开放系统的硬件编码解码功能,不过Mac OS系统⼀直有,被称为Video ToolBox的框架来处理硬件的编码和解码,终于在iOS 8.0后,苹果将该框架引⼊iOS系统。
北京大学科技成果——HEVC高效视频编解码器及图片编解码器
北京大学科技成果——HEVC高效视频编解码器及图片编解码器项目简介当今社会,随着多媒体技术的不断发展,图片视频已经成为了人们获取信息的重要来源,图片视频的数据量出现爆发式地增长。
面对大量的图片视频信息,如何高效的存储和传输成为一个重要的问题,在这样的背景下,HEVC视频编码标准应运而生。
HEVC(High-Efficiency Video Coding)是ISO/IEC和ITU-T联合制定的最新视频编码标准,该标准进一步优化了前代视频编码标准H.265,并进一步创新,最终在相同的主观质量下比前代标准H.264提高一倍的压缩率。
HEVC视频编码标准虽然在相同的主观质量下提高了一倍的压缩率,与此同时编码过程中所需的计算量大幅提高。
过高的计算量严重的阻碍了HEVC标准产业化的过程。
本项目通过一系列技术高效的实现了HEVC视频编码标准下的编解码器以及图片编解码器。
项目设计了快速率失真优化框架、高性能并行框架以及高效全平台支持框架,生产出高效的编解码器。
本研究室在视频编码技术上有多年的积累,在率失真优化上有深厚的理论基础。
同时,在视频编码标准的实现上,本实验室也积累的丰富的经验,设计并实现了高效的HEVC视频以及图片编解码器。
应用范围虽然目前H.264仍然是主要的视频编码标准,但是HEVC必将很快取代H.264的行业地位。
随着高清视频的普及,以及超高清视频的出现,如何在保证视频质量的情况下,提高压缩率减少成本,成为产业界必须要考虑的问题,HEVC视频编码标准必将得到广泛应用。
项目阶段本实验室在视频图像编解码器上进行了多年的研究,对于编解码的过程进行了透彻的分析,设计出快速的率失真最优化模型以及高效的并行框架,最终开发出高效视频编解码器Lentoid以及高效图像编解码器LentP。
经过测试对比,Lentoid和LentP与市场同类产品相比均具有可观优势。
目前本项目已经完成原型系统开发,有待进一步完善。
知识产权本实验室在高效编解码器的上进行了大量的研究,在编码快速码率失真优化RDO算法,高性能并行框架以及高效解码方案上的研究成果均已在相关领域的顶级会议以及期刊上发表,同时申请了大量的专利。
ZoBoVision_H265 Hevc编码器FPGA IP使用说明书(三)
Focus On FPGA/SOC Video IPZoBoVison H.265 Encoder FPGA IPFor Xilinx Kintex-7 SeriesE50B_Xilinx_K7_DemoUser GuideShen Zhen, CHINA Document Data: July 2015深圳市中博视清科技开发有限公司 Document Version: V3.0 service@video265@Release InformationItem Description Version V3.0IP Name E50B_Xilinx_K7_DemoRelease Data Aug 1th, 2015FPGA Support Xilinx Kintex-7k325xx and aboveLimitationCompare to Licensed version, the Demo Version have some limitations: ■ The ZoBo logo is added to encoded picture in some cases.■ Other special processing for picture used only in rare cases.■ Only 1080p/720p/480p frame size supported■ Slight performance lossKey Features■ HEVC/H.265 Main Profile■YUV420 , BitDepth 8■ Max. 1080p@60fps / 720p@120fps with single core■1920x1080p@30fps < 130MHz ( Demo Version, <115Mhz for licensed Version )■ low CPU load : only register setting needed■GOP configuration: I / P / B (max. BBBBBBBP )■CTU size: 64×64■ CU sizes: 8×8 ~ 64×64■Inter PU size: 8×8/8×16/16×8/16×16/32×32/ 64×64■Intra PU size: 4×4/ 8×8/16×16,■TU size: 4×4 /8×8 /16×16■ ¼ sub-pixel support■[±64H, ±32V] Search Range ( Larger range may supported for future version)■full-search for [±32H, ±16V] and almost full-search for other range.■all 35 intra prediction modes for supported PU sizes■RDO with TU4x4 /8x8 /16x16 simultaneously■ Hadamard Rdcost support■Single Slice or Title suported for 1080P@60fps encoding■High throughput CABAC architecture with max input 10bin/clock encoding capabilities ■All one CTU cabac data encoded within CTU encoding time,no entropy fifo overflow risk ■ Ultra low latency coding, Min encoder latency can be limited to CTU unit time.■high DRAM latency resilience■ Rate Control: JCTVC – K0103Implement Features■ 1920x1080p@60fps : 260MHz (230Mhz for licensed Version)■ 1280x720p@60fps : 125MHz■Fmax(xilinx_Kintex-7): 235M hz ( -3 speed) / 210Mhz ( -2 speed) / 190Mhz (-1 speed) ■LUTs utilization: ~180,000 (for xilinx_k7)■Registers utilization: ~150,000 (for xilinx_k7)■Memory utilization: 300 ( 5,500 kbits RAM)■DSPs utilization: 0■DDRx BandWidth: Max. 1.2GByte/s for 1080P@60fpsBlock DiagramFig 1. Encoder System Block DiagramI/O Signal DescriptionsTab 1. Encoder Interface SignalsSignal Name Direct Descriptionrstn Input Active LOW asynchronous reset .en Input Always be‘1’.clkenc Input Encoder core clock. The minimum of real-time clock is set accordingto encoder frame size and frame rate:■ clkenc (min_val) = ( Frame_num(CTU_64*64) + 6 ) × 8400 × Frame_rate■ Frame_num(CTU_64*64) = (Frame_Width/64 + (Frame_Width%64)? 1:0)×(Frame_Height/64 + (Frame_Height%64)? 1:0)For exsample:■ 1920*1080p@30fps : clkenc (min_val) = 130Mhz■ 1280*720p@30fps : clkenc (min_val) = 62Mhz■ 832*480p@30fps: clkenc (min_val) = 28Mhzclkcpu Input Encoder Configuration/Status Register R/W clock.Range : [ 1Mhz, 200Mhz]cpu_we Input Active high indicating that configuration register is written.cpu_addr[5:0] Input Config/Status Register R/W addr .cpu_wdata[9:0] Input Config Register write data.cpu_rdata[9:0] Output Config/Status Register read data.clkddr Input DDRx user domain clock. clkddr <= 200Mhzddr_oprq Output Active HIGH output indicating that encoder requesting thebeginning of a new DDRx batch data transfer. The signal will keepactive until ddr_opask assert and will keep LOW during the time ofthe data transmission.ddr_opwrt Output DDRx write or read flag. Valid data is indicated by ddr_oprqassertion.‘1’: DDRx write.‘0’: DDRx read.ddr_opfst Output Within One CTU(64x64) unit coding time, there may have multipleDDRx batch data transfer , when the signal is set to ‘1’, itindicating that the current batch data transfer is the first batch.■The signal is not necessary for DDRx wrtie or read.ddr_opnum[9:0] Output The number of data(128bit) to be transferred for a DDRx batch datatranfer. Valid data is indicated by ddr_oprq assertion.ddr_opaddr[27:0] Output 128bit aligned memory address of the first data(128bit) of a DDRxbatch data tranfer. Valid data is indicated by ddr_oprq assertion.Important Note:■ ddr_opaddr represent the first 128bit data address for a DDRxbatch data transfer, and the other 128bit data of the batch datatransfer have consecutive address increment by 1 .■ if the address range beyond external DDRx valid range, the highbits of the address can be discarded. For example, 1GB DDRxmemory requires 26 address bits to uniquely address each128bit and only ddr_opaddr[25:0] used.ddr_opask Input Active HIGH pulse indicating that external DDRx module is responseto encoder DDRx R/W requries.ddr_opwdrq Input Active HIGH pulse indicating that external DDRx module requires anew ddr_opdo[127:0] which will write to DDRx. When ddr_opwdrqset to ‘0’, ddr_opdo will keep unchanged.Important Note:■ When ddr_opwdrq active high, a new ddr_opdo will occurs in themean time, not the next rising clkddr.■ The first valid write data of the batch data transfer occurs whenddr_oprq assertion, and when the first ddr_opwdrq assert, thesecond data of the batch data transfer will occurs on ddr_opdo. ddr_opdo[127:0] Output The data write to DDRx.The first data of a new batch data transfer will occurs when ddr_oprqassert, and will keep unchanged until ddr_opwdrq assert. Onceddr_opwdrq active high, a new ddr_opdo occurs meanwhile.ddr_oprvld Input Active HIGH indicating a new read data is valid.ddr_oprdin[127:0] Input The data read from DDRx. Valid data is indicated by ddr_oprvldassertion.ddr_operr Output Active HIGH indicating that a error occurs during DDRx datatransfer. The reason of the error occurs is that all the data transferfor one CTU unit can not be done within the limit time.Once ddr_operr assert, it will keep unchanged until rstn assert.When ddr_operr assert, the result of the encoder may have wrongfor some frames.■The signal is not necessary for DDRx wrtie or read.bso_we Output Encoder bitstream output valid strobe.bso_do[15:0] Output Encoder bitstream output data.Configuration RegistersThe encoder working on the basis of video frame. When start a new frame encoding, Some registers should be cofigured again. When all the necessary configuration done, the enc_frm_start signal is written to corresponding register last to start a frame encoding.The Encoder have 32 configuration registers as shown in Tab2.The configuration register descripition is shown in Tab 3.Fig 2. show the timing sequence of read/write configuration registers. The input clkcpu is limited to 180Mhz.Figure 2. Config/Status Registers wrtie and readTab 2. Configuration Registers AddressAddress[5:0] Type Configuration Register [9:0]00h RW [9:1]: Reserved [0]: enc_frm_start01h RW [9:1]: Reserved [0]: enc_fstfrm02h RW [9:0]: enc_frm_pix_width[9:0] 03h RW [9:1]: Reserved [0]: enc_frm_pix_width[10] 04h RW [9:0]: enc_frm_pix_height[9:0] 05h RW [9:1]: Reserved [0]: enc_frm_pix_height[10] 06h RW Reserved07h RW [9:4]: Reserved[3]: bfrm_en [2:0]: bfrm_num[2:0]08h RW [9]: Reserved [8:0]: [8:0]: ifrm_period[8:0]09h RW [9:1]: Reserved [0]: rate_en0Ah RW [9:3]: Reserved [2:0]: rate_kbps[12:10]0Bh RW [9:0]: rate_kbps[9:0]0Ch RW [9:7]: Reserved [6:0]: rate_fps[6:0]0Dh RW [9:6]: Reserved [5:0]: frmqp_norate[5:0]0Eh RW [9:7]: Reserved[6]: rate_ifrmqp_force [5:0]: rate_ifrm_qp[5:0]0Fh RW [9:0]: Reserved10h RW [9:0]: ddr_src_frminit_addr[9:0]11h RW [9:0]: ddr_src_frminit_addr[19:10]12h RW [9:8]: Reserved [7:0]: ddr_src_frminit_addr[27:20] 13h RW [9:8]: Reserved [7:0]: ddr_ref_baseaddr_16MB[7:0] 14h RW [9:8]: Reserved [7:0]: ddr_bs_baseaddr_16MB[7:0] 15h RW [9]: ddr_bs_write [8]: ddr_bs_write_loop[7:0]: ddr_bs_space_16MB[7:0]16h RW Reserved17h RW Reserved18h~1Fh RW ReservedTab 3. Configuration Register DescriptionName Width Reset Descriptionenc_frm_start 1b 1 When all the necessary configuration done,wrtie enc_frm_start (value: 1) to correspondingregister to start a new frame encoding.enc_fstfrm 1b ■‘1’ : The first frame of the same videosequence to be encoded. In normal case, onlythe first frame of a new video source neededset ‘1’.■‘0’: Not the first frame of the same videosequence.enc_frm_pix_width 11b 1280 frame width (1920, etc); Must be multiple of 8;for Demo version, only support:1920*1080 / 1280*720 / 832*480enc_frm_pix_height 11b 720 frame height (1080, etc); Must be multiple of 8for Demo version, only support:1920*1080 / 1280*720 / 832*480ifrm_period 9 100 the number of non-iframe between twoconsecutive iframe, when set to ‘0’, allencoded frames treated as iframe.when B frame support, the value of ifrm_periodmust be multiple of (bfrm_num + 1 ).bfrm_en 1 0 when set to ‘1’, B-frame used.bfrm_num 3 3 the number of B-frame between twoconsecutive non-bframe.rate_en 1b 0 ■‘1’ : Enalble Rate Control■‘0’ : Disalble Rate Controlrate_kbps 13b 1000 Rate Control kbps (kbps unit).■ max limite: <8Mbps (For Demo Version) rate_fps 7b 30 Rate Control frame rate.■ fps range: [1, 120]rate_ifrmqp_force 1b 0 ■‘1’ : use rate_ifrm_qp as i_frame QP■‘0’ : use Rate Control result as i_frame QP. rate_ifrm_qp 6b 28 When rate_ifrmqp_force set ‘1’, i_frame QP isset to rate_ifrm_qp. range: [12,51]■Reset : 28frmqp_norate 6b 32 When rate_en set ‘0’, use frmqp_norate asframe QP. range: [12,51]ddr_src_frminit_addr 28b 0 Video source frame initial DDRx address (for128bit data width).■ Each frame to be encoded should configurethe DDRx initial address.ddr_ref_baseaddr_16MB 8b 4 Video reference frame space initial DDRxaddress (16MByte unit).■All 16MB space allocated for reference framecan not be used for other purposes.ddr_bs_baseaddr_16MB 8b 6 Encoder bit stream space initial DDRx address(16MByte unit).ddr_bs_space_16MB 8b 2 Encoder bitstream space size in 16Mbyte.■All space allocated for bitstream can not beused for other purposes.ddr_bs_write 1b 1 When this bit is set to ‘1’, the encoderbitstream will write to external DDRx.When set to ‘0’, only direct export modesupported.ddr_bs_write_loop 1b 1 When this bit is set to ‘1’, and when theDDRx bitstream space is write full, nextbitstream data will write to the beginning of thebitstream space again.when set ‘0’ and the DDRx bitstream space iswrite full, no more bitstream data writeStatus Registers.The result or status of the encoder can be acquried by status register, such as frame bitstream length or frame done flag.Tab 4. Status Registers AddressAddress[5:0]Type Status Register [9:0]20h R [9:8]: Reserved [7:0]: Device_ID[7:0]21h R [9:8]: Reserved [7:0]: Vendor_ID[7:0]22h R [9:8]: Reserved [7:0]: Revision_ID[7:0]23h R Reserved24h R Reserved25h R [9:1]: Reserved [0]: enco_frm_done26h R [9:0]: enco_frm_bs_numbyte[9:0]27h R [9:0]: enco_frm_bs_numbyte[19:10]28h R [9:2]: Reserved[1:0]: enco_frm_bs_numbyte[21:20]29h~3Fh R ReservedTab 5. Status Registers DescriptionName Width DescriptionDevice_ID 8 ffhVendor_ID 8 65hRevision_ID 8 30henco_frm_done 1 A ‘1’in this bit indicating that encoder now is in idlestate. When enc_frm_start assert, enco_frm_done willkeep‘0’until the frame done.enco_frm_bs_numbyte 23 Number of byte of the bitstream for video frame havejust been encoded.DDRx write/readFig 3. show the DDRx write timing sequence of the encoder user interface.Fig 4. show the DDRx read timing sequence of the encoder user interface.No matter write or read, the memory address of a batch data transfer is consecutive for any two neighboring 128bit data.Fig 3. DDRx Write for batch data tranfserFig 4. DDRx Read for batch data tranfserFig 5. DDRx write and read within CTU encoding timeAs shown in Fig 5, for each CTU64 encoding unit, max. 5 batch data transfers is required and they should be done within one CTU64 encoding time. For current version encoder, 8400 fixed clkenc period (not clkddr) is required for each CTU64 unit.■ When one batch data transfer is finished, the subsequent batch data transfer (ddr_opfst=0), if exist, will request to transfer data immediately by assert ddr_oprq. This characteristic can be used for DDRx read or write latency control.■ All the batch data tranfer for the same CTU unit, which the first batch transfer with ddr_opfst assert and max. 3 subsequent batch transfers with ddr_opfst deassert, should be done within one CTU64 encoding time.Bitstream Outputthere are two ways to export the encoder bitstream. One is write to external DDRx memory, and the other is directly output.Fig 6. show the timing sequence of the bitstream output. The first valid data of the frame bitstream is acquired after video frame encoding start, and the last valid data of the frame bitstream acquired before frame encoding done (Status register : enco_frm_done=1).■The bitstream of the encoder is byte aligned, and the output data bit width used for bitstream is 16bit, so the last byte (bso_do[7:0]) of the frame bitstream may be discarded when the value is zero.Fig 6. Encoder Bitstream direct outputDDRx Vsrc Frame Arrangement■ When start a new video frame encoding, the source frame to be encoded should avalible on the external DDRx memory.■ The video frame stored in DDRx memory is based on CTU(64×64) unit and all of the CTU units are stored in sequence order.■ As shown in Fig 7, the video frame is split into some CTU units. Each CTU unit have 64 pixel in horizontal and vertical direction. In the case of frame boundary, the CTU unit may have less than 64 pixel in Horizontal or Vertical, the region byond frame boundary should be filled by constant data.■ Each CTU unit have 4096 luma data and 2048 chroma data (YUV420). DDRx allocate 8192 byte memory space to store one CTU unit. The first 4096 byte space is used to store 4096 luma data and next 2048 byte for chroma data, the last 2048 byte not used.■ The DDRx user data width of the encoder is 128bit. For 64*64 CTU unit, 16 consecutive luma data or chroma data constitute a 128bit data. As shown in Fig8, For example, lumadata Y00 to Y015 constitute a 128bit data(MSB: Y00), chroma data U00V00 to U07V07 constitute a 128bit data(MSB: U00), etc.Figure 7. DDRx Video source frame arrangementFig 8. DDRx CTU unit arrangementE50B_Xilinx_K7_Demo V3.0 ZoBoVision H.265 Encoder IP User Guide 21深圳市中博视清科技开发有限公司video265@service@。
H.264(解码器)
从H.264解码器原理图到任务图的分析1. H.264解码器原理图1 H.264解码器原理框图解码器从NAL 接收压缩后的比特流,然后经过嫡解码和重排序,得到量化后宏块系数X ,再经过逆量化、逆变换生成残差系数'n D 。
这一过程和编码器重建码流生成'n D 的过程一致。
使用码流中解出的头信息,解码器从参考帧中得到预测宏块P 和编码器形成的原始预测宏块P 相同。
P 与'n D 相加得到'n F 。
最后对重建图像进行滤波,去除块效应后可得到解码图像。
从NAL 进入熵解码模块的码流的数据速率是不恒定的,因为不同时刻的视频数据被熵编码压缩的程度不一样。
但是经过熵解码和重排序后的数据产生量化系数集2. 系统参数选择表1列举出了各种标准视频格式的分辨率和帧率,表中所列视频格式从上到下分辨率越来越高,但是运算复杂度也越来越大。
因为在大多数场合并不要求高清视频,如视频会议,可视电话等,所以本课题选择了一种分辨率适中的常用的视频格式——CIF(352x288)。
表1 各种标准视频格式的分辨率和帧率以参考文献[1]的系统设计指标作为本课题H.264解码器参数选择依据。
具体参数均列于表格2中。
表2 系统参数表 部分参数的计算:处理单个宏块的时钟个数:****M Bwidth M Bheight ClkNum SysClk width height F(1)其中,*MBwidth MBheight 表示宏块的大小,*width height 表示图像格式的大小;F 代表帧频,SysClk 代表系统时钟。
将表格中的参数代入公式1,计算出系统在54MHz 时钟下处理一个宏块需要4546个时钟周期。
3. H.264解码器任务图的构建根据图1的解码器原理图和表2的参数选取,构造出图2所示的任务流图。
在该图中,除了C7向C6的突发数据量是3072bits(一个宏块),其它任务之间的单次数据交互量均为192bits(一个块)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FS-HBX2100系列增强型嵌入式高清数字解码矩阵(H.265)
一、产品图片:
二、产品概述:
FS-HBX2100系列增强型嵌入式高清数字解码矩阵是专为中、大型电视监控系统的中心管理而设计,采用最新的安防专用编解码芯片,针对H.265标准及4K超高清编解码,同时向下兼容H.264产品的综合矩阵。
采用嵌入式LINUX架构,模块化结构,保障系统的稳定运行。
可通过ONVIF及多种私有协议接入各种主流IP摄像机的图像,也可以通过ONVIF服务器端版本、RTSP协议或多种私有协议接入NVR、DVR、CVR连接的摄像机,还可以通过流媒体转发接入外网的IP摄像机图像,实现图像解码、分割、开窗等功能,通过硬件FPGA方式实现外部信号源(计算机等)的输入和拼接控制,克服网络方式带来的外部源输入压缩损失和拼接不同步问题,为数字化监控系统的解码上墙及多信号输入管理等提供一站式解决方案。
该增强型嵌入式高清数字解码矩阵的板卡按输出路数分为两种,即:3路卡和5路卡。
3路卡:支持H.265解码,向下兼容H.264,单屏最大支持32分割,单卡最大同时解码96路图像。
单屏支持1200W(单画面)、300W(4画面)、960p(9画面)、720P(16画面)、D1(25画面)、CIF(32画面)图像解码。
5路卡:支持H.265解码,向下兼容H.264,单屏最大支持16分割,单卡最大同时解码80路图像。
单屏支持800W(单画面)、1080P(4画面)、 720P(9画面)、D1(16画面)图像解码。
三、产品特点:
◆采用Linux操作系统,嵌入式硬件,运行稳定可靠;
◆通过硬件FPGA实现拼接功能,克服传统拼接的网络延时、解码延时、拼接不同步的问题;
◆支持HDMI外部源接入,接入系统的其他信号参与图像切换和拼接显示(实时非压缩模式);
◆可接入HDMI/VGA编码器的网络信号,实现解码远程计算机或其他高清视频设备的画面;
◆兼容所有版本ONVIF协议的网络摄像机、网络球机,也可以通过部分私有协议接入;
◆支持不同品牌不同分辨率的网络摄像机混合解码;
◆支持通过ONVIF服务器端版本、RTSP协议以及部分私有协议接入NVR、DVR、CVR转发的前端摄像机信号;
◆可手动添加和自动搜索网络摄像机的IP地址,接入的IPC数量无限制;
◆可用固定IP或域名进行添加端口号来接入远程的网络摄像机视频;
◆支持任意数量屏的连接,单屏最大支持16分割(5路卡)和32分割(3路卡)显示;
◆内嵌行业内平台软件功能,可用鼠标任意拖拽摄像机IP地址到系统中的任意一个窗口解码显示;
◆可以分组切换画面,实现多屏自动轮循和单屏自动轮循;
◆支持12组场景设置及轮播;
◆采用CS架构的主控操作模式,嵌入式服务器架构,性能稳定;
◆支持多平台控制,支持PC客户端、嵌入式本机客户端、三维键盘三种操作方式;
◆个性化管理功能,分普通用户和高级用户权限;
◆可通过客户端调用NVR录像并在拼接屏上实现回放;
◆提供SDK,支持第三方软件接入控制。
四、应用范围:
增强型嵌入式高清数字解码矩阵自带内拼接、分割功能,广泛应用于道路交通、平安智慧城市监控、军队、工厂、学校、银行、商场、大型公共场所、森林防火、智能楼宇等各类场合的视频监控中心。
实现前端的网络视频信号的解码,及对大屏显示的控制。
五、应用方案:
六、技术参数
◆ 5路卡设备的技术参数:
◆3路卡设备的技术参数:。