国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法

      文檔序號:7613126閱讀:316來源:國知局
      專利名稱:一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)的緩沖區(qū)讀寫方法。
      背景技術(shù)
      大多數(shù)靜態(tài)圖像壓縮標(biāo)準(zhǔn)(如JPEG,JPEG2000)和動態(tài)圖像壓縮標(biāo)準(zhǔn)(如MPEG1,MPEG2,MPEG4,H263等)中,首先對圖像的原始數(shù)據(jù)進行時域到頻域的變換,再對頻域信號進行壓縮。其中時域到頻域的變換有一個共有特征對一定大小的塊(如8×8,共64個像素)進行變換。此外,某些標(biāo)準(zhǔn)中,還有最小編碼單元的限制(Minimum Code Unit,MCU),要求每次獲得一個MCU的數(shù)據(jù),如JPEG YUV4:2:0的圖像MCU為16×16像素的塊。我們稱DCT等對圖像中一定大小的塊依次進行操作的運算或處理模塊為“塊處理模塊”。
      數(shù)碼相機傳感器產(chǎn)生的數(shù)據(jù)是一行接著一行傳輸?shù)?,而JPEG進行離散余弦變換(Discrete Cosine Transform,DCT)變換時是以8×8的小塊為單位進行操作,因此DCT需要同時使用8行的數(shù)據(jù)。對于大小為1280×1024的130萬像素圖象一般的在線DCT壓縮數(shù)據(jù)緩沖區(qū)設(shè)計采用兩個緩沖區(qū)的設(shè)計,(每個緩沖區(qū)可存儲8行共8×1280個像素的數(shù)據(jù)),進行乒乓讀寫(即從一塊準(zhǔn)備好8行數(shù)據(jù)的緩沖區(qū)讀取數(shù)據(jù)時,需要另一塊緩沖區(qū)來準(zhǔn)備后續(xù)的8行數(shù)據(jù))為DCT提供8×8的數(shù)據(jù)單元。兩個緩沖區(qū)的乒乓讀寫方式如圖1所示,其中,→表示“寫”的過程,而 表示“讀”的過程。
      這樣的設(shè)計需要的緩沖區(qū)大,從而導(dǎo)致設(shè)計的集成電路芯片面積較大,從而成本也高。

      發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問題是提供一種減小百萬像素在線DCT壓縮數(shù)據(jù)緩沖區(qū)大小的方法,該方法可對同一塊緩沖區(qū)進行巧妙的分區(qū)和讀寫的合理分配,在一個可存儲8行共8×1280個像素數(shù)據(jù)的緩沖區(qū)中完成了原本需要兩塊緩沖區(qū)完成的功能,降低了最終的芯片面積和產(chǎn)品成本。
      為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是提供一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法,其從行數(shù)據(jù)得到為塊處理模塊提供A×N的塊數(shù)據(jù),其中A、N可為任何自然數(shù),包括如下步驟首先將緩沖區(qū)分成A×A等分;步驟1對數(shù)碼相機傳感器得到的輸入數(shù)據(jù)進行水平寫入,直到寫入第A行的1/A行數(shù)據(jù),這段時間緩沖區(qū)只能被寫,不能被讀;步驟2數(shù)碼相機傳感器在寫入第A行剩余的A-1/A行數(shù)據(jù)過程中,塊處理模塊將左邊第一個垂直小塊列讀走。
      步驟3-5緩沖區(qū)從步驟2進入垂直寫、垂直讀的狀態(tài),經(jīng)過A-1個垂直小塊列讀寫,到垂直讀走最后一列;步驟6當(dāng)輸入數(shù)據(jù)垂直寫入到第2A行的前1/A行數(shù)據(jù)過程中,緩沖區(qū)只能被寫,不能被讀;步驟7當(dāng)輸入數(shù)據(jù)寫到第2A行剩余的(A-1)/A行數(shù)據(jù)過程中,塊處理模塊需要將最上方的一個水平小塊行讀走;步驟8-10緩沖區(qū)從步驟7進入水平寫、水平讀的狀態(tài)。經(jīng)過A-1個水平小塊行讀寫,到水平讀走最后一行;步驟11當(dāng)輸入數(shù)據(jù)水平寫入第3A行的前1/A行數(shù)據(jù)過程中,緩沖區(qū)只能被寫,不能被讀;步驟12緩沖區(qū)的讀寫狀態(tài)又重新回到類似步驟2,從而完成2A行數(shù)據(jù)的從行數(shù)據(jù)轉(zhuǎn)換成A×A個像素塊數(shù)據(jù)的過程。
      進一步地,本發(fā)明還提供另一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法,其從行數(shù)據(jù)得到為塊處理模塊提供B×N的塊數(shù)據(jù),其中,B,N可為任何自然數(shù),包括如下步驟首先將緩沖區(qū)分成B×C等分,B表示行數(shù),C表示列數(shù),其中C大于B,且B和C都為S的冪,S為大于1的自然數(shù);步驟1對數(shù)碼相機傳感器得到的輸入數(shù)據(jù)進行水平寫入,直到寫入第B行的第1個小塊,這段時間緩沖區(qū)只能被寫,不能被讀;步驟2數(shù)碼相機傳感器在寫入第B行的第1小塊后,塊處理模塊將第1個垂直小塊的讀走。數(shù)碼相機傳感器在寫入第B行的第2小塊后,塊處理模塊可第2個垂直小塊列讀走。在數(shù)碼相機傳感器開始寫入第(B+1)行的第1個小塊之前,塊處理模塊必須讀走第1個垂直小塊列。
      步驟3此后,塊處理模塊依次將垂直小塊列讀走,直至將這B行的最后一個垂直小塊列讀走。每讀走一個垂直小塊列,數(shù)碼相機傳感器可垂直寫入B/C行像素數(shù)據(jù),共B個小塊。對于重映射后的次序表而言,數(shù)碼相機傳感器是水平寫入下一個B行圖像的像素數(shù)據(jù)。
      步驟4在數(shù)碼相機傳感器寫入第2B行的第1個小塊期間,緩沖區(qū)只能被寫,不能被讀;步驟5重映射次序表,緩沖區(qū)的讀寫狀態(tài)又重新回到類似步驟2,從而完成B行數(shù)據(jù)的從行數(shù)據(jù)轉(zhuǎn)換成B×N個像素塊數(shù)據(jù)的過程。
      本發(fā)明支持在線DCT壓縮,不提高DCT處理能力的要求的情況下,使所需的緩沖區(qū)減少為一般設(shè)計的一半。


      圖1是現(xiàn)有的乒乓緩沖區(qū)讀寫示意圖;圖2是本發(fā)明的旋轉(zhuǎn)緩沖區(qū)分塊結(jié)構(gòu);圖3是旋轉(zhuǎn)緩沖區(qū)讀寫狀態(tài)轉(zhuǎn)換圖。
      具體實施例方式
      如圖2所示本發(fā)明的緩沖區(qū)(面積為8×1280)按水平和垂直方向分別8等分,形成等分的64個小塊,每個小塊可以存儲160像素的數(shù)據(jù)。在水平寫入數(shù)據(jù)時,水平的8個小塊可以組成一個水平小塊,保存一行數(shù)據(jù)。在水平寫入8行數(shù)據(jù)后,DCT進行垂直的讀取,而垂直讀取完的8個小塊可以組成一個垂直小塊,可以進行后續(xù)行的垂直寫入,保存一行新的數(shù)據(jù)。
      如圖3所示本發(fā)明的緩沖區(qū)的讀寫操作方法包括如下步驟步驟1對傳感器得到的輸入數(shù)據(jù)進行水平寫入,直到寫入第8行的1/8行數(shù)據(jù),這段時間緩沖區(qū)只能被寫,不能被讀;步驟2數(shù)碼相機傳感器在寫入第8行剩余的7/8行數(shù)據(jù)過程中,DCT模塊將左邊第一個垂直小塊列的8×160像素數(shù)據(jù)讀走。
      步驟3-5旋轉(zhuǎn)緩沖區(qū)從步驟2進入垂直寫、垂直讀的狀態(tài),經(jīng)過七個垂直小塊列讀寫,到垂直讀走最后一列;
      步驟6當(dāng)輸入數(shù)據(jù)垂直寫入到第16行的前1/8行數(shù)據(jù)過程中,緩沖區(qū)只能被寫,不能被讀;步驟7當(dāng)輸入數(shù)據(jù)寫到第16行剩余的7/8行數(shù)據(jù)過程中,DCT模塊需要將最上方的一個水平小塊行的8×160讀走;步驟8-10旋轉(zhuǎn)緩沖區(qū)從步驟7進入水平寫、水平讀的狀態(tài)。經(jīng)過七個水平小塊行讀寫,到水平讀走最后一行;步驟11當(dāng)輸入數(shù)據(jù)水平寫入第24行的前1/8行數(shù)據(jù)過程中,緩沖區(qū)只能被寫,不能被讀;步驟12旋轉(zhuǎn)緩沖區(qū)的讀寫狀態(tài)又重新回到類似步驟2,從而完成16行數(shù)據(jù)的從行數(shù)據(jù)轉(zhuǎn)換成8×8個像素塊數(shù)據(jù)的過程。
      圖中,→表示“讀”的過程,而 表示“寫”的過程。
      以上具體實施例以JPEG中為例,闡述一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)的緩沖區(qū)讀寫方法,但本發(fā)明并不局限JPEG,也不局限于DCT。
      本發(fā)明的保護范圍并不局限于以上具體的實施方式,比如,本發(fā)明并不局限于8×8數(shù)據(jù)單元,本發(fā)明還可以適用于1)從行數(shù)據(jù)得到為DCT提供16×16的數(shù)據(jù)單元(對YUV:2:0的圖像,JPEG的最小編碼單元為16×16像素的小塊);這種情況下,我們需要一個可存儲16行共16×1280個像素數(shù)據(jù)的緩沖區(qū),并將每行分為16個小塊(每塊包含80個像素的數(shù)據(jù)),共16×16個小塊。16×16個小塊的讀寫操作,類似8×8個小塊。
      2)從行數(shù)據(jù)得到為塊處理模塊提供A×N的塊數(shù)據(jù)(A,N可為任何自然數(shù));假設(shè)一行有L個像素,我們需要一個可存儲A行共A×L個像素數(shù)據(jù)的緩沖區(qū),并將每行分為A個小塊,共A×A個小塊(每塊包含L/A個像素的數(shù)據(jù),L必須是A*N的整數(shù)倍)。A×A個小塊的讀寫操作,類似8×8個小塊。
      3)從行數(shù)據(jù)得到為塊處理模塊提供B×N的塊數(shù)據(jù)(B,N可為任何自然數(shù));假設(shè)一行有L個像素,我們需要一個可存儲B行共B×L個像素數(shù)據(jù)的緩沖區(qū),并將每行分為C個小塊,共B×C個小塊(每塊包含L/C個像素的數(shù)據(jù),L必須是C*N的整數(shù)倍,C必須是B的整數(shù)倍)。為了便于ASIC實現(xiàn),B和C通常都為2的冪。理論上,B和C都為S的冪即可(S為大于1的自然數(shù))。
      以下的例子是將緩沖區(qū)分為4×8個小塊,以提供4×N的數(shù)據(jù)塊S0,S1,…,S31表示32個小塊。每寫入B行數(shù)據(jù),各小塊在B行圖像中的位置經(jīng)過了一次重映射。對于B×C中B和C相等的情況(即以上的A×A的情況),重映射在圖形上是把水平行映射為垂直列,或把水平行映射為垂直列。對于B×C中B和C不相等的情況,因為緩沖區(qū)需經(jīng)過大于2次重映射,才能返回初始狀態(tài),所以無法在圖形上用緩沖區(qū)垂直、水平兩種讀寫狀態(tài)來表示。因此,我們將每次重映射的結(jié)果表示在如下表格中。
      初始次序(次序1)為

      表1次序1對傳感器得到的輸入數(shù)據(jù)按表1水平次序?qū)懭耄瑒t各小塊存儲的像素數(shù)據(jù)在第一個4行圖像中的位置正如表1所示。數(shù)碼相機傳感器在寫入表1第4行的第1小塊S24后,塊處理模塊可將表1左邊第1個垂直小塊的{S0,S8,S16,S24}讀走。數(shù)碼相機傳感器在寫入表1第4行的第2小塊S25后,塊處理模塊可將表1左邊第2個垂直小塊列的{S1,S9,S17,S25}讀走。
      此后,塊處理模塊依次將表1的垂直小塊列讀走。每讀走一個,數(shù)碼相機傳感器可垂直寫入半行像素數(shù)據(jù)。在表1中半行接著半行垂直寫入像素數(shù)據(jù),等效于在表2中按水平次序?qū)懭?。所以,則各小塊存儲的像素數(shù)據(jù)在第二個4行圖像中的位置正如表2所示。
      當(dāng)塊處理模塊讀走表1中的第8個垂直小塊列時,數(shù)碼相機傳感器可寫入表1中的第7個垂直小塊列{S6,S14,S22,S30},相當(dāng)于寫入表2中第4個水平小塊行的前半行。


      表2次序2數(shù)碼相機傳感器在寫入表2第4行的第1小塊S6后,塊處理模塊可將左邊表2第1個垂直小塊的{S0,S2,S4,S6}讀走。數(shù)碼相機傳感器在寫入表2第4行的第2小塊S14后,塊處理模塊可將表2左邊第2個垂直小塊列的{S8,S10,S12,S14}讀走。
      此后,塊處理模塊依次將表2的垂直小塊列讀走。每讀走一個,數(shù)碼相機傳感器可垂直寫入半行像素數(shù)據(jù)。在表2中半行接著半行垂直寫入像素數(shù)據(jù),等效于在表3中按水平次序?qū)懭?。所以,則各小塊存儲的像素數(shù)據(jù)在第三個4行圖像中的位置正如表3所示。
      當(dāng)塊處理模塊讀走表2中的第8個垂直小塊列時,數(shù)碼相機傳感器可寫入表2中的第7個垂直小塊列{S17,S19,S21,S23},相當(dāng)于寫入表3中第4個水平小塊行的前半行。

      表3次序3以此類推,緩沖區(qū)各小塊在4行圖像中的位置關(guān)系,依次從表3、表4、表5,又回到表1。

      表4次序4

      表5次序5以上5張表具有很強的內(nèi)在關(guān)系,可很方便的用ASIC設(shè)計中的比特位循環(huán)移位來實現(xiàn)。
      首先,將任一小塊的塊號N(0,1,2,…,31)用二進制表示為5比特的數(shù)N=16*n4+8*n3+4*n2+2*n1+n0(其中n4,n3,n2,n1,n0取值為1或0)設(shè)任一小塊在一個4行圖像中的坐標(biāo)為(X,Y),其中X=0,1,…,7,Y=0,1,…,3。X的二進制表示為3比特的數(shù),Y的二進制表示為2比特的數(shù)。
      X=4*x2+2*x1+x0(其中x2,x1,x0取值為1或0)Y=2*y1+y0(其中y1,y0取值為1或0)表1中的N與(X,Y)的對應(yīng)關(guān)系可用下式表示{y1,y0,x2,x1,x0}={n4,n3,n2,n1,n0}循環(huán)移位2位,可得表2中的N與(X,Y)的對應(yīng)關(guān)系{y1,y0,x2,x1,x0}={n2,n1,n0,n4,n3}再循環(huán)移位2位,可得表3中的N與(X,Y)的對應(yīng)關(guān)系{y1,y0,x2,x1,x0}={n0,n4,n3,n2,n1}再循環(huán)移位2位,可得表4中的N與(X,Y)的對應(yīng)關(guān)系{y1,y0,x2,x1,x0}={n3,n2,n1,n0,n4}再循環(huán)移位2位,可得表5中的N與(X,Y)的對應(yīng)關(guān)系{y1,y0,x2,x1,x0}={n1,n0,n4,n3,n2}再循環(huán)移位2位,又回到表1中的N與(X,Y)的對應(yīng)關(guān)系{y1,y0,x2,x1,x0}={n4,n3,n2,n1,n0}可見,對于將緩沖區(qū)分為B×C個小塊(C必須是B的整數(shù)倍),且B和C都為2的冪的情況,緩沖區(qū)在邏輯上的重映射可很方便用塊號(即ASIC設(shè)計中的地址)的比特位循環(huán)移位來實現(xiàn)。
      一般地,對于將緩沖區(qū)分為B×C個小塊(C必須是B的整數(shù)倍),且B和C都為S的冪(S為大于1的自然數(shù))的情況,設(shè)B=Sb,C=Sc,其中b,c為自然數(shù),且b<c。設(shè)b,c的最大公因子為g。
      則緩沖區(qū)需經(jīng)過(b+c)/g次重映射后,可回到初始次序。
      權(quán)利要求
      1.一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法,其特征在于,從行數(shù)據(jù)得到為塊處理模塊提供AxN的塊數(shù)據(jù),其中A、N可為任何自然數(shù),包括如下步驟首先將緩沖區(qū)分成AxA等分;步驟1對數(shù)碼相機傳感器得到的輸入數(shù)據(jù)進行水平寫入,直到寫入第A行的1/A行數(shù)據(jù),這段時間緩沖區(qū)只能被寫,不能被讀;步驟2數(shù)碼相機傳感器在寫入第A行剩余的A-1/A行數(shù)據(jù)過程中,塊處理模塊將左邊第一個垂直小塊列讀走。步驟3-5緩沖區(qū)從步驟2進入垂直寫、垂直讀的狀態(tài),經(jīng)過A-1個垂直小塊列讀寫,到垂直讀走最后一列;步驟6當(dāng)輸入數(shù)據(jù)垂直寫入到第2A行的前1/A行數(shù)據(jù)過程中,緩沖區(qū)只能被寫,不能被讀;步驟7當(dāng)輸入數(shù)據(jù)寫到第2A行剩余的(A-1)/A行數(shù)據(jù)過程中,塊處理模塊需要將最上方的一個水平小塊行讀走;步驟8-10緩沖區(qū)從步驟7進入水平寫、水平讀的狀態(tài)。經(jīng)過A-1個水平小塊行讀寫,到水平讀走最后一行;步驟11當(dāng)輸入數(shù)據(jù)水平寫入第3A行的前1/A行數(shù)據(jù)過程中,緩沖區(qū)只能被寫,不能被讀;步驟12緩沖區(qū)的讀寫狀態(tài)又重新回到類似步驟2,從而完成2A行數(shù)據(jù)的從行數(shù)據(jù)轉(zhuǎn)換成AxN個像素塊數(shù)據(jù)的過程。
      2.一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法,其特征在于,所述的A為8或16。
      3.一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法,其特征在于,從行數(shù)據(jù)得到為塊處理模塊提供BxN的塊數(shù)據(jù),其中,B,N可為任何自然數(shù),包括如下步驟首先將緩沖區(qū)分成BxC等分,B表示行數(shù),C表示列數(shù),其中C大于B,且B和C都為S的冪,S為大于1的自然數(shù),(假設(shè)一行有L個像素,則L必須是C*N的整數(shù)倍);步驟1對數(shù)碼相機傳感器得到的輸入數(shù)據(jù)進行水平寫入,直到寫入第B行的第1個小塊,這段時間緩沖區(qū)只能被寫,不能被讀;步驟2數(shù)碼相機傳感器在寫入第B行的第1小塊后,塊處理模塊將第1個垂直小塊的讀走。數(shù)碼相機傳感器在寫入第B行的第2小塊后,塊處理模塊可第2個垂直小塊列讀走。在數(shù)碼相機傳感器開始寫入第(B+1)行的第1個小塊之前,塊處理模塊必須讀走第1個垂直小塊列。步驟3此后,塊處理模塊依次將垂直小塊列讀走,直至將這B行的最后一個垂直小塊列讀走。每讀走一個垂直小塊列,數(shù)碼相機傳感器可垂直寫入B/C行像素數(shù)據(jù),共B個小塊。對于重映射后的次序表而言,數(shù)碼相機傳感器是水平寫入下一個B行圖像的像素數(shù)據(jù)。步驟4在數(shù)碼相機傳感器寫入第2B行的第1個小塊期間,緩沖區(qū)只能被寫,不能被讀;步驟5重映射次序表,緩沖區(qū)的讀寫狀態(tài)又重新回到類似步驟2,從而完成B行數(shù)據(jù)的從行數(shù)據(jù)轉(zhuǎn)換成BxN個像素塊數(shù)據(jù)的過程。
      4.一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法,其特征在于,所述的B、C為2的冪。
      全文摘要
      本發(fā)明提供一種減小在線圖像壓縮數(shù)據(jù)緩沖區(qū)大小的緩沖區(qū)讀寫方法,數(shù)據(jù)緩沖區(qū)首先水平寫入A行數(shù)據(jù),塊處理模塊進行垂直的讀取,而垂直讀取完的A個小塊可以組成一個垂直小塊,可以進行后續(xù)行的垂直寫入,保存一行新的數(shù)據(jù)。該方法可對同一塊緩沖區(qū)進行巧妙的分區(qū)和讀寫的合理分配,在一個可緩沖區(qū)中完成了原本需要兩塊緩沖區(qū)完成的功能,降低了最終的芯片面積和產(chǎn)品成本。
      文檔編號H04N5/14GK1787382SQ20051002519
      公開日2006年6月14日 申請日期2005年4月19日 優(yōu)先權(quán)日2005年4月19日
      發(fā)明者林豪, 蔣道三 申請人:展訊通信(上海)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1