CN109429070A - 一种移动终端视频编码方法、装置及移动终端 - Google Patents

一种移动终端视频编码方法、装置及移动终端 Download PDF

Info

Publication number
CN109429070A
CN109429070A CN201710732220.7A CN201710732220A CN109429070A CN 109429070 A CN109429070 A CN 109429070A CN 201710732220 A CN201710732220 A CN 201710732220A CN 109429070 A CN109429070 A CN 109429070A
Authority
CN
China
Prior art keywords
coding
thread
data buffer
mobile terminal
video data
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.)
Pending
Application number
CN201710732220.7A
Other languages
English (en)
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
Hangzhou Hikvision System 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 CN201710732220.7A priority Critical patent/CN109429070A/zh
Publication of CN109429070A publication Critical patent/CN109429070A/zh
Pending legal-status Critical Current

Links

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
    • 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

Landscapes

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

Abstract

本发明的实施例公开一种移动终端视频编码方法、装置及移动终端,涉及视频数据编码技术领域,能够在缓解视频数据丢失的同时,提高视频数据的编码效率。所述移动终端视频编码方法,包括:获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区;通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到编码后数据缓冲区;通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据。本发明适用于移动终端摄像头所采集的视频数据的编码。

Description

一种移动终端视频编码方法、装置及移动终端
技术领域
本发明涉及视频编码技术领域,尤其涉及一种移动终端视频编码方法、装置及移动终端。
背景技术
随着移动网络及移动终端技术的发展,人们对移动终端高清视频的需求,已经越来越普遍。
为满足公安、司法、交通等行业现场指挥、指挥调度、保险理赔等业务需求,移动终端上开发了视频采集回传应用软件。该软件主要依赖移动终端自带摄像头采集视频、音频等媒体信息,并将该媒体数据处理后,回传给集成平台,供平台进行相关业务处理。原始的媒体数据量很大,为了保证网络的有效传输,在网络传输之前,移动终端需要将媒体数据进行压缩编码。
目前,移动终端上对媒体数据进行编码的方式,通常是采用单线程编码处理机制,这种处理机制存在编码效率低的问题,由此会导致数据缓冲区中的数据缓冲溢出,出现丢帧现象,视频分辨率越高,现象越明显。
发明内容
有鉴于此,本发明实施例提供一种移动终端视频编码方法、装置及移动终端,能够在缓解视频数据丢失的同时,提高视频数据的编码效率。
第一方面,本发明实施例提供一种移动终端视频编码方法,包括:
获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区;
通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到编码后数据缓冲区;
通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据。
结合第一方面,在第一方面的第一种实施方式中,所述获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区,包括:获取所述原始视频数据,并将获取的所述原始视频数据按照预定顺序轮询输入到两个以上的编码前数据缓冲区。
结合第一方面,在第一方面的第二种实施方式中,所述编码后数据缓冲区的数量为两个以上;
所述通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据,包括:通过编码数据读线程,按照预定顺序轮询读取各编码后数据缓冲区中编码后的视频数据。
结合第一方面的第一种或第二种实施方式,在第一方面的第三种实施方式中,所述预定顺序为所述两个以上编码线程的创建顺序。
结合第一方面或第一方面的第二种实施方式,在第一方面的第四种实施方式中,各编码前数据缓冲区、各编码后数据缓冲区的大小各自为I帧间隔数乘以一帧原始视频数据大小。
结合第一方面,在第一方面的第五种实施方式中,在获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区之前,所述方法还包括:创建两个以上编码线程,为每个编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区;以及创建编码数据读线程。
结合第一方面的第五种实施方式,在第一方面的第六种实施方式中,所述创建两个以上编码线程,为每个编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区,包括:创建第一编码线程,为所述第一编码线程创建第一编码前数据缓冲区和第一编码后数据缓冲区;创建第二编码线程,为所述第二编码线程创建第二编码前数据缓冲区和第二编码后数据缓冲区;
其中,所述获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区,包括:获取原始视频数据,并将获取的所述原始视频数据输入到所述第一编码前数据缓冲区和所述第二编码前数据缓冲区;
所述通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到编码后数据缓冲区,包括:通过第一编码线程对所述第一编码前数据缓冲区中的视频数据进行编码,将编码后的视频数据输入第一编码后数据缓冲区;通过第二编码线程对所述第二编码前数据缓冲区中的视频数据进行编码,将编码后的视频数据输入第二编码后数据缓冲区。
结合第一方面,在第一方面的第七种实施方式中,所述的移动终端视频编码方法,还包括:
判断当前已创建的编码线程的数量,是否等于当前正在编码的编码线程的数量;
若当前已创建的编码线程的数量,等于当前正在编码的编码线程的数量,则判断当前已创建的编码线程的数量是否小于移动终端中CPU的内核数;
若当前已创建的编码线程的数量,小于移动终端中CPU的内核数,则创建新的编码线程,并为所述新的编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区。
第二方面,本发明实施例提供一种移动终端视频编码装置,包括:视频数据获取模块,用于获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区;编码模块,用于通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到编码后数据缓冲区;编码数据读取模块,用于通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据。
结合第二方面,在第二方面的第一种实施方式中,所述视频数据获取模块,具体用于获取所述原始视频数据,并将获取的所述原始视频数据按照预定顺序轮询输入到两个以上的编码前数据缓冲区。
结合第二方面,在第二方面的第二种实施方式中,所述编码后数据缓冲区的数量为两个以上;
所述编码数据读取模块,用于通过编码数据读线程,按照预定顺序轮询读取各编码后数据缓冲区中编码后的视频数据。
结合第二方面的第一种或第二种实施方式,在第二方面的第三种实施方式中,所述预定顺序为所述两个以上编码线程的创建顺序。
结合第二方面或第二方面的第二种实施方式中,在第二方面的第四种实施方式中,所述的移动终端视频编码装置,还包括:I帧间隔数设置模块,用于设置I帧间隔数;缓冲区大小确定模块,用于根据所述I帧间隔数设置模块设置的I帧间隔数,以及一帧原始视频数据大小,确定各编码前数据缓冲区、各编码后数据缓冲区的大小。
结合第二方面,在第二方面的第五种实施方式中,所述的移动终端视频编码装置,还包括:线程创建模块,用于在所述视频数据获取模块获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区之前,创建两个以上编码线程,为每个编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区;以及创建编码数据读线程。
结合第二方面的五种实施方式,在第二方面的第六种实施方式中,所述的移动终端视频编码装置,所述线程创建模块,包括:
第一线程创建子模块,用于创建第一编码线程,为所述第一编码线程创建第一编码前数据缓冲区和第一编码后数据缓冲区;
第一线程创建子模块,用于创建第二编码线程,为所述第二编码线程创建第二编码前数据缓冲区和第二编码后数据缓冲区;
第一线程创建子模块,用于创建编码数据读线程。
结合第二方面,在第二方面的第七种实施方式中,所述的移动终端视频编码装置,还包括:编码线程动态创建模块,用于判断当前已创建的编码线程的数量,是否等于当前正在编码的编码线程的数量;若当前已创建的编码线程的数量,等于当前正在编码的编码线程的数量,则判断当前已创建的编码线程的数量是否小于移动终端中CPU的内核数;若当前已创建的编码线程的数量,小于移动终端中CPU的内核数,则创建新的编码线程,并为所述新的编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区。
第三方面,本发明实施例提供一种移动终端,所述移动终端包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任一实施方式所述的移动终端视频编码方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施方式所述的移动终端视频编码方法。
本发明实施例提供的一种移动终端视频编码方法、装置、移动终端及计算机可读存储介质,通过将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区,从一定程度上缓解了视频数据因编码效率低导致的数据丢失现象;通过两个以上的编码线程对所述两个以上的编码前数据缓冲区中的视频数据进行编码,从一定程度上缓解了读取数据慢(互斥等待)、编码慢的问题;通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据,可完成多路编码数据的混合和排序;结合上述各个步骤,本实施例能够在缓解视频数据丢失的同时,提高视频数据的编码效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例一移动终端视频编码方法的流程示意图;
图2为本发明实施例二移动终端视频编码方法的流程图;
图3为本发明实施例三中编码线程动态创建的流程图;
图4为本发明实施例四移动终端视频编码方法的流程图;
图5为本发明实施例四移动终端视频编码方法的模型示意图;
图6本发明实施例五移动终端视频编码装置的结构示意图;
图7本发明实施例六移动终端视频编码装置的结构示意图;
图8本发明实施例七移动终端视频编码装置的结构示意图;
图9本发明实施例八移动终端的结构示意图。
具体实施方式
针对现有移动终端上对媒体数据通常采用单线程编码处理机制,而导致数据丢失的现象,本发明实施例提供一种应用于移动终端上的多线程视频编码方法及装置。下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一移动终端视频编码方法的流程示意图。如图1所示,本实施例的方法可以包括:
步骤101、获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区。
本实施例中,所述原始视频数据由移动终端的摄像头采集并输出。
所述原始视频数据可以是YUV视频数据或RGB视频数据。若所述原始视频数据是RGB视频数据,可将所述RGB视频数据转换为YUV视频数据。RGB和YUV都是色彩空间,用于表示颜色,两者可以相互转化。YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法。其中″Y″表示明亮度(Lumina nce或Luma),也就是灰阶值。而″U″和″V″表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
所述移动终端包括但不限于手机、单兵系统、警务通、车载机顶盒等。其中的单兵系统,又称单兵无线集群系统。在日常工作或应对突发事件时由相关人员随身携带或手持设备前往现场,通过3G或WIFI网络信号将现场的实时音视频信息即时回传到后台监控中心,因其特点类似于单兵必备的工具,故又称单兵图传终端。
步骤102、通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到编码后数据缓冲区。
各编码线程可采用MPEG-4、H.264、VC-1或AVS等标准,对从两个以上的编码前数据缓冲区中读取的视频数据进行编码,将编码后的视频数据输入到编码后数据缓冲区。
本实施例中,两个以上的编码线程,可以采取与两个以上的编码前数据缓冲区一一对应的方式,从两个以上的编码前数据缓冲区中读取的视频数据进行编码。比如有两个编码线程S1和S2,以及两个编码前数据缓冲区B1和B2。编码线程S1与编码前数据缓冲区B1相对应,并始终从编码前数据缓冲区B1中读取视频数据进行编码;编码线程S2与编码前数据缓冲区B2相对应,并始终从编码前数据缓冲区B2中读取视频数据进行编码。
在另一可选实施例中,两个以上的编码线程,也可以采取与两个以上的编码前数据缓冲区非一一对应的方式,从两个以上的编码前数据缓冲区中读取的视频数据进行编码。比如,上述编码线程S1可以采用在预定时间段内从编码前数据缓冲区B1中读取视频数据进行编码,在另一预定时间段内从编码前数据缓冲区B2中读取视频数据进行编码。
所述编码后数据缓冲区的数量可以是一个,也可以是两个以上,优选地,编码后数据缓冲区的数量与编码前数据缓冲区的数量相一致,这样可对从各编码前数据缓冲区读取的数据进行编码后获得的编码数据进行分别存储,以利于根据预定的编码顺序对这些编码数据进行组合。
在编码后数据缓冲区的数量为两个以上的情况下,将编码后的视频数据输入到编码后数据缓冲区的方式可以采用类似上面所述的一一对应的方式或非一一对应的方式。
步骤103、通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据。
本实施例,通过将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区,从一定程度上缓解了视频数据因编码效率低导致的数据丢失现象;通过两个以上的编码线程对所述两个以上的编码前数据缓冲区中的视频数据进行编码,从一定程度上缓解了读取数据慢(互斥等待)、编码慢的问题;通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据,可完成多路编码数据的混合和排序;结合上述各个步骤,本实施例能够在缓解视频数据丢失的同时,提高视频数据的编码效率。
根据本发明实施例提供的编码方法,将移动终端摄像头采集的原始视频图像编码后,在网络带宽足够的情况下,720p、1080p视频图像经移动终端回传后,播放流畅度大大提高。
图2为本发明实施例二移动终端视频编码方法的流程图。如图2所示,本实施例的方法可以包括:
步骤201、开启移动终端的摄像头采集原始视频数据。
本实施例中,关于所述原始视频数据及移动终端的说明,可参看上述步骤101中的相关说明,在此不再赘述。
步骤202、获取所述原始视频数据,并将获取的所述原始视频数据按照预定顺序轮询输入到两个以上的编码前数据缓冲区。
本实施例中,在本步骤之前,可预先创建两个以上编码线程,为每个编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区;以及,预先创建编码数据读线程。
例如,在本步骤之前,可预先创建第一编码线程,为所述第一编码线程创建第一编码前数据缓冲区和第一编码后数据缓冲区;预先创建第二编码线程,为所述第二编码线程创建第二编码前数据缓冲区和第二编码后数据缓冲区;以及,预先创建编码数据读线程。
应当理解的是,本实施例中是以预先创建两个编码线程即第一编码线程和第二编码线程为例来进行说明的,本发明不限于此,除了预先创建第一编码线程和第二编码线程外,还可创建第三编码线程、第四编码线程等其它编码线程。
作为一可选实施方式,各编码前数据缓冲区、各编码后数据缓冲区的大小各自可为I帧间隔数乘以一帧原始视频数据大小。所述I帧间隔数即为I帧在视频流中两次出现的间隔数。举例来讲,若I帧间隔数为25,则代表在视频流中I帧出现的周期是25,两个I帧之间有24个其它类型的帧如P帧。缓冲区大小设置为I帧间隔数的原因在于,编码开始时第一帧为I帧,后续编码需要参考该I帧进行其它帧类型的编码(比如P帧),直到产生下一个I帧,因此,本实施例中,将用于多线程编码的各数据缓冲区的大小定为I帧间隔数与一帧原始视频数据大小相乘所得的结果大小。
本实施例中,可按照各编码线程的创建顺序,将获取的所述原始视频数据按照预定顺序轮询输入到各编码线程所对应的编码前数据缓冲区。
按照预定顺序轮询输入的依据是按照各编码线程的创建顺序,判断对应的各编码前数据缓冲区中是否有数据,有数据则不输入,无数据则输入。具体来讲,若第一编码线程先于第二编码线程创建,可先判断第一编码前数据缓冲区中是否有数据,若第一编码前数据缓冲区中无数据,则将原始视频数据输入第一编码前数据缓冲区,当输入的原始视频数据单元达到预定大小时,再判断第二编码前数据缓冲区中是否有数据,若第二编码前数据缓冲区中也无数据,则将原始视频数据输入第二编码前数据缓冲区直至输入的视频数据单元达到预定大小,如此轮询。
作为一等同实施方式,也可按照各编码前数据缓冲区的创建顺序,将获取的所述原始视频数据按照预定顺序轮询输入到各编码前数据缓冲区。比如,第一编码前数据缓冲区先于第二编码前数据缓冲区创建,将获取的所述原始视频数据按照预定顺序轮询输入第一编码前数据缓冲区和第二编码前数据缓冲区。
作为一可选实施方式,所述各缓冲区的创建也可采用链表的方式创建。
步骤203、通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到对应的编码后数据缓冲区。
本实施例中,通过预先创建的两个以上的编码线程,分别对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到对应的编码后数据缓冲区。
具体来讲,可通过第一编码线程读取所述第一编码前数据缓冲区中的视频数据并对其进行编码,将编码后的视频数据输入第一编码后数据缓冲区;通过第二编码线程读取所述第二编码前数据缓冲区中的视频数据并对其进行编码,将编码后的视频数据输入第二编码后数据缓冲区。
各编码线程可采用MPEG-4、H.264、VC-1或AVS等标准,对从对应的编码前数据缓冲区中读取的视频数据进行编码,将编码后的视频数据输入到对应的编码后数据缓冲区。
各编码线程从编码前数据缓冲区中读取视频数据并进行编码的过程,可并行进行,以进一步提高视频数据的编码效率。
步骤204、通过编码数据读线程按照预定顺序轮询读取各编码后数据缓冲区中编码后的视频数据。
本实施例中,编码数据读线程可按照各编码线程的创建顺序,按照预定顺序轮询读取各编码后数据缓冲区中编码后的视频数据,以使编码前的视频数据与编码后的视频数据在顺序上的一致性。
作为一等同实施方式,编码数据读线程也可按照各编码后数据缓冲区的创建顺序,按照预定顺序轮询读取各编码后数据缓冲区中编码后的视频数据,以使编码前的视频数据与编码后的视频数据在顺序上的一致性。
步骤205、对编码数据读线程读取的编码后的视频数据添加封装格式。
本实施例,通过将获取的所述原始视频数据,按照预定顺序轮询输入到两个以上的编码前数据缓冲区,通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,在缓解视频数据丢失的同时,能够提高视频数据的编码效率。
实施例三
本实施例移动终端视频编码方法与实施例二所述的方法基本相同,不同之处在于,本实施例中,在已创建的两个以上的编码线程对所述两个以上的编码前数据缓冲区中的视频数据进行编码时,可根据移动终端中CPU的使用率,动态创建更多的编码线程,以便充分利用移动终端的系统资源,提高视频数据的编码效率。
图3为本发明实施例三中编码线程动态创建的流程图。参看图3,本实施例中,动态创建编码线程的过程包括:
步骤301、判断当前已创建的编码线程的数量T,是否等于当前正在编码的编码线程的数量M。
若当前已创建的编码线程的数量T,等于当前正在编码的编码线程的数量M,则执行步骤302,否则结束本流程。本实施例中,当前已创建的编码线程的数量T,等于当前正在编码的编码线程的数量M,即表明当前已创建的编码线程,均为当前正在编码的编码线程。
步骤302、判断当前已创建的编码线程的数量T,是否小于移动终端中CPU的内核数K;
若当前已创建的编码线程的数量T,小于移动终端中CPU的内核数K,则执行步骤303,否则,结束本流程。
步骤303、创建新的编码线程。
本实施例中,在创建新的编码线程后,为所述新的编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区。
实施例四
下面采用一个具体的实施例,对图1~图3中任一个所示方法实施例的技术方案进行详细说明。本实施例的适用场景可以对移动终端采集的YUV视频数据进行编码。
图4为本发明实施例四移动终端视频编码方法的流程图,图5为本发明实施例四移动终端视频编码方法的模型示意图。结合图4及图5所示,本实施例的移动终端视频编码方法可以包括:
S1、开启手机的摄像头采集原始YUV视频数据。
S2、获取所述原始视频数据,并将获取的所述原始视频数据按照预定顺序轮询输入到三个编码前数据缓冲区。
图4中,S12、S22和S23依次表示第一YUV数据缓冲区、第二YUV数据缓冲区和第三YUV数据缓冲区。参看图5,本实施例中,各YUV数据缓冲区、各H.264数据缓冲区的I帧间隔数为50。
S3、对所述三个编码前数据缓冲区中的视频数据进行多线程编码.
图4中,S13表示通过第一编码线程对第一YUV数据缓冲区中的YUV数据进行编码;S23表示通过第二编码线程对第二YUV数据缓冲区中的YUV数据进行编码;S33表示通过第三编码线程对第三YUV数据缓冲区中的YUV数据进行编码;各编码线程采用H.264标准。
S4、将编码后的视频数据输入到对应的编码后数据缓冲区。
图4中,S14、S24和S34依次表示第一H.264数据缓冲区、第二H.264数据缓冲区和第三H.264数据缓冲区。
S5、通过编码数据读线程按照预定顺序轮询读取各H.264数据缓冲区中的H.264视频数据。
S6、对编码数据读线程读取的编码后的H.264视频数据添加封装格式,即打封装。
实施例五
图6本发明实施例五移动终端视频编码装置的结构示意图。参看图6,本实施例移动终端视频编码装置,包括:视频数据获取模块11、编码模块12和编码数据读取模块13;其中,视频数据获取模块11,用于获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区;编码模块12,用于通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到对应的编码后数据缓冲区;编码数据读取模块13,用于通过编码数据读线程,读取各编码后数据缓冲区中编码后的视频数据。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例六
图7本发明实施例六移动终端视频编码装置的结构示意图。参看图7,本实施例移动终端视频编码装置的结构与实施例五的结构基本相同,不同之处在于,本实施例中,所述视频数据获取模块11,具体用于获取所述原始视频数据,并将获取的所述原始视频数据按照预定顺序轮询输入到两个以上的编码前数据缓冲区。
所述编码数据读取模块13,具体用于通过编码数据读线程,按照预定顺序轮询读取各编码后数据缓冲区中编码后的视频数据。
其中,所述预定顺序为所述两个以上编码线程的创建顺序。
可选的,所述预定顺序也可为各编码前数据缓冲区的创建顺序。
可选地,所述预定顺序还可为各编码后数据缓冲区的创建顺序。
作为一可选实施方式,所述的移动终端视频编码装置,还包括:I帧间隔数设置模块14,用于设置I帧间隔数;缓冲区大小确定模块15,用于根据所述I帧间隔数设置模块设置的I帧间隔数,以及一帧原始视频数据大小,确定各编码前数据缓冲区、各编码后数据缓冲区的大小。可将所述I帧间隔数与一帧原始视频数据大小相乘所得的结果大小作为各编码前数据缓冲区和/或各编码后数据缓冲区的大小。
作为一可选实施方式所述的移动终端视频编码装置,还包括:线程创建模块16,用于在所述视频数据获取模块获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区之前,创建两个以上编码线程,为每个编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区;以及创建编码数据读线程。
进一步地,所述线程创建模块16,可包括:第一线程创建子模块,用于创建第一编码线程,为所述第一编码线程创建第一编码前数据缓冲区和第一编码后数据缓冲区;第一线程创建子模块,用于创建第二编码线程,为所述第二编码线程创建第二编码前数据缓冲区和第二编码后数据缓冲区;第一线程创建子模块,用于创建编码数据读线程。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例七
图8本发明实施例七移动终端视频编码装置的结构示意图。参看图8,本实施例移动终端视频编码装置的结构与实施例五或实施例六的结构基本相同,不同之处在于,本实施例中,所述的移动终端视频编码装置,还包括:编码线程动态创建模块17,用于判断当前已创建的编码线程的数量,是否等于当前正在编码的编码线程的数量;若当前已创建的编码线程的数量,等于当前正在编码的编码线程的数量,则判断当前已创建的编码线程的数量是否小于移动终端中CPU的内核数;若当前已创建的编码线程的数量,小于移动终端中CPU的内核数,则创建新的编码线程,并为所述新的编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区。
本实施例的装置,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例八
图9本发明实施例八移动终端的结构示意图。参看图9,本实施例一种移动终端,包括:壳体41;位于壳体41内的电路板44,位于所述电路板44上的至少一个处理器42;以及,与所述至少一个处理器42通信连接的存储器43;其中,所述存储器43存储有可被所述至少一个处理器42执行的计算机程序,所述计算机程序被所述至少一个处理器42执行,以使所述至少一个处理器42能够执行前述任一实施例所述的移动终端视频软编码方法。
所述移动终端包括但不限于手机、单兵系统、警务通、车载机顶盒等。其中的单兵系统,又称单兵无线集群系统。在日常工作或应对突发事件时由相关人员随身携带或手持设备前往现场,通过3G或WIFI网络信号将现场的实时音视频信息即时回传到后台监控中心,因其特点类似于单兵必备的工具,故又称单兵图传终端。
本实施例,通过将移动终端摄像头获取的所述原始视频数据,按照预定顺序轮询输入到移动终端内部两个以上的编码前数据缓冲区,通过创建的两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,能够提高视频数据的编码效率。
本发明实施例还提供一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施方式所述的移动终端视频编码方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种移动终端视频编码方法,其特征在于,包括:
获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区;
通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到编码后数据缓冲区;
通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据。
2.根据权利要求1所述的移动终端视频编码方法,其特征在于,所述获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区,包括:
获取所述原始视频数据,并将获取的所述原始视频数据按照预定顺序轮询输入到两个以上的编码前数据缓冲区。
3.根据权利要求1所述的移动终端视频编码方法,其特征在于,所述编码后数据缓冲区的数量为两个以上;
所述通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据,包括:
通过编码数据读线程,按照预定顺序轮询读取各编码后数据缓冲区中编码后的视频数据。
4.根据权利要求2或3所述的移动终端视频编码方法,其特征在于,
所述预定顺序为所述两个以上编码线程的创建顺序;或者,
所述预定顺序为各编码前数据缓冲区的创建顺序;或者,
所述预定顺序为各编码后数据缓冲区的创建顺序。
5.根据权利要求1或3所述的移动终端视频编码方法,其特征在于,各编码前数据缓冲区、各编码后数据缓冲区的大小各自为I帧间隔数乘以一帧原始视频数据大小。
6.根据权利要求1所述的移动终端视频编码方法,其特征在于,在获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区之前,所述方法还包括:
创建两个以上编码线程,为每个编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区;以及创建编码数据读线程。
7.根据权利要求6所述的移动终端视频编码方法,其特征在于,所述创建两个以上编码线程,为每个编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区,包括:
创建第一编码线程,为所述第一编码线程创建第一编码前数据缓冲区和第一编码后数据缓冲区;
创建第二编码线程,为所述第二编码线程创建第二编码前数据缓冲区和第二编码后数据缓冲区;
其中,所述获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区,包括:
获取原始视频数据,并将获取的所述原始视频数据输入到所述第一编码前数据缓冲区和所述第二编码前数据缓冲区;
所述通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到编码后数据缓冲区,包括:
通过第一编码线程对所述第一编码前数据缓冲区中的视频数据进行编码,将编码后的视频数据输入第一编码后数据缓冲区;
通过第二编码线程对所述第二编码前数据缓冲区中的视频数据进行编码,将编码后的视频数据输入第二编码后数据缓冲区。
8.根据权利要求1所述的移动终端视频编码方法,其特征在于,还包括:
判断当前已创建的编码线程的数量,是否等于当前正在编码的编码线程的数量;
若当前已创建的编码线程的数量,等于当前正在编码的编码线程的数量,则判断当前已创建的编码线程的数量是否小于移动终端中CPU的内核数;
若当前已创建的编码线程的数量,小于移动终端中CPU的内核数,则创建新的编码线程,并为所述新的编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区。
9.一种移动终端视频编码装置,其特征在于,包括:
视频数据获取模块,用于获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区;
编码模块,用于通过两个以上的编码线程,对所述两个以上的编码前数据缓冲区中的视频数据进行编码,并将编码后的视频数据输入到编码后数据缓冲区;
编码数据读取模块,用于通过编码数据读线程,读取编码后数据缓冲区中编码后的视频数据。
10.根据权利要求9所述的移动终端视频编码装置,其特征在于,所述视频数据获取模块,具体用于获取所述原始视频数据,并将获取的所述原始视频数据按照预定顺序轮询输入到两个以上的编码前数据缓冲区。
11.根据权利要求9所述的移动终端视频编码装置,其特征在于,所述编码后数据缓冲区的数量为两个以上;
所述编码数据读取模块,用于通过编码数据读线程,按照预定顺序轮询读取各编码后数据缓冲区中编码后的视频数据。
12.根据权利要求10或11所述的移动终端视频编码装置,其特征在于,
所述预定顺序为所述两个以上编码线程的创建顺序;或者,
所述预定顺序为各编码前数据缓冲区的创建顺序;或者,
所述预定顺序为各编码后数据缓冲区的创建顺序。
13.根据权利要求9或11所述的移动终端视频编码装置,其特征在于,还包括:
I帧间隔数设置模块,用于设置I帧间隔数;
缓冲区大小确定模块,用于根据所述I帧间隔数设置模块设置的I帧间隔数,以及一帧原始视频数据大小,确定各编码前数据缓冲区、各编码后数据缓冲区的大小。
14.根据权利要求9所述的移动终端视频编码装置,其特征在于,还包括:
线程创建模块,用于在所述视频数据获取模块获取原始视频数据,并将获取的所述原始视频数据输入到两个以上的编码前数据缓冲区之前,创建两个以上编码线程,为每个编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区;以及创建编码数据读线程。
15.根据权利要求14所述的移动终端视频编码装置,其特征在于,所述线程创建模块,包括:
第一线程创建子模块,用于创建第一编码线程,为所述第一编码线程创建第一编码前数据缓冲区和第一编码后数据缓冲区;
第一线程创建子模块,用于创建第二编码线程,为所述第二编码线程创建第二编码前数据缓冲区和第二编码后数据缓冲区;
第一线程创建子模块,用于创建编码数据读线程。
16.根据权利要求9所述的移动终端视频编码装置,其特征在于,还包括:
编码线程动态创建模块,用于判断当前已创建的编码线程的数量,是否等于当前正在编码的编码线程的数量;若当前已创建的编码线程的数量,等于当前正在编码的编码线程的数量,则判断当前已创建的编码线程的数量是否小于移动终端中CPU的内核数;若当前已创建的编码线程的数量,小于移动终端中CPU的内核数,则创建新的编码线程,并为所述新的编码线程创建对应的编码前数据缓冲区和编码后数据缓冲区。
17.一种移动终端,其特征在于,所述移动终端包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述权利要求1-8任一项所述的视频软编码方法。
18.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
CN201710732220.7A 2017-08-23 2017-08-23 一种移动终端视频编码方法、装置及移动终端 Pending CN109429070A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710732220.7A CN109429070A (zh) 2017-08-23 2017-08-23 一种移动终端视频编码方法、装置及移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710732220.7A CN109429070A (zh) 2017-08-23 2017-08-23 一种移动终端视频编码方法、装置及移动终端

Publications (1)

Publication Number Publication Date
CN109429070A true CN109429070A (zh) 2019-03-05

Family

ID=65500228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710732220.7A Pending CN109429070A (zh) 2017-08-23 2017-08-23 一种移动终端视频编码方法、装置及移动终端

Country Status (1)

Country Link
CN (1) CN109429070A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111343503A (zh) * 2020-03-31 2020-06-26 北京金山云网络技术有限公司 视频的转码方法、装置、电子设备及存储介质
CN111541941A (zh) * 2020-05-07 2020-08-14 杭州趣维科技有限公司 一种移动端多编码器加速编码的方法
WO2021109892A1 (zh) * 2019-12-03 2021-06-10 深圳市道通智能航空技术股份有限公司 一种视频数据的传输方法及终端

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102498A (zh) * 2007-07-26 2008-01-09 北京华纬讯电信技术有限公司 一种高清视频图像处理方法
CN101107863A (zh) * 2005-01-19 2008-01-16 汤姆森特许公司 用于实时并行编码的方法和装置
CN101610197A (zh) * 2008-06-16 2009-12-23 中兴通讯股份有限公司 一种缓冲区管理方法及其系统
WO2010056333A1 (en) * 2008-11-13 2010-05-20 Thomson Licensing Multiple thread video encoding using bit overshooting compensation
CN101969560A (zh) * 2010-11-01 2011-02-09 北京中科大洋科技发展股份有限公司 一种多核平台下Mpeg2高清编码器的Slice码率分配方法
CN102710940A (zh) * 2012-06-04 2012-10-03 公安部第三研究所 基于dsp平台利用运动估计算法实现优化视频编码的方法
CN103442357A (zh) * 2013-08-30 2013-12-11 大唐移动通信设备有限公司 一种扩充最大支持用户数的方法及装置
CN103533356A (zh) * 2013-10-10 2014-01-22 深圳市智美达科技有限公司 视频数据传输方法和装置
CN103716624A (zh) * 2012-10-05 2014-04-09 创惟科技股份有限公司 图像数据处理方法
CN103747253A (zh) * 2013-12-27 2014-04-23 高新兴科技集团股份有限公司 一种基于fifo的视频编码数据传输方法
CN106576168A (zh) * 2015-02-09 2017-04-19 株式会社日立信息通信工程 图像压缩解压缩装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101107863A (zh) * 2005-01-19 2008-01-16 汤姆森特许公司 用于实时并行编码的方法和装置
US20080137736A1 (en) * 2005-01-19 2008-06-12 Joseph J. Laks, Patent Operations Method and Apparatus for Real Time Parallel Encoding
CN101102498A (zh) * 2007-07-26 2008-01-09 北京华纬讯电信技术有限公司 一种高清视频图像处理方法
CN101610197A (zh) * 2008-06-16 2009-12-23 中兴通讯股份有限公司 一种缓冲区管理方法及其系统
WO2010056333A1 (en) * 2008-11-13 2010-05-20 Thomson Licensing Multiple thread video encoding using bit overshooting compensation
CN101969560A (zh) * 2010-11-01 2011-02-09 北京中科大洋科技发展股份有限公司 一种多核平台下Mpeg2高清编码器的Slice码率分配方法
CN102710940A (zh) * 2012-06-04 2012-10-03 公安部第三研究所 基于dsp平台利用运动估计算法实现优化视频编码的方法
CN103716624A (zh) * 2012-10-05 2014-04-09 创惟科技股份有限公司 图像数据处理方法
CN103442357A (zh) * 2013-08-30 2013-12-11 大唐移动通信设备有限公司 一种扩充最大支持用户数的方法及装置
CN103533356A (zh) * 2013-10-10 2014-01-22 深圳市智美达科技有限公司 视频数据传输方法和装置
CN103747253A (zh) * 2013-12-27 2014-04-23 高新兴科技集团股份有限公司 一种基于fifo的视频编码数据传输方法
CN106576168A (zh) * 2015-02-09 2017-04-19 株式会社日立信息通信工程 图像压缩解压缩装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021109892A1 (zh) * 2019-12-03 2021-06-10 深圳市道通智能航空技术股份有限公司 一种视频数据的传输方法及终端
CN111343503A (zh) * 2020-03-31 2020-06-26 北京金山云网络技术有限公司 视频的转码方法、装置、电子设备及存储介质
CN111343503B (zh) * 2020-03-31 2022-03-04 北京金山云网络技术有限公司 视频的转码方法、装置、电子设备及存储介质
CN111541941A (zh) * 2020-05-07 2020-08-14 杭州趣维科技有限公司 一种移动端多编码器加速编码的方法
CN111541941B (zh) * 2020-05-07 2021-10-29 杭州小影创新科技股份有限公司 一种移动端多编码器加速编码的方法

Similar Documents

Publication Publication Date Title
US11354824B2 (en) Image processing apparatus and method
CN101690190B (zh) 成像设备和成像方法
CN105163127B (zh) 视频分析方法及装置
RU2511595C2 (ru) Устройство декодирования сигнала изображения, способ декодирования сигнала изображения, устройство кодирования сигнала изображения, способ кодирования изображения и программа
US20180205972A1 (en) Device and method for entropy encoding and decoding
CN109429070A (zh) 一种移动终端视频编码方法、装置及移动终端
US20190208161A1 (en) Video signal transmission method and device
CN101640784A (zh) 一种在视频会议系统中控制多画面复合的控制装置及方法
US20160100161A1 (en) Decoder, encoder, decoding method, encoding method, and codec system
CN103238321A (zh) 用于对分层结构的符号进行编码的视频编码方法及其装置以及用于对分层结构的符号进行解码的视频解码方法及其装置
CN107683607A (zh) 信息处理设备和信息处理方法
CN105072353B (zh) 一种基于多gpu的图像解码拼控方法
EP2955920A1 (en) Method and system for encoding and decoding, encoder and decoder
US11949853B2 (en) Data decoding method and apparatus, and data coding method and apparatus
CN103581679A (zh) 由量化控制改良解码器性能的方法与系统
CN106454186A (zh) 基于安卓系统的多路视频录制及平台交互的方法及装置
CN110401833A (zh) 图像传输方法及装置
US20060120461A1 (en) Two processor architecture supporting decoupling of outer loop and inner loop in video decoder
JP3044749B2 (ja) 映像信号符号化装置
US20070053432A1 (en) Image processing apparatus
CN102300102B (zh) 利用色彩解耦的视讯传输的方法及其装置
US20150245064A1 (en) Coding Method And Device Applied To HEVC-based 3DVC
CN102025936A (zh) 视频宽高比转换方法及装置
US20150271492A1 (en) Systems and Methods for Group of Pictures Encoding
US20140055471A1 (en) Method for providing scalable remote screen image and apparatus thereof

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190305

RJ01 Rejection of invention patent application after publication