CN103260017A - 视频处理方法、视频处理装置及视频处理系统 - Google Patents
视频处理方法、视频处理装置及视频处理系统 Download PDFInfo
- Publication number
- CN103260017A CN103260017A CN2013102099835A CN201310209983A CN103260017A CN 103260017 A CN103260017 A CN 103260017A CN 2013102099835 A CN2013102099835 A CN 2013102099835A CN 201310209983 A CN201310209983 A CN 201310209983A CN 103260017 A CN103260017 A CN 103260017A
- Authority
- CN
- China
- Prior art keywords
- result
- video
- frame
- processing
- serial number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种视频处理方法、视频处理装置及视频处理系统。视频处理方法包括:从前一处理流程接收或从帧存单元中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果;在本处理流程中对第一处理结果进行第二处理,得到第二处理结果;将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。通过上述方式,本申请能够解决现有技术不能在保持视频处理的各个处理环节相对独立基础上降低视频处理的延迟时间的问题。
Description
技术领域
本申请涉及流媒体技术领域,具体是涉及一种视频处理方法,还涉及一种视频处理装置,另外还涉及一种视频处理系统。
背景技术
终端设备上的视频应用已经广泛深入到人们的日常生活中。比较传统的视频应用是视频广播,诸如DVB(Digital Video Broadcasting,数字视频广播)、IPTV(Internet Protocol Television,交互式网络电视)等。人们通过终端设备即可观看视频内容。视频广播的关键是视频处理,人们对视频处理的需求主要体现在图像连贯性和图像质量上,大多数的终端设备都能够满足需求。
由于网络技术的发展,视频应用逐渐向视频通信方向发展,涵盖了视频电话、云游戏、家庭视频互动等等,这些视频应用在视频处理时,除了要求图像质量外,还要求低延迟时间。即“反应快”。以视频电话为例,一端输出一个视频帧后,总是希望在尽可能短的时间内将该视频帧发至另一端并及时显示,如果这个过程的延迟时间很长,尽管视频帧没有失真、前后也连贯,视频电话的双方的最终体验也会很差。因此,低延迟是这类视频应用的核心诉求。
本申请的发明人在长期的研发中发现,现有技术中的视频处理系统普遍采用流水线结构,这种流水线结构处理流程较为规范,组件结构清晰,然而,这种流水线结构并没有考虑到低延迟问题。例如,参阅图1,是现有技术一种视频处理系统的结构示意图。该视频处理系统包括总控器101、解码器102、后处理器103和显存器104。总控器101获取到一个视频帧后,将视频帧送往解码器102,解码器102解码完成后,总控器101再将视频帧送往后处理器103,后处理器103进行后处理,后处理包括对图像进行缩放、去块效应、锐化、颜色增强等,后处理完成后,总控器101再将视频帧送往显存器104进行暂存,如果需要显示,则总控器101从显存器104中取出视频帧并输出显示。该视频处理系统中,各个处理环节相对独立,然而,视频帧从进入总控器101开始到总控器101输出结束,所经历的延迟时间为各个处理环节的延迟时间总和,对于包含更多处理环节的视频处理系统,总延迟时间将更长。因此,该视频处理系统进行视频处理时具有较大的延迟时间,很难应用于对延迟敏感的视频应用中。
为了降低延迟时间,现有技术采取的一种方式是将解码、后处理及显存等环节全部集成于一个硬件上,从而在解码视频帧的一小部分后,随即进行后处理,所以解码完成的同时后处理也几乎完成,同样的,显存也能够达到同步,在时序满足要求的条件下这类硬件的视频处理可以实现边处理边显示。然而,这类硬件的设计与传统的流水线结构的设计相悖,虽然降低了延迟时间但也存在一些问题:由于集成全部环节,硬件包揽、开发和验证的工作量很大;设计完成后如果存在缺陷将难以规避;传统的流水线结构可以将各组件分离或者增加新的组件,而该硬件无法进行分离和扩展;该硬件只能处理一个视频帧,无法分时复用,即同时处理多个视频帧;处理流程不规范,兼容性差。
发明内容
有鉴于此,本申请提供了一种视频处理方法、视频处理装置及视频处理系统,以解决现有技术不能在保持视频处理的各个处理环节相对独立基础上降低视频处理的延迟时间的问题。
为解决上述问题,本申请第一方面提供一种视频处理方法,视频处理方法包括:从前一处理流程接收或从帧存单元中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果;在本处理流程中对第一处理结果进行第二处理,得到第二处理结果;将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。
结合第一方面,在第一种可能的实现方式中,对第一处理结果进行第二处理,得到第二处理结果之后还包括:继续执行对前一处理流程对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果进行第二处理的步骤,直至将第一视频帧的全部数据都处理完毕。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,前一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号并将处理流水号写入第一同步单元,处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,从前一处理流程接收或从帧存单元中读取第一处理结果之前还包括:从第一同步单元读取与第一处理结果对应的处理流水号;判断第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号;如果判断结果为是,则接收或读取第一处理结果,如果判断结果为否,则暂停接收或读取第一处理结果。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,前一处理流程还为进行第一处理得到的所有第一处理结果添加帧标记,将帧标记与处理流水号一同写入第一同步单元中,帧标记用于表示第一处理结果属于第一视频帧。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,从第一同步单元读取与第一处理结果对应的处理流水号之前还包括:从第一同步单元读取帧标记;根据帧标记判断第一处理结果是否属于第一视频帧;如果判断结果为否,则跳过判断第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤,并接收或读取第一处理结果,如果判断结果为是,则执行判断第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元的步骤还包括:将进行第二处理的第一处理结果的帧标记和处理流水号写入第二同步单元中,以使得后一处理流程从第二同步单元读取帧标记和处理流水号,并根据帧标记和处理流水号判断接收或获取第二处理结果的步骤是否需要暂停。
结合第一方面,在第七种可能的实现方式中,第一处理为对第一视频帧的部分数据进行解码,第二处理为对第一处理结果进行去块效应,或者第一处理为对第一视频帧的部分数据进行去块效应,第二处理为对第一处理结果进行锐化。
为解决上述问题,本申请第二方面提供一种视频处理方法,视频处理方法包括:接收前一处理流程处理得到的第一视频帧;在本处理流程中对第一视频帧的部分数据进行第一处理,得到第一处理结果;将第一处理结果发送给后一处理流程或写入帧存单元,以使得后一处理流程对第一处理结果进行第二处理,或从帧存单元中读取第一处理结果并进行第二处理。
结合第二方面,在第一种可能的实现方式中,对第一视频帧的部分数据进行第一处理,得到第一处理结果之后包括:继续执行对第一视频帧的剩余数据的至少一部分数据进行第一处理的步骤,直至将第一视频帧的全部数据都处理完毕。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,在本处理流程中对第一视频帧的部分数据进行第一处理,得到第一处理结果的步骤还包括:为每次第一处理设置处理流水号,处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,将第一处理结果发送给后一处理流程或写入帧存单元的步骤还包括:在发送或写入第一处理结果时,将与第一处理结果对应的处理流水号写入同步单元,以使得后一处理流程在接收或读取第一处理结果之前,从同步单元读取处理流水号,并判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号,如果判断结果为是,则接收或读取第一处理结果,如果判断结果为否,则暂停接收或读取第一处理结果。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,将第一处理结果发送给后一处理流程或写入帧存单元的步骤还包括:为进行第一处理而得到的所有第一处理结果添加帧标记,并将帧标记与处理流水号一同写入同步单元中,帧标记用于表示第一处理结果属于第一视频帧,以使得后一处理流程从同步单元读取处理流水号之前。从同步单元读取帧标记,根据帧标记判断第一处理结果是否属于第一视频帧,如果判断结果为否,则跳过判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤,并接收或读取第一处理结果,如果判断结果为是,则执行判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤。
为解决上述问题,本申请第三方面提供一种视频处理装置,视频处理装置包括接收模块、处理模块和发送模块,其中,接收模块用于从前一处理流程接收或从帧存单元中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果,并将第一处理结果传输给处理模块;处理模块用于从接收模块接收第一处理结果,在本处理流程中对第一处理结果进行第二处理,得到第二处理结果,并将第二处理结果传输给发送模块;发送模块用于从处理模块接收第二处理结果,将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。
结合第三方面,在第一种可能的实现方式中,处理模块对第一处理结果进行第二处理,得到第二处理结果之后,接收模块还用于继续接收或获取前一处理流程对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果;处理模块还用于继续对第一处理结果进行第二处理,直至将第一视频帧的全部数据都处理完毕。
结合第三方面的第一种可能的实施方式,在第二种可能的实现方式中,前一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号并将处理流水号写入第一同步单元,处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序,视频处理装置还包括读取模块和第一判断模块,读取模块在接收模块从前一处理流程接收或从帧存单元中读取第一处理结果之前,用于从第一同步单元读取与第一处理结果对应的处理流水号;第一判断模块用于判断第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号;接收模块还用于在第一判断模块的判断结果为是时,接收或读取第一处理结果;在第一判断模块的判断结果为否时,暂停接收或读取第一处理结果。
结合第三方面的第二种可能的实施方式,在第三种可能的实现方式中,前一处理流程还为进行第一处理得到的所有第一处理结果添加帧标记,将帧标记与处理流水号一同写入第一同步单元中,帧标记用于表示第一处理结果属于第一视频帧,视频处理装置还包括第二判断模块,读取模块从第一同步单元读取与第一处理结果对应的处理流水号之前,还用于从第一同步单元读取帧标记;第二判断模块用于根据帧标记判断第一处理结果是否属于第一视频帧;第一判断模块还用于在第二判断模块的判断结果为否时,取消判断第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号;在第二判断模块的判断结果为是时,判断第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号;接收模块还用于在第二判断模块的判断结果为否时,接收或读取第一处理结果。
结合第三方面的第三种可能的实施方式,在第四种可能的实现方式中,发送模块还用于将进行第二处理的第一处理结果的帧标记和处理流水号写入第二同步单元中,以使得后一处理流程从第二同步单元读取帧标记和处理流水号,并根据帧标记和处理流水号判断是否需要暂停接收或获取第二处理结果。
为解决上述问题,本申请第四方面提供一种视频处理系统,视频处理系统包括帧存单元、第一视频处理装置及第二视频处理装置,其中,第一视频处理装置用于在第一处理流程中对第一视频帧的部分数据进行第一处理而得到第一处理结果,并将第一处理结果发送给第二视频处理装置或将第一处理结果写入帧存单元;第二视频处理装置用于从第一视频处理装置接收或从帧存单元中读取第一处理结果,在第二处理流程中对第一处理结果进行第二处理而得到第二处理结果。
结合第四方面,在第一种可能的实现方式中,第二视频处理装置在第二处理流程中对第一处理结果进行第二处理而得到第二处理结果之后,还用于继续从第一视频处理装置接收或从帧存单元中读取第一视频处理装置在第一处理流程中对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,视频处理系统还包括同步单元,第一视频处理装置在第一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号并将处理流水号写入同步单元,处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,第二视频处理装置从第一视频处理装置接收或从帧存单元中读取第一处理结果之前,还用于从同步单元读取与第一处理结果对应的处理流水号,并判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号,如果判断结果为是,则接收或读取第一处理结果,如果判断结果为否,则暂停接收或读取第一处理结果。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,第一视频处理装置还用于为进行第一处理得到的所有第一处理结果添加帧标记,将帧标记与处理流水号一同写入同步单元中,帧标记用于表示第一处理结果属于第一视频帧。
结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,第二视频处理装置从同步单元读取与第一处理结果对应的处理流水号之前,还用于从同步单元读取帧标记,根据帧标记判断第一处理结果是否属于第一视频帧,如果判断结果为否,则取消判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤,并接收或读取第一处理结果,如果判断结果为是,则判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号。
结合第四方面、第四方面的第一种、第二种、第三种、第四种或第五种可能的实现方式,在第六种可能的实现方式中,视频处理系统还包括第三视频处理装置,第二视频处理装置还用于将第二处理结果发送给第三视频处理装置或将第二处理结果写入帧存单元,第三视频处理装置用于从第二视频处理装置接收或从帧存单元中读取第二处理结果,在第三处理流程中对第二处理结果进行第三处理而得到第三处理结果。
本申请的视频处理方法、视频处理装置及视频处理系统通过将前一处理流程处理第一视频帧的部分数据得到的第一处理结果发给本处理流程,本处理流程接收或者从帧存单元读取第一处理结果进行第二处理,再将第二处理结果发送给后一处理流程或写入帧存单元,从而将处理一个视频帧的延迟时间降低为处理部分数据的延迟时间,通过这种方式,解决了现有技术不能在保持视频处理的各个处理环节相对独立基础上降低视频处理的延迟时间的问题,能够允许分时复用处理多个视频帧,可以减小设计难度,保证兼容性。
附图说明
图1是是现有技术一种视频处理系统的结构示意图;
图2是本申请视频处理方法第一实施方式的流程示意图;
图3是本申请视频处理方法第二实施方式的流程示意图;
图4是本申请视频处理方法第三实施方式的流程示意图;
图5是图4所示的方法的运行机制示意图;
图6是本申请视频处理方法第四实施方式的流程示意图;
图7是本申请视频处理方法第五实施方式的流程示意图;
图8是本申请视频处理装置第一实施方式的结构示意图;
图9是本申请视频处理装置第二实施方式的结构示意图;
图10是本申请视频处理系统一实施方式的结构示意图;
图11是本申请视频处理装置第三实施方式的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面结合附图和具体的实施方式进行说明。
参阅图2,是本申请视频处理方法第一实施方式的流程示意图。视频处理方法包括以下步骤:
步骤S210:从前一处理流程接收或从帧存单元中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果。
其中,处理第一视频帧时具有多个处理流程,每个处理流程对应不同的处理环节,这些处理环节可以包括预处理、解码、后处理、显示等,这些处理环节都是具有固定的先后顺序的。这里,前一处理流程可以是最开始的处理环节,也可以是中间的某个处理环节,第一处理则是进行相应的处理环节。
第一视频帧是待处理的一幅图像,而构成图像的单位是像素,部分数据则是若干像素的集合。在本实施方式中,部分数据为第一视频帧的一行像素。
在接收第一处理结果时,如果直接从前一处理流程接收第一处理结果,那么前一处理流程包含具有缓存功能的单元,前一处理流程每对一行像素进行第一处理得到第一处理结果后,该单元就缓存第一处理结果。在需要发送第一处理结果时,再从该单元读取第一处理结果。
如果从帧存单元接收第一处理结果,那么帧存单元也具有上述的缓存功能。该帧存单元脱离于前一处理流程,是独立的一个单元。由于帧存单元独立存在,在工作时更为灵活。
步骤S220:在本处理流程中对第一处理结果进行第二处理,得到第二处理结果。
在本实施方式中,本处理流程和前一处理流程同步进行,也就是说,前一处理流程在对第一视频帧的部分数据进行第一处理后,继续对第一视频帧的剩余数据的至少一部分数据进行第一处理,而本处理流程继续执行对前一处理流程对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果进行第二处理的步骤,直至将第一视频帧的全部数据都处理完毕。
举例来说,前一处理流程处理一行像素得到第一处理结果后,将第一处理结果发送给本处理流程,然后继续处理剩余像素中的下一行像素,将得到的另一个第一处理结果发送给本处理流程。本处理流程将依次对每行像素对应的第一处理结果进行第二处理,得到相应的第二处理结果。
在本实施方式中,第一处理为对第一视频帧的部分数据进行解码,第二处理为对第一处理结果进行去块效应,或者第一处理为对第一视频帧的部分数据进行去块效应,第二处理为对第一处理结果进行锐化。虽然后处理具体包括缩放、去块效应、锐化、颜色增强等,但在实际应用中,可仅执行缩放、去块效应、锐化、颜色增强等步骤中的部分步骤,并且可调整前后顺序,也就是说,本实施方式中的第一处理可以为对第一视频帧的部分数据进行锐化,而第二处理为对第一处理结果进行去块效应,或者将缩放和颜色增强这两个步骤分别代替去块效应和锐化。经过后处理,能够进一步美化图像,使视频显示效果更清晰、流畅、饱满、逼真,提高主观视觉效果。
同样地,第三处理可以为后处理的某个具体步骤,也可以为对经过后处理的图像进行显示。
步骤S230:将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。
承前所述,后一处理流程可以直接从本处理流程接收第二处理结果,也可以从帧存单元读取第二处理结果,其过程与本处理流程得到前一处理流程产生的第一处理结果类似,此处不再赘述。
由于本处理流程和后一处理流程均从同一个帧存单元中读取,因此,帧存单元中第一处理结果和第二处理结果占用不同的存储区域,即所有的第一处理结果存储在一块存储区域中,所有的第二处理结果存储在另一块存储区域中。可选地,本处理流程和后一处理流程从帧存单元中读取处理结果的顺序与帧存单元中写入处理结果的顺序相同。举例来说,前一处理流程在帧存单元中依次写入第一个第一处理结果、第二个第一处理结果和第三个第一处理结果,那么本处理流程从帧存单元中依次读取第一个第一处理结果、第二个第一处理结果和第三个第一处理结果。
在其他实施方式中,在后一处理流程之后还可以具有其它处理流程,其它处理流程将从后一处理流程接收或从帧存单元读取后一处理流程进行第三处理得到的处理结果。
值得注意的是,如果本处理流程进行第二处理的对象是前一处理流程对第一视频帧的某行像素进行第一处理得到的第一处理结果,而前一处理流程已经处理完第一视频帧的所有像素,那么前一处理流程可以处理第二视频帧的一行像素。相类似的,后一处理流程处理的对象对应第一视频帧时,本处理流程处理的对象可以对应第二视频帧。也就是说,每个处理流程是相对独立的,可以处理不同的视频帧,达到分时复用的目的。
本申请的视频处理方法中前一处理流程仅是对第一视频帧的部分数据进行第一处理,部分数据处理完毕,本处理流程就得到第一处理的第一处理结果,本处理流程对第一处理结果进行第二处理后,后一处理流程就得到第二处理的第二处理结果,由于每个流程处理的对象只是源自第一视频帧的部分数据,而不是第一视频帧的全部数据,从而将处理一个视频帧的延迟时间降低为处理部分数据的延迟时间,各个处理流程又相对独立,从而解决了现有技术不能在保持视频处理的各个处理环节相对独立基础上降低视频处理的延迟时间的问题,能够允许分时复用处理多个视频帧。每个处理流程又依照传统的设计,可以降低设计难度,可以应用在多种使用环境中,保证兼容性。
参阅图3,是本申请视频处理方法第二实施方式的流程示意图。视频处理方法包括以下步骤:
步骤S310:从前一处理流程接收或从帧存单元中读取第一处理结果之前,从第一同步单元读取与第一处理结果对应的处理流水号,其中前一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号并将处理流水号写入第一同步单元。
其中,由于视频帧的数据需要按顺序处理,因此,每个处理流程需要按照上一个处理流程的处理顺序进行处理。在本实施方式中,处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。可选地,处理流水号以升序设置。
第一同步单元在每次写入新的处理流水号时可以覆盖上一次写入的处理流水号,也可以不覆盖,但每次从第一同步单元读取时均是读取新写入的处理流水号。本处理流程每次在将要处理第一处理结果时,都会读取该第一处理结果对应的处理流水号。
步骤S320:判断第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号,如果判断结果为否,则执行步骤S330,如果判断结果为是,则执行步骤S340。
其中,由于本处理流程所处理的对象是前一处理流程所处理得到的结果,那么可能存在一种现象,就是本处理流程的处理速度快于前一处理流程处理的处理速度。假设前一处理流程正在处理的是第一视频帧的第36行像素,而本处理流程已经处理完第35行像素对应的第一处理结果,将要处理第36行像素对应的第一处理结果,但是第36行像素对应的第一处理结果还没有产生,本处理流程就会从前一处理流程接收或者从帧存单元读取到错误的数据,这些数据可能是前一处理流程处理的其余视频帧得到的处理结果,也可能是其它无效数据。
因此,本处理流程进行前一次第二处理时,会记录下前一次接收或读取的第一处理结果对应的处理流水号,从而本处理流程在进行当前次第二处理时,就可以将第一同步单元中新写入的处理流水号同前一次接收或读取的第一处理结果对应的处理流水号进行比较。
步骤S330:暂停接收读取第一处理结果,
其中,暂停的时间根据实际需要设置,经过一段时间后,将再次执行步骤S320。从而确保本处理流程所要处理的第一处理结果都是前一处理流程得到的第一处理结果。
步骤S340:接收或读取第一处理结果。
步骤S350:在本处理流程中对第一处理结果进行第二处理,得到第二处理结果。
其中,步骤S350请参照第一实施方式中步骤S220的相关描述。
步骤S360:将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。
其中,后一处理流程在接收或读取第二处理结果之前也可以判断是否需要暂停接收或读取第二处理结果,其过程与前述过程类似,此处不再赘述。
本申请的视频处理方法在本处理流程在接收或读取前一处理流程的当前第一处理结果前,会将当前第一处理结果的处理流水号与本处理流程前一次接收或读取的第一处理结果的处理流水号作比较,在确认当前第一处理结果已经存在,才接收或读取当前第一处理结果,从而保证本处理流程和前一处理流程达到同步。
参阅图4,是本申请视频处理方法第三实施方式的流程示意图。视频处理方法包括以下步骤:
步骤S410:从前一处理流程接收或从帧存单元中读取第一处理结果之前,从第一同步单元读取帧标记和与第一处理结果对应的处理流水号,其中前一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号以及为进行第一处理得到的所有第一处理结果添加帧标记,并将帧标记与处理流水号一同写入第一同步单元。
其中,进行视频处理时,会处理多个视频帧,第一视频帧是这些视频帧中的一个。帧标记用于表示第一处理结果属于第一视频帧。也就是说,帧标记可以将每个视频帧区分开。只要是处理第一视频帧的任一部分数据得到的第一处理结果,都添加同样的帧标记,表示第一处理结果源自第一视频帧。在本实施方式中,帧标记为视频帧的帧地址。通过帧地址可以区分每个视频帧。在帧存单元中,同样可以根据帧地址生成存储地址,以区分不同视频帧的第一处理结果。
步骤S420:根据帧标记判断第一处理结果是否属于第一视频帧,如果判断结果为否,则执行步骤S450,如果判断结果为是,则执行步骤S430。
其中,由于帧标记可以区分开不同的视频帧,那么如果本处理流程所要接收或读取的第一处理结果由第一视频帧的部分数据得到,而前一处理流程已经处理完第一视频帧的所有数据,正在处理的是第二视频帧的部分数据,那么本处理流程可以不受约束地接收或读取由第一视频帧的部分数据得到的第一处理结果。
此处的判断过程也是将第一同步单元中新写入的帧标记同前一次接收或读取的第一处理结果对应的帧标记进行比较,只要两个帧标记不同,就可以判定这两个第一处理结果是属于不同的视频帧。
步骤S430:判断第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号,如果判断结果为是,则执行步骤S450,如果判断结果为否,则执行步骤S440。
步骤S440:暂停接收或读取第一处理结果。
步骤S450:接收或读取第一处理结果。
步骤S460:在本处理流程中对第一处理结果进行第二处理,得到第二处理结果。
其中,步骤S430、步骤S440、步骤S450、步骤S460与第二实施方式的步骤S320、步骤S330、步骤S340、步骤S350具有相同的技术特征,此处不再赘述。
步骤S470:将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元并将进行第二处理的第一处理结果的帧标记和处理流水号写入第二同步单元中,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。
其中,将帧标记和处理流水号写入第二同步单元,可以使得后一处理流程从第二同步单元读取帧标记和处理流水号,并根据帧标记和处理流水号判断接收或获取第二处理结果的步骤是否需要暂停,其过程与前述过程类似,此处不再详述。
下面将结合图5对本实施方式的视频处理方法进行详细说明,结合参阅图5,是图4所示的方法的运行机制示意图。图中仅示意显示了前一处理流程和本处理流程,未显示后一处理流程。
图中,第一视频帧A包括36行像素,第二视频帧B包括多行像素。第一同步单元中的数据以覆盖方式进行存储,帧存单元中的数据以顺序存储方式进行存储。
前一处理流程对第一视频帧A和第二视频帧B进行第一处理,并且前一处理流程已经将第一视频帧A的所有像素已经处理完,正在处理的是第二视频帧B的第3行像素。其中,第一视频帧A的第1行像素对应第一处理结果A1,第2行像素对应第一处理结果A2,以此类推,第36行像素对应第一处理结果A36。同样的,第二视频帧B的第1行像素对应第一处理结果B1,第2行像素对应第二处理结果B2。
前一处理流程在处理第一视频帧A和第二视频帧B时,以每行像素的行号作为处理流水号,即第一处理结果A1对应处理流水号1,第二处理流水号A2对应处理流水号2,第二处理结果B1对应处理流水号1、第二处理结果B2对应处理流水号2。前一处理流程在处理第一视频帧A时,为得到的所有第一处理结果添加帧标记A,在处理第二视频帧B时,为得到的所有第一处理结果添加帧标记B。由于第一同步单元以覆盖方式进行存储,而前一处理流程已处理完第二视频帧B的第2行像素,因此第一同步单元中存储的是处理流水号2和帧标记B。
图中,本处理流程所已经读取并处理了第一处理结果B1,所要从帧存单元中读取的是第一处理结果B2。由于本处理流程在读取第一处理结果B1时已经记录了处理流水号1和帧标记B,此时本处理流程在读取第一处理结果B2之前,将先从第一同步单元中读取处理流水号2和帧标记B。读取后,将比较第一处理结果B2和第一处理结果B1的帧标记,由于都是帧标记B,则判断第一处理结果B2和第一处理结果B1均属于第二视频帧B,然后再比较第一处理结果B2和第一处理结果B1的处理流水号,由于处理流水号2大于处理流水号1,因此,本处理流程从帧存单元中读取第一处理结果B2。这里,如果不对处理流水号进行判断,本处理流程在读取完第一处理结果B2后,前一处理流程还没有写入第一处理结果B3,那么本处理流程就会紧接着读取到无效数据X,从而可能产生乱码,使视频处理失败。
如果本处理流程已经读取了第一处理结果A1,所要读取的是第一处理结果A2,那么本处理流程将第一处理结果A1的帧标记A与目前第一同步单元中的帧标记B比较,由于两者不同,因此判断为第一处理结果A1和第一处理结果B2属于不同的视频帧,那么本处理流程可以直接读取第一处理结果A1,不需再对处理流水号进行判断。
参阅图6,是本申请视频处理方法第四实施方式的流程示意图。视频处理方法包括以下步骤:
步骤S610:接收前一处理流程处理得到的第一视频帧。
步骤S620:在本处理流程中对第一视频帧的部分数据进行第一处理,得到第一处理结果。
在本实施方式中,在本处理流程中对第一视频帧的部分数据进行第一处理,得到第一处理结果之后,在本处理流程中继续执行对第一视频帧的剩余数据的至少一部分数据进行第一处理的步骤,直至将第一视频帧的全部数据都处理完毕。
步骤S630:将第一处理结果发送给后一处理流程或写入帧存单元,以使得后一处理流程对第一处理结果进行第二处理,或从帧存单元中读取第一处理结果并进行第二处理。
本实施方式与第三实施方式的视频处理方法基本相同,不同之处在于,前一处理流程发送给本处理流程的是第一视频帧,本处理流程接收到第一视频帧时,才对第一视频帧的部分数据进行第一处理。
参阅图7,是本申请视频处理方法第五实施方式的流程示意图。视频处理方法包括以下步骤:
步骤S710:接收前一处理流程处理得到的第一视频帧。
步骤S720:在本处理流程中对第一视频帧的部分数据进行第一处理,得到第一处理结果,并为每次第一处理设置处理流水号以及为进行第一处理而得到的所有第一处理结果添加帧标记。
其中,在本处理流程中对第一视频帧的部分数据进行第一处理,得到第一处理结果之后,在本处理流程中继续执行对第一视频帧的剩余数据的至少一部分数据进行第一处理的步骤,直至将第一视频帧的全部数据都处理完毕。
本处理流程的处理顺序为视频帧的各部分数据的先后顺序。在本实施方式中,处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。可选地,处理流水号以升序设置。
本处理流程处理完第一视频帧后,还可能继续处理第二视频帧,而帧标记可以将每个视频帧区分开。帧标记用于表示第一处理结果属于第一视频帧。也就是说,只要是处理第一视频帧的任一部分数据得到的第一处理结果,都添加有同样的帧标记,表示第一处理结果源自第一视频帧。在本实施方式中,帧标记为视频帧的帧地址。通过帧地址可以区分每个视频帧,在帧存单元中,同样可以根据帧地址生成存储地址,以区分不同视频帧的第一处理结果。
步骤S730:将第一处理结果发送给后一处理流程或写入帧存单元,并在发送或写入第一处理结果时,将帧标记与处理流水号一同写入同步单元中。
其中,将处理流水号写入同步单元,可以使得后一处理流程在接收或读取第一处理结果之前,从同步单元读取处理流水号,并判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号,如果判断结果为是,则接收或读取第一处理结果,如果判断结果为否,则暂停接收或读取第一处理结果。通过处理流水号,可以保证后一处理流程所处理的数据不会越过本处理流程已处理的数据。
进一步,将帧标记写入同步单元,可以使得后一处理流程从同步单元读取处理流水号之前。从同步单元读取帧标记,根据帧标记判断第一处理结果是否属于第一视频帧,如果判断结果为否,则跳过判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤,并接收或读取第一处理结果,如果判断结果为是,则执行判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤。通过帧标记,可以在后一处理流程所接收或读取的数据与本处理流程已发送或写入的数据不是来自同一个视频帧时,后一处理流程直接接收或读取这些数据,能够保证后一处理流程与本处理流程同步的基础上减少判断次数,进一步降低延迟时间。
参阅图8,是本申请视频处理装置第一实施方式的结构示意图。
视频处理装置800包括接收模块810、处理模块820和发送模块830。
接收模块810用于从前一处理流程接收或从帧存单元(图未示)中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果,并将第一处理结果传输给处理模块。
其中,处理第一视频帧时具有多个处理流程,每个处理流程对应不同的处理环节,这些处理环节可以包括预处理、解码、后处理、显示等,这些处理环节都是具有固定的先后顺序的。这里,前一处理流程可以是最开始的处理环节,也可以是中间的某个处理环节,第一处理则是进行相应的处理环节。
第一视频帧是待处理的一幅图像,而构成图像的单位是像素,部分数据则是若干像素的集合。在本实施方式中,部分数据为第一视频帧的一行像素。
接收模块810在接收第一处理结果时,如果直接从前一处理流程接收第一处理结果,那么前一处理流程包含具有缓存功能的单元,前一处理流程每对一行像素进行第一处理得到第一处理结果后,该单元就缓存第一处理结果。在需要发送第一处理结果时,从该单元读取第一处理结果。
如果从帧存单元接收第一处理结果,那么帧存单元也具有上述的缓存功能。该帧存单元脱离于前一处理流程,是独立的一个单元。由于帧存单元独立存在,在工作时更为灵活。
处理模块820用于从接收模块810接收第一处理结果,在本处理流程中对第一处理结果进行第二处理,得到第二处理结果,并将第二处理结果传输给发送模块830。
其中,处理模块820对第一处理结果进行第二处理,得到第二处理结果之后,接收模块810还用于继续接收或获取前一处理流程对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果;处理模块820还用于继续对第一处理结果进行第二处理,直至将第一视频帧的全部数据都处理完毕。
发送模块830用于从处理模块820接收第二处理结果,将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。
其中,后一处理流程可以直接从发送模块830接收第二处理结果,也可以从帧存单元读取第二处理结果,其过程与接收模块810得到前一处理流程产生的第一处理结果类似,此处不再赘述。
由于接收模块810和后一处理流程均从同一个帧存单元中读取,因此,帧存单元中第一处理结果和第二处理结果占用不同的存储区域,即所有的第一处理结果存储在一块存储区域中,所有的第二处理结果存储在另一块存储区域中。可选地,接收模块810和后一处理流程从帧存单元中读取处理结果的顺序与帧存单元中写入处理结果的顺序相同。举例来说,前一处理流程在帧存单元中依次写入第一个第一处理结果、第二个第一处理结果和第三个第一处理结果,那么接收模块810从帧存单元中依次读取第一个第一处理结果、第二个第一处理结果和第三个第一处理结果。
在其他实施方式中,在后一处理流程之后还可以具有其它处理流程,其它处理流程将从后一处理流程接收或从帧存单元读取后一处理流程进行第三处理得到的处理结果。
值得注意的是,处理模块820进行第二处理的对象是前一处理流程对第一视频帧的某行像素进行第一处理得到的第一处理结果的时候,若前一处理流程已经处理完第一视频帧的所有像素,那么前一处理流程可以处理第二视频帧的一行像素。相类似的,后一处理流程处理的对象对应第一视频帧时,处理模块820处理的对象可以对应第二视频帧。也就是说,视频处理装置800与其它处理流程保持独立,从而可以处理不同的视频帧,达到分时复用的目的。
本申请的视频处理装置800中接收模块810得到的是前一处理流程仅是对第一视频帧的部分数据进行第一处理而得到的第一处理结果,处理模块820对第一处理结果进行第二处理后,后一处理流程就得到第二处理的第二处理结果,由于处理模块820进行一次处理的对象只是源自第一视频帧的部分数据,而不是第一视频帧,从而将处理一个视频帧的延迟时间降低为处理部分数据的延迟时间,视频处理装置800又与其它处理流程保持独立,从而解决了现有技术不能在保持视频处理的各个处理环节相对独立基础上降低视频处理的延迟时间的问题,能够允许分时复用处理多个视频帧。每个处理流程又依照传统的设计,可以降低设计难度,可以应用在多种使用环境中,保证兼容性。
参阅图9,是本申请视频处理装置第二实施方式的结构示意图。图中,为了清楚显示,还示意出了第一同步单元901和第二同步单元902。
视频处理装置900包括接收模块910、处理模块920、发送模块930。读取模块940、第一判断模块950和第二判断模块960。
读取模块940在接收模块910从前一处理流程接收或从帧存单元(图未示)中读取第一处理结果之前,用于从第一同步单元901读取帧标记以及与第一处理结果对应的处理流水号。前一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号以及为进行第一处理得到的所有第一处理结果添加帧标记,并将帧标记和处理流水号一同写入第一同步单元901,处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序,帧标记用于表示第一处理结果属于第一视频帧。
其中,进行视频处理时,会处理多个视频帧,第一视频帧是这些视频帧中的一个。帧标记用于表示第一处理结果属于第一视频帧。也就是说,帧标记可以将每个视频帧区分开。只要是处理第一视频帧的任一部分数据得到的第一处理结果,都添加同样的帧标记,表示第一处理结果源自第一视频帧。在本实施方式中,帧标记为视频帧的帧地址。通过帧地址可以区分每个视频帧。在帧存单元中,同样可以根据帧地址生成存储地址,以区分不同视频帧的第一处理结果。
第二判断模块960用于根据帧标记判断第一处理结果是否属于第一视频帧。
第一判断模块950用于在第二判断模块960的判断结果为是时,判断第一同步单元901中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号。当然,如果第二判断模块960的判断结果为否,那么第一判断模块950将停止工作,从而取消判断。
接收模块910用于从前一处理流程接收或从帧存单元中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果,并将第一处理结果传输给处理模块920。具体地,接收模块910仅在第二判断模块960的判断结果为否或者第一判断模块950的判断结果为是的时候,才接收或读取第一处理结果,其余时候暂停接收或读取第一处理结果。
处理模块920用于从接收模块910接收第一处理结果,在本处理流程中对第一处理结果进行第二处理,得到第二处理结果,并将第二处理结果传输给发送模块930。其中,处理模块920对第一处理结果进行第二处理,得到第二处理结果之后,接收模块910还用于继续接收或获取前一处理流程对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果;处理模块920还用于继续对第一处理结果进行第二处理,直至将第一视频帧的全部数据都处理完毕。
发送模块930用于从处理模块920接收第二处理结果,将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。可选地,发送模块930还用于将进行第二处理的第一处理结果的帧标记和处理流水号写入第二同步单元902中,以使得后一处理流程从第二同步单元902读取帧标记和处理流水号,并根据帧标记和处理流水号判断是否需要暂停接收或获取第二处理结果。
由于帧标记可以区分开不同的视频帧,那么如果接收模块910所要接收或读取的第一处理结果由第一视频帧的部分数据得到,而前一处理流程已经处理完第一视频帧的所有数据,正在处理的是第二视频帧的部分数据,那么接收模块910可以不受约束地接收或读取由第一视频帧的部分数据得到的第一处理结果。第二判断模块960的判断过程是将第一同步单元901中新写入的帧标记同前一次接收或读取的第一处理结果对应的帧标记进行比较,只要两个帧标记不同,就可以判定这两个第一处理结果是属于不同的视频帧。
进一步地,由于接收模块910所接收或读取的对象是前一处理流程所处理得到的结果,那么可能存在一种现象,就是接收模块910的接收或读取的速度快于前一处理流程处理的处理速度。假设前一处理流程正在处理的是第一视频帧的第36行像素,而接收模块910已经处理完第35行像素对应的第一处理结果,将要处理第36行像素对应的第一处理结果,但是第36行像素对应的第一处理结果还没有产生,本处理流程就会从前一处理流程接收或者从帧存单元读取到错误的数据,这些数据可能是前一处理流程处理的其余视频帧得到的处理结果,也可能是其它无效数据。
因此,处理模块920进行前一次第二处理时,会记录下前一次接收或读取的第一处理结果对应的处理流水号和帧标记,从而处理模块920在进行当前次第二处理时,第一判断模块950就可以将第一同步单元901中新写入的处理流水号同前一次接收或读取的第一处理结果对应的处理流水号进行比较,第二判断模块960就可以将第一同步单元901中新写入的帧标记同前一次接收或读取的第一处理结果对应的帧标记进行比较。
参阅图10,是本申请视频处理系统一实施方式的结构示意图。视频处理系统包括第一视频处理装置11、第二视频处理装置12、帧存单元13、同步单元14以及第三视频处理装置15。
第一视频处理装置11用于在第一处理流程中对第一视频帧的部分数据进行第一处理而得到第一处理结果,并将第一处理结果发送给第二视频处理装置12或将第一处理结果写入帧存单元13。
第二视频处理装置12用于从第一视频处理装置11接收或从帧存单元13中读取第一处理结果,在第二处理流程中对第一处理结果进行第二处理而得到第二处理结果。
如果第一视频处理装置11和第二视频处理装置12均集成有与帧存单元13类似的功能,则第一视频处理装置11可以直接将第一处理结果发给第二视频处理装置12。
第一视频帧是待处理的一幅图像,而构成图像的单位是像素,第一视频帧的部分数据则是若干像素的集合。在本实施方式中,部分数据为第一视频帧的一行像素。
在本实施方式中,第一视频处理装置11和第二视频处理装置12同步工作,也就是说,第二视频处理装置12在第二处理流程中对第一处理结果进行第二处理而得到第二处理结果之后,还用于继续从第一视频处理装置11接收或从帧存单元13中读取第一视频处理装置11在第一处理流程中对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果。
第一视频处理装置11在第一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号并将处理流水号写入同步单元14,处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。
第二视频处理装置12从第一视频处理装置11接收或从帧存单元13中读取第一处理结果之前,还用于从同步单元14读取与第一处理结果对应的处理流水号,并判断同步单元14中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号,如果判断结果为是,则接收或读取第一处理结果,如果判断结果为否,则暂停接收或读取第一处理结果。
进一步,第一视频处理装置11还用于为进行第一处理得到的所有第一处理结果添加帧标记,将帧标记与处理流水号一同写入同步单元14中,帧标记用于表示第一处理结果属于第一视频帧。
第二视频处理装置12从同步单元14读取与第一处理结果对应的处理流水号之前,还用于从同步单元14读取帧标记,根据帧标记判断第一处理结果是否属于第一视频帧,如果判断结果为否,则取消判断同步单元14中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤,并接收或读取第一处理结果,如果判断结果为是,则判断同步单元14中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号。
由于第二视频处理装置12所处理的对象是第一视频处理装置11所处理得到的结果,那么可能存在一种现象,就是第二视频处理装置12的处理速度快于第一视频处理装置11的处理速度。假设第一视频处理装置11正在处理的是第一视频帧的第36行像素,而第二视频处理装置12已经处理完第35行像素对应的第一处理结果,将要处理第36行像素对应的第一处理结果,但是第一视频处理装置11还没有产生第36行像素对应的第一处理结果,第二视频处理装置12就会从第一视频处理装置11接收或者从帧存单元13读取到错误的数据,这些数据可能是前一处理流程处理的其余视频帧得到的处理结果,也可能是其它无效数据。第二视频处理装置12每次接收或读取第一处理结果之前,都对处理流水号进行判断,就可以避免上述情况发生,使得第二视频处理装置12和第一视频处理装置11在处理速度不同时,也能达到同步。
此外,如果第一视频处理装置11已经处理完多个视频帧的数据,例如已经发送或写入了第一视频帧的第一处理结果以及第二视频帧的第一处理结果,并且第二视频处理装置12接收或读取的是第一视频帧的第一处理结果,那么此时第二视频处理装置12接收或读取第一视频帧的第一处理结果之前,是不需要对处理流水号进行判断的。因此,在这种情况下,第二视频处理装置12通过对帧标记进行判断,可以在第二视频处理装置12和第一视频处理装置11达到同步的基础上减少判断次数,从而也就进一步降低了延迟时间,
第二视频处理装置12还用于将第二处理结果发送给第三视频处理装置15或将第二处理结果写入帧存单元13,第三视频处理装置15用于从第二视频处理装置12接收或从帧存单元13中读取第二处理结果,在第三处理流程中对第二处理结果进行第三处理而得到第三处理结果。
当然,第二视频处理装置12发送或写入第二处理结果时,也可以将处理流水号和帧标记写入同步单元14中,但写入的存储区域与第一视频处理装置11写入的存储区域不同。第三视频处理装置15在接收或读取第二处理结果之前,对处理流水号和帧标记进行判断,其判断过程与上述判断过程类似,此处不再赘述。
在更多实施方式中,视频处理系统可以只包括第一视频处理装置11、第二视频处理装置12和帧存单元13。第一视频处理装置11和第二视频处理装置12相对独立,而且第一视频处理装置11和第二视频处理装置12各自的处理环节中处理第一视频帧的部分数据,而不是全部数据,从而该视频处理系统能够在保持视频处理的各个处理环节相对独立基础上降低视频处理的延迟时间。
参阅图11,是本申请视频处理装置第三实施方式的结构示意图。视频处理装置20包括接收器21、处理器(processor)22、发送器23以及存储器(memory)24。
接收器21和发送器23用于通过通信接口(CommunicationsInterface)25与外界通信。接收器21、处理器22、发送器23以及存储器24都与电源相连接,且接收器21、处理器22、发送器23以及存储器24通过通信总线26进行通信。
接收器21用于从前一处理流程接收或从帧存单元中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果。
处理器22用于在本处理流程中对第一处理结果进行第二处理,得到第二处理结果。
处理器22可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施方式的一个或多个集成电路。
发送器23用于将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元。
存储器24用于存储第一处理结果以及第二处理结果。若本申请实施方式采用软件程序实现,那么存储器24还用于存储处理器22需要执行的程序241。具体地,程序241可以包括程序代码,程序代码包括计算机操作指令。
存储器24可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器22进一步用于执行程序241,程序241具体可以包括:
接收器21从前一处理流程接收或从帧存单元中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果,并将第一处理结果发送至存储器24。
处理器22从存储器24取出第一处理结果,在本处理流程中对第一处理结果进行第二处理得到第二处理结果,并将第二处理结果发送至存储器24。
发送器23从存储器24取出第二处理结果,并将第二处理结果发送给后一处理流程或将第二处理结果写入帧存单元,以使得后一处理流程对第二处理结果进行第三处理,或从帧存单元中读取第二处理结果并进行第三处理。
程序241的具体实现过程可以参见前述实施方式的相关描述,此处不再赘述。
通过上述方式,本申请的视频处理方法、视频处理装置及视频处理系统通过将前一处理流程处理第一视频帧的部分数据得到的第一处理结果发给本处理流程,本处理流程接收或者从帧存单元读取第一处理结果进行第二处理,再将第二处理结果发送给后一处理流程或写入帧存单元,从而将处理一个视频帧的延迟时间降低为处理部分数据的延迟时间,通过这种方式,解决了现有技术不能在保持视频处理的各个处理环节相对独立基础上降低视频处理的延迟时间的问题,能够允许分时复用处理多个视频帧,可以减小设计难度,保证兼容性。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,管理服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (25)
1.一种视频处理方法,其特征在于,所述视频处理方法包括:
从前一处理流程接收或从帧存单元中读取所述前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果;
在本处理流程中对所述第一处理结果进行第二处理,得到第二处理结果;
将所述第二处理结果发送给后一处理流程或将所述第二处理结果写入帧存单元,以使得所述后一处理流程对所述第二处理结果进行第三处理,或从所述帧存单元中读取所述第二处理结果并进行第三处理。
2.根据权利要求1所述的视频处理方法,其特征在于,所述对所述第一处理结果进行第二处理,得到第二处理结果之后还包括:
继续执行对所述前一处理流程对所述第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果进行第二处理的步骤,直至将所述第一视频帧的全部数据都处理完毕。
3.根据权利要求2所述的视频处理方法,其特征在于,所述前一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号并将所述处理流水号写入第一同步单元,所述处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。
4.根据权利要求3所述的视频处理方法,其特征在于,所述从前一处理流程接收或从帧存单元中读取第一处理结果之前还包括:
从第一同步单元读取与所述第一处理结果对应的处理流水号;
判断所述第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号;
如果判断结果为是,则接收或读取第一处理结果,如果判断结果为否,则暂停接收或读取第一处理结果。
5.根据权利要求4所述的视频处理方法,其特征在于,所述前一处理流程还为进行第一处理得到的所有第一处理结果添加帧标记,将所述帧标记与处理流水号一同写入第一同步单元中,所述帧标记用于表示第一处理结果属于第一视频帧。
6.根据权利要求5所述的视频处理方法,其特征在于,所述从第一同步单元读取与所述第一处理结果对应的处理流水号之前还包括:
从所述第一同步单元读取帧标记;
根据所述帧标记判断第一处理结果是否属于第一视频帧;
如果判断结果为否,则跳过所述判断所述第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤,并接收或读取第一处理结果,如果判断结果为是,则执行所述判断所述第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤。
7.根据权利要求6所述的视频处理方法,其特征在于,所述将所述第二处理结果发送给后一处理流程或将所述第二处理结果写入帧存单元的步骤还包括:
将进行第二处理的第一处理结果的帧标记和处理流水号写入第二同步单元中,以使得后一处理流程从所述第二同步单元读取所述帧标记和处理流水号,并根据所述帧标记和处理流水号判断接收或获取第二处理结果的步骤是否需要暂停。
8.根据权利要求1所述的视频处理方法,其特征在于,所述第一处理为对所述第一视频帧的部分数据进行解码,所述第二处理为对所述第一处理结果进行去块效应,或者所述第一处理为对所述第一视频帧的部分数据进行去块效应,所述第二处理为对所述第一处理结果进行锐化。
9.一种视频处理方法,其特征在于,所述视频处理方法包括:
接收前一处理流程处理得到的第一视频帧;
在本处理流程中对所述第一视频帧的部分数据进行第一处理,得到第一处理结果;
将所述第一处理结果发送给后一处理流程或写入帧存单元,以使得后一处理流程对所述第一处理结果进行第二处理,或从所述帧存单元中读取第一处理结果并进行第二处理。
10.根据权利要求9所述的视频处理方法,其特征在于,所述对第一视频帧的部分数据进行第一处理,得到第一处理结果之后包括:
继续执行对所述第一视频帧的剩余数据的至少一部分数据进行所述第一处理的步骤,直至将所述第一视频帧的全部数据都处理完毕。
11.根据权利要求10所述的视频处理方法,其特征在于,所述在本处理流程中对所述第一视频帧的部分数据进行第一处理,得到第一处理结果的步骤还包括:
为每次第一处理设置处理流水号,所述处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。
12.根据权利要求11所述的视频处理方法,其特征在于,所述将所述第一处理结果发送给后一处理流程或写入帧存单元的步骤还包括:
在发送或写入所述第一处理结果时,将与所述第一处理结果对应的处理流水号写入同步单元,以使得所述后一处理流程在接收或读取第一处理结果之前,从同步单元读取处理流水号,并判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号,如果判断结果为是,则接收或读取第一处理结果,如果判断结果为否,则暂停接收或读取第一处理结果。
13.根据权利要求12所述的视频处理方法,其特征在于,所述将所述第一处理结果发送给后一处理流程或写入帧存单元的步骤还包括:
为进行第一处理而得到的所有第一处理结果添加帧标记,并将所述帧标记与处理流水号一同写入同步单元中,所述帧标记用于表示第一处理结果属于第一视频帧,以使得所述后一处理流程从同步单元读取处理流水号之前。从所述同步单元读取帧标记,根据所述帧标记判断第一处理结果是否属于第一视频帧,如果判断结果为否,则跳过所述判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤,并接收或读取第一处理结果,如果判断结果为是,则执行所述判断同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤。
14.一种视频处理装置,其特征在于,所述视频处理装置包括接收模块、处理模块和发送模块,其中:
所述接收模块用于从前一处理流程接收或从帧存单元中读取前一处理流程对第一视频帧的部分数据进行第一处理而得到的第一处理结果,并将所述第一处理结果传输给所述处理模块;
所述处理模块用于从所述接收模块接收所述第一处理结果,在本处理流程中对所述第一处理结果进行第二处理,得到第二处理结果,并将所述第二处理结果传输给所述发送模块;
所述发送模块用于从所述处理模块接收所述第二处理结果,将所述第二处理结果发送给后一处理流程或将所述第二处理结果写入帧存单元,以使得后一处理流程对所述第二处理结果进行第三处理,或从所述帧存单元中读取第二处理结果并进行第三处理。
15.根据权利要求14所述的视频处理装置,其特征在于,所述处理模块对所述第一处理结果进行第二处理,得到第二处理结果之后,所述接收模块还用于继续接收或获取前一处理流程对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果;所述处理模块还用于继续对所述第一处理结果进行第二处理,直至将所述第一视频帧的全部数据都处理完毕。
16.根据权利要求15所述的视频处理装置,其特征在于,所述前一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号并将所述处理流水号写入第一同步单元,所述处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序,所述视频处理装置还包括读取模块和第一判断模块,
所述读取模块在所述接收模块从前一处理流程接收或从帧存单元中读取第一处理结果之前,用于从所述第一同步单元读取与所述第一处理结果对应的处理流水号;
所述第一判断模块用于判断所述第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号;
所述接收模块还用于在所述第一判断模块的判断结果为是时,接收或读取第一处理结果;在所述第一判断模块的判断结果为否时,暂停接收或读取第一处理结果。
17.根据权利要求16所述的视频处理装置,其特征在于,所述前一处理流程还为进行第一处理得到的所有第一处理结果添加帧标记,将所述帧标记与处理流水号一同写入第一同步单元中,所述帧标记用于表示第一处理结果属于第一视频帧,所述视频处理装置还包括第二判断模块,
所述读取模块从第一同步单元读取与所述第一处理结果对应的处理流水号之前,还用于从所述第一同步单元读取帧标记;
所述第二判断模块用于根据所述帧标记判断第一处理结果是否属于第一视频帧;
所述第一判断模块还用于在所述第二判断模块的判断结果为否时,取消判断所述第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号;在所述第二判断模块的判断结果为是时,判断所述第一同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号;
所述接收模块还用于在所述第二判断模块的判断结果为否时,接收或读取第一处理结果。
18.根据权利要求17所述的视频处理装置,其特征在于,所述发送模块还用于将进行第二处理的第一处理结果的帧标记和处理流水号写入第二同步单元中,以使得后一处理流程从所述第二同步单元读取所述帧标记和处理流水号,并根据所述帧标记和处理流水号判断是否需要暂停接收或获取第二处理结果。
19.一种视频处理系统,其特征在于,所述视频处理系统包括帧存单元、第一视频处理装置及第二视频处理装置,其中,
所述第一视频处理装置用于在第一处理流程中对第一视频帧的部分数据进行第一处理而得到第一处理结果,并将所述第一处理结果发送给所述第二视频处理装置或将所述第一处理结果写入所述帧存单元;
所述第二视频处理装置用于从所述第一视频处理装置接收或从所述帧存单元中读取所述第一处理结果,在第二处理流程中对所述第一处理结果进行第二处理而得到第二处理结果。
20.根据权利要求19所述的视频处理系统,其特征在于,所述第二视频处理装置在第二处理流程中对所述第一处理结果进行第二处理而得到第二处理结果之后,还用于继续从所述第一视频处理装置接收或从所述帧存单元中读取所述第一视频处理装置在第一处理流程中对第一视频帧的剩余数据的至少一部分数据进行第一处理而得到的第一处理结果。
21.根据权利要求20所述的视频处理系统,其特征在于,所述视频处理系统还包括同步单元,所述第一视频处理装置在所述第一处理流程对第一视频帧的部分数据进行第一处理时,为每次第一处理设置处理流水号并将所述处理流水号写入所述同步单元,所述处理流水号用于表示对第一视频帧中的各部分数据分别进行第一处理的先后顺序。
22.根据权利要求21所述的视频处理系统,其特征在于,所述第二视频处理装置从所述第一视频处理装置接收或从所述帧存单元中读取所述第一处理结果之前,还用于从同步单元读取与所述第一处理结果对应的处理流水号,并判断所述同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号,如果判断结果为是,则接收或读取第一处理结果,如果判断结果为否,则暂停接收或读取第一处理结果。
23.根据权利要求22所述的视频处理系统,其特征在于,所述第一视频处理装置还用于为进行第一处理得到的所有第一处理结果添加帧标记,将所述帧标记与处理流水号一同写入同步单元中,所述帧标记用于表示第一处理结果属于第一视频帧。
24.根据权利要求23所述的视频处理系统,其特征在于,所述第二视频处理装置从同步单元读取与所述第一处理结果对应的处理流水号之前,还用于从所述同步单元读取帧标记,根据所述帧标记判断第一处理结果是否属于第一视频帧,如果判断结果为否,则取消判断所述同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号的步骤,并接收或读取第一处理结果,如果判断结果为是,则判断所述同步单元中的处理流水号是否大于与前一次接收或读取的第一处理结果对应的处理流水号。
25.根据权利要求19至24任一项所述的视频处理系统,其特征在于,所述视频处理系统还包括第三视频处理装置,所述第二视频处理装置还用于将所述第二处理结果发送给所述第三视频处理装置或将所述第二处理结果写入所述帧存单元,所述第三视频处理装置用于从所述第二视频处理装置接收或从所述帧存单元中读取所述第二处理结果,在第三处理流程中对所述第二处理结果进行第三处理而得到第三处理结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310209983.5A CN103260017B (zh) | 2013-05-30 | 2013-05-30 | 视频处理方法、视频处理装置及视频处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310209983.5A CN103260017B (zh) | 2013-05-30 | 2013-05-30 | 视频处理方法、视频处理装置及视频处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103260017A true CN103260017A (zh) | 2013-08-21 |
CN103260017B CN103260017B (zh) | 2016-09-28 |
Family
ID=48963683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310209983.5A Active CN103260017B (zh) | 2013-05-30 | 2013-05-30 | 视频处理方法、视频处理装置及视频处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103260017B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103686195A (zh) * | 2013-11-22 | 2014-03-26 | 华为技术有限公司 | 视频信息处理方法及设备 |
CN106227583A (zh) * | 2016-07-18 | 2016-12-14 | 青岛科信安全技术有限公司 | 一种多线程视频数据实时处理方法和装置 |
CN106534948A (zh) * | 2016-11-23 | 2017-03-22 | 杭州当虹科技有限公司 | 音频视频编转码问题速查方法和系统 |
CN107277592A (zh) * | 2017-07-26 | 2017-10-20 | 青岛海信电器股份有限公司 | 基于嵌入式平台的多媒体数据播放方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398115A (zh) * | 2002-07-22 | 2003-02-19 | 上海芯华微电子有限公司 | 无附加帧存储器基于块边界的差和量化因子的去块效应法 |
CN1588985A (zh) * | 2004-07-30 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 数字视音频解码器 |
CN1968353A (zh) * | 2005-11-17 | 2007-05-23 | 三星电子株式会社 | 视频处理装置和视频处理方法 |
CN101127913A (zh) * | 2006-08-18 | 2008-02-20 | 富士通株式会社 | 具有提供参考运动向量的位置的机制的帧间预测处理器 |
US20110249731A1 (en) * | 2010-04-09 | 2011-10-13 | Jie Zhao | Methods and Systems for Intra Prediction |
-
2013
- 2013-05-30 CN CN201310209983.5A patent/CN103260017B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398115A (zh) * | 2002-07-22 | 2003-02-19 | 上海芯华微电子有限公司 | 无附加帧存储器基于块边界的差和量化因子的去块效应法 |
CN1588985A (zh) * | 2004-07-30 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 数字视音频解码器 |
CN1968353A (zh) * | 2005-11-17 | 2007-05-23 | 三星电子株式会社 | 视频处理装置和视频处理方法 |
CN101127913A (zh) * | 2006-08-18 | 2008-02-20 | 富士通株式会社 | 具有提供参考运动向量的位置的机制的帧间预测处理器 |
US20110249731A1 (en) * | 2010-04-09 | 2011-10-13 | Jie Zhao | Methods and Systems for Intra Prediction |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103686195A (zh) * | 2013-11-22 | 2014-03-26 | 华为技术有限公司 | 视频信息处理方法及设备 |
WO2015074380A1 (zh) * | 2013-11-22 | 2015-05-28 | 华为技术有限公司 | 视频信息处理方法及设备 |
CN103686195B (zh) * | 2013-11-22 | 2017-04-05 | 华为技术有限公司 | 视频信息处理方法及设备 |
CN106227583A (zh) * | 2016-07-18 | 2016-12-14 | 青岛科信安全技术有限公司 | 一种多线程视频数据实时处理方法和装置 |
CN106227583B (zh) * | 2016-07-18 | 2019-08-27 | 青岛科信安全技术有限公司 | 一种多线程视频数据实时处理方法和装置 |
CN106534948A (zh) * | 2016-11-23 | 2017-03-22 | 杭州当虹科技有限公司 | 音频视频编转码问题速查方法和系统 |
CN106534948B (zh) * | 2016-11-23 | 2019-07-09 | 杭州当虹科技股份有限公司 | 音频视频编转码问题速查方法和系统 |
CN107277592A (zh) * | 2017-07-26 | 2017-10-20 | 青岛海信电器股份有限公司 | 基于嵌入式平台的多媒体数据播放方法、装置及存储介质 |
CN107277592B (zh) * | 2017-07-26 | 2020-07-17 | 海信视像科技股份有限公司 | 基于嵌入式平台的多媒体数据播放方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103260017B (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101312268B1 (ko) | 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템 | |
CN112087633B (zh) | 视频解码方法、装置及存储介质 | |
CN110868625A (zh) | 一种视频播放方法、装置、电子设备及存储介质 | |
CN111405316A (zh) | 插帧方法、电子设备及可读存储介质 | |
CN103260017A (zh) | 视频处理方法、视频处理装置及视频处理系统 | |
US11217279B2 (en) | Method and device for adjusting video playback speed | |
US10613814B2 (en) | Low latency wireless display | |
CN105959797A (zh) | 一种视频解码方法及数字电视 | |
CN109862409B (zh) | 视频解码、播放方法、装置、系统、终端及存储介质 | |
CN109151966A (zh) | 终端控制方法、装置、终端设备及存储介质 | |
CN104038813B (zh) | 一种多屏互动方法及系统 | |
CN107613302B (zh) | 解码方法及装置、存储介质、处理器 | |
CN112804410A (zh) | 多显示屏同步显示方法及装置、视频处理设备和存储介质 | |
CN103686195A (zh) | 视频信息处理方法及设备 | |
CN105681893A (zh) | 流媒体视频数据的解码方法和装置 | |
CN104581367A (zh) | 分享多媒体内容的方法及装置 | |
CN102103740B (zh) | 一种写入地址和宽度不对齐图像的处理方法和处理电路 | |
CN106254961A (zh) | 电视中的视频播放方法及电视 | |
CN103220260B (zh) | 更新数据的方法、服务器、客户端及系统 | |
CN103152615A (zh) | 多媒体信息发布的方法及装置 | |
CN101998104B (zh) | 一种视频电话及其替代视频的生成方法 | |
CN103347212B (zh) | Vod节目的播放方法和装置 | |
CN103379364B (zh) | 视频文件的处理方法、装置、视频服务器和系统 | |
CN105120323A (zh) | 一种分布式播放器任务调度的方法及系统 | |
CN104135688A (zh) | 一种播放视频的方法、用户设备以及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |