<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>画像処理の知識と応用技術</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.karaoke-yoga.com/atom.xml" />
    <id>tag:www.karaoke-yoga.com,2011-03-28://2</id>
    <updated>2011-05-12T11:23:12Z</updated>
    <subtitle>動画を含めたデジタル画像処理の基本的な仕組みについて、
図解しながらわかりやすく解説。</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.04</generator>

<entry>
    <title>健康関連</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/930mutlink/health.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.36</id>

    <published>2011-05-12T11:22:18Z</published>
    <updated>2011-05-12T11:23:12Z</updated>

    <summary></summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="930mutlink相互リンク" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<ul class="list01">
<li><a href="http://figure.moemoe-jp.net/" target="_blank">ダンベル</a>：ファイティングロード社のダンベルの紹介サイト。高品質にも関わらず流通価格が安い秘密。</li>
</ul>
]]>
        
    </content>
</entry>

<entry>
    <title>美容関連</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/930mutlink/beauty.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.35</id>

    <published>2011-04-29T09:58:08Z</published>
    <updated>2011-04-29T09:58:55Z</updated>

    <summary></summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="930mutlink相互リンク" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<ul class="list01">
<li><a href="http://astalift.dousetsu.com/" target="_blank">アスタリフト 効果</a>：松田聖子さんCMでおなじみの美容化粧品の紹介です。アスタキサンチン配合。</li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>問い合わせ</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/950aboutme/contact.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.34</id>

    <published>2011-03-28T06:16:53Z</published>
    <updated>2011-03-29T00:07:37Z</updated>

    <summary>contact</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="950aboutme当サイトについて" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<p>メールでのお問い合わせは以下のメールアドレスです</p> 
<p><img src="http://www.karaoke-yoga.com/images/mail.gif" alt="メールアドレス" width="300" height="60"></p> 
<p>スパム防止のため、画像になっています。</p> 
<p>大変お手数で申し訳ありません。</p> 
<p>メーラなどに直接打ち込みをしていただければと思います。</p>]]>
        
    </content>
</entry>

<entry>
    <title>コンピュータ関連</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/930mutlink/computer.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.33</id>

    <published>2011-03-28T06:16:16Z</published>
    <updated>2011-04-28T09:18:23Z</updated>

    <summary>computer</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="930mutlink相互リンク" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<ul>
<li><a href="http://www.aios-a.com/" target="_blank">GPSの基礎知識</a>：カーナビや携帯電話で利用されているGPS機能の説明を図解入りで分かりやすく解説しています。</li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>画像処理から人工知能へ～今後の展望</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/300ouyougi/tenbo.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.32</id>

    <published>2011-03-28T06:15:08Z</published>
    <updated>2011-03-28T06:15:27Z</updated>

    <summary>tenbo</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="300ouyougi画像処理の応用技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/32.gif">

<p class="m20-t">現在、大きな注目を集めている技術分野の一つに、ロボット工学と呼ばれるものがあります。</p>

<p>工場における制御システムや多機能ラインを、産業用ロボットと呼ぶ場合があり、これはかなり確立されつつある技術ですが、ここでいうロボットというのは、もう少し擬人化されたものです。</p>

<p>端的にいうなら、鉄腕アトムを実現する、ということです。</p>

<p>ロボットを作るためには、その素材、エネルギー源、動作メカニズムなども重要ですが、何より生物でいえば脳にあたる部分の実現が重要です。</p>

<p>これは総称して人工知能と呼ばれます。</p>

<p>そのために必要とされる要素として、意思決定メカニズムや姿勢制御などと並び、画像理解があります。</p>

<p>これは画像処理の一分野と考えられますが、ここまで述べてきた画像処理の例と比べて、かなり進んだ技術といえます。</p>

<p>たとえばすでに、集団でサッカーの試合をするロボットが開発されています。</p>

<p>そのためには、それぞれのロボットがカメラを搭載し、そこからの入力を元にボールの位置や速度、味方や敵の配置、そしてゴールの場所などを見極めることが求められます。</p>

<p>ここまで述べてきたような画像処理の発展で、きわめて有望なものの一つはこの画像理解でしょう。</p>

<p>文字認識はその代表的な例です。</p>

<p>介護ロボットにおいては、ベッドや椅子の所在を把握することはもちろんですが、非介護者の表情からその意思を読み取ることも重要です。</p>

<p>監視カメラにおいても、画像のどの部分が顔であるかを認識し、特定の人物と照合することはもちろん重要です。</p>

<p>これは生体認証（バイオメトリクス）などですでに実用化されています。</p>

<p>さらには動画として認識・理解し、たとえば写っている時系列的行為が犯罪なのかどうかを判定することができれば、さらに素晴らしいでしょう。</p>

<p>またロボット工学というより自動車工学の延長といえますが、カメラ画像により歩行者や先行車を認識し、たとえ運転者が適切な反応を示さなくても衝突を避ける技術も実用化されようとしています。</p>

<p>画像理解に関連してもう一つ注目されている技術があります。</p>

<p>検索エンジンの進化です。</p>

<p>すでにテキストベースのキーワードから、サイトでなく画像自体（もちろんサイトの中の画像です）を取り出すサービスは実現されています。</p>

<p>しかしこれからは、逆に画像を手がかりにしてサイトを検索することも可能になるかもしれません。</p>

<p>デジカメで撮った風景写真を入力し、それと同じ場所を撮った写真を公開しているサイトを探す、といった具合です。</p>

<p>あるいはロゴなどが不正使用されていないか、ネット上を巡回して確認するサービスもありますが、それもどんどん自動化されていくことでしょう。</p>

<p>つまり画像処理技術が進化し普及することで、インターネット上の情報検索の主役が、テキストから画像に移るかもしれないのです。</p>

<p>ＣＤショップでシングルを買う場合、ＣＤ番号がわかっていれば一番確実ですし、そうでなければアーティスト名と曲名がわかれば、ほぼ確実にオーダーすることができます。</p>

<p>しかし客によっては、そういうものもいっさいわからず、「ほら、こんな曲、あるじゃん」と言って店員の前でメロディを口ずさむ人がいるのだそうです。</p>

<p>よほどの大ヒット曲なら別ですが、これはハッキリいって店員泣かせでしょう。</p>

<p>しかしインターネットの世界では、「ほら、こんな画像」と指定するだけで、案外と見つかる日が来るかもしれません。</p>

<p>検索エンジンのサーバでは、そのための画像処理機能が必須になるかもしれません。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>画像処理の高速処理手法</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/300ouyougi/gazousyo.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.31</id>

    <published>2011-03-28T06:14:18Z</published>
    <updated>2011-03-28T06:14:41Z</updated>

    <summary>gazousyo</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="300ouyougi画像処理の応用技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/31.gif">

<p class="m20-t">画像というものは一般に大きな情報量を持ちます。</p>

<p>だからこそ通信や記録の際には、情報量を圧縮することが必要となってくるわけです。</p>

<p>そういった圧縮処理自体、画像全体でみればかなり大きな計算量を伴う処理となります。</p>

<p>また圧縮以外の画像処理も、一般に計算量は膨大です。</p>

<p>動画内の各画素を単純に２値化するだけでも、少なくとも画素数分だけの閾値処理を、各フレーム時間内に完了させなければなりません（リアルタイム処理の場合）。</p>

<p>ましてや多数の画素値を組み合わせて複雑な処理を行う場合、１つの画素の出力を計算するだけで、何ステップもの手順がかかる場合があります。</p>

<p>これをリアルタイムで、あるいはできるだけ高速に行うには、さまざまな処理手法の工夫をしなければなりません。</p>

<p>たとえば画素ごとの比較的単純な処理の場合、それを１つだけの計算資源で行おうとすると、画素サンプリング時間以内で処理を確実に完了させる必要があります。</p>

<p>計算資源とは、独立したプロセッサであったりその中の処理要素であったりします。</p>

<p>しかしもし計算資源が２つあれば、サンプリングされた画素を両者に交互に割り当てることで、処理時間は画素サンプリング時間の２倍まで許されます。</p>

<p>計算資源がｎ個あれば、ｎ倍までＯＫです。</p>

<p>また15章で述べた１次元フィルタリングのように、走査線ごとに独立した処理においては、たとえばすべての走査線を同一の計算資源で処理させるのではなく、走査線単位で複数の計算資源に任せることにより、やはりフレーム全体としては処理が高速化できます。</p>

<p>このように画像を画素ごとや走査線ごとなどに分割し、それぞれの処理をそれぞれの計算資源に任せることで全体を高速化する手法は、しばしば並列処理と呼ばれます。</p>

<p>一方、たとえば1024（２の10乗）点の１次元高速フーリエ変換（20章参照）では、走査線全体の処理を10段階のステップに分けて行います。</p>

<p>もし走査線あたりで10個の計算資源が使えるとした時、走査線自体を10分割しても、走査線全体で行われる処理である限り、意味はありません。</p>

<p>しかし各計算資源に10個のステップそれぞれを割り当てれば、全体の処理時間は大きく短縮されます。</p>

<p>つまり最初の計算資源である走査線の最初のステップを実行し、その中間結果を隣の計算資源に送ると同時に、次の走査線の入力を受け取り、今度は隣が前の走査線の第２ステップを実行するのと同時に最初の計算資源が新しい走査線の最初のステップを実行する、という具合に、次々と受け渡していくのです。</p>

<p>このような手法をパイプライン処理といいます。</p>

<p>パイプライン処理は工場においてベルトコンベヤーで製造途上製品を運びながら、各工程を次々に処理をしていく感じです。</p>

<p>工場ではそれぞれの人が一日中同じ作業をすればよいのと同じで、それぞれの計算資源では常に同じプログラムが実行されます。</p>

<p>ただし後段の処理ステップが前段ステップにフィードバックするような処理の場合、うまく適用できない場合もあります。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>ニューラルネット的画像処理</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/300ouyougi/neut.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.30</id>

    <published>2011-03-28T06:12:44Z</published>
    <updated>2011-03-28T06:13:46Z</updated>

    <summary>neut</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="300ouyougi画像処理の応用技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/30.gif">

<p class="m20-t">画像認識、特に文字認識などで、ニューラルネット（神経回路網）的な手法が使われることがあります。</p>

<p>これもさまざまな工夫の集大成のようなものであり、カチッとしたアルゴリズムが決まっているわけではないのですが、ごく基本的な概念だけをここでは説明します。</p>

<p>なお、神経細胞を意味するニューロン（neuron）という単語があり、ニューラル（neural）はその形容詞形と考えられますが、ネット上の辞書によると、neural networkという組み合わせでのみ使われるようです。</p>

<p>ニューラルネットはその短縮形で、英語のneuralnetで検索してもごく普通に用例が見つかります。</p>

<p>つまり十分に使用が認められる言葉のようです。</p>

<p>ニューラルネットは、以下の２つのステップに大きく分けて考えると理解しやすいでしょう。</p>

<p>・一定の回路網状態の中で、ある意味で統計的な処理を行う・外部環境に応じて回路網状態を変えていく（学習する）前者は、典型的には以下のようにモデル化できます。</p>

<p>まず、個々のニューロンは、多入力１出力の演算素子と考えます。</p>

<p>出力信号はほかのニューロンの入力信号となります。</p>

<p>逆にいえば、個々のニューロンの入力信号は、ほかのニューロンからの出力信号ということになります。</p>

<p>いま、ニューロンが全部でn個あり、kという番号で表わされるニューロンをＺkと書くことにします。</p>

<p>kは0、1、・・・、n-1という値です。</p>

<p>Ｚkの出力信号をＳkと書くことにします。</p>

<p>Ｚkには、自分以外のニューロンからの信号が入力として入ります。</p>

<p>その時、Ｓkが以下のようになると考えます。</p>

<p>Ｓk ＝ ｆ[Ｗk0*Ｓ0 +Ｗk1*Ｓ1 + ・・・ + Ｗk(n-1)*Ｓ(n-1) - ｈk]ただし、ＷkiはＺiからの出力をＺkがどれだけの重みで受け入れるかという値であり、シナプス値などと呼ばれます。</p>

<p>Ｗiiすなわち自分自身からの重みは0と考えます。</p>

<p>ｈkはＺkごとに与えられるある値で、入力の重みづけ和のいわば基準値のようなものです。</p>

<p>ｆは1入力1出力の関数であり、入出力関係は増加傾向（入力が増えると出力も増える傾向）を持つのが普通です。</p>

<p>特にｆとしてステップ関数（入力が負なら0、非負なら1）を考えると、出力は発火状態かそうでない状態かというデジタル値となり、またｈkは重みづけ和の閾値と考えられることになります。</p>

<p>これらのコンセプトを右の図にまとめます。</p>

<p>ニューラルネットとは、こういったニューロンがきわめてたくさん集まり、互いに影響を与えながら、何らかの最終出力を得るものです。</p>

<p>たまたまあるニューロンが壊れて変な振る舞いを示したとしても、それが閾値をおびやかすほど大きなものでなければ、結果として無視されることになります。</p>

<p>統計的な処理といったのはそういうことです。</p>

<p>処理の内容は、ネットワーク全体では行列と考えられるＷと、ベクトルと考えられるｈ、さらには関数ｆの定義などにより、当然変わってきます。</p>

<p>一方後者の「学習」ですが、外部環境や学習信号などを元に、Ｗなどを適切に変えていくことを意味します。</p>

<p>それにより処理の妥当性を向上させるのです。</p>

<p>もしＷが必ず最適の形で与えられるのなら、こういった機能は不要かもしれません。</p>

<p>しかし実際には、Ｗはラフに調整し、最後には実際の出力が本当に望ましいかどうかを勘案しながら微修正したほうがよい、という場合も多いのです。</p>

<p>あるいは当初最適であったＷが、環境変化などにともなって、もはや適切ではなくなる、ということも考えられます。</p>

<p>先ほど述べたように、ＷkiはＺiからの出力をＺkがどれだけの重みで受け入れるかという値です。</p>

<p>個々のニューロンを情報処理要素とみるなら、その結びつきの強さが、外部環境の変化などに合わせてどんどん最適化されていくわけです。</p>

<p>それを自働的に行う仕組みが備わっているニューラルネットモデルは、文字認識など高度な画像処理のための強力なツールとなっています。</p>

<p>実際の学習アルゴリズムはかなり複雑になってしまいますが、基本的には、ある時刻での学習は、その直前に発火したニューロンでのみ起こると考えるのが普通です（ヘブの法則）。</p>

<p>その際の最終出力が好ましいものであれば現在のＷの特徴を強める方向に学習し、逆に好ましくないものであれば現在のＷの特徴を弱める方向に学習することになります。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>動画の表現技術～MPEGやH.264</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/300ouyougi/mpeg.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.29</id>

    <published>2011-03-28T06:11:59Z</published>
    <updated>2011-03-28T06:12:20Z</updated>

    <summary>mpeg</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="300ouyougi画像処理の応用技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/29.gif">

<p class="m20-t">JPEGによく似た静止画に対する圧縮手法と、前章で述べた動画圧縮手法とを組み合わせ、動画を比較的小さな情報量で表現する技術が、MPEGです。</p>

<p>MPEGは「Moving Picture Expert Group」の略です。</p>

<p>デジタル動画の符号化や利用法の標準方式を定めるグループの名称であり、またその方式の総称でもあります。</p>

<p>そう、方式に関していうとMPEGという言葉自体はあくまで総称であり、実際には主として以下の５つのものがあります。</p>

<p>・MPEG-1：ＣＤに入る程度の画質で記録する動画コーデック<br />
・MPEG-2：ハイビジョンを含む記録＆通信用動画コーデック<br />
・MPEG-4：携帯クラス画質の低ビットレートの動画コーデック<br />
・MPEG-7：意味まで踏み込んだマルチメディア用動画特徴量記述<br />
・MPEG-21：マルチメディア用動画の流通や検索推進用付帯情報</p>

<p>MPEG-1とMPEG-2は、扱う画質のレベルは違うものの、比較的共通するところの多い画像圧縮技術です。</p>

<p>まずはフレームごとに、８画素×８画素で２次元のブロックをつくり、それを１次元的にスキャンして離散コサイン変換を行い、高周波成分のビット数を落とすことで、まず情報量を削減します。</p>

<p>ここまではJPEGとほぼ共通です。</p>

<p>その後でフレーム間予測や動き補償などで、今度は時間軸方向に圧縮します。</p>

<p>それを可変長符号で表現するわけです。</p>

<p>そんなよく似た両者ですが、MPEG-2の方がより高い画質を実現でき、またインターレースにも対応するなど、機能は高いといえます。</p>

<p>MPEG-4は非常に圧縮率の高いコーデックです。</p>

<p>画素ごとの輝度や色の値だけではなく、画像を構成する個々の物体（これはオブジェクトと呼ばれます）をベースに考えることも多いので、単なる画素の集合体というより、ある程度は論理的な情報が付加された画像を扱うもの、と考えればよいでしょう。</p>

<p>MPEG-7やMPEG-21は、上の一覧からわかるように、狭い意味での画像処理ではありません。</p>

<p>もっとも画像を元に特徴量や権利を自動抽出する面もあるので、広い意味では画像処理の１つとも考えられます。</p>

<p>最近ではH.264という動画表現技術もよく耳にします。</p>

<p>これはMPEG-4の一部であるMPEG-4 AVCとして制定されたものですが、一般的なMPEG-4とは対照的に、HDTVの圧縮にも使える、画質重視のコーデック技術です。</p>

<p>フレーム内ブロック形成パターンを多様化したり動き予測のための参照フレームを増加したりしたほか、浮動小数点演算ではなく16ビット整数精度で演算が可能という、処理上のユニークな特徴もあります。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>動き補償による情報量圧縮</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/300ouyougi/hosyo.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.28</id>

    <published>2011-03-28T06:10:39Z</published>
    <updated>2011-03-28T06:10:58Z</updated>

    <summary>hosyo</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="300ouyougi画像処理の応用技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/28.gif">

<p class="m20-t">動画においては、動きを推定することで、静止画よりもっと劇的に情報量を削減することができます。</p>

<p>ここではその削減手法の基礎を説明します。</p>

<p>動画ですから、フレームごとに画像は変化していきます。</p>

<p>しかし完全に独立な絵が次々と現れるわけではありません。</p>

<p>たとえば広大な野原の中を走る一頭の馬を、上空の固定カメラからとらえたような動画を考えて見ましょう。</p>

<p>野原自体は、時刻が経過してもそうすぐには変化しません。</p>

<p>何時間もたてば日が暮れて暗くなるようなこともあるでしょうが、何秒という単位で変わるようなものではないのです。</p>

<p>風のゆらぎなどを考えないなら、すべてのフレームで共通にしてもいいくらいです。</p>

<p>少なくとも時間的に隣り合う２枚のフレームにおいて、野原の情報の変化分というのは微々たるものです。</p>

<p>したがって画像自体のかわりに、その変化分に注目すれば、実質的に情報のある場所は、前のフレームで馬が消えた箇所と、新しいフレームで馬が出現した箇所の２箇所だけです。</p>

<p>つまり情報量は大きく削減できます。</p>

<p>こういった手法を「フレーム間予測」といいます。</p>

<p>しかし削減原理はそれだけではありません。</p>

<p>上空から見れば、前のフレームの馬も新しいフレームの馬も、同じような形であり、大きさであるはずです。</p>

<p>もちろん足の動きや飛び跳ねなどにより、まったく変わらないというわけではありませんが、少なくとも大きな差はないはずです。</p>

<p>もしその差がゼロなら、重要なのは位置だけですから、新しいフレームにおけるその位置が完全に予測できるのなら、画像記述に必要な情報量はゼロになります。</p>

<p>差がゼロでない小さい値の場合、あるいは位置の予測に誤差がある場合でも、予測画像との差で記述することにより、必要な情報量はかなり小さくなります。</p>

<p>こういった手法を「動き補償」といいます。</p>

<p>これらを説明するのが上の図です。</p>

<p>入力画像は、「前フレーム」と「現フレーム」だけです。</p>

<p>それなりに複雑な背景の中を、黒い長方形が、少し形を変えながら（平行四辺形になりながら）、右下に動いています。</p>

<p>もし前フレームも現フレームも独立に記述しようとしたら、複雑な背景情報もその都度送らなければなりません。</p>

<p>しかしフレーム間差分で記述することにすれば、画面の大半においてそれはゼロ（灰色で表現）です。</p>

<p>つまり情報があるのは、前フレームの黒い長方形が消えた部分（白で表現、ただし背景情報も加算）と、現フレームの黒い平行四辺形の部分ということになります。</p>

<p>情報量としてはずいぶん減ったことになります。</p>

<p>一方、現フレームの黒い平行四辺形は、前フレームの黒い長方形と、それが持つ速度情報によって、ラフにですが予測されます（「速度による予測」）。</p>

<p>ただ、現実には完全に等速度運動とは限らないので、予測位置と実際の位置とでは多少の誤差があります。</p>

<p>また長方形が平行四辺形になることによる誤差もあります。</p>

<p>しかしそういった誤差がそれほど大きなものでなければ、いずれにせよ予測情報でかなりまかなえるはずです。</p>

<p>つまり右下の「動き補償」のように、新たな平行四辺形のうちのほとんどの部分はゼロ（灰色）となり、そこは情報量を持たず、そこからはずれた狭い部分だけが情報量を持つ、ということです。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>動き検出や速度推定</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/300ouyougi/ugoki.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.27</id>

    <published>2011-03-28T06:09:18Z</published>
    <updated>2011-03-28T06:09:48Z</updated>

    <summary>ugoki</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="300ouyougi画像処理の応用技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/27.gif">

<p class="m20-t">ここまでの処理は、静止画像に対する処理でした。</p>

<p>一方で時間的に連続した複数の画像に対して行うことで、初めて意味を持つ処理があります。</p>

<p>それを動画像処理といいます。</p>

<p>動画は静止画が時間的に連続したものであり、その一枚一枚の静止画像ごとに完結する処理というものもありえます。</p>

<p>これを動画像処理と呼ぶ場合もありますが、それは基本的に静止画技術として説明できるので、ここでは時間軸上にまたがった処理を考えます。</p>

<p>その代表的なものが、動き検出と呼ばれるものです。</p>

<p>といっても原理は単純です。</p>

<p>時間的に隣り合う２枚の画像の同一箇所を比較し、ほとんど違いがなければ動きがないと考え、違いがあれば動きがあったと考えるわけです。</p>

<p>もちろん、「ほとんど違いがなければ」といった部分をどう解釈するか、完全に画素としてとらえるのかある程度の領域としてとらえるのか、などといった細かいノウハウは重要です。</p>

<p>動体消去という処理もあります。</p>

<p>ごく単純に考えるなら、入力画像をそのまま出力するのではなく、過去にわたってある程度の時間幅の中で積分する（平均をとる）ことで、これは実現できます。</p>

<p>これも積分の代わりに別の操作をするなど、さまざまなノウハウがあります。</p>

<p>動体消去が実現できれば、それと最新の入力画像とを比べることで、動体抽出も行えます。</p>

<p>動体消去画像と最新入力画像とが大きく異なっていれば、それは動体部分だと考えてそこだけを抽出すればよいわけです。</p>

<p>単に動いているかどうかを判定するだけでなく、動きの速度を推定することも、動画像処理の重要なテーマです。</p>

<p>これは時間的に異なる２枚の画像に対して、同一の移動物体をパターン認識などでそれぞれ検出し、位置がどれだけずれているかを計算し、時間で割ればもちろん得られます。</p>

<p>しかしもっと単純な処理もあるので、ここではそれを紹介します。</p>

<p>図の左半分のように、ｙ軸方向に濃淡のある物体が、時間ｔを経てある程度下方に移動する場合を考えます。</p>

<p>この時、同じｙ値の部分で、時間ｔを経てどれだけ明るくなったかを計算します。</p>

<p>その値をGｔとします。</p>

<p>一方、そのｙ値の部分で、静止画の中でｙの値がｄだけ増えた時に、どれだけ明るくなったかを計算します。</p>

<p>その値をGｄとします。</p>

<p>この時、物体の移動速度Vは、(Gｔ/ｔ) / (Gｄ/ｄ)と推定できます。</p>

]]>
        
    </content>
</entry>

<entry>
    <title>静止画の表現技術～JPEG</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/300ouyougi/jpeg.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.26</id>

    <published>2011-03-28T06:08:19Z</published>
    <updated>2011-03-28T06:08:43Z</updated>

    <summary>jpeg</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="300ouyougi画像処理の応用技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/26.gif">

<p class="m20-t">静止画の圧縮技術（フォーマット）には、JPEGのほかに、GIFやPNGなどがあります。</p>

<p>GIFは可逆性が高く、またアニメーションなど人工的な画像に対して表現力や圧縮率の観点で優れているといわれますが、特許に絡む権利問題があり、使われることが少なくなっています。</p>

<p>PNGは圧縮率、可逆性ともに高いのですが、対応できるブラウザがまだ少ないという欠点を持ちます。</p>

<p>JPEGはデジタル写真など自然に近い画像に対して、特にクオリティが高いと考えられています。</p>

<p>権利問題がないわけではないのですが、GIFほど緊急かつ深刻とは考えられていません。</p>

<p>そして非常に実績があり、対応可能な機器が多いフォーマットでもあります。</p>

<p>ここでは代表的な静止画圧縮技術としてこのJPEGを取り上げます。</p>

<p>JPEGで基本となるのは、離散コサイン変換と、ハフマン符号という可変長符号化です。</p>

<p>離散コサイン変換はすでに述べましたが、そこで例示した１次元ではなく、２次元で行います。</p>

<p>具体的には全体の画面を８画素×８画素のエリア群にわけ、そのそれぞれのエリア内で２次元離散コサイン変換を行うのです。</p>

<p>離散コサイン変換の結果、高周波成分は非常に小さくなるのが普通なので、そこを適当に切り捨てたりビットを節約したりして、圧縮します。</p>

<p>特に色の情報は人間の目の解像度が低いので、大きく削減することができます。</p>

<p>ハフマン符号というのは、特に画像処理には限定されませんが、出現頻度に差があるさまざまな信号に対して表現ビット列を割り当てる方式の一つです。</p>

<p>平均的に全体のビット数を最小化するという意味で、「最適符号化」であることがわかっています。</p>

<p>ハフマン符号の原理を、信号パターン数がほぼ最小の場合すなわち４の場合で示しましょう。</p>

<p>これをS1、S2、S3、S4とします。</p>

<p>もし各信号の出現頻度に大きな差がないなら、たとえば以下のように符号化するのが自然です。</p>

<p>≪符号化規則A≫<br />
S1：00<br />
S2：01<br />
S3：10<br />
S4：11</p>

<p>しかし以下のように符号化しても、論理的な意味で誤りではありません。</p>

<p>≪符号化規則B≫<br />
S1：0<br />
S2：10<br />
S3：110<br />
S4：111</p>

<p>４つの信号パターンが均等確率で出現するなら、符号化規則Aは１信号平均2ビット、Bは平均2.25ビットで表現したことになります。</p>

<p>つまり情報量を節約するという意味では、符号化規則Aの方がすぐれているわけです。</p>

<p>ハフマン符号がモノを言うのは、出現確率が異なる場合です。</p>

<p>たとえばS1の出現確率が1/2、S2が1/4、S3とS4がそれぞれ1/8とします。</p>

<p>1/2 + 1/4 + 1/8 + 1/8 ＝ 1なので、これ以外の信号の出現はないことになります。</p>

<p>この時、信号の表現ビット数の期待値は、以下のようになります。</p>

<p>1 * 1/2 + 2 * 1/4 + 3 * 1/8 + 3 * 1/8 ＝ 1.75つまり一見自然な符号化規則Aより、出現確率が高いほど短い符号を割り当てるBの方が、平均ビット数は小さくなるのです。</p>

<p>実際にハフマン符号を構成するアルゴリズムは以下のようになります。</p>

<p>・出現確率の一番小さいS3とS4に対して、暫定的に0と1を割り当て、両者を組として考える。</p>

<p>・すると新しい出現確率は、S1が1/2、S2が1/4、S3～S4が1/4ということになる。</p>

<p>・同じようにこの中で出現確率の一番小さいS2とS3～S4に対して、暫定的に0と1を割り当て、両者を組として考える。</p>

<p>・すると新しい出現確率は、S1が1/2、S2～（S3～S4）が1/2ということになる。</p>

<p>・残りが2つの場合、それぞれの先頭に0と1を割り当てる。</p>

<p>そしてこれまでの「暫定」をそれに順につなげていく。</p>

<p>なお、JPEGという組織が提唱しているフォーマットには、「JPEG 2000」というものがあります。</p>

<p>これは画質を損なわないようにしながらJPEGよりも圧縮率を高めた静止画符号化方式です。</p>

<p>JPEGとの主要な相違点を表で示します。</p>

<p>図の中でウェーブレット変換という言葉が使われています。</p>

<p>これは時間軸上で無限に続く正弦波（周波数成分）ではなく、有限の長さに限定された正弦波を成分とする変換です。</p>

<p>すなわち時間軸上の関数を、その周波数と限定位置とをパラメータとする関数に変換するわけで、これにより時間的変化も表現することができるわけです。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>クロマキーによる画面合成</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/300ouyougi/kuro.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.25</id>

    <published>2011-03-28T06:06:29Z</published>
    <updated>2011-03-28T06:06:47Z</updated>

    <summary>kuro</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="300ouyougi画像処理の応用技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/25.gif">

<p class="m20-t">以前テレビで対談した際に、「ダークブルーのワイシャツやスーツの着用は避けてください」と指定されたことがあります。</p>

<p>別に番組の雰囲気に合わないからという理由ではありません。</p>

<p>もっと技術的なものです。</p>

<p>どういうことだかわかりますか。</p>

<p>収録は小さなスタジオで行いました。</p>

<p>ただし単なる壁の前でしゃべるだけでは面白くないので、最終的には、もっと見栄えのする背景の中で対談するような映像になったのです。</p>

<p>つまりテレビカメラで撮った私たちの映像と、そうではない背景映像とを、合成したのです。</p>

<p>もちろん単純に足して２で割るわけではありません。</p>

<p>話し手はそのままきちんと映ります。</p>

<p>しかし話し手以外の場所では、背景映像とが出力されるわけです。</p>

<p>テレビカメラで撮った映像の中で、どの部分が人間なのかということを、機械はそんなに簡単に認識できるものなのでしょうか。</p>

<p>それを解決するのがクロマキーという技術です。</p>

<p>実はテレビカメラで撮った私たちの映像の背景は、ダークブルーになっています。</p>

<p>ブルーマン・グループならともかく、人間の肌の色とは、似ても似つかない色です。</p>

<p>そして衣服にもそれが使われないよう、指定されています。</p>

<p>そうなればあとは機械的に入力を選択できます。</p>

<p>それぞれの画素位置に対して、テレビカメラからの画素がダークブルーでなければその画素を選びます。</p>

<p>ダオクブルーであれば、背景の方の映像を選びます。</p>

<p>背景映像の方はあらかじめ用意されていてもいいし、別のテレビカメラで同時に撮影していても構いません。</p>

<p>とにかく話し手を含む映像の色のみで、判別が行われるのです。</p>

<p>この時、もし話し手の衣服がダークブルーだったら、そこだけ背景が透けて見えるような、奇妙な映像になってしまいます。</p>

<p>だからそれは禁止なのです。</p>

<p>また話し手がフリップを見せながら話し、そのフリップの中にダークブルーが使われていたら、やはりそこだけ背景になってしまいます。</p>

<p>いまはデジタル処理もずいぶん進んでいるので、もう少しインテリジェントな認識もできるのかもしれませんが、とりあえずこれが、一番基本的なクロマキーによる画面合成手法です。</p>

<p>クロマは色という意味ですから、色情報を鍵として背景を選ぶべきかどうか認識して合成するという意味です。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>図形を抽出する一般化ハフ変換</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/200henkans/zukei.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.24</id>

    <published>2011-03-28T06:05:40Z</published>
    <updated>2011-03-28T06:05:59Z</updated>

    <summary>zukei</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="200henkans変換処理の種類" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/24.gif">

<p class="m20-t">一般化ハフ変換とは、ハフ変換と同じような投票メカニズムを、線分（直線）以外の図形に応用したものです。</p>

<p>たとえば図形として円（円弧）を考えましょう。</p>

<p>円弧は直線と異なり、中心の横方向座標X、中心の縦方向座標Y、半径Rという３つのパラメータで記述されます。</p>

<p>つまり画像上に何となく円弧っぽいものがある時に、本当に円弧があるといっていいのか、そして存在する場合にはパラメータは何なのかを知る、という処理です。</p>

<p>入力画像上で、( x0 , y0 )という位置に黒い点があったとしましょう。</p>

<p>その黒点が点( x , y )を中心とし、半径がrであるような円弧上の点であるための必要十分条件は、以下の条件を満たすことです。</p>

<p>r**2＝ ( (x-x0)**2 + (y-y0)**2 )</p>

<p>すなわち３次元パラメータ空間( X , Y , R)のうち、xおよびyを定義域の中でそれぞれ自由に動かした時の、（x, y, SQRT( (x-x0)**2 + (y-y0)**2 ) ）という点に、投票結果の１票ずつが投じられるというわけです。</p>

<p>ただしSQRTは正の平方根を意味します。</p>

<p>入力画像上の各点ごとに、こういった投票を実行していきます。</p>

<p>その結果、３次元パラメータ空間( X , Y , R)のすべての点にまんべんなく投票されるのではなく、その中のごく一部の点にのみ、きわめて多数の投票が起きることになります。</p>

<p>それが求めたい円のパラメータというわけです。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>直線を抽出するハフ変換</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/200henkans/tyoku.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.23</id>

    <published>2011-03-28T06:04:38Z</published>
    <updated>2011-03-28T06:04:58Z</updated>

    <summary>tyoku</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="200henkans変換処理の種類" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/23.gif">

<p class="m20-t">ハフ変換とは、線分にノイズの乗った画像から、元の線分を抽出する処理です。</p>

<p>たとえば左上図のような画像があるとしましょう。</p>

<p>おそらく人間がこれを見れば、直感的に右上図のような線分の存在を想像するのではないかと思います。</p>

<p>しかし画像処理でそういった直感を実現するのは、実は容易なことではありません。</p>

<p>それを比較的単純な数値演算で実現するのがハフ変換です。</p>

<p>実はこれはかなり幾何学的な考察が必要となります。</p>

<p>少し前に線分という言葉を何気なく使ってしまいましたが、まずはその説明が必要ですね。</p>

<p>幾何学の中には直線という概念がありますが、これは端がなく、どちら側もまっすぐに無限に伸びたものを指します。</p>

<p>一方だけに端があり、その反対側は無限に伸びたまっすぐな線を半直線といいます。</p>

<p>両端に限りがある場合、線分と呼ばれます。</p>

<p>左下図のように、いわゆるｘ-ｙ座標系の中に、線分があるとしましょう。</p>

<p>その線分に対し、両端を無限に長く伸ばすと直線となります。</p>

<p>線分より直線のほうが数学的に考えやすいので、以下、直線に置き換えて考えます。</p>

<p>中下図のように、原点からその直線に対して垂線をひくことができます。</p>

<p>ただし直線が原点を通る場合は、原点を通ってその直線に垂直な直線を垂線と考えます。</p>

<p>すると、垂線とｘ軸とがなす角が一意に決まります。</p>

<p>これをθとします。</p>

<p>またその場合の垂線の長さをｒとします。</p>

<p>右下図のように垂線の足を点Hとします。</p>

<p>点Hを基点に、この直線に沿った方向のパラメータとしてｔを導入します。</p>

<p>このｔを用いて、これからこの直線上の点を記述します。</p>

<p>その場合、直線とｙ軸とのなす角がやはりθであることに注目してください。</p>

<p>なお、θは０ラジアン以上πラジアン未満とし、垂線の足Hが第３象限や第４象限にある場合、ｒは負であると考えます。</p>

<p>これによりθとｒは直線が与えられれば一意に決まり、逆にθとｒが与えられれば直線が一意的に決まります。</p>

<p>点Hの座標は、( ｒ * cos(θ), ｒ * sin(θ) ）となります。</p>

<p>したがってこの直線上の点は、ｔをパラメータとして、以下のように表わせます。</p>

<p>( ｒ * cos(θ) + t * sin(θ), ｒ * sin(θ) - t * cos(θ) ）<br />
x＝ｒ * cos(θ) + t * sin(θ)、ｙ＝ｒ * sin(θ) - t * cos(θ)<br />
とおいてｔを消去すると、いわゆる直線の方程式が得られます。</p>

<p>それを実際に行うと、以下のようになります。</p>

<p>ｒ＝x * cos(θ) +y * sin(θ)逆にいえば、ある点( x , y )を通る直線、という条件だけでは一意に決まりません。</p>

<p>さまざまな方向のものが考えられます。</p>

<p>つまりθとｒは一意に決まりません。</p>

<p>しかしθとｒをえいやっと適当に与えたとして、それが点( x , y )を通るというわけにはいきません。</p>

<p>そう、点( x , y )を通る直線を記述するθとｒは、すべて特定の条件をみたさなければならないのです。</p>

<p>それが上に述べた、ｒ＝x * cos(θ) +y * sin(θ)という関係です。</p>

<p>ということは、線分を抽出すべき原画像（入力画像）の中に、ある黒点( x0 , y0 )があるとすると、それは以下の関係を満たす何らかの( θ , ｒ )で記述できる直線の一部と考えればよいことになります。</p>

<p>ｒ＝x0 * cos(θ) +y0 * sin(θ)</p>

<p>その直線は一意には決まりませんが、逆にありとあらゆる( θ , ｒ )の組み合わせでよいというわけでもないのです。</p>

<p>この関係は、θを独立変数、ｒを従属変数と考えると、適当な振幅や位相を持つ正弦波ということになります。</p>

<p>さて、( x0 , y0 )以外に、( x1 , y1 )という黒点もあったとしましょう。</p>

<p>これはｒ＝x1 * cos(θ) +y1 * sin(θ)という関係を満たす ( θ , ｒ )のいずれかのパターンで記述される直線上の点と考えられることになります。</p>

<p>同様に黒点( x2 , y2 )は、ｒ＝x2 * cos(θ) +y2 * sin(θ)という関係を満たす ( θ , ｒ ) のいずれかのパターンで記述される直線上の点と考えられます。</p>

<p>もし入力画像の中にもともと線分が含まれているなら、多少のノイズがあったとしても、その線分上の黒点は多く残っているはずです。</p>

<p>ということは、その線分を含む直線を記述する( θ , ｒ )を考える時、数多くの黒点( x , y )が、ｒ＝x * cos(θ) +y * sin(θ)という関係を満たすことになります。</p>

<p>ハフ変換では、入力の中のそれぞれの黒点に対し、それから導かれる正弦波ｒ＝x * cos(θ) +y * sin(θ)上の各点の値を、一様に増やしていきます。</p>

<p>すると、もともと線分があれば、それに対応する( θ , ｒ )の蓄積結果だけが、ほかと比べて圧倒的に大きくなるはずなのです。</p>

<p>多少線分が途切れていても、線分以外に汚れの黒点があっても、たいした問題ではありません。</p>

<p>こうして元の線分を拾い出すことができます。</p>

<p>入力画像の各黒点に対し、点の値を一様に増やしていく作業は「投票」と呼ばれます。</p>

<p>全体として統計処理的な画像処理であるといえます。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>離散コサイン変換</title>
    <link rel="alternate" type="text/html" href="http://www.karaoke-yoga.com/200henkans/risan.html" />
    <id>tag:www.karaoke-yoga.com,2011://2.22</id>

    <published>2011-03-28T06:02:55Z</published>
    <updated>2011-03-28T06:03:12Z</updated>

    <summary>risan</summary>
    <author>
        <name>karaoke-yoga</name>
        
    </author>
    
        <category term="200henkans変換処理の種類" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.karaoke-yoga.com/">
        <![CDATA[<img src="http://www.karaoke-yoga.com/media/22.gif">

<p class="m20-t">離散フーリエ変換によく似た処理として、離散コサイン変換(ＤＣＴ)というものがあります。</p>

<p>やはり入力の波形をさまざまな周波数の正弦波で表わすものですが、以下の２つのメリットがあります。</p>

<p>・変換結果が実数である<br />

・フーリエ変換以上に、低周波部分に情報が集まりやすい以下、一次元で説明します。</p>

<p>離散フーリエ変換のところで、N個の数字ｆ0、ｆ1、...、ｆ(N-1)を入力とし、やはりN個の数字Ｆ0、Ｆ1、...、Ｆ(N-1)を出力とする、と述べました。</p>

<p>さらに数式では以下のように表現しました。</p>

<p>繰り返しになりますが、Σはk=0からk=N-1までの級数、exp()は自然対数の底eを底とする指数関数、iは虚数単位です。</p>

<p>Ｆj ＝ Σｆk * exp(-2πijk/N)・・・離散フーリエ変換（復習）離散コサイン変換も、同じ入力から、やはりN個の数字を出力します。</p>

<p>ここではそれを、Ｇ0、Ｇ1、...、Ｇ(N-1)と書きましょう。</p>

<p>実際の定義に入る前にことわっておきますが、離散コサイン変換は一意的な定義があるわけではありません。</p>

<p>また逆変換などを考えると、適宜正規化（一律の定数と掛ける）が必要です。</p>

<p>しかしここではそういった詳細にまでは立ち入りません。</p>

<p>このように種類の多い離散コサイン変換の中で、典型的かつわかりやすい例を示すなら、以下のような変換があげられます。</p>

<p>Ｇj ＝Σｆk * cos(π(j+0.5)k/N)・・・離散コサイン変換（一例）実際にはＧ0（直流成分）に関してのみ、この定義式にさらに別の定数を掛ける場合が多いのですが、ここではそれは無視します。</p>

<p>先ほども述べましたが、Ｇ0、Ｇ1、・・・、Ｇ(N-1)の中で、Ｇ0やＧ1などは比較的大きな値ですが、高い成分となるとどんどん小さくなっていくのが普通です。</p>

<p>これが離散コサイン変換が非可逆的な符号化などで好まれる理由です。</p>

<p>離散フーリエ変換が高速フーリエ変換により計算時間を削減できるように、離散コサイン変換にも高速手法があります。</p>

<p>また、離散コサイン変換の逆変換は、離散コサイン変換を行列の掛け算とみなした時に、その転置行列で与えられます（定数倍を除く）。</p>

<p>これらの詳細は、ここでは省略します。</p>

]]>
        
    </content>
</entry>

</feed>

