Xusanov Pirmuhammad 833-19 Diskret kosinus almashtirishlari


Download 290.85 Kb.
Pdf ko'rish
Sana11.11.2021
Hajmi290.85 Kb.


 

 

Xusanov Pirmuhammad 833-19 



Diskret kosinus almashtirishlari 

 

 



Diskret kosinus o'zgarishi (DCT) turli chastotalarda 

tebranuvchi kosinus funktsiyalari yig'indisi nuqtai nazaridan 

ma'lumotlar nuqtalarining cheklangan ketma-ketligini ifodalaydi. 

1972 yilda Nosir Ahmad tomonidan taklif qilingan DCT signallarni 

qayta ishlash va ma'lumotlarni siqishda keng qo'llaniladigan 

transformatsiya usuli hisoblanadi. U raqamli tasvirlar (masalan, JPEG 

va HEIF kabi, kichik yuqori chastotali komponentlar tashlab 

yuborilishi mumkin), raqamli video (MPEG va H.26x kabi), raqamli 

audio (Dolby Digital, MP3 kabi) kabi koʻpgina raqamli axborot 

vositalarida qoʻllaniladi. va AAC), raqamli televidenie (SDTV, HDTV 

va VOD kabi), raqamli radio (AAC+ va DAB+ kabi) va nutqni kodlash 

(AAC-LD, Siren va Opus kabi). DCTlar, shuningdek, raqamli 

signallarni qayta ishlash, telekommunikatsiya qurilmalari, tarmoq 

o'tkazish qobiliyatini kamaytirish va qisman differentsial 

tenglamalarni raqamli hal qilish uchun spektral usullar kabi ko'plab 

boshqa ilovalar uchun ham muhimdir. Siqilish uchun sinus 

funksiyasidan ko'ra kosinusdan foydalanish juda muhim, chunki 

(quyida tasvirlanganidek) odatdagi signalni taxmin qilish uchun 

kamroq kosinus funksiyalari kerak bo'ladi, differensial tenglamalar 

uchun esa kosinuslar chegara shartlarining ma'lum bir tanlovini 

ifodalaydi. Xususan, DCT bu Furye bilan bog'liq bo'lgan diskret Furye 

transformatsiyasiga (DFT) o'xshash, lekin faqat haqiqiy raqamlardan 

foydalanadi. DCTlar odatda davriy va nosimmetrik ravishda 

kengaytirilgan ketma-ketlikning Furye seriyali koeffitsientlari bilan 

bog'liq, DFTlar esa faqat davriy ravishda kengaytirilgan ketma-

ketliklarning Furye seriyasi koeffitsientlari bilan bog'liq. DCTlar 

uzunligi taxminan ikki baravar bo'lgan DFT larga ekvivalent bo'lib, 

ular teng simmetriyaga ega bo'lgan haqiqiy ma'lumotlarda ishlaydi 




 

 

Xusanov Pirmuhammad 833-19 



(chunki real va hatto funktsiyaning Furye o'zgarishi haqiqiy va 

juftdir), holbuki ba'zi variantlarda kirish va/yoki chiqish 

ma'lumotlari yarmiga siljiydi. namuna. Sakkizta standart DCT 

varianti mavjud, ulardan to'rttasi keng tarqalgan. 

 

 

Blokni siqish deb ham ataladigan DCT siqish, diskret DCT 



bloklari to'plamidagi ma'lumotlarni siqadi. DCT bloklari bir qancha 

oʻlchamlarga ega boʻlishi mumkin, jumladan, standart DCT uchun 

8x8 piksel va 4x4 va 32x32 piksel oraligʻida turli xil butun DCT 

oʻlchamlari. DCT kuchli "energiya siqish" xususiyatiga ega , yuqori 

ma'lumotlarni siqish nisbatlarida yuqori sifatga erisha oladi. Biroq, 

og'ir DCT siqish qo'llanilganda blokli siqish artefaktlari paydo 

bo'lishi mumkin. DCT signalni qayta ishlashda eng ko'p qo'lla -

niladigan transformatsiya texnikasi va hozirgacha ma'lumotlarni 

siqishda eng ko'p qo'llaniladigan chiziqli transformatsiyadir. 

Siqilmagan raqamli media, shuningdek, yo'qotishsiz siqish uchun 

amaliy darajada yuqori xotira va tarmoqli kengligi talablari mavjud 

edi, bu yuqori samarali DCT yo'qotuvchi siqish texnikasi  tufayli 

sezilarli darajada kamaytirildi, ma'lumotlarni siqish nisbati uchun 

8:1 dan 14:1 gacha. yaqin studiya sifati, maqbul sifatli kontent uchun 

100:1 gacha DCT siqish standartlari raqamli tasvirlar, raqamli 

fotosuratlar, raqamli video, oqimli media, raqamli televideniya, 

oqimli televidenie, talab boʻyicha video kabi raqamli media tex-

nologiyalarida qoʻllaniladi. (VOD), raqamli kino, yuqori aniqlikdagi 

video (HD video) va yuqori aniqlikdagi televizor (HDTV). 

 

 



DCT va xususan DCT-II ko'pincha signal va tasvirni qayta 

ishlashda, ayniqsa yo'qotadigan siqishni uchun ishlatiladi, chunki u 

kuchli "energiya siqilish" xususiyatiga ega odatdagi ilovalarda, 

signalning aksariyat qismi ma'lumotlar odatda DCT ning bir nechta 




 

 

Xusanov Pirmuhammad 833-19 



past chastotali komponentlarida to'planadi. Kuchli korrelyatsiya 

qilingan Markov jarayonlari uchun  DCT Karxunen-Lev konver-

tatsiyasining siqilish samaradorligiga yaqinlashishi mumkin (bu 

dekorrelyatsiya ma'nosida optimaldir). Quyida tushuntirilga-nidek, 

bu kosinus funktsiyalarida yashirin bo'lgan chegara shart-laridan 

kelib chiqadi. DCTlar qisman differensial tenglamalarni spektral 

usullar bilan yechishda ham keng qo'llaniladi, bunda DCT ning turli 

xil variantlari massivning ikki uchida bir oz farq qiluvchi juft/toq 

chegara shartlariga to'g'ri keladi. DCTlar Chebishev poli-nomlari 

bilan ham chambarchas bog'liq va tezkor DCT algoritmlari Chebishev 

ko'phadlari qatori bo'yicha ixtiyoriy funktsiyalarni Chebishevga 

yaqinlashtirishda, masalan, Klenshou-Kertis kvadraturasida 

qo'llaniladi. DCT multimedia telekommunikatsiya quril-malari uchun 

kodlash standartidir. U bit tezligini pasaytirish va tarmoq o'tkazish 

qobiliyatidan foydalanishni kamaytirish uchun keng qo'llaniladi. DCT 

siqish raqamli signallar uchun zarur bo'lgan xotira miqdori va 

tarmoqli kengligini sezilarli darajada kamaytiradi. 

 

// Java dasturi 



 

import java.util.*; 

 

class GFG 



  public static int n = 8,m = 8; 

  public static double pi = 3.142857; 

  static strictfp void dctTransform(int matrix[][]) 

  { 

    int i, j, k, l; 



 

    double[][] dct = new double[m][n]; 

    double ci, cj, dct1, sum; 

 



 

 

Xusanov Pirmuhammad 833-19 



    for (i = 0; i < m; i++) 

    { 


      for (j = 0; j < n; j++) 

      { 


        if (i == 0) 

          ci = 1 / Math.sqrt(m); 

        else 

          ci = Math.sqrt(2) / Math.sqrt(m); 

           

        if (j == 0) 

          cj = 1 / Math.sqrt(n); 

        else 

          cj = Math.sqrt(2) / Math.sqrt(n); 

 

        sum = 0; 



        for (k = 0; k < m; k++) 

        { 

          for (l = 0; l < n; l++) 

          { 

            dct1 = matrix[k][l] * 

              Math.cos((2 * k + 1) * i * pi / (2 * m)) * 

              Math.cos((2 * l + 1) * j * pi / (2 * n)); 

            sum = sum + dct1; 

          } 

        } 

        dct[i][j] = ci * cj * sum; 

      } 


    } 

 

    for (i = 0; i < m; i++) 



    { 

      for (j = 0; j < n; j++) 

        System.out.printf("%f\t", dct[i][j]); 

      System.out.println(); 

    } 

  } 


   

  public static void main (String[] args) 

  { 



 

 

Xusanov Pirmuhammad 833-19 



    int matrix[][] = { { 255, 255, 255, 255, 255, 255, 255, 255 }, 

            { 255, 255, 255, 255, 255, 255, 255, 255 }, 

            { 255, 255, 255, 255, 255, 255, 255, 255 }, 

            { 255, 255, 255, 255, 255, 255, 255, 255 }, 

            { 255, 255, 255, 255, 255, 255, 255, 255 }, 

            { 255, 255, 255, 255, 255, 255, 255, 255 }, 

            { 255, 255, 255, 255, 255, 255, 255, 255 }, 

            { 255, 255, 255, 255, 255, 255, 255, 255 } }; 

    dctTransform(matrix); 

  } 




 

Download 290.85 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2020
ma'muriyatiga murojaat qiling