TW202329089A - 編碼裝置、解碼裝置、編碼方法及解碼方法 - Google Patents
編碼裝置、解碼裝置、編碼方法及解碼方法 Download PDFInfo
- Publication number
- TW202329089A TW202329089A TW111141856A TW111141856A TW202329089A TW 202329089 A TW202329089 A TW 202329089A TW 111141856 A TW111141856 A TW 111141856A TW 111141856 A TW111141856 A TW 111141856A TW 202329089 A TW202329089 A TW 202329089A
- Authority
- TW
- Taiwan
- Prior art keywords
- bits
- encoding
- vector
- aforementioned
- sub
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 102
- 239000013598 vector Substances 0.000 claims abstract description 460
- 238000013139 quantization Methods 0.000 claims abstract description 94
- 238000006243 chemical reaction Methods 0.000 description 129
- 238000012545 processing Methods 0.000 description 76
- 230000008569 process Effects 0.000 description 64
- 238000010586 diagram Methods 0.000 description 38
- 238000007667 floating Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 14
- 230000003044 adaptive effect Effects 0.000 description 13
- 230000005284 excitation Effects 0.000 description 11
- 230000009467 reduction Effects 0.000 description 8
- 238000000926 separation method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 239000002699 waste material Substances 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/002—Dynamic bit allocation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本發明的編碼裝置係具備:量化電路,係產生含有與向量量化的碼簿有關的資訊的量化參數;及控制電路,係在根據於目標子向量的編碼能夠使用的位元數與目標子向量的前述量化參數的位元數之差進行的編碼中,對應於條件,設定能夠使用的位元數。
Description
本揭露係有關編碼裝置、解碼裝置、編碼方法及解碼方法。
音訊(audio)或聲音的編碼(例如,激勵信號的編碼)的量化方法中的一種是多速率晶格向量量化(multi-rate lattice vector quantization)(例如,參照非專利文獻1)。多速率晶格向量量化係例如可適用於分割向量量化(例如,稱為***(split)多速率晶格向量量化或分割多速率晶格向量量化)。此外,***多速率晶格向量量化係例如可適用於代數向量量化(亦稱為AVQ;Algebraic Vector Quantization)。
(先前技術文獻)
(專利文獻)
專利文獻1:國際專利公開第2013/061531號
(非專利文獻)
非專利文獻1:3GPP TS 26.445 V16.0.0, “Codec for Enhanced Voice Services (EVS); Detailed Algorithmic Description (Release 16)”, 2019-06.
然而,關於在多速率晶格向量量化中減少編碼位元(bit)數的方法,尚有研究的餘地。
本揭露的非限定性的實施例係有助於提供在向量量化中減少編碼位元數的編碼裝置、解碼裝置、編碼方法及解碼方法。
本揭露的一實施例的編碼裝置係具備:量化電路,係產生含有與向量量化的碼簿(codebook)有關的資訊的量化參數(parameter);及控制電路,係在根據於目標子向量(target sub-vector)的編碼能夠使用的位元數與前述目標子向量的前述量化參數的位元數之差進行的編碼中,對應於條件,設定前述能夠使用的位元數。
另外,上述的概括性或具體性的態樣係亦可藉由系統(system)、裝置、方法、積體電路、電腦程式(computer program)、或記錄媒體實現,亦可藉由系統、裝置、方法、積體電路、電腦程式及記錄媒體的任意組合實現。
依據本揭露的一實施例,能夠在多速率晶格向量量化中減少編碼位元數。
本揭露的一實施例的更進一步的優點及效果係可從說明書及圖式了解。該些優點及/或效果係藉由一些實施型態以及說明書及圖式所記
載的特徵而分別提供,但並不一定要為了獲得一個或一個以上的同一特徵而提供全部特徵。
100,300:編碼裝置
101:乘法部
102:減法器
103:去強調部
104:DCT部
105:AVQ編碼部
106,205:浮動位元數管理部
107,206:逆DCT部
108,202,301,401:子向量指明部
109,203:碼轉換部
110:多工化部
200,400:解碼裝置
201:分離部
204:AVQ解碼部
S101~S104,S201~S211,S301~S304,S401~S414,S501~S504,S601~609,S641~S646,S651~S656,S701~S713,S801~S804,S901~S909,S941~S946,S951~S956:步驟
圖1係顯示***多速率晶格向量量化的碼簿列表(list)的一示例之圖。
圖2係顯示Enhanced Voice Services(EVS;增強型語音服務)編解碼器(codec)中的Algebraic Code Excited Linear Prediction(ACELP;代數碼激勵線性預測)編碼部的一部分的構成例之方塊圖(block diagram)。
圖3係顯示EVS編解碼器中與Algebraic Vector Quantizer(AVQ;代數向量量化器)編碼關聯的構成例之方塊圖。
圖4係顯示實施型態1的編碼裝置的構成例之方塊圖。
圖5係顯示子向量的選擇處理的一示例之圖。
圖6係顯示碼轉換處理的一示例之圖。
圖7係顯示碼轉換處理的一示例之圖。
圖8係顯示碼轉換處理的一示例之圖。
圖9係顯示未使用位元數的編碼處理的一示例之圖。
圖10係顯示未使用位元數與未使用位元數編碼碼之對應關係的一示例之圖。
圖11係顯示實施型態1的解碼裝置的構成例之方塊圖。
圖12係顯示實施型態2的編碼裝置的構成例之方塊圖。
圖13係顯示碼轉換處理的一示例之圖。
圖14係顯示碼轉換處理的一示例之圖。
圖15係顯示碼轉換處理的一示例之圖。
圖16係顯示碼轉換處理的一示例之圖。
圖17係顯示碼轉換處理的其他示例之圖。
圖18係顯示未使用位元數的編碼處理的一示例之圖。
圖19係顯示將於碼轉換對象的子向量的編碼能夠使用的位元數進行更新的處理的示例之圖。
圖20係顯示將於碼轉換對象的子向量的編碼能夠使用的位元數進行更新的處理的示例之圖。
圖21係顯示實施型態2的解碼裝置的構成例之方塊圖。
圖22係顯示解碼處理的一示例之圖。
圖23係顯示解碼處理的一示例之圖。
圖24係顯示解碼處理的一示例之圖。
圖25係顯示解碼處理的一示例之圖。
圖26係顯示解碼處理的其他示例之圖。
圖27係顯示根據未使用位元數進行的解碼處理的一示例之圖。
圖28係顯示將作為碼轉換對象的子向量的位元串的剩餘的位元數進行更新的處理的示例之圖。
圖29係顯示將作為碼轉換對象的子向量的位元串的剩餘的位元數進行更新的處理的示例之圖。
以下,針對本揭露的實施型態,參照圖式詳細進行說明。
例如,在***多速率晶格向量量化中,係可將時間域或頻率域(或頻譜(spectral)域)的信號分割成複數個子向量(SV;sub-vector。亦稱為子頻帶(sub-band)或子區塊(sub-block)),並對所分割出的複數個子向量各者進行多速率晶格向量量化。
圖1係顯示對子向量的多速率晶格向量量化的碼簿(或者,稱為碼冊)的列表的一示例之圖(例如,參照專利文獻1或非專利文獻1)。
例如,如圖1所示,***多速率晶格向量量化的量化參數係可含有:識別用於量化的碼簿之資訊(例如,稱為「碼簿指示值(codebook indicator)」或碼簿索引(index))、及識別該碼簿所含有的複數個碼向量(code vector)當中被選擇的碼向量之資訊(例如,稱為「碼向量索引(code vector index)」)。
例如,在圖1所示的碼簿Q0、Q2、Q3、Q4、Q5、……、Qn各者,1個子向量(SV)的編碼(或量化)係可能使用1,10,15,20,25,……,5n位元(n為2以上的整數)。使用各碼簿進行的編碼所用的位元數(例如,合計使用位元數)當中的1,2,3,4,5,……,n位元(n為2以上的整數)係可用於碼簿指示值。換言之,在圖1中,分配給碼簿指示值的編碼的位元數佔使用各碼簿進行的編碼所用的位元數全體(例如,5n,n為比1大的整數)之比例係可為1/5。
另外,在碼簿Q0係可含有1個向量(例如,零向量(zero vector或null vector))。零向量係例如指向量的量化值為0。因此,在碼簿Q0中係可不規定碼向量索引,碼向量索引所用的位元數係可為0。在碼簿Q0中
係例如可於碼簿指示值使用1位元。
例如,編碼裝置(encoder)係可使用圖1所示的碼簿,將複數個子向量(例如,在非專利文獻1中為8個SV)一起編碼。另外,於複數個子向量的編碼能夠利用的位元數(例如,稱為「位元總數」)係可在編碼裝置與解碼裝置(decoder)之間為已知。
例如,在專利文獻1中,作為一示例,係提出針對8個SV的***多速率晶格向量量化的位元的削減方法。例如,可根據8個SV當中的7個SV所用的位元數,依下式(1)推定剩下的1個SV所用的碼簿指示值(碼簿索引)(參照例如上述之專利文獻1)。
在式(1)中,cb’fix係表示針對1個SV(例如,子向量編號i=Pfix)的碼簿指示值的使用位元數的推定值,Bitsavailable係表示於8個SV的編碼能夠利用的位元總數,Σbitscbvi係表示針對與子向量編號i=Pfix相異的其他7個子向量vi(i≠Pfix)的編碼所用的位元數(例如,圖1的合計使用位元數)之合計。
在專利文獻1中,編碼裝置係例如對1個SV(例如,i=Pfix),將式(1)所示的碼簿指示值的使用位元數的推定值cb’fix與實際上的碼簿指示值的位元數之差分進行量化(或編碼),將差分資訊傳送給解碼裝置。例如,1個SV所用的碼簿編號n愈大,上述的差分資訊的資訊量(例如,位元數)相較於碼簿指示值愈少,而能夠削減編碼位元數。
然而,在專利文獻1中係例如存在差分資訊(換言之,編碼對
象)成為負數(例如,-1)的事例(case),由於使用了對應於負數的量化階(level)或碼,因此編碼(或量化)的複雜度會增加。
此外,當使用碼簿Q0(例如,碼簿指示值「0」)或特殊條件下的碼簿Q2(例如,碼簿指示值「1」)編碼所指明的1個SV時,有無法削減編碼位元數的可能性。
此處,所謂的特殊事例例如可為,於編碼能夠利用的位元總數當中無沒有使用於編碼的位元,全部的位元皆使用於編碼之事例。在此事例中,例如,在圖1中,可將表示各碼簿的碼簿指示值的複數個位元當中尾端的「0」(例如,亦稱為停止位元(stop bit))省略。例如,在特殊事例中,碼簿Q2的碼簿指示值係可從「10」中省略掉「0」而得的「1」(1位元)。
此外,例如,專注於複數個SV當中編碼所用的位元數較多的SV的位元削減,當出現編碼所用的位元數成為0的SV(例如,能夠使用的位元數不足,沒有進行編碼的SV)時,有無法削減編碼位元數的可能性。另外,編碼所用的位元數成為0的SV係例如容易成為複數個SV當中高位的SV(例如,8個SV當中的第6、第7或第8個SV)。
有鑒於此,在本揭露的一實施例中係針對將適用於***向量量化(例如,SVQ;Split VQ)的多速率晶格向量量化(LVQ;Lattice VQ)的碼簿指示值的編碼(換言之,可變長度碼)所用的編碼位元數予以削減的方法進行說明。
另外,在下述中,作為一示例,係針對就AVQ而言使用多速率晶格向量量化的Enhanced Voice Services(EVS)編解碼器進行說明。此
外,此處係針對在離散餘弦轉換(DCT;Discrete Cosine Transform)係數的向量量化使用AVQ的示例進行說明,但並不限定於DCT係數(換言之,頻率域)的量化及編碼,例如,AVQ(或多速率晶格向量量化)係亦能夠適用於時間域的向量量化。
此外,在下述中,作為一示例,係針對將AVQ中的子向量的分割數設定為8個(例如,SV1至SV8)時的情形進行說明。另外,子向量的分割數並不限定為8個,亦可為其他個數。
(實施型態1)
[編碼裝置的構成例]
圖2係顯示EVS編解碼器的Algebraic Code Excited Linear Prediction(ACELP)編碼裝置的構成例之方塊圖(例如,非專利文獻1的圖29)。此外,圖3係顯示與圖2中的AVQ編碼部(例如,AVQ encoder)有關的信號處理之方塊圖。本揭露的一實施例係例如能夠適用於從圖2及圖3的AVQ編碼部(AVQ enc方塊或Split Lattice VQ方塊)輸出的碼簿指示值(Codebook Indices)的編碼。
圖4係顯示與本揭露的一實施例的AVQ編碼部(以下,為了說明上的方便,稱為「編碼裝置」)100有關的信號處理的構成例之方塊圖。圖4所示的編碼裝置100係可具備:乘法部101、減法器102、去強調(de-emphasis)部103、DCT部104、AVQ編碼部(或者,***多速率晶格向量量化部)105(例如,對應於量化電路)、浮動位元數管理部106、逆DCT(iDCT;inverse DCT)部107、子向量指明部108、碼轉換部109(例如,對應於控制電路)及多工化部110。
乘法部101係例如可在從適應碼冊輸入的適應碼冊向量v(n)乘上適應碼冊增益(或者,節距增益(pitch gain))gp,將乘算結果輸出給減法器102。
減法器102係例如可從作為ACELP編碼的編碼目標的線性預測殘差信號r(n)減去從乘法部101輸入的適應碼冊增益乘算後的適應碼冊向量,決定(例如,算出)激勵殘差信號qin(n)。激勵殘差信號qin(n)係例如可根據下式(2)算出。減法器102係可將激勵殘差信號qin(n)輸出給去強調部103。
q in (n)=r(n)-g p .v(n) (2)
去強調部103係例如可為去強調濾波器(De-emphasis filter)Fp(z),對從減法器102輸入的激勵殘差信號qin(n)進行去強調處理。去強調部103係可將去強調處理後的激勵殘差信號qin,d(n)輸出給DCT部104。
DCT部104係例如可將從去強調部103輸入的激勵殘差信號qin,d(n)轉換為DCT係數,將DCT係數輸出至AVQ編碼部105。另外,將時間域的信號轉換為頻率域的信號的方法並不限定於DCT處理,亦可為離散傅立葉轉換(DFT;Discrete Fourier Transform)或修改型離散餘弦轉換MDCT;Modified Discrete Cosine Transform)之類的其他方法。
AVQ編碼部105係可對從DCT部104輸入的激勵殘差信號qin,d(n)的DCT係數,進行分離格子狀向量量化(或者,AVQ編碼)。
例如,AVQ編碼部105係可將DCT係數分割成複數個子向量(SV),將複數個子向量分別量化,產生包括表示碼簿的碼簿編號(亦稱為Codebook numbers、碼簿指示值或碼簿索引)、及表示該碼簿含有的複數個
碼向量當中任一者的碼向量索引的量化參數。
此外,AVQ編碼部105係例如可在編碼的各子框(sub-frame)中,根據固定的位元數(或者,預先訂定好的位元數、fixed bit-budget)與從浮動位元數管理部106輸入的浮動的位元數(例如,追加而能夠使用的位元數)(floating bit-budget)之和,決定分配給AVQ的位元數或位元配分(AVQ bit budget),輸出給碼轉換部109。此外,AVQ編碼部105係例如可將有關於根據AVQ後剩下的位元數而更新的浮動的位元數(floating bit-budget)的資訊輸出給浮動位元數管理部106。
AVQ編碼部105係例如可將藉由量化而得的量化參數當中的總體增益碼(Global Gain code)輸出給多工化部110。此外,AVQ編碼部105係例如可將各子向量的碼簿指示值(Codebook numbers)、各子向量的碼向量索引(codevector Indices)、及分配給AVQ的位元數(AVQ bit budget)輸出給碼轉換部109。此外,AVQ編碼部105係例如可將經量化的激勵殘差信號qin,d(n)的DCT係數輸出給逆DCT部107。
浮動位元數管理部106(floating bits manager)係可根據從AVQ編碼部105輸入的與浮動的位元數有關的資訊,保持(或者,管理)與在編碼處理框內能夠使用的位元數有關的資訊。例如,浮動位元數管理部106係可在後續的子框的AVQ編碼,將保持的位元數作為浮動的位元數輸出給AVQ編碼部105。
逆DCT部107係可將從AVQ編碼部105輸入的qin,d(n)的DCT係數進行逆DCT轉換,輸出量化後的激勵殘差信號qd(n)。
子向量指明部108係例如可根據輸入的適應碼冊向量v(n),
從複數個子向量中將主要子向量(Dominant Sub-vector)指明。子向量指明部108係可將與主要子向量的位置有關的資訊(例如,主要子向量資訊)輸出給碼轉換部109。例如,此處,AVQ編碼部105的量化或編碼的對象為DCT係數,因此,子向量指明部108係可將適應碼冊向量v(n)轉換為DCT係數,將適應碼冊向量v(n)的DCT係數域(或者,頻率域)中具有最大能量(energy)的子向量的位置(或者,頻率)指明。另外,當AVQ編碼部105的量化或編碼的對象為時間域的信號時,子向量指明部108係亦可不進行將適應碼冊向量v(n)轉換為DCT係數的轉換。
此外,子向量指明部108係例如,亦可無關於適應碼冊向量v(n),而是將與預先訂定好的特定的子向量的位置有關的資訊輸出至碼轉換部109之記憶體(memory)。此時,特定的子向量的位置是固定的,因此,例如,當本揭露的一實施例是藉由軟體(software)的程式實現時,可將特定的子向量的位置寫入在程式內。例如,子向量指明部108係亦可將複數個(例如,8個)子向量當中的第3個子向量或最後一個子向量設定為特定的子向量。另外,特定的子向量並不限定於第3個子向量及最後一個子向量,亦可為其他順序的子向量。例如,特定的子向量的位置係可設定為根據實驗或統計而找出的碼簿編號成為更大、機率(頻度)更高的位置(例如,最高的位置)。
碼轉換部109(Codebook indications conversion;碼簿指示轉換)係例如可根據從AVQ編碼部105輸入的複數個子向量各者的碼簿編號及碼向量索引以及與分配給1子框的AVQ的位元數(AVQ bit-budget)有關的資訊、及從子向量指明部108輸入的主要子向量資訊,將特定的子向
量(例如,碼轉換對象的子向量)的碼簿編號的編碼資訊進行轉換。
例如,當子向量的個數為8個時,碼轉換部109係例如可將含有8個子向量的碼簿指示值(Codebook index;碼簿索引)及碼向量索引之編碼資訊輸出給多工化部110,或者可將含有7個子向量的碼簿指示值、與1個未使用位元數有關的指示值(例如,稱為未使用位元數指示值)及8個子向量的碼向量索引之編碼資訊輸出給多工化部110。
多工化部110係可對從AVQ編碼部105輸入的總體增益及從碼轉換部109輸入的編碼資訊進行多工化,輸出經多工化的位元流(stream)資訊(例如,AVQ code)。
接著,針對編碼裝置100的動作例進行說明。
[碼轉換對象的子向量的選擇例]
碼轉換部109係例如可根據從子向量指明部108輸入的主要子向量資訊(例如,表示作為主要子向量而指明的子向量之資訊)及從AVQ編碼部105輸入的分配給1子框的AVQ的位元數(向量量化的分配位元數),選擇碼轉換對象的子向量(例如,亦稱為目標子向量)。
圖5係顯示碼轉換對象的子向量選擇處理的示例之圖。
圖5中,碼轉換部109係例如決定於子框(例如,AVQ sub-frame)能夠使用的AVQ的位元數(AVQ bit-budget)(S101)。
碼轉換部109係例如判定AVQ bit-budget是否超出閾值Threshold(S102)。閾值係例如可設定85[bit/subframe],亦可設定其他值。閾值係例如可根據實驗或統計而設定。
當AVQ bit-budget超出閾值時(S102:「是(Yes)」),碼轉換
部109係可將複數個子向量當中藉由主要子向量資訊而指明的子向量選擇為碼轉換對象的子向量(S103)。
另一方面,當AVQ bit-budget為閾值以下時(S102:「否(No)」),碼轉換部109係例如可將複數個子向量當中的最後一個子向量(例如,第8個子向量SV8)設定為碼轉換對象的子向量(S104)。
碼轉換部109係例如可對所選擇出的碼轉換對象的子向量適用後述的碼轉換處理。
以上,針對碼轉換對象的子向量的選擇例進行說明。
另外,碼轉換對象的子向量的選擇處理係亦可不在碼轉換部109進行而在子向量指明部108進行。此時,在子向量指明部108係可輸入與AVQ bit-budget有關的資訊。例如,子向量指明部108係亦可將與作為碼轉換對象的子向量而選擇出的子向量有關的主要子向量資訊輸出至碼轉換部109。
[碼轉換例]
接著,針對碼轉換部109的碼轉換處理的示例進行說明。
例如,碼轉換部109係可根據從AVQ編碼部105輸入的複數個子向量的各碼簿指示值、及所選擇出的碼轉換對象的子向量,進行下述步驟1至步驟3的處理。
(步驟1)
碼轉換部109係例如將複數個(例如,N個)碼簿指示值當中與碼轉換對象的子向量為相異位置的其他子向量(例如,N-1個子向量)的碼簿指示值設定成碼(或編碼碼)。此外,碼轉換部109係例如可算出N-1個子向量的
碼簿指示值的使用位元數及碼向量索引的使用位元數之總和。
(步驟2)
碼轉換部109係例如可算出於碼轉換對象的子向量的碼簿指示值能夠使用的位元數。例如,碼轉換部109係亦可藉由從於AVQ編碼能夠使用的位元總數(AVQ bit-budget)減去在(步驟1)算出的N-1個子向量的編碼所用的位元數的總和,而算出於碼轉換對象的子向量的碼簿指示值的編碼能夠使用的位元數。
(步驟3)
碼轉換部109係例如可算出在(步驟2)算出的於碼轉換對象的子向量的編碼能夠使用的位元數當中沒有使用於編碼的位元數(例如,稱為未使用位元數),將未使用位元數編碼。例如,碼轉換部109係可從在(步驟2)算出的能夠使用的位元數減去使用於碼轉換對象的子向量的碼簿指示值的位元數及使用於碼向量索引的位元數之和,而算出未使用位元數。
碼轉換部109係例如可將藉由(步驟1)至(步驟3)而得的碼簿指示值(編碼碼)及把未使用位元數進行編碼而得的資訊(例如亦稱為未使用位元數指示值或未使用位元數編碼碼)輸出至多工化部110。
接著,針對碼轉換部109的動作例進行說明。
圖6、圖7及圖8係顯示碼轉換部109的處理例之流程圖(flowchart)。
圖6中,碼轉換部109係例如可將編碼對象的複數個子向量分類成2個群(group)(S201)。例如,在編碼對象的子向量數為8個(例如,SV1至SV8)的情形中,碼轉換部109係可將8個子向量分成如下述的2個
群。
Group1:SV1至SV5,但排除被選為碼轉換對象的子向量(SVd)。
Group2:SV6至SV8及SVd。
例如,當碼轉換對象的子向量SVd=SV3時,可在Group1含有SV1、SV2、SV4及SV5,在Group2含有SV6至SV8及SV3。此外,例如,當碼轉換對象的子向量SVd=SV8時,可在Group1含有SV1至SV5,在Group2含有SV6至SV8。另外,SVd並不限定於SV3或SV8。
碼轉換部109係例如可將分類至Group1的子向量的碼簿指示值(Codebook index)及碼向量索引依序編碼(S202)。此外,碼轉換部109係例如可將Group1含有的子向量的編碼資訊(碼簿指示值及碼向量索引)輸出給多工化部110。此外,碼轉換部109係例如可算出Group1的編碼所用的位元數(例如,表示為BITSgroup1)(S202)。此外,碼轉換部109係例如可根據下式(3)決定於分類至Group2的子向量的編碼能夠使用的位元數(例如,BITSgroup2)(S202)。
(BITSgroup2)=(AVQ bit-budget)-(BITSgroup1) (3)
碼轉換部109係例如可判斷BITSgroup2是否超出閾值Threshold1(S203)。
當BITSgroup2超出閾值Threshold1時(S203:「是」),碼轉換部109係可前進至圖7所示的處理(例如,S205的處理)。
另一方面,當BITSgroup2為閾值Threshold1以下時(S203:「否」),碼轉換部109係可以下述方式決定Group2的子向量的編碼的序位,按所決定的序位將子向量編碼(S204)。
當SVd為SV1至SV5的任一者時:SVd,SV6,SV7,SV8
其他情形:SV6,SV7,SV8
此外,碼轉換部109係將含有Group2的各子向量的碼簿指示值及碼向量索引之編碼資訊輸出給多工化部110,結束碼轉換處理。
圖7中,碼轉換部109係例如可當SVd非為SV6時,從Group2排除SV6而更新Group2,將SV6編碼,將含有SV6的碼簿編號碼向量索引之編碼資訊輸出給多工化部110(S205)。此外,碼轉換部109係例如可算出SV6的編碼所用的位元數,從BITSgroup2減去所算出的位元數而更新BITSgroup2。換言之,更新後的BITSgroup2係可表示於從Group2排除SV6後的SV的編碼能夠使用的位元數。
另外,當SVd為SV6時,Group2及BITSgroup2各者係可不進行變更(或者,更新)。
接著,碼轉換部109係例如可判斷BITSgroup2是否超出閾值Threshold2(S206)。
當BITSgroup2超出閾值Threshold2時(S206:「是」),碼轉換部109係可前進至圖8所示的處理(例如,S208的處理)。
另一方面,當BITSgroup2為閾值Threshold2以下時(S206:「否」),碼轉換部109係可以下述方式決定Group2的子向量的編碼的序位,按所決定的序位將子向量編碼(S207)。
當SVd為SV1至SV6的任一者時:SVd,SV7,SV8
其他情形:SV7,SV8
此外,碼轉換部109係將含有Group2的各子向量的碼簿指
示值及碼向量索引之編碼資訊輸出給多工化部110,結束碼轉換處理。
圖8中,碼轉換部109係例如可當SVd非為SV7時,從Group2排除SV7而更新Group2,將SV7編碼,將含有SV7的碼簿編號碼向量索引之編碼資訊輸出給多工化部110(S208)。此外,碼轉換部109係例如可算出SV7的編碼所用的位元數,從BITSgroup2減去所算出的位元數而更新BITSgroup2。換言之,更新後的BITSgroup2係可表示於從Group2排除SV7後的SV的編碼能夠使用的位元數。
另外,當SVd為SV7時,Group2及BITSgroup2各者係可為不進行變更(或者,更新)。
接著,碼轉換部109係例如可判斷BITSgroup2是否超出閾值Threshold3(S209)。
當BITSgroup2為閾值Threshold3以下時(S209:「否」),碼轉換部109係可以下述方式決定Group2的子向量的編碼的序位,按所決定的序位將子向量編碼(S210)。
當SVd為SV1至SV7的任一者時:SVd,SV8
其他情形:SV8
此外,碼轉換部109係將含有Group2的各子向量的碼簿指示值及碼向量索引之編碼資訊輸出給多工化部110,結束碼轉換處理。
另一方面,當BITSgroup2超出閾值Threshold3時(S209:「是」),碼轉換部109係可以下述方式決定Group2的子向量的編碼的序位,按所決定的序位將子向量編碼(S211)。
當SVd為SV1至SV7的任一者時:SV8,SVd
其他情形:SV8
此外,碼轉換部109係將含有SV8的碼簿指示值及碼向量索引與未使用位元數的指示值之編碼資訊輸出給多工化部110,結束碼轉換處理。換言之,碼轉換部109係可改為將未使用位元數的編碼資訊輸出給多工化部110取代輸出SVd的碼簿指示值的編碼資訊。
另外,當SVd為SV8時,碼轉換部109係例如可將SV8的碼簿指示值及未使用位元數的指示值的任一者與碼向量索引輸出給多工化部110。碼簿指示值及未使用位元數的任一者係可為預先訂定。
如上述,碼轉換部109係可根據於Group2的編碼能夠使用的位元數,決定針對SVd的碼簿編號的編碼及針對未使用位元數的編碼當中要實施何者。例如,碼轉換部109係可當於Group2的編碼能夠使用的位元數為閾值(例如,Threshold1、Threshold2或Threshold3)以下時,決定實施碼簿編號的編碼(換言之,碼簿指示值的輸出),當於Group2的編碼能夠使用的位元數超出閾值時,決定實施未使用位元數的編碼(換言之,未使用位元數指示值的輸出)。
此處,在圖6、圖7及圖8中,閾值Threshold1、Threshold2及Threshold3係亦可以下述方式設定。
例如,將根據對AVQ固定分配的位元數而平均地分配給每一子向量的平均位元數表示為「BITSsv」。
在上述的示例中,例如,Threshold1係亦可為,當SVd為SV1至SV5的任一者時係設定為4×BITSsv,當SVd為SV6至SV8的任一者時係設定為3×BITSsv。
此外,例如,Threshold2係亦可為,當SVd為SV1至SV6的任一者時係設定為3×BITSsv,當SVd為SV7至SV8的任一者時係設定為2×BITSsv。
此外,例如,Threshold3係亦可為,當SVd為SV1至SV7的任一者時係設定為2×BITSsv,當SVd為SV8時係設定為BITSsv。
如上述,可將在BITSsv乘上分類至Group2的SV的個數而得的位元數設定為閾值。
[未使用位元數的編碼的示例]
接著,針對碼轉換部109的未使用位元數的編碼(例如,圖8中的S211的處理)的示例進行說明。
圖9係顯示碼轉換部109的未使用位元數的編碼處理的一示例之流程圖。
圖9中,碼轉換部109係例如判斷SV8的編碼結果(例如,碼簿編號)是否為零(S301)。換言之,碼轉換部109係可判斷SV8是否為零向量(null vector或zero vector)。S301的處理係例如,在使用在EVS規格的AVQ編碼中,用於判斷是否為SV8的編碼結果為零且SV8的碼0的編碼因於AVQ能夠使用的位元數在子向量的編碼中用罄而被截掉的情形(例如,SV8以0位元編碼的情形)的處理。
當SV8非為零時(S301:「否」),碼轉換部109係例如可將從於SVd的碼簿編號的編碼能夠使用的位元數減去SVd的碼簿編號的編碼所用的位元數而得的位元數設定為「未使用位元數」(S302)。
另外,即使在SV8非為零的情形中,仍存在在AVQ編碼中
SV8的編碼結果的碼簿指示值的尾端(例如,停止位元0)被截掉的事例。此時,SVd的編碼所用的位元數少1位元,但可藉由在SVd的編碼中將停止位元0截掉來彌補(cover)1位元的不足,亦可藉由本揭露的一實施例的適用而節約的位元數來彌補1位元的不足。
此外,例如,在SV8的編碼結果為零且停止位元0被截掉的情形中,有SV7或SV6也被截掉(例如,SV7或SV6以0位元編碼)的可能性。如上述,當2個以上的SV被截掉時,針對該2個以上的SV各者的編碼分配1位元(例如,碼簿指示值0),因此,於SVd的編碼能夠使用的位元數係可能減少2位元以上。如上述的事例係例如,能夠根據於SVd的編碼能夠使用的位元數作為SV的編碼所用的位元數是否為不完整的位元數(例如,是否不同於5的倍數)來檢測。
如上所述,在未使用位元數的編碼中,SVd的編碼順序係設定(換言之,調換)為Group2所含有的子向量的最後一個。此處,圖9中,當SV8為零時(S301:「是」),例如,有在比SVd早進行編碼的SV當中存在以0位元編碼的SV(例如,分配到的位元數成為0而沒進行編碼的SV)的可能性。例如,如圖8的S211的處理所示,在將進行SVd的編碼改為進行未使用位元數的編碼的情形中,其他SV能先於SVd進行編碼。當先於SVd進行編碼的SV為以零位元編碼的SV時,對1個SV消耗(或者,浪費)用於編碼0的1位元(例如,圖1中所示的碼簿指示值0),於SVd(或者,未使用位元數)的編碼能夠使用的位元數可能會減少(或者,不足)。以下,將針對以零位元編碼的SV所浪費的位元稱為「浪費位元」。
另外,當SV8(或者,比SV8前面的SV)以零位元編碼時,由
於分配給AVQ編碼的位元係全部用罄,因此未使用位元數為0。
因此,當於SVd的編碼能夠使用的位元數(例如,剩下的位元數)與SVd的編碼所用的位元數之間存在差時,該差係能相當於以零位元編碼的SV數。此外,例如,如圖1所示,當碼簿編號為2以上時,SVd的編碼所用的位元數為5的倍數。
例如,碼轉換部109係可在於SVd的編碼能夠使用的位元數(例如,剩下的位元數)追加浪費位元數,將於SVd的編碼能夠使用的位元數更新為5的倍數(S303)。此外,碼轉換部109係例如可判定未使用位元數為零。
如上述,碼轉換部109係例如可算出浪費位元的位元數,在於SVd的編碼能夠使用的位元數加上浪費位元,藉此,根據產生浪費位元時本來(換言之,沒有重新排序SVd的編碼順序時)於SVd的編碼能夠使用的位元數,計算未使用位元數。換言之,碼轉換部109係可根據Group2的與SVd相異的子向量當中量化參數為零向量的子向量的連續數,更新於SVd的編碼能夠使用的位元數。
接著,碼轉換部109係例如可將在S302的處理或S303的處理取得的未使用位元數進行編碼(例如,轉換為指示值)(S304)。圖10係顯示未使用位元數的編碼的一示例之圖。圖10中,不同於0位元的未使用位元數係具有跨度,而編碼所用的位元數係規定為5的倍數(或1),因此,於解碼時係能夠導出與能夠使用的位元數唯一對應的位元數。
作為一示例,當能夠使用的位元數為13位元、未使用位元的碼(指示值)為「10」時,若無浪費位元,則由於排除未使用位元的位元數為
5的倍數,未使用位元數係能夠指明為3位元。
另外,是否有浪費位元係例如能夠利用解碼的SV8是否為零向量、及將能夠使用的位元數除以5所得的餘數(例如,以5進行的模除,modulo 5)(以下,例如,亦稱為「殘餘位元數」)以及成為零向量的解碼SV包括SV8在內的連續數來進行判定。例如,當SV8非為零向量時,沒有產生浪費位元。此外,例如,產生浪費位元係未使用位元數為0的情況。浪費位元數係例如能夠藉由成為零向量的解碼SV包括SV8在內的連續數、與能夠使用的位元數的以5進行的模除(例如,殘餘位元數)來指明。
產生浪費位元時的未使用位元數係例如可以下述方式決定。
作為一示例,當於SVd的編碼能夠使用的位元數為12位元、且包括SV8在內的連續3個SV的解碼值為零向量(zero vector、null vector)時,於SVd的編碼順序的重新排序時使用於3個零向量的編碼(例如,SV6至SV8)的3位元(例如,5-(12 modulo 5)=3)係浪費位元。因此,在12位元加上3位元而得的15位元為於SVd的編碼能夠使用的位元數。藉此,於SVd的編碼能夠使用的位元數係成為與SVd的編碼所用的位元數(例如,5的倍數)相等,未使用位元數係成為0。
此外,作為其他示例,說明於SVd的編碼能夠使用的位元數為13位元、包括SV8在內的連續3個SV(例如,SV6至SV8)的解碼值為零向量(zero vector、null vector)、SV6以1位元編碼、SV7,SV8以0位元編碼(例如,無編碼的零向量)的情形。此時,於SVd的編碼順序的重新排序時使用於3個零向量的編碼(SV6至SV8的編碼)的3位元當中至少2位元(例如,5-(13 modulo 5)=2)為浪費位元。因此,在13位元加上2位元而
得的15位元為於SVd的編碼能夠使用的位元數。藉此,於SVd的編碼能夠使用的位元數係成為與SVd的編碼所用的位元數(例如,5的倍數)相等,未使用位元數係成為0。
例如,當未使用位元數為0位元時,如圖10所示,使用於編碼的位元數係1位元。此外,例如,當SVd的編碼所用的位元數為15位元時,如圖1所示,碼簿編號=3、碼簿指示值的編碼所用的位元數係3位元。在上述的示例中,未使用位元數的編碼所用的位元數為1位元,此外,浪費位元為2位元,合計為3位元。因此,在產生浪費位元的情形中,在將SVd的碼簿指示值編碼時(例如,3位元)及在將未使用位元數編碼時(例如,1位元+浪費位元的2位元),編碼所用的位元數係相等。
如上述,即使為產生浪費位元的情形,編碼裝置100仍能夠抑制編碼所用的位元數的增加來將未使用位元數編碼。
另外,判斷為有浪費位元產生時的未使用位元數係0,故碼轉換部109係例如亦可不在變更(或者,更新)於SVd的編碼能夠使用的位元數後計算與SVd的編碼所用的位元數之間的差分,將未使用位元數確定為0。另外,例如,亦可在藉由將於SVd的編碼能夠使用的位元數除以5而解碼SVd的碼簿編號時,如前述變更於SVd的編碼能夠使用的位元數。或者,藉由依情況分類,亦可採用藉由在將於SVd的編碼能夠使用的位元數除以5而得的碼簿編號加上1而解碼碼簿編號的方式變更解碼手續。
此外,圖10中所示的未使用位元數的碼係顯示按未使用位元數少的順序分配之示例,但並不限定於此,例如,亦可按未使用位元數的出現頻度高的順序分配碼。例如,亦可為,出現頻度愈高的未使用位元數,
分配愈少位元數的碼。藉此,能夠減少未使用位元數的編碼所用的位元數。
[解碼裝置的構成例]
圖11係顯示與本揭露的一實施例的AVQ解碼部(以下,為了說明上的方便,稱為「解碼裝置」)200有關的信號處理的一示例之方塊圖。圖11所示的解碼裝置200係例如可具備:分離部201、子向量指明部202、碼轉換部203(例如,對應於控制電路)、AVQ解碼部204(例如,對應於反量化電路)、浮動位元數管理部205及逆DCT部206。
在解碼裝置200中,發送自編碼裝置100的位元流係輸入至分離部201。
分離部201係例如可從所輸入的位元流含有的AVQ碼(AVQ code)分離出總體增益碼(Global gain code)、碼向量索引(codevector indices)、碼簿指示值(codebook indices)、未使用位元數指示值(unused-bit code或unused-bit index)。分離部201係例如可將總體增益碼輸出至AVQ解碼部204,將碼簿指示值、碼向量索引及未使用位元數指示值輸出至碼轉換部203。
子向量指明部202係例如可根據輸入的適應碼冊向量v(n),從複數個子向量中將主要子向量指明。子向量指明部202係例如可將與主要子向量的位置有關的資訊(例如,主要子向量資訊)輸出給碼轉換部203。例如,此處,編碼裝置100(例如,AVQ編碼部105)的量化或編碼的對象為DCT係數,因此,子向量指明部202係可將適應碼冊向量v(n)轉換為DCT係數,將適應碼冊向量v(n)的DCT係數域中具有最大能量的子向量的位置(或者,頻率)指明。另外,當編碼裝置100的量化或編碼的對象為時間
域的信號時,子向量指明部202係亦可不進行將適應碼冊向量v(n)轉換為DCT係數的轉換。
碼轉換部203係例如可根據從分離部201輸入的資訊及從子向量指明部202輸入的資訊,算出特定的位置的子向量(例如,碼轉換對象的子向量)的碼簿指示值。例如,碼轉換部203係可根據從分離部201輸入的碼簿指示值、碼向量索引及未使用位元數指示值、以及從AVQ解碼部204輸入的於AVQ能夠使用的位元數(例如,AVQ bit-budget),算出碼轉換對象的子向量的碼簿指示值。碼轉換部203係可將各子向量的碼簿指示值及碼向量索引輸出給AVQ解碼部204。
例如,碼轉換部203係可為進行下述步驟4至步驟7的處理。
(步驟4)
碼轉換部203係例如,根據碼簿指示值,解碼與碼轉換對象的子向量相異的其他子向量的碼簿指示值。此外,碼轉換部203係例如可根據所解碼出的碼簿指示值,算出與碼轉換對象的子向量相異的子向量的編碼所用的位元數(例如,碼簿指示值的使用位元數與碼向量的使用位元數之和)。
(步驟5)
碼轉換部203係例如可根據未使用位元數指示值,解碼未使用位元數。
(步驟6)
碼轉換部203係例如可根據在(步驟4)算出的子向量的編碼位元數與在(步驟5)解碼出的未使用位元數,算出碼轉換對象的子向量的編碼位元數。
(步驟7)
碼轉換部203係例如可根據在(步驟6)算出的碼轉換對象的子向量的編碼位元數,算出(或者,解碼)該子向量的碼簿指示值。
AVQ解碼部204係例如可根據從分離部輸入的總體增益碼、從碼轉換部203輸入的各SV的碼簿指示值及碼向量索引、及從浮動位元數管理部205輸入的浮動的位元數,將量化DCT係數進行解碼(或者,反量化),輸出給逆DCT部206。此外,AVQ解碼部204係例如可根據固定的位元數(或者,預先訂定好的位元數)與從浮動位元數管理部205輸入的浮動的位元數之和,決定(例如,計算)分配給AVQ的位元數,輸出給碼轉換部203。此外,AVQ解碼部204係例如可將與根據AVQ解碼處理後剩下的位元數而更新的浮動的位元數有關的資訊輸出給浮動位元數管理部205。
浮動位元數管理部205係可根據從AVQ解碼部204輸入的與浮動的位元數有關的資訊,保持(或者,管理)與在解碼處理框內能夠使用的位元數有關的資訊。例如,浮動位元數管理部205係可在後續的子框的AVQ解碼,將保持的位元數作為浮動的位元數輸出給AVQ解碼部204。
逆DCT部206係例如可將從AVQ解碼部204輸入的解碼量化DCT係數進行逆DCT轉換,轉換為時間域的信號,作為解碼激勵殘差信號qd(n)予以輸出。
如上所述,在本實施型態中,編碼裝置100係根據在向量量化中於子向量的編碼能夠使用的位元數,決定針對碼轉換對象的子向量的碼簿編號的編碼、及根據向量量化的分配位元數與量化參數的位元數之差的編碼(例如,針對未使用位元數的編碼)當中要實施何者。
如上述,根據於編碼能夠使用的位元數,切換碼簿編號的編碼與未使用位元數的編碼,藉此,能夠進行與於多速率晶格向量量化的編碼能夠使用的位元數對應的編碼,能夠削減編碼位元數。因此,依據本實施型態,能夠在多速率晶格向量量化中減少編碼位元數。
此外,依據本實施型態,即使在對未使用位元數指示值的碼轉換對象的子向量為與最尾端的子向量(例如,SV8)相異的子向量時(換言之,編碼順序調換時),編碼裝置100仍能夠對應於可能因編碼順序的調換而產生的浪費位元數,正確地決定未使用位元數。例如,編碼裝置100係當產生浪費位元時係能夠正確推定與浪費位元數對應的未使用位元數,因此,抑制因編碼位元數的不足造成的出錯或碼簿編號的減少(例如,碼簿的精度的降低),能夠抑制編碼性能的降低。
另外,例如,編碼裝置100係即使在變更SV的編碼順序也不產生浪費位元的位元配分的情形中(例如,不存在以0位元編碼的SV的位元配分時),但在可能產生浪費位元時(例如,可能使以0位元編碼的SV存在時)係亦可採用產生浪費位元的方式重組編碼位元的配分。作為一示例,說明在含有SVd、SV6、SV7、SV8的Group2中,SV6、SV7及SV8以0(1位元)編碼、SVd以10位元(碼簿編號2)編碼、於SVd的編碼時能夠使用的位元數為13位元的情形。此時,SV6至SV8各者為零向量,因此,編碼裝置100係可將對於SV6至SV8的位元分配設定為0位元,將原本分配給SV6至SV8的3位元分配(換言之,調換)給SVd的編碼位元。另外,產生浪費位元的情況(例如,可能有0位元的配分的情況),係未使用位元數為0位元的情況,殘餘位元數與零向量的連續數之合計係限定為5
的倍數,因此,可能為0位元的配分的子向量係SV7及SV8。因此,能夠調換給SVd的編碼位元的位元數係2位元。此時,編碼裝置100係例如將SVd的能夠使用的位元數設為在13位元加上2位元而得的15位元,將SVd以碼簿編號3(例如,15位元)進行編碼。此時,未使用位元數係成為零。如上述,藉由位元配分的重組,能夠確實判斷解碼側的浪費位元之有無,並且能夠提升SVd的編碼精度。
此外,依據本實施型態,解碼裝置200係例如能夠根據編碼所用的位元數及解碼資訊(例如,與碼轉換對象的子向量相異的子向量的碼簿指示值)之類的參數,將與碼轉換對象的子向量有關的編碼資訊指明。因此,例如,用於切換針對碼簿指示值的編碼與針對未使用位元數的編碼的信號(例如,旗標(flag)或切換專用的控制資訊)係可不從編碼裝置100通知給解碼裝置200。
(實施型態2)
圖12係顯示與本揭露的一實施例的AVQ編碼部(以下,為了說明上的方便,稱為「編碼裝置」)300有關的構成例之方塊圖。另外,圖12中,進行與圖4所示的編碼裝置100相同處理的構成部係標註相同的元件符號。
圖12中,子向量指明部301係可將與預先訂定好的子向量(例如,稱為目標子向量、target sub-vector或fixed sub-vector)的位置有關的資訊輸出給碼轉換部109。預先訂定好的子向量係例如可為8個子向量(例如,SV1至SV8)的任一者。例如,以下係說明8個子向量SV1至SV8當中預先訂定好的子向量為在頻率域中由低算起第三個子向量(例如,SV3)或最後一個子向量(例如,SV8)時的情形。
另外,子向量指明部301係可不進行用於指明(指定)預先訂定好的特定的位置的子向量的某些信號處理,例如,亦可不作為構成要素明示地具備。在圖12中,作為一示例,子向量指明部301係亦可為保持預先訂定的子向量的位置之記憶體。
在圖12所示的編碼裝置300中,與子向量指明部301相異的構成部的動作係可與圖4所示的編碼裝置100的動作相同。
接著,針對編碼裝置300的不同於實施型態1的動作例進行說明。
另外,碼轉換對象的子向量的選擇方法係可與圖5所示的方法相同。在本實施型態中,碼轉換部109係可將使用主要子向量資訊改為使用預先指明好的子向量的位置資訊。此外,子向量的選擇處理係例如亦可不在碼轉換部109進行而在子向量指明部301進行。此時,亦可在子向量指明部301輸入AVQ bit-budget資訊,將與所選擇的子向量有關的資訊作為子向量的位置資訊輸入至碼轉換部109。
圖13至圖16係顯示編碼裝置300的動作例之流程圖。在圖13至圖16中,作為一示例,係顯示碼轉換對象的子向量的位置為在頻率域中由低算起第三個子向量SV3時的編碼裝置300的動作例。
圖13中,編碼裝置300係例如將SV1至SV8的子向量分類成含有SV1及SV2的Group1與含有SV3至SV8的5個子向量的Group2(S401)。例如,編碼裝置300係例如可將SV1至SV8的子向量分類成含有碼轉換對象的子向量之前的子向量的Group1與含有碼轉換對象的子向量之後的子向量的Group2。例如,編碼裝置300係在編碼頻率域的
子向量的情形中,可將複數個子向量(例如,SV1至SV8)分類成由頻率比碼轉換對象的子向量的頻率低的子向量組成的Group1、與由碼轉換對象的子向量及頻率比碼轉換對象向量高的子向量組成的Group2。換言之,編碼裝置300係可將子向量SV1至SV8,以碼轉換對象的子向量為分界,分類成不含碼轉換對象的子向量的Group1與含有碼轉換對象的子向量的Group2。
接著,編碼裝置300係例如將Group1含有的子向量(例如,SV1及SV2)的量化參數編碼,輸出編碼資訊(例如,碼簿指示值及碼向量索引)(S402)。此外,編碼裝置300係例如可決定Group1的編碼所使用(或者,消耗)的位元數,決定於Group2的子向量(例如,SV3至SV8)的編碼能夠使用的位元數。
接著,編碼裝置300係例如,判斷於Group2的子向量的編碼能夠使用的位元數是否為閾值Threhold1以上(S403)。例如,編碼裝置300係當於Group2的子向量的編碼能夠使用的位元數未達Threshold1時(S403:「否」)係前進至圖14所示的處理(例如,S404的處理),當於Group2的子向量的編碼能夠使用的位元數為Threshold1以上時(S403:「是」)係前進至圖15所示的處理(例如,S408的處理)。
此處,當作為碼轉換對象所選擇的子向量的位置為第3個(例如,SV3)時,Threshold1係可設定為30位元。例如,在將SV1至SV8的子向量當中的SV3設定為最後進行編碼的子向量時(換言之,有編碼順序的調換時)的情形中,當SV3後面的子向量SV4至SV8各者的解碼結果為0(例如,零向量)時,各者的編碼可能使用1位元(例如,對於5個子向量最
多5位元)。另一方面,在為AVQ編碼時(換言之,沒有編碼順序的調換時)的情形中,有SV3後面的SV4至SV8分別以0位元編碼的可能性。假設SV4至SV8藉由AVQ編碼而以0位元編碼,在進行本實施型態的碼轉換的編碼方法中係在SV4至SV8的編碼合計使用5位元,故可望在SV3的編碼中有削減5位元以上的位元的效果。例如,參照圖1及圖10,未使用位元數0時的編碼位元數為1位元,因此,要得到5位元的削減效果,SV3的碼簿編號係可為6以上。例如,當碼簿編號為6時,包含碼向量索引在內的編碼資訊係30位元。因此,閾值Threshold1係可設定30位元。
另外,當特定的子向量的位置異於SV3時,Group2含有的子頻帶及閾值Threshold1係亦可對應於特定的子向量進行設定。例如,在SV4設定為特定的子向量的情形中,在Group2係含有SV4至SV8,Threshold1係亦可設定為25位元。
圖14中,編碼裝置300係例如,將Group2內的子向量的編碼順序決定為SV3,SV4,SV5,SV6,SV7,SV8,將SV3至SV7編碼,輸出編碼資訊(例如,碼簿指示值及碼向量索引)(S404)。此外,編碼裝置300係例如可決定SV3至SV7的編碼所用的位元數,決定於SV8的編碼能夠使用的位元數(S404)。
如上述,編碼裝置300係例如可當於Group2的編碼能夠使用的位元數未達Threshold1時(S403:「否」),在Group2的編碼中,不進行針對子向量SV3的碼轉換(換言之,編碼順序的調換)。換言之,編碼裝置300係可當於Group2的編碼能夠使用的位元數未達Threshold1時,將碼轉換對象的子向量從SV3設定(或者,變更、更新)為Group2中的最
後一個子向量SV8。藉由該處理,例如,能夠在碼轉換對象的子向量的編碼中抑制發生位元數的不足。
接著,編碼裝置300係例如可判斷於SV8的編碼能夠使用的位元數是否未達閾值Threshold2或是否超出閾值Threshold3(S405)。
當於SV8的編碼能夠使用的位元數未達Threshold2時或超出Threshold3時(S405:「是」),編碼裝置300係例如可使用AVQ的編碼方法(編碼碼簿編號的方法)將SV8編碼,輸出編碼資訊(例如,碼簿指示值及碼向量索引),結束碼轉換處理(S406)。如上述,當於SV8的編碼能夠使用的位元數未達Threshold2時或超出Threshold3時,編碼裝置300因未使用位元數的編碼的編碼位元數沒有削減,可不進行未使用位元數的編碼而進行碼簿編號的編碼。
另一方面,當於SV8的編碼能夠使用的位元數為Threshold2以上時且沒有超出Threshold3時(S405:「否」),編碼裝置300係可將碼簿編號的編碼改為將未使用位元數編碼,輸出編碼資訊(例如,未使用位元數指示值及碼向量索引),結束碼轉換處理(S407)。
此處,例如,Threshold2係可設定為9位元,Threshold3係可設定為80位元。將Threshold2設定為9位元的理由係例如,當於SV8的編碼能夠使用的位元數未達10位元時,在AVQ編碼中,碼簿編號的編碼所用的位元數也是1位元,並沒有獲得藉由碼轉換產生的位元數的削減效果之故。
此外,例如,Threshold3係亦可根據實驗或經驗而設定。例如,於SV8的編碼能夠使用的位元數愈多,未使用位元數容易變得愈多,
因此為了回避未使用位元數的增加可設定Threshold3。另外,未使用位元數多的事例係例如,有可能為編碼對象為無聲等資訊量少的事例,故即使沒有獲得位元削減效果,編碼的品質也不會有問題。因此,在Threshold3係例如,亦可根據經驗而設定大到某個程度的位元數。
圖15中,編碼裝置300係例如可將Group2內的子向量的編碼順序決定為SV4,SV5,SV6,SV7,SV8,SV3(S408)。換言之,編碼裝置300係可將碼轉換對象的子向量SVd=SV3設定為Group2中的最後一個子向量。
接著,編碼裝置300係例如可按SV4,SV5,SV6,SV7,SV8的序位一次一個地編碼子向量,輸出編碼資訊(例如,碼簿指示值及碼向量索引)(S409)。此外,編碼裝置300係例如可決定子向量的編碼所用的位元數,決定(換言之,更新)於Group2的剩下的子向量的編碼能夠使用的位元數(S409)。
接著,編碼裝置300係例如判斷於Group2的剩下的子向量的編碼能夠使用的位元數是否為Threshold1以上(S410)。
當於Group2的編碼能夠使用的位元數未達Threshold1時(S410:「否」),編碼裝置300係例如可前進至圖14的S404的處理,將Group2內剩下的子向量的編碼順序變更為SV3、其他剩下的子向量的序位,進行圖14的S404至S407的編碼處理。上述各處理係例如因為於Group2的編碼能夠使用的位元數對剩下的全部的子向量的編碼來說並不夠,故回復SV3的編碼順序而先將SV3編碼之故。
另一方面,當於Group2的編碼能夠使用的位元數為
Threshold1以上時(S410:「是」),編碼裝置300係例如判斷下一個編碼的子向量是否為SV3(S411)。當下一個編碼的子向量非為SV3(碼轉換對象的子向量)時(S411:「否」),編碼裝置300係例如可前進至S409的處理,進行下一個子向量的編碼。編碼裝置300係例如可反覆進行S409至S411的處理,按SV4,SV5,SV6,SV7,SV8的順序進行編碼。
當下一個編碼的子向量為SV3時(S411:「是」),編碼裝置300係例如前進至圖16中所示的S412的處理。
圖16中,編碼裝置300係例如可判斷於SV3(=SVd)的編碼能夠使用的位元數是否超出Threshold3(S412)。
當於SV3的編碼能夠使用的位元數超出Threshold3時(S412:「是」),編碼裝置300係例如可不進行碼轉換而根據AVQ編碼將SV3編碼,輸出編碼資訊(例如,碼簿指示值及碼向量索引),結束碼轉換處理(S413)。如上述,當於SV3的編碼能夠使用的位元數超出Threshold3時係未使用位元數變多,未使用位元數指示值的位元數容易變多,故編碼裝置300係可將碼簿編號編碼。
另一方面,當於SV3的編碼能夠使用的位元數為Threshold3以下時(S412:「否」),編碼裝置300係例如可將編碼SV3的碼簿編號改為編碼未使用位元數,輸出編碼資訊(例如,碼簿指示值及碼向量索引),結束碼轉換處理(S414)。
接著,針對編碼裝置300的其他動作例進行說明。
圖17係顯示編碼裝置300的其他動作例之流程圖。在圖17中,作為一示例,係顯示碼轉換對象的子向量的位置為在頻率域中最高位
置的子向量SV8(例如,最後一個子向量)時的編碼裝置300的動作例。
另外,圖17所示的動作例係例如可與圖14所示的動作例相同。圖14係顯示當作為碼轉換對象所選擇的子向量的位置為SV3,無法進行SV3的編碼資訊的碼轉換時(例如,為了在SV3的編碼適用未使用位元數的編碼,調換子向量的編碼順序而SV3的編碼無法於最後進行時),將碼轉換對象的子向量從SV3改為SV8,判斷是否能夠在SV8的編碼適用未使用位元數的編碼(例如,相較於編碼碼簿編號時,編碼未使用位元數時的編碼位元數是否減少)的動作例。
圖17中,編碼裝置300係例如,將SV1至SV7編碼,輸出編碼資訊(例如,碼簿指示值及碼向量索引)(S501)。此外,編碼裝置300係例如可決定SV1至SV7的編碼所用的位元數,決定能夠用於SV8的編碼的位元數(S501)。
接著,編碼裝置300係例如可判斷於SV8的編碼能夠使用的位元數是否未達閾值Threshold2,或者是否超出閾值Threshold3(S502)。
當於SV8的編碼能夠使用的位元數未達Threshold2時或超出Threshold3時(S502:「是」),編碼裝置300係例如可使用AVQ的編碼方法(編碼碼簿編號)將SV8編碼,輸出編碼資訊(例如,碼簿指示值及碼向量索引),結束碼轉換處理(S503)。如上述,當於SV8的編碼能夠使用的位元數未達Threshold2時或超出Threshold3時,編碼裝置300因未使用位元數的編碼的編碼位元數沒有削減,可不進行未使用位元數的編碼而進行碼簿編號的編碼。
另一方面,當於SV8的編碼能夠使用的位元數為Threshold2
以上時且沒有超出Threshold3時(S502:「否」),編碼裝置300係可將碼簿編號的編碼改為將未使用位元數編碼,輸出編碼資訊(例如,未使用位元數指示值及碼向量索引),結束碼轉換處理(S504)。
另外,圖17中,Threshold2及Threshold3係例如亦可適用圖14中設定的值。
接著,針對圖14的S407的處理、圖16的S414的處理、或圖17的S504的處理的未使用位元數的編碼處理的示例進行說明。
圖18係顯示未使用位元數的編碼處理例的流程圖。
圖18中,編碼裝置300係例如可判斷碼轉換對象的子向量是否為SV8(S601)。當碼轉換對象的子向量為SV8時(S601:「是」),編碼裝置300係例如可算出殘餘位元數(以下,表示為「RB」)(S602)。殘餘位元數RB係例如亦可藉由(於碼轉換對象的子向量的編碼能夠使用的位元數)%5而算出。此處,「%」係表示模除運算。在殘餘位元數RB的算出後,編碼裝置300係例如前進至S606的處理。
另一方面,當碼轉換對象的子向量非為SV8時(例如,為SV3時)(S601:「否」),變更子向量的編碼順序,故有編碼順序變更後的子向量的編碼所用的位元數不同於不變更編碼順序而進行編碼(例如,AVQ編碼)時的位元數的可能性。換言之,有因編碼順序的變更而產生白白使用掉的位元(例如,浪費位元)的可能性。例如,在能夠使用於編碼的位元數於中途的子向量的編碼之前成為零,此後的子向量(例如,包括SV8在內的連續的子向量)沒有編碼而強制性地成為零向量時(換言之,以0位元編碼時)的情形中,有可能產生浪費位元。
在本實施型態中,當碼轉換對象的子向量非為SV8時(S601:「否」),編碼裝置300係例如計數(count)在進行AVQ編碼的子向量中,量化參數為零向量(稱為Null Vector、全零的向量、或zero vector)的子向量的連續數(以下,表示為「NCNV」),確認作為零向量的子向量是否含有SV8(例如,最後一個子向量)(S603)。換言之,NCNV係可顯示包括SV8在內的零向量的子向量的連續數。
此外,編碼裝置300係例如可算出殘餘位元數RB(S603)。殘餘位元數RB係例如亦可藉由(能夠使用於碼轉換對象的子向量的編碼的位元數)%5而算出。此處,「%」係表示模除運算。
接著,編碼裝置300係例如可判斷是否有因子向量的編碼順序的變更而產生浪費位元的可能性(S604)。編碼裝置300係例如可根據NCNV及RB,判斷是否有產生浪費位元的可能性(關於判斷的示例,於後文中說明)。當沒有產生浪費位元的可能性時(S604:「否」),編碼裝置300係例如前進至S606的處理。
另一方面,當有產生浪費位元的可能性時(S604:「是」),編碼裝置300係例如可更新於碼轉換對象的子向量(例如,SVd)的編碼能夠使用的位元數(S605)。例如,編碼裝置300係可對應於條件,在於碼轉換對象的子向量的編碼能夠使用的位元數加上(5-RB)位元、NCNV位元、或(NCNV+1)位元。換言之,編碼裝置300係例如可將於碼轉換對象的子向量的編碼能夠使用的位元數增加浪費位元數(例如,有白白使用掉的可能性的位元數)的量。此外,編碼裝置300係例如可將殘餘位元數RB更新為0(S605)。另外,將於碼轉換對象的子向量的編碼能夠使用的位元數進行更
新的處理的示例係於後說明。
另外,追加的位元數的算出(例如,5-RB)及殘餘位元數RB的算出中使用的值「5」僅是一示例,例如可根據相對於複數個子向量的編碼所用的位元數全體分配給碼簿的位元數之比例(例如,1/5)、或子向量的編碼所用的位元數為哪個值的倍數來規定。
接著,編碼裝置300係例如判斷殘餘位元數RB是否為4(S606)。當非為RB=4時(S606:「否」),編碼裝置300係例如可前進至S608的處理,進行未使用位元數的決定處理。
當RB=4時(S606:「是」),編碼裝置300係例如可將於碼轉換對象的子向量的編碼能夠使用的位元數增加1位元(S607)。
接著,編碼裝置300係例如可決定未使用位元數(S608)。例如,編碼裝置300係可算出於碼轉換對象的子向量能夠使用的位元數與碼轉換對象的子向量的編碼所用的位元數之差(例如,成為未使用的位元數)作為未使用位元數。
編碼裝置300係例如可將所算出的未使用位元數編碼(S609)。
接著,說明在圖18的S604的處理中,是否有因子向量的編碼順序的變更而產生浪費位元的可能性的判斷方法的示例。
例如,編碼裝置300係可當滿足下列條件1及條件2時,判斷為有產生浪費位元的可能性。換言之,編碼裝置300係可當沒有滿足下列條件1或條件2的任一者時,判斷為沒有產生浪費位元的可能性。
條件1:量化後的SV8(或者,解碼的SV8)為零向量。
條件2:RB+NCNV≧4
例如,針對條件1,當SV8非為零向量時,在AVQ編碼中複數個子向量(例如,SV1至SV8)全部進行編碼,因此,不論變更還是不變更子向量的編碼順序,編碼所用的位元數皆不變。因此,當SV8非為零向量時,不可能產生浪費位元。換言之,當SV8為零向量時,有產生浪費位元的可能性。
另外,條件1係例如,亦可設定為「NCNV>0」。當滿足NCNV>0時,至少SV8為零向量。
此外,例如,針對條件2,會產生浪費位元情況係例如,只有未使用位元數(例如,在AVQ編碼中成為未使用的位元數)為零的情況。
此處,例如,殘餘位元數RB係相當於因編碼順序的變更而將位元白白使用掉造成於SVd的編碼能夠使用的位元數減少(或者,不足)由此多出來的位元數。此外,例如,位元數NCNV係相當於可能因編碼順序的變更而白白使用掉的位元數(浪費位元)。
因此,當產生浪費位元時,RB+NCNV係可能成為5以上的值。另外,例如,相對於子向量的編碼所用的位元數為5的倍數(例如,5n),亦有能夠省略碼簿指示值的最後1位元(停止位元)的情形,因此,RB+NCNV係可能成為4以上的值。如上述,在條件2中,當未使用位元數為零時,RB+NCNV係可能成為4以上。換言之,當RB+NCNV為4以上時,係有未使用位元為零的可能性,有產生浪費位元的可能性。另一方面,當RB+NCNV未達4時,因存在未使用位元而不可能產生浪費位元。
另外,條件2係亦可如下述設定。
條件2’:當設殘餘位元數為RB、將零向量的子向量(包括SV8在內)的連續數設為「NCNVV」、將推定碼簿編號設為ECBI時,(於SVd能夠使用的位元數)+NCNVV≧5×ECBI+4
此處,亦可為ECBI=(INT)(於SVd能夠使用的位元數/5)。此外,函數(INT)(X)係可為回傳將X的小數點以下無條件捨去而得之值的函數。
接著,說明編碼裝置300的將於碼轉換對象的子向量的編碼能夠使用的位元數進行更新的處理的示例。
圖19係顯示編碼裝置300的將於碼轉換對象的子向量的編碼能夠使用的位元數進行更新的處理例的流程圖。
編碼裝置300係例如可當判定為有產生浪費位元的可能性時(圖18中的S604:「是」),對應於與殘餘位元數(例如,針對於碼轉換對象的子向量的編碼能夠使用的位元數的5的模除)RB及量化參數為零向量的子向量的連續數NCNV有關的條件,將NCNV位元、(NCNV+1)位元或(5-RB)位元作為浪費位元數加到於碼轉換對象的子向量的編碼能夠使用的位元數。
例如,編碼裝置300係可當(RB+NCNV)%5=0時(S641:「是」),將加算位元數(以下,表示為「W」)設定為NCNV位元(S642)。
此外,例如,編碼裝置300係可當(RB+NCNV)%5=4時(S641:「否」及S643:「是」),將加算位元數W設定為(NCNV+1)位元(S644)。
此外,例如,編碼裝置300係可當非為(RB+NCNV)%5=0及(RB+NCNV)%5=4時(S641:「否」及S643:「否」),將加算位元數W
設定為(5-RB)位元(S645)。
接著,編碼裝置300係例如可將加算位元數W加到於碼轉換對象的子向量的編碼能夠使用的位元數,藉此,更新於碼轉換對象的子向量的編碼能夠使用的位元數(S646)。藉由S646的處理,於碼轉換對象的子向量的編碼能夠使用的位元數係設定為5的倍數。此時,殘餘位元數RB為0,因此,編碼裝置300係例如可將殘餘位元數RB更新為0。
此處,作為一示例,子向量的編碼所用的位元數係5的倍數。此外,例如,在進行AVQ編碼的子向量中,量化參數為零向量的子向量的連續數NCNV係亦可能成為5以上。例如,當SV1至SV8中的碼轉換對象的子向量為SV3時,NCNV係可能成為5(例如,對應SV4至SV8)。
當NCNV為5以上時,例如,因浪費位元的產生,於碼轉換對象的子向量的編碼能夠使用的位元數係有比本來的位元數(以下,設為「5n」位元)(n為2以上的整數)減少5位元以上的可能性。此時,在於碼轉換對象的子向量能夠使用的位元數的更新中,僅是加上(5-RB)位元,仍有設定為比本來的位元數(5n位元)少的位元數(例如,5(n-1)位元)的可能性。
相對於此,如圖19所示,編碼裝置300係當(RB+NCNV)%5=0時,在於碼轉換對象的子向量的編碼能夠使用的位元數加上NCNV位元。藉此,例如,即使NCNV為5以上(例如,RB+NCNV=5或10),編碼裝置300仍考慮到NCNV位元而能夠將於碼轉換對象的子向量的編碼能夠使用的位元數設定為適切的值(例如,5n位元)。
此外,如上所述,相對於子向量的編碼所用的位元數為5的
倍數,例如,亦有能夠省略碼簿指示值的最後1位元(停止位元)的情形。此時,(RB+NCNV)%5係可能成為4。如圖19所示,當(RB+NCNV)%5=4時,編碼裝置300係在於碼轉換對象的子向量的編碼能夠使用的位元數加上(NCNV+1)位元。藉此,例如,即使NCNV為5以上,編碼裝置300仍考慮到停止位元而能夠將於碼轉換對象的子向量的編碼能夠使用的位元數設定為適切的值(例如,5n位元)。
另外,在圖19中,在S641的處理中,係針對根據(RB+NCNV)%5的結果的示例進行說明,但並不限定於此。例如,編碼裝置300係亦可在NCNV為5以上的情形中,當非為(RB+NCNV)%5=4時係將加算位元數W設定為NCNV,當(RB+NCNV)%5=4時係將加算位元數W設定為(NCNV+1)位元。此外,例如,編碼裝置300係可當NCNV未達5時,將加算位元數W設定為(5-RB)位元。另外,在解碼裝置400(例如,後述的圖28的處理)亦可進行相同的處理。
此外,在圖19中,在S641的處理中,係說明根據針對(RB+NCNV)的5的模除時的情形,但並不限定於此。例如,編碼裝置300係亦可構成為根據針對(RB+NCNV)的10的模除來設定加算位元數W。此時,編碼裝置300係同樣能夠構成為當NCNV為5以上時,能夠適切地設定於碼轉換對象的子向量的編碼能夠使用的位元數(例如,5n位元)。此外,例如,當在AVQ編碼中設定的子向量數比8個多時,RB+NCNV係能形成為15以上。此時,編碼裝置300係亦可構成為根據針對(RB+NCNV)的15以上的5的倍數的模除來設定加算位元數W。另外,在解碼裝置400(例如,後述的圖28的處理)亦可進行相同的處理。
圖20係顯示編碼裝置300的將於碼轉換對象的子向量的編碼能夠使用的位元數進行更新的處理例的其他流程圖。
編碼裝置300係例如亦可當判定為有產生浪費位元的可能性時(圖18中的S604:「是」),對應於與殘餘位元數RB及量化參數為零向量的子向量的連續數NCNV有關的條件,將NCNV位元或(NCNV+1)位元作為浪費位元數加到於碼轉換對象的子向量的編碼能夠使用的位元數。
亦即,在圖20中係不同於圖19,編碼裝置300係當於碼轉換對象的子向量的編碼能夠使用的位元數的更新時,不加上(5-RB)位元。
例如,編碼裝置300係可當(RB+NCNV)%5=4時(S651:「是」),將加算位元數W設定為(NCNV+1)位元(S652),當非為(RB+NCNV)%5=4時(S651:「否」),將加算位元數W設定為NCNV位元(S653)。
接著,編碼裝置300係例如可將加算位元數W加到於碼轉換對象的子向量的編碼能夠使用的位元數,藉此,更新於碼轉換對象的子向量的編碼能夠使用的位元數(S654)。
此外,編碼裝置300係例如可對加上(NCNV+1)位元或NCNV位元後的於碼轉換對象的子向量的編碼能夠使用的位元數,重新計算殘餘位元數RB(S654)。藉由NCNV位元的加算,重新計算的殘餘位元數RB係可能有成為RB>0的情形。
編碼裝置300係例如判斷重新計算的殘餘位元數是否RB>0(S655)。換言之,編碼裝置300係判斷重新計算的殘餘位元數RB(或者,更新後的能夠使用的位元數)是否為真值。
當非為RB>0時(S655:「否」),編碼裝置300係可結束圖20的處理。
另一方面,當為RB>0時(S655:「是」),編碼裝置300係例如可從加上(NCNV+1)位元或NCNV位元後的於碼轉換對象的子向量的編碼能夠使用的位元數減去殘餘位元數RB,藉此,更新於碼轉換對象的子向量的編碼能夠使用的位元數(S656)。此外,編碼裝置300係例如可將殘餘位元數RB更新為0。
圖20中,藉由S652的處理及S653的處理,例如,即使NCNV為5以上,編碼裝置300仍能夠適切地設定於碼轉換對象的子向量的編碼能夠使用的位元數。此外,藉由S656的處理,能夠將於碼轉換對象的子向量的編碼能夠使用的位元數調整為5的倍數。
如圖19或圖20所示,編碼裝置300係對應於與殘餘位元數RB及量化參數為零向量的子向量的連續數NCNV有關的條件,設定(例如,更新)於碼轉換對象的子向量的編碼能夠使用的位元數。藉此,編碼裝置300係例如即使NCNV為5以上,仍能夠將於碼轉換對象的子向量的編碼能夠使用的位元數設定為適切的值。
此外,在後述的解碼裝置400中,相對於無法將浪費位元數指明者,能夠將RB及NCNV指明。在本實施型態中,例如,編碼裝置300(及後述的解碼裝置400)係能夠使用作為在解碼裝置400能夠指明的參數的RB及NCNV,適切地設定於碼轉換對象的子向量的編碼能夠使用的位元數。
接著,針對本實施型態的AVQ解碼部的動作例進行說明。
圖21係顯示與本揭露的一實施例的AVQ解碼部(以下,為了說明上的方便,稱為「解碼裝置」)400有關的構成例之方塊圖。另外,圖21中,進行與圖11所示的解碼裝置200相同處理的構成部係標註相同的元件符號。
圖21中,子向量指明部401係可將與預先訂定好的子向量(例如,稱為目標子向量、target sub-vector或fixed sub-vector)的位置有關的資訊輸出給碼轉換部203。預先訂定好的子向量係例如可為8個子向量(例如,SV1至SV8)的任一者。例如,以下係說明8個子向量SV1至SV8當中預先訂定好的子向量為在頻率域中由低算起第三個子向量(例如,SV3)或最後一個子向量(例如,SV8)時的情形。
另外,子向量指明部401係可不進行用於指明(指定)預先訂定好的特定的位置的子向量的某些信號處理,例如,亦可不作為構成要素明示地具備。在圖21中,作為一示例,子向量指明部401係亦可為保持預先訂定的子向量的位置之記憶體。
在圖21所示的解碼裝置400中,與子向量指明部401相異的構成部的動作係可與圖11所示的解碼裝置200的動作相同。
接著,針對解碼裝置400的不同於實施型態2的動作例進行說明。
另外,碼轉換對象的子向量的選擇方法係可與圖5所示的方法相同。在本實施型態中,碼轉換部203係可將使用主要子向量資訊改為使用預先指明好的子向量的位置資訊。此外,子向量的選擇處理係例如亦可不在碼轉換部203進行而在子向量指明部401進行。此時,亦可在子向
量指明部401輸入AVQ bit-budget資訊,將與所選擇的子向量有關的資訊作為子向量的位置資訊輸入至碼轉換部203。
圖22至圖25係顯示解碼裝置400的動作例之流程圖。在圖22至圖25中,作為一示例,係顯示碼轉換對象的子向量的位置為在頻率域中由低算起第三個子向量SV3時的解碼裝置400的動作例。
另外,在圖22至圖25的說明中,複數個子向量SV1至SV8及閾值Threshold1、Threshold2及Threshold3係可與圖13至圖16相同。
圖22中,解碼裝置400係例如可解碼Group1的子向量(例如,SV1及SV2),輸出解碼資訊(例如,碼簿編號及碼向量索引)(S701)。此外,解碼裝置400係例如可算出Group1的子向量(例如,SV1及SV2)的解碼所用的位元串的位元數,從分配給AVQ全體的位元數(例如,AVQ bit-budget)減去SV1及SV2的解碼所用的位元數,算出作為Group2的子向量的位元串的剩餘的位元數(remaining bits)(S701)。
接著,解碼裝置400係例如判斷作為Group2的子向量的位元串的剩餘的位元數是否為閾值Threshold1以上(S702)。例如,解碼裝置400係當作為Group2的子向量的位元串的剩餘的位元數未達Threshold1閾值時(S702:「否」)係前進至圖23所示的處理(例如,S703的處理),當作為Group2的子向量的位元串的剩餘的位元數為Threshold1以上時(S702:「是」)係前進至圖24所示的處理(例如,S707的處理)。
圖23中,解碼裝置400係例如將Group2內的子向量的編碼順序決定(或者,解釋)為SV3,SV4,SV5,SV6,SV7,SV8,將SV3至SV7分別解碼,輸出解碼結果(碼簿編號及碼向量索引)(S703)。此外,解碼裝置400
係例如可算出SV3至SV7的解碼所用的位元串的位元數,算出作為SV8的位元串(編碼碼)的剩餘的位元數(S703)。
如上述,解碼裝置400係例如可當作為Group2的子向量的位元串的剩餘的位元數未達Threshold1時(S702:「否」),判斷在編碼裝置100不進行針對碼轉換對象的子向量SV3的碼轉換(換言之,編碼順序的調換)。
接著,解碼裝置400係例如可判斷作為SV8的位元串的剩餘的位元數是否未達閾值Threshold2或是否超出閾值Threshold3(S704)。
當作為SV8的位元串的剩餘的位元數未達Threshold2時或超出Threshold3時(S704:「是」),解碼裝置400係例如可判斷SV8以AVQ的編碼方法(編碼碼簿編號的方法)編碼,將SV8解碼,輸出解碼資訊(例如,碼簿編號及碼向量索引),結束解碼處理(S705)。
另一方面,當作為SV8的位元串的剩餘的位元數為Threshold2以上時且沒有超出Threshold3時(S704:「否」),解碼裝置400係例如判斷SV8的碼簿編號改為編碼未使用位元數,解碼未使用位元數及碼向量索引(S706)。此外,解碼裝置400係例如可根據作為SV8的位元串的剩餘的位元數與解碼出的未使用位元數,決定SV8的碼簿編號(S706)。另外,關於碼簿編號的決定方法的示例,於後文中說明。解碼裝置400係可輸出所決定的SV8的解碼資訊(例如,碼簿編號及碼向量索引),結束解碼處理。
圖24中,解碼裝置400係例如可將Group2內的子向量的編碼順序決定(或者,解釋)為SV4,SV5,SV6,SV7,SV8,SV3(S707)。換言之,
解碼裝置400係可將碼轉換對象的子向量SVd=SV3設定為Group2當中的最後一個子向量。
接著,解碼裝置400係例如可按SV4,SV5,SV6,SV7,SV8的序位一次一個地解碼子向量,輸出解碼資訊(例如,碼簿編號及碼向量索引)(S708)。此外,解碼裝置400係例如可決定子向量的解碼所用的位元串的位元數,決定Group2的剩下的子向量的位元串的位元數(S708)。
接著,解碼裝置400係例如判斷Group2的剩下的子向量的位元串的位元數是否為Threshold1以上(S709)。
當Group2的剩下的子向量的位元串的位元數未達Threshold1時(S709:「否」),解碼裝置400係例如可前進至圖23的S703的處理,將Group2內剩下的子向量的編碼順序變更為SV3、其他剩下的子向量的序位,進行圖23的S703至S706的解碼處理。
另一方面,當Group2的剩下的子向量的位元串的位元數為Threshold1以上時(S709:「是」),解碼裝置400係例如判斷下一個解碼的子向量是否為SV3(S710)。當下一個解碼的子向量非為SV3(碼轉換對象的子向量)時(S710:「否」),解碼裝置400係例如可前進至S708的處理,進行下一個子向量的解碼。解碼裝置400係例如可反覆進行S708至S710的處理,按SV4,SV5,SV6,SV7,SV8的順序進行解碼。
當下一個解碼的子向量為SV3時(S710:「是」),解碼裝置400係例如前進至圖25中所示的S711的處理。
圖25中,解碼裝置400係例如可判斷作為SV3(=SVd)的位元串的剩餘的位元數是否超出Threshold3(S711)。
當作為SV3的位元串的剩餘的位元數超出Threshold3時(S711:「是」),解碼裝置400係例如可不進行碼轉換而根據AVQ編碼方法將SV3解碼,輸出解碼資訊(例如,碼簿編號及碼向量索引),結束解碼處理(S712)。
另一方面,當作為SV3的位元串的剩餘的位元數為Threshold3以下時(S711:「否」),解碼裝置400係例如可將解碼SV3的碼簿編號改為解碼未使用位元數指示值及解碼碼向量索引(S713)。此外,解碼裝置400係例如可根據作為SV3的位元串的剩餘的位元數與解碼出的未使用位元數資訊,決定SV3的碼簿編號(S713)。解碼裝置400係例如可輸出SV3的碼簿編號及碼向量索引,結束解碼處理。另外,關於碼簿編號的決定方法的示例,於後文中說明。
接著,針對解碼裝置400的其他動作例進行說明。
圖26係顯示解碼裝置400的其他動作例之流程圖。在圖26中,作為一示例,係顯示碼轉換對象的子向量的位置為在頻率域中最高位置的子向量SV8(例如,最後一個子向量)時的解碼裝置400的動作例。
例如,圖26的處理係與圖17所示的編碼處理對應的解碼處理的示例。此外,圖26所示的動作例係例如可與圖23所示的動作例相同。
圖23中,解碼裝置400係例如將SV1至SV7解碼,輸出解碼資訊(例如,碼簿編號及碼向量索引)(S801)。此外,解碼裝置400係例如可決定SV1至SV7的解碼所用的位元串的位元數,決定作為SV8的位元串的剩餘的位元數(S801)。
接著,解碼裝置400係例如可判斷作為SV8的位元串的剩餘
的位元數是否未達閾值Threshold2或是否超出閾值Threshold3(S802)。
當作為SV8的位元串的剩餘的位元數未達Threshold2時或超出Threshold3時(S802:「是」),解碼裝置400係例如可判斷SV8以AVQ的編碼方法(編碼碼簿編號的方法)編碼,將SV8解碼,輸出解碼資訊(例如,碼簿編號及碼向量索引),結束解碼處理(S803)。
另一方面,當作為SV8的位元串的剩餘的位元數為Threshold2以上時且沒有超出Threshold3時(S802:「否」),解碼裝置400係例如判斷SV8的碼簿編號改為編碼未使用位元數,解碼未使用位元數及碼向量索引(S804)。此外,解碼裝置400係例如可根據作為SV8的位元串的剩餘的位元數與解碼出的未使用位元數,決定SV8的碼簿編號(S804)。另外,關於碼簿編號的決定方法的示例,於後文中說明。解碼裝置400係可輸出所決定的SV8的解碼資訊(例如,碼簿編號及碼向量索引),結束解碼處理。
接著,說明圖23的S706的處理、圖25的S713的處理、或圖26的S804的處理的SVd(例如,SV3或SV8)的解碼處理的示例。
圖27係顯示SVd的解碼處理例的流程圖。圖27所示的處理係例如可為對應圖18所示的編碼處理。圖27所示的處理係例如含有:根據作為SVd的碼位元串的剩餘的位元數及未使用位元數來決定SVd的碼簿編號的手續。
圖27中,解碼裝置400係例如可判斷碼轉換對象的子向量是否為SV8(S901)。當碼轉換對象的子向量為SV8時(S901:「是」),解碼裝置400係例如可算出殘餘位元數RB(S902)。殘餘位元數RB係例如亦可
藉由(於碼轉換對象的子向量的編碼能夠使用的位元數)%5而算出。此處,「%」係表示模除運算。在殘餘位元數RB的算出後,解碼裝置400係例如前進至S906的處理。
另一方面,當碼轉換對象的子向量非為SV8時(此處,例如,為SV3時)(S901:「否」),解碼裝置400係例如可計數在解碼出的子向量中,量化參數為零向量的子向量(包括SV8在內)的連續數(例如,NCNV)(S903)。
此外,解碼裝置400係例如可算出殘餘位元數(例如,RB)(S903)。殘餘位元數RB係例如亦可藉由(作為碼轉換對象的子向量(例如,SV3)的碼位元串的剩餘的位元數)%5而算出。此處,「%」係表示模除運算。
接著,解碼裝置400係例如可根據NCNV及RB,判斷是否更新作為SVd(例如,SV3)的位元串的剩餘的位元數(S904)。換言之,解碼裝置400係例如可判斷是否有因子向量的編碼順序的變更而產生浪費位元的可能性。另外,S904中的判斷方法係可與編碼裝置300中的判斷方法相同。
當沒有產生浪費位元的可能性時(S904:「否」),解碼裝置400係例如前進至S906的處理。
另一方面,當有產生浪費位元的可能性時(S904:「是」),解碼裝置400係例如可更新作為碼轉換對象的子向量(例如,SVd)的位元串的剩餘的位元數(S905)。例如,解碼裝置400係可對應於條件,在作為碼轉換對象的子向量的位元串的剩餘的位元數加上(5-RB)位元、NCNV位元、
或(NCNV+1)位元。換言之,解碼裝置400係例如可將作為SVd的位元串的剩餘的位元數增加浪費位元數(例如,有白白使用掉的可能性的位元數)的量。此外,解碼裝置400係例如可將殘餘位元數RB更新為0(S905)。另外,將作為碼轉換對象的子向量的位元串的剩餘的位元數進行更新的處理的示例係於後說明。
接著,解碼裝置400係例如判斷殘餘位元數RB是否為4(S906)。當非為RB=4時(S906:「否」),解碼裝置400係例如可前進至S908的處理,根據未使用位元數,決定藉由AVQ編碼而得的SVd的碼長度(關於示例,於後文中說明)。
當RB=4時(S906:「是」),解碼裝置400係例如可將作為碼轉換對象的子向量的位元串的剩餘的位元數增加1位元(S907)。
接著,解碼裝置400係例如可根據未使用位元數資訊,決定藉由AVQ編碼而得的SVd的碼長度(S908)。例如,解碼裝置400係可從作為碼轉換對象的子向量的位元串的剩餘的位元數減去解碼的未使用位元數,算出SVd的碼長度(例如,藉由AVQ編碼而得的碼(位元串)的位元數)。
作為一示例,當如圖10所示規定未使用位元數與碼(未使用位元數指示值)的關聯對應關係時,SV8的碼長度係可決定如下。
SV8的碼長度=(INT(作為SV8的編碼位元串的剩餘的位元數-(圖10中的「位元數」-1)×5)/5)+1)×5
例如,當作為SV8的編碼位元串的剩餘的位元數=13位元、未使用位元數的碼=10時,SV8的碼長度係成為(INT((13-5)/5)+1)×5=10位元。另外,當未使用位元數的碼=10時,解碼的未使用位元數係根據圖
10而為1位元至5位元的任一者,而當作為SV8的編碼位元串的剩餘的位元數為13位元時,解碼的未使用位元數係可指明為3。此係因子向量的碼長度設定為5的倍數之故。
接著,解碼裝置400係例如可根據SVd的碼長度,解碼SVd的碼簿編號及碼向量索引(S909)。作為一示例,當SV8的碼長度=10位元時,解碼裝置400係可根據圖1而解碼碼簿編號=2。
接著,針對解碼裝置400的將作為碼轉換對象的子向量的位元串的剩餘的位元數進行更新的處理的示例進行說明。
圖28係顯示解碼裝置400的將作為碼轉換對象的子向量的位元串的剩餘的位元數進行更新的處理例的流程圖。圖28所示的解碼裝置400的處理係例如對應圖19所示的編碼裝置300的處理。
解碼裝置400係例如可當判定為有產生浪費位元的可能性時(圖27中的S904:「是」),對應於與殘餘位元數(例如,針對作為碼轉換對象的子向量的位元串的剩餘的位元數的5的模除)RB及量化參數為零向量的子向量的連續數NCNV有關的條件,將NCNV位元、(NCNV+1)位元或(5-RB)位元作為浪費位元數加到作為碼轉換對象的子向量的位元串的剩餘的位元數。
例如,解碼裝置400係可當(RB+NCNV)%5=0時(S941:「是」),將加算位元數(以下,表示為「W」)設定為NCNV位元(S942)。
此外,例如,解碼裝置400係可當(RB+NCNV)%5=4時(S941:「否」及S943:「是」),將加算位元數W設定為(NCNV+1)位元(S944)。
此外,例如,解碼裝置400係可當非為(RB+NCNV)%5=0及
(RB+NCNV)%5=4時(S941:「否」及S943:「否」),將加算位元數W設定為(5-RB)位元(S945)。
接著,解碼裝置400係例如可將加算位元數W加到作為碼轉換對象的子向量的位元串的剩餘的位元數,藉此,更新作為碼轉換對象的子向量的位元串的剩餘的位元數(S946)。藉由S946的處理,作為碼轉換對象的子向量的位元串的剩餘的位元數係設定為5的倍數。此時,殘餘位元數RB為0,因此,解碼裝置400係例如可將殘餘位元數RB更新為0。
圖29係顯示解碼裝置400的將作為碼轉換對象的子向量的位元串的剩餘的位元數進行更新的處理例的其他流程圖。圖29所示的解碼裝置400的處理係例如對應圖20所示的編碼裝置300的處理。
解碼裝置400係例如亦可當判定為有產生浪費位元的可能性時(圖27中的S904:「是」),對應於與殘餘位元數RB及量化參數為零向量的子向量的連續數NCNV有關的條件,將NCNV位元或(NCNV+1)位元作為浪費位元數加到作為碼轉換對象的子向量的位元串的剩餘的位元數。
亦即,在圖29中係不同於圖28,解碼裝置400係於作為碼轉換對象的子向量的位元串的剩餘的位元數的更新時,不加上(5-RB)位元。
例如,解碼裝置400係可當(RB+NCNV)%5=4時(S951:「是」),將加算位元數W設定為(NCNV+1)位元(S952),當非為(RB+NCNV)%5=4時(S951:「否」),將加算位元數W設定為NCNV位元(S953)。
接著,解碼裝置400係例如可將加算位元數W加到作為碼轉換對象的子向量的位元串的剩餘的位元數,藉此,更新作為碼轉換對象的
子向量的位元串的剩餘的位元數(S954)。
此外,解碼裝置400係例如可對加上(NCNV+1)位元或NCNV位元後的作為碼轉換對象的子向量的位元串的剩餘的位元數,重新計算殘餘位元數RB(S954)。藉由NCNV位元的加算,重新計算的殘餘位元數RB可能有成為RB>0的情形。
解碼裝置400係例如判斷是否重新計算得的殘餘位元數RB>0(S955)。換言之,解碼裝置400係判斷重新計算得的殘餘位元數RB(或者,更新後的能夠使用的位元數)是否為真值。
當非為RB>0時(S955:「否」),解碼裝置400係可結束圖29的處理。
另一方面,當為RB>0時(S955:「是」),解碼裝置400係例如可從加上(NCNV+1)位元或NCNV位元後的作為碼轉換對象的子向量的位元串的剩餘的位元數減去殘餘位元數RB,藉此,更新作為碼轉換對象的子向量的位元串的剩餘的位元數(S956)。此外,解碼裝置400係例如可將殘餘位元數RB更新為0。
如圖28或圖29所示,解碼裝置400係對應於與殘餘位元數RB及量化參數為零向量的子向量的連續數NCNV有關的條件,設定(例如,更新)作為碼轉換對象的子向量的位元串的剩餘的位元數。藉此,解碼裝置400係例如即使NCNV為5以上,仍能夠將作為碼轉換對象的子向量的位元串的剩餘的位元數設定為適切的值。
此外,解碼裝置400係即使不將浪費位元指明,仍能夠使用作為在解碼裝置400能夠指明的參數的RB及NCNV,適切地設定作為碼
轉換對象的子向量的位元串的剩餘的位元數。
解碼裝置400係例如可根據如上述的作為碼轉換對象的子向量的位元串的剩餘的位元數之設定,進行針對碼轉換對象的子向量的碼簿編號及碼向量索引的解碼,根據解碼結果,進行AVQ解碼(例如,反向量量化)。
如上所述,在本實施型態中,編碼裝置300係根據在向量量化中於子向量的編碼能夠使用的位元數,決定針對碼轉換對象的子向量的碼簿編號的編碼、及根據向量量化的分配位元數與量化參數的位元數之差的編碼(例如,針對未使用位元數的編碼)當中要實施何者。
如上述,根據於編碼能夠使用的位元數,切換碼簿編號的編碼與未使用位元數的編碼,藉此,能夠進行與於多速率晶格向量量化的編碼能夠使用的位元數對應的編碼,能夠削減編碼位元數。因此,依據本實施型態,能夠在多速率晶格向量量化中減少編碼位元數。
此外,依據本實施型態,即使編碼有未使用位元數指示值的碼轉換對象的子向量為與最尾端的子向量(例如,SV8)不同的子向量時(換言之,編碼順序調換時),編碼裝置300仍能夠對應於可能因編碼順序的調換而產生的浪費位元數,正確地決定未使用位元數。
此外,依據本實施型態,解碼裝置400係例如能夠根據編碼所用的位元數及解碼資訊(例如,與碼轉換對象的子向量相異的子向量的碼簿指示值)之類的參數,將與碼轉換對象的子向量有關的編碼資訊指明。因此,例如,用於切換針對碼簿指示值的編碼與針對未使用位元數的編碼的信號(例如,旗標或切換專用的控制資訊)係可不從編碼裝置300通知給解
碼裝置400。
以上,針對本揭露的實施型態進行說明。
另外,在本揭露的一實施例中,碼簿列表並不限定於圖1所示的示例,碼簿中的碼簿指示值及碼向量索引的碼的值及使用位元數(或者,合計使用位元數)係亦可為其他值。此外,上述的閾值係亦可對應於適用於編碼及解碼的碼簿列表而設定。
此外,例如,在圖1中係說明碼簿指示值的使用位元數相對於各碼簿的合計使用位元數之比例為1/5的情形(換言之,使用模除時的除數為5的情形),但並不限定於此。
此外,在上述的實施型態中,係說明輸入信號S(f)分割的子向量數為8個的情形,但輸入信號S(f)分割的子向量數並不限定於8個。
此外,在上述的實施型態中,作為一示例,係說明在頻率域中輸入信號分割成複數個子向量的情形,但並不限定於此,亦可在時間域中輸入信號分割成複數個子向量。當為時間域時,例如,在上述的碼轉換對象的子向量SVd係亦可設定排列於時間域的複數個子向量當中的特定的子向量(作為一示例,由早算起第三個子向量或最後一個子向量)。如上述,在本揭露的一實施例中,當在頻率域或時間域的任一者中將輸入信號分割成一定長度的子向量時,在碼轉換對象的子向量SVd係亦可設定所排列出的子向量中任一序位的子向量(例如,特定的序位(例如,第三)的子向量或最尾端的子向量)。
此外,在上述的實施型態中,向量量化並不限定為AVQ,亦可為其他方式。
另外,本揭露係能夠以軟體(software)、硬體(hardware)、或與硬體協作的軟體實現。亦可為,上述實施型態的說明中所使用的各功能方塊部分或全體以作為積體電路的LSI(Large Scale Integration;大型積體電路)的形式實現,上述實施型態中說明的各程序(process)部分或全體藉由一個LSI或LSI的組合進行控制。LSI係亦可由一個一個的晶片(chip)構成,亦可採用含有功能方塊的一部分或全部的方式由一個晶片構成。LSI係亦可具備資料(data)的輸入與輸出。LSI係依集積度的不同而亦稱為IC、系統LSI、特大型(super)LSI、超大型(ultra)LSI。積體電路化的手法並不限於LSI,亦可採用專用電路、通用處理器(processor)或專用處理器實現。此外,亦可利用在LSI製造後能夠進行程式化的FPGA(Field Programmable Gate Array;可規劃邏輯閘陣列)和能夠重新構成LSI內部的電路單元(cell)的連接和設定的可重組態處理器(reconfigurable processor)。本揭露係亦可採用數位(digital)處理或類比(analog)處理的形式實現。此外,若因半導體技術的進步或衍生出的別的技術而有取代LSI的積體電路化的技術登場,則當然亦可使用該技術進行功能方塊的集積化。係有生物技術的適用等的可能性。
本揭露係能夠在具通信功能的全部種類的裝置、元件(device)、系統(統稱為通信裝置)中實施。通信裝置係亦可含有無線發送接收機(收發器(transceiver))與處理/控制電路。無線發送接收機係亦可含有接收部與發送部或兩者而發揮功能。無線發送接收機(發送部、接收部)係亦可含有RF(Radio Frequency;射頻)模組(module)與一個或複數個天線(antenna)。RF模組係亦可含有放大器、RF調變器/解調器、或者相似的元
件。就通信裝置的非限定性的示例而言,可舉出:電話機(行動電話、智慧型手機(smart phone)等)、平板電腦(tablet)、個人電腦(PC;personal computer)(膝上型(laptop)、桌上型(desktop)、筆記型(notebook)等)、攝影機(數位靜態/視訊攝影機(digital still/video camera)等)、數位播放器(數位音訊/視訊播放器(digital audio/video player)等)、穿戴式裝置(穿戴式攝影機(wearable camera)、智慧手錶(smart watch)、追蹤裝置(tracking device)等)、遊戲主機(game console)、電子書閱讀器(digital book reader)、遠距醫療(telehealth/telemedicine)(遠端健康照護(health care).藥物處方)裝置、有通信功能的交通工具或移動運輸工具(汽車、飛行機、船等)、及上述各種裝置的組合。
通信裝置並不限定於可攜帶或可移動的裝置,亦包含無法攜帶或固定住的全部種類的裝置、元件、系統,例如,智慧家居裝置(smart home device)(家電機器、照明機器、智慧電錶(smater meter)或測量機器、控制面板(control panel)等)、自動販賣機、及能存在於IoT(Internet of Things;物聯網)網路上的全部的「物(Things)」。
通信係除了藉由蜂巢式(cellular)系統、無線LAN系統、通信衛星系統等進行的資料通信之外,亦包含藉由上述各系統的組合進行的資料通信。
此外,在通信裝置係亦含有與執行本揭露記載的通信功能的通信元件連接或連結的控制器(controller)和感測器(sensor)等裝置。例如,含有將執行通信裝置的通信功能的通信元件所使用的控制信號和資料信號予以產生的控制器和感測器。
此外,通信裝置係包含與上述非限定性的各種裝置進行通信或控制上述各種裝置的基礎設施(infrastructure)設備,例如,基地局、接入點(access point)、及全部的裝置、元件、系統。
本揭露的一實施例的編碼裝置係具備:量化電路,係產生含有與向量量化的碼簿有關的資訊的量化參數;及控制電路,係在根據於目標子向量的編碼能夠使用的位元數與前述目標子向量的前述量化參數的位元數之差進行的編碼中,對應於條件,設定前述能夠使用的位元數。
在本揭露的一實施例中,前述控制電路係:將複數個子向量分類成:含有頻率比前述目標子向量的頻率低的子向量之第一群、與含有前述目標子向量及頻率比前述目標子向量的頻率高的子向量之第二群;將前述目標子向量的編碼順序設定為前述第二群所含有的子向量的最後一個。
在本揭露的一實施例中,前述控制電路係根據前述條件,更新前述能夠使用的位元數,前述條件係有關於前述第二群的與前述目標子向量相異的子向量當中的前述量化參數顯示零向量的子向量的連續之第一數、及作為針對前述能夠使用的位元數的5的模除的第二數。
在本揭露的一實施例中,前述控制電路係:當針對前述第一數與前述第二數之和的5的模除為0時,將前述第一數加到前述能夠使用的位元數;當針對前述第一數與前述第二數之和的5的模除為4時,將前述第一數加上1而得的值加到前述能夠使用的位元數;當針對前述第一數與前述第二數之和的5的模除不同於0及4時,將從5減去前述第二數而得的值加到前述能夠使用的位元數。
在本揭露的一實施例中,前述控制電路係:當針對前述第一數與前述第二數之和的5的模除為4時,將前述第一數加上1而得的值加到前述能夠使用的位元數;當針對前述第一數與前述第二數之和的5的模除不同於4時,將前述第一數加到前述能夠使用的位元數;當作為針對將前述第一數或前述第一數加上1而得的值加算後的前述能夠使用的位元數的5的模除的第三數比0大時,從將前述第一數或前述第一數加上1而得的值加算後的前述能夠使用的位元數減去前述第三數。
在本揭露的一實施例中,前述目標子向量係8個子向量當中在頻率域中由低算起第三個子向量、或在時間域中由早算起第三個子向量。
本揭露的一實施例的解碼裝置係具備:控制電路,係在根據在向量量化中於目標子向量的編碼能夠使用的位元數與前述目標子向量的含有與前述向量量化的碼簿有關的資訊的量化參數的位元數之差進行的編碼資料的解碼中,對應於條件,設定前述能夠使用的位元數;及反量化電路,係根據前述解碼的結果,進行反向量量化。
在本揭露的一實施例的編碼方法中,編碼裝置係:產生含有與向量量化的碼簿有關的資訊的量化參數;在根據於目標子向量的編碼能夠使用的位元數與前述目標子向量的前述量化參數的位元數之差進行的編碼中,對應於條件,設定前述能夠使用的位元數。
在本揭露的一實施例的解碼方法中,解碼裝置係:在根據在向量量化中於目標子向量的編碼能夠使用的位元數與前述目標子向量的含有與前述向量量化的碼簿有關的資訊的量化參數的位元數之差進行的編碼資料的解碼中,對應於條件,設定前述能夠使用的位元數;根據前述解碼
的結果,進行反向量量化。
於2021年12月1日提出申請的日本國特願2021-195488號申請案所含的說明書、圖式及摘要的揭示內容係全部為本申請案所引用。
(產業上的利用可能性)
本揭露的一實施例在編碼系統等中可發揮效用。
300:編碼裝置
101:乘法部
102:減法器
103:去強調部
104:DCT部
105:AVQ編碼部
106:浮動位元數管理部
107:逆DCT部
109:碼轉換部
110:多工化部
301:子向量指明部
Claims (9)
- 一種編碼裝置,係具備:量化電路,係產生含有與向量量化的碼簿有關的資訊的量化參數;及控制電路,係在根據於目標子向量的編碼能夠使用的位元數與前述目標子向量的前述量化參數的位元數之差進行的編碼中,對應於條件,設定前述能夠使用的位元數。
- 如請求項1所述之編碼裝置,其中,前述控制電路係:將複數個子向量分類成:含有頻率比前述目標子向量的頻率低的子向量之第一群、與含有前述目標子向量及頻率比前述目標子向量的頻率高的子向量之第二群;將前述目標子向量的編碼順序設定為前述第二群所含有的子向量的最後一個。
- 如請求項2所述之編碼裝置,其中,前述控制電路係根據前述條件,更新前述能夠使用的位元數,前述條件係有關於前述第二群的與前述目標子向量相異的子向量當中的前述量化參數顯示零向量的子向量的連續之第一數、及作為針對前述能夠使用的位元數的5的模除的第二數。
- 如請求項3所述之編碼裝置,其中,前述控制電路係:當針對前述第一數與前述第二數之和的5的模除為0時,將前述第一數加到前述能夠使用的位元數;當針對前述第一數與前述第二數之和的5的模除為4時,將前述第一數加上1而得的值加到前述能夠使用的位元數;當針對前述第一數與前述第二數之和的5的模除不同於0及4時,將 從5減去前述第二數而得的值加到前述能夠使用的位元數。
- 如請求項3所述之編碼裝置,其中,前述控制電路係:當針對前述第一數與前述第二數之和的5的模除為4時,將前述第一數加上1而得的值加到前述能夠使用的位元數;當針對前述第一數與前述第二數之和的5的模除不同於4時,將前述第一數加到前述能夠使用的位元數;當第三數比0大時,從將前述第一數或前述第一數加上1而得的值加算後的前述能夠使用的位元數減去前述第三數,其中前述第三數為針對將前述第一數或前述第一數加上1而得的值加算後的前述能夠使用的位元數的5的模除。
- 如請求項1所述之編碼裝置,其中,前述目標子向量係8個子向量當中在頻率域中由低算起第三個子向量,或在時間域中由早算起第三個子向量。
- 一種解碼裝置,係具備:控制電路,係在根據在向量量化中於目標子向量的編碼能夠使用的位元數與前述目標子向量的含有與前述向量量化的碼簿有關的資訊的量化參數的位元數之差進行的編碼資料的解碼中,對應於條件,設定前述能夠使用的位元數;及反量化電路,係根據前述解碼的結果,進行反向量量化。
- 一種編碼方法,其中,由編碼裝置產生含有與向量量化的碼簿有關的資訊的量化參數;由編碼裝置在根據於目標子向量的編碼能夠使用的位元數與前述目標 子向量的前述量化參數的位元數之差進行的編碼中,對應於條件,設定前述能夠使用的位元數。
- 一種解碼方法,其中,由解碼裝置在根據在向量量化中於目標子向量的編碼能夠使用的位元數與前述目標子向量的含有與前述向量量化的碼簿有關的資訊的量化參數的位元數之差進行的編碼資料的解碼中,對應於條件,設定前述能夠使用的位元數;由解碼裝置根據前述解碼的結果,進行反向量量化。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021195488 | 2021-12-01 | ||
JP2021-195488 | 2021-12-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202329089A true TW202329089A (zh) | 2023-07-16 |
Family
ID=86611970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111141856A TW202329089A (zh) | 2021-12-01 | 2022-11-02 | 編碼裝置、解碼裝置、編碼方法及解碼方法 |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU2022400064A1 (zh) |
TW (1) | TW202329089A (zh) |
WO (1) | WO2023100494A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2457988A1 (en) * | 2004-02-18 | 2005-08-18 | Voiceage Corporation | Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization |
JP5235168B2 (ja) * | 2009-06-23 | 2013-07-10 | 日本電信電話株式会社 | 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム、復号プログラム |
WO2012101483A1 (en) * | 2011-01-28 | 2012-08-02 | Nokia Corporation | Coding through combination of code vectors |
JP6027538B2 (ja) * | 2011-10-28 | 2016-11-16 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 音声符号化装置、音声復号装置、音声符号化方法及び音声復号方法 |
EP2814028B1 (en) * | 2012-02-10 | 2016-08-17 | Panasonic Intellectual Property Corporation of America | Audio and speech coding device, audio and speech decoding device, method for coding audio and speech, and method for decoding audio and speech |
JP6170575B2 (ja) * | 2014-07-28 | 2017-07-26 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | ピラミッドベクトル量子化器形状サーチ |
JP7250254B2 (ja) | 2020-06-17 | 2023-04-03 | 株式会社豊田中央研究所 | 熱可塑性樹脂組成物 |
-
2022
- 2022-10-14 WO PCT/JP2022/038297 patent/WO2023100494A1/ja active Application Filing
- 2022-10-14 AU AU2022400064A patent/AU2022400064A1/en active Pending
- 2022-11-02 TW TW111141856A patent/TW202329089A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023100494A1 (ja) | 2023-06-08 |
AU2022400064A1 (en) | 2024-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2378462T3 (es) | Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia | |
JP5313669B2 (ja) | ディジタルメディアの効率的コーディング用のバンドを入手するための周波数セグメント化 | |
JP5456310B2 (ja) | ディジタル・メディア・スペクトル・データの効率的コーディングに使用される辞書内のコードワードの変更 | |
US20070168197A1 (en) | Audio coding | |
US20160088297A1 (en) | Method and apparatus for pyramid vector quantization indexing and de-indexing of audio/video sample vectors | |
US10789964B2 (en) | Dynamic bit allocation methods and devices for audio signal | |
KR20150032737A (ko) | 오디오 신호를 위한 비트 할당 방법 및 장치 | |
JP7257965B2 (ja) | デジタルオーディオ信号における差分データ | |
CN107666472B (zh) | 混合的数字-模拟编解码的方法和设备 | |
JP2010500819A (ja) | 複数の量子化パターンの効率的な知覚的関連検索による音声及びオーディオを量子化するための方法 | |
US20110135007A1 (en) | Entropy-Coded Lattice Vector Quantization | |
EP3195312B1 (en) | Method and apparatus for decoding subband configuration data for subband groups of a coded audio signal | |
TW202329089A (zh) | 編碼裝置、解碼裝置、編碼方法及解碼方法 | |
WO2022201632A1 (ja) | 符号化装置、復号装置、符号化方法、及び、復号方法 | |
US8924202B2 (en) | Audio signal coding system and method using speech signal rotation prior to lattice vector quantization | |
CN116964944A (zh) | 编码装置、解码装置、编码方法及解码方法 | |
WO2021256082A1 (ja) | 符号化装置、復号装置、符号化方法、及び、復号方法 | |
JP7407110B2 (ja) | 符号化装置及び符号化方法 | |
US8949117B2 (en) | Encoding device, decoding device and methods therefor | |
EP3413309B1 (en) | Efficient storage of multiple structured codebooks | |
KR20180026528A (ko) | 오디오 신호 디코더를 위한 비트 에러 검출기 |