- Сообщения
- 4 860
- Реакции
- 2 882
Вот ведь задачка, кривые профиля в теге VCGT, которые грузятся в видеокарту, парсятся в непонятном формате, выглядят так примерно:
Точно известно, что эти данные можно представить в виде вот такого графика:
В представленном примере в тенях около нуля программа выдала небольшую лишнюю закорючку на кривой зеленого канала, в результате глубокий черный может выглядеть на мониторе красноватым. Закорючку в тенях по зеленому каналу просто нужно убрать в приведенном примере (это новенький iMac), но basICColor на скрине делает это на редкость топорно. Очевидно, надо поправить в зеленом канале диапазон кривой от 0 до 10%, а басик позволяет лишь двинуть диапазон от 0 до 25%. Отсюда возникает необходимость нормально отредактировать эти кривые vcgt самостоятельно. И тут мы упираемся в непонятный шифр или кодировку.
Если сообща раскодируем и закодируем - я напишу простенькую бесплатную утилитку нормального редактирования этих кривых, главное понять алгоритм, как развернуть эти данные в табличный вид, и как обратно запаковать в этот частный вид. Программы-профилировщики же читают этот тег, операционные системы читают и даже подгружают это в видеокарту, значит как-то представить в табличном виде можно, но гугл мне не дал подсказок как именно.
Код:
<PrivateType>
<TagSignature>vcgt</TagSignature>
<UnknownData>
000000000000000000030100000200000225044b066a08a20ac40ccc0ebe10ab
124a13a114d815e91723184b19671a791b851c8a1d8c1e891f82207621682256
2341242a251125f626da27bd289e297f2a5e2b3b2c1a2cf92dda2ebc2f9f3083
3168325033393423350f35fd36ec37dc38ce39c03aac3b9b3c8b3d7b3e6b3f5b
404b413a42294318440744f645e546d447c448b349a24a924b824c734d644e55
4f48503a512d52215315540a54ff55f556ec57e458db59d35aca5bbc5ca95d99
5e8d5f84607a616f62646357644a653c662d671e680e68fe69ed6adb6bca6cb8
6da66e946f82706f715d724b733974277516760576f477e478d479c47ab57ba6
7c977d897e7b7f6e806081528244833584258515860486f287e088ce89bc8aa9
8b968c838d718e5e8f4b903991279216930593f594e595d696c797ba98ad99a1
9a969b8c9c849d7c9e769f70a06da16aa269a369a46aa56ca66ea771a874a977
aa7aab7eac83ad89ae90af98b0a1b1aab2b4b3bfb4cab5d4b6dfb7e9b8f3b9fc
bb05bc0dbd15be1cbf22c027c12bc22ec330c431c530c62ec72bc826c91eca15
cb0bcbfeccf0cde0cececfbbd0a6d190d279d362d44ad531d619d700d7e7d8d0
d9b9daa4db90dc7ddd6bde5bdf4ce040e135e22ce322e418e510e607e6ffe7f8
e8f2e9eceae7ebe3ece1ede0eee2efe6f0edf1f5f2fff40bf519f628f73af84d
f962fa79fb91fcabfdc6fee2ffff0cda0e1f0f7510d2127b13d51500160916f0
17c21885193e19f01aae1b6b1c281ce91dad1e771f46201620e321af22792343
240c24d4259d2665272e27f728c0298a2a532b1c2be72cb52d842e552f282ffe
30d531af328b336a344b352d361236f837e138cd39b43a953b753c563d363e17
3ef63fd640b6419442734351442f450d45ec46ca47a8488649644a434b214c00
4cdf4dbf4e9f4f7f506051425223530653e954ce55b4569c5790588f59955a95
5b895c745d5a5e405f24600860ea61cc62ac638d646d654d662d670d67ed68cc
69ab6a8b6b6a6c4a6d2a6e0a6eeb6fcc70ae7190727273557439751d760376e9
77cf78b6799e7a877b707c5b7d467e317f1d800980f681e282ce83b984a3858c
8675875e8846892e8a158afc8be38cca8db18e988f7f9065914c9234931b9402
94ea95d396bb97a5988f99799a659b519c3f9d2e9e1e9f12a009a103a201a302
a406a50ba60fa714a817a919aa19ab19ac16ad13ae0faf0cb009b105b201b2fe
b3f9b4f5b5f0b6ebb7e6b8e0b9d9bad2bbcabcc1bdb8beadbfa2c095c187c277
c366c453c53fc629c712c7f9c8dec9c1caa2cb82cc61cd3fce1ccef9cfd5d0b0
d18cd268d345d423d502d5e3d6c5d7a9d88ed975da5fdb4bdc3add2bde1fdf15
e00ce106e202e2fee3fbe4f9e5f7e6f6e7f4e8f2e9f0eaeeebececeaede8eee6
efe4f0e1f1def2dbf3d7f4d3f5cf0000020103fc05f007e309de0bd00daf0f7d
1127128013ac14a515c916d917db18d119bf1aa81b8d1c6e1d4c1e281f021fda
20b021852259232b23fd24ce259e266f273f280e28de29ae2a7e2b4f2c212cf4
2dc92e9e2f75304d3126320132dc33b9349735753650372f380f38ed39cb3aa8
3b843c603d3b3e163ef03fca40a3417b4253432b440344db45b3468b4764483c
491549ee4ac84ba24c7d4d594e364f134ff150d051af528e53695440551355ec
56ca57ad589059745a595b3e5c245d095dee5ed15fb460956176625563346412
64ef65cc66a86784685e69396a136aec6bc66ca06d796e526f2b700570de71b7
7290736a7443751d75f776d177ab788679617a3d7b197bf67cd47db27e917f70
80508131821182f183d184b185918670874f882e890d89ed8acc8bab8c8a8d69
8e498f29900990ea91cb92ad939094739557963c9721980798ed99d39ab99ba0
9c879d6f9e589f42a02ea11ca20ba2fba3eda4dea5cfa6c0a7b1a8a1a991aa80
ab6eac5cad49ae35af20b00bb0f5b1deb2c6b3aeb494b57ab65fb743b827b90b
b9efbad3bbb6bc99bd7cbe5fbf43c027c10cc1f0c2d5c3bac49fc584c669c74e
c832c915c9f7cad8cbb9cc98cd78ce56cf33d011d0f0d1d0d2b0d392d475d559
d63ed726d80ed8f9d9e4dad0dbbddcabdd99de89df79e06ae15ce24ee340e432
e523e614e704e7f4e8e2e9d0eabc000000000000000000000000000000000000
0000000000000000000000
</UnknownData>
</PrivateType>
В представленном примере в тенях около нуля программа выдала небольшую лишнюю закорючку на кривой зеленого канала, в результате глубокий черный может выглядеть на мониторе красноватым. Закорючку в тенях по зеленому каналу просто нужно убрать в приведенном примере (это новенький iMac), но basICColor на скрине делает это на редкость топорно. Очевидно, надо поправить в зеленом канале диапазон кривой от 0 до 10%, а басик позволяет лишь двинуть диапазон от 0 до 25%. Отсюда возникает необходимость нормально отредактировать эти кривые vcgt самостоятельно. И тут мы упираемся в непонятный шифр или кодировку.
Если сообща раскодируем и закодируем - я напишу простенькую бесплатную утилитку нормального редактирования этих кривых, главное понять алгоритм, как развернуть эти данные в табличный вид, и как обратно запаковать в этот частный вид. Программы-профилировщики же читают этот тег, операционные системы читают и даже подгружают это в видеокарту, значит как-то представить в табличном виде можно, но гугл мне не дал подсказок как именно.