1 ength encoding)、LZff (Lempel-Ziv-ffelch Encoding)等压缩算法将目标图片压缩为特定的格式。在该实施例中,首先要采用存储模块113将所述目标图片压缩为特定格式文件。
[0237]众所周知,常用的现有技术中将图片压缩为JPEG(Joint Photographic ExpertsGroup)、GIF (Graphics Interchange Format)或 PNG (Portable Network Graphics)格式。其中,GIF是一种无损压缩,采用LZW压缩算法进行编码,采用了 8位色压缩,最多只能处理276种颜色,不易于保存真彩图像;PNG是一种无损数据压缩位图图形文件格式,同样缺点和GIF —样,不利于图片的优化处理,且文件容量较其他格式要大JPEG是一种针对相片影像而广泛使用的一种失真压缩标准方法,采用Huffman压缩算法进行破坏性压缩,首先把图片从RGB转换为YUV,用亮度、色调和饱和度储存每个象素的信息。然后减少色调和饱和度的信息数量,这种差别不容易被肉眼察觉到,但是图像字节数会大幅减小。因此,在本发明的一个实施例中,优选的将拍照模块11抓拍得到的目标图片数据,通过Huffman压缩算法转换为JPEG格式的目标图片。
[0238]本领域技术人员应该知晓,JPEG格式的图片属性设置在图片的Exif信息中。Exif (Exchangeable Image File)是一种图像文件格式。实际上Exif格式就是JPEG格式头插入了图片的信息,可以加载图片拍摄的光圈、快门、平衡白、IS0、聚焦、日期、时间及导航信息。因此可以在得到的目标图片的Exif信息中加入特征信息获取模块112获得的分类信息和导航信息。在一个具体的实施例中,JPEG文件以字符串“0XFFD8”开头,并以字符串“0XFFD9”结束,而在字符串“0XFFE0-0XFFEF”之间用于存储Exif信息。存储模块113被配置为在将得到的RGB格式的目标图片数据通过Huffman压缩算法压缩为JPEG格式的目标图像过程中,将所述的导航信息和分类信息添加在字符串“0XFFE0-0XFFEF”之间的Exif信息中,即实现了本发明中目标图片的属性设置。
[0239]需要指出的是,尽管本发明以JPEG文件格式进行示例,但本领域技术人员应当理解,PNG之类的文件格式也可以被本发明采用,表现在图片文件后缀名上,便是.jpeg、.jpg,.png等。某些实施例中,对于并不支持EXIF的图片格式文件,可以在各个目标文件夹中构建与存储于其中的所有相关图片文件相对应的备注表格,在该表格建立图片文件名与上述导航信息之间的映射关系数据,解决格式差异引起的属性信息添加的障碍,同理可以满足本发明的需求。
[0240]综上所述,前述抓拍模块11实现了响应于抓拍指令,将摄像头抓拍获得的目标图片和提取的与该目标图片对应的特征信息保存在了本地存储介质中。由于本地存储介质的存储容量有限,因此目标图片容易被覆盖,不能得到有效的保护。
[0241]鉴于前述的缺陷,进一步的,请参见图8,本发明中所述的传输模块12,用于响应于检测到目标图片已存储的事件,将本地存储的目标图片通过预设的蓝牙传输通道自动上传。
[0242]为了实现将抓拍模块11抓拍到的图片实时传输给移动终端,行车记录仪和移动终端需要预先基于局域网建立连接实现相互通信。由于行车记录仪端的存储容量有限,当用户希望将目标图片实时传输到手机、PAD等移动终端安全保护起来时,可以通过蓝牙连接技术构建的局域网自动上传所述目标图片到移动终端上,当然,前提是行车记录仪能与手机或PAD等移动终端实现通信。因此,根据本发明的一个实施例所揭示,在传输模块12执行响应于检测到目标图片已存储的事件,将本地存储的目标图片通过预设的蓝牙传输通道自动上传之前,请参见图10,还包括蓝牙通信模块14。
[0243]所述蓝牙通信模块14,用于搜索可点对点连接的蓝牙设备并自动配对连接以建立蓝牙传输通道。
[0244]不难理解,建立两个蓝牙设备之间的连接,需要该两个蓝牙设备在同一个RFCOMM通道下分别拥有一个连接的BluetoothSocket。本实施例中,行车记录仪中蓝牙通信模块14搜索可点对点连接的蓝牙设备后自动发出一个请求连接指令;当然,该蓝牙连接请求也可以是移动终端的蓝牙设备主动发起的,行车记录仪端蓝牙通信模块14需要响应于该连接请求,连接蓝牙设备即可。具体的,本实施例以行车记录仪端蓝牙通信模块14响应于移动终端自动发起连接请求为例来说明蓝牙设备的配对连接过程。
[0245]在本发明的一个实施中,蓝牙通信模块14与移动终端之间基于Socket来实现通信。首先,行车记录仪端蓝牙通信模块14通过搜索监听到移动终端的BluetoothService,调用 Bluetoothservice 的 ListenUsingRfcommffithServiceRecord(String, UUID)方法来获取Bluetoothsocket对象,其中String表示移动终端的名称,UUID表示与移动终端的连接标识。再调用Bluetoothsocket的connect O方法,如果UUID同移动终端的UUID匹配,并且移动终端接受了该Bluetoothsocket,行车记录仪端蓝牙通信模块14就会和移动终端共享RFCOMM信道完成蓝牙传输通道建立过程,并且返回connect O方法。当两蓝牙设备连接成功后,行车记录仪端蓝牙通信模块14就会调用用closeO来关闭连接,从而节省系统资源。
[0246]在蓝牙传输通道建立成功后,进一步的,所述传输模块12被配置为通过所述蓝牙传输通道自动上传存储在本地的所述目标图片。
[0247]当行车记录仪与移动终端连接成功后,双方都将获取各自独占的bluetoothsocket,从而实现设备间的数据传输。当行车记录仪端的传输模块12检测到有图片存储或移动终端检测到行车记录仪端有图片存储后,自动发出图片传输指令。传输模块12首先遍历存储在本地的目标图片文件及与其对应特征信息文件,然后通过调用getlnputStreamO和getOutputStream O方法来获取待上传目标图片数据的输入输出流,再通过调用read (byte [])和write (byte [])方法来读取或者写入需要发送的图片文件名等信息及其对应的字符长度。不难理解,由于读写操作都属于阻塞调用,因此该传输模块12需要创建专用的线程来进行管理,【具体实施方式】是本领域内技术人员的公知技术,在此不再赘述。
[0248]不难理解,在该传输模块12通过所述蓝牙传输通道自动上传所述目标图片时,随附上传与该目标图片对应的特征信息。当然,从前述介绍中可以理解,当与目标图片对应的特征信息被添加到目标图片的属性信息中时,只需要上传该目标图片即可;反之,传输模块12需要同时上传目标图片与其对应的特征信息。
[0249]综上所述,前述步骤中行车记录仪端传输模块12在检测到目标图片已存储后,实时的将本地存储的目标图片通过预设的蓝牙传输通道自动上传到移动终端上,实现了图片文件的实时转移,避免了图片存储在行车记录仪端由于存储容量有限被覆盖而丢失。进一步的,为了保证图片成功的被安全转移,所述删除模块13被配置为根据所述预设的蓝牙传输通道获得的对照结果列表,删除该对照结果列表中指定的存储于本地存储介质的目标图片。
[0250]图片被行车记录仪安全的传输到移动终端后,移动终端会将该图片上传到远程云服务器保存。并将已成功上传到远程服务器的图片信息以对照结果列表的形式反馈给行车记录仪端,行车记录仪根据蓝牙传输通道获得的对照结果列表,采用删除模块13删除该对照结果列表中指定的存储于本地存储介质的目标图片,及时释放本地存储空间,避免资源浪费。具体的,请参见图n,该删除模块13具体包括接收模块131、查找模块132和执行模块 133。
[0251]所述接收模块131,用于通过所述蓝牙传输通道无线接收反馈的对照结果列表;
[0252]所述查找模块132,用于根据所述对照结果列表在本地存储介质中查找到该列表中指定的目标图片;
[0253]所述执行模块133,用于删除该目标图片。
[0254]不难理解,所述接收模块131通过已建立好的蓝牙传输通道无线接收反馈的对照结果列表中列出有已成功上传的图片信息,其中可以包括图片的文件名,也可以是其他表征为该图片的唯一性特征信息,例如图片大小或抓拍时间等。行车记录仪根据得到的图片唯一性特征信息。再通过查找模块132调用findO遍历查找到该图片以及与其对应的特性信息文件的存储路径。然后在收到反馈的对照列表后,执行模块133可以立即调用rm对该路径下存储的图片及其唯一性特征信息执行删除命令,也可以待行车记录仪端存储容量不够的情况下执行模块133再调用rm对该路径下存储的图片及其唯一性特征信息执行删除命令,释放本地存储空间,避免资源浪费。
[0255]同理,依据计算机软件的功能模块化思维,本发明还设置有与行车记录仪端相对应的移动终端,以实现与行车记录仪实现通信,本发明还提供了一种采用上述图片安全传输方法的移动终端,请参阅图12。该移动终端包括第二接收模块21、第二上传模块22和反馈模块23,利用该第二接收模块21、第二上传模块22和反馈模块23来搭建起整个终端的原理框架,从而实现模块化实施方案。以下具体揭示各模块实现的具体功能。
[0256]所述第二接收模块21,用于通过预设的蓝牙传输通道无线接收目标图片保存于存储区。
[0257]为了实现将抓拍到的图片实时传输给移动终端,行车记录仪和移动终端需要预先基于局域网建立连接实现相互通信。由前述介绍中可知由于行车记录仪端的存储容量有限,当用户希望将目标图片实时传输到手机、PAD等移动终端安全保护起来时,移动终端可以通过蓝牙连接技术构建的局域网无线接收从行车记录仪端发送的目标图片。当然,前提是行车记录仪能与手机或PAD等移动终端实现通信。因此根据本发明一个实施例所揭示,还包括蓝牙通信模块24。所述蓝牙通信模块24被配置为在通过预设的蓝牙传输通道无线接收目标图片保存于存储区之前,搜索可点对点连接的蓝牙设备并自动配对连接以建立蓝牙传输通道。
[0258]不难理解,建立两个蓝牙设备之间的连接,需要该两个蓝牙设备在同一个RFCOMM通道下分别拥有一个连接的BluetoothSocket。本实施例中,当移动终端中蓝牙通信模块24搜索可点对点连接的蓝牙设备后自动发出一个请求连接指令;当然,该蓝牙连接请求也可以是行车记录仪端的蓝牙设备主动发起的,移动终端蓝牙通信模块24需要响应于该连接请求,连接蓝牙设备即可。具体的,本实施例以移动终端主动发起连接请求为例来说明蓝牙设备的配对连接过程。
[0259]例如在本发明的一个实施中,为便于理解该模块的实现,以Android手机为该实施例中的移动终端来说明本实施例的实现过程。不难理解,在Android手机上使用蓝牙通信模块24的蓝牙通信方式前,要申请使用蓝牙的响应权限permiss1n android:name=” android, permiss1n.BLUET00TH_ADMIN”,然后才能开始配置本机的蓝牙模块,调用蓝牙操作的核心类BluetoothAdapter来直接开启本机的蓝牙功能。然后蓝牙通信模块24开始搜索行车记录仪端的蓝牙设备,使用BluetoothAdapter的startDiscover O方法,去执行一个异步方式,采用该方式能快速搜索到附近的蓝牙设备,该搜索过程实际上是在一个System Service中进行的,所以可以调用cancelDiscoveryO方法来停止搜索。在这个搜索过程完成后,蓝牙通信模块24需要对找到的行车记录仪的详细信息进行接收,就得过滤ACT10N_F0UND这个Intert动作,注册一个BroadcastReceiver对象来接收行车记录仪的蓝牙用户名和MAC地址,与该行车记录仪端的蓝牙设备实现配对。
[0260]配对完成后,需要建立移动终端与行车记录仪的蓝牙设备之间的连接,需要通过作为请求发送方的移动终端蓝牙通信模块24调用BluetoothAdapter的ListenUsingRfcommffithServiceRecord (String, UUID)方法来获取 BluetoothServersocket 对象,UUID 表不与行车记录仪端的连接标识;再调用BluetoothServersocket的accept O方法监听连接请求,如果收到行车记录仪端的连接请求,则会返回一个Bluetoothsocket给行车记录仪端的蓝牙设备,最后在两蓝牙设备连接成功后,需要调用BluetoothServersocket的closeO方法来释放资源。
[0261]在蓝牙传输通道建立成功后,进一步的,所述第二接收模块21被配置为通过预设的所述蓝牙传输通道无线接收所述目标图片。
[0262]当移动终端与行车记录仪连接成功后,双方都将获取各自独占的Bluetoothsocket,从而实现设备间的数据传输。在该第二接收模块21实现过程中,移动终端第二接收模块21通过调用getlnputStreamO和getOutputStream O方法来获取待接收的目标图片数据的输入输出流,再通过调用read (byte [])和write (byte [])方法来读取或者写入接收的图片文件。不难理解,由于读写操作都属于阻塞调用,因此该模块中需要创建专用的线程来进行管理,【具体实施方式】是本领域内技术人员的公知技术,在此不再赘述。当图片数据接收成功后,移动终端第二接收模块21就会调用closeO来关闭连接,从而节省系统资源。
[0263]不难理解,在该第二接收模块21中,通过所述蓝牙传输通道接收所述目标图片时,随附接收与该目标图片对应的特征信息。当然,从前述介绍中可以理解,当与目标图片对应的特征信息被添加到目标图片的属性信息中时,第二接收模块21只需要接收该目标图片即可;反之,第二接收模块21需要同时接收目标图片与其对应的特征信息。
[0264]进一步,所述第二接收模块21被配置为将所述目标图片保存在存储区。
[0265]在本发明中,为了移动终端将无线接收的目标图片自动实时的通过远程接口上传到云服务器中存储,本发明中第二接收模块21被配置为将接收到的目标图片保存在读写速度快的内存缓冲区。由于目标图片数据容量较大,如果存储在内存缓冲区中的图片不能被及时的上传,会被后接收的图片覆盖而丢失,因此在本发明中至少在内存空间申请2个缓冲区来存储目标图片。每个缓冲区均设定两个工作状态:缓冲区空和缓冲区满。当接收到的目标图片填满一个缓冲区后,由另外一个缓冲区来存放后接收到的目标图片,采用多缓冲区存放目标图片,能保证在移动终端无法及时发送数据时,目标图片数据不会被很快覆盖,有利于目标图片的安全传输。
[0266]综上所述,前述第二接收模块21中通过预设的蓝牙传输通道接收到目标图片,并保存在了本地的内存缓冲区。
[0267]进一步的,参见图12,本发明所述的第二上传模块22,用于响应于检测到目标图片已存储的事件,通过远程接口上传所述目标图片。
[0268]在本发明中的移动终端上,要实现将接收到的目标图片实时的上传都远程服务器上,需要在接收数据前即连接Wifi获得了访问互连网的权限,然后第二上传模块22构造一个包含有目标图片数据的远程上传请求,通过3G或4G网络基于TCP/IP网络传输协议,将该上传请求