QOI เจšเจฟเฉฑเจคเจฐ เจธเฉฐเจ•เฉเจšเจจ เจซเจพเจฐเจฎเฉˆเจŸ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจ—เจฟเจ†

เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจนเจฒเจ•เจพ, เจจเฉเจ•เจธเจพเจจ เจฐเจนเจฟเจค เจšเจฟเฉฑเจคเจฐ เจธเฉฐเจ•เฉเจšเจจ เจซเจพเจฐเจฎเฉˆเจŸ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ - QOI (เจ•เจพเจซเจผเฉ€ เจ“เจ•เฉ‡ เจšเจฟเฉฑเจคเจฐ), เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ RGB เจ…เจคเฉ‡ RGBA เจ•เจฒเจฐ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจธเฉฐเจ•เฉเจšเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค PNG เจซเจพเจฐเจฎเฉˆเจŸ เจจเจพเจฒ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, C เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš QOI เจซเจพเจฐเจฎเฉˆเจŸ เจฆเจพ เจธเจฟเฉฐเจ—เจฒ-เจฅเฉเจฐเฉˆเฉฑเจกเจก เจธเฉฐเจฆเจฐเจญ เจธเจฅเจพเจชเจจ, เจœเฉ‹ เจ•เจฟ SIMD เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจ…เจคเฉ‡ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ, libpng เจ…เจคเฉ‡ stb_image เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเจพเจฒเฉ‹เจ‚ เจ‡เฉฐเจ•เฉ‹เจกเจฟเฉฐเจ— เจธเจชเฉ€เจก เจตเจฟเฉฑเจš 20-50 เจ—เฉเจฃเจพ เจคเฉ‡เจœเจผ เจนเฉˆ, เจ…เจคเฉ‡ 3. - เจกเฉ€เจ•เฉ‹เจกเจฟเฉฐเจ— เจธเจชเฉ€เจก เจตเจฟเฉฑเจš 4 เจ—เฉเจฃเจพ เจคเฉ‡เจœเจผเฅค เจ•เฉฐเจชเจฐเฉˆเจธเจผเจจ เจ•เฉเจธเจผเจฒเจคเจพ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, QOI เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจŸเฉˆเจธเจŸเจพเจ‚ เจตเจฟเฉฑเจš libpng เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ เจนเฉˆ (เจ•เฉเจ เจŸเฉˆเจธเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เจน เจฅเฉ‹เฉœเฉเจนเจพ เจ…เฉฑเจ—เฉ‡ เจนเฉˆ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจ‡เจน เจ˜เจŸเฉ€เจ† เจนเฉˆ), เจชเจฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน stb_image (20% เจคเฉฑเจ• เจฆเจพ เจฒเจพเจญ) เจคเฉ‹เจ‚ เจ•เจพเจซเจผเฉ€ เจ…เฉฑเจ—เฉ‡ เจนเฉˆเฅค

C เจตเจฟเฉฑเจš QOI เจฆเจพ เจนเจตเจพเจฒเจพ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจ•เฉ‹เจก เจฆเฉ€เจ†เจ‚ เจธเจฟเจฐเจซ 300 เจฒเจพเจˆเจจเจพเจ‚ เจนเฉˆเฅค เจธเจฐเฉ‹เจค เจ•เฉ‹เจก MIT เจฒเจพเจ‡เจธเฉฐเจธ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆ. เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‰เจคเจธเจผเจพเจนเฉ€เจ†เจ‚ เจจเฉ‡ Go, Zig เจ…เจคเฉ‡ Rust เจญเจพเจธเจผเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจเจจเจ•เฉ‹เจกเจฐเจพเจ‚ เจ…เจคเฉ‡ เจกเฉ€เจ•เฉ‹เจกเจฐเจพเจ‚ เจฆเฉ‡ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจกเฉ‹เจฎเจฟเจจเจฟเจ• เจธเจœเจผเฉ‡เจฌเจฒเจตเจธเจ•เฉ€ เจฆเฉเจ†เจฐเจพ เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ, เจ‡เฉฑเจ• เจ—เฉ‡เจฎ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจœเจฟเจธเจฆเจพ MPEG1 เจตเฉ€เจกเฉ€เจ“ เจกเฉ€เจ•เฉ‹เจกเจฟเฉฐเจ— เจฒเจˆ เจ‡เฉฑเจ• เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจคเจœเจฐเจฌเจพ เจนเฉˆเฅค QOI เจซเจพเจฐเจฎเฉˆเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจฒเฉ‡เจ–เจ• เจ‡เจน เจฆเจฟเจ–เจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€ เจ•เจฟ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจ†เจงเฉเจจเจฟเจ• เจšเจฟเฉฑเจคเจฐ เจเจจเจ•เฉ‹เจกเจฟเฉฐเจ— เจซเจพเจฐเจฎเฉˆเจŸเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจ…เจคเฉ‡ เจธเจงเจพเจฐเจจ เจตเจฟเจ•เจฒเจช เจฌเจฃเจพเจ‰เจฃเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค

QOI เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ‡เฉฐเจ•เฉ‹เจก เจ•เฉ€เจคเฉ‡ เจšเจฟเฉฑเจคเจฐ (O(n)) เจฆเฉ‡ เจฐเฉˆเจœเจผเฉ‹เจฒเฉ‚เจธเจผเจจ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจคเฉ€ เจคเฉ‹เจ‚ เจธเฉเจคเฉฐเจคเจฐ เจนเฉˆเฅค เจเจจเจ•เฉ‹เจกเจฟเฉฐเจ— เจ…เจคเฉ‡ เจกเฉ€เจ•เฉ‹เจกเจฟเฉฐเจ— เจ‡เฉฑเจ• เจชเจพเจธ เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ - เจนเจฐเฉ‡เจ• เจชเจฟเจ•เจธเจฒ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจตเจพเจฐ เจธเฉฐเจธเจพเจงเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจชเจฟเจ•เจธเจฒ เจฆเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจšเฉเจฃเฉ‡ เจ—เจ 4 เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจตเจฟเฉฑเจš เจเจจเจ•เฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ…เจ—เจฒเจพ เจชเจฟเจ•เจธเจฒ เจชเจฟเจ›เจฒเฉ‡ เจ‡เฉฑเจ• เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฆเฉเจนเจฐเจพเจ“ เจ•เจพเจŠเจ‚เจŸเจฐ เจธเจฟเจฐเจซเจผ เจตเจงเจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจชเจฟเจ•เจธเจฒ 64 เจชเจฟเจ›เจฒเฉ‡ เจชเจฟเจ•เจธเจฒ เจฌเจซเจฐ เจตเจฟเฉฑเจš เจฎเฉเฉฑเจฒเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจชเจฟเจ›เจฒเฉ‡ เจชเจฟเจ•เจธเจฒ เจตเจฟเฉฑเจš 6-เจฌเจฟเฉฑเจŸ เจ”เจซเจธเฉˆเฉฑเจŸ เจจเจพเจฒ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจชเจฟเจ›เจฒเฉ‡ เจชเจฟเจ•เจธเจฒ เจฆเจพ เจฐเฉฐเจ— เจฅเฉ‹เฉœเฉเจนเจพ เจตเฉฑเจ–เจฐเจพ เจนเฉˆ, เจคเจพเจ‚ เจ…เฉฐเจคเจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (2,4, 5 เจ…เจคเฉ‡ XNUMX เจฌเจฟเฉฑเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจซเจฟเฉฑเจŸ เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจฐเฉฐเจ—เจพเจ‚ เจฆเฉ‡ เจญเจพเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจ…เฉฐเจคเจฐเจพเจ‚ เจฆเฉ€ เจ›เฉ‹เจŸเฉ€ เจเจจเจ•เฉ‹เจกเจฟเฉฐเจ—)เฅค เจœเฉ‡เจ•เจฐ เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจฒเจพเจ—เฉ‚ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจชเฉ‚เจฐเจพ rgba เจฎเฉเฉฑเจฒ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹