视频解码直通显示方法和装置
技术领域
本发明涉及一种视频解码直通显示方法和装置。
背景技术
随着移动设备中播放的视频源清晰度越来越高,从过去的720p到1080p到4K解析度,在保持相同播放帧率的情况下,视频图像的解析度越高就对DDR存储器的带宽要求越高。为了提高DDR存储器的带宽,通常需要增加DDR通道或者增大每个通道的位宽,但是这些方法都将极大的增加了产品的成本和功耗。因此,如果能从使用根本上减少相同解析度视频播放对带宽的需求,将是非常有意义的。
目前的视频解码数据通路为:视频解码器将视频源从DDR读取并解码后,将解码后的视频图像存回DDR,然后显示控制器再将解码后的视频图像从DDR读取出来并送到屏幕显示。如果能将视频解码器的回写操作和显示控制器对视频图像的读操作节省下来,将极大的降低整个解码显示的带宽需求。但是技术上的困难为视频解码是基于图像块解码,显示控制器是基于图像行的显示,数据顺序的不同造成了视频解码器直通显示控制有很大的难度,所以本发明提出了一种视频解码器直通显示控制器的方法,将传统数据通路中视频解码器的DDR回写操作和显示控制器对DDR中视频图像的读操作节省下来,极大地降低整个解码显示对DDR的带宽需求,并且能极大降低产品的成本和功耗。
发明内容
本发明要解决的技术问题之一,在于提供一种视频解码直通显示方法,将传统数据通路中视频解码器的DDR回写操作和显示控制器对DDR中视频图像的读操作节省下来,极大地降低整个解码显示对DDR的带宽需求,并且能极大降低产品的成本和功耗。
本发明要解决的技术问题之一是这样实现的:一种视频解码直通显示方法,包括:
步骤10、读取DDR的视频源数据流后,对每个图像宏块进行解码,并得到宏块的位置信息和解码后的图像数据;
步骤20、根据所述宏块位置信息判断该宏块在最大宏块中的位置,即子宏块位置信息;
步骤30、根据子宏块位置信息将该子宏块解码后图像数据填充到最大宏块缓存单元;
步骤40、控制数据量送往两个宏块行缓存单元A和B中的其中一个,最开始两个宏块行缓存单元都为空时,从宏块行缓存单元A开始填充,当宏块行缓存单元A反馈的满状态有效时,通路切换为宏块行缓存单元B.然后当宏块行缓存单元B反馈的满状态有效时,通路再切换回宏块行缓存单元A,如此循环直到整个图像解码完成;如果两个宏块行缓存单元都成为满状态,则不选通数据通路;
步骤50、根据两个宏块行缓存单元的满有效信息来选择读取哪个宏块行缓存单元,哪个满读哪个,然后由显示控制单元将图像行数据处理后送往屏幕进行显示。
进一步的,所述步骤40和步骤50中,当一个宏块行缓存单元填满后,该宏块行缓存单元的数据直通到显示控制器进行显示,同时另一个行缓存继续接受填充,以使整个显示过程中解码不停止,当任何一个宏块行缓存单元满后,该行缓存的数据就会送往行读取操作单元。
进一步的,在两个宏块行缓存单元满状态都有效时,判断为行缓存已满,并以此行缓存已满的状态信息通知停止解码动作直到任何一个宏块行缓存单元的满状态变为无效时,再继续进行解码动作。
本发明要解决的技术问题之二,在于提供一种视频解码直通显示装置,将传统数据通路中视频解码器的DDR回写操作和显示控制器对DDR中视频图像的读操作节省下来,极大地降低整个解码显示对DDR的带宽需求,并且能极大降低产品的成本和功耗。
本发明要解决的技术问题之二是这样实现的:一种视频解码直通显示装置,包括视频解码单元、模块位置判断单元、宏块缓存填充单元、最大宏块存储单元、乒乓缓存通路选择单元、宏块行缓存单元A、宏块行缓存单元B以及行读取操作单元;所述视频解码单元、宏块缓存填充单元、最大宏块存储单元、乒乓缓存通路选择单元依次连接;所述乒乓缓存通路选择单元分别通过所述宏块行缓存单元A和宏块行缓存单元B连接行读取操作单元;所述模块位置判断单元分别连接视频解码单元和宏块缓存填充单元;所述视频解码单元还连接DDDR存储单元,所述行读取操作单元还连接显示控制单元;其中,
所述视频解码单元从DDR读取视频源数据流,对每个图像宏块进行解码,之后将宏块的位置信息送往模块位置判断单元,并将解码后的图像数据送往宏块缓存填充单元;
所述模块位置判断单元根据所述宏块位置信息判断该宏块在最大宏块中的位置,并将判断出的本宏块在最大宏块中的位置信息即子宏块位置信息送往所述宏块缓存填充单元;
所述宏块缓存填充单元根据子宏块位置信息,将解码后图像数据填充到最大宏块缓存单元;填充完毕后,最大宏块缓存单元将最大宏块数据送往所述乒乓缓存通路选择单元;
所述乒乓缓存通路选择单元控制数据量并送往两个宏块行缓存单元A和B中的其中一个,最开始两个宏块行缓存单元都为空时,从宏块行缓存单元A开始填充,当宏块行缓存单元A反馈的满状态有效时,通路切换为宏块行缓存单元B.然后当宏块行缓存单元B反馈的满状态有效时,通路再切换回宏块行缓存单元A,如此循环直到整个图像解码完成;如果两个宏块行缓存单元都成为满状态,则不选通数据通路;
所述行读取操作单元根据两个宏块行缓存单元的满有效信息来选择读取哪个宏块行缓存单元,哪个满读哪个,然后由显示控制单元将图像行数据处理后送往屏幕进行显示。
进一步的,本发明装置还包括填充满判断单元,所述填充满判断单元分别连接所述视频解码单元、乒乓缓存通路选择单元、宏块行缓存单元A、宏块行缓存单元B以及行读取操作单元;该填充满判断单元在两个宏块行缓存单元满状态都有效时,判断为行缓存已满,并将此状态送往所述视频解码器单元通知其停止解码动作直到任何一个宏块行缓存单元满状态变为无效时,再通知视频解码器单元继续进行解码动作。
本发明具有如下优点:本发明在视频解码器的解码后图像直通显示控制器,不经过DDR,这种方法可以节省传统数据通路中视频解码器的DDR回写操作和显示控制器对DDR中视频图像的读操作节省下来,极大的降低整个解码显示对DDR的带宽需求,可以极大降低产品的成本和功耗。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法一实施例的流程图。
图2为本发明中宏块在最大宏块中的位置结构示意图。
图3为本发明中宏块在最大宏块中的填充顺序示意图。
图4为本发明宏块行缓存单元的最大宏块的填充顺序:示意图。
图5为本发明装置较佳实施例的原理结构框图。
具体实施方式
如图1所示,本发明的视频解码直通显示方法,包括:
步骤10、读取DDR的视频源数据流后,对每个图像宏块进行解码,并得到宏块的位置信息和解码后的图像数据。
步骤20、根据所述宏块位置信息判断该宏块在最大宏块中的位置,即子宏块位置信息;如图2所示,为了提高图像压缩效果,视频编码协议中在设定了最大宏块后,允许编码时在最大宏块的内部拆分为多个子宏块进行编码,子宏块的切割方式多种对样,但是需要将子宏块在最大宏块中的位置信息存储于每个子宏块的编码数据流中。
步骤30、根据子宏块位置信息将该子宏块解码后图像数据填充到最大宏块缓存单元;最大宏块存储单元是一个可以存储一个最大宏块图像数据的缓存器,其填充顺序如下:
比如,以图2中的子宏块划分方式为例,假设最大宏块为64x64像素,从左到右,第一个最大宏块是由4个32x32子宏块构成,第二个最大宏块是由1个64x32子宏块和两个32x32子宏块构成,第三个最大宏块是由1个32x64子宏块和两个32x32子宏块构成。其填充顺序如图3所示,图中数字即为填充顺序编号。
步骤40、控制数据量送往两个宏块行缓存单元,即宏块行缓存单元A和宏块行缓存单元B中的其中一个,最开始两个宏块行缓存单元都为空时,从宏块行缓存单元A开始填充,当宏块行缓存单元A反馈的满状态有效时,通路切换为宏块行缓存单元B.然后当宏块行缓存单元B反馈的满状态有效时,通路再切换回宏块行缓存单元A,如此循环直到整个图像解码完成;如果两个宏块行缓存单元都成为满状态,则不选通数据通路;
步骤50、根据两个宏块行缓存单元的满有效信息来选择读取哪个宏块行缓存单元,哪个满读哪个,然后由显示控制单元将图像行数据处理后送往屏幕进行显示。
为了提高效率,所述步骤40和步骤50中,当一个宏块行缓存单元填满后,该宏块行缓存单元的数据直通到显示控制单元进行显示,同时另一个行缓存继续接受填充,以使整个显示过程中解码不停止,当任何一个宏块行缓存单元满后,该行缓存的数据就会送往显示控制单元显示。其中,宏块行缓存单元的最大宏块填充顺序如图4所示,图中数字即为填充顺序编号。
在两个宏块行缓存单元满状态都有效时,判断为行缓存已满,并以此行缓存已满的状态信息通知停止解码动作直到任何一个宏块行缓存单元的满状态变为无效时,再继续进行解码动作。
如图1至图5所示,本发明视频解码直通显示装置100,包括视频解码单元1、模块位置判断单元2、宏块缓存填充单元3、最大宏块存储单元4、乒乓缓存通路选择单元5、宏块行缓存单元A、宏块行缓存单元B、行读取操作单元6以及填充满判断单元7;所述视频解码单元1、宏块缓存填充单元3、最大宏块存储单元4、乒乓缓存通路选择单元5依次连接;所述乒乓缓存通路选择单元5分别通过所述宏块行缓存单元A和宏块行缓存单元B连接行读取操作单元6;所述模块位置判断单元2分别连接视频解码单元1和宏块缓存填充单元3;所述填充满判断单元7分别连接所述视频解码单元1、乒乓缓存通路选择单元5、宏块行缓存单元A、宏块行缓存单元B以及行读取操作单元6;所述视频解码单元1还连接DDDR存储单元200,所述行读取操作单元6还连接显示控制单元300;其中,
所述视频解码单元1从DDR存储单元200读取视频源数据流,对每个图像宏块进行解码,之后将宏块的位置信息送往模块位置判断单元2,并将解码后的图像数据送往宏块缓存填充单元3;
所述模块位置判断单元2根据所述宏块位置信息判断该宏块在最大宏块中的位置,并将判断出的本宏块在最大宏块中的位置信息即子宏块位置信息送往所述宏块缓存填充单元3;其填充顺序如下:
比如,以图2中的子宏块划分方式为例,假设最大宏块为64x64像素,从左到右,第一个最大宏块是由4个32x32子宏块构成,第二个最大宏块是由1个64x32子宏块和两个32x32子宏块构成,第三个最大宏块是由1个32x64子宏块和两个32x32子宏块构成。其填充顺序如图3所示,图中数字即为填充顺序编号。
所述宏块缓存填充单元3根据子宏块位置信息,将解码后图像数据填充到最大宏块缓存单元4;最大宏块存储单元4是一个可以存储一个最大宏块图像数据的缓存器,填充完毕后,最大宏块缓存单元4将最大宏块数据送往所述乒乓缓存通路选择单元5;其填充顺序如下:
比如,以图2中的子宏块划分方式为例,假设最大宏块为64x64像素,从左到右,第一个最大宏块是由4个32x32子宏块构成,第二个最大宏块是由1个64x32子宏块和两个32x32子宏块构成,第三个最大宏块是由1个32x64子宏块和两个32x32子宏块构成。其填充顺序如图3所示,图中数字即为填充顺序编号。
所述乒乓缓存通路选择单元5控制数据量并送往两个宏块行缓存单元A和B中的其中一个,最开始两个宏块行缓存单元都为空时,从宏块行缓存单元A开始填充,当宏块行缓存单元A反馈的满状态有效时,通路切换为宏块行缓存单元B.然后当宏块行缓存单元B反馈的满状态有效时,通路再切换回宏块行缓存单元A,如此循环直到整个图像解码完成;如果两个宏块行缓存单元都成为满状态,则不选通数据通路;
其中,所述宏块行缓存单元是一个大的缓存器,可以存储整个图像宽度中可以容纳的最大宏块数,宽度等于视频图像的最大宽度,高度等于最大宏块的高度;比如720p视频中图像解析度为1280x720,最大宏块为64x64,则一个宏块行缓存单元为1280x64,既可以存储20个最大宏块图像数据。
另外,为了提高效率,当一个宏块行缓存单元填满后,该宏块行缓存单元的数据直通到显示控制单元300进行显示,同时另一个宏块行缓存单元继续接受填充,以使整个显示过程中解码不停止,当任何一个宏块行缓存单元满后,该行缓存的数据就会送往行读取操作单元6。其中,宏块行缓存单元的最大宏块填充顺序如图4所示,图中数字即为填充顺序编号。
所述行读取操作单元6根据两个宏块行缓存单元的满有效信息来选择读取哪个宏块行缓存单元,哪个满读哪个,然后由显示控制单元300将图像行数据处理后送往屏幕进行显示。
该填充满判断单元7在两个宏块行缓存单元满状态都有效时,判断为行缓存已满,并将此状态送往所述视频解码器单元1通知其停止解码动作直到任何一个宏块行缓存单元满状态变为无效时,再通知视频解码器单元1继续进行解码动作。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。