問題タブ [run-length-encoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
1831 参照

list - Prolog で number が連続して出現する回数をカウントする

こんにちは、リストを指定して、次のようにリスト内の連続する各要素の出現をカウントするプログラムをPrologで作成しようとしています:

結果はX=[ [1,3],[2,3],[3,1][1,2] ] 別名、各サブリストは[element,occurrences]

私の場合、基本ケースに問題があると思いますが、解決できません。手伝って頂けますか?

0 投票する
2 に答える
5612 参照

java - Java でのランレングス エンコーディング画像圧縮

さて、ランレングス エンコーディングとハフマン エンコーディングの両方を使用して画像を圧縮する必要がある大学の課題があります。ハフマンを実装する時間がないと思うので、Run-Length エンコーディング atm に焦点を当てています。

私が現在行っているのは、バッファリングされた画像を渡すことです。

画像のバイトを取得します。次に、それを取得して実際の圧縮を行います。これを行うには、stringBuffer を使用していますが、これは間違っていると確信していますが、別の方法は考えられません。そのためのコードは

バイトに戻ると、実際のバイトではなくASCII値を取得するため、文字列に変換するべきではないと確信しています。しかし、ランレングスを標準のバイト配列に効率的に追加する方法がわかりません(ランレングスを先頭に追加し、byte[i+runLength] の後のすべてを下に移動すると、それができると思います配列内の runLength 量..しかし、それは非常に非効率的でエラーが発生しやすいでしょう...おそらく)

次に、それを画像として保存する必要があります。これは明らかに現時点では機能していませんが、現在そのために取得しているコードは

あなたが提供できるかもしれない助けをありがとう:)

次のように行われるrleImageを設定する部分を見逃していることに気づきました

0 投票する
2 に答える
778 参照

java - Java ビットマップ RLE8 形式

Java ImageIO (またはその他の画像ハンドラー) は BI_RLE8 画像形式をサポートしていますか? 私が見つけた唯一のものはBMPImageWriteParam ですが、それを使用する方法がまったくわかりません。どんな助けでも素晴らしいでしょう。

0 投票する
0 に答える
523 参照

java - バイト配列で RLE 圧縮を実行した後に BMPImageReader を使用すると、Java EOFException が発生する

RLE を使用して画像を圧縮EOFExceptionしようとするとエラーが発生します。Bitmap基本的に、ビットマップ イメージの bytearray を取得し、54 番目のバイト以降のすべてに対して RLE 圧縮を実行します。これはすべてヘッダー ファイルのものだからです。次にBMPImageReader、新しいバイト配列を読み込み、それBMPImageWriterを新しい RLE8 圧縮ビットマップとして保存します。

ただし、セクションでは

最後の行で例外をスローします。私はコードをステップ実行しましたが、ヘッダーは正常に渡されますが、最初のバイトを読み取るときに例外がスローされます (私は... 従うのが難しいと思います)。

スタックトレースは次のとおりです。

誰がエラーの原因を知っていますか?

0 投票する
2 に答える
1411 参照

matlab - ランレングスコーディング Matlab

私はMatlabでランレングスコーディングを行っていますが、これまでのところジグザグアルゴリズムを実装し、配列RunLengthCodingを取得しました:

次に、次のような長さのコードを実行する必要があります。

これは (長さ,値) です。たとえば (0,6) です。これは、0 がなく、値が 6 であるためです。最初の 0 に出会うと、0 が 1 つあり、値が-1 の後。

私の試み:

私はこれが実行されないことを知っています!しかし、それは私がこれまで管理してきたことです

0 投票する
1 に答える
109 参照

database - 特定の列のすべてのビットマップ インデックスの圧縮サイズは、最大でテーブルのサイズに比例しますか?

Daniel Lemire の投稿 The Mythical Bitmap Index ( http://lemire.me/blog/archives/2008/08/20/the-mythical-bitmap-index/ ) を読んでいて、その投稿で彼は次のように述べています。

ビットマップ インデックスの圧縮サイズは、多くてもテーブルのサイズに比例します。個別の値の数に関係なく!

彼がこの値をどのように計算したかを理解するのに苦労しています。

長さ N の Run-Length-Encoded テキストの最悪の場合のスペース使用量は、N (2N?) に比例するため、O(N) であることを私は知っています。

また、特定の列のビットマップ インデックスの数の最悪のケースは、列のカーディナリティが N の場合であり、N はテーブル内のレコードの数であることも知っています (したがって、すべてのレコードがその特定の列で一意の値を持つようになります)。 . これは、N 個のビットマップ インデックスがあることを意味します。

ただし、ビットマップ インデックスの最悪の場合の仮定の下では、各ビットマップ インデックスは、ランレングス エンコードされると、一定のスペース使用量になります。これは、いくつかのゼロ、1、それに続くいくつかのゼロ、つまり O(1) になるためです。

したがって、最高カーディナリティ N の下でのすべてのビットマップ インデックスの合計スペース使用量は、ちょうど N x O(1) = O(N) になります。

ただし、この特定の計算から、考えられるすべてのケースの最悪のケースにどのように進むのでしょうか? 私が説明したカーディナリティ = N のケースが、すべてのビットマップ インデックスを合計した最悪のケースのスペース使用量であることは明らかではありません。

テーブル内の列に対して、ランレングスでエンコードされたすべてのビットマップ インデックスを合計した場合の最悪の場合のスペース使用量をどのように計算しますか?

0 投票する
6 に答える
4569 参照

c# - 指定されたソート済み文字列のランレングス エンコーディング

与えられた文字列のランレングス エンコーディング用のコードを書く
サンプル入力: aaaaaaaaaaabcccccc
出力: a10bc6

私のコード:

ただし、次のように返されます。

a10b1c6

非繰り返し文字のカウントを削除したいのですが、ここでは文字「b」の「1」です。

ソートされた文字列であると仮定します。

0 投票する
2 に答える
1204 参照

compression - 16 進数のハフマンと RLE

16 進文字でファイルを圧縮しようとしていますが、RLE はファイルと文字に依存するため、ハフマン コード化を使用するのが効率的かどうかわかりません。これは、ファイルを変更しても決して同じではありません。圧縮します。

ハフマンを使うべきですか?効率が悪いとすれば、それはなぜですか?それをよりよく圧縮するために使用できる既知のアルゴリズムはありますか?任意の言語でコードとして記述できますか?