相關(guān)申請的交叉引用
包括本說明書、附圖和摘要的于2016年3月14日提交的日本專利申請no.2016-049101的公開內(nèi)容通過引用整體并入本文。
本發(fā)明涉及一種半導(dǎo)體設(shè)備、編碼控制方法、和相機設(shè)備。例如,本發(fā)明涉及與輸入數(shù)據(jù)的編碼相關(guān)聯(lián)的半導(dǎo)體設(shè)備、編碼控制方法、和相機設(shè)備。
背景技術(shù):
近年來,半導(dǎo)體設(shè)備已經(jīng)被廣泛用于通過根據(jù)上一次編碼的結(jié)果控制隨后的編碼速率來對視頻數(shù)據(jù)進行編碼。作為用于編碼控制的技術(shù),例如已知專利文獻1(未決日本特開平10(1998)-208393號)。
專利文獻1公開了一種用于將被編碼視頻信號的比特流記錄到光盤中的視頻編碼器的技術(shù)。根據(jù)專利文獻1的視頻編碼器被配置以使得視頻編碼器基于指定的待編碼的比特的量來對輸入圖像數(shù)據(jù)進行編碼,并且將作為編碼結(jié)果的被編碼比特流存儲到編碼器緩沖器(發(fā)送緩沖器)中。這里,當由于外部沖擊等而暫時中斷向記錄介質(zhì)的記錄時,來自編碼器緩沖器的輸出被暫時停止。此時,緩沖器管理電路基于被編碼比特量以及編碼器緩沖器中的輸出比特率來計算編碼器緩沖器中的數(shù)據(jù)的占用量。然后,速率控制器根據(jù)該占用量來控制視頻編碼器中的被編碼比特率。
技術(shù)實現(xiàn)要素:
在專利文獻1中,假設(shè)發(fā)送緩沖器大小等于或大于在將數(shù)據(jù)記錄在光盤中之前存儲該數(shù)據(jù)的緩沖器(接收緩沖器)的大小。該假設(shè)導(dǎo)致的問題是,如果在諸如車載相機的設(shè)備中沒有提供足夠的發(fā)送緩沖器大小,則難以靈活地執(zhí)行編碼控制。
在結(jié)合附圖來考慮時本發(fā)明的其它目的、優(yōu)點和新穎特征根據(jù)本發(fā)明的以下具體實施方式將變得更加明顯。
根據(jù)實施例,半導(dǎo)體設(shè)備通過考慮發(fā)送緩沖器占用量和接收緩沖器占用量二者來控制編碼。
根據(jù)上述的實施例,有可能靈活地控制編碼。
附圖說明
圖1是圖示了根據(jù)第一實施例的半導(dǎo)體設(shè)備的配置的框圖;
圖2是圖示了根據(jù)第一實施例的編碼處理系統(tǒng)的配置的框圖;
圖3是圖示了根據(jù)第一實施例的編碼器的配置的框圖;
圖4是圖示了根據(jù)第一實施例的虛擬接收緩沖器占用量的變化的示例的圖;
圖5是圖示了根據(jù)第一實施例的虛擬發(fā)送緩沖器占用量的變化的示例的圖;
圖6是圖示了根據(jù)第一實施例的編碼控制方法的流程的流程圖;
圖7是圖示了根據(jù)第二實施例的編碼控制方法的流程的流程圖;
圖8是圖示了虛擬發(fā)送緩沖器占用量和編碼模式之間的關(guān)系的圖。
圖9是圖示了根據(jù)第三實施例的編碼器的配置的框圖。
圖10是圖示了根據(jù)第三實施例的編碼控制方法的流程的流程圖;以及
圖11是圖示了虛擬發(fā)送緩沖器占用量和編碼模式之間的關(guān)系的圖。
具體實施方式
在下文中,將參照附圖來描述對以上描述的用于解決所述問題的裝置進行應(yīng)用的具體示例。在附圖中的每一個中,相似元件由相似附圖標記標注,并且為了使描述清楚,視情況來省略重復(fù)描述。
在下面描述的實施例中,為了方便起見,在需要時本發(fā)明的具體實施方式將被分成多個章節(jié)或?qū)嵤├?。然而,除非另有說明,這些章節(jié)或?qū)嵤├舜瞬幌嚓P(guān),并且其中一個充當對其他的整體或一部分的變型、具體實施方式、或補充解釋。此外,在下述的實施例中,當提及元件的數(shù)目(包括件數(shù)、數(shù)值、量、范圍等)時,元件的數(shù)目不限于特定數(shù)目,除非另有說明或者除非原則上明確限于特定數(shù)目。元件的數(shù)目可以大于或小于所指定的數(shù)目。
此外,在下述實施例中,除非另有說明或原則上明確需要,否則不一定需要組件(包括操作步驟等)。類似地,在下面描述的實施例中,在提及組件的形狀、位置關(guān)系、或其它特性時,與形狀或其它特性基本上接近或相似的那些特性被包括在內(nèi),除非另有說明或者除非它們原則上不應(yīng)當被明確地包括。這適用于數(shù)目或其它屬性(包括件數(shù)、數(shù)值、量、范圍等)。
這里,將描述如何構(gòu)思以下實施例的背景。首先,上述專利文獻1涉及一種方法,當在編碼流的接收側(cè)出現(xiàn)處理延遲時,控制編碼率以使得發(fā)送緩沖器能夠保持在發(fā)送緩沖器的空閑空間內(nèi)(使得發(fā)送緩沖器不會溢出)。因此,在專利文獻1中,假設(shè)發(fā)送緩沖器大小等于或大于接收緩沖器大小。
然而,隨著近來對防水的要求,對于通過封裝整個相機模塊來減小諸如車載相機和監(jiān)視相機的器材的大小的需求日益增長。在這種情況下,難以在相機模塊中安裝諸如動態(tài)隨機存取存儲器(dram)的大容量外部存儲器。另外,與車載相機的情況相似,當在駕駛期間在駕駛員座位附近的屏幕上顯示所拍攝的圖像時,需要低延遲。因此,在專利文獻1的假設(shè)下,這樣的問題可能無法解決。
此外,在專利文獻1中,編碼控制基于發(fā)送緩沖器的占用量,使得難以通過臨時增加編碼速率來維持對圖像進行編碼的精度,例如,在輸入視頻圖像中局部地發(fā)生快速變化的情況下。
因此,下面描述用于解決以上問題的實施例。
第一實施例
圖1是圖示了根據(jù)第一實施例的半導(dǎo)體設(shè)備100的配置的框圖。半導(dǎo)體設(shè)備100被設(shè)計為對圖像等的輸入數(shù)據(jù)in_data進行編碼,并且輸出被編碼流(比特流)bts。注意,輸入數(shù)據(jù)in_data能夠是作為圖像數(shù)據(jù)的一部分的圖片(宏塊)數(shù)據(jù)。此外,假設(shè)輸出被編碼流bts一旦被存儲在發(fā)送緩沖器(未示出)中,傳輸并存儲在接收緩沖器(未示出)中,從接收緩沖器讀取,并且然后被解碼。半導(dǎo)體設(shè)備100包括編碼處理單元110、緩沖器管理單元120、和控制信息指定單元130。
編碼處理單元110基于指定的編碼控制信息ct1來將作為被編碼輸入數(shù)據(jù)in_data的被編碼流bts存儲到發(fā)送緩沖器中。緩沖器管理單元120根據(jù)在編碼過程中生成的數(shù)據(jù)量來計算接收緩沖器占用量141和發(fā)送緩沖器占用量142兩者。接收緩沖器占用量141是指示存儲在作為被編碼流bts的目的地的接收緩沖器中的數(shù)據(jù)量的數(shù)值信息。此外,發(fā)送緩沖器占用量142是顯示存儲在發(fā)送緩沖器中的數(shù)據(jù)量的數(shù)值信息。換言之,緩沖器管理單元120不具有實際存儲被編碼流bts的緩沖器,而是具有表示每個緩沖器的虛擬緩沖器。因此,接收緩沖器占用量141也能夠被稱為“虛擬接收緩沖器占用量”,并且發(fā)送緩沖器占用量142也可以稱為“虛擬發(fā)送緩沖器占用量”。
控制信息指定單元130向編碼處理單元110指定編碼控制信息ct1。這里,當發(fā)送緩沖器占用量142等于或小于第一閾值時,控制信息指定單元130基于接收緩沖器占用量141來指定編碼控制信息ct1。另一方面,當發(fā)送緩沖器占用量142大于第一閾值時,控制信息指定單元130指定編碼控制信息ct1,以與在等于或小于第一閾值的情況下相比進一步減少所生成的數(shù)據(jù)量b0。
這里,當將“比第一閾值大預(yù)定值的值”被定義為第二閾值時,“發(fā)送緩沖器占用量大于第一閾值的情況”也可以被解釋為“發(fā)送緩沖器占用量等于或大于第二閾值的情況”。
此外,“編碼控制信息ct1”是當由編碼處理單元110執(zhí)行編碼過程時的控制信息。優(yōu)選地,例如,“編碼控制信息ct1”是在編碼過程中使用的量化值,或者指定編碼模式的信息(即,指令編碼處理單元110使用特定量化值執(zhí)行編碼過程的規(guī)范信息(specificationinformation))。
此外,例如,“與等于或小于第一閾值的情況相比,進一步減少所生成的數(shù)據(jù)量b0的編碼控制信息ct1”示出:“發(fā)送緩沖器占用量大于第一閾值的情況”中的量化值大于“發(fā)送緩沖器占用量等于或小于第一閾值的情況”中的量化值。
如上所述,根據(jù)第一實施例的半導(dǎo)體設(shè)備100通過使用虛擬接收緩沖器的占用量和虛擬發(fā)送緩沖器的占用量兩者來控制編碼比特率。然后,半導(dǎo)體設(shè)備100通常操作以滿足基于虛擬接收緩沖器的占用量來設(shè)置的目標比特率。換言之,半導(dǎo)體設(shè)備100通過在虛擬接收緩沖器的占用量可用時分配許多比特來控制編碼比特率,并且在虛擬接收緩沖器的占用量不可用時通過減少所分配的比特數(shù)來控制編碼比特率。此外,當虛擬接收緩沖器的占用量可用時,半導(dǎo)體設(shè)備100操作以準許比特率的瞬時增加,以便以高質(zhì)量對圖像進行編碼。
這里,當發(fā)送緩沖器的大小與接收緩沖器的大小相比非常小時,向發(fā)送緩沖器的輸入速率瞬間增加。這導(dǎo)致依賴于發(fā)送緩沖器的大小的發(fā)送緩沖器被破壞的問題。因此,在第一實施例中,首先基于在正常操作中的虛擬接收緩沖器的占用量來執(zhí)行比特率控制,以靈活地處置輸入圖像的復(fù)雜度。然后,當表示發(fā)送緩沖器的虛擬發(fā)送緩沖器的占用量達到超過預(yù)定閾值的量時,即使接收緩沖器具有可用空間,也在減少編碼量的方向上執(zhí)行編碼控制,而保持高質(zhì)量圖像編碼。換言之,在第一實施例中,通過使用兩個虛擬緩沖器占用量來執(zhí)行編碼控制。因此,即使在具有小的發(fā)送緩沖器的系統(tǒng)的情況下,也有可能執(zhí)行減輕發(fā)送緩沖器的溢出的編碼控制。
如上所述,根據(jù)第一實施例,通過在存在輸入圖像的局部變化時臨時增加編碼速率,同時防止發(fā)送緩沖器被破壞,有可能靈活地執(zhí)行編碼控制并保持圖像的編碼精度。
第一示例
接下來,將描述第一實施例的第一示例。
圖2是圖示根據(jù)第一示例的編碼處理系統(tǒng)1000的配置的框圖。編碼處理系統(tǒng)1000包括編碼器1、發(fā)送緩沖器2、接收緩沖器3、和解碼器4。這里,發(fā)送緩沖器2和接收緩沖器3通過諸如通信線路的傳輸路徑耦合。編碼器1是上述的半導(dǎo)體設(shè)備100的示例。此外,例如,假設(shè)編碼器1和發(fā)送緩沖器2被包括在相機設(shè)備10中。然而,本發(fā)明不限于此。編碼器1將諸如由相機(未示出)拍攝的攝影圖像的視頻圖像作為輸入數(shù)據(jù)in_data來編碼為諸如h.264的被編碼流bts。然后,編碼器1將被編碼流bts存儲在發(fā)送緩沖器2中。相機設(shè)備10通過傳輸路徑將存儲在發(fā)送緩沖器2中的編碼流bts傳輸?shù)浇邮站彌_器3。然后,通過從接收緩沖器側(cè)讀取被編碼流bts來對被編碼流bts進行解碼并且輸出到屏幕(未示出)等,解碼器4再現(xiàn)和顯示視頻圖像。
圖3是圖示根據(jù)第一示例的編碼器1的配置的框圖。編碼器1包括緩沖器管理單元11、速率控制單元12、和編碼處理單元13。編碼處理單元13是上述的編碼處理單元110的示例。編碼處理單元13基于量化值qj和編碼模式md來執(zhí)行編碼。然后,編碼處理單元13將編碼流bts輸出到發(fā)送緩沖器2。注意,量化值qj和編碼模式md是上述的編碼控制信息ct1的示例。此外,編碼處理單元13將編碼過程中的生成的比特量b1輸出到緩沖器管理單元11。
緩沖器管理單元11是上述的緩沖器管理單元120的示例。緩沖器管理單元11通過使用來自編碼處理單元13的所生成的比特量b1來計算虛擬接收緩沖器占用量dj和虛擬發(fā)送緩沖器占用量rbj兩者,并且輸出到速率控制單元12。這里,緩沖器管理單元11包括目標比特確定部件111和傳輸比特確定部件112作為內(nèi)部配置。
在目標比特確定部件111中,由用戶或其它裝置預(yù)先設(shè)置預(yù)定的設(shè)定值st11。然后,目標比特確定部件111基于該設(shè)定值st11來確定目標比特量b2,并輸出目標比特量b2。緩沖器管理單元11通過將生成的比特量b1和最后的虛擬接收緩沖器占用量dj相加并且通過減去目標比特量b2來計算新的虛擬接收緩沖器占用量dj。
這里,圖4是圖示了根據(jù)第一示例的虛擬接收緩沖器占用量的變化的示例的圖。如圖4所示,虛擬接收緩沖器占用量dj依賴于每單位時間的所生成的比特量b1和目標比特量b2而增加或減少。
返回圖3繼續(xù)描述。
此外,在傳輸比特確定部件112中,用戶或其它裝置預(yù)先設(shè)置預(yù)定的設(shè)定值st12。然后,傳輸比特確定部件112基于設(shè)定值st12來確定傳輸比特量b3,并輸出所確定的傳輸比特量b3。注意,設(shè)定值st12包括作為系統(tǒng)特有的信息的發(fā)送緩沖器信息。發(fā)送緩沖器信息包括發(fā)送緩沖器的大小、傳輸速率等。緩沖器管理單元11通過將生成的比特量b1和最后的虛擬發(fā)送緩沖器占用量rbj相加并通過減去傳輸比特量b3來計算新的虛擬發(fā)送緩沖器占用量rbj。
這里,圖5是圖示根據(jù)第一示例的虛擬發(fā)送緩沖器占用量的變化的示例的圖。如圖5所示,虛擬發(fā)送緩沖器占用量rbj依賴于每單位時間的所生成比特量b1和傳輸比特量b3而增加或減少。
返回圖3繼續(xù)描述。
速率控制單元12是上述的控制信息指定單元130的示例。速率控制單元12通過使用從緩沖器管理單元11接收的虛擬接收緩沖器占用量dj和虛擬發(fā)送緩沖器占用量rbj,將量化值qj和編碼模式md輸出到編碼處理單元13。這里,速率控制單元12包括量化值確定部件121和閾值判斷部件122作為內(nèi)部配置。
在量化值確定部件121中,由用戶或其它裝置預(yù)先設(shè)置預(yù)定的設(shè)置值st21。注意,例如,設(shè)置值st21包括量化寬度的寬度、反應(yīng)參數(shù)等。然而,本發(fā)明不限于這些示例。然后,量化值確定部件121通過使用來自緩沖器管理單元11的虛擬接收緩沖器占用量dj并通過使用設(shè)置值st21來計算量化值qj。然后,量化值確定部件121將計算的量化值qj輸出到編碼處理單元13。例如,量化值確定部件121通過使用以下等式(1)來計算量化值qj。這里,qt是量化寬度,其例如是從0到51的值,并且reac是反應(yīng)參數(shù)。
qj=(dj*qt)/reac等式(1)
此外,閾值判斷部件122通過使用來自緩沖器管理單元11的虛擬發(fā)送緩沖器占用量rbj并通過使用設(shè)定值st22來執(zhí)行預(yù)定的確定。然后,閾值判斷部件122將編碼模式md輸出到編碼處理單元13。更具體地,閾值判斷部件122判斷虛擬發(fā)送緩沖器占用量rbj是否大于預(yù)定閾值th1。然后,當虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th1時,閾值判斷部件122將編碼模式md輸出為“正常編碼模式”。另一方面,當虛擬發(fā)送緩沖器占用量rbj大于閾值th1時,閾值判斷部件122將編碼模式md輸出為“緊急模式”。這里,“緊急模式”是執(zhí)行編碼的模式,其能夠在不偏離標準規(guī)范的情況下最大程度地減少生成的數(shù)據(jù)量。注意,“緊急模式”也可以被稱為“最小比特編碼模式”。
當來自速率控制單元12的編碼模式md指示“正常編碼模式”時,編碼處理單元13基于從速率控制單元12接收的量化值qj來對輸入數(shù)據(jù)in_data進行編碼。另一方面,當來自速率控制單元12的編碼模式md指示“緊急模式”時,編碼處理單元13基于預(yù)先設(shè)置的量化值來對輸入數(shù)據(jù)in_data進行編碼。這里,例如,預(yù)定量化值是使編碼過程中生成的比特量最小化的量化值。以這種方式,可以相對于輸入數(shù)據(jù)in_data來適當?shù)卣{(diào)整生成的比特量。
圖6是圖示了根據(jù)第一示例的編碼控制方法的流程的流程圖。首先,緩沖器管理部件11更新虛擬發(fā)送緩沖器占用量rbj和虛擬接收緩沖器占用量dj(s101)。接著,閾值判斷部件122確定虛擬發(fā)送緩沖器占用量rbj是否大于閾值th1(s102)。當確定虛擬發(fā)送緩沖器占用量rbj大于閾值th1(在s102中為“是”)時,閾值判斷部件122將編碼模式md設(shè)置為“緊急模式”,并輸出到編碼處理單元13(s103)。然后,編碼處理單元13基于預(yù)定量化值來對輸入數(shù)據(jù)in_data進行編碼(s105)。
另一方面,在步驟s102中,當確定虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th1(s102中為“否”)時,閾值判斷部件122將編碼模式md設(shè)置為“正常編碼模式“并輸出到編碼處理單元13(s104)。然后,編碼處理單元13基于從量化值確定部件121接收的量化值qj來對輸入數(shù)據(jù)in_data進行編碼(s106)。注意,假設(shè)量化值確定部件121與閾值判斷部件122并行計算量化值qj。
出于上述的原因,第一示例也能夠被表達如下。即,在虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th1時,控制信息指定單元基于虛擬接收緩沖器占用量dj來計算編碼控制信息,并向編碼處理單元指定計算的編碼控制信息。另一方面,當虛擬發(fā)送緩沖器占用量rbj大于閾值th1時,控制信息指定單元向編碼處理單元指定該預(yù)定值作為編碼控制信息。
如上所述,根據(jù)第一示例,只要發(fā)送緩沖器占用量可用,就有可能根據(jù)接收緩沖器占用量來適當?shù)乜刂凭幋a。換言之,由于在正常操作中基于虛擬接收緩沖器占用量來執(zhí)行編碼控制,因此有可能在發(fā)送緩沖器的占用量將溢出的風(fēng)險低的情況下以高質(zhì)量對圖像進行編碼。另一方面,當發(fā)送緩沖器的占用量超過設(shè)定閾值時,確定發(fā)送緩沖器處于存在高溢出風(fēng)險的水平。因此,編碼控制防止編碼量的瞬時增加,以確保發(fā)送緩沖器不會溢出。特別地,當在輸入視頻圖像中局部地發(fā)生快速變化時,可以通過臨時將編碼率增加到發(fā)送緩沖器中的空閑空間的程度來保持被編碼圖像的精度。因此,可以靈活地處置輸入圖像的復(fù)雜性并保持高質(zhì)量的圖像編碼,同時防止發(fā)送緩沖器被破壞。
如上所述,在諸如對于小型化具有很強要求的車載相機模塊的裝置的情況下,由于電源和安裝面積的問題而可能不安裝諸如dram的大容量存儲器,使得發(fā)送緩沖器應(yīng)當在芯片中被配置有靜態(tài)隨機存取存儲器(sram)。因此,難以向發(fā)送緩沖器分配充足的容量。即使在這樣的情況下,第一示例也能夠通過生成和發(fā)送被編碼流來保持編碼圖像的精度而同時防止發(fā)送緩沖器被破壞。
此外,在上述的專利文獻1中,編碼器緩沖器應(yīng)當向緩沖器管理單元通知輸出比特率。結(jié)果,發(fā)生延遲,并且存在缺乏實時屬性的問題。另外,在專利文獻1中,編碼器緩沖器應(yīng)當與緩沖器管理單元通信,使得還存在作為相機模塊的靈活性缺乏的問題。為了解決這些問題,根據(jù)第一示例的緩沖器管理單元通過使用預(yù)先在發(fā)送緩沖器中設(shè)置的傳輸速率以及從編碼處理單元獲得的所生成的數(shù)據(jù)量來計算發(fā)送緩沖器占用量。以這種方式,緩沖器管理單元通過使用傳輸比特確定部件來計算傳輸速率,而不是每次從發(fā)送緩沖器獲得傳輸速率。因此,消除了與發(fā)送緩沖器的通信的需要,并且與專利文獻1的情況相比減少了延遲。此外,有可能靈活地處置只能夠具有小緩沖器的系統(tǒng)。
第二示例
接下來,將描述第一實施例的第二示例。在上述的第一示例中,一旦發(fā)送緩沖器占用量超過閾值,則以緊急模式執(zhí)行編碼控制,并且然后如果發(fā)送緩沖器占用量小于閾值,則再次以正常編碼模式執(zhí)行編碼控制。然而,一旦發(fā)送緩沖器占用量超過閾值,即使發(fā)送緩沖器占用量通過降低編碼率而低于閾值,發(fā)送緩沖器占用量可能再次超過閾值的概率也很高。在這種情況下,在短時間段內(nèi)反復(fù)正常編碼模式和緊急模式,并且還有改進的余地。
因此,在第二示例中,為發(fā)送緩沖器占用量提供了兩個閾值。在兩個閾值中,針對發(fā)送緩沖器占用量增加的情況的一個閾值被設(shè)置為高于發(fā)送緩沖器占用量減小的情況的另一個閾值。換言之,將比第一閾值(th1)高出預(yù)定值的值定義為第二閾值(th2)??刂菩畔⒅付ú考诮邮站彌_器占用量來指定編碼控制信息直到發(fā)送緩沖器占用量超過第二閾值。當發(fā)送緩沖器占用量超過第二閾值時,控制信息指定部件指定編碼控制信息,其與等于或小于第一閾值的情況下相比進一步減少生成的數(shù)據(jù)量。然后,當發(fā)送緩沖器占用量從大于第二閾值的值變化為小于第一閾值的值時,控制信息指定部件基于接收緩沖器占用量來指定編碼控制信息。以這種方式,通過將針對發(fā)送緩沖器占用量增加的情況的閾值設(shè)置為高于針對發(fā)送緩沖器占用量減少的情況的閾值,有可能減少在緊急模式和正常編碼模式之間的編碼過程的反復(fù)。
注意,根據(jù)第二示例的編碼器等的配置與第一示例中的配置相同,因此將省略圖示和詳細描述。然而,假設(shè)在閾值判斷部件122中設(shè)置了兩個閾值th1<th2。
圖7是圖示了根據(jù)第二示例的編碼控制方法的流程的流程圖。首先,緩沖器管理單元11更新虛擬發(fā)送緩沖器占用量rbj和虛擬接收緩沖器占用量dj(s201)。接下來,閾值判斷部件122確定當前模式是否是正常編碼模式(s202)。在當前模式是正常編碼模式時(s202中為“是”),閾值判斷部件122確定虛擬發(fā)送緩沖器占用量rbj是否大于閾值th2(s203)。當確定虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th2(s203中為“否”)時,閾值判斷部件122將編碼模式md設(shè)置為“正常編碼模式”,并輸出到編碼處理單元13(s205)。然后,編碼處理單元13基于從量化值確定部件121接收的量化值qj來對輸入數(shù)據(jù)in_data進行編碼(s207)。另一方面,在步驟s203中,在確定為虛擬發(fā)送緩沖器占用量rbj大于閾值th2時(s203中為“是”),閾值判斷部件122將編碼模式md設(shè)定為“緊急模式”,并輸出到編碼處理單元13(s206)。注意,假設(shè)此時閾值判斷部件122保存諸如例如指示當前編碼模式md是“緊急模式”的標志的信息。然后,編碼處理單元13基于預(yù)定量化值來對輸入數(shù)據(jù)in_data進行編碼(s208)。
然后流程返回到步驟s201。在步驟s202中,在當前編碼模式不是正常編碼模式時,即在當前模式是緊急模式時(s202中為“否”),閾值判斷部件122確定虛擬發(fā)送緩沖器占用量tbj是否小于閾值th1(s204)。當確定虛擬發(fā)送緩沖器占用量rbj等于或大于閾值th1(s204中為“否”)時,閾值判斷部件122將編碼模式md設(shè)置為“緊急模式”,并輸出到編碼處理單元13(s206)。換言之,只要虛擬發(fā)送緩沖器占用量rbj等于或大于閾值th1,即使它小于閾值th2,閾值判斷部件122也保持緊急模式。
另一方面,在步驟s204中,在確定虛擬發(fā)送緩沖器占用量rbj小于閾值th1時(s204中為“是”),閾值判斷部件122將編碼模式md設(shè)定為“正常編碼模式”,并輸出到編碼處理單元13(s205)。換言之,一旦編碼模式md被設(shè)置為“緊急模式”,但是當虛擬發(fā)送緩沖器占用rbj比小于閾值th2的閾值th1更小時,閾值判斷部件122將編碼模式md設(shè)置回正常編碼模式。注意,假設(shè)量化值確定部件121與閾值判斷部件122并行地計算量化值qj。
圖8是圖示根據(jù)第二示例的虛擬發(fā)送緩沖器占用量與編碼模式之間的關(guān)系的圖。如圖8所示,閾值判斷部件122最初在僅虛擬發(fā)送緩沖器占用量rbj超過閾值th1時不改變編碼模式,并保持正常編碼模式。其后,當虛擬發(fā)送緩沖器占用量rbj超過閾值th2時,閾值判斷部件122將編碼模式改變?yōu)榫o急模式。此時,閾值判斷部件122指令編碼處理部分13執(zhí)行強制編碼過程以最小化所生成的比特量。然后,編碼處理單元13不執(zhí)行正常編碼處理,而是執(zhí)行強制編碼過程,以在指令在緊急模式下執(zhí)行編碼的時間期間使生成的比特量最小化。例如,在h.264的情況下,存在所有系數(shù)被設(shè)置為0的n×n幀內(nèi)mb(intramb)的dc模式中的編碼的方法,或者編碼為跳過mb的方法。然而,本發(fā)明不限于這些方法。
之后,即使虛擬傳輸占用量降低到閾值th2以下但是在其等于或大于閾值th1時,保持緊急模式。然后,當虛擬發(fā)送緩沖器占用量rbj減小到閾值th1以下時,其返回到正常編碼模式。
如上所述,大于第一閾值的第二閾值被定義為啟動緊急模式的條件。此外,小于第二閾值的第一閾值被定義為終止緊急模式并返回正常編碼模式的條件。以這種方式,有可能防止緊急模式和正常編碼模式的頻繁反復(fù)。
此外,通過將第二閾值設(shè)置為通過從發(fā)送緩沖器的大小減去生成的數(shù)據(jù)量來獲得的值,有可能增加避免發(fā)送緩沖器被破壞的風(fēng)險的概率。例如,通過將閾值th2設(shè)置為通過減去強制編碼過程中生成的比特量來獲得的值,有可能防止被編碼流的輸出超過發(fā)送緩沖器大小的情況。
第三示例
接下來,將描述第一實施例的第三示例。
圖9是示出根據(jù)第三示例的編碼器1a的配置的框圖。與上述的編碼器1相比,速率控制單元12和編碼處理單元13分別由速率控制單元12a和編碼處理單元13a替代。其它配置與編碼器1中的相同,使得將省略對它們的描述。
速率控制單元12a包括量化值確定部件121a和閾值判斷部件122a以作為內(nèi)部配置。閾值判斷部件122a根據(jù)確定結(jié)果替代輸出編碼模式而向量化值確定部件121a輸出反應(yīng)參數(shù)reac。此外,假設(shè)在閾值確定部件122a中設(shè)置了兩個閾值th1a<th2a。例如,當虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th1a時,閾值判斷部件122a將預(yù)定的反應(yīng)參數(shù)reacn輸出到量化值確定部件121a。當虛擬發(fā)送緩沖器占用量rbj大于閾值th1a并且等于或小于閾值th2a時,閾值判斷部件122a將作為預(yù)定反應(yīng)參數(shù)reacn的0.75倍的反應(yīng)參數(shù)reac輸出到量化值確定部件121a。當虛擬發(fā)送緩沖器占用量rbj大于閾值th2a時,閾值判斷部件122a將作為預(yù)定反應(yīng)參數(shù)reacn的0.50倍的反應(yīng)參數(shù)reac輸出到量化值確定部件121a。
量化值確定部件121a通過使用從閾值判斷部件122a輸出的反應(yīng)參數(shù)reac以及虛擬接收緩沖器占用量dj來計算量化值qj,并輸出到編碼處理單元13a。
由于上述的原因,第三示例能夠被表達如下。也就是說,當虛擬發(fā)送緩沖器占用量rbj大于第一閾值(th1a)且等于或小于第二閾值(th2a)時,速率控制單元12a指定編碼控制信息以使生成的數(shù)據(jù)量b1比等于或小于第一閾值的情況更小,并且同時比等于或大于第二閾值的情況更大。以這種方式,通過使用多狀態(tài)閾值,有可能實現(xiàn)靈活的編碼控制。
此外,第三示例還能夠被表達如下。也就是說,當虛擬發(fā)送緩沖器占用量rbj等于或小于第一閾值(th1a)時,速率控制部件12a通過使用預(yù)定的第一參數(shù)(reacn)和虛擬接收緩沖器占用量dj來計算編碼控制信息。當虛擬發(fā)送緩沖器占用量rbj比第一閾值大預(yù)定值(th2a)時,速率控制部件12a計算第二參數(shù)(reacn*0.50),其與第一參數(shù)的情況下相比進一步減少生成的數(shù)據(jù)量b1。此外,速率控制部件12a通過使用第二參數(shù)和虛擬接收緩沖器占用量dj來計算編碼控制信息。然后,速率控制部件12a將計算的編碼控制信息指定給編碼處理部件13a。在這種情況下,現(xiàn)有的設(shè)備能夠被用于編碼處理單元13a。這能夠有助于減少系統(tǒng)中的變化量。此外,能夠通過調(diào)整參數(shù)來實現(xiàn)精確的編碼控制。因此,這對于避免危險區(qū)域同時最小化對圖像質(zhì)量的損害是有用的。
圖10是圖示了根據(jù)第三示例的編碼控制方法的流程的流程圖。首先,緩沖器管理部件11更新虛擬發(fā)送緩沖器占用量rbj和虛擬接收緩沖器占用量dj(s301)。接著,閾值判斷部件122a確定虛擬發(fā)送緩沖器占用量rbj是否大于閾值th2a(s302)。當確定虛擬發(fā)送緩沖器占用量rbj大于閾值th2a(s302中為“是”)時,閾值判斷部件122a通過將指定的反應(yīng)參數(shù)reacn乘以0.50來計算反應(yīng)參數(shù)reac,并輸出到量化值確定部件121a(s304)。
在步驟s302中,當確定虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th2a(s302中為“否”)時,閾值判斷部件122a確定虛擬發(fā)送緩沖器占用量rbj是否大于閾值th1a(s303)。當確定虛擬發(fā)送緩沖器占用量rbj大于閾值th1a時(s303中為是),閾值判斷部件122a通過將所指定的反應(yīng)參數(shù)reacn乘以0.75來計算反應(yīng)參數(shù)reac,并輸出到量化值確定部件121a(s305)。在步驟s303中,當確定虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th1a(s303中為“否”)時,閾值判斷部件122a將指定的反應(yīng)參數(shù)reacn作為反應(yīng)參數(shù)reac來輸出到量化值確定部件121a(s306)。
在步驟s304、s305、和s306之后,量化值確定部件121a通過使用從閾值判斷部件122a接收的更新的反應(yīng)參數(shù)reac以及虛擬接收緩沖器占用量dj來計算量化值qj,并輸出到編碼處理單元13a(s307)。其后,編碼處理單元13a基于從量化值確定部件121a接收的量化值qj來對輸入數(shù)據(jù)in_data進行編碼(s308)。注意,假定量化值確定部件121a與閾值判斷部件122a并行地計算量化值qj。
圖11是圖示根據(jù)第三示例的虛擬發(fā)送緩沖器占用量與編碼模式之間的關(guān)系的圖。如圖11所示,當虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th1a時,將反應(yīng)參數(shù)reac設(shè)置為指定的reacn。此外,當虛擬發(fā)送緩沖器占用量rbj大于閾值th1a并且等于或小于閾值th2a時,反應(yīng)參數(shù)reac被設(shè)置為reacn*0.75,以將量化值qj增加到比等于或小于閾值th1a的情況更大,以便減少生成的比特量。然而,生成的比特量沒有減小到最小值。然后,當虛擬發(fā)送緩沖器占用量rbj大于閾值th2a時,將反應(yīng)參數(shù)reac設(shè)置為reacn*0.50。換言之,量化值qj增加為比等于或小于閾值th2a的情況更大,以便減少生成的比特量。例如,量化值被設(shè)置以使得生成的比特量是最小值。
以上方法能夠被認為是改變被用于編碼控制的反應(yīng)參數(shù)的方法。然后,有可能通過減小反應(yīng)參數(shù)來增加向目標的收斂速度。換言之,當虛擬發(fā)送緩沖器占用量rbj大于閾值th1a并且等于或小于閾值th2a時,設(shè)置reacn*ratio1,并且當虛擬發(fā)送緩沖器占用量rbj大于閾值th2a時,設(shè)置reacn*ratio2。在這種情況下,ratio2小于ratio1。
注意,反應(yīng)參數(shù)在圖11中以兩個階段來被更新。然而,反應(yīng)參數(shù)也可以以兩個或三個、或更多個階段中被更新。
此外,在第二示例中,通過調(diào)整反應(yīng)參數(shù)來執(zhí)行編碼控制。然而,能夠直接調(diào)整量化值,而不是調(diào)整反應(yīng)參數(shù)。例如,當虛擬發(fā)送緩沖器占用量rbj大于閾值th2a時,與虛擬發(fā)送緩沖器占用量rbj等于或小于閾值th2a的情況下相比,能夠使量化值大。
注意,在上面的描述中,當虛擬發(fā)送緩沖器占用量rbj在閾值th1a和閾值th2a之間時,反應(yīng)參數(shù)被設(shè)置為等于reacn*ratio1,而與虛擬發(fā)送緩沖器占用量rbj何時增加和減少無關(guān)。然而,本發(fā)明不限于此。例如,當虛擬發(fā)送緩沖器占用量rbj減小時,控制反應(yīng)參數(shù)以使用正常反應(yīng)參數(shù)reacn。以這種方式,有時可以通過防止量化值的快速變化和通過減緩發(fā)送緩沖器的占用量的減少,來減慢返回到正常操作。
如上所述,第三示例對于發(fā)送緩沖器是有用的,以避免接近將發(fā)生溢出的危險區(qū)域,同時最小化對圖像質(zhì)量的損害。此外,第二和第三實施例能夠一起使用。
其它實施例
上述的實施例能夠被應(yīng)用于例如車載相機等。換言之,由車載相機拍攝的所拍攝圖像需要實時顯示在駕駛員座位附近的屏幕上,并且如果顯示相對于拍攝時間延遲,則會影響駕駛。因此,需要低延遲。出于此原因,本實施例能夠被應(yīng)用于低延遲視頻編碼lsi以及以低延遲來傳輸諸如相機圖像的視頻圖像的系統(tǒng)。具體的,實施例能夠被應(yīng)用于由于需要用于防水的封裝而可能不安裝諸如dram的大容量外部存儲器的系統(tǒng)(車載相機、監(jiān)視相機等)。
此外,在上述的實施例中,本發(fā)明已被描述為具有硬件配置,但是本發(fā)明不限于此。本發(fā)明還能夠通過允許諸如中央處理單元(cpu)的處理器執(zhí)行計算機程序來實現(xiàn)任意過程。
在上述的示例中,程序能夠使用各種類型的非暫時性計算機可讀介質(zhì)來被存儲并提供給計算機。非暫時性計算機可讀介質(zhì)包括各種類型的有形存儲介質(zhì)。非暫時性計算機可讀介質(zhì)的示例包括磁記錄介質(zhì)(例如,柔性盤、磁帶、和硬盤驅(qū)動器)、光磁記錄介質(zhì)(例如,光磁盤)、cd-rom(只讀存儲器)、cd-r、dc-r/w、dvd(數(shù)字多功能盤)、bd(藍光(注冊商標)盤)、半導(dǎo)體存儲器(例如掩模rom、prom(可編程rom)、eprom(可擦除prom)、閃速rom、和ram(隨機存取存儲器))。此外,還能夠由各種類型的暫時性計算機可讀介質(zhì)來將程序提供給計算機。暫時性計算機可讀介質(zhì)的示例包括電信號、光信號、和電磁波。暫時性計算機可讀介質(zhì)能夠通過諸如電線和光纖的有線通信路徑或通過無線通信路徑來將程序提供給計算機。
基于實施例來具體描述了本發(fā)明人做出的發(fā)明。然而,毋庸置疑,本發(fā)明不限于前述實施例,并且能夠在不脫離本發(fā)明的要旨的范圍內(nèi)進行各種修改和變更。