一种提高视频解码显示中系统总线效率的方法及系统与流程

文档序号:12120729阅读:448来源:国知局
一种提高视频解码显示中系统总线效率的方法及系统与流程

本发明涉及一种提高视频解码显示中系统总线效率的方法及系统。



背景技术:

随着众多如数字电视、互联网高清视频、高超清数字电视机顶盒等数码产品的逐渐普及,视频编解码技术的标准化正在使得所述领域的技术商业化。对于视频编解码而言,ITU-T H.264、H265以及具有自主知识产权的AVS/AVS+/AVS2等标准正得到广泛使用。视频数据的播放要求实时性高,从而带来高清、超清的实时解码时需要带宽需求也越来越大,系统总线的效率性能也越来越成为瓶颈。

为了提高效率的压缩像素信息,在处理16x16宏块的过程还会将图像进行更小的分割,比如16x16,16x8,8x16,8x8这些分割,在H.264、AVS等标准中,为了更大的压缩视频码率采用了最小的4x4的图像分割,更加精细的压缩了视频图像信息,从而压缩了码率,但是却大大增加了编码和解码过程中数据读取的读取和使用,块状数据的读取成为了一个必然的趋势,而各种视频图像的大小也习惯性地以16或者8作为其水平和垂直方向的宽度,以便于处理,所以在解码过程中读取的都是按照块的方式进行读取,为了提高读取的效率多数解码器都是采用特殊的存储方式对YUV数据进行存储。

图1为典型的解码器存储解码YUV数据的存储方案。这种方式的存储解码器可以一次读取一个8x8的块不需要换行连续读取,提高了编码解码器过程中的块状数据读取的效率。但是我们的系统中除了解码器模块之外还会有显示模块,基本上所有的显示都是按照行的方式处理。例如在1080P的解码显示系统中,对于利于视频编解码的YUV的存储方式,显示模块读取一行YUV需要发送1920/8=240次请求,每次请求长度只有8个像素点,严重影响系统BUS的效率,是目前系统问题的主要问题所在。



技术实现要素:

本发明所要解决的技术问题是,针对现有技术不足,提供一种提高视频解码显示中系统总线效率的方法及系统。

为解决上述技术问题,本发明所采用的技术方案是:一种提高视频解码显示中系统总线效率的方法,其特征在于,包括以下步骤:

1)系统BOOT启动控制系统复位,DDR初始化;

2)获取视频数据源;

3)解码器读取视频数据源进行解码,然后将解码的YUV数据通过系统总线传送到DDR控制器中,然后通过DDR PHY写到DDR中;

4)系统控制模块控制视频显示模块工作,视频显示模块将一行数据的多次请求按照系统总线的最大长度方式合并请求发送给系统总线;

5)系统总线接收视频显示模块发来的请求,传递给DDR控制器,DDR控制器解析到请求方式是合成请求,将合成请求分解成多次YUV的数据请求,并且通过合成方案的反向方式计算出每次请求的实际物理地址,分次串行发送读取命令给DDR PHY,完成多次多地址的DDR的读取操作;

6)DDR控制器再将返回的DDR读取数据返回给系统总线,然后返回到视频显示模块中。

步骤4)中,实际物理地址Address=帧起始地址+ 场次信息x场地址偏移+ Y坐标地址x列地址偏移+ X坐标地址x像素地址偏移。

本发明还提供了一种提高视频解码显示中系统总线效率的系统,包括:

视频源:普通系统中的视频数据源的源头,类似网络机顶盒中通过Ethernet或者通过USB连接的硬盘或者U盘中的视频数据源;用于获取视频数据源;

解码器:读取视频数据源用于解码,然后将解码后的视频数据源,即YUV数据通过系统总线传送到DDR控制器中,然后通过DDR PHY写到DDR中;

系统控制模块:用于调度及控制视频显示模块工作;

视频显示模块:用于视频数据的请求及显示工作,将一行视频数据的多次请求按照系统总线的最大长度方式合并请求发送给系统总线;

系统总线:用于接收视频源、解码器、系统控制模块、视频显示模块、DDR控制器发送的数据的请求,传递给DDR控制器;

DDR控制器:用于连接系统总线和DDR PHY之间的数据交互,解析请求方式,若解析到请求方式是合成请求,则将合成请求分解成多次YUV的数据请求,并且通过合成方案的反向方式计算出每次请求的实际物理地址,分次串行发送读取命令给DDR PHY,完成多次多地址的DDR的读取操作;再将返回的DDR读取数据返回给系统总线,然后返回到视频显示模块中。

所述视频显示模块包括:

请求合成模块:用于将一行数据的多次请求按照系统总线的最大长度方式合并请求发送给系统总线。

所述DDR控制器包括:

请求分离模块:用于将合成请求分解成多次YUV的数据请求,并且通过合成方案的反向方式计算出每次请求的实际物理地址,分次串行发送读取命令给DDR PHY,完成多次多地址的DDR的读取操作;再将返回的DDR读取数据返回给系统总线,然后返回到视频显示模块中。

与现有技术相比,本发明所具有的有益效果为:本发明解决了解码系统中的YUV效率存储方案给显示系统带来的请求多,容易被打断的问题;提高了系统总线的总体性能。

附图说明

图1为典型的解码器存储解码YUV数据的存储方案;

图2为本发明一实施例系统结构框图。

具体实施方式

如图2,该发明的特点和流程如下:

1)系统BOOT启动控制系统复位,DDR初始化等一系列流程。

2)视频源模块启动得到需要显示的视频数据源。

3)解码器读取视频数据源解码,然后将解码后用于显示的YUV数据通过203系统总线传送到DDR控制器中,然后通过DDR PHY写到DDR中,此处DDR控制器确认是实际地址操作不需要进行请求分离。

4)系统控制模块控制视频显示模块工作,视频显示模块通过请求合成模块将一行数据的多次请求按照系统总线的最大长度方式合并请求发送给系统总线。

5)系统总线接收视频显示模块发来的请求,传递给DDR控制器模块,DDR控制器解析到请求方式是合成请求,通过请求分离模块将合成请求分解成多次YUV的数据请求,并且通过合成方案的反向方式计算(请求分离模块给出)出每次请求的实际物理地址,分次串行发送读取命令给DDRPHY,完成多次多地址的DDR的读取操作,减少中间被其它请求打断的困扰。

6)请求分离模块再将返回的DDR读取数据返回给系统总线,再回到视频显示模块中,由于返回的数据都是按照读取行顺序需求的方式进行拼接的,所以返回的数据可以直接被视频显示模块直接使用无需再做处理,这种方式的改变会使得以前需要多次请求的操作通过一次的请求的方式完成,大大提高了解码显示系统中的总线的效率。

请求合成模块主要是根据目前视频显示的需求方式,以行为单位对需要显示的数据进行读取,在读取的请求上对本来需要多次请求的行视频显示数据进行合并处理,原来每次请求的数据长度应该是YUV存放的线性的数据长度8 pixel 64 bit 数据,请求合并之后使用总线的最大burst size,从而减轻总线的请求量提高总线效率,当然对于请求的总线协议上进行特殊定义,首先需要定义一个固定的ID值作为请求合成的方式的固定ID,当然这个固定的ID值不能被其它模块使用,其次我们需要对请求的地址进行从新的定义,合并之后的请求地址包含请求行的X、Y坐标信息以及读取场次信息,这个需要和请求分离模块的分解地址相匹配,才能保证取到你想要的地址上的数据。

请求分离模块的主要任务是根据系统总线上特殊固定ID的请求进行解析,根据请求的地址信号的逆过程解析出当前需求的场次信息以及请求行的X、Y坐标,按照请求的长度分解成相应的几段数据,每段数据是8个像素的数据(根据前面提出的YUV的常用存储方式确定),然后进行地址的计算,根据Address = Frame base address(帧起始地址)+ 场次信息x Filed offset(场地址偏移)+ Y坐标地址x line offset(列地址偏移)+X坐标地址x pixel offset(像素地址偏移),精确计算出每段8个像素点的准确位置,通过DDR控制器直接将请求发送给DDR PHY,每发出一个请求的同时计算出下一段的8个像素点的地址,接着发送下一个地址的请求,从而达到高速高效串行的请求的输出,相应的请求分离模块将DDR PHY 返回的像素的数据使用FIFO保存起来,当所有的请求的数据都从DDR得到之后,再通过系统总线按照系统总线的协议方式将本来分散存储的数据高效回馈给请求合成模块,减少多次请求带来的系统效率的影响。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1