問題タブ [bitstream]

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 投票する
1 に答える
7409 参照

c - ビットストリームの書き方

Cを使用してビットストリームにデータを書き込むことを考えています。2つの方法が思い浮かびます。1 つは、可変ビット長のシンボルを連続したビット シーケンスに連結することですが、この方法では、私のデコーダーはおそらく、これらのシンボルをこの連続したビット ストリームから分離するのに苦労するでしょう。もう 1 つの方法は、どのシンボルに対して同量のビットを分配することです。この方法では、デコーダーは元のデータを簡単に復元できますが、シンボルが異なる値を持ち、ビット ストリームに多くのビットが含まれるため、ビットの無駄が生じる可能性があります。ゼロ(私が推測するこの無駄なビット)。

私が何をすべきかヒントはありますか?

私はプログラミングが初めてです。どんな助けでも大歓迎です。

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

c# - Java ソケット サーバーとクライアント ソケットの c# の問題

クライアントの C# ソケットと Java サーバー ソケットとの通信に問題があります。問題は、応答を読み取ろうとしたときに発生しました。私のコードはこれです:

コード行で

クライアントがハングします。アプリケーションを停止する必要があります。ソケットサーバーが応答していないようです。ソケット サーバーの仕様は、BitStream を送受信することです。

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

file - wav、mp3 ファイルのビットストリームの詳細

wav / mp3 ファイルの各バイトの意味について知りたいです。しかし、グーグルからn番目を見つけてください...そのような情報をどこで見つけることができるか知っている人はいますか? (事実、ビットストリームレベルのすべてのタイプのマルチメディアファイルを知りたいです)

0 投票する
3 に答える
842 参照

haskell - バイト文字列から任意のビット スライスを取得する

Bytestringレイジーを使用してビット ストリームを表現したいと考えています。このストリームからビットの任意のスライスを効率的に取得できる必要があります。たとえば、長さが10 の があり、元の からビット 24 ~ 36 で構成されるByteString新しい をスライスしたいとします。ByteStringByteString

問題は、ByteStringsが の配列であるWord8ため、8 の倍数ではない範囲を取得するのが難しいことです。私が思いついた最高のものは、 and を使用Data.BinaryしたこれData.Binary.Bitsです。get32BitRange特に範囲<= 32用であることに注意してください。

アルゴリズムは次のとおりです。

  • Word8必要なビットを含む最初のインデックスを見つける
  • ByteStringからそのインデックスまでドロップ
  • ビット範囲の下限が 8 の倍数でない場合、先頭に余分なビットがあるWord8ため、それらをスキップします。
  • (hi - lo) ビットを取得し、a に格納します。Word32
  • それをに入れWord32ますByteString

からビットの任意のスライスを取得するより効率的な方法はありByteStringますか?

編集:これはより効率的なバージョンです

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

bit-manipulation - ビットストリーム レクサー ジェネレーター

ビット指向のパケット形式がいくつかあります。多くのかなり複雑な字句解析器を手動で記述するのではなく、ビットレベルの字句解析器ジェネレーター、つまり flex/lex のビット指向バージョンを探しています。明らかに、そのままCを書くこともできましたが、そのようなビットレベルのレクサージェネレーターが存在するかどうか疑問に思っていました。簡単な Google の後、いくつかのメディア デコーダーなどを見つけましたが、メディア ファイルではなく、ネットワーク パケットを解析しています。

または、ビット指向のメイドでフレックスを実行する方法はありますか?

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

java - javazoom のプレーヤーの使用に関する問題

JLayer Class Player を使用して mp3 ファイルを再生しようとしています。スレッドを開始した後 myPlayer.play() 、曲の最初の数百ミリ秒を聞くことができ、その後プレーヤーが中断し、次のエラー メッセージが表示されます。

インターネットで解決策を検索したところ、特定の .mp3 ファイルの問題が原因でこのエラーが発生する可能性があることを読みましたが、.wav ファイルまたは .wma ファイルは受け入れられませんでした。プレーヤーを動作させる方法を知っている人はいますか? 前もって感謝します

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

bit-manipulation - 多くのマスクに従って 1 つのビットストリームを分割する効率的な方法は?

いくつかのマスクに従って、1 つのビットストリームを多数に分割できるInverse Multiplexerを作成する実験を行っています。

アイデア例はこちら

これは 24 ビット ストリームで、各文字が 1 ビットを表します。

3 つのマスクが与えられた場合、すべてのマスクに共通のビットはありません。& 一緒にすると [1,1,1,1,1,1,1,1] になります。

これらのマスクを次のようにストリームに適用します

したがって、元のビットストリームは次のように 3 つのビットストリームに分割されます。

上記は単なる例です。特定のビットストリームに任意の数のマスクを適用する必要があります。マスクは相互に保証されており、ゼロのOR結果があります。ANDすべてのマスクに適用すると、ONE の結果が得られます。すべてのマスクは同じ長さです。

私は、基本的にループ内でビットを 1 つずつシフトするアイデアを力ずくで実行するために、愚かなバージョンを作成しました。それは確かに効率的ではないと思いました。

私はこれを調べましたhttp://graphics.stanford.edu/~seander/bithacks.html

全く分からない。これを改善する方法を知っている人はいますか?(x86 マシン上)

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

c - C プログラムと VHDL ビットストリームを「make」経由で (つまり、Makefile を使用して) マージします。

Digilent Nexys II (Spartan 3E) 開発ボードで Gadget Factory にある VHDL AVR8 ソフト プロセッサをテストしようとしています。プロジェクトには、C (またはその他の) ソフトウェア プログラムをコンパイルして FPGA ビットストリームとマージするための Makefile が含まれているため、ソフトウェアを反復するたびに HDL を再合成する必要はありません。

「make」を実行すると、data2mem に関連する次のエラーが表示されます。

VHDL プロジェクト ファイルを含む同じディレクトリで「make」を実行していますが、そのディレクトリには空白の「main.bit」ファイルさえあります。

ここで何が起こっているかについて誰か考えがありますか? 空の「main.bit」ファイルを特定の方法でフォーマットする必要がありますか、それとも別の場所に配置する必要がありますか?

以下は、私の Makefile へのリンクです。

メイクファイル

注意すべきその他の情報: ソフトウェアを FPGA ビットストリーム ファイルとマージするという特定の目的は言うまでもなく、一般的に Makefile を使用するのは初めてです。また、コマンドプロンプトでWindows 7マシンでこれを試みています。

前もって感謝します。

編集:これは Gadget Factory の AVR8 ソフト プロセッサへのリンクで、AVR8ソースはこちらです。

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

c - 効率的な C BitStream の実装

私は現在、純粋な C で効率的な BitStream を実装するためのさまざまな可能な戦略を研究しています。これは、さまざまなビットベースの圧縮アルゴリズムを実装するために必要です。ただし、このトピックに関する文献はあまり見つけられず、見つけることができる良い例はあまりないようです。

これが私が探しているものです:

  • 関数呼び出しを避けるためのマクロベースの実装
  • BitStream との間で「n」個のビットを読み書きする関数。
  • 一般的なものよりも最適化された、5ビットなどの特定のビット数を読み書きする関数。

私は次のことについて疑問に思っています:

  • BitStream で保持する必要がある変数。BYTE ポインター、バイト位置、現在のバイトのビット インデックス、現在のバイトに残っているビット数などがあります。
  • 維持する変数の数を減らす方法。変数が多ければ多いほど、更新する必要のある変数も多くなります。
  • 単一の読み取り/書き込み操作のコンテキストで、中間/一時変数を最小限に抑える方法。
  • 操作を BYTE レベルで行うか、UINT16 レベルまたは UINT32 レベルで行う必要があるか。おそらく、ビットを UINT32 に蓄積し、それがいっぱいになったときにバイトを書き込む (またはフラッシュ操作で書き込みが完了したときに) バイトごとにすべてを行うよりもはるかに高速です。
  • できるだけループを避けるにはどうすればよいでしょうか。理想的には、BitStream に書き込むビット数をループすることは絶対に避けるべきです。

これはやり過ぎに見えるかもしれませんが、圧縮に関連する残りのコードが非常に最適化されている場合、BitStream の部分がすべてを台無しにしているように見えます。たとえば、画像圧縮コードで SIMD CPU 命令を使用してエンコード プロセスの一部を最適化するアセンブリ ルーチンを目にすることは珍しくありませんが、最後のステップは BitStream への書き込みです。

アイデア、参照、誰か? ありがとうございました!

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

java - 次のコードのエラーを解決する方法

文字列 a に対応するビット ストリームを生成し、ビット ストリーム内の特定のビットを反転するこのコードを記述しました。変数 cc は、コード スニペットの前の処理で整数値を取得します。

ただし、次の行で Array Index Out Of Bounds Exception が発生します。

考えられる原因は何ですか?