大话实时视频编码中的人工智能(上)

目录

摘要介绍深度学习网络的复杂度视频编码的演变和计算复杂性视频编码中的机器学习深度方案深度工具标准化工作符合现有标准的工作前处理和后处理复杂度考虑参考文献

摘要在过去的十年中,数千篇文章主张人工智能(AI)和机器学习(ML)具有显著的优势。其中一些文章是基于现实的,而另一些则夸大了ML技术在众多应用中的潜在好处。那么,真正的优势在哪里?市场营销部门何时越界,进入了无稽之谈的领域?在如实时(视频)处理或编码等严格条件下的应用中呢?考虑到计算开销、延迟和成本限制后,实际的净收益又有多少?

本文尝试区分现实与虚构,探讨AI带来的好处以及AI工具如何增强编码器工具集。在明确定义AI/ML术语后,本文概述了视频编码领域的最新技术。随后,本文将介绍有效技术的示例和反例,以及对编码器阵容有益的方法。

介绍在本文中,我不打算重复对人工智能、机器学习或(深度)神经网络的全面概述。这方面已经有很好的书和文章,例如文献[1]和[2],而且新的论文发布速度比阅读速度快。

首先,正确理解术语是有帮助的。AI和ML经常被互换使用。为了避免任何混淆,我们重复一下AI中的类层次结构。AI是创造智能机器或程序的科学和工程。在AI中,ML被定义为一个研究领域,它使计算机能够在不被明确编程的情况下学习。

目前有多种类型的ML算法,每种都有其优点,包括决策树、随机森林和支持向量机。鉴于它们在各种任务上的表现,重点已经转向了受到大脑启发的ML技术,其中使用的神经元可以将信号作为输入,对这些信号进行计算,并产生输出信号。

神经网络(NN)是最常见的受到大脑启发的ML技术,其中神经元的计算涉及到输入值的加权和,然后应用一个非线性函数,只有当输入超过某个阈值时才会产生一个输出。在神经网络领域,我们发现了深度学习,其中的神经网络有3层以上,并且至少有一层是隐藏的。这些所谓的深度神经网络(DNN)已经变得越来越流行,通常包含几十甚至几百个(卷积)层。

一般来说,我们已经看到了从使用手工挑选的特征作为输入的浅层网络向具有众多卷积滤波层的“黑盒子”深度神经网络的演变。特别是对于计算机视觉,使用几个卷积层似乎非常有效。我们有理由期待视频压缩也会有同样的发展。

深度学习网络的复杂度为了设定预期:尽管有如此多的潜力,将DNN应用于视频编码并期望在压缩性能方面出现神奇的飞跃,这是根本不会发生的。产生的网络要么过于复杂,需要大量的计算能力——这会提高解决方案的成本;要么它们变得非常浅层,导致精度下降。在这种情况下,坚持在既定的编码器中使用手动定制的启发式方法可能更有好处。硬件加速可以工作(但也提高了成本),但你会失去部署解决方案的灵活性。

在文献中,DNN的复杂性不断增加。幸运的是,越来越多的文献关注,或者至少提到了ML的复杂性。那么,什么是衡量机器学习复杂性的好方法呢?一个越来越多被使用的参考点是用乘法运算(MAC)的数量来表达这些架构的复杂性。这些MAC可以从每秒数千到数百万不等,是复杂度的一个很好的代表[1]。即使在硬件并行化之后,一个MAC仍然是一个昂贵的操作。

作为一个例子,表1中列出了已经提交给ImageNet挑战的最先进的CNN,从LeNet到ResNet和VGG,提到了所需的层数和MAC总数。对于较新的网络,操作数通常以GigaOps表示,突出了所需计算能力的爆炸性增长。

大话实时视频编码中的人工智能(上)表1 流行的DNN概述

即使是在强大的(和昂贵的)GPU上,这些网络的推理时间对于一张1024×1024的图像来说也会超过100ms。而且,对于这些较新的网络来说,每参数的准确度会下降,而且规模较大的网络并不能完全发挥其学习能力[3]。虽然这只是说明了现代DNN的复杂性,但视频压缩能从这种深度网络中受益多少呢?

视频编码的演变和计算复杂性自80年代的第一个数字压缩系统以来,视频编码已经有了长足的进步。从H.261到MPEG-2和H.263,我们现在处于一个多编码的世界,有几种引人注目的格式,包括H.264/AVC、HEVC、VP9、AV1和VVC[4]。通常情况下,视频标准的引入是与分辨率的提高同步进行的。特别是在广播领域,分辨率的下一步和新标准(如H.264/AVC和HD,HEVC和UHD)之间有密切联系。预计VVC的引入将与8K的采用齐头并进。

伴随着压缩效率的提高,视频编码器和解码器的复杂性也大大增加。对于实时编码来说,以最新的标准实时处理高帧数、高分辨率的视频,面临着越来越多的挑战。在现实生活中的系统,如广播或直播ABR分发,系统的成本是一个非常重要的参数,以保持竞争力。一般来说,AI技术可以带来好处,使编码器供应商更具竞争力。但是,如上所述,许多网络的复杂性让人望而却步,在应用于编码时,会导致净劣势。我们将在本文的其余部分探讨这种权衡,排除一些方法的考虑,同时讨论其他看起来有希望的方法。但正如介绍中所宣布的,在市场承诺和现实之间存在着差距。

面试猫 面试猫

AI面试助手,在线面试神器,助你轻松拿Offer

面试猫 352 查看详情 面试猫

视频编码中的机器学习机器学习已经在图像和视频编码中应用了几十年。在80年代末,基于多层感知器(MLP)网络的图像压缩实验已经开始进行[5]。在90年代,工作转向用于图像[6][7]和视频[8]压缩的随机神经网络。这些文献侧重于替代当时的压缩方案,如JPEG和H.261,具有相当的计算复杂性。尽管它们提供了合理的性能,但它们从未成功进入该领域,焦点转向了标准化的编码解决方案,如MPEG-2和H.264/AVC。

自2010年代初以来,与视频编码相关的机器学习工作已经复苏,并在过去几年中真正加速,带来了一系列你可以描述为“深度方案”、“深度工具”和“符合标准”的工作。很难对这个方向的工作提供详尽的概述,因为这些主题中的每一个都是极其热门的研究课题,每天都有新的文献出现。

深度方案深度压缩方案是一种完全不同的编码方法,提供了一个完整的端到端解决方案。它们建立在降维和自动编码的概念上,实现了自动学习并消除了对手工选择的特征的需求[9]。在过去的5年中,这些自动编码器受到了越来越多的关注,并取得了非常有希望的结果,特别是在感知质量方面。在[10]中,提出了一个基于CNN的视频压缩框架DeepCoder,用单独的CNN网络处理预测信号和残差信号,之后应用标量量化和Huffman编码。作者在SSIM方面获得了与x264 IPPP编码相似的效率。但没有提到关于其计算复杂度的需求。[11]的工作集中在端到端优化和图像压缩上,有可能在压缩性能方面超过JPEG和JPEG 2000等格式。[12]专注于用CNN来建模空间-时间一致性以进行预测编码,得到了接近H.264/AVC的压缩性能。但是据报告,其总体计算复杂度是H.264/AVC参考软件JM的141倍。[13]提出了一个端到端的深度视频压缩网络,复杂度约为11M参数,对CIF大小的视频达到约24帧每秒。

在[2]中,概述了端到端的神经视频编码解决方案,并进行了案例研究。但很明显,这些“深度方案”还没有准备好用于实时视频的黄金时间,而且在广泛部署之前,它们缺乏一个标准化的解决方案。

深度工具更接近现有标准的是所谓的“深度工具”或“模块化神经视频编码”[2]的工作,其中编码器工具被学习的算法取代。传统上,编码器工具是由活跃在标准化过程中的工程师手工设计和调整的。通过学习,可以找到能够更好地适应内容类型的解决方案,或者更好地利用时空一致性。

在过去的几年里,我们已经看到了关于帧内预测的学习算法提案,例如[14],其中报告了与HEVC参考软件相比的微小收益。[15]提到,相对于HM编码和解码软件,比特率节省了1.1%,计算成本分别为148%和290%。[16]提出了互补的HEVC帧内预测模式,其中明确提到了乘法方面的高成本,它随着块大小而增长(从4×4块的每个像素20次乘法到32×32块的每个像素132次乘法)。

对于时域预测,[17]提出了一种基于分组变化卷积神经网络(GVCNN)的分数插值方法。这使比特率平均节省了2.2%,但相对于参考软件,编码器/解码器的时间为6倍和1500倍。已经有其他方案被提出,例如在编码器和解码器之间不发送运动信息就能预测纹理[18]。编码器的时间是1.5倍,而解码器的时间则超过100倍。

标准化工作目前,标准化工作正在进行中,以便将ML工具带入现实生活中。在JPEG中已经开始了一项活动(JPEG AI),在基于学习的编码方向上开始了探索。另外,在MPEG/JVET中,有一种在视频压缩方案中使用AI的趋势。在过去的JVET会议上,在这个方向上已经提交了一些贡献,并且成立了一个AHG,目标是开发一个潜在的支持基于学习的编码工具的VVC扩展[19]。该小组讨论的工具包括帧内预测、环路滤波、后处理和超分辨率。类似的工作正在开放媒体联盟内进行,以便在AV1和AV2的范围内进行改进。

从缺点来看,这些工具中许多又是非常复杂的。在积极的一面,通过优化网络,复杂性受到了关注。在JVET AHG中,提到每个像素的MAC数量是一项要求。但是,对于许多这些工具来说,与VVC参考软件相比,解码时间上升了两三个数量级,需要做更多的工作来将复杂性降低到可接受的水平。

符合现有标准的工作最近的部分研究集中在以规范的方式(即不修改现有标准或工具)改进和加速视频编码。从HEVC的引入开始,可以发现大量的研究试图降低编码器的复杂性。作为一个例子,“数据挖掘”方法被应用,产生了决策树,以减少HEVC编码的计算复杂性[20]。在[21]中,基于CNN和LSTM的模型都被引入,以加速HEVC内部和内部编码的四叉树分区。但是,第一个模型仍然需要总共1.5M的乘法和加法,而第二个模型需要大约760K。尽管与参考软件相比,这些模型导致了60-70%的编码时间的减少,但对于实际的实施来说,它们的数量级还是太高。

最近,工作转向VP9[22]、AV1[23]和VVC[24][25]编码的加速。[22]中最小的模型使用了大约26K的可训练参数,每64×64的超级块需要大约10M的浮点运算。虽然与VOD类型的设置相比,这导致了速度的提高,但对于实时编码来说,要证明这个操作数是合理的,要困难得多。

前处理和后处理DNN已经被证明在(预)滤波应用方面非常强大。一系列关于预滤波技术的文章已经写好,包括锐化、去噪、对比度增强、运动去模糊和边缘检测。有一种不同的方法专注于视频内容语义,以协助视频编码,如物体检测/分割、显著性预测等。更具前瞻性的是分析-合成技术,它与人类视觉系统对纹理的感知方式更为接近。一个基于纹理的视频编码方法在[2]中提出,同时也提出了它的开放性问题,如分析的准确性。

一段时间以来,一个有前途的方向是超分辨率,即在编码前对输入视频进行降采样,然后在接收端对重建的帧再次进行升采样。这些方法可以在可接受的复杂度要求下节省比特(见[26]的概述)。这些方法的好处是它们可以以符合标准的方式工作,而不需要修改基础编码器或基础设施。缺点是,超分辨率上采样算法需要在接收端应用,这使得不是所有的(传统的)客户端都适合这种类型的分发。

复杂度考虑如[2]所述,“所有这些问题对基于DNN的工具的市场采用构成了严重障碍,特别是在节能的移动平台上。一个有希望的解决方案是设计专门的硬件来加速DNN算法”。而根据[27],“将现有的深度工具与传统的非深度方案中的对应工具相比较,人们很容易发现前者的计算复杂性比后者高得多。高复杂度确实是深度学习的一个普遍问题,也是阻碍深度网络在计算资源有限的情况下(如手机)采用的一个关键问题。”

尽管有这些潜力,我们离在实时编码器中应用这些方案和工具还很远。虽然在加速编码器的传统决策方面已经花费了大量的研究和工程,但在加速基于DNN的编码器决策方面还需要大量的工作。投入GPU或并行硬件并不能解决这个问题,因为它导致了一个非常昂贵的解决方案,这是目前部署在通用CPU上的软件的几倍。在越来越多的文献中,网络的复杂性被明确提及,这是一个很好的发展,因为我们离许多网络的实际部署还有很大的距离。

参考文献V. Sze, Y. Chen, T. Yang and J. S. Emer, “Efficient Processing of Deep Neural Networks: A Tutorial and Survey,” in Proc. of the IEEE, vol. 105 (12), pp. 2295-2329, Dec. 2017.D. Ding, Z. Ma, D. Chen, Q. Chen, Z. Liu and F. Zhu, “Advances in Video Compression System Using Deep Neural Network: A Review and Case Studies,” in Proc. of the IEEE, March 2021.A. Canziani, E. Culurciello and A. Paszke, “Evaluation of neural network architectures for embedded systems,” IEEE Int. Symposium on Circuits and Systems (ISCAS), 2017.J. De Cock, “Navigating a Multi-Codec World”, Streaming Media Magazine, https://www.php.cn/link/ad0578a527187de255ab445a7e7fde0c.G. W. Cottrell, P. Munro and D. Zipser, “Image compression by back propagation: an example of extensional programming,” Models of cognition: rev. of cognitive science, vol. 1 (208), 1989.S. Marsi, G. Ramponi and G. L. Sicuranza, “Improved neural structures for image compression,” Int. Conf. on Acoustics, Speech, and Signal Processing (ICASSP), 1991, pp. 2821-2824.E. Gelenbe and M. Sungur, “Random network learning and image compression,” in IEEE Int. Conf. on Neural Networks (ICNN), vol. 6, 1994, pp. 3996–3999.C. Cramer, E. Gelenbe and H. Bakircloglu, “Low bit-rate video compression with neural networks and temporal subsampling,” in Proceedings of the IEEE, vol. 84, no. 10, pp. 1529-1543, Oct. 1996.G. E. Hinton and R. R. Salakhutdinov, “Reducing the dimensionality of data with neural networks,” Science, vol. 313, no. 5786, pp. 504–507, 2006.T. Chen, H. Liu, Q. Shen, T. Yue, X. Cao, Z. Ma, “DeepCoder: A deep neural network based video compression”. IEEE Visual Communications and Image Processing Conference (VCIP), 2017.J. Ballé, V. Laparra, and E. P. Simoncelli, “End-to-end optimized image compression”, International Conference on Learning Representations (ICLR), April 2017.Z. Chen, T. He, X. Jin and F. Wu, “Learning for Video Compression”, in IEEE Trans. on Circuits and Systems for Video Technology, vol. 30 (2), pp. 566-576, Feb. 2020.G. Lu, W. Ouyang, D. Xu, X. Zhang, C. Cai and Z. Gao. “DVC: An End-To-End Deep Video Compression Framework.” IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2019.W. Cui et al., “Convolutional Neural Networks Based Intra Prediction for HEVC”, Data Compression Conference (DCC), 2017, pp. 436-436.J. Li, B. Li, J. Xu and R. Xiong, “Intra prediction using fully connected network for video coding”, IEEE International Conference on Image Processing (ICIP), 2017.J. Pfaff, P. Helle, D. Maniry, S. Kaltenstadler, W. Samek, H. Schwarz, D. Marpe, and T. Wiegand, “Neural network based intra prediction for video coding,” SPIE Applications of Digital Image Processing XLI, vol. 10752, 2018.J. Liu, S. Xia, W. Yang, M. Li, and D. Liu, “One-for-all: Grouped variation networkbased fractional interpolation in video coding,” IEEE Transactions on Image Processing, vol. 28 (5), pp. 2140–2151, 2018.H. Choi and I. V. Bajić, “Deep Frame Prediction for Video Coding”, in IEEE Trans. on Circuits and Systems for Video Technology, vol. 30 (7), pp. 1843-1855, July 2020.S. Liu et al., “AhG on neural network based coding tools”, JVET-S0267, June 2020.G. Correa, P. A. Assuncao, L. V. Agostini and L. A. da Silva Cruz, “Fast HEVC encoding decisions using data mining,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 25 (4), pp. 660– 673, Apr. 2015.M. Xu, T. Li, Z. Wang, X. Deng, R. Yang and Z. Guan, “Reducing Complexity of HEVC: A Deep Learning Approach,” in IEEE Transactions on Image Processing, vol. 27 (10), pp. 5044-5059, Oct. 2018.S. Paul, A. Norkin and A. C. Bovik, “Speeding Up VP9 Intra Encoder with Hierarchical Deep Learning-Based Partition Prediction”, in IEEE Transactions on Image Processing, vol. 29, pp. 8134-8148, 2020.C. Chiang, J. Han and Y. Xu, “A Multi-Pass Coding Mode Search Framework for AV1 Encoder Optimization”, Data Compression Conference (DCC), 2019.G. Tang, M. Jing, X. Zeng and Y. Fan, “Adaptive CU Split Decision with Poolingvariable CNN for VVC Intra Encoding”, IEEE Visual Communications and Image Processing (VCIP), 2019.J. Zhao, Y. Wang, Q. Zhang, “Adaptive CU Split Decision Based on Deep Learning and Multifeature Fusion for H.266/VVC”, Scientific Programming, 2020.W. Yang, X. Zhang, Y. Tian, W. Wang, J. Xue and Q. Liao, “Deep Learning for Single Image Super-Resolution: A Brief Review,” in IEEE Transactions on Multimedia, vol. 21 (12), pp. 3106-3121, Dec. 2019.D. Liu, Y. Li, J. Lin, H. Li, F. Wu, “Deep Learning-Based Video Coding: A Review and A Case Study”, ACM Computing Surveys 53 (1), pp. 1-35, Feb. 2020.

以上就是大话实时视频编码中的人工智能(上)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/814531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月27日 00:20:36
下一篇 2025年11月27日 00:26:06

相关推荐

  • Uniapp 中如何不拉伸不裁剪地展示图片?

    灵活展示图片:如何不拉伸不裁剪 在界面设计中,常常需要以原尺寸展示用户上传的图片。本文将介绍一种在 uniapp 框架中实现该功能的简单方法。 对于不同尺寸的图片,可以采用以下处理方式: 极端宽高比:撑满屏幕宽度或高度,再等比缩放居中。非极端宽高比:居中显示,若能撑满则撑满。 然而,如果需要不拉伸不…

    2025年12月24日
    400
  • 如何让小说网站控制台显示乱码,同时网页内容正常显示?

    如何在不影响用户界面的情况下实现控制台乱码? 当在小说网站上下载小说时,大家可能会遇到一个问题:网站上的文本在网页内正常显示,但是在控制台中却是乱码。如何实现此类操作,从而在不影响用户界面(UI)的情况下保持控制台乱码呢? 答案在于使用自定义字体。网站可以通过在服务器端配置自定义字体,并通过在客户端…

    2025年12月24日
    800
  • 如何在地图上轻松创建气泡信息框?

    地图上气泡信息框的巧妙生成 地图上气泡信息框是一种常用的交互功能,它简便易用,能够为用户提供额外信息。本文将探讨如何借助地图库的功能轻松创建这一功能。 利用地图库的原生功能 大多数地图库,如高德地图,都提供了现成的信息窗体和右键菜单功能。这些功能可以通过以下途径实现: 高德地图 JS API 参考文…

    2025年12月24日
    400
  • 如何使用 scroll-behavior 属性实现元素scrollLeft变化时的平滑动画?

    如何实现元素scrollleft变化时的平滑动画效果? 在许多网页应用中,滚动容器的水平滚动条(scrollleft)需要频繁使用。为了让滚动动作更加自然,你希望给scrollleft的变化添加动画效果。 解决方案:scroll-behavior 属性 要实现scrollleft变化时的平滑动画效果…

    2025年12月24日
    000
  • 如何为滚动元素添加平滑过渡,使滚动条滑动时更自然流畅?

    给滚动元素平滑过渡 如何在滚动条属性(scrollleft)发生改变时为元素添加平滑的过渡效果? 解决方案:scroll-behavior 属性 为滚动容器设置 scroll-behavior 属性可以实现平滑滚动。 html 代码: click the button to slide right!…

    2025年12月24日
    500
  • 如何选择元素个数不固定的指定类名子元素?

    灵活选择元素个数不固定的指定类名子元素 在网页布局中,有时需要选择特定类名的子元素,但这些元素的数量并不固定。例如,下面这段 html 代码中,activebar 和 item 元素的数量均不固定: *n *n 如果需要选择第一个 item元素,可以使用 css 选择器 :nth-child()。该…

    2025年12月24日
    200
  • 使用 SVG 如何实现自定义宽度、间距和半径的虚线边框?

    使用 svg 实现自定义虚线边框 如何实现一个具有自定义宽度、间距和半径的虚线边框是一个常见的前端开发问题。传统的解决方案通常涉及使用 border-image 引入切片图片,但是这种方法存在引入外部资源、性能低下的缺点。 为了避免上述问题,可以使用 svg(可缩放矢量图形)来创建纯代码实现。一种方…

    2025年12月24日
    100
  • 如何让“元素跟随文本高度,而不是撑高父容器?

    如何让 元素跟随文本高度,而不是撑高父容器 在页面布局中,经常遇到父容器高度被子元素撑开的问题。在图例所示的案例中,父容器被较高的图片撑开,而文本的高度没有被考虑。本问答将提供纯css解决方案,让图片跟随文本高度,确保父容器的高度不会被图片影响。 解决方法 为了解决这个问题,需要将图片从文档流中脱离…

    2025年12月24日
    000
  • 为什么 CSS mask 属性未请求指定图片?

    解决 css mask 属性未请求图片的问题 在使用 css mask 属性时,指定了图片地址,但网络面板显示未请求获取该图片,这可能是由于浏览器兼容性问题造成的。 问题 如下代码所示: 立即学习“前端免费学习笔记(深入)”; icon [data-icon=”cloud”] { –icon-cl…

    2025年12月24日
    200
  • 如何利用 CSS 选中激活标签并影响相邻元素的样式?

    如何利用 css 选中激活标签并影响相邻元素? 为了实现激活标签影响相邻元素的样式需求,可以通过 :has 选择器来实现。以下是如何具体操作: 对于激活标签相邻后的元素,可以在 css 中使用以下代码进行设置: li:has(+li.active) { border-radius: 0 0 10px…

    2025年12月24日
    100
  • 如何模拟Windows 10 设置界面中的鼠标悬浮放大效果?

    win10设置界面的鼠标移动显示周边的样式(探照灯效果)的实现方式 在windows设置界面的鼠标悬浮效果中,光标周围会显示一个放大区域。在前端开发中,可以通过多种方式实现类似的效果。 使用css 使用css的transform和box-shadow属性。通过将transform: scale(1.…

    2025年12月24日
    200
  • 为什么我的 Safari 自定义样式表在百度页面上失效了?

    为什么在 Safari 中自定义样式表未能正常工作? 在 Safari 的偏好设置中设置自定义样式表后,您对其进行测试却发现效果不同。在您自己的网页中,样式有效,而在百度页面中却失效。 造成这种情况的原因是,第一个访问的项目使用了文件协议,可以访问本地目录中的图片文件。而第二个访问的百度使用了 ht…

    2025年12月24日
    000
  • 如何用前端实现 Windows 10 设置界面的鼠标移动探照灯效果?

    如何在前端实现 Windows 10 设置界面中的鼠标移动探照灯效果 想要在前端开发中实现 Windows 10 设置界面中类似的鼠标移动探照灯效果,可以通过以下途径: CSS 解决方案 DEMO 1: Windows 10 网格悬停效果:https://codepen.io/tr4553r7/pe…

    2025年12月24日
    000
  • 使用CSS mask属性指定图片URL时,为什么浏览器无法加载图片?

    css mask属性未能加载图片的解决方法 使用css mask属性指定图片url时,如示例中所示: mask: url(“https://api.iconify.design/mdi:apple-icloud.svg”) center / contain no-repeat; 但是,在网络面板中却…

    2025年12月24日
    000
  • 如何用CSS Paint API为网页元素添加时尚的斑马线边框?

    为元素添加时尚的斑马线边框 在网页设计中,有时我们需要添加时尚的边框来提升元素的视觉效果。其中,斑马线边框是一种既醒目又别致的设计元素。 实现斜向斑马线边框 要实现斜向斑马线间隔圆环,我们可以使用css paint api。该api提供了强大的功能,可以让我们在元素上绘制复杂的图形。 立即学习“前端…

    2025年12月24日
    000
  • 图片如何不撑高父容器?

    如何让图片不撑高父容器? 当父容器包含不同高度的子元素时,父容器的高度通常会被最高元素撑开。如果你希望父容器的高度由文本内容撑开,避免图片对其产生影响,可以通过以下 css 解决方法: 绝对定位元素: .child-image { position: absolute; top: 0; left: …

    2025年12月24日
    000
  • CSS 帮助

    我正在尝试将文本附加到棕色框的左侧。我不能。我不知道代码有什么问题。请帮助我。 css .hero { position: relative; bottom: 80px; display: flex; justify-content: left; align-items: start; color:…

    2025年12月24日 好文分享
    200
  • HTML、CSS 和 JavaScript 中的简单侧边栏菜单

    构建一个简单的侧边栏菜单是一个很好的主意,它可以为您的网站添加有价值的功能和令人惊叹的外观。 侧边栏菜单对于客户找到不同项目的方式很有用,而不会让他们觉得自己有太多选择,从而创造了简单性和秩序。 今天,我将分享一个简单的 HTML、CSS 和 JavaScript 源代码来创建一个简单的侧边栏菜单。…

    2025年12月24日
    200
  • 前端代码辅助工具:如何选择最可靠的AI工具?

    前端代码辅助工具:可靠性探讨 对于前端工程师来说,在HTML、CSS和JavaScript开发中借助AI工具是司空见惯的事情。然而,并非所有工具都能提供同等的可靠性。 个性化需求 关于哪个AI工具最可靠,这个问题没有一刀切的答案。每个人的使用习惯和项目需求各不相同。以下是一些影响选择的重要因素: 立…

    2025年12月24日
    000
  • 带有 HTML、CSS 和 JavaScript 工具提示的响应式侧边导航栏

    响应式侧边导航栏不仅有助于改善网站的导航,还可以解决整齐放置链接的问题,从而增强用户体验。通过使用工具提示,可以让用户了解每个链接的功能,包括设计紧凑的情况。 在本教程中,我将解释使用 html、css、javascript 创建带有工具提示的响应式侧栏导航的完整代码。 对于那些一直想要一个干净、简…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信