
English: 
In the last video, we talked about the beginnings of JPEG, so
what do we do at the beginning of the process to start preparing for the discrete cosine transform,
which is really how the lossy compression happens within a JPEG.
We start with our RGB image, we convert that into YCbCr color space,
which separates illuminance and chrominance.
And then we can down sample the chrominance if we want,
and we can kind of get away with quite a bit of down sampling there that people won't be able to see.
The next step is the discrete cosine transform.
Before we start talking about how images are compressed using the discrete cosine transform,
it's much better just to start with a simple example of what a discrete cosine transform is and how it works.
A cosine function, for anyone who isn't familiar with it, is a function that goes between 1 and -1.
What we tend to do on this x-axis is go from 0, to pi, to 2*pi.
This is in radians, those of you familiar with degrees, this is 180° at pi, and 360° at 2*pi.

Turkish: 
Son videoda JPEG'in başlangıcı hakkında konuştuk.
Kesikli kosinüs dönüşümüne hazırlanmak için sürecin başında ne yaparız?
bu gerçekten JPEG formatındaki kayıplı sıkıştırma işleminin nasıl gerçekleştiğini gösterir.
RGB imajımızla başlıyoruz, bunu YCbCr renk uzayına dönüştürüyoruz,
aydınlık ve renkliliği birbirinden ayırır.
Ve sonra istersen kromorjiyi örnekleyebiliriz.
ve orada insanların göremeyeceği bir miktar aşağı örnekleme ile kurtulabiliriz.
Bir sonraki adım, ayrık kosinüs dönüşümüdür.
Ayrık kosinüs dönüşümünü kullanarak görüntülerin nasıl sıkıştırıldığı hakkında konuşmaya başlamadan önce,
ayrık bir kosinüs dönüşümünün ne olduğuna ve nasıl çalıştığına basit bir örnekle başlamak çok daha iyidir.
Bir kosinüs işlevi, aşina olmayan herkes için 1 ile -1 arasında değişen bir işlevdir.
Bu x ekseni üzerinde yapmaya meyilli olduğumuz şey 0, pi, 2 * pi.
Bu, radyan cinsindendir, sizler derecelere aşina olanlarınız, bu pi'de 180 ° ve 2 * pi'de 360 ​​° 'dir.

Thai: 
ในวิดีโอที่ผ่านมาเราได้พูดเกี่ยวกับจุดเริ่มต้นของ JPEG ดังนั้น
อะไรที่เราเริ่มต้นในกระบวนการเตรียมการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่อง (discrete cosine transform, DCT)
ซึ่งจริงๆ แล้ว คือวิธีการบีบอัดแบบสูญเสียที่เกิดขึ้นภายใน JPEG
เราเริ่มต้นด้วยภาพ RGB ของเรา เราแปลงเข้าสู่พื้นที่สี YCbCr,
ซึ่งแยกความสว่าง(illuminance) และ ความเข้มของสี(chrominance)
และจากนั้นเราสุ่มตัวอย่างลดจำนวน chrominance ลง ถ้าเราต้องการ
และเราได้ตัวอย่างลดจำนวนลง ที่นั่น ที่ผู้คนจะไม่เห็น
ขั้นตอนต่อไปคือการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่อง (discrete cosine transform, DCT)
ก่อนที่เราจะเริ่ม มาพูดถึงการบีบอัดภาพโดยการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่องทำอย่างไร
เริ่มต้นด้วยตัวอย่างง่ายๆ ของการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่อง เป็นยังไงและทำงานยังไง
ฟังก์ชันโคไซน์(cosine function) สำหรับคนที่ไม่คุ้นเคย ฟังก์ชันจะมีค่าอยู่ระหว่าง 1 และ -1
สิ่งที่เรามักจะทำที่แกน x เริ่มจาก 0 ไป pi ไป 2 * pi
นี้อยู่ในเรเดียนสำหรับคนคุ้นเคยกับองศา นี้เป็น 180° ที่ pi และ 360° ที่  2*pi

Turkish: 
Ve kosinüs dalgası böyle gözüküyor. Yani 0'da 1, ve sonra pi'de -1'e düşüyor,
Ve sonra 2 * pi'de bire geri döner.
Üstelik, yükseldikçe bu aşağı yukarı hareket ediyor.
Ayrık kosinüs dönüşümünün çalışma şekli bir miktar veri alıyor, bu durumda bizim görüntü verilerimiz,
ve onu bu dalgaların çoğunun toplamı olarak göstermeye çalışıyoruz.
Onları çizmeye başlayana kadar bu pek mantıklı değil.
Diyelim ki burada standart kosinüs dalgası olan bu kosinüs dalgasını aldık.
ve sonra daha yüksek bir frekans olan başka bir kosinüs dalgası elde ettik.
Böylece, biraz daha hızlı inin, biraz daha hızlı inin
biraz daha hızlı aşağı in ve bu şekilde biraz daha hızlı yukarı çık.
Şimdi iki dalgamız var. Onları bir araya getirirsek, elde ettiğimiz şey başka bir dalganın
Bu ikisinin bir birleşimidir.
Yani, bu kesikli çizgide buraya çizersek, bu iki dalganın yarısını görebiliriz.
bu böyle, ve sonra böyle.
Ve bu ikisini bir araya getirerek daha karmaşık şekilli bir dalga yarattığımızı görebilirsiniz.

English: 
And the cosine wave looks like this. So it's 1 at 0, and then at pi, it goes down to -1,
And then it goes back up to one at 2*pi.
And it just goes on and on like this up and down as you increase.
The way that the discrete cosine transform works, is we take some data, in this case our image data,
and we try to represent it as the sum of lots of these waves.
Which doesn't make a lot of sense until you start drawing them out.
So let's imagine that we've got this cosine wave here, which is our standard frequency cosine wave,
and then we've got another cosine wave, which is a much higher frequency.
So that would be, come down a bit faster, go up a bit faster,
come down a bit faster, and go up a bit faster like this.
So  now we have two waves. If we add them together, what we get is a sort of another wave
which is a combination of the two.
So if we draw it in here in this dashed line, we can see halfway between these two waves
is like this, and then kind of like this.
And you can see that we've created a more complex shaped wave by adding these two together.

Thai: 
และคลื่นโคไซน์(cosine wave) มีลักษณะเช่นนี้ ดังนั้น 1 ที่  0 แล้ว pi ลงไปที่ -1
และจากนั้นก็กลับขึ้นไป 1 ที่ 2*pi
และมันก็ไปเช่นนี้เรื่อยๆ ขึ้นและลง ในขณะที่คุณเพิ่มไป
การเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่อง คือ เราเอาข้อมูลบางอย่าง กรณีนี้ ข้อมูลภาพของเรา
และเราพยายามที่จะแสดงมันเป็นผลสรุปจำนวนมากมากมายของรูปคลื่นเหล่านี้
ซึ่งไม่ได้รู้สึกมีเหตุผลเลย จนกว่าคุณจะเริ่มวาดภาพพวกมันออกมา
ดังนั้น มาจินตนาการว่าเราได้มีคลื่นโคไซน์นี้ที่นี่ ซึ่งเป็นคลื่นความถี่โคไซน์มาตรฐานของเรา
และแล้ว เราได้มีคลื่นโคไซน์อื่น ซึ่งเป็นความถี่ที่สูงขึ้นมาก
ดังนั้นที่จะเป็น ลงมาเร็วขึ้น ขึ้นไปเร็วขึ้น
ลงมาเร็วขึ้น และ ขึ้นไปเร็วขึ้น เช่นนี้
ดังนั้นตอนนี้เรามีสองคลื่น 
ถ้าเราบวกมันรวมกัน เราได้รับอีกคลื่น
ซึ่งเป็นการรวมกันของทั้งสอง
ถ้าเราวาดไว้ในที่นี่ในเส้นประนี้ เราสามารถมองเห็นกึ่งกลางระหว่างทั้งสองคลื่น
เป็นเช่นนี้ แล้วเป็นเช่นนี้
และคุณจะเห็นว่าเราได้สร้างคลื่นที่มีรูปทรงที่ซับซ้อนมากขึ้นโดยการบวกเข้าด้วยกัน

Thai: 
ตอนนี้ ที่เราเพิ่มจำนวนของโคไซน์,
เราสามารถเพิ่มจำนวนของรูปทรงที่เป็นไปได้ของคลื่นที่เราสามารถผลิต
ในทางปฏิบัติ ถ้าเราบวกทั้งสองคลื่นด้วยกัน เราจะได้คลื่นที่สูงกว่าคลื่นตั้งต้น
ดังนั้น ที่นี่ ก็จะเป็นสอง ไม่ใช่หนึ่ง
ความจริงที่เราทำคือ เราให้น้ำหนักแก่ทั้งสองอันนี้ และเพื่อให้เราได้เอาค่าเฉลี่ย
ดังนั้นทั้งสองอันนี้ถูกถ่วงน้ำหนัก ในกรณีนี้ มันเป็นครึ่งหนึ่ง และดังนั้น นี้เป็นเฉลี่ยหลักของทั้งสอง
นอกจากนี้ เรายังสามารถเปลี่ยนน้ำหนักของสิ่งเหล่านี้
เราสามารถมีสิ่งนี้กับความถี่ที่สูงขึ้นส่วนใหญ่ แต่มีความถี่ต่ำเพียงเล็กน้อย
และเราต้องการได้คลื่นที่มีรูปร่างที่แตกต่างกันออกมาในตอนท้าย
ดังนั้นแต่ละคลื่นหมายถึงเป็นส่วนประกอบเล็ก ๆ ของผลผลิต
และความถี่ของคลื่นที่สูงมากเท่าใด เราจัดการกับส่วนความถี่ของสัญญาณที่มากขึ้นเท่านั้น
ดังนั้น ถ้าเราดูที่จัมเปอร์ของผมที่นี่
มีการเปลี่ยนแปลงความถี่ต่ำจากโต๊ะสีดำนี้สู่ความสว่างของจัมเปอร์ของผม ไปสู่โต๊ะมืดอีกครั้ง
และมีการเปลี่ยนแปลงมากที่ความถี่สูงในจัมเปอร์ของผม ที่ที่เราจะขึ้นและลงภายในการถักทอขนสัตว์
และมันก็เป็นหลักการชนิดเดียวกัน เรากำลังถกเถียงกันใน JPEG ที่เราสามารถกำจัดของบางส่วนของสัญญาณความถี่สูง

Turkish: 
Şimdi, kosinüs sayısını arttırdıkça,
üretebileceğimiz olası dalga şekillerinin sayısını artırabiliriz
Uygulamada, bu iki dalgayı birlikte ekleseydik, girişten çok daha uzun olan bir dalgamız olurdu.
Yani burada iki olur, bir değil.
Öyleyse aslında yaptığımız her ikisini de ağırlıklandırıyoruz ve bu yüzden ortalama alıyoruz
Yani her ikisi de ağırlıklı, bu durumda bu bir buçuk, ve bu aslında her ikisinin de ortalamasıdır.
Bunların ağırlığını da değiştirebiliriz.
Böylece çoğunlukla bu daha yüksek frekanslı olana sahip olabiliriz, ancak bu düşük frekanslı olanın sadece bir kısmı.
Ve sonunda farklı bir şekilli dalga çıkıyor.
Böylece her dalga çıktının küçük bir bileşenini temsil eder.
Ve dalganın frekansı yükseldikçe, uğraştığımız sinyalin frekans kısmı da artar.
Yani burada atlamacıma bakarsak,
Bu siyah masadan parlaklığa, atlayıcımın parlaklığına, karanlık masaya tekrar düşük bir frekans değişimi var.
Ve yün örgümün içinde yukarı aşağı indiğimiz jumper'ımda çok daha yüksek frekans değişiklikleri var.
Ve bu aynı ilkedir. JPEG’de, bazı yüksek frekans sinyallerinden kurtulabileceğimizi savunuyoruz.

English: 
Now, as we increase the number of cosines,
we can increase the number of possible shapes of waves that we can produce
In practice, if we added these two waves together, we'd have a wave that was much taller than the input
So here, it would be two, not one.
So what in fact we do is we weight both of these, and so we take an average
So both of these are weighted, in this case it's a half, and so this is essentially the average of both of them.
We can also change the weighting of these.
So we can have it with mostly this higher frequency one, but only a little bit of this low frequency one.
And we'd have a different shaped wave coming out at the end.
So each wave represents a small constituent of the output.
And the higher the frequency of the wave, the higher   the frequency part of the signal we're dealing with.
So if we look at my jumper here,
there's a low frequency change from this black table to a brightness, bright of my jumper, to dark table again.
And there's much higher frequency changes on my jumper, where we go up and down within the woolen knit.
And it's the same kind of principle. We're arguing in JPEG that we can get rid of some of the higher frequency signals

Thai: 
และใจความสำคัญทั่วไปของภาพจะยังคงมีอยู่
ดังนั้น นี้เป็นเพียงมิติเดียวของการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่องซึ่งมีเพียงสองส่วนประกอบ
วิธีการที่คณิตศาสตร์ทำงาน  คือ ถ้าเรามีสัญญาณที่ยาว 8
แล้วเราพบว่าเราสามารถแสดงแทนมันโดยใช้ 8 คลื่นโคไซน์ของความถี่ที่แตกต่างกัน
และสำหรับภาพก็เป็นความจริงเหมือนกัน สิ่งที่เราทำใน JPEG คือเราแยกภาพแต่ละภาพเป็น  8*8 กลุ่มพิกเซล
และแต่ละกลุ่มพิกเซลเหล่านั้นจะถูกเข้ารหัสแยกต่างหากกับการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่อง
แต่ละ 8 *8 กลุ่มพิกเซล เป็น 64 ดังนั้น 8*8 คลื่นโคไซน์
นี้แสดงให้เห็น 64 คลื่นโคไซน์พื้นฐานที่ผลิตภาพใด ๆ ที่เราอาจจะชอบทำใน 8*8 พิกเซล
ส่วนหนึ่งนี้ที่นี่ คือแบนราบเป็นหลัก
ดังนั้นหากคุณมีเพียงส่วนหนึ่งนี้ และนั่นคือทั้งหมดที่มีส่วนผลิตผลลัพธ์สุดท้าย ภาพจะมีลักษณะเช่นนั้น
หากคุณมีเพียงหนึ่งอันนี้ ภาพของคุณจะสีขาว และแล้วมันจะจุ่มลงไป และสีดำ

Turkish: 
ve görüntünün genel özü hala orada olacak.
Yani bu sadece iki bileşenli tek boyutlu ayrık bir kosinüs dönüşümüdür.
Matematiğin çalışma şekli, 8 uzunluğunda bir sinyalimiz varsa,
Sonra onu farklı frekanslarda 8 kosinüs dalgası kullanarak temsil edebileceğimizi tespit ettik.
Aynı şey bir görüntü için de geçerlidir. JPEG’de yaptığımız her görüntüyü 8'e 8 piksel gruba bölmektir.
Ve bu piksel gruplarının her biri ayrı ayrı kosinüs dönüşümü ile ayrı ayrı kodlanır.
Bu 8'e 8 piksel grubunun her biri 64, 8'e 8 kosinüs dalgalarıyla tam olarak çoğaltılabilir.
Bu aslında 8 x 8 piksel olarak yapmak isteyebileceğimiz herhangi bir görüntüyü üreten 64 baz kosinüs dalgalarını gösteriyor.
Buradaki bu özel bileşen esasen düzdür.
Öyleyse, yalnızca bu bileşene sahipseniz ve son çıktınıza katkıda bulunanların hepsi buysa, imajınız böyle görünürdü.
Sadece bir tane olsaydı, görüntün beyazlaşırdı, sonra da düşüp siyaha dönecekti.

English: 
and the general gist of the image will still be there.
So this is just a one-dimensional discrete cosine transform with only two components.
The way that the mathematics works, is if we have a signal that 8 long,
Then we find that we can represent it using 8 cosine waves of different frequencies.
And the same is true of an image. What we do in JPEG is we split each image into 8 by 8 pixel groups.
And each of those pixel groups is separately encoded with its own discrete cosine transform.
Each of those 8 by 8 pixel groups can be exactly replicated by 64, so 8 by 8 cosine waves.
This actually shows the 64 base cosine waves that produce any image we might like to do in 8 by 8 pixels.
This particular component here, is essentially flat.
So if you had only this component, and that was all the contributed to your final output, your image would look like that.
If you had only this one, your image would go white, and then it would dip down and go black.

Thai: 
และคุณจะเห็นว่าความถี่ที่เพิ่มขึ้นในขณะที่เราไปตามนี่
นี้เป็นไปในทิศทาง x และ ในทิศทาง y ลงที่นี่ความถี่เพิ่มขึ้น
ดังนั้นนี่คือคลื่นโคไซน์ และนี้ ลงที่นี่เป็นคลื่นโคไซน์ความถี่สูง
ที่เราเพิ่มความถี่ในทั้งสองทิศทาง เราจะได้รับรูปแบบกระดานหมากรุก
และนี่คือข้อมูลที่มีความถี่สูงที่เรากำลังเข้ารหัสในบริเวณเหล่านี้
ดังนั้นเหล่านี้เป็น 64 ฟังก์ชั่นโคไซน์  ที่สามารถรวมกันเพื่อให้เกิดภาพ 8*8 ใด ๆ
นี้เป็นเพียงหนึ่งช่อง(channel) จึงขอพูดแค่ illuminance หรือแค่ Cr
ตัวอย่าง ถ้าเรามีครึ่งหนึ่งของคลื่นนี้และครึ่งหนึ่งของคลื่นนี้
แล้วสิ่งที่คุณจะได้รับเป็นภาพสี่เหลี่ยมที่มีความสว่างกว่าทางด้านซ้าย
กับสว่างนิดหน่อยทางด้านขวามือ เพราะคุณได้รวมทั้งสอง
เพื่อสร้างภาพ  8* 8  ใด ๆ สิ่งที่เราต้องทำคือให้มีการรวมกันของสิ่งเหล่านี้ในเวลาเดียวกัน
แต่ละอันเหล่านี้ถูกถ่วงน้ำหนัก ขึ้นอยู่กับสิ่งที่เรียกว่าค่าสัมประสิทธิ์(coefficient)
ซึ่งเป็นตัวเลขที่แสดงการมีส่วนร่วมของแต่ละบล็อกเหล่านี้สู่โดยรวม

English: 
And you can see that the frequency is increasing as we go along here.
This is in the x direction, and in the y direction, the frequency is increasing down here.
So this is a cosine wave, and this is a higher frequency cosine wave down here.
As we increase the frequency in both directions, we get a kind of checkerboard pattern.
And this is a high frequency information that we're encoding in these regions.
So these are the 64 cosines functions that can be combined to make any 8 by 8 image.
This is only in one channel, so let's say just illuminance or just Cr.
For example, if we had half of this wave and half of this wave,
then what you get is a square image that is generally brighter on the left
with a little bit of bright on the right hand side, because you've summed the two together.
To create any kind of 8 by 8 image, what we need to do is have a combination of all of these at the same time.
Each of these is weighted based on something called a coefficient
Which is a number representing the contribution of each of these individual blocks to the whole.

Turkish: 
Ve burada ilerledikçe frekansın arttığını görebilirsiniz.
Bu, x yönündedir ve y yönünde, frekans burada azalmaktadır.
Yani bu bir kosinüs dalgası ve bu da aşağıda daha yüksek frekanslı bir kosinüs dalgası.
Her iki yönde de frekansı artırdıkça, bir çeşit dama tahtası deseni elde ediyoruz.
Ve bu, bu bölgelerde kodladığımız yüksek frekanslı bir bilgidir.
Yani bunlar 8'e 8 görüntüde bir araya getirilebilecek 64 kosinüs işlevidir.
Bu sadece bir kanalda, yani sadece aydınlık veya sadece Cr diyelim.
Örneğin, bu dalganın yarısını ve bu dalganın yarısını olsaydı,
o zaman elde ettiğiniz genellikle solda daha parlak olan kare bir görüntüdür.
Sağ tarafta biraz parlak, çünkü ikisini birlikte topladınız.
Herhangi bir tür 8'e 8 görüntü oluşturmak için, yapmamız gereken aynı anda bunların hepsinin bir kombinasyonudur.
Bunların her biri katsayı adı verilen bir şeye dayanarak ağırlıklandırılır.
Bu, bireysel blokların her birinin bütüne katkısını temsil eden bir sayıdır.

Thai: 
ตัวอย่าง ถ้าการมีส่วนร่วมของอันนี้เป็นศูนย์
ดังนั้นไม่มีส่วนของของโคไซน์นี้ในภาพ 8*8 ที่เรากำลังมองอยู่
ถ้ามัน 0.1, และอันหนึ่ง 10 แล้ว อันนี้มีผลกระทบน้อยลงร้อยเท่ากว่าอีกอันนี้ในภาพออกของคุณ
และเราทำอะไรกับการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่อง คือคำนวณค่าสัมประสิทธิ์สำหรับคลื่นเหล่านี้
ขอไม่พูดถึงการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่องสักนาที
ถ้าเราแค่ดูภาพตัวอย่าง ดังนั้นนี่คือส่วนตัดขนาดเล็กของภาพดอกไม้ของเรา
นี่คือ องค์ประกอบ y มันเป็นเพียงค่า 0-255
 ว่าพิกเซลมีความเข้ม(intense) เป็นอย่างไร
ดังนั้น คุณเห็นมั้ย นี้ไม่ได้เป็นชิ้นที่น่าสนใจอย่างมากของภาพ มันเป็นสีเทา
กับ ลงมาที่นี่ ในบริเวณที่สดใสนิดหน่อย
สิ่งที่เราต้องการและพยายามทำคือการคำนวณการมีส่วนร่วมของแต่ละคลื่นโคไซน์สู่ภาพนี้
ซึ่งโคไซน์บิตไหนที่ทำเราต้องรวมกันเพื่อสร้างภาพที่มีลักษณะเช่นนี้
เริ่มต้นด้วยสิ่งที่เราต้องทำคือศูนย์กลางทั้งหมดของค่าเหล่านี้ ซึ่งศูนย์กลางปัจจุบันอยู่ที่ 128,
เพราะพวกมันมาจาก 0-255,

Turkish: 
Mesela, eğer bunun katkısı sıfırsa,
Öyleyse baktığımız 8'e 8 görüntüde bu kosinüsün bir parçası yok.
0,1 ise ve bunun 10’u ise, bunun çıktı resminiz üzerinde bundan yüz kat daha az etkisi olur.
Ayrık kosinüs dönüşümü ile yaptığımız şey, temel olarak bu dalgalar için katsayıları hesaplamaktır.
Bu ayrık kosinüs dönüşümünü bir dakika için bir kenara koymak,
Örnek bir resme bakarsak. Yani bu bizim çiçek imajımızın küçük bir mahsul bölümü.
Bu y bileşenidir, yani 0-255 arasındaki her değerdir, piksel ne kadar yoğundur.
Yani, bunun çok ilginç bir görüntü olmadığını görüyorsunuz.
burada biraz daha parlak bölge var.
Denemek ve yapmak istediğimiz, her kosinüs dalgalarımızın bu imaja katkılarını hesaplamak.
Aynen böyle görünen bir görüntü oluşturmak için hangi kosinüs parçalarını bir araya getirmemiz gerekiyor?
Öyleyse, yapmamız gereken, şu anda 128'de ortalanmış olan tüm bu değerleri ortalamak,
çünkü onlar 0-255

English: 
So for example, if the contribution of this one is zero,
Then there's no part of this cosine in the 8 by 8 image that we're looking at.
If it's 0.1, and this one's 10, then this has a hundred-fold less impact on your output image than this one.
And what we do with the discrete cosine transform, is basically calculate the coefficients for these waves.
Putting this discrete cosine transform aside for a minute,
If we just look at an example image. So this is a small crop section of our flower image.
This is the y-component, so it's just every value from 0-255, how intense is the pixel.
So, you can see this is not a hugely interesting piece of image, it's kind of grey
with a little bit of brighter region down here.
What we want to try and do is calculate the contributions of each of our cosine waves to this image.
Which bits of cosine do we need to add together to create an image that looks exactly like this.
So to start with, what we need to do is center all of these values, which are currently centered at 128,
because they're from 0-255,

Turkish: 
Unutmayın ki sıfır civarında değerler ortalarız, çünkü hatırlayın ki kosinüs dalgası 1'den 0'a kadar değil, 1'den -1'e kadar.
Böylece her değerden 128 alıyoruz ve kaydırılan bloğumuzu böyle alıyoruz.
Yani bu tam olarak aynı görüntü, ama bu sefer şimdi sıfıra odaklanmış.
Ve katsayılarımızı hesaplamak için ayrık kosinüs dönüşümünde bunu nasıl kullanabiliriz.
Uyguladığımız - aslında her zaman JPEG biçiminde kullanılan kosinüs dönüşüm # 2.
Ve bu, kosinüs dalgalarımızın her birinin katkısını hesaplamaktır.
Birlikte eklendiğinde, tam olarak bu görüntüyü yaratacaktır.
Bu bloklardan hangisini, bu katsayı ile çarptığımızda, her birinin ne kadarını kullandığımızı bize söylemek,
Bu tam görüntüyü oluşturmak için birlikte ekleyeceğiz.
Bu yüzden, biraz ondan, biraz bundan, belki de bunlardan hiçbiri ısırmamış olabilir. Kesinlikle.
Ve böylece tüm bunların görüntü üzerinde bir etkisi olacağını göreceksiniz.
Görüntü tamamen düz değilse hemen hemen kesin.
JPEG ile ilgili güzel şeylerden biri
bu düşük frekanslı olanlar, yüksek frekanslı verilere göre çok daha büyük bir etkiye sahip olacaktır.
Ve ayrıca onları daha iyi görüyoruz.
Demek JPEG'i böyle sıkıştırıyoruz.

Thai: 
ทำจุดศูนย์กลางด้วยค่ารอบ 0 เพราะคลื่นโคไซน์เริ่มจาก 1 ถึง -1 ไม่ใช่ 1 ถึง 0
ดังนั้นเราจึงหักออก128 จากทุกค่าและเราได้ขยับตัวบล็อกของเราเช่นนี้
ดังนั้นนี่คือภาพเดียวกัน แต่เวลานี้ในขณะนี้ศูนย์กลางราว 0
และการเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่องใช้คำนวณค่าสัมประสิทธิ์ของเราอย่างไร
เราใช้ - จริงๆ มันคือ discrete cosine transform #2 (DCT II) 
คืออันที่ใช้เสมอในรูปแบบ JPEG
และสิ่งที่มันทำ คือการคำนวณการมีส่วนร่วมของแต่ละคลื่นโคไซน์ของเรา
ว่าเมื่อรวมเข้าด้วยกันจะสร้างภาพนี้แป๊ะ
บล็อกเหล่านี้อันไหน เมื่อไหร่คูณด้วยค่าสัมประสิทธิ์ ที่จะบอกเราแต่ละอันเราใช้เท่าใด
จะรวมกันเพื่อสร้างภาพนี้แป๊ะแน่นอน
ดังนั้นจึงอาจจะมีนี่นิด นี้หน่อย และนี่มากว่าหน่อย และนี่ไม่มีเลย อย่างแป๊ะแน่นอน
และคุณพบว่าสิ่งเหล่านี้จะมีผลกระทบบางอย่างเกี่ยวกับภาพ
มันเกือบแน่นอน ถ้ารูปราบแบนอย่างสิ้นเชิง
หนึ่งในข้อดีเกี่ยวกับการเป็น JPEG
ความถี่ต่ำเหล่านี้จะมีผลมากกว่าข้อมูลที่มีความถี่สูง
และเรายังมองเห็นพวกมันได้ดีกว่า
นั่นคือวิธีการที่เราบีบอัด JPEG

English: 
We center with values around zero, because remember cosine wave goes from 1 to -1, not 1 to 0.
So we take away 128 off every value, and we get our shifted block like this.
So this is the exact same image, but this time now centered around zero.
And how we can use this in the discrete cosine transform to calculate our coefficients.
We apply the -- it's actually discrete cosine transform #2, which is the one that's always used in JPEG.
And what that does, is calculate the contribution of each of our cosines waves
that when added together, will create this image exactly.
Which of these blocks, when multiplied by that coefficient, to tell us how much of each one we use,
will add together to create this exact image.
So it might be a bit of that, a bit of this, and bit a that, a lot of that, and none of this one. Exactly.
And so you'll find that all of these will have some impact on the image .
It's almost certain, unless the image is completely flat.
One of the nice things about JPEG is
these low frequency ones will have a much bigger effect than high frequency data.
And we also see them better.
So that's how we compress JPEG.

Thai: 
ดังนั้นเราจะคำนวณค่าสัมประสิทธิ์ DCT II และทำให้เรามีค่าต่างกันระหว่าง -1024 และ 1024
แต่นั่นไม่ได้มากเกินไป
และสิ่งที่เรามี แต่ละอันเหล่านี้แสดงให้เห็นถึงน้ำหนักหรือปริมาณของแต่ละคลื่นโคไซน์ของเรา
ดังนั้นถ้าคุณใส่นี้ถัดจากนี่ เราสามารถพูดได้ว่าถ้าเราเอาโคไซน์นี้
และคูณด้วย -370 และรวมเข้ากับอันนี้ที่คูณด้วย 29.7, และรวมต่อไปอื่น ๆ
และเราจะทำมันทั้งหมดของพวกมัน ผลรวมนี้จะเป็นภาพต้นฉบับกลับมาอีกครั้ง
โดยปกติแล้วด้านบนซ้ายนี้ค่าสัมประสิทธิ์มากกว่าที่อื่น ๆ
เพราะมันแบนราบและไม่ได้เป็นคลื่นโคไซน์ มันแสดงความเข้มทั่วไปของบล็อกภาพ
ดังนั้น เรียกว่า ค่าสัมประสิทธิ์กระแสตรงของเรา(direct current coefficient) หรือ DC coefficient
ทั้งหมดของอันอื่น จะเป็นกระแสสลับ (AC coefficient)
ในทางปฏิบัติ DC coefficient จะถูกเก็บแยกไว้ แต่เราจะไม่คำนึงถึงมันมากเกินไป
สิ่งสำคัญจริงๆของ JPEG ที่คุณจำเป็นต้องเข้าใจมัน คือค่าสัมประสิทธิ์เหล่านี้มักจะมีขนาดเล็กมากๆ
และพวกเหล่านี้มีขนาดใหญ่มากๆ และสิ่งที่จะบอกก็คือว่า

Turkish: 
Böylece, DCT2 katsayılarımızı hesaplıyoruz ve bu bize -1024 ile 1024 arasında biraz keyfi değerler veriyor.
Ama bu çok büyük bir problem değil.
Ve sahip olduklarımızda, bunların her biri, kosinüs dalgalarımızın her birinin ağırlığını veya miktarını temsil eder.
Eğer bunu buraya koyarsanız, şunu söyleyebiliriz ki, bu kosinüsü alırsak,
ve bunu -370 ile çarpın ve buna, 29.7 ile çarpılan ve buna ekleyin,
Ve bunu hepimiz için yapıyoruz, eklenen toplam tekrar tekrar orijinal görüntü olacak.
Genellikle, bu üst sol katsayısı diğerlerinden çok daha büyük.
Düz olduğu ve bir kosinüs dalgası olmadığı için, o belirli görüntü bloğunun genel yoğunluğunu temsil eder.
Bu bizim doğru akım katsayımız veya DC katsayımız olarak adlandırılır.
Diğerleri ise alternatif akım AC katsayılarıdır.
Uygulamada, genellikle DC katsayıları ayrı ayrı depolanır, ancak bunun üzerinde fazla durmayacağız.
JPEG'in anlamak istediğiniz en önemli yönü, bu katsayıların genellikle çok çok küçük olmasıdır.
Ve bunlar çok çok büyük. Ve bunun söylediği, yüksek frekans için.

English: 
So, we calculate our DCT2 coefficients, and that gives us some slightly arbitrary values between -1024 and 1024.
But that's not too much of a big problem.
And what we have, each of these represents the weight, or the amount, of each of our cosine waves.
So if you put this next to here, we can say that if we take this cosine,
and multiply it by -370, and add it to this one multiplied by 29.7, and so on,
And we do it for all of them, the added sum will be the original image back again.
Usually, this top left coefficient is much bigger than the others.
Because it's flat and not a cosine wave it represents the general intensity of that particular image block.
So that is called our direct current coefficient, or DC coefficient,
All of the others, are alternating current, AC coefficients.
In practice, usually the DC coefficients are stored separately, but we won't dwell on that too much.
The really important aspect of JPEG that you want to understand is that these coefficients are often very very small.
And these ones are very very big. And what that tells is that for the high frequency

Thai: 
จริงๆ สำหรับคลื่นโคไซน์ความถี่สูงไม่ได้มีส่วนร่วมไปสู่ภาพมากนัก
ตัวอย่าง อันนี้เป็นศูนย์ ซึ่งหมายความว่า
คลื่นโคไซน์นี้ไม่มีผลกระทบต่อภาพเลย
หลักๆ ภาพนี้ไม่ได้เป็นอันตารางหมากรุกแน่
พวกเหล่านี้เมื่อเทียบกับค่าสัมประสิทธิ์ใหญ่เหล่านี้ นี่มีขนาดเล็กอย่างไม่น่าเชื่อ และมีผลกระทบเบาบางมากในข้อมูลพิกเซลผลผลิตที่เกิดขึ้นจริง
ผมหมายถึงน้ำหนักเหล่านี้มีขนาดเล็ก ถ้าคุณเอามันออกไป ภาพเกือบจะเหมือนกัน
และคุณก็ยังสามารถเอาพวกมันออกไปและประหยัดพื้นที่
เราทำมันยังไง ขั้นตอนต่อไป หลังจากการคำนวณค่าสัมประสิทธิ์การเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่อง
คือ การพยายามที่จะเอาสิ่งที่คุณไม่ต้องการเหล่านี้ออกไป
เราเรียกว่า กระบวนลบช่วงย่อยข้อมูลความถี่สูง (high frequency data quantization)
หวังว่ามันจะง่ายขึ้นถ้าผมแสดงตารางช่วงย่อย(quantization) ให้คุณ
นี่คือมาตรฐานตารางช่วงย่อย JPEG ที่แสดง  คุณภาพ 50%
ดังนั้นในมาตรฐาน JPEG, ตัวบีบอัดแตกต่างกัน เช่น อันที่ใช้ใน Photoshop จะใช้ตาราง quantization ที่แตกต่างกันขึ้นอยู่กับว่า มันให้ความรู้สึกอย่างไร

Turkish: 
kosinüs dalgaları, resme pek katkıda bulunmaz.
Örneğin, bu sıfır, buradaki bu kosinüs dalgasının görüntü üzerinde hiçbir etkisi olmadığı anlamına gelir.
Görüntü aslında herhangi bir şekilde bir dama tahtası değildir.
Buradakiler, bu büyük katsayılarla karşılaştırıldığında, bunlar da oldukça küçüktür ve gerçek çıktı piksel verileri üzerinde çok ince etkiler yaratırlar.
Demek istediğim, bu ağırlıklar o kadar küçük ki, eğer bunları alırsanız, görüntü neredeyse aynı olacaktır.
Ve yine de, onları uzaklaştırabilir ve tüm bu alanı koruyabilirsiniz.
Demek böyle yapıyoruz. Bir sonraki adım, ayrık kosinüs dönüşüm katsayılarımızı hesapladıktan sonra
temelde istemediklerinizi çıkarmaya çalışın.
Yüksek frekanslı veri nicelemesini kaldırma işlemini çağırıyoruz.
Umarım, size bir ölçüm tablosu göstersem daha kolay olur.
Bu,% 50 kalitesini temsil eden standart JPEG kantitatif tablodur.
Bu yüzden bir JPEG standardında, photoshopta kullanılanlar gibi farklı kompresörler, nasıl hissettiklerini bağlı olarak farklı ölçüm tabloları kullanacaktır.

English: 
cosine waves, don't really contribute much to the image.
For example, this one is zero, which means that this cosine wave here is having no effect on the image at all.
The image is essentially not a checkerboard in any way.
These ones, compared to these big coefficients here, are incredibly small as well, and have very subtle effects on the actual output pixel data.
I mean, these weights are so small that if you took these away, the image would be almost identical.
And yet, you could just take them away and save all that space.
So that's how we do it. The next step, after calculating our discrete cosine transform coefficients
is, basically, try to remove the ones you don't want.
We call the process of removing the high frequency data quantization.
Hopefully, it would be easier if I show you a quantization table.
This is the standard JPEG quantization table that represents a quality of 50%.
So in a JPEG standard, different compressors, like the ones used in photoshop, will use different quantization tables depending on how they feel.

Thai: 
นอกจากนี้ ระดับของคุณภาพที่คุณตั้งไว้ที่เท่าไหร่ และสิ่งที่เราทำคือ เราแบ่งทั้งหมดของค่าสัมประสิทธิ์ของเราโดยค่า quantization ที่สอดคล้องกัน
แล้วปัดเป็นจำนวนเต็มที่ใกล้เคียงที่สุด
และคุณสามารถเห็นแล้วว่า พวกเหล่านี้มีขนาดใหญ่กว่าพวกนี้
ดังนั้นหลักๆ สิ่งที่เกิดขึ้นคือ พวกเหล่านี้ได้ถูกปรับขนาด(scaled) เป็นปริมาณมาก โดยทั่วไป สู่ ค่าใกล้ศูนย์
และจากนั้นจะถูกนำออกโดยถูกตั้งค่าเป็นศูนย์ เมื่อเราปัดมันให้เป็นจำนวนเต็มที่ใกล้เคียงที่สุด
ดังนั้น ตัวอย่าง  370 หารด้วย 16 คือราว 23 หรือ -23 และผลที่เกิดขึ้นจริงเป็นแบบนี้
และจะเห็นได้ว่าเกือบทั้งหมดของมันขณะนี้เป็นศูนย์ ดังนั้นค่าสัมประสิทธิ์นี้ในขณะนี้ไม่ได้มีผลกระทบใด ๆ
อย่างเดียวที่มีผลกระทบต่อภาพของเรา ที่นี่ 9 เหล่านี้
และมีข้อโต้แย้งว่า เรากำลังทำคือว่ามีเพียงเก้าอันนี้ แล้วเราจะได้รับภาพเกือบภาพเดียวกันกลับมา
มันจะไม่เหมือนซะทีเดียว สองสามพิกเซลอาจจะมีระดับความเข้มมากขึ้นหรือน้อยลง
แต่เมื่อมองในระยะภาพปกติ สมมติว่ารูปถ่ายหรือบนหน้าจอ สำหรับเรา มันก็จะมีลักษณะเหมือนกัน
ดังนั้นสิ่งที่เราทำแล้วในที่สุด เมื่อเราต้องการผลผลิตข้อมูลเหล่านี้ลงในแฟ้มของเรา

English: 
And also, what level of quality you set it at. And what we do, is we divide every one of our coefficients by the corresponding quantization value
and then round to the nearest integer.
And you can see already that these ones are much bigger than these ones.
So what essentially happens is these get scaled by a huge amount, usually to close to zero,
And then get removed by being set to zero when we round to the nearest integer.
So for example, 370 divided by 16 is roughly 23. Or minus 23. And the actual quantized output is this.
And you can see that almost all of it is now zero. So, this coefficient now no longer has any effect, nor does this one or this one.
The only ones that have any effect on our image are these nine here.
And, essentially, the argument that we're making is that with just these nine, we can get pretty much the same image back.
It won't be exactly the same, a couple of pixels will maybe be an intensity level up or down,
but when viewed at normal image range, you know, let's say a photograph or on a monitor, it will look exactly the same to us.
So what we then finally do when we want to output this information into our file

Turkish: 
Ve ayrıca, hangi kalite seviyesine ayarladınız? Ve yaptığımız şey, katsayılarımızın her birini karşılık gelen niceliklendirme değerine bölüyoruz.
ve sonra en yakın tamsayıya yuvarlayın.
Ve zaten bunların, bunlardan çok daha büyük olduğunu görebilirsiniz.
Yani esasen ne olduğu, bunlar genellikle sıfıra yakın olacak şekilde çok büyük miktarda ölçeklenir.
Ve en yakın tamsayıya yuvarlandığımızda sıfıra ayarlanarak kaldırılır.
Örneğin, 370 bölü 16, kabaca 23'tür. Veya eksi 23. Ve gerçek nicel çıktı budur.
Ve hemen hemen hepsinin artık sıfır olduğunu görebilirsiniz. Öyleyse, bu katsayın artık hiçbir etkisi yoktur, ya da bunu ya da bunu yapmaz.
İmajımız üzerinde etkisi olan sadece bu dokuz.
Ve aslında, yaptığımız argüman, sadece bu dokuz ile aynı görüntüyü hemen geri alabileceğimizdir.
Tam olarak aynı olmayacak, birkaç piksel belki yukarı veya aşağı bir yoğunluk seviyesi olacak,
ama normal görüntü aralığında bakıldığında, bir fotoğraf ya da monitörde diyelim, bu bizim için tamamen aynı gözükecek.
Peki bu bilgiyi dosyamıza vermek istediğimizde nihayet ne yaparız?

English: 
Is we essentially list all these in a long line.We then use a huffman encoding,
which Professor Brelfooters (?) covered in a video to further compress this data.
The way that we serialize this into our file is in a zig-zag fashion.
So we start with -23, then we go -2, -21,  so we're going up and down and up and down -- 6, 4, 0, 0, 2, 1, and so on.
And the important thing about this is that by doing this, we're going to get a huge list of naughts in a row.
At that is very easily compressed by huffman encoding.
So we take this table, and we do this for every 8 by 8 block in our image.
We then serialize them out into a long line, and we use huffman encoding to shrink them right down,
and that's what goes into our JPEG.
And in all other aspects of JPEG, are really sort of minor format considerations. That's the core of how the compression works.
To decompress the image, let's imagine that we've sent our JPEG to someone, and their decoder is trying to read it.
What we have to do is the exact opposite of this approach.

Thai: 
คือเราทำรายการหลักทั้งหมดเหล่านี้ในหนึ่งบรรทัดยาว แล้วใช้การเข้ารหัส Huffman
ซึ่ง ศาสตราจารย์ Brelfooters อธิบายการบีบอัดข้อมูลนี้ไว้ ในวิดีโออื่น
วิธีการที่เราจัดเรียงอันดับต่อเนื่องลงสู่ไฟล์
ของเราเป็นในแบบซิกแซก
ดังนั้นเราจึงเริ่มต้นด้วย -23 แล้วเราจะไป -2, -21 ดังนั้นเรากำลังจะขึ้นและลงและขึ้นและลง  6, 4, 0, 0, 2, 1, และ ต่อไป
และสิ่งที่สำคัญ คือโดยการทำเช่นนี้ เรากำลังจะได้รายการของศูนย์ ใน 1 แถวยาว
ที่ถูกบีบอัดได้อย่างง่ายดายมากโดยการเข้ารหัส Huffman
ดังนั้นเราจึงใช้ตารางนี้ และเราทำเช่นนี้สำหรับทุกบล็อก 8*8 ในภาพของเรา
จากนั้นเราจัดเรียงอันดับต่อเนื่องพวกมันในสายยาวและเราใช้การเข้ารหัส Huffman เพื่อหดพวกมันลง
และนั่นคือสิ่งที่เกิดใน JPEG ของเรา
และในด้านอื่น ๆ ทั้งหมดของ JPEG, การพิจารณารูปแบบที่ขนาดเล็ก จริงๆ นั่นคือหลักการทำงานของการบีบอัด
เพื่อที่จะขยายภาพออก ให้จินตนาการว่าเราได้ส่ง JPEG ของเราให้บางคน และตัวถอดรหัสของพวกเขาพยายามที่จะอ่านมัน
สิ่งที่เราต้องทำคือการทำตรงข้ามกับวิธีการนี้ แน่นอน

Turkish: 
Bunları aslında uzun bir sıra halinde mi listeliyoruz? Sonra bir huffman kodlaması kullanıyoruz.
Hangi Profesör Brelfooters (?) bu verileri daha fazla sıkıştırmak için bir videoda yer aldı.
Bunu dosyamıza serileştirme biçimimiz zikzak bir biçimdedir.
Böylece -23 ile başlıyoruz, sonra -2, -21'e gidiyoruz, yani yukarı ve aşağı ve yukarı ve aşağı gidiyoruz - 6, 4, 0, 0, 2, 1 ve benzeri.
Ve bununla ilgili önemli olan, bunu yaparak, üst üste büyük bir yara listesi alacağımızdır.
Bu, huffman kodlaması ile çok kolay bir şekilde sıkıştırılır.
Bu yüzden bu tabloyu alıyoruz ve bunu her 8'e 8 blok görüntü için yapıyoruz.
Sonra onları uzun bir çizgide diziledik ve onları aşağı doğru küçültmek için huffman kodlamasını kullanıyoruz.
ve JPEG’e giren budur.
JPEG'in diğer tüm yönlerinde, gerçekten küçük format kaygıları sayılabilir. Sıkıştırmanın nasıl çalıştığının özü budur.
Görüntüyü açmak için, JPEG'ümüzü birine gönderdiğimizi ve kod çözücünün onu okumaya çalıştığını düşünelim.
Yapmamız gereken, bu yaklaşımın tam tersi.

English: 
So we begin by multiplying each of the values by our quantization table.
So this is the same quantization table. It's stored inside the JPEG so we know which one the used.
Because if use a different one on the way out, you're going to ruin your image.
So we multiply each of these values by the specific value in the quantization table
And we get the coefficients. And you can see that because most of them are naught, most of them on the other side are also naught.
So, none of these are going to contribute to our image anymore.
Then, in reverse, we use discrete cosine transform #3, which is usually just called the inverse discrete cosine transform
because it's generally used to reverse what we did for discrete cosine transform two,
and that gives us our shifted block back again, which of course we then add 128 to every value
And we have our output block. And there it is.
So that's the complete JPEG compression using discrete cosine transforms.
If we look at our imput block and our output block, next to each other, we can see that there are some changes in values,
but it's actually pretty close. These are sort of changed -- like this has gone up a few intensity levels, this is the same, this has gone down four,

Thai: 
ดังนั้นเราจึงเริ่มต้นด้วยการคูณแต่ละค่าจากตาราง quantization ของเรา
นี่คือตาราง quantization เดียวกัน มันถูกเก็บไว้ภายใน JPEG เพื่อให้เรารู้ว่าอันไหนที่ใช้
เพราะถ้าใช้ตารางที่แตกต่างกัน คุณกำลังจะทำลายภาพของคุณ
ดังนั้นเราจึงคูณแต่ละค่าเหล่านี้โดยค่าที่ระบุในตาราง quantization
และเราได้รับค่าสัมประสิทธิ์ และจะเห็นได้ว่าเพราะพวกมันส่วนใหญ่เป็นศูนย์ อีกด้านของพวกมันเป็นศูนย์ด้วย
ดังนั้น สิ่งเหล่านี้ไม่ได้จะนำไปสู่ภาพของเราอีกต่อไป
ดังนั้น ในการย้อนกลับ เราจะใช้ discrete cosine transform #3 (DCT III) ซึ่งมักจะเรียกว่า inverse discrete cosine transform
เพราะโดยทั่วไปจะใช้มันย้อนกลับสิ่งที่เราทำ สำหรับ discrete cosine transform #2  (DCT II)
ที่ทำให้เราได้บล็อกของเรากลับมาอีกครั้ง ซึ่งแน่นอนเราเพิ่ม 128 ทุกค่าแล้ว
และเรามีบล็อกผลผลิตของเรา และออกมาละ
นั่นคือ การบีบอัด JPEG เสร็จสมบูรณ์โดยใช้การเปลี่ยนรูปโคไซน์แบบไม่ต่อเนื่อง (DCT, Discrete Cosine Transform)
ถ้าเราดูที่บล็อกที่นำเข้าของเราและบล็อกส่งออกของเรา เราจะเห็นว่ามีค่าการเปลี่ยนแปลงบางอย่าง
แต่มันใกล้เคียงกันจริงๆ นี่คือที่มีการเปลี่ยนแปลง สองอันนี้ระดับความเข้มได้เพิ่ม  อันนี้เท่าเดิม อีกอันลดลงไปสี่

Turkish: 
Böylece değerlerin her birini niceleme tablomuzla çarparak başlıyoruz.
Yani bu aynı ölçü tablosu. JPEG'in içinde depolandığından hangisinin kullanıldığını biliyoruz.
Çünkü çıkışta farklı bir tane kullanırsanız, imajınızı mahvedeceksiniz.
Bu yüzden, bu değerlerin her birini nicelleştirme tablosundaki spesifik değerle çarpıyoruz.
Ve katsayıları alıyoruz. Ve görebiliyorsunuz, çünkü çoğu, yanlış, çoğu diğer tarafta da, aynı şekilde.
Yani, bunların hiçbiri artık imajımıza katkıda bulunmayacak.
Sonra tersine, genellikle ters kesikli kosinüs dönüşümü olarak adlandırılan kesikli kosinüs dönüşüm # 3'ü kullanırız.
çünkü genellikle ayrık kosinüs dönüşümü için yaptığımız şeyi tersine çevirmek için kullanılır.
ve bu bize tekrar kaydırılan bloğumuzu geri veriyor, hangi tabiki her değere 128 ekliyoruz
Ve bizim çıktı bloğumuz var. Ve işte orada.
Bu, ayrık kosinüs dönüşümleri kullanan tam JPEG sıkıştırmasıdır.
İmput bloğumuza ve çıkış bloğumuza bakarsak, yan yana, değerlerde bazı değişiklikler olduğunu görebiliriz,
ama aslında oldukça yakın. Bunlar değişmiş - bu birkaç yoğunluk seviyesine yükselmiş gibi, bu aynı, bu dördün altına düştü,

Turkish: 
Fakat bunlar 0'dan 255'e kadar. Kimse böyle bir fark görmeyecek. Ve bu% 50'de. Yani bundan daha azını yapabilirsin
JPEG kalitenizin nicelendirme tablonuzda daha yüksek ve daha küçük değerlere sahip olması durumunda.
Yani JPEG standardında, bu size verdikleri nicelleştirme tablosu.
Bu, aslında, renklilik için değil, renklilik için niceleme tablosu. Krominans için farklı bir tane var.
Bu çok - yüksek frekansta çok daha yüksek cezalar var
çünkü yüksek frekanslı veriler gri renkte çok önemli değilse, renkleri o kadar iyi göremediğimizden daha az önemlidir.
Olabildiğince fazla görüntüyü korursam genel JPEG sıkıştırmamızın kalitesini hemen artırmak için yapabileceğiniz bir şey,
Bu değerlerin hepsini nicelleştirme tablosunda yarıya indirmektir. Tüm bu değerleri ikiye bölersek, temelde her şey daha az ölçeklenir.
Tüm bu yüksek frekans katsayıları mutlaka sıfıra yuvarlanmayacak, bir veya ikiye yuvarlanabilecek ve yine de biraz etkisi olacaklar.
Öte yandan, bu niceleme tablolarındaki değerleri arttırırsak, daha düşük bir JPEG kalite ayarını kullanıyoruz.

English: 
But these are from 0 to 255. No one is going to see that kind of difference. And this is at 50%. So you can do a lot less than this
If you have your JPEG quality set higher, and smaller values in your quantization table.
So in the JPEG standard, this is the quantization table they give you.
This is actually the quantization table for luminosity, not for chrominance. They have a different one for chrominance
which is much -- has much higher penalties on the high frequency
because if high frequency data is not very important in grey, it's even less important given that we don't see color that well.
One thing you can do to immediately increase the quality of our overall JPEG compression if I just preserve as much image as possible,
is to halve all of these values in the quantization table. If we divide all of these values by two, then essentially everything is being scaled by less.
All of these high frequency coefficients won't necessarily be rounded to zero, they might be rounded to one or two, and they'll still have a little bit of an effect.
On the other hand, if we increase the values in these quantization tables, we're essentially operating a lower JPEG quality setting.

Thai: 
แต่เหล่านี้จาก 0 ถึง 255 ไม่มีใครไปดูว่ามีความแตกต่าง และนี่คือคุณภาพ 50% ดังนั้นคุณสามารถทำน้อยกว่านี้ได้
หากคุณมีคุณภาพ JPEG ของคุณตั้งสูงขึ้น และค่าที่มีขนาดเล็กในตาราง quantization ของคุณ
ดังนั้นในมาตรฐาน JPEG นี่เป็นตาราง quantization ที่พวกเขาให้คุณ
นี้เป็นตาราง quantization จริงสำหรับความส่องสว่าง(luminosity) ไม่ใช่สำหรับ chrominance พวกเขามีอีกตารางสำหรับ chrominance
ซึ่งมีบทลงโทษที่สูงขึ้นมากในความถี่สูง
เพราะถ้าข้อมูลความถี่สูงไม่ได้เป็นสิ่งที่สำคัญมากในสีเทามันยิ่งได้รับความสำคัญน้อยลงอีก เรามองเห็นสีนั้นได้ไม่ดี
สิ่งหนึ่งที่คุณสามารถทำได้ เพื่อเพิ่มคุณภาพโดยรวมทันทีของการบีบอัดไฟล์ JPEG  ถ้าผมเพียงรักษาภาพเดิมมากที่สุดเท่าที่เป็นไปได้
คือ การลดค่าเหล่านี้ลงครึ่งหนึ่งทั้งหมดในตาราง quantization ถ้าเราหาร 2 ค่าเหล่านี้ทั้งหมด ทุกอย่างจะถูกปรับขนาดน้อย
สัมประสิทธิ์ความถี่สูงทั้งหมดเหล่านี้จะไม่จำเป็นต้องถูกปัดให้เป็น 0 อาจมีการปัดเป็น 1 หรือ 2 และพวกมันมีผลกระทบเล็กน้อย
ในทางกลับกัน ถ้าเราเพิ่มค่าในตาราง quantization เหล่านี้เรากำลังทำการตั้งค่า JPEG คุณภาพต่ำ

Turkish: 
JPEG standardının kullandığı yaklaşım budur. Diğer yazılımlarda, kendi ölçüm tablolarına sahip olabilirler.
Aslında, bildiğim kadarıyla photoshop 12, 14 ayarlara sahip olduğunu ve bu ayarların çoğu için farklı ölçüm tablolarına sahip olduğunu düşünüyorum.
Ve farklı örnekleme frekansları. Karar verdikleri birçok farklı şey, bir kullanıcının kullanabileceği oldukça iyi bir ölçek çubuğu oluşturuyor.
Ve bu ayarların tümü, daha sonra dosyanın başlığında saklanır -
Evet. Görüntünün her bir kısmı arasında, bunların nicelendirme tabloları ve kullandığımız huffman kodlama tabloları olduğunu söyleyen küçük bir blok alırsınız.
Böylece herkes bu süreci tersine çevirebilir. Ölçüm tablosunun ne olduğunu bilmiyorsanız,
kodlanmış katsayılarınızı farklı değerlerle çarpıyor olabilirsiniz ve sonunda tamamen farklı bir şey elde edebilirsiniz.
Ne olurdu? Sadece farklı renkler?
Tamamen farklı bir görüntü olabilir. Belirli numaralara böldünüz, işlemi tersine çevirmek için bu numaralarla çarpmanız gerekir.
Aksi halde saçma sapan şeylerle karşılaşabilirsiniz.
Bu yüzden çizdiğim orijinal şemaya dönersek, JPEG türüne genel bakış bu. İmajımızla başlıyoruz,
rengimizi dönüştürdük ve daha sonra DCT, esasen imajımızdaki yüksek frekans bilgisini siler.

Thai: 
นี่คือวิธีการที่ใช้มาตรฐาน JPEG ในซอฟต์แวร์อื่น ๆ ที่พวกเขาอาจมีตาราง quantization ของตัวเอง
ในความเป็นจริง เท่าที่ผมรู้ว่า photoshop พวกเขามี 12, 14 การตั้งค่า และพวกเขามีตาราง quantization ที่แตกต่างกันสำหรับการตั้งค่าส่วนมากเหล่านั้น
และความถี่การสุ่มตัวอย่างที่แตกต่างกัน ดังนั้นมีสิ่งที่แตกต่างกันจำนวนมากมายที่พวกเขาได้ตัดสินใจให้บาร์ขนาดที่ดีที่ผู้ใช้สามารถใช้
และการตั้งค่าทั้งหมดเหล่านั้น ทั้งหมดเก็บไว้แล้วในส่วนหัวของไฟล์ -
ใช่. ระหว่างแต่ละส่วนของภาพคุณจะได้รับบล็อกขนาดเล็กที่บอกว่าเหล่านี้เป็นตาราง quantization และตารางการเข้ารหัส Huffman ที่เราใช้
เพื่อให้ทุกคนสามารถย้อนกลับกระบวนการ หากคุณไม่รู้ว่าตาราง quantization คืออะไร,
คุณอาจจะคูณค่าสัมประสิทธิ์การเข้ารหัสของคุณโดยค่าที่แตกต่างและได้บางอย่างที่แตกต่างกันอย่างสิ้นเชิงในตอนท้าย
มันจะเป็นยังไง? แค่สีที่แตกต่างกันเหรอ?
มันก็อาจจะเป็นภาพที่ต่างอย่างสิ้นเชิง คุณได้หารด้วยตัวเลขบางอย่าง คุณจะต้องคูณด้วยตัวเลขเหล่านั้นจึงย้อนกลับกระบวนการ
มิฉะนั้นคุณอาจได้รับขยะออกมา
ดังนั้นจะกลับไปแผนภาพเดิมที่ผมวาดนี้เป็นประเภทของภาพรวมของแบบ JPEG เราเริ่มต้นด้วยภาพของเรา
เราได้เปลี่ยนสีของเรา และแล้ว DCT หลักๆ เอาข้อมูลที่มีความถี่สูงในภาพของเราออก

English: 
This is the approach that the JPEG standard uses. In other software, they may have their own quantization tables
in fact, as far as I know, photoshop I think they have 12, 14 settings, and they have different quantization tables for most of those settings.
And different sampling frequencies. So lots of different things that they've decided make for a pretty good scale bar that a user can use.
And all of those settings, are all then stored in the header of the file --
Yeah. Between each part of the image, you'll get a small block that says these are the quantization tables and the huffman encoding tables that we used
so that everyone can reverse that process. If you don't know what the quantization table was,
you might be multiplying your encoded coefficients by different values and get something completely different out at the end.
What would it be? Just different colors?
It could just be a completely different image. You've divided by certain numbers, you need to multiply by those numbers to reverse the process
Otherwise you might get nonsense back out.
So going back to the original diagram that I drew, this is sort of the overview of JPEG. We start with our image,
we've transformed our color, and in then DCT, essentially removes the high frequency information in our image.

Thai: 
ดังนั้นหากเรามีภาพที่มีความถี่สูงจำนวนมาก การเปลี่ยนแปลงข้อมูลพิกเซลที่เกิดขึ้น อาจได้รับการบีบอัดอย่างมีนัยสำคัญ
แต่มันก็อาจจะดูแย่ลง ในการถ่ายภาพส่วนมาก แน่นอนว่า บล็อกภาพ 8*8 คุณจะไม่พบข้อมูลที่มีความถี่สูงมาก
และเพื่อให้เราสามารถกำจัดมันจำนวนมากอย่าค่อนข้างปลอดภัย
เราคำนวณค่าสัมประสิทธิ์ DCT เราแบ่งช่วงย่อย(quantize) ของพวกมัน เพื่อเอาที่มีความถี่สูงออก และจากนั้นเราเข้ารหัส Huffman
เพื่อบีบอัดเป็นสายข้อมูลเล็ก ๆ ที่สามารถจัดการได้ที่เราใส่ลงในไฟล์ JPEG ของเรา
แล้วการย้อนกลับของกระบวนการ เราถอดรหัสการเข้ารหัส Huffman โดยใช้ตาราง Huffman
เราเลิกทำช่วงย่อย(unquantize) โดยคูณด้วยค่าทั้งหมดของเราในตาราง quantization และจากนั้นเราใช้ inverse DCT,
ที่จะได้บล็อกของเรากลับมา และเราทำเช่นนี้
สำหรับทุกภาพน้อยๆ 8*8 ในภาพของเรา
หากภาพของเราไม่ได้เป็นเท่าของ 8, 
แล้วเราจะต้องเพิ่มบางไบต์ในตอนท้าย
เพื่อให้มันทำงานได้ ปกติ มันทำซ้ำอันใกล้ขอบเพื่อให้มันมีการเชื่อมโยงกันหรือทำอะไรอย่างชาญฉลาดนิดหน่อย

English: 
So if we've got an image where lots of high frequency information pixel changes are happening, that might get significantly compressed,
but it also might look worse. In most photographs, certainly over an 8 by 8 image block, you won't be finding that much high frequency information
and so we can quite safely get rid of a lot of it.
We calculate our DCT coefficients, we quantize them to remove the high frequency ones, and then we huffman encoding
to compress that into a manageable small stream that we put into our JPEG file.
And then the reverse of that process is exactly that. We decode the huffman tables, the huffman encoding,
we unquantize by multiplying by all our values in the quantization table, and then we apply the inverse DCT,
to obtain our block back. And we do this for every little 8 by 8 image in our picture.
If our image isn't a multiple of 8, then we have to add some padding bytes at the end
to make it work, usually we could duplicate the ones near the edge, so that it kind of is coherent, or do something a little smarter.

Turkish: 
Dolayısıyla, çok sayıda yüksek frekanslı bilgi pikselinin değiştiği bir görüntümüz varsa, bu büyük ölçüde sıkıştırılabilir.
ama daha da kötü görünebilir. Fotoğrafların çoğunda, kesinlikle 8 x 8'lik bir görüntü bloğunun üzerinde, bu kadar yüksek frekans bilgisi bulamayacaksınız.
ve böylelikle çoğundan güvenle güvenle kurtulabiliriz.
DCT katsayılarımızı hesaplıyoruz, yüksek frekanslı olanları kaldırmak için onları ölçüyoruz ve sonra huffman kodlaması yapıyoruz
Bunu JPEG dosyamıza koyduğumuz yönetilebilir küçük bir akıma sıkıştırmak için.
Ve sonra bu sürecin tam tersi budur. Huffman tablolarını, huffman kodlamasını çözeriz,
nicelleştirme tablosundaki tüm değerlerimizle çarparak yetkisiziz ve sonra ters DCT'yi uygularız,
bloğumuzu geri almak için. Ve resmimizdeki her 8'e 8 görüntü için bunu yapıyoruz.
Resmimiz 8'in katı değilse, sonunda bir miktar doldurma baytı eklemek zorundayız.
İşe yaraması için, genellikle kenarlara yakın olanları çoğaltabilirdik, böylece uyumlu bir hale gelebilir ya da biraz daha akıllıca bir şey yapabilirdik.

Thai: 
บรรยายไทยโดย ytuaeb sciencemath

English: 
Text violates our assumtions that high frequency information doesn't contribute a lot to the image.
So this is a small 8 by 8 image. This is, in a sense text. This is the computerphile 'C' with little triangular brackets

Turkish: 
Metin, yüksek frekanslı bilgilerin görüntüye çok fazla katkı sağlamadığı varsayımımızı ihlal ediyor.
Yani bu küçük bir 8 x 8 görüntüdür. Bu, bir anlamda metindir. Bu küçük üçgen köşeli ayraçlı bilgisayar C 'C'
