專利名稱:可變長度解碼裝置的制作方法
技術領域:
本發明涉及用于對編碼數據執行可變長度解碼和行程長度解碼的解碼方法和解碼裝置,在編碼數據中使用了行程長度編碼和可變長度編碼,更具體地講,是涉及使用在用于擴展壓縮圖像數據的圖像擴展技術中的可變長度解碼方法和可變長度解碼裝置。本發明進一步涉及圖像獲取系統。
背景技術:
使用行程長度編碼和可變長度編碼的壓縮和擴展壓縮數據的方法,作為壓縮圖像數據的常用技術,被應用于JPEG(聯合圖像專家組)和MPEG(運動圖像專家組)。隨著數碼相機和數碼攝像機的發展和通信技術的進步,該方法作為能夠用少量信息傳遞數據的技術而被廣泛應用。
圖36顯示圖像壓縮裝置的一個典型示例。下面參見圖36給出對所示裝置的描述。
被預先分成包含8×8像素的塊、并且被順序地輸入的圖像數據,在用于執行離散余弦變換的DCT(離散余弦變換)單元101中被頻率變換,從而產生DCT系數。在大部分自然圖像中,顏色平滑地變化。如圖37所示,作為執行頻率變換的結果,具有較大數值的DCT系數集中在低頻區域m中,而具有較小數值的DCT系數分布在高頻區域n中。特別是,位于左上角的系數被稱為沒有頻率成分的DC成分,其余系數被稱為AC成分。
在量化單元102中,DCT系數被除以預設量化數值,從而產生量化系數。作為該處理的結果,系數“0”可以被集中在不影響圖像質量的高頻區域。
如圖38所示,在可變長度編碼單元103中,將表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”,以Z形掃描(zigzag scan)的次序組合,從而產生行程長度(run length)數據。按照上述組合的出現比率,分配具有不同長度的代碼字,從而減少數據量。
如圖39所示,與該圖像壓縮裝置的結構相對應,用于解碼以上述方式編碼的可變長度編碼數據的圖像擴展裝置,包括可變長度解碼單元104、逆量化單元105和逆DCT單元106。
在可變長度解碼單元104中,數據以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的狀態進行解碼,并且產生與“RUN”的大小一樣多的“0”系數,并且這些“0”系數與“LEVEL”表示的系數組合。這種操作被重復執行,直到產生與8×8像素對應的系數。
所產生的與8×8像素對應的系數,在逆量化單元105中被乘以預設量化數值,從而得到逆量化DCT系數。進一步地,系數在逆DCT單元106中被執行頻率區域-空間區域變換,圖像數據從而被解碼。
參見圖40描述可變長度解碼單元104的傳統結構。
從輸入單元107輸入的可變長度編碼數據,在可變長度解碼單元108中以如下狀態被解碼表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合。寫控制單元109向選擇器110提供選擇信號,使得與已解碼的“RUN”數值一樣多的“0”被寫入數據緩沖器112中。在與已解碼的“RUN”數值一樣多的“0”被寫入后,由“LEVEL”表示的系數被寫入數據緩沖器112。該操作被重復執行,直到產生和8×8像素一樣多的系數,然后,數據被讀控制單元111以Z形掃描次序(圖38)從數據緩沖器112中順序地讀取,并從輸出單元113輸出到逆量化單元105。
然而,在該傳統結構中,在與已解碼的“RUN”數值一樣多的“0”被順序寫入期間,不能執行可變長度解碼單元108的處理。所造成的缺點是產生空閑周期,這對于實現高速運算是個不利障礙。
作為上述問題的解決方法而提出的行程長度解碼電路在未審日本專利申請公開No.08-167856中被公開。下面參見圖41描述行程長度解碼電路的示例。
存儲在第一數據緩沖器116和第二數據緩沖器117中的所有數據字被預先初始化為“0”。從輸入單元114輸入的可變長度編碼數據在可變長度解碼單元115中以如下狀態被解碼表示“0”的個數的“RUN”和表示參數數值大小的“LEVEL”被組合。“LEVEL”數據被提供給選擇單元122和123,而解碼后的“RUN”數據被提供給地址加法器118,所以只有“RUN”的數值是線性增加的,然后,增加結果被輸出到寫控制單元119。輸出的數據在寫控制單元119中被轉換成Z形掃描地址,轉換的結果被輸出到選擇單元124和125。地址加法器118用于向選擇單元122及124或選擇單元123及125提供“H”電平作為選擇信號,而向其他單元輸出“L”電平,以及用于在與8×8像素對應的處理完成之前反轉選擇信號的邏輯“LEVEL”。
當地址加法器118向選擇單元122和124提供“H”電平時,讀控制單元120將讀地址輸出給數據緩沖器117,而當地址加法器118向選擇單元123和125提供“H”電平時,讀控制單元120將讀地址輸出給數據緩沖器116。根據來自讀控制單元120的讀地址,輸出數據從數據緩沖器116和117中的一個經過輸出單元126或127輸出。
當讀地址從讀控制單元120輸出到數據緩沖器116或117時,初始化單元121通過微量偏移定時(slightly shifted timing)將相同的地址作為初始化地址輸出到選擇單元124或125。
當來自地址加法器118的選擇信號為“H”電平時,選擇單元122和123將“LEVEL”數據從可變長度解碼單元115輸出到對應的數據緩沖器116和117,而當選擇信號為“L”電平時輸出“0”。
當來自地址加法器118的選擇信號為“H”電平時,選擇單元124和125輸出來自寫控制單元119的Z形掃描地址,而當選擇信號為“L”電平時,輸出來自初始化單元121的初始化地址。
每當與8×8像素對應的處理完成時,來自地址加法器118和讀控制單元120的地址被初始化為初始值。
根據圖41所示的解碼電路,在所有存儲于第一數據緩沖器116中的數據被初始化為“0”之后,只有“LEVEL”數據在用基于已解碼的行程長度代碼的Z形掃描地址標識的位置處重寫“0”。因此,在當構成塊的8×8像素中只有非“0”部分被寫入第一數據緩沖器116期間,存儲在第二數據緩沖器117中的一個塊被讀取并被初始化。
根據上述傳統技術,當存儲在數據緩沖器中的數據被預先初始化為“0”,并且只有“LEVEL”數據基于行程長度代碼被寫在數據緩沖器中的對應位置時,一個塊所需要的處理可以依照構成一個塊的8×8像素中的非“0”成分而被減少。
然而,在上述傳統結構中,初始化數據緩沖器是必需的。此外,由于所有數據必須從數據緩沖器讀取,因此不利的是,不能減少在解碼過程和讀操作之間產生的空閑時間和對數據緩沖器的訪問次數。
發明內容
因此,本發明的主要目的是提供能夠省卻數據緩沖器的初始化以及通過縮短讀操作的處理時間實現高效的可變長度解碼方法和可變長度解碼裝置。
為了實現上述目的,根據本發明的可變長度解碼裝置是一種用于解碼可變長度編碼數據和行程長度編碼數據的可變長度解碼裝置,包括可變長度解碼單元,用于以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式,順序地解碼從外部輸入的可變長度編碼數據和行程長度編碼數據;數據緩沖器,用于存儲該“LEVEL”;地址保持器,用于根據“RUN”表示的“0”的個數保持與該“RUN”對應的“LEVEL”的地址;寫控制單元,用于根據地址保持器的信息在數據緩沖器中寫入“LEVEL”;讀控制單元,用于根據地址保持器的信息從數據緩沖器中讀取“LEVEL”;選擇單元,用于根據地址保持器的信息選擇“0”和存儲于數據緩沖器中的“LEVEL”中的一個,并輸出所選擇的數據;和后級處理單元,用于對來自選擇單元的數據執行后級處理,向外部輸出所得到的數據。
上述結構技術上的特征在于,通過地址保持器和選擇單元的組合,從數據緩沖器讀取的數據被局限于“LEVEL”。
根據上述結構,在此最小結構中,根據的地址保持器的信息,只有“LEVEL”被讀取,因此可以減少對數據緩沖器的訪問次數。結果,可以提供消耗較少能量的可變長度解碼裝置。
所描述的可變長度解碼裝置中,該地址保持器優選包括地址加法器,用于根據“RUN”表示的“0”的個數計算與“RUN”對應的“LEVEL”的地址,并控制該寫控制單元;和信息寄存器,用于存儲由地址加法器得到的結果,并控制該選擇單元和讀控制單元。
根據上述結構,在此最小結構中,根據存儲在信息寄存器中的信息,只有“LEVEL”被讀取,因此可以減少對數據緩沖器的訪問次數。結果,可以提供消耗較少能量的可變長度解碼裝置。
在上述結構中,根據所輸入的“RUN”,所述信息優選以解碼次序存儲在信息寄存器中。
根據本發明的可變長度解碼裝置優選進一步包括時鐘控制單元,用于控制向所述數據緩沖器提供的時鐘,其中該時鐘控制單元根據存儲在信息寄存器中的數值(關于信息寄存器中的數據數值是否為“0”的信息),只有在數據數值不為“0”時向數據緩沖器提供時鐘。
根據上述結構,時鐘在有限的時間長度內被提供給數據緩沖器。結果,可以提供消耗較少能量的可變長度解碼裝置。
在所描述的可變長度解碼裝置中,優選地,用于根據“RUN”表示的“0”的個數存儲與“RUN”對應的“LEVEL”的地址,并控制寫控制單元、讀控制單元和選擇單元的地址存儲單元,構成所述地址保持器。
根據上述結構,在此最小結構中,根據地址存儲單元,只有“LEVEL”被讀取,因此可以減少對數據緩沖器的訪問次數。結果,可以提供消耗較少能量的可變長度解碼裝置。
作為根據本發明的可變長度解碼裝置的優選結構,所述數據緩沖器適于在一個地址處存儲L(L是至少為2的自然數)個“LEVEL”,進一步包括第二選擇單元,用于根據信息寄存器的數值選擇并輸出所述L個數據,并且所述L個數據根據所述信息寄存器的數值被同時讀取。
根據上述結構,信息寄存器可以以多個比特被同時判斷,以便可以減少對數據緩沖器的訪問次數。結果,可以提供消耗較少能量的可變長度解碼裝置。
根據本發明的可變長度解碼裝置,包括可變長度解碼單元,用于以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式,順序地解碼從外部輸入的可變長度編碼數據和行程長度編碼數據;第一數據緩沖器,用于存儲所述“LEVEL”;地址保持器,用于根據“RUN”表示的“0”的個數保持與該“RUN”對應的“LEVEL”的地址(前面所描述的地址加法器和信息寄存器的組合,或者地址存儲單元);第一寫控制單元,用于根據地址保持器的信息在第一數據緩沖器中寫入“LEVEL”;第一讀控制單元,用于根據地址保持器的數值從第一數據緩沖器中讀取“LEVEL”;選擇單元,用于根據地址保持器的數值選擇“0”和存儲于第一數據緩沖器中的“LEVEL”中的一個,并輸出所選擇的數據;第二數據緩沖器,用于存儲來自選擇單元的數據;第二寫控制單元,用于與第一讀控制單元的操作協作控制對第二數據緩沖器的寫操作;第二讀控制單元,用于控制對第二數據緩沖器的讀操作;和后級處理單元,用于對從第二數據緩沖器輸出的數據執行后級處理,并輸出所得到的數據到外部。
根據上述結構,第一數據緩沖器的數據無需等待后級處理單元的處理完成就可以被輸出,這允許很快執行下一個可變長度解碼。結果,可以加速解碼處理。
較佳地,根據本發明的可變長度解碼裝置適于,將來自選擇單元的數據不僅輸出到第二數據緩沖器,而且也輸出到后級處理單元。
根據上述結構,當后級處理單元的處理比預期執行得早時,可以避免對第二數據緩沖器的寫操作。結果,可以加速解碼處理。
較佳地,包括地址加法器的根據本發明的可變長度解碼裝置進一步包括包括至少一個信息寄存器的信息寄存器組,用于根據地址加法器得到的結果,以不同的排列次序存儲數據;和寄存器選擇單元,用于獲得表示來自后級處理單元的解碼數據的特征的特征信息,以及根據所述特征信息選擇信息寄存器組中的任意寄存器。
根據上述結構,在具有諸如MPEG-4等多個掃描模式的可變長度解碼處理中,可以以更高的速度執行解碼處理。
根據本發明的可變長度解碼裝置是一種用于解碼可變長度編碼數據和行程長度編碼數據的可變長度解碼裝置,包括可變長度解碼單元,用于以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式,順序地解碼從外部輸入的可變長度編碼數據和行程長度編碼數據;第一數據緩沖器,用于存儲所述“LEVEL”;地址加法器,用于根據“RUN”表示的“0”的個數計算與該“RUN”對應的“LEVEL”的地址;第一信息寄存器,用于存儲由地址加法器得到的結果;第一寫控制單元,用于根據地址加法器的信息在第一數據緩沖器中存儲“LEVEL”;第一讀控制單元,用于根據第一信息寄存器的數值從第一數據緩沖器中讀取“LEVEL”;第二信息寄存器,具有與第一信息寄存器相同的結構;第二數據緩沖器,用于存儲來自第一數據緩沖器的“LEVEL”;第二寫控制單元,用于與第一讀控制單元的操作協作控制對第二數據緩沖器的寫操作;第二讀控制單元,用于根據第二信息寄存器的數值,控制對第二數據緩沖器的讀操作;選擇單元,用于根據第二信息寄存器的數值,選擇“0”和存儲于數據緩沖器中的“LEVEL”中的一個;和后級處理單元,用于對從選擇單元輸出的數據執行后級處理,并輸出所得到的數據到外部。
根據上述結構,只有“LEVEL”在第一和第二數據緩沖器之間傳輸,這樣可以更高速度實現可變長度解碼。
較佳地,根據本發明的可變長度解碼裝置進一步具有用于初始化第二數據緩沖器的初始化單元,其中在讀操作完成之后,第二數據緩沖器被該初始化單元初始化。
根據上述結構,可以省略用于從第一數據緩沖器中選擇“LEVEL”和“0”中的一個的選擇單元,并且只有“LEVEL”在第一和第二數據緩沖器之間傳輸。結果,可變長度解碼可以用最小的結構獲得更高的速度。
包括第二數據緩沖器、第二寫控制單元和第二讀控制單元的根據本發明的可變長度解碼裝置,進一步具有數據緩沖器組,包括第二數據緩沖器的至少一個數據緩沖器被安排在其中;第二選擇單元,用于選擇從多個數據緩沖器讀取的數據,其中來自第一數據緩沖器的數據,被連續地存儲在所述多個數據緩沖器的每一個中。
根據上述結構,第一數據緩沖器的數據無需等待后級處理單元的處理完成就可以被輸出,這允許很快執行下一個可變長度解碼。結果,可以加速解碼過程。
根據本發明的可變長度解碼裝置包括多個處理系統,其中信息寄存器、數據緩沖器、寫控制單元和讀控制單元組成各系統,并且進一步包括切換單元,用于以屬于一個處理系統的數據緩沖器將數據輸出到后級處理單元的方式進行控制,其中對一個處理系統中的數據緩沖器的寫操作以及對另一處理系統中的數據緩沖器的讀操作被同時執行。
在上述結構中,當寫操作和讀操作被同時執行時,數據無需等待對數據緩沖器的讀操作完成就可以被傳輸。因此,可以減少可變長度解碼處理所需的時間長度,結果,解碼過程通常可以以更高的速度執行。
在根據本發明的可變長度解碼裝置中,包括寫端口和能夠獨立地讀取數據的讀端口的存儲器構成所述數據緩沖器,并且信息寄存器具有與至少一個塊對應的比特長度,其中寫和讀操作以如下方式被并行執行在“LEVEL”被寫入數據緩沖器時,讀操作由讀控制單元啟動。
在上述結構中,當寫操作和讀操作被同時執行時,數據無需等待與數據緩沖器對應的讀操作完成就可以被傳輸。因此,可以減少可變長度解碼的處理時間,作為其結果,通常可以用最小結構以更高的速度執行解碼過程。
其次,根據本發明的可變長度解碼方法是一種用于解碼可變長度編碼數據和行程長度編碼數據的可變長度解碼方法,包括以下步驟順序地輸入可變長度編碼數據和行程長度編碼數據的步驟;以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式、順序地解碼所輸入的可變長度編碼數據和行程長度編碼數據的步驟;根據“RUN”表示的“0”的個數保持與該“RUN”對應的“LEVEL”的地址的步驟;根據該地址在數據緩沖器中存儲“LEVEL”的步驟;根據該地址從數據緩沖器中讀取“LEVEL”的步驟;根據該地址選擇“0”和存儲于數據緩沖器中的“LEVEL”中的一個、并輸出所選擇的數據的步驟;
對所選擇的數據執行后級處理的步驟;和輸出后級處理后的數據的步驟。
根據上述方法,可以通過根據該地址的判斷,來控制數據讀操作和從選擇單元的數據輸出。因此,根據該地址,只有“LEVEL”被讀取,并可以減少對數據緩沖器的訪問次數。結果,可以提供消耗較少能量的可變長度解碼裝置。
根據本發明的可變長度解碼方法,包括以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式、順序地解碼所輸入數據的步驟;根據“RUN”表示的“0”的個數,計算并增加與該“RUN”對應的“LEVEL”的地址的步驟;存儲表示地址增加結果的信息的步驟;根據該地址增加結果在第一數據緩沖器中存儲“LEVEL”的步驟;如果第二數據緩沖器處于可寫狀態,根據存儲在信息寄存器中的信息從第一數據緩沖器中讀取“LEVEL”的步驟;根據存儲在信息寄存器中的信息,選擇“0”和存儲于第一數據緩沖器中的“LEVEL”中的一個的步驟;在第二數據緩沖器中存儲在選擇單元中所選擇的數據的步驟;從第二數據緩沖器讀取該數據的步驟;對從第二數據緩沖器讀取的數據執行后級處理的步驟;和輸出后級處理后的數據的步驟。
根據上述方法,第一數據緩沖器的數據無需等待后級處理單元的處理完成就可以被輸出,這允許很快執行下一個可變長度解碼。結果,可以進一步加速解碼過程。
在根據本發明的可變長度解碼方法中,解碼后的“LEVEL”以較小地址的次序被順序而緊湊地存儲在第一數據緩沖器中,然后在對第二數據緩沖器的寫操作或對第二數據緩沖器的讀操作時,被掃描轉換。
根據上述方法,計算第一數據緩沖器中的地址就變成不是必須的,從而可以更容易地訪問數據緩沖器。
根據本發明的可變長度解碼方法,包括以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式、順序地解碼所輸入數據的步驟;根據“RUN”表示的“0”的個數,計算并增加與該“RUN”對應的“LEVEL”的地址的步驟;存儲表示地址增加結果的信息的步驟;根據該地址增加結果在第一數據緩沖器中存儲“LEVEL”的步驟;傳輸DC系數的步驟;根據該DC系數判斷解碼數據的特征的步驟;如果第二數據緩沖器處于可寫狀態,根據存儲在信息寄存器中的信息從第一數據緩沖器中讀取“LEVEL”的步驟;根據存儲在信息寄存器中的信息,選擇“0”和存儲于第一數據緩沖器中的“LEVEL”中的一個的步驟;在第二數據緩沖器中存儲在選擇單元中所選擇的數據的步驟;按照由所判斷的解碼數據的特征確定的數據排列次序,從第二數據緩沖器讀取數據的步驟;對從第二數據緩沖器讀取的數據執行后級處理的步驟;和輸出后級處理后的數據的步驟。
根據上述方法,在具有諸如MPEG-4等多個掃描模式的可變長度解碼處理中,可以以更高的速度執行解碼處理。
較佳地,根據本發明的可變長度解碼方法進一步包括在第二信息寄存器中存儲第一信息寄存器結果的步驟;在第二數據緩沖器中存儲從第一數據緩沖器中讀取的“LEVEL”的步驟;根據第二信息寄存器的數值從第二數據緩沖器中讀取“LEVEL”的步驟;根據第二信息寄存器的數值,選擇“0”和存儲在第二數據緩沖器中的“LEVEL”中的一個的步驟,其中如果第二數據緩沖器處于可寫狀態,從第一數據緩沖器輸出的“LEVEL”被存儲在第二數據緩沖器中。
根據上述方法,只有“LEVEL”在第一和第二數據緩沖器之間傳輸,結果,可以以更高速度執行可變長度解碼。
較佳地,根據本發明的可變長度解碼方法進一步包括初始化第二數據緩沖器的步驟,其中在對第二數據緩沖器的讀操作完成之后,第二數據緩沖器被初始化。
根據上述方法,可以省略用于從第一數據緩沖器中選擇“LEVEL”和“0”中的一個的選擇單元,并且只有“LEVEL”在第一和第二數據緩沖器之間傳輸。因此,可以加速可變長度解碼。
在根據本發明的可變長度解碼方法中,較佳地,信息寄存器具有與至少一個將要被解碼的塊對應的比特長度,并且包括寫端口和能夠獨立地讀取數據的讀端口的存儲器構成所述數據緩沖器,進一步包括以下步驟以較小地址的次序在數據緩沖器中緊湊地存儲“LEVEL”的步驟;至少一個“LEVEL”一被存儲到數據緩沖器中就開始讀操作的步驟;判斷數據緩沖器中被寫入的將被解碼的“LEVEL”的位置是否與允許讀和寫“LEVEL”的位置相對應;當所述寫入位置不與允許寫入“LEVEL”的位置相對應時,暫時中止解碼的步驟;和當寫操作被允許時,重新開始解碼的步驟。
根據上述方法,當寫操作和讀操作被同時執行時,數據無需等待與數據緩沖器對應的讀操作完成就可以被傳輸。因此,可以減少可變長度解碼的處理時間,作為其結果,通常能夠以更高的速度執行解碼過程。
根據本發明的第一圖像獲取系統包括圖像處理電路,包括任意的上述可變長度解碼裝置,該圖像處理電路執行圖像處理;傳感器,用于向圖像處理電路輸出圖像信號;和光學系統,用于對所述傳感器中的光成像。
根據上述結構,隨著更高速度的可變長度解碼,在圖像處理中可以預期更高的速度。
根據本發明的第二圖像獲取系統在第一圖像獲取系統結構中進一步包括轉換器,用于將從所述傳感器獲得的圖像信號轉換成數字信號,并將該數字信號提供給圖像處理電路。
根據上述結構,可以發揮數字信號處理的優勢。
本發明通過附圖舉例說明,但是不局限于附圖中的圖,其中類似的標記表示相似的元件。其中圖1為根據本發明第一優選實施例的可變長度解碼裝置的結構框圖;圖2為根據第一優選實施例的可變長度解碼裝置操作的流程圖;圖3為根據第一優選實施例的信息寄存器的示意圖;圖4為根據第一優選實施例的讀地址移位(shift)的圖解;圖5為根據第一優選實施例的可變長度解碼裝置的另一種結構的結構框圖(具有時鐘控制特征);圖6為根據第一優選實施例的可變長度解碼裝置操作的時序圖;圖7為根據第一優選實施例的可變長度解碼裝置的又一種結構的結果框圖(具有地址存儲單元);圖8為根據本發明第二優選實施例的可變長度解碼裝置的結構框圖;圖9為根據第二優選實施例的數據存儲方法和數據緩沖器結構的示意圖;圖10為根據第二優選實施例的信息寄存器的示意圖;圖11為根據本發明第三優選實施例的可變長度解碼裝置的結構框圖;圖12為根據第三優選實施例的可變長度解碼裝置操作的流程圖;圖13為根據第三優選實施例的另一可變長度解碼裝置的結構框圖;圖14為根據第三優選實施例的數據存儲方法的示意圖;
圖15為根據第三優選實施例的可變長度解碼裝置操作的流程圖(掃描轉換);圖16為MPEG-4基本解碼過程的流程圖;圖17為DC/AC預測的示意圖;圖18顯示根據第三優選實施例的水平優先次序掃描的例子;圖19顯示根據第三優選實施例的垂直優先次序掃描的例子;圖20為根據第三優選實施例的MPEG-4解碼過程的流程圖;圖21為根據第三優選實施例的按照水平優先次序掃描的信息寄存器的示意圖;圖22為根據第三優選實施例的按照垂直優先次序掃描的信息寄存器的示意圖;圖23為根據本發明第四優選實施例的可變長度解碼裝置的結構框圖;圖24為根據本發明第五優選實施例的可變長度解碼裝置的結構框圖;圖25為根據第五優選實施例的可變長度解碼裝置操作的流程圖;圖26為根據本發明第六優選實施例的可變長度解碼裝置的結構框圖;圖27為根據第六優選實施例的可變長度解碼裝置操作的流程圖;圖28為根據本發明第七優選實施例的可變長度解碼裝置的結構框圖;圖29為根據本發明第八優選實施例的可變長度解碼裝置的結構框圖;圖30為根據本發明第九優選實施例的可變長度解碼裝置的結構框圖;圖31為根據第九優選實施例的可變長度解碼裝置操作的流程圖;圖32為根據第九優選實施例的可變長度解碼裝置操作的時序圖;圖33為根據第九優選實施例的數據存儲方法的示意圖;圖34為根據第九優選實施例的信息寄存器的示意圖;圖35為根據本發明第十優選實施例的圖像獲取系統的結構框圖;圖36為典型圖像編碼裝置結構的框圖;圖37為DC參數實例的示意圖;圖38為解碼后量化DCT系數和Z形掃描的示意圖;
圖39為典型圖像解碼裝置的結構框圖;圖40為根據傳統技術的可變長度解碼單元的結構框圖;圖41為根據傳統技術的用于解碼行程長度編碼的解碼電路的結構框圖。
具體實施例方式
在下文中,參考附圖描述本發明的優選實施例。
第一優選實施例參考附圖描述根據本發明第一優選實施例的可變長度解碼裝置。
圖1顯示根據第一優選實施例的可變長度解碼裝置的示意結構。本實施例參考一個塊包括8×8個數據的情況來進行描述。
參見圖1中的標號,2表示輸入單元,用于的輸入單元可變長度編碼/行程長度編碼數據,3表示可變長度解碼單元,用于以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的狀態、對從輸入單元2輸入的數據順序地進行解碼,4表示用于存儲“LEVEL”的數據緩沖器,5表示地址加法器,用于計算與基于由“RUN”指示的“0”的個數相關的“LEVEL”的地址,6表示m×n比特的信息寄存器,用于存儲地址加法器5所獲得結果,7表示寫控制單元,用于根據來自地址加法器5的信息在數據緩沖器4中存儲“LEVEL”,8表示讀控制單元,用于根據信息寄存器6的數值從數據緩沖器4讀取“LEVEL”,9表示選擇單元,用于根據信息寄存器6的數值選擇“0”和存儲在數據緩沖器4中的“LEVEL”中的一個,并輸出所選擇數據,10表示用于對來自選擇單元9的數據進行后級處理的后級處理單元,11表示用于輸出來自后級處理單元10的數據的輸出單元。
圖2是根據第一優選實施例的可變長度解碼裝置的工作流程圖。參見圖2描述該流程。
可變長度編碼/行程長度編碼數據從輸入單元2輸入。所輸入的數據在可變長度解碼單元3中以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的狀態被順序地解碼(步驟S1)。
地址加法器5根據已解碼的“RUN”的大小,按照圖中38所示的Z形掃描次序,即1→2→9→17...的次序計算地址(步驟S2)。
如圖3所示,在信息寄存器6中,例如,與“RUN”的大小對應的“0”按照Z形掃描的次序順序被保存,以及例如“1”作為“LEVEL”的地址被保存在“0”位置之后的位置(步驟S3)。
寫控制單元7在地址加法器5獲得的地址寫入“LEVEL”(步驟S4)。
判斷與一個塊對應的“LEVEL”的寫入是否完成。當寫入操作沒有完成時,處理回到步驟S1,當寫入操作完成時前進到讀操作(S5)。
在可變長度解碼單元3中,數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態被解碼。當“LEVEL”的寫入完成時(步驟S5中為是),讀控制單元8接收指示與后級處理單元10相關的允許讀操作的控制信號,并以此判斷信息寄存器(步驟S6),并將與在信息寄存器6中存儲“1”的比特對應的地址輸出到數據緩沖器4,由此讀取存儲在該地址的“LEVEL”(步驟S7)。例如,如圖4中所示的地址移位。讀控制單元8一判斷信息寄存器6,選擇單元9就在信息寄存器6的比特為“0”時將“0”輸出到后級處理單元10,而在比特為“1”時從數據緩沖器4中將“LEVEL”作為輸出數據輸出(步驟S7)。
后級處理單元10對來自選擇單元9的數據執行后級處理(步驟S8),并且從輸出單元11輸出處理后的數據(步驟S9)。
信息寄存器的判斷信息寄存器6的各比特被同時判斷,與信息寄存器6中存儲“1”的比特對應的地址被順序地從讀控制單元8輸出到數據緩沖器4。在選擇單元9中,與信息寄存器6的顯示“0”(圖3中顯示的間隔a)的數值一樣多的“0”,可以被輸出到后級處理單元10。
時鐘控制如圖5所示,可以進一步提供時鐘控制單元12,用于根據信息寄存器6的數值,相對于數據緩沖器4控制與時鐘供應。
讀使能控制如圖6所示,可以根據信息寄存器6的數值,相對于數據緩沖器4對讀信號b進行控制。
地址存儲如圖7所示,可以包括代替地址加法器5和信息寄存器6的地址存儲單元13,在這種情況下,根據“RUN”寫入數據緩沖器4中的“LEVEL”的地址,被存儲在地址存儲單元13中。在地址存儲單元13中,地址被按照圖38中所示的Z形掃描的次序,即1→2→9→17...的次序進行計算。
讀控制單元8從數據緩沖器4順序地讀取數據。只有當從數據緩沖器4中讀取的數據為在存儲于地址存儲單元13中的地址處的數據時,選擇單元9才從數據緩沖器4讀取數據,而其它時候輸出“0”。
根據所描述的本實施例的結構,可以得到如下效果。
因為只有來自可變長度解碼單元3的“LEVEL”被寫入,因而可以提供能夠實現達到更高速度的可變長度解碼裝置。
在選擇單元9中,在數據被讀取時,根據判斷只有必要的數據被輸出,所述判斷基于選擇單元9中的信息寄存器6的數值。所以,傳統技術中所需要的初始化數據緩沖器,就變得不是必須的了。結果,能夠實現較小尺寸的電路。
在根據信息寄存器6的數值向數據緩沖器4提供與非“0”數據的個數相對應的時鐘情況下,可以控制功率消耗。結果,能夠以較低功率執行處理。
在根據信息寄存器6的數值向數據緩沖器4提供與非“0”數據的個數相對應的讀控制信號的情況下,可以控制功率消耗。結果,能夠以較低功率執行處理。
第二優選實施例參照附圖描述根據本發明第二優選實施例的可變長度解碼裝置。
圖8顯示根據第二優選實施例的可變長度解碼裝置的結構示意圖。圖8中與第一優選實施例有相似結構的部件用相同的標號表示,這里不再描述。
根據本實施例的可變長度解碼裝置以如下方式組成數據緩沖器4適于在一個地址存儲兩個來自可變長度解碼單元3的“LEVEL”,并且在根據第一優選實施例的可變長度解碼裝置的結構中進一步包括用于選擇從數據緩沖器4輸出的數據的第二選擇單元14。
參見附圖描述根據本實施例的可變長度解碼裝置的運行。本實施例是參考一個塊包括8×8個數據的情況進行描述的。
輸入單元2、可變長度解碼單元3和地址加法器5的運行,與第一優選實施例中描述的一樣。
如圖9和10所示,寫控制單元7在數據緩沖器4中的一個地址處共同存儲兩個來自可變長度解碼單元3的數據。為了描述在一個地址存儲數據的方法,當8×8塊的左上角為“1”,右下角為“64”時,具有較小數字的數據存儲在高位側,而具有較大數字的數據存儲在低位側。
在可變長度解碼單元3中,數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態被解碼。在“LEVEL”被寫入之后,讀控制單元8接收到指示允許相對于后級處理單元10進行讀操作的控制信號,由此以兩個比特判斷信息寄存器6。將與一個不為“0”或兩個都不為“0”的兩個比特對應的地址輸出,并且在地址(在這個例子中與兩個數據對應)中存儲的“LEVEL”被從數據緩沖器4中讀取。讀控制單元8一判斷信息寄存器6,第二選擇單元14就在兩個比特的高位為“1”時從數據緩沖器4中輸出數據的高位,而在兩個比特的低位為“1”時從數據緩沖器4中輸出數據的低位“LEVEL”。此后選擇單元9、后級處理單元10和輸出單元11的運行與第一優選實施例中所描述的相同。
根據本實施例提供的上述結構,得到如下效果。
數據緩沖器4在一個地址存儲多個數據,并且讀控制單元8以多個比特同時判斷信息寄存器6。因此,具有未顯示為“0”的連續數值的數據能夠同時被讀取,這縮短了關于數據緩沖器4的訪問時間。結果,能夠提供耗費較少功率的可變長度解碼裝置。
在本實施例中,在數據緩沖區4的一個地址處存儲兩個數據,但是,可以在一個地址處存儲比兩個數據更多的數據。
第三優選實施例參照附圖描述根據本發明第三優選實施例的可變長度解碼裝置。
圖11顯示根據第三優選實施例的可變長度解碼裝置的結構示意圖。圖11中與第一優選實施例有相似結構的元件用相同的標號表示,這里不再描述。
根據本實施例的可變長度解碼裝置以如下方式組成在根據第一優選實施例的可變長度解碼裝置的結構中進一步包括第二數據緩沖器15、第二寫控制單元16和第二讀控制單元17。
參見附圖描述根據本實施例的可變長度解碼裝置的運行。本實施例是參考一個塊包括8×8個數據的情況進行描述的。
輸入單元2、可變長度解碼單元3、地址加法器5、信息寄存器器6、第一寫控制單元7、第一讀控制單元8和選擇單元9的操作與第一優選實施例中描述的一樣。
圖12為根據第三優選實施例的可變長度解碼裝置運行的流程圖。參見圖12描述處理流程。
在可變長度解碼單元3中,數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態被解碼(步驟S11)。當“LEVEL”的寫入完成時(步驟S12到S14),第一讀控制單元8判斷信息寄存器6(步驟S16到S17),并且將信息寄存器6中與其中存儲“1”的比特對應的地址輸出到數據緩沖器4,從而讀取存儲在該地址的“LEVEL”(步驟S18)。第一讀控制單元8一判斷信息寄存器6,選擇單元9就在信息寄存器6的比特為“0”時將“0”輸出到第二數據緩沖器15,而在比特為“1”時將“LEVEL”從數據緩沖器4作為輸出數據輸出(步驟S18)。
第二寫控制單元16與第一讀控制單元8協作寫入來自選擇單元9的數據(步驟S19)。
當與一個塊對應的數據相對于第二數據緩沖器15寫入完成時(步驟S20中為是),第二讀控制單元17從第二數據緩沖器15讀取數據(步驟S21),并且將所讀取的數據輸出到后級處理單元10(步驟S22)。同時,可變長度解碼單元3開始解碼下一個塊(步驟S11)。
在可變長度解碼單元3中,數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態被解碼(步驟S11)。如果后級處理單元已經完成該處理(步驟S23中為是),則重復上述操作(步驟S24)。如果后級處理單元沒有完成該處理,則暫停數據傳輸。
沒有使用第二數據緩沖器的結構如圖13的結構所示,從選擇單元9輸出的數據,不僅可以輸出到第二數據緩沖器15,而且還可以輸出到后級處理單元10。
根據以上描述的結構,得到如下效果。
第一數據緩沖器4的數據,能夠被輸出而不需等待后級處理單元10的處理完成。結果,下一個可變長度解碼能夠立刻執行,這進一步加速了解碼過程。
來自選擇單元9的數據不僅可以被輸出到第二數據緩沖器15,而且可以被輸出到后級處理單元10。結果,當后級處理單元10的處理執行得比可變長度解碼更早時,可以避免關于第二數據緩沖器15的寫操作,這使得通常可以以更高的速度執行解碼處理。
從左結束數據緩沖器中的數據存儲如圖14和15所示,當數據被存儲在第一數據緩沖器中時,已解碼的“LEVEL”被以較小地址的次序緊密地從左存儲。存儲的數據,在被寫入第二數據緩沖器15時可以被掃描轉換(步驟S18a),或者可以在從第二數據緩沖器15讀取時被掃描轉換(步驟S21a)。
結果,計算第一數據緩沖器中的地址就成為不是必須的了,這使訪問數據緩沖器更容易。
包括DC系數傳輸的MPEG-4對應在MPEG-4中,處理單位是由六個各包括8×8象素的塊數據形成的宏塊,而四個亮度成分塊和兩個色差成分塊組成宏塊。存在兩種類型的宏塊,一種是根據在時間上彼此相同的圖像空間內的預測進行編碼的幀內宏塊(intra-macroblock),另一種是根據時間上彼此不同的圖像預測而進行編碼的幀間宏塊(inter-macro block)。
如圖16所示,宏塊的類型受到可變長度解碼(步驟S31),并且用來指示各個塊中所有8×8個數據是否都為“0”的CBP(Coded Block Pattern,編碼塊模式)被解碼(步驟S32)。其中CBP為“1”的塊中的系數被解碼,而CBP為“0”的任何塊中的系數作為“0”被解碼(步驟S33)。
如圖17所示,在幀內宏塊的情況下,從將要解碼的左側塊或上側塊中選擇出最佳的預測塊,并且通過根據該已確定的塊得到差值來減少編碼數量。在圖17中,塊X為將要被解碼的塊,塊A、B和C為與塊X相鄰的已經被解碼的塊。塊X、A、B和C各自包括多個DCT系數。
根據表達式1選擇塊X的預測塊P。
表達式1如果(|σA-σB|<|σV-σC|)P=C否則P=A上述表達式中的σA、σB和σC為對應塊的DC系數,|z|表示z的絕對值。更具體地講,計算各個相鄰塊A、B和C的DC系數的梯度,選擇具有較大梯度的塊作為將被解碼的塊X的預測塊P。
為了更有效地執行編碼處理,除了預測DC系數外,MPEG-4包括也對AC系數執行預測的模式。
在通過DC系數預測的編碼處理中,如上所選擇的預測塊系數中,只有DC系數將被用于預測,并且這些系數在編碼中系數固定地通過Z形掃描進行讀取。
在通過AC系數預測的編碼處理中,當將要被解碼的塊受到可變長度解碼時,依靠DC預測的結果選擇掃描次序。例如,除了圖38中所示的Z形掃描外,當預測塊為C時,選擇圖18中所示的水平優先次序掃描,而當預測塊為A時,選擇圖19中所示垂直優先次序掃描。
如上所述,預測方向是根據相鄰的塊決定的,并且選擇編碼中的掃描次序,也就是圖38中所示的Z形掃描、圖18中所示的水平優先次序掃描、圖19中所示的垂直優先次序掃描,以執行掃描轉換(步驟S34)。然后,執行逆量化處理(步驟S35)和逆DCT處理(步驟S36),以便成功實現MPEG-4中的解碼。
圖20為根據第三優選實施例的可變長度解碼裝置中與MPEG-4對應的處理的流程圖。參見圖20描述處理流程。
與從輸入單元2輸入的數據對應的宏塊類型和CBP,在可變長度解碼單元3中受到可變長度解碼(步驟41)。進一步,系數被解碼(步驟S42)。然后數據被順序地以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的狀態進行解碼(步驟S43至步驟S46)。
在與宏塊對應的可變長度解碼完成(步驟S46至步驟S47)之后,將與相應塊的DC系數傳輸到第二數據緩沖器15(步驟S48),并且在后級處理單元10中,根據上述方法判斷確定數據排列的預測方向(步驟S49)。在執行AC預測的情況下,數據以水平掃描次序或垂直掃描次序進行解碼。結果,在圖21中顯出了水平掃描情況下信息寄存器中的數據排列,而在圖22中顯出了垂直掃描情況下信息寄存器中的數據排列。
第一讀控制單元8判斷信息寄存器6(步驟S50),并且與信息寄存器6中存儲“1”的比特對應的地址,被輸出到數據緩沖器4,使得存儲在該地址的“LEVEL”被讀取(步驟S51)。在選擇單元9中,第一讀控制單元8對信息寄存器6進行判斷,當信息寄存器6中的比特為“0”時“0”就被輸出到第二數據緩沖器15,而當比特為“1”時來自第一數據緩沖器4的“LEVEL”就被作為輸出數據而輸出(步驟S51)。
第二寫控制單元16與第一讀控制單元8協作寫入來自選擇單元9的數據(步驟S52)。
在與一個塊對應的數據寫入完成之后(步驟S53中為是),第二讀控制單元17根據適合于確定的預測方向的掃描方法,從第二數據緩沖器15中讀取數據(步驟S54至S55),并且將所讀取的數據輸出到后級處理單元10(步驟S56)。同時,可變長度解碼單元3開始解碼下一個塊(步驟S41)。
在可變長度解碼單元3中,數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態被解碼。如果后級處理單元10已經完成該處理(步驟S57中為是),則重復執行上述操作(步驟S58)。如果后級處理單元10沒有完成該處理,則暫停數據傳輸。
其中CBP為“0”的塊,可能不會被傳輸到第二數據緩沖器15。因為CBP信息和DC系數一樣被輸出到后級處理單元10,后級處理單元10將第二數據緩沖器15中所有相關的塊作為“0”,并且執行后級處理。
根據上述本實施例的結構,得到如下效果。
因為增加了僅傳輸DC系數的步驟,所以可以加速通過MPEG-4中使用的AC預測或類似方法實現的可變長度解碼處理。
第四優選實施例參照附圖描述根據本發明第四優選實施例的可變長度解碼裝置。
圖23顯示根據第四優選實施例的可變長度解碼裝置的結構示意圖。圖23中與第一優選實施例有相似結構的部件用相同的標號表示,這里不再描述。
根據本實施例的可變長度解碼裝置以如下方式組成在根據第一優選實施例的可變長度解碼裝置的結構中進一步提供信息寄存器組18和寄存器選擇單元19,其中信息寄存器組18包括至少一個能夠基于地址加法器5結果、以不同排列次序存儲m×n比特數據的信息寄存器,寄存器選擇單元19用于從后級處理單元10獲得表示已解碼塊的特征的特征信息、并且根據該特征信息選擇任意信息寄存器組18。
參見附圖描述根據本實施例的可變長度解碼裝置的操作。在下面所給出的描述中,一個宏塊包括6個數據塊,每個塊包括8×8個數據。
輸入單元2、可變長度解碼單元3、數據緩沖器4、地址加法器5、寫控制單元7、讀控制單元8和選擇單元9的操作,與第一優選實施例中所描述的操作一樣。
參見圖20的流程圖描述本實施例。
在可變長度解碼單元3中,數據以與一個宏塊對應的“RUN”和“LEVEL”被組合的狀態被解碼(步驟S41和S42)。當“LEVEL”的寫入完成時(步驟S43和S45),讀控制單元8從數據緩沖器4中讀取各個塊的DC系數(步驟S48),并將所讀取的DC系數輸出到后級處理單元10。如圖17所示,預測方向根據由后級處理單元10接收的DC系數來確定,并且將表示掃描次序的選擇信號輸出到寄存器選擇單元19。寄存器選擇單元19從信息寄存器組18中選擇合適的信息寄存器,以使讀控制單元8和選擇單元9得到控制。其后選擇單元9、后級處理單元10和輸出單元11的操作與第一優選實施例中描述的相同。
根據以上描述的本實施例的結構,得到如下效果。
信息寄存器組18中提供了具有多種排列的信息寄存器,可以根據從后級處理單元10輸入的信息選擇信息寄存器,因此能夠提高諸如MPEG-4中可變長度解碼的解碼速度。
第五優選實施例參照附圖描述根據本發明第五優選實施例的可變長度解碼裝置。
圖24顯示根據第五優選實施例的可變長度解碼裝置的結構示意圖。圖24中與第一優選實施例有相似結構的部件以相同的標號表示,這里不再描述。
根據本實施例的可變長度解碼裝置以如下方式組成在根據第一優選實施例的可變長度解碼裝置的結構中進一步包括用于存儲地址加法器5結果的第二信息寄存器20,用于存儲來自第一數據緩沖器4的“LEVEL”的第二數據緩沖器21,用于控制相對于第二數據緩沖器21的數據寫入的第二寫控制單元,以及用于根據第二信息寄存器20從第二數據緩沖器21中讀取“LEVEL”的第二讀控制單元23。
參照附圖描述根據本實施例的可變長度解碼裝置的操作。本實施例以一個塊包括8×8個數據的情況進行描述。
輸入單元2、可變長度解碼單元3、第一數據緩沖器4、地址加法器5、第一寫控制單元7和第一讀控制單元8的操作,與第一優選實施例中所描述的操作一樣。
圖25是根據第五優選實施例的可變長度解碼裝置運行的流程圖。參照圖25,描述該處理流程。
在可變長度解碼單元3中,數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態被解碼(步驟S61)。當“LEVEL”的寫入完成時(步驟S62至S64),第一讀控制單元8判斷第一信息寄存器(步驟S66),并將與在第一信息寄存器6中存儲“1”的比特對應的地址輸出到第一數據緩沖器4,從而讀取存儲在該地址的“LEVEL”(步驟S67)。第二寫控制單元22和第一讀控制單元8協作在第二數據緩沖器21中寫入來自第一數據緩沖器4的數據(步驟S68)。
在關于第二數據緩沖器21的與一個塊對應的數據寫入完成之后(步驟S69中為是),第二讀控制單元23判斷第二信息寄存器20(步驟S70),并將與在第二信息寄存器20中存儲“1”的比特對應的地址輸出到第二數據緩沖器21,從而讀取存儲在該地址的“LEVEL”(步驟S71)。
第二讀控制單元23一判斷第二信息寄存器20,選擇單元9就在第二信息寄存器20的比特為“0”時向后級處理單元10輸出“0”,而在該比特為“1”時將來自第二數據緩沖器21的“LEVEL”作為輸出數據輸出(步驟S72)。同時,可變長度解碼單元3開始解碼下一個塊(步驟S61),并且數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態被解碼(步驟S61)。然后,如果后級處理單元10已經完成該處理(步驟S73中為是),則重復執行上述操作(步驟S74),然而如果沒有完成,則暫停數據傳輸。
根據以上描述的本實施例的結構,得到如下效果。
無需等待后級處理單元10的處理完成,就可以輸出第一數據緩沖器4的數據。此外,只有“LEVEL”在數據緩沖器之間傳輸。結果,可以很快執行下一個可變長度解碼,這進一步加速了解碼處理。
第六優選實施例參照附圖描述根據本發明第六優選實施例的可變長度解碼裝置。
圖26顯示根據第六優選實施例的可變長度解碼裝置的結構示意圖。圖26中與第一優選實施例有相似結構的部件以相同的標號表示,這里不再描述。
根據本實施例的可變長度解碼裝置以如下方式組成在根據第一優選實施例的可變長度解碼裝置的結構中進一步包括用于存儲來自第一數據緩沖器4的“LEVEL”的第二數據緩沖器24,用于控制相對于第二數據緩沖器24的數據寫入的第二寫控制單元25,用于從第二數據緩沖器24讀取“LEVEL”的第二讀控制單元26,和用于初始化第二數據緩沖器24的初始化單元27。
參照附圖描述根據本實施例的可變長度解碼裝置的運行。本實施例以一個塊包括8×8個數據的情況進行描述。
輸入單元2、可變長度解碼單元3、第一數據緩沖器4、地址加法器5、第一寫控制單元7和第一讀控制單元8的操作,與第一優選實施例中所描述的操作一樣。
圖27為根據第六優選實施例的可變長度解碼裝置運行的流程圖。參照圖27,描述該處理流程。
在解碼處理開始之前,初始化單元27將第二數據緩沖器24中所有的數值初始化為“0”(步驟S81)。
在可變長度解碼單元3中,數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態進行解碼(步驟S82)。當“LEVEL”的寫入完成時(步驟S83至S85),第一讀控制單元8判斷第一信息寄存器(步驟S87至S88),并將與在第一信息寄存器6中存儲“1”的比特對應的地址輸出到第一數據緩沖器4,從而讀取存儲在該地址的“LEVEL”(步驟S89)。第二寫控制單元25與第一讀控制單元8協作在第二數據緩沖器24中的由第一讀控制單元8讀取的地址處,寫入來自第一數據緩沖器4的數據,從而重寫其中初始化的數據(步驟S90)。
在第二數據緩沖器24中與一個塊對應的數據寫入完成之后(步驟S91中為是),第二讀控制單元26從第二數據緩沖器24中順序地讀取包括初始化數據的數據(步驟S92)。同時,可變長度解碼單元3開始解碼下一個塊(步驟S82),并且數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態進行解碼。然后,如果后級處理單元10已經完成該處理(步驟S94中為是),則重復執行上述操作(步驟S96),然而如果沒有完成,則暫停數據傳輸。
在對第二數據緩沖器24的讀取操作完成、以及下一個塊的寫入開始之前,初始化單元27初始化第二數據緩沖器24(步驟S95)。
根據以上描述的本實施例的結構,得到如下效果。
提供了用于初始化第二數據緩沖器24的初始化單元27。因此,無需等待后級處理單元10的處理完成,就可以輸出數據。此外,只有“LEVEL”在數據緩沖器之間傳輸。結果,可以很快執行下一個可變長度解碼,這進一步加速了解碼處理。
第七優選實施例參照附圖描述根據本發明第七優選實施例的可變長度解碼裝置。
圖28顯示根據第二優選實施例的可變長度解碼裝置的結構示意圖。圖28中與第一優選實施例有相似結構的部件以相同的標號表示,這里不再描述。
根據本實施例的可變長度解碼裝置以如下方式組成在根據第一優選實施例的可變長度解碼裝置的結構中進一步包括包括至少一個數據緩沖器的數據緩沖器組28,第二寫控制單元29,第二讀控制單元30,和用于從數據緩沖器組28中選擇將要讀取的數據的第二選擇單元31。
參照附圖描述根據本實施例的可變長度解碼裝置的運行。本實施例以一個塊包括8×8個數據的情況進行描述。此外,在以下描述中,數據緩沖區組28包括兩個數據緩沖器(第二和第三數據緩沖器28a和28b)輸入單元2、可變長度解碼單元3、第一數據緩沖器4、地址加法器5、信息寄存器6、第一寫控制單元7和第一讀控制單元8的操作,與第一優選實施例中所描述的操作一樣。
在可變長度解碼單元3中,數據以與一個塊對應的“RUN”和“LEVEL”被組合的狀態進行解碼。當“LEVEL”的寫入完成時,第一讀控制單元8判斷第一信息寄存器,并將與在第一信息寄存器6中存儲“1”的比特對應的地址輸出到第一數據緩沖器4,從而讀取存儲在該地址的“LEVEL”。第一讀控制單元8一判斷信息寄存器6,選擇單元9就在信息寄存器6的比特為“0”時向第二數據緩沖器15輸出“0”,而在該比特為“1”時將來自第一數據緩沖器4的“LEVEL”作為輸出數據輸出。
第二寫控制單元29和第一讀控制單元8協作在第二數據緩沖器28a中寫入來自選擇單元9的數據。
在對第二數據緩沖器28a的與一個塊對應的數據寫入完成之后,第二讀控制單元30讀取來自第二數據緩沖器28a的數據,并將所讀取的數據輸出到第二選擇單元31。每當與一個塊對應的處理完成時,第二選擇單元31在來自第二數據緩沖器28a的數據和來自第三數據緩沖器28b的數據之間切換,并將所選擇的數據輸出到后級處理單元10。
與可變長度解碼單元3中以與一個塊對應的“RUN”和“LEVEL”被組合的狀態進行的數據解碼完成相響應,開始執行將數據傳輸到第三數據緩沖器28b。在可變長度解碼單元3中與一個塊對應的解碼處理完成后,來自選擇單元9的數據交替地寫入第二數據緩沖器28a和第三數據緩沖器28b。
根據以上描述的結構,得到如下效果。
后級處理單元10包含多個將被讀取的數據緩沖器。因此,無需等待后級處理單元10的處理完成,就可以輸出數據。結果,可以很快執行下一個可變長度解碼,這進一步加速了解碼處理。
在本實施例中,數據緩沖器組28的數據緩沖器可以多于兩個。
第八優選實施例參照附圖描述根據本發明第八優選實施例的可變長度解碼裝置。
圖29顯示根據第八優選實施例的可變長度解碼裝置的結構示意圖。圖29中與第一優選實施例有相似結構的部件以相同的標號表示,這里不再描述。
根據本實施例的可變長度解碼裝置以如下方式組成在根據第一優選實施例的可變長度解碼裝置的結構中進一步包括多個處理系統,用于根據從數據緩沖器讀取的已解碼的“RUN”、在信息寄存器中根據來自地址加法器的結果(顯示“LEVEL”位置的數值)的存儲來執行處理。下面根據包括兩個處理系統的例子進行描述。
根據本實施例的可變長度解碼裝置如圖29所示,進一步包括用于存儲地址加法器5結果的第二信息寄存器32,用于存儲來自可變長度解碼單元3的“LEVEL”的第二數據緩沖器33,用于根據來自地址加法器5的信息在第二數據緩沖器33中存儲“LEVEL”的第二寫控制單元34,用于根據第二信息寄存器32從第二數據緩沖器33讀取“LEVEL”的第二讀控制單元35,和用于在來自第一數據緩沖器4的數據和來自第二數據緩沖器33的數據之間切換、并輸出所選擇的數據的切換單元36。
參照附圖描述根據本實施例的可變長度解碼裝置的操作。本實施例以一個塊包括8×8個數據的情況進行描述。
如圖29中所示,由第一信息寄存器6、第一數據緩沖器4、第一寫控制單元7和第一讀控制單元8以與第一優選實施例相同方式執行的處理,稱為處理A,由第二信息寄存器32、第二數據緩沖器33、第二寫控制單元34和第二讀控制單元35以與第一優選實施例相同方式執行的處理,稱為處理B。
根據在可變長度解碼單元3中解碼的“RUN”的大小,以圖38中所示的Z形掃描次序執行地址計算,也就是以地址加法器5中的1→2→9→17...的次序執行地址計算。當根據處理A執行寫操作、并且與一個塊對應的解碼數據從可變長度解碼單元3中輸出完成時,執行根據處理A的讀操作,并且從切換單元36輸出解碼數據。與根據處理A的讀操作同時,順序地從可變長度解碼單元3中輸出與下一個塊對應的解碼數據,然后,地址由地址加法器5計算,從而執行根據處理B的寫操作。
當與一個塊對應的解碼數據從可變長度解碼單元3中輸出完成時,執行根據處理B的讀操作,而且從切換單元36輸出解碼數據。與根據處理B的讀操作同時,順序地從可變長度解碼單元3中輸出與下一個塊對應的解碼數據,從而執行根據處理A的寫操作。
此后,后級處理單元10和輸出單元11的操作與第一優選實施例中所描述的操作相同。
根據以上描述的本實施例的結構,得到如下效果。
由于具有雙重的第一優選實施例的結構,因此可以同時執行寫和讀操作。因此,無需等待關于數據緩沖器的讀操作的完成,這縮短了數據傳輸時間。結果,可以縮短整個可變長度解碼過程的處理時間,并且可以實現高速率解碼處理。
第九優選實施例參照附圖描述根據本發明第九優選實施例的可變長度解碼裝置。
圖30顯示根據第九優選實施例的可變長度解碼裝置的結構示意圖。圖30中與第一優選實施例有相似結構的部件以相同的標號表示,這里不再描述。
根據本實施例的可變長度解碼裝置以如下方式組成在根據第一優選實施例的可變長度解碼裝置的結構中進一步包括由包括寫端口和能夠獨立地讀取數據的讀端口的數據緩沖器37,和具有與至少一個塊對應的比特長度的信息寄存器38。
圖31是根據第九優選實施例的可變長度解碼裝置操作的流程圖。參照圖31,描述該處理流程。進一步,圖32顯示根據第九優選實施例的時序。本實施例參考一個塊包括8×8個數據的情況來進行描述。
輸入單元2和地址加法器5的操作,與第一優選實施例中所描述的操作一樣。
在可變長度解碼單元3中,數據以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的狀態進行解碼(步驟S101),“LEVEL”被寫入具有雙端口的數據緩沖器37(步驟S102至S105)。按照如圖33中所示的較小地址次序,“LEVEL”被緊湊地存儲在數據緩沖器37中。當“LEVEL”從可變長度解碼單元3存儲到數據緩沖器37中時,讀處理開始(步驟S107和S108),并且與信息寄存器38中存儲“1”的比特對應的地址,被輸出到數據緩沖器37,以使存儲在該地址的“LEVEL”被讀取(步驟S108)。讀控制單元8一判斷信息寄存器38,選擇單元9就在信息寄存器38的比特為“0”時將“0”輸出到后級處理單元(步驟S109),而在該比特為“1”時將來自第一數據緩沖器4的“LEVEL”作為輸出數據輸出。
如上所述,讀和寫操作同時執行,并且判斷數據緩沖器中將被解碼的“LEVEL”的寫位置是否為允許寫和讀“LEVEL”的位置。然后,如果不是允許寫的位置,則可變長度解碼處理暫時中止。
如圖32所示,在信號f為“H”時寫操作是有效的,通過將信號G轉換為“L”,數據I被存儲到地址h的位置。當信號f為“L”時,寫操作中止。讀操作根據信號j來執行,信號j用于讀取地址k的“LEVEL”,該地址k與在信息寄存器38中中存儲“1”的比特對應。當寫位置的“LEVEL”被讀取并允許寫操作時,信號f被轉換為“H”,以便重新開始可變長度解碼。如圖33和34所示,只要寫操作被允許,就連續地對下一個塊執行可變長度解碼。
根據以上描述的本實施例的結構,得到如下效果。
在后級處理單元能夠充分發揮性能的情況下,由于數據的寫和讀同時執行,因而無需等待對數據緩沖器的讀操作就可以執行數據傳輸。因此,可以縮短可變長度解碼的處理時間。
數據被緊湊地存儲在數據緩沖器中,這使得數據緩沖器能夠被充分地使用并且需要少量的空間。
通過以上描述,解碼處理能夠在通常最佳的結構中獲得更高的速度。
第十優選實施例圖35是根據本發明第十優選實施例的圖像獲取系統50的結構框圖,該圖像獲取系統為數碼靜止照相機(DSC)的一個示例。圖35中所示的信號處理裝置55,為根據前面第一優選實施例到第九優選實施例所描述的可變長度解碼裝置中的任何一個。
如圖35所示,進入光學系統51的圖像光在圖像傳感器52上成像。圖像傳感器52由定時控制電路58驅動,從而存儲圖像光并將所存儲的圖像光光電轉換成電信號。從圖像傳感器52讀取的電信號在模數轉換器(ADC)53中被轉換成數字信號,然后被輸入到包括信號處理裝置55的圖像處理電路54。在圖像處理電路54中,執行諸如Y/C處理、邊緣處理、圖像放大/縮小處理、根據本發明的圖像壓縮/擴展處理等圖像處理。經圖像處理的信號被記錄/傳輸電路56記錄在介質中或者傳輸。所記錄或傳輸的信號在再生電路57中再生。系統控制電路59控制整個圖像獲取系統50。
在根據本發明優選實施例的圖像處理裝置55中的圖像處理,不是必須只應用于根據經光學系統51在圖像傳感器52中成像的光的信號。例如,圖像處理可以應用于處理以電信號從外部裝置輸入的圖像信號的情況。
這樣進一步描述,在根據本發明的可變長度解碼裝置和可變長度解碼方法中,與存儲在數據緩沖器中的數據對應的信息,由地址保持器(由地址加法器和信息寄存器或者地址存儲單元組成)掌握,從而讀取除了“0”之外的數據。因此,縮短了讀操作所需的時間長度,可變長度解碼獲得了更高的速度,并且減少了功率消耗。所以,根據本發明的可變長度解碼裝置和可變長度解碼方法,可以應用于需要高速解碼處理的圖像解碼系統等。
根據本發明的可變長度解碼裝置和可變長度解碼方法,可以有效地應用于帶有照相機的移動電話、DSC(數字靜止照相機)等其中安裝有MPEG-4的設備中,其中MPEG-4作為一種低比特率編碼技術而受到關注。
雖然已經詳細描述和圖解了本發明,但是顯然應該理解,僅是通過圖解和舉例的方式來說明本發明,本發明并不局限于這些圖解和示例,本發明的精神和范圍僅由所附的權利要求的范圍限定。
權利要求
1.一種用于解碼可變長度編碼數據和行程長度編碼數據的可變長度解碼裝置,包括可變長度解碼單元,用于以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式,順序地解碼從外部輸入的可變長度編碼數據和行程長度編碼數據;數據緩沖器,用于存儲所述“LEVEL”;地址保持器,用于根據“RUN”表示的“0”的個數保持與該“RUN”對應的“LEVEL”的地址;寫控制單元,用于根據該地址保持器的信息在數據緩沖器中寫入“LEVEL”;讀控制單元,用于根據該地址保持器的信息從數據緩沖器中讀取“LEVEL”;選擇單元,用于根據該地址保持器的信息選擇“0”和存儲于數據緩沖器中的“LEVEL”中的一個,并輸出所選擇的數據;和后級處理單元,用于對來自選擇單元的數據執行后級處理,并向外部輸出所得到的數據。
2.根據權利要求1所述的可變長度解碼裝置,其中該地址保持器包括地址加法器,用于根據“RUN”表示的“0”的個數計算與該“RUN”對應的“LEVEL”的地址,并且控制所述寫控制單元;和信息寄存器,用于存儲由地址加法器得到的結果,并且控制所述選擇單元和讀控制單元。
3.根據權利要求2所述的可變長度解碼裝置,其中該地址保持器進一步包括時鐘控制單元,用于控制向所述數據緩沖器提供的時鐘,并且該時鐘控制單元根據存儲在信息寄存器中的數據數值是否為“0”的信息,僅在該數據數值不為“0”時向數據緩沖器提供時鐘。
4.根據權利要求1所述的可變長度解碼裝置,其中用于根據“RUN”表示的“0”的個數存儲與該“RUN”對應的“LEVEL”的地址并控制寫控制單元、讀控制單元和選擇單元的地址存儲單元,構成所述地址保持器。
5.根據權利要求2所述的可變長度解碼裝置,其中該數據緩沖器適于在一個地址中存儲L(L是至少為2的自然數)個“LEVEL”,并且進一步包括第二選擇單元,用于根據信息寄存器的數值選擇并輸出所述L個數據,并且所述L個數據根據該信息寄存器的數值被同時讀取。
6.根據權利要求1所述的可變長度解碼裝置,進一步包括第二數據緩沖器,用于存儲來自選擇單元的數據;第二寫控制單元,用于與讀控制單元的操作協作控制對第二數據緩沖器的寫操作;第二讀控制單元,用于控制對第二數據緩沖器的讀操作;并且該后級處理單元用于對來自第二數據緩沖器的數據執行后級處理,并向外部輸出所得到的數據。
7.根據權利要求6所述的可變長度解碼裝置,其中來自所述選擇單元的數據也被輸出到所述后級處理單元。
8.根據權利要求2所述的可變長度解碼裝置,進一步包括包括至少一個信息寄存器的信息寄存器組,用于根據地址加法器得到的結果,以不同的排列次序存儲數據;和寄存器選擇單元,用于獲得表示來自后級處理單元的解碼數據的特征的特征信息,并且根據所述特征信息選擇信息寄存器組中的任意寄存器。
9.一種用于解碼可變長度編碼數據和行程長度編碼數據的可變長度解碼裝置,包括可變長度解碼單元,用于以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式,順序地解碼從外部輸入的可變長度編碼數據和行程長度編碼數據;第一數據緩沖器,用于存儲所述“LEVEL”;地址加法器,用于根據“RUN”表示的“0”的個數計算與該“RUN”對應的“LEVEL”的地址;第一信息寄存器,用于存儲由地址加法器得到的結果;第一寫控制單元,用于根據該地址加法器的信息在第一數據緩沖器中存儲“LEVEL”;第一讀控制單元,用于根據第一信息寄存器的數值從第一數據緩沖器中讀取“LEVEL”;第二信息寄存器,具有與所述第一信息寄存器相同的結構;第二數據緩沖器,用于存儲來自所述第一數據緩沖器的“LEVEL”;第二寫控制單元,用于與第一讀控制單元的操作協作控制對第二數據緩沖器的寫操作;第二讀控制單元,用于根據第二信息寄存器的數值,控制對第二數據緩沖器的讀操作;選擇單元,用于根據第二信息寄存器的數值,選擇“0”和存儲于第二數據緩沖器中的“LEVEL”中的一個;和后級處理單元,用于對從選擇單元輸出的數據執行后級處理,并向外部輸出所得到的數據。
10.根據權利要求9所述的可變長度解碼裝置,進一步包括用于初始化第二數據緩沖器的初始化單元,其中在對第二數據緩沖器的讀操作完成之后,該第二數據緩沖器被該初始化單元初始化。
11.根據權利要求6所述的可變長度解碼裝置,進一步包括數據緩沖器組,包括第二數據緩沖器的至少一個數據緩沖器被安排在其中;第二選擇單元,用于選擇從多個數據緩沖器讀取的數據,其中來自第一數據緩沖器的數據,被連續地存儲在所述多個數據緩沖器的每一個中。
12.根據權利要求1所述的可變長度解碼裝置,進一步包括多個處理系統,其中信息寄存器、數據緩沖器、寫控制單元和讀控制單元組成各系統;和切換單元,用于以屬于一個處理系統的數據緩沖器向后級處理單元輸出數據的切換方式進行控制,其中對一個處理系統中的數據緩沖器的寫操作,以及對另一處理系統中的數據緩沖器的讀操作,被同時執行。
13.根據權利要求2所述的可變長度解碼裝置,其中包括寫端口和能夠獨立地讀取數據的讀端口的存儲器構成所述數據緩沖器,所述信息寄存器具有與至少一個塊對應的比特長度,并且寫和讀操作以如下方式被并行執行在“LEVEL”被寫入數據緩沖器時,讀操作由讀控制單元啟動。
14.根據權利要求1所述的可變長度解碼裝置,其中該后級處理單元為逆量化處理單元。
15.一種用于解碼可變長度編碼數據和行程長度編碼數據的可變長度解碼方法,包括以下步驟順序地輸入可變長度編碼數據和行程長度編碼數據的步驟;以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式、順序地解碼所輸入的可變長度編碼數據和行程長度編碼數據的步驟;根據“RUN”表示的“0”的個數保持與該“RUN”對應的“LEVEL”的地址的步驟;根據所述地址在數據緩沖器中存儲“LEVEL”的步驟;根據所述地址從數據緩沖器中讀取“LEVEL”的步驟;根據所述地址選擇“0”和存儲于數據緩沖器中的“LEVEL”中的一個、并輸出所選擇的數據的步驟;對所選擇的數據執行后級處理的步驟;和輸出后級處理后的數據的步驟。
16.根據權利要求15所述的可變長度解碼方法,其中所述保持地址的步驟包括根據“RUN”表示的“0”的個數計算與該“RUN”對應的“LEVEL”的地址的步驟;和根據信息寄存器中的地址存儲標簽的步驟。
17.根據權利要求15所述的可變長度解碼方法,其中在所述保持地址的步驟中,根據“RUN”表示的“0”的個數,直接存儲與該“RUN”對應的“LEVEL”的地址。
18.根據權利要求15所述的可變長度解碼方法,進一步包括在第二數據緩沖器中存儲來自選擇單元的數據的步驟;從第二數據緩沖器讀取數據的步驟;對來自第二數據緩沖器的數據執行后級處理的步驟;輸出后級處理后的數據的步驟,其中如果第二數據緩沖器處于可寫狀態,則所選擇的數據被存儲在第二數據緩沖器中。
19.根據權利要求18所述的可變長度解碼方法,其中解碼后的“LEVEL”以較小地址的次序被順序而緊湊地存儲在第一數據緩沖器中,所存儲的“LEVEL”或“0”在對第二數據緩沖器的寫操作時,以預定掃描次序被轉換、并被輸出。
20.根據權利要求18所述的可變長度解碼方法,其中解碼后的“LEVEL”以較小地址的次序被順序而緊湊地存儲在第一數據緩沖器中,所存儲的“LEVEL”或所存儲的“0”在對第二數據緩沖器的讀操作時,以預定掃描次序被轉換、并被輸出。
21.根據權利要求18所述的可變長度解碼方法,進一步包括傳輸DC系數的步驟;根據所述DC系數判斷解碼數據的特征的步驟;按照由所判斷的解碼數據的特征確定的數據排列次序,從第二數據緩沖器讀取數據的步驟;對從第二數據緩沖器讀取的數據執行后級處理的步驟;和輸出后級處理后的數據的步驟。
22.根據權利要求18所述的可變長度解碼方法,進一步包括在第二信息寄存器中存儲第一信息寄存器結果的步驟;在第二數據緩沖器中存儲從第一數據緩沖器讀取的“LEVEL”的步驟;根據第二信息寄存器的數值從第二數據緩沖器讀取“LEVEL”的步驟;根據第二信息寄存器的數值,選擇“0”和存儲在第二數據緩沖器中的“LEVEL”中的一個的步驟,其中如果第二數據緩沖器處于可寫狀態,則從第一數據緩沖器輸出的“LEVEL”被存儲在第二數據緩沖器中。
23.根據權利要求18所述的可變長度解碼方法,進一步包括初始化第二數據緩沖器的步驟,其中在對第二數據緩沖器的讀操作完成之后,第二數據緩沖器被初始化。
24.根據權利要求15所述的可變長度解碼方法,其中包括寫端口和能夠獨立地讀取數據的讀端口的存儲器構成所述數據緩沖器,進一步包括以較小地址的次序在數據緩沖器中緊湊地存儲“LEVEL”的步驟;至少一個“LEVEL”一被存儲到數據緩沖器中就開始讀操作的步驟;判斷數據緩沖器中被寫入將被解碼的“LEVEL”的位置是否與允許讀和寫“LEVEL”的位置相對應的步驟;當所述寫入位置不與允許寫入“LEVEL”的位置相對應時,暫時中止解碼的步驟;和當寫操作被允許時,重新開始解碼的步驟。
25.根據權利要求15所述的可變長度解碼方法,其中執行后級處理的步驟為逆量化步驟。
26.一種圖像獲取系統,包括圖像處理電路,包括根據權利要求1至14所述的任意可變長度解碼裝置,并且執行圖像處理;傳感器,用于將圖像信號輸出到該圖像處理電路;和光學系統,用于對所述傳感器上的光成像。
27.根據權利要求26所述的圖像獲取系統,進一步包括轉換器,用于將從所述傳感器獲得的圖像信號轉換成數字信號,并將所述數字信號提供到該圖像處理電路。
全文摘要
根據本發明的用于解碼可變長度編碼數據和行程長度編碼數據的可變長度解碼裝置包括可變長度解碼單元3,用于以表示“0”的個數的“RUN”和表示系數數值大小的“LEVEL”被組合的方式,順序地解碼從外部輸入的可變長度編碼數據和行程長度編碼數據;數據緩沖器4,用于存儲“LEVEL”;地址保持器5和6,用于根據“RUN”表示的“0”的個數存儲與“RUN”對應的“LEVEL”的地址;寫控制單元7,用于根據地址保持器的信息在數據緩沖器4中寫入“LEVEL”;和讀控制單元8,用于根據地址保持器的信息從數據緩沖器4中讀取“LEVEL”。
文檔編號H04N7/50GK1744720SQ200510093968
公開日2006年3月8日 申請日期2005年8月31日 優先權日2004年8月31日
發明者高倉憲太郎, 北村臣二, 永田太一 申請人:松下電器產業株式會社