
Chinese: 
本集由 Curiosity Stream 赞助播出
(｡･∀･)ﾉﾞ 我是Carrie Anne，欢迎收看10分钟速成课：计算机科学！
上集我们讨论了文件如何编码文字，声音和图像数据
上集我们讨论了文件如何编码文字，声音和图像数据
甚至讨论了具体文件格式如 .txt  .wav 和 .bmp
虽然这些格式够用，而且如今仍在使用
但简单也意味着存储效率不高
我们希望文件能尽量小一些，这样就可以存大量文件
同时传输文件时也会更快
没什么比等邮件附件下载更令人沮丧了
解决方法是 压缩，即把数据压成更小尺寸
用更少的位(bit)编码数据
听起来像魔法，但实际上这是计算机科学！

English: 
This episode is brought to you by Curiosity
Stream.
Hi, I'm Carrie Anne, and welcome to Crash
Course Computer Science!
Last episode we talked about Files, bundles
of data, stored on a computer, that are formatted
and arranged to encode information, like text,
sound or images.
We even discussed some basic file formats,
like text, wave, and bitmap.
While these formats are perfectly fine and
still used today, their simplicity also means
they’re not very efficient.
Ideally, we want files to be as small as possible,
so we can store lots of them without filling
up our hard drives, and also transmit them
more quickly.
Nothing is more frustrating than waiting for
an email attachment to download. Ugh!
The answer is compression, which literally
squeezes data into a smaller size.
To do this, we have to encode data using fewer
bits than the original representation.
That might sound like magic, but it’s actually
computer science!
INTRO

Korean: 
이 에피소드는 Curiosity Stream에 의해 제작되었습니다.
안녕하세요, 저는 Carrie Anne입니다. 
컴퓨터 과학에 오신 걸 환영해요!
지난 시간에 우리는 파일과, 컴퓨터에 저장된
문자, 소리 또는 이미지와 같은 정보들을 인코딩하여 배열하고 형식이 지정된 데이터들의 묶음을 살펴보았습니다.
또한 text, wave, bitmap과 같은 기본적인 
파일 형식들에 대해서도 논의했습니다.
이러한 형식은 완벽히 훌륭하고
오늘날에도 여전히 사용되지만, 그들의 단순함은 동시에
매우 비효율적이었습니다.
이상적으로, 우리는 파일 크기를 가능한 작게 해서 하드드라이브를 가득 채우지 않고도 파일을 많이 저장하고
빨리 전송하기를 원합니다.
다운로드 할 이메일 첨부 파일을 기다리는 것보다 
더 실망스러운 것은 없습니다. 으아~!
해결책은 데이터를 더 작은 크기로 바짝 붙이는 
압축입니다.
이렇게 하려면, 원래 표현보다 더 적은 수의 비트를 
사용하여 데이터를 인코딩해야합니다.
그건 마치 마법처럼 들릴지 모르겠지만 실제로는
컴퓨터 과학이죠!
 

Chinese: 
让我们继续用上集视频的"吃豆人"做例子
吃豆人图像是 4像素x4像素
正如之前说的，图像通常存储成一串像素值
为了知道一行在哪里结束，图像要有元数据，标明尺寸等属性
但为了简单，今天不管这些细节
如果红绿蓝都是255，会得到白色
如果只混合 255红色和255绿色，会得到黄色
图像有16个像素，每个像素占3个字节
意味着图像占48个字节（16x3=48）
但我们可以压缩到小于 48 个字节
其中一种方法是减少重复信息
最简单的方法叫 "游程编码"(Run-Length Encoding)
这种方法利用的是 文件中经常存在相同的值

English: 
Lets return to our old friend from last episode,
Mr. Pac-man!
This image is 4 pixels by 4 pixels.
As we discussed, image data is typically stored
as a list of pixel values.
To know where rows end, image files have metadata,
which defines properties like dimensions.
But, to keep it simple today, we’re not
going to worry about it.
Each pixel’s color is a combination of three
additive primary colors: red, green and blue.
We store each of those values in one byte,
giving us a range of 0 to 255 for each color.
If you mix full intensity red, green and blue
- that’s 255 for all three values - you
get the color white.
If you mix full intensity red and green, but
no blue (it’s 0), you get yellow.
We have 16 pixels in our image, and each of
those needs 3 bytes of color data.
That means this image’s data will consume
48 bytes of storage.
But, we can compress the data and pack it
into a smaller number of bytes than 48!
One way to compress data is to reduce repeated
or redundant information.
The most straightforward way to do this is
called Run-Length Encoding.
This takes advantage of the fact that there
are often runs of identical values in files.

Korean: 
지난 시간에 봤던 우리의 오랜 친구를 불러봅시다.
팩맨 씨!
이 이미지는 4 x 4 픽셀 입니다.
앞서 설명한 것처럼, 이미지 데이터는 전형적으로 
픽셀 값 목록으로 저장됩니다.
행의 끝을 알기 위해 이미지 파일은 
차원과 같은 속성을 메타 데이터를 갖습니다.
하지만 오늘은 단순하게 갈 거라서 
그 걱정스러운 것은 다루지 않겠습니다.
각 픽셀의 색상은 빨강, 녹색, 파랑 세 가지의 조합 입니다.
색상별로 0에서 255까지의 범위를 제공하고, 
각 값을 1 바이트로 저장합니다.
전체 강도를 255의 가장 높은 값으로 
빨강, 녹색 및 파랑을 섞으면 흰색을 얻을 수 있습니다.
전체 강도를 255의 가장 높은 값으로 
빨강, 녹색 및 파랑을 섞으면 흰색을 얻을 수 있습니다.
파랑이 없이(0으로하고) 빨강과 초록색을 혼합하면
 노란색이됩니다.
우리는 이미지에 16 픽셀을 가지고 있고,  
각각 3 바이트의 컬러 데이터가 필요합니다.
즉, 이 이미지의 데이터는 48바이트의 
저장 공간을 소모함을 의미합니다.
그러나 데이터를 꾸려서 압축하면 
48보다 작은 숫자로 만들 수 있습니다.
데이터를 압축하는 한 가지 방법은
중복된 정보를 줄이는 것입니다.
가장 간단한 방법은 RLE(Run-Length Encoding)
라고 불리는 것 입니다.
이것은 파일 안에 종종 동일한 
값이 있다는 사실을 이용합니다.

English: 
For example, in our pac-man image, there are
7 yellow pixels in a row.
Instead of encoding redundant data: yellow
pixel, yellow pixel, yellow pixel, and so
on, we can just say “there’s 7 yellow
pixels in a row” by inserting an extra byte
that specifies the length of the run, like
so:
And then we can eliminate the redundant data
behind it.
To ensure that computers don’t get confused
with which bytes are run lengths and which
bytes represent color, we have to be consistent
in how we apply this scheme.
So, we need to preface all pixels with their
run-length.
In some cases, this actually adds data, but
on the whole, we’ve dramatically reduced
the number of bytes we need to encode this
image.
We’re now at 24 bytes, down from 48.
That’s 50% smaller!
A huge saving!
Also note that we haven’t lost any data.
We can easily expand this back to the original
form without any degradation.
A compression technique that has this characteristic
is called lossless compression, because we
don’t lose anything.
The decompressed data is identical to the
original before compression, bit for bit.

Chinese: 
比如吃豆人图片 有7个连续黄色像素
与其全部存下来：黄色，黄色，黄色...
我们可以插入一个额外字节，代表有“连续7个黄色像素”
删掉后面的重复数据
为了确保计算机知道 哪些字节代表"长度" 哪些字节代表"颜色"
我们的格式要一致
所以要在所有像素前面 标注长度
在某些情况下，数据反而多了 但就这个例子而言，
我们减少了字节数
之前是48个字节 现在是24个字节
小了50％！
省了很多空间！
另外注意，我们没有丢失任何数据
我们可以轻易恢复到原来的数据
这叫"无损压缩"，因为我们没有丢失任何东西
解压缩后，数据与压缩前相同

Korean: 
예를 들어, 우리의 팩맨 이미지에는
행에 7 개의 노란색 픽셀이 있습니다.
중복된 데이터를 노랑 픽셀, 노랑픽셀, 노랑픽셀을 
연속해서 인코딩하는 대신
실행 길이를 지정하는 여분의 바이트를 삽입함으로써 
단순히 " 7개 노랑색의 연속" 이라고 할 수 있습니다.
화면처럼요.
그 다음에 뒤에 있는 중복 된 데이터를 제거 합니다.
컴퓨터가 어떤 바이트가 실행 길이나 색상을 나타내는 지 헷갈리지 않게 하려면
이 구조를 적용하는 방법이 일관적이어야 합니다.
따라서 모든 픽셀의 실행 길이를 정해야 합니다.
경우에 따라 실제로 데이터를 추가하지만 전체적으로는 이미지 인코딩에 필요한 바이트 수를 크게 줄였습니다.
경우에 따라 실제로 데이터를 추가하지만 전체적으로는 이미지 인코딩에 필요한 바이트 수를 크게 줄였습니다.
이제 48 바이트에서 24 바이트로 변경되었습니다.
그것은 50 % 더 작습니다.
거대한 절약이죠!
또한 데이터가 손실되지 않았음에 유의하세요.
어떤 저하 없이 다시 원래대로 확장 할 수 있습니다.
이 특성을 지닌 압축 기술을 무손실 압축이라고합니다.
왜냐하면 아무것도 잃지 않으니까요.
압축 해제된 데이터는 압축하기 전의 
비트들의 원본으로 돌아갑니다.

English: 
Let's take a look at another type of lossless
compression, where blocks of data are replaced
by more compact representations.
This is sort of like “don’t forget to
be awesome” being replaced by DFTBA.
To do this, we need a dictionary that stores
the mapping from codes to data.
Lets see how this works for our example.
We can view our image as not just a string
of individual pixels, but as little blocks
of data.
For simplicity, we’re going to use pixel
pairs, which are 6 bytes long, but blocks
can be any size.
In our example, there are only four pairings:
White-yellow, black-yellow, yellow-yellow
and white-white.
Those are the data blocks in our dictionary
we want to generate compact codes for.
What’s interesting, is that these blocks
occur at different frequencies.
There are 4 yellow-yellow pairs, 2 white-yellow pairs, and 1 each of black-yellow and white-white.
Because yellow-yellow is the most common block,
we want that to be substituted for the most
compact representation.
On the other hand, black-yellow and white-white,
can be substituted for something longer because
those blocks are infrequent.
One method for generating efficient codes
is building a Huffman Tree, invented by David
Huffman while he was a student at MIT in the
1950s.

Chinese: 
我们来看另一种无损压缩，用更紧凑的方式表示数据块
有点像是 “别忘了变厉害” 简写成 DFTBA
为此，我们需要一个字典，存储"代码"和"数据"间的对应关系
让我们看个例子
我们把图像看成是一块块数据，而不是一个个单独像素
为了简单，我们把2个像素当成1块，也就是1块有6个字节
你也可以定成其他大小
在我们的例子中，只有四对 "白黄""黑黄""黄黄""白白"
我们会为这些数据块生成紧凑代码
有趣的是，这些块的出现频率不同
1950 年代 大卫·霍夫曼 发明了一种生成高效代码的方法
叫“霍夫曼树“（Huffman Tree），当时他是麻省理工学院的学生

Korean: 
데이터 블록이 더 작은 표현으로 대체되는 무손실 압축의 다른 유형을 살펴 봅시다.
데이터 블록이 더 작은 표현으로 대체되는 무손실 압축의 다른 유형을 살펴 봅시다.
이것은 "Don't Forget To Be Awesome"이 DFTBA로 대체된 방식과 비슷합니다.
이렇게 하려면, 코드에서 데이터로 매핑하여 
저장하는 사전이 필요합니다.
이 예제가 어떻게 작동하는 지 보겠습니다.
우리는 이미지를 개별 픽셀의 문자열이 아니라 
데이터의 작은 블록으로 볼 수 있습니다.
우리는 이미지를 개별 픽셀의 문자열이 아니라 
데이터의 작은 블록으로 볼 수 있습니다.
단순하게,  6바이트 길이의 어떤 크기의 블록이든
될 수 있는 픽셀 쌍을 사용해 보겠습니다.
단순하게,  6바이트 길이의 어떤 크기의 블록이든
될 수 있는 픽셀 쌍을 사용해 보겠습니다.
이 예에서는 이렇게 4개의 쌍이 있습니다.
흰색-노랑, 검정-노랑, 노랑-노랑, 흰색-흰색
이 예에서는 이렇게 4개의 쌍이 있습니다.
흰색-노랑, 검정-노랑, 노랑-노랑, 흰색-흰색
그것들은 사전에 있는 컴팩트 코드를 생성하고자 하는 
데이터 블록입니다.
흥미로운 점은,
 이 블록들이 다른 빈도로 발생한다는 것입니다.
노랑-노랑의 쌍 4개, 흰색-노랑의 쌍 2 개,
검정-노랑과 흰색-흰색 각각 1개가 있습니다.
노랑-노랑의 쌍이 가장 많은 블록이기 때문에, 가장 많은 콤팩트한 표현으로 대체하려고 합니다.
노랑-노랑의 쌍이 가장 많은 블록이기 때문에, 가장 많은 콤팩트한 표현으로 대체하려고 합니다.
반면에, 검정-노랑과 흰색-흰색은 드물기 때문에
더 길게 대체 될 수 있습니다.
반면에, 검정-노랑과 흰색-흰색은 드물기 때문에
더 길게 대체 될 수 있습니다.
효율적인 코드 생성을 위한 한 가지 방법
David Huffman이 고안 한 Huffman Tree입니다.
그때 그는 1950년대에  MIT의 학생이었습니다.

Korean: 
그의 알고리즘은 이렇게 됩니다.
먼저 모든 가능한 블록들과 빈도를 배치합니다.
매 차례마다 최저 빈도 두 가지를 선택합니다.
여기는 검정-노랑과 흰색-흰색으로, 각 빈도는 1입니다.
이걸 합쳐서 작은 나무에 결합하면 빈도가 2가 되는데 
우리는 이것을 기록합니다.
이걸 합쳐서 작은 나무에 결합하면 빈도가 2가 되는데 
우리는 이것을 기록합니다.
이제 알고리즘의 한 단계가 완료 되었습니다.
이제 우리는 그 과정을 반복합니다.
이번에는 선택할 수 있는 것이 세 가지가 있습니다.
전과 마찬가지로, 가장 낮은 빈도 두 개를 골라 
작은 나무에 넣고
모든 하위 항목의 새로운 총 빈도를 기록합니다.
좋아요, 거의 다 왔습니다.
이번에는 두 가지만 남았으니 
최저 빈도의 두 항목을 선택하기 쉽습니다.
이번에는 두 가지만 남았으니 
최저 빈도의 두 항목을 선택하기 쉽습니다.
이것들을 나무에 합쳐서, 이제 다 됬네요!
나무는 빈도를 바탕으로 이렇게 배열되어 
매우 멋진 특성을 보여줍니다.
그리고 공통 항목은 훨씬 적습니다.
자, 이제 나무가 생겼지만 여러분은 이것을 어떻게 사전에 데려가는지 궁금해 할 수도 있습니다.
우리는 빈도로 정렬된 트리를 사용해서 각각의 가지에 
0 또는 1 라벨을 붙여 필요한 코드를 생성합니다.
우리는 빈도로 정렬된 트리를 사용해서 각각의 가지에 
0 또는 1 라벨을 붙여 필요한 코드를 생성합니다.
이것으로 우리는 코드 사전을 작성할 수 있습니다.
노랑-노랑 단 하나의 0으로 인코딩됩니다.

Chinese: 
他的算法是这样的
首先，列出所有的块 以及出现频率
在每一轮，选两个最低的频率
"黑黄"和"白白"，频率都是1
把它们组合成一个树，总频率是2
现在完成了一轮算法
我们重复这个做法
这次有3个可选
就像上次一样，选频率最低的两个，放在一起，并记录总频率
我们快完成了
这次只有2个选
把它们组合成一棵树，就完成了！
现在树看起来像这样，它有一个很酷的属性：按频率排列
频率低的在下面
现在有了一棵树，你可能在想“怎么把树变成字典？”
我们把每个分支用 0 和 1 标注，就像这样
现在可以生成一个字典
"黄黄"编码成 0

English: 
His algorithm goes like this.
First, you layout all the possible blocks
and their frequencies.
At every round, you select the two with the
lowest frequencies.
Here, that’s Black-Yellow and White-White,
each with a frequency of 1.
You combine these into a little tree... ...which
have a combined frequency of 2, so we record
that.
And now one step of the algorithm done.
Now we repeat the process.
This time we have three things to choose from.
Just like before, we select the two with the
lowest frequency, put them into a little tree,
and record the new total frequency of all
the sub items.
Ok, we’re almost done.
This time it’s easy to select the two items
with the lowest frequency because there are
only two things left to pick.
We combine these into a tree, and now we’re
done!
Our tree looks like this, and it has a very
cool property: it’s arranged by frequency,
with less common items lower down.
So, now we have a tree, but you may be wondering
how this gets us to a dictionary.
Well, we use our frequency-sorted tree to
generate the codes we need by labeling each
branch with a 0 or a 1, like so:
With this, we can write out our code dictionary.
Yellow-yellow is encoded as just a single
0.

English: 
White-yellow is encoded as 1 0 (“one zero”)
Black-Yellow is 1 1 0
and finally white-white is 1 1 1.
The really cool thing about these codewords
is that there’s no way to have conflicting
codes, because each path down the tree is
unique.
This means our codes are prefix-free, that
is no code starts with another complete code.
Now, let’s return to our image data and
compress it!
Our first pixel pair, white-yellow, is substituted
for the bits “1 0”.
The next pair is black-yellow, which is substituted
for “1 1 0”.
Next is yellow-yellow with the incredibly
compact substitution of just “0”.
And this process repeats for the rest of the
image:
So instead of 48 bytes of image data ...this
process has encoded it into 14 bits -- NOT
BYTES -- BITS!!
That’s less than 2 bytes of data!
But, don’t break out the champagne quite
yet!
This data is meaningless unless we also save
our code dictionary.
So, we’ll need to append it to the front
of the image data, like this.
Now, including the dictionary, our image data
is 30 bytes long.
That’s still a significant improvement over 48
bytes.

Chinese: 
"白黄"编码成 10
"黑黄" 是 110
"白白"是 111
酷的地方是它们绝对不会冲突
因为树的每条路径都是唯一的
意味着代码是"无前缀"的，没有代码是以另一个代码为开头的
现在回到图像数据 并压缩它！
第一个"白黄"，换成“10”
下一个是"黑黄"，换成“110”
接下来是"黄黄"，换成“0”，超短
重复这个过程：
之前是48个字节..现在变成了14位，
14位(bit) 还不到2个字节(bytes)！
但先别急着开香槟！
如果不保存 代码和数据的对应关系字典
 14 bit 毫无意义
所以把它加到前面，就像这样
现在加上词典，图像占 30 个字节
依然比 48 字节好很多

Korean: 
흰색-노랑은 10( "1과 0")으로 인코딩됩니다.
검정-노랑은 110입니다.
마지막으로 흰색-흰색은 111입니다.
이 코드 워드에 대한 정말 멋진 것은
부딪히는 코드가 없다는 것입니다.
왜냐하면 나무 아래에 있는 각 경로는 
유일하기 때문입니다.
즉, 이 코드는 접두사가 없고,
다른 완전한 코드로 시작하는 코드가 없습니다.
이제 이미지 데이터로 돌아가 그것을 압축해 보겠습니다.
첫 번째 픽셀 쌍인 흰색-노랑은
비트 "1 0"로 대체되었습니다.
다음 쌍은 검정-황색으로, "1 1 0"으로 바뀌었습니다.
다음은 매우 컴팩트한 0으로 대체된 노랑-노랑입니다.
이 과정은 나머지 영상에 대해서도 반복됩니다.
48 바이트의 이미지 데이터 대신 
이 프로세스로 이미지를 14 비트로 인코딩 되었습니다.
바이트가 아닌 비트로!!
그것은 2바이트 미만입니다.
하지만, 아직 샴페인을 따지 말고 기다려보세요!
이 데이터는 코드 사전에 저장하지
않으면 의미가 없습니다.
그래서, 이미지 데이터 앞에 이것을 첨부해야 합니다. 
이렇게요.
이제 사전을 포함한 이미지 데이터
30 바이트 길이입니다.
이정도면 48바이트 에서 중요한 발전입니다.

Korean: 
우리가 논의한 두 가지 접근법 :
여분을 제거하고 보다 컴팩트한 표현을 사용하는 것은,
종종 같이 사용되어 무손실 압축 파일 형식의 기초가 됩니다. (예를 들면 GIF, PNG, ZIP 등)
종종 같이 사용되어 무손실 압축 파일 형식의 기초가 됩니다. (예를 들면 GIF, PNG, ZIP 등)
RLE와 사전 인코딩 모두
무손실 압축 기술입니다.
이것은 여러분이 압축을 풀 때, 
정보의 손실 없이 원본 파일을 얻습니다.
그것은 많은 유형의 파일에서 매우 중요합니다.
만약 제가 워드 문서를 압축해서 여러분에게 보냈는데
여러분의 컴퓨터에서 압축을 풀었을 때
내용이 달라지면 정말 이상할 것입니다.
그러나 거의 변하지 않고 압축할 수 있는
다른 유형의 파일이 있습니다.
불필요하거나 덜 중요한, 특히 사람의 인식으로 탐지할 수 없는것과 같은 정보들을 지워버리죠.
불필요하거나 덜 중요한, 특히 사람의 인식으로 탐지할 수 없는것과 같은 정보들을 지워버리죠.
그리고 이 트릭은 대부분의 손실 압축
기법의 기초입니다.
이것들은 꽤 복잡하기 때문에
이것을 개념적 차원에서 이해하려고 합니다.
예를 들어 소리를 들어 보겠습니다.
여러분의 청력은 완벽하지 않습니다.
우리는 소리의 일부 주파수를 더 잘 들을 수 있습니다.
그리고 여러분이 박쥐가 아닌 이상, 초음파와 같이 
전혀 들을 수 없는 것들도 있습니다.
그리고 여러분이 박쥐가 아닌 이상, 초음파와 같이 
전혀 들을 수 없는 것들도 있습니다.
기본적으로 음악을 녹음하고
초음파 주파수의 범위에 데이터가 있으면
사람들이 그것을 들을 수 없다는 걸 알고 있기 때문에 
우리는 그것을 버릴 수 있습니다.

English: 
The two approaches we discussed, removing
redundancies and using more compact representations,
are often combined, and underlie almost all
lossless compressed file formats, like GIF,
PNG, PDF and ZIP files.
Both run-length encoding and dictionary coders
are lossless compression techniques.
No information is lost; when you decompress,
you get the original file.
That’s really important for many types of
files.
Like, it’d be very odd if I zipped up a
word document to send to you, and when you
decompressed it on your computer, the text
was different.
But, there are other types of files where
we can get away with little changes, perhaps
by removing unnecessary or less important
information, especially information that human
perception is not good at detecting.
And this trick underlies most lossy compression
techniques.
These tend to be pretty complicated, so we’re
going to attack this at a conceptual level.
Let’s take sound as an example.
Your hearing is not perfect.
We can hear some frequencies of sound better
than others.
And there are some we can’t hear at all,
like ultrasound.
Unless you’re a bat.
Basically, if we make a recording of music,
and there’s data in the ultrasonic frequency
range, we can discard it, because we know
that humans can’t hear it.

Chinese: 
我们讨论的"消除冗余"和"使用更紧凑的表示"
 通常会被组合使用
几乎所有的无损压缩文件格式都用到了它们
比如 GIF，PNG，PDF 和 ZIP 文件
"游程编码"和"字典编码"都是无损压缩技术
压缩没有丢失信息，解压时会得到原始文件
无损对很多类型的文件都非常重要
比如我给你发了个压缩的 word 文档
 结果你解压之后发现里面的字变了，那就很不方便了
但有些其他类型的文件，删掉一些数据没什么事
特别是那些人类看不出什么区别的数据
这个技巧 是大多数有损压缩技术的基础
实际方法一般比较复杂，所以我们从概念层面讲讲就好
以声音为例
你的听力不是完美的
我们擅长识别某些特定的频率
还有些我们根本听不见，比如超声波
除非你是蝙蝠
基本上，如果我们给音乐录音，超声波的数据都可以扔掉
因为人类听不到超声波

Chinese: 
另一方面，人类对人声音域非常敏感
所以应尽可能保持原样
低音介于两者之间
人类听得到，但不太喜欢
一般是感觉到震动
有损音频压缩利用这一点，用不同精度编码不同频段
有损音频压缩利用这一点，用不同精度编码不同频段
即使结果比较粗糙，听着也察觉不到什么区别
至少不会显着影响音质
音乐发烧友估计要吐槽了！
你日常生活中 经常碰到这种音频压缩
这是你在手机上 和现实中听起来不一样的原因之一
音频被压缩，为了让更多人能同时打电话
随着信号变差或带宽变小，压缩算法会删更多数据
这就是为什么 Skype 通话有时听起来像机器人
与未压缩的音频格式相比，如WAV或FLAC 
 ( 这下音乐发烧友满意了）
压缩的音频文件，如MP3，往往小10倍。
省了超多空间！
这就是为什么我的旧 iPod 上有一堆超棒的歌
别批判我

English: 
On the other hand, humans are very sensitive
to frequencies in the vocal range, like people
singing, so it’s best to preserve quality
there as much as possible.
Deep bass is somewhere in between.
Humans can hear it, but we’re less attuned
to it.
We mostly sense it.
Lossy audio compressors takes advantage of
this, and encode different frequency bands
at different precisions.
Even if the result is rougher, it’s likely
that users won’t perceive the difference.
Or at least it doesn’t dramatically affect
the experience.
And here comes the hate mail from the audiophiles!
You encounter this type of audio compression
all the time.
It’s one of the reasons you sound different
on a cellphone versus in person.
The audio data is being compressed, allowing
more people to take calls at once.
As the signal quality or bandwidth get worse,
compression algorithms remove more data, further
reducing precision, which is why Skype calls
sometimes sound like robots talking.
Compared to an uncompressed audio format, like a WAV or FLAC (there we go, got the audiophiles back)
compressed audio files, like MP3s,
are often 10 times smaller.
That’s a huge saving!
And it’s why I’ve got a killer music collection
on my retro iPod.
Don’t judge.

Korean: 
반면에, 사람이 노래하는 것과 같은 
보컬 범위의 주파수에 민감하기 때문에
가능한 한 최고의 품질을 유지하는 것이 가장 좋습니다.
저음은 중간에 있습니다.
인간은 그것을 들을 수 있지만 
그것에 덜 적응합니다.
우리는 대부분 그것을 느낍니다.
손실이 많은 오디오 압축기는 이를 이용하여 서로 다른 
주파수 대역을 서로 다른 정밀도로 인코딩합니다.
손실이 많은 오디오 압축기는 이를 이용하여 서로 다른 
주파수 대역을 서로 다른 정밀도로 인코딩합니다.
결과가 대충 만들어진다 해도,
사용자는 그 차이를 인식하지 못할 것입니다.
또는 적어도 그것은 경험에 큰 영향을 미치진 않습니다.
그리고 여기 오디오 애호가로부터
항의 메일이 옵니다!
여러분은 이러한 유형의 오디오 압축을 항상 마주합니다.
핸드폰에서 통화할 때 직접 대화하는 것과 
다르게 들리는 이유 중 하나입니다.
오디오 데이터가 압축되어,
한 번에 더 많은 사람들이 전화를받습니다.
신호 품질 또는 대역폭이 악화됨에 따라,
압축 알고리즘은 더 많은 데이터를 제거함으로 인해
Skype 통화에서 때로는 로봇이 말하는 것 처럼
정밀도를 떨어 뜨립니다.
WAV 또는 FLAC과 같은 비 압축 오디오 형식과 비교할 때 (거기서 다시 오디오 애청자를 되찾았네요.)
MP3와 같은 압축 오디오 파일은 10배 더 작습니다.
엄청난 절약입니다!
그리고 그것이 제 복고쿵 ipod에 
킬러 음악 컬렉션을 가지고있는 이유입니다.
판단하지 마세요~

English: 
This idea of discarding or reducing precision
in a manner that aligns with human perception
is called perceptual coding, and it relies
on models of human perception,
which come from a field of study called Psychophysics.
This same idea is the basis of lossy compressed
image formats, most famously JPEGs.
Like hearing, the human visual system is imperfect.
We’re really good at detecting sharp contrasts,
like the edges of objects, but our perceptual
system isn’t so hot with subtle color variations.
JPEG takes advantage of this by breaking images
up into blocks of 8x8 pixels, then throwing
away a lot of the high-frequency spatial data.
For example, take this photo of our directors
dog - Noodle.
So cute!
Let’s look at patch of 8x8 pixels.
Pretty much every pixel is different from
its neighbor, making it hard to compress with
loss-less techniques because there’s just
a lot going on.
Lots of little details.
But human perception doesn’t register all
those details.
So, we can discard a lot of that detail, and
replace it with a simplified patch like this.
This maintains the visual essence, but might
only use 10% of the data.
We can do this for all the patches in the
image and get this result.

Chinese: 
这种根据人类能感知到什么 来删除数据的做法
叫感知编码，它依赖于人类的感知模型
模型来自一个叫"心理物理学"的领域。
这是各种"有损压缩图像格式"的基础，最著名的是 JPEG
就像听力一样，人的视觉系统也有缺陷
我们善于看到尖锐的对比，比如物体的边缘处
但我们看不出颜色的细微变化
JPEG 把图像分解成 8x8 的像素块
然后扔掉很多高频率空间数据
比如 这是导演的狗叫"面面"
超可爱！
我们来看看其中一个 8x8 像素
几乎每个像素都和相邻像素不同，用无损技术很难压缩
因为太多不同点了
很多小细节
但人眼注意不到所有这些细节
因此可以放弃很多细节，用这样一个简单的块代替
这看起来一样，但可能只占10％的原始数据
我们可以对图像所有 8x8 的块做同样的操作

Korean: 
인간의 인식과 일치하는 방식으로
정밀도를 버리거나 줄일 수 있는 이 아이디어는
지각적 코딩이라고하며, 인간의 인지 모델에 의존합니다.
심리 물리학 (Psychophysics)이라는
연구 분야에서 나온 것입니다.
이 같은 생각은, 대부분의 알고 있는 
JPEG 파일 손실 압축 이미지 포맷의 기초입니다.
청력과 마찬가지로 인간의 시각 시스템도 불완전합니다.
우리는 사물의 가장자리처럼 선명한 대조를 
감지하는 데 정말 능숙합니다.
그러나 우리의 인식 시스템은 
미묘한 색상 변화를 잘 알아채진 못합니다.
JPEG는 이미지를 8x8 픽셀 블록으로 분할 한 다음 
고빈도 공간 데이터를 버리는 식으로 이점을 이용합니다.
JPEG는 이미지를 8x8 픽셀 블록으로 분할 한 다음 
고빈도 공간 데이터를 버리는 식으로 이점을 이용합니다.
예를 들어, 감독님의 개 사진 -누들이를 데려와봅시다.
매우 귀엽죠!
8x8 픽셀 부분을 살펴 보겠습니다.
거의 모든 이웃한 픽셀이 다르기 때문에 
손실이 적은 기술로 압축하기가 힘듭니다.
이는 많은 작업이 필요하기 때문입니다.
많은 작은 세부 사항들이 있습니다.
그러나 인간의 인식은 모든 세부사항을
기록하진 않습니다.
그래서, 우리는 그 세부 사항을 많이 버려서 
단순한 조각으로 이와 같이 대체합니다.
이것은 시각적 본질을 유지하지만,
데이터의 10 % 만 사용합니다.
우리는 이미지의 모든 부분에 이것을 적용하여 
이와 같은 결과를 얻을 수 있습니다.

English: 
You can still see it’s a dog, but the image
is rougher.
So, that’s an extreme example, going from
a slightly compressed JPEG to a highly compressed
one, one-eighth the original file size.
Often, you can get away with a quality somewhere
in between, and perceptually, it’s basically
the same as the original.
The one on the left is one-third the file
size of the one on the right.
That’s a big savings for essentially the
same thing.
Can you tell the difference between the two?
Probably not, but I should mention that video
compression plays a role in that too, since
I’m literally being compressed in a video
right now.
Videos are really just long sequences of images,
so a lot of what I said about them applies
here too.
But videos can do some extra clever stuff,
because between frames, a lot of pixels are
going to be the same.
Like this whole background behind me!
This is called temporal redundancy.
We don’t need to re-transmit those pixels
every frame of the video.
We can just copy patches of data forward.
When there are small pixel differences, like
the readout on this frequency generator behind
me, most video formats send data that encodes
just the difference between patches, which
is more efficient than re-transmitting all
the pixels afresh, again taking advantage

Korean: 
이미지가 거칠지만 여전히 개를 볼 수 있습니다.
그래서 이것은 약간 압축 된 JPEG에서 원본 파일 크기의 1/8로 압축 된 극단적인 예입니다.
그래서 이것은 약간 압축 된 JPEG에서 원본 파일 크기의 1/8로 압축 된 극단적인 예입니다.
종종 우리는 그 중간 어딘가에서 
질적으로 벗어날 수 있습니다.
그리고 지각적으로는 기본적인 원래의 것과 동일합니다.
왼쪽에 있는 것은 오른쪽의 파일 크기의 3 분의 1입니다.
본질적으로 같은 것으로 치면 큰 절약입니다.
여러분은 이 둘의 차이점을 말할 수 있습니까?
아마 그렇지는 않지만, 비디오 압축에서도
같은 역할을 한다는 것을 언급해야 합니다.
이 동영상은 지금 문자 그대로 비디오로 압축되어있죠.
비디오는 정말 단지 긴 연속의 이미지로, 제가 이미지 
압축에 대해 말한 많은 것들이 여기에도 적용됩니다.
비디오는 정말 단지 긴 연속의 이미지로, 제가 이미지 
압축에 대해 말한 많은 것들이 여기에도 적용됩니다.
그러나 비디오는 프레임 사이에서 많은 픽셀이 같을 수 
있기 때문에 약간의 영리한 것들을 할 수 있습니다.
그러나 비디오는 프레임 사이에서 많은 픽셀이 같을 수 있기 때문에 약간의 영리한 것들을 할 수 있습니다.
제 뒤에 있는 이 모든 배경처럼요!
이를 시간적 중복(temporal redundancy)이라고 합니다.
비디오의 모든 프레임마다 픽셀을 
다시 전송할 필요가 없습니다.
우리는 단지 앞선 데이터 조각을 복사 할 수 있습니다.
제 뒤에 있는 이 주파수 생성기에 대한
 판독 값처럼 작은 픽셀 차이가 있을 때,
대부분의 비디오 포맷은 패치 간의 차이만 
인코딩하는 데이터를 전송합니다.
모든 픽셀을 다시 전송하는 것보다 효율적입니다.

Chinese: 
你依然可以辩认出是一只狗，但更粗糙一些
以上例子比较极端，进行了高度压缩，只有原始大小的八分之一
通常你可以取得一个平衡，看起来差不多，同时减少大小
省了很多空间
你能看出两张图的区别吗？
可能看不出，我想提一下视频压缩也有一定影响
毕竟现在你就在看视频啊
视频就只是一长串图像，所以图片的很多方面也适用于视频
视频就只是一长串图像，所以图片的很多方面也适用于视频
但视频可以做一些额外小技巧，因为帧和帧之间很多像素是一样的
比如我背后的背景！
这叫"时间冗余"
我们不用每一帧都重复存储这些像素
我们可以存改动了的部分
当帧和帧差异很小时，比如后面这个频率发生器
大多数视频格式 只存变化的部分

English: 
of inter-frame similarity.
The fanciest video compression formats go
one step further.
They find patches that are similar between
frames, and not only copy them forward, with
or without differences, but also can apply
simple effects to them, like a shift or rotation.
They can also lighten or darken a patch between
frames.
So, if I move my hand side to side like this
the video compressor will identify the similarity,
capture my hand in one or more patches, then
just move these patches around between frames.
You’re actually seeing my hand from the
past… kinda freaky, but it uses a lot less data.
MPEG-4 videos, a common standard, are often
20 to 200 times smaller than the original,
uncompressed file.
However, encoding frames as translations and
rotations of patches from previous frames
can go horribly wrong when you compress too
heavily, and there isn’t enough space to
update pixel data inside of the patches.
The video player will forge ahead, applying
the right motions, even if the patch data
is wrong.
And this leads to some hilarious and trippy
effects, which I’m sure you’ve seen.
Overall, it’s extremely useful to have compression techniques for all the types of data I discussed today.

Korean: 
다시 이것은 프레임 간 유사성의 이점을 이용합니다.
가장 멋진 비디오 압축 포맷은 한 걸음 더 나아갑니다.
그들은 프레임 사이의 유사한 패치를 발견하고, 
차이 유무에 관계없이 앞으로 복사 할뿐만 아니라
교대 또는 회전과 같은 
단순한 효과를 적용할 수도 있습니다.
또한 프레임 사이의 패치를 밝게 하거나 
어둡게 할 수도 있습니다.
그래서, 제 손을 옆으로 움직이면
비디오 압축기는 유사성을 식별할 것이고,
하나 이상의 패치로 제 손을 잡은 다음
이 패치를 프레임 사이로 이동합니다.
여러분은 실제로 과거에서 온 제 손을 보고있습니다.
좀 이상하지만 데이터를 훨씬 적게 사용합니다.
일반적인 표준인 MPEG-4 비디오는 종종
원래의 압축되지 않은 파일보다 20~200 배 작습니다.
일반적인 표준인 MPEG-4 비디오는 종종
원래의 압축되지 않은 파일보다 20~200 배 작습니다.
그러나 이전 프레임들로 부터 
패치의 번역이나 회전을 인코딩하는 것은
심하게 압축하면 끔찍하게 잘못 될 수 있으며 패치 내부에 픽셀 데이터를 업데이트 할 공간이 충분하지 않습니다.
심하게 압축하면 끔찍하게 잘못 될 수 있으며 패치 내부에 픽셀 데이터를 업데이트 할 공간이 충분하지 않습니다.
비디오 플레이어는 패치 데이터가 틀린 경우에도 올바른 동작을 적용하여 앞을 향해 진행할 것입니다.
비디오 플레이어는 패치 데이터가 틀린 경우에도 올바른 동작을 적용하여 앞을 향해 진행할 것입니다.
그리고 이 들썩 들썩하고 trippy 한 효과를 여러분이 한 번쯤 봤을 것이라 확신합니다.
전반적으로 오늘 논의한 모든 유형의 데이터에 대해 압축 기술을 사용하는 것은 매우 유용합니다.

Chinese: 
这比存所有像素更有效率，利用了帧之间的相似性
花哨一些的视频压缩格式 在这方面更进一步
他们识别出帧之间相似的补丁，然后施加简单效果，比如移动和旋转
或者变亮以及变暗
所以如果我这样摆手，视频压缩器会识别到相似性
用一个或多个补丁代表我的手，然后帧之间直接移动这些补丁
所以你看的不是实时的手
 想起来好像有点可怕 但是用的数据少得多
MPEG-4 是一种常见的标准，通常比原文件小20至200倍
但是，将图片变成补丁 然后通过移动和旋转更新画面
当压缩太严重时可能会出错，而且没有足够的空间更新补丁内的像素
即使补丁数据是错的，视频播放器也会照样播放
这会导致一些怪异又搞笑的结果，你以前肯定见过
总的来说，压缩对于今天讨论的所有数据类型都非常有用

English: 
(I guess our imperfect vision and hearing
are “useful,” too.)
And it’s important to know about compression
because it allows users to store pictures,
music, and videos in efficient ways.
Without it, streaming your favorite Carpool
Karaoke videos on YouTube would be nearly
impossible, due to bandwidth and the economics
of transmitting that volume of data for free.
And now when your Skype calls sound like they’re
being taken over by demons, you’ll know
what’s really going on.
I’ll see you next week.
Hey guys, this week’s episode was brought
to you by CuriosityStream which is a streaming
service full of documentaries and non­fiction
titles from some really great filmmakers,
including exclusive originals.
Now I normally give computer science recommendations since this is Crash Course Computer Science and all
and Curiosity Stream has a ton of
great ones.  But you absolutely have to check
out “Miniverse” starring everyone’s
favorite space-station-singing-Canadian astronaut,
Chris Hadfield, as he takes a roadtrip across
the Solar System scaled down the the size
of the United States.
It’s basically 50 minutes of Chris and his
passengers geeking out about our amazing planetary

Korean: 
(저는 우리의 불완전한 시력과 청각 또한
"유용"하다고 생각합니다.)
사용자가 사진과 음악, 비디오을 효율적으로 저장할 수 있기 때문에, 압축에 대해 아는 것은 중요합니다.
사용자가 사진과 음악, 비디오을 효율적으로 저장할 수 있기 때문에, 압축에 대해 아는 것은 중요합니다.
그것 없이는, 좋아하는 카풀 노래방을 스트리밍을 유튜브에서 스트리밍하는 것이 거의 불가능합니다.
대역폭과 무료로 대량의 데이터를 전송하는 경제성으로 인해서 할 수 있죠.
이제 Skype에서 악마에 의해 점령 당한것 같은 소리가 들리면 정말 무슨 일이 생긴걸 거에요.
이제 Skype에서 악마에 의해 점령 당한것 같은 소리가 들리면 정말 무슨 일이 생긴걸 거에요.
다음 주에 만나요.
 
 
 
 
 
 
 
 
 

Chinese: 
人类不完美的视觉和听觉  这样看来也算"有用"
了解压缩是非常重要的
因为它让用户可以高效存储图片，音乐和视频
如果没有压缩，在 YouTube 上看喜欢的卡拉 OK 视频几乎不可能
原因是带宽大小  以及供应商不愿意免费传输那种量级的数据
现在你知道为什么打 Skype 电话 
 有时听起来像在和魔鬼打电话
我们下周见

Korean: 
 
 
 

English: 
neighbors and you don’t want to miss it.
So get unlimited access today, and your first two months are free if you sign up at curiositystream.com/crashcourse
and use the promo code "crashcourse" during the sign up process.
