下一代视频编码技术2023
下一代视频编码技术
下面将从这两个角度来介绍华为云视频在下一代视频编码技术上的一些工作。这些技术得益于华为2012 媒体技术院全力支持。
2.1 下一代视频编码标准技术
从上图可以看出,下一代的视频编码标准大概分为三个阵营或者三个类型:
国际标准:由 MPEG、VVC 联合推动的像 VVC/H.266还有 EVC。
国内标准:国内标准组织正在推出或已经推出 AVS3 的 phase1、AVS3 的 phase2,两者主要差别在于 AVS3 第1 阶段标准瞄准 H.266,第二阶段的标准则是瞄准未来, 可能会加入一些智能编码的技术。
谷歌牵头的 AOM 联盟推出的 AV1,是一个开源技术。
下一代的视频编码技术仍是采用传统的演进思路——在经典架构上做模块增强。在H.266CFP 时,华为联合其他几家公司提了 P41 提案,在 PSNR 和 MOS 评估方面都是排名第一,这个提案也是后面的基础。华为在 VVC 里的核心专利数量已属于第一阵营,这是一个了不起的成就,也说明了国内的视频压缩编码基础研究实际上不弱于欧美传统的公司。
以 VVC 为例,对其新增的增强工具进行盘点。纵轴是每个工具的压缩收益,横轴是每个工具编解码复杂度,编码复杂度的权重可能会更高一点。VVC 在块划分、帧内预测、帧间预测、熵编码、变换量化等多个模块上进行了增强,其中主要的增强是帧内、帧间预测、块划分、滤波的增强以及机器学习工具演进带来的收益。VVC 暂时没有引入深度学习这一类编码工具。
图中还有三个用红圈标出来的工具,这是 VVC 中公认 trade off 比较好的三个工具点。蓝色的是 ALF,这是大家比较熟悉的自适应环路滤波,其实它在 H.265的时代就已经有了, H.266 将它引入标准中;绿色的是仿射运动预测,这个主要是由华为提出的;橙色的是量化技术。
EVC 标准的提出某种程度是因为 H.265/H.266的专利政策不友好,有可能导致 H.266 的落地都比较困难。MPEG 希望能通过一个新的专利友好的标准来推动落地,同时也促使改变 H.266、H.265 的专利授权政策。EVC 由华为、三星、高通等共同提出推动,华为在这里面加入了很多技术。在标准立项时期望它比 H.265 的压缩性能提升20%,实测在4K 娱乐视频上相比 H.265 压缩效率提升达30% 以上,目前已经进入了最终的标准投票阶段。
AVS3 是国内提出的标准,它的 phase1 是瞄准 H.266 标准的,并且在2019 年3 月份就已经制定完成率先推出,在2019 年9 月份,华为海思也同步推出了 AVS3 8K 的解码芯片,AVS3 相对H.265 性能提升了20% 以上,并且针对娱乐视频和监控视频做了很多针对性的设计,性能上还可进一步提升。
H.266 实际已经基本定稿,它的压缩效率在4K 视频场景下相较于 H.265 能提升40% 左右,其解码复杂度相对提升60%,目前看最大的问题还是专利政策不够透明,而且专利费可能比较高,推广节奏可能相对比较慢。
EVC 也基本定稿, 而且其压缩效率也能提升30% 左右,解码复杂度相对 H.265 增加60%。其专利收费可能相对比较低,第二是他的专利收费比较透明和明确,目前主要依靠三星、华为、高通来做产业的推动和生态的构建。
AVS3 在2019 年3 月份推出,在性能上还是有保证的,压缩效率能够提升25%,复杂度增加相对较低,其专利收费也是比较低的,正通过互联网等行业做产业的推动和生态构建,目前实际上有很多联盟和公司正在做推动,我们也希望 AVS3 尽快落地。
表格中没有列举 AV1 的数据,这主要是因为它和其他三个标准不太一样,AV1 开源软件实际上是瞄准商用化去做的,大家也比较清楚其压缩效率和解码复杂度。AV1 有个很大的优势就是没有专利费,这是 AOM 联盟的承诺。在产业落地方面 AV1 做的很好,生态构建走的较前。
2.2 AI编码
下一代视频编码标准还有一个趋势就是 AI 编码,这一块实际上从 HEVC、VVC 标准制定就有提出,但因为考虑计算复杂度以及 AI 硬件普适性,都暂时搁置了。但这是个技术趋势。
AI 编码包括两个演进思路:
第一个是全新架构,类似于图像编码,实际上 AI 的图像编码已经取得了不错的成效,谷歌牵头的 AI 图像编码技术都已经得到了很好地应用,但针对视频中的应用还在探索过程中。所谓的全新架构,就是不用传统架构,视频进入黑盒后会得出一个压缩过的视频,这个视频可能没有块划分,也没有各种其他的方式,它的压缩效率会非常高,但这一切还处于研究的过程中。
另外一个思路是基于经典架构,对每个架构里的模块做增强。例如针对块划分、变换、矢量量化、帧内预测做不同的 AI 网络适应和增强。实际上华为也在做这方面的研究,未来可能会提出一些 AI 编码方面的论文或提案。并且我们认为 AI 编码的这两种思路,最终将是融合设计的过程,不会呈相互孤立的状态。
- 华为云视频应用和实践
3.1 云视频简介
上面简单介绍了下一代视频编码标准技术,下面介绍一下从实际商用及非标角度,介绍一下华为云视频在视频编码技术上的应用和实践。
首先介绍一下华为云视频,华为云视频是从2017 年开始构建的,目前包括两大类业务,一种是比较传统的直播、点播、媒体处理以及监控业务,另一种是整个行业正在新晋的服务,比如 RTC、VR/AR 以及超高清直播。华为云视频面向很多的场景,例如娱乐直播、短视频、在线教育、企业直播、4K 直播、4K 制作等等,我们致力于帮助行业客户、伙伴、开发者、ISV 快速上线应用,并帮他们构建差异化的竞争力,实现商业闭环。这里需要重点提一下 RTC,RTC 是华为云视频对下一代视频的理解并作出了实际的推动,针对 RTC,我们重点构建超低时延、音视频质量等差异化竞争力。
3.2 视频编码技术
3.2.1视频编码框架
结合今天的主题,下面重点讲解华为云视频在视频编码技术上的一些工作。这些技术得力于华为2012 媒体技术院全力支持。编码内核采用了一个标准的编码器,类似于前面提到的 H.264、H.265、AVS3、H.266 或者 EVC 这一类,在这个编码内核的基础上,我们面向不同的场景做了不同的编码技术的优化和实践。比如面向 RTC 实时音视频场景,采用低时延编码技术;面向 VR 场景,采用 FOV tile 编码;面向多视角场景,采用空间云边协同编码;面向监控场景,采用智能语义编码;面向直播、点播,采用感知编码和画质增强等;另外,华为云视频借助鲲鹏、昇腾两大专有硬件,加速视频编转码效率。鲲鹏主要面向 CPU 这类计算,昇腾主要面向 AI 方面的加速。
3.1.2标准编码内核
接下来分别介绍一下视频编码的技术,第一是编码内核,华为云在商用编码器上面也有很多的技术积累。比如说近几年在 MSU 的大赛上,HW265 编码器连续两年获得多项测评的第1 名,今年我们也会向 MSU 推出新的编码器。
3.2.3 高清低码
第二个技术是高清低码,高清低码目前在各个厂商或者商业领域里是大家比较默认的技术,也就是说在基于标准编码内核的基础上,能降低码率的同时保证主观质量没有下降,但实际上高清低码理论可行性是现有视频编码是基于香农定理,它的率失真模型都是连续的,但是人眼视觉模型是阶梯性非连续的,在这个阶梯上存在一个降码率的空间。
高清低码一般情况下包括三个模块:
第一是基于人眼 JND 模型,就是说如何找出 JND;
第二是基于 JND 去做感知编码;
第三就是通过感知编码来控制标准编码内核输出,在主观质量不变的情况下大幅降低码率。
高清低码技术现在也走到了一个瓶颈期,原有高清低码的考虑仅来源于编码与传输信道,随着 AI 技术的发展,是否还有进一步的发展空间?
超低时延编码
RTC 场景是我们面向下一代视频产业重点打造的服务能力,RTC 场景下主要是超低时延的编码,我们提出了一个综合的超低时延方案,比如编码和渲染联合优化、编码的内核以及分层编码和信源信道协同等技术手段,面向不同的实时场景会做不同的组合或者应用,我们初步试验发现在1080P 这种场景下进行编码和解码,整体的时延能达到十毫秒级别。
下一代视频编码技术
从上图可以看出,下一代的视频编码标准大概分为三个阵营或者三个类型:
国际标准:由 MPEG、VVC 联合推动的像 VVC/H.266还有 EVC。
国内标准:国内标准组织正在推出或已经推出 AVS3 的 phase1、AVS3 的 phase2,两者主要差别在于 AVS3 第1 阶段标准瞄准 H.266,第二阶段的标准则是瞄准未来, 可能会加入一些智能编码的技术。
谷歌牵头的 AOM 联盟推出的 AV1,是一个开源技术。
下一代的视频编码技术仍是采用传统的演进思路——在经典架构上做模块增强。在H.266CFP 时,华为联合其他几家公司提了 P41 提案,在 PSNR 和 MOS 评估方面都是排名第一,这个提案也是后面的基础。华为在 VVC 里的核心专利数量已属于第一阵营,这是一个了不起的成就,也说明了国内的视频压缩编码基础研究实际上不弱于欧美传统的公司。
以 VVC 为例,对其新增的增强工具进行盘点。纵轴是每个工具的压缩收益,横轴是每个工具编解码复杂度,编码复杂度的权重可能会更高一点。VVC 在块划分、帧内预测、帧间预测、熵编码、变换量化等多个模块上进行了增强,其中主要的增强是帧内、帧间预测、块划分、滤波的增强以及机器学习工具演进带来的收益。VVC 暂时没有引入深度学习这一类编码工具。
图中还有三个用红圈标出来的工具,这是 VVC 中公认 trade off 比较好的三个工具点。蓝色的是 ALF,这是大家比较熟悉的自适应环路滤波,其实它在 H.265的时代就已经有了, H.266 将它引入标准中;绿色的是仿射运动预测,这个主要是由华为提出的;橙色的是量化技术。
EVC 标准的提出某种程度是因为 H.265/H.266的专利政策不友好,有可能导致 H.266 的落地都比较困难。MPEG 希望能通过一个新的专利友好的标准来推动落地,同时也促使改变 H.266、H.265 的专利授权政策。EVC 由华为、三星、高通等共同提出推动,华为在这里面加入了很多技术。在标准立项时期望它比 H.265 的压缩性能提升20%,实测在4K 娱乐视频上相比 H.265 压缩效率提升达30% 以上,目前已经进入了最终的标准投票阶段。
AVS3 是国内提出的标准,它的 phase1 是瞄准 H.266 标准的,并且在2019 年3 月份就已经制定完成率先推出,在2019 年9 月份,华为海思也同步推出了 AVS3 8K 的解码芯片,AVS3 相对H.265 性能提升了20% 以上,并且针对娱乐视频和监控视频做了很多针对性的设计,性能上还可进一步提升。
H.266 实际已经基本定稿,它的压缩效率在4K 视频场景下相较于 H.265 能提升40% 左右,其解码复杂度相对提升60%,目前看最大的问题还是专利政策不够透明,而且专利费可能比较高,推广节奏可能相对比较慢。
EVC 也基本定稿, 而且其压缩效率也能提升30% 左右,解码复杂度相对 H.265 增加60%。其专利收费可能相对比较低,第二是他的专利收费比较透明和明确,目前主要依靠三星、华为、高通来做产业的推动和生态的构建。
AVS3 在2019 年3 月份推出,在性能上还是有保证的,压缩效率能够提升25%,复杂度增加相对较低,其专利收费也是比较低的,正通过互联网等行业做产业的推动和生态构建,目前实际上有很多联盟和公司正在做推动,我们也希望 AVS3 尽快落地。
表格中没有列举 AV1 的数据,这主要是因为它和其他三个标准不太一样,AV1 开源软件实际上是瞄准商用化去做的,大家也比较清楚其压缩效率和解码复杂度。AV1 有个很大的优势就是没有专利费,这是 AOM 联盟的承诺。在产业落地方面 AV1 做的很好,生态构建走的较前。
相关文章:
![](https://img-blog.csdnimg.cn/564d644db10e438aa24aad0e79d2348d.jpeg#pic_center)
下一代视频编码技术2023
下一代视频编码技术 下面将从这两个角度来介绍华为云视频在下一代视频编码技术上的一些工作。这些技术得益于华为2012 媒体技术院全力支持。 2.1 下一代视频编码标准技术 从上图可以看出,下一代的视频编码标准大概分为三个阵营或者三个类型: 国际标准…...
![](https://img-blog.csdnimg.cn/490034e77dfa446dafac1fcb21e2438d.png)
最新最全中小微企业研究数据:海量创业公司信息与获取投资信息(1985-2021年)
一、企业获取投资名单&资方信息 数据来源:搜企网、企查查、天眼查 时间跨度:1985年8月-2021年9月 区域范围:全国范围 数据字段:企业名称、时间、获得投资金额以及投资方信息 部分数据: DateCompany_nameUnit…...
![](https://www.ngui.cc/images/no-images.jpg)
springboot数据源浅析
DataSourceAutoConfiguration分析 SpringBoot有一个自动配置DataSourceAutoConfiguration 为数据源配置 /META-INF/spring.factories文件找到DataSourceAutoConfiguration配置类 一、先来看下DataSourceAutoConfiguration配置类生效的时机,观察源码发现 Configura…...
![](https://img-blog.csdnimg.cn/35f8a5514bfd4ae8af4603cbfc817f8c.png#pic_center)
2022黑马Redis跟学笔记.实战篇(七)
2022黑马Redis跟学笔记.实战篇 七4.11.附近的店铺功能4.11.1. GEO数据结构的基本用法1. 附近商户-导入店铺数据到GEO4.11.2. 获取附近的店铺1. 附近商户-实现附近商户功能4.9. 签到功能4.9.1.BitMap原理1. 用户签到-BitMap功能演示4.9.2.实现签到功能4.9.3.实现补签功能4.9.4.统…...
![](https://img-blog.csdnimg.cn/1fdf89cbd96448639f4c91ede6499339.png)
QT mp3音乐播放器实现框架,Qt鼠标事件,网络编程,QSqlite,Json解析,HTTP请求等
QT mp3音乐播放器实现框架,Qt鼠标事件,网络编程,QSqlite,Json解析,HTTP请求等框架搭建UI设计mp3.hmp3.cpp隐藏窗口标题 最大化 最小化 关闭框架搭建 .pro添加 # 网络 添加多媒体 数据库 QT network multimedia sql添加头…...
![](https://img-blog.csdnimg.cn/7fb0f6603e314dac971a573566136619.png)
硬件学习 软件Cadence day04 PCB 封装绘制
1.文章内容: 1. 贴片式电容 PCB 封装绘制 (型号 c0603 ) 2. 贴片式电阻 PCB 封装绘制 (型号 r0603 ) 3. 安规式电容 PCB 封装绘制 (这个就是 有一个电容,插入一个搞好的孔里面 …...
![](https://www.ngui.cc/images/no-images.jpg)
【Java】yield()和join()区别
一、java 线程调度的背景 java虚拟机要求在多线程中实现 preemptive和priority-based调度,这意味着java中每一个线程被分配了特定的优先级,正整数在定义好的范围内不断减。优先级可以通过开发者改变但是java虚拟机从不改变线程的优先级,即使…...
![](https://img-blog.csdnimg.cn/img_convert/e2b5a52958459086bfe913c3a108fe4f.png)
【MySQL】Java连接MySQL数据库(封装版只需会MySQL)
一、准备普通项目如果创建的是普通的Java项目,我们需要去maven仓库下载jdbc驱动包然导入项目中就能使用,具体步骤详见MySQL数据库之Java中如何使用数据库【JDBC编程】maven项目如果创建的项目是maven项目,我们只需在pom.xml文件里引入一组依赖…...
![](https://www.ngui.cc/images/no-images.jpg)
【java基础】运算符
运算符 operator 运算符优先级 Operators 操作员Precedence 优先级postfix 后缀expr expr--unary 一元的expr --expr expr -expr ~ !multiplicative 〔数〕乘法的 / %additive 添加剂 -shift 移动<< >> >>>relational 关系的< > < > insta…...
![](https://img-blog.csdnimg.cn/img_convert/65128731c99ab9bc6ce3f2478a191029.gif)
带噪学习-概述
在实际应用的时候,我们的样本不会是完全干净的,即存在噪声样本。那使用存在噪声的样本时,我们如何更有效的进行模型学习呢?Label Dependent Nose样本选择(Sample Selection)第一种很直接的想法,…...
![](https://www.ngui.cc/images/no-images.jpg)
Scratch少儿编程案例-多彩打地鼠
专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...
![](https://www.ngui.cc/images/no-images.jpg)
为什么拔掉计算机网线还能ping通127.0.0.1?
前言 当我们在计算机上拔掉网线之后,发现我们仍然可以使用ping命令来ping通本机的IP地址127.0.0.1,这让很多人感到困惑,认为拔掉网线后计算机就无法与外界通信了,为什么还能ping通本机的IP地址呢? 本文的目的是通过对…...
![](https://www.ngui.cc/images/no-images.jpg)
Android kotlin 内、外部存储根目录及测试(可以实现仿微信未读消息数提示数字)
<<返回总目录 文章目录 一、内部存储与外部存储三、外部存储的写读测试(可以实现仿微信未读消息数提示数字)一、内部存储与外部存储 所有Android设备都有两个文件存储区域:内部存储空间(internal Storage)和外部存储空间(external Storage)。所以,Android系统从逻…...
![](https://img-blog.csdnimg.cn/d54670353c4b42acb8b0ce7326b1e4c5.png#pic_center)
Android 7.0 OTA升级(高通)
文章目录1. Full OTA 方式升级介绍1.1 Full OTA 制作第一步:生成 msm89xx-target_files-eng.XXX.zip1.2 Full OTA 制作第二步:Modem 等非 HLOS 加入升级包的方法1.3 Full OTA 制作第三步:生成 update.zip 升级包2. Incremental OTA 方式升级介…...
![](https://www.ngui.cc/images/no-images.jpg)
工作负载之DeployMent
DeployMent 无状态工作负载(Deployment):即kubernetes中的“Deployment”,无状态工作负载支持弹性伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如:nginx、wordpress等。 也是公司中应…...
![](https://www.ngui.cc/images/no-images.jpg)
淘宝tmall页面数据获取,API接口对接程序
item_get-获得淘宝商品详情请求参数请求参数:num_iid652874751412&is_promotion1参数说明:num_iid:淘宝商品IDis_promotion:是否获取取促销价响应参数Version: Date:2022-04-04名称类型必须示例值描述itemitem[]1宝贝详情数据num_iidBigint152081325…...
![](https://img-blog.csdnimg.cn/201497d45b2c4c29a4a2b17fd8adda22.png)
基于粒子群优化算法的电动汽车充放电V2G研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
![](https://img-blog.csdnimg.cn/img_convert/3cf21067dd7d3982fecceea5bd7bff3d.png)
java并发编程原理2 (AQS, ReentrantLock,线程池)
一、AQS: 1.1 AQS是什么? AQS就是一个抽象队列同步器,abstract queued sychronizer,本质就是一个抽象类。 AQS中有一个核心属性state,其次还有一个双向链表以及一个单项链表。 首先state是基于volatile修饰&#x…...
![](https://img-blog.csdnimg.cn/img_convert/350ca132924770fec1fea72e76fc5988.png)
研报精选230219
目录 【行业230219山西证券】煤炭行业周报:复工改善,港口价格企稳反弹【行业230219中航证券】农林牧渔行业周观点:一号文件落地,生物育种超势不改【行业230219华西证券】汽车行业周报:新车密集上市 自主转型提速【个股…...
![](https://www.ngui.cc/images/no-images.jpg)
【PPPoE】PPPoE拨号流程
简介 PPPoE(Point-to-Point Protocol over Ethernet)是一种在以太网上封装PPP协议的方式,常用于在宽带接入中进行拨号。 PPPoE的拨号原理如下: 客户端发起PPPoE Active Discovery Initiation (PADI)报文,广播到网络…...
![](https://img-blog.csdnimg.cn/80ac15a722444010a019ac08796fa812.png)
django项目实战(django+bootstrap实现增删改查)
目录 一、创建django项目 二、修改默认配置 三、配置数据库连接 四、创建表结构 五、在app当中创建静态文件 六、页面实战-部门管理 1、实现一个部门列表页面 2、实现新增部门页面 3、实现删除部门 4、实现部门编辑功能 七、模版的继承 1、创建模板layout.html 1&…...
![](https://img-blog.csdnimg.cn/d55f992349e04e89b1e084f8c242567d.png)
Lesson4---Python语言基础(2)
4.1 内置数据结构 4.1.1 序列数据结构(sequence) 成员是有序排列的每个元素的位置称为下标或索引通过索引访问序列中的成员Python中的序列数据类型有字符串、列表、元组 “abc” ≠ “bac” 4.1.1.1 创建列表和元组 Python中的列表和元组,…...
![](https://img-blog.csdnimg.cn/20190123171442110.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzgwMTY5NQ==,size_16,color_FFFFFF,t_70)
NCHW - NHWC - CHWN 排列
TensorFlow有两种数据格式NHWC和NCHW,默认的数据格式是NHWC,可以通过参数data_format指定数据格式。这个参数规定了 input Tensor 和 output Tensor 的排列方式。 1、data_format 设置为 “NHWC” 时,排列顺序为 [batch, height, width, channels] 设置为 “NCHW” 时,排…...
![](https://img-blog.csdnimg.cn/91df8243fdb24972a5982dc15a41cb56.png)
2019蓝桥杯真题矩阵切割(填空题) C语言/C++
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。 当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正…...
![](https://img-blog.csdnimg.cn/436b07587c2d4349a1d3905b73fc685f.png)
Java线程池的创建以及原理
一、为什么要使用线程池 在外面的日常开发中,也使用了不少池化技术,比如线程池、数据库连接池、HTTP连接池等等都是对这个思想的应用。 池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资…...
![](https://img-blog.csdnimg.cn/748465798e58453e8f57689de2042986.png)
Java集合学习之Map
1.什么是Map Java里的Map接口是一个集合根接口,表示一个 键值对(Key-Value) 的映射。 简单来说就是键和值是一对的,每一个 Key都有唯一确定的 Value对应。 其中要求 键(Key) 唯一,因为是按照…...
![](https://img-blog.csdnimg.cn/81fcc8e1349444c5958d0c31ba37415c.png)
java 基于maven多模块合并打包部署
项目环境 jdk 1.8spring 2.7.xmaven 3.6 项目结构 模块功能 client – 对外service common – 共用工具切面等 main – 启动类 goods – 子模块具体实现 模块间依赖关系 client – 无依赖 common – 无依赖 main – client、common、goods goods – client、common 具体P…...
![](https://img-blog.csdnimg.cn/cc1298f0b2f640bba971490af16171b7.png)
Kubernetes是个什么东东?
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊语,意…...
![](https://www.ngui.cc/images/no-images.jpg)
【go语言grpc之client端源码分析三】
go语言grpc之server端源码分析三newClientStreamnewAttemptLocked上一篇在介绍了grpc.Dial之后,然后再介绍一下后面的 //创建RPC客户端client : pb.NewGreetsClient(conn)//设置超时时间_, cancel : context.WithTimeout(context.Background(), time.Second)defer c…...
![](https://img-blog.csdnimg.cn/6c4d595660b14f2cabc5ddd2ca51dd16.png)
Android 基础知识4-2.6LinearLayout(线性布局)
一、LinearLayout的概述 线性布局(LinearLayout)主要以水平或垂直方式来排列界面中的控件。并将控件排列到一条直线上。在线性布局中,如果水平排列,垂直方向上只能放一个控件,如果垂直排列,水平方向上也只能…...
![](/images/no-images.jpg)
wordpress opml/百度搜索平台
今天在写一道题 https://www.luogu.com.cn/problem/solution/P1591 的时候看大佬开了个数组,我一直想不通如何确定这个数组的大小,为此查了很多资料,自己最终总结出了一套方法 eg:1000! 直接计算N!的数值,然后再去数位数,这个很难,因为N!很有…...
![](/images/no-images.jpg)
wordpress禁用评论/合肥网站优化搜索
继承关系 CCTMXTiledMap -> CCNode 它由CCNode派生,我们已经知道CCNode是cocos2dx的舞台对象的公共父类,所以CCTMXTiledMap也是个舞台对象成员 static CCTMXTiledMap* create(const char *tmxFile); 通过一个文件,创建一个地图对象&#x…...
![](/images/no-images.jpg)
渠道查官网/广东seo推广哪里好
一、this的关系 1)全局代码中的this 2)函数代码中的this在函数代码中使用this时很有趣,这种情况很难且会导致很多问题。这种类型的代码中,this值的首要特点(或许是最主要的)是它不是静态的绑定到一个函数。正如我…...
![](/images/no-images.jpg)
比较好的海报设计网站/青岛网站推广系统
BigDecimal常用于金额的计算,下面总结下这次项目中BigDecimal的用法。 1.加减乘除 2.设置精度 3.取反 加减乘除分别调用函数[java] view plaincopypublic BigDecimal add(BigDecimal value); public BigDecimal subtract(BigDecimal value); public BigDecimal mu…...
![](/images/no-images.jpg)
做化工哪个网站好/3步打造seo推广方案
阅读目录配置 Supervisor启动 Supervisor配置 Supervisor Supervisor 的配置文件通常位于 /etc/supervisor/conf.d 目录下。 在该目录中,可以创建任意数量的配置文件,用来配置 supervisor 如何监控进程。 例如,创建一个 laravel-worker.co…...
![](https://img-blog.csdnimg.cn/b1397e3195b34330ac98791bd372c984.png)
网站什么时候做SEO优化最合适/什么是搜索引擎营销?
1.第一种,单行输入 echo "21124" >> "test.txt"2.第二种,多行输入 格式:cat <<EOF > filename 内容 EOF其中,一个>表示覆盖,两个>>表示添加,EOF是首尾&…...