CN111147926B - 一种数据转码方法及装置 - Google Patents

一种数据转码方法及装置 Download PDF

Info

Publication number
CN111147926B
CN111147926B CN201811302901.0A CN201811302901A CN111147926B CN 111147926 B CN111147926 B CN 111147926B CN 201811302901 A CN201811302901 A CN 201811302901A CN 111147926 B CN111147926 B CN 111147926B
Authority
CN
China
Prior art keywords
transcoding
thread
creating
module
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811302901.0A
Other languages
English (en)
Other versions
CN111147926A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201811302901.0A priority Critical patent/CN111147926B/zh
Publication of CN111147926A publication Critical patent/CN111147926A/zh
Application granted granted Critical
Publication of CN111147926B publication Critical patent/CN111147926B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04N21/440236Processing 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 by media transcoding, e.g. video is transformed into a slideshow of still pictures, audio is converted into text
    • 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

本申请实施例提供了一种数据转码方法及装置,方法包括:利用CPU和硬件芯片创建多个转码模块;将转码任务对应的源数据划分为多份待转码数据;利用所创建的转码模块对该多份待转码数据进行转码,得到多份临时文件;对该多份临时文件进行合并,得到源数据的转码数据;可见,本方案中,同时利用CPU和硬件芯片创建的转码模块进行转码,实现了同时利用CPU和硬件芯片进行转码,提高了设备利用率。

Description

一种数据转码方法及装置
技术领域
本发明涉及多媒体技术领域,特别是涉及一种数据转码方法及装置。
背景技术
一些场景中,通常需要对视频数据进行转码操作。举例来说,对视频数据进行转码可以理解为:将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。
一些转码方案中,可以利用CPU(Central Processing Unit,中央处理器)进行转码操作,或者,也可以利用硬件芯片,如GPU(Graphics Processing Unit,图形处理器)进行转码操作,但是不能同时利用CPU和硬件芯片进行转码操作,设备利用率较低。
发明内容
本申请实施例的目的在于提供一种数据转码方法及装置,以提高设备利用率。
为达到上述目的,本申请实施例提供了一种数据转码方法,包括:
根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块;
将转码任务对应的源数据划分为多份待转码数据;
利用所创建的转码模块对所述多份待转码数据进行转码,得到多份临时文件;其中,一份待转码数据对应一份临时文件;
对所述多份临时文件进行合并,得到所述源数据的转码数据。
可选的,所述根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块,包括:
根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码;
根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码;
若所述源数据支持硬件解码、且所述转码数据支持硬件编码,则利用CPU创建多个软线程,得到包括所述多个软线程的软转码模块,利用硬件芯片创建多个硬线程,得到包括所述多个硬线程的硬转码模块;
若所述源数据不支持硬件解码、或所述转码数据不支持硬件编码,则利用CPU创建至少一个软线程,利用硬件芯片创建至少一个硬线程,得到包括所述至少一个软线程和所述至少一个硬线程的混合转码模块。
可选的,所述若所述源数据不支持硬件解码、或所述转码数据不支持硬件编码,则利用CPU创建至少一个软线程,利用硬件芯片创建至少一个硬线程,得到包括所述至少一个软线程和所述至少一个硬线程的混合转码模块,包括:
若所述源数据不支持硬件解码、所述转码数据支持硬件编码,则利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括所述软解码线程和所述硬编码线程的第一混合转码模块;
若所述源数据支持硬件解码、所述转码数据不支持硬件编码,则利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括所述软编码线程和所述硬解码线程的第二混合转码模块。
可选的,所述利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括所述软解码线程和所述硬编码线程的第一混合转码模块,包括:
利用CPU创建软解码线程,利用硬件芯片创建硬编码线程和硬后处理线程,得到包括所述软解码线程、所述硬编码线程和所述硬后处理线程的第一混合转码模块;
所述利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括所述软编码线程和所述硬解码线程的第二混合转码模块,包括:
利用CPU创建软编码线程,利用硬件芯片创建硬解码线程和硬后处理线程,得到包括所述软编码线程、所述硬解码线程和所述硬后处理线程的第二混合转码模块。
可选的,在所述根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码之前,还包括:
根据转码设备的性能参数,判断所述转码设备是否支持硬件芯片运行;
如果支持,则执行所述根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码的步骤;
如果不支持,则利用CPU创建转码模块。
可选的,所述输入参数中包括转码任务对应的源数据的质量参数,所述输出参数中包括转码任务对应的转码数据的质量参数;所述根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块,包括:
根据所述源数据的质量参数,确定所要创建的解码线程的数量,作为第一数量;
根据所述转码数据的质量参数,确定所要创建的编码线程的数量,作为第二数量;
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块。
可选的,在所述利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块之前,还包括:
根据所述源数据的质量参数与所述转码数据的质量参数的对比结果,确定所要创建的后处理线程的数量,作为第三数量;
所述利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块,包括:
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程、所述第二数量个编码线程和所述第三数量个后处理线程的转码模块。
可选的,一份待转码数据包括一个画面组,所述方法还包括:生成每个画面组的索引;
所述利用所创建的转码模块对所述多份待转码数据进行转码,得到多份临时文件,包括:
根据所述画面组的索引,依次确定当前待处理的画面组;
利用所述转码模块,对所述当前待处理的画面组进行转码,得到临时文件。
为达到上述目的,本申请实施例还提供了一种数据转码装置,包括:
第一创建模块,用于根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块;
划分模块,用于将转码任务对应的源数据划分为多份待转码数据;
转码模块,用于对所述多份待转码数据进行转码,得到多份临时文件;其中,一份待转码数据对应一份临时文件;
合并模块,用于对所述多份临时文件进行合并,得到所述源数据的转码数据。
可选的,所述第一创建模块,包括:
第一判断子模块,用于根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码;
第二判断子模块,用于根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码;
第一创建子模块,用于在所述源数据支持硬件解码、且所述转码数据支持硬件编码的情况下,利用CPU创建多个软线程,得到包括所述多个软线程的软转码模块,利用硬件芯片创建多个硬线程,得到包括所述多个硬线程的硬转码模块;
第二创建子模块,用于在所述源数据不支持硬件解码、或所述转码数据不支持硬件编码的情况下,利用CPU创建至少一个软线程,利用硬件芯片创建至少一个硬线程,得到包括所述至少一个软线程和所述至少一个硬线程的混合转码模块。
可选的,所述第二创建子模块,具体用于:
若所述源数据不支持硬件解码、所述转码数据支持硬件编码,则利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括所述软解码线程和所述硬编码线程的第一混合转码模块;
若所述源数据支持硬件解码、所述转码数据不支持硬件编码,则利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括所述软编码线程和所述硬解码线程的第二混合转码模块。
可选的,所述第二创建子模块,具体用于:
利用CPU创建软解码线程,利用硬件芯片创建硬编码线程和硬后处理线程,得到包括所述软解码线程、所述硬编码线程和所述硬后处理线程的第一混合转码模块;
利用CPU创建软编码线程,利用硬件芯片创建硬解码线程和硬后处理线程,得到包括所述软编码线程、所述硬解码线程和所述硬后处理线程的第二混合转码模块。
可选的,所述装置还包括:
判断模块,用于根据转码设备的性能参数,判断所述转码设备是否支持硬件芯片运行;如果支持,则触发所述第一判断子模块,如果不支持,则触发第二创建模块;
所述第二创建模块,用于利用CPU创建转码模块。
可选的,所述输入参数中包括转码任务对应的源数据的质量参数,所述输出参数中包括转码任务对应的转码数据的质量参数;所述第一创建模块,具体用于:
根据所述源数据的质量参数,确定所要创建的解码线程的数量,作为第一数量;
根据所述转码数据的质量参数,确定所要创建的编码线程的数量,作为第二数量;
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块。
可选的,所述第一创建模块,还用于:
根据所述源数据的质量参数与所述转码数据的质量参数的对比结果,确定所要创建的后处理线程的数量,作为第三数量;
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程、所述第二数量个编码线程和所述第三数量个后处理线程的转码模块。
可选的,一份待转码数据包括一个画面组,所述装置还包括:
生成模块,用于生成每个画面组的索引;
确定模块,用于根据所述画面组的索引,依次确定当前待处理的画面组;
所述转码模块,具体用于:对所述当前待处理的画面组进行转码,得到临时文件。
为达到上述目的,本申请实施例还提供了一种电子设备,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一种数据转码方法。
应用本申请实施例进行数据转码,利用CPU和硬件芯片创建多个转码模块;将转码任务对应的源数据划分为多份待转码数据;利用所创建的转码模块对该多份待转码数据进行转码,得到多份临时文件;对该多份临时文件进行合并,得到源数据的转码数据;可见,本方案中,同时利用CPU和硬件芯片创建的转码模块进行转码,实现了同时利用CPU和硬件芯片进行转码,提高了设备利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据转码方法的第一种流程示意图;
图2为本申请实施例提供的数据转码方法的第二种流程示意图;
图3为本申请实施例提供的一种并行转码示意图;
图4为本申请实施例提供的一种数据转码装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本申请实施例提供了一种数据转码方法及装置,该方法及装置可以应用于各种转码设备,具体不做限定。下面首先对本申请实施例提供的数据转码方法进行详细介绍。为了方便描述,以下实施例中将执行主体称为转码设备。
图1为本申请实施例提供的数据转码方法的第一种流程示意图,包括:
S101:根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块。
本领域技术人员可以理解,转码是一个先解码,再编码的过程。一些情况下,转码可以包括:解码、后处理、编码三个阶段。比如,可以将源数据进行解码得到YUV(Y,表示明亮度,U和V表示色度、浓度)数据,对该YUV数据进行缩放、裁剪、叠加等后处理,对经过后处理的数据再进行编码,便得到了转码数据。或者,另一些情况下,比如源数据与转码数据分辨率相同时,转码过程可以仅包括解码和编码两个阶段,不包括后处理阶段。
转码任务的输入参数也就是与源数据相关的参数。举例来说,输入参数可以为源数据的编码格式;根据源数据的编码格式,可以判断源数据是否支持硬件解码。比如,H.264格式(一种高度压缩数字视频编解码器标准)、MPEG4(Moving Pictures Experts Group,动态图象专家组)格式的数据即为支持硬件解码的数据;SVAC(Surveillance Video andAudio Coding,安全防范监控数字视音频编解码技术标准)格式的数据即为不支持硬件解码的数据。或者,输入参数也可以为其他,比如直接表示源数据是否支持硬件解码的参数,具体不做限定。
转码任务的输出参数也就是与转码数据相关的参数。举例来说,输出参数可以为转码数据的编码格式;根据转码数据的编码格式,可以判断转码数据是否支持硬件编码。比如,H.264格式、MPEG4格式的数据即为支持硬件编码的数据;SVAC格式的数据即为不支持硬件编码的数据。或者,输出参数也可以为其他,比如直接表示转码数据是否支持硬件编码的参数,具体不做限定。
本实施例中的硬件芯片可以为GPU,或者也可以为其他可用于转码的芯片,具体不做限定。
本实施例中的转码模块可以包括多个线程,比如,用于解码的线程(以下称为解码线程)、用于缩放、裁剪、叠加等后后处理的线程(以下称为后处理线程)、以及用于编码的线程(以下称为编码线程)。如上所述,转码过程可以仅包括解码和编码两个阶段,这种情况下,转码模块可以仅包括解码线程和编码线程。本实施例中,将CPU创建的线程均称为软线程,将硬件芯片创建的线程均称为硬线程。
一种实施方式中,可以根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码;根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码;若所述源数据支持硬件解码、且所述转码数据支持硬件编码,则利用CPU创建多个软线程,得到包括所述多个软线程的软转码模块,利用硬件芯片创建多个硬线程,得到包括所述多个硬线程的硬转码模块;若所述源数据不支持硬件解码、或所述转码数据不支持硬件编码,则利用CPU创建至少一个软线程,利用硬件芯片创建至少一个硬线程,得到包括所述至少一个软线程和所述至少一个硬线程的混合转码模块。
具体来说,一种情况下,源数据支持硬件解码、且转码数据支持硬件编码,这种情况下,则利用CPU创建软解码线程、软后处理线程(可选)、软编码线程,这些线程组成了软转码模块;利用硬件芯片创建硬解码线程、硬后处理线程(可选)、硬编码线程,这些线程组成了硬转码模块。或者,根据上面内容描述,这些转码模块中也可以不包括后处理线程。
另一种情况下,源数据不支持硬件解码、或转码数据不支持硬件编码,这种情况下创建的转码模块为混合转码模块,混合转码模块中既包括CPU创建的软线程,也包括硬件芯片创建的硬线程。
一种实施方式中,若所述源数据不支持硬件解码、所述转码数据支持硬件编码,则利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括所述软解码线程和所述硬编码线程的第一混合转码模块;若所述源数据支持硬件解码、所述转码数据不支持硬件编码,则利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括所述软编码线程和所述硬解码线程的第二混合转码模块。
“源数据不支持硬件解码、或转码数据不支持硬件编码”又分为两种情况:
一种情况下,源数据不支持硬件解码、转码数据支持硬件编码,这种情况下,可以利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,这些线程组成了混合转码模块,为了区分描述,将这种情况下的混合转码模块称为第一混合转码模块。
另一种情况下,源数据支持硬件解码、转码数据不支持硬件编码,这种情况下,可以利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,这些线程组成了混合转码模块,为了区分描述,将这种情况下的混合转码模块称为第二混合转码模块。
上述两种情况下,还可以利用硬件芯片创建硬后处理线程,也就是说,上述第一混合转码模块和第二混合转码模块中都可以包括该硬后处理线程。
一些场景中,大部分数据都支持CPU编/解码,这大部分数据中仅有部分数据还支持硬件芯片编/解码,而由于后处理线程既可以由CPU创建又可以由硬件芯片创建,因此,这里由硬件芯片创建后处理线程,可以节省CPU,使得CPU能够更多地为仅支持CPU编/解码的数据进行编/解码,这样资源分配更合理。
或者,也可以由CPU创建后处理线程,具体不做限定。
作为一种实施方式,在所述根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码之前,可以先根据转码设备的性能参数,判断所述转码设备是否支持硬件芯片运行;如果支持,则执行所述根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码的步骤;如果不支持,则利用CPU创建转码模块。
本实施方式中,在转码设备接收到转码任务后,可以先根据转码设备的性能参数,判断该转码设备是否支持硬件芯片运行,该硬件芯片即为用于转码的硬件芯片。举例来说,可以判断转码设备是否配置了用于转码的硬件芯片,如果已配置,则可以继续判断转码设备的驱动是否支持该硬件芯片的运行。
如果支持,再继续上述实施方式中,判断源数据及转码数据是否支持硬件编/解码。如果不支持,则利用CPU创建软解码线程、软后处理线程(可选)、软编码线程,这些线程组成了软转码模块,利用软转码模块对源数据进行转码处理。
一种实施方式中,输入参数中可以包括转码任务对应的源数据的质量参数,输出参数中可以包括转码任务对应的转码数据的质量参数;S101可以包括:
根据所述源数据的质量参数,确定所要创建的解码线程的数量,作为第一数量;根据所述转码数据的质量参数,确定所要创建的编码线程的数量,作为第二数量;利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块。
质量参数,也就是表示数据质量高低的参数,举例来说,本实施方式中的质量参数可以包括以下任意一种或多种:分辨率、比特率、帧率。一般来说,线程数量与质量参数负相关。如果质量参数较大、且创建的线程数量较多,则转码设备运行可能卡顿,如果质量参数较小、且创建的线程数量较小,则转码设备空闲;而如果质量参数较大、且创建的线程数量较少,或者质量参数较小、且创建的线程数量较多,则充分利用转码设备,资源利用更合理。
解码线程用于对源数据进行解码,因此,解码线程的数量与源数据的质量参数负相关。编码线程用于编码得到转码数据,因此,编码线程的数量与转码数据的质量参数负相关。
一些情况下,转码模块还包括后处理线程,这种情况下,可以根据源数据的质量参数与转码数据的质量参数的对比结果,确定所要创建的后处理线程的数量,作为第三数量;这样,创建的转码模块第一数量个解码线程、第二数量个编码线程和第三数量个后处理线程。
举例来说,如果源数据的质量参数大于转码数据的质量参数,则后处理线程的裁减工作量较大,后处理线程的数量可以多一些。如果源数据的质量参数小于转码数据的质量参数,则后处理线程不需要裁减,后处理线程的数量可以少一些。
一种情况下,可以先根据转码设备的性能参数,确定所要创建的转码模块的数量;再根据源数据的质量参数,确定所要创建的解码线程的数量,根据转码数据的质量参数,确定所要创建的编码线程的数量,根据源数据的质量参数与转码数据的质量参数的对比结果,确定所要创建的后处理线程的数量。
或者,也可以同时考虑转码设备的性能参数、源数据的质量参数、转码数据的质量参数,确定转码模块及转码模块中各种线程的数量。
S102:将转码任务对应的源数据划分为多份待转码数据。
源数据是由多个画面组组成的。画面组也就是GOP(Group of Pictures),一个GOP就是一组连续的画面,其中包括I帧(内部编码帧)和P帧(前向预测帧),或者一些情况下还包括B帧(双向内插帧)。
一种实施方式中,可以依据源数据的画面组,将源数据划分为多份待转码数据。一份待转码数据可以包括一个或多个画面组,具体不做限定。
S103:利用所创建的转码模块对所述多份待转码数据进行转码,得到多份临时文件;其中,一份待转码数据对应一份临时文件。
举例来说,对待转码数据进行转码时,可以先判断是否存在空闲的转码模块(软转码模块、硬转码模块、混合转码模块),如果存在,则将该待转码数据传入该空闲的转码模块进行转码,转码模块将转换完的内容输出至临时文件保存。
一种实施方式中,一份待转码数据包括一个画面组,可以生成每个画面组的索引;这样S103包括:根据所述画面组的索引,依次确定当前待处理的画面组;利用所述转码模块,对所述当前待处理的画面组进行转码,得到临时文件。
比如,在转码设备接收到转码任务后,可以先根据源数据的封装类型,生成每个画面组的索引。不同封装类型的视频数据的结构不同,比如,各视频帧的存储位置不同,或者,一些封装类型的视频数据中包括每个视频帧的索引,一些封装类型的视频数据中不包括每个视频帧的索引。GOP的索引可以包括该GOP中每个视频帧的序号及存储位置(这里所说的序号是指视频帧在整段视频数据中的序号,而非视频帧在一个GOP中的序号);因此,可以根据源数据(视频数据)的封装类型,生成每个GOP的索引。
如上所述,一些情况下,源数据中本身包括每个视频帧的索引,这种情况下,可以根据每个视频帧的索引(序号及存储位置),汇总生成GOP的索引。另一些情况下,源数据中不包括视频帧的索引,这种情况下,可以通过读取各视频帧,确定各视频帧的序号及存储位置,再生成GOP的索引。
然后,在利用转码模块进行转码时,可以根据GOP的索引,确定当前需要转码的GOP(当前待处理的画面组),将该GOP传入转码模块进行转码。这样,可以按照顺序,依次对各GOP进行转码。
或者,另一种实施方式中,一份待转码数据包括多个画面组,这种情况下,可以生成每份待转码数据的索引。待转码数据的索引可以包括该份数据中每个视频帧的序号及存储位置(这里所说的序号是指视频帧在整段视频数据中的序号)。这样S103包括:根据所述待转码数据的索引,依次确定当前待处理的待转码数据;利用所述转码模块,对所述当前待处理的待转码数据进行转码,得到临时文件。
S104:对该多份临时文件进行合并,得到该源数据的转码数据。
举例来说,假设S101中创建了N个转码模块,而转码任务对应的源数据包括5N个GOP,假设这N个转码模块每次同时对N个GOP进行转码,得到N份临时文件;这样,第一次得到N份临时文件后,可以先将这N份临时文件先进行合并,得到合并文件1,第二次得到N份临时文件后,将这N份临时文件与合并文件1进行合并,得到合并文件2,以此类推,直至将5N份临时文件全部合并完成。这种方案相比于“得到全部临时文件后再一起合并”,处理效率更高。
上述例子中,合并文件在不断增大,可以记录合并文件的长度。
应用本申请实施例进行数据转码,利用CPU和硬件芯片创建多个转码模块;将转码任务对应的源数据划分为多份待转码数据;利用所创建的转码模块对该多份待转码数据进行转码,得到多份临时文件;对该多份临时文件进行合并,得到源数据的转码数据;可见,本方案中,第一方面,同时利用CPU和硬件芯片创建的转码模块进行转码,实现了同时利用CPU和硬件芯片进行转码,提高了设备利用率;第二方面,CPU和硬件芯片同时转码,减少了转码的耗时。
图2为本申请实施例提供的数据转码方法的第二种流程示意图,包括:
S201:根据转码设备的性能参数,判断转码设备是否支持硬件芯片运行,如果不支持,执行S202,如果支持,执行S203。
本实施方式中,在转码设备接收到转码任务后,可以先根据转码设备的性能参数,判断该转码设备是否支持硬件芯片运行。该硬件芯片即为用于转码的硬件芯片。该硬件芯片可以为GPU,或者也可以为其他可用于转码的芯片,具体不做限定。比如,可以判断转码设备是否配置了用于转码的硬件芯片,如果已配置,则可以继续判断转码设备的驱动是否支持该硬件芯片的运行。
S202:利用CPU创建转码模块。
本实施例中的转码模块可以包括多个线程,比如,用于解码线程、后处理线程(可选)、以及编码线程。如上所述,转码过程可以仅包括解码和编码两个阶段,这种情况下,转码模块可以仅包括解码线程和编码线程,因此后处理线程为可选线程。
本实施例中,将CPU创建的线程均称为软线程,将硬件芯片创建的线程均称为硬线程。将仅包含软线程的转码模块称为软转码模块,将仅包含硬线程的转码模块称为硬转码模块,将既包含硬线程又包含软线程的转码模块称为混合转码模块。
S203:根据转码任务的输入参数,判断转码任务对应的源数据是否支持硬件解码;根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码。
若源数据支持硬件解码且转码数据均支持硬件编码,则执行S204:利用CPU创建软转码模块,利用硬件芯片创建硬转码模块。其中,每个软转码模块包括软解码线程、软后处理线程(可选)、软编码线程,每个硬转码模块包括硬解码线程、硬后处理线程(可选)、硬编码线程。
若源数据不支持硬件解码、转码数据支持硬件编码,则执行S205:利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括软解码线程和硬编码线程的第一混合转码模块。
若源数据支持硬件解码、转码数据不支持硬件编码,则执行S206:利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括软编码线程和硬解码线程的第二混合转码模块。
一种实施方式中,S205和S206中还可以利用硬件芯片创建硬后处理线程,也就是说,上述第一混合转码模块和第二混合转码模块中都可以包括该硬后处理线程。
S207:将转码任务对应的源数据划分为多份待转码数据,并生成每份待转码数据的索引。
S208:根据待转码数据的索引,依次确定当前待处理的待转码数据;利用转码模块,对当前待处理的待转码数据进行转码,得到临时文件。
S209:对转码得到的多份临时文件进行合并,得到源数据的转码数据。
举例来说,假设一份待转码数据包括一个GOP,参考图3,源数据中包括多个GOP,将源数据分为一个一个的GOP,并生成每个GOP的索引,将每个GOP分别传入转码模块,每个GOP转码后得到一份临时文件,全部GOP的临时文件合并后得到转码数据。
本发明图2实施例中,针对支持硬编码的数据创建硬线程,针对不支持硬编码的数据创建软线程,既能实现对数据的转码,又能提高设备利用率。
与上述方法实施例相对应,本申请实施例还提供一种数据转码装置。图4为本申请实施例提供的一种数据转码装置的结构示意图,包括:
第一创建模块401,用于根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块;
划分模块402,用于将转码任务对应的源数据划分为多份待转码数据;
转码模块403,用于对所述多份待转码数据进行转码,得到多份临时文件;其中,一份待转码数据对应一份临时文件;
合并模块404,用于对所述多份临时文件进行合并,得到所述源数据的转码数据。
作为一种实施方式,第一创建模块401,可以包括:第一判断子模块、第二判断子模块、第一创建子模块和第二创建子模块(图中未示出),其中,
第一判断子模块,用于根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码;
第二判断子模块,用于根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码;
第一创建子模块,用于在所述源数据支持硬件解码、且所述转码数据支持硬件编码的情况下,利用CPU创建多个软线程,得到包括所述多个软线程的软转码模块,利用硬件芯片创建多个硬线程,得到包括所述多个硬线程的硬转码模块;
第二创建子模块,用于在所述源数据不支持硬件解码、或所述转码数据不支持硬件编码的情况下,利用CPU创建至少一个软线程,利用硬件芯片创建至少一个硬线程,得到包括所述至少一个软线程和所述至少一个硬线程的混合转码模块。
作为一种实施方式,所述第二创建子模块,具体用于:
若所述源数据不支持硬件解码、所述转码数据支持硬件编码,则利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括所述软解码线程和所述硬编码线程的第一混合转码模块;
若所述源数据支持硬件解码、所述转码数据不支持硬件编码,则利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括所述软编码线程和所述硬解码线程的第二混合转码模块。
作为一种实施方式,所述第二创建子模块,具体用于:
利用CPU创建软解码线程,利用硬件芯片创建硬编码线程和硬后处理线程,得到包括所述软解码线程、所述硬编码线程和所述硬后处理线程的第一混合转码模块;
利用CPU创建软编码线程,利用硬件芯片创建硬解码线程和硬后处理线程,得到包括所述软编码线程、所述硬解码线程和所述硬后处理线程的第二混合转码模块。
作为一种实施方式,所述装置还包括:判断模块和第二创建模块(图中未示出),其中,
判断模块,用于根据转码设备的性能参数,判断所述转码设备是否支持硬件芯片运行;如果支持,则触发所述第一判断子模块,如果不支持,则触发第二创建模块;
所述第二创建模块,用于利用CPU创建转码模块。
作为一种实施方式,所述输入参数中包括转码任务对应的源数据的质量参数,所述输出参数中包括转码任务对应的转码数据的质量参数;第一创建模块401,具体用于:
根据所述源数据的质量参数,确定所要创建的解码线程的数量,作为第一数量;
根据所述转码数据的质量参数,确定所要创建的编码线程的数量,作为第二数量;
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块。
作为一种实施方式,第一创建模块401,还用于:
根据所述源数据的质量参数与所述转码数据的质量参数的对比结果,确定所要创建的后处理线程的数量,作为第三数量;
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程、所述第二数量个编码线程和所述第三数量个后处理线程的转码模块。
作为一种实施方式,一份待转码数据包括一个画面组,所述装置还包括:生成模块和确定模块(图中未示出),其中,
生成模块,用于生成每个画面组的索引;
确定模块,用于根据所述画面组的索引,依次确定当前待处理的画面组;
转码模块403,具体用于:对所述当前待处理的画面组进行转码,得到临时文件。
应用本申请实施例进行数据转码,利用CPU和硬件芯片创建多个转码模块;将转码任务对应的源数据划分为多份待转码数据;利用所创建的转码模块对该多份待转码数据进行转码,得到多份临时文件;对该多份临时文件进行合并,得到源数据的转码数据;可见,本方案中,同时利用CPU和硬件芯片创建的转码模块进行转码,实现了同时利用CPU和硬件芯片进行转码,提高了设备利用率。
本申请实施例还提供了一种电子设备,如图5所示,包括处理器501、存储器502,
存储器502,用于存放计算机程序;
处理器501,用于执行存储器502上所存放的程序时,实现上述任一种数据转码方法。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种数据转码方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、设备实施例以及上述计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (16)

1.一种数据转码方法,其特征在于,包括:
根据转码任务的输入参数及输出参数,利用中央处理器CPU和硬件芯片创建多个转码模块;
将转码任务对应的源数据划分为多份待转码数据;
利用所创建的转码模块对所述多份待转码数据进行转码,得到多份临时文件;其中,一份待转码数据对应一份临时文件;
对所述多份临时文件进行合并,得到所述源数据的转码数据;
所述根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块,包括:
根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码;
根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码;
若所述源数据支持硬件解码、且所述转码数据支持硬件编码,则利用CPU创建多个软线程,得到包括所述多个软线程的软转码模块,利用硬件芯片创建多个硬线程,得到包括所述多个硬线程的硬转码模块。
2.根据权利要求1所述的方法,其特征在于,所述根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块,包括:
根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码;
根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码;
若所述源数据不支持硬件解码、或所述转码数据不支持硬件编码,则利用CPU创建至少一个软线程,利用硬件芯片创建至少一个硬线程,得到包括所述至少一个软线程和所述至少一个硬线程的混合转码模块。
3.根据权利要求2所述的方法,其特征在于,所述若所述源数据不支持硬件解码、或所述转码数据不支持硬件编码,则利用CPU创建至少一个软线程,利用硬件芯片创建至少一个硬线程,得到包括所述至少一个软线程和所述至少一个硬线程的混合转码模块,包括:
若所述源数据不支持硬件解码、所述转码数据支持硬件编码,则利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括所述软解码线程和所述硬编码线程的第一混合转码模块;
若所述源数据支持硬件解码、所述转码数据不支持硬件编码,则利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括所述软编码线程和所述硬解码线程的第二混合转码模块。
4.根据权利要求3所述的方法,其特征在于,所述利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括所述软解码线程和所述硬编码线程的第一混合转码模块,包括:
利用CPU创建软解码线程,利用硬件芯片创建硬编码线程和硬后处理线程,得到包括所述软解码线程、所述硬编码线程和所述硬后处理线程的第一混合转码模块;
所述利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括所述软编码线程和所述硬解码线程的第二混合转码模块,包括:
利用CPU创建软编码线程,利用硬件芯片创建硬解码线程和硬后处理线程,得到包括所述软编码线程、所述硬解码线程和所述硬后处理线程的第二混合转码模块。
5.根据权利要求2所述的方法,其特征在于,在所述根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码之前,还包括:
根据转码设备的性能参数,判断所述转码设备是否支持硬件芯片运行;
如果支持,则执行所述根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码的步骤;
如果不支持,则利用CPU创建转码模块。
6.根据权利要求1所述的方法,其特征在于,所述输入参数中包括转码任务对应的源数据的质量参数,所述输出参数中包括转码任务对应的转码数据的质量参数;所述根据转码任务的输入参数及输出参数,利用CPU和硬件芯片创建多个转码模块,包括:
根据所述源数据的质量参数,确定所要创建的解码线程的数量,作为第一数量;
根据所述转码数据的质量参数,确定所要创建的编码线程的数量,作为第二数量;
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块。
7.根据权利要求6所述的方法,其特征在于,在所述利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块之前,还包括:
根据所述源数据的质量参数与所述转码数据的质量参数的对比结果,确定所要创建的后处理线程的数量,作为第三数量;
所述利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块,包括:
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程、所述第二数量个编码线程和所述第三数量个后处理线程的转码模块。
8.根据权利要求1所述的方法,其特征在于,一份待转码数据包括一个画面组,所述方法还包括:生成每个画面组的索引;
所述利用所创建的转码模块对所述多份待转码数据进行转码,得到多份临时文件,包括:
根据所述画面组的索引,依次确定当前待处理的画面组;
利用所述转码模块,对所述当前待处理的画面组进行转码,得到临时文件。
9.一种数据转码装置,其特征在于,包括:
第一创建模块,用于根据转码任务的输入参数及输出参数,利用中央处理器CPU和硬件芯片创建多个转码模块;
划分模块,用于将转码任务对应的源数据划分为多份待转码数据;
转码模块,用于对所述多份待转码数据进行转码,得到多份临时文件;其中,一份待转码数据对应一份临时文件;
合并模块,用于对所述多份临时文件进行合并,得到所述源数据的转码数据;
所述第一创建模块,包括:
第一判断子模块,用于根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码;
第二判断子模块,用于根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码;
第一创建子模块,用于在所述源数据支持硬件解码、且所述转码数据支持硬件编码的情况下,利用CPU创建多个软线程,得到包括所述多个软线程的软转码模块,利用硬件芯片创建多个硬线程,得到包括所述多个硬线程的硬转码模块。
10.根据权利要求9所述的装置,其特征在于,所述第一创建模块,包括:
第一判断子模块,用于根据转码任务的输入参数,判断所述转码任务对应的源数据是否支持硬件解码;
第二判断子模块,用于根据转码任务的输出参数,判断所述转码任务对应的转码数据是否支持硬件编码;
第二创建子模块,用于在所述源数据不支持硬件解码、或所述转码数据不支持硬件编码的情况下,利用CPU创建至少一个软线程,利用硬件芯片创建至少一个硬线程,得到包括所述至少一个软线程和所述至少一个硬线程的混合转码模块。
11.根据权利要求10所述的装置,其特征在于,所述第二创建子模块,具体用于:
若所述源数据不支持硬件解码、所述转码数据支持硬件编码,则利用CPU创建软解码线程,利用硬件芯片创建硬编码线程,得到包括所述软解码线程和所述硬编码线程的第一混合转码模块;
若所述源数据支持硬件解码、所述转码数据不支持硬件编码,则利用CPU创建软编码线程,利用硬件芯片创建硬解码线程,得到包括所述软编码线程和所述硬解码线程的第二混合转码模块。
12.根据权利要求11所述的装置,其特征在于,所述第二创建子模块,具体用于:
利用CPU创建软解码线程,利用硬件芯片创建硬编码线程和硬后处理线程,得到包括所述软解码线程、所述硬编码线程和所述硬后处理线程的第一混合转码模块;
利用CPU创建软编码线程,利用硬件芯片创建硬解码线程和硬后处理线程,得到包括所述软编码线程、所述硬解码线程和所述硬后处理线程的第二混合转码模块。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
判断模块,用于根据转码设备的性能参数,判断所述转码设备是否支持硬件芯片运行;如果支持,则触发所述第一判断子模块,如果不支持,则触发第二创建模块;
所述第二创建模块,用于利用CPU创建转码模块。
14.根据权利要求9所述的装置,其特征在于,所述输入参数中包括转码任务对应的源数据的质量参数,所述输出参数中包括转码任务对应的转码数据的质量参数;所述第一创建模块,具体用于:
根据所述源数据的质量参数,确定所要创建的解码线程的数量,作为第一数量;
根据所述转码数据的质量参数,确定所要创建的编码线程的数量,作为第二数量;
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程和所述第二数量个编码线程的转码模块。
15.根据权利要求14所述的装置,其特征在于,所述第一创建模块,还用于:
根据所述源数据的质量参数与所述转码数据的质量参数的对比结果,确定所要创建的后处理线程的数量,作为第三数量;
利用CPU和硬件芯片,创建多个包括所述第一数量个解码线程、所述第二数量个编码线程和所述第三数量个后处理线程的转码模块。
16.根据权利要求9所述的装置,其特征在于,一份待转码数据包括一个画面组,所述装置还包括:
生成模块,用于生成每个画面组的索引;
确定模块,用于根据所述画面组的索引,依次确定当前待处理的画面组;
所述转码模块,具体用于:对所述当前待处理的画面组进行转码,得到临时文件。
CN201811302901.0A 2018-11-02 2018-11-02 一种数据转码方法及装置 Active CN111147926B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811302901.0A CN111147926B (zh) 2018-11-02 2018-11-02 一种数据转码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811302901.0A CN111147926B (zh) 2018-11-02 2018-11-02 一种数据转码方法及装置

Publications (2)

Publication Number Publication Date
CN111147926A CN111147926A (zh) 2020-05-12
CN111147926B true CN111147926B (zh) 2022-05-06

Family

ID=70516054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811302901.0A Active CN111147926B (zh) 2018-11-02 2018-11-02 一种数据转码方法及装置

Country Status (1)

Country Link
CN (1) CN111147926B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787319B (zh) * 2020-07-22 2021-09-14 腾讯科技(深圳)有限公司 一种视频信息处理方法、多媒体信息处理方法及装置
CN112543373B (zh) * 2020-11-30 2022-04-22 联想(北京)有限公司 一种转码控制方法、装置及电子设备
CN113327302A (zh) * 2021-05-26 2021-08-31 浙江大华技术股份有限公司 图片处理方法及装置、存储介质、电子装置
CN114071154A (zh) * 2021-11-10 2022-02-18 湖南国科微电子股份有限公司 一种数据解码方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394456A (zh) * 2014-11-20 2015-03-04 福建星网视易信息系统有限公司 一种嵌入式环境下音视频解码的方法及装置
CN104811747A (zh) * 2015-04-27 2015-07-29 无锡天脉聚源传媒科技有限公司 一种视频转码方法及装置
US9954558B1 (en) * 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
CN108282164A (zh) * 2017-01-05 2018-07-13 腾讯科技(深圳)有限公司 一种数据编码及解码方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8233527B2 (en) * 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
US20080278595A1 (en) * 2007-05-11 2008-11-13 Advance Micro Devices, Inc. Video Data Capture and Streaming
CN102223569A (zh) * 2007-11-28 2011-10-19 华为终端有限公司 多路视频处理方法
US20090322784A1 (en) * 2008-02-27 2009-12-31 Gabriele Sartori System and method for virtual 3d graphics acceleration and streaming multiple different video streams
EP2192780A1 (en) * 2008-11-28 2010-06-02 Thomson Licensing Method for video decoding supported by Graphics Processing Unit
CN103702124B (zh) * 2012-09-27 2017-11-17 深圳市快播科技有限公司 一种转码加速方法和转码器
CN104469370A (zh) * 2013-09-17 2015-03-25 中国普天信息产业股份有限公司 一种视频转码的方法和装置
US20160077565A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Frequency configuration of asynchronous timing domains under power constraints
CN106791928A (zh) * 2016-12-29 2017-05-31 上海幻电信息科技有限公司 一种自适应的高性能视频转码系统和方法
CN107396123A (zh) * 2017-09-25 2017-11-24 南京荣膺软件科技有限公司 便携式智能动态软硬件切换转码系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394456A (zh) * 2014-11-20 2015-03-04 福建星网视易信息系统有限公司 一种嵌入式环境下音视频解码的方法及装置
CN104811747A (zh) * 2015-04-27 2015-07-29 无锡天脉聚源传媒科技有限公司 一种视频转码方法及装置
US9954558B1 (en) * 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
CN108282164A (zh) * 2017-01-05 2018-07-13 腾讯科技(深圳)有限公司 一种数据编码及解码方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于GPU的遥感图像快速去噪处理;张海军等;《城市勘测》;20100430(第02期);全文 *

Also Published As

Publication number Publication date
CN111147926A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
CN111147926B (zh) 一种数据转码方法及装置
JP7191240B2 (ja) ビデオストリーム復号方法、装置、端末機器およびプログラム
TWI603609B (zh) 簡化視訊隨機存取之限制及單元類型
JP4519082B2 (ja) 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
US8660191B2 (en) Software video decoder display buffer underflow prediction and recovery
US20120183040A1 (en) Dynamic Video Switching
US10834401B2 (en) Video encoding
US10298931B2 (en) Coupling sample metadata with media samples
US20020136294A1 (en) Track for improved video compression
US20100153687A1 (en) Streaming processor, operation method of streaming processor and processor system
CN115134629B (zh) 视频传输方法、系统、设备及存储介质
US10057599B2 (en) Method for performing image processing control with aid of predetermined tile packing, associated apparatus and associated non-transitory computer readable medium
JP2004514353A (ja) スケーラブルmpeg−2ビデオシステム
US10791332B2 (en) Video data processing system
US8406306B2 (en) Image decoding apparatus and image decoding method
CN111050179B (zh) 一种视频转码方法及装置
JP2007150569A (ja) 画像復号装置、および画像復号方法
CN107277650B (zh) 视频文件切割方法及装置
CN106658154A (zh) 一种视频截图方法、装置和设备以及视频处理方法、装置和设备
CN112637538A (zh) 用于优化视频分析的智能标签方法、系统、介质及终端
CN107426611B (zh) 基于视频转码的多路输出方法及系统
JP5236386B2 (ja) 画像復号装置及び画像復号方法
TWI565303B (zh) 影像處理系統及影像處理方法
US8963747B2 (en) Decoding apparatus, encoding apparatus, decoding method, and encoding method
CN111246215A (zh) 一种视频格式转换的方法及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant