Kompresi Citra Medik
Ditulis oleh A.D Setiawan di/pada Juni 11, 2008
Radiologi adalah salah satu domain aplikasi utama di teknologi pencitraan medis. Menurut Wong et. al. [1], 30% pemeriksaan radiologi di Amerika serikat dilakukan secara langsung pada media digital. Berbagai macam citra medik dalam berbagai modalitas diantaranya adalah citra sinar-x (X-ray), computed tomography (CT), magnetic resonance imaging (MRI), ultrasonography (USG), positron emission tomography (PET), single photon emission computerized tomography (SPECT), nuclear medicine (NM), digital substraction angiography (DSA), dan digital flurography (DF) belum dapat disimpan dalam rekam medik bersama-sama dengan informasi tekstual. Sebelum disimpan dalam rekam medis, citra-citra medik ini harus diubah dahulu ke dalam format digital.
Terdapat beberapa permasalahan yang menyebabkan informasi citra medik tidak disimpan dalam rekam medis, yaitu besarnya kapasitas penyimpanan dan lebar kanal telekomunikasi yang dibutuhkan untuk mentransmisikan citra medik tersebut. Sebagai ilustrasi, sebuah citra digital sinar-x thorax memiliki dimensi 2000 x 2000 piksel dengan derajat keabuan 8 bit, memiliki ukuran sebesar 3.7 MB. Selain berukuran besar, jumlah citra medik yang disimpan juga sangat banyak. Stephen Wong et al [1], dalam publikasinya menyebutkan bahwa komunitas PACS (Picture Archiving and Communication Systems) di USA mencatat jumlah citra medik digital yang telah disimpan mencapai orde petabyte, 10^15.
Sebuah solusi telah dikembangkan untuk menjawab permasalahan tersebut, yaitu kompresi citra medik. Solusi ini masih berhadapan dengan masalah-masalah legal, sebab berkaitan dengan proses diagnosis yang berujung pada jiwa manusia. Terdapat dua jenis kompresi citra, yaitu kompresi lossless dan lossy. Kompresi lossy memiliki kinerja yang lebih baik dibandingkan dengan lossless dalam pemampatan citra. Sebaliknya, dilihat dari sisi legalitas kompresi lossless tidak memiliki masalah, karena bersifat dapat dikembalikan (reversible). Kompresi ini tidak akan menghilangkan informasi apapun dari citra medik. Akan tetapi, kompresi lossy akan bersinggungan dengan aspek legal, sebab terdapat informasi yang hilang pada citra hasil rekonstruksinya. Banyak kompresi lossy dikembangkan agar memenuhi syarat dalam aspek legalitas, meskipun aspek legal standarnya belum ada.
Saya bersama Pak Andriyan meneruskan penelitian di lab kami sebelumnya untuk mengembangkan pengkodean citra medik ini. Algoritma yang kami gunakan adalah kuantisasi vektor (KV). Pengkodean yang telah kami kembangkan mampu memampatkan citra sinar-x hingga 16 kalinya bahkan hingga 64 kali tetapi tetap memelihara diagnostic value dari citra tersebut. Detail tentang algoritma yang kami kembangkan (Scalable Fuzzy Vector Quantization) [2] akan saya jelaskan pada posting yang lain. Algoritma ini mampu mengkodekan citra sinar-x thorax yang berukuran 3.7 MB menjadi 235 KB. Berikut ini adalah hasil dari implementasi algoritma yang kami kembangkan

Gambar di sebelah kiri adalah citrathorax asli, sedangkan yang di sebelah kiri merupakan citra rekonstruksinya. Terlihat citra rekonstruksi masih memelihara diagnostic information/value. Jika kita lihat dengan skala 1:1, terdapat blocking artifact. Hal ini disebabkan oleh proses kuantisasi. Artifak ini bisa dilihat pada gambar di bawah ini.

Bisa Anda lihat blocking artifact muncul pada citra rekonstruksi di sebelah kiri. Bandingkan dengan citra asli di sebelah kanan. Saat ini kami sedang mencoba mengimplementasikan algoritma tertentu untuk meminimalkan efek blocking ini. Di samping itu kami juga sedang mencoba mengimplmentasikan lossless coding menggunakan search-order coding untuk memampatkan citra terkode (235 KB) menjadi lebih kecil lagi (sekitar 160 – 180 KB).
Sistem pengkodean yang kami kembangkan juga menerapkan skema scalable atau lossy-to-lossless. Artinya citra rekonstruksi yang merupakan citra terkompresi lossy dapat kita tingkatkan kualitas citranya menjadi kualitas yang sama dengan citra aslinya pada suatu daerah tertentu yang ingin dianalisis (region of interest – ROI). Asumsinya, dokter atau radiologis hanya menganalisis pada beberapa daerah tertentu (ROI)dengan luas yang tidak terlalu lebar.

Pada gambar di atas ini, Anda bisa melihat area di dalam kotak telah ditingkatkan kualitasnya dengan tanda hilangnya blocking artifact. Sedangkan, daerah di luar kotak ditemui blocking artifact, sebab daerah tersebut adalah daerah pada citra rekonstruksi (lossy) yang belum ditingkatkan kualitasnya.
Referensi
- S. Wong et. al., Radiologic image compression-A review, Proc. of the IEEE, Vol. 83, No.2, Feb. 1995
- A.D. Setiawan, A.B. Suksmono, and B. Dabarsyah, Scalable Radiology Image Transfer and Compression Using Fuzzy Vector Quantization, Jounal of eHealth Tech. & Applications, 2007

Pengaksesan Citra Medik Menggunakan PDA « Blognya Mba@hmo berkata
[...] Kompresi Citra Medik [...]
michihiro suryanto berkata
pak,saya mw tanya metode apa yang efektif untuk digunakan bwt memisahkan mana bagian yg penting (RoI) dari suatu citra dan man yang tidak??kebetulan kerja praktek saya tentang kompresi citra juga pak.terima kasih banyak ya Pak.Gbu
A.D Setiawan berkata
@suryanto:
Hmm … sejauh ini saya belum menemukan adanya metode yg baku untuk menentukan RoI dari suatu citra. Seorang ahli medis biasanya melakukan analisis pada daerah tertentu, yang signifikan memberikan interpretasi medis. Contohnya, seorang radiolog mengamati citra thorax. Dia akan mengamati apakah di paru2 terdapat bercak berawan misalnya, sebab hal ini menandai adanya flek pada paru. Jika dia ingin mengamati lebih jelas berapa banyak bercak berawan di suatu daerah tertentu (bercak ini biasanya kecil), maka radiolog ini harus melakukan zoom-in. Nah kalau proses zoom-in dilakukan pada citra yg dikompress menggunakan VQ pada artikel di atas, hasilnya akan tidak jelas, karena munculnya efek blocking. Oleh sebab itu, radiolog ini akan memilih daerah tersebut ebagai RoI untuk didapatkan kualitas yg serupa dengan citra asli. Semoga jawaban ini membantu
michihiro suryanto berkata
terima kasih Pak atas jawabannya.Kebetulan saya megikuti makalah-makalah dan paper-paper Bapak terutama tentang Medical Image Compression dan saya mengambil topik KP tentang Medical Image Compression yang akan saya teruskan menjadi TA saya Pak.Jadi secara tidak langsung Bapak mengatakan bahwa proses kompresi citra medis tersebut dimulai dengan menentukan bagian RoI ditentukan secara manual oleh orang yang akan mengamati citra medis tersebut??Setelah ditentukan RoI dari citra tsb maka dikuantisasi vektoR??kemudian direkonstruksi kembali??Apakah proses kompresi yang dimaksud Bapak seperti itu??Kalo boleh tahu,bapak memakai program apa untuk kompresi citra medis tersebut??apakah MATLAB??apakah saya boleh tahu algoritmanya Pak???Atas bantuannya saya ucapkan Terima Kasih Pak.Gbu
A.D Setiawan berkata
@michihiro suryanto:
Kuantiasi vektor kita pakai untuk memampatkan ukuran citra medik sampai ukurun yg terkecil yg bisa dilakukan. Ada satu aspek yg harus diperhatikan dalam memampatkan citra medik, yaitu aspek legalitas: “tidak diperbolehkan ada informasi yang hilang sebagai akibat proses pemampatan”. Artinya apa? kompresi yg bisa kita lakukan adalah kompresi tidak merugi (lossless). Tapi kompresi rasio yang dapat kita peroleh kecil, sekitar 4 hingga 8 kali, bergantung pada entropy citra. Agar kita bisa mendapatkan rasio kompresi yang besar, kita dapat menggunakan kompresi merugi (lossy). Tapi ada informasi yg hilang (bermasalah dengan aspek legalitas). akhirnya kami mengembangkan skema kompresi merugi ke tidak merugi (lossy-to-lossless) atau scalable. singkatnya, citra kita mampatkan menggunakan kompresi merugi (lossy) menggunakan kuantisasi vektor hingga rasio koompresi 16 kali. Bahkan memungkinkan hingga 64 kali lebih kecil. Ilustrasi: citra medik thorax dengan ukuran 3.7 MB dengan dimensi sekitar 2000×2000 piksel, dapat dimampatkan hingga ukuran 235 KB. Dengan ukuran yg kecil ini, citra medik yang telah dikompres dapat dikirimkan menggunakan infrastruktur telekomunikasi dengan bandwidth kecil. Setelah citra tsb. didekodekan (decoding), hasilnya adalah citra medik yg merugi (ada informasi yg hilang). Nah untuk mengembalikan informasi yg hilang kita tambahkan residu citra yg didapatkan pada saat pengkodean (encoding). Nah pengembalian informasi yg hilang tidak dilakukan pada keseluruhan citra, tp hanya pada daerah tertentu saja yg kita kenal dengan region of interest (RoI). Asumsinya dokter hanya tertarik (interest) pada daerah tertentu saja untuk dipelajari lebih lanjut. Pemilihan RoI tidak hanya sekali saja pada sebuah citra, namun bisa berkali2. Baiklah mungkin ini yg bisa saya sampaikan. Saya sedang mencoba menulis ttg kompresi ini di blog saya yg lain: vqcoding.wordpress.com … tp belum beres
michihiro suryanto berkata
Apakah proses diatas sama dapat saya sebutkan Kompresi Citra Menggunakan Region of Interest Vector Quantization??kuantisasi vektor pd citra yg Bapak maksud menggnakan algoritma apa??apa saya boleh mengetahui sourcecodenya???Terima kasih banyak Pak.Gbu
michihiro suryanto berkata
Bagaimana Pak??
A.D Setiawan berkata
@Michihiro Suryanto:
Maaf saya baru bisa konek internet
… Mungkin saya lebih cenderung bahwa kompresi citranya menggunakan kompresi kuantisasi vektor dengan skema lossy-to-lossless. Skema inilah yg mengimplementasikan pemilihan RoI. Algoritma yg saya pakai untuk melakukan kuantisasi di domain vektor adalah fuzzy c-means. Silakan kalau mau mengetahui sourcecodenya … dikirim ke email Anda?
michihiro suryanto berkata
terima kasih Pak,akhirnya dibalas..Hehehe..oh mksd Bapak jd proses Region of Interest nya terdapat pada bagian skema Lossy-to-lossless??Program yg dipakai apakah MATLAB Pak??kalo boleh saya minta tolong dikirim ke email saya ya Pak..michihirosuryanto@yahoo.co.id.Terima kasih banyak Pak.
michihiro suryanto berkata
michihirosuryanto@yahoo.co.id
ciendy berkata
>>Tapi kompresi rasio yang dapat kita peroleh kecil, sekitar 4 hingga 8 kali, bergantung pada entropy citra.
salam kenal pak, berdasarkan tulisan bpk di atas, saya ingin tau lebih lanjut tentang entropy citra. Sebenarnya apa dan bagaimana kriteria entropy citra yang baik?
Kebetulan saat ini saya sedang menyelesaikan TA tentang segmentasi image khususnya untuk image medis. Namun saat ini saya terbentur untuk menentukan performansi dari metode saya. Apakah entropy citra dapat digunakan sebagai pengukur performansi tersebut? Trimakasih atas bantuannya pak…
A.D Setiawan berkata
@Michihiro Suryanto:
Maaf ya baru baca sekarang, ada kesibukab berlebih 1-2 minggu ini … hari Senin nanti program clustering, encoder, dan decodernya yang saya tulis menggunakan MATLAB akan saya kirimkan. Btw, Anda bisa add YM saya (darma232@yahoo.com). Thx
@Ciendy:
Entropy itu adalah laju bit terkecil yang dapat dicapai untuk merepresentasikan sebuah data/simbol (atau piksel untuk citra). Satuan yang digunakan adalah bit. Jika kita memampatkan data/citra hingga laju bitnya (bit per piksel) lebih kecil dari nilai entropynya, maka akan ada informasi yang hilang, artinya kita melakukan pemampatan secara merugi (lossy) atau citra rekonstruksinya tidak akan sama dengan citra aslinya. Sebaliknya jika kita memampatkan data/citra hingga laju bit lebih besar dari entropy, maka kita akan mendapatkan pemampatan yang tidak merugi (lossless) atau pemampatan yang reversible, artinya kita dapat mengembalikan lagi data/citra sama persis seperti sebelum dimampatkan (citra aslinya).
Untuk pemampatan tidak merugi (lossless) semakin kecil entropy citra akan semakin besar rasio kompresi yang kita dapatkan. Sedangkan untuk pemampatan merugi (lossy) entropy menjadi “tidak terlalu diperhatikan”, sebab laju bit hasil pemampatan pasti akan lebih kecil dari entropy citra. Besarnya rasio akan mempengaruhi kualitas citra rekonstruksi.
Biasanya performansi algoritma pemampatan diukur dengan parameter PSNR (Peak Signal to Noise Ratio) citra rekonstruksi terhadap citra aslinya. Angka PSNR > 35 dB biasanya dikategorikan baik, dan angka >= 40 dB dikategorikan dengan sangat baik. Tapi ini bukan patokan ya. PSNR juga bergantung dengan citra ujinya.
Bagaimana? apakah uraian ini cukup membantu?
ciendy berkata
trimakasih banyak atas infonya pak, sekarang saya mulai sedikit terbuka tentang entropy..
Dengan begitu boleh saya katakan jika nilai entropy dari hasil pemrosesan image menjadi lebih kecil dari entropy citra asli ada beberapa informasi yang hilang dari pemrosesan itu dan begitu pula sebaliknya?
Satu lagi pak, apakah tidak cukup untuk menentukan performansi suatu pemrosesan citra berdasarkan nilai entropynya sehingga harus ditunjang dengan pengaruh nilai PSNR-nya?atau kita dapat memilih salah satu dari kedua cara tersebut?
trimakasih pak..
A.D Setiawan berkata
@Ciendy:
Ciendy wrote:
Dengan begitu boleh saya katakan jika nilai entropy dari hasil pemrosesan image menjadi lebih kecil dari entropy citra asli ada beberapa informasi yang hilang dari pemrosesan itu dan begitu pula sebaliknya?
Jawaban:
biasanya encoded image (original image di-compress menjadi encoded image, encoded image di-uncompress menjadi reconstructed image) bisa memliki entropy yg lebih besar atau lebih kecil jika dibandingkan dengan original image bergantung dari jenis citra dan algoritma kompresinya [koreksi dari comment sebelumnya, red]. Untuk kompresi VQ yang saya kembangkan entropy encoded image nya lebih besar dari original image. Diskusi tentang entropy akan saya pindahkan ke posting saya tentang entropy
Ciendy wrote:
Satu lagi pak, apakah tidak cukup untuk menentukan performansi suatu pemrosesan citra berdasarkan nilai entropynya sehingga harus ditunjang dengan pengaruh nilai PSNR-nya?atau kita dapat memilih salah satu dari kedua cara tersebut?
Jawaban:
Entropy itu bergantung dari citranya, semakin dinamis sebuah citra, akan semakin tinggi pula entropynya. Ingat penulisan matematis dari entropy adalah H=SUM_k(p_k*log_2(1/p_k)). Dengan demikian entropy tidak terlalu cocok untuk menggambarkan PERFORMANSI/KINERJA algoritma pengkodean. Untuk pengukuran performansi biasanya yang digunakan adalah PSNR. Mudahnya PSNR itu mengukur seberapa dekat reconstruction image dengan original image. Semakin dekat reconstruction image terhadap original image tentunya akan semakin baik bukan. Oh ya ada satu lagi yg perlu Anda ukur, yaitu rasio kompresi (RK). Biasanya RK berbanding terbalik dengan PSNR. Semakin baik PSNR nya, semakin kecil RK nya dan sebaliknya. Nah yg harus Anda lakukan adalah mencari RK dan PSNR yg OPTIMAL dan bukan maksimal. Tentunya hal ini bergantung pada jenis citra yg Anda amati.
Semoga membantu
michihiro suryanto berkata
Pak maaf,apakah programnya sudah Bapak kirim? ke email saya?Tp di email saya belum ada pak??Trerima kasih Pak.
ciendy berkata
o0o0ow begitu
trima kasih banyak pa, saya akan coba lakukan yang bapak sarankan..
A.D Setiawan berkata
@Michihiro Suryanto: email sudah saya kirimkan ke michihirosuryanto@yahoo.co.id tanggal 1 Sept 2008. Coba dicek lagi, ada 3 attachment file: ImgEncoder.m (2KB); VQdecoder.m (2KB); VQTrainFCMDevAll.m (6KB). Thx
@Ciendy: Terima kasih kembali. Mungkin dalam beberapa hari ini akan saya posting tulisan tentang entropy.
Michihiro Suryanto berkata
Oh iya Pak, maaf ya pak…
Terima Kasih banyak ya Pak atas bantuannya.Saya akan mempelajari program yang Bapak telah berikan ke saya. Dan saya masih mohon bantuan Bapak apabila masih ada yang perlu tanyakan pada Bapak. Sekali lagi terima kasih ya Pak.
A.D Setiawan berkata
@Michihiro Suryanto dan Ciendy:
Pembicaraan kita ttg entropy makin seru, kita diskusikan di postingan khusus tentang entropy saja ya … tunggu beberapa hari lagi, saya selesaikan dulu tulisannya, biar jelas dan tidak salah tangkap. Oh ya ada komentar saya sebelumnya yang saya koreksi, silakan dibaca lagi …. Thx
ciendy berkata
Pak saya jadi timbul pertanyaan lagi neh..kenapa entropy bergantung pada jenis citra?jenis citra apa yang dimaksud?apakah citra warna atau citra grayscale? atau jenis apa maksudnya?
trimakasih pak..
oY Pak, tulisan tentang entropy-nya blom launching yh?
michihiro suryanto berkata
Salam sejahtera Pak,,
saya masih mempelajari program yang Bapak kasih.Oiy Pak apa saya boleh minta contoh Medical Image original yang Bapak Kompresi ??
Terima kasih banyak Pak..
michihiro suryanto berkata
Oiy Pak,apakah saya boleh minta jg paper Bapak tentang “Scalable Radiology Image Transfer and Compression Using Fuzzy Vector Quantization”
Terima Kasih Pak.
Michihiro Suryanto berkata
Pak,apakah medical image nya sudah bisa dikirim?
Terima Kasih Pak.
apip berkata
ni ada situs yang cocok buat radiology…saya sering banget berkunjung…materinya kok menarik ya…