TWI840475B - 編碼裝置、解碼裝置、編碼方法及解碼方法 - Google Patents
編碼裝置、解碼裝置、編碼方法及解碼方法 Download PDFInfo
- Publication number
- TWI840475B TWI840475B TW108146519A TW108146519A TWI840475B TW I840475 B TWI840475 B TW I840475B TW 108146519 A TW108146519 A TW 108146519A TW 108146519 A TW108146519 A TW 108146519A TW I840475 B TWI840475 B TW I840475B
- Authority
- TW
- Taiwan
- Prior art keywords
- motion vector
- block
- processing
- prediction
- unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 199
- 230000033001 locomotion Effects 0.000 claims abstract description 848
- 239000013598 vector Substances 0.000 claims abstract description 771
- 238000012545 processing Methods 0.000 claims abstract description 461
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 111
- 230000008569 process Effects 0.000 claims description 87
- 230000008859 change Effects 0.000 claims description 23
- 230000002457 bidirectional effect Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 82
- 238000013139 quantization Methods 0.000 description 78
- 238000006243 chemical reaction Methods 0.000 description 40
- 238000001914 filtration Methods 0.000 description 39
- 238000012937 correction Methods 0.000 description 33
- 230000009466 transformation Effects 0.000 description 33
- 238000009795 derivation Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 21
- 230000011218 segmentation Effects 0.000 description 20
- 230000002093 peripheral effect Effects 0.000 description 18
- 230000003044 adaptive effect Effects 0.000 description 16
- 238000011156 evaluation Methods 0.000 description 16
- 238000005192 partition Methods 0.000 description 15
- 238000000638 solvent extraction Methods 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 14
- 230000005236 sound signal Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 12
- 230000002123 temporal effect Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 230000011664 signaling Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 6
- 238000009434 installation Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 5
- 239000000470 constituent Substances 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000003702 image correction Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 101100537098 Mus musculus Alyref gene Proteins 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 101150095908 apex1 gene Proteins 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 2
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 2
- 102100036788 Tubulin beta-4A chain Human genes 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 101000713585 Homo sapiens Tubulin beta-4A chain Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 102100036790 Tubulin beta-3 chain Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical group COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
Abstract
編碼裝置具備電路、及連接於前述電路的記憶體,電路在動作中導出基準移動向量,前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是處理對象區塊之控制點的移動向量,並且導出與基準移動向量不同的第1移動向量,根據基準移動向量與第1移動向量的差分來導出差分移動向量,判定差分移動向量是否大於閾值,在判定為差分移動向量大於閾值的情況下,變更第1移動向量,在判定為差分移動向量不大於閾值的情況下,不變更第1移動向量,並使用變更後的第1移動向量或未變更的第1移動向量來編碼處理對象區塊。
Description
本揭示是關於一種視訊編碼,例如是關於一種動態圖像的編碼及解碼的系統、構成要素以及方法等。
視訊編碼技術從H.261及MPEG-1進步到H.264/AVC(Advanced Video Coding:高階視訊編碼)、MPEG-LA、H.265/HEVC(High Efficiency Video Coding:高效率視訊編碼)、及H.266/VVC(Versatile Video Codec:多功能視訊編碼)。伴隨此進步,為了處理在各式各樣的用途中持續增加的數位視訊資料量,經常需要提供視訊編碼技術的改良及最佳化。
再者,非專利文獻1是有關於與上述之視訊編碼技術相關的以往之標準的一例。
先行技術文獻
非專利文獻
非專利文獻1:H.265(ISO/IEC 23008-2 HEVC)/HEVC(High Efficiency Video Coding)
發明概要
發明欲解決之課題
關於如上述之編碼方式,為了編碼效率的改善、畫質的改善、處理量的刪減、電路規模的刪減,或為了適當地選擇濾波器、區塊、尺寸、移動向量、參考圖片或參考區塊等之要素或動作等,期望能提案新的方式。
本揭示提供一種構成或方法,其可貢獻例如編碼效率的改善、畫質的改善、處理量的刪減、電路規模的刪減、處理速度的改善、以及適當地選擇要素或動作等當中的1項以上。再者,本揭示可包含可貢獻上述以外的益處之構成或方法。
用以解決課題之手段
例如,本揭示之一態樣的編碼裝置具備電路、及連接於前述電路的記憶體,前述電路在動作中導出基準移動向量,前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量,根據前述基準移動向量與前述第1移動向量的差分來導出差分移動向量,判定前述差分移動向量是否大於閾值,在判定為前述差分移動向量大於前述閾值的情況下,變更前述第1移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第1移動向量,並使用變更後的前述第1移動向量或未變更的前述第1移動向量來編碼前述處理對象區塊。
本揭示中之實施形態的多種安裝,既可改善編碼效率,亦可簡化編碼/解碼處理,亦可令編碼/解碼處理速度加快,亦可有效率地選擇諸如適當的濾波器、區塊尺寸、移動向量、參考圖片、參考尺寸等於編碼及解碼中使用的適當的構成要素/動作。
本揭示之一態樣的更進一步的優點及效果,從說明書及圖式可明顯知曉。該等優點及/或效果可分別藉由多個實施形態以及說明書及圖式所記載的特徵來獲得,但不必為了獲得1個或1個以上的優點及/或效果而非得要全部提供。
再者,該等全面的或具體的態樣亦可藉由系統、方法、積體電路、電腦程式、記錄媒體、或這些的任意組合來實現。
發明效果
本揭示之一態樣的構成或方法可貢獻例如編碼效率的改善、畫質的改善、處理量的刪減、電路規模的刪減、處理速度的改善、及適當地選擇要素或動作等當中的1項以上。再者,本揭示之一態樣的構成或方法亦可貢獻上述以外的益處。
本揭示之一態樣的編碼裝置具備電路、及連接於前述電路的記憶體,前述電路在動作中導出基準移動向量,前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量,根據前述基準移動向量與前述第1移動向量的差分來導出差分移動向量,判定前述差分移動向量是否大於閾值,在判定為前述差分移動向量大於前述閾值的情況下,變更前述第1移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第1移動向量,並使用變更後的前述第1移動向量或未變更的前述第1移動向量來編碼前述處理對象區塊。
藉此,編碼裝置能夠以將已分割成複數個子區塊之處理對象區塊內之複數個移動向量的差異設限在預定之範圍內的方式,來調整移動向量。因此,相較於移動向量的差異比預定之範圍大的情況,應參考的像素數會變少,所以可將從記憶體轉送的資料量抑制在預定的範圍內。因此,編碼裝置可降低幀間預測處理中的記憶體存取量,所以編碼效率會提升。
例如,亦可為前述基準移動向量與前述處理對象區塊內的第1像素集相對應,前述第1移動向量與前述處理對象區塊內之不同於前述第1像素集的第2像素集相對應。
藉此,編碼裝置可使用根據第1像素集所決定的基準移動向量、及根據第2像素集所決定的第1移動向量,來適當地控制處理對象區塊內之複數個移動向量的差異。
例如,前述電路在判定為前述差分移動向量大於前述閾值的情況下,亦可使用將前述差分移動向量剪截後的值來變更前述第1移動向量。
藉此,編碼裝置能夠以將第1移動向量的差異設限在預定之範圍內的方式來變更第1移動向量。因此,編碼裝置可降低幀間預測處理中的記憶體存取量,所以編碼效率會提升。
例如,前述電路亦可根據鄰接於前述處理對象區塊之編碼完畢區塊的移動向量,來導出前述處理對象區塊的前述控制點,並且導出前述控制點的移動向量,即前述處理對象區塊的前述基準移動向量。
藉此,編碼裝置可根據鄰接於處理對象區塊之編碼完畢區塊的移動向量來導出處理對象區塊的基準移動向量,所以預測精度會提升。
例如,前述控制點亦可為前述處理對象區塊之仿射模式的控制點,且前述電路導出前述控制點的移動向量即前述基準移動向量。
藉此,編碼裝置可將處理對象區塊以子區塊單位來進行預測,所以預測精度會提升。
例如,前述控制點亦可位於前述處理對象區塊的左上角、右上角及左下角的至少1處。
藉此,位於處理對象區塊之角的控制點的移動向量會被導出為基準移動向量,因此編碼裝置能夠以將處理對象區塊內之複數個子區塊之第1移動向量的差異設限在預定之範圍內的方式來進行調整。因此,編碼裝置可降低幀間預測處理中的記憶體存取量,所以編碼效率會提升。
例如,前述電路亦可將處理對象區塊的複數個前述控制點之中的至少1個控制點的移動向量,導出為前述基準移動向量。
藉此,編碼裝置可將處理對象區塊的至少1個控制點的移動向量當作基準移動向量,並導出該基準移動向量與第1移動向量的差分。
例如,前述基準移動向量亦可是以複數個前述控制點的移動向量的平均來被導出。
藉此,編碼裝置可將處理對象區塊之複數個控制點的移動向量的平均當作基準移動向量,並導出該基準移動向量與第1移動向量的差分。
例如,前述基準移動向量亦可是以複數個前述控制點之移動向量的組合來被導出。例如,亦可在前述組合中,將前述複數個控制點之移動向量的水平成分的絕對值之中的最大絕對值當作前述基準移動向量的水平成分,並將前述複數個控制點之移動向量的垂直成分的絕對值之中的最大絕對值當作前述基準移動向量的垂直成分,亦可在前述組合中,將前述複數個控制點之移動向量的水平成分的絕對值之中的最小絕對值當作前述基準移動向量的水平成分,並將前述複數個控制點之移動向量的垂直成分的絕對值之中的最小絕對值當作前述基準移動向量的垂直成分。
藉此,處理對象區塊內之第1移動向量的差異會被設限在預定的範圍內。因此,編碼效率會提升。
例如,前述處理對象區塊亦可使用仿射模式來進行預測處理。
藉此,編碼裝置可將處理對象區塊以子區塊單位來進行預測,所以預測精度會提升。
又,本揭示之一態樣的解碼裝置具備電路、及連接於前述電路的記憶體,前述電路在動作中導出基準移動向量,前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量,根據前述基準移動向量與前述第1移動向量的差分來導出差分移動向量,判定前述差分移動向量是否大於閾值,在判定為前述差分移動向量大於前述閾值的情況下,變更前述第1移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第1移動向量,並使用變更後的前述第1移動向量或未變更的前述第1移動向量來解碼前述處理對象區塊。
藉此,解碼裝置能夠以將已分割成複數個子區塊之處理對象區塊內之複數個移動向量的差異設限在預定之範圍內的方式,來調整移動向量。因此,相較於移動向量的差異比預定之範圍大的情況,應參考的像素數會變少,所以可將從記憶體轉送的資料量抑制在預定的範圍內。因此,解碼裝置可降低幀間預測處理中的記憶體存取量,所以處理效率會提升。
例如,亦可為前述基準移動向量與前述處理對象區塊內的第1像素集相對應,前述第1移動向量與前述處理對象區塊內之不同於前述第1像素集的第2像素集相對應。
藉此,解碼裝置可使用根據第1像素集所決定的基準移動向量、及根據第2像素集所決定的第1移動向量,來適當地控制處理對象區塊內之複數個移動向量的差異。
例如,前述電路在判定為前述差分移動向量大於前述閾值的情況下,亦可使用將前述差分移動向量剪截後的值來變更前述第1移動向量。
藉此,解碼裝置能夠以將第1移動向量的差異設限在預定之範圍內的方式來變更第1移動向量。因此,解碼裝置可降低幀間預測處理中的記憶體存取量,所以處理效率會提升。
例如,前述電路亦可根據鄰接於前述處理對象區塊之解碼完畢區塊的移動向量,來導出前述處理對象區塊的前述控制點,並且導出前述控制點的移動向量,即前述處理對象區塊的前述基準移動向量。
藉此,解碼裝置可根據鄰接於處理對象區塊之解碼完畢區塊的移動向量來導出處理對象區塊的基準移動向量,所以預測精度會提升。
例如,前述控制點亦可為前述處理對象區塊之仿射模式的控制點,且前述電路導出前述控制點的移動向量即前述基準移動向量。
藉此,解碼裝置可將處理對象區塊以子區塊單位來進行預測,所以預測精度會提升。
例如,前述控制點亦可位於前述處理對象區塊的左上角、右上角及左下角的至少1處。
藉此,位於處理對象區塊之角的控制點的移動向量會被導出為基準移動向量,因此解碼裝置能夠以將處理對象區塊內之複數個子區塊之第1移動向量的差異設限在預定之範圍內的方式來進行調整。因此,解碼裝置可降低幀間預測處理中的記憶體存取量,所以處理效率會提升。
例如,前述電路亦可將處理對象區塊的複數個前述控制點之中的至少1個控制點的移動向量,導出為前述基準移動向量。
藉此,解碼裝置可將處理對象區塊的至少1個控制點的移動向量當作基準移動向量,並導出該基準移動向量與第1移動向量的差分。
例如,前述基準移動向量亦可是以複數個前述控制點的移動向量的平均來被導出。
藉此,解碼裝置可將處理對象區塊之複數個控制點的移動向量的平均當作基準移動向量,並導出該基準移動向量與第1移動向量的差分。
例如,前述基準移動向量亦可是以複數個前述控制點之移動向量的組合來被導出。例如,亦可在前述組合中,將前述複數個控制點之移動向量的水平成分的絕對值之中的最大絕對值當作前述基準移動向量的水平成分,並將前述複數個控制點之移動向量的垂直成分的絕對值之中的最大絕對值當作前述基準移動向量的垂直成分,亦可在前述組合中,將前述複數個控制點之移動向量的水平成分的絕對值之中的最小絕對值當作前述基準移動向量的水平成分,並將前述複數個控制點之移動向量的垂直成分的絕對值之中的最小絕對值當作前述基準移動向量的垂直成分。
藉此,處理對象區塊內之第1移動向量的差異會被設限在預定的範圍內。因此,處理效率會提升。
例如,前述處理對象區塊亦可使用仿射模式來進行預測處理。
藉此,解碼裝置可將處理對象區塊以子區塊單位來進行預測,所以預測精度會提升。
又,本揭示之一態樣的編碼方法會導出基準移動向量,前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量,根據前述基準移動向量與前述第1移動向量的差分來導出差分移動向量,判定前述差分移動向量是否大於閾值,在判定為前述差分移動向量大於前述閾值的情況下,變更前述第1移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第1移動向量,並使用變更後的前述第1移動向量或未變更的前述第1移動向量來編碼前述處理對象區塊。
藉此,編碼方法能夠以將分割成複數個子區塊之處理對象區塊內之複數個移動向量的差異設限在預定之範圍內的方式,來調整移動向量。因此,相較於移動向量的差異比預定之範圍大的情況,應參考的像素數會變少,所以可將從記憶體轉送的資料量抑制在預定的範圍內。因此,編碼方法可降低幀間預測處理中的記憶體存取量,所以編碼效率會提升。
又,本揭示之一態樣的解碼方法會導出基準移動向量,前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量,根據前述基準移動向量與前述第1移動向量的差分來決定差分移動向量,判定前述差分移動向量是否大於閾值,在判定為前述差分移動向量大於前述閾值的情況下,變更前述第1移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第1移動向量,並使用變更後的前述第1移動向量或未變更的前述第1移動向量來解碼前述處理對象區塊。
藉此,解碼方法能夠以將分割成複數個子區塊之處理對象區塊內的複數個移動向量的差異設限在預定之範圍內的方式,來調整移動向量。因此,相較於移動向量的差異比預定之範圍大的情況,應參考的像素數會變少,所以可將從記憶體轉送的資料量抑制在預定的範圍內。因此,解碼方法可降低幀間預測處理中的記憶體存取量,所以處理效率會提升。
進而,該等概括的或具體的態樣能夠以系統、裝置、方法、積體電路、電腦程式或電腦可讀取的CD-ROM等非暫時性的記錄媒體來實現,也能夠以系統、裝置、方法、積體電路、電腦程式及記錄媒體的任意組合來實現。
以下,一邊參考圖式一邊具體地說明實施形態。再者,以下說明的實施形態均表示概括的或具體的例子。以下實施形態所示數值、形狀、材料、構成要素、構成要素的配置位置及連接形態、步驟、步驟的關係及順序等是一例,其主旨不在於限定申請專利範圍。
以下,說明編碼裝置及解碼裝置的實施形態。實施形態為可套用本揭示之各態樣中所說明的處理及/或構成的編碼裝置及解碼裝置的例子。處理及/或構成在與實施形態不同的編碼裝置及解碼裝置中亦可實施。例如,關於對實施形態套用的處理及/或構成,亦可實施例如以下任一項。
(1)本揭示之各態樣中所說明的實施形態之編碼裝置或解碼裝置的複數個構成要素當中的任一構成要素,亦可與本揭示之各態樣的任一態樣中所說明的其他構成要素置換或組合。
(2)在實施形態之編碼裝置或解碼裝置中,亦可對藉由該編碼裝置或解碼裝置的複數個構成要素當中一部分的構成要素所進行的功能或處理,進行功能或處理的追加、置換、刪除等任意的變更。例如,任一功能或處理,亦可與本揭示之各態樣的任一態樣中所說明的其他功能或處理置換或組合。
(3)在實施形態之編碼裝置或解碼裝置所實施的方法中,亦可針對該方法所包含的複數個處理當中一部分的處理,進行追加、置換及刪除等任意的變更。例如,方法中的任一處理,亦可與本揭示之各態樣的任一態樣中所說明的其他處理置換或組合。
(4)構成實施形態之編碼裝置或解碼裝置的複數個構成要素當中一部分的構成要素,亦可與本揭示之各態樣的任一態樣中所說明的構成要素組合,亦可與具備有本揭示之各態樣的任一態樣中所說明的功能的一部分的構成要素組合,亦可與實施本揭示之各態樣中所說明的構成要素所實施的處理的一部分的構成要素組合。
(5)具備有實施形態之編碼裝置或解碼裝置的功能的一部分的構成要素、或實施實施形態之編碼裝置或解碼裝置的處理的一部分的構成要素,亦可與本揭示之各態樣的任一態樣中所說明的構成要素、具備有本揭示之各態樣的任一態樣中所說明的功能的一部分的構成要素、或實施本揭示之各態樣的任一態樣中所說明的處理的一部分的構成要素組合或置換。
(6)在實施形態之編碼裝置或解碼裝置所實施的方法中,亦可讓該方法所包含的複數個處理之任一處理,與本揭示之各態樣的任一態樣中所說明的處理、或同樣的任一處理置換或組合。
(7)實施形態之編碼裝置或解碼裝置所實施的方法所包含的複數個處理當中一部分的處理,亦可與本揭示之各態樣的任一態樣中所說明的處理組合。
(8)本揭示之各態樣中所說明的處理及/或構成的實施方法,並不限定於實施形態之編碼裝置或解碼裝置。例如,處理及/或構成亦可實施於與實施形態中所揭示的動態圖像編碼或動態圖像解碼以不同目的來利用的裝置中。
[編碼裝置]
首先,說明實施形態之編碼裝置。圖1是顯示實施形態之編碼裝置100的功能構成的方塊圖。編碼裝置100是以區塊單位來編碼動態圖像的動態圖像編碼裝置。
如圖1所示,編碼裝置100是以區塊單位來編碼圖像的裝置,具備分割部102、減算部104、轉換部106、量化部108、熵編碼部110、反量化部112、反轉換部114、加算部116、區塊記憶體118、迴路濾波部120、幀記憶體122、幀內預測部124、幀間預測部126、及預測控制部128。
編碼裝置100可藉由例如通用處理器及記憶體來實現。此情況下,由處理器執行儲存於記憶體的軟體程式時,處理器是作為分割部102、減算部104、轉換部106、量化部108、熵編碼部110、反量化部112、反轉換部114、加算部116、迴路濾波部120、幀內預測部124、幀間預測部126、及預測控制部128而發揮功能。又,亦可利用專用之1個以上的電子電路來實現編碼裝置100,且前述專用之1個以上的電子電路對應於分割部102、減算部104、轉換部106、量化部108、熵編碼部110、反量化部112、反轉換部114、加算部116、迴路濾波部120、幀內預測部124、幀間預測部126、及預測控制部128。
以下說明編碼裝置100整體的處理流程,之後再說明編碼裝置100包含的各構成要素。
[編碼處理的整體流程]
圖2是顯示編碼裝置100所進行之整體的編碼處理的一例之流程圖。
首先,編碼裝置100的分割部102將動態圖像即輸入圖像所包含的各圖片分割成複數個固定尺寸的區塊(例如128×128像素)(步驟Sa_1)。接著,分割部102對該固定尺寸的區塊選擇分割樣式(又稱作區塊形狀)(步驟Sa_2)。也就是說,分割部102進一步將固定尺寸的區塊分割成:構成該已選擇之分割樣式的複數個區塊。接著,編碼裝置100針對該等複數個區塊的各區塊,對該區塊(亦即編碼對象區塊)進行步驟Sa_3~Sa_9的處理。
也就是說,由幀內預測部124、幀間預測部126及預測控制部128的全部或一部分所構成的預測處理部,會生成編碼對象區塊(又稱作當前區塊)的預測訊號(又稱作預測區塊)(步驟Sa_3)。
其次,減算部104生成編碼對象區塊與預測區塊的差分,來作為預測殘差(又稱作差分區塊)(步驟Sa_4)。
其次,轉換部106及量化部108對該差分區塊進行轉換及量化,藉此生成複數個量化係數(步驟Sa_5)。再者,由複數個量化係數所構成的區塊又稱作係數區塊。
其次,熵編碼部110對該係數區塊與有關預測訊號之生成的預測參數進行編碼(具體而言是熵編碼),藉此生成編碼訊號(步驟Sa_6)。再者,編碼訊號又稱作編碼位元串流、壓縮位元串流或串流。
其次,反量化部112及反轉換部114對係數區塊進行反量化及反轉換,藉此復原複數個預測殘差(亦即差分區塊)(步驟Sa_7)。
其次,加算部116對該已復原之差分區塊加上預測區塊,藉此將當前區塊重構成重構圖像(又稱作重構區塊或解碼圖像區塊)(步驟Sa_8)。藉此,重構圖像生成。
當此重構圖像生成後,迴路濾波部120因應需要而對該重構圖像進行濾波(步驟Sa_9)。
接著,編碼裝置100判定圖片整體的編碼是否已結束(步驟Sa_10),當判定尚未結束時(步驟Sa_10的否),重複執行從步驟Sa_2開始的處理。
再者,於上述的例子,編碼裝置100雖然對固定尺寸的區塊選擇1個分割樣式,並依照該分割樣式進行各區塊的編碼,但亦可依照複數種分割樣式的各樣式來進行各區塊的編碼。在此情況下,編碼裝置100亦可評價對於複數種分割樣式的各樣式的成本,並選擇依據例如最小成本之分割樣式進行編碼所得的編碼訊號,來作為要輸出的編碼訊號。
如圖示,該等步驟Sa_1~Sa_10之處理是藉由編碼裝置100依序進行。或,亦可並列地進行該等處理當中一部分的複數個處理,亦可進行該等處理之順序的置換等。
[分割部]
分割部102將輸入動態圖像所包含的各圖片分割成複數個區塊,並將各區塊輸出至減算部104。例如,分割部102首先將圖片分割成固定尺寸(例如128x128)的區塊。亦可採用其他的固定區塊尺寸。此固定尺寸的區塊有時稱為編碼樹單元(CTU)。接著,分割部102根據例如遞迴的四元樹(quadtree)及/或二元樹(binary tree)區塊分割,將固定尺寸的各個區塊分割成可變尺寸(例如64×64以下)的區塊。亦即,分割部102選擇分割樣式。此可變尺寸的區塊有時稱為編碼單元(CU)、預測單元(PU)或轉換單元(TU)。再者,於各種處理例,亦可不必區分CU、PU及TU,而使圖片內的一部分或全部區塊成為CU、PU、TU的處理單位。
圖3是顯示實施形態之區塊分割的一例的概念圖。於圖3,實線表示四元樹區塊分割的區塊邊界,虛線表示二元樹區塊分割的區塊邊界。
在此,區塊10為128×128像素的正方形區塊(128×128區塊)。此128×128區塊10首先分割成4個正方形的64×64區塊(四元樹區塊分割)。
左上64×64區塊進一步垂直分割成2個矩形的32×64區塊,左32×64區塊進一步垂直分割成2個矩形的16×64區塊(二元樹區塊分割)。其結果,左上64×64區塊分割成2個16×64區塊11、12,及32×64區塊13。
右上64×64區塊水平分割成2個矩形的64×32區塊14、15(二元樹區塊分割)。
左下64×64區塊分割成4個正方形的32×32區塊(四元樹區塊分割)。4個32×32區塊中,左上區塊及右下區塊進一步分割。左上32×32區塊垂直分割成2個矩形的16×32區塊,右16×32區塊進一步水平分割成2個16×16區塊(二元樹區塊分割)。右下32×32區塊水平分割成2個32×16區塊(二元樹區塊分割)。其結果,左下64×64區塊分割成16×32區塊16,2個16×16區塊17、18,2個32×32區塊19、20,及2個32×16區塊21、22。
右下64×64區塊23不分割。
如以上,於圖3,區塊10根據遞迴的四元樹及二元樹區塊分割,分割成13個可變尺寸的區塊11~23。這樣的分割有時稱為QTBT(quad-tree plus binary tree:四元樹加二元樹)分割。
再者,於圖3,1個區塊雖分割成4個或2個區塊(四元樹或二元樹區塊分割),但分割不限定於該等分割。例如1個區塊亦可分割成3個區塊(三元樹區塊分割)。這種包含三元樹區塊分割的分割,有時稱為MBT(multi type tree:多類型樹)分割。
[圖片的構成 切片/圖塊]
為了並列地解碼圖片,圖片有時以切片(slice)單位或圖塊(tile)單位構成。由切片單位或圖塊單位構成的圖片亦可藉由分割部102來構成。
切片是構成圖片之基本的編碼單位。圖片是由例如1個以上的切片所構成。又,切片是由1個以上之連續的CTU(Coding Tree Unit)所構成。
圖4A是顯示切片之構成的一例的概念圖。例如,圖片包含11×8個CTU,且被分割成4個切片(切片1-4)。切片1由16個CTU構成,切片2由21個CTU構成,切片3由29個CTU構成,切片4由22個CTU構成。在此,圖片內的各CTU屬於任一切片。切片的形狀成為朝水平方向分割圖片後的形狀。切片的邊界不必在畫面端,在畫面內的CTU的邊界當中的何處皆可。切片之中的CTU的處理順序(編碼順序或解碼順序)例如是逐線掃描(Raster scan)順序。又,切片包含標頭資訊與編碼資料。標頭資訊中亦可記述切片開頭的CTU位址、切片類型等該切片的特徵。
圖塊是構成圖片之矩形區域的單位。各圖塊亦可依逐線掃描順序而被分配稱作TileId的號碼。
圖4B是顯示圖塊之構成的一例的概念圖。例如,圖片包含11×8個CTU,且被分割成4個矩形區域的圖塊(圖塊1-4)。當使用圖塊時,相較於不使用圖塊的情況, CTU的處理順序會變更。當不使用圖塊時,圖片內的複數個CTU依逐線掃描順序處理。當使用圖塊時,在複數個圖塊的各圖塊中,至少1個CTU會依逐線掃描順序處理。例如,如圖4B所示,圖塊1包含的複數個CTU的處理順序是以下順序:從圖塊1的第1列左端起朝向圖塊1的第1列右端為止,接下來,從圖塊1的第2列左端起朝向圖塊1的第2列右端為止。
再者,1個圖塊有時包含1個以上的切片,1個切片有時包含1個以上的圖塊。
[減算部]
減算部104以從分割部102輸入且藉由分割部102分割而成的區塊為單位,從原訊號(原樣本)減去預測訊號(從以下所示之預測控制部128輸入的預測樣本)。也就是說,減算部104會算出編碼對象區塊(以下稱作當前區塊)的預測誤差(亦稱作殘差)。接著,減算部104將算出的預測誤差(殘差)輸出至轉換部106。
原訊號為編碼裝置100的輸入訊號,且為表示構成動態圖像之各圖片的圖像之訊號(例如亮度(luma)訊號及2個色差(chroma)訊號)。以下有時亦將表示圖像的訊號稱為樣本。
[轉換部]
轉換部106將空間域的預測誤差轉換成頻率域的轉換係數,並將轉換係數輸出至量化部108。具體而言,轉換部106是對例如空間域的預測誤差進行預定的離散餘弦轉換(DCT)或離散正弦轉換(DST)。預定的DCT或DST亦可事先決定。
再者,轉換部106亦可從複數種轉換類型中適應性地選擇轉換類型,再使用與選擇之轉換類型相對應的轉換基底函數(transform basis function),將預測誤差轉換成轉換係數。這樣的轉換有時稱為EMT(explicit multiple core transform:顯式多重核心轉換)或AMT(adaptive multiple transform:適應性多重轉換)。
複數種轉換類型包含例如DCT-II、DCT-V、DCT-VIII、DST-I及DST-VII。圖5A顯示對應於轉換類型例之轉換基底函數的表。於圖5A,N表示輸入像素數。從該等複數種轉換類型中選擇轉換類型時,可取決於例如預測的種類(幀內預測及幀間預測),或取決於幀內預測模式。
這種表示是否套用EMT或AMT的資訊(例如稱為EMT旗標或AMT旗標)、及表示已選擇之轉換類型的資訊,通常是以CU級別來訊號化。再者,該等資訊的訊號化不必限定在CU級別,亦可為其他級別(例如位元序列(bit sequence)級別、圖片(picture)級別、切片(slice)級別、圖塊(tile)級別或CTU級別)。
又,轉換部106亦可將轉換係數(轉換結果)進行再轉換。這樣的再轉換有時稱為AST(adaptive secondary transform:適應性二次轉換)或NSST(non-separable secondary transform:不可分離二次轉換)。例如,轉換部106將對應於幀內預測誤差的轉換係數之區塊所包含的每個子區塊(例如4×4子區塊)進行再轉換。表示是否套用NSST的資訊、及有關於用於NSST之轉換矩陣的資訊,通常是以CU級別來訊號化。再者,該等資訊的訊號化不必限定在CU級別,亦可為其他級別(例如序列級別、圖片級別、切片級別、圖塊級別或CTU級別)。
轉換部106亦可套用可分離(Separable)轉換與不可分離(Non-Separable)轉換。可分離轉換是指就輸入之維度的數目而按每個方向分離來進行複數次轉換的方式,不可分離轉換是指在輸入為多維之際,將2個以上的維度統整視為1維而一次進行轉換的方式。
例如,可舉以下例來作為不可分離轉換的一例:在輸入為4×4區塊時,將前述區塊視為具有16個要素的一個陣列,且以16×16的轉換矩陣對前述陣列進行轉換處理。
又,在不可分離轉換之更進一步的例子中,亦可在將4×4輸入區塊視為具有16個要素的一個陣列後,進行如對該陣列進行複數次吉文斯旋轉之轉換(Hypercube Givens Transform:超立方體吉文斯轉換)。
於轉換部106的轉換中,也可因應於CU內的區域來切換轉換成頻率域的基底之類型。舉一例來說,有SVT(Spatially Varying Transform:空間變化轉換)。在SVT中,如圖5B所示,沿水平或垂直方向將CU分成2等分,只對其中一邊的區域進行往頻率域的轉換。轉換基底的類型可依每個區域設定,例如可使用DST7與DCT8。於本例,在CU內的2個區域中,只進行其中一邊的轉換,另一邊則不進行轉換,但也可2個區域都轉換。又,分割方法也不只有2等分,亦可為4等分,或採用更靈活的方法,將表示分割的資訊另外編碼再與CU分割同樣地傳訊等。再者,SVT有時也稱為SBT(Sub-block Transform:子區塊轉換)。
[量化部]
量化部108將從轉換部106輸出的轉換係數進行量化。具體而言,量化部108以預定的掃描順序掃描當前區塊的轉換係數,根據對應於經掃描的轉換係數之量化參數(QP)來量化該轉換係數。然後,量化部108將當前區塊之經量化的轉換係數(以下稱為量化係數)輸出至熵編碼部110及反量化部112。預定的掃描順序亦可事先決定。
預定的掃描順序是轉換係數之量化/反量化用的順序。例如,預定的掃描順序亦可是以頻率的升序(從低頻往高頻的順序)或降序(從高頻往低頻的順序)來定義。
量化參數(QP)是定義量化步距(量化寬度)的參數。例如,若增加量化參數之值,則量化步距亦增加。也就是說,若量化參數之值增加,則量化誤差增大。
又,量化有時會使用量化矩陣。例如,有時會對應於4×4及8×8等之頻率轉換尺寸、幀內預測及幀間預測等之預測模式、亮度及色差等之像素成分,來使用數種類的量化矩陣。再者,量化是指讓以預定的間隔取樣的值與預定的級別相對應並進行數位化,在本技術領域中,既可使用取整、捨入(rounding)、縮放(scaling)之類的其他表現方式來參考,亦可採用取整、捨入、縮放。預定的間隔及級別亦可事先決定。
作為使用量化矩陣的方法,有使用在編碼裝置側直接設定的量化矩陣之方法、及使用預設的量化矩陣(預設矩陣:default matrix)之方法。藉由在編碼裝置側直接設定量化矩陣,可設定因應於圖像的特徵之量化矩陣。然而此情況下,有因為量化矩陣之編碼而造成編碼量增加的缺點。
另一方面,也有不使用量化矩陣而將高頻成分的係數及低頻成分的係數都同樣進行量化的方法。再者,此方法等同於使用係數全部為相同值的量化矩陣(平面的矩陣)之方法。
也可利用例如SPS(序列參數集:Sequence Parameter Set)或PPS(圖片參數集:Picture Parameter Set)來指定量化矩陣。SPS包含可對序列使用的參數,PPS包含可對圖片使用的參數。SPS及PPS有時單純稱作參數集。
[熵編碼部]
熵編碼部110根據從量化部108輸入的量化係數來生成編碼訊號(編碼位元串流)。具體而言,熵編碼部110例如將量化係數二值化,將二值訊號予以算術編碼,並輸出經壓縮的位元串流或序列。
[反量化部]
反量化部112將從量化部108輸入的量化係數反量化。具體而言,反量化部112以預定的掃描順序來將當前區塊的量化係數反量化。接著,反量化部112將當前區塊之經反量化的轉換係數輸出至反轉換部114。預定的掃描順序亦可事先決定。
[反轉換部]
反轉換部114將從反量化部112輸入的轉換係數反轉換,藉此復原預測誤差(殘差)。具體而言,反轉換部114藉由對轉換係數進行與轉換部106的轉換相對應的反轉換,來復原當前區塊的預測誤差。接著,反轉換部114將經復原的預測誤差輸出至加算部116。
再者,由於經復原的預測誤差通常會因為量化而失去資訊,因此不會與減算部104所算出的預測誤差一致。亦即,經復原的預測誤差通常包含有量化誤差。
[加算部]
加算部116將從反轉換部114輸入的預測誤差與從預測控制部128輸入的預測樣本相加,藉此來重構當前區塊。接著,加算部116將重構的區塊輸出至區塊記憶體118及迴路濾波部120。重構區塊有時亦稱為局部(local)解碼區塊。
[區塊記憶體]
區塊記憶體118是用以儲存例如以下區塊的記憶部:在幀內預測中參考的區塊,並且是編碼對象圖片(稱為當前圖片)內的區塊。具體而言,區塊記憶體118儲存從加算部116輸出的重構區塊。
[幀記憶體]
幀記憶體122例如是用於儲存在幀間預測中使用的參考圖片之記憶部,有時也稱作幀緩衝器。具體而言,幀記憶體122儲存已藉由迴路濾波部120濾波的重構區塊。
[迴路濾波部]
迴路濾波部120對藉由加算部116重構的區塊施加迴路濾波,將經濾波的重構區塊輸出至幀記憶體122。迴路濾波是在編碼迴路內使用的濾波器(迴路內濾波器:In-loop filter),包含有例如解區塊濾波器(DF或DBF)、樣本適應性偏移(SAO:Sample Adaptive Offset)、及適應性迴路濾波器(ALF:Adaptive Loop Filter)等。
在ALF中是套用用以去除編碼失真的最小平方誤差濾波器,來對例如當前區塊內的每個2×2子區塊,套用根據局部梯度(gradient)之方向及活性度(activity)而從複數個濾波器中選擇的1個濾波器。
具體而言,首先將子區塊(例如2×2子區塊)分類成複數個組別(例如15或25組)。子區塊的分類是根據梯度的方向及活性度來進行。例如,使用梯度的方向值D(例如0~2或0~4)及梯度的活性值A(例如0~4)來算出分類值C(例如C=5D+A)。接著,根據分類值C將子區塊分類成複數個組別。
梯度的方向值D例如是藉由比較複數個方向(例如水平、垂直及2個對角方向)的梯度而導出。又,梯度的活性值A例如是對複數個方向的梯度進行加算,再將加算結果藉由量化來導出。
根據這樣的分類結果,從複數個濾波器中決定子區塊用的濾波器。
作為在ALF使用的濾波器形狀,可利用例如圓對稱形狀。圖6A~圖6C是顯示在ALF使用的濾波器形狀的複數個例子之圖。圖6A顯示5×5菱形形狀濾波器,圖6B顯示7×7菱形形狀濾波器,圖6C顯示9×9菱形形狀濾波器。顯示濾波器形狀的資訊通常是以圖片級別訊號化。再者,顯示濾波器形狀的資訊之訊號化不必限定在圖片級別,亦可為其他級別(例如序列級別、切片級別、圖塊級別、CTU級別或CU級別)。
ALF的開啟/關閉亦可以例如圖片級別或CU級別來決定。例如,針對亮度亦可以CU級別決定是否套用ALF,針對色差亦可以圖片級別決定是否套用ALF。顯示ALF之開啟/關閉的資訊通常是以圖片級別或CU級別來訊號化。再者,表示ALF之開啟/關閉的資訊之訊號化不必限定在圖片級別或CU級別,亦可為其他級別(例如序列級別、切片級別、圖塊級別或CTU級別)。
可選擇的複數個濾波器(例如到15個或25個的濾波器)之係數集通常是以圖片級別訊號化。再者,係數集之訊號化不必限定在圖片級別,亦可為其他級別(例如序列級別、切片級別、圖塊級別、CTU級別、CU級別或子區塊級別)。
[迴路濾波部>解區塊濾波器]
在解區塊濾波器中,迴路濾波部120對重構圖像的區塊邊界進行濾波處理,藉此減少該區塊邊界產生的失真。
圖7是顯示作為解區塊濾波器來發揮功能的迴路濾波部120的詳細構成的一例之方塊圖。
迴路濾波部120具備:邊界判定部1201、濾波判定部1203、濾波處理部1205、處理判定部1208、濾波特性決定部1207、開關1202、1204及1206。
邊界判定部1201判定欲進行解區塊濾波處理的像素(即對象像素)是否存在於區塊邊界附近。接著,邊界判定部1201將其判定結果輸出至開關1202及處理判定部1208。
在已藉由邊界判定部1201判定對象像素存在於區塊邊界附近時,開關1202將濾波處理前的圖像輸出至開關1204。反之,在已藉由邊界判定部1201判定對象像素不存在於區塊邊界附近時,開關1202將濾波處理前的圖像輸出至開關1206。
濾波器判定部1203根據位在對象像素的周邊之至少1個周邊像素的像素值,來判定是否對對象像素進行解區塊濾波處理。接著,濾波判定部1203將其判定結果輸出至開關1204及處理判定部1208。
在已藉由濾波判定部1203判定對對象像素進行解區塊濾波處理時,開關1204將已透過開關1202取得的濾波處理前的圖像輸出至濾波處理部1205。反之,在已藉由濾波判定部1203判定不對對象像素進行解區塊濾波處理時,開關1204將已透過開關1202取得的濾波處理前的圖像輸出至開關1206。
在已透過開關1202及1204取得濾波處理前的圖像時,濾波處理部1205對對象像素執行解區塊濾波處理,其中前述解區塊濾波處理具有已藉由濾波特性決定部1207所決定的濾波特性。接著,濾波處理部1205將該濾波處理後的像素輸出至開關1206。
開關1206因應於處理判定部1208的控制,選擇性地輸出未被解區塊濾波處理的像素、與已藉由濾波處理部1205解區塊濾波處理過的像素。
處理判定部1208根據邊界判定部1201及濾波判定部1203各自的判定結果來控制開關1206。也就是說,在已藉由邊界判定部1201判定對象像素存在於區塊邊界附近,且,已藉由濾波判定部1203判定對對象像素進行解區塊濾波處理時,處理判定部1208使經解區塊濾波處理的像素從開關1206輸出。又,於上述的情形以外,處理判定部1208則使未經解區塊濾波處理的像素從開關1206輸出。藉由重複進行這樣的像素之輸出,而從開關1206輸出濾波處理後的圖像。
圖8是顯示對區塊邊界具有對稱的濾波特性之解區塊濾波器的例子之概念圖。
在解區塊濾波處理中,例如使用像素值與量化參數來選擇特性相異的2個解區塊濾波器,即選擇強濾波器及弱濾波器中之任一種濾波器。在強濾波器中,如圖8所示,當隔著區塊邊界存在有像素p0~p2及像素q0~q2時,藉由進行例如以下數式所示的運算,來將像素q0~q2之各自的像素值變更成像素值q’0~q’2。
q’0=(p1+2×p0+2×q0+2×q1+q2+4)/8
q’1=(p0+q0+q1+q2+2)/4
q’2=(p0+q0+q1+3×q2+2×q3+4)/8
再者,在上述數式中,p0~p2及q0~q2是像素p0~p2及像素q0~q2各自的像素值。又,q3是在區塊邊界的相反側鄰接於像素q2的像素q3之像素值。又,在上述各數式的右邊,與解區塊濾波處理中使用的各像素的像素值相乘的係數為濾波係數。
進而,在解區塊濾波處理中,為了不讓運算後的像素值設定成超過閾值,也可進行剪裁(clip)處理。在此剪裁處理中,依上述數式進行之運算後的像素值是使用由量化參數決定的閾值,來剪裁成「運算對象像素值±2×閾值」。藉此,可防止過度的平滑化。
圖9是用以說明進行解區塊濾波處理之區塊邊界的概念圖。圖10是顯示Bs值之一例的概念圖。
進行解區塊濾波處理的區塊邊界例如是如圖9所示之8×8像素區塊的PU(Prediction Unit:預測單元)或TU(Transform Unit:轉換單元)的邊界。解區塊濾波處理可以4列或4行為單位來進行。首先,對圖9所示之區塊P及區塊Q,如圖10所示地決定Bs(Boundary Strength:邊界強度)值。
依照圖10的Bs值,就算是屬於同一圖像的區塊邊界,也會決定是否進行不同強度的解區塊濾波處理。對色差訊號的解區塊濾波處理是在Bs值為2的時候進行。對亮度訊號的解區塊濾波處理是在Bs值為1以上且滿足預定條件的時候進行。預定條件亦可事先決定。再者,Bs值的判定條件不限定於圖10所示者,亦可根據其他參數來決定。
[預測處理部(幀內預測部、幀間預測部、預測控制部)]
圖11是顯示在編碼裝置100之預測處理部進行的處理之一例的流程圖。再者,預測處理部是由幀內預測部124、幀間預測部126及預測控制部128的全部或一部分的構成要素所構成。
預測處理部生成當前區塊的預測圖像(步驟Sb_1)。此預測圖像也稱作預測訊號或預測區塊。再者,預測訊號有例如幀內預測訊號或幀間預測訊號。具體而言,預測處理部使用已得到的重構圖像來生成當前區塊的預測圖像,其中前述重構圖像是藉由進行預測區塊的生成、差分區塊的生成、係數區塊的生成、差分區塊的復原及解碼圖像區塊的生成而得到。
重構圖像例如可為參考圖片之圖像,也可為包含有當前區塊的圖片即當前圖片內的編碼完畢的區塊之圖像。當前圖片內的編碼完畢的區塊例如為當前區塊的鄰接區塊。
圖12是顯示在編碼裝置100之預測處理部進行的處理之其他例的流程圖。
預測處理部以第1方式生成預測圖像(步驟Sc_1a),以第2方式生成預測圖像(步驟Sc_1b),以第3方式生成預測圖像(步驟Sc_1c)。第1方式、第2方式及第3方式為用於生成預測圖像之互相不同的方式,分別也可為例如幀間預測方式、幀內預測方式、及該等以外的預測方式。在這些預測方式中,亦可使用上述之重構圖像。
其次,預測處理部選擇步驟Sc_1a、Sc_1b及Sc_1c所生成的複數個預測圖像中的任一個(步驟Sc_2)。此預測圖像之選擇,亦即用於得到最終的預測圖像的方式或模式之選擇,亦可是算出對於已生成的各預測圖像的成本,並根據其成本來進行。或,該預測圖像之選擇亦可根據在編碼處理中使用的參數來進行。編碼裝置100亦可將用以特定出該已選擇的預測圖像、方式或模式之資訊,訊號化成編碼訊號(也稱作編碼位元串流)。該資訊亦可為例如旗標等。藉此,解碼裝置可根據該資訊,按照已在編碼裝置100中選擇的方式或模式來生成預測圖像。再者,在圖12所示的例子中,預測處理部是以各方式生成預測圖像後,選擇任一個預測圖像。然而,預測處理部亦可在生成該等預測圖像之前,根據在上述之編碼處理中使用的參數來選擇方式或模式,並依照該方式或模式來生成預測圖像。
例如,第1方式及第2方式亦可分別為幀內預測及幀間預測,且預測處理部從依照該等預測方式所生成的預測圖像中,來選擇對於當前區塊之最終的預測圖像。
圖13是顯示在編碼裝置100之預測處理部進行的處理之其他例的流程圖。
首先,預測處理部藉由幀內預測來生成預測圖像(步驟Sd_1a),且藉由幀間預測來生成預測圖像(步驟Sd_1b)。再者,藉由幀內預測所生成的預測圖像也稱作幀內預測圖像,藉由幀間預測所生成的預測圖像也稱作幀間預測圖像。
其次,預測處理部分別評價幀內預測圖像及幀間預測圖像(步驟Sd_2)。在此評價中亦可使用成本。也就是說,預測處理部算出幀內預測圖像及幀間預測圖像各自的成本C。此成本C可藉由R-D最佳化模型的數式,例如C=D+λ×R來算出。在此數式中,D為預測圖像的編碼失真,且藉由例如當前區塊的像素值與預測圖像的像素值之絕對差值和等來表示。又,R為預測圖像的產生編碼量,具體而言為用以生成預測圖像的移動資訊等編碼所需要的編碼量等。又,λ例如為拉格朗日(Lagrange)乘數。
接著,預測處理部從幀內預測圖像及幀間預測圖像,選擇算出了最小成本C的預測圖像,來作為當前區塊之最終的預測圖像(步驟Sd_3)。也就是說,選擇用以生成當前區塊的預測圖像之預測方式或模式。
[幀內預測部]
幀內預測部124參考已儲存於區塊記憶體118的當前圖片內之區塊,進行當前區塊的幀內預測(也稱作畫面內預測),藉此生成預測訊號(幀內預測訊號)。具體而言,幀內預測部124參考鄰接於當前區塊之區塊的樣本(例如亮度值、色差值)來進行幀內預測,藉此生成幀內預測訊號,且將幀內預測訊號輸出至預測控制部128。
例如,幀內預測部124使用規定之複數個幀內預測模式中的1個來進行幀內預測。複數個幀內預測模式通常包含1個以上的非方向性預測模式與複數個方向性預測模式。規定的複數個模式亦可事先規定。
1個以上的非方向性預測模式包含有例如以H.265/HEVC標準所規定的平面(Planar)預測模式及直流(DC)預測模式。
複數個方向性預測模式例如包含以H.265/ HEVC標準所規定之33個方向的預測模式。再者,複數個方向性預測模式除了33個方向外,亦可進一步包含32個方向的預測模式(合計65個方向性預測模式)。圖14是顯示幀內預測中可使用之共67個的幀內預測模式(2個非方向性預測模式及65個方向性預測模式)之概念圖。實線箭頭表示以H.265/HEVC標準規定的33個方向,虛線箭頭表示追加的32個方向(2個非方向性預測模式未圖示於圖14)。
於各種處理例,亦可在色差區塊的幀內預測中參考亮度區塊。也就是說,亦可根據當前區塊的亮度成分,預測當前區塊的色差成分。這種幀內預測有時也被稱作CCLM(cross-component linear model:跨成分線性模型)預測。像這種參考亮度區塊的色差區塊之幀內預測模式(例如被稱作CCLM模式)亦可作為色差區塊之幀內預測模式的1種而加入。
幀內預測部124亦可根據水平/垂直方向的參考像素的梯度,來修正幀內預測後的像素值。這種伴隨修正的幀內預測有時被稱作PDPC(position dependent intra prediction combination:位置相依幀內預測組合)。顯示有無套用PDPC的資訊(例如稱作PDPC旗標)通常是以CU級別來訊號化。再者,此資訊之訊號化不必限定在CU級別,亦可為其他級別(例如序列級別、圖片級別、切片級別、圖塊級別或CTU級別)。
[幀間預測部]
幀間預測部126參考儲存於幀記憶體122之參考圖片並且是與當前圖片不同的參考圖片,來進行當前區塊的幀間預測(亦稱作畫面間預測),藉此生成預測訊號(幀間預測訊號)。幀間預測是以當前區塊或當前區塊內的當前子區塊(例如4×4區塊)為單位進行。例如,幀間預測部126針對當前區塊或當前子區塊,在參考圖片內進行移動估測(motion estimation),找到與該當前區塊或當前子區塊最一致的參考區塊或子區塊。接著,幀間預測部126從參考區塊或子區塊,取得將對當前區塊或子區塊的移動或變化進行補償的移動資訊(例如移動向量)。幀間預測部126根據該移動資訊進行移動補償(或移動預測),來生成當前區塊或子區塊的幀間預測訊號。幀間預測部126將已生成的幀間預測訊號輸出至預測控制部128。
使用於移動補償的移動資訊亦可以多種形態予以訊號化,來作為幀間預測訊號。例如,移動向量亦可被訊號化。舉其他例來說,移動向量與預測移動向量 (motion vector predictor)之差分亦可被訊號化。
[幀間預測的基本流程]
圖15是顯示幀間預測的基本流程之一例的流程圖。
首先,幀間預測部126生成預測圖像(步驟Se_1~Se_3)。其次,減算部104生成當前區塊與預測圖像之差分來作為預測殘差(步驟Se_4)。
在此,幀間預測部126在預測圖像的生成中,是藉由進行當前區塊的移動向量(MV)之決定(步驟Se_1及Se_2)及移動補償(步驟Se_3),來生成該預測圖像。又,幀間預測部126在MV的決定中,是藉由進行候選移動向量(候選MV)的選擇(步驟Se_1)及MV的導出(步驟Se_2),來決定該MV。候選MV的選擇例如是藉由從候選MV清單選擇至少1個候選MV來進行。又,在MV的導出中,幀間預測部126亦可從至少1個候選MV,進一步選擇至少1個候選MV,藉此決定該已選擇的至少1個候選MV來作為當前區塊的MV。或,幀間預測部126亦可針對該已選擇的至少1個候選MV之各個,估測以該候選MV所指示的參考圖片的區域,藉此決定當前區塊的MV。再者,亦可將此估測參考圖片的區域之情形稱作移動估測(motion estimation)。
又,在上述的例子中,步驟Se_1~Se_3雖是藉由幀間預測部126來進行,但例如步驟Se_1或步驟Se_2等之處理,亦可藉由編碼裝置100包含的其他構成要素來進行。
[移動向量的導出流程]
圖16是顯示移動向量導出之一例的流程圖。
幀間預測部126以將移動資訊(例如MV)編碼的模式來導出當前區塊的MV。在此情況下,例如移動資訊作為預測參數被編碼,並被訊號化。也就是說,已被編碼的移動資訊包含於編碼訊號(也稱作編碼位元串流)。
或,幀間預測部126以不將移動資訊編碼的模式來導出MV。在此情況下,編碼訊號不包含移動資訊。
在此,在導出MV的模式中,亦可有後述的一般幀間模式、合併模式、FRUC模式及仿射模式等。該等模式中,將移動資訊編碼的模式有一般幀間模式、合併模式及仿射模式(具體而言是仿射幀間模式及仿射合併模式)等。再者,移動資訊不只包含有MV,亦可包含有後述的預測移動向量選擇資訊。又,不將移動資訊編碼的模式有FRUC模式等。幀間預測部126從該等複數個模式選擇用於導出當前區塊的MV的模式,並使用該已選擇的模式來導出當前區塊的MV。
圖17是顯示移動向量導出之其他例的流程圖。
幀間預測部126以將差分MV編碼的模式來導出當前區塊的MV。在此情況下,例如差分MV作為預測參數被編碼,並被訊號化。也就是說,已編碼的差分MV包含於編碼訊號。此差分MV為當前區塊的MV與其預測MV之差。
或,幀間預測部126以不將差分MV編碼的模式來導出MV。在此情況下,編碼訊號不包含已編碼的差分MV。
在此,如上述,導出MV的模式有後述的一般幀間、合併模式、FRUC模式及仿射模式等。該等模式中,將差分MV編碼的模式有一般幀間模式及仿射模式(具體而言是仿射幀間模式)等。又,不將差分MV編碼的模式有FRUC模式、合併模式及仿射模式(具體而言是仿射合併模式)等。幀間預測部126從該等複數個模式選擇用於導出當前區塊的MV的模式,並使用該已選擇的模式來導出當前區塊的MV。
[移動向量的導出流程]
圖18是顯示移動向量導出之其他例的流程圖。導出MV的模式即幀間預測模式有複數種模式,大致上分成有:將差分MV編碼的模式、不將差分移動向量編碼的模式。不將差分MV編碼的模式有合併模式、FRUC模式及仿射模式(具體而言是仿射合併模式)。這些模式的詳情於後敘述,簡而言之,合併模式是藉由從周邊的編碼完畢區塊選擇移動向量來導出當前區塊的MV的模式,FRUC模式是藉由在編碼完畢區域間進行估測來導出當前區塊的MV的模式。又,仿射模式是設想仿射轉換而導出構成當前區塊的複數個子區塊各自的移動向量,來作為當前區塊的MV的模式。
具體而言,如圖示,在幀間預測模式資訊顯示0時(在Sf_1為0),幀間預測部126藉由合併模式來導出移動向量(Sf_2)。又,在幀間預測模式資訊顯示1時(在Sf_1為1),幀間預測部126藉由FRUC模式來導出移動向量(Sf_3)。又,在幀間預測模式資訊顯示2時(在Sf_1為2),幀間預測部126藉由仿射模式(具體而言是仿射合併模式)來導出移動向量(Sf_4)。又,在幀間預測模式資訊顯示3時(在Sf_1為3),幀間預測部126藉由將差分MV編碼的模式(例如一般幀間模式)來導出移動向量(Sf_5)。
[MV導出>一般幀間模式]
一般幀間模式是如下的幀間預測模式:從候選MV所示的參考圖片之區域,根據類似於當前區塊的圖像之區塊,導出當前區塊的MV。又,在此一般幀間模式中,差分MV會被編碼。
圖19是顯示一般幀間模式所進行之幀間預測的例子的流程圖。
幀間預測部126首先根據時間上或空間上位於當前區塊周圍的複數個編碼完畢區塊的MV等之資訊,對該當前區塊取得複數個候選MV(步驟Sg_1)。也就是說,幀間預測部126製作候選MV清單。
其次,幀間預測部126從在步驟Sg_1取得的複數個候選MV中,依照預定的優先順序擷取N個(N為2以上的整數)候選MV,將各個候選MV當作預測移動向量候選(也稱作預測MV候選)(步驟Sg_2)。再者,該優先順序亦可是對N個候選MV之各個事先決定好的順序。
其次,幀間預測部126從該N個預測移動向量候選中選擇1個預測移動向量候選,來作為當前區塊的預測移動向量(也稱作預測MV)(步驟Sg_3)。此時,幀間預測部126將用於識別已選擇的預測移動向量之預測移動向量選擇資訊編碼成串流。再者,串流為上述的編碼訊號或編碼位元串流。
其次,幀間預測部126參考編碼完畢參考圖片來導出當前區塊的MV(步驟Sg_4)。此時,幀間預測部126進一步將該已導出的MV與預測移動向量之差分值作為差分MV而編碼於串流。再者,編碼完畢參考圖片是由編碼後重構的複數個區塊所構成的圖片。
最後,幀間預測部126使用該已導出的MV及編碼完畢參考圖片,對當前區塊進行移動補償,藉此生成該當前區塊的預測圖像(步驟Sg_5)。再者,預測圖像為上述的幀間預測訊號。
又,顯示編碼訊號所包含的在預測圖像之生成中使用的幀間預測模式(在上述例中是一般幀間模式)之資訊,是作為例如預測參數而被編碼。
再者,候選MV清單亦可和其他模式使用的清單共通使用。又,亦可將與候選MV清單有關的處理套用於與其他模式使用的清單有關的處理。此與候選MV清單有關的處理例如為:從候選MV清單擷取或選擇候選MV、重新排列候選MV、或刪除候選MV等。
[MV導出>合併模式]
合併模式是如下的幀間預測模式:從候選MV清單選擇候選MV來作為當前區塊的MV,藉此導出該MV。
圖20是顯示合併模式所進行之幀間預測的例子的流程圖。
幀間預測部126首先根據時間上或空間上位於當前區塊周圍的複數個編碼完畢區塊的MV等之資訊,對該當前區塊取得複數個候選MV(步驟Sh_1)。也就是說,幀間預測部126製作候選MV清單。
其次,幀間預測部126從在步驟Sh_1取得的複數個候選MV中選擇1個候選MV,藉此導出當前區塊的MV(步驟Sh_2)。此時,幀間預測部126將用於識別已選擇的候選MV之MV選擇資訊編碼於串流。
最後,幀間預測部126使用該已導出的MV及編碼完畢參考圖片,對當前區塊進行移動補償,藉此生成該當前區塊的預測圖像(步驟Sh_3)。
又,顯示編碼訊號所包含的在預測圖像之生成中使用的幀間預測模式(在上述例中是合併模式)之資訊,是作為例如預測參數而被編碼。
圖21是用以說明合併模式所進行之當前圖片的移動向量導出處理之一例的概念圖。
首先,生成已登錄有預測MV的候選之預測MV清單。作為預測MV的候選,有如下MV等:空間鄰接預測MV,空間上位於對象區塊周邊的複數個編碼完畢區塊所具有的MV;時間鄰接預測MV,編碼完畢參考圖片中投影了對象區塊的位置之附近的區塊所具有的MV;結合預測MV,組合空間鄰接預測MV與時間鄰接預測MV的MV值所生成的MV;及零預測MV,值為零的MV。
其次,從已登錄在預測MV清單的複數個預測MV中選擇1個預測MV,藉此決定其為對象區塊的MV。
進而,在可變長度編碼部中,將表示已選擇哪一個預測MV的訊號即merge_idx記述在串流中並編碼。
再者,登錄於圖21所說明的預測MV清單之預測MV僅為一例,亦可與圖中的個數為不同的個數,或構成為不包含圖中的預測MV的一部分種類,或構成為追加圖中的預測MV的種類以外的預測MV。
亦可使用藉由合併模式導出的對象區塊的MV,來進行後述的DMVR(decoder motion vector refinement:解碼器側移動向量細化)處理,藉此決定最終的MV。
再者,預測MV的候選為上述之候選MV,預測MV清單為上述之候選MV清單。又,候選MV清單亦可稱作候選清單。又,merge_idx為MV選擇資訊。
[MV導出>FRUC模式]
移動資訊亦可不由編碼裝置側進行訊號化並在解碼裝置側導出。再者,如上述,亦可使用以H.265/ HEVC標準規定的合併模式。又,例如亦可在解碼裝置側進行移動估測,藉此導出移動資訊。在實施形態中,在解碼裝置側,不使用當前區塊的像素值而進行移動估測。
在此,針對在解碼裝置側進行移動估測的模式加以說明。此在解碼裝置側進行移動估測的模式有時稱作PMMVD(pattern matched motion vector derivation:樣式匹配移動向量導出)模式或FRUC(frame rate up-conversion:幀更新率提升轉換)模式。
用流程圖的形式將FRUC處理的一例顯示於圖22。首先,參考空間上或時間上鄰接於當前區塊的編碼完畢區塊的移動向量,生成分別具有預測移動向量(MV)的複數個候選清單(亦即候選MV清單,且亦可與合併清單共通)(步驟Si_1)。其次,從登錄於候選MV清單的複數個候選MV中選擇最佳候選MV(步驟Si_2)。例如,算出候選MV清單所包含之各候選MV的評價值,根據評價值選擇1個候選MV。接著,根據選擇的候選移動向量,導出當前區塊用的移動向量(步驟Si_4)。具體而言,例如將選擇的候選移動向量(最佳候選MV)直接導出,來作為當前區塊用的移動向量。又,例如亦可在與選擇的候選移動向量對應的參考圖片內的位置的周邊區域進行樣式匹配(pattern matching),藉此導出當前區塊用的移動向量。亦即,亦可對最佳候選MV的周邊區域,使用參考圖片中之樣式匹配及評價值來進行估測,若有評價值為更佳之值的MV,則將最佳候選MV更新為前述MV,並將其當作當前區塊的最終MV。亦可構成為不實施更新處理之構成,而不進行具有更佳評價值的MV之更新。
最後,幀間預測部126使用該已導出的MV及編碼完畢參考圖片,對當前區塊進行移動補償,藉此生成該當前區塊的預測圖像(步驟Si_5)。
以子區塊單位進行處理時,亦可進行完全同樣的處理。
評價值亦可藉由各種方法算出。例如,比較對應於移動向量的參考圖片內的區域之重構圖像與預定的區域(該區域例如以下所示,亦可為其他參考圖片的區域、或當前圖片的鄰接區塊的區域)之重構圖像。預定的區域亦可事先決定。
且,亦可算出2個重構圖像的像素值的差分,並使用於移動向量之評價值。再者,除了差分值,亦可使用其以外的資訊來算出評價值。
其次,針對樣式匹配的例子詳細說明。首先,選擇候選MV清單(例如合併清單)所包含的1個候選MV,來作為樣式匹配之估測的起始點。例如,作為樣式匹配,可使用第1樣式匹配或第2樣式匹配。第1樣式匹配及第2樣式匹配有時分別被稱為雙向匹配(bilateral matching)及模板匹配(template matching)。
[MV導出>FRUC>雙向匹配]
第1樣式匹配是在以下2個區塊間進行樣式匹配:不同的2個參考圖片內的2個區塊,且是沿著當前區塊之移動軌跡(motion trajectory)的2個區塊。因此,在第1樣式匹配中,作為用以算出上述之候選的評價值之預定的區域,使用的是沿著當前區塊的移動軌跡之其他參考圖片內的區域。預定的區域亦可事先決定。
圖23是用以說明在沿著移動軌跡的2個參考圖片中之2個區塊間的第1樣式匹配(雙向匹配)之一例的概念圖。如圖23所示,在第1樣式匹配中,是藉由估測沿著當前區塊(Cur block)之移動軌跡的2個區塊並且是不同的2個參考圖片(Ref0、Ref1)內的2個區塊之配對(pair)中最匹配的配對,來導出2個移動向量(MV0、MV1)。具體而言,對當前區塊導出第1編碼完畢參考圖片(Ref0)內之指定位置的重構圖像與第2編碼完畢參考圖片(Ref1)內之指定位置的重構圖像之差分,並使用得到的差分值來算出評價值,其中前述第1編碼完畢參考圖片是被候選MV指定的圖片,前述第2編碼完畢參考圖片是被將前述候選MV利用顯示時間間隔進行縮放(scaling)後之對稱MV指定的圖片。能夠在複數個候選MV中選擇評價值為最佳值的候選MV來作為最終MV,可帶來好的結果。
在連續的移動軌跡之假設下,指示出2個參考區塊的移動向量(MV0、MV1)是相對於當前圖片(Cur Pic)與2個參考圖片(Ref0、Ref1)之間的時間上的距離(TD0、TD1)成比例。例如,當前圖片在時間上是位於2個參考圖片之間,若從當前圖片往2個參考圖片之時間上的距離相等,則在第1樣式匹配中,會導出鏡射對稱之雙向的移動向量。
[MV導出>FRUC>模板匹配]
在第2樣式匹配(模板匹配)中,是在當前圖片內的模板(在當前圖片內鄰接於當前區塊的區塊(例如上及/或左鄰接區塊))與參考圖片內的區塊之間進行樣式匹配。因此,在第2樣式匹配中,作為用以算出上述之候選的評價值的預定區域,使用的是與當前圖片內之當前區塊鄰接的區塊。
圖24是用以說明在當前圖片內的模板與參考圖片內的區塊之間的樣式匹配(模板匹配)之一例的概念圖。如圖24所示,在第2樣式匹配中,是藉由在參考圖片(Ref0)內估測與當前圖片(Cur Pic)內鄰接於當前區塊(Cur block)之區塊最匹配的區塊,來導出當前區塊的移動向量。具體而言,可對當前區塊,導出左鄰接及上鄰接雙方或其中一方之編碼完畢區域的重構圖像、與被候選MV指定之編碼完畢參考圖片(Ref0)內的同等位置的重構圖像之差分,使用得到的差分值來算出評價值,並在複數個候選MV之中選擇評價值為最佳值的候選MV來作為最佳候選MV。
表示是否套用這種FRUC模式的資訊(例如稱為FRUC旗標)亦可以CU級別來訊號化。又,當套用FRUC模式時(例如FRUC旗標為真時),表示可套用的樣式匹配的方法(第1樣式匹配或第2樣式匹配)之資訊(例如稱為FRUC模式旗標)亦可以CU級別來訊號化。再者,該等資訊的訊號化不必限定在CU級別,亦可為其他級別(例如序列級別、圖片級別、切片級別、圖塊級別、CTU級別或子區塊級別)。
[MV導出>仿射模式]
其次,針對根據複數個鄰接區塊之移動向量而以子區塊單位來導出移動向量的仿射模式加以說明。此模式有時稱作仿射移動補償預測(affine motion compensation prediction)模式。
圖25A是用以說明以複數個鄰接區塊的移動向量為基準之子區塊單位的移動向量的導出之一例的概念圖。在圖25A,當前區塊包含有16個4×4子區塊。在此是根據鄰接區塊的移動向量,導出當前區塊的左上角控制點的移動向量v0
,同樣地,根據鄰接子區塊的移動向量,導出當前區塊的右上角控制點的移動向量v1
。接著,可藉由以下的式(1A)來投影2個移動向量v0
及v1
,亦可導出當前區塊內的各子區塊的移動向量(vx
,vy
)。
[數1]
在此,x及y分別表示子區塊的水平位置及垂直位置,w表示預定的加權係數。預定的加權係數亦可事先決定。
表示這種仿射模式的資訊(例如稱作仿射旗標) 亦可以CU級別來訊號化。再者,此表示仿射模式的資訊之訊號化不必限定在CU級別,亦可為其他級別(例如序列級別、圖片級別、切片級別、圖塊級別、CTU級別或子區塊級別)。
又,在這種仿射模式中,亦可包含有左上角及右上角控制點的移動向量導出方法相異的幾個模式。例如,在仿射模式中有仿射幀間(也稱作仿射一般幀間)模式、及仿射合併模式2種模式。
[MV導出>仿射模式]
圖25B是用以說明具有3個控制點之仿射模式中的子區塊單位的移動向量的導出之一例的概念圖。在圖25B中,當前區塊包含有16個4×4子區塊。在此,根據鄰接區塊的移動向量,導出當前區塊的左上角控制點的移動向量v0
,同樣地,根據鄰接區塊的移動向量,導出當前區塊的右上角控制點的移動向量v1
,根據鄰接區塊的移動向量,導出當前區塊的左下角控制點的移動向量v2
。接著,可藉由以下的式(1B)來投影3個移動向量v0
、v1
及v2
,亦可導出當前區塊內的各子區塊的移動向量(vx
,vy
)。
[數2]
在此,x及y分別表示子區塊中心的水平位置及垂直位置,w表示當前區塊的寬度,h表示當前區塊的高度。
控制點數目不同(例如2個及3個)的仿射模式亦可以CU級別來切換並被訊號化。再者,表示在CU級別下使用的仿射模式的控制點數目之資訊,亦可以其他級別(例如序列級別、圖片級別、切片級別、圖塊級別、CTU級別或子區塊級別)來訊號化。
又,在這種具有3個控制點的仿射模式中,亦可包含有與左上、右上及左下角控制點之移動向量導出方法不同的幾個模式。例如,在仿射模式中有仿射幀間(也稱作仿射一般幀間)模式及仿射合併模式2種模式。
[MV導出>仿射合併模式]
圖26A、圖26B及圖26C是用以說明仿射合併模式的概念圖。
在仿射合併模式中,如圖26A所示,例如在鄰接於當前區塊的編碼完畢區塊A(左)、區塊B(上)、區塊C(右上)、區塊D(左下)及區塊E(左上)之中,根據對應於以仿射模式編碼的區塊之複數個移動向量,來算出當前區塊的控制點各自的預測移動向量。具體而言,以編碼完畢區塊A(左)、區塊B(上)、區塊C(右上)、區塊D(左下)及區塊E(左上)之順序來檢查該等區塊,特定出以仿射模式編碼之最初的有效的區塊。根據對應於此特定出的區塊之複數個移動向量,來算出當前區塊的控制點的預測移動向量。
例如,如圖26B所示,在以鄰接於當前區塊的左邊之區塊A具有2個控制點的仿射模式進行編碼時,會導出投影在包含有區塊A之編碼完畢區塊的左上角及右上角的位置之移動向量v3
及v4
。接著,從導出的移動向量v3
及v4
,算出當前區塊之左上角的控制點的預測移動向量v0
、及右上角的控制點的預測移動向量v1
。
例如,如圖26C所示,在以鄰接於當前區塊的左邊之區塊A具有3個控制點的仿射模式進行編碼時,會導出投影在包含有區塊A之編碼完畢區塊的左上角、右上角及左下角的位置之移動向量v3
、v4
及v5
。接著,從導出的移動向量v3
、v4
及v5
,算出當前區塊之左上角的控制點的預測移動向量v0
、右上角的控制點的預測移動向量v1
及左下角的控制點的預測移動向量v2
。
再者,後述圖29之步驟Sj_1中之當前區塊的控制點各自的預測移動向量之導出,亦可使用此預測移動向量導出方法。
圖27是顯示仿射合併模式之一例的流程圖。
在仿射合併模式中,如圖示,首先,幀間預測部126導出當前區塊的控制點各自的預測MV(步驟Sk_1)。控制點如圖25A所示,為當前區塊的左上角及右上角的點,或如圖25B所示,為當前區塊的左上角、右上角及左下角的點。
也就是說,如圖26A所示,幀間預測部126按照編碼完畢區塊A(左)、區塊B(上)、區塊C(右上)、區塊D(左下)及區塊E(左上)之順序來檢查該等區塊,特定出以仿射模式編碼的最初的有效的區塊。
接著,在區塊A已被特定且區塊A具有2個控制點時,如圖26B所示,幀間預測部126從包含有區塊A之編碼完畢區塊的左上角及右上角的移動向量v3
及v4
,算出當前區塊的左上角的控制點的移動向量v0
、及右上角的控制點的移動向量v1
。例如,幀間預測部126將編碼完畢區塊的左上角及右上角的移動向量v3
及v4
投影到當前區塊,藉此算出當前區塊的左上角的控制點的預測移動向量v0
及右上角的控制點的預測移動向量v1
。
或,在區塊A已被特定且區塊A具有3個控制點時,如圖26C所示,幀間預測部126從包含有區塊A之編碼完畢區塊的左上角、右上角及左下角的移動向量v3
、v4
及v5
,算出當前區塊的左上角的控制點的移動向量v0
、右上角的控制點的移動向量v1
、左下角的控制點的移動向量v2
。例如,幀間預測部126將編碼完畢區塊的左上角、右上角及左下角的移動向量v3
、v4
及v5
投影到當前區塊,藉此算出當前區塊的左上角的控制點的預測移動向量v0
、右上角的控制點的預測移動向量v1
及左下角的控制點的移動向量v2
。
其次,幀間預測部126針對當前區塊所包含之複數個子區塊的各個進行移動補償。亦即,幀間預測部126針對該等複數個子區塊的各個,使用2個預測移動向量v0
及v1
與上述之式(1A)、或3個預測移動向量v0
、v1
及v2
與上述之式(1B),算出該等子區塊的移動向量來作為仿射MV(步驟Sk_2)。接著,幀間預測部126使用該等仿射MV及編碼完畢參考圖片,對該等子區塊進行移動補償(步驟Sk_3)。其結果,對當前區塊進行移動補償,並生成該當前區塊的預測圖像。
[MV導出>仿射幀間模式]
圖28A是用以說明具有2個控制點之仿射幀間模式的概念圖。
在此仿射幀間模式中,如圖28A所示,從鄰接於當前區塊的編碼完畢區塊A、區塊B及區塊C之移動向量所選擇的移動向量,會作為當前區塊的左上角的控制點的預測移動向量v0
來使用。同樣地,從鄰接於當前區塊的編碼完畢區塊D及區塊E之移動向量所選擇的移動向量,會作為當前區塊的右上角的控制點的預測移動向量v1
來使用。
圖28B是用以說明具有3個控制點之仿射幀間模式的概念圖。
在此仿射幀間模式中,如圖28B所示,從鄰接於當前區塊的編碼完畢區塊A、區塊B及區塊C之移動向量所選擇的移動向量,會作為當前區塊的左上角的控制點的預測移動向量v0
來使用。同樣地,從鄰接於當前區塊的編碼完畢區塊D及區塊E之移動向量所選擇的移動向量,會作為當前區塊的右上角的控制點的預測移動向量v1
來使用。進而,從鄰接於當前區塊的編碼完畢區塊F及區塊G之移動向量所選擇的移動向量,會作為當前區塊的左下角的控制點的預測移動向量v2
來使用。
圖29是顯示仿射幀間模式之一例的流程圖。
如圖示,在仿射幀間模式中,首先,幀間預測部126導出當前區塊的2個或3個控制點各自的預測MV(v0
,v1
)或(v0
,v1
,v2
)(步驟Sj_1)。如圖25A或圖25B所示,控制點為當前區塊的左上角、右上角或左下角的點。
也就是說,幀間預測部126選擇圖28A或圖28B所示的當前區塊的各控制點附近的編碼完畢區塊之中任一個區塊的移動向量,藉此導出當前區塊的控制點的預測移動向量(v0
,v1
)或(v0
,v1
,v2
)。此時,幀間預測部126將用於識別已選擇的2個移動向量之預測移動向量選擇資訊編碼於串流。
例如,幀間預測部126亦可使用成本評價等來決定要從鄰接於當前區塊的編碼完畢區塊,選擇哪一個區塊的移動向量來作為控制點的預測移動向量,並將表示選擇了哪一個預測移動向量的旗標記述於位元串流。
其次,幀間預測部126一邊更新在步驟Sj_1選擇或導出的各個預測移動向量(步驟Sj_2),一邊進行移動估測(步驟Sj_3及Sj_4)。也就是說,幀間預測部126使用上述之式(1A)或式(1B),算出對應於更新的預測移動向量之各子區塊的移動向量,來作為仿射MV(步驟Sj_3)。接著,幀間預測部126使用該等仿射MV及編碼完畢參考圖片,對各子區塊進行移動補償(步驟Sj_4)。其結果,幀間預測部126在移動估測迴路中,將例如可得到最小成本的預測移動向量,決定為控制點的移動向量(步驟Sj_5)。此時,幀間預測部126進一步將該已決定的MV與預測移動向量各自的差分值編碼於串流,來作為差分MV。
最後,幀間預測部126使用該已決定的MV及編碼完畢參考圖片,對當前區塊進行移動補償,藉此生成該當前區塊的預測圖像(步驟Sj_6)。
[MV導出>仿射幀間模式]
以CU級別切換不同控制點數目(例如2個及3個)的仿射模式並訊號化時,有在編碼完畢區塊與當前區塊中控制點的數目不同的情況。圖30A及圖30B是用以說明在編碼完畢區塊與當前區塊中控制點的數目不同時的控制點之預測向量導出方法的概念圖。
例如,如圖30A所示,在以當前區塊具有左上角、右上角及左下角3個控制點,且鄰接於當前區塊的左邊的區塊A具有2個控制點之仿射模式進行編碼時,會導出投影到包含有區塊A之編碼完畢區塊的左上角及右上角的位置之移動向量v3
及v4
。接著,從已導出的移動向量v3
及v4
,算出當前區塊的左上角的控制點的預測移動向量v0
、及右上角的控制點的預測移動向量v1
。進而,從已導出的移動向量v0
及v1
,算出左下角的控制點的預測移動向量v2
。
例如,如圖30B所示,在以當前區塊具有左上角及右上角2個控制點,且鄰接於當前區塊的左邊的區塊A具有3個控制點之仿射模式進行編碼時,會導出投影到包含有區塊A之編碼完畢區塊的左上角、右上角及左下角的位置之移動向量v3
、v4
及v5
。接著,從已導出的移動向量v3
、v4
及v5
,算出當前區塊的左上角的控制點的預測移動向量v0
、及右上角的控制點的預測移動向量v1
。
圖29的步驟Sj_1中之當前區塊的控制點各自的預測移動向量之導出,亦可使用此預測移動向量導出方法。
[MV導出>DMVR]
圖31A是顯示合併模式及DMVR之關係的流程圖。
幀間預測部126以合併模式來導出當前區塊的移動向量(步驟Sl_1)。其次,幀間預測部126判定是否進行移動向量之估測,亦即判定是否進行移動估測(步驟Sl_2)。在此,幀間預測部126在判定不進行移動估測時(步驟Sl_2的否),將步驟Sl_1所導出的移動向量決定為對於當前區塊的最終移動向量(步驟Sl_4)。亦即,在此情況下是以合併模式來決定當前區塊的移動向量。
另一方面,在步驟Sl_1判定進行移動估測時(步驟Sl_2的是),幀間預測部126藉由估測步驟Sl_1所導出之移動向量所示的參考圖片的周邊區域,對當前區塊導出最終移動向量(步驟Sl_3)。亦即,在此情況下是以DMVR來決定當前區塊的移動向量。
圖31B是用以說明用來決定MV的DMVR處理之一例的概念圖。
首先,(例如在合併模式中)令設定於當前區塊的最適MVP為候選MV。接著,依照候選MV(L0),從L0方向的編碼完畢圖片即第1參考圖片(L0)特定出參考像素。同樣地,依照候選MV(L1),從L1方向的編碼完畢圖片即第2參考圖片(L1)特定出參考像素。藉由取該等參考像素的平均來生成模板。
其次,使用前述模板,分別估測第1參考圖片(L0)及第2參考圖片(L1)之候選MV的周邊區域,將成本為最小的MV決定為最終MV。再者,亦可使用例如模板的各像素值與估測區域的各像素值之差分值及候選MV值等來算出成本值。
再者,典型來說,在編碼裝置及後述之解碼裝置中,此處所說明的處理之構成及動作基本上是共通的。
就算並非此處所說明的處理例本身,只要是能估測候選MV的周邊來導出最終MV的處理,使用何種處理皆可。
[移動補償>BIO/OBMC]
在移動補償中,有生成預測圖像且修正該預測圖像的模式。該模式例如為後述的BIO及OBMC。
圖32是顯示預測圖像的生成之一例的流程圖。
幀間預測部126生成預測圖像(步驟Sm_1),且藉由例如上述任一種模式來修正該預測圖像(步驟Sm_2)。
圖33是顯示預測圖像的生成之其他例的流程圖。
幀間預測部126決定當前區塊的移動向量(步驟Sn_1)。其次,幀間預測部126生成預測圖像(步驟Sn_2),並判定是否進行修正處理(步驟Sn_3)。在此,幀間預測部126在判定進行修正處理時(步驟Sn_3的是),修正該預測圖像,藉此生成最終預測圖像(步驟Sn_4)。另一方面,幀間預測部126在判定不進行修正處理時(步驟Sn_3的否),不進行修正,將該預測圖像作為最終預測圖像來輸出(步驟Sn_5)。
又,在移動補償中,有在生成預測圖像時修正亮度的模式。該模式例如為後述的LIC。
圖34是顯示預測圖像的生成之其他例的流程圖。
幀間預測部126導出當前區塊的移動向量(步驟So_1)。其次,幀間預測部126判定是否進行亮度修正處理(步驟So_2)。在此,幀間預測部126在判定進行亮度修正處理時(步驟So_2的是),一邊進行亮度修正一邊生成預測圖像(步驟So_3)。也就是說,藉LIC來生成預測圖像。另一方面,幀間預測部126在判定不進行亮度修正處理時(步驟So_2的否),不進行亮度修正而藉由通常的移動補償來生成預測圖像(步驟So_4)。
[移動補償>OBMC]
亦可不僅使用藉由移動估測所得到的當前區塊的移動資訊,還使用鄰接區塊的移動資訊來生成幀間預測訊號。具體而言,亦可將基於藉由(參考圖片內的)移動估測所得到的移動資訊之預測訊號、與基於(當前圖片內的)鄰接區塊的移動資訊之預測訊號進行加權相加,藉此以當前區塊內的子區塊單位來生成幀間預測訊號。這種幀間預測(移動補償)有時稱作OBMC(overlapped block motion compensation:重疊區塊移動補償)。
在OBMC模式中,顯示OBMC用的子區塊的尺寸之資訊(例如稱作OBMC區塊尺寸)亦可以序列級別來訊號化。進而,顯示是否套用OBMC模式之資訊(例如稱作OBMC旗標)亦可以CU級別來訊號化。再者,該等資訊之訊號化之級別不必限定在序列級別及CU級別,亦可為其他級別(例如圖片級別、切片級別、圖塊級別、CTU級別或子區塊級別)。
針對OBMC模式之例更具體地加以說明。圖35及圖36是用以說明OBMC處理所進行的預測圖像修正處理之概要的流程圖及概念圖。
首先,如圖36所示,使用被分配到處理對象(當前)區塊之移動向量(MV),來取得通常的移動補償之預測圖像(Pred)。在圖36中,箭頭「MV」指向參考圖片,表示為了得到預測圖像,當前圖片的當前區塊正在參考何者。
其次,將已對編碼完畢的左鄰接區塊導出的移動向量(MV_L)套用(重新利用)於編碼對象區塊而取得預測圖像(Pred_L)。移動向量(MV_L)是由從當前區塊指向參考圖片的箭頭「MV_L」來表示。接著,將2個預測圖像Pred與Pred_L重疊,藉此進行預測圖像的第1次修正。這具有將鄰接區塊間的邊界混合的效果。
同樣地,將已對編碼完畢的上鄰接區塊導出的移動向量(MV_U)套用(重新利用)於編碼對象區塊而取得預測圖像(Pred_U)。移動向量(MV_U)是由從當前區塊指向參考圖片的箭頭「MV_U」來表示。接著,將預測圖像Pred_U重疊於已進行第1次修正的預測圖像(例如Pred及Pred_L),藉此進行預測圖像的第2次修正。這具有將鄰接區塊間的邊界混合的效果。藉由第2次修正所得到的預測圖像,為與鄰接區塊的邊界已被混合(已平滑化)之當前區塊的最終預測圖像。
再者,上述之例雖是使用左鄰接及上鄰接的區塊之2階段的修正方法,但該修正方法亦可為連右鄰接及/或下鄰接的區塊都使用的3階段或3階段以上的修正方法。
再者,進行重疊的區域亦可不是區塊整體的像素區域,而是僅區塊邊界附近之一部分的區域。
再者,在此針對為了從1張參考圖片將追加的預測圖像Pred_L及Pred_U相重疊並藉此得到1張預測圖像Pred而使用的OBMC預測圖像修正處理進行了說明。然而當根據複數個參考圖像來修正預測圖像時,亦可於複數個參考圖片之各個套用同樣的處理。在這種情況下,藉由進行基於複數個參考圖片的OBMC之圖像修正,而從各個參考圖片取得已修正的預測圖像,之後將該等取得的複數個修正預測圖像進一步重疊,藉此取得最終預測圖像。
再者,在OBMC中,對象區塊的單位可為預測區塊單位,亦可為將預測區塊進一步分割後的子區塊單位。
作為判定是否套用OBMC處理的方法,例如有使用obmc_flag的方法,前述obmc_flag是顯示是否套用OBMC處理的訊號。舉一具體例來說,編碼裝置亦可判定對象區塊是否屬於移動複雜的區域。屬於移動複雜的區域時,編碼裝置設定值1來作為obmc_flag,套用OBMC處理來進行編碼,不屬於移動複雜的區域時,設定值0來作為obmc_flag,不套用OBMC處理而進行區塊的編碼。另一方面,在解碼裝置中,則是將記述於串流(例如壓縮序列)的obmc_flag解碼,藉此因應該值來切換是否套用OBMC處理並進行解碼。
幀間預測部126在上述之例中是對矩形的當前區塊生成1個矩形的預測圖像。然而,幀間預測部126亦可對該矩形的當前區塊生成與矩形不同形狀的複數個預測圖像,並將該等複數個預測圖像結合,藉此生成最終的矩形之預測圖像。與矩形不同的形狀例如亦可為三角形。
圖37是用以說明2個三角形的預測圖像之生成的概念圖。
幀間預測部126對當前區塊內的三角形之第1分區使用該第1分區的第1MV來進行移動補償,藉此生成三角形的預測圖像。同樣地,幀間預測部126對當前區塊內的三角形之第2分區,使用該第2分區的第2MV來進行移動補償,藉此生成三角形的預測圖像。接著,幀間預測部126藉由結合該等預測圖像,來生成與當前區塊為相同矩形的預測圖像。
再者,在圖37所示之例中,第1分區及第2分區雖分別為三角形,但亦可為梯形,亦可分別為互相不同的形狀。進而,在圖37所示之例中,當前區塊雖是由2個分區所構成,但亦可由3個以上的分區所構成。
又,第1分區及第2分區亦可重複。亦即,第1分區及第2分區亦可包含有相同的像素區域。在此情況下,亦可使用第1分區之預測圖像及第2分區之預測圖像來生成當前區塊的預測圖像。
又,本例所示的是2個分區皆以幀間預測來生成預測圖像的例子,但亦可針對至少1個分區,藉由幀內預測來生成預測圖像。
[移動補償>BIO]
其次,針對導出移動向量的方法加以說明。首先,針對根據模型來導出移動向量的模式加以說明,且前述模型為假設等速直線運動之模型。此模式有時稱作BIO (bi-directional optical flow:雙向光流)模式。
圖38是用以說明假設等速直線運動的模型的概念圖。在圖38中,(vx
,vy
)表示速度向量,τ0
、τ1
各表示當前圖片(Cur Pic)與2個參考圖片(Ref0
,Ref1
)之間的時間上的距離。(MVx0
,MVy0
)表示對應於參考圖片Ref0
的移動向量,(MVx1
,MVy1
)表示對應於參考圖片Ref1
的移動向量。
此時在速度向量(vx
,vy
)為等速直線運動的假設下,(MVx0
,MVy0
)及(MVx1
,MVy1
)分別表示成(vx
τ0
,vy
τ0
)及(-vx
τ1
,-vy
τ1
),亦可採用以下的光流等式(2)。
[數3]
在此,I(k)
表示移動補償後之參考圖像k(k=0,1)的亮度值。此光流等式表示(i)亮度值的時間微分、(ii)水平方向的速度及參考圖像的空間梯度之水平成分的積、(iii)垂直方向的速度及參考圖像的空間梯度之垂直成分的積之和等於零。亦可根據此光流等式與赫米特內插法(Hermite interpolation)之組合,將從合併清單等所得到的區塊單位之移動向量以像素單位進行修正。
再者,亦可利用與根據假設等速直線運動之模型來導出移動向量的方法不同的方法,在解碼裝置側導出移動向量。例如,亦可根據複數個鄰接區塊的移動向量,以子區塊單位導出移動向量。
[移動補償>LIC]
其次,針對使用LIC(local illumination compensation:局部亮度補償)處理來生成預測圖像(預測)的模式之一例加以說明。
圖39是用以說明使用了LIC處理的亮度修正處理的預測圖像生成方法之一例的概念圖。
首先,從編碼完畢的參考圖片導出MV,取得對應於當前區塊的參考圖像。
其次,對當前區塊擷取表示亮度值在參考圖片與當前圖片中如何變化的資訊。此擷取是根據當前圖片中的編碼完畢左鄰接參考區域(周邊參考區域)及編碼完畢上鄰參考區域(周邊參考區域)的亮度像素值、與以導出的MV所指定的參考圖片內之同等位置的亮度像素值來進行。接著,使用表示亮度值如何變化的資訊,算出亮度修正參數。
對以MV指定的參考圖片內的參考圖像,進行套用前述亮度修正參數的亮度修正處理,藉此生成對於當前區塊的預測圖像。
再者,圖39中的前述周邊參考區域之形狀僅為一例,亦可使用除此之外的形狀。
又,在此雖針對從1張參考圖片生成預測圖像的處理加以說明,但從複數張參考圖片生成預測圖像的情況也一樣,亦可先以與上述同樣的方法對從各個參考圖片取得的參考圖像進行亮度修正處理後,再生成預測圖像。
作為判定是否套用LIC處理的方法,例如有使用lic_flag的方法,前述lic_flag為表示是否套用LIC處理的訊號。舉一具體例來說,在編碼裝置中,判定當前區塊是否屬於產生亮度變化之區域,若屬於產生亮度變化之區域,則設定值1來作為lic_flag並套用LIC處理來進行編碼,若不屬於產生亮度變化之區域,則設定值0來作為lic_flag且不套用LIC處理而進行編碼。另一方面,在解碼裝置中,亦可藉由將記述於串流之lic_flag解碼,而因應其值來切換是否套用LIC處理並進行解碼。
作為判定是否套用LIC處理之別的方法,例如還有依照周邊區塊是否套用了LIC處理來判定的方法。舉一具體例來說,在當前區塊為合併模式時,判定在合併模式處理中的MV導出之際選擇的周邊編碼完畢區塊是否套用了LIC處理且已編碼。因應其結果來切換是否套用LIC處理並進行編碼。再者,在本例的情況下,也是相同處理可套用於解碼裝置側的處理。
針對LIC處理(亮度修正處理)之態樣,已使用圖39加以說明,以下,說明其詳細。
首先,幀間預測部126從編碼完畢圖片即參考圖片,導出用於取得對應於編碼對象區塊之參考圖像的移動向量。
其次,幀間預測部126對編碼對象區塊使用左鄰接及上鄰接之編碼完畢周邊參考區域的亮度像素值、及以移動向量指定的參考圖片內之同等位置的亮度像素值,來擷取表示亮度值在參考圖片與編碼對象圖片中如何變化的資訊,而算出亮度修正參數。例如,令編碼對象圖片內之周邊參考區域內的某像素的亮度像素值為p0,且令與該像素同等位置之參考圖片內的周邊參考區域內的像素的亮度像素值為p1。幀間預測部126對周邊參考區域內的複數個像素算出將A×p1+B=p0最佳化的係數A及B,來作為亮度修正參數。
其次,幀間預測部126對以移動向量指定的參考圖片內的參考圖像使用亮度修正參數來進行亮度修正處理,藉此生成對於編碼對象區塊的預測圖像。例如,令參考圖像內的亮度像素值為p2,且令亮度修正處理後的預測圖像的亮度像素值為p3。幀間預測部126對參考圖像內的各像素算出A×p2+B=p3,藉此生成亮度修正處理後的預測圖像。
再者,圖39中之周邊參考區域的形狀僅為一例,亦可使用除此之外的形狀。又,亦可使用圖39所示之周邊參考區域的一部分。例如,亦可使用包含有從上鄰接像素及左鄰接像素分別間隔預定數的像素之區域來作為周邊參考區域。又,周邊參考區域不限於和編碼對象區塊鄰接的區域,亦可為和編碼對象區塊不鄰接的區域。關於像素的預定數亦可事先決定。
又,在圖39所示之例中,參考圖片內的周邊參考區域為以編碼對象圖片之移動向量從編碼對象圖片內的周邊參考區域來指定的區域,但亦可為以其他移動向量來指定的區域。例如,該其他移動向量亦可為編碼對象圖片內的周邊參考區域的移動向量。
再者,在此說明的雖然是編碼裝置100中的動作,但解碼裝置200中的動作,典型來說也是同樣的。
再者,LIC處理不只可套用於亮度,亦可套用於色差。此時,可分別對Y、Cb及Cr個別地導出修正參數,亦可對任一者使用共通的修正參數。
又,LIC處理亦可在子區塊單位下套用。例如,亦可使用當前子區塊的周邊參考區域、及以當前子區塊的MV來指定的參考圖片內的參考子區塊的周邊參考區域,來導出修正參數。
[預測控制部]
預測控制部128選擇幀內預測訊號(從幀內預測部124輸出的訊號)及幀間預測訊號(從幀間預測部126輸出的訊號)之任一者,將選擇的訊號作為預測訊號來輸出至減算部104及加算部116。
如圖1所示,在各種編碼裝置例中,預測控制部128亦可將輸入至熵編碼部110的預測參數輸出。熵編碼部110亦可根據從預測控制部128輸入的該預測參數、及從量化部108輸入的量化係數,來生成編碼位元串流(或序列)。預測參數亦可使用於解碼裝置。解碼裝置亦可接收編碼位元串流後解碼,並進行與幀內預測部124、幀間預測部126及預測控制部128中所進行的預測處理相同的處理。預測參數亦可包含有:選擇預測訊號(例如移動向量、預測類型、或在幀內預測部124或幀間預測部126中使用的預測模式);或,以幀內預測部124、幀間預測部126及預測控制部128中所進行的預測處理為基準或者表示該預測處理之任意的索引、旗標或值。
[編碼裝置的安裝例]
圖40是顯示編碼裝置100之安裝例的方塊圖。編碼裝置100具備處理器a1及記憶體a2。例如,圖1所示的編碼裝置100的複數個構成要素是藉由圖40所示的處理器a1及記憶體a2來安裝。
處理器a1為進行資訊處理的電路,且為可對記憶體a2進行存取的電路。例如,處理器a1是將動態圖像編碼之專用或通用的電子電路。處理器a1亦可為如CPU之處理器。又,處理器a1亦可為複數個電子電路的集合體。又,例如處理器a1亦可發揮圖1等所示之編碼裝置100之複數個構成要素中的複數個構成要素的功能。
記憶體a2是儲存有處理器a1用來將動態圖像編碼的資訊之專用或通用的記憶體。記憶體a2可為電子電路,亦可連接於處理器a1。又,記憶體a2亦可包含於處理器a1。又,記憶體a2亦可為複數個電子電路的集合體。又,記憶體a2可為磁碟或光碟等,亦可呈現為儲存裝置(storage)或記錄媒體等。又,記憶體a2可為非揮發性記憶體,亦可為揮發性記憶體。
例如,記憶體a2可儲存要編碼的動態圖像,亦可儲存對應於已編碼的動態圖像之位元列。又,記憶體a2亦可儲存處理器a1用來將動態圖像編碼的程式。
又,例如,記憶體a2亦可發揮圖1等所示之編碼裝置100的複數個構成要素中用來儲存資訊之構成要素的功能。例如,記憶體a2亦可發揮圖1所示之區塊記憶體118及幀記憶體122的功能。更具體而言,記憶體a2亦可儲存重構完畢區塊及重構完畢圖片等。
再者,在編碼裝置100中,可不安裝圖1等所示之複數個構成要素的全部,亦可不進行上述之複數個處理的全部。圖1等所示之複數個構成要素的一部分亦可包含於其他裝置,上述之複數個處理的一部分亦可藉其他裝置來執行。
[解碼裝置]
其次,針對可將例如從上述之編碼裝置100輸出之編碼訊號(編碼位元串流)解碼的解碼裝置加以說明。圖41是顯示實施形態之解碼裝置200的功能構成的方塊圖。解碼裝置200是以區塊單位來解碼動態圖像的動態圖像解碼裝置。
如圖41所示,解碼裝置200具備熵解碼部202、反量化部204、反轉換部206、加算部208、區塊記憶體210、迴路濾波部212、幀記憶體214、幀內預測部216、幀間預測部218、及預測控制部220。
解碼裝置200可藉由例如通用處理器及記憶體來實現。此情況下,當記憶體儲存的軟體程式藉由處理器來執行時,處理器是作為熵解碼部202、反量化部204、反轉換部206、加算部208、迴路濾波部212、幀內預測部216、幀間預測部218及預測控制部220來發揮功能。又,解碼裝置200亦可作為對應於熵解碼部202、反量化部204、反轉換部206、加算部208、迴路濾波部212、幀內預測部216、幀間預測部218及預測控制部220之專用的1個以上的電子電路來實現。
以下,在說明解碼裝置200整體的處理流程之後,再針對解碼裝置200包含的各構成要素加以說明。
[解碼處理的整體流程]
圖42是顯示解碼裝置200所進行之整體的解碼處理之一例的流程圖。
首先,解碼裝置200的熵解碼部202特定出固定尺寸的區塊(例如128×128像素)的分割樣式(步驟Sp_1)。此分割樣式為藉由編碼裝置100所選擇的分割樣式。接著,解碼裝置200對構成該分割樣式的複數個區塊分別進行步驟Sp_2~Sp_6的處理。
也就是說,熵解碼部202將解碼對象區塊(也稱作當前區塊)之被編碼的量化係數及預測參數進行解碼(具體而言是熵解碼)(步驟Sp_2)。
其次,反量化部204及反轉換部206對複數個量化係數進行反量化及反轉換,藉此將複數個預測殘差(亦即差分區塊)復原(步驟Sp_3)。
其次,由幀內預測部216、幀間預測部218及預測控制部220的全部或一部分所構成的預測處理部會生成當前區塊的預測訊號(也稱作預測區塊)(步驟Sp_4)。
其次,加算部208對差分區塊加上預測區塊,藉此將當前區塊重構成重構圖像(也稱作解碼圖像區塊)(步驟Sp_5)。
接著,生成此重構圖像後,迴路濾波部212對該重構圖像進行濾波(步驟Sp_6)。
接著,解碼裝置200判定圖片整體的解碼是否已完成(步驟Sp_7),當判定未完成時(步驟Sp_7的否),重複執行從步驟Sp_1開始的處理。
如圖示,步驟Sp_1~Sp_7的處理是藉由解碼裝置200依序地進行。或,該等處理中之一部分的複數個處理亦可並列進行,亦可進行順序之對調。
[熵解碼部]
熵解碼部202將編碼位元串流熵解碼。具體而言,熵解碼部202例如從編碼位元串流算術解碼成二值訊號。接著,熵解碼部202將二值訊號多值化(debinarize)。熵解碼部202以區塊單位將量化係數輸出至反量化部204。熵解碼部202亦可將編碼位元串流(參考圖1)所包含的預測參數輸出至實施形態之幀內預測部216、幀間預測部218及預測控制部220。幀內預測部216、幀間預測部218及預測控制部220可執行與編碼裝置側之幀內預測部124、幀間預測部126及預測控制部128所進行的處理相同的預測處理。
[反量化部]
反量化部204將從熵解碼部202輸入的解碼對象區塊(以下稱為當前區塊)之量化係數反量化。具體而言,反量化部204針對當前區塊的各個量化係數,根據對應於該量化係數的量化參數,將該量化係數反量化。接著,反量化部204將當前區塊之經反量化的量化係數(亦即轉換係數)輸出至反轉換部206。
[反轉換部]
反轉換部206將從反量化部204輸入的轉換係數反轉換,藉此復原預測誤差。
例如當從編碼位元串流解讀的資訊表示套用EMT或AMT時(例如AMT旗標為真),反轉換部206根據已解讀之表示轉換類型的資訊,將當前區塊的轉換係數反轉換。
又例如,當從編碼位元串流解讀的資訊表示套用NSST時,反轉換部206對轉換係數套用反再轉換。
[加算部]
加算部208藉由將從反轉換部206輸入的預測誤差與從預測控制部220輸入的預測樣本相加來重構當前區塊。接著,加算部208將已重構的區塊輸出至區塊記憶體210及迴路濾波部212。
[區塊記憶體]
區塊記憶體210是用以儲存以下區塊的記憶部:在幀內預測中參考的區塊,且是解碼對象圖片(以下稱為當前圖片)內的區塊。具體而言,區塊記憶體210儲存從加算部208輸出的重構區塊。
[迴路濾波部]
迴路濾波部212對藉由加算部208重構後的區塊施加迴路濾波,並將濾波後的重構區塊輸出至幀記憶體214及顯示裝置等。
當從編碼位元串流解讀的表示ALF之開啟/關閉的資訊表示ALF開啟時,根據局部的梯度之方向及活性度來從複數個濾波器中選擇1個濾波器,將選擇的濾波器套用於重構區塊。
[幀記憶體]
幀記憶體214是用以儲存幀間預測中使用的參考圖片之記憶部,有時也稱作幀緩衝器。具體而言,幀記憶體214儲存藉由迴路濾波部212濾波後的重構區塊。
[預測處理部(幀內預測部、幀間預測部、預測控制部)]
圖43是顯示在解碼裝置200之預測處理部進行的處理之一例的流程圖。再者,預測處理部是由幀內預測部216、幀間預測部218及預測控制部220的全部或一部分的構成要素所構成。
預測處理部生成當前區塊的預測圖像(步驟Sq_1)。此預測圖像也稱作預測訊號或預測區塊。再者,預測訊號例如有幀內預測訊號或幀間預測訊號。具體而言,預測處理部使用藉由進行預測區塊之生成、差分區塊之生成、係數區塊之生成、差分區塊之復原、及解碼圖像區塊之生成而得到的重構圖像,來生成當前區塊的預測圖像。
重構圖像例如可為參考圖片之圖像,亦可為包含有當前區塊的圖片即當前圖片內的解碼完畢的區塊之圖像。當前圖片內的解碼完畢的區塊例如為當前區塊的鄰接區塊。
圖44是顯示在解碼裝置200之預測處理部進行的處理之其他例的流程圖。
預測處理部判定用以生成預測圖像的方式或模式(步驟Sr_1)。例如,此方式或模式亦可根據例如預測參數等來判定。
預測處理部在判定出用以生成預測圖像的模式為第1方式時,依照該第1方式來生成預測圖像(步驟Sr_2a)。又,預測處理部在判定出用以生成預測圖像的模式為第2方式時,依照該第2方式來生成預測圖像(步驟Sr_2b)。又,預測處理部在判定出用以生成預測圖像的模式為第3方式時,依照該第3方式來生成預測圖像(步驟Sr_2c)。
第1方式、第2方式及第3方式為用以生成預測圖像之互異的方式,且亦可分別為例如幀間預測方式、幀內預測方式及這些以外的預測方式。在該等預測方式中,亦可使用上述之重構圖像。
[幀內預測部]
幀內預測部216根據從編碼位元串流解讀的幀內預測模式,參考儲存於區塊記憶體210之當前圖片內的區塊來進行幀內預測,藉此生成預測訊號(幀內預測訊號)。具體而言,幀內預測部216參考鄰接於當前區塊的區塊之樣本(例如亮度值、色差值)來進行幀內預測,藉此生成幀內預測訊號,並將幀內預測訊號輸出至預測控制部220。
再者,當在色差區塊的幀內預測中選擇了參考亮度區塊的幀內預測模式時,幀內預測部216亦可根據當前區塊的亮度成分來預測當前區塊的色差成分。
又,當從編碼位元串流解讀的資訊表示套用PDPC時,幀內預測部216根據水平/垂直方向的參考像素的梯度來修正幀內預測後的像素值。
[幀間預測部]
幀間預測部218參考儲存於幀記憶體214的參考圖片來預測當前區塊。預測是以當前區塊或當前區塊內的子區塊(例如4×4區塊)之單位來進行。例如,幀間預測部218使用從編碼位元串流(例如從熵解碼部202輸出的預測參數)解讀的移動資訊(例如移動向量)來進行移動補償,藉此生成當前區塊或子區塊的幀間預測訊號,並將幀間預測訊號輸出至預測控制部220。
當從編碼位元串流解讀的資訊表示套用OBMC模式時,幀間預測部218不僅可使用藉由移動估測所得到的當前區塊的移動資訊,還可使用鄰接區塊的移動資訊來生成幀間預測訊號。
又,當從編碼位元串流解讀的資訊表示套用FRUC模式時,幀間預測部218依照從編碼位元串流解讀的樣式匹配的方法(雙向匹配或模板匹配)來進行移動估測,藉此導出移動資訊。接著,幀間預測部218使用導出的移動資訊來進行移動補償(預測)。
又,當套用BIO模式時,幀間預測部218根據假設等速直線運動的模型來導出移動向量。又,當從編碼位元串流解讀的資訊表示套用仿射移動補償預測模式時,幀間預測部218根據複數個鄰接區塊的移動向量,以子區塊單位來導出移動向量。
[MV導出>一般幀間模式]
當從編碼位元串流解讀的資訊表示套用一般幀間模式時,幀間預測部218根據從編碼串流解讀的資訊來導出MV,並使用該MV來進行移動補償(預測)。
圖45是顯示解碼裝置200中之一般幀間模式所進行的幀間預測的例子的流程圖。
解碼裝置200的幀間預測部218依每個區塊,對該區塊進行移動補償。幀間預測部218根據時間上或空間上位於當前區塊的周圍之複數個解碼完畢區塊的MV等之資訊,對該當前區塊取得複數個候選MV(步驟Ss_1)。也就是說,幀間預測部218製作候選MV清單。
其次,幀間預測部218從在步驟Ss_1取得的複數個候選MV之中,依照預定的優先順序擷取N個(N為2以上的整數)候選MV之各個,來作為預測移動向量候選(也稱作預測MV候選)(步驟Ss_2)。再者,該優先順序亦可對N個預測MV候選之各個事先決定。
其次,幀間預測部218從已輸入的串流(亦即編碼位元串流)將預測移動向量選擇資訊解碼,使用該已解碼的預測移動向量選擇資訊,從該N個預測MV候選之中選擇1個預測MV候選,來作為當前區塊的預測移動向量(也稱作預測MV)(步驟Ss_3)。
其次,幀間預測部218從已輸入的串流將差分MV解碼,將該已解碼的差分MV即差分值,與已選擇的預測移動向量相加,藉此導出當前區塊的MV(步驟Ss_4)。
最後,幀間預測部218使用該已導出的MV及解碼完畢參考圖片對當前區塊進行移動補償,藉此生成該當前區塊的預測圖像(步驟Ss_5)。
[預測控制部]
預測控制部220選擇幀內預測訊號及幀間預測訊號之任一者,將已選擇的訊號作為預測訊號輸出至加算部208。整體上,解碼裝置側的預測控制部220、幀內預測部216及幀間預測部218的構成、功能及處理亦可與編碼裝置側的預測控制部128、幀內預測部124及幀間預測部126的構成、功能及處理相對應。
[解碼裝置的安裝例]
圖46是顯示解碼裝置200之安裝例的方塊圖。解碼裝置200具備處理器b1及記憶體b2。例如,圖41所示的解碼裝置200的複數個構成要素是藉由圖46所示的處理器b1及記憶體b2來安裝。
處理器b1是進行資訊處理的電路,且為可對記憶體b2進行存取的電路。例如,處理器b1是將已編碼之動態圖像(亦即編碼位元串流)解碼之專用或通用的電子電路。處理器b1亦可為如CPU之處理器。又,處理器b1亦可為複數個電子電路的集合體。又,例如處理器b1亦可發揮圖41等所示之解碼裝置200之複數個構成要素中的複數個構成要素的功能。
記憶體b2是儲存有處理器b1用來將編碼位元串流解碼的資訊之專用或通用的記憶體。記憶體b2可為電子電路,亦可連接於處理器b1。又,記憶體b2亦可包含於處理器b1。又,記憶體b2亦可為複數個電子電路的集合體。又,記憶體b2可為磁碟或光碟等,亦可呈現為儲存裝置或記錄媒體等。又,記憶體b2可為非揮發性記憶體,亦可為揮發性記憶體。
例如,記憶體b2可儲存動態圖像,亦可儲存編碼位元串流。又,記憶體b2亦可儲存處理器b1用來將編碼位元串流解碼的程式。
又,例如,記憶體b2亦可發揮在圖41等所示之解碼裝置200之複數個構成要素中用來儲存資訊之構成要素的功能。具體而言,記憶體b2亦可發揮圖41所示之區塊記憶體210及幀記憶體214的功能。更具體而言,記憶體b2亦可儲存重構完畢區塊及重構完畢圖片等。
再者,在解碼裝置200中,亦可不安裝圖41等所示之複數個構成要素的全部,亦可不進行上述之複數個處理的全部。圖41等所示之複數個構成要素的一部分亦可包含於其他裝置,上述之複數個處理的一部分亦可藉由其他裝置來執行。
[各用語的定義]
舉一例來說,各用語亦可為如下的定義。
圖片為單色(monochrome)格式之複數個亮度樣本的陣列,或4:2:0、4:2:2及4:4:4的彩色格式之複數個亮度樣本的陣列及複數個色差樣本的2個對應陣列。圖片亦可為幀(frame)或場(field)。
幀是複數個樣本列0、2、4...所產生的上場(top field)以及複數個樣本列1、3、5...所產生的下場(bottom field)的組成物。
切片是1個獨立切片區段(slice segment)、及(如果有)相同存取單元內的(如果有)下一個獨立切片區段之前的所有後續之附屬切片區段所包含的整數個編碼樹單元。
圖塊是圖片中之特定的圖塊行及特定的圖塊列內的複數個編碼樹區塊的矩形區域。圖塊仍然可套用跨越圖塊的邊緣的迴路濾波,但亦可為刻意令其可獨立地解碼及編碼之幀的矩形區域。
區塊是複數個樣本的M×N(N列M行)陣列,或複數個轉換係數的M×N陣列。區塊亦可為由1個亮度及2個色差的複數個矩陣所構成之複數個像素的正方形或矩形的區域。
CTU(編碼樹單元)可為具有3個樣本陣列的圖片之複數個亮度樣本的編碼樹區塊,亦可為複數個色差樣本的2個對應編碼樹區塊。或,CTU亦可為單色圖片與使用語法(syntax)構造來編碼的圖片之任一種圖片的複數個樣本的編碼樹區塊,其中前述語法構造使用於3個分離的彩色平面及複數個樣本的編碼中。
超級區塊構成1個或2個模式資訊區塊,或,亦可為遞迴地分割成4個32×32區塊且可進一步分割的64×64像素的正方形區塊。
[第1態樣]
以下,說明本揭示的第1態樣之編碼裝置100、解碼裝置200、編碼方法及解碼方法。
圖47是顯示第1態樣之幀間預測處理的一例的流程圖。以下,就解碼裝置200中之幀間預測處理,針對一例來加以說明。
解碼裝置200中之幀間預測部218導出基準移動向量,前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於基準移動向量的第1移動向量,根據基準移動向量與第1移動向量的差分來導出差分移動向量,判定差分移動向量是否大於閾值,在判定為差分移動向量大於閾值的情況下,變更第1移動向量,在判定為差分移動向量不大於閾值的情況下,不變更第1移動向量,並使用變更後的第1移動向量或未變更的第1移動向量來解碼處理對象區塊。例如,基準移動向量與處理對象區塊內的第1像素集相對應,第1移動向量與處理對象區塊內之不同於第1像素集的第2像素集相對應。
以下,一邊參考圖式一邊更具體地說明幀間預測處理。再者,以下說明的基準移動向量及第1移動向量僅為一例,不限於該例。
首先,在步驟S1001中,幀間預測部218導出處理對象區塊內之第1像素集的基準移動向量。以下,一邊參考圖48一邊更具體地說明步驟S1001的處理。
圖48是顯示處理對象區塊之一例的圖。如圖48所示,處理對象區塊亦可由複數個子區塊(子區塊0~子區塊5)所構成。又,各子區塊亦可各自具有不同的第1移動向量(MV0
~MV5
)。第1像素集的一例亦可為子區塊0。此時,基準移動向量亦可為處理對象區塊內的複數個第1移動向量當中的1個。在該例中,基準移動向量為MV0
。
第1像素集的其他例亦可為處理對象區塊整體。在該例中,基準移動向量為處理對象區塊內之全部的子區塊的第1移動向量的平均,也就是從MV0
到MV5
的平均。
接下來,在步驟S1002中,幀間預測部218導出處理對象區塊內之第2像素集的第1移動向量。第2像素集與第1像素集不同。第2像素集的一例亦可為子區塊2。在該例中,第2像素集的第1移動向量為MV2
。
又,第2像素集的其他例亦可為子區塊1。在該例中,第1移動向量為MV1
。
接下來,在步驟S1003中,幀間預測部218根據第1像素集的基準移動向量與第2像素集的第1移動向量之差分來導出差分移動向量。基準移動向量之值的一例亦可為(-3,4)。第1移動向量的一例亦可為(16,5)。因此,第1移動向量與基準移動向量的差分移動向量為(-19,-1)。
接下來,在步驟S1004中,幀間預測部218判定在步驟S1003所導出的差分移動向量是否大於閾值。閾值亦可為1個組的第1值(以下稱為第1閾值)及第2值(以下稱為第2閾值)。閾值之一例為(10,20)。以下,針對該判定處理之一例加以說明。
當在步驟S1003所導出之差分移動向量之水平成分的絕對值大於第1閾值、或差分移動向量之垂直成分的絕對值大於第2閾值時,幀間預測部218判定為差分移動向量大於閾值(步驟S1004的是)。換言之,只要差分移動向量之水平成分的絕對值及垂直成分的絕對值之任一者大於閾值,就會判定為差分移動向量大於閾值。例如,步驟S1003所例示之差分移動向量(-19,-1)之水平成分的絕對值若與第1閾值作比較,由於|-19|>10,因此判定為差分移動向量大於閾值。在此情況下,幀間預測部218會變更第1移動向量。關於變更的詳細,於步驟S1006加以說明。
另一方面,當差分移動向量之水平成分的絕對值不大於閾值的第1值,且差分移動向量之垂直成分的絕對值不大於第2閾值時,幀間預測部218判定為差分移動向量不大於閾值(步驟S1004的否)。換言之,若差分移動向量之水平成分的絕對值及垂直成分的絕對值皆在閾值以下,則判定為差分移動向量在閾值以下。幀間預測部218在判定為差分移動向量不大於閾值的情況下(步驟S1004的否),不變更第1移動向量(步驟S1005)。
接下來,在步驟S1006中,幀間預測部218在判定為差分移動向量大於閾值的情況下(步驟S1004的是),使用將差分移動向量剪截(clip)後的值來變更第1移動向量。此時,差分移動向量(-19,-1)被剪截成(-10,-1)。如上述,差分移動向量之水平成分的絕對值|-19|大於閾值(10,20)的第1閾值10,因此差分移動向量之水平成分的絕對值被剪截成與第1閾值一致。因此,剪截後之差分移動向量為(-10,-1)。
接下來,幀間預測部218使用剪截後之差分移動向量與基準移動向量來變更第1移動向量。例如,變更後的第1移動向量為(-3,4)-(-10,-1)=(7,5)。
在步驟S1007中,幀間預測部218使用變更後的第1移動向量或未變更的第1移動向量來解碼第2像素集。在S1001~S1006的例子中,子區塊2是使用變更後的移動向量(7,5)來解碼。
再者,圖47所示之處理1000亦可為編碼裝置的處理。
處理1000可套用於處理對象區塊內之全部的子區塊。當處理1000套用於處理對象區塊內之全部的子區塊時,處理對象區塊亦可使用仿射模式來進行預測處理。又,當處理1000套用於處理對象區塊內之全部的子區塊時,處理對象區塊亦可使用ATMVP(Alternative Temporal Motion Vector Prediction:可替代的時間移動向量預測)模式來進行預測處理。
再者,ATMVP模式是被分類為合併模式之子區塊模式的一例,例如,在由鄰接於當前區塊左下的區塊之MV(MV0
)所指定的編碼完畢參考圖片中,特定出與該當前區塊相對應的時間MV參考區塊,再針對處理對象區塊內的各子區塊,特定出與該時間MV參考區塊內之該子區塊相對應的區域在編碼時所使用的MV。再者,關於子區塊單位的ATMVP模式,是於後文中使用圖50來敘述。
又,亦可使用在處理對象區塊之特定的子區塊變更後的第1移動向量,來更新處理對象區塊之其他子區塊的第1移動向量。以下,一邊參考圖47及圖48一邊說明處理例。
例如,將子區塊0的MV0
定為基準移動向量,將子區塊2的MV2
定為第1移動向量,使用處理1000來決定變更後的第1移動向量。子區塊2之變更後的第1移動向量是以MV2
’=(V2x
’,V2y
’)來表示。使用基準移動向量MV0
及變更後的第1移動向量MV2
’,利用下述式來算出處理對象區塊內之子區塊2以外的子區塊i(i=1,3,4,5)變更後的第1移動向量MVi
’=(Vix
’,Viy
’)。
Vix
’=(V2x
’-V0x
)*POSix
/W-(V2y
’-V0y
)*POSiy
/W+V0x
Viy
’=(V2y
’-V0y
)*POSix
/W+(V2x
’-V0x
)*POSiy
/W+V0y
且,當MVi
’不大於閾值時,將MVi
更新成MVi
’, 使用MVi
來解碼子區塊i。POSix
及POSiy
為子區塊i的水平位置及垂直位置。
在圖48之例中,
POS1x
=W/2,POS1y
=0
POS3x
=0,POS3y
=H
POS4x
=W/2,POS4y
=H
POS5x
=W,POS5y
=H
W及H為處理對象區塊中之子區塊2的水平位置及垂直位置(例如左下角的X座標及Y座標)。
閾值亦可對應於處理對象區塊的尺寸。例如,處理對象區塊的尺寸愈大,閾值愈大。
又,閾值亦可對應於參考圖片的數目。例如,參考圖片的數目愈多,閾值愈小。
閾值亦可從標頭區域解碼出來。再者,在編碼中,閾值亦可編碼於SPS標頭、PPS標頭或切片標頭等的標頭區域。
閾值亦可預先決定而不從串流解碼出來。再者,在編碼中,閾值亦可預先決定而不編碼於串流。
閾值亦可決定成用來限制以下情況:以預定之預測模式來對處理對象區塊進行移動補償處理(預測處理)時的最壞情況下的記憶體存取量,成為以該預測模式以外的預測模式按照每8×8像素來對處理對象區塊進行雙向移動補償處理(預測處理)時的記憶體存取量以下。預定的預測模式例如是仿射模式。以下,說明限制的例子。
「Mem_base」表示:以預定之預測模式以外的預測模式來對處理對象區塊按照每8×8像素進行雙向預測移動補償處理(亮度值)時,以1個8×8區塊為1單位之最壞情況下的記憶體存取量。
以預定的預測模式來對處理對象區塊(尺寸:M×N)進行移動補償處理(亮度值)時的最壞情況的記憶體存取量,以「Mem_CU」表示,對於該記憶體存取量的閾值「Mem_th」,使用「Mem_base」表示如下。
Mem_th=M×N/(8×8)*MC_base
「Mem_CU」是限制成不大於「Mem_th」。以下,針對算出閾值的處理例加以說明。
假設亮度訊號之每1像素的尺寸為1位元組,且移動補償處理之濾波的抽頭(tap)數為8抽頭的情況,Mem_base=(8+7)*(8+7)*2=450(位元組單位)。
假設處理對象區塊的預測模式為仿射模式,處理對象區塊的尺寸為64×64像素,參考圖片的數目為2,Mem_th=64/8*64/8*450=28800。
假設「H」及「V」分別表示閾值的第1及第2成分的閾值。
以仿射模式以外的一般幀間模式來進行預測處理時的最壞條件是以下的情況:處理對象區塊被分成8×8像素的區塊,8×8像素的區塊全部以雙向預測來進行移動補償處理。以仿射模式來進行預測處理時之可參考的記憶體的範圍,是決定成不超過該最壞條件的記憶體存取量。假設以下述式[1]來算出仿射模式下可參考之記憶體的範圍。使仿射模式之記憶體存取的範圍成為Mem_th(例如28800)以下並算出H與V。再者,這裡是以該仿射模式會進行雙向預測的情況為例加以說明。
Mem_CU=(64+7+2*H)(64+7+2*V)*2≦28800[1]
假設H=V,解開式[1],H=V=24。
再者,閾值之上述的算出處理,亦適用於不同尺寸及不同參考圖片數的處理對象區塊。圖49是顯示已算出的閾值之例的圖。再者,在圖49中雖是顯示H=V之例,但亦可為H>V、H<V。
如圖49所示,在對處理對象區塊進行單向預測的情況下(參考幀數=1)和進行雙向預測的情況下(參考幀數=2),閾值不同。在上述之式[1]的例子中,以仿射模式來預測之處理對象區塊的尺寸為64×64,進行雙向預測時,也就是參考2張參考圖片時,第1閾值H及第2閾值V都變成24。例如,對以仿射模式來預測之64×64尺寸的處理對象區塊進行單向預測時,也就是只參考1張參考圖片時,第1閾值H及第2閾值V都變成49。在圖49中,使用上述之式[1],算出能以仿射模式來預測之全部的區塊尺寸的閾值並加以表格化。
[子區塊單位的ATMVP模式之說明]
圖50是用以說明子區塊單位的ATMVP模式的圖。
在合併模式中,是從參考處理完畢區塊而生成之MV(移動向量)候選清單之中選擇1個候選MV,來決定處理對象區塊的MV。作為登錄於該MV候選清單的1個候選,有ATMVP模式的候選MV。
在子區塊單位的ATMVP模式中,首先,參考鄰接於處理對象區塊左下的區塊之MV(MV0),來特定出由MV0所指定之編碼完畢參考圖片中之與處理對象區塊相對應的時間MV參考區塊。
其次,針對處理對象區塊內的各子區塊,特定出其在時間MV參考區塊中所對應的區域在編碼時使用的MV。接著,參考該MV來因應於時間間隔進行縮放,藉此取得各子區塊的MV。
接著,使用該MV來對每個子區塊進行移動補償以生成預測圖像,並生成其與輸入圖像的差分圖像,再對處理對象區塊內的差分圖像,以處理對象區塊為單位來套用正交轉換及量化處理。
再者,在圖50中是使用鄰接於左下的區塊來作為參考MV0
的區塊,但亦可使用其以外的區塊。
又,子區塊的尺寸可以構成為4×4,也可以構成為8×8,也可以構成為該等尺寸以外的尺寸。又,也可以構成為能夠以切片或圖片等的單位來切換子區塊的尺寸。
再者,此處說明的雖然是在編碼中的處理,但在解碼中也是同樣的處理。
[第1態樣之技術上的好處]
在本揭示的第1態樣中,會將第1移動向量的導出處理導入至幀間預測處理。如上述,以將處理對象區塊內之複數個第1移動向量的差異設限在預定之範圍內的方式來選擇適當的第1移動向量之處理,可刪減幀間預測處理的記憶體頻寬。
[第2態樣]
以下,說明本揭示之第2態樣的編碼裝置100、解碼裝置200、編碼方法及解碼方法。在此是以不同於第1態樣的點為中心加以說明,與第1態樣重複的內容則省略說明。
圖51是顯示第2態樣之幀間預測處理的一例的流程圖。以下,就解碼裝置200中之幀間預測處理,針對一例來加以說明。
解碼裝置200中之幀間預測部218導出基準移動向量,前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於基準移動向量的第1移動向量,根據基準移動向量與第1移動向量的差分來導出差分移動向量,判定差分移動向量是否大於閾值,在判定為差分移動向量大於閾值的情況下,變更第1移動向量,在判定為差分移動向量不大於閾值的情況下,不變更第1移動向量,並使用變更後的第1移動向量或未變更的第1移動向量來解碼處理對象區塊。例如,控制點為處理對象區塊之仿射模式的控制點,且幀間預測部218導出控制點的移動向量來作為基準移動向量。
以下,一邊參考圖式一邊更具體地說明幀間預測處理。再者,以下說明的基準移動向量及第1移動向量僅為一例,不限於該例。
首先,在步驟S2001中,幀間預測部218導出處理對象區塊內之第1像素集的基準移動向量。該基準移動向量是處理對象區塊之控制點的移動向量。以下,一邊參考圖52一邊更具體地說明步驟S2001的處理。再者,步驟S2002到S2007的處理,與在第1態樣中說明過的圖47之步驟S1002到S1007的處理相同。再者,圖51所示之處理2000亦可為編碼裝置的處理。
圖52是顯示處理對象區塊之控制點的移動向量之例的圖。圖52的(a)是用以說明具有2個控制點之仿射模式下的子區塊單位之移動向量的導出之一例的圖。圖52的(b)是用以說明具有3個控制點之仿射模式下的子區塊單位之移動向量的導出之一例的圖。再者,在圖52的(a)及圖52的(b)中,省略了處理對象區塊內的子區塊之圖示。例如,如圖48所示,處理對象區塊亦可由複數個子區塊(子區塊0~子區塊5)所構成。又,各子區塊亦可各自具有不同的第1移動向量(MV0
~MV5
)。又,例如,第1像素集可為子區塊0,亦可為處理對象區塊整體。
在圖52的(a)及圖52的(b)中,處理對象區塊之控制點是根據鄰近的解碼完畢子區塊的移動向量而導出。例如,根據鄰接區塊的移動向量來導出處理對象區塊之左上角控制點的移動向量(以下稱為左上角控制向量)mv0
,同樣地,根據鄰接區塊的移動向量來導出處理對象區塊之右上角控制點的移動向量(以下稱為右上角控制向量)mv1
。又,例如,根據鄰接區塊的移動向量來導出處理對象區塊之左下角控制點的移動向量(以下稱為左下角控制向量)mv2
。
幀間預測部218亦可將該等複數個控制點之中的至少1個控制點的移動向量,導出為基準移動向量。例如,在4參數之仿射移動模型的情況下,亦可至少根據左上角控制向量mv0
或右上角控制向量mv1來導出基準移動向量,在6參數之仿射移動模型的情況下,亦可至少根據左上角控制向量mv0
、右上角控制向量mv1
或左下角控制向量mv2
來導出基準移動向量。
再者,基準移動向量亦可為預先決定之1個控制點的移動向量。例如,基準移動向量亦可為左上角控制向量mv0
。此時,亦可在4參數的仿射移動模型及6參數的仿射移動模型雙方中,將基準移動向量設成mv0
。
又,亦可以複數個控制點的移動向量的平均來導出基準移動向量。例如,亦可以以下方式來導出基準移動向量:左上角控制向量mv0
及右上角控制向量mv1
的平均;左上角控制向量mv0
、右上角控制向量mv1
及左下角控制向量mv2
的平均;左上角控制向量mv0
及左下角控制向量mv2
的平均;或,右上角控制向量mv1
及左下角控制向量mv2
的平均。
又,亦可以複數個控制點之移動向量的組合來導出基準移動向量。例如,亦可在該組合中,將複數個控制點之移動向量的水平成分的絕對值之中的最大絕對值當作基準移動向量的水平成分,並將複數個控制點之移動向量的垂直成分的絕對值之中的最大絕對值當作基準移動向量的垂直成分。例如,當左上角控制向量mv0
為(-3,8),右上角控制向量mv1
為(-5,4),左下角控制向量mv2
為(10,-6)時,基準移動向量為(10,8)。
又,例如,亦可在該組合中,將複數個控制點之移動向量的水平成分的絕對值之中的最小絕對值當作基準移動向量的水平成分,並將複數個控制點之移動向量的垂直成分的絕對值之中的最小絕對值當作基準移動向量的垂直成分。例如,當左上角控制向量mv0
為(-3,8),右上角控制向量mv1
為(-5,4),左下角控制向量mv2
為(10,-6)時,基準移動向量為(3,4)。
接下來,針對使用複數個控制點的移動向量來導出處理對象區塊內之各子區塊的移動向量的方法加以說明。在圖52的(a)例中,藉由以下的式(3)來投影2個控制點的移動向量mv0
及mv1
,而導出處理對象區塊內之各子區塊的移動向量(mvx
,mvy
)。
[數4]
在此,x及y分別表示子區塊中心的水平位置及垂直位置,W表示處理對象區塊(CU)的寬度,H表示處理對象區塊(CU)的高度。
又,在圖52的(b)例中,藉由以下的式(4)來投影3個控制點的移動向量mv0
、mv1
及mv2
,而導出處理對象區塊內之各子區塊的移動向量(mvx
,mvy
)。
[數5]
控制點數目不同(例如2個和3個)的仿射模式,亦可以CU級別來切換並予以訊號化。再者,表示在CU級別下使用的仿射模式的控制點數目之資訊,亦可以其他級別(例如序列級別、圖片級別、切片級別、圖塊級別、CTU級別或子區塊級別)來予以訊號化。
又,在這種具有3個控制點的仿射模式中,左上、右上及左下角控制點的移動向量之導出方法亦可包含有多種不同的模式。例如,仿射模式中有仿射一般幀間模式和仿射合併模式2種模式。
[第2態樣之技術上的好處]
在本揭示的第2態樣中,會將基準移動向量的導出處理導入至幀間預測處理。如上述,以將處理對象區塊內之複數個第1移動向量的差異設限在預定之範圍內的方式來導出適當的基準移動向量之處理,可比第1態樣更刪減幀間預測處理的記憶體頻寬。
[處理之代表例]
上述所示之編碼裝置100及解碼裝置200的處理之代表例顯示如下。
圖53是顯示編碼裝置100所進行之動作的流程圖。編碼裝置100具備電路及連接於電路的記憶體。編碼裝置100所具備的電路及記憶體亦可對應於圖40所示之處理器a1及記憶體a2。編碼裝置100的電路在動作中進行如下。
例如,編碼裝置100的電路導出基準移動向量(S3001),前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於基準移動向量的第1移動向量(S3002),根據基準移動向量與第1移動向量的差分來導出差分移動向量(S3003),判定差分移動向量是否大於閾值(S3004),在判定為差分移動向量大於閾值的情況下(S3004的是),變更第1移動向量(S3006),在判定為差分移動向量不大於閾值的情況下(S3004的否),不變更第1移動向量(S3005),並使用變更後的第1移動向量或未變更的第1移動向量來編碼處理對象區塊(S3007)。
藉此,編碼裝置100能夠以將分割成複數個子區塊之處理對象區塊內的複數個移動向量的差異設限在預定之範圍內的方式,來調整移動向量。因此,相較於移動向量的差異比預定之範圍大的情況,應參考的像素數會變少,所以可將從記憶體轉送的資料量抑制在預定的範圍內。因此,編碼裝置100可降低幀間預測處理中的記憶體存取量,所以編碼效率會提升。
例如,亦可為基準移動向量與處理對象區塊內的第1像素集相對應,第1移動向量與處理對象區塊內之不同於第1像素集的第2像素集相對應。
藉此,編碼裝置100可使用根據第1像素集所決定的基準移動向量、及根據第2像素集所決定的第1移動向量,來適當地控制處理對象區塊內之複數個移動向量的差異。
例如,編碼裝置100的電路在判定為差分移動向量大於閾值的情況下,亦可使用將差分移動向量剪截後的值來變更第1移動向量。
藉此,編碼裝置100能夠以將第1移動向量的差異設限在預定之範圍內的方式來變更第1移動向量。因此,編碼裝置100可降低幀間預測處理中的記憶體存取量,所以編碼效率會提升。
例如,編碼裝置100的電路亦可根據鄰接於處理對象區塊之編碼完畢區塊的移動向量,來導出處理對象區塊的控制點,並且導出控制點的移動向量,即處理對象區塊的基準移動向量。
藉此,編碼裝置100可根據鄰接於處理對象區塊之編碼完畢區塊的移動向量來導出處理對象區塊的基準移動向量,所以預測精度會提升。
例如,控制點亦可為處理對象區塊之仿射模式的控制點,且編碼裝置100的電路導出控制點的移動向量即基準移動向量。
藉此,編碼裝置100可將處理對象區塊以子區塊單位來進行預測,所以預測精度會提升。
例如,控制點亦可位於處理對象區塊的左上角、右上角及左下角的至少1處。
藉此,位於處理對象區塊之角的控制點的移動向量會被導出為基準移動向量,因此編碼裝置100能夠以將處理對象區塊內之複數個子區塊之第1移動向量的差異設限在預定之範圍內的方式來進行調整。因此,編碼裝置100可降低幀間預測處理中的記憶體存取量,所以編碼效率會提升。
例如,編碼裝置100的電路亦可將處理對象區塊的複數個控制點之中的至少1個控制點的移動向量,導出為基準移動向量。
藉此,編碼裝置100可將處理對象區塊之至少1個控制點的移動向量當作基準移動向量,並導出該基準移動向量與第1移動向量的差分。
例如,前述基準移動向量亦可是以複數個控制點的移動向量的平均來被導出。
藉此,編碼裝置100可將處理對象區塊之複數個控制點的移動向量的平均當作基準移動向量,並導出該基準移動向量與第1移動向量的差分。
例如,前述基準移動向量亦可是以複數個控制點之移動向量的組合來被導出。例如,亦可在該組合中,將複數個控制點之移動向量的水平成分的絕對值之中的最大絕對值當作基準移動向量的水平成分,並將複數個控制點之移動向量的垂直成分的絕對值之中的最大絕對值當作基準移動向量的垂直成分。又,例如,亦可在該組合中,將複數個控制點之移動向量的水平成分的絕對值之中的最小絕對值當作基準移動向量的水平成分,並將複數個控制點之移動向量的垂直成分的絕對值之中的最小絕對值當作基準移動向量的垂直成分。
藉此,處理對象區塊內之第1移動向量的差異會被設限在預定的範圍內。因此,編碼效率會提升。
例如,處理對象區塊亦可使用仿射模式來進行預測處理。
藉此,編碼裝置100可將處理對象區塊以子區塊單位來進行預測,所以預測精度會提升。
圖54是顯示解碼裝置200所進行之動作的流程圖。例如,解碼裝置200具備電路及連接於電路的記憶體。解碼裝置200所具備的電路及記憶體亦可對應於圖46所示之處理器b1及記憶體b2。解碼裝置200的電路在動作中進行如下。
又,解碼裝置200的電路導出基準移動向量(S4001),前述基準移動向量是使用於處理對象區塊之預測的移動向量,也是前述處理對象區塊之控制點的移動向量,並且導出不同於基準移動向量的第1移動向量(S4002),根據基準移動向量與第1移動向量的差分來導出差分移動向量(S4003),判定差分移動向量是否大於閾值(S4004),在判定為差分移動向量大於閾值的情況下(S4004的是),變更第1移動向量(S4006),在判定為差分移動向量不大於閾值的情況下(S4004的否),不變更第1移動向量(S4005),並使用變更後的第1移動向量或未變更的第1移動向量來解碼處理對象區塊(S4007)。
藉此,解碼裝置200能夠以將分割成複數個子區塊之處理對象區塊內的複數個移動向量的差異設限在預定之範圍內的方式,來調整移動向量。因此,相較於移動向量的差異比預定之範圍大的情況,應參考的像素數會變少,所以可將從記憶體轉送的資料量抑制在預定的範圍內。因此,解碼裝置200可降低幀間預測處理中的記憶體存取量,所以處理效率會提升。
例如,亦可為基準移動向量與處理對象區塊內的第1像素集相對應,第1移動向量與處理對象區塊內之不同於第1像素集的第2像素集相對應。
藉此,解碼裝置200可使用根據第1像素集所決定的基準移動向量、及根據第2像素集所決定的第1移動向量,來適當地控制處理對象區塊內之複數個移動向量的差異。
例如,解碼裝置200的電路在判定為差分移動向量大於閾值的情況下,亦可使用將差分移動向量剪截後的值來變更第1移動向量。
藉此,解碼裝置200能夠以將第1移動向量的差異設限在預定之範圍內的方式來變更第1移動向量。因此,解碼裝置200可降低幀間預測處理中的記憶體存取量,所以處理效率會提升。
例如,解碼裝置200的電路亦可根據鄰接於處理對象區塊之解碼完畢區塊的移動向量,來導出處理對象區塊的控制點,並且導出控制點的移動向量,即處理對象區塊的基準移動向量。
藉此,解碼裝置200可根據鄰接於處理對象區塊之解碼完畢區塊的移動向量來導出處理對象區塊的基準移動向量,所以預測精度會提升。
例如,控制點亦可為處理對象區塊之仿射模式的控制點,且解碼裝置200的電路導出控制點的移動向量即基準移動向量。
藉此,解碼裝置200可將處理對象區塊以子區塊單位來進行預測,所以預測精度會提升。
例如,控制點亦可位於處理對象區塊的左上角、右上角及左下角的至少1處。
藉此,位於處理對象區塊之角的控制點的移動向量會被導出為基準移動向量,因此解碼裝置200能夠以將處理對象區塊內之複數個子區塊之第1移動向量的差異設限在預定之範圍內的方式來進行調整。因此,解碼裝置200可降低幀間預測處理中的記憶體存取量,所以處理效率會提升。
例如,解碼裝置200的電路亦可將處理對象區塊的複數個控制點之中的至少1個控制點的移動向量,導出為基準移動向量。
藉此,解碼裝置200可將處理對象區塊之至少1個控制點的移動向量當作基準移動向量,並導出該基準移動向量與第1移動向量的差分。
例如,基準移動向量亦可為複數個控制點的移動向量的平均。
藉此,解碼裝置200可將處理對象區塊之複數個控制點的移動向量的平均當作基準移動向量,並導出該基準移動向量與第1移動向量的差分。
例如,前述基準移動向量亦可是以複數個控制點之移動向量的組合來被導出。例如,亦可在該組合中,將複數個控制點之移動向量的水平成分的絕對值之中的最大絕對值當作基準移動向量的水平成分,並將複數個控制點之移動向量的垂直成分的絕對值之中的最大絕對值當作基準移動向量的垂直成分,又,例如,亦可在該組合中,將複數個控制點之移動向量的水平成分的絕對值之中的最小絕對值當作基準移動向量的水平成分,並將複數個控制點之移動向量的垂直成分的絕對值之中的最小絕對值當作基準移動向量的垂直成分。
藉此,處理對象區塊內之第1移動向量的差異會被設限在預定的範圍內。因此,處理效率會提升。
例如,處理對象區塊亦可使用仿射模式來進行預測處理。
藉此,解碼裝置200可將處理對象區塊以子區塊單位來進行預測,所以預測精度會提升。
又,各構成要素亦可如上述為電路。該等電路可整體構成1個電路,亦可各自為個別的電路。又,各構成要素可以通用的處理器來實現,亦可以專用的處理器來實現。
又,亦可由別的構成要素來執行特定之構成要素所執行的處理。又,可變更執行處理的順序,亦可並行地執行複數個處理。又,編碼解碼裝置亦可具備編碼裝置100及解碼裝置200。
以上,雖已根據複數個例子針對編碼裝置100及解碼裝置200的態樣加以說明,但編碼裝置100及解碼裝置200的態樣並非限定於該等例子。只要不脫離本揭示之宗旨,將本發明技術領域中具有通常知識者想得到的各種變形施加於各例者、或組合不同例子中的構成要素來建構的形態,均可包含於編碼裝置100及解碼裝置200的態樣的範圍內。
[具備有其他態樣的組合]
亦可將在此揭示的1個以上的態樣與本揭示中之其他態樣的至少一部分組合並實施。又,亦可將在此揭示的1個以上的態樣之流程圖所記載的一部分處理、裝置的一部分構成、語法的一部分等與其他態樣組合並實施。
例如,基準移動向量可組合開頭的子區塊的MV與控制點的MV。又,基準移動向量既可為複數個移動向量,亦可讓開頭的子區塊的MV及控制點的MV與各自的閾值作比較。
又,亦可比較開頭的子區塊的MV與控制點的MV,並將其中一者當作基準移動向量。亦可使用開頭的子區塊的MV與控制點的MV(例如取其平均等)來當作1個基準移動向量。
再者,不一定需要上述之全部的處理/要素。該裝置/方法亦可包含處理/要素的一部分。又,與編碼裝置同樣,上述之處理亦可藉由解碼裝置來執行。
[實施及應用]
於以上之各實施形態,各個功能性或作用性的方塊通常可藉由MPU(micro processing unit:微處理單元)及記憶體等來實現。又,各個功能方塊所進行的處理,亦可以讀出並執行記錄於ROM等記錄媒體的軟體(程式)之處理器等程式執行部來實現。該軟體亦可分發。該軟體亦可記錄於半導體記憶體等各式各樣的記錄媒體。再者,也可藉由硬體(專用電路)來實現各功能方塊。可採用硬體及軟體之各式各樣的組合。
於各實施形態所說明的處理,可藉由使用單一的裝置(系統)進行集中處理來實現,或,亦可藉由使用複數個裝置進行分散處理來實現。又,執行上述程式的處理器為單數個或複數個均可。亦即,進行集中處理或進行分散處理均可。
本揭示的態樣不限定於以上的實施例,可進行各種變更,該等變更亦包含在本揭示的態樣的範圍內。
進一步在此說明上述各實施形態所示之動態圖像編碼方法(圖像編碼方法)或動態圖像解碼方法(圖像解碼方法)的應用例、及實施該應用例的各種系統。這種系統的特徵亦可在於具有使用圖像編碼方法的圖像編碼裝置、使用圖像解碼方法的圖像解碼裝置、或具備雙方的圖像編碼解碼裝置。針對這種系統的其他構成,可因應情況適當地變更。
[使用例]
圖55是顯示實現內容(contents)發布服務之適當的內容供給系統ex100之整體構成的圖。將通訊服務之提供區域(area)分割成期望的大小,並於各細胞(cell)內分別設置圖示例中的固定無線台即基地台ex106、ex107、ex108、ex109、ex110。
在此內容供給系統ex100中,電腦ex111、遊戲機ex112、相機ex113、家電ex114及智慧型手機ex115等各機器是透過網際網路服務提供者ex102或通訊網ex104、及基地台ex106~ex110而連接到網際網路ex101。該內容供給系統ex100亦可組合上述任何裝置並加以連接。在各種實施中,各機器亦可不透過基地台ex106~ex110,而是透過電話網或近距離無線等直接地或間接地相互連接。進而,串流伺服器ex103亦可透過網際網路ex101等,與電腦ex111、遊戲機ex112、相機ex113、家電ex114及智慧型手機ex115等各機器連接。又,串流伺服器ex103亦可透過衛星ex116,與飛機ex117內之熱點內的終端等連接。
再者,亦可使用無線存取點或熱點等來取代基地台ex106~ex110。又,串流伺服器ex103可不透過網際網路ex101或網際網路服務提供者ex102而直接與通訊網ex104連接,亦可不透過衛星ex116而直接與飛機ex117連接。
相機ex113是數位相機等可拍攝靜止圖及拍攝動態圖的機器。又,智慧型手機ex115為支援2G、3G、3.9G、4G以及今後稱為5G的移動通訊系統的方式之智慧型話機、行動電話或PHS(Personal Handy-phone System:個人手持電話系統)等。
家電ex114為冰箱或家庭用燃料電池汽電共生系統所包含的機器等。
在內容供給系統ex100中,具有攝影功能的終端可透過基地台ex106等而連接於串流伺服器ex103,藉此實現實況發布等。在實況發布中,終端(電腦ex111、遊戲機ex112、相機ex113、家電ex114、智慧型手機ex115及飛機ex117內的終端等)可對使用者使用該終端所拍攝的靜止圖或動態圖內容,進行上述各實施形態所說明的編碼處理,亦可將藉由編碼所獲得的影像資料、及對應於影像的聲音被編碼後的聲音資料進行多工,亦可將獲得的資料發送至串流伺服器ex103。亦即,各終端是作為本揭示之一態樣的圖像編碼裝置來發揮功能。
另一方面,串流伺服器ex103將發送給有要求的客戶端的內容資料進行串流發布。客戶端為可將上述編碼處理後的資料解碼的電腦ex111、遊戲機ex112、相機ex113、家電ex114、智慧型手機ex115、或飛機ex117內的終端等。接收到已發布之資料的各機器亦可將接收到的資料進行解碼處理並播放。亦即,各機器亦可作為本揭示之一態樣的圖像解碼裝置來發揮功能。
[分散處理]
又,串流伺服器ex103亦可為複數台伺服器或複數台電腦,且將資料分散處理、記錄、發布。例如,亦可藉由CDN(Contents Delivery Network:內容傳遞網路)來實現串流伺服器ex103,藉由將分散在全世界的眾多邊緣伺服器彼此之間加以連繫的網際網路來實現內容發布。在CDN中,可因應於客戶端而動態地分配物理上較接近的邊緣伺服器。且,藉由在該邊緣伺服器快取及發布內容,可減少延遲。又,在發生多種類型的錯誤時或通訊狀態因流量增加等而改變時,由於能以複數台邊緣伺服器來分散處理、或將發布主體切換成其他邊緣伺服器、或繞過發生障礙的網路部分來持續發布,因此可實現高速且穩定的發布。
又,不僅止於發布本身的分散處理,已拍攝之資料的編碼處理亦可在各終端進行,亦可在伺服器側進行,亦可互相分擔進行。舉一例而言,一般在編碼處理中是進行2次處理迴路。在第1次的迴路中,檢測出以幀或場景為單位的圖像之複雜度或編碼量。又,在第2次的迴路中,進行維持畫質並且提升編碼效率的處理。例如,終端進行第1次的編碼處理,收到內容的伺服器側進行第2次的編碼處理,藉此可減少在各終端的處理負載,並且可提升內容的品質及效率。此情況下,若有幾乎即時接收並解碼的要求,亦可由其他終端接收並播放終端進行過的第一次的編碼完畢資料,因此更靈活的即時發布也是可能的。
舉其他例而言,相機ex113等從圖像擷取特徵量(特徵或特性的量),將有關特徵量的資料壓縮成元資料(metadata)並發送至伺服器。伺服器例如從特徵量來判斷目標(object)的重要性並切換量化精度等,因應圖像的意義(或內容的重要性)來進行壓縮。特徵量資料對於在伺服器再度壓縮時的移動向量預測之精度及效率提升尤其有效。又,亦可在終端進行VLC(可變長度編碼)等簡易的編碼,在伺服器進行CABAC(前文參考之適應性二值算術編碼方式)等處理負載大的編碼。
進一步舉其他例而言,在體育場、購物中心或工廠等,有時會有藉由複數個終端拍攝幾乎相同的場景而存在複數個影像資料的情況。此情況下,是使用進行攝影的複數個終端、因應需要而未拍攝的其他終端及伺服器,以例如GOP(Group of Picture:圖片群組)單位、圖片單位或圖片分割後的圖塊單位等,將編碼處理各自分配來進行分散處理。藉此,可減少延遲,更實現即時性。
由於複數個影像資料是幾乎相同的場景,因此亦可由伺服器來管理及/或指示互相參考各終端所拍攝的影像資料。又,亦可讓伺服器接收來自各終端的編碼完畢資料,在複數個資料間變更參考關係或修正、替換圖片本身後,再重新編碼。藉此,可生成提高一個個資料的品質及效率的串流。
進而,伺服器亦可在進行變更影像資料的編碼方式之轉碼(transcode)後,再發布影像資料。例如,伺服器可將MPEG系統的編碼方式轉換成VP系統(例如VP9),亦可將H.264轉換成H.265等。
就像這樣,可藉由終端或1個以上的伺服器來進行編碼處理。所以,以下雖使用「伺服器」或「終端」等記載來作為進行處理的主體,但亦可由終端來進行由伺服器所進行的處理之一部分或全部,且亦可由伺服器來進行由終端所進行的處理之一部分或全部。又,關於該等處理,就解碼處理來說也是同樣的。
[3D、多角度]
將彼此幾乎同步的複數個相機ex113及/或智慧型手機ex115等終端所拍攝的不同場景、或從不同角度拍攝同一場景的圖像或影像予以整合並利用的情況逐漸增加。各終端所拍攝的影像可根據另外取得之終端間的相對位置關係、或影像包含的特徵點為一致的區域等來進行整合。
伺服器亦可不僅編碼2維的動態圖像,還根據動態圖像的場景分析等而自動地、或於使用者指定的時刻編碼靜止圖,並發送至接收終端。進而,伺服器在可取得攝影終端間的相對位置關係時,不僅根據2維的動態圖像,還根據從不同角度拍攝同一場景的影像,來生成該場景的3維形狀。伺服器可另外編碼藉由點雲(point cloud)等所生成的3維資料,亦可使用3維資料來辨識或追蹤人物或目標,並根據辨識或追蹤的結果,從複數個終端所拍攝的影像中選擇、或重構並生成要發送至接收終端的影像。
如此,使用者可任意地選擇對應於各攝影終端的各影像來欣賞場景,亦可欣賞從使用複數個圖像或影像來重構的3維資料切出選擇視點的影像的內容。進而,聲音也與影像一起從複數個相異的角度收音,伺服器亦可將來自特定角度或空間的聲音與對應的影像進行多工,並發送多工後的影像與聲音。
又,近年來Virtual Reality(VR:虛擬實境)及Augmented Reality(AR:擴增實境)等讓現實世界與虛擬世界相對應的內容亦日益普及。在VR圖像的情況下,伺服器可分別製作右眼用及左眼用的視點圖像,藉由Multi-View Coding(MVC:多視角編碼)等來進行容許在各視點影像間參考的編碼,亦可不互相參考而編碼成不同的串流。當解碼不同的串流時,以因應使用者的視點重現虛擬的3維空間的方式,讓串流彼此同步播放即可。
在AR圖像的情況下,伺服器亦可將虛擬空間上的虛擬物體資訊,根據3維性質的位置或使用者的視點移動而重疊到現實空間的相機資訊。解碼裝置亦可取得或保持虛擬物體資訊及3維資料,並因應使用者的視點移動來生成2維圖像,藉由平滑地接合該等來製作重疊資料。或,解碼裝置亦可除了虛擬物體資訊的請求以外,還將使用者的視點移動發送至伺服器。伺服器亦可配合從保持於伺服器的3維資料接收到的視點移動來製作重疊資料,將重疊資料編碼並發布至解碼裝置。再者,重疊資料典型而言除了RGB以外,還具有表示穿透度的α值,伺服器亦可將從3維資料製作的目標以外的部分之α值設定成0等,並在該部分為穿透的狀態下編碼。或者,伺服器亦可像色度鍵(chroma key)一樣將背景設定成預定之值的RGB值,並生成目標以外的部分皆設為背景色的資料。預定之值的RGB值亦可事先決定。
同樣地,已發布之資料的解碼處理可在客戶端(例如終端)進行,亦可在伺服器側進行,亦可互相分擔進行。舉一例而言,亦可是某終端先對伺服器送出接收要求,再由其他終端接收因應於其要求的內容並進行解碼處理,且對具有顯示器的裝置發送解碼完畢的訊號。藉由不依賴可通訊的終端本身的性能而是將處理分散並選擇適當的內容,可播放畫質佳的資料。又,舉其他例而言,亦可由電視等接收大尺寸的圖像資料,並且在鑑賞者的個人終端將圖片經分割後的圖塊等一部分區域解碼顯示。藉此,可共享整體圖像,並且可在手邊確認自己的負責領域或想更詳細確認的區域。
在屋內外之近距離、中距離或長距離的無線通訊可使用複數個的狀況下,利用MPEG-DASH等發布系統規格無縫地(seamless)接收內容也許是可能的。使用者亦可一邊自由地選擇使用者的終端、配置於屋內外的顯示器等解碼裝置或顯示裝置,一邊即時地切換。又,可使用自身的位置資訊等,一邊切換要解碼的終端及要顯示的終端一邊進行解碼。藉此,在使用者往目的地移動的期間,變得可在內嵌有可顯示的組件之一旁的建築物之壁面或地面的一部分映射及顯示資訊。又,亦可根據在網路上之對編碼資料的存取容易性,來切換接收資料的位元率(bit rate),前述對編碼資料的存取容易性是指編碼資料被快取到可在短時間內從接收終端存取的伺服器、或被複製到內容傳遞服務(Contents Delivery Service)中的邊緣伺服器等。
[可適性編碼]
關於內容之切換,使用圖56所示之應用上述各實施形態所示的動態圖像編碼方法而進行壓縮編碼的可適性串流來加以說明。伺服器若具有複數個內容相同、質不同的串流來作為個別串流雖然無妨,但亦可如圖示般構成為分層進行編碼,藉此實現時間的/空間的可適性串流,並活用該可適性串流的特徵來切換內容。也就是說,解碼側因應於性能這種內在要因與通訊頻帶狀態等之外在要因,來決定解碼哪個層,藉此,解碼側可自由地切換低解析度的內容與高解析度的內容並解碼。例如,使用者在移動中以智慧型手機ex115收看的影像之後續,例如回家後想在網際網路電視等機器上收看時,該機器只要將相同的串流解碼到不同的層即可,因此可減輕伺服器側的負擔。
進而,如上述,除了依每層將圖片編碼且以基本層的上位之增強層來實現可適性(scalability)的構成以外,增強層亦可包含有以圖像之統計資訊等為基準的元資訊。解碼側亦可根據元資訊來將基本層的圖片進行超解析,藉此生成高畫質化的內容。超解析亦可為維持及/或擴大解析度,並提升SN比。元資訊包含有用以特定出類似超解析處理中使用的線性或非線性濾波係數的資訊,或特定出超解析處理中使用的濾波處理、機械學習、或最小平方運算中之參數值的資訊等。
或,亦可提供因應於圖像內的目標等的意義來將圖片分割成圖塊等之構成。解碼側藉由選擇要解碼的圖塊來解碼僅一部分的區域。進而,藉由將目標的屬性(人物、車輛、球等)及影像內的位置(同一圖像中之座標位置等)儲存成元資訊,解碼側可根據元資訊特定出期望的目標的位置,且決定包含有該目標的圖塊。例如,如圖57所示,亦可使用HEVC中之SEI(supplemental enhancement information:補充增強資訊)訊息等與像素資料不同的資料儲存構造來儲存元資訊。此元資訊用來表示例如主目標的位置、尺寸或色彩等。
亦可以串流、序列或隨機存取單位等由複數個圖片所構成的單位來儲存元資訊。解碼側可取得特定人物出現在影像內的時刻等,藉由對照圖片單位的資訊與時間資訊,可特定出目標存在的圖片,且可決定目標在圖片內的位置。
[網頁最佳化]
圖58是顯示電腦ex111等中之網頁的顯示畫面例的圖。圖59是顯示智慧型手機ex115等中之網頁的顯示畫面例的圖。如圖58及圖59所示,網頁有時包含有複數個連結至圖像內容的連結(link)圖像,依瀏覽的組件,其觀看方式亦會不同。當畫面上可看到複數個連結圖像時,直到使用者明確地選擇連結圖像為止,或直到連結圖像靠近畫面中央附近或連結圖像整體進入畫面內為止,顯示裝置(解碼裝置)可顯示各內容所具有的靜止圖或I圖片來作為連結圖像,亦可以複數個靜止圖或I圖片等來顯示像gif動畫一樣的影像,亦可僅接收基本層並解碼及顯示影像。
在由使用者選擇了連結圖像時,顯示裝置例如將基本層設為最優先同時進行解碼。再者,當構成網頁的HTML中有表示其為可適性內容的資訊時,顯示裝置亦可解碼至增強層。進而,為了保證即時性,在被選擇前或通訊頻帶非常吃緊時,顯示裝置僅解碼及顯示參考前方的圖片(I圖片、P圖片、僅參考前方的B圖片),藉此,可減低開頭圖片的解碼時刻與顯示時刻之間的延遲(從內容之解碼開始到顯示開始為止的延遲)。又進而,顯示裝置亦可刻意忽視圖片的參考關係,令全部的B圖片及P圖片參考前方並粗略地解碼,隨著時間經過且接收到的圖片增加,再進行正常的解碼。
[自動行駛]
又,為了車輛之自動行駛或支援行駛而發送、接收類似2維或3維的地圖資訊等靜止圖或影像資料時,接收終端除了接收屬於1個以上的層之圖像資料,亦可接收天氣或施工資訊等來作為元資訊,並使該等相對應來予以解碼。再者,元資訊可屬於層,亦可單純與圖像資料進行多工。
在此情況下,由於包含有接收終端的車輛、無人機(drone)或飛機等會移動,因此接收終端藉由發送該接收終端的位置資訊,可一邊切換基地台ex106~ex110一邊實現無縫的接收及解碼之執行。又,接收終端可因應使用者的選擇、使用者的狀況及/或通訊頻帶的狀態,來動態地切換元資訊要接收到何種程度、或地圖資訊要逐漸更新到何種程度。
在內容供給系統ex100中,客戶端可即時地接收使用者所發送之已編碼的資訊來解碼並播放。
[個人內容的發布]
又,在內容供給系統ex100中,不僅是來自影像發布業者之高畫質且長時間的內容,來自個人之低畫質且短時間的內容亦可進行單播或多播發布。可想成這樣的個人內容今後也會逐漸增加。為了將個人內容做成更優良的內容,伺服器亦可進行編輯處理後再進行編碼處理。此可使用例如以下構成來實現。
在攝影時即時或累積到攝影後,伺服器從原圖資料或編碼完畢資料進行攝影錯誤、場景估測、意義分析及目標檢測等辨識處理。接著,伺服器根據辨識結果,手動或自動地進行以下編輯:修正模糊或手震等、刪除亮度比其他圖片低或焦點未對準的場景等重要性低的場景、強調目標的邊緣、變化色調等。伺服器根據編輯結果來編碼編輯後的資料。又,已知若攝影時刻過長收視率會下降,伺服器亦可如上述般,除了重要性低的場景,還將動態較少的場景等根據圖像處理結果自動地剪輯,以因應攝影時間而成為特定的時間範圍內的內容。或,伺服器亦可根據場景的意義分析的結果來生成摘要(digest)並編碼。
個人內容有直接播送會拍到侵害著作權、著作人格權或肖像權等物的案例,也有共享的範圍超過了意圖的範圍等對個人而言較不便的情況。所以,伺服器例如亦可將畫面周邊部的人臉或家中等刻意變更成焦點不對準的圖像再編碼。進而,伺服器亦可辨識編碼對象圖像內是否顯現與事先登錄的人物不同的人物的臉,並在顯現的情況下,進行對臉的部分加上馬賽克等的處理。或,使用者亦可基於著作權等的觀點,指定圖像中想加工的人物或背景區域,來作為編碼的前處理或後處理。伺服器亦可進行將指定的區域置換成別的影像或模糊焦點等處理。若是人物,則可在動態圖像中追蹤人物並置換人物的臉的部分的影像。
資料量較小的個人內容之收看由於非常要求即時性,因此雖然視頻帶寬而定,但解碼裝置首先亦可最優先接收基本層,進行解碼及播放。解碼裝置亦可在此期間中接收增強層,且於循環播放等播放2次以上的情況下,包含增強層在內播放高畫質的影像。只要是像這樣進行可適性編碼的串流,便可提供如下體驗:在未選擇時或剛開始觀看的階段雖然是粗略的動態圖,但串流慢慢地智慧化(smart)且圖像受到改善。除了可適性編碼以外,將第1次播放的粗略串流與參考第1次動態圖來編碼的第2次串流構成為1個串流,亦可提供相同的體驗。
[其他實施應用例]
又,該等編碼或解碼處理一般而言是在各終端所具有的LSIex500中處理。LSI(large scale integration circuitry:大型積體電路)ex500(參考圖55)是單晶片或由複數個晶片組成的構成均可。再者,亦可將動態圖像編碼或解碼用的軟體裝入能以電腦ex111等讀取的某種記錄媒體(CD-ROM、軟性磁碟或硬碟等),並使用該軟體進行編碼或解碼處理。進而,在智慧型手機ex115附帶相機的情況下,亦可發送以該相機取得的動態圖資料。此時的動態圖資料亦可為在智慧型手機ex115所具有的LSIex500中進行過編碼處理的資料。
再者,LSIex500亦可為下載應用軟體並啟用(activate)的構成。此情況下,終端首先判定該終端是否對應於內容的編碼方式、或是否具有特定服務的執行能力。當終端不對應於內容的編碼方式時,或不具有特定服務的執行能力時,終端亦可下載編解碼器(codec)或應用軟體,之後再取得內容及播放。
又,不限於透過網際網路ex101的內容供給系統ex100,在數位廣播用系統中,亦可裝入上述各實施形態的動態圖像編碼裝置(圖像編碼裝置)或動態圖像解碼裝置(圖像解碼裝置)之至少任一者。由於是利用衛星等讓廣播用的電波承載已將影像與聲音進行多工的多工資料來進行發送、接收,因此相對於內容供給系統ex100是容易進行單播的構成,其差異在於適合多播,但關於編碼處理及解碼處理,則可進行同樣的應用。
[硬體構成]
圖60是更詳細顯示圖55所示之智慧型手機ex115的圖。又,圖61是顯示智慧型手機ex115的構成例的圖。智慧型手機ex115具備:天線ex450,用以在其與基地台ex110之間發送、接收電波;相機部ex465,可拍攝影像及靜止圖;及顯示部ex458,顯示由相機部ex465所拍攝的影像、及由天線ex450所接收的影像等被解碼後的資料。智慧型手機ex115進一步具備:操作部ex466,為觸控面板等;聲音輸出部ex457,為用以輸出聲音或音響的揚聲器等;聲音輸入部ex456,為用以輸入聲音的微音器等;記憶體部ex467,可保存拍攝的影像或靜止圖、錄音的聲音、接收到的影像或靜止圖、郵件等編碼後的資料或解碼後的資料;及插槽部ex464,為與SIMex468的介面部,前述SIMex468可用來特定使用者、對以網路為首的各種資料之存取進行認證。再者,亦可使用外接記憶體來取代記憶體部ex467。
可統籌地控制顯示部ex458及操作部ex466等的主控制部ex460、電源電路部ex461、操作輸入控制部ex462、影像訊號處理部ex455、相機介面部ex463、顯示器控制部ex459、調變/解調部ex452、多工/分離部ex453、聲音訊號處理部ex454、插槽部ex464、及記憶體部ex467是透過同步匯流排ex470來連接。
當藉由使用者之操作而使電源鍵為開啟狀態時,電源電路部ex461將智慧型手機ex115起動成可動作的狀態,並從電池組(battery pack)對各部供給電力。
智慧型手機ex115根據具有CPU、ROM及RAM等的主控制部ex460之控制,進行通話及資料通訊等處理。通話時,將由聲音輸入部ex456收音的聲音訊號以聲音訊號處理部ex454轉換成數位聲音訊號,並以調變/解調部ex452施以展頻處理,再以發送/接收部ex451施以數位類比轉換處理及頻率轉換處理,將其結果之訊號透過天線ex450發送。又,將接收資料放大,施以頻率轉換處理及類比數位轉換處理,以調變/解調部ex452進行解展頻處理,以聲音訊號處理部ex454轉換成類比聲音訊號後,將此訊號從聲音輸出部ex457輸出。資料通訊模式時,可根據主體部之操作部ex466等的操作,將文字、靜止圖或影像資料透過操作輸入控制部ex462而在主控制部ex460的控制下送出。進行同樣的發送、接收處理。在資料通訊模式時發送影像、靜止圖、或影像及聲音的情況下,影像訊號處理部ex455藉由上述各實施形態所示的動態圖像編碼方法,將保存於記憶體部ex467的影像訊號或從相機部ex465輸入的影像訊號進行壓縮編碼,並將已編碼的影像資料送出至多工/分離部ex453。聲音訊號處理部ex454將以相機部ex465拍攝影像或靜止圖時被聲音輸入部ex456收音到的聲音訊號進行編碼,並將已編碼的聲音資料送出至多工/分離部ex453。多工/分離部ex453將編碼完畢影像資料與編碼完畢聲音資料以預定的方式進行多工,再以調變/解調部(調變/解調電路部)ex452及發送/接收部ex451施以調變處理及轉換處理,透過天線ex450發送。預定的方式亦可事先決定。
在接收附加於電子郵件或聊天室的影像、或接收連結到網頁的影像時等,為了解碼透過天線ex450接收到的多工資料,多工/分離部ex453藉由分離多工資料來將多工資料分成影像資料之位元串流及聲音資料之位元串流,且透過同步匯流排ex470將編碼後的影像資料供給至影像訊號處理部ex455,並且將編碼後的聲音資料供給至聲音訊號處理部ex454。影像訊號處理部ex455藉由對應於上述各實施形態所示之動態圖像編碼方法的動態圖像解碼方法來將影像訊號解碼,並透過顯示器控制部ex459,從顯示部ex458顯示連結到的動態圖像檔案所包含的影像或靜止圖。聲音訊號處理部ex454將聲音訊號解碼,從聲音輸出部ex457輸出聲音。由於即時串流越來越普及,因此依使用者的狀況,聲音的播放也有可能不合乎社會禮儀。因此,作為初始值,僅播放影像資料而不播放聲音訊號的構成較理想,亦可只在使用者進行點擊影像資料等操作時,才同步播放聲音。
又,在此雖以智慧型手機ex115為例加以說明,但作為終端,除了具有編碼器及解碼器雙方的發送接收型終端以外,亦可想成僅具有編碼器的發送終端、及僅具有解碼器的接收終端這些其他的安裝形式。已說明在數位廣播用系統中接收或發送影像資料中多工有聲音資料之多工資料的情況。然而除了聲音資料以外,亦可將與影像相關聯的文字資料等多工於多工資料中。又,亦可接收或發送影像資料本身,而不是多工資料。
再者,雖已說明包含CPU的主控制部ex460控制編碼或解碼處理的情況,但各種終端具備GPU的情況也很多。所以,亦可為如下之構成:藉由在CPU與GPU之間共通化的記憶體、或位址受管理以便共通地使用的記憶體,來活用GPU的性能,一次性地處理廣大的區域。藉此,可縮短編碼時間,確保即時性,實現低延遲。特別是不利用CPU而利用GPU,以圖片等為單位一次性地進行移動估測、去區塊濾波、SAO(Sample Adaptive Offset:樣本適應性偏移)及轉換/量化的處理時,是有效率的。
產業上之可利用性
本揭示可利用於例如電視機、數位視訊錄影機、汽車導航、行動電話、數位相機、數位攝影機、視訊會議系統或電子鏡等。
10~23:區塊
100:編碼裝置
102:分割部
104:減算部
106:轉換部
108:量化部
110:熵編碼部
112,204:反量化部
114,206:反轉換部
116,208:加算部
118,210:區塊記憶體
120,212:迴路濾波部
122,214:幀記憶體
124,216:幀內預測部
126,218:幀間預測部
128,220:預測控制部
160,260:電路
162,262:記憶體
200:解碼裝置
202:熵解碼部
1000,2000:處理
1201:邊界判定部
1202,1204,1206:開關
1203:濾波判定部
1205:濾波處理部
1207:濾波特性決定部
1208:處理判定部
a1,b1:處理器
a2,b2:記憶體
ex100:內容供給系統
ex101:網際網路
ex102:網際網路服務提供者
ex103:串流伺服器
ex104:通訊網
ex106~ex110:基地台
ex111:電腦
ex112:遊戲機
ex113:相機
ex114:家電
ex115:智慧型手機
ex116:衛星
ex117:飛機
ex450:天線
ex451:發送/接收部
ex452:調變/解調部
ex453:多工/分離部
ex454:聲音訊號處理部
ex455:影像訊號處理部
ex456:聲音輸入部
ex457:聲音輸出部
ex458:顯示部
ex459:顯示器控制部
ex460:主控制部
ex461:電源電路部
ex462:操作輸入控制部
ex463:相機介面部
ex464:插槽部
ex465:相機部
ex466:操作部
ex467:記憶體部
ex468:SIM
ex470:同步匯流排
ex500:LSI
Sa_1~Sa_10,Sb_1,Sc_1a~Sc_1c,Sc_2,Sd_1a~Sd_1b,Sd_2~Sd_3,Se_1~Se_4,Sf_1~Sf_5,Sg_1~Sg_5,Sh_1~Sh_3,Si_1~Si_5,Sk_1~Sk_3,Sj_1~Sj_6,Sl_1~Sl_4,Sm_1~Sm_2,Sn_1~Sn_5,So_1~So_4,Sp_1~Sp_7,Sq_1,Sr_1,Sr_2a~Sr_2c,Ss_1~Ss_5,S1001~S1007,S2001~S2007,S3001~S3007,S4001~S4007:步驟
圖1是顯示實施形態之編碼裝置的功能構成的方塊圖。
圖2是顯示編碼裝置所進行之整體的編碼處理的一例的流程圖。
圖3是顯示區塊分割之一例的概念圖。
圖4A是顯示切片之構成的一例的概念圖。
圖4B是顯示圖塊之構成的一例的概念圖。
圖5A是顯示對應於各式各樣的轉換類型之轉換基底函數的表。
圖5B是顯示SVT(Spatially Varying Transform:空間變化轉換)之一例的概念圖。
圖6A是顯示在ALF(adaptive loop filter:適應性迴路濾波)使用的濾波器形狀之一例的概念圖。
圖6B是顯示在ALF使用的濾波器形狀之另外一例的概念圖。
圖6C是顯示在ALF使用的濾波器形狀之另外一例的概念圖。
圖7是顯示作為DBF(deblocking filter:解區塊濾波器)發揮功能的迴路濾波部之詳細的構成的一例的方塊圖。
圖8是顯示對區塊邊界具有對稱的濾波器特性之解區塊濾波器的例子的概念圖。
圖9是用以說明進行解區塊濾波處理之區塊邊界的概念圖。
圖10是顯示Bs值之一例的概念圖。
圖11是顯示在編碼裝置之預測處理部進行的處理之一例的流程圖。
圖12是顯示在編碼裝置之預測處理部進行的處理之其他例的流程圖。
圖13是顯示在編碼裝置之預測處理部進行的處理之其他例的流程圖。
圖14是顯示實施形態之幀內預測中的67個幀內預測模式之一例的概念圖。
圖15是顯示幀間預測的基本處理的流程之一例的流程圖。
圖16是顯示移動向量導出之一例的流程圖。
圖17是顯示移動向量導出之其他例的流程圖。
圖18是顯示移動向量導出之其他例的流程圖。
圖19是顯示一般幀間模式所進行之幀間預測的例子的流程圖。
圖20是顯示合併模式所進行之幀間預測的例子的流程圖。
圖21是用以說明合併模式所進行之移動向量導出處理之一例的概念圖。
圖22是顯示FRUC(frame rate up conversion:幀更新率提升轉換)處理之一例的流程圖。
圖23是用以說明在沿著移動軌跡的2個區塊間的樣式匹配(雙向匹配)之一例的概念圖。
圖24是用以說明在當前圖片內的模板與參考圖片內的區塊之間的樣式匹配(模板匹配)之一例的概念圖。
圖25A是用以說明以複數個鄰接區塊的移動向量為基準的子區塊單位的移動向量的導出之一例的概念圖。
圖25B是用以說明具有3個控制點之仿射模式中的子區塊單位的移動向量的導出之一例的概念圖。
圖26A是用以說明仿射合併模式的概念圖。
圖26B是用以說明具有2個控制點之仿射合併模式的概念圖。
圖26C是用以說明具有3個控制點之仿射合併模式的概念圖。
圖27是顯示仿射合併模式的處理之一例的流程圖。
圖28A是用以說明具有2個控制點之仿射幀間模式的概念圖。
圖28B是用以說明具有3個控制點之仿射幀間模式的概念圖。
圖29是顯示仿射幀間模式的處理之一例的流程圖。
圖30A是用以說明當前區塊具有3個控制點且鄰接區塊具有2個控制點之仿射幀間模式的概念圖。
圖30B是用以說明當前區塊具有2個控制點且鄰接區塊具有3個控制點之仿射幀間模式的概念圖。
圖31A是顯示包含有DMVR(decoder motion vector refinement:解碼器側移動向量細化)的合併模式的流程圖。
圖31B是用以說明DMVR處理之一例的概念圖。
圖32是顯示預測圖像的生成之一例的流程圖。
圖33是顯示預測圖像的生成之其他例的流程圖。
圖34是顯示預測圖像的生成之其他例的流程圖。
圖35是用以說明OBMC(overlapped block motion compensation:重疊區塊移動補償)處理所進行的預測圖像修正處理之一例的流程圖。
圖36是用以說明OBMC處理所進行的預測圖像修正處理之一例的概念圖。
圖37是用以說明2個三角形的預測圖像之生成的概念圖。
圖38是用以說明假設為等速直線運動的模型的概念圖。
圖39是用以說明使用了LIC(local illumination compensation:局部亮度補償)處理的亮度修正處理之預測圖像生成方法的一例的概念圖。
圖40是顯示編碼裝置之安裝例的方塊圖。
圖41是顯示實施形態之解碼裝置的功能構成的方塊圖。
圖42是顯示解碼裝置所進行之整體的解碼處理之一例的流程圖。
圖43是顯示在解碼裝置之預測處理部進行的處理之一例的流程圖。
圖44是顯示在解碼裝置之預測處理部進行的處理之其他例的流程圖。
圖45是顯示解碼裝置中之一般幀間模式所進行的幀間預測的例子的流程圖。
圖46是顯示解碼裝置之安裝例的方塊圖。
圖47是顯示第1態樣之幀間預測處理的一例的流程圖。
圖48是顯示處理對象區塊之一例的圖。
圖49是顯示已算出的閾值之例的圖。
圖50是用以說明子區塊單位的ATMVP模式的圖。
圖51是顯示第2態樣之幀間預測處理的一例的流程圖。
圖52是顯示處理對象區塊之控制點的移動向量之例的圖。
圖53是顯示編碼裝置所進行之動作的流程圖。
圖54是顯示解碼裝置所進行之動作的流程圖。
圖55是顯示實現內容(contents)發布服務之內容供給系統的整體構成的方塊圖。
圖56是顯示可適性(scalable)編碼時的編碼構造之一例的概念圖。
圖57是顯示可適性編碼時的編碼構造之一例的概念圖。
圖58是顯示網頁之顯示畫面例的概念圖。
圖59是顯示網頁之顯示畫面例的概念圖。
圖60是顯示智慧型手機之一例的方塊圖。
圖61是顯示智慧型手機之構成例的方塊圖。
S3001~S3007:步驟
Claims (16)
- 一種編碼裝置,具備:電路;及連接於前述電路的記憶體,前述電路在動作中,處理對象區塊的預測模式是仿射模式,導出基準移動向量,前述基準移動向量是使用於前述處理對象區塊之預測的移動向量,也是前述處理對象區塊的仿射模式之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量,根據前述基準移動向量與前述第1移動向量的差分來導出差分移動向量,判定前述差分移動向量是否大於閾值,在判定為前述差分移動向量大於前述閾值的情況下,變更不同於前述基準移動向量及前述第1移動向量的第2移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第2移動向量,並使用變更後的前述第2移動向量或未變更的前述第2移動向量來編碼前述處理對象區塊,前述閾值在前述處理對象區塊被單向預測的情況及被雙向預測的情況不同。
- 如請求項1之編碼裝置,其中前述電路在判定為前述差分移動向量大於前述閾值的情況下,使用將前述差分移動向量剪截後的值來變更前述第2移動向量。
- 如請求項1之編碼裝置,其中前述電路根據鄰接於前述處理對象區塊之編碼完畢區塊的移動向量,來導出前述處理對象區塊的前述控制點,並且導出前述控制點的移動向量,即前述處理對象區塊的前述基準移動向 量。
- 如請求項3之編碼裝置,其中前述控制點位於前述處理對象區塊的左上角、右上角及左下角的至少1處。
- 如請求項1至4中任一項之編碼裝置,其中前述電路將處理對象區塊的複數個前述控制點之中的至少1個控制點的移動向量,導出為前述基準移動向量。
- 如請求項1之編碼裝置,其中前述閾值是決定成:以前述預測模式來對前述處理對象區塊進行預測處理時的最壞情況下的記憶體存取量成為以前述預測模式以外的預測模式來進行預測處理時的最壞情況下的記憶體存取量以下。
- 如請求項6之編碼裝置,其中以前述預測模式以外的預測模式來進行預測處理時的最壞情況下的記憶體存取量是以前述預測模式以外的預測模式按照每8×8像素來對前述處理對象區塊進行雙向預測處理時的記憶體存取量。
- 一種解碼裝置,具備:電路;及連接於前述電路的記憶體,前述電路在動作中,處理對象區塊的預測模式是仿射模式,導出基準移動向量,前述基準移動向量是使用於前述處理對象區塊之預測的移動向量,也是前述處理對象區塊的仿射模式之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量,根據前述基準移動向量與前述第1移動向量的差分來導出差分移動向量,判定前述差分移動向量是否大於閾值, 在判定為前述差分移動向量大於前述閾值的情況下,變更不同於前述基準移動向量及前述第1移動向量的第2移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第2移動向量,並使用變更後的前述第2移動向量或未變更的前述第2移動向量來解碼前述處理對象區塊,前述閾值在前述處理對象區塊被單向預測的情況及被雙向預測的情況不同。
- 如請求項8之解碼裝置,其中前述電路在判定為前述差分移動向量大於前述閾值的情況下,使用將前述差分移動向量剪截後的值來變更前述第2移動向量。
- 如請求項8之解碼裝置,其中前述電路根據鄰接於前述處理對象區塊之解碼完畢區塊的移動向量,來導出前述處理對象區塊的前述控制點,並且導出前述控制點的移動向量,即前述處理對象區塊的前述基準移動向量。
- 如請求項10之解碼裝置,其中前述控制點位於前述處理對象區塊的左上角、右上角及左下角的至少1處。
- 如請求項8至11中任一項之解碼裝置,其中前述電路將處理對象區塊的複數個前述控制點之中的至少1個控制點的移動向量,導出為前述基準移動向量。
- 如請求項8之解碼裝置,其中前述閾值是決定成:以前述預測模式來對前述處理對象區塊進行預測處理時的最壞情況下的記憶體存取量成為以前述預測模式以外的預測模式來進行預測處理時的最壞情況下的記憶體存取量以下。
- 如請求項13之解碼裝置,其中以前述預測模式以外的預測模 式來進行預測處理時的最壞情況下的記憶體存取量是以前述預測模式以外的預測模式按照每8×8像素來對前述處理對象區塊進行雙向預測處理時的記憶體存取量。
- 一種編碼方法,處理對象區塊的預測模式是仿射模式,前述編碼方法導出基準移動向量,前述基準移動向量是使用於前述處理對象區塊之預測的移動向量,也是前述處理對象區塊的仿射模式之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量,根據前述基準移動向量與前述第1移動向量的差分來導出差分移動向量,判定前述差分移動向量是否大於閾值,在判定為前述差分移動向量大於前述閾值的情況下,變更不同於前述基準移動向量及前述第1移動向量的第2移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第2移動向量,並使用變更後的前述第2移動向量或未變更的前述第2移動向量來編碼前述處理對象區塊,前述閾值在前述處理對象區塊被單向預測的情況及被雙向預測的情況不同。
- 一種解碼方法,處理對象區塊的預測模式是仿射模式,前述解碼方法導出基準移動向量,前述基準移動向量是使用於前述處理對象區塊之預測的移動向量,也是前述處理對象區塊的仿射模式之控制點的移動向量,並且導出不同於前述基準移動向量的第1移動向量, 根據前述基準移動向量與前述第1移動向量的差分來導出差分移動向量,判定前述差分移動向量是否大於閾值,在判定為前述差分移動向量大於前述閾值的情況下,變更不同於前述基準移動向量及前述第1移動向量的第2移動向量,在判定為前述差分移動向量不大於前述閾值的情況下,不變更前述第2移動向量,並使用變更後的前述第2移動向量或未變更的前述第2移動向量來解碼前述處理對象區塊,前述閾值在前述處理對象區塊被單向預測的情況及被雙向預測的情況不同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862783716P | 2018-12-21 | 2018-12-21 | |
US62/783,716 | 2018-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202034697A TW202034697A (zh) | 2020-09-16 |
TWI840475B true TWI840475B (zh) | 2024-05-01 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018230493A1 (ja) | 2017-06-14 | 2018-12-20 | シャープ株式会社 | 動画像復号装置、動画像符号化装置、予測画像生成装置及び動きベクトル導出装置 |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018230493A1 (ja) | 2017-06-14 | 2018-12-20 | シャープ株式会社 | 動画像復号装置、動画像符号化装置、予測画像生成装置及び動きベクトル導出装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102648038B1 (ko) | 부호화 장치, 복호 장치, 부호화 방법, 및 복호 방법 | |
JP2022503464A (ja) | ビデオコーディング用動きベクトル予測 | |
TWI803420B (zh) | 編碼裝置、解碼裝置及用於保存使電腦執行解碼處理之位元流的非暫時性記憶媒體 | |
JP7483836B2 (ja) | 符号化方法、復号方法、符号化装置及び復号装置 | |
TWI812414B (zh) | 編碼裝置、解碼裝置及記錄媒體 | |
JP7026747B2 (ja) | 復号装置及び復号方法 | |
CN112292857A (zh) | 编码装置、解码装置、编码方法和解码方法 | |
TWI813740B (zh) | 編碼裝置、解碼裝置、編碼方法及解碼方法 | |
WO2020141591A1 (ja) | 符号化装置、復号装置、符号化方法、及び復号方法 | |
WO2020218564A1 (ja) | 符号化装置、復号装置、符号化方法及び復号方法 | |
JP7479436B2 (ja) | 復号装置及び復号方法 | |
KR20210052464A (ko) | 부호화 장치, 복호 장치, 부호화 방법, 및 복호 방법 | |
WO2020179715A1 (ja) | 符号化装置、復号装置、符号化方法及び復号方法 | |
TWI783129B (zh) | 編碼裝置、解碼裝置、編碼方法及解碼方法 | |
TWI840475B (zh) | 編碼裝置、解碼裝置、編碼方法及解碼方法 | |
KR20210055044A (ko) | 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법 | |
TWI835963B (zh) | 編碼裝置、解碼裝置、編碼方法、及解碼方法 | |
CN113475066B (zh) | 编码装置、解码装置、编码方法和解码方法 | |
TWI788567B (zh) | 編碼裝置、解碼裝置、編碼方法、解碼方法及程式記錄媒體 | |
WO2021025080A1 (ja) | 符号化装置、復号装置、符号化方法、および復号方法 | |
WO2020171224A1 (ja) | 符号化装置、復号装置、符号化方法及び復号方法 | |
TW202418802A (zh) | 編碼裝置、解碼裝置及非暫時性記憶媒體 | |
TW202415073A (zh) | 編碼裝置、解碼裝置及電腦可讀取之非暫時性媒體 | |
TW202415076A (zh) | 編碼裝置、解碼裝置及位元串流 |