首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Netty应用与源码

    Netty源码—8.编解码原理二

    ByteToMessageDecoder解码步骤4.解码器抽象的解码过程总结5.Netty里常见的开箱即用的解码器6.writeAndFlush()方法的大体步骤7.MessageToByteEncoder的编码步骤8. out.writeInt(4+ response.getData().length); out.writeBytes(response.getData()); }}8.

    25910编辑于 2025-06-13
  • 来自专栏Netty应用与源码

    Netty源码—8.编解码原理一

    ByteToMessageDecoder解码步骤4.解码器抽象的解码过程总结5.Netty里常见的开箱即用的解码器6.writeAndFlush()方法的大体步骤7.MessageToByteEncoder的编码步骤8. ;        case 4:            frameLength = buf.getUnsignedInt(offset);            break;        case 8: DecoderException("unsupported lengthFieldLength: " + lengthFieldLength + " (expected: 1, 2, 3, 4, or 8)

    34110编辑于 2025-06-13
  • 来自专栏bit哲学院

    Python进阶8——字典与散列表,字符串编解码

    update方法  l1=[(2,'two'), (1,'one'), (4,'four'), (3,'three')] l2=[(5,'five'), (6,'six'), (7,'seven'), (8, (l2) d=dict() d.update(dl1) d.update(dl2) print(d)           编码就是将文本字符串转化为字节序列,解码就是将字节序列转化为文本字符串,常见的编解码格式有 utf8,字节序列计算机识别,文本字符串人类识别  举例  s1='helloworld' t1=s1.encode('utf8') print(t1) s2=t1.decode('utf8') print

    1.8K10发布于 2020-12-30
  • 来自专栏小黑娃Henry

    Codable编解码流程Codable编解码流程

    1, 遵循协议Decodable后: 2.1 创建包含所有属性key的一个遵循codingKey协议的枚举(编译器生成) 2.2 创建init(_:,_ forKey)的方法(编译器生成) 3, 把data转为字典,通过字典生成_decoder 4,_decoder去调用通用unbox 5.1,基本类型根据各自的unbox完成解码后完成赋值; goto:done 5.2 对象类型则调用init(_:,_ forKey)方法-(编译器生成); goto:6 6,根据decoder获取container 7.1,container调用对应基本类型decode-> unbox完成赋值; goto:done 7.2 container调用对象类型decode(递归调用); goto:4 done;

    1.6K20发布于 2021-08-09
  • 来自专栏落叶飞翔的蜗牛

    Java编解码

    编解码 Java序列化的目的主要有两个: 1.对象序列化 2.网络传输 当进行远程跨进程服务调用时,需要把被传输的对象转化为字节数组或者ByteBuffer对象。 这就是所谓的Java对象编解码技术。 Java序列化 Serializable JDK1.1已经提供序列化功能,不需要额外的类库。 一般远程调用(RPC)很少使用Java自带的序列化进行消息的编解码和传输。 结构化数据存储格式 编码性能高 语言无关,平台无关,扩展性好 支持Java,C++和Python FaceBook的Thrift Thrift支持三种典型的编解码方式 通用二进制编解码 压缩二进制编解码 优化的可选字段压缩编解码 Marshallling 可插拔的类解析器 可插拔的对象替换技术 可插拔的预定义缓存表 无需实现

    1.4K40发布于 2021-01-14
  • 来自专栏漫漫架构路

    编解码相关

    编解码总结 一. 编解码 Charset类 编解码 编码:字符—>字节 解码:字节—>字符 每个文件存储在磁盘上,都会指定一种编码格式。 iso-8859-1:使用8bit(1个byte)表示一个字符,共计可以表示256个字符。 utf-8:**变长的字节表示形式:**使用1个字节表示英文,跟ascii完全相同;使用3个字节表示中文;最多使用6个字节表示一个字符。

    1.3K10发布于 2020-09-03
  • 来自专栏音视频开发技术

    FFmpeg编解码处理2-编解码API详解

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584925.html FFmpeg编解码处理系列笔记: [0]. FFmpeg编解码处理1-转码全流程简介 [2]. FFmpeg编解码处理3-编解码API详解 [3]. FFmpeg编解码处理4-视频编码 [4]. FFmpeg编解码处理5-音频编码 基于FFmpeg 4.1版本。 4. 编解码API详解 解码使用avcodec_send_packet()和avcodec_receive_frame()两个函数。

    3.3K20发布于 2019-03-28
  • 来自专栏全栈程序员必看

    视频编解码学习之二:编解码框架「建议收藏」

    视频编解码关键技术 预测:通过帧内预测和帧间预测降低视频图像的空间冗余和时间冗余。 变换:通过从时域到频域的变换,去除相邻数据之间的相关性,即去除空间冗余。 宏块分成8×8或者4×4块,对每个块采用帧内预测编码,称作Intra8x8或者Intra4x4。 帧内预测有多个预测方向:水平,垂直,左下,右上。 帧内预测还有直流(DC)预测。 R/88个点,找到最优点,如果R/8=1则搜索终止,最优点位置的预测块作为最优的预测块,否则重复该过程直到R/n2=1; 三步搜索方法检查点的个数为1+8log2(d+1),当d=8时,检查点个数为 9+8+8=25 13. +8=19,另外一个需要5+3+2+3+2+8=23 14.

    2.3K20编辑于 2022-09-06
  • 来自专栏社区的朋友们

    protobuffer 编解码原理

    Varint编码 inline uint8* WriteVarint32ToArray(uint32 value, uint8* target) { while (value >= 0x80) { *target = static_cast<uint8>(value | 0x80); value >>= 7; ++target; } *target = static_cast <uint8>(value); return target + 1; } Layer1 obj; obj.set_layer1_varint(12345); Varint编码只用每个字节的低7bit 对比直接用struct存储会占4Bytes;如果struct是用 uint64呢,将占8Bytes,而PB占用内存仍是3Bytes。 下表是PB数值范围与其字节数对应关系。 inline uint8* WriteBytesToArray(int field_number, const

    3K00发布于 2017-09-05
  • 来自专栏落叶飞翔的蜗牛

    Netty之编解码

    MessagePack 简介MessagePack SDKMessagePack编码器开发MessagePack解码器编写客户端代码服务端代码POJO测试结果

    86930发布于 2021-01-14
  • Android MediaCodec 编解码

    编解码器(Codec) 硬件加速层:优先调用设备专属编解码器(如高通 DSP、ARM Mali),显著降低 CPU 负载。 ➤ Executing - Running 正常编解码状态。 示例 重要性 备注 KEY_MIME String 编码格式 MIME 类型 “video/avc” (H.264), “video/hevc” (H.265), “video/x-vnd.on2.vp8” (VP8) 必须 与 createEncoderByType() 一致 KEY_WIDTH int 视频帧宽度(像素) 1920, 1280, 720 必须 KEY_HEIGHT int 视频帧高度 资源释放:务必在使用完毕后调用 stop() 和 release(),否则可能导致内存泄漏或后续编解码失败。 设备兼容性:不同设备支持的编解码器、颜色格式和性能可能不同。

    92410编辑于 2025-11-30
  • 来自专栏PHP 开发

    Unicode编解码函数

    在用XMLHTTP进行远程数据传输的时候,如果涉及到不同编码,比如从oblog向我的博客发送一个trackback ping,数据中包含的中文字符就会出现乱码。 为了解决这个问题,可以在发送之前,把所有的数据中的中文都进行Unicode编码然后再传输。这样就可以顺利解决问题。 但是有时候还会涉及到另外一个问题,就是到了目标程序后,要进行数据库检索,发送过来的中文字符串都已经编码为类似 绎 这样的Unicode编码,而数据库中的数据虽然以unicode编码保存,但是却还是中文字符,并没有表示为 &

    1.6K50发布于 2018-03-02
  • 来自专栏Liusy01

    Netty编解码框架

    1、何为编解码 对于java来说就是序列化与反序列化机制,java序列化主要有两种用途,就是网络传输和对象持久化,所以Java提供了ObjectOutPutStream和ObjectInputStream 既然Java已经提供了编解码机制,为何Netty还要提供另外的编解码框架呢? 2、Java序列化的缺点 (1)无法跨语言:Java序列化技术只是java语言内部的私有协议,其它语言并不支持。 image.png 3、业界主流编解码框架 (1)Google的Protobuf 将数据结构以.proto文件进行描述,通过代码生成工具可以生成对应数据结构的POJO对象和Protobuf相关的方法和属性 特点:结构化数据存储格式(XML,JSON等)           高效的编解码性能           无关语言、平台,扩展性好           官方支持java、c++、python ( 特点:编解码高效,性能高     序列化之后的码流好       支持跨语言 上述就是编解码技术的介绍,之后会聊一下框架的使用

    1K20发布于 2020-08-31
  • 来自专栏MelonTeam专栏

    视频编解码学习分享

    目录 视频为什么要编解码 视频是否可以压缩 编解码实现原理 编解码标准和国际组织 视频文件封装(容器) 视频质量评价体系 1.为什么视频要编解码? 例如,人类视觉的一般分辨能力为2的6次方(64)灰度等级,而一般的图像的量化采用的是2的8次方(256)灰度等级,即存在视觉冗余。 块编码 8x8或4x4块的变换量化系数的熵编码数据。 CBP (Coded Block Patten):用来指示块的变换量化系数是否全为零。 将图像整分成8*8的块进行DCT变换,其中一个小分块变换后的系数分布。 ? ? 整个图像的DCT系数 ? 保留左上三个单位系数,还原图像。 +条带结构编码,用于VCD,LAN视频(最大1.5Mbps) MPE-2: MPEG-1+隔行视频编码+缩放功能,用于HDTV(18Mbps) 、SDTV (2-5Mbps)数字信号传输和DVD(6-8Mbps

    6.2K152发布于 2018-01-04
  • 来自专栏vivo互联网技术

    Dubbo 编解码那些事

    怀揣着好奇,对于Dubbo的编解码做了几次的Debug学习,在此分享一些学习经验。 2.1 In Dubbo 借用Dubbo官方文档的一张图,文档内,定义了通信和序列化层,并没有定义"编解码"含义,在此对"编解码"做简单解释。 编解码 = dubbo内部编解码链路 + 序列化层 本文旨在梳理从Java对象到二进制流,以及二进制流到Java对象两种数据格式之间的相互转换。 又因Dubbo内部定义为Encoder,Decoder,故在此定义为"编解码"。 5位序列化id,1位心跳还是正常请求,1位双向还是单向,1位请求还是响应; 1byte:响应状态,具体类型见com.alibaba.dubbo.remoting.exchange.Response; 8byte

    92440发布于 2021-04-13
  • 来自专栏韩曙亮的移动开发专栏

    【Android FFMPEG 开发】FFMPEG 获取编解码器 ( 获取编解码参数 | 查找编解码器 | 获取编解码器上下文 | 设置上下文参数 | 打开编解码器 )

    FFMPEG 编解码器获取流程 I . FFMPEG 获取音视频流的编解码参数 AVCodecParameters *codecpar II . ④ 设置编解码器上下文参数 : 调用 avcodec_parameters_to_context ( ) 方法 , 设置编解码器的上下文参数 ; //③ 设置 编解码器上下文 参数 // int AVCodec *codec 参数 : 要获取上下文的编解码器 ; ② AVCodecContext *avCodecContext 返回值 : 编解码器上下文 , 封装了很多编解码器相关参数 ; 如果为 : 基于编解码器提供的编解码参数设置编解码器上下文参数 ; ① AVCodecContext *codec 参数 : 要设置参数的编解码器上下文 , 这里当做返回值使用 , 这个值之后还要使用 ; ② FFMPEG 获取编解码器 代码示例 ---- //视频 / 音频 处理需要的操作 ( 获取编解码器 ) //① 查找 当前流 使用的编码方式 , 进而查找编解码器 (

    1.4K20编辑于 2023-03-27
  • 来自专栏媒矿工厂

    2020年视频编解码格局

    Christian Feldmann首先以表格的形式对当前几种主流编解码器进行了总结,给出了H.264/AVC,H.265/HEVC,VP9和AV1在运行平台,计算平台,编码性能,费用和应用场景的结果。 然后他介绍了一个新的编解码器EVC(Essential Video Coding)。介绍了EVC两方面的内容:要求和两个profile。

    1.2K20发布于 2020-05-20
  • 来自专栏C/C++与音视频

    视频编解码硬件方案漫谈

    4K,8K),编码算法越来越复杂(从mpeg2经历h264,发展到h265),PC的软件规模也越来越庞大,视频应用也越来也丰富,单独靠CPU来编解码已经显得勉为其难,一种集成在显卡中gpu用来参与编解码工作已经成为主流 一) gpu存在的形式 gpu主要驻留在显卡上,配合显卡参与显示,绘图,编解码,并行计算等工作。常见形式有以下3类。 专用视频加速卡 二)gpu编解码的常用技术方案 1)厂家SDK方案 对应gpu编解码,硬件厂家都有相应SDK方案,应用开发者可以直接调用厂家的SDK 来完成编解码器工作。 其中xxx标识编码类型,如h264,h265,mpeg2,vp8,vp9等。 其中xxx标识编码类型,如h264,h265,mpeg2,vp8,vp9等。

    4.2K31编辑于 2022-06-14
  • 来自专栏python3

    Python URL编解码 encode

    urllib包中parse模块的quote和unquote from urllib import parse #这个是js的结果 # encodeURIComponent('中国') # "%E4%B8% AD%E5%9B%BD" jsRet='%E4%B8%AD%E5%9B%BD' print(parse.unquote(jsRet)) #输出:中国 print(jsRet==parse.quote

    3K30发布于 2020-01-07
  • 来自专栏音视频开发技术

    视频编解码基础概念

    2.8 GOP GOP(Group Of Pictures, 图像组)是一组连续的图像,由一个I帧和多个B/P帧组成,是编解码器存取的基本单位。

    1.8K20发布于 2019-04-02
领券