угадать схему сжатия без потерь и с потерями для кодирования данных изображения (RGGB или YCrCb или YCgCo) - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь угадать, какая схема сжатия кодирует 14-битное изображение, основываясь на выборках данных наблюдений. Один и тот же алгоритм (с другими параметрами), вероятно, используется для сжатия с потерями и без потерь.

Ниже приведен пример данных заголовка для версии изображения без потерь 1624x1080. Наблюдения: каждый ff01 содержит 4 части ff02. С без потерь каждая часть ff02 имеет одну часть ff03. Первые 32 байта сжатых данных сразу после каждого заголовка ff03 отображаются b '...' ниже:

ff01 0013af80 0
  ff02 0004e390 0 8 000000
    ff03 0004e390 0 020 0003
      b'0000000000203ac9468260a5227468805f222b9394520c955401bb7b119bd223' 
  ff02 0004ee40 1 8 000000
    ff03 0004ee40 0 020 0007
      b'000000000020394f44420d500a990c6d4124091826b2a102225205b0dd3448da' 
  ff02 0004ee50 2 8 000000
    ff03 0004ee50 0 020 0007
      b'00000000002039474c4c62120251158e691d184643522002ba2625002a8a00d4' 
  ff02 0004ef60 3 8 000000
    ff03 0004ef60 0 020 0007
      b'00000000002038d30347c8722c369121109530a2dc85440004852e04acc1a200' 

for lossy compression, each ff02 parts has 10 ff03 :

ff01 00084fe0 0
  ff02 00020328 0 8 000000
    ff03 00001918 0 020 0006
      b'0000000000203ac318425ef6a542510989082c844a24481516268485b225d0a8' 
    ff03 00001538 0 020 0003
      b'00ef1e8849731d5028b2248b391413212c401b04595d7d65018054ad899137a8' 
    ff03 000016b0 0 020 0006
      b'67ac484c922e025e55034962865cc8168e0b2636db2efa9341cb403a227bea08' 
    ff03 00001610 0 020 0007
      b'01fde185a0795dd7b0d0906d0400e2a1272113c64072af1a0423259919531043' 
    ff03 00003308 0 080 0005
      b'575d1afb5a4fdb3999ac9249a7a724dcdbe6c7ac550a8849158fa42a0a8f3f05' 
    ff03 000037f8 0 080 0000
      b'f65dfb9eddf5ebc65fda716792792f13236f93ab9d0da2a66fe4e37673ecc360' 
    ff03 00002a10 0 0b0 0004
      b'fdc31c95bc733fbcea678e9bdaf96ce7cf19361939cffb935c924eceb35c9cd9' 
    ff03 00006878 0 0d0 0004
      b'faff6f8ff667774f2f87aaf3efb70f0f971dfb93fa4e1ff1e5ddefc3d5aaf4e7' 
    ff03 00007688 0 0d0 0006
      b'ffd370f971feb3d5fb7cf9bd5cbabc5e2f470f7f272ede5efe3cb4de5d3d387c' 
    ff03 00003408 1 100 0004
      b'fffffe50e39d0b80fce7d0be73aa736749784ffef5cdb85765fe99f00e45c238' 
  ff02 00021928 1 8 000000
    ff03 00001af0 0 020 0006
      b'000000000020394b00104132249729a435ef6b9ef72443204463319422958ac5' 
    ff03 00001678 0 020 0005
      b'0a6883f1002cd95ea0b644ff25597844d9312c0bcf70c05d7feb07285981cbda' 
    ff03 00001820 0 020 0006
      b'00f93726075a4b4284883e90b12e9a22143f4408b91614214dea400001639382' 
    ff03 00001740 0 020 0003
      b'002de326c64264414fb83118876cb201de47caa376ed291305ee4e1548d8ea64' 
    ff03 00003690 0 080 0006
      b'95e725faa7c12e1993d7e39f3939e35f32d796553992e4cbe96c936536ef3abf' 
    ff03 00003ca8 0 080 0001
      b'33b997a9dff5d57a73a59c7fa4a6d6f32c4d37114ba4fc6755d6f19c0ce76a4e' 
    ff03 00002d20 0 0b0 0007
      b'edb3f1bcb3cb93ee79af1b7c4fbc4deb9e279fae7dd9f59c717533dd79c61834' 
    ff03 000066f0 0 0d0 0007
      b'fffc9ff0d38df31e139d78de0707f0e4e2b85d0b4cb877543a5594dc93a73e6f' 
    ff03 00008188 0 0d0 0006
      b'fff1fd3f43cbe77673be0eddbbbbe9febf97d5e47074e3272e539e926950a293' 
    ff03 00002f90 1 100 0001
      b'fffff11fba78cff627067f8f7fe3f75d7ed9e08e4eff06200c825f8d7abf017f' 
  ff02 00021878 2 8 000000
    ff03 00001ae0 0 020 0003
      b'00000000002039450031e3050925ef6bdc42c52086731d22773282408eec6675' 
    ff03 000016a0 0 020 0001
      b'0303a6926222416e0a16ef0f448cc9280244a838795211adef21410902410f44' 
    ff03 000017f8 0 020 0007
      b'0f0847a34b510ea230507509694082b2500e44dc89620fd02f4a9000001676a0'
    ff03 00001758 0 020 0007
      b'2184092c1524802557c35145ec92e1ad7c278157ec7821524c2068288864c81b' 
    ff03 00003770 0 080 0000
      b'76be79adf829cbc5249e46c6ee554cd61ae93395366d52b855f1727fa8603648' 
    ff03 00003ba8 0 080 0005
      b'cf3ef79fd9f9c5c96f32f19cfce3ccaf5f9e671ecbc56cca052673f3dc438548' 
    ff03 00002cd8 0 0b0 0005
      b'3ff85e2bdf1f0db3caf869d752ef971cb357bf5cf12d278f8f8df33bc5c08b29' 
    ff03 000072b0 0 0d0 0007
      b'93fff0cffa3cbe37667d4de2e7fc77073789e273e7cdecdd72f454f387a2d39c' 
    ff03 000075f0 0 0d0 0002
      b'ffff27f71753e8389ecf87d4e773f4868b924e1d0a53964ace3664c22d2ac14b' 
    ff03 00002f18 1 100 0007
      b'fffffea1cc7fa7711cff0c38d383b85ff38712771fea4fe3a70fb9c705c27e56' 
  ff02 00021b18 3 8 000000
    ff03 00001a28 0 020 0004
      b'00000000002038d300018e0c284d871320c61443d8531a5a920944208ce410a8' 
    ff03 00001628 0 020 0003
      b'101a7072049100699b0bf6f07111d1319234c4d1027a301a7b55040e947a7f13' 
    ff03 000017b0 0 020 0000
      b'401a1c148c285383109a5a6a23f96255445880f6729d64256555a40de8070337' 
    ff03 00001710 0 020 0004
      b'091016173981b2c822ac2d19824e284551db0c67f976cecc266924c287c3faae' 
    ff03 00003770 0 080 0006
      b'db26f3691fb0d252f46721e37cf45f07a49f0c4eb24e7037a8f43323a7524909' 
    ff03 00003c60 0 080 0001
      b'65bf936d8f21d725d395d6ab2b6948f2afe569c62308e9a734062c518b18d165' 
    ff03 00002d60 0 0b0 0001
      b'dd5a5368dd995fae79362f4d62d6490a9b7ec9ce79269cee993d242b8bacda78' 
    ff03 00006f70 0 0d0 0004
      b'ff37eddbd7b79efe3f79f0de5f9a9c39f8a759ce1be6e4f05b5dbcf299b2693e' 
    ff03 00007e50 0 0d0 0002
      b'f3ff8e9f0f4efe1edf833f1757074d9dbf17bbacf9f83e2bc386f87a73f17b67' 
    ff03 00002d18 1 100 0005
      b'fffff8d7e1efcddf2a704736fe73fe02725734e45f117f09738783386ce67baf' 

Может ли это быть вейвлет (из 10 частей "ff03" для потерь вместо 1 для потерь) с кодированием Райса (без таблиц типа Хаффмана)?

С уважением

Лоран (lclevy@free.fr)

...