V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rockjike
V2EX  ›  问与答

一种对资源的新存储方式的构想

  •  
  •   rockjike · 2018-09-06 20:08:07 +08:00 · 5027 次点击
    这是一个创建于 2290 天前的主题,其中的信息可能已经有所发展或是发生改变。

      场景:假设你下载一部 2G 的电影资源,考虑到网速等限制, 需要十分钟,是否有一种方式能几十秒内就实现这个过程?

       构想:你本地安装特定环境,你只需要去下载一个几 kb 的文件 ,该文件可能类似是一种公式,将下载的公式放入你本地的环境就能解析 生成.mp4 等特定的视频格式或者就能通过公式直接播放视频. 如何以上的构想能够实现,那将对资源的存储形成一场变革. (如视频直播,只要每次只要请求几 kb 文件就播放十几分钟)

    请 v 友评估一下 -------2018.9.6 Jike

    100 条回复    2018-09-08 10:27:44 +08:00
    jpmorn
        1
    jpmorn  
       2018-09-06 20:11:43 +08:00
    热力学第二定律?

    不花代价让熵变小。感觉难吧
    gamexg
        2
    gamexg  
       2018-09-06 20:12:58 +08:00
    就是极高压缩率的压缩。
    有过几个例子做到过楼主的那种压缩率,很小文件执行起来是一段很长的高质量视频。
    记得其中一个是依靠复用贴图+实时渲染做到的。
    lostberryzz
        3
    lostberryzz  
       2018-09-06 20:13:47 +08:00   ❤️ 10
    信息论了解一下?
    loading
        4
    loading  
       2018-09-06 20:14:02 +08:00 via iPhone
    呃,你这个 bt 种子和加边下边播。
    gamexg
        5
    gamexg  
       2018-09-06 20:14:13 +08:00
    特定类型可以实现,
    记得有的游戏录像就只记录很少的信息,播放时使用游戏素材渲染。
    loading
        6
    loading  
       2018-09-06 20:15:24 +08:00 via iPhone
    通过楼主这个构想,在下已经穷举了 100kb 以下的所有电影。
    kaneg
        7
    kaneg  
       2018-09-06 20:15:45 +08:00 via iPhone
    视频压缩软件就是干这个活的,几个 G 的原始视频被压缩成几百 M
    prolic
        8
    prolic  
       2018-09-06 20:16:26 +08:00 via Android
    可以用超大词典的方式来压缩
    rockjike
        9
    rockjike  
    OP
       2018-09-06 20:18:08 +08:00 via Android
    @jpmorn 现在的计算机以 01 编码,我在本地环境以 01 基础在封装一些小模块类似积木,根据公式选择特定的积木生成特定资源
    Loyalsoldier
        10
    Loyalsoldier  
       2018-09-06 20:19:34 +08:00
    记得几年前看过相关的新闻,说把一个视频压缩到非常非常小,大概只有几 MB ……但是你解压得花很多时间。这是以时间换空间
    lekai63
        11
    lekai63  
       2018-09-06 20:19:35 +08:00 via iPhone
    跟压缩解压的区别在哪?
    分段压缩 分段解压
    lekai63
        12
    lekai63  
       2018-09-06 20:19:43 +08:00 via iPhone
    tcp
        13
    tcp  
       2018-09-06 20:20:15 +08:00 via Android
    视频每个像素的取值范围 0 ~ 255,除非视频中绝大部份像素都是相同的,使得这些像素的概率极高,才能使熵很小。根据 entropy=-p1*log2(p1)-p2*log2(p2)-...p256*log2(p256)可以求熵 即平均每个像素需要多少比特。
    rockjike
        14
    rockjike  
    OP
       2018-09-06 20:21:10 +08:00 via Android
    @kaneg 不需要几百兆,如果形式是一个公式,只要几 kb 或者再大一些
    tcp
        15
    tcp  
       2018-09-06 20:22:11 +08:00 via Android
    @tcp 当然实际视频编码是编量化后的残差变换系数
    ipwx
        16
    ipwx  
       2018-09-06 20:24:08 +08:00 via iPhone
    信息论了解一下……
    rockjike
        17
    rockjike  
    OP
       2018-09-06 20:24:39 +08:00 via Android
    @Loyalsoldier 不是解压的概念,他会放在特定的容器里,容器有很多基础模块,所以加载非常快
    jadec0der
        18
    jadec0der  
       2018-09-06 20:24:41 +08:00   ❤️ 31
    这就是为什么公司都喜欢招科班出身的程序员
    misaka19000
        19
    misaka19000  
       2018-09-06 20:25:47 +08:00 via Android   ❤️ 11
    典型的计算机民科
    yukiww233
        20
    yukiww233  
       2018-09-06 20:27:10 +08:00   ❤️ 1
    你看到的 mp4 就是压缩并封装之后的了
    压缩跑的字典就是你所谓的公式
    如果你用一个 1g 长度的字典(公式)确实可以把一个 1g 的文件压成 1B
    zhzer
        21
    zhzer  
       2018-09-06 20:30:25 +08:00 via Android
    你下的 2g 电影资源就是公式,谢谢
    jiangnanyanyu
        22
    jiangnanyanyu  
       2018-09-06 20:35:39 +08:00 via Android
    信息论了解一下
    anyele
        23
    anyele  
       2018-09-06 20:44:20 +08:00 via Android
    民科又来了
    swcat
        24
    swcat  
       2018-09-06 20:50:59 +08:00 via Android
    实时渲染,有一个 彗星撞地球 的视频 64kb,可以播放很久
    游戏观战 同步很少的数据,然后本地渲染还原

    现在的普通视频压缩到你播放你说的过程,只是压缩率达不到
    des
        25
    des  
       2018-09-06 20:55:30 +08:00 via Android   ❤️ 5
    你这个不如我这个(

    由于 PI 是无限不循环小数,所以里面可以有所有东西。然后每个文件都只用存开始和结束就行了,保证比你这个强
    underone
        26
    underone  
       2018-09-06 20:56:34 +08:00
    如果演算成本需要 10 台现在的中配电脑
    或者一劳永逸把带宽增加 10 倍
    这是个哪个模式划算的问题吧
    learnshare
        27
    learnshare  
       2018-09-06 20:59:34 +08:00
    给一个种子,吸收水、养分和二氧化碳,照一照太阳,长成一部电影?
    信息理论读一下
    ulala
        28
    ulala  
       2018-09-06 21:07:04 +08:00 via iPhone
    @des 只是你要找到起终点就要花平均无限的时间 :doge:
    onion83
        29
    onion83  
       2018-09-06 21:30:54 +08:00   ❤️ 1
    还能背得出 win 98 序列号的人应该对 64k demo 不会陌生
    https://en.wikipedia.org/wiki/64K_intro


    https://download.csdn.net/download/yangyangli123/5433193
    lneoi
        30
    lneoi  
       2018-09-06 22:06:38 +08:00
    去除信息论的极限值,这不就是游戏的实时渲染吗,以前 64k 动画就这样搞咯,看看游戏就知道发展现状了
    janus77
        31
    janus77  
       2018-09-06 22:23:06 +08:00 via Android
    所有的数据都是 0 和 1,大小取决于信息量和信息密度。
    信息量——分辨率码率等等
    密度——文件格式 压缩 等等
    楼主还想到什么新的了吗
    zmj1316
        32
    zmj1316  
       2018-09-06 22:29:44 +08:00   ❤️ 4
    香农哭了出来,谁说干这行门槛低的。。。。。。
    fyyz
        33
    fyyz  
       2018-09-07 00:41:49 +08:00 via Android
    去看看信息论吧
    fyyz
        34
    fyyz  
       2018-09-07 00:54:55 +08:00 via Android   ❤️ 1
    我来反证楼主的逻辑。

    我这里有一大堆文件,每个文件的文件内容均有 10 个字符组成,这里的字符指的是大小写字母和数字,而我这堆文件已经完整地实现了所有组合,也就是共有(26+26+10)^10 个文件。

    现在我要按照楼主的方法,将上述所有文件压缩到一个字节(注意这里是字节,共 256 种可能,此外相比起楼主把数 GB 压缩到数 KB,我这个压缩率只有十分之一),显而易见,一个字节的信息量无法充分映射到(26+26+10)^10 种组合。

    所以,楼主的设想不成立。
    line
        35
    line  
       2018-09-07 01:00:35 +08:00 via iPhone
    信息守恒
    msg7086
        36
    msg7086  
       2018-09-07 01:20:04 +08:00   ❤️ 19
    早就变革完了。
    一部电影含有的信息量超过 750GB,考虑到光盘容量太小,发售一次蓝光电影需要 20 张蓝光光盘。
    而现在,只需要下载仅仅 2GB 类似公式一样的东西就可以看到电影了。
    考虑到网速限制,人们再也不用花上一个月时间下载电影了,而仅仅需要数十分钟。

    这个东西放在一个叫做 Decoder 的解码器中就能用公式还原出整个电影画面来。
    这种编码解码器里有很多模块,有一个叫 DCT/IDCT,专门用来在时空域和频域之间转换。还有一个叫做 Motion estimation 模块,专门看视频里连贯的工作,把多张连续的画面变成起始画面+运动矢量+残差的公式。还有什么 MB 分析模块,专门看画面上哪些地方复杂,需要分割成小块来转换公式,哪些地方平坦,直接一大块转换成一个公式。还有 psy 人脑视觉分析,分析的是人类的眼睛看哪些部分会更敏感,看哪些部分会更不敏感,敏感的画面部分用更复杂的公式来实现。

    嗯,这玩意儿专门有个组织在做,这个组织叫 MPEG,1990 年的时候完成了上述公式的第一版定义,1992 年被批准为国际标准,叫做 MPEG-1。而且其最为流行的一个格式,叫做 MPEG-1 Layer 3,简称 MP3,是人类音视频公式中使用得最广泛的公式之一。
    如果楼主的年龄比这 MPEG 要小的话,建议等以后上了大学,可以好好了解一下信息论基础。
    ZRS
        37
    ZRS  
       2018-09-07 01:34:18 +08:00   ❤️ 2
    想的太多 学的太少
    shadownet
        38
    shadownet  
       2018-09-07 07:05:09 +08:00 via iPhone
    @ZRS +1
    rexxtem07
        39
    rexxtem07  
       2018-09-07 07:38:39 +08:00 via iPhone   ❤️ 1
    115 的链接离线秒下了解一下?你把 115 的储存库放在本地就行了呀!(手动狗头
    torment5524
        40
    torment5524  
       2018-09-07 08:45:04 +08:00
    几 kb ?就算是 1MB 好了 1024*1024*8=8388608,就算当索引,网络上不同文件个数也超过这个数了吧。
    onionnews
        41
    onionnews  
       2018-09-07 08:52:23 +08:00 via Android
    @msg7086 涨知识了
    SuperMild
        42
    SuperMild  
       2018-09-07 09:21:16 +08:00
    LZ,你提出了一个科幻的构想,但不是一个科学的构想。两者的区别在于,后者你需要先自己证明这种公式被研究出来的可能性,及其可以处理的极限。

    任何科学都有极限,1GB 可以压缩为 1kb,还是 10GB 可以压缩为 1kb,究竟极限在哪里?如果你认为不管大,只要有公式就能一律压缩为几十 kb,并且自己不去证明这种可能性,那就只是科幻故事而已。这种科幻构想我一天可以给你 100 个。
    miniliuke
        43
    miniliuke  
       2018-09-07 09:28:48 +08:00 via Android   ❤️ 2
    香农:我们还是造把刻度无限小的尺吧
    loveour
        44
    loveour  
       2018-09-07 09:31:01 +08:00
    不可能。
    newmind
        45
    newmind  
       2018-09-07 09:31:20 +08:00
    国际程序设计大赛的作品了解一下实时渲染
    kernel
        46
    kernel  
       2018-09-07 09:59:44 +08:00
    楼主啊,公式都不用,PI 这个无限长串包含了所有可能的信息,你只要提供一个下标索引数字就行,哈哈
    hljjhb
        47
    hljjhb  
       2018-09-07 10:02:06 +08:00 via Android
    右转民科吧
    imn1
        48
    imn1  
       2018-09-07 10:32:45 +08:00
    你有足够长的圆周率 pi,作为字典,很容易实现这个目标
    圆周率也可以每台计算机自己算
    不过……
    adminii
        49
    adminii  
       2018-09-07 10:41:38 +08:00
    嗯,在我们这里已经实现了,格式后缀为:rar,zip,7z,tar.gz 等
    这样节约了带宽,就会增加运算。
    电影当然用 m3u8 切片就好了。
    Kagari
        50
    Kagari  
       2018-09-07 12:17:04 +08:00 via Android
    几 kb 太大了压成 1b 不就好了
    chinvo
        51
    chinvo  
       2018-09-07 12:22:57 +08:00 via iPhone
    pifs 还要大量空间存指针呢……
    maggch
        52
    maggch  
       2018-09-07 12:25:58 +08:00 via iPhone
    可以把世界上所有电影都存在磁盘里 , 这样只需要一个几 B 的文件名就行了 .

    mdzz
    Rizio
        53
    Rizio  
       2018-09-07 12:26:37 +08:00
    @des 我觉得这个比 lz 靠谱很多
    Rizio
        54
    Rizio  
       2018-09-07 12:29:48 +08:00
    上面的讨论让我想起了有篇科幻小说就是通过磨一把尺子,测出尺子的长度(米为单位小数点后几乎无穷位),来纪录东西的。
    Shura
        55
    Shura  
       2018-09-07 12:40:15 +08:00
    请你了解一下信息论的常识:信息熵( https://zh.wikipedia.org/zh-hans/%E7%86%B5_(%E4%BF%A1%E6%81%AF%E8%AE%BA )
    Moorj
        56
    Moorj  
       2018-09-07 13:27:24 +08:00
    哪家公司有幸聘请了楼主?
    98jiang
        57
    98jiang  
       2018-09-07 13:31:26 +08:00
    你想想播影片要的是什么,不就是解码器么,所以说已经压缩过了,只是没有你说的那么厉害而已
    sampeng
        58
    sampeng  
       2018-09-07 13:32:56 +08:00
    电视剧。硅谷。了解一下。。和你说的是一个故事。整个算法源于撸管姿势得到的灵感
    okjb
        59
    okjb  
       2018-09-07 13:36:07 +08:00 via Android
    @sampeng 涨姿势了
    vansl
        60
    vansl  
       2018-09-07 13:37:32 +08:00 via iPhone
    民科来了,大家快往后稍稍
    Mutoo
        61
    Mutoo  
       2018-09-07 13:37:49 +08:00
    64k intro 纯算法的影片,了解一下
    https://en.wikipedia.org/wiki/64K_intro
    aa6563679
        62
    aa6563679  
       2018-09-07 13:37:56 +08:00 via iPhone
    星际争霸录像文件了解一下
    sampeng
        63
    sampeng  
       2018-09-07 13:41:03 +08:00
    @okjb 当时看的时候还觉得挺逗的。4T 的超高清视频。压缩到 4G 还是 40G。。。
    kangkang
        64
    kangkang  
       2018-09-07 13:45:15 +08:00
    @aa6563679 跟我想到一块去了。

    十几年前的 war3 replay 了解一下。

    今天的 dota2 实时观战了解一下。
    RiESA
        65
    RiESA  
       2018-09-07 14:03:27 +08:00 via Android   ❤️ 2
    可以的,楼主别放弃
    首先你要黑进欧洲核子研究理事会( Conseil Européen pour la Recherche Nucléaire ),
    然后利用 LHC (大型强子对撞机)制造出迷你黑洞
    就可以把整个人脑的记忆压缩至 36kb
    通过大型显像管做电子枪,然后通过微波炉和手机设备触发甚至可以将记忆发送回过去穿越时空
    alwayshere
        66
    alwayshere  
       2018-09-07 14:15:05 +08:00
    继续啊,把这几十 kb 的文件继续压缩成一种更更高级的算法,只有几 kb 了,再把这几 kb 的算法再来用更更更高级的算法压缩成几 b,以此类推,最后一部阿凡达 11 的蓝光电影文件大小趋近于零,恭喜你骚年,你领悟了生命的真谛:万物皆空
    Rehtt
        67
    Rehtt  
       2018-09-07 14:18:26 +08:00 via Android
    这不就是压缩吗
    binux
        68
    binux  
       2018-09-07 14:25:42 +08:00
    @kangkang #64 replay 依旧没有逃出信息论的范畴。
    realpg
        69
    realpg  
       2018-09-07 14:59:49 +08:00
    百度民科吧走起
    youxiachai
        70
    youxiachai  
       2018-09-07 15:17:52 +08:00
    v2 民科走一波...干死那些学术派..叫你看不起我~
    qingxiangcool
        71
    qingxiangcool  
       2018-09-07 15:25:02 +08:00
    先不说视频, 说图片吧, 目前有一个理论叫做压缩感知和稀疏有关的, 可以了解下.
    doublleft
        72
    doublleft  
       2018-09-07 15:27:51 +08:00
    如果我可以把整个互联网的所有电影都存在我的电脑里,是不是意味着我下载的时候只需要下载一个编号就 OK 了。
    DOLLOR
        73
    DOLLOR  
       2018-09-07 15:32:31 +08:00
    啥都不用下载。
    直接把剧组叫到你家,让他们给你重新拍一遍。
    stargazer242
        74
    stargazer242  
       2018-09-07 15:36:08 +08:00
    游戏录像的各种录像其实有这个影子 楼主这个思维适合某些特定情况下的东西 然后楼主去研究研究 war3 里面的各种录像 地图 不适合电影.
    viator42
        75
    viator42  
       2018-09-07 15:54:01 +08:00
    意思就是说你想看话剧,演员布景音乐都在本地存着.只需要从网络上下载台本然后实时给你演一场
    RPGmaker 做的游戏不就是这样的吗,安装运行环境带着一堆现成的素材可以直接用,游戏本体做的很小
    zgray
        76
    zgray  
       2018-09-07 16:02:27 +08:00
    这就是压缩包。。。
    zgray
        77
    zgray  
       2018-09-07 16:10:21 +08:00
    其实 APFS 这样的存储格式结合上下载可能可以考虑下。

    APFS 有个特性,大概意思是两份文件在复制的时候并不重复复制,而是指针存储。基于此,假如磁盘上所有的文件按块来看,则多多少少都有点重复的区域,此时假如一个电影的某个块在磁盘上已经存在(因其他数据),则标记该区域已经完成下载,此时可能可以大量减少下载速度。最后这一个文件就像一个链条串起来的。虽然解决了下载速度的问题,但是如果要随机访问的时候,效率的问题还得解决。
    msg7086
        78
    msg7086  
       2018-09-07 16:22:50 +08:00
    @zgray 想太多了。
    bullettrain1433
        79
    bullettrain1433  
       2018-09-07 16:47:49 +08:00
    ls 各位我也学习了
    natforum
        80
    natforum  
       2018-09-07 16:54:37 +08:00
    网盘离线下载啊,然后秒下就可以在线观看
    agdhole
        81
    agdhole  
       2018-09-07 16:56:33 +08:00 via Android
    这个思路有点像各大游戏的回放功能
    noNOno
        82
    noNOno  
       2018-09-07 17:00:31 +08:00
    支持 lz.
    如果互联网通过区块链实现,可以实现这个功能.
    因为所有的数据都在终端本地,只需要获取一个 token 获取读的权限,来使用数据.
    noNOno
        83
    noNOno  
       2018-09-07 17:01:31 +08:00
    收藏等成为预言贴
    vincenteof
        84
    vincenteof  
       2018-09-07 17:05:43 +08:00
    这不就是压缩和解压吗?
    plqws
        85
    plqws  
       2018-09-07 17:09:20 +08:00
    支持楼主,未来的罗永浩,广告词都给你想出来了:『重新发明压缩算法』
    zyscn
        86
    zyscn  
       2018-09-07 17:19:20 +08:00 via Android
    量子通信应该可以
    noNOno
        87
    noNOno  
       2018-09-07 17:22:05 +08:00
    @noNOno 所有的数据传输统一为链的同步,只需要传递 token 信息.
    很多情况下我们并不需要在信息发布时立刻获取,
    那么电影发布>链同步>想看电影>获取 token>开始看电影
    great
    SelFree
        88
    SelFree  
       2018-09-07 17:39:07 +08:00   ❤️ 3
    cpdyj0
        89
    cpdyj0  
       2018-09-07 19:41:15 +08:00
    @SelFree 你这个例子不太对,信息熵在那搁着呢,就算一个文件 1PB 都是 0 又有什么用呢。
    cpdyj0
        90
    cpdyj0  
       2018-09-07 19:41:55 +08:00
    @SelFree 好吧,,我没看完。。。😂
    Biebe
        91
    Biebe  
       2018-09-07 19:42:38 +08:00 via iPhone
    我有一条公式,可以将人类缩小成蚂蚁大小
    johnnie502
        92
    johnnie502  
       2018-09-07 19:45:18 +08:00 via Android
    有啊,随便一部车都已经压缩到 10 字符以下的车牌号了,你说个车牌号楼上的网友就能给你脑内解压出来,棒不棒
    Xs0ul
        93
    Xs0ul  
       2018-09-07 21:08:53 +08:00
    这贴还顺便体现了鼓吹区块链的多不靠谱(
    XinLake
        94
    XinLake  
       2018-09-07 21:16:12 +08:00
    楼主的构想,这么多已经说得很清楚了,信息不是无限压缩的。我补充一下楼主的“公式”思路。

    就像有些提到的 64K 影片一样,好像可以用算法产生一部电影,但是这个也是不可能的。
    64K 影片是图形技术,用了很多 3D 绘图、光影、粒子效果来产生的,但是产生的内容有一定是计算机图形系统绘制出来的。

    图形系统技术没法参数不可预测的、无规律的、无法描述的信息,就像让显卡画个苹果轮廓还可以、上色也可以、那些都是矢量、是图形。但是它没法生成一个真实的苹果不规则的轮廓、外皮,这些信息必须要到自然界去拍摄,所以图形系统里有纹理,用纹理贴图来让模型尽量逼真。

    一个是图形,一个是图像,不是一回事。
    johnnie502
        95
    johnnie502  
       2018-09-07 21:43:07 +08:00   ❤️ 2
    @noNOno 每个人都把互联网上的所有资源本地保存一份,这个想法很棒棒
    noNOno
        96
    noNOno  
       2018-09-07 22:11:47 +08:00
    @johnnie502 刚了解到的一个实现,还在构建阶段 关键词>IPFS
    myself
        97
    myself  
       2018-09-07 22:57:00 +08:00 via Android
    作为民科都不算的开个脑洞
    压缩侧重是减少冗余和生成差值

    如果我们本地真的放一个巨大的资料库呢,电影和游戏都是取本地材料呢?

    类似装了一个巨大无比的 素材 framework
    C2G
        98
    C2G  
       2018-09-07 23:03:27 +08:00 via Android
    这不就是让计算机脑补么?
    ---
    了解下实时渲染?
    还是说类似 war3 回放那样的?
    elvodn
        99
    elvodn  
       2018-09-07 23:24:55 +08:00
    @loading #6 还穷举了 100kb 以下所有,单 100kb 就有 2^819200 种变换,穷举完宇宙都换了好几个吧
    liuyanjun0826
        100
    liuyanjun0826  
       2018-09-08 10:27:44 +08:00
    @yukiww233 这和大家提到的有损无损压缩所使用的字典无关吧,楼主提到的应该是哈希。比如我现在在我电脑里存了一张壹佰万的存单照片,楼主电脑里也存了一张壹佰万的存单照片,但是这张存单上写着只有 1 米 6 的人可以使用这张存单,而楼主不巧没有办法用柴刀把自己剁成 1 米 6,于是这张存单在楼主眼里成了不存在,而我却刚刚拿着这张存单买了一瓶阔落,这应该才是楼主想问的吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   782 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 21:36 · PVG 05:36 · LAX 13:36 · JFK 16:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.