CN110381322B - 视频流解码方法、装置、终端设备及存储介质 - Google Patents

视频流解码方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN110381322B
CN110381322B CN201910636848.6A CN201910636848A CN110381322B CN 110381322 B CN110381322 B CN 110381322B CN 201910636848 A CN201910636848 A CN 201910636848A CN 110381322 B CN110381322 B CN 110381322B
Authority
CN
China
Prior art keywords
target
video stream
decoding
video data
video
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
Application number
CN201910636848.6A
Other languages
English (en)
Other versions
CN110381322A (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 CN201910636848.6A priority Critical patent/CN110381322B/zh
Publication of CN110381322A publication Critical patent/CN110381322A/zh
Priority to PCT/CN2020/096511 priority patent/WO2021008290A1/zh
Priority to JP2021545768A priority patent/JP7191240B2/ja
Priority to US17/500,884 priority patent/US20220038724A1/en
Application granted granted Critical
Publication of CN110381322B publication Critical patent/CN110381322B/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/127Prioritisation of hardware or computational resources
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/179Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scene or a shot
    • 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
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Closed-Circuit Television Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例公开了一种视频流解码方法、装置、终端设备及存储介质,其中,该视频流解码方法应用于终端设备,终端设备包括中央处理器和图形处理器,视频流解码方法由中央处理器执行,该视频流解码方法包括:获取监控设备输入的多路视频流;在图形处理器对应的线程池,创建多个线程;根据该多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。本发明实施例中在GPU对应的线程池创建多个线程,从而利用GPU替代CPU完成多路并行解码视频流数据的工作,大大降低了整个设备的能耗,提升了视频解码效率和GPU设备利用率,降低了对CPU的依赖,可以广泛应用在终端设备CPU处理能力不强的视频流解码场景中。

Description

视频流解码方法、装置、终端设备及存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种视频流解码方法、装置、终端设备及存储介质。
背景技术
随着互联网和移动互联网的高速发展,人们产生的数据总量呈现急剧增长的趋势。信息数据越来越多,对信息数据处理能力的要求也越来越高,尤其在视频领域,随着互联网、智慧城市的飞速发展,有越来越多的视频数据需要被存储、传输和处理,这其中会涉及到大量的视频编码和解码,简称视频编解码。
随着安全管理力度的加强,目前在很多场合都布设了密集的高清摄像头监控网络。然而在相关技术中,很难高效地大批量地处理这些海量的视频数据,单台2U服务器只能处理4~8路的视频流,且多路视频流可达到1000Mbps,占用大量的中央处理器(CentralProcessing Unit,CPU)资源,要处理密集的高清摄像头获取的多路视频流需要大量服务器。
现有视频流解码的实际部署方案主要包括两大类:1)将视频流数据传送至算力极强的后台服务器进行解码,该方案存在的问题是严重依赖于网络环境,且链路较长,不适用于诸如网络缺失或者较差的情况。2)使用硬件性能优良的终端设备,如高性能的CPU,该方案往往会导致硬件成本偏高、且能耗较大。目前,对视频流的解码没有一种高效的解决方案。
发明内容
本发明实施例提供一种视频流解码方法、装置、终端设备及存储介质,大大降低了整个设备的能耗,提升了视频解码效率和GPU设备利用率,同时进一步降低了对CPU的依赖,更好地支持实际应用场景中需要将帧数据输出到GPU之外的存储介质上,可以满足更多的应用场景。
第一方面,本申请提供一种视频流解码方法,应用于终端设备,所述终端设备包括中央处理器和图形处理器,所述视频流解码方法由所述中央处理器执行,所述视频流解码方法包括:
获取监控设备输入的多路视频流;
在所述图形处理器对应的线程池,创建多个线程;
根据所述多个线程,将所述多路视频流传输给所述图形处理器进行视频解码处理,得到多路解码视频数据。
在本申请一些实施例中,所述在所述图形处理器对应的线程池,创建多个线程,包括:
获取输入的线程个数;
根据所述线程个数,在所述图形处理器对应的线程池中创建所述多个线程,所述多个线程的个数等于所述线程个数。
在本申请一些实施例中,所述在所述图形处理器对应的线程池,创建多个线程,包括:
获取所述多路视频流的视频路数;
在所述图形处理器对应的线程池,创建与所述视频路数的数量相同的线程。
在本申请一些实施例中,所述根据所述多个线程,将所述多路视频流传输给所述图形处理器进行视频解码处理,得到多路解码视频数据,包括:
为所述多路视频流中每一路视频流,在所述多个线程中一一对应分配一个线程;
分别以所述多个线程中的线程为目标线程,利用所述目标线程将目标视频流输入所述图形处理器,所述目标路视频流为所述多路视频流中与所述目标线程对应的一路视频流;
通过所述图形处理器对目标路视频流进行解码处理,得到目标解码视频数据。
在本申请一些实施例中,所述通过所述图形处理器对目标路视频流进行解码处理,得到目标解码视频数据,包括:
依次以所述目标路视频流中每帧图像为目标图像,通过所述图形处理器对所述目标图像进行解码处理,在对所述目标图像进行解码处理后,检测所述目标图像中是否包含预设类型的对象;
当所述目标图像中不包含预设类型的对象时,确定所述目标图像需要跳帧。
在本申请一些实施例中,所述方法还包括:
当所述目标路视频流解码结束时,判断所述目标路视频流是否需要重播;
若是,重启所述目标线程,重新利用所述目标线程将所述目标视频流输入所述图形处理器,通过所述图形处理器,对所述目标路视频流进行解码处理,得到目标解码视频数据;
若否,回收所述目标线程。
在本申请一些实施例中,,所述终端设备还包括存储器,所述方法还包括:
获取所述多路解码视频数据分别对应的存储器;
通过所述图形处理器,向所述存储器输出所述多路解码视频数据。
在本申请一些实施例中,所述多路解码视频数据中包括第一解码视频数据和第二解码视频数据,所述获取所述多路解码视频数据分别对应的存储器,包括:获取所述第一解码视频数据对应的第一存储器;获取所述第二解码视频数据对应的第二存储器;
所述通过所述图形处理器,向所述存储器输出所述多路解码视频数据,包括:通过所述图形处理器,向所述第一存储器输出所述第一解码视频数据,向所述第二存储器输出所述第二解码视频数据。
在本申请一些实施例中,所述第一解码视频数据和所述第二解码视频数据组成所述多路解码视频数据。
在本申请一些实施例中,所述多路解码视频数据中还包括第三解码视频数据,所述获取所述多路解码视频数据分别对应的存储器,包括:获取所述第三解码视频数据对应的第三存储器;
所述通过所述图形处理器,向所述存储器输出所述多路解码视频数据,还包括:通过所述图形处理器,向所述第三存储器输出所述第三解码视频数据。
在本申请一些实施例中,所述存储器包括系统内存、共享内存和磁盘中的至少一种。
在本申请一些实施例中,所述通过所述图形处理器,向所述存储器输出所述多路解码视频数据,包括:
通过所述图形处理器,获取多路解码视频数据对应的存储器的地址编码;
通过所述图形处理器,根据所述地址编码进行存储器映射,确定所述多路解码视频数据对应的目标存储器;
通过所述图形处理器,向所述目标存储器输出多路解码视频数据。
第二方面,本申请提供一种视频流解码装置,应用于终端设备,所述终端设备包括中央处理器和图形处理器,所述视频流解码装置包括:
获取单元,用于获取监控设备输入的多路视频流;
创建单元,用于在所述图形处理器对应的线程池,创建多个线程;
解码单元,用于根据所述多个线程,将所述多路视频流传输给所述图形处理器进行视频解码处理,得到多路解码视频数据。
在本申请一些实施例中,所述创建单元具体用于:
获取输入的线程个数;
根据所述线程个数,在所述图形处理器对应的线程池中创建所述多个线程,所述多个线程的个数等于所述线程个数。
在本申请一些实施例中,所述创建单元具体用于:
通过所述中央处理器获取所述多路视频流的视频路数;
在所述图形处理器对应的线程池,创建与所述视频路数的数量相同的线程。
在本申请一些实施例中,所述解码单元具体用于:
为所述多路视频流中每一路视频流,在所述多个线程中一一对应分配一个线程;
分别以所述多个线程中的线程为目标线程,利用所述目标线程将目标视频流输入所述图形处理器,所述目标路视频流为所述多路视频流中与所述目标线程对应的一路视频流;
通过所述图形处理器对目标路视频流进行解码处理,得到目标解码视频数据。
在本申请一些实施例中,所述解码单元具体用于:
依次以所述目标路视频流中每帧图像为目标图像,通过所述图形处理器对所述目标图像进行解码处理,在对所述目标图像进行解码处理后,检测所述目标图像中是否包含预设类型的对象;
当所述目标图像中不包含预设类型的对象时,确定所述目标图像需要跳帧。
在本申请一些实施例中,所述解码单元具体用于:
当所述目标路视频流解码结束时,判断所述目标路视频流是否需要重播;
若是,重启所述目标线程,重新利用所述目标线程将所述目标视频流输入所述图形处理器,通过所述图形处理器,对所述目标路视频流进行解码处理,得到目标解码视频数据;
若否,回收所述目标线程。
在本申请一些实施例中,所述终端设备还包括存储器,所述装置还包括输出单元,所述输出单元用于:
获取所述多路解码视频数据分别对应的存储器;
通过所述图形处理器,向所述存储器输出所述多路解码视频数据。
在本申请一些实施例中,所述多路解码视频数据中包括第一解码视频数据和第二解码视频数据,所述输出单元具体用于:获取所述第一解码视频数据对应的第一存储器,获取所述第二解码视频数据对应的第二存储器;通过所述图形处理器,向所述第一存储器输出所述第一解码视频数据,向所述第二存储器输出所述第二解码视频数据。
在本申请一些实施例中,所述第一解码视频数据和所述第二解码视频数据组成所述多路解码视频数据。
在本申请一些实施例中,所述多路解码视频数据中还包括第三解码视频数据,所述输出单元具体用于:获取所述第三解码视频数据对应的第三存储器;通过所述图形处理器,向所述第三存储器输出所述第三解码视频数据。
在本申请一些实施例中,所述存储器包括系统内存、共享内存和磁盘中的至少一种。
在本申请一些实施例中,所述输出单元具体用于:
通过所述图形处理器,获取多路解码视频数据对应的存储器的地址编码;
通过所述图形处理器,根据所述地址编码进行存储器映射,确定所述多路解码视频数据对应的目标存储器;
通过所述图形处理器,向所述目标存储器输出多路解码视频数据。
第三方面,本申请提供一种终端设备,包括中央处理器、图形处理器和存储器,所述存储器中储存有第一计算机程序和第二计算机程序,所述第一计算机程序被所述中央处理器执行时,使得所述中央处理器执行以下步骤:
获取监控设备输入的多路视频流;
在所述图形处理器对应的线程池,创建多个线程
根据所述多个线程,将所述多路视频流传输给所述图形处理器;
所述第二计算机程序被所述图形处理器执行时,使得所述图形处理器执行以下步骤:
对所述多路视频流进行并行解码处理,得到多路解码视频数据。
第四方面,本申请提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行第一方面中任一项所述的视频流解码方法中的步骤。
本发明实施例中通过获取监控设备输入的多路视频流;在图形处理器对应的线程池,创建多个线程;根据该多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。本发明实施例中在GPU对应的线程池创建多个线程,从而利用GPU替代CPU完成多路并行解码视频流数据的工作,大大降低了整个设备的能耗,提升了视频解码效率和GPU设备利用率,降低了对CPU的依赖,可以广泛应用在终端设备CPU处理能力不强的视频流解码场景中。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的视频流解码系统的一个实施例场景示意图;
图2是本发明实施例提供的视频流解码方法的一个实施例流程示意图;
图3是本发明实施例提供的视频流解码方法的另一个实施例流程示意图;
图4是本发明实施例提供的视频流解码装置的一个实施例结构示意图;
图5是本发明实施例提供的视频流解码装置的另一个实施例结构示意图;
图6是本发明实施例提供的终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有说明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本文所使用的术语“模块”或“单元”可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。
请参阅图1,图1为本发明实施例所提供的视频流解码系统的场景示意图,该视频流解码系统可以包括终端设备102和至少一个监控设备101,其中,监控设备摄制监控视频流并进行编码,传输到终端设备102进行解码,每个监控设备可以对应一路视频流,该监控设备101可以是监控摄像头,该终端设备102中集成有视频流解码装置,该终端设备可以包括中央处理器1021、图形处理器1022和存储器1023。本发明实施例中终端设备102主要用于通过中央处理器1021获取监控设备输入的多路视频流;在图形处理器对应的线程池,创建多个线程;根据多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。
本发明实施例中,该终端设备102可以是服务器,该服务器可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本发明实施例中所描述的服务器,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。本发明的实施例中,服务器与监控设备之间可通过任何通信方式实现通信,包括但不限于,基于第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)、长期演进(Long Term Evolution,LTE)、全球互通微波访问(Worldwide Interoperability forMicrowave Access,WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite,TCP/IP)、用户数据报协议(User Datagram Protocol,UDP)协议的计算机网络通信等。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多的终端设备或监控设备,例如图1中仅示出1个服务器和2个监控设备,可以理解的,该视频流解码系统还可以包括一个或多个其他服务器,或/且一个或多个与服务器网络连接的监控设备,具体此处不作限定。
另外,如图1所示,该视频流解码系统中的终端设备102中的存储器用于存储数据,如解码视频数据,或监控视频数据,以便后续需要时查看,存储器可以包括系统内存,共享内存和磁盘中至少一种。
其中,系统内存是ram的同义词,是随机存取存储器(random-access memory)的缩写,它是系统临时存储程序指令和数据的主要区域,ram中的每个位置均由一个称为内存地址的号码标识,关闭终端设备系统后,ram中保存的任何数据均会丢失。系统内存由物理内存以及虚拟内存构成,当物理内存在运行时不够用,系统会创建虚拟内存,虚拟内存一般为物理内存的1.5~3倍。
磁盘(disk)是指利用磁记录技术存储数据的存储器,磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(soft disk,简称软盘),如今常用的磁盘是硬磁盘(hard disk,简称硬盘),本发明实施例中所指的磁盘可以是软盘或/且硬盘。
共享内存指(shared memory)在终端设备中,可以被不同中央处理器(CPU)访问的大容量内存,由于CPU需要快速访问磁盘,这样就要对磁盘进行缓存(Cache),任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。
需要说明的是,图1所示的视频流解码系统的场景示意图仅仅是一个示例,本发明实施例描述的视频流解码系统以及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着视频流解码系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
下面结合具体实施例进行详细说明。
在本实施例中,将从视频流解码装置的角度进行描述,该视频流解码装置具体可以集成在终端设备中,该终端设备中包括中央处理器和图形处理器,本发明实施例中视频流解码方法由中央处理器执行。
本发明提供一种视频流解码方法,该方法包括:获取监控设备输入的多路视频流;在图形处理器对应的线程池,创建多个线程;根据多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。
请参阅图2,图2是本发明实施例中提供的视频流解码方法的一个实施例流程示意图,该视频流解码方法包括:
201、获取监控设备输入的多路视频流。
本发明实施例中,监控设备可以指的是如图1中所示的监控设备101,监控设备可以监控拍摄视频图像,具体的,监控设备可以是监控摄像头,其中,监控设备可以是一个监控设备,也可以是多个监控设备,每个监控设备对应传输一路视频流,监控设备可直接将拍摄获取的视频通过视频文件的方式以视频流传输至终端设备。在一个示例中,终端设备可与监控设备通过有线或无线等方式建立连接,以接收监控设备拍摄的视频流。终端设备可通过Rtsp协议、GB/T28181协议或第三方软件开发工具包(Software Development Kit,SDK)等来获取来自监控设备的视频流。
另外,监控设备拍摄的视频图像可以封装成不同的格式,形成视频流传输到终端设备,例如,多媒体容器(Multimedia Container,MKV)格式或流媒体格式(Flash Video,FLV),可以理解的,还可以是其他视频格式,例如mp4格式、rmvb格式等,具体此处不作限定。
需要说明的是,获取监控设备输入的视频流数据可以包括:获取监控设备输入的原始视频流,对原始视频流经过解析处理后,获取监控设备输入的视频流数据,此时该监控设备输入的视频流数据是以数据包的形式存储,同理,后续提到的,解码后的视频流数据可以是以解码后的数据形式存储,一般情况下,经过解码处理后的视频流会以图像帧的形式存储。
202、在图形处理器对应的线程池,创建多个线程。
图像处理器(Graphics Processing Unit,GPU),又称显示核心,是一种专门在个人电脑、工作站、游戏机和一些移动设备上图像运算工作的微处理器。可以用于将计算机系统所需要显示信息进行转换驱动,并向显示器提供扫描信号,控制显示器的正确显示。本发明实施例中,终端设备中包括GPU,由于GPU的浮点运算能力远远强于CPU,另一方面,目前的监控设备一般配置较低,CPU处理能力低,因此本发明实施例中将视频流传输给GPU,由GPU来处理视频流的解码工作,能够极大的降低CPU的负担,提升视频编解码的工作效率。
在本发明实施例中,终端设备中可以设置多个GPU,具体GPU的数量此处不作限定。此时,将视频流传输给图形处理器可以随机分配给该多个GPU,例如监控设备输入的视频流有10路,终端设备中有2个GPU,可以随机分配10路中的3路给1个GPU,另7路分配给另一个GPU,当然,将视频流传输给图形处理器也可以平均分配给该多个GPU,例如监控设备输入的视频流有10路,终端设备中有2个GPU,可以各分5路视频流给两个GPU。
在本发明另一些实施例中,当终端设备中包括多个GPU时,还可以预先设置相应的动态负载均衡规则,此时,将视频流传输给图形处理器还可以是:终端设备在接收到多路视频流后可以依据预先设置的动态负载均衡规则,向多个GPU分配监控设备输入的视频流。动态负载均衡规则可以用于保证该多个GPU中每个GPU都被均衡的使用。
在该动态负载均衡规则中,可以设置首次分配时向每个GPU分配的视频流的路数,例如,首次分配时,可以向每个GPU分配20路视频流。对于不同的视频流,GPU完成编解码的时间不尽相同,对于后续分配视频流时,动态负载均衡规则可以是根据每个GPU的处理情况,进行动态的分配,例如,在终端设备中安装有3个GPU,分别为GPU1、GPU2和GPU3,首次分配时向每个GPU分配了20路视频流,GPU1可能最先处理好分配的20路视频流,此时依据该动态负载均衡规则,可以向GPU1再分配20路视频流。
在对硬件资源的调用时,引入了互斥锁的概念,来保证共享数据操作的完整性,每个硬件对象都对应于一个可称为"互斥锁"的标记,这个标记用来保证在任一时刻,只能有一个线程访问该硬件对象。因此,针对上述在终端设备上设置多个GPU的情况,在向GPU分配视频流时,为了避免各个GPU之间产生相互影响,可以对于每个GPU设置对应的一个互斥锁,该互斥锁用于保证同一时刻只为一个GPU分配多路视频流。考虑到一个GPU对应的线程池中可以包含有多个线程,为了避免各个线程之间产生相互影响,可以为每个线程设置相对应的互斥锁,该互斥锁用于保证同一时刻只有一个线程调用GPU。
当终端设备中设置多个GPU时,对于每个GPU而言,可以依据用户输入的线程个数信息,在GPU对应的线程池中设置多个线程;对接收到的多路视频流进行解析处理,并利用多个线程调用GPU对解析处理后的多路视频流进行编解码处理。可见,一个线程通过调用GPU可以实现对解析后一路视频流的编解码处理,一个GPU对应的可以设置多个线程,即该多个线程可以同时调用GPU对解析后的视频流进行处理,从而实现一个GPU对多路视频流的并行处理,有效的提升了视频编解码的工作效率。
本发明实施例中,终端设备中包括至少一个GPU,每个GPU对应有一个线程池,每个线程池可以设置有至少一个线程,一个线程池中设置有几个线程,对应的便可以同时对几路视频流进行处理。
线程可以理解为是调用GPU实现编解码的接口信息,利用该线程便可以调用GPU实现是对视频流的编解码。线程池可以用于存储线程,一个线程池中存储的线程的个数可以根据用户的要求进行设置,其中,线程池中包括的线程的个数可以由用户通过相关的界面输入到终端设备中,此时,在图形处理器对应的线程池,创建多个线程,具体可以包括:获取用户输入的线程个数信息;根据线程个数信息,在图形处理器对应的线程池中创建多个线程,该线程个数的具体数值可以依据于一个GPU的处理能力确定,例如,一个GPU的运算能力,可以同时对10路视频流进行处理,则用户可以将线程池中的线程个数设置为10个,超过10个的用户设置的线程个数,例如20个,可以被禁止。需要说明的是,每个GPU对应的线程池包含的线程的个数可以相同,也可以不同,在此不做限定。
另外,在图形处理器对应的线程池,创建多个线程,该多个线程是包括终端设备中所有GPU对应的线程池中创建的线程,例如当终端设备中包括第一图形处理器和第二图形处理器时,在图形处理器对应的线程池,创建多个线程可以包括:在第一图形处理器对应的线程池,创建第一线程,在第二图形处理器对应的线程池,创建第二线程,该多个线程即包括该第一线程和第二线程,该第一线程可以包括至少一个线程,和/或,该第二线程中包括至少一个线程。
例如,终端设备中包括2个GPU:GPU1和GPU2,在GPU1对应的线程池中创建5个线程,在GPU2对应的线程池中创建10个线程,则在终端设备图形处理器对应的线程池,创建多个线程即可以包括15个线程。
需要说明的是,当终端设备中包括多个GPU时,在图形处理器对应的线程池,创建多个线程时,该多个线程是在哪个GPU中创建可以根据实际情况进行设定,例如可以安排其中一个或多个GPU专门处理监控设备输入的视频流的解码,安排其他的一个或多个GPU负责其他图像的处理。
在本发明其他一个可能的实施方式中,可以根据监控设备输入的视频流的视频路数来确定创建线程的数量,具体的,在图形处理器对应的线程池,创建多个线程,可以包括:获取监控设备输入的视频流的视频路数;在图形处理器对应的线程池,创建与视频路数的数量相同的线程,得到多个线程。可以理解的是,终端设备中GPU的处理能力始终是有限的,当监控设备输入的视频流的路数超过终端设备中GPU对应的线程池中可以创建的线程的最大数量(当终端设备包括多个GPU时,该最大数量为多个GPU可以创建的线程的最大数量之和)时,该多个线程可以是该终端设备中GPU对应的线程池中可以创建的线程的最大数量,即终端设备可以仅接收该最大数量的路数的视频流。
203、根据该多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。
在本发明一些实施例中,根据多个线程,将多路视频流传输给所述图形处理器进行视频解码处理,得到多路解码视频数据具体可以包括:为多路视频流中每一路视频流,在多个线程中一一对应分配一个线程;分别以多个线程中的线程为目标线程,利用目标线程将目标视频流输入图形处理器,目标路视频流为多路视频流中与目标线程对应的一路视频流;此时,通过图形处理器向所述存储器输出多路解码视频数据,包括:通过图形处理器对目标路视频流进行解码处理,得到目标解码视频数据。
当终端设备中有多个GPU时,利用目标线程调用图形处理器,此处的图形处理器为目标线程对应的图形处理器,即目标线程为图形处理器对应的线程池中的线程。
通过线程调用GPU对视频流进行编解码处理时,以多线程为例,每个线程对应的是监控设备输入的一路视频流,在具体实现中,线程在调用GPU对视频流解码处理时,为了提升解码的工作效率,会将视频流进行解析处理,经过处理后的视频流相当于被切分成更小的组成单元,例如以数据包的形式存在,也即一路视频流可以包含至少一个数据包。GPU对多路视频流进行解码的处理时,每路视频流被切分成至少一个数据包,为了便于管理每路视频流对应的数据包,可以针对每个线程设置对应的缓冲区,具体的,可以在GPU上设置每个线程相对应的第一缓冲区和第二缓冲区;第一缓冲区可以用于存储待解码的视频流数据;第二缓冲区可以用于存储解码后的视频流数据。
由于监控设备一般拍摄的视频流,在有的场景下,会出现连续长时间的无目标的图像帧,例如夜晚无人的场景,这种场景下的视频图像是没有太大意义的图像,大量解码一方面对终端设备的负荷很大,另一方面解码后的存储也会占用大量的存储空间。因此本发明实施例中可以对视频流中的每帧图像进行跳帧判断,以提高解码效率。
具体的,上述描述的利用目标线程调用图形处理器,对目标路视频流进行解码处理,得到目标解码视频数据的步骤可以包括:依次以目标路视频流中每帧图像为目标图像,在对目标图像进行解码后,判断目标图像是否需要跳帧;若是,舍弃该目标图像。
其中,判断目标图像是否需要跳帧可以包括:检测目标图像中是否包含预设类型的对象;当目标图像中不包含预设类型的对象时,确定目标图像需要跳帧。预设类型的对象可以根据具体场景需要设定,例如,对于监控设备来说,其拍摄的视频中的图像,可以根据监控设备需要监控的对象来确定,可以是人或车辆。例如,监控设备是为了监控人流,则该预设类型的对象可以是人,若该监控设备是为了监控车辆,则预设类型的对象可以是车辆,当然,上面仅仅是举例,在实际应用中,预设类型的对象可以包括一种或多种对象,除了上述人、车辆等对象外,还可以包括动物、飞机等各种活动物体。另外,检测目标图像中的对象(如车辆或人等)为本领域常用技术手段,具体可以参考现有技术,此处不再赘述。
本发明实施例中,对于监控设备输入的每路视频流,可以做轮询检查,当发现某一路视频流解码结束时,可以检测该路视频流是否需要重播,以确定视频流解码是否异常。对于异常的视频流解码可以进行重播,重新进行解码。具体的,即本发明实施例中视频流解码方法中还包括:当目标路视频流解码结束时,判断目标路视频流是否需要重播;若是,重启目标线程,重新利用目标线程调用图形处理器,对目标路视频流进行解码处理,得到目标解码视频数据;若否,回收目标线程,由于终端设备系统中GPU对应的线程池中的线程资源是有限的,表现为能同时运行的线程数是有限的。而默认的条件下,一个线程结束后,其对应的GPU资源不会被释放,于是,如果在一个程序中,反复建立线程,而线程又默认的退出,则最终线程资源耗尽,GPU对应的线程池中将不再能建立新的线程,因此合理的回收线程,可以及时恢复终端设备的解码视频流的能力,这样可以提高解码的有效率。
目前,对视频流进行编码的方式有多种,每种编码方式有其对应的解码方式。在对视频流进行解码时,需要知道该视频流采用的是哪种编码方式,以及视频流的分辨率、颜色和大小等因素,GPU无法自动识别这些参数信息,故此,本发明实施例中,线程在调用GPU进行解码处理之前,需要获取这些参数信息(与编码参数信息对应的解码参数信息),即解码规则,参数信息可以包括:解码格式、分辨率、颜色和大小等。编解码的主要作用是对视频流进行压缩和解压缩,解码格式可以用于表示视频流采用何种方式进行解压缩。将这些参数信息按照一定的格式要求进行整理,得到解码规则,解码规则可以用于表示对视频流进行解码的要求。
本发明实施例中,依据该预先获取的解码规则,便可以设置视频解码库的相关架构,如统一计算设备架构(Compute Unified Device Architecture,CUDA或CUVID架构,从而使得GPU可以实现对监控设备输入的视频流数据包的解码处理。在具体实现中,对监控设备输入的视频流数据包进行解码处理时,涉及三个回调函数(callback function),分别为格式变更回调函数(format change callback)、解码回调函数(decode callback)和显示回调函数(display callback),格式变更回调函数主要用于当视频流的格式发生变化时被调用,对于一些网络突发状况,可能会导致视频流的格式发生变化,对于该种情况,可以调用该格式变更回调函数,将改变的视频流的格式变为原来的格式。解码回调函数可以用于对数据包的解码,解码后的数据包可以以帧的形式存在,显示回调函数可以用于帧的显示或存储。
需要说明的是,本发明实施例中,在GPU支持对监控设备输入的视频流进行解码时,GPU可使用基于CUDA构架的CUVID视频解码库对监控设备输入的视频流进行解码,本发明实施例中对GPU使用的解码构架不做限制。
在一种可能的实现方式中,监控设备输入的视频流的格式可以为H.264格式,GPU对监控设备输入的视频流进行解码处理后,获得的解码视频数据的格式可以为NV12格式。本发明实施例中,通过GPU对监控设备输入的视频流进行解码处理,得到解码视频数据的过程中,还可以包括格式转换的过程,例如,通过GPU对监控设备输入的视频流进行解码处理,得到解码视频数据可以包括:通过GPU对监控设备输入的视频流进行解码处理,得到第一解码视频数据,对第一解码视频数据进行格式转换处理,得到第二解码视频数据。例如,监控设备输入的视频流的格式为H.264格式,第一解码视频数据为NV12格式,对第一解码视频数据的格式进行格式转换处理,即将NV12格式的第一解码视频数据进行格式转换,获得RGB24格式的第二解码视频数据。在示例中,GPU可使用CUDA构架对第一解码视频数据进行格式转换,本发明实施例中对GPU使用的格式转换方式不做限制。当监控设备输入的视频流包括多路时,GPU对多路不同的视频流进行解码时,该格式转换过程可以不同,例如分别转换为不同的格式,这样可以实现多格式,不同颜色空间的输出视频图像帧至系统内存、共享内存和磁盘文件等存储器。
在一种可能的实现方式中,GPU在对第二解码视频数据进行格式转换处理后,还可对第二解码视频数据进行缩放处理,以获得合适尺寸的解码数据。此时通过GPU对监控设备输入的视频流进行解码处理,得到解码视频数据还可以包括:对第二解码视频数据进行缩放处理,得到第三解码视频数据。需要说明的是,当监控设备输入的视频流包括多路时,GPU对多路不同的视频流进行解码时,该缩放处理对应的参数可以不相同,这样可以实现多尺寸的输出视频图像帧至系统内存、共享内存和磁盘文件等存储器。
在一种可能的实现方式中,本发明实施例视频流解码装置中还设置帧率控制器,可以接收用户设置的解码帧率信息,根据该解码帧率信息控制图形处理器对视频流进行解码处理的速度,例如,20帧/s等。可以理解的,当监控设备输入的视频流包括多路视频流时,可以分别设置每路视频流对应的解码帧率信息,例如,第一路视频流解码帧率为20帧/s,第二路视频流解码帧率为30帧/s等,具体此处不作限定。
具体的,图形处理器接收到监控设备输入的多路视频流之后,可以对多路视频流进行并行解码处理,得到解码视频数据。由于GPU一般情况下不会支持所有格式的视频流的解码,因此本发明实施例中,可以对GPU是否支持当前视频流解码进行判断。
具体的,在一种可能的实现方式中,中央处理器可获取GPU的性能参数,并根据GPU的性能参数以及当前接收的视频流(即监控设备输入的视频流)的格式来判断GPU是否支持对当前接收的视频流进行硬解码。例如,监控设备输入的视频流的格式为H.264格式,视频流解码装置可获取GPU的性能参数,并根据GPU的性能参数确定GPU能够支持对该格式的视频流进行硬解码,则确定GPU支持该格式的硬解码,后续可以对监控设备输入的视频流进行解码处理,得到解码视频数据。
本发明实施例中,终端设备中的中央处理器(Central Processing Unit,CPU),CPU是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(ControlUnit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus),它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。
目前,一种可行的方式,视频解码可以由中央处理器(CPU,Central ProcessingUnit)一手包办的,但是由于CPU的编解码能力有限,所以在解码视频流时相当吃力。所以本发明实施例中优选通过图形处理器对监控设备输入的视频流进行解码处理,得到解码视频数据。
在一种可能的实现方式中,如果视频流解码装置判断GPU不支持监控设备输入的视频流进行硬解码处理,则可由终端设备中CPU对监控设备输入的视频流进行解码,并将解码处理后的解码视频数据发送至GPU。在示例中,CPU可使用FFMPGE(Fast Forward Mpeg)对监控设备输入的视频流进行解码处理,FFMPGE是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。通过这种方式,对于GPU支持解码的视频格式,优选GPU进行解码,对于GPU不支持解码的视频格式,使用CPU进行解码,一方面,可以大大提高GPU的使用率,以及提高解码效率,另一方面能够节省CPU资源,提升CPU处理其他业务的效率。
本发明实施例中,终端设备的存储器可以包括一个或多个不同类型的存储器,具体的,终端设备的存储器可以包括多个存储器,例如终端设备中系统内存、共享内存和磁盘文件等。此时,所述视频流解码方法还包括:获取多路解码视频数据分别对应的存储器;通过所述图形处理器,向所述存储器输出所述多路解码视频数据。
本发明实施例中多路解码视频数据中可以包括第一解码视频数据和第二解码视频数据,此时,获取多路解码视频数据分别对应的存储器,包括:获取第一解码视频数据对应的第一存储器;获取第二解码视频数据对应的第二存储器;该通过所述图形处理器,向所述存储器输出所述多路解码视频数据的步骤可以包括:通过图形处理器,向第一存储器输出第一解码视频数据,向第二存储器输出第二解码视频数据,第一存储器和第二存储器为终端设备中不同的存储器。这样既可以通过GPU解码多路视频流,并分流输出到不同的存储器,进而更好地支持实际应用场景中需要将视频流对应的图像帧数据输出到GPU之外的存储介质上,如系统内存、共享内存和磁盘。
其中,第一解码视频数据可以包括至少一路视频流对应的解码视频数据,第二解码视频数据也可以包括至少一路视频流对应的解码视频数据,在本发明一些实施例中,第一解码视频数据和第二解码视频数据组成多路解码视频数据,即该多路视频流分为第一视频流和第二视频流,该多路解码视频数据分为第一解码视频数据和第二解码视频数据,例如多路视频流有10路视频流,其中第一视频流包括5路视频流,第二视频流包括5路视频流,对第一视频流中5路视频流的第一解码视频数据输出到第一存储器,对第二视频流中5路视频流的第二解码视频数据可以输出到第二存储器。
在本发明另一些实施例中,第一解码视频数据和第二解码视频数据可以是该多路解码视频数据的一部分,例如,多路视频流有10路视频流,其中第一视频流包括5路视频流,第二视频流包括2路视频流,该多路视频流中除第一视频流和第二视频流之外还有其他的视频流。在一个具体实施例中,该多路视频流中还包括第三视频流,即该多路解码视频数据中还包括第三解码视频数据,此时获取多路解码视频数据分别对应的存储器,还包括:获取第三解码视频数据对应的第三存储器;此时,通过图形处理器,向所述存储器输出所述解码视频数据,包括:通过图形处理器,向第三存储器输出第三解码视频数据。
计算机最重要的功能单元之一是Memory,Memory是众多存储器的集合,为了使CPU准确地找到存储有某个信息的存储器,必须为这些单元分配一个相互区别的“身份证号”,这个“身份证号”就是地址编码。在嵌入式处理器内,集成了多种类型的Memory,通常,称同一类型的Memory为一个Memory Block。一般情况下,处理器设计者会为每一个MemoryBlock分配一个数值连续、数目与其存储器数相等、以16进制表示的自然数集合作为该Memory Block的地址编码。这种自然数集合与Memory Block的对应关系,就是Memory Map(存储器映射),有时也叫Address Map(地址映射)。实际上,Address Map在字面意义上更加贴切。Memory Map是计算机系统(上电)复位时的预备动作,是一个将处理器所拥有的地址编码资源向系统内各个物理存储器块分配的自动过程。
本发明实施例中,可以利用图形处理器通过GPU COPY技术和Memory Map(存储器映射)的方式向存储器输出解码视频数据,具体的,即将现有技术中存储器映射的工作交由GPU的执行单元(Execution Unit,EU)单元完成。其中,EU是GPU处理器中的执行单元,它负责指令的执行,实际是既有控制器的功能,也有运算器的功能。
在一个具体实施方式中,通过图形处理器,向存储器输出多路解码视频数据即包括:通过图形处理器,获取多路解码视频数据对应的存储器的地址编码;通过所述图形处理器,根据该存储器的地址编码进行存储器映射,确定多路解码视频数据对应的目标存储器,通过图形处理器,向目标存储器输出多路解码视频数据。
本发明实施例中通过获取监控设备输入的多路视频流;在图形处理器对应的线程池,创建多个线程;根据该多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。本发明实施例中在GPU对应的线程池创建多个线程,从而利用GPU替代CPU完成多路并行解码视频流数据的工作,大大降低了整个设备的能耗,提升了视频解码效率和GPU设备利用率,降低了对CPU的依赖,可以广泛应用在终端设备CPU处理能力不强的视频流解码场景中。
如图3所示,下面结合一具体应用场景对本发明实施例中视频流解码方法进行描述。
301、获取监控设备输入的10路视频流。
本实施例中,终端设备包括CPU、GPU和存储器,存储器包括共享内存和系统内存,与终端设备连接的监控设备可以是10个,每个监控设备传输一路监控视频对应的视频流。
302、将10路视频流传输给终端设备的GPU。
本实施例中,以终端设备中仅包括一个GPU为例,该GPU对应的线程池中可以设置20个线程,表示该GPU最多支持20路视频流处理,GPU处理能力大于视频流路数,此时,可以直接将10路视频流传输给该终端设备的GPU。
303、在GPU对应的线程池,创建10个线程。
本实施例中,在GPU对应的线程池,创建10个线程的步骤可以是获取用户输入的线程个数信息(10个);根据线程个数信息(10个),在GPU对应的线程池中创建10个线程。在GPU对应的线程池,创建10个线程的步骤也可以是:获取10个监控视频输入的视频流的视频路数(10路);在GPU对应的线程池,创建与视频路数的数量相同的线程,得到10个线程。
304、为10路视频流中每一路视频流,在10个线程中一一对应分配一个线程。
305、利用10个线程调用GPU,分别对10路视频流进行并行解码处理,得到10路解码视频数据。
终端设备中设置帧率控制器,可以接收用户设置的解码帧率信息,根据该解码帧率信息控制GPU对每路视频流进行解码处理的速度,例如,20帧/s等。当然,这10路视频流的解码帧率可以分别设置,例如,第一路视频流解码帧率为20帧/s,第二路视频流解码帧率为30帧/s等。
306、通过GPU向终端设备系统内存输出5路解码视频数据,向终端设备的共享内存输出5路解码视频数据。
本实施例中,假设终端设备存储器包括系统内存和共享内存,该10路视频流是分别输出到系统内存和共享内存的,其中,5路解码视频数据输出到系统内存,5路解码视频数据输出到共享内存,因此,通过GPU向终端设备系统内存可直接输出5路解码视频数据,向终端设备的共享内存输出5路解码视频数据。
本实施例中通过获取监控设备输入的10路视频流;将10路视频流传输给终端设备的GPU;通过终端设备的GPU对10路视频流进行解码处理,得到10路解码视频数据;通过GPU分别向终端设备的系统内存和共享内存输出解码视频数据。本实施例中利用GPU替代CPU完成解码视频流数据的工作,大大降低了整个设备的能耗,提升了视频解码效率和GPU设备利用率,同时直接将解码数据从GPU输出到系统内存,进一步降低了对CPU的依赖,更好地支持实际应用场景中需要将帧数据输出到GPU之外的存储介质上,可以满足更多的应用场景。
为便于更好的实施本发明实施例提供的视频流解码方法,本发明实施例还提供一种基于上述视频流解码方法的装置。其中名词的含义与上述视频流解码方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图4,图4为本发明实施例提供的视频流解码装置的结构示意图,视频流解码装置应用于终端设备,该终端设备包括图形处理器和存储器,该视频流解码装置400包括获取单元401、创建单元402和解码单元403,具体如下:
获取单元401,用于获取监控设备输入的多路视频流;
创建单元402,用于在所述图形处理器对应的线程池,创建多个线程;
解码单元403,用于根据所述多个线程,将所述多路视频流传输给所述图形处理器进行视频解码处理,得到多路解码视频数据。
在本申请一些实施例中,所述创建单元402具体用于:
获取输入的线程个数;
根据所述线程个数,在所述图形处理器对应的线程池中创建所述多个线程,所述多个线程的个数等于所述线程个数。
在本申请一些实施例中,所述创建单元402具体用于:
通过所述中央处理器获取所述多路视频流的视频路数;
在所述图形处理器对应的线程池,创建与所述视频路数的数量相同的线程。
在本申请一些实施例中,所述解码单元403具体用于:
为所述多路视频流中每一路视频流,在所述多个线程中一一对应分配一个线程;
分别以所述多个线程中的线程为目标线程,利用所述目标线程将目标视频流输入所述图形处理器,所述目标路视频流为所述多路视频流中与所述目标线程对应的一路视频流;
通过所述图形处理器对目标路视频流进行解码处理,得到目标解码视频数据。
在本申请一些实施例中,所述解码单元403具体用于:
依次以所述目标路视频流中每帧图像为目标图像,通过所述图形处理器对所述目标图像进行解码处理,在对所述目标图像进行解码处理后,检测所述目标图像中是否包含预设类型的对象;
当所述目标图像中不包含预设类型的对象时,确定所述目标图像需要跳帧。
在本申请一些实施例中,所述解码单元403具体用于:
当所述目标路视频流解码结束时,判断所述目标路视频流是否需要重播;
若是,重启所述目标线程,重新利用所述目标线程将所述目标视频流输入所述图形处理器,通过所述图形处理器,对所述目标路视频流进行解码处理,得到目标解码视频数据;
若否,回收所述目标线程。
在本申请一些实施例中,所述终端设备还包括存储器,所述装置还包括输出单元,所述输出单元用于:
获取所述多路解码视频数据分别对应的存储器;
通过所述图形处理器,向所述存储器输出所述多路解码视频数据。
在本申请一些实施例中,所述多路解码视频数据中包括第一解码视频数据和第二解码视频数据,所述输出单元具体用于:获取所述第一解码视频数据对应的第一存储器,获取所述第二解码视频数据对应的第二存储器;通过所述图形处理器,向所述第一存储器输出所述第一解码视频数据,向所述第二存储器输出所述第二解码视频数据。
在本申请一些实施例中,所述第一解码视频数据和所述第二解码视频数据组成所述多路解码视频数据。
在本申请一些实施例中,所述多路解码视频数据中还包括第三解码视频数据,所述输出单元具体用于:获取所述第三解码视频数据对应的第三存储器;通过所述图形处理器,向所述第三存储器输出所述第三解码视频数据。
在本申请一些实施例中,所述存储器包括系统内存、共享内存和磁盘中的至少一种。
在本申请一些实施例中,所述输出单元具体用于:
通过所述图形处理器,获取多路解码视频数据对应的存储器的地址编码;
通过所述图形处理器,根据所述地址编码进行存储器映射,确定所述多路解码视频数据对应的目标存储器;
通过所述图形处理器,向所述目标存储器输出多路解码视频数据。
本发明实施例中通过获取单元401获取监控设备输入的多路视频流;创建单元402在图形处理器对应的线程池,创建多个线程;解码单元403根据该多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。本发明实施例中在GPU对应的线程池创建多个线程,从而利用GPU替代CPU完成多路并行解码视频流数据的工作,大大降低了整个设备的能耗,提升了视频解码效率和GPU设备利用率,降低了对CPU的依赖,可以广泛应用在终端设备CPU处理能力不强的视频流解码场景中。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
如图5所示,为本发明实施例中视频流解码装置的另一个实施例结构示意图,该视频流解码装置500包括管控模块501和解码模块502,具体如下:
管控模块501,用于获取监控设备输入的视频流;将视频流传输给所述图形处理器;
解码模块502,用于通过图形处理器对视频流进行解码处理,得到解码视频数据;通过图形处理器向存储器输出所述解码视频数据。
其中,管控模块501和解码模块502中还可以包括更多的模块,例如图5中,管控模块501中可以包括参数管理模块、线程管理模块、状态检查模块、重连控制模块。其中,参数管理模块用于管理解码规则及解码相关的参数(例如颜色空间、输出帧尺寸等),线程管理模块用于管理GPU对应的线程池中的线程,状态检查模块用于检测当前解码状态等,重连控制模块用于检测目标视频流是否需要重新解码重播,避免解码异常的情况。同样的,解码模块502也可以包括参数管理器、视频连接器、解码跳帧控制器、解码帧率控制器、输出帧选择器等模块。其中,参数管理器用于获取管控模块501中参数管理模块中管理解码规则及解码相关的参数,视频连接器用于连接监控设备,获取监控设备输入的多路视频流,解码跳帧控制器用于在对视频流解码过程中,判断当前图像帧是否需要跳帧,例如上述实施例中描述的通过检测图像中是否包含预设类型的对象,以确定图像是否需要跳帧;解码帧率控制器用于设置解码帧率,通过控制解码帧率控制对视频流的解码速率;输出帧选择器用于对输出的解码数据的图像帧进行筛选,例如输出帧选择器中设置筛选对象为“车”,则对于解码数据中包括“车”的图像帧进行筛选后进行输出。
需要说明的是,本实施例中管控模块501可以仅设置一个,而解码模块502可以设置多个,解码模块502设置的个数可以与视频流输入的视频路数对应,例如输入10路视频流,则解码模块502可以对应设置10个。
本发明实施例还提供一种终端设备,包括中央处理器、图形处理器和存储器,所述存储器中储存有第一计算机程序和第二计算机程序,第一计算机程序被中央处理器执行时,使得中央处理器执行以下步骤:获取监控设备输入的多路视频流;在图形处理器对应的线程池,创建多个线程根据多个线程,将多路视频流传输给图形处理器;
第二计算机程序被图形处理器执行时,使得图形处理器执行以下步骤:对所述多路视频流进行并行解码处理,得到多路解码视频数据。
如图6所示,其示出了本发明实施例所涉及的终端设备的结构示意图,具体来讲:
该终端设备可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、电源603和输入单元604等部件。本领域技术人员可以理解,图6中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行终端设备的各种功能和处理数据。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作存储介质、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作存储介质、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
终端设备还包括给各个部件供电的电源603,优选的,电源603可以通过电源管理存储介质与处理器601逻辑相连,从而通过电源管理存储介质实现管理充电、放电、以及功耗管理等功能。电源603还可以包括一个或一个以上的直流或交流电源、再充电存储介质、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该终端设备还可包括输入单元604,该输入单元604可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,终端设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,终端设备中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:
获取监控设备输入的多路视频流;在图形处理器对应的线程池,创建多个线程;根据该多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种视频流解码方法中的步骤。例如,该指令可以执行如下步骤:
获取监控设备输入的多路视频流;在图形处理器对应的线程池,创建多个线程;根据该多个线程,将多路视频流传输给图形处理器进行视频解码处理,得到多路解码视频数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种视频流解码方法中的步骤,因此,可以实现本发明实施例所提供的任一种视频流解码方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种视频流解码方法、装置、终端设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种视频流解码方法,其特征在于,应用于终端设备,所述终端设备包括中央处理器、图形处理器和存储器,所述视频流解码方法由所述中央处理器执行,所述视频流解码方法包括:
获取监控设备输入的多路视频流以及所述图形处理器的性能参数;
当所述性能参数与所述多路视频流的格式匹配时,获取所述多路视频流的视频路数;
在所述图形处理器对应的线程池,创建与所述视频路数的数量相同的线程;
为所述多路视频流中每一路视频流,在所述多个线程中一一对应分配一个线程;
分别以所述多个线程中的线程为目标线程,利用所述目标线程将目标视频流输入所述图形处理器,所述目标路视频流为所述多路视频流中与所述目标线程对应的一路视频流;
通过所述图形处理器对目标路视频流进行解码处理,当所述目标路视频流解码结束时,判断所述目标路视频流是否需要重播;
若是,重启所述目标线程,重新利用所述目标线程将所述目标视频流输入所述图形处理器,通过所述图形处理器,对所述目标路视频流进行解码处理,得到目标解码视频数据;
若否,回收所述目标线程,得到目标解码视频数据;
当所述性能参数与所述多路视频流的格式不匹配时,采用视频解码程序对所述多路视频流进行解码处理,得到目标解码视频数据,并将所述目标解码视频数据发送至图形处理器;
通过所述图形处理器,对所述目标解码视频数据进行缩放处理,得到多路解码视频数据,获取所述多路解码视频数据分别对应的存储器;
通过所述图形处理器,获取多路解码视频数据对应的存储器的地址编码;
通过所述图形处理器的执行单元,根据所述地址编码进行存储器映射,确定所述多路解码视频数据对应的目标存储器;
通过所述图形处理器,将所述图形处理器中的多路解码视频数据输出到所述目标存储器中。
2.根据权利要求1所述的视频流解码方法,其特征在于,所述通过所述图形处理器对目标路视频流进行解码处理,得到目标解码视频数据,包括:
依次以所述目标路视频流中每帧图像为目标图像,通过所述图形处理器对所述目标图像进行解码处理,在对所述目标图像进行解码处理后,检测所述目标图像中是否包含预设类型的对象;
当所述目标图像中不包含预设类型的对象时,确定所述目标图像需要跳帧。
3.根据权利要求1中所述的视频流解码方法,其特征在于,所述多路解码视频数据中包括第一解码视频数据和第二解码视频数据,所述获取所述多路解码视频数据分别对应的存储器,包括:获取所述第一解码视频数据对应的第一存储器;获取所述第二解码视频数据对应的第二存储器;
所述通过所述图形处理器,向所述存储器输出所述多路解码视频数据,包括:通过所述图形处理器,向所述第一存储器输出所述第一解码视频数据,向所述第二存储器输出所述第二解码视频数据。
4.根据权利要求3所述的视频流解码方法,其特征在于,所述第一解码视频数据和所述第二解码视频数据组成所述多路解码视频数据。
5.根据权利要求3所述的视频流解码方法,其特征在于,所述多路解码视频数据中还包括第三解码视频数据,所述获取所述多路解码视频数据分别对应的存储器,还包括:获取所述第三解码视频数据对应的第三存储器;
所述通过所述图形处理器,向所述存储器输出所述多路解码视频数据,还包括:通过所述图形处理器,向所述第三存储器输出所述第三解码视频数据。
6.根据权利要求1所述的视频流解码方法,其特征在于,所述存储器包括系统内存、共享内存和磁盘中的至少一种。
7.一种视频流解码装置,其特征在于,应用于终端设备,所述终端设备包括中央处理器和图形处理器,所述视频流解码装置包括:
获取单元,用于获取监控设备输入的多路视频流以及所述图形处理器的性能参数;
创建单元,用于当所述性能参数与所述多路视频流的格式匹配时,获取所述多路视频流的视频路数,在所述图形处理器对应的线程池,创建与所述视频路数的数量相同的线程,为所述多路视频流中每一路视频流,在所述多个线程中一一对应分配一个线程,分别以所述多个线程中的线程为目标线程,利用所述目标线程将目标视频流输入所述图形处理器,所述目标路视频流为所述多路视频流中与所述目标线程对应的一路视频流;
解码单元,用于通过所述图形处理器对目标路视频流进行解码处理,当所述目标路视频流解码结束时,判断所述目标路视频流是否需要重播,若是,重启所述目标线程,重新利用所述目标线程将所述目标视频流输入所述图形处理器,通过所述图形处理器,对所述目标路视频流进行解码处理,得到目标解码视频数据,若否,回收所述目标线程,得到目标解码视频数据,当所述性能参数与所述多路视频流的格式不匹配时,采用视频解码程序对所述多路视频流进行解码处理,得到目标解码视频数据,并将所述目标解码视频数据发送至图形处理器,通过所述图形处理器,对所述目标解码视频数据进行缩放处理,得到多路解码视频数据,获取所述多路解码视频数据分别对应的存储器,通过所述图形处理器,获取多路解码视频数据对应的存储器的地址编码,通过所述图形处理器的执行单元,根据所述地址编码进行存储器映射,确定所述多路解码视频数据对应的目标存储器,通过所述图形处理器,将所述图形处理器中的多路解码视频数据输出到所述目标存储器中。
8.一种终端设备,其特征在于,包括中央处理器、图形处理器和存储器,所述存储器中储存有第一计算机程序和第二计算机程序,所述第一计算机程序被所述中央处理器执行时,使得所述中央处理器执行以下步骤:
获取监控设备输入的多路视频流以及所述图形处理器的性能参数;
当所述性能参数与所述多路视频流的格式不匹配时,采用视频解码程序对所述多路视频流进行解码处理,得到目标解码视频数据,并将所述目标解码视频数据发送至图形处理器;
当所述性能参数与所述多路视频流的格式匹配时,获取所述多路视频流的视频路数,在所述图形处理器对应的线程池,创建与所述视频路数的数量相同的线程,为所述多路视频流中每一路视频流,在所述多个线程中一一对应分配一个线程,分别以所述多个线程中的线程为目标线程,利用所述目标线程将目标视频流输入所述图形处理器,所述目标路视频流为所述多路视频流中与所述目标线程对应的一路视频流;
所述第二计算机程序被所述图形处理器执行时,使得所述图形处理器执行以下步骤:
对目标路视频流进行解码处理,当所述目标路视频流解码结束时,判断所述目标路视频流是否需要重播,若是,重启所述目标线程,重新利用所述目标线程将所述目标视频流输入所述图形处理器,对所述目标路视频流进行解码处理,得到目标解码视频数据,若否,回收所述目标线程,得到目标解码视频数据,对所述目标解码视频数据进行缩放处理,得到多路解码视频数据,获取所述多路解码视频数据分别对应的存储器,获取多路解码视频数据对应的存储器的地址编码,通过执行单元,根据所述地址编码进行存储器映射,确定所述多路解码视频数据对应的目标存储器,将多路解码视频数据输出到所述目标存储器中。
9.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至6任一项所述的视频流解码方法中的步骤。
CN201910636848.6A 2019-07-15 2019-07-15 视频流解码方法、装置、终端设备及存储介质 Active CN110381322B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910636848.6A CN110381322B (zh) 2019-07-15 2019-07-15 视频流解码方法、装置、终端设备及存储介质
PCT/CN2020/096511 WO2021008290A1 (zh) 2019-07-15 2020-06-17 视频流解码方法、装置、终端设备及存储介质
JP2021545768A JP7191240B2 (ja) 2019-07-15 2020-06-17 ビデオストリーム復号方法、装置、端末機器およびプログラム
US17/500,884 US20220038724A1 (en) 2019-07-15 2021-10-13 Video stream decoding method and apparatus, terminal device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910636848.6A CN110381322B (zh) 2019-07-15 2019-07-15 视频流解码方法、装置、终端设备及存储介质

Publications (2)

Publication Number Publication Date
CN110381322A CN110381322A (zh) 2019-10-25
CN110381322B true CN110381322B (zh) 2023-03-14

Family

ID=68253294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910636848.6A Active CN110381322B (zh) 2019-07-15 2019-07-15 视频流解码方法、装置、终端设备及存储介质

Country Status (4)

Country Link
US (1) US20220038724A1 (zh)
JP (1) JP7191240B2 (zh)
CN (1) CN110381322B (zh)
WO (1) WO2021008290A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110381322B (zh) * 2019-07-15 2023-03-14 腾讯科技(深圳)有限公司 视频流解码方法、装置、终端设备及存储介质
CN111010599B (zh) * 2019-12-18 2022-04-12 浙江大华技术股份有限公司 一种处理多场景视频流的方法、装置及计算机设备
CN111507245A (zh) * 2020-04-15 2020-08-07 海信集团有限公司 人脸检测的嵌入式系统及检测方法
CN111654674B (zh) * 2020-06-04 2021-10-22 上海鸢安智能科技有限公司 基于单个ffmpeg进程并行处理多个视频源的方法、软件系统、终端
CN111918025A (zh) * 2020-06-29 2020-11-10 北京大学 一种场景视频的处理方法、装置、存储介质及终端
CN111787185B (zh) * 2020-08-04 2023-09-05 成都云图睿视科技有限公司 一种vpu平台下的多路摄像头数据实时处理的方法
CN112235579B (zh) * 2020-09-28 2022-09-06 深圳市洲明科技股份有限公司 视频处理方法、计算机可读存储介质及电子设备
CN112637634B (zh) * 2020-12-24 2022-08-05 北京睿芯高通量科技有限公司 一种多进程共享数据的高并发视频处理方法及系统
CN114979772B (zh) * 2021-02-24 2023-05-12 腾讯科技(深圳)有限公司 解码器的配置方法、装置、介质以及电子设备
CN113052748B (zh) * 2021-03-02 2023-05-16 长沙景嘉微电子股份有限公司 图形处理器以及视频解码显示方法
CN112835651B (zh) * 2021-04-01 2023-10-20 中国空空导弹研究院 一种多路图像并行解码处理方法
CN113271493A (zh) * 2021-04-06 2021-08-17 中国电子科技集团公司第十五研究所 视频流解码方法及计算机可读存储介质
CN113395489B (zh) * 2021-06-09 2023-03-24 哈尔滨低空探索智能科技有限责任公司 适用于网络摄像机的视频切换方法及视频切换系统
CN113905273A (zh) * 2021-09-29 2022-01-07 上海阵量智能科技有限公司 任务执行方法和设备
CN114222166B (zh) * 2021-09-29 2024-02-13 重庆创通联达智能技术有限公司 多路视频码流实时处理、同屏播放方法及相关系统
CN113946373B (zh) * 2021-10-11 2023-06-09 成都中科合迅科技有限公司 一种基于负载均衡的虚拟现实多个视频流渲染方法
CN114268796A (zh) * 2021-12-22 2022-04-01 天翼云科技有限公司 视频流处理的方法及装置
CN114339412B (zh) * 2021-12-30 2024-02-27 咪咕文化科技有限公司 视频质量增强方法、移动终端、存储介质及装置
CN114640854A (zh) * 2022-03-09 2022-06-17 广西高重厚泽科技有限公司 一种多路视频流实时高速解码方法
CN114630184A (zh) * 2022-03-23 2022-06-14 广州方硅信息技术有限公司 视频的渲染方法、装置、设备和计算机可读存储介质
CN114860440B (zh) * 2022-04-29 2023-01-10 北京天融信网络安全技术有限公司 Gpu显存管理方法及装置
CN115119053A (zh) * 2022-05-09 2022-09-27 福思(杭州)智能科技有限公司 一种视频解码方法、内存、显存、电子设备及存储介质
CN115065824B (zh) * 2022-08-18 2023-02-24 荣耀终端有限公司 解码器确定方法、装置、芯片、电子设备及介质
CN116416563A (zh) * 2023-04-24 2023-07-11 北京拙河科技有限公司 一种多元化视频流解码模块匹配方法及装置
CN116320448B (zh) * 2023-05-19 2023-07-14 北京麟卓信息科技有限公司 一种基于动态自适应分辨率的视频解码会话复用优化方法
CN116744000B (zh) * 2023-08-16 2023-10-13 北京麟卓信息科技有限公司 一种基于动态算法重构的视频编解码方式检测方法
CN117475013A (zh) * 2023-12-21 2024-01-30 杭州海康威视数字技术股份有限公司 一种计算机设备和视频数据处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101668206A (zh) * 2009-09-15 2010-03-10 武汉大学 基于h.264的多路视频解码显示方法及系统
CN106878736A (zh) * 2017-03-17 2017-06-20 郑州云海信息技术有限公司 一种视频编解码的方法与装置
CN108881918A (zh) * 2017-11-29 2018-11-23 北京视联动力国际信息技术有限公司 一种多路视频的处理方法和一种多媒体终端

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3382195B2 (ja) 1999-12-28 2003-03-04 川崎重工業株式会社 画像処理装置
JP2007158410A (ja) 2005-11-30 2007-06-21 Sony Computer Entertainment Inc 画像符号化装置、画像復号装置、および画像処理システム
JP4519082B2 (ja) 2006-02-15 2010-08-04 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
CN102148959B (zh) * 2010-02-09 2016-01-20 北京中星微电子有限公司 一种视频监控系统及其图像的运动目标检测方法
JP5467060B2 (ja) 2011-01-06 2014-04-09 日本電信電話株式会社 並列資源探索方法及び装置及びプログラム
US9235769B2 (en) 2012-03-15 2016-01-12 Herta Security, S.L. Parallel object detection method for heterogeneous multithreaded microarchitectures
JP2013247455A (ja) 2012-05-24 2013-12-09 Hitachi Ltd 映像記録装置、及び映像処理装置の制御方法
US9311721B1 (en) * 2013-04-04 2016-04-12 Sandia Corporation Graphics processing unit-assisted lossless decompression
JP6432513B2 (ja) 2013-08-23 2018-12-05 日本電気株式会社 映像処理装置、映像処理方法および映像処理プログラム
US20170214930A1 (en) * 2016-01-26 2017-07-27 Sandia Corporation Gpu-assisted lossless data compression
US20170354887A1 (en) * 2016-06-08 2017-12-14 Bruce Bollermann Systems & methods for parachute flight simulation
JP2018011258A (ja) 2016-07-15 2018-01-18 日本電気株式会社 処理制御装置、処理制御方法及びプログラム
CN109005455B (zh) * 2017-06-07 2021-01-22 杭州海康威视系统技术有限公司 视频数据处理方法及装置
CN107241598B (zh) * 2017-06-29 2020-03-24 贵州电网有限责任公司 一种针对多路h.264视频会议的GPU解码方法
KR102533241B1 (ko) * 2018-01-25 2023-05-16 삼성전자주식회사 적응적으로 캐시 일관성을 제어하도록 구성된 이종 컴퓨팅 시스템
CN108833915A (zh) * 2018-06-21 2018-11-16 杭州雄迈集成电路技术有限公司 一种自适应跳帧的智能编码方法
JP6644231B1 (ja) * 2019-04-26 2020-02-12 Awl株式会社 画像分析装置、及び画像分析システム
CN110381322B (zh) * 2019-07-15 2023-03-14 腾讯科技(深圳)有限公司 视频流解码方法、装置、终端设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101668206A (zh) * 2009-09-15 2010-03-10 武汉大学 基于h.264的多路视频解码显示方法及系统
CN106878736A (zh) * 2017-03-17 2017-06-20 郑州云海信息技术有限公司 一种视频编解码的方法与装置
CN108881918A (zh) * 2017-11-29 2018-11-23 北京视联动力国际信息技术有限公司 一种多路视频的处理方法和一种多媒体终端

Also Published As

Publication number Publication date
US20220038724A1 (en) 2022-02-03
JP7191240B2 (ja) 2022-12-16
WO2021008290A1 (zh) 2021-01-21
JP2022519855A (ja) 2022-03-25
CN110381322A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN110381322B (zh) 视频流解码方法、装置、终端设备及存储介质
US10924783B2 (en) Video coding method, system and server
CN105163127A (zh) 视频分析方法及装置
US9609338B2 (en) Layered video encoding and decoding
CN114501062B (zh) 视频渲染协同方法、装置、设备及存储介质
US20160248833A1 (en) System and method for playing a video on mobile web environments
KR20120072904A (ko) 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템
EP3177024B1 (en) Apparatus for cloud streaming service
CN107155093B (zh) 一种视频预览方法、装置及设备
US20170220283A1 (en) Reducing memory usage by a decoder during a format change
US20230199192A1 (en) Scene aware video content encoding
US20170272545A1 (en) Method and system for transmitting remote screen
CN114339412A (zh) 视频质量增强方法、移动终端、存储介质及装置
CN113973224A (zh) 媒体信息的传输方法、计算设备及存储介质
US20180122340A1 (en) Electronic apparatus, image compression method thereof, and non-transitory computer readable recording medium
US20160142723A1 (en) Frame division into subframes
CN112543374A (zh) 一种转码控制方法、装置及电子设备
WO2023130896A1 (zh) 媒体数据的数据处理方法、装置、计算机设备及存储介质
CN114205359A (zh) 视频渲染协同方法、装置及设备
KR101647099B1 (ko) 가상화 멀티 세션 지원을 위한 서버 구조
CN112911390A (zh) 一种视频数据的播放方法及终端设备
CN110969672A (zh) 图像压缩方法及装置
WO2023142714A1 (zh) 视频处理协同方法、装置、设备及存储介质
CN114584786B (zh) 基于视频解码的内存分配方法及系统
KR102247657B1 (ko) 클라우드 스트리밍 서비스 시스템, 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

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