專利名稱:圖像編碼方法和圖像編碼裝置的制作方法
技術領域:
本發明涉及圖像編碼方法和圖像編碼裝置。
背景技術:
通常,使用幀內編碼和幀間編碼對動態圖像進行編碼。在將編碼后的動態圖像通過傳輸路徑向接收側傳輸的過程中,存在由于傳輸錯誤而產生誤碼的情況。在使用幀間編碼進行編碼的情況下,如果產生上述誤碼,則對于后續的圖像而言,存在錯誤(error)持續傳播的情況。于是,通過定期地插入經幀內編碼的圖像,能夠防止錯誤的傳播。這稱為刷新。另一方面,與幀間編碼相比,幀內編碼所產生的編碼量更大。因此,使用幀內編碼的部分與使用幀間編碼的部分之間,編碼量的大小產生較大的偏差。而實際上由于傳輸率一般具有上限,因此需要抑制所產生的編碼量的峰值,其結果是,存在導致畫質劣化的問題。在專利文獻1中,公開了在圖像的一部分中設定刷新區域,盡可能使局部的編碼量的產生減少的技術。專利文獻1 日本特開平7-322266號公報
發明內容
在專利文獻1中記載的技術中,也考慮了幀間編碼的運動補償。即,通過使刷新區域的位移量以超過運動補償的補償范圍進行重疊(overlap)并且進行位移,防止刷新后的宏塊因參照刷新前的像素使錯誤再次傳播。但是,由于總是以超過運動補償的補償范圍進行重疊,因此存在刷新區域的寬度變大,局部產生的編碼量變大的問題。此外,由于位移量相對地減少,因此存在使刷新區域在全畫面內循環一周所需要的時間變長,錯誤發生時的恢復需要更長的時間等問題。為了解決上述問題,本發明提供一種圖像編碼方法,其使用幀內編碼和幀間編碼對圖像進行編碼,該圖像編碼方法的特征在于,包括按每幀使利用幀內編碼進行圖像刷新的刷新區域移動規定的移動量,以使該刷新區域定期地在整個幀內循環;當對上述刷新區域通過后的宏塊進行幀間編碼時,選擇該宏塊的運動補償矢量,以便參照上述刷新區域通過后的圖像。根據以上方法,移動刷新區域時無需始終以超過運動補償的補償范圍進行重疊, 因此也無需超出必要地擴大刷新區域的寬度,從而能夠將局部產生的編碼量的增大抑制到最小限度。由此,能夠實現畫質的提高。此外,由于刷新區域的位移量不必相對減少,因此能夠減少使刷新區域在全畫面內循環一周所需要的時間,錯誤發生時也能夠迅速恢復。
圖1為表示編碼裝置的例子的圖。
圖2為表示控制部111的流程圖的例示。圖3為說明運動搜索范圍的限制方法的圖例。圖4為表示編碼裝置的例子的圖。圖5為表示控制部111的流程圖的例示。附圖標記說明101減法器102 開關103正交變換部104量化部105熵編碼部106逆量化部107逆正交變換部108參照圖像存儲器109運動搜索部110成本計算部111控制部
具體實施例方式下面,對實施例進行說明。圖1是實施例1中的編碼裝置的框圖的例子。下面,對輸入圖像按規定大小的矩形區域(宏塊)進行處理。將輸入圖像的各宏塊輸入到減法器101,求出與從運動搜索部 109輸出的預測圖像的差值,并輸出該差值。將減法器101的輸出和輸入圖像輸入到開關102,根據控制部111的指示,按宏塊從其中選擇任意一方。即,當指示為幀內編碼時,選擇輸入圖像。此外,當指示為幀間編碼時,選擇減法器109的輸出。將被選擇的信號從開關102輸出,輸入到正交變換部103。輸入到正交變換部103的信號,通過正交變換將其從空間域信號變換成頻率域的信號。將變換后的信號輸出到下面的量化部。將輸入到量化部104的信號除以量化系數來對其進行量化處理。將經量化處理后的信號從量化部104輸出,輸入到熵編碼部105和逆量化部106。輸入到熵編碼部105的信號,利用具有與信號的發生概率相應的編碼長度的符號對其進行熵編碼,作為編碼圖像輸出。此外,將輸入到逆量化部106的信號乘以量化系數來對其進行逆量化處理,并輸出到逆正交變換部107。輸入到逆正交變換部107的信號,通過逆正交變換從頻率信號域變換為空間域信號。變換后的信號作為后續幀的參照圖像存儲在參照圖像存儲器108中。運動搜索部109通過運動搜索處理,參照存儲在參照圖像存儲器108中的過去的參照圖像,找到數值與輸入圖像的宏塊最接近的部分。該搜索處理在控制部111所指定的運動搜索范圍內進行搜索。將作為搜索結果的預測圖像輸入到上述的減法器101。成本計算部110對于減法器101的輸出和輸入圖像的宏塊,分別計算出進行編碼所需要的成本(例如產生編碼量的估計值),并輸出到控制部111。
控制部111根據正在處理中的宏塊屬于刷新區域、刷新前的區域和刷新后的區域中的哪個區域、以及成本計算部110的輸出結果,決定處理中的宏塊的編碼模式、即幀內編碼或幀間編碼的任一編碼模式,對開關102發出指示。進一步,控制部111根據正在處理中(當前)的宏塊的所屬區域,決定運動搜索范圍,對運動搜索部109發出指示。將上述的減法器101、開關102、正交變換部103,、量化部104、熵編碼部105、逆量化部106、逆正交變換部107、參照圖像存儲器108、運動搜索部109、成本計算部110和控制部111等,作為可進行處理的處理部,制作成集成電路等,由此能夠通過硬件來實現編碼裝置。此外,通過控制部111能夠執行以下程序,即,存儲在圖中未示出的存儲器等的存儲單元中的、用于執行減法程序101、開關程序102、正交變換程序103、量化程序104、熵編碼程序105、逆量化程序106、逆正交變換程序107、運動搜索程序109、成本計算程序110等的各種處理的程序,由此也能夠通過軟件來實現編碼裝置。進一步對控制部111的動作進行詳細說明。圖2為控制部111的流程圖的例示。首先,控制部111根據當前的宏塊的位置(地址)對其所屬區域進行判定(步驟201)。在當前的宏塊位于刷新前的區域的情況下,控制部111將運動搜索部109的能夠處理的最大范圍設定為運動搜索范圍,對運動搜索部109發出指示(步驟202)。進一步,控制部111基于成本計算部110的計算結果,選擇幀內編碼和幀間編碼之中編碼成本較低的一方作為當前宏塊的編碼模式,對開關102發出指示(步驟203)。此外,在當前的宏塊位于刷新區域中的情況下,控制部111選擇幀內編碼作為編碼模式,對開關102發出指示(步驟204)。此外,在當前的宏塊位于已刷新完的區域的情況下,控制部111根據當前的宏塊的位置求出限制的運動搜索范圍,以使得運動搜索部109不會參照還沒有刷新完的區域, 并對運動搜索部109發出指示(步驟205)。進一步,控制部111根據成本計算部110的計算結果,選擇幀內編碼和幀間編碼之中編碼成本較低的一方作為當前的宏塊的編碼模式,對開關102發出指示(步驟206)。圖3為對運動搜索范圍的限制方法進行說明的圖例。利用圖3詳細說明上述步驟 205中的處理。該圖中,斜線部分為刷新區域,按每幀向右位移。將當前的編碼處理中的幀記為幀 #n。相對于幀#n的刷新區域,右側為刷新前的區域,左側為已刷新完的區域。此外,幀#n 的運動補償的參照圖像為幀#n-l。這里,考慮當前處理中的宏塊是圖中的(a)的情況。(a)周圍的虛線表示運動補償部109的能夠進行運動搜索處理的最大范圍。在此情況下,運動搜索范圍的一部分(右側)為參照圖像的已刷新完的區域之外的區域(即,相當于幀#n中的刷新區域或刷新前區域的區域)。控制部111將該區域從運動搜索的范圍中除去,將剩余的所限制的范圍作為運動搜索范圍,對運動補償部109進行指定。由此,能夠使得當進行運動補償時一定會參照已刷新完的區域。此外,當前處理中的宏塊是圖中的(b)時,虛線部分(能夠進行運動搜索處理的最
5大范圍)整體包含在已刷新完的區域內。在此情況下,沒有必要對運動搜索范圍進行限制。如上所述,根據本實施例,當移動刷新區域時無需始終以超出運動補償的補償范圍進行重疊,因此也無需將刷新區域的寬度擴大到超出必要的程度。由此,能夠將局部產生的編碼量的增大抑制到最小限度。從而,能夠實現畫質的提高。此外,由于無需以超出運動補償的補償范圍進行重疊,因此刷新區域的位移量不必相對地減少。從而,能夠減少使刷新區域在整個畫面內循環一周所需的時間,能夠在錯誤發生時加速恢復。[實施例2]以下,對實施例2進行說明。省略關于與實施例1相同的部分的說明,僅針對不同的部分進行說明。圖4為實施例2的編碼裝置的框圖的例子。與實施例1的不同之處如下所述。即, 運動搜索部109不接收來自控制部111的關于運動搜索范圍的限制的指示,而是搜索能夠搜索的規定的運動搜索范圍,并將搜索結果的運動矢量輸出到控制部111。控制部111接收從運動搜索部109輸出的運動矢量,利用該運動矢量來決定編碼模式。與圖1同樣,圖4的編碼裝置也能夠以硬件或軟件的方式實現。圖5為控制部111的流程圖的例示。首先,控制部111根據當前的宏塊的位置(地址),對其所屬范圍進行判定(步驟301)。在當前的宏塊位于刷新前的區域的情況下,控制部111進行與步驟203相同的處理(步驟302)。此外,在當前的宏塊位于刷新區域中的情況下,控制部111進行與步驟204相同的處理(步驟303)。此外,在當前的宏塊位于已刷新完的區域的情況下,控制部111利用從運動搜索部109輸出的運動矢量,判定運動搜索部109是否參照了還沒有刷新完的區域(步驟304)。 當判定結果為YES時,控制部111選擇幀內編碼作為編碼模式,對開關102發出指示(步驟 305)。此外,當步驟304的判定結果為NO時,控制部111基于成本計算部110的計算結果,選擇幀內編碼和幀間編碼之中編碼成本較低的一方作為當前的宏塊的編碼模式,對開關102發出指示(步驟306)。如上所述,根據本實施例,當移動刷新區域時無需始終以超出運動補償的補償范圍進行重疊,因此也無需將刷新區域的寬度擴大到超出必要的程度。由此,能夠將局部產生的編碼量的增大抑制到最小限度。從而,能夠實現畫質的提高。此外,由于無需以超出運動補償的補償范圍進行重疊,因此刷新區域的位移量不必相對地減少。從而,能夠減少使刷新區域在整個畫面內循環一周所需的時間,能夠在錯誤發生時加速恢復。另外,以上的各個實施例中示出了刷新區域的形狀為縱長的條狀的例子,不過,當刷新區域的形狀為橫長的條狀時也能夠得到同樣的效果。此外,以上的各個實施例中示出了當移動刷新區域時沒有完全重疊的情況,不過, 可以以任意的寬度進行重疊。在實施例1中,在存在重疊的情況下,相應地運動搜索范圍的限制也放寬,運動補償精度得以提高,因此能夠實現高畫質。如果不過分加大重疊的寬度, 則能夠將由此產生的編碼量的增加抑制到最小限度。另外,本發明不限定于上述的實施例,還包括各種變形例。例如,上述的實施例是為了使本發明簡明易懂而詳細地進行說明,不一定限定為具備所說明的全部結構。此外,也能夠將一個實施例的一部分結構替換成其它實施例的結構,此外,也能夠在一個實施例的結構中添加其他實施例的結構。此外,對于各個實施例的結構的一部分,能夠進行其他結構的追加、刪除或替換。此外,上述的各個結構、功能、處理部、處理單元等,其中的一部分或全部,可以通過集成電路設計等由硬件實現。此外,上述的各個結構、功能等,也可以通過處理器解釋并執行可實現各自功能的程序從而由軟件實現。能夠將實現各種功能的程序、表、文件等信息存儲在存儲器、硬盤、SSD(Solid State Drive,固態電子盤)等記錄裝置中,或者存儲在IC 卡、SD卡、DVD等記錄介質中。此外,控制線和信息線僅示出在說明中被認為是必要的部分,而沒有顯示出產品中全部的控制線和信息線,實際上可以認為全部的結構幾乎都相互連接。
權利要求
1.一種圖像編碼方法,其使用幀內編碼和幀間編碼對圖像進行編碼,該圖像編碼方法的特征在于,包括按每幀使利用幀內編碼進行圖像刷新的刷新區域移動規定的移動量,以使該刷新區域定期地在整個幀內循環;當對所述刷新區域通過后的宏塊進行幀間編碼時,選擇該宏塊的運動補償矢量,以便參照所述刷新區域通過后的圖像。
2.一種圖像編碼方法,其使用幀內編碼和幀間編碼對圖像進行編碼,該圖像編碼方法的特征在于,包括按每幀使利用幀內編碼進行圖像刷新的刷新區域移動規定的移動量,以使該刷新區域定期地在整個幀內循環;在選擇所述刷新區域通過后的宏塊的運動補償矢量以使該宏塊參照所述刷新區域通過前的圖像的情況下,對該宏塊強制使用幀內編碼。
3.一種圖像編碼裝置,其使用幀內編碼和幀間編碼對圖像進行編碼,該圖像編碼裝置的特征在于,包括在被指定的運動搜索范圍中搜索運動矢量的運動搜索單元;和選擇宏塊的編碼模式、并指定針對所述運動搜索單元的運動搜索范圍的控制單元,所述控制單元進行如下動作設置進行圖像刷新的刷新區域,按每幀使該刷新區域移動規定的移動量,以使該刷新區域定期地在整個幀內循環;當處理中的宏塊位于所述刷新區域內時,選擇幀內編碼;當所述處理中的宏塊位于所述刷新區域通過后的區域時,按照所述運動搜索范圍包含在所述刷新區域通過后的圖像內的方式,對該運動搜索范圍進行指定。
4.一種圖像編碼裝置,其使用幀內編碼和幀間編碼對圖像進行編碼,該圖像編碼裝置的特征在于,包括在規定的運動搜索范圍中搜索運動矢量的運動搜索單元;和對宏塊的編碼模式進行選擇的控制單元, 所述控制單元進行如下動作設置進行圖像刷新的刷新區域,按每幀使該刷新區域移動規定的移動量,以使該刷新區域定期地在整個幀內循環;當處理中的宏塊位于所述刷新區域內時,選擇幀內編碼;當所述處理中的宏塊位于所述刷新區域通過后的區域,且作為所述運動搜索單元的搜索結果的運動矢量參照所述刷新區域通過前的圖像時,強制選擇幀內編碼。
全文摘要
本發明提供一種圖像編碼方法,能夠將刷新導致的局部的編碼量的增加抑制到最小限度。該圖像編碼方法使用幀內編碼和幀間編碼對圖像進行編碼,其特征在于,包括按每幀使利用幀內編碼進行圖像刷新的刷新區域移動規定的移動量,以使該刷新區域定期地在整個幀內循環;當對上述刷新區域通過后的宏塊進行幀間編碼時,選擇該宏塊的運動補償矢量,以便參照上述刷新區域通過后的圖像。本發明提供一種圖像編碼裝置。
文檔編號H04N7/26GK102202219SQ201010526598
公開日2011年9月28日 申請日期2010年10月28日 優先權日2010年3月26日
發明者岡田光弘, 小味弘典, 明神智之, 溝添博樹, 谷田部祐介 申請人:日立民用電子株式會社