视频解码方法和视频解码装置制造方法

文档序号:7805519阅读:160来源:国知局
视频解码方法和视频解码装置制造方法
【专利摘要】本发明提供一种视频解码方法和视频解码装置,应用于终端设备,该视频解码方法包括:监测所述终端设备的视频解码速度;当所述视频解码速度小于预设解码速度时,判断当前待解码画面帧的类型;若所述当前待解码画面帧为非参考类型的画面帧,则丢弃所述当前待解码画面帧。在本发明的技术方案中,通过对非参考类型的画面帧的丢弃,在不影响其他画面帧的解码的基础上,减少了所需解码的画面帧总数量,有助于降低视频解码负担,提升解码速度,从而避免视频卡顿现象。
【专利说明】视频解码方法和视频解码装置

【技术领域】
[0001] 本发明涉及视频播放【技术领域】,尤其涉及一种视频解码方法和一种视频解码装 置。

【背景技术】
[0002] 随着网络技术的不断发展,有线网络和移动通信网络的数据传输速度越来越快, 使得在视频播放的过程中,设备的视频解码能力成为了目前影响视频播放质量的一大瓶 颈。当设备的视频解码能力较弱时,将直接反映为视频播放过程卡顿,影响观看者的体验。


【发明内容】

[0003] 有鉴于此,本发明提供一种视频解码方法和一种视频解码装置,能够在不影响视 频播放的基础上,减少了所需解码的画面帧总数量,有助于降低视频解码负担,提升解码速 度,从而避免视频卡顿现象。
[0004] 为实现上述目的,本发明提供技术方案如下:
[0005] 根据本发明的第一方面,提出了一种视频解码方法,应用于终端设备,包括:
[0006] 监测所述终端设备的视频解码速度;
[0007] 当所述视频解码速度小于预设解码速度时,判断当前待解码画面帧的类型;
[0008] 若所述当前待解码画面帧为非参考类型的画面帧,则丢弃所述当前待解码画面 帧。
[0009] 根据本发明的第二方面,提出了一种视频解码装置,应用于终端设备,包括:
[0010] 监测单元,用于监测所述终端设备的视频解码速度;
[0011] 判断单元,用于在所述视频解码速度小于预设解码速度的情况下,判断当前待解 码画面帧的类型;
[0012] 丢弃单元,用于在所述当前待解码画面帧为B帧的情况下,丢弃所述当前待解码 画面帧。
[0013] 根据本发明的第三方面,提出了一种视频解码装置,应用于终端设备,包括:
[0014] 处理器;
[0015] 用于存储处理器可执行指令的存储器;
[0016] 其中,所述处理器被配置为:
[0017] 监测所述终端设备的视频解码速度;
[0018] 当所述视频解码速度小于预设解码速度时,判断当前待解码画面帧的类型;
[0019] 若所述当前待解码画面帧为非参考类型的画面帧,则丢弃所述当前待解码画面 帧。
[0020] 由以上技术方案可见,本发明通过对非参考类型的画面帧的丢弃,在不影响其他 画面帧的解码的基础上,减少了所需解码的画面帧总数量,有助于降低视频解码负担,提升 解码速度,从而避免视频卡顿现象。

【专利附图】

【附图说明】
[0021] 图1示出了根据本发明的一个实施例的视频解码方法的流程示意图;
[0022] 图2示出了根据本发明的一个实施例的丢弃非参考类型的画面帧的示意图;
[0023] 图3示出了根据本发明的一个实施例的根据视频文件进行音视频播放的流程示 意图;
[0024] 图4示出了根据本发明的一个实施例的视频解码装置的结构示意图。

【具体实施方式】
[0025] 本发明通过对非参考类型的画面帧的丢弃,在不影响其他画面帧的解码的基础 上,减少了所需解码的画面帧总数量,有助于降低视频解码负担,提升解码速度,从而避免 视频卡顿现象。
[0026] 为对本发明进行进一步说明,提供下列实施例:
[0027] 图1示出了根据本发明的一个实施例的视频解码方法的流程示意图。
[0028] 如图1所示,根据本发明的一个实施例的视频解码方法,应用于终端设备,包括:
[0029] 步骤102,监测所述终端设备的视频解码速度;
[0030] 在本实施例中,视频解码速度可以直接反映出终端设备的解码能力和实际解码状 况;具体地,可以通过多种手段来确定该视频解码速度,比如可以通过获取预设的解码状态 参数,并当所述解码状态参数的数值不属于预设数值范围时,确定所述视频解码速度小于 预设解码速度。
[0031] 本领域技术人员应该理解的是,可以根据实际需要确定所采用的解码状态参数, 以用于反映出视频解码速度。比如作为一示例性实施例,解码状态参数可以为终端设备中 处理器(如CPU)的资源利用率,如果资源利用率较小(比如小于预设利用率),则说明用于 视频解码的处理资源较少,并将导致视频解码速度较低;作为另一示例性实施例,解码状态 参数也可以为已解码画面帧缓冲队列中已解码画面帧的数量,如果已解码画面帧的数量较 小(比如小于预设数量),则在视频播放速度一定的情况下,直接表明视频解码速度较低, 可能无法匹配视频播放速度。当然,也可以同时获取处理器的资源利用率和已解码画面帧 的数量。
[0032] 进一步地,当解码状态参数为处理器的资源利用率时,具体可以参考:处理器的当 前运行核心数和/或处理器的当前运行主频等参数;其中,当处理器的当前运行核心数小 于预设核心数和/或处理器的当前运行主频小于预设运行主频时,判定为处理器的资源利 用率较小。
[0033] 步骤104,当所述视频解码速度小于预设解码速度时,判断当前待解码画面帧的类 型;
[0034] 步骤106,若所述当前待解码画面帧为非参考类型的画面帧,则丢弃所述当前待解 码画面中贞。
[0035] 在本实施例中,作为一示例性实施例,可以在解码操作的过程中,执行对非参考类 型的画面帧的丢弃操作。具体地,待解码画面帧都处于待解码画面帧缓冲队列中,并按照排 列顺序依次进行解码操作;若当前排列在队首的画面帧为非参考类型,则直接丢弃并继续 查看下一个画面帧。那么,当视频解码速度恢复正常后,可以通过避免丢弃画面帧,从而尽 快恢复对视频的正常解码。或者,作为另一示例性实施例,也可以直接将待解码画面帧缓冲 队列中的所有非参考类型的画面帧丢弃。
[0036] 由上述实施例可知,若终端设备的视频解码速度正常,则可以正常执行视频解码 操作;若视频解码速度较小(比如小于预设解码速度,由于终端设备的硬件配置可能存在 差异,因而该解码速度可以根据实际情况设置),可能导致视频播放卡顿时,通过丢弃非参 考类型的画面帧,减少实际被解码的画面帧数量,从而相当于提升了视频解码速度,避免播 放过程中发生卡顿。
[0037] 基于网络传输速度的影响,在视频的编码过程中,存在提高压缩率、减小视频数据 量的需求。为此,相关技术中提出了帧间压缩编码技术:将视频中包含的画面帧分为两种类 型,即"参考类型的画面帧"和"非参考类型的画面帧"。其中,"非参考类型的画面帧"中仅 需要记载与相邻画面帧的差异特征数据即可,而无需记载当前画面帧的所有数据,以此降 低视频的数据量;而对于"参考类型的画面帧",即用于作为参考对象的画面帧。当然,"参考 类型的画面帧"也可能包括多个子类型:第一类型,即包含当前画面帧中的全部特征数据; 第二类型,类似于"非参考类型的画面帧",即仅包含与相邻画面帧的差异特征数据;因此, 第一类型的画面帧可以作为第二类型的画面帧和"非参考类型的画面帧"的参考对象,而第 二类型的画面帧也作为"非参考类型的画面帧"的参考对象。
[0038] 可见,"参考类型的画面帧"丢失时,会造成被参考对象(第二类型的画面帧或"非 参考类型的画面帧")无法被正常解码;而"非参考类型的画面帧"的丢弃,则仅与该画面帧 自身相关,并不会影响其他画面帧的解码,但却能够降低终端设备的总解码量,提升"参考 类型的画面帧"的解码速度,避免视频卡顿。
[0039] 作为一示例性实施例,下面结合图2对"参考类型的画面帧"、"非参考类型的画面 帧"以及本发明的技术方案进行详细说明。
[0040] 如图2所示,假定终端设备接收到的视频采用了 MPEG (Moving Pictures Experts Group/Motion Pictures Experts Group,动态图像专家组)格式进行编码,实现了具有运动 补偿的帧间压缩编码。
[0041] 具体地,该视频中的画面帧可以分为I帧、P帧和B帧。其中,I帧为关键帧,即上 述的第一类型的"参考类型的画面帧",包含当前画面帧中的完整画面数据,可以不依赖其 他画面帧而被直接解码;P帧为差别帧,即上述的第二类型的"参考类型的画面帧",仅包含 当前画面帧与前一画面帧之间的差异特征数据,需要将前一画面帧与该P帧包含的差异特 征数据进行叠加后,才能生成完整的当前画面帧;B帧为双向差别帧,即上述的"非参考类 型的画面帧",仅包含当前画面帧与前后画面帧之间的差异特征数据,需要将前一画面帧、 后一画面帧与该P帧包含的差异特征数据进行叠加后,才能生成完整的当前画面帧。
[0042] 所以在解码过程中,I帧可能被P帧或B帧参考,P帧可能被B帧参考,而B帧则不 会被其他画面帧参考。
[0043] 假定终端设备所需解码的视频中,其原始画面帧按照如图2所示的 "I-P-B-P-B-P……"的方式排列。当监测到终端设备的视频解码速度较小时,通过丢弃B 帧(不对B帧进行解码)来减少所需解码的画面帧总数,相当于原始画面帧被处理为类似 "I-P-P-P……"的画面帧队列(即处理后画面帧)。
[0044] 为了便于理解,下面结合一典型应用场景,并基于图3来具体描述根据视频文件 进行音视频播放的流程。
[0045] 如图3所示,播放视频文件的步骤包括:
[0046] 步骤302,解析视频文件参数。
[0047] 步骤304,将视频文件分流为音频数据包和视频数据包,并将音频数据包添加至未 解码音频缓冲队列,而将视频数据包添加至未解码画面帧缓冲队列。
[0048] 步骤306,对未解码音频缓冲队列中的音频数据进行解码。具体地,可以由终端设 备中的CPU或专用的芯片(如声卡)进行解码。
[0049] 步骤308,终端设备的CPU对未解码画面帧缓冲队列中的待解码画面帧进行解码, 并将已解码画面帧添加至已解码画面帧缓冲队列中。需要说明的是,虽然以"步骤306"和 "步骤308"进行示意,但正如图3所示,音频解码和视频解码分别处于两个不同的处理流程 中,并不表示音频解码和视频解码存在确定的先后顺序。
[0050] 步骤310,监测终端设备的视频解码速度,若视频解码速度慢,则避免对未解码画 面帧缓冲队列中的B帧进行解码。
[0051] 其中,视频解码速度慢的原因有很多:
[0052] 1、由于终端设备的处理器自身的性能较差所致,即其硬件配置较低。此时,可以基 于已解码画面帧缓冲队列中包含的已解码画面帧的数量来判断视频解码速度。具体地,当 已解码画面帧缓冲队列中包含的已解码画面帧的数量小于预设数量时,判定视频解码速度 慢。
[0053] 2、由于终端设备的处理器发热,触发设备保护机制所致。具体地,当处理器的性能 较差或播放视频的分辨率较高时,会导致处理器发热量较大;为了避免持续发热导致终端 设备的损坏,会自动触发设备保护机制,即通过降低处理器的运行主频或减少运行核心的 数量,从而降低处理器发热量。
[0054] 可见,设备保护机制将导致处理器的运算能力降低,从而影响到对画面帧的解码 操作,降低了终端设备对未解码画面帧缓冲队列的解码速度,导致视频播放卡顿。相应地, 即可执行对处理器的运算能力的监测,比如处理器的运行主频和/或运行核心的数量,并 当运行主频小于预设主频和/或运行核心的数量小于预设数量时,判定视频解码速度慢。
[0055] 当然,可以通过同时监测已解码画面帧缓冲队列中包含的已解码画面帧的数量和 处理器的运算能力(如处理器的运行主频和/或运行核心的数量),以涵盖上述的所有导致 视频解码速度慢的原因。
[0056] 或者,可以为监测参数设置优先级别,比如运行核心的数量>运行主频> 已解码 画面帧缓冲队列中包含的已解码画面帧的数量 >……,则可以设置为:按照优先级顺序,仅 依据优先级最高的一项或者前几项参数,判断视频解码速度是否较慢。
[0057] 比如此处以仅依据优先级最高的一项(例如为运行核心的数量)进行判断为例, 介绍一具体实施例:
[0058] 假定终端设备为四核智能手机,其上安装有视频播放器,所使用的视频格式为 H. 265。在视频播放的过程中,通过监测CPU的运行核心数是否小于其最大核心数的一半 (即运行核心数是否小于2),判断CPU是否触发了设备保护机制。若判定触发了设备保护 机制,则丢弃B帧(即避免对未解码画面帧缓冲队列中的B帧进行解码操作)。继续检测 CPU状态,如果CPU的运行核心数不小于其最大核心数的一半(或者全部核心恢复运行), 则设置视频解码器不再丢弃B帧,视频播放器恢复到正常的解码状态。
[0059] 步骤312,根据音频时间戳和画面帧时间戳之间的对应关系,实现音视频同步播 放。
[0060] 对应于上述的视频解码方法,本发明还提出了视频解码装置。具体地,图4示出了 根据本发明的一个实施例的视频解码装置的结构示意图。
[0061] 为了方便描述,本申请将构成视频解码装置的终端设备的硬件架构进行了简化抽 象,各个安全设备在硬件层面均包括处理器、内存、非易失性存储器以及网络接口。从业务 层面来看,图4中的视频解码装置可理解为对应主机上的处理器将计算机程序读取到内存 中然后执行所形成的逻辑装置(也称为"虚拟装置")。当然本发明并不排除软件实现以外 其他实现方式,比如可编程逻辑器件这样的实现方式等等,也就是说后续描述的各个处理 步骤的执行主体可以采用硬件或逻辑器件等方式实现。在本实施方式中,所述视频解码装 置可以包括监测单元402、判断单元404和丢弃单元406。
[0062] 监测单元402,被配置为监测所述终端设备的视频解码速度;
[0063] 判断单元404,被配置为在所述视频解码速度小于预设解码速度的情况下,判断当 前待解码画面帧的类型;
[0064] 丢弃单元406,被配置为在所述当前待解码画面帧为B帧的情况下,丢弃所述当前 待解码画面帧。
[0065] 在上述实施例中,若终端设备的视频解码速度正常,则可以正常执行视频解码操 作;若视频解码速度较小(比如小于预设解码速度,由于终端设备的硬件配置可能存在差 异,因而该解码速度可以根据实际情况设置),可能导致视频播放卡顿时,通过丢弃非参考 类型的画面帧,减少实际被解码的画面帧数量,从而相当于提升了视频解码速度,避免播放 过程中发生卡顿。
[0066] 可选的,所述监测单元402具体用于:获取预设的解码状态参数;以及,所述判断 单元404在所述解码状态参数的数值不属于预设数值范围的情况下,确定所述视频解码速 度小于预设解码速度。
[0067] 可选的,所述解码状态参数为所述终端设备中处理器的资源利用率;以及,所述判 断单元404在所述处理器的资源利用率小于预设利用率和/或已解码画面帧的数量小于预 设数量的情况下,确定所述解码状态参数的数值不属于预设数值范围。
[0068] 可选的,所述处理器的资源利用率小于预设利用率包括:处理器的当前运行核心 数小于预设核心数和/或处理器的当前运行主频小于预设运行主频。
[0069] 可选的,所述解码状态参数为已解码画面帧缓冲队列中已解码画面帧的数量;以 及,所述判断单元404在所述处理器的资源利用率小于预设利用率和/或已解码画面帧的 数量小于预设数量的情况下,确定所述解码状态参数的数值不属于预设数值范围。
[0070] 此外,本发明还提出了一种视频解码装置,应用于终端设备,包括:处理器;用于 存储处理器可执行指令的存储器;其中,所述处理器被配置为:监测所述终端设备的视频 解码速度;当所述视频解码速度小于预设解码速度时,判断当前待解码画面帧的类型;若 所述当前待解码画面帧为非参考类型的画面帧,则丢弃所述当前待解码画面帧。
[0071] 本发明还提出了一种终端设备,包括:处理器;用于存储处理器可执行指令的存 储器;其中,所述处理器被配置为:监测所述终端设备的视频解码速度;当所述视频解码速 度小于预设解码速度时,判断当前待解码画面帧的类型;若所述当前待解码画面帧为非参 考类型的画面帧,则丢弃所述当前待解码画面帧。
[0072] 具体地,该终端设备可以为移动设备,比如智能手机、平板手机、平板电脑、笔记本 电脑、MP4播放器等;或者,终端设备也可以为非移动设备,比如家用台式电脑、车载娱乐系 统等。实际上,所有能够执行视频播放的设备,均可以通过使用本发明的技术方案,以解决 运算能力不足而导致的视频播放卡顿的问题。
[0073] 因此,本发明通过对非参考类型的画面帧的丢弃,在不影响其他画面帧的解码的 基础上,减少了所需解码的画面帧总数量,有助于降低视频解码负担,提升解码速度,从而 避免视频卡顿现象。
[0074] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1. 一种视频解码方法,应用于终端设备,其特征在于,包括: 监测所述终端设备的视频解码速度; 当所述视频解码速度小于预设解码速度时,判断当前待解码画面帧的类型; 若所述当前待解码画面帧为非参考类型的画面帧,则丢弃所述当前待解码画面帧。
2. 根据权利要求1所述的视频解码方法,其特征在于,监测所述终端设备的视频解码 速度具体包括: 获取预设的解码状态参数; 其中,当所述解码状态参数的数值不属于预设数值范围时,确定所述视频解码速度小 于预设解码速度。
3. 根据权利要求2所述的视频解码方法,其特征在于,所述解码状态参数为所述终端 设备中处理器的资源利用率; 其中,当所述处理器的资源利用率小于预设利用率时,确定所述解码状态参数的数值 不属于预设数值范围。
4. 根据权利要求3所述的视频解码方法,其特征在于,所述处理器的资源利用率小于 预设利用率包括: 处理器的当前运行核心数小于预设核心数和/或处理器的当前运行主频小于预设运 行主频。
5. 根据权利要求2所述的视频解码方法,其特征在于,所述解码状态参数为已解码画 面帧缓冲队列中已解码画面帧的数量; 其中,当已解码画面帧的数量小于预设数量时,确定所述解码状态参数的数值不属于 预设数值范围。
6. -种视频解码装置,应用于终端设备,其特征在于,包括: 监测单元,用于监测所述终端设备的视频解码速度; 判断单元,用于在所述视频解码速度小于预设解码速度的情况下,判断当前待解码画 面帧的类型; 丢弃单元,用于在所述当前待解码画面帧为B帧的情况下,丢弃所述当前待解码画面 帧。
7. 根据权利要求6所述的视频解码装置,其特征在于,所述监测单元具体用于:获取预 设的解码状态参数;以及 所述判断单元在所述解码状态参数的数值不属于预设数值范围的情况下,确定所述视 频解码速度小于预设解码速度。
8. 根据权利要求7所述的视频解码装置,其特征在于,所述解码状态参数为所述终端 设备中处理器的资源利用率;以及 所述判断单元在所述处理器的资源利用率小于预设利用率和/或已解码画面帧的数 量小于预设数量的情况下,确定所述解码状态参数的数值不属于预设数值范围。
9. 根据权利要求7所述的视频解码装置,其特征在于,所述解码状态参数为已解码画 面帧缓冲队列中已解码画面帧的数量;以及 所述判断单元在所述处理器的资源利用率小于预设利用率和/或已解码画面帧的数 量小于预设数量的情况下,确定所述解码状态参数的数值不属于预设数值范围。
10. -种视频解码装置,应用于终端设备,其特征在于,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为: 监测所述终端设备的视频解码速度; 当所述视频解码速度小于预设解码速度时,判断当前待解码画面帧的类型; 若所述当前待解码画面帧为非参考类型的画面帧,则丢弃所述当前待解码画面帧。
【文档编号】H04N19/44GK104053002SQ201410247882
【公开日】2014年9月17日 申请日期:2014年6月5日 优先权日:2014年6月5日
【发明者】石学会, 魏征 申请人:乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1