問題タブ [decoding]

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

php - cURL 経由で取得した gzip された Web ページを PHP でデコードする

curl を使用して gzip 圧縮された Web ページを取得していますが、取得したコンテンツをブラウザーに出力すると、生の gzip 圧縮データが取得されます。PHPでデータをデコードするにはどうすればよいですか?

私が見つけた1つの方法は、コンテンツをtmpファイルに書き込んでから...

....しかし、もっと良い方法があるはずです。

編集: これはファイルではなく、Web サーバーから返された gzip された html ページです。

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

video - アライメントされていないメモリ アクセス

アンアライン メモリ アクセスをサポートしない組み込みデバイスを使用しています。

ビデオ デコーダーの場合、8x8 ピクセル ブロックでピクセル (1 ピクセルあたり 1 バイト) を処理する必要があります。このデバイスには、4 バイトを並行して処理できる SIMD 処理機能がいくつかあります。

問題は、8x8 ピクセル ブロックがアラインされたアドレスで始まることが保証されておらず、関数がこれらの 8x8 ブロックのうち最大 3 つを読み書きする必要があることです。

非常に優れたパフォーマンスが必要な場合、これにどのようにアプローチしますか? いろいろ考えた結果、以下の3つが思い浮かびました。

  1. すべてのメモリ アクセスをバイトとして実行します。これは最も簡単な方法ですが、速度が遅く、SIMD 機能ではうまく機能しません (参照用の C コードで現在行っている方法です)。

  2. 2 つの 32 ビット読み取りを介してピクセル データをロードし、ビットを正しい位置にシフトし、スクラッチ メモリの整列されたチャンクにデータを書き込む 4 つのコピー関数 (アライメント ケースごとに 1 つ) を記述します。ビデオ処理関数は、32 ビット アクセスと SIMD を使用できます。欠点: CPU は、処理の背後にあるメモリ レイテンシを隠すことができません。

  3. 上記と同じ考え方ですが、ピクセルをスクラッチ メモリに書き込む代わりに、その場でビデオ処理を行います。これは最速の方法かもしれませんが、このアプローチのために作成する必要がある関数の数は多くなります (約 60 と推測されます)。

ところで: SIMD 拡張に関しては、コンパイラーが恐ろしいコードを生成するため、すべての関数をアセンブラーで作成する必要があります。

あなたはどちらの道を選びますか、それとも別のアプローチ方法がありますか?

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

c# - AAC/MP3ファイルを「手動で」ロードする

作成しているアプリケーションの場合、AACファイルとMP3ファイルを読み取って、波形データを取得できる必要があります(直接再生するのではなく、再生する前にデータを操作する必要があります)。理想的には、そこにあるMP3 / AACファイル(VBR、さまざまなビットレートなど)、または少なくともiTunesに表示される可能性のあるものすべてを読み取ることができるはずです。

チャックがコメントしたように、この最後の点は非常に重要です。iTunesはMP3だと思っていたのですが、AACを使っているとは知りませんでした。本質的に、私はiTunesにあるものなら何でも読める必要があります。

どのようなアプローチを使用することをお勧めしますか?
どんな種類の図書館がありますか?

これは、C#3.0で記述されたWindowsで実行される商用アプリケーション用です。オープンソースライブラリを使用できますが、後でソースコードをリリースするライセンスがなければ何もできません。

どんなポインタでも大歓迎です!

0 投票する
10 に答える
16354 参照

linux - フリー/オープンな h.264 ビデオ デコーディング ライブラリ? (非GPL)

主なプレーヤーは x264 と xvid のようで、どちらも GPL です。つまり、全体を GPL としてライセンスしない限り、デコード機能を再生アプリケーションに統合することはできないため、どちらも使用できません。

推奨されるターゲット プラットフォームは Linux です。非ウイルス性のオープン ライセンスは問題ありません。アプリケーション全体ではなく、ライブラリに加えた変更のソースを喜んで提供します。

何かありますか?それとも、開発中のテストとして今のところ GPL を使用し、出荷前に商用ライセンスのコーデックに置き換えることを計画する必要があるのでしょうか?

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

encoding - ビタビ復号器

ビタビ デコーダーの説明や、トレリス ダイアグラムを使用して受信したビット シーケンスをデコードする方法に関するチュートリアルが記載されている Web または書籍の優れたリソースを知っている人はいますか?

ありがとう!

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

python - Django と lxml のデコードの問題

Django アプリケーションのデプロイされたバージョンを使用しているときに、lxml に奇妙な問題があります。lxml を使用して、サーバーから取得した別の HTML ページを解析します。これは、自分のコンピューターの開発サーバーでは完全に機能しますが、何らかの理由でUnicodeDecodeErrorサーバー上で表示されます。

Apache (mod_python を使用) が で実行されることを確認しましたLANG='en_US.UTF-8'

この問題についてグーグルを試し、文字列を正しくデコードするためのさまざまなアプローチを試みましたが、わかりません。

あなたの答えでは、私の文字列が呼び出されているhelloか何かだと思うかもしれません。

0 投票する
4 に答える
4021 参照

c# - AsciiEncoding.GetBytes および Convert.FromBase64String を使用してデコードされたバイトを書き込む際の FileStream.Write のパフォーマンスの問題

FileStream.Write 関数の使用中にパフォーマンスの問題に直面しています。

StreamReader オブジェクトを使用してファイル (~ サイズは 400 KB) から Base64 文字列を読み取るために使用するコンソール アプリケーションがあります。Convert.FromBase64String を使用して、この文字列をバイト配列に変換します。次に、FileStream オブジェクトを使用して、このバイト配列をファイルに書き込みます。ここで得られたバイト配列の長さは 334991 でした。

バイト配列の書き込みにかかる時間を測定したところ、約0.116 秒でした。

楽しみのために、ASCIIEncoding.GetBytes 関数を使用して、同じ Base64 でエンコードされた文字列からバイト配列を取得しました (これでは正しい DECODED 出力が得られないことはわかっていましたが、試してみたかっただけです)。FileStream オブジェクトを使用して、このバイト配列をファイルに書き込みました。ここで得られたバイト配列の長さは 458414 でした。

この方法論を使用してバイト配列の書き込みにかかる時間を測定したところ、約0.008 秒であることがわかりました。

サンプルコードは次のとおりです。

Base64 でエンコードされた文字列を含む約 5000 個のファイルに対してテストを実行しましたが、これら 2 種類のバイト配列の書き込みにかかる時間の差はほぼ 10 倍です ( 実際のデコードを使用してバイト配列を書き込む方が時間がかかります)。

Convert.FromBase64String を使用して取得したバイト配列の長さは、ASCIIEncoding.GetBytes 関数を使用して取得したものよりも短くなっています。

私がやろうとしているのは、FileStream オブジェクトを使用して大量のバイトを書き込むことだけなのだろうか。では、バイト配列をディスクに書き込む際に、なぜこのような大幅なパフォーマンスの違い (書き込み時間) が発生するのでしょうか?

それとも、私は何かひどく間違ったことをしていますか? お知らせ下さい。

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

.net - .NET ストリーム デコーダーの動作

バイナリ ストリームから文字列のさまざまなエンコーディングをデコードしようとするプロセスがあります。一歩踏み出すと、頭の中でまったく理解できない動作が発生します。具体的には、私がしていることは次のとおりです。

  • 指定されたエンコーディングで文字をエンコードするために使用される最大バイト数を取得します
  • ストリームからバイト数を取得します
  • これらのバイトにエンコードされた可能性のある文字数を判断するために使用Encoding.GetCharCountします (0 1 つまたは 2 つになる可能性があります...)
  • ゼロでない場合Encoding.GetStringは、バイト配列から文字を取得するために使用します
  • 次に、抽出された文字をエンコードするために使用されたバイト数を計算し、その量だけストリーム インデックスを進めます
  • デコード可能なバイト数がゼロであることが判明した場合は、インデックスを 1 バイト進めて、もう一度やり直します...この方法では、デコード可能な文字を見逃さないことを期待しています

ところで、誰かが上記の誤った仮定に気付いた場合は、遠慮なくそう言ってください...

DedcoderFallbackExceptions特定のバイトセットをデコードできない場合にスローするようにデコーダーを設定しています。私を混乱させるのは、 を呼び出すときに例外が発生する場合と、 を呼び出すときに例外が発生する場合があるGetCharCountことGetStringです。これが起こるべき理由はありますか?これは実際に期待されていますか?できるだけ少ない場所で印刷可能な文字の存在を確実に確認できるようにしたいと考えています。現在、いくつかの場所で行っています。

何かご意見は?

ありがとう、ブライアン

重要な更新: 問題の最初の説明が少し不足しているようです。問題にいくつかの前提を追加しましょう。

  • ストリームは非常に大きくなる可能性があります -ほとんどのユーザーのメモリに収まりません
  • ストリーム内の任意の場所で、自分がテキストの先頭にいるのか、テキストの途中にいるのか確信が持てません
  • ストリーム内の任意の場所で、マルチバイト文字の途中または先頭にいるかどうかはわかりません
  • ストリームには、実際にはいかなる種類のテキストでもない多くの素材と、さまざまなエンコーディングの散らばったものが含まれます

うまくいけば、これでいくつかの問題が明確になります。これまでの回答は非常に役に立ちました!続けてください!

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

c# - このバーコードの種類は何ですか?

バーコードをデコードするアプリケーションの作成プロセスを開始していますが、スタートがうまくいきません。私はバーコードの専門家ではなく、これは一般的なバーコードの種類ではないので、困っています。これがどのタイプのバーコードなのか、デコードする必要があるのか​​わかりません。

ウィキペディアや、さまざまな種類のバーコードの視覚的な説明 (およびそれらの識別方法) を掲載している他のサイトを調べましたが、識別できません。無料のバーコード デコード プログラムをいくつか試してみましたが、どれもこれをデコードできませんでした。

これがそのバーコードの写真です。

代替テキスト http://www.shrani.si/f/2B/4p/4UCVyP72/barcode.jpg

どなたか認識していただけると幸いです。また、以前にこれを使用したことがあり、(画像から) それらをデコードできるライブラリを知っている場合は、それらについて聞きたいです。

受け取ることができる追加のポインターに非常に感謝しています。ありがとうございました。