(57)【要約】【課題】フレームの符号化に要する時間を削減する。【解決手段】符号化装置１０は、符号化対象フレームをメモリから取得する取得部１０１と、取得部１０１が取得した符号化対象フレームに含まれる処理単位であるブロックの境界に対してフィルタ処理を施すブロッキングフィルタ１０２と、フィルタ処理後の符号化対象フレームに対してブロックごとに、周波数変換又は次数変換を含む変換処理を施す変換部１０３と、参照用フレームをメモリから取得し、取得した参照用フレームと、変換処理後の符号化対象フレームとの差分を、差分フレームとして算出する差分部１０４と、差分部１０４が算出した差分フレームを量子化する量子化部１０５と、量子化部１０５が量子化した差分フレームを符号化して符号化データを生成する符号化部１０６とを備える。【選択図】図３
2018056957.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象フレームをメモリから取得する取得部と、
前記取得部が取得した前記符号化対象フレームに含まれる処理単位であるブロックの境界に対してフィルタ処理を施すフィルタ部と、
前記フィルタ処理後の前記符号化対象フレームに対して前記ブロックごとに、周波数変換又は次数変換を含む変換処理を施す変換部と、
参照用フレームを前記メモリから取得し、取得した前記参照用フレームと、前記変換処理後の前記符号化対象フレームとの差分を、差分フレームとして算出する差分部と、
前記差分部が算出した前記差分フレームを量子化する量子化部と、
前記量子化部が量子化した前記差分フレームを符号化して符号化データを生成する符号化部とを備える
符号化装置。
【請求項２】
前記量子化部は、前記符号化対象フレームがキーフレームである場合には、前記変換部による前記変換処理後の前記符号化対象フレームを量子化し、
前記符号化装置は、さらに、
前記差分フレームがキーフレームである場合に、前記量子化部による量子化後の前記差分フレームを逆量子化してメモリに格納する逆量子化部を備え、
前記差分部は、
前記逆量子化部により前記メモリに格納された前記キーフレームを、前記参照用フレームとして用いて、前記差分を算出する
請求項１に記載の符号化装置。
【請求項３】
前記符号化装置は、さらに、
前記符号化部が生成した符号化データのデータサイズに基づいて、新たな符号化対象フレームをフレーム内符号化するか、又は、フレーム間符号化するかを制御する制御部とを備える
請求項１又は２に記載の符号化装置。
【請求項４】
前記制御部は、
前記符号化部がフレーム間符号化することで生成した前記符号化データのデータサイズが閾値以上であるか否かを判定し、
（ａ）前記データサイズが前記閾値以上である場合に、新たな符号化対象フレームをフレーム内符号化するよう制御し、
（ｂ）前記データサイズが前記閾値未満である場合に、新たな符号化対象フレームをフレーム間符号化するよう制御する
請求項３に記載の符号化装置。
【請求項５】
前記制御部は、
前記符号化部がフレーム内符号化することで前記符号化データを生成したときには、新たな符号化対象フレームをフレーム間符号化するよう制御する
請求項３又は４に記載の符号化装置。
【請求項６】
参照用フレームをメモリから取得し、取得した前記参照用フレームと、符号化データとを加算して加算フレームを生成する加算部と、
前記加算部が生成した加算フレームに対して逆量子化する逆量子化部と、
前記逆量子化部により逆量子化された前記加算フレームに含まれる処理単位であるブロックごとに、逆周波数変換又は逆次数変換を含む逆変換処理を施す逆変換部と、
前記逆変換処理後の前記加算フレームにおける前記ブロックの境界に対してフィルタ処理を施すフィルタ部と、
前記フィルタ処理後の前記加算フレームに基づいてフレームを生成する生成部とを備える
復号装置。
【請求項７】
符号化対象フレームをメモリから取得する取得ステップと、
前記取得ステップで取得した前記符号化対象フレームに含まれる処理単位であるブロックの境界に対してフィルタ処理を施すフィルタステップと、
前記フィルタ処理後の前記符号化対象フレームに対して前記ブロックごとに、周波数変換又は次数変換を含む変換処理を施す変換ステップと、
参照用フレームを前記メモリから取得し、取得した前記参照用フレームと、前記変換処理後の前記符号化対象フレームとの差分を、差分フレームとして算出する差分ステップと、
前記差分ステップで算出した前記差分フレームを量子化する量子化ステップと、
前記量子化ステップで量子化した前記差分フレームを符号化して符号化データを生成する符号化ステップとを含む
符号化方法。
【請求項８】
参照用フレームをメモリから取得し、取得した前記参照用フレームと、符号化データとを加算して加算フレームを生成する加算ステップと、
前記加算ステップで生成した加算フレームに対して逆量子化する逆量子化ステップと、
前記逆量子化ステップで逆量子化された前記加算フレームに含まれる処理単位であるブロックごとに、逆周波数変換又は逆次数変換を含む逆変換処理を施す逆変換ステップと、
前記逆変換処理後の前記加算フレームにおける前記ブロックの境界に対してフィルタ処理を施すフィルタステップと、
前記フィルタ処理後の前記加算フレームに基づいてフレームを生成する生成ステップとを含む
復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、復号装置、符号化方法、及び、復号方法に関する。
【背景技術】
【０００２】
ネットワークを通じて動画像コンテンツを転送する際に、ネットワークにおける通信量を削減する圧縮技術が使用される。圧縮技術では、送信装置がコンテンツを構成するフレームを圧縮符号化してネットワークに送信し、圧縮符号化されたデータを受信装置が受信して復号することでコンテンツを復元する。
【０００３】
圧縮技術における圧縮率を向上させる差分符号化方式がある。差分符号化方式では、コンテンツに含まれるフレームの一部をキーフレームとしてフレーム内符号化する。また、コンテンツに含まれるフレームの上記一部を除く残部を差分フレームとして、上記キーフレームからの差分を符号化、つまり、フレーム間符号化する。
【０００４】
特許文献１は、圧縮符号化技術において、キーフレームの符号化処理量の急激な上昇を抑制するとともに、フレーム内符号化されたフレームと、フレーム間符号化されたフレームとの再生中に現れる差異をより小さくする技術を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１７１５２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１が開示する技術は、キーフレームの符号化処理量の急激な上昇を抑制する効果が期待されるものの、符号化に要する時間が増大し得るという問題がある。具体的には、上記技術では、フレーム内符号化されたフレームと、フレーム間符号化されたフレームとの再生中に現れる差異をより小さくするために、一度符号化したフレームを再び符号化する処理（言い換えれば、符号化のやり直しの処理）を行うことで、フレームの符号化処理に所定の時間を要する。
【０００７】
本発明は、上記問題を解決するためになされたものであり、フレームの符号化に要する時間を削減する符号化装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様に係る符号化装置は、符号化対象フレームをメモリから取得する取得部と、前記取得部が取得した前記符号化対象フレームに含まれる処理単位であるブロックの境界に対してフィルタ処理を施すフィルタ部と、前記フィルタ処理後の前記符号化対象フレームに対して前記ブロックごとに、周波数変換又は次数変換を含む変換処理を施す変換部と、参照用フレームを前記メモリから取得し、取得した前記参照用フレームと、前記変換処理後の前記符号化対象フレームとの差分を、差分フレームとして算出する差分部と、前記差分部が算出した前記差分フレームを量子化する量子化部と、前記量子化部が量子化した前記差分フレームを符号化して符号化データを生成する符号化部とを備える。
【０００９】
これによれば、符号化装置は、取得部が符号化対象フレームを取得するときと、差分部が参照用フレームを取得するときとの２つの時点でメモリアクセスを行う。符号化装置による処理の順番を考慮すると、取得部によるメモリアクセスの後、フィルタ部及び変換部による処理が行われた後に、差分部によるメモリアクセスが行われる。よって、上記２つのメモリアクセスが行われるタイミングは、同時（又は実質的に同時）にならない。そのため、仮に２つのメモリアクセスが実質的に同時に行われるとすれば発生し得る待ち時間を、未然に回避することができる。このように、符号化装置は、フレームの符号化に要する時間を削減することができる。
【００１０】
また、前記量子化部は、前記符号化対象フレームがキーフレームである場合には、前記変換部による前記変換処理後の前記符号化対象フレームを量子化し、前記符号化装置は、さらに、前記差分フレームがキーフレームである場合に、前記量子化部による量子化後の前記差分フレームを逆量子化してメモリに格納する逆量子化部を備え、前記差分部は、前記逆量子化部により前記メモリに格納された前記キーフレームを、前記参照用フレームとして用いて、前記差分を算出してもよい。
【００１１】
これによれば、差分部は、量子化されたフレーム（つまり量子化係数）を逆量子化することだけにより生成されたフレーム（例えば周波数係数）を参照用フレームとして、差分を算出する処理に用いる。よって、仮に上記より多い数の処理を施して参照用フレームを生成する場合と比較して、より短時間に参照用フレームを生成することができる。よって、符号化装置は、フレームの符号化に要する時間を削減することができる。
【００１２】
また、前記符号化装置は、さらに、前記符号化部が生成した符号化データのデータサイズに基づいて、新たな符号化対象フレームをフレーム内符号化するか、又は、フレーム間符号化するかを制御する制御部とを備えてもよい。
【００１３】
これによれば、制御部は、実際に符号化することで生成された符号化データのデータサイズに基づいて、次のフレームをフレーム内符号化するか、又は、フレーム間符号化するかを制御する。よって、符号化装置は、実際の符号化の結果に基づいて次のフレームの符号化をより適切に制御するとともに、仮に符号化のやり直しを行うとすれば生ずる処理時間の増加を回避することができる。
【００１４】
また、前記制御部は、前記符号化部がフレーム間符号化することで生成した前記符号化データのデータサイズが閾値以上であるか否かを判定し、（ａ）前記データサイズが前記閾値以上である場合に、新たな符号化対象フレームをフレーム内符号化するよう制御し、（ｂ）前記データサイズが前記閾値未満である場合に、新たな符号化対象フレームをフレーム間符号化するよう制御してもよい。
【００１５】
これによれば、制御部は、データサイズに大きさに応じて差分符号化（フレーム間符号化）をした効果が適切に発揮されているかを判断し、適切に発揮されていない場合には新たな符号化対象フレームをフレーム内符号化することで差分符号化の効果を発揮するように制御することができる。
【００１６】
また、前記制御部は、前記符号化部がフレーム内符号化することで前記符号化データを生成したときには、新たな符号化対象フレームをフレーム間符号化するよう制御してもよい。
【００１７】
これによれば、制御部は、フレーム内符号化の後にはフレーム間符号化を行うことで、差分符号化の効果を発揮するように制御することができる。
【００１８】
また、本発明の一態様に係る復号装置は、参照用フレームをメモリから取得し、取得した前記参照用フレームと、符号化データとを加算して加算フレームを生成する加算部と、前記加算部が生成した加算フレームに対して逆量子化する逆量子化部と、前記逆量子化部により逆量子化された前記加算フレームに含まれる処理単位であるブロックごとに、逆周波数変換又は逆次数変換を含む逆変換処理を施す逆変換部と、前記逆変換処理後の前記加算フレームにおける前記ブロックの境界に対してフィルタ処理を施すフィルタ部と、前記フィルタ処理後の前記加算フレームに基づいてフレームを生成する生成部とを備える。
【００１９】
これによれば、上記符号化装置により符号化された符号化データを適切に復号することができる。
【００２０】
また、本発明の一態様に係る符号化方法は、符号化対象フレームをメモリから取得する取得ステップと、前記取得ステップで取得した前記符号化対象フレームに含まれる処理単位であるブロックの境界に対してフィルタ処理を施すフィルタステップと、前記フィルタ処理後の前記符号化対象フレームに対して前記ブロックごとに、周波数変換又は次数変換を含む変換処理を施す変換ステップと、参照用フレームを前記メモリから取得し、取得した前記参照用フレームと、前記変換処理後の前記符号化対象フレームとの差分を、差分フレームとして算出する差分ステップと、前記差分ステップで算出した前記差分フレームを量子化する量子化ステップと、前記量子化ステップで量子化した前記差分フレームを符号化して符号化データを生成する符号化ステップとを含む。
【００２１】
これにより、上記符号化装置と同様の効果を奏する。
【００２２】
また、本発明の一態様に係る復号方法は、参照用フレームをメモリから取得し、取得した前記参照用フレームと、符号化データとを加算して加算フレームを生成する加算ステップと、前記加算ステップで生成した加算フレームに対して逆量子化する逆量子化ステップと、前記逆量子化ステップで逆量子化された前記加算フレームに含まれる処理単位であるブロックごとに、逆周波数変換又は逆次数変換を含む逆変換処理を施す逆変換ステップと、前記逆変換処理後の前記加算フレームにおける前記ブロックの境界に対してフィルタ処理を施すフィルタステップと、前記フィルタ処理後の前記加算フレームに基づいてフレームを生成する生成ステップとを含む。
【００２３】
これにより、上記復号装置と同様の効果を奏する。
【発明の効果】
【００２４】
本発明にかかる符号化装置等は、フレームの符号化に要する時間を削減することができる。
【図面の簡単な説明】
【００２５】
【図１】図１は、実施の形態に係るコンテンツ再生システムの構成を示す構成図である。
【図２】図２は、実施の形態に係る符号化装置のハードウェア構成を示すブロック図である。
【図３】図３は、実施の形態に係る符号化装置の構成を示すブロック図である。
【図４】図４は、実施の形態に係る符号化装置の処理を示すフロー図である。
【図５】図５は、実施の形態に係る復号装置の構成を示すブロック図である。
【図６】図６は、実施の形態に係る復号装置の処理を示すフロー図である。
【図７】図７は、関連技術に係る符号化装置の構成を示すブロック図である。
【図８】図８は、関連技術に係る復号装置の構成を示すブロック図である。
【図９】図９は、実施の形態の変形例に係る符号化装置の構成を示すブロック図である。
【図１０】図１０は、実施の形態の変形例に係る符号化装置の処理を示すフロー図である。
【発明を実施するための形態】
【００２６】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【００２７】
以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、より好ましい形態を構成する任意の構成要素として説明される。なお、同一の構成要素には同一の符号を付し、説明を省略する場合がある。
【００２８】
（実施の形態）
本実施の形態において、フレームの符号化に要する時間を削減する符号化装置及び復号装置等について説明する。
【００２９】
図１は、本実施の形態に係るコンテンツ再生システムＳの構成を示す構成図である。
【００３０】
図１に示されるように、コンテンツ再生システムＳは、送信装置１と再生装置２とを備える。送信装置１と再生装置２とは、ネットワーク３により通信可能に接続されている。
【００３１】
コンテンツ再生システムＳは、送信装置１が保有している動画像コンテンツ（以降、単にコンテンツともいう）を、１以上の再生装置２により再生するコンテンツ再生システムである。
【００３２】
送信装置１は、コンテンツを保有しており、コンテンツをネットワーク３を通じて再生装置２に送信する送信装置である。送信装置１は、コンテンツを圧縮符号化（以降、単に符号化ともいう）する符号化装置１０を備える。符号化装置１０は、コンテンツのデータ量を削減した符号化データを生成し、生成した符号化データをネットワーク３に送信する。
【００３３】
再生装置２は、ネットワーク３を通じて送信装置１からコンテンツを受信し、受信したコンテンツを再生する再生装置である。再生装置２は、送信装置１が保有している動画コンテンツをもとに符号化装置１０が生成した符号化データを、ネットワーク３を通じて受信する。再生装置２は、符号化データを復号する復号装置２０を備える。復号装置２０は、ネットワーク３から受信した符号化データを復号することでコンテンツを復元し、復元したコンテンツを再生装置２により再生する。
【００３４】
ネットワーク３は、送信装置１と再生装置２とを通信可能に接続するネットワークである。ネットワーク３は、具体的には、ＩＥＥＥ８０２．１１ａ、ｂ、ｇ、ｎ規格等に適合する無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、又は、ＩＥＥＥ８０２．３規格等に適合する有線ＬＡＮである。
【００３５】
なお、コンテンツ再生システムＳは、２以上の再生装置２を備えていてもよい。その場合、２以上の再生装置２それぞれがネットワーク３に接続し、送信装置１が送信する符号化データを受信することができることを要する。送信装置１は、再生装置２が２以上存在する場合には、２以上の再生装置２それぞれに対してユニキャスト送信してもよいし、２以上の再生装置２が受信できるようにブロードキャスト送信してもよい。
【００３６】
図２は、本実施の形態に係る符号化装置１０のハードウェア構成を示すブロック図である。なお、復号装置２０も、符号化装置１０と同じハードウェア構成を有する。
【００３７】
図２に示されるように、符号化装置１０は、ＣＰＵ１１と、メインメモリ１２と、ストレージ１３とを備える。
【００３８】
ＣＰＵ１１は、メインメモリ１２又はストレージ１３に格納された制御プログラムを実行するプロセッサである。符号化装置１０が実行する処理は、ＣＰＵ１１が制御プログラムを実行することで実現され得る。
【００３９】
メインメモリ１２は、ＣＰＵ１１が制御プログラムを実行するときに使用するワークエリアとして用いられる揮発性の記憶領域である。
【００４０】
ストレージ１３は、コンテンツを構成するフレームのデータを記憶している不揮発性の記憶装置である。なお、ストレージ１３は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、又は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等であり、符号化装置１０に内蔵されたものであってもよいし、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格等により外付けされるものであってもよい。
【００４１】
以降において、本実施の形態に係る符号化装置及び復号装置について、従来の関連技術に係る符号化装置及び復号装置と比較しながら説明する。
【００４２】
図３は、本実施の形態に係る符号化装置１０の構成を示すブロック図である。
【００４３】
図３に示されるように、符号化装置１０は、フレーム保持部１００と、取得部１０１と、ブロッキングフィルタ１０２と、変換部１０３と、差分部１０４と、量子化部１０５と、符号化部１０６と、逆量子化部１０７と、参照用保持部１０８とを備える。
【００４４】
フレーム保持部１００は、符号化対象のコンテンツを構成するフレームのデータを保持している記憶部である。フレーム保持部１００は、例えばメインメモリ１２等により実現される。
【００４５】
取得部１０１は、符号化対象フレームを取得する処理部である。取得部１０１は、フレーム保持部１００に格納されているコンテンツに含まれるフレームのうちの符号化対象フレームを読み出すことで取得する。符号化対象フレームは、例えば、コンテンツを構成する複数のフレームのうち、符号化装置１０が管理している現在時刻情報に対応付けられるフレームが順次に割り当てられる。
【００４６】
ブロッキングフィルタ１０２は、取得部１０１が取得した符号化対象フレームに含まれる処理単位であるブロック境界に対してブロッキングフィルタ処理を施す処理部である。ブロッキングフィルタ処理は、変換処理（後述）の処理単位であるブロックの境界で生じ得る不連続性を抑制するために、変換処理の前に施すべき処理である。なお、ブロッキングフィルタ１０２は、符号化装置１０が備えるフィルタ部に相当する。
【００４７】
変換部１０３は、ブロッキングフィルタ１０２がブロッキングフィルタ処理を施した後のフレームに対してブロックごとに変換処理を施す処理部である。変換処理の一例は、周波数変換処理である。周波数変換は、符号化対象フレームを、基底となる複数の三角関数の足し合わせとして表現する場合の係数（周波数係数）に変換する。なお、変換処理は、次数変換（例えば、アダマール変換）処理等を採用することもできる。
【００４８】
差分部１０４は、変換部１０３が変換処理を施した後の符号化対象フレーム（周波数係数）と、参照用保持部１０８が保持している参照用フレームとの差分を算出することで、差分フレームを生成する処理部である。差分部１０４は、上記差分を算出する前に、参照用保持部１０８から参照用フレームを読み出す。差分部１０４は、符号化対象フレームがキーフレームでない場合に上記差分を算出し、キーフレームである場合には上記差分を算出しない。なお、符号化対象フレームがキーフレームであるか、又は、キーフレームでないかは、差分部１０４が変換部１０３から符号化対象フレームを取得した時点までに決定されていてもよいし、何らかの制御に基づいて差分部１０４が決定してもよい。この制御には、例えば、後述する変形例における制御部１１１による制御がある。
【００４９】
差分部１０４が参照用フレームを読み出すタイミングは、取得部１０１がフレーム保持部１００から符号化対象フレームを読み出すタイミングより後になる。なぜなら、取得部１０１がフレーム保持部１００から符号化対象フレームを読み出した後に、ブロッキングフィルタ１０２及び変換部１０３の処理が実行され、その後に、差分部１０４が参照用フレームを読み出すからである。言い換えれば、ブロッキングフィルタ１０２及び変換部１０３が、取得部１０１による符号化対象フレームの読み出しに対して、差分部１０４による参照用フレームの読み出しを遅延させる遅延部として機能するとも言える。
【００５０】
量子化部１０５は、変換部１０３が変換処理を施した後の符号化対象フレーム、又は、差分部１０４が生成した差分フレームを量子化する（つまり、上記フレームを量子化係数に変換する）処理部である。
【００５１】
符号化部１０６は、量子化部１０５が量子化したフレームを符号化することで符号化データを生成する処理部である。符号化部１０６が生成した符号化データが、符号化装置１０が送信するコンテンツデータに相当する。
【００５２】
逆量子化部１０７は、量子化部１０５による量子化後のフレームを逆量子化する処理部である。逆量子化部１０７は、量子化部１０５による量子化後のフレームがキーフレームである場合に逆量子化を行う。逆量子化部１０７は、逆量子化したフレームを参照用フレームとして参照用保持部１０８に格納する。
【００５３】
参照用保持部１０８は、逆量子化部１０７が逆量子化した後のキーフレームを参照用フレームとして保持する記憶部である。参照用保持部１０８が保持するキーフレームは、差分部１０４に参照され、差分を算出する処理に用いられる。参照用保持部１０８は、例えばメインメモリ１２により実現される。
【００５４】
以上のように構成された符号化装置１０の処理について説明する。
【００５５】
図４は、本実施の形態に係る符号化装置１０の処理を示すフロー図である。
【００５６】
ステップＳ１０１において、取得部１０１は、符号化対象フレームをフレーム保持部１００から読み出すことで取得する。
【００５７】
ステップＳ１０２において、ブロッキングフィルタ１０２は、取得部１０１が取得した符号化対象フレームにおけるブロック境界に対してブロッキングフィルタ処理を施す。
【００５８】
ステップＳ１０３において、変換部１０３は、ブロッキングフィルタ１０２によるブロッキングフィルタ処理後のフレームに対してブロックごとに変換処理を施す。
【００５９】
ステップＳ１０４において、符号化装置１０は、符号化対象フレームがキーフレームであるか否かに応じて処理を分岐する。符号化対象フレームがキーフレームである場合（ステップＳ１０４でＹｅｓ）にはステップＳ１０５に進み、そうでない場合（ステップＳ１０４でＮｏ）には、ステップＳ１１１に進む。
【００６０】
ステップＳ１０５において、量子化部１０５は、変換部１０３が変換処理を施した後の符号化対象フレームに量子化処理を施す。
【００６１】
ステップＳ１０６において、逆量子化部１０７は、量子化部１０５による量子化後のキーフレームを逆量子化処理を施す。
【００６２】
ステップＳ１０７において、逆量子化部１０７は、ステップＳ１０６で逆量子化したフレームを参照用保持部１０８に格納する。
【００６３】
ステップＳ１１１において、差分部１０４は、変換部１０３が変換処理を施した後の符号化対象フレームと、参照用保持部１０８から読み出した参照用フレームとの差分を、差分フレームとして生成する。
【００６４】
ステップＳ１１２において、量子化部１０５は、差分部１０４が変換処理を施した後の差分フレームを量子化する。
【００６５】
ステップＳ１０８において、符号化部１０６は、量子化部１０５が量子化したキーフレームを符号化して符号化データを生成する。生成された符号化データは、送信装置１により再生装置２に送信される。
【００６６】
図５は、本実施の形態に係る復号装置２０の構成を示すブロック図である。
【００６７】
図５に示されるように、復号装置２０は、復号部２０１と、加算部２０２と、逆量子化部２０３と、参照用保持部２０４と、逆変換部２０５と、デブロッキングフィルタ２０６と、生成部２０７とを備える。
【００６８】
復号部２０１は、符号化装置１０が送信したコンテンツデータである符号化データを復号対象フレームとして受信して復号する処理部である。復号部２０１が復号により生成するフレームは、符号化部１０６による符号化の対象となった元データである符号化対象フレーム（量子化係数）である。
【００６９】
加算部２０２は、復号部２０１が復号した復号対象フレームと、参照用保持部２０４が保持している参照用フレームとを加算することで、加算フレーム（量子化係数）を生成する処理部である。加算部２０２は、上記の加算処理をする前に、参照用保持部２０４から参照用フレームを読み出す。
【００７０】
逆量子化部２０３は、加算部２０２が加算処理により生成した加算フレームを逆量子化することで、復号対象フレーム（周波数係数）を算出する処理部である。逆量子化部２０３の処理は、符号化装置１０の逆量子化部１０７と同じである。
【００７１】
参照用保持部２０４は、逆量子化部２０３が生成した復号対象フレームのうちのキーフレームを、参照用フレームとして保持する記憶部である。参照用保持部２０４が保持するキーフレームは、加算部２０２に参照され、加算の処理に用いられる。参照用保持部２０４は、例えばメインメモリ１２等により実現される。
【００７２】
逆変換部２０５は、逆量子化部２０３が逆量子化により生成した復号対象フレーム（周波数係数）に対して、逆変換処理を施す処理部である。逆変換処理は、符号化装置１０の変換部１０３による変換とは逆の変換を行う。具体的には、逆変換処理は、変換部１０３が周波数変換を行う場合には逆周波数変換処理であり、変換部１０３が次数変換を行う場合には逆次数変換処理である。
【００７３】
デブロッキングフィルタ２０６は、逆変換部２０５が逆変換処理を施した後の復号対象フレームにおけるブロック境界に対してデブロッキングフィルタ処理を施す処理部である。なお、デブロッキングフィルタ２０６は、復号装置２０が備えるフィルタ部に相当する。
【００７４】
生成部２０７は、デブロッキングフィルタ２０６によるデブロッキングフィルタ処理が施された加算フレームを取得し、取得した加算フレームに属性情報等を付加することでフレームを生成し、後段の処理に渡す処理部である。
【００７５】
以上のように構成された復号装置２０の処理について説明する。
【００７６】
図６は、本実施の形態に係る復号装置２０の処理を示すフロー図である。
【００７７】
ステップＳ２０１において、復号部２０１は、符号化データを受信して復号することで復号対象フレームを取得する。
【００７８】
ステップＳ２０２において、復号装置２０は、復号対象フレームがキーフレームであるか否かに応じて処理を分岐する。復号対象フレームがキーフレームである場合（ステップＳ２０２でＹｅｓ）にはステップＳ２０３に進み、そうでない場合（ステップＳ２０２でＮｏ）には、ステップＳ２１１に進む。
【００７９】
ステップＳ２０３において、逆量子化部２０３は、復号対象フレームであるキーフレームを逆量子化する。
【００８０】
ステップＳ２０４において、逆量子化部２０３は、ステップＳ２０３で逆量子化したキーフレームを参照用保持部２０４に格納する。
【００８１】
ステップＳ２０５において、逆変換部２０５は、逆量子化部２０３が逆量子化した加算フレームに対して、逆変換処理を施す。
【００８２】
ステップＳ２０６において、デブロッキングフィルタ２０６は、逆変換部２０５が逆変換処理を施した後の加算フレームにおけるブロック境界に対してデブロッキングフィルタ処理を施す。
【００８３】
ステップＳ２０７において、生成部２０７は、フレームを生成し、後段の処理に渡す。
【００８４】
ステップＳ２１１において、加算部２０２は、復号部２０１が復号により生成したフレームと、参照用保持部６０７から読み込んだ参照用フレームとを加算することで、加算フレームを生成する。
【００８５】
ステップＳ２１２において、逆量子化部２０３は、加算部２０２が加算処理により生成した加算フレームを逆量子化する処理部である。
【００８６】
次に、関連技術に係る符号化装置及び復号装置について説明する。なお、関連技術とは、フレームの符号化に比較的多くの時間を要する従来の符号化装置及び復号装置の一例である。
【００８７】
図７は、関連技術に係る符号化装置５０の構成を示すブロック図である。符号化装置５０は、図１における符号化装置１０として従来利用されている符号化装置の一例である。
【００８８】
図７に示されるように符号化装置５０は、フレーム保持部５００と、取得部５０１と、差分部５０２と、ブロッキングフィルタ５０３と、変換部５０４と、量子化部５０５と、符号化部５０６と、逆量子化部５０７と、逆変換部５０８と、デブロッキングフィルタ５０９と、参照用保持部５１０とを備える。
【００８９】
ここで、符号化装置５０が符号化装置１０と異なる点は、差分部５０２が取得部５０１の後段に配置されている点と、逆量子化部５０７の後段に逆変換部５０８及びデブロッキングフィルタ５０９とを備える点とである。
【００９０】
差分部５０２は、取得部５０１が取得した符号化対象フレームと、参照用保持部５１０が保持している参照用フレームとの差分を算出することで、差分フレームを生成する処理部である。差分部５０２は、符号化対象フレームがキーフレームでない場合に上記差分を算出し、キーフレームである場合には上記差分を算出しない。
【００９１】
逆変換部５０８は、逆量子化部５０７が逆量子化したキーフレームに対して、逆変換処理を施す処理部である。逆変換部５０８は、逆変換部２０５と同様の処理を行う。
【００９２】
デブロッキングフィルタ５０９は、逆変換部５０８が逆変換処理を施した後のキーフレームにおけるブロック境界に対してデブロッキングフィルタ処理を施す処理部である。
【００９３】
参照用保持部５１０は、デブロッキングフィルタ５０９により生成された差分フレームの複製を保持する。
【００９４】
なお、フレーム保持部５００と、取得部５０１と、ブロッキングフィルタ５０３と、変換部５０４と、量子化部５０５と、符号化部５０６と、逆量子化部５０７とは、符号化装置１０における同名の構成要素と同じであるので説明を省略する。
【００９５】
図８は、関連技術に係る復号装置６０の構成を示すブロック図である。
【００９６】
図８に示されるように、復号装置６０は、復号部６０１と、逆量子化部６０２と、逆変換部６０３と、デブロッキングフィルタ６０４と、加算部６０５と、生成部６０６と、参照用保持部６０７とを備える。
【００９７】
ここで、復号装置６０が復号装置２０と異なる点は、加算部６０５がデブロッキングフィルタ６０４の後段に備えられている点である。
【００９８】
加算部６０５は、デブロッキングフィルタ６０４がデブロッキングフィルタ処理を施した後のフレームと、参照用保持部６０７が保持している参照用フレームとを加算することで、加算フレームを生成する処理部である。
【００９９】
参照用保持部６０７は、生成部６０６が生成したフレームの複製を保持する。
【０１００】
なお、復号部６０１と、逆量子化部６０２と、逆変換部６０３と、デブロッキングフィルタ６０４と、生成部６０６とは、復号装置２０における同名の構成要素と同じであるので説明を省略する。
【０１０１】
上記関連技術に係る符号化装置５０による符号化処理に要する時間を増加させる要因には以下の２点がある。
【０１０２】
（１）処理ブロック数が比較的多い点
図７に示される処理ブロックが行う処理それぞれは計算処理により実現される。そのため、処理ブロック数が比較的多いと、その分、比較的多くの計算処理を要し、その結果、符号化処理に時間を要する。
【０１０３】
（２）メモリアクセスの時間差が比較的小さい点
図７に示されるように差分部５０２は、差分を算出する処理を行う前に、当該処理の対象である２つのフレームである符号化対象フレームと参照用フレームとをメインメモリ１２から取得する。このとき、フレームを読み出すためのメモリアクセスが実質的に同時に２つ発生し、これらのメモリアクセスに所定の時間を要する場合がある。なお、上記２つのメモリアクセスを上記所定の時間を要せずに行うために、メモリアクセスのためのバッファサイズを大きくする対処があり得る。しかしこの対処方法を用いることは、他の機能ブロックに影響を与える可能性もあり望ましくない。
【０１０４】
そこで、本実施の形態に係る符号化装置１０では、上記要因を以下のように解消している。
【０１０５】
（１）処理ブロック数について
図７に示されるように、符号化装置５０の参照用保持部５１０が保持する参照用フレームは、量子化部５０５が量子化した差分フレームに対して、逆量子化部５０７、逆変換部５０８及びデブロッキングフィルタ５０９による処理がなされたものである。
【０１０６】
一方、図３に示されるように、符号化装置１０の参照用保持部１０８が保持する参照用フレームは、量子化部１０５が量子化した差分フレームに対して、逆量子化部１０７による処理がなされたものである。つまり、参照用フレームが生成されるまでの時間は、符号化装置１０では、符号化装置５０における逆変換部５０８及びデブロッキングフィルタ５０９による処理の分の時間が削減される。
【０１０７】
このように、符号化装置１０は、符号化装置５０と比較して符号化に要する処理の処理ブロック数が削減されており、符号化処理に要する時間が削減される。
【０１０８】
（２）メモリアクセスの時間差について
図７に示されるように、符号化装置５０が備える差分部５０２は、差分を算出する処理を行う際に、差分処理の対象である２つのフレームである符号化対象フレームと参照用フレームとをメインメモリ１２から取得する。このとき、フレームを読み出すためのメモリアクセスが実質的に同時に２つ発生し、これらのメモリアクセスに所定の時間を要する場合がある。
【０１０９】
一方、図３に示されるように、符号化装置１０において、取得部１０１が符号化対象フレームを読み出すタイミングと、差分部１０４が参照用フレームを読み出すタイミングとには、ブロッキングフィルタ１０２及び変換部１０３の処理時間分だけの時間差が生ずる。よって、メインメモリ１２に対して実質的に同時に２つのメモリアクセスが発生することが回避される。
【０１１０】
このように、符号化装置１０は、実質的に同時に２つのフレームを参照するためのメモリアクセスを行う状況を回避している。なお、その際に、メモリアクセスのためのバッファサイズを大きくする等の対処を行う必要性も生じない。
【０１１１】
なお、本実施の形態に係る符号化装置１０が備える処理ブロックの数が少ないことは、符号化装置１０をＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等により実現する際に論理ブロック数を削減することにつながる。この点も、本実施の形態に係る符号化装置１０の利点である。
【０１１２】
以上のように、本実施の形態の符号化装置は、フレームの符号化に要する時間を削減することができる。
【０１１３】
（実施の形態の変形例）
本変形例において、フレームの符号化に要する時間を削減する符号化装置及び復号装置等について、さらに、符号化処理の結果に応じて、新たなフレームをフレーム内符号化するか、又は、フレーム間符号化するか、言い換えれば、どのフレームをキーフレームとするかを適切に決定する技術について説明する。
【０１１４】
図９は、本実施の形態の変形例に係る符号化装置１０Ａの構成を示すブロック図である。
【０１１５】
図９に示されるように、符号化装置１０Ａは、フレーム保持部１００と、取得部１０１と、ブロッキングフィルタ１０２と、変換部１０３と、差分部１０４Ａと、量子化部１０５と、符号化部１０６と、逆量子化部１０７と、参照用保持部１０８と、制御部１１１と、切替部１１２とを備える。
【０１１６】
ここで、フレーム保持部１００と、取得部１０１と、ブロッキングフィルタ１０２と、変換部１０３と、量子化部１０５と、符号化部１０６と、逆量子化部１０７と、参照用保持部１０８とについては、上記実施の形態の同名の構成要素と同じ機能を有するので、詳細な説明を省略する。
【０１１７】
差分部１０４Ａは、上記実施の形態における差分部１０４と同様、変換部１０３が変換処理を施した後の符号化対象フレームと、参照用保持部１０８が保持している参照用フレームとの差分を、差分フレームとして生成する処理部である。差分部１０４Ａが変換部１０３からフレームを取得する時点では、このフレームがキーフレームであるか又は差分フレームであるかは決定されておらず、後段の制御部１１１により切替部１１２の状態が制御されることで、このフレームがキーフレームになるか、差分フレームになるかが決定される。差分部１０４Ａに入力されたフレームがフレーム間符号化される（差分フレームになる）場合には、後段の切替部１１２を通じて量子化部１０５に提供される。一方、差分部１０４Ａに入力されたフレームがフレーム内符号化される（キーフレームになる）場合には、差分部１０４Ａに入力されたフレームが量子化部１０５に提供され、差分部１０４Ａが生成した差分フレームは後段の処理に使われない。
【０１１８】
制御部１１１は、符号化部１０６が符号化により生成した符号化データに基づく判定を行い、判定結果に応じて新たな符号化対象フレームの符号化を制御する処理部である。
【０１１９】
制御部１１１は、符号化部１０６が符号化により生成した符号化データ（又は、当該符号化データの複製）を取得して、符号化データに含まれるフレームがキーフレームであるか否かを示す情報と、符号化データのデータサイズとを得る。そして、上記情報と上記データサイズとに基づく判定を行い、符号化装置１０Ａが次に符号化する新たな符号化対象フレームを、フレーム内符号化するか、又は、フレーム間符号化するか（言い換えれば、どのフレームをキーフレームにし、どのフレームを差分フレームにするか）を決定する。そして、制御部１１１は、決定結果に応じて、切替部１１２の状態を制御する。制御部１１１による判定の方法は後で詳しく説明する。
【０１２０】
切替部１１２は、後段の量子化部１０５に提供されるフレームを、変換部１０３が変換処理を施した後のフレームとするか、又は、差分部１０４Ａが差分処理により生成した差分フレームとするかを切り替える切替部である。切替部１１２が、変換部１０３が変換処理を施した後のフレームを量子化部１０５に提供する状態、つまり、図９において端子ａと端子ｃとが接続される状態を状態Ａという。また、切替部１１２が、差分部１０４Ａが差分処理により生成した差分フレームを量子化部１０５に提供する状態、つまり、図面において端子ｂと端子ｃとが接続される状態を状態Ｂという。切替部１１２が状態Ａをとるか、状態Ｂをとるかは、制御部１１１により制御される。
【０１２１】
なお、上記の差分部１０４Ａ及び切替部１１２の動作は、上記実施の形態の差分部１０４による、符号化対象フレームがキーフレームでない場合に上記差分を算出し、キーフレームである場合には上記差分を算出しないという動作と同様である。つまり、差分部１０４Ａ及び切替部１１２は、上記実施の形態の差分部１０４を、２つの構成要素に分けてより具体的に記載したものである。
【０１２２】
以上のように構成された符号化装置１０Ａの処理についてフロー図を用いて説明する。
【０１２３】
図１０は、本変形例に係る符号化装置１０Ａの処理を示すフロー図である。
【０１２４】
図１０におけるステップＳ１０１〜Ｓ１１２の処理については、図４に示される同名のステップと実質的に同じである。ここで、ステップＳ１０４Ａは、ステップＳ１０４の処理の内容をより具体的にしたものである。
【０１２５】
ステップＳ１０４Ａにおいて、制御部１１１は、符号化対象フレームをフレーム内符号化するか又はフレーム間符号化するかを、切替部１１２の状態に応じて切り替える。すなわち、切替部１１２が状態Ａである場合（ステップＳ１０４Ａで「フレーム内符号化」）には、符号化対象フレームをフレーム内符号化する一連の処理（ステップＳ１０５〜Ｓ１０７）を行う。一方、切替部１１２が状態Ｂである場合（ステップＳ１０４Ａで「フレーム間符号化」）には、符号化対象フレームをフレーム間符号化する一連の処理（ステップＳ１１１〜Ｓ１１２）を行う。
【０１２６】
ステップＳ１０８の後の処理を以降で説明する。
【０１２７】
ステップＳ１２２において、制御部１１１は、符号化部１０６が符号化したフレームの複製を取得し、このフレームがキーフレームであるか否かを判定する。キーフレームである場合には、ステップＳ１２３に進み、そうでない場合には、ステップＳ１３１に進む。
【０１２８】
ステップＳ１２３において、制御部１１１は、次の符号化対象フレームをフレーム間符号化する（差分フレームにする）よう制御する。具体的には、制御部１１１は、切替部１１２を状態Ｂに変化させる（既に状態Ｂである場合には状態Ｂを維持させる）。
【０１２９】
ステップＳ１３１において、制御部１１１は、符号化データのデータサイズが閾値以上であるか否かを判定する。符号化データのデータサイズが閾値以上である場合（ステップＳ１３１でＹｅｓ）には、ステップＳ１３１に進み、そうでない場合（ステップＳ１３１でＮｏ）には、ステップＳ１３２に進む。なお、上記閾値は、予め定められた固定値でもよいし、直前のキーフレームのデータサイズに所定値を乗じて算出される変動値でもよい。所定値は、例えば、０以上１以下の値であり、より具体的には、１／２倍又は２／３倍とすることができる。
【０１３０】
ステップＳ１３２において、制御部１１１は、次の符号化対象フレームをフレーム内符号化する（キーフレームにする）よう制御する。具体的には、制御部１１１は、切替部１１２を状態Ａに変化させる（既に状態Ａである場合には状態Ａを維持させる）。
【０１３１】
このようにすることで、符号化装置１０Ａは、実際に符号化装置１０Ａが符号化により生成した符号化データのデータサイズに基づいて、次に符号化する符号化対象フレームをキーフレームとして符号化（フレーム内符号化）するか、又は、差分フレームとして符号化（フレーム間符号化）するかを適切に決定する。
【０１３２】
具体的には、差分フレームとしてフレーム間符号化により生成した符号化データのデータサイズが、閾値以上である場合には、次の符号化対象フレームをキーフレームとしてフレーム内符号化する（ステップＳ１３１でＹｅｓ、Ｓ１３２）。この状況は、符号化対象フレームと直前のキーフレームとのデータサイズの差分が比較的大きいことから、差分符号化の利点を発揮することができない状況を示しており、新たなキーフレームを挿入することで符号化データのデータサイズの減少が期待されるからである。
【０１３３】
また、差分フレームとしてフレーム間符号化により生成した符号化データのデータサイズが、閾値未満である場合には、次の符号化対象フレームを差分フレームとしてフレーム間符号化する（ステップＳ１３１でＮｏ、Ｓ１２３）。この状況は、符号化対象フレームと直前のキーフレームとのデータサイズの差分が比較的小さいことから、差分符号化の利点を発揮することができている状況を示しており、この状況を継続することが望ましいからである。
【０１３４】
また、キーフレームとしてフレーム内符号化により符号化データを生成した場合には、次の符号化対象フレームを差分フレームとしてフレーム間符号化する（ステップＳ１２３）。これにより、符号化対象フレームが続けてフレーム内符号化されることでデータ量が増大することを回避することができる。
【０１３５】
以上のように、本実施の形態の符号化装置は、取得部が符号化対象フレームを取得するときと、差分部が参照用フレームを取得するときとの２つの時点でメモリアクセスを行う。符号化装置による処理の順番を考慮すると、取得部によるメモリアクセスの後、フィルタ部及び変換部による処理が行われた後に、差分部によるメモリアクセスが行われる。よって、上記２つのメモリアクセスが行われるタイミングは、同時（又は実質的に同時）にならない。そのため、仮に２つのメモリアクセスが実質的に同時に行われるとすれば発生し得る待ち時間を、未然に回避することができる。このように、符号化装置は、フレームの符号化に要する時間を削減することができる。
【０１３６】
また、差分部は、量子化されたフレームを逆量子化しただけのフレームを参照用フレームとして、差分を算出する処理に用いる。よって、仮に上記より多い数の処理を施して参照用フレームを生成する場合と比較して、より短時間に参照用フレームを生成することができる。よって、符号化装置は、フレームの符号化に要する時間を削減することができる。
【０１３７】
また、制御部は、実際に符号化することで生成された符号化データのデータサイズに基づいて、次のフレームをフレーム内符号化するか、又は、フレーム間符号化するかを制御する。よって、符号化装置は、実際の符号化の結果に基づいて次のフレームの符号化をより適切に制御するとともに、仮に符号化のやり直しを行うとすれば生ずる処理時間の増加を回避することができる。
【０１３８】
また、制御部は、データサイズに大きさに応じて差分符号化（フレーム間符号化）をした効果が適切に発揮されているかを判断し、適切に発揮されていない場合には新たな符号化対象フレームをフレーム内符号化することで差分符号化の効果を発揮するように制御することができる。
【０１３９】
また、制御部は、フレーム内符号化の後にはフレーム間符号化を行うことで、差分符号化の効果を発揮するように制御することができる。
【０１４０】
以上、本発明の符号化装置及び復号装置等について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【０１４１】
本発明は、フレームの符号化に要する時間を削減する符号化装置及び復号装置等に利用可能である。具体的には、公共スペース又は商業施設などにおいて複数設置され、画像等を再生する再生装置、及び、再生装置にコンテンツを提供する送信装置などに利用可能である。
【符号の説明】
【０１４２】
１  送信装置
２  再生装置
３  ネットワーク
１０、１０Ａ、５０  符号化装置
１１  ＣＰＵ
１２  メインメモリ
１３  ストレージ
２０、６０  復号装置
１００、５００  フレーム保持部
１０１、５０１  取得部
１０２、５０３  ブロッキングフィルタ
１０３、５０４  変換部
１０４、１０４Ａ、５０２  差分部
１０５、５０５  量子化部
１０６、５０６  符号化部
１０７、２０３、５０７、６０２  逆量子化部
１０８、２０４、５１０、６０７  参照用保持部
１１１  制御部
１１２  切替部
２０１、６０１  復号部
２０２、６０５  加算部
２０５、５０８、６０３  逆変換部
２０６、５０９、６０４  デブロッキングフィルタ
２０７、６０６  生成部
Ｓ  コンテンツ再生システム
【図１】
2018056957.tif 000003
【図２】
2018056957.tif 000004
【図３】
2018056957.tif 000005
【図４】
2018056957.tif 000006
【図５】
2018056957.tif 000007
【図６】
2018056957.tif 000008
【図７】
2018056957.tif 000009
【図８】
2018056957.tif 000010
【図９】
2018056957.tif 000011
【図１０】
2018056957.tif 000012