Кіріспе
JPEG стандартына қосымша
Lossless JPEG is a 1993 addition to JPEG standard by the Joint Photographic Experts Group to enable lossless compression. However, the term may also be used to refer to all lossless compression schemes developed by the group, including JPEG 2000, JPEG LS and JPEG XL. Lossless JPEG was developed as a late addition to JPEG in 1993, using a completely different technique from the lossy JPEG standard. It uses a predictive scheme based on the three nearest (causal) neighbors (upper, left, and upper left), and entropy coding is used on the prediction error. The standard Independent JPEG Group libraries cannot encode or decode it, but Ken Murchison of Oceana Matrix Ltd. wrote a patch that extends the IJG library to handle lossless JPEG. Lossless JPEG has some popularity in medical imaging, and is used in DNG and some digital cameras to compress raw images, but otherwise was never widely adopted. Adobe's DNG SDK provides a software library for encoding and decoding lossless JPEG with up to 16 bits per sample. ISO/IEC Joint Photography Experts Group maintains a reference software implementation which can encode both base JPEG (ISO/IEC 10918 1 and 18477 1) and JPEG XT extensions (ISO/IEC 18477 Parts 2 and 6 9), as well as JPEG LS (ISO/IEC 14495).
Lossless JPEG – Joint Photographic Experts Group тобының 1993 жылы JPEG стандартына енгізген, жоғалтусыз қысылуды қамтамасыз ететін мүмкіндік. Алайда, бұл термин топтың әзірлеген барлық жоғалтусыз қысылу схемаларына, соның ішінде JPEG 2000, JPEG LS және JPEG XL-ға да қатысты қолданылуы мүмкін. Жоғалтусыз JPEG 1993 жылы JPEG-ке соңғы қосымша ретінде, жоғалтқыш JPEG стандартынан мүлдем өзгеше техниканы пайдалана отырып жасалды. Ол үш жақын (себептік) көршіге (жоғары, сол және жоғарғы сол) негізделген болжау схемасын қолданады, ал болжау қатесіне ентропиялық кодтау қолданылады. Independent JPEG Group кітапханалары оны кодтауға немесе декодтауға қабілетсіз, бірақ Oceana Matrix Ltd. компаниясының Кен Мурчисон Lossless JPEG-ті өңдеуге IJG кітапханасын кеңейтетін жаңарту жасады. Жоғалтусыз JPEG медициналық бейнелеуде белгілі бір дәрежеде танымал және DNG мен кейбір цифрлық камераларда шикі суреттерді қысу үшін қолданылады, бірақ басқа жағдайларда кеңінен қолданылмады. Adobe DNG SDK үлгіге 16 битке дейін жоғалтусыз JPEG-ті кодтау және декодтау үшін бағдарламалық кітапхананы ұсынады. ISO/IEC Joint Photography Experts Group негізгі JPEG (ISO/IEC 10918 1 және 18477 1) және JPEG XT кеңейтімдерін (ISO/IEC 18477 2 және 6 9 бөлімдері), сондай-ақ JPEG LS (ISO/IEC 14495) кодтай алатын анықтамалық бағдарламалық жасақтаманы ұстап тұрады.
Lossless JPEG is a 1993 addition to JPEG standard by the Joint Photographic Experts Group to enable lossless compression. However, the term may also be used to refer to all lossless compression schemes developed by the group, including JPEG 2000, JPEG LS and JPEG XL. Lossless JPEG was developed as a late addition to JPEG in 1993, using a completely different technique from the lossy JPEG standard. It uses a predictive scheme based on the three nearest (causal) neighbors (upper, left, and upper left), and entropy coding is used on the prediction error. The standard Independent JPEG Group libraries cannot encode or decode it, but Ken Murchison of Oceana Matrix Ltd. wrote a patch that extends the IJG library to handle lossless JPEG. Lossless JPEG has some popularity in medical imaging, and is used in DNG and some digital cameras to compress raw images, but otherwise was never widely adopted. Adobe's DNG SDK provides a software library for encoding and decoding lossless JPEG with up to 16 bits per sample. ISO/IEC Joint Photography Experts Group maintains a reference software implementation which can encode both base JPEG (ISO/IEC 10918 1 and 18477 1) and JPEG XT extensions (ISO/IEC 18477 Parts 2 and 6 9), as well as JPEG LS (ISO/IEC 14495).
Жалпы сипаттама
JPEG LS – үздіксіз тоналды суреттерді жоғалтусыз/шамалы жоғалтусыз қысу стандарты. Оның ресми белгісі ISO 14495 1/ITU T.87. Бұл қарапайым және тиімді базалық алгоритм, ол модельдеу және кодтау деп аталатын екі тәуелсіз және ерекше кезеңнен тұрады. JPEG LS жоғалтусыз және шамалы жоғалтусыз суреттерді төмен күрделілікпен қысу стандартын ұсыну мақсатымен әзірленді, ол жоғалтусыз JPEG-ге қарағанда жақсы қысу тиімділігін қамтамасыз ете алады. Бұл стандарт сол кездегі Хэффман кодтамасына негізделген жоғалтусыз JPEG стандарты және басқа стандарттардың қысу өнімділігінің шектеулі болуына байланысты әзірленді. Осы нашар стандарттар қолданатын болжамдық қалдықтарының бірінші реттік энтропиясымен толық декорреляцияға қол жеткізу мүмкін емес. Ал JPEG LS жақсы декорреляцияға қол жеткізе алады. Осы стандарттың 1-бөлігі 1999 жылы аяқталды. 2003 жылы шыққан 2-бөлімде арифметикалық кодтау сияқты кеңейтімдер енгізілді. JPEG LS-тің негізгі бөлігі LOCO I алгоритміне негізделген, ол болжам жасауға, қалдықты модельдеуге және қалдықтарды контекстке сәйкес кодтауға негізделген. Бұл техниканың төмен күрделілігінің көп бөлігі болжамдық қалдықтарының екі жақты геометриялық үлестірілімге (дискретті Лаплас үлестірімі деп те аталады) сәйкес келуінен және геометриялық үлестірілімдер үшін шамамен оңтайлы деп танылған Голомб сияқты кодтарды пайдаланудан туындайды. Жоғалтусыз қысудан басқа, JPEG LS сонымен қатар жойғыш режимді ("жоғалтуға жақын") ұсынады, онда максималды абсолютті қателік кодтаушымен бақылана алады.
Өнер көрсету
JPEG LS үшін қысу әдетте JPEG 2000-ден әлдеқайда жылдам және бастапқы жоғалмайтын JPEG стандартынан әлдеқайда жақсы. JPEG LS үшін қысу әдетте JPEG 2000-ға қарағанда сәл нашар, бірақ бұл сурет мазмұнына қатты байланысты. JPEG LS үшін декомпрессия JPEG 2000-ға қарағанда әлдеқайда жылдам, бірақ бұл бағдарламалық жасақтаманың нақты декодер іске асырылуына байланысты. Бұл мәлімдеме ашық кодты іске асырулар үшін қолданылады.
LOCO-I алгоритмі
Кодтау алдында модельдеу сатысында екі қажетті қадам орындалуы тиіс: деректердің өзара тәуелсіздігін жою (болжамдау) және қателіктерді модельдеу.
Қарым-қатынасты жою/есептеу
LOCO I алгоритмінде, көлденең немесе тік жиектердің бастапқы анықталуы, ағымдағы X пикселінің көрші пикселдерін қарастыру арқылы жүзеге асырылады, бұл 3-суретте көрсетілгендей. Тік жиек жағдайында B деп белгіленген пиксель қолданылады, ал көлденең жиек жағдайында A орналасқан пиксель қолданылады. Бұл қарапайым болжаушы Медиандық жиек анықтау (MED) болжаушысы немесе LOCO I болжаушысы деп аталады. LOCO I болжаушысы X пикселін келесідей болжайды:
Үш қарапайым болжаушы келесі шарттарға сәйкес таңдалады: (1) X-тен сол жақта тік жиек болған жағдайда B-ні таңдауға бейім, (2) X-тен жоғары көлденең жиек болған жағдайда A, немесе (3) егер жиек анықталмаса A + B – C.
Контексттік модельдеу
JPEG LS алгоритмі әрбір контекст Ctx ішіндегі сәйкес үлгілік орташа мәндерді пайдалана отырып, болжау қателерінің шартты күтімін бағалайды. Контексттік модельдеудің мақсаты – текстуралық үлгілер мен кескіннің жергілікті белсенділігі сияқты жоғары реттік құрылымдарды болжау қателігін контексттік модельдеу арқылы пайдалану. Контекстер жергілікті градиентті білдіретін көршілес үлгілердің айырмашылықтарын алу арқылы анықталады: Жергілікті градиент көршілес үлгілердің тегіс және жиектілігі сияқты белсенділік деңгейін көрсетеді. Бұл айырмашылықтар болжау қателерінің статистикалық мінез-құлқымен тығыз байланысты екенін ескеріңіз. Жоғарыдағы теңдеуде табылған әрбір айырмашылық шамамен тең ықтимал және байланысты аймақтарға квантталады. JPEG LS үшін g1, g2 және g3 айырмашылықтары 9 аймаққа квантталады және аймақтар -4-тен 4-ке дейін индекстеледі. Кванттаудың мақсаты – жоғары реттік тәуелділіктерді анықтауға мүмкіндік беретін ағымдағы үлгілік мән мен оның контексі арасындағы өзара ақпаратты барынша арттыру. Контекстерді оң және теріс белгілері біріктірілгеннен кейін, контекстердің жалпы саны контекстер болып табылады деген болжамға негізделген. Көлденеңді бағалауды әрбір контексттегі жиынтық болжау қателерін контекст кездесу санына бөлу арқылы алуға болады. LOCO I алгоритмінде бұл процедура өзгертіліп, жақсартылды, соның салдарынан қосу және алу операцияларының саны азайтылды. Бөлу операциясынсыз көлденеңді есептеу процедурасы болжауды жетілдіруде көрсетілген, содан кейін осы бағалауларды кері байланыс механизмінде қолдану арқылы әртүрлі контекстерде болжау қателіктерін жоюға болады.
The local gradient reflects the level of activities such as smoothness and edginess of the neighboring samples. Notice that these differences are closely related to the statistical behavior of prediction errors. Each one of the differences found in the above equation is then quantized into roughly equiprobable and connected regions. For JPEG LS, the differences g1, g2, and g3 are quantized into 9 regions and the region are indexed from −4 to 4. The purpose of the quantization is to maximize the mutual information between the current sample value and its context such that the high order dependencies can be captured. One can obtain the contexts based on the assumption that
After merging contexts of both positive and negative signs, the total number of contexts is contexts. A bias estimation could be obtained by dividing cumulative prediction errors within each context by a count of context occurrences. In LOCO I algorithm, this procedure is modified and improved such that the number of subtractions and additions are reduced. The division free bias computation procedure is demonstrated in Prediction refinement can then be done by applying these estimates in a feedback mechanism which eliminates prediction biases in different contexts.
Кодтау түзетілген болжау қалдықтары
JPEG LS-тің қалыпты режимінде стандарт Golomb-Rice кодтарын қолданады, олар теріс емес тізбектердің ұзындығын кодтаудың бір жолы. Оның оптималды кодтау шамасы 2k болатын ерекше жағдайы, кодтау процедураларын жеңілдетуге мүмкіндік береді.
Біркелкі аймақтарда ұзындықты кодтау
Голомб-Райс кодтары төмен энтропиялы үлестірілімдерді кодтау үшін тиімсіз, себебі кодтау жылдамдығы символға кемінде бір битті құрайды. Суреттегі тегіс аймақтарды символға бір биттен кем кодтауға болатындықтан, маңызды артық код пайда болуы мүмкін. Энтропиядан артық код ұзындығын болдырмау үшін, жеке символдарды кодтаудың орнына символдар блогын кодтайтын әліпби кеңейтуін қолдануға болады. Бұл артық код ұзындығын көптеген символдарға бөліп таратады. Бұл JPEG LS форматының "жүгіру" режимі болып табылады және ол нөлдік градиенттері бар тегіс немесе жазық контекст аймағы анықталғаннан кейін іске қосылады. "a" батыс символы күтіледі, ал жүгіру жаңа символ пайда болғанда немесе жолдың соңына жеткенде аяқталады. Жүгірудің жалпы ұзындығы кодталады, содан кейін кодтаушы "қалыпты" режимге оралады.
JPEG 2000
JPEG 2000 арнайы бүтін сан толқын сүзгісіне (биортогональды 3/5) негізделген жоғалтусыз режимді қамтиды. JPEG 2000-нің жоғалтусыз режимі жасанды және құрама суреттерде JPEG LS-тен баяу жұмыс істейді және көбінесе нашар қысу қатынастарын көрсетеді, бірақ цифрлық камерада түсірілген суреттерде JPEG LS-тің UBC нұсқасынан жақсы нәтижелер береді. JPEG 2000 сонымен қатар масштабталатын, прогрессивті және кеңінен қолданылатын мүмкіндіктерге ие.
JPEG XT
JPEG XT JPEG 2000-нан алынған толқындық сығылу негізіндегі, жоғалтусыз бүтін санды бүтін санға түрлендіретін DCT режимін қамтиды.
JPEG XL
JPEG XL жоғалтусыз/шамалы жоғалтулы/жауапты режимді қамтиды, ол "модульді" деп аталады және қалау бойынша өзгертілген Haar трансформациясын ("сығу" деп аталады) пайдаланады. Бұл режим VarDCT режиміндегі DC (1:8 масштабтағы) кескінді кодтау үшін, сондай-ақ адаптивті кванттау өрістері немесе альфа сияқты қосымша арналар сияқты әртүрлі қосымша кескіндерді кодтау үшін де қолданылады.