国产精品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>

      由量化控制改良解碼器性能的方法與系統(tǒng)的制作方法

      文檔序號:8001854閱讀:233來源:國知局
      由量化控制改良解碼器性能的方法與系統(tǒng)的制作方法
      【專利摘要】一種編解碼器,包括編碼器,具有定義特定區(qū)塊的數(shù)值(例如,變換系數(shù))的量化電平的量化電平產(chǎn)生器、根據(jù)區(qū)塊-特定的量化電平量化該區(qū)塊的變換系數(shù)的量化器、行程編碼器、以及熵編碼器。定義該量化電平以導致具有預定值的至少一預定數(shù)量(k)的量化系數(shù)。該編碼器的數(shù)據(jù)壓縮量與k成比例。該編解碼器還包括解碼器,具有熵解碼部分以及行程解碼部分,該兩解碼部分的吞吐量與k成比例。該解碼器利用多個解碼信道通過進一步平行解碼系數(shù)而利用這種提高的吞吐量。又公開了編解碼數(shù)據(jù)的方法。本發(fā)明非常適于量化、基于熵和/或行程的編解碼器,例如JPEG。
      【專利說明】由量化控制改良解碼器性能的方法與系統(tǒng)
      【技術(shù)領域】
      [0001]本發(fā)明一般地涉及數(shù)據(jù)壓縮,尤其是涉及一種編解碼器(codec)系統(tǒng)。更特別地,本發(fā)明涉及在單一編碼器的編解碼器系統(tǒng)中提高解碼器的性能。
      【背景技術(shù)】
      [0002]近年來對高清(HD)媒體(例如,視頻、靜止圖像等)的需求已經(jīng)顯著增長。結(jié)果,對媒體裝置(例如,照相機、行動電話、平板計算機等)的需求也已經(jīng)增長。對現(xiàn)代媒體裝置的主要設計目標是確保不間斷的媒體吞吐量(throughput)。
      [0003]編解碼器用于媒體裝置中,以便通過對所述媒體進行編碼而提高數(shù)據(jù)壓縮以及吞吐量。在編解碼器中,編碼器接收媒體數(shù)據(jù)并將其編碼成壓縮數(shù)據(jù)流。該壓縮數(shù)據(jù)流最終被發(fā)送到解碼器,該解碼器解碼該壓縮數(shù)據(jù)并將其提供在輸出。不幸的是,解碼器常常在數(shù)據(jù)流中產(chǎn)生瓶頸(bottleneck),當解碼器的數(shù)據(jù)輸出速率不足以以一種期望的方式(例如,以期望的幀速率、以期望的分辨率等)播放該媒體或者造成數(shù)據(jù)丟失時,這是有問題的。
      [0004]采用行程(Run-Length)與熵(Entropy)編解碼技術(shù)(例如,JPEG、MPEG等)的編解碼器特別容易使解碼器瓶頸,因為來自該編碼器的壓縮數(shù)據(jù)流的內(nèi)容是不可預知的。該不可預知性造成解碼過程花費太長時間和圖像數(shù)據(jù)丟失,和/或迫使媒體裝置運行太緩慢。該不可預知性還把現(xiàn)有技術(shù)的解碼器限制于單個解碼信道。
      [0005]因此,需要的是一種在編解碼器系統(tǒng)中提高解碼器性能的系統(tǒng)及方法。還需要的是一種在初始編碼過程中控制數(shù)據(jù)壓縮及解碼器性能的系統(tǒng)及方法。還需要的是一種在解碼過程中極大地減小或消除瓶頸的系統(tǒng)及方法。

      【發(fā)明內(nèi)容】

      [0006]本發(fā)明通過提供一種編碼器和解碼器系統(tǒng)克服了現(xiàn)有技術(shù)中的問題,該編碼器和解碼器系統(tǒng)通過在編碼期間控制每一個區(qū)塊的數(shù)據(jù)的量化過程來提高數(shù)據(jù)壓縮和解碼器性能。作為編碼過程的一部分,本發(fā)明有利于量化每一個區(qū)塊的數(shù)據(jù),以產(chǎn)生量化區(qū)塊,該區(qū)塊包括至少預定數(shù)量(或百分比)的具有預定值(例如,值為O)的量化系數(shù)。此外,雖然解碼器接收單一壓縮數(shù)據(jù)流作為輸入,該解碼器能夠平行解碼與兩個或更多個系數(shù)相關(guān)聯(lián)的數(shù)據(jù)。通過在熵和行程解碼過程中增加的吞吐量而易于平行解碼,因為該吞吐量通過量化過程來控制。也公開了一種改善的行程解碼系統(tǒng)和方法。
      [0007]根據(jù)本發(fā)明的編碼器包括:輸入端,接收一區(qū)塊的數(shù)值(例如,來自變換單元的一區(qū)塊的變換系數(shù));量化電平產(chǎn)生器,定義該區(qū)塊的變換系數(shù)的量化電平;以及量化器,基于量化電平量化該區(qū)塊的變換系數(shù),以產(chǎn)生區(qū)塊的量化系數(shù)。定義該量化電平以使至少預定數(shù)量(k)(例如,大于或等于一半,等)的量化系數(shù)在量化之后具有預定值(例如,值為O)。該量化器通過以量化電平和與變換系數(shù)相關(guān)聯(lián)的量化數(shù)據(jù)劃分每一個變換系數(shù)而部分量化該區(qū)塊的變換系數(shù)。當編碼器很適合于JPEG應用時,量化電平產(chǎn)生器和量化器可以以任意編碼器實施,其中需要一區(qū)塊的數(shù)值的量化。[0008]根據(jù)特定實施例,該量化電平產(chǎn)生器通過基于量化數(shù)據(jù)和默認量化電平(例如,值為I)初始地量化該區(qū)塊的變換系數(shù)來確定量化電平,以產(chǎn)生測試區(qū)塊的量化系數(shù)。如果該測試區(qū)塊包括至少該預定數(shù)量之具有O值(預定值)的系數(shù),然后默認量化電平被用作為該區(qū)塊的量化電平。如果該測試區(qū)塊的量化系數(shù)不包括足夠的O值,然后例如通過識別該測試區(qū)塊中第k個最小量化系數(shù)并且將新量化電平設定為大于兩倍的該第k個最小量化系數(shù)的值的數(shù)值來確定新量化電平。在特定實施例中,該量化器通過進一步以新量化電平量化該測試區(qū)塊而完成量化。編碼器也可以包括量化電平輸出端,輸出量化電平例如至先進先出(FIFO)內(nèi)存。
      [0009]在另一特定實施例中,該編碼器進一步包括離散余弦變換(DCT)單元,以產(chǎn)生該區(qū)塊的變換系數(shù);“之”字型單元,執(zhí)行“之”字型操作,以在多個量化系數(shù)的線性數(shù)據(jù)流中排列該區(qū)塊的量化系數(shù);行程編碼器,將多個量化系數(shù)編碼為行程編碼(RLE)數(shù)據(jù);以及熵編碼器,熵編碼該行程編碼數(shù)據(jù)。該編碼器例如可以為JPEG或MPEG編碼器??梢赃M一步選擇該預定數(shù)量(k),以控制該解碼器的輸入數(shù)據(jù)和/或吞吐量的壓縮數(shù)量。
      [0010]根據(jù)本發(fā)明的解碼器包括:輸入端,接收包含有與一系列區(qū)塊的數(shù)據(jù)相關(guān)聯(lián)的行程編碼數(shù)據(jù)如圖像的一區(qū)塊的圖像數(shù)據(jù)的行程編碼數(shù)據(jù)流;行程解碼器,將與連續(xù)區(qū)塊相關(guān)聯(lián)的行程編碼數(shù)據(jù)解碼為連續(xù)多個數(shù)值(例如,量化系數(shù));以及平行操作的多個解碼信道。每一個解碼信道可以將多個系數(shù)解碼為一區(qū)塊的解碼圖像數(shù)據(jù)。該連續(xù)多個系數(shù)被依序地提供至不同的解碼信道,以使兩個或更多個系數(shù)通過其各自解碼信道至少部分地平行解碼。例如,第二多個系數(shù)可以通過第二解碼信道至少部分地解碼,同時第一多個系數(shù)正在通過第一解碼信道解碼。該解碼器也可以包括熵解碼器,接收熵編碼數(shù)據(jù)流并且產(chǎn)生行程編碼數(shù)據(jù)流,例如在JPEG實施。
      [0011]根據(jù)特定實施例,多個系數(shù)為多個量化系數(shù),每一個解碼信道包括量化電平輸入,接收與正在解碼的多個量化系數(shù)相關(guān)聯(lián)的量化電平。每一個解碼信道也包括去量化器,根據(jù)經(jīng)由該量化電平輸入接收的相關(guān)聯(lián)量化電平去量化該多個量化系數(shù)(例如,產(chǎn)生一區(qū)塊的變換系數(shù))。根據(jù)一實施例,該多個解碼信道自一先進先出內(nèi)存順序地讀取量化電平。每一個解碼信道也可以包括一逆“之”字型單元,對該多個量化系數(shù)執(zhí)行逆“之”字型過程,以產(chǎn)生一區(qū)塊的量化系數(shù);以及逆離散余弦變換單元,對該區(qū)塊的變換系數(shù)執(zhí)行逆離散余弦變換,以產(chǎn)生一區(qū)塊的解碼圖像數(shù)據(jù)。
      [0012]如上所述,該解碼器的行程和熵解碼器部分以足夠速率操作,以使至少兩個解碼信道平行操作。尤其是,該熵和行程解碼器部分以這樣的速度操作,該速度為與具有預定值的量化數(shù)據(jù)中的系數(shù)的數(shù)量成比例。在解碼期間,該行程解碼器存取緩沖器,該緩沖器定義多個連續(xù)存取的存儲位置。為了解碼行程編碼數(shù)據(jù),該行程解碼器在所有緩沖器的存儲位置中存儲預定值(例如,O)。然后該行程解碼器基于該行程編碼數(shù)據(jù)將第一非O值寫入第一存儲位置(例如,用指針表示),基于該行程編碼數(shù)據(jù)跳至(例如,移動指針)下一個存儲位置,然后基于該行程編碼數(shù)據(jù)將下一個非O值寫入第二存儲位置。在特定實施例中,該行程編碼數(shù)據(jù)包括多個數(shù)值對,其中該數(shù)值對的其中之一表示行程O。該行程解碼器使用每一對中的行程值來確定在緩沖器中有多少個存儲位置在寫入下一個非O值之前跳過。當該行程解碼器包括一指針時,跳過的存儲位置可以通過增加指針以一加在行程編碼數(shù)據(jù)中定義的行程值來完成。[0013]還描述了產(chǎn)生編碼數(shù)據(jù)的方法。根據(jù)本發(fā)明編碼數(shù)據(jù)的方法包括以下步驟:接收一區(qū)塊的數(shù)值(例如,通過變換單元產(chǎn)生的一區(qū)塊變換系數(shù));定義與該區(qū)塊的變換系數(shù)相關(guān)聯(lián)的量化電平;以及基于該量化電平量化該區(qū)塊的變換系數(shù),以產(chǎn)生區(qū)塊的量化系數(shù)。定義該量化電平以使至少預定數(shù)量(k)的量化系數(shù)具有預定值(例如,值為O)。根據(jù)特定方法,該值(k)為大于或等于該區(qū)塊的量化系數(shù)中量化系數(shù)的數(shù)量的一半。也可以定義該值(k)以控制該解碼器的熵解碼部分和行程解碼部分的速度。根據(jù)特定方法,可以通過基于量化數(shù)據(jù)和默認量化電平(例如,值為I)初始地量化該區(qū)塊而部分地確定區(qū)塊-特定的量化電平,以產(chǎn)生測試區(qū)塊的量化系數(shù),然后確定該測試區(qū)塊是否具有至少該預定數(shù)量之具有如上所述該預定值的系數(shù)。如果沒有,可以為該區(qū)塊確定新量化電平,該測試區(qū)塊可以通過新量化電平進一步量化。當該編碼方法很適合于JPEG應用時,該量化過程應用于任意編碼方法,其中需要量化一區(qū)塊的數(shù)值。
      [0014]還描述了一種解碼編碼數(shù)據(jù)的方法。該方法包括:接收行程編碼數(shù)據(jù)流,該數(shù)據(jù)流包括與一系列區(qū)塊的數(shù)據(jù)如圖像的一區(qū)塊圖像數(shù)據(jù)相關(guān)聯(lián)的行程編碼數(shù)據(jù);將與第一區(qū)塊的圖像數(shù)據(jù)相關(guān)聯(lián)的行程編碼數(shù)據(jù)行程解碼為第一多個數(shù)值(例如,量化系數(shù));以及利用自平行操作的多個解碼信道中選擇的第一解碼信道解碼該第一多個系數(shù)。該方法還包括以下步驟:將與第二區(qū)塊的圖像數(shù)據(jù)相關(guān)聯(lián)的行程編碼數(shù)據(jù)行程解碼為第二多個系數(shù);以及使用該多個解碼信道中的第二解碼信道解碼第二多個個系數(shù)。執(zhí)行該方法以使解碼第一和第二多個系數(shù)的步驟至少部分地同時出現(xiàn)。根據(jù)本發(fā)明中的行程解碼方法可以包括以下步驟:如上所述,將一預定值(例如,O)存儲在緩沖器中多個連續(xù)存取的存儲位置的每一個中,然后使用在該行程編碼數(shù)據(jù)中的行程值以跳至將寫入非O系數(shù)的存儲位置。該行程解碼(還有熵解碼)的速度與具有該預定值的系數(shù)的數(shù)量成比例。
      【專利附圖】

      【附圖說明】
      [0015]參考如下附圖描述本發(fā)明,其中相似的參考編號實質(zhì)上表示類似的組件:
      [0016]圖1為顯示根據(jù)本發(fā)明的編解碼器系統(tǒng)實施例的方塊圖;
      [0017]圖2為更詳細地顯示第I圖的編碼器的方塊圖;
      [0018]圖3為更詳細地顯示第2圖的量化電平產(chǎn)生器與量化單元的方塊圖;
      [0019]圖4A顯示至少包含32個具有預定值的系數(shù)的量化系數(shù)示例性區(qū)塊;
      [0020]圖4B顯示至少包含43個具有預定值的系數(shù)的量化系數(shù)示例性區(qū)塊;
      [0021]圖4C顯示至少包含48個具有預定值的系數(shù)的量化系數(shù)示例性區(qū)塊;
      [0022]圖4D顯示至少包含52個具有預定值的系數(shù)的量化系數(shù)示例性區(qū)塊;
      [0023]圖5為圖2的編碼器所采用的編碼過程的數(shù)據(jù)流程圖;
      [0024]圖6為更詳細地顯示圖1的解碼器的方塊圖;
      [0025]圖7為更詳細地顯示圖6的解碼器的行程解碼器部分的方塊圖;
      [0026]圖8A為顯示圖4D的區(qū)塊的行程編碼數(shù)據(jù)以及與圖7的行程解碼器有關(guān)的相關(guān)聯(lián)行程解碼參數(shù)的表800 ;
      [0027]圖SB更詳細地顯示圖7的量化系數(shù)緩沖區(qū);
      [0028]圖9為計算機系統(tǒng)900的方塊圖,該圖顯示了以軟件實施的本發(fā)明的編碼器和/或解碼器;[0029]圖10為概括根據(jù)本發(fā)明的編碼數(shù)據(jù)的方法的流程圖;
      [0030]圖11為概括用于執(zhí)行圖10的方法的第三步驟的特定方法的流程圖;
      [0031]圖12為概括根據(jù)本發(fā)明用于解碼編碼數(shù)據(jù)流的方法的流程圖;以及
      [0032]圖13為概括用于執(zhí)行圖12的方法的第二步驟和/或第四步驟的方法的流程圖。
      【具體實施方式】
      [0033]本發(fā)明通過提供一種編解碼器系統(tǒng)而克服了與現(xiàn)有技術(shù)相關(guān)聯(lián)的問題,該編解碼器系統(tǒng)通過控制在編碼過程中對每個數(shù)據(jù)區(qū)塊(block of data)的量化過程提高了數(shù)據(jù)壓縮與解碼器的性能。作為編碼過程的一部分,量化每個數(shù)據(jù)區(qū)塊,使得被量化的區(qū)塊包含至少預定數(shù)量(或百分比)的量化系數(shù),所述量化系數(shù)具有預定值。此外,由于被控制的量化過程促進快速的熵及行程解碼,以及解碼器并行解碼被編碼的數(shù)據(jù),因此提高了解碼器的速度。在以下描述中,為了提供對本發(fā)明的徹底理解,闡明了許多具體的細節(jié)(例如,解碼器速度控制的輸入、產(chǎn)生區(qū)塊-特定(block-specific)的量化電平的方法等)。然而,本領域技術(shù)人員將意識到本發(fā)明可以脫離這些具體的細節(jié)實踐。在其它例子中,已知的編解碼技術(shù)與組件的細節(jié)已經(jīng)被省略,為了不會不必要地模糊本發(fā)明。
      [0034]圖1為顯示根據(jù)本發(fā)明的編解碼器100的方塊圖,其整合在主機102中。正如下面將要更詳細描述,編解碼器100將數(shù)據(jù)編碼成壓縮數(shù)據(jù)以及將壓縮數(shù)據(jù)解碼成解碼數(shù)據(jù)。主機102為從數(shù)據(jù)壓縮中獲益的某個設備(例如,顯示器驅(qū)動器、媒體處理器、圖像感應器等)。在本實施例中,主機102為一集成電路,編解碼器100實施在集成電路中。然而,編解碼器100還可以軟件、固件等來實現(xiàn),并且編解碼器100的不同部分(例如,編碼器部分與解碼器部分)還可分開實現(xiàn)。
      [0035]編解碼器100包括編碼器104以及解碼器106。編碼器104在其輸入108接收未經(jīng)編碼的數(shù)據(jù)、編碼該數(shù)據(jù)以及在其輸出端110輸出壓縮數(shù)據(jù)流。該壓縮數(shù)據(jù)流經(jīng)壓縮數(shù)據(jù)路徑112提供至壓縮數(shù)據(jù)存儲器113,并從壓縮數(shù)據(jù)存儲器113提供至解碼器106的輸入114。解碼器106在其輸入114接收該壓縮數(shù)據(jù)流、利用多個解碼信道(參見圖2)解碼該壓縮數(shù)據(jù)以及通過多個輸出116 (I)至116 (η)輸出解碼數(shù)據(jù)。因為解碼器106能夠利用其多個解碼信道平行解碼該壓縮數(shù)據(jù),因此相對于現(xiàn)有技術(shù),解碼器106有利地提高了解碼過程的速度。
      [0036]壓縮數(shù)據(jù)存儲器113為內(nèi)存(例如,幀緩沖器等),該內(nèi)存整合在編解碼器100和/或主機102中。壓縮數(shù)據(jù)存儲器113還可以為主機102外部的內(nèi)存,例如易失性內(nèi)存(例如,RAM)或者非易失性內(nèi)存(例如,閃存等)。因為直接在編碼器104與解碼器106之間傳輸壓縮數(shù)據(jù)是可取的,因此可選擇使用壓縮數(shù)據(jù)存儲器113。
      [0037]在本實施例中,編解碼器100為JPEG編解碼器,其將以此被描述。然而,正如下面將要描述的,本發(fā)明適合任何利用量化、行程和/或熵編碼和/或解碼技術(shù)的編解碼器。在本實施例中,編碼器104編碼一串8 X 8圖像數(shù)據(jù)區(qū)塊,其中每個區(qū)塊包括與64個圖像像素有關(guān)的數(shù)據(jù)。作為其編碼過程的一部分,編碼器104為每個區(qū)塊定義一個特定的量化電平,并根據(jù)該被定義的量化電平(及其它量化數(shù)據(jù))量化每個區(qū)塊。編碼器104還通過區(qū)塊量化電平路徑118將一串量化電平輸出至解碼器106,其中每個量化電平與經(jīng)JPEG編碼的特定數(shù)據(jù)區(qū)塊相關(guān)聯(lián)。解碼器106在解碼過程中接收區(qū)塊-特定的量化電平,并利用這些區(qū)塊-特定的量化電平去量化相關(guān)聯(lián)的數(shù)據(jù)區(qū)塊。
      [0038]圖1還顯示了編解碼器100響應從例如主機102的速度控制輸入120接收的速度控制信號。施加到速度控制輸入120的該速度控制信號被提供至編碼器104,并選擇性地提供至解碼器106。正如下面將要更詳細描述的,該速度控制信號可用來控制編碼器104中的量化過程,因此除了控制解碼器106的輸出速率以外還控制數(shù)據(jù)壓縮量??蛇x擇地,該速度控制信號還可提供至解碼器106,以便促進其它的功能,如下文中所描述的。
      [0039]圖2為更詳細地顯示編解碼器100的編碼器104的方塊圖。在所示的JPEG實施例中,編碼器104包括離散余弦變換(Discrete Cosine Transform, DCT)單元202,量化電平產(chǎn)生及量化(Q-Level Generation and Quantization, QLGQ)單兀 204、“之”字型排序(zig-zag)單元208、行程編碼器210以及熵編碼器212。圖2除了壓縮數(shù)據(jù)存儲器113以夕卜,還顯示了區(qū)塊準備單元214、區(qū)塊量化電平內(nèi)存216以及時序控制單元220。
      [0040]編碼器104在其輸入108從區(qū)塊準備單元214接收一串8X8圖像數(shù)據(jù)區(qū)塊。區(qū)塊準備單元214被顯示為主機102的一個組件,但是其也可以并入編碼器104中。區(qū)塊準備單元214將來自主機102的圖像數(shù)據(jù)格式化成與JPEG編碼器104兼容的圖像數(shù)據(jù)區(qū)塊。例如,區(qū)塊準備單元214可將圖像數(shù)據(jù)從一個色彩空間(例如,紅色、綠色、藍色(RGB)等)轉(zhuǎn)換成另一個色彩空間(例如,YUV、YCbCr等)。區(qū)塊準備單元214將不同色彩空間的組成(例如,Y、Cb以及Cr等)分成不同圖像數(shù)據(jù)流,每個圖像數(shù)據(jù)流包含不同色彩空間組成的其中之一的數(shù)據(jù),除此之外,區(qū)塊準備單元214為了編碼的目的,還可將一個圖像數(shù)據(jù)幀分成多個圖像數(shù)據(jù)區(qū)塊。
      [0041]提供至編碼器104的每個圖像數(shù)據(jù)區(qū)塊經(jīng)過下面的編碼過程。首先,DCT單元202在該區(qū)塊上執(zhí)行DCT,藉此在頻域中該區(qū)塊被變換成64個變換系數(shù)的區(qū)塊。作為本領域已知的,每區(qū)塊的DCT系數(shù)包括DC分量系數(shù)以及63個AC分量系數(shù)。
      [0042]然后,DCT系數(shù)的區(qū)塊被提供至QLGQ單元204,該QLGQ單元204確定該DCT系數(shù)的區(qū)塊的量化電平。該區(qū)塊的量化電平是基于量化數(shù)據(jù)、期望的數(shù)據(jù)壓縮量和/或期望的解碼器106的輸出速率。具體地,該量化電平被定義成使得在完成量化之后,DCT系數(shù)的區(qū)塊將產(chǎn)生量化系數(shù)區(qū)塊,其中預定數(shù)量(k)的量化系數(shù)具有預定值。在本實施例中,該預定值為O。換句話說,QLGQ單元204提供了一個用來定義區(qū)塊-特定的量化電平使得在完成量化后該區(qū)塊中至少預定數(shù)量的量化系數(shù)將具有該預定值的方法。
      [0043]QLGQ單元204將每個區(qū)塊-特定的量化電平輸出至區(qū)塊量化電平內(nèi)存216。在本實施例中,區(qū)塊量化電平內(nèi)存216為先進先出(First In First 0ut,F(xiàn)IF0)內(nèi)存,該內(nèi)存確保量化電平以編碼器104產(chǎn)生它們的順序提供至該解碼器106。因此,區(qū)塊量化電平內(nèi)存216確保在解碼過程中量化電平與解碼器106中它們的相關(guān)聯(lián)區(qū)塊匹配。雖然本發(fā)明人利用FIFO作為區(qū)塊量化電平內(nèi)存216已經(jīng)獲得了很好的成功,但是在某種程度上由于其實施的簡單,只要在解碼過程中所述區(qū)塊-特定的量化電平能夠與相應的數(shù)據(jù)匹配,其它類型的內(nèi)存(例如,可尋址內(nèi)存等)也可以同本發(fā)明使用。
      [0044]QLGQ單元204還基于預定的量化數(shù)據(jù)(例如,8X8的表的量化值、所有DCT系數(shù)的固定量化值等)以及所述區(qū)塊-特定的量化電平來量化每個DCT系數(shù),以產(chǎn)生量化系數(shù)區(qū)塊,圖3將更加詳細地描述。
      [0045]一旦數(shù)據(jù)區(qū)塊被量化,QLGQ單元204就將量化系數(shù)區(qū)塊提供至“之”字型排序單元208。該“之”字型排序單元208接收量化系數(shù)的8X8的區(qū)塊,并對該區(qū)塊執(zhí)行“之字型排序”操作。所述“之字型排序”操作通過“之字型排序”將該量化系數(shù)區(qū)塊沿著該區(qū)塊的對角線排列成一線性序列。然后該線性序列被輸出至行程編碼器210。
      [0046]行程編碼器210從“之”字型排序單元208接收量化系數(shù)的該線性序列,并且將該線性序列編碼成行程編碼(RLE)數(shù)據(jù)。行程編碼是數(shù)據(jù)壓縮的一種形式,其中具有相同值(例如,O)的數(shù)據(jù)行程(runs of data)存儲為一個計數(shù)。行程編碼的特定方法存儲作為RLE數(shù)據(jù)的區(qū)塊中的多個量化系數(shù),該RLE數(shù)據(jù)包括復數(shù)對值,每對值中具有定義O的行程的第一值以及指示下一個非O量化系數(shù)的第二值。該RLE數(shù)據(jù)還可包括區(qū)塊結(jié)束代碼,該區(qū)塊結(jié)束代碼指示與該區(qū)塊關(guān)聯(lián)之所有剩余的量化系數(shù)為O。一旦產(chǎn)生該RLE數(shù)據(jù),則該RLE數(shù)據(jù)就被輸出至熵編碼器212。
      [0047]熵編碼器212接收該RLE數(shù)據(jù),并對其執(zhí)行熵編碼處理,藉此利用較短代碼編碼頻繁出現(xiàn)的RLE數(shù)據(jù),而利用較長代碼編碼不頻繁出現(xiàn)的RLE數(shù)據(jù)。一種類型的熵編碼被稱為霍夫曼編碼。一旦該RLE數(shù)據(jù)被熵編碼,那么熵編碼器212就輸出編碼數(shù)據(jù)作為壓縮數(shù)據(jù)流。如上述所表明的,該壓縮數(shù)據(jù)流在提供至解碼器106之前可存儲于壓縮數(shù)據(jù)存儲器113 中。[0048]圖2還顯示了時序控制單元220,該時序控制單元220通過一條或多條時序控制路徑222將時序(例如,時鐘等)以及可選擇性提供的其它控制信號提供至編碼器104、區(qū)塊量化電平內(nèi)存216、壓縮數(shù)據(jù)存儲器113以及區(qū)塊準備單元214??蛇x擇地,時序控制單元220為主機102的通用組件。由時序控制單元220提供的該時序以及其它控制信號(例如,時鐘脈沖、使能信號、重置信號等)能夠使編碼器104執(zhí)行其預期的功能以及在適當?shù)臅r間移動數(shù)據(jù)通過編碼器104。
      [0049]圖3為更詳細地顯示編碼器104的QLGQ單元204 (圖2)的方塊圖。QLGQ204包括輸入端302、初始量化單元304、量化驗證及量化電平產(chǎn)生(QVQG)單元306、輔助量化單元308、存儲至少一個默認(default)量化電平的默認量化電平內(nèi)存310、存儲量化數(shù)據(jù)的量化數(shù)據(jù)存儲器312、量化系數(shù)輸出314以及區(qū)塊量化電平輸出316。此外,QVQG單元306系被耦合以通過速度控制輸入120接受速度控制信號。在本實施例中,所述量化數(shù)據(jù)包括一個8X8的表的量化值,其中每個量化值用來量化該區(qū)塊中相應的DCT系數(shù)。另外在本發(fā)明的實施例中,該默認量化電平為每區(qū)塊的值1,其提供了如下面所述的特別優(yōu)點。
      [0050]耦合初始量化單元304,以通過輸入302接收區(qū)塊DCT系數(shù)、從量化數(shù)據(jù)存儲器312接收量化數(shù)據(jù)以及從默認量化電平內(nèi)存310接收默認量化電平。響應這些輸入,初始量化單元304根據(jù)該量化數(shù)據(jù)以及該默認量化電平量化該區(qū)塊變換系數(shù),以產(chǎn)生量化系數(shù)的試驗區(qū)塊。初始量化單元304根據(jù)下列公式量化該區(qū)塊中的每個DCT系數(shù)
      [0051 ] !ground ((DCTi) / (q^Defaul^Q-level)),
      [0052]其中Ti表示該試驗區(qū)塊中產(chǎn)生的量化系數(shù)的值,DCTi表示被量化的DCT系數(shù)的值, 表示用來量化相應DCT系數(shù)的量化值,Default_Q_level表示默認量化電平,以及round
      為進位函數(shù),該進位函數(shù)將一小數(shù)點值四舍五入成最接近的整數(shù)。當初始量化單元304結(jié)束量化該區(qū)塊DCT系數(shù)時,單元304將該量化系數(shù)的試驗區(qū)塊輸出至QVQG單元306。
      [0053]應該注意的是,初始量化單元304所使用的該量化數(shù)據(jù)可以周期性改變(例如,每幀一次、根據(jù)來自主機102的指令、根據(jù)圖像數(shù)據(jù)等等)。例如,量化數(shù)據(jù)存儲器312可包括多個根據(jù)情況而選擇使用的量化表,和/或,量化數(shù)據(jù)存儲器312中的該量化數(shù)據(jù)可以根據(jù)需要以不同的量化數(shù)據(jù)重新寫入。因此,改變量化過程中所使用的該量化數(shù)據(jù)在本發(fā)明的范圍內(nèi)。同樣地,周期性改變量化過程中所使用的該默認量化電平的值也在本發(fā)明的范圍內(nèi)。
      [0054]QVQG單元306從初始量化單元304接收該量化系數(shù)的試驗區(qū)塊、通過輸入120接收該速度控制信號以及從默認量化電平內(nèi)存310接收該默認量化電平。然后,QVQG單元306確定該試驗區(qū)塊是否至少具有預定量(k)的具有O值的量化系數(shù)。在一特定實施例中,QVQG單元306確定在該試驗區(qū)塊中的第k個最小量化系數(shù)。如果該試驗區(qū)塊中的第k個最小量化系數(shù)等于0,那么該默認量化電平足以確保數(shù)據(jù)將被充分壓縮以及解碼器106將在期望的速度下操作。在這種情況下,QVQG單元306檢索該默認量化電平,并且將其通過輸出316輸出至區(qū)塊量化電平內(nèi)存216,作為區(qū)塊-特定的量化電平。
      [0055]然而,如果該試驗區(qū)塊沒有包含k個具有O值的系數(shù),那么QVQG單元306為該區(qū)塊產(chǎn)生新的量化電平。繼續(xù)之前的例子,如果該試驗區(qū)塊中的第k個最小量化系數(shù)不等于0,那么QVQG模塊306為該試驗區(qū)塊確定一新的量化電平,該試驗區(qū)塊將產(chǎn)生至少k個具有O值的量化系數(shù)。例如,該試驗區(qū)塊的新的量化電平(New_Q-level)可如下計算得出:
      [0056]New_Q-level= (2*Tk) +1,
      [0057]其中Tk表示該試驗區(qū)塊中的第k個最小量化系數(shù)的值。一旦產(chǎn)生該新的量化電平,則QVQG模塊在輸出316輸出該新的量化電平,作為區(qū)塊-特定的量化電平。
      [0058]發(fā)明人已發(fā)現(xiàn),對于JPEG編解碼器,可利用上述之區(qū)塊-特定的量化電平產(chǎn)生過程以多位數(shù)據(jù)來表示量化電平。然而,可根據(jù)期望采用產(chǎn)生或表示該區(qū)塊-特定的量化電平的其它方法。
      [0059]QVQG單元306所使用之用來確定區(qū)塊的量化電平的k的值可由主機102通過在速度控制輸入120提供的信號來控制。例如,第一速度控制信號可設定k為32(例如,至少該區(qū)塊中的所述量化系數(shù)的一半(32/64)為0),而隨后的速度控制信號可設定k為43 (例如,至少該區(qū)塊中的所述量化系數(shù)的三分之二(43/64)為O)。因為k的值有很多種可能,因此該速度控制信號可為多位信號,該多位信號獨特地確認QVQG單元306所使用之不同的k值。并且,該速度控制輸入120允許數(shù)據(jù)壓縮量以及解碼器的速度是可動態(tài)調(diào)整的。
      [0060]控制預定數(shù)量k就控制了數(shù)據(jù)壓縮量以及該解碼器106的速度,因為數(shù)據(jù)壓縮量以及解碼器106的熵解碼部分與行程解碼部分的吞吐量與k值成比例。因此,當k值較小時(更少O系數(shù)),該量化系數(shù)區(qū)塊將具有更多非O值(更少數(shù)據(jù)壓縮),并且熵解碼過程與行程解碼過程將花費較長時間。相反,當k值較大時(更多O系數(shù)以及大量數(shù)據(jù)壓縮),該量化系數(shù)區(qū)塊將具有更少非O值,并且熵解碼過程與行程解碼過程將更短。因為熵解碼部分與行程解碼部分的吞吐量能夠可預見地增進,因此本發(fā)明還使平行解碼成為可能。
      [0061]隨著量化驗證與量化電平的產(chǎn)生,輔助量化單元308從QVQG單元306接收該試驗區(qū)塊與該區(qū)塊-特定的量化電平,并利用該區(qū)塊-特定的量化電平對該試驗區(qū)塊執(zhí)行第二次量化過程。輔助量化單元308如下式量化該試驗區(qū)塊中的每個系數(shù)
      [0062]Qi=Iround (Ti/Block_Q-level),
      [0063]其中Qi表示在所產(chǎn)生的量化系數(shù)區(qū)塊中的量化系數(shù)的值,Block_Q_level表示由QVQG單元306在區(qū)塊量化電平輸出端316輸出的區(qū)塊-特定的量化電平。輔助量化單元308對該試驗區(qū)塊中每個系數(shù)執(zhí)行輔助量化,并且在量化系數(shù)輸出端314輸出產(chǎn)生的量化系數(shù)區(qū)塊。
      [0064]在一可選實施例中,輔助量化單元308還可接收該默認量化電平,并將其與由QVQG單元306輸出的該區(qū)塊-特定的量化電平進行比較。在由QVQG單元306輸出的量化電平與該默認量化電平相同的情況下,然后輔助量化單元308可通過將該量化系數(shù)的試驗區(qū)塊直接輸出至“之”字型排序單元208而放棄輔助量化過程。這樣做將節(jié)省與該輔助量化過程相關(guān)聯(lián)的周期并加速編碼。作為另一種選擇,初始量化單元304與輔助量化單元308可組合成一個單個量化器,以促進初始量化單元304與輔助量化單元308之各自的功能。
      [0065]如上述所表明的,設定該默認量化電平的值為I提供了特別的優(yōu)點。例如,當產(chǎn)生新的量化電平時,默認量化電平I能夠使同樣的新的量化電平值既輸出至區(qū)塊量化電平內(nèi)存216,又輸出至該輔助量化過程308。然而,如果該默認量化電平大于1,且產(chǎn)生了新的量化電平,那么不同的值將被提供至輔助量化單元308與區(qū)塊量化電平內(nèi)存216。例如,由于該試驗區(qū)塊根據(jù)該默認量化電平被初始量化,因此輔助量化單元308將只需要新的量化電平值來完成該試驗區(qū)塊的量化。然而,默認量化電平與新的量化電平的乘積將在該解碼器106的去量化過程中需要,因此該乘積將在區(qū)塊量化電平輸出316輸出,以存儲到區(qū)塊量化電平內(nèi)存216中。因此,在該默認量化電平大于I的情況下,QVQG單元306可包括兩個輸出端:一個將新的量化電平提供至輔助量化單元308,另一個通過輸出316將默認量化電平與新的量化電平的乘積提供至區(qū)塊量化電平內(nèi)存216。因此,設定該默認量化電平為I簡化了 QLGQ單元204的操作,并且減小了系統(tǒng)復雜度。
      [0066]描述上述實施例與過程,從而給出了 QLGQ單元204操作的徹底理解。然而,在仍就保護QLGQ單元204的主要功能的同時,對QLGQ單元204的修改是可能的。那些主要功能包括(I)為每個數(shù)據(jù)區(qū)塊產(chǎn)生區(qū)塊-特定的量化電平,使得隨著量化,被量化的區(qū)塊將至少具有k個預定值的系數(shù),以及(2)根據(jù)該區(qū)塊-特定的量化電平來量化每個數(shù)據(jù)區(qū)塊。作為一個示例,其它的QLGQ單元204可首先利用默認量化電平以及量化數(shù)據(jù)將區(qū)塊DCT系數(shù)量化成試驗區(qū)塊,然后分析該試驗區(qū)塊。如果該試驗區(qū)塊沒有包含至少k個具有該預定值的系數(shù),那么將確定新的量化電平(例如,通過上文描述的過程或某個其它過程)。然后,該其它的QLGQ單元204可利用該新的量化電平以及該量化數(shù)據(jù)再量化該區(qū)塊DCT系數(shù),以產(chǎn)生最終的量化系數(shù)區(qū)塊。然后,該其它QLGQ單元204可將該默認量化電平或者該新的量化電平作為該區(qū)塊-特定的量化電平輸出。作為另一個示例,QLGQ單元204的不同模塊(例如,該初始量化單元、輔助量化單元以及該QVQG單元)可被分成分開的單元、可被組合等等。作為再另一個示例,QLGQ單元204可用于在任何采用量化的編碼器中量化任意區(qū)塊值,而不只是在量化變換系數(shù)的編碼器中。實際上,這些和對QLGQ單元204的其它修改都是可能的。
      [0067]如上面討論的,不管該量化電平是對應默認量化電平內(nèi)存310中的該默認量化電平還是對應不同的量化電平,QLGQ單元204都輸出被編碼的圖像數(shù)據(jù)之每個區(qū)塊的區(qū)塊-特定量化電平。雖然只輸出非默認量化電平到區(qū)塊量化電平內(nèi)存216將是可能的,但是本發(fā)明人已經(jīng)發(fā)現(xiàn)這樣做增進了復雜度。例如,如果該默認量化電平被用來編碼一個區(qū)塊,而不是被輸出至該解碼器106,那么編解碼器100將需要某些手段(例如,與一個區(qū)塊以及一個量化電平相關(guān)聯(lián)的唯一標識符等),使特定的區(qū)塊與解碼器106中的該區(qū)塊-特定的各個量化電平相關(guān)聯(lián)。
      [0068]利用區(qū)塊-特定的量化電平控制每量化系數(shù)區(qū)塊中O的數(shù)量提供了重要的優(yōu)點。首先,控制每區(qū)塊中O的數(shù)量就控制了該區(qū)塊(以及進而完整的圖像)所經(jīng)歷的數(shù)據(jù)壓縮量。因此,可以選擇該k值,以便確保圖像被充分壓縮至其能夠被存儲到一個具有預定大小的緩沖器(例如,幀緩沖器)。因而,壓縮數(shù)據(jù)存儲器113可以做的更小,這樣節(jié)省了電路空間以及成本。
      [0069]在解碼過程開始之前,控制每個區(qū)塊的數(shù)據(jù)壓縮量還將該編碼器所輸出的位速率維持在一個期望的范圍內(nèi)。因此,該解碼器106不會變得超負荷,圖像數(shù)據(jù)不會丟失,并且不必調(diào)整編碼過程以響應不充分的解碼器吞吐量。
      [0070]根據(jù)本發(fā)明的控制量化過程的另一個優(yōu)點是其允許編碼器104控制解碼器106的速度。因為該解碼器的速度與k成比例,所以編碼器104可通過調(diào)整k來動態(tài)增進或減少解碼器106的吞吐量。例如,編碼器104為了高吞吐量可增進k,以便在短時間內(nèi)產(chǎn)生許多縮略(thumbnail)圖像。相反地,當解碼圖像質(zhì)量更重要時,編碼器104為了低吞吐量可減小k。
      [0071]圖4A至第4D圖顯示了可由QLGQ單元204根據(jù)不同k值產(chǎn)生的量化系數(shù)的示例性區(qū)塊400A至400D。
      [0072]圖4A顯示對于k至少等于32的情況量化系數(shù)的示例性區(qū)塊400A。如此,區(qū)塊400A包含至少32個為O的系數(shù)以及至多32個為非O的系數(shù)(在圖4A中用“x”注記)。因此,區(qū)塊400A利用隨著量化而產(chǎn)生至少32個O的量化電平而產(chǎn)生。正如下面將要更詳細描述的,因為區(qū)塊400A中至多一半系數(shù)不為0,所以解碼器106提供改進的熵及行程解碼。因此,解碼器106的熵解碼部分及行程解碼部分將以大約是兩倍快于區(qū)塊400A中的每個量化系數(shù)都為非O時的速度解碼與區(qū)塊400A相關(guān)聯(lián)的數(shù)據(jù)。此外,該k的值導致大約是區(qū)塊400A中的每個量化系數(shù)都為非O時兩倍的數(shù)據(jù)壓縮。
      [0073]圖4B顯示對于k至少等于43的情況量化系數(shù)的示例性區(qū)塊400B。如此,區(qū)塊400B包含至少43個為O的系數(shù)以及至多21個為非O的系數(shù)(在圖4B中用“x”注記)。因此,區(qū)塊400B利用隨著量化而產(chǎn)生至少43個O的量化電平而產(chǎn)生。因為區(qū)塊400B中大約三分之一的值不為0,因此解碼器106的熵解碼部分與行程解碼部分將以大約是三倍快于區(qū)塊400B中的每個量化系數(shù)都為非O時的速度解碼與區(qū)塊400B相關(guān)聯(lián)的數(shù)據(jù)。因此,該k的值導致大約是區(qū)塊400B中的每個量化系數(shù)都為非O時三倍的數(shù)據(jù)壓縮。
      [0074]圖4C顯示對于k至少等于48的情況量化系數(shù)的示例性區(qū)塊400C。如此,區(qū)塊400C包含至少48個為O的系數(shù)以及至多16個非O系數(shù)(在圖4C中用“x”注記)。因此,區(qū)塊400C利用隨著量化而產(chǎn)生至少48個O的量化電平而產(chǎn)生。因為區(qū)塊400C中至多四分之一的值可具有非O值,因此解碼器106的熵解碼部分與行程解碼部分將以大約是四倍快于區(qū)塊400C中的每個量化系數(shù)都為非O時的速度解碼與區(qū)塊400C相關(guān)聯(lián)的數(shù)據(jù)。因為區(qū)塊400C具有是區(qū)塊400A —半數(shù)量的非O值,因此該熵解碼部分與行程解碼部分還將以大約是區(qū)塊400A兩倍快的速度解碼區(qū)塊400C。另外,該k的值導致大約是區(qū)塊400C中的每個量化系數(shù)都為非O時四倍的數(shù)據(jù)壓縮。
      [0075]圖4D顯示對于k至少等于52的情況量化系數(shù)的示例性區(qū)塊400D。如此,區(qū)塊400D包含至少52個O系數(shù)以及至多12個非O系數(shù)(在圖4D中表示為“xO至xll”)。因此,區(qū)塊400D利用隨著量化而產(chǎn)生至少52個O的量化電平而產(chǎn)生。因為區(qū)塊400D中大約五分之一的值可具有非O值,因此解碼器106的熵解碼部分與行程解碼部分將以大約是五倍快于區(qū)塊400D中的每個量化系數(shù)都為非O時的速度解碼與區(qū)塊400D相關(guān)聯(lián)的數(shù)據(jù)。另外,該k的值導致大約是區(qū)塊400D中的每個量化系數(shù)都為非O時五倍的數(shù)據(jù)壓縮。[0076]概括地說,圖4A至圖4D顯示了如何通過增進在量化過程中產(chǎn)生的O系數(shù)的數(shù)量,即,通過增進k的值,來提高該解碼器106的速度。圖4A至圖4D進一步說明了編碼器104的數(shù)據(jù)壓縮量與該k值成比例。雖然在圖4A至圖4D中說明了對于k的特定值,但是可以根據(jù)期望的數(shù)據(jù)壓縮量和/或解碼器速度來決定采用任何k值。例如,可以選擇產(chǎn)生大約
      1.5倍的數(shù)據(jù)壓縮與解碼器吞吐量的k值。
      [0077]雖然增進k的值具有提高解碼器106速度的優(yōu)點,但是增進k的值還具有越來越高的k值將逐漸降低解碼圖像質(zhì)量的缺點。正如本領域技術(shù)人員將理解的,量化是一個有損的數(shù)據(jù)壓縮過程。因此,由于更多的系數(shù)被量化為0,所以較高的k值將造成更多圖像數(shù)據(jù)丟失。由此,當選擇k值時,還應當考慮到期望的解碼圖像數(shù)據(jù)的質(zhì)量。
      [0078]如果一個應用需要高解碼圖像質(zhì)量與高解碼速度,那么可以在主機102中實現(xiàn)編解碼器100的多次迭代(iteration)。更進一步地,因為每個壓縮數(shù)據(jù)流將與具有η個解碼信道的解碼器106關(guān)聯(lián),因此在最小化其它被集成在主機102中的附加電路數(shù)量的同時,提高了吞吐量。
      [0079]現(xiàn)在,將用圖4D作為示例來更詳細地描述“之”字型排序、行程編碼以及熵編碼過程。特別是,當“之”字型排序單元208接收量化系數(shù)區(qū)塊時,“之”字型排序單元208以線性方式按照如圖4D箭頭所示沿著該區(qū)塊的對角線排列該量化系數(shù)區(qū)塊。在區(qū)塊400D的具體情況中,“之”字型排序單元208將輸出如下量化系數(shù)的序列:x0, xl, x2, O, x3, x4, 0, x5, x6,x7,x8,x9,0,0,0,xlO, 0,xll, 0,0,…0。
      [0080]然后,該量化系數(shù)的序列將被提供至行程編碼器210,并經(jīng)行程編碼。根據(jù)該特定實施例,行程編碼器210編碼該量化系數(shù),并且將如下行程編碼數(shù)據(jù)輸出至熵編碼器212:
      [0081](O, xO)
      [0082](O, xl)
      [0083](O, x2)
      [0084](I, x3)
      [0085](0,x4)
      [0086](I, x5)
      [0087](0,x6)
      [0088](0,x7)
      [0089](0,x8)
      [0090](0,x9)
      [0091](3, xlO)
      [0092](I, xll)
      [0093](E.0.B.)。
      [0094]每對RLE數(shù)據(jù)值包含第一值以及第二值,該第一值由先前的非O量化系數(shù)或者由對于該區(qū)塊系數(shù)的起點,定義O的行程,該第二值定義下一個非O量化系數(shù)。例如,由于在非O系數(shù)xO與Xl之間沒有O (按照“之”字型排序處理),因此在XO后面直到Xl以及包括xl的系數(shù)的RLE數(shù)據(jù)可以被定義為(0,xl)。同樣,由于在非O系數(shù)x9與xlO之間有三個0,因此在x9后面直到xlO以及包括xlO的量化系數(shù)的RLE數(shù)據(jù)可以被表示為(3,xlO)。該RLE數(shù)據(jù)的最后一個元素為區(qū)塊結(jié)束(End Of Block,E.0.B.)代碼,該區(qū)塊結(jié)束代碼用來表示該區(qū)塊中所有剩余量化系數(shù)均為O。
      [0095]由行程編碼器210輸出的該RLE數(shù)據(jù)被提供至熵編碼器212,在熵編碼器212該RLE數(shù)據(jù)經(jīng)熵編碼。如上述解釋的,通過將不同代碼分配給不同數(shù)據(jù)值,來執(zhí)行熵編碼。在本實施例中,熵編碼器212接收每對RLE數(shù)據(jù),并且(例如,在一個查找表中)查找相關(guān)聯(lián)的熵代碼。然后,熵編碼器212在壓縮數(shù)據(jù)流中輸出該熵代碼,以作為熵編碼數(shù)據(jù)。
      [0096]由于k增進將使行程對以及熵代碼的數(shù)量減小,因此控制量化過程改善了由編碼器輸出的壓縮數(shù)據(jù)中的數(shù)據(jù)壓縮。例如,圖4A至圖4D顯示由于k增進,需要少量行程對來編碼量化系數(shù)區(qū)塊。相應地,少量行程對意味著需要少量熵代碼來表示與每個區(qū)塊相關(guān)聯(lián)的行程數(shù)據(jù)。因此,本發(fā)明相對于現(xiàn)有技術(shù)而言改善了數(shù)據(jù)壓縮。另外,本發(fā)明根據(jù)k值來控制數(shù)據(jù)壓縮量。
      [0097]最后,應當注意的是,可使用不同的“之”字型排序、行程編碼以及熵編碼的方法來代替上面提供的具體示例。
      [0098]圖5為關(guān)于JPEG編碼過程中流經(jīng)編碼器104的每個數(shù)據(jù)區(qū)塊的數(shù)據(jù)流程圖500。如圖所示,由編碼器104接收一個與多個像素有關(guān)的8X8圖像數(shù)據(jù)區(qū)塊。然后,對該圖像數(shù)據(jù)區(qū)塊執(zhí)行DCT,以產(chǎn)生一個8X8的DCT系數(shù)區(qū)塊。然后,該區(qū)塊DCT系數(shù)經(jīng)過初始量化過程,所述初始量化過程利用默認量化電平(例如,I值)以及量化數(shù)據(jù)表將該區(qū)塊DCT系數(shù)量化成量化系數(shù)試驗區(qū)塊。然后,該量化系數(shù)試驗區(qū)塊經(jīng)過量化電平產(chǎn)生過程,以定義一個具體到該區(qū)塊的量化電平,使得隨著量化預定數(shù)量(k)的量化系數(shù)將有一預定值(例如,O)。然后,該量化系數(shù)測試區(qū)塊以及該區(qū)塊的量化電平轉(zhuǎn)至輔助量化過程,以產(chǎn)生一區(qū)塊至少具有k個O的量化系數(shù)。然后,該量化系數(shù)區(qū)塊經(jīng)過“之”字型排序過程,產(chǎn)生一個依序的數(shù)據(jù)流。接著,行程編碼該依序的數(shù)據(jù)流,以產(chǎn)生RLE數(shù)據(jù),再熵編碼該RLE數(shù)據(jù),以產(chǎn)生壓縮數(shù)據(jù)流。然后,該壓縮數(shù)據(jù)流被輸出至內(nèi)存和/或該解碼器106。
      [0099]如圖5所示,被壓縮的編碼數(shù)據(jù)流包括標頭(header)信息,該標頭信息在所述編碼過程中被嵌入到該數(shù)據(jù)流中。該標頭信息除了包含所述編碼過程中使用的查找表以外,還包含所述量化過程中使用的該量化數(shù)據(jù)。另外,可定期以新的信息來更新該壓縮數(shù)據(jù)流中的該標頭信息,例如,每巾貞一次。
      [0100]圖6為更詳細地顯示編解碼器100的解碼器106的方塊圖。解碼器106進一步包括熵解碼器602、行程解碼器604以及多個平行操作的解碼信道606 (I)至606 (η),每個解碼信道連接至輸出116 (I)至116 (η)中各自的輸出。每個解碼信道606 (I)至606 (η)包括各自的逆“之”字型排序單元608 (I)至608 (η)、去量化器610 (I)至610 (η)以及逆DCT單元612 (I)至612 (η)。編解碼器100還包括數(shù)據(jù)重組單元614,該數(shù)據(jù)重組單元可選擇性地與解碼器106整合在一起。
      [0101]當被編碼的JPEG圖像數(shù)據(jù)需要被解碼時,該被編碼的JPEG圖像數(shù)據(jù)作為一個與一串圖像數(shù)據(jù)區(qū)塊相關(guān)聯(lián)的熵編碼比特流而被提供至該解碼器106的輸入114。熵解碼器602對該熵編碼數(shù)據(jù)執(zhí)行逆熵處理,以產(chǎn)生與該串圖像數(shù)據(jù)區(qū)塊相關(guān)聯(lián)的RLE數(shù)據(jù)。[0102]在所述編碼過程中使用的量化控制極大地提高了熵解碼器602的速度,并且消除或者至少極大地減小了在熵解碼器602處的瓶頸。如上述表明的,需要用來表示數(shù)據(jù)區(qū)塊的熵代碼的數(shù)量與k成反比。因此,由于k增進,熵解碼器602將極少執(zhí)行查表。換句話說,熵解碼器602的吞吐量與k成比例,因此由于k增進,吞吐量也增進。
      [0103]參考圖4A,由于區(qū)塊400A包括至多32個非O量化系數(shù)(k≥32),所以將至多有32個數(shù)據(jù)行程對(除了該區(qū)塊結(jié)束代碼之外)。因此,熵解碼器602能夠以大約是其解碼一具有64個非O系數(shù)的區(qū)塊的量化系數(shù)時兩倍的速度解碼區(qū)塊400A。因為同樣的理由,熵解碼器602能夠以大約是解碼一具有64個非O系數(shù)的區(qū)塊的量化系數(shù)時三倍的速度解碼區(qū)塊400B (k>43)。同樣,熵解碼器602能夠以大約是解碼一具有64個非O系數(shù)的區(qū)塊的量化系數(shù)時四倍的速度并且大約是解碼區(qū)塊400A時兩倍的速度解碼區(qū)塊400C (k > 48)。熵解碼器602還能夠以大約是解碼一具有64個非O系數(shù)的區(qū)塊的量化系數(shù)時五倍的速度解碼區(qū)塊400D (k≥52)。
      [0104]由于可通過量化控制來提高熵解碼器602的吞吐量,因此解碼器106能夠利用多個解碼信道606 (I)至606 (η)平行解碼數(shù)據(jù)。另外,由于量化過程控制RLE數(shù)據(jù)量以及產(chǎn)生的熵編碼數(shù)據(jù)量,因此對熵解碼器602的位速率還可由k值來控制。因此,熵解碼器602沒有超限運轉(zhuǎn),數(shù)據(jù)沒有丟失,且熵解碼器602沒有變成瓶頸。
      [0105]由熵解碼器602輸出的該RLE數(shù)據(jù)接下來被提供至行程解碼器604,行程解碼器604連續(xù)解碼該RLE數(shù)據(jù),以產(chǎn)生多個量化系數(shù)區(qū)塊,其中每量化系數(shù)區(qū)塊與圖像數(shù)據(jù)區(qū)塊相關(guān)聯(lián)。如上述表明的,行程解碼器604的速度與和具有O值的區(qū)塊相關(guān)聯(lián)的量化系數(shù)的數(shù)量成比例。隨著行程解碼,行程解碼器604將每量化系數(shù)區(qū)塊輸出至解碼器信道606(1)至606 (η)的其中之一,以便進一步平行解碼。因此,行程解碼器604是將RLE數(shù)據(jù)連續(xù)解碼成連續(xù)的系數(shù)區(qū)塊的工具。
      [0106]行程解碼器604將連續(xù)的量化系數(shù)區(qū)塊按順序輸出至它們各自的解碼信道606(I)至606 (η)。例如,行程解碼器604將第一量化系數(shù)區(qū)塊輸出至解碼信道606 (1),然后將第二量化系數(shù)區(qū)塊輸出至解碼信道606 (2),…將第η量化系數(shù)區(qū)塊輸出至解碼信道606 (η)。然而,行程解碼器604的其它輸出方法是可能的。例如,可隨機使用每個解碼信道606 (I)至606 (η)。作為另一個示例,如果解碼器106不需要所有解碼信道606 (I)至606 (η)在一期望的速度下操作,那么行程解碼器604可以只使用解碼信道606 (I)至606(η)中的某些解碼信道,而不使用其它的解碼信道。
      [0107]正如將從以下討論中顯而易見的,解碼信道606 (I)至606 (η)提供用于平行解碼多個量化系數(shù)區(qū)塊的工具。解碼信道606 (I)至606 (η)的操作如下。
      [0108]一旦多個量化系數(shù)被提供至解碼信道606 (I)至606 (η),那么相關(guān)聯(lián)的逆“之”字型排序單元608 (I)至608 (η)就對該數(shù)據(jù)執(zhí)行逆“之”字型排序處理,以重新產(chǎn)生來自編碼過程的該8X8量化系數(shù)區(qū)塊。然后,該區(qū)塊轉(zhuǎn)至相關(guān)聯(lián)的去量化器610 (I)至610 (η)。
      [0109]去量化器610 (I)至610 (η)逆量化該量化系數(shù)區(qū)塊,以產(chǎn)生區(qū)塊DCT系數(shù)。在本實施例中,去量化器610 (I)至610 (η)通過將量化系數(shù)乘以相關(guān)聯(lián)量化數(shù)據(jù)與為區(qū)塊-特定定義的量化電平的乘積,來逆量化每個量化系數(shù)。正如上述表明的,該量化數(shù)據(jù)嵌入到壓縮數(shù)據(jù)流的標頭中。因此,去量化器610 (I)至610 (η)可從該標頭中獲得該量化數(shù)據(jù)。去量化器610 (I)至610 (η)還通過從區(qū)塊量化電平內(nèi)存216中讀取下一個值來獲得該區(qū)塊-特定的量化電平。由于行程解碼器604以編碼該區(qū)塊的順序解碼與圖像數(shù)據(jù)區(qū)塊相關(guān)聯(lián)的RLE數(shù)據(jù),并將該數(shù)據(jù)順序地提供至解碼信道606 (I)至606 (n),因此從區(qū)塊量化電平內(nèi)存216檢索的區(qū)塊量化電平有利地與經(jīng)去量化器610 (I)至610 (η)逆量化的該區(qū)塊同步。
      [0110]逆量化之后,該區(qū)塊DCT系數(shù)被提供至各個逆DCT單元612 (I)至612 (η)。在那里,該區(qū)塊經(jīng)過逆DCT處理,產(chǎn)生解碼圖像數(shù)據(jù)區(qū)塊,該解碼圖像數(shù)據(jù)區(qū)塊從該解碼器通過各自的輸出端116 (I)至116 (η)輸出。因為在編碼器104中進行的量化過程是有損失的,所以該解碼圖像數(shù)據(jù)區(qū)塊不是輸入到編碼器106的原始圖像數(shù)據(jù)區(qū)塊的準確再生。如上述表明的,解碼圖像數(shù)據(jù)的質(zhì)量將取決于在編碼過程中使用的k值。
      [0111]可選擇地,在輸出端116 (I)至116 (η)提供的該解碼圖像數(shù)據(jù)區(qū)塊可由數(shù)據(jù)重組單元614進行重組(例如,重組成圖像)。因為行程解碼器604將多個系數(shù)以連續(xù)的順序提供至解碼信道606 (I)至606 (η),所以數(shù)據(jù)重組單元614以同樣的順序在輸出端116 (I)至116 (η)多路分解(de-multiplex)該解碼圖像數(shù)據(jù)區(qū)塊。此外,數(shù)據(jù)重組單元614還可將來自一個色彩空間(例如YUV、YCbCr等)的解碼圖像數(shù)據(jù)轉(zhuǎn)換到另一個色彩空間(例如,RGB 等)。
      [0112]速度控制輸入120作為一個輸入可選擇性地設置于行程解碼器604與解碼信道606 (I)至606 (η)的其中之一個或兩個,以促進解碼器106的其它功能。特別是,在速度控制輸入120的信號可用來去能一個或多個解碼信道606 (I)至606 (η),例如,達到節(jié)約電能。如上述表明的,由于k增進使行程解碼器604提高了其解碼速度,因此操作解碼信道606 (I)至606 (η)的數(shù)量也將隨著k的增進而增進。由于在輸入120的速度控制信號可與k值相關(guān)聯(lián),因此該速度控制信號還可定義應當在一個給定時序間操作之解碼信道606
      (I)至606 (η)的數(shù)量,以防止解碼器106中的瓶頸。通常,應該利用足夠多的解碼器信道606 (I)至606 (η),以便使行程解碼器604不必不合理地長時間等待將每量化系數(shù)區(qū)塊輸出至下一個解碼器信道606 (I)至606 (η)。該速度控制信號還可提示行程解碼器604的信道606 (I)至606 (η)當前被去能。
      [0113]圖6還顯示時序控制單元220通過一條或多條時序控制路徑222提供時序(例如,時鐘等)以及選擇性地提供其它控制信號到第6圖的組件。像編碼器104 —樣,由時序控制單元220提供的信號使解碼器106能夠執(zhí)行其預期的功能以及在適當?shù)臅r間移動通過解碼器106的數(shù)據(jù)??蛇x擇地,例如,如果解碼器106與編碼器104不在同一個主機中,那么解碼器106可包括其自身的時序與控制系統(tǒng)。
      [0114]解碼器106相對于現(xiàn)有技術(shù)而言提供了重要的優(yōu)點。特別是,解碼器106能夠接收來自單個編碼器的壓縮數(shù)據(jù)流以及利用多個平行操作的解碼信道606 (I)至606 (η)來解碼該比特流。通過更快速熵解碼器602以及更快速行程解碼器604來促進平行操作解碼信道606 (I)至606 (η),該更快速熵解碼器602以及更快速行程解碼器604能夠提供兩個或以上具有充足數(shù)據(jù)量的解碼信道606 (I)至606 (η)。因此,解碼器106相對于現(xiàn)有技術(shù)提高了吞吐量,這在HD媒體應用中特別重要。而且,由于只有解碼信道606 (I)至606(η)以集成電路復制,因此解碼器106需要這樣做最小化其它電路的數(shù)量,同時相對于現(xiàn)有技術(shù)而言提高了數(shù)據(jù)吞吐量。
      [0115]圖7為更詳細地顯示解碼器106的行程解碼器604的方塊圖。在所顯示的實施例中,行程解碼器604包括控制單元702、系數(shù)緩沖器704、指針(pointer)706以及輸出信道管理器708。行程解碼器604還包括輸入710,接收來自熵解碼器602的RLE數(shù)據(jù),以及多個輸出712 (I)至712 (n),每個輸出用來將系數(shù)輸出至各自的解碼信道606 (I)至606(η)。
      [0116]控制單元702控制及協(xié)調(diào)行程解碼器604的全部解碼以及輸入/輸出(I/O)??刂茊卧?02通過輸入710接收來自熵解碼器602的RLE數(shù)據(jù),并執(zhí)行各種功能。特別是,控制單元702將由該RLE數(shù)據(jù)定義的非O量化系數(shù)通過系數(shù)路徑714存儲到系數(shù)緩沖器704。通過將在指針控制路徑716上的信號置為有效(assert),控制單元702還根據(jù)該RLE數(shù)據(jù)對中的行程改變由指針706指向的位置。此外,控制單元702產(chǎn)生重置信號并通過重置路徑718輸出重置信號,重置路徑718將該重置信號提供至系數(shù)緩沖器704、指針706以及輸出信道管理器708??刂茊卧?02還通過將在輸出控制路徑720上的輸出使能信號置為有效來協(xié)調(diào)輸出712 (I)至712 (η)的數(shù)據(jù)輸出。當控制單元702知道與一組數(shù)據(jù)相關(guān)聯(lián)的RLE數(shù)據(jù)已經(jīng)結(jié)束解碼時,例如當控制單元702在該RLE數(shù)據(jù)流中遇到一個區(qū)塊結(jié)束代碼時,控制單元702將產(chǎn)生輸出使能信號。每當輸出信道管理器708結(jié)束從系數(shù)緩沖器704向解碼信道606 (I)至606 (η)的其中之一輸出多個系數(shù)時,控制單元702還通過路徑722接收輸出完成信號。
      [0117]量化系數(shù)緩沖器704包括大量可連續(xù)存取的緩沖位置,其數(shù)量等于數(shù)據(jù)區(qū)塊中系數(shù)的數(shù)量。對于JPEG而言,因為有64個與每個圖像數(shù)據(jù)區(qū)塊相關(guān)聯(lián)的量化系數(shù),所以系數(shù)緩沖器704包括64個存儲位置(圖8Β)。響應重置路徑718上的重置信號,系數(shù)緩沖器704將其每個存儲位置重置成預定值O。然后,當系數(shù)緩沖器704在系數(shù)路徑714上接收非O系數(shù)時,系數(shù)緩沖器704將每個非O系數(shù)存儲到由指針706指示的該存儲位置。當系數(shù)緩沖器704在輸出控制路徑720上接收來自控制單元702的輸出使能信號時,系數(shù)緩沖器704按存儲位置的順序連續(xù)地將其完整內(nèi)容輸出至輸出信道管理器708。
      [0118]指針706被操作以選擇性地指向系數(shù)緩沖器704中該存儲位置中的任何一個。重置路徑718接收到重置信號,指針706就重置其自身指向系數(shù)緩沖器704中的第一存儲位置?;谥羔樋刂坡窂?16上的來自控制單元702的控制信號,指針706移動,以便指向系數(shù)緩沖器704中的一個新的存儲位置。在指針控制路徑716上由控制單元702提供的該控制信號可為序列的增量信號,該增量信號致使指針706移動多個存儲位置,移動的存儲位置的數(shù)量等于其接收的增量信號的數(shù)量?;蛘?,控制單元702可提供跳躍(jump)信號到指示關(guān)于指針706的多個連續(xù)存儲位置的指針706,以便在系數(shù)緩沖器704中“跳”過。實際上,控制單元702可以不同方式移動指針706。
      [0119]輸出信道管理器708選擇性地將系數(shù)緩沖器704的內(nèi)容通過各自的輸出712 (I)至712 (η)提供至解碼信道606 (I)至606 (η)的其中之一。響應在輸出控制路徑720上的來自控制單元702的輸出使能信號,輸出信道管理器708連續(xù)地將每個系數(shù)從系數(shù)緩沖器704輸出至解碼信道606 (I)至606 (η)的其中之一。當最后一個量化系數(shù)已經(jīng)被輸出時,輸出信道管理器708通過路徑722將一信號提供至控制單元702,以指示輸出完成。響應重置路徑718上的重置信號,輸出信道管理器選擇接下來的輸出712 (I)至712 (η),該接下來的輸出將用來輸出被行程解碼器604解碼的下一組系數(shù)。在本實施例中,輸出信道管理器708以特定的順序(例如,按次序的順序)選擇輸出712 (I)至712 (η)。然而,如上述表明的,輸出信道管理器708可選擇性地響應速度控制信號120,以便跳過輸出712 (I)至712 (η)的某幾個。
      [0120]在本實施例中,在與區(qū)塊相關(guān)聯(lián)的RLE數(shù)據(jù)結(jié)束行程解碼以及系數(shù)緩沖器704中的系數(shù)已經(jīng)通過輸出712 (I)至712 (η)被輸出之后,控制單元702產(chǎn)生重置信號。在當前的實施例中,當系數(shù)緩沖器704中的所有系數(shù)都已被讀出時,輸出信道管理器708通過路徑722指示控制單元702。此后,控制單元702在知道其是安全的重置路徑718上產(chǎn)生重置信號,以便重置系數(shù)緩沖器704。
      [0121]現(xiàn)在根據(jù)圖8Α以及圖SB來描述行程解碼器604的操作,圖8Α以及第SB圖使用了與作為一個示例的圖4D的區(qū)塊400D相關(guān)聯(lián)的RLE數(shù)據(jù)。
      [0122]圖8Α顯示包含復數(shù)行802 (O)至802 (12)以及復數(shù)列804、806、808及810的表800。每行808 (O)至802 (12)將包含在列804中的RLE數(shù)據(jù)的各個部分與其它列806、808及810中的信息關(guān)聯(lián)起來。列804限定第4D圖的區(qū)塊400D的RLE數(shù)據(jù),該RLE數(shù)據(jù)包含行802 (O)至802 (11)中的對值(pair value)以及行802 (12)中的區(qū)塊結(jié)束(E.0.B.)代碼。
      [0123]列806中的每個值指示根據(jù)相應行802 (O)至802 (11)中的RLE數(shù)據(jù)中的游程信息的指針706增進了多少個存儲位置。一個指針增進不適用于區(qū)塊結(jié)束(E.0.B.)代碼,因為其指示所有剩余系數(shù)均為O以及系數(shù)緩沖器704的所有存儲位置均已被預加載O。正如從該表中顯而易見的,與彳丁 802 (O)至802 (11)相關(guān)聯(lián)的列806中的指針增進是基于定義在相應數(shù)值對中的行程。在所示的實施例中,通過多個存儲位置,增進該指針706,該多個存儲位置的數(shù)量等于I加上定義在除了第一個RLE數(shù)值對以外的其余相應RLE數(shù)值對(SP,行802 (I)至802 (11))中的行程。對于行802 (O)中的第一個RLE數(shù)值對,該指針通過數(shù)量等于定義在該第一個RLE對中的行程的多個存儲位置來增進該指針。
      [0124]列808指示系數(shù)緩沖器704中的存儲位置,每當指針706通過列806中的相關(guān)聯(lián)數(shù)量增進時,這些存儲位置就被指針706漸進地指向。換句話說,顯示在行802 (I)至802
      (11)中的非O系數(shù)xO至xll將被寫入列808中指示的系數(shù)緩沖器704中的存儲位置。
      [0125]最終,列810中的每個值指示一個被寫入相關(guān)聯(lián)行802的列808中所指示的存儲位置的非O系數(shù)。列810中的該非O系數(shù)從列804中的RLE數(shù)據(jù)獲得。需注意的是,在列808與810中沒有適用于行802 (12)中的區(qū)塊結(jié)束代碼的信息,因為沒有更多的非O系數(shù),并且該指針706不需要進一步移動直到由控制單元702產(chǎn)生重置。
      [0126]圖8B更詳細地顯示系數(shù)緩沖器704包含64個連續(xù)存取的存儲位置812 (O)至812 (63)。圖8B還通過圖表解釋列804中的該RLE數(shù)據(jù)如何被解碼成區(qū)塊400D的多個量化系數(shù)。
      [0127]首先,響應由控制單元702在重置路徑718上將的重置信號置為有效,O被存儲到所有存儲位置812 (O)至812 (63)。另外,指針706被重置指向系數(shù)緩沖器704中的第一存儲位置812 (O)。此后,由于在xO之前沒有O (該對中的第一個值是“O”)以及指針706正指向存儲位置812 (0),因此控制單元702接收第一 RLE數(shù)據(jù)對(0,xO),并將xO通過系數(shù)路徑714寫入存儲位置812 (O)。接下來,控制單元702依序處理列804中的行802 (I)至802 (11)中所示的RLE對值。首先,行802 (I)中的RLE數(shù)據(jù)指示在xO與xl之間沒有O (該對中的第一個值是“O”)以及xl (該對中的第二個值)為下一個非O量化系數(shù)。因此,控制單元702通過將指針控制路徑716上的控制信號置為有效使I加上行程(在這種情況下的一個位置的增進),來增進指針706。此后,指針706指向存儲位置812 (1),并且控制單元702通過系數(shù)路徑714將xl寫入存儲位置812 (I)。接下來,控制單元702處理行802 (2)中顯示的RLE對值。行802 (2)中的RLE數(shù)據(jù)指示在xl與x2之間沒有O (該對中的第一個值是“O”)以及x2 (該對中的第二個值)為下一個非O量化系數(shù)。因此,控制單元702通過將指針控制路徑716上的控制信號置為有效使I加上行程(在這種情況下的一個位置的增進),來增進指針706。此后,指針706指向存儲位置812(2),并且控制單元702通過系數(shù)路徑714將x2寫入存儲位置812 (2)。對表800的行802 (3)至802 (9)中剩余的對值類似地繼續(xù)進行該過程。
      [0128]當控制單元702遇到行802 (10)中的RLE數(shù)據(jù)時,該對值指示在x9與xlO之間有三個O (該對中的第一個值是“3”)以及xlO (該對中的第二個值)為下一個非O系數(shù)。因此,控制單元702通過指針控制路徑716上的控制信號置為有效使I加上行程(在這種情況下的四個位置的增進),來增進指針706。此后,指針706指向存儲位置812 (15),并且控制單元702通過系數(shù)路徑714將xlO寫入存儲位置812 (15)。接下來,行802 (11)中的RLE數(shù)據(jù)指示在xlO與xll之間有一個O (該對中的第一個值是“I”)以及xll (該對中的第二個值)為下一個非O系數(shù)。因此,控制單元702通過將指針控制路徑716上的控制信號置為有效使I加上行程(在這種情況下的兩個位置的增進),來增進指針706。此后,指針706指向存儲位置812 (17),并且控制單元702通過系數(shù)路徑714將xll寫入存儲位置812 (17)。
      [0129]在接收行802 (11)中的RLE數(shù)據(jù)之后,控制單元702接收區(qū)塊結(jié)束代碼,該區(qū)塊結(jié)束代碼指示與圖像數(shù)據(jù)的當前區(qū)塊相關(guān)聯(lián)的所有剩余量化系數(shù)具有O值。當控制單元702達到這個代碼時,其已經(jīng)結(jié)束將RLE數(shù)據(jù)解碼成多個與圖像數(shù)據(jù)區(qū)塊相關(guān)聯(lián)的量化系數(shù)。控制單元702然后可以繼續(xù)進行,致使系數(shù)緩沖器704中的64個系數(shù)被輸出至輸出信道管理器708,例如通過將輸出控制路徑720上的輸出使能信號置為有效。
      [0130]在解碼與每個圖像數(shù)據(jù)區(qū)塊相關(guān)聯(lián)的RLE數(shù)據(jù)之前把所有O加載到該系數(shù)緩沖器704提供特定的優(yōu)點。具體地,因為所有具有O值的量化系數(shù)都被預加載,所以行程解碼器604不需要花費解碼這些系數(shù)的時間及資源。反而,恰恰相反,行程解碼器604只利用時間和資源解碼與非O系數(shù)相關(guān)聯(lián)的RLE數(shù)據(jù)。正如表800的列804中表明的,區(qū)塊400D只包括12個非O系數(shù),這意味著行程解碼器604能夠以大約是其必須分別解碼區(qū)塊400D中的64個系數(shù)的每一個時五倍的速度解碼區(qū)塊400D。換句話說,行程解碼器604具有五倍現(xiàn)有技術(shù)之行程解碼器的吞吐量。解碼信道606 (I)至606 (η)通過平行完成對數(shù)據(jù)區(qū)塊的解碼處理而取得了行程解碼器604的這種提高的速度的優(yōu)點。
      [0131]更進一步地,因為熵解碼器602的吞吐量與行程解碼器604的吞吐量都與k值成比例,所以兩個解碼器602與604的吞吐量隨另一個變化,這還防止它們之間的瓶頸。此夕卜,解碼器106可包括足夠多的解碼信道606 (I)至606 (n),以便取得這種提高的吞吐量的優(yōu)點以及防止瓶頸。在一非限制實施例中,解碼信道606 (I)至606 (η)的數(shù)量可由下式來確定:
      [0132]η > INT
      [0133]其中Q表示每個數(shù)據(jù)區(qū)塊中的系數(shù)數(shù)量,INT是整數(shù)函數(shù)。[0134]重要的是還應當注意,雖然已經(jīng)根據(jù)JPEG編解碼器描述了本發(fā)明,但是行程解碼器604還將提供采用行程解碼的任何解碼器中的重要優(yōu)點。因為行程解碼器604通過首先將該預定值載入到緩沖器的所有存儲位置中來同時解碼每個具有預定值的系數(shù)(并非必須是量化系數(shù)),所以行程解碼器604提高RLE數(shù)據(jù)的解碼速度。結(jié)果,只有具有與該預定值不同的值的系數(shù)需要被分別解碼并存儲到該緩沖器中。因此,行程解碼器604相對于現(xiàn)有技術(shù)的行程解碼器而言,特別是相對于分別解碼每個系數(shù)的解碼器而言,提高了行程解碼性能。
      [0135]由于這些相同的原因,重要的是還應當注意,輸出信道管理器708 (圖7)為可選組件。即使在只具有一個輸出712的行程解碼器604中,行程解碼器604因為上述原因仍然會加速行程解碼過程。實際上,對于任何k值以及即使在缺少多個平行解碼信道606 (I)至606 (η)的情況下,行程解碼器604都提供性能優(yōu)點。
      [0136]圖9為計算機系統(tǒng)900的方塊圖,該圖顯示了以例如電子可讀媒體這樣的軟件實施的本發(fā)明的編碼器和/或解碼器。計算機系統(tǒng)900包括一個或多個處理單元(CPU)902、非易失性內(nèi)存904、使用者輸入/輸出控制器906、網(wǎng)絡接口 908以及工作內(nèi)存910,上述組件都通過系統(tǒng)總線912互通。CPU902執(zhí)行包含在工作內(nèi)存910中的數(shù)據(jù)和代碼,以便使計算機系統(tǒng)900進行其預期的功能(例如,圖像處理、視頻回放等)。非易失性內(nèi)存904 (例如,只讀存儲器、一個或多個硬盤驅(qū)動、閃存等)提供數(shù)據(jù)與代碼(例如,啟動代碼、程序、壓縮圖像文件等)的存儲,即使當計算機系統(tǒng)900斷電,上述數(shù)據(jù)與代碼也被保留下來。使用者輸入/輸出控制器906管理對使用者接口裝置(未顯示)的連接,該使用者接口裝置例如是鍵盤、鼠標、顯示器、打印機、照相機以及其它有助于計算機系統(tǒng)900與使用者之間通訊的裝置。網(wǎng)絡接口 908 (例如,以太網(wǎng)適配卡)在互聯(lián)網(wǎng)(例如,因特網(wǎng))上發(fā)送數(shù)據(jù)封包以及從互聯(lián)網(wǎng)接收數(shù)據(jù)封包,以便使用者可通過互聯(lián)網(wǎng)發(fā)送與接收數(shù)據(jù)(例如,圖像數(shù)據(jù))。系統(tǒng)總線912有助于計算機系統(tǒng)900的各種組件之間的互通。
      [0137]工作內(nèi)存910 (例如,隨機存取內(nèi)存)為計算機系統(tǒng)900提供動態(tài)存儲,且工作內(nèi)存910包括可執(zhí)行代碼(例如,操作系統(tǒng)914等),該可執(zhí)行代碼在系統(tǒng)啟動時被加載到工作內(nèi)存910中。操作系統(tǒng)914有助于加載到工作內(nèi)存910中的其它所有模塊的控制與執(zhí)行。工作內(nèi)存910還包括媒體編程916 (例如,圖像瀏覽器、電影播放器等),該媒體編程916利用媒體壓縮(例如,JPEG、MPEG等)來編碼和/或解碼媒體數(shù)據(jù)。編碼器程序918代表執(zhí)行本文之前描述的編碼器104的任何或者所有功能的程序。編碼器程序918利用量化電平緩沖器920來存儲在編碼過程中產(chǎn)生的區(qū)塊-特定的量化電平,該量化電平緩沖器920可像FIFO—樣操作。由編碼器程序918產(chǎn)生的壓縮數(shù)據(jù)可暫時存儲在工作內(nèi)存910中,或者可長期存儲在非易失性內(nèi)存904中。可選擇地,存儲在緩沖器920中的該量化電平還可以作為壓縮數(shù)據(jù)文件的一部分或者作為單獨的檔存儲在非易失性內(nèi)存904中。工作內(nèi)存910還可包括解碼器程序922,該解碼器程序922可以執(zhí)行本文描述的解碼器106的任何以及所有功能。工作內(nèi)存910還包括量化系數(shù)緩沖器924,該量化系數(shù)緩沖器924提供第7圖的系數(shù)緩沖器704的功能。
      [0138]利用本領域技術(shù)人員熟知的方法,前述的每個程序及緩沖器都在工作內(nèi)存910中被初始化和/或從非易失性內(nèi)存904加載到工作內(nèi)存910中??蛇x擇地,前述的程序及緩沖器可以從可替代的大規(guī)模數(shù)據(jù)存儲裝置加載到工作內(nèi)存910中,該大規(guī)模數(shù)據(jù)存儲裝置包括但不限于⑶-ROM、DVD-ROM、閃存盤等。此外,上述程序的一些或者全部可以根據(jù)需要加載到工作內(nèi)存910中。例如,可在不加載編碼器程序918的情況下(例如,對于存儲圖像的回放等)執(zhí)行解碼器程序922。同樣,可在不執(zhí)行解碼器程序的情況下(例如,對于圖像的存儲)執(zhí)行編碼器程序918。
      [0139]現(xiàn)在參考圖10至圖13來描述本發(fā)明的方法。為了解釋清楚的目的,參考之前描述的實施例的特定組件來描述這些方法,這些特定組件實現(xiàn)特定功能。然而,應該注意的是,不管是在本文中明確描述的其它組件還是根據(jù)本公開而創(chuàng)造的其它組件都可以被在不脫離本發(fā)明范圍的條件下引用的那些組件替代。因此,應該理解的是,本發(fā)明的方法并非限制在實現(xiàn)任意特定功能的任意特定組件。進一步地,本發(fā)明方法中的一些步驟不必按所示的順序出現(xiàn)。例如,在某些情況中,兩個或以上方法步驟可同時出現(xiàn)。特別是根據(jù)本文之前提供的本發(fā)明的描述,這些和本文中描述的方法的其它變化將非常顯而易見,并且被認為是在本發(fā)明的全部范圍內(nèi)。
      [0140]圖10為概括根據(jù)本發(fā)明之編碼數(shù)據(jù)的方法1000的流程圖。在第一步驟1002中,接收區(qū)塊值(例如,與多個圖像像素相關(guān)聯(lián)的區(qū)塊變換系數(shù))。在第二步驟1004中,為該區(qū)塊值定義一個區(qū)塊-特定的量化電平(“Q-level”)。該量化電平被定義成使得根據(jù)該區(qū)塊-特定的量化電平對該區(qū)塊值的量化過程將產(chǎn)生量化系數(shù)區(qū)塊,該量化系數(shù)區(qū)塊具有至少預定數(shù)量之具有預定值(例如,O)的量化系數(shù)。在第三步驟1006中,根據(jù)在步驟1004定義的該區(qū)塊-特定的量化電平來量化該區(qū)塊值,以產(chǎn)生包含至少該預定數(shù)量之具有該預定值的該量化系數(shù)區(qū)塊。在第四步驟1008中,該區(qū)塊-特定的量化電平被輸出(例如,輸出至內(nèi)存等),以便在接下來的解碼過程中使用。在第五步驟1010中,確定是否有另一區(qū)塊值需要編碼。如果有,那么方法1000返回到步驟1002。如果沒有,那么方法1000結(jié)束。
      [0141]圖11為概括用來執(zhí)行圖10的第二步驟1004 (為區(qū)塊定義量化電平)的特定方法的流程圖。第一步驟1102包括確定隨著量化在被量化區(qū)塊中之必須具有該預定值的量化系數(shù)的最小數(shù)量k。如上述表明的,該k值對于所有區(qū)塊可以是不變的,或者該k值可以根據(jù)某些其它參數(shù)(例如,由輸出120的速度控制信號指示的期望的解碼器速度、期望的解碼圖像質(zhì)量等)周期性改變。在第二步驟1104中,利用量化數(shù)據(jù)以及默認量化電平來初始量化該區(qū)塊值(例如,變換系數(shù)),以產(chǎn)生量化系數(shù)的試驗區(qū)塊。在第三步驟1106中,確定該試驗區(qū)塊中第k個最小量化系數(shù)的值,以及在第四步驟1108中,確定該第k個最小量化系數(shù)的值是否等于該預定值(例如,O)。如果等于,那么在第五步驟1110中,定義該默認量化電平作為第10圖的步驟1008中之該區(qū)塊-特定的量化電平,然后該方法結(jié)束。
      [0142]如果在步驟1108中確定該第k個最小量化系數(shù)的值不為0,那么該方法繼續(xù)進行第六步驟1112,在第六步驟1112中,產(chǎn)生一個新的區(qū)塊-特定的量化電平,然后該方法結(jié)束。
      [0143]圖12為概括根據(jù)本發(fā)明的解碼數(shù)據(jù)流的方法1200的流程圖。在第一步驟1202中,解碼器接收行程編碼數(shù)據(jù)流,該行程編碼數(shù)據(jù)流例如是從熵解碼器輸出的。在第二步驟1204中,解碼器行程解碼RLE數(shù)據(jù),以產(chǎn)生第一區(qū)塊值(例如,量化系數(shù))。在第三步驟1206中,第一多個系數(shù)利用選自多個平行操作的解碼信道606 (I)至606 (η)的第一解碼信道606 (I)開始進一步解碼。在第四步驟1208中,解碼器106行程解碼RLE數(shù)據(jù),以產(chǎn)生第二區(qū)塊值(例如,量化系數(shù))。在第五步驟1210中,該第二區(qū)塊系數(shù)利用一選自多個平行操作的解碼信道606 (I)至606 (η)的第二解碼信道606 (2)開始進一步解碼,以便該第一區(qū)塊系數(shù)與第二區(qū)塊系數(shù)至少部分地被同時解碼。
      [0144]圖13為概括用來執(zhí)行圖12的步驟1204與1208 (行程解碼RLE數(shù)據(jù))二者之一的特定方法的流程圖。在行程解碼過程的第一步驟1302中,將預定值(例如,O)存儲到系數(shù)緩沖器704的多個存儲位置的每一個中。在第二步驟1304中,將不同于該預定值的第一值寫入基于該RLE數(shù)據(jù)的該系數(shù)緩沖器704的第一存儲位置812。在第三步驟1306中,從第一存儲位置812到基于該RLE數(shù)據(jù)的下一個存儲位置812跳過了多個連續(xù)的存儲位置812。接下來,在第四步驟814中,不同于該預定值的下一個值被寫入基于該RLE數(shù)據(jù)的下一個存儲位置812。然后,在第五步驟1310中,確定是否遇到該RLE數(shù)據(jù)中的區(qū)塊結(jié)束代碼。如果遇到該區(qū)塊結(jié)束代碼,則該方法結(jié)束。如果沒有遇到該區(qū)塊結(jié)束代碼,則該方法返回到第三步驟1306,以便將另一個下一個系數(shù)寫入另一個基于該RLE數(shù)據(jù)的下一個存儲位置。
      [0145]本發(fā)明的特定實施例及方法的描述現(xiàn)在完成。所描述的許多特征在不脫離本發(fā)明范圍的條件下都可以被替代、改變或者省略。例如,盡管已經(jīng)就JPEG壓縮描述了本發(fā)明,但是本發(fā)明可同樣地應用到其它數(shù)據(jù)壓縮編解碼器以及涉及量化、熵和/或行程編解碼的方法(例如,MPEG等)。作為另一個示例,可以省略速度控制輸入120,以及解碼器106的行程解碼器604可根據(jù)其接收的該RLE數(shù)據(jù)自動調(diào)整其行程解碼。這些以及來自所示特定實施例的其它偏差對于本領域技術(shù)人員將是顯而易見的,特別是在基于前述說明的情況下。
      【權(quán)利要求】
      1.一種在集成電路中產(chǎn)生編碼數(shù)據(jù)的方法,該方法包括: 接收一區(qū)塊的數(shù)值; 定義與該區(qū)塊的數(shù)值相關(guān)聯(lián)的量化電平;以及 基于該量化電平量化該區(qū)塊的數(shù)值,以產(chǎn)生區(qū)塊的量化系數(shù),以及 其中定義該量化電平以使在該區(qū)塊的量化系數(shù)中的至少預定數(shù)量的該量化系數(shù)具有預定值。
      2.根據(jù)權(quán)利要求1所述的方法,其中該預定值為O。
      3.根據(jù)權(quán)利要求1所述的方法,其中所述量化該區(qū)塊的數(shù)值的步驟包括以相關(guān)聯(lián)的量化數(shù)據(jù)和以該量化電平劃分該數(shù)值的每一個。
      4.根據(jù)權(quán)利要求1所述的方法,其中所述定義該量化電平的步驟包括: 基于量化數(shù)據(jù)和默認量化電平初始地量化該區(qū)塊的數(shù)值,以產(chǎn)生一測試區(qū)塊的量化系數(shù); 當在具有該預定值的該測試區(qū)塊中量化系數(shù)的數(shù)量小于該預定數(shù)量時,產(chǎn)生新量化電平;以及 當在具有該預定值的該測試區(qū)塊中量化系數(shù)的數(shù)量大于或等于該預定數(shù)量時,使用該默認量化電平作為該量化電平。`
      5.根據(jù)權(quán)利要求4所述的方法,其中所述產(chǎn)生該新量化電平的步驟包括: 在該測試區(qū)塊中識別具有第k個最小值的該量化系數(shù),其中k對應于該預定數(shù)量; 確定該所識別的量化系數(shù)的數(shù)值是否對應于該預定值;以及 當該所識別的量化系數(shù)的數(shù)值不同于該預定值時,產(chǎn)生該新量化電平。
      6.根據(jù)權(quán)利要求5所述的方法,其中該新量化電平大于兩倍該所識別的量化系數(shù)的數(shù)值。
      7.根據(jù)權(quán)利要求5所述的方法,其中所述基于該量化電平量化該區(qū)塊的數(shù)值的步驟包括以該新量化電平劃分該測試區(qū)塊的每一個該量化系數(shù),以產(chǎn)生該區(qū)塊的量化系數(shù)。
      8.根據(jù)權(quán)利要求7所述的方法,其中該默認量化電平的數(shù)值為I。
      9.根據(jù)權(quán)利要求1所述的方法,進一步包括輸出該量化電平。
      10.根據(jù)權(quán)利要求9所述的方法,其中所述輸出該量化電平的步驟包括將該量化電平存儲在先進先出(FIFO)內(nèi)存。
      11.根據(jù)權(quán)利要求1所述的方法,進一步包括: 接收一第二區(qū)塊的數(shù)值; 定義與該第二區(qū)塊的數(shù)值相關(guān)聯(lián)的第二量化電平,該第二量化電平不同于該量化電平;以及 基于該第二量化電平量化該第二區(qū)塊的數(shù)值,以產(chǎn)生第二區(qū)塊的量化系數(shù);以及其中定義該第二量化電平以使在該第二區(qū)塊的量化系數(shù)中至少該預定數(shù)量的量化系數(shù)具有該預定值。
      12.根據(jù)權(quán)利要求1所述的方法,進一步包括: 對該區(qū)塊的量化系數(shù)執(zhí)行“之”字型操作; 在該“之”字型操作之后,將該量化系數(shù)行程編碼為行程編碼(RLE)數(shù)據(jù);以及 熵編碼該行程編碼數(shù)據(jù);以及其中所述接收該區(qū)塊的數(shù)值的步驟包括接收與圖像的多個像素相關(guān)聯(lián)的一區(qū)塊的離散余弦變換(DCT)系數(shù)。
      13.根據(jù)權(quán)利要求1所述的方法,其中該預定數(shù)量大于或等于該區(qū)塊中該量化系數(shù)的數(shù)量的一半。
      14.根據(jù)權(quán)利要求1所述的方法,進一步包括: 將該區(qū)塊的量化系數(shù)行程編碼為與該區(qū)塊相關(guān)聯(lián)的行程編碼(RLE)數(shù)據(jù); 熵編碼該行程編碼數(shù)據(jù)以產(chǎn)生該編碼數(shù)據(jù); 將該編碼數(shù)據(jù)傳送至解碼器;以及 將該編碼數(shù)據(jù)解碼為一區(qū)塊的解碼數(shù)值。
      15.根據(jù)權(quán)利要求14所述的方法,其中: 所述解碼該編碼數(shù)據(jù)的步驟包括熵解碼該編碼數(shù)據(jù)以產(chǎn)生與該區(qū)塊相關(guān)聯(lián)的該行程編碼數(shù)據(jù)以及行程解碼與該區(qū)塊相關(guān)聯(lián)的該行程編碼數(shù)據(jù)以產(chǎn)生該量化系數(shù);以及 選擇該預定數(shù)量以控制所述熵解碼該編碼數(shù)據(jù)和行程解碼該行程編碼數(shù)據(jù)的步驟的速度。
      16.根據(jù)權(quán)利要求15所述的方法,其中所述行程解碼該行程編碼數(shù)據(jù)的步驟包括: 將該預定值存儲在緩沖器的多個連續(xù)存取的存儲位置的每一個中; 基于該行程編碼數(shù)據(jù)將不同于該預定值的第一值寫入第一存儲位置; 基于該行程編碼數(shù)據(jù)自該第一存儲位置跳過多個該連續(xù)存取的存儲位置至下一個存儲位置;以及 基于該行程編碼數(shù)據(jù)將不同于該預定值的下一個值寫入該下一個存儲位置。
      17.根據(jù)權(quán)利要求16所述的方法,其中: 該行程編碼數(shù)據(jù)包括多個數(shù)值對; 該數(shù)值對的每一個包括表示具有該預定值的量化系數(shù)的行程的第一值,以及表示具有不同于該預定值的數(shù)值的下一個量化系數(shù)的第二值;以及 所述跳過該緩沖器中該多個的該連續(xù)存取的存儲位置的步驟包括跳過該多個該存儲位置的數(shù)量等于該多個數(shù)值對的其中之一中的該第一值。
      18.根據(jù)權(quán)利要求17所述的方法,其中所述跳過的步驟包括增進指針的次數(shù)等于一加該多個數(shù)值對的該其中之一的該第一值。
      19.根據(jù)權(quán)利要求15所述的方法,其中所述解碼該編碼數(shù)據(jù)的步驟進一步包括: 利用多個解碼信道的第一個解碼該量化系數(shù),操作該解碼信道的每一個以將該量化系數(shù)解碼為該區(qū)塊的解碼數(shù)值。
      20.根據(jù)權(quán)利要求19所述的方法,其中所述利用該第一解碼信道解碼該量化系數(shù)的步驟包括: 獲得該量化電平;以及 使用該量化電平去量化該量化系數(shù)。
      21.根據(jù)權(quán)利要求20所述的方法,其中所述獲得該量化電平的步驟包括:自先進先出(FIFO)內(nèi)存中讀取該量化電平。
      22.根據(jù)權(quán)利要求19所述的方法,其中所述解碼該編碼數(shù)據(jù)的步驟包括: 行程解碼與第二區(qū)塊的數(shù)值相關(guān)聯(lián)的行程編碼數(shù)據(jù),以產(chǎn)生與該第二區(qū)塊的數(shù)值相關(guān)聯(lián)的量化系數(shù);以及 在所述利用該第一解碼信道解碼與該區(qū)塊的數(shù)值相關(guān)聯(lián)的該量化系數(shù)的步驟期間,利用該多個解碼信道的第二個解碼與該第二區(qū)塊的數(shù)值相關(guān)聯(lián)的該量化系數(shù)。
      23.根據(jù)權(quán)利要求19所述的方法,其中該多個解碼信道的數(shù)量與具有該預定值的該量化系數(shù)的數(shù)量成比例。
      24.根據(jù)權(quán)利要求23所述的方法,其中該多個解碼信道的數(shù)量大于或等于INT其中Q表示在該區(qū)塊中量化系數(shù)的數(shù)量,k表示具有該預定值的量化系數(shù)的該預定數(shù)量,INT為整數(shù)函數(shù)。
      25.根據(jù)權(quán)利要求1所述的方法,進一步包括接收定義該預定數(shù)量的一信號。
      26.—種產(chǎn)生編碼數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括: 輸入端,被操作以接收一區(qū)塊的數(shù)值; 量化電平產(chǎn)生器,被操作以定義與該區(qū)塊的數(shù)值相關(guān)聯(lián)的量化電平;以及量化器,被操作以基于該量化電平量化該區(qū)塊的數(shù)值,并且輸出一區(qū)塊的量化系數(shù),以及 其中,定義該量化電平以使該區(qū)塊的量化系數(shù)中至少預定數(shù)量的該量化系數(shù)具有預定值。
      27.根據(jù)權(quán)利要求26所述·的系統(tǒng),其中所述預定值為O。
      28.根據(jù)權(quán)利要求26所述的系統(tǒng),其中該量化器通過相關(guān)聯(lián)的量化數(shù)據(jù)和該量化電平來劃分該數(shù)值的每一個,而操作以量化該區(qū)塊的數(shù)值。
      29.根據(jù)權(quán)利要求26所述的系統(tǒng),其中該量化電平產(chǎn)生器被操作以: 基于量化數(shù)據(jù)和默認量化電平初始地量化該區(qū)塊的數(shù)值,以產(chǎn)生測試區(qū)塊的量化系數(shù); 當在具有該預定值的該測試區(qū)塊中該量化系數(shù)的數(shù)量小于該預定數(shù)量時,產(chǎn)生新量化電平;以及 當在具有該預定值的該測試區(qū)塊中該量化系數(shù)的數(shù)量大于或等于該預定數(shù)量時,使用該默認量化電平作為該量化電平。
      30.根據(jù)權(quán)利要求29所述的系統(tǒng),其中,為產(chǎn)生該新量化電平,該量化電平產(chǎn)生器被操作以: 識別在該測試區(qū)塊中具有第k個最小數(shù)值的該量化系數(shù),其中k對應于該預定數(shù)量; 確定該所識別的量化系數(shù)的數(shù)值是否對應于該預定值;以及 當該所識別的量化系數(shù)的數(shù)值不同于該預定值時,產(chǎn)生該新量化電平。
      31.根據(jù)權(quán)利要求30所述的系統(tǒng),其中該新量化電平大于兩倍該所識別的量化系數(shù)的數(shù)值。
      32.根據(jù)權(quán)利要求30所述的系統(tǒng),其中該量化器被操作以通過以該新量化電平劃分該測試區(qū)塊的該量化系數(shù)的每一個,基于該量化電平量化該區(qū)塊的數(shù)值,以產(chǎn)生該區(qū)塊的量化系數(shù)。
      33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中該默認量化電平的數(shù)值為I。
      34.根據(jù)權(quán)利要求26所述的系統(tǒng),進一步包括:量化電平輸出,被操作以輸出該量化電平。
      35.根據(jù)權(quán)利要求34所述的系統(tǒng),進一步包括:與該量化電平輸出連接的先進先出(FIFO)內(nèi)存,該先進先出內(nèi)存用于存儲該量化電平。
      36.根據(jù)權(quán)利要求26所述的系統(tǒng),其中: 該輸入被操作以接收一第二區(qū)塊的數(shù)值; 該量化電平產(chǎn)生器被操作以定義與該第二區(qū)塊的數(shù)值相關(guān)聯(lián)的第二量化電平,該第二量化電平不同于該量化電平; 該量化器被操作以基于該第二量化電平量化該第二區(qū)塊的數(shù)值,以產(chǎn)生第二區(qū)塊的量化系數(shù);以及 其中,定義該第二量化電平,以使該第二區(qū)塊中至少該預定數(shù)量的量化系數(shù)具有該預定值。
      37.根據(jù)權(quán)利要求26所述的系統(tǒng),進一步包括: “之”字型單元,被操作以對該區(qū)塊的量化系數(shù)執(zhí)行“之”字型操作; 行程編碼器,被操作以在該“之”字型操作之后將該量化系數(shù)行程編碼為行程編碼(RLE)數(shù)據(jù);以及 熵編碼器,被操作以熵編碼該行程編碼數(shù)據(jù);以及 其中,該區(qū)塊的數(shù)值為與圖像的多個像素相關(guān)聯(lián)的一區(qū)塊的離散余弦變換(DCT)系數(shù)。
      38.根據(jù)權(quán)利要求26所述的系統(tǒng),其中該預定數(shù)量大于或等于該區(qū)塊中該量化系數(shù)的數(shù)量的一半。
      39.根據(jù)權(quán)利要求26所述的系統(tǒng),進一步包括: 行程編碼器,被操作以將該量化系數(shù)行程編碼為與該區(qū)塊的圖像數(shù)據(jù)相關(guān)聯(lián)的行程編碼(RLE)數(shù)據(jù); 熵編碼器,被操作以將該行程編碼數(shù)據(jù)熵編碼為該編碼數(shù)據(jù);以及 解碼器,用于將該編碼數(shù)據(jù)解碼為一區(qū)塊的解碼數(shù)值。
      40.根據(jù)權(quán)利要求39所述的系統(tǒng),其中: 該解碼器包括:熵解碼器,被操作以將該編碼數(shù)據(jù)解碼為與該區(qū)塊的數(shù)值相關(guān)聯(lián)的行程編碼數(shù)據(jù); 該解碼器包括:行程解碼器,被操作以解碼與該區(qū)塊的數(shù)值相關(guān)聯(lián)的該行程編碼數(shù)據(jù),以產(chǎn)生該量化系數(shù);以及 該預定數(shù)量控制由該熵解碼器將該編碼數(shù)據(jù)解碼為與該區(qū)塊的數(shù)值相關(guān)聯(lián)的該行程編碼數(shù)據(jù)所需的時間,并且控制由該行程解碼器解碼與該區(qū)塊的數(shù)值相關(guān)聯(lián)的該行程編碼數(shù)據(jù)所需的時間。
      41.根據(jù)權(quán)利要求40所述的系統(tǒng),其中: 該行程解碼器包括緩沖器,其具有多個連續(xù)存取的存儲位置;以及 該行程解碼器被操作以: 將該預定值存儲在該存儲位置的每一個中; 基于該行程編碼數(shù)據(jù)將不同于該預定值的第一值寫入第一存儲位置; 基于該行程編碼數(shù)據(jù)自該第一存儲位置跳過多個該存儲位置至下一個存儲位置;以及 基于該行程編碼數(shù)據(jù)將不同于該預定值的下一個數(shù)值寫入該下一個存儲位置 。
      42.根據(jù)權(quán)利要求41所述的系統(tǒng),其中: 該行程編碼數(shù)據(jù)包括多個數(shù)值對; 該數(shù)值對的每一個包括表示具有該預定值的量化系數(shù)的行程的第一值,以及表示具有不同于該預定值的數(shù)值的下一個量化系數(shù)的第二值;以及 該行程解碼器被操作以使跳過多個該存儲位置的數(shù)量等于該多個數(shù)值對的其中之一中的該第一值。
      43.根據(jù)權(quán)利要求42所述的系統(tǒng),其中該行程解碼器包括指針,該行程解碼器被操作以通過增進該指針的次數(shù)等于一加上該多個數(shù)值對的該其中之一的該第一值而跳過該數(shù)量的該緩沖器位置。
      44.根據(jù)權(quán)利要求40所述的系統(tǒng),其中該解碼器進一步包括多個解碼信道,并且該解碼器被操作以利用該多個解碼信道的其中之一解碼該量化系數(shù),該解碼信道的每一個被操作以解碼該量化系數(shù)為該區(qū)塊的解碼數(shù)值。
      45.根據(jù)權(quán)利要求44所述的系統(tǒng),其中該解碼信道的每一個包括去量化器,該去量化器被操作以獲得該量化電平并且使用該量化電平去量化該量化系數(shù)。
      46.根據(jù)權(quán)利要求45項所述的系統(tǒng),進一步包括: 先進先出(FIFO)內(nèi)存;以及 其中,該去量化器被操作 以自該先進先出內(nèi)存讀取該量化電平。
      47.根據(jù)權(quán)利要求44所述的系統(tǒng),其中: 該行程解碼器被操作以解碼與第二區(qū)塊的數(shù)值相關(guān)聯(lián)的行程編碼數(shù)據(jù),以產(chǎn)生與該第二區(qū)塊的數(shù)值相關(guān)聯(lián)的量化系數(shù);以及 該解碼器被操作以利用與用于解碼與該區(qū)塊的數(shù)值相關(guān)聯(lián)的該量化系數(shù)不同的解碼信道解碼與該第二區(qū)塊的數(shù)值相關(guān)聯(lián)的該量化系數(shù)。
      48.根據(jù)權(quán)利要求44所述的系統(tǒng),其中該多個解碼信道的數(shù)量與具有該預定值的該量化系數(shù)的數(shù)量成比例。
      49.根據(jù)權(quán)利要求48所述的系統(tǒng),其中該多個解碼信道的數(shù)量大于或等于INTgr其









      ?中Q表示該區(qū)塊中量化系數(shù)的數(shù)量,k表示具有該預定值的量化系數(shù)的預定數(shù)量,INT為整數(shù)函數(shù)。
      50.根據(jù)權(quán)利要求26所述的系統(tǒng),進一步包括第二輸入端,被操作以接收定義該預定數(shù)量的信號。
      51.一種非暫時性電可讀存儲介質(zhì),具有編入其內(nèi)的代碼以使電子裝置: 接收一區(qū)塊的數(shù)值; 定義與該區(qū)塊的數(shù)值相關(guān)聯(lián)的量化電平;以及基于該量化電平量化該區(qū)塊的數(shù)值,以產(chǎn)生一區(qū)塊的量化系數(shù);以及其中,該量化電平被定義以使在該區(qū)塊的量化系數(shù)中至少預定數(shù)量的該量化系數(shù)具有預定值。
      52.一種產(chǎn)生編碼數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括: 輸入端,被操作以接收一區(qū)塊的數(shù)值; 量化器,被操作以基于量化電平量化該區(qū)塊的數(shù)值,并且輸出區(qū)塊的量化系數(shù);以及定義該量化電平的部件,以便于在量化之后,在該區(qū)塊的量化系數(shù)中至少預定數(shù)量的該量化系數(shù)具有預定值。`
      【文檔編號】H04N19/625GK103581680SQ201310280673
      【公開日】2014年2月12日 申請日期:2013年7月5日 優(yōu)先權(quán)日:2012年7月19日
      【發(fā)明者】杜宣明 申請人:豪威科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1