(57)【要約】      （修正有）【課題】作業メモリ直接リンクによってフレーム・メモリ・アクセスを減少させる映像符号化システムを提供する。【解決手段】映像符号化システムであって、一時的に映像データを格納する記憶装置と、前記記憶装置のデータの映像符号化を実行する演算ユニットと、映像メモリと前記演算ユニットと前記記憶装置との接続を切り替える切替装置とを有し、前記記憶装置間の直接接続を確立する。前記演算ユニットは、デブロッキング・フィルタ・ユニットで、作業メモリの現在のマクロ・ブロックをデブロッキングフィルタリングするために、マクロ・ブロックが格納された左辺の１部のデータが前記記憶装置間の直接接続を用いて、もう一方の作業メモリに複製される。【選択図】図６
2007067945.tif 000002
【特許請求の範囲】
【請求項１】
映像符号化システムであって、
一時的に映像データを格納する記憶装置と、
前記記憶装置のデータの映像符号化を実行する演算ユニットと、
映像メモリと前記演算ユニットと前記記憶装置との接続を切り替える切替装置と
を有し、
前記記憶装置間の直接接続を確立することを特徴とする映像化符号化システム。
【請求項２】
前記演算ユニットは、デブロッキング・フィルタ・ユニットであることを特徴とする請求項1に記載の映像符号化システム。
【請求項３】
作業メモリの現在のマクロ・ブロックをデブロッキングフィルタリングするために、マクロ・ブロックが格納された左辺の1部のデータが前記記憶装置間の直接接続を用いてもう一方の作業メモリに複製されることを特徴とする請求項２に記載の映像符号化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像符号化システムに用いられるハードウェアアーキテクチャに関し、特に、映像符号化システムのより効果的なフレーム・メモリ・アクセスに関する。
【背景技術】
【０００２】
近年、コンピューターシステムは様々な分野で適用されるようになった。
【０００３】
しかしながら、これらの新しい様々な分野、例えば映像分野で、高い処理能力と共に、全アプリケーションデータを保持できる記憶領域の要求も増加した。
【０００４】
この要求条件に合うための解決として、全体のメモリを階層レベルの違いによって分けた。
【０００５】
この階層レベルの違いによって分けられたメモリは、一方は演算ユニットの近くに構成されていて速くアクセスできるが容量が小さいメモリであり、もう一方は演算ユニットから遠くに構成されていて容量が大きいがアクセス時間が遅いメモリである。
【０００６】
このような種類のシステムは映像符号化システムであり、図１にその構成を示す。
【０００７】
図1に示される映像符号化システムには、異なる2種類のメモリが構成されている。一方のメモリは、アクセスが速いオンチップ作業メモリで、プロセッサユニットの演算ユニットの近くに構成されている。これに対して、もう一方のオフチップ・フレーム・メモリは大容量データメモリとして用いられている。
【０００８】
映像符号化システムにおいて、映像データの大部分はフレームメモリで保持されるのに対し、すぐに処理される映像データの一部は作業メモリへ転送される。
【０００９】
これは、処理実行中に演算ユニットで生成される大量の一時データが、アクセスが速い作業メモリに格納され、アクセスが遅いフレームメモリに格納される必要がないので、しばしば処理時間の減少に繋がっているからである。
【００１０】
もちろん、常に作業メモリのデータは新しく生成されるデータと交換されなければならず、そのために演算ユニットでの処理を停止しなければならない。
【００１１】
多種にわたる適用分野において、マルチポートの作業メモリを構成することによってスピードアップすることができる。又は図2に示されるように、フレームメモリから転送される外部データのための作業メモリと演算ユニットからアクセスされる内部データのための作業メモリとの異なる２つの作業メモリを構成させることでデータアクセスの速度を更に上げることは可能である。このような場合、データ転送およびデータ処理は並列的に実行することができる。
【００１２】
全ての処理装置が全ての作業メモリにアクセスしてデータを提供するために、経路はスイッチを通じて送られる。
【００１３】
図2に示される実施形態において、2つの状態を切り替えるスイッチは必要であり、一方の状態においてフレームメモリはデータを作業メモリ0に転送し、演算ユニットは作業メモリ1にアクセスしている。そして、もう一方の状態はその逆である。
【００１４】
しかしながら、多くのアルゴリズムにおいて、一時データは再び直接的に使用されるのではなく、むしろ後から使われる。
【００１５】
一方、メモリスイッチが構成される位置を変更した場合、この一時データは演算ユニットからアクセスされることができない。
【００１６】
図3はデータが両方の作業メモリ本体の間で転送されなければならない実施例のアルゴリズムのタスクスケジュール操作を示し、上記問題点を解決するために、データはフレームメモリに保存されなければならなくて、後で回復しなければならない。
【００１７】
まず第1に、演算ユニットは、その処理の実行を一度中断しなければならない。
【００１８】
第２に、スイッチの位置を変更しなければならず、データは作業メモリからフレームメモリに転送されなければならない。
【００１９】
第３に、メモリスイッチの位置は、演算ユニットによって次に使われる他の作業メモリにデータをフレームメモリからロードするために、そのステート後部を変えなければならない。
【００２０】
最後に、演算ユニットの割り込みは取られ、そして、両ユニットはもう一度メモリスイッチの位置を変えることによって作業メモリ本体を変えている。
【００２１】
フレームメモリに対する遅いアクセス時間のため、演算ユニット・プロセス実行が停止すると共に、多くのアプリケーションのために、これは全体の処理時間の有効部分をすることができる。
【００２２】
【特許文献１】Srinivasan et al., In-loop deblockingfilter・ US patent US 2005/0013494 A1, Jan. 2005.
【特許文献２】Gomila et al., deblocking filterconditioned on pixel brightness・ US patent US 2003/0206664 A1, Nov. 2003.
【特許文献３】Sankaran, loop deblocking filteringof block coded video in a very long instruction word processor・US patent US 2005/0117653 A1, Jun. 2005.
【非特許文献１】Draft ITU-T Recommendation and Final DraftInternational Standard of Joint Video Specification (ITU-T Rec. H.264/ISO/IEC14496-10 AVC), Mar. 2003.
【非特許文献２】T. Wiegand, G. J. Sullivan,G. Bjntegaard, and A. Luthra, overview of the H.264/AVC video coding standard,・IEEETrans. Circuits Syst.Video Technol.,vol. 13, pp. 560・76, July 2003.
【非特許文献３】P. List, A. Joch, J. Lainema, G. Bjntegaard, and M. Karczewicz, adaptive deblockingfilter,・IEEE Trans. Circuits Syst.Video Technol., vol. 13, pp. 614・19,July 2003.
【非特許文献４】Miao Sima, YuanhuaZhou, and Wei Zhang, an Efficient Architecture forAdaptive Deblocking Filter of H.264/AVC Video Coding,・IEEETransactions on Consumer Electronics, Vol. 50, No. 1, FEBRUARY 2004.
【非特許文献５】Yu-Wen Huang, To-Wei Chen, Bing-Yu Hsieh, Tu-ChihWang, Te-Hao Chang, and Liang-GeeChen, architecture Design For Deblocking Filter inH.264/JVT/AVC・Multimedia and Expo, 2003. ICME '03.Proceedings. 2003 International Conference on, vol. 1, pp. 693・96,6-9 July 2003.
【非特許文献６】G. Q. Zheng and L. Yu, anefficient architecture design fordeblocking loopfilter・ Picture Coding Symposium, 2004.
【非特許文献７】Vivek Venkatraman, Shoba Krishnan, and Nam Ling, architecture for De-BlockingFilter in H.264,・presented and published in Proceedings ofthe Picture Coding Symposium 2004 (PCS), San Francisco, California, USA,December 15 ・17, 2004.
【非特許文献８】S.-C. Chang, W.-H. Peng,S.-H. Wang and T. Chiang, "A Platform based Bus-interleaved Architecturefor Deblocking Filter in H.264/MPEG-4 AVC," IEEETrans. on Consumer Electronics, Feb. 2005.
【発明の開示】
【発明が解決しようとする課題】
【００２３】
図2に示された従来技術では、データがアクセスの遅いフレームメモリに一度コピーされなければならず、これによって生じる2個の作業メモリ間の遅いデータ転送である。
【００２４】
図3は、従来技術におけるアーキテクチャ上の実施例アプリケーションのタスクスケジュール操作を示す。
【００２５】
図3に示すように、データを２個の作業メモリの間で転送するためには、まず一方の作業メモリからフレームメモリにデータを格納し、次にフレームメモリからデータをもう一方の作業メモリにロードしなければならない。このように、2回のデータ転送はアクセスが遅いフレームメモリを介して行わなければならない。
【００２６】
本発明は、上記課題を解決するためになされたものである。
【課題を解決するための手段】
【００２７】
上記課題を解決するための第１の発明は、映像符号化システムであって、
一時的に映像データを格納する記憶装置と、
前記記憶装置のデータの映像符号化を実行する演算ユニットと、
映像メモリと前記演算ユニットと前記記憶装置との接続を切り替える切替装置と
を有し、
前記記憶装置間の直接接続を確立することを特徴とする。
【００２８】
上記課題を解決するための第２の発明は、上記第１の発明において、
前記演算ユニットは、デブロッキング・フィルタ・ユニットであることを特徴とする。
【００２９】
上記課題を解決するための第３の発明は、上記第２の発明において、
デブロッキング・フィルタ・ユニット、
作業メモリの現在のマクロ・ブロックをデブロッキングフィルタリングするために、
マクロ・ブロックが他の作業メモリに格納した左辺の1部のデータは、
前記記憶装置間の直接接続を用いて複製されることを特徴とする。
【００３０】
フレームメモリに遅いアクセス・タイムによって生じる上述した課題は、請求項１に記載されている方法によって除去されることができる。
【００３１】
2つの作業メモリを有する実施例として、図2からの基本的なアーキテクチャは、この方法によって拡大された。
【００３２】
結果は、図4に示される。
【００３３】
ここで、スイッチは、両方の作業メモリ存在物間の直接のデータ接続を可能にする付加的なデータリンクによって拡大される。
【００３４】
また、図5から分かるように、作業メモリ間で転送されるべきデータのデータ転送はフレームメモリへのアクセス時間の遅れに依存せず、作業メモリへのアクセス時間のみである。
【００３５】
請求項２に記載の実施の形態のために、H.264映像符号化のためのデブロッキング・フィルタは、図6に示すように選択された。
【００３６】
ここで、デブロッキング・フィルタ・アクセラレータ内のデブロッキング・フィルタおよびフレームメモリ内部からのデータ接続は、2つの作業メモリへの切り替え全体に導かれる。
【００３７】
デブロッキング・フィルタのマクロ・ブロックのためのアルゴリズムが選ばれるときに、作業メモリのサイズは一度に1マクロ・ブロック上のフィルタ動作を処理するのに必要な全てのデータが1つの作業メモリのあるその方法で選択されることができる。
【００３８】
しかしながら、マクロ・ブロックがアルゴリズムに基づいた結果、線を挟んで隣接された2マクロ・ブロックのデータ一部は重なり合う。
【００３９】
この新規なスイッチで、両方の作業メモリ存在物の間で直接この重なり合うデータを転送することが可能である。
【００４０】
これは、フレームメモリがデータ転送プロセスに含まれるデータ転送と同等の全部のフィルタ方法の速度を上げる。
【発明の効果】
【００４１】
本発明を用いると、第1にメモリ間の転送回数を2から１に減らすことができ、第2に転送時間を減らすことが出来る。これは、アクセスの遅いフレームメモリに転送する必要が無いからである。
【００４２】
第3に、オフチップであるフレームメモリに接続する外部バス上で必要となるデータ・バンド幅を下げることが出来る。
【発明を実施するための最良の形態】
【００４３】
本発明の課題は、図2に示された従来技術では、データがアクセスの遅いフレームメモリに一度コピーされなければならず、これによって生じる2個の作業メモリ間の遅いデータ転送である。
【００４４】
図3は、従来技術におけるアーキテクチャ上の実施例アプリケーションのタスクスケジュール操作を示す。
【００４５】
図3に示すように、データを両方の作業メモリの間で転送するためには、まず一方の作業メモリからフレームメモリにデータを格納し、次にフレームメモリからデータをもう一方の作業メモリにロードしなければならない。このように、2回のデータ転送はアクセスが遅いフレームメモリを介して行わなければならない。
【００４６】
本発明を用いると、上記問題を解決することが出来る。
【００４７】
上記問題を解決するために、図4に示すように、２個の作業メモリ間の直接リンクが確立されるために、メモリスイッチ内部のマルチプレクサを拡大しなければならない。
【００４８】
スイッチ内部にこの新規なデータリンクを実装させると、２個の作業メモリの間で転送されなければならないデータはそれらの間で直接転送されることができて、フレームメモリを通過する必要はない。
【００４９】
これにより、まず第1にメモリ間の転送回数を2から１に減らすことができ、第2に転送時間を減らすことが出来る。これは、アクセスの遅いフレームメモリに転送する必要が無いからである。第3に、オフチップであるフレームメモリに接続する外部バス上で必要となるデータ・バンド幅を下げることが出来る。
【００５０】
図4に示される実施の形態における新規なタスクスケジュール操作を図5に示す。
【００５１】
演算ユニットが停止している時間は、2回のフレームメモリの転送時間から作業メモリ間の直接転送の時間を引いた時間だけ減少することができる。
【００５２】
他の実施例として、デブロッキング・フィルタを搭載した構成について説明する。
【００５３】
特許文献1、2および3においては、他のデブロッキング・アルゴリズムがあるのに対して、図6に示される構成はH.264映像符号化の非特許文献１、２および３のデブロッキング・フィルタを参照する。
【００５４】
フレーム・バッファおよびより大きいシステム待ち時間にフィルタをかけて基礎を形成されるフレームのために要求する非特許文献４に記載されているアーキテクチャとは対照的に、作業メモリは一度に全ての必要なデータをプロセス一マクロ・ブロックに保持するサイズのみを有しなければならないので、このデブロッキング・フィルタ・アクセラレータはマクロ・ブロックが基礎を形成したデブロッキング・フィルタを実行している。
【００５５】
その他の実施例として、非特許文献５、６および７のどれかに記載されているように、同時にデータ転送および処理を実行することができるマルチポートの作業メモリを用いている、または非特許文献８のように、他でバッファリングすることなくフレームメモリから演算ユニットまで直接データをロードすることによって、作業メモリの上のルーズタスクカップリングの代わりにタイトタスクカップリングを使用する。
【００５６】
しかしながら、これは、アクセスが遅いフレームメモリの処理時間の高い依存を犠牲にして行われる。
【００５７】
ここで記載されている構成は、マルチポートの作業メモリとは対照的に使用して、2つのシングルポートの作業メモリに存在してフレーム・メモリ・アクセスを減らす。
【００５８】
これは、一方の作業メモリに格納されているデータを処理することと、前もって処理されたマクロ・ブロックのデータを格納するためにフレームメモリから次のマクロ・ブロックをロードするもう一個の作業メモリを使用することによって、データ転送とデータ処理とを同時に実行することを可能にするために行われる。
【００５９】
デブロッキング・フィルタを処理するために、演算ユニットにおいて次に処理されるマクロ・ブロックのイメージデータの次に隣接したマクロ・ブロックからの周囲のデータが、必要である。
【００６０】
これらは、上部の、そして、左のマクロ・ブロックからのデータである。
【００６１】
必要とされた上部のマクロ・ブロックデータがすでにフレームメモリにあって、そこからプレインストールされることができるのに対して、左のマクロ・ブロックからの必要とされたデータはフレームメモリにおいて利用できないが他の作業メモリにおいて新しく算出されて、デブロッキング・フィルタ・ユニットのフィルタ算出と平行してプレインストールされることができない。
【００６２】
その代わりに、これらのデータは、前もって処理されたマクロ・ブロックのフィルタ計算をした後に作業メモリ間で転送されなければならない。
【００６３】
更に異なる実施例を図7に示す。この実施例は請求項３に記載されている。
【００６４】
図7おいて、作業メモリ0のマクロ・ブロックデータが処理され、作業メモリ1のマクロ・ブロックデータが次に処理される。
【００６５】
図7の陰影をつけられた領域は、各20ピクセルに20本の線が付いており、16ライン×16ピクセルの次の処理のマクロ・ブロックのデータと、上部のマクロ・ブロックの最後の４ラインから４ライン×16ピクセルのデータと、左側のマクロ・ブロックの最後の４段から１６ライン×４ピクセルのデータとを含む作業メモリで使用されたデータを示す。
【００６６】
使用領域の1/6のサイズのテクスチャ領域は、ここでは重なり合う部分である。テクスチャ領域は、作業メモリ0において新しく算出して、作業メモリ1において使われる。
【００６７】
スイッチ内部の請求項２の新規な挿入された接続であるため、この領域は、アクセスが速い両方の作業メモリ間で、フレームメモリを通過することのなく直接転送されることができる。
【００６８】
これは、データ転送の速度を上げている。第1の理由は、メモリ間の転送動作が半分になっているからである。第２に、転送時間にアクセスが遅いフレームメモリを含まない。
【００６９】
更に、この計測は全体のシステム性能に良い影響を及ぼす。その理由は、外部バス占領が減少していることにある。
【図面の簡単な説明】
【００７０】
【図１】図1は、メインプロセッサと、異なるユニットからスイッチを介してアクセスできるシングルポートの作業メモリとを有するアクセラレータとを備える一般的なの映像符号化システムの略図である。
【図２】図2は、メインプロセッサと、各々が異なるユニットからスイッチを介してアクセスできるシングルポートの作業メモリ２個とを有するアクセラレータとを備える一般的なの映像符号化システムの略図である。
【図３】図3は、図2に示される映像符号化システムが、演算ユニットが実行処理を続ける前に両方の作業メモリ本体間のデータ転送しなければならない場合のタスクスケジュール操作可能性の略図である。
【図４】図4は、メインプロセッサと各々が異なるユニットから作業メモリ同士を接続するスイッチを介してアクセスできるシングルポートの作業メモリ２個とを有するアクセラレータとを備える一般的なの映像符号化システムの略図である。
【図５】図5は、図4に示される映像符号化システムが、演算ユニットが実行処理を続ける前に両方の作業メモリ本体間のデータ転送しなければならない場合のタスクスケジュール操作可能性の略図である。
【図６】図6は、メインプロセッサと、作業メモリ同士を接続するスイッチを介してデブロッキング・フィルタ・ユニットからアクセスできるシングルポートの作業メモリ２個を有するデブロッキング・フィルタ・アクセラレータとを有するH.264映像符号化システムの略図である。
【図７】図7は、マクロ・ブロックを方法に基づいてデブロッキング・フィルタを実行した時に両方の作業メモリ間の必要なマクロ・ブロックデータ転送を有する請求項２の利点を示す請求項３の略図である。
【符号の説明】
【００７１】
０      作業メモリ
１      作業メモリ
【図１】
2007067945.tif 000003
【図２】
2007067945.tif 000004
【図３】
2007067945.tif 000005
【図４】
2007067945.tif 000006
【図５】
2007067945.tif 000007
【図６】
2007067945.tif 000008
【図７】
2007067945.tif 000009
【外国語明細書】
Title A frame memory access reduction method in video codec systems due to a 
working memory direct link supply
Description
Technical field of the invention
The present invention is related to the field of hardware architectures 
for use in video codec systems.
In particular, the present invention is directed toward a more efficient 
frame memory access in these systems.
Background of the invention
Over the last years, computer systems have spread in more and more 
application areas. However, in many of these new application areas, like for 
example the video area, next to the demanded higher processing power also the 
required memory area for holding the whole application data increased. 
A solution to come up with this requirement was, to divide the total memory in 
different hierarchy levels. It applies hereby, that a memory level, which is 
located more near to the arithmetic unit is faster accessible but smaller in 
size, whereas a memory level, which is located far away from the arithmetic 
unit can be larger in size but has a slower access time.
An example of such kind of system is a video codec system, shown in figure 1.
In this example two different kind of memory are implemented, one memory, 
the fast accessible on-chip working memory, is implemented near the arithmetic 
unit in the processor unit, whereas the second memory, the off-chip frame 
memory, is serving as a large data memory.
For a video codec system, the large amount of video data is hold in the frame
memory, whereas small parts of video data, which are processed at the time, are
transferred to the working memory. This often results in a processing time
decrease because many temporary data generated in the arithmetic unit during
the process execution can be stored in the fast accessible working memory and
need not have to be stored in the slow accessible frame memory. Of course, at
given time points the data in the working memory have to be replaced with new
data, while the arithmetic unit has to be halted.
In many applications it is possible to speed up the data access further 
by implementing multi-port working memory or, as seen here in figure 2, 
by imp lementing different working memory entities for the external data 
transfer from frame memory and
the internal data access from the arithmetic unit. In such case, data transfer
and data processing can be executed in parallel.
To provide data access for all processing units to all working memory 
entities, the path is routed over a switch. For the example in figure 2 a 
switch with two states is necessary, where in one state the data from frame 
memory is transferred to working memory 0 and the arithmetic unit is accessing 
working memory 1 and in the other state vice versa.
However, in many algorithms the temporary data are not directly used 
again, but instead some time later. If in the meantime the memory switch 
changes its position, this temporary data cannot be accessed from the 
arithmetic unit anymore. 
To prevent this inaccessibility, the data have to be saved to frame memory and 
later restored, as can be seen in figure 3, which shows a task scheduling of an 
example algorithm where data have to be transferred between both working memory 
entities. Here, first, the arithmetic unit has to be interrupted in its process 
execution. Second, the switch position has to be changed and the data have to 
be transferred from working to frame memory. Third, the position of the memory 
switch has to change its state back to load the data from frame memory to the 
other working memory which is next used by the arithmetic unit. Finally, 
the interrupt of the arithmetic unit is taken away and both units are changing  
the working memory entities by changing the position of the memory switch once 
again. Because of the slow access time to the frame memory, for many 
applications this can take a significant part of the overall processing 
time while the arithmetic unit process execution is halted.
Brief summary of invention
The above mentioned problem caused by the slow access time to frame 
memory can be eliminated by the method which is described in claim 1. 
As an implementation example with two working memory entities, 
the basic architecture from figure 2 has been expanded by this method. 
The result is shown in figure 4. Here, the switch is expanded by an
additional data link which enables a direct data connection between both
working memory entities. Then, the data transfer of the data, 
which have to be transferred between both working memory entities, 
does not depend anymore on the slow access time to the frame memory, 
but only on the fast access time of the working memory entities as 
can be seen in figure 5.
For an implementation in a special application as described 
in claim 2 a deblocking filter for an H.264 video codec, as shown 
in figure 6, has been chosen. 
Here, the data connections from deblocking filter unit inside the 
deblocking filter accelerator and frame memory are led across a switch to two 
working memory entities. 
When as algorithm for the deblocking filter a macro block based algorithm is 
selected, the size of the working memory entities can be chosen in that way, 
that all data necessary to process the filter operation on one macro block 
at a time are hold in one working memory. However, due to the macro block based 
algorithm, data parts of two neighbored macro blocks in a line overlap each 
other. 
With this new switch it is now possible to transfer this overlapping data 
directly between both working memory entities. 
This speeds up the whole filtering process comparable to a data transfer where 
the frame memory is included in the data transfer process.
Brief description of the drawings
The present invention is illustrated by way of example and not limitation 
in the figures of the accompanying drawings, in which:
Figure 1 is a schematic illustration of a general video codec system 
with main processor and an accelerator with one single ported working memory, 
which is accessible from different units over a switch.
Figure 2 is a schematic illustration of a general video codec system 
with main processor and an accelerator with dual working memory, 
each single ported, which is accessible from different units over a switch.
Figure 3 is a schematic illustration of the task scheduling possibility 
in a video codec system shown in figure 2 in case a data transfer 
between both working memory entities has to take place before 
continuing the execution process in the arithmetic unit.
Figure 4 is a schematic illustration of a general video codec system 
with main processor and an accelerator with dual working memory, 
each single ported, which is accessible from different units over a switch, 
which is extended by the direct connection from claim 1 between the working 
memory ports.
Figure 5 is a schematic illustration of the task scheduling possibility 
in a video codec system shown in figure 4 in case a data transfer between 
both working memory entities has to take place before continuing 
the execution process in the arithmetic unit.
Figure 6 is a schematic illustration of claim 2 with an H.264 video codec 
system with main processor and deblocking filter accelerator with dual working 
memory, each single ported, which is accessible from frame memory and 
deblocking filter unit over a switch, which is extended by a direct connection 
between the working memory ports.
Figure 7 is a schematic illustration of claim 3 that shows the advantage 
of claim 2 with the necessary macro block data transfers between both working 
memories when executing the deblocking filter in a macro block based manner.
Detailed description of the invention
The main problem, which arises in a conventional architecture as shown in 
figure 2 for an example with two working memory entities, is the slow data 
transfer between the working memory entities, caused by the fact, that the 
data have to be once copied to the slow accessible frame memory. 
A task scheduling of an example application on such architecture can be seen in 
figure 3. 
Here, for data which have to be transferred between both working memory entities, 
the data transfer is done by first storing the data to the frame memory and 
second,by loading the data from the frame memory into the other working memory. 
So,first, two data transfers have to be executed and second, the data transfers
include the slow accessible frame memory. By implementing the method which is
described in claim 1, both problems can be eliminated. For this, the
multiplexers inside the memory switch have to be expanded so that a direct link
between both working memory entities can be established, as seen in Figure 4.
After implementation of this new data link inside the switch, data which have
to be transferred between both working memory entities can now be directly
transferred between them and need not have to pass the frame memory. This,
first, reduces the memory-memory transfer from two to one, second, reduces the
transfer time because the slow accessible frame memory is not taken part
anymore in this transfer and third, reduces also the overall necessary data
band width over the external bus to the off-chip frame memory. The advantage
can be seen in the new task scheduling shown in figure 5 for the example
application of figure 4. The time, the arithmetic unit is halted, can be
reduced by the time it takes to execute both transfer tasks over the frame
memory minus the time for the direct transfer between both working memories.
As special example implementation, the advantage is now described in an 
implementation of a deblocking filter. Whereas there are other deblocking 
algorithms available in the references [1], [2] and [3], this implementation, 
shown in figure 6, refers to the algorithm of a deblocking filter in the 
references [4], [5] and [6] of H.264 video codec.
In contrast to the architecture described in the reference [7], 
which requires due to the frame based filtering a frame
buffer and larger system latency, this deblocking
filter accelerator is executing the deblocking filter
macro block based, so the working memory has to have only the size to hold all
necessary data to process one macro block at a time.
Other architectures like the ones described in the references [8], [9] and 
[10] are using multi-ported working memory to have the chance to simultaneously 
execute data transfer and processing or, like in the reference [11], using 
instead of this loose task coupling over the working memory a tight coupling 
by directly loading the data from frame memory to the arithmetic unit without 
buffering them elsewhere. 
This is done, however, at expense of a high dependency of the processing time on 
the slow accessible frame memory.
The here described architecture is using in contrast to the multi-ported 
working memory and to reduce the frame memory access dependency two 
single-ported working memory entities. This is done to enable the 
simultaneous execution of data transfer and processing, by processing the data, 
which are stored in one working memory, and using the other working memory  to 
store data of the previously processed macro block to and preload new data for 
the next macro block from frame memory.
For processing the deblocking filter, next to the image data of the macro 
block, which is next processed in the arithmetic unit, surrounding data from 
neighboring macro blocks are needed.
These are the data from the upper and from the left macro block. Whereas the 
needed upper macro block data are already in frame memory and can be preloaded 
from there, the needed data from the left macro block are not available 
in frame memory, but is newly calculated in the other working memory and 
therefore can not be preloaded in parallel to the filter calculation 
in the deblocking filter unit. Instead, 
these data have to be transferred between both working memory entities after 
finishing the filter calculation of the previously processed macro block.
The advantage described in claim 3 is shown in figure 7, where the macro 
block data in working memory 0 have been processed and the macro block data 
in working memory 1 will be next processed.
The shaded area represents the used data in the working memory with 20 lines
each 20 pixels wide, containing the 16 lines times 16 pixel data of the next to
process macro block, the 4 lines times 16 pixel data from the last 4 lines of
the upper macro block and the 16 lines times 4 pixel data from the last 4
columns of the left macro block. The textured area, which is in size 1/6 of the
used area, is here the overlapping part, which is newly calculated in working
memory 0 and after used in working memory 1. Because of the new inserted
connection of claim 2 inside the switch, this area can be transferred directly
between both fast accessible working memory entities without passing the frame
memory. This speeds up the data transfer process because first, the
memory-memory transfer operations are halved and second, the transfer time does
not include the slow accessible frame memory. Further more, this measure has a
positive affect on the overall system performance, because the external bus
occupation is getting reduced.
References
1. Srinivasan et al., In-loop deblocking filter・ US patent US 2005/0013494 A1, 
Jan. 2005.
2. Gomila et al., deblocking filter conditioned on pixel brightness・ 
US patent US 2003/0206664 A1, Nov. 2003.
3. Sankaran, loop deblocking filtering of block coded video in a very long 
instruction word processor・US patent US 2005/0117653 A1, Jun. 2005.
4. Draft ITU-T Recommendation and Final Draft International Standard of Joint 
Video Specification (ITU-T Rec. H.264/ISO/IEC 14496-10 AVC), Mar. 2003.
5. T. Wiegand, G. J. Sullivan, G. Bjntegaard, and A. Luthra, overview of 
the H.264/AVC video coding standard,・ 
IEEE Trans. Circuits Syst.Video Technol., vol. 13, pp. 560・76, July 2003.
6. P. List, A. Joch, J. Lainema, G. Bjntegaard, and M. Karczewicz, adaptive 
deblocking filter,・IEEE Trans. Circuits Syst. Video Technol., 
vol. 13, pp. 614・19, July 2003.
7. Miao Sima, Yuanhua Zhou, and Wei Zhang, an Efficient Architecture for 
Adaptive Deblocking Filter of H.264/AVC Video Coding,・IEEE Transactions 
on Consumer Electronics, Vol. 50, No. 1, FEBRUARY 2004.
8. Yu-Wen Huang, To-Wei Chen, Bing-Yu Hsieh, Tu-Chih Wang, Te-Hao
Chang, and Liang-Gee Chen, architecture Design For Deblocking Filter 
in H.264/JVT/AVC・Multimedia and Expo, 2003. ICME '03. Proceedings. 
2003 International Conference on, vol. 1, pp. 693・96, 6-9 July 2003.
9. G. Q. Zheng and L. Yu, an efficient architecture design fordeblocking 
loop filter・ Picture Coding Symposium, 2004.
10. Vivek Venkatraman, Shoba Krishnan, and Nam Ling, architecture 
for De-Blocking Filter in H.264,・presented and published 
in Proceedings of the Picture Coding Symposium 2004 (PCS), San Francisco, 
California, USA, December 15 ・17, 2004.
11. S.-C. Chang, W.-H. Peng, S.-H. Wang and T. Chiang, "A
Platform based Bus-interleaved Architecture for Deblocking
Filter in H.264/MPEG-4 AVC," IEEE Trans. on Consumer Electronics, Feb. 2005.
Claims
What is claimed is:
1. A functional unit for video coding comprising memory units 
for storing video data temporally, an arithmetic unit for performing a 
function of the video coding on data in said memory units, and a switching 
unit for change connections among a video memory, said arithmetic unit and 
said memory units, and establishing a direct connection between said memory 
units.
2. A method in accordance with claim 1,
wherein the arithmetic unit is a deblocking filter unit.
3. A method in accordance with claim 2, 
wherein for deblocking filtering of the current macro block in the working 
memory a part of data in left-hand side filtered macro block stored in the 
other working memory are copied through the said  direct connection between 
the working memory units.
Nowadays, many applications in the video area ask for
a large amount of memory area for their process. However, the fast accessible
on-chip working memory of circuits mostly lacks of this requirement in video
codec systems. Therefore, additional slow accessible off-chip frame memory is
needed, from which required data are transferred to the working memory. To
prevent an interrupt in the execution of the arithmetic unit caused by the data
transfer between frame and working memory, in many integrated circuits, in
future needed data are transferred to working memory in parallel to the
processing of currently available data. For this, in addition to the working
memory entity linked to the arithmetic unit, another working memory entity has
to be provided, which is linked to the data transfer unit to provide the
possibility for a data transfer to working memory of all necessary data which
are in frame memory at the required time point. Data, which are in the working memory
entity linked to the arithmetic unit and therefore not available for data
transfer from frame memory, has to be transferred after the end of the
arithmetic operation. For this, the execution of the arithmetic unit has to be
halted and the data from the working memory entity which were linked to the
arithmetic unit have to be stored in the conventional method to frame memory
and then transferred to the other working memory. This transmission is,
however, very slow because first, the frame memory is taken part in this
operation and second, two transmissions have to take place to transfer the data
between both working memory entities. By now implementing the direct connection
between these working memory entities of the present invention, this process
can be speeded up because for the transmission access to the slow accessible
frame memory can be eliminated and only one data transfer has to take place.
Figure 1
2007067945.tif 000010
Figure 2
2007067945.tif 000011
Figure 3
2007067945.tif 000012
Figure 4
2007067945.tif 000013
Figure 5
2007067945.tif 000014
Figure 6
2007067945.tif 000015
Figure 7
2007067945.tif 000016