Upload
takeshi-fujiwara
View
22
Download
0
Embed Size (px)
Citation preview
圧縮とは
余計な「空気」を除くこと。
余計な「情報」を除くこと。
身近な圧縮種別 用途 代表的な拡張子の例
データメール添付 ファイルのバックアップ アプリケーションの配布
zip, lzh
bz
bz2
7z (PPMd)
7z (LZMA)
cab
画像デジカメ Web画像
bmp
jpg
gif
png
j2k
音楽CD iPod mp3プレーヤ
wav
mp3
aac
ogg
映像Handy Cam DVD Blu-Ray
mpg, mp2
mp4, 264
wmv
音声
ISDN -
PHS -
ケータイ -
Skype -
WebRTC -
Lossless
Lossy
圧縮の流れ全てのデータ
画像の特徴を持つデータ
音声の特徴を持つデータ
プログラムのバイナリデータ
データ内容に応じたモデル化
JPEG
AAC
冗長度を削減
zip
人間の視覚特性から、データを削減
・輝度感覚 > 色差感覚・低周波感覚 > 高周波感覚
人間の聴覚特性から、データを削減
・可聴周波数領域・最小可聴限界・周波数マスキング効果・時間軸マスキング効果
身近な圧縮種別 用途 代表的な拡張子の例 技術
データメール添付 ファイルのバックアップ アプリケーションの配布
zip, lzh Deflate = LZ77, LZSS (Slide辞書) + Huffman
bz bzip = BWT (Block Sorting) + MTF + 算術符号bz2 bzip2 = BWT + MTF + Huffman
7z (PPMd) PPMd = 有限文脈モデル + RangeCoder
7z (LZMA) LZMA = LZ77 + RangeCoder
cab LZX = LZ77のSlide Window拡大
画像デジカメ Web画像
bmp Bitmap = RunLength
jpg JPEG = 色空間の座標変換 + DCT + RunLength + Huffman
gif LZ78, LZW (Trie辞書)
png Deflate
j2k JPEG2000 = DWT + 算術符号
音楽CD iPod mp3プレーヤ
wav PCM (44kHz, 16bit sampling)
mp3 Mpeg1 Layer3 = MDCT + 聴覚特性 + Huffman
aac Advanced Audio Codec = mp3の改良 + TNS
ogg Vorbis = mp3 - 特許
映像Handy Cam DVD Blu-Ray
mpg, mp2 MPEG, MPEG2 = JPEG + mp3 + 動き保証mp4, 264 H.264 = 整数DCT + 予測 + aac + 動き保証wmv VC-1(Windows Media Video 9) ≒ H.264
音声
ISDN - uLaw = 8bit / sample
PHS - ADPCM = 4bit / sample
ケータイ - CELP = LPC (線形予測符号)
Skype - SILK ≒ CELP
WebRTC - Opus = SILK + CELT
身近な圧縮種別 用途 代表的な拡張子の例 技術
データメール添付 ファイルのバックアップ アプリケーションの配布
zip, lzh Deflate = LZ77, LZSS (Slide辞書) + Huffman
bz bzip = BWT (Block Sorting) + MTF + 算術符号bz2 bzip2 = BWT + MTF + Huffman
7z (PPMd) PPMd = 有限文脈モデル + RangeCoder
7z (LZMA) LZMA = LZ77 + RangeCoder
cab LZX = LZ77のSlide Window拡大
画像デジカメ Web画像
bmp Bitmap = RunLength
jpg JPEG = 色空間の座標変換 + DCT + RunLength + Huffman
gif LZ78, LZW (Trie辞書)
png Deflate
j2k JPEG2000 = DWT + 算術符号
音楽CD iPod mp3プレーヤ
wav PCM (44kHz, 16bit sampling)
mp3 Mpeg1 Layer3 = MDCT + 聴覚特性 + Huffman
aac Advanced Audio Codec = mp3の改良 + TNS
ogg Vorbis = mp3 - 特許
映像Handy Cam DVD Blu-Ray
mpg, mp2 MPEG, MPEG2 = JPEG + mp3 + 動き保証mp4, 264 H.264 = 整数DCT + 予測 + aac + 動き保証wmv VC-1(Windows Media Video 9) ≒ H.264
音声
ISDN - uLaw = 8bit / sample
PHS - ADPCM = 4bit / sample
ケータイ - CELP = LPC (線形予測符号)
Skype - SILK ≒ CELP
WebRTC - Opus = SILK + CELT
(1) 基本的なRun Length符号化(2) Run Lengthを示すコード(FF)を挿入する(3) Run長部分をRun Lengthを示すコードとする(4) Run長部分の00をRun LengthをしないESCとする
符号化結果
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A A A A B C D E F F F G H H H H H 要ESC
(1) 04 ‘A' 01 ’B' 01 ’C' 01 ’D' 01 ‘E' 03 ‘F' 01 ‘G' 05 ‘H’
(2) FF 04 ‘A' 'B' ‘C' ‘D' ‘E' FF 03 ‘F' ‘G' FF 05 ‘H' FF → FF 01 FF
(3) 84 'A' B C D E 83 ‘F' G 85 ‘H' 8x → 81 8x
(4) 04 'A' 00 04 'B' ‘C' ‘D' ‘E' 03 ‘F' 01 ‘G' 05 'H'
Run Length符号化
・シンプル・画像データなど、同じデータが続く場合に有効
0 1 2 3 4 5 6 7
A A A A B B C D
情報量(エントロピー)とは、(無記憶情報源モデルでの)出現確率p(A)の事象Aを表現するために必要なbit数のこと
I(A) = -log2p(A) (bit)出現確率(p) 出現数
情報量( -log2p )
合計情報量
‘A' 4/8 = 0.5 4 1 4
‘B' 2/8 = 0.25 2 2 4
‘C' 1/8 = 0.125 1 3 3
‘D' 1/8 = 0.125 1 3 3
合計 1 8 14
・出現確率に偏りがない場合は圧縮できない・どんなに圧縮しても再小符号化長より短くはならない
最小符号化長
情報量とは
0 1 2 3 4 5 6 7
A A A A B B C D
符号化結果0 1 2 3 4 5 6 7
A A A A B B C D 合計bit数
通常符号 00 00 00 00 01 01 10 11 16
Huffman符号 0 0 0 0 10 10 110 111 14
A B C D4 2 1 1
2
4
0 1
0 1
0 1
特徴・出現率の高い記号には少ないbitを使い、出現率の低い記号には多くのbitを使う・各符号が異なるbit長であっても一意に復号できる・Huffman符号は整数bit数符号化では最適であることが証明されている
作り方
Huffman符号化
符号化結果0 1 2 3 4 5 6 7
A A A A B B C D 合計bit数
通常符号 00 00 00 00 01 01 10 11 16
Huffman符号 0 0 0 0 10 10 110 111 14A B C D
4 2 1 1
2
4
0 1
0 1
0 1
特徴・出現率の高い記号には少ないbitを使い、出現率の低い記号には多くのbitを使う・各符号が異なるbit長であっても一意に復号できる・Huffman符号は整数bit数符号化では最適であることが証明されている
Huffman符号化
圧縮なしの場合 Huffman符号出現確率 数 情報量 合計情報量 通常符号 bit長 総bit長 Huffman符号 bit長 総bit長
‘A' 0.5 4 1 4 00 2 8 0 1 4
‘B' 0.25 2 2 4 01 2 4 10 2 4
‘C' 0.125 1 3 3 10 2 2 110 3 3
‘D' 0.125 1 3 3 11 2 2 111 3 3合計 1 8 9 14 16 14
0 1 2 3 4 5 6 7 8 9
A A A A A A A A B EOF
圧縮なしの場合 Huffman符号出現確率 出現数 情報量 合計情報量 通常符号 bit長 総bit長 Huffman符号 bit長 総bit長
‘A' 8/10 = 0.800 8 0.322 2.575 00 2 16 0 1 8
‘B' 1/10 = 0.100 1 3.322 3.322 10 2 2 10 2 2
EOF 1/10 = 0.100 1 3.322 3.322 11 2 2 11 2 2合計 1.000 10 6.966 9.219 20 12
・情報量は整数とは限らない。 →Huffman符号は整数bitを割り当てるので少なくとも1記号に1bitは消費してしまう
算術符号化
0 1A B EOF
AA AB EOF
AAA AAB EOF
AAAA AAAB EOF
AAAAA AAAAB EOF
AAAAAA AAAAAB EOF
AAAAAAA AAAAAAB EOF
AAAAAAAA AAAAAAAB EOF
AAAAAAAAA AAAAAAAAB EOF
AAAAAAAAABA AAAAAAAABB EOF
0
0
0
0
0
0
0
0
8/10
64/100
512/1,000
4,096/10,000
32,768/1e5
262,144/1e6
2,097,152/1e7
16,777,216/1e8
134,217,728/1e9
150,994,944/1e9
1,493,172,224/1e10
0.1493172224 ~ 0.150994944 であれば、どの値でもよい。
算術符号化
出力 bit 符号化 (小数表示) 復号 Range A B EOF
# 0.15099 2-N 0.0000000000 下限 上限 下限 下限 下限 結果
1 0.30199 0 0.5 0.0000000000 0.0000000000 0 1 0 0.8 0.9
2 0.60398 0 0.25 0.0000000000 0.0000000000 0 0.8 0 0.64 0.72 A
3 1.20796 1 0.125 0.1250000000 0.1250000000 0 0.64 0 0.512 0.576 A
4 0.41592 0 0.0625 0.1250000000 0.1250000000 0 0.512 0 0.4096 0.4608 A
5 0.83184 0 0.03125 0.1250000000 0.1250000000 0 0.4096 0 0.32768 0.36864 A
6 1.66368 1 0.015625 0.1406250000 0.1406250000 0 0.32768 0 0.262144 0.294912 A
7 1.32735 1 0.0078125 0.1484375000 0.1484375000 0 0.262144 0 0.2097152 0.2359296 A
8 0.65471 0 0.00390625 0.1484375000 0.1484375000 0 0.2097152 0 0.16777216 0.18874368 A
9 1.30941 1 0.001953125 0.1503906250 0.1503906250 0 0.16777216 0 0.134217728 0.150994944 A
10 0.61882 0 0.0009765625 0.1503906250 0.1503906250 0.1342177280.150994944 0.134217728 0.1476395008 0.1493172224 B
11 1.23765 1 0.00048828125 0.1508789063 0.14931722240.150994944 0.1493172224 0.15065939968 0.15082717184 EOF
0.1503906250
符号化、復号化
0.1493172224 ~ 0.150994944 であれば、どの値でもよい。
辞書
A B A A A B A B C
0 1 2 3 4 5 6 7 8 辞書の大きさ : 4byte最大一致長 : 2byte
0 1 2 3
処理するデータパターン 出力値
A
A
0 1 2 3
B
A B
0 1 2 3
A A
A B A A
0 1 2 3
A B A
A A B A
0 1 2 3
B C
0,0,’A’
0,0,’B’
2,1,’A’
0,2,’A’
2,1,’C’
Slide辞書 (LZ77)・処理したいデータ列のデータパターンと一致するデータパターンを辞書中から検索する・一致長が最も長いデータパターンの辞書中の位置と長さを出力する。一致しない場合は0,0・次に続くデータを1つ、そのまま出力する・処理を行ったデータ列を辞書の末尾に追加する。辞書のデータ長を超える分は削除する。・以上を繰り返す。
LZSS
LZ77と異なる部分
・一致長が最も長いデータパターンの辞書中の位置と長さを求め、一致長が最小値以下の場合はフラグ0と元データ値を出力する。・一致長が最小値より大きい場合は、フラグ1と辞書中の位置と一致長を出力する
‘A’0 21 4 11 5 ‘S’0
フラグ0に続くものはデータ値そのもの
フラグ1に続くデータは辞書中の一致位置と長さ
• M.Burrows & D.J.Wheelerの考案した変換
• これ自体は圧縮は行わない
• MTF(Move To Front)と組み合わせて使用されることが多い
Block Sorting (BWT)
ABRACADABRA
ABRACADABRA
ABRACADABRABRACADABRAARACADABRAABACADABRAABRCADABRAABRAADABRAABRACDABRAABRACAABRAABRACADBRAABRACADARAABRACADABAABRACADABR
ABRACADABRA
ABRACADABRA
BRACADABRAA
RACADABRAAB
ACADABRAABR
CADABRAABRA
ADABRAABRAC
DABRAABRACA
ABRAABRACAD
BRAABRACADA
RAABRACADAB
AABRACADABR
A
A
B
R
A
C
A
D
A
B
R
ABRACADABRA
A
A
B
R
A
C
A
D
A
B
R
3RDARCAAAABB
RDARCAAAABB 3
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R A
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R A C
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R A C A
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R A C A D
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R A C A D A
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R A C A D A B
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R A C A D A B R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
A
A
B
R
A
C
A
D
A
B
R
RDARCAAAABB 3
A B R A C A D A B R A
Welcome to B.U.G., Inc. B.U.G. is a major player in the area of developing both of software and hardware and also supplier of systems solutions for the next generation of computing, networking, digital video and database publishing system. SUCCESS IS MUTUAL This is our corporate motto. It means we should not compete, we should collaborate and live together. Speculatively, * Turn the customer needs into a reality * Use each other's abilities to have a good business relationship * Universal society through technology * Make the engineers self-realize the happiness of development For customers, societies, environments, employees.......... This means success for everything, all people and things related to BUG. Overview B.U.G. is a major player in the area of developing both of software and hardware and also supplier of systems solutions for the next generation of computing, networking, digital video and database publishing system. Thanks to its expertise in rich experience of technical development in them, its line of products and services have been accepted and highly recognized by from much kind of industries. With this strong technical presence, B.U.G. has been contracted for a lot of commissioned manufacturing and has developed a multi-platform application software such as a database application, Adobe PostScript RIP, and a network software, meanwhile it has dedicated to development of an embedded system software, driver software, and firmware. B.U.G. also provides a full range of enhanced services, including marketing, maintenance, sales and multi-vender technical support as well as technical development. B.U.G. has offered its customers turnkey solutions, making most of its strength in marketing research in order to create technological breakthroughs and achieve competitive advantage and innovation. Also it forecasts of new customer and markets needs to quickly change its product line, taking technical advantage in developing a full line of innovative products. B.U.G. has more than 100 employees at its headquarters in Sapporo and is proud of its engineers all skilled and having wide ranges of knowledge and advanced technical abilities. B.U.G. was founded by four Hokkaido University students in 1977 and has made a rapid growth in the last twenty years. B.U.G.'s ultimate goal is to meet various customers needs, from end-user to businesses with its advanced and leading edge technology.
BWT Example
,.......t......y pynn, , w oo rS, S* et n. L.**o* sgserssddeoslndsdel,s.ddf,seeeoo,eeg7ddeoderssemeeehltsesggldoddydfteffnrowessraddssnffflol,,,egn0,msef,rhsddssstsy,yaatteadedd.tdd..osdsdssehherrht,fdfs..sdloehdfot,efhfedlstdas,aa,dngdst,osgemadrssa,,feedttnnaasededtssehhrresnhslrrlsfesoeeoleaayssgn,sddeel,lffnrmkssyssyseooldggff,dgfsgreheennneenrrndhyedrrdsssseststll.,ssgsyr. yne.gPeggessssmgseggeseeifdinestcssoGmmysr.GGGGGGGGG........sUUUUUUUUUBBBBBBBBB01 791U UCC U......... R A I SIE t U .........TSBM ee ttt l e rfmee ttkmmmMmtecccccocscttsee h nvhv hrrheevvmerh Sehhwwwwwwwww vmmmeu hhhwhhh bbblc dddrmrelclrrccvlvlhhhllaaaom aauua niiiiiiieiiiaunnnnnnciicuirua aeeeeeeeeeooine l Suauuae ennnnneeeoeelnnneinnnnnnnnennennlnuneeeneen eaind uiinri eee auiAa eeeooonaaaarrbvdvgrrrrgtlshhvvhshthgslghthhgnncvssdwwrtgrkzmvcrrrcntrrr lhrrrmmmsyrrtttttttttrppltcdztrncdcttbl deeennnbbnnyymrrWswvvvvvvvvvthtt tteetis vgg r mmmmdmw ddpcmyymiivdsdhhnnfpetmemmvvpssvvdlecgisiciierrcnnnepgikkpknnniidddddddd in nnkoooooooooooooooooooolufo t oooooo nnnnnnnnnnnnnnnnnnndaannd nouiuonniio nnoocctcttcttcgttncT tttttttt tttc wssttsTTtgcccccccccssttgttnngnnnndllvvrupwvvvarlltttrcchvhddhbbkt k lllggpssprppddkthhkvhkkttth a tttttsttttrhrfv hh h tllm ggwWllt lsttltrnnlnaarkarrrns aarroc naaalaaaallallaaaal epeuppeuupi lwaepppp bbiia aeuauaoioooeeeeeeee ppAaaauuucoookherooeeee ieo ppppnooooomo ooeeooee raiieeiaiooiioiiriiooeIeeaaaaiaaaaaaaaaaaaaaaaaaaaiaaeueiiiio iieeiii iiiiiiiiiiioiiiiiiiaaaeeieehhhhhhUUgraoiihhh nnkooaaooeeeeaaiioeeeaeattdteerttttsttstsstgdssorrr sssssstlcllHcnnnsssrrctttttccccciiiiiirriiiicgllllellllfFfjjffbp mfwwwfpcpmPnlbb mrrrhhff innrnrlliSo xxmmapooo- oppppmmoooorppaaauuau ie mmd uoeuooeeeeeooeeooeeeet ooeeaoaaaaaaaoaaaaaab -co e t p etuacdoaaaoooiuuopppfftiphhpgoeeeeeeaeeoaeeeeeaeii'trheteautaattsnnaettrditaiatrsetaitigsrmmtinaekidr'naetedenrtereer aUiaae eu siin uusr llll eeeeioaoyyyyyuuuuu u a nproixxinacInossensaaann iiaaaae pcaasssssnragwiooi oey kllieileeuuaaaaauuuareiaa n t sssssnsssiciiiiniesiincosc ffffff eeeiienqppssmdddotlnooqcooffmm osssootTto-bbcccccdppllldddd ooaiaeiieeeeeeeei-iiiOerr oraneeddttttttm tn otttoeeeegtlbbletttlg ooaasssssrii
辞書 記号の出現表 出力値
B A C C D D D D
0 1 2 3 4 5 6 7
1B A C DB A C C D D D D
0 1 2 3 4 5 6 7
11A B C DB A C C D D D D
112C A B DB A C C D D D D
1120C A B DB A C C D D D D
11203D C A BB A C C D D D D
112030D C A BB A C C D D D D
1120300D C A BB A C C D D D D
11203000D C A BB A C C D D D D
A B C D
0 1 2 3
MTF (Move To Front)
# MIME type Extensions application/activemessage application/andrew-inset ez application/applefile application/atom+xml atom application/atomicmail application/batch-smtp application/beep+xml application/cals-1840 application/cnrp+xml application/commonground application/cpl+xml application/cybercash ...
...
.-..ssv. agaooooooeoooaogabgacioaoiaeiozeoooooppraoououioiiouoooooiiiooo ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooiidaaaaaagrrre/ooirgg... ...
... 1 0 0 1 1 0 0 0 1 1 1 5 0 0 13 0 0 0 2 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 13 1 13 1 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 0 0 0 0 0 0 0 0 0 6 1 2 1 6 1 0 1 1 0 0 8 1 26 0 8 2 0 0 0 0 0 0 0 5 27 2 0 0 27 0 0 0 0 14 2 0 0 7 1 16 1 15 1 0 0 0 0 7 14 0 0 1 2 1 13 2 0 0 0 0 0 0 2 14 2 0 0 0 9 1 1 1 43 15 0 2 1 10 11 3 8 1 0 4 ...
BWT後
MTF後
/etc/httpd/conf/mime.types
BWT Example 2
JPEG
•色情報を削減するために、座標変換を行うRGB → YCbCr
•高周波成分を削減するために、離散コサイン変換(DCT)を行う
• 0部分をRunLengthでまとめる
•無記憶情報源モデルとしてHuffman圧縮を行う
Y Cb Cr
R G B
RGB YCbCr
JPEGの色変換
4:4:4 4:2:2
4: 1: 1
JPEGの色変換
元画像
1 2 3 4 5 6 7 8S1
S3
S5
S7
0
20
40
60
80
100
120
140
DCT変換後Y値 量子化後
量子化マトリックス
JPEGのDCT変換
• どんなデータでも圧縮できる万能アルゴリズムはない
• データの出現頻度に偏りがあるほど圧縮しやすい=モデル化(変換)を駆使して偏りを持たせると圧縮しやすい
• 人間相手のものは、感覚の特性によって認識できない情報を削ることが可能
• 情報量(エントロピー)より小さくは圧縮できない
まとめ