JPWO2008032660A1 - 画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi - Google Patents

画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi Download PDF

Info

Publication number
JPWO2008032660A1
JPWO2008032660A1 JP2008534319A JP2008534319A JPWO2008032660A1 JP WO2008032660 A1 JPWO2008032660 A1 JP WO2008032660A1 JP 2008534319 A JP2008534319 A JP 2008534319A JP 2008534319 A JP2008534319 A JP 2008534319A JP WO2008032660 A1 JPWO2008032660 A1 JP WO2008032660A1
Authority
JP
Japan
Prior art keywords
image
image data
encoded
data
video packet
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.)
Granted
Application number
JP2008534319A
Other languages
English (en)
Other versions
JP5307545B2 (ja
Inventor
近藤 孝宏
孝宏 近藤
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2008534319A priority Critical patent/JP5307545B2/ja
Publication of JPWO2008032660A1 publication Critical patent/JPWO2008032660A1/ja
Application granted granted Critical
Publication of JP5307545B2 publication Critical patent/JP5307545B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/188Methods 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 a video data packet, e.g. a network abstraction layer [NAL] unit
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Abstract

各瞬時における受信バッファ内の画像符号化データ量もしくは画像符号化データ量の時間変化に基づいてアンダーフローが発生しているか、あるいはアンダーフローが発生する蓋然性が高いか否かを判定し、判定結果が肯定的な場合に、フレームメモリに格納されている一フレーム分の画像データを取り出すと共に、前記受信バッファに残存する画像符号化データの一部分を復号し、取り出した画像データの一部分を前記画像符号化データを復号した画像データの一部分で置き換えて、新たな一フレーム分の合成画像データを生成する。合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される。

Description

本発明は、符号化された画像データを復号する技術に関し、特に、符号化された画像データをストリーミング方式により再生する際の当該画像データの復号技術に関する。
近年、インターネット等の伝送路を介して画像データを受信しながら同時に再生を行うストリーミング方式が普及している。
このストリーミング方式では、伝送路にアクセスが集中する等、伝送路上に過度の通信負荷がかかること(すなわち、輻輳)により伝送遅延が生じた場合に、どのように対応するかが問題となる。伝送遅延が生じる状況下では、再生に必要な画像データが、必要な時刻に受信側に到達しない現象(受信バッファアンダーフロー)が起こり得る。
従来、受信バッファがアンダーフローを起こした場合に、画像データに対する復号処理を停止し、直前の復号画像を出力し続けるMPEGビデオデコーダが知られている。具体的には、MPEGビデオデコーダは、受信バッファに蓄積されたMPEGビットストリームの占有量と所定の閾値とを比較し、占有量が閾値を下回っている場合に、復号処理をスキップし、それ以前にビットバッファから読み出されたMPEGビットストリームの復号結果を引き続き出力する。
このように従来技術によるMPEGビデオデコーダでは、受信バッファにおけるMPEGビットストリームの占有量が閾値を下回った場合、すなわち受信バッファアンダーフローが発生する恐れが高い場合には、復号処理がスキップされるので、その結果、占有量が増大し、受信バッファアンダーフローが回避されると共に、ビデオ出力も継続して行われるため、ディスプレイ表示も継続して行われ、表示画像が乱れることはない。
特開平8−331560号公報
しかしながら、従来の技術によるMPEGビデオデコーダは、受信バッファにおけるMPEGビットストリームの占有量が閾値を下回っている間、復号処理をスキップし、それ以前に受信バッファから読み出したMPEGビットストリームの復号結果を繰り返し出力するため、見かけ上、表示画像の更新が一定期間停止されてしまうという問題がある。
したがって、表示画像を見ているユーザは、装置の故障や通信途絶などの不安感を覚え、場合によっては、伝送路遅延による受信バッファアンダーフローが発生しているだけで正常動作しているにも関わらず、動作停止や通信切断などのコマンドを実行してしまうこともあり得る。
上述した課題は有線による伝送路上ではもとより、無線による伝送路上でのリアルタイム画像送受信において、より顕著となる。無線では有線より帯域が狭いことやエラー率が上がるという観点から、伝送路遅延に伴う受信バッファアンダーフロー発生の頻度が高くなるためである。
一方、今後、カメラ付き携帯電話における更なる動画像処理性能や通信性能の向上、広帯域無線アクセス環境の整備やカメラ、ビデオカメラ等の機器へのネットワーク機能実装によるワイヤレスネットワーク接続等により、様々な場面で、撮影された動画像がネットワークに配信され、かつ配信された動画像をリアルタイムに視聴するケース(所謂ライブ中継のような形態)が増えていくものと予測される。その際、例えばあるイベント開催時などで、ある特定の無線アクセスポイントに多数のカメラ機器が接続され、各カメラ機器により撮影された動画像がネットワークに配信されることにより輻輳状態が発生した場合に、送信される動画像データに著しい伝送遅延が起こり得る。その結果、受信側では受信バッファアンダーフローにより数秒以上、表示画像の更新が停止されることも考えられる。
本発明は受信バッファアンダーフローが発生するような状況下であっても、表示画像の更新が一定期間停止するということを防止する又は更新が停止する期間を短くする画像復号化装置を提供することを目的とする。
本発明は、外部から受信する画像符号化データを受信バッファに取り込みつつ、当該受信バッファから画像符号化データを読み出して復号し画像データを出力する画像復号化装置であって、画像データを一時的に保持するフレームメモリと、各瞬時における受信バッファ内の画像符号化データ量もしくは画像符号化データ量の時間変化に基づいてアンダーフローが発生しているか、あるいはアンダーフローが発生する蓋然性が高いか否かを判定する判定手段と、判定結果が肯定的な場合に、前記フレームメモリに格納されている一フレーム分の画像データを取り出すと共に、前記受信バッファに残存する画像符号化データの一部分を復号し、取り出した画像データの一部分を前記画像符号化データを復号した画像データの一部分で置き換えて、新たな一フレーム分の合成画像データを生成する合成画像生成手段と、生成された合成画像データを出力する出力手段と、を備え、合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される、ことを特徴とする画像復号化装置である。
上記課題を解決するための手段に記載の構成により、徐々に置換後の画像データの占有割合が高くなるよう生成された複数の合成画像が出力されるので、表示内容はゆっくりではあるが変化することになる。
表示内容のゆっくりとした変化を実現することにより、画像復号化装置が故障したり通信が途絶したりしたのではなく、“単にネットワークが混雑しているに過ぎない”という状況を、ユーザに理解させることができる。
ここで、前記外部から受信する画像符号化データは複数の所定の処理単位からなり、画像データの置き換えは、所定の処理単位毎に行われ、前記画像復号化装置は前記所定の処理単位毎に重要度を算出する重要度算出手段を備え、前記合成画像生成手段は前記フレームメモリに格納されている画像データの一部分を、算出された重要度のうち最も高い重要度に対応する所定の処理単位で置き換えるとしてもよい。
その場合、前記割り当てられた数値は、フレームの中央に近い位置ほど高くなるとしてもよい。
また、前記割り当てられた数値は、画像の動きが大きいほど高くなるとしてもよい。
これにより、前記合成画像生成手段は例えば、フレームの中央に近い位置または画像の動きが大きい部分を優先的に置き換えることができるので、画像の中でユーザにとって重要と思われる部分を先に更新することができる。
ここで、前記数値は複数のテーブルに割り当てられており、前記重要度算出手段は前記受信バッファに残存する画像符号化データから得られる情報に基づいて、前記複数のテーブルを動的に切り換え、重要度を算出するとしてもよい。
その場合に、前記画像符号化データから得られる情報はピクチャタイプを示す情報であるとしてもよい。
これにより、前記重要度算出手段は前記受信バッファに残存する画像符号化データから得られる情報に基づいて、重要度を算出することができる。例えば、複数のテーブルのうちの一つが動きベクトルに基づくテーブルである場合には、ピクチャタイプがIピクチャであれば、動きベクトルを得ることはできず、動きベクトルに基づくテーブルを用いて重要度を算出することはできないが、他のテーブルを用いることにより重要度を算出することができる。このように、複数のテーブルを用いることにより、重要度を算出できないという状況を回避することができる。
ここで、前記判定結果が否定的である場合に、前記合成画像生成手段は、前記フレームメモリに格納されている画像データを取り出すと共に、前記受信バッファに残存する一フレーム分の画像符号化データを復号し、取り出した画像データを前記画像符号化データを復号した画像データで置き換えて、新たな一フレーム分の画像データを生成するとしてもよい。
これにより、前記受信バッファに残存する画像符号化データの量に応じて、表示内容を変化させることができる。すなわち、前記画像復号化装置では判定結果が否定的な場合には、フレーム単位で画像データの置き換えが行われるので、表示内容の滑らかな変化を実現することができ、その結果、ユーザにとって見やすい画像を提供することができる。
ここで、前記画像復号化装置は、前記合成画像生成手段により新たに生成される一フレーム分の合成画像データを一時的に保持するための補助フレームメモリを備え、前記合成画像生成手段は、生成した複数の合成画像データを前記フレームメモリ及び前記補助フレームメモリに交互に記憶するとしてもよい。
これにより、前記合成画像生成手段は、前記フレームメモリ及び前記補助フレームメモリに格納されている画像データを用いることにより、容易に合成画像データを生成することができる。
ここで、前記合成画像生成手段は、前記フレームメモリに格納されている画像データをスライス単位で前記画像符号化データを復号した画像データに置き換えるとしてもよい。
これにより、前記受信バッファに残存する画像符号化データ中の特殊なビット列(同期語)を検出することにより、簡単に各スライスの範囲を特定することができるので、画像復号化装置における処理負荷を軽減できる。
ここで、画像データの置換を行う際の前記受信バッファに残存する画像符号化データの一部分のデータサイズは、前記受信バッファに残存する画像符号化データの量に応じて異なるとしてもよい。
これにより、例えば、前記受信バッファに残存する画像符号化データの量に余裕がある場合には、データの置き換えの際のデータサイズを大きくし、表示内容の滑らかな変化を実現することにより、ユーザにとって見やすい画像を提供することができる。また、前記受信バッファに残存する画像符号化データの量に余裕がない場合には、データの置き換えの際のデータサイズを小さくし、表示内容のゆっくりとした変化を実現することにより、画像の更新が途絶えるのを防止することができる。
ここで、前記フレームメモリに格納されている画像データは、前記合成画像生成手段により前記受信バッファに残存する画像符号化データの一部分が復号される直前に復号された画像データであるとしてもよい。
これにより、前記合成画像生成手段は、より違和感のない合成画像データを生成することができる。
本発明の実施の形態1における画像復号化装置1000の機能を示すブロック図である。 本発明の実施の形態1における受信バッファ100の詳細を示すブロック図である。 本発明の実施の形態1における画像符号化データの1フレーム分の構成(復号画像イメージ)図である。 本発明の実施の形態1における受信バッファ蓄積量判定部200の詳細を示すブロック図である。 本発明の実施の形態1における復号ビデオパケット制御部300の詳細を示すブロック図である。 本発明の実施の形態1におけるビデオパケット検出部311でのサーチ結果を示す図である。 本発明の実施の形態1における重要度テーブル記憶部312に記憶された重要度テーブル700を示す図である。 本発明の実施の形態1における復号化部500の詳細を示すブロック図である。 本発明の実施の形態1における復号化タイミング信号と復号画像との関係を示す図である。 本発明の実施の形態1における画像復号化装置1000の動作を示すフロー図である。 受信バッファ蓄積量判定処理を示すフロー図である。 復号化対象符号化データ決定処理及び復号化処理を示すフロー図である。 復号化対象符号化データ決定処理及び復号化処理を示すフロー図である。 本発明の実施の形態2における画像復号化システムのブロック図である。 本発明の実施の形態3の処理装置のブロック図である。 (a)変形例1におけるビデオパケット検出部311でのサーチ結果を示す図である。(b)変形例1における重要度テーブル記憶部に記憶されている重要度テーブル1301を示す図である。 (a)変形例2におけるビデオパケット検出部311でのサーチ結果を示す図である。(b)変形例2における重要度テーブル記憶部に記憶されている重要度テーブル1401を示す図である。
符号の説明
1000 画像復号化装置
100、2201 受信バッファ
200 受信バッファ蓄積量判定部
300 復号ビデオパケット制御部
310 ビデオパケット重要度判定部
320 復号ビデオパケット判定部
400 受信バッファ制御部
500 復号化部
510 復号化対象符号化データ記憶部
520 復号化コア部
530 復号画像記憶部
101、511、2200 メモリ
102 readpointerA
103 readpointerB
104、201 remainsize
105、513 writepointer
106 加算器
107 スイッチ
202 閾値記憶部
203 判定コア部
311 ビデオパケット検出部
312 重要度テーブル記憶部
313 ビデオパケット重要度算出部
600、1300、1400 ビデオパケット毎のサーチ結果
700、2204、1301、1401 重要度テーブル
512 readpointer
531、2212 バンクA
532、2213 バンクB
901 復号画像(フレームN−1)
902 復号画像(フレームNのビデオパケット1のみ更新)
903 復号画像(フレームNのビデオパケット0のみ更新)
904 復号画像(フレームNのビデオパケット2のみ更新)
1 画像復号化システム
2 伝送路
10 画像符号化装置
11 入力画像記憶部
12 符号化部
13 送信バッファ
2000 処理装置
2100 CPU
2202 画像符号化データ蓄積量
2203 閾値
2205 受信バッファ画像符号化データ蓄積状況
2206 読み出しポインタA
2207 読み出しポインタB
2208 書き込みポインタ
2209 画像符号化データビデオパケット情報
2210 復号化対象符号化データ情報
2211 復号画像領域
以下、図面を参照しながら本発明の実施の形態を説明する。
(実施の形態1)
<概要>
デジタル信号処理における主要な技術の1つとして、デジタル化された情報信号を圧縮符号化する符号化技術が挙げられる。この符号化技術には、様々な規格が存在するが、特に動画像データを扱う分野においてはMPEG(Moving Picture Image Coding Experts Group)規格が主流となっている。例えば、デジタル放送システム等に利用されているMPEG−2方式や、携帯電話によるTV電話等に利用されているMPEG−4方式である。
現在、MPEG−4方式において、画像データを圧縮符号化する過程で1フレームをビデオパケットごとに区切り、ビデオパケット単位でデータを送信するという仕組みが主流である。その目的はデータを送信する中で、データが化けたり欠落したりした場合に、その影響を部分的な範囲に抑えることである。
本発明に係る画像復号化装置はその仕組みを利用して、受信バッファアンダーフローが起こったとき、あるいは受信バッファアンダーフローが起こる蓋然性が高い場合には、受信バッファに残存する画像符号化データを復号した画像データと、フレームメモリに格納されている一フレーム分の画像データとをビデオパケット単位で置き換えることにより、新たな一フレーム分の合成画像データを生成する。合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される。
これにより、画像データの全体が更新されないまでも、画像データの一部分が更新されることにより、何らかの変化が画面に現れることになる。
ユーザは部分的に更新された画面を見ることで、通信が途絶しているのではなく混雑していると認識できると共に少なくとも装置は故障していないと判断できる。その結果、ユーザから装置の故障や通信途絶などの不安感を拭うことができる。
<構成>
図1は、本発明の実施の形態1における画像復号化装置1000の機能構成の一例を示すブロック図である。図1に示されるように、画像復号化装置1000は、受信バッファ100、受信バッファ蓄積量判定部200、復号ビデオパケット制御部300、受信バッファ制御部400、及び復号化部500を含んで構成される。
受信バッファ100は、外部より逐次入力される符号化された画像データ(以下、「画像符号化データ」という)を受信して蓄積すると共に、画像符号化データの蓄積量(以下、「画像符号化データ蓄積量」という)を管理する。詳細な機能については<受信バッファ100>で説明する。
ここで画像符号化データは第1の処理単位で符号化されており、複数の第2の処理単位から構成される。第2の処理単位は少なくとも1つの第1の処理単位で構成される。本実施の形態では、画像符号化データはMPEG−4(ISO/IEC14496−2)方式で符号化された符号化データであり、第1の処理単位をマクロブロック、第2の処理単位をビデオパケットとして構成されているとする。ここでは、画像符号化データはMPEG−4方式で符号化されているものとして説明するが、特にこれに限定する必要はなく、画像圧縮技術を用いて符号化されたデータであればよい。
なお、MPEG−4(ISO/IEC14496−2)方式並びにその中で定義されているマクロブロック、ビデオパケット及び復号処理内容については公知の技術であり、本発明の主張するところではないため、それらの詳細な説明は省略する。
受信バッファ蓄積量判定部200は、受信バッファ100で管理される画像符号化データ蓄積量を取得し、取得した画像符号化データ蓄積量と予め内部に記憶している閾値とを用いて、受信バッファ100の画像符号化データ蓄積状況を判定する。判定した画像符号化データ蓄積状況を復号ビデオパケット制御部300に出力する。詳細な機能については<受信バッファ蓄積量判定部200>で説明する。
復号ビデオパケット制御部300は、外部より入力される復号化処理(又は復号画像の表示処理)レートの間隔を示す復号化タイミング信号を受信すると、受信バッファ蓄積量判定部200から取得した画像符号化データ蓄積状況と受信バッファ100に蓄積されている画像符号化データを構成する各ビデオパケットの重要度とに基づいて、受信バッファ100に蓄積されている画像符号化データのうち復号化の対象となる復号化対象符号化データを選択する。選択した復号化対象符号化データを読み出すよう、受信バッファ制御部400に指示する。
受信バッファ制御部400は復号ビデオパケット制御部300より指示を受け取ると、復号ビデオパケット制御部300により選択された復号化対象符号化データを受信バッファ100から読み出し、復号化部500へ転送する。
復号化部500は受信バッファ制御部400より入力された復号化対象符号化データに対し復号処理を行うと共に、復号処理で生成されなかった領域については一つ前の復号画像で代替することにより、合成画像(部分的に更新された復号画像)を生成し、出力する。
以下、各機能ブロックについて、さらに詳細に説明する。
<受信バッファ100>
図2は受信バッファ100の詳細を示すブロック図である。図1と同じ構成要素には同じ符号を付し、その説明は省略する。図2に示されるように、受信バッファ100は、メモリ101、readpointerA102、readpointerB103、remainsize104、writepointer105、加算器106、及びスイッチ107を含んで構成される。
入力される画像符号化データはメモリ101上のwritepointer105により示されるアドレス領域へ格納される。ここでwritepointer105により示されるアドレス値は初期値を0x0000とし、画像符号化データがメモリ101へ1バイト格納される毎に、1インクリメントされる。画像符号化データがメモリ101に格納されている間、スイッチ107は1側へ接続され、画像符号化データが1バイト格納される毎に、加算器106によりremainsize104が1インクリメントされる。ここでは、画像符号化データがメモリ101上のアドレス0x0000〜0x04FFに格納済みの状態で、writepointer105により示されるアドレス値は0x0500となっているものとする。
ここで、図3に画像符号化データの1フレーム分の構成例(復号画像イメージ)を示す。画像符号化データにおける1フレーム(フレームN、Nは自然数でフレーム番号を示す)は99個のマクロブロック(MB0〜MB98、水平方向に11個のマクロブロック、垂直方向に9個のマクロブロック)で構成され、画像サイズはQCIF(Quarter Common Intermediate Format)(水平176画素、垂直144画素)である。
また、図3に示されるフレームNはビデオパケット0(MB0〜MB32)、ビデオパケット1(MB33〜MB65)、ビデオパケット2(MB66〜MB98)の3つのビデオパケットから成る構成となっている。
図2に示される受信バッファ100のメモリ101には、図3に示される1フレーム分(フレームN)の画像符号化データがビデオパケット0(アドレス0x0100〜0x01FF)、ビデオパケット1(アドレス0x0200〜0x02FF)、ビデオパケット2(アドレス0x0300〜0x03FF)となるように格納されているものとする。
受信バッファ100は復号ビデオパケット制御部300より入力される復号ビデオパケット制御用画像符号化データ読み出し要求(以下、「符号化データ読み出し要求」という)を受信すると、readpointerA102に示されるアドレスの画像符号化データをメモリ101から読み出し、読み出した画像符号化データを復号ビデオパケット制御用画像符号化データ(以下、「制御用データ」という)として復号ビデオパケット制御部300へ送信する。ここでreadpointerA102により示されるアドレス値は初期値を0x0000とし、画像符号化データがメモリ101から1バイト読み出される毎に、1インクリメントされる。そして、符号化データ読み出し要求によるメモリ101からの画像符号化データの読み出しは、readpointerA102により示されるアドレス値が、writepointer105により示されるアドレス値となるまで行われる。ここでは、readpointerA102は0x0100、writepointer105は0x0500を指しているとし、復号ビデオパケット制御部300へ制御用データとして送信される画像符号化データは、メモリ101のアドレス0x0100〜0x04FFに格納されているデータである。
また、受信バッファ100は受信バッファ制御部400より入力される復号化対象符号化データ読み出し要求(以下、「対象データ読み出し要求」という)を受信すると、その中で指定されるアドレス値をreadpointerB103へセットし、同様に指定されるサイズ(バイト単位)分だけ、readpointerB103により示されるアドレスの画像符号化データをメモリ101から読み出し、読み出した画像符号化データを復号化対象符号化データとして受信バッファ制御部400へ送信する。画像符号化データがメモリ101から読み出されている間、スイッチ107は−1側へ接続され、画像符号化データが1バイト読み出される毎に、readpointerB103が1インクリメントされる共に、加算器106によりremainsize104が1デクリメントされる。ここでは、readpointerB103を用いてメモリ101上のアドレス0x0000〜0x00FFに格納された全画像符号化データがすでに読み出し済みで、かつ、writepointer105が上記の通り0x0500を指しているとき、remainsize104は0x0400となっているものとする。
さらに、画像符号化データの入力によるメモリ101への画像符号化データの格納時、及び対象データ読み出し要求によるメモリ101からの画像符号化データの読み出し時に、remainsize104の値が変更された場合、受信バッファ100は変更後のremainsize104の値を受信バッファ蓄積量として受信バッファ蓄積量判定部200に通知する。ここでは上記の通りremainsize104が0x0400となっており、受信バッファ蓄積量として0x0400が通知される。
<受信バッファ蓄積量判定部200>
図4は受信バッファ蓄積量判定部200の詳細を示す機能ブロック図である。図4に示されるように、受信バッファ蓄積量判定部200はremainsize201と、閾値記憶部202と、判定コア部203とを含んで構成される。
受信バッファ100から入力される受信バッファ蓄積量は、remainsize201へ格納される。ここでは上記の通り、受信バッファ蓄積量211として0x0400が入力され、remainsize201へ格納される。
閾値記憶部202は閾値ThA及び閾値ThBを記憶している。ここでは閾値ThAは0x0100、閾値ThBは0x0600であるものとする。
なお、ここでは受信バッファ画像符号化データ蓄積状況判定用に予め記憶した2種類の閾値ThA及びThBを使用しているが、より多くの閾値を用いたり、又は動的に変更される閾値を用いたりしてもよい。
判定コア部203はremainsize201及び閾値記憶部202に記憶されている閾値ThA、閾値ThBを読み出し、それらに基づいて受信バッファ画像符号化データ蓄積状況(以下、「符号化データ蓄積状況」という)を判定し、判定結果を復号ビデオパケット制御部300へ通知する。符号化データ蓄積状況の判定に関する詳細は図11で説明する。
<復号ビデオパケット制御部300>
図5は復号ビデオパケット制御部300の詳細を示す機能ブロック図である。
図5に示されるように、復号ビデオパケット制御部300は、ビデオパケット重要度判定部310、及び復号ビデオパケット判定部320を含んで構成される。
ビデオパケット重要度判定部310は、ビデオパケット検出部311、重要度テーブル記憶部312、及びビデオパケット重要度算出部313を含んで構成される。
ビデオパケット検出部311は、外部より復号化タイミング信号が入力されると、受信バッファ100に対し符号化データ読み出し要求を出力する。受信バッファ100から要求に対する応答として出力される制御用データを受信すると、制御用データとして入力される画像符号化データをサーチして、画像符号化データを構成するビデオパケットを検出する。ここでは上記の通り、図2に示されるメモリ101のアドレス0x0100〜0x04FFに格納されている画像符号化データが入力される。
具体的には、ビデオパケット検出部311は、まずメモリ101のアドレス0x0100〜0x0103に格納されているデータ”0x000001B6”をフレームNの先頭を示す同期語(シンクワード)として検出し、これより先のデータをフレームNの先頭のビデオパケット0とする。併せてフレームNのビデオパケット0の先頭アドレスとして0x0100、マクロブロック番号として0x00を記憶し、フレームNのビデオパケット0のデータサイズのカウントを開始する。
順次、メモリ101のアドレス0x0104以降のデータサーチを続行する。そして、メモリ101のアドレス0x0200〜0x0202に格納されているデータ”0x0000A1”の最上位から17ビットをビデオパケットの先頭を示す同期語(0x000080)として検出し、さらに残りのビットを当該ビデオパケットの先頭のマクロブロック番号(0x000021)として検出し、これより先のデータをフレームNの2番目のビデオパケット1とする。すなわちフレームNのビデオパケット0のサイズは0x100、終端マクロブロック番号は0x20となり、これらを記憶すると共に、フレームNのビデオパケット1の先頭アドレスとして0x0200、先頭マクロブロック番号として0x21を記憶し、再びフレームNのビデオパケット1のデータサイズのカウントを開始する。
順次、メモリ101のアドレス0x0203以降のデータサーチを続行する。そして、メモリ101のアドレス0x0300〜0x0302に格納されているデータ”0x0000C2”の最上位から17ビットをビデオパケットの先頭を示す同期語(0x000080)として検出し、さらに残りのビットを当該ビデオパケットの先頭のマクロブロック番号(0x000042)として検出し、これより先のデータをフレームNの3番目のビデオパケット2とする。すなわちフレームNビデオパケット1のサイズは0x100、終端マクロブロック番号は0x41となり、これらを記憶すると共に、フレームNのビデオパケット2の先頭アドレスとして0x0300、マクロブロック番号として0x42を記憶し、再びフレームNのビデオパケット2のデータサイズのカウントを開始する。
順次、メモリ101のアドレス0x0303以降のデータサーチを続行する。そして、メモリ101のアドレス0x0400〜0x0403に格納されているデータ”0x000001B6”をフレームN+1の先頭を示す同期語として検出し、これより先のデータをフレームN+1の先頭のビデオパケット0とする。すなわちフレームNのビデオパケット2のサイズは0x100、終端マクロブロック番号は0x62となり、これらを記憶すると共に、フレームN+1のビデオパケット0の先頭アドレスとして0x0400、マクロブロック番号として0x00を記憶し、再びフレームN+1のビデオパケット0のデータサイズのカウントを開始する。
順次、メモリ101のアドレス0x0404以降のデータサーチを続行し、上記の通りreadpointerA102により示されるアドレス値がwritepointer105により示されるアドレス値(0x0500)となった時点で、制御用データとして入力される画像符号化のデータサーチを終了する。
図6にビデオパケット検出部311でのサーチ結果を示す。図6に示されるように、ビデオパケット毎に先頭マクロブロック(MB)番号、終端マクロブロック(MB)番号、先頭アドレス、及びサイズ情報が得られる。なお、本図における先頭及び終端のマクロブロック番号は10進数で表している。
ビデオパケット検出部311はサーチ結果をビデオパケット重要度算出部313に送信する。
重要度テーブル記憶部312は、図7に示されるような重要度テーブルを記憶している。図7に示されるように、重要度テーブル700では、画像符号化データの1フレーム分の復号画像イメージ(各マクロブロック位置は図3と同様)において、マクロブロック単位に重要度(高:5〜低:1)が割り当てられており、かつ、画像中央に近い位置ほど高い重要度が与えられている。
ビデオパケット重要度算出部313はビデオパケット検出部311より入力されるビデオパケット毎のサーチ結果及び重要度テーブル記憶部312に記憶されている重要度テーブル700を基に、ビデオパケット毎の重要度を算出する。
具体的には、次のように重要度を算出する。まずフレームNのビデオパケット0において、先頭マクロブロック(MB)番号は0、終端マクロブロック(MB)番号は32であるので、それらに相当する重要度テーブル700の位置(MB0〜MB32)の重要度の総和を計算すると、1×11+2×11+2+3+4×7+3+2=71となる。したがって、フレームNのビデオパケット0の重要度は、71である。
また、フレームNのビデオパケット1において、先頭マクロブロック(MB)番号は33、終端マクロブロック(MB)番号は65であるので、それらに相当する重要度テーブル700の位置(MB33〜MB65)の重要度の総和を計算すると、(2+3+4+5×5+4+3+2)×3=129となる。したがって、フレームNのビデオパケット1の重要度は、129である。
また、フレームNのビデオパケット2において、先頭マクロブロック(MB)番号は66、終端マクロブロック(MB)番号は98であるので、それらに相当する重要度テーブル700の位置(MB66〜MB98)の重要度の総和を計算すると、1×11+2×11+2+3+4×7+3+2=71となる。したがって、フレームNのビデオパケット2の重要度は、71である。
以上より、フレームNのビデオパケット1の重要度(129)が最も高く、フレームNのビデオパケット0及びビデオパケット2の重要度(71)が低くなっている。ここでフレームN内の各ビデオパケットに対し、重要度に応じて順位付けを行う。まず、フレームNのビデオパケット1が最も重要度が高いため、順位(1)を割り当てる。フレームN内の他の2つのビデオパケット0、2の重要度は等しい値のため、ここではビデオパケット内の先頭のマクロブロック(MB)番号が小さい方を高順位とする。よってフレームNのビデオパケット0に順位(2)、フレームNのビデオパケット2に順位(3)を割り当てる。
ビデオパケット重要度算出部313は、上記決定したビデオパケット毎の順位(1〜3)を、復号ビデオパケット判定部320へ通知する。
復号ビデオパケット判定部320は、ビデオパケット重要度算出部313より通知されたビデオパケット毎の順位(1〜3)及び受信バッファ蓄積量判定部200より通知された符号化データ蓄積状況を基に、復号化対象符号化データを決定する。ここでは、符号化データ蓄積状況が2であるため、ビデオパケット単位での復号が可能であり、復号化対象符号化データ情報として、最も高い順位であるフレームNのビデオパケット1に関する情報を受信バッファ制御部400へ通知する。復号化対象符号化データ情報として受信バッファ制御部400へ通知するものとしては、フレームNのビデオパケット1のメモリ101上の先頭アドレス(0x0200)及びサイズ(0x0100)となる。
復号ビデオパケット制御部300は、ビデオパケット単位での復号が可能な場合には、復号化部500による画像生成を、直前の画像データにおける画像符号化データの占有割合よりも大きな占有割合となるよう、受信バッファ制御部400を介して制御しつつ繰り返させる。すなわち、フレームNのビデオパケット1に関する情報に続いて、フレームNのビデオパケット0に関する情報、フレームNのビデオパケット2に関する情報を受信バッファ制御部400へ通知する。
なお、ビデオパケット毎の順位(1〜3)及び符号化データ蓄積状況を基に復号化対象符号化データを決定する場合に、過去に既に受信バッファ制御部400へ通知済みのビデオパケットがあれば、これを判定対象から外し、下位順位の各ビデオパケットの順位を1ランク上げる。例えば、順位2を順位1にし、順位3を順位2にする。
続いて、符号化データ蓄積状況と復号化対象符号化データ情報との関係について説明する。本実施の形態では、符号化データ蓄積状況が2、つまり、1ビデオパケット以上の符号化データ量が蓄積されていると判断されるため、復号化対象のデータ量はビデオパケット単位ということになる。もしも、符号化データ蓄積状況が3であれば、少なくとも2フレーム以上の符号化データ量が蓄積されていると判断されるため、復号化対象のデータ量は1フレーム分とする。また、符号化データ蓄積状況が1であれば、1ビデオパケットよりも少ない符号化データしか蓄積されていないので、復号化処理は行われない。
<受信バッファ制御部400>
受信バッファ制御部400は、復号ビデオパケット制御部300より通知された復号化対象符号化データ情報(フレームNビデオパケット1のメモリ101上の先頭アドレス(0x0200)及びサイズ(0x0100))を基に、受信バッファ100内のメモリ101より画像符号化データを読み出し、読み出した画像符号化データを復号化対象符号化データとして、復号化部500へ送信する。
<復号化部500>
図8は復号化部500の詳細を示すブロック図である。
図8に示されるように、復号化部500は、復号化対象符号化データ記憶部510、復号化コア部520、及びバンクA531とバンクB532とを含む復号画像記憶部530を含んで構成される。
復号化対象符号化データ記憶部510は、メモリ511、readpointer512、及びwritepointer513を含んで構成される。
復号化部500では、受信バッファ制御部400より入力された復号化対象符号化データは、メモリ511上のwritepointer513により示されるアドレス領域に格納される。ここで、writepointer513により示されるアドレス値は初期値を0x1000とし、復号化対象符号化データがメモリ511へ1バイト格納される毎に、1インクリメントされる。ここでは、受信バッファ制御部400より入力される復号化対象符号化データのサイズは上記の通り0x0100であり、復号化対象符号化データがメモリ511に格納された後のwritepointer513の指すアドレス値は0x1100となる。
次に、メモリ511からreadpointer512により示されるアドレスの復号化対象符号化データ210が読み出され、復号化コア部805へ送信される。ここで、readpointer512により示されるアドレス値は初期値を0x1000とし、メモリ511から復号化対象符号化データが読み出されている間、1バイト読み出される毎に、readpointer512は1インクリメントされる。そして、メモリ511からの復号化対象符号化データの読み出しは、readpointer512の指すアドレス値が、writepointer513の指すアドレス値となるまで行われる。
復号化コア部520は復号化対象符号化データ記憶部510より入力された復号化対象符号化データに対し復号処理を行うと共に、前記復号処理で生成されなかった領域については一つ前の復号画像で代替することにより、合成画像(部分的に更新された復号画像)を生成する。より具体的には、復号画像記憶部530(ここでは、バンクB)に記憶されている一つ前の復号画像を取り出し、取り出した復号画像の一部(ここでは、フレームN−1のビデオパケット1)を、復号後の復号化対象符号化データ(ここでは、フレームNのビデオパケット1)で置き換えることにより合成画像、すなわちフレームN−1のビデオパケット1の部分のみがフレームNのビデオパケット1で更新された復号画像を生成する。生成した画像を復号画像記憶部530へ出力する。
復号画像記憶部530には、復号画像を格納する領域として、バンクA531及びバンクB532の二つの領域があり、復号画像を出力する場合は、バンクA531→バンクB532→バンクA531→・・と交互に切り替えながら出力する。ここではバンクB532には、一つ前の復号画像(フレームN−1のビデオパケット0、1、2)が格納されており、今回復号処理で出力される復号画像はバンクA531に出力されるものとする。
上記の構成によれば、入力される復号化対象符号化データがフレームNのビデオパケット1(MB33〜MB65、太枠で囲われた部分)のみであっても、それ以外の領域(MB0〜MB32、MB66〜MB98)については、バンクB532に格納されている一つ前の復号画像(フレームN−1のビデオパケット0、2)で代替することにより、容易に復号画像を得ることができる。
以降、外部より画像符号化データや復号化タイミング信号が入力されるタイミングで同様の処理を繰り返す。
以降の処理を簡単に説明すると、復号化部500は受信バッファ制御部400より復号化対象符号化データ(フレームNのビデオパケット0)が入力されると、当該データを復号し、バンクAに記憶されている復号画像を取り出し、取り出した復号画像の一部(フレームN−1のビデオパケット0)を、復号後の復号化対象符号化データ(フレームNのビデオパケット0)で置き換えることにより合成画像、すなわちフレームNのビデオパケット0のみ更新された復号画像を生成し、バンクBに記憶する。
さらに、復号化部500は受信バッファ制御部400より復号化対象符号化データ(フレームNのビデオパケット2)が入力されると、当該データを復号し、バンクBに記憶されている復号画像を取り出し、取り出した復号画像の一部(フレームN−1のビデオパケット2)を、復号後の復号化対象符号化データ(フレームNのビデオパケット2)で置き換えることにより合成画像、すなわちフレームNのビデオパケット2のみ更新された復号画像を生成し、バンクAに記憶する。
これにより、復号化対象符号化データの占有割合が徐々に大きくなるよう、合成画像を生成することができる。
図9は外部より入力される復号化タイミング信号と出力される復号画像との関係例を示す図である。図9に示されるように、時刻T−1で入力される復号化タイミング信号に対する画像復号化装置1000の一連の処理では、復号画像901(フレームN−1、画像全体が更新)が出力される。
次の時刻Tで入力される復号化タイミング信号に対する一連の処理では、復号画像902(代替データN、フレームNのビデオパケット1の部分(画像中央部)のみが更新)が出力される。
次の時刻T+1で入力される復号化タイミング信号に対する一連の処理では、復号画像903(代替データN+1、フレームNのビデオパケット0の部分(画像上部)がさらに更新)が出力される。
次の時刻T+2で入力される復号化タイミング信号に対する一連の処理では、復号画像904(代替データN+2、フレームNのビデオパケット2の部分(画像下部)がさらに更新)が出力される。この時点でフレームN−1に対して画像全体が更新されることになる。
<画像復号化装置1000の動作>
図10は本発明の実施の形態1における画像復号化装置1000の動作を示す処理フロー図である。
図10に示されるように、画像復号化装置1000はまず、外部より逐次入力される画像符号化データを受信バッファに蓄積し、画像符号化データ蓄積量を管理する(以下、「画像符号化データ蓄積ステップ」という)(ステップS101)。次に、画像符号化データ蓄積量と予め記憶している閾値とを用いて、受信バッファの画像符号化データ蓄積状況を判定する(以下、「受信バッファ蓄積量判定ステップ」という)(ステップS102)。受信バッファ蓄積量判定処理の詳細は図11で説明する。続いて、外部より入力される復号化タイミング信号を受信すると、画像符号化データ蓄積状況と受信バッファに蓄積されている画像符号化データを構成する各ビデオパケットの重要度とにより、受信バッファに蓄積されている画像符号化データのうち復号化の対象となる復号化対象符号化データを決定する(以下、「復号ビデオパケット制御ステップ」という)(ステップS103)。復号化対象符号化データが決定されると、復号化対象符号化データに対し復号処理を行い、復号画像を出力する(以下、「復号化ステップ」という)(ステップS104)。復号化対象符号化データ決定処理及び復号化処理の詳細は図12で説明する。
<受信バッファ蓄積量判定処理>
図11に判定コア部203における受信バッファ画像符号化データ蓄積状況判定処理フロー図を示す。
図11に示されるように、判定コア部203はremainsize201と閾値ThAとを比較する(ステップS201)。比較した結果、閾値ThAがremainsize201より大きい場合は(ステップS201でYes)、受信バッファ画像符号化データ蓄積状況として1をセットする(ステップS202)。
比較した結果、remainsize201が閾値ThA以上の場合は(ステップS201でNo)、remainsize201と閾値ThBとを比較する。比較した結果、閾値ThBがremainsize201より大きい場合は(ステップS203でYes)、受信バッファ画像符号化データ蓄積状況として2をセットする(ステップS204)。
比較した結果、remainsize201が閾値ThB以上の場合は(ステップS203でNo)、受信バッファ画像符号化データ蓄積状況として3をセットする。
ここでは上記の通り、remainsize201は0x0400、ThAは0x0100、ThBは0x0600としているため、受信バッファ画像符号化データ蓄積状況として2がセットされる。
<復号化対象符号化データ決定処理及び復号化処理>
図12、13に復号化対象符号化データ決定処理及び復号化処理に関するフロー図を示す。
復号化タイミング信号を受信すると(ステップS301でYes)、ビデオパケット検出部311は受信バッファ100に蓄積されている画像符号化データをサーチし、当該画像符号化データを構成するビデオパケットを検出する(ステップS302)。ビデオパケット検出部311によりビデオパケットが検出されると、ビデオパケット重要度算出部313はサーチ結果に基づき、各ビデオパケットの重要度を算出し、重要度に応じて順位付けを行う(ステップS303)。
復号ビデオパケット判定部320は画像符号化データ蓄積状況を取得した後(ステップS304)、直前の復号化処理でビデオパケットを復号し、かつ、当該ビデオパケット以外に当該ビデオパケットと同じフレームを構成するビデオパケットがあるか否かをサーチ結果に基づき判定する(ステップS305)。判定結果が否定的な場合には(ステップS305でNo)、ステップS304にて取得した画像符号化データ蓄積状況に応じた制御を行う。
取得した蓄積状況が1の場合、復号化部500は復号画像記憶部530に記憶されている直前のフレーム画像を出力する(ステップS306)。
取得した蓄積状況が2の場合、復号ビデオパケット判定部320はサーチ結果及び各ビデオパケットの重要度に基づき、復号化対象符号化データとなるビデオパケットを決定する。より具体的には、サーチ結果の中でフレーム番号が最も若いビデオパケットのうち最も順位の高いビデオパケットを決定する(ステップS307)。決定されたビデオパケットが受信バッファ制御部400により入力されると、復号化部500は当該ビデオパケットを復号する(ステップS308)。さらに、復号処理で生成されなかった領域については過去の復号画像で代替することにより、フレーム画像を作成する。より具体的には、一つ前の復号画像を取り出し、当該画像の一部をステップS308にて復号化されたビデオパケットで置き換えることにより、合成画像を生成する(ステップS309)。合成画像を生成した後、復号化コア部520によりフレーム画像を復号画像記憶部530に記憶した後(ステップS310)、出力する(ステップS311)。
取得した蓄積状況が3の場合、復号ビデオパケット判定部320はサーチ結果に基づき、復号化対象符号化データとなるフレームを決定する。より具体的には、サーチ結果の中でフレーム番号が最も若いフレームを復号化対象符号化データとして決定する(ステップS312)。決定されたフレームが受信バッファ制御部400により入力されると、復号化部500は当該フレームを復号する(ステップS313)。復号化コア部520により、フレーム画像を復号画像記憶部530に記憶した後(ステップS310)、出力する(ステップS311)。
ステップS305における判定結果が肯定的な場合には(ステップS305でYes)、当該フレーム構成するビデオパケットのうち、すでに復号されたビデオパケットを除いた最も順位の高いビデオパケットを決定する(ステップS314)。決定されたビデオパケットは、ステップS308にて復号される。このように、順位の高いビデオパケットから順に復号し、徐々に置換後の画像データの割合が大きくなるようにフレーム画像を生成することにより、画像の中でユーザにとって重要と思われる部分から先に更新することができる。
また、蓄積状況が3の場合には、フレーム単位で画像データの置き換えが行われるので、表示内容の滑らかな変化を実現することができ、ユーザにとって見やすい画像を提供することができる。
以上のように本実施の形態によれば、受信バッファアンダーフローが発生するような状況下でも、複数の復号化処理(又は復号画像の表示処理)間隔に亘って、ビデオパケット単位で画像更新することで、表示画像の更新が一定期間停止するということを防止する又は更新が停止する期間を短くすることができる。したがって、装置の故障や通信途絶などの不安感をユーザから拭い去ることができる。さらに、ビデオパケット単位で画像更新することにより、受信バッファに画像符号化データが受信される時間を作り出すことができ、受信バッファアンダーフローが発生する確率を低減することができる。
(実施の形態2)
本実施の形態は、実施の形態1における画像復号化装置と画像符号化装置とで構成される画像復号化システムに関する実施の形態である。
図10に示されるように、画像復号化システム1は実施の形態1の画像復号化装置1000と、入力画像記憶部11と符号化部12と送信バッファ13とを備える画像符号化装置10と、伝送路2とから構成される。
画像符号化装置10において、外部より入力される画像データは入力画像記憶部11へ格納される。
符号化部12は入力画像記憶部11に格納された画像データを読み出し、符号化処理を行い、符号化結果である画像符号化データを送信バッファ13へ出力する。ここで、符号化部12より出力される画像符号化データは第1の処理単位で符号化されており、複数の第2の処理単位から構成される。第2の処理単位は少なくとも1つの第1の処理単位で構成される。
本実施の形態では、画像符号化データはMPEG−4(ISO/IEC14496−2)方式で符号化された符号化データであり、第1の処理単位をマクロブロック、第2の処理単位をビデオパケットとして構成されているものであるとし、構成例としては実施の形態1において図3を用いて説明したものとしてよい。ここで、実施の形態1同様、画像符号化データはMPEG−4方式により符号化されるものとして説明するが、特にこれに限定する必要はなく、画像圧縮技術を用いて符号化されたデータであればよい。
送信バッファ13へ格納された画像符号化データは、所定のレートで伝送路2を介して、画像復号化装置1000へ送信される。
画像復号化装置1000は、伝送路2を介して入力された画像符号化データに対し復号処理を行うが、その実施の形態については、実施の形態1で説明した内容と同じであるため、ここでの説明は省略する。
以上のように本実施の形態によれば、受信バッファアンダーフローが発生するような状況下でも、複数の復号化処理(又は復号画像の表示処理)間隔に亘って、ビデオパケット単位で画像更新することで、表示画像の更新が一定期間停止するということを防止する又は更新が停止する期間を短くすることができる。したがって、装置の故障や通信途絶などの不安感をユーザから拭い去ることができる。
(実施の形態3)
本実施の形態は、実施の形態1における画像復号化装置をソフトウェアで実現する場合の実施の形態である。
図15は実施の形態1の図10のフローにより示されるステップを含む画像復号化方法を具現化する処理装置を示すブロック図である。
図15に示されるように、処理装置2000は、CPU2100と、メモリ2200とを備え、画像復号化方法の各ステップ(101〜104)における処理をCPU上で動作するプログラムとして実行し、画像復号化方法の各ステップ(101〜104)で入力、保持、参照、出力する各種データを格納する領域(受信バッファ2201、画像符号化データ蓄積量2202、閾値2203、重要度テーブル2204、受信バッファ画像符号化データ蓄積状況2205、読み出しポインタA2206、読み出しポインタB2207、書き込みポインタ2208、画像符号化データビデオパケット情報2209、復号化対象符号化データ情報2210、復号画像領域2211(バンクA2212、バンクB2213含む))をメモリ2200上に配置している。
以下、画像符号化方法における各ステップ(101〜104)について詳細に説明する。
まず、画像符号化データ蓄積ステップにおいて、外部より画像符号化データの入力がある場合には、画像符号化データを受信バッファ2201上の書き込みポインタ2208が指すアドレス領域へ格納する。
ここで、書き込みポインタ2208が指すアドレス値は初期値を0x0000とし、画像符号化データが受信バッファ2201へ1バイト格納される毎に1インクリメントされる。書き込みポインタ2208を用いて画像符号化データが受信バッファ2201に格納されている間、1バイト格納される毎に画像符号化データ蓄積量2202が1インクリメントされる。ここでは、画像符号化データは、実施の形態1で示した図2のメモリ101への画像符号化データ格納状態と同様、受信バッファ2201上のアドレス0x0000〜0x04FFに格納済みの状態で、書き込みポインタ2208が指すアドレス値は0x0500となっているものとする。
また、画像符号化データは実施の形態1で図3に示した構成(QCIF、3つのビデオパケット(ビデオパケット0(MB0〜MB32)、ビデオパケット1(MB33〜MB65)、ビデオパケット2(MB66〜MB98))から成る)であるとする。
受信バッファ2201には、画像符号化データの1フレーム分(フレームN)がビデオパケット0(アドレス0x0100〜0x01FF)、ビデオパケット1(アドレス0x0200〜0x02FF)、ビデオパケット2(アドレス0x0300〜0x03FF)となるように格納されているものとする。
次に、受信バッファ蓄積量判定ステップにおいて、画像符号化データ蓄積ステップ及び復号化ステップで更新された画像符号化データ蓄積量2202と閾値2203に記憶されている閾値ThA、ThBとを読み出し、それらを基に受信バッファ画像符号化データ蓄積状況2205を判定する。ここで、実施の形態1と同様、閾値ThAは0x0100、閾値ThBは0x0600であるものとし、受信バッファ画像符号化データ蓄積状況の判定フローも実施の形態1と同様であるものとする。したがって、受信バッファ画像符号化データ蓄積状況1127として2がセットされる。
次に、復号ビデオパケット制御ステップにおいて、外部より復号化処理(又は復号画像の表示処理)レートの間隔を示す復号化タイミング信号が入力された場合、以下の処理を行う。
まず受信バッファ2201から読み出しポインタA2206により示されるアドレスの画像符号化データを読み出す。ここで、読み出しポインタA2206が指すアドレス値は初期値を0x0000とし、受信バッファ2201から画像符号化データを読み出している間、1バイト読み出す毎に読み出しポインタA2206を1インクリメントする。そして受信バッファ2201からの画像符号化データの読み出しは、読み出しポインタA2206の指すアドレス値が、書き込みポインタ2208の指すアドレス値となるまで行われる。ここでは読み出しポインタA2206は0x0100、書き込みポインタ2208は0x0500を指しているとし、読み出される画像符号化データはメモリ101のアドレス0x0100〜0x04FFに格納されているデータとなる。
続いて、読み出した画像符号化データをサーチして、画像符号化データを構成するビデオパケットを検出する。受信バッファ2201に格納されている画像符号化データ及び画像符号化データを構成するビデオパケットの検出方法は、実施の形態1で示したものと同様であり、サーチ結果である画像符号化データビデオパケット情報2209は、図6に示す内容となる。
また、重要度テーブル2204は実施の形態1において図7に示される重要度テーブルと同様とする。
次に、画像符号化データビデオパケット情報2209及び重要度テーブル2204を基に、ビデオパケット毎の重要度(順位1〜3)を決定する。ここでビデオパケット毎の重要度決定方法は、実施の形態1で示した内容と同様であり、フレームNのビデオパケット1に順位(1)、フレームNのビデオパケット0に順位(2)、フレームNビデオパケット2に順位(3)がそれぞれ割り当てられる。
ビデオパケット毎の重要度(順位1〜3)及び受信バッファ画像符号化データ蓄積状況2205を基に、復号化対象符号化データ情報2210を決定する。すなわち、受信バッファ画像符号化データ蓄積状況2205から蓄積されているビデオパケットを判断し、蓄積されているビデオパケットのうち最も順位が高いビデオパケット(フレームNのビデオパケット1)のみを、復号化対象符号化データ情報2210とする。
ここで復号化対象符号化データ情報2210とするものとしては、フレームNのビデオパケット1の受信バッファ2201上の先頭アドレス(0x0200)及びサイズ(0x0100)となる。このときビデオパケット毎の順位(1〜3)及び受信バッファ画像符号化データ蓄積状況2205を基に復号化対象符号化データを決定する場合、過去に既に復号化対象符号化データ情報2210とされたビデオパケットがあれば、これを判断対象から外し、かつ下位順位の各ビデオパケットの順位を1ランク上げる。
続いて、復号化ステップ1104において、外部より復号化処理(又は復号画像の表示処理)レートの間隔を示す復号化タイミング信号が入力された場合、以下の処理を行う。
復号ビデオパケット制御ステップ1103で決定された復号化対象符号化データ情報2210(フレームNのビデオパケット1の受信バッファ2201上の先頭アドレス(0x0200)及びサイズ(0x0100))を基に、受信バッファ2201より読み出しポインタB2207を用いて画像符号化データを読み出し、復号処理を行う。読み出しポインタB2207が指すアドレス値は、画像符号化データ読み出し開始時に0x0200にセットされ、受信バッファ2201から画像符号化データが読み出されている間、1バイト読み出される毎に1インクリメントされる。また画像符号化データ蓄積量2202は、受信バッファ2201から1バイト読み出される毎に1デクリメントされる。
なお、受信バッファ2201からの画像符号化データの読み出しは、復号化対象符号化データ情報2210により示されるサイズ(0x0100)になるまで繰り返される。
復号処理で生成されなかった領域については一つ前の復号画像で代替することにより、合成画像(部分的に更新された復号画像)を生成する。具体的には実施の形態1で説明した通りである。
生成された復号画像(フレームNのビデオパケット1のみ更新)は復号画像領域2211へ格納された後、復号画像として出力される。また復号画像領域2211には、復号画像を格納する領域として、バンクA2212及びバンクB2213の二つの領域があり、復号画像を格納する場合は、バンクA2212→バンクB2213→バンクA2212→・・と交互に切り替えながら格納する。ここではバンクB2213には、一つ前の復号画像(フレームN−1のビデオパケット0、1、2)が格納されており、今回復号処理で出力される復号画像はバンクA2212に出力されるものとする。
上記の構成によれば、入力される復号化対象符号化データがフレームNのビデオパケット1(MB33〜MB65、太枠で囲われた部分)のみであっても、それ以外の領域(MB0〜MB32、MB66〜MB98)については、バンクB2213に格納されている一つ前の復号画像(フレームN−1のビデオパケット0、2)で代替することにより、容易に復号画像を得ることができる。
以降、外部より画像符号化データや復号化タイミング信号が入力されるタイミングで同様の処理を繰り返すことで、実施の形態1と同様、図9に示す結果が得られる。すなわち、復号化対象符号化データの占有割合が徐々に大きくなるよう、合成画像を生成することができる。
以上のように本実施の形態によれば、受信バッファアンダーフローが発生するような状況下でも、複数の復号化処理(又は復号画像の表示処理)間隔に亘って、ビデオパケット単位で画像更新することで、表示画像の更新が一定期間停止するということを防止する又は更新が停止する期間を短くすることができる。したがって、装置の故障や通信途絶などの不安感をユーザから拭い去ることができる。
(変形例1)
上記実施の形態では重要度テーブルとして、画像中央に近い位置ほど高い重要度が与えられたテーブルを使用したが、それ以外(例えば符号量、画像の動き、マクロブロックの種別、量子化パラメータ、データの受信順など)の要素を用いて設定したテーブルを用いたり、さらにはテーブルを動的に変更したりするような構成をとっても同様の効果が得られる。
例として重要度テーブルとして、画像の動き(復号処理で得られる動きベクトル)が大きいほど高い重要度が与えられたテーブルを使用する場合の形態を示す。
この場合、ビデオパケット検出部311は、制御用データとして入力される画像符号化データをサーチして、画像符号化データを構成するビデオパケットを検出する際に、図6に示される各ビデオパケットに関するビデオパケット先頭アドレス、先頭及び終端のマクロブロック番号、及びビデオパケットデータサイズに加え、各ビデオパケットに含まれるマクロブロックの動きベクトル(水平方向、垂直方向)を検出し、記憶する。
この際、検出されたマクロブロックが動きベクトルを持たないマクロブロック種別であった場合には、そのマクロブロックに関する動きベクトル(水平方向、垂直方向)は(0、0)とみなすものとする。
図16(a)にビデオパケット検出部311でのサーチ結果、図16(b)に重要度テーブル記憶部312aに記憶されている重要度テーブルを示す。
図16(a)に示されるように、ビデオパケット毎に先頭及び終端のマクロブロック(MB)番号、先頭アドレス、サイズ、及びビデオパケットに含まれるマクロブロックの動きベクトル(水平方向、垂直方向)の情報が得られる。
また図16(b)に示されるように、重要度テーブル1301は、動きベクトルの大きさに応じて重要度(高:5〜低:0)が割り当てられ、かつ、動きベクトルの絶対値が大きいほど高い重要度が与えられている。
ビデオパケット重要度算出部313は、ビデオパケット検出部311でのビデオパケット毎のサーチ結果1300及び重要度テーブル記憶部312aに記憶されている重要度テーブル1301を基に、ビデオパケット毎の重要度を算出する。
具体的には、次のように重要度を算出する。まず、フレームNのビデオパケット0において、先頭マクロブロック(MB)番号は0、終端マクロブロック(MB)番号は32であり、フレームNのビデオパケット0に含まれるマクロブロック0〜32の動きベクトル(水平方向、垂直方向)はマクロブロック0〜21が(0、0)、マクロブロック22〜32が(1、−4)であることから、重要度テーブル1301に基づき動きベクトル(水平方向、垂直方向それぞれ)の重要度の総和を計算すると、0×22+0×22+1×11+2×11=33となる。したがって、フレームNのビデオパケット0の重要度は、33である。
また、フレームNのビデオパケット1において、先頭マクロブロック(MB)番号は33、終端マクロブロック(MB)番号は65であり、フレームNのビデオパケット1に含まれるマクロブロック33〜65の動きベクトル(水平方向、垂直方向)はマクロブロック33〜54が(−1、2)、マクロブロック55〜65が(0、0)であることから、重要度テーブル1301に基づき動きベクトル(水平方向、垂直方向それぞれ)の重要度の総和を計算すると、1×22+1×22+0×11+0×11=44となる。したがって、フレームNのビデオパケット1の重要度は、44である。
また、フレームNのビデオパケット2において、先頭マクロブロック(MB)番号は66、終端マクロブロック(MB)番号は98であり、フレームNのビデオパケット2に含まれるマクロブロック66〜98の動きベクトル(水平方向、垂直方向)はマクロブロック66〜76が(16、−20)、マクロブロック77〜98が(0、0)であることから、重要度テーブル1301に基づき動きベクトル(水平方向、垂直方向それぞれ)の重要度の総和を計算すると、4×11+5×11+0×22+0×22=99となる。したがって、フレームNのビデオパケット2の重要度は、99である。
以上よりフレームNのビデオパケット2の重要度が最も高く(99)、次にフレームNのビデオパケット1(44)、そしてフレームNのビデオパケット0の重要度が最も低く(33)なっている。ここでフレームNの各ビデオパケットに対し、重要度に応じて順位付けを行う。まずフレームNのビデオパケット2が最も重要度が高いため、順位(1)を割り当てる。次にフレームNのビデオパケット1に順位(2)、フレームNビデオパケット0に順位(3)を割り当てる。
ビデオパケット重要度算出部313は、上記決定したビデオパケット毎の順位(1〜3)を、復号ビデオパケット判定部320へ通知する。
以降の処理については、上記実施の形態と同様であるので、説明を省略する。
(変形例2)
上記の変形例1では、動きベクトルに基づく重要度テーブルを用いて重要度を算出したが、フレームにおけるピクチャタイプがIピクチャである場合には動きベクトルを得ることはできない。したがって、フレームにおけるピクチャタイプがIピクチャである場合には、動きベクトルに基づく重要度テーブルを用いて重要度を算出することはできず、例えば、フレームの上部から順に更新していく等、別の基準に従いフレームを更新していく必要がある。
そこで、本変形例では2つの重要度テーブルを切り換えて使用することにより、フレームにおけるピクチャタイプがIピクチャである場合であっても、重要度テーブルに基づいて重要度を算出し、ユーザにとって重要と思われる部分から更新できるようにする。2つの重要度テーブルのうち、一つは上記図16(b)に示す画像の動き(復号処理で得られる動きベクトル)が大きいほど高い重要度が与えられたテーブルであり、もう一つは各ビデオパケットに含まれるマクロブロック当たりの平均符号量が大きいほど高い重要度が与えられたテーブルである。
この場合、ビデオパケット検出部311は制御用データとして入力される画像符号化データをサーチして、画像符号化データを構成するビデオパケットを検出する際に、上記に示す各ビデオパケットに関するビデオパケット先頭アドレス、先頭及び終端のマクロブロック番号、ビデオパケットデータサイズ、各ビデオパケットに含まれるマクロブロックの動きベクトル(水平方向、垂直方向)に加え、そのフレームのピクチャタイプ(Iピクチャ(画面内符号化ピクチャ)/それ以外のピクチャ(画面間符号化ピクチャ))を検出し、記憶する。
図17(a)にビデオパケット検出部311でのサーチ結果、図17(b)に重要度テーブル記憶部312bに記憶されている平均符号量に関する重要度テーブルを示す。
図17(a)に示されるように、ビデオパケット毎に先頭及び終端のマクロブロック(MB)番号、先頭アドレス、サイズ、ビデオパケットに含まれるマクロブロックの動きベクトル(水平方向、垂直方向)、及びフレームのピクチャタイプの情報が得られる。
また、図17(b)に示されるように、重要度テーブル1401はマクロブロック当たりの平均符号量の大きさに応じて重要度(高:5〜低:0)が割り当てられ、かつ、平均符号量が大きいほど高い重要度が与えられている。
ビデオパケット重要度算出部313はビデオパケット検出部311でのビデオパケット毎のサーチ結果1400及び重要度テーブル記憶部312a、bに記憶されている重要度テーブル1301及び1401を基に、ビデオパケット毎の重要度を算出する。
まずビデオパケット重要度算出部313は、サーチ結果1400より現在のフレームがIピクチャか、それ以外のピクチャかを判定する。
Iピクチャ以外のピクチャであった場合には、上記変形例1で示した処理と同様の処理を行う。
一方、サーチ結果1400より現在のフレームがIピクチャであった場合には、重要度テーブル1401を用いて、以下の手順によりビデオパケット毎の重要度を決定する。
具体的には、次のように重要度を算出する。まずフレームNのビデオパケット0に関して、先頭マクロブロック(MB)番号は0、終端マクロブロック(MB)番号は32であり、フレームNのビデオパケット0に含まれるマクロブロック数は33、サイズは0x0100であることから、マクロブロック当たりの平均符号量は0x0100÷33=7.76となる。したがって、フレームNのビデオパケット0の重要度は1となる。
また、フレームNビデオパケット1に関して、先頭マクロブロック(MB)番号は33、終端マクロブロック(MB)番号は65であり、フレームNのビデオパケット1に含まれるマクロブロック数は33、サイズは0x0100であることから、マクロブロック当たりの平均符号量は0x0100÷33=7.76となる。したがって、フレームNのビデオパケット1の重要度は1となる。
また、フレームNビデオパケット2に関して、先頭マクロブロック(MB)番号は66、終端マクロブロック(MB)番号は98であり、フレームNのビデオパケット2に含まれるマクロブロック数は33、サイズは0x0100であることから、マクロブロック当たりの平均符号量は0x0100÷33=7.76となる。したがって、フレームNのビデオパケット2の重要度は1となる。
以上より、フレームNビデオパケット0、フレームNビデオパケット1及びフレームNビデオパケット2の重要度は全て同じ(1)である。ここで、フレームNの各ビデオパケットに対し、重要度に応じて順位付けを行うが、フレームNの3つのビデオパケット0、1、2の重要度が全て等しい値のため、ここではビデオパケット内の先頭マクロブロック(MB)番号が小さい方を高順位とする。よって、フレームNのビデオパケット0に順位(1)、フレームNのビデオパケット1に順位(2)、フレームNのビデオパケット2に順位(3)が割り当てられる。ビデオパケット重要度算出部313は、上記決定したビデオパケット毎の順位(1〜3)を、復号ビデオパケット判定部320へ通知する。
以降の処理については、上記実施の形態と同様であるので、説明を省略する。
これにより、現在のフレームがIピクチャである場合であっても、重要度テーブル1401に基づいて重要度を算出することができるので、重要度を算出する際の精度を向上させることができる。
(変形例3)
上記実施の形態では、閾値記憶部202に閾値を2つ設けたが、3つ以上設けてもよい。例えば、閾値を3つ設けて、閾値Thaを0x0100、閾値Thbを0x0200、閾値Thcを0x0300とする。符号化データの蓄積量が閾値Tha未満であれば符号化データ蓄積状況は1がセットされ、閾値Tha以上閾値Thb未満であれば符号化データ蓄積状況は2がセットされ、閾値Thb以上閾値Thc未満であれば符号化データ蓄積状況は3がセットされ、閾値Thc以上であれば符号化データ蓄積状況は4がセットされるとする。このとき、符号化データ蓄積状況が1の時は復号化対象符号化データを画像更新しない。また、符号化データ蓄積状況が2の時はビデオパケット1つ毎に、符号化データ蓄積状況が3の時はビデオパケット2つ毎に、符号化データ蓄積状況が4の時はフレーム毎に、復号化対象符号化データとすることができ、符号化データの蓄積状況に応じて画像を更新することができる。
(補足)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)本発明は、上記フローチャートで示したステップを含む方法、及び上記フローチャートで示したステップをコンピュータに実行させるプログラムコードを含むプログラムであってもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記コンピュータプログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記コンピュータプログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(2)本発明は、画像復号化装置の制御を行うLSIとしても実施可能である。このようなLSIは、図1に示す各機能ブロックを集積化することで実現できる。これらの機能ブロックは、個別にLSI化されても良いし、一部または全てを含むシステムLSIとして実現してもよい。
また、集積化の手法はLSIに限るものではなく、専用又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて集積化を行っても良い。このような技術には、バイオ技術の適用等が可能性としてありえる。
(3)上記実施の形態では、2フレーム以上のサイズの画像符号化データを受信している場合にフレーム単位で画像更新を行うとしたが、1フレーム以上のサイズの画像符号化データを受信している場合に、フレーム単位で画像更新を行い、1フレームより小さいサイズの画像符号化データしか受信していない場合(受信バッファーアンダーフロー発生時)に、ビデオパケット単位で画像更新してもよい。上記実施の形態で示されるように、1フレーム以上のサイズの画像符号化データを受信している場合、すなわち、受信バッファアンダーフローを起こしていない場合であっても、受信バッファアンダーフローを起こす蓋然性が高い場合には、ビデオパケット単位で画像更新を行うことにより、受信バッファアンダーフローが起きてからビデオパケット単位で画像更新を行う場合と比べて、表示画像の更新が停止する期間を短くすることができる。
受信バッファアンダーフローを起こす蓋然性が高いか否かは、上記実施の形態で示したように、受信バッファ内の画像符号化データ量により判定してもよいし、画像符号化データ量の時間変化に基づいて判定してもよい。画像符号化データ量により判定する場合には、例えば、受信バッファに数フレーム分の画像符号化データしか蓄積されていない場合に蓋然性が高いと判定してよい。
画像符号化データ量の時間的変化により判定する場合には、例えば、外部から受信バッファに送信される画像符号化データの量が復号の際に受信バッファから読み出される画像符号化データの量より少ない場合に、蓋然性が高いと判定してもよい。
また、受信したビデオパケットの分だけ(例えばビデオパケット0と1を受信している場合はビデオパケット0と1の2つ)を画像更新するようにしてもよい。これより、1画像に近い単位で画像を更新することができ、ユーザにさらに不安感を与えない画像復号化装置を提供できる。
さらに、閾値で区切ったデータサイズ単位で画像更新をするようにしてもよい。この際、ユーザが閾値を自由に決めることで、ユーザの求める単位で画像を更新することができる。
(4)上記実施の形態では、第1の処理単位をマクロブロック、第2の処理単位をビデオパケットとして構成されているが、第1の処理単位をブロック、第2の処理単位をマクロブロックとした構成であっても同様の効果が得られる。第2の処理単位をマクロブロックとする場合には、第2の処理単位をビデオパケットとする場合と比べて、受信バッファにより少ない画像符号化データしか蓄積されていない場合に蓋然性が高いと判定してもよい。
(5)上記実施の形態では、外部より復号化タイミング信号が入力されるタイミングで、ビデオパケット単位で復号処理を行う構成となっているが、復号処理は画像(フレーム)単位で実行し、復号化タイミング信号が入力されるタイミングで、ビデオパケット単位で更新される復号画像を生成し、外部へ出力する構成をとっても同様の効果が得られる。
(6)上記実施の形態では、図12に示されるステップS305において肯定的な判定がなされる度に、当該フレームにおける全てのビデオパケットが復号されるまでビデオパケット単位の復号が行われる構成としたが、ステップS305において肯定的な判定がなされた場合であっても、ステップS304において取得した画像符号化データ蓄積状況が3である場合には、当該フレームを構成する残りのビデオパケットをまとめて復号してもよい。
(7)上記実施の形態では、MPEG−4を例に挙げて説明したため、ビデオパケットという用語を用いたが、ビデオパケットは他の符号化技術におけるスライスと同様の意味である。
(8)上記課題を解決するための手段に記載のフレームメモリ、判定手段、合成画像生成手段、及び出力手段は実施の形態におけるバンクAあるいはB、受信バッファ蓄積量判定部、復号化コア部、及び復号画像記憶部にそれぞれ対応する。
(9)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明は、インターネット等の伝送路を介してリアルタイムに画像符号化データのやり取りを行う端末等に利用でき、特に、受信バッファアンダーフローが起こり得る状況下で有用である。
本発明は、符号化された画像データを復号する技術に関し、特に、符号化された画像データをストリーミング方式により再生する際の当該画像データの復号技術に関する。
近年、インターネット等の伝送路を介して画像データを受信しながら同時に再生を行うストリーミング方式が普及している。
このストリーミング方式では、伝送路にアクセスが集中する等、伝送路上に過度の通信負荷がかかること(すなわち、輻輳)により伝送遅延が生じた場合に、どのように対応するかが問題となる。伝送遅延が生じる状況下では、再生に必要な画像データが、必要な時刻に受信側に到達しない現象(受信バッファアンダーフロー)が起こり得る。
従来、受信バッファがアンダーフローを起こした場合に、画像データに対する復号処理を停止し、直前の復号画像を出力し続けるMPEGビデオデコーダが知られている。具体的には、MPEGビデオデコーダは、受信バッファに蓄積されたMPEGビットストリームの占有量と所定の閾値とを比較し、占有量が閾値を下回っている場合に、復号処理をスキップし、それ以前にビットバッファから読み出されたMPEGビットストリームの復号結果を引き続き出力する。
このように従来技術によるMPEGビデオデコーダでは、受信バッファにおけるMPEGビットストリームの占有量が閾値を下回った場合、すなわち受信バッファアンダーフローが発生する恐れが高い場合には、復号処理がスキップされるので、その結果、占有量が増大し、受信バッファアンダーフローが回避されると共に、ビデオ出力も継続して行われるため、ディスプレイ表示も継続して行われ、表示画像が乱れることはない。
特開平8−331560号公報
しかしながら、従来の技術によるMPEGビデオデコーダは、受信バッファにおけるMPEGビットストリームの占有量が閾値を下回っている間、復号処理をスキップし、それ以前に受信バッファから読み出したMPEGビットストリームの復号結果を繰り返し出力するため、見かけ上、表示画像の更新が一定期間停止されてしまうという問題がある。
したがって、表示画像を見ているユーザは、装置の故障や通信途絶などの不安感を覚え、場合によっては、伝送路遅延による受信バッファアンダーフローが発生しているだけで正常動作しているにも関わらず、動作停止や通信切断などのコマンドを実行してしまうこともあり得る。
上述した課題は有線による伝送路上ではもとより、無線による伝送路上でのリアルタイム画像送受信において、より顕著となる。無線では有線より帯域が狭いことやエラー率が上がるという観点から、伝送路遅延に伴う受信バッファアンダーフロー発生の頻度が高くなるためである。
一方、今後、カメラ付き携帯電話における更なる動画像処理性能や通信性能の向上、広帯域無線アクセス環境の整備やカメラ、ビデオカメラ等の機器へのネットワーク機能実装によるワイヤレスネットワーク接続等により、様々な場面で、撮影された動画像がネットワークに配信され、かつ配信された動画像をリアルタイムに視聴するケース(所謂ライブ中継のような形態)が増えていくものと予測される。その際、例えばあるイベント開催時などで、ある特定の無線アクセスポイントに多数のカメラ機器が接続され、各カメラ機器により撮影された動画像がネットワークに配信されることにより輻輳状態が発生した場合に、送信される動画像データに著しい伝送遅延が起こり得る。その結果、受信側では受信バッファアンダーフローにより数秒以上、表示画像の更新が停止されることも考えられる。
本発明は受信バッファアンダーフローが発生するような状況下であっても、表示画像の更新が一定期間停止するということを防止する又は更新が停止する期間を短くする画像復号化装置を提供することを目的とする。
本発明は、外部から受信する画像符号化データを受信バッファに取り込みつつ、当該受信バッファから画像符号化データを読み出して復号し画像データを出力する画像復号化装置であって、画像データを一時的に保持するフレームメモリと、各瞬時における受信バッファ内の画像符号化データ量もしくは画像符号化データ量の時間変化に基づいてアンダーフローが発生しているか、あるいはアンダーフローが発生する蓋然性が高いか否かを判定する判定手段と、判定結果が肯定的な場合に、前記フレームメモリに格納されている一フレーム分の画像データを取り出すと共に、前記受信バッファに残存する画像符号化データの一部分を復号し、取り出した画像データの一部分を前記画像符号化データを復号した画像データの一部分で置き換えて、新たな一フレーム分の合成画像データを生成する合成画像生成手段と、生成された合成画像データを出力する出力手段と、を備え、合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される、ことを特徴とする画像復号化装置である。
上記課題を解決するための手段に記載の構成により、徐々に置換後の画像データの占有割合が高くなるよう生成された複数の合成画像が出力されるので、表示内容はゆっくりではあるが変化することになる。
表示内容のゆっくりとした変化を実現することにより、画像復号化装置が故障したり通信が途絶したりしたのではなく、“単にネットワークが混雑しているに過ぎない”という状況を、ユーザに理解させることができる。
ここで、前記外部から受信する画像符号化データは複数の所定の処理単位からなり、画像データの置き換えは、所定の処理単位毎に行われ、前記画像復号化装置は前記所定の処理単位毎に重要度を算出する重要度算出手段を備え、前記合成画像生成手段は前記フレームメモリに格納されている画像データの一部分を、算出された重要度のうち最も高い重要度に対応する所定の処理単位で置き換えるとしてもよい。
その場合、前記割り当てられた数値は、フレームの中央に近い位置ほど高くなるとしてもよい。
また、前記割り当てられた数値は、画像の動きが大きいほど高くなるとしてもよい。
これにより、前記合成画像生成手段は例えば、フレームの中央に近い位置または画像の動きが大きい部分を優先的に置き換えることができるので、画像の中でユーザにとって重要と思われる部分を先に更新することができる。
ここで、前記数値は複数のテーブルに割り当てられており、前記重要度算出手段は前記受信バッファに残存する画像符号化データから得られる情報に基づいて、前記複数のテーブルを動的に切り換え、重要度を算出するとしてもよい。
その場合に、前記画像符号化データから得られる情報はピクチャタイプを示す情報であるとしてもよい。
これにより、前記重要度算出手段は前記受信バッファに残存する画像符号化データから得られる情報に基づいて、重要度を算出することができる。例えば、複数のテーブルのうちの一つが動きベクトルに基づくテーブルである場合には、ピクチャタイプがIピクチャであれば、動きベクトルを得ることはできず、動きベクトルに基づくテーブルを用いて重要度を算出することはできないが、他のテーブルを用いることにより重要度を算出することができる。このように、複数のテーブルを用いることにより、重要度を算出できないという状況を回避することができる。
ここで、前記判定結果が否定的である場合に、前記合成画像生成手段は、前記フレームメモリに格納されている画像データを取り出すと共に、前記受信バッファに残存する一フレーム分の画像符号化データを復号し、取り出した画像データを前記画像符号化データを復号した画像データで置き換えて、新たな一フレーム分の画像データを生成するとしてもよい。
これにより、前記受信バッファに残存する画像符号化データの量に応じて、表示内容を変化させることができる。すなわち、前記画像復号化装置では判定結果が否定的な場合には、フレーム単位で画像データの置き換えが行われるので、表示内容の滑らかな変化を実現することができ、その結果、ユーザにとって見やすい画像を提供することができる。
ここで、前記画像復号化装置は、前記合成画像生成手段により新たに生成される一フレーム分の合成画像データを一時的に保持するための補助フレームメモリを備え、前記合成画像生成手段は、生成した複数の合成画像データを前記フレームメモリ及び前記補助フレームメモリに交互に記憶するとしてもよい。
これにより、前記合成画像生成手段は、前記フレームメモリ及び前記補助フレームメモリに格納されている画像データを用いることにより、容易に合成画像データを生成することができる。
ここで、前記合成画像生成手段は、前記フレームメモリに格納されている画像データをスライス単位で前記画像符号化データを復号した画像データに置き換えるとしてもよい。
これにより、前記受信バッファに残存する画像符号化データ中の特殊なビット列(同期語)を検出することにより、簡単に各スライスの範囲を特定することができるので、画像復号化装置における処理負荷を軽減できる。
ここで、画像データの置換を行う際の前記受信バッファに残存する画像符号化データの一部分のデータサイズは、前記受信バッファに残存する画像符号化データの量に応じて異なるとしてもよい。
これにより、例えば、前記受信バッファに残存する画像符号化データの量に余裕がある場合には、データの置き換えの際のデータサイズを大きくし、表示内容の滑らかな変化を実現することにより、ユーザにとって見やすい画像を提供することができる。また、前記受信バッファに残存する画像符号化データの量に余裕がない場合には、データの置き換えの際のデータサイズを小さくし、表示内容のゆっくりとした変化を実現することにより、画像の更新が途絶えるのを防止することができる。
ここで、前記フレームメモリに格納されている画像データは、前記合成画像生成手段により前記受信バッファに残存する画像符号化データの一部分が復号される直前に復号された画像データであるとしてもよい。
これにより、前記合成画像生成手段は、より違和感のない合成画像データを生成することができる。
以下、図面を参照しながら本発明の実施の形態を説明する。
(実施の形態1)
<概要>
デジタル信号処理における主要な技術の1つとして、デジタル化された情報信号を圧縮符号化する符号化技術が挙げられる。この符号化技術には、様々な規格が存在するが、特に動画像データを扱う分野においてはMPEG(Moving Picture Image Coding Experts Group)規格が主流となっている。例えば、デジタル放送システム等に利用されているMPEG−2方式や、携帯電話によるTV電話等に利用されているMPEG−4方式である。
現在、MPEG−4方式において、画像データを圧縮符号化する過程で1フレームをビデオパケットごとに区切り、ビデオパケット単位でデータを送信するという仕組みが主流である。その目的はデータを送信する中で、データが化けたり欠落したりした場合に、その影響を部分的な範囲に抑えることである。
本発明に係る画像復号化装置はその仕組みを利用して、受信バッファアンダーフローが起こったとき、あるいは受信バッファアンダーフローが起こる蓋然性が高い場合には、受信バッファに残存する画像符号化データを復号した画像データと、フレームメモリに格納されている一フレーム分の画像データとをビデオパケット単位で置き換えることにより、新たな一フレーム分の合成画像データを生成する。合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される。
これにより、画像データの全体が更新されないまでも、画像データの一部分が更新されることにより、何らかの変化が画面に現れることになる。
ユーザは部分的に更新された画面を見ることで、通信が途絶しているのではなく混雑していると認識できると共に少なくとも装置は故障していないと判断できる。その結果、ユーザから装置の故障や通信途絶などの不安感を拭うことができる。
<構成>
図1は、本発明の実施の形態1における画像復号化装置1000の機能構成の一例を示すブロック図である。図1に示されるように、画像復号化装置1000は、受信バッファ100、受信バッファ蓄積量判定部200、復号ビデオパケット制御部300、受信バッファ制御部400、及び復号化部500を含んで構成される。
受信バッファ100は、外部より逐次入力される符号化された画像データ(以下、「画像符号化データ」という)を受信して蓄積すると共に、画像符号化データの蓄積量(以下、「画像符号化データ蓄積量」という)を管理する。詳細な機能については<受信バッファ100>で説明する。
ここで画像符号化データは第1の処理単位で符号化されており、複数の第2の処理単位から構成される。第2の処理単位は少なくとも1つの第1の処理単位で構成される。本実施の形態では、画像符号化データはMPEG−4(ISO/IEC14496−2)方式で符号化された符号化データであり、第1の処理単位をマクロブロック、第2の処理単位をビデオパケットとして構成されているとする。ここでは、画像符号化データはMPEG−4方式で符号化されているものとして説明するが、特にこれに限定する必要はなく、画像圧縮技術を用いて符号化されたデータであればよい。
なお、MPEG−4(ISO/IEC14496−2)方式並びにその中で定義されているマクロブロック、ビデオパケット及び復号処理内容については公知の技術であり、本発明の主張するところではないため、それらの詳細な説明は省略する。
受信バッファ蓄積量判定部200は、受信バッファ100で管理される画像符号化データ蓄積量を取得し、取得した画像符号化データ蓄積量と予め内部に記憶している閾値とを用いて、受信バッファ100の画像符号化データ蓄積状況を判定する。判定した画像符号化データ蓄積状況を復号ビデオパケット制御部300に出力する。詳細な機能については<受信バッファ蓄積量判定部200>で説明する。
復号ビデオパケット制御部300は、外部より入力される復号化処理(又は復号画像の表示処理)レートの間隔を示す復号化タイミング信号を受信すると、受信バッファ蓄積量判定部200から取得した画像符号化データ蓄積状況と受信バッファ100に蓄積されている画像符号化データを構成する各ビデオパケットの重要度とに基づいて、受信バッファ100に蓄積されている画像符号化データのうち復号化の対象となる復号化対象符号化データを選択する。選択した復号化対象符号化データを読み出すよう、受信バッファ制御部400に指示する。
受信バッファ制御部400は復号ビデオパケット制御部300より指示を受け取ると、復号ビデオパケット制御部300により選択された復号化対象符号化データを受信バッファ100から読み出し、復号化部500へ転送する。
復号化部500は受信バッファ制御部400より入力された復号化対象符号化データに対し復号処理を行うと共に、復号処理で生成されなかった領域については一つ前の復号画像で代替することにより、合成画像(部分的に更新された復号画像)を生成し、出力する。
以下、各機能ブロックについて、さらに詳細に説明する。
<受信バッファ100>
図2は受信バッファ100の詳細を示すブロック図である。図1と同じ構成要素には同じ符号を付し、その説明は省略する。図2に示されるように、受信バッファ100は、メモリ101、readpointerA102、readpointerB103、remainsize104、writepointer105、加算器106、及びスイッチ107を含んで構成される。
入力される画像符号化データはメモリ101上のwritepointer105により示されるアドレス領域へ格納される。ここでwritepointer105により示されるアドレス値は初期値を0x0000とし、画像符号化データがメモリ101へ1バイト格納される毎に、1インクリメントされる。画像符号化データがメモリ101に格納されている間、スイッチ107は1側へ接続され、画像符号化データが1バイト格納される毎に、加算器106によりremainsize104が1インクリメントされる。ここでは、画像符号化データがメモリ101上のアドレス0x0000〜0x04FFに格納済みの状態で、writepointer105により示されるアドレス値は0x0500となっているものとする。
ここで、図3に画像符号化データの1フレーム分の構成例(復号画像イメージ)を示す。画像符号化データにおける1フレーム(フレームN、Nは自然数でフレーム番号を示す)は99個のマクロブロック(MB0〜MB98、水平方向に11個のマクロブロック、垂直方向に9個のマクロブロック)で構成され、画像サイズはQCIF(Quarter Common Intermediate Format)(水平176画素、垂直144画素)である。
また、図3に示されるフレームNはビデオパケット0(MB0〜MB32)、ビデオパケット1(MB33〜MB65)、ビデオパケット2(MB66〜MB98)の3つのビデオパケットから成る構成となっている。
図2に示される受信バッファ100のメモリ101には、図3に示される1フレーム分(フレームN)の画像符号化データがビデオパケット0(アドレス0x0100〜0x01FF)、ビデオパケット1(アドレス0x0200〜0x02FF)、ビデオパケット2(アドレス0x0300〜0x03FF)となるように格納されているものとする。
受信バッファ100は復号ビデオパケット制御部300より入力される復号ビデオパケット制御用画像符号化データ読み出し要求(以下、「符号化データ読み出し要求」という)を受信すると、readpointerA102に示されるアドレスの画像符号化データをメモリ101から読み出し、読み出した画像符号化データを復号ビデオパケット制御用画像符号化データ(以下、「制御用データ」という)として復号ビデオパケット制御部300へ送信する。ここでreadpointerA102により示されるアドレス値は初期値を0x0000とし、画像符号化データがメモリ101から1バイト読み出される毎に、1インクリメントされる。そして、符号化データ読み出し要求によるメモリ101からの画像符号化データの読み出しは、readpointerA102により示されるアドレス値が、writepointer105により示されるアドレス値となるまで行われる。ここでは、readpointerA102は0x0100、writepointer105は0x0500を指しているとし、復号ビデオパケット制御部300へ制御用データとして送信される画像符号化データは、メモリ101のアドレス0x0100〜0x04FFに格納されているデータである。
また、受信バッファ100は受信バッファ制御部400より入力される復号化対象符号化データ読み出し要求(以下、「対象データ読み出し要求」という)を受信すると、その中で指定されるアドレス値をreadpointerB103へセットし、同様に指定されるサイズ(バイト単位)分だけ、readpointerB103により示されるアドレスの画像符号化データをメモリ101から読み出し、読み出した画像符号化データを復号化対象符号化データとして受信バッファ制御部400へ送信する。画像符号化データがメモリ101から読み出されている間、スイッチ107は−1側へ接続され、画像符号化データが1バイト読み出される毎に、readpointerB103が1インクリメントされる共に、加算器106によりremainsize104が1デクリメントされる。ここでは、readpointerB103を用いてメモリ101上のアドレス0x0000〜0x00FFに格納された全画像符号化データがすでに読み出し済みで、かつ、writepointer105が上記の通り0x0500を指しているとき、remainsize104は0x0400となっているものとする。
さらに、画像符号化データの入力によるメモリ101への画像符号化データの格納時、及び対象データ読み出し要求によるメモリ101からの画像符号化データの読み出し時に、remainsize104の値が変更された場合、受信バッファ100は変更後のremainsize104の値を受信バッファ蓄積量として受信バッファ蓄積量判定部200に通知する。ここでは上記の通りremainsize104が0x0400となっており、受信バッファ蓄積量として0x0400が通知される。
<受信バッファ蓄積量判定部200>
図4は受信バッファ蓄積量判定部200の詳細を示す機能ブロック図である。図4に示されるように、受信バッファ蓄積量判定部200はremainsize201と、閾値記憶部202と、判定コア部203とを含んで構成される。
受信バッファ100から入力される受信バッファ蓄積量は、remainsize201へ格納される。ここでは上記の通り、受信バッファ蓄積量211として0x0400が入力され、remainsize201へ格納される。
閾値記憶部202は閾値ThA及び閾値ThBを記憶している。ここでは閾値ThAは0x0100、閾値ThBは0x0600であるものとする。
なお、ここでは受信バッファ画像符号化データ蓄積状況判定用に予め記憶した2種類の閾値ThA及びThBを使用しているが、より多くの閾値を用いたり、又は動的に変更される閾値を用いたりしてもよい。
判定コア部203はremainsize201及び閾値記憶部202に記憶されている閾値ThA、閾値ThBを読み出し、それらに基づいて受信バッファ画像符号化データ蓄積状況(以下、「符号化データ蓄積状況」という)を判定し、判定結果を復号ビデオパケット制御部300へ通知する。符号化データ蓄積状況の判定に関する詳細は図11で説明する。
<復号ビデオパケット制御部300>
図5は復号ビデオパケット制御部300の詳細を示す機能ブロック図である。
図5に示されるように、復号ビデオパケット制御部300は、ビデオパケット重要度判定部310、及び復号ビデオパケット判定部320を含んで構成される。
ビデオパケット重要度判定部310は、ビデオパケット検出部311、重要度テーブル記憶部312、及びビデオパケット重要度算出部313を含んで構成される。
ビデオパケット検出部311は、外部より復号化タイミング信号が入力されると、受信バッファ100に対し符号化データ読み出し要求を出力する。受信バッファ100から要求に対する応答として出力される制御用データを受信すると、制御用データとして入力される画像符号化データをサーチして、画像符号化データを構成するビデオパケットを検出する。ここでは上記の通り、図2に示されるメモリ101のアドレス0x0100〜0x04FFに格納されている画像符号化データが入力される。
具体的には、ビデオパケット検出部311は、まずメモリ101のアドレス0x0100〜0x0103に格納されているデータ”0x000001B6”をフレームNの先頭を示す同期語(シンクワード)として検出し、これより先のデータをフレームNの先頭のビデオパケット0とする。併せてフレームNのビデオパケット0の先頭アドレスとして0x0100、マクロブロック番号として0x00を記憶し、フレームNのビデオパケット0のデータサイズのカウントを開始する。
順次、メモリ101のアドレス0x0104以降のデータサーチを続行する。そして、メモリ101のアドレス0x0200〜0x0202に格納されているデータ”0x0000A1”の最上位から17ビットをビデオパケットの先頭を示す同期語(0x000080)として検出し、さらに残りのビットを当該ビデオパケットの先頭のマクロブロック番号(0x000021)として検出し、これより先のデータをフレームNの2番目のビデオパケット1とする。すなわちフレームNのビデオパケット0のサイズは0x100、終端マクロブロック番号は0x20となり、これらを記憶すると共に、フレームNのビデオパケット1の先頭アドレスとして0x0200、先頭マクロブロック番号として0x21を記憶し、再びフレームNのビデオパケット1のデータサイズのカウントを開始する。
順次、メモリ101のアドレス0x0203以降のデータサーチを続行する。そして、メモリ101のアドレス0x0300〜0x0302に格納されているデータ”0x0000C2”の最上位から17ビットをビデオパケットの先頭を示す同期語(0x000080)として検出し、さらに残りのビットを当該ビデオパケットの先頭のマクロブロック番号(0x000042)として検出し、これより先のデータをフレームNの3番目のビデオパケット2とする。すなわちフレームNビデオパケット1のサイズは0x100、終端マクロブロック番号は0x41となり、これらを記憶すると共に、フレームNのビデオパケット2の先頭アドレスとして0x0300、マクロブロック番号として0x42を記憶し、再びフレームNのビデオパケット2のデータサイズのカウントを開始する。
順次、メモリ101のアドレス0x0303以降のデータサーチを続行する。そして、メモリ101のアドレス0x0400〜0x0403に格納されているデータ”0x000001B6”をフレームN+1の先頭を示す同期語として検出し、これより先のデータをフレームN+1の先頭のビデオパケット0とする。すなわちフレームNのビデオパケット2のサイズは0x100、終端マクロブロック番号は0x62となり、これらを記憶すると共に、フレームN+1のビデオパケット0の先頭アドレスとして0x0400、マクロブロック番号として0x00を記憶し、再びフレームN+1のビデオパケット0のデータサイズのカウントを開始する。
順次、メモリ101のアドレス0x0404以降のデータサーチを続行し、上記の通りreadpointerA102により示されるアドレス値がwritepointer105により示されるアドレス値(0x0500)となった時点で、制御用データとして入力される画像符号化のデータサーチを終了する。
図6にビデオパケット検出部311でのサーチ結果を示す。図6に示されるように、ビデオパケット毎に先頭マクロブロック(MB)番号、終端マクロブロック(MB)番号、先頭アドレス、及びサイズ情報が得られる。なお、本図における先頭及び終端のマクロブロック番号は10進数で表している。
ビデオパケット検出部311はサーチ結果をビデオパケット重要度算出部313に送信する。
重要度テーブル記憶部312は、図7に示されるような重要度テーブルを記憶している。図7に示されるように、重要度テーブル700では、画像符号化データの1フレーム分の復号画像イメージ(各マクロブロック位置は図3と同様)において、マクロブロック単位に重要度(高:5〜低:1)が割り当てられており、かつ、画像中央に近い位置ほど高い重要度が与えられている。
ビデオパケット重要度算出部313はビデオパケット検出部311より入力されるビデオパケット毎のサーチ結果及び重要度テーブル記憶部312に記憶されている重要度テーブル700を基に、ビデオパケット毎の重要度を算出する。
具体的には、次のように重要度を算出する。まずフレームNのビデオパケット0において、先頭マクロブロック(MB)番号は0、終端マクロブロック(MB)番号は32であるので、それらに相当する重要度テーブル700の位置(MB0〜MB32)の重要度の総和を計算すると、1×11+2×11+2+3+4×7+3+2=71となる。したがって、フレームNのビデオパケット0の重要度は、71である。
また、フレームNのビデオパケット1において、先頭マクロブロック(MB)番号は33、終端マクロブロック(MB)番号は65であるので、それらに相当する重要度テーブル700の位置(MB33〜MB65)の重要度の総和を計算すると、(2+3+4+5×5+4+3+2)×3=129となる。したがって、フレームNのビデオパケット1の重要度は、129である。
また、フレームNのビデオパケット2において、先頭マクロブロック(MB)番号は66、終端マクロブロック(MB)番号は98であるので、それらに相当する重要度テーブル700の位置(MB66〜MB98)の重要度の総和を計算すると、1×11+2×11+2+3+4×7+3+2=71となる。したがって、フレームNのビデオパケット2の重要度は、71である。
以上より、フレームNのビデオパケット1の重要度(129)が最も高く、フレームNのビデオパケット0及びビデオパケット2の重要度(71)が低くなっている。ここでフレームN内の各ビデオパケットに対し、重要度に応じて順位付けを行う。まず、フレームNのビデオパケット1が最も重要度が高いため、順位(1)を割り当てる。フレームN内の他の2つのビデオパケット0、2の重要度は等しい値のため、ここではビデオパケット内の先頭のマクロブロック(MB)番号が小さい方を高順位とする。よってフレームNのビデオパケット0に順位(2)、フレームNのビデオパケット2に順位(3)を割り当てる。
ビデオパケット重要度算出部313は、上記決定したビデオパケット毎の順位(1〜3)を、復号ビデオパケット判定部320へ通知する。
復号ビデオパケット判定部320は、ビデオパケット重要度算出部313より通知されたビデオパケット毎の順位(1〜3)及び受信バッファ蓄積量判定部200より通知された符号化データ蓄積状況を基に、復号化対象符号化データを決定する。ここでは、符号化データ蓄積状況が2であるため、ビデオパケット単位での復号が可能であり、復号化対象符号化データ情報として、最も高い順位であるフレームNのビデオパケット1に関する情報を受信バッファ制御部400へ通知する。復号化対象符号化データ情報として受信バッファ制御部400へ通知するものとしては、フレームNのビデオパケット1のメモリ101上の先頭アドレス(0x0200)及びサイズ(0x0100)となる。
復号ビデオパケット制御部300は、ビデオパケット単位での復号が可能な場合には、復号化部500による画像生成を、直前の画像データにおける画像符号化データの占有割合よりも大きな占有割合となるよう、受信バッファ制御部400を介して制御しつつ繰り返させる。すなわち、フレームNのビデオパケット1に関する情報に続いて、フレームNのビデオパケット0に関する情報、フレームNのビデオパケット2に関する情報を受信バッファ制御部400へ通知する。
なお、ビデオパケット毎の順位(1〜3)及び符号化データ蓄積状況を基に復号化対象符号化データを決定する場合に、過去に既に受信バッファ制御部400へ通知済みのビデオパケットがあれば、これを判定対象から外し、下位順位の各ビデオパケットの順位を1ランク上げる。例えば、順位2を順位1にし、順位3を順位2にする。
続いて、符号化データ蓄積状況と復号化対象符号化データ情報との関係について説明する。本実施の形態では、符号化データ蓄積状況が2、つまり、1ビデオパケット以上の符号化データ量が蓄積されていると判断されるため、復号化対象のデータ量はビデオパケット単位ということになる。もしも、符号化データ蓄積状況が3であれば、少なくとも2フレーム以上の符号化データ量が蓄積されていると判断されるため、復号化対象のデータ量は1フレーム分とする。また、符号化データ蓄積状況が1であれば、1ビデオパケットよりも少ない符号化データしか蓄積されていないので、復号化処理は行われない。
<受信バッファ制御部400>
受信バッファ制御部400は、復号ビデオパケット制御部300より通知された復号化対象符号化データ情報(フレームNビデオパケット1のメモリ101上の先頭アドレス(0x0200)及びサイズ(0x0100))を基に、受信バッファ100内のメモリ101より画像符号化データを読み出し、読み出した画像符号化データを復号化対象符号化データとして、復号化部500へ送信する。
<復号化部500>
図8は復号化部500の詳細を示すブロック図である。
図8に示されるように、復号化部500は、復号化対象符号化データ記憶部510、復号化コア部520、及びバンクA531とバンクB532とを含む復号画像記憶部530を含んで構成される。
復号化対象符号化データ記憶部510は、メモリ511、readpointer512、及びwritepointer513を含んで構成される。
復号化部500では、受信バッファ制御部400より入力された復号化対象符号化データは、メモリ511上のwritepointer513により示されるアドレス領域に格納される。ここで、writepointer513により示されるアドレス値は初期値を0x1000とし、復号化対象符号化データがメモリ511へ1バイト格納される毎に、1インクリメントされる。ここでは、受信バッファ制御部400より入力される復号化対象符号化データのサイズは上記の通り0x0100であり、復号化対象符号化データがメモリ511に格納された後のwritepointer513の指すアドレス値は0x1100となる。
次に、メモリ511からreadpointer512により示されるアドレスの復号化対象符号化データ210が読み出され、復号化コア部805へ送信される。ここで、readpointer512により示されるアドレス値は初期値を0x1000とし、メモリ511から復号化対象符号化データが読み出されている間、1バイト読み出される毎に、readpointer512は1インクリメントされる。そして、メモリ511からの復号化対象符号化データの読み出しは、readpointer512の指すアドレス値が、writepointer513の指すアドレス値となるまで行われる。
復号化コア部520は復号化対象符号化データ記憶部510より入力された復号化対象符号化データに対し復号処理を行うと共に、前記復号処理で生成されなかった領域については一つ前の復号画像で代替することにより、合成画像(部分的に更新された復号画像)を生成する。より具体的には、復号画像記憶部530(ここでは、バンクB)に記憶されている一つ前の復号画像を取り出し、取り出した復号画像の一部(ここでは、フレームN−1のビデオパケット1)を、復号後の復号化対象符号化データ(ここでは、フレームNのビデオパケット1)で置き換えることにより合成画像、すなわちフレームN−1のビデオパケット1の部分のみがフレームNのビデオパケット1で更新された復号画像を生成する。生成した画像を復号画像記憶部530へ出力する。
復号画像記憶部530には、復号画像を格納する領域として、バンクA531及びバンクB532の二つの領域があり、復号画像を出力する場合は、バンクA531→バンクB532→バンクA531→・・と交互に切り替えながら出力する。ここではバンクB532には、一つ前の復号画像(フレームN−1のビデオパケット0、1、2)が格納されており、今回復号処理で出力される復号画像はバンクA531に出力されるものとする。
上記の構成によれば、入力される復号化対象符号化データがフレームNのビデオパケット1(MB33〜MB65、太枠で囲われた部分)のみであっても、それ以外の領域(MB0〜MB32、MB66〜MB98)については、バンクB532に格納されている一つ前の復号画像(フレームN−1のビデオパケット0、2)で代替することにより、容易に復号画像を得ることができる。
以降、外部より画像符号化データや復号化タイミング信号が入力されるタイミングで同様の処理を繰り返す。
以降の処理を簡単に説明すると、復号化部500は受信バッファ制御部400より復号化対象符号化データ(フレームNのビデオパケット0)が入力されると、当該データを復号し、バンクAに記憶されている復号画像を取り出し、取り出した復号画像の一部(フレームN−1のビデオパケット0)を、復号後の復号化対象符号化データ(フレームNのビデオパケット0)で置き換えることにより合成画像、すなわちフレームNのビデオパケット0のみ更新された復号画像を生成し、バンクBに記憶する。
さらに、復号化部500は受信バッファ制御部400より復号化対象符号化データ(フレームNのビデオパケット2)が入力されると、当該データを復号し、バンクBに記憶されている復号画像を取り出し、取り出した復号画像の一部(フレームN−1のビデオパケット2)を、復号後の復号化対象符号化データ(フレームNのビデオパケット2)で置き換えることにより合成画像、すなわちフレームNのビデオパケット2のみ更新された復号画像を生成し、バンクAに記憶する。
これにより、復号化対象符号化データの占有割合が徐々に大きくなるよう、合成画像を生成することができる。
図9は外部より入力される復号化タイミング信号と出力される復号画像との関係例を示す図である。図9に示されるように、時刻T−1で入力される復号化タイミング信号に対する画像復号化装置1000の一連の処理では、復号画像901(フレームN−1、画像全体が更新)が出力される。
次の時刻Tで入力される復号化タイミング信号に対する一連の処理では、復号画像902(代替データN、フレームNのビデオパケット1の部分(画像中央部)のみが更新)が出力される。
次の時刻T+1で入力される復号化タイミング信号に対する一連の処理では、復号画像903(代替データN+1、フレームNのビデオパケット0の部分(画像上部)がさらに更新)が出力される。
次の時刻T+2で入力される復号化タイミング信号に対する一連の処理では、復号画像904(代替データN+2、フレームNのビデオパケット2の部分(画像下部)がさらに更新)が出力される。この時点でフレームN−1に対して画像全体が更新されることになる。
<画像復号化装置1000の動作>
図10は本発明の実施の形態1における画像復号化装置1000の動作を示す処理フロー図である。
図10に示されるように、画像復号化装置1000はまず、外部より逐次入力される画像符号化データを受信バッファに蓄積し、画像符号化データ蓄積量を管理する(以下、「画像符号化データ蓄積ステップ」という)(ステップS101)。次に、画像符号化データ蓄積量と予め記憶している閾値とを用いて、受信バッファの画像符号化データ蓄積状況を判定する(以下、「受信バッファ蓄積量判定ステップ」という)(ステップS102)。受信バッファ蓄積量判定処理の詳細は図11で説明する。続いて、外部より入力される復号化タイミング信号を受信すると、画像符号化データ蓄積状況と受信バッファに蓄積されている画像符号化データを構成する各ビデオパケットの重要度とにより、受信バッファに蓄積されている画像符号化データのうち復号化の対象となる復号化対象符号化データを決定する(以下、「復号ビデオパケット制御ステップ」という)(ステップS103)。復号化対象符号化データが決定されると、復号化対象符号化データに対し復号処理を行い、復号画像を出力する(以下、「復号化ステップ」という)(ステップS104)。復号化対象符号化データ決定処理及び復号化処理の詳細は図12で説明する。
<受信バッファ蓄積量判定処理>
図11に判定コア部203における受信バッファ画像符号化データ蓄積状況判定処理フロー図を示す。
図11に示されるように、判定コア部203はremainsize201と閾値ThAとを比較する(ステップS201)。比較した結果、閾値ThAがremainsize201より大きい場合は(ステップS201でYes)、受信バッファ画像符号化データ蓄積状況として1をセットする(ステップS202)。
比較した結果、remainsize201が閾値ThA以上の場合は(ステップS201でNo)、remainsize201と閾値ThBとを比較する。比較した結果、閾値ThBがremainsize201より大きい場合は(ステップS203でYes)、受信バッファ画像符号化データ蓄積状況として2をセットする(ステップS204)。
比較した結果、remainsize201が閾値ThB以上の場合は(ステップS203でNo)、受信バッファ画像符号化データ蓄積状況として3をセットする。
ここでは上記の通り、remainsize201は0x0400、ThAは0x0100、ThBは0x0600としているため、受信バッファ画像符号化データ蓄積状況として2がセットされる。
<復号化対象符号化データ決定処理及び復号化処理>
図12、13に復号化対象符号化データ決定処理及び復号化処理に関するフロー図を示す。
復号化タイミング信号を受信すると(ステップS301でYes)、ビデオパケット検出部311は受信バッファ100に蓄積されている画像符号化データをサーチし、当該画像符号化データを構成するビデオパケットを検出する(ステップS302)。ビデオパケット検出部311によりビデオパケットが検出されると、ビデオパケット重要度算出部313はサーチ結果に基づき、各ビデオパケットの重要度を算出し、重要度に応じて順位付けを行う(ステップS303)。
復号ビデオパケット判定部320は画像符号化データ蓄積状況を取得した後(ステップS304)、直前の復号化処理でビデオパケットを復号し、かつ、当該ビデオパケット以外に当該ビデオパケットと同じフレームを構成するビデオパケットがあるか否かをサーチ結果に基づき判定する(ステップS305)。判定結果が否定的な場合には(ステップS305でNo)、ステップS304にて取得した画像符号化データ蓄積状況に応じた制御を行う。
取得した蓄積状況が1の場合、復号化部500は復号画像記憶部530に記憶されている直前のフレーム画像を出力する(ステップS306)。
取得した蓄積状況が2の場合、復号ビデオパケット判定部320はサーチ結果及び各ビデオパケットの重要度に基づき、復号化対象符号化データとなるビデオパケットを決定する。より具体的には、サーチ結果の中でフレーム番号が最も若いビデオパケットのうち最も順位の高いビデオパケットを決定する(ステップS307)。決定されたビデオパケットが受信バッファ制御部400により入力されると、復号化部500は当該ビデオパケットを復号する(ステップS308)。さらに、復号処理で生成されなかった領域については過去の復号画像で代替することにより、フレーム画像を作成する。より具体的には、一つ前の復号画像を取り出し、当該画像の一部をステップS308にて復号化されたビデオパケットで置き換えることにより、合成画像を生成する(ステップS309)。合成画像を生成した後、復号化コア部520によりフレーム画像を復号画像記憶部530に記憶した後(ステップS310)、出力する(ステップS311)。
取得した蓄積状況が3の場合、復号ビデオパケット判定部320はサーチ結果に基づき、復号化対象符号化データとなるフレームを決定する。より具体的には、サーチ結果の中でフレーム番号が最も若いフレームを復号化対象符号化データとして決定する(ステップS312)。決定されたフレームが受信バッファ制御部400により入力されると、復号化部500は当該フレームを復号する(ステップS313)。復号化コア部520により、フレーム画像を復号画像記憶部530に記憶した後(ステップS310)、出力する(ステップS311)。
ステップS305における判定結果が肯定的な場合には(ステップS305でYes)、当該フレーム構成するビデオパケットのうち、すでに復号されたビデオパケットを除いた最も順位の高いビデオパケットを決定する(ステップS314)。決定されたビデオパケットは、ステップS308にて復号される。このように、順位の高いビデオパケットから順に復号し、徐々に置換後の画像データの割合が大きくなるようにフレーム画像を生成することにより、画像の中でユーザにとって重要と思われる部分から先に更新することができる。
また、蓄積状況が3の場合には、フレーム単位で画像データの置き換えが行われるので、表示内容の滑らかな変化を実現することができ、ユーザにとって見やすい画像を提供することができる。
以上のように本実施の形態によれば、受信バッファアンダーフローが発生するような状況下でも、複数の復号化処理(又は復号画像の表示処理)間隔に亘って、ビデオパケット単位で画像更新することで、表示画像の更新が一定期間停止するということを防止する又は更新が停止する期間を短くすることができる。したがって、装置の故障や通信途絶などの不安感をユーザから拭い去ることができる。さらに、ビデオパケット単位で画像更新することにより、受信バッファに画像符号化データが受信される時間を作り出すことができ、受信バッファアンダーフローが発生する確率を低減することができる。
(実施の形態2)
本実施の形態は、実施の形態1における画像復号化装置と画像符号化装置とで構成される画像復号化システムに関する実施の形態である。
図10に示されるように、画像復号化システム1は実施の形態1の画像復号化装置1000と、入力画像記憶部11と符号化部12と送信バッファ13とを備える画像符号化装置10と、伝送路2とから構成される。
画像符号化装置10において、外部より入力される画像データは入力画像記憶部11へ格納される。
符号化部12は入力画像記憶部11に格納された画像データを読み出し、符号化処理を行い、符号化結果である画像符号化データを送信バッファ13へ出力する。ここで、符号化部12より出力される画像符号化データは第1の処理単位で符号化されており、複数の第2の処理単位から構成される。第2の処理単位は少なくとも1つの第1の処理単位で構成される。
本実施の形態では、画像符号化データはMPEG−4(ISO/IEC14496−2)方式で符号化された符号化データであり、第1の処理単位をマクロブロック、第2の処理単位をビデオパケットとして構成されているものであるとし、構成例としては実施の形態1において図3を用いて説明したものとしてよい。ここで、実施の形態1同様、画像符号化データはMPEG−4方式により符号化されるものとして説明するが、特にこれに限定する必要はなく、画像圧縮技術を用いて符号化されたデータであればよい。
送信バッファ13へ格納された画像符号化データは、所定のレートで伝送路2を介して、画像復号化装置1000へ送信される。
画像復号化装置1000は、伝送路2を介して入力された画像符号化データに対し復号処理を行うが、その実施の形態については、実施の形態1で説明した内容と同じであるため、ここでの説明は省略する。
以上のように本実施の形態によれば、受信バッファアンダーフローが発生するような状況下でも、複数の復号化処理(又は復号画像の表示処理)間隔に亘って、ビデオパケット単位で画像更新することで、表示画像の更新が一定期間停止するということを防止する又は更新が停止する期間を短くすることができる。したがって、装置の故障や通信途絶などの不安感をユーザから拭い去ることができる。
(実施の形態3)
本実施の形態は、実施の形態1における画像復号化装置をソフトウェアで実現する場合の実施の形態である。
図15は実施の形態1の図10のフローにより示されるステップを含む画像復号化方法を具現化する処理装置を示すブロック図である。
図15に示されるように、処理装置2000は、CPU2100と、メモリ2200とを備え、画像復号化方法の各ステップ(101〜104)における処理をCPU上で動作するプログラムとして実行し、画像復号化方法の各ステップ(101〜104)で入力、保持、参照、出力する各種データを格納する領域(受信バッファ2201、画像符号化データ蓄積量2202、閾値2203、重要度テーブル2204、受信バッファ画像符号化データ蓄積状況2205、読み出しポインタA2206、読み出しポインタB2207、書き込みポインタ2208、画像符号化データビデオパケット情報2209、復号化対象符号化データ情報2210、復号画像領域2211(バンクA2212、バンクB2213含む))をメモリ2200上に配置している。
以下、画像符号化方法における各ステップ(101〜104)について詳細に説明する。
まず、画像符号化データ蓄積ステップにおいて、外部より画像符号化データの入力がある場合には、画像符号化データを受信バッファ2201上の書き込みポインタ2208が指すアドレス領域へ格納する。
ここで、書き込みポインタ2208が指すアドレス値は初期値を0x0000とし、画像符号化データが受信バッファ2201へ1バイト格納される毎に1インクリメントされる。書き込みポインタ2208を用いて画像符号化データが受信バッファ2201に格納されている間、1バイト格納される毎に画像符号化データ蓄積量2202が1インクリメントされる。ここでは、画像符号化データは、実施の形態1で示した図2のメモリ101への画像符号化データ格納状態と同様、受信バッファ2201上のアドレス0x0000〜0x04FFに格納済みの状態で、書き込みポインタ2208が指すアドレス値は0x0500となっているものとする。
また、画像符号化データは実施の形態1で図3に示した構成(QCIF、3つのビデオパケット(ビデオパケット0(MB0〜MB32)、ビデオパケット1(MB33〜MB65)、ビデオパケット2(MB66〜MB98))から成る)であるとする。
受信バッファ2201には、画像符号化データの1フレーム分(フレームN)がビデオパケット0(アドレス0x0100〜0x01FF)、ビデオパケット1(アドレス0x0200〜0x02FF)、ビデオパケット2(アドレス0x0300〜0x03FF)となるように格納されているものとする。
次に、受信バッファ蓄積量判定ステップにおいて、画像符号化データ蓄積ステップ及び復号化ステップで更新された画像符号化データ蓄積量2202と閾値2203に記憶されている閾値ThA、ThBとを読み出し、それらを基に受信バッファ画像符号化データ蓄積状況2205を判定する。ここで、実施の形態1と同様、閾値ThAは0x0100、閾値ThBは0x0600であるものとし、受信バッファ画像符号化データ蓄積状況の判定フローも実施の形態1と同様であるものとする。したがって、受信バッファ画像符号化データ蓄積状況1127として2がセットされる。
次に、復号ビデオパケット制御ステップにおいて、外部より復号化処理(又は復号画像の表示処理)レートの間隔を示す復号化タイミング信号が入力された場合、以下の処理を行う。
まず受信バッファ2201から読み出しポインタA2206により示されるアドレスの画像符号化データを読み出す。ここで、読み出しポインタA2206が指すアドレス値は初期値を0x0000とし、受信バッファ2201から画像符号化データを読み出している間、1バイト読み出す毎に読み出しポインタA2206を1インクリメントする。そして受信バッファ2201からの画像符号化データの読み出しは、読み出しポインタA2206の指すアドレス値が、書き込みポインタ2208の指すアドレス値となるまで行われる。ここでは読み出しポインタA2206は0x0100、書き込みポインタ2208は0x0500を指しているとし、読み出される画像符号化データはメモリ101のアドレス0x0100〜0x04FFに格納されているデータとなる。
続いて、読み出した画像符号化データをサーチして、画像符号化データを構成するビデオパケットを検出する。受信バッファ2201に格納されている画像符号化データ及び画像符号化データを構成するビデオパケットの検出方法は、実施の形態1で示したものと同様であり、サーチ結果である画像符号化データビデオパケット情報2209は、図6に示す内容となる。
また、重要度テーブル2204は実施の形態1において図7に示される重要度テーブルと同様とする。
次に、画像符号化データビデオパケット情報2209及び重要度テーブル2204を基に、ビデオパケット毎の重要度(順位1〜3)を決定する。ここでビデオパケット毎の重要度決定方法は、実施の形態1で示した内容と同様であり、フレームNのビデオパケット1に順位(1)、フレームNのビデオパケット0に順位(2)、フレームNビデオパケット2に順位(3)がそれぞれ割り当てられる。
ビデオパケット毎の重要度(順位1〜3)及び受信バッファ画像符号化データ蓄積状況2205を基に、復号化対象符号化データ情報2210を決定する。すなわち、受信バッファ画像符号化データ蓄積状況2205から蓄積されているビデオパケットを判断し、蓄積されているビデオパケットのうち最も順位が高いビデオパケット(フレームNのビデオパケット1)のみを、復号化対象符号化データ情報2210とする。
ここで復号化対象符号化データ情報2210とするものとしては、フレームNのビデオパケット1の受信バッファ2201上の先頭アドレス(0x0200)及びサイズ(0x0100)となる。このときビデオパケット毎の順位(1〜3)及び受信バッファ画像符号化データ蓄積状況2205を基に復号化対象符号化データを決定する場合、過去に既に復号化対象符号化データ情報2210とされたビデオパケットがあれば、これを判断対象から外し、かつ下位順位の各ビデオパケットの順位を1ランク上げる。
続いて、復号化ステップ1104において、外部より復号化処理(又は復号画像の表示処理)レートの間隔を示す復号化タイミング信号が入力された場合、以下の処理を行う。
復号ビデオパケット制御ステップ1103で決定された復号化対象符号化データ情報2210(フレームNのビデオパケット1の受信バッファ2201上の先頭アドレス(0x0200)及びサイズ(0x0100))を基に、受信バッファ2201より読み出しポインタB2207を用いて画像符号化データを読み出し、復号処理を行う。読み出しポインタB2207が指すアドレス値は、画像符号化データ読み出し開始時に0x0200にセットされ、受信バッファ2201から画像符号化データが読み出されている間、1バイト読み出される毎に1インクリメントされる。また画像符号化データ蓄積量2202は、受信バッファ2201から1バイト読み出される毎に1デクリメントされる。
なお、受信バッファ2201からの画像符号化データの読み出しは、復号化対象符号化データ情報2210により示されるサイズ(0x0100)になるまで繰り返される。
復号処理で生成されなかった領域については一つ前の復号画像で代替することにより、合成画像(部分的に更新された復号画像)を生成する。具体的には実施の形態1で説明した通りである。
生成された復号画像(フレームNのビデオパケット1のみ更新)は復号画像領域2211へ格納された後、復号画像として出力される。また復号画像領域2211には、復号画像を格納する領域として、バンクA2212及びバンクB2213の二つの領域があり、復号画像を格納する場合は、バンクA2212→バンクB2213→バンクA2212→・・と交互に切り替えながら格納する。ここではバンクB2213には、一つ前の復号画像(フレームN−1のビデオパケット0、1、2)が格納されており、今回復号処理で出力される復号画像はバンクA2212に出力されるものとする。
上記の構成によれば、入力される復号化対象符号化データがフレームNのビデオパケット1(MB33〜MB65、太枠で囲われた部分)のみであっても、それ以外の領域(MB0〜MB32、MB66〜MB98)については、バンクB2213に格納されている一つ前の復号画像(フレームN−1のビデオパケット0、2)で代替することにより、容易に復号画像を得ることができる。
以降、外部より画像符号化データや復号化タイミング信号が入力されるタイミングで同様の処理を繰り返すことで、実施の形態1と同様、図9に示す結果が得られる。すなわち、復号化対象符号化データの占有割合が徐々に大きくなるよう、合成画像を生成することができる。
以上のように本実施の形態によれば、受信バッファアンダーフローが発生するような状況下でも、複数の復号化処理(又は復号画像の表示処理)間隔に亘って、ビデオパケット単位で画像更新することで、表示画像の更新が一定期間停止するということを防止する又は更新が停止する期間を短くすることができる。したがって、装置の故障や通信途絶などの不安感をユーザから拭い去ることができる。
(変形例1)
上記実施の形態では重要度テーブルとして、画像中央に近い位置ほど高い重要度が与えられたテーブルを使用したが、それ以外(例えば符号量、画像の動き、マクロブロックの種別、量子化パラメータ、データの受信順など)の要素を用いて設定したテーブルを用いたり、さらにはテーブルを動的に変更したりするような構成をとっても同様の効果が得られる。
例として重要度テーブルとして、画像の動き(復号処理で得られる動きベクトル)が大きいほど高い重要度が与えられたテーブルを使用する場合の形態を示す。
この場合、ビデオパケット検出部311は、制御用データとして入力される画像符号化データをサーチして、画像符号化データを構成するビデオパケットを検出する際に、図6に示される各ビデオパケットに関するビデオパケット先頭アドレス、先頭及び終端のマクロブロック番号、及びビデオパケットデータサイズに加え、各ビデオパケットに含まれるマクロブロックの動きベクトル(水平方向、垂直方向)を検出し、記憶する。
この際、検出されたマクロブロックが動きベクトルを持たないマクロブロック種別であった場合には、そのマクロブロックに関する動きベクトル(水平方向、垂直方向)は(0、0)とみなすものとする。
図16(a)にビデオパケット検出部311でのサーチ結果、図16(b)に重要度テーブル記憶部312aに記憶されている重要度テーブルを示す。
図16(a)に示されるように、ビデオパケット毎に先頭及び終端のマクロブロック(MB)番号、先頭アドレス、サイズ、及びビデオパケットに含まれるマクロブロックの動きベクトル(水平方向、垂直方向)の情報が得られる。
また図16(b)に示されるように、重要度テーブル1301は、動きベクトルの大きさに応じて重要度(高:5〜低:0)が割り当てられ、かつ、動きベクトルの絶対値が大きいほど高い重要度が与えられている。
ビデオパケット重要度算出部313は、ビデオパケット検出部311でのビデオパケット毎のサーチ結果1300及び重要度テーブル記憶部312aに記憶されている重要度テーブル1301を基に、ビデオパケット毎の重要度を算出する。
具体的には、次のように重要度を算出する。まず、フレームNのビデオパケット0において、先頭マクロブロック(MB)番号は0、終端マクロブロック(MB)番号は32であり、フレームNのビデオパケット0に含まれるマクロブロック0〜32の動きベクトル(水平方向、垂直方向)はマクロブロック0〜21が(0、0)、マクロブロック22〜32が(1、−4)であることから、重要度テーブル1301に基づき動きベクトル(水平方向、垂直方向それぞれ)の重要度の総和を計算すると、0×22+0×22+1×11+2×11=33となる。したがって、フレームNのビデオパケット0の重要度は、33である。
また、フレームNのビデオパケット1において、先頭マクロブロック(MB)番号は33、終端マクロブロック(MB)番号は65であり、フレームNのビデオパケット1に含まれるマクロブロック33〜65の動きベクトル(水平方向、垂直方向)はマクロブロック33〜54が(−1、2)、マクロブロック55〜65が(0、0)であることから、重要度テーブル1301に基づき動きベクトル(水平方向、垂直方向それぞれ)の重要度の総和を計算すると、1×22+1×22+0×11+0×11=44となる。したがって、フレームNのビデオパケット1の重要度は、44である。
また、フレームNのビデオパケット2において、先頭マクロブロック(MB)番号は66、終端マクロブロック(MB)番号は98であり、フレームNのビデオパケット2に含まれるマクロブロック66〜98の動きベクトル(水平方向、垂直方向)はマクロブロック66〜76が(16、−20)、マクロブロック77〜98が(0、0)であることから、重要度テーブル1301に基づき動きベクトル(水平方向、垂直方向それぞれ)の重要度の総和を計算すると、4×11+5×11+0×22+0×22=99となる。したがって、フレームNのビデオパケット2の重要度は、99である。
以上よりフレームNのビデオパケット2の重要度が最も高く(99)、次にフレームNのビデオパケット1(44)、そしてフレームNのビデオパケット0の重要度が最も低く(33)なっている。ここでフレームNの各ビデオパケットに対し、重要度に応じて順位付けを行う。まずフレームNのビデオパケット2が最も重要度が高いため、順位(1)を割り当てる。次にフレームNのビデオパケット1に順位(2)、フレームNビデオパケット0に順位(3)を割り当てる。
ビデオパケット重要度算出部313は、上記決定したビデオパケット毎の順位(1〜3)を、復号ビデオパケット判定部320へ通知する。
以降の処理については、上記実施の形態と同様であるので、説明を省略する。
(変形例2)
上記の変形例1では、動きベクトルに基づく重要度テーブルを用いて重要度を算出したが、フレームにおけるピクチャタイプがIピクチャである場合には動きベクトルを得ることはできない。したがって、フレームにおけるピクチャタイプがIピクチャである場合には、動きベクトルに基づく重要度テーブルを用いて重要度を算出することはできず、例えば、フレームの上部から順に更新していく等、別の基準に従いフレームを更新していく必要がある。
そこで、本変形例では2つの重要度テーブルを切り換えて使用することにより、フレームにおけるピクチャタイプがIピクチャである場合であっても、重要度テーブルに基づいて重要度を算出し、ユーザにとって重要と思われる部分から更新できるようにする。2つの重要度テーブルのうち、一つは上記図16(b)に示す画像の動き(復号処理で得られる動きベクトル)が大きいほど高い重要度が与えられたテーブルであり、もう一つは各ビデオパケットに含まれるマクロブロック当たりの平均符号量が大きいほど高い重要度が与えられたテーブルである。
この場合、ビデオパケット検出部311は制御用データとして入力される画像符号化データをサーチして、画像符号化データを構成するビデオパケットを検出する際に、上記に示す各ビデオパケットに関するビデオパケット先頭アドレス、先頭及び終端のマクロブロック番号、ビデオパケットデータサイズ、各ビデオパケットに含まれるマクロブロックの動きベクトル(水平方向、垂直方向)に加え、そのフレームのピクチャタイプ(Iピクチャ(画面内符号化ピクチャ)/それ以外のピクチャ(画面間符号化ピクチャ))を検出し、記憶する。
図17(a)にビデオパケット検出部311でのサーチ結果、図17(b)に重要度テーブル記憶部312bに記憶されている平均符号量に関する重要度テーブルを示す。
図17(a)に示されるように、ビデオパケット毎に先頭及び終端のマクロブロック(MB)番号、先頭アドレス、サイズ、ビデオパケットに含まれるマクロブロックの動きベクトル(水平方向、垂直方向)、及びフレームのピクチャタイプの情報が得られる。
また、図17(b)に示されるように、重要度テーブル1401はマクロブロック当たりの平均符号量の大きさに応じて重要度(高:5〜低:0)が割り当てられ、かつ、平均符号量が大きいほど高い重要度が与えられている。
ビデオパケット重要度算出部313はビデオパケット検出部311でのビデオパケット毎のサーチ結果1400及び重要度テーブル記憶部312a、bに記憶されている重要度テーブル1301及び1401を基に、ビデオパケット毎の重要度を算出する。
まずビデオパケット重要度算出部313は、サーチ結果1400より現在のフレームがIピクチャか、それ以外のピクチャかを判定する。
Iピクチャ以外のピクチャであった場合には、上記変形例1で示した処理と同様の処理を行う。
一方、サーチ結果1400より現在のフレームがIピクチャであった場合には、重要度テーブル1401を用いて、以下の手順によりビデオパケット毎の重要度を決定する。
具体的には、次のように重要度を算出する。まずフレームNのビデオパケット0に関して、先頭マクロブロック(MB)番号は0、終端マクロブロック(MB)番号は32であり、フレームNのビデオパケット0に含まれるマクロブロック数は33、サイズは0x0100であることから、マクロブロック当たりの平均符号量は0x0100÷33=7.76となる。したがって、フレームNのビデオパケット0の重要度は1となる。
また、フレームNビデオパケット1に関して、先頭マクロブロック(MB)番号は33、終端マクロブロック(MB)番号は65であり、フレームNのビデオパケット1に含まれるマクロブロック数は33、サイズは0x0100であることから、マクロブロック当たりの平均符号量は0x0100÷33=7.76となる。したがって、フレームNのビデオパケット1の重要度は1となる。
また、フレームNビデオパケット2に関して、先頭マクロブロック(MB)番号は66、終端マクロブロック(MB)番号は98であり、フレームNのビデオパケット2に含まれるマクロブロック数は33、サイズは0x0100であることから、マクロブロック当たりの平均符号量は0x0100÷33=7.76となる。したがって、フレームNのビデオパケット2の重要度は1となる。
以上より、フレームNビデオパケット0、フレームNビデオパケット1及びフレームNビデオパケット2の重要度は全て同じ(1)である。ここで、フレームNの各ビデオパケットに対し、重要度に応じて順位付けを行うが、フレームNの3つのビデオパケット0、1、2の重要度が全て等しい値のため、ここではビデオパケット内の先頭マクロブロック(MB)番号が小さい方を高順位とする。よって、フレームNのビデオパケット0に順位(1)、フレームNのビデオパケット1に順位(2)、フレームNのビデオパケット2に順位(3)が割り当てられる。ビデオパケット重要度算出部313は、上記決定したビデオパケット毎の順位(1〜3)を、復号ビデオパケット判定部320へ通知する。
以降の処理については、上記実施の形態と同様であるので、説明を省略する。
これにより、現在のフレームがIピクチャである場合であっても、重要度テーブル1401に基づいて重要度を算出することができるので、重要度を算出する際の精度を向上させることができる。
(変形例3)
上記実施の形態では、閾値記憶部202に閾値を2つ設けたが、3つ以上設けてもよい。例えば、閾値を3つ設けて、閾値Thaを0x0100、閾値Thbを0x0200、閾値Thcを0x0300とする。符号化データの蓄積量が閾値Tha未満であれば符号化データ蓄積状況は1がセットされ、閾値Tha以上閾値Thb未満であれば符号化データ蓄積状況は2がセットされ、閾値Thb以上閾値Thc未満であれば符号化データ蓄積状況は3がセットされ、閾値Thc以上であれば符号化データ蓄積状況は4がセットされるとする。このとき、符号化データ蓄積状況が1の時は復号化対象符号化データを画像更新しない。また、符号化データ蓄積状況が2の時はビデオパケット1つ毎に、符号化データ蓄積状況が3の時はビデオパケット2つ毎に、符号化データ蓄積状況が4の時はフレーム毎に、復号化対象符号化データとすることができ、符号化データの蓄積状況に応じて画像を更新することができる。
(補足)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)本発明は、上記フローチャートで示したステップを含む方法、及び上記フローチャートで示したステップをコンピュータに実行させるプログラムコードを含むプログラムであってもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記コンピュータプログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記コンピュータプログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(2)本発明は、画像復号化装置の制御を行うLSIとしても実施可能である。このようなLSIは、図1に示す各機能ブロックを集積化することで実現できる。これらの機能ブロックは、個別にLSI化されても良いし、一部または全てを含むシステムLSIとして実現してもよい。
また、集積化の手法はLSIに限るものではなく、専用又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて集積化を行っても良い。このような技術には、バイオ技術の適用等が可能性としてありえる。
(3)上記実施の形態では、2フレーム以上のサイズの画像符号化データを受信している場合にフレーム単位で画像更新を行うとしたが、1フレーム以上のサイズの画像符号化データを受信している場合に、フレーム単位で画像更新を行い、1フレームより小さいサイズの画像符号化データしか受信していない場合(受信バッファーアンダーフロー発生時)に、ビデオパケット単位で画像更新してもよい。上記実施の形態で示されるように、1フレーム以上のサイズの画像符号化データを受信している場合、すなわち、受信バッファアンダーフローを起こしていない場合であっても、受信バッファアンダーフローを起こす蓋然性が高い場合には、ビデオパケット単位で画像更新を行うことにより、受信バッファアンダーフローが起きてからビデオパケット単位で画像更新を行う場合と比べて、表示画像の更新が停止する期間を短くすることができる。
受信バッファアンダーフローを起こす蓋然性が高いか否かは、上記実施の形態で示したように、受信バッファ内の画像符号化データ量により判定してもよいし、画像符号化データ量の時間変化に基づいて判定してもよい。画像符号化データ量により判定する場合には、例えば、受信バッファに数フレーム分の画像符号化データしか蓄積されていない場合に蓋然性が高いと判定してよい。
画像符号化データ量の時間的変化により判定する場合には、例えば、外部から受信バッファに送信される画像符号化データの量が復号の際に受信バッファから読み出される画像符号化データの量より少ない場合に、蓋然性が高いと判定してもよい。
また、受信したビデオパケットの分だけ(例えばビデオパケット0と1を受信している場合はビデオパケット0と1の2つ)を画像更新するようにしてもよい。これより、1画像に近い単位で画像を更新することができ、ユーザにさらに不安感を与えない画像復号化装置を提供できる。
さらに、閾値で区切ったデータサイズ単位で画像更新をするようにしてもよい。この際、ユーザが閾値を自由に決めることで、ユーザの求める単位で画像を更新することができる。
(4)上記実施の形態では、第1の処理単位をマクロブロック、第2の処理単位をビデオパケットとして構成されているが、第1の処理単位をブロック、第2の処理単位をマクロブロックとした構成であっても同様の効果が得られる。第2の処理単位をマクロブロックとする場合には、第2の処理単位をビデオパケットとする場合と比べて、受信バッファにより少ない画像符号化データしか蓄積されていない場合に蓋然性が高いと判定してもよい。
(5)上記実施の形態では、外部より復号化タイミング信号が入力されるタイミングで、ビデオパケット単位で復号処理を行う構成となっているが、復号処理は画像(フレーム)単位で実行し、復号化タイミング信号が入力されるタイミングで、ビデオパケット単位で更新される復号画像を生成し、外部へ出力する構成をとっても同様の効果が得られる。
(6)上記実施の形態では、図12に示されるステップS305において肯定的な判定がなされる度に、当該フレームにおける全てのビデオパケットが復号されるまでビデオパケット単位の復号が行われる構成としたが、ステップS305において肯定的な判定がなされた場合であっても、ステップS304において取得した画像符号化データ蓄積状況が3である場合には、当該フレームを構成する残りのビデオパケットをまとめて復号してもよい。
(7)上記実施の形態では、MPEG−4を例に挙げて説明したため、ビデオパケットという用語を用いたが、ビデオパケットは他の符号化技術におけるスライスと同様の意味である。
(8)上記課題を解決するための手段に記載のフレームメモリ、判定手段、合成画像生成手段、及び出力手段は実施の形態におけるバンクAあるいはB、受信バッファ蓄積量判定部、復号化コア部、及び復号画像記憶部にそれぞれ対応する。
(9)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明は、インターネット等の伝送路を介してリアルタイムに画像符号化データのやり取りを行う端末等に利用でき、特に、受信バッファアンダーフローが起こり得る状況下で有用である。
本発明の実施の形態1における画像復号化装置1000の機能を示すブロック図である。 本発明の実施の形態1における受信バッファ100の詳細を示すブロック図である。 本発明の実施の形態1における画像符号化データの1フレーム分の構成(復号画像イメージ)図である。 本発明の実施の形態1における受信バッファ蓄積量判定部200の詳細を示すブロック図である。 本発明の実施の形態1における復号ビデオパケット制御部300の詳細を示すブロック図である。 本発明の実施の形態1におけるビデオパケット検出部311でのサーチ結果を示す図である。 本発明の実施の形態1における重要度テーブル記憶部312に記憶された重要度テーブル700を示す図である。 本発明の実施の形態1における復号化部500の詳細を示すブロック図である。 本発明の実施の形態1における復号化タイミング信号と復号画像との関係を示す図である。 本発明の実施の形態1における画像復号化装置1000の動作を示すフロー図である。 受信バッファ蓄積量判定処理を示すフロー図である。 復号化対象符号化データ決定処理及び復号化処理を示すフロー図である。 復号化対象符号化データ決定処理及び復号化処理を示すフロー図である。 本発明の実施の形態2における画像復号化システムのブロック図である。 本発明の実施の形態3の処理装置のブロック図である。 (a)変形例1におけるビデオパケット検出部311でのサーチ結果を示す図である。(b)変形例1における重要度テーブル記憶部に記憶されている重要度テーブル1301を示す図である。 (a)変形例2におけるビデオパケット検出部311でのサーチ結果を示す図である。(b)変形例2における重要度テーブル記憶部に記憶されている重要度テーブル1401を示す図である。
符号の説明
1000 画像復号化装置
100、2201 受信バッファ
200 受信バッファ蓄積量判定部
300 復号ビデオパケット制御部
310 ビデオパケット重要度判定部
320 復号ビデオパケット判定部
400 受信バッファ制御部
500 復号化部
510 復号化対象符号化データ記憶部
520 復号化コア部
530 復号画像記憶部
101、511、2200 メモリ
102 readpointerA
103 readpointerB
104、201 remainsize
105、513 writepointer
106 加算器
107 スイッチ
202 閾値記憶部
203 判定コア部
311 ビデオパケット検出部
312 重要度テーブル記憶部
313 ビデオパケット重要度算出部
600、1300、1400 ビデオパケット毎のサーチ結果
700、2204、1301、1401 重要度テーブル
512 readpointer
531、2212 バンクA
532、2213 バンクB
901 復号画像(フレームN−1)
902 復号画像(フレームNのビデオパケット1のみ更新)
903 復号画像(フレームNのビデオパケット0のみ更新)
904 復号画像(フレームNのビデオパケット2のみ更新)
1 画像復号化システム
2 伝送路
10 画像符号化装置
11 入力画像記憶部
12 符号化部
13 送信バッファ
2000 処理装置
2100 CPU
2202 画像符号化データ蓄積量
2203 閾値
2205 受信バッファ画像符号化データ蓄積状況
2206 読み出しポインタA
2207 読み出しポインタB
2208 書き込みポインタ
2209 画像符号化データビデオパケット情報
2210 復号化対象符号化データ情報
2211 復号画像領域

Claims (15)

  1. 外部から受信する画像符号化データを受信バッファに取り込みつつ、当該受信バッファから画像符号化データを読み出して復号し画像データを出力する画像復号化装置であって、
    画像データを一時的に保持するフレームメモリと、
    各瞬時における受信バッファ内の画像符号化データ量もしくは画像符号化データ量の時間変化に基づいてアンダーフローが発生しているか、あるいはアンダーフローが発生する蓋然性が高いか否かを判定する判定手段と、
    判定結果が肯定的な場合に、前記フレームメモリに格納されている一フレーム分の画像データを取り出すと共に、前記受信バッファに残存する画像符号化データの一部分を復号し、取り出した画像データの一部分を前記画像符号化データを復号した画像データの一部分で置き換えて、新たな一フレーム分の合成画像データを生成する合成画像生成手段と、
    生成された合成画像データを出力する出力手段と、を備え、
    合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される、
    ことを特徴とする画像復号化装置。
  2. 前記外部から受信する画像符号化データは複数の所定の処理単位からなり、
    画像データの置き換えは、所定の処理単位毎に行われ、
    前記画像復号化装置は前記所定の処理単位毎に重要度を算出する重要度算出手段を備え、
    前記合成画像生成手段は前記フレームメモリに格納されている画像データの一部分を、算出された重要度のうち最も高い重要度に対応する所定の処理単位で置き換える
    ことを特徴とする請求項1記載の画像復号化装置。
  3. 前記所定の処理単位は第二の処理単位であり、
    前記第二の処理単位は少なくとも一つの第一の処理単位で構成されており、
    前記第一の処理単位毎に数値が予め割り当てられており、
    各第二の処理単位における重要度は、当該第二の処理単位を構成する各第一の処理単位に割り当てられた数値を基に算出される
    ことを特徴とする請求項2記載の画像復号化装置。
  4. 前記割り当てられた数値は、フレームの中央に近い位置ほど高くなる
    ことを特徴とする請求項3記載の画像復号化装置。
  5. 前記割り当てられた数値は、画像の動きが大きいほど高くなる
    ことを特徴とする請求項3記載の画像復号化装置。
  6. 前記数値は、複数のテーブルに割り当てられており、
    前記重要度算出手段は、前記受信バッファに残存する画像符号化データから得られる情報に基づいて、前記複数のテーブルを動的に切り換え、重要度を算出する
    ことを特徴とする請求項3記載の画像復号化装置。
  7. 前記画像符号化データから得られる情報はピクチャタイプを示す情報である
    ことを特徴とする請求項6記載の画像符号化装置。
  8. 前記判定結果が否定的である場合に、前記合成画像生成手段は、前記フレームメモリに格納されている画像データを取り出すと共に、前記受信バッファに残存する一フレーム分の画像符号化データを復号し、取り出した画像データを前記画像符号化データを復号した画像データで置き換えて、新たな一フレーム分の画像データを生成する
    ことを特徴とする請求項1記載の画像復号化装置。
  9. 前記画像復号化装置は、前記合成画像生成手段により新たに生成される一フレーム分の合成画像データを一時的に保持するための補助フレームメモリを備え、
    前記合成画像生成手段は、生成した複数の合成画像データを前記フレームメモリ及び前記補助フレームメモリに交互に記憶する
    ことを特徴とする請求項1記載の画像復号化装置。
  10. 前記合成画像生成手段は、前記フレームメモリに格納されている画像データをスライス単位で前記画像符号化データを復号した画像データに置き換える
    ことを特徴とする請求項1記載の画像復号化装置。
  11. 画像データの置換を行う際の前記受信バッファに残存する画像符号化データの一部分のデータサイズは、前記受信バッファに残存する画像符号化データの量に応じて異なる
    ことを特徴とする請求項10記載の画像復号化装置。
  12. 前記フレームメモリに格納されている画像データは、前記合成画像生成手段により前記受信バッファに残存する画像符号化データの一部分が復号される直前に復号された画像データである
    ことを特徴とする請求項1記載の画像復号化装置。
  13. 画像データを符号化した後、符号化後の画像データである画像符号化データを画像復号化装置に送信する画像符号化装置と、前記画像符号化装置から送信される画像符号化データを受信バッファに取り込みつつ、当該受信バッファから画像符号化データを読み出して復号し画像データを出力する画像復号化装置とを含んで構成される画像復号化システムであって、
    前記画像復号化装置は、
    画像データを一時的に保持するフレームメモリと、
    各瞬時における受信バッファ内の画像符号化データ量もしくは画像符号化データ量の時間変化に基づいてアンダーフローが発生しているか、あるいはアンダーフローが発生する蓋然性が高いか否かを判定する判定手段と、
    判定結果が肯定的な場合に、前記フレームメモリに格納されている一フレーム分の画像データを取り出すと共に、前記受信バッファに残存する画像符号化データの一部分を復号し、取り出した画像データの一部分を前記画像符号化データを復号した画像データの一部分で置き換えて、新たな一フレーム分の合成画像データを生成する合成画像生成手段と、
    生成された合成画像データを出力する出力手段と、を備え、
    合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される、
    ことを特徴とする画像復号化システム。
  14. 外部から受信する画像符号化データを受信バッファに取り込みつつ、当該受信バッファから画像符号化データを読み出して復号し画像データを出力する画像復号化方法であって、
    各瞬時における受信バッファ内の画像符号化データ量もしくは画像符号化データ量の時間変化に基づいてアンダーフローが発生しているか、あるいはアンダーフローが発生する蓋然性が高いか否かを判定する判定ステップと、
    判定結果が肯定的な場合に、復号済みの画像データを一時的に保持するフレームメモリに格納されている一フレーム分の画像データを取り出すと共に、前記受信バッファに残存する画像符号化データの一部分を復号し、取り出した画像データの一部分を前記画像符号化データを復号した画像データの一部分で置き換えて、新たな一フレーム分の合成画像データを生成する合成画像生成ステップと、
    生成された合成画像データを出力する出力ステップと、を含み、
    合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される、
    ことを特徴とする画像復号化方法。
  15. 外部から受信する画像符号化データを受信バッファに取り込みつつ、当該受信バッファから画像符号化データを読み出して復号し画像データを出力する画像復号化装置に設けられるシステム集積回路であって、
    画像データを一時的に保持するフレームメモリと、
    各瞬時における受信バッファ内の画像符号化データ量もしくは画像符号化データ量の時間変化に基づいてアンダーフローが発生しているか、あるいはアンダーフローが発生する蓋然性が高いか否かを判定する判定手段と、
    判定結果が肯定的な場合に、前記フレームメモリに格納されている一フレーム分の画像データを取り出すと共に、前記受信バッファに残存する画像符号化データの一部分を復号し、取り出した画像データの一部分を前記画像符号化データを復号した画像データの一部分で置き換えて、新たな一フレーム分の合成画像データを生成する合成画像生成手段と、
    生成された合成画像データを出力する出力手段と、を備え、
    合成画像データは、置き換えられた画像データの占有割合が、直前に生成された合成画像データにおける置き換えられた画像データの占有割合よりも大きくなるよう、繰り返し生成され、生成された合成画像データは生成順に出力される、
    ことを特徴とするシステム集積回路。
JP2008534319A 2006-09-11 2007-09-07 画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi Expired - Fee Related JP5307545B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008534319A JP5307545B2 (ja) 2006-09-11 2007-09-07 画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006245202 2006-09-11
JP2006245202 2006-09-11
JP2008534319A JP5307545B2 (ja) 2006-09-11 2007-09-07 画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi
PCT/JP2007/067530 WO2008032660A1 (en) 2006-09-11 2007-09-07 Image decoding device, image decoding method, image decoding system, and system lsi

Publications (2)

Publication Number Publication Date
JPWO2008032660A1 true JPWO2008032660A1 (ja) 2010-01-21
JP5307545B2 JP5307545B2 (ja) 2013-10-02

Family

ID=39183719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008534319A Expired - Fee Related JP5307545B2 (ja) 2006-09-11 2007-09-07 画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi

Country Status (4)

Country Link
US (1) US8320686B2 (ja)
JP (1) JP5307545B2 (ja)
CN (1) CN101502121A (ja)
WO (1) WO2008032660A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4525795B2 (ja) * 2008-05-16 2010-08-18 ソニー株式会社 受信装置、受信方法、プログラム、及び通信システム
JP5234368B2 (ja) 2009-09-30 2013-07-10 ソニー株式会社 画像処理装置および方法
CN102111515A (zh) * 2009-12-24 2011-06-29 鸿富锦精密工业(深圳)有限公司 图片传送服务器及传送方法和网络终端及图片显示方法
CN101800873B (zh) * 2010-03-05 2011-09-28 杭州华三通信技术有限公司 一种视频监控数据的存储方法和设备
JP5994367B2 (ja) * 2012-04-27 2016-09-21 富士通株式会社 動画像符号化装置、動画像符号化方法
US9148647B2 (en) * 2013-02-06 2015-09-29 Mediatek Inc. Electronic devices and methods for processing video streams
US10531088B2 (en) * 2015-01-16 2020-01-07 Intel Corporation Encoder slice size control with cost estimation
KR101732995B1 (ko) * 2015-02-10 2017-05-25 엔에이치엔엔터테인먼트 주식회사 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법
JP6578808B2 (ja) 2015-08-18 2019-09-25 ヤマハ株式会社 コンテンツデータ受信装置
JP2017055275A (ja) * 2015-09-10 2017-03-16 株式会社東芝 復号装置、及び映像伝送システム
JP6133960B2 (ja) * 2015-11-12 2017-05-24 株式会社Pfu 映像処理装置、および、映像処理方法
JP6288129B2 (ja) * 2016-03-07 2018-03-07 富士通株式会社 動画像復号装置及び動画像復号方法
JP6146502B2 (ja) * 2016-03-07 2017-06-14 富士通株式会社 動画像符号化復号システム及び動画像符号化復号方法
JP6194973B2 (ja) * 2016-03-07 2017-09-13 富士通株式会社 動画像復号装置及び動画像復号方法
JP6194974B2 (ja) * 2016-03-07 2017-09-13 富士通株式会社 動画像復号装置及び動画像復号方法
US10515606B2 (en) * 2016-09-28 2019-12-24 Samsung Electronics Co., Ltd. Parallelizing display update

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02296454A (ja) 1989-05-11 1990-12-07 Mitsubishi Electric Corp 静止画像伝送装置
JPH0346884A (ja) * 1989-07-14 1991-02-28 Nec Corp 静止画テレビ電話装置
JP3447771B2 (ja) * 1993-09-02 2003-09-16 富士通株式会社 画像データの符号化方法及び復元方法並びに装置
JPH07307940A (ja) 1994-05-13 1995-11-21 Canon Inc 画像圧縮符号化装置
JP3203168B2 (ja) 1994-11-30 2001-08-27 三洋電機株式会社 Mpegビデオデコーダ
US5754241A (en) * 1994-11-18 1998-05-19 Sanyo Electric Co., Ltd Video decoder capable of controlling encoded video data
JPH08242445A (ja) 1995-03-06 1996-09-17 Hitachi Ltd 画像信号の符号化方法および伝送方法およびその復号化装置
JPH09214959A (ja) * 1996-02-06 1997-08-15 Matsushita Electric Ind Co Ltd 画像通信端末装置および画像復号化方法
US6011598A (en) * 1996-03-28 2000-01-04 Sanyo Electric Co., Ltd. Decoding start controller, decoder, and decoding system
JPH1070730A (ja) 1996-04-24 1998-03-10 Sharp Corp 画像符号化・復号化装置、及びその制御プログラムを記録した記録媒体
JPH10308944A (ja) 1997-05-09 1998-11-17 Mitsubishi Electric Corp 符号化伝送方式
KR100301826B1 (ko) * 1997-12-29 2001-10-27 구자홍 비디오디코더
JP3856267B2 (ja) * 1998-07-27 2006-12-13 株式会社リコー 画像伝送方法、画像送信方法及び装置、画像受信方法及び装置、並びに記録媒体
JP2000078573A (ja) * 1998-09-03 2000-03-14 Hitachi Ltd 階層符号化データ配信装置
US6330286B1 (en) * 1999-06-09 2001-12-11 Sarnoff Corporation Flow control, latency control, and bitrate conversions in a timing correction and frame synchronization apparatus
EP1182875A3 (en) * 2000-07-06 2003-11-26 Matsushita Electric Industrial Co., Ltd. Streaming method and corresponding system
JP4596693B2 (ja) * 2000-07-06 2010-12-08 パナソニック株式会社 ストリーミング方法およびそれを実行するシステム
JP2002101417A (ja) 2000-09-22 2002-04-05 Oki Electric Ind Co Ltd 動画像符号化方法および装置
US7958532B2 (en) * 2001-06-18 2011-06-07 At&T Intellectual Property Ii, L.P. Method of transmitting layered video-coded information
US7548984B2 (en) * 2002-05-27 2009-06-16 Panasonic Corporation Stream distribution system, stream server device, cache server device, stream record/playback device, related methods and computer programs
JP4261250B2 (ja) 2002-06-04 2009-04-30 パナソニック株式会社 画像データ伝送装置及び方法、画像データ再生装置及び方法
US7450646B2 (en) * 2002-06-04 2008-11-11 Panasonic Corporation Image data transmitting apparatus and method and image data reproducing apparatus and method
JP2004096695A (ja) * 2002-07-10 2004-03-25 Ricoh Co Ltd 画像処理装置、画像表示装置、プログラム、記憶媒体及び画像処理方法
JP4221667B2 (ja) * 2004-08-25 2009-02-12 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム

Also Published As

Publication number Publication date
US20090257666A1 (en) 2009-10-15
WO2008032660A1 (en) 2008-03-20
JP5307545B2 (ja) 2013-10-02
CN101502121A (zh) 2009-08-05
US8320686B2 (en) 2012-11-27

Similar Documents

Publication Publication Date Title
JP5307545B2 (ja) 画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi
JP4838251B2 (ja) 画像復号化装置、画像復号化方法および画像復号化システム
US7298913B2 (en) Video encoding method and apparatus employing motion compensated prediction interframe encoding, and corresponding video decoding method and apparatus
JP5227875B2 (ja) 動画像符号化装置
US20070291131A1 (en) Apparatus and Method for Controlling Image Coding Mode
CN100568970C (zh) 用于发信号通知和解码视频流中的有效入口点的方法
JP2007043421A (ja) 動き検出装置
JP2004180266A (ja) 動画像復号方法、動画像復号装置、及び動画像復号プログラム
JPWO2008136178A1 (ja) 動き検出装置、動き検出方法、及び動き検出プログラム
JPWO2011004598A1 (ja) 動画像符号化方法、装置、プログラム、および集積回路
CN104243990B (zh) 对数字视频数据进行编码的方法
JP2007104231A (ja) トランスコーダ、記録装置及びトランスコード方法
JP5858191B2 (ja) 画像復号装置、画像復号方法、及び画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2008153907A (ja) 画像符号化装置及びそれらを含む情報端末ならびに画像符号化方法
US8155186B2 (en) Bit stream recording medium, video encoder, and video decoder
TWI626844B (zh) 動態影像預測解碼裝置、動態影像預測解碼方法
JP5720751B2 (ja) 画像復号装置、画像復号方法、及び画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
CN107257459B (zh) 动态图像预测解码装置以及动态图像预测解码方法
JP2009071365A (ja) 動画像復号装置およびその方法
JPWO2009122925A1 (ja) 動画像変換装置、動画像配信システム、動画像変換方法及びプログラム
JP4736918B2 (ja) デジタル再生装置または再生プログラム
JP4178521B2 (ja) 符号化映像信号の記録方法、及び映像信号符号化装置
US20090016437A1 (en) Information processing apparatus
JP2011044771A (ja) 動画像復号装置および動画像復号方法
JP2010171480A (ja) 画像復号化装置および画像符号化装置、並びに画像復号化方法および画像符号化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120918

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130627

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees