CN114979772A - 解码器的配置方法、装置、介质以及电子设备 - Google Patents

解码器的配置方法、装置、介质以及电子设备 Download PDF

Info

Publication number
CN114979772A
CN114979772A CN202111647541.XA CN202111647541A CN114979772A CN 114979772 A CN114979772 A CN 114979772A CN 202111647541 A CN202111647541 A CN 202111647541A CN 114979772 A CN114979772 A CN 114979772A
Authority
CN
China
Prior art keywords
compatibility
configuration
decoding
decoder
processing
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.)
Granted
Application number
CN202111647541.XA
Other languages
English (en)
Other versions
CN114979772B (zh
Inventor
曹洪彬
陈思佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to PCT/CN2022/075745 priority Critical patent/WO2022179397A1/zh
Publication of CN114979772A publication Critical patent/CN114979772A/zh
Priority to US17/989,544 priority patent/US20230092261A1/en
Application granted granted Critical
Publication of CN114979772B publication Critical patent/CN114979772B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开涉及计算机技术领域,提供了一种解码器的配置方法、装置、介质以及电子设备。该方法包括:获取解码器的解码参数以及待解码视频,并确定与解码参数对应的参数配置规则;按照参数配置规则对解码参数进行规则配置处理得到参数配置结果,并对解码参数进行兼容性逻辑配置得到兼容性探测规则;对兼容性探测规则中的兼容性等级和参数配置结果进行参数等级匹配处理得到兼容性等级配置,并进行等级配置选定处理确定一兼容性等级配置;按照兼容性等级配置对解码器进行解码异常检测处理得到异常检测结果;对待解码视频进行硬件解码处理得到解码处理结果,并确定解码器适用的兼容性等级配置。本公开解决了解码器的兼容性问题,满足了低延时场景的需求。

Description

解码器的配置方法、装置、介质以及电子设备
本申请基于并要求2021年02月24日申请的、申请号为CN202110208285.8、名称为“解码器的配置方法、装置、介质以及电子设备”的中国专利申请的优先权,其全部内容在此并入作为参考。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种解码器的配置方法、解码器的配置装置、计算机可读介质以及电子设备。
背景技术
终端设备的解码芯片由于性能和功耗方面的问题,会出现解码囤帧的现象。通常,将解码芯片的参数配置成实时通信模式或低延时模式解决解码囤帧问题。
但是,对解码芯片的参数配置方式无法考虑到终端设备的系统兼容性问题,也无法应用其他指标更好的参数和接口,使得解码效率无法达到最佳。
鉴于此,本领域亟需开发一种新的解码器的配置方法及装置。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的技术背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种解码器的配置方法、解码器的配置装置、计算机可读介质以及电子设备,进而至少在一定程度上克服兼容性不强和解码效率低下的技术问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一个方面,提供一种解码器的配置方法,该方法包括:获取解码器的解码参数以及与所述解码器对应的待解码视频,并确定与所述解码参数对应的参数配置规则;
按照所述参数配置规则对所述解码参数进行规则配置处理得到参数配置结果,并对所述解码参数进行兼容性逻辑配置得到兼容性探测规则,所述兼容性探测规则中包括至少两个兼容性等级;
对所述至少两个兼容性等级和所述参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,并对所述至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置;
按照所述兼容性等级配置对所述解码器进行解码异常检测处理得到异常检测结果;
基于所述异常检测结果,对所述待解码视频进行硬件解码处理得到解码处理结果,并根据所述解码处理结果确定所述解码器适用的兼容性等级配置。
根据本公开实施例的一个方面,提供一种解码器的配置装置,该装置包括:规则配置模块,被配置为获取解码器的解码参数以及与所述解码器对应的待解码视频,并确定与所述解码参数对应的参数配置规则;
探测规则模块,被配置为按照所述参数配置规则对所述解码参数进行规则配置处理得到参数配置结果,并对所述解码参数进行兼容性逻辑配置得到兼容性探测规则,所述兼容性探测规则中包括至少两个兼容性等级;
等级匹配模块,被配置为对所述至少两个兼容性等级和所述参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,并对所述至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置;
异常检测模块,被配置为按照所述兼容性等级配置对所述解码器进行解码异常检测处理得到异常检测结果;
解码处理模块,被配置为基于所述异常检测结果,对所述待解码视频进行硬件解码处理得到解码处理结果,并根据所述解码处理结果确定所述解码器适用的兼容性等级配置。
在本公开的一些实施例中,基于以上技术方案,所述探测规则模块,包括:帧率设置子模块,被配置为按照所述参数配置规则对所述帧率设置参数进行规则配置处理得到帧率配置结果;
囤帧设置子模块,被配置为按照所述参数配置规则对所述解码囤帧参数进行规则配置处理得到囤帧配置结果。
在本公开的一些实施例中,基于以上技术方案,所述等级匹配模块,包括:帧率匹配子模块,被配置为对所述至少两个兼容性等级和所述帧率配置结果进行参数等级匹配处理得到兼容性等级配置;和
囤帧匹配子模块,被配置为对所述至少两个兼容性等级和所述囤帧配置结果进行参数等级匹配处理得到兼容性等级配置;和
均不匹配子模块,被配置为未对所述至少两个兼容性等级与所述帧率配置结果进行参数等级匹配处理,且未对所述至少两个兼容性等级与所述囤帧配置结果进行参数等级匹配处理得到兼容性等级配置。
在本公开的一些实施例中,基于以上技术方案,所述探测规则模块,包括:等级划分子模块,被配置为对所述解码参数进行兼容性等级划分处理得到至少两个兼容性等级;
逻辑配置子模块,被配置为对所述至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则。
在本公开的一些实施例中,基于以上技术方案,所述逻辑配置子模块,包括:级别配置单元,被配置为对所述至少两个兼容性等级进行兼容性优先级配置得到所述至少两个兼容性等级的兼容性优先级;
级别指定单元,被配置为按照所述兼容性优先级对所述至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则。
在本公开的一些实施例中,基于以上技术方案,所述等级匹配模块,包括:配置选定子模块,被配置为按照所述兼容性优先级对所述至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置。
在本公开的一些实施例中,基于以上技术方案,所述解码处理模块,包括:结果异常子模块,被配置为若所述异常检测结果为所述解码器异常,按照所述兼容性优先级在所述至少两个兼容性等级配置中确定所述兼容性等级配置的下一兼容性等级配置,以对所述待解码视频进行硬件解码处理得到解码处理结果。
在本公开的一些实施例中,基于以上技术方案,所述解码处理模块,包括:解码正常子模块,被配置为若所述异常检测结果为所述解码器正常,按照所述兼容性等级配置对所述待解码视频进行硬件解码处理得到解码处理结果。
在本公开的一些实施例中,基于以上技术方案,所述解码处理模块,包括:解码成功子模块,被配置为若所述解码处理结果为所述待解码视频的首帧图像解码成功,确定所述兼容性等级配置为所述解码器适用的兼容性等级配置。
在本公开的一些实施例中,基于以上技术方案,所述解码处理模块,包括:解码失败子模块,被配置为若所述解码处理结果为所述待解码视频的首帧图像解码失败,对所述解码器进行解码超时探测处理得到超时探测结果;
探测结果子模块,被配置为根据所述超时探测结果确定所述解码器适用的兼容性等级配置。
在本公开的一些实施例中,基于以上技术方案,所述探测结果子模块,包括:等待超时单元,被配置为若所述超时探测结果为等待超时,对所述待解码视频中除所述首帧图像的其他视频帧图像进行硬件解码处理,以确定所述解码器适用的兼容性等级配置。
在本公开的一些实施例中,基于以上技术方案,所述探测结果子模块,包括:时长正常单元,被配置为若所述超时探测结果为等待未超时,按照所述兼容性等级配置对所述解码器重新进行解码异常检测处理,以确定所述解码器适用的兼容性等级配置。
根据本公开实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的解码器的配置方法。
根据本公开实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的解码器的配置方法。
在本公开实施例提供的技术方案中,一方面,对解码参数进行规则配置处理,解决了解码器的解码囤帧问题和解码器硬件解码处理过程的延时问题,解码帧率更高,实现了硬件解码快速出帧的效果,满足了低延时视频业务场景的需求;另一方面,对解码参数进行兼容性逻辑配置和参数等级匹配处理得到兼容性等级配置,解决了不同解码器的兼容性问题,发挥了解码器的最优解码性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性地示出了应用本公开技术方案的示例性系统的架构示意图;
图2示意性地示出了本公开的一些实施例中一种解码器的配置方法的步骤流程图;
图3示意性地示出了在本公开的一些实施例中规则配置处理的方法的步骤流程图;
图4示意性地示出了在本公开的一些实施例中兼容性逻辑配置的方法的步骤流程图;
图5示意性地示出了在本公开的一些实施例中等级逻辑配置的方法的步骤流程图;
图6示意性地示出了在本公开的一些实施例中参数等级匹配处理的方法的步骤流程图;
图7示意性地示出了在本公开的一些实施例中确定解码器适用的兼容性等级配置的方法的步骤流程图;
图8示意性地示出了在本公开些实施例中不囤帧机型的终端设备的解码器配置方法的步骤流程图;
图9示意性地示出了在本公开些实施例中囤帧机型的终端设备的解码器配置方法的步骤流程图;
图10示意性地示出了在本公开一些实施例中的一种解码器的配置装置的结构框图;
图11示意性地示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本领域的相关技术中,目前大部分手机等终端设备的解码器在设计时会综合性能和功耗等各方面的因素,因此,解码芯片等解码器的内部完成一个视频帧的解码后,也不一定会立即输出视频图像。举例而言,部分解码芯片会存在解码囤帧的限定。
其中,解码囤帧是指视频帧会缓存在解码器的内部缓存区中,直到内部缓存区被填满才会有视频图像输出。
但是,在低延时的视频业务场景下,需要在解码完一个视频帧之后,尽快输出视频图像。
通常,低延时方案基本是通过对安卓系统的相应参数进行配置,即设置成实时通信模式,或者是设置成低延时模式以满足低延时的业务场景的需求。
但是,安卓版本的兼容性不强。举例而言,priority参数是安卓6.0版本引入的参数,low-latency是安卓11.0引入的参数。虽然这两个参数在被正式列入安卓官方手册之前,已经被部分的芯片厂商以私有接口的方式实现,但是对于其他大部分芯片而言,直接配置仍然可能存在兼容性问题。以芯片MSM8916为例,在使用实时通信的模式配置下,目标帧率配置成60会出现配置失败的情况。
并且,也没有考虑到部分芯片厂商存在私有接口的情况。以及,按照官方文档的其他参数配置也能够使得芯片的解码效率更高。当然,对于其他参数的配置也需要考虑兼容性问题。
基于以上方案存在的问题,本公开提供了一种新的基于云技术的解码器的配置方法、解码器的配置装置、计算机可读介质以及电子设备。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
其中,云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
云教育(Cloud Computing Education简称:CCEDU),是指基于云计算商业模式应用的教育平台服务。在云平台上,所有的教育机构,培训机构,招生服务机构,宣传机构,行业协会,管理机构,行业媒体,法律结构等都集中云整合成资源池,各个资源相互展示和互动,按需交流,达成意向,从而降低教育成本,提高效率。
云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。
目前国内云会议主要集中在以SaaS(Software as a Service,软件即服务)模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。
在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。
云会议系统支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在交通、运输、金融、运营商、教育、企业等各个领域。毫无疑问,视频会议运用云计算以后,在方便性、快捷性、易用性上具有更强的吸引力,必将激发视频会议应用新高潮的到来。
在云技术中的云游戏、云教育和云会议等低延时视频业务场景中,利用解码器的配置方法能够解决解码器的解码囤帧问题和解码器硬件解码处理过程的延时问题,解码帧率更高,实现了硬件解码快速出帧的效果,满足了低延时视频业务场景的需求,也能够解决了不同解码器的兼容性问题,发挥了解码器的最优解码性能。
图1示出了应用本公开技术方案的示例性系统架构示意图。
如图1所示,系统架构100可以包括终端110、网络120、服务器端130。其中,终端110和服务器端130通过网络120连接。
终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。网络120可以是能够在终端110和服务器端130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路、无线通信链路或者光纤电缆等等,本申请在此不做限制。服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
具体地,终端110获取解码器的解码参数以及与解码器对应的待解码视频,并确定与解码参数对应的参数配置规则。然后,按照参数配置规则对解码参数进行规则配置处理得到参数配置结果,并对解码参数进行兼容性配置得到兼容性探测规则,兼容性探测规则中包括至少两个兼容性等级。进一步的,对至少两个兼容性等级和参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,并对至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置。继而,按照兼容性等级配置对解码器进行解码异常检测处理得到异常检测结果。最后,基于异常检测结果,对待解码视频进行硬件解码处理得到解码处理结果,并根据解码处理结果确定解码器适用的兼容性等级配置。
另外,本公开实施例中的解码器的配置方法可以应用于终端,也可以应用于服务器端,本公开对此不做特殊限定。本公开实施例主要以解码器的配置方法应用于终端110来举例说明。
下面结合具体实施方式对本公开提供的解码器的配置方法、解码器的配置装置、计算机可读介质以及电子设备做出详细说明。
图2示意性地示出了本公开的一些实施例中解码器的配置方法的步骤流程图,如图2所示,解码器的配置方法主要可以包括以下步骤:
步骤S210.获取解码器的解码参数以及与解码器对应的待解码视频,并确定与解码参数对应的参数配置规则。
步骤S220.按照参数配置规则对解码参数进行规则配置处理得到参数配置结果,并对解码参数进行兼容性逻辑配置得到兼容性探测规则,兼容性探测规则中包括至少两个兼容性等级。
步骤S230.对至少两个兼容性等级和参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,并对至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置。
步骤S240.按照兼容性等级配置对解码器进行解码异常检测处理得到异常检测结果。
步骤S250.基于异常检测结果,对待解码视频进行硬件解码处理得到解码处理结果,并根据解码处理结果确定解码器适用的兼容性等级配置。
在本公开的示例性实施例中,一方面,对解码参数进行规则配置处理,解决了解码器的解码囤帧问题和解码器硬件解码处理过程的延时问题,解码帧率更高,实现了硬件解码快速出帧的效果,满足了低延时视频业务场景的需求;另一方面,对解码参数进行兼容性逻辑配置和参数等级匹配处理得到兼容性等级配置,解决了不同解码器的兼容性问题,发挥了解码器的最优解码性能。
下面对解码器的配置方法的各个步骤进行详细说明。
在步骤S210中,获取解码器的解码参数以及与解码器对应的待解码视频,并确定与解码参数对应的参数配置规则。
在本公开的示例性实施例中,解码是把编码码流还原成原来所代表的内容的过程,与编码相对应。解码可以包括软件解码和硬件解码。
其中,软件解码是指在软件层面上编写解码算法,利用中央处理器进行计算以及处理编码码流,以达到解码的目的。硬件解码是指利用设备包括的硬件解码装置对编码码流进行解码。硬件解码装置可以包括解码芯片等解码器。
举例而言,当解码器为安卓(Android)系统的解码芯片时,解码参数可以包括安卓提供的接口可配置的参数,该接口可以包括setInteger接口和setFeatureEnabled接口两个接口。其中,setInteger接口用于绑定映射类型为int(整形)的参数,使用方法是setInteger(intposition,intval),position用于指定第n个参数,val用于指定对应的参数值;setFeatureEnabled接口用于诸如要添加的任何特定功能。
与setInteger接口和setFeatureEnabled接口对应的,解码参数可以是“priority(优先项)”、“frame-rate(帧率)”、“low-latency(低延时)”、“operating-rate(操作率)”,还可以包括芯片厂商提供的私有接口的对应参数,例如“vendor.qti-…-low-latency.enable”、“vendor.hisi-…-low-latency-req”和“vendor…-low-latency.enable”等。其中,low-latency可以是分别对应与setInteger接口和setFeatureEnabled接口的两个参数。
而与该解码器对应的待解码视频是能够用该解码器对视频进行硬件解码处理的视频。
进一步的,确定与解码参数对应的参数配置规则。该参数配置规则可以是根据实际需求对解码参数进行对应配置的规则。举例而言,当实际需求为解决待解码视频的实时性问题,可以从实时通信模式下的目标帧率和低延时去除解码器的囤帧行为两方面解决,因此,参数配置规则可以是从这两方面对解码参数进行划分,以使解码参数符合实际需求。
具体的,实时通信模式下的目标帧率对应的解码参数可以包括priority、frame-rate和operating-rate,而低延时去除解码器囤帧行为对应的参数可以包括与setInteger接口对应的low-latency、与setFeatureEnabled接口对应的low-latency,以及芯片厂商私有接口的对应参数,如“vendor.qti-…-low-latency.enable”、“vendor.hisi-…-low-latency-req”和“vendor…-low-latency.enable”等。
在步骤S220中,按照参数配置规则对解码参数进行规则配置处理得到参数配置结果,并对解码参数进行兼容性逻辑配置得到兼容性探测规则,兼容性探测规则中包括至少两个兼容性等级。
在本公开的示例性实施例中,在确定参数配置规则之后,可以按照该参数配置规则对解码参数进行规则配置处理。
在可选的实施例中,解码参数包括帧率设置参数和解码囤帧参数,参数配置结果包括帧率配置结果和囤帧配置结果,图3示出了规则配置处理的方法的步骤流程图,如图3所示,该方法至少包括以下步骤:在步骤S310中,按照参数配置规则对帧率设置参数进行规则配置处理得到帧率配置结果。
其中,帧率设置参数包括priority、frame-rate和operating-rate。
为使帧率设置参数满足实时通信模式下的目标帧率要求,可以将priority设置为0,frame-rate设置为60-120之间的任意数值,operating-rate设置为120-240之间的任意数值,以得到帧率设置参数对应的帧率配置结果。
在步骤S320中,按照参数配置规则对解码囤帧参数进行规则配置处理得到囤帧配置结果。
解码囤帧参数包括与setInteger接口对应的low-latency、与setFeatureEnabled接口对应的low-latency,以及芯片厂商私有接口的对应参数,如“vendor.qti-…-low-latency.enable”、“vendor.hisi-…-low-latency-req”和“vendor…-low-latency.enable”等。
为使解码囤帧参数能够解决低延时去除解码器囤帧问题,可以将与setInteger接口对应的low-latency设置为1,与setFeatureEnabled接口对应的low-latency设置为true,及芯片厂商私有接口的对应参数,如“vendor.qti-…-low-latency.enable”、“vendor.hisi-…-low-latency-req”和“vendor…-low-latency.enable”等设置为1,以得到与解码囤帧参数对应的囤帧配置结果。
在本示例性实施例中,按照参数配置规则对帧率设置参数和解码囤帧参数进行规则配置处理得到对应的帧率配置结果和囤帧配置结果,可以为解决硬件解码处理的实时性问题提供数据基础。
在得到参数配置结果之后,可以对解码参数进行兼容性逻辑配置。
在可选的实施例中,图4示出了兼容性逻辑配置的方法的步骤流程图,如图4所示,该方法至少包括以下步骤:在步骤S410中,对解码参数进行兼容性等级划分处理得到至少两个兼容性等级。
具体的,可以划分出5个兼容性等级,分别是Ultimate(极限等级)、UltraFast(超快等级)、Fast(快速等级)、LowLatency(低延时等级)和Normal(常规等级)。后续过程中,解码参数可以依据这5个兼容性等级进行配置。除此之外,也可以根据实际情况和需求对兼容性等级进行其他个数或方式的划分,本示例性实施例对此不做特殊限定。
在步骤S420中,对至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则。
在可选的实施例中,图5示出了等级逻辑配置的方法的步骤流程图,如图5所示,该方法至少包括以下步骤:在步骤S510中,对至少两个兼容性等级进行兼容性优先级配置得到至少两个兼容性等级的兼容性优先级。
由于设定Ultimate档的解码能力最好,能够发挥解码芯片等解码器的极致解码能力,因此兼容性优先级最高;而设定UltraFast、Fast、LowLatency档都对解码参数会做出取舍,以适应不同的解码器所在终端的兼容性问题,因此可以设置UltraFast、Fast、LowLatency档的兼容性优先级相同,且低于Ultimate档,也可以分别设置UltraFast档的兼容性优先级低于Ultimate档的兼容性优先级,而Fast档的兼容性优先级低于UltraFast档的兼容性优先级,且LowLatency档的兼容性优先级低于Fast档的兼容性优先级;而Normal档的解码能力最弱,但兼容性最好,可以作为保底兼容性等级,因此Normal档的兼容性优先级最低。
除此之外,也可以根据实际情况和需求设定其他兼容性等级的兼容性优先级,本示例性实施例对此不做特殊限定。
在步骤S520中,按照兼容性优先级对至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则。
在确定兼容性等级和对应的兼容性优先级之后,可以对至少两个兼容性等级进行等级逻辑配置。
具体的,等级逻辑配置得到的兼容性探测规则可以是最先选定Ultimate档确定解码器是否适用。当解码器不适用于Ultimate档时,第二选定UltraFast档确定解码器是否适用。当解码器不适用于Ultimate档和UltraFast档时,第三选定Fast档确定解码器是否适用。当解码器不适用于Ultimate档、UltraFast档和Fast档时,第四选定LowLatency档确定解码器是否适用。当解码器对于Ultimate档、UltraFast档、Fast档和LowLatency档均不适用时,最后选定Normal档适用于解码器。
在本示例性实施例中,通过对解码参数进行兼容性逻辑配置可以得到兼容性探测规则,以为后续采用解码器进行硬件解码处理提供解码逻辑,并在最大限度发挥解码器的最优解码性能的情况下,发挥不同解码器的兼容性。
在步骤S230中,对至少两个兼容性等级和参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,并对至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置。
在本公开的示例性实施例中,由于已经在兼容性探测规则中确定出至少两个兼容性等级,为进一步确定不同的兼容性等级与参数配置结果之间的对应关系,可以对至少两个兼容性等级和参数配置结果进行参数等级匹配处理。
在可选的实施例中,图6示出了参数等级匹配处理的方法的步骤流程图,如图6所示,该方法至少包括以下步骤:在步骤S610中,对至少两个兼容性等级和帧率配置结果进行参数等级匹配处理得到兼容性等级配置。
其中,与帧率配置结果进行参数等级匹配处理的两个兼容性等级可以是Ultimate档和UltraFast。
具体的,在Ultimate档中,要配置的帧率设置参数包括priority、frame-rate和operating-rate。frame-rate和operating-rate均按照最高值进行配置。其中,frame-rate设置为120,operating-rate设置为240。
在UltraFast档中,要配置的帧率设置参数也包括priority、frame-rate和operating-rate。frame-rate和operating-rate均按照最低值进行配置。其中,frame-rate设置为60,operating-rate设置为120。
在步骤S620中,对至少两个兼容性等级和囤帧配置结果进行参数等级匹配处理得到兼容性等级配置。
其中,与囤帧配置结果进行参数等级匹配处理的两个兼容性等级可以是Fast档和LowLatency档。
具体的,在Fast档中,与setInteger接口对应的low-latency设置为1,与setFeatureEnabled接口对应的low-latency设置为true,及芯片厂商私有接口的对应参数,如“vendor.qti-…-low-latency.enable”、“vendor.hisi-…-low-latency-req”和“vendor…-low-latency.enable”等设置为1。
在LowLatency档中,将与setInteger接口对应的low-latency设置为1,并将与setFeatureEnabled接口对应的low-latency设置为true。
在步骤S630中,未对至少两个兼容性等级与帧率配置结果进行参数等级匹配处理,且未对至少两个兼容性等级与囤帧配置结果进行参数等级匹配处理得到兼容性等级配置。
其中,不与帧率配置结果和囤帧配置结果进行参数等级匹配处理的兼容性等级可以是Normal档。亦即,Normal档无需对任意一解码参数进行配置,保证解码器能够正常输出解码结果即可。
在本示例性实施例中,对兼容性等级和参数配置结果进行参数等级匹配处理可以得到对应的兼容性等级配置,以为解码器按照兼容性等级进行硬件解码处理提供参数依据,保证解码器的低延时解码能力。
进一步的,可以从至少两个兼容性等级配置进行等级配置选定处理,以从至少两个兼容性等级配置中确定出一个兼容性等级配置。
在可选的实施例中,按照兼容性优先级对至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置。
由于已经根据兼容性等级对应的兼容性优先级设置了兼容性探测规则,因此在首次选定兼容性等级配置时,可以首先选择Ultimate档的对应配置为确定出的兼容性配置。而非首次选择兼容性等级配置时,可以依据兼容性等级选择当前兼容性等级配置的下一兼容性等级配置。而是否需要选定下一兼容性等级配置需要根据当前兼容性等级配置是否显示解码器异常而决定。
在步骤S240中,按照兼容性等级配置对解码器进行解码异常检测处理得到异常检测结果。
在本公开的示例性实施例中,在当前的兼容性等级配置下,可以对解码器进行解码异常检测处理,以得到异常检测结果。而对解码器的解码异常检测处理可以是在对待解码视频进行硬件解码处理过程中确定的,也可以是通过硬件解码处理的前置检测手段确定的,本示例性实施例对此不做特殊限定。而异常检测结果可以为解码器正常和解码器异常两种。
在步骤S250中,基于异常检测结果,对待解码视频进行硬件解码处理得到解码处理结果,并根据解码处理结果确定解码器适用的兼容性等级配置。
在本公开的示例性实施例中,由于异常检测结果为解码器正常和解码器异常两种,因此可以根据不同的异常检测结果实现对待解码视频的进一步硬件解码处理。
在可选的实施例中,若异常检测结果为解码器正常,按照兼容性等级配置对待解码视频进行硬件解码处理得到解码处理结果。
当按照兼容性等级配置对解码器进行解码异常检测处理之后,若驱动层未发送任何异常信息,表明异常检测结果为解码器正常。亦即,该解码器适用于当前的兼容性等级配置,可以进一步对待解码视频进行硬件解码处理。
除此之外,异常检测结果也可以是解码器异常,在这种情况下需要对兼容性等级配置进行更换,以确定能够进行硬件解码处理的兼容性等级配置。
在可选的实施例中,若异常检测结果为解码器异常,按照兼容性优先级在至少两个兼容性等级配置中确定兼容性等级配置的下一兼容性等级配置,以对待解码视频进行硬件解码处理得到解码处理结果。
当按照兼容性等级配置对解码器进行解码异常检测处理之后,若驱动层发送一异常信息,表明异常检测结果为解码器异常,因此,该解码器并不适用于当前的兼容性等级配置。
进一步的,根据兼容性优先级可以确定当前的兼容性等级配置的下一兼容性等级配置继续进行解码异常检测处理,直至确定出一个兼容性等级配置对应的异常检测结果为解码器正常时,按照该兼容性等级配置对待解码视频进行硬件解码处理即可。
而在对待解码视频进行硬件解码处理得到的解码处理结果中,也可能出现解码成功和解码失败两种,因此,针对不同的解码处理结果也需要进行判断才能确定适用于解码器的兼容性等级配置。
在可选的实施例中,若解码处理结果为待解码视频的首帧图像解码成功,确定兼容性等级配置为解码器适用的兼容性等级配置。
针对不囤帧的终端设备,当异常检测结果为解码器正常,且解码处理结果为待解码视频的首帧图像解码成功时,表明该兼容性配置不仅名义上可以适用于该解码器,并且在实际使用过程中也能够解码成功,因此,该兼容性等级配置为适用于解码器的兼容性等级配置。
除此之外,解码处理结果也可能是待解码视频的首帧图像解码失败,因此可以对该解码器进行解码超时探测处理确定适用于解码器的兼容性等级配置。
在可选的实施例中,图7示出了确定解码器适用的兼容性等级配置的方法的步骤流程图,如图7所示,该方法至少包括以下步骤:在步骤S710中,若解码处理结果为待解码视频的首帧图像解码失败,对解码器进行解码超时探测处理得到超时探测结果。
举例而言,可以通过解码器(MediaCodec)采用硬件解码处理的方式对待解码视频进行硬件处理结果,且解码处理结果为待解码视频的首帧图像解码失败,表明该解码失败结果可能是由于兼容性等级配置导致的。因此,可以增加一对解码器进行解码超时探测处理的过程确定适用于兼容性等级配置。
具体的,该超时探测处理可以是设置一等待时长阈值,以根据该等待时长阈值判断对待解码视频的首帧图像的解码时长是否满足解码要求。例如,该等待时长阈值可以是10ms、100ms或1s,也可以根据实际情况设定其他数值,本示例性实施例对此不做特殊限定。因此,超时探测结果可以包括等待超时和等待未超时两种。
在步骤S720中,根据超时探测结果确定解码器适用的兼容性等级配置。
在可选的实施例中,若超时探测结果为等待超时,对待解码视频中除首帧图像的其他视频帧图像进行硬件解码处理,以确定解码器适用的兼容性等级配置。
当对待解码视频的首帧图像的解码时长大于等待时长阈值,或者对待解码视频的首帧图像的解码时长大于或等于等待时长阈值时,表明超时探测结果为等待超时。
在这种情况下,为避免对后续的其他视频帧图像的解码过程阻塞,可以继续对其他视频帧图像进行硬件解码处理,以在后续的其他视频帧图像的硬件解码过程中确定当前的兼容性等级配置是否适用于解码器。并且,在后续对其他视频帧图像进行硬件解码处理的过程中也可以进行解码长检测处理,也可以在异常检测结果为解码器异常时更换兼容性等级配置。也就是说,兼容性等级配置的更换并不局限于首帧图像的解码异常检测处理过程。
当在对其他视频帧图像进行硬件解码处理的过程中,首帧图像解码成功,则确定当前的兼容性等级配置为适用于解码器的兼容性等级配置;当在对其他视频帧图像进行硬件解码处理的过程中,首帧图像解码失败,可以继续选择下一兼容性等级配置进行解码异常检测处理和硬件解码处理等过程,以在剩余的兼容性等级配置中确定出适用于解码器的兼容性等级配置。
除此之外,超时探测结果还可能出现等待未超时的结果,因此需要进行二次的解码异常检测处理,以确定出解码器适用的兼容性等级配置。
在可选的实施例中,若超时探测结果为等待未超时,按照兼容性等级配置对解码器重新进行解码异常检测处理,以确定解码器适用的兼容性等级配置。
当对待解码视频的首帧图像的解码时长小于或等于等待时长阈值,或者对待解码视频的首帧图像的解码时长小于等待时长阈值时,表明超时探测结果为等待超时。
在这种情况下,有可能是囤帧的终端设备将首帧图像的硬件解码处理结果缓存在解码器的内部缓冲区中,导致首帧图像的硬件解码处理结果已经解码成功,但是无法感知。因此,为排除这种囤帧情况的发生,可以按照兼容性等级进行二次的解码异常检测处理过程,以确定是在解码器正常的情况下无法对首帧图像解码成功的。
具体的,当二次解码异常检测处理的异常检测结果为解码器正常时,表明此时终端设备发生囤帧行为,因此可以确定当前的兼容性等级配置为适用于解码器的兼容性等级配置;而当二次解码异常检测处理的异常检测结果为解码器异常时,表明是由于解码器异常导致无法对首帧图像解码成功的,因此可以更换下一兼容性等级进行后续的解码异常检测处理和硬件解码处理,以确定适用于解码器的兼容性等级配置。
在两种示例性实施例中,根据不同的超时探测结果可以确定出适用于解码器的兼容性等级配置,不仅不会阻塞后续的其他视频帧图像的硬件解码处理过程,还能够在排除囤帧行为的情况下确定出兼容性等级配置,准确性更好,实用性更强。
下面结合一具体应用场景对本公开实施例中提供的解码器的配置方法做出详细说明。
图8示出了不囤帧机型的终端设备的解码器配置方法的步骤流程图,如图8所示,在步骤S810中,低延时参数配置。
低延时参数配置可以是按照参数配置规则对解码器的解码参数进行规则配置处理。
当该不囤帧机型的终端设备为使用安卓系统的设备时,该解码参数主要通过MediaFormat(多媒体格式)进行配置,通过setInteger接口和setFeatureEnabled接口,根据传入的键值对解码参数进行配置。其中,常用的解码参数,亦即键名可以是由安卓官方文档提供的,除此之外,当解码器为解码芯片时,芯片厂商也会暴露私有的键名作为解码参数。
具体的,参照表1所示:
表1
Figure BDA0003444195580000181
Figure BDA0003444195580000191
其中,“实时通信”对应的解码参数通过设置priority和frame-rate,配置解码芯片处于实时通信模式,并设置该实时通信模式下的目标帧率。“低延时”对应的解码参数通过配置low-latency去除解码芯片的囤帧,以达到快速出帧的目的。“操作频率”对应的解码参数通过配置operating-rate调整解码芯片内部的操作频率以适配解码的目标帧率。“芯片厂商私有接口”对应的解码参数包含目前主流的解码芯片的厂商的私有参数,通过这些私有参数的配置,能够使得解码芯片以更高的效率运行,关闭解码芯片内部的囤帧行为,降低解码延时。
由于安卓系统的解码芯片种类繁多,部分芯片厂商设计的解码芯片可能只支持表1中的解码参数中的一种或几种,也可能对表1中的解码参数存在兼容性问题,因此可以进一步对解码参数进行兼容性探测。
表1中的解码参数针对不同的芯片产商生成的解码芯片,不同的安卓系统版本,以及不同的待解码视频的视频尺寸,都可能会存在一定的兼容性问题。
举例而言,MSM8916等解码芯片把“frame-rate”设置为60时,会导致解码芯片初始化失败,SDM670等解码芯片在待解码视频的视频尺寸在1080p时,把operating-rate设置为240会导致解码芯片初始化失败。因此,必须对解码参数进行兼容性探测。
首先,对解码参数进行兼容性等级划分处理得到5个兼容性等级,分别是Ultimate(极限等级)、UltraFast(超快等级)、Fast(快速等级)、LowLatency(低延时等级)和Normal(常规等级)。
具体的,Ultimate档是极限配置,该档位下会配置表1中的所有参数,并且按照最高值进行配置。其中,frame-rate设置为120,operating-rate设置为240。
UltraFast档是超快配置,该档位下会配置表1中的所有参数,并且按照最低值进行配置,此时,rame-rate设置为60,operating-rate设置为120。
Fast档是快速配置,该档位下的“实时通信”和“操作频率”对应的解码参数都不配置,只配置“低延时”和“芯片厂商私有接口”对应的解码参数。
LowLatency档是低延时配置,该档位下只配置“低延时”对应的解码参数。
Normal档为常规配置,该档位下表1中的解码参数均不配置。
在这五个兼容性等级中,Ultimate档的解码能力最好,能够发挥解码芯片等解码器的极致解码能力,部分解码芯片的解码帧率相比于Normal档能有近5倍的提升,因此兼容性优先级最高;而设定UltraFast、Fast、LowLatency档都对解码参数会做出取舍,以适应不同的解码器所在终端的兼容性问题,因此可以设置UltraFast、Fast、LowLatency档的兼容性优先级相同,且低于Ultimate档,也可以分别设置UltraFast档的兼容性优先级低于Ultimate档的兼容性优先级,而Fast档的兼容性优先级低于UltraFast档的兼容性优先级,且LowLatency档的兼容性优先级低于Fast档的兼容性优先级;而Normal档的解码能力最弱,但兼容性最好,可以作为保底兼容性等级,保证解码器能够正常解码输出视频图像。
根据这五个兼容性等级,从Ultimate档到Normal档依次依据兼容性优先级进行等级逻辑配置得到兼容性探测规则。
具体的,等级逻辑配置得到的兼容性探测规则可以是最先选定Ultimate档确定解码器是否适用。当解码器不适用于Ultimate档时,第二选定UltraFast档确定解码器是否适用。当解码器不适用于Ultimate档和UltraFast档时,第三选定Fast档确定解码器是否适用。当解码器不适用于Ultimate档、UltraFast档和Fast档时,第四选定LowLatency档确定解码器是否适用。当解码器对于Ultimate档、UltraFast档、Fast档和LowLatency档均不适用时,最后选定Normal档适用于解码器。
进一步的,对兼容性等级和表1中的参数配置结果进行参数等级匹配处理得到兼容性等级配置。
在Ultimate档中,要配置的帧率设置参数包括priority、frame-rate和operating-rate。frame-rate和operating-rate均按照最高值进行配置。其中,frame-rate设置为120,operating-rate设置为240。
在UltraFast档中,要配置的帧率设置参数也包括priority、frame-rate和operating-rate。frame-rate和operating-rate均按照最低值进行配置。其中,frame-rate设置为60,operating-rate设置为120。
在Fast档中,与setInteger接口对应的low-latency设置为1,与setFeatureEnabled接口对应的low-latency设置为true,及芯片厂商私有接口的对应参数,如“vendor.qti-…-low-latency.enable”、“vendor.hisi-…-low-latency-req”和“vendor…-low-latency.enable”等设置为1。
在LowLatency档中,将与setInteger接口对应的low-latency设置为1,并将与setFeatureEnabled接口对应的low-latency设置为true。
Normal档无需对任意一解码参数进行配置,保证解码器能够正常输出解码结果即可。
并且当选定的其中一个兼容性等级配置成功时,可以记录该兼容性等级配置作为该解码芯片在低延时场景中的最佳档位,并且后续的同尺寸待解码视频都按照该档位的兼容性等级配置进行适配。但是,当该兼容性等级配置失败时,则切换到该兼容性等级的下一兼容性等级进行配置。
由于已经根据兼容性等级对应的兼容性优先级设置了兼容性探测规则,因此在首次选定兼容性等级配置时,可以首先选择Ultimate档的对应配置为确定出的兼容性配置。而非首次选择兼容性等级配置时,可以依据兼容性等级选择当前兼容性等级配置的下一兼容性等级配置。而是否需要选定下一兼容性等级配置需要根据当前兼容性等级配置是否显示解码器异常而决定。
在步骤S820中,启动解码器。
为确定当前的兼容性等级配置是否适配于该解码器,可以启动该解码器进行后续的解码异常检测处理。
在步骤S830中,解码器异常?
由于解码器配置和启动过程是异步行为,因此不能简单的通过返回至判断是否配置成功,亦即该兼容性等级配置是否适用于该解码器,也就是对于该解码器,需要按照当前的兼容性等级配置进行解码异常检测处理进行确定。
在步骤S840中,更换配置档位。
若解码异常检测处理的异常检测结果为解码器异常,按照兼容性优先级在至少两个兼容性等级配置中确定兼容性等级配置的下一兼容性等级配置,以对待解码视频进行硬件解码处理得到解码处理结果。
当按照兼容性等级配置对解码器进行解码异常检测处理之后,若驱动层发送一异常信息,表明异常检测结果为解码器异常,因此,该解码器并不适用于当前的兼容性等级配置。
进一步的,根据兼容性优先级可以确定当前的兼容性等级配置的下一兼容性等级配置继续进行解码异常检测处理,直至确定出一个兼容性等级配置对应的异常检测结果为解码器正常时,按照该兼容性等级配置对待解码视频进行硬件解码处理即可。
而在对待解码视频进行硬件解码处理得到的解码处理结果中,也可能出现解码成功和解码失败两种,因此,针对不同的解码处理结果也需要进行判断才能确定适用于解码器的兼容性等级配置。
在步骤S850中,首帧解码成功?
若异常检测结果为解码器正常,按照兼容性等级配置对待解码视频进行硬件解码处理得到解码处理结果。
当按照兼容性等级配置对解码器进行解码异常检测处理之后,若驱动层未发送任何异常信息,表明异常检测结果为解码器正常。亦即,该解码器适用于当前的兼容性等级配置,可以进一步对待解码视频进行硬件解码处理。
对于不囤帧机型,需要等待首帧图像输出才可以判断解码处理结果。当首帧图像输出失败时,亦即该解码处理结果为待解码视频的首帧图像解码失败,可以进行二次的解码异常检测处理确定导致首帧图像解码失败的原因是不是由于兼容性等级配置失败导致的。
在步骤S860中,后续视频帧解码。
对于不囤帧机型,当首帧图像的解码处理结果输出时,表明首帧图像解码成功,因此该兼容性等级配置为适配于该解码器的兼容性等级配置,可以利用该兼容性等级配置对待解码视频中除首帧图像的其他视频帧图像进行硬件解码处理。
图9示出了囤帧剂型的终端设备的解码器配置方法的步骤流程图,如图9所示,在步骤S910中,低延时参数配置。
低延时参数配置可以是按照参数配置规则对解码器的解码参数进行规则配置处理。
当该不囤帧机型的终端设备为使用安卓系统的设备时,该解码参数主要通过MediaFormat(多媒体格式)进行配置,通过setInteger接口和setFeatureEnabled接口,根据传入的键值对解码参数进行配置。其中,常用的解码参数,亦即键名可以是由安卓官方文档提供的,除此之外,当解码器为解码芯片时,芯片厂商也会暴露私有的键名作为解码参数。
具体的,也可以参照表1所示的解码参数。其中,“实时通信”对应的解码参数通过设置priority和frame-rate,配置解码芯片处于实时通信模式,并设置该实时通信模式下的目标帧率。“低延时”对应的解码参数通过配置low-latency去除解码芯片的囤帧,以达到快速出帧的目的。“操作频率”对应的解码参数通过配置operating-rate调整解码芯片内部的操作频率以适配解码的目标帧率。“芯片厂商私有接口”对应的解码参数包含目前主流的解码芯片的厂商的私有参数,通过这些私有参数的配置,能够使得解码芯片以更高的效率运行,关闭解码芯片内部的囤帧行为,降低解码延时。
由于安卓系统的解码芯片种类繁多,部分芯片厂商设计的解码芯片可能只支持表1中的解码参数中的一种或几种,也可能对表1中的解码参数存在兼容性问题,因此可以进一步对解码参数进行兼容性探测。
表1中的解码参数针对不同的芯片产商生成的解码芯片,不同的安卓系统版本,以及不同的待解码视频的视频尺寸,都可能会存在一定的兼容性问题。
举例而言,MSM8916等解码芯片把“frame-rate”设置为60时,会导致解码芯片初始化失败,SDM670等解码芯片在待解码视频的视频尺寸在1080p时,把operating-rate设置为240会导致解码芯片初始化失败。因此,必须对解码参数进行兼容性探测。
首先,对解码参数进行兼容性等级划分处理得到5个兼容性等级,分别是Ultimate(极限等级)、UltraFast(超快等级)、Fast(快速等级)、LowLatency(低延时等级)和Normal(常规等级)。
具体的,Ultimate档是极限配置,该档位下会配置表1中的所有参数,并且按照最高值进行配置。其中,frame-rate设置为120,operating-rate设置为240。
UltraFast档是超快配置,该档位下会配置表1中的所有参数,并且按照最低值进行配置,此时,rame-rate设置为60,operating-rate设置为120。
Fast档是快速配置,该档位下的“实时通信”和“操作频率”对应的解码参数都不配置,只配置“低延时”和“芯片厂商私有接口”对应的解码参数。
LowLatency档是低延时配置,该档位下只配置“低延时”对应的解码参数。
Normal档为常规配置,该档位下表1中的解码参数均不配置。
在这五个兼容性等级中,Ultimate档的解码能力最好,能够发挥解码芯片等解码器的极致解码能力,部分解码芯片的解码帧率相比于Normal档能有近5倍的提升,因此兼容性优先级最高;而设定UltraFast、Fast、LowLatency档都对解码参数会做出取舍,以适应不同的解码器所在终端的兼容性问题,因此可以设置UltraFast、Fast、LowLatency档的兼容性优先级相同,且低于Ultimate档,也可以分别设置UltraFast档的兼容性优先级低于Ultimate档的兼容性优先级,而Fast档的兼容性优先级低于UltraFast档的兼容性优先级,且LowLatency档的兼容性优先级低于Fast档的兼容性优先级;而Normal档的解码能力最弱,但兼容性最好,可以作为保底兼容性等级,保证解码器能够正常解码输出视频图像。
根据这五个兼容性等级,从Ultimate档到Normal档依次依据兼容性优先级进行等级逻辑配置得到兼容性探测规则。
具体的,等级逻辑配置得到的兼容性探测规则可以是最先选定Ultimate档确定解码器是否适用。当解码器不适用于Ultimate档时,第二选定UltraFast档确定解码器是否适用。当解码器不适用于Ultimate档和UltraFast档时,第三选定Fast档确定解码器是否适用。当解码器不适用于Ultimate档、UltraFast档和Fast档时,第四选定LowLatency档确定解码器是否适用。当解码器对于Ultimate档、UltraFast档、Fast档和LowLatency档均不适用时,最后选定Normal档适用于解码器。
进一步的,对兼容性等级和表1中的参数配置结果进行参数等级匹配处理得到兼容性等级配置。
在Ultimate档中,要配置的帧率设置参数包括priority、frame-rate和operating-rate。frame-rate和operating-rate均按照最高值进行配置。其中,frame-rate设置为120,operating-rate设置为240。
在UltraFast档中,要配置的帧率设置参数也包括priority、frame-rate和operating-rate。frame-rate和operating-rate均按照最低值进行配置。其中,frame-rate设置为60,operating-rate设置为120。
在Fast档中,与setInteger接口对应的low-latency设置为1,与setFeatureEnabled接口对应的low-latency设置为true,及芯片厂商私有接口的对应参数,如“vendor.qti-…-low-latency.enable”、“vendor.hisi-…-low-latency-req”和“vendor…-low-latency.enable”等设置为1。
在LowLatency档中,将与setInteger接口对应的low-latency设置为1,并将与setFeatureEnabled接口对应的low-latency设置为true。
Normal档无需对任意一解码参数进行配置,保证解码器能够正常输出解码结果即可。
并且当选定的其中一个兼容性等级配置成功时,可以记录该兼容性等级配置作为该解码芯片在低延时场景中的最佳档位,并且后续的同尺寸待解码视频都按照该档位的兼容性等级配置进行适配。但是,当该兼容性等级配置失败时,则切换到该兼容性等级的下一兼容性等级进行配置。
由于已经根据兼容性等级对应的兼容性优先级设置了兼容性探测规则,因此在首次选定兼容性等级配置时,可以首先选择Ultimate档的对应配置为确定出的兼容性配置。而非首次选择兼容性等级配置时,可以依据兼容性等级选择当前兼容性等级配置的下一兼容性等级配置。而是否需要选定下一兼容性等级配置需要根据当前兼容性等级配置是否显示解码器异常而决定。
在步骤S920中,启动解码器。
为确定当前的兼容性等级配置是否适配于该解码器,可以启动该解码器进行后续的解码异常检测处理。
在步骤S930中,解码器异常?
由于解码器配置和启动过程是异步行为,因此不能简单的通过返回至判断是否配置成功,亦即该兼容性等级配置是否适用于该解码器,也就是对于该解码器,需要按照当前的兼容性等级配置进行解码异常检测处理进行确定。
在步骤S940中,更换配置档位。
若解码异常检测处理的异常检测结果为解码器异常,按照兼容性优先级在至少两个兼容性等级配置中确定兼容性等级配置的下一兼容性等级配置,以对待解码视频进行硬件解码处理得到解码处理结果。
当按照兼容性等级配置对解码器进行解码异常检测处理之后,若驱动层发送一异常信息,表明异常检测结果为解码器异常,因此,该解码器并不适用于当前的兼容性等级配置。
进一步的,根据兼容性优先级可以确定当前的兼容性等级配置的下一兼容性等级配置继续进行解码异常检测处理,直至确定出一个兼容性等级配置对应的异常检测结果为解码器正常时,按照该兼容性等级配置对待解码视频进行硬件解码处理即可。
而在对待解码视频进行硬件解码处理得到的解码处理结果中,也可能出现解码成功和解码失败两种,因此,针对不同的解码处理结果也需要进行判断才能确定适用于解码器的兼容性等级配置。
在步骤S950中,首帧解码成功?
对于囤帧机型的终端设备,需要传入特定数量的视频帧才会有解码图像的输出。举例而言,对于囤帧数量为3的终端设备,需要传入第4帧的视频帧,第1帧的视频图像才会输出。按照图8所示的解码器配置方法可以解决该囤帧问题,亦即关闭解码芯片内部的囤帧行为。
因此,对于这种囤帧机型的首帧图像的硬件解码处理是否成功的判断也可以根据是否输出首帧图像的解码处理结果确定。
在步骤S960中,等待超时?
对于一些小厂商生产的解码芯片和老一代的解码芯片而言,囤帧问题可能无法通过图8所示的解码器配置方法解决。因此,可以设置一等待时长阈值对解码器进行解码超时探测处理,以方式探测过程中阻塞后续其他视频帧图像的硬件解码过程。
若超时探测结果为等待未超时,按照兼容性等级配置对解码器重新进行解码异常检测处理,以确定解码器适用的兼容性等级配置。
当对待解码视频的首帧图像的解码时长小于或等于等待时长阈值,或者对待解码视频的首帧图像的解码时长小于等待时长阈值时,表明超时探测结果为等待超时。
在这种情况下,有可能是囤帧的终端设备将首帧图像的硬件解码处理结果缓存在解码器的内部缓冲区中,导致首帧图像的硬件解码处理结果已经解码成功,但是无法感知。因此,为排除这种囤帧情况的发生,可以按照兼容性等级进行二次的解码异常检测处理过程,以确定是在解码器正常的情况下无法对首帧图像解码成功的。
具体的,当二次解码异常检测处理的异常检测结果为解码器正常时,表明此时终端设备发生囤帧行为,因此可以确定当前的兼容性等级配置为适用于解码器的兼容性等级配置;而当二次解码异常检测处理的异常检测结果为解码器异常时,表明是由于解码器异常导致无法对首帧图像解码成功的,因此可以更换下一兼容性等级进行后续的解码异常检测处理和硬件解码处理,以确定适用于解码器的兼容性等级配置。
在步骤S970中,后续视频帧解码。
若超时探测结果为等待超时,对待解码视频中除首帧图像的其他视频帧图像进行硬件解码处理,以确定解码器适用的兼容性等级配置。
当对待解码视频的首帧图像的解码时长大于等待时长阈值,或者对待解码视频的首帧图像的解码时长大于或等于等待时长阈值时,表明超时探测结果为等待超时。
在这种情况下,为避免对后续的其他视频帧图像的解码过程阻塞,可以继续对其他视频帧图像进行硬件解码处理,以在后续的其他视频帧图像的硬件解码过程中确定当前的兼容性等级配置是否适用于解码器。并且,在后续对其他视频帧图像进行硬件解码处理的过程中也可以进行解码长检测处理,也可以在异常检测结果为解码器异常时更换兼容性等级配置。也就是说,兼容性等级配置的更换并不局限于首帧图像的解码异常检测处理过程。
当在对其他视频帧图像进行硬件解码处理的过程中,首帧图像解码成功,则确定当前的兼容性等级配置为适用于解码器的兼容性等级配置;当在对其他视频帧图像进行硬件解码处理的过程中,首帧图像解码失败,可以继续选择下一兼容性等级配置进行解码异常检测处理和硬件解码处理等过程,以在剩余的兼容性等级配置中确定出适用于解码器的兼容性等级配置。
基于以上应用场景可知,本公开实施例提供的解码器的配置方法,一方面,对解码参数进行规则配置处理,解决了解码器的解码囤帧问题和解码器硬件解码处理过程的延时问题,解码帧率更高,实现了硬件解码快速出帧的效果,满足了低延时视频业务场景的需求;另一方面,对解码参数进行兼容性逻辑配置和参数等级匹配处理得到兼容性等级配置,解决了不同解码器的兼容性问题,发挥了解码器的最优解码性能。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本公开的装置实施例,可以用于执行本公开上述实施例中的解码器的配置方法。对于本公开装置实施例中未披露的细节,请参照本公开上述的解码器的配置方法的实施例。
图10示意性地示出了在本公开一些实施例中的一种解码器的配置装置的结构框图,如图10所示,解码器的配置装置1000主要可以包括:规则配置模块1010、探测规则模块1020、等级匹配模块1030、异常检测模块1040和解码处理模块1050。
规则配置模块1010,被配置为获取解码器的解码参数以及与解码器对应的待解码视频,并确定与解码参数对应的参数配置规则;探测规则模块1020,被配置为按照参数配置规则对所述解码参数进行规则配置处理得到参数配置结果,并对解码参数进行兼容性逻辑配置得到兼容性探测规则,兼容性探测规则中包括至少两个兼容性等级;等级匹配模块1030,被配置为对至少两个兼容性等级和参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,并对至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置;异常检测模块1040,被配置为按照兼容性等级配置对解码器进行解码异常检测处理得到异常检测结果;解码处理模块1050,被配置为基于异常检测结果,对待解码视频进行硬件解码处理得到解码处理结果,并根据解码处理结果确定解码器适用的兼容性等级配置。
在本公开的一些实施例中,探测规则模块,包括:帧率设置子模块,被配置为按照参数配置规则对帧率设置参数进行规则配置处理得到帧率配置结果;
囤帧设置子模块,被配置为按照参数配置规则对解码囤帧参数进行规则配置处理得到囤帧配置结果。
在本公开的一些实施例中,等级匹配模块,包括:帧率匹配子模块,被配置为对至少两个兼容性等级和帧率配置结果进行参数等级匹配处理得到兼容性等级配置;和
囤帧匹配子模块,被配置为对至少两个兼容性等级和囤帧配置结果进行参数等级匹配处理得到兼容性等级配置;和
均不匹配子模块,被配置为未对至少两个兼容性等级与帧率配置结果进行参数等级匹配处理,且未对至少两个兼容性等级与囤帧配置结果进行参数等级匹配处理得到兼容性等级配置。
在本公开的一些实施例中,探测规则模块,包括:等级划分子模块,被配置为对解码参数进行兼容性等级划分处理得到至少两个兼容性等级;
逻辑配置子模块,被配置为对至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则。
在本公开的一些实施例中,逻辑配置子模块,包括:级别配置单元,被配置为对至少两个兼容性等级进行兼容性优先级配置得到至少两个兼容性等级的兼容性优先级;
级别指定单元,被配置为按照兼容性优先级对至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则。
在本公开的一些实施例中,等级匹配模块,包括:配置选定子模块,被配置为按照兼容性优先级对至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置。
在本公开的一些实施例中,解码处理模块,包括:结果异常子模块,被配置为若异常检测结果为解码器异常,按照兼容性优先级在至少两个兼容性等级配置中确定兼容性等级配置的下一兼容性等级配置,以对待解码视频进行硬件解码处理得到解码处理结果。
在本公开的一些实施例中,解码处理模块,包括:解码正常子模块,被配置为若异常检测结果为解码器正常,按照兼容性等级配置对待解码视频进行硬件解码处理得到解码处理结果。
在本公开的一些实施例中,解码处理模块,包括:解码成功子模块,被配置为若解码处理结果为待解码视频的首帧图像解码成功,确定兼容性等级配置为解码器适用的兼容性等级配置。
在本公开的一些实施例中,解码处理模块,包括:解码失败子模块,被配置为若解码处理结果为待解码视频的首帧图像解码失败,对解码器进行解码超时探测处理得到超时探测结果;
探测结果子模块,被配置为根据超时探测结果确定解码器使用的兼容性等级配置。
在本公开的一些实施例中,探测结果子模块,包括:等待超时单元,被配置为若超时探测结果为等待超时,对待解码视频中除首帧图像的其他视频帧图像进行硬件解码处理,以确定解码器适用的兼容性等级配置。
在本公开的一些实施例中,探测结果子模块,包括:时长正常单元,被配置为若超时探测结果为等待未超时,按照兼容性等级配置对解码器重新进行解码异常检测处理,以确定解码器适用的兼容性等级配置。
本公开各实施例中提供的解码器的配置装置的具体细节已经在对应的方法实施例中进行了详细的描述,因此此处不再赘述。
图11示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括中央处理单元(Central Processing Unit,CPU)1101,其可以根据存储在只读存储器(Read-Only Memory,ROM)1102中的程序或者从储存部分1108加载到随机访问存储器(Random Access Memory,RAM)1103中的程序而执行各种适当的动作和处理。在RAM 1103中,还存储有系统操作所需的各种程序和数据。CPU1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(Input/Output,I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1107;包括硬盘等的储存部分1108;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入储存部分1108。
特别地,根据本公开的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (15)

1.一种解码器的配置方法,其特征在于,所述方法包括:
获取解码器的解码参数以及与所述解码器对应的待解码视频,并确定与所述解码参数对应的参数配置规则;
按照所述参数配置规则对所述解码参数进行规则配置处理得到参数配置结果,并对所述解码参数进行兼容性逻辑配置得到兼容性探测规则,所述兼容性探测规则中包括至少两个兼容性等级;
对所述至少两个兼容性等级和所述参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,并对所述至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置;
按照所述兼容性等级配置对所述解码器进行解码异常检测处理得到异常检测结果;
基于所述异常检测结果,对所述待解码视频进行硬件解码处理得到解码处理结果,并根据所述解码处理结果确定所述解码器适用的兼容性等级配置。
2.根据权利要求1所述的解码器的配置方法,其特征在于,所述解码参数包括帧率设置参数和解码囤帧参数,所述参数配置结果包括帧率配置结果和囤帧配置结果,
所述按照所述参数配置规则对所述解码参数进行规则配置处理得到参数配置结果,包括:
按照所述参数配置规则对所述帧率设置参数进行规则配置处理得到帧率配置结果;
按照所述参数配置规则对所述解码囤帧参数进行规则配置处理得到囤帧配置结果。
3.根据权利要求2所述的解码器的配置方法,其特征在于,所述对所述至少两个兼容性等级和所述参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,包括:
对所述至少两个兼容性等级和所述帧率配置结果进行参数等级匹配处理得到兼容性等级配置;和
对所述至少两个兼容性等级和所述囤帧配置结果进行参数等级匹配处理得到兼容性等级配置;和
未对所述至少两个兼容性等级与所述帧率配置结果进行参数等级匹配处理,且未对所述至少两个兼容性等级与所述囤帧配置结果进行参数等级匹配处理得到兼容性等级配置。
4.根据权利要求1所述的解码器的配置方法,其特征在于,所述对所述解码参数进行兼容性逻辑配置得到兼容性探测规则,包括:
对所述解码参数进行兼容性等级划分处理得到至少两个兼容性等级;
对所述至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则。
5.根据权利要求4所述的解码器的配置方法,其特征在于,所述对所述至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则,包括:
对所述至少两个兼容性等级进行兼容性优先级配置得到所述至少两个兼容性等级的兼容性优先级;
按照所述兼容性优先级对所述至少两个兼容性等级进行等级逻辑配置得到兼容性探测规则。
6.根据权利要求5所述的解码器的配置方法,其特征在于,所述对所述至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置,包括:
按照所述兼容性优先级对所述至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置。
7.根据权利要求5所述的解码器的配置方法,其特征在于,所述基于所述异常检测结果,对所述待解码视频进行硬件解码处理得到解码处理结果,包括:
若所述异常检测结果为所述解码器异常,按照所述兼容性优先级在所述至少两个兼容性等级配置中确定所述兼容性等级配置的下一兼容性等级配置,以对所述待解码视频进行硬件解码处理得到解码处理结果。
8.根据权利要求1-7任一项所述的解码器的配置方法,其特征在于,所述基于所述异常检测结果,对所述待解码视频进行硬件解码处理得到解码处理结果,包括:
若所述异常检测结果为所述解码器正常,按照所述兼容性等级配置对所述待解码视频进行硬件解码处理得到解码处理结果。
9.根据权利要求1-7任一项所述的解码器的配置方法,其特征在于,所述根据所述解码处理结果确定所述解码器适用的兼容性等级配置,包括:
若所述解码处理结果为所述待解码视频的首帧图像解码成功,确定所述兼容性等级配置为所述解码器适用的兼容性等级配置。
10.根据权利要求1-7任一项所述的解码器的配置方法,其特征在于,所述根据所述解码处理结果确定所述解码器适用的兼容性等级配置,包括:
若所述解码处理结果为所述待解码视频的首帧图像解码失败,对所述解码器进行解码超时探测处理得到超时探测结果;
根据所述超时探测结果确定所述解码器适用的兼容性等级配置。
11.根据权利要求10所述的解码器的配置方法,其特征在于,所述根据所述超时探测结果确定所述解码器适用的兼容性等级配置,包括:
若所述超时探测结果为等待超时,对所述待解码视频中除所述首帧图像的其他视频帧图像进行硬件解码处理,以确定所述解码器适用的兼容性等级配置。
12.根据权利要求10所述的解码器的配置方法,其特征在于,所述根据所述超时探测结果确定所述解码器适用的兼容性等级配置,包括:
若所述超时探测结果为等待未超时,按照所述兼容性等级配置对所述解码器重新进行解码异常检测处理,以确定所述解码器适用的兼容性等级配置。
13.一种解码器的配置装置,其特征在于,所述装置包括:
规则配置模块,被配置为获取解码器的解码参数以及与所述解码器对应的待解码视频,并确定与所述解码参数对应的参数配置规则;
探测规则模块,被配置为按照所述参数配置规则对所述解码参数进行规则配置处理得到参数配置结果,并对所述解码参数进行兼容性逻辑配置得到兼容性探测规则,所述兼容性探测规则中包括至少两个兼容性等级;
等级匹配模块,被配置为对所述至少两个兼容性等级和所述参数配置结果进行参数等级匹配处理得到至少两个兼容性等级配置,并对所述至少两个兼容性等级配置进行等级配置选定处理确定一兼容性等级配置;
异常检测模块,被配置为按照所述兼容性等级配置对所述解码器进行解码异常检测处理得到异常检测结果;
解码处理模块,被配置为基于所述异常检测结果,对所述待解码视频进行硬件解码处理得到解码处理结果,并根据所述解码处理结果确定所述解码器适用的兼容性等级配置。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的解码器的配置方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12中任一项所述的解码器的配置方法。
CN202111647541.XA 2021-02-24 2021-12-29 解码器的配置方法、装置、介质以及电子设备 Active CN114979772B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2022/075745 WO2022179397A1 (zh) 2021-02-24 2022-02-10 解码器的配置方法、装置、介质以及电子设备
US17/989,544 US20230092261A1 (en) 2021-02-24 2022-11-17 Decoder configuration method, apparatus, medium and electronic device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110208285 2021-02-24
CN2021102082858 2021-02-24

Publications (2)

Publication Number Publication Date
CN114979772A true CN114979772A (zh) 2022-08-30
CN114979772B CN114979772B (zh) 2023-05-12

Family

ID=82974794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111647541.XA Active CN114979772B (zh) 2021-02-24 2021-12-29 解码器的配置方法、装置、介质以及电子设备

Country Status (3)

Country Link
US (1) US20230092261A1 (zh)
CN (1) CN114979772B (zh)
WO (1) WO2022179397A1 (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101103625A (zh) * 2004-12-06 2008-01-09 索尼株式会社 记录设备、重放设备、记录/重放设备、其方法及程序
CN101257628A (zh) * 2008-03-20 2008-09-03 武汉大学 一种实现视频码流帧率可调整的压缩方法
CN101690223A (zh) * 2007-06-28 2010-03-31 三星电子株式会社 对视频编码和/或解码的方法、介质和设备
JP2011193486A (ja) * 2011-04-14 2011-09-29 Td Vision Corp Sa De Cv 立体3dビデオイメージディジタルデコーディングのシステムおよび方法
US20110248986A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Intelligent media decoding
GB201301003D0 (en) * 2013-01-10 2013-03-06 Barco Nv Enhanced video codec
US20130191120A1 (en) * 2012-01-24 2013-07-25 Broadcom Corporation Constrained soft decision packet loss concealment
WO2014003676A1 (en) * 2012-06-29 2014-01-03 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and methods thereof for video processing
US20140348156A1 (en) * 2013-05-22 2014-11-27 Rogers Communications Inc. Optimizing route selection based on transcoding
CN109672893A (zh) * 2018-11-30 2019-04-23 广州市百果园信息技术有限公司 一种视频解码方法、装置、设备和存储介质
CN110381322A (zh) * 2019-07-15 2019-10-25 腾讯科技(深圳)有限公司 视频流解码方法、装置、终端设备及存储介质
WO2020124611A1 (zh) * 2018-12-22 2020-06-25 华为技术有限公司 一种速率控制方法及设备
CN111669577A (zh) * 2020-06-30 2020-09-15 广州市百果园信息技术有限公司 一种硬件解码检测方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954863B (zh) * 2015-06-05 2020-02-28 深圳市九洲电器有限公司 音视频解码组件选择方法及系统
CN112087633B (zh) * 2019-06-12 2022-08-09 腾讯科技(深圳)有限公司 视频解码方法、装置及存储介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101103625A (zh) * 2004-12-06 2008-01-09 索尼株式会社 记录设备、重放设备、记录/重放设备、其方法及程序
CN101690223A (zh) * 2007-06-28 2010-03-31 三星电子株式会社 对视频编码和/或解码的方法、介质和设备
CN101257628A (zh) * 2008-03-20 2008-09-03 武汉大学 一种实现视频码流帧率可调整的压缩方法
US20110248986A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Intelligent media decoding
JP2011193486A (ja) * 2011-04-14 2011-09-29 Td Vision Corp Sa De Cv 立体3dビデオイメージディジタルデコーディングのシステムおよび方法
US20130191120A1 (en) * 2012-01-24 2013-07-25 Broadcom Corporation Constrained soft decision packet loss concealment
WO2014003676A1 (en) * 2012-06-29 2014-01-03 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and methods thereof for video processing
CN104604235A (zh) * 2012-06-29 2015-05-06 瑞典爱立信有限公司 用于视频处理的发送装置及其方法
GB201301003D0 (en) * 2013-01-10 2013-03-06 Barco Nv Enhanced video codec
US20140348156A1 (en) * 2013-05-22 2014-11-27 Rogers Communications Inc. Optimizing route selection based on transcoding
CN109672893A (zh) * 2018-11-30 2019-04-23 广州市百果园信息技术有限公司 一种视频解码方法、装置、设备和存储介质
WO2020124611A1 (zh) * 2018-12-22 2020-06-25 华为技术有限公司 一种速率控制方法及设备
CN110381322A (zh) * 2019-07-15 2019-10-25 腾讯科技(深圳)有限公司 视频流解码方法、装置、终端设备及存储介质
CN111669577A (zh) * 2020-06-30 2020-09-15 广州市百果园信息技术有限公司 一种硬件解码检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20230092261A1 (en) 2023-03-23
CN114979772B (zh) 2023-05-12
WO2022179397A1 (zh) 2022-09-01

Similar Documents

Publication Publication Date Title
US11417341B2 (en) Method and system for processing comment information
US9218813B2 (en) Voice and/or facial recognition based service provision
US11930197B2 (en) Video decoding method and apparatus, computer device, and storage medium
CN107209693B (zh) 缓冲器优化
US11785195B2 (en) Method and apparatus for processing three-dimensional video, readable storage medium and electronic device
US20190371023A1 (en) Method and apparatus for generating multimedia content, and device therefor
CN114501062A (zh) 视频渲染协同方法、装置、设备及存储介质
WO2017092561A1 (zh) 实现音视频内容播放的方法和装置
CN110740313A (zh) 硬件编码能力检测方法及装置
CN113157418A (zh) 服务器资源分配方法和装置、存储介质及电子设备
US20170093945A1 (en) Selecting bitrate to stream encoded media based on tagging of important media segments
CA3150211A1 (en) Systems and methods for streamlining multimedia content acquisition
WO2024104307A1 (zh) 直播视频流渲染方法、装置、设备、存储介质及产品
CN110611842B (zh) 基于虚拟机的视频传输管理方法及相关装置
US11706496B2 (en) Echo bullet screen
US11611483B2 (en) Learning-based dynamic determination of synchronous/asynchronous behavior of computing services
US9872074B1 (en) Determining game maturity levels and streaming gaming content to selected platforms based on maturity levels
CN110891195B (zh) 花屏图像的生成方法、装置、设备和存储介质
CN114979772B (zh) 解码器的配置方法、装置、介质以及电子设备
US10560727B2 (en) Server structure for supporting multiple sessions of virtualization
CN114205359A (zh) 视频渲染协同方法、装置及设备
CN113296984A (zh) 兼容性参数确定方法、装置、电子设备及存储介质
CN111866508A (zh) 视频处理方法、装置、介质及电子设备
KR102094677B1 (ko) 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버
CN113206997B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40073926

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant