Skip to main content

დელტა კოდირება

Delta Encoding

        დელტა კოდირება არის მონაცემთა ტრანსფორმაციის მეთოდი რომელიც მონაცემებს ინახავს საწყისი მონაცემების სხვაობების სახით. ის არ განეკუთვნება მონაცემთა შეკუმშვის ჯგუფს, თუმცა აქტიურად გამოიყენება შეკუმშვისას როგორც მონაცემთა პირველადი ტრანსფორმაციის მეთოდი, ამის გამო მას დელტა შეკუმშვასაც(delta compression) უწოდებენ. ვთქვათ მოცემული გვაქვს A={ a1, a2, ..., an } მიმდევრობა, მაშინ დელტა კოდირების საშუალებით მიიღება B = { b1, b2, ... , bn } მიმდევრობა რომლის ნებისმიერი bi- წევრი  უდრის (Ai-Ai-1)-ს, სადაც i იცვლება 1-დან n-მდე. სწორედ მისი ასეთი ფუნქციონალობის გამო მნიშვნელობათა სიმრავლე იზრდება 2-ჯერ. თუმცა მას გააჩნია კარგი თვისებებიც რომელიც ამ მეთოდს აქტუალურობას უნარჩუნებს. პირველი კარგი თვისება არის ის რომ მისი იმპლემენტაცია არის ძალიან ადვილი(რაც სტატიის ბოლოს მოყვანილ კოდში კარგად ჩანს). მეორე ყველაზე მთავარი მისი თვისება არის ის რომ თუკი დავაკვირდებით მონაცემთა განაწილების სტატისტიკას ვნახავთ რომ ის ამცირებს მონაცემთა გაბნევის მაჩვენებელს. აქვე უნდა აღინიშნოს რომ გაბნევის მაჩვენებლის შემცირება ხდება მაშინ თუკი საწყისი მონაცემებში მეზობელ ელემენტებზე გადასვლისას მნიშვნელობების მკვეთრი ცვლა არ არის ხშირი, რაც პრაქტიკაში ხშირად გვხვდება. ქვემოთ მოცემულ სურათზე ნაჩვენებია დისკრეტული აუდიო სიგნალი კოდირებამდე და კოდირების შემდეგ სადაც თვალში საცემია გაბნევის დიაპაზონის შემცირება:

        მისი ამ თვისების გამო ის უქმნის კარგ წინაპირობას სტატისტიკურ შემკუმშველებს, ისეთს როგორიცაა ჰაფმენის კოდირება. პროგრამული იმპლემენტაციის კოდი, რომელიც ახდენს მონაცემთა კოდირებას და დეკოდირებას, აღებულია ვიკიპედიიდან:

void delta_encode (char *buffer, const unsigned int length)
{
    char delta = 0;
    char original;
    unsigned int i;
    for (i = 0; i < length; ++i)
    {
        original = buffer[i];
        buffer[i] -= delta;
        delta = original;
    }
}
 
void delta_decode (char *buffer, const unsigned int length)
{
    char delta = 0;
    unsigned int i;
    for (i = 0; i < length; ++i)
    {
        buffer[i] += delta;
        delta = buffer[i];
    }
}


        აქვე უნდა აღინიშნოს მისი იმ თვისების გამო რომ მნიშვნელობათა არე იზრდება 2ჯერ შესაზლოა მოხდეს მონაცემთა გადავსება რადგან მნიშვნელობების დაბრუნება ხდება იმავე მასივში თუმცა საილუსტრაციოდ იმპლემენტაციის ეს ვარიანტი ვფიქრობ სავსებით ნორმალურია.

Comments

Popular posts from this blog

რუსული რულეტკის მეთოდი

Russian Roulette Technique რუსული რულეტკის მეთოდი არის ფართოდ გავრცელებული ტექნიკა მონტე-კარლოს ინტეგრირების პროცესის შესაწყვეტად(სახელწოდება მოდის ცნობილი რუსული თამაშიდან). იმის მაგივრად, რომ პროცესი შევწყვითოთ ხისტად, მაგალითად შერჩევების რაოდენობის რაიმე მაქსიმალურ რაოდენობაზე, რუსული რულექტკის მეთოდი გვეხმარება ინტეგრირების პროცესის მიუკერძოვებლად შეწყვეტაში. მთავარი იდეა რუსული რულეტკის მეთოდისა არის ის, რომ რუსული რულეტკა წყვეტს მონტე კარლოს მეთოდს რაიმე არანულოვანი p ალბათობით(ალბათობა შეიზლება შეირჩეს ერთხელ ან მონტე კარლოს მეთოდის ყოველ ბიჯზე სათითაოდ რაიმე მნიშვნელოვნობით) ან აგრძელებს მას და შემდგომი პროცესიდან მიღებულ შედეგს ამრავლებს 1/p - ზე. რადგან რუსული რულეტკის მეთოდი პროცესის შეწყვეტას ახდენს რაიმე არანულოვანი p ალბათობით ყოველთვის რჩება იმის შანსი, რომ პროცესი გაგრძელდეს რაც იმას ნიშნავს, რომ მონტე კარლოს ინტეგრირების პროცესისათვის ნებისმიერი სიღრმე მიღწევადი ხდება. სწორედ ამიტომ ხისტი შეზღუდვით მიღებული მიკერძოება( სისტემატიური შეცდომა ) ქრება რუსული რ...

ფერების RGB მოდელი

RGB Color Model         ფერების RGB მოდელი წარმოადგენს ისეთ მოდელს რომელშიც სამი ძრირითადი ფერის წითელი, მწვანე და ლურჯის საშუალებით მიიღება ფერების ფართო სპექტრი. მისი დასახელებაც მოდის სწორედ ძირითადი ფერების ინგლისური სახელწოდების ინიციალებიდან(Red, Green, Blue).         ფერთა სპექტრის ამდაგვარი წარმოდგენა დაკავშირებულია იმასთან, რომ გამოსახულების გამოტანის მოწყობილობებში რომელიც გააჩნიათ კომპიუტერებს, ტელევიზორებს ფერის მიღება ფიზიკურად ხდება სწორედ ამ სამი ძირითადი ფერის შეზავებით. დღესდღეობით ყველაზე გავრცელებული არის 24 ბიტიანი RGB მოდელი, სადაც თითოეულ კომპონენტს ეთმობა ერთი ბაიტი და შესაბამისად შეუძლია მიიღოს ნებისმიერი მნიშვნელობა [0, 255] დიაპაზონში, რაც საბოლოოდ გვაძლევს 16777216 განსხვავებულ ფერს.

სინათლის ხილული სპექტრი და სხივის თვისებები

Visible Spectrum სურათზე ნაჩვენებია პრიზმაში გამავალი თეთრი სხივის სპექტრულად გაშლის პროცესი.         სინათლე წარმოადგენს ელექტრომაგნიტურ ტალღას, რომელსაც როგორც ყველა ელექტრომაგნიტურ ტალღას გააჩნია რამოდენიმე მნიშვნელოვანი მახასიათებელი. ერთერთი მნიშვნელოვანი მახასიათებელი არის ტალღის სიგრძე, რომელიც განსაზღვრავს სხივის სპექტრულ ფერს. ელექტრომაგნიტური ტალღები ბუნებაში და თანამედროვე სამყაროში მრავლად გვხვდები. სხვადასხვა ტალთის სიგრძის(სიხშირის) ტალღებს იყენებენ როგორც საყოფაცხოვრებო(რადიო, მობილური ტელეფონი) დანიშნულების, ასევე სამედიცინო(რენდგენის სხივები) და სამხედრო(რადარები) მოწყობილობებში. ადამიანის თვალისთვის ხილული სინათლის ელექტრომაგნიტური ტალღების ტალღის სიგრძე იწყება დაახლოებით 400 ნანომეტრიდან და მთავრდება 700 ნანომეტრზე. ამ დიაპაზონს ქვემოთ ექცევა ულტრაიისფერი ტალღები და დიაპაზონს ზემოთ ექცევა ინფრაწითელი, რომელსაც ადამიანის თვალი ვერ აღიქვამს(იხილეთ ქვემოთ მოცემული სურათი). სინათლის თეთრი სხივი შედგება სხვადასხვა სიხშირის ტალღების ერ...