Bilgi Kodlama - İnanılmaz Genişbilgi alanı. Tabii ki, dijital teknolojinin gelişimi ile doğrudan ilgilidir. Pek çok modern eğitim kurumunda en popüler konu bilgi kodlamadır. Bugün, bu fenomenin ana yorumlarını bilgisayarların işleyişinin çeşitli yönleriyle ilgili olarak inceleyeceğiz. Şu soruyu cevaplamaya çalışalım: "Kodlamak bir süreç, yöntem, araç mı yoksa tüm bu fenomenleri aynı anda mı?"
Sıfırlar ve olanlar
Hemen hemen her veri türübilgisayar ekranında görüntülenen bir şekilde sıfırlardan ve sıfırlardan oluşan ikili bir kodu temsil eder. Bu, bir bilgisayarın verileri işlemesine izin vererek, bilgileri şifrelemenin en basit, "düşük seviye" yoludur. İkili kod evrenseldir: istisnasız tüm bilgisayarlar tarafından anlaşılır (aslında, bu amaçla oluşturulmuştur - bilgilerin dijital biçimde kullanımını standartlaştırmak için).
İkilinin kullandığı temel birimkodlama bir bittir ("ikili basamak" - "çift basamak" ifadesinden). 0 veya 1'dir. Kural olarak, bitler ayrı ayrı kullanılmaz, ancak 8 basamaklı diziler - baytlar halinde birleştirilir. Böylece, her biri 256'ya kadar sıfır ve bir kombinasyonu (2'den 8'e kadar) içerebilir. Kural olarak, önemli miktarda bilgiyi kaydetmek için, tek baytlar kullanılmaz, ancak her biri 1000 kat daha büyük olan "kilo", "mega", "giga", "tera" vb. Ön eklerle daha büyük miktarlar kullanılır. öncekinden. ...
Metin kodlaması
En yaygın dijital veri biçimiMetin. Nasıl kodlanıyor? Bu, açıklanması oldukça kolay bir süreçtir. Bir harf, noktalama işareti, sayı veya sembol bir veya daha fazla bayt kullanılarak kodlanabilir, yani bilgisayar bunları benzersiz bir sıfırlar ve birler dizisi olarak görür ve ardından yerleşik tanıma algoritmasına uygun olarak bunları görüntüler. ekran. Bilgisayar metninin "şifrelenmesi" için iki ana dünya standardı vardır - ASCII ve UNICODE.
ASCII sisteminde, her karakter yalnızca kodlanırbir bayt. Yani, bu standart aracılığıyla 256 karaktere kadar "şifreleme" yapmak mümkündür - bu, dünyadaki çoğu alfabenin karakterlerini görüntülemek için fazlasıyla yeterlidir. Elbette bugün var olan tüm ulusal harf sistemleri bu kaynağa uymayacaktır. Bu nedenle, her alfabenin kendi şifreleme "alt sistemi" vardır. Bilgi, ulusal yazı modellerine uyarlanmış işaret sistemleri kullanılarak kodlanır. Bununla birlikte, bu sistemlerin her biri, uluslararası düzeyde benimsenen küresel ASCII standardının ayrılmaz bir parçasıdır.
ASCII sistemi içinde, bu kaynak 256'dan fazlaişaretler iki bölüme ayrılmıştır. İlk 128, İngilizce alfabe (a'dan z'ye harfler), sayılar, temel noktalama işaretleri ve diğer bazı semboller için ayrılmış karakterlerdir. İkinci 128 bayt ise ulusal harf sistemleri için ayrılmıştır. Bu, İngilizce olmayan alfabeler için "alt sistem" dir - Rusça, Hintçe, Arapça, Japonca, Çince ve diğerleri.
Her biri ayrı birkodlama tabloları. Yani, iki ayrı "ulusal" tablodaki farklı harf ve sembollerden aynı bit dizisi sorumlu olacak şekilde gerçekleşebilir (ve bir kural olarak, olur). Dahası, BT alanının farklı ülkelerdeki gelişiminin özellikleri nedeniyle, hatta farklılar. Örneğin, iki kodlama sistemi Rus dili için en yaygın olanıdır: Windows-1251 ve KOI-8. İlki daha sonra ortaya çıktı (ve işletim sisteminin kendisi de onunla uyumlu), ancak şimdi birçok BT uzmanı bunu öncelikli olarak kullanıyor. Bu nedenle, bir bilgisayarın, üzerindeki Rusça metni okuyabilmesi için her iki tabloyu da doğru bir şekilde tanıyabilmesi gerekir. Ancak, kural olarak, bununla ilgili bir sorun yoktur (PC'de modern bir işletim sistemi varsa).
Her zaman metin kodlama tekniklerigelişiyor. Yalnızca 256 karakter değerini işleyebilen "tek baytlık" ASCII sistemine ek olarak, "iki baytlık" UNICODE sistemi de vardır. 16. kuvvete 2'ye yani 65 bin 536'ya eşit miktarda metin kodlamasına izin verdiğini hesaplamak kolaydır. Buna karşılık dünyanın hemen hemen tüm mevcut ulusal alfabelerinin eşzamanlı kodlanması için kaynaklara sahiptir. . UNICODE kullanımı, "klasik" ASCII standardının kullanımından daha az yaygın değildir.
Grafik kodlama
Yukarıda nasıl "şifreleneceklerini" tanımladıkmetinler ve baytların nasıl kullanıldığı. Peki ya dijital fotoğraflar ve resimler? Ayrıca oldukça basit. Metinde olduğu gibi, bilgisayar grafiklerinin kodlanmasında da aynı baytlar ana rolü oynar.
Genel olarak dijital görüntüleme süreciTV'nin çalıştığı temeldeki mekanizmalara benzer. Bir TV ekranına yakından bakarsanız, resim, bir arada gözle belli bir mesafeden tanınabilen figürleri oluşturan birçok ayrı noktadan oluşur. Televizyon matrisi (veya CRT projektörü) vericiden her bir noktanın yatay ve dikey koordinatlarını alır ve görüntüyü kademeli olarak oluşturur. Bilgisayar grafik kodlama prensibi aynı şekilde çalışır. Görüntülerin bayt olarak "şifrelenmesi", ekran noktalarının her birinin karşılık gelen koordinatlara (ve her birinin rengine) ayarlanmasına dayanır. Bu basit terimlerle. Tabii ki, grafik kodlama, metinsel kodlamadan çok daha karmaşık bir süreçtir.
İlgili koordinatların noktalarını belirleme yöntemi verenk ayarlarına "bit eşlem" denir. Birçok bilgisayar grafik dosyası formatı benzer şekilde adlandırılır. Görüntü noktalarının her birinin koordinatları ve renkleri bir veya daha fazla bayta kaydedilir. Numaralarını ne belirler? Esas olarak kaç renk tonunun "şifrelenmesi" gerektiğiyle ilgilidir. Bildiğiniz gibi bir bayt 256 değerdir. Bir resim oluşturmamız için çok fazla renk tonu yeterliyse, bu kaynakla yöneteceğiz. Özellikle, elimizde 256 gri tonu olabilir. Ve bu neredeyse tüm siyah beyaz resimleri kodlamak için yeterli olacaktır. Buna karşılık, bu kaynak açıkça renkli görüntüler için yeterli olmayacaktır: insan gözünün on milyonlarca rengi ayırt edebildiği bilinmektedir. Bu nedenle 256 değerde değil, yüzbinlerce kat daha fazla bir "rezerv" gereklidir. Neden noktaları kodlamak için bir bayt değil de birkaç bayt kullanılıyor: Bugün var olan standartlara göre bunlardan 16 tanesi (65 bin 536 rengi "şifreleyebilirsiniz") veya 24 (16 milyon 777 bin 216 ton) olabilir.
Metinsel standartların aksine, çeşitlilikBu dünya dillerinin sayısı ile karşılaştırılabilir, grafiklerle durum biraz daha basit. En yaygın dosya biçimleri (JPEG, PNG, BMP, GIF, vb.) Genellikle çoğu bilgisayarda eşit derecede iyi tanınır.
Nasıl olduğunu anlamak için zor bir şey yokilkeler grafik bilginin kodlanmasıyla gerçekleştirilir. Herhangi bir orta dereceli Rus okulunun 9. sınıfı, kural olarak, bu tür teknolojilerin çok basit ve anlaşılır bir dilde bazı ayrıntılarıyla açıklandığı bir bilgisayar bilimi dersi içerir. Yetişkinler için özel eğitim programları da vardır - bunlar üniversiteler, liseler veya okullar tarafından düzenlenir.
Bu nedenle, modern bir Rus insanıbilgisayar grafikleri açısından pratik öneme sahip kodlar hakkında nereden bilgi edinebilirsiniz. Ve temel bilgileri kendi başınıza tanımak istiyorsanız, erişilebilir öğretim materyalleri edinebilirsiniz. Bunlar, örneğin, "Grafik bilginin kodlanması (9. sınıf, ND Ugrinovich'in" Bilişim ve BİT "ders kitabı) bölümünü içerir.
Ses verisi kodlama
Bilgisayar düzenli olarakmüzik ve diğer ses dosyalarını dinlemek. Metin ve grafiklerde olduğu gibi, bilgisayardaki herhangi bir ses sadece aynı bayttır. Sırasıyla, bir ses kartı ve diğer mikro devreler tarafından "şifreleri çözülür" ve işitilebilir sese dönüştürülür. Buradaki ilke, gramofon kayıtlarında olduğu gibi yaklaşık olarak aynıdır. Onlarda, bildiğiniz gibi, her ses, bir okuyucu tarafından tanınan ve sonra çalınan plastik üzerindeki mikroskobik bir oluğa karşılık gelir. Bilgisayarda her şey benzer. Yalnızca olukların rolü, metin ve resimlerde olduğu gibi, ikili kodlamanın olduğu doğası gereği baytlar tarafından oynanır.
Bilgisayar görüntüleri durumundabir nokta tek bir unsurdur, o zaman ses kaydederken bu sözde "sayı" dır. Kural olarak, içine 65 bin 536 ses mikro salınımı üreten iki bayt yazılır. Bununla birlikte, görüntüleri oluştururken olanın aksine, ses kalitesini iyileştirmek için ek baytlar eklenmez (tabii ki bunlardan fazlası vardır), ancak "örneklerin" sayısı artar. Bazı ses sistemleri hem daha az hem de daha fazla bayt kullansa da. Ses kodlaması devam ederken, standart bayt "akı yoğunluğu" birimi bir saniyedir. Yani saniyede 8 bin örnekle kodlanan mikro titreşimler, şüphesiz 44 bin "örnek" ile kodlanan sesler dizisinden daha düşük kalitede olacaktır.
Grafiklerde olduğu gibi, ses dosyalarının uluslararası standardizasyonu iyi gelişmiştir. Tüm dünyada kullanılan birkaç tipik ses ortamı formatı vardır - MP3, WAV, WMA -.
Video kodlama
Bir tür "hibrit şema"ses şifreleme, bilgisayar videolarında kullanılan resim kodlama ile birleştirilir. Genellikle filmler ve klipler iki tür veriden oluşur - sesin kendisi ve ona eşlik eden video dizisi. Yukarıda birinci bileşenin nasıl "şifrelenmiş" olduğunu anlattık. İkincisi biraz daha zor. Buradaki ilkeler, yukarıda tartışılan grafik kodlamada bulunanlardan farklıdır. Ancak bayt "kavramının" evrenselliği nedeniyle, mekanizmaların özü oldukça açık ve mantıklıdır.
Filmin nasıl düzenlendiğini hatırlayalım.Bir dizi ayrı çerçeveden başka bir şey değildir (kural olarak, bunlardan 24 tane vardır). Bilgisayar videoları da tamamen aynı şekilde düzenlenmiştir. Her çerçeve bir resimdir. Bayt kullanılarak nasıl oluşturulduğunu yukarıda tanımladık. Buna karşılık, video dizisinde, tek tek kareleri birbirine bağlamanıza izin veren belirli bir kod alanı bulunur. Filmin bir tür dijital ikamesi. Bir video akışı için ayrı bir ölçü birimi (filmlerin ve kliplerin "film" formatında olduğu gibi resimlere ve ses örneklerine benzer) çerçeve olarak kabul edilir. İkincisi, kabul edilen standartlara göre bir saniyede 25 veya 50 olabilir.
Seste olduğu gibi, varortak uluslararası video dosyası standartları - MP4, 3GP, AVI. Film ve reklam yapımcıları, olabildiğince çok bilgisayarla uyumlu medya örnekleri üretmeye çalışırlar. Bu dosya formatları en popülerler arasındadır ve hemen hemen tüm modern PC'lerde açılabilir.
Veri sıkıştırma
Bilgisayar verilerinin depolanması,çeşitli ortam - diskler, flash sürücüler, vb. Yukarıda söylediğimiz gibi, baytlar, kural olarak, "mega", "giga", "tera" vb. önekleriyle "büyümüştür". Bazı durumlarda, kodlanmış dosyalar, bunları diskteki mevcut kaynaklarla birlikte yerleştirmenin imkansız olmasıdır. Daha sonra çeşitli türlerde veri sıkıştırma yöntemleri kullanılır. Aslında onlar da kodluyorlar. Bu, terimin olası başka bir yorumudur.
İki ana veri sıkıştırma mekanizması vardır.Bunlardan ilki için, bit dizisi "paketlenmiş" biçimde kaydedilir. Yani, bilgisayar "paketten çıkarma" prosedürünü gerçekleştirmezse dosyaların içeriğini okuyamaz (metin, resim veya video olarak çoğaltamaz). Verileri bu şekilde sıkıştıran bir programa arşivleyici adı verilir. Operasyonunun prensibi oldukça basittir. Bilginin kodlanabileceği en popüler yöntemlerden biri olarak veri arşivleme, okul düzeyinde bilgisayar bilimi tarafından zorunlu olarak incelenir.
Hatırladığımız gibi, içindeki dosyaları "şifreleme" işlemibayt standartlaştırılmıştır. ASCII standardını ele alalım. Örneğin, "merhaba" kelimesini şifrelemek için, harf sayısına bağlı olarak 6 bayta ihtiyacımız var. Bu, bu metnin bulunduğu dosyanın diskte kaplayacağı alan miktarıdır. "Merhaba" kelimesini arka arkaya 100 kez yazarsak ne olur? Özel bir şey yok - bunun için sırasıyla 600 bayta, aynı miktarda disk alanına ihtiyacımız var. Bununla birlikte, çok daha az sayıda bayt kullanarak komutun "şifreleneceği" bir dosya oluşturacak olan arşivleyiciyi kullanabiliriz ve şuna benzer: "merhaba, 100 ile çarp". Bu mesajdaki harf sayısını saydıktan sonra, böyle bir dosyayı yazmak için sadece 19 bayta ihtiyacımız olduğu sonucuna vardık. Ve aynı miktarda disk alanı. Arşiv dosyasını "paketini açarken", "şifre çözme" gerçekleşir ve metin "100 selamla" orijinal biçimini alır. Böylece, özel bir kodlama mekanizması kullanan özel bir program kullanarak önemli miktarda disk alanı kazanabiliriz.
Yukarıdaki süreç oldukça evrenseldir: Hangi işaret sistemleri kullanılırsa kullanılsın, sıkıştırma amacıyla bilgi kodlama her zaman veri arşivleme yoluyla mümkündür.
İkinci mekanizma nedir?Bir dereceye kadar, arşivleyicilerde kullanılana benzer. Ancak temel farkı, sıkıştırılmış bir dosyanın "paket açma" prosedürü olmadan bir bilgisayar tarafından görüntülenebilmesidir. Bu mekanizma nasıl çalışır?
Hatırladığımız gibi, orijinal haliyle "merhaba" kelimesi6 bayt alır. Ancak, bir numara arayabilir ve şöyle yazabiliriz: "prvt". 4 bayt bırakır. Geriye kalan tek şey, bilgisayara kaldırdığımız harfleri dosya görüntüleme sürecine eklemeyi "öğretmektir". Pratikte "eğitim" sürecinin organize edilmesine gerek olmadığını söylemeliyim. Eksik karakterleri tanımak için temel mekanizmalar çoğu modern PC programında yerleşiktir. Yani, her gün uğraştığımız dosyaların büyük bir kısmı bu algoritma kullanılarak bir şekilde zaten "şifrelenmiştir".
Elbette "hibrit" sistemler de var.bilgi kodlaması, yukarıdaki yaklaşımların her ikisini de aynı anda kullanırken veri sıkıştırmaya izin verir. Ve disk alanından tasarruf etme açısından tek başlarına olduklarından daha verimli olmaları muhtemeldir.
Tabii ki "merhaba" kelimesini kullanarakyalnızca veri sıkıştırma mekanizmalarının temel ilkeleri. Gerçekte, çok daha karmaşıklar. Çeşitli bilgi kodlama sistemleri, dosyaları "sıkıştırmak" için inanılmaz derecede karmaşık mekanizmalar sunabilir. Bununla birlikte, bir bilgisayardaki bilgi kalitesindeki bozulmaya başvurmadan pratik olarak disk alanından nasıl tasarruf etmenin mümkün olduğunu görebiliriz. Veri sıkıştırmanın rolü özellikle resim, ses ve video kullanılırken önemlidir - bu tür veriler disk kaynaklarını daha fazla talep eder.
Başka hangi "kodlar" var?
En başta da söylediğimiz gibi, kodlamakarmaşık bir fenomendir. Artık bayt tabanlı dijital veriler için kodlamanın temel ilkelerini anladığımıza göre, başka bir alana dokunabiliriz. Bilgisayar kodlarının biraz farklı anlamlarda kullanılmasıyla ilişkilidir. Burada, "kod" ile, bir sıfırlar ve birler dizisini değil, bir dizi çeşitli harf ve sembolleri kastediyoruz (zaten bildiğimiz gibi, 0 ve 1'den yapılmıştır) ve bu, bir modern insan.
Program kodu
Herhangi bir bilgisayar programının çalışmasının merkezinde -kod. Bir bilgisayarın anlayabileceği bir dilde yazılmıştır. PC, kodun şifresini çözerek belirli komutları yürütür. Bir bilgisayar programının başka bir dijital veri türünden ayırt edici bir özelliği, içerdiği kodun kendi kendine "şifresini çözme" yeteneğine sahip olmasıdır (kullanıcının yalnızca bu işlemi başlatması gerekir).
Programların bir diğer özelliği de görecelikullanılan kodun esnekliği. Yani, bir kişi yeterince geniş bir "kelime öbeği" seti kullanarak ve gerekirse başka bir dilde bir bilgisayara aynı görevleri verebilir.
Belge biçimlendirme kodu
Pratik olarak önemli bir diğer uygulama alanıalfabetik kod - belge oluşturma ve biçimlendirme. Kural olarak, bir PC kullanmanın pratik önemi açısından ekranda karakterlerin basit gösterimi yeterli değildir. Çoğu durumda, metin, belirli bir renk ve boyutta bir yazı tipi kullanılarak, ek öğelerle (tablolar gibi) birlikte oluşturulmalıdır. Tüm bu parametreler, programlarda olduğu gibi, bir bilgisayarın anlayabileceği özel dillerde ayarlanır. "Komutları" tanıyan PC, belgeleri tam olarak kullanıcının istediği gibi görüntüler. Ek olarak, metinler, programlarda olduğu gibi, farklı "kelime öbekleri" setleri kullanılarak ve hatta farklı dillerde aynı şekilde biçimlendirilebilir.
Bununla birlikte, kodlar arasında temel bir fark varbelgeler ve bilgisayar programları için. Birincisinin kendi kendini deşifre edememesi gerçeğinden oluşur. Üçüncü taraf programların her zaman biçimlendirilmiş metin dosyalarını açması gerekir.
Veri şifreleme
"Kod" teriminin başka bir yorumubilgisayarlar söz konusu olduğunda, bu veri şifrelemedir. Yukarıda, bu kelimeyi "kodlama" terimi ile eşanlamlı olarak kullandık ve buna izin verilir. Bu durumda, şifreleme ile farklı bir fenomeni kastediyoruz. Yani, dijital verilerin başkalarının bunlara erişimini engellemek için kodlanması. Bilgisayar dosyalarının korunması, BT alanındaki en önemli faaliyet alanıdır. Bu aslında ayrı bir bilimsel disiplindir ve okul bilgisayar bilimi de bunu içerir. Yetkisiz erişimi önlemek için dosyaların şifrelenmesi, önemi zaten çocuklukta olan modern ülke vatandaşlarına sunulan bir görevdir.
Mekanizmalar nasılveri şifreleme yapıldı mı? Prensip olarak, daha önce düşündüklerimiz kadar basit ve anlaşılırdır. Kodlama, temel mantık ilkeleri açısından kolayca açıklanabilen bir süreçtir.
Bir mesaj göndermemiz gerektiğini varsayalım"Ivanov Petrov'a gidiyor" diye kimse okuyamasın. Mesajı şifrelemesi için bilgisayara güveniyoruz ve sonucu görüyoruz: "10-3-1-15-16-3-10-5-7-20-11-17-6-20-18-3-21". Bu kod elbette çok basittir: her rakam alfabedeki cümlenizin harflerinin sıra sayısına karşılık gelir. "Ve" 10. sırada yer alır, "B" - 3'te, "A" - 1'de vb. Ancak modern bilgisayar kodlama sistemleri, verileri onlar için bir anahtar bulmak inanılmaz derecede zor olacak şekilde şifreleyebilir.