发明名称 适用于HEVC标准的熵编码上下文概率模型建模模块设计方法
摘要 本发明属于数字高清视频压缩编解码技术领域,具体为一种适用于HEVC标准的熵编码上下文概率模型建模模块的设计方法。HEVC使用的基于上下文的二进制算术编码,并独特的设计了399个上下文概率模型。在实际编码中,不同的语法元素,相同的语法元素的二进制序列的不同位都可能使用不同的上下文概率模型。本发明使用HEVC标准的熵编码建立的399个上下文概率模型中的280个上下文概率模型,能够正确解码;这些上下文概率模型支持I帧与P帧;采用5块SRAM和2个寄存器存储相关上下文概率模型,并为SRAM设计仲裁结构,能够准确判断概率模型的地址和待写入的数据,并顺利读取数据。
申请公布号 CN104918048A 申请公布日期 2015.09.16
申请号 CN201510298837.3 申请日期 2015.06.03
申请人 复旦大学 发明人 范益波;程魏;郭勇;江亲伟;陆彦珩;曾晓洋
分类号 H04N19/13(2014.01)I;H04N19/70(2014.01)I 主分类号 H04N19/13(2014.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞;盛志范
主权项 一种适用于HEVC标准的熵编码上下文概率模型建模模块的设计方法,其特征在于具体步骤为:(1)使用HEVC标准的熵编码建立的399个上下文概率模型中的280个上下文概率模型,能够正确解码;这些上下文概率模型支持I帧与P帧;(2)使用5块双端口SRAM 以及2个寄存器存储280个上下文概率模型,每块SRAM的深度都为32,宽度为7;280个上下文概率模型在SRAM中的分布见表1所示,其中,横向表头代表5块SRAM,竖向表头代表各SRAM的地址,表中斜杠“/”前面的数字表示I帧中存储的索引,斜杠“/”后面的数字表示P帧中存储的索引;对于单独的I帧或P帧,160个上下文概率模型已经足够,另外160个上下文概率模型在SRAM中的存放经过独特的设计以保证每个时钟周期都能对四组输入进行上下文建模;(3)为每块SRAM的读写地址设置仲裁器,以避免SRAM读写冲突,仲裁器对每个输入中的地址信息进行仲裁,判断不同的输入之间是否发生地址冲突,如果没有冲突现象,将直接根据当前地址去存储器中读取数据;(4)以流水线方式连续的从SRAM或者寄存器中读写正确的数据,其中,对连续两个周期内的输入也设计仲裁器,进行仲裁,即从第一个周期中读取的数据更新后的值与第二个周期读取的数据进行选择;(5)每个时钟周期支持对4组输入进行上下文概率模型建模;这4组输入中可能存在如下情况:2或更多的输入需要从同一块SRAM的同一个地址读取数据,这样将导致这些输入读取数据都是相同的而发生错误;实际上第二个输入读取的数据是第一个读取的数据更新后的值,第三个输入取的数据是第二个读取的数据更新后的值,第四个输入取的数据是第三个读取的数据更新后的值;因此,对同一周期从同一块SRAM的同一个地址读取数据的多个输入进行仲裁,以保证读取数据的正确;表1:280个上下文概率模型在SRAM中的分布<tables num="0001" id="ctbl0001"><table><tgroup cols="6"><colspec colname="c001" colwidth="16%" /><colspec colname="c002" colwidth="16%" /><colspec colname="c003" colwidth="16%" /><colspec colname="c004" colwidth="16%" /><colspec colname="c005" colwidth="16%" /><colspec colname="c006" colwidth="16%" /><tbody><row><entry morerows="1"> 地址</entry><entry morerows="1">SRAM0</entry><entry morerows="1">SRAM1</entry><entry morerows="1">SRAM2</entry><entry morerows="1">SRAM3</entry><entry morerows="1">SRAM4</entry></row><row><entry morerows="1">0</entry><entry morerows="1">111 / 153</entry><entry morerows="1">138 / 138</entry><entry morerows="1">138 / 94</entry><entry morerows="1">79 / 79</entry><entry morerows="1">136 / 121</entry></row><row><entry morerows="1">1</entry><entry morerows="1">110 / 125</entry><entry morerows="1">141 / 111</entry><entry morerows="1">94 / 149</entry><entry morerows="1">153 / 124</entry><entry morerows="1">125 / 183</entry></row><row><entry morerows="1">2</entry><entry morerows="1">125 / 110</entry><entry morerows="1">154 / 154</entry><entry morerows="1">139 / 139</entry><entry morerows="1">138 / 107</entry><entry morerows="1">153 / 153</entry></row><row><entry morerows="1">3</entry><entry morerows="1">125 / 125</entry><entry morerows="1">110 / 110</entry><entry morerows="1">140 / 140</entry><entry morerows="1">154 / 154</entry><entry morerows="1">125 / 183</entry></row><row><entry morerows="1">4</entry><entry morerows="1">111 / 110</entry><entry morerows="1">140 / 195</entry><entry morerows="1">63 / 108</entry><entry morerows="1">139 / 139</entry><entry morerows="1">153 / 153</entry></row><row><entry morerows="1">5</entry><entry morerows="1">111 / 95</entry><entry morerows="1">127 / 111</entry><entry morerows="1">140 / 140</entry><entry morerows="1">124 / 194</entry><entry morerows="1">125 / 183</entry></row><row><entry morerows="1">6</entry><entry morerows="1">108 / 108</entry><entry morerows="1">143 / 111</entry><entry morerows="1">63 / 108</entry><entry morerows="1">153 / 79</entry><entry morerows="1">153 / 153</entry></row><row><entry morerows="1">7</entry><entry morerows="1">110 / 125</entry><entry morerows="1">79 / 94</entry><entry morerows="1">134 / 61</entry><entry morerows="1">109 / 78</entry><entry morerows="1">111 / 154</entry></row><row><entry morerows="1">8</entry><entry morerows="1">125 / 110</entry><entry morerows="1">123 / 123</entry><entry morerows="1">139 / 153</entry><entry morerows="1">127 / 111</entry><entry morerows="1">110 / 153</entry></row><row><entry morerows="1">9</entry><entry morerows="1">125 / 125</entry><entry morerows="1">110 / 110</entry><entry morerows="1">153 / 167</entry><entry morerows="1">154 / 154</entry><entry morerows="1">124 / 123</entry></row><row><entry morerows="1">10</entry><entry morerows="1">111 / 110</entry><entry morerows="1">140 / 195</entry><entry morerows="1">141 / 140</entry><entry morerows="1">124 / 194</entry><entry morerows="1">136 / 151</entry></row><row><entry morerows="1">11</entry><entry morerows="1">111 / 95</entry><entry morerows="1">127 / 111</entry><entry morerows="1">125 / 154</entry><entry morerows="1">153 / 79</entry><entry morerows="1">136 / 151</entry></row><row><entry morerows="1">12</entry><entry morerows="1">108 / 108</entry><entry morerows="1">143 / 111</entry><entry morerows="1">141 / 140</entry><entry morerows="1">109 / 78</entry><entry morerows="1">138 / 107</entry></row><row><entry morerows="1">13</entry><entry morerows="1">91 / 121</entry><entry morerows="1">79 / 94</entry><entry morerows="1">125 / 154</entry><entry morerows="1">127 / 111</entry><entry morerows="1">153 / 167</entry></row><row><entry morerows="1">14</entry><entry morerows="1">182 / 123</entry><entry morerows="1">123 / 123</entry><entry morerows="1">141 / 140</entry><entry morerows="1">154 / 154</entry><entry morerows="1">136 / 91</entry></row><row><entry morerows="1">15</entry><entry morerows="1">154 / 154</entry><entry morerows="1">171 / 140</entry><entry morerows="1">125 / 154</entry><entry morerows="1">141 / 154</entry><entry morerows="1">167 / 22</entry></row><row><entry morerows="1">16</entry><entry morerows="1">107 / 166</entry><entry morerows="1">152 / 107</entry><entry morerows="1">125 / 139</entry><entry morerows="1">140 / 170</entry><entry morerows="1">152 / 107</entry></row><row><entry morerows="1">17</entry><entry morerows="1">179 / 136</entry><entry morerows="1">110 / 139</entry><entry morerows="1">94 / 123</entry><entry morerows="1">138 / 167</entry><entry morerows="1">152 / 167</entry></row><row><entry morerows="1">18</entry><entry morerows="1">107 / 166</entry><entry morerows="1">108 / 63</entry><entry morerows="1">124 / 153</entry><entry morerows="1">139 / 182</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">19</entry><entry morerows="1">179 / 136</entry><entry morerows="1">139 / 183</entry><entry morerows="1">111 / 140</entry><entry morerows="1">192 / 136</entry><entry morerows="1">153 / 153</entry></row><row><entry morerows="1">20</entry><entry morerows="1">107 / 166</entry><entry morerows="1">139 / 183</entry><entry morerows="1">111 / 140</entry><entry morerows="1">152 / 137</entry><entry morerows="1">200 / 185</entry></row><row><entry morerows="1">21</entry><entry morerows="1">179 / 136</entry><entry morerows="1">92 / 296</entry><entry morerows="1">137 / 196</entry><entry morerows="1">182 / 167</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">22</entry><entry morerows="1">154 / 154</entry><entry morerows="1">152 / 152</entry><entry morerows="1">138 / 167</entry><entry morerows="1">197 / 182</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">23</entry><entry morerows="1">140 / 154</entry><entry morerows="1">74 / 134</entry><entry morerows="1">149 / 149</entry><entry morerows="1">154 / 154</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">24</entry><entry morerows="1">140 / 154</entry><entry morerows="1">107 / 121</entry><entry morerows="1">122 / 136</entry><entry morerows="1">154 / 154</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">25</entry><entry morerows="1">153 / 182</entry><entry morerows="1">179 / 194</entry><entry morerows="1">166 / 166</entry><entry morerows="1">139 / 107</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">26</entry><entry morerows="1">139 / 153</entry><entry morerows="1">227 / 167</entry><entry morerows="1">122 / 139</entry><entry morerows="1">184 / 154</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">27</entry><entry morerows="1">140 / 169</entry><entry morerows="1">154 / 154</entry><entry morerows="1">154 / 154</entry><entry morerows="1">185 / 185</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">28</entry><entry morerows="1">140 / 154</entry><entry morerows="1">154 / 154</entry><entry morerows="1">157 / 126</entry><entry morerows="1">154 / 154</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">29</entry><entry morerows="1">154 / 154</entry><entry morerows="1">149 / 134</entry><entry morerows="1">139 / 154</entry><entry morerows="1">141 / 139</entry><entry morerows="1">154 / 154</entry></row><row><entry morerows="1">30</entry><entry morerows="1">184 / 197</entry><entry morerows="1">63 / 154</entry><entry morerows="1">201 / 201</entry><entry morerows="1">182 / 123</entry><entry morerows="1">154 / 198</entry></row><row><entry morerows="1">31</entry><entry morerows="1">154 / 168</entry><entry morerows="1">154 / 140</entry><entry morerows="1">154 / 154</entry><entry morerows="1">111 / 155</entry><entry morerows="1">154 / 154</entry></row></tbody></tgroup></table></tables>。
地址 200433 上海市杨浦区邯郸路220号