JP2014236264A - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP2014236264A
JP2014236264A JP2013114947A JP2013114947A JP2014236264A JP 2014236264 A JP2014236264 A JP 2014236264A JP 2013114947 A JP2013114947 A JP 2013114947A JP 2013114947 A JP2013114947 A JP 2013114947A JP 2014236264 A JP2014236264 A JP 2014236264A
Authority
JP
Japan
Prior art keywords
unit
block
mode
division
image processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013114947A
Other languages
English (en)
Inventor
寿治 土屋
Toshiharu Tsuchiya
寿治 土屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2013114947A priority Critical patent/JP2014236264A/ja
Priority to CN201910044291.7A priority patent/CN110035291A/zh
Priority to PCT/JP2014/002602 priority patent/WO2014192244A1/en
Priority to US14/767,149 priority patent/US9894360B2/en
Priority to CN201480029706.9A priority patent/CN105247864B/zh
Publication of JP2014236264A publication Critical patent/JP2014236264A/ja
Priority to US15/843,660 priority patent/US10432933B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】全ての分割パターンについて網羅的にコストの比較を実行しようとすると、処理の負荷が多大となり、エンコーダの処理性能又は電力消費に悪影響が生じる。ブロック分割の深さを柔軟に設定することのできる仕組みを実現する画像処理装置を提供する。
【解決手段】画像処理装置は、符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定する設定部と、前記設定部におけるブロック分割の深さを、リソース効率に関するモードに従って制御する制御部と、を備える。
【選択図】図4

Description

本開示は、画像処理装置、画像処理方法及びプログラムに関する。
現在、H.264/AVCよりも符号化効率をさらに向上することを目的として、ITU−TとISO/IECとの共同の標準化団体であるJCTVC(Joint Collaboration Team-Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる画像符号化方式の標準化が進められている。
MPEG2又はH.264/AVCなどの旧来の画像符号化方式では、符号化処理は、マクロブロックと呼ばれる処理単位で実行される。マクロブロックは、16×16画素の均一なサイズを有するブロックである。これに対し、HEVCでは、符号化処理は、符号化単位(CU:Coding Unit)と呼ばれる処理単位で実行される。CUは、最大符号化単位(LCU:Largest Coding Unit)を再帰的に分割することにより形成される、可変的なサイズを有するブロックである。利用可能なCUの最大サイズは、64×64画素である。利用可能なCUの最小サイズは、8×8画素である。可変的なサイズを有するCUが採用される結果、HEVCでは、画像の内容に応じて画質及び符号化効率を適応的に調整することが可能である。どの深さまでLCUを分割するか(即ち、どのサイズのCUを使用するか)は、典型的には、符号化効率を左右するコストの比較に基づいて決定される。
特開2008−078969号公報
しかしながら、考え得る全ての分割パターンについて網羅的にコストの比較を実行しようとすると、処理の負荷が多大となり、エンコーダの処理性能又は電力消費に悪影響が生じる。
従って、ブロック分割の深さを柔軟に設定することのできる仕組みが実現されることが望ましい。
本開示によれば、符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定する設定部と、前記設定部におけるブロック分割の深さを、リソース効率に関するモードに従って制御する制御部と、を備える画像処理装置が提供される。
また、本開示によれば、符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定することと、前記ブロックに前記符号化単位を設定する際のブロック分割の深さを、リソース効率に関するモードに従って制御することと、を含む画像処理方法が提供される。
また、本開示によれば、画像処理装置を制御するコンピュータを、符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定する設定部と、前記設定部におけるブロック分割の深さを、リソース効率に関するモードに従って制御する制御部と、として機能させるためのプログラムが提供される。
本開示に係る技術によれば、ブロック分割の深さを柔軟に設定することが可能となる。
HEVCにおける再帰的なブロック分割の一例について説明するための説明図である。 エンコーダにおけるブロック分割の判定について説明するための説明図である。 分割判定の処理シーケンスの一例について説明するための第1の説明図である。 分割判定の処理シーケンスの一例について説明するための第2の説明図である。 第1の実施形態に係る画像符号化装置の概略的な構成を示すブロック図である。 ブロック分割部の詳細な構成の第1の例を示すブロック図である。 ブロック分割部の詳細な構成の第2の例を示すブロック図である。 ブロック分割部の詳細な構成の第3の例を示すブロック図である。 動作モードをユーザに指定させるためのユーザインタフェースの第1の例を示す説明図である。 動作モードをユーザに指定させるためのユーザインタフェースの第2の例を示す説明図である。 並列処理における動作モードとリソース効率との間の関係の第1の例を示す説明図である。 並列処理における動作モードとリソース効率との間の関係の第2の例を示す説明図である。 直列処理における動作モードとリソース効率との間の関係の第1の例を示す説明図である。 直列処理における動作モードとリソース効率との間の関係の第2の例を示す説明図である。 符号化処理の高速化について説明するための説明図である。 ブロック分割処理の概略的な流れの一例を示すフローチャートである。 モード判定処理の詳細な流れの第1の例を示すフローチャートである。 モード判定処理の詳細な流れの第2の例を示すフローチャートである。 モード判定処理の詳細な流れの第3の例を示すフローチャートである。 モード判定処理の詳細な流れの第4の例を示すフローチャートである。 通常モードでのブロック設定処理の詳細な流れの一例を示すフローチャートである。 リソース節約モードでのブロック設定処理の詳細な流れの第1の例を示すフローチャートである。 リソース節約モードでのブロック設定処理の詳細な流れの第2の例を示すフローチャートである。 リソース節約モードでのブロック設定処理の詳細な流れの第3の例を示すフローチャートである。 リソース節約モードでのブロック設定処理の詳細な流れの第4の例を示すフローチャートである。 リソース節約モードでLCUサイズが調整される場合のブロックのスキャン順序について説明するための説明図である。 第2の実施形態に係る画像符号化装置の概略的な構成を示すブロック図である。 イントラ/インター判定制御処理の詳細な流れの一例を示すフローチャートである。 イントラ/インター判定の処理シーケンスの一例について説明するための説明図である。 マージ判定制御処理の詳細な流れの一例を示すフローチャートである。 変換単位制御処理の詳細な流れの一例を示すフローチャートである。 携帯電話機の概略的な構成の一例を示すブロック図である。 記録再生装置の概略的な構成の一例を示すブロック図である。 撮像装置の概略的な構成の一例を示すブロック図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、以下の順序で説明を行う。
1.再帰的なブロック分割
1−1.ブロック分割の例
1−2.ブロック分割に関連するシンタックス
1−3.ブロック分割の処理シーケンス
2.第1の実施形態
2−1.全体的な構成
2−2.ブロック分割部の詳細な構成
2−3.動作モードとリソース効率との間の関係
2−4.処理の流れ
3.第2の実施形態
3−1.全体的な構成
3−2.イントラ/インター判定の制御
3−3.マージ判定の制御
3−4.変換単位の設定の制御
4.応用例
5.まとめ
<1.再帰的なブロック分割>
[1−1.ブロック分割の例]
HEVCでは、符号化される画像に1つ以上の最大符号化単位(LCU)が設定され、LCUを再帰的に分割することにより1つ以上の符号化単位(CU)が設定される。このCUが、HEVCにおける符号化処理の処理単位である。MPEG2又はH.264/AVCなどの旧来の画像符号化方式におけるマクロブロックのサイズが16×16画素で固定されているのに対して、CUのサイズは可変的である。CUのサイズのとり得る範囲は、SCU(Smallest Coding Unit)サイズ及びLCUサイズにより規定される。HEVCの仕様上、SCUサイズの最小値は8×8画素、LCUサイズの最大値は64×64画素であるため、利用可能なCUのサイズの範囲は、最も広いケースで8×8画素〜64×64画素である。
LCUを再帰的に分割することにより形成されるツリー状のブロック構造は、四分木(Quad-Tree)構造と呼ばれる。CUは、四分木のリーフに相当する。図1は、HEVCにおける再帰的なブロック分割の一例について説明するための説明図である。図1の左には、人物の顔が映っている画像IM01が示されている。画像IM01は、水平方向にU個、垂直方向にV個、即ちU×V個のLCUを有する。各LCUは、SCUサイズを下回らない範囲で、1つ以上のCUに再帰的に分割される。図1の右には、一例として、テクスチャ境界(人物の頭と背景との間の境界)が横切るLCU0が複数のCUに分割される様子が拡大して示されている。テクスチャ境界の近傍領域では、分割を繰り返すことでより小さいCUが設定され、それ以外の領域では、分割の回数をより少なくすることでより大きいCUが設定されている。例えば、LCU0のサイズが64×64画素であるとすると、CU01のサイズは32×32画素、CU02のサイズは16×16画素、CU03のサイズは8×8画素である。繰り返される分割の回数は、分割の深さ(depth)とも呼ばれる。LCUサイズが64×64画素の場合、分割の深さがゼロであればCUサイズは64×64画素、分割の深さが1であればCUサイズは32×32画素、分割の深さが2であればCUサイズは16×16画素、分割の深さが3であればCUサイズは8×8画素である。LCUサイズが32×32画素の場合、分割の深さがゼロであればCUサイズは32×32画素、分割の深さが1であればCUサイズは16×16画素、分割の深さが2であればCUサイズは8×8画素である。さらに、図示していないものの、各CUは、それぞれ直交変換の処理単位となる1つ以上のTU(変換単位:Transform Unit)に分割され得る。また、各CUは、それぞれイントラ予測又はインター予測の処理単位となる1つ以上のPU(予測単位:Prediction Unit)に分割され得る。このような再帰的なブロック分割によれば、画像の内容に応じてブロックサイズを変化させることにより、復号される画像の画質及び符号化効率を柔軟に調整することができる。
[1−2.ブロック分割に関連するシンタックス]
画像にどういったサイズのLCUを配置し、各LCUをどのようにCUに分割するかは、エンコーダにおいて決定される。エンコーダは、決定したQuad-Tree構造をデコーダが再現することを可能とするためのパラメータを、符号化される画像のストリームに多重化する。Quad-Tree構造を特定するためのパラメータとして、HEVC仕様ドラフト10(Benjamin Bross, Woo-Jin Han, Gary J. Sullivan, Jens-Rainer Ohm, Gary J. Sullivan, Ye-Kui Wang, Thomas Wiegand, “High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Consent)”, JCTVC-L1003_v4, 2013年1月14-23日)では、次の3つのパラメータが定義されている:
−log2_min_luma_coding_block_size_minus3
−log2_diff_max_min_luma_coding_block_size
−split_cu_flag
“log2_min_luma_coding_block_size_minus3”は、(輝度成分の)SCUサイズを(2を底とするその対数から3を減算した値によって)指定するパラメータである。例えば、当該パラメータがゼロに等しければ、SCUサイズは8×8画素である。“log2_diff_max_min_luma_coding_block_size”は、SCUサイズとLCUサイズとの間の(対数での)差分を指定するパラメータである。例えば、SCUサイズが8×8画素であって当該パラメータが3に等しければ、LCUサイズは64×64画素である。これらパラメータを用いて指定されるサイズを有するLCUが、画像にラスタ状に配置される。“split_cu_flag”は、LCU又はLCUから分割されるCUの各々を分割するかを指定するフラグ(以下、分割フラグという)であり、分割の深さに依存して再帰的に生成される。あるLCU又はCUに関連付けられる分割フラグがゼロを示す場合、当該LCU又は当該CUはそれ以上分割されない。あるLCU又はCUに関連付けられる分割フラグが1を示す場合、当該LCU又は当該CUは半分のサイズの4つのCUへ分割される。“log2_min_luma_coding_block_size_minus3”及び“log2_diff_max_min_luma_coding_block_size”はシーケンスパラメータセット(SPS)に含まれる一方、split_cu_flagのセットは各スライスのセグメントデータに含まれる。
[1−3.分割判定の処理シーケンス]
デコーダは、上述したパラメータを参照することにより、LCUを再帰的に分割してQuad-Tree構造を再現する。一方、エンコーダは、発生すると想定される符号量に依存するコストの比較に基づいて、LCU又はCUをより小さいCUへ分割するか否かを決定する。実際には、この処理は、HMリファレンスソフトウェアにおいて実装されているように、サイズの小さい方から順にコストの計算及び分割の判定を積み上げていく方式で行われ得る。
図2は、エンコーダにおけるブロック分割の判定について説明するための説明図である。図2の例では、LCUサイズは64×64画素、SCUサイズは8×8画素である。図中の左端に示した4つのブロックB30、B31、B32及びB33は、SCUサイズに等しいサイズを有する候補CUである。ブロックB20は、SCUサイズの2倍のサイズを有する候補CUである。エンコーダは、まず、4つのブロックB30、B31、B32及びB33、並びにブロックB20についてそれぞれコストを計算し、ブロックB30、B31、B32及びB33のコストの合計と、ブロックB20のコストとを比較する(処理P1)。そして、前者のコストがより低い場合には、ブロックB20をブロックB30、B31、B32及びB33へ分割することが決定される。一方、後者のコストがより低い場合には、ブロックB20を分割しないことが決定される。さらに、4つのブロックB20、B21、B22及びB23について分割の判定が終了すると、エンコーダは、ブロックB10についてコストを計算し、ブロックB20、B21、B22及びB23のコストの合計と、ブロックB10のコストとを比較する(処理P2)。そして、前者のコストがより低い場合には、ブロックB10をブロックB20、B21、B22及びB23へ分割することが決定される。一方、後者のコストがより低い場合には、ブロックB10を分割しないことが決定される。さらに、4つのブロックB10、B11、B12及びB13について分割の判定が終了すると、エンコーダは、ブロックB00についてコストを計算し、ブロックB10、B11、B12及びB13のコストの合計と、ブロックB00のコストとを比較する(処理P3)。そして、前者のコストがより低い場合には、ブロックB00をブロックB10、B11、B12及びB13へ分割することが決定される。一方、後者のコストがより低い場合には、ブロックB00を分割しないことが決定される。候補CUのサイズがLCUサイズに達した場合には、より大きいサイズについてのコストの計算及び比較は行われない。分割フラグ(split_cu_flag)は、このような分割の判定の結果を、ゼロ(分割せず)又は1(分割する)という値で示す。
図3A及び図3Bは、分割判定の処理シーケンスの一例について説明するための説明図である。図3Aには、説明のために使用されるブロックのラベルが示されている。64×64画素のCUはLCU内で1つのみ存在し、当該CUは“64×64(0)”とラベリングされる。32×32画素のCUはLCU内で4つ存在し、それらCUは左上、右上、左下、右下の順に“32×32(0)”〜“32×32(3)”とラベリングされる。16×16画素のCUはLCU内で16個存在し、それらCUは図中に示した順序で“16×16(0)”〜“16×16(15)”とラベリングされる。8×8画素のCUはLCU内で64個存在し、それらCUは図中に示した順序で“8×8(0)”〜“8×8(63)”とラベリングされる。図3Bには、これらCUについてのコスト計算処理及び分割判定(コスト比較)処理の順序の一例が概略的に示されている。コスト計算処理は“Cost[X]”と表現され、分割判定処理は“Compare[X]”と表現されている。Xは対象ブロックのラベルである。なお、実際には、いくつかの処理は並列的に行われてもよい。図3Bに示したように、最も多いケースでは、64+16+4+1=85回のコスト計算処理、及び16+4+1=21回の分割判定処理が実行されることになる。
しかし、図3Bに例示したように網羅的にコストの計算及び比較を実行しようとすると、処理の負荷が多大となり、エンコーダのリソース効率が低下する。例えば、バッテリー駆動されるモバイル機器では、過剰な負荷がバッテリー寿命を短くさせるであろう。十分なプロセッサ性能又はメモリ容量を有しない機器では、過剰な負荷が処理の正常な進行を妨げかねない。また、機器が十分なプロセッサ性能及びメモリ容量を有する場合であっても、処理量が多ければ符号化処理に長い時間が掛かる。そこで、次節より説明する実施形態において、処理の負荷を適切に制御することを可能とするために、通常の動作モードに加えて、新たな動作モードが提供される。新たな動作モードでは、処理対象とされる分割の深さを制限することにより、エンコーダのリソースが効率的に利用され、処理の負荷が軽減される。なお、本明細書では、便宜的に、通常の動作モードを「通常モード」、リソースが効率的に利用される動作モードを「リソース節約モード」という。
<2.第1の実施形態>
[2−1.全体的な構成]
図4は、第1の実施形態に係る画像符号化装置10の概略的な構成を示すブロック図である。図4を参照すると、画像符号化装置10は、並び替えバッファ11、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18、逆量子化部21、逆直交変換部22、加算部23、ループフィルタ24、フレームメモリ25、選択部26及び27、イントラ予測部30、インター予測部35並びにブロック分割部40を備える。
並び替えバッファ11は、一連の画像データに含まれる画像を並び替える。並び替えバッファ11は、符号化処理に係るGOP(Group of Pictures)構造に応じて画像を並び替えた後、並び替え後の画像データを減算部13、イントラ予測部30、インター予測部35及びブロック分割部40へ出力する。
減算部13には、並び替えバッファ11から入力される画像データ、及び後に説明するイントラ予測部30又はインター予測部35から入力される予測画像データが供給される。減算部13は、並び替えバッファ11から入力される画像データと予測画像データとの差分である予測誤差データを算出し、算出した予測誤差データを直交変換部14へ出力する。
直交変換部14は、減算部13から入力される予測誤差データについて直交変換を行う。直交変換部14により実行される直交変換は、例えば、離散コサイン変換(Discrete Cosine Transform:DCT)又はカルーネン・レーベ変換などであってよい。直交変換は、CUを分割することにより形成されるTU(変換単位)の各々について実行される。TUのサイズは、4×4画素、8×8画素、16×16画素及び32×32画素から適応的に選択される。直交変換部14は、直交変換処理により取得される変換係数データを量子化部15へ出力する。
量子化部15には、直交変換部14から入力される変換係数データ、及び後に説明するレート制御部18からのレート制御信号が供給される。量子化部15は、レート制御信号に従って決定される量子化ステップで変換係数データを量子化する。量子化部15は、量子化後の変換係数データ(以下、量子化データという)を可逆符号化部16及び逆量子化部21へ出力する。
可逆符号化部16は、量子化部15から入力される量子化データについて可逆符号化処理を行うことにより、符号化ストリームを生成する。また、可逆符号化部16は、デコーダにより参照される様々なパラメータを符号化して、符号化されたパラメータを符号化ストリームのヘッダ領域に挿入する。可逆符号化部16により符号化されるパラメータは、Quad-Tree構造を特定する上述したパラメータ、並びに後に説明するイントラ予測に関する情報及びインター予測に関する情報を含み得る。そして、可逆符号化部16は、生成した符号化ストリームを蓄積バッファ17へ出力する。
蓄積バッファ17は、可逆符号化部16から入力される符号化ストリームを半導体メモリなどの記憶媒体を用いて一時的に蓄積する。そして、蓄積バッファ17は、蓄積した符号化ストリームを、伝送路の帯域に応じたレートで、図示しない伝送部(例えば、通信インタフェース又は周辺機器との接続インタフェースなど)へ出力する。
レート制御部18は、蓄積バッファ17の空き容量を監視する。そして、レート制御部18は、蓄積バッファ17の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部15へ出力する。例えば、レート制御部18は、蓄積バッファ17の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、例えば、レート制御部18は、蓄積バッファ17の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
逆量子化部21、逆直交変換部22及び加算部23は、ローカルデコーダを構成する。逆量子化部21は、量子化部15により使用されたものと同じ量子化ステップで量子化データを逆量子化し、変換係数データを復元する。そして、逆量子化部21は、復元した変換係数データを逆直交変換部22へ出力する。
逆直交変換部22は、逆量子化部21から入力される変換係数データについて逆直交変換処理を行うことにより、予測誤差データを復元する。直交変換と同様、逆直交変換は、TUごとに実行される。そして、逆直交変換部22は、復元した予測誤差データを加算部23へ出力する。
加算部23は、逆直交変換部22から入力される復元された予測誤差データとイントラ予測部30又はインター予測部35から入力される予測画像データとを加算することにより、復号画像データ(リコンストラクト画像)を生成する。そして、加算部23は、生成した復号画像データをループフィルタ24及びフレームメモリ25へ出力する。
ループフィルタ24は、画質の向上を目的とする、デブロックフィルタ(DF)、サンプル適応オフセット(SAO)フィルタ及び適応ループフィルタ(ALF)などのフィルタ群を含む。ループフィルタ24は、加算部23から入力される復号画像データをフィルタリングし、フィルタリング後の復号画像データをフレームメモリ25へ出力する。
フレームメモリ25は、加算部23から入力されるフィルタリング前の復号画像データ、及びループフィルタ24から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
選択部26は、イントラ予測のために使用されるフィルタリング前の復号画像データをフレームメモリ25から読み出し、読み出した復号画像データを参照画像データとしてイントラ予測部30に供給する。また、選択部26は、インター予測のために使用されるフィルタリング後の復号画像データをフレームメモリ25から読み出し、読み出した復号画像データを参照画像データとしてインター予測部35に供給する。
選択部27は、イントラ予測モードにおいて、イントラ予測部30から出力されるイントラ予測の結果としての予測画像データを減算部13へ出力すると共に、イントラ予測に関する情報を可逆符号化部16へ出力する。また、選択部27は、インター予測モードにおいて、インター予測部35から出力されるインター予測の結果としての予測画像データを減算部13へ出力すると共に、インター予測に関する情報を可逆符号化部16へ出力する。選択部27は、イントラ予測モードとインター予測モードとを、コストの大きさに応じて切り替える。
イントラ予測部30は、原画像データ及び復号画像データに基づいて、CUを分割することにより形成されるPU(予測単位)ごとにイントラ予測処理を行う。例えば、イントラ予測部30は、予測モードセット内の各候補モードによる予測結果を所定のコスト関数を用いて評価する。次に、イントラ予測部30は、コストが最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適な予測モードとして選択する。また、イントラ予測部30は、当該最適な予測モードに従って予測画像データを生成する。そして、イントラ予測部30は、選択した最適な予測モードを表す予測モード情報を含むイントラ予測に関する情報、コスト、及び予測画像データを、選択部27へ出力する。
インター予測部35は、原画像データ及び復号画像データに基づいて、CUを分割することにより形成されるPUごとにインター予測処理を行う。例えば、インター予測部35は、予測モードセット内の各候補モードによる予測結果を所定のコスト関数を用いて評価する。次に、インター予測部35は、コストが最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適な予測モードとして選択する。また、インター予測部35は、当該最適な予測モードに従って予測画像データを生成する。そして、インター予測部35は、選択した最適な予測モードを表す予測モード情報と動き情報とを含むインター予測に関する情報、コスト、及び予測画像データを、選択部27へ出力する。
ブロック分割部40は、画像内に設定されるLCUの各々に、CUのQuad-Tree構造を設定する。より具体的には、ブロック分割部40は、画像にラスタ状にLCUを配置する。さらに、ブロック分割部40は、各LCUを複数の候補CUに分割する。そして、ブロック分割部40は、図2を用いて説明したように、あるサイズの4つの候補CU及び倍のサイズの候補CUについてコストを計算する。そして、4つの候補CUのコストの合計と倍のサイズの候補CUのコストとを比較し、倍のサイズの候補CUを分割するかを判定する。ブロック分割部40は、このようなコスト計算及び分割判定を、SCUサイズからLCUサイズに向けてコストを積み上げつつ実行し、符号化効率を最適化するCUのQuad-Tree構造を各LCUに設定する。また、本実施形態において、ブロック分割部40は、リソース効率に関する動作モードに従って、上述した処理におけるブロック分割の深さを制御する。動作モードの選択肢は少なくとも2種類提供され、第1の動作モードは通常モード、第2の動作モードはリソース節約モードである。リソース節約モードでは、コスト計算及び分割判定の対象となるCUサイズの範囲が、通常モードと比較して狭い範囲に制限される。なお、CUサイズの制限レベルの異なる、複数のリソース節約モードが提供されてもよい。
[2−2.ブロック分割部の詳細な構成]
本項では、ブロック分割部40の詳細な構成のいくつかの例を説明する。
(1)第1の構成例
図5Aは、ブロック分割部40の詳細な構成の第1の例を示すブロック図である。図5Aを参照すると、ブロック分割部40は、モード制御部41及びブロック設定部47を備える。モード制御部41及びブロック設定部47は、例えば、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)などのプロセッサにより実行されるプログラムモジュールであってよい。
モード制御部41は、リソース効率に関する動作モードを判定し、判定したモードに従ってブロック設定部47におけるブロック分割の深さを制御する。いかなる数の動作モードの候補が、モード制御部41により選択可能であってもよい。動作モードの候補は、例えば、上述した通常モード及びリソース節約モードを含む。通常モードが選択される場合、モード制御部41は、ブロック分割の深さを制限せず、CUの利用可能な様々なサイズを活用して、画像が高い画質で復号されることを可能とする。一方、リソース節約モードは、通常モードと比較してリソース効率が優先されるべきことを示す。リソース節約モードが選択される場合、モード制御部41は、ブロック設定部47におけるブロック分割の深さを制限する。
一例として、リソース効率は、バッテリーの利用効率を意味してもよい。この場合、リソース節約モードでは、画質よりもバッテリー消費の低減が優先される。モード制御部41は、例えば、画像符号化装置10に電力を供給するバッテリーの残量をモニタリングし、バッテリー残量が閾値を下回る場合に、動作モードをリソース節約モードに自動的に設定してもよい。バッテリー残量が閾値を下回らない場合には、動作モードは、通常モードに設定され得る。その代わりに、モード制御部41は、例えば、画像符号化装置10が外部電源に接続されていない(即ち、バッテリーにより駆動されている)場合に、動作モードをリソース節約モードに自動的に設定してもよい。画像符号化装置10が外部電源に接続されている場合には、動作モードは、通常モードに設定され得る。また、モード制御部41は、これら2つの基準を組合せてもよい。例えば、画像符号化装置10が外部電源に接続されておらず且つバッテリー残量が閾値を下回る場合に、リソース節約モードが設定されてもよい。
他の例として、リソース効率は、プロセッサ、メモリ又は論理回路などの処理リソースの利用効率を意味してもよい。この場合、リソース節約モードでは、処理リソースを効率的に利用することが優先される。そして、例えば発生する余剰の処理リソースを用いて、高フレームレート化が実現されてもよい。その代わりに、後続する処理を前倒して実行することにより、符号化処理が高速化されてもよい。
モード制御部41は、ユーザ入力により指定される動作モードを設定してもよい。ユーザ入力は、装置に設けられるタッチパネル、ボタン、スイッチ、ダイヤル又は音声入力インタフェースなどのユーザインタフェースを介して取得され得る。図6A及び図6Bは、動作モードをユーザに指定させるためのユーザインタフェースの例をそれぞれ示している。図6Aの第1の例において、動作モード指定ウィンドウW1は、タッチパネルに表示され得るウィンドウである。動作モード指定ウィンドウW1は、スライダSD1を含む。ユーザは、スライダSD1を左右へドラッグすることにより、3つの動作モードのうちの1つを指定することができる。スライダSD1が左端に位置する場合、リソース効率モードが選択され、例えばバッテリー消費の低減が優先され得る。スライダSD1が右端に位置する場合、通常モードが選択され、画質が優先され得る。スライダSD1が中央に位置する場合、中間的な動作モードが選択され得る。図6Bの第2の例において、動作モード指定ウィンドウW2は、画面に表示され得るウィンドウである。動作モード指定ウィンドウW2は、チェックボックスCB1を含む。ユーザは、チェックボックスCB1にリストアップされた候補のいずれかを指定することにより、2つの動作モードのうちの1つを指定することができる。例えば、上の候補が指定された場合、リソース効率モードの一種である高速モードが選択され、符号化処理の高速化のためにブロック分割の深さが制限される。下の候補が指定された場合、通常モードが選択され、処理速度よりも画質が優先され得る。なお、図6A及び図6Bに示したように動作モードをユーザに指定させる代わりに、分割の深さの制限値をユーザに指定させるユーザインタフェースが提供されてもよい。
また別の例として、モード制御部41は、画像を撮像する装置の動きが速い場合に、動作モードをリソース節約モードに自動的に設定してもよい。例えば、モード制御部41は、カメラに併設されるセンサ(例えば、加速度センサ又はジャイロセンサなど)の出力に基づくカメラの動きを表す指標(加速度、速度又は角速度など)をモニタリングし、当該指標が閾値を上回る場合に、動作モードをリソース節約モードに設定し得る。一般的に、カメラの動きが速い場合には、予測符号化の精度の低下に起因して、高い画質を維持することは困難である。また、ユーザの視覚特性は、画角が高速に変化している最中の画質の劣化をあまり感知しない傾向を有する。従って、カメラの動きが速い状況下でリソース節約モードを自動的に設定して、画質の維持よりもリソースの効率的な利用を優先することが有益である。
ブロック設定部47は、1つ以上のLCUの各々に、当該LCUを再帰的に分割することにより形成されるQuad-Tree構造を有する1つ以上のCUを設定する。上述したように、CUの利用可能なサイズの範囲は、SCUサイズ及びLCUサイズによって定義される。ブロック設定部47は、候補CUごとに、原画像データ、並びにイントラ予測及びインター予測の予測結果などの入力情報をコスト関数に入力することにより、コストを計算する。そして、ブロック設定部47は、候補CUと当該候補CUに対応するより小さい4つのCUとの間でコストを比較することにより、当該候補CUを分割するかを判定する。ブロック設定部47は、このようなコスト計算及び分割判定をSCUサイズからLCUサイズに向かう順序で繰り返し実行し、その結果として導かれるCUのQuad-Tree構造を各LCUに設定する。
ブロック設定部47は、各LCUに設定したQuad-Tree構造を特定するためのパラメータを生成する。ブロック設定部47により生成されるパラメータは、SCUサイズ及びLCUサイズを特定するパラメータに加えて、ブロック分割の深さを特定する分割フラグのセットを含む。分割フラグは、再帰的に指定される。即ち、あるブロックが4つのCUに分割されると、その分割を指定する分割フラグが生成された上で、さらに当該4つのCUの各々を分割するかを示す分割フラグが生成される。ブロック設定部47により生成されるこれらパラメータは、可逆符号化部16により符号化される。
ブロック設定部47におけるブロック分割の深さは、上述したように、モード制御部41により、リソース効率に関する動作モードに従って制御される。一例として、モード制御部41は、リソース節約モードにおいて、複数の利用可能なサイズのうちより小さいサイズをCUが有しないように、ブロック設定部47におけるブロック分割の深さを制限してもよい。この場合、深いレイヤでのブロック分割が抑制される。深いレイヤでのブロック分割を抑制する第1の手法は、モード制御部41が、SCUサイズと等しいサイズを有するCUについてのコスト計算及びコスト比較をブロック設定部47にスキップさせることである。SCUサイズの倍のサイズを有するCUについての分割フラグは、いずれもゼロ(分割せず)を示す。第1の手法によれば、SCUサイズの設定を維持したままで、即ちSPSを更新することなく、分割の深さを変化させることができる。SCUサイズよりも大きいサイズを有するCUについてのコスト計算及びコスト比較がさらにスキップされてもよい。深いレイヤでのブロック分割を抑制する第2の手法は、モード制御部41が、SCUサイズの値を調整し、通常モードよりも引き上げることである。第2の手法によれば、Quad-Tree構造を特定するために要する分割フラグの数を削減することができる。また、SPSが再定義される結果として、どのタイミングで動作モードが通常モードとリソース節約モードとの間で切り替わったかをユーザが容易に知ることができる。
他の例として、モード制御部41は、リソース節約モードにおいて、複数の利用可能なサイズのうちより大きいサイズをCUが有しないように、ブロック設定部47におけるブロック分割の深さを制限してもよい。この場合、浅いレイヤにおいてブロック分割が強制される。浅いレイヤにおいてブロック分割を強制する第1の手法は、モード制御部41が、LCUサイズと等しいサイズを有するCUについてのコスト計算及びコスト比較をブロック設定部47にスキップさせることである。LCUサイズと等しいサイズを有するCUについての分割フラグは、いずれも1(分割する)を示す。第1の手法によれば、LCUサイズの設定を維持したままで、即ちSPSを更新することなく、分割の深さを変化させることができる。LCUサイズよりも小さいサイズを有するCUについてのコスト計算及びコスト比較がさらにスキップされてもよい。浅いレイヤにおいてブロック分割を強制する第2の手法は、モード制御部41が、LCUサイズの値を調整し、通常モードよりも引き下げることである。第2の手法によれば、Quad-Tree構造を特定するために要する分割フラグの数を削減することができる。また、SPSが再定義される結果として、どのタイミングで動作モードが通常モードとリソース節約モードとの間で切り替わったかをユーザが容易に知ることができる。なお、LCUサイズが変化する場合、画像内のブロックのスキャン順序が変化する。
(2)第2の構成例
図5Bは、ブロック分割部40の詳細な構成の第2の例を示すブロック図である。図5Bを参照すると、第2の例においても、ブロック分割部40は、モード制御部41及びブロック設定部47を備える。モード制御部41及びブロック設定部47は、第1の構成例において説明したものと同等の機能をそれぞれ有する。但し、第2の構成例において、各部は、論理的なプログラムモジュールとして実現されるのではなく、専用の論理回路として実現される。
モード制御部41は、モード判定部43及びクロック生成部45を含む。ブロック設定部47は、8×8計算部49a、16×16計算部49b、32×32計算部49c、64×46計算部49d、及び比較部51を含む。8×8計算部49a、16×16計算部49b、32×32計算部49c、64×46計算部49dは、並列的に、クロック生成部45と比較部51との間に接続される
モード判定部43は、リソース効率に関する動作モードを判定する。モード判定部43は、通常モードとリソース節約モードとの間で、ユーザインタフェースを介するユーザ入力に従って動作モードを切り替えてもよく、又は自動的に動作モードを切り替えてもよい。例えば、モード判定部43は、ユーザ入力に従って、バッテリー消費の低減、高フレームレート化又は高速化のために、動作モードをリソース節約モードに設定してもよい。また、モード判定部43は、バッテリー残量が閾値を下回る場合、又は画像符号化装置10が外部電源に接続されていない場合に、バッテリー消費の低減のために、動作モードをリソース節約モードに設定してもよい。また、モード判定部43は、画像を撮像する装置の動きが速い場合に、動作モードをリソース節約モードに設定してもよい。
クロック生成部45は、クロック信号を生成し、生成したクロック信号を8×8計算部49a、16×16計算部49b、32×32計算部49c及び64×46計算部49dへ提供する。8×8計算部49a、16×16計算部49b、32×32計算部49c及び64×46計算部49dは、クロック生成部45から提供されるクロック信号を用いて、それぞれ対応するサイズを有する候補CUについてのコスト計算を実行する。通常モードにおいて、SCUサイズが8×8画素、LCUサイズが64×64画素であれば、クロック生成部45は、8×8計算部49a、16×16計算部49b、32×32計算部49c及び64×46計算部49dの全てへクロック信号を提供する。リソース節約モードにおいて、深いレイヤでのブロック分割が抑制される場合、クロック生成部45は、8×8計算部49aへのクロック信号の提供を停止する。クロック生成部45は、複数の計算部(例えば、8×8計算部49a及び16×16計算部49b)へのクロック信号の提供を停止してもよい。リソース節約モードにおいて、浅いレイヤのブロック分割が強制される場合、クロック生成部45は、64×64計算部49aへのクロック信号の提供を停止する。クロック生成部45は、複数の計算部(例えば、32×32計算部49c及び64×64計算部49d)へのクロック信号の提供を停止してもよい。クロック生成部45は、SCUサイズよりも小さいサイズに対応する計算部には、クロック信号を提供しない。同様に、クロック生成部45は、LCUサイズよりも大きいサイズに対応する計算部には、クロック信号を提供しない。
8×8計算部49aは、クロック生成部45から提供されるクロック信号を用いて、8×8画素のサイズを有する候補CUについて、コスト計算を実行する。そして、8×8計算部49aは、計算したコストを比較部51へ出力する。16×16計算部49bは、クロック生成部45から提供されるクロック信号を用いて、16×16画素のサイズを有する候補CUについて、コスト計算を実行する。そして、16×16計算部49bは、計算したコストを比較部51へ出力する。32×32計算部49cは、クロック生成部45から提供されるクロック信号を用いて、32×32画素のサイズを有する候補CUについて、コスト計算を実行する。そして、32×32計算部49cは、計算したコストを比較部51へ出力する。64×64計算部49dは、クロック生成部45から提供されるクロック信号を用いて、64×64画素のサイズを有する候補CUについて、コスト計算を実行する。そして、64×646計算部49dは、計算したコストを比較部51へ出力する。
比較部51は、あるサイズの候補CUと当該候補CUに対応するより小さい4つのCUとの間で、計算されたコストを比較することにより、当該候補CUを分割するかを判定する。比較部51は、SCUサイズからLCUサイズに向かう順序で、こうした分割判定を繰り返し実行する。あるサイズについてクロック信号の提供が停止されコスト計算がスキップされた場合には、比較部51は、当該サイズに関連する分割判定をスキップする。そして、比較部51は、一連の分割判定の結果として導かれる各LCUのQuad-Tree構造を特定するためのパラメータを生成し、生成したパラメータを可逆符号化部16へ出力する。
(3)第3の構成例
図5Cは、ブロック分割部40の詳細な構成の第3の例を示すブロック図である。図5Cを参照すると、第3の例においても、ブロック分割部40は、モード制御部41及びブロック設定部47を備える。モード制御部41及びブロック設定部47は、第1の構成例において説明したものと同等の機能をそれぞれ有する。但し、第3の構成例において、各部は、論理的なプログラムモジュールとして実現されるのではなく、専用の論理回路として実現される。
モード制御部41は、モード判定部44及びクロック生成部46を含む。ブロック設定部47は、コスト計算部50、及び比較部52を含む。第2の構成例と異なり、第3の構成例において、コスト計算部50は、一連の候補CUについてコスト計算処理を直列的に実行する。
モード判定部44は、リソース効率に関する動作モードを判定する。モード判定部44は、通常モードとリソース節約モードとの間で、ユーザインタフェースを介するユーザ入力に従って動作モードを切り替えてもよく、又は自動的に動作モードを切り替えてもよい。例えば、モード判定部44は、ユーザ入力に従って、バッテリー消費の低減、高フレームレート化又は高速化のために、動作モードをリソース節約モードに設定してもよい。また、モード判定部44は、バッテリー残量が閾値を下回る場合、又は画像符号化装置10が外部電源に接続されていない場合に、バッテリー消費の低減のために、動作モードをリソース節約モードに設定してもよい。また、モード判定部44は、画像を撮像する装置の動きが速い場合に、動作モードをリソース節約モードに設定してもよい。
クロック生成部46は、クロック信号を生成し、生成したクロック信号をコスト計算部50へ提供する。コスト計算部50は、クロック生成部46から提供されるクロック信号を用いて、一連の候補CUの各々についてのコスト計算を実行する。バッテリー消費の低減のためにリソース節約モードが設定された場合、クロック生成部46は、スキップされるコスト計算が実行されるはずであった期間において、クロック信号の提供を一時的に停止してもよい。高速化のためにリソース節約モードが設定された場合、クロック生成部46からコスト計算部50へのクロック信号の提供は停止されず、いくつかの候補CUについてコスト計算がスキップされる結果としてブロック分割はより早く終了する。高フレームレート化のためにリソース節約モードが設定された場合にも、クロック生成部46からコスト計算部50へのクロック信号の提供は停止されず、一部の候補CUについてコスト計算をスキップすることにより発生する余剰の処理リソースが高フレームレート化のために使用される。
コスト計算部50は、クロック生成部46から提供されるクロック信号を用いて、様々なサイズを有する候補CUについて、コスト計算を実行する。そして、コスト計算部50は、計算したコストを比較部52へ順次出力する。
比較部52は、あるサイズの候補CUと当該候補CUに対応するより小さい4つのCUとの間で、計算されたコストを比較することにより、当該候補CUを分割するかを判定する。比較部52は、SCUサイズからLCUサイズに向かう順序で、こうした分割判定を繰り返し実行する。あるサイズについてコスト計算がスキップされた場合には、比較部52は、当該サイズに関連する分割判定をスキップする。そして、比較部52は、一連の分割判定の結果として導かれる各LCUのQuad-Tree構造を特定するためのパラメータを生成し、生成したパラメータを可逆符号化部16へ出力する。
[2−3.動作モードとリソース効率との間の関係]
(1)並列処理−第1の例
図7Aは、並列処理における動作モードとリソース効率との間の関係の第1の例を示す説明図である。図中の水平方向は時間軸に対応し、中空の太線枠は実行されるコスト計算を、中実の太線枠は実行される分割判定処理を、点線枠はスキップされる処理を示している。
図7Aの上段に示された処理のシーケンスは、動作モードM11におけるシーケンスを例示しており、動作モードM11は通常モードである。通常モードにおいて、8×8画素、16×16画素、32×32画素及び64×64画素の候補CUについてのコスト計算が並列的に実行され得る。16×16画素の1つの候補CUについてコスト計算が終了すると、当該候補CUについて分割判定が実行される。32×32画素の1つの候補CUについてコスト計算が終了すると、当該候補CUについて分割判定が実行される。64×64画素の1つの候補CUについてコスト計算が終了すると、当該候補CUについて分割判定が実行される。
図7Aの中段に示された処理のシーケンスは、動作モードM12におけるシーケンスを例示しており、動作モードM12はリソース節約モードである。このリソース節約モードにおいて、16×16画素、32×32画素及び64×64画素の候補CUについてのコスト計算が並列的に実行される一方で、8×8画素の候補CUについてのコスト計算はスキップされる。16×16画素の候補CUについての分割判定もまたスキップされる。それにより、バッテリーの消費量又はその他のリソースの使用量が低減される。
図7Aの下段に示された処理のシーケンスは、動作モードM13におけるシーケンスを例示しており、動作モードM13はより強いリソース節約モードである。このリソース節約モードにおいて、32×32画素及び64×64画素の候補CUについてのコスト計算が並列的に実行される一方で、8×8画素及び16×16画素の候補CUについてのコスト計算はスキップされる。16×16画素及び32×32画素の候補CUについての分割判定もまたスキップされる。それにより、バッテリーの消費量又はその他のリソースの使用量は、一層低減される。
(2)並列処理−第2の例
図7Bは、並列処理における動作モードとリソース効率との間の関係の第2の例を示す説明図である。
図7Bの上段に示された処理のシーケンスは、動作モードM21におけるシーケンスを例示しており、動作モードM21は通常モードである。動作モードM21におけるシーケンスは、図7Aの上段に示した動作モードM11のシーケンスと実質的に等しい。
図7Bの中段に示された処理のシーケンスは、動作モードM22におけるシーケンスを例示しており、動作モードM22はリソース節約モードである。このリソース節約モードにおいて、8×8画素、16×16画素及び32×32画素の候補CUについてのコスト計算が並列的に実行される一方で、64×64画素の候補CUについてのコスト計算はスキップされる。64×64画素の候補CUについての分割判定もまたスキップされる。それにより、バッテリーの消費量又はその他のリソースの使用量が低減される。
図7Bの下段に示された処理のシーケンスは、動作モードM23におけるシーケンスを例示しており、動作モードM23はより強いリソース節約モードである。このリソース節約モードにおいて、8×8画素及び16×16画素の候補CUについてのコスト計算が並列的に実行される一方で、32×32画素及び64×64画素の候補CUについてのコスト計算はスキップされる。32×32画素及び64×64画素の候補CUについての分割判定もまたスキップされる。それにより、バッテリーの消費量又はその他のリソースの使用量は、一層低減される。
(3)直列処理−第1の例
図8Aは、直列処理における動作モードとリソース効率との間の関係の第1の例を示す説明図である。
図8Aの上段に示された処理のシーケンスは、動作モードM31におけるシーケンスを例示しており、動作モードM31は通常モードである。通常モードにおいて、8×8画素の4つの候補CU及び対応する16×16画素の候補CUについてコスト計算が終了すると、当該16×16画素の候補CUについて分割判定が実行される。また、16×16画素の4つの候補CUについて分割判定が終了すると、対応する32×32画素の候補CUについてコスト計算及び分割判定が実行される。また、32×32画素の4つの候補CUについて分割判定が終了すると、対応する64×64画素の候補CUについてコスト計算及び分割判定が実行される。
図8Aの中段に示された処理のシーケンスは、動作モードM32におけるシーケンスを例示しており、動作モードM32はリソース節約モードである。このリソース節約モードにおいて、8×8画素の候補CUについてのコスト計算、及び16×16画素の候補CUについての分割判定がスキップされる。それにより、バッテリーの消費量又はその他のリソースの使用量が低減される。
図8Aの下段に示された処理のシーケンスは、動作モードM33におけるシーケンスを例示しており、動作モードM33はより強いリソース節約モードである。このリソース節約モードにおいて、8×8画素及び16×16画素の候補CUについてのコスト計算はスキップされる。16×16画素及び32×32画素の候補CUについての分割判定もまたスキップされる。それにより、バッテリーの消費量又はその他のリソースの使用量は、一層低減される。
(4)直列処理−第2の例
図8Bは、直列処理における動作モードとリソース効率との間の関係の第2の例を示す説明図である。
図8Bの上段に示された処理のシーケンスは、動作モードM41におけるシーケンスを例示しており、動作モードM41は通常モードである。動作モードM41におけるシーケンスは、図8Aの上段に示した動作モードM31のシーケンスと実質的に等しい。
図8Bの中段に示された処理のシーケンスは、動作モードM42におけるシーケンスを例示しており、動作モードM42はリソース節約モードである。このリソース節約モードにおいて、64×64画素の候補CUについてのコスト計算及び分割判定がスキップされる。それにより、バッテリーの消費量又はその他のリソースの使用量が低減される。
図8Bの下段に示された処理のシーケンスは、動作モードM43におけるシーケンスを例示しており、動作モードM43はより強いリソース節約モードである。このリソース節約モードにおいて、32×32画素及び64×64画素の候補CUについてのコスト計算はスキップされる。32×32画素及び64×64画素の候補CUについての分割判定もまたスキップされる。それにより、バッテリーの消費量又はその他のリソースの使用量は、一層低減される。
(5)高フレームレート化及び高速化
図7A〜図8Bに示した例では、点線枠で示された処理がスキップされる結果として、余剰のリソースが発生する。スキップのタイミングで何も処理が実行されなければ、バッテリー消費の時間平均は低減される。その代わりに、発生した余剰のリソースを用いて追加的なフレームの符号化処理を実行することにより、高フレームレート化が実現されてもよい。一例として、通常モードにおいて60fps(frames per second)のフレームレートが提供されるのに対して、リソース節約モードにおいて120fpsの高いフレームレートが提供されてもよい。
また、ある処理がスキップされる場合に、後続する処理のタイミングを早めることにより、符号化処理の高速化が実現されてもよい。図9は、符号化処理の高速化について説明するための説明図である。図9の上段に示された処理のシーケンスは、動作モードM51におけるシーケンスを例示しており、動作モードM51は通常モードである。動作モードM51におけるシーケンスは、図8Aの上段に示した動作モードM31のシーケンスと実質的に等しい。図9の下段に示された処理のシーケンスは、動作モードM52におけるシーケンスを例示しており、動作モードM52はリソース節約モードである。このリソース節約モードにおいて、8×8画素の候補CUについてのコスト計算、及び16×16画素の候補CUについての分割判定がスキップされる。そして、図中の点線矢印で示されているように、スキップされる処理に後続する処理は、前倒して実行される。その結果、動作モードM52において、ブロック分割に要する処理時間を短縮し、符号化処理を高速化させることができる。
[2−4.処理の流れ]
(1)概略的な流れ
図10は、ブロック分割部40により実行されるブロック分割処理の概略的な流れの一例を示すフローチャートである。ブロック分割部40は、図10に示したブロック分割処理を、映像を構成する一連の画像の各々について実行する。
図10を参照すると、まず、ブロック分割部40のモード制御部41は、後述するモード判定処理を実行する(ステップS10)。その結果、通常モード及びリソース節約モードを含む複数の候補から選択される動作モードが、ブロック分割部40に設定される。
その後の処理は、画像にラスタ状に配置されるLCUの各々について繰り返される。各繰り返しにおいて、ブロック設定部47は、まず、処理対象のLCUである注目LCUを決定する(ステップS20)。LCUは、典型的には、ラスタスキャンの順序で処理対象となる。
そして、ブロック分割処理はその時点の動作モードに依存して分岐する(ステップS25)。動作モードが通常モードである場合、ブロック設定部47は、注目LCUについて通常モードのブロック設定処理を実行する(ステップS30)。動作モードがリソース節約モードである場合、ブロック設定部47は、注目LCUについてリソース節約モードのブロック設定処理を実行する(ステップS50)。なお、図示された例に限定されず、ブロック分割処理は3種類以上の動作モードに対応する処理に分岐してもよい。
注目LCUについてブロック設定処理が終了すると、ブロック設定部47は、画像内に未処理のLCUが残っているかを判定する(ステップS90)。そして、未処理のLCUが残っている場合には、処理はステップS20へ戻り、次のLCUが新たな注目LCUとなる。未処理のLCUが残っていない場合には、当該画像についてのブロック分割処理は終了する。
(2)モード判定処理
図11Aは、モード判定処理の詳細な流れの第1の例を示すフローチャートである。第1の例において、まず、モード制御部41は、ユーザインタフェースを介して取得されるユーザ入力を識別する(ステップS11)。ここでのユーザインタフェースは、図6A及び図6Bに例示したようなGUI(Graphical User Interface)であってもよい。また、簡易なボタン若しくはスイッチなどの物理的なUI又は音声UIが使用されてもよい。そして、モード制御部41は、識別したユーザ入力に対応する動作モードを、ブロック分割部40に設定する。なお、図示された例に限定されず、3つ以上の候補から動作モードが選択されてもよい。
図11Bは、モード判定処理の詳細な流れの第2の例を示すフローチャートである。第2の例において、まず、モード制御部41は、バッテリー残量をモニタリングする(ステップS12)。そして、モード制御部41は、その時点のバッテリー残量が所定の閾値を上回るかを判定する(ステップS15)。バッテリー残量が閾値を上回る場合、モード制御部41は、動作モードとして通常モードを設定する(ステップS19a)。一方、バッテリー残量が閾値を上回らない場合、モード制御部41は、動作モードとしてリソース節約モードを設定する(ステップS19b)。なお、図示された例に限定されず、2つ以上の閾値を用いて3つ以上の候補から動作モードが選択されてもよい。
図11Cは、モード判定処理の詳細な流れの第3の例を示すフローチャートである。第3の例において、まず、モード制御部41は、外部電源への接続を判定する(ステップS13)。そして、モード制御部41は、その時点で画像符号化装置10が外部電源に接続されている場合(ステップS16)、動作モードとして通常モードを設定する(ステップS19a)。一方、画像符号化装置10が外部電源に接続されていない場合、モード制御部41は、動作モードとしてリソース節約モードを設定する(ステップS19b)。
図11Dは、モード判定処理の詳細な流れの第4の例を示すフローチャートである。第4の例において、まず、モード制御部41は、カメラの動きをモニタリングする(ステップS14)。そして、モード制御部41は、カメラの動きが速いか否かを、例えばカメラの動きを表す指標を閾値と比較することにより判定する(ステップS17)。カメラの動きが速くないと判定された場合、モード制御部41は、動作モードとして通常モードを設定する(ステップS19a)。一方、カメラの動きが速いと判定された場合、モード制御部41は、動作モードとしてリソース節約モードを設定する(ステップS19b)。なお、図示された例に限定されず、2つ以上の閾値を用いて3つ以上の候補から動作モードが選択されてもよい。
(3)通常モードでのブロック設定処理
図12は、通常モードでのブロック設定処理の詳細な流れの一例を示すフローチャートである。図12に示したブロック設定処理は、注目LCUの各々について実行される。
図12を参照すると、まず、ブロック設定部47は、注目LCU内のN×N画素の4つのCUについてコストを計算する(ステップS31)。ここでのNは、SCUサイズに等しい。次に、ブロック設定部47は、当該4つのCUに対応する2N×2N画素の1つのCUについてコストを計算する(ステップS32)。次に、ブロック設定部47は、ステップS31において計算したコストの合計とステップS32において計算したコストとを比較することにより、2N×2N画素のCUを分割するかを判定する(ステップS33)。例えば、前者のコストがより低い場合には、ブロック設定部47は、2N×2N画素のCUを分割することを決定する。一方、後者のコストがより低い場合には、ブロック設定部47は、2N×2N画素のCUを分割しないことを決定する。
次に、ブロック設定部47は、当該2N×2N画素のCUがLCUに等しいかを判定する(ステップS34)。当該2N×2N画素のCUがLCUに等しい場合には、図12に示したブロック設定処理は終了する。一方、そうでない場合には、処理はステップS35へ進む。
ステップS35において、ブロック設定部47は、2N×2N画素の4つのCUについて分割判定が終了したかを判定する(ステップS35)。ここで、2N×2N画素の4つのCUについて分割判定が終了していない場合には、処理はステップS31へ戻り、次の2N×2N画素のCUについての分割判定のための処理が実行される。
2N×2N画素の4つのCUについて分割判定が終了した場合、ブロック設定部47は、当該4つのCUに対応する4N×4N画素の1つのCUについてコストを計算する(ステップS36)。次に、ブロック設定部47は、2N×2N画素の4つのCUのコストの合計とステップS36において計算したコストとを比較することにより、4N×4N画素のCUを分割するかを判定する(ステップS37)。例えば、前者のコストがより低い場合には、ブロック設定部47は、4N×4N画素のCUを分割することを決定する。一方、後者のコストがより低い場合には、ブロック設定部47は、4N×4N画素のCUを分割しないことを決定する。
次に、ブロック設定部47は、当該4N×4N画素のCUがLCUに等しいかを判定する(ステップS38)。当該4N×4N画素のCUがLCUに等しい場合には、図12に示したブロック設定処理は終了する。一方、そうでない場合には、処理はステップS39へ進む。
ステップS39において、ブロック設定部47は、4N×4N画素の4つのCUについて分割判定が終了したかを判定する(ステップS39)。ここで、4N×4N画素の4つのCUについて分割判定が終了していない場合には、処理はステップS31へ戻り、次の4N×4N画素のCU(及びより小さいCU)についての分割判定のための処理が実行される。
4N×4N画素の4つのCUについて分割判定が終了した場合、ブロック設定部47は、当該4つのCUに対応する8N×8N画素の1つのCUについてコストを計算する(ステップS40)。次に、ブロック設定部47は、4N×4N画素の4つのCUのコストの合計とステップS40において計算したコストとを比較することにより、8N×8N画素のCUを分割するかを判定する(ステップS41)。例えば、前者のコストがより低い場合には、ブロック設定部47は、8N×8N画素のCUを分割することを決定する。一方、後者のコストがより低い場合には、ブロック設定部47は、8N×8N画素のCUを分割しないことを決定する。SCUサイズ及びLCUサイズの制約から、8N×8N画素のCUはLCUに等しいため、8N×8N画素のCUについて分割判定が終了すると、図12に示したブロック設定処理は終了する。
(4)リソース節約モードでのブロック設定処理−第1の例
図13Aは、リソース節約モードでのブロック設定処理の詳細な流れの第1の例を示すフローチャートである。第1の例では、利用可能なサイズのうち最も小さいサイズをCUが有しないように、ブロック分割の深さが制限される。SCUサイズの設定は、動作モードによらず維持される。
図13Aを参照すると、まず、ブロック設定部47は、注目LCU内のN×N画素の4つのCUについてコスト計算をスキップする(ステップS51a)。ここでのNは、SCUサイズに等しい。次に、ブロック設定部47は、当該4つのCUに対応する2N×2N画素の1つのCUについてコストを計算する(ステップS52)。次に、ブロック設定部47は、2N×2N画素のCUについての分割判定をスキップし、当該2N×2N画素のCUを分割しないことを示す分割フラグを生成する(ステップS53a)。
次に、ブロック設定部47は、当該2N×2N画素のCUがLCUに等しいかを判定する(ステップS54a)。当該2N×2N画素のCUがLCUに等しい場合には、図13Aに示したブロック設定処理は終了する。一方、そうでない場合には、処理はステップS55aへ進む。
ステップS55aにおいて、ブロック設定部47は、2N×2N画素の4つのCUについて分割フラグの生成が終了したかを判定する(ステップS55a)。ここで、分割フラグの生成が終了していない場合には、処理はステップS51aへ戻る。
2N×2N画素の4つのCUについて分割フラグの生成が終了した場合、ブロック設定部47は、当該4つのCUに対応する4N×4N画素の1つのCUについてコストを計算する(ステップS56a)。次に、ブロック設定部47は、2N×2N画素の4つのCUのコストの合計とステップS56aにおいて計算したコストとを比較することにより、4N×4N画素のCUを分割するかを判定し、判定結果に対応する分割フラグを生成する(ステップS57a)。
次に、ブロック設定部47は、当該4N×4N画素のCUがLCUに等しいかを判定する(ステップS58)。当該4N×4N画素のCUがLCUに等しい場合には、図13Aに示したブロック設定処理は終了する。一方、そうでない場合には、処理はステップS59へ進む。
ステップS59において、ブロック設定部47は、4N×4N画素の4つのCUについて分割判定が終了したかを判定する(ステップS59)。ここで、4N×4N画素の4つのCUについて分割判定が終了していない場合には、処理はステップS51へ戻り、次の4N×4N画素のCUについての分割判定のための処理が実行される。
4N×4N画素の4つのCUについて分割判定が終了した場合、ブロック設定部47は、当該4つのCUに対応する8N×8N画素の1つのCUについてコストを計算する(ステップS60a)。次に、ブロック設定部47は、4N×4N画素の4つのCUのコストの合計とステップS60aにおいて計算したコストとを比較することにより、8N×8N画素のCUを分割するかを判定し、判定結果に対応する分割フラグを生成する(ステップS61a)。8N×8N画素のCUについて分割判定が終了すると、図13Aに示したブロック設定処理は終了する。
(5)リソース節約モードでのブロック設定処理−第2の例
図13Bは、リソース節約モードでのブロック設定処理の詳細な流れの第2の例を示すフローチャートである。第2の例では、利用可能なサイズのうち最も小さいサイズをCUが有しないように、ブロック分割の深さが制限される。SCUサイズは、通常モードの2倍の値に再設定される。
図13Bを参照すると、まず、モード制御部41は、SCUサイズをN×N画素からM×M画素(M=2N)に更新する(ステップS70a)
次に、ブロック設定部47は、注目LCU内のM×M画素の4つのCUについてコストを計算する(ステップS71a)。次に、ブロック設定部47は、当該4つのCUに対応する2M×2M画素の1つのCUについてコストを計算する(ステップS72)。次に、ブロック設定部47は、ステップS71aにおいて計算したコストの合計とステップS72において計算したコストとを比較することにより、2M×2M画素のCUを分割するかを判定し、判定結果に対応する分割フラグを生成する(ステップS73a)。
次に、ブロック設定部47は、当該2M×2M画素のCUがLCUに等しいかを判定する(ステップS74a)。当該2M×2M画素のCUがLCUに等しい場合には、図13Bに示したブロック設定処理は終了する。一方、そうでない場合には、処理はステップS75へ進む。
ステップS75において、ブロック設定部47は、2M×2M画素の4つのCUについて分割判定が終了したかを判定する(ステップS75a)。ここで、2M×2M画素の4つのCUについて分割判定が終了していない場合には、処理はステップS71aへ戻る。
2M×2M画素の4つのCUについて分割判定が終了した場合、ブロック設定部47は、当該4つのCUに対応する4M×4M画素の1つのCUについてコストを計算する(ステップS76)。次に、ブロック設定部47は、2M×2M画素の4つのCUのコストの合計とステップS76において計算したコストとを比較することにより、4M×4M画素のCUを分割するかを判定し、判定結果に対応する分割フラグを生成する(ステップS77)。4M×4M画素のCUについて分割判定が終了すると、図13Bに示したブロック設定処理は終了する。
図13A及び図13Bに示した2つの例では、上述したように、深いレイヤでのブロック分割が抑制される。例えば、8×8画素のCUへのブロック分割が抑制される場合、図3Bに示したコスト計算処理及び分割判定処理のうち、64回のコスト計算処理(Cost[8×8(0)]〜Cost[8×8(63)])及び16回の分割判定処理(Compare[16×16(0)]〜Compare[16×16(15)])をスキップすることができる。また、例えば、16×16画素のCUへのブロック分割が抑制される場合、さらに16回のコスト計算処理(Cost[16×16(0)]〜Cost[16×16(15)])及び4回の分割判定処理(Compare[32×32(0)]〜Compare[32×32(3)])をスキップすることができる。
(6)リソース節約モードでのブロック設定処理−第3の例
図13Cは、リソース節約モードでのブロック設定処理の詳細な流れの第3の例を示すフローチャートである。第3の例では、利用可能なサイズのうち最も大きいサイズをCUが有しないように、ブロック分割の深さが制限される。LCUサイズの設定は、動作モードによらず維持される。
図13Cを参照すると、まず、ブロック設定部47は、注目LCU内のN×N画素の4つのCUについてコストを計算する(ステップS51b)。ここでのNは、SCUサイズに等しい。次に、ブロック設定部47は、当該4つのCUに対応する2N×2N画素の1つのCUについてコストを計算する(ステップS52)。次に、ブロック設定部47は、ステップS51bにおいて計算したコストの合計とステップS52において計算したコストとを比較することにより、2N×2N画素のCUを分割するかを判定し、判定結果に対応する分割フラグを生成する(ステップS53b)。
次に、ブロック設定部47は、2N×2N画素の4つのCUについて分割判定が終了したかを判定する(ステップS54b)。ここで、分割判定が終了していない場合には、処理はステップS51bへ戻る。2N×2N画素の4つのCUについて分割判定が終了した場合、ブロック設定部47は、さらに、当該4つのCUに対応する4N×4N画素のCUがLCUに等しいかを判定する(ステップS55b)。当該4N×4N画素のCUがLCUに等しい場合には、処理はステップS56bへ進む。一方、そうでない場合には、処理はステップS55aへ進む。
ステップS56aにおいて、ブロック設定部47は、4N×4N画素の1つのCUについてコストを計算する(ステップS56a)。次に、ブロック設定部47は、2N×2N画素の4つのCUのコストの合計とステップS56aにおいて計算したコストとを比較することにより、4N×4N画素のCUを分割するかを判定し、判定結果に対応する分割フラグを生成する(ステップS57a)。そして、処理はステップS59へ進む。
一方、ステップS56bにおいて、ブロック設定部47は、LCUに等しい4N×4N画素のCUについてコスト計算をスキップする(ステップS56b)。次に、ブロック設定部47は、4N×4N画素のCUを分割することを決定し、当該CUを分割することを示す分割フラグを生成する(ステップS57b)。
ステップS59において、ブロック設定部47は、4N×4N画素の4つのCUについて分割判定が終了したかを判定する(ステップS59)。ここで、4N×4N画素の4つのCUについて分割判定が終了していない場合には、処理はステップS51bへ戻り、次の4N×4N画素のCU(及びより小さいCU)についての分割判定のための処理が実行される。
4N×4N画素の4つのCUについて分割判定が終了した後、ブロック設定部47は、当該4つのCUに対応する8N×8N画素のCUについてコスト計算をスキップする(ステップS60b)。次に、ブロック設定部47は、8N×8N画素のCUを分割することを決定し、当該CUを分割することを示す分割フラグを生成する(ステップS61b)。
ステップS57b又はステップS61bにおいて、LCUに等しいCUについての分割フラグの生成が終了すると、図13Cに示したブロック設定処理は終了する。
(7)リソース節約モードでのブロック設定処理−第4の例
図13Dは、リソース節約モードでのブロック設定処理の詳細な流れの第4の例を示すフローチャートである。第4の例では、利用可能なサイズのうち最も大きいサイズをCUが有しないように、ブロック分割の深さが制限される。LCUサイズは、通常モードの半分の値に再設定される。
図13Dを参照すると、まず、モード制御部41は、LCUサイズをL×L画素からK×K画素(K=L/2)に更新する(ステップS70b)。
次に、ブロック設定部47は、注目LCU内のN×N画素の4つのCUについてコストを計算する(ステップS71b)。ここでのNは、SCUサイズに等しい。次に、ブロック設定部47は、当該4つのCUに対応する2N×2N画素の1つのCUについてコストを計算する(ステップS72)。次に、ブロック設定部47は、ステップS71bにおいて計算したコストの合計とステップS72において計算したコストとを比較することにより、2N×2N画素のCUを分割するかを判定し、判定結果に対応する分割フラグを生成する(ステップS73b)。
次に、ブロック設定部47は、当該2N×2N画素のCUがK×K画素のLCUに等しいかを判定する(ステップS74b)。当該2N×2N画素のCUがLCUに等しい場合には、図13Dに示したブロック設定処理は終了する。一方、そうでない場合には、処理はステップS75へ進む。
ステップS75において、ブロック設定部47は、2N×2N画素の4つのCUについて分割判定が終了したかを判定する(ステップS75)。ここで、分割判定が終了していない場合には、処理はステップS71bへ戻る。2N×2N画素の4つのCUについて分割判定が終了した場合、処理はステップS76へ進む。
ステップS76において、ブロック設定部47は、4N×4N画素の1つのCUについてコストを計算する(ステップS76)。次に、ブロック設定部47は、2N×2N画素の4つのCUのコストの合計とステップS76において計算したコストとを比較することにより、4N×4N画素のCUを分割するかを判定し、判定結果に対応する分割フラグを生成する(ステップS77)。このようにしてLCUに等しいCUについての分割フラグの生成が終了すると、図13Dに示したブロック設定処理は終了する。
図13Cに示した第3の例では、上述したように、浅いレイヤにおいてブロック分割が強制される。例えば、64×64画素のCUから32×32画素のCUへのブロック分割が強制される場合、図3Bに示したコスト計算処理及び分割判定処理のうち、多くの処理リソースを要するコスト計算処理Cost[64×64(0)]及び分割判定処理Compare[64×64(0)]をスキップすることができる。また、例えば、16×16画素のCUへのブロック分割が強制される場合、さらに4回のコスト計算処理(Cost[32×32(0)]〜Cost[32×32(3)])及び4回の分割判定処理(Compare[32×32(0)]〜Compare[32×32(3)])をスキップすることができる。
図13Dに示した第4の例においても、同様にコスト計算処理及び分割判定処理をスキップすることができる。但し、この例ではLCUサイズが引き下げられるため、画像内のブロックのスキャン順序が通常モードとリソース節約モードとで異なる。図14は、リソース節約モードでLCUサイズが引き下げられる場合のブロックのスキャン順序を、図3Aとの対比において説明するための説明図である。図3Aの例では、64×64画素のLCU内でブロックがスキャンされるため、例えばブロック8×8(31)の次にスキャンされるブロック8×8(32)は、ブロック8×8(31)の下の行の左端に位置する。一方、図14の例では、32×32画素のLCU内でブロックがスキャンされるため、ブロック8×8(31)の次にスキャンされるブロック8×8(32)は、ブロック8×8(31)の右の列の上端に位置する。同様に、図3Aの例では、ブロック16×16(7)の次にスキャンされるブロック16×16(8)は、ブロック16×16(7)の下の行の左端に位置する。一方、図14の例では、ブロック16×16(7)の次にスキャンされるブロック16×16(8)は、ブロック16×16(7)の右の列の上端に位置する。
<3.第2の実施形態>
第1の実施形態では、リソース効率に関する動作モードに従ってLCUからCUへのブロック分割の深さを制御することについて説明した。本節で説明する第2の実施形態では、ブロック分割の深さの制御に加えて、リソース効率に関する動作モードをさらに活用することにより、エンコーダの処理の負荷を一層低減することを目指す。
[3−1.全体的な構成]
図15は、第2の実施形態に係る画像符号化装置60の概略的な構成を示すブロック図である。図15を参照すると、画像符号化装置60は、並び替えバッファ11、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18、逆量子化部21、逆直交変換部22、加算部23、ループフィルタ24、フレームメモリ25、選択部26及び27、イントラ予測部30、インター予測部35並びにブロック分割部90を備える。
ブロック分割部90は、第1の実施形態に係るブロック分割部40と同様の機能を有し、画像内に設定されるLCUの各々に、CUのQuad-Tree構造を設定する。ブロック分割部90は、画像にラスタ状にLCUを配置し、さらに各LCUを複数のCUに分割する。本実施形態においても、ブロック分割部90は、リソース効率に関する動作モードに従って、ブロック分割の深さを制御する。さらに、本実施形態において、ブロック分割部90は、リソース効率に関する動作モードに従って、選択部27によるイントラ予測又はインター予測の選択、インター予測部35によるマージ判定、及び直交変換部14によるTUの設定、のうち少なくとも1つを制御する。
[3−2.イントラ/インター判定の制御]
例えば、選択部27は、LCU内の1つ以上のCUの各々について、イントラ予測のコストとインター予測のコストとを比較することにより、イントラ予測及びインター予測のいずれかを選択する。ブロック分割部90は、通常モードにおいて、選択部27にCUごとにイントラ予測及びインター予測のいずれを選択すべきかを判定させる。一方、ブロック分割部90は、リソース節約モードにおいて、選択部27にLCU内のCUの全てについて共通的に、イントラ予測及びインター予測のいずれを選択すべきかを判定させる。ブロック分割部90は、例えば、LCU内で最初にスキャンされるCU(典型的には、左上のCU)についての判定結果を、残りのCUに共通的に適用させてもよい。
図16は、イントラ/インター判定制御処理の詳細な流れの一例を示すフローチャートである。図16を参照すると、ブロック分割部90は、まず、図11A〜図11Dを用いて説明したモード判定処理を実行する(ステップS10)。そして、イントラ/インター判定制御処理は、判定された動作モードに依存して分岐する(ステップS115)。動作モードが通常モードである場合、ブロック分割部90は、CUごとに選択部27にイントラ予測又はインター予測を選択させる(ステップS120a)。動作モードがリソース節約モードである場合、ブロック分割部90は、LCU内の全てのCUについて共通的に、選択部27にイントラ予測又はインター予測を選択させる(ステップS120b)。
図17は、イントラ/インター判定の処理シーケンスの一例について説明するための説明図である。ここでは、選択部27により実行されるイントラ/インター判定処理が“Intra/Inter[X]”と表現され、Xは図3Aに示した対象ブロックのラベルである。図17に示したように、SCUサイズが8×8画素、LCUサイズが64×64画素である場合、選択部27は、通常モードにおいて、8×8画素のCUについての64回のイントラ/インター判定、16×16画素のCUについての16回のイントラ/インター判定、32×32画素のCUについての4回のイントラ/インター判定、及び64×64画素のCUについての1回のイントラ/インター判定を実行する。これに対し、リソース節約モードでは、より少ない回数(例えば1回)のイントラ/インター判定のみが実行され得る。一例として、選択部27は、8×8画素のレイヤでイントラ/インター判定P11のみを実行し、その結果を残りの全てのCUに適用してもよい。また、選択部27は、16×16画素のレイヤでイントラ/インター判定P12のみを実行し、その結果を残りの全てのCUに適用してもよい。また、選択部27は、32×32画素のレイヤでイントラ/インター判定P13のみを実行し、その結果を残りの全てのCUに適用してもよい。また、選択部27は、64×64画素のレイヤでイントラ/インター判定P14のみを実行してもよい。それにより、イントラ/インター判定のために必要とされるリソースの量が低減され、リソースを効率的に利用することができる。
[3−3.マージ判定の制御]
また、HEVCでは、インター予測のための1つのツールとして、マージモードが導入される。インター予測部35は、CU内の1つ以上のPUの各々について、インター予測処理の中で、当該PUを他のPUとマージするかを判定する。複数のPUがマージされる場合、それらPUについては1セットの動き情報のみが符号化されるため、動き情報に要する符号量を削減することができる。ブロック分割部90は、通常モードにおいて、インター予測部35に、PUごとに当該PUを他のPUとマージするかを判定させる。一方、ブロック分割部90は、リソース節約モードにおいて、各CU内の1つ以上のPUの全てをマージするか以外のマージ判定を、インター予測部35にスキップさせる。ブロック分割部90は、さらに、LCU内のPUの全てをマージするか以外のマージ判定をインター予測部35にスキップさせてもよい。
図18は、マージ判定制御処理の詳細な流れの一例を示すフローチャートである。図18を参照すると、ブロック分割部90は、まず、図11A〜図11Dを用いて説明したモード判定処理を実行する(ステップS10)。そして、マージ判定制御処理は、判定された動作モードに依存して分岐する(ステップS115)。動作モードが通常モードである場合、ブロック分割部90は、PUごとにインター予測部35にマージ判定を実行させる(ステップS130a)。動作モードがリソース節約モードである場合、ブロック分割部90は、CU(又はLCU)内の全てのPUをマージするか否かのみのマージ判定を、インター予測部35に実行させる(ステップS130b)。
[3−4.変換単位の設定の制御]
また、HEVCでは、TUサイズとして、4×4画素〜32×32画素の4種類のサイズが利用可能である。直交変換部14は、CUを分割することにより形成される1つ以上のTUの各々について、予測誤差データについて直交変換を実行する。より小さいTUサイズが利用される場合、高い画質が達成され得る一方で、変換係数データにより多くのDC成分が含まれることになるため、リソースの利用効率は低下し得る。そこで、ブロック分割部90は、通常モードにおいてTUサイズの選択を制限しない一方、リソース節約モードにおいて、TUが利用可能なサイズのうちより小さいサイズ(例えば、4×4画素、又は4×4画素及び8×8画素)を有しないように直交変換部14におけるTUサイズの選択を制御する。
図19は、変換単位制御処理の詳細な流れの一例を示すフローチャートである。図19を参照すると、ブロック分割部90は、まず、図11A〜図11Dを用いて説明したモード判定処理を実行する(ステップS10)。そして、変換単位制御処理は、判定された動作モードに依存して分岐する(ステップS115)。動作モードが通常モードである場合、ブロック分割部90は、全てのTUサイズの候補から最適なTUサイズを直交変換部14に選択させる(ステップS140a)。動作モードがリソース節約モードである場合、ブロック分割部90は、例えばTUサイズの候補を4×4画素を除外するように制限し、制限されたTUサイズの候補から最適なTUサイズを直交変換部14に選択させる(ステップS140b)。
<4.応用例>
上述した実施形態は、衛星回線、ケーブルTV回線、インターネット、若しくはセルラー通信ネットワークなどを用いて映像の符号化ストリームを送信する送信装置、又は映像の符号化ストリームを光ディスク、磁気ディスク若しくはフラッシュメモリなどの媒体に記録する記録装置、といった様々な電子機器に応用され得る。以下、3つの応用例について説明する。
(1)第1の応用例
図20は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、センサ部933、バス934及びバッテリー935を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス934は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931及びセンサ部933を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記録再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
センサ部933は、加速度センサ及びジャイロセンサなどのセンサ群を含み、携帯電話機920の動きを表す指標を出力する。バッテリー935は、図中では省略されている電力供給ラインを介して、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931及びセンサ部933に電力を供給する。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置10又は60の機能を有する。それにより、携帯電話機920において、リソース効率に関する動作モードに従って画像処理部927におけるブロック分割の深さを柔軟に制御し、携帯電話機920のリソースを効率的に利用することが可能となる。
(2)第2の応用例
図21は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)又はBlu−ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置10又は60の機能を有する。それにより、記録再生装置940において、リソース効率に関する動作モードに従ってエンコーダ943におけるブロック分割の深さを柔軟に制御し、記録再生装置940のリソースを効率的に利用することが可能となる。
(3)第3の応用例
図22は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、センサ972、バス973及びバッテリー974を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス973は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970及びセンサ972を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD又はCMOSなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
センサ972は、加速度センサ及びジャイロセンサなどのセンサ群を含み、撮像装置960の動きを表す指標を出力する。バッテリー974は、図中では省略されている電力供給ラインを介して、撮像部962、信号処理部963、画像処理部964、表示部965、メディアドライブ968、OSD969、制御部970及びセンサ972に電力を供給する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置10又は60の機能を有する。それにより、撮像装置960において、リソース効率に関する動作モードに従って画像処理部964におけるブロック分割の深さを柔軟に制御し、撮像装置960のリソースを効率的に利用することが可能となる。
<5.まとめ>
ここまで、図1〜図22を用いて、本開示に係る技術の実施形態について詳細に説明した。上述した実施形態によれば、符号化される画像のブロックを再帰的に分割することにより符号化単位が形成される画像符号化方式において、符号化単位を設定する際のブロック分割の深さが、リソース効率に関するモードに従って制御される。従って、例えば画質を優先すべき状況においては、最適なブロック分割を決定するために十分なリソースを確保する一方で、リソース効率を優先すべき状況においてはブロック分割の深さを制限してリソースを節約することができる。例えば、ブロック分割の深さが制限される場合、バッテリー消費が低減され、余剰のリソースを使用して高フレームレート化が実現され、又は符号化処理が高速化され得る。
ある実施例においては、複数の利用可能なサイズのうち、より小さいサイズを符号化単位が有しないように、ブロック分割の深さが制限される。この場合、ブロック分割の決定に要する処理の多くを省略し、リソースの使用量を効果的に削減することができる。また、ある実施例においては、複数の利用可能なサイズのうち、より大きいサイズを符号化単位が有しないように、ブロック分割の深さが制限される。この場合、リソースの使用量を削減しつつも、小さいCUを使用して画像の細かいテクスチャを復号時に再現する余地を残すことができる。
ある実施例においては、LCUサイズ又はSCUサイズの値を調整することにより、ブロック分割の深さが制限される。この場合、Quad-Tree構造を特定するために要する分割フラグの数が削減されるため、符号化効率を高めることができる。また、ある実施例においては、LCUサイズ又はSCUサイズの値が調整される代わりに、符号化単位の所定のサイズについてコストの比較をスキップすることにより、ブロック分割の深さが制限される。この場合、SPSを更新することなく、分割の深さを自在に変化させることができる。
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体(非一時的な媒体:non-transitory media)に予め格納される。そして、各プログラムは、例えば、実行時にRAM(Random Access Memory)に読み込まれ、CPUなどのプロセッサにより実行される。
本明細書に記述したCU、PU及びTUとの用語は、HEVCにおいて、個々のブロックに関連付られるシンタックスをも含む論理的な単位を意味する。画像の一部分としての個々のブロックのみに着目する場合、これらは、CB(Coding Block)、PB(Prediction Block)及びTB(Transform Block)との用語にそれぞれ置き換えられてもよい。CBは、CTB(Coding Tree Block)を四分木(Quad-Tree)状に階層的に分割することにより形成される。1つの四分木の全体がCTBに相当し、CTBに対応する論理的な単位はCTU(Coding Tree Unit)と呼ばれる。
また、本明細書では、ブロック分割に関する情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について主に説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定する設定部と、
前記設定部におけるブロック分割の深さを、リソース効率に関するモードに従って制御する制御部と、
を備える画像処理装置。
(2)
前記制御部は、前記モードがリソース効率を優先すべきことを示す場合に、前記ブロック分割の前記深さを制限する、前記(1)に記載の画像処理装置。
(3)
前記制御部は、複数の利用可能なサイズのうちより小さいサイズを前記符号化単位が有しないように、前記ブロック分割の前記深さを制限する、前記(2)に記載の画像処理装置。
(4)
前記制御部は、複数の利用可能なサイズのうちより大きいサイズを前記符号化単位が有しないように、前記ブロック分割の前記深さを制限する、前記(2)に記載の画像処理装置。
(5)
前記符号化単位の利用可能なサイズの範囲は、SCU(Smallest Coding Unit)サイズ及びLCU(Largest Coding Unit)サイズによって定義され、
前記制御部は、前記LCUサイズ又は前記SCUサイズの値を調整することにより、前記ブロック分割の前記深さを制限する、
前記(3)又は前記(4)に記載の画像処理装置。
(6)
前記ブロック分割の前記深さは、分割フラグを再帰的に指定することにより特定され、
前記設定部は、前記分割フラグの値をコストの比較に基づいて決定し、
前記制御部は、前記符号化単位の所定のサイズについて前記設定部に前記コストの比較をスキップさせることにより、前記ブロック分割の前記深さを制限する、
前記(3)又は前記(4)に記載の画像処理装置。
(7)
前記リソース効率は、バッテリーの利用効率を含む、前記(1)〜(6)のいずれか1項に記載の画像処理装置。
(8)
前記制御部は、バッテリー残量が閾値を下回る場合、又は前記画像処理装置が外部電源に接続されていない場合に、画質よりもバッテリーの利用効率を優先すべきことを示すように前記モードを自動的に設定する、前記(7)に記載の画像処理装置。
(9)
前記リソース効率は、処理リソースの利用効率を含み、
前記制御部は、前記モードが画質よりも処理リソースの利用効率を優先すべきことを示す場合に、高フレームレート化又は高速化のために前記ブロック分割の前記深さを制限する、
前記(1)〜(6)のいずれか1項に記載の画像処理装置。
(10)
前記制御部は、ユーザインタフェースを介してユーザ入力を取得することにより、前記モードを設定する、前記(1)〜(9)のいずれか1項に記載の画像処理装置。
(11)
前記制御部は、前記画像を撮像する装置の動きが速い場合に、リソース効率を優先すべきことを示すように前記モードを自動的に設定する、前記(1)〜(6)のいずれか1項に記載の画像処理装置。
(12)
前記画像処理装置は、前記ブロック内の1つ以上の符号化単位の各々について、イントラ予測及びインター予測のいずれかを選択する選択部、をさらに備え、
前記制御部は、前記モードがリソース効率を優先すべきことを示す場合に、前記ブロック内の前記1つ以上の符号化単位の全てについて共通的な予測モードを前記選択部に選択させる、
前記(1)〜(11)のいずれか1項に記載の画像処理装置。
(13)
前記画像処理装置は、前記符号化単位内の1つ以上の予測単位の各々について、当該予測単位を他の予測単位とマージするかを判定するインター予測部、をさらに備え、
前記制御部は、前記モードがリソース効率を優先すべきことを示す場合に、前記1つ以上の予測単位の全てをマージするか以外のマージ判定を、前記インター予測部にスキップさせる、
前記(1)〜(12)のいずれか1項に記載の画像処理装置。
(14)
前記画像処理装置は、前記符号化単位を分割することにより形成される1つ以上の変換単位の各々について、前記画像の予測誤差データを直交変換する変換部、をさらに備え
前記制御部は、前記モードがリソース効率を優先すべきことを示す場合に、複数の利用可能なサイズのうちより小さいサイズを前記変換単位が有しないように、前記変換部を制御する、
前記(1)〜(13)のいずれか1項に記載の画像処理装置。
(15)
符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定することと、
前記ブロックに前記符号化単位を設定する際のブロック分割の深さを、リソース効率に関するモードに従って制御することと、
を含む画像処理方法。
(16)
画像処理装置を制御するコンピュータを、
符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定する設定部と、
前記設定部におけるブロック分割の深さを、リソース効率に関するモードに従って制御する制御部と、
として機能させるためのプログラム。
10,60 画像処理装置(画像符号化装置)
14 直交変換部
27 選択部
35 インター予測部
41 モード制御部
47 ブロック設定部

Claims (16)

  1. 符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定する設定部と、
    前記設定部におけるブロック分割の深さを、リソース効率に関するモードに従って制御する制御部と、
    を備える画像処理装置。
  2. 前記制御部は、前記モードがリソース効率を優先すべきことを示す場合に、前記ブロック分割の前記深さを制限する、請求項1に記載の画像処理装置。
  3. 前記制御部は、複数の利用可能なサイズのうちより小さいサイズを前記符号化単位が有しないように、前記ブロック分割の前記深さを制限する、請求項2に記載の画像処理装置。
  4. 前記制御部は、複数の利用可能なサイズのうちより大きいサイズを前記符号化単位が有しないように、前記ブロック分割の前記深さを制限する、請求項2に記載の画像処理装置。
  5. 前記符号化単位の利用可能なサイズの範囲は、SCU(Smallest Coding Unit)サイズ及びLCU(Largest Coding Unit)サイズによって定義され、
    前記制御部は、前記LCUサイズ又は前記SCUサイズの値を調整することにより、前記ブロック分割の前記深さを制限する、
    請求項3に記載の画像処理装置。
  6. 前記ブロック分割の前記深さは、分割フラグを再帰的に指定することにより特定され、
    前記設定部は、前記分割フラグの値をコストの比較に基づいて決定し、
    前記制御部は、前記符号化単位の所定のサイズについて前記設定部に前記コストの比較をスキップさせることにより、前記ブロック分割の前記深さを制限する、
    請求項3に記載の画像処理装置。
  7. 前記リソース効率は、バッテリーの利用効率を含む、請求項1に記載の画像処理装置。
  8. 前記制御部は、バッテリー残量が閾値を下回る場合、又は前記画像処理装置が外部電源に接続されていない場合に、画質よりもバッテリーの利用効率を優先すべきことを示すように前記モードを自動的に設定する、請求項7に記載の画像処理装置。
  9. 前記リソース効率は、処理リソースの利用効率を含み、
    前記制御部は、前記モードが画質よりも処理リソースの利用効率を優先すべきことを示す場合に、高フレームレート化又は高速化のために前記ブロック分割の前記深さを制限する、
    請求項1に記載の画像処理装置。
  10. 前記制御部は、ユーザインタフェースを介してユーザ入力を取得することにより、前記モードを設定する、請求項1に記載の画像処理装置。
  11. 前記制御部は、前記画像を撮像する装置の動きが速い場合に、リソース効率を優先すべきことを示すように前記モードを自動的に設定する、請求項1に記載の画像処理装置。
  12. 前記画像処理装置は、前記ブロック内の1つ以上の符号化単位の各々について、イントラ予測及びインター予測のいずれかを選択する選択部、をさらに備え、
    前記制御部は、前記モードがリソース効率を優先すべきことを示す場合に、前記ブロック内の前記1つ以上の符号化単位の全てについて共通的な予測モードを前記選択部に選択させる、
    請求項1に記載の画像処理装置。
  13. 前記画像処理装置は、前記符号化単位内の1つ以上の予測単位の各々について、当該予測単位を他の予測単位とマージするかを判定するインター予測部、をさらに備え、
    前記制御部は、前記モードがリソース効率を優先すべきことを示す場合に、前記1つ以上の予測単位の全てをマージするか以外のマージ判定を、前記インター予測部にスキップさせる、
    請求項1に記載の画像処理装置。
  14. 前記画像処理装置は、前記符号化単位を分割することにより形成される1つ以上の変換単位の各々について、前記画像の予測誤差データを直交変換する変換部、をさらに備え
    前記制御部は、前記モードがリソース効率を優先すべきことを示す場合に、複数の利用可能なサイズのうちより小さいサイズを前記変換単位が有しないように、前記変換部を制御する、
    請求項1に記載の画像処理装置。
  15. 符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定することと、
    前記ブロックに前記符号化単位を設定する際のブロック分割の深さを、リソース効率に関するモードに従って制御することと、
    を含む画像処理方法。
  16. 画像処理装置を制御するコンピュータを、
    符号化される画像のブロックを再帰的に分割することにより形成される符号化単位を、前記ブロックに設定する設定部と、
    前記設定部におけるブロック分割の深さを、リソース効率に関するモードに従って制御する制御部と、
    として機能させるためのプログラム。
JP2013114947A 2013-05-31 2013-05-31 画像処理装置、画像処理方法及びプログラム Pending JP2014236264A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2013114947A JP2014236264A (ja) 2013-05-31 2013-05-31 画像処理装置、画像処理方法及びプログラム
CN201910044291.7A CN110035291A (zh) 2013-05-31 2014-05-16 用于对图像信号进行编码的编码器和编码方法
PCT/JP2014/002602 WO2014192244A1 (en) 2013-05-31 2014-05-16 Image processing device, image processing method, and program
US14/767,149 US9894360B2 (en) 2013-05-31 2014-05-16 Image processing device, image processing method, and program
CN201480029706.9A CN105247864B (zh) 2013-05-31 2014-05-16 编码器、解码器以及图像处理***
US15/843,660 US10432933B2 (en) 2013-05-31 2017-12-15 Image processing device, image processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013114947A JP2014236264A (ja) 2013-05-31 2013-05-31 画像処理装置、画像処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2014236264A true JP2014236264A (ja) 2014-12-15

Family

ID=50884444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013114947A Pending JP2014236264A (ja) 2013-05-31 2013-05-31 画像処理装置、画像処理方法及びプログラム

Country Status (4)

Country Link
US (2) US9894360B2 (ja)
JP (1) JP2014236264A (ja)
CN (2) CN110035291A (ja)
WO (1) WO2014192244A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016158401A1 (ja) * 2015-03-30 2016-10-06 ソニー株式会社 画像符号化装置および方法
WO2016204360A1 (ko) * 2015-06-16 2016-12-22 엘지전자 주식회사 영상 코딩 시스템에서 조도 보상에 기반한 블록 예측 방법 및 장치
US10321128B2 (en) 2015-02-06 2019-06-11 Sony Corporation Image encoding apparatus and image encoding method
WO2019117645A1 (ko) * 2017-12-14 2019-06-20 한국전자통신연구원 예측 네트워크를 사용하는 영상의 부호화 및 복호화를 위한 방법 및 장치
US11166014B2 (en) 2017-12-14 2021-11-02 Electronics And Telecommunications Research Institute Image encoding and decoding method and device using prediction network

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5914962B2 (ja) * 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
US20160065959A1 (en) * 2014-08-26 2016-03-03 Lyrical Labs Video Compression Technology, LLC Learning-based partitioning for video encoding
WO2013023518A1 (en) * 2011-08-17 2013-02-21 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction using non-square blocks
JP6337904B2 (ja) * 2013-10-22 2018-06-06 日本電気株式会社 ブロック構造決定回路およびブロック構造決定方法
JP2015195582A (ja) * 2014-03-28 2015-11-05 キヤノン株式会社 画像処理装置及びその制御方法、撮像装置及びその制御方法、並びに、記録媒体
WO2015146646A1 (ja) * 2014-03-28 2015-10-01 ソニー株式会社 画像復号装置および方法
US9955187B2 (en) 2014-03-28 2018-04-24 University-Industry Cooperation Group Of Kyung Hee University Method and apparatus for encoding of video using depth information
US10715833B2 (en) * 2014-05-28 2020-07-14 Apple Inc. Adaptive syntax grouping and compression in video data using a default value and an exception value
KR101602581B1 (ko) * 2014-11-27 2016-03-11 한동대학교 산학협력단 압축 영상의 암호화 방법 및 시스템
WO2016140090A1 (ja) * 2015-03-04 2016-09-09 ソニー株式会社 画像符号化装置および方法
JP6624800B2 (ja) * 2015-04-03 2019-12-25 キヤノン株式会社 画像処理装置、画像処理方法、及び画像処理システム
US10477233B2 (en) * 2015-09-30 2019-11-12 Apple Inc. Predictor candidates for motion estimation search systems and methods
WO2017083553A1 (en) * 2015-11-10 2017-05-18 Vid Scale, Inc. Systems and methods for coding in super-block based video coding framework
WO2017165242A1 (en) * 2016-03-21 2017-09-28 Acxiom Corporation Data watermarking and fingerprinting system and method
TWI635744B (zh) * 2017-02-17 2018-09-11 晶睿通訊股份有限公司 影像串流處理方法及其影像串流裝置
CN110446052B (zh) * 2019-09-03 2021-02-12 南华大学 一种3d-hevc帧内深度图快速cu深度选择方法
US11606563B2 (en) * 2019-09-24 2023-03-14 Tencent America LLC CTU size signaling

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7372999B2 (en) * 2002-09-09 2008-05-13 Ricoh Company, Ltd. Image coder and image decoder capable of power-saving control in image compression and decompression
JP4677932B2 (ja) * 2006-03-06 2011-04-27 日本電気株式会社 動画像符号化方法及び動画像符号化装置とプログラムならびに媒体
JP2008078969A (ja) * 2006-09-21 2008-04-03 Victor Co Of Japan Ltd 動画像符号化記録装置
US8582652B2 (en) * 2007-10-30 2013-11-12 General Instrument Corporation Method and apparatus for selecting a coding mode
WO2009094036A1 (en) * 2008-01-25 2009-07-30 Hewlett-Packard Development Company, L.P. Coding mode selection for block-based encoding
US20090304086A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
CN101715124B (zh) * 2008-10-07 2013-05-08 镇江唐桥微电子有限公司 单路输入多路输出的视频编码***及视频编码方法
JP5461824B2 (ja) * 2008-11-04 2014-04-02 株式会社Nttドコモ 基地局装置、移動端末装置、移動通信システム及び情報再送方法
CN105245895B (zh) * 2010-06-04 2019-02-26 索尼公司 图像处理设备和方法
JP2012019447A (ja) * 2010-07-09 2012-01-26 Sony Corp 画像処理装置および方法
US10440373B2 (en) * 2011-07-12 2019-10-08 Texas Instruments Incorporated Method and apparatus for coding unit partitioning
CN103067704B (zh) * 2012-12-12 2015-12-09 华中科技大学 一种基于编码单元层次提前跳过的视频编码方法和***

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10321128B2 (en) 2015-02-06 2019-06-11 Sony Corporation Image encoding apparatus and image encoding method
US10979702B2 (en) 2015-02-06 2021-04-13 Sony Corporation Image encoding apparatus and image encoding method
WO2016158401A1 (ja) * 2015-03-30 2016-10-06 ソニー株式会社 画像符号化装置および方法
JPWO2016158401A1 (ja) * 2015-03-30 2018-01-25 ソニー株式会社 画像符号化装置および方法
WO2016204360A1 (ko) * 2015-06-16 2016-12-22 엘지전자 주식회사 영상 코딩 시스템에서 조도 보상에 기반한 블록 예측 방법 및 장치
US10477231B2 (en) 2015-06-16 2019-11-12 Lg Electronics Inc. Method and device for predicting block on basis of illumination compensation in image coding system
WO2019117645A1 (ko) * 2017-12-14 2019-06-20 한국전자통신연구원 예측 네트워크를 사용하는 영상의 부호화 및 복호화를 위한 방법 및 장치
US11166014B2 (en) 2017-12-14 2021-11-02 Electronics And Telecommunications Research Institute Image encoding and decoding method and device using prediction network

Also Published As

Publication number Publication date
WO2014192244A1 (en) 2014-12-04
US20180124403A1 (en) 2018-05-03
US9894360B2 (en) 2018-02-13
CN110035291A (zh) 2019-07-19
CN105247864A (zh) 2016-01-13
US20150381980A1 (en) 2015-12-31
CN105247864B (zh) 2019-02-22
US10432933B2 (en) 2019-10-01

Similar Documents

Publication Publication Date Title
US10432933B2 (en) Image processing device, image processing method, and program
US10972722B2 (en) Image processing device and image processing method
US10652546B2 (en) Image processing device and image processing method
CA2815817C (en) Image processing device and image processing method
CA2815819A1 (en) Image processing device and image processing method for applying filtering determination processes in parallel
US9924163B2 (en) Image processing apparatus and image processing method
JP6652126B2 (ja) 画像処理装置および方法
WO2013051452A1 (ja) 画像処理装置および方法
WO2015163167A1 (ja) 画像処理装置及び画像処理方法
JP2013074416A (ja) 画像処理装置および方法
JP2015082714A (ja) 画像処理装置及び画像処理方法
AU2017202277B2 (en) Image processing device and image processing method