[JPEG] 解码参考资料 & 注意事项

README 中有对应的 C++ 实现

截止至22年3月20号,其 C++ 实现对应的 APP0 处理是错误的,请注意

直接拖到文章尾部,可以看到一维 IDCT 的公式

还有一些细节是以上教程没有强调或者没有提到的,同时其他教程也没有提及甚至是错误的地方:

  • jpg 是按大端模式储存数据的
  • 按比特读取压缩流要从高位(靠近符号位的地方)向低位读取
    • 顺带一提,gif 按比特读取压缩流是从低位开始读的
  • 如果读取到的哈夫曼码对应的需要继续读取的位数为0位,则视为读取到的数字是0
    • 这个会在读取直流变量的时候遇到
    • 另外读取交流变量的时候会遇到权值为0xF0的情况,上文教程说这个是连续写入16个0的意思。其实也可以理解为写入15个0,再读取0位数字
  • 颜色分量是按Y、Cb、Cr排布的,别搞反了

[杂项] 记一次远程桌面卡在请稍候的解决方法

可能是因为修改过远程电脑的密码,我这边出现了输入密码后会卡在“请稍候”的界面上。

具体地说,远程桌面会提示凭证已过期,重新输入密码并连接后会发生上面提到的事情。

可以试试用以下方法解决(win10为例):

继续阅读[杂项] 记一次远程桌面卡在请稍候的解决方法

[Vulkan] GLSL language integration 支持

一、下载插件

请直接参考这个教程:

Visual Studio设置shader(CG 、GLSL)语法提示及高亮和显示行号 使用GLSL language integration插件

二、添加 Vulkan 支持

配置完插件后,插件只支持 OpenGL 相关的关键字/变量

想要支持 Vulkan 相关的(比如:gl_VertexIndex、推送常量等等)

在 工具->选项 中按照以下内容进行配置

这里方便你直接复制:

–target-env vulkan1.2

%VK_SDK_PATH%\Bin\glslangValidator.exe

注意: VK_SDK_PATH 这个环境变量要装了 LunarG 的 SDK 才有(装的时候自动生成的)。总之给出 glslangValidator 的路径就是了