CN102769755B - 一种视频编解码访存优化系统和方法 - Google Patents
一种视频编解码访存优化系统和方法 Download PDFInfo
- Publication number
- CN102769755B CN102769755B CN201210275438.1A CN201210275438A CN102769755B CN 102769755 B CN102769755 B CN 102769755B CN 201210275438 A CN201210275438 A CN 201210275438A CN 102769755 B CN102769755 B CN 102769755B
- Authority
- CN
- China
- Prior art keywords
- cache
- memory access
- decoding
- entropy
- entropy decoder
- 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.)
- Active
Links
Abstract
本发明公开一种视频编解码访存优化系统和方法。该系统包括熵编码器和熵解码器,其中:所述熵编码器,用于在熵编码过程中,模拟解码访存行为并获取解码访存行为信息并得到访存信息队列,根据访存信息队列编码生成访存信息辅助流并与熵编码后的视频数据一起传输给熵解码器;所述熵解码器,用于接收到待解码的码流后,利用所述访存信息辅助流,对编码的视频数据的进行缓存优化调度和解码。其实现对片上缓存的最优调度,以大幅降低平均访存延时和片外访存带宽。
Description
技术领域
本发明涉及一种视频编解码技术领域,特别是涉及一种基于辅助流的视频编解码访存优化系统和方法。
背景技术
为了提高视觉体验,视频序列的分辨率和帧率不断提高,这使得视频编解码中访存成为了视频编解码系统的主要技术瓶颈,而且问题趋势日渐突出,其中尤以运动补偿部分的访存问题为最严重。
现有技术中,片上缓存(片上cache)技术是视频访存中降低访存延时和片外访存带宽的传统技术。
但是,现有技术中由于片上缓存(片上cache)没有对访存行为进行准确预测,无法实现片上缓存(cache)的最优调度。
发明内容
本发明的目的在于提供一种视频编解码访存优化系统和方法,其实现对片上缓存的最优调度,以大幅降低平均访存延时和片外访存带宽。
为实现本发明目的而提供的一种视频编解码访存优化系统,包括:熵编码器和熵解码器,其中:
所述熵编码器,用于在熵编码过程中,模拟解码访存行为并获取解码访存行为信息并得到访存信息队列,根据访存信息队列编码生成访存信息辅助流并与熵编码后的视频数据一起传输给熵解码器;
所述熵解码器,用于接收到待解码的码流后,利用所述访存信息辅助流,对编码的视频数据的进行缓存优化调度和解码。
较优地,所述熵解码器使用的片上缓存在逻辑上划分为主缓存部分和辅助缓存部分;而在熵编码器对视频进行编码时,模拟将要在熵解码器上使用的片上缓存在逻辑上划分为主缓存部分和辅助缓存部分。
较优地,所述熵编码器包括模拟获取模块和生成模块,其中:
所述模拟获取模块,用于在对视频数据进行熵编码过程中,根据预先设置的熵解码器的主缓存的结构、大小,以及所采用的解码调度的确定性替换方法,模拟熵解码器访存过程获取解码的访存行为信息;
所述生成模块,用于在对压缩模块的视频数据进行编码时,根据解码的访存行为信息得到访存信息队列,编码生成访存信息辅助流。
较优地,所述模拟获取模块,包括计数器,判断子模块,二维数组表,记录子模块;
其中:
所述计数器,用于记录缓存替换次数;
所述判断子模块,用于模拟熵解码器的解码缓存行为时,当判断到该帧的缓存块被从主缓存中替换出来时,将记录缓存替换次数的计数器加1;并根据该帧的后续访存行为确定该帧的缓存块是否会被再次用到;如果判断为被用到,则将此帧的的计数器值记录下来;否则,将此帧的计数器值计为0。
所述二维数组表,用于模拟熵解码器的缓存行为中的每一帧的缓存块和该缓存块对应的计数器值;
所述记录子模块,用于当主缓存发生缓存丢失时,首先检查相应帧的二维数组中与丢失的缓存块对应的位置上的值是否为0;如果不为0则说明丢失的缓存块曾经被替换出,这个位置上保存的值为其被替换出时的计数器值,将其记录下来。
为实现本发明目的还提供一种视频编解码访存优化方法,包括如下步骤:
步骤S100,在熵编码过程中,熵编码器模拟解码访存行为并获取解码访存行为信息并得到访存信息队列,根据访存信息队列编码生成访存信息辅助流并与熵编码后的视频数据一起传输给熵解码器;
步骤S200,熵解码器接收到待解码的码流后,利用所述访存信息辅助流,对编码的视频数据的进行缓存优化调度和解码。
较优地,所述步骤S100包括如下步骤:
步骤S110,熵编码器在对视频数据进行熵编码过程中,根据预先设置的熵解码器的主缓存的结构、大小,以及所采用的解码调度的确定性替换方法,模拟熵解码器访存过程获取解码的访存行为信息;
步骤S120,熵编码器在对压缩模块的视频数据进行编码时,根据解码的访存行为信息得到访存信息队列,编码生成访存信息辅助流。
较优地,所述步骤S110包括如下步骤:
步骤S111,一帧开始时先将该帧每个参考帧的相应2维数组赋初值0,记录替换发生次数的计数器赋初值0;
步骤S112,根据宏块信息和熵解码器缓存的结构和替换方法信息,模拟熵解码器访存进行缓存替换,将第一缓存块替换出,将第二缓存块放入;
步骤S113,判断本帧的编码是否结束;如果否,则返回步骤S112;如果是,则进入步骤S120。
较优地,所述步骤S112包括如下步骤:
步骤S1121,将计数器值增1,将计数器值存入第一缓存块所在帧的二维数组中第一缓存块所对应的位置;
步骤S1122,判断第二缓存块所在帧的二维数组中第二缓存块所对应位置存放的值是否为0;
步骤S1123,若为0,说明第二缓存块是第一次从外部存储器中取入缓存,不做任何处理,进入步骤S113;
步骤S1124,若不为0,将这个被记录下来的计数器值按照值的由小到达顺序插入访存队列。
较优地,所述步骤S200包括如下步骤:
步骤S210,首先利用熵解码器从辅助流中解出访存信息队列中的一个值,将这个值存放入变量P;
步骤S220,每次发生缓存替换,则检查P是否为0,如果不为0说明相应缓存块将来不会被用到,将P减1;如果为0说明相应缓存块将来会被用到,若熵解码器中的辅助缓存中有剩余空间,则将其放入辅助缓存中;否则直接抛弃,然后从辅助流中解出辅助信息队列中的下一个值放入P中;
步骤S230,当熵解码器中的主缓存中发生缓存丢失时,首先检查所述辅助缓存中有没有所需要的缓存块;有则从辅助缓存中读取,并将辅助缓存中的相应空间标记为空闲;没有则从外部存储器中读取。
本发明的有益效果是:本发明的视频编解码访存优化系统和方法,利用视频访存的特殊性,在视频编码预知熵解码器的访存行为,结合已知熵解码器的片上缓存(cache)结构,在编码时将预知的解码访存行为信息编码成访存辅助流;在解码时,利用该访存辅助流,实现片上缓存(cache)的最优调度,以大幅降低平均访存延时和片外访存带宽。
附图说明
图1是本发明实施例视频编解码访存优化系统结构示意图;
图2是本发明实施例视频编解码访存优化系统工作过程示意图;
图3是本发明实施例视频编解码访存优化方法流程图;
图4是图3中步骤S100方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的视频编解码访存优化系统和方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,作为一种可实施方式,本发明实施例的视频编解码访存优化系统,包括熵编码器1和熵解码器2,其中:
所述熵编码器1,用于在熵编码过程中,模拟解码访存行为并获取解码访存行为信息并得到访存信息队列,根据访存信息队列编码生成访存信息辅助流并与熵编码后的视频数据一起传输给熵解码器;
所述熵解码器2,用于接收到待解码的码流后,利用所述访存信息辅助流,对编码的视频数据的进行缓存(cache)优化调度和解码。
本发明实施例中,利用熵编码器1在已知熵解码器片上缓存(cache)结构和调度方法的条件下,模拟熵解码器访存过程的特点,获取解码的访存行为信息,并在压缩模块对视频数据进行编码时,编码生成访存信息辅助流并写入辅助缓存(victim cache)中,将编码后的视频数据和访存信息辅助流一起发送给熵解码器。
在本发明实施例中,作为一种可实施方式,所述熵解码器2使用的片上缓存在逻辑上划分为主缓存部分和辅助缓存部分;而在熵编码器1对视频进行编码时,模拟将要在熵解码器2上使用的片上缓存(cache)在逻辑上划分为主缓存(main cache)部分和辅助缓存(victim cache)部分;
作为一种可实施方式,可将一级缓存(Ll cache)作为主缓存(main cache),二级缓存(L2 cache)的一部分作为辅助缓存(victim cache)。
本发明实施例中,考虑到在解码时,一个被从缓存(cache)中替换出来的缓存(cache)块在未来的解码过程中可能会被再次用到,这个缓存(cache)块将再次从外部存储器中取入缓存(cache),这意味着多余的片外访存。因此,本发明实施例中,考虑将在解码时,未来会再次用到的缓存(cache)块放入辅助缓存(victim cache)中,可以避免延时较长的片外访存。而一个被从主缓存(main cache)中替换出来的缓存(cache)块是否会被再次用到在解码时是无法知道的,本发明实施例中,通过模拟解码行为生成访存信息辅助流并传输给熵解码器,从而可以根据之后的访存行为得到从主缓存中替换出来的缓存块是否会被再次用到,避免了多余的片外访存,实现缓存(cache)的优化调度。
熵解码器2利用接收到的访存信息辅助流,矫正不合理的缓存(cache)调度,实现缓存(cache)优化调度进行解码。
较佳地,所述熵编码器1包括模拟获取模块10和生成模块20,其中:
所述模拟获取模块10,用于在对视频数据进行熵编码过程中,根据预先设置的熵解码器的主缓存的结构、大小,以及所采用的解码调度的确定性替换方法,模拟熵解码器访存过程获取解码的访存行为信息;
所述生成模块20,用于在对压缩模块的视频数据进行编码时,根据解码的访存行为信息得到访存信息队列,编码生成访存信息辅助流。
由于在编码中,在主缓存(main cache)编码时预知解码的全部访存行为时,即已知主缓存(main cache)的结构、大小,以及所采用的解码调度的确定性替换方法时,熵编码器可以模拟熵解码器的解码缓存(cache)行为,从而获取解码的访存行为信息。
其中,作为一种可实施方式,本发明实施例中,所述熵解码器2在主缓存(main cache)部分解码时,使用确定性替换方法进行解码,以保证替换过程的可重现性。
所述确定性替换方法包括但不限于如先进先出(First Input First Output,FIFO)页面置换算法,最近最少使用页面置换算法(Least Recently Used,LRU)等替换方法。
更佳地,所述模拟获取模块10,包括计数器101,判断子模块102,二维数组表103,记录子模块104;
其中:
所述计数器101,用于记录缓存替换次数;
所述判断子模块102,用于模拟熵解码器的解码缓存行为时,当判断到该帧的缓存(cache)块被从主缓存(main cache)中替换出来时,将记录缓存(cache)替换次数的计数器Q加1;并根据该帧的后续访存行为确定该帧的缓存(cache)块是否会被再次用到;如果判断为被用到,则将此帧的的计数器Q值记录下来;否则,将此帧的计数器Q值计为0。
所述二维数组表103,用于模拟熵解码器的缓存行为中的每一帧的缓存块和该缓存块对应的计数器Q值;
所述记录子模块104,用于当主缓存(main cache)发生缓存丢失(cache miss)时,首先检查相应帧的二维数组中与丢失(miss)的缓存(cache)块对应的位置上的值是否为0;如果不为0则说明丢失(miss)的缓存(cache)块曾经被替换出,这个位置上保存的值为其被替换出时的计数器Q值,将其记录下来。
如图2所示,本发明实施例的系统,在熵编码器1编码分析得到宏块残差和宏块信息,进行熵编码的过程中,根据视频访存的特殊性,在编码时根据宏块信息中预先设置的熵解码器的访存行为,结合已知的预设的熵解码器的片上缓存(cache)结构(包括主缓存(main cache)的结构、大小,和所采用的确定替换方法),在编码时增加了如图2所示的两个模块,包括模块获取模块和生成模块,模拟熵解码器的访存行为,并将模拟的解码访存行为信息编码成一个非常小的访存辅助流。在解码时,利用这个访存辅助流,优化访存行为,实现片上缓存(cache)的最优调度。
本发明实施例中,作为一种可实施方式,在视频数据编码时,将每个视频数据的帧以缓存(cache)块为单位划分,然后为每个帧的缓存块分配一个2维数组,每个缓存(cache)块对应2维数组中的一个位置,并按照其在帧中的位置来索引;
视频数据的每一帧开始时,先将该帧相应2维数组赋初值0;
同时,通过设置一计数器Q,在视频数据每一帧开始时,此帧的计数器Q值清0;
然后,判断子模块模拟熵解码器的解码缓存行为时,当判断到该帧的缓存(cache)块被从主缓存(main cache)中替换出来时,将记录缓存(cache)替换次数的计数器Q加1;
根据模拟该帧的后续访存行为确定该帧的缓存(cache)块是否会被再次用到;如果经过模拟判断为被用到,则将此帧的的计数器Q值记录下来;否则,将此帧的计数器Q值计为0;
将此时的计数器Q值写入相应帧的二维数组中与该缓存(cache)块对应的位置上。
当主缓存(main cache)发生缓存丢失(cache miss)时,首先检查相应帧的二维数组中与丢失(miss)的缓存(cache)块对应的位置上的值是否为0;如果不为0则说明丢失(miss)的缓存(cache)块曾经被替换出,这个位置上保存的值为其被替换出时的计数器Q值,将其记录下来。
在一帧的编码过程结束后,将所有记录下来的计数器Q值按照从小到大的顺序排列,然后将相邻Q值作差,差值再减1,构成最终的访存信息队列,最后对其进行CABAC(Context-based Adaptive Binary Arithmetic Coding,基于上下文的自适应变长码)熵编码(H264采用的熵编码方式之一,其他编码标准可以采用相应的熵编码器进行编码),得到访存信息辅助流,并写入辅助缓存(victim cache)中;
其中,第一个计数器Q值与0作差。
相应地,本发明还提供一种视频编解码访存优化方法,如图3所示,包括如下步骤:
步骤S100,在熵编码过程中,熵编码器模拟解码访存行为并获取解码访存行为信息并得到访存信息队列,根据访存信息队列编码生成访存信息辅助流并与熵编码后的视频数据一起传输给熵解码器;
步骤S200,熵解码器接收到待解码的码流后,利用所述访存信息辅助流,对编码的视频数据的进行缓存(cache)优化调度和解码。
下面详细描述本发明实施例的步骤S100在熵编码过程中生成访存信息辅助流并与熵编码后的视频数据一起传输给熵解码器的过程。
较佳地,作为一种可实施方式,如图4所示,所述步骤S100包括如下步骤:
步骤S110,熵编码器在对视频数据进行熵编码过程中,根据预先设置的熵解码器的主缓存的结构、大小,以及所采用的解码调度的确定性替换方法,模拟熵解码器访存过程获取解码的访存行为信息;
较佳地,所述步骤S110包括如下步骤:
步骤S111,一帧开始时先将该帧每个参考帧的相应2维数组赋初值0,记录替换发生次数的计数器Q赋初值0;
步骤S112,根据宏块信息和熵解码器缓存(cache)的结构和替换方法信息,模拟熵解码器访存,发生缓存(cache)替换,块a被替换出,块b被放入;
所述步骤S112包括如下步骤:
步骤S1121,将计数器Q值增1,即Q=Q+1,将Q的值存入块a所在帧的二维数组中块a所对应的位置;
步骤S1122,判断块b所在帧的二维数组中块b所对应位置存放的值是否为0;
步骤S1123,若为0,说明块b是第一次从外部存储器(未示出)中取入缓存(cache),不做任何处理,进入步骤S113;
步骤S1124,若不为0,说明块b曾经从主缓存(main cache)中被替换出,这次是再次访问,故解码时上次被替换出时应该将块b放入辅助缓存(victim cache)以避免再次从外存取数,而此时二维数组中块b相应位置记录的值为上次块b被替换出时表示总替换次数的计数器Q的值,将这个被记录下来的Q值按照值的由小到达顺序插入访存队列。
步骤113,判断本帧的编码是否结束;如果否,则返回步骤112;如果是,则进入步骤S120。
步骤S120,熵编码器在对压缩模块的视频数据进行编码时,根据解码的访存行为信息得到访存信息队列,编码生成访存信息辅助流。
作为一种可实施方式,在一帧的编码过程结束后,将所有记录下来的计数器Q值按照从小到大的顺序排列,然后将相邻Q值作差,差值再减1,构成最终的访存信息队列,最后对访存信息队列及队列中计数器Q值进行CABAC(Context-based Adaptive BinaryArithmetic Coding,基于上下文的自适应变长码)熵编码(H264采用的熵编码方式之一,其他编码标准可以采用相应的熵编码器进行编码),得到访存信息辅助流,并写入辅助缓存(victim cache)中;
其中,第一个计数器Q值与0作差。
较佳地,作为一种可实施方式,所述顺序排列可以在得到每一个Q值的过程中进行。
本发明实施例中,只记录缓存(cache)的调度信息,即Q值队列,不用记录缓存块,相应的缓存块在解码时是可以得到的。
而二维数组是在编码时帮助得到Q值队列的辅助手段,不需要保存在辅助流中,辅助流中只有Q值队列,解码时利用Q值队列就可以实现最优缓存(cache)调度。
下面详细说明本发明实施例的步骤S200熵解码器利用所述访存信息辅助流,对编码的视频数据的进行缓存(cache)优化调度和解码的过程。
在解码时,利用所述访存辅助流做此判断调度优化,当一缓存(cache)块从熵解码器的主缓存(main cache)中替换出来时,如果它在将来仍会被熵解码器使用,并且熵解码器的辅助缓存(victim cache)中有剩余空间时,则将其放入熵解码器的辅助缓存(victim cache)中,否则直接抛弃;
当熵解码器的主缓存(main cache)中发生缓存丢失(cache miss)时,首先检查熵解码器的辅助缓存(victim cache)中有没有所需要的缓存(cache)块;如果有,则从熵解码器的辅助缓存(victim cache)中读取,并将熵解码器的辅助缓存(victimcache)中的相应空间标记为空闲;否则,从外部存储器(未示出)中读取。
在解码时,首先利用熵解码器从访存信息辅助流中解出辅助信息队列中的一个值,将这个值存放入变量P;每次发生缓存(cache)替换,则检查变量P是否为0,如果不为0说明相应缓存(cache)块将来不会被用到,将P减1;如果为0说明相应缓存(cache)块将来会被用到,则将其放入辅助缓存(victim cache),然后从辅助流中解出辅助信息队列中的下一个值放入P中,如此反复,直至解码结束。
其中,变量P是一个整型变量,即为所述编码过程中获得的访存信息队列,队列中的每个P值表示在相邻两次需要放入辅助缓存(victim cache)的缓存(cache)替换之间间隔了多少次不用放入辅助缓存(victim cache)的缓存(cache)替换。P值队列中的每个P值记录的是相邻的两个需要放入辅助缓存的被替换出的cache块之间间隔多少个不需要放入辅助缓存的被替换出的cache块,所以每次发生替换的时候如果P值不是0则表明这个被替换出的cache块不需要放入辅助缓存,然后P值减1,直到观察到P值为0,则表明遇到了需要放入辅助缓存的cache块,这时把此cache块放入辅助缓存,从P值队列中读取一个新值。
本发明实施例通过每次从访存信息辅助流中熵解码出一个这样的计数器P,根据P值指导访存调度,以达到优化目的。
较佳地,作为一种可实施方式,所述步骤S200包括如下步骤:
步骤S210,首先利用熵解码器从辅助流中解出访存信息队列中的一个值,将这个值存放入变量P;
步骤S220,每次发生缓存(cache)替换,则检查P是否为0,如果不为0说明相应缓存(cache)块将来不会被用到,将P减1;如果为0说明相应缓存(cache)块将来会被用到,若熵解码器中的辅助缓存(victim cache)中有剩余空间,则将其放入辅助缓存(victim cache)中;否则直接抛弃,然后从辅助流中解出辅助信息队列中的下一个值放入P中;
缓存块是解码时需要用到的数据,是解码器从内存中读取的,这里的P值是辅助处理器调度cache块的信息,与具体缓存块的值是多少无关,上述二维数组只是在编码时为得到P值采取的辅助手段,目的是得到P值,得到P值之后就不再有用,解码器用P值就可以实现最优调度。
步骤S230,当熵解码器中的主缓存(main cache)中发生缓存丢失(cache miss)时,首先检查所述辅助缓存(victim cache)中有没有所需要的缓存(cache)块;有则从辅助缓存(victim cache)中读取,并将辅助缓存(victim cache)中的相应空间标记为空闲;没有则从外部存储器中读取。
本发明实施例的视频编解码访存优化系统和方法,利用视频访存的特殊性,在视频编码预知熵解码器的访存行为,结合已知熵解码器的片上缓存(cache)结构,在编码时将预知的解码访存行为信息编码成访存辅助流;在解码时,利用该访存辅助流,实现片上缓存(cache)的最优调度,以大幅降低平均访存延时和片外访存带宽。
最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
Claims (4)
1.一种视频编解码访存优化系统,其特征在于,包括熵编码器和熵解码器,其中:
所述熵编码器,用于在熵编码过程中,模拟解码访存行为并获取解码访存行为信息并得到访存信息队列,根据访存信息队列编码生成访存信息辅助流并与熵编码后的视频数据一起传输给熵解码器;
所述熵解码器,用于接收到待解码的码流后,利用所述访存信息辅助流,对编码的视频数据的进行缓存优化调度和解码;
所述熵编码器包括模拟获取模块和生成模块,其中:
所述模拟获取模块,用于在对视频数据进行熵编码过程中,根据预先设置的熵解码器的主缓存的结构、大小,以及所采用的解码调度的确定性替换方法,模拟熵解码器访存过程获取解码的访存行为信息;
所述生成模块,用于在对压缩模块的视频数据进行编码时,根据解码的访存行为信息得到访存信息队列,编码生成访存信息辅助流;
所述模拟获取模块,包括计数器,判断子模块,二维数组表,记录子模块,其中:
所述计数器,用于记录缓存替换次数;
所述判断子模块,用于模拟熵解码器的解码缓存行为时,当判断到某一帧的缓存块被从主缓存中替换出来时,将记录缓存替换次数的计数器加1;并根据该帧的后续访存行为确定该帧的缓存块是否会被再次用到;如果判断为被用到,则将此帧的的计数器值记录下来;否则,将此帧的计数器值计为0;
所述二维数组表,用于模拟熵解码器的缓存行为中的每一帧的缓存块和该缓存块对应的计数器值;
所述记录子模块,用于当主缓存发生缓存丢失时,首先检查相应帧的二维数组中与丢失的缓存块对应的位置上的值是否为0;如果不为0则说明丢失的缓存块曾经被替换出,这个位置上保存的值为其被替换出时的计数器值,将其记录下来。
2.根据权利要求1所述的视频编解码访存优化系统,其特征在于,所述熵解码器使用的片上缓存在逻辑上划分为主缓存部分和辅助缓存部分;而在熵编码器对视频进行编码时,模拟将要在熵解码器上使用的片上缓存在逻辑上划分为主缓存部分和辅助缓存部分。
3.根据权利要求2所述的视频编解码访存优化系统,其特征在于,所述确定性替换方法为先进先出页面置换算法,或者最近最少使用页面置换算法。
4.一种视频编解码访存优化方法,其特征在于,包括如下步骤:
步骤S100,在熵编码过程中,熵编码器模拟解码访存行为并获取解码访存行为信息并得到访存信息队列,根据访存信息队列编码生成访存信息辅助流并与熵编码后的视频数据一起传输给熵解码器;
步骤S200,熵解码器接收到待解码的码流后,利用所述访存信息辅助流,对编码的视频数据的进行缓存优化调度和解码;
其中,所述步骤S100包括如下步骤:
步骤S110,熵编码器在对视频数据进行熵编码过程中,根据预先设置的熵解码器的主缓存的结构、大小,以及所采用的解码调度的确定性替换方法,模拟熵解码器访存过程获取解码的访存行为信息;
步骤S120,熵编码器在对压缩模块的视频数据进行编码时,根据解码的访存行为信息得到访存信息队列,编码生成访存信息辅助流;
其中,所述步骤S110包括如下步骤:
步骤S111,一帧开始时先将该帧每个参考帧的相应2维数组赋初值0,记录替换发生次数的计数器赋初值0;
步骤S112,根据宏块信息和熵解码器缓存的结构和替换方法信息,模拟熵解码器访存进行缓存替换,将第一缓存块替换出,将第二缓存块放入;
步骤S113,判断本帧的编码是否结束;如果否,则返回步骤S112;如果是,则进入步骤S120;
其中,所述步骤S112包括如下步骤:
步骤S1121,将计数器值增1,将计数器值存入第一缓存块所在帧的二维数组中第一缓存块所对应的位置;
步骤S1122,判断第二缓存块所在帧的二维数组中第二缓存块所对应位置存放的值是否为0;
步骤S1123,若为0,说明第二缓存块是第一次从外部存储器中取入缓存,不做任何处理,进入步骤S113;
步骤S1124,若不为0,将这个被记录下来的计数器值按照值的由小到达顺序插入访存队列;
其中,所述步骤S200包括如下步骤:
步骤S210,首先利用熵解码器从辅助流中解出访存信息队列中的一个值,将这个值存放入变量P;
步骤S220,每次发生缓存替换,则检查P是否为0,如果不为0说明相应缓存块将来不会被用到,将P减1;如果为0说明相应缓存块将来会被用到,若熵解码器中的辅助缓存中有剩余空间,则将其放入辅助缓存中;否则直接抛弃,然后从辅助流中解出辅助信息队列中的下一个值放入P中;
步骤S230,当熵解码器中的主缓存中发生缓存丢失时,首先检查所述辅助缓存中有没有所需要的缓存块;有则从辅助缓存中读取,并将辅助缓存中的相应空间标记为空闲;没有则从外部存储器中读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210275438.1A CN102769755B (zh) | 2012-08-03 | 2012-08-03 | 一种视频编解码访存优化系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210275438.1A CN102769755B (zh) | 2012-08-03 | 2012-08-03 | 一种视频编解码访存优化系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102769755A CN102769755A (zh) | 2012-11-07 |
CN102769755B true CN102769755B (zh) | 2015-02-25 |
Family
ID=47096991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210275438.1A Active CN102769755B (zh) | 2012-08-03 | 2012-08-03 | 一种视频编解码访存优化系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102769755B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780122B (zh) * | 2015-03-23 | 2018-09-11 | 中国人民解放军信息工程大学 | 基于缓存再分配的层次化片上网络路由器的控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1874517A (zh) * | 2006-06-19 | 2006-12-06 | 西安交通大学 | 基于多流水控制与缓存优化的mpeg-2视频解码控制方法 |
CN101252694A (zh) * | 2008-03-31 | 2008-08-27 | 清华大学 | 基于块的视频解码的帧存储压缩和地址映射系统 |
EP2477401A2 (en) * | 2011-01-17 | 2012-07-18 | MediaTek Inc. | Buffering apparatus for buffering multi-partition video/image bitstream and related method thereof |
-
2012
- 2012-08-03 CN CN201210275438.1A patent/CN102769755B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1874517A (zh) * | 2006-06-19 | 2006-12-06 | 西安交通大学 | 基于多流水控制与缓存优化的mpeg-2视频解码控制方法 |
CN101252694A (zh) * | 2008-03-31 | 2008-08-27 | 清华大学 | 基于块的视频解码的帧存储压缩和地址映射系统 |
EP2477401A2 (en) * | 2011-01-17 | 2012-07-18 | MediaTek Inc. | Buffering apparatus for buffering multi-partition video/image bitstream and related method thereof |
Also Published As
Publication number | Publication date |
---|---|
CN102769755A (zh) | 2012-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7304590B2 (en) | Arithmetic decoding apparatus and method | |
CN1316433C (zh) | 视频信息编码方法和视频信息解码方法 | |
US7365659B1 (en) | Method of context adaptive binary arithmetic coding and coding apparatus using the same | |
CN102918844B (zh) | 增强的帧内预测模式信令 | |
US20110001643A1 (en) | System and method for providing high throughput entropy coding using syntax element partitioning | |
EP2503783B1 (en) | Video encoding method, decoding method, encoding and decoding device | |
US8604951B2 (en) | System and method for optimizing context-adaptive binary arithmetic coding | |
CN108432248A (zh) | 用于对视频信号进行熵编码和解码的方法和设备 | |
CN103748886A (zh) | 支持模式切换的熵编码 | |
CN103380622A (zh) | 帧内预测模式编码/解码方法和用于其的设备 | |
CN105379283A (zh) | 数据编码和解码 | |
CN103797793A (zh) | 低延迟的样本阵列编码 | |
CN105684409A (zh) | 在视频和图像编码和解码中使用散列值来表示各块 | |
CN105659606A (zh) | 用于视频和图像编码和解码的基础颜色索引图模式的特征 | |
CN1913640A (zh) | 多模式多视点视频信号编码压缩方法 | |
US20110002396A1 (en) | Reference Frames Compression Method for A Video Coding System | |
EP2391132A1 (en) | Video processing system, computer program product and method for managing a transfer of information between a memory unit and a decoder | |
CN103931187A (zh) | 图像编码设备、图像编码方法、图像解码设备、图像解码方法和程序 | |
CN102724500B (zh) | 一种视频数据的压缩/解压缩方法及系统 | |
US20120022861A1 (en) | Parallel entropy encoder and parallel entropy decoder | |
CN102265611A (zh) | 在混合视频编码中具有多个滤波器的本地环路内滤波 | |
CN1589023A (zh) | 一种基于上下文的多码表变长编解码方法及编解码装置 | |
CN101252694A (zh) | 基于块的视频解码的帧存储压缩和地址映射系统 | |
CN1825976A (zh) | 译码数字影像序列的方法及装置 | |
CN103947211A (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 | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100190 No. 10 South Road, Zhongguancun Academy of Sciences, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP03 | Change of name, title or address |