发明内容
本发明实施例提供一种视频信息处理方法及设备,用以在不大量修改媒体处理系统的前提下实现对视频帧的后处理,降低视频后处理的实现成本、时间等代价。
第一方面提供一种视频信息处理方法,包括:
视频信息处理装置接收播放器传输的压缩码流;
所述视频信息处理装置将所述压缩码流传输给解码器;
所述解码器对所述压缩码流进行解码得到视频帧并将所述视频帧提供给所述视频信息处理装置;
所述视频信息处理装置将所述解码器解码出的所述视频帧传输给后处理单元;
所述后处理单元对所述视频帧进行后处理并向所述播放器提供经过后处理的视频帧,所述经过后处理的视频帧经过所述播放器被传输至显示单元以做显示。
结合第一方面,在第一方面的第一种可能的实现方式中,所述视频信息处理装置接收播放器传输的压缩码流,包括:
所述视频信息处理装置接收所述播放器以第一接口形式传输的所述压缩码流,所述第一接口形式是所述播放器所支持的接口形式;
所述视频信息处理装置将所述压缩码流传输给解码器,包括:
所述视频信息处理装置将用于传输所述压缩码流的接口形式从所述第一接口形式切换为第二接口形式,并以所述第二接口形式将所述压缩码流传输给所述解码器,所述第二接口形式是所述解码器所支持的接口形式。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述视频信息处理装置以第二接口形式将所述压缩码流传输给所述解码器之后,还包括:
所述视频信息处理装置接收所述解码器以所述第二接口形式传输的第一通知消息;
所述视频信息处理装置将用于传输所述第一通知消息的接口形式从所述第二接口形式切换为所述第一接口形式,并以所述第一接口形式将所述第一通知消息传输给所述播放器;其中,所述第一通知消息用于指示解码完毕。
结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述视频信息处理装置将所述解码器解码出的所述视频帧传输给后处理单元包括:
所述视频信息处理装置接收所述解码器输出的所述视频帧,并接收所述播放器传输的内存描述信息;
所述视频信息处理装置将所述视频帧和所述内存描述信息传输给所述后处理单元;
所述后处理单元对所述视频帧进行后处理并向所述播放器提供经过后处理的视频帧包括:
所述后处理单元对所述视频帧进行后处理并将经过后处理的视频帧存储到所述内存描述信息指示的内存中,所述经过后处理的视频帧由所述播放器从所述内存中读取。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述视频信息处理装置将所述视频帧和所述内存描述信息传输给所述后处理单元之后,还包括:
所述视频信息处理装置接收所述后处理单元传以第三接口形式传输的第二通知消息,所述第三接口形式是所述后处理单元所支持的接口形式;
所述视频信息处理装置将用于传输所述第二通知消息的接口形式从所述第三接口形式切换为所述第一接口形式,并以所述第一接口形式将所述第二通知消息传输给所述播放器;其中,所述第二通知消息用于指示后处理完毕。
结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述第一接口形式为标准解码器接口形式,所述第二接口形式为私有解码器接口形式。
第二方面提供一种视频解码设备,包括:视频信息处理装置、解码器和后处理单元;
所述视频信息处理装置,用于接收播放器传输的压缩码流,将所述压缩码流传输给所述解码器,从所述解码器接收所述解码器解码出的视频帧,并将所述视频帧传输给所述后处理单元;
所述解码器,用于对所述压缩码流进行解码,获得所述视频帧,并将所述视频帧提供给所述视频信息处理装置;
所述后处理单元,用于对所述视频信息处理装置传输的所述视频帧进行后处理并向所述播放器提供经过后处理的视频帧,所述经过后处理的视频帧经过所述播放器被传输至显示单元以做显示。
结合第二方面,在第二方面的第一种可能的实现方式中,所述视频信息处理装置具体用于接收所述播放器以第一接口形式传输的所述压缩码流,所述第一接口形式是所述播放器所支持的接口形式;
所述视频信息处理装置,还用于将用于传输所述压缩码流的接口形式从所述第一接口形式切换为第二接口形式,所述第二接口形式是所述解码器所支持的接口形式;
所述视频信息处理装置具体用于以所述第二接口形式将所述压缩码流传输给所述解码器。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述视频信息处理装置,还用于在以所述第二接口形式将所述压缩码流传输给所述解码器之后,接收所述解码器以所述第二接口形式传输的第一通知消息,将用于传输所述第一通知消息的接口形式从所述第二接口形式切换为所述第一接口形式,并以所述第一接口形式将所述第一通知消息传输给所述播放器;其中,所述第一通知消息用于指示解码完毕。
结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述视频信息处理装置,还用于在将所述解码器解码出的视频帧传输给所述后处理单元之前,接收所述播放器传输的内存描述信息,并将所述内存描述信息传输给所述后处理单元;
所述后处理单元具体用于对所述视频帧进行后处理并将经过后处理的视频帧存储到所述内存描述信息指示的内存中,所述经过后处理的视频帧由所述播放器从所述内存中读取。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述视频信息处理装置,还用于在将所述视频帧和所述内存描述信息传输给所述后处理单元之后,接收所述后处理单元传以第三接口形式传输的第二通知消息,将用于传输所述第二通知消息的接口形式从所述第三接口形式切换为所述第一接口形式,并以所述第一接口形式将所述第二通知消息传输给所述播放器;其中,所述第三接口形式是所述后处理单元所支持的接口形式,所述第二通知消息用于指示后处理完毕。
结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第一接口形式为标准解码器接口形式,所述第二接口形式为私有解码器接口形式。
本发明实施例提供的视频信息处理方法及设备,视频信息处理装置接收播放器传输的压缩码流,将其传输给解码器,以供解码器进行解码获得视频帧,再将解码器解码出的视频帧传输给后处理单元进行后处理,由后处理单元向播放器提供经过后处理的视频帧。通过分析可知,本发明实施例通过视频后处理装置改变解码出的视频帧的走向,使得解码出的视频帧被送到解码器之后的后处理单元,可由解码器之后的后处理单元对解码出的视频帧进行后处理,相当于将解码器和后处理单元集成在一起,使得后处理对播放器透明,这样就不需要对播放器和解码器进行修改,也不会影响媒体处理系统中的其他组件,在不大量修改媒体处理系统的前提下实现了对视频帧的后处理,降低了视频后处理的实现成本、时间等代价。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对本申请解决的问题,本发明实施例提供了一种新的媒体处理系统,该媒体处理系统的结构如图2所示,主要包括:播放器21、媒体源处理单元22、视频解码设备23和显示单元24。其中,视频解码设备23主要集成有解码器和后处理单元,一方面完成对压缩码流的解码,另一方面完成解码之后的视频后处理,同时克服现有技术实现视频后处理存在的各种问题。
在一可选实施方式中,如图3所示,视频解码设备23的实现结构包括:视频信息处理装置231、解码器232和后处理单元233。其中,解码器232主要实现对压缩码流的解码,后处理单元233主要实现解码后的视频后处理功能,而视频信息处理装置231主要用于克服现有技术因实现视频后处理功能所存在的各种问题。其中,播放器21、媒体源处理单元22、视频信息处理装置231、解码器232、后处理单元233和显示单元24之间连接关系如图3所示。
基于上述媒体处理系统,本发明以下实施例提供一种视频信息处理方法,如图4a所示,该视频信息处理方法包括:
301、视频信息处理装置接收播放器传输的压缩码流。
302、视频信息处理装置将压缩码流传输给解码器。
303、解码器对压缩码流进行解码得到视频帧并将视频帧提供给视频信息处理装置。
304、视频信息处理装置将解码器解码出的视频帧传输给后处理单元。
305、后处理单元对视频帧进行后处理并向播放器提供经过后处理的视频帧,该经过后处理的视频帧经过播放器被传输至显示单元以做显示。
在本实施例中,视频信息处理装置位于播放器和解码器之间,主要负责播放器和解码器之间的信息传输,具体的,视频信息处理装置将来自播放器的压缩码流提供给解码器;解码器对视频信息处理装置提供的压缩码流进行解码,并将解码器解码出的视频帧提供给视频信息处理装置;视频信息处理装置再将解码器解码出的视频帧传输给后处理单元;后处理单元对视频帧进行后处理后提供给播放器。在现有技术中,视频帧从解码器输出后直接被送往播放器,而本实施例通过视频信息处理装置将视频帧发送到解码器之后的后处理单元,实现对视频帧的后处理,之后再由后处理单元向播放器提供经过后处理的视频帧,相当于将解码器和后处理单元集成在一起,使得后处理对播放器透明,这样就不需要对播放器和解码器进行修改,也不会影响媒体处理系统中的其他组件,在不大量修改媒体处理系统的前提下实现了对视频帧的后处理,降低了视频后处理的实现成本、时间等代价。
考虑到播放器和解码器可以支持相同的接口形式,也可以支持不同的接口形式,本发明以下实施例提供另一种视频信息处理方法,如图4b所示,该方法包括:
401、视频信息处理装置接收播放器以第一接口形式传输的压缩码流;其中第一接口形式是播放器所支持的接口形式。
402、视频信息处理装置将用于传输压缩码流的接口形式从第一接口形式切换为第二接口形式,并以第二接口形式将上述压缩码流传输给解码器,其中,第二接口形式是解码器所支持的接口形式。
403、解码器对视频信息处理装置以第二接口形式传输的压缩码流进行解码,获得视频帧并将视频帧提供给视频信息处理装置。
404、视频信息处理装置将解码器解码出的视频帧传输给后处理单元。
405、后处理单元对该视频帧进行后处理并向播放器提供经过后处理的视频帧,该经过后处理的视频帧经过播放器被传输至显示单元以做显示。
在本实施例中,播放器传输的压缩码流是以播放器所支持的接口形式传输的(即以第一接口形式传输该压缩码流),且该压缩码流并不像现有技术那样直接传输给解码器,而是传输给视频信息处理装置。视频信息处理装置接收到播放器以该播放器所支持的接口形式传输的压缩码流之后,对传输该压缩码流的接口形式进行切换,切换到解码器所支持的接口形式,即第二接口形式。然后,视频信息处理装置以第二接口形式将该压缩码流传输给解码器。由此可见,在本实施例中,通过在播放器和解码器之间增加视频信息处理装置,由视频信息处理装置对播放器和解码器之间传输压缩码流采用的接口形式进行切换,使得播放器和解码器可以各自采用自己所支持的接口形式,不需要因所支持的接口形式不同而对播放器和解码器进行修改。
通常,播放器所支持的接口形式是标准解码器接口形式,而解码器所支持的接口形式一般是私有解码器接口形式。而视频信息处理装置在播放器和解码器之间进行接口格式的切换,相当于对外提供了统一的标准解码器接口,这就使得播放器和解码器均不需要为实现后处理而做改动。在此说明,进行接口格式的切换属于现有技术,视频信息处理装置可以根据播放器和解码器所支持的接口形式参照现有技术中相应的切换方式实现接口格式的切换。
解码器接收视频信息处理装置以第二接口形式传输的压缩码流,对接收到的压缩码流进行解码处理,获得视频帧,并将解码出的视频帧传输给视频信息处理装置,再由视频信息处理装置将视频帧传输给后处理单元。后处理单元接收到视频信息处理装置传输的视频帧后,对视频帧进行后处理,并向播放器提供经过后处理的视频帧,实现对视频帧的后处理。
在此说明,在本发明实施例中,在解码后对视频帧所做的处理叫做后处理。后处理单元对视频帧的后处理操作包括但不限于以下操作中的至少一个:去块效应、去振铃效应、颜色增强、对比度增强、清晰度增强和去隔行处理。
由上述可知,本发明实施例实际上是通过在播放器和解码器之间增加视频信息处理装置,一方面对播放器和解码器之间用于传输压缩码流的接口形式进行转换,对外提供标准解码器接口,另一方面通过改变解码器解码出的视频帧的走向,使得视频帧被送往解码器之后的后处理单元实现后处理,并将经过后处理的视频帧提供给播放器,这相当于将视频后处理功能和解码器集成在一起实现,使得视频后处理对播放器透明,这就无需对播放器和解码器进行修改,也就解决了要求媒体处理系统所作的修改必须开源的问题,同时降低了实现视频后处理的成本、时间等代价。
图5为本发明实施例提供的又一种视频信息处理方法的流程图。如图5所示,该视频信息处理方法包括:
501、视频信息处理装置接收播放器以第一接口形式传输的压缩码流;其中第一接口形式是播放器所支持的接口形式。
502、视频信息处理装置将用于传输压缩码流的接口形式从第一接口形式切换为第二接口形式,并以第二接口形式将上述压缩码流传输给解码器;其中,第二接口形式是解码器所支持的接口形式。
503、解码器接收视频信息处理装置以第二接口形式传输的压缩码流并进行解码得到视频帧,并将视频帧提供给视频信息处理装置。
504、视频信息处理装置接收解码器以第二接口形式传输的第一通知消息,将用于传输第一通信消息的接口形式从第二接口形式切换为第一接口形式,并以第一接口形式将第一通知消息传输给播放器;其中,第一通知消息用于指示解码完毕。
505、视频信息处理装置将解码器解码出的视频帧传输给后处理单元。
506、后处理单元对该视频帧进行后处理并向播放器提供经过后处理的视频帧,该经过后处理的视频帧经过播放器被传输至显示单元以做显示。
在此说明,步骤501、502、503、505和506的描述可参见步骤401-405的描述,在此不再赘述。且步骤504和步骤505的先后顺序可以不做限于图5所示。
在本实施例中,视频信息处理装置以第二接口形式将压缩码流传输给解码器之后,解码器会对接收到的压缩码流进行解码处理,当解码处理结束之后,解码器会通过视频信息处理装置向播放器通告解码完毕的消息。具体的,解码器以解码器所支持的第二接口形式向视频信息处理装置传输第一通知消息,由视频信息处理装置对用于传输第一通知消息的接口形式进行切换,切换为播放器所支持的第一接口形式。然后,视频信息处理装置以播放器所支持的第一接口形式将第一通知消息发送给播放器,这样播放器可以基于该第一通知消息获知解码器对当前压缩码流解码完毕。可选的,如果播放器还有后续压缩码流需要进行解码,则可以在接收到第一通知消息后继续通过视频信息处理装置向解码器提供后续的压缩码流。在此说明,这里的第一通知消息实际上就是一个通知消息,为了便于与后续其它通知消息相区分,故在通知消息之前冠以“第一”,这里的“第一”既没有先后顺序的限定,也没有个数的限定。
基于图4a、图4b或图5所示方法实施例,在一可选实施方式中,上述视频信息处理装置将解码器解码出的视频帧传输给后处理单元,包括:
视频信息处理装置接收解码器输出的视频帧,并接收播放器传输的内存描述信息;将该视频帧和内存描述信息传输给后处理单元。
相应的,后处理单元对视频帧进行后处理并向播放器提供经过后处理的视频帧,包括:
后处理单元对该视频帧进行后处理并将经过后处理的视频帧存储到该内存描述信息指示的内存中,该经过后处理的视频帧由播放器从该内存中读取。
可选的,视频信息处理装置在将内存描述信息传输给后处理单元之前,还会对传输内存描述信息的接口形式进行切换,将由播放器所支持的接口形式切换为后处理单元所支持的接口形式,然后再以切换后的接口形式将内存描述信息传输给后处理单元。
在该实施方式中,播放器除了向解码器提供压缩码流之外,还会向后处理单元提供用于指示存储经过后处理视频帧的内存描述信息。同理,该播放器也不直接与后处理单元进行通信,而是通过视频信息处理装置。视频信息处理装置接收播放器提供的内存描述信息,并将该内存描述信息提供给后处理单元,后处理单元根据该内存描述信息确定用于存储经过后处理的视频帧的内存空间。后处理单元接收视频信息处理装置传输的视频帧和内存描述信息,一方面对视频帧进行后处理,另一方面根据内存描述信息确定用于存储经过后处理的视频帧的内存,进而将经过后处理的视频帧存储到所确定的内存中,这样播放器就可以从该内存描述信息所指示的内存中去读取经过后处理的视频帧并进行播放。
视频信息处理装置向后处理单元提供解码器解码出的视频帧的过程,与向后处理单元提供内存描述信息的过程可以在同一过程中,也可以是在不同的过程中。进一步,如果视频信息处理装置向后处理单元提供解码器解码出的视频帧的过程,与向后处理单元提供内存描述信息的过程是在不同过程中,则这两个过程的先后顺序也不做限定。
基于上述可选实施方式,进一步可选的,视频信息处理装置将视频帧和内存描述信息传输给后处理单元之后,还可以接收后处理单元以第三接口形式传输的第二通知消息,然后将用于传输第二通知消息的接口形式从第三接口形式切换为第一接口形式,并以播放器所支持的第一接口形式将第二通知消息传输给播放器,其中,第二通知消息用于指示后处理完毕。
在该实施方式中,视频信息处理装置将视频帧和内存描述信息传输给后处理单元之后,后处理单元会对接收到的视频帧进行后处理,当后处理结束之后,后处理单元会通过视频信息处理装置向播放器通告后处理完毕的消息。具体的,后处理单元以后处理单元所支持的第三接口格式向视频信息处理装置传输第二通知消息,由视频信息处理装置对用于传输第二通知消息的接口形式进行切换,切换为播放器所支持的第一接口形式。然后,视频信息处理装置以播放器所支持的第一接口形式将第二通知消息发送给播放器,使播放器基于该第二通知消息获知后处理单元完成对当前视频帧的后处理。可选的,播放器可以在接收到第二通告消息之后,去内存描述信息所指示的内存中读取经过后处理的视频帧。在此说明,这里的第二通知消息实际上就是一个通知消息,为了便于与第一通知消息相区分,故在通知消息之前冠以“第二”,这里的“第二”既没有先后顺序的限定,也没有个数的限定。
在本发明实施例中,对播放器所支持的接口形式、解码器所支持的接口形式以及后处理单元所支持的接口形式均不做限定。通常,播放器所支持的接口形式是标准解码器接口形式,而解码器所支持的接口形式是私有解码器接口形式。一般,播放器所支持的接口形式与解码器所支持的接口形式不相同。但本发明技术方案同样适用于播放器和解码器所支持的接口形式相同的应用场景。
其中,本发明实施例中接口的一种实现方式可以是开放多媒体加速层(OpenMedia Acceleration,简称为OpenMax)。OpenMax是科纳斯组织(Khronos Group)制定的应用程序接口(Application Programming Interface,简称为API),基于OpenMax接口的播放器和解码器可以快速对接。OpenMax接口已经成为业界标准,大量媒体处理系统都支持以OpenMax接口访问解码器。OpenMax定义了三层API接口,分别为应用水平(ApplicationLevel,简称为AL)接口、集成水平(Integration Level,简称为IL)接口和发展水平(Development Level,简称为DL)接口,业界最常用的是IL接口。以下实施例将以播放器和解码器均支持OpenMax IL接口形式为例,详细说明本发明技术方案。在此说明,在该实施方式中不涉及接口形式切换的问题。
以OpenMax IL接口形式为例,本发明实施例中的视频解码设备与播放器的信息交互可归纳为四类,如图6中的①-④:
①:表示播放器向视频解码设备发送压缩码流,由播放器主动调用视频解码设备提供的OMX_EmptyThisBuffer()接口实现;
②:表示视频解码设备报告码流解码完毕,由视频解码设备调用播放器提供的EmpbyBufferDone()接口实现;
③:表示播放器向视频解码设备提供用于存放解码出的视频帧的内存描述信息,由播放器主动调用视频解码设备提供的OMX_FillThisBuffer()接口实现;
④:表示视频解码设备报告视频帧后处理完毕,通知播放器可以使用经过后处理的视频帧,由视频解码设备调用播放器提供的FillBufferDone()接口实现。
本实施例把视频后处理和视频解码器封装在一起形成视频解码设备,对外提供OpenMax IL接口,完全保持OpenMax IL解码器的行为模式。该视频解码设备的实现结构如图3所示。该视频解码设备对视频信息进行处理的过程如下:
播放器准备好压缩码流,调用播放器所提供的OMX_EmptyThisBuffer()把压缩码流传送到视频信息处理装置。视频信息处理装置调用解码器提供的OMX_EmptyThisBuffer()将压缩码流传送给解码器;
另外,播放器通过调用OMX_FillThisBuffer(),将空闲的用于存放经过后处理的视频帧的内存描述信息传送给视频信息处理装置,视频信息处理装置记录播放器每一次通过OMX_FillThisBuffer()传送的内存描述信息;
解码器对接收到的压缩码流进行解码,解码完毕之后通知视频信息处理装置,视频信息处理装置通过调用播放器提供的EmptyBufferDone()通知播放器解码完毕;
解码器解码出视频帧之后输出给视频信息处理装置,视频信息处理装置从所记录的内存描述信息中获取对应的一个内存描述信息,然后通过后处理单元的接口把解码器解码出的视频帧和所获取的内存描述信息传送给后处理单元,以启动后处理单元。
后处理单元对视频帧进行后处理,并将经过后处理的视频帧存储到内存描述信息所支持的内存中,之后向视频信息处理装置通告后处理完毕,视频信息处理装置通过播放器提供的FillBufferDone()接口通知播放器后处理完毕,以供播放器读取经过后处理的视频帧并进行后续处理,所述后续处理一般是指音视频同步和显示。
由上述可见,本发明实施例提供的视频信息处理方法,视频信息处理装置通过调改变解码器解码出的视频帧的走向,将其发送给解码器之后的后处理单元,由解码器之后的后处理单元对解码出的视频帧进行后处理,实现了对视频帧的后处理过程,再将经过后处理的视频帧提供给播放器,使得该视频后处理对播放器透明,因此可以在不大量修改媒体处理系统的前提下实现了对视频帧的后处理,降低了视频后处理的实现成本、时间等代价。
通常,解码器的接口形式是特定供应商自行决定的,形式各异。一种常见的解码器接口形式是:DecodeFrame(解码码流,解码状态)。应用程序(比如某个特定的播放程序)不停地调用DecodeFrame()函数,每次消耗的码流数量以及是否有帧输出,均在“解码状态”中予以上报。应用程序通过这种方式不断地送入码流,取走解码帧,实现视频解码的功能。
假定解码器采用上述接口形式,而播放器采用OpenMax IL接口形式,则视频信息处理装置需要在这种私有的接口形式和OpenMax IL接口形式之间进行接口格式的切换,视频信息处理装置对视频信息进行处理的过程可描述如下:
1.播放器调用OMX_EmptyThisBuffer()向视频信息处理装置送入压缩码流,并通过OMX_FillThisBuffer()向视频信息处理装置提供存放解码帧的内存描述信息;其中,OMX_EmptyThisBuffer()和OMX_FillThisBuffer()等相当于播放器所支持的第一接口格式;
2.视频信息处理装置将用于传输压缩码流和内存描述信息的接口形式切换为DecodeFrame(),通过调用DecodeFrame()解码由上述OMX_EmptyThisBuffer()送入的压缩码流;其中,DecodeFrame()相当于解码器所支持的第二接口形式;
3、DecodeFrame()函数返回后,视频信息处理装置根据返回结果执行如下操作:如果DecodeFrame()返回的“解码状态”报告送入的压缩码流已经解码完毕,向播放器返回OMX_EmptyThisBufferDone()事件,通知播放器这部分压缩码流已经处理完毕;如果DecodeFrame()返回的“解码状态”报告有解码出的视频帧可以输出,则通过后处理单元的接口把解码器解码出的视频帧和所获取的内存描述信息传送给后处理单元,以启动后处理单元,当后处理单元处理完毕后,向播放器发出OMX_FillThisBufferDone()事件,通知播放器解码有帧输出;
循环执行上述步骤1-3直至压缩码流解码完毕。
图7为本发明实施例提供的另一种视频解码设备的结构示意图。如图7所示,该视频解码设备包括:视频信息处理装置71、解码器74和后处理单元75。
视频信息处理装置71,用于接收播放器传输的压缩码流,将压缩码流传输给解码器74,从解码器74接收解码器74解码出的视频帧,并将解码器74解码出的视频帧传输给后处理单元75。
解码器74,用于对视频信息处理装置71传输的压缩码流进行解码,获得视频帧,并将视频帧提供给视频信息处理装置71。
后处理单元75,用于对视频信息处理装置71传输的视频帧进行后处理并向播放器提供经过后处理的视频帧,该经过后处理的视频帧经过播放器被传输至显示单元以做显示。
在一可选实施方式中,视频信息处理装置71具体用于接收播放器以第一接口形式传输的压缩码流,其中第一接口形式是播放器所支持的接口形式。
进一步,视频信息处理装置71在接收播放器以第一接口形式传输的压缩码流后,还用于将用于传输压缩码流的接口形式从第一接口形式切换为第二接口形式。其中,第二接口形式是解码器74所支持的接口形式。则视频信息处理装置71具体用于以第二接口形式将压缩码流传输给解码器74。
在一可选实施方式中,视频信息处理装置71,还用于在以第二接口形式将压缩码流传输给解码器之后,接收解码器以第二接口形式传输的第一通知消息,将用于传输第一通知消息的接口形式从第二接口形式切换为第一接口形式,并以第一接口形式将第一通知消息传输给播放器;其中,第一通知消息用于指示解码完毕。
在一可选实施方式中,视频信息处理装置71,还用于在将解码器74解码出的视频帧传输给后处理单元75之前,接收播放器传输的内存描述信息,并将内存描述信息传输给后处理单元75。
则后处理单元75具体用于对视频帧进行后处理并将经过后处理的视频帧存储到内存描述信息指示的内存中,该经过后处理的视频帧由播放器从内存描述信息指示的内存中读取。
在一可选实施方式中,视频信息处理装置71,还用于在将视频帧和内存描述信息传输给后处理单元75之后,接收后处理单元75以第三接口形式传输的第二通知消息,将用于传输第二通知消息的接口形式从第三接口形式切换为第一接口形式,并以第一接口形式将第二通知消息传输给播放器。第三接口形式是后处理单元所支持的接口形式。第二通知消息用于指示后处理完毕。
在一可选实施方式中,播放器采用的第一接口形式可以是标准解码器接口形式,例如可以为OpenMax IL接口形式,但不限于此。解码器采用的第二接口形式一般为私有解码器接口形式。
本实施例提供的视频解码设备可用于执行前述方法实施例的流程,其及其内部部件的工作原理不再赘述,详见方法实施例的描述。
视频信息处理装置71、解码器74和后处理单元75可以通过逻辑集成电路实现。具体地,视频信息处理装置71、解码器74和后处理单元75的全部功能可以完全通过硬件来实现,即完全通过逻辑集成电路所执行的算法来实现。可选地,视频信息处理装置71、解码器74和后处理单元75的全部功能也可通过软件和硬件结合的方式实现,即所述逻辑集成电路可以在驱动软件的驱动下执行运算来完成所述功能。
本实施例提供的视频解码设备,一方面在播放器和解码器之间进行接口形式的切换,对外提供统一的接口形式,另一方面通过改变解码器解码出的视频帧的走向,使得视频帧被送往解码器之后的后处理单元实现后处理,并将经过后处理的视频帧提供给播放器,这相当于将解码器和后处理单元集成在一起,使得后处理对播放器透明,不需要对播放器和解码器进行修改,也不会影响媒体处理系统中的其他组件,在不修改媒体处理系统的前提下实现了对视频帧的后处理,降低了视频后处理的实现成本、时间等代价。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。