Archive

Archive for the ‘计算机与 Internet’ Category

Geometry-Shader-Free Bokeh Depth of Field Rendering

2012年08月1日 Leave a comment

Geometry-Shader-Free Bokeh Depth of Field Rendering

Depth Of Field is a popular post-process effect in real-time renderings. There have been many researches to improve the visual effects and efficiency of DOF effect in recent years. The most fast and widely used methods are still based on Gathering due to the nature of graphics hardware. There have also been Scattering based methods like Heat-diffusion DOF (Used in Metro 2033), and textured-Quad based Bokeh DOF (Used in Unreal Samaritan Demo and Crysis 2). The latter method gives very nice view of artist tweak-able shaped Bokeh, as well as proper foreground leaking, which are difficult to achieve with other methods. However this method consumes high fillrate, also it requires geometry shader to expand the bokeh quads, which might be slow in some of the hardware (The Crytek guys mentioned “Future: avoid geometry shader usage, and I suppose that people as smart as them have already done that). In this post I’m going to put my own naive implementation of the Non-geometry-shader Bokeh DOF method, wishing to get your better ideas upon this topic.

The implementation is based on UAV atomic internal counter. We uses compute shader to collect the bokeh data from the scene depth/color render targets, and emit the data into an Unordered access buffer. Then read this buffer as input to bokeh vertex shader, accumulate bokeh color with pixel shader, with front/back layer rendered into different areas of the , at last resolve and combine to the final scene.

Resource used:

1. RWStructuredBuffer<BokehData> BokehDataUAV;

This structured buffer is used to store the bokeh information, including pixel position and color. The UAV needs to be create with D3D11_BUFFER_UAV_FLAG_COUNTER flag.

BokehData need keep two float4 values for both position and color, but we do not require 32bit precision. So we encode float4 into int2 with f32tof16() instrinc and decode in the latter vertex shader with f16tof32. Note that half4 doesn’t help here (although it will compile, but the value read by vertex shader is not correct, wondering if it is a bug that the compiler didn’t report the problem while they say “this data type is only provided for language compatibility” in the SDK document).

2. RWBuffer<uint> DrawArgsUAV;

This buffer is used to store the counter from the above bokeh data buffer, to be consumed by the latter draw call ( DrawInstancedIndirect ). This way we prevent the stall to read-back the counter data back to CPU.

3. Texture2D<float4> AccumulationRT;

Used to accumulate the quad colors. It covers two viewports, one for front layer, another for back layer, so its size should be ( HalfViewportWidth, HalfViewportHeight * 2 + MAX_COC_IN_PIXELS ).

Rendering:

The rendering process is fairly straight forward:

1. Compute shader stage 1: For each pixel in the input depth/color texture, compute COC from depth, then decide which layer it should lay in. For the front/back layers ( that abs(COC) > COC_THRESHOLD ) we emit them into the BokehDataUAV, and increase the buffer’s count:

void EmitBokehVertex( float4 colorcoc, float fDepth, uint nSamples, uint2 loc )

{

    uint count = BokehDataUAV.IncrementCounter();

    BokehData data;

    data.PositionEncoded = EncodeFloat4ToInt2(float4(

            float2(2, -2) * (loc * RcpFullViewportWH – 0.5f),

            fDepth,

            colorcoc.a));

    data.ColorEncoded = EncodeFloat4ToInt2(float4(colorcoc.rgb, 1.0f));

    BokehDataUAV[count] = data;

}

2. Compute shader stage 2: This is a very simple compute shader that copies the counter into the args buffer:

[numthreads(1,1,1)]

void cs_copyCounter()

{

    BokehCountUAV[0] = 4;

    BokehCountUAV[1] = BokehDataUAV.IncrementCounter();

    BokehCountUAV[2] = 0;

    BokehCountUAV[3] = 0;

}

3. Draw quads on to AccumulationRT. Draw with DrawInstancedIndirect(DrawArgsBuffer, 0), each instance for each quad. Using a simple 4-vertices quad VB as stream input, and the shader resource view of BokehData buffer as shader resource input, indexed by the SV_InstanceID. The vertex shader expands vertices with COC size, and put it into the proper viewport area. Since there’s no SV_ViewportArrayIndex writeable from vertex shader, we just use an MAD to move it with proper offset along the Y axis. (See image below, top for front layer, bottom for back layer.

void vs_bokeh(

    float4 vPos : POSITION,

    uint instanceId : SV_InstanceId,

    out float4 vPosOut : SV_Position,

    out float4 vColorOut : TEXCOORD0,

    out float3 vTCOut : TEXCOORD1)

{

    BokehData dataEncoded = BokehDataSRV[instanceId];

    float4 dataPosition = DecodeFloat4FromInt2(dataEncoded.PositionEncoded);

    float4 dataColor = DecodeFloat4FromInt2(dataEncoded.ColorEncoded);

    vPosOut.xy = vPos.xy * abs(dataPosition.w) * RcpFullViewportWH / 2 + dataPosition.xy;

    if(dataPosition.w < 0)

    {

        vPosOut.y = vPosOut.y * DualViewportOffset.x + DualViewportOffset.y;

    }

    else

    {

        vPosOut.y = vPosOut.y * DualViewportOffset.x – DualViewportOffset.y;

    }

    vPosOut.z = 0.5f;

    vPosOut.w = 1.0f;

    vColorOut = dataColor;

    vTCOut = float3((vPos.xy + 1.0f) * 0.5f, dataPosition.z);

}

accumbuf-dualviewport

4. Resolve the texture into final RT.

Performance:

The method removed the dependency on geometry shader, and it reduces the redundant vertex shader work. The compute shader stage is rather fast and is fill-rate bounded. With maximum 64 * 64 size across entire screen, it runs at 90 fps at 1080p (0.3 ms for CS, 8 ms for drawing quads), and 700 fps at 480p on my Radeon 6870. It seems that the RWBuffer’s internal counter ( with “IncreamentCounter” ) is much faster than atomic operations directly on the unordered access view ( with “InterlockedAdd”), I tried use Interlocked to ArgsBuffer directly add first, but it ends up with almose 30 ms to execute the compute shader.

Future work:

The composition of the 3 layers seems problematic to me, result in some artifacts that the back layer leaking or ugly front layer hard edges. The naïve blending method need to be improved. Also I want to implement the geometry shader version and compare the performance differences. Since this is not a scientific article, I’m just post the results got so far here to share the idea and would like to discuss with anyone interested in the topic.

ps: The SIGGRAPH 2012 is near! Wish to see their talented ideas about DOF and all the interesting things in real-time and unreal time renderings soon. \o/

Inside AMD 7900 ‘Leo’ demo: A bit more about their tile based forward lighting

2012年02月6日 Leave a comment

After some unzipping of their demo, and debugging with GPUPerfStudio, I found that my previous understanding of their method is quite close to the truth :). But their implementation, in terms of light culling, looks much more efficient (<0.1 ms in the demo). and here is the key difference. Note that the demo team did a lot of experimental branch code path, but many of them are not used at last. So I’m going to talk only about what is actually running in the final demo.

  • There are actually two Compute Shaders invoked across the frame. One for computing frustum for each tile, the other for culling. While in Intel’s demo they do Z reduction, frustum computing, and lighting in one shader.
  • Difference with thread dispatching:
    – 32 * 32 pixels for each tile, (vs 16 * 16);
    – 64 thread groups for each tile, (vs 16 * 16);
    – Dispatched groups is in 1D ( TileCount, 1, 1), (vs 2D ( TileCol, TileRow, 1 ))
  • They are using a 1D buffer for storing light indices.
  • They used two buffer for light properties, one for position and range, one for color. So there are less data to bind when doing culling pass.
  • They are not culling with Z-reduction. (There is actually a Z-pre pass ran for the demo, and they have a branch to do the Z reduction, but it is not used, at least for this release. Maybe they are going to provide some options to tweak it on off in the next releases.).

I tried with these hints in my test program and the result is obviously improved. I still kept depth reduction in the culling shader. Since now there are 64 threads for 32 * 32 pixels, I can calculate a minZ/maxZ for the 16 pixels within a thread, then do the interlocked min/max operation to write to group shared memory. I assume this is helpful for performance. The same could apply when writing light indices to group shared memory.

Here is a scene with 1024 big lights, and fairly depth complexity, run at around 200 fps, and light culling consumed 0.9ms according to GPUPerfStudio:

Thanks to the Rock model exported from UDK used in the test, copyright belongs to original author. And thanks to AMD’s demo team with this great implementation. As metioned in the last post, I believe the true power of this way is the  ability to use much more complicated shading models, and hope this could be “the way DX11’s meant to be played”…

A new era of forward shading is coming?

2012年01月30日 1 comment

A new era of forward shading is coming?!  –A glance at forward shading for massive lights with computer shader light culling from HD7970 demo ‘Leo’.

The past years is dominated by Deferred shading. It seems everyone likes lights, massive lights. From STALKER to KillZone and StarcraftII. Crytek said they are “a bit more deferred” in CE3, even Unreal is doing deferred shading in their ‘Samaritan’ demo. DICE the exploreres, did a good job in doing a ‘Tile based’ deferred shading with Computer shaders in their Frostbite 2 engine. However, they didn’t realize that this could cause an end of the era of Defered shading.

In the recent released demo for their new HD 7970 card, AMD managed to do a forward shading with massive lights, with compute shader. After downloading their demo and tried with a existing piece of code from Intel, I seem to get the point, so lets share the idea. For those guys didn’t quite familiar with computer shader tile-based deferred shading, I’d suggest you look at Intel’s article first. My test is also based on their code too.

My implementation is quite similar to DICE’s tile based deferred shading. However, instead of writing g-buffer in the geometry pass, I just disabled color writing and did a Z-only pass. Then, run the tile-based compute shader, this shader do such steps:

1. Sample Z buffer,

2. Calculate the min-Z and max-Z for each 16*16 tile (a thread group) with interlocked operations, store them in group-shared memory. ( However, you could just use near and far clip instead of above steps, to do a pure ‘forward’ way ).

3. For each light, calculate if the light intersect with current frustum for the tile. (this is parallel on each thread in the group, so if you have 1024 lights, each thread only do 4 intersection calculations).

(So far it is the same with original tile-based deferred shading).

4. Interlocked increase the group-shared light-counter, write the light index to LightIndexUAV ( Unordered access view ), at the location calulated from light-counter. The LightIndexUAV is the same size as viewport (probably need an edge extension), with format R16_UINT, so there are 16*16 texels for us to store the light index for each tile.

Then, unbind the UAV and set as SRV, run forward shading for each renderable object. This time we continuously sample from the LightIndexSRV for the tile the current shading pixel lays in, untill we arrive the clear color ( e.g. 0xffff in my case), for each sampled LightIndex, sample the actual light data buffer with this value, and accumulate the lighting as normal forward shading.

At last we get a shaded scene: (there’s no difference right? but notice the ‘No cull forward’)

Performance: ( in fps, Power plant , camera at init position, 720p, 1024 lights, on radeon hd6870 )

MSAA           off         2x           4x           8x

Forward      161        139         122          91

Deferred     262       159         123          69

One thing that makes me unhappy is the performance is not beating deferred shading when using no or low MSAA. We still need to optimize the way. However, it do give us a posibility to use native MSAA and more complex shading models, right?

Code is attached here if you want to try or help me with optimization. (Plz rename it to zip). You need to download intel’s demo and replace these files. Media files are just to big to upload here, Sorry.

Btw, This is not to involve some war between deferred and forward. Myself is a fan of deferred shading, LOL.

At last, is the ‘Leo’ Demo making fun of somebody?

推荐另一个幡襁工具 GTuNNe1

2010年01月27日 Leave a comment

幡襁软件简介:GTunne1篇

作者:@_J_Smith_ 来源:推客/浏览器_

注:该幡襁软件稳定性较高,即使不用也推荐在硬盘里留一个备用

软件名称:GTunne1

软件类型:免费软件/绿色软件

最新版下载地址:http://is.gd/75v2o (需幡襁,免幡襁下载地址http://is.gd/75vh6,襁内用户也可参考<<使用网页代理下载最新版幡襁软件>>中的方法下载最新版GTunne1)

代理服务器地址:127.0.0.1:8081

GTunne1共有四种连接模式,标准模式、Skype模式、GTalk模式和Tor模式,其中标准模式和GTalk模式速度较快,但是不稳定。Skype和Tor模式较稳定,但是速度较慢。

GTunne1的使用方法可以参考<<细说GTunnel的四种连接模式>>

你也可以在这里下载到GTunne1组合包(集成了GTunnel、Skype、Tor和Chrome浏览器)

设置代理服务器的方法可以参考下面的文章,只要将文中的Tor代理(127.0.0.1:8118)替换成GTunnel的代理(127.0.0.1:8081)即可。
<<如何在Internet Explorer浏览器中设置代理服务器>>
<<如何在Firefox浏览器中设置代理服务器>>
<<如何在Opera浏览器中设置代理服务器>>
<<如何在Chrome浏览器中设置代理服务器>>

UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU

经测试,一般模式速度较快,看悠土鳖不卡

Categories: 计算机与 Internet

Internet freedom 官方翻译版

2010年01月22日 Leave a comment

from : http://www.america.gov/st/democracyhr-chinese/2010/January/20100121212440eaifas0.9105341.html

2010.01.21

克林顿国务卿关于互联网自由的讲话

 

克林顿国务卿2009年1月21日在盛顿哥伦比亚特区新闻博物馆(Newseum)发表讲话,阐述互联网自由对社会进步和经济增长的重要性,宣布将把增进“连接自由”作为一项基本外交目标。以下是讲话全文,由美国国务院国际信息局(IIP)翻译。

希拉里克林顿(Hillary Rodham Clinton)国务卿

盛顿哥伦比亚特区新闻博物馆(Newseum)

2009年1月21日(星期四)


常感谢,艾伯托(Alberto)。不仅要感谢你的赞誉和介绍,而且要感谢你和你的同事们在这个重要机构中发挥的领导作用。很高兴来到新闻博物馆。这个博
物馆是一座纪念碑,见证了我们最珍视的一些自由。我十分感谢能有此机会谈谈如何运用这些自由应对二十一世纪的各项挑战。

虽然我并不能
看到你们所有的人——因为在这样的场合灯光照射我的眼睛,而你们都在背光处——但我知道在座的有很多朋友和老同事。我要感谢自由论坛(Freedom
Forum)的首席执行官查尔斯∙奥弗比(Charles Overby)光临新闻博物馆,以及我在参议院时的老同事理查德∙卢格(Richard
Lugar)和乔∙利伯曼(Joe Lieberman)两位参议员,他们两位都为《表达法》(Voice
Act)的通过作出了努力。这项立法表明,美国国会和美国人民不分党派,不分政府部门,坚定地支持互联网自由。

我听说在场的还有参议
员萨姆∙布朗巴克(Sam Brownback)、参议员特德∙考夫曼(Ted Kaufman)、众议员洛雷塔∙桑切斯(Loretta
Sanchez)、许多大使、临时代办和外交使团的其他代表、以及从中国、哥伦比亚、伊朗、黎巴嫩和摩尔多瓦等国前来参加我们关于互联网自由的“国际访问
者领袖计划”(International Visitor Leadership
Program)的人士。我还要提到最近被任命为广播理事会(Broadcasting Board of
Govenors)理事的阿斯彭研究所(Aspen Institute)所长沃尔特∙艾萨克森( Walter
Isaacson)。毫无疑问,他在阿斯彭研究所从事的支持互联网自由的工作中发挥了重要作用。

这是关于一个非常重要的议题的一个重
要讲话。但在开始谈这个议题前,我想简要介绍一下海地的情况。过去八天来,海地人民和世界人民携手应对一场巨大的灾难。我们这个半球曾历经磨难,但我们目
前在太子港面临的困境鲜有先例。通讯网络在我们抗击这场灾难的过程中发挥了极其重要的作用。不用说,当地的通讯网络遭受了重创,在很多地方被彻底摧毁。地
震发生后仅几个小时,我们就与民营部门的伙伴发起“海地”(HAITI)短信捐款活动,使美国的移动电话使用者能通过发短信向救灾工作捐款。这项活动充分
展示了美国人民的慷慨。迄今,该活动已为海地的抗震救灾筹集了2500多万美元。

信息网络在救灾现场也发挥了极其重要的作用。星期
六,我在太子港会见普雷瓦尔(Preval)总统时,他的重点目标之一是要努力恢复通讯。幸存的通讯设施不足以帮助当地政府官员相互联络,非政府组织以及
我们的文职部门和军队的领导人的运作能力都受到严重影响。高科技公司设立了互动地图,帮助确定救灾需要和目标资源。就在星期一,一名年仅七岁的小女孩和两
名妇女通过发短信呼救被一个美国搜救队从坍塌的超市的残砖碎瓦下救了出来。这些事例只是一个普遍现象的缩影。

信息网络的扩展正在为我
们的星球建立一个新的神经系统。在海地或湖南发生什么情况时,我们其余的人都能从当事者那里实时得知。我们还可以实时作出反应。灾后迫切希望提供帮助的美
国人和被困在超市瓦砾下的小姑娘以一年以前乃至一代人以前还想象不到的方式被联系在一起。今天,同样的原则适用于几乎整个人类。我们今天坐在这里,你们中
间任何人——或更有可能的是我们孩子中的任何人——都可以拿出很多人每天随身携带的通讯工具,将这次讨论的内容发送给全世界数十亿人。

在很多方面,信息从未像今天这么自由。与过去任何时候相比,今天都有更多的方式把更多的想法传播给更多的人。即使在集权国家,信息网络也在帮助人们发现新的事实,向政府更多地问责。


如,奥巴马总统11月访华期间与当地大学生的直接对话包含了网上提问,突显了互联网的重要性。在回答一个网上提问时,他强调人民有权自由获取信息。他说,
信息流通越自由,社会就越强健。他谈到获取信息的权力如何有助于公民向自己的政府问责,激发新的想法,鼓励创造性和创业精神。我今天来这里发表讲话正是出
于美国对这一经过实践检验的真理的信念。

由于人们的相互联系空前密切,我们也必须认识到这些新技术并非无条件地造福人类。这些工具也
正被用于阻碍人类进步和剥夺政治权利。正如钢可被用于建造医院也可用于制造机枪。核能可为城市提供动力也可摧毁城市。现代信息网络及其支持的技术既可被用
于行善也可被用于作恶。有助于组织自由运动的网络也能使“基地”组织得以煽动仇恨,挑起针对无辜者的暴力。具有开放政府信息和促进透明化潜力的技术也可被
政府劫持,用于镇压异见,剥夺公民权利。

过去一年来,我们看到对信息自由流通的威胁激增。中国、突尼斯和乌兹别克斯坦加强了对互联网
的审查。在越南,使用广受欢迎的社交网站的权利突然消失。上个星期五在埃及,30名博客作者和维权人士被拘留。这批博客作者中的一位是巴塞姆∙萨米尔
(Bassem
Samir)。他有幸获释,今天也在这里,同我们在一起。因此,一方面,这些技术的推广明显地正在改变我们的世界,另一方面,尚无法预知这样的改变将对世
界人民的人权和幸福产生何种影响。

这些新技术本身不会在争取自由与进步的斗争中选择立场。但是,美国要做到立场鲜明。我们支持一个允
许全人类平等享有知识和思想的互联网。而且我们认识到,在世界上建立何种信息基础设施将取决于我们和其他人为之确定的性质。虽然这是一个全新的挑战,但我
们确保思想自由交流的责任可追溯至和众国诞生之初。《宪法》第一修正案的内容字字镌刻在这座大楼前那块50吨重的田纳西大理石上。世世代代的美国人都为捍
卫刻在那块石头上的价值观付出了努力。

富兰克林•罗斯福(Franklin
Roosevelt)在1941年发表“四项自由”演讲时发扬了这些思想。当时,美国人面临着一系列的危机,此外还有信心危机。但是,对一个人人都享有言
论表达自由、信仰自由、没有贫困、没有恐惧的世界的憧憬冲破了他那个时代的重重困难。多年之后,我的楷模之一艾琳娜•罗斯福(Eleanor
Roosevelt)努力使这些原则成为《世界人权宣言》的奠基原则。这些原则成为继往开来每一代人的北斗,引导我们、鞭策我们、促使我们在险恶的环境中
勇于向前。

在科学技术飞跃发展的时候,我们必须反思这个传统。我们需要确保科学技术的进步与我们的原则同步。在接受诺贝尔奖时,奥巴
马总统讲到需要建设这样一个世界,让和平建立在每一个人固有的权利和尊严之上。几天后在乔治敦大学关于人权的演讲中,我表示我们必须探索途径,把人权变成
现实。今天,我们迫切需要在二十一世纪的电子世界中保护这些自由。

世界上有许多其他的网络,有些帮助人员或资源的流动,有些辅助志同
道合的个人之间的交流。但互联网是增强所有其他网络的能力和潜力的一个网络,因此,我们认为确保其使用者享有某些基本自由至关重要。其中最重要的是言论表
达自由。这种自由的定义不再仅仅是公民前往市政厅前的广场批评他们的政府,而不担心遭受报复。博客、电子邮件、社交网络和手机短信开启了交流思想的新途
径,也为信息审查带来了新目标。

甚至就在我今天向你们讲演的此刻,某些地方的政府审查人员正在竭力将我的话语从历史的记录中删除。但
历史早已作出裁决:这些手法注定失败。两个月前,我在德国参加了推倒柏林墙20周年纪念活动。参加这次活动的各国领导人向这个屏障对面那些英勇的男女志士
表示敬意,他们曾经通过散发被称为“地下刊物”(Samizdat)的小册子来阐明反对压迫的道理。这些传单对“东方集团”专制政权的宣传和用心提出了质
疑。许多人因散发传单受到残酷迫害,但他们的声音帮助穿透了“铁幕”的钢筋水泥和带刺的铁丝网。

柏林墙象征着一个分隔的世界,代表一个时代。今天,这堵墙的一些碎片就陈列在这座它们理应归属的博物馆里。在我们这个时代,具有代表性的基础设施就是互联网。它取代了分隔,象征着联系。但是,就在网络扩展到世界各国的同时,我们发现许多地方以虚拟的墙壁代替了有形的墙壁。


些国家竖起了电子屏障,阻止本国人民分享世界上的一部分网络。他们从搜索引擎提供的结果中删除字词、名称和短语。他们侵犯了那些发表非暴力政治言论的人的
隐私权。这些做法违反了《世界人权宣言》,因为《宣言》告诉我们,人人都有权通过“各种媒体不受疆界限制地寻求、接收和传播信息和思想”。由于这些限制手
段的蔓延,一个新的信息帷幕正在世界上许多地方降临。为穿越这种阻隔,个人视频和博客文章正成为当今时代的“地下刊物”。

正如过去的
专制政权一样,有些政府正在打击那些利用这些工具的独立思考者。在伊朗总统大选后的游行示威期间,用手机拍摄的一位年轻女子遭血腥屠杀的斑驳画面成为通过
数字技术对该政府暴行提出的控诉。我们已看到有报道说,当生活在海外的伊朗人在网上张贴对他们国家领导人的批评时,他们在伊朗的家人便成为报复的目标。尽
管政府普遍采取严厉的恐吓手段,但伊朗英勇的公民记者们继续利用技术向全世界及其同胞报道他们国内发生的事件。伊朗人民为自身的人权呐喊,同时也鼓舞了全
世界,他们的勇气正在重新诠释如何通过技术传播真理和揭露非正义现象。

所有的社会都承认言论自由有其限度。我们不能容忍煽动他人从事
暴力的人,例如此刻正利用互联网在全世界宣扬大规模屠杀无辜百姓的“基地”组织成员。那些以种族、宗教、族裔、性别或性取向为由攻击他人的仇恨言论也应受
到严厉斥责。遗憾的是,这些问题均构成日益严重的挑战,国际社会必须共同进行抗击。我们还必须解决匿名发表言论的问题。对于那些利用互联网招收恐怖主义分
子或传播被盗窃的知识产权的人,不能让他们将其网络行为与其真实身份脱钩。然而,对于那些为了和平的政治目的利用互联网的人士,这些并不能成为政府有计划
地侵犯他们的权利和隐私的托辞。

随着新技术的传播,言论自由可能是最明显会遇到各种挑战的一项自由权利,但并非仅此而已。信仰自由通
常涉及个人与造物主对话或不对话的权利。这是一种不需依赖技术的交流方式。然而,信仰自由还体现了与拥有共同价值观和人生观的人一起集会的普遍权利。在我
们的历史中,这类集会常见于教堂、犹太会堂、清真寺和寺庙。今天,这类集会也可能在网上进行。

互联网有助于不同信仰的人消除相互间的
分歧。正如总统在开罗所说,宗教自由对于人们能否共同生活至关重要。在我们寻求扩大对话之际,互联网蕴涵着巨大的希望。我们已开始使美国学生与全世界穆斯
林社会的年青人为讨论全球性挑战相互联络。我们将继续利用这个工具,支持不同宗教社群的个人相互讨论。

然而,某些国家则利用互联网打
击和压制宗教人士。例如,去年在沙特阿拉伯,一名男子因在博客上刊登介绍基督教的文章,被捕入狱达数月之久。哈佛大学一项调查表明,沙特政府封锁了许多介
绍印度教、犹太教、基督教乃至伊斯兰教的网页。包括越南和中国在内的一些国家也利用类似手段限制获得宗教信息的途径。

这些技术不得用
于惩罚和平的政治言论,同样也不可用于迫害或压制宗教少数派。祈祷往往在更高层次的网络进行。然而,互联网和社交网站等通讯技术应该有助于提高人们根据自
己的需要进行祈祷的能力,以及与拥有共同信仰的人集会和更多地了解其他人信仰的能力。正如我们促进其他生活领域的自由一样,我们也必须努力促进在网络上祈
祷的自由。

当然,还有无数人的生活并没享受到这些技术带来的益处。在我们的世界里,正如我多次指出的,才智有可能普及众人,但机会并
非如此。从长期获得的经验来看,我们知道,在人民缺乏途径获得知识、市场、资本和机会的国家,要促进社会和经济发展会十分艰难,有时则徒劳无功。在这种情
况下,互联网可发挥调节器的作用。通过向人们提供获得知识和潜在市场的途径,各种网络可为那些缺乏机会的地区创造机会。

在过去一年中,我在肯尼亚亲眼目睹了这种情况。那里的农牧民在开始使用移动银行技术后,收入提高了多达30%。在孟加拉,30多万人报名通过手机学习英语。在非洲撒哈拉沙漠以南地区,妇女企业家使用互联网获得小型贷款并与全球市场接轨。


界上经济地位最低的亿万人民有可能在生活中效仿上述取得进步的实例。在很多情况下,互联网、手机和其他通讯技术能对经济发展起到绿色革命(Green
Revolution)对农业所起的同等作用。现在,小小的投入便能产生巨大效益。世界银行的一项研究显示,在一个典型的发展中国家,手机普及率每增加
10%,人均国内生产总值便能增长将近1%。具体而言,如果以印度为例,那将相当于每年近100亿美元。

与全球信息网络连通就好比踏
上了通往现代化的阶梯。在这些技术问世的最初几年,许多人以为它们将在世界上的富人和穷人之间划出鸿沟,但那种情况并没有发生。今天共有40亿只手机在使
用。手机使用者中有很多是小贩、人力车夫和其他历来缺乏受教育及其他机会的人。信息网络是实现平等的有力手段,我们应共同使用这些技术帮助人们摆脱贫困,
不再有匮乏之虞。

我们完全有理由满怀希望:当人们充分利用信息网络和通讯技术时,他们将能取得巨大进步。但毫无疑问,也有些人正在利
用全球信息网络实现其阴暗目的,而且将继续这样做。暴力极端主义分子、犯罪集团、性犯罪者和独裁政府都妄图对全球网络加以利用。正如恐怖主义分子利用我们
社会的开放性趁机实施阴谋,暴力极端主义分子也要利用互联网进行煽动和恐吓。当我们努力增进这些自由时,我们也必须打击妄图利用通讯网络进行破坏并制造恐
惧的人。

各国政府和公民必须保持信心,作为国家安全和经济繁荣核心环节的网络是安全且有韧性的。这不仅仅是几个小黑客污损几个网站的问题,如果我们的信息网络安全得不到保障,我们的网上银行业务、电子商务活动以及保护亿万美元知识产权的能力就全都岌岌可危。


对破坏这些系统的活动,各国政府、民营部门和国际社会必须协调一致地采取行动。当黑客犯罪分子和有组织犯罪集团为非法牟利攻击网络时,我们需要更多的工具
帮助执法机构进行跨辖区的合作。儿童色情以及遭到贩运的妇女和女童所受的剥削通过互联网为整个世界所见并为剥削者借以牟利,对这种社会弊病也应采取同样的
应对措施。欧洲理事会在网络犯罪公约(Convention on Cybercrime
)方面的努力及其他方的类似努力促成了对此类犯罪起诉的国际协作,我们对此表示赞赏。我们还希望为此加倍努力。

我国政府及国务院已经
采取措施寻求通过外交方式来加强全球网络安全。国务院有大批人员从事这项工作。有关人员一直在协同努力。我们还在两年前设立了一个专门协调有关网络的对外
政策的办公室。我们致力于在联合国和其他多边论坛应对这一挑战,并把网络安全问题列入世界性议题。奥巴马总统刚刚任命了一位新的国家网络政策协调员,来帮
助我们更紧密地协调工作,以确保每个人的网络都是自由、安全和可靠的。

某些国家、恐怖主义分子以及他们的代理人必须明白,美国将保护
我们的网络系统。那些在我们国家或任何其他国家破坏信息自由流通的人对我们的经济、我们的政府和我们的公民社会构成了威胁。从事网络攻击的国家和个人将承
担后果并受到国际社会的谴责。在一个靠互联网连通的世界里,对一个国家的网络的攻击就是对所有人的攻击。通过强调这一点,我们可以在国家间建立行为准则,
并鼓励尊重全球网民。

最后一项自由或许是罗斯福总统与夫人多年前所思考和论述的自由的必然内含,它源于我前面已提到的四项自由,这就
是连接自由:政府不应阻止人民与互联网、与网站或与彼此连接。连接自由如同集会自由一样,只不过它是在网络空间。这一自由允许个人上网,聚集,希望还有合
作。一旦上网,你不必是大亨或摇滚乐明星便能对社会产生巨大影响。

对孟买恐怖主义袭击的最大规模的公众反应是由一位13岁少年发起
的。他使用社交网络组织了献血运动,并建立了一个大型跨宗教信仰的吊唁簿。在哥伦比亚,一位失业的工程师召集起全世界190个城市的1200万人,向哥伦
比亚革命武装力量(FARC)的恐怖活动发出抗议。这些抗议是历史上规模最大的反恐怖主义示威活动。在随后几个星期中,哥伦比亚革命武装力量经历了十年军
事行动中人数最多的弃甲和脱队事件。在墨西哥,一位对毒品暴力行径忍无可忍的公民发出的一份电子邮件像滚雪球一般发展成遍及该国所有32个省的大型示威活
动。仅在墨西哥城就有15万人上街抗议。因此,互联网能有助于人道社会抵制鼓吹暴力、犯罪和极端主义的人。

在伊朗、摩尔多瓦以及其他国家,网上的组织动员已成为促进民主、使公民对可疑的选举结果表达抗议的重要工具。甚至在美国等已建立民主制度的国家,我们也看到这些工具具有改变历史的力量。你们当中有些人可能还记得这里2008年的总统选举。(笑声)


这些技术相连接的自由可以帮助转变社会,但同时也对个人极其重要。我最近被一位医生的故事所感动——我不想说出他是哪个国家的人。他千方百计要为女儿的罕
见疾病作出诊断。他征询了20多位专家的意见,但仍然没有答案。最后,他是靠互联网搜索引擎得到了确切的诊断并找到了治疗方法
。这就是不受限制地使用搜索引擎技术之所以对个人生活如此重要的原因之一。

我今天概述的这些原则将成为我们对待互联网自由及其技术使
用问题的指导方针。我要谈谈我们在实践中是如何应用这些原则的。美国致力于为促进这些自由投入必要的外交、经济和技术资源。美国是一个由来自各个国家、反
映全球各种利益的移民组成的国家。我们的外交政策基于这样一种理念:当人民之间和国家之间合作时,美国比任何其他国家都受益。当冲突与误解造成国家间的不
合时,美国肩负着比任何国家都更沉重的负担。因此,我们处于有利位置,可以抓住这些随相互连接而来的机遇。我们作为如此众多技术的诞生地,有责任确保它们
从善使用。为此,我们需要建立能力,以推行我们在国务院称之为21世纪外交方略的规划。

重新调整我们的政策和我们的工作重点并非易
事,而适应新技术也鲜有捷径。当电报技术开始使用时,它给外交界许多人带来严重焦虑,因为天天收到发自华盛顿的指示不是一个百分之百令人欢迎的前景。但正
如我们的外交人员最终还是掌握了电报一样,他们也在为掌握这些新工具的潜力而努力。

我引以为豪的是,国务院已经在40多个国家展开努
力,帮助那些声音被压制性政府扼杀的人。我们也在努力使这个问题成为联合国的工作重点。我们正在将互联网自由纳入我国重新进入联合国人权理事会
(United Nations Human Rights Council)后提出的第一项决议案中。

我们还支持开发新工具,使公
民能够避开政治审查而行使其自由表达的权利。我们正在为世界各地的团体和组织提供资金,确保将这些新工具以当地语言版本提供给需要的人,并为他们提供安全
上网所需的培训。美国支持开展这些努力已有一段时间,侧重于尽可能切实有效地实施这些项目。美国人民应当知道,对互联网进行审查的国家也应当明白,我国政
府致力于促进互联网自由。

我们希望让人们掌握这些工具,用以增进民主和人权,应对气候变化和流行病,为实现奥巴马总统提出的一个没有核武器的世界的目标争取全球支持,鼓励可持续的经济发展,帮助改善底层人民的生活。


此,我今天宣布,未来一年中,我们将与实业界、学术界和非政府组织的合作伙伴一道,确立发挥联网技术威力的长期努力,利用这些技术推进我们的外交目标。我
们可以依靠手机、测绘应用软件和其他新工具来增进公民权能,辅助我们的传统外交。我们能够解决目前创新市场存在的缺陷。

请让我举一个例子。假设我想设计一种手机应用软件,让人们能够对包括我国政府在内的各政府部门的责任心和工作效率打分,并能够发现和报告腐败行为,实现这一设想所需的硬件已在几十亿潜在用户的手中,而且所需软件的开发和应用成本较低。


果人们利用这项技术,就可以帮助我们有的放矢地使用对外援助经费、改善人民的生活并鼓励外国投资方对负责任的政府投资。但目前的情况是,移动应用技术开发
商尚无资金援助来自行开发这项技术,而国务院现在还缺乏使之成为可能的机制。不过,这项行动应当有助于解决这一问题,并且使小笔创新投资能够带来长期回
报。我们将与专家共同努力,为这种风险投资项目确定最佳框架。我们还将需要科技公司和非营利机构的人才和资源,才能尽快取得最佳效果。因此,在座各位如有
此类才干和专长,我谨在此邀请你们鼎力相助。

与此同时,有些公司、个人和机构正在设计和开发各种已经能够推进我们的外交和发展目标的
创意和应用技术,而国务院将展开一项创新竞赛活动,让这项工作立刻得到推进。我们将邀请美国人提交应用软件和有关技术的最佳创意,它们应能有助于消除语言
障碍、克服文盲局限、将人们与他们所需要的服务和信息连通。例如,微软公司已经开发出网络医生软件的原型,以便为偏远地区提供医疗服务。我们希望看到更多
这样的创意。我们将与竞赛获奖者合作,为帮助他们进一步发展创意提供资金。

这些新的计划将大大充实我们过去一年来的重要工作。为了促
进我们的外事和外交目标,我召集了一个有才干而且经验丰富的团队,领导我们就21世纪外交方略展开的努力。这个团队前往世界各地,协助各国政府和团体善用
连接技术的益处。他们发起“公民社会2.0行动”(Civil Society 2.0
Initiative),协助基层组织进入数字时代。他们在墨西哥制定了一个协助打击毒品暴力的方案,让民众向可靠的来源作出不露痕迹的检举,以免遭受报
复。他们也将移动银行带进阿富汗,现在正在刚果民主共和国进行同样的工作。在巴基斯坦,他们建立了一个首创的移动社交网络,称为“我们的声音”(Our
Voice)。这个网络已经产生了数千万条讯息,并将希望抵制暴力极端主义的巴基斯坦年轻人联系在一起。

在短短时间内,我们已经取得
了长足的进展,将这些技术的承诺转变成深富影响力的结果。可是仍有许多方面尚待努力。在我们和民营部门及外国政府联手推广21世纪外交方略的工具时,我们
必须谨记彼此都有责任捍卫我在今天所谈的自由。我们坚信,信息自由这样的原则不仅是良好的政策,也不仅和我们的国家价值观相连,它还具有普世性,并能产生
经济效益。

用市场语言来说,一家在突尼斯或越南的审查环境中运营的上市公司,其交易价格总是低于在自由社会运营的同类公司。如果企业
的决策者没有全球性的新闻和信息来源,投资者对其决策的信心终将下降。实施新闻和信息审查的国家必须认识到,从经济角度而言,审查政治言论和商业言论是没
有区别的。如果贵国的企业无法获取其中一类信息,其增长必将受到影响。

在制定商业决策时,美国公司日益将网络和信息自由视为更重要的
考量因素。我希望他们的竞争对手和外国政府会密切关注这一趋势。最近有关谷歌(Google)的情况引起了广泛的注意。我们希望中国当局对导致谷歌作出日
前宣布的网络攻击事件进行彻查。我们也希望调查及结果透明。

互联网已经成为中国取得巨大进步的源泉之一,令人惊叹。中国现在有如此多
的人都在上网。但是,限制自由获取信息或侵犯互联网用户基本权利的国家面临着使自己与下一个世纪的进步隔绝的风险。美中两国对于这个议题的看法不同,我们
希望在两国积极、合作、全面的关系之下坦诚和持续地处理这些差异。

这个议题不仅关系到信息自由,最终还关系到我们希望有一个什么样的世界以及我们将会生活于一个什么样的世界。它关系到我们生活的地球是有一个互联网、一个全球社会以及一个造福并联系全人类的共同知识体,还是支离破碎、获取信息和机遇要取决于居住地点和审查者的心血来潮。

信息自由有助于维护作为全球进步基础的和平与安全。从历史上看,不对称的信息获取能力是国家间冲突的主要原因之一。在我们面对严重纠纷或危险事件时,当事双方能够了解相同的事实和观点是至关重要的。


前的情况是,美国人民可以思考外国政府提供的信息——对于这些政府向美国国内传送信息,我们不设置障碍。但是,在实行信息检查的社会中生活的公民却无从得
知外界的看法。例如在北韩,政府极力使其公民与外部意见完全隔绝。这种信息流通的不对称不但增加了发生冲突的可能性,也容易使微小的分歧升级。因此,我期
待那些希望看到全球稳定的负责政府能和我们携手合作,改变这种不对称的情况。

对公司而言,这个问题所关系的不仅是道德威望,而且涉及
公司与用户之间的信任。世界各地的用户都希望自己所依赖的互联网公司会提供全面的搜索结果,并且以负责任的态度守护他们的个人信息。获得这种信赖并且基本
上提供这种服务的公司将在全球市场蓬勃发展。我确实相信,那些失去用户信赖的公司,最终将失去用户。住在任何地方的人都希望知道,他们放在网上的东西不会
被用来加害于自己。

审查不应被世界任何地方的任何公司以任何形式接受。在美国,美国公司需要采取有原则的立场。这应该成为我们国家品牌的组成部分。我相信全世界的用户都会回报尊重这些原则的公司。


们正在重振“全球互联网自由小组”(Global Internet Freedom Task
Force),作为应对全球网络自由所受威胁的论坛。我们敦促美国媒体公司主动采取措施,质疑外国政府对于审查和监视的要求。民营部门也有责任协助保护言
论表达自由。当他们的业务交易有可能破坏这种自由时,他们需要考虑什么是正确的,而不只是寻求短视的利润。

我们对于目前通过“全球网
络倡议”(Global Network
Initiative)所做的工作倍感鼓舞。“全球网络倡议”是一项由高科技公司与非政府组织、学术专家和社会投资基金共同合作,回应政府审查要求而做出
的自愿努力。这项倡议不仅仅是申明原则,更是建立旨在宣扬真正责任感和透明度的机制。我们承诺支持负责任的民营部门参与护卫信息自由,作为我们承诺的组成
部分,国务院将在下月召集一次高层会议,由罗伯特•霍马茨(Robert Hormats)和玛丽亚•奥特罗(Maria
Otero)两位副国务卿共同主持。会议将召集提供网络服务的公司,共同讨论互联网自由问题,因为我们希望与合作伙伴共同应对这个二十一世纪的挑战。


相信,追求我今天所说的自由是正确之举,但它也是智慧之举。通过推进这个议程,我们将使我们的原则、我们的经济目标以及我们的战略重点一致起来。我们需要
努力创建这样一个世界:在这个世界中,网络和信息使人民之间的关系更加密切,也使我们的全球社区概念得到扩展。鉴于我们面临的诸多巨大挑战,我们需要世界
各地的人民汇合他们的知识和创造力,帮助重建全球经济,保护我们的环境,战胜暴力极端主义,建设每一个人都能充分发挥和实现其天赋潜力的未来。


结束今天的讲话时,我要请你们记住星期一在太子港的废墟中获救的那个小女孩。她还活着,已经与她的家人团聚,并将有机会长大成人,因为网络把一个被埋得很
深的声音传播到全世界。我们不能容许任何国家、群体或个人继续被埋在压制的废墟之下。当层层审查墙把一些人与人类大家庭隔离开来的时候,我们不能袖手旁
观。我们不能因为听不到那些人的呼喊就对这些问题保持沉默。

因此,让我们重新作出承诺,为这一事业而努力。让我们把这些高科技化作推动全世界取得切实进步的力量。让我们并肩前进,倡导这些自由——为了我们这个时代,也为了应当得到我们所能给予的每一个机会的年轻人。

非常感谢你们。(掌声)

美国国务院国际信息局 http://www.america.gov/mgck

=====================================================================================

附图:《广州的blogger和媒体人正在"学习领会希拉里�讲话精神"

http://img.ly/osT

Categories: 计算机与 Internet