タグ

algorithmとsoftwareに関するgoto0のブックマーク (3)

  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • yebo blog: クヌース教授は間違っていた

    2010/06/15 クヌース教授は間違っていた Slashdotによれば、この数十年間、クヌース教授をはじめとするコンピュータ科学者が最適としてきたアルゴリズムを10倍高速にする方法をPoul-Henning Kamp (PHK) というハッカーが見付けたという。その論文タイトルは「You're Doing It Wrong (あなた達のやっている事は間違っている)」で、ACM Queueに掲載されている。別にクヌース教授の考えが間違っているわけではなく、アルゴリズム的には正しいが、実用レベルでは、OSには仮想メモリがあり、VMと干渉しないようにすれば簡単に高性能なシステムが作れる。従来の考え方はモダンな計算機を考慮に入れていないので、現実的には不適合を起こしている。具体的にはヒープにBツリーの要素を取り込んだBヒープというデータ構造を使うことで、バイナリヒープの10倍のパフォーマンスを

  • 1/1000の圧縮率を目指す次世代動画像圧縮技術の行方 - A Successful Failure

    現在最高の圧縮効率を誇るAVC/H.264は1GbpsのフルHDTVを10Mbps以下に圧縮できる。1/100以上の圧縮率ということになるが、次世代beyond HDTVの8k4kの空間解像度、60〜300fpsの時間解像度、マルチスペクトルの色表現、10〜16bit/pelの画素値深度、複数視点を考えると情報量は16〜200Gbpsとなるため、ビットレートを100Mbpsまで許容したとしても、圧縮率をさらに10倍は引き上げる必要がある(1/1000以上)。 上記の要求に対し、短期的には従来のAVC/H.264で用いられている動き補償予測とDCTを組み合わせたMC+DCTの枠組みを維持し、改良を積み重ねて圧縮率向上を図るアプローチが取られるが、長期的には従来の枠組みに囚われない新たなブレークスルーが必要となる。エントリでは、情報処理6月号の解説*1より、画像圧縮技術のブレークスルーの萌芽

    1/1000の圧縮率を目指す次世代動画像圧縮技術の行方 - A Successful Failure
  • 1