精华内容
下载资源
问答
  • 添加了"统一文本"和"统一文本长度"预编译命令,用作支持在程序中使用Unicode-16或UTF-8格式的常量文本; 2. 整体搜寻功能增加了搜寻范围选项,搜寻结果中添加了所处方法名称; 3. sdk一些更新,详见"sdk\cpp\...
  •  (1) 通过任务管理查看,可看到当破解开始后,CPU使用率立刻飙升至100%;  (2) 通过观察可用物理内存,以四核CPU为例,如下图可看到虽然四核CPU使用率均达到100%,但其调用的物理内存很少,空余可用物理内存数量...
  • 1.零偏置:对于灰度级是2n的像素,通过减去2n-1,将无符号的整数值变成有符号数,对于n=8,即将0~255的值域,通过减去128,转换为值域在-128~127之间的值,使像素的绝对值出现3位10进制的概率大大减少。 2.分块:将...

    一、实验原理

    这里写图片描述
    1.零偏置:对于灰度级是2n的像素,通过减去2n-1,将无符号的整数值变成有符号数,对于n=8,即将0~255的值域,通过减去128,转换为值域在-128~127之间的值,使像素的绝对值出现3位10进制的概率大大减少。
    2.分块:将图像分成(8*8)的块以便进行DCT变换,不够的要取边缘像素补齐。
    3.DCT:经过DCT变换后,图像中的低频分量会集中在左上角,由于图像低频能量高,故而左上角数值大,右下角有较多的0值。
    4.量化:人眼对低频敏感,对高频不敏感。所以低频细量化,高频粗量化;人眼对亮度信号敏感,对色度信号不敏感。所以亮度和色度分量分别采用不同的量化表。
    5.之字形扫描:游程编码的扫描过程,由于DCT变换后,越往右下角的分量越小甚至为0,于是采用之字形扫描。将二维降到一维后会在高频部分出现连0,由此可以提高编码效率。
    6.熵编码:直流分量采用差分编码;交流分量采用游程编码。这里写图片描述
    在读入文件的相关信息之前需要了解jpeg的文件结构
    以下是jpeg的文件中的一系列文件标记。
    这里写图片描述
    对应到用二进制读取的一个jpeg文件中
    这里写图片描述
    FFD8:SOI,图像开始;
    FFE0:应用程序保留标记0;
    FFDB:定义量化表,每个文件最多有四张量化表,此次实验所用图片中共有2个FFDB,因此共有2张量化表;
    FFC0:SOF0,帧图像开始;
    FFC4:定义霍夫曼表,本文件中共有4个FFC4,因此共有4张霍夫曼码表;
    FFDA:SOS,扫描开始;
    FFD9:图像结束。

    二、程序分析

    实验中涉及三个结构体:
    这里写图片描述

    struct huffman_table
    {
      /* Fast look up table, using HUFFMAN_HASH_NBITS bits we can have directly the symbol,
       * if the symbol is <0, then we need to look into the tree table */
      short int lookup[HUFFMAN_HASH_SIZE];
      /* code size: give the number of bits of a symbol is encoded */
      unsigned char code_size[HUFFMAN_HASH_SIZE];//每个符号对应码长
      /* some place to store value that is not encoded in the lookup table 
       * FIXME: Calculate if 256 value is enough to store all values
       */
      uint16_t slowtable[16-HUFFMAN_HASH_NBITS][256];
    };
    
    struct component 
    {
      unsigned int Hfactor;//水平采样
      unsigned int Vfactor;//垂直采样
      float *Q_table;       /*对应量化表 Pointer to the quantisation table to use */
      struct huffman_table *AC_table;//交流系数huffman码表
      struct huffman_table *DC_table;//直流系数huffman码表
      short int previous_DC;//前一宏块的直流系数 /* Previous DC coefficient */
      short int DCT[64];        /* DCT coef */
    #if SANITY_CHECK
      unsigned int cid;
    #endif
    };
    
    
    
    
    
    struct jdec_private//mcu的结构体包括mcu的层次和元素
    {
      /* Public variables */
      uint8_t *components[COMPONENTS];
      unsigned int width, height;   /* Size of the image */
      unsigned int flags;
    
      /* Private variables */
      const unsigned char *stream_begin, *stream_end;//扫描开始和结束对应的指针
      unsigned int stream_length;//扫描数据的长度
    
      const unsigned char *stream;  /* Pointer to the current stream *///指向当前扫描数据的指针
      unsigned int reservoir, nbits_in_reservoir;
    
      struct component component_infos[COMPONENTS];
      float Q_tables[COMPONENTS][64];//所包含的所有量化表        /* quantization tables */
      struct huffman_table HTDC[HUFFMAN_TABLES];    /* DC huffman tables   */
      struct huffman_table HTAC[HUFFMAN_TABLES];    /* AC huffman tables   */
      int default_huffman_table_initialized;//缺省huffman码表
      int restart_interval;
      int restarts_to_go;               /* MCUs left in this restart interval */
      int last_rst_marker_seen;         /* Rst marker is incremented each time */
    
      /* Temp space used after the IDCT to store each components */
      uint8_t Y[64*4], Cr[64], Cb[64];
    
      jmp_buf jump_state;
      /* Internal Pointer use for colorspace conversion, do not modify it !!! */
      uint8_t *plane[COMPONENTS];
    
    };

    在解析的过程中会同时输出trace文件,输出一些图像相关的参数及信息帮助理解解码过程及文件的结构,将tinyjpeg.h中的TRACE变量设为1后关闭trace文件。
    解码过程与程序的对应:
    1、读入文件
    进入load_multiple_times函数进行解码,先后进入tinyjpeg_parse_header()解析头函数和tinyjpeg_decode()解码函数;
    tinyjpeg_parse_header();
    int tinyjpeg_parse_header(struct jdec_private *priv, const unsigned char *buf, unsigned int size)
    {
    int ret;

    /* Identify the file */
    if ((buf[0] != 0xFF) || (buf[1] != SOI))
    snprintf(error_string, sizeof(error_string),”Not a JPG file ?\n”);

    priv->stream_begin = buf+2;
    priv->stream_length = size-2;
    priv->stream_end = priv->stream_begin + priv->stream_length;

    ret = parse_JFIF(priv, priv->stream_begin);

    return ret;
    }
    2.关闭文件(主函数末尾添加)
    fclose(……);
    3.输出huffman码表

    fprintf(p_huffmantable,“val=%2.2x code=%8.8x codesize=%2.2d/n,val,code,code_size”
    fprintf(p_huffmantable,“huffmantable%s(%d)length=%d(index&0xf0)?"AC":"DC",index&0xf0,count);

    这里写图片描述
    4.输出量化表
    5.输出每个块对应的直流和交流系数
    这里写图片描述
    这里写图片描述
    分布图中DC系数是两边高中间低而AC则是中间高两边低
    这里写图片描述
    这里写图片描述

    展开全文
  • c/c++运算符

    2016-07-08 23:52:00
    1.算术运算符(+ - /* %) 2.移位运算符 移运算符:操作数必须是整形...(无符号数为逻辑左移,对于有符号决于编辑) <<,值左边的几位被丢弃,右边的多出来的几个空位用0齐。 例:返回参数中1的...

    1.算术运算符(+  -  /  *  %)

    2.移位运算符

    移运算符:操作数必须是整形,>>,逻辑左移左边移入的位用0填充,算数左移左边移入的的位用符号位补齐。(无符号数为逻辑左移,对于有符号数取决于编辑器)

                                           <<,值左边的几位被丢弃,右边的多出来的几个空位用0补齐。

    例:返回参数中1的个数

    int SumOfOne(int num)
    {
    	int count = 0;
             for (int i = 0; i < 32; i++)
    	{
    if (num &1) count++; num >>= 1; } return count; }

     3、位操作符(&  |  ^)

    将指定位(bit_number)置1

    value=value|1<<bit_number;

    将指定位(bit_number)置1

    value=value&~(1<<bit_number)

    4、赋值,复合赋值运算符(=,+=,-=,*=,%=,......)

    5、单目运算符(只接受一个操作数)(!,++,-,&,sizeof,~,--,*,(类型))

    6、关系运算符(>,>=,<,<=,!=,==)

    7、逻辑运算符(&&,||)

    a>5&&a<10 (&&的优先级比>和<的优先级低所以组合方式为(a>5)&&(a<10 )但尽管&&的优先级较低但它还会对两个表达式加以控制只有左操作数为真时才对右操作数进行操作)

    操作符的一些应用:

    判断一个数是不是2的n次方

    bool IsPowOfTwo(int num)
    {
        if (!(num&num - 1))
            return 1;
        return 0;
    }

    定义宏实现将一个int型的数的奇偶位互换

    #define M(n) (((n>>1)0x55555555)|(n<<1)&0xaaaaaaaa)

    将一个二进制序列逆序

    int Reverse(int num)
    {
        int ret = 0;
        for (int i = 0; i < 32; i++)
        {
            ret <<= 1;
            ret|= (num >> i) & 1;
        }
        return ret;
    }

    找出一组数中唯一的出现一次的数

    int FindOneCount(int *a, int size)
    {
        int xor = 0;
        for (int i = 0; i < size; i++)
        {
            xor = xor^a[i];
        }
        return xor;
    
    }

    找出只出现一次的两个数,其他的都是成对出现的

    void FindTwoCount(int *a, int size,int *p1,int *p2)
    {
        int tmp = 0;
        int xor = 0;
        int pos = 0;
        for (int i = 0; i < size; i++)
        {
            xor ^= a[i];
        }
        tmp = xor;
        while (xor)//找出不同的一位
        {
            if ((xor & 1) == 1)
                break;
            pos++;
            xor >>= 1;
        }
        for (int i = 0; i < size; i++)
        {
            if ((a[i] >> pos) & 1)
            {
                (*p1)^= a[i];
    
            }
            xor = tmp;
            *p2 = xor ^ (*p1);
            
        }
         printf("%d\t%d\n", *p1, *p2);
    }

     

     

     

     

                 

    转载于:https://www.cnblogs.com/Blog-day/p/My_Blog_Days_20.html

    展开全文
  • 如果加数的符号相同,而和的符号与加数符号不同,则加法溢出(减法(同理):通过检查被减数和取补后减数的符号,可以判断是否溢出)。 常用的门电路 与门 或门 非门 与非门 或非门 异或门 传输门(当EN...

    数制

    1. 正数的补码就是原码本身,负数的补码就是除符号位以外全部取反再加1。
    2. 二进制运算需要用补码进行(将减法变为加法)。
    3. 两个异号数相加绝对不会溢出,同号数相加可能会溢出。如果加数的符号相同,而和的符号与加数符号不同,则有加法溢出(减法(同理):通过检查被减数和取补后减数的符号,可以判断是否溢出)。
    4. 进制转换
      在这里插入图片描述

    常用的门电路

    • 与门
      在这里插入图片描述
    • 或门
      在这里插入图片描述
    • 非门
      在这里插入图片描述
    • 与非门
      在这里插入图片描述
    • 或非门
      在这里插入图片描述
    • 异或门

      在这里插入图片描述
    • 传输门(当EN为高态,EN_L为低态时,A与B连接。反之,A与B断开。)
      在这里插入图片描述
    • 三态缓冲器(当EN为低态时,输出为高阻态。当EN为高态时,OUT = A。)
      在这里插入图片描述

    组合逻辑设计原理

    • 解决问题的基本方法(1.真值表法 2.开关代数法 3.假设法)

    • 开关代数定理
      在这里插入图片描述

    • 表达式求反:通过交换 +·,对所有未求反的变量求反,对求反的变量去反。

    • 对偶性原理:对开关代数的任何定理或恒等式,若交换所有的0和1以及 + 和 · ,结果仍正确(F1=F2 <=> F1D = F2D)。

    • 逻辑表达式的对偶式:F的对偶式FD是同样的表达式,只是进行了 + 和 · 的相互交换而已。
      在这里插入图片描述

    • 逻辑函数表达的基本形式
      (1)真值表
      (2)乘积项(W·X·Y)
      (3)积之和 (sum-of-products expression)(W·X·Y+W·X’·Y)
      (4)和之积 (product-of-sum expression)((X+Y+Z)·(W+X+Y))
      (5)标准项 (nomral term) 是一个乘积项或求和项,其中每个变量只能出现一次。(W·X·Y·Z)
      (6)n变量最小项(mintrem)是具有n个文字的标准乘积项。(W·X·Y·Z 、W’·X·Y·Z’)
      (7)n变量最大项 (maxterm) 是具有n个文字的标准求和项。 (W+X+Y+Z、W+X’+Y’+Z)

    在这里插入图片描述
    最小项:若i的某位二进制为0,则相应的变量取反;否则不取反。
    最大项:若i的某位二进制为0,则相应的变量不取反;否则取反。

    一个逻辑函数的标准和(canonical sum)是使函数输出为1的真值表行(输入组合)所对应的最小项之和。而一个逻辑函数的标准积(canonical product)是使函数输出为0的输入组合所对应的最大项之积。(如图)
    在这里插入图片描述
    该图所示的逻辑函数的标准和
    在这里插入图片描述
    该图所示的逻辑函数的标准积
    在这里插入图片描述

    卡诺图(Karnugh map)

    是逻辑函数真值表的图形表示。

    • 一个n输入的逻辑函数的卡诺图是一个含有2n个单元的矩阵图,每个单元代表一个可能的输入组合或最小项。
      在这里插入图片描述

    • 用卡诺图求逻辑函数表达式(全起2i个“1”单元的矩形集,矩形的定义包括图的边缘)。
      卡诺圈越大表达式越简单,卡诺圈越小表达式越复杂。
      在这里插入图片描述

    • 利用卡诺图最小化表达式(找到最大的卡诺圈 :求最简单的与项(质蕴涵项))。
      例子:F=XYZ+XY (XY是质蕴涵项,XYZ不是)

      完全和:逻辑函数的所有质蕴涵项之和(完全和不总是最小和)。如图:该图有五个质蕴涵项,但 最简表达式只有三个因子。
      在这里插入图片描述
      奇异“1”单元:只被一个最大卡诺圈覆盖的“1”。(上图中,深颜色的“1”就是奇异的“1”)。
      必要质蕴涵项:包含了奇异的“1”,才能是必要的质蕴涵项。
      最小和:所有必要质蕴涵项的和。
      步骤:(1)画出卡诺图(2)尽量画最大卡诺圈(3)找奇异的“1”(4)化简卡诺圈

    • 无关项(理论可以,现实是禁止被输入的)
      用“d”来表示,可以把“d”当做1也可以当做0(目的是为了方便化简,把卡诺圈变得更大,但不要单独画个圈给“d”)

    定时冒险

    电路延迟(ciruit delay):逻辑电路的瞬态特性(transient behavior)可能与稳态分析(steady-state behavior)得到的不同。

    • 静态-1型冒险(static hazard):是指在对电路功能稳态分析后,期望输出保持良好的稳态1时,电路的输出会产生0尖峰的可能性。

      判断方法:(1)F = X + X’;(2)卡诺图中两个圆相切。

      消除方式:在卡诺圈中增加圆圈,避免相切(F的值不变)。

    在这里插入图片描述
    在这里插入图片描述

    参考资料:《数字设计原理与实践第四版》以及 百度百科。

    展开全文
  • DBX260中文说明书

    2013-04-24 11:07:35
    注意,显示屏上面部分的显示可以是高功率输出、中功率输出或低功率输出,决于选择的扬声设置。选定功放后(决于功放的型号),如果选择适当,再选择规定的功放输入灵敏度。 •旋转轮,选择功放生产厂...
  • 代码编辑部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真shell库.ec 优化内存.ec 优化内存模块.ec 伟业极速文件传输客户端.ec 伟业极速文件传输服务器.ec ...
  • 1345个易语言模块

    2012-01-27 19:41:59
    代码编辑部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真shell库.ec 优化内存.ec 优化内存模块.ec 伟业极速文件传输客户端.ec 伟业极速文件传输服务器.ec ...
  • 1350多个精品易语言模块提供下载

    热门讨论 2011-06-06 17:51:09
    代码编辑部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真shell库.ec 优化内存.ec 优化内存模块.ec 伟业极速文件传输客户端.ec 伟业极速文件传输服务器.ec ...
  • 天正建筑 TS4.5

    2015-10-26 17:54:24
    28.[楼板方洞]改错:解决“D-矩形”绘制时容易出错的问题。UCS变化导致画错。修改:由LINE改成PLINE,并且取消“组”。 29.[单词旋转]改错:遇到Mtext属性可能不工作。 30.[尺寸平移][尺寸纵移]修改:过滤...
  • java基础入门教程

    热门讨论 2009-04-29 21:36:10
    Java 语 言 能 在 执 行 码 (二 进 制 码 )上 兼 容 ,这 样 以 前 所开 发 的软 件 就 能 运行 在 不 同 的 机 上 ,只 要 所 用 的 机 能 提供 Java 语 言 解 释 即可 。 Java 语 言 将 对 未 来 软 件 ...
  • GPU破解无线利器---EWSA破解版

    热门讨论 2009-06-15 17:08:12
     (1) 通过任务管理查看,可看到当破解开始后,CPU使用率立刻飙升至100%;  (2) 通过观察可用物理内存,以四核CPU为例,如下图可看到虽然四核CPU使用率均达到100%,但其调用的物理内存很少,空余可用物理内存数量...
  • flash shiti

    2014-03-14 10:32:41
    4. Library 中一元件Symbol 1,舞台上一个该元件的实例。现通过实例属性检查将该实 例的颜色改为#FF0033,透明度改为80%。请问此时Library 中的Symbol 1 元件将会发生什么 变化? □ A. 颜色也变为#FF0033 □ ...
  • Reversing:逆向工程揭密

    热门讨论 2010-06-21 17:27:22
    11.3 密钥生成算法 365 11.4 高级破解:Defender 370 11.4.1 逆向Defender的初始化程序 377 11.4.2 分析解密后的代码 387 11.4.3 SoftICE的消失 396 11.4.4 逆向分析第二个线程 396 11.4.5 击败“杀手(Killer)”...
  • 控制面板中那个设置光标闪烁的功能并不能完全禁止住光标闪烁,我们这另外一种方法,用注册表编辑打开到HKEY_CURRENT_USER\Control Panel\desktop,看看右边没有 “CursorBlinkRate”,如果没有请在右边空白处...
  • 核心库中增加了"操作系统类别2"命令,支持最新的各种操作系统; 2. "寻找组件"命令支持精确查找; 3. 修正了在代码编辑窗口中一些输入法候选窗不位于当前光标位置的问题; 4. 系统配置对话框中增加了"存根"选项夹,...
  • 单片机期末考试题目及答案详解

    热门讨论 2009-06-23 10:30:30
    累加A中存放着一个其值小于63的8位无符号数,CY清“0”后执行指令: RLC A RLC A 则A中数变为原来的 倍。 17.在MCS—51单片机系统中,采用的编址方式是 。MCS—51可提供 和 两种存储器,其编址方式为 ,扩展...
  • 11.3 密钥生成算法 365 11.4 高级破解:Defender 370 11.4.1 逆向Defender的初始化程序 377 11.4.2 分析解密后的代码 387 11.4.3 SoftICE的消失 396 11.4.4 逆向分析第二个线程 396 11.4.5 击败“杀手(Killer)”...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    嵌入式微控制又称为单片机,它将CPU、存储器(少量的RAM、ROM或两者都)和其它接口I/O封装在同一片集成电路里。常见的HOLTEK-p.htm" target="_blank" title="HOLTEK货源和PDF资料">HOLTEK MCU系列、...
  • ❄ WorkerIdBitLength,机器码位长,决定 WorkerId 的最大值,默认值6,取值范围 [1, 19],实际上有些语言采用 无符号 ushort (uint16) 类型接收该参数,所以最大值是16,如果是采用 有符号 short (int16),则最大值...
  • LEGEND for HGE.zip

    2019-10-19 07:06:29
    4.修改内核字体改为微妙字体,支持繁体字和特殊符号. 5.修复人物死亡灰度,99%接近盛大的颜色. 6.修复行会功能不能使用的问题. 7.修复游戏命令打不开的功能. 8.完善六个经络界面点击不变换的问题. 9.修复查看...
  • 正则表达式

    2014-12-03 14:51:39
    在正则表达式中,许多标点符号特殊的含义.下面是这些字符和它们的含义: 正则表达式的直接量字符 字符 匹配 ________________________________ 字母数字字符 自身 \ f 换页符 \ n 换行符 \ r 回车 \ t ...
  • mysql基础只是总结

    2012-06-10 17:19:00
    8、资源管理kill进程mysqld 或者 mysql-nt 不要把mysql.exe 9、net start mysql 【简单的用户权限管理】 1、用户的创建 create user 用户名 identified by 密码 2、删除用户 drop user 用户名 3、用户...
  • 17.1 使用符号制作的进度条 17.2 用table制作的进度条 17.3 CSS+JS制作的进度条(一) 17.4 CSS+JS制作的进度条(二) 17.5 进度条形式的下载效果 17.6 滑动条(一) 17.7 滑动条(二) 17.8 窗体滚动条随文字增加...
  • 17.1 使用符号制作的进度条 17.2 用table制作的进度条 17.3 CSS+JS制作的进度条(一) 17.4 CSS+JS制作的进度条(二) 17.5 进度条形式的下载效果 17.6 滑动条(一) 17.7 滑动条(二) 17.8 窗体滚动条随文字增加...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

有符号取补器