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

ყურადღებას იპყრობს

მაგალითად, კარგი ძველი GIF ფორმატი იყენებს 256 ფერამდე პალიტრას. თუ გსურთ შეინახოთ თქვენი სელფების სერია, როგორც GIF ანიმაცია (ვის დასჭირდება ეს), მაშინ პირველი, რაც თქვენ, უფრო სწორად, პროგრამა, რომელსაც ამისათვის გამოიყენებთ, უნდა გააკეთოთ არის პალიტრის შექმნა. შეგიძლიათ გამოიყენოთ სტატიკური პალიტრა, მაგალითად ვებ-უსაფრთხო ფერები, კვანტიზაციის ალგორითმი აღმოჩნდება ძალიან მარტივი და სწრაფი, მაგრამ შედეგი არ იქნება ძალიან კარგი. თქვენ შეგიძლიათ შექმნათ ოპტიმალური პალიტრა გამოსახულების ფერებზე დაყრდნობით, რაც მოგცემთ შედეგს, რომელიც ვიზუალურად ყველაზე მეტად ჰგავს ორიგინალს.

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

შემდეგ თქვენ იხილავთ მოსაწყენ და გაუგებარ ისტორიას მედიანური განყოფილების მეთოდის, ფლოიდ-შტაინბერგის შეცდომის დისპერსიის ალგორითმის (და არა მხოლოდ), ადამიანის თვალის ფერის აღქმის თავისებურებებზე, ისევე როგორც ცოტა კოდის შესახებ. .

ფონი

დიდი ხნის წინ, როცა Nokia თბილი იყო და სმარტფონების ბაზარზე ტუბი დომინირებდა და სმარტფონების მფლობელები ამაყად უწოდებდნენ საკუთარ თავს „სმარტფონის ხალხს“, იმ ძველ დროში მე ვწერდი მარტივ პროგრამებს პითონში სერიებისთვის60. ერთ-ერთ მათგანს მეორე დღეს არქივის თხრისას წავაწყდი. GifTool არის პროგრამა სურათების ნაკრებიდან GIF ანიმაციის შესაქმნელად. მასში მე განვახორციელე კვანტიზაცია მედიანური განყოფილების მეთოდის გამოყენებით, LZW შეკუმშვის ალგორითმი, დამოუკიდებლად შეიქმნა ფაილის მთელი სტრუქტურა და გამჭვირვალობა გამოყენებული იყო პიქსელებისთვის, რომლებიც არ იცვლებოდა შემდეგ სლაიდზე, ფაილის საბოლოო ზომის შესამცირებლად. მინდოდა მეხსიერების განახლება და მენახა როგორ მუშაობდა. მე გავხსენი კოდი და... ის გრძნობა, როცა ვერ ხვდები შენს ათი წლის წინანდელ კოდს. მაშინ მე არ ვიცოდი PEP8-ის შესახებ, ამიტომ კოდის წაკითხვა ოდნავ ნაკლები იყო, ვიდრე არარსებული (იმ დროს მე მომწონდა მინიმალიზმი, როგორც ბევრი დამწყები პროგრამისტი). რამდენიმე ცრემლი გადმოვღვარე, შევაფურთხე, გავაკეთე ის PyCharm-ში, გავარკვიე, როგორ განმეხორციელებინა მედიანური განყოფილების მეთოდი და სწრაფად შევქმენი „ბინძური“ სკრიპტი. მუშაობს! პალიტრა იქმნება, გამოსავალი გამოსახულება ტოლერანტულია. შემდეგ კი დავინტერესდი, შემეძლო თუ არა უკეთესი შედეგის მიღწევა, რომ სურათი ვიზუალურად რაც შეიძლება ახლოს ყოფილიყო ორიგინალთან.


ასე რომ - მედიანური განყოფილების მეთოდი. ჯოჯოხეთივით მარტივია. პირველი ნაბიჯი არის RGB კუბის შექმნა გამოსახულების ყველა უნიკალური ფერისგან. შემდეგი, გაჭერით იგი ყველაზე გრძელი მხარის გასწვრივ. მაგალითად, ჩვენი წითელი დიაპაზონი არის 7-დან 231-მდე (სიგრძე 231-7=224), მწვანე 32-დან 170-მდე (სიგრძე 170-32=138), ლურჯი 12-დან 250-მდე (სიგრძე 250-12=238), რაც ნიშნავს ჩვენ "დავჭრით" კუბს ლურჯი მხარის გასწვრივ. ჩვენ ასევე დავჭრათ მიღებული სეგმენტები გრძელი მხარის გასწვრივ და ა.შ. სანამ არ მივიღებთ 256 სეგმენტს. თითოეული სეგმენტისთვის გამოთვალეთ საშუალო ფერი - ასე ვიღებთ პალიტრას.

რამდენიმე სურათი თითქმის თემას ეხება, სიცხადისთვის



რისი გაუმჯობესება შეიძლება აქ? პირველი რაც მახსენდება არის საშუალო ფერის გამოთვლა, არა ყველა ფერის სულელურად შეკრებით და მათი რიცხვით გაყოფით [ჯამ(ფერი) / დათვლა(ფერი)], არამედ იმის გათვალისწინებით, თუ რამდენჯერ გამოჩნდება თითოეული ფერი. გამოსახულებაში. ანუ, ჩვენ ვამრავლებთ თითოეულ ფერს გამოსახულებაში მისი გაჩენის რაოდენობაზე, ვამატებთ მიღებულ მნიშვნელობებს და ვყოფთ შედეგს მოცემული სეგმენტის ყველა ფერის გამოსახულებაში გამოჩენის რაოდენობაზე [ ჯამი(ფერი * ჯამი) / ჯამი (სულ)]. შედეგად, გამოთვლაში უპირატესობა ენიჭება ყველაზე ხშირად ნაცნობ ფერებს, მაგრამ იშვიათ ფერებსაც აკეთებენ საკუთარი კორექტირება, ამიტომ პალიტრა უკეთესია და ფერების ვიზუალური გადახრა ნაკლებია. უკეთესი შედეგისთვის მიზანშეწონილია გამაც გაითვალისწინოთ, მაგრამ ეს მოგვიანებით დავტოვე. მეორე არც ისე აშკარაა - მედიანური განყოფილება არ ითვალისწინებს ადამიანის თვალით ფერის აღქმის თავისებურებებს. ჩვენ უფრო კარგად აღვიქვამთ მწვანე ფერებს, ვიდრე ცისფერ ფერებს. გადავწყვიტე გამომესწორებინა ეს გაუგებრობა და კუბი „გაბრტყელდა“ - გვერდების სიგრძე გავამრავლე ამ სტატიის კოეფიციენტებზე. შედეგად, მეტი მონაკვეთი იყო მწვანე და წითელ მხარეს, ხოლო ნაკლები ლურჯ მხარეზე. ასეთი გამოსავალი სხვაგან არ მინახავს (შეიძლება კარგად არ გამოვიყურე), მაგრამ შედეგი აშკარაა.

ახლა ჩვენ გვაქვს ოპტიმალური პალიტრა, არა იდეალური რა თქმა უნდა (ვიცი, რომ მისი შემდგომი გაუმჯობესება შესაძლებელია), მაგრამ საკმარისად კარგი. შემდეგი ნაბიჯი არის სურათის ფერების ინდექსირება. უმარტივესი ვარიანტია, რომელ სეგმენტშია ფერი, ისევე როგორც ინდექსი. სწრაფი და მარტივი. მაგრამ არის ერთი მაგრამ, და არც ერთი, ამიტომ ამ ნაბიჯს მოგვიანებით დავუბრუნდებით.

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

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

ისე, მოკლედ მინდოდა აეხსნა, მაგრამ გაუგებარი ნაწერის მთელი თაიგული აღმოჩნდა. იმედი მაქვს იმაზე უკეთეს კოდს დავწერ ვიდრე ავხსნი, ამიტომ აქ არის github-ის ბმული. კოდი რამდენჯერმე გადაიწერა, ჯერ ალგორითმი დაიხვეწა, სანამ შედეგით არ დავკმაყოფილდი, მერე აღმოჩნდა, რომ ძალიან ბევრ RAM-ს ჭამდა ფოტოების დამუშავებისას (ჯერ პატარა სურათებზე დავტესტე), მომიწია გადატანა. RGB კუბი, მედიანური განყოფილება და პიქსელის რუკა მონაცემთა ბაზაში (sqlite). სკრიპტი მუშაობს ძალიან ნელა, მაგრამ შედეგი უკეთესია, ვიდრე კვანტიზაცია PIL/Pillow-ისა და GIMP-ის გამოყენებით (მასში ამ ოპერაციას ინდექსირება ეწოდება).

ვიზუალური დემონსტრირება:

ორიგინალი

კვანტიზაციის შედეგი GIMP-ში, 256 ფერის ოპტიმალური პალიტრა + ფლოიდ-სტენბერგის ფერის დაბინდვა (ნორმალური)

Quantization შედეგი PIL/Pillow image.convert(mode="P", dither=PIL.Image.FLOYDSTEINBERG, palette=PIL.Image.ADAPTIVE, ფერები=256)

კვანტიზაციის შედეგი ჩემი კოდით

რას მივაქციოთ ყურადღება: GIMP-ის შეცდომის დისპერსია ძალიან ხმაურიანია, PIL/Pillow ქმნის არც თუ ისე ოპტიმალურ პალიტრას და პრაქტიკულად არ აშორებს შეცდომებს (მკვეთრი გადასვლები ფერებს შორის).
თუ განსხვავებას ვერ ხედავთ, გადახედეთ სხვა მაგალითებს github-ზე.


P.S.:არის მშვენიერი პროგრამა Color Quantizer, რომელიც ამ ამოცანას უკეთ და სწრაფად ართმევს თავს, ამიტომ ჩემს სკრიპტს პრაქტიკული მნიშვნელობა არ აქვს, ის მხოლოდ „სპორტული“ ინტერესის გამო შეიქმნა.
UPD:განაახლეს პროექტი github-ზე. დამატებულია Octree კვანტიზაციის ალგორითმი, შეცდომების დისპერსიის პოპულარული ფორმულები, მოძებნეთ უახლოესი ფერი საშუალო წითელი მნიშვნელობით.

ფერის სიღრმის განსაზღვრა

კომპიუტერების უმეტესობა აჩვენებს 8, 16 ან 24 ბიტს პიქსელზე. ეს განსაზღვრავს ნაჩვენები სურათის ფერის სიღრმეს.

მიუხედავად იმისა, თუ რამდენ ფერს აჩვენებს სისტემა, MATLAB-ს შეუძლია შეინახოს და დაამუშაოს სურათები სხვადასხვა რაოდენობის ბიტით თითო პიქსელზე: 224 ფერი RGB გამოსახულებებისთვის uint8 ფორმატში, 248 ფერი RGB გამოსახულებებისთვის uint16 ფორმატში და 2159 ფერი RGB სურათებისთვის ორმაგი ფორმატი. ეს სურათები საუკეთესოდ არის ნაჩვენები 24-ბიტიან ფერთა სისტემაზე, თუმცა გამოსახულების წყაროები ყოველთვის ვერ უზრუნველყოფენ ამ ფერის სიღრმეს. უმეტეს შემთხვევაში ისინი უზრუნველყოფენ 16-ბიტიან ფერთა წარმოდგენას.

  • სისტემის ფერის სიღრმის განსაზღვრის აღწერა
  • ფერის სიღრმის შერჩევის აღწერა

ფერის სიღრმის აღწერა

შემდეგი კოდი გამოიყენება სისტემის ფერის სიღრმის დასადგენად.

მიიღეთ (0"ეკრანის სიღრმე") ans = 32

MATLAB აბრუნებს ბიტების რაოდენობას პიქსელზე:

მნიშვნელობა აღწერა
8 8-ბიტიანი წარმოდგენა ნაჩვენებია 256 ფერში. 8-ბიტიანი ნახევარტონური სურათები 24-ბიტიანი გრაფიკული წარმოდგენის ნაწილია.
16 16-ბიტიანი წარმოდგენა ჩვეულებრივ იყენებს 5 ბიტს თითო ფერის კომპონენტზე, რაც უდრის 32 გრადაციას (ანუ 2 5) წითელი, მწვანე და ლურჯი კომპონენტებისთვის. შედეგად, ეს წარმოდგენა მხარს უჭერს 32,768 (ანუ 2 15) სხვადასხვა ფერს. ზოგიერთი სისტემა იყენებს დამატებით ბიტს, რათა გაზარდოს ნაჩვენები ფერის გრადაციების რაოდენობა. ჩვენს შემთხვევაში, სხვადასხვა ფერის რაოდენობა 16-ბიტიანი წარმოდგენით არის 64,536 (ანუ 2 16).
24 24-ბიტიანი რენდერი იყენებს 8 ბიტს სამი ფერის კომპონენტიდან თითოეულისთვის, ე.ი. 256 (2 8) გრადაცია წითელი, მწვანე და ლურჯი კომპონენტებისთვის. შედეგი არის 16,777,216 (ანუ 2 24) განსხვავებული ფერი.
32 32-ბიტიანი რენდერი იყენებს 24 ბიტს ფერის ინფორმაციის შესანახად და კიდევ 8 ბიტს მონაცემთა გაჯერების (გამჭვირვალობის) შესანახად. ეს არის ეგრეთ წოდებული ალფა არხი.

ფერის სიღრმის შერჩევის აღწერა

გამოყენებული სისტემის მიხედვით, პიქსელზე ბიტების რაოდენობა შეიძლება დაყენდეს სხვადასხვა მნიშვნელობებზე. (ეს ასევე შეიძლება დაკავშირებული იყოს გრაფიკული ობიექტების გარჩევადობასთან. უმეტეს შემთხვევაში, 24-ბიტიანი წარმოდგენა უზრუნველყოფს კარგ ვიზუალიზაციას. თუ საჭიროა ნაკლები ბიტის გამოყენება თითო პიქსელზე, მაშინ შეიძლება გამოყენებულ იქნას 16-ბიტიანი გამოსახულება. როდესაც ნახევარტონური სურათების დამუშავება, უმეტეს შემთხვევაში საკმარისია 8 ბიტი პიქსელზე.

სურათზე ფერების რაოდენობის შემცირება

ამ განყოფილებაში აღწერილია ინდექსის ან RGB სურათებში ფერების რაოდენობის შემცირების მეთოდი. განვიხილოთ აგრეთვე დიფუზიური ფსევდოფერების შერევის მეთოდი (გაწურვა). ეს მეთოდი იყენებს სურათზე ფერების რაოდენობის ვიზუალურ ზრდას.

ქვემოთ მოცემულია სურათის ფერის შემცირების ფუნქციების მოკლე აღწერა სურათის დამუშავების ხელსაწყოთა ყუთში.

24-ბიტიანი RGB ფერადი ეკრანის მქონე სისტემებზე სურათების ჩვენება შესაძლებელია 16,777,216 (ანუ 2 24) ფერში. სისტემებზე, სადაც ნაჩვენებია ნაკლები RGB ფერები, სურათები ასევე კარგად გამოჩნდება, რადგან MATLAB ავტომატურად იყენებს ფერთა მიახლოებას და დიფუზიურ ფსევდოფერთა შერევას.

ინდექსის სურათებს შეიძლება ჰქონდეს პრობლემები ფერების დიდი რაოდენობით. ძირითადად შემოიფარგლება 256 ფერით. ეს გამოწვეულია შემდეგი მიზეზების გამო:

  • 8-ბიტიანი დისპლეის სისტემებზე, 256-ზე მეტი ფერის მქონე ინდექსის სურათების გადაცემისას, გამოიყენება დიტერინგი, რადგან ყველა ფერი არ შეიძლება იყოს წარმოდგენილი სისტემის მიერ.
  • ზოგიერთ სისტემაში პალიტრას, პრინციპში, არ შეუძლია ჰქონდეს 256-ზე მეტი პოზიცია.
  • თუ ინდექსის სურათი შეიცავს 256-ზე მეტ ფერს, MATLAB ინახავს გამოსახულების მონაცემებს მასივში არა uint8 ფორმატში, არამედ ორმაგი სიზუსტის ფორმატში. ეს იწვევს უფრო მეტი ინფორმაციის შენახვას, რადგან თითოეული პიქსელი იკავებს 64 ბიტს.
  • მიზანშეწონილია დიდი სურათის ფაილების ჩაწერა ფორმატში, რომელიც იყენებს 256 ფერს რენდერისთვის. თუ იმავე ფორმატში ჩაწერისას (imwrite ფუნქციის გამოყენებით) სურათებს აქვთ 256-ზე მეტი ფერი, მაშინ მომავალში შესაძლებელია შეცდომები რენდერში.

ინდექსის სურათზე ფერების რაოდენობის შემცირება

rgb2ind-ის გამოყენებით

rgb2ind ფუნქცია გარდაქმნის RGB სურათს ინდექსის სურათად, რაც ამცირებს ნაჩვენები ფერების რაოდენობას. წყაროს სურათის დამუშავებისას ფუნქცია იყენებს ფერის მიახლოების შემდეგ მეთოდებს:

  • კვანტიზაცია
    • ერთიანი კვანტიზაცია
    • ყველაზე დაბალი დისპერსიული კვანტიზაცია
  • პალიტრის ჩვენება

მიღებული გამოსახულების ხარისხი დამოკიდებულია შერჩეულ მიახლოების მეთოდზე, წყაროს გამოსახულების ფერთა დიაპაზონზე და დაბინძურების გამოყენებაზე. გაითვალისწინეთ, რომ მეთოდების შედეგი ასევე დიდად არის დამოკიდებული კონკრეტულ სურათზე.

კვანტიზაცია

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

ამ საკითხის განხილვისას გამოიყენება RGB ფერის კუბის კონცეფცია. RGB ფერის კუბი არის ყველა ფერის სამგანზომილებიანი მასივი, რომელიც განსაზღვრულია ამ მონაცემთა ტიპისთვის. ვინაიდან MATLAB-ში გამოსახულებები შეიძლება წარმოდგენილი იყოს სხვადასხვა ფორმატში (uint8, uint16 ან double), ეს გავლენას მოახდენს ფერების შერჩევაზე RGB კუბში.

ერთიანი კვანტიზაცია.ერთიანი კვანტიზაციის შესასრულებლად გამოიყენეთ rgb2ind ფუნქცია შესაბამისი პარამეტრებით.

ქვემოთ მოცემულია ერთიანი კვანტიზაციის მაგალითი. მეორე არგუმენტი გავლენას ახდენს კვანტიზაციის დისკრეტულობაზე.

RGB = imread("peppers.png");

= rgb2ind (RGB, 0.1);

გამოსახულება აჩვენებს uint8 ფორმატში წარმოდგენილი გამოსახულების ერთგვაროვან კვანტიზაციას. მოხერხებულობისთვის, სურათზე ნაჩვენებია ფერადი კუბის ორგანზომილებიანი ნაჭერი, სადაც წითელი არის 0, ხოლო მწვანე და ცისფერი დიაპაზონი არის .კვანტიზაცია უმცირესი დისპერსიით.

უმცირესი დისპერსიით კვანტიზაციის განსახორციელებლად გამოიყენება rgb2ind ფუნქცია, რომელიც მიუთითებს გამოსახულებაში ფერების მაქსიმალურ რაოდენობაზე. ეს რიცხვი განსაზღვრავს უჯრედების რაოდენობას, რომლებშიც გაიყოფა RGB ფერის კუბი. მოდით შევხედოთ კვანტიზაციის მეთოდის განხორციელების მაგალითს, რათა შევქმნათ ინდექსის გამოსახულება 185 ფერის გამოყენებით.

RGB = imread("peppers.png");

= rgb2ind(RGB,185);

imapprox ფუნქცია ასევე გამოიყენება გამოსახულების ფერების რაოდენობის შესამცირებლად. imapprox ფუნქცია იყენებს რამდენიმე მიახლოების ტექნიკას. არსებითად, imapprox ფუნქცია ჯერ იყენებს ind2rgb ფუნქციას გამოსახულების RGB-ად გადასაყვანად, შემდეგ კი იყენებს rgb2ind ფუნქციას, რომ გადაიყვანოს ის ინდექსის სურათად შეცვლილი ფერების რაოდენობით.

მაგალითი.
მოდით შევხედოთ სურათების გენერირების მაგალითს, რომელიც შეიცავს 128 და 16 ფერს, შესაბამისად rgb2ind და imapprox ფუნქციების გამოყენებით.

L=imread("peppers.png"); ფიგურა,imshow(L);


ორიგინალური სურათი

L=im2double(L);


= rgb2ind(L, 128); ფიგურა,imshow(x,რუქა);

სურათი 128 ფერით


Imapprox(x,რუქა,16); figure,imshow(Y, newmap);

სურათი 16 ფერით

დამუშავებული გამოსახულების ხარისხი დამოკიდებულია იმაზე, თუ რომელი მიახლოების მეთოდია გამოყენებული, ორიგინალ სურათში ფერების რაოდენობაზე და გამოყენებულია თუ არა დაშორების მეთოდი. გაითვალისწინეთ, რომ სხვადასხვა მეთოდი იძლევა განსხვავებულ შედეგს სხვადასხვა სურათზე.

ფერთა გადასვლების გლუვი

დიფუზიური ფსევდოფერის შერევის მეთოდი (გაწურვა)

გამოსახულების ფერების რაოდენობის შესამცირებლად rgb2ind ან imapprox ფუნქციების გამოყენებისას, მიღებული სურათის ხარისხი ოდნავ დაბალია. ეს გამოწვეულია იმ ფერების რაოდენობის შემცირებით, რომლებშიც ნაჩვენებია სურათი. ორივე rgb2ind და imapprox ფუნქციები იყენებენ dithering-ს. ეს იწვევს ნაჩვენები ფერების რაოდენობის ვიზუალურ ზრდას. დაბინძურების მეთოდი ცვლის სამეზობლოში პიქსელების ფერებს ისე, რომ უბნის საშუალო ფერი უახლოვდება ორიგინალურ RGB ფერს.

  1. მოდით შევხედოთ მაგალითს, თუ როგორ მუშაობს dithering მეთოდი.

  2. ორიგინალური სურათის კითხვა და ვიზუალიზაცია.

  3. rgb=imread("onion.png"); imshow (rgb);

    შექმენით ინდექსის გამოსახულება რვა ფერით დაბინძურების გამოყენების გარეშე.

    =rgb2ind(rgb,8"არა"); ფიგურა, imshow(X_no_dither,რუქა);

    შექმენით რვა ფერის ინდექსის გამოსახულება დიტერინგის გამოყენებით. =rgb2ind(rgb,8"dither"); ფიგურა, imshow(X_dither,რუქა);

    ყველაზე გავრცელებული ფერადი სისტემა, რომელიც გამოიყენება გამოსახულების დამუშავების ხელსაწყოებში ციფრული სურათების აღწერისთვის არის RGB. ამ შემთხვევაში, პალიტრის სვეტები წარმოადგენს წითელი, მწვანე და ლურჯი კომპონენტების ინტენსივობას. პალიტრის სურათებს შეიძლება ჰქონდეთ თვითნებური ფერის სიღრმე, თუმცა ყველაზე ფართოდ გამოყენებული პალიტრის სურათებია ფერების სიღრმე 4 და 8 ბიტი პიქსელზე, შესაბამისად.

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

    კონვერტაციები მოწყობილობაზე დამოკიდებულ ფერთა სივრცეებს ​​შორის

    განვიხილოთ ორი ფერის სივრცე RGB და CMYK. ნებისმიერი ფერი RGB სივრცეში წარმოიქმნება წითელი, მწვანე და ლურჯი კომპონენტების სხვადასხვა რაოდენობის ჯამის სახით. როდესაც ყველა კომპონენტის მნიშვნელობები ნულის ტოლია, მაშინ შავი ფერი იქმნება. თუ ყველა კომპონენტი მიიღებს მაქსიმალურ შესაძლო მნიშვნელობას, მაშინ იქმნება თეთრი ფერი. თუმცა, "თეთრი ფერის" კონცეფცია სავარაუდოა. ფაქტია, რომ RGB კომპონენტები იძლევა მხოლოდ კარგ მიახლოებას, ხოლო ნამდვილი თეთრი ფერის მიღება შესაძლებელია მხოლოდ მისი სპექტრული კომპონენტის დამატებით და არა მხოლოდ R, G და B. CMYK სივრცეში თეთრი ფერი მიიღწევა ყველა მისი ნულობით. კომპონენტები და ციანი (C, ციანი), მაგენტა (M, მაგენტა) და ყვითელი (Y, ყვითელი) გამოიყენება სხვა ფერების შესაქმნელად. ამ ფერის სივრცის მინუსი არის ის, რომ მოწყობილობებს, რომლებიც იყენებენ მას, ვერ აჩვენებენ ნათელ და გაჯერებულ ფერებს.

    RGB და CMYK ფერთა სივრცეები დამოკიდებულია მოწყობილობაზე, რადგან მათში არსებული ფერი მიბმულია მოწყობილობასთან, რომლისთვისაც დაყენებულია ეს მნიშვნელობები. "მოწყობილობა" შეიძლება იყოს პრინტერი, სკანერი, მონიტორი და ა.შ. მართლაც, თითოეული პრინტერი, სკანერი ან მონიტორი აჩვენებს ერთსა და იმავე სურათს საკუთარ ფერებში, თუმცა მათთვის მიწოდებული RGB მნიშვნელობები იგივეა.

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

    ცხრილი აჩვენებს მოწყობილობაზე დამოკიდებული ფერის სივრცეების ჩამონათვალს, რომლებიც მხარდაჭერილია Matlab გამოსახულების დამუშავების აპლიკაციის მიერ.

    ფუნქცია მიზანი მიზანი
    XYZ სპექტრული პირველადი ფერების კოორდინატთა სისტემა, რომელიც შეიქმნა 1931 წელს CIE-ის (განათების საერთაშორისო კომისია) მიერ. xyY, uvL, u"v"L და L*a*b*
    xyY ნორმალიზებული ქრომატული მნიშვნელობების მიღების აღწერა. Y კომპონენტი, როგორც XYZ სისტემაში, წარმოადგენს სიკაშკაშეს. XYZ
    uvL თანაბარი კონტრასტის კოორდინატთა სისტემა. წარმოადგენს სიკაშკაშეს და არის Y-ის ანალოგი XYZ-ში. XYZ
    u"v"L ადრინდელი სისტემის ევოლუცია ფერთა სივრცის შესაქმნელად, რომელშიც ქრომის და განათების ცალკეული ცვლილებები თანაბრად აღიქმება. XYZ
    L*a*b* აღქმისა და სიკაშკაშის დამოკიდებულების გათვალისწინების მცდელობა. L*წარმოადგენს არაწრფივ სკალირებას , ნორმალიზებულია ზოგიერთი პუნქტის მიმართ. XYZ
    L*ch ამ მოდელში c და h წარმოადგენს გაჯერებას და ქრომას, შესაბამისად. პოლარულ კოორდინატებში ეს სისტემა გარდაიქმნება L*a*b*. L*a*b*
    sRGB ფერადი სივრცე, რომელიც შეესაბამება საშუალო CRT მონიტორის ფერთა გამას. XYZ და L*a*b*

    მაგალითი: სურათების წარმოდგენა სხვადასხვა ფერის სივრცეში

    წაიკითხეთ RGB გამოსახულება MATLAB სამუშაო სივრცეში და გადააქციეთ ფერის მონაცემები XYZ ფერთა სივრცეში:

ყურადღებას იპყრობს

მაგალითად, კარგი ძველი GIF ფორმატი იყენებს 256 ფერამდე პალიტრას. თუ გსურთ შეინახოთ თქვენი სელფების სერია, როგორც GIF ანიმაცია (ვის დასჭირდება ეს), მაშინ პირველი, რაც თქვენ, უფრო სწორად, პროგრამა, რომელსაც ამისათვის გამოიყენებთ, უნდა გააკეთოთ არის პალიტრის შექმნა. შეგიძლიათ გამოიყენოთ სტატიკური პალიტრა, მაგალითად ვებ-უსაფრთხო ფერები, კვანტიზაციის ალგორითმი აღმოჩნდება ძალიან მარტივი და სწრაფი, მაგრამ შედეგი არ იქნება ძალიან კარგი. თქვენ შეგიძლიათ შექმნათ ოპტიმალური პალიტრა გამოსახულების ფერებზე დაყრდნობით, რაც მოგცემთ შედეგს, რომელიც ვიზუალურად ყველაზე მეტად ჰგავს ორიგინალს.

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

შემდეგ თქვენ იხილავთ მოსაწყენ და გაუგებარ ისტორიას მედიანური განყოფილების მეთოდის, ფლოიდ-შტაინბერგის შეცდომის დისპერსიის ალგორითმის (და არა მხოლოდ), ადამიანის თვალის ფერის აღქმის თავისებურებებზე, ისევე როგორც ცოტა კოდის შესახებ. .

ფონი

დიდი ხნის წინ, როცა Nokia თბილი იყო და სმარტფონების ბაზარზე ტუბი დომინირებდა და სმარტფონების მფლობელები ამაყად უწოდებდნენ საკუთარ თავს „სმარტფონის ხალხს“, იმ ძველ დროში მე ვწერდი მარტივ პროგრამებს პითონში სერიებისთვის60. ერთ-ერთ მათგანს მეორე დღეს არქივის თხრისას წავაწყდი. GifTool არის პროგრამა სურათების ნაკრებიდან GIF ანიმაციის შესაქმნელად. მასში მე განვახორციელე კვანტიზაცია მედიანური განყოფილების მეთოდის გამოყენებით, LZW შეკუმშვის ალგორითმი, დამოუკიდებლად შეიქმნა ფაილის მთელი სტრუქტურა და გამჭვირვალობა გამოყენებული იყო პიქსელებისთვის, რომლებიც არ იცვლებოდა შემდეგ სლაიდზე, ფაილის საბოლოო ზომის შესამცირებლად. მინდოდა მეხსიერების განახლება და მენახა როგორ მუშაობდა. მე გავხსენი კოდი და... ის გრძნობა, როცა ვერ ხვდები შენს ათი წლის წინანდელ კოდს. მაშინ მე არ ვიცოდი PEP8-ის შესახებ, ამიტომ კოდის წაკითხვა ოდნავ ნაკლები იყო, ვიდრე არარსებული (იმ დროს მე მომწონდა მინიმალიზმი, როგორც ბევრი დამწყები პროგრამისტი). რამდენიმე ცრემლი გადმოვღვარე, შევაფურთხე, გავაკეთე ის PyCharm-ში, გავარკვიე, როგორ განმეხორციელებინა მედიანური განყოფილების მეთოდი და სწრაფად შევქმენი „ბინძური“ სკრიპტი. მუშაობს! პალიტრა იქმნება, გამოსავალი გამოსახულება ტოლერანტულია. შემდეგ კი დავინტერესდი, შემეძლო თუ არა უკეთესი შედეგის მიღწევა, რომ სურათი ვიზუალურად რაც შეიძლება ახლოს ყოფილიყო ორიგინალთან.


ასე რომ - მედიანური განყოფილების მეთოდი. ჯოჯოხეთივით მარტივია. პირველი ნაბიჯი არის RGB კუბის შექმნა გამოსახულების ყველა უნიკალური ფერისგან. შემდეგი, გაჭერით იგი ყველაზე გრძელი მხარის გასწვრივ. მაგალითად, ჩვენი წითელი დიაპაზონი არის 7-დან 231-მდე (სიგრძე 231-7=224), მწვანე 32-დან 170-მდე (სიგრძე 170-32=138), ლურჯი 12-დან 250-მდე (სიგრძე 250-12=238), რაც ნიშნავს ჩვენ "დავჭრით" კუბს ლურჯი მხარის გასწვრივ. ჩვენ ასევე დავჭრათ მიღებული სეგმენტები გრძელი მხარის გასწვრივ და ა.შ. სანამ არ მივიღებთ 256 სეგმენტს. თითოეული სეგმენტისთვის გამოთვალეთ საშუალო ფერი - ასე ვიღებთ პალიტრას.

რამდენიმე სურათი თითქმის თემას ეხება, სიცხადისთვის



რისი გაუმჯობესება შეიძლება აქ? პირველი რაც მახსენდება არის საშუალო ფერის გამოთვლა, არა ყველა ფერის სულელურად შეკრებით და მათი რიცხვით გაყოფით [ჯამ(ფერი) / დათვლა(ფერი)], არამედ იმის გათვალისწინებით, თუ რამდენჯერ გამოჩნდება თითოეული ფერი. გამოსახულებაში. ანუ, ჩვენ ვამრავლებთ თითოეულ ფერს გამოსახულებაში მისი გაჩენის რაოდენობაზე, ვამატებთ მიღებულ მნიშვნელობებს და ვყოფთ შედეგს მოცემული სეგმენტის ყველა ფერის გამოსახულებაში გამოჩენის რაოდენობაზე [ ჯამი(ფერი * ჯამი) / ჯამი (სულ)]. შედეგად, გამოთვლაში უპირატესობა ენიჭება ყველაზე ხშირად ნაცნობ ფერებს, მაგრამ იშვიათ ფერებსაც აკეთებენ საკუთარი კორექტირება, ამიტომ პალიტრა უკეთესია და ფერების ვიზუალური გადახრა ნაკლებია. უკეთესი შედეგისთვის მიზანშეწონილია გამაც გაითვალისწინოთ, მაგრამ ეს მოგვიანებით დავტოვე. მეორე არც ისე აშკარაა - მედიანური განყოფილება არ ითვალისწინებს ადამიანის თვალით ფერის აღქმის თავისებურებებს. ჩვენ უფრო კარგად აღვიქვამთ მწვანე ფერებს, ვიდრე ცისფერ ფერებს. გადავწყვიტე გამომესწორებინა ეს გაუგებრობა და კუბი „გაბრტყელდა“ - გვერდების სიგრძე გავამრავლე კოეფიციენტებზე. შედეგად, მეტი მონაკვეთი იყო მწვანე და წითელ მხარეს, ხოლო ნაკლები ლურჯ მხარეზე. ასეთი გამოსავალი სხვაგან არ მინახავს (შეიძლება კარგად არ გამოვიყურე), მაგრამ შედეგი აშკარაა.

ახლა ჩვენ გვაქვს ოპტიმალური პალიტრა, არა იდეალური რა თქმა უნდა (ვიცი, რომ მისი შემდგომი გაუმჯობესება შესაძლებელია), მაგრამ საკმარისად კარგი. შემდეგი ნაბიჯი არის სურათის ფერების ინდექსირება. უმარტივესი ვარიანტია, რომელ სეგმენტშია ფერი, ისევე როგორც ინდექსი. სწრაფი და მარტივი. მაგრამ არის ერთი მაგრამ, და არც ერთი, ამიტომ ამ ნაბიჯს მოგვიანებით დავუბრუნდებით.

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

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

ისე, მოკლედ მინდოდა აეხსნა, მაგრამ გაუგებარი ნაწერის მთელი თაიგული აღმოჩნდა. იმედი მაქვს იმაზე უკეთეს კოდს დავწერ ვიდრე ავხსნი, ამიტომ აქ არის github-ის ბმული. კოდი რამდენჯერმე გადაიწერა, ჯერ ალგორითმი დაიხვეწა, სანამ შედეგით არ დავკმაყოფილდი, მერე აღმოჩნდა, რომ ძალიან ბევრ RAM-ს ჭამდა ფოტოების დამუშავებისას (ჯერ პატარა სურათებზე დავტესტე), მომიწია გადატანა. RGB კუბი, მედიანური განყოფილება და პიქსელის რუკა მონაცემთა ბაზაში (sqlite). სკრიპტი მუშაობს ძალიან ნელა, მაგრამ შედეგი უკეთესია, ვიდრე კვანტიზაცია PIL/Pillow-ისა და GIMP-ის გამოყენებით (მასში ამ ოპერაციას ინდექსირება ეწოდება).

ვიზუალური დემონსტრირება:

ორიგინალი

კვანტიზაციის შედეგი GIMP-ში, 256 ფერის ოპტიმალური პალიტრა + ფლოიდ-სტენბერგის ფერის დაბინდვა (ნორმალური)

Quantization შედეგი PIL/Pillow image.convert(mode="P", dither=PIL.Image.FLOYDSTEINBERG, palette=PIL.Image.ADAPTIVE, ფერები=256)

კვანტიზაციის შედეგი ჩემი კოდით

რას მივაქციოთ ყურადღება: GIMP-ის შეცდომის დისპერსია ძალიან ხმაურიანია, PIL/Pillow ქმნის არც თუ ისე ოპტიმალურ პალიტრას და პრაქტიკულად არ აშორებს შეცდომებს (მკვეთრი გადასვლები ფერებს შორის).
თუ განსხვავებას ვერ ხედავთ, გადახედეთ სხვა მაგალითებს github-ზე.


P.S.:არის მშვენიერი პროგრამა Color Quantizer, რომელიც ამ ამოცანას უკეთ და სწრაფად ართმევს თავს, ამიტომ ჩემს სკრიპტს პრაქტიკული მნიშვნელობა არ აქვს, ის მხოლოდ „სპორტული“ ინტერესის გამო შეიქმნა.
UPD:განაახლეს პროექტი github-ზე. დამატებულია Octree კვანტიზაციის ალგორითმი, შეცდომების დისპერსიის პოპულარული ფორმულები, მოძებნეთ უახლოესი ფერი საშუალო წითელი მნიშვნელობით.

4.2.2. სურათის შერჩევა და კვანტიზაცია

გენერირებული და ჩაწერილი სურათი უნდა გადაკეთდეს ციფრული დამუშავებისთვის შესაფერის ფორმაში. თუ სურათები ჩაწერილია ფოტოელექტრონულად, ეს ჩვეულებრივ პრობლემას არ წარმოადგენს, რადგან სკანირების ფოტოცელი აწვდის ელექტრო დენს, რომელიც შესაფერისია სინჯის აღებისა და კვანტიზაციისთვის. ამრიგად, ეს შემთხვევა შეიძლება ჩაითვალოს, როგორც ერთგანზომილებიანი სიგნალების შესაბამისი ციფრული სიგნალის დამუშავების მეთოდების გაფართოება ორგანზომილებიან სიგნალებზე. ამ შემთხვევაში, კვანტიზაციის შეცდომების გათვალისწინება შესაძლებელია ბლოკ დიაგრამაში დამატებითი ხმაურის წყაროს შეყვანით. ნიმუშებს შორის მანძილი უნდა აკმაყოფილებდეს თეორემას
Nyquist ორგანზომილებიანი რხევებისთვის.

სურათების შერჩევისა და კვანტიზაციის მოწყობილობები ეფუძნება მიკროდენსიტომეტრიის ტექნიკას. ასეთ სისტემებში, I1 ინტენსივობის სინათლის სხივი პროეცირებულია ფილმზე. ფილმის მეშვეობით გადაცემული სინათლის I2 ინტენსივობა
(ან მისგან ასახული) იზომება ფოტოგამრავლებით. გადაცემის გზით

(4.16) (4.5) მიმართებით შეგვიძლია გამოვთვალოთ ოპტიკური სიმკვრივე. ამის შემდეგ, ფილმზე სინათლის ლაქა შეიძლება მკვეთრად გადაინაცვლოს და ამით მივიღოთ გამოსახულების ნიმუშები. მათემატიკურად, ეს პროცესი აღწერილია მიმართებით

g1 (x, y) = (4.17)

სადაც g არის სურათი ფილმზე; ჰა სიკაშკაშის განაწილება სხივის განივი მონაკვეთზე, რომელიც ანათებს ფირის; g1 არის ეკვივალენტური სურათი, საიდანაც აღებულია ნიმუშები (ანუ, დისკრეტულ წერტილებში x = jx, y = ky, სკანირების ფოტოდეტექტორი ზომავს ზუსტად g1-ს). ნიმუშის მატრიცა g1 (jx, ky
) არის ნიმუშის ან ციფრული სურათი.

თანასწორობიდან (4.17) (რომელიც ასევე მოქმედებს ფოტოელექტრონული საშუალებებით მიღებული სურათების შერჩევის შემთხვევაში) ცხადია, რომ შერჩევის პროცესში ჩაწერილი სურათი ექვემდებარება დამახინჯებას. ჰა განაწილებისა და ნიმუშებს შორის მანძილის სწორად არჩევით, გამოსახულების გაფილტვრა შესაძლებელია შერჩევის პროცესში. ნიმუშის აღების პროცესთან დაკავშირებული ფილტრაცია [როგორც ეს განსაზღვრულია განტოლებაში (4.17)] შეიძლება გამოყენებულ იქნას ალიაზირების ეფექტების ჩასახშობად, რომლებიც წარმოიქმნება იმის გამო, რომ გამოსახულების სპექტრული სიგანე, როგორც წესი, შეუზღუდავია (ფილმის მარცვლოვანი ხმაურის და სხვა მაღალი სიხშირის კომპონენტების გამო). გამტარიანობის შერჩევის ტოლფასია სიკაშკაშის გამოსახულების ნიმუშის აღება, ხოლო სიმკვრივის ნიმუში არის სიმკვრივის გამოსახულების შერჩევის ექვივალენტური. ხშირად გესმით, რომ სასურველია სიმკვრივის კვანტიზაცია, რადგან ლოგარითმული დამოკიდებულება იწვევს დინამიური დიაპაზონის შემცირებას. თუმცა, ასეთმა გამარტივებულმა მსჯელობამ შეიძლება გამოიწვიოს შეცდომები.

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

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

g2 (x, y) = (4.18)

სადაც hd არის ჩამწერი ადგილის სიკაშკაშის განაწილება, g1 არის ფუნქციის შერჩევის მატრიცა (4.17), რომელიც აქ წარმოდგენილია შეწონილი იმპულსების სიმრავლით, რომლებიც დაშორებულია ერთმანეთისგან (x, y) მანძილზე, და g2 არის რეკონსტრუირებული უწყვეტი სურათი. ჩამწერი ადგილის სიკაშკაშის განაწილება არის ინტერპოლაციური ფილტრის იმპულსური პასუხი, რომელიც გამოიყენება ერთგანზომილებიანი ანალოგური სიგნალების რეკონსტრუქციაში. სურათის აღდგენის თითქმის ყველა სისტემაში ჩაწერის ადგილს აქვს სიკაშკაშის მარტივი განაწილება (მაგალითად, გაუსიანი). ამ მიზეზით, შეუძლებელია სურათის ზუსტად აღდგენა, რადგან მარტივი განაწილება არ იძლევა შესაძლებელს ხდის სრულად აღკვეთოს გამოსახულების სპექტრის მაღალი სიხშირის ასლები, რომლებიც წარმოიქმნება შერჩევის დროს. საბედნიეროდ, ეს ჩვეულებრივ არ ქმნის მნიშვნელოვან სირთულეებს და მარტივი სისტემები აწარმოებენ კარგ სურათებს.

ზემოაღნიშნულიდან ირკვევა, რომ სურათების შერჩევისა და ჩვენებისას ხდება სპექტრის დამახინჯება. ასეთი დამახინჯებები შეიძლება გამოსწორდეს კვანტური სურათების ციფრული ფილტრაციის პროცესში
.
გამოსახულების უწყვეტი რეკონსტრუქცია კიდევ ერთ პრობლემას აჩენს, კერძოდ, გამოსახულების ერთგულების პრობლემას. თუ აპარატის მეხსიერებაში შენახული რიცხვი წარმოადგენს გამოსახულების ოპტიკურ სიმკვრივეს კონკრეტულ წერტილში, მაშინ აბსოლუტურად სწორი რეპროდუქცია მიიღება, თუ დემონსტრირებისთვის განკუთვნილ ფილმს აქვს ზუსტად იგივე ოპტიკური სიმკვრივე, რაც ჩაწერილია კომპიუტერის მეხსიერებაში. (მსგავსი მოთხოვნები შეიძლება ჩამოყალიბდეს ფირის გამტარობისთვის ფოტოელექტრონული სისტემის დასახასიათებლად). მსგავსი მოწყობილობა
ბრინჯი. 4.4. a - იდეალური დისპლეის სისტემის საბოლოო მახასიათებლები; b - ტიპიური რეალური ჩვენების სისტემის ბოლოდან ბოლომდე მახასიათებლები.

ეკრანს უნდა ჰქონდეს ბოლოდან ბოლომდე მახასიათებლები, რომლებიც ემთხვევა ნახ. 4.4, ა. თუმცა, ასეთი იდეალური მახასიათებლები იშვიათია. რეალური დისპლეის მოწყობილობების მახასიათებლები უფრო ჰგავს ნახ. 4.4, b, სადაც არის მნიშვნელოვანი გადახრა იდეალური სწორი ხაზიდან 45°-ის დახრილობით. იდეალურ პასუხთან კარგი მიახლოება შეიძლება მიღებულ იქნეს დისპლეის მოწყობილობის პასუხის ხაზებით. ამისათვის თქვენ უნდა გააკეთოთ შემდეგი:

1. შექმენით გამტარობის ან ოპტიკური სიმკვრივის ფიქსირებული მნიშვნელობების ნაკრები, მიაწოდეთ ისინი ჩვენების მოწყობილობას და გაზომეთ მისი რეალური რეაქცია გამტარობის ან ოპტიკური სიმკვრივის თითოეულ მნიშვნელობაზე.
2. 1-ლ საფეხურზე მიღებული გაზომვები იძლევა ჩვენების მოწყობილობის მახასიათებელს d0 = f (di). ხაზოვანი მახასიათებელი აღწერილია di = f- -1(d0) მიმართებით. ეს შებრუნებული ტრანსფორმაცია შეიძლება მოიძებნოს ემპირიულად და წარმოდგენილი იყოს ცხრილის ან პოლინომის სახით, რომელიც გამოითვლება უმცირესი კვადრატების მეთოდით.

3. გამოსახულების ჩვენებამდე უნდა მოხდეს რიცხვითი მონაცემების კონვერტაცია f -1 ფუნქციის მიხედვით. შედეგად, მათში წინასწარი აქცენტი დაიდება და მანქანაში ჩაწერილი სიკაშკაშის მნიშვნელობები ეკრანზე შეცდომების გარეშე იქნება რეპროდუცირებული.
დისპლეის მოწყობილობის მახასიათებლების ხაზინაარიზაციის მეთოდი წარმატებით გამოიყენება მრავალ კვლევით ინსტიტუტში. ზუსტი წრფივება, რა თქმა უნდა, შეუძლებელია, რადგან არაწრფივი მახასიათებლის ფორმა იცვლება ფილმის განვითარების მახასიათებლების, ქიმიკატების სისუფთავისა და დაბერების მიხედვით.
(ან დაზიანება) CRT-ის ფოსფორის და ა.შ. თუმცა, გარკვეული ძალისხმევით, შესაძლებელია დისპლეის მოწყობილობის წრფივირება ისე, რომ გადახრები წრფივისაგან არ აღემატებოდეს მაქსიმალური მნიშვნელობის ±5%-ს. უნდა აღინიშნოს, რომ ჩვენების მოწყობილობის მახასიათებლის წრფივირება არის ოპერაცია, რომელიც გამოიყენება ანალოგური გამოსახულების რეკონსტრუქციაში; ხაზოვანი ელექტრონული სქემებით ერთგანზომილებიანი სიგნალების დამუშავებისას, ის ჩვეულებრივ არ გამოიყენება.

4.2.4. ადამიანის ხედვის სისტემის თვისებები

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


ბრინჯი. 4.5. ა - ადამიანის თვალის აპარატური ფუნქციის (ღერძული სიმეტრიული) კვეთა; ბ - ადამიანის თვალის (ღერძული სიმეტრიული) სიხშირის პასუხის განივი.

აღიქმება ლოგარითმული კანონის მიხედვით. ეს არსებითად არაწრფივი კანონია.
ადამიანის მხედველობის სისტემის კიდევ ერთი გამორჩეული მახასიათებელია მისი სივრცითი სიხშირის პასუხი. თვალის იმპულსური რეაქცია, რომელიც განიხილება როგორც ორგანზომილებიანი ხაზოვანი სისტემა (ანუ წრფივი დაკვირვებული სინათლის ინტენსივობის საწყისი ლოგარითმული ტრანსფორმაციის შემდეგ), არ არის დირაკის ფუნქცია. თვალის რეაქცია შემომავალ სინათლის ველზე აღწერილია აპარატურის ფუნქციით, რომლის განივი მონაკვეთი ნაჩვენებია ნახ. 4.5, ა
. მკვეთრი ცენტრალური მწვერვალი და თვალის იმპულსური პასუხის უარყოფითი გვერდითი წილები მიუთითებს იმაზე, რომ თვალი ამუშავებს სივრცულ სიხშირეებს ისევე, როგორც მაღალგამტარი ფილტრი. თვალის სიხშირეზე პასუხის ზუსტი ფორმა გამოკვლეულია ფსიქოვიზუალური ექსპერიმენტების სერიის მეშვეობით; ნაჩვენებია, რომ თვალი თრგუნავს და ამცირებს მაღალ სივრცულ სიხშირეებს. უხეში მიახლოებით, თვალის სივრცით-სიხშირის რეაქციას აქვს ზოლიანი ხასიათი. მსგავსი მახასიათებელი (ნახ. 4.5,ბ), მაგალითად, მიღებული იქნა მანოსისა და საკრისონის მიერ ჩატარებულ ექსპერიმენტებში.
და ბოლოს, ადამიანის ხედვის თვისებაა გაჯერების უნარი, ე.ი. შეზღუდოს რეაგირება დაკვირვებული მანათობელი ნაკადის ძალიან მაღალ ან ძალიან დაბალ ინტენსივობაზე. მხედველობის სისტემის ჩამოთვლილი თვისებები შეიძლება აღწერილი იყოს ბლოკ-სქემის სახით წარმოდგენილი მოდელით ნახ. 4.6. თუმცა, ეს მოდელი საერთოდ არ ასახავს მხედველობის სისტემის სხვა ცნობილ თვისებებს. მაგალითად, არსებობს მტკიცებულება, რომ გამოსახულების აღქმის პროცესის ზოგიერთი ასპექტი შეიძლება აიხსნას მხოლოდ ერთზე მეტის არსებობით, როგორც ნახ. 4.6, მაგრამ პარალელურად დაკავშირებული რამდენიმე წრფივი სისტემა, ე.ი. სიხშირის არხებით მოდელის ფარგლებში. სხვა ვიზუალური ფენომენები (როგორიცაა ერთდროული კონტრასტის ილუზია) მიუთითებს, რომ ლოგარითმული ტრანსფორმაცია წარმოდგენილია ნახ. 4.6 ძალიან ბევრი გამარტივებაა. მაგრამ, მიუხედავად ცნობილი ნაკლოვანებებისა, მოდელი წარმოდგენილია ნახ. 4.6 სასარგებლოა, რადგან ის


ბრინჯი. 4.6. ადამიანის ხედვის სისტემის ბლოკ-სქემა.

2) მიუთითებს, რომ ხედვის სისტემა შეიცავს ინფორმაციის დამუშავების სისტემის ზოგიერთ ელემენტს. კერძოდ, ადამიანის მხედველობის სისტემა, როგორც ჩანს, ასრულებს ჰომორფული ინფორმაციის დამუშავების ოპერაციებს.

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

4. 3. ციფრული დამუშავების გამოყენება გამოსახულების სიჭარბის შესამცირებლად
გამოსახულების სიჭარბის შემცირება არის ციფრული გამოსახულების დამუშავების პირველი აპლიკაცია, რომელიც აქ იქნება განხილული.
ციფრული მეთოდების ინტენსიურმა განვითარებამ გავლენა მოახდინა ინფორმაციის გადაცემისა და შენახვის ტექნოლოგიის ყველა დარგზე, ციფრული სისტემების თანდაყოლილი უპირატესობების გამო ხმაურის იმუნიტეტში, შეცდომების გამოსწორების შესაძლებლობის, შეტყობინებების გადართვის მოქნილობის, მუდმივი კლების ხარჯებისა და მზარდი საიმედოობის გამო. ციფრული ტექნოლოგიების დანერგვის პარალელურად, სურათების გამოყენება გაფართოვდა მეცნიერებისა და ტექნოლოგიების სხვადასხვა დარგში, მაგალითად, მედიცინაში, ექსპერიმენტულ ფიზიკაში, უკონტაქტო ხარვეზების გამოვლენასა და ბუნებრივი რესურსების კვლევაში. ციფრული ტექნოლოგიების ამ პარალელურმა განვითარებამ და სურათების გამოყენების სფეროს გაფართოებამ გამოიწვია ბუნებრივი შედეგი, კერძოდ, ინტენსიური კვლევა ციფრული მეთოდებით სურათების გადაცემისა და ჩაწერის სფეროში.

ტიპიური სურათი შეიცავს უამრავ ზედმეტ ინფორმაციას, რაც შესამჩნევია სურათების უმეტესობის სწრაფი შეხედვითაც კი. ეს გადაჭარბება იწვევს ეკონომიკურ ზარალს. სურათის ციფრული ფორმით გადასაცემად საჭირო სიხშირის გამტარობა დამოკიდებულია გამოსახულების ნიმუშების რაოდენობაზე, ნიმუშების ბიტის სიღრმეზე, გადაცემისთვის გამოყოფილ დროსა და გადამცემის სიმძლავრეზე. გამტარუნარიანობის მატებასთან ერთად იზრდება გადამცემის საჭირო სიმძლავრე და ხარჯები. ფული და ენერგია არ არის პრობლემა, მაგრამ ელექტრომაგნიტური სპექტრი ძალიან დაკავებულია. ამიტომ, სურათის გადაცემის სიჭარბის შემცირება ძალიან მნიშვნელოვანი ამოცანაა. ის თანაბრად მნიშვნელოვანია სურათების ციფრული ფორმით შესანახად.
თუ მხოლოდ ერთი სურათის შენახვა დაგჭირდათ, ამაზე არ ინერვიულოთ. თუმცა, ბევრ არსებულ და დაგეგმილ სისტემაში, როგორიცაა NASA ERTS (დედამიწის რესურსების ტექნოლოგია) საძიებო თანამგზავრი
სატელიტი), მიიღება სურათების დიდი რაოდენობა, რომლებიც მიზანშეწონილია ციფრული ფორმით მისაღებად და შესანახად. მიუხედავად იმისა, რომ ციფრული შესანახი მოწყობილობები იაფდება, გადაღებული სურათების რაოდენობა იმდენად იზრდება, რომ სურათების სიჭარბის შემცირება მთავარი პრიორიტეტია.

4.3.1. რამდენიმე შენიშვნა გამოსახულების სიჭარბის შემცირების შესახებ

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

კვანტიზაცია და კოდირება ხორციელდება ზოგადი წესების გათვალისწინებით, რომლებიც არ არის დამოკიდებული დამუშავების პირველი ეტაპისთვის არჩეული დეკორელაციის სქემის მახასიათებლებზე.
აქედან გამომდინარე, ვიდეო შეკუმშვის სისტემები განსხვავდება მიკროსქემის ტიპით, რომელიც ასრულებს პირველ ეტაპზე დაკავშირებულ ოპერაციებს. ამის გამო, მიკროსქემის პირველი ბლოკის განხორციელების მეთოდები ნახ. 4.7 აქ უფრო მეტი ყურადღება დაეთმობა, ვიდრე კითხვებს
ბრინჯი. 4.7. ვიდეო ინფორმაციის სიჭარბის შემცირების სისტემის ბლოკ-სქემა.

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

დიაგრამის პირველი ბლოკის განხორციელების პრინციპების შემუშავებისას ნახ. 4.7 გასათვალისწინებელია მთელი რიგი მოსაზრებები. ჯერ განვიხილოთ სურათების სტატისტიკური თვისებები. თუ გამოსახულების ნიმუშები ქმნიან NN ზომის წერტილების ბადეს და თითოეული ნიმუში წარმოდგენილია P-ბიტის ორმაგი რიცხვით, მაშინ ჩვეულებრივი პულსური კოდის მოდულაციის (PCM) გამოყენებით გამოსახულების ჩაწერისა და გადაცემისას საჭირო იქნება N2P ორობითი ციფრები. თუმცა, როგორც ზემოთ აღინიშნა, ტიპურ სურათს ბევრი ზედმეტი აქვს. ამ სიჭარბის გაზომვის და N2P ბიტების ნომინალურ რაოდენობასთან შედარების ერთ-ერთი გზაა გამოსახულების სიკაშკაშის ჰისტოგრამის დახატვა და შესაბამისი ენტროპიის გამოთვლა. P-ბიტი რიცხვების გამოყენებით, შეიძლება აღწეროთ კვანტიზაცია 2p დონეზე. ამისათვის თქვენ უნდა გააანალიზოთ ყველა N2 ნიმუში და დათვალოთ რამდენჯერ ხდება თითოეული კვანტიზაციის დონე.
შემდეგ თქვენ უნდა ააწყოთ გამოსახულების სიკაშკაშის ჰისტოგრამა, ე.ი. თითოეული კვანტიზაციის დონისთვის მიუთითეთ სურათზე მისი გამოჩენის რაოდენობა. ამ რიცხვების N2 წერტილების საერთო რაოდენობაზე გაყოფით, ჩვენ შეგვიძლია მივიღოთ გამოსახულების წარმოქმნის პროცესის ალბათობის სიმკვრივის მიახლოება. თუ ნორმალიზებულ სიხშირეებს აღვნიშნავთ pi-ით (i = 1, 2, ... , 2p), მაშინ ენტროპია, განსაზღვრებით, გამოიხატება ჯამით h = __ (4.19) და უდრის საშუალო ინფორმაციას (იზომება ბიტების რაოდენობა გამოსახულების ელემენტზე) შეიცავს სურათის თითოეულ ელემენტს. გამოსახულების ანალიზმა აჩვენა, რომ h-ის ტიპიური მნიშვნელობა გაცილებით ნაკლებია, ვიდრე ციფრების რაოდენობა
P საჭიროა სტანდარტული PCM წარმოდგენისთვის. ნაშრომში აღინიშნა, რომ ენტროპია არის 1 ბიტი/პუნქტის რიგის. ეს ნიშნავს, რომ გამოსახულების აღმწერი მასივის ბიტის სიღრმე შეიძლება (ყოველ შემთხვევაში თეორიულად) შემცირდეს ინფორმაციის დაკარგვის გარეშე საშუალოდ 1 ბიტ/პუნქტამდე.

ენტროპია იძლევა სტატისტიკური სიჭარბის საზომს, მაგრამ არ იძლევა ინფორმაციას მისი წარმოშობის შესახებ. ზედმეტობის წყარო, როგორც დამკვირვებლის ხედვა ეუბნება, არის გამოსახულების ერთგვაროვნების მაღალი ხარისხი მცირე ადგილებში. ეს სივრცითი ზედმეტობა შეიძლება განისაზღვროს გამოსახულების კოვარიანტობის მატრიცის გამოყენებით. პირველი, NN გამოსახულების ნიმუშების მატრიცა ლექსიკოტრანსფორმირებულია N2 კომპონენტის ვექტორად [ე.ი. g(j, k) მატრიცის პირველი რიგის (ან სვეტის) ელემენტები ხდება ვექტორის კომპონენტები 1-დან N-მდე რიცხვებით, მეორე რიგის (სვეტის) ელემენტები.
- კომპონენტები N+1-დან 2 N-მდე რიცხვებით და ა.შ.]. შემდეგ გამოითვლება გამოსახულების კოვარიანტული მატრიცა

[Cg] = E ((g - E(g))(g - E(g))T) ,

(4.20) სადაც E არის ანსამბლის საშუალო მნიშვნელობა და g არის გამოსახულების ნიმუშებიდან აგებული ვექტორი. პრაქტიკაში იშვიათად არის შესაძლებელი ანსამბლის საშუალოდ დადგენა და კოვარიანტული მატრიცა მიიღება სივრცითი კორელაციის შეფასებით.

კოვარიანტულ სტრუქტურებს, როგორიცაა [Cg] მატრიცა, არ აქვთ ერთი-ერთზე კავშირი ორიგინალურ გამოსახულებასთან. კოულმა აჩვენა, რომ ბევრი განსხვავებული გამოსახულება შეიძლება იყოს ძალიან მსგავსი კოვარიანტულად
(ან სპექტრალური) გრძნობა. შესაბამისად, არსებობს რთული მატრიცული სტრუქტურის უფრო მარტივი სტრუქტურით ჩანაცვლების საფუძველი. კერძოდ, განიხილებოდა მოდელის გამოყენება n-ე რიგის ავტორეგრესიული მარკოვის პროცესით, სადაც n ჩვეულებრივ მცირეა (იხილეთ, მაგალითად, სამუშაო)
(მაგალითად, n = 3). ის ფაქტი, რომ ასეთი მოდელები სწორია და მათი გამოყენება გამართლებულია ინფორმაციის შეკუმშვის მეთოდების გაანალიზებისას, როგორიცაა დიფერენციალური პულსის კოდის მოდულაცია (DPCM), მიუთითებს ურთიერთდაკავშირების მაღალ ხარისხზე მიმდებარე გამოსახულების ზონებს შორის.
ვიდეო ინფორმაციის შეკუმშვისას, სურათის სტატისტიკური თვისებების გარდა, ძალიან მნიშვნელოვანია სურათის მიმღების მახასიათებლების გათვალისწინება. ადამიანის ხედვას აქვს შეზღუდული შესაძლებლობები და ახასიათებს ზოგიერთი ცნობილი (ნაწილობრივ) გამორჩეული თვისება. მხედველობის სპეციფიკური მახასიათებლების გამოყენებას გამოსახულების სიჭარბის შესამცირებლად ეწოდება ფსიქოფიზიკური დამუშავება. ცნობილია, მაგალითად, რომ თვალში შესული სინათლის სიკაშკაშის აღქმისას ვიზუალური სისტემა იქცევა როგორც არაწრფივი სისტემა ლოგარითმული მახასიათებლით. გარდა ამისა, ადამიანის ვიზუალური სისტემა არ არის მგრძნობიარე ძალიან მაღალი ან ძალიან დაბალი სივრცითი სიხშირეების მიმართ და საშუალო სიხშირის რეგიონში ის იქცევა თითქმის ზოლიანი ფილტრის მსგავსად, რაც განპირობებულია ბადურის ნერვული უჯრედების ინჰიბირებით. ვიზუალური სისტემის მგრძნობელობის არაწრფივობამ და სიხშირეზე დამოკიდებულებამ შესაძლებელი გახადა ოპტიმალური ვიდეო შეკუმშვის სისტემების შექმნა. ამ სისტემებში, შეცდომებისადმი უფრო დიდი წინააღმდეგობის მისაღწევად, რომლებიც გამოჩნდება კოდირებისა და გადაცემის დროს, გამოსახულება მუშავდება დაახლოებით ისე, როგორც ადამიანის ვიზუალურ სისტემაში. ეს წინადადება პირველად გაკეთდა
სტოკჰემი.
ინფორმაციის სიჭარბის შემცირება მათემატიკურად მკაცრად არის გამართლებული კოდირების თეორიის დებულებებით მოცემული სიზუსტის კრიტერიუმით. როგორც მანოსმა და საკრისონმა აღნიშნეს, შეუძლებელი იყო კოდირების თეორიის ეფექტური თეორემების გამოყენება მოცემული სიზუსტის კრიტერიუმისთვის ვიდეო ინფორმაციის შეკუმშვის პრობლემებში. ამის მთავარი მიზეზი იყო შეცდომების დასაშვები სიდიდის კრიტერიუმის არჩევის სირთულე, რომელიც შეესაბამება ადამიანის ხედვის სისტემის თვისებებს. მანომ და საკრისონმა შეძლეს ეჩვენებინათ, რომ შესაძლებელია კრიტერიუმის გამოყენება, რომელიც დაკავშირებულია მხედველობის არაწრფივ და სივრცით-სიხშირულ თვისებებთან. მათი მუშაობა ძალიან მნიშვნელოვანია გამოსახულების სიჭარბის შემცირების მეთოდების შემდგომი განვითარებისთვის. შესაბამისი წინასწარი დამუშავების დანერგვა ყველა სქემაში, რომელიც ქვემოთ იქნება განხილული, შეუძლია მნიშვნელოვნად გააუმჯობესოს ვიდეო შეკუმშვის სისტემების ხარისხი.

4.3.2. გამოსახულების სიჭარბის შემცირების სქემები სივრცითი დომენის დამუშავებით
ვიდეო ინფორმაციის სიჭარბის შემცირების სქემის ერთ-ერთ შესაძლო ვარიანტში იდენტიფიკაციის ოპერაცია შესრულებულია პირველ ბლოკში (დიაგრამა ნახ. 4.7), ე.ი. ორიგინალური სურათი არანაირად არ იცვლება და ყველა შეკუმშვა მიიღწევა კვანტიზაციისა და კოდირების გზით. ამასთან, ინფორმაციის შეკუმშვა შეუძლებელია კრიტერიუმების გამოყენების გარეშე, რომლებიც ითვალისწინებენ დამკვირვებლის მახასიათებლებს და გადაცემული მონაცემების თვისებებს. თუ, მაგალითად, დამკვირვებელს სჭირდება 1/1000 სიზუსტე, მაშინ კვანტიზაციის დონეების საჭირო რაოდენობა მიიღება 10-ბიტიანი ორობითი რიცხვების გამოყენებით; თუ სიზუსტე მისაღებია
1/8, მაშინ საკმარისია 3-ნიშნა რიცხვების აღება. შესაბამისად, კვანტიზაცია შეზღუდულ როლს თამაშობს ინფორმაციის შეკუმშვაში. თუმცა, სიჭარბის შემცირება შესაძლებელია კოდირების დროს და ერთ-ერთი მთავარი ამოცანა შექმნის შემდეგ
შენონის ინფორმაციის თეორია იყო კოდების აგება, რომლებიც ოპტიმალური იყო ინფორმაციის სიჭარბის შემცირების თვალსაზრისით. შენონმა დაამტკიცა, რომ არსებობს კოდი, რომლის გადაცემის სიჩქარე ემთხვევა წყაროს მიერ ინფორმაციის შექმნის სიჩქარეს. ამრიგად, 1 ბიტი/პუნქტის რიგის ენტროპიის მქონე სურათებისთვის არსებობს კოდირების სქემები, რომლებიც შესაძლებელს ხდის 1 ბიტი/პუნქტის საშუალო სიგრძის კოდების აგებას. სამწუხაროდ, ასეთი კოდების უბრალო არსებობა უსარგებლოა, თუ არ არსებობს მათი აგების ალგორითმები. ცნობილია ალგორითმები კოდების შესაქმნელად, რომლებიც უახლოვდებიან ოპტიმალურს. მაგალითად, ჰაფმანის კოდირება არის ეფექტური პროცედურა კოდის ინფორმაციის წყაროს სტატისტიკასთან შესატყვისად და იძლევა უფრო მოკლე სიგნალის სიგრძეს, ვიდრე სტანდარტული PCM. თუმცა, ასეთ კოდებს აქვთ სიმბოლოების ცვლადი რაოდენობა (ანუ, შეტყობინებების გადაცემისას, კოდური სიტყვები შედგება სიმბოლოების განსხვავებული რაოდენობისგან); კოდირებისა და დეკოდირებისას საჭიროა რთული ალგორითმები, რომლებიც დაკავშირებულია ინფორმაციის ჩაწერასთან, სინქრონიზაციასთან და დამხმარე დაგროვებასთან. გარდა ამისა, ასეთი კოდების გამოჩენა დიდად არის დამოკიდებული სიმბოლოების წარმოქმნის წყაროს ალბათობაზე და ალბათობის ნებისმიერმა ცვლილებამ შეიძლება გამოიწვიოს კოდის მუშაობის გაუარესება (ზოგიერთ შემთხვევაში ძალიან მნიშვნელოვანი). შესაბამისად, კვანტიზაციის კოდირება შეიძლება იყოს ვიდეო შეკუმშვის ძირითადი საშუალება მხოლოდ შეზღუდულ შემთხვევებში, ამიტომ საჭიროა სხვა მეთოდების ძიება.

როგორც სივრცითი კოორდინატების სიბრტყეში ვიდეო ინფორმაციის შეკუმშვის მეთოდი, რომელიც შესრულებულია დიაგრამის პირველ ბლოკში ნახ. 4.7, ყველაზე ფართოდ გამოიყენება დიფერენციალური პულსის კოდის მოდულაცია (DPCM). DPCM სქემები სტრუქტურულად იგივეა, რაც წრფივი პროგნოზირების კოდირების (LPC) სქემები, რომლებიც გამოიყენება მეტყველების გამტარუნარიანობის შეკუმშვისას და ამიტომ DPCM გამოსახულების სქემებს ზოგჯერ უწოდებენ პროგნოზირებად შეკუმშვის სქემებს. DPCM ბლოკის დიაგრამა ნაჩვენებია ნახ. 4.8. ეს მეთოდი იყენებს სტატისტიკურ კავშირს გამოსახულების ცალკეული წერტილების სიკაშკაშეს შორის და თითოეული წერტილისთვის ყალიბდება სიკაშკაშის შეფასება წინა წერტილების სიკაშკაშის ხაზოვანი კომბინაციის სახით. წინა წერტილებში ვგულისხმობთ წერტილებს, რომლებიც განლაგებულია განსახილველი წერტილის წინ, როდესაც გამოსახულება სკანირებულია ზემოდან ქვემოდან და მარცხნიდან მარჯვნივ (როგორც ტელევიზიაში), რის გამოც იქმნება გამოსახულების წერტილების ძალიან სპეციფიკური რიგი. მსგავსი სქემა, რა თქმა უნდა, გამოყენებული იქნება მაშინაც კი, როდესაც სურათი უკვე „გაშლილი“ სკანირებით. სხვაობა სიკაშკაშის ფაქტობრივ მნიშვნელობასა და მის შეფასებას შორის შემდეგ გამოითვლება და კვანტიზებულია.
კვანტური განსხვავება დაშიფრულია და გადაიცემა არხზე. მიმღების ბოლოში, სიმბოლოების გაშიფვრა და ინფორმაციის რეკონსტრუქცია ხდება n-ე რიგის წრფივი პროგნოზირების მიკროსქემის გამოყენებით (იდენტურია, რა თქმა უნდა, გადამცემის შესაბამისი მიკროსქემისა), რომელიც ქმნის განათების შეფასებებს, რომლებიც ემატება მიღებულ განსხვავებებს. არხი.

პროგნოზის სქემები ნაჩვენებია ნახ. 4.8 ეწოდება უკანა პროგნოზირებად სქემებს სიგნალის კვანტიზაციის გამო


ბრინჯი. 4.8. DPCM შეკუმშვის სისტემის ბლოკ-სქემა n-ე რიგის პროგნოზირებით.

ხდება უკუკავშირის მარყუჟის შიგნით და როდესაც სიგნალი აღდგება, პროგნოზირებული მნიშვნელობა ბრუნდება მიკროსქემის მეშვეობით. შეიძლება შეიქმნას სქემები
DPCM, რომელშიც პროგნოზირებული სიგნალის მნიშვნელობები იკვებება წინ, და ასევე ქმნის DPCM სქემებს, სადაც კვანტიზაციის ერთეული მდებარეობს უკუკავშირის მარყუჟის გარეთ. თუმცა, ასეთი სისტემები აწარმოებენ რეკონსტრუქციულ სურათს დიდი შეცდომებით. მიმღებში საჭიროა უკუ პროგნოზირებადი წრე, რადგან სიმბოლოები თანმიმდევრულად მოდის. თუ გადამცემში გამოიყენებოდა მსგავსი უკანა პროგნოზირების წრე, კვანტიზაციის შეცდომების არარსებობის შემთხვევაში, შესაძლებელი იქნებოდა გამოსახულების რეკონსტრუქცია აბსოლუტური სიზუსტით. თუ კვანტიზაციის წრე შედის გადამცემის პროგნოზირებადი მიკროსქემის მარყუჟში, მაშინ როგორც მიმღები, ასევე გადამცემი იწინასწარმეტყველებენ იმავე კვანტიზებული ნიმუშების საფუძველზე, რაც შეამცირებს რეკონსტრუქციის შეცდომებს.

DPCM სქემებში შეკუმშვა მიიღწევა სიგნალების გამოკლებით, რადგან განსხვავებებს აქვს გაცილებით მცირე დინამიური დიაპაზონი. დავუშვათ, რომ ორიგინალური გამოსახულება გადაცემულია PCM მეთოდით და 0-დან 255-მდე საჭიროა მისი წერტილების სიკაშკაშე, შემდეგ, თუ დასაშვები შეცდომა უდრის ყველაზე ნაკლებად მნიშვნელოვანს, მაშინ კვანტიზაცია 8-ში. აუცილებელია ბიტის რიცხვები. ამასთან, მეზობელი წერტილების სიკაშკაშის განსხვავებების მნიშვნელობები გაცილებით მცირე იქნება; თუ განსხვავებები (იგივე შკალაზე) მერყეობს 0-დან 7-მდე, მაშინ ერთ-ერთი ყველაზე ნაკლებად მნიშვნელოვანი ციფრის ტოლი შეცდომის მისაღებად საკმარისია კვანტიზაცია 3-ბიტიან რიცხვებად.

(4.21) ყველა k, аi

ეს ცნობილი პრობლემაა და თუ პროცესი g(k) სტაციონარულია, მაშინ მის ამოხსნას აქვს ფორმა

, (4.22) სადაც r (j - i) = E [g (k - j) g (k -i) ]

ჩვეულებრივ უწოდებენ გ პროცესის ავტოკორელაციის ფუნქციას. ai კოეფიციენტები მიიღება განტოლებათა სისტემის ამოხსნით (4.22).

პროგნოზირების კოეფიციენტების ოპტიმალური მნიშვნელობები დამოკიდებულია ავტოკორელაციის ფუნქციით აღწერილ გამოსახულების წერტილებს შორის ურთიერთობებზე. განმარტებიდან
(4.20) ცხადია, რომ სტაციონარული მონაცემების შემთხვევაში ავტოკორელაციის ფუნქცია ზემოაღნიშნული ფუნქციისგან განსხვავდება მუდმივი მნიშვნელობით. არასტაციონარული მონაცემებისთვის, ფუნქცია r (განტოლებაში (4.23)) დამოკიდებულია სივრცულ ცვლადებზე და ოპტიმალური პროგნოზირების კოეფიციენტები უნდა განსხვავდებოდეს სივრცითი კოორდინატების მიხედვით ჩვეულებრივ, საკმაოდ კარგად არის მიახლოებული სტაციონარული ფუნქციებით, ასე რომ, არასტაციონარული წრფივი პროგნოზირების მოწყობილობა იძლევა საკმაოდ კარგ შედეგებს DPCM მეთოდის გამოყენებით ვიდეო ინფორმაციის შეკუმშვისას, შეცდომები ჩვეულებრივ ჩნდება გამოსახულების ობიექტების საზღვრებში, სადაც დაკმაყოფილებულია სტაციონარული ვარაუდი. ყველაზე ნაკლებად და რეკონსტრუქციულ სურათში ისინი ვიზუალურად აღიქმება, როგორც არანორმალურად მსუბუქი ან ბნელი წერტილები.

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

კვანტიზაციის დონეების მინიმალური რაოდენობა არის ორი (ცალნიშნა რიცხვები) და შეესაბამება გამოსახულების ისეთ კვანტიზაციას, რომელშიც სიკაშკაშის განსხვავება იღებს ფიქსირებულ (დადებით ან უარყოფით) მნიშვნელობას. ამ მეთოდს, როგორც წესი, უწოდებენ დელტა მოდულაციას (ნახ. 4.8) შეიძლება გამარტივდეს კვანტიზატორის შეცვლით, ხოლო n-ე რიგის პროგნოზირების ინტეგრატორით. დელტა მოდულაციის მეთოდის გამოყენებით გამოსახულების სიჭარბის შემცირებისას, შეინიშნება იგივე უარყოფითი მხარეები, როგორც სხვა სიგნალების დელტა მოდულაციასთან, როგორიცაა მეტყველება, კერძოდ, კიდეების გახანგრძლივება და ფრაგმენტაციის დამახინჯება. თუმცა, თუ სურათის შერჩევის სიხშირე არჩეულია Nyquist სიხშირეზე ბევრად მაღალი, მაშინ დელტა მოდულაციის შეკუმშვა იწვევს მცირე (სუბიექტურად შესამჩნევ) შეცდომებს. თუ შერჩევის სიხშირე უახლოვდება Nyquist-ის სიხშირეს, მაშინ სურათზე გამოჩნდება უფრო მეტი კიდეების გადაწევა (სურათების კიდეებზე) და დამსხვრეული დამახინჯება (მუდმივი სიკაშკაშის მქონე ადგილებში). როგორც მეტყველების შეკუმშვისას, ადაპტირებულ დელტა მოდულაციას შეუძლია შეამციროს ეს შეცდომები. თუმცა, ზოგადად, სურათების გადაცემისას, დელტა მოდულაცია ნაკლებად ეფექტური აღმოჩნდა, ვიდრე მეტყველების გადაცემისას.

ორზე მეტი დონის კვანტიზაცია შესაძლებელს ხდის უფრო მაღალი ხარისხის სურათების მიღებას, ხოლო სიჭარბის შემცირებით. DPCM შეკუმშვის სისტემა 8-დონიანი (3-ბიტიანი) კვანტიზაციით, როდესაც ოპტიმალურად არის განთავსებული ზღურბლებთან, აწარმოებს სურათებს, რომლებიც იგივე ხარისხისაა, როგორც PCM სისტემა, ბიტის სიღრმე 6-დან 8-მდე, გარდა შეცდომების სიკაშკაშის ხაზებთან ახლოს. .

რა თქმა უნდა, კვანტიზაციის მოწყობილობის გამომავალი სიგნალი უნდა იყოს კოდირებული, რადგან კვანტური განსხვავებების ალბათობის განაწილება არ არის ერთგვაროვანი. კოდის წარმატებული არჩევით (მაგალითად, Shannon - Fano კოდი ან
Huffman) ახერხებს კიდევ უფრო შეამციროს ინფორმაციის შექმნის საერთო სიჩქარე. პრატი აღნიშნავს, რომ ჰაფმანის კოდის გამოყენებისას შესაძლებელია ინფორმაციის შექმნის სიჩქარის შემცირება 2.5 ბიტამდე/წერტილამდე. სიჩქარის ეს დამატებითი შემცირება უნდა შეესაბამებოდეს მეხსიერების, სინქრონიზატორებისა და დამხმარე მეხსიერების რეგისტრების გაზრდილ ღირებულებას და სირთულეს, რომელიც საჭიროა ჰაფმანის კოდების გასაშვებად.

ზემოთ განხილული იყო DPCM-ის გამოყენებით გამოსახულების შეკუმშვის საკითხები ელემენტების ხაზით შერჩევისას (ანუ, პროგნოზირებისთვის იქნა აღებული წერტილები, რომლებიც მიმდინარე სკანირების ხაზზე მდებარეობს). სურათების ორგანზომილებიანი ბუნების გამო, შესაძლებელია (და მიზანშეწონილია) DPCM მეთოდის გაფართოება ისე, რომ პროგნოზი ითვალისწინებდეს სიკაშკაშეს წერტილებში, რომლებიც მდებარეობს არა მხოლოდ მიმდინარე, არამედ წინა სკანირების ხაზებზე. DPCM შეკუმშვის სქემები ასეთი ორგანზომილებიანი პროგნოზით ეფუძნება იმავე პრინციპებს, როგორც ერთგანზომილებიანი პროგნოზირებისას. ვინაიდან გამოსახულებებს ახასიათებს ორგანზომილებიანი სტატისტიკური ურთიერთობების არსებობა, შეიძლება იმედი ვიქონიოთ, რომ ორგანზომილებიანი პროგნოზი უკეთეს შედეგს იძლევა გამოსახულების შეკუმშვისას, რადგან გამოსახულების დეკორელაცია პროგნოზირებისა და გამოკლების ოპერაციების გამოყენებით შესრულდება ორი კოორდინატზე. მართლაც, სივრცითი პროგნოზირების მქონე მოწყობილობები უკეთეს სურათებს აწარმოებენ. ჰაბიბიმ აჩვენა, რომ ორგანზომილებიანი მესამე რიგის პროგნოზირებადი მოწყობილობის გამოყენებით 8-დონიანი (3-ბიტიანი) კვანტიზაციით, მიიღეს სურათები, რომლებიც ვიზუალურად ვერ გამოირჩეოდა PCM-ით დამუშავებული ორიგინალური ფოტოებისგან 11-ბიტიანი რიცხვებით.

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

4.3.3. ტრანსფორმაციის დომენში დამუშავებით გამოსახულების სიჭარბის შემცირების სქემები

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

[ Cg ] = [ Ф ] [ ] [ Ф ]T = ,

(4.24) სადაც [Ф] არის მატრიცა, რომელიც შედგება ორთოგონალური საკუთრივექტორული სვეტებისგან Фi და [] არის საკუთარი მნიშვნელობების დიაგონალური მატრიცა.

კოორდინატთა ტრანსფორმაციას, რომელიც განსაზღვრულია საკუთრივ ვექტორების მატრიცით [Ф], აქვს თვისება, რომ ის გარდაქმნის რიცხვთა მოცემულ მასივს მეორეში არაკორელირებული ელემენტებით და მიღებულ კომპონენტებს აქვთ კლებადი ვარიაციები. დაუშვით მატრიცის საკუთარი მნიშვნელობები
დალაგებულია კლებადობით და დანომრილია ისე, რომ

, (4.25) და მათთან დაკავშირებული საკუთრივვექტორები განლაგდეს იმავე თანმიმდევრობით. მაშინ საკუთრივ ვექტორების [Ф] მატრიცას აქვს ის თვისება, რომ მისი გამრავლება გამოსახულების ვექტორზე g (ლექსიკოგრაფიული განლაგებით წარმოქმნილი) იძლევა ვექტორს.

(4.26), რომელსაც აქვს არაკორელირებული კომპონენტები, და ვექტორის G კომპონენტები დალაგებულია მათი ვარიაციების კლებადობით, რაც წარმოადგენს კარჰუნენ-ლოევის გაფართოების დისკრეტული ვერსიის თვისებას, რომელიც რეალურად აღწერილია მიმართებით (4.24) - ( 4.26).
აშკარაა კარჰუნენ-ლოევის (KL, ან კოვარიანტული) ტრანსფორმაციის სარგებლობა გამოსახულების სიჭარბის შესამცირებლად. გამოსახულების ნიმუშების მასივი ჩანაცვლებულია სხვადასხვა სტატისტიკური წონის მქონე ცვლადების სიმრავლით).
დატკეპნის მიღწევა შესაძლებელია დაბალი სტატისტიკური წონის მქონე ცვლადების გაუქმებით და დანარჩენის შენარჩუნებით. თუ, მაგალითად, დავტოვებთ მ

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

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

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

-4 -3 -2 -1
ბ ი

შეტყობინების i-ე ბიტის დასამალად, განსხვავება გამოითვლება. თუ, ამ შემთხვევაში, b i არ შეესაბამება საიდუმლო ბიტს, რომელიც უნდა იყოს დამალული, მაშინ მნიშვნელობა შეიცვლება უახლოესით, რომლისთვისაც ასეთი პირობა დაკმაყოფილებულია. ამ შემთხვევაში, პიქსელების ინტენსივობის მნიშვნელობები, რომელთა შორის განსხვავება იყო გამოთვლილი, შესაბამისად რეგულირდება საიდუმლო შეტყობინება განსხვავების შესაბამისი მნიშვნელობის მიხედვით.

განვიხილოთ პროგრამის მაგალითი, რომელიც ახორციელებს გამოსახულების კვანტიზაციის მეთოდს

საწყისი მონაცემები სტანდარტულია.

ნაბიჯი 2

ჩვენ გამოვთვალოთ საბნიო გასაღები მოდულების (M.28) და (M.29) გამოყენებით. ამ შემთხვევაში, მოდული (M.28) აბრუნებს სიგნალის ყველა შესაძლო განსხვავებას (-255-დან +255-მდე), ხოლო მოდული (M 29) აბრუნებს ამ განსხვავებების შესაბამისი ბიტის მნიშვნელობებს.

ღირებულებები ბ იამ შემთხვევაში, ისინი გამოითვლება წითელი ფერის კომპონენტის მასივის საფუძველზე. უფრო მეტიც, მასივის თითოეული სვეტისთვის ჯამი გამოითვლება მისი შემადგენელი ელემენტების 2 მოდულით, ყოველი მესამე ელემენტის შეჯამების შედეგზე ლოგიკური მიმატებით. მოდულის ბოლოს მიღებული ვექტორი ფართოვდება ვექტორის სიგრძით. ამრიგად, მასივის ელემენტები ფსევდო შემთხვევითი ხასიათისაა. ჩამოყალიბებული საბნის გასაღების ფრაგმენტები ნაჩვენებია ნახ. 5.15.

l- b=
-255
-254
-253
-252
-2
-1

ბრინჯი. 6.15. ქვილთი საკვანძო ფრაგმენტები

მოდით განვათავსოთ კონტეინერის მასივი თან(ლურჯი ფერის კომპონენტის მასივი) ვექტორში მოდულის გამოყენებით (M.16). დავაყენოთ მიღებული ვექტორის ელემენტის საწყისი ინდექსი, საიდანაც იქნება ჩასმული ბიტები და შეტყობინებები (მაგალითად, ).

ნაბიჯის ზომის გამოსათვლელად (ფსევდო შემთხვევითი ინტერვალი) ვიყენებთ მოდულს (M.15). მოდით ამავე დროს TO := 8.

ნაბიჯი 4

ჩანერგვის ალგორითმი ხორციელდება მოდულის მიერ (M.30). ორობითი მონაცემების ვექტორის ფორმირება სიმბოლოთა სტრიქონიდან მსგავსია (M.21) წარმოდგენილის (ამ შემთხვევაში, თუმცა აუცილებელია მისი ჩანაცვლება ).

შეტყობინების თითოეული ბიტისთვის გამოითვლება ინდექსი კონტეინერის ვექტორული ელემენტი Cv. მეზობელ პიქსელებს შორის სხვაობა გამოითვლება Cvzდა C vz-1შიდა მარყუჟი ეძებს შესაბამის სხვაობის მნიშვნელობას ვექტორში. თუ აღმოჩენილია, ცვლადს ენიჭება ინდექსის მნიშვნელობა მე,რომელიც შეესაბამება ამ განსხვავებას.

თუ მნიშვნელობა არ შეესაბამება ფარული შეტყობინების მიმდინარე ბიტს, მაშინ ხდება უახლოესი ინდექსის ძიება, რომელზეც ბიუდრის შეტყობინების ბიტს. ძებნა კეთდება ქვევით (L)და ზევით (H)ინდექსიდან.

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

კონტეინერის პიქსელის ინტენსივობა სვ ზტოლია მიმდებარე პიქსელის ინტენსივობის გაზრდილი ოდენობით Sv z -1. თუ ეს ზრდა იწვევს ფერის ინტენსივობის მნიშვნელობას დიაპაზონის მიღმა, მაშინ, პირიქით, მიმდებარე პიქსელის Sv z -1 ინტენსივობას ენიჭება პიქსელის ინტენსივობის მნიშვნელობა. სვ ზოდენობით შემცირებული). შეტყობინების ბოლო ბიტის ჩაშენების შემდეგ, გარე მარყუჟი წყდება.

ვახორციელებთ ვექტორის საპირისპირო დაკეცვას სვმატრიცაში, რომელსაც აქვს პირველადი მასივის განზომილება თან(M.7). ჩვენ ვიღებთ მასივს .



რაიმე შეკითხვა?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: