<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>随写 - XinoAssassin&#39;s Blog</title>
  
  <subtitle>Write Everything</subtitle>
  <link href="//atom.xml" rel="self"/>
  
  <link href="https://blog.xinoassassin.me/"/>
  <updated>2021-08-21T16:15:06.122Z</updated>
  <id>https://blog.xinoassassin.me/</id>
  
  <author>
    <name>XinoAssassin Ni</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Alder Lake SoC深度解析：Intel的大小核未来梦</title>
    <link href="https://blog.xinoassassin.me/2021/08/adl-deep-dive/"/>
    <id>https://blog.xinoassassin.me/2021/08/adl-deep-dive/</id>
    <published>2021-08-21T16:10:04.000Z</published>
    <updated>2021-08-21T16:15:06.122Z</updated>
    
    <content type="html"><![CDATA[<p>昨晚Intel举办了今年的架构日活动，和往年一样，Intel在架构日活动上会公布很多自家未来芯片设计方面的细节，比如说即将发布的CPU/GPU架构，新的内核设计和一些新的技术，今年的Intel架构日活动上他们带来了下一代处理器，也就是Alder Lake的详细内容。</p><h2 id="Alder-Lake简介"><a href="#Alder-Lake简介" class="headerlink" title="Alder Lake简介"></a>Alder Lake简介</h2><p>Alder Lake是Intel耗时多年打造的一款全新架构，它是未来将要发布的第12代酷睿处理器的核心。</p><p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-068.jpg" width="100%"/> /&gt;</p><p>和以往的Intel处理器架构一样，Alder Lake包含了CPU、GPU、内存控制器、IO、显示输出和AI加速器等部件。它也是Intel首个采用大小核设计的高性能处理器，改动主要有以下几点：</p><ul><li>CPU部分采用大小核混合计算架构，最高由8大核8小核组成16核24线程</li><li>CPU大核升级到Golden Cove架构，IPC提升约19%</li><li>CPU小核升级到Gracemont架构，性能接近Skylake，能效比很高</li><li>采用Intel 7工艺制程，频率相较于10nm SuperFin工艺会有进一步提升</li><li>内存控制器升级支持DDR5和LPDDR5内存</li><li>PCIe升级到5.0版本</li></ul><p>让我们一点点来看Alder Lake的进化。</p><h2 id="x86大小核异构"><a href="#x86大小核异构" class="headerlink" title="x86大小核异构"></a>x86大小核异构</h2><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-053.jpg" width="100%"/><p>Alder Lake上最大的变化点便是它采用大小核异构的架构，此前Intel曾在Lakefield上试水大小核异构，并推出了两款正式产品，不过它们都是低功耗处理器，性能不强。因此Alder Lake可以说是首款大小核异构设计的高性能x86处理器，在继承Lakefield的大小核异构设计之上，进行了深度改进。首先来看被Intel称为效率核心（E-Core）的Gracemont。</p><h3 id="E-Core：整体性能接近Skylake、但能耗更低的Gracemont"><a href="#E-Core：整体性能接近Skylake、但能耗更低的Gracemont" class="headerlink" title="E-Core：整体性能接近Skylake、但能耗更低的Gracemont"></a>E-Core：整体性能接近Skylake、但能耗更低的Gracemont</h3><p>在大小核异构设计中，一般小核的设计目标是高能效比，而大核的目标则是提供极限高性能，Gracemont便是一个非常高效的核心。Intel的小核心设计是独立于大核心的另外一条线，现在一般称为Atom核心。一脉相传下来，Gracemont的上代是Tremont。从Tremont到Gracemont，Intel着重加强了小核心的后端执行能力，尤其是整数性能。</p><img src="/images/adl-deep-dive/tremont-vs-gracemont.jpg" width="100%"/><p>上图左边是Tremont，右边是Gracemont，可以非常明显的看到，Gracemont的执行端口多了不少，从原本的10个猛增至17个，而跟着的就是执行单元数量变多了。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-029.jpg" width="100%"/><p>整数部分ALU从3个增加到4个，AGU从2个倍增到4个，对应还增加了一组MUL和DIV单元，整数执行能力得到大幅增强；浮点运算部分也有一定提升，原本只有一个的FADD和FMUL单元现在均有两个，能够拼合处理256-bit宽度的数据，也就是说能够满足执行AVX2指令集的需求；浮点ALU和STD均增加一个，计算能力会有较大提升。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-026.jpg" width="100%"/><p>为了满足大幅膨胀的后端，前端也相应做了较大增强，解码部分仍然是两组三宽度设计，可以同时启用达成六解码。L1指令缓存（L1I）倍增至64KB，同时分支预测器得到加强，拥有更大的缓存。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-028.jpg" width="100%"/><p>中核部分，ROB增大到256，这一数字比Skylake的224更大，与Zen 3持平。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-030.jpg" width="100%"/><p>最后是缓存子系统，前面说过AGU从2个倍增到4个，分配成2个Load和2个Store。L1D的大小没有变化，仍为32KB，L2的缓存最高可达4MB，需要注意的是，L2缓存是4个小核一起共用的，同时容量可配置。对了，还需要提到的是，小核以4个为一组，一组小核的面积与一个Golden Cove差不多。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-033.jpg" width="100%"/><p>总的这些改进加起来，Gracemont的性能提升相当可观。官方将它与Skylake进行了对比，在单线程的整数性能方面，Gracemont同功耗性能可提升超过40％，同性能下节约40％左右的功耗，能效比超群。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-034.jpg" width="100%"/><p>而在多线程方面，同样是4线程，与开启超线程的2个Skylake内核相比，4个Gracemont内核能够在少用80％功耗的情况下输出同样的整数性能，而如果火力全开，那么能够提供约1.8倍的整数性能，同时功耗还更低。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-035.jpg" width="100%"/><p>总的来说，Alder Lake使用Gracemont来提升处理器在多线程情景下的总性能，同时在注重节能的场景下，可以凭借小核优异的能效比实现更长的续航表现。</p><h3 id="P-Core：IPC提升约19％的Golden-Cove"><a href="#P-Core：IPC提升约19％的Golden-Cove" class="headerlink" title="P-Core：IPC提升约19％的Golden Cove"></a>P-Core：IPC提升约19％的Golden Cove</h3><p>小核很强，而大核——Intel称为性能核心（Performance Core，简称P-Core）——的Golden Cove内核只能说是改的更大提升更多。用Intel的官方口径来说，就是变得更宽、更深和更智能了。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-050.jpg" width="100%"/><p>更宽指的是内核解码、执行指令的并行程度更大；更深指的是内核中的各种指令缓存变得更大；更智能指的是部分组件具有更准确的判断能力。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-040.jpg" width="100%"/><p>Golden Cove的前端部分改动相当大，最明显的就是多年未变的4宽度（实际上是4+1宽度）解码器升级成了6宽度解码器（应该是6+1）。不像Arm等RISC体系的内核，属于CISC体系的x86要增加指令解码器的代价相当大，因此不管是AMD还是Intel都把前端解码器维持在4宽度，现在Intel首先前行一步。同时L1I缓存的带宽也扩大一倍到32Bytes以满足6宽度解码器的需要。</p><p>增加解码器宽度会增加处理器的流水线长度，这让分支预测错误的惩罚更重。Intel选择增加分支预测缓冲区（BTB）来应对这一问题，其分支条目数量从5K直接增加到12K，比Zen 3的6.5K多将近一倍。分支预测器本身也变得“Smarter”了，准确率继续提升。</p><p>宏指令（µOP）的吞吐量从多年未变的每周期6个增加到8个，同时用于缓存宏指令的宏指令缓存（µOP Cache）继续增大，从2.25K直接增大到4K，与Zen 2/Zen 3持平。宏指令队列的结构有所调整，现在为超线程进行了更多优化，双线程同时利用的情况下，单线程队列深度为72；而如果是单线程利用核心的情况则可以完整利用144的队列深度。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-041.jpg" width="100%"/><p>中核部分，同步变得更宽，发射区从原本的5宽度加宽到6宽度，ROB缓存从Sunny Cove的384加大到512，直逼苹果Firestorm内核的600+，ROB增大会显著增加内核功耗。另外，执行端口方面增加两个，现在共有12个端口，不过整数和浮点仍然共用发射端口，没有改成流行的分离式。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-042.jpg" width="100%"/><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-043.jpg" width="100%"/><p>虽然是共用端口，不过Intel还是把整数和浮点的改进分开讲了。后端执行部分的改动相对较小，从上面两张图中可以看到，整数部分增加了一个ALU；FPU部分增加了两个FADD单元，它比FMA单元更高效，指令周期也更短了；而FMA单元增加了对FP16数据的支持，对低精度计算有帮助，不过因为需要调用AVX-512指令集，所以在Alder Lake上我们无法利用到它。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-044.jpg" width="100%"/><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-045.jpg" width="100%"/><p>另一个新增的端口被用于缓存子系统，新增了一个Load AGU，这样每周期的Load带宽提升至3，和Zen 3持平。L2沿用Willow Cove的设计，仍然是非包含式设计，每核心具有1.25MB。不过加入了新的预取机制，降低了DRAM的读取次数。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-046.jpg" width="100%"/><p>总的改进加起来让Golden Cove相比起Cypress Core有了平均约19％的同频性能提升，最高甚至能有60％左右的提升。不过比较奇怪的是，有几个项目的成绩出现了倒退。总的来说，Golden Cove是一次全面的大改，可能是自Skylake以来改动最大的一个内核微架构。</p><h3 id="Intel-Thread-Director：调度大小核的关键角色"><a href="#Intel-Thread-Director：调度大小核的关键角色" class="headerlink" title="Intel Thread Director：调度大小核的关键角色"></a>Intel Thread Director：调度大小核的关键角色</h3><p>大小核心的性能提升都非常可观，但要如何调度它们，让它们充分发挥自己的长处呢？其实Arm已经替x86淌过浑水了，big.LITTLE架构发展至今已有十余年时间，主流的操作系统都添加了对大小核的调度支持，包括Windows。操作系统是知道处理器上多个性能不同的内核的。但之前在Lakefield上我们也看到了Windows在调度大小核x86处理器时候的糟糕表现了，该怎么解决这个要命的问题呢？Intel选择了一个软硬件结合的方案，称为线程总监（Thread Director，暂译，等官方中文名）。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-065.jpg" width="100%"/><p>在操作系统层面上，Intel和微软合作改进了Windows的任务调度，从Windows 11开始，系统的任务调度器能够获取更多信息，用于判断当前正在运行的线程需要什么样的性能模式，它要调用哪些指令集，同时它还懂得让硬件为高优先级任务让位。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-056.jpg" width="100%"/><p>同时，Intel在Alder Lake处理器中集成了一个非常小的MCU，用来监控当前处理器内核的运行情况，能够监测到每个线程的特征，比如它运行什么样的指令集、它的性能需求如何等等。在收集完信息之后，它会将收集到的信息反馈给Windows 11，而后者将会把这些信息与自己收集到的信息相结合，判断是否应该将线程转移到别的核心上。这一切发生在短短30微秒以内，而传统的调度器可能需要100多毫秒才能判断出结论。</p><p>当然，Alder Lake默认还是会把线程安排在P-Core上，除非高性能核心上面都有任务在跑。Intel将Alder Lake分为以下三个性能层级：</p><ol><li>每个P-Core上只跑1个线程</li><li>E-Core上只跑1个线程（当然它也只能跑1个）</li><li>在P-Core的超线程上跑线程、</li></ol><p>也就是说，在一般情况下，系统调度器会优先把线程安排到P-Core原生的线程上，8个原生P-Core线程被放完后，轮到的是E-Core，如果还不够用，它才会去利用P-Core超线程出来的线程（因为超线程出来的线程性能肯定是不如E-Core的好嘛）。比如一个20线程的任务，会利用上P-Core原生的8个线程+E-Core原生的8个线程外加4个P-Core超线程出来的4个线程。</p><p>当然，Windows 10也还是有大小核调度的能力的，但是说简单点就是不够智能。在Windows 11下Alder Lake应该会有更好的能效表现。</p><h2 id="支持DDR5与LPDDR5内存，仍然兼容DDR4和LPDDR4"><a href="#支持DDR5与LPDDR5内存，仍然兼容DDR4和LPDDR4" class="headerlink" title="支持DDR5与LPDDR5内存，仍然兼容DDR4和LPDDR4"></a>支持DDR5与LPDDR5内存，仍然兼容DDR4和LPDDR4</h2><p>讲完内核部分，我们略过没有实质性变化的Xe GPU，直接来看其他的一些变化点，首先是内存控制器：</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-076.jpg" width="100%"/><p>可以看到Alder Lake新增了对DDR5和LPDDR5内存的支持。默认情况下DDR5支持到4800MT/s，LPDDR5支持到5200MT/s，前者在今年晚些时候会开始出货，而后者在移动设备上已经被广泛应用，本来Tiger Lake是号称支持LPDDR5的，后来因为种种原因没能最终实现。而在Alder Lake正式推出之后，应该会有很多轻薄本用上LPDDR5内存。</p><h2 id="支持PCIe-5-0的新IO"><a href="#支持PCIe-5-0的新IO" class="headerlink" title="支持PCIe 5.0的新IO"></a>支持PCIe 5.0的新IO</h2><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-077.jpg" width="100%"/><p>Alder Lake的PCIe支持非常激进，直接一步升级到最新的PCIe 5.0，带宽较PCIe 4再翻一番，x16下数据带宽高达64GB/s。当然因为功耗原因，这应该是桌面平台独有的。在Rocket Lake-S和Tiger Lake上新增的x4通道则仍然是PCIe 4.0规格的，可以用于连接SSD。虽然没有明说，但与PCH互联的总线应该是升级到DMI 4.0了，至少会是x4的宽度，而高端PCH应该会通过DMI 4.0 x8与CPU相连。PCH能够再导出12条PCIe 4.0和16条PCIe 3.0，扩展性比起以前来可谓是一个天上一个地下。</p><h2 id="大一统的Alder-Lake"><a href="#大一统的Alder-Lake" class="headerlink" title="大一统的Alder Lake"></a>大一统的Alder Lake</h2><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-074-1629402245043.jpg" width="100%"/><p>相比起11代酷睿在桌面和移动端的分裂，Alder Lake又重新统一了回来，当然不同平台还是会有不同的规格。</p><img src="/images/adl-deep-dive/intel-architecture-day-2021-presentation-075.jpg" width="100%"/><p>桌面端的Alder Lake最高会有8大核8小核，不过没有集成的Thunderbolt 4控制器，核显规格也仍然只有32EU。移动端最高则是会有6大核8小核，外加96EU和4个Thunderbolt控制器，当然还是会集成祖传的IPU。对功耗更为敏感的超轻薄端最高就只有2大核8小核了，Thunderbolt控制器数量也减少到2个。</p><p>Alder Lake是近些年来Intel推出的改变最大的一个架构，不管是计算内核本身的改动还是大小核的设计，可以说是非常激进的。很惊喜Intel能给我们带来这样一个很有创造性的新架构，Intel可能会在10月末的innovatiON活动上正式发布Alder Lake的产品，也就是第12代酷睿处理器，非常期待它的正式表现。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;昨晚Intel举办了今年的架构日活动，和往年一样，Intel在架构日活动上会公布很多自家未来芯片设计方面的细节，比如说即将发布的CPU/GPU架构，新的内核设计和一些新的技术，今年的Intel架构日活动上他们带来了下一代处理器，也就是Alder Lake的详细内容。&lt;/p&gt;
      
    
    </summary>
    
    
    
      <category term="Everything" scheme="https://blog.xinoassassin.me/tags/Everything/"/>
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
  </entry>
  
  <entry>
    <title>Intel是怎么失去自己的性能优势地位的？</title>
    <link href="https://blog.xinoassassin.me/2020/05/why-intel-cpu-in-disadvantage/"/>
    <id>https://blog.xinoassassin.me/2020/05/why-intel-cpu-in-disadvantage/</id>
    <published>2020-05-31T04:35:26.000Z</published>
    <updated>2020-06-03T04:44:47.727Z</updated>
    
    <content type="html"><![CDATA[<p>要是有人在五年前跟我说，AMD的处理器性能逼近甚至超过Intel的，那我当时肯定会像看傻子一样看着对方，然后缓缓说出一句“你在搞笑吧？”来严肃回答对方。</p><p>然而，两年之后的现实就是，AMD用Zen 2架构的Ryzen 3000系列处理器在性能与口碑上都追上，甚至赶超了Intel，“AMD, Yes!”这句口号也是被喊得越来越响亮，甚至出现了什么状况呢？面对竞争对手的咄咄逼人，他们拿出了Comet Lake-S这种实质是Refresh的产品来应对，连已经被应用在移动端的新内核微架构都懒得换，加了两个核心，优化了下散热，提了点频率就拿出来卖了。</p><p>那么Intel是怎么一步一步走到今天这个局面的？我分析了从14年开始，Intel的产品布局还有他们的Roadmap，至少有一点可以明确的是，制程工艺，真的卡了Intel的脖子。从22nm到10nm的路上，每一次制程节点的升级都遇到了问题，结果就是Intel匆匆忙忙之间，不仅要为新制程的延期擦屁股，还要为竞争对手的突击来调整自己的产品布局。首先，我们要从14nm，这个可以说是一代经典的工艺说起，让我们把时间倒回到2014年。</p><h2 id="14nm延期：Tick-Tock战略的终结"><a href="#14nm延期：Tick-Tock战略的终结" class="headerlink" title="14nm延期：Tick-Tock战略的终结"></a>14nm延期：Tick-Tock战略的终结</h2><p>2014年的Intel，正在用着成功的Haswell和22nm制程称霸着x86处理器市场，他们原本计划在那年推出升级14nm制程的Broadwell，也就是Haswell的换制程版本，延续自己成功的Tick-Tock战略。</p><p>什么是Tick-Tock战略呢？这里为不清楚的朋友简单介绍一下。</p><img src="/images/TickTock.png" width="100%" /><p>Tick-Tock战略是Intel在2007年提出的处理器更新战略，因其类似于钟摆运动而得名。在Tick年，Intel将会引入新的制程工艺，但不会对CPU微架构进行大幅改动；而在Tock年，Intel将会使用上年更新过后的工艺推出采用全新架构的CPU。这样，以两年为一个周期，Intel可以稳步推进自己的处理器更新换代，在市场上牢牢坐稳自己领导者的位置。</p><p>这套战略非常有效，Intel沿着Tick-Tock战略制定的轨迹，从2007年一路走到2013年，期间他们的制程工艺从65nm一路发展到22nm，而内核微架构也从Core 2 Duo时代的Conroe一路进化到2013年的Haswell。</p><img src="/images/TickTock-2.png" width="100%" /><p>Haswell，也就是现在仍然被人们津津乐道的四代酷睿，一经推出就成为了当时的装机首选。一方面，它相对于上代处理器有可观的性能增幅，另一方面，竞争对手还陷在推土机架构的泥沼中，一时半会儿没有还手的力气。看起来Tick-Tock战略非常成功，下一年就可以推出采用14nm制程的Broadwell系列处理器了，但就在这个当口，制程工艺的更新出了岔子，跟不上了。</p><p>Intel为每一次的制程迭代都设定了相当高的目标，从22nm进化到14nm也不例外。但Intel再牛逼，也突破不了物理的极限，随着晶体管变得越来越小，单位面积内晶体管的数量越来越多，在没有对材料进行改进的前提下，漏电和发热情况会越来越明显，同时，新工艺早期的良率难以与老的成熟工艺相比，搞定这些问题需要时间。在2013年末的时候，14nm制程还没有成熟到能上正式产品的底部，在当时Intel期望能够在下一年的第一季度将其应用于量产，结果我们都知道了，预期没能实现。</p><img src="/images/14nm-yield.png" width="100%" /><p>在2014年年中的时候，Intel对外解释了他们14nm制程延期的一些原因，上图主要诉说的是14nm制程的良率还没有22nm那么高，才刚刚满足Intel的PRQ（能够用于正式生产的良率点）。那工艺才刚刚进入量产，产能还跟不上怎么办？Intel很聪明，他们选择对现有产品在不进行制程升级的情况下进行小幅更新，也就有了Haswell Refresh这一代处理器，代表产品有Core i7-4790K和Xeon E3-1231V3等。从这里开始，Tick-Tock战略在事实上已经被改良的Tick-Tock-Refresh战略所取代，不过Intel暂时还没有承认这一点，继续使用既有的路线图走了下去。</p><p>在既有的路线图上面，2014年是Tick年，Intel应该换新的工艺，也就是预定的14nm推出新产品。但因为工艺出现了延期，没能很好地实现Tick年的预定计划，而新的Tock年——2015年很快就到了，按照计划他们应该推出采用新架构的14nm处理器。为了赶上原本的路线图，Intel直接砍掉了Broadwell的桌面版（实际只有两款且出货很少），在2015年的夏季，直接推出了Skylake处理器，也就是我们熟知的第六代酷睿。</p><img src="/images/intel-2015-roadmap.jpg" width="100%" /><p>上图是Intel在2015年公布的官方路线图，可以看到的是，在桌面端，Broadwell完全消失了，接替Skylake的，是又一代的Refresh产品。而在移动端，Broadwell与Haswell Refresh并存，之后出现了一个需要注意的地方，那就是Cannon Lake，它将要在移动市场上接替Skylake，是Intel规划中的初代10nm处理器。按照这张路线图，Intel计划在2016年的第二季度将Cannon Lake带入市场，也就是说，在当时，Intel对2016年量产10nm处理器这件事情是非常自信的。</p><p>结果，在2016年，我们没有等来Cannon Lake和10nm制程，等来的却是Intel宣布将Tick-Tock战略由新的Process-Architecture-Optimization（制程-架构-优化，简称PAO）三步走战略替代的消息。</p><img src="/images/TickTock-PAO.png" width="100%" /><p>在新的PAO战略中，制程工艺仍然是开启一个周期轮回的首要因素。如果将14nm作为PAO战略的首个制程节点，那么Skylake处理器就是这一轮PAO中的架构改进点，正好是对应起来的，那么在Skylake之后带来的，就应该是Optimization，也就是原本的Refresh这一步，它将优化新架构和新制程的表现，提供一个PAO轮回中最好的综合表现。好了，Intel也就顺势公布了Skylake的下一代将会是Kaby Lake，而不是此前定下的Cannon Lake。</p><p>至此，Tick-Tock战略完全失效，被新的PAO战略所取代。但我们谁都没有想到，Intel的头一个PAO轮回就花了他们将近四年的时间。</p><h2 id="10nm屡次延期：Cannon-Lake夭折与不尽如人意的Ice-Lake"><a href="#10nm屡次延期：Cannon-Lake夭折与不尽如人意的Ice-Lake" class="headerlink" title="10nm屡次延期：Cannon Lake夭折与不尽如人意的Ice Lake"></a>10nm屡次延期：Cannon Lake夭折与不尽如人意的Ice Lake</h2><p>上文说到，在Intel很早以前的路线图中，他们计划在2016年将10nm带到人们的眼前，结果事与愿违。不过Intel仍然没有放弃，因为他们深知，制程工艺的领先将会在竞争中给他们带来莫大的优势。于是在2017年伊始的CES展会上，Intel CEO在自家的发布会上面信誓旦旦地表示，他们的10nm处理器会在当年年末的时候出货。紧接着的投资者公开会上，Intel更是扔下了一枚炸弹，他们声称将会在数据中心产品上首先启用10nm制程，而不是像往常那样，首先在移动超低压产品上应用，但同时，他们还告知投资者，今年在消费级还会有一代14nm处理器。</p><p>这是为什么呢？我们把时间稍微倒回去一个月。</p><p>2016年12月13日，AMD在名为“新地平线”的峰会上面公布了自家传闻已久的全新Zen架构的正式产品——Ryzen系列处理器。在次年的3月初，初代Ryzen的首批三颗处理器正式开卖了，上来就是八核十六线程的规格，在多线程能力方面对Intel处理器造成了很大的威胁，这也被视为AMD走出推土机阴霾，重返高性能处理器市场的标志。</p><p>在接到蜇伏了多年的老对手突然出的一记重拳之后，Intel当然是要回应的，于是就有了上面的“今年在消费级还会有一代14nm处理器”，现在我们知道，Intel为了应对AMD的攻势，给桌面端沿用了多年的四核规格加了两个核心，推出了代号为Coffee Lake的八代酷睿，同时他们再次优化了在Kaby Lake上已经被优化过一次的14nm制程，命名为14nm++。</p><img src="/images/4-Kaizad-Mistry-2017-Manufacturing-page-007.jpg" width="100%" /><p>当然，Intel肯定是没忘记他们的10nm制程的，在当年三月份末的制造日（Manufacturing Day）活动上面，他们向各路媒体公开了10nm制程的细节和他们设定的目标，其中最为人印象深刻的是，他们要把晶体管密度提高约2.7倍，这样一来，Intel能够继续保持3.5年的制程领先，并且能够比台积电/三星/GF这几家的7nm工艺更加先进。</p><p>吹归吹，还是得拿出实际产品才能够让人信服。</p><p>整个2017年，Intel在10nm上再没了什么动静，甚至于在2018年的CES演讲上面，他们的CEO提都没提自家的x86 CPU，只有在演讲结束之后的一个面向媒体的短会上面，CCG（客户计算业务组）的高级副总裁在时长为10分钟的短暂演讲的末尾提了一句，称他们的10nm产品已经在2017年出货了。这种低调的声明对于Intel来说并不是什么常见的事情，在场的不少媒体意识到，Intel内部肯定有什么问题发生了。</p><p>结果到了2018年5月份，除了Intel自己意外泄漏的一份文档中出现了Cannon Lake之外，其他地方根本就没这系列的影子，说好的出货出哪儿去了？答案最终浮现是在中国市场上一款出货量并不大的新笔记本中：</p><img src="/images/TT20.jpg" width="100%" /><p>从上面的广告Banner中，我们可以发现这款处理器的型号为Core i3-8121U，而它就是最初和最末的Cannon Lake处理器，整个Cannon Lake系列中唯一一款正式进入市场的处理器。</p><p>为了研究Cannon Lake和10nm工艺，各路硬件媒体马上从中国购买了这台笔记本回来，比如AnandTech的Ian Cutress博士就行动了，很多媒体随后都发布了对这款处理器的评测，其评价基调都差不多：失望。这款处理器在默认情况下基本上打不过规格类似的Core i3-8130U，甚至在同样的频率下面，作为拥有更先进工艺的处理器，它的功耗比Core i3-8130U还要大。</p><p>Cannon Lake被初代10nm工艺所严重拖累，以至于该系列仅推出了一款处理器就被Intel给砍掉了。为它配套的300系芯片组被修修改改用在了Coffee Lake身上，这也就是为什么，300系芯片组的代号是Cannon Point的原因。</p><p>Cannon Lake虽然夭折了，但它对Intel仍然有着莫大的意义。首先，它是一个新PAO轮回的起点，正式引入了新的制程，其次，在Cannon Lake上面，Intel完成了其处理器平台与内核微架构的解耦，以往Intel处理器的内核与平台共同一个代号，而在Cannon Lake身上，两者分离了。Cannon Lake搭载了Skylake微架构的升级版——Palm Cove，而在2018年初期，Intel就正式公布了他们在内核微架构上的路线图：</p><img src="/images/sunny_cove_roadmap_900.jpg" width="100%" /><p>但在整个2018年中，Intel都没有发布其PAO战略应该有的下一步，代号为Ice Lake的第二代10nm处理器，直到2019年年中，Intel终于在台北电脑展的发布会上面公开了该系列的具体详情，它可以说是Intel在2015年推出Skylake以来幅度最大的处理器升级，引入了诸多新特性。而在8月份，Intel正式宣布该系列处理器上市，在去年年末和今年年初一段时间，我们看到了大量搭载Ice Lake的处理器。但是尴尬的事情又再次发生了，Ice Lake系列的性能被发现打不过自家另外一系列的移动处理器，也就是代号为Comet Lake-U的14nm处理器。</p><img src="/images/CES2020_PerfWorshop%20(FINAL)%20-%20EMBARGO%2010pm%20PT%20on%201.5-7pm-page-027.jpg" width="100%" /><img src="/images/CES2020_PerfWorshop%20(FINAL)%20-%20EMBARGO%2010pm%20PT%20on%201.5-7pm-page-026.jpg" width="100%" /><p>上面两张图来自于Intel官方的宣传资料，他们拿AMD Ryzen 7 3700U分别对比了自家的Core i7-1065G7（Ice Lake）和Core i7-10710U（Comet Lake），后者同为TDP为15W的产品，但比前者要多两个核心，同时还有更高的睿频。从图上可以看到，Core i7-1065G7在不少场景下是比不过Core i7-10710U的。现在更有坊间的爱好者对Ice Lake进行了更为详尽的测试，其能耗比真的只能用失望两个字来形容。</p><p>看起来Intel解决了新制程生产良率的问题，却没有解决能耗比的问题，现在的10nm被卡在高发热量、频率上不去、上不了桌面端等等问题之中，实属非常尴尬。就在Intel被新工艺延期折腾的时候，竞争对手已经推出了第三代Ryzen处理器，并用上了经过大幅改良的Zen 2架构。</p><h2 id="Zen-2与Renoir：AMD实现逆转的最后一块拼图"><a href="#Zen-2与Renoir：AMD实现逆转的最后一块拼图" class="headerlink" title="Zen 2与Renoir：AMD实现逆转的最后一块拼图"></a>Zen 2与Renoir：AMD实现逆转的最后一块拼图</h2><p>AMD在Zen架构获得一定成功后继续改良，推出了一代小改的Zen+，然后同样在2019年的台北电脑展上面，他们发布了基于Zen 2架构的第三代Ryzen处理器。Zen 2针对Zen架构单核性能不足的问题进行了针对性的加强，更为重要的是，AMD从内核微架构到内核互联到封装形式再到制程工艺上，全部都进行了脱胎换骨般的革新，这里我们不多谈细节，而是看到最终的成品上面去。桌面版Ryzen 3000处理器因为有优秀的性能表现和较为平实的价格而获得了广大消费者的认可，而基于同样架构、面向服务器市场的第二代EPYC处理器已经被Amazon和微软Azure等数据中心启用，而后推出的面向高端桌面及工作站的第三代线程撕裂者更是大幅度打破了Intel在这块领域的性能优势，甚至Linux之父Linus在上个礼拜也放弃了一直使用的Intel平台，换了颗Threadripper 3970x，还被这颗处理器的表现所折服了。</p><p>这也是自K8以来，AMD十余年时间首次在桌面端拥有了与Intel不分伯仲的实力，在企业级市场中的份额也有一定的上升。一片向好的情况下，移动市场成了Intel最后的遮羞布。然而……</p><p>在今年年初的CES上，AMD发布了代号为Renoir的Ryzen 4000系列APU，它将Zen 2内核与其他模块融合到了一块Die上面，最高提供8核16线程的配置，需要注意的是，就算是低压的15W版本，也有8核16线程的高配，这是以往在移动平台上从来没出现过的，此前Intel也就是把核心数推高到了6个而已，关键是，它凭借着工艺优势，在同样的TDP空间内提供了更好的性能。</p><p>Renoir的意义并不只限于给低压平台提供新的8核而已，它是AMD认真为移动平台打造的一代APU。为什么说是认真呢？前两代Ryzen APU的表现实际上还可以，也收获了一定的市场认可，诸如华为等新兴笔记本品牌都推出了基于这两代APU的廉价笔记本，甚至微软为自家的Surface Laptop还定制了一颗APU。但问题在于，由于核心调度、待机功耗等等地方没有做的很好，使用这两代APU的笔记本在续航表现上较为一般，性能只能说是将将够用，所以大的OEM并不是太买账。</p><img src="/images/15_1200.jpg" width="100%" /><p>而Renoir则是针对这些小毛病进行了认真的改进，尤其是在节能方面，配合上台积电优秀的制程工艺，Renoir在续航方面实现了突飞猛进般的提升，直追、甚至超过了Ice Lake平台的表现。在看到Renoir的改进之后，今年大的OEM纷纷开始大量采用Renoir APU，推出的产品有像联想小新系列的主流级学生本，有天选、R7000这样引发大量话题关注的高性价比游戏本，甚至AMD还和华硕合作搞出了幻14这样炫技的产品，这些都是对该系列的认可。</p><p>Renoir成功地将Intel的最后一块遮羞布给揭下了，几乎在全平台实现了逆转。那么Intel现在有给出什么应对手段吗？</p><h2 id="Tiger-Lake与Rocket-Lake：Intel能否摆脱困境？"><a href="#Tiger-Lake与Rocket-Lake：Intel能否摆脱困境？" class="headerlink" title="Tiger Lake与Rocket Lake：Intel能否摆脱困境？"></a>Tiger Lake与Rocket Lake：Intel能否摆脱困境？</h2><p>Intel的优势很大程度上来自于自家的制程工艺，原本他们的工艺平均领先其他代工厂约3.5年，但在14nm和10nm的两次延期之后，这种优势已经荡然无存了，台积电的N7在相当程度上接近、甚至超过了Intel的10nm工艺，而他们在N7之后的下一代制程——N5，已经被用于量产苹果今年的A14处理器了。</p><p>Intel面对着严峻的考验，当然他们有着这么大的家底，肯定是不会坐以待毙的。同样在年初的CES 2020上，Intel在自己的主题演讲末尾终于是提到了自己在移动端布局的新平台——Tiger Lake。</p><img src="/images/Tiger-Lake_1600.jpg" width="100%" /><p>Tiger Lake可以说是Ice Lake的优化版本，不过优化力度有点强，主要有换用新的Willow Cove内核，换上Intel研发已久的Xe GPU架构，并且使用10nm+的工艺进行制造，在频率上面有所提升。从目前泄漏的各种跑分成绩来看，Tiger Lake在一定程度上走回了性能增长的正轨，有望在移动端与Renoir进行对抗，不过，它最多应该只有四核版本。</p><p>Tiger Lake仅会在移动端露面，而对于竞争乏力的桌面端，Intel规划了名为Rocket Lake的平台，它仍将会使用14nm++制程，不过它终于摆脱了使用多年的Skylake内核，换上新的Sunny Cove/Willow Cove内核，在IPC上面有较大进步。配合上14nm++能够提供的较高频率，有望提供一次较大的性能提升。</p><p>但问题在于，竞争对手并不是静止的。AMD方面仍然在按他们既定的路线图走着，明年的CPU市场仍然是风云变换的一年，Intel能否摆脱当前的困境，很大程度在于明年这些新东西的表现。</p><h2 id="总结：受制程拖累是大头，但战略跟不上变化也存问题"><a href="#总结：受制程拖累是大头，但战略跟不上变化也存问题" class="headerlink" title="总结：受制程拖累是大头，但战略跟不上变化也存问题"></a>总结：受制程拖累是大头，但战略跟不上变化也存问题</h2><p>在文章的结尾，我们还是回归本文的标题，分析一下Intel是怎么失去自己的性能优势地位的。在前文谈及Intel两次受到制程拖累时，其实已经谈到了Intel在战略上反映过慢、处于被动的迹象，这也是除开制程之外的另一个拖累Intel处理器性能发展的问题。</p><p>我们经常戏称Intel、佳能等一些厂商为“牙膏厂”，原因在于，他们产品的代际性能提升相当有限，就像挤牙膏一般，明明有这么一大管，每次挤却总是那么一丢丢。作为半导体芯片行业的领头羊，Intel的技术储备方面是很丰厚的，他们也完全有能力在制程受限的情况下对架构进行更新实现更大幅度的性能增长，结果他们并没有选择这条成本较高的发展路线，而是通过一手“拖”字决，靠着加核心提频率的“秘诀”，让自己的产品不至于很难看，但端上来的Coffee Lake、Coffee Lake Refresh和Comet Lake这三代产品实在难以说是有诚意，一次又一次的挤牙膏消费的是自己品牌的形象，也让竞争对手得以缓缓接近自己，甚至大有弯道超车的趋势。</p><p>虽然Intel处理器的游戏表现依旧优异，但其实这部分的优势很大程度上来自于它的Ringbus总线和超高的频率，而不是内核架构。在将核心数和频率提升到极限之后，Intel终于才开始规划内核上的升级，但此时又被制程给限制住了，在下一代Rocket Lake处理器上我们很有可能会看到最大核心数量倒退的情况。</p><p>在这里说如果已经是马后炮，只能看向未来。从目前在各种渠道中得知的情况来看，Intel在未来的一两年中面对的挑战相当严峻，Tiger Lake早期工程样片的表现仍然不尽如人意、Rocket Lake的功耗被继续推高，更远的Alder Lake甚至将引入还没有正式表现的8+8大小核设计，用现在的眼光来看，这几个都不是什么好消息。不过传奇人物Jim Keller已经被Intel招至麾下，挑起技术部门的大梁，他将带给Intel什么样的变化现在还不得而知，但从他的传奇经历来看，总体是偏向好的。</p><blockquote><p>很多人说，Intel的收入大头不在消费级，而是在企业级，其实这种说法并不准确。Intel的主要收入来自于CCG与DCG这两个部门，前者面向消费级市场，产品就是我们日常见到的这些消费级CPU；DCG部门面向数据中心市场，产品是服务器级别的CPU（和其他AI方面的产品）。在最近几个财年中，CCG与DCG的收入基本持平，CCG稍多几个百分点，但消费级产品的颓势已经明显影响到了部门的收入，上个财年CCG的收入增长几乎停滞，只有0.1％。而DCG的发展情况仍然大好。</p></blockquote><p>总而言之，14nm和10nm的两次延期让Intel将自己工艺上平均领先3.5年的优势给消磨殆尽，而战略上的迟缓应对让他们逐渐处于被动地位。未来一到两年之内，他们相对弱势的情况不会有很大的改变，如果不对目前“挤牙膏”的现状做出改变，那“AMD，Yes”的口号，真的会越来越深入人心了。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;要是有人在五年前跟我说，AMD的处理器性能逼近甚至超过Intel的，那我当时肯定会像看傻子一样看着对方，然后缓缓说出一句“你在搞笑吧？”来严肃回答对方。&lt;/p&gt;
&lt;p&gt;然而，两年之后的现实就是，AMD用Zen 2架构的Ryzen 3000系列处理器在性能与口碑上都追上，甚至
      
    
    </summary>
    
    
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
  </entry>
  
  <entry>
    <title>远离Sony产品，珍惜财产安全</title>
    <link href="https://blog.xinoassassin.me/2020/03/wi-1000xm2/"/>
    <id>https://blog.xinoassassin.me/2020/03/wi-1000xm2/</id>
    <published>2020-03-26T09:30:14.000Z</published>
    <updated>2020-03-26T09:31:47.606Z</updated>
    
    <content type="html"><![CDATA[<p>人呐，是不能有闲钱的，一旦有钱了呢，就想消费。</p><p>那天用着买了快有两年的QC30，开着最高强度降噪，没半天电量就从100%跌到50%了。这办公室呢，总归有几个喜欢大声交谈的同事，不挂个主动降噪，光靠用海绵套隔绝声音是远远不够的。想着Sony不是掏了个二代狗圈出来吗，正好自己好久没买Sony的东西了，思索了一下，该是时候体验一下Sony的产品了。正好身边有不少购买了一代狗圈的朋友，都对这款产品挺满意的，想着二代总不能比一代还差吧，就下单购买了WI-1000XM2。</p><p>由于是淘宝卖家，下单时间在凌晨的货也是下午五点之后才会发快递，还好是同城顺丰，今天中午前就拿到了。简单做个开箱：</p><img src="/images/WI-1000XM2_1.jpg" width=100% /><img src="/images/WI-1000XM2_2.jpg" width=100% /><p>由于这代将原本的硬质项圈改成了软质硅胶环，所以包装也变小了很多。当然该有的Logo还是一个不少的，像什么小金标、NFC，索尼自家的DSEE HX技术等等，能写上两排。</p><img src="/images/WI-1000XM2_3.jpg" width=100% /><p>打开包装，拿出内容物，先是一张提醒我要用Sony自家的App进行连接的挡卡。</p><img src="/images/WI-1000XM2_4.jpg" width=100% /><p>盒子里面的东西也被包装起来了，分成收纳包、附件盒和纸质文档三类。</p><img src="/images/WI-1000XM2_5.jpg" width=100% /><p>收纳包中自然就有本体。</p><img src="/images/WI-1000XM2_6.jpg" width=100% /><p>这代悬挂起来是这个样子的，电池和核心电路都位于左右两边的悬挂体中。</p><p>Sony的附件还是管够的，除了收纳盒之外，他们还提供了两种类型三种大小总计六对的替换用耳塞，算上耳机上自带的那一对，一共就是七对耳塞。两种不同的类型指的是在常见的普通硅胶耳塞外，Sony还提供了三对拥有加厚内壁的“舒适”耳塞。另外，必须有的USB连接线和耳机特色功能的3.5mm对录线也一并提供，甚至还有一个用于飞行的航空音频插头。</p><p>东西看上去很不错，那么用起来呢？</p><p>我首先在自己的Android手机上安装了Sony的Headphone Connect应用，并直接用手机触碰了位于右边的NFC标识进行连接。</p><p style="text-align:center;"><img src="/images/WI-1000XM2_9.jpg" width=100% /><br/>NFC位于右侧悬挂</p><p>连接很顺利，手机也识别到设备支持LDAC编码，自动使用起它来。</p><p>不过首次使用还是要打开App进行一番简单的设置：</p><img src="/images/App-1.png" width=100% /><p>降噪功能位于“环境声音控制”中，它有完全降噪、特殊的风噪降低模式和20档环境声音可选，就降噪来说，功能性算是比较丰富的。而其他附带的功能有自适应声音控制——耳机通过传感器数据来检测人的动作与姿态，自行采用最适合的模式。另外像是DSEE HX这个音效增强功能还是需要在应用中手动开启，不过我肯定是不会去用的。</p><p>不知道是不是Sony全家蓝牙设备都这样，它不能改名，让我这个有给设备统一命名习惯的人很难受。</p><p>难受归难受，新东西还是要好好感受一下的，取下脖子上挂的QC30，用新设备听会儿歌。WI-1000XM2用了一个动铁单元+动圈单元的组合，硬素质上相比只有动圈单元的QC30是要好上一些的。但实际上在刚开声的时候，它会让你深刻怀疑这钱花的不值，因为确实糊。不过在短暂煲机七八小时后，糊的情况有了改善，起码听某首中型编制Live时声场终于是散开来而不是一团了。调音上，相比起QC30的偏下盘走量，Sony还是有些不同，低频量控制的还不错，中高频给个及格分吧，人声并不远，偏流行的取向还是比较讨好耳朵的。</p><img src="/images/WI-1000XM2_7.jpg" width=100% /><p>再来谈谈降噪表现，这也是降噪耳机最应该做好的地方。Sony在这方面应该算是追随者，尽管很多人都说他们已经追上了前辈Bose的脚步，但从实际使用来看，还是有差距。WI-1000XM2对人声的消除做的不如QC30，在降噪模式下音量开得不够大，外界人声是可以准确穿透进来的，而在同样位置，差不多音量的情况下，QC30也会让人声穿透进来，但是更为模糊。戴着WI-1000XM2还能听清楚别人在说什么，但是QC30就不行，这让我严重怀疑起之前看的各种评测文章来。不过WI-1000XM2的降噪模式是可以完全关闭的，关闭之后，它跟普通的蓝牙耳机就没啥区别了。</p><p style="text-align:center;"><img src="/images/WI-1000XM2_8.jpg" width=100% /><br/>左侧悬挂有电源按钮、3.5mm插孔和USB-C充电口</p><p>佩戴方面WI-1000XM2是给到了不错的体验的，后颈接触到的不再是偏硬的项圈，而是较软的硅胶环，异物感要小很多。但有一点要说的是，Sony那用了一万年的扁面条线又立功了，过长的耳机线让听诊器效应重新出现了，只好手动绕耳一圈以减少线材与衣物的摩擦，进而降低听诊器效应。另外还要吐槽下它的线控，WI-1000XM2的线控是正面四个按钮，从上到下为音量+、播放/暂停、音量-和“C按钮”，上部三个常用按键之间没有大的间隔，并且音量+上面还设计了一个小突触以定位，但一般情况下，用户是以面积最大的按键做定位，所以很容易摸错按键位置，比如说想摸音量-却摸到了尾端的“C按钮”然后一按就把降噪等级给改了，幸好中间的播放/暂停键上面有一条长凸起可以帮助定位。另外，线控按键的触发力度过小了，容易误操作。麦克风录音时降噪会关闭，使用的是线控上面的麦，收音效果尚可。</p><p style="text-align:center;"><img src="/images/WI-1000XM2_10.jpg" width=100% /><br/>左侧设计了一个用于盲认LR的小凸起，线控上也有类似的设计</p><p>最后，总结一下这次消费，两个字：不值。首先，如果是一代或者QC30用户想换新，那么WI-1000XM2并不会在体验上给你惊喜，甚至可以说基本没有区别，甚至从QC30转过来还会发现它只能够连接一个设备了。不过如果是还没有主动降噪相关产品，想入手一款颈挂式主动降噪耳机的话，本着买新不买旧的原则，WI-1000XM2是目前较好的选择。</p><p>结尾处还是说一说Sony吧，我真的不明白为什么会有这么多Sony的粉丝，尤其是1000系列，这系列的三种类型产品，实际用下来的感觉都只是中规中矩，不太出众，也有小问题，难怪会变成跳水之王。在这次冲动消费之后，我应该会在较长一段时间内不会碰Sony的产品了。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;人呐，是不能有闲钱的，一旦有钱了呢，就想消费。&lt;/p&gt;
&lt;p&gt;那天用着买了快有两年的QC30，开着最高强度降噪，没半天电量就从100%跌到50%了。这办公室呢，总归有几个喜欢大声交谈的同事，不挂个主动降噪，光靠用海绵套隔绝声音是远远不够的。想着Sony不是掏了个二代狗圈出来
      
    
    </summary>
    
    
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
  </entry>
  
  <entry>
    <title>数字视频编码的发展历程</title>
    <link href="https://blog.xinoassassin.me/2020/03/Video-Codecs/"/>
    <id>https://blog.xinoassassin.me/2020/03/Video-Codecs/</id>
    <published>2020-03-19T10:54:55.000Z</published>
    <updated>2021-08-21T16:40:25.037Z</updated>
    
    <content type="html"><![CDATA[<p>大家久等了，这是多媒体文件格式系列课堂文章的第三篇，前面已经讲过了容器与音频编码，现在我们要看到最为复杂的视频编码了，人们一直在想尽办法提高视频编码的效率，让它在尽可能小的体积内提供最好的画面质量，从而满足人们对于视频传输、存储的需求。和前两篇文章中介绍的容器与音频编码不同的是，视频编码有一条较为清晰的发展脉络，比种类繁多且不统一的音频编码要容易理顺，目前国际通行的视频编码标准基本上都是由MPEG（动态图像专家组）和ITU-T（国际电信联盟电信标准化部门）等组织牵头开发的，另外还有一些零星的编码，它们可能在一段短暂的时间内占据主流地位，不过最终还是让位于国际通行标准。</p><blockquote><p>国际上主要通行的编码标准为ITU-T组织的H.26x系列视频编码和MPEG组织制定的部分编码标准，有一点需要说明的是，同样的一个标准在不同组织那儿可能会叫成不同名字，比如最典型的就是AVC（高级视频编码），大家可能更熟悉它的另一个名字——H.264，AVC是MPEG组织在标准中给它起的名字，MPEG组织从属于国际标准化组织（ISO）和国际电工委员会（IEC），所以在ISO标准中，它的正式名字是“MPEG-4 Part 10, Advanced Video Coding”。这种情况多见于H.26x系列编码，下文会注出。</p></blockquote><p>而在这条主要脉络中，基本上囊括了接近半个世纪以来，视频编码的技术发展，我们将主要沿着H.26x以及MPEG这条主要脉络，为各位读者简单梳理出一条视频编码的发展历程。</p><h2 id="为什么我们需要对视频进行压缩编码？"><a href="#为什么我们需要对视频进行压缩编码？" class="headerlink" title="为什么我们需要对视频进行压缩编码？"></a>为什么我们需要对视频进行压缩编码？</h2><p>很简单，就是为了减小视频占用的容量大小。</p><p>数字视频实质上就是一帧帧连续的图像，虽然一帧图像的大小并不大，但每秒至少得有24帧图像（一般情况），它们累计起来就会占据非常大的空间，我们没有那么多的地方存储原始数据，那么只有一条路可以走，对它进行压缩。而视频的编码过程就是这个压缩过程，但与音频一样，在传统数据压缩算法来看视频文件里面基本上是没有什么冗余信息的，所以人们就有必要去开发针对视频的压缩算法，把实际存在的冗余信息给去掉，从而减少它的数据量，达到减小占用容量的目的。因此，目前的视频编码基本上都是有损的，意味着编码过后的视频在画面质量上会有损失。</p><h2 id="前蓝光时代的视频编码发展之路"><a href="#前蓝光时代的视频编码发展之路" class="headerlink" title="前蓝光时代的视频编码发展之路"></a>前蓝光时代的视频编码发展之路</h2><p>让我们首先沿着国际标准，按时间顺序来看看视频编码是怎么一步一步“现代化”的。</p><p><img src="/images/S0_P2_Sullivan-3.png"></p><p>在模拟电视和胶片电影时代，我们看到的内容都是模拟信号还原出来的。但随着人们的需求不断提高，和计算机、网络的蓬勃发展，我们需要新的、能够承载视频内容的数字编码，用来支持视频内容在互联网上的传输，或是将其存储在数字化的存储设备中。</p><p>在上世纪七十年代末八十年代初的时候，人们已经研究出了不少新的针对图像等多媒体内容的压缩算法，此时开发数字视频编码的条件已经基本成熟，而第一个开发出实际编码的，就是后来在数字视频编码领域中起领头作用的视频编码专家组（<strong>V</strong>ideo <strong>C</strong>oding <strong>E</strong>xperts <strong>G</strong>roup），他们是当时名字还是“国际电报和电话咨询委员会（CCITT）”的ITU-T（国际电信联盟电信标准化部门）组织下面的专家组。这个编码被命名为H.120，它诞生于1984年，是一种偏向于实验性质的早期编码，主要基于差分PCM编码，用来保存电视内容，但是它并没有大规模的实际运用。</p><h3 id="H-261：引入各种特性，奠定现代视频编码基础"><a href="#H-261：引入各种特性，奠定现代视频编码基础" class="headerlink" title="H.261：引入各种特性，奠定现代视频编码基础"></a>H.261：引入各种特性，奠定现代视频编码基础</h3><p>在制定完H.120过后几年，VCEG并没有停止他们在视频编码上面的研究。此时很多跨国公司已经使用网络进行视频会议的需求了，在互联网带宽尚不充裕的年代里，人们需要新的视频编码来实现流畅而优质的实时视频通信，H.261就应运而生了。</p><p>H.261与首个数字视频编码标准H.120并没有直接的继承关系，它可以说是完全另起炉灶的一种编码。在针对图像的压缩算法上，H.261使用了我们现在比较熟悉的离散余弦变换（DCT）算法， 它在后来的JPEG编码中起主要作用。但不止于此，它引入了一系列针对视频的特性，奠定了现代视频编码的基础，其中主要有宏块（Macroblock）和基于宏块的运动补偿（Motion Compensation）。</p><h4 id="宏块与基于运动补偿的帧间预测"><a href="#宏块与基于运动补偿的帧间预测" class="headerlink" title="宏块与基于运动补偿的帧间预测"></a>宏块与基于运动补偿的帧间预测</h4><p>我们知道，视频是由一帧一帧的图像组成的组合，一般情况下一秒钟的视频中会包含24、25、30、60或更多张图片，它们按照一定的时间间隔播放出来，基于视觉残留原理形成了流畅、会动的画面。在连续的几帧之间，实际上存在着大量重复的画面，比如说下面这个例子：</p><p style="text-align:center;"><img src="/images/mc.jpg" />一个白色台球在绿色桌面上面运动</p><p><img src="/images/mc-vector.jpg"><br/>用小球运动的方向和距离来描述图像的变化</p><p>如果是以传统的思路对每一帧图像做压缩的话，显然整个视频在压缩过后仍存在大量的冗余。那么怎么办呢？H.261标准引入了宏块的思维，它将整个画面切分为许多小块，然后再引入基于运动补偿的帧间预测——画面的大部分都是不动的，那么我们将不动部分的区块沿用之前的压缩结果，动的部分用运动方向加距离这样一个矢量来描述不就可以节省出大量的存储空间了吗？</p><h4 id="DCT算法"><a href="#DCT算法" class="headerlink" title="DCT算法"></a>DCT算法</h4><p style="text-align:center;"><img src="/images/DCT-8x8.jpg" />将8x8个像素分成一个块</p><p><img src="/images/pixel-block.jpg"></p><p>DCT算法起源于上世纪70年代，到了80年代中后期，有研究者开始将其用于图像压缩。这种算法可以将图像从空间域转换到频率域，然后做量化——减少人眼敏感程度较低的高频信息，保留绝大部分低频信息，从而减少图像的体积。最后再用高效的数据编码方式将处理过后的数据进一步压缩，这里使用了Zig-Zag扫描和可变长编码。</p><blockquote><p>注：图像的高频部分存有很多细节信息，而低频部分则存有轮廓等覆盖范围较大的信息。</p></blockquote><p><img src="/images/DCT-pic.jpg"></p><p style="text-align:center;"><img src="/images/DCT-pic-2.jpg" />亮度通道做DCT变换后的图像，可以看到上方颜色连续部分非常平坦，而下方则拥有诸多细节</p><p>在H.261及之后基于H.261框架的视频编码中，DCT算法主要针对的是关键帧的压缩，所谓关键帧，就是在运动补偿中作为基准参考的一帧。打个比方，就像Flash动画中的关键帧一样，它定义了一个起点，后续的几帧都是基于这个关键帧演算出来的。因为它只做帧内压缩，不涉及其他帧，又被称为Intra-frame（帧内编码帧），简称I帧。</p><h4 id="小结：创立混合编码框架，有里程碑意义"><a href="#小结：创立混合编码框架，有里程碑意义" class="headerlink" title="小结：创立混合编码框架，有里程碑意义"></a>小结：创立混合编码框架，有里程碑意义</h4><p>H.261设计的目标是编码出比特率在64~2048kbps范围内的视频，以用于实时的视频电话等应用。它首次确立了帧内预测与帧间预测同时使用的编码框架，在消除每一帧本身存有的冗余外，消除了帧与帧之间的冗余信息，从而大幅度降低了码率，成为了实际可用性相当高的一种视频编码。而它的编码框架也影响到了之后几乎所有的视频编码，尤其是H.26x和MPEG家族。</p><blockquote><p>需要说明的是，H.261只是规定了该如何解码，只需要编码器最终产生的视频流可以被所有H.261解码器顺利解码即可。至于你前面怎么编码的，具体用的算法如何不同都没有关系，这点适用于之后几乎所有的视频编码。</p></blockquote><h3 id="MPEG-1-Part-2：引入帧类型概念，成为VCD标准"><a href="#MPEG-1-Part-2：引入帧类型概念，成为VCD标准" class="headerlink" title="MPEG-1 Part 2：引入帧类型概念，成为VCD标准"></a>MPEG-1 Part 2：引入帧类型概念，成为VCD标准</h3><p>几乎在H.261开发的同时间，1988年，ISO和IEC两大国际标准化组织建立了MPEG（动态图像专家组，<strong>M</strong>oving <strong>P</strong>icture <strong>E</strong>xperts <strong>G</strong>roup）以开发国际标准化的音视频压缩编码。他们在1992年11月份完成了MPEG-1整套标准的制定，其中的第二部分标准化了一个新的视频压缩编码，它受到H.261的深刻影响，继承和发展了分块、运动补偿、DCT算法等思想，并做出了自己的改进，比如引入新的双向预测帧、亚像素精度的运动补偿等新技术。</p><h4 id="引入双向预测帧（B帧）"><a href="#引入双向预测帧（B帧）" class="headerlink" title="引入双向预测帧（B帧）"></a>引入双向预测帧（B帧）</h4><p>H.261引入基于运动补偿的帧间预测算法之后，视频中的帧其实就已经分成两类了，一类是完整的，称为关键帧（Intra-frame），它就是一张完整的静态图像，可以直接被解码出来。另外的帧则是通过运动补偿算法在关键帧之上计算得到的。</p><p><img src="/images/image-20200313120744255.png"></p><p>MPEG-1 Part 2引入了帧类别的概念，原来的关键帧被称为“I帧”，基于帧间预测计算得到的帧为P帧。在这两种H.261已有的帧类型外，它引入了一种新的帧：双向预测帧，也叫作B帧。</p><p><img src="/images/B-frame.png"></p><p>原本的P帧只能够前向预测，也就是说，它只能够基于前一帧计算得到。双向预测，顾名思义，它可以用前面的一帧作为自己的参考，也可以用后面那帧来进行预测。由于参考了更多的信息，B帧自身就可以包含更少的信息量，其压缩比自然就要比只能做单向预测的P帧还要高了。但是，B帧的引入带来了一个新的问题，即编解码难度上升了。</p><h4 id="引入帧序列（Group-of-Pictures）"><a href="#引入帧序列（Group-of-Pictures）" class="headerlink" title="引入帧序列（Group of Pictures）"></a>引入帧序列（<strong>G</strong>roup <strong>o</strong>f <strong>P</strong>ictures）</h4><p>帧序列是一些按顺序排列的图像帧的组合，简称为GOP。一个GOP的头部是一个I帧，也只会有一个I帧，它包含了该GOP的基准参考图像信息，其后是数个P帧、B帧，它们都是以开头的I帧为基础，经过计算得到的。</p><p><img src="/images/GOP.png"></p><p>上面的图片就描述了一个完整的GOP，可以看到一个I和P帧之间隔了三个B帧。实际应用中，B帧确实是数量最多的帧类型。</p><p><img src="/images/Snipaste_2019-10-18_21-59-14.jpg"></p><h4 id="亚像素精度的运动补偿"><a href="#亚像素精度的运动补偿" class="headerlink" title="亚像素精度的运动补偿"></a>亚像素精度的运动补偿</h4><p>H.261中引入的帧间预测精度为像素级的，对很多分块的运动瞄准是不精确的，这点在MPEG-1上得到了有效改进。他们引入了亚像素级别的运动补偿，可以以1/2像素级别描述像素块的运动。</p><p><img src="/images/sub-pixel.png"></p><h4 id="小结：成功接棒"><a href="#小结：成功接棒" class="headerlink" title="小结：成功接棒"></a>小结：成功接棒</h4><p>MPEG-1成功地继承了H.261的技术框架，并对其进行了有效的补充，从而达成了不错的压缩比。在那个人们普遍还在用VHS录像带的年代里，MPEG-1已经能够以1~2Mbps的码率提供类似于VHS录像带的画质了。这也使得它被选用为VCD的标准，在世界范围，尤其是在我国风行十余年。</p><p>不过MPEG-1主要面向低码率应用，但实际上它在高码率下的表现也不差，于是，MPEG很快推出了它的升级版本，也就是MPEG-2。</p><h3 id="MPEG-2-Part-2-H-262：DVD与（前）数字电视标准"><a href="#MPEG-2-Part-2-H-262：DVD与（前）数字电视标准" class="headerlink" title="MPEG-2 Part 2/H.262：DVD与（前）数字电视标准"></a>MPEG-2 Part 2/H.262：DVD与（前）数字电视标准</h3><p>1994年推出的MPEG-2中标准化了一种新的视频编码，它在1995年被ITU-T接纳为H.262，在这里我们简单称它为MPEG-2。相对于1993年推出的MPEG-1，它并没有太大的改动，主要是针对DVD应用和数字时代进行了改良。</p><h5 id="支持隔行扫描"><a href="#支持隔行扫描" class="headerlink" title="支持隔行扫描"></a>支持隔行扫描</h5><p>隔行扫描放在今天也并不是过时的概念，在九十年代初期，这种扫描方式有效降低了视频传输所需的数据带宽。平常我们看到的视频画面大部分都是逐行扫描（Progressive scan）的，比如说视频的垂直分辨率为1080像素，那么每帧画面的垂直分辨率就是1080像素。</p><p>而隔行扫描，顾名思义就是隔一行扫一次，它将每一帧画面拆分成两个场，每个场保留原有帧一半的信息。这种扫描方式在保证画面流畅度的同时降低了对传输带宽的需求，被各国的电视广播系统采纳使用。MPEG-2在制定时充分考虑到了数字电视系统的需求，加入了对隔行扫描的支持。</p><h4 id="面向高码率和标清、高清晰度"><a href="#面向高码率和标清、高清晰度" class="headerlink" title="面向高码率和标清、高清晰度"></a>面向高码率和标清、高清晰度</h4><p>从上世纪90年代开始，数字电视系统逐渐开始普及，它带来了更大的传输带宽。同时，DVD标准也快要尘埃落定，它提供了比CD大几倍的容量，能够承载更为清晰的画面。因此，MPEG-2提升了自己的目标码率范围，从MPEG-1时代的1<del>2Mbps实际豪爽地倍增到6</del>10Mbps，甚至在高清时代，它能够用20Mbps左右的码率传输高清画面。</p><h4 id="小结：曾经最为通用的视频编码"><a href="#小结：曾经最为通用的视频编码" class="headerlink" title="小结：曾经最为通用的视频编码"></a>小结：曾经最为通用的视频编码</h4><p>MPEG-2虽然没有加入太多新的特性，在压缩率方面实际没有太大的提升，但由于它被选中成为DVD-Video、数字电视、DV等等一系列应用的标准编码，顺利地成为了世界范围内通行的视频编码格式，时至今日，它仍然被大量地应用在数字电视等系统中。</p><h3 id="H-263：FLV与3GP的好搭档"><a href="#H-263：FLV与3GP的好搭档" class="headerlink" title="H.263：FLV与3GP的好搭档"></a>H.263：FLV与3GP的好搭档</h3><p>原先的H.261和MPEG-1都是偏向于低码率应用的，随着互联网和通讯技术的飞速发展，人们对网络视频的需求在提高，在低码率下追求更高质量的视频成为了新的目标，而作为通信业的一大标准制定者，ITU-T在1995年推出了H.261的直接继承者——H.263。</p><p>H.263有多个版本，在1995年推出的初版中，它主要引入了在MPEG-1上开始应用的亚像素精度运动补偿，同样支持到1/2像素的精度。另外它改进了使用的DCT算法，加入了新的运动向量中值预测法，在编码效率上相比H.261有较为明显的提升。</p><p>需要注意的是，以上特性仅仅是它的基础部分，只需要实现这些新东西就算是支持H.263了，但它还给出了一系列额外的、用于增强压缩率的特性，比如说，在MPEG-1中新增的B帧，到了H.263中成了额外的PB帧。</p><p>H.263是一个被不断升级的编码，在初版之后还存在H.263+和H.263++两个官方升级版。在H.263+中，它着重提升了压缩率，相对初版有15~25%的总体提升。同时在2001年的修订中，它还引入了“Profile”的概念，将各种特性分成几个级别，完整支持某一级别的特性即为支持此Profile，比如说，初版H.263的基础部分是它的“Baseline”Profile。</p><p>H.263在互联网和通信业中得到了广泛的应用，它一度活跃在各种视频网站上面，和Flash播放器一起撑起了互联网在线视频的一片天，而在通信业中，被3GPP组织采纳成为多种通信标准中的标准视频编码，比如说MMS——也就是彩信。</p><p>另外它还被MPEG组织参考，作为MPEG-4 Part 2的基础。</p><h3 id="MPEG-4-Part-2：特性很多，实现很多"><a href="#MPEG-4-Part-2：特性很多，实现很多" class="headerlink" title="MPEG-4 Part 2：特性很多，实现很多"></a>MPEG-4 Part 2：特性很多，实现很多</h3><p>在MPEG-2之后，MPEG组织有了新的目标——开发一套压缩率更高的编码框架，但同时保留对低复杂性的支持。1998年，MPEG-4标准正式诞生，其中第二部分定义了一套新的视觉编码体系，是的，它并不是仅仅针对于视频应用，而是广泛意义上的视觉（Visual），故也被称为MPEG-4 “Visual”。</p><p>它的核心设计实际上与H.263趋同，但是包含了更多关于编码效率的增强。它定义了复杂度不同的多种Profile，从最基本的Simple Profile到非常复杂的Simple Studio Profile，前者不支持B帧，而后者甚至支持到4K分辨率和12-bit、4:4:4采样的编码。</p><p>尽管MPEG-4 Visual是一个野心勃勃的编码，但它遭到了业界的冷待和批评。一个是它的压缩率相比起MPEG-2并没有重大提升，而因为授权和专利费用问题，很多厂商选择自己去实现一套兼容MP EG-4 Visual的编码，而不是直接采用标准，这其中就有经典的DivX和Xvid两兄弟，微软也拿它作为Windows Media Video的基础，一点点升级到WMV9。</p><h3 id="其他编码"><a href="#其他编码" class="headerlink" title="其他编码"></a>其他编码</h3><p>时间已经来到二十一世纪，高清视频和高清电视开始普及，新的应用带来了更高的需求，迫使业界开始研究新的更高效的视频编码，我们熟知的AVC即将登场，不过在介绍它之前，我们先来看看其他几个有较多应用的视频编码。</p><h4 id="MJPEG"><a href="#MJPEG" class="headerlink" title="MJPEG"></a>MJPEG</h4><p>JPEG想必大家都很熟悉，这个MJPEG跟JPEG之间有着千丝万缕的关系。视频不是一帧一帧的吗？那每一帧都用JPEG进行压缩，然后组合起来不就行了吗？是的，MJPEG就是一个JPEG图像组合，每一帧包含了完整的图像信息，正因为如此，它的压缩率并不高，但是实现起来简单的特点让很多数码相机厂商将它作为相机的视频编码，实际上它得到了相当广泛的利用。</p><h4 id="RealMedia"><a href="#RealMedia" class="headerlink" title="RealMedia"></a>RealMedia</h4><p>对于国人来说，RealMedia绝对是一个带有情怀的词语。他们家的RM系列编码在十多年前在国内网络上曾有相当的覆盖度。实际上它的实现基本上都是参考同时期的国际标准而来的，比如说清晰度和压缩比都很高，压过同时期DivX一头的rv40是参考了H.264而形成的。</p><p>RM最大的问题还是支持范围不广，在浏览器中播放RM需要插件，基于Flash播放器的视频网站的兴起也让它的用途逐渐变得狭隘，最终在正版H.264的冲击下，RM慢慢的销声匿迹了。</p><h4 id="WMV"><a href="#WMV" class="headerlink" title="WMV"></a>WMV</h4><p>微软有自己的客厅梦想，除了Xbox以外，他们想让PC走进客厅，当然这都与Windows Media Video无关。微软基于MPEG-4 Part 2创造出了一系列新的编码，起初它们都被称为Microsoft MPEG-4或是Microsoft ISO MPEG-4，但很快，微软将其归入了Windows Media家族，首个版本是WMV7。</p><p>接下来微软在WMV7的基础上面不断加入自家的东西，使得它能够适应更高分辨率的视频，最后，他们在WMV9中加入了新的Profile，产生了新的VC-1编码。</p><h2 id="蓝光时代标准之争"><a href="#蓝光时代标准之争" class="headerlink" title="蓝光时代标准之争"></a>蓝光时代标准之争</h2><p>在DVD普及之后，高清视频的时代很快就到来了。人们很快发现，就算是双层DVD，其容量对1080p视频来说，也是完全不够用的。很快，大公司开发出了两种新的以蓝光为激光束的光盘，一种是以DVD论坛为首开发的HD DVD，另一种是Sony牵头另起炉灶的Blu-ray。两种光盘格式的战争我们按下不表，这里要讲的是，伴随着新光盘制式一起出现的全新视频编码标准——VC-1和H.264。</p><h3 id="AVC-H-264：集大成者一统江湖"><a href="#AVC-H-264：集大成者一统江湖" class="headerlink" title="AVC/H.264：集大成者一统江湖"></a>AVC/H.264：集大成者一统江湖</h3><p>HD DVD和Blu-ray的标准里一共支持了三种视频编码，其一是古老的MPEG-2，其二是微软主推的VC-1，最后一种就是全新的AVC。别看它的名字很简单，其实它大有来头，是MPEG和ITU-T两个组织联合推出的新一代国际标准，在MPEG那儿被规范为MPEG-4 Part 10 Advanced Video Codec，在ITU-R那儿它又被标准化为H.264。</p><p>对于H.264这个名字，我想大家应该都不会耳熟。但就是这个现在我们每天都能够接触到的视频编码格式，曾在十多年前引发了一场软解危机，将当时很多主流CPU挑落马下，也使得ANI三家都在自己的产品中加入了辅助解码的硬件加速单元，不过这与我们的主题没什么关系，暂且按下不表。这里要讲的，还是H.264的厉害之处，究竟它用了什么手段能够在编码质量上面实现飞跃，从而独占市场十余年时间还没呈现衰退迹象。</p><p>总结下来主要有如下的几点：更灵活的宏块划分方法、数量更多的参考帧、更先进的帧内预测和压缩比更高的数据压缩算法。</p><h4 id="更灵活的宏块划分方法"><a href="#更灵活的宏块划分方法" class="headerlink" title="更灵活的宏块划分方法"></a>更灵活的宏块划分方法</h4><p>之前的标准中，宏块的划分方法是固定的，以16x16个像素为一个宏块。不过在新时代，这种粗放的划分方法不够灵活，于是H.264同时允许16x8、8x16、8x8、8x4、4x8和4x4这些精细度更高的划分方式。同时H.264将亚像素精度的运动补偿描述从1/2像素精度细化到了1/4的程度。这样一来，在帧间预测中新的编码拥有更高的精准度，但实际的数据量并不会增加太多，提高了压缩率。</p><p><img src="/images/H.264_block_division.svg.png"></p><h4 id="数量更多的参考帧"><a href="#数量更多的参考帧" class="headerlink" title="数量更多的参考帧"></a>数量更多的参考帧</h4><p>在以前的标准中，每个B或P帧可参考的帧数是有限且数量过少的，H.264一举将限制放松到了16帧的程度，在大部分应用场景中，每帧的可参考帧数量至少都有4~5个，而在之前的标准中，P帧仅能参考1帧，B帧则是2。这一特性可以提高大多数场景的画面质量，或是降低体积。</p><h4 id="更先进的帧内压缩"><a href="#更先进的帧内压缩" class="headerlink" title="更先进的帧内压缩"></a>更先进的帧内压缩</h4><p style="text-align:center;"><img src="/images/intra-pred-1.jpg" />每个宏块包含的预测模式信息</p><p>对于I帧，H.264也引入了新的压缩方式。一般来说，对于图像中的某一像素点，它与附近相邻的像素的颜色是差距不大的，所以我们就可以利用这个特性进一步缩小单帧图像的大小，怎么利用呢？H.264将单个宏块内的像素颜色变化规律规范成了公式，编码时只要写此处应用哪个公式就行了。当然这里我表述的较为简单，完整的帧内预测还是非常复杂的，H.264对4x4的宏块规定了9种预测模式，对16x16的亮度平面宏块规定了4种可用模式。大大减少了单帧图像的数据量，同时保持了很高的图像质量。</p><p style="text-align:center;"><img src="/images/intra-pred.jpg" />差分图像加上预测信息可以还原出原始图像</p><h4 id="CABAC"><a href="#CABAC" class="headerlink" title="CABAC"></a>CABAC</h4><p>在编码的最后阶段，对数据进行无损压缩时，H.264除了支持在H.261中就存在的VLC编码外，新增加了两种无损数据压缩编码，一种是VLC的升级版——CAVLC，另一种是复杂程度更高的CABAC（前文参考之适应性二元算术编码，<strong>C</strong>ontext-based <strong>A</strong>daptive <strong>B</strong>inary <strong>A</strong>rithmetic <strong>C</strong>oding）。</p><p><img src="/images/CABAC.jpg"></p><p>CABAC也是一种熵编码，主要原理也是用长编码替换掉出现频率少的数据，而用短编码替换出现频率高的数据，但它引入了更多统计学优化，并且具有动态适应能力。虽然在解码时需要更多计算，但它能够比CAVLC节省更多的数据量，通常能有10%。</p><h4 id="小结：巨大的改变带来的是巨大的成功"><a href="#小结：巨大的改变带来的是巨大的成功" class="headerlink" title="小结：巨大的改变带来的是巨大的成功"></a>小结：巨大的改变带来的是巨大的成功</h4><p>除了以上介绍的几点外，H.264还有非常多的新特性，与MPEG-4 Visual不同的是，这些新特性有效地帮助H.264在节省容量方面取得了重大进展。这里我举一个有强烈对比的例子，DVD Video标准的视频，采用的是MPEG-2编码，码率约在9Mbps左右，但它的分辨率仅为720x480，而且在某些场景下我们可以很明显看到有损压缩产生的破坏；而同样的码率，放在H.264上面，已经可以承载起1080p的视频，并且拥有良好的质量。</p><p>除了在编码效率上有重大提升外，H.264针对网络传输的特性对编码组织方式进行了优化，让它更能够抗丢包，抗干扰。在种种手段之下，它成为了近十年来统治视频领域的编码，并且可以说它已经成为了HTML 5中的事实标准，现在你很难看到一件不支持H.264编码的设备，从手机到摄像机，从流视频到蓝光光盘，它的应用范围广，效能强，即使在新编码已经出现的当下，它仍然有很强的生命力和不可替代性，可以预见的是，H.264将在未来一段时间内继续统治视频编码领域。</p><h3 id="VC-1：失败的挑战者"><a href="#VC-1：失败的挑战者" class="headerlink" title="VC-1：失败的挑战者"></a>VC-1：失败的挑战者</h3><p>进入高清时代后，微软也顺应潮流，为WMV9进行了升级，加入了针对高清视频的新特性，让它能够胜任1080p级别的高清视频，新的编码即为VC-1。与H.264相比，VC-1总体的复杂程度要低一些，也因此在软解上对CPU更加友好。实际上VC-1也通过了国际组织SMPTE的标准化。</p><p>VC-1与HD DVD有一定的捆绑关系，在蓝光大战初期也通过这种方式得到了一定的推广。然而，随着HD DVD阵营的认输，VC-1也随之销声匿迹，很难再看到了。</p><h2 id="UHD与流媒体时代，新的编码兴起"><a href="#UHD与流媒体时代，新的编码兴起" class="headerlink" title="UHD与流媒体时代，新的编码兴起"></a>UHD与流媒体时代，新的编码兴起</h2><p>H.264很强大，但是它在超清时代有点不够用了。随着视频分辨率的跨越式提升，H.264表现出了疲态，它在应对4K视频时已经没有办法提供很好的压缩比了。很明显，人们需要新的编码来继承它的位置，而它的直接继承者——HEVC，在经过多年研究之后，终于在2013年被通过了。</p><h3 id="HEVC-H-265-MPEG-H-Part-2：视频编码王位继任者"><a href="#HEVC-H-265-MPEG-H-Part-2：视频编码王位继任者" class="headerlink" title="HEVC/H.265/MPEG-H Part 2：视频编码王位继任者"></a>HEVC/H.265/MPEG-H Part 2：视频编码王位继任者</h3><p>HEVC，全称高效视频编码（<strong>H</strong>igh <strong>E</strong>fficiency <strong>V</strong>ideo <strong>C</strong>oding），同样的，它也是由MPEG和ITU-T联合制定的国际标准编码。被包含在MPEG-H规范中，是为第二部分（Part 2），在ITU-T那儿，它是H.26x家族的新成员，为H.265。</p><p>HEVC主要是针对高清及超清分辨率视频而开发的，相比起前代AVC，它在低码率时拥有更好的画质表现，同时在面对高分辨率视频时，也能提供超高的压缩比，帮助4K视频塞入蓝光光盘。</p><h4 id="代替宏块的编码树单元"><a href="#代替宏块的编码树单元" class="headerlink" title="代替宏块的编码树单元"></a>代替宏块的编码树单元</h4><p>HEVC引入了新的编码树单元（<strong>C</strong>oding <strong>T</strong>ree <strong>U</strong>nits）概念，取代掉了存在于视频编码中多年的宏块概念，它的单块面积大了许多，达到了64x64，但仍然保留了可变大小和可分割特性，最小单元为16x16。单个编码树中包含了小的编码单元，它们可以由四分树形式呈现，并很快地可以确定下其中的单元是否可被再分割，内部编码单元最小可以被分割为8x8大小，精细程度仍然是非常高的。</p><p>单个编码单元也可以继续被切割、分类，可以成为预测单元（Prediction Units），后者可以指示该单元的预测形式，是画面内预测还是画面间预测或者甚至是根本没有变化、可以被跳过的单元；也可以成为转换单元（Transform Units），它可以做DCT转换或是量化。</p><p>编码树单元的引入让HEVC既可以用大面积单元来提高编码效率，也可在需要的时候细化，保留更精细的细节。所谓该粗略的地方就粗略，该精细的地方就精细，HEVC在它的帮助下让码流的效率更高。</p><h4 id="更高效的DCT"><a href="#更高效的DCT" class="headerlink" title="更高效的DCT"></a>更高效的DCT</h4><p>既然分块的最大面积大了，那么DCT算法也需要跟上才行，HEVC将DCT算法的最大尺寸扩大到了32x32的地步，对于图像中变化较为平坦的部分，它有着更高的压缩率。</p><h4 id="33种帧内预测方向"><a href="#33种帧内预测方向" class="headerlink" title="33种帧内预测方向"></a>33种帧内预测方向</h4><p><img src="/images/HEVC_angular_intra_prediction_modes.png"></p><p>还记得上面写到H.264为4x4宏块引入了9种帧内预测方向吗？HEVC直接把这个数字提升到了33种，在静态图像的压制上不仅实现了更高的效率，也实现了更高的精度，这也是它成功杀入静态图像编码市场的一大利器。虽然编码难度变高了，但只要用硬件编码器就没有那么多问题。</p><h4 id="小结：高效编码，但受困于高额专利费用"><a href="#小结：高效编码，但受困于高额专利费用" class="headerlink" title="小结：高效编码，但受困于高额专利费用"></a>小结：高效编码，但受困于高额专利费用</h4><p>相较于AVC，HEVC在高分辨率下的编码效率又有非常大的提升，举个实例，同样一段4K视频，使用H.264编码的大小可能会比使用HEVC大出个一倍。这种巨大的进步幅度也使得Blu-ray直接用它作为标准编码，推出了UHD BD，而它在单帧图像压缩上面的改进也让它拥有胜过JPEG的能力，于是我们看到在移动端，越来越多的设备选择将其作为默认的视频、照片输出编码。</p><p>但是相比起AVC，HEVC的推广速度慢了很多，一个是它的编解码难度比H.264高了太多，但这点通过各路硬件编码器和软件优化逐渐化解掉了，目前常见的设备基本上支持HEVC的硬件编解码；第二个就是HEVC高昂的专利费用问题，它并不是一个免费的编码格式，虽然个人使用它完全没有问题，但对于想要兼容它的厂商来说，这笔高昂的专利费用足以让他们却步，尤其是崇尚自由开放的互联网市场。于是，我们看到众多厂商选择了免费开放的VPx系列编码，以及系列的后继者——AV1。</p><h3 id="VPx系列与AV1：以免费为卖点"><a href="#VPx系列与AV1：以免费为卖点" class="headerlink" title="VPx系列与AV1：以免费为卖点"></a>VPx系列与AV1：以免费为卖点</h3><p>VPx系列编码实际上已经有很长的历史了。它的前身是On2 Technologies公司的TrueMotion系列视频编码，在开发TrueMotion VP8编码时，公司被Google收购了。在Google的介入下，VP8从原本的专有技术变成了开放技术，在BSD许可证下面进行开源。</p><p>从技术角度来说，VP8采用的技术是类似于H.264的。虽然在我们看到的宣传中，VP8拥有比H.264更佳的压缩效率，但在实际应用中，由于它在设计上有一定的瑕疵，表现并不如H.264，最终它虽然进入了Web标准，但也没见有人用它，反而是由它的帧内压缩技术提取而成的WebP受到了欢迎。</p><p>VP8的表现并不理想，Google很快就推出了它的继任者——VP9。这次，他们参考的是HEVC，设计目标同样是高分辨率下的高效编码。VP9中的一些设计是受到了HEVC的影响的，比如说同样最大为64x64的超级块（Super Block）。最终VP9达成的结果是提供了比VP8高达50%的效率提升。看起来它能够和HEVC比肩了，但是它也遇到了和VP8相似的问题，推广不开。VP9的应用范围实际也局限在Google自家的Youtube中，只能说是缺少实际应用场景。</p><p>但很快，一些厂商认识到HEVC高昂专利费用带来的弊端，他们决定创立一个开放联盟，推广开放、免费的媒体编码标准。这个联盟就是开放媒体联盟（<strong>A</strong>lliance for <strong>O</strong>pen <strong>M</strong>edia），创始成员有Amazon、Cisco、Google、Intel、Microsoft、Mozilla和Netflix这些我们熟悉的大公司，而后加入的还有苹果、ARM、三星、NVIDIA、AMD这些同样耳熟能详的公司。</p><p>Google将他们还在开发中的VP10贡献了出来作为联盟新编码的基础，很快，名为AV1的编码诞生了。在Facebook的测试中，它分别比VP9和H.264强上34%、46.2%，这次看上去是真的达到HEVC的级别了。</p><p>在这两年中，AV1也确实开始得到厂商们的重视，比如说最近Netflix已经确定了要使用AV1作为主力编码，而Intel也推出了开源免费的SVT-AV1编码器，充分利用自家的AVX-512指令集。但是这种联盟还是相当松散的，比如说联盟成员之一的苹果，目前对AV1根本是无动于衷，旗下设备中全部转向HEVC。</p><p>不过从Netflix决定使用AV1作为主力编码这种态度来看，AV1免费、开放的特性还是具有相当的吸引力的。但目前在硬件方面是缺乏对它的支持的，不仅是PC端没有针对AV1做硬件解码，数量更多的移动设备也没有适配，前不久刚有一款宣传是首个加入对AV1硬件解码的SoC才发布。对比起硬件支持较为齐全的HEVC，这将是AV1推广之路上的一道槛。</p><h3 id="未来编码：VVC"><a href="#未来编码：VVC" class="headerlink" title="未来编码：VVC"></a>未来编码：VVC</h3><p>目前MPEG和VCEG已经开始研究HEVC的继任者了，目前我们知道的信息是，它暂时被命名为Versatile Video Coding（多才多艺视频编码），并将会成为H.266。它是面向于未来视频的编码，将会支持从4K到16K分辨率的视频压缩，并且支持360°视频，它的目标是在HEVC的基础上将编码效能提升一倍。</p><p>未来它可能加入的新特性有：更为复杂的编码单元结构；更大、更细致的区块划分；全局帧参考；更多的帧内预测模式（目前已经有65种）……在复杂度上面，相比HEVC，VVC将会直接高出一个维度。但是国际标准目前面对着以AV1为代表的开放标准的挑战，很难说他们会不会取消掉部分特性，从而将它正式发布的时间给提前。</p><h2 id="总结：与时俱进"><a href="#总结：与时俱进" class="headerlink" title="总结：与时俱进"></a>总结：与时俱进</h2><p>显示器、电视的分辨率越来越高，网络带宽越来越大，设备对于多媒体内容的处理能力越来越强，视频编码也一直随着时代的变化而不断进步着，但是它的框架从H.261开始就未曾有过重大的变化，只不过每个新编码都在这个既定框架下利用半导体性能的成长而加入新的更为高效的算法。比起进步并不明显的音频编码，新视频编码在带宽与容量上面提供的节约效果要明显得多了，甚至更新的编码在画质表现上也更有优势。在不远的未来，10-bit色深和HDR将会普及，在根本上取代掉还是上世纪标准的SDR内容，为我们带来更为精彩的视觉体验。诸如HEVC这样的编码实际早已做好了准备，在未来，它们的应用场景甚至将突破视频领域，就以新的苹果设备为例，HEVC实际已经成为它的标准编码格式，通行于图像和视频领域中。</p><p>另外，根据最新的报告，当前互联网流量中占大头的就是视频流量，随着流媒体继续深入日常生活，用于视频传输的流量只会更大，而互联网的总体带宽并不是可以无限提升的，对于内容提供方来说，流量费用也是相当一部分开销，压缩效率更好的编码自然也会受到他们的青睐。实际上，编码不断升级这件事情是双赢的，用户和内容提供方都可以从中获利。</p><p>由于时间与作者个人能力限制，本篇文章也存在诸多的不足，但我仍然想通过对这些编码的概述让更多人了解到正确的编码知识，如果能够起到抛砖引玉的作用，让更多人对编码产生兴趣，开始自己的研究，那是最好不过的事情了。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;大家久等了，这是多媒体文件格式系列课堂文章的第三篇，前面已经讲过了容器与音频编码，现在我们要看到最为复杂的视频编码了，人们一直在想尽办法提高视频编码的效率，让它在尽可能小的体积内提供最好的画面质量，从而满足人们对于视频传输、存储的需求。和前两篇文章中介绍的容器与音频编码不同
      
    
    </summary>
    
    
    
      <category term="Tutorial" scheme="https://blog.xinoassassin.me/tags/Tutorial/"/>
    
  </entry>
  
  <entry>
    <title>从硬件编辑的角度解读Xbox Series X的规格</title>
    <link href="https://blog.xinoassassin.me/2020/03/xbox-series-x-explained/"/>
    <id>https://blog.xinoassassin.me/2020/03/xbox-series-x-explained/</id>
    <published>2020-03-01T08:34:31.000Z</published>
    <updated>2021-08-21T16:41:09.372Z</updated>
    
    <content type="html"><![CDATA[<h1 id="从硬件编辑的角度解读Xbox-Series-X的规格"><a href="#从硬件编辑的角度解读Xbox-Series-X的规格" class="headerlink" title="从硬件编辑的角度解读Xbox Series X的规格"></a>从硬件编辑的角度解读Xbox Series X的规格</h1><p>在对外正式公开Xbox Series X这台主机74天之后，2月25日，Phil Spencer用一篇新的<a href="https://news.xbox.com/en-us/2020/02/24/what-you-can-expect-next-generation-gaming/">博文</a>对外公布了这台次世代主机身上更多的细节，想必各位或多或少已经读过<a href="https://www.gcores.com/articles/120661">新闻</a>了。不过普通玩家可能会对文章里面的很多名词感到陌生，什么Zen 2、RDNA 2、VRS……可能只看懂这台主机被吹上天了。本文就对这些名词简单进行一番介绍，顺便带出笔者作为一个硬件媒体编辑，对于这台主机的一些个人看法。让我们顺着Phil Spencer的文章脉络，一点一点来看。</p><h1 id="硬件部分：Zen-2、RDNA-2、VRS、光追的简介"><a href="#硬件部分：Zen-2、RDNA-2、VRS、光追的简介" class="headerlink" title="硬件部分：Zen 2、RDNA 2、VRS、光追的简介"></a>硬件部分：Zen 2、RDNA 2、VRS、光追的简介</h1><p>Phil Spencer首先介绍的是Xbox Series X使用的处理器——下一代定制处理器（Next Generation Custom Processor）。这枚处理器比今年CES展会上AMD发布的Ryzen 4000系列APU还要新，Phil Spencer其实早就已经剧透了这枚芯片的模样，在1月头上的时候，他把自己的Twitter头像给改成了这枚芯片的照片。</p><p><img src="/images/dO7wSpcd_400x400.jpg"></p><p>Xbox Series X上面使用的这枚“下一代定制处理器”中集成了CPU和GPU，CPU部分是这半年来PC市场上表现得非常好的Zen 2处理器，而GPU部分则是基于尚未公布技术细节的RDNA 2架构。那么这块芯片究竟有多强呢？</p><h2 id="CPU：基于Zen-2，相对本世代主机有巨大提升"><a href="#CPU：基于Zen-2，相对本世代主机有巨大提升" class="headerlink" title="CPU：基于Zen 2，相对本世代主机有巨大提升"></a>CPU：基于Zen 2，相对本世代主机有巨大提升</h2><p><img src="/images/Zen_2_Logo.jpg"></p><p>首先来看CPU部分，也就是Zen 2处理器。它是AMD近年来的最大翻身之作，在拥有相同核心数、相同频率的情况下它的综合性能已经可以比肩Intel最新一代的酷睿桌面版处理器（比如说，Ryzen 7 3700X的综合性能压了同为八核的i7-9700K一头，比i9-9900K稍弱），而它在玩家更看重的游戏性能方面也表现得相当优秀，基本上已经有对手90％的功力了。对比本世代主机上面那颗羸弱的Jaguar APU，那提升幅度只能用巨大来形容，原本CPU方面存在的严重短板将不复存在。</p><h2 id="GPU：基于RDNA-2，性能可能约在RTX-2080与RTX-2080-SUPER之间"><a href="#GPU：基于RDNA-2，性能可能约在RTX-2080与RTX-2080-SUPER之间" class="headerlink" title="GPU：基于RDNA 2，性能可能约在RTX 2080与RTX 2080 SUPER之间"></a>GPU：基于RDNA 2，性能可能约在RTX 2080与RTX 2080 SUPER之间</h2><p>然后来看对于游戏更为重要的GPU。这里Phil Spencer给出了一个具体的数字——12 TFLOPS，这个数字代表的是GPU的单精度浮点运算能力，经常性被用来当作GPU的主要性能指标。但我们并不能单单看这个指标就说新主机的GPU性能会是Xbox One X的两倍，因为它只是一个理论值，实际性能还得看架构，而新主机的GPU架构恰恰就有着巨大的改变。RDNA架构是AMD完全重新打造的显卡架构，在游戏图形效能上面较沿用约八年的GCN架构有很大的提升。比如说，理论单精度性能比RX 580显卡（基于GCN 4.0架构，就是PS4 Pro和Xbox One X上的GPU架构）低1 TFLOPS的RX 5500 XT（基于RDNA架构），其实际游戏性能反而要比前者强。（对于RDNA与GCN架构的实际表现差异，Digital Foundry做过一期视频，有兴趣的可以去看一下：《<a href="https://www.youtube.com/watch?v=fzPo7gu-fTw">Navi RDNA vs GCN 1.0: Last-Gen vs Next-Gen GPU Tech Head-To-Head!</a>》）</p><p style="text-align:center;"><img src="/images/PS5_XboxSeriesX_Specs-5.jpg" width="100%" />Digital Foundry推测中的Xbox Series X GPU规格</p><p>比较凑巧的是，此前的泄漏显示Xbox Series X的GPU将会集成56组计算单元（CU），Digital Foundry对这枚GPU的单精度浮点性能推算结果正好是12 TFLOPS，所以现在我们可以假设这枚GPU拥有56组CU，那么对比拥有40组CU的Radeon RX 5700 XT（目前RDNA架构的旗舰显卡），它的计算单元规模大了40％，这将会带来显著的性能提升。</p><p>因此我们有理由认为Xbox Series X上面的显卡将会比Radeon RX 5700 XT强上不止一个档次。如果放在PC市场来看，RX 5700 XT跟NVIDIA GeForce RTX 2070 SUPER差上半档左右，也就是说，如果不算上RDNA 2架构可能带来的效率提升，Xbox Series X的GPU性能可能会处于RTX 2080到RTX 2080 SUPER之间，这是笔者的保守估计。</p><h2 id="RDNA-2带来的VRS和光线追踪支持"><a href="#RDNA-2带来的VRS和光线追踪支持" class="headerlink" title="RDNA 2带来的VRS和光线追踪支持"></a>RDNA 2带来的VRS和光线追踪支持</h2><p>新的图形架构带来的不单单是性能方面的提升，在功能性上也终于追上了这个时代，加入了VRS（<strong>V</strong>ariable <strong>R</strong>ate <strong>S</strong>hading，可变速率着色）和光线追踪的支持。对于后者，我们见到了它在游戏中的实际表现，而VRS是什么东西呢？</p><h3 id="可变速率着色"><a href="#可变速率着色" class="headerlink" title="可变速率着色"></a>可变速率着色</h3><p>VRS的原理是通过改变单次像素着色器操作所处理的像素数量，来改变屏幕不同区域的着色质量。简单来说，它可以改变同个画面中不同部分的渲染精细度，<strong>它的用处是提高画面帧数</strong>。我们还是拿NVIDIA的那张示意图来举例：</p><img src="/images/vrs_grids_car_002.png" width="100%" /><p>在不开启VRS的情况，也就是正常情况下，一帧画面的所有像素都是独立着色的；而开启VRS之后，原本独立的像素被分成了一个个像素块，它们会共享着色结果，此时GPU会根据程序员设定的重要性分级为所有像素块分配不同的着色精细度。拿上面的图片为例，车辆和远景部分的像素仍然是独立着色的，但快速变动的道路和路边的像素块就是区块共同着色的，此时由于显卡的计算资源得到了节约，所以游戏的帧数会有所提高。</p><p>目前3DMark已经引入了VRS相关的测试，在该软件的测试中，VRS分为两级，在Tier 1测试中，你会发现画面整体的精细程度都变差了，这是因为整个画面的着色速率都被降低了。</p><p style="text-align:center;"><img src="/images/VRS-T1-Comp.jpg" width="100%" />左：VRS关；右：VRS开</p><p>而在完整的Tier 2特性下，才会像上面所说的那样对整个画面进行分区，此时的效果就好了太多：</p><p style="text-align:center;"><img src="/images/VRS-T2-Comp-2.jpg" width="100%" />上：VRS关；下：VRS开。现在区别就小了很多。</p><p>这项技术最大的意义就是提高帧数，而且分辨率越高它的作用越明显。在3DMark的测试中，一张公版RTX 2070在1080p分辨率下的帧数提升为24.43％，而在4K分辨率下，提升幅度已经达到70.84％，在8K下面更是有116.62％的提升，直接从18帧幻灯片变成了40帧基本流畅的水平（数据来源：<a href="https://www.expreview.com/72147.html">超能网</a>）。</p><p>这项功能是由NVIDIA最先在Turing GPU上引入的，Intel也在他们的Gen 11核显上面加入了这项特性，我们也终于将在RDNA 2架构中看到AMD方面的支持。所以，这项技术是Xbox Series X实现8K游戏的一大技术利器，如果运用得当，我们将会在不牺牲过多画面质量的情况下得到更为流畅的画面，或是享受到更高分辨率的画面。</p><h2 id="硬件光线追踪支持"><a href="#硬件光线追踪支持" class="headerlink" title="硬件光线追踪支持"></a>硬件光线追踪支持</h2><p>微软家嘛，肯定会用自己的DXR API作为光追的入口啦。官方也明确说了这是基于硬件加速（Hardware-accelerated）的光线追踪支持，所以很明确的一点就是RDNA 2架构中将会加入新的针对光线追踪的处理单元，一如当年Turing架构中的RT Core，用专用处理单元的形式为光追提供更好的支持。</p><img src="/images/RDNA_2_RT.jpg" width="100%" /><p>这方面因为没有太多的信息，所以也没什么可说的。但有一个趋势是很明显的，那就是在主机端的推动下，未来支持光追的游戏将大幅变多。目前的PC市场上面也就只有NVIDIA在大力推光追，但实际收效并不明显，Turing推出一年多了也就只有寥寥十数款已发售游戏支持光追，其中很多游戏也只是浅尝辄止，没有完全应用光追的所有效果。这方面还是需要占据游戏业界主流地位的主机来推动。</p><h1 id="功能性：快速恢复、DLI、HDMI-2-1、120fps、四代同堂以及智能分发"><a href="#功能性：快速恢复、DLI、HDMI-2-1、120fps、四代同堂以及智能分发" class="headerlink" title="功能性：快速恢复、DLI、HDMI 2.1、120fps、四代同堂以及智能分发"></a>功能性：快速恢复、DLI、HDMI 2.1、120fps、四代同堂以及智能分发</h1><p>在硬件部分之后，Phil Spencer介绍了由新硬件带来的新功能和新特性，主要有SSD存储、快速恢复、延迟动态输入、HDMI 2.1、120 fps支持和四代兼容性、智能分发，对于这部分内容，我们分成一个个小点来看，首先是SSD以及在它支持下的快速恢复功能。</p><h2 id="高速SSD带来的超快加载以及快速恢复"><a href="#高速SSD带来的超快加载以及快速恢复" class="headerlink" title="高速SSD带来的超快加载以及快速恢复"></a>高速SSD带来的超快加载以及快速恢复</h2><p>新主机将会用SSD这个事情实际上在去年就已经公布了，但我们不清楚的是新主机会用什么规格的SSD，是中端的“够用型”SSD呢还是高端的性能级SSD。现在Phil Spencer似乎暗示了Xbox Series X将会使用高端性能级SSD，因为他使用了“next-generation”来形容SSD。</p><p>对于目前的SSD来说，什么是下一代呢？要么存储密度上有提升，要么是接口进入了下一代。恰好，新的Zen 2 CPU带来了新的PCIe 4.0总线，简单的说，它的速度是上代（PCIe 3.0）的两倍。而今年正好会有大量采用PCIe 4.0接口的SSD会上市，像三星就已经在CES 2020上面展出了他们的消费级PCIe 4.0 SSD——980 PRO。因此，完全有理由认为Xbox Series X上面的SSD将会使用PCIe 4.0接口来最大化读写性能。</p><p style="text-align:center;"><img src="/images/samsung-980-pro.jpg" /><br/>三星980 PRO，支持PCIe 4.0，图片来自<a herf="https://www.anandtech.com/show/15352/ces-2020-samsung-980-pro-pcie-40-ssd-makes-an-appearance">AnandTech</a></p><p>一个多月前，DigiTimes报道过<a href="https://www.digitimes.com/news/a20200110PD204.html">一则群联打入Xbox供应链的新闻</a>：</p><blockquote><p>Phison has reportedly broken into the supply chain of Microsoft’s Xbox, while Silicon Motion has seen orders for home consoles with built-in SSDs surge.</p></blockquote><p>我们可能会在Xbox Series X上面见到来自群联（Phison）的SSD，而现在的分析偏向于认为Sony将会在SSD上面和三星进行合作。</p><p>讨论完了SSD的可能性，我们来看由它提供支持的快速恢复功能，笔者个人猜测这项功能基于虚拟机快照技术。</p><p>常用虚拟机的朋友应该不会对快照这个常见功能感到陌生，它会把虚拟机目前的内存数据和运行状态保存成文件，在下次开启虚拟机/读取快照时就从保存好的文件里面读数据，直接恢复到快照保存时的状态。是不是听上去和官方描述的“几乎瞬间（almost instantly）”、“多个游戏（multiple games）”、“从冻结状态（from a suspended state）”很像？</p><img src="/images/xbox-os-arch.jpg" width="100%" /><p>可能有些读者就有疑问了，虚拟机里面怎么打游戏？那就不用担心微软的技术力了，Xbox One的系统——Xbox OS已经应用了微软自家的虚拟机技术，游戏和系统是分别跑在两个虚拟机中的。Xbox Series X的系统基本上可以确定会沿用目前的Xbox OS，所以这套成熟的虚拟机体系也将会被沿用。而此前因为HDD的读写速度不够而没法启用的快照功能自然就可以用了。</p><h2 id="动态延迟输入（DLI）"><a href="#动态延迟输入（DLI）" class="headerlink" title="动态延迟输入（DLI）"></a>动态延迟输入（DLI）</h2><p>在使用无线游戏手柄的时候，有一点是无法忽视的，那就是延迟问题。我们这些普通玩家可能没什么感觉，但在高手眼中，这点延迟就已经会造成手眼不同步。原本微软用来连接手柄的就是他们自己开发的一种专有无线协议了，这次他们新引入了动态延迟输入特性，在寥寥一句话的介绍中也智能推测出这是一个用于同步用户输入与显示输出的特性，既然名为动态，那么可能就是根据输入端的连接延迟在输出上面做相应的补偿来保证手眼同步。</p><h2 id="HDMI-2-1"><a href="#HDMI-2-1" class="headerlink" title="HDMI 2.1"></a>HDMI 2.1</h2><p>HDMI是主机上面常见的用来输出画面的接口，其最新版本为HDMI 2.1，相对于HDMI 2.0，它不仅仅提高了最大支持的分辨率和帧率，更引入了多种新的特性，其中Phil Spencer重点提到了自动低延迟模式（<strong>A</strong>uto <strong>L</strong>ow <strong>L</strong>atency <strong>M</strong>ode）和可变帧率（<strong>V</strong>ariable <strong>R</strong>efresh <strong>R</strong>ate），其实这两种特性在目前已经得到了大范围运用了，只不过HDMI 2.1是将其标准化了。</p><h3 id="8K-60fps、4K-120fps"><a href="#8K-60fps、4K-120fps" class="headerlink" title="8K@60fps、4K@120fps"></a>8K@60fps、4K@120fps</h3><p>HDMI 2.1一举将接口的最大传输速率提升了2.67倍，从18Gbit/s直接提升到48Gbit/s，并且加入了在DisplayPort上面已经成功运用的DSC压缩技术，从而将最大可传输分辨率提升到了10K的高度。不管分辨率是4K、8K还是10K，HDMI 2.1都可以提供最高120Hz的传输帧率，为Xbox Series X的120fps提供了坚实的保障。</p><p><img src="/images/image-20200301142006596.png"></p><h3 id="可变帧率（VRR）"><a href="#可变帧率（VRR）" class="headerlink" title="可变帧率（VRR）"></a>可变帧率（VRR）</h3><p>说到可变帧率，PC玩家肯定是不陌生的，这项特性是用来让显示器的刷新率与显卡输出的画面帧数保持一致，减少画面撕裂现象出现的。目前PC上面有FreeSync和G-SYNC两种方案，前者是AMD主推，并且与DisplayPort接口中的Adaptive-Sync相兼容，目前相关的产品更多；而后者则是NVIDIA主推，但已经推出G-SYNC Compatible对FreeSync做了兼容。</p><p>早在2016年，FreeSync就已经可以跑在HDMI接口上了，而近来也有LG的一系列OLED电视机支持搭配N卡开启G-SYNC Compatible，用的也是HDMI接口，未来支持可变帧率技术的电视机将会越来越多，只要他们支持HDMI 2.1 VRR特性，Xbox Series X即可兼容并开启可变帧率模式，为玩家带来更加顺滑的画面，减少撕裂。</p><h3 id="自动低延迟模式（ALLM）"><a href="#自动低延迟模式（ALLM）" class="headerlink" title="自动低延迟模式（ALLM）"></a>自动低延迟模式（ALLM）</h3><p>实际上Xbox One就已经支持自动低延迟模式，听过AOC电视那期广告节目的应该会记得，电视机的延迟是远高于显示器的，但现在很多电视机厂家都在着重优化这一块，尽量降低内部延迟，为游戏玩家提供更好的体验。而ALLM特性就可以自动进行延迟优化。</p><p><img src="/images/ALLM_600wide.jpg"></p><p>根据HDMI官方的说法，ALLM可以简化玩家的操作。在需要时，主机会向电视机发送一个开启低延迟模式的信号，而在不需要时也能够自动关闭掉这个模式以恢复电视内置的画面优化。</p><h3 id="其他"><a href="#其他" class="headerlink" title="其他"></a>其他</h3><p>实际上HDMI 2.1还引入了很多增强游戏体验的特性，像快速媒体切换和快速帧传输都是崭新的面向游戏应用的特性。前者用来减少在内容之间切换的空白屏幕时间，后者则可以让图像帧更早的到达电视机进行处理，减少Lag情况。</p><h2 id="120-fps支持"><a href="#120-fps支持" class="headerlink" title="120 fps支持"></a>120 fps支持</h2><p>主机端锁60帧是很常见的事情，但我们应该有点更高的追求。近年来高刷新率显示器的流行让很多PC玩家都认识到原来60帧真的束缚住了我们的视觉体验。其实在手机业界也是一样的，更高刷新率的屏幕可以明显带来更好的观感。本世代的主机可能限于机能问题只能锁60帧，但是对于硬件规格上有巨大飞跃的新主机而言，真的可以抛弃掉锁60帧这个传统了，于是Phil Spencer也写明了，在Xbox Series X上面，帧数上限被拉高到了120帧。再加上强悍的硬件能力支持，以及各路保障视觉体验的特性，在下个世代，玩家的视觉体验提升将不局限于分辨率和画面质量，更是在帧数，画面顺滑度和体感延迟上都会有很大的提高。</p><h2 id="四代同堂和智能分发"><a href="#四代同堂和智能分发" class="headerlink" title="四代同堂和智能分发"></a>四代同堂和智能分发</h2><p>四代同堂就不用多说了，微软在Xbox的兼容性上面一向是非常良心的，它为新入坑的玩家提供了一个用来回顾老游戏的非常方便的入口，只要有兴趣就可以用一台主机玩前后接近二十年的游戏，甚至不用重复购买。</p><p>重点来看智能分发。</p><p>有印象的读者可能还记得，在一月中旬的时候Xbox游戏工作室的主管Matt Booty在接受采访的时候确认Xbox Series X将没有独占游戏。给这点带来保障的就是新的智能分发技术，买一次即可在两代主机上游玩，并且有相应的优化版本，还得到了CDPR这个第三方的响应。本身Xbox第一方15个工作室的作品都会采用这种分发模式，再加上第三方的支持，在未来两年中老玩家在老平台上面玩到新游戏应该不是什么困难的事情。</p><p>能怎么说呢？Xbox牛逼就完事了。</p><h1 id="总结：用户体验至上，核心即为游戏"><a href="#总结：用户体验至上，核心即为游戏" class="headerlink" title="总结：用户体验至上，核心即为游戏"></a>总结：用户体验至上，核心即为游戏</h1><p>总的来说，目前官方透露出来的Xbox Series X是一台硬件配置强悍，功能特性着重为玩家服务的次世代游戏主机。还记得本世代初期，Xbox One的惨败吗？很明显，Xbox团队吸取了经验教训，他们不再想做一个有游戏功能的客厅机顶盒，而是专注于游戏，为玩家带来最好的游戏体验。而在本世代中期开始转变的营销思路也得以延续，Xbox现在卖的是服务，Xbox Game Pass得到大家的追捧是因为它很实在，游戏又多又新，而微软也很清楚，订阅制服务实际上是更赚钱的（看看Office 365就知道了）。想要吸引更多的玩家买他们的服务首先要把硬件基础给搞好，于是Xbox Series X就诞生了。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h1 id=&quot;从硬件编辑的角度解读Xbox-Series-X的规格&quot;&gt;&lt;a href=&quot;#从硬件编辑的角度解读Xbox-Series-X的规格&quot; class=&quot;headerlink&quot; title=&quot;从硬件编辑的角度解读Xbox Series X的规格&quot;&gt;&lt;/a&gt;从硬件编辑的角度
      
    
    </summary>
    
    
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
  </entry>
  
  <entry>
    <title>如何在资讯大爆炸时代获得最及时最准确的新闻，以科技和游戏新闻为例</title>
    <link href="https://blog.xinoassassin.me/2020/01/how-to-fetch-news/"/>
    <id>https://blog.xinoassassin.me/2020/01/how-to-fetch-news/</id>
    <published>2020-01-28T18:23:16.000Z</published>
    <updated>2021-08-21T16:28:20.922Z</updated>
    
    <content type="html"><![CDATA[<p>这是一个资讯大爆炸的时代，在移动互联网大潮的推动下，我们每天接触到各种资讯的渠道从电视、报纸和电脑上网等变成了从手机上面的一个个 App 中获取，哦不对，是被推送“塞入”大量的资讯，这其中有的是新闻，有的是本地实用资讯，甚至还有各路八卦消息。</p><p>这是时代的潮流，我们躲不过去。然而笔者相信机核的很多读者并不想要诸如娱乐圈八卦这样的杂七杂八的新闻，只想看游戏相关的资讯；或者是嫌弃各路媒体速度还不够快，自己想成为最快的资讯大佬；抑或者是想要绕过媒体这层中介去获取最原始的消息。那么该怎么做呢？本文就以科技、游戏新闻为例，简单介绍一种方法和三种常见的误导手段，帮助大家获得更高质量的新闻。</p><h1 id="很大比例的新闻都是通过官方网站向外发布的"><a href="#很大比例的新闻都是通过官方网站向外发布的" class="headerlink" title="很大比例的新闻都是通过官方网站向外发布的"></a>很大比例的新闻都是通过官方网站向外发布的</h1><p>媒体的消息源头是怎么来的呢？一些是提前发送给媒体的新闻稿，这些一般人是搞不到的，因为绝大多数提前发送给媒体的新闻稿会带上 NDA，但以这种形式出现的新闻只是少数，因为也只有比较大的公司才会有较为全面的媒体覆盖。另外很大比例的新闻其实是来自于第一时间发布在公司官方网站上的新闻稿，这种做法较为通行，各行各业基本上都会采用这种做法，科技和游戏行业就更是如此了。另外，对于科技和游戏行业来说，还有一部分新闻是各种传闻（Rumor），这种不确定的消息一般是媒体（尤其是国外媒体）挖掘出来广而告之的。</p><p style="text-align:center;"><img src="/images/image-20200129004050632.png" width="100%" />FromSoftware 的新闻稿页面</p><p>所以对于我们普通网民来说，可以通过访问公司官方网站来获取最为及时最为准确的消息。不过很多公司都不会把自己发布的最新消息给挂到首页去，那该怎么找到发布新闻的地方呢？</p><p>这里教一招很简单的：利用搜索引擎，用“公司名 Press Release”、“公司名 News”这样的关键词来搜索，这招可以说是屡试不爽。当然也有像 Steam 这种把新消息全当成博文发的，这时候关键词就要换成“Blog”了：</p><p style="text-align:center;"><img src="/images/image-20200129010256137.png" width="100%">Steam 新闻页中的 Press Releases 已经很久没更新了<br>近一年半新的官方消息都直接写博文了</p><p>而对于一些传言新闻来说，越是靠谱的媒体拿到的内部消息一般会更准确，此时就要选对正确的媒体，对于游戏领域的传闻来说，<a href="https://kotaku.com/">Kotaku</a>、<a href="https://www.polygon.com/">Polygon</a> 这两家的爆料新闻准确度还算不错。</p><p>那么这么多网站，我总不可能每天就盯着页面刷新等新闻吧，那该怎么将这么多网站和媒体整合到一起看呢？这时候就要请出一个默默在背后奉献了很久的协议——RSS，关于它的介绍请看后文。</p><h1 id="精准溯源，拒绝二手错误新闻"><a href="#精准溯源，拒绝二手错误新闻" class="headerlink" title="精准溯源，拒绝二手错误新闻"></a>精准溯源，拒绝二手错误新闻</h1><p>当然绝大多数人是没有时时刻刻盯着最新新闻这个必要的，而且就游戏这块来说，国内的几家游戏媒体都是比较及时的，准确性也是比较高的。但科技媒体的新闻就相对要鱼龙混杂一些，这时候就需要我们具有一定的溯源能力，绕过二手新闻。</p><h2 id="不准确的翻译可能会带来误解"><a href="#不准确的翻译可能会带来误解" class="headerlink" title="不准确的翻译可能会带来误解"></a>不准确的翻译可能会带来误解</h2><p>由于语言隔阂和时差，一般我们通过国内媒体看到的国外科技、游戏公司的新闻都是经过编译，或者直接就是转述的。在编译和转述过程中，很可能就会出现信息失真的现象，最终误导读者，比较常见的就是拿捏不准英文多义词、专业名词或是直接机翻导致出错，比如：</p><p style="text-align:center;"><img src="/images/image-20200128214220141.png" width=100% />Console，一词多意，这里被错误翻译成了“控制台”</p><h2 id="直接拿流言做新闻却不加提示"><a href="#直接拿流言做新闻却不加提示" class="headerlink" title="直接拿流言做新闻却不加提示"></a>直接拿流言做新闻却不加提示</h2><p>还有就是直接拿传闻、流言来做新闻，但却不在标题或内容中注明这是流言，对读者进行误导，比如下面<a href="https://wccftech.com/rumor-intel-moving-select-cpus-to-globalfoundries/">这条</a>来自于著名传言站 Wccftech 的 Rumor，在编译之后不仅标题中用于提醒读者的“传言”二字不见了，内文也没有相应的提醒：</p><p style="text-align:center;"><img src="/images/image-20200128214716163.png" /><p style="text-align:center;"><img src="/images/image-20200128214521304.png" />到了某媒体那儿，流言提示就没了，变成肯定了</p><p>当看到这类新闻的时候，一定要小心，如果你觉得这事情不太对，那么大可稍微小花一点点时间去溯源。国内做的好的媒体都会注明消息出处，点进去稍微读一下，既可以通过原文来理清楚事情原委还能顺便锻炼一下自己的英文阅读能力。如果是没有标明出处的……非一手的新闻就直接拉黑吧。</p><h2 id="标题党"><a href="#标题党" class="headerlink" title="标题党"></a>标题党</h2><p>这是笔者最为痛恨的一种现象，但不可否认的是，一个非常在我们看来可能是离谱的标题往往可以吸引到很多一般通过路人。标题党在微博、微信朋友圈非常有优势，很多人真的就只看一个标题然后就转发了，实际内容如何呢？不知道没看过没兴趣。</p><p style="text-align:center;"><img src="/images/image-20200129003331527.png" />不点名了，都是友媒</p><p>这种现象还挺常见的，不过国内几家比较正经的游戏媒体都没有用，这是好的。现在的标题党已经没有以前那么明显了，但是仍然存在曲解文章内容、断章取义这样的情况，所以如果各位读者遇到了一个较为夸张的标题，请务必粗看一下内容以防止被标题带着走了。</p><h1 id="定制自己想看的新闻：RSS"><a href="#定制自己想看的新闻：RSS" class="headerlink" title="定制自己想看的新闻：RSS"></a>定制自己想看的新闻：RSS</h1><p>上文提到了一个名词，RSS。它定义了一种标准格式，网站可以依照这种标准格式将自己站里面的内容写成一个文件，方便用户抓取网站上面的内容。在 RSS 的帮助下，我们可以用相应的软件从不同的站点上面抓取整理好的内容，直接在一个地方阅读，大大提高了聚合度和效率。其实今天的诸多新闻客户端继承的就是 RSS 的聚合理念，但 RSS 的自由度要更大一些，并且内容也不局限于新闻，所以我们完全可以利用它来打造自己的“新闻客户端”。</p><p>目前各个平台上有数量繁多的 RSS 客户端，用的人比较多的有 Feedly、Inoreader 这些，笔者用 Inoreader 比较多，它的免费版基本够用，而且 App 做的挺不错的，比较符合笔者的需求。</p><p>那么哪里可以找到 RSS 呢？一般可以留意一下这个标志：</p><p><img src="/images/128px-Feed-icon.svg.png"></p><p>比如在 SIE 的首页，就有一个很明显的 RSS 标记，它超链接到 RSS 文件的地址上，复制这个链接，扔到 RSS 阅读器里面订阅就行了。</p><img src="/images/image-20200129001345420.png" width="100%" /><p>很多公司的官网都会提供 RSS，在浏览时可以留意一下。</p><p style="text-align:center;"><img src="/images/image-20200129001526815.png" width="100%" />一些网站也会把 RSS 通道做到页面底部去，比如机核就是</p><p>通过一段时间的积累，基本上可以拥有一个稳定的 RSS 源列表，RSS 阅读器会自动按照一定的时间间隔抓取各个订阅站点的 RSS 文件，并把更新的内容展示给你，下图就是笔者积累一段时间之后，RSS 阅读器中订阅的游戏媒体。</p><p><img src="/images/image-20200129001801878.png"></p><p>这样子做出来的“新闻客户端”具有明显的个人风格，并且有一点很重要的是，你可以摆脱原本各种新闻 App 的推送，看自己想看的媒体，读自己想读的新闻。</p><h1 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h1><p>网络让我们拥有了更多的信息获取渠道，有了更快的信息获取速度，但不可否认的是，我们在信息的真伪确认上面越发的陷入困境。自媒体的兴起让传统媒体的双重信源确认制度在这个时代显得滞后，但也仍然有 AnandTech 这样<a href="https://www.anandtech.com/show/15359/trx80-and-wrx80-dont-exist-neither-does-the-intel-lga1159-socket">对流言坚守双重信源确认</a>的老牌科技媒体，还有像机核这样能够为了<a href="https://www.gcores.com/articles/117920">新闻报道失实而诚恳道歉</a>的媒体。我相信即使大环境再差，也一定（在新闻上）坚守自己节操的媒体。</p><p>希望本文能够起一个抛砖引玉的作用，也希望各位读者朋友在今后，尤其是目前这段特殊时期中，擦亮自己的眼睛，不被谣言所害。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;这是一个资讯大爆炸的时代，在移动互联网大潮的推动下，我们每天接触到各种资讯的渠道从电视、报纸和电脑上网等变成了从手机上面的一个个 App 中获取，哦不对，是被推送“塞入”大量的资讯，这其中有的是新闻，有的是本地实用资讯，甚至还有各路八卦消息。&lt;/p&gt;
&lt;p&gt;这是时代的潮流，
      
    
    </summary>
    
    
    
      <category term="Tutorial" scheme="https://blog.xinoassassin.me/tags/Tutorial/"/>
    
  </entry>
  
  <entry>
    <title>如何面对传闻和流言做新闻？</title>
    <link href="https://blog.xinoassassin.me/2020/01/how-i-deal-with-rumors/"/>
    <id>https://blog.xinoassassin.me/2020/01/how-i-deal-with-rumors/</id>
    <published>2020-01-14T15:07:41.000Z</published>
    <updated>2020-02-29T05:19:24.938Z</updated>
    
    <content type="html"><![CDATA[<p>大学在校期间我有幸接触到了《The Newsroom》这部优秀的不像是美剧的电视剧，在2018年的时候，我曾经写过一点粗浅的观后感，但其实并没有写完，写到中途便草草收尾了事了。但是《The Newsroom》对我的影响比我预想的还要大一些，可以说这部电视剧正是把我推向媒体行业的最大推手，我现在正秉承了这部剧教给我的“如何做新闻”尽可能地高要求自己，尽管我只是一个小小的硬件数码编辑，但我仍然想给自己的读者提供最新、最快并且最为准确的新闻。</p><p>而今天读到了Ian Cutress所写的<a href="https://www.anandtech.com/show/15359/trx80-and-wrx80-dont-exist-neither-does-the-intel-lga1159-socket" target="_blank" rel="noopener">《TRX80 and WRX80 Don’t Exist: Neither Does the ‘Intel LGA1159’ Socket》</a>，文中他介绍他们AnandTech的新闻原则还是保留了新闻界的传统——双重信源：</p><blockquote><p>Here at AnandTech, we often use at least two sources for any particular story, preferably both primary sources.</p></blockquote><p>这个名词是我擅自归纳的，意思就是一条传言如果被两个可靠的信源确认，那就可以当作真实新闻处理。当然AnandTech的严谨程度并没有专业的电视媒体那么高，但是相对于我们国内的很多硬件媒体，他们的要求已经很高了。</p><p>在进入行业之前，我很好奇，每天这么多传闻都是从哪里挖出来的。直到自己开始写新闻才发现，原来Twitter爆料人的一句话甚至是一个单词都可以扩写成一条新闻，实际上我们并没有办法去确认这些爆料的真实程度，所幸的是他们一般都是在有把握的情况下才发的，我们的报道最终也没有出现太多的偏差。</p><p>我们需要判断信息的可靠性，作为信息传递的放大环节，媒体应该尽量做到不失真。我们可以带着一些主观看法去写评论，但是新闻的基本事实必须是明确的、可靠的。</p><p>科技媒体都在吃二手屎，比那些自媒体慢一步，但又不能保证自己的消息完全是可靠的，那为什么还要来看你呢？现在的很多媒体靠的是独家新闻来吸引读者，但我们这种体量的媒体还做不到所谓的独家新闻，只能靠速度、准确度和专业程度来吸引读者了，速度由于码字还不够快确实赶不上，那就只能通过提升后两者来提高自己新闻的质量了。</p><p><code>&gt;&gt;endl;</code></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;大学在校期间我有幸接触到了《The Newsroom》这部优秀的不像是美剧的电视剧，在2018年的时候，我曾经写过一点粗浅的观后感，但其实并没有写完，写到中途便草草收尾了事了。但是《The Newsroom》对我的影响比我预想的还要大一些，可以说这部电视剧正是把我推向媒体行
      
    
    </summary>
    
    
    
      <category term="Comment" scheme="https://blog.xinoassassin.me/tags/Comment/"/>
    
  </entry>
  
  <entry>
    <title>也谈视频网站VVIP问题</title>
    <link href="https://blog.xinoassassin.me/2020/01/a-talk-about-video-vvip/"/>
    <id>https://blog.xinoassassin.me/2020/01/a-talk-about-video-vvip/</id>
    <published>2020-01-04T08:50:43.000Z</published>
    <updated>2021-08-21T16:15:58.417Z</updated>
    
    <content type="html"><![CDATA[<p>上个月有个名词闹得全网沸沸扬扬——《庆余年》，倒也不是这部电视剧本身引发了热烈讨论，而是它的播放平台闹了不小的动静，我们来简单回顾一下事件的经过：</p><p>2019年11月26日，《庆余年》正式在腾讯视频以及爱奇艺两家视频网站上线，采用了与之前不少电视剧相似的播放策略——每周一、二、三20:00更新2集、VIP会员抢先看6集，这并没有什么问题。</p><p>2019年12月11日，似乎是看到《庆余年》热度的升高，抑或是出于其他什么原因，腾讯视频和爱奇艺为此剧推出VIP专享付费超前点播服务，VIP会员可以通过一次性的50元付费，在每周更新日领先非会员6集的基础上再多抢先看6集。此举一出，被国内视频网站百般花样影响收看体验的用户马上就不乐意了，通过各种SNS抒发自己的愤懑，此事让万千媒体经过添油加醋，最终引得官方媒体为用户发声，视频网站最终低头<a href="http://society.people.com.cn/n1/2019/1218/c1008-31510577.html">承认考虑不周</a>。</p><p>视频网站会员并不是一个新东西，作为国内的“订阅制服务”变种，它可以让交了费的用户享受到更好的画质，更好的观看体验，更多的内容访问权，但事实真的是这样子的吗？</p><p>最早视频网站在推出会员服务的时候确实将开头的广告给去掉了，但慢慢的，他们通过各种各样的方式让本该享受无广告体验的付费会员们也看上了广告，各种播放中植入广告，什么贴片广告。今年九月份，就有《钱江晚报》对腾讯视频、爱奇艺、优酷、芒果TV、搜狐视频、腾讯体育等九大视频网站进行了体验，<a href="http://www.xinhuanet.com/fortune/2019-06/25/c_1124665535.htm">该文章</a>被新华网转载，针对广告内容，我引用文章的原话：</p><blockquote><p>省消保委相关负责人告诉钱江晚报记者，他们通过暗访发现，大部分视频网站对会员免广告的描述五花八门。比如，“广告特权”、“跳广告”、“免广告”，但在实际体验中发现，在腾讯、爱奇艺、芒果TV等网站成为会员后，依然可以看到开屏广告、弹窗广告、页面广告、会员广告、暂停页面广告等；优酷有开屏、页面、暂停页面广告；搜狐视频可以看到会员广告；PP视频可以看到开屏和页面广告；乐视可以看到开屏和暂停页面广告等。</p><p>为什么明明已经“免广告”，还有这样多种多样的广告方式？体验人员告诉钱江晚报记者，他们也是仔细查看会员协议才发现其中的猫腻——所谓的“免广告”、“跳广告”仅仅是免去或跳过视频开始的片头广告，但这一点在开通会员的页面上并没有明示。</p><p>更有个例让人有些无奈，比如，腾讯视频“小剧场广告”。体验人员在观看腾讯自制剧《怒晴湘西》时发现，每集中间部分都会穿插由剧中原班人马出演，强行穿插在剧情里的腾讯微视广告，“虽然可以手动快进，但不能关闭。”调查人员对此也是一番苦笑。</p></blockquote><p>诚然，视频网站为了提高自己的收入弥补自己的亏损，在网站/App的各种地方植入广告是合乎情理的，但对于付费会员来说，这就是收了他们的钱，然后再跟他们说这钱只能用在去掉开头广告上，其他广告你得跟普通用户一样照看，那么他们的心理会不会产生不值得的感觉？这是不是在降低付费用户的体验？</p><p>要说用户体验的话，我想B站应该算是国内视频网站中矮个儿中拔尖的。至少多年前食言推出大会员服务至今，他们仍然没有添加贴片广告，非付费用户也能够以相对能够接受的画质观看视频， 而付费会员则是可以用比较合理的资费获得更高的画质以及更多内容的访问权，至少这个大会员我买的是挺满意的。</p><p>而再看国外的同类网站，比如一大巨头Netflix，虽然贵，但是它的内容质量和使用体验（当然是在可以流畅观看的前提下）不会让用户感觉到不值得，简单一个例子就是它的高清真的是实打实的1080p，超高清就是真的是UHD，也就是4K，而不像国内视频网站那样挂羊头卖狗肉，在分辨率上缩水或是欠码。</p><img src="/images/image-20200104150823502.png" width=100% /><p>我们不是不愿意为内容付费，回头看看国内的正版游戏推广就知道了，为什么大家都愿意去Steam上面买游戏？最主要的恐怕就是它的用户体验做的好，购买简单，下载又快，比以前自己去找盗版还要简单（当然还有便宜）。而视频网站呢？付了费之后得到的是如此糟糕的用户体验，甚至还要二段式收费，那必然有部分用户会不愿意掏钱，而选择自行寻找盗版资源。“反正我要看的也就是那部剧嘛，其他内容送我都不要”，这可能是一些观众的真实想法，也折射出国内视频网站在内容吸引力上面的匮乏。当然，国内的大环境使得优质原创内容的出现概率并不高，这也是客观存在的事实。该如何提高用户的付费率呢？视频网站想出了一招付费提前看更多，并且尝试了一下感觉还行，就用在这次的《庆余年》身上了，结果这批观众不忍了，于是事件就这么爆发了。</p><p>用户是用脚投票的。你给我好的内容、好的用户体验，我自然会心甘情愿地掏钱留下来，而如果你的内容对我没吸引力了，用户体验变差了，那我还每个月续着你干嘛？现在视频网站的内容质量可能需要很长时间才能有明显的改善，那么是不是能够从用户体验出发，至少让付费用户看得更舒服一些，弥合用户与网站之间越来越大的裂痕，不要再赶走这些提供着不菲运营资金的“优质用户”了。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;上个月有个名词闹得全网沸沸扬扬——《庆余年》，倒也不是这部电视剧本身引发了热烈讨论，而是它的播放平台闹了不小的动静，我们来简单回顾一下事件的经过：&lt;/p&gt;
&lt;p&gt;2019年11月26日，《庆余年》正式在腾讯视频以及爱奇艺两家视频网站上线，采用了与之前不少电视剧相似的播放策略
      
    
    </summary>
    
    
    
      <category term="Entertainment" scheme="https://blog.xinoassassin.me/tags/Entertainment/"/>
    
      <category term="Comment" scheme="https://blog.xinoassassin.me/tags/Comment/"/>
    
  </entry>
  
  <entry>
    <title>音频编码变迁录</title>
    <link href="https://blog.xinoassassin.me/2019/11/Audio-Codecs/"/>
    <id>https://blog.xinoassassin.me/2019/11/Audio-Codecs/</id>
    <published>2019-11-28T07:34:47.000Z</published>
    <updated>2021-08-21T16:19:06.018Z</updated>
    
    <content type="html"><![CDATA[<p>前面讲过了多媒体容器格式的变迁，这期我们来看看音频编码是如何发展的。在讲编码之前，同样地，让我们来看看现在最为通用的数字音频格式——PCM是怎么来的吧。</p><h2 id="从音频波形到0和1"><a href="#从音频波形到0和1" class="headerlink" title="从音频波形到0和1"></a>从音频波形到0和1</h2><p>声波是一种机械波，在数字时代到来前，录音的原理其实就是将声波的波形、振幅等等特征依样画葫芦给记录到如黑胶唱片、磁带等介质上面，但是这种记录方式并不利于保存，计算机等电子设备的普及使得人们更想使用电子数据的方式来保存音频。但是用于采集声音的麦克风最终将声波转换输出的电流是一种模拟信号，它用电流的大小来表示声波，是连续的；而计算机使用的数字信号系统是一种离散的、非连续的信号系统，在常见的二进制系统中，它只有0和1两种状态，并不能够直接保存模拟信号，两者之间需要经过转换。</p><p>怎么转换呢？首先针对一段声音的音频波形，我们可以用一个较为复杂的波形函数来表示，既然它是函数，那让我们回想一下初中高中大学我们都是怎么把函数画出来的，用线把一个个点连接到一起对不对？那么现在我们反过来，在这条已经给定的函数图像上面按照一定的间隔取点，这个过程就叫做采样，取完点之后把它的值用数字给记录下来，这就叫做量化。</p><p style="text-align:center;"><img src="/images/image-20191127212231945.png" /><br/>在音频编辑软件中将音频波形放大，你可以看到一个个取样点</p>这种将声波记录成数字数据的方式就叫做PCM调制，这里说的很简化，但是原理其实是一样的，就是用记录下来的点去拟合出声波函数应该有的样子，在PCM调制中，我们记录到的数据是时间与对应的电平值。而上面这两个操作就带来了**采样频率**和**量化位数**这两个关键特征。<h3 id="PCM调制下的音频重要特征"><a href="#PCM调制下的音频重要特征" class="headerlink" title="PCM调制下的音频重要特征"></a>PCM调制下的音频重要特征</h3><p style="text-align:center;"><img src="/images/samples.png" /><br/>一个波形函数，上面的红点代表采样点，两个红点之间的横向距离一致，距离值就是采样频率的倒数<br/>量化要做的就是将这个红点的y值以一定的规则记录下来</p><h4 id="采样频率"><a href="#采样频率" class="headerlink" title="采样频率"></a>采样频率</h4><p>由于声波是一种连续的信号，你可以把它看成数学上面的连续函数，从一个点到下一个点之间有无数多个点，我们没有办法全部将这些时间-振幅信息100％记录下来，只能从中挑选一些，那么怎么挑选呢？以一个固定的时间间隔，到点了就记录。而采样频率指的就是每秒记录这些值的次数，用Hz作为单位。</p><p>采样频率越高，我们记录下来的原始声波信息越多，我们保存下来的数字信号自然就越贴近于原始音频信号。</p><h4 id="量化位数"><a href="#量化位数" class="headerlink" title="量化位数"></a>量化位数</h4><p>在确定了采样次数后，我们在这条声波函数上面拥有了一些间隔相同的点，我们知道，在二维函数上面的点可以用一组二维坐标值来表示，这里横轴是时间t，而纵轴一般就是电平值，因为计算机处理能力的限制，我们不可能用一个无限长的数字去记录它，只能用有限位数的数字去记录，而这个位数就是“量化位数”，它决定了数字音频信号的量化精度。</p><p>因为这种记录方式用的是近似值的方法，所以量化位数越大，我们记录下的原始模拟信号的电平值就越精确、越贴近于原始音频信号，另外量化位数越大的音频在动态范围上也要比量化位数小的音频要大。</p><h2 id="以音频CD为标尺的无损、有损以及Hi-Res"><a href="#以音频CD为标尺的无损、有损以及Hi-Res" class="headerlink" title="以音频CD为标尺的无损、有损以及Hi-Res"></a>以音频CD为标尺的无损、有损以及Hi-Res</h2><p>因为数字信号系统记录下的音频信号已经经过了一次采样了，相对于原始的模拟音频信号它已经是“有损”的了，所以我们今天常说的有损无损指的是有损压缩和无损压缩（可以是无压缩）的区别。顾名思义，无损压缩指的是数据在经过压缩之后没有任何的损失，而有损压缩则相对，它在压缩过后相对于原始数据出现了损失。</p><p>而原始数据是什么呢？那就要讲到开启人类数字音频时代的CD。</p><h3 id="CD：光、数字、音乐"><a href="#CD：光、数字、音乐" class="headerlink" title="CD：光、数字、音乐"></a>CD：光、数字、音乐</h3><p>在上个世纪五六十年代，人们常用的还是黑胶唱片，而随着1965年光盘的问世，这种比黑胶唱片更加小巧精致的记录载体很快受到了大公司的青睐，其中飞利浦和Sony就决定用光盘作为记录数字音频数据的载体，并为它量身定做一种数字音频记录格式，最终他们决定采用LPCM——线性PCM作为编码。</p><p><img src="/images/220px-CDDAlogo.svg.png"></p><p>然后飞利浦和Sony这两家在CD要使用的LPCM编码具体参数，也就是采样频率和量化位数上面产生了分歧，进行了一段长时间的拉锯战。</p><p>首先因为人耳普遍只能够辨识频率在20Hz~20kHz之间的声音，而根据<strong>奈奎斯特–香农采样定理</strong>，对于一个连续信号，只要采样率高于（注意，不能等于）原信号带宽的两倍即可通过采样完美（理论上的）重建原信号，所以CD标准的采样频率先被确定到要在40kHz以上。根据这个底线，飞利浦那边提出的标准是44056Hz/14-bit，而Sony则是使用44100Hz/16-bit的标准，双方都是站在自己的利益角度，两种标准都是为保留与原本的电视、录像带系统（NTSC/PAL）的兼容性而提出的。</p><p>最终拉锯战以Sony方面的大获全胜而告终，CD音频以44.1kHz/16-bit的双声道LPCM的形式进行记录，这就是Compact Disc Digital Audio（CDDA）标准，它于1980年定稿。</p><p>回到我们上面所说的无损、有损的概念。由于CD是我们最早普及的数字音频记录系统，它也是我们普通人能够接触到的最接近原始音频的介质（先不论Hi-Res），所以大家就开始用“无损”来称呼原始的从音频CD上面保存下来的数据，当然它也可以用于无损压缩过的音频。</p><h3 id="Hi-Res"><a href="#Hi-Res" class="headerlink" title="Hi-Res"></a>Hi-Res</h3><p>CD标准确定之后，它逐渐变成了音乐发行使用的主要介质，但随着时代的发展，有需求的人们还是发现它不够用了，首先16-bit的量化位数限制了CD音频的动态范围，其次44.1kHz的采样频率仍然会在模拟转数字过程中产生人耳可闻的损失。所以制定一种比CD更高的标准就成为了业界的共识。</p><p>从CD诞生到现在的短短四十年中，包括它的创造者Sony和飞利浦在内，一直都有新的厂商想要以自己更新更好的编码标准取代掉CD标准，但很可惜他们的努力都没有成功，CD仍然牢牢地占据着业界。虽然没有成功，但这些努力还是引起了行业协会的重视。2014年，美国唱片业协会（RIAA）这家代表着美国唱片业的贸易团体联合了其他几个较为权威的组织一起给比CD更高的音频制式下了<a href="/images/https://www.riaa.com/high-resolution-audio-initiative-gets-major-boost-with-new-hi-res-music-logo-and-branding-materials-for-digital-retailers/">定义</a>：</p><blockquote><p>Lossless audio capable of reproducing the full spectrum of sound from recordings which have been mastered from better than CD quality (48kHz/20-bit or higher) music sources which represent what the artists, producers and engineers originally intended.</p></blockquote><p>也就是说，采样频率/量化位数在48kHz/20-bit或其上的音频都可以被称之为”High Resolution Music”，简称就是Hi-Res Music。</p><p style="text-align:center;"><img src="/images/logo-150x150.png" /><br/>RIAA的Hi-Res Music Logo</p>其实在RIAA之前，日本的電子情報技術産業協会（JEITA）在2013年[制定](/images/https://www.jas-audio.or.jp/english/hi-res-logo-en)了一套适用于日本国内的Hi-Res标准，这套标准规定了Hi-Res音频在模拟和数字处理过程中必须参照使用的规范，其中对于数字处理过程，JEITA要求全过程的音频格式均在96kHz/24-bit及之上。<p style="text-align:center;"><img src="/images/hireslogo-150x150.png" /><br/>这个Logo也是我们现在能看到最多的代表Hi-Res的Logo。 </p>而这套标准也被日本的音频器材行业带向了全球。<h2 id="常用的有损音频编码"><a href="#常用的有损音频编码" class="headerlink" title="常用的有损音频编码"></a>常用的有损音频编码</h2><p>一张CD翻录下来的大小总会有个500、600MB吧，对于上个世纪90年代还在使用以几MB为单位的软盘的人们来说显然是太大了，另外网络时代早期的带宽还是非常小的，比如当年拨号上网最快也就只有56kbps的带宽，如果想将CD保存到自己电脑里，或者是通过网络跟人分享，在当时几乎是一件不可能的事情。</p><p>而有些人说那为什么不做压缩呢？因为在数据压缩软件看来，你这个CD文件的数据几乎没有冗余，传统的数据压缩方式对音频数据是起不了太大效果的，那咋办呢？只能走有损编码的道路了，这其中，MP3是比较早、也是人们用的最多的有损音频编码。</p><h3 id="MP3：最常用的，不一定是最好的"><a href="#MP3：最常用的，不一定是最好的" class="headerlink" title="MP3：最常用的，不一定是最好的"></a>MP3：最常用的，不一定是最好的</h3><p>MP3的全称为MPEG-1 Audio Layer III，也可以是MPEG-2 Audio Layer III，它是在1993年被标准化的，至今已经有26年的历史了。别看它的岁数大，但它应用的音频压缩思想至今仍然在音频编码领域中发挥着重要的作用。</p><p><img src="/images/MP3_Logo.jpg"></p><p>首先，MP3使用了MDCT算法，这种算法改正了原始DCT算法上面的一些缺点，它将音频原本的时域信息转换成频域信息，是之后对不同频段信号进行处理的前提。</p><p>其次，MP3运用了声音心理学模型，这里有三点。第一，人的听觉频率范围大概在20Hz~20kHz，所以可以多去掉一些高频声音；第二，人耳对于不同频率声音的敏感程度不同，大概在2000Hz~5000Hz之间是最灵敏的，而在两端下降的比较厉害，尤其是高频；第三，人耳听声音有遮蔽效应，一个较强的声音会遮蔽掉较弱的声音，比如说手机开同样的音量在闹市中和在自己房中听起来完全是两码事，另外不同频率声音的遮蔽宽度不同。根据以上三点，MP3编码器就可以对不同频段的音频信号进行取舍，给人耳比较敏感的频段多保留一些细节，而去掉人耳不敏感甚至会听不见的一些声音。</p><p>最后，MP3运用了哈夫曼算法来对处理过后的音频数据进行压缩，并且编码器会不断地对前面的处理进行调整，以达到用户给出的码率、质量需求。</p><p>由于以上三个大的特点还有别的没有提到的原因，MP3在压缩之后仍然拥有相当高的质量，而压缩比一点都不差，大概在1:4~1:6之间，最高可能有个1:10。因此这个已经有26年历史的编码标准时至今日仍未过时，大量在网络上进行传播的音频仍然使用着它，但它并不是没有缺点。</p><p>一是它太狠了，对于20kHz以上的声音几乎就是一刀切，比如下面这张图就是一段320kbps CBR编码的MP3音频频谱图，可以看到20kHz上面完全消失了，这种情况主要出现在CBR编码的MP3上面。</p><p style="text-align:center;"><img src="/images/image-20191127231815878.png" /><br/>使用CBR 320kbps参数进行编码，可以看到编码后的音频频率上限就是20kHz</p>当然你也可以强行关闭编码器的一刀切行为。<p style="text-align:center;"><img src="/images/image-20191127232759538.png" /><br/>这是开启使用最高品质VBR编码的MP3频谱，可以看到20kHz以上是完整的</p>一刀切虽然可以大幅减少音频文件的体积，但在实际听感上总会感觉缺了什么。<p>第二个缺点，其实也不能算是MP3编码自身的缺点而是它使用的标签有问题。肯定有用户在下载网上的MP3资源时遇到过乱码问题，比如：</p><p><img src="/images/image-20191127233224835.png"></p><p>这是因为MP3文件使用的ID3标签最初没有统一的文本编码，各种语言的系统会以自己当前使用的文本编码标准往里面写数据，导致使用其他文本编码标准的系统无法正确读取文本数据，最终出现乱码。比如图上这个MP3的信息就是日文系统用Shift-JIS文本编码写入的，而我们平时使用的简体中文Windows的文本编码标准是GBK，无法正确读取，所以出现了乱码。ID3标签在之后的v2版本中改进了这一点。</p><p>第三个问题是MP3对于多声道的支持较差，常用的MPEG-1 Audio Layer III标准只支持双声道音频，而非主流的MPEG-2 Audio Layer III才支持最高5.1声道，但是它最高只能够支持采样率为24kHz的音频，完全不够用。</p><p>其他的缺点可能算不上什么大问题，不然它也不会被用到今天仍然是主流了。</p><h3 id="AAC：先进、优秀，但是没能取代MP3"><a href="#AAC：先进、优秀，但是没能取代MP3" class="headerlink" title="AAC：先进、优秀，但是没能取代MP3"></a>AAC：先进、优秀，但是没能取代MP3</h3><p>AAC名叫进阶音频编码（Advanced Audio Coding），它本来是开发出来取代MP3的。联合起来开发它的公司有一大堆，个个都是知名大企业或研究机构，比如索尼、微软、杜比实验室、贝尔实验室，等等等等。最终，AAC被MPEG组织接受，写进了他们的MPEG-2和MPEG-4标准中。</p><p> <img src="/images/advanced-audio-coding-aac-logo-1C1956B992-seeklogo.com.png"> </p><p>相对于MP3，AAC使用了完整的MDCT算法，因此在编码效率上它更胜一筹，一般在同等码率下，AAC的质量比MP3更好一些。而其他的改进点还有支持更大范围的采样率（16~48kHz=&gt;8~96kHz），最多支持高达48个声道，在对频率高于16kHz的音频处理上明显要好等。总之，作为设计目的是取代MP3的编码，它的特性非常优秀，然而，AAC没有如愿以偿的成功取代掉MP3，究其原因可能还是推广力度不够大。另外，尽管用户无需为使用AAC格式进行流式传输或分发而付费，但硬件制造商和软件开发者需要交这笔钱，专利费用也使得在AAC标准确定之初，普通用户手上根本没有能用的AAC编码器，而在这时候，MP3和著名的LAME编码器已经满天下都是了。</p><p>实际上我们现在的日常生活中AAC可以说是无处不在的，在线视频的“业界规范”就是以它作为音频编码标准，所以你随便点开一个在线视频，基本上就会听到用AAC编码的音频。另外一个主力推广AAC的公司就是苹果，早在iTunes商店建立之初，他们就使用AAC作为这个数字音乐商店的音频编码标准了，一直到今天都是，包括在前几年推出的Apple Music流媒体服务。</p><p>AAC使用两种容器，一般我们见到的都是以.m4a为扩展名的文件，其实就是mp4。而因为使用mp4容器，文件的元数据使用UTF-8编码保存，所以不会出现如MP3那样的乱码。另一种容器现在比较少见，直接以.aac为扩展名，实际上是一种名为ADTS的容器。</p><p>除了以上的特性之外，AAC的编码还是可以模块化定制的，在MPEG-2 Part 7中就已经给出了三种模块化编码方式，而到了更加现代化的MPEG-4 Part 3规范中，更是给出了多达11种模块化配置规范，其中不乏有低延迟模式和高效模式（HE-AAC），下面就简单提一下AAC-LC和HE-AAC。</p><h4 id="AAC-LC与HE-AAC"><a href="#AAC-LC与HE-AAC" class="headerlink" title="AAC-LC与HE-AAC"></a>AAC-LC与HE-AAC</h4><p><img src="/images/AAC-LC-HE.png.jpg"></p><p>AAC-LC，或者叫低复杂度（Low Complexity）AAC，你可以将它看成是原版的AAC编码，它的编码规范写在MPEG-2 Part 7中，在MPEG-4 Part 3中就直接叫做AAC Profile，而HE-AAC全称High-Efficiency AAC，直译就是高效AAC，它的编码规范写在MPEG-4 Part 3中。主要区别是HE-AAC利用了一些新特性，在编码效率上有明显的提高，特别是在低码率情况下。</p><p><img src="/images/783px-HE-AAC_and_HE-AAC_v2.svg.jpg"></p><p>简单的关系图如上，可以看到HE-AAC包含了很多新特性，这些新特性帮助它实现了更高的压缩比。</p><h3 id="WMA：规格很先进，但它是微软的东西"><a href="#WMA：规格很先进，但它是微软的东西" class="headerlink" title="WMA：规格很先进，但它是微软的东西"></a>WMA：规格很先进，但它是微软的东西</h3><p>早个十五年，我们在百度上搜索音乐下载的时候，除了MP3，见得最多的一种格式应该就是WMA了，看到开头的WM两个字母就能明白，这是微软的格式。没错，这是“鼎盛”时期的微软开发并强力推广的专有编码，多见于Windows平台。微软最初开发出它的目的很简单，就是为了和MP3和RealAudio竞争，结果大家都知道了，MP3活到了今天，而WMA和RealAudio都已经消逝在历史长河中了。</p><p>WMA全称Windows Media Audio，它同样使用了音频心理学对原始音频进行处理，去除人耳不敏感的声音来减小数据体积，思路与MP3大同小异，不过具体实现上面有差异。WMA是与Windows Media紧紧捆绑的一种音频编码格式，不过微软将编解码开放给了第三方，交钱就可以用，所以在十多年前的MP3播放器上我们也可以播放WMA格式的音频。WMA与Windows Media一起升级，它还有个增强版，就是WMA Pro。我们比较熟悉的可能是Windows XP SP2自带的那个Windows Media Player 9.0，实际上在这个版本中，微软还为WMA引入了无损编码，称为WMA Lossless。</p><p style="text-align:center;"><img src="/images/image-20191128152343951.png" /><br/>Windows 10还带着Windows Media Player，但还有人用吗？</p>但是随着微软在多媒体格式竞争中的全面失败，Windows Media也不再更新了，WMA也就慢慢的不再流行了。<h3 id="Dolby-Digital（AC-3）与DTS：电影工业的常客"><a href="#Dolby-Digital（AC-3）与DTS：电影工业的常客" class="headerlink" title="Dolby Digital（AC-3）与DTS：电影工业的常客"></a>Dolby Digital（AC-3）与DTS：电影工业的常客</h3><p>VCD上面用的MP1音频编码效果太差了，还不支持多声道，但这也是因为CD的容量不够大，而从DVD开始，人们终于有机会在自己家里听到影院级别的音效了，因为它的容量足以直接收录电影使用的Dolby Digital或者DTS音频。那么这两种音频是什么呢？先来说Dolby Digital，我们可能更熟知它的另一个名字：AC-3。</p><h4 id="Dolby-Digital（AC-3）"><a href="#Dolby-Digital（AC-3）" class="headerlink" title="Dolby Digital（AC-3）"></a>Dolby Digital（AC-3）</h4><p>Dolby实验室是美国一家专注于音频效果、音频编解码领域的公司，原本在模拟时代，它发明的一系列音频编码已经被好莱坞广泛使用，人们在电影院里面最常听到的就是用Dolby技术编码而成的声音。而到了数字时代，他们也紧跟潮流，于1991年推出了Dolby Digital这种数字音频编码。</p><p><img src="/images/Dolby-Digital.png"></p><p>Dolby Digital的开创性在于它是首个使用MDCT算法进行压缩的编码，同时他们还使用了音频心理学的研究成果对压缩算法进行优化，使得最终压缩后的产物仍然拥有影院级别的效果，但是DD只支持固定码率编码，这使得它的码率一般都会比较高，所以压缩过后的音频体积也较大。常见的DD编码一般有6个声道，称为DD 5.1，而在很多DVD上面我们经常可以看到它的Logo。DD音频的另外一个特点是它的元数据中带有对解码过程进行控制的相关信息，使得它在支持的播放器上可以还原出制片方想要的效果。</p><p>随后DD又发展出了很多新分支，其中比较有名的是Dolby Digital Live，它随着另一家老牌音频硬件公司——创新——进入了千家万户。而DD也有自己的后继者——Dolby Digital Plus，我们可能更熟悉它的另一个名字——E-AC-3，它在DD的基础上提升了比特率和声道数量，我们经常可以在下载版的美剧中见到这种编码。</p><h4 id="DTS"><a href="#DTS" class="headerlink" title="DTS"></a>DTS</h4><p>在电影音频领域中，另一家影响力很广，技术力很强的公司就是DTS了，DVD时代我们经常见到的就是他们以公司名命名的音频编码格式DTS，这种编码推出于1993年，直接竞争对手就是Dolby实验室的产品。</p><p><img src="/images/DTS_small_logo.png"></p><p>与Dolby Digital选择使用MDCT算法不同的是，DTS选择了ADPCM作为算法基础，这种算法是PCM的变种，与PCM使用固定量化位数记录电平值不同的是，ADPCM有自适应的特征，在音频电平差值较小时用较少的量化位数去记录，而差值大的时候用更多的量化位数进行记录，这样对于存储空间的利用率就更高了，相对于用MDCT算法算出不同的频率段再砍掉人耳不敏感部分的做法，基于ADPCM算法的编码虽然压缩率要低一些，但是对于声音细节的保留肯定是它要做的更好。当然，这就使得它的体积控制比DD要差一些，所以在一般的DVD上，我们更常见到的是DD而不是DTS。</p><p style="text-align:center;"><img src="/images/dd.jpg" /><br/>好莱坞电影真的是以Dobly编码居多的</p>Dolby实验室与DTS的竞争从这时候的DD与DTS开始，一直延续到今天的Dolby TrueHD VS. DTS-HD Master Audio，后面两个都已经是无损编码了，我们放到下面去讲。<h3 id="Vorbis与Opus：多见于语音编码"><a href="#Vorbis与Opus：多见于语音编码" class="headerlink" title="Vorbis与Opus：多见于语音编码"></a>Vorbis与Opus：多见于语音编码</h3><p>说Vorbis这个名字可能大家都不知道是啥，但是一说Ogg那肯定都会“啊我知道”了。其实Ogg是Vorbis编码的音频常用的一种容器，而Vorbis编码则是在2000年公布的一种计划取代所有有损音频压缩的编码，对，它的野心极大。</p><p>Vorbis编码的原理与其他有损编码相比也是大同小异，基于MDCT的时频转换，然后过心理声学进行频段舍弃，不过之后的处理有些不同，它使用矢量量化算法，在低码率情况下有着很好的表现，接近于HE-AAC，但没能完成超越。前面也说了，直到今天MP3也仍然稳坐着音频领域第一编码的位置，所以很明显Vorbis没有完成自己的计划。</p><p>之后它的主要开发者Xiph.Org基金会又推出了一种新的编码——Opus，这种编码有着比Vorbis更好的低码率表现，在同码率下终于实现了对HE-AAC的超越。而它还有一个低时延的特性，可以做到目前最低的编码延迟，这也使得它在数字语音通信领域中大放异彩，它现在也是IETF标准中的一员。</p><h2 id="常见的无损音频编码"><a href="#常见的无损音频编码" class="headerlink" title="常见的无损音频编码"></a>常见的无损音频编码</h2><p>在自己的硬盘空间逐渐大到放CD原盘都没有问题了之后，新的问题出现了，网速跟不上。回想一下05年左右，国内家庭普遍还是在用ADSL上网，速率可能也就只有1~2Mbps，用这个速度下点MP3还行，但是下原盘就太慢了，但很多音乐爱好者就是想收藏“没有瑕疵”的无损音频，怎么办呢？这时无损音频压缩编码走上了舞台，首先登场的是Monkey’s Audio，又叫APE。</p><h3 id="APE：无损音频压缩的先行者"><a href="#APE：无损音频压缩的先行者" class="headerlink" title="APE：无损音频压缩的先行者"></a>APE：无损音频压缩的先行者</h3><p>APE是Monkey’s Audio这个编码使用的扩展名，但是叫得多了大家都只知道APE而不知道Monkey’s Audio了。它是可考的、比较早出现的一种无损音频编码，后面要提到的WavPack（.wv）比它出现的还要早，但是APE却是头一个大范围流行起来的无损音频编码，最初版本公开于2000年。</p><p><img src="/images/image-20191128154458041.png"></p><p>问题来了，前面不是说对传统压缩方式对于音频数据并不能起到很好的效果吗？那APE是怎么在无损的情况下实现如此高的压缩率的？答案也很简单，传统方式不行，那我就用新的针对性算法呗。</p><p>APE主要使用了三大算法来实现对原始音频数据的无损压缩，第一个是Joint Coding，简单说就是将左右两个声道的共同信息进行复用，从而减小音频体积；第二个是线性预测编码（Linear Predictive Coding），因为音频信号前后关联性非常大，可以根据前面一段音频波形预测后面的音频波形，如果预测得到的值与真实值有差距，则对差值进行编码，这种算法是音频无损编码的核心杀手级算法，可以做到在没有损失的情况下大幅提升压缩比；第三个就是预测编码所需要的量化位数。</p><p>这三种主要算法使得APE可以在没有损失的情况下达到约50%的压缩比，这是之前的无损音频编码做不到的事情。</p><p>但是APE也有较大的缺陷，最高只支持双声道、24-bit的量化位数让它在新世代落后于FLAC，因为存在浮点计算，所以对硬件性能的需求要高于FLAC，在编解码上面也更慢，而它也没有针对数据完整性做</p><p>另外由于APE虽然标了自由软件，但是它使用的许可证并不能让人们直接使用Monkey’s Audio现成的源代码，必须自行动手去实现对它的解码支持，这也限制了它的应用范围。</p><h3 id="FLAC：免费开放，新的业界事实标准"><a href="#FLAC：免费开放，新的业界事实标准" class="headerlink" title="FLAC：免费开放，新的业界事实标准"></a>FLAC：免费开放，新的业界事实标准</h3><p>FLAC基本上是与APE同时间提出来的，稍微晚了那么一丢丢，它直接将编码的最大特点写在自己的名字里了——Free Lossless Audio Codec，自由、无损。</p><p> <img src="/images/logo130.gif"> </p><p>相对于APE，虽然同样使用了线性预测算法，但它的压缩比稍微差了一点，不过由于FLAC使用全整数的数据计算方式，所以低端电子设备也可轻松对其进行解码，而它在数据结构上考虑到了数据完整性和流传输，它采用帧结构设计确保了即使文件的部分片段遭遇不测，其他部分也能够正常播放，而支持流传输的特性使得它在可以在流媒体时代占据一席之地。并且它对于多声道的支持比APE强很多，最高可以支持8声道。</p><p>FLAC身上的种种优点使得它成为了目前最为流行的无损音频压缩编码，Android早就添加了对于FLAC的支持，而iOS也在第11个大版本中放下自己的矜持加入了对它的支持。FLAC已经俨然成为了新的业界通用编码，各大Hi-Res音乐售卖网站也在使用FLAC作为载体传播Hi-Res及普通无损音乐。</p><h3 id="Apple-Lossless（ALAC）"><a href="#Apple-Lossless（ALAC）" class="headerlink" title="Apple Lossless（ALAC）"></a>Apple Lossless（ALAC）</h3><p> <img src="/images/applelossless.png"> </p><p>macOS作为很多音频编辑软件使用的系统环境，对于音频编码自然也是有着很高的要求，其实苹果自己也很早就跟进了无损音频的发展，在2004年的时候他们就推出了自己的无损音频压缩编码——Apple Lossless，但是当时这种格式只有苹果自家的系统和软件才能支持，并且会收取授权费用，这也导致了ALAC错过了无损音频开始发展的萌芽期，直到2011年，FLAC已经成为市场主流的情况下，苹果才将ALAC开放出来，并且取消了它的专利费用。</p><p>ALAC在编码方式上与其他几种无损音频压缩编码并没有太大的区别，同样是基于线性预测的算法，不过它的编码器连个压缩率选项都不提供，但编码速度确实挺快的。ALAC与AAC一样使用MP4作为数据容器，所以也继承了MP4良好的标签支持。</p><p>但是它的使用范围始终不广，本来就基本限定于苹果设备上，而在iOS和macOS纷纷支持FLAC之后，它的存在意义就更小了。</p><h3 id="Dolby-TrueHD与DTS-HD-Master-Audio：蓝光时代电影常用音频编码，新的战场"><a href="#Dolby-TrueHD与DTS-HD-Master-Audio：蓝光时代电影常用音频编码，新的战场" class="headerlink" title="Dolby TrueHD与DTS-HD Master Audio：蓝光时代电影常用音频编码，新的战场"></a>Dolby TrueHD与DTS-HD Master Audio：蓝光时代电影常用音频编码，新的战场</h3><p>从DVD到蓝光是一次大的飞跃，光盘这种存储介质在新的蓝色激光的帮助下，大幅度提升了存储密度，也使得它可以记录体积更为庞大的音频，有了大的空间，那肯定就要上无损啊，其实蓝光的容量已经足够放7.1声道、48kHz/24-bit的LPCM了，但是它的体积还是太大，所以Dolby和DTS不约而同的在高清时代推出了新版的音频压缩编码技术，Dolby这边是以Dolby TrueHD系列为主，而DTS是以DTS-HD Master Audio为主，两边都是无损压缩技术，这边就讲的粗略一些了。</p><h3 id="Dolby-TrueHD"><a href="#Dolby-TrueHD" class="headerlink" title="Dolby TrueHD"></a>Dolby TrueHD</h3><p><img src="/images/Dolby_TrueHD.png"></p><p>Dolby TrueHD使用与DVD-Audio相同的MLP编码对原始PCM音频数据进行处理，最高支持192kHz/24-bit的规格，另外还支持16个独立声道。与前任Dolby Digital一样，它也带有用于控制播放过程的元数据，提供更加还原的音频效果，Dolby后来推出的Atmos氛围声效果就是通过这些独立于音轨之外的元数据实现的。</p><h3 id="DTS-HD-Master-Audio"><a href="#DTS-HD-Master-Audio" class="headerlink" title="DTS-HD Master Audio"></a>DTS-HD Master Audio</h3><p><img src="/images/DTS-HD-MA.png"></p><p>这两种多见于蓝光原盘的音频编码都附带了对原来有损编码的兼容，DTS-HD Master Audio内建了一条有损音轨，称为DTS Core Stream，它的无损部分其实是对有损部分的一个补充，在支持的设备上自动就会播放无损的DTS-HD Master Audio，而在不支持的设备上也可以切换到DTS Core Stream，不会影响到正常的播放，而另一边的Dolby TrueHD则是通过附带一条Dolby Digital音轨的方式来解决兼容性。</p><p>DTS-HD Master Audio在日本用的比较多一些，尤其是各种动画小圆盘。</p><h3 id="TTK，TAK，WavPack等"><a href="#TTK，TAK，WavPack等" class="headerlink" title="TTK，TAK，WavPack等"></a>TTK，TAK，WavPack等</h3><p>除了上面三个稍微多见一点的编码以外，无损音频编码界还有很多其他的编码，由于APE推出时间早、FLAC用的人多等原因，这些无损压缩编码最终都没有推广开来，成为了比较小众的编码，虽然它们可能在某些方面有着优势，但很可惜，时势造英雄，取代英雄没有这么容易。</p><h2 id="PDM与DSD：另一种音频调制方式"><a href="#PDM与DSD：另一种音频调制方式" class="headerlink" title="PDM与DSD：另一种音频调制方式"></a>PDM与DSD：另一种音频调制方式</h2><p>说起PDM（<strong>P</strong>ulse <strong>D</strong>ensity <strong>M</strong>odulation 脉冲密度调制）可能没学过数字电路的同学会云里雾里，简单一点的说法就是PDM使用0和1来模拟原始波形，怎么模拟呢？通过在单位时间内0和1的堆叠来进行，因为此时0和1的密度代表了波形的振幅，所以叫做脉冲密度调制，它与PCM记录电平值的做法是完全不同的。</p><p>基于PDM调制的原理，Sony和飞利浦在1999年推出了用于取代CD的SACD（Super Audio CD），它使用的ΔΣ算法在模拟/数字转换（A/D）过程中会以64倍于CD的采样率（2.8224MHz）对原始音频进行过采样，而由于PDM的特性，量化位数当然就只有1-bit，因为只有每一个采样点都只有开或者关两种状态嘛。</p><p style="text-align:center;"><img src="/images/PCM-vs-DSD.png" /><br/>PCM与DSD的对比</p>DSD解决了传统PCM编码上的高频量化噪声问题，高采样率同时还带来了更加丰富的声音细节，而密度调制的方式也使得它拥有更大的声音动态范围。除了原始的64倍采样率的DSD之外，后来还推出了DSD128、DSD256、DSD512等新格式，它们的采样率逐步上升。<p>现在我们可以拿到的DSD音频一般都是ISO镜像格式的，使用专门的解码器可以将其转换成PCM音频播放，而支持DSD直通播放的设备还是相当的贵。</p><p>SACD的物理介质其实就是DVD，同期其实还有一个DVD-Audio阵营，他们仍然使用了兼容性较好的PCM调制，不过是基于一种新的名为MLP（Meridian Lossless Packing）编码方式，在双声道情况下最高支持192kHz/24-bit的PCM音频流，直到今天，它的规格都是相当高的。</p><p>但是Hi-Fi最终也只是少数人的玩物，它的配套解码器、播放器都太贵了，而且Sony当时为了拉拢唱片发行商做出了“永远不会让PC读取SACD”的承诺（后来他们食言了）也限制了SACD的进一步推广，在面对以iPod、iTunes为代表的数字音乐浪潮时，它和DVD-Audio都只能站在一边看着眼馋，事实证明，绝大多数人们需要的是方便快捷的听歌体验，所以便于携带的各种MP3播放器很快就取代掉了CD成为了新的潮流。而后，就是流媒体取代传统MP3的又一股浪潮，我们现在就身处于这股浪潮之中。</p><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>要总结的话就是，MP3和AAC这两种有二十多年历史的编码统治着有损音频编码，而FLAC基本上成为了无损音频编码的事实标准，而电影工业中Dolby和DTS仍然在竞争，目前看上去Dolby更占上风。而在开放软件领域中，Vorbis和Opus这两种开放的格式也慢慢在Web领域中得到大量应用。</p><p>其实看到最后，你会发现，本文写到的几种基于PCM调制的无损、有损音频压缩编码基本上都是基于类似的编码——有损压缩很多都是基于MDCT，而无损压缩基于线性预测编码。用烹饪打个比方，原始的PCM音频就是主要原料，你可以把MDCT和线性预测编码看成是不同的主要做法，比如MDCT是炒而LPC是蒸，其他的一些算法就像是对于主要原料的小处理方式，比如先过个水或者是先腌制一下，他们与主要做法一起左右着整道菜的口感和味道，而最终得到的菜的营养价值也根据不同的处理手段而改变。</p><p>另外，在有损压缩技术中，心理声学（Psychoacoustics）是一大助力剂，它帮助各种编码对原始音频进行取舍，在对听感影响很小的情况下大幅减少体积。而心理学也不只是在音频编码领域中起着作用，在视频和图像编码中，它同样有着重要的贡献，当然，这就是后话了。</p><p>因为各种物理极限和自然定律，数字记录方式永远不可能100%还原出现实，但是人类是不会停止研究、应用新技术的脚步的，数字世界将会越来越接近于现实。</p><p>实际上在这个网络流媒体时代，我们的需求也逐渐发生了改变，从怎么样带更多的歌变成了怎么样听得更爽，所以现在对于音频压缩技术还是有不小的需求的，一个更为高效的编码可以在节省网络带宽的同时提高人们听音乐的享受程度，而聚沙成塔，每个人那儿节省一点点的带宽最终聚合起来就可以节省巨大的带宽费用，对于用户本身也可以节省流量，双赢的事情何乐而不为呢？这也是为何我们要追求更高效的媒体压缩方式的一个初衷。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;前面讲过了多媒体容器格式的变迁，这期我们来看看音频编码是如何发展的。在讲编码之前，同样地，让我们来看看现在最为通用的数字音频格式——PCM是怎么来的吧。&lt;/p&gt;
&lt;h2 id=&quot;从音频波形到0和1&quot;&gt;&lt;a href=&quot;#从音频波形到0和1&quot; class=&quot;headerlin
      
    
    </summary>
    
    
    
      <category term="Tutorial" scheme="https://blog.xinoassassin.me/tags/Tutorial/"/>
    
  </entry>
  
  <entry>
    <title>《天气之子》：新海诚的回归</title>
    <link href="https://blog.xinoassassin.me/2019/11/weathering-with-you/"/>
    <id>https://blog.xinoassassin.me/2019/11/weathering-with-you/</id>
    <published>2019-11-03T11:00:20.000Z</published>
    <updated>2019-11-03T11:23:03.538Z</updated>
    
    <content type="html"><![CDATA[<p>不整那些虚的介绍，直接开始讲这电影。简单地说就是新海诚用这部电影告诉所有人，《你的名字。》只是一个意外，《天气之子》才是他自己真实想做的电影。</p> <img src="/images/Weathering_with_You_Movie_(Wordmark)Logo.png" style="zoom:40%;" /> <p>相比起《你的名字。》中前半部分还用了时间错位的手法留了个小小悬念稍微让观众要转一下弯，《天气之子》根本就是平铺直叙，开篇就按照时间顺序直接把阳菜如何成为“晴女”的过程给放出来了。</p><p><del>然后镜头一转到男主出场，没有对开头的场景进行任何的解释，女主似乎也不见了一样。本来以为男主会有什么奇特的本事或是什么生存的本领，可没想到他只是离家出走，只身一人来到东京想在大城市中活下去的普通乡下高中生，而同样没有想到新海诚会这么安排这两人的相见——在M记打工的女主看男主多次来餐厅只敢喝汤就送了个汉堡给他。也没有想到女主也同样是社会的弱势群体——她和自己的弟弟一起生活，没有父母只能靠自己去努力挣钱养活自己和弟弟。本来这两人也就是一面之缘的关系，按照现实生活的剧情发展他们俩也不会再有什么交集了，可这是电影。女主被M记辞退之后因为生活所迫在马上要踏入风俗业大门的时候，男主出现把她拐走了，这俩人的命运由此交织在了一起。</del></p><p>我不知道为什么这么多人都喊着对这次的新海诚电影失望了，在我看来，新海诚就应该做出这样的作品——他就想写少男少女之间相遇相离的感情故事，从很久以前开始就一直是，《你的名字。》只不过是在最后又加了一个相遇罢了，然后对于电影整体的把控上面表现得出色，其实它本质上也就是一个浪漫的恋爱故事而已。</p><p>当然可能观众会觉得，电影结构太松散，逻辑太不严谨。是，这些在这个大型罗曼蒂克故事里面是问题吗？不是。新海诚就真的只是想写一个爱的意义可以超越拯救世界的故事，拯救世界是什么？能吃吗？有阳菜重要吗？没有。所以男主当然是决定不论如何都要去找到女主，而另一边在女主那边，她肯定是后悔了，所以在天空中醒来见到帆高的那一刻她就开始奔跑了，毫不犹豫跟着帆高一起跳了下去。</p><p>其实故事就是这么简单，只不过是插了一些别的元素在里面然后被观众放大了看而已。然后因为存在有这些额外的元素，但并没有处理好，就会被抓着批评了。那干嘛要对新海诚有这么高的期待值呢？如果只是因为《你的名字。》就对这部电影产生了莫大的期待，那还是算了吧，新海诚其实仍然不是完全的商业化，就做观众喜欢看的、没有什么短板的电影这种情况没有在他身上发生，他还是想做自己的东西，他想画天空与云朵，好那干脆把场景主舞台放到天空中、放在云层之上。他想写为了爱拯救世界又算得上是什么，好男主冲破层层阻碍来到天上将女主唤醒并一起跳下，让暴雨尽情释放淹没半个东京。但是前作的成功已经裹挟了他，于是我们看到了那些似曾相识的桥段，在整部电影中多次看MV。但是你仍然能够感受到那种带着淡淡忧伤的小文艺气息，这就是新海诚的风格。</p><p>当然电影将很大的篇幅花在了帆高如何脱身来到简易鸟居的过程，途中还顺带塑造了一下桂介和夏美这对叔侄的人物形象，我觉得这段是稍显过长了，尤其是在山手线轨道上跑那段，当然这也可能有他自己的独特用意，这里还是不多加揣摩了。</p><p>至少于我而言，在一个半小时的时间里，我看完了一个浪漫到极致的故事，还有非常舒服的视觉和听觉体验，这不就足够了吗，我们为什么还要对着这么一部浪漫文艺片做“阅读理解”呢？这就是新海诚写的一个梦，一个关于浪漫恋爱的梦，你难道没有梦见过自己和喜欢的女孩一起经历一段极其不平凡的冒险吗？</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;不整那些虚的介绍，直接开始讲这电影。简单地说就是新海诚用这部电影告诉所有人，《你的名字。》只是一个意外，《天气之子》才是他自己真实想做的电影。&lt;/p&gt;
 &lt;img src=&quot;/images/Weathering_with_You_Movie_(Wordmark)Logo.p
      
    
    </summary>
    
    
    
      <category term="Entertainment" scheme="https://blog.xinoassassin.me/tags/Entertainment/"/>
    
      <category term="Comment" scheme="https://blog.xinoassassin.me/tags/Comment/"/>
    
      <category term="ACG" scheme="https://blog.xinoassassin.me/tags/ACG/"/>
    
  </entry>
  
  <entry>
    <title>多媒体容器格式变迁史</title>
    <link href="https://blog.xinoassassin.me/2019/10/Media-Containers/"/>
    <id>https://blog.xinoassassin.me/2019/10/Media-Containers/</id>
    <published>2019-10-24T08:44:33.000Z</published>
    <updated>2021-08-14T13:23:23.464Z</updated>
    
    <content type="html"><![CDATA[<p>从照相机、留声机诞生，解决了人们记录影像、声音的需求以来，人们就不断地追求着在有限的条件下尽可能地提高这些记录的品质，而从模拟时代过渡到数字时代以后，这方面的追求有一部分变成了在尽可能小的空间中提供尽可能好的内容质量，这就催生出了一系列不断演进着的媒体压缩技术。</p><p>不过本文的主题尚未来到媒体编码的历史，在讲音视频图像的压缩算法进化之路前，我们先来了解一下这些媒体内容的载体——容器格式的进化历程。</p><p>首先需要区分清楚的，就是容器格式与媒体编码格式。</p><h2 id="何为容器（Container）"><a href="#何为容器（Container）" class="headerlink" title="何为容器（Container）"></a>何为容器（Container）</h2><p>对于数字媒体数据来说，容器就是一个可以将多媒体数据混在一起存放的东西，就像是一个包装箱，它可以对音视频数据进行打包装箱，将原来的两块数据整合到一起，也可以单单只存放一种类型的媒体数据。它就像电影胶片一样，中央是一帧一帧的图像，而两旁则印有对应的音轨。</p><p> <img src="/images/0.jpg"> </p><p>举个简单的例子，常见的MP4就是一种媒体容器格式而不是编码格式，它里面的视频编码可以是现在最常见的AVC/H.264，也可以是它的前任H.263或者下一任——HEVC，音频编码可以是常见的AAC也可以是AC-3。</p><p>另一个生僻点的例子：最常见的图片格式——JPEG，它其实只是一种压缩方式，而它的存放方式其实叫做JFIF（<strong>J</strong>PEG <strong>F</strong>ile <strong>I</strong>nterchange <strong>F</strong>ormat），虽然在JPEG标准中定义了一种名为JIF（<strong>J</strong>PEG <strong>I</strong>nterchange <strong>F</strong>ormat）的容器格式，但是因为其缺乏某些关键要素，造成了使用的不便而被后来第三方开发出来的JFIF容器给取代了，今天我们能够看到的JPEG文件几乎都是装在JFIF容器中的。</p><p>虽然今天我们能够直接拿到的MP4文件里面装的几乎都是AVC+AAC的组合，但还是不能混淆了两者的概念，容器就是个容器，它没得灵魂。</p><h2 id="AVI：-老而弥坚"><a href="#AVI：-老而弥坚" class="headerlink" title="AVI： 老而弥坚"></a>AVI： 老而弥坚</h2><p>AVI可能是和笔者年龄相仿的朋友最早接触的一个格式。确实，它推出的时间相对较早，也是许久以前最为常见的一种容器格式。它全称叫做音频视频交错（<strong>A</strong>udio <strong>V</strong>ideo <strong>I</strong>nterleave），顾名思义，它就是简单地将视频与音频交错在一起，几帧视频之后就是对应的音频段，这样重复，直到结束。</p><p><img src="/images/structure.png"></p><p>它由三部分组成，头部、主体以及位于文件尾部的索引。头部中含有文件的元数据（metadata），比如视频的分辨率、码率总帧数等信息。主体部分是媒体数据的存放区，它使用了块（chunk）的概念，将原本的视频流和音频流分成块状进行交错放置，就是上面讲的一段视频一段音频交错放置，而尾部则是用来放置索引，它用来记录每个数据块在文件中的偏移位置。</p><p><img src="/images/1571729899048.png"></p><p>讲到AVI，还可以联动一下WAV和苹果那边的AIFF，这些容器格式其实是同源的，来自于EA（对，就是Electronic Arts）为了让不同公司开发出来的软件之间进行数据交换而在1985年开发出来的IFF（<strong>I</strong>nterchange <strong>F</strong>ile <strong>F</strong>ormat）格式。苹果在IFF的基础上开发出了AIFF，而微软与IBM将IFF格式使用的大端序改成小端序就成了RIFF（<strong>R</strong>esource <strong>I</strong>nterchange <strong>F</strong>ile <strong>F</strong>ormat），也就是AVI、WAV这两个容器的基本原型。</p><p><img src="/images/1571729442722.png"></p><p><img src="/images/1571729484714.png"></p><p>在AVI和WAV文件的头部，你都可以看到RIFF的标记。</p><p>AVI虽然老，但是因为它以帧为单位把数据切成块来存放的特性，使得它几乎支持市面上几乎所有的音视频编码。而它的缺点也有很多，首先因为索引在文件尾部的关系，所以它并不适合用来流传输；另外在容器中也没有时间戳，只能通过帧数和帧率信息来进行计算，在索引里面并没有写明时间戳—媒体位置的数据，所以要在播放AVI时进行快速跳转还需要额外的技术手段；而媒体数据分块存放也使得它对很多使用运动预测特性的视频编码的支持并不是太好，因为这些帧，比如P帧和B帧，都是通过I帧进行计算得到的，这就需要访问当前帧以外的数据了。</p><h2 id="MPEG-PS：VCD、DVD的功臣"><a href="#MPEG-PS：VCD、DVD的功臣" class="headerlink" title="MPEG-PS：VCD、DVD的功臣"></a>MPEG-PS：VCD、DVD的功臣</h2><p>用电脑播放过VCD的朋友一定还记得会在目录里寻找那个最大的.DAT文件来播放，而DVD则是找那个最大的.VOB。其实这两个格式都是MPEG-PS容器规范的一种，此PS非彼Photoshop，而是指Program Stream，是MPEG组织在1993年发布的一个容器标准，并且随后写入ISO/IEC国际标准，除了以上两种后缀名之外，还有.mpg也用的是这个标准。</p><p>MPEG-PS标准中引入了包的概念，整个文件由一个个包组成，每个包的大小并不相等，包里面含有这个包的时间码以及对应的音视频数据。</p><p>MPEG-PS已经随着时代的进步被废弃了，它只能存放MPEG-1、MPEG-2、MPEG-4这些出自同门的视频编码，限制性较大。但因为VCD和DVD的广泛流行，实际上它还是被用的相当多的。</p><h2 id="MPEG-TS：专为流传输而生"><a href="#MPEG-TS：专为流传输而生" class="headerlink" title="MPEG-TS：专为流传输而生"></a>MPEG-TS：专为流传输而生</h2><p>MPEG组织不仅仅为音视频文件的存储制定了容器标准，还早早地顺应时代潮流，为它们的传输准备了相应的容器。我们的数字电视和IPTV用的就是MPEG组织在1995年制定的Transport Stream，也就是TS容器，当然它也并不限于这两个场景，在现在的低延时直播系统中，MPEG-TS仍然占据了绝对主流的地位，原因就是它的整个结构就是为了流传输而设计的。</p><p> <img src="/images/MPEG-TS-Structure-Format.png"> </p><p>一个TS文件中可以容纳多个TS流，不同的流上面可以带有不同的音视频数据，这样通过接收一个TS文件，用户方面可以自由地在这个TS文件中的多个子TS流之间进行切换，非常适合用于传输电视节目。而它同时针对复杂的传输环境进行了针对性的优化，TS流的基础单位是一个个大小仅为188字节的包，每个包都有自己的独立时基，并且由于采用了固定大小，所以在传输过程中即使遭遇丢包也很快就可以恢复正常播放。</p><p>发展到今天，TS仍然在网络流传输时代中发挥着自己重要的作用，在苹果主导的HLS（Http Live Streaming）协议中使用的就是TS流，它比MPEG-DASH更加通用，因为后者对于MP4文件进行了一定的修改，在老平台上面支持不太好，而HLS使用的TS仍然是规范中的，可以被大多数设备兼容。</p><p>不过也因为TS分包较多的特性，会产生一些数据冗余，所以在存储场景中一般不会使用TS作为容器。</p><h4 id="M2TS：高清时代的TS变种"><a href="#M2TS：高清时代的TS变种" class="headerlink" title="M2TS：高清时代的TS变种"></a>M2TS：高清时代的TS变种</h4><p>M2TS多见于Blu-ray光盘和高清录像（AVCHD）中，它由MPEG-TS修改而来，加入了对于高清时代新的音视频编解码支持。</p><p><img src="/images/1571736319200.png"></p><p>并且由于TS文件的特性，每一个小片上都有自己的独立时间戳，这使得文件中一部分数据即使遭到破坏也不会影响到其他部分的正常播放，而且可以从中随意的进行切片操作。</p><h2 id="ASF：先进却早夭"><a href="#ASF：先进却早夭" class="headerlink" title="ASF：先进却早夭"></a>ASF：先进却早夭</h2><p>见过ASF格式视频的朋友我想应该不会太多，但是见过WMV和WMA这两个微软以前主推的媒体编码格式的朋友肯定有很多。其实WMV和WMA就是存放在ASF容器之中的，它全称高级系统格式（<strong>A</strong>dvanced <strong>S</strong>ystems <strong>F</strong>ormat），微软原本计划是用它来作为AVI容器的后继者的，它具有诸多先进的特性，比如说它可以包含视频除了规格以外的元数据，如导演、电影名这些，它也可以提供数字版权管理（DRM），还有非常好的流传输支持——仅需要加载文件的最小部分即可开始播放。</p><p><img src="/images/Computer_icons_of_for_ASF,_WMA_and_WMV_files.png"></p><p><img src="/images/ASF.JPG"></p><p>ASF身上的这些特性在当时还算是比较先进的，但不过这于事无补，微软建立它那套封闭媒体格式体系的做法并没有得到太多厂商和用户的支持，大家仍然更喜欢用其他更为开放一点的标准，比如MP3就是一个很好的例子。ASF容器也随着微软媒体格式的衰亡而渐渐消失了，我们今天已经几乎看不到WMV、WMA这两个曾经还很常见的格式的影子了。</p><h2 id="RM：昔日王者，如今不见踪影"><a href="#RM：昔日王者，如今不见踪影" class="headerlink" title="RM：昔日王者，如今不见踪影"></a>RM：昔日王者，如今不见踪影</h2><p><img src="/images/Realnetworks_logo_for_rmvb_article.gif"></p><p>与ASF差不多同时代流行的就是RM和RMVB了，在那个AVC尚未开始普及，DivX和XviD应用较少的年代中，RMVB在国内的各大下载站中都占据了绝对主流的地位，很多视频站也大多使用RM来提供“网络视频点播”的服务。</p><p><img src="/images/410527-20160723143918482-1905117845.gif"> </p><p>不过RM容器本身并不出彩，索引仍然位于文件尾部，不过由于数据段里面有加入时间戳，所以在流传输时还是可以应付用户的跳转操作的。因为这个容器本身与RM编码息息相关的原因，它本身也只能容纳RM编码的视频流，所以在RM编码没落之后我们就很少再看到这些昔日王者了，一个容器格式想要长存，要么在设计上有其独到之处，要么就是要开放，在众多平台上面提供支持。而RM两个理由都不占，效果又比不过新兴的AVC，所以它的没落也是必然了。</p><h2 id="FLV：前高清时代的宠儿"><a href="#FLV：前高清时代的宠儿" class="headerlink" title="FLV：前高清时代的宠儿"></a>FLV：前高清时代的宠儿</h2><p>还记得十年前的土豆网吗？彼时它还被称为“国内的Youtube”，当时视频网站普遍都还在用Flash写播放器实现流视频播放，而自然而然地，Adobe制定的Flash Video格式就成了这些视频网站主要使用的容器格式，也就是我们熟知的FLV。</p><p> <img src="/images/flv-icon.png"> </p><p>FLV格式是在Flash Player 6中引入的，当时更多的是被存放在SWF文件的内部，不过后来因为体积越来越大而直接独立了出来，它的结构相对而言比较简单，主要分为两块，位于文件头部的元数据信息和后面的音视频数据。不过在数据的存放上面，FLV是将数据分为多个标签进行存储的，每个标签都带有自己的时间戳，所以这就保证了流传输时的音画同步。</p><p>由于FLV结构简单但是功能足够用，并且被Flash Player天然支持，所以在当时的视频网站上面普遍都使用它作为容器，直到今天还有很多网站没有放弃它，虽然其中的视频编码早已升级，它也有衍生出来的F4V作为后继者，虽然后者的血统已经不是Flash家族的了。</p><h3 id="F4V：换了血的继任者"><a href="#F4V：换了血的继任者" class="headerlink" title="F4V：换了血的继任者"></a>F4V：换了血的继任者</h3><p>小编还记得土豆网在2009、2010年左右在国内率先开始使用H.264编码，当时如果将清晰度切换到“高清”就会播放这些用H.264编码的视频。而用飞速土豆加速会缓存到一些.f4v扩展名的文件，乍一看还以为它就是FLV，但其实不然，F4V其实是MP4所在的ISO标准容器家族的，但也是Adobe搞出来的FLV的后继者。关于后者的详情，请往下看。</p><h2 id="MOV：苹果向业界作出的贡献"><a href="#MOV：苹果向业界作出的贡献" class="headerlink" title="MOV：苹果向业界作出的贡献"></a>MOV：苹果向业界作出的贡献</h2><p>MOV格式的正式名字叫QuickTime File Format。看到这个QuickTime第一反应肯定是“哦，这是苹果的东西”。确实，QuickTime File Format是由苹果在1998年推出的，它引入了原子（atom）的概念，在QTFF格式中，atom是基本的数据单元，它可以用来容纳实际的音视频数据，也可以放置元数据和字幕等文本信息，atom中所容纳的数据类型和大小在每个atom的头部进行描述，经过一层层的嵌套之后，整个数据文件呈现了一种树状的结构，并且保留了强大的可扩展性。</p><p><img src="/images/iso_base_media.JPG"></p><p>MOV作为苹果QuickTime编码的成员，在目前仍然被苹果设备广泛使用着，并且对于它的支持非常好。1998年推出QTFF的同时，苹果将这个格式交给了ISO组织，后者将它标准化为国际通用容器格式，而基于这个标准衍生出来的容器，又可以叫做ISO/IEC base media file format，同时被MPEG组织采纳，写入MPEG-4 Part 12标准中。</p><h2 id="ISO标准容器格式"><a href="#ISO标准容器格式" class="headerlink" title="ISO标准容器格式"></a>ISO标准容器格式</h2><p>ISO标准容器格式是一个规范，它代表符合这个规范的容器类型，而不是特指某个格式。它是由苹果的QuickTime File Format发展而来的，在MPEG-4 Part 12中被最终确定并被ISO/IEC组织写入标准。它虽然没有具体实现，但是它定义了基于时间码的多媒体文件的通用结构，并由此成为了MP4、3GP等格式的基础。</p><p> <img src="/images/250px-Relations_between_ISO_MP4_3GPP_and_3GPP2_file_format.svg.png"> </p><h3 id="MP4：标准，泛用"><a href="#MP4：标准，泛用" class="headerlink" title="MP4：标准，泛用"></a>MP4：标准，泛用</h3><p>MP4肯定是现在最通用最流行的媒体容器，甚至可以说没有之一。但其实现在的MP4和早期的并不是同一个标准，目前常见的MP4标准是在2003年完整的的MPEG-4 Part 14规范中制定的，到今天为止也经过了多次的修订。它其实与MOV之间并没有太大的区别，基本上就是把MOV的atom改了个名字，叫成box，然后加了一点别的佐料。</p><p> <img src="/images/MPEG-4_boxes.jpg"> </p><p>苹果建立iTunes Store卖数字音乐的时候选择了AAC-LC作为他们的音频编码格式，而容器格式上面他们并没有选择与AAC-LC处于同一时代（MPEG-2）的ADTS，而是选择了比AAC-LC大一辈的MPEG-4标准容器，也就是MP4，不过因为它只含音频所以我们看到的扩展名就是.m4a，iTunes Store还曾经卖过一种只有视频没有音频的MV，它用的也是MP4，扩展名为.m4v。</p><p>目前很多视频网站已经从FLV切换到MP4上面了，而且还有一种新的MPEG-DASH格式就是借助于MP4可分割的特性实现的，它将一整段视频切成许多段小块，方便浏览器进行加载，减少HTTP长连接对服务器的压力。</p><blockquote><p><del>这里说一句题外话，当年某站刚上HTML5播放器的时候，因为他们原来的视频几乎全部都用的是FLV存储的，而HTML5标准并不支持它，所以要进行一个容器转换，某站当时一位非常年轻的程序员写出了一个在浏览器内实时将FLV文件转成MP4并喂给浏览器的媒体播放器的脚本，名为flv.js，这个脚本可能给某站省下了非常大的格式转换成本。不久之后这位程序员因为受不了某站的低薪而离职。这件事曾经引起了很多社区的热烈讨论，因为今天是程序员日所以特地写了这么一段。</del></p></blockquote><h3 id="3GP：精简小巧，手机最爱"><a href="#3GP：精简小巧，手机最爱" class="headerlink" title="3GP：精简小巧，手机最爱"></a>3GP：精简小巧，手机最爱</h3><p>3GP是MP4的同族兄弟，一样是基于ISO标准容器格式，用过3GP的兄弟肯定还记得这格式最多出现的地方是哪里——以诺基亚为代表的前智能手机时代，手机录像出来的文件大多都是3GP格式的。</p><p>3GP这个容器格式标准其实不是由以往的MPEG啊这类专注于多媒体编码的组织搞出来的，而是3GPP，对没错就是制定通信行业标准的那个组织制定的。它在容器支持的格式上进行了精简，只面向于手机可以进行的编码，比如MPEG-4 Visual、H.263这些比较老的视频编码和AMR、AAC这两种前智能手机时代使用较多的音频编码。</p><p>因为前智能手机时代的手机性能并不强大，一般也不需要支持很多种格式，不用像MP4那么全面，所以3GP最终成为了一种被广泛支持的格式，不过也因为它支持的格式过于有限，最终在智能手机时代被同门大哥MP4给取代了。</p><h3 id="MPEG-DASH"><a href="#MPEG-DASH" class="headerlink" title="MPEG-DASH"></a>MPEG-DASH</h3><p>面对时下流行的流媒体，MPEG组织对MP4文件进行了魔改，由于MP4天生可以进行无损切割的特性，DASH方式将原本媒体文件中完整的文件头的元数据信息和片段Box中的信息抽取出来单独写在一个文件（MPD）中，同时还包含了片段的URL等信息，播放器可以自适应选择需要的片段进行播放，在自适应程度上面比HLS更强一些。（其实MPEG-DASH也可以用TS作为容器，但用MP4更多一些）</p><p> <img src="/images/working-MPEG-DASH.png"> </p><p>目前MPEG-DASH已经成为了一项国际标准，人们比较熟悉的应用平台就是Youtube和Netflix，在这些平台上面你会发现浏览器在不断地加载一些小的视频文件，但是视频的播放是连续的。</p><h2 id="MKV：强大无需多言，免费让它受爱"><a href="#MKV：强大无需多言，免费让它受爱" class="headerlink" title="MKV：强大无需多言，免费让它受爱"></a>MKV：强大无需多言，免费让它受爱</h2><p>说到MKV，喜欢收藏高清电影的朋友肯定不会陌生，这种容器格式大概是和高清时代一起发展起来的，但其实它在2002年底就已经完成制定了，不过推广的很缓慢，到了高清时代和UHD时代人们才开始发现这种容器的强大，并用的越来越多，连微软都在Windows 10的初始版本中加入了对它的支持。</p><p><img src="/images/General-data-structure-of-a-multimedia-container-The-header-and-the-general-metadata.png"> </p><p>MKV全名Matroska，它身上最大的特点就是开放标准、免费使用，而且它可能是目前地球上最强大的数字媒体容器格式，一个文件中可以放音频、视频、字幕、字体还有章节信息等等等等，前面东西都是不限数量任你放多少都可以吃得下的，而且它是目前唯一一个支持封装ASS字幕的格式。</p><p>值得一提的是，这玩意儿是俄罗斯组织матрёшка搞出来的，其实本身是用于盗版的，俄罗斯的网络情况跟我们挺像的，网络上盗版横行，而MKV也帮助了文件的传播，目前来看，MKV可能是众多容器格式里面最好用的，无论是编辑元数据还是抽取轨道重新封装都有GUI工具支持，不过可惜的是众多视频编辑剪辑软件还是没有提供对它的支持。</p><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>其实读到最后你会发现，这些容器格式内部对于音视频数据的处理都是大同小异的，区别点其实并不大。更多的差距在于它们对于不同编码格式的支持程度、元数据的详细程度以及对于是否能够支持音视频以外的数据。</p><p>而发展到至今，MP4仍然够用，在互联网时代扮演着非常重要的角色；MKV在下载党那里被奉为圭臬；而TS格式仍然在数字电视系统中被广泛使用。但在他们之前的格式也不是说非常弱或者不好，只不过可能是他们支持的那些格式没落了顺带着把它们也带没了，真正像AVI那样确实在技术规格上落伍的容器并不多。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;从照相机、留声机诞生，解决了人们记录影像、声音的需求以来，人们就不断地追求着在有限的条件下尽可能地提高这些记录的品质，而从模拟时代过渡到数字时代以后，这方面的追求有一部分变成了在尽可能小的空间中提供尽可能好的内容质量，这就催生出了一系列不断演进着的媒体压缩技术。&lt;/p&gt;
&lt;
      
    
    </summary>
    
    
    
      <category term="杂" scheme="https://blog.xinoassassin.me/tags/%E6%9D%82/"/>
    
  </entry>
  
  <entry>
    <title>一个加钱就完事儿了的故事：9600KF超5.1GHz小记</title>
    <link href="https://blog.xinoassassin.me/2019/09/9600kf-5GHz/"/>
    <id>https://blog.xinoassassin.me/2019/09/9600kf-5GHz/</id>
    <published>2019-09-29T02:21:43.000Z</published>
    <updated>2021-08-21T16:15:49.275Z</updated>
    
    <content type="html"><![CDATA[<p>最近最火的CPU应该莫过于i5-9600KF，这周一的时候，这枚处理器突然在Intel的京东自营旗舰店理开始降价促销，1399的价格做到了比618还要低的史低，让一直想更换成9700K的我不禁心动，都这个价位了还要啥自行车？于是想到正好在上周六的时候收了朋友的一块Z170，魔改一下应该能上9600KF，低成本换平台，买了！于是当天看到优惠信息后不到半小时就下单了。</p><p><img src="/images/1569724371107.png"></p><p><img src="/images/1569716281622.png"></p><p>这批货应该是新到的，所以都还没有进京东各地的仓库，我的这枚处理器是上海发过来的，沙包的Z170先到了，用笔记本上面的i3-8100试了试，恩，兼容性不错，除了USB会报资源不够和内存兼容性有点小问题不能超手上的双面16GB内存之外其他一切正常，这让我对它能作为9600KF的座驾充满了信心。结果……（其实因为内存兼容性问题还下单了两条威刚金色威龙3600）</p><p>周三的时候，9600KF终于到了，上手贴好护舒宝，其实放在华擎华硕等一票除技嘉外的板子上都可以只屏蔽2点+短接2点（微星和蓝天这两家甚至只用屏蔽2点）。上板子，正当我兴冲冲地等着它进系统的时候，又开始卡Windows启动加载的第二个圈了。</p><p><img src="/images/IMG_6650_900.JPG"></p><p><img src="/images/IMG_6652_900.JPG"></p><p>无奈，先换回8100检查主板BIOS，用afuwin把当前BIOS备份出来，然后用MMTool查看里面含有的微码信息，发现缺少了针对R0步进的新微码，遂根据网上教程，找来同厂商的Z390板子BIOS，将微码移植过去，然后再用afuwin给刷上，一切看似很顺利应该是没有毛病了，结果仍然开机卡加载。</p><p><img src="/images/EA4cFgXU4AALSL_.jpg"></p><p>9代处理器步进情况，注意从9600KF和9600K基本都是8核屏蔽而来的，而且还分R0和P0两种步进，其中R0步进可以硬件免疫Spectre。</p><p>一头雾水之下只能认为是BIOS有问题，但在网上基本找不到解决办法，因为R0步进太新了，很少有人把新的R0步进处理器放在老主板上面用，无奈第二天还要跑上海，遂睡觉。</p><p>睡了可能只有三个钟就爬起来赶飞机了，地铁上面刷了下什么值得买发现京东上微星的Z390系列板子稍微有点优惠，考虑了一下觉得自己是没有能力解决那块Z170的BIOS问题了，于是直接下单MPG Z390 GAMING EDGE AC。</p><p>在广州和上海间当天来回还是有点累的，但是挡不住我用上新主板的兴奋之情。没几分钟把CPU显卡内存两块SSD和风扇全部搞定，然后插上电源开机，顺利点亮。然后直接进BIOS，先测试内存能不能上3200，打开XMP重启，很顺利就跳上3200了，然后再把处理器倍频拉到50，电压先开了自动。很顺利地直接进了系统，打开CPU-Z，看到了从来没见过的5GHz。</p><p><img src="/images/MSI_SnapShot_900.jpg"></p><p>然后打开AIDA64单拷FPU，观察到电压为1.34V，体感稍微有点高，想降一点，因为稍微降一点可以让CPU温度更低，散热器更好压，于是安装了Intel XTU，在Windows下面开始降电压，到1.3V的时候我感觉差不多了就没往下降，此时倍频其实可以再往上拉一档，5.1GHz单拷FPU过关，4热管的利民刺灵AS120可以把满载功耗120W的9600KF压在75度，很满意了。</p><p>进《刺客信条：奥德赛》简单benchmark了一下，同样显示配置的情况下，平均帧数上升了有10多帧，而高频CPU最大的优势——电子竞技游戏不掉最低帧我还没测过，但是想来这块5GHz的9600KF比我原本超频至3.8GHz的E3-1231V3肯定是要强得多了。</p><p><img src="/images/IMG_6779.PNG"></p><p>然后就是把BIOS各种选项都开起来，我是不喜欢CPU没负载的时候还加着一个1.32V这么高的电压的，所以在设置里面把电压控制改成了自适应+Offset，手动给了+0.08V的Offset，这样主板的电压在满载的时候最高可以达到1.32V，而在没有负载的时候也会自动降压。</p><p><img src="/images/1569722542854.png"></p><p>而内存，因为从朋友那儿借了闲置的两根单条16GB的DDR4-3200内存，自己又下单买了一组8GBx2的套装，所以想着能不能插一块搞个48GB内存系统，事实证明是可以的，只要两个通道的内存容量相等、频率和时序设定一致即可开启，手动在BIOS里面把时序改成差的那一套内存上自带XMP信息中的就可以把频率调至3200，并且十分稳定。</p><p><img src="/images/1569723402197.png"></p><p><img src="/images/MSI_SnapShot_02_900.jpg"></p><p><img src="/images/1569722895569.png"></p><p>这次时间几乎长达一周的折腾让我明白了，有些问题，加钱真的就完事儿了……</p><p><img src="/images/IMG_6780.PNG"></p><p>另外值得一提的是，想摸CJR颗粒的朋友可以买威刚的金色威龙，我推荐别人、自己、还有朋友那儿一共四套金色威龙，频率从3000到3600全部都摸到了CJR颗粒。</p><p><img src="/images/IMG_6655_900.JPG"></p><p>老平台：</p><p><img src="/images/IMG_6642_900.JPG"></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;最近最火的CPU应该莫过于i5-9600KF，这周一的时候，这枚处理器突然在Intel的京东自营旗舰店理开始降价促销，1399的价格做到了比618还要低的史低，让一直想更换成9700K的我不禁心动，都这个价位了还要啥自行车？于是想到正好在上周六的时候收了朋友的一块Z170，
      
    
    </summary>
    
    
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
      <category term="DIY" scheme="https://blog.xinoassassin.me/tags/DIY/"/>
    
  </entry>
  
  <entry>
    <title>一场因为BIOS版本太老而引发的无法进入系统悬案</title>
    <link href="https://blog.xinoassassin.me/2019/09/bios-cant-boot-into-system/"/>
    <id>https://blog.xinoassassin.me/2019/09/bios-cant-boot-into-system/</id>
    <published>2019-09-11T06:24:10.000Z</published>
    <updated>2019-09-11T12:35:06.355Z</updated>
    
    <content type="html"><![CDATA[<p>前几天朋友的老平台主板坏了，他也正好打算要换一套平台，于是找我写了个配置单，随后在京东上面下单了，京东发货速度很快，没两天东西全都到了，配置单就不晒了，我随手写的，免得被评论吐槽哪里哪里有问题，就用了9700K+Z390+2060SUPER。也正好因为是在新一轮促销开始前夕，所以整套平台的价格买贵了有个小一千，不过早买早享受嘛。</p><p>这周日，我过去朋友家里装机。装机我虽然不是很熟练，但是大部分细节我都是注意到了。装箱走线又多花了半小时，搞定之后一次就点亮了，随后在 BIOS 设定里面把内存的 XMP 开起来，频率上到 DDR4-3200 也没出现内存不兼容的现象，看上去一切都挺顺利的，然后我掏出做好的 Windows 10 原厂安装 U 盘准备安装系统。</p><p>插U盘，开机，按 F12 选择 U 盘启动！正当我等着 Windows 10 安装那个偏紫色的界面出现的时候，突然，Windows 启动界面那个用来提示正在加载系统的滚动圆卡住了。</p><p>我有点懵，心想，不应该啊，这镜像我验过 SHA-1 没有完整性问题啊。出于对微软品质的不放心，我马上重新下了一个稍老版本的 Windows 10 1903 安装镜像准备重新做安装盘，心想，嘿，这个版本我用过的，肯定没问题。</p><p>下好镜像打开 Rufus（极力推荐用这个开源免费软件来写镜像）打开镜像写入，很顺利。</p><p>插 U 盘，开机，按 F12 选择 U 盘启动，又卡住了！重新尝试了几次，每次都卡在这个地方。我把安装 U 盘插到自己的笔记本上面，很顺利地进入了 Windows 10 安装界面，看来不是镜像的问题。思索了一番，可能是内存超频的问题，于是进 BIOS 还原到默认设置，再重启，还是卡。</p><p>难道是我装机的时候哪里出问题了？于是把机箱两侧版再次打开，检查了一番发现没有问题啊，我装的100%没有问题。于是只能进入 BIOS 寻找问题可能所在之处，同时搜索这块板子，看看网上有没有遇到相似问题的人。</p><p>还真有，在搜索结果的第一位就是该主板的官方论坛中一个报告自己遇到无法启动错误的用户，简单看了下， 是 BIOS 版本的问题。</p><p>难不成到手的主板上面默认的 BIOS 还能让你进不去系统，进不去系统安装盘的？我留意了一下 BIOS 的版本，然后上官网找了主板的驱动下载页面，发现 BIOS 确实比较老，落后最新的已经有三个版本了。于是下载最新的 BIOS，刷入，再插启动盘，很流畅地进入了熟悉的 Windows 10 安装界面。</p><p>这里就不点名是哪块板子了，这次装机的经历让我明白了出厂 BIOS 并不是像网上很多人说的“最稳定”“可靠性最高”，而是很可能就问题百出，还是推荐大家上手就直接更新到最新稳定版的 BIOS，甚至一些 beta 版的 BIOS 版本都是可以尝试的，很多疑难杂症和平台小毛病通过 BIOS 的更新都是可以解决的。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;前几天朋友的老平台主板坏了，他也正好打算要换一套平台，于是找我写了个配置单，随后在京东上面下单了，京东发货速度很快，没两天东西全都到了，配置单就不晒了，我随手写的，免得被评论吐槽哪里哪里有问题，就用了9700K+Z390+2060SUPER。也正好因为是在新一轮促销开始前夕
      
    
    </summary>
    
    
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
  </entry>
  
  <entry>
    <title>怎样在境外网站上进行推流</title>
    <link href="https://blog.xinoassassin.me/2019/08/how-to-streaming-on-youtube/"/>
    <id>https://blog.xinoassassin.me/2019/08/how-to-streaming-on-youtube/</id>
    <published>2019-08-06T09:07:15.000Z</published>
    <updated>2021-08-21T16:28:42.762Z</updated>
    
    <content type="html"><![CDATA[<p>其实很简单，只需要将obs的网络连接引向代理，但是Shadowsocks中直接挂全局模式不太好，因为会将本来能够直连的网站也会通过代理连接，而且应该是不能代理到obs的（我从来不用全局）。</p><p>那么要怎么做到这点呢？我常用的是<a href="https://www.proxifier.com/">Proxifier</a>，使用教程网上很多，这边不再赘述，只要在规则里面把obs的执行文件加入需代理列表即可，各种使用RTMP协议的直播网站应该都是直接可以这样搞定。</p><img src="/images/proxifier-rule.png" width="100%" /><p>当然，一个高带宽的代理是必须条件。</p><p>题外话，无论是Youtube还是Twitch，其直播后台都比Bilibili强太多了。</p><img src="/images/youtube-back.png"  width="100%" />]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;其实很简单，只需要将obs的网络连接引向代理，但是Shadowsocks中直接挂全局模式不太好，因为会将本来能够直连的网站也会通过代理连接，而且应该是不能代理到obs的（我从来不用全局）。&lt;/p&gt;
&lt;p&gt;那么要怎么做到这点呢？我常用的是&lt;a href=&quot;https://ww
      
    
    </summary>
    
    
    
      <category term="Tutorial" scheme="https://blog.xinoassassin.me/tags/Tutorial/"/>
    
  </entry>
  
  <entry>
    <title>用youtube-dl在直播进行中同时下载</title>
    <link href="https://blog.xinoassassin.me/2019/08/Download-Youtube-Steaming-while-Streaming/"/>
    <id>https://blog.xinoassassin.me/2019/08/Download-Youtube-Steaming-while-Streaming/</id>
    <published>2019-08-01T16:21:00.000Z</published>
    <updated>2019-08-01T16:21:00.340Z</updated>
    
    <content type="html"><![CDATA[<p>基于今天花谱Live的下载失败，一怒之下又翻了翻youtube-dl的文档，发现可以在直播的同时直接截流保存成文件，用这种方法可以大大加快海盗效率。</p><h2 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h2><ul><li>良好的网络环境</li><li>空闲的CPU资源</li><li><a href="https://ytdl-org.github.io/youtube-dl/index.html" target="_blank" rel="noopener">youtube-dl</a></li><li><a href="https://ffmpeg.org/" target="_blank" rel="noopener">FFmpeg</a></li><li>一点点命令行基础</li></ul><p>这里建议将youtube-dl和FFmpeg所在的目录加入环境变量中，用户或者系统的均可。另外你还要搞清楚自己的本地代理端口号，一般为1080。</p><h2 id="配置文件与命令"><a href="#配置文件与命令" class="headerlink" title="配置文件与命令"></a>配置文件与命令</h2><p>youtube-dl支持配置文件，可以免去每次手动输一长串命令的麻烦，在Windows下其默认读取的配置文件位于用户目录下的<code>youtube-dl.conf</code>，即<code>%userprofile%\youtube-dl.conf</code>。</p><p>这边准备好了两份配置文件，一份是直播同时下载，另一份是平常下载视频。两份配置文件都需要手动更改里面的代理端口号，和自己环境所匹配，其他不需要进行更改。</p><p>普通下载：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">--proxy socks5://<span class="number">127.0</span>.<span class="number">0.1</span>:<span class="number">1081</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">-f <span class="string">'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">3</span></pre></td><td class="code"><pre><span class="line">-o <span class="string">'%(uploader)s/%(title)s.%(ext)s'</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">4</span></pre></td><td class="code"><pre><span class="line">--add-metadata</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">5</span></pre></td><td class="code"><pre><span class="line">--write-thumbnail</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">6</span></pre></td><td class="code"><pre><span class="line">--ignore-errors</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">7</span></pre></td><td class="code"><pre><span class="line">--extract-audio</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">8</span></pre></td><td class="code"><pre><span class="line">--audio-format best</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">9</span></pre></td><td class="code"><pre><span class="line">--audio-quality <span class="number">0</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">10</span></pre></td><td class="code"><pre><span class="line">--keep-video</span></pre></td></tr><tr><td class="gutter"><pre><span class="line">11</span></pre></td><td class="code"><pre><span class="line">--embed-thumbnail</span></pre></td></tr></table></figure><p>直播的同时进行下载：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span></pre></td><td class="code"><pre><span class="line">--proxy http://<span class="number">127.0</span>.<span class="number">0.1</span>:<span class="number">1081</span></span></pre></td></tr><tr><td class="gutter"><pre><span class="line">2</span></pre></td><td class="code"><pre><span class="line">-f <span class="string">'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'</span></span></pre></td></tr></table></figure><p>分别将这两块命令行保存成两个文件，修改Proxy行的端口为自己使用的，建议一个命名为<code>youtube-dl.conf</code>放置在<code>%userprofile%</code>目录下，另一个换个名字也存<code>%userprofile%</code>目录下方便调用。</p><p>以上工作完成之后打开命令提示符，注意是cmd不是PowerShell，因为后者在管道操作上面有一些不同，这边是用最简单的cmd来完成。命令：</p><p><code>youtube-dl -o - U2B-LINK|ffmpeg -i - -vcodec copy -acodec copy &quot;OUTPUT.mp4&quot;</code></p><p>如果你默认的配置文件不是用于直播时同时下载的，那么请指定配置文件：</p><p><code>youtube-dl -o - --config-location PATH\TO\CONFIG U2B-LINK|ffmpeg -i - -vcodec copy -acodec copy &quot;OUTPUT.mp4&quot;</code></p><p>注意，<code>-o</code>之后的<code>-</code>和<code>-i</code>之后的<code>-</code>均不能遗漏，这是管道操作最重要的两点之一，还有一点是管道操作符<code>|</code>，跟反斜杠<code>\</code>同一个键。命令中的<code>U2B-LINK</code>就是油管链接、<code>PATH\TO\CONFIG</code>就是youtube-dl的配置文件具体位置，<code>OUTPUT.mp4</code>是输出的文件名。</p><p><code>&gt;&gt;endl;</code></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;基于今天花谱Live的下载失败，一怒之下又翻了翻youtube-dl的文档，发现可以在直播的同时直接截流保存成文件，用这种方法可以大大加快海盗效率。&lt;/p&gt;
&lt;h2 id=&quot;准备工作&quot;&gt;&lt;a href=&quot;#准备工作&quot; class=&quot;headerlink&quot; title=&quot;准备
      
    
    </summary>
    
    
    
      <category term="Tutorial" scheme="https://blog.xinoassassin.me/tags/Tutorial/"/>
    
  </entry>
  
  <entry>
    <title>PC 硬件史话（三）</title>
    <link href="https://blog.xinoassassin.me/2019/05/pc-hardware-history-3/"/>
    <id>https://blog.xinoassassin.me/2019/05/pc-hardware-history-3/</id>
    <published>2019-05-30T06:34:06.000Z</published>
    <updated>2021-08-21T16:37:07.169Z</updated>
    
    <content type="html"><![CDATA[<h2 id="引子"><a href="#引子" class="headerlink" title="引子"></a>引子</h2><p>上回我们说到上世纪七十年代末期，由 Altair 8800 引发的微型计算机普及浪潮以及各种公司各种机型间的大战。让我们继续顺着时间线前行，来到激动人心的八九十年代，首先登场的，便是 IBM PC。</p><h2 id="IBM-Personal-Computer"><a href="#IBM-Personal-Computer" class="headerlink" title="IBM Personal Computer"></a>IBM Personal Computer</h2><p>新兴的个人计算机市场发展之迅猛是大公司们都始料未及的，据统计，1979年 PC 市场的销售额就达到了1.5亿美元，并且这个数字还在以每年超过 40% 的增速发展。如此具有前景的市场很难不吸引大公司们的眼球，随着 IBM 的一批同级别的竞争对手，如惠普和德州仪器等大厂的入场，IBM 也开始了自己的个人计算机设计之路。时任总裁约翰·欧宝和 CEO 法兰克·卡里在公司内部设立了很多有半自主性质的“独立业务单元”以鼓励创新，而后来的 IBM PC 缔造者之一，威廉姆·罗威，被任命为入门级分部的负责人，准备开发一款面向个人的微型计算机。</p><img src="/images/william_lowe.jpg" width=30% /><h3 id="IBM-5150"><a href="#IBM-5150" class="headerlink" title="IBM 5150"></a>IBM 5150</h3><p>首先，他们展开了市场调查。经销商们普遍回应对 IBM 的 PC 十分有兴趣，但是新的产品不能以 IBM 以前的那种风格来设计、售卖，他们要求 IBM 必须使用标准的元器件，以方便维修服务。鉴于 Apple Ⅱ 的畅销，就算是经销商们不喜欢苹果公司的做法，他们也没有办法。然而他们更加不指望 IBM 会改变以往的风格和官僚作风，去推出一款符合市场需求的微型计算机。</p><p>急于推出自家微机打入市场的 IBM 想到了走 OEM 的路子，正巧雅达利有成为 OEM 制造商的意愿。于是，罗威在 1980 年七月份的一次高层会议上提议用基于雅达利 800 的平台来打造第一款 PC，同时还提议收购雅达利，原因是“因为在 IBM 的文化基因中，我们没法做成这件事”。CEO 卡里也承认了罗威对于企业文化的描述，在当时的 IBM，需要四年和 300 人的团队才能打造出一款个人电脑。作为收购雅达利的替代方案，高层给予了罗威尝试的机会——允许他组建一支独立的开发团队，而罗威保证，在不用 IBM 传统方式的情况下，他可以在 30 天内给出原型，在一年的期限中做出成品。</p><p>当时世人都不相信 IBM 可以如此之快的推出自家的 PC，甚至于有分析师说：“要让 IBM 推出一台个人电脑就好像要教会一直大象跳踢踏舞”。事实上，在 1980 年八月份的展示中，他给出的原型机还仅仅处于勉强能运行起来的阶段。不过，雄心勃勃的罗威在当时已经制定了一份详细的商业计划，其中对于新型计算机的描述是一个开放式架构，可以采用非专有的软硬件，同时在实体店中售卖，而这些全部有违于 IBM 的传统。</p><p>不过高层却十分看好罗威的计划，在总裁欧宝的强力支持下，罗威组建了一个仅有 12 人组成的独立团队，这其中就有 PC 之父——唐·埃斯特利奇，当时他刚从一个失败的小型机项目中退出来。唐·埃斯特利奇主动请缨担任团队的领导人物，为了在一年之内端上成品，他们决定采用市场上已经成熟化了的标准方案。到了四月份，整台机器的硬件配置被确定了下来。在核心的 CPU 选择上，他们采用了已经在 IBM 别的产品线上使用过的，有着不错软件适配基础的 Intel 8088，而不是等自家更强的新处理器完工。另外，他们在硬件上还预留了可以让用户自行扩展的接口。而在操作系统方面，他们与当时并不知名的 Microsoft 合作，将 DOS 搬上了自家的 PC 平台，命名为 PC DOS，同时新产品也兼容流行的 CP/M 系统，意味着上市即有非常多的软件不用重新改写编译即可在 IBM PC 上面运行。</p><img src="/images/don_estridge_and_steve_jobs.jpg" width=50% /><p>经过一年的紧张开发，1981 年 8 月 12 日，IBM 正式发售了 Personal Computer，型号为 5150，定价 1565 美元，包含主机和键盘，可选配显示器和打印机。他们还请来了默剧大师卓别林的经典角色——小流浪汉，来主演一系列的电视广告。</p><img src="/images/ibm5150.jpg" width=50% /><iframe width="896" height="672" src="https://www.youtube.com/embed/kQT_YCBb9ao" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><p>得益于优秀的设计和侧重“个人化”的广告宣传，IBM PC 一上市就取得了巨大的成功，到 1984 年，系列已经占据了整个 PC 市场三分之一的份额。IBM PC 接过了由前辈传过来的计算机普及化大旗，引领了这场一直持续到二十一世纪的信息化革命。1982 年年末，《时代》周刊把“年度人物”更改成了“年度机器”，将 IBM 5150 搬到了自己的封面上。</p><img src="/images/IBM_5150_on_time_cover.jpg" /><h3 id="成为行业标准"><a href="#成为行业标准" class="headerlink" title="成为行业标准"></a>成为行业标准</h3><p>成功的不仅仅是 IBM 5150 这么一款机型那么简单，它如同当初罗威计划的那样，使用了开放的硬件架构，还预留了可扩展接口。团队还将 PC 的设计公知于众，每台 PC 都附带了一本技术参考手册。标准、通用的组件和预留的可扩展接口使得用户可以自行安装相兼容配件，比如可以把内存从 64k 扩展为 128k 等等。开放标准也使得 PC 拥有了一大批为其制造配件的厂商，大大促进了微机行业的整体发展。</p><p>硬件上用了通用组件，而细节又都公布在外，这不是给“山寨”留了非常大的口子吗？很快，其他的一些公司开始模仿 IBM PC 推出自家的 PC 产品，这其中大部分都是直接复刻了 PC 的设计。不过尽管 IBM 几乎公开了全部细节，但唯独保留了 PC 的一个基础软件模块——基本输入输出系统也就是 BIOS——没有完全公开。这难不倒人，一些大厂通过逆向工程分析并成功的以不侵犯著作权的形式重新实现了与 IBM PC 兼容的 BIOS，随后顺利推出了自己的 PC，这其中大部分都与 IBM 的 PC 相兼容，也就是说在 IBM PC 上能够运行的程序都可以直接拿来跑，可以用在 IBM PC 上的配件组件可以直接插在自家的机器上用，中文的兼容机最早可能就是指代这些与 IBM PC 相兼容的机型。随着 IBM PC 的热卖以及市场上与其相似的机型日益增多，IBM PC 开始成为个人电脑行业的事实标准，兼容这个标准就可以得到几乎是整个市场的配件以及软件支持，而且并不需要任何的授权费用，何乐而不为呢？</p><p>后来，随着行业不断推出升级的机型，PC 标准也在不断地升级进化，在经历了与苹果的麦金塔（Macintosh）等挑战者的竞争并最终取胜之后，它一直被行业延续使用到了今天，可以说，如果没有当年 PC 研发团队的明智决定，现在我们可能就使用不到如此平价、多种多样的个人计算机设备了。</p><h2 id="Intel-的崛起"><a href="#Intel-的崛起" class="headerlink" title="Intel 的崛起"></a>Intel 的崛起</h2><p>讲完了 PC 标准一统江湖的故事之后，让我们重新把目光转回到我们本系列文章第一章的主角——Intel 的身上。</p><h3 id="从-286-到-386"><a href="#从-286-到-386" class="headerlink" title="从 286 到 386"></a>从 286 到 386</h3><p>1982 年，Intel 发布了 80286，这是一枚在 8086 基础上的改进型处理器，从图中我们可以看到，80286 的外形已经开始靠近我们现在常见的处理器长的那样子了。它仍然是一枚 16 位处理器，但是加入了保护模式（简单来说就是可以保护程序实际内存地址不为人所知），并且完全兼容针对 8086 系列编写的程序，不久之后它被 IBM 采纳用于 PC 的升级型号——IBM PC/AT 上面，随着 PC 市场的火热，它也广销世界。</p><img src="/images/intel_80286.jpg" width=30% /><p>伴随着计算机行业的飞速发展，内存也在不断变大，但是一枚 16 位（内存寻址总线宽度）的处理器能够直接访问的内存只有 2 的 16 次方字节，也就是 64 KiB 的空间，这大大制约了程序员的发挥，于是一枚基于 x86 架构并且能访问更大的内存空间的 CPU 便应运而生了。</p><p>1985 年，Intel 推出了 80386，在提供 32 位内存寻址能力的基础上保留了对以前处理器的完全兼容，这只是它的一部分新功能，80386 对后世影响更为深远的，便是将首次出现在 80286 中的保护模式进行了升级改造，使处理器能够支持更为现代的多任务操作系统。80386 给现代 x86 处理器打下了基本框架，而之后在 1989 年发布的 80486 将原本外置的缓存和浮点运算单元搬入到 CPU 内部，至此，现代 x86 处理器彻底定型。</p><img src="/images/intel_80386.jpg" width=30% /><h3 id="爱恨情仇"><a href="#爱恨情仇" class="headerlink" title="爱恨情仇"></a>爱恨情仇</h3><p>前文提到过，x86 指令集的前身本来是 CTC 公司用来充当 8008 的开发费用“支付”给 Intel 的，也就是说 Intel 拥有其所有权。那么为什么至今世界上都还有第二家公司可以设计生产使用 x86 指令集的处理器呢？这还得从本系列文章的第一章最后留下的伏笔说起，那是 Intel 与 IBM、AMD 的两段爱恨纠葛。</p><p>IBM 当年在采用 8088 作为第一代 PC 的 CPU 时，根据当时半导体行业“第二供应商”的行规，向 Intel 施压，要求其与另一家公司合作供货，后者找到 AMD，签下了一份长期合作的协议，还有不少芯片生产厂商同时也获得了 Intel 的授权，所以当时的市场上可以见到来自不同厂商的 80x86 芯片。不过到了 80386 推出的时候，Intel 已经决心将主营业务由生产存储芯片转移到中央处理器的设计生产上面去，为了保护自家的知识产权和盈利，他们不想让别的公司成为 80386 的第二供应商。而 IBM 此时有了自己的小心思，可能是觉得用自家都可以造的 286 比较靠谱，可能是不想让 Intel 独占自己的货源，抑或是别的什么不可说的原因，总之不想用 386，而 Intel 的做法正好给了 IBM 一个不用 386 的借口，于是我们没能见到 386 被率先应用在 PC/XT 的后续机型上。</p><p>那么 386 该卖给谁呢？康柏（就是后来被惠普收购的那个）伸出了橄榄枝，最先与 Intel 合作推出了新的机型，市场反响热烈，很多生产商开始克隆康柏家的新机器。而 Intel 靠着 386 的先进设计和强大性能，一时间风头无两。但是 AMD 不乐意了，几年前签下的长期授权协议就被你这么单方面撕毁了？那么法庭见。现在有的说法是 Intel 将 AMD 状告上法院，有的说是 AMD 为原告，总之这对本是同根生的“兄弟”走上了法庭，这场官司一直打到 1990 年以 AMD 的胜利而告终。期间 AMD 也没闲着，逆向完了 386，在 1991 年的时候就推出了自家 100% 克隆出来的 Am386，以低廉的价格和比原版更高的主频打下了不少市场份额。</p><img src="/images/am386.jpg" width=30% /><p>不过这都没有妨碍 Intel 在 1992 年的时候成为世界范围内半导体行业排行第一的领军者，不幸的是，创始人之一的罗伯特·诺伊斯没能等到如同他儿子一般的公司登顶的那一天。1990 年 6 月 3 日，诺伊斯因为心脏病发作去世，享年 62 岁。</p><h3 id="Intel-Inside"><a href="#Intel-Inside" class="headerlink" title="Intel Inside"></a>Intel Inside</h3><p>就在人们纷纷认定 Intel 下一代的 CPU 会被命名为 80586 之时，Intel 却在 1993 年 3 月 22 日发布了全新的奔腾（Pentium）处理器。这个新造出来的单词由希腊语中的五”penta”与拉丁语中用于命名元素的词尾”ium”组成。奔腾处理器是 Intel 首次用商标命名自家的处理器，从此，Intel 家的处理器受到了商标权的保护。</p><p>奔腾带来的不止是新的名字，还有新的架构。在被内部命名为“P5”的微架构中，Intel 首次引入了超标量体系，简单说来就是可以使处理器内部的多个执行单元并行化执行指令，提升效率；另一个重大改变发生在 486 转移进处理器内部的高速缓存上，从原先的通用（可以同时存放指令和数据）缓存分成了专用缓存，一半存指令，一半存数据，这种缓存设计至今仍然被保留着。</p><img src="/images/L1_cache_2_parts.png" width=40% /><p>同时，Intel 开始大力推进品牌宣传，那段由五个音符组成的短旋律搭配上”Intel Inside”成为了 Intel 后来用了二十多年的经典宣传组合，深入人心。</p><iframe width="800" height="450" src="https://www.youtube.com/embed/cW8LLhHq9_c" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><h3 id="Wintel"><a href="#Wintel" class="headerlink" title="Wintel"></a>Wintel</h3><p>上世纪九十年代中期，Intel 俨然已经成为了 PC 行业的领头羊，由它参与主导制定了多种业界标准，比如用到今天的 USB 就是典型的例子。那么为什么 IBM 没能保持住自己在 PC 市场中的标准制定者的地位呢？让我们把时间倒回到八十年代。</p><p>上文提到，PC 标准是根据 IBM PC 来的，但它更是一种开放标准，想要以一己之力控制一个有数百家企业参与的开放标准，是一种妄想，而 IBM，正好就是这个做白日梦的人。1987 年，IBM 推出了 PS/2 系列机型，其中使用的扩展总线为 IBM 新设计并专有的 MSA 总线，这与市面上已经大量存在的 ISA 卡不兼容。而数量众多的制造商也不愿意使用新的 MSA 标准，首先，用新的总线制造扩展卡要向 IBM 缴纳一笔专利使用费，这与之前 ISA 总线的开放态度截然相反；其次，新的卡只能用在新的 IBM PS/2 系列机型上面，无法与市场主流所相容。所以最终妄想通过新机型来重获 PC 标准主导权的 IBM 并没有得逞，反而逐渐被时代所抛弃。</p><img src="/images/creative_sound_card_ISA.jpg" width=40% /><p>但是业界还是需要一个领导者，需要有人出来振臂一呼建立规范行业标准，这个位置，由全面占有 PC 处理器市场的 Intel 来坐，最为合适不过了。</p><p>Intel 也当仁不让，1992 年，它开始将自家的 PCI 标准随着处理器一起推向市场，同时联合 PC 市场中几个占有率比较高的厂商，成立了 PCI-SIG 联盟，以开放共赢的态度推广 PCI 标准，最终 PCI 成功取代了之前的 ISA 等总线，成为了行业通用标准，甚至连使用 IBM PowerPC 架构的苹果麦金塔系列电脑都开始使用它。而后来的 USB 也是相似的发展历程：Intel 联合了许多业界巨头一起制定标准，并且不收取授权费用，而也正是因为这些原因，USB 在九十年代与 IEEE 1394 的战争中获胜，一直沿用到了今天。</p><p>而另一边的软件行业，微软的 Windows 逐渐占据了桌面端操作系统的领先地位。不出乎意料的，两个行业巨头走到了一起，Wintel 联盟顺利成为了整个 PC 行业的主导者，一直到二十年后的今天，仍然没有人能够撼动这个地位。一台使用着 Intel 的 CPU 和微软的 Windows 操作系统的个人计算机，就是人们口中最常说的电脑。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>PC 已经统治了人们的桌面电脑，CPU 行业也被 Intel 所把持着，但对于游戏玩家而言最为重要的显卡，我们一点都没有涉及到。事实上，在九十年代初期，桌面端的图形显示也就是刚刚才起步的样子，下一章，我们将把重点转向显卡领域，感受一下那些经典的老游戏们和在它们背后工作着的老显卡们。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;引子&quot;&gt;&lt;a href=&quot;#引子&quot; class=&quot;headerlink&quot; title=&quot;引子&quot;&gt;&lt;/a&gt;引子&lt;/h2&gt;&lt;p&gt;上回我们说到上世纪七十年代末期，由 Altair 8800 引发的微型计算机普及浪潮以及各种公司各种机型间的大战。让我们继续顺着时间线前行，
      
    
    </summary>
    
    
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
      <category term="Hardware-History" scheme="https://blog.xinoassassin.me/tags/Hardware-History/"/>
    
  </entry>
  
  <entry>
    <title>十二年，十二季，277集——记《生活大爆炸》完结</title>
    <link href="https://blog.xinoassassin.me/2019/05/the-big-bang-theory/"/>
    <id>https://blog.xinoassassin.me/2019/05/the-big-bang-theory/</id>
    <published>2019-05-15T10:00:34.000Z</published>
    <updated>2020-02-29T05:19:19.842Z</updated>
    
    <content type="html"><![CDATA[<p>还有一天，一部陪伴了很多人许多年的“新经典”美式喜剧就将要迎来它最后的结局了。<em>The Big Bang Theory</em>，国内通称《生活大爆炸》，这部于 2007 年开始播映的情景喜剧创造了许多在当代年轻人中脍炙人口的经典角色，在那个 Nerds 或者说 Geeks 还在普遍不被理解、甚至被嘲笑的年代里，《生活大爆炸》却勇敢地塑造了四位“怪咖”作为剧集主角，并且在台词中掺入了无数晦涩难懂的科学名词。但就是这样一部颇具硬核精神的喜剧，在两季之后，名声响彻全球。</p><p>在今天已经不用再对《生活大爆炸》的剧情做过多地介绍了，简单的说就是两个年轻科学家合租之后遇到了住在隔壁的普通年轻女孩后发生的一系列故事。十二年来，我们一路看着这些角色们成长，受挫折，找到自己的另一半，结婚……这 277 集故事，就如同一部充满着日常的长篇流水账小说一般，平淡又不缺少必要的起伏。而作为喜剧，《生活大爆炸》从来不缺乏的就是辛辣的讽刺，恰好，作为主角的谢尔顿最令人印象深刻的就是他的毒舌，编剧们借这几位怪咖之口讥讽了包括但不限于政界、学界、商界，在国内甚至因为许多台词过于敏感而被下架，至今仍没有正规的渠道可以观看它。</p><p>如果问起《生活大爆炸》你最先想到的哪个角色，那我估计有 80% 的观众一定会说是谢尔顿。这个让所有观众又爱又恨的角色是整部剧集的核心人物，给他设定超高智商与超低情商似乎在隐喻着历史上许多有着怪才之名的人物，而这种“怪”被编剧和演员诠释的淋漓尽致，他自负自大却对室友以及朋友有着奇葩而又严苛的要求，但他善良的本性与很多时候略带稚气的处事方式又让人对他生不起气来。十二季中，最明显的不过是他的成长，从最开始不食人间烟火，到逐渐的开始懂得人情世故、结识朋友找到真爱，在他的成长中有许许多多感动人的温情瞬间。这样一个略带夸张成分的角色塑造之成功，甚至成为了一种流行文化的代号，连他的穿衣方式——里长袖外短袖也被人争相模仿。而饰演他的吉姆·帕森斯也多次艾美奖最佳男主角，这也是对于他能够驾驭好谢尔顿这样一个高难度角色的最好证明与奖励了。</p><p>不过《生活大爆炸》是一部群像剧，每个人都是有血有肉的，在长达 277 集的时间里，几乎每个角色都有能够充分演绎自己的舞台。比如四个怪咖中的另一“对”——Howard &amp; Raj 更像是这部剧中的搞笑和逗逼担当，但是他们之间那种超越了一般朋友的友情没有因为他们不是核心主角而被掩盖，相反的，编剧在他们两人的感情身上花费了相当多的笔墨，他们喜欢互相使绊，也争吵过、疏远过，但每一次又都重归于好，这是多么令人羡慕的一段铁关系。而除了以上提到的三人，四个怪咖中也许是最为正常的 Leonard 追到 Penny 的故事也是一段传奇，也许你不喜欢看有很重感情线的剧，但是《生活大爆炸》中的感情戏拌着喜剧元素，以不多的量恰好满足观众又不腻，也给主角之外的人们足够多的戏份来讲述他们自己的故事，这是这部群像剧成功之处。</p><p>2007 年，恰好是乔布斯和他的苹果公司推出第一代 iPhone 的那一年，我们甚至可以在整部剧集中回顾 iPhone 的发展史。而这十二年中就像剧名中的 Big Bang 一词一样，新兴的信息世界呈现出了指数级别的增长。同样的，作为数码潮流文化尤其是游戏文化的弄潮儿，这类话题不曾离开过《生活大爆炸》的舞台，我们不时就可以在剧中看到主角们聚在一起打着游戏。而对于游戏主机，从 Xbox 360 到 Wii，再到次世代登场，那年的 Xbox One 的命名以及主机硬件配置甚至被谢尔顿整整吐槽了两分钟。他和 Amy 在 Xbox One 和 PS4 之间犯选择困难症的样子也是那年许多欧美玩家的代表。</p><p>对于大众文化，作为剧集中设定为八十年代生人的几位主角，从小观看的便是以《星球大战》、《星际迷航》等为代表的科幻元素影视剧。《生活大爆炸》中充满了各种星战和超级英雄梗，谢尔顿的 T 恤图案常常就与这些元素有关，有不少国内外观众可能也是通过《生活大爆炸》才开始对这些文化感兴趣进而入坑。</p><p>《生活大爆炸》最为人津津乐道的一点就是它对于科学严谨性的尊重，作为一部轻松向的喜剧，在这方面却狠下了一番功夫，甚至设立了科学顾问的职位，剧中出现的各种方程式、科学名词都是经过检验推敲的。而主演中更是有货真价实的博士——Amy 的扮演者，神经生物学博士马伊姆·拜力克在剧中本色出演，连剧中她的实验室中的各种仪器都是她指定给剧组的。</p><p>天下终究没有不散的筵席，故事线随着谢尔顿在十一季最后一集与 Amy 正式结婚似乎已经交代的差不多了，大家都意识到了可能我们已经离《生活大爆炸》的结局不远了，可是在官方正式宣布就只剩一季的时候，还是甚感惊讶。这些陪伴我们度过了好多年的家伙们就要离开了，这可能是许许多多追长剧的观众们在每次剧集完结之时一定会感叹的事情。我想，可能在十年后的某一天，我会坐下来，磕着瓜子，随手点开硬盘里收藏的一集《生活大爆炸》一路看下去，重温这个给人嬉笑又给人温情的故事。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;还有一天，一部陪伴了很多人许多年的“新经典”美式喜剧就将要迎来它最后的结局了。&lt;em&gt;The Big Bang Theory&lt;/em&gt;，国内通称《生活大爆炸》，这部于 2007 年开始播映的情景喜剧创造了许多在当代年轻人中脍炙人口的经典角色，在那个 Nerds 或者说 Ge
      
    
    </summary>
    
    
    
      <category term="Entertainment" scheme="https://blog.xinoassassin.me/tags/Entertainment/"/>
    
      <category term="Comment" scheme="https://blog.xinoassassin.me/tags/Comment/"/>
    
  </entry>
  
  <entry>
    <title>PC 硬件史话（二）</title>
    <link href="https://blog.xinoassassin.me/2019/03/pc-hardware-history-2/"/>
    <id>https://blog.xinoassassin.me/2019/03/pc-hardware-history-2/</id>
    <published>2019-03-31T14:55:23.000Z</published>
    <updated>2021-08-21T16:36:03.245Z</updated>
    
    <content type="html"><![CDATA[<h2 id="导语"><a href="#导语" class="headerlink" title="导语"></a>导语</h2><p>这期史话笔者将视点从 CPU 这个单一元件转移开，来讲讲 PC 标准出现前的那些故事。</p><h2 id="DEC-与小型机"><a href="#DEC-与小型机" class="headerlink" title="DEC 与小型机"></a>DEC 与小型机</h2><p>Minicomputer，中文中多称为小型机，用今天的眼光来看，小型机其实并不小，大多数都还是有个立柜那么大。不过在微型计算机出现之前，小型机占据了计算机市场的大半江山，而要说起小型机，不得不提的就是影响了整个计算机历史的 PDP 系列和它背后的创造者—— DEC 公司。</p><h3 id="从-TX-0-到-PDP-1"><a href="#从-TX-0-到-PDP-1" class="headerlink" title="从 TX-0 到 PDP-1"></a>从 TX-0 到 PDP-1</h3><p>让我们把时间倒回到上世纪四五十年代，现代计算机刚诞生不久的时候。那时的计算机动辄几个书柜的大小，更大的可能占据几个房间，并且造价普遍十分昂贵。而从六十年代开始，随着晶体管和集成电路的大规模应用，计算机开始了小型化之路。首先出现的，是 1956 年由麻省理工学院林肯实验室<em>（MIT Lincoln Laboratory）</em>研发出的首台全晶体管计算机—— TX-0，这台计算机不久之后被 MIT “借走”拿去当教学仪器了。</p><p style="text-align: center;"><img src="/images/tx-0.jpg" width=100% />TX-0</p><p>随后，两名 TX-0 的工程师肯·奥尔森（Ken Olsen） 和 Harlan Anderson 在 MIT 注意到了一个奇怪的现象：明明学院里有同样提供给学生用并且更快的 IBM 的大型计算机，但学生就是喜欢在 TX-0 那儿排长长的队伍来尝试一下它。思索之后，他们认为小型计算机是有市场前景的，并且不是所有人都需要大型机那么强的性能，对于某些特定用途，低成本的解决方案就可以满足需求了；还有些用户往往更在意机器的图形输出或是实时可操作性而非机器的性能。</p><p>于是在 1957 年，TX-2 项目遇到严重困难之后，他们便离开了实验室，想用自己的理念拉到投资来推出产品。然而当时业界并不景气，小公司不断成立又破产，而诸如 RCA 和通用电气之类的大公司在计算机市场也讨不到好处。他们千辛万苦才拉到美国研究发展公司<em>（American Research and Development Corporation）</em>公司的投资，不过投资人 Georges Doriot 出于对市场的担心，要求他们变更原来的商业计划，把重心少放在计算机业务上一点，甚至还要求他们把公司的名字从原来的「数字计算机公司<em>（Digital Computer Corporation）</em>」改成了「数字装备公司<em>（Digital Equipment Corporation）</em>」（后文简称 DEC）。</p><p>没有办法，公司开头只能听投资人的，DEC 开始生产名为「数字实验室模块」的系列产品，这是一种集成了电子元件和晶体管的电路板，可以用来组建计算机。结果推出之后还挺受其他计算机公司欢迎的，他们买来组建测试自己系统的设备，在不景气的五十年代末期，这个产品线让刚成立的 DEC 开始盈利了。</p><p style="text-align: center;"><img src="/images/dec-digital-laboratory-module-hp-computerhistory.jpg">数字实验室模块</p><p>有了成功的产品线之后，DEC 开始将重心重新转回他们最初想做的小型机上。很快，在 1959 年末，采用新设计的计算机诞生了，同样为了规避风险，新的计算机的命名避开了 Computer 一词，新造了「可编程数据处理器<em>（Programmed Data Processor）</em>」这样一个有些拗口的名词。新的机器是系列第一台，即为 PDP-1，比起它需要占用半个房间的祖先 TX-0 来说，它小了很多，而性能却更强。它还拥有一块配套的 CRT 显示器，具有高速显示点阵的能力，用特殊的指令就可以让上面显示图片，这也是最早具有图形显示能力的机型之一。后来在 1961 年 9 月，DEC 向 MIT 捐赠了一台 PDP-1，就摆在 TX-0 的旁边。</p><p>PDP-1 的特殊意义不仅仅在于它的小型化上，更在于更深远的文化层面上。这款机型不但推动了黑客文化的发展，还孕育出了最早的电脑游戏——《太空大战<em>（Spacewar!）</em>》。对于软件领域来说，它更是意义非凡——一系列直到如今我们都仍在使用的软件类型的开山鼻祖就是在 PDP-1 上开发运行的，比如最早的文本编辑器（Notepad 记事本类），最早的文字处理器（文字排版类软件），最早的可交互式调试工具和最早可稳定运行的国际象棋程序等。</p><p style="text-align: center;"><img src="/images/Steve_Russell_and_PDP-1.png">计算机历史博物馆中的 PDP-1 和《太空大战》的创造者史蒂夫·拉塞尔</p><h3 id="PDP-8-和-PDP-11"><a href="#PDP-8-和-PDP-11" class="headerlink" title="PDP-8 和 PDP-11"></a>PDP-8 和 PDP-11</h3><p>在 PDP-1 推出之后 DEC 没有停歇，用今天的话来说就是疯狂刷机型，1960 年 PDP-3，1962年 PDP-4，1963 年 PDP-5，1964 年 PDP-7。这其中有的销售不佳，如 PDP-4 就非常惨淡，而 PDP-6 项目则直接因为市场反映不佳而直接搁浅；但继续走小型化之路的 PDP-5 却非常受市场欢迎。于是，秉承着 PDP-5 的理念，在此基础上进行大幅度改进的 PDP-8 被刷出来了。</p><p style="text-align: center;"><img src="/images/pdp-8.jpg">PDP-8</p><p>1965 年 3 月 22 日，PDP-8 发布，这是一台可以放在桌上使用的小型机，比起它的前辈们，在性能上可能有所不足，但是它足够“小”，而且更便宜：它标价 18500 美元，是首台售价低于两万美元的小型机，后续的 PDP-8/S 甚至卖到了一万美元之下，这在当时的市场如同一颗价格炸弹一般。而市场的反映也证明了人们对它的喜爱：PDP-8 系列产品一共卖出去了 30 万台，直接推动了 DEC 在上世纪六十年代中后期到七十年代中期称霸小型机市场。</p><p>之后在 1970 年，DEC 推出了 PDP 系列中销量最高的机型——PDP-11，这同样也是一台无论在硬件还是软件方面都对后世有着深远影响的机器：硬件方面，PDP-11 的架构设计影响了整个后七十年代的微处理器的设计，包括 Intel 的 x86 系列处理器和摩托罗拉那著名的 68k 系列处理器；而在软件上，今天互联网世界的基石之一——Unix 系统的首次正式出现，就是在 PDP-11 上面；还有后来流行的 CP/M 及其后继者 DOS 系统等，均受到了 PDP-11 原生系统的启发。正是因为 PDP-11 优秀的、满足时代需求并有些超前的设计，使得 PDP-11 从 1970 年问世一直卖到了九十年代，总共销售六十多万台，被不少评论家誉为“最受欢迎的小型机”，比尔·盖茨曾在他的简历里着重提到过有 PDP-11 的编程经验。</p><p style="text-align: center;"><img src="/images/PDP-11.jpg">PDP-11</p><h3 id="DEC-与今世"><a href="#DEC-与今世" class="headerlink" title="DEC 与今世"></a>DEC 与今世</h3><p>说到这里，让我们回头看看 DEC 创始人在 TX-0 前做出的思考，他们对于计算机小型化趋势的判断是多么的精准，而除了这点之外，DEC 还对今世有着非常重大的间接贡献，比如：</p><ul><li>与 C 语言的渊源<br>Unix 最早是用 PDP-7 的汇编语言写成的（当时还没有一个正式名字），为了移植到 PDP-11 上面，核心开发人员不断开发改进新的编程语言，而 C 语言就是这一阶段性完成产物，直到今天 C 语言标准中仍残留有 PDP-11 指令的痕迹。</li><li>与 Windows NT 的渊源<br>在 PDP 系列之后，DEC 继续推出了 VAX 系列，他们将其称之为超级小型机（Superminicomputer）。VAX 系列上运行的系统是重新设计编写的 VMS，其核心设计师戴夫·卡特勒（Dave Cutler）后来被微软招入麾下并领导了 Windows NT 的开发，他把 VMS 的不少理念带入到了 NT 上，甚至后来有说法称 Windows NT 是 VMS 的重新改进版本，而 NT 内核也一直被微软沿用至今。值得一提的是，戴夫·卡特勒后来还领导开发了 Azure 平台，再后来设计了 Xbox One 的系统架构。</li></ul><img src="/images/VAX-11-750.jpg" width=70% /><h3 id="巅峰与衰亡"><a href="#巅峰与衰亡" class="headerlink" title="巅峰与衰亡"></a>巅峰与衰亡</h3><p>不过有句话说的好：“王权没有永恒”，这句话同样可以套用在 DEC 身上。回首上一篇文章，PDP-11 推出之后不久，Intel 的 8008 就登上了舞台，单片式微处理器技术的成熟使得计算机行业掀起了一波更加汹涌的微型（Micro）化浪潮，其结果直接导致了微型计算机（Microcomputer），也就是我们现在使用的这代计算机的成熟和普及。而 DEC 作为小型化的先锋，却抗拒着新的浪潮。</p><p>1974 年，公司的研发组已经证明了微机的可行性，甚至给出了两台原型机，然而奥尔森却选择中断了这项企划。1977 年，DEC 又同样拒绝了开发个人电脑的提案，奥尔森甚至说「个人没有理由在家里放台计算机<em>（There is no reason for any individual to have a computer in his home.）</em>（后来他澄清他说的 Computer 指代的不是现代意义上的 PC）」。</p><p>历史证明了 DEC 选择了一条错误的道路。八十年代初期，在看到 IBM PC 大获成功之后，他们才迟迟推出自家类似的系统，但 PC 业界最经典的定律已经开始生效了——不兼容就会死。DEC 的新品不兼容 IBM PC 标准，没办法直接运行当时需求最猛的电子表格软件 Lotus 1-2-3，他们的新系列叫好不叫座，这也为日后 DEC 的衰败埋下了伏笔。</p><p>八十年代中期，PDP-11 以及后继者 VAX 系列的畅销将 DEC 带上了巅峰，市值超过 2 亿美元，拥有十万雇员，是计算机业界仅次于 IBM 的巨擘，甚至可以撼动它的位置。不过巅峰之后便是下坡路，微机市场打不过 PC，小型机市场也开始被新入场的对手蚕食，管理层昏招频出，大量资金竹篮打水一场空，而原有的不少合作伙伴纷纷离去。</p><p>九十年代开始，DEC 已经尽显颓势，经历了各种分拆之后的公司最终于 1998 年 6 月份被当时业界最牛的康柏（Compaq）收购了。</p><h2 id="IBM-PC-出现前的洪荒年代"><a href="#IBM-PC-出现前的洪荒年代" class="headerlink" title="IBM PC 出现前的洪荒年代"></a>IBM PC 出现前的洪荒年代</h2><p>愈演愈烈的微型化革命年代里，可谓是群雄四起。1972 年末，一家法国公司用 Intel 8008 为核心开发出了一款计算机，并用了 “Micro-ordinateur” 作为它的注册商标，在英语中，这个词等价于 Microcomputer。不过发明这个词的人并不是他们，而是大名鼎鼎的艾萨克·阿西莫夫（Isaac Asimov），他在 1956 年的短篇小说 <em>The Dying Night</em> 就已经使用了这个词。</p><p>Intel 8008 似乎特别受欢迎，早期的微机大多采用了 8008 作为他们机型的中央处理器。1974 年 4 月，Intel 发布了 8008 的加强版——8080。就是这枚处理器，真正拉开了微机普及的序幕。</p><h3 id="Altair-8800"><a href="#Altair-8800" class="headerlink" title="Altair 8800"></a>Altair 8800</h3><p>现在一般认为的首台商业成功的微型计算机就是 MITS 公司在 1974 年出品的 Altair 8800，而且这是 MITS 转型做计算机之后的第一个产品，在这之前 MITS 的主营产品是计算器。1972 年，由于 TI 的强势介入，计算器市场不好混了，MITS 的老板艾德·罗伯茨（Ed Roberts）决定转型去做计算机。1974 年他选定了当时刚发布不久的 Intel 8080 作为中央处理器，不过因为 8080 的官方定价略高，决心做平价计算机的罗伯茨跑去跟 Intel 砍价，他有着多年的 OEM 采购经验，谈价很厉害；而 Intel 那时候主营业务还是存储芯片，不懂小批量微处理器的定价。所以最终罗伯茨成功地把单片价格从 360 美元谈到了 75 美元。</p><p>十月份，他们完成了第一台原型机，并快递给了《大众电子*（Popular Electronics)*》杂志社，结果不巧的是，他们撞上了快递公司的罢工潮，杂志社并没有收到这台原型机。幸好，他们提前联系的杂志编辑手上已经有了不少这台机器的照片，于是在当年年末出版的杂志封面上，Altair 8800 正式登场了，这是一台可扩展的实用微型计算机，整台机器只需 439 美元！<br><img src="/images/Popular_Electronics_Cover_Jan_1975.jpg"></p><p>七十年代初，计算器和电子游戏的普及让大众认知了计算机的威力，而数字化产品也吸引着越来越多的电子爱好者。于是这么一台平价但是实用，而且扩展性还不赖的机器一上市就火了。这是罗伯茨自己也没想到的事情，原本他预想能卖 800 台已经很不错了，结果一个月内他们就收到了一千份订单，五月末的时候这个数字已经变成了 2500 台，到了八月，这个数字又翻了一番，还有不少订单是直接买组装好的机器。</p><p>而在 Altair 8800 身上最出名的故事可能已经为很多人所熟知了：我们亲爱的比尔·盖茨和他的好友保罗·艾伦为它开发了一套 BASIC 语言解译器，并察觉到了软件行业存在的巨大机遇，随后便创立了 Micro-Soft。<br><img src="/images/altair-8800.jpg"></p><p>在 Altair 8800 之后，许多公司察觉到了新的商机，于是乎类似的微型计算机如雨后春笋般开始出现，它们大多采用一块 8bit 的处理器比如 Intel 的 8080 或者 Zilog 的 Z80，采用了兼容 Altair 8800 的 S-100 总线，运行着 CP/M 之类的操作系统。在这波创业大潮中，就有苹果电脑公司，他们的 Apple II 获得了巨大的成功。也是摆这股潮流所赐，越来越多小公司也能用得起计算机来做数据库管理、会计还有文字排版之类的活。</p><img src="/images/Apple_II.jpg" width=70% /><p>不过最终使得微机走入千家万户的，还是有请我们的主角——PC。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>所谓合久必分，分久必合，微型计算机野蛮生长了足够长的时间了，是时候该有人出来一统江湖了！</p><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><ol><li><a href="https://www.computerhistory.org/pdp-1">PDP-1 Restoration Project</a></li><li><a href="http://www.computer-history.info/Page4.dir/pages/PDP.1.dir/index.html">The PDP-1</a></li><li><a href="https://www.bell-labs.com/usr/dmr/www/chist.html">The Development of the C Language</a></li><li><a href="https://xueqiu.com/3993902801/83078596">DEC创始人、小型机之父：肯·奥尔森</a></li><li><a href="https://www.computerhistory.org/revolution/minicomputers/11/331">DEC’s Blockbuster: The PDP-8 - CHM Revolution</a></li></ol>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;导语&quot;&gt;&lt;a href=&quot;#导语&quot; class=&quot;headerlink&quot; title=&quot;导语&quot;&gt;&lt;/a&gt;导语&lt;/h2&gt;&lt;p&gt;这期史话笔者将视点从 CPU 这个单一元件转移开，来讲讲 PC 标准出现前的那些故事。&lt;/p&gt;
&lt;h2 id=&quot;DEC-与小型机&quot;&gt;&lt;a h
      
    
    </summary>
    
    
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
      <category term="Hardware History" scheme="https://blog.xinoassassin.me/tags/Hardware-History/"/>
    
  </entry>
  
  <entry>
    <title>我的 Tools 文件夹中都有什么</title>
    <link href="https://blog.xinoassassin.me/2019/03/what-my-tools-folder-contains/"/>
    <id>https://blog.xinoassassin.me/2019/03/what-my-tools-folder-contains/</id>
    <published>2019-03-23T07:59:06.000Z</published>
    <updated>2020-02-29T05:18:02.465Z</updated>
    
    <content type="html"><![CDATA[<p>写点白开水文，这次介绍一下我存续最久的工具目录中都有些啥，按字母排序</p><h2 id="AcDown"><a href="#AcDown" class="headerlink" title="AcDown"></a><a href="https://archive.codeplex.com/?p=acdown" target="_blank" rel="noopener">AcDown</a></h2><p>充满时代感的名字，早已经没有后续更新，作者 <a href="https://weibo.com/kaedei" target="_blank" rel="noopener">Kaedei</a> 后来去做了弹弹Play</p><h2 id="Aegisub"><a href="#Aegisub" class="headerlink" title="Aegisub"></a><a href="http://www.aegisub.org/" target="_blank" rel="noopener">Aegisub</a></h2><p>老牌的字幕打轴制作软件</p><h2 id="AIDA64"><a href="#AIDA64" class="headerlink" title="AIDA64"></a><a href="https://www.aida64.com/" target="_blank" rel="noopener">AIDA64</a></h2><p>老牌的 PC 整体检测软件</p><h2 id="aMule"><a href="#aMule" class="headerlink" title="aMule"></a><a href="http://www.amule.org" target="_blank" rel="noopener">aMule</a></h2><p>开源 ED2K 协议下载器<br>其实国内的 ED2K 网络并没彻底死，还是有人在用的</p><h2 id="aria2"><a href="#aria2" class="headerlink" title="aria2"></a><a href="https://aria2.github.io/" target="_blank" rel="noopener">aria2</a></h2><p>全平台命令行下载器，配合图形化前端食用更佳</p><h2 id="AS-SSD-Benchmark"><a href="#AS-SSD-Benchmark" class="headerlink" title="AS SSD Benchmark"></a><a href="https://www.alex-is.de" target="_blank" rel="noopener">AS SSD Benchmark</a></h2><p>SSD 跑分软件</p><h2 id="BDinfo"><a href="#BDinfo" class="headerlink" title="BDinfo"></a><a href="https://www.videohelp.com/software/BDInfo" target="_blank" rel="noopener">BDinfo</a></h2><p>BD 原盘信息查看工具</p><h2 id="BIND"><a href="#BIND" class="headerlink" title="BIND"></a><a href="https://www.isc.org/downloads/bind/" target="_blank" rel="noopener">BIND</a></h2><p>一套关于 DNS 的工具集，其中我常用 dig</p><h2 id="CascView"><a href="#CascView" class="headerlink" title="CascView"></a><a href="http://www.zezula.net/en/casc/main.html" target="_blank" rel="noopener">CascView</a></h2><p>暴雪目前常用的 .casc 格式文件查看器</p><h2 id="Cinebench"><a href="#Cinebench" class="headerlink" title="Cinebench"></a><a href="https://www.maxon.net/en/products/cinebench-r20-overview/" target="_blank" rel="noopener">Cinebench</a></h2><p>跑分</p><h2 id="Cisco-TFTP-Server"><a href="#Cisco-TFTP-Server" class="headerlink" title="Cisco TFTP Server"></a>Cisco TFTP Server</h2><p>思科出品的 TFTP 服务器</p><h2 id="CPU-Z"><a href="#CPU-Z" class="headerlink" title="CPU-Z"></a><a href="https://www.cpuid.com/softwares/cpu-z.html" target="_blank" rel="noopener">CPU-Z</a></h2><p>老牌 CPU 检测工具</p><h2 id="Crass"><a href="#Crass" class="headerlink" title="Crass"></a><a href="http://galcrass.blog124.fc2blog.us/" target="_blank" rel="noopener">Crass</a></h2><p>痴汉公贼开发的通用 GALGAME 资源提取器，已停止更新</p><h2 id="CriPackTools"><a href="#CriPackTools" class="headerlink" title="CriPackTools"></a><a href="https://github.com/esperknight/CriPakTools" target="_blank" rel="noopener">CriPackTools</a></h2><p>CRIWARE 的 CPK 格式文件解压器</p><h2 id="CrystalDiskInfo"><a href="#CrystalDiskInfo" class="headerlink" title="CrystalDiskInfo"></a><a href="https://crystalmark.info/en/software/crystaldiskinfo/" target="_blank" rel="noopener">CrystalDiskInfo</a></h2><p>老牌硬盘状态查看器，S.M.A.R.T. 查看好手</p><h2 id="CrystalDiskMark"><a href="#CrystalDiskMark" class="headerlink" title="CrystalDiskMark"></a><a href="https://crystalmark.info/en/software/crystaldiskmark/" target="_blank" rel="noopener">CrystalDiskMark</a></h2><p>老牌硬盘跑分工具</p><h2 id="CTF-Tool"><a href="#CTF-Tool" class="headerlink" title="CTF Tool"></a><a href="http://wololo.net/talk/viewtopic.php?t=39000" target="_blank" rel="noopener">CTF Tool</a></h2><p>PSP 主题文件修改器</p><h2 id="Display-Driver-Uninstaller"><a href="#Display-Driver-Uninstaller" class="headerlink" title="Display Driver Uninstaller"></a><a href="https://www.wagnardsoft.com/forums/viewforum.php?f=5" target="_blank" rel="noopener">Display Driver Uninstaller</a></h2><p>Windows 的显卡驱动完整清除工具</p><h2 id="de4dot"><a href="#de4dot" class="headerlink" title="de4dot"></a><a href="https://github.com/0xd4d/de4dot" target="_blank" rel="noopener">de4dot</a></h2><p>.NET 程序反混淆和解包工具</p><h2 id="Detect-It-Easy"><a href="#Detect-It-Easy" class="headerlink" title="Detect It Easy"></a><a href="http://ntinfo.biz/index.html" target="_blank" rel="noopener">Detect It Easy</a></h2><p>程序包识别工具</p><h2 id="DiskGenius"><a href="#DiskGenius" class="headerlink" title="DiskGenius"></a><a href="http://www.diskgenius.cn/" target="_blank" rel="noopener">DiskGenius</a></h2><p>磁盘操作工具，该有的都有，不该有的也有</p><h2 id="Dism"><a href="#Dism" class="headerlink" title="Dism++"></a><a href="https://www.chuyu.me/zh-Hans/index.html" target="_blank" rel="noopener">Dism++</a></h2><p>原本是一个类似 Dism 前端的工具，现在有了很多其他实用功能</p><h2 id="DXVA-Checker"><a href="#DXVA-Checker" class="headerlink" title="DXVA Checker"></a><a href="https://bluesky23.yukishigure.com/en/DXVAChecker.html" target="_blank" rel="noopener">DXVA Checker</a></h2><p>DXVA 的检测工具</p><h2 id="Everything"><a href="#Everything" class="headerlink" title="Everything"></a><a href="https://www.voidtools.com" target="_blank" rel="noopener">Everything</a></h2><p>文件搜索器</p><h2 id="FastCopy"><a href="#FastCopy" class="headerlink" title="FastCopy"></a><a href="https://fastcopy.jp" target="_blank" rel="noopener">FastCopy</a></h2><p>文件拷贝器</p><h2 id="FFmpeg"><a href="#FFmpeg" class="headerlink" title="FFmpeg"></a><a href="https://ffmpeg.org" target="_blank" rel="noopener">FFmpeg</a></h2><h2 id="FLV-Extract"><a href="#FLV-Extract" class="headerlink" title="FLV Extract"></a><a href="https://www.moitah.net/" target="_blank" rel="noopener">FLV Extract</a></h2><p>FLV 文件的分离小工具</p><h2 id="GCFScape"><a href="#GCFScape" class="headerlink" title="GCFScape"></a><a href="http://nemesis.thewavelength.net/?p=26" target="_blank" rel="noopener">GCFScape</a></h2><p>Valve 的各种包格式查看器</p><h2 id="GPU-Z"><a href="#GPU-Z" class="headerlink" title="GPU-Z"></a><a href="https://www.techpowerup.com/gpuz/" target="_blank" rel="noopener">GPU-Z</a></h2><p>老牌 GPU 检测工具</p><h2 id="HD-Tune-Pro"><a href="#HD-Tune-Pro" class="headerlink" title="HD Tune Pro"></a><a href="https://www.hdtune.com/index.html" target="_blank" rel="noopener">HD Tune Pro</a></h2><p>老牌硬盘测试工具</p><h2 id="HWMonitor"><a href="#HWMonitor" class="headerlink" title="HWMonitor"></a><a href="https://www.cpuid.com/softwares/hwmonitor.html" target="_blank" rel="noopener">HWMonitor</a></h2><p>跟 CPU-Z 同门的硬件状态监视工具</p><h2 id="ILSpy"><a href="#ILSpy" class="headerlink" title="ILSpy"></a><a href="https://github.com/icsharpcode/ILSpy" target="_blank" rel="noopener">ILSpy</a></h2><p>.NET 程序集查看和反编译器</p><h2 id="inSSIDer"><a href="#inSSIDer" class="headerlink" title="inSSIDer"></a><a href="https://www.metageek.com/products/inssider/" target="_blank" rel="noopener">inSSIDer</a></h2><p>WiFi 网络环境查看器</p><h2 id="JSON-C-Class-Generator"><a href="#JSON-C-Class-Generator" class="headerlink" title="JSON C# Class Generator"></a><a href="http://www.xamasoft.com/json-class-generator/" target="_blank" rel="noopener">JSON C# Class Generator</a></h2><p>根据 JSON 文本生成 C# 类的小工具</p><h2 id="LAV-Filters"><a href="#LAV-Filters" class="headerlink" title="LAV Filters"></a><a href="https://github.com/Nevcairiel/LAVFilters" target="_blank" rel="noopener">LAV Filters</a></h2><p>一组应该是目前最牛逼的视频分离解码器</p><h2 id="libwebp"><a href="#libwebp" class="headerlink" title="libwebp"></a><a href="https://developers.google.com/speed/webp/download" target="_blank" rel="noopener">libwebp</a></h2><p>WebP 格式工具集</p><h2 id="Locale-Emulator"><a href="#Locale-Emulator" class="headerlink" title="Locale Emulator"></a><a href="https://pooi.moe/Locale-Emulator/" target="_blank" rel="noopener">Locale Emulator</a></h2><p>Locale 模拟器，作者后来写了 <a href="https://pooi.moe/QuickLook/" target="_blank" rel="noopener">QuickLook</a></p><h2 id="MadVR"><a href="#MadVR" class="headerlink" title="MadVR"></a><a href="http://madvr.com/" target="_blank" rel="noopener">MadVR</a></h2><p>目前最牛逼的视频渲染滤镜</p><h2 id="MD5Tool"><a href="#MD5Tool" class="headerlink" title="MD5Tool"></a><a href="https://github.com/XinoAssassin/md5tool" target="_blank" rel="noopener">MD5Tool</a></h2><p>自己写的 MD5 和 SHA-1 查看小工具</p><h2 id="MediaController"><a href="#MediaController" class="headerlink" title="MediaController"></a><a href="https://github.com/XinoAssassin/MediaController" target="_blank" rel="noopener">MediaController</a></h2><p>自己写的远程音乐播放状态控制器</p><h2 id="MediaInfo"><a href="#MediaInfo" class="headerlink" title="MediaInfo"></a><a href="https://mediaarea.net/en/MediaInfo" target="_blank" rel="noopener">MediaInfo</a></h2><p>媒体文件信息查看器</p><h2 id="MeGUI"><a href="#MeGUI" class="headerlink" title="MeGUI"></a><a href="https://sourceforge.net/projects/megui/" target="_blank" rel="noopener">MeGUI</a></h2><p>一套视频媒体编码工具图形前端</p><h2 id="MKVToolNix"><a href="#MKVToolNix" class="headerlink" title="MKVToolNix"></a><a href="https://mkvtoolnix.download/" target="_blank" rel="noopener">MKVToolNix</a></h2><p>MKV 文件处理工具集</p><h2 id="MonaTiny"><a href="#MonaTiny" class="headerlink" title="MonaTiny"></a><a href="https://sourceforge.net/projects/monaserver/files/MonaTiny/" target="_blank" rel="noopener">MonaTiny</a></h2><p>简易的视频流服务器，支持 RTMP、HTTP(S)、WS 等协议</p><h2 id="Mp3tag"><a href="#Mp3tag" class="headerlink" title="Mp3tag"></a><a href="https://www.mp3tag.de/en/" target="_blank" rel="noopener">Mp3tag</a></h2><p>音频文件元数据工具</p><h2 id="Notepad"><a href="#Notepad" class="headerlink" title="Notepad++"></a><a href="https://notepad-plus-plus.org/" target="_blank" rel="noopener">Notepad++</a></h2><h2 id="Ntlea"><a href="#Ntlea" class="headerlink" title="Ntlea"></a><a href="https://archive.codeplex.com/?p=ntlea" target="_blank" rel="noopener">Ntlea</a></h2><p><a href="https://weibo.com/galstars" target="_blank" rel="noopener">辣个男人</a>写的 Locale 模拟器</p><h2 id="NVIDIA-Inspector"><a href="#NVIDIA-Inspector" class="headerlink" title="NVIDIA Inspector"></a><a href="https://www.techpowerup.com/download/nvidia-inspector/" target="_blank" rel="noopener">NVIDIA Inspector</a></h2><p>N 卡驱动配置文件修改器</p><h2 id="PPSSPP"><a href="#PPSSPP" class="headerlink" title="PPSSPP"></a><a href="https://www.ppsspp.org/" target="_blank" rel="noopener">PPSSPP</a></h2><p>PSP 模拟器</p><h2 id="Privoxy"><a href="#Privoxy" class="headerlink" title="Privoxy"></a><a href="https://www.privoxy.org/" target="_blank" rel="noopener">Privoxy</a></h2><p>Web 代理</p><h2 id="Proxifier"><a href="#Proxifier" class="headerlink" title="Proxifier"></a><a href="https://www.proxifier.com/" target="_blank" rel="noopener">Proxifier</a></h2><p>Proxy Everything</p><h2 id="Putty"><a href="#Putty" class="headerlink" title="Putty"></a><a href="https://www.putty.org/" target="_blank" rel="noopener">Putty</a></h2><h2 id="Rufus"><a href="#Rufus" class="headerlink" title="Rufus"></a><a href="https://rufus.ie/" target="_blank" rel="noopener">Rufus</a></h2><p>目前最好用的 USB 启动介质制作器</p><h2 id="SysinternalsSuite"><a href="#SysinternalsSuite" class="headerlink" title="SysinternalsSuite"></a><a href="https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite" target="_blank" rel="noopener">SysinternalsSuite</a></h2><p>针对 Windows 系统的工具集</p><h2 id="Universal-Extractor"><a href="#Universal-Extractor" class="headerlink" title="Universal Extractor"></a><a href="https://www.legroom.net/software/uniextract" target="_blank" rel="noopener">Universal Extractor</a></h2><p>从各种压缩包和安装程序中解压提取文件的工具</p><h2 id="UsbEAm-Hosts-Editor"><a href="#UsbEAm-Hosts-Editor" class="headerlink" title="UsbEAm Hosts Editor"></a><a href="https://www.dogfight360.com/blog/475/" target="_blank" rel="noopener">UsbEAm Hosts Editor</a></h2><p>针对各大游戏平台的 Hosts 修改工具</p><h2 id="Valve-Resource-Format"><a href="#Valve-Resource-Format" class="headerlink" title="Valve Resource Format"></a><a href="https://github.com/SteamDatabase/ValveResourceFormat" target="_blank" rel="noopener">Valve Resource Format</a></h2><p>V社各种类型文件的查看、反编译器</p><h2 id="VTFEdit"><a href="#VTFEdit" class="headerlink" title="VTFEdit"></a><a href="http://nemesis.thewavelength.net/index.php?c=238" target="_blank" rel="noopener">VTFEdit</a></h2><p>VTF 文件编辑器</p><h2 id="WinHex"><a href="#WinHex" class="headerlink" title="WinHex"></a><a href="https://www.x-ways.net/winhex/" target="_blank" rel="noopener">WinHex</a></h2><p>居家必备的编辑器</p><h2 id="WinMTR"><a href="#WinMTR" class="headerlink" title="WinMTR"></a><a href="https://sourceforge.net/projects/winmtr/" target="_blank" rel="noopener">WinMTR</a></h2><p>Windows 下的图形化 MTR 工具</p><h2 id="WinSCP"><a href="#WinSCP" class="headerlink" title="WinSCP"></a><a href="https://winscp.net" target="_blank" rel="noopener">WinSCP</a></h2><h2 id="WiX-Toolset"><a href="#WiX-Toolset" class="headerlink" title="WiX Toolset"></a><a href="http://wixtoolset.org/" target="_blank" rel="noopener">WiX Toolset</a></h2><p>针对 Windows 安装包(.msi等格式)的工具集</p><h2 id="WizTree"><a href="#WizTree" class="headerlink" title="WizTree"></a><a href="https://antibody-software.com/web/software/software/wiztree-finds-the-files-and-folders-using-the-most-disk-space-on-your-hard-drive/" target="_blank" rel="noopener">WizTree</a></h2><p>磁盘空间占用可视化查看器</p><h2 id="x264-amp-x265"><a href="#x264-amp-x265" class="headerlink" title="x264 &amp; x265"></a>x264 &amp; x265</h2><p>开源 AVC 和 HEVC 编码器</p><h2 id="Others"><a href="#Others" class="headerlink" title="Others"></a>Others</h2><p>还有一些过于硬核的工具没有列出来，诸如 BIOS 修改之类的工具。</p><p><code>&gt;&gt;endl;</code></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;写点白开水文，这次介绍一下我存续最久的工具目录中都有些啥，按字母排序&lt;/p&gt;
&lt;h2 id=&quot;AcDown&quot;&gt;&lt;a href=&quot;#AcDown&quot; class=&quot;headerlink&quot; title=&quot;AcDown&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://archive.c
      
    
    </summary>
    
    
    
      <category term="Tutorial" scheme="https://blog.xinoassassin.me/tags/Tutorial/"/>
    
  </entry>
  
  <entry>
    <title>PC 硬件史话（一）</title>
    <link href="https://blog.xinoassassin.me/2019/03/pc-hardware-history-1/"/>
    <id>https://blog.xinoassassin.me/2019/03/pc-hardware-history-1/</id>
    <published>2019-03-04T05:34:00.000Z</published>
    <updated>2021-08-21T16:33:25.528Z</updated>
    
    <content type="html"><![CDATA[<h2 id="成立之初的-Intel-和-AMD"><a href="#成立之初的-Intel-和-AMD" class="headerlink" title="成立之初的 Intel 和 AMD"></a>成立之初的 Intel 和 AMD</h2><h3 id="Intel-篇"><a href="#Intel-篇" class="headerlink" title="Intel 篇"></a>Intel 篇</h3><p>书接上文，NM Electronics，在创立的头个月底改名成 Intel。据称，Intel 这个名字是启发自 <em>int</em>egrated 和 <em>el</em>ectronics 的整合。</p><img src="/images/Intel_old_logo.png" width="50%" /><p>Intel 成立初期的主要业务并不是微处理器的开发与制造，而是瞄准半导体存储器市场，公司的首款产品便是 SRAM（静态随机存取存储器，现多见于 CPU 内部）—— Intel 3101。</p><img src="/images/Intel-3101.jpg" /><p>3101 推出于 1969 年，比当时市场上的同类产品快了接近一倍。同年，Intel 还推出了 1101 和 3301 两款产品，前者是创新性地将 MOSFET 工艺运用于存储器制造的产物，后者则是一款只读存储器（<strong>R</strong>ead-<strong>O</strong>nly <strong>M</strong>emory）。虽然 3101 和 1101 这两款产品都颇具创新意义，但是影响并不大。真正使 Intel 开始出名的，是 1970 年发售的 1103——世界上第一款商用的 DRAM（动态随机存取存储器，也就是今天最常见的内存类型）。1103 在 1972 年成为了最为畅销的半导体存储芯片，并成功地在许多应用场合完成了 Intel 原本的设想——取代当时最流行的磁芯存储器（Magnetic-core memory）。</p><h3 id="AMD-篇"><a href="#AMD-篇" class="headerlink" title="AMD 篇"></a>AMD 篇</h3><p>与 Intel 不同的是，AMD 在成立之初原本是仙童半导体和国家半导体（National Semiconductor）第二供货商，专注于制造芯片，并引入了美国军方标准作为质量管理标准。要知道，在早期的计算机工业里，微芯片不可靠的质量是各大客户都极力想避免的问题，所以 AMD 靠这个赢得了一些优势。</p><p>在 1969 年 11 月，AMD 推出了它自己的首款产品：Am9300，一款移位寄存器。之后陆续推出了一系列畅销的元器件。</p><p>在 1971 年，AMD 进入了内存芯片市场，同年公司的销售额就已经达到了四百六十万美元。</p><p>到 1975 年，AMD 一共生产着 212 种产品，其中 49 种是自主研发的。</p><h2 id="4004-与-8008"><a href="#4004-与-8008" class="headerlink" title="4004 与 8008"></a>4004 与 8008</h2><h3 id="Intel-4004"><a href="#Intel-4004" class="headerlink" title="Intel 4004"></a>Intel 4004</h3><p>终于讲到 Intel 的第一颗微处理器（Microprocessor），4004 的故事了。</p><p>1969 年，Busicom，一家日本的计算器公司拿着自己设计的一套由 12 枚 IC 组成的计算器引擎方案找到了刚成立不久的 Intel（其实是 Intel 主动去接触的），想让他们完善并生产这套引擎。然而 Intel 方面给出了一套更加优雅的方案，1971 年初，由 Federico Faggin 领导的开发团队设计出了一套只需要 4 枚芯片就可以取代原来的 12 枚芯片的芯片组，也就是后来的 MCS-4 芯片组，其中的核心便是大名鼎鼎的 4004。</p><img src="/images/intel-4004.jpg" /><p>4004 使用了 10 微米的制程，一共集成了约 2300 个晶体管，最高主频为 740 kHz，数据位宽为 4 bit，每秒最多能执行约 92000 条指令。这些参数在当时虽然并不是最强的，但因为它是市场上首款通用可编程处理器，又是全球首款商用单片微处理器，所以就像 1971 年 11 月 15 日 Intel 在 Electronic News 上刊登的广告语说的那样，它在集成电子领域开创了一个新的纪元。</p><img src="/images/intel-4004-ad.jpg" /><p>4004 直到 1981 年才停产，期间推出了 4040 作为它的加强版。这里有一段 4004 发布三十五周年纪念会的录像，其中有两位设计师的演讲，感兴趣的朋友可以去看看：<a href="https://www.youtube.com/watch?v=j00AULJLCNo">Intel 4004 Microprocessor 35th Anniversary</a></p><h3 id="Intel-8008"><a href="#Intel-8008" class="headerlink" title="Intel 8008"></a>Intel 8008</h3><p>8008 与 4004 实际上是两个独立进行的项目，8008 项目开始的时间甚至可能早于 4004。而 8008 背后的故事，则是非常有趣：</p><p>Computer Terminal Corporation (CTC) 是当时刚成立不久的一家设计制造小型桌面终端的公司，1967 年他们推出了一款非常受欢迎的机型：Datapoint 3300。</p><img src="/images/DataPoint_3300.jpg" width="100%" /><p>这款机型虽然卖的不错，然而它的小毛病可是不少，比如发热问题就是其一。为了解决这台机型上存在的问题，CTC 开始考虑采用单片 CPU 的设计来改进内部电路，于是公司掌门人之一的 Roche 找到了罗伯特·诺伊斯，交流了这个想法。诺伊斯觉得这是个绝妙的点子，而且 Intel 有能力做，但是这样子干很蠢：“一台计算机只能卖一块主处理芯片，但是可以卖数百颗存储芯片”。另一个考量则是当时 Intel 的存量客户几乎都是买他们的存储芯片搭配自己研发的处理器，而一旦 Intel 开始卖自家的处理器了，那么它和客户间就可能会形成竞争关系，原本的客户可能会另寻供应商。</p><p>但最终诺伊斯还是在 1970 年初和 CTC 签下了价值 50000 美元的开发合同，不过呢，CTC 同时还找了德州仪器作为它们的备胎。</p><p>接下来的故事就众说纷纭了，英文维基上给出的这个缺少来源的说法是 TI（德州仪器）拿到了 Intel 的早期设计，并做出了样片，但是有许多 bug，被 CTC 给否了。Intel 自己的进度也不顺利，推迟了。结果呢，CTC 那边等不及了，还是用了老而成熟的方案在 1970 年 3 月末推出了改进型新品：Datapoint 2200。这新品都出了，那么自然也就不需要原来计划的配套处理器了，所以 CTC 叫停了代号为 1201 的芯片的研发。</p><p>半年过去了，似乎是注意到了 4004 的成功，有家计算器生产商向 Intel 表达了想把 1201 芯片用在他们家的科学计算器上的想法。正巧隔壁 4004 项目已经完成了，我们的老熟人 Federico Faggin 过来接手了 1201 项目，他们对原来的设计进行了一些小调整。最终在 1971 年的晚些时候，Intel 把完成版的 1201 送到了 CTC 手上。</p><p>结果 CTC 为了推出新的产品，已经不满足于 1201 所提供的性能，于是他们砍掉了这个项目，用 1201 身上的所有知识产权代替五万美金向 Intel 支付了费用。随后 Intel 将这款产品更名为 8008，并在 1972 年 4 月份将它以 $120 的价格放进了自家的产品目录里，他们原本担心的老客户流失问题也没有发生，反而延续了 4004 在商业上的成功。</p><img src="/images/Intel_8008.jpg" width="100%" /><p>与 4004 一样，8008 也是采用的 10 微米制程，集成了约 3500 个晶体管，早期版本主频为 500 kHz，后来升高至 800 kHz。但因为数据位宽为 8 bit，所以实际性能比 4004 还是要高不少。</p><p>8008 最大的意义还是在它的设计上，后来 1974 年 4 月份发布的 8080 延续了它的设计，而 x86 的开创者 8086 则是继承了 8080 的指令集，所以说 8008 是现在所有 x86 CPU 的老祖宗也不为过。</p><h2 id="AMD-的逆向工程"><a href="#AMD-的逆向工程" class="headerlink" title="AMD 的逆向工程"></a>AMD 的逆向工程</h2><p>1974 年，Intel 推出了 8080 微处理器。AMD 此时想进入微处理器的市场，于是他们搞到一块早期的 8080 芯片，对其展开了逆向工程：显微拍照，用照片捣鼓出了原理图和逻辑图，然后研发出了自己的第一款微处理器：Am9080。</p><img src="/images/AMD_Am9080.jpg" width="100%" /><p>Am9080 的制造成本只需要 50 美分，但却以 700 美元一片的价格卖给军用市场。结果不久之后 Intel 就与 AMD 签署了一份协议，AMD 成为了 8080 的授权第二供应商，这使得两家可以联合打入那些不接受单一供货源的市场，这份协议也给后来的故事埋下了伏笔。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>虽然 Intel 研发出的这两款单片型处理器的性能都挺一般的，但还是有不少业界人士和爱好者注意到了这种类型的处理器的远大前景——可以加速计算机的小型化，而事实上，在七十年代中期，已经有几家公司开始尝试用 Intel 的芯片设计制造小型的计算机了。</p><p>下一章，笔者将会把主视角从 CPU 转开，尝试讲述一下 IBM PC 兼容标准诞生的故事。</p><h2 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h2><ol><li><a href="https://newsroom.intel.com/news/intel-at-50-intels-first-product-3101/">Intel at 50: Intel’s First Product – the 3101</a></li><li><a href="https://newsroom.intel.com/news/intel-50-intels-1101/">Intel at 50: Intel’s 1101</a></li><li><a href="http://www.mynikko.com/CPU/3101.html">MyNikko.com 微處理器博物館 - Intel 3101</a></li><li><a href="https://zhuanlan.zhihu.com/p/39804154">纪念英特尔成立五十周年 篇一 阴差阳错</a></li><li><a href="https://www.intel.com/content/www/us/en/history/museum-story-of-intel-4004.html">The Story of the Intel® 4004</a></li><li><a href="https://en.wikichip.org/wiki/intel/mcs-8#History">MCS-8  - Intel - WikiChip</a></li></ol><p>英文维基不作为参考资料列出。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;成立之初的-Intel-和-AMD&quot;&gt;&lt;a href=&quot;#成立之初的-Intel-和-AMD&quot; class=&quot;headerlink&quot; title=&quot;成立之初的 Intel 和 AMD&quot;&gt;&lt;/a&gt;成立之初的 Intel 和 AMD&lt;/h2&gt;&lt;h3 id=&quot;Intel
      
    
    </summary>
    
    
    
      <category term="Hardware" scheme="https://blog.xinoassassin.me/tags/Hardware/"/>
    
      <category term="Hardware History" scheme="https://blog.xinoassassin.me/tags/Hardware-History/"/>
    
  </entry>
  
</feed>
