一種avs編碼芯片中優(yōu)化碼表存儲的方法【專利摘要】本發(fā)明提供一種AVS編碼芯片中優(yōu)化碼表存儲的方法,本發(fā)明中這種存在運算關系的數(shù)組(run,level)稱為特殊數(shù)組,針對于特殊數(shù)組所對應的碼字codenum將不用存儲,而是直接由run或者是level計算得到,在硬件結構采用一個8位的加法器來實現(xiàn)運算。利用本發(fā)明所述的優(yōu)化碼表存儲的方法能有效減少存儲碼表所需要的資源,有利于AVS編碼芯片的實現(xiàn)。由于在AVS編碼中需要查詢大量的碼表,碼表的存儲要占用大量的存儲資源,采用該方案可以有效的減少存儲碼表所占用的資源。由于AVS產業(yè)化不斷加快,AVS編碼芯片應運而生,采用該發(fā)明,可以更有效的利用芯片的存儲資源,有利于提高AVS編碼芯片的性能?!緦@f明】—種AVS編碼芯片中優(yōu)化碼表存儲的方法【
技術領域:
】:[0001]本發(fā)明涉及一種AVS編碼芯片中優(yōu)化碼表存儲的方法,屬于多媒體的【
技術領域:
】?!?br>背景技術:
】:[0002]隨著多媒體技術的發(fā)展,人們對多媒體視頻的壓縮要求越來越高,新的視頻編碼標準應運而生。AVS是我國自主開發(fā)的先進視頻編碼標準,隨著AVS標準的日趨完善以及國家層面的大力推廣,AVS標準產業(yè)化進程大大加快,熵編碼作為整個AVS視頻編碼的最后一級,其運算復雜,占用的芯片資源較多,因此熵編碼模塊的很大程度上影響著AVS編碼芯片的性能。[0003]碼字查找是熵編碼模塊重要的一部分,AVS預測殘差系數(shù)首先經過整數(shù)DCT變換和量化,量化后的輸出是一個包含少數(shù)非零系數(shù)和大量的零系數(shù)的稀疏矩陣,為了對稀疏矩陣進行有效的表示,稀疏矩陣通過zig-zag掃描和重排序,得到(run,level)數(shù)組,其中l(wèi)evel表示的是稀疏矩陣中的非零系數(shù),run表示的是每個level之前零的個數(shù),然后對(run,level)進行碼字查找,在AVS標準中共有19張碼表,AVS編碼要存儲這19張碼表需要耗費大量的存儲資源,這對于AVS編碼芯片的實現(xiàn)是一個非常大的挑戰(zhàn)。因此如何減少存儲碼表所需要的資源,對于AVS編碼芯片相當重要?!?br/>發(fā)明內容】:[0004]發(fā)明概述:[0005]針對現(xiàn)有技術的不足,本發(fā)明提供一種AVS編碼芯片中優(yōu)化碼表存儲的方法。利用該方法,有效減少AVS編碼中存儲碼表所需要的資源,有利于AVS編碼芯片的實現(xiàn)。[0006]在本發(fā)明所述的碼表中,以碼表號tablenum區(qū)分各種碼表,每張碼表中包括run和level的任意組合對應一個碼字codenum,該對應關系信息以碼表的形式存在。現(xiàn)有正常情況下,在單張碼表中,一個數(shù)組(run,level)對應一個碼字codenum,每個碼字codenum都需要存儲。經過統(tǒng)計,在所述的碼表中有些codenum和(run,level)存在以下運算關系:[0007]codenum=run+run;codenum=run+run+l;codenum=run+run-l;codenum=run+run+2;codenum=IeveI+1eveI;codenum=IeveI+1eveI+I;codenum=leve1+1eve1-1;或codenum=level+level+2;[0008]而且符合上述關系的碼字在碼表中所占的比例達到32.7%,在本發(fā)明中這種存在如上述運算關系的數(shù)組(iom,level)稱為特殊數(shù)組,針對于特殊數(shù)組所對應的碼字codenum將不用存儲,而是直接由run或者是level計算得到,在硬件結構采用一個8位的加法器來實現(xiàn)運算。利用本發(fā)明所述的優(yōu)化碼表存儲的方法能有效減少存儲碼表所需要的資源,有利于AVS編碼芯片的實現(xiàn)。[0009]發(fā)明詳述:[0010]本發(fā)明的技術方案如下:[0011]一種AVS編碼芯片中優(yōu)化碼表存儲的方法,包括步驟如下:[0012](I)統(tǒng)計碼表中符合以下運算關系的特殊數(shù)組(run,level):[0013]codenum=run+run;codenum=run+run+1;codenum=run+run-1;[0014]codenum=run+run+2;codenum=level+level;codenum=level+level+l;[0015]codenum=leve1+1eve1-1;或codenum=level+level+2;[0016](2)將信號輸入的數(shù)組(run,level)和碼表號tablenum輸入到判斷邏輯模塊,判斷邏輯模塊根據步驟(I)的統(tǒng)計,判斷輸入的數(shù)組(run,level)是否為特殊數(shù)組:給出標志信號flag和控制信號control[2:0];[0017]其中,當標志信號flag為O時,貝U表示數(shù)組(run,level)不是特殊數(shù)組,碼字codenum將通過查表邏輯模塊得到,查表邏輯模塊將不屬于特殊數(shù)組的(run,level)所對應的碼字,按照碼表號tablenum順序依次存儲。圖4中addr表示存儲器地址,codenum表示要存儲的碼字;當標志信號flag為I時,則表示數(shù)組(run,level)是特殊數(shù)組,碼字codenum將通過加法邏輯模塊得到;[0018]其中,所述控制信號control[2:0]為三位控制信號,其包括control[0]和control[2:1],所述control[0]為控制信號的最低位,所述control[2:1]為控制信號的高兩位;所述控制信號control[2:0]決定碼字codenum與數(shù)組(run,level)的具體對應關系;[0019](3)所述的加法邏輯模塊包括選擇器MUX0、選擇器MUXl和加法器,選擇器MUXO根據控制信號control[2:0]的最低位control[0]選擇run或level輸入加法器:[0020]當control[0]為O時,貝U表示輸入到加法器中的是run;當control[0]為I時,則表示輸入到加法器中的是level;[0021](4)選擇器MUXl根據根據控制信號control[2:0]的高兩位control[2:1]對應將“0,1,-1,2”輸入到加法器中:[0022]當control[2:1]為00時,則輸入加法器的值為O;[0023]當control[2:1]為01時,則輸入加法器的值為I;[0024]當control[2:1]為10時,則輸入加法器的值為-1;[0025]當control[2:1]為11時,則輸入加法器的值為2;[0026](5)所述加法器根據選擇器MUXO和選擇器MUXl分別輸入值,對應執(zhí)行以下運算:[0027]當輸入為run和O時,貝U加法器執(zhí)行codenum=run+run;[0028]當輸入為run和I時,貝U加法器執(zhí)行codenum=run+run+l;[0029]當輸入為run和-1時,貝U加法器執(zhí)行codenum=run+run_l;[0030]當輸入為run和2時,貝U加法器執(zhí)行codenum=run+run+2;[0031]當輸入為level和O時,則加法器執(zhí)行codenum=level+level;[0032]當輸入為level和I時,則加法器執(zhí)行codenum=level+level+l;[0033]當輸入為level和-1時,則加法器執(zhí)行codenum=level+level_l;[0034]當輸入為level和2時,則加法器執(zhí)行codenum=level+level+2。[0035]本發(fā)明的優(yōu)勢如下:[0036]1、由于在AVS編碼中需要查詢大量的碼表,碼表的存儲要占用大量的存儲資源,采用該方案可以有效的減少存儲碼表所占用的資源。[0037]2、由于AVS產業(yè)化不斷加快,AVS編碼芯片應運而生,采用該發(fā)明,可以更有效的利用芯片的存儲資源,有利于提高AVS編碼芯片的性能。【專利附圖】【附圖說明】:[0038]圖1是本發(fā)明的整體實現(xiàn)框圖;[0039]圖2是本發(fā)明的加法邏輯模塊的硬件結構圖;[0040]圖3是本發(fā)明的選擇器MUXl根據控制信號高兩位control[2:1]向加法器輸入的對應數(shù)值表;[0041]圖4是本發(fā)明的查表邏輯模塊的結構圖?!揪唧w實施方式】:[0042]下面結合附圖和實施例對本發(fā)明作進一步的說明,但不限于此。[0043]實施例、[0044]如圖1-4所示。[0045]一種AVS編碼芯片中優(yōu)化碼表存儲的方法,包括步驟如下:[0046](I)統(tǒng)計碼表中符合以下運算關系的特殊數(shù)組(run,level):[0047]codenum=run+run;codenum=run+run+1;codenum=run+run-1;[0048]codenum=run+run+2;codenum=level+level;codenum=level+level+l;[0049]codenum=leve1+1eve1-1;或codenum=level+level+2;[0050](2)將信號輸入的數(shù)組(run,level)和碼表號tablenum輸入到判斷邏輯模塊,判斷邏輯模塊根據步驟(I)的統(tǒng)計,判斷輸入的數(shù)組(run,level)是否為特殊數(shù)組:給出標志信號flag和控制信號control[2:0];[0051]其中,當標志信號flag為O時,貝U表示數(shù)組(run,level)不是特殊數(shù)組,碼字codenum將通過查表邏輯模塊得到,查表邏輯模塊將不屬于特殊數(shù)組的(run,level)所對應的碼字,按照碼表號tablenum順序依次存儲。圖4中addr表示存儲器地址,codenum表示要存儲的碼字;當標志信號flag為I時,則表示數(shù)組(run,level)是特殊數(shù)組,碼字codenum將通過加法邏輯模塊得到;[0052]其中,所述控制信號control[2:0]為三位控制信號,其包括control[0]和control[2:1],所述control[0]為控制信號的最低位,所述control[2:1]為控制信號的高兩位;所述控制信號control[2:0]決定碼字codenum與數(shù)組(run,level)的具體對應關系;[0053](3)所述的加法邏輯模塊包括選擇器MUX0、選擇器MUXl和加法器,選擇器MUXO根據控制信號control[2:0]的最低位control[0]選擇run或level輸入加法器:[0054]當control[0]為O時,則表示輸入到加法器中的是run;當control[0]為I時,則表示輸入到加法器中的是level;[0055](4)選擇器MUXl根據根據控制信號control[2:0]的高兩位control[2:1]對應將“0,1,-1,2”輸入到加法器中:[0056]當control[2:1]為00時,則輸入加法器的值為O;[0057]當control[2:1]為01時,則輸入加法器的值為I;[0058]當control[2:1]為10時,則輸入加法器的值為-1;[0059]當control[2:1]為11時,則輸入加法器的值為2;[0060](5)所述加法器根據選擇器MUXO和選擇器MUXl分別輸入值,對應執(zhí)行以下運算:[0061]當輸入為run和O時,則加法器執(zhí)行codenum=run+run;[0062]當輸入為run和I時,貝1J加法器執(zhí)行codenum=run+run+l;[0063]當輸入為run和-1時,貝1J加法器執(zhí)行codenum=run+run_l;[0064]當輸入為run和2時,貝1J加法器執(zhí)行codenum=run+run+2;[0065]當輸入為level和O時,則加法器執(zhí)行codenum=level+level;[0066]當輸入為level和I時,則加法器執(zhí)行codenum=level+level+l;[0067]當輸入為level和-1時,則加法器執(zhí)行codenum=level+level_l;[0068]當輸入為level和2時,則加法器執(zhí)行codenum=level+level+2。【權利要求】1.一種AVS編碼芯片中優(yōu)化碼表存儲的方法,包括步驟如下:(1)統(tǒng)計碼表中符合以下運算關系的特殊數(shù)組(run,level):codenum=run+run;codenum=run+run+1;codenum=run+run-1;codenum=run+run+2;codenum=level+level;codenum=level+level+l;codenum=leve1+1eve1-1;或codenum=level+level+2;(2)將信號輸入的數(shù)組(run,level)和碼表號tablenum輸入到判斷邏輯模塊,判斷邏輯模塊根據步驟(I)的統(tǒng)計,判斷輸入的數(shù)組(run,level)是否為特殊數(shù)組:給出標志信號flag和控制信號control[2:0];其中,當標志信號flag為O時,則表示數(shù)組(run,level)不是特殊數(shù)組,碼字codenum將通過查表邏輯模塊得到;當標志信號flag為I時,則表示數(shù)組(run,level)是特殊數(shù)組,碼字codenum將通過加法邏輯模塊得到;其中,所述控制信號control[2:0]為三位控制信號,其包括control[O]和control[2:1],所述control[O]為控制信號的最低位,所述control[2:1]為控制信號的高兩位;所述控制信號control[2:0]決定碼字codenum與數(shù)組(run,level)的具體對應關系;(3)所述的加法邏輯模塊包括選擇器MUX0、選擇器MUXl和加法器,選擇器MUXO根據控制信號control[2:0]的最低位control[O]選擇run或level輸入加法器:當control[O]為O時,貝U表示輸入到加法器中的是run;當control[O]為I時,貝Ij表示輸入到加法器中的是level;(4)選擇器MUXl根據根據控制信號control[2:0]的高兩位control[2:1]對應將“0,1,-1,2”輸入到加法器中:當control[2:1]為00時,則輸入加法器的值為O;當control[2:1]為01時,則輸入加法器的值為I;當control[2:1]為10時,則輸入加法器的值為-1;當control[2:1]為11時,則輸入加法器的值為2;(5)所述加法器根據選擇器MUXO和選擇器MUXl分別輸入值,對應執(zhí)行以下運算:當輸入為run和O時,貝U加法器執(zhí)行codenum=run+run;當輸入為run和I時,貝U加法器執(zhí)行codenum=run+run+l;當輸入為run和-1時,貝U加法器執(zhí)行codenum=run+run-l;當輸入為run和2時,貝U加法器執(zhí)行codenum=run+run+2;當輸入為level和O時,貝U加法器執(zhí)行codenum=level+level;當輸入為level和I時,貝U加法器執(zhí)行codenum=level+level+l;當輸入為level和-1時,貝U加法器執(zhí)行codenum=level+level_l;當輸入為level和2時,貝U加法器執(zhí)行codenum=level+level+2。【文檔編號】H04N19/00GK103533360SQ201310492459【公開日】2014年1月22日申請日期:2013年10月19日優(yōu)先權日:2013年10月19日【發(fā)明者】王祖強,張貞雷申請人:山東大學