タグ

ブックマーク / zenn.dev/yohhoy (3)

  • PNGファイル爆発しろ!

    まえがき Web上で広く利用されるPNG(Portable Network Graphics)フォーマットは、デジタル画像を変化させずに小さいデータサイズへ変換する圧縮技術の一種です。PNGフォーマットはオリジナル画像を完全復元可能な可逆(lossless)圧縮ですから、JPEGフォーマットのように画像を歪めてしまう非可逆(lossy)圧縮ほどは小さくできません。それでもオリジナルのデジタル画像データの半分程度まではサイズ削減可能な画像圧縮アルゴリズムと言われています。[1] そげぶ いいぜ てめえが何でも思い通りに圧縮出来るってなら まずはそのふざけた幻想をぶち壊す!! (スペース都合によりAA省略) 記事では、PNGフォーマットを画像データ圧縮(compress)用途で利用するのではなく、オリジナル画像データよりも遥かに巨大なPNGファイル を生成します。 PNGフォーマットでは任意

    PNGファイル爆発しろ!
  • C++マルチスレッド一巡り

    C++11/14/17/20標準ライブラリで提供されるマルチスレッド関連機能について一通りの説明を行います。 読み物として通読してもらえば、最新C++20におけるマルチスレッド対応のほぼ全機能を俯瞰できます。 提供機能・利用目的別に概要説明と簡単なサンプルコードを記述しているため、必要な箇所だけを拾い読みすることもできます。 書に関する指摘・要望はTwitterアカウント( https://twitter.com/yohhoy )までお願いします。

    C++マルチスレッド一巡り
  • マルチスレッド・プログラミングの道具箱

    まえがき クラウド上の仮想サーバから手元のスマートフォンまで、いまや複数のCPUコアを搭載するマルチコアはどこにでもある環境になりました。ハードウェア側が並列(Parallel)・並行(Concurrent)処理に向けて急速に進化する一方で、ソフトウェア側つまりプログラミング言語の進化はさほど追い付いていません。並行処理記述の手軽さを求めた Go言語 や、マルチスレッド処理の安全性を重視する Rust言語 などが登場してはいるものの、「普通にプログラムを記述するだけで複数CPUコア環境で高速に走るプログラミング言語」は遠い夢物語のままです。 モダンなプログラミング言語や並列・並行処理ライブラリは、複雑で難解なマルチスレッド処理を直接記述しなくてすむよう、安全性・利便性の高い抽象化レイヤを提供します(例:Go言語のgoroutineとchannel、Rust言語の Rayonライブラリ)。し

    マルチスレッド・プログラミングの道具箱
  • 1