目录

  • 一、简介
  • 二、结构
    • 1. TGA文件头
    • 2. 图像/颜色表数据
    • 3. 开发者区域,扩展区域,文件尾
  • 三、压缩算法
  • 三、总结

一、简介

TGA是由美国Truevision公司为其显示卡开发的一种图像文件格式,已被国际上的图形、图像工业所接受。现已成为数字化图像,以及运用光线跟踪算法所产生的高质量图像的常用格式。TGA文件的扩展名为.tga,该格式支持压缩,使用不失真的压缩算法,可以带通道图,另外还支持行程编码压缩。
——来自360百科

问题

  1. .tga结构是怎样的?
  2. 如何压缩,算法是什么?
  3. 光线追踪算法

二、结构


TGA文件包含5个区域:
(1)TGA文件头(TGA File Header);(2)图像/颜色表数据(Image/Color Map Data);
(3)开发者区域(Developer Area);
(4)拓展区域(Extension Area);
(5)TGA文件注脚(TGA File Footer)。

这里,利用格式工厂将已有的jpg文件转换为tga文件,对应分析其结构。

可以粗略观察,FF AA B1 08 FF AA B1 08 88 AA B1 08应为图像中背景的颜色(255 255 136)RGB颜色数据,存放顺序为:BBB GGG RRR,利用Procreate观察颜色,基本接近背景色,因此可以简单推断,第二行中的FF之前的十六进制数为我们需要分析的结构内容,简化后续步骤。

1. TGA文件头

2. 图像/颜色表数据



尝试把后面有线条颜色变化的区域复制粘贴到重复区域,利用格式工厂转换为jpg,对比观察图像有无变化


可以观察到画面上部分出现条纹,下部分出现多余的像素行

3. 开发者区域,扩展区域,文件尾

FF AA B1 08 FF AA B1 08 88 AA B1 08 00 00 00 00 00 00 00 00 54 52 55 45 56 49 53 49 4F 4E 2D 58 46 49 4C 45 2E 00,这些是除开颜色数据之外的十六进制数,因为剩下对应区域的字节长度不定,所以简单写一下它们的介绍:

(1) 开发者自定义区域(Developer Area):包含开发者定义字段列表和开发者字典(用于存储开发者定义字段的值),该区域为开发者扩展该文件格式提供接口,以便存储额外的信息。
(2) 扩展区域(Extension Area):由扩展区域大小、作者姓名、作者注释、日期/时间、工作名称/ID、工作累计耗时、编辑软件的名称、编辑软件的版本、关键颜色、像素宽高比、灰度值、颜色校正表偏移量、缩略图偏移量、扫描线表偏移量、alpha通道类型、扫描线表、缩略图图像数据和颜色校正表组成,为Truevision公司定义的标准扩展功能,以提供更多的图像附加信息。
(3) 文件尾(TGA File Footer):由扩展区域偏移量、开发者目录偏移量和TGA文件扩展格式签名三部分组成,用于验证TGA文件扩展格式,并可以确定扩展区域和开发者字典的位置。

三、压缩算法

tga文件采用形成压缩算法RLE(Run Length Encoding)它是最早出现、也是最简单的无损数据压缩算法。RLE算法的基本思路是把数据按照线性序列分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于第一种情况,对连续的重复数据块进行压缩,压缩方法就是用一个表示块数的属性加上一个数据块代表原来连续的若干块数据。对于第二种情况,RLE算法有两种处理方法,一种处理方法是用和第一种情况一样的方法处理连续的不重复数据块,仅仅是表示块数的属性总是1;另一种处理方法是不对数据进行任何处理,直接将原始数据作为压缩后的数据。
例如(每个字母代表一个数据块):
原始数据块:ABBBB
压缩后数据为:1A4B
原始数据块:ABCDE
压缩后数据块:
按第一种方法处理为1A1B1C1D1E
按第二种方法处理,则数据不变 ABCDE
数据块的长度可以是任意长度,数据块长度越长则连续重复的概率就越低,压缩的优势就体现不出来,因此,大多数RLE算法的实现都使用一个字节作为数据块长度。

参考博客链接

因为三个bmp转tga和一个jpg转tga都为RLE压缩的真彩图像,所以也没办法分析其他类型~

三、总结

对于压缩算法的理解,还存在很多问题,希望能通过以后的学习不断完善。

数据压缩4 | TGA文件格式分析相关推荐

  1. 【数据压缩】TGA文件格式分析

    一.TGA文件格式简介 TGA(Truevision Graphics Adapter)文件格式,通常又称为Targa(Truevision Advanced Raster Graphics Adap ...

  2. 【数据压缩】MP4文件格式分析

    预设问题:什么是MP4,MP4的封装格式是什么?该容器包含哪些元数据信息?包含哪些节目信息?如何从该容器中提取音频.视频.字幕数据,并交给解码器 解码,有时间戳否?通过什么方式保证同步? MP4指的是 ...

  3. .tga图片的文件格式分析

    一.TGA文件介绍 TGA文件包含5个区域: (1)TGA文件头(TGA File Header): (2)图像/颜色表数据(Image/Color Map Data): (3)开发者区域(Devel ...

  4. 【数据压缩2】PNG文件格式分析

    目录 PNG文件格式概述 文件结构 PNG数据块结构 实例分析 关键数据块分析 (1)IHDR数据块 (2)PLTE调色板数据块 (3)IDAT图像数据块 (4)IEND图像结束数据 辅助数据块分析 ...

  5. 【数据压缩】WAV文件和AVI文件格式分析

    一.WAV文件和AVI文件格式简介 WAV的英文全称是Waveform Audio File Format ,它采用 RIFF (Resource Interchange File Format)文件 ...

  6. TGA图像文件格式分析

    什么是TGA? TGA(Targa)格式是计算机上应用最广泛的图象格式.在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势 .并且还有自身的特点: 通道效果.方向性 .在CG领域常作为影视动画的 ...

  7. [数据压缩]WAV文件格式分析及AVI数据结构分析

    目录 WAV文件格式分析 WAV概述 WAV文件格式分析 根据实例的WAV文件结构分析 AVI数据结构 音频与视频的数据放置方式 视频帧与音频帧的字节数 参考引用 WAV文件格式分析 WAV概述 Wa ...

  8. 【数据压缩3】AVI文件格式分析及问题回答+WAV文件格式分析

    目录 AVI文件问题回答 1.AVI文件音频和视频的数据是如何放置的,交织放置还是连续放置? 2.AVI文件一个视频帧大约占据多少字节?一个音频数据块大约占用多少字节? WAV文件格式分析 文件概述 ...

  9. zt BMP 文件格式分析

    看到这文章不错,于是帖了上来.呵呵 BMP文件格式分析(zz) 前两天要做一个读取bmp文件的小程序,顺便查找了一些关于BMP格式的文章,现在post上来. 简介 BMP(Bitmap-File)图形 ...

最新文章

  1. 统计计量 | 实证研究中常犯的18个统计学错误, 避坑防雷指南!
  2. 芯讯通1月28号晚上八点直播-C-V2X产业链生态思考,关注易贸智慧互联公众号免费收听...
  3. PyTorch基础(二)-----自动求导Autograd
  4. JSON.stringify() 格式化 输出log
  5. 单词搜索Python解法
  6. 全栈测试:平衡单元测试和端到端测试
  7. 用python 画炫酷的图并讲解-超炫酷动态排序图、视频,我都帮你用Python实现了...
  8. 计算机组成原理学习四笔记一
  9. saltstack计划任务工具和其他命令
  10. linux、unix中的批量文件重命名
  11. 微信H5支付浏览器支付
  12. stm32定时器4重映射
  13. 专业办公套件WPS Office 2020 for Mac
  14. 通俗易懂看RB-tree(二)
  15. 图书借阅管理系统的设计与实现/书籍借还管理系统
  16. 《脉脉:人才流动与迁徙2022》,遭”哄抢”的复合型程序员成IT黑马
  17. NOI2020 瞎逛游记
  18. python 判断输入的字符,是字母,数字,还是其他字符
  19. 湖南大学基于SMTP和POP3的邮件系统——计算机网络课设
  20. ensp配置ACL访问控制列表

热门文章

  1. 山区地貌图 在某山区(平面区域(0,2800)´(0,2400)内,单位:米)测得一些地点的高程(单位:米)如表1,试作出该山区的地貌图.
  2. siki Unity - A计划 视频
  3. 计算机专业毕业论文4000字免费,计算机专业毕业生毕业论文攻略
  4. js下拉列表添加监听事件(支持所有主流浏览器)
  5. matlab输出波形自动找到波峰波谷,Matlab中利用findpeaks找波峰和波谷
  6. Linux 网络驱动 phy 读写寄存器调试方法
  7. Python发送微信消息(文字、图片、文件)给指定好友和微信群,零基础可看懂(附源码和教程)
  8. 依据象限搜索及混合预计耗费的A*改进算法,包含8邻域及24邻域的改进
  9. 大数据学习笔记之2~大数据特征
  10. WIN10下 docker报错Error response from daemon: invalid mode