CN116055715B - 编解码器的调度方法及电子设备 - Google Patents
编解码器的调度方法及电子设备 Download PDFInfo
- Publication number
- CN116055715B CN116055715B CN202210662806.1A CN202210662806A CN116055715B CN 116055715 B CN116055715 B CN 116055715B CN 202210662806 A CN202210662806 A CN 202210662806A CN 116055715 B CN116055715 B CN 116055715B
- Authority
- CN
- China
- Prior art keywords
- video
- codec
- electronic device
- encoding
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种编解码器的调度方法及电子设备。在该方法中,电子设备获取到待编解码视频的规格,则根据该规格以及可用的编解码资源,确定采用适配的编解码器对该待编解码的视频进行编解码。从而可以实现,在编解码资源足够的情况下,采用更高效的编解码方式,既提升编解码视频的成功率,又提高了电子设备的编解码资源利用率。
Description
技术领域
本申请涉及终端领域,尤其涉及一种编解码器的调度方法及电子设备。
背景技术
随着数字视频信息量与日俱增。在对视频进行编辑、压缩以及传输的过程中,需要对视频进行编解码。目前,视频编解码技术包括实时硬件编解码、非实时硬件编解码和软件编解码。因此,采用何种编解码技术才能够保证成功编解码视频并提高编解码效率,即如何有效使用编解码资源成为亟需解决的问题。
发明内容
本申请提供了一种编解码器的调度方法及电子设备。在该方法中,电子设备获取到待编解码视频的规格,则根据该规格以及可用的编解码资源,确定采用适配的编解码器对该待编解码的视频进行编解码。从而可以实现,在编解码资源足够的情况下,采用更高效的编解码方式,既提升编解码视频的成功率,又提高了电子设备的编解码资源利用率。
第一方面,本申请提供了一种编解码器的调度方法,该方法应用于电子设备,该方法包括:该电子设备接收针对第一视频的第一操作;该电子设备根据第一规格和该电子设备的编解码能力确定第一编解码器,该编解码能力包括:硬件编解码器的实时编解码能力、非实时编解码能力,和软件编解码器的编解码能力;该第一编解码器支持该电子设备将视频编解码为该第一规格的视频,并且编解码速率最快;该电子设备使用该第一编解码器对该第一视频进行编解码,得到该第一规格的第二视频。
实施本申请提供的编解码器的调度方法后,电子设备可以实现动态调度适配的编解码器对待编解码的视频进行编解码,这样可以在保证成功对视频进行编解码的前提下,进一步的提高编解码效率,有效的利用了电子设备的编解码资源,提升用户体验感。
结合第一方面提供的方法,该第一视频的规格包括以下任意一个或多个:分辨率,帧率。
这样,电子设备可以根据视频的分辨率和/或帧率,确定采用何种编解码器对视频进行编解码,以成功导出对应分辨率和/或帧率的视频。
结合第一方面提供的方法,该第一视频的具体为以下任意一项:该电子设备默认的规格,用户选择的规格,或者该电子设备根据用户虚增的规格和该第一视频的规格计算得到的规格。
这样,电子设备可以根据多种实现方式下的视频的分辨率和/或帧率,确定采用何种编解码器对视频进行编解码,以成功导出对应分辨率和/或帧率的视频。提高本申请的可实施性,为用户提供了个性化的体验。
结合第一方面提供的方法,该实时硬件编解码器的能力根据该硬件编解码器的剩余每秒钟占用宏块数(macro block per second,MBPS)和每帧占用的宏块数(macro blockper frame,MBPF)决定,该非实时硬件编解码器的能力根据该硬件编解码器的剩余MBPF决定,该软件编解码的能力根据该软件编码支持的分辨率决定。
结合第一方面提供的方法,在该电子设备接收第一操作之前,该方法还包括:该电子设备运行第一应用程序,该第一应用程序提供对视频进行编解码的功能。
这样,用户可以在使用第一应用程序编辑视频的场景中使用本申请提供的编解码方法。
结合第一方面提供的方法,在该电子设备接收第一操作之前,该方法还包括:该电子设备显示该第一应用程序提供的第一用户界面,该第一用户界面显示有第三视频的预览窗口,和,第一控件;该电子设备接收到作用于该第一控件的第二操作;该电子设备将该第三视频编辑为该第一视频。
这样,用户可以在使用第一应用程序将第三视频编辑为第一视频后进行导出,以得到第二视频。
结合第一方面提供的方法,该电子设备运行第一应用程序之后,该方法还包括:该电子设备显示该第一应用程序提供的第一用户界面,该第一用户界面显示有该第一视频的预览窗口、第二控件;该第一操作包括作用于该第二控件的操作。
这样,用户可以通过使用第一应用程序对视频进行导出时,对通过对第一视频进行编解码以得到导出后的第二视频。
结合第一方面提供的方法,该第一用户界面还显示有第三控件,该电子设备接收针对第一视频的第一操作之前,该方法还包括:该电子设备接收到作用于该第三控件的第三操作;该电子设备显示视频规格的调节条;该电子设备接收到在该调节条上的第四操作;该电子设备将该第四操作在该调节条上选定的视频规格确定为该第一规格。
这样,电子设备在导出视频之前,可以自定义视频的规格。
结合第一方面提供的方法,该电子设备使用该第一编解码器对该第一视频进行编解码的过程中,该方法还包括:该电子设备在该第一用户界面中显示进度条,该进度条用于指示该电子设备使用该第一编解码器对该第一视频进行编解码的进度。
这样,电子设备可以通过输出导出进度条以提示用户编解码得到第二视频的进度。
结合第一方面提供的方法,该电子设备使用该第一编解码器对该第一视频进行编解码之后,该方法还包括:该电子设备完成对该第一视频的编解码后,输出指示完成对该第一视频的编解码的提示信息。
这样,电子设备可以通过弹出成功导出的窗口以提示用户已完成编解码得到第二视频。
结合第一方面提供的方法,该方法还包括:该电子设备完成对该第一视频的编解码后,该电子设备显示第二应用程序提供的第二用户界面,该第二用户界面显示有该第二视频的预览窗口。
这样,在电子设备完成对视频的编解码后可以直接跳转至图库,并显示导出后的第二视频。
结合第一方面提供的方法,该第一应用程序为视频编辑应用,该第二应用程序为图库应用。
结合第一方面提供的方法,该硬件编解码器的剩余MBPF由该第一应用程序的导出策略模块通过调用该电子设备的应用程序框架层中的多媒体编码Mediacodec获取。
结合第一方面提供的方法,当该硬件编解码器对同一视频进行编解码时,该硬件编解码器的实时编解码速率大于该硬件编解码器的非实时编解码速率,当该软件编解码器对该同一视频进行编解码时,该硬件编解码器的非实时编解码速率大于该软件编解码速率。
这样,电子设备可以实现,在编解码资源足够的情况下,采用更高效的编解码方式,既提升编解码视频的成功率,又提高了电子设备的编解码资源利用率。
第二方面,本申请提供了一种芯片,该芯片应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面中任一项描述的方法。
第三方面,本申请提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面中任一项描述的方法。
第四方面,本申请提供了一种电子设备,该电子设备包括一个或多个处理器和一个或多个存储器;其中,该一个或多个存储器与该一个或多个处理器耦合,该一个或多个存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,当该一个或多个处理器执行该计算机指令时,使得该电子设备执行如第一方面中任一项描述的方法。
附图说明
图1为本申请实施例提供的一种电子设备硬件架构示意图;
图2为本申请实施例提供的一种电子设备软件架构示意图;
图3为本申请实施例提供的一种编解码器的调度方法流程图;
图4A为本申请实施例提供的另一种编解码器的调度方法流程图;
图4B为本申请实施例提供的一种导入视频的用户界面示意图;
图5A-图5F为本申请实施例提供的一组用户界面示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markuplanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
随着数字视频信息量与日俱增。在对视频进行编辑、压缩以及传输的过程中,需要对视频进行编解码。目前,电子设备支持的视频编解码技术包括实时硬件编解码、非实时硬件编解码和软件编解码。因此,采用何种编解码技术才能够保证成功编解码视频并提高编解码效率,即如何有效使用编解码资源成为亟需解决的问题。
为了解决上述问题,本申请提供了一种编解码器的调度方法及电子设备。在该方法中,电子设备获取到待编解码视频的规格,则根据该规格以及可用的编解码资源,确定采用适配的编解码器对该待编解码的视频进行编解码。从而可以实现,在编解码资源足够的情况下,采用更高效的编解码方式,既提升了编解码视频的成功率,又提高了电子设备的编解码资源利用率。
接下来,先介绍本申请提供的编解码器的调度方法所应用的电子设备。
电子设备可以是搭载或者其它操作系统的便携式终端设备,例如手机、平板电脑、可穿戴设备、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备等等。本申请对电子设备的形态不作限制。
参考图1,图1示例性示出电子设备100的硬件架构示意图。
如图1所示,电子设备100可以包括:处理器110,通用串行总线(universal serialbus,USB)接口120、外部存储器接口130、内部存储器140、显示屏150、通信模块160,摄像头170,视频编解码器180,传感器模块190等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。例如电子设备100还可以包括音频模块、充电模块、电源管理模块、按键、马达、指示器、SIM卡等等。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器180,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在本申请实施例中,处理器110可用于根据检测到的用户的触发操作,触发电子设备中的相应模块(例如导出策略模块)确定编解码视频时的编解码策略,并控制相应模块(例如导出模块)根据该策略,去控制对应的硬件编解码器或者软件编解码,对待编解码的视频进行编解码。关于处理器110控制导出策略模块确定编解码视频时的编解码策略,以及控制导出模块根据该策略,去控制对应的硬件编解码器或者软件编解码器进行编解码的操作可以参考后文方法流程的详细描述,在此暂不赘述。
在本申请实施例中,电子设备的硬件编码器是指独立于CPU的一个芯片,软件编解码器则是指运行在CPU上的程序,软件编解码的速度依赖与CPU的算力。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括通用串行总线USB接口120、外部存储器接口130等。
USB接口120是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口120可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
外部存储器接口130可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口130与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
在本申请一些实施例中接口还可以包括图1中未示出的集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,和/或用户标识模块(subscriber identity module,SIM)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
内部存储器140可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universalflash storage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
在本申请实施例中,上述存储器可用于存储编解码前的视频和编解码的后的视频。具体的,当电子设备采用适配的编解码器对视频进行编解码后,可以将编解码后的视频存储在电子设备的存储器中。
电子设备100通过GPU,显示屏150,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏150和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏150用于显示图像,视频等。显示屏150包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD)。显示屏面板还可以采用有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flexlight-emitting diode,FLED),miniled,microLed,micro-oled,量子点发光二极管(quantum dot light emitting diodes,QLED)等制造。在一些实施例中,电子设备100可以包括1个或N个显示屏150,N为大于1的正整数。
在本申请实施例中,上述显示屏150可用于显示运行视频编辑类APP所提供的用户界面,该界面中的内容包括但不限于正在编辑的视频。此外上述显示屏150还可用于显示图库显示的用户界面,该界面中包含的内容包括但不限于在视频编辑类APP编辑成功后导出到图库的视频。
电子设备100可以通过ISP,摄像头170,视频编解码器180,GPU,显示屏150以及应用处理器等实现拍摄功能。
ISP用于处理摄像头170反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头170中。
摄像头170用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头170,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器180用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器180。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
在本申请实施例中,视频编解码器180则是后文所述的硬件编解码器,其可以在msm_vidc的控制下,对待编解码的视频进行实时编解码或者非实时编解码。也就是说,该视频编解码器180可以工作在实时编解码模式下,也可以工作在非实时编解码模式下。
电子设备100可以通过音频模块,扬声器,受话器,麦克风,耳机接口,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块还可以用于对音频信号编码和解码。在一些实施例中,音频模块可以设置于处理器110中,或将音频模块的部分功能模块设置于处理器110中。
通信模块160可以包括移动通信模块、无线通信模块。移动通信模块可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(globalnavigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
传感器模块190可以包括但不限于压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、环境光传感器、指纹传感器、触摸传感器、骨传导传感器等。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的系统为例,示例性说明电子设备100的软件结构。
参考图2,图2是本申请实施例的电子设备100的软件架构示意图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括视频编辑类应用程序(Application,APP),相机,图库,以及未示出的日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
在本申请实施例中,视频编辑类APP可以包括UI模块、导出策略模块和导出模块等。
其中,UI模块用于调用显示屏150显示视频编辑类APP提供的内容,关于视频编辑类APP所显示的内容,具体可以参考后文UI实施例中介绍的图5A示出的内容,本申请实施例对此不作限制。并且UI模块还可以根据用户作用在显示屏150上的用于编辑、导出、导入视频的操作获取该操作对应的事件等等,例如UI模块可以根据用户操作,确定用户选择的待导出的视频,以及待导出视频的规格,包括视频的帧率和分辨率等。
其中,导出策略模块用于确定导出视频时所采用的策略,具体的,导出策略模块可以调用应用程序框架层中的编解码资源查询模块(具体为宏块资源查询模块)查询各种编解码器的资源,并根据编解码器的资源和待导出视频的规格确定视频导出策略。该视频导出策略包括使用何种编解码器,即,使用实时硬件编解码器、非实时硬件编解码器或者是使用软件编解码,该策略还包括导出视频的帧率和分辨率等。导出视频的帧率与用户在UI模块中选择的帧率相同,但是导出视频的分辨率和用户在UI模块中选择的分辨率可能相同可能不同,具体的,关于导出策略模块确定导出视频时所采用的策略的具体实现方法可以参考后文的方法描述。
其中,导出模块用于接收导出策略发送的导出策略,并根据导出策略控制应用程序框架层中的媒体编解码器(Mediacodec)初始化对应的编解码器,然后控制使用该编解码器对待导出的视频进行编码,并将编码后的视频导出即存储在电子设备的存储器中。
可以理解的是,关于视频编辑类APP包含的上述UI模块、导出策略模块和导出模块的名称仅为示例,本申请实施例这三个模块所使用的名称不作限制,关于这些模块的作用已经在上文和下文中的方法流程中详细记载。
可以理解的是,该视频编辑类APP还可以包含导入策略模块和的导入模块等。关于导入策略模块和导入模块的作用分别与上文所述的导出策略模块和导出模块类似,唯一不同的是,触发导入策略模块和的导入模块执行对应的操作,是用户输入用于向该视频编辑类APP导入视频的操作,而非导出视频的操作。关于对导入策略模块和的导入模块具体作用在此暂不赘述。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括但不限于:编解码资源查询模块,Mediacodec,内容提供器,窗口管理器,视图系统,通知管理器等。
编解码资源查询模块的作用是,为上层应用提供硬件编解码器的宏块资源查询接口,以供上层应用(例如视频编辑类APP中的导出策略模块)调用该接口查询硬件编解码器的剩余宏块资源并根据剩余宏块资源确定导出策略。该剩余宏块资源包括:每秒钟占用宏块数(macro block per second,MBPS)和每帧占用的宏块数(macro block per frame,MBPF)。在本申请另一些实施例中,该宏块资源查询接口可以包括两类接口,一类接口用于查询上述剩余宏块资源,另一类接口则用于查询总宏块资源。
在本申请实施例中,上述视频编辑类APP还可以称为第一应用,图库还可以称为第二应用。其中,视频编辑类APP可以是集成在图库中的服务组件,也可以是独立的系统应用程序或者是独立的第三方应用程序。本申请实施例对此不作限制。
Mediacodec是系统提供的用于对视频进行编解码的类,即为上层应用提供的一个用于对视频进行编解码的统一接口,该接口通过访问底层的编解码器来实现编解码的功能。具体的,在本申请实施例中,上层应用例如视频编辑类APP中的导出模块可以调用Mediacodec进行编解码器的创建,即初始化编解码器。此外,Mediacodec还可以为上层应用提供软件编解码器资源能力的接口,以供上层应用(例如视频编辑类APP中的导出策略模块)调用该接口查询软件编解码器的能力并根据该能力确定导出策略。该软件编解码器的能力具体可以通过软件编解码器所支持的分辨率来度量。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
内核层是硬件和软件之间的层。内核层包含但不限于编解码器驱动(msm_vidc)、显示驱动,摄像头驱动,音频驱动,传感器驱动等等。
msm_vidc用于与硬件层中的编解码器进行交互,负责控制编解码器执行对视频的编解码任务。
在本申请实施例中,电子设备100的软件架构还包括系统库。系统库中的AndroidRuntime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
下面结合视频导出场景,示例性说明电子设备100软件以及硬件的工作流程。
当触摸传感器接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为视频编辑类APP中的导出控件为例,视频编辑类APP调用应用框架层的接口,进而通过调用内核层启动视频编解码器180,通过视频编解码器180进行视频的编解码。
基于上文对电子设备的软硬件架构的介绍,接下来结合图3所示的方法流程来详细描述本申请提供的编解码器的调度方法。
参考图3,图3示例性示出本申请提供的编解码器的调度方法流程。
如图3所示,该方法流程包括以下步骤:
S31,电子设备接收到用户操作。
具体的,电子设备接收到的用户操作是用于触发电子设备对视频进行编解码的操作。
可以知道的是,在电子设备对视频进行压缩、解压、传输等过程中都会涉及到对视频进行编解码。因此,在不同的应用场景中,用于触发电子设备对视频进行编解码的具体操作不同。例如,在电子设备进行传输视频的场景下,触发电子设备对视频进行编解码的操作具体为选择视频并点击用于发送的控件的操作(例如后文图5D所示的操作);又例如,在下载视频的场景下,触发电子设备对视频进行编解码的操作具体为选择视频并点击用于下载的控件的操作;又例如,使用视频编辑类APP对视频进行编辑前,触发电子设备对视频进行编解码的操作具体为选择视频并点击用于导入的控件(例如编辑控件)的操作;又例如,使用视频编辑类APP对视频进行编辑后,触发电子设备对视频进行编解码的操作具体为点击用于导出的控件的操作;又例如,在浏览网络上的视频时,触发电子设备对视频进行编解码的操作具体为的触发电子设备的播放器该视频的操作,具体为点击播放控件的操作。也就是说,本申请实施例提供的编解码器的调度方法可以适用于多种涉及视频编解码的场景,因此,本申请不对触发电子设备进行编解码的操作进行限制。
在本申请实施例中,在电子设备接收到上文步骤S31所述的用于从触发电子设备进行编解码的操作后,响应于该操作,电子设备需要确定该视频的编解码策略,用于根据该编解码策略调用适配的编解码器进行编解码。其中,电子设备包含硬件编解码器和软件编解码,硬件编解码具体可以分为实时硬件编解码和非实时硬件编解码。这三种编解码方式的编解码效率是不同的,实时硬件速率最快,非实时硬件编解码的速率中等,软件编解码的速率则是最慢。因此,电子设备在确定该视频对应的编解码策略时,可以按照编解码速率由高到低的顺序,判断具体采用何种编解码器资源对该视频进行编码。
所以,在电子设备确定视频的编解码策略的过程中,电子设备首先执行下文所述的S32-S33-1所述的步骤,用于判断该视频的编解码策略是否采用硬件编解码器进行实时编解码。
S32,电子设备获取硬件编解码能力。
具体的,电子设备可以通过查询芯片组件中存储的内容,来获得硬件编解码的能力。其中,芯片组件是存储在电子设备中的,包含硬件编解码器的相关信息的文件,具体可以由电子设备的应用程序框架层中的宏块资源查询模块获取得到,关于块资源查询模块通过查询芯片组件中存储的内容获取硬件编解码的能力的具体实现过程可以参考后文图4A所述的详细方法流程的描述。其中,硬件编解码器的能力具体可以分别用剩余MBPS、剩余MBPF来衡量,剩余MBPS用于指示电子设备采用硬件编解码器进行实时编解码时的资源,剩余MBPF用于指示电子设备采用硬件编解码器进行非实时编解码时的资源。
可以理解的是,步骤S32中获取的硬件编解码的能力可以用于电子设备根据该能力进行判断是否可以使用硬件编解码器进行实时/非实时编解码,即用于为电子设备执行后续步骤S33-1提供判断依据。
S33-1,电子设备判断是否使用硬件编解码器进行实时编解码。
具体的,电子设备根据上文步骤S32中获取的剩余MBPS和上文步骤S32中所述的待编解码的视频的规格,来确定是否使用硬件编解码器进行实时编解码。
其中,剩余MBPS是指,若采用硬件编解码器进行实时编解码时,该硬件编解码器所支持的可用的宏块资源,即实时硬件编解码每秒占用的宏块数量。
其中,待编解码的视频的规格包括:视频的分辨率、视频的帧率。其中视频的分辨率和视频的帧率可以是根据用户的操作所自定义的,也可以是电子设备默认选择的,或者还可以是在用户自定义/电子设备默认选择的基础之上即计算的到的视频规格。例如,在电子设备传输、下载、导入、导出视频的场景下,用户可以选择传输或者下载何种规格的视频,若用户没有主动选择,则电子设备可以默认使用分辨率例如为720逐行扫描(progressivescan,P),帧率例如为30画面每秒传输帧数(Frame Per Second,fps)的视频规格。又例如,在导出视频的场景下,用户自定义的视频规格和原始的导入视频的规格不同时,则电子设备也可以采用一定的微调措施,计算的到一个更加适配的视频规格。该计算规格具体为:当导入的视频的宽和高比例16;9时,用户选择的分辨率中的宽(或高)为1080P时,则导出视频的宽或高为1080P高(或宽)为1080*16/9=1920P,其中用户选择的分辨率中的宽(或高)对应导出视频的短边,计算得到的高(或宽)即1920P对应导出视频的长边。
总之,本申请实施例对待编解码的视频的规格,不作具体的限制。
其中,判断是否使用硬件编解码器进行实时编解码的具体规则为,判断获取到的剩余MBPS是否足够支持电子设备按照上文所述的待编解码的视频规格进行编解码。即,判断剩余MBPS是否满足关系式“剩余MBPS>分辨率*帧率/256”,当满足该关系式时,则认为可以使用电子设备的硬件编解码器进行实时编解码;若不满足上述关系式,则认为不可以使用电子设备的硬件编解码器进行实时编解码。
以一个具体的示例来看,例如,当待编解码的视频规格为帧率是30fps、分辨率是1920p*1080p时,剩余MBPS用X来表示时,若剩余MBPS满足关系式“X>1920*1080*30/256”,则认为可以使用电子设备的硬件编解码器进行实时编解码;若不满足上述关系式,则认为不可以使用电子设备的硬件编解码器进行实时编解码。
当电子设备在步骤S33-1中判断得到可以使用电子设备的硬件编解码器进行实时编解码时,则电子设备跳转执行后文所述的步骤S34-1;若判断得到不可以使用电子设备的硬件编解码器进行实时编解码时,则跳转至执行后文所述的步骤S33-2。
S33-2,电子设备判断是否使用硬件编解码器进行非实时编解码。
具体的,电子设备根据上文步骤S32中获取的剩余MBPF和上文步骤S32中所述的待编解码的视频的规格,来确定是否使用硬件编解码器进行非实时编解码。
其中,剩余MBPF是指,若采用硬件编解码器进行非实时编解码时,该硬件编解码器所支持的可用的宏块资源,即非实时硬件编解码每秒占用的宏块数量。
其中,待编解码的视频的规格和上述步骤S33-1所述的一致,具体可以参看上文的描述,在此暂不赘述。
其中,判断是否使用硬件编解码器进行非实时编解码的具体规则为,判断获取到的剩余MBPF是否足够支持电子设备按照上文所述的待编解码的视频规格进行编解码。即,判断剩余MBPF是否满足关系式“剩余MBPF>分辨率/256”,当满足该关系式时,则认为可以使用电子设备的硬件编解码器进行非实时编解码;若不满足上述关系式,则认为不可以使用电子设备的硬件编解码器进行非实时编解码。
以一个具体的示例来看,例如,当待编解码的视频规格为帧率是30fps、分辨率是1920p*1080p时,剩余MBPF用Y来表示时,若剩余MBPF满足关系式“Y>1920*1080/256”,则认为可以使用电子设备的硬件编解码器进行非实时编解码;若不满足上述关系式,则认为不可以使用电子设备的硬件编解码器进行非实时编解码。
对比上述步骤S33-1和步骤S33-2分别采用的两个判断关系式可以发现,判断是否采用实时硬件编解码时,关系式中涉及到乘以帧率的概念,而判断是否采用非实时硬件编解码时,关系式中不涉及帧率的概念。这是因为,采用实时硬件编解码技术时,衡量实时硬件编解码能力的MBPS是指,实时硬件编解码每秒占用的宏块数;而采用非实时硬件编解码技术时,衡量非实时硬件编解码能力的MBPF是指,非实时硬件编解码每帧占用的宏块数。因此。在判断是否采用实时硬件编解码时,关系式中涉及到乘以帧率,而判断是否采用非实时硬件编解码时,关系式中不涉及乘以帧率。
当电子设备在步骤S33-2中判断得到可以使用电子设备的硬件编解码器进行非实时编解码时,则电子设备跳转执行后文所述的步骤S34-2;若判断得到不可以使用电子设备的硬件编解码器进行非实时编解码时,则跳转至执行后文所述的步骤S33-3。
S33-3,电子设备获取软件编解码能力。
具体的,电子设备可以通过查询系统组件中存储的内容,来获得软件编解码的能力。其中,系统组件是存储在电子设备的应用程序框架层中Mediacodec中的,包含软件编解码的相关信息的文件。其中,软件编解码器的能力具体可以用软件编解码所支持的分辨率来衡量。当软件编解码所支持的分辨率越多,分辨率越大,则说明软件编解码的能力越高。
可以理解的是,步骤S33-3中获取的软件编解码的能力可以用于电子设备根据该能力进行判断是否可以使用软件编解码器进行编解码,即用于为电子设备执行后续步骤S33-4提供判断依据。
S33-4,电子设备判断是否使用软件编解码。
具体的,电子设备根据上文步骤S33-3中获取的软件编解码能力和上文步骤S32中所述的待编解码的视频的规格,来确定是否使用软件编解码器进行编解码。
其中,软件编解码的能力即上文步骤S33-3中所述的软件编解码所支持的分辨率。
其中,待编解码的视频的规格和上述步骤S33-1所述的一致,具体可以参看上文的描述,在此暂不赘述。
其中,判断是否使用软件编解码器进行编解码的具体规则为,判断获取到的软件编解码所支持的分辨率是否足够支持电子设备按照上文所述的待编解码的视频规格进行编解码。即,当软件编解码所支持的分辨率包含上文所述的待编解码的视频的分辨率时,则认为可以使用电子设备的软件编解码器进行编解码;若软件编解码所支持的分辨率不包含上文所述的待编解码的视频的分辨率时,则认为不可以使用电子设备的软件编解码器进行编解码。
当电子设备在步骤S33-3中判断得到可以使用电子设备的软件编解码进行编解码时,则电子设备跳转执行后文所述的步骤S34-3;若判断得到不可以使用电子设备的软件编解码进行编解码时,则跳转至执行后文所述的步骤S35-2。
S34-1,电子设备调用硬件编解码器进行实时编解码。
具体的,电子设备可以根据待编解码视频的规格对硬件编解码器进行初始化,即创建编解码器对象,并调用创建的编解码器对象对该视频进行实时编解码。关于电子设备调用硬件编解码器进行编解码的具体实现方法可以参考后文图4A中所示的步骤S411-S419,在此暂不赘述。
S34-2,电子设备调用硬件编解码器进行非实时编解码。
具体的,电子设备可以根据待编解码视频的规格对硬件编解码器进行初始化,即创建编解码器对象,并调用创建的编解码器对象对该视频进行非实时编解码。关于电子设备调用硬件编解码器进行编解码的具体实现方法可以参考后文图4A中所示的步骤S411-S419,在此暂不赘述。
S34-3,电子设备调用软件编解码器进行编解码。
具体的,电子设备可以根据待编解码视频的规格对软件编解码器进行初始化,即创建编解码器对象,并调用创建的编解码器对象对该视频进行编解码。关于电子设备调用硬件编解码器进行编解码的具体实现方法可以参考后文图4A中所示的步骤S411-S419,在此暂不赘述。
S35-1,电子设备输出指示编解码视频成功的信息。
具体的,当电子设备检测到成功编解码后,即采用硬件编解码器完成对视频的实时/非实时编解码,或者采用软件编解码器完成对视频的编解码之后,则电子设备会输出用于提示用户编码成功的提示信息。
可以理解的是,在不同的应用场景中,该输出的指示编解码视频成功的信息可能不同。例如,在传输或者下载视频的场景中,当电子设备完成对视频的编解码时,则电子设备会输出用于提示用传输完成或者下载完成的提示信息;又例如,在向视频编辑类APP导入视频的场景中,在电子设备对视频进行编解码时,电子设备会根据编解码视频的进度相应的显示导入视频的进度,当完成对视频的编解码时,则电子设备还可能会显示导入成功的提示信息,或者电子设备会的跳转至视频编辑类APP提供的编辑页面,并同时显示已经导入成功的视频的界面;又例如,在从视频编辑类APP导出视频到图库的场景中,在电子设备对视频进行编解码时,电子设备会根据编解码视频的进度相应的显示导出视频的进度,当完成对视频的编解码时,则电子设备还可能会显示导出成功的提示信息,或者电子设备会的跳转至图库提供的预览页面,并同时显示已经导出成功的视频的画面。
S35-2,电子设备输出指示编解码视频失败的信息。
具体的,当电子设备在上述步骤S33-4中检测到不能使用软件编解码器进行编解码时,则说明上述三种编码方式都不适用于对当前待编解码的视频进行编解码,因此电子设备会输出用于指示编解码视频失败的信息。
可以理解的是,在不同的应用场景中,该输出的指示编解码视频失败的信息可能不同。例如,在传输或者下载视频的场景中,当电子设备检测到没有适配的编解码资源对该视频进行编解码时,则电子设备会输出用于提示用传输失败或者下载失败的提示信息;又例如,在向视频编辑类APP导入视频的场景中,在电子设备对视频进行编解码时,电子设备显示导入失败的提示信息(例如可以是当前视频规格不支持的信息),或者显示黑屏画面等;又例如,在从视频编辑类APP导出视频到图库的场景中,在电子设备对视频进行编解码时,电子设备会显示导入失败的提示信息(例如可以是当前视频规格不支持的信息),或者显示黑屏画面等。
基于上文介绍的图3所示的方法流程,接下来结合图4A所示的方法流程,以一个具体的编解码(导出视频)场景,来详细描述本申请提供的一种编解码器的调度方法。
参考图4A,图4A示例性示出在导出视频的场景下,本申请提供的编解码器的调度方法流程。其中,导出视频的场景的具体是指,在电子设备运行视频编辑类APP时,用户将将编辑好的视频从视频编辑类APP导出至图库的场景。
如图4A所示,该方法流程包括以下步骤:
阶段1(S401):电子设备根据用户操作,选择待导出的视频。
S401,电子设备的UI模块接收到用户操作。
具体的,电子设备的UI模块可以接收到用户输入的用于触发视频编辑类APP将编辑好的视频导出至图库的操作。该导出操作即前文S31中所述的触发电子设备进行编解码的一种可能实施的操作。
其中,UI模块具体为电子设备安装的视频编辑类APP包括的模块,关于UI模块的介绍可以参考前文对电子设备软件架构的描述,在此暂不赘述。
参考图4B,图4B示例性示出导入视频的操作示意图。
如图4B所示,该用户界面为图库提供的用户界面,具体显示有预览窗口411,和编辑控件412。其中,该预览窗口411可用于显示图库中存储的视频,编辑控件412用于触发电子设备将预览窗口411中的文件导入至电子设备的视频编辑类APP中,以供用户在该APP中对导入的视频进行编辑。
当电子设备检测到作用于所述编辑控件412的操作,所述电子设备显示如图5A所示的用户界面。
参考图5A-图5D,图5A-图5D示例性示出在导出视频的场景下,用户输入的用于输触发电子设备进行编解码的操作示意图。
参考图5A,图5A示例性示出电子设备的视频编辑类APP提供的用户界面示意图。
如图5A所示,电子设备显示视频编辑类APP提供的用户界面,也可以称为视频编辑界面。该用户界面包含预览窗口511、视频编辑操作栏512、视频编辑操作栏513、控件514和控件515等等。
其中,预览窗口511用于显示用户正在编辑的视频对象,该视频对象是用户预先导入在该视频编辑类APP中的视频。当用户对该视频进行编辑时,该预览窗口511中显示的视频也会根据用户的编辑操作做出相应的变化,例如当用户对该视频添加音乐或者文字素材时,则当该预览窗口511播放音频时,则会显示相应的文字素材,或者播放相应的音乐等等。
其中,视频编辑操作栏512包含一系列对视频进行的编辑的操作控件,包括但不限于:分割、截取、音量、变速、删除等控件。
其中,视频编辑操作栏513页包含一系列对视频进行的编辑的操作控件,包括但不限于:剪辑、滤镜、音乐、文字、特效等控件。
在本申请实施例中,视频编辑操作栏512和视频编辑操作栏513显示的一系列控件还可以称为第一控件,作用于第一控件的用于编辑视频的操作可以称为第二操作。
其中,控件514用于查看导出视频的规格,视频的规格包括但不限于视频的分辨率、帧率和视频的大小等。通常的,视频的帧率默认为40画面每秒传输帧数(Frame PerSecond,fps),视频的分辨率通常为导入该视频时视频的分辨率,该导入视频的帧率可能和导入之前存储在图库中的原始视频的帧率相同,也可能不同,即一些视频编辑类APP会根据自己的导入策略对导入的视频的规格进行微调。
其中,控件515用于触发导出视频。
可以理解的是,图5A所示的用户界面仅仅示例性示出视频编辑类APP为用户提供的用于编辑视频的一系列操作控件,不应构成对本申请的限制,本申请实施例对视频编辑类APP所显示的视频编辑界面包括的内容不做限制。
在本申请实施例中,当用户编辑完成视频后,想要保存编辑后的视频,需要将该视频导出到例如电子设备的图库中进行存储。
可选的,在导出视频前,用户可以自定义导出视频的规格,即,用户还可以对待导出视频的规格进行查看和调整。若用户对待导出视频的规格不作调整,则默认用户想要导出视频的规格为默认规格,该默认规格即前文所述的视频的帧率默认为30fps,视频的分辨率为导入该视频时,视频的分辨率。
在本申请实施例中,图5A所示的预览窗口511中显示的导入后并且编辑前的视频可以称为第三视频。
在本申请实施例中,图5A所示的预览窗口511中显示的导入后并且编辑后的视频可以称为第一视频。
参考图5B,图5B示例性示出查看待导出视频规格的操作示意图。
如图5B所示,电子设备安装的视频编辑类APP的UI模块可以接收到用户输入的作用于控件514的操作,响应于该操作,UI模块会控制显示屏150显示图5C所示的用户界面。
参考图5C,图5C示例性示出显示待导出视频规格的用户界面示意图。
如图5C所示,该用户界面包括:分辨率操作栏516、帧率操作栏517和提示信息518。
其中,分辨率操作栏516包括一条用于调整分辨率的刻度条,该刻度条例如包括四个刻度,该四个刻度分别对应四个不同的分辨率,即480逐行扫描(progressive scan,P)、720P、1080P和2K/4K。用户可以通过在该进度条中进行左右滑动,以控制选中不同的分辨率。此时,分辨率的刻度条对准的分辨率为1080P,1080P为默认为导入该视频时视频的分辨率。可以理解的是,默认导出视频的分辨率仅为示例,在本申请另一些实施例中,该默认的导出视频的分辨率还可以是其他,本申请实施例对此不作限制。
在本申请实施例中,上述控件514还可以称为第三控件,作用于该第三控件的操作还可以称为第三操作。作用于上述进度条(又称刻度条)的操作还可以称为第四操作。
其中,帧率操作栏517包括一条用于调整帧率的刻度条,该刻度条例如包括五个刻度,该五个刻度分别对应五个不同的帧率,即24fps、25fps、40fps、50fps和60fps。用户可以通过在该进度条中进行左右滑动,以控制选中不同的帧率。此时,帧率的刻度条对准的帧率为40fps,40fps默认为导出视频时视频的帧率。可以理解的是,默认导出视频的帧率仅为示例,在本申请另一些实施例中,该默认的导出视频的帧率还可以是其他,本申请实施例对此不作限制。
其中,提示信息518用于显示,待导出视频的大小,例如,当待导出视频的规格为1080P和40fps时,则该视频剪辑类APP可以估算导出后的视频所占用的内存的大小,例如18兆字节(Mega byte,MB)。
参考图5D,图5D示例性示出导出视频的操作示意图。
如图5D所示,电子设备安装的视频编辑类APP的UI模块可以接收到用户输入的作用于控件515的操作,响应于该操作,UI模块则会触发电子设备导出视频,即进行编解码的操作。导出视频包含:确定导出策略,和根据导出策略进行编解码等步骤,具体可以参考后文的方法流程中阶段2和阶段3的描述。
在本申请实施例中,上述控件515还可以称为第二控件,作用于该第二控件的操作还可以称为第一操作。
阶段2(S402-S410):电子设备根据编解码资源选择适配的编解码器。
S402,电子设备的UI模块向导出策略模块发送导出视频的指令。
具体的,在电子设备的UI模块接收到上文步骤S401所述的用于从触发电子设备进行编解码的操作,具体为导出视频的操作后,响应于该操作UI模块会向导出策略模块发送导出视频的指令。该导出视频的指令具体可以携带但不限于以下信息:待导出视频的规格,其中待导出视频的规格前文所述的用户进行调整后的自定义的视频规格,或者是默认的视频规格(用户为调整视频规格的前提下)。
其中,导出策略模块与UI模块一样,都是电子设备安装的视频编辑类APP中包括的模块,关于导出策略模块的介绍可以参考前文对电子设备软件架构的描述,在此暂不赘述。
S403,电子设备的导出策略模块向宏块资源查询模块发送查询宏块资源的请求。
具体的,在电子设备的导出策略模块接收到UI模块发送的导出视频的指令后,响应于该指令,电子设备的导出策略模块需要获取硬件编解码器的能力,以为后续判断是否使用硬件编解码器进行实时/非实时编解码提供判断依据。其中,获取硬件编解码器的能力则包括向宏块资源模块发送的查询宏块资源的请求,该查询宏块资源的请求具体用于查询硬件编解码器的剩余MBPS和剩余MBPF。
其中,宏块资源查询模块是电子设备的应用程序框架层中包括的模块,关于该宏块资源查询模块的介绍可以参考前文对电子设备软件架构的描述,在此暂不赘述。
S404,电子设备的宏块资源查询模块从芯片组件中查询到宏块资源。
具体的,电子设备的宏块资源查询模块可以为上层应用(即视频编辑类APP的导出策略模块)提供相应的接口,通过该接口可以从芯片组件的文件中查询到硬件编解码器的宏块资源,该芯片组件的文件具体可以存储在电子设备的内核层中的msm_vidc中,并且该芯片组件的文件由msm_vidc在每次开机的时候写入。
其中,电子设备的宏块资源查询模块查询的宏块资源具体是指示硬件编解码器的能力,即前文所述的剩余MBPS和剩余MBPF。
其中,关于msm_vidc的介绍,具体可以参考前文电子设备的软件架构中的内核层的描述,在此暂不赘述。
S405,电子设备的宏块资源查询模块向导出策略模块发送查询到的宏块资源。
具体的,响应于电子设备的导出策略模块发送的查询宏块资源的请求,电子设备的宏块资源查询模块将查询到的硬件编解码器的剩余MBPS和剩余MBPF返回给导出策略模块。
S406,电子设备的导出策略模块根据待导出视频的规格和宏块资源确定是否选择实时/非实时硬件编解码。
具体的,电子设备的导出策略模块,可以根据接收到的上述步骤S402中UI模块发的导出视频指令中包含的视频的规格,以及,根据接收到的剩余MBPS和剩余MBPF判断是否使用硬件编解码器对待导出的视频进行编解码。
关于电子设备的导出策略模块判断是否使用硬件编解码器对待导出的视频进行编解码的具体实现方法可以参考前文对图3所示的方法流程中的步骤S33-1至S33-2的详细描述,在此暂不赘述。
若在步骤S406中,电子设备的导出策略模块判断不能使用电子设备的硬件模块进行实时/非实时编解码时,则电子设备跳转至执行后文的步骤S407;若在步骤S406中,电子设备的导出策略模块判断可以使用电子设备的硬件模块进行实时/非实时编解码时,则电子设备直接跳转至执行后文的阶段3,即执行步骤S411,也就是不执行后文的步骤S407-S410。
S407,电子设备的导出策略模块向Mediacodec发送查询软件编解码能力的请求。
具体的,在电子设备的导出策略模块判断不能使用电子设备的硬件编解码器进行实时/非实时编解码时,则电子设备的导出策略模块需要获取软件编解码器的能力,以为后续判断是否使用软件编解码器进行编解码提供判断依据。其中,获取软件编解码器的能力则包括向Mediacodec发送的查询软件编解码能力的请求,该查询软件编解码能力的请求具体用于查询软件编解码器所支持的分辨率。
其中,Mediacodec是电子设备的应用程序框架层中包括的模块,关于该Mediacodec的介绍可以参考前文对电子设备软件架构的描述,在此暂不赘述。
S408,电子设备的Mediacodec从系统组件中查询到软件编解码能力。
具体的,电子设备的Mediacodec可以为上层应用(即视频编辑类APP的导出策略模块)提供相应的接口,通过该接口可以从系统组件的文件中查询到软件编解码器的能力。
其中,电子设备的Mediacodec查询到的软件编解码器的能力具体是前文所述的软件编解码器所支持的分辨率。
S409,电子设备的Mediacodec向导出策略模块发送查询到的软件编解码能力。
具体的,响应于电子设备的导出策略模块发送的查询软件编解码能力的请求,电子设备的宏块资源查询模块将查询到的软件编解码所支持的分辨率返回给导出策略模块。
S410,电子设备的导出策略模块根据待导出视频的规格和软件编解码能力确定是否选择软解编解码。
具体的,电子设备的导出策略模块,可以根据接收到的上述步骤S402中UI模块发的导出视频指令中包含的视频的规格,以及,根据接收到的软件编解码所支持的分辨率判断是否使用软件编解码对待导出的视频进行编解码。
关于电子设备的导出策略模块判断是否使用软件编解码器对待导出的视频进行编解码的具体实现方法可以参考前文对图3所示的方法流程中的步骤S33-3至S33-4的详细描述,在此暂不赘述。
若在步骤S410中,电子设备的导出策略模块判断不能使用电子设备的软件模块进行编解码时,则电子设备的导出策略模块会通知UI模块输出用于指示视频导出失败的提示信息(图4A所示的方法流程未示出该步骤)。
跳转至执行后文的步骤S407;若在步骤S406中,电子设备的导出策略模块判断可以使用电子设备的硬件模块进行实时/非实时编解码时,则电子设备直接跳转至执行后文的阶段3,即执行步骤S411,也就是不执行后文的步骤S407-S410。
阶段3(S411-S419):电子设备采用适配的编解码器对待导出视频进行编解码。
S411,电子设备的导出策略模块向导出模块发送导出策略。
具体的,电子设备的导出策略模块根据上文步骤S406或步骤S410所述的判断规则生成,导出策略,并将该导出策略发送至导出模块,用于指示导出模块根据该导出策略来导出视频。
其中,导出策略具体包括但不限于:采用何种编解码器对视频进行编解码,和待导出视频的规格。其中,待导出的视频规格用于后续编解码器按照该视频规格创建编解码对象,以及使用对应的编解码对象进行编解码。
其中,待导出视频的规格可以是以下任意一种:电子设备默认的导出视频的规格、用户自定义的导出视频的规格、导入该视频时所对应的规格。关于电子设备默认的导出视频的规格可以参考前文图5C所示的视频规格查看界面,关于用户自定义视频规格的方法可以参考前文对图5C的详细描述,在此暂不赘述。
S412,电子设备的导出模块调用Mediacodec根据导出策略初始化编解码器。
具体的,电子设备导出模块接收到导出策略后,可以解析该导出策略,并调用Mediacodec根据导出策略初始化编解码器。
S413,电子设备的Mediacodec调用msm_vidc初始化编解码器。
具体的,当电子设备导出模块调用Mediacodec根据导出策略初始化编解码器时,Mediacodec可以调用msm_vidc初始化编码器。
S414,电子设备的msm_vidc创建编解码对象。
具体的,电子设备的msm_vidc创建导出策略所对应的编解码对象。该编解码对象包括:使用的编解码类型、编解码视频的规格。例如,当导出策略指示的编解码器是硬件实时编解码,待导出视频的规格是1920*1080,30fps时,则msm_vidc创建的编解码对象则是宽为1920高为1080,并且采用硬件编解码器进行实时编解码的对象。
S415,电子设备的msm_vidc向Mediacodec发送编解码对象。
具体的,当电子设备的msm_vidc创建完导出策略所对应的编解码对象之后,msm_vidc则将其返回给Mediacodec。
S416,电子设备的Mediacodec向导出模块发送编解码对象。
具体的,当电子设备的Mediacodec接收到msm_vidc发送的导出策略所对应的编解码对象之后,Mediacodec则将其返回给导出模块。
S417,电子设备的导出模块调用Mediacodec对待导出视频进行编解码。
具体的,当电子设备的导出模块接收到Mediacodec返回的编解码对象之后,则导出模块确定编解码对已经创建成功,即编解码器已经完成初始化,则导出模块开始调用Mediacodec对待导出视频进行编解码。
S418,电子设备的Mediacodec调用msm_vidc对待导出视频进行编解码。
具体的,当电子设备的Mediacodec接收到导出模块发送的调用指令后,则调用msm_vidc对待导出视频进行编解码。
S419,电子设备的msm_vidc根据创建的编解码对象对待导出视频进行编解码。
具体的,当采用硬件编解码器进行编解码时,则msm_vidc根据事先创建的编解码对象控制对应的硬件编解码器先对待导出视频执行解码操作,然后再对解码后的视频进行编码。
阶段4(S420-S422):电子设备输出导出成功的提示信息。
S420,电子设备的msm_vidc向导出模块发送导出成功的指示信息。
具体的,电子设备的msm_vidc检测到完成对视频的编解码时,则可以向导出模块返回导出成功的指示信息。
在本申请实施例中,在msm_vidc对视频的进行编解码的过程中,msm_vidc还可以将编解码进度的相关信息发送至导出模块,用于导出模块通知UI模块去控制显示屏显示对应的导出进度。具体可以参考图5E,图5E示例示出电子设备输出导出进度519的用户界面示意图,该导出进度519与编解码进度对应,即当电子设备对待导出视频的编解码进度越多时,则输出的导出进度也越多。
在本申请实施例中,电子设备完成对待导出视频的编码后,会将编码后的视频导出到图库中,即存储在电子设备的图库中。
S421,电子设备的导出模块向UI模块发送导出成功的指示信息。
具体的,电子设备的导出模块接收到msm_vidc返回导出成功的指示信息之后,导出模块可以将指示信息发至UI模块,以使得UI模块输出对应的提示信息。
S422,电子设备的UI模块输出导出成功的提示信息。
具体的,电子设备的UI模块接收到导出成功的指示信息之后,则控制显示屏输出指示导出成功的提示信息。该提示信息可以是弹出导出成功的窗口,也可以是直接跳转显示图库提供的预览导出视频的用户界面。
参考图5F,图5F示例性示出图库提供的预览导出视频的界面。
如图5F所示,该用户界面显示有预览窗口521,该预览窗口521可用于显示成功导出的视频。
在本申请实施例中,图5F所示的预览窗口521中显示的导出后的视频可以称为第二视频。
综上所述,由于实时硬件编解码的速率最快,非实时硬件编解码的速率中等,软件编解码的速率最慢的。因此,实施本申请提供的编解码器调度方法后,电子设备在每一次对视频进行编解码过程中,可以根据该待编解码的视频的规格,以及当前电子设备包含的每种编解码方式所对应的编解码能力,动态调度适配的编解码器对待编解码的视频进行编解码,这样可以在保证成功对视频进行编解码的前提下,进一步的提高编解码效率,有效的利用了电子设备的编解码资源,提升用户体验感。
应理解,本申请提供的上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请还提供一种电子设备,该电子设备可以包括:存储器和处理器。其中,存储器可用于存储计算机程序;处理器可用于调用所述存储器中的计算机程序,以使得该电子设备执行上述任意一个实施例中的方法。
本申请还提供了一种芯片系统,所述芯片系统包括至少一个处理器,用于实现上述任意一个实施例中电子设备执行的方法中所涉及的功能。
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请实施例并不限定。示例性地,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
示例性地,该芯片系统可以是现场可编程门阵列(field programmable gatearray,FPGA),可以是专用集成芯片(application specific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processorunit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。
本申请还提供一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行上述任一个实施例中电子设备执行的方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)。当所述计算机程序被运行时,使得计算机执行上述任一个实施例中电子设备执行的方法。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本发明技术方案的实施例而已,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种编解码器的调度方法,其特征在于,所述方法应用于电子设备,所述方法包括:
所述电子设备接收针对第一视频的第一操作;
所述电子设备根据第一规格和所述电子设备的编解码能力确定第一编解码器,所述编解码能力包括:硬件编解码器的实时编解码能力、所述硬件编解码器的非实时编解码能力,和软件编解码器的编解码能力;所述第一编解码器支持所述电子设备将视频编解码为所述第一规格的视频,并且编解码速率最快;
其中,所述硬件编解码器的实时编解码能力根据所述硬件编解码器的剩余每秒钟占用宏块数MBPS和每帧占用的宏块数MBPF决定,所述硬件编解码器的非实时编解码能力根据所述硬件编解码器的剩余MBPF决定,所述软件编解码器的编解码能力根据所述软件编解码器支持的分辨率决定;
所述电子设备使用所述第一编解码器对所述第一视频进行编解码,得到所述第一规格的第二视频。
2.根据权利要求1所述的方法,其特征在于,所述第一视频的规格包括以下任意一个或多个:分辨率,帧率。
3.根据权利要求1或2所述的方法,其特征在于,所述第一视频的具体为以下任意一项:所述电子设备默认的规格,用户选择的规格,或者所述电子设备根据用户选择的规格和所述第一视频的规格计算得到的规格。
4.根据权利要求1所述的方法,其特征在于,在所述电子设备接收第一操作之前,所述方法还包括:
所述电子设备运行第一应用程序,所述第一应用程序提供对视频进行编解码的功能。
5.根据权利要求4所述的方法,其特征在于,在所述电子设备接收第一操作之前,所述方法还包括:
所述电子设备显示所述第一应用程序提供的第一用户界面,所述第一用户界面显示有第三视频的预览窗口,和,第一控件;
所述电子设备接收到作用于所述第一控件的第二操作;
所述电子设备将所述第三视频编辑为所述第一视频。
6.根据权利要求5所述的方法,其特征在于,所述电子设备运行第一应用程序之后,所述方法还包括:
所述电子设备显示所述第一应用程序提供的第一用户界面,所述第一用户界面显示有所述第一视频的预览窗口、第二控件;所述第一操作包括作用于所述第二控件的操作。
7.根据权利要求5或6所述的方法,其特征在于,所述第一用户界面还显示有第三控件,所述电子设备接收针对第一视频的第一操作之前,所述方法还包括:
所述电子设备接收到作用于所述第三控件的第三操作;
所述电子设备显示视频规格的调节条;
所述电子设备接收到在所述调节条上的第四操作;
所述电子设备将所述第四操作在所述调节条上选定的视频规格确定为所述第一规格。
8.根据权利要求5所述的方法,其特征在于,所述电子设备使用所述第一编解码器对所述第一视频进行编解码的过程中,所述方法还包括:
所述电子设备在所述第一用户界面中显示进度条,所述进度条用于指示所述电子设备使用所述第一编解码器对所述第一视频进行编解码的进度。
9.根据权利要求4所述的方法,其特征在于,所述电子设备根据第一规格和所述电子设备的编解码能力确定第一编解码器具体包括:
所述电子设备的导出策略模块根据第一规格和所述电子设备的编解码能力确定第一编解码器;其中,所述导出策略模块设置于所述第一应用程序中。
10.根据权利要求4所述的方法,其特征在于,所述硬件编解码器的剩余MBPF由所述第一应用程序的导出策略模块通过调用所述电子设备的应用程序框架层中的多媒体编码Mediacodec获取。
11.根据权利要求4所述的方法,其特征在于,所述第一应用程序为视频编辑应用。
12.根据权利要求1所述的方法,其特征在于,所述电子设备使用所述第一编解码器对所述第一视频进行编解码之后,所述方法还包括:
所述电子设备完成对所述第一视频的编解码后,输出指示完成对所述第一视频的编解码的提示信息。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述电子设备完成对所述第一视频的编解码后,所述电子设备显示第二应用程序提供的第二用户界面,所述第二用户界面显示有所述第二视频的预览窗口。
14.根据权利要求13所述的方法,其特征在于,所述第二应用程序为图库应用。
15.根据权利要求1所述的方法,其特征在于,当所述硬件编解码器对同一视频进行编解码时,所述硬件编解码器的实时编解码速率大于所述硬件编解码器的非实时编解码速率,当所述软件编解码器对所述同一视频进行编解码时,所述硬件编解码器的非实时编解码速率大于所述软件编解码器的编解码速率。
16.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-15中任一项所述的方法。
17.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器;其中,所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-15中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210603493 | 2022-05-30 | ||
CN2022106034932 | 2022-05-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116055715A CN116055715A (zh) | 2023-05-02 |
CN116055715B true CN116055715B (zh) | 2023-10-20 |
Family
ID=86111985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210662806.1A Active CN116055715B (zh) | 2022-05-30 | 2022-06-13 | 编解码器的调度方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055715B (zh) |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000115277A (ja) * | 1998-10-05 | 2000-04-21 | Canon Inc | 符号化復号化装置及び画像形成システム |
US6101276A (en) * | 1996-06-21 | 2000-08-08 | Compaq Computer Corporation | Method and apparatus for performing two pass quality video compression through pipelining and buffer management |
KR20020085300A (ko) * | 2001-05-07 | 2002-11-16 | 한국전자통신연구원 | 코덱 에이직의 기능 분석 시스템 및 그 방법 |
CN101001379A (zh) * | 2006-01-09 | 2007-07-18 | 凌阳科技股份有限公司 | 一种对视频数据进行处理的方法 |
JP2008098796A (ja) * | 2006-10-10 | 2008-04-24 | Nippon Telegr & Teleph Corp <Ntt> | 映像符号化方法,映像符号化装置,映像符号化プログラムおよびその記録媒体 |
US7388912B1 (en) * | 2002-05-30 | 2008-06-17 | Intervideo, Inc. | Systems and methods for adjusting targeted bit allocation based on an occupancy level of a VBV buffer model |
CN104837020A (zh) * | 2014-07-25 | 2015-08-12 | 腾讯科技(北京)有限公司 | 播放视频的方法和装置 |
CN105163195A (zh) * | 2015-06-19 | 2015-12-16 | 美国掌赢信息科技有限公司 | 一种即时视频的编码方法和电子设备 |
CN106161991A (zh) * | 2016-07-29 | 2016-11-23 | 青岛海信移动通信技术股份有限公司 | 一种摄像头视频处理方法及终端 |
WO2018119711A1 (zh) * | 2016-12-27 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 多操作系统多媒体编解码方法、装置及电子设备 |
CN108900840A (zh) * | 2018-07-10 | 2018-11-27 | 珠海亿智电子科技有限公司 | 针对硬件实现的h264宏块级码率控制方法 |
CN109936744A (zh) * | 2017-12-19 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 视频编码处理方法、装置及具有视频编码功能的应用 |
CN112422963A (zh) * | 2020-11-17 | 2021-02-26 | 杭州雾联科技有限公司 | 云计算机系统、编码方法、装置、设备及存储介质 |
CN112788343A (zh) * | 2021-02-23 | 2021-05-11 | 北京睿芯高通量科技有限公司 | 一种用于视频处理服务端的软硬件编码协同系统、方法及电子装置 |
JP2021078114A (ja) * | 2019-11-11 | 2021-05-20 | 株式会社リコー | 撮影装置、配信システム、配信方法および記録媒体 |
CN113722058A (zh) * | 2021-06-16 | 2021-11-30 | 荣耀终端有限公司 | 一种资源调用方法及电子设备 |
CN114051143A (zh) * | 2021-11-03 | 2022-02-15 | 麒麟软件有限公司 | 一种视频流编解码任务调度方法 |
CN114125432A (zh) * | 2021-11-22 | 2022-03-01 | 北京天融信网络安全技术有限公司 | 视频数据处理方法、装置、设备及存储介质 |
WO2022068511A1 (zh) * | 2020-09-29 | 2022-04-07 | 华为技术有限公司 | 视频生成方法和电子设备 |
CN116126487A (zh) * | 2022-11-24 | 2023-05-16 | 展讯半导体(南京)有限公司 | 多实例下的编解码器的调度方法及装置、存储介质、终端 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030112366A1 (en) * | 2001-11-21 | 2003-06-19 | General Instrument Corporation | Apparatus and methods for improving video quality delivered to a display device |
US20030123538A1 (en) * | 2001-12-21 | 2003-07-03 | Michael Krause | Video recording and encoding in devices with limited processing capabilities |
AU2003251092A1 (en) * | 2002-08-14 | 2004-03-03 | Koninklijke Philips Electronics N.V. | Selection between two different coding schemes and corresponding modulation shemes according to the allowable transmission delay of the data |
US20050254440A1 (en) * | 2004-05-05 | 2005-11-17 | Sorrell John D | Private multimedia network |
US9628811B2 (en) * | 2007-12-17 | 2017-04-18 | Qualcomm Incorporated | Adaptive group of pictures (AGOP) structure determination |
JP5521403B2 (ja) * | 2009-06-23 | 2014-06-11 | ソニー株式会社 | 情報処理装置とリソース管理方法およびプログラム |
US20120183040A1 (en) * | 2011-01-19 | 2012-07-19 | Qualcomm Incorporated | Dynamic Video Switching |
US9179144B2 (en) * | 2012-11-28 | 2015-11-03 | Cisco Technology, Inc. | Fast switching hybrid video decoder |
US9824694B2 (en) * | 2013-12-05 | 2017-11-21 | Tls Corp. | Data carriage in encoded and pre-encoded audio bitstreams |
CN106559679B (zh) * | 2015-09-28 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 视频解码的方法、服务器和移动终端 |
EP3576409A1 (en) * | 2018-06-01 | 2019-12-04 | Canon Kabushiki Kaisha | A load balancing method for video decoding in a system providing hardware and software decoding resources |
CN111479165B (zh) * | 2019-01-23 | 2021-08-06 | 上海哔哩哔哩科技有限公司 | 软硬件解码分辨率无缝切换方法、装置及存储介质 |
US11233669B2 (en) * | 2019-12-17 | 2022-01-25 | Google Llc | Context-dependent in-call video codec switching |
-
2022
- 2022-06-13 CN CN202210662806.1A patent/CN116055715B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101276A (en) * | 1996-06-21 | 2000-08-08 | Compaq Computer Corporation | Method and apparatus for performing two pass quality video compression through pipelining and buffer management |
JP2000115277A (ja) * | 1998-10-05 | 2000-04-21 | Canon Inc | 符号化復号化装置及び画像形成システム |
KR20020085300A (ko) * | 2001-05-07 | 2002-11-16 | 한국전자통신연구원 | 코덱 에이직의 기능 분석 시스템 및 그 방법 |
US7388912B1 (en) * | 2002-05-30 | 2008-06-17 | Intervideo, Inc. | Systems and methods for adjusting targeted bit allocation based on an occupancy level of a VBV buffer model |
CN101001379A (zh) * | 2006-01-09 | 2007-07-18 | 凌阳科技股份有限公司 | 一种对视频数据进行处理的方法 |
JP2008098796A (ja) * | 2006-10-10 | 2008-04-24 | Nippon Telegr & Teleph Corp <Ntt> | 映像符号化方法,映像符号化装置,映像符号化プログラムおよびその記録媒体 |
CN104837020A (zh) * | 2014-07-25 | 2015-08-12 | 腾讯科技(北京)有限公司 | 播放视频的方法和装置 |
CN105163195A (zh) * | 2015-06-19 | 2015-12-16 | 美国掌赢信息科技有限公司 | 一种即时视频的编码方法和电子设备 |
CN106161991A (zh) * | 2016-07-29 | 2016-11-23 | 青岛海信移动通信技术股份有限公司 | 一种摄像头视频处理方法及终端 |
WO2018119711A1 (zh) * | 2016-12-27 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 多操作系统多媒体编解码方法、装置及电子设备 |
CN109936744A (zh) * | 2017-12-19 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 视频编码处理方法、装置及具有视频编码功能的应用 |
CN108900840A (zh) * | 2018-07-10 | 2018-11-27 | 珠海亿智电子科技有限公司 | 针对硬件实现的h264宏块级码率控制方法 |
JP2021078114A (ja) * | 2019-11-11 | 2021-05-20 | 株式会社リコー | 撮影装置、配信システム、配信方法および記録媒体 |
WO2022068511A1 (zh) * | 2020-09-29 | 2022-04-07 | 华为技术有限公司 | 视频生成方法和电子设备 |
CN112422963A (zh) * | 2020-11-17 | 2021-02-26 | 杭州雾联科技有限公司 | 云计算机系统、编码方法、装置、设备及存储介质 |
CN112788343A (zh) * | 2021-02-23 | 2021-05-11 | 北京睿芯高通量科技有限公司 | 一种用于视频处理服务端的软硬件编码协同系统、方法及电子装置 |
CN113722058A (zh) * | 2021-06-16 | 2021-11-30 | 荣耀终端有限公司 | 一种资源调用方法及电子设备 |
CN114051143A (zh) * | 2021-11-03 | 2022-02-15 | 麒麟软件有限公司 | 一种视频流编解码任务调度方法 |
CN114125432A (zh) * | 2021-11-22 | 2022-03-01 | 北京天融信网络安全技术有限公司 | 视频数据处理方法、装置、设备及存储介质 |
CN116126487A (zh) * | 2022-11-24 | 2023-05-16 | 展讯半导体(南京)有限公司 | 多实例下的编解码器的调度方法及装置、存储介质、终端 |
Non-Patent Citations (3)
Title |
---|
Efficient bit-plane implementation for VC1 video decoder for multi-core architecture;Mihir Mody等;《2013 IEEE Second International Conference on Image Information Processing (ICIIP-2013),09-11 December 2013,Shimla, India》;全文 * |
一种高效多标准视频解码器架构研究与设计;刘慧超等;《湖南大学学报(自然科学版)》;第46卷(第10期);全文 * |
基于GPU的并行Turbo乘积码译码器;李荣春;周鑫;潘衡岳;牛新;高蕾;窦勇;;计算机工程与科学(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116055715A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269527B (zh) | 应用界面的生成方法及相关装置 | |
CN115473957B (zh) | 一种图像处理方法和电子设备 | |
US20230418696A1 (en) | Method for performing drawing operation by application and electronic device | |
WO2023130921A1 (zh) | 一种适配多设备的页面布局的方法及电子设备 | |
WO2021213351A1 (zh) | 图片加载方法及相关装置 | |
CN116048933B (zh) | 一种流畅度检测方法 | |
CN116700601B (zh) | 内存优化方法、设备及存储介质 | |
WO2023071482A1 (zh) | 视频编辑方法和电子设备 | |
WO2023016014A1 (zh) | 视频编辑方法和电子设备 | |
CN116055715B (zh) | 编解码器的调度方法及电子设备 | |
US20240005891A1 (en) | Mirroring method, apparatus, and system | |
CN116055738B (zh) | 视频压缩方法及电子设备 | |
CN116033158A (zh) | 投屏方法和电子设备 | |
WO2022206600A1 (zh) | 一种投屏方法、系统及相关装置 | |
CN116664734B (zh) | 环形图的显示方法、电子设备及可读存储介质 | |
CN116048349B (zh) | 一种图片显示方法、装置及终端设备 | |
CN116033157B (zh) | 投屏方法和电子设备 | |
US20240061549A1 (en) | Application switching method, graphical interface, and related apparatus | |
EP4246294A1 (en) | Dynamic effect processing method and related apparatus | |
CN117707242A (zh) | 温度控制方法及相关装置 | |
CN117692714A (zh) | 视频显示方法和电子设备 | |
CN117687501A (zh) | 横竖屏切换的显示方法及相关装置 | |
CN117692723A (zh) | 视频编辑方法和电子设备 | |
CN116719649A (zh) | 会话通知的提示方法、电子设备及可读存储介质 | |
CN117785343A (zh) | 界面生成方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |