JP4517435B2 - Information processing apparatus and method - Google Patents

Information processing apparatus and method Download PDF

Info

Publication number
JP4517435B2
JP4517435B2 JP2000035380A JP2000035380A JP4517435B2 JP 4517435 B2 JP4517435 B2 JP 4517435B2 JP 2000035380 A JP2000035380 A JP 2000035380A JP 2000035380 A JP2000035380 A JP 2000035380A JP 4517435 B2 JP4517435 B2 JP 4517435B2
Authority
JP
Japan
Prior art keywords
data
circuit
block
counter
segment
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
JP2000035380A
Other languages
Japanese (ja)
Other versions
JP2001224025A (en
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 JP2000035380A priority Critical patent/JP4517435B2/en
Publication of JP2001224025A publication Critical patent/JP2001224025A/en
Application granted granted Critical
Publication of JP4517435B2 publication Critical patent/JP4517435B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は情報処理装置および方法に関し、特に、入力データの選択、計数、およびメモリアドレシング先の計数カウンタ値に、アドレスビットの組み合わせが1対1で対応するメモリマップを用いる情報処理装置および方法に関する。
【0002】
【従来の技術】
データ伝送における圧縮方式の多くには、圧縮比を向上させるため、エントロピー符号化に代表される可変長符号化が用いられている。このエントロピー符号化の特徴は、圧縮の対象となるデータの内容に応じて符号語の長さを変えることで圧縮を実現することである。例えば、発生頻度の高いデータには、短い符号語が割り当てられ、発生頻度の低いデータには長い符号語が割り当てられる。その結果、伝送するデータ全体の情報量が削減される。
【0003】
通信エラーにより受信側で誤ったデータが受信された場合、データの内容に応じて、符号語の長さが常に変化するため、復号の誤りは、伝送されるデータの基準となるポイントまで続くことになり、この現象は、一般に「エラー伝搬」と称される。
【0004】
また、MPEG(Moving Picture Experts Group)に代表される動画像の圧縮方式は、離散コサイン変換により、空間的冗長度を減らすと共に、フレーム間の差分のみを伝送するなどして、時間的冗長度を減らすことにより、データ量を削減する。
【0005】
このような圧縮方式により圧縮された動画像のデータは、受信側で伸張されるが、通信エラーにより伝送した動画像のデータが欠落した場合、そのデータの欠落は、空間的および時間的に伸張され、圧縮比が高いほどその影響が顕著に現れる。
【0006】
モバイル環境の、通信路の条件は、固定局または有線と比較して劣悪で、「パケットロス」と称されるバースト状のデータの欠落が比較的頻繁に発生する。そこで、このようなモバイル環境での、圧縮を利用する動画像の通信では、データを伝送する前に、連続するデータ間でシャフリングを行い、データを分散させることにより、パケットが欠落した場合においても、受信側においては、欠落したパケットのデータを受信されたパケットのデータにより補間できるようにされている。
【0007】
例えば、ADRC(Adaptive Dynamic Range Coding)方式で符号化されたデータをシャフリングした後パケット化して伝送する場合、図1に示すようなパケット構成が提案されている。図1は、ADRC方式のデータの2フレーム分をATM(Asynchronous Transfer Mode)方式のパケットサイズに分割して伝送する際のパケット構成を示している。1パケットは、ダイナミックレンジ(DR)、モーションフラグ(MF)、画素値の最小値(MIN)、量子化テーブルのインデックス(TI)、およびコードQから構成されている。以下、適宜、DR,MF,MIN、およびTIをFLデータと称し、コードQをVLデータと称する。
【0008】
1個のDRのデータはAビットから、MINのデータはBビットから、MFのデータはCビットから、TIのデータはDビットから、それぞれ構成されている。1パケットのデータ領域のサイズは47バイトと設定されており、上述した4つのデータDR、MF、MIN、TIのデータ量を47バイトから除いた残りのビット数が、コードQのデータサイズとなる。
【0009】
パケットにはtype0乃至type6までの、合計7タイプのパケット構成が存在しており、それぞれ、パケット番号に応じて使い分けられる。パケットは、パケットタイプ毎に、含まれるデータDR、MF、MIN、TIの個数が異なっており、それに応じて、コードQのビット数も異なっている。このように、異なるパケットタイプを使い分けることにより、パケットロスが発生した場合でも、その影響を抑えるようにされている。
【0010】
【発明が解決しようとする課題】
上述したように、データにシャフリングを施してから伝送する場合、シャフリングをするために、一旦、RAM(Random Access Memory)などの記憶装置に記憶させておく必要がある。RAMなどは、通常、バイト単位でデータを取り扱う。そこで、上述したように、複数のパケットタイプを用いる場合、パケット内のデータをバイト単位で扱ったとき、各データのビット割り当ては、バイト単位とずれることが多く、また、パケット内の各データの位置は、パケットタイプ毎に異なるため、ビット割り当ての状態を監視し、演算によりシフト量を決定することにより行う、または、パケットタイプ毎のビット割り当ての組み合わせを記述したテーブルを用いて行う必要がある。
【0011】
また、シャフリングを行う際のアドレシング演算には、乗算または乗算の組み合わせを予測した係数テーブルを用いる方式が考えられる。アドレシングに乗算を用いる場合、演算時間がかかり、ハードウェアの構成規模が大きくなる可能性があった。乗算の組み合わせを予測した係数を用いる場合、上述したような複数の異なるデータを扱う時は、それらの値の組み合わせが厖大となり、その係数を記憶しておくメモリ量が大きくなるといった課題があった。
【0012】
本発明はこのような状況に鑑みてなされたものであり、データをバイト単位として扱い、入力データの選択、計数、およびメモリアドレシング先の計数カウンタ値に、アドレスビットの組み合わせが1対1で対応するメモリマップを用いることにより、乗算のためのハードウェアの規模を小さくし、係数テーブルを記憶するメモリ量を小さくすることを目的とする。
【0013】
【課題を解決するための手段】
本発明の一側面の情報処理装置は、コンポーネント信号が変換されることにより生成されたYデータ、Uデータ、およびVデータを第1のメモリに記憶させ、その記憶させた前記Yデータ、前記Uデータ、および前記VデータをADRCブロックの形式に並び換え、セグメントの範囲で、かつADRCブロック単位でシャフルするブロックシャフル手段と、前記ブロックシャフル手段から供給される前記Yデータ、前記Uデータ、および前記Vデータを、ADRC(Adaptive Dynamic Range Coding)方式に基づき符号化する符号化手段と、前記符号化手段から供給されるデータを、第2のメモリに記憶させ、その記憶と読み出しのアドレスを変えることで、シャフルするセグメント間シャフル手段と、前記セグメント間シャフル手段から供給されるデータを、1パケットに、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックス、およびコードQが含まれるパケットにパケット化するパケット化手段とを備え、前記セグメント間シャフル手段は、データ選択手段、入力データカウンタ手段、入出力コントローラ手段、アドレス発生手段、および出力データカウンタ手段を備え、前記データ選択手段は、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックスで構成される第1のデータの要素毎に、3個ずつパラレルに入力され、その第1のデータと交互するタイミングでコードQを含む第2のデータが入力され、それらの入力されたデータをシリアルデータに変換し、前記入出力コントローラ手段に出力し、前記入出力コントローラ手段は、前記アドレス発生手段が発生したアドレスに基づいて、入力されたデータを前記第2のメモリに記憶させ、前記入出力コントローラ手段は、前記第2のメモリに記憶されたデータを、前記アドレス発生手段が、前記出力データカウンタ手段から供給されるデータに従って発生したアドレスに基づいて、読み出し、前記パケット化手段に出力する。
前記入力データカウンタ手段は、前記データ選択手段に入力されたデータの種類の識別の為の情報、前記第2のメモリに記憶する際のアドレシングとシャフリングする方向を示すカウンタ群から構成されているようにすることができる。
前記カウンタ群は、アドレシング用とシャフリング用とがあり、前記アドレシング用の前記第1のデータ用のカウンタは、1バッファ内における前記第1のデータのブロック数をカウントするカウンタ、1セグメント内における前記第1のデータのパケットの数をカウントするカウンタ、および1バンク内における前記第1のデータのトータルのパケット数をカウントするカウンタから構成され、前記アドレシング用の前記第2のデータ用のカウンタ群は、1バッファ内における前記第2のデータのパケット数をカウントするカウンタ、1バンク内の前記第2のデータのトータルのパケット数をカウントするカウンタ、1セグメント内の前記第2のデータのバッファ数をカウントするカウンタ、および任意の順番の前記第2のデータをパケット当たりの前記第2のデータのバイト数Nで除算したときの余りをカウントするカウンタから構成され、前記シャフリング用の前記第1のデータ用のカウンタは、1バンク内における前記第1のデータのセグメント数をカウントするカウンタ、1セグメント内における前記第1のデータのシャフリング方向を決定するカウンタから構成され、前記シャフリング用の前記第2のデータ用のカウンタは、1バンク内における前記第2のデータのセグメント数をカウントするカウンタ、1セグメント内における前記第2のデータのシャフリング方向を決定するカウンタとから構成されているようにすることができる。
前記出力データカウンタ手段は、アドレシング用のカウンタ群から構成され、前記第1のデータのアドレシング用のカウンタは、1パケットサイズのデータセルにおける前記量子化テーブルのインデックスをカウントするカウンタ、1パケットサイズのデータセルにおける前記モーションフラグ数をカウントするカウンタ、1パケットサイズのデータセルにおける前記ダイナミックレンジと前記画素値の最小値の数をカウントするカウンタ、ビットサイズの前記量子化テーブルのインデックスと前記モーションフラグをバイトサイズのデータとして扱うために挿入されるブランクの数をカウントするカウンタ、1パケット内におけるパケット内の前記第2のデータの番号を決定するカウンタ、および1バッファ内におけるパケット数をカウントするカウンタから構成されているようにすることができる。
前記第2のメモリに記憶されたデータは、前記出力データカウンタ手段のカウンタ群に従って、前記アドレス発生手段が発生するアドレスに基づいて読み出され、その読み出しは、読み出しのためのパルスが所定のタイミングで前記セグメント間シャフル手段に入力されると、前記量子化テーブルのインデックスと前記モーションフラグが、バイト単位に集結する処理が行われ、その集結処理が終了されると、パケット内のデータの配列に従って、前記第2のメモリから読み出され、パケット化手段に出力されるようにすることができる。
【0014】
本発明の一側面の情報処理方法は、コンポーネント信号が変換されることにより生成されたYデータ、Uデータ、およびVデータを第1のメモリに記憶させ、その記憶させた前記Yデータ、前記Uデータ、および前記VデータをADRCブロックの形式に並び換え、セグメントの範囲で、かつADRCブロック単位でブロックシャフルし、前記ブロックシャフルされた前記Yデータ、前記Uデータ、および前記Vデータを、ADRC(Adaptive Dynamic Range Coding)方式に基づき符号化し、前記符号化されたデータを、第2のメモリに記憶させ、その記憶と読み出しのアドレスを変えることで、セグメント間シャフルし、前記セグメント間シャフルされたデータを、1パケットに、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックス、およびコードQが含まれるパケットにパケット化するステップを含み、前記セグメント間シャフルは、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックスで構成される第1のデータの要素毎に、3個ずつパラレルに入力され、その第1のデータと交互するタイミングでコードQを含む第2のデータが入力され、それらの入力されたデータがシリアルデータに変換され、アドレス発生手段が発生したアドレスに基づいて、入力されたデータが前記第2のメモリに記憶され、前記第2のメモリに記憶されたデータが、前記アドレス発生手段が発生したアドレスに基づいて、読み出されることで行われる。
【0015】
本発明の一側面の情報処理装置および方法においては、コンポーネント信号が変換されることにより生成されたYデータ、Uデータ、およびVデータが第1のメモリに記憶され、その記憶されたYデータ、Uデータ、およびVデータがADRCブロックの形式に並び換えられ、セグメントの範囲で、かつADRCブロック単位でシャフルされ、シャフルされたYデータ、Uデータ、およびVデータが、ADRC方式に基づき符号化され、符号化されたデータが、第2のメモリに記憶され、その記憶と読み出しのアドレスが変えられることで、セグメント間シャフルがされ、1パケットに、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックス、およびコードQが含まれるパケットにパケット化される。また、セグメント間シャフルは、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックスで構成される第1のデータの要素毎に、3個ずつパラレルに入力され、その第1のデータと交互するタイミングでコードQを含む第2のデータが入力され、それらの入力されたデータがシリアルデータに変換され、アドレス発生手段が発生したアドレスに基づいて、入力されたデータが前記第2のメモリに記憶され、前記第2のメモリに記憶されたデータが、前記アドレス発生手段が発生したアドレスに基づいて、読み出されることで行われる。
【0016】
【発明の実施の形態】
図2は、本発明に係る画像を送受信する画像伝送システムを説明する図である。送信装置1は、入力されたビデオ信号を、本発明に係る方式で圧縮し、符号化し、パケットの形式に変換し、伝送路を介して、受信装置2に送信する。受信装置2は、伝送路を介して送信されたパケットを受信し、パケットに含まれるデータを本発明に係る方式で復号して、伸張し、ビデオ信号として出力する。伝送路において、パケットに含まれるデータは、輻輳などにより、欠落することがある。また、伝送路を構成するATM交換機(図示せず)の処理能力を超えたような場合、パケットそのものが、失われることがある。
【0017】
図3は、本発明に係る送信装置1の一実施の形態の構成を示すブロック図である。Y/C分離クロマデコーダ11は、アナログコンポジットビデオ信号、または輝度信号Yとクロマ信号Cのようなアナログコンポーネント信号(Y/C信号)のいずれか1つの信号が入力されると、その信号を、輝度信号Y、色信号U,Vのようなコンポーネント信号(Y/U/V信号)に変換し、セレクタ12に供給する。セレクタ12は、Y/C分離クロマデコーダ11から供給されたY/U/V信号、または初めからY/U/V信号のフォーマットで入力された信号の一方を選択し、間引き部13に供給する。このY/U/V信号は、例えば、スタンダードデンシティ(SD)、4:2:2、フィールド周波数60Hz、およびインターレースフォーマット形式の信号である。
【0018】
間引き部13は、セレクタ12から供給されたY信号、U信号、およびV信号を、それぞれ後述する方式で間引きして、フォーマット変換回路14に供給する。間引き部13は、前置フィルタ41、A/D変換回路42、間引きフィルタ43、外部メモリ44、UV垂直1/2回路45、および外部メモリ46で構成される。
【0019】
前置フィルタ41は、入力されたY信号、U信号、およびV信号の、それぞれ所定の周波数帯域のみを出力するローパスフィルタである。前置フィルタ41の出力は、A/D変換回路42に供給される。
【0020】
A/D変換回路42は、入力されたY信号、U信号、およびV信号をサンプリングし、それぞれを、例えば、8ビットのデータとする。A/D変換回路42に入力されたアナログY信号は、サンプリングされることにより、水平方向に528画素および垂直方向に480画素を含むYデータとして、間引きフィルタ43に出力される。
【0021】
A/D変換回路42に入力されたアナログU信号は、サンプリングされることにより、水平方向に176画素および垂直方向に480画素を含むUデータとして間引きフィルタ43に出力される。A/D変換回路42に入力されたアナログV信号は、サンプリングされることにより、水平方向に176画素および垂直方向に480画素を含むVデータとして間引きフィルタ43に出力される。
【0022】
従って、A/D変換回路42の出力は、3:1:1のフォーマットの信号となっている。
【0023】
間引きフィルタ43は、入力されたYデータ、Uデータ、およびVデータを一時的に外部メモリ44に記憶させ、一時的に記憶させたYデータ、Uデータ、およびVデータを、それぞれ水平方向に1/2および垂直方向に1/2に間引きし、UV垂直1/2回路45に供給する。
【0024】
UV垂直1/2回路45は、間引きフィルタ43から供給されたYデータ、Uデータ、およびVデータを一時的に外部メモリ46に記憶させ、一時的に記憶させたUデータおよびVデータを、それぞれ垂直方向に1/2に間引きし、Yデータ、Uデータ、およびVデータをフォーマット変換回路14に出力する。
【0025】
従って、間引き部13より出力される信号は、3:0.5:0.5の信号となる。
【0026】
フォーマット変換回路14は、間引き部13から供給されたYデータ、Uデータ、およびVデータを、後述する方式で並び替えて、ブロック構造として、符号化回路15に供給する。
【0027】
符号化回路15は、フォーマット変換回路14から供給されたYデータ、Uデータ、およびVデータを一時的に外部メモリ16に記憶させ、外部メモリ16にに記憶されたYデータ、Uデータ、およびVデータを、記憶と読み出しのアドレスを変えることでシャフリングして、ADRC(Adaptive Dynamic Range Coding)方式で符号化し、シャフリングして、パケット化回路17に出力する。
【0028】
ADRC方式は、入力された画像のデータのダイナミックレンジ(DR)に適応した可変長の符号を出力する可変長符号化方式である。画像のデータは、複数の画素からなるブロック(後述するADRCブロック)に分割され、各ブロックに含まれる画素値の最大値および最小値の差であるダイナミックレンジが検出される。ブロックのダイナミックレンジを基に、各画素値を元の量子化ビット数(例えば、8ビット)よりも少ないビット数で、再量子化する。ダイナミックレンジが小さいほど、少ないビット数で再量子化することができ、量子化ひずみの増大を抑えつつ、画素の画素値の冗長度のみを除去して、更にデータ量を少なくすることが可能である。
【0029】
ADRC方式は、ダイナミックレンジの大きさに関連して量子化ビット数を選択するものである。ダイナミックレンジの大小関係を判断するために、動きなどに対応した閾値が使用される。再量子化のためのビット数として、例えば、2ビット、3ビット、または4ビットのいずれか1つを割り当てるとき、動きまたはダイナミックレンジ毎の量子化テーブルに記憶された閾値T1およびT2(但し、T1<T2)が使用される。受信側でも、同じ量子化テーブルが使用される。
【0030】
ダイナミックレンジが(T1−1)以下であるブロックでは、画素値に対するコードに、2ビットが割り当てられる。ダイナミックレンジがT1以上で(T2−1)以下であるブロックでは、画素値に対するコードに、3ビットが割り当てられる。ダイナミックレンジがT2以上であるブロックでは、画素値に対するコードに、4ビットが割り当てられる。画素値に対するコードに割り当てられたビット数をqとする。
【0031】
符号化は、2フレームを30分割して作成される、88個のADRCブロックを単位(この単位をバッファと称する)として実行される。1つのバッファに対して生成されるコードが、ここでは、16,104ビット以下になるように、閾値T1およびT2を記憶した量子化テーブルは、1つのバッファに対して1つ選択される。選択された量子化テーブルは、TIで示されるテーブルインデックスで指定される。1つのバッファに対して生成されるコードが、16,104ビット以下になるようにすることで、符号化された画像のデータの情報を、8Mbpsとすることができる。
【0032】
ダイナミックレンジが2のq乗より大きいとき、画素値に対するコードQは、
[(L−MIN+0.5)×2q/DR]
で算出される。[]は、小数点以下の切り捨てを表す。Lは、画素値を表し、MINは、ブロック内の画素の画素値の最小値を表す。DRは、ブロックのダイナミックレンジを表す。ダイナミックレンジが2のq乗以下のとき、画素値に対するコードQは、L−MINで算出される。
【0033】
符号化回路15は、符号化されたデータとして、量子化テーブルを指定するテーブルインデックスTI、ダイナミックレンジDR、ブロック内の画素の画素値の最小値MIN、動きを示す動きフラグMF、および画素値に対応するコードQを出力する。テーブルインデックスTI、ダイナミックレンジDR、ブロック内の画素の画素値の最小値MIN、および動きを示す動きフラグMFの長さ(ビット数)は、8ビットで固定である。一方、画素値に対するコードQの長さは、変化する。
【0034】
パケット化回路17は、符号化回路15から供給された、符号化データを、一時的に外部メモリ18に記憶させ、一時的に記憶された符号化データを、1.6Kビット毎に分割し、ヘッダ等を付加してパケット化し、送信回路19に供給する。送信回路19は、パケット化回路17から供給されたパケットを所定の伝送方式で変調して、伝送路を介して送信する。
【0035】
PLL回路20は、画像に同期した基準信号を生成し、コントロール回路21に基準信号を供給する。コントロール回路21は、間引き部13、フォーマット変換回路14、符号化回路15、外部メモリ16、パケット化回路17、外部メモリ18、および送信回路19に、PLL回路20から供給された基準信号に基づく、コントロール信号を供給し、送信装置1全体の動作を制御する。
【0036】
図4を参照して、送信装置1に入力された画像信号が圧縮される過程を説明する。60Hzのフィールド周波数を有する、インターレース方式のY信号は、A/D変換回路42により、1フィールド当たり水平方向に528画素および垂直方向に480画素のYデータに変換される。60Hzのフィールド周波数を有する、インターレース方式のU信号およびV信号は、水平方向に176画素および垂直方向に480画素のUデータおよびVデータにそれぞれ変換される。A/D変換回路42に入力される画像の信号の情報は166Mbpsに相当し、A/D変換回路42から出力される画像のデータの情報は104Mbpsとなり、62%の情報量に圧縮される。
【0037】
60Hzのフィールド周波数を有する、インターレース方式の1フレーム当たり水平方向に528画素および垂直方向に480画素を含むYデータは、間引きフィルタ43により、30Hzのフレーム周波数を有する、プログレッシブ方式の1フレーム当たり水平方向に264画素および垂直方向に240画素を含むデータに圧縮される。60Hzのフィールド周波数を有する、インターレース方式の1フレーム当たり水平方向に176画素および垂直方向に480画素を含むUデータおよびVデータは、間引きフィルタ43により、30Hzのフレーム周波数を有する、プログレッシブ方式の1フレーム当たり水平方向に88画素および垂直方向に240画素を含むデータにそれぞれ圧縮される。
【0038】
1フレーム当たり水平方向に88画素および垂直方向に240画素を含むUデータおよびVデータは、UV垂直1/2回路45により、水平方向に88画素および垂直方向に120画素を含むデータにそれぞれ圧縮される。UV垂直1/2回路45から出力される画像のデータの情報は、21Mbpsとなり、送信装置1に入力される信号の情報と比較し、13%の情報量に圧縮される。
【0039】
このように、間引き部13で間引き処理を行うことで、後段の各回路の構成を簡略化し、伝送路におけるビットレートを、実用的な充分小さい値に設定することができる。
【0040】
30Hzのフレーム周波数を有する、プログレッシブ方式の1フレーム当たりそれぞれ水平方向に88画素および垂直方向に120画素を含むUデータおよびVデータは、フォーマット変換回路14により、88画素×120画素のデータを2つ合わせたデータに変換される。
【0041】
1フレーム当たり水平方向に264画素および垂直方向に240画素を有するYデータ並びに88画素×120画素×2のUデータおよびVデータが符号化回路15により符号化される。符号化された画像のデータの情報は、8Mbpsとなり、送信装置1に入力されるアナログ信号の情報と比較し、5%の情報量に圧縮される。
【0042】
以上のように、送信装置1は、画像信号を圧縮して符号化する。
【0043】
図5は、間引きフィルタ43の構成を示すブロック図である。インターレース方式のYデータは、水平方向のラインに沿って、水平1/2回路61に供給される。水平1/2回路61は、遅延回路(レジスタ)71−1乃至71−N、乗算回路72−1乃至72−N、および加算回路73で構成されている。
【0044】
ハーフバンドフィルタである水平1/2回路61に順次入力されたYデータは、遅延回路71−1乃至71−Nにより、それぞれ水平方向の1画素分だけ遅延され、順次後段に出力される。乗算回路72−1乃至72−Nは、入力されたYデータ(画素)に1/Nを乗じて、加算回路73に出力する。加算回路73は、乗算回路72−1乃至72−Nから供給されたデータを加算し、垂直1/2回路62に出力する。
【0045】
ハーフバンドフィルタである垂直1/2回路62は、ラッチ回路81、フィールドFIFO(Fast In Fast Out)82、加算回路83、およびラッチ回路84から構成されている。水平1/2回路61から出力されたデータは、ラッチ回路81に供給される。ラッチ回路81は、クロック信号が入力されたとき、入力されたデータをラッチし、ラッチしたデータを出力する。
【0046】
水平1/2回路61の動作を図6を参照して説明する。フレームの水平方向に順次入力された、Yデータ(図6に白い丸印で示す画素)は、遅延回路71−1乃至71−Nにより保持され、乗算回路72−1乃至72−Nによりそれぞれ係数が乗算される。乗算回路72−1乃至72−Nの出力は、加算回路73で加算された後、ラッチ回路81に出力される。ラッチ回路81には、図6の黒い4角形に対応するタイミングで、ラッチを指示するクロック信号が入力される。図6の例では、水平方向に、2画素のデータが転送される度に1つのクロックがラッチ回路81に入力されるので、例えば、N=2で、各係数の値が1/2の場合、隣接する2個の画素の平均値が、図6の黒い4角形で示すタイミングでラッチ回路81にラッチされる。このように、ラッチ回路81がラッチする画素の数は、間引きフィルタ43に入力されたデータの画素の数の1/2となる。
【0047】
ラッチ回路81によりラッチされた値は、フィールドFIFO82および加算回路83に供給される。フィールドFIFO82は、ラッチ回路81から供給された水平方向に1/2に間引かれた第1フィールドの画素のデータを記憶して、1フィールド分遅延させ、加算回路83に出力する。加算回路83は、ラッチ回路81およびフィールドFIFO82から供給されたデータを加算して、ラッチ回路84に供給する。ラッチ回路84は、イネーブル信号が入力されたとき、入力されたデータをラッチする。
【0048】
垂直1/2回路62の動作を図7を参照して説明する。第1フィールドの任意の画素(図7に示す第1フィールド上の黒い4角形の画素)のYデータ、および第1フィールドの画素と画面の水平方向に同一の位置で、1つ下のラインの第2フィールドの画素(図7に示す、第1フィールド上の黒い4角形の画素の右下に位置する第2フィールド上の黒い4角形の画素)のデータが、加算回路83により加算された後、ラッチ回路84に出力される。従って、ラッチ回路84には、第1フィールドと第2フィールドの画素の平均値(図7に白い4角形で示す画素に相当する)がラッチされる。
【0049】
このように、ラッチ回路84の出力は、ラッチ回路81から出力された画素のデータに対して、第1フィールドおよび第2フィールドの間で、1/2に間引きされ、次に、第3フィールドおよび第4フィールドの間で、1/2に間引きされ、30Hzのフレーム周波数を有する、プログレッシブ方式のYデータとなる。
【0050】
UデータおよびVデータも、同様に水平方向と垂直方向に1/2に間引きされ、30Hzのフレーム周波数を有する、プログレッシブ方式のフォーマットのデータとなる。
【0051】
以上のように、間引きフィルタ43から出力される画像のYデータ、Uデータ、およびVデータは、それぞれ間引きされた30Hzのフレーム周波数を有する、プログレッシブ方式のフォーマットのデータとなる。
【0052】
次に、UV垂直1/2回路45について説明する。図8は、UV垂直1/2回路45の構成を示すブロック図である。UV垂直1/2回路45には、間引きフィルタ43より、間引きされた30Hzのフレーム周波数を有する、プログレッシブ方式のUデータおよびVデータが入力される。入力されたデータは、ラインFIFO91−1乃至91−6により、1ライン分ずつ、順次遅延され、後段に供給される。乗算回路92−1は、入力されたデータに係数を乗じて、加算回路93に出力する。乗算回路92−2乃至92−7は、それぞれラインFIFO91−2乃至91−6より入力されたデータに、係数を乗算して加算回路93に出力する。
【0053】
加算回路93は、乗算回路92−1乃至92−7から供給されたデータを加算して、ラッチ回路94に供給する。ラッチ回路94は、クロック信号が入力されたとき、入力されたデータをラッチする。
【0054】
UV垂直1/2回路45の動作を図9を参照して説明する。連続する7本のライン上の、画面の水平方向に同一の位置の画素(図9に白い4角形で示す画素)のデータが乗算回路92−1乃至92−7に入力される。乗算回路92−1乃至92−7は、入力されたデータに、それぞれ係数を乗算する。加算回路93は乗算回路92−1乃至92−7の出力を加算して、出力する。ラッチ回路94には、2ラインに1回のタイミング(図9に黒い丸印で示すタイミング)で、ラッチ信号が入力される。このように、UV垂直1/2回路45は、入力されたUデータおよびVデータのラインの本数を1/2に間引いて、出力する。
【0055】
なお、UV垂直1/2回路45は、Yデータを通過させる。
【0056】
次に、符号化回路15について説明する。図10は、符号化回路15の構成を示すブロック図である。コントロール回路21から供給されるコントロール信号は、タイミング信号生成回路101に入力される。タイミング信号生成回路101は、入力されたコントロール信号を基に、タイミング信号を生成し、ブロックシャフル回路102、ADRC符号化回路103、およびセグメント間シャフル回路104に供給する。
【0057】
フォーマット変換回路14により、変換されたYデータ、Uデータ、およびVデータは、ブロックシャフル回路102に入力される。ブロックシャフル回路102は、供給されたYデータ、Uデータ、およびVデータを外部メモリ16の所定の位置に一時的に記憶させる。ブロックシャフル回路102は、外部メモリ16に記憶させたYデータ、Uデータ、およびVデータを、後述するADRCブロックの形式に並び換え、後述するセグメントの範囲で、かつADRCブロック単位でシャフルし、ADRC符号化回路103に供給する。
【0058】
ADRC符号化回路103は、ブロックシャフル回路102から供給されたYデータ、Uデータ、およびVデータを、ADRC方式に基づき符号化し、セグメント間シャフル回路104に供給する。セグメント間シャフル回路104は、供給されたADRCで符号化されたデータを外部メモリ22の所定の位置に、一時的に記憶させる。
【0059】
セグメント間シャフル回路104は、外部メモリ22に記憶させたADRCデータを、記憶と読み出しのアドレスを変えることで、シャフルする。セグメント間シャフル回路104におけるシャフルは、伝送路におけるデータの欠落が発生しても、受信装置2が、ダイナミックレンジDR、最小値MIN、および動きフラグMFいずれかを受信できる可能性を高め、また、伝送路におけるデータの欠落が発生しても、受信装置2が、各コードQを分けて抽出しやすくすることを目的とする。
【0060】
図11を参照して、符号化回路15およびパケット化回路17の処理の単位を説明する。あるフレーム0と次のフレーム1から、後述する方式により、それぞれ画素を選択して、1320個の偶数セグメントのADRCブロック(4×16画素から成る)と1320個の奇数セグメントのADRCブロック(4×16画素から成る)が生成される。生成されたADRCブロックから、ブロックシャフル回路102により、88個ずつのADRCブロックが選択される。ADRCブロックは、選択された88個を単位として、ADRC符号化回路103により、ADRCで、固定長のデータ(FL)である、ダイナミックレンジDR、最小値MIN、動きフラグMF、およびテーブルインデックスTI並びに可変長のデータ(VL)であるコードQに符号化される。
【0061】
ADRC符号化回路103から出力された88個のADRCブロックに対応する符号化されたデータ(以下、バッファと称する)は、セグメント間シャフル回路104により、5個ずつにまとめられる(以下、セグメントと称する)。偶数セグメントに対応する3個のセグメント(図中、セグメント0、セグメント2、およびセグメント4と示す)は、セグメント間シャフル回路104により、セグメント間でシャフルされる。奇数セグメントに対応する3個のセグメント(図中、セグメント1、セグメント3、およびセグメント5と示す)は、セグメント間シャフル回路104により、セグメント間でシャフルされる。
【0062】
セグメント間でシャフルされたセグメントは、セグメント0、セグメント1、セグメント2、セグメント3、セグメント4、およびセグメント5の順に並べられる。
【0063】
パケット化回路17は、セグメント0、セグメント1、セグメント2、セグメント3、セグメント4、およびセグメント5の順に並べられたセグメントに格納されている符号化されたデータを、8個のADRCブロックに対応するデータ(ダイナミックレンジDR、最小値MIN、動きフラグMF、テーブルインデックスTI、およびコードQ)毎にパケットに格納する。
【0064】
図12乃至図19を参照して、ブロックシャフル回路102の動作を説明する。図12は、ADRCブロックを説明する図である。各フレームから水平8画素×垂直8画素の隣り合う64画素のブロックを選び出し、ブロックの中で最も左で且つ最も上に位置する画素(図中に0−1または1−1と示された画素)、およびこれを基準とし、その画素から水平に2画素だけ移動した位置にある画素(図中に0−3または1−3と示された画素)、その画素から垂直に2画素だけ移動した位置にある画素(図中に0−17または1−17と示された画素)、またはその画素から水平に1画素かつ垂直に1画素だけ移動した位置にある画素(図中に0−10または1−10と示された画素)を偶数画素と称する。さらに、これらの画素を基準として、同様の選択を繰り返し、選択された画素を、偶数画素とする。
【0065】
また、各フレームの残りの画素は、奇数画素とする。
【0066】
図12に示すように、偶数フレーム(フレーム0)の8×8画素のブロックi2含まれる偶数画素(4×8画素)と、奇数フレーム(フレーム1)の8×8画素のブロックに含まれる偶数画素(4×8画素)を集めたものが、偶数セグメントのADRCブロックとされる。同時に、偶数フレーム(フレーム0)の8×8画素のブロックに含まれる奇数画素(4×8画素)と、奇数フレーム(フレーム1)の8×8画素のブロックに含まれる奇数画素(4×8画素)を集めたものが、奇数セグメントのADRCブロックとされる。ADRCブロックは、2つのフレームの、もとのフレーム上で1つおきの画素から構成される。偶数セグメントのADRCブロックの画素の、もとのフレーム上で隣に位置する画素は、対応する奇数セグメントのADRCブロックを構成する。
【0067】
図13乃至図15は、フレーム内の画素とADRCブロックとの関係を示す図である。図13に示すように、フレーム0の画素は、水平8画素×垂直8画素の64画素のブロック毎に分割される。同様に、図14に示すように、フレーム1(フレーム0の次のフレーム)の画素は、水平8画素×垂直8画素の64画素のブロック毎に分割される。フレーム0のブロックの中で最も左で且つ最も上に位置する64画素のブロック(図13においてA1と表示された64画素のブロック)および、フレーム1のブロックの中で最も左で且つ最も上に位置する64画素のブロック(図14においてA1と表示された64画素のブロック)の偶数画素により、構成された偶数セグメントのADRCブロックは、図15に示すように、セグメント0として、最も左、且つ最も上に配置される。
【0068】
図13のA1と表示された64画素のブロック、および図14のA1と表示された64画素のブロックの奇数画素により構成された奇数セグメントのADRCブロックは、図15に示すように、セグメント3として、セグメント0の偶数セグメントのADRCブロックの図中右隣に配置される。
【0069】
図13のA2と表示された64画素のブロック、および図14のA2と表示された64画素のブロックの偶数画素より構成された偶数セグメントのADRCブロックは、図15に示すようにセグメント0として、図13のA1と表示された64画素のブロックおよび図14のA1と表示された64画素のブロックの奇数画素により構成された、セグメント3のADRCブロックの図中右隣に配置される。図13のA2と表示された64画素のブロックおよび図14のA2と表示された64画素のブロックの奇数画素により構成された奇数セグメントのADRCブロックは、図15に示すように、セグメント3として、図13のA2と表示された64画素のブロックおよび図14のA2と表示された64画素のブロックの偶数画素により構成された、セグメント0のADRCブロックの図中右隣に配置される。
【0070】
図13のB1と表示された64画素のブロックおよび図14のB1と表示された64画素のブロックの偶数画素により構成された偶数セグメントのADRCブロックは、図15に示すように、セグメント4として、図13のA1と表示された64画素のブロックおよび図14のA1と表示された64画素のブロックの偶数画素により構成された、セグメント0のADRCブロックの図中下側に配置される。図13のB1と表示された64画素のブロックおよび図14のB1と表示された64画素のブロックの奇数画素により構成された奇数セグメントのADRCブロックは、図15に示すように、セグメント1として、図13のA1と表示された64画素のブロックおよび図14のA1と表示された64画素のブロックの奇数画素により構成された、セグメント3のADRCブロックの図中下側(セグメント4のADRCブロックの右隣)に配置される。
【0071】
図13のB2と表示された64画素のブロックおよび図14のB2と表示された64画素のブロックの偶数画素により構成された偶数セグメントのADRCブロックは、図14に示すようにセグメント4として、図13のB1と表示された64画素のブロックおよび図14のB1と表示された64画素のブロックの奇数画素により構成された、セグメント1のADRCブロックの図中右隣に配置される。図13のB2と表示された64画素のブロックおよび図14のB2と表示された64画素のブロックの奇数画素により構成された奇数セグメントのADRCブロックは、図14に示すようにセグメント1として、図13のB2と表示された64画素のブロックおよび図14のB2と表示された64画素のブロックの偶数画素により構成された偶数セグメントのADRCブロックの図中右隣に配置される。
【0072】
図13のC1と表示された64画素のブロックおよび図14のC1と表示された64画素のブロックの偶数画素により構成された偶数セグメントのADRCブロックは、図15に示すようにセグメント2として、図13のB1と表示された64画素のブロックおよび図14のB1と表示された64画素のブロックの偶数画素により構成された、セグメント4のADRCブロックの図中下側に配置される。図13のC1と表示された64画素のブロックおよび図14のC1と表示された64画素のブロックの奇数画素により構成された奇数セグメントのADRCブロックは、図15に示すようにセグメント5として、図13のB1と表示された64画素のブロックおよび図14のB1と表示された64画素のブロックの奇数画素により構成された、セグメント1のADRCブロックの図中下側(セグメント2のADRCブロックの右隣)に配置される。
【0073】
図13のC2と表示された64画素のブロックおよび図14のC2と表示された64画素のブロックの偶数画素により構成された偶数セグメントのADRCブロックは、図15に示すようにセグメント2として、図13のC1と表示された64画素のブロックおよび図14のC1と表示された64画素のブロックの奇数画素により構成された、セグメント5のADRCブロックの図中右隣に配置される。図13のC2と表示された64画素のブロックおよび図14のC2と表示された64画素のブロックの奇数画素により構成された奇数セグメントのADRCブロックは、図15に示すようにセグメント5として、図13のC2と表示された64画素のブロックおよび図14のC2と表示された64画素のブロックの偶数画素により構成された偶数セグメントのADRCブロックの図中の右隣に配置される。
【0074】
以上の手続きを、各フレームを構成する33×10個の各ブロック(264×240画素)について繰り返すことにより、2つのフレームのYデータから、図16(A)に示すように、水平方向に66個、垂直方向に30個並べられたADRCブロックの集合が生成される。図16(B)に示すように、Yデータから生成されたADRCブロックは、シャフルされて、セグメントを構成する。
【0075】
88×120画素のUデータおよびVデータについても同様の処理を行うことにより、図17(A)に示すように、水平方向に22個、垂直方向に15個並べられたADRCブロックの集合が生成される。Yデータの場合と同様に、図17(B)に示すように、UデータおよびVデータから生成されたADRCブロックは、ブロックシャフルされて、セグメントを構成する。
【0076】
各ADRCブロック内で、偶数フレームと奇数フレームの画面上で同一位置にある画素同士(例えば、図12中の0−1と示された画素と1−1と示された画素等)で画素値の差分の絶対値をとり、その差分の絶対値のうち最大値が閾値Th1に満たない場合は、そのADRCブロックは静止画とみなされる。
【0077】
差分の絶対値のうち、最大の値が閾値Th2(Th1<Th2)を越えた場合には、そのADRCブロックは動画とみなされる。
【0078】
静止画のADRCブロックでは、偶数フレームと奇数フレームの画面上で同一位置にある画素同士の画素値の平均をとり、その32個の平均値を新たにADRCブロックとして置き代え、そのADRCブロックに付される動きフラグMFを0とする。
【0079】
動画のADRCブロックでは、偶数フレームと奇数フレームから集めた64画素をそのままADRCブロックとして、そのADRCブロックに付される動きフラグMFを1とする。
【0080】
次に、セグメント毎に、ADRCブロック単位で行われるシャフルについて説明する。0の番号が付されたYデータのADRCブロックから構成されるセグメントにおいて、そのADRCブロックに通し番号を付すると、図18(A)に示すように、y0乃至y329の番号が、ADRCブロックに付される。ADRCブロックをシャフルすると、YデータのADRCブロックが、図18(B)に示されるように配置される。
【0081】
同様に、0の番号が付されたUデータのADRCブロックから構成されるセグメントにおいて、そのADRCブロックに通し番号を付すると、図18(C)に示すように、u0乃至u54の番号が、ADRCブロックに付される。UデータのADRCブロックは、図18(D)に示されるように、通し番号の逆の順に並び替えられる。
【0082】
0の番号が付されたVデータのADRCブロックから構成されるセグメントにおいて、そのADRCブロックに通し番号を付すると、図18(E)に示すように、v0乃至v54の番号が、ADRCブロックに付される。VデータのADRCブロックは、図18(F)に示されるように、通し番号の逆の順に並び替えられる。
【0083】
次に、図19に示されるように、YデータのADRCブロック、UデータのADRCブロック、およびVデータのADRCブロックが、シャフルされる。3つのYデータのADRCブロックの後ろに、1つのUデータのADRCブロックが配置され、その後ろに、また、3つのYデータのADRCブロックが配置され、その後ろに、1つのVデータのADRCブロックが配置される。この配置が繰り返される。例えば、セグメント0には、y0の通し番号が付されたADRCブロック、y221の通し番号が付されたADRCブロック、y112の通し番号が付されたADRCブロック、u54の通し番号が付されたADRCブロック、y3の通し番号が付されたADRCブロック、y224の通し番号が付されたADRCブロック、y115の通し番号が付されたADRCブロック、v54の通し番号が付されたADRCブロック、およびy6の通し番号が付されたADRCブロックなどの順にADRCブロックが配置される。
【0084】
セグメント1乃至セグメント5においても、同様に、ADRCブロックがシャフルされる。
【0085】
以上のように、画素のデータは、ブロックシャフル回路102により、ADRCブロック毎にシャフルされ、シャフルされたADRCブロックを基に、ADRC符号化回路103で符号化される。ADRCブロックが適切にシャフルされることにより、通信エラーにより欠落した画素が分散され、再生される画像において欠落した画素を認識しにくくすることができる。
【0086】
次に、図20を参照して、ADRC符号化回路103の構成を説明する。ブロックシャフル回路102によりシャフルされた画像は、ADRCブロックとして、遅延回路161、動き特徴量算出回路162、DR算出回路163、および遅延回路166に供給される。
【0087】
遅延回路161は、2フレームブロック(4×16画素から成るADRCブロック)を動き特徴量算出回路162の処理時間に対応する時間だけ遅延させて、情報量制御回路164に出力する。動き特徴量算出回路162は、ADRCブロック毎に、フレーム間差分の絶対値の最大値である動き特徴量を算出して、情報量制御回路164に供給する。DR算出回路163は、ADRCブロック毎に、静止画とみなされた場合のダイナミックレンジDRおよび動画とみなされた場合のダイナミックレンジDRを算出して、情報量制御回路164に供給する。
【0088】
情報量制御回路164は、遅延回路161から供給された2フレームブロック、動き特徴量算出回路162から供給された動き特徴量、DR算出回路163から供給された静止画とみなされた場合のダイナミックレンジDRおよび動画とみなされた場合のダイナミックレンジDR、並びに閾値テーブル165から供給された閾値Th1およびTh2並びに閾値T1およびT2のセットを基に、閾値Th1およびTh2から成るMF選択閾値を選択して、静動判定回路169に出力する。
【0089】
情報量制御回路164は、2フレームブロック、動き特徴量、静止画とみなされた場合のダイナミックレンジDRおよび動画とみなされた場合のダイナミックレンジDR、並びに閾値テーブル165から供給された閾値Th1およびTh2並びに閾値T1およびT2のセットを基に、Qビット選択閾値を選択して、ADRCエンコーダ171に出力する。
【0090】
例えば、動き特徴量が4で、静止画とみなされた場合のダイナミックレンジDRが14で、動画とみなされた場合のダイナミックレンジDRが15である場合、テーブルインデックスが0の閾値T1が6で、閾値T2が12で、閾値Th1が3で、閾値Th2が3で、テーブルインデックスが1の閾値T1が13で、閾値T2が40で、閾値Th1が5で、閾値Th2が5であるときについて説明する。
【0091】
情報量制御回路164は、テーブルインデックスが0の閾値のセットに対して、動き特徴量が閾値Th2より大きいので、動画と判定する。動画とみなされた場合のダイナミックレンジDRが閾値T2より大きいので、このADRCブロックのqは4となり、情報量制御回路164は、コードQが(16*4)*4より256ビットであることを求める。
【0092】
同様に、情報量制御回路164は、テーブルインデックスが1の閾値のセットに対して、動き特徴量が閾値Th1より小さいので、静止画と判定する。静止画とみなされた場合のダイナミックレンジDRが閾値T1より大きく、閾値T2より小さいので、このADRCブロックのqは3となり、情報量制御回路164は、コードQが(8*4)*3より96ビットであることを求める。
【0093】
このように、閾値のセットには、テーブルインデックスが大きくなると、情報量が減少するようにそれぞれの閾値が設定されている。情報量制御回路164は、1つのバッファに対して生成されるコードQが、16,104ビット以下で、最も大きい情報量のテーブルインデックスをテーブルインデックスTIとして選択して、遅延回路173に出力する。
【0094】
情報量制御回路164は、テーブルインデックスに対応するコードQのビット数を並列演算しても、テーブルインデックスの大きい(または小さい)側から逐次演算するようにしてもよい。
【0095】
図21および図22を参照して、情報量制御回路164の構成の例を説明する。図21は、情報量制御回路164の前段部の構成を示す図であり、図22は、情報量制御回路164の後段部の構成を示す図である。
【0096】
図21に示すように、情報量制御回路164の前段部には、ダイナミックレンジDRの閾値の数に対応した数分の比較回路181−1および181−2と、加算器182−1および182−2と、レジスタ183−1および183−2とが設けられている。比較回路181−1および181−2のそれぞれの一方の入力端子に(0乃至255)までの数値を取りうるダイナミックレンジDRが供給される。
【0097】
また、図21において、閾値テーブル165から、例えば、閾値T1および閾値T2が読み出され、比較回路181−1および181−2の他方の入力端子のそれぞれに供給される。具体的には、比較回路181−1の他方の入力端子に閾値T1が供給され、比較回路181−2の他方の入力端子には閾値T2が供給される。
【0098】
比較回路181−1および181−2のそれぞれには、入力端子5からのダイナミックレンジDRが各閾値以上の場合に、「1」の出力を発生する。比較回路181−1および181−2の比較出力がそれぞれに接続された加算器182−1または182−2のいずれかの一方の入力端子に供給される。加算器182−1または182−2の他方の入力端子には、レジスタ183−1および183−2を介して自らの加算出力が供給されるように構成されている。
【0099】
従って、加算器182−1によって(T1≦DR≦255)の度数の積算値が算出され、得られたデータがレジスタ183−1に保持される。また、加算器182−2によって(T2≦DR≦255)の度数の積算値が算出され、得られたデータがレジスタ183−2に保持される。
【0100】
レジスタ183−1および183−2のそれぞれに保持されている発生度数データのそれぞれが取り出され、図22に示すように、加算器191に供給される。更に、加算器191には、予め情報量制御回路164に記憶されている度数データが供給される。加算器191において、(T1≦DR≦255)の発生度数データと、(T2≦DR≦255)の発生度数データと、予め記憶されている度数データが加算され、総量が算出される。
【0101】
(T1≦DR≦T2−1)の発生度数値を(S3)とし、(T2≦DR≦255)の発生度数値を(S4)とする。(T2≦DR≦255)の発生度数値は、(S4+S3+S2)(qが4ビットであるコードQに対応する)となり、(T1≦DR≦255)の発生度数値は、(S3+S2)(qが3ビットであるコードQに対応する)となる。(S2)(qが2ビットであるコードQに対応する)は、全てのADRCブロックに対応して発生するので、予め、情報量制御回路164に記憶しておくことができる。これらを加算器191によって加算すると、(S3+2*S3+3*S2)の出力が得られる。この出力は、割り当てビットを乗算して全加算した場合と等しい総量である。
【0102】
加算器191において算出された総量がレジスタ192を介して比較回路193の一方の入力端子に供給される。比較回路193の他方の入力端子12には、バッファ最大値が供給されており、総量がバッファ最大値と比較される。比較回路193の比較出力を基に、総量がバッファ最大値以下となるような閾値が決定される。つまり、閾値テーブル165には、予め発生データの総量が単純増加もしくは単純減少するように複数組の閾値が格納されており、総量が目標以内に収まるように閾値が選定される。
【0103】
情報量制御回路164は、比較回路193の比較出力を基に、MF選択閾値、Qビット選択閾値、およびテーブルインデックスTIを選択して、出力する。
【0104】
図20に戻り、遅延回路166は、2フレームブロック(4×16画素から成るADRCブロック)を遅延回路161および情報量制御回路164の処理時間に対応する時間だけ遅延させて、静止ブロック生成回路167、遅延回路168および静動判定回路169に出力する。静止ブロック生成回路167は、2フレームブロック(4×16画素から成るADRCブロック)から、偶数フレームと奇数フレームの画面上で同一位置にある画素同士の画素値の平均をとり、その32個の平均値を新たにADRCブロックとして置き代え、1フレームブロック(4×8画素から成るADRCブロック)として選択回路170に供給する。
【0105】
遅延回路168は、2フレームブロック(4×16画素から成るADRCブロック)を静止ブロック生成回路167の処理時間に対応する時間だけ遅延させて、選択回路170に供給する。
【0106】
静動判定回路169は、2フレームブロック(4×16画素から成るADRCブロック)並びに閾値Th1およびTh2から成るMF選択閾値を基に、そのADRCブロックに付される動きフラグMFを生成して、選択回路170および遅延回路172に供給する。
【0107】
選択回路170は、動きフラグMFが1のとき、すなわち、ADRCブロックが動画に対応するとき、遅延回路168から供給された2フレームブロックをADRCエンコーダ171に供給し、動きフラグMFが0のとき、すなわち、ADRCブロックが静止画に対応するとき、静止ブロック生成回路167から供給された1フレームブロックをADRCエンコーダ171に供給する。
【0108】
ADRCエンコーダ171は、情報量制御回路164から供給されたQビット選択閾値を基に、選択回路170から供給された2フレームブロックまたは1フレームブロックを符号化して、ダイナミックレンジDR、最小値MIN、q、およびコードQを出力する。
【0109】
遅延回路172は、選択回路170の処理時間およびADRCエンコーダ171の処理時間に対応させて、静動判定回路169から供給された動きフラグMFを遅延して、出力する。
【0110】
遅延回路173は、遅延回路168の遅延時間、選択回路170の処理時間、およびADRCエンコーダ171の処理時間に対応させて、情報量制御回路164から供給されたテーブルインデックスTIを遅延して、出力する。
【0111】
このように、ADRC符号化回路103は、ADRCブロック毎に、ダイナミックレンジDR、画素値の最小値MIN、動きフラグMF、およびコードQを生成し、量子化テーブルのインデックスTIと共に、セグメント間シャフル回路104に供給する。
【0112】
図23は、セグメント間シャフル回路104のシャフルの仕方を説明する図である。図23に示すように、シャフルの仕方にはシャフル0乃至2の3通り存在し、シャフル0は、シャフルを行わないシャフルである。シャフル1は、セグメント0(セグメント1)のデータをセグメント4(セグメント5)に、セグメント2(セグメント3)のデータをセグメント0(セグメント1)に、セグメント4(セグメント5)のデータをセグメント2(セグメント3)に、それぞれシャフル(入れ替え)する。
【0113】
同様に、シャフル2は、セグメント0(セグメント1)のデータをセグメント2(セグメント3)に、セグメント2(セグメント3)のデータをセグメント4(セグメント5)に、セグメント4(セグメント5)のデータをセグメント0(セグメント1)に、それぞれシャフルする。
【0114】
図24は、セグメント0、セグメント3、およびセグメント5において行われるダイナミックレンジDRのシャフルについて説明する図である。1セグメントは、5バッファから構成され、1バッファは88個のADRCブロックを含むため、1セグメントには、440個のDRが含まれる。各セグメント内に存在するDRに番号1乃至440を順次付し、図24では、例えば、セグメント1の番号1のDRは、DR1−1というように記述してある。
【0115】
各セグメントの番号1のDRに対しては、シャフル0が用いられ(すなわち、入れ替えはされない)、番号2のDRに対しては、シャフル1が用いられ、番号3のDRに対しては、シャフル2が用いられ、番号4のDRに対しては、シャフル0が用いられるというように、シャフル0、シャフル1、シャフル2の順でシャフルが行われる。
【0116】
同様に、コードQに対してもシャフルが行われる。また、画素値の最小値であるMINに対しては、図25に示したように、シャフル1、シャフル2、シャフル0の順で行われシャフルが行われる。さらに、動きフラグであるMFに対しては、図26に示すように、シャフル2、シャフル0、シャフル1の順で行われる。
【0117】
次に、量子化テーブルのインデックスTIのシャフルについて説明する。セグメント0に格納されているTIは、セグメント3にも格納され、セグメント3に格納されているTIは、セグメント0にも格納される。すなわち、セグメント0とセグメント3は、自己のTIと対となっている相手のTIとの両方を格納する。同様に、セグメント1とセグメント4、セグメント3とセグメント5は、それぞれ自己のTIと対となっている相手のTIとの両方を格納する。
【0118】
このように、ダイナミックレンジDR、画素値の最小値MIN、および動きフラグMFがシャフルされることにより、通信エラーが発生して、いずれかのデータを含んだパケットが欠落しても、受信装置2は、所定のADRCブロックを復号するとき、受信することができた他のデータを基に、欠落したデータをリカバリすることができる。また、コードQがシャフルされることにより、通信エラーが発生して、コードQを含んだパケットが欠落しても、欠落したコードQに対応する画素が分散され、受信装置2は、コードQの切り出しがしやすくなり、また、所定のADRCブロックを復号するとき、復号できた画素値を基に、欠落した画素値の創造が容易になる。
【0119】
このように、セグメントの間でデータをシャフルすることにより、通信装置2は、データのリカバリ、および欠落画素の創造が容易になり、伝送路においてパケットが欠落しても、再生する画像の質を維持することができる。
【0120】
符号化回路15のセグメント間シャフル回路104から出力されたデータは、パケット化回路17に入力され、パケットにされる。図27に、パケットの構成を示す。図27に示したパケット構成は、201バイトで構成され、その内、DRがA×8Mビット、MINがB×8Mビット、MFがC×8Mビット、TIがD×(8M/D)ビット、およびコードQ(VL-Data)が8×Nビットで構成されている。このサイズの単位のパケットを複数用いてデータを格納する。
【0121】
このように、ダイナミックレンジDR、画素値の最小値MIN、動きフラグMF、テーブルインデックスTI、およびコードQが8の倍数となるように構成することにより、上述したシャフリングを行うときに、各々のデータのビット数サイズによらず、統一のアーキテクチャで、かつ、バイト単位で扱うのに適する。
上述した説明、および後述する説明においては、図27に示したパケット構成を用いた場合である。
【0122】
上述したようなシャフリングを行うセグメント間シャフル回路104の構成を図28に示す。ADRC符号化回路103から出力されたデータは、セグメント間シャフル回路104のデータ選択部211に入力される。データ選択部211は、FLデータの各要素毎に、3個(ブロック)ずつパラレルに入力され、FLデータと交互するタイミングでVLデータが入力される。データ選択部211は、入力されたデータをシリアルデータに変換し、所定のデータを入出力コントローラ213に出力する。入出力コントローラ213は、アドレス発生部214が発生したアドレスに基づいて、入力されたデータを記憶部215に記憶させる。記憶部215に記憶されたデータは、出力データカウンタ部216から供給されるデータに従って、アドレス発生部214が発生したアドレスに基づいて、読み出され、パケット化回路17(図3)に出力される。
【0123】
入力データカウンタ部212は、データ選択部211に入力されたデータの種類の識別の為の情報、記憶部215に記憶する際のアドレシングやシャフリングする方向などを示すカウンタ群から構成されている。そのカウンタ群の一例を図29に示す。カウンタ群にはアドレシング用とシャフリング用とがある。アドレシング用のFLデータ用のカウンタとしては、1バッファ内におけるFLデータのブロック数をカウントする(パケット内のFLデータのアドレスを決定する)カウンタ(flblk)、1セグメント内におけるflデータのパケットの数をカウントする(セグメント内のパケット番号を決定する)カウンタ(flpkt)、および1バンク内におけるflデータのトータルのパケット数をカウントする(バンク内のパケットのアドレスを決定する)カウンタ(flttlpkt)から構成されている。
【0124】
アドレシング用のVLデータ用のカウンタ群としては、1バッファ内におけるVLデータのパケット数をカウントする(バッファ内のパケット番号を決定する)カウンタ(vlpkt)、1バンク内のVLデータのトータルのパケット数をカウントする(バンク内のパケットのアドレスを決定する)カウンタ(vlttlpkt)、1セグメント内のVLデータのバッファ数をカウントする(セグメント内のバッファ番号を決定する)カウンタ(vlbuf)、および任意の順番のVLデータをパケット当たりのVLデータのバイト数Nで除算したときの余りをカウントする(パケット内のVLデータの記憶部215(図28)の記憶位置を決定する)カウンタ(vlmodN)から構成されている。
【0125】
シャフリング用のカウンタは、FLデータ用として、1バンク内におけるFLデータのセグメント数をカウントする(FLデータのセグメント番号を決定する)カウンタ(flseg)、1セグメント内におけるFLデータのシャフリング方向を決定するカウンタ(flshf)、VLデータ用として、1バンク内におけるVLデータのセグメント数をカウントする(バンク内のセグメント番号を決定する)カウンタ(vlseg)、1セグメント内におけるVLデータのシャフリング方向を決定するカウンタ(vlshf)とから構成されている。
【0126】
同様に、出力データカウンタ部216は、図30に示すような、アドレシング用のカウンタ群から構成されている。FLデータのアドレシング用のカウンタとして、1パケットサイズのデータセルにおけるTIデータをカウントする(TIデータをバイト単位にデータに集成するための)カウンタ(ticnt)、1パケットサイズのデータセルにおけるMFデータ数をカウントする(MFデータをバイト単位のデータに集成するための)カウンタ(mfcnt)、1パケットサイズのデータセルにおけるDRデータとMINデータの数をカウントする(パケット内のDRデータとMINデータの番号を決定する)カウンタ(dmcnt)、ビットサイズのTIデータやMFデータをバイトサイズのデータとして扱うために挿入されるブランクの数をカウントするカウンタ(tmcnt)、1パケット内におけるパケット内のVLデータの番号を決定するカウンタ(vlcntN)、および1バッファ内におけるパケット数をカウントする(バッファ内のパケット番号を決定する)カウンタ(pktcnt)から構成されている。
【0127】
セグメント間シャフリング回路104に入力されたデータは、上述した入力データカウンタ部212のカウンタ群に従って、アドレス発生部214が発生したアドレスに基づいて、記憶部215に記憶される。例えば、2フレーム単位の画像データのうちの最初のDRデータが入力された場合、そのDRデータのアドレス用のカウンタ番号として、flblkによりブロック番号が0、flttlpktとflpktによりパケット番号が0と、それぞれ決定され、アドレス発生部214に出力される。
また、シャフル用のカウンタ番号として、flsegによりセグメント番号が0、flmodにより0と、それぞれ決定され、アドレス発生部214に出力される。
【0128】
アドレス発生部214は、入力されたカウンタ番号のうち、flshfのカウンタ番号によりシャフル0(図23)と決定し、セグメント番号(flsegのカウンタ番号)を0と決定することにより、入力されたDRデータのシャフリング先(いまの場合、シャフル0なので、シャフルされず、シャフリング先としてはセグメント0)を決定する。
【0129】
次に、2フレーム単位の画像データのうち、I番目のVLデータが入力された場合、そのVLデータのアドレス用のカウンタ番号として、vlmodNによりパケット内のVLデータの番号がI/Nの剰余−1(番号は0から付されるため)、vlttlpktによりトータルのパケット数を表す値がI/Nの商−1、vlpktによりパケット番号が(I/N)/(バッファ内のパケット数)−1、およびvlbufによりバッファ番号が、それぞれ決定され、アドレス発生部214に出力される。また、シャフル用のカウンタ番号として、vlsegによりセグメント番号と、vlshfよりシャフリング方向が、それぞれ決定され、アドレス発生部214に出力される。
【0130】
アドレス発生部214は、入力されたカウンタ番号のうち、vlshfのカウンタ番号よりシャフル方向とセグメント番号を決定することにより、シャフリング先のセグメント番号を決定する。このようにして決定されたシャフリング先のデータとアドレス用のカウンタ値に基づいて、アドレスが決定される。
【0131】
上述したように、アドレス発生部214が発生するアドレスに従って、記憶部215に記憶されたデータは、出力データカウンタ部216のカウンタ群に従って、アドレス発生部214が発生するアドレスに基づいて読み出される。その読み出しについて説明する。読み出しのためのパルスが所定のタイミングでセグメント間シャフル回路104に入力されると、TIデータとMFデータをバイト単位に集結する処理が行われる。その集結処理が終了されると、パケット内のデータ出力順に従って、いまの場合、図27に示したパケット内のデータの配列に従って、記憶部215から読み出され、パケット化回路17に出力される。
【0132】
パケット出力毎の処理が1バッファ分(11パケット分)繰り返し行われ、順次、パケット化回路17に出力される。パケット化回路17は、必要に応じ、符号化回路15から入力されたデータを外部メモリ18に一時的に記憶させ、必要に応じ読み出すことにより、パケットを構成する。
【0133】
次に、送信装置1の画像の送信の処理を図31のフローチャートを参照して説明する。ステップS11において、間引き部13のA/D変換回路42は、入力された60Hzのフィールド周波数を有するインターレース方式の画像信号を、所定のサンプリングレートでサンプリングして、所定のデータレートのYデータ、Uデータ、およびVデータとして出力する。ステップS12において、間引きフィルタ43は、Yデータ、Uデータ、およびVデータをそれぞれ、水平方向と垂直方向に1/2に間引き、30Hzのフレーム周波数を有するプログレッシブ方式のデータに変換する。
【0134】
ステップS13において、UV垂直1/2回路45は、Uデータ、およびVデータを、垂直方向に1/2に間引く。ステップS14において、フォーマット変換回路14は、Yデータ、Uデータ、およびVデータを符号化回路15に供給できる形式に変換する。
【0135】
ステップS15において、符号化回路15は、フォーマット変換回路14から供給されたYデータ、Uデータ、およびVデータをシャフルして、符号化し、更にシャフルして、パケット化回路17に出力する。ステップS16において、パケット化回路17は、符号化回路15から供給されたデータを、パケット化し、送信回路19に出力する。ステップS19において、送信回路19は、パケット化回路17から供給されたパケットを所定の方式で送信し、処理は終了する。
【0136】
以上のように、送信装置1は、入力された画像の信号を圧縮して、パケットとして出力する。
【0137】
次に、受信装置2について説明する。図32は、受信装置2の構成を示すブロック図である。受信回路301が受信したパケットは、パケット解体回路302に供給される。受信回路301は、受信したパケットに欠落が生じたとき、欠落パケットのデータの各ビット単位で、欠落フラグをセットする。パケット解体回路302は、供給されたパケットを一時的に外部メモリ303に記憶させ、外部メモリ303に一時的に記憶されたパケットを解体して、パケットに含まれるデータを取り出し、欠落フラグと共に復号回路304に供給する。コードQに、8ビット単位で欠落フラグを付け、ダイナミックレンジDR、画素値の最小値MIN、および動きフラグMF毎に欠落フラグを付けるようにしても良い。
【0138】
復号回路304は、パケット解体回路302から供給されたデータを一時的に外部メモリ305に記憶させ、外部メモリ305に一時的に記憶されたADRC方式で符号化されているデータを復号し、フォーマット変換回路306に供給する。復号回路304は、復号に必要なダイナミックレンジDRまたは最小値MINなどのデータが欠落している場合、欠落しているデータをリカバリして、復号し、復号に成功したとき、対応する欠落フラグをリセットする。
【0139】
フォーマット変換回路306は、復号回路304から供給されたデータを一時的に外部メモリ307に記憶させ、外部メモリ307に一時的に記憶されたデータに対し、フォーマット変換回路14の処理とは逆の処理を実行して、欠落画素創造回路308に供給する。
【0140】
欠落画素創造回路308は、フォーマット変換回路306から供給されたデータを基に、クラス分類適応処理により、伝送中に欠落した画素のデータを、欠落した画素の周辺の画素の画素値から作り出し、そのデータをフォーマット変換回路310に供給する。イニシャライズ回路309は、受信装置2の起動時などにおいて、欠落画素創造回路308に、係数セットなどを供給する。
【0141】
フォーマット変換回路310は、欠落画素創造回路308から供給されたデータを一時的に外部メモリ311に記憶させ、外部メモリ311に一時的に記憶されたデータを4倍密解像度創造回路312が処理できる、30Hzのフレーム周波数を有する、プログレッシブ方式の3:0.5:0.5の画像データに変換し、変換したデータを4倍密解像度創造回路312に供給する。
【0142】
4倍密解像度創造回路312は、フォーマット変換回路310から供給された画像データを基に、供給された画像の4倍の密度の画像データを創造し、補間部314に供給する。イニシャライズ回路313は、4倍密解像度創造回路312に、係数セットなどを供給する。
【0143】
補間部314は、フォーマット変換回路331、外部メモリ332、UV垂直2倍回路333、外部メモリ334、D/A変換回路335、および後置フィルタ336で構成されている。
【0144】
フォーマット変換回路331は、4倍密解像度創造回路312から供給されたデータを入力し、一時的に外部メモリ332に記憶させ、外部メモリ332に一時的に記憶されたデータをUV垂直2倍回路333が処理できる、30Hzのフレーム周波数を有する、プログレッシブ方式の3:0.5:0.5の画像データに変換し、変換されたデータをUV垂直2倍回路333に出力する。
【0145】
UV垂直2倍回路333は、フォーマット変換回路331から供給されたデータを一時的に外部メモリ334に記憶させ、外部メモリ334に一時的に記憶されたデータのUデータおよびVデータを、それぞれ垂直方向に2倍に補間し、Yデータ、Uデータ、およびVデータをD/A変換回路335に供給する。
【0146】
D/A変換回路335は、UV垂直2倍回路333から供給されたYデータ、Uデータ、およびVデータを、アナログのY信号、U信号、およびV信号に変換し、後置フィルタ336に出力する。後置フィルタ336は、D/A変換回路335から出力されたアナログのY信号、U信号、およびV信号のうち、有効な成分のみを通過させるフィルタ(いわゆる、sinX/Xフィルタ)である。後置フィルタ336を通過したY信号、U信号、およびV信号は、NTSCエンコーダ315に供給され、あるいは、そのまま受信装置2の出力として出力される。
【0147】
NTSCエンコーダ315は、入力されたY信号、U信号、およびV信号を基に、コンポーネント信号(Y/C信号)およびコンポジットビデオ信号を生成し、出力する。
【0148】
PLL回路316は、各回路の処理の基準となる基準信号を生成し、コントロール回路317に供給する。コントロール回路317は、パケット解体回路302、復号回路304、フォーマット変換回路306、欠落画素創造回路308、フォーマット変換回路310、4倍密解像度創造回路312、補間部314、およびNTSCエンコーダ315に、生成したコントロール信号を供給し、受信装置2全体の動作を制御する。
【0149】
図33を参照して、インターレース方式で信号が出力される場合の受信装置2で受信された画像のデータが伸張される過程を説明する。復号回路304で復号された画像のデータは、フォーマット変換回路306で、30Hzのフレーム周波数を有する、プログレッシブ方式の1フレーム当たり水平方向に264画素および垂直方向に240画素を有するYデータ、並びに88画素×120画素×2のUデータおよびVデータに変換される。
【0150】
フォーマット変換回路306から出力された1フレームを構成するYデータ、Uデータ、およびVデータは、欠落画素創造回路308で欠落画素が創造された後、4倍密解像度創造回路312により、60Hzのフィールド周波数を有する、インターレース方式の第1フィールドおよび第2フィールドに変換される。このとき、Yデータは、1つのフィールド当たり、水平方向に528画素および垂直方向に240画素を含むデータとなる。UデータおよびVデータは、それぞれ1つのフィールド当たり、水平方向に176画素および垂直方向に120画素を含むデータとなる。
【0151】
4倍密解像度創造回路312から出力されたYデータ、Uデータ、およびVデータは、フォーマット変換回路331により、Yデータが、1つのフレーム当たり、水平方向に528画素および垂直方向に480画素を含むデータに変換され、UデータおよびVデータは、それぞれ1つのフレーム当たり、水平方向に176画素および垂直方向に240画素を含むデータに変換される。
【0152】
更に、UデータおよびVデータは、UV垂直2倍回路333により、1つのフレーム当たり、水平方向に176画素および垂直方向に480画素を含むデータに変換される。D/A変換回路335は、デジタルアナログ変換を行い、YデータをアナログY信号に変換し、UデータおよびVデータをアナログU信号およびアナログV信号にそれぞれ変換する。
【0153】
このように、補間部314で、間引き部13に対応する処理を行うことで、実用的な値にまで低減されたビットレートで伝送されてきたデータから、充分な画質を有する元の画像を再現することができる。
【0154】
以上のように、受信装置2は、受信した画像のデータを伸張して、インターレース方式のY信号、U信号、およびV信号として出力する。受信装置2が出力する画像の信号の情報は、163Mbpsに相当し、送信装置1に入力された画像の信号の情報と比較すると、98%の情報量に相当する。
【0155】
次に、復号回路304について説明する。図34は、復号回路304の構成を示すブロック図である。コントロール回路317から供給されたコントロール信号は、タイミング信号生成回路351に入力される。タイミング信号生成回路351は、コントロール信号を基に、タイミング信号を生成し、セグメント間デシャフル回路352、qビットMFリカバリ回路353、DRMINリカバリ回路354、ADRC復号回路355、ブロックデシャフル回路356、およびリカバリエラー判定回路357に供給する。
【0156】
パケット解体回路302から供給されたデータは、セグメント間デシャフル回路352に入力される。セグメント間デシャフル回路352は、図10に示す送信装置1のセグメント間シャフル回路104と逆の動作を行い、シャフルされたデータを元の並びに戻す。デシャフルされたデータに欠落がないとき、セグメント間デシャフル回路352は、デシャフルされたデータをADRC復号回路355に供給する。デシャフルされたデータに欠落があるとき、セグメント間デシャフル回路352は、デシャフルされたデータをqビットMFリカバリ回路353、およびDRMINリカバリ回路354に供給する。また、セグメント間に跨る複数のブロックのデータにエラーがあるとき、セグメント間デシャフル回路352は、連続エラー信号をブロックデシャフル回路356に出力する。
【0157】
qビットMFリカバリ回路353は、隣接する画素の相関が圧縮されたコードQに残っていることを利用し、連続する3つのADRCブロックの画素の画素値の相関を基に、その相関が最大となる、qおよび動きフラグMFの値の組み合わせを求め、qおよび動きフラグMFの正しい値として、DRMINリカバリ回路354に出力する。qビットMFリカバリ回路353は、動きフラグMFが正しいか否かを判定するためのemin1およびemin2(隣接画素差分の最小値と2番目に小さい値)をリカバリエラー判定回路357に送信する。
【0158】
図35は、qビットMFリカバリ回路353の構成を示すブロック図である。
セグメントデシャフル回路352から供給されたデシャフルされたデータは、qビットMF取り出し回路371に供給される。
【0159】
qビットMF取り出し回路371は、供給されたデータから、qおよび動きフラグMFを取り出し、3ブロック評価値算出回路372−1乃至372−6のそれぞれに供給する。エラーでqおよび動きフラグMFが失われた場合、qビットMF取り出し回路371は、qおよび動きフラグMFとして可能性のある組み合わせを、3ブロック評価値算出回路372−1乃至372−6のそれぞれに供給する。
【0160】
例えば、”2”が設定されたqおよび”0”が設定された動きフラグMFは、3ブロック評価値算出回路372−1に供給され、”3”が設定されたqおよび”0”が設定された動きフラグMFは、3ブロック評価値算出回路372−2に供給され、”4”が設定されたqおよび”0”が設定された動きフラグMFは、3ブロック評価値算出回路372−3に供給される。また、例えば、”2”が設定されたqおよび”1”が設定された動きフラグMFは、3ブロック評価値算出回路372−4に供給され、”3”が設定されたqおよび”1”が設定された動きフラグMFは、3ブロック評価値算出回路372−5に供給され、”4”が設定されたqおよび”1”が設定された動きフラグMFは、3ブロック評価値算出回路372−6に供給される。
【0161】
3ブロック評価値算出回路372−1乃至372−6は、qおよび動きフラグMFを基に、切り出されたコードQより復号される画素値から、互いに隣接する画素の画素値の差分を基にした評価値(LE:Linear Error)を算出し、qおよび動きフラグMFと共に評価値をセレクタ373に供給する。以下、3ブロック評価値算出回路372−1乃至372−6を、個々に区別する必要がないときは、単に3ブロック評価値算出回路372と称する。
【0162】
評価値は、式(1)で算出される。評価値は、小さいほど画素の相関が高い。
【数1】

Figure 0004517435
i,jは、リカバリの対象となるADRCブロックに含まれる欠落していないコードQを示す。Q’i,jは、Qi,jが含まれるADRCブロックを構成する画素を含む図13および図14に示す64画素のブロックの画素で構成される他のADRCブロックに含まれるコードQを示す。例えば、Qi,jが図16の番号”0”の偶数セグメントのADRCブロックに含まれるとき、Q’i,jは、番号”3”の奇数セグメントのADRCブロックに含まれる。Qi,jが図16の番号”4”の偶数セグメントのADRCブロックに含まれるとき、Q’i,jは、番号”1”の奇数セグメントのADRCブロックに含まれる。qi,jは、Qi,jを切り出すqを示す。q’i,jは、Q’i,jを切り出すqを示す。Njは、ADRCブロック内欠落していないコードQの数を示す。jは、評価値が算出される3つのADRCブロックを識別する番号である。
【0163】
オフセットjは、3つのADRCブロックの間のダイナミックレンジ、qの違いを吸収し、より正確な評価値を算出するために用いられ、式(2)、式(3)、および式(4)で算出される。
オフセットj=(Xj×24-qj-Yj×24-q'j)/128 (2)
【数2】
Figure 0004517435
【数3】
Figure 0004517435
【0164】
セレクタ373は、3ブロック評価値算出回路372−1乃至372−6のそれぞれから供給された評価値から、最小値を有する評価値、および最小値の次に大きい値を有する評価値を選択し、それぞれemin1およびemin2として、リカバリエラー判定回路357に供給する。
【0165】
セレクタ373は、3ブロック評価値算出回路372−1乃至372−6のうち、最小値を有する評価値を出力したものが出力するqおよび動きフラグMFを選択して、qビットMFリカバリ回路353の出力として、DRMINリカバリ回路354に供給する。
【0166】
DRMINリカバリ回路354は、qビットMFリカバリ回路353から供給されたqの正しい値および動きフラグMFの正しい値とセグメント間デシャフル回路352からの図12で示した対応するADRCブロックとを基に、ADRCブロック毎のダイナミックレンジDRの正しい値およびADRCブロック毎の画素値の最小値MINを求め、ADRC復号回路355に出力する。
【0167】
図36乃至図38を参照して、DRMINリカバリ回路354のダイナミックレンジDRまたは画素値の最小値MINのリカバリの処理を説明する。画素値Lは、ADRCの方式により、コードQから式(5)の処理により復号される。
L=DR/(2Q)*q+MIN (5)
【0168】
図36に示すように、qと画素値Lとの関係は、傾きをDR/(2Q)とし、接片を画素値の最小値MINとする直線で表される。
【0169】
ADRCブロック内の(q,L)の組より、式(5)のDR/(2Q)および画素値の最小値MINを統計的に求める。図37に示す、(q,L)の回帰直線を、式(5)の直線に等しいとする。
【0170】
このとき、bが既知であるならば、aは、式(6)で算出される。
a=(B-nb)/A (6)
【0171】
また、aが既知であるならば、bは、式(7)で算出される。
b=(B-Aa)/n (7)
【0172】
ここで、nは、(q,L)の点の個数であり、Aは、Σxであり、Bは、Σyである。
【0173】
ダイナミックレンジDRは、式(8)で算出される。
DR=(ΣL'-N*MIN)/(Σq)*2Q
=(((DR'/2Q')*Y)+N*MIN'-N*MIN)/X*2Q
=(N*(MIN'-MIN)*2Q'+DR'*Y)*2Q/(X*2Q') (8)
図38(A)に示すように、ダイナミックレンジDRまたは画素値の最小値MINをリカバリしようとするブロックが隣接する欠落のないのブロックの数を、niとしたとき、Nは、Σniである。図38において、斜線が示された四角は、ダイナミックレンジDRまたは画素値の最小値MINをリカバリしようとするブロックを示す。図38において、斜線のない四角は、欠落のないのブロックを示す。ダイナミックレンジDRまたは画素値の最小値MINをリカバリしようとするブロックのqが欠落している時、図38(B)に示す様に、niは0である。
【0174】
DR’は、リカバリしようとするブロックが隣接する、欠落のないのブロックのダイナミックレンジを示す。MIN’は、リカバリしようとするブロックが隣接する、欠落のないのブロックの画素値の最小値を示す。Q’は、リカバリしようとするブロックが隣接する、欠落のないのブロックのコードQを示す。
【0175】
Xは、式(9)で表される。
【数4】
Figure 0004517435
【0176】
Yは、式(10)で示される。
【数5】
Figure 0004517435
【0177】
画素値の最小値MINは、式(11)で算出される。
MIN=(ΣL'-Σq*(DR/2Q))
=((DR'/2Q')*Y+N*MIN'-(DR/2Q)*X)/N
=(N*MIN'*2Q'+Q+DR'*Y*2Q-DR*X*2Q')/(N*2Q'+Q) (11)
【0178】
ADRC復号回路355は、デシャフルされたデータに欠落がないとき、セグメント間デシャフル回路352から供給されたデータを基に、コードQを復号し、復号の結果得られたYデータ、Uデータ、およびVデータをブロックデシャフル回路356に供給する。
【0179】
ADRC復号回路355は、qまたは動きフラグMFに欠落があり、かつqビットMFリカバリ回路353がqの正しい値および動きフラグMFの正しい値を求めることができたとき、DRMINリカバリ回路354を介して供給されたqの正しい値、動きフラグMFの正しい値、ダイナミックレンジDR、およびブロック毎の画素値の最小値MINを基に、DRMINリカバリ回路354から供給されたコードQを復号し、復号の結果得られたYデータ、Uデータ、およびVデータを、Yデータ、Uデータ、およびVデータに対応する、”0”を設定したエラーフラグと共に、ブロックデシャフル回路356に供給する。
【0180】
ADRC復号回路355は、qまたは動きフラグMFに欠落があり、かつqビットMFリカバリ回路353がqの正しい値および動きフラグMFの正しい値を求めることができないとき、コードQに対応するYデータ、Uデータ、およびVデータのエラーフラグに”1”を設定して、ブロックデシャフル回路356に供給する。
【0181】
ADRC復号回路355は、ダイナミックレンジDR、または画素値の最小値MINに欠落があり、かつDRMINリカバリ回路354がダイナミックレンジDRの正しい値および画素値の最小値MINの正しい値を求めることができたとき、DRMINリカバリ回路354を介して供給されたq、動きフラグMF、ダイナミックレンジDRの正しい値、および画素値の最小値MINの正しい値を基に、DRMINリカバリ回路354から供給されたコードQを復号し、復号の結果得られたYデータ、Uデータ、およびVデータを、Yデータ、Uデータ、およびVデータに対応する、”0”を設定したエラーフラグと共に、ブロックデシャフル回路356に供給する。
【0182】
ADRC復号回路355は、ダイナミックレンジDR、または画素値の最小値MINに欠落があり、かつかつDRMINリカバリ回路354がダイナミックレンジDRの正しい値および画素値の最小値MINの正しい値を求めることができないとき、コードQに対応するYデータ、Uデータ、およびVデータのエラーフラグに”1”を設定して、ブロックデシャフル回路356に供給する。
【0183】
リカバリエラー判定回路357は、qビットMFリカバリ回路353から供給されたemin1およびemin2を基に、リカバリエラー判定フラグFdをブロックデシャフル回路356に出力し、外部メモリ305が記憶している前のフレームの対応する画素のYデータ、Uデータ、およびVデータの更新を停止させる。
【0184】
ブロックデシャフル回路356は、ADRC復号回路355から”0”を設定したエラーフラグと共に、Yデータ、Uデータ、およびVデータが供給されたとき、エラーフラグ、並びにYデータ、Uデータ、およびVデータを記憶する。ブロックデシャフル回路356は、ADRC復号回路355から”1”を設定したエラーフラグと共に、Yデータ、Uデータ、およびVデータが供給されたとき、エラーフラグを記憶し、Yデータ、Uデータ、およびVデータを記憶しない。また、ブロックデシャフル回路356は、リカバリエラー判定回路357またはセグメント間デシャフル回路352から連続エラー信号が供給された場合も、外部メモリ305が記憶している前のフレームの対応する画素のYデータ、Uデータ、およびVデータの更新を停止させる。
【0185】
ブロックデシャフル回路356は、Yデータ、Uデータ、およびVデータを、図10に示す送信装置1のブロックシャフル回路102と逆の動作で、元の並びに戻し、元の並びに変換されたYデータ、Uデータ、およびVデータを出力する。
【0186】
以上のように、復号回路304は、復号に必要なデータであるq、動きフラグMF、ダイナミックレンジDR、または画素値の最小値MINが失われても、qビットMFリカバリ回路353およびDRMINリカバリ回路354が失われたデータをリカバリするので、復号を実行することができる。
【0187】
リカバリにエラーがあるときは、外部メモリ305に記憶されている画素値を上書きしないで、4フレーム前の画素値を出力するので、動きが無いとき、違和感のない画素値を出力できる。
【0188】
次に、復号回路304の処理のタイミングを図39および図40のタイミングチャートを参照して説明する。図39は、セグメント間デシャフル回路352から出力されるデータに欠落がない場合の、復号回路304の処理のタイミングの例を示す。セグメント間デシャフル回路352は、デシャフルの処理を行い、所定の時間経過後(図39の例では、入力開始から362クロック後)、ADRC復号回路355にデシャフルされたデータを出力する。ADRC復号回路355は、セグメント間デシャフル回路352から供給されたデータを復号して出力する。
【0189】
図40は、セグメント間デシャフル回路352から出力されるデータに欠落がある場合の、復号回路304の処理のタイミングの例を示す。セグメント間デシャフル回路352は、デシャフルの処理を行い、データに欠落がない場合に、ADRC復号回路355にデータを供給するタイミングより早く(図40の例では、入力開始から123クロック後)、qビットMFリカバリ回路353にデシャフルされたデータを出力する。qビットMFリカバリ回路353は、所定のタイミングで、qおよび動きフラグMFを、DRMINリカバリ回路354に供給する。
【0190】
DRMINリカバリ回路354は、データに欠落がない場合にセグメント間デシャフル回路352がADRC復号回路355にデータを供給するタイミングと同じタイミングで、ダイナミックレンジおよび画素の最小値を、ADRC復号回路355に供給する。
【0191】
従って、復号回路304は、q、動きフラグMF、ダイナミックレンジDR、および画素の最小値MINをリカバリしても、セグメント間デシャフル回路352から出力されるデータに欠落がない場合と同じタイミングで、データを復号し、出力することができる。
【0192】
以上のように、復号回路304は、復号に必要な所定のデータが失われても、qビットMFリカバリ回路353およびDRMINリカバリ回路354が失われたデータをリカバリするので、復号を実行することができる。なお、復号回路304にエラー処理を行わないモード(ユーザセレクタブルなモード)を選択する信号が入力されているとき、qビットMFリカバリ回路353およびDRMINリカバリ回路354は、リカバリを実行しない。
【0193】
図41および図42を参照して、ブロックデシャフル回路356のデータの出力のタイミングについて説明する。
【0194】
従来は、2フレームの画像を記憶するメモリを2個設けて、図41(A)に示すように、一方のメモリにデータを書き込んでいるとき、他のメモリからデータを読み出して出力し、2フレームの画像について処理が終了したとき、図41(B)に示すように、他方のメモリにデータを書き込んで、一方のメモリからデータを読み出して、出力していた。
【0195】
これに対して、外部メモリ305に、それぞれ2フレームの画像を記憶するバンクを2つ設けて(図中のバンク1およびバンク2)、ブロックデシャフル回路356は、図42(A)に示すように、3個のADRCに対応する画像データがADRC復号回路355から供給されたとき、バンク1に書き込み、図42(B)に示すように、ADRC復号回路355から画像データが供給されていないとき(例えば、図40に示す、入力開始から364クロックまでの間)、アドレスを指定することにより、バンク2からブロックデシャフルされたデータを読み出す。次の2フレームにおいては、ブロックデシャフル回路356は、3個のADRCに対応する画像データがADRC復号回路355から供給されたとき、バンク2に書き込み、ADRC復号回路355から画像データが供給されていないとき、バンク1からブロックデシャフルされたデータを読み出す。
【0196】
このようにすることで、ブロックデシャフル回路356に対し、1個の外部メモリ305で、画像データをブロックデシャフルして、出力することができる。
【0197】
図43は、リカバリエラー判定回路357の構成を示すブロック図である。qビットMFリカバリ回路353から供給される最小値を有する評価値emin1、および2番目に小さい値を有する評価値emin2は、差分算出回路431に供給される。差分算出回路431は、入力されたemin1とemin2との差を算出し、遅延回路432に出力する。遅延回路432は、差分算出回路431から供給されたデータを所定の時間遅延し、加算器435および遅延回路433に出力する。
【0198】
遅延回路433は、遅延回路432から供給されたデータを所定の時間遅延し、加算器435および遅延回路434に出力する。
【0199】
遅延回路434は、遅延回路433から供給されたデータを所定の時間遅延し、加算器435および判定回路437に出力する。
【0200】
加算器435は、遅延回路432からから供給されたデータ、遅延回路433からから供給されたデータ、および遅延回路434からから供給されたデータを加算して、判定回路436に供給する。
【0201】
判定回路436は、加算器435から供給されたデータが予め定めた閾値Te1以下であるか否かを判定し、加算器435から供給されたデータが閾値Te1以下であると判定された場合、”1”をAND回路438に出力し、加算器435から供給されたデータが閾値Te1を越えると判定された場合、”0”をAND回路438に出力する。
【0202】
判定回路437は、遅延回路434から供給されたデータが予め定めた閾値Te2以下であるか否かを判定し、遅延回路434から供給されたデータが閾値Te2以下であると判定された場合、”1”をAND回路438に出力し、遅延回路434から供給されたデータが閾値Te2を越えると判定された場合、”0”をAND回路438に出力する。
【0203】
AND回路438は、判定回路436から供給されたデータが”1”、かつ、判定回路437から供給されたデータが”1”のとき、”1”をホールド回路439に出力する。AND回路438は、判定回路436から供給されたデータが”0”、または、判定回路437から供給されたデータが”0”のとき、”0”をホールド回路439に出力する。
【0204】
ホールド回路439は、入力されたデータをリセット信号が入力されるまで保持し、遅延回路440に出力する。遅延回路440は、ホールド回路439から出力されたデータを所定の時間遅延し、ホールド回路439に供給するとともに、リカバリ判定フラグFdとしてブロックデシャフル回路356に出力する。
【0205】
このように、リカバリエラー判定回路357は、3個のADRCブロックに対する、評価値emin1と評価値emin2の差の積算値が閾値Te1以下であり、かつ、そのADRCブロックに対する評価値emin1と評価値emin2の差が閾値Te2以下であるとき、すなわち、評価値emin1と評価値emin2の差が少なく、リカバリされたqまたは動きフラグMFが正しくない可能性が高いとき、リカバリ判定フラグFdに1をセットする。
【0206】
次に、ADRC復号回路355で復号されたデータが一時的にブロックデシャフル回路356に記憶され、読み出される処理を説明する。セグメント間デシャフル回路352は、パケット解体回路302から供給されたデータに欠落があるとき、欠落するデータに対応するエラーフラグに”1”を設定し、データに欠落がないとき、データに対応するエラーフラグに”0”を設定し、ADRCブロック単位のコードQおよびエラーフラグをADRC復号回路355に出力する。ADRC復号回路355は、コードQを復号し、Yデータ、Uデータ、およびVデータ、並びにエラーフラグをブロックデシャフル回路356に出力する。
【0207】
ブロックデシャフル回路356は、対応するエラーフラグが”0”の場合、Yデータ、Uデータ、およびVデータ、並びにエラーフラグを外部メモリ305に記憶し、対応するエラーフラグが”1”である場合、エラーフラグを外部メモリ305に記憶し、Yデータ、Uデータ、およびVデータを外部メモリ305に記憶しない。
【0208】
外部メモリ305は、2つのバンクを有し、1つのバンクに2つのフレームのYデータ、Uデータ、およびVデータ、並びにエラーフラグを記憶する。外部メモリ305のバンクは、2つのフレーム毎に切り替えられる。従って、対応するエラーフラグが”1”である場合、外部メモリ305は、4フレーム前のYデータ、Uデータ、およびVデータを記憶している。
【0209】
図44は、リカバリエラー判定回路357が、”1”が設定されたリカバリ判定フラグFdを出力した場合の、ブロックデシャフル回路356の処理を説明する図である。qビットMFリカバリ回路353から供給される最小値を有する評価値emin1、および2番目に小さい値を有する評価値emin2の差が所定の値以下であり、かつ、そのADRCブロックを含めた連続する3つのADRCブロックのemin1、およびemin2の差の和が所定の値以下であるとき、qビットMFリカバリ回路353は、qのリカバリに失敗したと判定し、このため、データの切り出しも失敗したと判定する。このとき、リカバリエラー判定回路357は、”1”が設定されたリカバリ判定フラグFdを出力する。
【0210】
リカバリエラー判定回路357が、”1”が設定されたリカバリ判定フラグFdを出力したとき、ブロックデシャフル回路356は、それ以降のバッファ(88個のADRCブロック)からのデータの切り出しに失敗したとみなし、それ以降に供給されるエラーフラグに”1”を設定し、そのエラーフラグを外部メモリ305に記憶する。ユーザセレクタブルなエスケープモードの場合には、データは外部メモリ305に記憶される。
【0211】
図45は、セグメント間デシャフル回路353が、連続エラー信号を出力した場合の、ブロックデシャフル回路356の処理を説明する図である。セグメント間デシャフル回路353は、対応する偶数ADRCブロックおよび奇数ADRCブロックの両方の欠落を検出したとき、連続エラー信号を出力する。qビットMFリカバリ回路353のqおよび動きフラグMFのリカバリの処理は、隣接する画素の画素値の相関を利用しているので、対応する偶数ADRCブロックおよび奇数ADRCブロックの両方が欠落しているとき、qビットMFリカバリ回路353は、リカバリの処理を実行することができない。連続エラー信号が供給されたとき、ブロックデシャフル回路356は、それ以降のバッファ(88個のADRCブロック)からのデータの切り出しに失敗したとみなし、それ以降に供給されるエラーフラグに”1”を設定し、そのエラーフラグを外部メモリ305に記憶し、それ以降に供給される復号されたデータを外部メモリ305に記憶しない。
【0212】
図46は、ユーザセレクタブルなグレイモードの場合のブロックデシャフル回路356の処理を説明する図である。グレイモードの場合、ブロックデシャフル回路356は、対応するエラーフラグが”1”であるデータに、グレイ(Y,U,V全てを128にするのではなく、対応するデータのみ128にする)を設定して出力する。
【0213】
図47および図48は、ブロックデシャフル回路356のユーザセレクタブルなリカバリオフ入力(ユーザが図示せぬ所定のスイッチを操作したときに入力される信号)に対応した処理を説明する図である。”1”が設定されたリカバリオフ入力が供給された場合、ブロックデシャフル回路356は、外部メモリ305に、図47に示すように、qビットMFリカバリ回路353を経由しないで、ADRC復号回路355でYデータ、Uデータ、およびVデータが復号されたとき、復号されたYデータ、Uデータ、およびVデータを記憶させる。図48に示すように、qビットMFリカバリ回路353でqおよび動きフラグがリカバリされたとき、ブロックデシャフル回路356は、外部メモリ305に、復号されたYデータ、Uデータ、およびVデータをメモリに記憶させず、対応するすべてのエラーフラグを”1”に設定する。リカバリオフ入力を変化させることで、qビットMFリカバリ回路353等のリカバリの効果が簡単に確認できる。
【0214】
図49は、ブロックデシャフル回路356のエスケープ信号(ユーザが図示せぬ所定のスイッチを操作したときに入力される信号)に対応した処理を説明する図である。所定のエスケープ信号が供給された場合、ブロックデシャフル回路356は、図49に示すように、リカバリ判定フラグFdが”1”に設定されても、それ以降に供給されるエラーフラグに強制的に”1”を設定しないでエラーフラグをメモリに記憶し、それ以降に供給される復号されたYデータ、Uデータ、およびVデータをメモリに記憶する。エスケープ信号を変化させることで、ブロックデシャフル回路356のコンシールの処理の効果が簡単に確認できる。
【0215】
図50および図51は、ブロックデシャフル回路356の復号したデータを出力する処理を説明するフローチャートである。ステップS31において、セグメント間デシャフル回路352は、受信回路301が生成したエラーフラグを受信し、ADRC復号回路355に供給する。ADRC復号回路355は、セグメント間デシャフル回路352から供給されたエラーフラグをブロックデシャフル回路356に出力し、ブロックデシャフル回路356は、そのエラーフラグを受信する。
【0216】
ステップS32において、ブロックデシャフル回路356は、ADRC復号回路355から供給された、バッファ(所定の88個のADRCブロック)に対応する、最初のエラーフラグを選択する。ステップS33において、ブロックデシャフル回路356は、セグメント間デシャフル回路352から供給されている連続エラー信号が”0”であるか否かを判定し、連続エラー信号が”0”であると判定された場合、ステップS34に進み、リカバリエラー判定回路357から供給されているリカバリ判定フラグFdが”0”であるか否かを判定する。ステップS34において、リカバリ判定フラグFdが”0”であると判定された場合、ステップS35に進み、ブロックデシャフル回路356は、外部メモリ305にエラーフラグを記憶させる。
【0217】
ステップS33において、連続エラー信号が”1”であると判定された場合、およびステップS34において、リカバリ判定フラグFdが”1”であると判定された場合、データの切り出しに失敗したので、ステップS47に進み、ブロックデシャフル回路356は、エスケープ信号がオフであるか否かを判定し、エスケープ信号がオフであると判定された場合、ステップS48に進み、ステップS32で選択されたエラーフラグに”1”を設定し、ステップS35に進み、ブロックデシャフル回路356は、外部メモリ305にエラーフラグを記憶させる。
【0218】
ステップS47において、エスケープ信号がオンであると判定された場合、エラーフラグの設定を行わないので、手続きは、ステップS48をスキップし、ステップS35に進み、ブロックデシャフル回路356は、外部メモリ305にエラーフラグを記憶させる。
【0219】
ステップS36において、ブロックデシャフル回路356は、バッファに対応する、すべてのエラーフラグを処理したか否かを判定し、すべてのエラーフラグを処理したと判定された場合、ステップS37に進み、ブロックデシャフル回路356は、ADRC復号回路355から復号されたYデータ、Uデータ、およびVデータを受信する。
【0220】
ステップS36において、バッファの全てのエラーフラグをまだ処理していないと判定された場合、ステップS49に進み、ブロックデシャフル回路356は、次のエラーフラグを選択し、ステップS33に戻り、エラーフラグの設定の処理を繰り返す。
【0221】
ステップS38において、ブロックデシャフル回路356は、ADRC復号回路355から供給された、バッファの最初の復号されたデータを選択する。
【0222】
ステップS39において、ブロックデシャフル回路356は、セグメント間デシャフル回路352から供給されている連続エラー信号が”0”であるか否かを判定し、連続エラー信号が”0”であると判定された場合、ステップS40に進み、選択されている復号されたデータに対応するエラーフラグが”0”であるか否かを判定する。選択されている復号されたデータに対応するエラーフラグが”0”であると判定された場合、ステップS41に進み、ブロックデシャフル回路356は、選択されている復号されたYデータ、Uデータ、およびVデータを外部メモリ305に記憶させる。手続きは、ステップS42に進む。
【0223】
ステップS39において、連続エラー信号が”1”であると判定された場合、および、ステップS40において、選択されている復号されたデータに対応するエラーフラグが”1”であると判定された場合、データは欠落しているので、ステップS41をスキップして、ステップS42に進む。
【0224】
ステップS42において、ブロックデシャフル回路356は、バッファの全ての復号されたデータを処理したか否かを判定し、バッファの全ての復号されたデータを処理したと判定された場合、ステップS43に進む。
【0225】
ステップS42において、バッファ(88個のADRCブロック)の全ての復号されたデータをまだ処理していないと判定された場合、ステップS50に進み、ブロックデシャフル回路356は、次のデータを選択し、ステップS39に戻り、復号したデータを記憶する処理を繰り返す。
【0226】
ステップS43において、ブロックデシャフル回路356は、外部メモリ305に記憶されている最初のデータを選択する。ステップS44において、ブロックデシャフル回路356は、エラーフラグが”1”で、かつ、グレイモードであるか否かを判定し、エラーフラグが”0”、または、グレイモードでないと判定された場合、ステップS45に進み、選択されているデータをフォーマット変換回路306に出力する。
【0227】
ステップS44において、エラーフラグが”1”で、かつ、グレイモードであると判定された場合、ステップS51に進み、ブロックデシャフル回路356は、グレーデータをフォーマット変換回路306に出力し、ステップS46に進む。
【0228】
ステップS46において、ブロックデシャフル回路356は、外部メモリ305のバンクに記憶されている全てのデータを処理したか否かを判定し、外部メモリ305に記憶されている全てのデータを処理したと判定された場合、処理は終了する。
【0229】
ステップS46において、外部メモリ305に記憶されている全てのデータを処理していないと判定された場合、ステップS52に進み、ブロックデシャフル回路356は、外部メモリ305のバンクに記憶されている次のデータを選択し、ステップS44に戻り、データを出力する処理を繰り返す。
【0230】
このように、ブロックデシャフル回路356は、コードQが欠落していても、もっとも違和感の少ないデータを出力することができる。
【0231】
次に、図示せぬユーザセレクタブルなリカバリオフスイッチが”0”である場合のブロックデシャフル回路356のデータを出力する処理を図52のフローチャートを参照して説明する。ステップS71において、セグメント間デシャフル回路352は、受信回路301が生成したエラーフラグを受信し、ADRC復号回路355に供給する。ADRC復号回路355は、セグメント間デシャフル回路352から供給されたエラーフラグをブロックデシャフル回路356に出力し、ブロックデシャフル回路356は、そのエラーフラグを受信する。
【0232】
ステップS72において、ブロックデシャフル回路356は、qおよび動きフラグ等がqビットMFリカバリ回路353等において、リカバリされたか否かを判定し、qおよび動きフラグMF等がリカバリされていないと判定された場合、ステップS73に進み、外部メモリ305にエラーフラグを記憶させる。
【0233】
ステップS72において、qおよび動きフラグ等がリカバリされていると判定された場合、ステップS78に進み、ブロックデシャフル回路356は、受信したエラーフラグを全て”1”に設定し、ステップS73に進む。
【0234】
ステップS74において、ブロックデシャフル回路356は、ADRC復号回路355から復号されたYデータ、Uデータ、およびVデータを受信する。
【0235】
ステップS75において、ブロックデシャフル回路356は、qおよび動きフラグ等がqビットMFリカバリ回路353等において、リカバリされたか否かを判定し、qおよび動きフラグMF等がリカバリされていないと判定された場合、ステップS76に進み、ステップS74で受信したYデータ、Uデータ、およびVデータを記憶する。
【0236】
ステップS75において、q、動きフラグMF等がリカバリされていると判定された場合、ステップS76をスキップし、Yデータ、Uデータ、およびVデータを記憶させないで、ステップS77に進む。
【0237】
ステップS77において、ブロックデシャフル回路356は、外部メモリ305に記憶させたYデータ、Uデータ、およびVデータおよびエラーフラグをフォーマット変換回路306に出力し、処理を終了する。
【0238】
このように、リカバリオフ入力が”1”である場合、ブロックデシャフル回路356は、リカバリされたデータを出力しない。
【0239】
以上のように、復号回路304は、復号に必要な所定のデータが失われても、qビットMFリカバリ回路353およびDRMINリカバリ回路354が失われたデータをリカバリするので、復号を実行することができる。また、復号回路304は、復号ができなくても、もっとも違和感の少ないデータを出力することができる。また、リカバリオフ入力を”1”にすることで、リカバリの効果を簡単に確認することができる。
【0240】
次に、欠落画素創造回路308について説明する。欠落画素創造回路308は、プログレッシブ方式の画像を再生するとき、クラス分類適応処理により、図53(A)に示すように、創造の対象となる画素の同一のフレーム(フレームt)にある周辺の画素の画素値、並びにこれらの画素と水平方向および垂直方向に同一の位置の1つ前のフレーム(フレームt−1)にある画素の画素値を基に、欠落した画素の画素値などを創造する。また、欠落画素創造回路308は、クラス分類適応処理により、図53(B)に示すように、創造の対象となる画素の同一のフィールド(フィールドt)にある周辺の画素の画素値、これらの画素と水平方向および垂直方向に同一の位置の1つ前のフィールド(フィールドt−1)、並びに創造の対象となる画素の周辺の画素と水平方向および垂直方向に同一の位置の2つ前のフィールド(フィールドt−2)にある画素の画素値を基に、欠落した画素の画素値などを創造する。
【0241】
図54は、欠落画素創造回路308の構成を示すブロック図である。欠落画素創造回路308に入力されたデータである画素値および画素の欠落を示すエラーフラグは、前処理回路501およびタップ構築回路502−1に供給される。
【0242】
前処理回路501は、入力された画素値および画素の欠落を示すエラーフラグを基に、欠落している画素の値を線形補間フィルタで生成し、欠落している画素にその値を設定し、タップ構築回路502−2乃至502−5に供給する。なお、画素値は、タップデータとも称する。
【0243】
前処理回路501の処理を図55のフローチャートを参照して説明する。ステップS131において、前処理回路501は、エラーフラグを基に、対象となる画素が欠落しているか否かを判定し、対象となる画素が欠落していないと判定された場合、ステップS132に進み、対象となる画素の画素値を、対象となる画素に設定し、処理は終了する。
【0244】
ステップS131において、対象となる画素が欠落していると判定された場合、ステップS133に進み、前処理回路501は、エラーフラグを基に、対象となる画素の水平に隣接している画素のいずれかが欠落しているか否かを判定する。ステップS133において、対象となる画素の水平に隣接している画素のいずれも欠落していないと判定された場合、ステップS134に進み、前処理回路501は、対象となる画素の水平に隣接している2つの画素の画素値の平均値を対象となる画素の画素値に設定し、処理は終了する。
【0245】
ステップS133において、対象となる画素の水平に隣接している画素のいずれかが欠落していると判定された場合、ステップS135に進み、前処理回路501は、対象となる画素の水平に隣接している画素のいずれも欠落しているか否かを判定する。ステップS135において、対象となる画素の水平に隣接している画素のいずれかが欠落していないと判定された場合、ステップS136に進み、前処理回路501は、対象となる画素の水平に隣接している、欠落していない画素の画素値を対象となる画素の画素値に設定し、処理は終了する。
【0246】
ステップS135において、対象となる画素の水平に隣接している画素のいずれも欠落していると判定された場合、ステップS137に進み、前処理回路501は、エラーフラグを基に、対象となる画素の垂直に隣接している画素のいずれかが欠落しているか否かを判定する。ステップS137において、対象となる画素の垂直に隣接している画素のいずれも欠落していないと判定された場合、ステップS138に進み、前処理回路501は、対象となる画素の垂直に隣接している2つの画素の画素値の平均値を対象となる画素の画素値に設定し、処理は終了する。
【0247】
ステップS137において、対象となる画素の垂直に隣接している画素のいずれかが欠落していると判定された場合、ステップS139に進み、前処理回路501は、エラーフラグを基に、対象となる画素に隣接している全ての画素が欠落しているか否かを判定する。ステップS139において、対象となる画素に隣接しているいずれかの画素が欠落していないと判定された場合、ステップS140に進み、前処理回路501は、対象となる画素に隣接している、欠落していない画素の画素値を対象となる画素の画素値に設定し、処理は終了する。
【0248】
ステップS139において、対象となる画素に隣接している全ての画素が欠落していると判定された場合、ステップS141に進み、前処理回路501は、対象となる画素と同じ位置の過去のフレームの画素の画素値を、対象となる画素の画素値に設定し、処理は終了する。
【0249】
以上のように、前処理回路501は、対象となる画素の画素値を周辺の画素の画素値から線形に補間する。前処理回路501による補間処理により、これに続く処理で使用できるタップの範囲を広げることができる。
【0250】
タップ構築回路502−1乃至502−5は、それぞれ、タップデータ等を、所定のタイミングで、動きクラス生成回路503、DRクラス生成回路504、空間クラス生成回路505、および欠落クラス生成回路506に供給する。
【0251】
動きクラス生成回路503は、イニシャライズ回路309から供給されたパラメータ、並びにタップ構築回路502−1から供給されたエラーフラグおよび選択されたタップを基に、動きクラスコードおよび静動フラグを生成し、タップ構築回路502−2乃至205−5およびクラス合成回路507に出力する。動きクラスコードは、動きの量を示す2ビットの情報を有し、静動フラグは、動きの有り無しを1ビットで示す。
【0252】
図56(A)は、動きクラス生成回路503による時間アクティビティの算出に使用される、創造の対象となる画素を中心とした3×3の画素の例を示す図である。図56(A)において、”エラー”は、欠落した画素を示す。図56(B)は、図56(A)に示された画素に対応する、1つ前のフレームの3×3の画素の例を示す図である。図56(A)および図56(B)に示されるL1乃至L3は、それぞれラインを示し、ラインの同一の番号は、垂直方向に同一の位置であることを示す。図56(A)および図56(B)に示されるH1乃至H3は、それぞれ画素の水平方向の位置を示し、その同一の番号は、水平方向に同一の位置であることを示す。
【0253】
図56(A)および図56(B)に示される場合において、時間アクティビティは、式(12)で算出される。
Figure 0004517435
式(12)において、()は、画素の画素値を表し、||は、絶対値を求める関数を表す。
【0254】
動きクラス生成回路503は、創造の対象となる画素を中心とした3×3の画素の最大値と最小値との差に1を加算した空間アクティビティを算出する。
【0255】
図57は、動きクラス生成回路503による空間アクティビティの算出に使用される、創造の対象となる欠落した画素を中心とした3×3の画素の例を示す図である。このとき、空間アクティビティは、式(13)で算出される。
空間アクティビティ=Max(qi)−Min(qi)+1 (13)
式(13)において、Max(qi)は、q1乃至q9の画素値の最大値を示す。Min(qi)は、q1乃至q9の画素値の最小値を示す。
【0256】
動きクラス生成回路503は、空間アクティビティを基に、それぞれ異なる値を有する閾値を選択する。動きクラス生成回路503は、動き判定の閾値、および時間アクティビティを基に、動きクラスコードを設定する。
【0257】
図58は、動き判定の閾値を説明する図である。動き判定の閾値は、空間アクティビティの値によって、異なる値が使用される。空間アクティビティが大きくなれば、大きな値の閾値が使用される。これは、空間アクティビティが大きい場合、動きが少なくとも、時間アクティビティが、大きな値となることを考慮したものである。
【0258】
なお、スタンダードデンシティのデータに対する処理においては、空間アクティビティとは無関係に固定された閾値を使用して動きクラスコードが設定される。
【0259】
次に、動きクラス生成回路503の動きクラスコードを設定する処理を、図59のフローチャートを参照して説明する。ステップS151において、動きクラス生成回路503は、時間アクティビティが、閾値1以下であるか否かを判定し、時間アクティビティが閾値1以下であると判定された場合、ステップS152に進み、動きクラスコードを0に設定し、処理は終了する。
【0260】
ステップS151において、時間アクティビティが閾値1を越えると判定された場合、ステップS153に進み、動きクラス生成回路503は、時間アクティビティが、閾値2以下であるか否かを判定し、時間アクティビティが閾値2以下であると判定された場合、ステップS154に進み、動きクラスコードを1に設定し、処理は終了する。
【0261】
ステップS153において、時間アクティビティが閾値2を越えると判定された場合、ステップS155に進み、動きクラス生成回路503は、時間アクティビティが閾値3以下であるか否かを判定し、時間アクティビティが閾値3以下であると判定された場合、ステップS156に進み、動きクラスコードを2に設定し、処理は終了する。
【0262】
ステップS155において、時間アクティビティが閾値3を越えると判定された場合、ステップS157に進み、動きクラス生成回路503は、動きクラスコードを3に設定し、処理は終了する。
【0263】
以上のように、動きクラス生成回路503は、閾値および時間アクティビティを基に、動きクラスコードを設定する。
【0264】
動きクラス生成回路503は、複数の画素の動きクラスコードを基に、再度、動きフラグを設定する。例えば、図60に示すように、創造の対象となる画素の周辺の画素の動きクラスコードを基に、動きクラス生成回路503は、対象となる画素の動きクラスコードを設定する。
【0265】
動きクラス生成回路503の動きクラスコードを設定する処理を図61のフローチャートを参照して説明する。ステップS171において、動きクラス生成回路503は、7つの画素の動きクラスコードのうち、3の値が設定されている動きクラスコードの数が、閾値3より大きいか否かを判定し、3の値が設定されている動きクラスコードの数が、閾値3より大きいと判定された場合、ステップS172に進み、動きクラスコードに3を設定し、処理は終了する。
【0266】
ステップS171において、3の値が設定されている動きクラスコードの数が、閾値3以下であると判定された場合、ステップS173に進み、動きクラス生成回路503は、3の値が設定されている動きクラスコードの数と2の値が設定されている動きクラスコードの数を加えた値が、閾値2より大きいか否かを判定し、3の値が設定されている動きクラスコードの数と2の値が設定されている動きクラスコードの数を加えた値が、閾値2より大きいと判定された場合、ステップS174に進み、動きクラスコードに2を設定し、処理は終了する。
【0267】
ステップS173において、3の値が設定されている動きクラスコードの数と2の値が設定されている動きクラスコードの数を加えた値が、閾値2以下であると判定された場合、ステップS175に進み、動きクラス生成回路503は、3の値が設定されている動きクラスコードの数、2の値が設定されている動きクラスコードの数、および1の値が設定されている動きクラスコードの数を加えた値が、閾値1より大きいか否かを判定し、3の値が設定されている動きクラスコードの数、2の値が設定されている動きクラスコードの数、および1の値が設定されている動きクラスコードの数を加えた値が、閾値1より大きいと判定された場合、ステップS176に進み、動きクラスコードに1を設定し、処理は終了する。
【0268】
ステップS175において、3の値が設定されている動きクラスコードの数、2の値が設定されている動きクラスコードの数、および1の値が設定されている動きクラスコードの数を加えた値が、閾値1以下であると判定された場合、ステップS177に進み、動きクラス生成回路503は、動きクラスコードに0を設定し、処理は終了する。
【0269】
このように、動きクラス生成回路503は、複数の画素の動きクラスコード、並びに予め記憶している閾値を基に、最終的な、動きクラスコードを設定する。
【0270】
以上のように、動きクラス生成回路503は、複数の画素の画素値から動きクラスコードを設定し、出力する。動きクラス生成回路503は、動きクラスコードを基に、静動フラグを設定し、出力する。例えば、動きクラスコードが0または1のとき、静動フラグは、0に設定され、動きクラスコードが2または3のとき、静動フラグは、1に設定される。
【0271】
タップ構築回路502−2は、動きクラス生成回路503から供給された動きクラスコードおよび静動フラグ、並びに欠落画素の位置を基に、全てのクラス構造を網羅した予測タップを選択して、可変タップ選択回路508に供給する。
【0272】
タップ構築回路502−3は、動きクラス生成回路503から供給された動きクラスコードおよび静動フラグを基に、タップおよびクラスタップを選択して、エラーフラグとともに、DRクラス生成回路504に供給する。DRクラス生成回路504は、タップ構築回路502−3から供給されたタップ、クラスタップ、エラーフラグを基に、DRクラスコードを生成して、クラス合成回路507に出力する。
【0273】
タップ構築回路502−4は、動きクラス生成回路503から供給された動きクラスコードおよび静動フラグを基に、タップおよびクラスタップを選択して、エラーフラグとともに、空間クラス生成回路505に供給する。空間クラス生成回路505は、タップ構築回路502−4から供給されたタップ、クラスタップ、エラーフラグを基に、空間クラスコードを生成して、クラス合成回路507に出力する。
【0274】
タップ構築回路502−5は、動きクラス生成回路503から供給された動きクラスコードおよび静動フラグを基に、タップを選択して、エラーフラグとともに、欠落クラス生成回路506に供給する。欠落クラス生成回路506は、タップ構築回路502−5から供給されたタップ、エラーフラグを基に、欠落クラスコードを生成して、クラス合成回路507に出力する。
【0275】
クラス合成回路507は、動きクラスコード、静動フラグ、DRクラスコード、空間クラスコード、および欠落クラスコードを基に、クラスコードを統合し、最終的なクラスコードを形成して、係数保持クラスコード選択回路509に出力する。
【0276】
係数保持クラスコード選択回路509は、イニシャライズ回路309から供給された係数セット、および予測構造、並びにクラス合成回路507から供給されたクラスコードを基に、可変タップ選択回路508に、可変タップを選択させるとともに、予測係数列を推定予測演算回路510に出力する。
【0277】
図62乃至図65を基に、可変タップ選択回路508が選択する予測タップデータ列を説明する。
【0278】
図62は、動きクラスコードが0のとき、タップ構築回路502−2が可変タップ選択回路508に出力する予測タップ可変選択範囲と、可変タップ選択回路508が選択する予測タップデータ列の例を示す図である。図62において、実線で囲んだタップは、タップ構築回路502−2が出力する予測タップ可変選択範囲を示し、点線で囲んだタップは、可変タップ選択回路508が選択する予測タップデータ列を示す。可変タップ選択回路508が選択する予測タップデータ列は、タップ構築回路502−2が出力する予測タップ可変選択範囲に含まれるタップから構成される。
【0279】
例えば、動きクラスコードが0のとき、タップ構築回路502−2は、隣接するタップを選択する。例えば、動きクラスコードが0のとき、可変タップ選択回路508は、隣接するタップを選択する。
【0280】
図63は、動きクラスコードが1のとき、タップ構築回路502−2が出力する予測タップ可変選択範囲と、可変タップ選択回路508が選択する予測タップデータ列を示す図である。図63において、実線で囲んだタップは、タップ構築回路502−2が出力する予測タップ可変選択範囲を示し、点線で囲んだタップは、可変タップ選択回路508が選択する予測タップデータ列を示す。可変タップ選択回路508が選択する予測タップデータ列は、タップ構築回路502−2が出力する予測タップ可変選択範囲に含まれるタップから構成される。
【0281】
例えば、動きクラスコードが1のとき、タップ構築回路502−2は、隣接するタップと、その隣接するタップとは隣接しないタップを選択する。例えば、動きクラスコードが0のとき、可変タップ選択回路508は、隣接する5個のタップと、その隣接する5個のタップとは離れた隣接する5個のタップを選択する。
【0282】
図64は、欠落タップが存在して、動きクラスコードが0のとき、タップ構築回路502−2が出力する予測タップ可変選択範囲と、可変タップ選択回路508が選択する予測タップデータ列を示す図である。図中の黒丸は、欠落タップを示す。図64において、実線で囲んだタップは、タップ構築回路502−2が出力する予測タップ可変選択範囲を示し、点線で囲んだタップは、可変タップ選択回路508が選択する予測タップデータ列を示す。可変タップ選択回路508が選択する予測タップデータ列は、タップ構築回路502−2が出力する予測タップ可変選択範囲に含まれるタップから構成される。
【0283】
例えば、欠落タップが存在して、動きクラスコードが0のとき、タップ構築回路502−2は、隣接するタップを選択する。例えば、欠落タップが存在して、動きクラスコードが0のとき、可変タップ選択回路508は、欠落タップが存在しないときと同じ数の、隣接するタップ(例えば、欠落タップの隣のタップまたは欠落タップと同じ並びのタップ)を選択する。
【0284】
図65は、欠落タップが存在して、動きクラスコードが1のとき、タップ構築回路502−2が出力する予測タップ可変選択範囲と、可変タップ選択回路508が選択する予測タップデータ列を示す図である。図中の黒丸は、欠落タップを示す。図64において、実線で囲んだタップは、タップ構築回路502−2が出力する予測タップ可変選択範囲を示し、点線で囲んだタップは、可変タップ選択回路508が選択する予測タップデータ列を示す。可変タップ選択回路508が選択する予測タップデータ列は、タップ構築回路502−2が出力する予測タップ可変選択範囲に含まれるタップから構成される。
【0285】
例えば、欠落タップが存在して、動きクラスコードが1のとき、タップ構築回路502−2は、隣接するタップと、その隣接するタップとは隣接しないタップを選択する。例えば、欠落タップが存在して、動きクラスコードが0のとき、可変タップ選択回路508は、欠落タップが存在しないときと同じ数の、隣接するタップ(例えば、欠落タップの隣のタップまたは欠落タップと同じ並びのタップ)と、その隣接するタップとは離れた、欠落タップが存在しないときと同じ数の、隣接するタップを選択する。
【0286】
推定予測演算回路510は、イニシャライズ回路309から設定された出力モードを基に、可変タップ選択回路508から供給された予測タップデータ列、および係数保持クラスコード選択回路509から供給された予測係数列を基に、線形推定式を用いて、欠落した画素の画素値を算出する。
【0287】
このように、欠落画素創造回路308は、ダイナミックレンジ、動き、欠落、および画素値の変化などによるクラス分類により、欠落した画素の周辺の画素値を基に、欠落した画素値を算出する。
【0288】
また、推定予測演算回路510は、入力された画像の画質をアップさせる(階調の増加(Yデータ、Uデータ、およびVデータのビット数の増加)、ノイズの除去、量子化歪みの除去(時間方向の歪みの除去を含む)、4倍密度の解像度の創造など)ことができる。
【0289】
次に、4倍密解像度創造回路312について説明する。4倍密解像度創造回路312は、インターレース方式の画像を出力するとき、図66(A)および図66(B)に示すように、クラス分類適応処理を利用し、2つのフィールドの所定の数の画素の画素値を基に、入力された2つのフィールドの間に2つの画素を創造する。
【0290】
4倍密解像度創造回路312は、プログレッシブ方式の画像を出力するとき、図66(C)および図66(D)に示すように、クラス分類適応処理を利用し、図66に示すように、2つのフレームの所定の数の画素の画素値を基に、入力された2つのフレームの間に2つの画素を創造する。
【0291】
図67は、4倍密解像度創造回路312の構成を示すブロック図である。フォーマット変換回路310から供給されるYデータ、Uデータ、およびVデータは、タップ選択回路601、タップ選択回路602、およびタップ選択回路603に供給される。タップ選択回路601は、レジスタ609に格納されているタップの位置情報に従って、密度を4倍にするために創造する画素の画素値を算出するのに使用する画素を選択する。タップ選択回路601により選択された画素は、推定予測演算回路607に供給される。
【0292】
タップ選択回路602は、レジスタ610に格納されているタップの位置情報に従って、創造する画素の近傍の画素の画素値のうち、空間クラス分類に使用する画素を選択する。タップ選択回路602により選択された画素は、空間クラス検出回路604に供給される。空間クラス検出回路604は、空間クラスを検出する。検出された空間クラスは、クラス合成回路606に供給される。
【0293】
タップ選択回路603は、レジスタ611に格納されているタップの位置情報に従って、創造する画素の近傍の画素に基づいて動きに対応するクラス分類に使用する画素を選択するものである。タップ選択回路603により選択された画素は、動きクラス検出回路605に供給される。動きクラス検出回路605は、動きクラスを検出する。検出された動きクラスは、クラス合成回路606およびレジスタ610に供給される。レジスタ610のタップの位置情報は、動きクラス検出回路605から供給された動きクラスによって切り換えられる。
【0294】
クラス合成回路606は、空間クラスおよび動きクラスを統合し、最終的なクラスコードを形成する。
【0295】
このクラスコードが係数メモリ612に対して、アドレスとして供給され、係数メモリ612からクラスコードに対応する係数セットが読み出される。係数セットは、推定予測演算回路607に供給される。推定予測演算回路607は、タップ選択回路601から供給された画素の画素値、および係数メモリ612から供給された係数セットを基に、線形推定式を用いて、創造する画素の画素値を算出する。推定予測演算回路607からの出力は、ラインデータL1およびラインデータL2として、線順次変換回路613に供給される。
【0296】
係数セットは、教師信号としての、1つのフィールド当たり、水平方向に528画素および垂直方向に240画素を含むYデータ、それぞれ1つのフィールド当たり、水平方向に176画素および垂直方向に120画素を含むUデータおよびVデータを用いて、クラス毎の係数セットが予め生成されて、イニシャライズ回路313に記憶されている。
【0297】
線順次変換回路613は、ラインメモリを有し、推定予測演算回路607から出力されるラインデータL1およびラインデータL2をレジスタ608に格納されている出力タイミングのデータに基づき、線順次で出力する。線順次変換回路613から、供給された画像の4倍の密度の画像のデータが出力される。
【0298】
レジスタ608、レジスタ609、レジスタ610、レジスタ611、および係数メモリ612は、イニシャライズ回路313に初期化信号が供給されたとき、イニシャライズ回路313から供給された係数セット等を格納する。
【0299】
図68は、4倍密解像度創造回路312がインターレース方式で4倍密解像度の画素を生成、出力する場合における、4倍密解像度創造回路312に入力される画素(図中、大きい円で示す)の位置、および4倍密解像度創造回路312が出力する画素(図中、小さい円で示す)の位置を示す図である。4倍密解像度創造回路312に入力されるフレームは、30Hzの周波数を有し、4倍密解像度創造回路312が出力するフィールドは、60Hzの周波数を有する。出力される第1のフィールドの画素は、入力された画素から、垂直方向に出力される画面のラインの1ライン分だけ上にずれて出力され、1ライン当たりの画素の数は、2倍になっている。出力される第2のフィールドの画素は、入力された画素から、垂直方向に出力される画面のラインの1ライン分だけ下にずれて出力され、1ライン当たりの画素の数は、2倍になっている。
【0300】
図69は、4倍密解像度創造回路312がプログレッシブ方式で4倍密解像度の画素を生成して、出力するときの、4倍密解像度創造回路312に入力される画素(図中、大きい円で示す)の位置、および4倍密解像度創造回路312が出力する画素(図中、小さい円で示す)の位置を示す図である。4倍密解像度創造回路312に入力されるフレームは、30Hzの周波数を有し、4倍密解像度創造回路312が出力するフレームは、60Hzの周波数を有する。出力されるフレームの画素は、入力された画素と同じライン上に出力され、1ライン当たりの画素の数は、2倍になっている。
【0301】
以上のように、4倍密解像度創造回路312は、入力された画像を基に、2倍のフレーム周波数また2倍のフィールド周波数で、1ライン当たり2倍の画素の数を有する画像を創造して出力する。
【0302】
次に、UV垂直2倍回路333について説明する。図70は、UV垂直2倍回路333の構成を示すブロック図である。UV垂直2倍回路333には、4倍密解像度創造回路312により、画素の数が増やされたUデータおよびVデータが入力される。入力されたデータは、ラインFIFO701−1乃至701−6により、1ライン分ずつ遅延され、順次後段に出力される。
【0303】
乗算回路702−1は、入力されたデータに係数を乗じて、加算回路703に出力する。
【0304】
乗算回路702−2乃至702−7は、それぞれラインFIFO701−1乃至701−6より、入力されたデータに係数を乗じて、加算回路703に出力する。
【0305】
加算回路703は、乗算回路702−1乃至702−7から供給されたデータを加算し、ラッチ回路704に供給する。ラッチ回路704は、クロック信号が入力されたとき、入力されたデータをラッチする。
【0306】
UV垂直2倍回路333の動作を図71を参照して説明する。ラインFIFO701−1乃至701−6は、入力されたラインに連続する6本のライン上の、画面の水平方向に同一の位置の画素(図71に丸印で示す画素)のデータを出力する。乗算回路702−1乃至702−7は、入力されたデータに、それぞれ係数を乗じて、加算回路703に出力する。加算回路703は、出力されたデータを加算し、ラッチ回路704に出力する。ラッチ回路704には、ラインの本数が2倍となるタイミング(図71に黒い3角形で示すタイミング)で、クロック信号が入力される。従って、UV垂直2倍回路333は、入力されたUデータおよびVデータのラインの本数を2倍に補間して、出力する。
【0307】
次に、受信装置2の受信の処理を図72のフローチャートを参照して説明する。ステップS201において、パケット解体回路302は、受信回路301が受信したパケットを解体し、復号回路304に供給する。ステップS202において、復号回路304は、パケット解体回路302から入力されたデータを、ADRC方式で復号する。伝送中にデータが欠落したとき、復号回路304の復号において、q、動きフラグMF、ダイナミックレンジDR、または画素値の最小値MINがリカバリされ、Yデータ、Uデータ、およびVデータが復号される。
【0308】
ステップS203において、フォーマット変換回路306は、復号回路304から供給されたYデータ、Uデータ、およびVデータを、欠落画素創造回路308が処理できる所定のフォーマットに変換する。ステップS204において、欠落画素創造回路308は、欠落した画素のうち、復号回路304で復号できなかった画素を、クラス適応処理により、創造する。
【0309】
ステップS205において、フォーマット変換回路310は、欠落画素創造回路308から供給されたYデータ、Uデータ、およびVデータを、4倍密解像度創造回路312が処理できる所定のフォーマットに変換する。ステップS206において、4倍密解像度創造回路312は、入力されたYデータ、Uデータ、およびVデータを基に、クラス適応処理により画素を創造し、画素の密度を4倍にして、補間部314に出力する。
【0310】
ステップS207において、フォーマット変換回路331は、4倍密解像度創造回路312から供給されたYデータ、Uデータ、およびVデータを、所定の補間の処理ができるように、データ形式を変更する。ステップS208において、UV垂直2倍回路333は、UデータおよびVデータを垂直方向に画素を補間して、ライン数が2倍になるようにする。ステップS209において、D/A変換回路335は、所定のクロックレートでデジタルアナログ変換し、アナログY信号、アナログU信号、およびアナログV信号を出力し、処理は終了する。
【0311】
以上のように、受信装置2は、伝送路でデータが欠落しても、復号することができ、また、欠落した画素を創造して、欠落した画素の影響をほとんど受けずに伸張し、画像の信号を出力することができる。
【0312】
なお、画像伝送システムは、画像を送受信するとして説明したが、画像に限らず、音声などのデータを伝送するようにしてもよい。
【0313】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0314】
図73は、記録媒体およびコンピュータの例を説明する図である。CPU(Central Processing Unit)811は、各種アプリケーションプログラムや、OS(Operating System)を実際に実行する。ROM(Read-only Memory)812は、一般的には、CPU811が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。RAM(Random-Access Memory)813は、CPU811の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。これらはCPUバスなどから構成されるホストバス814により相互に接続されている。
【0315】
ホストバス814は、ブリッジ815を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス816に接続されている。
【0316】
キーボード818は、CPU811に各種の指令を入力するとき、使用者により操作される。マウス819は、ディスプレイ820の画面上のポイントの指示や選択を行うとき、使用者により操作される。ディスプレイ820は、液晶表示装置またはCRT(Cathode Ray Tube)などから成り、各種情報をテキストやイメージで表示する。HDD(Hard Disk Drive)821は、ハードディスクを駆動し、それらにCPU811によって実行するプログラムや情報を記録または再生させる。
【0317】
ドライブ822は、装着されている磁気ディスク841、光ディスク842、光磁気ディスク843、または半導体メモリ844に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インターフェース817、外部バス816、ブリッジ815、およびホストバス814を介して接続されているRAM813に供給する。
【0318】
これらのキーボード818乃至ドライブ822は、インターフェース817に接続されており、インターフェース817は、外部バス816、ブリッジ815、およびホストバス814を介してCPU811に接続されている。
【0319】
記録媒体は、図73に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク841(フロッピディスクを含む)、光ディスク842(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク843(MD(Mini-Disc)を含む)、若しくは半導体メモリ844などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM812や、HDD821などで構成される。
【0320】
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0321】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0322】
【発明の効果】
以上の如く本発明によれば、乗算のためのハードウェアの規模を小さくし、係数テーブルを記憶するメモリ量を小さくすることができる。
【図面の簡単な説明】
【図1】従来のパケットの構造を説明する図である。
【図2】画像を送信する画像伝送システムを説明する図である。
【図3】本発明に係る送信装置1の一実施の形態の構成を示すブロック図である。
【図4】送信装置1に入力された画像信号が圧縮される過程を説明する図である。
【図5】間引きフィルタ43の構成を示すブロック図である。
【図6】ラッチ回路81の出力を説明する図である。
【図7】ラッチ回路84の出力を説明する図である。
【図8】UV垂直1/2回路45の構成を示すブロック図である。
【図9】ラッチ回路94の出力を説明する図である。
【図10】符号化回路15の構成を示すブロック図である。
【図11】処理の単位を説明する図である。
【図12】ADRCブロックを説明する図である。
【図13】フレーム内の画素とADRCブロックの関係を示す図である。
【図14】フレーム内の画素とADRCブロックの関係を示す図である。
【図15】フレーム内の画素とADRCブロックの関係を示す図である。
【図16】YデータのADRCブロックおよびセグメントを説明する図である。
【図17】UデータまたはVデータのADRCブロックおよびセグメントを説明する図である。
【図18】ADRCブロック単位で行われるシャフルを説明する図である。
【図19】セグメントを説明する図である。
【図20】ADRC符号化回路103の構成を説明する図である。
【図21】情報量制御回路164の構成を説明する図である。
【図22】情報量制御回路164の構成を説明する図である。
【図23】セグメント間シャフル回路104のシャフルの仕方を説明する図である。
【図24】セグメント間シャフル回路104のシャフルの仕方を説明する図である。
【図25】セグメント間シャフル回路104のシャフルの仕方を説明する図である。
【図26】セグメント間シャフル回路104のシャフルの仕方を説明する図である。
【図27】パケットの構成を示す図である。
【図28】セグメント間シャフル回路104の構成を示すブロック図である。
【図29】入力データカウンタ部212のカウンタ群について説明する図である。
【図30】出力データカウンタ部216のカウンタ群について説明する図である。
【図31】送信装置1の画像の送信の処理を説明する図である。
【図32】受信装置2の構成を示すブロック図である。
【図33】画像が伸張される過程を説明する図である。
【図34】復号回路304のブロック図である。
【図35】qビットMFリカバリ回路353の構成を示すブロック図である。
【図36】ダイナミックレンジDRまたは画素値の最小値MINのリカバリの処理を説明する図である。
【図37】ダイナミックレンジDRまたは画素値の最小値MINのリカバリの処理を説明する図である。
【図38】ダイナミックレンジDRまたは画素値の最小値MINのリカバリの処理を説明する図である。
【図39】セグメント間デシャフル回路352から出力されるデータに欠落がない場合の、復号回路304の処理のタイミングの例を示す図である。
【図40】セグメント間デシャフル回路352から出力されるデータに欠落がある場合の、復号回路304の処理のタイミングの例を示す図である。
【図41】従来のデータの記憶の方法を示す図である。
【図42】ブロックデシャフル回路356のデータの出力のタイミングを説明する図である。
【図43】リカバリエラー判定回路357の構成を示すブロック図である。
【図44】リカバリエラー判定回路357が、”1”が設定されたリカバリ判定フラグFdを出力するときの、ブロックデシャフル回路356の処理を説明する図である。
【図45】セグメント間デシャフル回路353が、連続エラー信号を出力するときの、ブロックデシャフル回路356の処理を説明する図である。
【図46】グレイモードにおけるブロックデシャフル回路356の処理を説明する図である。
【図47】ブロックデシャフル回路356のリカバリオフ入力に対応した処理を説明する図である
【図48】ブロックデシャフル回路356のリカバリオフ入力に対応した処理を説明する図である
【図49】ブロックデシャフル回路356のエスケープ信号に対応した処理を説明する図である。
【図50】ブロックデシャフル回路356の復号したデータを出力する処理を説明するフローチャートである。
【図51】ブロックデシャフル回路356の復号したデータを出力する処理を説明するフローチャートである。
【図52】リカバリオフ入力が”1”であるときのブロックデシャフル回路356のデータを出力する処理を説明するフローチャートである。
【図53】欠落画素創造回路308の処理に使用される画素を説明する図である。
【図54】欠落画素創造回路308の構成を示すブロック図である。
【図55】前処理回路501の処理を説明するフローチャートである。
【図56】時間アクティビティの算出に使用される画素の例を示す図である。
【図57】空間アクティビティの算出に使用される画素の例を示す図である。
【図58】動き判定の閾値を説明する図である。
【図59】静動判定回路521の動きクラスコードを設定する処理を説明するフローチャートである。
【図60】動きクラスコードの多数決判定に使用される画素の例を示す図である。
【図61】動きクラス生成回路503の動きクラスコードを設定する処理を説明するフローチャートである。
【図62】可変タップ選択回路508が選択する予測タップデータ列を説明する図である。
【図63】可変タップ選択回路508が選択する予測タップデータ列を説明する図である。
【図64】可変タップ選択回路508が選択する予測タップデータ列を説明する図である。
【図65】可変タップ選択回路508が選択する予測タップデータ列を説明する図である。
【図66】4倍密解像度創造回路312の処理に使用される画素の位置を説明する図である。
【図67】4倍密解像度創造回路312の構成を示すブロック図である。
【図68】4倍密解像度創造回路312がインターレース方式で出力する場合の4倍密解像度創造回路312に入力される画素の位置および4倍密解像度創造回路312が出力する画素の位置を示す図である。
【図69】4倍密解像度創造回路312がプログレッシブ方式で出力する場合の4倍密解像度創造回路312に入力される画素の位置および4倍密解像度創造回路312が出力する画素の位置を示す図である。
【図70】UV垂直2倍回路333の構成を示すブロック図である。
【図71】ラッチ回路704の出力を説明する図である。
【図72】受信装置2の受信の処理を説明するフローチャートである。
【図73】記録媒体およびコンピュータの例を説明する図である。
【符号の説明】
1 送信装置, 2 受信装置, 13 間引き部, 15 符号化回路, 17 パケット化回路, 42 A/D変換回路, 43 間引きフィルタ, 45 UV垂直1/2回路, 102 ブロックシャフル回路, 103 ADRC符号化回路, 104 セグメント間シャフル回路, 164 情報量制御回路, 171 ADRCエンコーダ, 104 セグメント間シャフル回路,111 データ選択部, 212 入力データカウンタ部、 213 入出力コントローラ, 214 アドレス発生部, 215 記憶部, 216 出力データカウンタ部, 302 パケット解体回路, 304 復号回路, 305 外部メモリ, 308 欠落画素創造回路, 312 4倍密解像度創造回路, 333 UV垂直2倍回路, 335 D/A変換回路, 352 セグメント間デシャフル回路, 353 qビットMFリカバリ回路, 354 DRMINリカバリ回路, 355 ADRC復号回路, 356 ブロックデシャフル回路, 357 リカバリエラー判定回路, 501 前処理回路, 502−1乃至502−5 タップ構築回路, 503 動きクラス生成回路, 504 DRクラス生成回路, 505 空間クラス生成回路, 506 欠落クラス生成回路, 507 クラス合成回路, 508 可変タップ選択回路,509 係数保持クラスコード選択回路, 510 推定予測演算回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus and method, and more particularly, to an information processing apparatus and method using a memory map in which a combination of address bits corresponds to a count counter value of input data selection, counting, and memory addressing destination on a one-to-one basis. .
[0002]
[Prior art]
In many compression methods in data transmission, variable length coding represented by entropy coding is used to improve the compression ratio. The feature of this entropy coding is that the compression is realized by changing the length of the code word in accordance with the content of the data to be compressed. For example, a short codeword is assigned to data with a high occurrence frequency, and a long codeword is assigned to data with a low occurrence frequency. As a result, the information amount of the entire data to be transmitted is reduced.
[0003]
When incorrect data is received on the receiving side due to a communication error, the length of the codeword always changes according to the content of the data, so that the decoding error continues up to the reference point of the transmitted data. This phenomenon is generally called “error propagation”.
[0004]
In addition, moving image compression methods represented by MPEG (Moving Picture Experts Group) reduce spatial redundancy by discrete cosine transform and reduce temporal redundancy by transmitting only the difference between frames. Reduce the amount of data by reducing.
[0005]
The moving image data compressed by such a compression method is decompressed at the receiving side. However, when the moving image data transmitted due to a communication error is lost, the lack of the data is expanded spatially and temporally. The higher the compression ratio, the more pronounced the effect.
[0006]
The communication path conditions in the mobile environment are inferior to those of a fixed station or wire, and burst-like data loss called “packet loss” occurs relatively frequently. Therefore, in the communication of moving images using compression in such a mobile environment, shuffling is performed between consecutive data before data is transmitted, and data is distributed, so that packets are lost. However, on the receiving side, the missing packet data can be interpolated by the received packet data.
[0007]
For example, when data encoded by the ADRC (Adaptive Dynamic Range Coding) method is shuffled and then packetized and transmitted, a packet configuration as shown in FIG. 1 has been proposed. FIG. 1 shows a packet configuration when two frames of ADRC data are divided into ATM (Asynchronous Transfer Mode) packet sizes for transmission. One packet includes a dynamic range (DR), a motion flag (MF), a minimum pixel value (MIN), a quantization table index (TI), and a code Q. Hereinafter, as appropriate, DR, MF, MIN, and TI are referred to as FL data, and the code Q is referred to as VL data.
[0008]
One DR data is composed of A bits, MIN data is composed of B bits, MF data is composed of C bits, and TI data is composed of D bits. The size of the data area of one packet is set to 47 bytes, and the remaining number of bits excluding the data amount of the four data DR, MF, MIN, and TI described above from 47 bytes is the data size of the code Q. .
[0009]
There are a total of seven types of packet configurations of type 0 to type 6, and each packet is properly used according to the packet number. The number of included data DR, MF, MIN, and TI is different for each packet type, and the number of bits of the code Q is also different accordingly. In this way, by using different packet types, even when packet loss occurs, the influence is suppressed.
[0010]
[Problems to be solved by the invention]
As described above, when data is shuffled and then transmitted, it must be temporarily stored in a storage device such as a RAM (Random Access Memory) in order to perform shuffling. RAM and the like usually handle data in byte units. Therefore, as described above, when a plurality of packet types are used, when the data in the packet is handled in units of bytes, the bit allocation of each data often shifts in units of bytes, and each data in the packet Since the position differs for each packet type, it is necessary to monitor the bit allocation state and determine the shift amount by calculation, or use a table describing the bit allocation combinations for each packet type. .
[0011]
In addition, a method using a coefficient table in which multiplication or a combination of multiplications is predicted can be considered for the addressing operation when performing shuffling. When multiplication is used for addressing, computation time is required, and the hardware configuration scale may increase. When using a coefficient that predicts a combination of multiplication, when dealing with a plurality of different data as described above, there is a problem that the combination of those values becomes enormous and the amount of memory for storing the coefficient becomes large. .
[0012]
The present invention has been made in view of such a situation. The data is handled as a byte unit, and the combination of the address bits is one-to-one corresponding to the count counter value of the input data selection, counting, and memory addressing destination. An object of the present invention is to reduce the scale of hardware for multiplication and to reduce the amount of memory for storing a coefficient table by using a memory map.
[0013]
[Means for Solving the Problems]
  An information processing apparatus according to an aspect of the present invention stores Y data, U data, and V data generated by converting a component signal in a first memory, and stores the stored Y data, U data, and U data. The data and the V data are rearranged into an ADRC block format, and a shuffle unit that shuffles within a segment range and in units of ADRC blocks, the Y data supplied from the block shuffle unit, the U data, and the Coding means for coding V data based on an ADRC (Adaptive Dynamic Range Coding) system, and storing data supplied from the coding means in a second memory, and changing the addresses of the storage and reading The inter-segment shuffling means for shuffling and the de-shuffling means supplied from the inter-segment shuffle means. Packetizing means for packetizing data into a packet including a dynamic range, a motion flag, a minimum pixel value, a quantization table index, and a code Q in one packet, and the inter-segment shuffling means includes: A data selection unit, an input data counter unit, an input / output controller unit, an address generation unit, and an output data counter unit. The data selection unit includes a dynamic range, a motion flag, a minimum pixel value, and an index of a quantization table. For each element of the first data configured, three pieces are input in parallel, and second data including the code Q is input at a timing alternated with the first data, and the input data is serialized. Convert to data, output to the input / output controller means, the input / output The controller means stores the input data in the second memory based on the address generated by the address generating means, and the input / output controller means stores the data stored in the second memory. Address generation means reads out and outputs to the packetization means based on the address generated according to the data supplied from the output data counter means.
The input data counter means includes a group of counters indicating information for identifying the type of data input to the data selection means, addressing when storing in the second memory, and a direction of shuffling. Can be.
The counter group includes addressing and shuffling, and the first data counter for addressing is a counter that counts the number of blocks of the first data in one buffer. A counter group for counting the second data for addressing, comprising a counter for counting the number of packets of the first data and a counter for counting the total number of packets of the first data in one bank Is a counter that counts the number of packets of the second data in one buffer, a counter that counts the total number of packets of the second data in one bank, and the number of buffers of the second data in one segment A counter that counts the packet, and the second data in any order. A counter that counts the remainder when dividing by the number N of bytes of the second data per hit, and the first data counter for shuffling is the counter of the first data in one bank. A counter that counts the number of segments, and a counter that determines a shuffling direction of the first data in one segment. The second data counter for shuffling is the second counter in one bank. A counter for counting the number of data segments, and a counter for determining the shuffling direction of the second data in one segment.
The output data counter means includes a group of addressing counters, and the first data addressing counter is a counter that counts an index of the quantization table in a data cell of one packet size. A counter that counts the number of motion flags in a data cell, a counter that counts the number of minimum values of the dynamic range and the pixel value in a data cell of one packet size, an index of the quantization table in bit size, and the motion flag A counter that counts the number of blanks inserted to handle as byte-size data, a counter that determines the number of the second data in the packet in one packet, and a count of the number of packets in one buffer It can be made to and a counter.
The data stored in the second memory is read based on the address generated by the address generating means according to the counter group of the output data counter means, and the reading is performed at a predetermined timing. Is input to the inter-segment shuffling means, the process of collecting the index of the quantization table and the motion flag in units of bytes is performed, and when the collection process is completed, according to the arrangement of the data in the packet , Read from the second memory, and output to the packetizing means.
[0014]
According to an information processing method of one aspect of the present invention, Y data, U data, and V data generated by converting a component signal are stored in a first memory, and the stored Y data, U data The data and the V data are rearranged into an ADRC block format, block shuffled within a segment range and in units of ADRC blocks, and the block shuffled Y data, U data, and V data are converted into ADRC ( The data is encoded based on the Adaptive Dynamic Range Coding method, the encoded data is stored in the second memory, and the address of the storage and reading is changed to shuffle between the segments. In one packet, dynamic range, motion flag, minimum pixel value, quantization A first data including a dynamic range, a motion flag, a minimum value of a pixel value, and an index of a quantization table. 3 elements are input in parallel for each element, second data including the code Q is input at a timing alternated with the first data, the input data is converted into serial data, and an address is generated. The input data is stored in the second memory based on the address generated by the means, and the data stored in the second memory is read based on the address generated by the address generating means. Done in
[0015]
In the information processing apparatus and method according to one aspect of the present invention, Y data, U data, and V data generated by converting a component signal are stored in the first memory, and the stored Y data, U data and V data are rearranged in the form of ADRC blocks, shuffled in the range of segments and in units of ADRC blocks, and shuffled Y data, U data, and V data are encoded based on the ADRC method. The encoded data is stored in the second memory, the address of the storage and reading is changed, and the segment is shuffled. In one packet, the dynamic range, the motion flag, the minimum pixel value, It is packetized into a packet containing the quantization table index and code Q. In addition, three inter-segment shuffles are input in parallel for each element of the first data composed of the dynamic range, the motion flag, the minimum pixel value, and the quantization table index. The second data including the code Q is input at an alternate timing, and the input data is converted into serial data. Based on the address generated by the address generating means, the input data is converted into the second data. The data stored in the memory and stored in the second memory is read out based on the address generated by the address generating means.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 2 is a diagram for explaining an image transmission system for transmitting and receiving an image according to the present invention. The transmission apparatus 1 compresses and encodes the input video signal by the method according to the present invention, converts it into a packet format, and transmits it to the reception apparatus 2 via the transmission path. The receiving device 2 receives a packet transmitted via a transmission path, decodes data included in the packet by the method according to the present invention, expands it, and outputs it as a video signal. In a transmission line, data included in a packet may be lost due to congestion or the like. Further, when the processing capacity of an ATM switch (not shown) constituting the transmission path is exceeded, the packet itself may be lost.
[0017]
FIG. 3 is a block diagram showing a configuration of an embodiment of the transmission apparatus 1 according to the present invention. When any one of an analog composite video signal or an analog component signal (Y / C signal) such as a luminance signal Y and a chroma signal C is input to the Y / C separation chroma decoder 11, It is converted into component signals (Y / U / V signals) such as a luminance signal Y and color signals U and V, and supplied to the selector 12. The selector 12 selects one of the Y / U / V signal supplied from the Y / C separation chroma decoder 11 or the signal input in the Y / U / V signal format from the beginning, and supplies the selected signal to the thinning unit 13. . This Y / U / V signal is, for example, a signal of standard density (SD), 4: 2: 2, a field frequency of 60 Hz, and an interlace format.
[0018]
The thinning unit 13 thins the Y signal, the U signal, and the V signal supplied from the selector 12 by a method described later, and supplies the thinned signal to the format conversion circuit 14. The thinning unit 13 includes a pre-filter 41, an A / D conversion circuit 42, a thinning filter 43, an external memory 44, a UV vertical 1/2 circuit 45, and an external memory 46.
[0019]
The prefilter 41 is a low-pass filter that outputs only predetermined frequency bands of the input Y signal, U signal, and V signal. The output of the prefilter 41 is supplied to the A / D conversion circuit 42.
[0020]
The A / D conversion circuit 42 samples the input Y signal, U signal, and V signal, and makes each of them 8-bit data, for example. The analog Y signal input to the A / D conversion circuit 42 is sampled and output to the thinning filter 43 as Y data including 528 pixels in the horizontal direction and 480 pixels in the vertical direction.
[0021]
The analog U signal input to the A / D conversion circuit 42 is sampled and output to the thinning filter 43 as U data including 176 pixels in the horizontal direction and 480 pixels in the vertical direction. The analog V signal input to the A / D conversion circuit 42 is sampled and output to the thinning filter 43 as V data including 176 pixels in the horizontal direction and 480 pixels in the vertical direction.
[0022]
Accordingly, the output of the A / D conversion circuit 42 is a signal having a 3: 1: 1 format.
[0023]
The thinning filter 43 temporarily stores the input Y data, U data, and V data in the external memory 44, and each of the temporarily stored Y data, U data, and V data is set to 1 in the horizontal direction. / 2 and ½ in the vertical direction are thinned out and supplied to the UV vertical ½ circuit 45.
[0024]
The UV vertical 1/2 circuit 45 temporarily stores the Y data, U data, and V data supplied from the thinning filter 43 in the external memory 46, and the temporarily stored U data and V data, respectively. The data is thinned down to 1/2 in the vertical direction, and Y data, U data, and V data are output to the format conversion circuit 14.
[0025]
Therefore, the signal output from the thinning unit 13 is a signal of 3: 0.5: 0.5.
[0026]
The format conversion circuit 14 rearranges the Y data, the U data, and the V data supplied from the thinning unit 13 by a method described later, and supplies the rearranged data to the encoding circuit 15 as a block structure.
[0027]
The encoding circuit 15 temporarily stores the Y data, U data, and V data supplied from the format conversion circuit 14 in the external memory 16, and stores the Y data, U data, and V data stored in the external memory 16. The data is shuffled by changing the storage and reading addresses, encoded by the ADRC (Adaptive Dynamic Range Coding) method, shuffled, and output to the packetizing circuit 17.
[0028]
The ADRC method is a variable length coding method that outputs a variable length code adapted to the dynamic range (DR) of input image data. Image data is divided into blocks (ADRC blocks described later) composed of a plurality of pixels, and a dynamic range that is a difference between the maximum value and the minimum value of pixel values included in each block is detected. Based on the dynamic range of the block, each pixel value is re-quantized with a bit number smaller than the original quantization bit number (for example, 8 bits). The smaller the dynamic range, the smaller the number of bits that can be re-quantized, and while suppressing the increase in quantization distortion, it is possible to remove only the pixel value redundancy and further reduce the amount of data. is there.
[0029]
The ADRC method selects the number of quantization bits in relation to the size of the dynamic range. In order to determine the magnitude relationship of the dynamic range, a threshold value corresponding to movement or the like is used. For example, when assigning any one of 2 bits, 3 bits, or 4 bits as the number of bits for requantization, thresholds T1 and T2 stored in the quantization table for each motion or dynamic range (however, T1 <T2) is used. The same quantization table is also used on the receiving side.
[0030]
In a block having a dynamic range equal to or less than (T1-1), 2 bits are assigned to the code for the pixel value. In a block whose dynamic range is T1 or more and (T2-1) or less, 3 bits are assigned to the code for the pixel value. In a block having a dynamic range of T2 or more, 4 bits are assigned to the code for the pixel value. Let q be the number of bits assigned to the code for the pixel value.
[0031]
Encoding is performed with 88 ADRC blocks created by dividing 2 frames into 30 units (this unit is referred to as a buffer). Here, one quantization table storing threshold values T1 and T2 is selected so that the code generated for one buffer is 16,104 bits or less. The selected quantization table is designated by a table index indicated by TI. By setting the code generated for one buffer to be 16,104 bits or less, the encoded image data information can be set to 8 Mbps.
[0032]
When the dynamic range is greater than 2 to the qth power, the code Q for the pixel value is
[(L-MIN + 0.5) × 2q / DR]
Is calculated by [] Represents truncation after the decimal point. L represents the pixel value, and MIN represents the minimum pixel value of the pixels in the block. DR represents the dynamic range of the block. When the dynamic range is 2 to the qth power or less, the code Q for the pixel value is calculated by L-MIN.
[0033]
The encoded circuit 15 includes, as encoded data, a table index TI that specifies a quantization table, a dynamic range DR, a minimum value MIN of pixel values of pixels in the block, a motion flag MF that indicates motion, and pixel values. The corresponding code Q is output. The table index TI, the dynamic range DR, the minimum value MIN of the pixel values of the pixels in the block, and the length (number of bits) of the motion flag MF indicating motion are fixed at 8 bits. On the other hand, the length of the code Q with respect to the pixel value changes.
[0034]
The packetizing circuit 17 temporarily stores the encoded data supplied from the encoding circuit 15 in the external memory 18, and divides the temporarily stored encoded data into 1.6K bits. The header is added to form a packet, which is supplied to the transmission circuit 19. The transmission circuit 19 modulates the packet supplied from the packetizing circuit 17 using a predetermined transmission method, and transmits the modulated packet via the transmission path.
[0035]
The PLL circuit 20 generates a reference signal synchronized with the image and supplies the reference signal to the control circuit 21. The control circuit 21 is based on the reference signal supplied from the PLL circuit 20 to the decimation unit 13, the format conversion circuit 14, the encoding circuit 15, the external memory 16, the packetizing circuit 17, the external memory 18, and the transmission circuit 19. A control signal is supplied to control the operation of the entire transmission apparatus 1.
[0036]
With reference to FIG. 4, a process of compressing an image signal input to the transmission apparatus 1 will be described. The interlaced Y signal having a field frequency of 60 Hz is converted into Y data of 528 pixels in the horizontal direction and 480 pixels in the vertical direction per field by the A / D conversion circuit 42. Interlaced U and V signals having a field frequency of 60 Hz are converted into U data and V data of 176 pixels in the horizontal direction and 480 pixels in the vertical direction, respectively. The image signal information input to the A / D conversion circuit 42 corresponds to 166 Mbps, and the image data information output from the A / D conversion circuit 42 is 104 Mbps, which is compressed to an information amount of 62%.
[0037]
The Y data including 528 pixels in the horizontal direction and 480 pixels in the vertical direction per frame of the interlace method having a field frequency of 60 Hz is converted into the horizontal direction per frame of the progressive method having a frame frequency of 30 Hz by the thinning filter 43. To 264 pixels and 240 pixels vertically. The U data and V data including 176 pixels in the horizontal direction and 480 pixels in the vertical direction per interlaced frame having a field frequency of 60 Hz are converted into one progressive frame having a frame frequency of 30 Hz by the thinning filter 43. The data is compressed into data including 88 pixels in the horizontal direction and 240 pixels in the vertical direction.
[0038]
The U data and V data including 88 pixels in the horizontal direction and 240 pixels in the vertical direction per frame are respectively compressed by the UV vertical 1/2 circuit 45 into data including 88 pixels in the horizontal direction and 120 pixels in the vertical direction. The The information of the image data output from the UV vertical 1/2 circuit 45 is 21 Mbps and is compressed to 13% of the information amount as compared with the information of the signal input to the transmission apparatus 1.
[0039]
Thus, by performing the thinning process in the thinning unit 13, the configuration of each circuit in the subsequent stage can be simplified, and the bit rate in the transmission path can be set to a practically small value.
[0040]
The U and V data including 88 pixels in the horizontal direction and 120 pixels in the vertical direction per frame of the progressive system having a frame frequency of 30 Hz are converted into two pieces of data of 88 pixels × 120 pixels by the format conversion circuit 14. It is converted to the combined data.
[0041]
Y data having 264 pixels in the horizontal direction and 240 pixels in the vertical direction and U data and V data of 88 pixels × 120 pixels × 2 per frame are encoded by the encoding circuit 15. The encoded image data information is 8 Mbps, and is compressed to an information amount of 5% as compared with the analog signal information input to the transmission apparatus 1.
[0042]
As described above, the transmission device 1 compresses and encodes the image signal.
[0043]
FIG. 5 is a block diagram showing a configuration of the thinning filter 43. The interlaced Y data is supplied to the horizontal ½ circuit 61 along the horizontal line. The horizontal 1/2 circuit 61 includes delay circuits (registers) 71-1 to 71-N, multiplier circuits 72-1 to 72-N, and an adder circuit 73.
[0044]
The Y data sequentially input to the horizontal 1/2 circuit 61 which is a half-band filter is delayed by one pixel in the horizontal direction by the delay circuits 71-1 to 71-N and sequentially output to the subsequent stage. The multiplier circuits 72-1 to 72-N multiply the input Y data (pixels) by 1 / N and output the result to the adder circuit 73. The adder circuit 73 adds the data supplied from the multiplier circuits 72-1 to 72-N and outputs the result to the vertical ½ circuit 62.
[0045]
The vertical 1/2 circuit 62 that is a half-band filter includes a latch circuit 81, a field FIFO (Fast In Fast Out) 82, an adder circuit 83, and a latch circuit 84. Data output from the horizontal ½ circuit 61 is supplied to the latch circuit 81. When the clock signal is input, the latch circuit 81 latches the input data and outputs the latched data.
[0046]
The operation of the horizontal 1/2 circuit 61 will be described with reference to FIG. Y data (pixels indicated by white circles in FIG. 6) sequentially input in the horizontal direction of the frame is held by delay circuits 71-1 to 71-N and coefficients are respectively multiplied by multiplication circuits 72-1 to 72-N. Is multiplied. The outputs of the multiplier circuits 72-1 to 72-N are added by the adder circuit 73 and then output to the latch circuit 81. A clock signal for instructing latching is input to the latch circuit 81 at a timing corresponding to the black square in FIG. In the example of FIG. 6, since one clock is input to the latch circuit 81 every time data of two pixels is transferred in the horizontal direction, for example, when N = 2 and the value of each coefficient is 1/2 The average value of two adjacent pixels is latched by the latch circuit 81 at the timing indicated by the black square in FIG. As described above, the number of pixels latched by the latch circuit 81 is ½ of the number of pixels of data input to the thinning filter 43.
[0047]
The value latched by the latch circuit 81 is supplied to the field FIFO 82 and the adder circuit 83. The field FIFO 82 stores the pixel data of the first field thinned by 1/2 in the horizontal direction supplied from the latch circuit 81, delays it by one field, and outputs it to the adder circuit 83. The adder circuit 83 adds the data supplied from the latch circuit 81 and the field FIFO 82 and supplies the sum to the latch circuit 84. When the enable signal is input, the latch circuit 84 latches the input data.
[0048]
The operation of the vertical 1/2 circuit 62 will be described with reference to FIG. The Y data of any pixel in the first field (black square pixel on the first field shown in FIG. 7) and the pixel in the next lower line at the same position in the horizontal direction of the screen as the pixel in the first field After the data of the pixels in the second field (black square pixels on the second field located at the lower right of the black square pixels on the first field shown in FIG. 7) are added by the adder circuit 83 Are output to the latch circuit 84. Therefore, the latch circuit 84 latches the average value of the pixels in the first field and the second field (corresponding to the pixels indicated by white squares in FIG. 7).
[0049]
In this way, the output of the latch circuit 84 is thinned out to 1/2 between the first field and the second field with respect to the pixel data output from the latch circuit 81, and then the third field and Progressive Y data having a frame frequency of 30 Hz is thinned out by a half between the fourth fields.
[0050]
Similarly, the U data and V data are also thinned in half in the horizontal direction and the vertical direction, and become progressive format data having a frame frequency of 30 Hz.
[0051]
As described above, the Y data, U data, and V data of the image output from the thinning filter 43 become progressive format data having a frame frequency of 30 Hz that has been thinned.
[0052]
Next, the UV vertical 1/2 circuit 45 will be described. FIG. 8 is a block diagram showing the configuration of the UV vertical ½ circuit 45. Progressive U data and V data having a thinned frame frequency of 30 Hz are input from the thinning filter 43 to the UV vertical 1/2 circuit 45. The input data is sequentially delayed by one line by the line FIFOs 91-1 to 91-6 and supplied to the subsequent stage. The multiplier circuit 92-1 multiplies the input data by a coefficient and outputs the result to the adder circuit 93. The multiplier circuits 92-2 to 92-7 multiply the data input from the line FIFOs 91-2 to 91-6, respectively, and output the result to the adder circuit 93.
[0053]
The adder circuit 93 adds the data supplied from the multiplier circuits 92-1 to 92-7 and supplies the sum to the latch circuit 94. When the clock signal is input, the latch circuit 94 latches the input data.
[0054]
The operation of the UV vertical 1/2 circuit 45 will be described with reference to FIG. Data of pixels (pixels indicated by white squares in FIG. 9) at the same position in the horizontal direction of the screen on seven consecutive lines are input to the multiplier circuits 92-1 to 92-7. The multiplier circuits 92-1 to 92-7 multiply the input data by a coefficient, respectively. The adder circuit 93 adds the outputs of the multiplier circuits 92-1 to 92-7 and outputs the result. A latch signal is input to the latch circuit 94 at a timing of once every two lines (a timing indicated by a black circle in FIG. 9). In this way, the UV vertical ½ circuit 45 thins out the number of lines of the input U data and V data to ½ and outputs it.
[0055]
Note that the UV vertical ½ circuit 45 passes Y data.
[0056]
Next, the encoding circuit 15 will be described. FIG. 10 is a block diagram showing a configuration of the encoding circuit 15. A control signal supplied from the control circuit 21 is input to the timing signal generation circuit 101. The timing signal generation circuit 101 generates a timing signal based on the input control signal and supplies the timing signal to the block shuffle circuit 102, the ADRC encoding circuit 103, and the inter-segment shuffle circuit 104.
[0057]
The Y data, U data, and V data converted by the format conversion circuit 14 are input to the block shuffle circuit 102. The block shuffle circuit 102 temporarily stores the supplied Y data, U data, and V data at a predetermined position in the external memory 16. The block shuffle circuit 102 rearranges the Y data, U data, and V data stored in the external memory 16 into the ADRC block format described later, shuffles within the segment range described later and in units of ADRC blocks, This is supplied to the encoding circuit 103.
[0058]
The ADRC encoding circuit 103 encodes the Y data, U data, and V data supplied from the block shuffle circuit 102 based on the ADRC method, and supplies the encoded data to the inter-segment shuffle circuit 104. The inter-segment shuffle circuit 104 temporarily stores the supplied ADRC encoded data at a predetermined position in the external memory 22.
[0059]
The inter-segment shuffle circuit 104 shuffles the ADRC data stored in the external memory 22 by changing the storage and reading addresses. The shuffle in the inter-segment shuffle circuit 104 increases the possibility that the receiving apparatus 2 can receive any one of the dynamic range DR, the minimum value MIN, and the motion flag MF even if data loss occurs in the transmission path. The purpose is to make it easier for the receiving device 2 to extract the codes Q separately even if data loss occurs in the transmission path.
[0060]
With reference to FIG. 11, a unit of processing of the encoding circuit 15 and the packetizing circuit 17 will be described. From a frame 0 and a next frame 1, pixels are selected by a method described later, and 1320 even segment ADRC blocks (consisting of 4 × 16 pixels) and 1320 odd segment ADRC blocks (4 × 16 pixels) is generated. 88 ADRC blocks are selected by the block shuffle circuit 102 from the generated ADRC blocks. The ADRC block is composed of 88 selected units by the ADRC encoding circuit 103, and is ADRC fixed-length data (FL), which is a dynamic range DR, a minimum value MIN, a motion flag MF, a table index TI, and It is encoded into code Q, which is variable length data (VL).
[0061]
Encoded data (hereinafter referred to as a buffer) corresponding to 88 ADRC blocks output from the ADRC encoding circuit 103 are grouped into 5 pieces (hereinafter referred to as segments) by the inter-segment shuffle circuit 104. ). Three segments (shown as segment 0, segment 2, and segment 4 in the figure) corresponding to the even segments are shuffled between the segments by the inter-segment shuffle circuit 104. Three segments corresponding to the odd segments (shown as segment 1, segment 3, and segment 5 in the figure) are shuffled between the segments by the inter-segment shuffle circuit 104.
[0062]
The segments shuffled between the segments are arranged in the order of segment 0, segment 1, segment 2, segment 3, segment 4, and segment 5.
[0063]
The packetizing circuit 17 corresponds to the eight ADRC blocks of the encoded data stored in the segments arranged in the order of segment 0, segment 1, segment 2, segment 3, segment 4, and segment 5. Each data (dynamic range DR, minimum value MIN, motion flag MF, table index TI, and code Q) is stored in a packet.
[0064]
The operation of the block shuffle circuit 102 will be described with reference to FIGS. FIG. 12 is a diagram illustrating the ADRC block. A block of 64 pixels adjacent to each other, horizontal 8 pixels × vertical 8 pixels, is selected from each frame, and the leftmost and uppermost pixel in the block (pixels indicated as 0-1 or 1-1 in the figure) ), And a pixel at a position horizontally moved by 2 pixels from the pixel (a pixel indicated as 0-3 or 1-3 in the drawing), and moved by 2 pixels vertically from the pixel. A pixel at a position (a pixel indicated as 0-17 or 1-17 in the figure), or a pixel at a position shifted from that pixel by one pixel horizontally and one pixel vertically (0-10 or 0 in the figure) Pixels labeled as 1-10) are referred to as even pixels. Further, the same selection is repeated using these pixels as a reference, and the selected pixel is set as an even pixel.
[0065]
The remaining pixels of each frame are odd pixels.
[0066]
As shown in FIG. 12, an even pixel (4 × 8 pixels) included in an 8 × 8 pixel block i2 of an even frame (frame 0) and an even number included in an 8 × 8 pixel block of an odd frame (frame 1). A collection of pixels (4 × 8 pixels) is an ADRC block of even segments. At the same time, odd pixels (4 × 8 pixels) included in the 8 × 8 pixel block of the even frame (frame 0) and odd pixels (4 × 8) included in the 8 × 8 pixel block of the odd frame (frame 1). A collection of (pixels) is an odd-segment ADRC block. The ADRC block is composed of every other pixel of the two frames on the original frame. Pixels located adjacent to the pixels of the even-numbered ADRC block on the original frame constitute the corresponding odd-numbered segment ADRC block.
[0067]
13 to 15 are diagrams illustrating the relationship between the pixels in the frame and the ADRC block. As shown in FIG. 13, the pixels of frame 0 are divided into blocks of 64 pixels of 8 horizontal pixels × 8 vertical pixels. Similarly, as shown in FIG. 14, the pixel of frame 1 (the frame next to frame 0) is divided into blocks of 64 pixels of 8 horizontal pixels × 8 vertical pixels. The leftmost and uppermost 64-pixel block in the frame 0 block (the 64-pixel block labeled A1 in FIG. 13) and the leftmost and uppermost block in the frame 1 The even-numbered segment ADRC block constituted by the even-numbered pixels of the 64-pixel block located (the 64-pixel block indicated as A1 in FIG. 14) is the leftmost segment 0, as shown in FIG. Placed on top.
[0068]
As shown in FIG. 15, an odd-segment ADRC block composed of a 64-pixel block labeled A1 in FIG. 13 and an odd-numbered pixel of the 64-pixel block labeled A1 in FIG. The ADRC block of the even segment of segment 0 is arranged on the right side in the figure.
[0069]
As shown in FIG. 15, an even-segment ADRC block composed of a 64-pixel block labeled A2 in FIG. 13 and an even-numbered pixel block labeled A2 in FIG. The ADRC block of segment 3 is composed of a block of 64 pixels labeled A1 in FIG. 13 and an odd number of pixels of the block of 64 pixels labeled A1 in FIG. As shown in FIG. 15, an odd-segment ADRC block composed of a 64-pixel block labeled A2 in FIG. 13 and odd-numbered pixels in the 64-pixel block labeled A2 in FIG. The ADRC block of segment 0, which is composed of a block of 64 pixels labeled A2 in FIG. 13 and an even number of pixels of a block of 64 pixels labeled A2 in FIG.
[0070]
The even-numbered ADRC block composed of the even-numbered pixels of the 64-pixel block indicated as B1 in FIG. 13 and the 64-pixel block indicated as B1 in FIG. The ADRC block of segment 0, which is composed of a block of 64 pixels indicated as A1 in FIG. 13 and an even number of pixels of a block of 64 pixels indicated as A1 in FIG. As shown in FIG. 15, an odd-segment ADRC block composed of a 64-pixel block denoted by B1 in FIG. 13 and an odd-numbered pixel of the 64-pixel block denoted by B1 in FIG. The lower part of the ADRC block of segment 3 (of the ADRC block of segment 4) composed of the 64-pixel block labeled A1 in FIG. 13 and the odd-numbered pixels of the 64-pixel block labeled A1 in FIG. (Next to the right).
[0071]
An even-numbered ADRC block composed of a 64-pixel block labeled B2 in FIG. 13 and an even-numbered pixel block labeled B2 in FIG. 14 is shown as segment 4 in FIG. The ADRC block of segment 1 is composed of a block of 64 pixels labeled 13 B1 and an odd number of pixels of the block of 64 pixels labeled B1 of FIG. An odd-segment ADRC block composed of a block of 64 pixels labeled B2 in FIG. 13 and an odd-numbered pixel of the block of 64 pixels labeled B2 in FIG. 14 is shown as segment 1 in FIG. An ADRC block of an even segment composed of a block of 64 pixels indicated by 13 B2 and an even number of pixels of the block of 64 pixels indicated by B2 in FIG. 14 is arranged on the right side in the figure.
[0072]
An even-segment ADRC block constituted by a 64-pixel block labeled C1 in FIG. 13 and an even-numbered pixel block labeled C1 in FIG. 14 is shown as segment 2 in FIG. The ADRC block of segment 4 is composed of a block of 64 pixels labeled B1 in FIG. 13 and an even number of pixels of a block of 64 pixels labeled B1 in FIG. An odd-segment ADRC block composed of a 64-pixel block labeled C1 in FIG. 13 and an odd-numbered pixel block labeled C1 in FIG. 14 is shown as segment 5 in FIG. The lower part of the ADRC block of segment 1 (the right side of the ADRC block of segment 2) composed of the block of 64 pixels labeled B1 of 13 and the odd number of pixels of the block of 64 pixels labeled B1 of FIG. Next to it).
[0073]
An even-segment ADRC block composed of a 64-pixel block labeled C2 in FIG. 13 and an even-numbered pixel block labeled C2 in FIG. 14 is shown as segment 2 in FIG. The ADRC block of segment 5 is composed of a block of 64 pixels labeled 13 C1 and an odd number of pixels of the block of 64 pixels labeled C1 in FIG. An odd-segment ADRC block composed of a 64-pixel block denoted by C2 in FIG. 13 and an odd-numbered pixel of the 64-pixel block denoted by C2 in FIG. 14 is shown as segment 5 in FIG. The ADRC block of the even segment composed of the block of 64 pixels labeled 13 C2 and the even pixels of the block of 64 pixels labeled C2 of FIG. 14 is arranged on the right side in the figure.
[0074]
By repeating the above procedure for 33 × 10 blocks (264 × 240 pixels) constituting each frame, the Y data of the two frames is used in the horizontal direction as shown in FIG. A set of 30 ADRC blocks arranged in the vertical direction is generated. As shown in FIG. 16B, the ADRC block generated from the Y data is shuffled to form a segment.
[0075]
The same processing is also performed for 88 × 120 pixel U data and V data, thereby generating a set of 22 ADRC blocks arranged in the horizontal direction and 15 in the vertical direction as shown in FIG. Is done. As in the case of Y data, as shown in FIG. 17B, ADRC blocks generated from U data and V data are block shuffled to form segments.
[0076]
Within each ADRC block, the pixel values of pixels located at the same position on the screen of the even frame and the odd frame (for example, the pixel indicated as 0-1 and the pixel indicated as 1-1 in FIG. 12). When the absolute value of the difference is taken and the maximum value of the difference is less than the threshold value Th1, the ADRC block is regarded as a still image.
[0077]
When the maximum value among the absolute values of the differences exceeds a threshold Th2 (Th1 <Th2), the ADRC block is regarded as a moving image.
[0078]
In the still image ADRC block, the average of the pixel values of the pixels at the same position on the screen of the even frame and the odd frame is averaged, and the average value of the 32 pixels is newly replaced as an ADRC block and attached to the ADRC block. The motion flag MF to be set is set to 0.
[0079]
In the moving ADRC block, 64 pixels collected from the even frame and the odd frame are directly used as the ADRC block, and the motion flag MF attached to the ADRC block is set to 1.
[0080]
Next, a description will be given of shuffle performed for each segment in units of ADRC blocks. When a serial number is assigned to an ADRC block in a segment composed of Y-data ADRC blocks numbered 0, the numbers y0 to y329 are assigned to the ADRC block as shown in FIG. The When the ADRC block is shuffled, the ADRC block of Y data is arranged as shown in FIG.
[0081]
Similarly, when a serial number is assigned to an ADRC block in a segment composed of U-data ADRC blocks numbered 0, the numbers u0 to u54 are changed to ADRC blocks as shown in FIG. It is attached to. As shown in FIG. 18D, the URC ADRC blocks are rearranged in the reverse order of the serial numbers.
[0082]
In a segment composed of ADRC blocks of V data numbered 0, if serial numbers are assigned to the ADRC blocks, numbers v0 to v54 are assigned to the ADRC blocks as shown in FIG. The As shown in FIG. 18F, the ADRC blocks of the V data are rearranged in the reverse order of the serial numbers.
[0083]
Next, as shown in FIG. 19, the AD data block of Y data, the ADRC block of U data, and the ADRC block of V data are shuffled. An ADRC block of one U data is arranged after the ADRC block of three Y data, and an ADRC block of three Y data is arranged behind it, followed by an ADRC block of one V data. Is placed. This arrangement is repeated. For example, in segment 0, an ADRC block with a serial number of y0, an ADRC block with a serial number of y221, an ADRC block with a serial number of y112, an ADRC block with a serial number of u54, a serial number of y3 An ADRC block with a serial number of y224, an ADRC block with a serial number of y115, an ADRC block with a serial number of v54, an ADRC block with a serial number of y6, etc. An ADRC block is arranged.
[0084]
Similarly, in the segments 1 to 5, the ADRC block is shuffled.
[0085]
As described above, the pixel data is shuffled for each ADRC block by the block shuffle circuit 102 and encoded by the ADRC encoding circuit 103 based on the shuffled ADRC block. By appropriately shuffling the ADRC block, pixels that are missing due to communication errors are dispersed, and it is possible to make it difficult to recognize the missing pixels in the reproduced image.
[0086]
Next, the configuration of the ADRC encoding circuit 103 will be described with reference to FIG. The image shuffled by the block shuffle circuit 102 is supplied as an ADRC block to the delay circuit 161, the motion feature amount calculation circuit 162, the DR calculation circuit 163, and the delay circuit 166.
[0087]
The delay circuit 161 delays the 2 frame block (ADRC block composed of 4 × 16 pixels) by a time corresponding to the processing time of the motion feature amount calculation circuit 162 and outputs the delayed result to the information amount control circuit 164. The motion feature amount calculation circuit 162 calculates a motion feature amount that is the maximum absolute value of the interframe difference for each ADRC block, and supplies the motion feature amount to the information amount control circuit 164. The DR calculation circuit 163 calculates, for each ADRC block, a dynamic range DR when it is regarded as a still image and a dynamic range DR when it is regarded as a moving image, and supplies the dynamic range DR to the information amount control circuit 164.
[0088]
The information amount control circuit 164 has a dynamic range when it is regarded as a two-frame block supplied from the delay circuit 161, a motion feature amount supplied from the motion feature amount calculation circuit 162, and a still image supplied from the DR calculation circuit 163. Based on the set of thresholds Th1 and Th2 and the thresholds T1 and T2 supplied from the threshold range 165 and the dynamic range DR when considered as DR and a moving image, the MF selection threshold consisting of the thresholds Th1 and Th2 is selected, It outputs to the static motion determination circuit 169.
[0089]
The information amount control circuit 164 includes two frame blocks, a motion feature amount, a dynamic range DR when regarded as a still image, a dynamic range DR when regarded as a moving image, and threshold values Th1 and Th2 supplied from the threshold value table 165. Based on the set of threshold values T1 and T2, a Q-bit selection threshold value is selected and output to the ADRC encoder 171.
[0090]
For example, when the motion feature amount is 4, the dynamic range DR when it is regarded as a still image is 14, and the dynamic range DR when it is regarded as a moving image is 15, the threshold T1 with a table index of 0 is 6. When the threshold T2 is 12, the threshold Th1 is 3, the threshold Th2 is 3, the threshold T1 of the table index 1 is 13, the threshold T2 is 40, the threshold Th1 is 5, and the threshold Th2 is 5. explain.
[0091]
The information amount control circuit 164 determines that the moving feature amount is larger than the threshold value Th2 with respect to the set of threshold values with the table index being 0, so that it is a moving image. Since the dynamic range DR when regarded as a moving image is larger than the threshold value T2, q of this ADRC block is 4, and the information amount control circuit 164 indicates that the code Q is 256 bits from (16 * 4) * 4. Ask.
[0092]
Similarly, the information amount control circuit 164 determines a still image because the motion feature amount is smaller than the threshold value Th1 for the threshold value set having the table index of 1. Since the dynamic range DR when regarded as a still image is larger than the threshold value T1 and smaller than the threshold value T2, the q of this ADRC block is 3, and the information amount control circuit 164 has the code Q from (8 * 4) * 3. Require 96 bits.
[0093]
Thus, each threshold value is set in the threshold value set so that the information amount decreases as the table index increases. The information amount control circuit 164 selects a table index having the largest information amount with a code Q generated for one buffer of 16,104 bits or less as the table index TI, and outputs the table index TI to the delay circuit 173.
[0094]
The information amount control circuit 164 may calculate the number of bits of the code Q corresponding to the table index in parallel or sequentially from the larger (or smaller) side of the table index.
[0095]
An example of the configuration of the information amount control circuit 164 will be described with reference to FIGS. 21 and 22. FIG. 21 is a diagram illustrating a configuration of a preceding stage of the information amount control circuit 164, and FIG. 22 is a diagram illustrating a configuration of a subsequent stage of the information amount control circuit 164.
[0096]
As shown in FIG. 21, the information amount control circuit 164 includes, in the preceding stage, a number of comparison circuits 181-1 and 181-2 corresponding to the number of threshold values of the dynamic range DR, and adders 182-1 and 182- 2 and registers 183-1 and 183-2. A dynamic range DR that can take a numerical value from (0 to 255) is supplied to one input terminal of each of the comparison circuits 181-1 and 181-2.
[0097]
In FIG. 21, for example, the threshold value T1 and the threshold value T2 are read from the threshold value table 165 and supplied to the other input terminals of the comparison circuits 181-1 and 181-2. Specifically, the threshold value T1 is supplied to the other input terminal of the comparison circuit 181-1, and the threshold value T2 is supplied to the other input terminal of the comparison circuit 181-2.
[0098]
Each of the comparison circuits 181-1 and 181-2 generates an output of “1” when the dynamic range DR from the input terminal 5 is equal to or greater than each threshold value. The comparison outputs of the comparison circuits 181-1 and 181-2 are supplied to one input terminal of either the adder 182-1 or 182-2 connected thereto. The other input terminal of the adder 182-1 or 182-2 is configured to be supplied with its own addition output via the registers 183-1 and 183-2.
[0099]
Therefore, the adder 182-1 calculates the integrated value of the frequency (T1 ≦ DR ≦ 255), and the obtained data is held in the register 183-1. Further, the adder 182-2 calculates the integrated value of the frequency (T2 ≦ DR ≦ 255), and the obtained data is held in the register 183-2.
[0100]
Each of the occurrence frequency data held in each of the registers 183-1 and 183-2 is taken out and supplied to the adder 191 as shown in FIG. Further, the adder 191 is supplied with frequency data stored in the information amount control circuit 164 in advance. In the adder 191, the occurrence frequency data of (T1 ≦ DR ≦ 255), the occurrence frequency data of (T2 ≦ DR ≦ 255), and the frequency data stored in advance are added, and the total amount is calculated.
[0101]
The occurrence value of (T1 ≦ DR ≦ T2-1) is (S3), and the occurrence value of (T2 ≦ DR ≦ 255) is (S4). The occurrence value of (T2 ≦ DR ≦ 255) is (S4 + S3 + S2) (corresponding to the code Q where q is 4 bits), and the occurrence value of (T1 ≦ DR ≦ 255) is (S3 + S2) (q is (Corresponding to a code Q of 3 bits). (S2) (corresponding to the code Q in which q is 2 bits) is generated corresponding to all ADRC blocks, and can be stored in the information amount control circuit 164 in advance. When these are added by the adder 191, an output of (S3 + 2 * S3 + 3 * S2) is obtained. This output is the total amount that is equal to the case where the assigned bits are multiplied and fully added.
[0102]
The total amount calculated in the adder 191 is supplied to one input terminal of the comparison circuit 193 via the register 192. The buffer maximum value is supplied to the other input terminal 12 of the comparison circuit 193, and the total amount is compared with the buffer maximum value. Based on the comparison output of the comparison circuit 193, a threshold value is determined such that the total amount is less than or equal to the buffer maximum value. That is, a plurality of sets of threshold values are stored in advance in the threshold value table 165 so that the total amount of generated data simply increases or decreases, and the threshold values are selected so that the total amount falls within the target.
[0103]
The information amount control circuit 164 selects and outputs the MF selection threshold, the Q bit selection threshold, and the table index TI based on the comparison output of the comparison circuit 193.
[0104]
Returning to FIG. 20, the delay circuit 166 delays the 2 frame block (ADRC block composed of 4 × 16 pixels) by a time corresponding to the processing time of the delay circuit 161 and the information amount control circuit 164, and generates a still block generation circuit 167. To the delay circuit 168 and the static motion determination circuit 169. The static block generation circuit 167 takes the average of the pixel values of the pixels located at the same position on the screen of the even frame and the odd frame from the two frame blocks (ADRC block composed of 4 × 16 pixels), and calculates the average of the 32 pixels. The value is newly replaced as an ADRC block and supplied to the selection circuit 170 as one frame block (ADRC block composed of 4 × 8 pixels).
[0105]
The delay circuit 168 delays the two frame blocks (ADRC block composed of 4 × 16 pixels) by a time corresponding to the processing time of the still block generation circuit 167 and supplies the delay to the selection circuit 170.
[0106]
The static motion determination circuit 169 generates and selects a motion flag MF attached to the ADRC block on the basis of a 2-frame block (ADRC block composed of 4 × 16 pixels) and an MF selection threshold composed of thresholds Th1 and Th2. The circuit 170 and the delay circuit 172 are supplied.
[0107]
When the motion flag MF is 1, that is, when the ADRC block corresponds to a moving image, the selection circuit 170 supplies the 2-frame block supplied from the delay circuit 168 to the ADRC encoder 171 and when the motion flag MF is 0, That is, when the ADRC block corresponds to a still image, the one frame block supplied from the still block generation circuit 167 is supplied to the ADRC encoder 171.
[0108]
The ADRC encoder 171 encodes the two-frame block or the one-frame block supplied from the selection circuit 170 based on the Q-bit selection threshold supplied from the information amount control circuit 164, so that the dynamic range DR, the minimum value MIN, q , And code Q are output.
[0109]
The delay circuit 172 delays and outputs the motion flag MF supplied from the static motion determination circuit 169 in accordance with the processing time of the selection circuit 170 and the processing time of the ADRC encoder 171.
[0110]
The delay circuit 173 delays and outputs the table index TI supplied from the information amount control circuit 164 in correspondence with the delay time of the delay circuit 168, the processing time of the selection circuit 170, and the processing time of the ADRC encoder 171. .
[0111]
As described above, the ADRC encoding circuit 103 generates the dynamic range DR, the minimum pixel value MIN, the motion flag MF, and the code Q for each ADRC block, and the inter-segment shuffle circuit together with the index TI of the quantization table. 104 is supplied.
[0112]
FIG. 23 is a diagram for explaining how the inter-segment shuffle circuit 104 is shuffled. As shown in FIG. 23, there are three shuffle methods, shuffle 0 to 2, and shuffle 0 is a shuffle that does not perform shuffle. In shuffle 1, data of segment 0 (segment 1) is segment 4 (segment 5), data of segment 2 (segment 3) is segment 0 (segment 1), and data of segment 4 (segment 5) is segment 2 ( Each segment 3) is shuffled (replaced).
[0113]
Similarly, for Shuffle 2, the data of segment 0 (segment 1) is sent to segment 2 (segment 3), the data of segment 2 (segment 3) is sent to segment 4 (segment 5), and the data of segment 4 (segment 5) is sent. Shuffle each segment 0 (segment 1).
[0114]
FIG. 24 is a diagram for explaining the shuffle of the dynamic range DR performed in the segment 0, the segment 3, and the segment 5. One segment includes five buffers, and one buffer includes 88 ADRC blocks. Therefore, one segment includes 440 DRs. Numbers 1 to 440 are sequentially assigned to DRs present in each segment, and in FIG. 24, for example, the DR of number 1 in segment 1 is described as DR1-1.
[0115]
Shuffle 0 is used for the DR of number 1 in each segment (that is, not replaced), shuffle 1 is used for the DR of number 2, and shuffle is used for the DR of number 3 2 is used, and for the DR of number 4, shuffle is performed in the order of shuffle 0, shuffle 1, and shuffle 2, so that shuffle 0 is used.
[0116]
Similarly, the code Q is shuffled. Further, as shown in FIG. 25, the minimum pixel value MIN is performed in the order of shuffle 1, shuffle 2, and shuffle 0 to perform shuffle. Further, the MF that is a motion flag is performed in the order of shuffle 2, shuffle 0, and shuffle 1, as shown in FIG.
[0117]
Next, the shuffling of the index TI of the quantization table will be described. The TI stored in segment 0 is also stored in segment 3, and the TI stored in segment 3 is also stored in segment 0. That is, segment 0 and segment 3 store both their own TI and the counterpart TI. Similarly, segment 1 and segment 4 and segment 3 and segment 5 store both their own TI and the counterpart TI.
[0118]
In this way, even if a communication error occurs and a packet including any data is lost due to the dynamic range DR, the minimum pixel value MIN, and the motion flag MF being shuffled, the receiving device 2 When decoding a predetermined ADRC block, it is possible to recover missing data based on other data that could be received. Further, even if a communication error occurs and a packet including the code Q is lost due to the shuffling of the code Q, the pixels corresponding to the lost code Q are dispersed, and the receiving device 2 It becomes easy to cut out, and when a predetermined ADRC block is decoded, it is easy to create a missing pixel value based on the decoded pixel value.
[0119]
In this way, by shuffling data between segments, the communication device 2 can easily recover data and create missing pixels, and can improve the quality of an image to be reproduced even if a packet is lost on the transmission path. Can be maintained.
[0120]
The data output from the inter-segment shuffle circuit 104 of the encoding circuit 15 is input to the packetizing circuit 17 and made into a packet. FIG. 27 shows a packet configuration. The packet configuration shown in FIG. 27 is composed of 201 bytes, of which DR is A × 8M bits, MIN is B × 8M bits, MF is C × 8M bits, TI is D × (8M / D) bits, The code Q (VL-Data) is composed of 8 × N bits. Data is stored using a plurality of packets of this size unit.
[0121]
In this way, the dynamic range DR, the minimum pixel value MIN, the motion flag MF, the table index TI, and the code Q are configured to be a multiple of 8, so that when performing the above-described shuffling, Regardless of the bit size of the data, it is suitable for handling in a unified architecture and in byte units.
In the above description and the description to be described later, the packet configuration shown in FIG. 27 is used.
[0122]
FIG. 28 shows the configuration of the inter-segment shuffle circuit 104 that performs shuffling as described above. The data output from the ADRC encoding circuit 103 is input to the data selection unit 211 of the inter-segment shuffle circuit 104. The data selection unit 211 receives three pieces (blocks) in parallel for each element of the FL data, and inputs VL data at a timing alternating with the FL data. The data selection unit 211 converts the input data into serial data and outputs predetermined data to the input / output controller 213. The input / output controller 213 stores the input data in the storage unit 215 based on the address generated by the address generation unit 214. The data stored in the storage unit 215 is read out based on the address generated by the address generation unit 214 according to the data supplied from the output data counter unit 216, and is output to the packetizing circuit 17 (FIG. 3). .
[0123]
The input data counter unit 212 includes a group of counters that indicate information for identifying the type of data input to the data selection unit 211, addressing and shuffling directions when stored in the storage unit 215, and the like. An example of the counter group is shown in FIG. There are counters for addressing and shuffling. As a counter for FL data for addressing, a counter (flblk) that counts the number of FL data blocks in one buffer (determines the address of FL data in a packet), and the number of fl data packets in one segment Counter (flpkt) that counts packets (determines the packet number in the segment) and a counter (flttlpkt) that counts the total number of packets of fl data in one bank (determines the address of the packet in the bank) Has been.
[0124]
The counter group for VL data for addressing includes a counter (vlpkt) that counts the number of VL data packets in one buffer (determines the packet number in the buffer), and the total number of packets of VL data in one bank Counter (vlttlpkt) that counts the address of the packet in the bank (1) counter (vlbuf) that counts the number of VL data buffers in one segment (which determines the buffer number in the segment), and any order It is composed of a counter (vlmodN) that counts the remainder when dividing VL data by the number N of bytes of VL data per packet (determines the storage location of the VL data storage unit 215 (FIG. 28) in the packet) ing.
[0125]
The counter for shuffling counts the number of FL data segments in one bank (determines the segment number of FL data) for FL data, and determines the shuffling direction of the FL data in one segment. Counter to determine (flshf), for VL data, count the number of segments of VL data in one bank (determine the segment number in a bank) counter (vlseg), the shuffling direction of VL data in one segment And a counter (vlshf) to be determined.
[0126]
Similarly, the output data counter unit 216 includes a group of addressing counters as shown in FIG. Counter for FL data addressing, counting TI data in 1 packet size data cell (for collecting TI data into data in units of bytes) (ticnt), number of MF data in 1 packet size data cell Counter (mfcnt for collecting MF data into byte data), counts the number of DR data and MIN data in one packet size data cell (number of DR data and MIN data in packet) Counter (dmcnt), a counter that counts the number of blanks inserted to handle bit-size TI data or MF data as byte-size data (tmcnt), and the VL data in the packet within one packet A counter that determines the number (vlcntN) and the number of packets in one buffer To and a (determining the packet number in the buffer) counter (Pktcnt).
[0127]
The data input to the inter-segment shuffling circuit 104 is stored in the storage unit 215 based on the address generated by the address generation unit 214 according to the counter group of the input data counter unit 212 described above. For example, when the first DR data of image data in units of two frames is input, the block number is 0 by flblk and the packet number is 0 by flttlpkt and flpkt as the counter number for the address of the DR data. It is determined and output to the address generator 214.
Further, as the counter number for shuffle, the segment number is determined to be 0 by flseg and 0 by flmod, and is output to the address generator 214.
[0128]
The address generation unit 214 determines the shuffle 0 (FIG. 23) based on the flshf counter number among the input counter numbers, and determines the segment number (flseg counter number) to be 0. Is shuffled (in this case, since it is shuffle 0, it is not shuffled and segment 0 is selected as the shuffling destination).
[0129]
Next, when the I-th VL data is input among the image data in units of two frames, the VL data number in the packet is the remainder of I / N by vlmodN as the counter number for the address of the VL data. 1 (since the number is assigned from 0), the value indicating the total number of packets by vlttlpkt is the quotient of I / N-1, and the packet number is (I / N) / (number of packets in the buffer) by vlpkt-1 , And vlbuf respectively determine the buffer number and output it to the address generator 214. In addition, as a counter number for shuffle, a segment number is determined by vlseg and a shuffling direction is determined by vlshf, and is output to the address generator 214.
[0130]
The address generation unit 214 determines the shuffling segment number by determining the shuffle direction and the segment number from the counter number of vlshf among the input counter numbers. The address is determined based on the shuffling destination data and the address counter value determined in this way.
[0131]
As described above, the data stored in the storage unit 215 according to the address generated by the address generation unit 214 is read based on the address generated by the address generation unit 214 according to the counter group of the output data counter unit 216. The reading will be described. When a pulse for reading is input to the inter-segment shuffle circuit 104 at a predetermined timing, processing for collecting TI data and MF data in units of bytes is performed. When the gathering process is completed, the data is read from the storage unit 215 according to the data output order in the packet, and in this case, according to the data arrangement in the packet shown in FIG. .
[0132]
The processing for each packet output is repeated for one buffer (11 packets) and sequentially output to the packetizing circuit 17. The packetizing circuit 17 forms a packet by temporarily storing the data input from the encoding circuit 15 in the external memory 18 as necessary and reading it out as necessary.
[0133]
Next, image transmission processing of the transmission apparatus 1 will be described with reference to the flowchart of FIG. In step S11, the A / D conversion circuit 42 of the thinning unit 13 samples the input interlaced image signal having a field frequency of 60 Hz at a predetermined sampling rate, and outputs Y data U and U at a predetermined data rate. Data and V data are output. In step S12, the thinning filter 43 thins the Y data, U data, and V data by half in the horizontal direction and the vertical direction, respectively, and converts them into progressive data having a frame frequency of 30 Hz.
[0134]
In step S13, the UV vertical ½ circuit 45 thins out U data and V data by ½ in the vertical direction. In step S <b> 14, the format conversion circuit 14 converts Y data, U data, and V data into a format that can be supplied to the encoding circuit 15.
[0135]
In step S <b> 15, the encoding circuit 15 shuffles the Y data, U data, and V data supplied from the format conversion circuit 14, encodes them, further shuffles them, and outputs them to the packetizing circuit 17. In step S <b> 16, the packetizing circuit 17 packetizes the data supplied from the encoding circuit 15 and outputs the packetized data to the transmission circuit 19. In step S19, the transmission circuit 19 transmits the packet supplied from the packetizing circuit 17 by a predetermined method, and the process ends.
[0136]
As described above, the transmission apparatus 1 compresses an input image signal and outputs the compressed signal.
[0137]
Next, the receiving device 2 will be described. FIG. 32 is a block diagram illustrating a configuration of the receiving device 2. The packet received by the receiving circuit 301 is supplied to the packet disassembling circuit 302. The reception circuit 301 sets a missing flag for each bit of data of the lost packet when the received packet is lost. The packet disassembly circuit 302 temporarily stores the supplied packet in the external memory 303, disassembles the packet temporarily stored in the external memory 303, takes out data included in the packet, and decodes the packet together with the missing flag 304 is supplied. The missing flag may be attached to the code Q in units of 8 bits, and the missing flag may be attached to each of the dynamic range DR, the minimum pixel value MIN, and the motion flag MF.
[0138]
The decoding circuit 304 temporarily stores the data supplied from the packet disassembly circuit 302 in the external memory 305, decodes the data encoded by the ADRC method temporarily stored in the external memory 305, and converts the format. Supply to circuit 306. When data such as the dynamic range DR or the minimum value MIN necessary for decoding is missing, the decoding circuit 304 recovers and decodes the missing data, and when the decoding is successful, sets the corresponding missing flag. Reset.
[0139]
The format conversion circuit 306 temporarily stores the data supplied from the decoding circuit 304 in the external memory 307, and performs processing opposite to the processing of the format conversion circuit 14 for the data temporarily stored in the external memory 307. Is supplied to the missing pixel creation circuit 308.
[0140]
Based on the data supplied from the format conversion circuit 306, the missing pixel creation circuit 308 generates pixel data missing during transmission from the pixel values of the pixels around the missing pixel by class classification adaptive processing. Data is supplied to the format conversion circuit 310. The initialization circuit 309 supplies a coefficient set or the like to the missing pixel creation circuit 308 when the receiving device 2 is activated.
[0141]
The format conversion circuit 310 temporarily stores the data supplied from the missing pixel creation circuit 308 in the external memory 311, and the quadruple resolution creation circuit 312 can process the data temporarily stored in the external memory 311. The image data is converted into progressive 3: 0.5: 0.5 image data having a frame frequency of 30 Hz, and the converted data is supplied to the quadruple-density resolution creation circuit 312.
[0142]
The quadruple-resolution creation circuit 312 creates image data having a density four times that of the supplied image based on the image data supplied from the format conversion circuit 310, and supplies the image data to the interpolation unit 314. The initialization circuit 313 supplies a coefficient set and the like to the quadruple-resolution creation circuit 312.
[0143]
The interpolation unit 314 includes a format conversion circuit 331, an external memory 332, a UV vertical double circuit 333, an external memory 334, a D / A conversion circuit 335, and a post filter 336.
[0144]
The format conversion circuit 331 receives the data supplied from the quadruple-density resolution creation circuit 312, temporarily stores it in the external memory 332, and stores the data temporarily stored in the external memory 332 as a UV vertical double circuit 333. Can be processed into progressive 3: 5: 0.5 image data having a frame frequency of 30 Hz, and the converted data is output to the UV vertical doubling circuit 333.
[0145]
The UV vertical doubling circuit 333 temporarily stores the data supplied from the format conversion circuit 331 in the external memory 334, and the U data and the V data of the data temporarily stored in the external memory 334 are each in the vertical direction. The Y data, the U data, and the V data are supplied to the D / A conversion circuit 335.
[0146]
The D / A conversion circuit 335 converts the Y data, U data, and V data supplied from the UV vertical doubling circuit 333 into analog Y signals, U signals, and V signals, and outputs them to the post filter 336. To do. The post filter 336 is a filter (so-called sin X / X filter) that allows only effective components of the analog Y signal, U signal, and V signal output from the D / A conversion circuit 335 to pass. The Y signal, U signal, and V signal that have passed through the post filter 336 are supplied to the NTSC encoder 315 or output as they are as the output of the receiving device 2.
[0147]
The NTSC encoder 315 generates and outputs a component signal (Y / C signal) and a composite video signal based on the input Y signal, U signal, and V signal.
[0148]
The PLL circuit 316 generates a reference signal serving as a reference for processing of each circuit and supplies the reference signal to the control circuit 317. The control circuit 317 generates the packet disassembly circuit 302, the decoding circuit 304, the format conversion circuit 306, the missing pixel creation circuit 308, the format conversion circuit 310, the quadruple resolution creation circuit 312, the interpolation unit 314, and the NTSC encoder 315. A control signal is supplied to control the operation of the entire receiving device 2.
[0149]
With reference to FIG. 33, a process of decompressing image data received by the receiving device 2 when a signal is output in an interlaced manner will be described. The image data decoded by the decoding circuit 304 is converted into Y data having 264 pixels in the horizontal direction and 240 pixels in the vertical direction by the format conversion circuit 306 and having a frame frequency of 30 Hz and 240 pixels in the vertical direction, and 88 pixels. It is converted into U data and V data of × 120 pixels × 2.
[0150]
The Y data, U data, and V data constituting one frame output from the format conversion circuit 306 are generated in the 60 Hz field by the quadruple resolution creation circuit 312 after the missing pixels are created by the missing pixel creation circuit 308. It is converted into an interlaced first field and a second field having a frequency. At this time, the Y data is data including 528 pixels in the horizontal direction and 240 pixels in the vertical direction per field. The U data and V data are data including 176 pixels in the horizontal direction and 120 pixels in the vertical direction for each field.
[0151]
The Y data, U data, and V data output from the quadruple-resolution creation circuit 312 include 528 pixels in the horizontal direction and 480 pixels in the vertical direction per frame by the format conversion circuit 331. The U data and the V data are converted into data including 176 pixels in the horizontal direction and 240 pixels in the vertical direction, respectively, for each frame.
[0152]
Further, the U data and V data are converted into data including 176 pixels in the horizontal direction and 480 pixels in the vertical direction by one UV vertical doubling circuit 333. The D / A conversion circuit 335 performs digital-analog conversion, converts Y data into an analog Y signal, and converts U data and V data into an analog U signal and an analog V signal, respectively.
[0153]
As described above, the interpolation unit 314 performs processing corresponding to the thinning unit 13 to reproduce the original image having sufficient image quality from the data transmitted at the bit rate reduced to a practical value. can do.
[0154]
As described above, the receiving device 2 expands the received image data and outputs the data as an interlaced Y signal, U signal, and V signal. The information of the image signal output from the receiving device 2 corresponds to 163 Mbps, and corresponds to the information amount of 98% when compared with the information of the image signal input to the transmitting device 1.
[0155]
Next, the decoding circuit 304 will be described. FIG. 34 is a block diagram showing a configuration of the decoding circuit 304. The control signal supplied from the control circuit 317 is input to the timing signal generation circuit 351. The timing signal generation circuit 351 generates a timing signal based on the control signal, and generates an inter-segment deshuffle circuit 352, a q-bit MF recovery circuit 353, a DRMIN recovery circuit 354, an ADRC decoding circuit 355, a block deshuffle circuit 356, and a recovery The error determination circuit 357 is supplied.
[0156]
Data supplied from the packet disassembly circuit 302 is input to the inter-segment deshuffle circuit 352. The inter-segment deshuffle circuit 352 performs the reverse operation of the inter-segment shuffle circuit 104 of the transmission apparatus 1 shown in FIG. 10, and returns the shuffled data to the original order. When there is no omission in the deshuffled data, the inter-segment deshuffle circuit 352 supplies the deshuffled data to the ADRC decoding circuit 355. When the deshuffled data is missing, the inter-segment deshuffle circuit 352 supplies the deshuffled data to the q-bit MF recovery circuit 353 and the DRMIN recovery circuit 354. Further, when there is an error in the data of a plurality of blocks straddling between segments, the inter-segment deshuffle circuit 352 outputs a continuous error signal to the block deshuffle circuit 356.
[0157]
The q-bit MF recovery circuit 353 uses the fact that the correlation between adjacent pixels remains in the compressed code Q, and based on the correlation between the pixel values of the pixels of three consecutive ADRC blocks, the correlation is maximized. The combination of q and the value of the motion flag MF is obtained and output to the DRMIN recovery circuit 354 as the correct value of q and the motion flag MF. The q-bit MF recovery circuit 353 transmits emin1 and emin2 (the minimum value of the adjacent pixel difference and the second smallest value) for determining whether or not the motion flag MF is correct to the recovery error determination circuit 357.
[0158]
FIG. 35 is a block diagram showing a configuration of the q-bit MF recovery circuit 353.
The deshuffled data supplied from the segment deshuffle circuit 352 is supplied to the q-bit MF extraction circuit 371.
[0159]
The q-bit MF extraction circuit 371 extracts q and the motion flag MF from the supplied data and supplies them to each of the 3-block evaluation value calculation circuits 372-1 to 372-6. When q and the motion flag MF are lost due to an error, the q-bit MF extraction circuit 371 assigns possible combinations of q and the motion flag MF to the 3-block evaluation value calculation circuits 372-1 to 372-6, respectively. Supply.
[0160]
For example, q set to “2” and motion flag MF set to “0” are supplied to the 3-block evaluation value calculation circuit 372-1, and q set to “3” and “0” are set. The motion flag MF thus set is supplied to the 3-block evaluation value calculation circuit 372-2, and the motion flag MF set to “4” and “0” is set to the 3-block evaluation value calculation circuit 372-3. To be supplied. Further, for example, q set to “2” and motion flag MF set to “1” are supplied to the 3-block evaluation value calculation circuit 372-4, and q and “1” set to “3”. Is set to the 3-block evaluation value calculation circuit 372-5, and q is set to “4” and the motion flag MF is set to “1” is the 3-block evaluation value calculation circuit 372. -6.
[0161]
Based on q and the motion flag MF, the three-block evaluation value calculation circuits 372-1 to 372-6 are based on the difference between the pixel values of pixels adjacent to each other from the pixel value decoded from the extracted code Q. An evaluation value (LE: Linear Error) is calculated, and the evaluation value is supplied to the selector 373 together with q and the motion flag MF. Hereinafter, the three-block evaluation value calculation circuits 372-1 to 372-6 are simply referred to as a three-block evaluation value calculation circuit 372 when there is no need to distinguish them individually.
[0162]
The evaluation value is calculated by Expression (1). The smaller the evaluation value, the higher the correlation between pixels.
[Expression 1]
Figure 0004517435
Qi, jIndicates a non-missing code Q included in the ADRC block to be recovered. Q ’i, jQi, jThe code | cord Q contained in the other ADRC block comprised by the pixel of the block of 64 pixels shown in FIG. 13 and FIG. 14 containing the pixel which comprises the ADRC block in which is contained. For example, Qi, jIs included in the ADRC block of the even segment numbered “0” in FIG.i, jAre included in the ADRC block of the odd-numbered segment with the number “3”. Qi, jIs included in the ADRC block of the even segment of number “4” in FIG.i, jAre included in the ADRC block of the odd-numbered segment with the number “1”. qi, jQi, jQ to cut out. q ’i, jQ ’i, jQ to cut out. Nj indicates the number of codes Q that are not missing in the ADRC block. j is a number for identifying three ADRC blocks whose evaluation values are calculated.
[0163]
The offset j is used to absorb the difference in the dynamic range and q between the three ADRC blocks and calculate a more accurate evaluation value. In the equations (2), (3), and (4), Calculated.
Offset j = (Xj × 24-qj-Yj × 24-q'j) / 128 (2)
[Expression 2]
Figure 0004517435
[Equation 3]
Figure 0004517435
[0164]
The selector 373 selects an evaluation value having the minimum value and an evaluation value having the next largest value after the minimum value from the evaluation values supplied from the three-block evaluation value calculation circuits 372-1 to 372-6, These are supplied to the recovery error determination circuit 357 as emin1 and emin2, respectively.
[0165]
The selector 373 selects q and the motion flag MF output from the three-block evaluation value calculation circuits 372-1 to 372-6 that output the evaluation value having the minimum value, and the q-bit MF recovery circuit 353 The output is supplied to the DRMIN recovery circuit 354.
[0166]
The DRMIN recovery circuit 354 performs ADRC based on the correct value of q and the correct value of the motion flag MF supplied from the q-bit MF recovery circuit 353 and the corresponding ADRC block shown in FIG. The correct value of the dynamic range DR for each block and the minimum value MIN of the pixel value for each ADRC block are obtained and output to the ADRC decoding circuit 355.
[0167]
The recovery process of the dynamic range DR or the minimum pixel value MIN of the DRMIN recovery circuit 354 will be described with reference to FIGS. The pixel value L is decoded from the code Q by the process of Expression (5) by the ADRC method.
L = DR / (2Q) * q + MIN (5)
[0168]
As shown in FIG. 36, the relationship between q and the pixel value L is such that the slope is DR / (2Q), And the contact piece is represented by a straight line having the minimum pixel value MIN.
[0169]
From the set of (q, L) in the ADRC block, DR / (2Q) And the minimum value MIN of the pixel value is obtained statistically. It is assumed that the regression line (q, L) shown in FIG. 37 is equal to the straight line of Expression (5).
[0170]
At this time, if b is known, a is calculated by equation (6).
a = (B-nb) / A (6)
[0171]
If a is known, b is calculated by equation (7).
b = (B-Aa) / n (7)
[0172]
Here, n is the number of points (q, L), A is Σx, and B is Σy.
[0173]
The dynamic range DR is calculated by Expression (8).
DR = (ΣL'-N * MIN) / (Σq) * 2Q
= (((DR '/ 2Q ') * Y) + N * MIN'-N * MIN) / X * 2Q
= (N * (MIN'-MIN) * 2Q '+ DR' * Y) * 2Q/ (X * 2Q '(8)
As shown in FIG. 38 (A), N is Σni, where ni is the number of non-missing blocks adjacent to the block to be recovered from the dynamic range DR or the minimum pixel value MIN. In FIG. 38, the hatched squares indicate blocks that attempt to recover the dynamic range DR or the minimum pixel value MIN. In FIG. 38, squares without diagonal lines indicate blocks without omissions. When the q of the block to be recovered from the dynamic range DR or the minimum pixel value MIN is missing, ni is 0 as shown in FIG.
[0174]
DR 'indicates the dynamic range of a block without a missing block adjacent to the block to be recovered. MIN ′ indicates the minimum value of the pixel values of the non-missing block adjacent to the block to be recovered. Q 'indicates the code Q of a block without a block adjacent to the block to be recovered.
[0175]
X is represented by Formula (9).
[Expression 4]
Figure 0004517435
[0176]
Y is shown by Formula (10).
[Equation 5]
Figure 0004517435
[0177]
The minimum value MIN of the pixel value is calculated by Expression (11).
MIN = (ΣL'-Σq * (DR / 2Q))
= ((DR '/ 2Q ') * Y + N * MIN '-(DR / 2Q) * X) / N
= (N * MIN '* 2Q '+ Q+ DR '* Y * 2Q-DR * X * 2Q ') / (N * 2Q '+ Q(11)
[0178]
The ADRC decoding circuit 355 decodes the code Q based on the data supplied from the inter-segment deshuffle circuit 352 when there is no loss in the deshuffled data, and the Y data, U data, and V obtained as a result of the decoding. Data is supplied to the block deshuffle circuit 356.
[0179]
The ADRC decoding circuit 355 passes through the DRMIN recovery circuit 354 when the q or the motion flag MF is missing and the q-bit MF recovery circuit 353 can obtain the correct value of q and the correct value of the motion flag MF. Based on the supplied correct value of q, the correct value of the motion flag MF, the dynamic range DR, and the minimum value MIN of the pixel value for each block, the code Q supplied from the DRMIN recovery circuit 354 is decoded, and the decoding result The obtained Y data, U data, and V data are supplied to the block deshuffle circuit 356 together with an error flag set to “0” corresponding to the Y data, U data, and V data.
[0180]
When the q or MF recovery circuit 355 is missing the q or motion flag MF and the q bit MF recovery circuit 353 cannot determine the correct value of q and the correct value of the motion flag MF, the ADRC decoding circuit 355 has the Y data corresponding to the code Q, The error flag of U data and V data is set to “1” and supplied to the block deshuffle circuit 356.
[0181]
The ADRC decoding circuit 355 has a missing dynamic range DR or the minimum pixel value MIN, and the DRMIN recovery circuit 354 can obtain the correct value of the dynamic range DR and the correct minimum value MIN of the pixel value. The code Q supplied from the DRMIN recovery circuit 354 is based on the correct value of q, the motion flag MF, the correct value of the dynamic range DR, and the correct value of the minimum value MIN of the pixel value supplied via the DRMIN recovery circuit 354. Decode and supply Y data, U data, and V data obtained as a result of decoding to block deshuffle circuit 356 together with an error flag set to “0” corresponding to Y data, U data, and V data To do.
[0182]
The ADRC decoding circuit 355 has a missing dynamic range DR or the minimum pixel value MIN, and the DRMIN recovery circuit 354 cannot obtain the correct value of the dynamic range DR and the correct minimum value MIN of the pixel value. , “1” is set to the error flag of Y data, U data, and V data corresponding to the code Q, and the error flag is supplied to the block deshuffle circuit 356.
[0183]
The recovery error determination circuit 357 outputs a recovery error determination flag Fd to the block deshuffle circuit 356 based on the emin1 and emin2 supplied from the q-bit MF recovery circuit 353, and the previous frame stored in the external memory 305. Update of the Y data, U data, and V data of the corresponding pixel is stopped.
[0184]
When the Y data, U data, and V data are supplied from the ADRC decoding circuit 355 together with the error flag set to “0”, the block deshuffle circuit 356 receives the error flag, Y data, U data, and V data. Remember. The block deshuffle circuit 356 stores the error flag when Y data, U data, and V data are supplied from the ADRC decoding circuit 355 together with the error flag set to “1”, and the Y data, U data, and Do not store V data. Further, the block deshuffle circuit 356 also receives the Y data of the corresponding pixel of the previous frame stored in the external memory 305 even when the continuous error signal is supplied from the recovery error determination circuit 357 or the inter-segment deshuffle circuit 352. Update of U data and V data is stopped.
[0185]
The block deshuffle circuit 356 returns the Y data, U data, and V data to the original sequence, the original Y-converted Y data by the reverse operation of the block shuffle circuit 102 of the transmission apparatus 1 shown in FIG. U data and V data are output.
[0186]
As described above, the decoding circuit 304 has the q-bit MF recovery circuit 353 and the DRMIN recovery circuit even if the data q necessary for decoding, the motion flag MF, the dynamic range DR, or the minimum pixel value MIN is lost. Since 354 recovers lost data, decryption can be performed.
[0187]
When there is an error in recovery, the pixel value stored in the external memory 305 is not overwritten, and the pixel value four frames before is output. Therefore, when there is no motion, it is possible to output a pixel value with no sense of incongruity.
[0188]
Next, the processing timing of the decoding circuit 304 will be described with reference to the timing charts of FIGS. FIG. 39 shows an example of the processing timing of the decoding circuit 304 when there is no omission in the data output from the inter-segment deshuffle circuit 352. The inter-segment deshuffle circuit 352 performs a deshuffling process, and outputs the deshuffled data to the ADRC decoding circuit 355 after a predetermined time has elapsed (in the example of FIG. 39, after 362 clocks from the start of input). The ADRC decoding circuit 355 decodes the data supplied from the inter-segment deshuffle circuit 352 and outputs it.
[0189]
FIG. 40 shows an example of processing timing of the decoding circuit 304 when data output from the inter-segment deshuffle circuit 352 is missing. The inter-segment deshuffle circuit 352 performs a deshuffling process, and when there is no missing data, the data is supplied earlier to the ADRC decoding circuit 355 (in the example of FIG. 40, 123 clocks after the start of input), q bits. The deshuffled data is output to the MF recovery circuit 353. The q-bit MF recovery circuit 353 supplies q and the motion flag MF to the DRMIN recovery circuit 354 at a predetermined timing.
[0190]
The DRMIN recovery circuit 354 supplies the dynamic range and the minimum pixel value to the ADRC decoding circuit 355 at the same timing as the inter-segment deshuffle circuit 352 supplies data to the ADRC decoding circuit 355 when there is no missing data. .
[0191]
Therefore, even if the decoding circuit 304 recovers q, the motion flag MF, the dynamic range DR, and the minimum pixel value MIN, the data is output at the same timing as when the data output from the inter-segment deshuffle circuit 352 is not missing. Can be decoded and output.
[0192]
As described above, since the decoding circuit 304 recovers the lost data even if the predetermined data necessary for decoding is lost, the decoding can be executed because the q-bit MF recovery circuit 353 and the DRMIN recovery circuit 354 recover the lost data. it can. Note that when a signal for selecting a mode in which error processing is not performed (user selectable mode) is input to the decoding circuit 304, the q-bit MF recovery circuit 353 and the DRMIN recovery circuit 354 do not perform recovery.
[0193]
The data output timing of the block deshuffle circuit 356 will be described with reference to FIG. 41 and FIG.
[0194]
Conventionally, when two memories for storing images of two frames are provided and data is written in one memory as shown in FIG. 41A, the data is read out from the other memory and output. When the processing for the frame image is completed, as shown in FIG. 41B, data is written to the other memory, data is read from one memory, and output.
[0195]
In contrast, the external memory 305 is provided with two banks each for storing an image of two frames (bank 1 and bank 2 in the figure), and the block deshuffle circuit 356 is as shown in FIG. Furthermore, when image data corresponding to three ADRCs is supplied from the ADRC decoding circuit 355, it is written in the bank 1, and as shown in FIG. 42B, when no image data is supplied from the ADRC decoding circuit 355. By specifying an address (for example, from the start of input to 364 clocks shown in FIG. 40), block deshuffled data is read from bank 2. In the next two frames, when the image data corresponding to the three ADRCs is supplied from the ADRC decoding circuit 355, the block deshuffle circuit 356 writes to the bank 2 and the image data is supplied from the ADRC decoding circuit 355. If not, the block deshuffled data is read from bank 1.
[0196]
In this way, the image data can be block deshuffled and output to the block deshuffle circuit 356 with one external memory 305.
[0197]
FIG. 43 is a block diagram showing a configuration of the recovery error determination circuit 357. The evaluation value emin1 having the minimum value and the evaluation value emin2 having the second smallest value supplied from the q-bit MF recovery circuit 353 are supplied to the difference calculation circuit 431. The difference calculation circuit 431 calculates the difference between the input emin1 and emin2 and outputs the difference to the delay circuit 432. The delay circuit 432 delays the data supplied from the difference calculation circuit 431 for a predetermined time and outputs the delayed data to the adder 435 and the delay circuit 433.
[0198]
The delay circuit 433 delays the data supplied from the delay circuit 432 for a predetermined time and outputs the delayed data to the adder 435 and the delay circuit 434.
[0199]
The delay circuit 434 delays the data supplied from the delay circuit 433 for a predetermined time and outputs the delayed data to the adder 435 and the determination circuit 437.
[0200]
The adder 435 adds the data supplied from the delay circuit 432, the data supplied from the delay circuit 433, and the data supplied from the delay circuit 434, and supplies the result to the determination circuit 436.
[0201]
The determination circuit 436 determines whether or not the data supplied from the adder 435 is equal to or less than a predetermined threshold Te1, and if it is determined that the data supplied from the adder 435 is equal to or less than the threshold Te1, 1 ”is output to the AND circuit 438, and when it is determined that the data supplied from the adder 435 exceeds the threshold Te 1,“ 0 ”is output to the AND circuit 438.
[0202]
The determination circuit 437 determines whether or not the data supplied from the delay circuit 434 is equal to or less than a predetermined threshold value Te2, and if it is determined that the data supplied from the delay circuit 434 is equal to or less than the threshold value Te2, 1 ”is output to the AND circuit 438, and if it is determined that the data supplied from the delay circuit 434 exceeds the threshold Te 2,“ 0 ”is output to the AND circuit 438.
[0203]
The AND circuit 438 outputs “1” to the hold circuit 439 when the data supplied from the determination circuit 436 is “1” and the data supplied from the determination circuit 437 is “1”. The AND circuit 438 outputs “0” to the hold circuit 439 when the data supplied from the determination circuit 436 is “0” or the data supplied from the determination circuit 437 is “0”.
[0204]
The hold circuit 439 holds the input data until a reset signal is input, and outputs the data to the delay circuit 440. The delay circuit 440 delays the data output from the hold circuit 439 for a predetermined time, supplies the data to the hold circuit 439, and outputs the data to the block deshuffle circuit 356 as the recovery determination flag Fd.
[0205]
In this way, the recovery error determination circuit 357 has an integrated value of the difference between the evaluation value emin1 and the evaluation value emin2 for the three ADRC blocks that is equal to or less than the threshold Te1, and the evaluation value emin1 and the evaluation value emin2 for the ADRC block. Is equal to or less than the threshold Te2, that is, when the difference between the evaluation value emin1 and the evaluation value emin2 is small and there is a high possibility that the recovered q or the motion flag MF is not correct, the recovery determination flag Fd is set to 1. .
[0206]
Next, a process in which data decoded by the ADRC decoding circuit 355 is temporarily stored in the block deshuffle circuit 356 and read will be described. The inter-segment deshuffle circuit 352 sets an error flag corresponding to the missing data to “1” when the data supplied from the packet disassembly circuit 302 is missing, and when there is no missing data, an error corresponding to the data. The flag is set to “0”, and the ADRC block unit code Q and error flag are output to the ADRC decoding circuit 355. The ADRC decoding circuit 355 decodes the code Q and outputs Y data, U data, V data, and an error flag to the block deshuffle circuit 356.
[0207]
When the corresponding error flag is “0”, the block deshuffle circuit 356 stores the Y data, the U data, the V data, and the error flag in the external memory 305, and the corresponding error flag is “1”. The error flag is stored in the external memory 305, and the Y data, U data, and V data are not stored in the external memory 305.
[0208]
The external memory 305 has two banks, and stores Y data, U data, V data, and an error flag of two frames in one bank. The bank of the external memory 305 is switched every two frames. Therefore, when the corresponding error flag is “1”, the external memory 305 stores Y data, U data, and V data four frames before.
[0209]
FIG. 44 is a diagram illustrating the processing of the block deshuffle circuit 356 when the recovery error determination circuit 357 outputs the recovery determination flag Fd in which “1” is set. The difference between the evaluation value emin1 having the minimum value supplied from the q-bit MF recovery circuit 353 and the evaluation value emin2 having the second smallest value is equal to or less than a predetermined value, and includes 3 consecutive ADRC blocks. When the sum of the differences between emin1 and emin2 of the two ADRC blocks is equal to or less than a predetermined value, the q-bit MF recovery circuit 353 determines that the recovery of q has failed, and thus determines that the data extraction has also failed. To do. At this time, the recovery error determination circuit 357 outputs a recovery determination flag Fd in which “1” is set.
[0210]
When the recovery error determination circuit 357 outputs the recovery determination flag Fd in which “1” is set, the block deshuffle circuit 356 has failed to cut out data from the subsequent buffers (88 ADRC blocks). Therefore, “1” is set in the error flag supplied thereafter, and the error flag is stored in the external memory 305. In the case of the user selectable escape mode, the data is stored in the external memory 305.
[0211]
FIG. 45 is a diagram for explaining the processing of the block deshuffle circuit 356 when the inter-segment deshuffle circuit 353 outputs a continuous error signal. The inter-segment deshuffle circuit 353 outputs a continuous error signal when it detects the loss of both the corresponding even-numbered ADRC block and odd-numbered ADRC block. Since the q-bit MF recovery circuit 353 recovers the q and the motion flag MF using the correlation between the pixel values of adjacent pixels, both the corresponding even-numbered ADRC block and odd-numbered ADRC block are missing. The q-bit MF recovery circuit 353 cannot execute the recovery process. When the continuous error signal is supplied, the block deshaffling circuit 356 considers that data extraction from the subsequent buffer (88 ADRC blocks) has failed, and sets “1” to the error flag supplied thereafter. And the error flag is stored in the external memory 305, and the decoded data supplied thereafter is not stored in the external memory 305.
[0212]
FIG. 46 is a diagram for explaining the processing of the block deshuffle circuit 356 in the case of the user-selectable gray mode. In the case of the gray mode, the block deshuffle circuit 356 adds gray (only corresponding data is set to 128, not all Y, U, and V are set to 128) to the data whose corresponding error flag is “1”. Set and output.
[0213]
47 and 48 are diagrams for explaining processing corresponding to a user-selectable recovery-off input (signal input when the user operates a predetermined switch (not shown)) of the block deshuffle circuit 356. FIG. When the recovery-off input in which “1” is set is supplied, the block deshuffle circuit 356 does not pass through the q-bit MF recovery circuit 353 to the external memory 305 as shown in FIG. When Y data, U data, and V data are decoded, the decoded Y data, U data, and V data are stored. As shown in FIG. 48, when q and the motion flag are recovered by the q-bit MF recovery circuit 353, the block deshuffle circuit 356 stores the decoded Y data, U data, and V data in the external memory 305. All the corresponding error flags are set to “1”. By changing the recovery off input, the recovery effect of the q-bit MF recovery circuit 353 and the like can be easily confirmed.
[0214]
FIG. 49 is a diagram for explaining processing corresponding to an escape signal (a signal input when a user operates a predetermined switch (not shown)) of the block deshuffle circuit 356. When a predetermined escape signal is supplied, the block deshuffle circuit 356 forcibly sets an error flag supplied thereafter even if the recovery determination flag Fd is set to “1”, as shown in FIG. The error flag is stored in the memory without setting “1”, and the decoded Y data, U data, and V data supplied thereafter are stored in the memory. By changing the escape signal, the effect of concealment processing of the block deshuffle circuit 356 can be easily confirmed.
[0215]
50 and 51 are flowcharts for explaining the process of outputting the decoded data by the block deshuffle circuit 356. FIG. In step S31, the inter-segment deshuffle circuit 352 receives the error flag generated by the receiving circuit 301 and supplies it to the ADRC decoding circuit 355. The ADRC decoding circuit 355 outputs the error flag supplied from the inter-segment deshuffle circuit 352 to the block deshuffle circuit 356, and the block deshuffle circuit 356 receives the error flag.
[0216]
In step S32, the block deshuffle circuit 356 selects the first error flag corresponding to the buffer (predetermined 88 ADRC blocks) supplied from the ADRC decoding circuit 355. In step S33, the block deshuffle circuit 356 determines whether or not the continuous error signal supplied from the inter-segment deshuffle circuit 352 is “0”, and it is determined that the continuous error signal is “0”. In step S34, it is determined whether the recovery determination flag Fd supplied from the recovery error determination circuit 357 is "0". If it is determined in step S34 that the recovery determination flag Fd is “0”, the process proceeds to step S35, and the block deshuffle circuit 356 stores an error flag in the external memory 305.
[0217]
If it is determined in step S33 that the continuous error signal is “1”, and if it is determined in step S34 that the recovery determination flag Fd is “1”, data extraction has failed, so step S47 The block deshuffle circuit 356 determines whether or not the escape signal is off. If it is determined that the escape signal is off, the block deshuffle circuit 356 proceeds to step S48 and sets the error flag selected in step S32 to “ 1 ″ is set, and the process proceeds to step S35, where the block deshuffle circuit 356 stores an error flag in the external memory 305.
[0218]
If it is determined in step S47 that the escape signal is on, the error flag is not set. Therefore, the procedure skips step S48, proceeds to step S35, and the block deshuffle circuit 356 stores the external memory 305 in the external memory 305. Store the error flag.
[0219]
In step S36, the block deshuffle circuit 356 determines whether or not all error flags corresponding to the buffer have been processed. If it is determined that all error flags have been processed, the process proceeds to step S37. The shuffle circuit 356 receives the Y data, U data, and V data decoded from the ADRC decoding circuit 355.
[0220]
If it is determined in step S36 that all the error flags in the buffer have not yet been processed, the process proceeds to step S49, where the block deshuffle circuit 356 selects the next error flag, returns to step S33, and returns the error flag. Repeat the setting process.
[0221]
In step S38, the block deshuffle circuit 356 selects the first decoded data in the buffer supplied from the ADRC decoding circuit 355.
[0222]
In step S39, the block deshuffle circuit 356 determines whether or not the continuous error signal supplied from the inter-segment deshuffle circuit 352 is “0”, and it is determined that the continuous error signal is “0”. In step S40, it is determined whether or not the error flag corresponding to the selected decoded data is “0”. If it is determined that the error flag corresponding to the selected decoded data is “0”, the process proceeds to step S41, and the block deshuffle circuit 356 selects the decoded Y data, U data, And V data are stored in the external memory 305. The procedure proceeds to step S42.
[0223]
If it is determined in step S39 that the continuous error signal is “1”, and if it is determined in step S40 that the error flag corresponding to the selected decoded data is “1”, Since data is missing, step S41 is skipped and the process proceeds to step S42.
[0224]
In step S42, the block deshuffle circuit 356 determines whether or not all the decoded data in the buffer has been processed. If it is determined that all the decoded data in the buffer has been processed, the process proceeds to step S43. .
[0225]
If it is determined in step S42 that all decoded data in the buffer (88 ADRC blocks) has not yet been processed, the process proceeds to step S50, where the block deshuffle circuit 356 selects the next data, Returning to step S39, the process of storing the decoded data is repeated.
[0226]
In step S43, the block deshuffle circuit 356 selects the first data stored in the external memory 305. In step S44, the block deshuffle circuit 356 determines whether or not the error flag is “1” and the gray mode, and if it is determined that the error flag is “0” or not the gray mode, In step S45, the selected data is output to the format conversion circuit 306.
[0227]
If it is determined in step S44 that the error flag is “1” and the gray mode is set, the process proceeds to step S51, where the block deshuffle circuit 356 outputs the gray data to the format conversion circuit 306, and then proceeds to step S46. move on.
[0228]
In step S46, the block deshuffle circuit 356 determines whether or not all the data stored in the bank of the external memory 305 has been processed, and determines that all the data stored in the external memory 305 has been processed. If so, the process ends.
[0229]
If it is determined in step S46 that all the data stored in the external memory 305 has not been processed, the process proceeds to step S52, and the block deshuffle circuit 356 proceeds to the next stored in the bank of the external memory 305. Data is selected, the process returns to step S44, and the process of outputting the data is repeated.
[0230]
Thus, the block deshuffle circuit 356 can output data with the least sense of incongruity even if the code Q is missing.
[0231]
Next, a process of outputting data of the block deshuffle circuit 356 when the user-selectable recovery off switch (not shown) is “0” will be described with reference to the flowchart of FIG. In step S71, the inter-segment deshuffle circuit 352 receives the error flag generated by the receiving circuit 301 and supplies it to the ADRC decoding circuit 355. The ADRC decoding circuit 355 outputs the error flag supplied from the inter-segment deshuffle circuit 352 to the block deshuffle circuit 356, and the block deshuffle circuit 356 receives the error flag.
[0232]
In step S72, the block deshuffle circuit 356 determines whether or not the q and the motion flag are recovered in the q-bit MF recovery circuit 353 and the like, and determines that the q and the motion flag MF and the like are not recovered. In this case, the process proceeds to step S73, and the error flag is stored in the external memory 305.
[0233]
If it is determined in step S72 that q and the motion flag have been recovered, the process proceeds to step S78, and the block deshuffle circuit 356 sets all the received error flags to “1”, and the process proceeds to step S73.
[0234]
In step S74, the block deshuffle circuit 356 receives the Y data, U data, and V data decoded from the ADRC decoding circuit 355.
[0235]
In step S75, the block deshuffle circuit 356 determines whether q and the motion flag etc. are recovered in the q-bit MF recovery circuit 353 etc., and determines that q and the motion flag MF etc. are not recovered. In the case, the process proceeds to step S76, and the Y data, U data, and V data received in step S74 are stored.
[0236]
If it is determined in step S75 that q, the motion flag MF, and the like have been recovered, step S76 is skipped, and the process proceeds to step S77 without storing Y data, U data, and V data.
[0237]
In step S77, the block deshuffle circuit 356 outputs the Y data, U data, V data, and error flag stored in the external memory 305 to the format conversion circuit 306, and ends the process.
[0238]
Thus, when the recovery off input is “1”, the block deshuffle circuit 356 does not output recovered data.
[0239]
As described above, since the decoding circuit 304 recovers the lost data even if the predetermined data necessary for decoding is lost, the decoding can be executed because the q-bit MF recovery circuit 353 and the DRMIN recovery circuit 354 recover the lost data. it can. Also, the decoding circuit 304 can output data with the least sense of incongruity even if it cannot be decoded. Further, by setting the recovery off input to “1”, the effect of recovery can be easily confirmed.
[0240]
Next, the missing pixel creation circuit 308 will be described. When the progressive pixel image is reproduced, the missing pixel creation circuit 308 performs peripheral classification in the same frame (frame t) of the pixel to be created as shown in FIG. Based on the pixel values of the pixels and the pixel values of the pixels in the previous frame (frame t-1) at the same position in the horizontal and vertical directions as these pixels, the pixel values of the missing pixels are created. To do. Further, the missing pixel creation circuit 308 performs, as shown in FIG. 53 (B), the pixel value of the surrounding pixels in the same field (field t) of the pixel to be created, The previous field (field t-1) at the same position in the horizontal and vertical directions as the pixel, and the two pixels before the same position in the horizontal and vertical directions as the surrounding pixels of the pixel to be created Based on the pixel values of the pixels in the field (field t-2), the pixel values of the missing pixels are created.
[0241]
FIG. 54 is a block diagram showing the configuration of the missing pixel creation circuit 308. As shown in FIG. The pixel value that is the data input to the missing pixel creation circuit 308 and the error flag indicating the missing pixel are supplied to the preprocessing circuit 501 and the tap construction circuit 502-1.
[0242]
Based on the input pixel value and the error flag indicating the missing pixel, the preprocessing circuit 501 generates a missing pixel value with a linear interpolation filter, sets the value to the missing pixel, This is supplied to the tap construction circuits 502-2 to 502-5. The pixel value is also referred to as tap data.
[0243]
The processing of the preprocessing circuit 501 will be described with reference to the flowchart of FIG. In step S131, the preprocessing circuit 501 determines whether or not the target pixel is missing based on the error flag. If it is determined that the target pixel is not missing, the process proceeds to step S132. The pixel value of the target pixel is set to the target pixel, and the process ends.
[0244]
If it is determined in step S131 that the target pixel is missing, the process proceeds to step S133, and the preprocessing circuit 501 determines which of the pixels adjacent to the target pixel is horizontally based on the error flag. Whether or not is missing is determined. If it is determined in step S133 that none of the pixels adjacent to the target pixel horizontally is missing, the process proceeds to step S134, and the preprocessing circuit 501 is adjacent to the target pixel horizontally. The average value of the two pixel values is set as the pixel value of the target pixel, and the process ends.
[0245]
When it is determined in step S133 that any of the pixels adjacent to the target pixel in the horizontal direction is missing, the process proceeds to step S135, and the preprocessing circuit 501 is adjacent to the target pixel in the horizontal direction. It is determined whether any of the pixels that are present is missing. If it is determined in step S135 that any of the pixels adjacent to the target pixel in the horizontal direction is not missing, the process proceeds to step S136, and the preprocessing circuit 501 is adjacent to the target pixel in the horizontal direction. The pixel value of the pixel that is not missing is set as the pixel value of the target pixel, and the process ends.
[0246]
If it is determined in step S135 that any of the horizontally adjacent pixels of the target pixel is missing, the process proceeds to step S137, and the preprocessing circuit 501 determines the target pixel based on the error flag. It is determined whether any of the vertically adjacent pixels is missing. When it is determined in step S137 that none of the pixels adjacent to the target pixel is missing, the process proceeds to step S138, and the preprocessing circuit 501 is adjacent to the target pixel vertically. The average value of the two pixel values is set as the pixel value of the target pixel, and the process ends.
[0247]
If it is determined in step S137 that any of the pixels adjacent to the target pixel in the vertical direction is missing, the process proceeds to step S139, and the preprocessing circuit 501 sets the target based on the error flag. It is determined whether all the pixels adjacent to the pixel are missing. When it is determined in step S139 that any pixel adjacent to the target pixel is not missing, the process proceeds to step S140, and the preprocessing circuit 501 is adjacent to the target pixel. The pixel value of the pixel that has not been set is set as the pixel value of the target pixel, and the process ends.
[0248]
If it is determined in step S139 that all the pixels adjacent to the target pixel are missing, the process proceeds to step S141, and the preprocessing circuit 501 determines the past frame at the same position as the target pixel. The pixel value of the pixel is set to the pixel value of the target pixel, and the process ends.
[0249]
As described above, the preprocessing circuit 501 linearly interpolates the pixel value of the target pixel from the pixel values of surrounding pixels. By the interpolation processing by the preprocessing circuit 501, the range of taps that can be used in subsequent processing can be expanded.
[0250]
The tap construction circuits 502-1 to 502-5 supply tap data and the like to the motion class generation circuit 503, the DR class generation circuit 504, the space class generation circuit 505, and the missing class generation circuit 506, respectively, at a predetermined timing. To do.
[0251]
The motion class generation circuit 503 generates a motion class code and a static flag based on the parameters supplied from the initialization circuit 309, the error flag supplied from the tap construction circuit 502-1, and the selected tap. The data is output to the construction circuits 502-2 to 205-5 and the class synthesis circuit 507. The motion class code has 2-bit information indicating the amount of motion, and the static flag indicates the presence / absence of motion by 1 bit.
[0252]
FIG. 56A is a diagram illustrating an example of 3 × 3 pixels centering on a pixel to be created, which is used for calculation of temporal activity by the motion class generation circuit 503. In FIG. 56A, “error” indicates a missing pixel. FIG. 56B is a diagram illustrating an example of 3 × 3 pixels of the previous frame corresponding to the pixel illustrated in FIG. L1 to L3 shown in FIGS. 56A and 56B each indicate a line, and the same number in the line indicates the same position in the vertical direction. Each of H1 to H3 shown in FIGS. 56A and 56B indicates the horizontal position of the pixel, and the same number indicates the same position in the horizontal direction.
[0253]
In the case shown in FIGS. 56 (A) and 56 (B), the time activity is calculated by Expression (12).
Figure 0004517435
In Expression (12), () represents a pixel value of a pixel, and || represents a function for obtaining an absolute value.
[0254]
The motion class generation circuit 503 calculates a spatial activity obtained by adding 1 to the difference between the maximum value and the minimum value of 3 × 3 pixels centering on the pixel to be created.
[0255]
FIG. 57 is a diagram illustrating an example of a 3 × 3 pixel centered on a missing pixel to be created, which is used for calculation of a spatial activity by the motion class generation circuit 503. At this time, the spatial activity is calculated by Expression (13).
Spatial activity = Max (qi) −Min (qi) +1 (13)
In Expression (13), Max (qi) indicates the maximum value of the pixel values q1 to q9. Min (qi) represents the minimum value of the pixel values q1 to q9.
[0256]
The motion class generation circuit 503 selects thresholds having different values based on the spatial activity. The motion class generation circuit 503 sets a motion class code based on the motion determination threshold and the time activity.
[0257]
FIG. 58 is a diagram for explaining a threshold value for motion determination. A different value is used as the threshold for motion determination depending on the value of the spatial activity. If the spatial activity increases, a larger value threshold is used. This is because when the spatial activity is large, the movement is at least, and the temporal activity is a large value.
[0258]
In processing for standard density data, a motion class code is set using a fixed threshold value regardless of the spatial activity.
[0259]
Next, the process of setting the motion class code of the motion class generation circuit 503 will be described with reference to the flowchart of FIG. In step S151, the motion class generation circuit 503 determines whether or not the time activity is equal to or less than the threshold value 1. If it is determined that the time activity is equal to or less than the threshold value 1, the process proceeds to step S152, and the motion class code is determined. Set to 0 and the process ends.
[0260]
If it is determined in step S151 that the time activity exceeds the threshold value 1, the process proceeds to step S153, in which the motion class generation circuit 503 determines whether the time activity is equal to or less than the threshold value 2, and the time activity is equal to the threshold value 2. If it is determined as follows, the process proceeds to step S154, the motion class code is set to 1, and the process ends.
[0261]
If it is determined in step S153 that the time activity exceeds the threshold value 2, the process proceeds to step S155, and the motion class generation circuit 503 determines whether the time activity is less than or equal to the threshold value 3 and the time activity is less than or equal to the threshold value 3. If it is determined, the process proceeds to step S156, the motion class code is set to 2, and the process ends.
[0262]
If it is determined in step S155 that the time activity exceeds the threshold 3, the process proceeds to step S157, and the motion class generation circuit 503 sets the motion class code to 3, and the process ends.
[0263]
As described above, the motion class generation circuit 503 sets the motion class code based on the threshold and the time activity.
[0264]
The motion class generation circuit 503 sets the motion flag again based on the motion class codes of a plurality of pixels. For example, as shown in FIG. 60, the motion class generation circuit 503 sets the motion class code of the target pixel based on the motion class codes of the pixels around the pixel to be created.
[0265]
The process of setting the motion class code of the motion class generation circuit 503 will be described with reference to the flowchart of FIG. In step S171, the motion class generation circuit 503 determines whether or not the number of motion class codes for which a value of 3 is set among the motion class codes of the seven pixels is greater than the threshold 3, and the value of 3 When it is determined that the number of motion class codes for which is set is greater than the threshold 3, the process proceeds to step S172, 3 is set for the motion class code, and the process ends.
[0266]
If it is determined in step S171 that the number of motion class codes for which a value of 3 is set is equal to or less than the threshold value 3, the process proceeds to step S173, and the motion class generation circuit 503 has a value of 3 set. It is determined whether or not a value obtained by adding the number of motion class codes and the number of motion class codes for which a value of 2 is set is larger than a threshold value 2, and the number of motion class codes for which a value of 3 is set If it is determined that the value obtained by adding the number of motion class codes for which the value of 2 is set is greater than the threshold 2, the process proceeds to step S174, where 2 is set for the motion class code, and the process ends.
[0267]
If it is determined in step S173 that the value obtained by adding the number of motion class codes for which the value of 3 is set and the number of motion class codes for which the value of 2 is set is equal to or less than the threshold value 2, step S175 , The motion class generation circuit 503 determines the number of motion class codes for which a value of 3 is set, the number of motion class codes for which a value of 2 is set, and the motion class code for which a value of 1 is set. It is determined whether or not the value obtained by adding the number of is greater than the threshold 1, the number of motion class codes for which a value of 3 is set, the number of motion class codes for which a value of 2 is set, and If it is determined that the value obtained by adding the number of motion class codes for which the value is set is greater than the threshold value 1, the process proceeds to step S176, where 1 is set for the motion class code, and the process ends.
[0268]
In step S175, a value obtained by adding the number of motion class codes for which a value of 3 is set, the number of motion class codes for which a value of 2 is set, and the number of motion class codes for which a value of 1 is set Is determined to be equal to or less than the threshold value 1, the process proceeds to step S 177, and the motion class generation circuit 503 sets 0 to the motion class code, and the process ends.
[0269]
As described above, the motion class generation circuit 503 sets the final motion class code based on the motion class codes of a plurality of pixels and the threshold value stored in advance.
[0270]
As described above, the motion class generation circuit 503 sets and outputs a motion class code from pixel values of a plurality of pixels. The motion class generation circuit 503 sets and outputs a static motion flag based on the motion class code. For example, when the motion class code is 0 or 1, the static flag is set to 0, and when the motion class code is 2 or 3, the static flag is set to 1.
[0271]
The tap construction circuit 502-2 selects a prediction tap that covers all class structures based on the motion class code and static flag supplied from the motion class generation circuit 503, and the positions of the missing pixels. This is supplied to the selection circuit 508.
[0272]
The tap construction circuit 502-3 selects a tap and a class tap based on the motion class code and the static flag supplied from the motion class generation circuit 503, and supplies them to the DR class generation circuit 504 together with an error flag. The DR class generation circuit 504 generates a DR class code based on the tap, class tap, and error flag supplied from the tap construction circuit 502-3, and outputs the DR class code to the class synthesis circuit 507.
[0273]
The tap construction circuit 502-4 selects a tap and a class tap based on the motion class code and the static flag supplied from the motion class generation circuit 503, and supplies them to the space class generation circuit 505 together with an error flag. The space class generation circuit 505 generates a space class code based on the tap, class tap, and error flag supplied from the tap construction circuit 502-4 and outputs the generated space class code to the class synthesis circuit 507.
[0274]
The tap construction circuit 502-5 selects a tap based on the motion class code and the static motion flag supplied from the motion class generation circuit 503, and supplies them to the missing class generation circuit 506 together with the error flag. The missing class generation circuit 506 generates a missing class code based on the tap and error flag supplied from the tap construction circuit 502-5 and outputs the missing class code to the class synthesis circuit 507.
[0275]
The class synthesis circuit 507 integrates class codes based on the motion class code, static flag, DR class code, space class code, and missing class code, forms a final class code, and generates a coefficient holding class code. The data is output to the selection circuit 509.
[0276]
The coefficient holding class code selection circuit 509 causes the variable tap selection circuit 508 to select a variable tap based on the coefficient set supplied from the initialization circuit 309, the prediction structure, and the class code supplied from the class synthesis circuit 507. At the same time, the prediction coefficient sequence is output to the estimated prediction calculation circuit 510.
[0277]
A prediction tap data string selected by the variable tap selection circuit 508 will be described with reference to FIGS.
[0278]
FIG. 62 shows an example of the prediction tap variable selection range output by the tap construction circuit 502-2 to the variable tap selection circuit 508 and the prediction tap data string selected by the variable tap selection circuit 508 when the motion class code is 0. FIG. In FIG. 62, a tap surrounded by a solid line indicates a prediction tap variable selection range output from the tap construction circuit 502-2, and a tap surrounded by a dotted line indicates a prediction tap data string selected by the variable tap selection circuit 508. The prediction tap data string selected by the variable tap selection circuit 508 includes taps included in the prediction tap variable selection range output by the tap construction circuit 502-2.
[0279]
For example, when the motion class code is 0, the tap construction circuit 502-2 selects an adjacent tap. For example, when the motion class code is 0, the variable tap selection circuit 508 selects adjacent taps.
[0280]
FIG. 63 is a diagram illustrating a prediction tap variable selection range output by the tap construction circuit 502-2 and a prediction tap data sequence selected by the variable tap selection circuit 508 when the motion class code is 1. In FIG. 63, a tap surrounded by a solid line indicates a prediction tap variable selection range output by the tap construction circuit 502-2, and a tap surrounded by a dotted line indicates a prediction tap data string selected by the variable tap selection circuit 508. The prediction tap data string selected by the variable tap selection circuit 508 includes taps included in the prediction tap variable selection range output by the tap construction circuit 502-2.
[0281]
For example, when the motion class code is 1, the tap construction circuit 502-2 selects an adjacent tap and a tap that is not adjacent to the adjacent tap. For example, when the motion class code is 0, the variable tap selection circuit 508 selects five adjacent taps and five adjacent taps that are separated from the five adjacent taps.
[0282]
FIG. 64 is a diagram illustrating a prediction tap variable selection range output by the tap construction circuit 502-2 and a prediction tap data sequence selected by the variable tap selection circuit 508 when a missing tap exists and the motion class code is 0. It is. Black circles in the figure indicate missing taps. In FIG. 64, a tap surrounded by a solid line indicates a prediction tap variable selection range output by the tap construction circuit 502-2, and a tap surrounded by a dotted line indicates a prediction tap data string selected by the variable tap selection circuit 508. The prediction tap data string selected by the variable tap selection circuit 508 includes taps included in the prediction tap variable selection range output by the tap construction circuit 502-2.
[0283]
For example, when there is a missing tap and the motion class code is 0, the tap construction circuit 502-2 selects an adjacent tap. For example, when there is a missing tap and the motion class code is 0, the variable tap selection circuit 508 uses the same number of adjacent taps (eg, a tap next to a missing tap or a missing tap as when no missing tap exists). Taps in the same order as).
[0284]
FIG. 65 is a diagram showing a prediction tap variable selection range output by the tap construction circuit 502-2 and a prediction tap data sequence selected by the variable tap selection circuit 508 when a missing tap exists and the motion class code is 1. It is. Black circles in the figure indicate missing taps. In FIG. 64, a tap surrounded by a solid line indicates a prediction tap variable selection range output by the tap construction circuit 502-2, and a tap surrounded by a dotted line indicates a prediction tap data string selected by the variable tap selection circuit 508. The prediction tap data string selected by the variable tap selection circuit 508 includes taps included in the prediction tap variable selection range output by the tap construction circuit 502-2.
[0285]
For example, when there is a missing tap and the motion class code is 1, the tap construction circuit 502-2 selects an adjacent tap and a tap that is not adjacent to the adjacent tap. For example, when there is a missing tap and the motion class code is 0, the variable tap selection circuit 508 uses the same number of adjacent taps (eg, a tap next to a missing tap or a missing tap as when no missing tap exists). And the same number of adjacent taps as those when there are no missing taps.
[0286]
Based on the output mode set from the initialization circuit 309, the estimated prediction calculation circuit 510 receives the prediction tap data string supplied from the variable tap selection circuit 508 and the prediction coefficient string supplied from the coefficient holding class code selection circuit 509. Based on the linear estimation formula, the pixel value of the missing pixel is calculated.
[0287]
As described above, the missing pixel creation circuit 308 calculates a missing pixel value based on the pixel values around the missing pixel by class classification based on dynamic range, motion, lack, change in pixel value, and the like.
[0288]
Further, the estimated prediction calculation circuit 510 improves the image quality of the input image (increase in gradation (increase in the number of bits of Y data, U data, and V data), noise removal, quantization distortion removal ( Including the removal of distortion in the time direction) and the creation of quadruple density resolution.
[0289]
Next, the quadruple resolution creation circuit 312 will be described. When outputting an interlaced image, the quadruple-resolution creation circuit 312 uses a class classification adaptation process, as shown in FIGS. 66A and 66B, for a predetermined number of two fields. Based on the pixel value of the pixel, two pixels are created between the two input fields.
[0290]
When outputting the progressive image, the quadruple-resolution creation circuit 312 uses the class classification adaptation process as shown in FIGS. 66C and 66D, and as shown in FIG. Based on the pixel values of a predetermined number of pixels in one frame, two pixels are created between the two input frames.
[0291]
FIG. 67 is a block diagram showing a configuration of the quadruple-density resolution creation circuit 312. The Y data, U data, and V data supplied from the format conversion circuit 310 are supplied to the tap selection circuit 601, the tap selection circuit 602, and the tap selection circuit 603. The tap selection circuit 601 selects a pixel to be used for calculating a pixel value of a pixel to be created in order to quadruple the density according to the tap position information stored in the register 609. The pixels selected by the tap selection circuit 601 are supplied to the estimated prediction calculation circuit 607.
[0292]
The tap selection circuit 602 selects a pixel to be used for the spatial class classification from among the pixel values of pixels in the vicinity of the pixel to be created according to the tap position information stored in the register 610. The pixel selected by the tap selection circuit 602 is supplied to the space class detection circuit 604. The space class detection circuit 604 detects a space class. The detected space class is supplied to the class synthesis circuit 606.
[0293]
The tap selection circuit 603 selects a pixel to be used for class classification corresponding to a motion based on pixels in the vicinity of the pixel to be created according to the tap position information stored in the register 611. The pixel selected by the tap selection circuit 603 is supplied to the motion class detection circuit 605. The motion class detection circuit 605 detects a motion class. The detected motion class is supplied to the class synthesis circuit 606 and the register 610. The position information of the tap of the register 610 is switched according to the motion class supplied from the motion class detection circuit 605.
[0294]
The class synthesis circuit 606 integrates the space class and the motion class to form a final class code.
[0295]
This class code is supplied as an address to the coefficient memory 612, and a coefficient set corresponding to the class code is read from the coefficient memory 612. The coefficient set is supplied to the estimated prediction calculation circuit 607. Based on the pixel value supplied from the tap selection circuit 601 and the coefficient set supplied from the coefficient memory 612, the estimated prediction calculation circuit 607 calculates the pixel value of the pixel to be created using a linear estimation equation. . The output from the estimated prediction calculation circuit 607 is supplied to the line sequential conversion circuit 613 as line data L1 and line data L2.
[0296]
The coefficient set is Y data including 528 pixels in the horizontal direction and 240 pixels in the vertical direction as a teacher signal, and U data including 176 pixels in the horizontal direction and 120 pixels in the vertical direction, respectively. A coefficient set for each class is generated in advance using the data and the V data, and is stored in the initialization circuit 313.
[0297]
The line sequential conversion circuit 613 has a line memory, and outputs line data L1 and line data L2 output from the estimated prediction calculation circuit 607 in line sequential order based on output timing data stored in the register 608. The line sequential conversion circuit 613 outputs image data having a density four times that of the supplied image.
[0298]
The register 608, the register 609, the register 610, the register 611, and the coefficient memory 612 store the coefficient set supplied from the initialize circuit 313 when the initialization signal is supplied to the initialize circuit 313.
[0299]
FIG. 68 shows pixels input to the quadruple-resolution creation circuit 312 when the quadruple-resolution creation circuit 312 generates and outputs pixels of the quadruple-resolution using the interlace method (indicated by a large circle in the figure). And a position of a pixel (indicated by a small circle in the figure) output from the quadruple-resolution creation circuit 312. The frame input to the quadruple density creation circuit 312 has a frequency of 30 Hz, and the field output from the quadruple resolution creation circuit 312 has a frequency of 60 Hz. The output first field pixel is shifted from the input pixel by one line of the screen line output in the vertical direction, and the number of pixels per line is doubled. It has become. The output pixels of the second field are shifted from the input pixels by one line below the screen line output in the vertical direction, and the number of pixels per line is doubled. It has become.
[0300]
FIG. 69 shows pixels input to the quadruple-resolution creation circuit 312 when the quadruple-resolution creation circuit 312 generates and outputs pixels of the quadruple-resolution in a progressive manner (in the figure, a large circle). And a position of a pixel (indicated by a small circle in the figure) output from the quadruple-resolution creation circuit 312. The frame input to the quadruple-resolution creation circuit 312 has a frequency of 30 Hz, and the frame output from the quadruple-resolution creation circuit 312 has a frequency of 60 Hz. The pixels of the output frame are output on the same line as the input pixels, and the number of pixels per line is doubled.
[0301]
As described above, the quadruple-resolution creation circuit 312 creates an image having twice the number of pixels per line at the double frame frequency or double the field frequency based on the input image. Output.
[0302]
Next, the UV vertical doubling circuit 333 will be described. FIG. 70 is a block diagram showing a configuration of the UV vertical doubling circuit 333. The UV vertical doubling circuit 333 receives U data and V data in which the number of pixels is increased by the quadruple-resolution creation circuit 312. The input data is delayed by one line by line FIFOs 701-1 to 701-6 and sequentially output to the subsequent stage.
[0303]
The multiplier circuit 702-1 multiplies the input data by a coefficient and outputs the result to the adder circuit 703.
[0304]
Multipliers 702-2 to 702-7 multiply the input data by coefficients from line FIFOs 701-1 to 701-6, respectively, and output the result to adder 703.
[0305]
The adder circuit 703 adds the data supplied from the multiplier circuits 702-1 to 702-7 and supplies the sum to the latch circuit 704. When a clock signal is input, the latch circuit 704 latches the input data.
[0306]
The operation of the UV vertical doubling circuit 333 will be described with reference to FIG. The line FIFOs 701-1 to 701-6 output data of pixels (pixels indicated by circles in FIG. 71) at the same position in the horizontal direction of the screen on six lines continuous to the input line. The multiplier circuits 702-1 to 702-7 multiply the input data by a coefficient and output the result to the adder circuit 703. The adder circuit 703 adds the output data and outputs it to the latch circuit 704. A clock signal is input to the latch circuit 704 at a timing at which the number of lines is doubled (a timing indicated by a black triangle in FIG. 71). Therefore, the UV vertical doubling circuit 333 interpolates the number of lines of the input U data and V data twice, and outputs the result.
[0307]
Next, reception processing of the reception device 2 will be described with reference to the flowchart of FIG. In step S <b> 201, the packet disassembly circuit 302 disassembles the packet received by the reception circuit 301 and supplies the packet to the decoding circuit 304. In step S202, the decoding circuit 304 decodes the data input from the packet disassembly circuit 302 by the ADRC method. When data is lost during transmission, in the decoding of the decoding circuit 304, q, the motion flag MF, the dynamic range DR, or the minimum pixel value MIN is recovered, and Y data, U data, and V data are decoded. .
[0308]
In step S203, the format conversion circuit 306 converts the Y data, U data, and V data supplied from the decoding circuit 304 into a predetermined format that can be processed by the missing pixel creation circuit 308. In step S204, the missing pixel creation circuit 308 creates a pixel that cannot be decoded by the decoding circuit 304 among the missing pixels by class adaptation processing.
[0309]
In step S205, the format conversion circuit 310 converts the Y data, U data, and V data supplied from the missing pixel creation circuit 308 into a predetermined format that can be processed by the quadruple-resolution creation circuit 312. In step S206, the quadruple-resolution creation circuit 312 creates a pixel by class adaptation processing based on the input Y data, U data, and V data, quadruples the pixel density, and interpolates 314. Output to.
[0310]
In step S207, the format conversion circuit 331 changes the data format so that the Y data, U data, and V data supplied from the quadruple resolution creation circuit 312 can be subjected to predetermined interpolation processing. In step S208, the UV vertical doubling circuit 333 interpolates pixels in the vertical direction with respect to the U data and V data so that the number of lines is doubled. In step S209, the D / A conversion circuit 335 performs digital-analog conversion at a predetermined clock rate, outputs an analog Y signal, an analog U signal, and an analog V signal, and the process ends.
[0311]
As described above, the receiving device 2 can perform decoding even if data is lost in the transmission path, and creates a missing pixel and expands it almost without being affected by the missing pixel. Can be output.
[0312]
Note that the image transmission system has been described as transmitting and receiving images, but not limited to images, data such as audio may be transmitted.
[0313]
The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program constituting the software may execute various functions by installing a computer incorporated in dedicated hardware or various programs. For example, it is installed from a recording medium in a general-purpose personal computer.
[0314]
FIG. 73 is a diagram illustrating an example of a recording medium and a computer. A CPU (Central Processing Unit) 811 actually executes various application programs and an OS (Operating System). A ROM (Read-only Memory) 812 generally stores basically fixed data out of programs used by the CPU 811 and calculation parameters. A RAM (Random-Access Memory) 813 stores programs used in the execution of the CPU 811 and parameters that change as appropriate during the execution. These are connected to each other by a host bus 814 including a CPU bus.
[0315]
The host bus 814 is connected to an external bus 816 such as a PCI (Peripheral Component Interconnect / Interface) bus via a bridge 815.
[0316]
The keyboard 818 is operated by the user when inputting various commands to the CPU 811. The mouse 819 is operated by the user when specifying or selecting a point on the screen of the display 820. The display 820 includes a liquid crystal display device or a CRT (Cathode Ray Tube), and displays various types of information as text and images. An HDD (Hard Disk Drive) 821 drives hard disks and causes them to record or reproduce programs executed by the CPU 811 and information.
[0317]
The drive 822 reads data or a program recorded in the magnetic disk 841, the optical disk 842, the magneto-optical disk 843, or the semiconductor memory 844 that is loaded, and the data or program is read out to the interface 817, the external bus 816, and the bridge. 815 and the RAM 813 connected via the host bus 814.
[0318]
These keyboard 818 to drive 822 are connected to an interface 817, and the interface 817 is connected to the CPU 811 via an external bus 816, a bridge 815, and a host bus 814.
[0319]
As shown in FIG. 73, the recording medium is distributed to provide a program to the user separately from the computer, and a magnetic disk 841 (including a floppy disk) on which the program is recorded, an optical disk 842 (CD-ROM). (Including Compact Disc-Read Only Memory), DVD (Digital Versatile Disc)), magneto-optical disk 843 (including MD (Mini-Disc)), or a package medium composed of semiconductor memory 844, etc. The program is provided with a ROM 812, HDD 821, and the like, which are provided to the user in a state of being pre-installed in the computer and in which a program is recorded.
[0320]
In the present specification, the step of describing the program stored in the recording medium is not limited to the processing performed in chronological order according to the described order, but is not necessarily performed in chronological order. It also includes processes that are executed individually.
[0321]
Further, in this specification, the system represents the entire apparatus constituted by a plurality of apparatuses.
[0322]
【The invention's effect】
  As aboveAccording to the present invention,The scale of hardware for multiplication can be reduced, and the amount of memory for storing the coefficient table can be reduced.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating the structure of a conventional packet.
FIG. 2 is a diagram illustrating an image transmission system that transmits an image.
FIG. 3 is a block diagram showing a configuration of an embodiment of a transmission apparatus 1 according to the present invention.
FIG. 4 is a diagram illustrating a process in which an image signal input to the transmission apparatus 1 is compressed.
5 is a block diagram showing a configuration of a thinning filter 43. FIG.
6 is a diagram for explaining an output of a latch circuit 81; FIG.
7 is a diagram for explaining an output of a latch circuit 84; FIG.
FIG. 8 is a block diagram showing a configuration of a UV vertical 1/2 circuit 45;
9 is a diagram for explaining an output of a latch circuit 94. FIG.
10 is a block diagram showing a configuration of an encoding circuit 15. FIG.
FIG. 11 is a diagram illustrating a unit of processing.
FIG. 12 is a diagram illustrating an ADRC block.
FIG. 13 is a diagram illustrating a relationship between pixels in a frame and an ADRC block.
FIG. 14 is a diagram illustrating a relationship between a pixel in a frame and an ADRC block.
FIG. 15 is a diagram illustrating a relationship between pixels in a frame and an ADRC block.
FIG. 16 is a diagram illustrating an ADRC block and a segment of Y data.
FIG. 17 is a diagram for explaining ADRC blocks and segments of U data or V data;
FIG. 18 is a diagram illustrating shuffle performed in units of ADRC blocks.
FIG. 19 is a diagram illustrating segments.
20 is a diagram illustrating the configuration of an ADRC encoding circuit 103. FIG.
21 is a diagram illustrating a configuration of an information amount control circuit 164. FIG.
22 is a diagram illustrating a configuration of an information amount control circuit 164. FIG.
23 is a diagram for explaining how to shuffle the inter-segment shuffle circuit 104. FIG.
24 is a diagram for explaining how to shuffle the inter-segment shuffle circuit 104. FIG.
25 is a diagram for explaining how to shuffle the inter-segment shuffle circuit 104. FIG.
FIG. 26 is a diagram for explaining how to shuffle the inter-segment shuffle circuit 104;
FIG. 27 is a diagram illustrating a configuration of a packet.
28 is a block diagram showing a configuration of an inter-segment shuffle circuit 104. FIG.
29 is a diagram illustrating a counter group of the input data counter unit 212. FIG.
30 is a diagram illustrating a counter group of the output data counter unit 216. FIG.
FIG. 31 is a diagram illustrating image transmission processing of the transmission apparatus 1;
32 is a block diagram illustrating a configuration of the reception device 2. FIG.
FIG. 33 is a diagram illustrating a process in which an image is expanded.
34 is a block diagram of the decoding circuit 304. FIG.
35 is a block diagram showing a configuration of a q-bit MF recovery circuit 353. FIG.
FIG. 36 is a diagram illustrating a recovery process of a dynamic range DR or a minimum pixel value MIN.
FIG. 37 is a diagram for describing recovery processing of a dynamic range DR or a minimum pixel value MIN.
FIG. 38 is a diagram illustrating a recovery process of a dynamic range DR or a minimum pixel value MIN.
FIG. 39 is a diagram illustrating an example of processing timing of the decoding circuit 304 when there is no omission in data output from the inter-segment deshuffle circuit 352;
FIG. 40 is a diagram illustrating an example of processing timing of the decoding circuit 304 when data output from the inter-segment deshuffle circuit 352 is missing.
FIG. 41 is a diagram illustrating a conventional data storage method.
42 is a diagram illustrating data output timing of the block deshuffle circuit 356. FIG.
43 is a block diagram showing a configuration of a recovery error determination circuit 357. FIG.
FIG. 44 is a diagram illustrating processing of the block deshuffle circuit 356 when the recovery error determination circuit 357 outputs a recovery determination flag Fd in which “1” is set.
FIG. 45 is a diagram illustrating processing of the block deshuffle circuit 356 when the inter-segment deshuffle circuit 353 outputs a continuous error signal.
FIG. 46 is a diagram illustrating processing of the block deshuffle circuit 356 in the gray mode.
47 is a diagram for describing processing corresponding to a recovery-off input of the block deshuffle circuit 356; FIG.
FIG. 48 is a diagram for explaining processing corresponding to a recovery-off input of the block deshuffle circuit 356;
49 is a diagram illustrating processing corresponding to an escape signal of the block deshuffle circuit 356. FIG.
FIG. 50 is a flowchart for describing processing of outputting decoded data by the block deshuffle circuit 356;
FIG. 51 is a flowchart for describing processing of outputting decoded data by the block deshuffle circuit 356;
FIG. 52 is a flowchart for describing processing for outputting data of the block deshuffle circuit 356 when the recovery-off input is “1”.
FIG. 53 is a diagram for explaining pixels used for processing by the missing pixel creation circuit 308;
54 is a block diagram showing a configuration of a missing pixel creation circuit 308. FIG.
FIG. 55 is a flowchart for explaining processing of the preprocessing circuit 501;
FIG. 56 is a diagram illustrating an example of pixels used for calculation of temporal activity.
FIG. 57 is a diagram illustrating an example of pixels used for calculation of spatial activity.
FIG. 58 is a diagram for explaining a threshold value for motion determination.
FIG. 59 is a flowchart for describing processing for setting a motion class code in a static motion determination circuit 521;
FIG. 60 is a diagram illustrating an example of pixels used for majority decision of a motion class code.
FIG. 61 is a flowchart for describing processing for setting a motion class code in the motion class generation circuit 503;
FIG. 62 is a diagram for explaining a predicted tap data string selected by the variable tap selection circuit 508;
FIG. 63 is a diagram for explaining a prediction tap data string selected by the variable tap selection circuit 508;
FIG. 64 is a diagram for explaining a prediction tap data string selected by the variable tap selection circuit 508;
FIG. 65 is a diagram for explaining a prediction tap data string selected by the variable tap selection circuit 508;
FIG. 66 is a diagram for explaining the positions of pixels used in the processing of the quadruple-resolution creation circuit 312;
67 is a block diagram showing a configuration of a quadruple-resolution creation circuit 312. FIG.
68 is a diagram showing the positions of pixels input to the quadruple density resolution creation circuit 312 and the pixel positions output by the quadruple density resolution creation circuit 312 when the quadruple resolution creation circuit 312 outputs in an interlaced manner. FIG. It is.
FIG. 69 is a diagram showing the positions of pixels input to the quadruple density creation circuit 312 and the positions of pixels output by the quadruple density resolution creation circuit 312 when the quadruple density creation circuit 312 outputs in a progressive manner; It is.
70 is a block diagram showing a configuration of a UV vertical doubling circuit 333. FIG.
71 is a diagram illustrating an output of a latch circuit 704. FIG.
72 is a flowchart for describing reception processing of the reception device 2. FIG.
Fig. 73 is a diagram for describing an example of a recording medium and a computer.
[Explanation of symbols]
1 transmitter, 2 receiver, 13 decimation unit, 15 encoding circuit, 17 packetization circuit, 42 A / D conversion circuit, 43 decimation filter, 45 UV vertical 1/2 circuit, 102 block shuffle circuit, 103 ADRC encoding Circuit, 104 inter-segment shuffle circuit, 164 information control circuit, 171 ADRC encoder, 104 inter-segment shuffle circuit, 111 data selection unit, 212 input data counter unit, 213 input / output controller, 214 address generation unit, 215 storage unit, 216 Output data counter section, 302 packet disassembly circuit, 304 decoding circuit, 305 external memory, 308 missing pixel creation circuit, 312 quadruple resolution creation circuit, 333 UV vertical double circuit, 335 D / A conversion circuit 352 inter-segment deshuffling circuit, 353 q-bit MF recovery circuit, 354 DRMIN recovery circuit, 355 ADRC decoding circuit, 356 block deshful circuit, 357 recovery error determination circuit, 501 preprocessing circuit, 502-1 to 502-5 tap construction circuit , 503 motion class generation circuit, 504 DR class generation circuit, 505 space class generation circuit, 506 missing class generation circuit, 507 class synthesis circuit, 508 variable tap selection circuit, 509 coefficient holding class code selection circuit, 510 estimation prediction calculation circuit

Claims (6)

コンポーネント信号が変換されることにより生成されたYデータ、Uデータ、およびVデータを第1のメモリに記憶させ、その記憶させた前記Yデータ、前記Uデータ、および前記VデータをADRCブロックの形式に並び換え、セグメントの範囲で、かつADRCブロック単位でシャフルするブロックシャフル手段と、  Y data, U data, and V data generated by converting a component signal are stored in a first memory, and the stored Y data, U data, and V data are in the form of an ADRC block. Block shuffling means for shuffling within a segment range and ADRC block unit,
前記ブロックシャフル手段から供給される前記Yデータ、前記Uデータ、および前記Vデータを、ADRC(Adaptive Dynamic Range Coding)方式に基づき符号化する符号化手段と、  Encoding means for encoding the Y data, the U data, and the V data supplied from the block shuffle means based on an ADRC (Adaptive Dynamic Range Coding) method;
前記符号化手段から供給されるデータを、第2のメモリに記憶させ、その記憶と読み出しのアドレスを変えることで、シャフルするセグメント間シャフル手段と、  The data supplied from the encoding means is stored in a second memory, and the inter-segment shuffling means for shuffling by changing the storage and reading addresses;
前記セグメント間シャフル手段から供給されるデータを、1パケットに、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックス、およびコードQが含まれるパケットにパケット化するパケット化手段と  Packetizing means for packetizing data supplied from the inter-segment shuffling means into a packet including a dynamic range, a motion flag, a minimum pixel value, an index of a quantization table, and a code Q in one packet;
を備え、  With
前記セグメント間シャフル手段は、データ選択手段、入力データカウンタ手段、入出力コントローラ手段、アドレス発生手段、および出力データカウンタ手段を備え、  The inter-segment shuffle means includes data selection means, input data counter means, input / output controller means, address generation means, and output data counter means,
前記データ選択手段は、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックスで構成される第1のデータの要素毎に、3個ずつパラレルに入力され、その第1のデータと交互するタイミングでコードQを含む第2のデータが入力され、それらの入力されたデータをシリアルデータに変換し、前記入出力コントローラ手段に出力し、  The data selection means is inputted in parallel for each element of the first data composed of the dynamic range, the motion flag, the minimum value of the pixel value, and the index of the quantization table, and the first data and Second data including the code Q is input at alternate timings, the input data is converted into serial data, and output to the input / output controller means,
前記入出力コントローラ手段は、前記アドレス発生手段が発生したアドレスに基づいて、入力されたデータを前記第2のメモリに記憶させ、  The input / output controller means stores the input data in the second memory based on the address generated by the address generating means,
前記入出力コントローラ手段は、前記第2のメモリに記憶されたデータを、前記アドレス発生手段が、前記出力データカウンタ手段から供給されるデータに従って発生したアドレスに基づいて、読み出し、前記パケット化手段に出力する  The input / output controller means reads the data stored in the second memory based on the address generated by the address generating means according to the data supplied from the output data counter means, and sends it to the packetizing means. Output
情報処理装置。  Information processing device.
前記入力データカウンタ手段は、前記データ選択手段に入力されたデータの種類の識別の為の情報、前記第2のメモリに記憶する際のアドレシングとシャフリングする方向を示すカウンタ群から構成されている  The input data counter means includes a group of counters indicating information for identifying the type of data input to the data selection means, addressing when storing in the second memory, and a direction of shuffling.
請求項1に記載の情報処理装置。  The information processing apparatus according to claim 1.
前記カウンタ群は、アドレシング用とシャフリング用とがあり、  The counter group includes addressing and shuffling.
前記アドレシング用の前記第1のデータ用のカウンタは、1バッファ内における前記第1のデータのブロック数をカウントするカウンタ、1セグメント内における前記第1のデータのパケットの数をカウントするカウンタ、および1バンク内における前記第1のデータのトータルのパケット数をカウントするカウンタから構成され、  The counter for the first data for addressing is a counter that counts the number of blocks of the first data in one buffer, a counter that counts the number of packets of the first data in one segment, and A counter that counts the total number of packets of the first data in one bank;
前記アドレシング用の前記第2のデータ用のカウンタ群は、1バッファ内における前記第2のデータのパケット数をカウントするカウンタ、1バンク内の前記第2のデータのトータルのパケット数をカウントするカウンタ、1セグメント内の前記第2のデータのバッファ数をカウントするカウンタ、および任意の順番の前記第2のデータをパケット当たりの前記第2のデータのバイト数Nで除算したときの余りをカウントするカウンタから構成され、  The counter group for the second data for addressing is a counter for counting the number of packets of the second data in one buffer, and a counter for counting the total number of packets of the second data in one bank A counter that counts the number of buffers of the second data in one segment, and a remainder when the second data in any order is divided by the number of bytes N of the second data per packet Consists of counters
前記シャフリング用の前記第1のデータ用のカウンタは、1バンク内における前記第1のデータのセグメント数をカウントするカウンタ、1セグメント内における前記第1のデータのシャフリング方向を決定するカウンタから構成され、  The first data counter for shuffling is a counter that counts the number of segments of the first data in one bank, and a counter that determines the shuffling direction of the first data in one segment. Configured,
前記シャフリング用の前記第2のデータ用のカウンタは、1バンク内における前記第2のデータのセグメント数をカウントするカウンタ、1セグメント内における前記第2のデータのシャフリング方向を決定するカウンタとから構成されている  The second data counter for shuffling is a counter that counts the number of segments of the second data in one bank, and a counter that determines the shuffling direction of the second data in one segment; Consists of
請求項2に記載の情報処理装置。  The information processing apparatus according to claim 2.
前記出力データカウンタ手段は、アドレシング用のカウンタ群から構成され、  The output data counter means comprises a group of addressing counters,
前記第1のデータのアドレシング用のカウンタは、1パケットサイズのデータセルにおける前記量子化テーブルのインデックスをカウントするカウンタ、1パケットサイズのデータセルにおける前記モーションフラグ数をカウントするカウンタ、1パケットサイズのデータセルにおける前記ダイナミックレンジと前記画素値の最小値の数をカウントするカウンタ、ビットサイズの前記量子化テーブルのインデックスと前記モーションフラグをバイトサイズのデータとして扱うために挿入されるブランクの数をカウントするカウンタ、1パケット内におけるパケット内の前記第2のデータの番号を決定するカウンタ、および1バッファ内におけるパケット数をカウントするカウンタから構成されている  The counter for addressing the first data is a counter that counts an index of the quantization table in a data cell of 1 packet size, a counter that counts the number of motion flags in a data cell of 1 packet size, and a counter of 1 packet size A counter that counts the number of the minimum values of the dynamic range and the pixel value in the data cell, and counts the number of blanks that are inserted to handle the index of the quantization table of bit size and the motion flag as byte size data Counter that determines the number of the second data in the packet in one packet, and a counter that counts the number of packets in one buffer.
請求項1に記載の情報処理装置。  The information processing apparatus according to claim 1.
前記第2のメモリに記憶されたデータは、前記出力データカウンタ手段のカウンタ群に従って、前記アドレス発生手段が発生するアドレスに基づいて読み出され、  The data stored in the second memory is read based on the address generated by the address generating means according to the counter group of the output data counter means,
その読み出しは、読み出しのためのパルスが所定のタイミングで前記セグメント間シャフル手段に入力されると、前記量子化テーブルのインデックスと前記モーションフラグが、バイト単位に集結する処理が行われ、  In the reading, when a pulse for reading is input to the inter-segment shuffling means at a predetermined timing, an index of the quantization table and the motion flag are collected in units of bytes,
その集結処理が終了されると、パケット内のデータの配列に従って、前記第2のメモリから読み出され、パケット化手段に出力される  When the gathering process is completed, the data is read from the second memory according to the arrangement of data in the packet and output to the packetizing means.
請求項1に記載の情報処理装置。  The information processing apparatus according to claim 1.
コンポーネント信号が変換されることにより生成されたYデータ、Uデータ、およびVデータを第1のメモリに記憶させ、その記憶させた前記Yデータ、前記Uデータ、および前記VデータをADRCブロックの形式に並び換え、セグメントの範囲で、かつADRCブロック単位でブロックシャフルし、  Y data, U data, and V data generated by converting a component signal are stored in a first memory, and the stored Y data, U data, and V data are in the form of an ADRC block. , Block shuffle within the segment range and ADRC block unit,
前記ブロックシャフルされた前記Yデータ、前記Uデータ、および前記Vデータを、ADRC(Adaptive Dynamic Range Coding)方式に基づき符号化し、  The block shuffled Y data, U data, and V data are encoded based on an ADRC (Adaptive Dynamic Range Coding) method,
前記符号化されたデータを、第2のメモリに記憶させ、その記憶と読み出しのアドレスを変えることで、セグメント間シャフルし、  The encoded data is stored in a second memory, and the address of the storage and reading is changed to shuffle between segments.
前記セグメント間シャフルされたデータを、1パケットに、ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックス、およびコードQが含まれるパケットにパケット化する  The inter-segment shuffled data is packetized into one packet into a packet including a dynamic range, motion flag, minimum pixel value, quantization table index, and code Q.
ステップを含み、  Including steps,
前記セグメント間シャフルは、  The inter-segment shuffle is
ダイナミックレンジ、モーションフラグ、画素値の最小値、量子化テーブルのインデックスで構成される第1のデータの要素毎に、3個ずつパラレルに入力され、その第1のデータと交互するタイミングでコードQを含む第2のデータが入力され、それらの入力されたデータがシリアルデータに変換され、アドレス発生手段が発生したアドレスに基づいて、入力されたデータが前記第2のメモリに記憶され、前記第2のメモリに記憶されたデータが、前記アドレス発生手段が発生したアドレスに基づいて、読み出されることで行われる  For each element of the first data composed of the dynamic range, the motion flag, the minimum value of the pixel value, and the index of the quantization table, three pieces of data are input in parallel, and the code Q is switched at the timing alternating with the first data. The input data is converted into serial data, and the input data is stored in the second memory based on the address generated by the address generation means, and the second data is stored in the second memory. The data stored in the second memory is read out based on the address generated by the address generating means.
情報処理方法。  Information processing method.
JP2000035380A 2000-02-14 2000-02-14 Information processing apparatus and method Expired - Fee Related JP4517435B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000035380A JP4517435B2 (en) 2000-02-14 2000-02-14 Information processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000035380A JP4517435B2 (en) 2000-02-14 2000-02-14 Information processing apparatus and method

Publications (2)

Publication Number Publication Date
JP2001224025A JP2001224025A (en) 2001-08-17
JP4517435B2 true JP4517435B2 (en) 2010-08-04

Family

ID=18559588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000035380A Expired - Fee Related JP4517435B2 (en) 2000-02-14 2000-02-14 Information processing apparatus and method

Country Status (1)

Country Link
JP (1) JP4517435B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01114277A (en) * 1987-10-28 1989-05-02 Sony Corp Blocking circuit
JPH0695960A (en) * 1992-09-16 1994-04-08 Sony Corp Interleaving circuit and deinterelaving circuit
JPH06189283A (en) * 1992-12-17 1994-07-08 Sony Corp Transmitting device for digital picture signal
JPH0898137A (en) * 1994-09-22 1996-04-12 Hitachi Ltd Animation picture data processor
WO1999021285A1 (en) * 1997-10-23 1999-04-29 Sony Electronics, Inc. Apparatus and method for recovery of lost/damaged data in a bitstream of data based on compatibility

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01114277A (en) * 1987-10-28 1989-05-02 Sony Corp Blocking circuit
JPH0695960A (en) * 1992-09-16 1994-04-08 Sony Corp Interleaving circuit and deinterelaving circuit
JPH06189283A (en) * 1992-12-17 1994-07-08 Sony Corp Transmitting device for digital picture signal
JPH0898137A (en) * 1994-09-22 1996-04-12 Hitachi Ltd Animation picture data processor
WO1999021285A1 (en) * 1997-10-23 1999-04-29 Sony Electronics, Inc. Apparatus and method for recovery of lost/damaged data in a bitstream of data based on compatibility

Also Published As

Publication number Publication date
JP2001224025A (en) 2001-08-17

Similar Documents

Publication Publication Date Title
TWI624804B (en) A method and system for providing high resolution image through super-resolution reconstrucion
JP4126709B2 (en) Image processing apparatus and image processing method
JP2006087142A (en) Progressive image signal transmitter, and progressive image signal receiver
KR100768611B1 (en) Information processing apparatus using class-classification adaptive processing and method thereof, and recording medium storing a computer-readable program using class-classification adaptive processing
JPH05207460A (en) Multiplex transmitter and its system for picture signal
WO2012073585A1 (en) Image encoding device, and image encoding method
JPS61144989A (en) High efficient coding device of television signal
JP4265068B2 (en) Information processing apparatus and method
JP4655171B2 (en) Information processing apparatus and method
JP4392569B2 (en) Information processing apparatus and method, and recording medium
JP4656356B2 (en) Information processing apparatus and method, learning apparatus and method, and recording medium
JP4517435B2 (en) Information processing apparatus and method
JP4438159B2 (en) Information processing apparatus and information processing method
JP4568939B2 (en) Information processing apparatus and method
JP3351855B2 (en) Coded transmission device
JP3111028B2 (en) Image signal processing apparatus and image signal processing method
JP4819271B2 (en) Method and apparatus for explicitly transmitting control information
JP2001224020A (en) Information processor and information processing method
JP2001224022A (en) Information processing unit and method
JP2536729B2 (en) Multi-screen display system
JP2595625B2 (en) Digital video signal receiving device
JPH0258988A (en) Picture signal movement detecting device
JPH0799647A (en) Image signal reproducing device
JP2010087754A (en) Image quality evaluation device
JPH08149465A (en) Band-compressed signal restoring device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090930

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100510

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

Free format text: PAYMENT UNTIL: 20130528

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees