Enviar pesquisa
Carregar
GIF と LZW 圧縮と GifWriter.js
•
4 gostaram
•
3,188 visualizações
Yu Nobuoka
Seguir
Kyoto.js #8 で発表した内容です。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 30
Baixar agora
Baixar para ler offline
Recomendados
RvizPlugin作成入門
RvizPlugin作成入門
Sho Takahashi
FACEBOOK FAN PAGE TIPS AND TRICKS – PART 1
FACEBOOK FAN PAGE TIPS AND TRICKS – PART 1
Feroz Khan
Rhomania, Madness Presentation
Rhomania, Madness Presentation
Aditya Gujaran
Social Media Marketing
Social Media Marketing
Feroz Khan
Inspirational Design Portfolio
Inspirational Design Portfolio
Feroz Khan
Flower Fields Disease Control Chart
Flower Fields Disease Control Chart
CherylAnn Crysler
おおいたIT人材塾プレゼン大会資料20141206
おおいたIT人材塾プレゼン大会資料20141206
俊之 渡邊
Web Design Terms
Web Design Terms
Feroz Khan
Recomendados
RvizPlugin作成入門
RvizPlugin作成入門
Sho Takahashi
FACEBOOK FAN PAGE TIPS AND TRICKS – PART 1
FACEBOOK FAN PAGE TIPS AND TRICKS – PART 1
Feroz Khan
Rhomania, Madness Presentation
Rhomania, Madness Presentation
Aditya Gujaran
Social Media Marketing
Social Media Marketing
Feroz Khan
Inspirational Design Portfolio
Inspirational Design Portfolio
Feroz Khan
Flower Fields Disease Control Chart
Flower Fields Disease Control Chart
CherylAnn Crysler
おおいたIT人材塾プレゼン大会資料20141206
おおいたIT人材塾プレゼン大会資料20141206
俊之 渡邊
Web Design Terms
Web Design Terms
Feroz Khan
オープンソースカンファレンス2012大分資料
オープンソースカンファレンス2012大分資料
俊之 渡邊
WordBench大分第二回勉強会資料
WordBench大分第二回勉強会資料
俊之 渡邊
Giao an hoa hoc 11 nang cao tron bo
Giao an hoa hoc 11 nang cao tron bo
Hue Bui
OSC2015大分 Scratch資料
OSC2015大分 Scratch資料
俊之 渡邊
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
CREATING BLOG PROFITS WITH SIMPLE METHODS
CREATING BLOG PROFITS WITH SIMPLE METHODS
Feroz Khan
激熱プラグインCustom Field SuiteとWordPress Front-end Editorをさわってみよう!
激熱プラグインCustom Field SuiteとWordPress Front-end Editorをさわってみよう!
俊之 渡邊
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Yu Nobuoka
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Yu Nobuoka
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Yu Nobuoka
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
Yu Nobuoka
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
WebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocket
Yu Nobuoka
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
Mais conteúdo relacionado
Destaque
オープンソースカンファレンス2012大分資料
オープンソースカンファレンス2012大分資料
俊之 渡邊
WordBench大分第二回勉強会資料
WordBench大分第二回勉強会資料
俊之 渡邊
Giao an hoa hoc 11 nang cao tron bo
Giao an hoa hoc 11 nang cao tron bo
Hue Bui
OSC2015大分 Scratch資料
OSC2015大分 Scratch資料
俊之 渡邊
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
CREATING BLOG PROFITS WITH SIMPLE METHODS
CREATING BLOG PROFITS WITH SIMPLE METHODS
Feroz Khan
激熱プラグインCustom Field SuiteとWordPress Front-end Editorをさわってみよう!
激熱プラグインCustom Field SuiteとWordPress Front-end Editorをさわってみよう!
俊之 渡邊
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Yu Nobuoka
Destaque
(8)
オープンソースカンファレンス2012大分資料
オープンソースカンファレンス2012大分資料
WordBench大分第二回勉強会資料
WordBench大分第二回勉強会資料
Giao an hoa hoc 11 nang cao tron bo
Giao an hoa hoc 11 nang cao tron bo
OSC2015大分 Scratch資料
OSC2015大分 Scratch資料
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
CREATING BLOG PROFITS WITH SIMPLE METHODS
CREATING BLOG PROFITS WITH SIMPLE METHODS
激熱プラグインCustom Field SuiteとWordPress Front-end Editorをさわってみよう!
激熱プラグインCustom Field SuiteとWordPress Front-end Editorをさわってみよう!
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Mais de Yu Nobuoka
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Yu Nobuoka
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Yu Nobuoka
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
Yu Nobuoka
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
WebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocket
Yu Nobuoka
Mais de Yu Nobuoka
(9)
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
WebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocket
Último
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
Último
(8)
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
GIF と LZW 圧縮と GifWriter.js
1.
GIF と LZW
圧縮と GifWriter.js id:nobuoka (@nobuoka) 2013-05-23 Kyoto.js #8
2.
こんにちは! id:nobuoka です
3.
Java とか JavaScript とか 好きです
4.
突然ですが GIF の発音について 「ジフ」? 「ギフ」?
5.
https://twitter.com/christinecuoco/status/337015639698989056/photo/1 より
6.
GIF 考案者 Steve Wilhite
氏 Webby 賞の生涯貢献賞受賞
7.
というわけで GIF の話
8.
GifWriter.js という JavaScript ライブラリを つくりました
9.
デモ http://nobuoka.github.io/GifWriter.js/
10.
canvas のピクセルデータ (ImageData) から GIF
のバイト列を生成
11.
ImageData (32-bit/pixel) Indexed color image (最大 256
色) GIF 画像 バイト列 減 色 処 理 GIF エ ン コ ー ド
12.
減色処理難しい!! 今回はメディアンカット法
13.
GIF エンコード!! W3C に
spec がある http://www.w3.org/Graphics/GIF/spec-gif89a.txt
14.
画像データは LZW 圧縮の亜種 (?) で圧縮される
15.
LZW 圧縮の話
16.
辞書式圧縮法 (の辞書の例) 圧縮後符号 生の符号の列 0
0 1 1 2 111 3 000 ... ...
17.
LZW 圧縮では生の符号の 並びから自動的に辞書が 決まる
18.
LZW での辞書の初期状態は 圧縮後符号と生の符号が同一 圧縮後符号 生の符号の列 0
0 1 1 2 2 3 3 ... ...
19.
圧縮対象符号列から 順に符号を取り出して連結 ↓ 辞書になければ登録 & 辞書にある分だけ書きだし
20.
意味がわからないと 思うので例を書きます!!
21.
1 1 1
0 2 1 2 1 2 1 1 1 圧縮対象 バッファ 圧縮後 辞書には初期状態で長さ 1 のすべての生の符号列が 含まれる (圧縮後の符号値と生の符号値が同一) 圧縮後 生符号列 0 0 1 1 2 2 3 3 辞書 { 0, 1, 2, 3 } の 4 つの符号からなる符号列の LZW 圧縮の例
22.
1 1 1
0 2 1 2 1 2 1 1 1 圧縮対象 バッファ 圧縮後 まずは最初の符号を取り出す 圧縮後 生符号列 0 0 1 1 2 2 3 3 辞書
23.
1 1 1 0
2 1 2 1 2 1 1 1 圧縮対象 バッファ 圧縮後 1 は既に辞書に入っているので次の符号の取り出しへ 圧縮後 生符号列 0 0 1 1 2 2 3 3 辞書
24.
1 1 1 0
2 1 2 1 2 1 1 1 圧縮対象 バッファ 圧縮後 1 1 は辞書にないので辞書に追加して、辞書にある部分 だけ (最後の符号を除いた前の部分) を書きだし 圧縮後 生符号列 0 0 1 1 2 2 3 3 4 1 1 辞書
25.
1 1 1 0 2
1 2 1 2 1 1 1 圧縮対象 バッファ 圧縮後 次の符号を取り出す 圧縮後 生符号列 0 0 1 1 2 2 3 3 4 1 1 辞書
26.
1 1 1 0 2
1 2 1 2 1 1 1 圧縮対象 バッファ 圧縮後 1 1 は辞書にあるので、次の符号の取り出しへ 圧縮後 生符号列 0 0 1 1 2 2 3 3 4 1 1 辞書
27.
1 1 1 0 2
1 2 1 2 1 1 1 圧縮対象 バッファ 圧縮後 1 1 0 は辞書にないので辞書に追加し、辞書に存在 する部分だけを書きだす 圧縮後 生符号列 0 0 1 1 2 2 3 3 4 1 1 5 1 1 0 辞書
28.
1 4 0 2 1
2 1 2 1 1 1 圧縮対象 バッファ 圧縮後 圧縮後 生符号列 0 0 1 1 2 2 3 3 4 1 1 5 1 1 0 辞書 という操作を繰り返す
29.
なるほど!!!!
30.
皆さんも圧縮アルゴリズムを 考案しましょう!!!!
Baixar agora