「我在淘天做技术」音视频技术及其在淘宝内容业务中的应用

「我在淘天做技术」音视频技术及其在淘宝内容业务中的应用

作者:李凯

一、前言

近年来,内容电商似乎已经充分融入到人们的生活中:在闲暇时间,我们已经习惯于拿出手机,从电商平台的直播间、或者短视频链接下单自己心仪的商品。

尽管优质的货品、实惠的价格、精致的布景、有趣的内容输出都是非常关键的影响因素,内容电商也必须基于两个前提:画质要高清、播放要流畅。曾经,有不少商家和主播因为直播间画质较差的问题而苦恼,不了解如何实现高画质开播。

在一系列前沿音视频技术的加持下,淘宝音视频技术团队解决了这个问题。

下图是一个直播间画质体验极致打磨案例,主播通过团队自研的一系列音视频技术,包括视频编码、视频增强处理、视频质量评价等,实现了超低码率的 1080p 高清直播:

左:720p 直播;右:超低码率 1080p 直播

同样还有短视频画质体验极致打磨案例,通过团队自研的上述音视频技术,实现了视频清晰度和纹理细节的大幅提升:

左:增强前;右:增强后

不难发现,在上述案例中,改造后的画面质感变得更好,从「标清」飞跃到了「超清」,人像肤色也变得更自然,连商品色彩都更加准确了。这种肉眼可识别的提升,都来自团队提供的音视频技术能力加持,打造业界领先的音视频体验,尤其是视频画质和流畅度。

但从技术层面上说,如何分析、定位视频内容存在的问题并找到有针对性的改造方法,仍然是一个复杂的过程。这就要从音视频技术的前世今生说起。

二、互联网视频化趋势

时至今日,数字电视的技术已经能够很好的满足我们的视听体验了。在数字电视带来的体验升级的过程中,随着技术的进步,人们告别了磁带,录像带这种存储介质,过渡到了 VCD,DVD 以及如今的 blue-ray(蓝光),也衍生除了对应的 MPEG-2 (H.262),H.264/AVC,H.265/HEVC 和 H266/VVC 这样的视频编码、压缩技术,用以提高画质并有效地节省存储和带宽成本。

广电的这一套视频技术非常专业,制作成本和周期也很高,包括完整,成熟的工业化链路,比如布景、拍摄、处理、剪辑、编码、传输、通信等。长期优质的消费体验,其实给了消费者很强的心智。广电很大程度上就代表了专业,代表了优质的体验,尤其是画质方面。

而 2010 年代中,出现了明显的视频互联网化的趋势,视频的制作和分享在大规模地从传统的广电向互联网,OTT 迁徙。长视频,中视频,直播,短视频相关业务在互联网上蓬勃发展。对于一个互联网公司来说,在技术层面,视频的互联网化做得越好,体验越优,越能更好地吸引商家和 C 端用户。内容的电商化或电商的内容化也成为了很多互联网头部公司的焦点战役。

互联网视频的制作和分享成本非常低,对于 C 端用户来说更是几乎接近于零。为支持好视频的互联网化,很大的工程技术工作就是把之前广电链路的能力在互联网平台上得以实现,从而提供广电级别的视频播放体验。

三、淘宝中的音视频技术

在淘宝的实际内容化业务中,包括视频内容的供给和分发等环节的整个视频业务生命周期,需要综合视频生产、视频处理、视频传输、视频呈现、和音频端到端的的全链路能力,才能确保整体视频的高画质和流畅度。而消费者对于视频画质的需求是越来越高的,比如要兼顾较高的清晰度和播放的流畅度,也要控制从生产到下发的整体成本。

这意味着平台的视频处理技术演进必须面对千变万化的市场需求和业务体量爆炸式增长所带来的各种挑战。为此,团队支持淘宝直播Tab2(逛逛)首页信息流等内容业务的整体解决方案并保持着持续、高速的迭代。

通过对上述技术进行针对性的自研,包括视频编码器、视频增强方案、美颜/美型/美妆、无参考视频质量评价模型以及媒体处理系统,并通过接入低延时传输网络 GRTN,为直播、首页等内容业务提供底层核心技术,打造业界领先的音视频体验,尤其是视频画质和流畅度。

通过持续的技术打磨和算法创新力求高质量、低成本赋能淘宝内容业务,助力淘宝内容化战略,所沉淀的平台技术和产品能力亦可被集团其它业务复用。这些多年来沉淀的技术能力,也曾经在多个音视频核心技术的国际权威比赛中折桂。

四、技术大图

音视频技术包含的技术域涉及到平台上所有音视频流的整个生命周期,从生产到分发,到最后的消费,如下的技术大图所示,包含若干核心技术模块:

音视频技术大图

注:该技术大图中罗列了很多相关技术方案,但并非所有的技术都已经在业务中被采用。

4.1 视频生产

为提升视频内容质量,内容生产者必不可少地会对内容本身进行“编辑”。编辑方式包括但不限于基于人像美化能力提升视频中人物主体的美观程度,基于前处理能力提升内容本身的清晰度,基于风格化滤镜提升视频内容的氛围感,以及基于预定义的剪辑模版生成不同风格的视频等等。如何去提升编辑效果,丰富编辑能力,降低使用门槛,是各大视频生产软件持续优化的方向。

其中人像美化一项编辑能力透出给用户的是美颜,美型,美白,美妆,美体等 5 大子功能。而支撑人像美化效果所依赖的底层算子,包括但不限于,人脸,人体等 2D 到 3D 的视觉算法,并且所有的算法都需要在移动端上对视频进行实时处理。

提升优化底层算子效果的同时,一些场景必须兼顾实时性,发热等性能强相关因素。算子的编排与联合优化,不同端(iOS、Android,PC),不同算力平台的(NPU、GPU、CPU)的适配也是人像美化的攻坚重点。

随着生成式 AI 技术的爆发,AIGC 已成为继 PGC,UGC 之后的新型内容生产方式。但如何平衡好生成内容的丰富性与稳定性,是 AIGC 技术辅助视频生产能否落地的一大挑战。

4.2 视频处理

内容生产者制作的视频内容,包括短视频和直播场景,上传到服务端之后,在最终分发给终端用户之前还需要经过一系列的处理来提升画质和降低码率,我们称之为 TMPS(Taobao Media Processing System)。

TMPS 主要包括三个步骤:

首先是对源内容进行解码,需要兼容各种媒体格式、各种音视频编码标准,包括支持图片格式。

其次使用团队自研的 STaoVideo 视频增强方案对解码后的内容进行增强提升画质体验,包括噪声去除,色彩、细节、亮度增强,超分、超帧、HDR 等手段,其中既有传统方法,也有深度学习的方法。STaoVideo 会自动根据源视频内容的特点和热度选择不同的增强算子,在有限的算力成本下最大化画质提升的效果。

最后是使用更高效的编码器重新编码,包括淘宝内容技术团队自研的 S265 和 S266 编码器,提高压缩效率降低流量成本,同时保障画质没有明显损失。TMPS 支持同时转码出不同分辨率的多路流,其中高分辨率高码率的流用于保障主流用户的画质体验,低分辨率低码率的流用于兼容低端设备和弱网等情况。

4.3 视频传输

从直播内容生产到用户在直播间看到,需要经过一个复杂的 CDN 传输网络,传统的 RTMP 和 HLS 协议延时较大,随着 5G 的兴起,出现了连麦、直播答题等低延时内容形式,传统协议已经无法完全满足业务诉求。因此,淘宝和阿里云一起,建立了通信、直播二网合一的低延时传输网 GRTN,实现了全链路 RTC 传输。配合 CDN 的基础设施,淘宝从 0 到 1 建设了 RTC 流媒体传输协议,在主播推流侧和手淘播放侧对 GRTN 做了率先的业务实践,成功落地淘宝直播且实现了全量覆盖。

淘宝直播的视频传输方面实现了 1 秒内的端到端时延,同时也可以快速满足淘宝不断涌现的业务形态对音视频媒体传输的底层诉求,比如《中国新主播 2023》大赛的“多人连麦 PK”活动。

GRTN 架构示意图

针对直播和短视频体验优化需求,研发基于弱网分类的带宽预测算法,结合实时画质评价实现上行推流分辨率决策,并优化下行 ABR 算法实现低延时直播和点播业务的自适应切流,通过拥塞控制,预加载等算法优化 Qos,实现秒开首帧时间减少 200ms,卡顿降低 50%以上。

当前还在探索错误隐藏、丢包重传、平滑发送、时域分层等算法来提升用户体验。

4.4 视频呈现

随着淘宝内容化进程加深,以及用户对于内容“高清、好看、好玩”的追求,淘宝也在探索新的媒体形态,出现了直播连麦、在线答题、语音播报以及游戏直播等新的内容形式,需要以良好的体验来承接新能力和新用户。

首先,对播放器进行架构升级,通过优化播放逻辑、提升硬解覆盖率以及通过性能和网络建立自适应选流/切流能力,优化在中低端手机上的卡顿和发热等问题;通过支持播放侧超分,后处理增强等方式有效提高用户在弱网下的清晰度。

其次,通过支持 VR/AR 以及 HDR 视频播放,进一步提升视频呈现方式。端侧互动能力也在持续建设,通过更多的道具和互动玩法,比如遮脸合拍等,让用户感觉更好玩更愿意参与其中。

4.5 音频端到端

声音是传递信息的重要媒介,但淘宝直播环境和设备各种各样,在直播间经常混杂各类的噪声影响用户听感,在连麦场景下,则易产生回声和啸叫等问题;主播往往还希望有背景音乐,变声,音效等玩法;内容化主播还希望达到类似演唱会的音质效果。如何利用技术手段,使用户获得“声”临其境的视听感受,成为了一个重要的任务。

内容技术团队从音频采集、前处理、编解码、传输、播放的全链路入手优化直播音质体验,自研 3A 算法 SDK(回声消除、自适应降噪、自动增益控制),较好的满足了前处理需求,音频子系统支撑了连麦合流功能,拥有弱网抵抗,音画同步等能力;针对无参考音频质量评价的需求,采用机器学习方法实现了 MD-AQA 音质评价模型,用于大盘音质监控,实现音质处理和评价间的闭环。

直播间噪音示例

五、音视频技术在淘天的实践

随着整个工业界在音视频领域的投入的扩大和整体技术水位的提升以及淘宝对于用户体验、包括画质方面愈发重视,我们也对一些核心的技术模块进行了深度自研和持续迭代打磨,尤其是在淘宝直播和短视频(包括逛逛)的重要场景取得了较好的提升体验且降低成本的效果。

在如下的示意图中可见,无论是直播还是短视频的处理,都离不开视频增强、处理和视频编码技术,所不同的是两个场景对实时性的要求不同。同时,为追求高画质呈现体验,整个端到端链路中的所有环节的失真,甚至包含画质源本身的低画质都需要被较好的考虑和量化,因此,无参考考的质量评价在衡量画质体验的过程中也至关重要。视频增强,视频编码和无参视频质量评价是保障视频画质的三个重要技术方向。

5.1 视频增强

在直播和短视频中,我们都需要关注画质,致力于为用户提供最好的画质体验。我们建设了 STVideo 视频增强方案,通过不同的算子针对性增强画质。

直播更侧重在弥补摄像头成像不足,针对移动端摄像头噪声偏大的问题,我们上线了噪声去除算子,针对低端色彩不足的问题,我们提供了色彩增强的算法供用户使用。短视频主要通过云端算子在转码过程中对视频进行增强处理,这其中包括了差异化的智美高清和普惠高清算子,分别针对高热视频和大盘视频提升画质并降低转码过程中的算力成本开销。对于低分辨率视频进一步采用超分算法提升分辨率。

团队既关注业务和人眼主观体验,同时关注业界进展,积极探索能够提升客观指标的方法。团队同学在日常业务研发中探索出的新方法:渐进式训练的两阶段视频恢复方法。在 2022 年 CVPR NTIRE 比赛,在视频超分与质量增强比赛的三个赛道获得两个赛道冠军一个赛道亚军。CVPR NTIRE(New Trends in Image Restoration and Enhancement workshop and challenges on image and video processing)是全球图像视频增强方面的顶级竞赛。继在 MSU 世界编码器比赛夺魁后,团队再次在音视频的核心方向的权威比赛中折桂。

比赛云集了国内外十几支参赛团队,包括腾讯、字节、华为等知名科技企业,中科院、北大、港中文、ETH 等科研机构都有参赛,其中很多比赛者都有多年的参赛经验。经过激烈的角逐,团队最终取得了两冠一亚的成绩。

CVPR NTIRE 2022 视频超分与增强比赛排行榜

左:源视频,右:注重人像区域生成能力的视频增强效果(视频来自 5 月底采买视频)

面向未来,我们将为不同的业务、场景的视频,提供更加细分、差异化的视频增强手段:

  1. 针对中低画质视频,画面模糊是常见问题,为此我们需要提供强去模糊模型,联动 MD-VQA 画质分,自适应地选定去模糊的强度、区域,实现多场景下的通用去模糊;

  2. 针对以人像为主的视频,增加人像区域的注意力机制,引导模型对人像区域增强生成能力,同时约束人脸区域保持自然观感,实现低画质人像视频到高画质人像视频的跃迁(见下图);

  3. 针对画质还不错,但色彩、亮度不足的视频,提供定制化色彩亮度增强能力,进一步提升画面观感;

  4. 针对直播场景,我们会根据机型提供提供更加丰富的画质增强能力,包括色彩亮度提升、画面通透度提升能力。

5.2 视频编码与传输

随着互联网内容化的兴起,特别是视频化和直播的流行,视频编码成为业务的核心基础技术之一,未经压缩的高清视频体积巨大,不利于网络传输和存储。

自从从 20 世纪 90 年代初以来,国际通信联盟 ITU-T VCEG 以及国际标准化组织 ISO/IEC MPEG 两大组织,分别或共同发布了数代视频编解码标准,目前业界使用最多的是 H.264 /AVC 以及 H.265/HEVC。前者在数字电视,互联网,视频会议等服务中广泛使用,后者则对高清超高清视频和 HDR 视频的普及做出了重要的贡献。

H.266(VVC) 是最新颁布国际视频编码标准,其第一版于 2020 年 7 月制定完成,相比上一代标准 可以在相同主观质量条件下将视频带宽降低 40%,有着巨大的应用前景。

【业务】S265 应用

淘宝内容技术团队自研的 S265 编码器是对 H.265/HEVC 标准的高效实现,经过多年的产品化打磨,已全面应用于包括淘宝直播、首页信息流、淘宝逛逛在内的淘宝内容业务,并以较低的带宽和资源消耗实现高清画质编码,对比前一代标准,画质相等的前提下降低码率 40%以上,经过 S265 编码器压缩后,普通手机在 3G 网络也可顺滑观看 1080p 高画质,最新发布的手机亦可支持 4k 30FPS 超高清直播。

【比赛】S265、S266

基于 S265 的核心技术,团队还开发了 H.266/VVC 标准编码器 S266,两个编码器分别参加了 MSU 2020 和 2021 连续两届比赛,取得多个赛道第一。

在 MSU2020 全高清客观性能赛道上,S265 获得了两项 PSNR 指标第一;在 MSU2021 全高清客观性能赛道上,S266 更是获得 14 项评测指标中的 8 项第一;在主观性能赛道,S266 在 16 款参赛编码器中以大比分优势获得第一,与 MSU 官方指定的基准编码器 x265 相同的主观质量下,带宽节省了 71%之多,S266 也成为两项比赛唯一一个所有指标都进入前三的编码器。

MSU(莫斯科国立大学)世界视频编码器大赛是视频编码领域最权威的全球性顶级赛事,迄今已由 MSU 的 Graphics & Media Lab 连续举办了十八届,其评测报告被业界广泛认可,吸引了包括 Google、Netflix、Intel、Nvidia、腾讯、字节、华为等国内外知名科技企业参与,代表了行业发展的风向标。

MSU 2020 Main FullHD 1 fps YUV-PSNR 排名

MSU 2021 Main FullHD 1 fps YUV-PSNR 排名

S265 编码器在码率控制、快速算法、编码工具实现、工程加速几个方面进行了创新,实现对 X265 编码器的超越,在 1fps 速度档位下 YUV-PSNR 指标领先 35%。

S266 在 S265 编码器的基础上,进一步在符合 VVC 标准的范畴下进行优化。主要的工作包括针对新的工具集的适配,比如让 S265 中的很多优化手段延伸到了 VVC 中更大的编码单元块(CTU),更复杂多变的块划分结构,不一样的运动矢量估计等新的编码工具;同时引入了预分析、自适应量化、时域运动滤波等技术来提升编码效率;且在编码过程中使用更多的快速算法减少整体计算复杂度,通过汇编优化让密集计算模块提速,最后采用帧、CTU 行、块级并行减少整体编码时长,使得 S266 编码器相比 H.266/VVC 的参考软件 VTM11 有了极大的速度提升,且可运行在 1fps 速度档位(大规模的 VVC 离线编码应用成为可能)。

S266 提供了对比 H.265 开源软件 X265 very slow 档 50%的编码效率提升(同等画质下,码率减少 50%),夺得此次 MSU 比赛中 PSNR 等多个指标的第一名。

【业务】S266 落地

通过 MSU 的权威认证,展现了 S266 强大的压缩效率,但要推动 VVC 标准的商用,路还很长。这是因为 VVC 作为 HEVC 的下一代编码标准,引入了诸多新的编码工具,这些工具一方面带来了压缩效率的提升,同时也对算力提出了更高要求,同时在当前手机芯片不能支持 H.266 硬件解码的前提下,软件解码的发热,卡顿等问题都会较大的制约,淘宝内容技术团队一直致力于优化 S266 编解码器的算力。

针对移动手机芯片的特性,团队进行了多个维度的优化,包括多核并行、ARM 汇编、内存访问效率、内存占用大小等,低端手机仅使用 2 核就可以解码 720p 视频,中高端手机可支持 1080p 实时解码。

针对手淘稳定性、内存占用、包大小等方面的需求,还进行了数万条异常码流的严格测试确保稳定性;并采用固定内存管理,避免重复分配和释放,优化参考帧管理策略,与编码器配合减少参考缓存帧数量,实现较低的内存占用;在包大小方面也进行了极致的裁剪,使得手淘包大小增量在 800k 以内。

随着编解码器的优化逐渐成熟以及设备算力的逐步提升,2023 年团队开始 VVC 在淘宝的落地。

首先淘宝媒体处理系统 TMPS 嵌入了 S266 编码插件,并支持 ISO/IEC MP4 容器的封装和解封装,支持与智美高清结合的转码模板,实现编码和增强的强强结合。

其次手淘播放器适配 S266 解码插件,针对 seek,上下滑,预加载等场景进行优化,并兼容播放降级逻辑,支持多种格式和分辨率的选流逻辑,实现播放和解码的内存解耦。在内容总线和业务侧,还实现了多流转码和播控下发逻辑。

在即将到来的双十一,手淘逛逛用户将能观看基于 S266 技术的 VVC 高清视频,享受流畅的播放体验。

为了满足淘宝直播对实时编码的需求,团队还研发了 S266 快速档(fast 档),通过挑选高性价比工具,优化块划分,模式选择,滤波等算法,引入 AVX512 指令集,进一步提高帧级和行级并行度,使得 S266 在个人 PC 上能达到 1080p 实时编码。直播全链路也将支持 VVC over RTMP/RTP 的推流,传输,播放,用户不久将可在淘宝直播中观看基于 VVC 技术的直播。

【传输】

在视频传输侧,码率自适应算法(ABR)根据用户网络条件以及缓存等信息,自适应地调整播放分辨率,达到画质和卡顿 QOE 的平衡。淘宝内容技术团队根据直播低延时的特点,增加源端码率传递通道实时准确获取码流信息,并通过带宽探测实时获取用户带宽信息,改进 ABR 网络结构和 QOE 状态模型,考虑直播跳帧和快慢播面临的 Reward 对齐问题,提出自创的 ABR 算法,首次实现低延时直播下的自适应切流,将直播百卡次数降低 27%。

在短视频选流上,根据历史切片的下载时长,结合传输层信息以及网络类型来估算带宽,经过大量 AB 实验确定最佳参数,并解决质量和码率不匹配问题,帮助 1080p 播放降级率大幅降低。

1080p 占比 VS 百秒卡顿率 退出率 VS 卡顿时长

5.3 无参视频质量评价

近年来互联网内容视频化的趋势密不可分,从生活、娱乐到学习,视频都已经成为了很多人获取信息的第一介质。其中,UGC 视频内容几乎占据了整个互联网视频流量中的 70% 到 80%。人们既消费这些 UGC 视频内容,也在创造着自己的「作品」。任何人都可以使用一台手机拍摄、上传短视频,也可以开通自己的直播账号,分享自己的生活。

但 UGC 视频的质量往往是参差不齐的。首先是因为其质量受制于拍摄设备、拍摄环境、拍摄技巧等因素,即使视频内容的制作方极具经验且原始视频质量非常高,一旦经过平台的各种处理、分发环节或是其他用户的二创,消费者在另一端看到的视频效果都有可能打折扣。

在缺乏理想的视频参考源的质量评价场景逐渐成为主流的趋势下,无参考视频质量评价作为质量评价的主要的技术手段,在过去的几年里越来越受到广泛关注。然而,该领域缺乏具备公信力的 baseline,没有像传统广电中 PSNR, SSIM, VMAF 这样的传统指标。并且学术界的 UGC 视频质量评价研究尚处于起步阶段,没有形成有共识的权威的方向和可供工业界直接应用的标准。

因此,团队基于淘宝直播、Tab2、首页信息流等内容业务,自研了一种针对 UGC 视频的无参考视频质量评价模型 ——MD-VQA(Multi-Dimensional Video Quality Assessment),综合视频的语义、失真、运动等多维度信息,并进行时空域的融合,来衡量视频绝对质量的高低。在公开的视频质量评价数据集 LIVE-WC 和 YT-UGC+,以及 TaoLive(来源于淘宝视频业务,包含 3,762 个视频,覆盖不同的内容、失真、和质量,并通过专业的主观标注)上,MD-VQA 在主流视频质量评价指标 SRCC 和 PLCC 上均超过了 SOTA(State-Of-The-Art)方法,达到了先进性能。

目前,MD-VQA 已经全面应用于包括淘宝直播、淘宝信息流、淘宝逛逛等淘宝内容业务,「量化」并监控视频业务的大盘画质变化,快速、精准地筛选出不同画质水位的直播间和短视频,帮助提升平台内容画质。以淘宝直播为例,MD-VQA 提供分钟级的在线质量监控能力,能够快速、精准地筛选不同画质水位的直播间,协助线上低画质 badcase 的挖掘分析,实时提醒主播画质问题方面的瓶颈问题,配合《电商直播高画质开播指南》,提供改进措施,使得淘宝直播主播画质满意度显著提升:在收到过提醒的主播中,75%+希望保持和完善实时提醒服务。

此外,MD-VQA 在整个阿里集团内部也在支撑越来越多的画质评价相关业务,比如钉钉直播、ICBU 直播和支付宝直播,协助监控视频相关业务的画质体验。相关论文被计算机视觉领域顶级会议 IEEE/CVF Computer Vision and Pattern Recognition Conference 2023(CVPR 2023)成功收录。

同时,基于在日常业务的经验积累,团队在 MD-VQA 的基础上研发了无参考视频质量评价模型 TB-VQA,并参加了 CVPR NTIRE 2023 视频质量评价竞赛,拿下该比赛(唯一赛道)冠军。

本场比赛云集了国内外顶级的几十只参赛队伍,包括字节、快手、网易、小米、Shopee 在内的知名科技企业,以及北京航空航天大学、新加坡南洋理工大学等高校。TB-VQA 从 37 支队伍中脱颖而出,在主得分(Main Score)、SRCC(Spearman Rank Order Correlation Coefficient)及 PLCC(Pearson Linear Correlation Coefficient,SRCC 和 PLCC 越高表明与 GT 越接近)三项指标均位居第一。

CVPR NTIRE 2023 视频质量评价比赛排行榜

美颜画质:FACE-VQA&音频质量评价:MD-AQA

除了用于通用场景视频质量评价的 MD-VQA 模型,我们还研发了针对美颜质量评价的 FACE-VQA 模型和针对音频质量的 MD-AQA 模型。FACE-VQA 首先检测视频中的人脸,然后根据人们的审美标准,对人脸的肤质、肤色及脸型进行多维度的综合评价。FACE-VQA 已经用于美颜算法的迭代和淘宝直播大盘美颜效果的监控,后续会继续提升 FACE-VQA 的准确度,完善妆容部分对美颜的影响。

针对明确的无参考音频质量评价的需求,MD-AQA 从多个维度出发,采用深度 CNN 自我注意力模型,对噪声,语音连续性,响度,音色四个维度进行评分,并同时预测 MOS 分。目前 MD-AQA 已经用于淘宝直播大盘音质的监控,帮助发现和改进音质较好/较差的直播间。  

六、志同道合

如果你对音视频的业务感兴趣,可以直接投简历到这个邮箱:meiguang.jmg@taobao.com,欢迎一起加入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/126125.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL数据库】| 索引以及背后的数据结构

🎗️ 主页:小夜时雨 🎗️ 专栏:MySQL数据库 🎗️ 如何优雅的活着,是我找寻的方向 目录 1. 基本知识2. 索引背后的数据结构总结 1. 基本知识 概念 索引是一种特殊的文件,包含着对数据表里所有…

Leetcode刷题详解—— 找出所有子集的异或总和再求和

1. 题目链接:1863. 找出所有子集的异或总和再求和 2. 题目描述: 一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果;如果数组为 空 ,则异或总和为 0 。 例如,数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 1 。…

95 课程表

课程表 题解1 BFS(拓扑图模板)题解2 DFS 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] &am…

【halcon】halcon 函数文件 以及 脚本引擎如何调用外部函数文件 上篇

前言 halcon有几种文件: 本地程序函数(.hdev)外部函数文件(.hdvp)库函数(.hdp) 说多了容易混淆,今天就说,我觉得最有用的:外部函数文件(.hdvp) 步骤 先写一段halcon脚本&#x…

php冒泡算法实现倒序和正序排列

冒泡排序是一种简单的排序算法,其主要思想是比较相邻的两个元素,根据需要交换位置,将较大(或较小)的元素逐渐冒泡到数组的一端,从而实现排序。 1、从小到大排序 function bubbleSort($arr) {$len count(…

剪贴板管理软件 Paste Wizard mac中文版功能特色

Paste Wizard mac是一款剪贴板管理工具,它可以帮助用户更高效地管理剪贴板中的文本、图片、链接等内容。 Paste Wizard mac特色功能 提供了多种方式来保存和管理剪贴板中的内容。用户可以创建自定义的标签,将内容按照标签进行分类,方便快速查…

springboot,spring框架返回204 status code的时候,会吞掉返回值

背景 发现有个有意思的现象,就是当你的接口返回204的 HTTP status code 的时候,会自动把 response body 吃掉,即使代码里是有返回的。例如 (其实204本身就是NO_CONTENT的意思,不过我是真没想到真干掉了返回&#xff0…

5G-A 商用加速,赋能工业互联网

2019 年 6 月,中国工业和信息化部发放 5G 商用牌照。同年 10 月,三大运营商公布 5G 商用套餐,11 月 1 日正式上线 5G 商用套餐,标志中国正式进入 5G 商用新纪元。今年是 5G 商用的第五年,在当前数字经济蓬勃发展的催化…

Mathematica清除全局变量以及避免与内置命令冲突

自己在使用MMA的时候之前遇到过一个问题,就是发现使用 ClearAll["Global*"]这个命令并不能清除某些变量,例如 如果想要清除K这个变量则需要单独清除 Clear[K]。 实际上这是由于和MMA内部的一些预定义的命令或函数冲突的结果。其实其他变量都…

求极限问题:x趋于0时的等价替换及其适用条件、洛必达法

x趋于0时的等价替换及其适用条件 等价无穷小的定义: 若 lim ⁡ β α 1 \lim\dfrac{\beta}{\alpha}1 limαβ​1,则 β \beta β 与 α \alpha α 是等价无穷小的,记作 α ∼ β \alpha \sim \beta α∼β. 即当两个函数相比取极限&…

php 二分查询算法实现

原理:二分查找算法(Binary Search)是一种针对有序数组的查找算法。它的原理是通过将查找区间逐渐缩小一半来快速定位要查找的目标值。 应用场景: 数据库或文件系统索引查找:在数据库或文件系统中,索引是有…

谷歌插件报错 Manifest version 2 is deprecated, and support will be removed in 2023.

点开错误发现 高亮部分有问题。 下面是这个插件的解压后的原始包:我们主要就去找json结尾的东西 就这两个 一个个排除 找到了 把2 改成3就可以了 一定要记得保存!!!!!!!&#xff0…

计算机考研408有多难?25考研经验贴,开个好头很有必要

前言 大家好,我是陈橘又青,相信关注我的各位小伙伴们中,大多都是在计算机专业的大学生吧! 每天都有许多人在后台私信我,问我要不要考研,我想说这个东西是因人而异的,像我本人就选择了就业&…

网络通信——与Socket交换数据(三十一)

1. 与Socket交换数据 1.1 知识点 (1)通过Android与Socket完成基本的Echo程序实现; (2)通过对象序列化进行大数据的传输; 1.2 具体内容 对于网络的开发而言,最常使用的交互模式:W…

力扣197. 上升的温度

【版本1】: select w2.id from Weather w1 inner join Weather w2 on w1.recordDate subdate(w2.recordDate,1) where w2.Temperature > w1.Temperature【小记】 1、遇到这种某个字段与自身相比(今天温度和昨天温度比,是温度这个字段…

11.8 33oj 模拟赛总结(时间安排 + 题解(数学 + 二分 + 括号匹配DP + 性质DP))

文章目录 考试时间及策略考试结果赛后总结题解Balance AddictsBoboniu and StringBracket InsertionConveyor 考试时间及策略 7:40 - 8:00 开题。T1 应该是个dp, 但是好像有点恶心。T2是个神秘构造。T3是个求随机括号匹配的概率,一眼应该是个 n 3 n^3 n3 的…

一篇博客读懂单链表——Single-List

目录 一、初识单链表 单链表是如何构造的: 单链表如何解决顺序表中的问题: 二、单链表的初始定义 三、尾插和头插 3.1 新建结点CreateNode 3.2 打印SLTPrint 3.3 尾插SLTPushBack 3.4 头插SLTPushFront 四、尾删和头删 4.1 尾删SLTPopBack…

蓝牙安全管理(SM:Security Manager)规范详解

总述 配对(Pairing)分为三个阶段,前两个阶段是必须的,而第三阶段是可选的,三个阶段如下: 阶段1:配对功能交换(Pairing Feature Exchange) 阶段2(LE传统配对 LE legacy pairing):短期密钥(STK:Short Term…

【Python大数据笔记_day04_Hadoop】

分布式和集群 分布式:多台服务器协同配合完成同一个大任务(每个服务器都只完成大任务拆分出来的单独1个子任务) 集群:多台服务器联合起来独立做相同的任务(多个服务器分担客户发来的请求) 注意:集群如果客户端请求量(任务量)多,多个服务器同时处理不同请求(不同任务),如果请求量…

为什么推荐从Linux开始了解IT技术

IT是什么,是干什么的呢? 说起物联网,云计算,大数据,或许大家听过。但是,你知道,像云计算的底层基座是什么呢?就是我们现在说的Linux操作系统。而云计算就是跑在Linux操作系统上的一个…