par

抖音这么火,你对视频的基本常识又了解多少?

怎甘沉沦 提交于 2020-08-11 03:05:00
作者:cynic 原文链接:https://testerhome.com/topics/20436 开篇 从抖音、火山、快手等短视频app的不断流行,越来越多的人开始自己制作视频。由于本人工作原因,也是以视频剪辑app为主的测试,在工作过程中,对于视音频的一些知识需要有所理解。 本文主要介绍视频技术相关知识概念。像素、分辨率、色彩空间、帧速率、码率、比特率、编码方式、封装格式。。。。对于视频文件的相关术语,在非专业人员看来都是一些搞不清楚的词汇。希望通过本文,可以对视频中提及的相关术语能够有更加深刻的理解。 一个视频文件,可以简单理解为由一系列的图片拼接组合而成的文件,在介绍视频之前,先从一张图片开始。 像素 一个图像可以视作一个二维矩阵。如果将色彩考虑进来,我们可以做出推广:将这个图像视作一个三维矩阵——多出来的维度用于储存色彩信息。 如果我们选择三原色(红、绿、蓝)代表这些色彩,这就定义了三个平面:第一个是红色平面,第二个是绿色平面,最后一个是蓝色平面。 我们把这个矩阵里的每一个点称为像素(图像元素)。像素的色彩由三原色的强度(通常用数值表示)表示。例如,一个红色像素是指强度为 0 的绿色,强度为 0 的蓝色和强度最大的红色。粉色像素可以通过三种颜色的组合表示。如果规定强度的取值范围是 0 到 255,红色 255、绿色 192、蓝色 203 则表示粉色。

《Erlang程序设计》第十四章 套接字编程

自古美人都是妖i 提交于 2020-08-10 20:14:32
第十四章 套接字编程 Table of Contents 第十四章 套接字编程 14.1 使用TCP 14.1.1 从服务器上获取数据 14.1.2 一个简单的TCP服务器 14.1.3 改进服务器 14.2 控制逻辑 14.2.1 主动型消息接收(非阻塞) 14.2.2 被动型消息接收(阻塞) 14.2.3 混合型模式(半阻塞) 14.3 连接从何而来 14.4 套接字的出错处理 14.5 UDP 14.5.1 最简单的UDP服务器和客户机 14.5.2 一个计算阶乘的UDP服务器 14.5.3 关于UDP协议的其他注意事项 14.6 向多台机器广播消息 第十四章 套接字编程 14.1 使用TCP 14.1.1 从服务器上获取数据 -module (socket_examples). -export ([ nano_get_url/0 ]). -import (lists, [ reverse/1 ]). nano_get_url () -> nano_get_url ( "www.google.com" ). nano_get_url ( Host ) -> %% 链接到主机的80端口, 以二进制模式打开套接字, 原始方式发送TCP数据 {ok, Socket } = gen_tcp : connect ( Host , 80, [binary, {packet, 0}]),

手把手教你做一个缓存工具

假如想象 提交于 2020-08-10 13:28:53
日常开发中,某些数据接口即使优化到极致,都难免还会存在计算量巨大导致响应过慢,多数情况单独做一个统计表用于存放这些处理后的数据用于读取,或者接入redis/memcache存数据,就是说单次响应本身是可以接受较慢一些的,实时性并非特别高,则可以考虑引入缓存机制,提升使用体验。说到用缓存,那就会有人提出用redis,但是项目组认为项目紧急,不希望浪费时间到新的工具研究上,或虽然熟悉,但维护工作有成本,为了有限的效果付出太多不划算。那么怎么办,没得搞了,只能手把手给项目做一个缓存工具了!吃掉JVM!也和spring cache很类似的。 这样的缓存机制,无非就是key-value模型的体现,所以首先想到了map。 Map<String, Object> cache = new HashMap<>(); 一个缓存工具就完成了,快吧。怎么用的话,就类似这样嘛: @GetMapping("/{id}" ) public Object get(@PathVariable("id" ) String id) { if (cache.containKey(id)) { return cache.get(id); } // 调取服务获取对象 Object obj = service.get(id); // 塞进缓存中 cache.put(id, obj); return obj; } 挺好用的

Wiener’s attack python

[亡魂溺海] 提交于 2020-08-10 13:28:35
题目如下: 在不分解n的前提下,求d。 给定: e = 14058695417015334071588010346586749790539913287499707802938898719199384604316115908373997739604466972535533733290829894940306314501336291780396644520926473 n = 33608051123287760315508423639768587307044110783252538766412788814888567164438282747809126528707329215122915093543085008547092423658991866313471837522758159 说明过程。 这种e很大的,d可能就会比较小,可能会满足Wiener’s attack的条件,介绍如下: 英文: 中文材料参考: 这里有两个概念,连分数和渐进分数,详情自行谷歌百度 连分数概念图: 渐进分数概念: 我的理解: 上面的等式应该比较容易理解,就是等式右边的分母很大,作为整体很小,意味着等式左边的减数和被减数的差距很小很小,并且可以通过被减数的连分数求解不断逼近它本身的一个渐进分数,因此可能会存在某个渐进分数可以满足减数的要求; 当然按照求解的渐进分数的分子分母分别对应减数的分子分母

AppEmit是应用程序(尤其是浏览器)与本地程序间互相通信的易扩展的轻量级中间件

こ雲淡風輕ζ 提交于 2020-08-09 08:49:57
AppEmit v0.3.8 文档 概述 AppEmit是应用程序(尤其是浏览器)与本地程序间互相通信的易扩展的轻量级中间件。 AppEmit is an extensible lightweight middleware for communication between applications (especially browsers) and local programs. 主要采用了HTML5国际标准的Web Socket进行通话,默认为异步, JSON格式传递参数。 主要实现功能: 在浏览器播放含有flash的网页或Flash文件,包括swf交互动画、flv影视等 在浏览器打开、操作本地文件,比如办公软件 开发本地硬件DLL驱动模块的封装插件,实现在网页中操作控制本地的读卡器、打印机、扫描仪、高拍仪、U盾等各种硬件设备 各个应用程序之间通信 在Chrome里嵌入IE内核网页 解决问题 国际市场份额68%以上的chrome浏览器(数据来源Netmarketshare;中国内25%以上)在2020年12月后不再支持 NPAPI ,而微软的 edge 也不支持 ActiveX 。 客户习惯使用浏览器来处理各种业务。 游戏商、银行、医院、硬件等企业客户使用dll或者flash文件的场景需要。 相关链接 程序名称 AppEmit.exe 网址 http://www.appemit

Oracle 19c迁移遇到大容量lob表怎么办?

余生颓废 提交于 2020-08-07 09:51:06
作者介绍 梁铭图, 新炬网络首席架构师,十多年数据库运维、数据库设计、数据治理以及系统规划建设经验,拥有Oracle OCM、Togaf企业架构师(鉴定级)、IBM CATE等认证,曾获dbaplus年度MVP以及华为云MVP等荣誉,并参与数据资产管理国家标准的编写工作。在数据库运维管理和架构设计、运维体系规划、数据资产管理方面有深入研究。 王涛, 新炬网络资深数据库专家,长期服务于运营商、金融、制造业及政企客户。扎根客户一线,多次主导运营商数据库大版本升级,擅长数据割接及同步技术的研究和应用,割接实战经验丰富。 背景 从Oracle数据库官方服务支持生命周期表,我们可以清晰看到Oracle 11g已过主支持生命周期,2020年后不再支持。基于这个背景,某客户的应用系统数据库将从IBM AIX小型机环境迁移到某国产数据库一体机,同时数据库版本从11g直接升级为19c。 LOB字段带来的问题 经过分析,此数据库的数据量不大,只有区区3TB,同时由于停机时间非常充分,可以考虑采取数据泵datapump的方式实现数据迁移。但是在仔细查看后,发现数据库中有个单表2TB,仔细再查2TB基本全是lob字段,且不是分区表,这个问题就有点棘手了。 根据以往的经验来看,这种大容量TB级的lob表,使用以往常规导出的方式,大概率会报Ora-01555。 稍稍测试一下,果不其然。 解决方法

Plot of BinaryTree (ctree, party) ignores plot option of par()

安稳与你 提交于 2020-08-07 05:06:13
问题 I would like to plot the BinaryTree in the uppper part of the plot, and make a second one in the second part (bottom). Here is some example code to show, that the plot of the tree completely ignores the partitioning options set by par() library("party") ### regression airct <- ctree(Ozone ~ ., data = subset(airquality, !is.na(Ozone))) ### classification irisct <- ctree(Species ~ .,data = iris) par(mfrow = c(2, 1)) plot(airct) plot(irisct) This code does not plot the two trees in the same plot

使用模板元编程操作类型集合(C++11下的TypeList)

心不动则不痛 提交于 2020-08-06 09:59:47
群里有个朋友要实现这么一个功能:如何在编译期把一个函数类型的参数减少一个。 简单来说,就是实现下面这个模板: remove_func_par<2, void(int, long, short)>::type; // type = void(int, long) 根据输入的编译期整数,把函数参数表里对应的参数干掉一个。 为了实现这种功能,我们需要操作变参模板的参数包。比如像这样: // make function's parameters from the types template <typename R, typename TypesT> struct make_func_par; template <typename R, typename... P> struct make_func_par<R, types<P...>> { typedef R type(P...); }; // remove function's parameter template <size_t N, typename F> struct remove_func_par; template <size_t N, typename R, typename... P> struct remove_func_par<N, R(P...)> { using erase_pars_t = typename

利用C#实现OPC-UA服务端

佐手、 提交于 2020-08-05 03:00:11
前言 最近接手了一个项目,做一个 OPC-UA 服务端?刚听到这个消息我是一脸懵,发自灵魂的三问“OPC-UA是什么?”、“要怎么做?”、“有什么用?”。 我之前都是做互联网相关的东西,这种物联网的还真是第一次接触。没办法只能打开我的浏览器四处搜索,结果百度了一圈下来发现都是要么是介绍OPC-UA是什么的,要么就是OPC-UA客户端,反正服务端相关的内容是找了半天都没找到,但这是领导们安排的任务啊,我总不能回复网上没有教程吧,于是只能把目光投向了最后的希望:GitHub,好在最后找到了OPC基金会的源码。 源码地址: https://github.com/OPCFoundation/UA-.NETStandard 不过这个源码对于我这种刚接触工业物联网的人来说,太过于复杂,而且网上相关的技术说明文档太少,觉得非常有必要动手记录一下我的OPC-UA服务端实现过程,方便以后回过头来巩固。 关于什么是OPC-UA、OPCFoundation是什么我就不多说了,百度以下,一大堆说这些理论东西的,咱们还是更喜欢动手干起来。 以下就是我实现OPC-UA服务端的记录,分享出来,大家一起探讨以下。由于我也是第一次接触这种工业物联网,所以有什么说的不对的,请大家多多指点,共同学习共同进步! 引入Nuget包 Nuget包管理器中搜索 OPCFoundation.NetStandard.Opc.Ua

exp imp

荒凉一梦 提交于 2020-08-04 19:06:01
一.说明 oracle 的exp/imp命令用于实现对数据库的导出/导入操作; exp命令用于把数据从远程数据库server导出至本地,生成dmp文件; imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中。 二.语法 能够通过在命令行输入 imp help=y 获取imp的语法信息: ============================================================================= C:/Documents and Settings/auduser>imp help=y Import: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:21:57 2008 (c) Copyright 2001 Oracle Corporation. All rights reserved. 能够通过输入 IMP 命令和您的username/口令 后接username/口令的命令: 例程: IMP SCOTT/TIGER 或者, 能够通过输入 IMP 命令和各种參数来控制“导入” 依照不同參数。要指定參数,您能够使用keyword: 格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN) 例程: IMP SCOTT