根据 ITU-T P.910 计算空间信息/时间信息
项目描述
SITI:空间信息/时间信息
根据 ITU-T P.910 计算空间信息 (SI) 和时间信息 (TI) 的基于命令行的工具。
该命令以 JSON 格式或 CSV 格式将 SI 和 TI 信息输出到标准输出。
作者:维尔纳·罗比察
重要说明/重大更改:
- 1.4 版不包括用于全局统计计算的 0 TI 值
- 版本 1.3 修复了边界处理问题,现在返回的值应该更好地匹配 ITU-T Rec. 第 910 页。感谢 Cosmin Stejerean 提出这些问题。
- 版本 1.x 现在为 SI 和 TI 输出相同数量的值,为第一帧的 TI 插入一个空值。此外,输出格式已更改。
内容:
要求
- Python 3.7 或更高版本
- FFmpeg 库(运行
pyav
)
在 Ubuntu 下,获取 ffmpeg 库:
sudo apt install libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libswscale-dev libavresample-dev
在 macOS 下,建议通过Homebrew安装 ffmpeg :
brew install ffmpeg
安装
跑:
pip3 install --user siti
或者,克隆此存储库,然后:
pip3 install --user .
用法
简单地运行siti /path/to/file.mp4
。
详细用法:
siti [-h] [-of {json,csv}] [-q] [-n NUM_FRAMES] [--width WIDTH] [--height HEIGHT] input
positional arguments:
input input file
optional arguments:
-h, --help show this help message and exit
-of {json,csv}, --output-format {json,csv}
output format
-q, --quiet do not show progress bar
-n NUM_FRAMES, --num-frames NUM_FRAMES
number of frames to calculate
--width WIDTH frame width (for YUV files)
--height HEIGHT frame height (for YUV files)
-f, --full-range assume full range for YUV input
背景
ITU-T P.910 建议书(“多媒体应用的主观视频质量评估方法”)中给出了以下关于 SI / TI 的信息:
空间信息
空间感知信息 (SI) 基于 Sobel 滤波器。在时间 n (Fn) 的每个视频帧(亮度平面)首先使用 Sobel 滤波器 [Sobel(Fn)] 进行滤波。然后计算每个 Sobel 过滤帧中像素 (stdspace) 的标准偏差。对视频序列中的每一帧重复此操作,并产生场景空间信息的时间序列。选择时间序列中的最大值(maxtime)来表示场景的空间信息内容。这个过程可以用方程形式表示为:
时间信息
时间感知信息 (TI) 基于运动差异特征 Mn(i, j),它是空间中相同位置但在连续时间或帧中的(亮度平面的)像素值之间的差异。Mn(i, j) 作为时间 (n) 的函数定义为:
这里 Fn(i, j) 是时间上第 n 帧第 i 行第 j 列的像素。时间信息 (TI) 的度量被计算为所有 i 和 j 上 Mn(i, j) 的空间标准差 (stdspace) 随时间 (maxtime) 的最大值。
相邻帧中的更多运动将导致更高的 TI 值
执照
siti, 版权所有 (c) 2017-2019 Werner Robitza
特此免费授予任何人获得本软件和相关文档文件(“软件”)的副本,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。
本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和非侵权保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。软件。
变更日志
v1.4.5 (2022-05-25)
- 删除对 siti_tools 的依赖。
v1.4.4 (2022-05-03)
- 更严格的要求检查。
v1.4.3 (2022-03-14)
- 处理容器读取的全范围。
v1.4.2 (2021-12-13)
-
在 setup.py 中包含 siti_tools。
-
Pypi 徽章链接到 pypi (#9)
v1.4.1 (2021-03-10)
-
将 python_requires 添加到 setup.py,删除 pytest。
-
添加状态徽章。
-
添加 GitHub 操作测试 (#8)
v1.4.0 (2021-03-08)
-
从全局统计数据中排除第一个 0 TI 值。
-
Python 的 Bump 要求,添加到 README 的链接。
-
切换到 siti_tools 库。
-
将 vscode 添加到 gitignore。
-
删除发布脚本。
-
格式化 setup.py 并切换到 markdown。
-
更新徽章 URL。
-
修复清单文件。
v1.3.1 (2021-02-03)
-
修复 -n 选项的行为。
-
修复发布脚本中的注释。
v1.3.0 (2021-01-29)
-
注意重大更改。
-
更新 CHANGELOG 格式。
-
将帧数据裁剪为有效像素以避免边缘效应。
-
为 sobel 过滤添加测试。
-
为自制软件添加 macOS 提示。
v1.2.0 (2020-10-17)
-
修复文档。
-
删除不需要的导入。
-
修复测试。
v1.1.0 (2020-10-13)
-
更新自述文件。
-
合并来自 slhck/add-yuv 的 pull request #5。
添加对 YUV 的支持
-
添加对 YUV 的支持。
v1.0.7 (2020-10-10)
-
修复测试。
-
指定确切的版本要求。
-
大约修复测试。
v1.0.6 (2020-03-15)
- 修复设置脚本。
v1.0.5 (2020-03-15)
-
更新发布脚本。
-
蟒蛇 3.8。
-
重命名变更日志。
v1.0.4 (2019-06-16)
-
更新发布脚本。
-
更新需求说明。
无论如何,要求都是通过 pip 安装的
-
更新自述文件。
修复有关输出格式的信息
v1.0.3 (2019-06-16)
- 更新发布脚本。
v1.0.2 (2019-05-18)
- 添加清单。
v1.0.1 (2019-05-17)
-
添加发布脚本。
-
修复 README 以供使用。
v1.0.0 (2019-05-12)
-
更新到 1.0 版。
这是一个主要版本,修复了从文件中读取的不正确值。
感谢 Henrique Domingues Garcia 对 Telecommunication-Telemedia-Assessment/SITI 的 PR,它让我们现在可以计算正确的值,至少在这些实现之间是这样。
-
添加 pypi 徽章。
v0.5 (2019-04-10)
-
凹凸版。
-
修复 np 打印选项的调用。
v0.4 (2019-01-04)
-
凹凸版。
-
合并来自 PolynomialDivision/fix/SI_formula 的拉取请求 #2。
修复 SI 报价
-
修复 SI 报价。
-
合并来自 PolynomialDivision/fix/ti_computation 的拉取请求 #1。
与 TI 交换 SI 公式
-
与 TI 交换 SI。
v0.3 (2018-06-12)
-
凹凸版。
-
处理没有声明框架的容器。
v0.2 (2018-04-12)
-
更新计算。
-
格式化/输出更新。
-
添加自述文件说明。
v0.1 (2017-10-24)
- 初始提交。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。