H.264及编解码调试

H.264是国际标准化组织(ISO)和国际电信联盟(ITU)在2002年12月共同提出的继MPEG-4之后的新一代数字视频压缩格式,其具有更高的编码效率,并注重对移动和IP网络的适应,考虑信道的特点,能控制误码扩散。

本文将简单介绍H.264编码的原理,并使用JM 18.61进行编解码器的调试。

一. H.264简介

1. H.264的特点2

  • 压缩比高:在同等图像质量的条件下,采用H.264技术压缩后的码流,数据量只有MPEG-2的1/2;
  • 容错率高:H.264码流具有较强的抗误码特性,可适应丢包率高、干扰严重的信道,如IP和无线网络;
  • 网络适应性强:H.264提供了网络适应层,使得H.264的文件能容易地在不同网络上传输;
  • 计算复杂度高:H.264使用较高的计算复杂度,换取优越的性能,其复杂度相当于MPEG-2的2—3倍。

2. H.264编解码器

H.264编码器结构与前代MPEG-2标准差别不大,均主要采用变换编码、DPCM与运动补偿的混合结构。编解码器的结构如图1-1所示。


图1-1 H.264编解码器框图

3. H.264采用的先进技术

(1) 分层设计

H.264在视频编码层(VCL)和网络提取层(NAL)之间进行概念分割,以实现在不同的传输环境下的有效传输,便于与当前和将来的编码格式和不同类型的网络进行无缝连接。分层结构如图1-2所示。


图1-2 GOP示意图(以12帧为例)

(2) 帧内预测编码

根据邻近块的值来预测当前宏块的值,再对预测值和原始值的差值进行变换、量化和编码。对于亮度块,使用4×4与16×16编码模式,对色度块采用8×8编码模式。

以亮度块的4×4帧内预测模式为例,由周围的15个像素预测4×4的16个像素,共有9种预测模式,分别计算各自的SAE,以最小者作为该块的预测模式。

(3) 帧间预测编码——基于块的运动补偿

  • 树状结构运动补偿:使用不同大小和形状的块进行运动补偿(低频区域使用大块,高频区域使用小块);
  • 使用1/4像素精度运动矢量
  • 在多个参考帧中进行运动搜索,选择一个与编码帧最相似的帧作为参考帧
  • 引入SI帧和SP帧:适应码流带宽自适应和抗误码的要求,改善网络亲和性,支持流媒体服务

图1-3 运动补偿中的宏块和子宏块模式

(4) 整数变换

使用整数DCT代替MPEG-2中的DCT,保证变换中无精度损失,且标准中对正反变换有详细说明,不会出现误匹配。另外,整数变换仅需要移位和加法,最大程度提高运算效率。

(5) 量化处理

H.264标准支持52个量化步长,量化参数QP每增加6,量化步长Qstep增加一倍。量化步长取值范围很广,这就为编码中兼顾比特率和编码质量提供了足够多的灵活度和准确度。

(6) 去块效应滤波

为消除块效应,H.264编码系统的预测环路中增加了自适应去块效应滤波器。

(7) 熵编码

H.264标准中给出了两种熵编码方法:CAVLC(Context-based Adaptive Variable Length Coding,基于上下文的自适应可变长编码)和CABAC(Context-based Adaptive Binary Arithmetic Coding,基于上下文的自适应二进制算术编码),其中前者为基本编码方法,后者可选编码方法,且后者的编码性能相较于前者较好,但计算复杂度更高。

4. 概念说明

为了便于理解后面JM编码器的相关内容,这里将MPEG-2中包含的、但在H.264中略有区别的一些概念再做一下说明。

(1) 视频编码帧

  • I帧(Intra Frame,帧内编码帧):只使用本阵内的数据进行编码(DCT、量化、熵编码),压缩比较低,约为(2—5):1。此外还有IDR帧(Instantaneous Decoding Refresh Frame),是GOP的第一个I帧(一种特殊的I帧)。IDR帧之后的所有帧都不能参考IDR帧之前帧的内容(而位于普通的I帧之后的P/B帧可以参考其之前的I帧),也就是说,从IDR帧开始,重新算一个新的序列开始编码,因而播放器永远可以从一个IDR帧开始播放,因为在其之后没有对于任何其之前帧的参考。3
  • P帧(Predictive Frame,前向预测编码帧):以前面最靠近的I帧或P帧作为参考进行前向预测编码。
  • B帧(Bidirectional Predictive Frame,双向预测编码帧):以一个前面的参考帧和一个后面的参考帧进行双向预测编码。2

(2) GOP

GOP(Group of Pictures,图像组)是将一个图像序列中连续的几个图像组成的一个小组,是对编码后的视频码流进行编辑、存取和压缩编码的基本单元,包含不同种类编码的帧。2


图1-4 GOP示意图(以12帧为例)

GOP大小不固定,但GOP一定以I帧开始,但每个GOP可能包含多个I帧。

增大GOP或提高GOP中P/B帧的占比,可以提高压缩比,降低码率。因此一般而言,在码率一定的条件下,GOP越大,图像质量越好(P/B帧的比重更大);在图像质量一定的条件下,GOP越大,码率越低。

闭合GOP(Closed GOP)与开放GOP(Open GOP):在H.264的GOP中,所有的GOP都是独立解码的,与其他GOP无关,即它们都是“闭合”的。但是在HEVC中,GOP的结构发生了变化,采用了“开放”的结构,在解码过程过可能会参考其他GOP的数据。4

(3) 帧重排

由于B帧是双向预测帧,因此在后向预测时,需要以其后面的P或I帧作为参考,因此需要将原始图像顺序重新排序后送入编码器2,如图1-5所示。(图1-4表示的是播放顺序。)


图1-5 帧重排后的图像序列(编解码顺序)

二. H.264解码器调试

在ldecod项目中,打开decoder_test.c,可以修改输入和输出文件名,如:

#define BITSTREAM_FILENAME  "highway_qcif.264"
#define DECRECON_FILENAME   "highway_qcif_dec.yuv"

即可将.264文件解码为.yuv文件。


图2-1 解码结果

三. H.264编码

1. 编码参数

部分需要调整的编码参数的含义如下表所示。

参数 含义 取值
13/56/57 InputFile/
OutputFile/
ReconFile
输入文件/
输出文件(.264)/
重建文件(.yuv)
30/31/
33/34
SourceWidth/SourceHight/
OutputWidth/OutputHeight
输入、输入视频序列的宽、高
16 FramesToBeEncoded 编码帧数
72 IntraPeriod GOP内I帧的周期 0表示仅GOP的第一帧为I帧
73 IDRPeriod IDR帧的周期,表示GOP长度 0表示仅GOP的第一帧为I帧
77 EnableIDRGOP 是否允许IDR帧 0为禁用,1为允许
78 EnableOpenGOP 是否允许开放GOP 0为禁用,1为允许
180 NumberBFrames 两个I/P帧之间B帧的数目
347 PrimaryGOPLength GOP length for redundant allocation (1-16)
444 RateControlEnable 是否允许比特率控制 0为禁用,1为允许
445 Bitrate 比特率(单位:bps)
453 RCUpdateMode 全I帧模式适用模式1,其他情况适用模式2或3,本实验选择2 0:原始的JM率控制;
1:对所有帧都适用的码率控制算法;
2:在1的基础上考虑到I/P Slices的量化参数;
3: 混合二次码率控制算法,即在控制过程中考虑到实时的码率情况

有关IntraPeriodIDRPeriodNumberBFramesPrimaryGOPLength之间的优先级关系:

  • IDRPeriod决定了GOP的长度,而IntraPeriod只决定了GOP内两个I帧之间的距离,因而后者小于前者(若后者大于等于前者,则均相当于IntraPeriod = 0)。故优先级:IDRPeriod > IntraPeriod;
  • NumberBFrames决定了两个I/P帧之间的B帧数量,但只有在NumberBFramesIntraPeriod时才有效,即优先级:IntraPeriod > NumberBFrames
  • PrimaryGOPLength一般设置为与IDRPeriod相同;即便不相同,也不对码流产生影响。故优先级:IDRPeriodPrimaryGOPLength

以上结论可以通过与下面的例子结合理解(NumberBFrames均设为2):

# IntraPeriod IDRPeriod PrimaryGOPLength GOP 备注
1 0 15 15 IBBPBBPBBPBBPBP
2 11 15 15 IBBPBBPBBPBIBBP
3 18 15 15 IBBPBBPBBPBBPBP 与1结果相同
4 2 15 15 IBIBIBIBIBIBIBI
5 11 15 12 IBBPBBPBBPBIBBP 与2结果相同

2. 编码器调试

在下面的实验中,我们均设定IntraPeriod = 0,PrimaryGOPLength = IDRPeriod,以控制变量。

分别选择比特率为1600、1650、1700、1750、1800 kbps,再对每一比特率分别设置GOP格式为GOP15(2B)、GOP12(2B)、GOP9(2B)、GOP4(1B)、GOP12(无B)和GOP1(全I)进行编码。

运行lencode项目,对miss.yuv进行编码,运行结果如下:


图3-1 编码情况(GOP12 (0B) @1800 kbps)

以GOP12(0B)@1800 kbps的情况为例,从表格中可以看到GOP大小为12,并且可以看到帧重排。

四. 结果分析

1. 码流分析

下面使用Elecard StreamEye Tools码流分析软件对编码后的内容进行分析。

以GOP15(2B)的情况为例:


图4-1 对miss.yuv进行GOP15(2B)的H.264编码后的码流信息

图中每个矩形代表一帧(红、蓝、绿分别表示I、P、B帧),我们可以清楚地看出编码后视频的码流结构并且可以看到有帧重排(显示顺序为IBBPBBPBBPBBPBP)。

下面我们以其中的4帧(I、B、B、P)进行分析。


图4-2 I、B、B、P帧的码流信息

我们在预览中打开显示宏块分界线、宏块类型和运动矢量。

画面中,红色、橙色宏块均使用帧内编码(宏块大小略有不同);黄色宏块类型为Inter(B_Skip),表示与前一帧相同,跳过不编码;绿色宏块使用前向预测编码,蓝色宏块使用双向预测编码。

在图4-2中,我们可以看到:

  • 4帧的背景部分变化均很小,因而背景部分均没有进行编码;
  • B、P帧中可看到运动矢量。红色线表示前向预测,绿色线表示后向预测,因此P帧中只有红色线,I帧使用帧内编码,无运动矢量;
  • 通过宏块分界线我们还可以看到H.264中不同形状、不同大小的宏块,且在低频区域的宏块更大。这也是前面提到的H.264采用的先进技术之一。

2. 视频质量客观评价

下面我们对前面编码得到的6中GOP结构的5种比特率的H.264文件进行视频质量客观评价,评价指标采用Y分量的PSNR (dB)。由于编码后H.264文件的实际比特率与目标比特率之间有一定误差,因此我们以实际比特率进行率失真曲线的绘制。


图4-3 六种GOP结构的率失真曲线

从图中可以看到,在码率相同的前提下,视频质量由好到差为:GOP12 (0B) > GOP15 (2B) > GOP12 (2B) > GOP9 (2B) > GOP4 (1B) > GOP1 (all-I)。

下表中列出了6中GOP结构各自的I、P、B帧的占比。例如我们可以比较GOP15(2B)和GOP12(2B),二者P帧占比相同,而前者的B帧占比更大,因而具有更好的图像质量。视频质量相同的前提下,可以进行类比分析,这里不再赘述。

GOP结构 I帧占比 P帧占比 B帧占比 视频质量排序
GOP12 (0B) IPPPPPPPPPPP 8.3% 91.7% 0% 1
GOP15 (2B) IBBPBBPBBPBBPBP 6.7% 33.3% 60% 2
GOP12 (2B) IBBPBBPBBPBP 8.3% 33.3% 58.3% 3
GOP9 (2B) IBBPBBPBP 11.1% 55.5% 55.5% 4
GOP4 (1B) IBPP 25% 25% 50% 5
GOP1 (all-I) I 100% 0% 0% 6

3. 视频质量主观评价

由于我们无法得到实际码率严格相等的一组H.264码流,因此我们只能在同一种GOP结构下进行不同码率的主观评价。以GOP12(2B)为例:


图4-3 GOP12(2B)结构下不同码率的视频图像(依次为1615.2、1657.2、1679.8、1720.8、1825.2 kbps)

事实上,由于相邻两张之间码率只相差大约500 kbps,因此很难看出有差别,即便是最高和最低码率之间的对比,也几乎无差异。

参考资料


  1. Karsten Suehring ↩︎

  2. 《数字电视广播原理与应用》 ↩︎ ↩︎ ↩︎ ↩︎

  3. I帧 B帧 P帧 IDR帧的区别 ↩︎

  4. 【HEVC学习与研究】8.关于GOP与RAP的一些解释] ↩︎

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. WebRTC:stun/turn服务器搭建

    基于coturn项目的stun/turn服务器搭建VoIP (Voice over Internet Protocol), 一种语音通话技术,经由网际协议(IP)来达成语音通话与多媒体会议,也就是经由互联网来进行通信。 NAT (Network Address Translation) 网络地址转换。webrtc是google推出的基于浏览器的实时语音-…...

    2024/5/7 23:28:50
  2. 在Window7(32位)+Windows(2003 server Enterprise)安装Oracle EBS R12(2)-亲测成功运行

    2020年8月12日开始尝试在XP上安装EBS装机前准备:系统环境: Win 7 32 位硬盘:2T内存:4G,如果可以最好是加到8G,不然有点慢CPU:E6700@3.2G,古董机,一般都是可以!2,按照网络上的教程,下载了以下文件:EBS R12:EBS R12 Cygwin 专用安装包Visual.Studio.2005.Profession…...

    2024/5/7 4:04:10
  3. iOS进阶:【手势全埋点】(轻拍手势、长按手势、捏合手势、旋转手势、轻扫手势、平移手势、屏幕边缘平移手势)

    前言 手势识别器必须被添加在一个特定的视图上(比如UILabel、UIImageView等控件),这需要通过调用UIView类中的-addGestureRecognizer:方法进行添加。 手势识别器也使用了Target-Action设计模式。当我们为一个手势识别器添加一个或多个Target-Action后,在视图上进行触摸操作…...

    2024/5/5 6:40:58
  4. Jmeter基本使用

    Jmeter下载安装 Jdk环境变量配置链接: https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html jmeter官网连接: http://jmeter.apache.org/ 操作步骤: 1、下载jdk,配置环境变量 2、下载jemeter安装包 注:对应的jdk版本不可太低,一般jmeter3.0的对应jdk1.7,j…...

    2024/5/5 8:47:58
  5. python 互站网数据销量的获取

    互站网数据销量的获取,有需求老铁可以学习,废话不多说,直接上代码!特别申明以下代码,仅仅学习参考!不可用于商业化!sql语句 DROP TABLE IF EXISTS `cmf_huzhan`; CREATE TABLE `cmf_huzhan` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`price` varchar(255) NOT NULL DE…...

    2024/5/5 9:36:11
  6. Excel基本公式,Leo老师来教你

    在工作学习中,我们经常会遇到Excel基本公式这样的问题。鲁迅先生说过:伟大的成绩和辛勤劳动是成正比例的,有一分劳动就有一分收获,日积月累,从少到多,奇迹就可以创造出来因此,面对Excel基本公式我们应该有努力探索的精神。不吃饭、不睡觉,打起精神赚钞票!对于这个问题…...

    2024/5/9 16:11:31
  7. GSM采集改号改频教学

    GSM采集改号改频教学GSM改号原理及作用GSM改频点原理及作用 出此文章主要为了交流采集的Ubuntu系统操作 如有技术交流请联系 GSM改号原理及作用 GSM改号说白了就是把采集系统里面默认的回拨号码给成你自己的。 这样才可以实现采集回拨 GSM改频点原理及作用 GSM采集改频,这个很…...

    2024/5/8 7:17:47
  8. java实现导出复杂的word文档

    早几天来了个任务,要求将用户填写的数据导成word文档。主要是给过来的word模板过于复杂,模板数据页只有两页,但包含单选框、多选框,并且前面却有七八页的文字说明。这种情况不适用于直接使用poi操作属性,生成文档。百度一翻,发现使用freemark即可轻松实现。主要参考https…...

    2024/5/8 10:13:10
  9. 服务链接失败解决方案

    ...

    2024/5/7 21:54:02
  10. Java架构师面试网整理-JVM面试专题

    1、什么情况下会发生栈内存溢出? 答:如果线程请求分配的栈容量超过java虚拟机栈允许的最大容量的时候,java虚拟机将抛出一个StackOverFlowError异常2、你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。 答:Serial收集器、Parallel(并行)…...

    2024/5/5 13:36:28
  11. Vue(路由)4.动态路由

    vue-router 文章目录vue-router动态路由路由对象$router 对象$route 对象$route.params 动态路由 有的时候,我们需要把满足某种规则的路由全部匹配到同一个组件,比如不同的商品的 url /item/1 /item/2 /item/3 ...我们不可能为每一个商品都定义一个独立的组件,而是把它们都映…...

    2024/5/10 3:39:02
  12. sqlserver 给数据库相同字段的数据加上流水码,使数据唯一(内附数据位数不足补零)

    SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY f43 ORDER BY f43) > 0 THEN f43 + right(0000+convert(varchar(20),ROW_NUMBER() OVER(PARTITION BY f43 ORDER BY f43)),4) ELSE f43 END AS f43FROM spRIGHT(位数+CAST(要判断的字段 AS nvarchar(50)),位数 )...

    2024/5/4 6:48:11
  13. 【数据结构】第4章 串、数组和广义表 KMP算法

    嘿嘿嘿在B站找着俩视频动画理解和手算做题...

    2024/5/1 10:02:34
  14. javascript中数组的深拷贝的方法

    一、什么是浅拷贝在js当中,我们常常遇到数组复制的的情况,许多人一般都会使用“=”来直接把一个数组赋值给一个变量,如 var a=[1,2,3]; var b=a; console.log(b);  //输出的是1,2,3 a[2]=0; console.log(b);  //输出的是1,2,0 把数组a用等号“=”的形式复制给变量b,这种…...

    2024/5/6 23:42:50
  15. 懒执行与懒加载

    懒执行懒执行就是将某些逻辑延迟到使用时再计算。该技术可以用于首屏优化,对于某些耗时逻辑并不需要在首屏就使用的,就可以使用懒执行。懒执行需要唤醒,一般可以通过定时器或者事件的调用来唤醒懒加载懒加载就是将不关键的资源延后加载懒加载的原理就是只加载自定义区域(通…...

    2024/5/6 6:28:16
  16. ULPFEC在WebRTC中的实现

    jianshu.com/p/06a27ebacec7...

    2024/5/5 6:22:47
  17. application配置文件在config中封装

    在application中配置我们所需要的信息 openplatform-portal:protocal: httpstenantId: xxxxappKey: xxxxxxxxxxxxappSecret: xxxxxxxxxxxxxxxxxxxxxdomainName: xxxxxxxxxxxxxxrootNodeCode: GO_xxxxxxxxxxxxxxxxxxgetRootNodeUrl: /mozi/organization/getRootOrganizationgetS…...

    2024/5/9 18:01:28
  18. mybatis中的结果映射resultMap

    引用场景当实体类属性名和数据库中的字段名不一样的时候,可以采用result进行映射 在多表查询的时候,可以建立映射以简化数据库操作 另外:解决属性名和字段名不匹配问题也可以在sql语句中用as起别名(较为繁琐)属性名和字段名不匹配 MyBatis 会在幕后自动创建一个 ResultMap,…...

    2024/5/9 10:06:41
  19. linux挂载SD卡

    linux挂载SD卡 (1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡 MP805M板子插入SD卡后显示 SD30 slot is without WP mmc1: new high speed SD card at address 5bc0 mmcblk0: mmc1:5bc0 SD02G 1.83 GiB mmcblk0: p1 [/]# fdisk -l Disk /dev/mtdblock0: 1 MB, 11796…...

    2024/5/7 0:04:53
  20. Vue(路由)5.queryString

    vue-router 文章目录vue-routerqueryString$route.query编程式导航路由组件的复用watch queryString 有的时候,我们可能也会用到 queryString <select v-model="sort"><option value="desc">从高到低</option><option value="a…...

    2024/5/9 10:06:24

最新文章

  1. 第十讲:指针(2)

    第十讲&#xff1a;指针&#xff08;2&#xff09; 1.对于数组名的理解1.1验证数组名就是数组首元素的地址1.2sizeof数组名和&数组名1.2.1sizeof数组名1.2.2&数组名 2.使用指针访问数组3.数组传参的本质4.冒泡排序5.二级指针6.指针数组7.指针数组模拟二维数组 这一讲讲…...

    2024/5/10 8:47:40
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/9 21:23:04
  3. 全自动封箱机的工作原理:科技与效率的完美结合

    随着科技的不断发展&#xff0c;越来越多的自动化设备走进了我们的日常生活和工业生产中。其中&#xff0c;全自动封箱机作为物流包装领域的重要一环&#xff0c;凭借其高效、精准的工作性能&#xff0c;正逐渐成为提升生产效率、降低劳动成本的得力助手。星派就来与大家深入探…...

    2024/5/10 0:09:42
  4. 用Python实现办公自动化(自动化处理PDF文件)

    自动化处理 PDF 文件 目录 自动化处理 PDF 文件 谷歌浏览器 Chrome与浏览器驱动ChromeDriver安装 &#xff08;一&#xff09;批量下载 PDF 文件 1.使用Selenium模块爬取多页内容 2.使用Selenium模块下载PDF文件 3.使用urllib模块来进行网页的下载和保存 4.使用urllib…...

    2024/5/9 23:55:23
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/10 1:36:26
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/9 7:40:42
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/9 2:44:26
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/10 2:07:45
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/10 8:07:24
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/9 5:40:03
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/10 8:16:30
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/10 2:07:43
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/10 2:07:43
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/9 4:12:16
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/9 7:40:35
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/9 19:47:07
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/9 7:40:34
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/10 2:07:41
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/9 5:02:59
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/9 4:31:45
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/9 16:54:42
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/10 1:31:37
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/9 6:36:49
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/9 4:33:29
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57