我使用c ++,libjpeg来解码jpeg文件.我发现它不够快,是否有任何方法通过设置一些编译参数使其更快?或者有没有其他lib可以更快地打开jpeg文件?
现在打开4368*2912 4m jpeg图像需要大约750ms.我希望这可以减少到150毫秒.非常感谢!
补充:IJL似乎比libjpeg快:)
有没有人知道PHP,或Perl,或Python(或任何其他语言,我可以轻松转换代码)的ISO 3779车辆VIN解码器库可用作开源/免费软件?
即使只是解码WMI部分(前3个位置)的东西也会为我节省很多时间.提前致谢.
我正在使用C语言创建ASN.1解析器(使用Ericsson ASN1规范文档).我想解码UTF-8字符串类型,但我无法在线找到有关此信息,我正在使用的文档没有详细描述UTF-8字符串.任何人都可以为我提供一些代码,或解释如何解码它.
我是ASN.1的新手.
我使用ffmpeg 的 MPEG4 解码器。解码器具有CODEC_CAP_DELAY 等功能。这意味着解码器将为我提供延迟为 1 帧的解码帧。
我有一组来自 AVI 文件的 MPEG4 (I- & P-) 帧,并将这些帧提供给 ffmpeg 解码器。对于第一个 I 帧解码器,我什么也没给,但成功解码了帧。我可以强制解码器通过avcodec_decode_video2的第二次调用获取解码的帧并提供空值(刷新它),但是如果我为每一帧这样做,我会得到第一组图片的伪影(例如,第二个解码的 P 帧是灰色)。
如果我现在不强制 ffmpeg 解码器给我解码的帧,那么它可以完美地工作并且没有伪影。
问题:但是是否有可能在不给解码器下一帧且没有伪影的情况下获得解码帧?
如何为每一帧实现解码的小例子:
// decode
int got_frame = 0;
int err = 0;
int tries = 5;
do
{
err = avcodec_decode_video2(m_CodecContext, m_Frame, &got_frame, &m_Packet);
/* some codecs, such as MPEG, transmit the I and P frame with a
latency of one frame. You must do the following to have …Run Code Online (Sandbox Code Playgroud) 我一直在通过MediaCodec将视频直接渲染到我的UI中从SurfaceView获取的Surface.这非常有效.
我现在正在尝试使用MediaCodec作为编码器.作为测试,我想渲染到Surface(如上所述)并通过配置为编码器的MediaCodec的不同实例进行环回.
我看到编码器的createInputSurface()方法.我想我希望编码器创建这个表面然后让解码器MediaCodec使用它作为要绘制的表面.首先,这可能吗?
其次,我不确定如何从编码器创建的Surface创建SurfaceView.我只从SurfaceView中提取了一个Surface,而我从文档中看不到如何反向执行此操作.
我正在尝试在 Linux 服务器上运行 ffmpeg(信息来自uname -a):
Linux comp32 2.6.32-279.14.1.el6.x86_64 #1 SMP Tue Nov 6 11:21:14 CST 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
ffmpeg(连同所需的编码器和解码器)在系统上成功编译,但是当我尝试执行如下基本操作时:ffmpeg -v debug -i example.m4v image%d.jpg,我收到一条有点神秘的错误消息:
ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.7.1 (GCC)
configuration: --prefix=/users/albanie/local/usr
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 …Run Code Online (Sandbox Code Playgroud) 我想使用gobtoencode和decodeobject,我这样做:
type transProp struct {
a []int
b []float64
}
func (p transProp) MarshalBinary() ([]byte, error) {
// A simple encoding: plain text.
var b bytes.Buffer
fmt.Fprintln(&b, p.a, p.b)
return b.Bytes(), nil
}
// UnmarshalBinary modifies the receiver so it must take a pointer receiver.
func (p *transProp) UnmarshalBinary(data []byte) error {
// A simple encoding: plain text.
b := bytes.NewBuffer(data)
_, err := fmt.Fscanln(b, &p.a, &p.b)
return err
}
func TestGobEncode(t *testing.T) { …Run Code Online (Sandbox Code Playgroud) 我的问题基于 ISO8583 交易消息标准。我的问题陈述是开发一个应用程序,该应用程序将解码作为十六进制格式输入提供的 ISO8583 消息。
例如:我的输入 = 0200B2200000001000000000000000800000201234000000010000011072218012345606A5DFGR021ABCDEFGHIJ 1823
使用 jPOS 库,我正在解析这个十六进制代码,输出如下: MTI : 0200 Field-3 : 201234 Field-4 : 000000010000 Field-7 : 0110722180 Field-11 : 123456 Field-44 :-182F ABCGHI5GHI
现在这个解析的输出我想解码,即我想把它转换成字符串格式。我想知道它到底表达了什么,比如是余额查询还是交易请求等。
所以,我的问题是,是否有任何工具可以理解 iso8583 消息的十六进制代码?
我正在为学校制作一个 php morse 编码器和解码器。
我已经让编码器工作了,但我不知道如何让解码器工作。
下面的代码是我的解码器。
我试图通过用代码切换字母来使解码器与我的编码器相同。这不起作用,因为它会混淆莫尔斯字母并将它们合并。
所以我想我必须首先获取放入解码器中的每个字母,将它们放入一个数组中并单独解码它们,然后在最后将它们放回一起。
我尝试了很多东西,但我真的不知道我在做什么,我无法弄清楚。
我是 php 新手,所以我试图让它尽可能简单。
任何帮助表示赞赏!
<?php
$break = "<br>" ;
$Words = $_POST['morse2'];
//get the morse, seperate each letter and then decode and echo the outcome
$seperation = explode(" ", $Words);
var_dump($seperation) ;
echo $break ;
// foreach($seperation){
// str_replace("/ "," ",$seperation);
// }
$seperation = str_replace("/ "," ",$Words);
$seperation = str_replace(".- ","a",$Words);
$seperation = str_replace("-... ","b",$Words);
$seperation = str_replace("-.-. ","c",$Words);
$seperation = str_replace("-.. ","d",$Words);
$seperation = str_replace(". ","e",$Words);
$seperation = str_replace("..-. …Run Code Online (Sandbox Code Playgroud) 我卡与解码应的阵列的译码器[ 9.34958, 48.87733, 1000 ]的Point,其中,索引2(仰角)是可选的。
type alias Point =
{ elev : Maybe Float
, at : Float
, lng : Float
}
Run Code Online (Sandbox Code Playgroud)
因此我创建了以下解码器:
fromArrayDecoder : Decoder Point
fromArrayDecoder =
map3 Point
(index 2 Decode.float |> Decode.maybe)
(index 1 Decode.float)
(index 0 Decode.float)
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,当索引 2 丢失或属于任何类型(如字符串等)时,此解码器会成功。但我希望它仅在 elev 丢失时成功,而不是在类型错误时成功。有没有办法做到这一点?