JP5240513B2 - 情報処理装置および方法 - Google Patents

情報処理装置および方法 Download PDF

Info

Publication number
JP5240513B2
JP5240513B2 JP2008233334A JP2008233334A JP5240513B2 JP 5240513 B2 JP5240513 B2 JP 5240513B2 JP 2008233334 A JP2008233334 A JP 2008233334A JP 2008233334 A JP2008233334 A JP 2008233334A JP 5240513 B2 JP5240513 B2 JP 5240513B2
Authority
JP
Japan
Prior art keywords
bank
read
data
pointer
flag
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.)
Expired - Fee Related
Application number
JP2008233334A
Other languages
English (en)
Other versions
JP2010068301A (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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008233334A priority Critical patent/JP5240513B2/ja
Priority to US12/537,699 priority patent/US8565574B2/en
Priority to CN2009101736647A priority patent/CN101674479B/zh
Publication of JP2010068301A publication Critical patent/JP2010068301A/ja
Application granted granted Critical
Publication of JP5240513B2 publication Critical patent/JP5240513B2/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、情報処理装置および方法に関し、特に、バッファの入出力制御をより適切に行うことができるようにした情報処理装置および方法に関する。
従来、フレーム間相関や動き補償などを利用して高圧縮率を実現する符号化方式(コーデック)として、MPEG-2(Motion Picture Expert Group)やAVC(Advanced Video Codec)などがある。これらのコーデックは、高い圧縮率を誇るため、記録用途に適しているが、フレーム相関や動き補償を行うため、数フレーム単位での遅延が発生する。一方、フレーム間の相関を使わない符号化方式(コーデック)として、JPEG(Joint Picture Expert Group)やJPEG2000などがある。これらのコーデックは、上述したMPEG-2やAVCに比べて圧縮率では劣るが、フレーム内での閉じた圧縮方式であるため、遅延が1フレームに抑えられるという特徴を有する。したがって、これらのコーデックは、低遅延通信用途に適しており、例えば監視カメラなどで利用されている。さらに、JPEGやJPEG2000などよりも低遅延な方式として、ラインベースで圧縮を行うコーデック技術がある。ラインベース・コーデックとは、1フレーム全体を単位として圧縮するのではなく、数ライン単位で圧縮を行い、順次、出力するようなコーデックである。
画面全体の情報を使わずに数ラインの情報で圧縮パラメータを決定するために、ターゲットビットレート(画像ストリームの圧縮レート)に対して、処理単位毎のビット量ばらつきが大きくなる。ラインベース・コーデックの出力はVBR(Variable Bit Rate、可変ビットレート)であり、通信回線で送るときは、これをCBR(Constant Bit Rate、固定ビットレート)化して送る必要がある。そのため、エンコーダの後段において、コードストリームおよび付随するデータ(エンコードパラメータ)を一時的にバッファリングし、伝送路の状況に合わせて出力する必要がある(例えば、特許文献1参照)。
しかしながら以上のようなバッファリングにおいて、伝送路の状況が良くないとバッファからのデータ出力は停止され、伝送路の状況が再び改善するまで再開されない。これに対してバッファへのデータ入力は伝送路の状況とは関係無く行われる。つまり、伝送路の状況が良くないままだと、いずれはバッファがいっぱいになり(書き込みポインタが読み出しポインタに後ろから追いつき)バンクフル(Bank Full)状態が発生する。バンクフル状態においては、バッファの全バンクに未読み出しのデータが格納されているので、新たなデータを正常にバッファリングすることができない。
そこで、第1の方法として、バンクフルの状態で新たなデータが入力された場合、そのデータをバッファに格納せずに破棄することが考えられる。また、第2の方法として、バンクフルの状態で次のデータが入力された場合、全てのバンクを空にし、供給されたデータを格納する方法も考えられる。さらに、第3の方法として、バッファの容量(バンクの数)を増大させ、より多くの情報をバッファすることができるようにし、バンクフルの状態の発生を抑制する方法が考えられる。
特開2008−28541号公報
しかしながら、例えば第1の方法の場合、バンクに残っている古いデータは、これから伝送しても、デコーダ側でデコード時刻に間に合わない可能性がある。デコード時刻に間に合わない場合、その伝送したデータは、デコードされずに廃棄される。つまり、一般的に、デコード開始時刻に対して余裕のないデータをバッファに保持し続けるよりも、より時間的に余裕のある新しいデータをバンクに格納するほうが、デコード処理されるデータが増大する可能性が高くなり、復号画像の画質は有利になる。これに対して、上述した第1の方法のように新しいデータを破棄するようにすると、デコード側において新しいデータと古いデータの両方ともデコードされない可能性が高くなる。つまり、デコードされない部分が増大し、復号画像の画質が低下する恐れがあった。
また、例えば第2の方法の場合、制御は容易であるものの、破棄するデータ量が多く、データ読み出しの停止が極短期間であるとき、不要にデータを破棄することになり、復号画像の画質を不要に劣化させてしまう恐れがあった。殊に無線環境においては、レートの変動が激しく、一時的にデータを送れない状況になることが頻繁に発生するので、このような短期間のバンクフル状態が発生しやすい。
さらに、例えば第3の方法の場合、メモリ量が増大するため、回路規模やコストが増大する恐れがあった。また、メモリ量(バッファ量)が増大すると、伝送時の遅延時間が増大する。したがって、ラインベース・コーデックのように低遅延を重視するコーデックのデータをバッファリングする場合、その利点(低遅延)を損なう恐れがあった。さらに、データ読み出しの停止期間は一定であるとは限らず、また、伝送路として使用されるネットワークの特性などによってもその停止期間は大きく異なる。つまり、バッファ量の最適値は、システム構成やデータ等、多様な条件に依存し、特定することは困難である。そのため、バンクフルを発生させないようにするためには、最悪値を基にバンク数(バッファ量)を設定するしかないが、その場合、不要にメモリ容量が増大し、コストや消費電力が増大してしまう恐れがあった。バンク数を動的に変更することも考えられるが、制御が複雑になり、容易に実現することができないだけでなく、コスト、消費電力、および処理時間等が増大する恐れがあった。
以上のように、従来の方法では、バンクフル状態に対して適切に対応することが困難であり、バッファの入出力制御には、他の方法が求められていた。
本発明はこのような問題を解決するためのものであり、バッファの入出力制御をより適切に行うことができるようにするものである。
本発明の一側面は、ピクチャを複数に分割するラインブロック毎のデータを記憶するバンクが複数形成される記憶領域について、前記データを書き込むバンクを指定する書き込みポインタを、前記記憶領域の各バンクを巡回的に指定するように制御する書き込みポインタ制御手段と、前記書き込みポインタ制御手段により制御される前記書き込みポインタが指定するバンクに前記データを書き込む書き込み手段と、前記記憶領域の全てのバンクに読み出していない前記データが記憶されたとき、その旨を通知するバンクオーバフラグをセットするバンクオーバフラグ設定手段と、前記バンクオーバフラグ設定手段による前記バンクオーバフラグのセットとは独立して、前記バンクオーバフラグがセットされているか否かを確認するバンクオーバフラグ確認手段と、前記書き込みポインタ制御手段による前記書き込みポインタの制御とは独立して、前記データを読み出すバンクを指定する読み出しポインタを、前記記憶領域の各バンクを巡回的に指定するように制御し、前記バンクオーバフラグ確認手段により前記バンクオーバフラグがセットされていると確認された場合、前記読み出しポインタの指定先を、前記書き込みポインタの指定先のバンク、若しくは、前記書き込みポインタの指定先のバンクの次のバンクに移動させる読み出しポインタ制御手段と、前記書き込み手段による前記データの書き込みとは独立して、前記読み出しポインタ制御手段により制御される前記読み出しポインタが指定するバンクから前記データを読み出す読み出し手段とを備える情報処理装置である。
前記読み出しポインタ制御手段は、前記バンクオーバフラグ確認手段により前記バンクオーバフラグがセットされていると確認された場合、前記書き込み手段が前記データを書き込み中でないとき、前記読み出しポインタの指定先を、前記書き込みポインタの指定先のバンクに移動させ、前記書き込み手段が前記データを書き込み中のとき、前記読み出しポインタの指定先を、前記書き込みポインタの指定先のバンクの次のバンクに移動させることができる。
前記書き込みポインタ制御手段は、前記書き込みポインタを更新する場合、前記読み出し手段により読み出し中であるバンクを指定しないように、前記書き込みポインタの指定先を決定することができる。
前記バンクオーバフラグ確認手段により前記バンクオーバフラグがセットされていると確認された場合前記バンクオーバフラグを解除するバンクオーバフラグ解除手段をさらに備えることができる。
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの前に前記書き込みポインタを更新し、前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの後に前記読み出しポインタを更新することができる。
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの前に前記書き込みポインタを更新し、前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの前に前記読み出しポインタを更新することができる。
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの後に前記書き込みポインタを更新し、前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの前に前記読み出しポインタを更新することができる。
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの後に前記書き込みポインタを更新し、前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの後に前記読み出しポインタを更新することができる。
前記書き込み手段が前記データを書き込む間、書き込み中であることを示す書き込みフラグをセットする書き込みフラグ設定手段をさらに備えることができる。
前記読み出し手段が前記データを読み出す間、読み出し中であることを示す読み出しフラグをセットする読み出しフラグ設定手段をさらに備えることができる。
前記データは、画像データを符号化した、符号化単位毎の符号化データの属性を示す属性情報を含むことができる。
前記属性情報には、前記符号化データが保持される記憶領域のアドレス情報が付加されていることができる。
本発明の一側面は、また、情報処理装置の情報処理方法であって、前記情報処理装置が、ピクチャを複数に分割するラインブロック毎のデータを記憶するバンクが複数形成される記憶領域について、前記データを書き込むバンクを指定する書き込みポインタを、前記記憶領域の各バンクを巡回的に指定するように制御し、前記書き込みポインタが指定するバンクに前記データを書き込み、前記記憶領域の全てのバンクに読み出していない前記データが記憶されたとき、その旨を通知するバンクオーバフラグをセットし、前記バンクオーバフラグのセットとは独立して、前記バンクオーバフラグがセットされているか否かを確認し、前記書き込みポインタの制御とは独立して、前記データを読み出すバンクを指定する読み出しポインタを、前記記憶領域の各バンクを巡回的に指定するように制御し、前記バンクオーバフラグがセットされていると確認された場合、前記読み出しポインタの指定先を、前記書き込みポインタの指定先のバンク、若しくは、前記書き込みポインタの指定先のバンクの次のバンクに移動させ、前記データの書き込みとは独立して、前記読み出しポインタが指定するバンクから前記データを読み出す情報処理方法である。
本発明の一側面においては、ピクチャを複数に分割するラインブロック毎のデータを記憶するバンクが複数形成される記憶領域について、データを書き込むバンクを指定する書き込みポインタが、記憶領域の各バンクを巡回的に指定するように制御され、書き込みポインタが指定するバンクにデータが書き込まれ、記憶領域の全てのバンクに読み出していないデータが記憶されたとき、その旨を通知するバンクオーバフラグがセットされ、バンクオーバフラグのセットとは独立して、バンクオーバフラグがセットされているか否かが確認され、書き込みポインタの制御とは独立して、データを読み出すバンクを指定する読み出しポインタが、記憶領域の各バンクを巡回的に指定するように制御され、バンクオーバフラグがセットされていると確認された場合、読み出しポインタの指定先が、書き込みポインタの指定先のバンク、若しくは、書き込みポインタの指定先のバンクの次のバンクに移動され、データの書き込みとは独立して、読み出しポインタが指定するバンクからデータが読み出される。
本発明によれば、情報を処理することができる。特に、バッファの入出力制御をより適切に行うことができる。
図1は、本発明を適用した情報処理システムの構成例を示すブロック図である。図1に示される情報処理システム100は、画像データを伝送するシステムである。
情報処理システム100は、伝送路102を介して接続された送信装置101および受信装置103よりなり、送信装置101が画像データを、伝送路102を介して受信装置103に伝送させるシステムである。
送信装置101は、入力された画像データを符号化し、符号化データを、伝送路102を介して受信装置103に送信する。送信装置101は、入力インタフェース(I/F)111、ラインベース・コーデック・エンコーダ(Encorder)112、送信バッファ113、および伝送インタフェース(I/F)114を有する。
入力インタフェース111は、外部より送信装置101に入力される画像データを受け付け、それをラインベース・コーデック・エンコーダ112に供給する。ラインベース・コーデック・エンコーダ112は、入力された画像データを例えば数ライン毎に符号化し、得られた符号化データを送信バッファ113に供給する。
送信バッファ113は、供給された符号化データ(画像データ)を一時的に保持する。伝送インタフェース114は、送信バッファ113に保持されている符号化データを所定のビットレートで読み出し、読み出した符号化データをパケット化して伝送路102に出力する。
送信装置101より送信された符号化データは、伝送路102を介して受信装置103に供給される。受信装置103は、送信装置101より供給される符号化データを復号し、得られた画像データを出力する。受信装置103は、伝送インタフェース(I/F)121、受信バッファ122、ラインベース・コーデック・デコーダ(Decorder)123、および出力インタフェース(I/F)124を有する。
伝送インタフェース121は、伝送路102を介して供給される符号化データのパケットを受信し、受信したパケットより符号化データを抽出して受信バッファ122に供給する。受信バッファ122は、受信された符号化データを一時的に保持する。ラインベース・コーデック・デコーダ123は、受信バッファ122に保持される符号化データを所定量ずつ取得し、復号し、数ラインの画像データを生成する。出力インタフェース124は、ラインベース・コーデック・デコーダ123において、符号化データが復号されて生成された画像データ(復号画像データ)を受信装置103の外部に出力する。
このようなシステムにおいて、送信装置101のラインベース・コーデック・エンコーダ112は、可変ビットレート(VBR:Variable Bit Rate)で符号化を行う。これに対して、伝送インタフェース114は、その符号化時のビットレートとは独立したビットレートで符号化データを送信する。
例えば、伝送インタフェース114は、基本的に、符号化データを所定データ量毎にパケット化して、固定ビットレート(CBR: Constant Bit Rate)で送信する。ただし、例えば、伝送路102となるネットワークが他のシステムと共有される場合、つまり、伝送路102において、上述した符号化データの伝送以外のデータ伝送が行われる場合、伝送路102の、符号化データの伝送に使用可能な帯域は一定とは限らない。そのため、伝送インタフェース114は、伝送路102の使用可能な帯域の幅に合わせて、ビットレートを調整しながら、符号化データの送信を行う。
したがって、送信バッファ113は、このような符号化時と送信時のビットレートの違いを吸収するために、符号化データやそれに付随するデータ(エンコードパラメータ等)を一時的に保持する。
このとき、送信バッファ113は、データの入出力制御をより適切に行う。例えば、送信バッファ113においてバンクフルが発生したときに、送信バッファ113は、データの格納場所や読み出し位置を適切に制御する。これにより、送信バッファ113は、受信装置103における復号処理により得られる復号画像の、符号化前の画像に対する画質の劣化をより低減させる。また、送信バッファ113は、そのデータ入出力制御をより容易に行うことにより、コスト、回路規模(メモリ量)、および遅延時間等の増大の抑制を実現する。具体的な制御方法については後述する。
以下に、このような画像データ伝送の詳細について説明する。最初に、データ伝送の遅延時間の低減を実現するためのコーデックであるラインベース・コーデックについて説明する。
画像データをそのフレーム画像の1ラインまたは複数ライン毎に符号化するラインベース・コーデックにおいてはウェーブレット変換が用いられる。一般的に、離散ウェーブレット変換では、原画像は、各水平画素列に対する一次元ウェーブレット畳み込み(one-dimensional wavelet convolution)により、低周波数情報を含む副画像と高周波数情報を含む副画像との2つの副画像に分割される。さらに、各副画像は、それぞれ、各垂直画素行に対する同様のウェーブレット畳み込みにより、低周波数情報及び高周波数情報の2つの副画像に分割される。
つまり、図2の1フレーム分のベースバンド信号131は、変換後信号132のように、4つのサブバンド即ち副画像(HH,HL,LH,LL)に分解される。LL副画像は、垂直及び水平双方の低域成分である。LH副画像は、水平方向に低域で垂直方向に高域な成分である。HL副画像は、水平方向に高域で垂直方向に低域な成分である。HH副画像は、垂直及び水平双方の高域成分である。各副画像は、原画像の1/4のサイズであり、原画像の1/4のデータ点数を含む。
このようなウェーブレット変換は、得られたLL副画像に対して繰り返し行われる。例えば、図2において、原画像をウェーブレット変換して得られた第1分解レベルの副画像を、それぞれ、1HH,1HL,1LH、および1LL(図示せず)とする。このとき、1LL副画像に対してさらにウェーブレット変換が行われ、第2分解レベルの副画像である、2HH,2HL,2LH、および2LL(図示せず)に分割される。さらに、その2LL副画像に対してさらにウェーブレット変換がなされ、第3レベルの副画像である、3HH,3HL,3LH、および3LLに分割される。このように、ウェーブレット変換が繰り返し行われ、変換後信号2においては、副画像が階層構造を形成する。
このように、再帰的に低域成分のウェーブレット変換を繰り返すことにより、空間周波数の低い帯域のデータをより小さな領域に追い込んでいき、効率的な圧縮符号化を可能とする。
ラインベース・コーデックにおいては、符号化単位が画像全体ではなく、1ラインまたは複数ラインである。つまり、ラインベース・コーデックにおいては、ウェーブレット変換も、画像の1ラインまたは複数ライン毎に行われる。
例えば、図3に示される変換後信号132のように、ベースバンドの画像の一部のラインがウェーブレット変換され、1LL−1(図示せず)、1LH−1、1HL−1、および1HH−1が生成される。さらに、1LL−1がウェーブレット変換され、2LL−1、2LH−1、2HL−1、2HH−1が生成される。以上のようにして画像の一部分が所定回数ウェーブレット変換されると、次の一部のラインが同様にウェーブレット変換され、1LL−2(図示せず)、1LH−2、1HL−2、および1HH−2が生成される。さらに、1LL−2がウェーブレット変換され、2LL−2、2LH−2、2HL−2、2HH−2が生成される。
以上のように、所定数のライン毎にウェーブレット変換が行われる。ウェーブレット変換された画像データ(ウェーブレット係数データ)は、順次、符号化される。つまり、所定数のライン毎に符号化が行われる。このように、フレーム画像より小さい符号化単位で符号化を行うことにより、ラインベース・コーデックは、符号化・復号による遅延時間を低減し、データ伝送の遅延時間の低減を実現する。
例えば、図4に示されるように、ベースバンド8ラインごとに縦方向のウェーブレット変換を行うとすると、ウェーブレット3分解の場合、その8ラインに対して、最低域3LL副画像の1ラインが生成される。また、その次のレベルのサブバンド3H(3HL,3LH,3HH)が各1ライン生成される。さらに、その次のレベルのサブバンド2H(2HL,2LH,2HH)が各2ライン生成される。さらに、最高域1H(1HL,1LH,1HH)が各4ライン生成される。
このように、最上位レベルの低域サブバンド「LL」の係数データを1ライン生成するために必要なベースバンドの画素データの集合をプレシンクト(Precinct)(またはラインブロック)と称する。なお、プレシンクトは、1プレシンクト分の画素データをウェーブレット変換して得られる、全サブバンドの係数データの集合(アラインユニットの集合)のことを示す場合もある。この係数データの集合は、上述した、最上位レベルの低域サブバンド「LL」の係数データを1ライン生成するために必要なベースバンドの画素データの集合と実質的に同一である。
なお、1プレシンクトのライン数はピクチャ内において、各プレシンクトで互いに同一でなくてもよい。
ラインベース・ウェーブレット変換は、このプレシンクトを処理単位として行われる。例えば、図4の左側に示されるベースバンド信号131において8ラインであったプレシンクト(図中斜線部分)は、図4の右側に示されるように、ラインベース・ウェーブレット変換された変換後信号132の1Hにおいて、1HL,1LH、および1HHのそれぞれの4ライン(図中斜線部分)、2Hにおいて、2HL,2LH、および2HHのそれぞれの2ライン(図中斜線部分)、並びに、3LL、3HL、3HL、および3HHのそれぞれの1ライン(図中斜線部分)として構成される。
このようなラインベース・ウェーブレット変換処理を利用することにより、データ伝送の低遅延化を図ることができる。さらに、ラインベース・ウェーブレット変換の場合、JPEG2000のタイル分割とは異なり、ベースバンド信号1での分割ではなく、ウェーブレット係数での分割であるため、さらに、タイル境界でのブロックノイズ的な画質劣化が発生しないという特徴も有する。
次に、送信装置101の構成の詳細について説明する。図5は、送信バッファ113の入出力インタフェースを説明する図である。図5に示されるように、送信バッファ113は、ラインベース・コーデック・エンコーダ112より供給されたデータを一時的に保持し、伝送インタフェース114に出力する。
ラインベース・コーデック・エンコーダ112からは、プレシンクト毎の符号化データ(以下、プレシンクトデータ(Precinct Data)とも称する)を含むデータ信号141、および、そのデータ信号141に対応するプレシンクト属性情報(Precinct Info)を含むデータ属性信号142が送信バッファ113に供給される。プレシンクト属性情報は、プレシンクトデータの設定や内容を示す情報であり、プレシンクト毎に生成される。例えば、あるプレシンクトの画像内の位置を示す情報(例えば識別番号(Precinct ID))、プレシンクトデータのデータサイズ、符号化時に使用された量子化パラメータ、および画像のコンポーネント情報等が含まれる。もちろん、これら以外の情報が含まれるようにしてもよい。
送信バッファ113では、データ属性信号142として供給されるプレシンクト属性情報から、プレシンクトヘッダ(Precinct Header)という伝送用のヘッダが作成される。その伝送用ヘッダは、プレシンクトデータ(Precinct Data)の前に付加される。その伝送用ヘッダが付加されたプレシンクトデータは、伝送パケット143(Precinct Header + Data)として伝送インタフェース114に出力する。伝送インタフェース114は、送信バッファ113から供給される伝送パケット143を伝送路102(図1)へ送出する。また、伝送インタフェース114は、伝送路102が一時的に伝送できない状態になった場合、送信バッファ113に対して、出力停止信号144(Stop Signal)を供給し、送信バッファ113からの出力を停止させる。例えば、無線回線で符号化データを受信装置103に伝送する場合(伝送路102が無線回線の場合)、干渉により電波を出せない状態が発生する。このようなとき、伝送インタフェース114は、データ溢れが発生しないように、出力停止信号144を送信バッファ113に供給して送信バッファ113からのデータの供給を停止させる。
送信バッファ113は、このような符号化時のビットレートと送信時のビットレートの違い(符号化時および送信時のビットレートの変動)を、吸収するために符号化データを一時的に保持する。このとき、送信バッファ113は、データの入出力制御を適切に行うことにより、回路規模、コスト、および遅延時間等を不要に増大させずに、復号画像の画質の劣化を抑制することができる。
なお、図5において、データ信号141とデータ属性信号142は、互いに異なるバスを介してラインベース・コーデック・エンコーダ112から送信バッファ113に供給されるように示されているが、これに限らず、互いに共通のバスを介して送信バッファ113に供給されるようにしてもよい。また、データ信号141およびデータ属性信号142の各信号を伝送するバスの本数は任意である。それぞれ1本のバスを介して伝送されるようにしてもよいし、複数本のバスを介して伝送されるようにしてもよい。また、データ信号141を伝送するバスの本数と、データ属性信号142を伝送するバスの本数が互いに異なっていてもよい。さらに、伝送レートがデータ信号141を伝送するバスとデータ属性信号142を伝送するバスとで互いに異なるようにしてもよい。
同様に、伝送パケット143を伝送するバス、および、出力停止信号144を伝送するバスの本数および伝送レートも任意である。また、共通のバスを介して伝送パケット143および出力停止信号144が授受されるようにしてもよい。
次に、この送信バッファ113の詳細な構成例について説明する。図6は、送信バッファ113の内部の構成例を示すブロック図である。図6に示されるように、送信バッファ113は、書き込み制御部(Write制御部)151、データ格納領域152、プレシンクト属性情報格納領域(Precinct Register Bank(Precinct属性情報格納領域))153、および読み出し制御部(Read制御部)154を有する。
書き込み制御部151は、ラインベース・コーデック・エンコーダ112よりデータ信号141として供給されるプレシンクトデータ(Precinct Data)を、データ格納領域152に供給して格納させる。書き込み制御部151は、プレシンクトデータの格納先アドレスである書き込みアドレス(Write Address)161を決定する。書き込み制御部151は、供給されたプレシンクトデータを、データ格納領域152の、その決定した書き込みアドレスに格納させる。
書き込み制御部151は、また、ラインベース・コーデック・エンコーダ112よりデータ属性信号142として供給されるプレシンクト属性情報(Precinct Info)を、プレシンクト属性情報格納領域153に供給して格納させる。このとき、書き込み制御部151は、供給されたプレシンクト属性情報に対応するプレシンクトデータの格納先アドレスを、そのプレシンクト属性情報に付加し、プレシンクト属性情報格納領域153に供給して格納させる。
プレシンクト属性情報格納領域153には、1度に1つのプレシンクト属性情報(プレシンクトデータの格納先アドレスも含む)を格納する領域(バンク)が複数形成されている。図6の例の場合、プレシンクト属性情報格納領域153は、「Bank0」乃至「Bank7」の8つのバンクが形成されている。
書き込み制御部151は、プレシンクト属性情報を格納するバンクを指定する情報である書き込みポインタ162を設定する。つまり、書き込み制御部151は、プレシンクト属性情報格納領域153に形成される複数のバンク(図6の例の場合8つのバンク)の中から1つ選択し、そのバンクを指定する書き込みポインタ162を設定する。
この選択方法は任意であるが、一般的に各バンクを予め定められた所定の順に1つずつ巡回的に選択する。例えば、図6の場合、書き込み制御部151は、Bank0、Bank1、Bank2、・・・のように各バンクを1つずつ順に指定するように書き込みポインタ162の値を更新する。そして、8つめのバンク「Bank7」を示すように書き込みポインタ162を設定すると、書き込み制御部151は、次の設定で最初に戻り、Bank0を示すように書き込みポインタ162を設定する。以上のように、書き込み制御部151は、書き込みポインタ162が「Bank0」乃至「Bank7」の8つのバンクを所定の順で繰り返し指定するように設定を行う。もちろん、この順序は任意であるし、正しく管理されるのであれば途中で変更されるようにしてもよい。
データ格納領域152は、例えば、半導体メモリやハードディスク等よりなる記憶領域である。データ格納領域152は、書き込みアドレス161により指定されるアドレスに、書き込み制御部151より供給されるプレシンクトデータを格納し、一時的に保持する。
プレシンクト属性情報格納領域153は、例えば、半導体メモリやハードディスク等よりなる記憶領域である。プレシンクト属性情報格納領域153は、書き込み制御部151に指定されたバンクに、書き込み制御部151より供給されるプレシンクト属性情報を格納し、一時的に保持する。
読み出し制御部154は、プレシンクト属性情報格納領域153よりプレシンクト属性情報(プレシンクトデータの格納先アドレスを含む)を読み出す。読み出し制御部154は、プレシンクト属性情報を読み出すバンクを指定する読み出しポインタ171を設定し、その読み出しポインタ171が示すバンクから、プレシンクト属性情報(プレシンクトデータの格納先アドレスを含む)を読み出す。
書き込みポインタ162の場合と同様に、読み出しポインタ171の設定方法は、任意である。例えば、読み出し制御部154は、各バンクを予め定められた所定の順に1つずつ巡回的に選択するように読み出しポインタ171を設定する。
例えば、図6の場合、読み出し制御部154は、Bank0、Bank1、Bank2、・・・のように各バンクを1つずつ順に指定するように読み出しポインタ171を更新する。そして、8つめのバンク「Bank7」を示すように読み出しポインタ171を設定すると、読み出し制御部154は、次の設定で最初に戻り、Bank0を示すように読み出しポインタ171を設定する。以上のように、読み出し制御部154は、読み出しポインタ171が「Bank0」乃至「Bank7」の8つのバンクを所定の順で繰り返し指定するように設定を行う。もちろん、この順序は任意であるし、正しく管理されるのであれば途中で変更されるようにしてもよい。
また、読み出し制御部154により読み出されたプレシンクト属性情報にはプレシンクトデータの格納先アドレス(書き込みアドレス161)が付加されている。読み出し制御部154は、そのアドレス(書き込みアドレス161)を読み出しアドレス172とし、プレシンクトデータの読み出しを行う。つまり、読み出し制御部154は、データ格納領域152の、プレシンクト属性情報に付加された書き込みアドレス161(読み出しアドレス172)にアクセスし、プレシンクトデータを読み出す。このようにすることにより、読み出し制御部154は、プレシンクト属性情報格納領域153より読み出したプレシンクト属性情報と同一のプレシンクトのプレシンクトデータをデータ格納領域152より読み出すことができる。
読み出し制御部154は、プレシンクトデータをパケット化するパケット生成部181を有する。読み出し制御部154は、プレシンクト属性情報格納領域153より読み出したプレシンクト属性情報、および、データ格納領域152より読み出したプレシンクトデータを、パケット生成部181に供給する。パケット生成部181は、プレシンクト属性情報からプレシンクトヘッダを生成し、そのプレシンクトヘッダを用いてプレシンクトデータをパケット化する。読み出し制御部154は、生成された伝送パケット143を伝送インタフェース114に供給する。
また、何らかの原因で伝送路102が伝送パケット143を伝送不可能な状態になると、伝送インタフェース114は、出力停止信号(Stop Signal)144を読み出し制御部154に供給する。パケット生成部181は、その出力停止信号144を取得するとパケットの生成を停止する。さらに、読み出し制御部154は、その出力停止信号144に基づいて、プレシンクト属性情報やプレシンクトデータの読み出しを停止する。伝送路102が伝送パケット143を伝送可能な状態になり、出力停止信号144の供給が止まると、読み出し制御部154は、プレシンクト属性情報やプレシンクトデータの読み出しを再開する。パケット生成部181は、パケットの生成を再開する。
なお、読み出し制御部154は、書き込み制御部151と独立して動作する。すなわち、読み出し制御部154による、プレシンクト属性情報格納領域153からのプレシンクト属性情報の読み出し、データ格納領域152からのプレシンクトデータの読み出し、並びに、パケット生成等の各処理は、書き込み制御部151による書き込み処理とは独立して行われる。
図7は、書き込み制御部151と読み出し制御部154が有する機能の例を示す機能ブロック図である。
書き込み制御部151は、データ取得部201、書き込みポインタ更新部202、読み出しフラグ確認部203、バンクオーバフラグ設定部204、書き込みフラグ設定部205、書き込み部206、および保持部207を有する。
データ取得部201は、ラインベース・コーデック・エンコーダ112より供給されるプレシンクトデータおよびプレシンクト属性情報を取得する。書き込みポインタ更新部202は、保持部207に保持されている書き込みポインタ162の値を更新する。読み出しフラグ確認部203は、読み出し制御部154より供給される、読み出し中であるか否かを示すフラグ情報である読み出しフラグを保持し、その読み出しフラグの値に基づいて、読み出し処理の状況を書き込み部206に通知する。
バンクオーバフラグ設定部204は、必要に応じてバンクオーバフラグ212を保持部207にセットする(フラグ情報の値を”有効(例えば「1」)”にする)。バンクオーバフラグ212は、プレシンクト属性情報格納領域153において、未だ読み出されていないプレシンクト属性情報を削除せずに、新しいプレシンクト属性情報をこれ以上格納することができない状態(バンクフル)が発生したか否かを示すフラグ情報である。詳細については後述する。
書き込みフラグ設定部205は、書き込み処理中であるか否かを示すフラグ情報である書き込みフラグ211を保持部207にセットしたり解除したり(フラグ情報の値を”無効(例えば「0」)”にしたり)する。例えば、書き込みフラグ設定部205は、書き込み部206がプレシンクトデータやプレシンクト属性情報を書き込む間、書き込みフラグ211を保持部207にセットし、書き込みが終了すると、その書き込みフラグ211を解除する。これにより、他の制御処理においても、書き込みフラグ211の値を参照することにより書き込み中であるか否かを容易に把握することができる。
書き込み部206は、プレシンクトデータをデータ格納領域152に書き込んだり、プレシンクト属性情報をプレシンクト属性情報格納領域153に書き込んだりする。書き込み部206は、書き込みアドレス161を設定し、データ格納領域152のそのアドレスに、処理対象のプレシンクトデータを格納させる。また、書き込み部206は、処理対象のプレシンクト属性情報に書き込みアドレスを付加し、それらを、プレシンクト属性情報格納領域153の、書き込みポインタ162により示されるバンクに格納させる。
保持部207は、例えば、半導体メモリやハードディスク等よりなる記憶領域である。保持部207は、書き込みアドレス161、書き込みポインタ162、書き込みフラグ211、およびバンクオーバフラグ212等の情報を保持する。もちろん、保持部207が、これら以外の情報を保持してもよい。
読み出し制御部154は、読み出しポインタ更新部222、バンクオーバフラグ確認部223、バンクオーバフラグ設定部224、読み出しフラグ設定部225、読み出し部226、保持部227、およびパケット生成部181を有する。
読み出しポインタ更新部222は、保持部227に保持されている読み出しポインタ171の値を更新する。バンクオーバフラグ確認部223は、書き込み制御部151の保持部207)にアクセスし、バンクオーバフラグ212の値を参照(確認)する。
バンクオーバフラグ設定部224は、書き込み制御部151の保持部207にアクセスし、バンクオーバフラグ212の解除を行う。読み出しフラグ設定部225は、読み出し処理中であるか否かを示すフラグ情報である読み出しフラグ231を保持部227にセットしたり解除したりする。例えば、読み出しフラグ設定部225は、読み出し部226が格納領域より情報を読み出す間、読み出しフラグ231を保持部227にセットし、その読み出しが終了すると、その読み出しフラグ231を解除する。
これにより、他の制御処理においても読み出しフラグ231の値を参照することにより、容易に読み出し中であるか否かを把握することができる。例えば、書き込み部206は、読み出しフラグ確認部203が読み出しフラグの値を確認することにより、読み出し中のバンクに書き込みを行わないようにすることができる。つまり、書き込み部206は、読み出し中のデータを破壊しないように安全に書き込みを行うことができる。
読み出し部226は、データ格納領域152からプレシンクトデータを読み出したり、プレシンクト属性情報格納領域153からプレシンクト属性情報を読み出したりする。読み出し部226は、プレシンクト属性情報格納領域153の、読み出しポインタ171により示されるバンクからプレシンクト属性情報を読み出す。また、読み出し部226は、そのプレシンクト属性情報に付加された書き込みアドレス161を取得し、そのアドレスを読み出しアドレス172とし、データ格納領域152のそのアドレスから、プレシンクトデータを読み出す。
保持部227は、例えば、半導体メモリやハードディスク等よりなる記憶領域である。保持部227は、読み出しポインタ171や読み出しフラグ231等の情報を保持する。もちろん、保持部227が、これら以外の情報を保持してもよい。
パケット生成部181は、読み出し部226より読み出されたプレシンクトデータやプレシンクト属性情報をパケット化する。
なお、以上においては、バンクオーバフラグ212を書き込み制御部151の保持部207が保持するように説明したが、バンクオーバフラグ212は任意の場所に保存することができる。例えば、読み出し制御部154内にバンクオーバフラグ212が保持されるようにしてもよいし、書き込み制御部151および読み出し制御部154以外の場所にバンクオーバフラグ212が保持されるようにしてもよい。
また、書き込み制御部151および読み出し制御部154の一部または全部を一体化するようにしてもよい。例えば、書き込み制御部151および読み出し制御部154を一体化し、データ格納領域152およびプレシンクト属性情報格納領域153の入出力を制御するバッファ入出力制御部240としてもよい。
次に、図8乃至図10を参照し、バンクオーバの発生、およびその場合の制御の例についてより具体的に説明する。
図8乃至図10において、プレシンクト属性情報格納領域153には8つのバンク(#0乃至#7)が形成される。また、読み出しポインタ(Read Pointer)171および書き込みポインタ(Write Pointer)162は、各バンクを、#0から#7に向かう順に1つずつ巡回する(#7の次は#0に戻る)ように指定する。
なお、図8乃至図10において、#0乃至#7の各枠はバンクを示し、各枠内に示される数字は、そのバンクに格納されたプレシンクト属性情報のプレシンクトIDを示す。プレシンクトIDは、各プレシンクトを識別する識別情報であり、「0」および正の整数により構成される。各プレシンクトは、プレシンクトID「0」のプレシンクトから、プレシンクトIDの昇順に処理される。つまり、各プレシンクトのプレシンクトデータやプレシンクト属性情報は、プレシンクトID「0」のプレシンクトから、プレシンクトIDの昇順に、格納領域に書き込まれたり格納領域から読み出されたりする。
バッファの構成上、基本的に、書き込み位置は読み出し位置に先行する。例えば、図8Aに示されるように、プレシンクトID「5」のプレシンクトのプレシンクト属性情報が6番目のバンク(#5)に書き込まれているとき、プレシンクトID「2」のプレシンクトのプレシンクト属性情報が3番目のバンク(#2)より読み出される。
ただし、書き込みポインタ162および読み出しポインタ171は、バンク#0乃至バンク#7を巡回するので、書き込みポインタ162の進行方向の先のバンクを読み出しポインタ171が指定しているとも考えられる。
正常に書き込みや読み出しが行われている状態を通常時とする。この通常時においては、書き込みポインタ162の指定先から読み出しポインタ171の指定先までの間のバンクには、プレシンクト属性情報が格納されていないか、若しくは、読み出し済みのプレシンクト属性情報が格納されている。つまり、図8Aの場合、バンク#5からバンク#2までの間のバンク#6,#7,#0、および#1には、まだ読み出されていないプレシンクト属性情報は格納されていない。
ここで、例えば、出力停止信号144が供給されて読み出しが停止されると、読み出しポインタ171の指定先の進行が止まり、書き込みポインタ162の指定先だけが進むことになる。やがて、図8Bに示されるように、書き込みポインタ162が、バンク#1に到達し、バンク#1にプレシンクトID「9」のプレシンクトのプレシンクト属性情報が書き込まれると、全てのバンクに未読み出しのプレシンクト属性情報が格納された状態になる。この状態をバンクフル(Bank Full)と称する。つまり、書き込みポインタ162の指定先が読み出しポインタ171の指定先より1周以上先に進んだ状態である。また、この状態をバンクオーバ(Bank Over)とも称する。
このようなバンクフルの状態においても、書き込み制御部151には、ラインベース・コーデック・エンコーダ112からプレシンクトデータやプレシンクト属性情報が供給される。つまり、いずれかのデータを破棄する必要がある。このような場合において、書き込み制御部151は、格納領域に格納されている情報のうち、もっとも古い情報から順に必要最小限の情報を破棄し、その領域に新たに供給された情報を格納させる。このようにすることにより、書き込み制御部151は、復号画像における画質に与えるバンクフル(バンクオーバ)の発生の影響(つまり画質の劣化)をより抑制することができる。これにより、書き込み制御部151は、復号画像の画質をより向上させることができる。
具体的には、図8Bの例において、バンク#2が読み出し中でないとする。つまり、図8Bの例において、読み出しフラグ231がセットされていないとすると、書き込み部206は、図9Aに示されるように、次のプレシンクト(プレシンクトID「10」のプレシンクト)のプレシンクト属性情報を、バンク#2に格納させる(上書きする)。つまり、書き込み部206は、プレシンクト属性情報格納領域153に格納されている最も古い情報を削除し、新たなプレシンクト属性情報を格納させる。
なお、プレシンクトデータは、データ格納領域152に格納されるが、このデータ格納領域152は、プレシンクト属性情報格納領域153に格納可能なプレシンクト属性情報に対応する全てのプレシンクトデータを格納することできれば、その容量は任意である。したがって、例えば、プレシンクト属性情報格納領域153において、バンクフルが発生し、プレシンクト属性情報が上書きされる場合であっても、プレシンクトデータも上書きされるとは限らない。データ格納領域152の容量が十分に大きければ、プレシンクトデータは新たな領域に格納されてもよい。したがって、以下においては、必要でない限りプレシンクトデータについての説明は省略する。
ところで、ラインベース・コーデックにおいては、フレーム画像の一部であるプレシンクト毎に符号化されるので、この伝送時に、1プレシンクト分のデータが欠損すると復号画像において1プレシンクト分の画像が欠損する。フレーム画像の上下端以外のプレシンクトのライン数は基本的に共通である。したがって、画像の内容を考慮しない限り、どのプレシンクトが欠損しても画質の劣化の程度は理論上同等である。つまり、バンクフル発生時にどのバンクのデータを破棄してもデータ欠損量は略同等であるので、その点については各バンクのプレシンクト属性情報重要度は略同等である。
しかしながら、上述したように、プレシンクトデータやプレシンクト属性情報は、ラインベース・コーデックされた画像情報であり、受信装置103において、プレシンクトの順に処理される。データ伝送が処理に間に合わなかった場合、そのプレシンクトのデータに対する処理は省略され、次のプレシンクトのデータに対する処理が開始される。つまり、処理に間に合わなかったデータは破棄される。このように、受信装置103において、処理の省略は行われるが、復号処理に間に合わず遅れて伝送されてきたプレシンクトのデータを後で処理するような、処理順の変更は行われない。
つまり、時間的に古いプレシンクトのデータ程、復号処理の期限までの時間が短く、伝送しても破棄される可能性が高いことになる。換言すれば、時間的に古いプレシンクトのデータ程、その重要度が低いことになる。
特に、上述したようなラインベース・コーデックは、データ伝送による遅延時間を短縮させることを特徴としている。したがって、送信バッファ113や受信バッファ122のバッファ量は極力小さくするのが望ましく、データが不要になるまでの時間的余裕が他のコーデックの方法と比較して一般的に少ない。つまり、プレシンクト属性情報格納領域153に格納されている情報における、情報の新鮮さに基づく重要度の変化は、より鮮明になる。
したがって、図9Aに示されるように、バンクフル発生時に、上述したように最も古い情報から上書きすることにより、書き込み部206は、最も重要度の低い情報から破棄(上書き)することができる。つまり、復号画像の画質の劣化をより抑制することができる。
なお、上述したように古い情報ほど伝送遅れにより破棄される可能性が高いので、仮に、新しい情報を上書きした場合、古い情報も新しい情報も破棄することになる恐れがある。つまり、破棄される情報量が増大する恐れがある。したがって、書き込み部206は、上述したように最も古い情報から上書きすることにより、情報の不要な破棄を抑制し、破棄される情報量をより低減させることができる。つまり、復号画像の画質の劣化をより抑制することができる。
また、例えば、図9Bのように、バンク#2が読み出し中の場合、書き込み部206は、次のプレシンクトのプレシンクト属性情報を、読み出しポインタ171が示すバンク#2の次のバンク#3に格納させる。つまり、この場合、書き込み部206は、プレシンクトID「10」のプレシンクトのプレシンクト属性情報を、バンク#3に上書きする。このように、バンク#2に書き込まないのは、読み出し中のデータが破壊されないようにするためである。破壊されたデータは伝送しても復号することができないので、破棄するしかなくなる。つまり、読み出し処理が無駄になってしまう恐れがある。したがって、読み出し中のバンクの上書きは禁止し、その次のバンクを上書きするようにすることにより、書き込み部206は、処理効率の低下を抑制することができる。
出力停止信号144の供給が止まると、読み出しが再開される。例えば、図9Aと同様にバンクフルが発生している図10Aの状態において読み出しが再開されると、読み出しポインタ171は、図10Bに示されるように、書き込みポインタが示すバンクの次のバンクに進む。図10Aの場合、読み出しポインタ171はバンク#2を示し、書き込みポインタ162はバンク#3を示し、バンクフルの状態にある。この状態において読み出しが再開されると、読み出しポインタ更新部222は、読み出しポインタ171の値を、次のバンク#3ではなく、書き込みポインタ162が示すバンクの次のバンク#4を示すように更新する。
このようにすることにより、読み出し部216が、プレシンクトID「4」乃至「9」のプレシンクトを飛ばし、最新のプレシンクトであるプレシンクトID「10」のプレシンクトのプレシンクト属性情報を読み出してしまわないようにすることができる。つまり、読み出し部216が、プレシンクトIDの順序どおりに読み出しを行い、プレシンクトID「2」のプレシンクトのプレシンクト属性情報の次に、その次に最も古いプレシンクトであるプレシンクトID「4」のプレシンクトのプレシンクト属性情報を読み出すようにすることができる。この場合、バンクフル発生により破棄されるデータは、プレシンクトID「3」のプレシンクトのみとなる。したがって、破棄されるデータを必要最小限にすることができ、復号画像の画質の不要な劣化を抑制することができる(つまり、画質を向上させることができる)。
なお、書き込みポインタ162の値が更新されてから書き込みが行われる場合、書き込みポインタ162が示すバンクに格納されるプレシンクト属性情報が最も古い可能性もある。そこで、例えば書き込みフラグ211の値に基づいて、書き込みが開始されたか否かによって読み出しポインタ171の移動先を決定するようにしてもよいが、タイミング等の制御が複雑になり、かつ、その複雑な制御をより正確に行う必要がある。つまり、上述したように、読み出しポインタ171の指定先を無条件に書き込みポインタ162の指定先のバンクの次のバンクに指定する方が、より容易に、エラーの発生しない正しい制御を行うことができる。
例えば、このようなバンクフルが発生した状態におけるバッファの制御方法の1つとして、全てのバンクを空にしてから、新しいプレシンクトのデータを格納させる方法が考えられる。この方法は、制御が簡単であるが、極短期間で読み出しが再開される場合、必要以上にデータを破棄することになる恐れがある。そのため、この制御方法では、復号画像の画質を不要に劣化させる恐れがある。特に、伝送路102が無線通信である場合、その伝送レートの変動が激しく、一時的にデータを送れない状況になることが頻繁に発生する。このような状況においては、この制御方法の場合、復号画像の画質を不要に劣化させる可能性が特に大きくなる。
また、他の制御方法としては、予めバンクを多めに用意することで、一時的なネットワークの詰まりの場合に対処する方法が考えられる。つまり、バンクの数を増やすことにより、バンクフルの発生を抑制させる。しかしながら、この方法の場合、バッファとして必要なメモリ量が増大する恐れがある。メモリ量が増大するとコストが増大するだけでなく、データ伝送の遅延時間も増大する。例えば、従来のコーデックのように遅延をあまり重視しないコーデックを利用したデータ伝送であれば有効な方法である。
しかしながら、上述したような、ラインベース・コーデックを利用したデータ伝送では、低遅延を特徴とする。ラインベース・コーデックは、低遅延の実現のために様々な工夫がなされているが、例えば処理単位を小さくしてバッファに必要なメモリ量を低減させることにより、伝送時の遅延時間の増大を抑制している。このようなシステムにおいて、上述したように、バンク数を増大させてメモリ量を増大させると、遅延時間が増大し、上述した利点を損なう恐れがある。
また、使用するネットワークの特性によって、ネットワークの詰まり度合いは異なるので、バンクフルを発生させないために十分なバンク数を決定することは困難である。仮に、システムスペックとしてバンク数の上限を決めたとしても、想定以上に伝送路102が不調になることは十分に考えられる。常に最悪値でバンク数を決定すると、コスト、回路規模、および消費電力等が不要に増大してしまう恐れがある。バンク数を動的に変更することは不可能ではないが、非常に複雑な制御が必要となり実用的でない。
これらに対して、上述した入出力制御方法の場合、より容易な制御で、復号画像の画質の不要な劣化を抑制することができる。
図11を参照して各ポインタやフラグの制御の様子を説明する。図11に示されるように、書き込み制御部(Write Controller)151は、書き込みポインタ(Write Pointer)162を更新するとともに、その更新結果を読み出し制御部(Read Controller)154に通知する。また、書き込み制御部151は、書き込みフラグ211をセットしたり解除したりする。このとき、その書き込みフラグ211の値を読み出し制御部154に通知するようにしてもよい。さらに、書き込み制御部151は、プレシンクト属性情報格納領域153においてバンクフルが発生した場合、バンクオーバフラグ(Bank Over Flag)212をセットする。
読み出し制御部(Read Controller)154は、読み出しポインタ(Read Pointer)171を更新するとともに、その更新結果を書き込み制御部151に通知する。また、読み出し制御部154は、読み出しフラグ231をセットしたり解除したりする。このとき、読み出し制御部154は、読み出しフラグ231の値を書き込み制御部151に通知する。さらに、読み出し制御部154は、バンクオーバフラグ212の値を参照し、プレシンクト属性情報格納領域153においてバンクフルが発生しているか否かを把握する。また、読み出し制御部154は、プレシンクト属性情報格納領域153においてバンクフルが解消された場合、バンクオーバフラグ212を解除する。
上述したように、書き込み制御部151と読み出し制御部154は、互いに独立に動作する。以下に、書き込み制御部151および読み出し制御部154が実行する処理について、その流れをそれぞれ説明する。
ここで、書き込みポインタ162および読み出しポインタ171の更新タイミングは、それぞれ、処理(書き込みまたは読み出し)の前と後の2パターン存在する。つまり、図12に示されるように、ケース1乃至ケース4の4つのパターンが考えられる。
以下において、各処理の流れの例を、この4つのパターンのそれぞれについて説明する。
最初に、書き込みポインタ162および読み出しポインタ171の更新タイミングがいずれも書き込みまたは読み出し前(開始時)である場合、すなわち、ケース1の場合について説明する。
図13のフローチャートを参照して、ケース1の場合の、書き込み制御部151による書き込み処理の流れの例を説明する。この書き込み処理は、ラインベース・コーデック・エンコーダ112より新たなプレシンクトのプレシンクトデータおよびプレシンクト属性情報が供給される度に実行される。なお、これは後述する他のケースにおいても同様である。
書き込み制御部151のデータ取得部201(図7)が、新たなプレシンクトのプレシンクトデータおよびプレシンクト属性情報を取得すると、書き込み処理が開始される。書き込み処理が開始されると、書き込みポインタ更新部202は、ステップS101において、書き込みポインタ162を更新し、その指定先を次のバンクに進める。ステップS102において、書き込みポインタ更新部202は、更新した書き込みポインタ162の指定先と、通知された読み出しポインタ171の指定先の位置(バンク)が一致するか否かを判定する。一致すると判定された場合、処理はステップS103に進む。
ステップS103において、読み出しフラグ確認部203は、読み出しフラグ231を参照し、書き込みポインタ162が指定するバンクに格納されるデータを読み出し中であるか否かを判定する。読み出しフラグ231がセットされており、データ読み出し中であると判定された場合、処理はステップS104に進む。
ステップS104において、書き込みポインタ更新部202は、読み出し中のデータを破壊しないように、書き込みポインタ162の指定先を読み出しポインタ171が指定するバンクの次のバンクに移動させる。この時点でバンクフルが発生した状態となっているので、バンクオーバフラグ設定部204は、ステップS105において、バンクオーバフラグ212をセットする。
バンクオーバフラグ212がセットされると、書き込みフラグ設定部205は、ステップS106において、書き込みフラグ211をセットする。ステップS107において、書き込み部206は、データ取得部201が取得したプレシンクトデータをデータ格納領域152に格納させる。さらに、書き込み部206は、データ取得部201が取得したプレシンクト属性情報に書き込みアドレス161を付加し、それを書き込みポインタ162の指定先のバンクに書き込む。書き込みが終了すると、書き込みフラグ設定部205は、ステップS108において、書き込みフラグ211を解除し、書き込み処理を終了させる。
なお、ステップS103において、読み出しフラグ231がセットされておらず、読み出し中でないと判定された場合、処理はステップS106に進み、書き込みフラグ211がセットされる。つまり、この場合、書き込みポインタの指定先は移動されず、そのバンクに対してプレシンクト属性情報の書き込みが実行される。もちろん、プレシンクトデータのデータ格納領域152への書き込みも行われる。
なお、ケース1の場合、読み出しポインタ171は、読み出しの前に更新される。したがって、読み出しフラグ231がセットされていない場合、そのバンクに格納されたデータは既に読み出されていることになる。したがって、このバンクに新たなプレシンクト属性情報が書き込まれても、次の読み出しは次のバンクから行われるので、正常な読み出しが可能である。したがって、この時点では、まだバンクフルは発生しておらず、バンクオーバフラグ212はセットされない。
ステップS107以降の処理は、上述した場合と同様であるので、その説明は省略する。
また、ステップS102において、書き込みポインタ162の指定先と読み出しポインタ171の指定先の位置(バンク)が一致しないと判定した場合、2つの状態が考えられる。1つは、バンクフルが発生していない状態、もう1つは、既にバンクフルが発生済みで書き込みポインタ162が読み出しポインタ171を追い抜いている状態が継続している状態である。いずれにしてもバンクオーバフラグ212の設定は変更されず、かつ、書き込みポインタ162の現在の指定先のバンクに書き込み可能であるので、処理は、ステップS106に進む。ステップS106以降の処理は、上述した場合と同様であるので、その説明は省略する。
以上のようにケース1の書き込み処理は実行される。
次に、ケース1の読み出し処理について、図14のフローチャートを参照して説明する。この読み出し処理は、出力停止信号144が供給されない限り、若しくは、格納領域に読み出していないプレシンクトのデータが存在する限り、繰り返し実行される。なお、これは後述する他のケースにおいても同様である。
読み出し処理が開始されると、バンクオーバフラグ確認部223は、ステップS121において、バンクオーバフラグ212がセットされているか否かを判定する。バンクオーバフラグ212がセットされていると判定された場合、処理はステップS122に進む。
ステップS122において、バンクオーバフラグ設定部224は、これから行われる処理によりバンクフルの状態が解消されるので、バンクオーバフラグ212を解除する。ステップS123において、読み出しポインタ更新部222は、読み出しポインタ171の指定先を、書き込みポインタ162の指定先のバンクの次のバンクに移動させる。これは上述したように、容易な方法によって、破棄するプレシンクトの数を低減させるようにするための処理である。
読み出しポインタ171が更新されると、読み出しフラグ設定部225は、ステップS125において、読み出し処理中であることを示すために、読み出しフラグ231をセットする。ステップS126において、読み出し部226は、読み出しポインタ171が指定するバンクよりプレシンクト属性情報の読み出しを行う。また、読み出し部226は、読み出したプレシンクト属性情報に付加された書き込みアドレス161を用いてプレシンクトデータを読み出す。データが読み出されると、ステップS127において、読み出しフラグ設定部225は、読み出しフラグ231を解除し、読み出し処理を終了する。
また、ステップS121において、バンクオーバフラグがセットされていないと判定された場合、処理はステップS124に進む。この場合、バンクフルは発生していないので、ステップS124において、読み出しポインタ更新部222は、読み出しポインタ171の指定先を、次に指定する予定のバンク(現在の指定先の次のバンク)に進める。読み出しポインタ171が更新されると、処理はステップS125に進む。ステップS125以下の処理は、上述したのと同様であるのでその説明は省略する。
以上のようにケース1の読み出し処理は実行される。以上のようにデータの書き込みや読み出しを制御することにより、ケース1の場合であっても、バッファの入出力制御をより適切に行うことができる。これにより、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
次に、書き込みポインタ162の更新タイミングが書き込み前(開始時)であり、かつ、読み出しポインタ171の更新タイミングが読み出し後(終了時)である場合、すなわち、ケース2の場合について説明する。
図15のフローチャートを参照して、ケース2の場合の、書き込み制御部151による書き込み処理の流れの例を説明する。
データ取得部201(図7)が、新たなプレシンクトのデータを取得すると、書き込み処理が開始される。書き込み処理が開始されると、書き込みポインタ更新部202は、ステップS201において、書き込みポインタ162を更新し、その指定先を、現在の指定先の次のバンクに進める。ステップS202において、書き込みポインタ更新部202は、更新した書き込みポインタ162の指定先と、通知された読み出しポインタ171の指定先の位置(バンク)が一致するか否かを判定する。一致すると判定された場合、処理はステップS203に進む。
ステップS203において、読み出しフラグ確認部203は、読み出しフラグ231を参照し、読み出し制御部154が、書き込みポインタ162が指定するバンクに格納されるデータを読み出し中であるか否かを判定する。読み出しフラグ231がセットされており、データ読み出し中であると判定された場合、処理はステップS204に進む。
ステップS204において、書き込みポインタ更新部202は、読み出し中のデータを破壊しないように、書き込みポインタ162の指定先を読み出しポインタ171が指定するバンクの次のバンクに移動させる。この時点でバンクフルが発生した状態となっているので、バンクオーバフラグ設定部204は、ステップS205において、バンクオーバフラグ212をセットする。
バンクオーバフラグ212がセットされると、書き込みフラグ設定部205は、ステップS206において、書き込みフラグ211をセットする。ステップS207において、書き込み部206は、データ取得部201が取得したプレシンクトデータをデータ格納領域152に格納させる。さらに、書き込み部206は、データ取得部201が取得したプレシンクト属性情報に書き込みアドレス161を付加し、それを書き込みポインタ162の指定先のバンクに書き込む。書き込みが終了すると、書き込みフラグ設定部205は、ステップS208において、書き込みフラグ211を解除し、書き込み処理を終了させる。
つまり、バンクフルが発生し、かつ、読み出し中である場合、ケース1の場合と同様に処理が実行される。
なお、ステップS203において、読み出しフラグ231がセットされておらず、読み出し中でないと判定された場合、処理はステップS205に進み、バンクオーバフラグ212がセットされる。ケース2の場合、読み出しフラグ231は読み出し後に更新されるので、読み出しフラグ231がセットされていない場合、そのバンクのデータはまだ読み出されていない。つまり、読み出し中で無ければこのバンクへの書き込みは可能であるものの、その書き込みによりバンクフルが発生した状態となる。したがって、この場合、処理はステップS205に進み、バンクオーバフラグ212がセットされる。ステップS206以降の処理は、上述した場合と同様であるので、その説明は省略する。
また、ステップS202において、書き込みポインタ162の指定先と読み出しポインタ171の指定先の位置(バンク)が一致しないと判定した場合、2つの状態が考えられる。1つは、バンクフルが発生していない状態、もう1つは、既にバンクフルが発生済みで書き込みポインタ162が読み出しポインタ171を追い抜いている状態が継続している状態である。いずれにしてもバンクオーバフラグ212の設定は変更されず、かつ、書き込みポインタ162の現在の指定先のバンクに書き込み可能であるので、処理は、ステップS206に進む。ステップS206以降の処理は、上述した場合と同様であるので、その説明は省略する。
以上のようにケース2の書き込み処理は実行される。
次に、ケース2の読み出し処理について、図16のフローチャートを参照して説明する。
読み出し処理が開始されると、バンクオーバフラグ確認部223は、ステップS221において、バンクオーバフラグ212がセットされているか否かを判定する。バンクオーバフラグ212がセットされていると判定された場合、処理はステップS222に進む。
ステップS222において、バンクオーバフラグ設定部224は、これから行われる処理(読み出し)によりバンクフルの状態が解消されるので、バンクオーバフラグ212を解除する。ステップS223において、読み出しポインタ更新部222は、読み出しポインタ171の指定先を、書き込みポインタ162の指定先のバンクの次のバンクに移動させる。これは上述したように、容易な方法によって、破棄するプレシンクトの数を低減させるようにするための処理である。
読み出しポインタ171が更新されると、読み出しフラグ設定部225は、ステップS224において、読み出し処理中であることを示すために、読み出しフラグ231をセットする。ステップS225において、読み出し部226は、読み出しポインタ171が指定するバンクよりプレシンクト属性情報の読み出しを行う。また、読み出し部226は、読み出したプレシンクト属性情報に付加された書き込みアドレス161を用いてプレシンクトデータを読み出す。データが読み出されると、ステップS226において、読み出しフラグ設定部225は、読み出しフラグ231を解除する。そして、ステップS227において、読み出しポインタ171の指定先を次のバンクに進め、読み出し処理を終了する。
つまり、バンクフルの状態にある場合、上述したように読み出し処理が行われることにより(ステップS223の処理により)、ポインタの位置に関わらず、バンクフルの状態は解消される。
また、ケース2の場合、読み出しポインタ171の更新タイミングは基本的に読み出し終了時であるが、バンクフルが発生した状態の場合、破棄するデータの量を低減させるため、特別に、読み出し後だけでなく読み出し前にも読み出しポインタ171が更新される(ステップS223)。
ステップS221において、バンクオーバフラグがセットされていないと判定された場合、処理はステップS224に進む。この場合、バンクフルは発生していないので、読み出し前における読み出しポインタ171の更新はされない。ステップS224以下の処理は、上述したのと同様であるのでその説明は省略する。
以上のようにケース2の読み出し処理は実行される。以上のようにデータの書き込みや読み出しを制御することにより、ケース2の場合であっても、バッファの入出力制御をより適切に行うことができる。これにより、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
次に、書き込みポインタ162の更新タイミングが書き込み後(終了時)であり、かつ、読み出しポインタ171の更新タイミングが読み出し前(開始時)である場合、すなわち、ケース3の場合について説明する。
図17のフローチャートを参照して、ケース1の場合の、書き込み制御部151による書き込み処理の流れの例を説明する。
データ取得部201が、新たなプレシンクトのプレシンクトデータおよびプレシンクト属性情報を取得すると、書き込み処理が開始される。書き込み処理が開始されると、書き込みポインタ更新部202は、ステップS301において、書き込みポインタ162の指定先と、通知された読み出しポインタ171の指定先の位置(バンク)が一致するか否かを判定する。一致すると判定された場合、処理はステップS302に進む。
ステップS302において、読み出しフラグ確認部203は、読み出しフラグ231を参照し、書き込みポインタ162が指定するバンクに格納されるデータを読み出し中であるか否かを判定する。読み出しフラグ231がセットされており、データ読み出し中であると判定された場合、処理はステップS303に進む。
ステップS303において、書き込みポインタ更新部202は、読み出し中のデータを破壊しないように、書き込みポインタ162の指定先を読み出しポインタ171が指定するバンクの次のバンクに移動させる。この時点でバンクフルが発生した状態となっているので、バンクオーバフラグ設定部204は、ステップS304において、バンクオーバフラグ212をセットする。
バンクオーバフラグ212がセットされると、書き込みフラグ設定部205は、ステップS305において、書き込みフラグ211をセットする。ステップS306において、書き込み部206は、データ取得部201が取得したプレシンクトデータをデータ格納領域152に格納させる。さらに、書き込み部206は、データ取得部201が取得したプレシンクト属性情報に書き込みアドレス161を付加し、それを書き込みポインタ162の指定先のバンクに書き込む。書き込みが終了すると、書き込みフラグ設定部205は、ステップS307において、書き込みフラグ211を解除する。そして、ステップS308において、書き込みポインタ更新部202は、書き込みポインタ162を更新し、その指定先を次のバンクに進め、書き込み処理を終了させる。
このように、書き込みポインタ162が読み出しポインタ171に追いつき、かつ、読み出し制御部154がそのバンクのデータを読み出し中である場合の処理は、ケース3の場合も、上述したケース1やケース2の場合と基本的に同様である。ただし、書き込みポインタ162の更新タイミングは異なる。
ステップS302において、読み出しフラグ231がセットされておらず、読み出し中でないと判定された場合、処理はステップS305に進み、書き込みフラグ211がセットされる。つまり、この場合、書き込みポインタの指定先は移動されず、現在指定先とされるバンクに対してプレシンクト属性情報の書き込みが実行される。もちろん、プレシンクトデータのデータ格納領域152への書き込みも行われる。
なお、ケース3の場合、読み出しポインタ171は、読み出しの前に更新される。したがって、読み出しフラグ231がセットされていない場合、そのバンクに格納されたデータは既に読み出されている。したがって、このバンクに新たなプレシンクト属性情報が書き込まれても、次の読み出しは次のバンクから行われるので、正常な読み出しが可能である。したがって、この時点では、まだバンクフルは発生しておらず、バンクオーバフラグ212はセットされない。
ステップS306以降の処理は、上述した場合と同様であるので、その説明は省略する。
また、ステップS301において、書き込みポインタ162の指定先と読み出しポインタ171の指定先の位置(バンク)が一致しないと判定した場合、2つの状態が考えられる。1つは、バンクフルが発生していない状態、もう1つは、既にバンクフルが発生済みで書き込みポインタ162が読み出しポインタ171を追い抜いている状態が継続している状態である。いずれにしてもバンクオーバフラグ212の設定は変更されず、かつ、書き込みポインタ162の現在の指定先のバンクに書き込み可能であるので、処理は、ステップS305に進む。ステップS305以降の処理は、上述した場合と同様であるので、その説明は省略する。
以上のようにケース3の書き込み処理は実行される。
次に、ケース3の読み出し処理について、図18のフローチャートを参照して説明する。
読み出し処理が開始されると、バンクオーバフラグ確認部223は、ステップS321において、バンクオーバフラグ212がセットされているか否かを判定する。バンクオーバフラグ212がセットされていると判定された場合、処理はステップS322に進む。
ステップS322において、バンクオーバフラグ設定部224は、これから行われる処理によりバンクフルの状態が解消されるので、バンクオーバフラグ212を解除する。ステップS323において、読み出しポインタ更新部222は、書き込みフラグ211がセットされているか否かを確認し、書き込み制御部151が書き込み中であるか否かを判定する。書き込み中であると判定された場合,処理はステップS324に進む。
ステップS324において、読み出しポインタ更新部222は、読み出しポインタ171の指定先を、書き込みポインタ162の指定先のバンクの次のバンクに移動させる。これは上述したように、容易な方法によって、破棄するプレシンクトの数を低減させるようにするための処理である。また、書き込み中のバンクのデータを読み出さないようにすることもできる。
読み出しポインタ171が更新されると、読み出しフラグ設定部225は、ステップS327において、読み出し処理中であることを示すために、読み出しフラグ231をセットする。ステップS328において、読み出し部226は、読み出しポインタ171が指定するバンクよりプレシンクト属性情報の読み出しを行う。また、読み出し部226は、読み出したプレシンクト属性情報に付加された書き込みアドレス161を用いてプレシンクトデータを読み出す。データが読み出されると、ステップS329において、読み出しフラグ設定部225は、読み出しフラグ231を解除し、読み出し処理を終了する。
また、ステップS323において、書き込み中でないと判定された場合、処理はステップS325に進む。ステップS325において、読み出しポインタ更新部222は、読み出しポインタ171の指定先を、書き込みポインタ162の指定先のバンクに移動させる。
ケース3の場合、書き込みポインタ162は、書き込み後に更新される。したがって、書き込みフラグ211がセットされていない場合、まだそのバンクのデータは新しいデータに更新されていない。つまり、この場合、書き込みポインタ162の指定先のバンクのデータが、全バンクに格納されるデータの内、最も古いデータとなる。したがって、書き込み中で無ければ、書き込みポインタ162の指定先のバンクのデータを読み出すようにすることにより(ステップS325)、読み出し制御部154は、破棄するプレシンクトの数をより低減させることができる。
つまり、書き込み制御部151は、ステップS323において書き込み中であるか否かを確認し、その結果によって読み出しポインタ171の指定先の移動先を制御する。これにより、書き込み制御部151は、破棄するプレシンクトの数をより低減させることができる。
ステップS325の処理が終了すると、処理はステップS327に進む。ステップS327以下の処理は、上述したのと同様であるのでその説明は省略する。
また、ステップS321において、バンクオーバフラグ212がセットされていないと判定された場合、処理はステップS326に進む。この場合、バンクフルは発生していないので、ステップS326において、読み出しポインタ更新部222は、読み出しポインタ171の指定先を、次に指定する予定のバンク(現在の指定先の次のバンク)に進める。読み出しポインタ171が更新されると、処理はステップS327に進む。ステップS327以下の処理は、上述したのと同様であるのでその説明は省略する。
以上のようにケース3の読み出し処理は実行される。以上のようにデータの書き込みや読み出しを制御することにより、ケース3の場合であっても、バッファの入出力制御をより適切に行うことができる。これにより、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
次に、書き込みポインタ162および読み出しポインタ171の更新タイミングがいずれも書き込み後または読み出し後(終了時)である場合、すなわち、ケース4の場合について説明する。
図19のフローチャートを参照して、ケース4の場合の、書き込み制御部151による書き込み処理の流れの例を説明する。
データ取得部201(図7)が、新たなプレシンクトのデータを取得すると、書き込み処理が開始される。書き込み処理が開始されると、書き込みポインタ更新部202は、ステップS401において、書き込みポインタ162の指定先と、通知された読み出しポインタ171の指定先の位置(バンク)が一致するか否かを判定する。一致すると判定された場合、処理はステップS402に進む。
ステップS402において、読み出しフラグ確認部203は、読み出しフラグ231を参照し、読み出し制御部154が、書き込みポインタ162が指定するバンクに格納されるデータを読み出し中であるか否かを判定する。読み出しフラグ231がセットされており、データ読み出し中であると判定された場合、処理はステップS403に進む。
ステップS403において、書き込みポインタ更新部202は、読み出し中のデータを破壊しないように、書き込みポインタ162の指定先を読み出しポインタ171が指定するバンクの次のバンクに移動させる。この時点でバンクフルが発生した状態となっているので、バンクオーバフラグ設定部204は、ステップS404において、バンクオーバフラグ212をセットする。
バンクオーバフラグ212がセットされると、書き込みフラグ設定部205は、ステップS405において、書き込みフラグ211をセットする。ステップS406において、書き込み部206は、データ取得部201が取得したプレシンクトデータをデータ格納領域152に格納させる。さらに、書き込み部206は、データ取得部201が取得したプレシンクト属性情報に書き込みアドレス161を付加し、それを書き込みポインタ162の指定先のバンクに書き込む。書き込みが終了すると、書き込みフラグ設定部205は、ステップS407において、書き込みフラグ211を解除する。そして、ステップS408において、書き込みポインタ更新部202は、書き込みポインタ162の指定先を、現在の指定先のバンクの次のバンクに進め、書き込み処理を終了させる。
つまり、バンクフルが発生し、かつ、読み出し中である場合、ケース3の場合と同様に処理が実行される。
なお、ステップS402において、読み出しフラグ231がセットされておらず、読み出し中でないと判定された場合、処理はステップS404に進み、バンクオーバフラグ212がセットされる。ケース4の場合、読み出しフラグ231は読み出し後に更新されるので、読み出しフラグ231がセットされていない場合、そのバンクのデータはまだ読み出されていない。つまり、読み出し中で無ければこのバンクへの書き込みは可能であるものの、その書き込みによりバンクフルが発生した状態となる。したがって、この場合、処理はステップS404に進み、バンクオーバフラグ212がセットされる。ステップS405以降の処理は、上述した場合と同様であるので、その説明は省略する。
また、ステップS401において、書き込みポインタ162の指定先と読み出しポインタ171の指定先の位置(バンク)が一致しないと判定した場合、2つの状態が考えられる。1つは、バンクフルが発生していない状態、もう1つは、既にバンクフルが発生済みで書き込みポインタ162が読み出しポインタ171を追い抜いている状態が継続している状態である。いずれにしてもバンクオーバフラグ212の設定は変更されず、かつ、書き込みポインタ162の現在の指定先のバンクに書き込み可能であるので、処理は、ステップS405に進む。ステップS405以降の処理は、上述した場合と同様であるので、その説明は省略する。
以上のようにケース4の書き込み処理は実行される。
次に、ケース4の読み出し処理について、図20のフローチャートを参照して説明する。
読み出し処理が開始されると、バンクオーバフラグ確認部223は、ステップS421において、バンクオーバフラグ212がセットされているか否かを判定する。バンクオーバフラグ212がセットされていると判定された場合、処理はステップS422に進む。
ステップS422において、バンクオーバフラグ設定部224は、これから行われる処理(読み出し)によりバンクフルの状態が解消されるので、バンクオーバフラグ212を解除する。ステップS423において、読み出しポインタ更新部222は、書き込みフラグ211がセットされているか否かを確認し、書き込み中であるか否かを判定する。書き込みフラグ211がセットされており、書き込み中であると判定された場合、処理はステップS424に進む。ステップS424において、読み出しポインタ更新部222は、読み出しポインタ171の指定先を、書き込みポインタ162の指定先のバンクの次のバンクに移動させる。これは上述したように、容易な方法によって、破棄するプレシンクトの数を低減させるようにするための処理である。
読み出しポインタ171が更新されると、読み出しフラグ設定部225は、ステップS426において、読み出し処理中であることを示すために、読み出しフラグ231をセットする。ステップS427において、読み出し部226は、読み出しポインタ171が指定するバンクよりプレシンクト属性情報の読み出しを行う。また、読み出し部226は、読み出したプレシンクト属性情報に付加された書き込みアドレス161を用いてプレシンクトデータを読み出す。データが読み出されると、ステップS428において、読み出しフラグ設定部225は、読み出しフラグ231を解除する。そして、ステップS429において、読み出しポインタ171の指定先を次のバンクに進め、読み出し処理を終了する。
また、ステップS423において、書き込み中でないと判定された場合、処理はステップS425に進む。ステップS425において、読み出しポインタ更新部222は、読み出しポインタ171の指定先を、書き込みポインタ162の指定先のバンクに移動させる。
ケース4の場合、書き込みポインタ162は、ケース3の場合と同様に、書き込み後に更新される。つまり、この場合も、書き込みポインタ162の指定先のバンクのデータが、全バンクに格納されるデータの内、最も古いデータとなる。したがって、書き込み中で無ければ、書き込みポインタ162の指定先のバンクのデータを読み出すようにすることにより(ステップS425)、読み出し制御部154は、破棄するプレシンクトの数をより低減させることができる。
つまり、書き込み制御部151は、ステップS423において書き込み中であるか否かを確認し、その結果によって読み出しポインタ171の指定先の移動先を制御する。これにより、書き込み制御部151は、破棄するプレシンクトの数をより低減させることができる。
ステップS425の処理が終了すると、処理はステップS426に進む。ステップS426以下の処理は、上述したのと同様であるのでその説明は省略する。
また、ステップS421において、バンクオーバフラグ212がセットされていないと判定された場合、処理はステップS426に進む。この場合、バンクフルは発生していないので、読み出しポインタ171の更新はせずに読み出しが行われる。ステップS426以下の処理は、上述したのと同様であるのでその説明は省略する。
以上のようにケース4の読み出し処理は実行される。以上のようにデータの書き込みや読み出しを制御することにより、ケース4の場合であっても、バッファの入出力制御をより適切に行うことができる。これにより、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
次に、以上のような入出力制御による、読み出しと書き出しの関係について、図21乃至図23を参照して説明する。なお、ここでは、ケース2の場合について説明する。
図21は、ケース2において、読み出し中にバンクフルが発生した場合の、各パラメータの変化の様子の例を説明する図である。図21において、時系列は図中左から右に進む。
図21の一番上の段には、クロック信号(CLOCK)の波形が示される。図21に示されるようにクロック信号は2値の信号であり、図中上側が値「1」を示し、図中下側が値「0」を示している。図21の上から2番目の段には、書き込みフラグ(WritingFlag)211の値の変化の様子が波形(線)として示されている。図21に示されるように書き込みフラグ211は2値のパラメータであり、図中上側が値「1」を示し、図中下側が値「0」を示している。図21の上から3番目の段には、書き込みポインタ(WritePointer)162の値の変化の様子が数値で示されている。書き込みポインタ162の段に示される数値は、書き込みポインタ162の指定先のバンクの識別情報を示している。つまり、この値が変化する箇所が、書き込みポインタ162が更新されるタイミングを示している。
また、図21の上から4段目には、読み出しフラグ(ReadingFlag)231の値の変化の様子が波形(線)として示されている。図21に示されるように読み出しフラグ231は2値のパラメータであり、図中上側が値「1」を示し、図中下側が値「0」を示している。図21の上から5番目の段には、読み出しポインタ(ReadPointer)171の値の変化の様子が数値で示されている。読み出しポインタ171の段に示される数値は、読み出しポインタ171の指定先のバンクの識別情報を示している。つまり、この値が変化する箇所が、読み出しポインタ171が更新されるタイミングを示している。
図21の一番下の段には、バンクオーバフラグ(BankOverFlag)212の値の変化の様子が波形(線)として示されている。図21に示されるようにバンクオーバフラグ212は2値のパラメータであり、図中上側が値「1」を示し、図中下側が値「0」を示している。
図21の時刻T1において、書き込み制御部151は、書き込みを行っていない。ただし、読み出し制御部154は、バンク2からデータを読み出している。バンクフルは発生していない。
時刻T2において、書き込みに先立ち、書き込みポインタ162の指定先がバンク2に更新される。この時点で書き込みポインタ162と読み出しポインタ171の指定先が互いに等しくなるので、読み出しフラグ231の値に基づいて読み出し中であることが確認される。読み出し中であるので、時刻T3において、書き込みポインタ162の指定先がバンク3に、さらに変更され、バンクオーバフラグ212および書き込みフラグ211がセットされ、バンク3に対する書き込みが開始される。
時刻T4において、読み出しが終了すると、読み出しフラグ231が解除され、読み出しポインタ171の指定先が次のバンク(バンク3)に更新される。ただし、まだバンクフルの状態は継続しており、バンクオーバフラグ212はセットされたままとなる。時刻T5において、書き込みが終了し、書き込みフラグ211が解除されても、まだバンクフルの状態は継続しており、バンクオーバフラグ212はセットされたままとなる。書き込みポインタ162は開始時に更新されるので、時刻T5においては更新されない。
時刻T6において、読み出し処理が開始されると、バンクオーバフラグ212が解除され、読み出しポインタ171の指定先が書き込みポインタ162の指定先の次のバンク(バンク4)に移動され、バンク4からのデータの読み出しが開始される。
このように制御することにより、送信バッファ113は、バンクフルが発生した場合であっても、バンク3のデータを破棄するのみで、データを伝送することができる。つまり、送信装置101は、バッファの入出力制御をより適切に行うことができる。これにより、送信装置101は、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
図22は、ケース2において、読み出し中でないときにバンクフルが発生した場合の、各パラメータの変化の様子の例を説明する図である。図22の構成は、基本的に図21と同様である。
図22の時刻T11において、書き込み制御部151は書き込みを行っておらず、読み出し制御部154も読み出しを行っていない。また、バンクフルは発生していない。
時刻T12において、書き込み処理が開始されると、書き込みポインタ162の指定先がバンク1からバンク2に更新される。また、バンク2は読み出し中でないので、書き込みフラグ211がセットされ、バンク2への書き込みが開始される。この時点で書き込みポインタ162と読み出しポインタ171の指定先が互いに等しくなるので、バンクフルが発生した状態になり、バンクオーバフラグ212がセットされる。
時刻T13において、読み出し処理が開始されると、バンクオーバフラグ212が解除され、読み出しポインタ171の指定先が、書き込みポインタ162の指定先のバンク(バンク2)の次のバンク(バンク3)に更新される。また、読み出しフラグ231がセットされ、バンク3からのデータの読み出しが開始される。
時刻T14において、書き込みが終了し、書き込みフラグ211が解除される。このとき、読み出しフラグ231や読み出しポインタ171は更新されない。また、バンクオーバフラグ212もセットされない。
時刻T15において、読み出しが終了し、読み出しフラグ231が解除されると、読み出しポインタ171の指定先が、現在の指定先(バンク3)の次のバンク(バンク4)に進められる。
このように制御することにより、送信バッファ113は、バンクフルが発生した場合であっても、バンク3のデータを破棄せずに、データを伝送することができる。つまり、送信装置101は、バッファの入出力制御をより適切に行うことができる。これにより、送信装置101は、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
図23は、ケース2において、バンクフル発生中に複数のバンクに書き込みが行われた場合の、各パラメータの変化の様子の例を説明する図である。図23の構成は、基本的に図22と同様である。
図23の時刻T21において、書き込み制御部151は書き込みを行っておらず、読み出し制御部154も読み出しを行っていない。また、バンクフルは発生していない。
時刻T22において、書き込み処理が開始されると、書き込みポインタ162の指定先がバンク1からバンク2に更新される。また、バンク2は読み出し中でないので、書き込みフラグ211がセットされ、バンク2への書き込みが開始される。この時点で書き込みポインタ162と読み出しポインタ171の指定先が互いに等しくなるので、バンクフルが発生した状態になり、バンクオーバフラグ212がセットされる。
時刻T23において、書き込みが終了すると、書き込みフラグ211が解除される。時刻T24において、再度、書き込み処理が開始されると、書き込みポインタ162の指定先がバンク2からバンク3に更新される。また、書き込みフラグ211がセットされ、バンク3への書き込みが開始される。バンクオーバフラグ212は既にセットされている。
時刻T25において、読み出しが開始されると、読み出しポインタ171の指定先が、バンク2から、書き込みポインタ162の指定先(バンク3)の次のバンク(バンク4)に更新される。また、読み出しフラグ231がセットされ、読み出しが開始される。また、バンクオーバフラグ212は解除される。
このとき、読み出しポインタ171の指定先が、バンク2から、次のバンク(バンク3)に更新されても、バンク3は書き込み中であり読み出すことはできない。また、仮に書き込みが終了していたとしても、バンク3のデータは最新のプレシンクトのデータに更新されている。したがって、読み出し制御部154は、上述したように、読み出しポインタ171の指定先を、バンク2から、書き込みポインタ162の指定先の次のバンク(バンク4)に更新することにより、復号画像への影響をより低減させることができる。
時刻T26において、書き込みが終了すると書き込みフラグ211が解除される。時刻T27において、読み出しが終了すると読み出しフラグ231が解除される。このとき、読み出しポインタ171の指定先は、次のバンク(バンク5)に更新される。
このように制御することにより、送信バッファ113は、バンクフルが発生中に複数回書き込みが行われた場合であっても、バンク3のデータを破棄せずに、データを伝送することができる。つまり、送信装置101は、バッファの入出力制御をより適切に行うことができる。これにより、送信装置101は、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
なお、以上においては、ケース1乃至ケース4の4つのケースが存在することを説明したが、どのケースを用いて入出力制御するかは、予め定められていれば任意である。ただし、図13乃至図20を参照して説明したように、ケース1またはケース2の場合の方が、ケース3またはケース4の場合よりも制御がより容易である。また、ケース2の場合、書き込みポインタ162と読み出しポインタ171の更新タイミングが互いに異なる。したがって、ケース2の場合の方がケース1の場合よりも、書き込みポインタの指定先と読み出しポインタの指定先が一致し、かつ、読み出し中である可能性が少ない。したがって、ケース2の場合の方が、ケース1の場合よりも、書き込みポインタの更新(ステップS104、ステップS204)回数が少なくすることができ、処理が容易になる。さらに、読み出し処理もケース2の方がより容易である。
以上のことから、バッファの入出力制御をより容易かつ適切に行うためには、ケース2を適用するのが望ましい。
以上のような本発明を適用した低遅延コーデックを使った情報処理システム100(伝送システム)の具体的な例は、以下のようなものが考えられる。
例えば、中継カメラの映像を放送局に伝送するようなシステムが考えられる。なお、伝送路102は有線であってもよいし、無線であってもよい。また、例えば、TV会議システムなども考えられる。
また、ユーザのインタラクティブな操作をリアルタイム(即時的)に画面表示するシステム、すなわち、リアルタイム圧縮・伝送システムにも本発明を適用することができる。例えばチューナと表示部が別体となったテレビジョン映像伝送システムや、ホームネットワークにおける映像蓄積器(HDDレコーダなど)と表示機器(TVなど)との無線映像伝送が考えられる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図24に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図24において、パーソナルコンピュータ500のCPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または記憶部513からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU501、ROM502、およびRAM503は、バス504を介して相互に接続されている。このバス504にはまた、入出力インタフェース510も接続されている。
入出力インタフェース510には、キーボード、マウスなどよりなる入力部511、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部512、ハードディスクなどより構成される記憶部513、モデムなどより構成される通信部514が接続されている。通信部514は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース510にはまた、必要に応じてドライブ515が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア521が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部513にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図24に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表わすものである。
なお、以上において、1つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて1つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
本発明を適用した情報処理システムの構成例を示すブロック図である。 ウェーブレット変換の様子を説明する図である。 ラインベース・ウェーブレット変換の様子の例を説明する図である。 ラインベース・ウェーブレット変換の様子の例を説明する図である。 送信バッファの入出力インタフェースを説明する図である。 送信バッファの内部の構成例を示すブロック図である。 書き込み制御部と読み出し制御部が有する機能の例を示す図である。 バンクオーバの発生について説明する図である。 バンクオーバの発生時の制御について説明する図である。 バンクオーバの発生時の制御について説明する図である。 ポインタやフラグの制御の様子を説明する図である。 ポインタの更新タイミングのパターンを説明する図である。 ケース1の書き込み処理の流れの例を説明するフローチャートである。 ケース1の読み出し処理の流れの例を説明するフローチャートである。 ケース2の書き込み処理の流れの例を説明するフローチャートである。 ケース2の読み出し処理の流れの例を説明するフローチャートである。 ケース3の書き込み処理の流れの例を説明するフローチャートである。 ケース3の読み出し処理の流れの例を説明するフローチャートである。 ケース4の書き込み処理の流れの例を説明するフローチャートである。 ケース4の読み出し処理の流れの例を説明するフローチャートである。 ケース2において、読み出し中にバンクフルが発生した場合の、各パラメータの変化の様子の例を説明する図である。 ケース2において、読み出し中でないときにバンクフルが発生した場合の、各パラメータの変化の様子の例を説明する図である。 ケース2において、バンクフル発生中に複数のバンクに書き込みが行われた場合の、各パラメータの変化の様子の例を説明する図である。 本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
符号の説明
100 情報処理システム, 101 送信装置, 102 伝送路, 103 受信装置, 111 入力インタフェース, 112 ラインベース・コーデック・エンコーダ, 113 送信バッファ, 114 伝送インタフェース, 141 データ信号, 142 データ属性信号, 143 伝送パケット, 144 出力停止信号, 151 書き込み制御部, 152 データ格納領域, 153 プレシンクト属性情報格納領域, 154 読み出し制御部, 161 書き込みアドレス, 162 書き込みポインタ, 171 読み出しポインタ, 172 読み出しアドレス, 181 パケット生成部, 201 データ取得部, 202 書き込みポインタ更新部, 203 読み出しフラグ確認部, 204 バンクオーバフラグ設定部, 205 書き込みフラグ設定部, 206 書き込み部, 207 保持部, 211 書き込みフラグ, 212 バンクオーバフラグ, 222 読み出しポインタ更新部, 223 バンクオーバフラグ確認部, 224 バンクオーバフラグ設定部, 225 読み出しフラグ設定部, 226 読み出し部, 227 保持部, 231 読み出しフラグ, 240 バッファ入出力制御部

Claims (13)

  1. ピクチャを複数に分割するラインブロック毎のデータを記憶するバンクが複数形成される記憶領域について、前記データを書き込むバンクを指定する書き込みポインタを、前記記憶領域の各バンクを巡回的に指定するように制御する書き込みポインタ制御手段と、
    前記書き込みポインタ制御手段により制御される前記書き込みポインタが指定するバンクに前記データを書き込む書き込み手段と、
    前記記憶領域の全てのバンクに読み出していない前記データが記憶されたとき、その旨を通知するバンクオーバフラグをセットするバンクオーバフラグ設定手段と、
    前記バンクオーバフラグ設定手段による前記バンクオーバフラグのセットとは独立して、前記バンクオーバフラグがセットされているか否かを確認するバンクオーバフラグ確認手段と、
    前記書き込みポインタ制御手段による前記書き込みポインタの制御とは独立して、前記データを読み出すバンクを指定する読み出しポインタを、前記記憶領域の各バンクを巡回的に指定するように制御し、前記バンクオーバフラグ確認手段により前記バンクオーバフラグがセットされていると確認された場合、前記読み出しポインタの指定先を、前記書き込みポインタの指定先のバンク、若しくは、前記書き込みポインタの指定先のバンクの次のバンクに移動させる読み出しポインタ制御手段と、
    前記書き込み手段による前記データの書き込みとは独立して、前記読み出しポインタ制御手段により制御される前記読み出しポインタが指定するバンクから前記データを読み出す読み出し手段と
    を備える情報処理装置。
  2. 前記読み出しポインタ制御手段は、前記バンクオーバフラグ確認手段により前記バンクオーバフラグがセットされていると確認された場合、
    前記書き込み手段が前記データを書き込み中でないとき、前記読み出しポインタの指定先を、前記書き込みポインタの指定先のバンクに移動させ、
    前記書き込み手段が前記データを書き込み中のとき、前記読み出しポインタの指定先を、前記書き込みポインタの指定先のバンクの次のバンクに移動させる
    請求項1に記載の情報処理装置。
  3. 前記書き込みポインタ制御手段は、前記書き込みポインタを更新する場合、前記読み出し手段により読み出し中であるバンクを指定しないように、前記書き込みポインタの指定先を決定する
    請求項1に記載の情報処理装置。
  4. 前記バンクオーバフラグ確認手段により前記バンクオーバフラグがセットされていると確認された場合前記バンクオーバフラグを解除するバンクオーバフラグ解除手段をさらに備える
    請求項1に記載の情報処理装置。
  5. 前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの前に前記書き込みポインタを更新し、
    前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの後に前記読み出しポインタを更新する
    請求項1に記載の情報処理装置。
  6. 前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの前に前記書き込みポインタを更新し、
    前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの前に前記読み出しポインタを更新する
    請求項1に記載の情報処理装置。
  7. 前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの後に前記書き込みポインタを更新し、
    前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの前に前記読み出しポインタを更新する
    請求項1に記載の情報処理装置。
  8. 前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの後に前記書き込みポインタを更新し、
    前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの後に前記読み出しポインタを更新する
    請求項1に記載の情報処理装置。
  9. 前記書き込み手段が前記データを書き込む間、書き込み中であることを示す書き込みフラグをセットする書き込みフラグ設定手段をさらに備える
    請求項1に記載の情報処理装置。
  10. 前記読み出し手段が前記データを読み出す間、読み出し中であることを示す読み出しフラグをセットする読み出しフラグ設定手段をさらに備える
    請求項1に記載の情報処理装置。
  11. 前記データは、画像データを符号化した、符号化単位毎の符号化データの属性を示す属性情報を含む
    請求項1に記載の情報処理装置。
  12. 前記属性情報には、前記符号化データが保持される記憶領域のアドレス情報が付加されている
    請求項11に記載の情報処理装置。
  13. 情報処理装置の情報処理方法であって、
    前記情報処理装置が、
    ピクチャを複数に分割するラインブロック毎のデータを記憶するバンクが複数形成される記憶領域について、前記データを書き込むバンクを指定する書き込みポインタを、前記記憶領域の各バンクを巡回的に指定するように制御し、
    前記書き込みポインタが指定するバンクに前記データを書き込み、
    前記記憶領域の全てのバンクに読み出していない前記データが記憶されたとき、その旨を通知するバンクオーバフラグをセットし、
    前記バンクオーバフラグのセットとは独立して、前記バンクオーバフラグがセットされているか否かを確認し、
    前記書き込みポインタの制御とは独立して、前記データを読み出すバンクを指定する読み出しポインタを、前記記憶領域の各バンクを巡回的に指定するように制御し、前記バンクオーバフラグがセットされていると確認された場合、前記読み出しポインタの指定先を、前記書き込みポインタの指定先のバンク、若しくは、前記書き込みポインタの指定先のバンクの次のバンクに移動させ、
    前記データの書き込みとは独立して、前記読み出しポインタが指定するバンクから前記データを読み出す
    情報処理方法。
JP2008233334A 2008-09-11 2008-09-11 情報処理装置および方法 Expired - Fee Related JP5240513B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008233334A JP5240513B2 (ja) 2008-09-11 2008-09-11 情報処理装置および方法
US12/537,699 US8565574B2 (en) 2008-09-11 2009-08-07 Information processing apparatus and method for controlling input and output operations on a buffer
CN2009101736647A CN101674479B (zh) 2008-09-11 2009-09-10 信息处理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008233334A JP5240513B2 (ja) 2008-09-11 2008-09-11 情報処理装置および方法

Publications (2)

Publication Number Publication Date
JP2010068301A JP2010068301A (ja) 2010-03-25
JP5240513B2 true JP5240513B2 (ja) 2013-07-17

Family

ID=41800147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008233334A Expired - Fee Related JP5240513B2 (ja) 2008-09-11 2008-09-11 情報処理装置および方法

Country Status (3)

Country Link
US (1) US8565574B2 (ja)
JP (1) JP5240513B2 (ja)
CN (1) CN101674479B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6396819B1 (en) 1998-03-21 2002-05-28 Richard D. Fleeter Low-cost satellite communication system
US7227884B2 (en) 2000-02-28 2007-06-05 Aeroastro, Inc. Spread-spectrum receiver with progressive fourier transform
US7592953B2 (en) * 2005-12-30 2009-09-22 Comtech Mobile Datacom Corporation Mobile satellite communications
US9106364B1 (en) 2009-01-26 2015-08-11 Comtech Mobile Datacom Corporation Signal processing of a high capacity waveform
US8548107B1 (en) 2009-01-26 2013-10-01 Comtech Mobile Datacom Corporation Advanced multi-user detector
US8675711B1 (en) * 2009-09-25 2014-03-18 Comtech Mobile Datacom Corporation System and methods for dynamic spread spectrum usage
US8390743B2 (en) * 2011-03-31 2013-03-05 Intersil Americas Inc. System and methods for the synchronization and display of video input signals
CN103037204A (zh) * 2011-10-10 2013-04-10 深圳市蓝韵实业有限公司 超声图像传输方法及系统
US9665422B2 (en) 2012-04-13 2017-05-30 Sony Corporation Information processing apparatus and method, and, program
US9715887B2 (en) * 2015-12-28 2017-07-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Magnetic recording system using pattern dependent writer having register pages for storing write currents
US20170371797A1 (en) * 2016-06-24 2017-12-28 Qualcomm Incorporated Pre-fetch mechanism for compressed memory lines in a processor-based system
CN110557341A (zh) * 2018-05-31 2019-12-10 北京京东尚科信息技术有限公司 数据限流的方法和装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6196846A (ja) * 1984-10-17 1986-05-15 Mitsubishi Electric Corp プレジオクロナススリツプ制御回路
JPH0652099A (ja) * 1992-07-28 1994-02-25 Hitachi Ltd Fifoメモリ、そのアクセス制御方式及びfifoメモリを用いた処理システム
JP3491366B2 (ja) * 1995-01-31 2004-01-26 ソニー株式会社 符号化データの特殊再生方法および特殊再生装置
JP3511342B2 (ja) * 1996-09-18 2004-03-29 沖電気工業株式会社 データ蓄積回路
US6990598B2 (en) * 2001-03-21 2006-01-24 Gallitzin Allegheny Llc Low power reconfigurable systems and methods
JP3506130B2 (ja) * 2001-06-19 2004-03-15 日本電気株式会社 バッファリング装置及びバッファリング方法
JP2003259315A (ja) * 2002-02-28 2003-09-12 Matsushita Electric Ind Co Ltd 画像伝送装置および画像伝送方法
JP3879547B2 (ja) * 2002-03-18 2007-02-14 三菱電機株式会社 データ同期化装置
CN100499631C (zh) 2004-03-04 2009-06-10 华为技术有限公司 数据丢弃模块及数据丢弃的实现方法
CN1780254A (zh) * 2004-11-17 2006-05-31 华为技术有限公司 网络处理器中使用缓冲区的方法
WO2007010779A1 (ja) * 2005-07-15 2007-01-25 Matsushita Electric Industrial Co., Ltd. パケット送信装置
EP1773043A1 (en) * 2005-10-06 2007-04-11 Dibcom Method and system for storing data packets
JP4129694B2 (ja) 2006-07-19 2008-08-06 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP2008042222A (ja) * 2006-08-01 2008-02-21 Sony Corp 送信装置および方法、並びにプログラム
CN1968061A (zh) * 2006-10-08 2007-05-23 华为技术有限公司 一种再定时的设备及方法

Also Published As

Publication number Publication date
CN101674479B (zh) 2013-07-03
JP2010068301A (ja) 2010-03-25
US20100064091A1 (en) 2010-03-11
CN101674479A (zh) 2010-03-17
US8565574B2 (en) 2013-10-22

Similar Documents

Publication Publication Date Title
JP5240513B2 (ja) 情報処理装置および方法
JP4129694B2 (ja) 情報処理装置および方法、プログラム、並びに記録媒体
EP2337306B1 (en) Transmitting apparatus and method, and receiving apparatus and method
JP5493471B2 (ja) 情報処理装置および方法
JP5598155B2 (ja) 情報処理装置および方法、並びに送受信システム
CN102263950B (zh) 编码设备和编码方法以及解码设备和解码方法
JP5672840B2 (ja) 情報処理装置および方法、並びにプログラム
US20080285874A1 (en) Method and apparatus for processing image data
JP4525795B2 (ja) 受信装置、受信方法、プログラム、及び通信システム
US8233534B2 (en) Frame buffer compression and memory allocation in a video decoder
WO2011037049A1 (ja) 画像処理装置および方法
JP2008288857A (ja) 情報処理装置および方法
US7746857B2 (en) Transmitting apparatus, transmitting method, program, and communications system
JP5610199B2 (ja) 受信装置、受信方法、及び通信システム
US8411984B2 (en) Image processing device and method
WO2013154024A1 (ja) 情報処理装置および方法、並びに、プログラム
WO2013154025A1 (ja) 情報処理装置および方法、並びに、プログラム
JP2011147050A (ja) 画像処理装置および方法
JP2011071649A (ja) 画像処理装置および方法
US20140198997A1 (en) Information processing apparatus, method, and program
JP4793320B2 (ja) 情報処理装置および方法
CN108574847A (zh) 执行缓冲器控制的信息处理设备和方法
WO2013165624A1 (en) Mechanism for facilitating cost-efficient and low-latency encoding of video streams

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120723

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: 20130307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130320

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees