QOI ಇಮೇಜ್ ಕಂಪ್ರೆಷನ್ ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆ

ಹೊಸ ಹಗುರವಾದ, ನಷ್ಟವಿಲ್ಲದ ಇಮೇಜ್ ಕಂಪ್ರೆಷನ್ ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆ - QOI (ಕ್ವಿಟ್ ಓಕೆ ಇಮೇಜ್), ಇದು RGB ಮತ್ತು RGBA ಬಣ್ಣದ ಸ್ಥಳಗಳಲ್ಲಿ ಚಿತ್ರಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಕುಗ್ಗಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. PNG ಸ್ವರೂಪದೊಂದಿಗೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೋಲಿಸಿದಾಗ, SIMD ಸೂಚನೆಗಳು ಮತ್ತು ಅಸೆಂಬ್ಲಿ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳನ್ನು ಬಳಸದ C ಭಾಷೆಯಲ್ಲಿ QOI ಫಾರ್ಮ್ಯಾಟ್‌ನ ಏಕ-ಥ್ರೆಡ್ ರೆಫರೆನ್ಸ್ ಅನುಷ್ಠಾನವು libpng ಮತ್ತು stb_image ಲೈಬ್ರರಿಗಳಿಗಿಂತ ಎನ್‌ಕೋಡಿಂಗ್ ವೇಗದಲ್ಲಿ 20-50 ಪಟ್ಟು ವೇಗವಾಗಿರುತ್ತದೆ ಮತ್ತು 3 ಡಿಕೋಡಿಂಗ್ ವೇಗದಲ್ಲಿ -4 ಪಟ್ಟು ವೇಗವಾಗಿದೆ. ಸಂಕೋಚನ ದಕ್ಷತೆಯ ವಿಷಯದಲ್ಲಿ, ಹೆಚ್ಚಿನ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ QOI libpng ಗೆ ಹತ್ತಿರದಲ್ಲಿದೆ (ಕೆಲವು ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ಇದು ಸ್ವಲ್ಪ ಮುಂದಿದೆ, ಮತ್ತು ಇತರರಲ್ಲಿ ಇದು ಕೆಳಮಟ್ಟದ್ದಾಗಿದೆ), ಆದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಇದು stb_image ಗಿಂತ ಗಮನಾರ್ಹವಾಗಿ ಮುಂದಿದೆ (20% ವರೆಗೆ ಲಾಭ).

C ಯಲ್ಲಿ QOI ಯ ಉಲ್ಲೇಖದ ಅನುಷ್ಠಾನವು ಕೇವಲ 300 ಸಾಲುಗಳ ಕೋಡ್ ಆಗಿದೆ. ಮೂಲ ಕೋಡ್ ಅನ್ನು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಉತ್ಸಾಹಿಗಳು ಗೋ, ಜಿಗ್ ಮತ್ತು ರಸ್ಟ್ ಭಾಷೆಗಳಲ್ಲಿ ಎನ್‌ಕೋಡರ್‌ಗಳು ಮತ್ತು ಡಿಕೋಡರ್‌ಗಳ ಅನುಷ್ಠಾನಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಿದ್ದಾರೆ. MPEG1 ವೀಡಿಯೊವನ್ನು ಡಿಕೋಡಿಂಗ್ ಮಾಡಲು ಲೈಬ್ರರಿಯನ್ನು ರಚಿಸುವಲ್ಲಿ ಅನುಭವ ಹೊಂದಿರುವ ಗೇಮ್ ಡೆವಲಪರ್ ಡೊಮಿನಿಕ್ ಸ್ಜಬಲ್ವ್ಸ್ಕಿ ಅವರು ಯೋಜನೆಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದ್ದಾರೆ. QOI ಸ್ವರೂಪವನ್ನು ಬಳಸಿಕೊಂಡು, ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಆಧುನಿಕ ಇಮೇಜ್ ಎನ್‌ಕೋಡಿಂಗ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳಿಗೆ ಪರಿಣಾಮಕಾರಿ ಮತ್ತು ಸರಳವಾದ ಪರ್ಯಾಯವನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಿದೆ ಎಂದು ಲೇಖಕರು ತೋರಿಸಲು ಬಯಸಿದ್ದರು.

QOI ಕಾರ್ಯಕ್ಷಮತೆಯು ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಚಿತ್ರದ ರೆಸಲ್ಯೂಶನ್ ಮತ್ತು ಸ್ವಭಾವದಿಂದ ಸ್ವತಂತ್ರವಾಗಿದೆ (O(n)). ಎನ್ಕೋಡಿಂಗ್ ಮತ್ತು ಡಿಕೋಡಿಂಗ್ ಅನ್ನು ಒಂದು ಪಾಸ್ನಲ್ಲಿ ನಡೆಸಲಾಗುತ್ತದೆ - ಪ್ರತಿ ಪಿಕ್ಸೆಲ್ ಅನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ಸಂಸ್ಕರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹಿಂದಿನ ಪಿಕ್ಸೆಲ್ಗಳ ಮೌಲ್ಯಗಳನ್ನು ಅವಲಂಬಿಸಿ 4 ವಿಧಾನಗಳಲ್ಲಿ ಒಂದನ್ನು ಎನ್ಕೋಡ್ ಮಾಡಬಹುದು. ಮುಂದಿನ ಪಿಕ್ಸೆಲ್ ಹಿಂದಿನದಕ್ಕೆ ಹೊಂದಿಕೆಯಾದರೆ, ಪುನರಾವರ್ತನೆಯ ಕೌಂಟರ್ ಮಾತ್ರ ಹೆಚ್ಚಾಗುತ್ತದೆ. 64 ಹಿಂದಿನ ಪಿಕ್ಸೆಲ್ ಬಫರ್‌ನಲ್ಲಿನ ಮೌಲ್ಯಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಪಿಕ್ಸೆಲ್ ಹೊಂದಾಣಿಕೆಯಾದರೆ, ಮೌಲ್ಯವನ್ನು ಹಿಂದಿನ ಪಿಕ್ಸೆಲ್‌ಗೆ 6-ಬಿಟ್ ಆಫ್‌ಸೆಟ್‌ನಿಂದ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. ಹಿಂದಿನ ಪಿಕ್ಸೆಲ್‌ನ ಬಣ್ಣವು ಸ್ವಲ್ಪ ವಿಭಿನ್ನವಾಗಿದ್ದರೆ, ವ್ಯತ್ಯಾಸವನ್ನು ಸಣ್ಣ ರೂಪದಲ್ಲಿ ಸೂಚಿಸಲಾಗುತ್ತದೆ (2,4, 5 ಮತ್ತು XNUMX ಬಿಟ್‌ಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ಬಣ್ಣ ಘಟಕಗಳಲ್ಲಿನ ವ್ಯತ್ಯಾಸಗಳ ಸಣ್ಣ ಎನ್‌ಕೋಡಿಂಗ್). ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ವಯಿಸದಿದ್ದರೆ, ಪೂರ್ಣ rgba ಮೌಲ್ಯವನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ